@vouchfor/embeds 1.4.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. package/dist/es/embeds.js +1138 -11
  2. package/dist/es/embeds.js.map +1 -1
  3. package/dist/es/src/components/DialogEmbed/DialogOverlay.d.ts +2 -1
  4. package/dist/es/src/components/DialogEmbed/DialogPortal.d.ts +2 -1
  5. package/dist/es/src/components/DialogEmbed/index.d.ts +3 -1
  6. package/dist/es/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +1 -1
  7. package/dist/es/src/components/PlayerEmbed/index.d.ts +3 -2
  8. package/dist/es/src/components/PlayerEmbed/tests/data.d.ts +1 -1
  9. package/dist/iife/dialog-embed/embed.iife.js +363 -334
  10. package/dist/iife/dialog-embed/embed.iife.js.map +1 -1
  11. package/dist/iife/embeds.iife.js +362 -333
  12. package/dist/iife/embeds.iife.js.map +1 -1
  13. package/dist/iife/player-embed/embed.iife.js +346 -317
  14. package/dist/iife/player-embed/embed.iife.js.map +1 -1
  15. package/package.json +34 -30
  16. package/src/components/PlayerEmbed/controllers/tracking/utils.ts +1 -1
  17. package/src/components/PlayerEmbed/tests/data.ts +1 -1
  18. package/dist/es/browser-f8654733.js +0 -733
  19. package/dist/es/browser-f8654733.js.map +0 -1
  20. package/dist/es/index-65006a92.js +0 -4602
  21. package/dist/es/index-65006a92.js.map +0 -1
  22. package/dist/iife/dialog-embed/browser-b36b6e3e.js +0 -433
  23. package/dist/iife/dialog-embed/browser-b36b6e3e.js.map +0 -1
  24. package/dist/iife/dialog-embed/embed.js +0 -5
  25. package/dist/iife/dialog-embed/embed.js.map +0 -1
  26. package/dist/iife/dialog-embed/index-72887ffc.js +0 -27167
  27. package/dist/iife/dialog-embed/index-72887ffc.js.map +0 -1
  28. package/dist/iife/dialog-embed/src/components/DialogEmbed/DialogOverlay.d.ts +0 -19
  29. package/dist/iife/dialog-embed/src/components/DialogEmbed/DialogPortal.d.ts +0 -35
  30. package/dist/iife/dialog-embed/src/components/DialogEmbed/index.d.ts +0 -36
  31. package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +0 -15
  32. package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/fetcher.d.ts +0 -14
  33. package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/tracking/index.d.ts +0 -36
  34. package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +0 -17
  35. package/dist/iife/dialog-embed/src/components/PlayerEmbed/index.d.ts +0 -73
  36. package/dist/iife/dialog-embed/src/components/PlayerEmbed/tests/data.d.ts +0 -3
  37. package/dist/iife/dialog-embed/src/index.d.ts +0 -2
  38. package/dist/iife/dialog-embed/src/utils/env.d.ts +0 -12
  39. package/dist/iife/dialog-embed/src/utils/events.d.ts +0 -2
  40. package/dist/iife/player-embed/browser-69a47b14.js +0 -433
  41. package/dist/iife/player-embed/browser-69a47b14.js.map +0 -1
  42. package/dist/iife/player-embed/embed.js +0 -5
  43. package/dist/iife/player-embed/embed.js.map +0 -1
  44. package/dist/iife/player-embed/index-854590ba.js +0 -26722
  45. package/dist/iife/player-embed/index-854590ba.js.map +0 -1
  46. package/dist/iife/player-embed/src/components/DialogEmbed/DialogOverlay.d.ts +0 -19
  47. package/dist/iife/player-embed/src/components/DialogEmbed/DialogPortal.d.ts +0 -35
  48. package/dist/iife/player-embed/src/components/DialogEmbed/index.d.ts +0 -36
  49. package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +0 -15
  50. package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/fetcher.d.ts +0 -14
  51. package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/tracking/index.d.ts +0 -36
  52. package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +0 -17
  53. package/dist/iife/player-embed/src/components/PlayerEmbed/index.d.ts +0 -73
  54. package/dist/iife/player-embed/src/components/PlayerEmbed/tests/data.d.ts +0 -3
  55. package/dist/iife/player-embed/src/index.d.ts +0 -2
  56. package/dist/iife/player-embed/src/utils/env.d.ts +0 -12
  57. package/dist/iife/player-embed/src/utils/events.d.ts +0 -2
@@ -1,4602 +0,0 @@
1
- import { css, LitElement, html } from "lit";
2
- import { property, state, customElement } from "lit/decorators.js";
3
- import { ifDefined } from "lit/directives/if-defined.js";
4
- import { createRef, ref } from "lit/directives/ref.js";
5
- import { Task } from "@lit/task";
6
- import { v4 } from "uuid";
7
- import "@vouchfor/media-player";
8
- import { styleMap } from "lit/directives/style-map.js";
9
- import { classMap } from "lit/directives/class-map.js";
10
- import "@a11y/focus-trap";
11
- function forwardEvent(type2, fromElement, toElement) {
12
- function forwarder(event) {
13
- toElement.dispatchEvent(new CustomEvent(event.type, event));
14
- }
15
- fromElement.addEventListener(type2, forwarder);
16
- return () => {
17
- fromElement.removeEventListener(type2, forwarder);
18
- };
19
- }
20
- class EventForwardController {
21
- constructor(host, events) {
22
- this._events = [];
23
- this._cleanup = [];
24
- this._forwardElementRef = createRef();
25
- this.host = host;
26
- this._events = events;
27
- host.addController(this);
28
- }
29
- register() {
30
- return ref(this._forwardElementRef);
31
- }
32
- hostConnected() {
33
- requestAnimationFrame(() => {
34
- this._events.forEach((event) => {
35
- if (this._forwardElementRef.value) {
36
- this._cleanup.push(forwardEvent(event, this._forwardElementRef.value, this.host));
37
- }
38
- });
39
- });
40
- }
41
- hostDisconnected() {
42
- this._cleanup.forEach((fn) => {
43
- fn();
44
- });
45
- this._cleanup = [];
46
- }
47
- }
48
- const devVideoUrl = "https://d2rxhdlm2q91uk.cloudfront.net";
49
- const stagingVideoUrl = "https://d1ix11aj5kfygl.cloudfront.net";
50
- const prodVideoUrl = "https://d157jlwnudd93d.cloudfront.net";
51
- const devPublicApiUrl = "https://bshyfw4h5a.execute-api.ap-southeast-2.amazonaws.com/dev";
52
- const stagingPublicApiUrl = "https://gyzw7rpbq3.execute-api.ap-southeast-2.amazonaws.com/staging";
53
- const prodPublicApiUrl = "https://vfcjuim1l3.execute-api.ap-southeast-2.amazonaws.com/prod";
54
- const localEmbedApiUrl = "http://localhost:6060/v2";
55
- const devEmbedApiUrl = "https://embed-dev.vouchfor.com/v2";
56
- const stagingEmbedApiUrl = "https://embed-staging.vouchfor.com/v2";
57
- const prodEmbedApiUrl = "https://embed.vouchfor.com/v2";
58
- function getEnvUrls(env) {
59
- if (!["local", "dev", "staging", "prod"].includes(env)) {
60
- throw new Error(`Unknown environment: ${env}`);
61
- }
62
- if (env === "local") {
63
- return {
64
- videoUrl: devVideoUrl,
65
- publicApiUrl: devPublicApiUrl,
66
- embedApiUrl: localEmbedApiUrl
67
- };
68
- }
69
- if (env === "dev") {
70
- return {
71
- videoUrl: devVideoUrl,
72
- publicApiUrl: devPublicApiUrl,
73
- embedApiUrl: devEmbedApiUrl
74
- };
75
- }
76
- if (env === "staging") {
77
- return {
78
- videoUrl: stagingVideoUrl,
79
- publicApiUrl: stagingPublicApiUrl,
80
- embedApiUrl: stagingEmbedApiUrl
81
- };
82
- }
83
- if (env === "prod") {
84
- return {
85
- videoUrl: prodVideoUrl,
86
- publicApiUrl: prodPublicApiUrl,
87
- embedApiUrl: prodEmbedApiUrl
88
- };
89
- }
90
- }
91
- class FetcherController {
92
- constructor(host) {
93
- this._fetching = false;
94
- this.getVouch = async (env, apiKey, vouchId) => {
95
- var _a;
96
- const { embedApiUrl } = getEnvUrls(env);
97
- const cacheCheck = v4();
98
- const res = await fetch(`${embedApiUrl}/vouches/${vouchId}`, {
99
- method: "GET",
100
- headers: [
101
- ["X-Api-Key", apiKey],
102
- ["X-Cache-Check", cacheCheck]
103
- ]
104
- });
105
- const vouch = await res.json();
106
- this.host.dispatchEvent(new CustomEvent("vouch:loaded", { detail: vouch == null ? void 0 : vouch.id }));
107
- const resCacheCheck = (_a = res == null ? void 0 : res.headers) == null ? void 0 : _a.get("X-Cache-Check");
108
- if (resCacheCheck !== cacheCheck) {
109
- fetch(`${embedApiUrl}/vouches/${vouchId}`, {
110
- method: "GET",
111
- headers: [
112
- ["X-Api-Key", apiKey],
113
- ["Cache-Control", "max-age=0"]
114
- ]
115
- });
116
- }
117
- return vouch;
118
- };
119
- this.getTemplate = async (env, apiKey, templateId) => {
120
- var _a;
121
- const { embedApiUrl } = getEnvUrls(env);
122
- const cacheCheck = v4();
123
- const res = await fetch(`${embedApiUrl}/templates/${templateId}`, {
124
- method: "GET",
125
- headers: [
126
- ["X-Api-Key", apiKey],
127
- ["X-Cache-Check", cacheCheck]
128
- ]
129
- });
130
- const template2 = await res.json();
131
- const resCacheCheck = (_a = res == null ? void 0 : res.headers) == null ? void 0 : _a.get("X-Cache-Check");
132
- if (resCacheCheck !== cacheCheck) {
133
- fetch(`${embedApiUrl}/templates/${templateId}`, {
134
- method: "GET",
135
- headers: [
136
- ["X-Api-Key", apiKey],
137
- ["Cache-Control", "max-age=0"]
138
- ]
139
- });
140
- }
141
- return template2;
142
- };
143
- this.host = host;
144
- new Task(
145
- this.host,
146
- async ([env, apiKey, data, vouchId, templateId]) => {
147
- var _a, _b, _c, _d;
148
- try {
149
- host.vouch = void 0;
150
- host.template = void 0;
151
- if (data) {
152
- let template2;
153
- if (templateId) {
154
- this.fetching = true;
155
- template2 = await this.getTemplate(env, apiKey, templateId);
156
- }
157
- this._vouch = data;
158
- host.template = template2 ?? ((_b = (_a = data == null ? void 0 : data.settings) == null ? void 0 : _a.template) == null ? void 0 : _b.instance);
159
- } else if (vouchId) {
160
- this.fetching = true;
161
- const [vouch, template2] = await Promise.all([
162
- this.getVouch(env, apiKey, vouchId),
163
- templateId ? this.getTemplate(env, apiKey, templateId) : null
164
- ]);
165
- this._vouch = vouch;
166
- host.template = template2 ?? ((_d = (_c = vouch == null ? void 0 : vouch.settings) == null ? void 0 : _c.template) == null ? void 0 : _d.instance);
167
- }
168
- } finally {
169
- this.fetching = false;
170
- }
171
- },
172
- () => [host.env, host.apiKey, host.data, host.vouchId, host.templateId]
173
- );
174
- new Task(
175
- this.host,
176
- ([vouch, questions]) => {
177
- host.vouch = vouch ? {
178
- ...vouch,
179
- questions: {
180
- items: vouch == null ? void 0 : vouch.questions.items.filter((_, index) => !(questions == null ? void 0 : questions.length) || (questions == null ? void 0 : questions.includes(index + 1)))
181
- }
182
- } : void 0;
183
- },
184
- () => [this._vouch, host.questions]
185
- );
186
- }
187
- set fetching(value) {
188
- if (this._fetching !== value) {
189
- this._fetching = value;
190
- this.host.requestUpdate();
191
- }
192
- }
193
- get fetching() {
194
- return this._fetching;
195
- }
196
- }
197
- const copyProperty$1 = (to, from, property2, ignoreNonConfigurable) => {
198
- if (property2 === "length" || property2 === "prototype") {
199
- return;
200
- }
201
- if (property2 === "arguments" || property2 === "caller") {
202
- return;
203
- }
204
- const toDescriptor = Object.getOwnPropertyDescriptor(to, property2);
205
- const fromDescriptor = Object.getOwnPropertyDescriptor(from, property2);
206
- if (!canCopyProperty$1(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
207
- return;
208
- }
209
- Object.defineProperty(to, property2, fromDescriptor);
210
- };
211
- const canCopyProperty$1 = function(toDescriptor, fromDescriptor) {
212
- return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
213
- };
214
- const changePrototype$1 = (to, from) => {
215
- const fromPrototype = Object.getPrototypeOf(from);
216
- if (fromPrototype === Object.getPrototypeOf(to)) {
217
- return;
218
- }
219
- Object.setPrototypeOf(to, fromPrototype);
220
- };
221
- const wrappedToString$1 = (withName, fromBody) => `/* Wrapped ${withName}*/
222
- ${fromBody}`;
223
- const toStringDescriptor$1 = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
224
- const toStringName$1 = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
225
- const changeToString$1 = (to, from, name2) => {
226
- const withName = name2 === "" ? "" : `with ${name2.trim()}() `;
227
- const newToString = wrappedToString$1.bind(null, withName, from.toString());
228
- Object.defineProperty(newToString, "name", toStringName$1);
229
- Object.defineProperty(to, "toString", { ...toStringDescriptor$1, value: newToString });
230
- };
231
- function mimicFunction$1(to, from, { ignoreNonConfigurable = false } = {}) {
232
- const { name: name2 } = to;
233
- for (const property2 of Reflect.ownKeys(from)) {
234
- copyProperty$1(to, from, property2, ignoreNonConfigurable);
235
- }
236
- changePrototype$1(to, from);
237
- changeToString$1(to, from, name2);
238
- return to;
239
- }
240
- const cacheStore$1 = /* @__PURE__ */ new WeakMap();
241
- const cacheTimerStore = /* @__PURE__ */ new WeakMap();
242
- function memoize(fn, { cacheKey, cache = /* @__PURE__ */ new Map(), maxAge } = {}) {
243
- if (maxAge === 0) {
244
- return fn;
245
- }
246
- if (typeof maxAge === "number") {
247
- const maxSetIntervalValue = 2147483647;
248
- if (maxAge > maxSetIntervalValue) {
249
- throw new TypeError(`The \`maxAge\` option cannot exceed ${maxSetIntervalValue}.`);
250
- }
251
- if (maxAge < 0) {
252
- throw new TypeError("The `maxAge` option should not be a negative number.");
253
- }
254
- }
255
- const memoized = function(...arguments_) {
256
- var _a;
257
- const key = cacheKey ? cacheKey(arguments_) : arguments_[0];
258
- const cacheItem = cache.get(key);
259
- if (cacheItem) {
260
- return cacheItem.data;
261
- }
262
- const result = fn.apply(this, arguments_);
263
- cache.set(key, {
264
- data: result,
265
- maxAge: maxAge ? Date.now() + maxAge : Number.POSITIVE_INFINITY
266
- });
267
- if (typeof maxAge === "number" && maxAge !== Number.POSITIVE_INFINITY) {
268
- const timer = setTimeout(() => {
269
- cache.delete(key);
270
- }, maxAge);
271
- (_a = timer.unref) == null ? void 0 : _a.call(timer);
272
- const timers = cacheTimerStore.get(fn) ?? /* @__PURE__ */ new Set();
273
- timers.add(timer);
274
- cacheTimerStore.set(fn, timers);
275
- }
276
- return result;
277
- };
278
- mimicFunction$1(memoized, fn, {
279
- ignoreNonConfigurable: true
280
- });
281
- cacheStore$1.set(memoized, cache);
282
- return memoized;
283
- }
284
- var invariant = function() {
285
- };
286
- const clamp$1 = (min, max, v) => Math.min(Math.max(v, min), max);
287
- const progress = (from, to, value) => {
288
- const toFromDifference = to - from;
289
- return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;
290
- };
291
- const mix = (from, to, progress2) => -progress2 * from + progress2 * to + from;
292
- const clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);
293
- const sanitize = (v) => v % 1 ? Number(v.toFixed(5)) : v;
294
- const floatRegex = /(-)?([\d]*\.?[\d])+/g;
295
- const colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi;
296
- const singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;
297
- function isString(v) {
298
- return typeof v === "string";
299
- }
300
- const number = {
301
- test: (v) => typeof v === "number",
302
- parse: parseFloat,
303
- transform: (v) => v
304
- };
305
- const alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });
306
- Object.assign(Object.assign({}, number), { default: 1 });
307
- const createUnitType = (unit) => ({
308
- test: (v) => isString(v) && v.endsWith(unit) && v.split(" ").length === 1,
309
- parse: parseFloat,
310
- transform: (v) => `${v}${unit}`
311
- });
312
- const percent = createUnitType("%");
313
- Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });
314
- const isColorString = (type2, testProp) => (v) => {
315
- return Boolean(isString(v) && singleColorRegex.test(v) && v.startsWith(type2) || testProp && Object.prototype.hasOwnProperty.call(v, testProp));
316
- };
317
- const splitColor = (aName, bName, cName) => (v) => {
318
- if (!isString(v))
319
- return v;
320
- const [a, b, c, alpha2] = v.match(floatRegex);
321
- return {
322
- [aName]: parseFloat(a),
323
- [bName]: parseFloat(b),
324
- [cName]: parseFloat(c),
325
- alpha: alpha2 !== void 0 ? parseFloat(alpha2) : 1
326
- };
327
- };
328
- const hsla = {
329
- test: isColorString("hsl", "hue"),
330
- parse: splitColor("hue", "saturation", "lightness"),
331
- transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {
332
- return "hsla(" + Math.round(hue) + ", " + percent.transform(sanitize(saturation)) + ", " + percent.transform(sanitize(lightness)) + ", " + sanitize(alpha.transform(alpha$1)) + ")";
333
- }
334
- };
335
- const clampRgbUnit = clamp(0, 255);
336
- const rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });
337
- const rgba = {
338
- test: isColorString("rgb", "red"),
339
- parse: splitColor("red", "green", "blue"),
340
- transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => "rgba(" + rgbUnit.transform(red) + ", " + rgbUnit.transform(green) + ", " + rgbUnit.transform(blue) + ", " + sanitize(alpha.transform(alpha$1)) + ")"
341
- };
342
- function parseHex(v) {
343
- let r = "";
344
- let g = "";
345
- let b = "";
346
- let a = "";
347
- if (v.length > 5) {
348
- r = v.substr(1, 2);
349
- g = v.substr(3, 2);
350
- b = v.substr(5, 2);
351
- a = v.substr(7, 2);
352
- } else {
353
- r = v.substr(1, 1);
354
- g = v.substr(2, 1);
355
- b = v.substr(3, 1);
356
- a = v.substr(4, 1);
357
- r += r;
358
- g += g;
359
- b += b;
360
- a += a;
361
- }
362
- return {
363
- red: parseInt(r, 16),
364
- green: parseInt(g, 16),
365
- blue: parseInt(b, 16),
366
- alpha: a ? parseInt(a, 16) / 255 : 1
367
- };
368
- }
369
- const hex = {
370
- test: isColorString("#"),
371
- parse: parseHex,
372
- transform: rgba.transform
373
- };
374
- const color = {
375
- test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),
376
- parse: (v) => {
377
- if (rgba.test(v)) {
378
- return rgba.parse(v);
379
- } else if (hsla.test(v)) {
380
- return hsla.parse(v);
381
- } else {
382
- return hex.parse(v);
383
- }
384
- },
385
- transform: (v) => {
386
- return isString(v) ? v : v.hasOwnProperty("red") ? rgba.transform(v) : hsla.transform(v);
387
- }
388
- };
389
- const colorToken = "${c}";
390
- const numberToken = "${n}";
391
- function test(v) {
392
- var _a, _b, _c, _d;
393
- return isNaN(v) && isString(v) && ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0;
394
- }
395
- function analyse$1(v) {
396
- if (typeof v === "number")
397
- v = `${v}`;
398
- const values = [];
399
- let numColors = 0;
400
- const colors = v.match(colorRegex);
401
- if (colors) {
402
- numColors = colors.length;
403
- v = v.replace(colorRegex, colorToken);
404
- values.push(...colors.map(color.parse));
405
- }
406
- const numbers = v.match(floatRegex);
407
- if (numbers) {
408
- v = v.replace(floatRegex, numberToken);
409
- values.push(...numbers.map(number.parse));
410
- }
411
- return { values, numColors, tokenised: v };
412
- }
413
- function parse(v) {
414
- return analyse$1(v).values;
415
- }
416
- function createTransformer(v) {
417
- const { values, numColors, tokenised } = analyse$1(v);
418
- const numValues = values.length;
419
- return (v2) => {
420
- let output = tokenised;
421
- for (let i = 0; i < numValues; i++) {
422
- output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v2[i]) : sanitize(v2[i]));
423
- }
424
- return output;
425
- };
426
- }
427
- const convertNumbersToZero = (v) => typeof v === "number" ? 0 : v;
428
- function getAnimatableNone(v) {
429
- const parsed = parse(v);
430
- const transformer = createTransformer(v);
431
- return transformer(parsed.map(convertNumbersToZero));
432
- }
433
- const complex = { test, parse, createTransformer, getAnimatableNone };
434
- function hueToRgb(p, q, t) {
435
- if (t < 0)
436
- t += 1;
437
- if (t > 1)
438
- t -= 1;
439
- if (t < 1 / 6)
440
- return p + (q - p) * 6 * t;
441
- if (t < 1 / 2)
442
- return q;
443
- if (t < 2 / 3)
444
- return p + (q - p) * (2 / 3 - t) * 6;
445
- return p;
446
- }
447
- function hslaToRgba({ hue, saturation, lightness, alpha: alpha2 }) {
448
- hue /= 360;
449
- saturation /= 100;
450
- lightness /= 100;
451
- let red = 0;
452
- let green = 0;
453
- let blue = 0;
454
- if (!saturation) {
455
- red = green = blue = lightness;
456
- } else {
457
- const q = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation;
458
- const p = 2 * lightness - q;
459
- red = hueToRgb(p, q, hue + 1 / 3);
460
- green = hueToRgb(p, q, hue);
461
- blue = hueToRgb(p, q, hue - 1 / 3);
462
- }
463
- return {
464
- red: Math.round(red * 255),
465
- green: Math.round(green * 255),
466
- blue: Math.round(blue * 255),
467
- alpha: alpha2
468
- };
469
- }
470
- const mixLinearColor = (from, to, v) => {
471
- const fromExpo = from * from;
472
- const toExpo = to * to;
473
- return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));
474
- };
475
- const colorTypes = [hex, rgba, hsla];
476
- const getColorType = (v) => colorTypes.find((type2) => type2.test(v));
477
- const mixColor = (from, to) => {
478
- let fromColorType = getColorType(from);
479
- let toColorType = getColorType(to);
480
- let fromColor = fromColorType.parse(from);
481
- let toColor = toColorType.parse(to);
482
- if (fromColorType === hsla) {
483
- fromColor = hslaToRgba(fromColor);
484
- fromColorType = rgba;
485
- }
486
- if (toColorType === hsla) {
487
- toColor = hslaToRgba(toColor);
488
- toColorType = rgba;
489
- }
490
- const blended = Object.assign({}, fromColor);
491
- return (v) => {
492
- for (const key in blended) {
493
- if (key !== "alpha") {
494
- blended[key] = mixLinearColor(fromColor[key], toColor[key], v);
495
- }
496
- }
497
- blended.alpha = mix(fromColor.alpha, toColor.alpha, v);
498
- return fromColorType.transform(blended);
499
- };
500
- };
501
- const isNum = (v) => typeof v === "number";
502
- const combineFunctions = (a, b) => (v) => b(a(v));
503
- const pipe = (...transformers) => transformers.reduce(combineFunctions);
504
- function getMixer(origin, target) {
505
- if (isNum(origin)) {
506
- return (v) => mix(origin, target, v);
507
- } else if (color.test(origin)) {
508
- return mixColor(origin, target);
509
- } else {
510
- return mixComplex(origin, target);
511
- }
512
- }
513
- const mixArray = (from, to) => {
514
- const output = [...from];
515
- const numValues = output.length;
516
- const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));
517
- return (v) => {
518
- for (let i = 0; i < numValues; i++) {
519
- output[i] = blendValue[i](v);
520
- }
521
- return output;
522
- };
523
- };
524
- const mixObject = (origin, target) => {
525
- const output = Object.assign(Object.assign({}, origin), target);
526
- const blendValue = {};
527
- for (const key in output) {
528
- if (origin[key] !== void 0 && target[key] !== void 0) {
529
- blendValue[key] = getMixer(origin[key], target[key]);
530
- }
531
- }
532
- return (v) => {
533
- for (const key in blendValue) {
534
- output[key] = blendValue[key](v);
535
- }
536
- return output;
537
- };
538
- };
539
- function analyse(value) {
540
- const parsed = complex.parse(value);
541
- const numValues = parsed.length;
542
- let numNumbers = 0;
543
- let numRGB = 0;
544
- let numHSL = 0;
545
- for (let i = 0; i < numValues; i++) {
546
- if (numNumbers || typeof parsed[i] === "number") {
547
- numNumbers++;
548
- } else {
549
- if (parsed[i].hue !== void 0) {
550
- numHSL++;
551
- } else {
552
- numRGB++;
553
- }
554
- }
555
- }
556
- return { parsed, numNumbers, numRGB, numHSL };
557
- }
558
- const mixComplex = (origin, target) => {
559
- const template2 = complex.createTransformer(target);
560
- const originStats = analyse(origin);
561
- const targetStats = analyse(target);
562
- const canInterpolate = originStats.numHSL === targetStats.numHSL && originStats.numRGB === targetStats.numRGB && originStats.numNumbers >= targetStats.numNumbers;
563
- if (canInterpolate) {
564
- return pipe(mixArray(originStats.parsed, targetStats.parsed), template2);
565
- } else {
566
- return (p) => `${p > 0 ? target : origin}`;
567
- }
568
- };
569
- const mixNumber = (from, to) => (p) => mix(from, to, p);
570
- function detectMixerFactory(v) {
571
- if (typeof v === "number") {
572
- return mixNumber;
573
- } else if (typeof v === "string") {
574
- if (color.test(v)) {
575
- return mixColor;
576
- } else {
577
- return mixComplex;
578
- }
579
- } else if (Array.isArray(v)) {
580
- return mixArray;
581
- } else if (typeof v === "object") {
582
- return mixObject;
583
- }
584
- }
585
- function createMixers(output, ease, customMixer) {
586
- const mixers = [];
587
- const mixerFactory = customMixer || detectMixerFactory(output[0]);
588
- const numMixers = output.length - 1;
589
- for (let i = 0; i < numMixers; i++) {
590
- let mixer = mixerFactory(output[i], output[i + 1]);
591
- if (ease) {
592
- const easingFunction = Array.isArray(ease) ? ease[i] : ease;
593
- mixer = pipe(easingFunction, mixer);
594
- }
595
- mixers.push(mixer);
596
- }
597
- return mixers;
598
- }
599
- function fastInterpolate([from, to], [mixer]) {
600
- return (v) => mixer(progress(from, to, v));
601
- }
602
- function slowInterpolate(input, mixers) {
603
- const inputLength = input.length;
604
- const lastInputIndex = inputLength - 1;
605
- return (v) => {
606
- let mixerIndex = 0;
607
- let foundMixerIndex = false;
608
- if (v <= input[0]) {
609
- foundMixerIndex = true;
610
- } else if (v >= input[lastInputIndex]) {
611
- mixerIndex = lastInputIndex - 1;
612
- foundMixerIndex = true;
613
- }
614
- if (!foundMixerIndex) {
615
- let i = 1;
616
- for (; i < inputLength; i++) {
617
- if (input[i] > v || i === lastInputIndex) {
618
- break;
619
- }
620
- }
621
- mixerIndex = i - 1;
622
- }
623
- const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);
624
- return mixers[mixerIndex](progressInRange);
625
- };
626
- }
627
- function interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {
628
- const inputLength = input.length;
629
- invariant(inputLength === output.length);
630
- invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1);
631
- if (input[0] > input[inputLength - 1]) {
632
- input = [].concat(input);
633
- output = [].concat(output);
634
- input.reverse();
635
- output.reverse();
636
- }
637
- const mixers = createMixers(output, ease, mixer);
638
- const interpolator = inputLength === 2 ? fastInterpolate(input, mixers) : slowInterpolate(input, mixers);
639
- return isClamp ? (v) => interpolator(clamp$1(input[0], input[inputLength - 1], v)) : interpolator;
640
- }
641
- const reverseEasing = (easing) => (p) => 1 - easing(1 - p);
642
- const mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;
643
- const createExpoIn = (power) => (p) => Math.pow(p, power);
644
- const createBackIn = (power) => (p) => p * p * ((power + 1) * p - power);
645
- const createAnticipate = (power) => {
646
- const backEasing = createBackIn(power);
647
- return (p) => (p *= 2) < 1 ? 0.5 * backEasing(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));
648
- };
649
- const DEFAULT_OVERSHOOT_STRENGTH = 1.525;
650
- const BOUNCE_FIRST_THRESHOLD = 4 / 11;
651
- const BOUNCE_SECOND_THRESHOLD = 8 / 11;
652
- const BOUNCE_THIRD_THRESHOLD = 9 / 10;
653
- const linear = (p) => p;
654
- const easeIn = createExpoIn(2);
655
- const easeOut = reverseEasing(easeIn);
656
- const easeInOut = mirrorEasing(easeIn);
657
- const circIn = (p) => 1 - Math.sin(Math.acos(p));
658
- const circOut = reverseEasing(circIn);
659
- const circInOut = mirrorEasing(circOut);
660
- const backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);
661
- const backOut = reverseEasing(backIn);
662
- const backInOut = mirrorEasing(backIn);
663
- const anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);
664
- const ca = 4356 / 361;
665
- const cb = 35442 / 1805;
666
- const cc = 16061 / 1805;
667
- const bounceOut = (p) => {
668
- if (p === 1 || p === 0)
669
- return p;
670
- const p2 = p * p;
671
- return p < BOUNCE_FIRST_THRESHOLD ? 7.5625 * p2 : p < BOUNCE_SECOND_THRESHOLD ? 9.075 * p2 - 9.9 * p + 3.4 : p < BOUNCE_THIRD_THRESHOLD ? ca * p2 - cb * p + cc : 10.8 * p * p - 20.52 * p + 10.72;
672
- };
673
- const bounceIn = reverseEasing(bounceOut);
674
- const bounceInOut = (p) => p < 0.5 ? 0.5 * (1 - bounceOut(1 - p * 2)) : 0.5 * bounceOut(p * 2 - 1) + 0.5;
675
- const copyProperty = (to, from, property2, ignoreNonConfigurable) => {
676
- if (property2 === "length" || property2 === "prototype") {
677
- return;
678
- }
679
- if (property2 === "arguments" || property2 === "caller") {
680
- return;
681
- }
682
- const toDescriptor = Object.getOwnPropertyDescriptor(to, property2);
683
- const fromDescriptor = Object.getOwnPropertyDescriptor(from, property2);
684
- if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
685
- return;
686
- }
687
- Object.defineProperty(to, property2, fromDescriptor);
688
- };
689
- const canCopyProperty = function(toDescriptor, fromDescriptor) {
690
- return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
691
- };
692
- const changePrototype = (to, from) => {
693
- const fromPrototype = Object.getPrototypeOf(from);
694
- if (fromPrototype === Object.getPrototypeOf(to)) {
695
- return;
696
- }
697
- Object.setPrototypeOf(to, fromPrototype);
698
- };
699
- const wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
700
- ${fromBody}`;
701
- const toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
702
- const toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
703
- const changeToString = (to, from, name2) => {
704
- const withName = name2 === "" ? "" : `with ${name2.trim()}() `;
705
- const newToString = wrappedToString.bind(null, withName, from.toString());
706
- Object.defineProperty(newToString, "name", toStringName);
707
- Object.defineProperty(to, "toString", { ...toStringDescriptor, value: newToString });
708
- };
709
- function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
710
- const { name: name2 } = to;
711
- for (const property2 of Reflect.ownKeys(from)) {
712
- copyProperty(to, from, property2, ignoreNonConfigurable);
713
- }
714
- changePrototype(to, from);
715
- changeToString(to, from, name2);
716
- return to;
717
- }
718
- const cacheStore = /* @__PURE__ */ new WeakMap();
719
- function pMemoize(fn, { cacheKey = ([firstArgument]) => firstArgument, cache = /* @__PURE__ */ new Map() } = {}) {
720
- const promiseCache = /* @__PURE__ */ new Map();
721
- const memoized = function(...arguments_) {
722
- const key = cacheKey(arguments_);
723
- if (promiseCache.has(key)) {
724
- return promiseCache.get(key);
725
- }
726
- const promise = (async () => {
727
- try {
728
- if (cache && await cache.has(key)) {
729
- return await cache.get(key);
730
- }
731
- const promise2 = fn.apply(this, arguments_);
732
- const result = await promise2;
733
- try {
734
- return result;
735
- } finally {
736
- if (cache) {
737
- await cache.set(key, result);
738
- }
739
- }
740
- } finally {
741
- promiseCache.delete(key);
742
- }
743
- })();
744
- promiseCache.set(key, promise);
745
- return promise;
746
- };
747
- mimicFunction(memoized, fn, {
748
- ignoreNonConfigurable: true
749
- });
750
- cacheStore.set(memoized, cache);
751
- return memoized;
752
- }
753
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
754
- function getDefaultExportFromCjs(x) {
755
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
756
- }
757
- var squirrelly_min = { exports: {} };
758
- (function(module2, exports2) {
759
- !function(e, t) {
760
- t(exports2);
761
- }(commonjsGlobal, function(e) {
762
- function t(e2) {
763
- var n2, r2, a2 = new Error(e2);
764
- return n2 = a2, r2 = t.prototype, Object.setPrototypeOf ? Object.setPrototypeOf(n2, r2) : n2.__proto__ = r2, a2;
765
- }
766
- function n(e2, n2, r2) {
767
- var a2 = n2.slice(0, r2).split(/\n/), i2 = a2.length, s2 = a2[i2 - 1].length + 1;
768
- throw t(e2 += " at line " + i2 + " col " + s2 + ":\n\n " + n2.split(/\n/)[i2 - 1] + "\n " + Array(s2).join(" ") + "^");
769
- }
770
- t.prototype = Object.create(Error.prototype, { name: { value: "Squirrelly Error", enumerable: false } });
771
- var r = new Function("return this")().Promise, a = false;
772
- try {
773
- a = new Function("return (async function(){}).constructor")();
774
- } catch (e2) {
775
- if (!(e2 instanceof SyntaxError))
776
- throw e2;
777
- }
778
- function i(e2, t2) {
779
- return Object.prototype.hasOwnProperty.call(e2, t2);
780
- }
781
- function s(e2, t2, n2) {
782
- for (var r2 in t2)
783
- i(t2, r2) && (null == t2[r2] || "object" != typeof t2[r2] || "storage" !== r2 && "prefixes" !== r2 || n2 ? e2[r2] = t2[r2] : e2[r2] = s({}, t2[r2]));
784
- return e2;
785
- }
786
- var c = /^async +/, o = /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g, l = /'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g, f = /"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g, u = /[.*+\-?^${}()|[\]\\]/g;
787
- function p(e2) {
788
- return u.test(e2) ? e2.replace(u, "\\$&") : e2;
789
- }
790
- function h(e2, r2) {
791
- r2.rmWhitespace && (e2 = e2.replace(/[\r\n]+/g, "\n").replace(/^\s+|\s+$/gm, "")), o.lastIndex = 0, l.lastIndex = 0, f.lastIndex = 0;
792
- var a2 = r2.prefixes, i2 = [a2.h, a2.b, a2.i, a2.r, a2.c, a2.e].reduce(function(e3, t2) {
793
- return e3 && t2 ? e3 + "|" + p(t2) : t2 ? p(t2) : e3;
794
- }, ""), s2 = new RegExp("([|()]|=>)|('|\"|`|\\/\\*)|\\s*((\\/)?(-|_)?" + p(r2.tags[1]) + ")", "g"), u2 = new RegExp("([^]*?)" + p(r2.tags[0]) + "(-|_)?\\s*(" + i2 + ")?\\s*", "g"), h2 = 0, d2 = false;
795
- function g2(t2, a3) {
796
- var i3, p2 = { f: [] }, g3 = 0, v3 = "c";
797
- function m3(t3) {
798
- var a4 = e2.slice(h2, t3), i4 = a4.trim();
799
- if ("f" === v3)
800
- "safe" === i4 ? p2.raw = true : r2.async && c.test(i4) ? (i4 = i4.replace(c, ""), p2.f.push([i4, "", true])) : p2.f.push([i4, ""]);
801
- else if ("fp" === v3)
802
- p2.f[p2.f.length - 1][1] += i4;
803
- else if ("err" === v3) {
804
- if (i4) {
805
- var s3 = a4.search(/\S/);
806
- n("invalid syntax", e2, h2 + s3);
807
- }
808
- } else
809
- p2[v3] = i4;
810
- h2 = t3 + 1;
811
- }
812
- for ("h" === a3 || "b" === a3 || "c" === a3 ? v3 = "n" : "r" === a3 && (p2.raw = true, a3 = "i"), s2.lastIndex = h2; null !== (i3 = s2.exec(e2)); ) {
813
- var y3 = i3[1], x2 = i3[2], b2 = i3[3], w2 = i3[4], F2 = i3[5], S2 = i3.index;
814
- if (y3)
815
- "(" === y3 ? (0 === g3 && ("n" === v3 ? (m3(S2), v3 = "p") : "f" === v3 && (m3(S2), v3 = "fp")), g3++) : ")" === y3 ? 0 === --g3 && "c" !== v3 && (m3(S2), v3 = "err") : 0 === g3 && "|" === y3 ? (m3(S2), v3 = "f") : "=>" === y3 && (m3(S2), h2 += 1, v3 = "res");
816
- else if (x2) {
817
- if ("/*" === x2) {
818
- var I2 = e2.indexOf("*/", s2.lastIndex);
819
- -1 === I2 && n("unclosed comment", e2, i3.index), s2.lastIndex = I2 + 2;
820
- } else if ("'" === x2) {
821
- l.lastIndex = i3.index, l.exec(e2) ? s2.lastIndex = l.lastIndex : n("unclosed string", e2, i3.index);
822
- } else if ('"' === x2) {
823
- f.lastIndex = i3.index, f.exec(e2) ? s2.lastIndex = f.lastIndex : n("unclosed string", e2, i3.index);
824
- } else if ("`" === x2) {
825
- o.lastIndex = i3.index, o.exec(e2) ? s2.lastIndex = o.lastIndex : n("unclosed string", e2, i3.index);
826
- }
827
- } else if (b2)
828
- return m3(S2), h2 = S2 + i3[0].length, u2.lastIndex = h2, d2 = F2, w2 && "h" === a3 && (a3 = "s"), p2.t = a3, p2;
829
- }
830
- return n("unclosed tag", e2, t2), p2;
831
- }
832
- var v2 = function i3(s3, o2) {
833
- s3.b = [], s3.d = [];
834
- var l2, f2 = false, p2 = [];
835
- function v3(e3, t2) {
836
- e3 && (e3 = function(e4, t3, n2, r3) {
837
- var a3, i4;
838
- return "string" == typeof t3.autoTrim ? a3 = i4 = t3.autoTrim : Array.isArray(t3.autoTrim) && (a3 = t3.autoTrim[1], i4 = t3.autoTrim[0]), (n2 || false === n2) && (a3 = n2), (r3 || false === r3) && (i4 = r3), "slurp" === a3 && "slurp" === i4 ? e4.trim() : ("_" === a3 || "slurp" === a3 ? e4 = String.prototype.trimLeft ? e4.trimLeft() : e4.replace(/^[\s\uFEFF\xA0]+/, "") : "-" !== a3 && "nl" !== a3 || (e4 = e4.replace(/^(?:\n|\r|\r\n)/, "")), "_" === i4 || "slurp" === i4 ? e4 = String.prototype.trimRight ? e4.trimRight() : e4.replace(/[\s\uFEFF\xA0]+$/, "") : "-" !== i4 && "nl" !== i4 || (e4 = e4.replace(/(?:\n|\r|\r\n)$/, "")), e4);
839
- }(e3, r2, d2, t2)) && (e3 = e3.replace(/\\|'/g, "\\$&").replace(/\r\n|\n|\r/g, "\\n"), p2.push(e3));
840
- }
841
- for (; null !== (l2 = u2.exec(e2)); ) {
842
- var m3, y3 = l2[1], x2 = l2[2], b2 = l2[3] || "";
843
- for (var w2 in a2)
844
- if (a2[w2] === b2) {
845
- m3 = w2;
846
- break;
847
- }
848
- v3(y3, x2), h2 = l2.index + l2[0].length, m3 || n("unrecognized tag type: " + b2, e2, h2);
849
- var F2 = g2(l2.index, m3), S2 = F2.t;
850
- if ("h" === S2) {
851
- var I2 = F2.n || "";
852
- r2.async && c.test(I2) && (F2.a = true, F2.n = I2.replace(c, "")), F2 = i3(F2), p2.push(F2);
853
- } else if ("c" === S2) {
854
- if (s3.n === F2.n)
855
- return f2 ? (f2.d = p2, s3.b.push(f2)) : s3.d = p2, s3;
856
- n("Helper start and end don't match", e2, l2.index + l2[0].length);
857
- } else if ("b" === S2) {
858
- f2 ? (f2.d = p2, s3.b.push(f2)) : s3.d = p2;
859
- var R2 = F2.n || "";
860
- r2.async && c.test(R2) && (F2.a = true, F2.n = R2.replace(c, "")), f2 = F2, p2 = [];
861
- } else if ("s" === S2) {
862
- var T2 = F2.n || "";
863
- r2.async && c.test(T2) && (F2.a = true, F2.n = T2.replace(c, "")), p2.push(F2);
864
- } else
865
- p2.push(F2);
866
- }
867
- if (!o2)
868
- throw t('unclosed helper "' + s3.n + '"');
869
- return v3(e2.slice(h2, e2.length), false), s3.d = p2, s3;
870
- }({ f: [] }, true);
871
- if (r2.plugins)
872
- for (var m2 = 0; m2 < r2.plugins.length; m2++) {
873
- var y2 = r2.plugins[m2];
874
- y2.processAST && (v2.d = y2.processAST(v2.d, r2));
875
- }
876
- return v2.d;
877
- }
878
- function d(e2, t2) {
879
- var n2 = h(e2, t2), r2 = "var tR='';" + (t2.useWith ? "with(" + t2.varName + "||{}){" : "") + x(n2, t2) + "if(cb){cb(null,tR)} return tR" + (t2.useWith ? "}" : "");
880
- if (t2.plugins)
881
- for (var a2 = 0; a2 < t2.plugins.length; a2++) {
882
- var i2 = t2.plugins[a2];
883
- i2.processFnString && (r2 = i2.processFnString(r2, t2));
884
- }
885
- return r2;
886
- }
887
- function g(e2, t2) {
888
- for (var n2 = 0; n2 < t2.length; n2++) {
889
- var r2 = t2[n2][0], a2 = t2[n2][1];
890
- e2 = (t2[n2][2] ? "await " : "") + "c.l('F','" + r2 + "')(" + e2, a2 && (e2 += "," + a2), e2 += ")";
891
- }
892
- return e2;
893
- }
894
- function v(e2, t2, n2, r2, a2, i2) {
895
- var s2 = "{exec:" + (a2 ? "async " : "") + y(n2, t2, e2) + ",params:[" + r2 + "]";
896
- return i2 && (s2 += ",name:'" + i2 + "'"), a2 && (s2 += ",async:true"), s2 += "}";
897
- }
898
- function m(e2, t2) {
899
- for (var n2 = "[", r2 = 0; r2 < e2.length; r2++) {
900
- var a2 = e2[r2];
901
- n2 += v(t2, a2.res || "", a2.d, a2.p || "", a2.a, a2.n), r2 < e2.length && (n2 += ",");
902
- }
903
- return n2 += "]";
904
- }
905
- function y(e2, t2, n2) {
906
- return "function(" + t2 + "){var tR='';" + x(e2, n2) + "return tR}";
907
- }
908
- function x(e2, t2) {
909
- for (var n2 = 0, r2 = e2.length, a2 = ""; n2 < r2; n2++) {
910
- var i2 = e2[n2];
911
- if ("string" == typeof i2) {
912
- a2 += "tR+='" + i2 + "';";
913
- } else {
914
- var s2 = i2.t, c2 = i2.c || "", o2 = i2.f, l2 = i2.n || "", f2 = i2.p || "", u2 = i2.res || "", p2 = i2.b, h2 = !!i2.a;
915
- if ("i" === s2) {
916
- t2.defaultFilter && (c2 = "c.l('F','" + t2.defaultFilter + "')(" + c2 + ")");
917
- var d2 = g(c2, o2);
918
- !i2.raw && t2.autoEscape && (d2 = "c.l('F','e')(" + d2 + ")"), a2 += "tR+=" + d2 + ";";
919
- } else if ("h" === s2)
920
- if (t2.storage.nativeHelpers.get(l2))
921
- a2 += t2.storage.nativeHelpers.get(l2)(i2, t2);
922
- else {
923
- var y2 = (h2 ? "await " : "") + "c.l('H','" + l2 + "')(" + v(t2, u2, i2.d, f2, h2);
924
- y2 += p2 ? "," + m(p2, t2) : ",[]", a2 += "tR+=" + g(y2 += ",c)", o2) + ";";
925
- }
926
- else
927
- "s" === s2 ? a2 += "tR+=" + g((h2 ? "await " : "") + "c.l('H','" + l2 + "')({params:[" + f2 + "]},[],c)", o2) + ";" : "e" === s2 && (a2 += c2 + "\n");
928
- }
929
- }
930
- return a2;
931
- }
932
- var b = function() {
933
- function e2(e3) {
934
- this.cache = e3;
935
- }
936
- return e2.prototype.define = function(e3, t2) {
937
- this.cache[e3] = t2;
938
- }, e2.prototype.get = function(e3) {
939
- return this.cache[e3];
940
- }, e2.prototype.remove = function(e3) {
941
- delete this.cache[e3];
942
- }, e2.prototype.reset = function() {
943
- this.cache = {};
944
- }, e2.prototype.load = function(e3) {
945
- s(this.cache, e3, true);
946
- }, e2;
947
- }();
948
- function w(e2, n2, r2, a2) {
949
- if (n2 && n2.length > 0)
950
- throw t((a2 ? "Native" : "") + "Helper '" + e2 + "' doesn't accept blocks");
951
- if (r2 && r2.length > 0)
952
- throw t((a2 ? "Native" : "") + "Helper '" + e2 + "' doesn't accept filters");
953
- }
954
- var F = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" };
955
- function S(e2) {
956
- return F[e2];
957
- }
958
- var I = new b({}), R = new b({ each: function(e2, t2) {
959
- var n2 = "", r2 = e2.params[0];
960
- if (w("each", t2, false), e2.async)
961
- return new Promise(function(t3) {
962
- !function e3(t4, n3, r3, a3, i2) {
963
- r3(t4[n3], n3).then(function(s2) {
964
- a3 += s2, n3 === t4.length - 1 ? i2(a3) : e3(t4, n3 + 1, r3, a3, i2);
965
- });
966
- }(r2, 0, e2.exec, n2, t3);
967
- });
968
- for (var a2 = 0; a2 < r2.length; a2++)
969
- n2 += e2.exec(r2[a2], a2);
970
- return n2;
971
- }, foreach: function(e2, t2) {
972
- var n2 = e2.params[0];
973
- if (w("foreach", t2, false), e2.async)
974
- return new Promise(function(t3) {
975
- !function e3(t4, n3, r3, a3, i2, s2) {
976
- a3(n3[r3], t4[n3[r3]]).then(function(c2) {
977
- i2 += c2, r3 === n3.length - 1 ? s2(i2) : e3(t4, n3, r3 + 1, a3, i2, s2);
978
- });
979
- }(n2, Object.keys(n2), 0, e2.exec, "", t3);
980
- });
981
- var r2 = "";
982
- for (var a2 in n2)
983
- i(n2, a2) && (r2 += e2.exec(a2, n2[a2]));
984
- return r2;
985
- }, include: function(e2, n2, r2) {
986
- w("include", n2, false);
987
- var a2 = r2.storage.templates.get(e2.params[0]);
988
- if (!a2)
989
- throw t('Could not fetch template "' + e2.params[0] + '"');
990
- return a2(e2.params[1], r2);
991
- }, extends: function(e2, n2, r2) {
992
- var a2 = e2.params[1] || {};
993
- a2.content = e2.exec();
994
- for (var i2 = 0; i2 < n2.length; i2++) {
995
- var s2 = n2[i2];
996
- a2[s2.name] = s2.exec();
997
- }
998
- var c2 = r2.storage.templates.get(e2.params[0]);
999
- if (!c2)
1000
- throw t('Could not fetch template "' + e2.params[0] + '"');
1001
- return c2(a2, r2);
1002
- }, useScope: function(e2, t2) {
1003
- return w("useScope", t2, false), e2.exec(e2.params[0]);
1004
- } }), T = new b({ if: function(e2, t2) {
1005
- w("if", false, e2.f, true);
1006
- var n2 = "if(" + e2.p + "){" + x(e2.d, t2) + "}";
1007
- if (e2.b)
1008
- for (var r2 = 0; r2 < e2.b.length; r2++) {
1009
- var a2 = e2.b[r2];
1010
- "else" === a2.n ? n2 += "else{" + x(a2.d, t2) + "}" : "elif" === a2.n && (n2 += "else if(" + a2.p + "){" + x(a2.d, t2) + "}");
1011
- }
1012
- return n2;
1013
- }, try: function(e2, n2) {
1014
- if (w("try", false, e2.f, true), !e2.b || 1 !== e2.b.length || "catch" !== e2.b[0].n)
1015
- throw t("native helper 'try' only accepts 1 block, 'catch'");
1016
- var r2 = "try{" + x(e2.d, n2) + "}", a2 = e2.b[0];
1017
- return r2 += "catch" + (a2.res ? "(" + a2.res + ")" : "") + "{" + x(a2.d, n2) + "}";
1018
- }, block: function(e2, t2) {
1019
- return w("block", e2.b, e2.f, true), "if(!" + t2.varName + "[" + e2.p + "]){tR+=(" + y(e2.d, "", t2) + ")()}else{tR+=" + t2.varName + "[" + e2.p + "]}";
1020
- } }), E = new b({ e: function(e2) {
1021
- var t2 = String(e2);
1022
- return /[&<>"']/.test(t2) ? t2.replace(/[&<>"']/g, S) : t2;
1023
- } }), j = { varName: "it", autoTrim: [false, "nl"], autoEscape: true, defaultFilter: false, tags: ["{{", "}}"], l: function(e2, n2) {
1024
- if ("H" === e2) {
1025
- var r2 = this.storage.helpers.get(n2);
1026
- if (r2)
1027
- return r2;
1028
- throw t("Can't find helper '" + n2 + "'");
1029
- }
1030
- if ("F" === e2) {
1031
- var a2 = this.storage.filters.get(n2);
1032
- if (a2)
1033
- return a2;
1034
- throw t("Can't find filter '" + n2 + "'");
1035
- }
1036
- }, async: false, storage: { helpers: R, nativeHelpers: T, filters: E, templates: I }, prefixes: { h: "@", b: "#", i: "", r: "*", c: "/", e: "!" }, cache: false, plugins: [], useWith: false };
1037
- function H(e2, t2) {
1038
- var n2 = {};
1039
- return s(n2, j), t2 && s(n2, t2), e2 && s(n2, e2), n2.l.bind(n2), n2;
1040
- }
1041
- function O(e2, n2) {
1042
- var r2 = H(n2 || {}), i2 = Function;
1043
- if (r2.async) {
1044
- if (!a)
1045
- throw t("This environment doesn't support async/await");
1046
- i2 = a;
1047
- }
1048
- try {
1049
- return new i2(r2.varName, "c", "cb", d(e2, r2));
1050
- } catch (n3) {
1051
- throw n3 instanceof SyntaxError ? t("Bad template syntax\n\n" + n3.message + "\n" + Array(n3.message.length + 1).join("=") + "\n" + d(e2, r2)) : n3;
1052
- }
1053
- }
1054
- function _(e2, t2) {
1055
- var n2;
1056
- return t2.cache && t2.name && t2.storage.templates.get(t2.name) ? t2.storage.templates.get(t2.name) : (n2 = "function" == typeof e2 ? e2 : O(e2, t2), t2.cache && t2.name && t2.storage.templates.define(t2.name, n2), n2);
1057
- }
1058
- j.l.bind(j), e.compile = O, e.compileScope = x, e.compileScopeIntoFunction = y, e.compileToString = d, e.defaultConfig = j, e.filters = E, e.getConfig = H, e.helpers = R, e.nativeHelpers = T, e.parse = h, e.render = function(e2, n2, a2, i2) {
1059
- var s2 = H(a2 || {});
1060
- if (!s2.async)
1061
- return _(e2, s2)(n2, s2);
1062
- if (!i2) {
1063
- if ("function" == typeof r)
1064
- return new r(function(t2, r2) {
1065
- try {
1066
- t2(_(e2, s2)(n2, s2));
1067
- } catch (e3) {
1068
- r2(e3);
1069
- }
1070
- });
1071
- throw t("Please provide a callback function, this env doesn't support Promises");
1072
- }
1073
- try {
1074
- _(e2, s2)(n2, s2, i2);
1075
- } catch (e3) {
1076
- return i2(e3);
1077
- }
1078
- }, e.templates = I, Object.defineProperty(e, "__esModule", { value: true });
1079
- });
1080
- })(squirrelly_min, squirrelly_min.exports);
1081
- var squirrelly_minExports = squirrelly_min.exports;
1082
- var browserPonyfill = { exports: {} };
1083
- (function(module2, exports2) {
1084
- var __global__ = typeof globalThis !== "undefined" && globalThis || typeof self !== "undefined" && self || typeof commonjsGlobal !== "undefined" && commonjsGlobal;
1085
- var __globalThis__ = function() {
1086
- function F() {
1087
- this.fetch = false;
1088
- this.DOMException = __global__.DOMException;
1089
- }
1090
- F.prototype = __global__;
1091
- return new F();
1092
- }();
1093
- (function(globalThis2) {
1094
- (function(exports3) {
1095
- var global2 = typeof globalThis2 !== "undefined" && globalThis2 || typeof self !== "undefined" && self || typeof global2 !== "undefined" && global2;
1096
- var support = {
1097
- searchParams: "URLSearchParams" in global2,
1098
- iterable: "Symbol" in global2 && "iterator" in Symbol,
1099
- blob: "FileReader" in global2 && "Blob" in global2 && function() {
1100
- try {
1101
- new Blob();
1102
- return true;
1103
- } catch (e) {
1104
- return false;
1105
- }
1106
- }(),
1107
- formData: "FormData" in global2,
1108
- arrayBuffer: "ArrayBuffer" in global2
1109
- };
1110
- function isDataView(obj) {
1111
- return obj && DataView.prototype.isPrototypeOf(obj);
1112
- }
1113
- if (support.arrayBuffer) {
1114
- var viewClasses = [
1115
- "[object Int8Array]",
1116
- "[object Uint8Array]",
1117
- "[object Uint8ClampedArray]",
1118
- "[object Int16Array]",
1119
- "[object Uint16Array]",
1120
- "[object Int32Array]",
1121
- "[object Uint32Array]",
1122
- "[object Float32Array]",
1123
- "[object Float64Array]"
1124
- ];
1125
- var isArrayBufferView = ArrayBuffer.isView || function(obj) {
1126
- return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1;
1127
- };
1128
- }
1129
- function normalizeName(name2) {
1130
- if (typeof name2 !== "string") {
1131
- name2 = String(name2);
1132
- }
1133
- if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name2) || name2 === "") {
1134
- throw new TypeError('Invalid character in header field name: "' + name2 + '"');
1135
- }
1136
- return name2.toLowerCase();
1137
- }
1138
- function normalizeValue(value) {
1139
- if (typeof value !== "string") {
1140
- value = String(value);
1141
- }
1142
- return value;
1143
- }
1144
- function iteratorFor(items) {
1145
- var iterator = {
1146
- next: function() {
1147
- var value = items.shift();
1148
- return { done: value === void 0, value };
1149
- }
1150
- };
1151
- if (support.iterable) {
1152
- iterator[Symbol.iterator] = function() {
1153
- return iterator;
1154
- };
1155
- }
1156
- return iterator;
1157
- }
1158
- function Headers(headers) {
1159
- this.map = {};
1160
- if (headers instanceof Headers) {
1161
- headers.forEach(function(value, name2) {
1162
- this.append(name2, value);
1163
- }, this);
1164
- } else if (Array.isArray(headers)) {
1165
- headers.forEach(function(header) {
1166
- this.append(header[0], header[1]);
1167
- }, this);
1168
- } else if (headers) {
1169
- Object.getOwnPropertyNames(headers).forEach(function(name2) {
1170
- this.append(name2, headers[name2]);
1171
- }, this);
1172
- }
1173
- }
1174
- Headers.prototype.append = function(name2, value) {
1175
- name2 = normalizeName(name2);
1176
- value = normalizeValue(value);
1177
- var oldValue = this.map[name2];
1178
- this.map[name2] = oldValue ? oldValue + ", " + value : value;
1179
- };
1180
- Headers.prototype["delete"] = function(name2) {
1181
- delete this.map[normalizeName(name2)];
1182
- };
1183
- Headers.prototype.get = function(name2) {
1184
- name2 = normalizeName(name2);
1185
- return this.has(name2) ? this.map[name2] : null;
1186
- };
1187
- Headers.prototype.has = function(name2) {
1188
- return this.map.hasOwnProperty(normalizeName(name2));
1189
- };
1190
- Headers.prototype.set = function(name2, value) {
1191
- this.map[normalizeName(name2)] = normalizeValue(value);
1192
- };
1193
- Headers.prototype.forEach = function(callback, thisArg) {
1194
- for (var name2 in this.map) {
1195
- if (this.map.hasOwnProperty(name2)) {
1196
- callback.call(thisArg, this.map[name2], name2, this);
1197
- }
1198
- }
1199
- };
1200
- Headers.prototype.keys = function() {
1201
- var items = [];
1202
- this.forEach(function(value, name2) {
1203
- items.push(name2);
1204
- });
1205
- return iteratorFor(items);
1206
- };
1207
- Headers.prototype.values = function() {
1208
- var items = [];
1209
- this.forEach(function(value) {
1210
- items.push(value);
1211
- });
1212
- return iteratorFor(items);
1213
- };
1214
- Headers.prototype.entries = function() {
1215
- var items = [];
1216
- this.forEach(function(value, name2) {
1217
- items.push([name2, value]);
1218
- });
1219
- return iteratorFor(items);
1220
- };
1221
- if (support.iterable) {
1222
- Headers.prototype[Symbol.iterator] = Headers.prototype.entries;
1223
- }
1224
- function consumed(body) {
1225
- if (body.bodyUsed) {
1226
- return Promise.reject(new TypeError("Already read"));
1227
- }
1228
- body.bodyUsed = true;
1229
- }
1230
- function fileReaderReady(reader) {
1231
- return new Promise(function(resolve, reject) {
1232
- reader.onload = function() {
1233
- resolve(reader.result);
1234
- };
1235
- reader.onerror = function() {
1236
- reject(reader.error);
1237
- };
1238
- });
1239
- }
1240
- function readBlobAsArrayBuffer(blob) {
1241
- var reader = new FileReader();
1242
- var promise = fileReaderReady(reader);
1243
- reader.readAsArrayBuffer(blob);
1244
- return promise;
1245
- }
1246
- function readBlobAsText(blob) {
1247
- var reader = new FileReader();
1248
- var promise = fileReaderReady(reader);
1249
- reader.readAsText(blob);
1250
- return promise;
1251
- }
1252
- function readArrayBufferAsText(buf) {
1253
- var view = new Uint8Array(buf);
1254
- var chars = new Array(view.length);
1255
- for (var i = 0; i < view.length; i++) {
1256
- chars[i] = String.fromCharCode(view[i]);
1257
- }
1258
- return chars.join("");
1259
- }
1260
- function bufferClone(buf) {
1261
- if (buf.slice) {
1262
- return buf.slice(0);
1263
- } else {
1264
- var view = new Uint8Array(buf.byteLength);
1265
- view.set(new Uint8Array(buf));
1266
- return view.buffer;
1267
- }
1268
- }
1269
- function Body() {
1270
- this.bodyUsed = false;
1271
- this._initBody = function(body) {
1272
- this.bodyUsed = this.bodyUsed;
1273
- this._bodyInit = body;
1274
- if (!body) {
1275
- this._bodyText = "";
1276
- } else if (typeof body === "string") {
1277
- this._bodyText = body;
1278
- } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
1279
- this._bodyBlob = body;
1280
- } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
1281
- this._bodyFormData = body;
1282
- } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
1283
- this._bodyText = body.toString();
1284
- } else if (support.arrayBuffer && support.blob && isDataView(body)) {
1285
- this._bodyArrayBuffer = bufferClone(body.buffer);
1286
- this._bodyInit = new Blob([this._bodyArrayBuffer]);
1287
- } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
1288
- this._bodyArrayBuffer = bufferClone(body);
1289
- } else {
1290
- this._bodyText = body = Object.prototype.toString.call(body);
1291
- }
1292
- if (!this.headers.get("content-type")) {
1293
- if (typeof body === "string") {
1294
- this.headers.set("content-type", "text/plain;charset=UTF-8");
1295
- } else if (this._bodyBlob && this._bodyBlob.type) {
1296
- this.headers.set("content-type", this._bodyBlob.type);
1297
- } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
1298
- this.headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8");
1299
- }
1300
- }
1301
- };
1302
- if (support.blob) {
1303
- this.blob = function() {
1304
- var rejected = consumed(this);
1305
- if (rejected) {
1306
- return rejected;
1307
- }
1308
- if (this._bodyBlob) {
1309
- return Promise.resolve(this._bodyBlob);
1310
- } else if (this._bodyArrayBuffer) {
1311
- return Promise.resolve(new Blob([this._bodyArrayBuffer]));
1312
- } else if (this._bodyFormData) {
1313
- throw new Error("could not read FormData body as blob");
1314
- } else {
1315
- return Promise.resolve(new Blob([this._bodyText]));
1316
- }
1317
- };
1318
- this.arrayBuffer = function() {
1319
- if (this._bodyArrayBuffer) {
1320
- var isConsumed = consumed(this);
1321
- if (isConsumed) {
1322
- return isConsumed;
1323
- }
1324
- if (ArrayBuffer.isView(this._bodyArrayBuffer)) {
1325
- return Promise.resolve(
1326
- this._bodyArrayBuffer.buffer.slice(
1327
- this._bodyArrayBuffer.byteOffset,
1328
- this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength
1329
- )
1330
- );
1331
- } else {
1332
- return Promise.resolve(this._bodyArrayBuffer);
1333
- }
1334
- } else {
1335
- return this.blob().then(readBlobAsArrayBuffer);
1336
- }
1337
- };
1338
- }
1339
- this.text = function() {
1340
- var rejected = consumed(this);
1341
- if (rejected) {
1342
- return rejected;
1343
- }
1344
- if (this._bodyBlob) {
1345
- return readBlobAsText(this._bodyBlob);
1346
- } else if (this._bodyArrayBuffer) {
1347
- return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer));
1348
- } else if (this._bodyFormData) {
1349
- throw new Error("could not read FormData body as text");
1350
- } else {
1351
- return Promise.resolve(this._bodyText);
1352
- }
1353
- };
1354
- if (support.formData) {
1355
- this.formData = function() {
1356
- return this.text().then(decode);
1357
- };
1358
- }
1359
- this.json = function() {
1360
- return this.text().then(JSON.parse);
1361
- };
1362
- return this;
1363
- }
1364
- var methods = ["DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT"];
1365
- function normalizeMethod(method) {
1366
- var upcased = method.toUpperCase();
1367
- return methods.indexOf(upcased) > -1 ? upcased : method;
1368
- }
1369
- function Request(input, options) {
1370
- if (!(this instanceof Request)) {
1371
- throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');
1372
- }
1373
- options = options || {};
1374
- var body = options.body;
1375
- if (input instanceof Request) {
1376
- if (input.bodyUsed) {
1377
- throw new TypeError("Already read");
1378
- }
1379
- this.url = input.url;
1380
- this.credentials = input.credentials;
1381
- if (!options.headers) {
1382
- this.headers = new Headers(input.headers);
1383
- }
1384
- this.method = input.method;
1385
- this.mode = input.mode;
1386
- this.signal = input.signal;
1387
- if (!body && input._bodyInit != null) {
1388
- body = input._bodyInit;
1389
- input.bodyUsed = true;
1390
- }
1391
- } else {
1392
- this.url = String(input);
1393
- }
1394
- this.credentials = options.credentials || this.credentials || "same-origin";
1395
- if (options.headers || !this.headers) {
1396
- this.headers = new Headers(options.headers);
1397
- }
1398
- this.method = normalizeMethod(options.method || this.method || "GET");
1399
- this.mode = options.mode || this.mode || null;
1400
- this.signal = options.signal || this.signal;
1401
- this.referrer = null;
1402
- if ((this.method === "GET" || this.method === "HEAD") && body) {
1403
- throw new TypeError("Body not allowed for GET or HEAD requests");
1404
- }
1405
- this._initBody(body);
1406
- if (this.method === "GET" || this.method === "HEAD") {
1407
- if (options.cache === "no-store" || options.cache === "no-cache") {
1408
- var reParamSearch = /([?&])_=[^&]*/;
1409
- if (reParamSearch.test(this.url)) {
1410
- this.url = this.url.replace(reParamSearch, "$1_=" + (/* @__PURE__ */ new Date()).getTime());
1411
- } else {
1412
- var reQueryString = /\?/;
1413
- this.url += (reQueryString.test(this.url) ? "&" : "?") + "_=" + (/* @__PURE__ */ new Date()).getTime();
1414
- }
1415
- }
1416
- }
1417
- }
1418
- Request.prototype.clone = function() {
1419
- return new Request(this, { body: this._bodyInit });
1420
- };
1421
- function decode(body) {
1422
- var form = new FormData();
1423
- body.trim().split("&").forEach(function(bytes) {
1424
- if (bytes) {
1425
- var split = bytes.split("=");
1426
- var name2 = split.shift().replace(/\+/g, " ");
1427
- var value = split.join("=").replace(/\+/g, " ");
1428
- form.append(decodeURIComponent(name2), decodeURIComponent(value));
1429
- }
1430
- });
1431
- return form;
1432
- }
1433
- function parseHeaders(rawHeaders) {
1434
- var headers = new Headers();
1435
- var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, " ");
1436
- preProcessedHeaders.split("\r").map(function(header) {
1437
- return header.indexOf("\n") === 0 ? header.substr(1, header.length) : header;
1438
- }).forEach(function(line) {
1439
- var parts = line.split(":");
1440
- var key = parts.shift().trim();
1441
- if (key) {
1442
- var value = parts.join(":").trim();
1443
- headers.append(key, value);
1444
- }
1445
- });
1446
- return headers;
1447
- }
1448
- Body.call(Request.prototype);
1449
- function Response(bodyInit, options) {
1450
- if (!(this instanceof Response)) {
1451
- throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');
1452
- }
1453
- if (!options) {
1454
- options = {};
1455
- }
1456
- this.type = "default";
1457
- this.status = options.status === void 0 ? 200 : options.status;
1458
- this.ok = this.status >= 200 && this.status < 300;
1459
- this.statusText = options.statusText === void 0 ? "" : "" + options.statusText;
1460
- this.headers = new Headers(options.headers);
1461
- this.url = options.url || "";
1462
- this._initBody(bodyInit);
1463
- }
1464
- Body.call(Response.prototype);
1465
- Response.prototype.clone = function() {
1466
- return new Response(this._bodyInit, {
1467
- status: this.status,
1468
- statusText: this.statusText,
1469
- headers: new Headers(this.headers),
1470
- url: this.url
1471
- });
1472
- };
1473
- Response.error = function() {
1474
- var response = new Response(null, { status: 0, statusText: "" });
1475
- response.type = "error";
1476
- return response;
1477
- };
1478
- var redirectStatuses = [301, 302, 303, 307, 308];
1479
- Response.redirect = function(url, status) {
1480
- if (redirectStatuses.indexOf(status) === -1) {
1481
- throw new RangeError("Invalid status code");
1482
- }
1483
- return new Response(null, { status, headers: { location: url } });
1484
- };
1485
- exports3.DOMException = global2.DOMException;
1486
- try {
1487
- new exports3.DOMException();
1488
- } catch (err) {
1489
- exports3.DOMException = function(message, name2) {
1490
- this.message = message;
1491
- this.name = name2;
1492
- var error = Error(message);
1493
- this.stack = error.stack;
1494
- };
1495
- exports3.DOMException.prototype = Object.create(Error.prototype);
1496
- exports3.DOMException.prototype.constructor = exports3.DOMException;
1497
- }
1498
- function fetch2(input, init) {
1499
- return new Promise(function(resolve, reject) {
1500
- var request = new Request(input, init);
1501
- if (request.signal && request.signal.aborted) {
1502
- return reject(new exports3.DOMException("Aborted", "AbortError"));
1503
- }
1504
- var xhr = new XMLHttpRequest();
1505
- function abortXhr() {
1506
- xhr.abort();
1507
- }
1508
- xhr.onload = function() {
1509
- var options = {
1510
- status: xhr.status,
1511
- statusText: xhr.statusText,
1512
- headers: parseHeaders(xhr.getAllResponseHeaders() || "")
1513
- };
1514
- options.url = "responseURL" in xhr ? xhr.responseURL : options.headers.get("X-Request-URL");
1515
- var body = "response" in xhr ? xhr.response : xhr.responseText;
1516
- setTimeout(function() {
1517
- resolve(new Response(body, options));
1518
- }, 0);
1519
- };
1520
- xhr.onerror = function() {
1521
- setTimeout(function() {
1522
- reject(new TypeError("Network request failed"));
1523
- }, 0);
1524
- };
1525
- xhr.ontimeout = function() {
1526
- setTimeout(function() {
1527
- reject(new TypeError("Network request failed"));
1528
- }, 0);
1529
- };
1530
- xhr.onabort = function() {
1531
- setTimeout(function() {
1532
- reject(new exports3.DOMException("Aborted", "AbortError"));
1533
- }, 0);
1534
- };
1535
- function fixUrl(url) {
1536
- try {
1537
- return url === "" && global2.location.href ? global2.location.href : url;
1538
- } catch (e) {
1539
- return url;
1540
- }
1541
- }
1542
- xhr.open(request.method, fixUrl(request.url), true);
1543
- if (request.credentials === "include") {
1544
- xhr.withCredentials = true;
1545
- } else if (request.credentials === "omit") {
1546
- xhr.withCredentials = false;
1547
- }
1548
- if ("responseType" in xhr) {
1549
- if (support.blob) {
1550
- xhr.responseType = "blob";
1551
- } else if (support.arrayBuffer && request.headers.get("Content-Type") && request.headers.get("Content-Type").indexOf("application/octet-stream") !== -1) {
1552
- xhr.responseType = "arraybuffer";
1553
- }
1554
- }
1555
- if (init && typeof init.headers === "object" && !(init.headers instanceof Headers)) {
1556
- Object.getOwnPropertyNames(init.headers).forEach(function(name2) {
1557
- xhr.setRequestHeader(name2, normalizeValue(init.headers[name2]));
1558
- });
1559
- } else {
1560
- request.headers.forEach(function(value, name2) {
1561
- xhr.setRequestHeader(name2, value);
1562
- });
1563
- }
1564
- if (request.signal) {
1565
- request.signal.addEventListener("abort", abortXhr);
1566
- xhr.onreadystatechange = function() {
1567
- if (xhr.readyState === 4) {
1568
- request.signal.removeEventListener("abort", abortXhr);
1569
- }
1570
- };
1571
- }
1572
- xhr.send(typeof request._bodyInit === "undefined" ? null : request._bodyInit);
1573
- });
1574
- }
1575
- fetch2.polyfill = true;
1576
- if (!global2.fetch) {
1577
- global2.fetch = fetch2;
1578
- global2.Headers = Headers;
1579
- global2.Request = Request;
1580
- global2.Response = Response;
1581
- }
1582
- exports3.Headers = Headers;
1583
- exports3.Request = Request;
1584
- exports3.Response = Response;
1585
- exports3.fetch = fetch2;
1586
- return exports3;
1587
- })({});
1588
- })(__globalThis__);
1589
- __globalThis__.fetch.ponyfill = true;
1590
- delete __globalThis__.fetch.polyfill;
1591
- var ctx = __global__.fetch ? __global__ : __globalThis__;
1592
- exports2 = ctx.fetch;
1593
- exports2.default = ctx.fetch;
1594
- exports2.fetch = ctx.fetch;
1595
- exports2.Headers = ctx.Headers;
1596
- exports2.Request = ctx.Request;
1597
- exports2.Response = ctx.Response;
1598
- module2.exports = exports2;
1599
- })(browserPonyfill, browserPonyfill.exports);
1600
- var browserPonyfillExports = browserPonyfill.exports;
1601
- const fetch$1 = /* @__PURE__ */ getDefaultExportFromCjs(browserPonyfillExports);
1602
- var wasmAsyncWeb$1 = {};
1603
- var wrapAssembly$1 = {};
1604
- var YGEnums = {};
1605
- Object.defineProperty(YGEnums, "__esModule", {
1606
- value: true
1607
- });
1608
- YGEnums.default = YGEnums.Wrap = YGEnums.Unit = YGEnums.PrintOptions = YGEnums.PositionType = YGEnums.Overflow = YGEnums.NodeType = YGEnums.MeasureMode = YGEnums.LogLevel = YGEnums.Justify = YGEnums.Gutter = YGEnums.FlexDirection = YGEnums.ExperimentalFeature = YGEnums.Errata = YGEnums.Edge = YGEnums.Display = YGEnums.Direction = YGEnums.Dimension = YGEnums.Align = void 0;
1609
- let Align = /* @__PURE__ */ function(Align2) {
1610
- Align2[Align2["Auto"] = 0] = "Auto";
1611
- Align2[Align2["FlexStart"] = 1] = "FlexStart";
1612
- Align2[Align2["Center"] = 2] = "Center";
1613
- Align2[Align2["FlexEnd"] = 3] = "FlexEnd";
1614
- Align2[Align2["Stretch"] = 4] = "Stretch";
1615
- Align2[Align2["Baseline"] = 5] = "Baseline";
1616
- Align2[Align2["SpaceBetween"] = 6] = "SpaceBetween";
1617
- Align2[Align2["SpaceAround"] = 7] = "SpaceAround";
1618
- return Align2;
1619
- }({});
1620
- YGEnums.Align = Align;
1621
- let Dimension = /* @__PURE__ */ function(Dimension2) {
1622
- Dimension2[Dimension2["Width"] = 0] = "Width";
1623
- Dimension2[Dimension2["Height"] = 1] = "Height";
1624
- return Dimension2;
1625
- }({});
1626
- YGEnums.Dimension = Dimension;
1627
- let Direction = /* @__PURE__ */ function(Direction2) {
1628
- Direction2[Direction2["Inherit"] = 0] = "Inherit";
1629
- Direction2[Direction2["LTR"] = 1] = "LTR";
1630
- Direction2[Direction2["RTL"] = 2] = "RTL";
1631
- return Direction2;
1632
- }({});
1633
- YGEnums.Direction = Direction;
1634
- let Display = /* @__PURE__ */ function(Display2) {
1635
- Display2[Display2["Flex"] = 0] = "Flex";
1636
- Display2[Display2["None"] = 1] = "None";
1637
- return Display2;
1638
- }({});
1639
- YGEnums.Display = Display;
1640
- let Edge = /* @__PURE__ */ function(Edge2) {
1641
- Edge2[Edge2["Left"] = 0] = "Left";
1642
- Edge2[Edge2["Top"] = 1] = "Top";
1643
- Edge2[Edge2["Right"] = 2] = "Right";
1644
- Edge2[Edge2["Bottom"] = 3] = "Bottom";
1645
- Edge2[Edge2["Start"] = 4] = "Start";
1646
- Edge2[Edge2["End"] = 5] = "End";
1647
- Edge2[Edge2["Horizontal"] = 6] = "Horizontal";
1648
- Edge2[Edge2["Vertical"] = 7] = "Vertical";
1649
- Edge2[Edge2["All"] = 8] = "All";
1650
- return Edge2;
1651
- }({});
1652
- YGEnums.Edge = Edge;
1653
- let Errata = /* @__PURE__ */ function(Errata2) {
1654
- Errata2[Errata2["None"] = 0] = "None";
1655
- Errata2[Errata2["StretchFlexBasis"] = 1] = "StretchFlexBasis";
1656
- Errata2[Errata2["All"] = 2147483647] = "All";
1657
- Errata2[Errata2["Classic"] = 2147483646] = "Classic";
1658
- return Errata2;
1659
- }({});
1660
- YGEnums.Errata = Errata;
1661
- let ExperimentalFeature = /* @__PURE__ */ function(ExperimentalFeature2) {
1662
- ExperimentalFeature2[ExperimentalFeature2["WebFlexBasis"] = 0] = "WebFlexBasis";
1663
- ExperimentalFeature2[ExperimentalFeature2["AbsolutePercentageAgainstPaddingEdge"] = 1] = "AbsolutePercentageAgainstPaddingEdge";
1664
- ExperimentalFeature2[ExperimentalFeature2["FixJNILocalRefOverflows"] = 2] = "FixJNILocalRefOverflows";
1665
- return ExperimentalFeature2;
1666
- }({});
1667
- YGEnums.ExperimentalFeature = ExperimentalFeature;
1668
- let FlexDirection = /* @__PURE__ */ function(FlexDirection2) {
1669
- FlexDirection2[FlexDirection2["Column"] = 0] = "Column";
1670
- FlexDirection2[FlexDirection2["ColumnReverse"] = 1] = "ColumnReverse";
1671
- FlexDirection2[FlexDirection2["Row"] = 2] = "Row";
1672
- FlexDirection2[FlexDirection2["RowReverse"] = 3] = "RowReverse";
1673
- return FlexDirection2;
1674
- }({});
1675
- YGEnums.FlexDirection = FlexDirection;
1676
- let Gutter = /* @__PURE__ */ function(Gutter2) {
1677
- Gutter2[Gutter2["Column"] = 0] = "Column";
1678
- Gutter2[Gutter2["Row"] = 1] = "Row";
1679
- Gutter2[Gutter2["All"] = 2] = "All";
1680
- return Gutter2;
1681
- }({});
1682
- YGEnums.Gutter = Gutter;
1683
- let Justify = /* @__PURE__ */ function(Justify2) {
1684
- Justify2[Justify2["FlexStart"] = 0] = "FlexStart";
1685
- Justify2[Justify2["Center"] = 1] = "Center";
1686
- Justify2[Justify2["FlexEnd"] = 2] = "FlexEnd";
1687
- Justify2[Justify2["SpaceBetween"] = 3] = "SpaceBetween";
1688
- Justify2[Justify2["SpaceAround"] = 4] = "SpaceAround";
1689
- Justify2[Justify2["SpaceEvenly"] = 5] = "SpaceEvenly";
1690
- return Justify2;
1691
- }({});
1692
- YGEnums.Justify = Justify;
1693
- let LogLevel = /* @__PURE__ */ function(LogLevel2) {
1694
- LogLevel2[LogLevel2["Error"] = 0] = "Error";
1695
- LogLevel2[LogLevel2["Warn"] = 1] = "Warn";
1696
- LogLevel2[LogLevel2["Info"] = 2] = "Info";
1697
- LogLevel2[LogLevel2["Debug"] = 3] = "Debug";
1698
- LogLevel2[LogLevel2["Verbose"] = 4] = "Verbose";
1699
- LogLevel2[LogLevel2["Fatal"] = 5] = "Fatal";
1700
- return LogLevel2;
1701
- }({});
1702
- YGEnums.LogLevel = LogLevel;
1703
- let MeasureMode = /* @__PURE__ */ function(MeasureMode2) {
1704
- MeasureMode2[MeasureMode2["Undefined"] = 0] = "Undefined";
1705
- MeasureMode2[MeasureMode2["Exactly"] = 1] = "Exactly";
1706
- MeasureMode2[MeasureMode2["AtMost"] = 2] = "AtMost";
1707
- return MeasureMode2;
1708
- }({});
1709
- YGEnums.MeasureMode = MeasureMode;
1710
- let NodeType = /* @__PURE__ */ function(NodeType2) {
1711
- NodeType2[NodeType2["Default"] = 0] = "Default";
1712
- NodeType2[NodeType2["Text"] = 1] = "Text";
1713
- return NodeType2;
1714
- }({});
1715
- YGEnums.NodeType = NodeType;
1716
- let Overflow = /* @__PURE__ */ function(Overflow2) {
1717
- Overflow2[Overflow2["Visible"] = 0] = "Visible";
1718
- Overflow2[Overflow2["Hidden"] = 1] = "Hidden";
1719
- Overflow2[Overflow2["Scroll"] = 2] = "Scroll";
1720
- return Overflow2;
1721
- }({});
1722
- YGEnums.Overflow = Overflow;
1723
- let PositionType = /* @__PURE__ */ function(PositionType2) {
1724
- PositionType2[PositionType2["Static"] = 0] = "Static";
1725
- PositionType2[PositionType2["Relative"] = 1] = "Relative";
1726
- PositionType2[PositionType2["Absolute"] = 2] = "Absolute";
1727
- return PositionType2;
1728
- }({});
1729
- YGEnums.PositionType = PositionType;
1730
- let PrintOptions = /* @__PURE__ */ function(PrintOptions2) {
1731
- PrintOptions2[PrintOptions2["Layout"] = 1] = "Layout";
1732
- PrintOptions2[PrintOptions2["Style"] = 2] = "Style";
1733
- PrintOptions2[PrintOptions2["Children"] = 4] = "Children";
1734
- return PrintOptions2;
1735
- }({});
1736
- YGEnums.PrintOptions = PrintOptions;
1737
- let Unit = /* @__PURE__ */ function(Unit2) {
1738
- Unit2[Unit2["Undefined"] = 0] = "Undefined";
1739
- Unit2[Unit2["Point"] = 1] = "Point";
1740
- Unit2[Unit2["Percent"] = 2] = "Percent";
1741
- Unit2[Unit2["Auto"] = 3] = "Auto";
1742
- return Unit2;
1743
- }({});
1744
- YGEnums.Unit = Unit;
1745
- let Wrap = /* @__PURE__ */ function(Wrap2) {
1746
- Wrap2[Wrap2["NoWrap"] = 0] = "NoWrap";
1747
- Wrap2[Wrap2["Wrap"] = 1] = "Wrap";
1748
- Wrap2[Wrap2["WrapReverse"] = 2] = "WrapReverse";
1749
- return Wrap2;
1750
- }({});
1751
- YGEnums.Wrap = Wrap;
1752
- const constants = {
1753
- ALIGN_AUTO: Align.Auto,
1754
- ALIGN_FLEX_START: Align.FlexStart,
1755
- ALIGN_CENTER: Align.Center,
1756
- ALIGN_FLEX_END: Align.FlexEnd,
1757
- ALIGN_STRETCH: Align.Stretch,
1758
- ALIGN_BASELINE: Align.Baseline,
1759
- ALIGN_SPACE_BETWEEN: Align.SpaceBetween,
1760
- ALIGN_SPACE_AROUND: Align.SpaceAround,
1761
- DIMENSION_WIDTH: Dimension.Width,
1762
- DIMENSION_HEIGHT: Dimension.Height,
1763
- DIRECTION_INHERIT: Direction.Inherit,
1764
- DIRECTION_LTR: Direction.LTR,
1765
- DIRECTION_RTL: Direction.RTL,
1766
- DISPLAY_FLEX: Display.Flex,
1767
- DISPLAY_NONE: Display.None,
1768
- EDGE_LEFT: Edge.Left,
1769
- EDGE_TOP: Edge.Top,
1770
- EDGE_RIGHT: Edge.Right,
1771
- EDGE_BOTTOM: Edge.Bottom,
1772
- EDGE_START: Edge.Start,
1773
- EDGE_END: Edge.End,
1774
- EDGE_HORIZONTAL: Edge.Horizontal,
1775
- EDGE_VERTICAL: Edge.Vertical,
1776
- EDGE_ALL: Edge.All,
1777
- ERRATA_NONE: Errata.None,
1778
- ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis,
1779
- ERRATA_ALL: Errata.All,
1780
- ERRATA_CLASSIC: Errata.Classic,
1781
- EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: ExperimentalFeature.WebFlexBasis,
1782
- EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE: ExperimentalFeature.AbsolutePercentageAgainstPaddingEdge,
1783
- EXPERIMENTAL_FEATURE_FIX_JNILOCAL_REF_OVERFLOWS: ExperimentalFeature.FixJNILocalRefOverflows,
1784
- FLEX_DIRECTION_COLUMN: FlexDirection.Column,
1785
- FLEX_DIRECTION_COLUMN_REVERSE: FlexDirection.ColumnReverse,
1786
- FLEX_DIRECTION_ROW: FlexDirection.Row,
1787
- FLEX_DIRECTION_ROW_REVERSE: FlexDirection.RowReverse,
1788
- GUTTER_COLUMN: Gutter.Column,
1789
- GUTTER_ROW: Gutter.Row,
1790
- GUTTER_ALL: Gutter.All,
1791
- JUSTIFY_FLEX_START: Justify.FlexStart,
1792
- JUSTIFY_CENTER: Justify.Center,
1793
- JUSTIFY_FLEX_END: Justify.FlexEnd,
1794
- JUSTIFY_SPACE_BETWEEN: Justify.SpaceBetween,
1795
- JUSTIFY_SPACE_AROUND: Justify.SpaceAround,
1796
- JUSTIFY_SPACE_EVENLY: Justify.SpaceEvenly,
1797
- LOG_LEVEL_ERROR: LogLevel.Error,
1798
- LOG_LEVEL_WARN: LogLevel.Warn,
1799
- LOG_LEVEL_INFO: LogLevel.Info,
1800
- LOG_LEVEL_DEBUG: LogLevel.Debug,
1801
- LOG_LEVEL_VERBOSE: LogLevel.Verbose,
1802
- LOG_LEVEL_FATAL: LogLevel.Fatal,
1803
- MEASURE_MODE_UNDEFINED: MeasureMode.Undefined,
1804
- MEASURE_MODE_EXACTLY: MeasureMode.Exactly,
1805
- MEASURE_MODE_AT_MOST: MeasureMode.AtMost,
1806
- NODE_TYPE_DEFAULT: NodeType.Default,
1807
- NODE_TYPE_TEXT: NodeType.Text,
1808
- OVERFLOW_VISIBLE: Overflow.Visible,
1809
- OVERFLOW_HIDDEN: Overflow.Hidden,
1810
- OVERFLOW_SCROLL: Overflow.Scroll,
1811
- POSITION_TYPE_STATIC: PositionType.Static,
1812
- POSITION_TYPE_RELATIVE: PositionType.Relative,
1813
- POSITION_TYPE_ABSOLUTE: PositionType.Absolute,
1814
- PRINT_OPTIONS_LAYOUT: PrintOptions.Layout,
1815
- PRINT_OPTIONS_STYLE: PrintOptions.Style,
1816
- PRINT_OPTIONS_CHILDREN: PrintOptions.Children,
1817
- UNIT_UNDEFINED: Unit.Undefined,
1818
- UNIT_POINT: Unit.Point,
1819
- UNIT_PERCENT: Unit.Percent,
1820
- UNIT_AUTO: Unit.Auto,
1821
- WRAP_NO_WRAP: Wrap.NoWrap,
1822
- WRAP_WRAP: Wrap.Wrap,
1823
- WRAP_WRAP_REVERSE: Wrap.WrapReverse
1824
- };
1825
- var _default = constants;
1826
- YGEnums.default = _default;
1827
- Object.defineProperty(wrapAssembly$1, "__esModule", {
1828
- value: true
1829
- });
1830
- wrapAssembly$1.default = wrapAssembly;
1831
- var _YGEnums = _interopRequireWildcard(YGEnums);
1832
- function _getRequireWildcardCache(nodeInterop) {
1833
- if (typeof WeakMap !== "function")
1834
- return null;
1835
- var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
1836
- var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
1837
- return (_getRequireWildcardCache = function(nodeInterop2) {
1838
- return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
1839
- })(nodeInterop);
1840
- }
1841
- function _interopRequireWildcard(obj, nodeInterop) {
1842
- if (!nodeInterop && obj && obj.__esModule) {
1843
- return obj;
1844
- }
1845
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
1846
- return { default: obj };
1847
- }
1848
- var cache = _getRequireWildcardCache(nodeInterop);
1849
- if (cache && cache.has(obj)) {
1850
- return cache.get(obj);
1851
- }
1852
- var newObj = {};
1853
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
1854
- for (var key in obj) {
1855
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
1856
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
1857
- if (desc && (desc.get || desc.set)) {
1858
- Object.defineProperty(newObj, key, desc);
1859
- } else {
1860
- newObj[key] = obj[key];
1861
- }
1862
- }
1863
- }
1864
- newObj.default = obj;
1865
- if (cache) {
1866
- cache.set(obj, newObj);
1867
- }
1868
- return newObj;
1869
- }
1870
- function wrapAssembly(lib) {
1871
- function patch(prototype, name2, fn) {
1872
- const original = prototype[name2];
1873
- prototype[name2] = function() {
1874
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1875
- args[_key] = arguments[_key];
1876
- }
1877
- return fn.call(this, original, ...args);
1878
- };
1879
- }
1880
- for (const fnName of ["setPosition", "setMargin", "setFlexBasis", "setWidth", "setHeight", "setMinWidth", "setMinHeight", "setMaxWidth", "setMaxHeight", "setPadding"]) {
1881
- const methods = {
1882
- [_YGEnums.Unit.Point]: lib.Node.prototype[fnName],
1883
- [_YGEnums.Unit.Percent]: lib.Node.prototype[`${fnName}Percent`],
1884
- [_YGEnums.Unit.Auto]: lib.Node.prototype[`${fnName}Auto`]
1885
- };
1886
- patch(lib.Node.prototype, fnName, function(original) {
1887
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1888
- args[_key2 - 1] = arguments[_key2];
1889
- }
1890
- const value = args.pop();
1891
- let unit, asNumber;
1892
- if (value === "auto") {
1893
- unit = _YGEnums.Unit.Auto;
1894
- asNumber = void 0;
1895
- } else if (typeof value === "object") {
1896
- unit = value.unit;
1897
- asNumber = value.valueOf();
1898
- } else {
1899
- unit = typeof value === "string" && value.endsWith("%") ? _YGEnums.Unit.Percent : _YGEnums.Unit.Point;
1900
- asNumber = parseFloat(value);
1901
- if (!Number.isNaN(value) && Number.isNaN(asNumber)) {
1902
- throw new Error(`Invalid value ${value} for ${fnName}`);
1903
- }
1904
- }
1905
- if (!methods[unit])
1906
- throw new Error(`Failed to execute "${fnName}": Unsupported unit '${value}'`);
1907
- if (asNumber !== void 0) {
1908
- return methods[unit].call(this, ...args, asNumber);
1909
- } else {
1910
- return methods[unit].call(this, ...args);
1911
- }
1912
- });
1913
- }
1914
- function wrapMeasureFunction(measureFunction) {
1915
- return lib.MeasureCallback.implement({
1916
- measure: function() {
1917
- const {
1918
- width,
1919
- height
1920
- } = measureFunction(...arguments);
1921
- return {
1922
- width: width ?? NaN,
1923
- height: height ?? NaN
1924
- };
1925
- }
1926
- });
1927
- }
1928
- patch(lib.Node.prototype, "setMeasureFunc", function(original, measureFunc) {
1929
- if (measureFunc) {
1930
- return original.call(this, wrapMeasureFunction(measureFunc));
1931
- } else {
1932
- return this.unsetMeasureFunc();
1933
- }
1934
- });
1935
- function wrapDirtiedFunc(dirtiedFunction) {
1936
- return lib.DirtiedCallback.implement({
1937
- dirtied: dirtiedFunction
1938
- });
1939
- }
1940
- patch(lib.Node.prototype, "setDirtiedFunc", function(original, dirtiedFunc) {
1941
- original.call(this, wrapDirtiedFunc(dirtiedFunc));
1942
- });
1943
- patch(lib.Config.prototype, "free", function() {
1944
- lib.Config.destroy(this);
1945
- });
1946
- patch(lib.Node, "create", (_, config) => {
1947
- return config ? lib.Node.createWithConfig(config) : lib.Node.createDefault();
1948
- });
1949
- patch(lib.Node.prototype, "free", function() {
1950
- lib.Node.destroy(this);
1951
- });
1952
- patch(lib.Node.prototype, "freeRecursive", function() {
1953
- for (let t = 0, T = this.getChildCount(); t < T; ++t) {
1954
- this.getChild(0).freeRecursive();
1955
- }
1956
- this.free();
1957
- });
1958
- patch(lib.Node.prototype, "calculateLayout", function(original) {
1959
- let width = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : NaN;
1960
- let height = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : NaN;
1961
- let direction = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : _YGEnums.Direction.LTR;
1962
- return original.call(this, width, height, direction);
1963
- });
1964
- return {
1965
- Config: lib.Config,
1966
- Node: lib.Node,
1967
- ..._YGEnums.default
1968
- };
1969
- }
1970
- var wasmAsyncWeb = { exports: {} };
1971
- (function(module2, exports2) {
1972
- var loadYoga = (() => {
1973
- var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0;
1974
- return function(loadYoga2) {
1975
- loadYoga2 = loadYoga2 || {};
1976
- var h;
1977
- h || (h = typeof loadYoga2 !== "undefined" ? loadYoga2 : {});
1978
- var ba, ca2;
1979
- h.ready = new Promise(function(a, b) {
1980
- ba = a;
1981
- ca2 = b;
1982
- });
1983
- var da = Object.assign({}, h), q = "";
1984
- "undefined" != typeof document && document.currentScript && (q = document.currentScript.src);
1985
- _scriptDir && (q = _scriptDir);
1986
- 0 !== q.indexOf("blob:") ? q = q.substr(0, q.replace(/[?#].*/, "").lastIndexOf("/") + 1) : q = "";
1987
- var ea = h.print || console.log.bind(console), v = h.printErr || console.warn.bind(console);
1988
- Object.assign(h, da);
1989
- da = null;
1990
- var w;
1991
- h.wasmBinary && (w = h.wasmBinary);
1992
- h.noExitRuntime || true;
1993
- "object" != typeof WebAssembly && x("no native wasm support detected");
1994
- var fa, ha = false;
1995
- function ia(a, b, c) {
1996
- c = b + c;
1997
- for (var d = ""; !(b >= c); ) {
1998
- var e = a[b++];
1999
- if (!e)
2000
- break;
2001
- if (e & 128) {
2002
- var f = a[b++] & 63;
2003
- if (192 == (e & 224))
2004
- d += String.fromCharCode((e & 31) << 6 | f);
2005
- else {
2006
- var g = a[b++] & 63;
2007
- e = 224 == (e & 240) ? (e & 15) << 12 | f << 6 | g : (e & 7) << 18 | f << 12 | g << 6 | a[b++] & 63;
2008
- 65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));
2009
- }
2010
- } else
2011
- d += String.fromCharCode(e);
2012
- }
2013
- return d;
2014
- }
2015
- var ja, ka, z, A, la, C, D, ma, na;
2016
- function oa() {
2017
- var a = fa.buffer;
2018
- ja = a;
2019
- h.HEAP8 = ka = new Int8Array(a);
2020
- h.HEAP16 = A = new Int16Array(a);
2021
- h.HEAP32 = C = new Int32Array(a);
2022
- h.HEAPU8 = z = new Uint8Array(a);
2023
- h.HEAPU16 = la = new Uint16Array(a);
2024
- h.HEAPU32 = D = new Uint32Array(a);
2025
- h.HEAPF32 = ma = new Float32Array(a);
2026
- h.HEAPF64 = na = new Float64Array(a);
2027
- }
2028
- var pa, qa = [], ra = [], sa = [];
2029
- function ta() {
2030
- var a = h.preRun.shift();
2031
- qa.unshift(a);
2032
- }
2033
- var E = 0, F = null;
2034
- function x(a) {
2035
- if (h.onAbort)
2036
- h.onAbort(a);
2037
- a = "Aborted(" + a + ")";
2038
- v(a);
2039
- ha = true;
2040
- a = new WebAssembly.RuntimeError(a + ". Build with -sASSERTIONS for more info.");
2041
- ca2(a);
2042
- throw a;
2043
- }
2044
- function va(a) {
2045
- return a.startsWith("data:application/octet-stream;base64,");
2046
- }
2047
- var G;
2048
- G = "data:application/octet-stream;base64,AGFzbQEAAAABvgM4YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gAABgA39/fABgAX8BfGADf399AX1gBX9/f39/AX9gAn9/AXxgAAF/YAZ/f31/fX8AYAR/f39/AX9gAn9/AX1gBn9/f39/fwF/YAV/f39/fwBgBH9/f38AYAN/fn8BfmAHf39/f39/fwBgBn9/f39/fwBgAn19AX1gAX0Bf2ABfwF9YAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA5/fX1/f399fX9/f39/fwF/YAZ/f319f38AYAJ+fwF/YAR/fX1/AX1gA399fQF9YAF8AXxgBH98fHwAYAV/f319fQF9YA5/fX1/f399fX9/f39/fwBgB39/fX99f38AYA1/fX99f31/fX19fX1/AX9gBX9/fX19AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfWADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwKvAR0BYQFhAB0BYQFiAAMBYQFjABUBYQFkABIBYQFlAAcBYQFmAB4BYQFnAAABYQFoAB8BYQFpAAMBYQFqAAABYQFrABYBYQFsAAUBYQFtAAMBYQFuAAEBYQFvABYBYQFwAAYBYQFxAAABYQFyAAABYQFzACABYQF0ABMBYQF1AAsBYQF2ABUBYQF3AAIBYQF4AAMBYQF5AA8BYQF6AAIBYQFBAAEBYQFCABIBYQFDAAEDgwKBAgIXChAQCgoKIQIDEgAGBgcBBRgiGAYPCgMGIwMDBSQDGSUBDwoZAwMKAgUAAAIDAQMGAgcBCAwAFygHAAUAKQIBKistAwMGAgECAAEuCgUKLwcFEwIwCzECBwIAAgEGEwECAgEFAQAHAQURAQEBAQgIAQEAAg0CAgIFAQEBGwMNAQEBCwsGFAIBGhQGAgcCDgAAAAUyMzQMBQYINQUCAwUNDQ02AgMCAgIDBgICNwIMDAwBCQkJCQkJHAIAAAABAA4BBQICAQMCEAMMCQEBAQEBAQkJAQICAwICAgICAgMCCAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBBAcB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ABAAQQgQHSIAQQA2AgQgAEHxADYCAEGbN0GUC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEHyADYCAEGbN0GdEUECQYAlQbgiQdMAIABBABAAQQgQHSIAQQA2AgQgAEHzADYCAEGbN0GxFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH0ADYCAEGbN0GUDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH1ADYCAEGbN0GHDUEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH2ADYCAEGbN0GlC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH3ADYCAEGbN0GHFEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH4ADYCAEGbN0HxC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH5ADYCAEGbN0HZDEEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH6ADYCAEGbN0GAC0EDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH7ADYCAEGbN0GBEkEDQbglQe4kQecAIABBABAAQQgQHSIAQQA2AgQgAEH8ADYCAEGbN0GtEEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH9ADYCAEGbN0GfFUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH+ADYCAEGbN0GnDEEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEH/ADYCAEGbN0GMEUEEQaAlQbAlQdkAIABBABAAQQgQHSIAQQA2AgQgAEGAATYCAEGbN0GCF0ECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGCATYCAEGbN0GrEkEDQcwlQaAjQYMBIABBABAAQQgQHSIAQQA2AgQgAEGEATYCAEGbN0HcCkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGFATYCAEGbN0GoDkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGGATYCAEGbN0HFFkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGHATYCAEGbN0HcEkECQcQlQcQiQYEBIABBABAAQQgQHSIAQQA2AgQgAEGI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ADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5gYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRAoIAAgEyARECcgAEGTE0GDGyAFQSBxIgUbQbQWQYcbIAUbIAEgAWIbQQMQJyAAQSAgAiADIARBgMAAcxAo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ABECAAsFAEGbNwsPACABIAAoAgBqIAI2AgALDQAgASAAKAIAaigCAAsYAQF/QRAQHSIAQgA3AwggAEEANgIAIAALGAEBf0EQEB0iAEIANwMAIABCADcDCCAACwwAQTAQHUEAQTAQKgs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERsACwUAQZY3CyEAIAAgASgCACABIAEsAAtBAEgbQZM3IAIoAgAQDzYCAAsqAQF/QQwQHSIBQQA6AAQgASAAKAIANgIIIABBADYCACABQcgjNgIAIAELBQBBkzcLBQBBkDcLIQAgACABKAIAIAEgASwAC0EASBtB/DYgAigCABAPNgIAC9gBAQR/IwBBIGsiAyQAIAEoAgAiBEHw////B0kEQAJAAkAgBEELTwRAIARBD3JBAWoiBRAdIQYgAyAFQYCAgIB4cjYCECADIAY2AgggAyAENgIMIAQgBmohBQwBCyADIAQ6ABMgA0EIaiIGIARqIQUgBEUNAQsgBiABQQRqIAQQKxoLIAVBADoAACADIAI2AgAgA0EYaiADQQhqIAMgABEDACADKAIYEBAgAygCGCIAEAYgAygCABAGIAMsABNBAEgEQCADKAIIECkLIANBIGokACAADwsQBAALKgEBf0EMEB0iAUEAOgAEIAEgACgCADYCCCAAQQA2AgAgAUHQIjYCACABCwUAQfw2C2kBAn8jAEEQayIGJAAgASAAKAIEIgdBAXVqIQEgACgCACEAIAYgASACIAMgBCAFIAdBAXEEfyABKAIAIABqKAIABSAACxEOAEEQEB0iACAGKQMINwMIIAAgBikDADcDACAGQRBqJAAgAAsFAEH4NgubAQIBfwF9IwBBEGsiAiQAIAAoAgAhACABQQZIBEACfwJAAkACQCABQQRrDgIAAQILIABBpAJqIAAtAKwCQQNxQQJGDQIaIABBnAJqDAILIABBnAJqIAAtAKwCQQNxQQJGDQEaIABBpAJqDAELIAAgAUECdGpBnAJqCyoCACEDIAJBEGokACADuw8LIAJB0A42AgAgACACEC0QLAALmwECAX8BfSMAQRBrIgIkACAAKAIAIQAgAUEGSARAAn8CQAJAAkAgAUEEaw4CAAECCyAAQZQCaiAALQCsAkEDcUECRg0CGiAAQYwC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bXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAEF0dGVtcHRpbmcgdG8gY29uc3RydWN0IFlHTm9kZSB3aXRoIG51bGwgY29uZmlnAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMAc2V0RXJyYXRhAGdldEVycmF0YQBFeHBlY3QgY3VzdG9tIGJhc2VsaW5lIGZ1bmN0aW9uIHRvIG5vdCByZXR1cm4gTmFOAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBDaGlsZCBhbHJlYWR5IGhhcyBhIG93bmVyLCBpdCBtdXN0IGJlIHJlbW92ZWQgZmlyc3QuAENhbm5vdCBzZXQgbWVhc3VyZSBmdW5jdGlvbjogTm9kZXMgd2l0aCBtZWFzdXJlIGZ1bmN0aW9ucyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4AQ2Fubm90IGFkZCBjaGlsZDogTm9kZXMgd2l0aCBtZWFzdXJlIGZ1bmN0aW9ucyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4AKG51bGwpACVzCgABAAAAAwAAAAAAAAACAAAAAwAAAAEAAAACAAAAAAAAAAEAAAABAEHyIQsVwH8DAAAAAADAfwAAAABpaQB2AHZpAEGQIgs3exsAAHkbAAC5GwAAsxsAALkbAACzGwAAaWlpZmlmaQCsGwAAfBsAAHZpaQB9GwAAwBsAAGlpaQBB0CILCccAAADIAAAAyQBB5CILDscAAADKAAAAywAAAKwbAEGAIws+exsAALkbAACzGwAAuRsAALMbAADAGwAAuxsAAMAbAABpaWlpAAAAAKwbAACRGwAArBsAAJMbAACUGwAAwBsAQcgjCwnMAAAAzQAAAM4AQdwjCxbMAAAAzwAAAMsAAACXGwAArBsAAJcbAEGAJAuiA6wbAACXGwAAsxsAAK0bAAB2aWlpaQAAAKwbAACXGwAAuRsAAHZpaWYAAAAArBsAAJcbAACtGwAAdmlpaQAAAACsGwAAlxsAALMbAACtGwAAmBsAALMbAACtGwAAmBsAALMbAACYGwAAaQBkaWkAdmlpZAAAnBsAAJwbAACXGwAArBsAAJwbAACsGwAAnBsAAJsbAACsGwAAnBsAALMbAACsGwAAnBsAALMbAAC6GwAAdmlpaWQAAACsGwAAnBsAALobAACzGwAAnRsAAJobAACdGwAAsxsAAJobAACdGwAAuhsAAJ0bAAC6GwAAnRsAALMbAABkaWlpAAAAALkbAACcGwAAsxsAAGZpaWkAAAAArBsAAJwbAACcGwAAtBsAAKwbAACcGwAAnBsAALQbAACdGwAAnBsAAJwbAACcGwAAnBsAALQbAACtGwAAnBsAAKwbAACcGwAArRsAAKwbAACcGwAAeRsAAKwbAACcGwAAkRsAAK0bAACdGwAAAAAAAKwbAACcGwAAuhsAALobAACzGwAAdmlpZGRpAACZGwAAnRsAQbAnC0EZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBgSgLIQ4AAAAAAAAAABkACg0ZGRkADQAAAgAJDgAAAAkADgAADgBBuygLAQwAQccoCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQfUoCwEQAEGBKQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGvKQsBEgBBuykLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBB8ikLDhoAAAAaGhoAAAAAAAAJAEGjKgsBFABBryoLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB3SoLARYAQekqCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQbQrCwHVAEHcKwsI//////////8AQaAsCwnwHwEAAAAAAAUAQbQsCwHQAEHMLAsK0QAAANIAAADUGwBB5CwLAQIAQfQsCwj//////////wBBuC0LAQUAQcQtCwHTAEHcLQsO0QAAANQAAADoGwAAAAQAQfQtCwEBAEGELgsF/////woAQcguCwHW";
2049
- if (!va(G)) {
2050
- var wa = G;
2051
- G = h.locateFile ? h.locateFile(wa, q) : q + wa;
2052
- }
2053
- function xa() {
2054
- var a = G;
2055
- try {
2056
- if (a == G && w)
2057
- return new Uint8Array(w);
2058
- if (va(a))
2059
- try {
2060
- var b = ya(a.slice(37)), c = new Uint8Array(b.length);
2061
- for (a = 0; a < b.length; ++a)
2062
- c[a] = b.charCodeAt(a);
2063
- var d = c;
2064
- } catch (f) {
2065
- throw Error("Converting base64 string to bytes failed.");
2066
- }
2067
- else
2068
- d = void 0;
2069
- var e = d;
2070
- if (e)
2071
- return e;
2072
- throw "both async and sync fetching of the wasm failed";
2073
- } catch (f) {
2074
- x(f);
2075
- }
2076
- }
2077
- function za() {
2078
- return w || "function" != typeof fetch ? Promise.resolve().then(function() {
2079
- return xa();
2080
- }) : fetch(G, { credentials: "same-origin" }).then(function(a) {
2081
- if (!a.ok)
2082
- throw "failed to load wasm binary file at '" + G + "'";
2083
- return a.arrayBuffer();
2084
- }).catch(function() {
2085
- return xa();
2086
- });
2087
- }
2088
- function Aa(a) {
2089
- for (; 0 < a.length; )
2090
- a.shift()(h);
2091
- }
2092
- function Ba(a) {
2093
- if (void 0 === a)
2094
- return "_unknown";
2095
- a = a.replace(/[^a-zA-Z0-9_]/g, "$");
2096
- var b = a.charCodeAt(0);
2097
- return 48 <= b && 57 >= b ? "_" + a : a;
2098
- }
2099
- function Ca(a, b) {
2100
- a = Ba(a);
2101
- return function() {
2102
- return b.apply(this, arguments);
2103
- };
2104
- }
2105
- var H = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }], Da = [];
2106
- function Ea(a) {
2107
- var b = Error, c = Ca(a, function(d) {
2108
- this.name = a;
2109
- this.message = d;
2110
- d = Error(d).stack;
2111
- void 0 !== d && (this.stack = this.toString() + "\n" + d.replace(/^Error(:[^\n]*)?\n/, ""));
2112
- });
2113
- c.prototype = Object.create(b.prototype);
2114
- c.prototype.constructor = c;
2115
- c.prototype.toString = function() {
2116
- return void 0 === this.message ? this.name : this.name + ": " + this.message;
2117
- };
2118
- return c;
2119
- }
2120
- var J = void 0;
2121
- function K(a) {
2122
- throw new J(a);
2123
- }
2124
- var L = (a) => {
2125
- a || K("Cannot use deleted val. handle = " + a);
2126
- return H[a].value;
2127
- }, Fa = (a) => {
2128
- switch (a) {
2129
- case void 0:
2130
- return 1;
2131
- case null:
2132
- return 2;
2133
- case true:
2134
- return 3;
2135
- case false:
2136
- return 4;
2137
- default:
2138
- var b = Da.length ? Da.pop() : H.length;
2139
- H[b] = { fa: 1, value: a };
2140
- return b;
2141
- }
2142
- }, Ga = void 0, Ha = void 0;
2143
- function M(a) {
2144
- for (var b = ""; z[a]; )
2145
- b += Ha[z[a++]];
2146
- return b;
2147
- }
2148
- var N = [];
2149
- function Ia() {
2150
- for (; N.length; ) {
2151
- var a = N.pop();
2152
- a.L.Z = false;
2153
- a["delete"]();
2154
- }
2155
- }
2156
- var O = void 0, P = {};
2157
- function Ja(a, b) {
2158
- for (void 0 === b && K("ptr should not be undefined"); a.P; )
2159
- b = a.aa(b), a = a.P;
2160
- return b;
2161
- }
2162
- var Q = {};
2163
- function Ka(a) {
2164
- a = La(a);
2165
- var b = M(a);
2166
- R(a);
2167
- return b;
2168
- }
2169
- function Ma(a, b) {
2170
- var c = Q[a];
2171
- void 0 === c && K(b + " has unknown type " + Ka(a));
2172
- return c;
2173
- }
2174
- function Na() {
2175
- }
2176
- var Oa = false;
2177
- function Pa(a) {
2178
- --a.count.value;
2179
- 0 === a.count.value && (a.S ? a.T.V(a.S) : a.O.M.V(a.N));
2180
- }
2181
- function Qa(a, b, c) {
2182
- if (b === c)
2183
- return a;
2184
- if (void 0 === c.P)
2185
- return null;
2186
- a = Qa(a, b, c.P);
2187
- return null === a ? null : c.ma(a);
2188
- }
2189
- var Ra = {};
2190
- function Sa(a, b) {
2191
- b = Ja(a, b);
2192
- return P[b];
2193
- }
2194
- var Ta = void 0;
2195
- function Ua(a) {
2196
- throw new Ta(a);
2197
- }
2198
- function Va(a, b) {
2199
- b.O && b.N || Ua("makeClassHandle requires ptr and ptrType");
2200
- !!b.T !== !!b.S && Ua("Both smartPtrType and smartPtr must be specified");
2201
- b.count = { value: 1 };
2202
- return S(Object.create(a, { L: { value: b } }));
2203
- }
2204
- function S(a) {
2205
- if ("undefined" === typeof FinalizationRegistry)
2206
- return S = (b) => b, a;
2207
- Oa = new FinalizationRegistry((b) => {
2208
- Pa(b.L);
2209
- });
2210
- S = (b) => {
2211
- var c = b.L;
2212
- c.S && Oa.register(b, { L: c }, b);
2213
- return b;
2214
- };
2215
- Na = (b) => {
2216
- Oa.unregister(b);
2217
- };
2218
- return S(a);
2219
- }
2220
- var Wa = {};
2221
- function Xa(a) {
2222
- for (; a.length; ) {
2223
- var b = a.pop();
2224
- a.pop()(b);
2225
- }
2226
- }
2227
- function T(a) {
2228
- return this.fromWireType(C[a >> 2]);
2229
- }
2230
- var U = {}, Ya = {};
2231
- function V(a, b, c) {
2232
- function d(k) {
2233
- k = c(k);
2234
- k.length !== a.length && Ua("Mismatched type converter count");
2235
- for (var m = 0; m < a.length; ++m)
2236
- W(a[m], k[m]);
2237
- }
2238
- a.forEach(function(k) {
2239
- Ya[k] = b;
2240
- });
2241
- var e = Array(b.length), f = [], g = 0;
2242
- b.forEach((k, m) => {
2243
- Q.hasOwnProperty(k) ? e[m] = Q[k] : (f.push(k), U.hasOwnProperty(k) || (U[k] = []), U[k].push(() => {
2244
- e[m] = Q[k];
2245
- ++g;
2246
- g === f.length && d(e);
2247
- }));
2248
- });
2249
- 0 === f.length && d(e);
2250
- }
2251
- function Za(a) {
2252
- switch (a) {
2253
- case 1:
2254
- return 0;
2255
- case 2:
2256
- return 1;
2257
- case 4:
2258
- return 2;
2259
- case 8:
2260
- return 3;
2261
- default:
2262
- throw new TypeError("Unknown type size: " + a);
2263
- }
2264
- }
2265
- function W(a, b, c = {}) {
2266
- if (!("argPackAdvance" in b))
2267
- throw new TypeError("registerType registeredInstance requires argPackAdvance");
2268
- var d = b.name;
2269
- a || K('type "' + d + '" must have a positive integer typeid pointer');
2270
- if (Q.hasOwnProperty(a)) {
2271
- if (c.ta)
2272
- return;
2273
- K("Cannot register type '" + d + "' twice");
2274
- }
2275
- Q[a] = b;
2276
- delete Ya[a];
2277
- U.hasOwnProperty(a) && (b = U[a], delete U[a], b.forEach((e) => e()));
2278
- }
2279
- function $a(a) {
2280
- K(a.L.O.M.name + " instance already deleted");
2281
- }
2282
- function X() {
2283
- }
2284
- function ab(a, b, c) {
2285
- if (void 0 === a[b].R) {
2286
- var d = a[b];
2287
- a[b] = function() {
2288
- a[b].R.hasOwnProperty(arguments.length) || K("Function '" + c + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + a[b].R + ")!");
2289
- return a[b].R[arguments.length].apply(this, arguments);
2290
- };
2291
- a[b].R = [];
2292
- a[b].R[d.Y] = d;
2293
- }
2294
- }
2295
- function bb(a, b) {
2296
- h.hasOwnProperty(a) ? (K("Cannot register public name '" + a + "' twice"), ab(h, a, a), h.hasOwnProperty(void 0) && K("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"), h[a].R[void 0] = b) : h[a] = b;
2297
- }
2298
- function cb2(a, b, c, d, e, f, g, k) {
2299
- this.name = a;
2300
- this.constructor = b;
2301
- this.W = c;
2302
- this.V = d;
2303
- this.P = e;
2304
- this.oa = f;
2305
- this.aa = g;
2306
- this.ma = k;
2307
- this.ia = [];
2308
- }
2309
- function db(a, b, c) {
2310
- for (; b !== c; )
2311
- b.aa || K("Expected null or instance of " + c.name + ", got an instance of " + b.name), a = b.aa(a), b = b.P;
2312
- return a;
2313
- }
2314
- function eb(a, b) {
2315
- if (null === b)
2316
- return this.da && K("null is not a valid " + this.name), 0;
2317
- b.L || K('Cannot pass "' + fb(b) + '" as a ' + this.name);
2318
- b.L.N || K("Cannot pass deleted object as a pointer of type " + this.name);
2319
- return db(b.L.N, b.L.O.M, this.M);
2320
- }
2321
- function gb(a, b) {
2322
- if (null === b) {
2323
- this.da && K("null is not a valid " + this.name);
2324
- if (this.ca) {
2325
- var c = this.ea();
2326
- null !== a && a.push(this.V, c);
2327
- return c;
2328
- }
2329
- return 0;
2330
- }
2331
- b.L || K('Cannot pass "' + fb(b) + '" as a ' + this.name);
2332
- b.L.N || K("Cannot pass deleted object as a pointer of type " + this.name);
2333
- !this.ba && b.L.O.ba && K("Cannot convert argument of type " + (b.L.T ? b.L.T.name : b.L.O.name) + " to parameter type " + this.name);
2334
- c = db(b.L.N, b.L.O.M, this.M);
2335
- if (this.ca)
2336
- switch (void 0 === b.L.S && K("Passing raw pointer to smart pointer is illegal"), this.Aa) {
2337
- case 0:
2338
- b.L.T === this ? c = b.L.S : K("Cannot convert argument of type " + (b.L.T ? b.L.T.name : b.L.O.name) + " to parameter type " + this.name);
2339
- break;
2340
- case 1:
2341
- c = b.L.S;
2342
- break;
2343
- case 2:
2344
- if (b.L.T === this)
2345
- c = b.L.S;
2346
- else {
2347
- var d = b.clone();
2348
- c = this.wa(c, Fa(function() {
2349
- d["delete"]();
2350
- }));
2351
- null !== a && a.push(this.V, c);
2352
- }
2353
- break;
2354
- default:
2355
- K("Unsupporting sharing policy");
2356
- }
2357
- return c;
2358
- }
2359
- function hb(a, b) {
2360
- if (null === b)
2361
- return this.da && K("null is not a valid " + this.name), 0;
2362
- b.L || K('Cannot pass "' + fb(b) + '" as a ' + this.name);
2363
- b.L.N || K("Cannot pass deleted object as a pointer of type " + this.name);
2364
- b.L.O.ba && K("Cannot convert argument of type " + b.L.O.name + " to parameter type " + this.name);
2365
- return db(b.L.N, b.L.O.M, this.M);
2366
- }
2367
- function Y(a, b, c, d) {
2368
- this.name = a;
2369
- this.M = b;
2370
- this.da = c;
2371
- this.ba = d;
2372
- this.ca = false;
2373
- this.V = this.wa = this.ea = this.ja = this.Aa = this.va = void 0;
2374
- void 0 !== b.P ? this.toWireType = gb : (this.toWireType = d ? eb : hb, this.U = null);
2375
- }
2376
- function ib(a, b) {
2377
- h.hasOwnProperty(a) || Ua("Replacing nonexistant public symbol");
2378
- h[a] = b;
2379
- h[a].Y = void 0;
2380
- }
2381
- function jb(a, b) {
2382
- var c = [];
2383
- return function() {
2384
- c.length = 0;
2385
- Object.assign(c, arguments);
2386
- if (a.includes("j")) {
2387
- var d = h["dynCall_" + a];
2388
- d = c && c.length ? d.apply(null, [b].concat(c)) : d.call(null, b);
2389
- } else
2390
- d = pa.get(b).apply(null, c);
2391
- return d;
2392
- };
2393
- }
2394
- function Z(a, b) {
2395
- a = M(a);
2396
- var c = a.includes("j") ? jb(a, b) : pa.get(b);
2397
- "function" != typeof c && K("unknown function pointer with signature " + a + ": " + b);
2398
- return c;
2399
- }
2400
- var mb = void 0;
2401
- function nb(a, b) {
2402
- function c(f) {
2403
- e[f] || Q[f] || (Ya[f] ? Ya[f].forEach(c) : (d.push(f), e[f] = true));
2404
- }
2405
- var d = [], e = {};
2406
- b.forEach(c);
2407
- throw new mb(a + ": " + d.map(Ka).join([", "]));
2408
- }
2409
- function ob(a, b, c, d, e) {
2410
- var f = b.length;
2411
- 2 > f && K("argTypes array size mismatch! Must at least get return value and 'this' types!");
2412
- var g = null !== b[1] && null !== c, k = false;
2413
- for (c = 1; c < b.length; ++c)
2414
- if (null !== b[c] && void 0 === b[c].U) {
2415
- k = true;
2416
- break;
2417
- }
2418
- var m = "void" !== b[0].name, l = f - 2, n = Array(l), p = [], r = [];
2419
- return function() {
2420
- arguments.length !== l && K("function " + a + " called with " + arguments.length + " arguments, expected " + l + " args!");
2421
- r.length = 0;
2422
- p.length = g ? 2 : 1;
2423
- p[0] = e;
2424
- if (g) {
2425
- var u = b[1].toWireType(r, this);
2426
- p[1] = u;
2427
- }
2428
- for (var t = 0; t < l; ++t)
2429
- n[t] = b[t + 2].toWireType(r, arguments[t]), p.push(n[t]);
2430
- t = d.apply(null, p);
2431
- if (k)
2432
- Xa(r);
2433
- else
2434
- for (var y = g ? 1 : 2; y < b.length; y++) {
2435
- var B = 1 === y ? u : n[y - 2];
2436
- null !== b[y].U && b[y].U(B);
2437
- }
2438
- u = m ? b[0].fromWireType(t) : void 0;
2439
- return u;
2440
- };
2441
- }
2442
- function pb(a, b) {
2443
- for (var c = [], d = 0; d < a; d++)
2444
- c.push(D[b + 4 * d >> 2]);
2445
- return c;
2446
- }
2447
- function qb(a) {
2448
- 4 < a && 0 === --H[a].fa && (H[a] = void 0, Da.push(a));
2449
- }
2450
- function fb(a) {
2451
- if (null === a)
2452
- return "null";
2453
- var b = typeof a;
2454
- return "object" === b || "array" === b || "function" === b ? a.toString() : "" + a;
2455
- }
2456
- function rb(a, b) {
2457
- switch (b) {
2458
- case 2:
2459
- return function(c) {
2460
- return this.fromWireType(ma[c >> 2]);
2461
- };
2462
- case 3:
2463
- return function(c) {
2464
- return this.fromWireType(na[c >> 3]);
2465
- };
2466
- default:
2467
- throw new TypeError("Unknown float type: " + a);
2468
- }
2469
- }
2470
- function sb(a, b, c) {
2471
- switch (b) {
2472
- case 0:
2473
- return c ? function(d) {
2474
- return ka[d];
2475
- } : function(d) {
2476
- return z[d];
2477
- };
2478
- case 1:
2479
- return c ? function(d) {
2480
- return A[d >> 1];
2481
- } : function(d) {
2482
- return la[d >> 1];
2483
- };
2484
- case 2:
2485
- return c ? function(d) {
2486
- return C[d >> 2];
2487
- } : function(d) {
2488
- return D[d >> 2];
2489
- };
2490
- default:
2491
- throw new TypeError("Unknown integer type: " + a);
2492
- }
2493
- }
2494
- function tb(a, b) {
2495
- for (var c = "", d = 0; !(d >= b / 2); ++d) {
2496
- var e = A[a + 2 * d >> 1];
2497
- if (0 == e)
2498
- break;
2499
- c += String.fromCharCode(e);
2500
- }
2501
- return c;
2502
- }
2503
- function ub(a, b, c) {
2504
- void 0 === c && (c = 2147483647);
2505
- if (2 > c)
2506
- return 0;
2507
- c -= 2;
2508
- var d = b;
2509
- c = c < 2 * a.length ? c / 2 : a.length;
2510
- for (var e = 0; e < c; ++e)
2511
- A[b >> 1] = a.charCodeAt(e), b += 2;
2512
- A[b >> 1] = 0;
2513
- return b - d;
2514
- }
2515
- function vb(a) {
2516
- return 2 * a.length;
2517
- }
2518
- function wb(a, b) {
2519
- for (var c = 0, d = ""; !(c >= b / 4); ) {
2520
- var e = C[a + 4 * c >> 2];
2521
- if (0 == e)
2522
- break;
2523
- ++c;
2524
- 65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);
2525
- }
2526
- return d;
2527
- }
2528
- function xb(a, b, c) {
2529
- void 0 === c && (c = 2147483647);
2530
- if (4 > c)
2531
- return 0;
2532
- var d = b;
2533
- c = d + c - 4;
2534
- for (var e = 0; e < a.length; ++e) {
2535
- var f = a.charCodeAt(e);
2536
- if (55296 <= f && 57343 >= f) {
2537
- var g = a.charCodeAt(++e);
2538
- f = 65536 + ((f & 1023) << 10) | g & 1023;
2539
- }
2540
- C[b >> 2] = f;
2541
- b += 4;
2542
- if (b + 4 > c)
2543
- break;
2544
- }
2545
- C[b >> 2] = 0;
2546
- return b - d;
2547
- }
2548
- function yb(a) {
2549
- for (var b = 0, c = 0; c < a.length; ++c) {
2550
- var d = a.charCodeAt(c);
2551
- 55296 <= d && 57343 >= d && ++c;
2552
- b += 4;
2553
- }
2554
- return b;
2555
- }
2556
- var zb = {};
2557
- function Ab(a) {
2558
- var b = zb[a];
2559
- return void 0 === b ? M(a) : b;
2560
- }
2561
- var Bb = [];
2562
- function Cb(a) {
2563
- var b = Bb.length;
2564
- Bb.push(a);
2565
- return b;
2566
- }
2567
- function Db(a, b) {
2568
- for (var c = Array(a), d = 0; d < a; ++d)
2569
- c[d] = Ma(D[b + 4 * d >> 2], "parameter " + d);
2570
- return c;
2571
- }
2572
- var Eb = [], Fb = [null, [], []];
2573
- J = h.BindingError = Ea("BindingError");
2574
- h.count_emval_handles = function() {
2575
- for (var a = 0, b = 5; b < H.length; ++b)
2576
- void 0 !== H[b] && ++a;
2577
- return a;
2578
- };
2579
- h.get_first_emval = function() {
2580
- for (var a = 5; a < H.length; ++a)
2581
- if (void 0 !== H[a])
2582
- return H[a];
2583
- return null;
2584
- };
2585
- Ga = h.PureVirtualError = Ea("PureVirtualError");
2586
- for (var Gb = Array(256), Hb = 0; 256 > Hb; ++Hb)
2587
- Gb[Hb] = String.fromCharCode(Hb);
2588
- Ha = Gb;
2589
- h.getInheritedInstanceCount = function() {
2590
- return Object.keys(P).length;
2591
- };
2592
- h.getLiveInheritedInstances = function() {
2593
- var a = [], b;
2594
- for (b in P)
2595
- P.hasOwnProperty(b) && a.push(P[b]);
2596
- return a;
2597
- };
2598
- h.flushPendingDeletes = Ia;
2599
- h.setDelayFunction = function(a) {
2600
- O = a;
2601
- N.length && O && O(Ia);
2602
- };
2603
- Ta = h.InternalError = Ea("InternalError");
2604
- X.prototype.isAliasOf = function(a) {
2605
- if (!(this instanceof X && a instanceof X))
2606
- return false;
2607
- var b = this.L.O.M, c = this.L.N, d = a.L.O.M;
2608
- for (a = a.L.N; b.P; )
2609
- c = b.aa(c), b = b.P;
2610
- for (; d.P; )
2611
- a = d.aa(a), d = d.P;
2612
- return b === d && c === a;
2613
- };
2614
- X.prototype.clone = function() {
2615
- this.L.N || $a(this);
2616
- if (this.L.$)
2617
- return this.L.count.value += 1, this;
2618
- var a = S, b = Object, c = b.create, d = Object.getPrototypeOf(this), e = this.L;
2619
- a = a(c.call(b, d, { L: { value: { count: e.count, Z: e.Z, $: e.$, N: e.N, O: e.O, S: e.S, T: e.T } } }));
2620
- a.L.count.value += 1;
2621
- a.L.Z = false;
2622
- return a;
2623
- };
2624
- X.prototype["delete"] = function() {
2625
- this.L.N || $a(this);
2626
- this.L.Z && !this.L.$ && K("Object already scheduled for deletion");
2627
- Na(this);
2628
- Pa(this.L);
2629
- this.L.$ || (this.L.S = void 0, this.L.N = void 0);
2630
- };
2631
- X.prototype.isDeleted = function() {
2632
- return !this.L.N;
2633
- };
2634
- X.prototype.deleteLater = function() {
2635
- this.L.N || $a(this);
2636
- this.L.Z && !this.L.$ && K("Object already scheduled for deletion");
2637
- N.push(this);
2638
- 1 === N.length && O && O(Ia);
2639
- this.L.Z = true;
2640
- return this;
2641
- };
2642
- Y.prototype.pa = function(a) {
2643
- this.ja && (a = this.ja(a));
2644
- return a;
2645
- };
2646
- Y.prototype.ga = function(a) {
2647
- this.V && this.V(a);
2648
- };
2649
- Y.prototype.argPackAdvance = 8;
2650
- Y.prototype.readValueFromPointer = T;
2651
- Y.prototype.deleteObject = function(a) {
2652
- if (null !== a)
2653
- a["delete"]();
2654
- };
2655
- Y.prototype.fromWireType = function(a) {
2656
- function b() {
2657
- return this.ca ? Va(this.M.W, { O: this.va, N: c, T: this, S: a }) : Va(this.M.W, { O: this, N: a });
2658
- }
2659
- var c = this.pa(a);
2660
- if (!c)
2661
- return this.ga(a), null;
2662
- var d = Sa(this.M, c);
2663
- if (void 0 !== d) {
2664
- if (0 === d.L.count.value)
2665
- return d.L.N = c, d.L.S = a, d.clone();
2666
- d = d.clone();
2667
- this.ga(a);
2668
- return d;
2669
- }
2670
- d = this.M.oa(c);
2671
- d = Ra[d];
2672
- if (!d)
2673
- return b.call(this);
2674
- d = this.ba ? d.ka : d.pointerType;
2675
- var e = Qa(c, this.M, d.M);
2676
- return null === e ? b.call(this) : this.ca ? Va(d.M.W, { O: d, N: e, T: this, S: a }) : Va(d.M.W, { O: d, N: e });
2677
- };
2678
- mb = h.UnboundTypeError = Ea("UnboundTypeError");
2679
- var ya = "function" == typeof atob ? atob : function(a) {
2680
- var b = "", c = 0;
2681
- a = a.replace(/[^A-Za-z0-9\+\/=]/g, "");
2682
- do {
2683
- var d = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
2684
- var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
2685
- var f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
2686
- var g = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
2687
- d = d << 2 | e >> 4;
2688
- e = (e & 15) << 4 | f >> 2;
2689
- var k = (f & 3) << 6 | g;
2690
- b += String.fromCharCode(d);
2691
- 64 !== f && (b += String.fromCharCode(e));
2692
- 64 !== g && (b += String.fromCharCode(k));
2693
- } while (c < a.length);
2694
- return b;
2695
- }, Jb = {
2696
- p: function(a, b, c) {
2697
- a = M(a);
2698
- b = Ma(b, "wrapper");
2699
- c = L(c);
2700
- var d = [].slice, e = b.M, f = e.W, g = e.P.W, k = e.P.constructor;
2701
- a = Ca(a, function() {
2702
- e.P.ia.forEach((function(l) {
2703
- if (this[l] === g[l])
2704
- throw new Ga("Pure virtual function " + l + " must be implemented in JavaScript");
2705
- }).bind(this));
2706
- Object.defineProperty(this, "__parent", { value: f });
2707
- this.__construct.apply(this, d.call(arguments));
2708
- });
2709
- f.__construct = function() {
2710
- this === f && K("Pass correct 'this' to __construct");
2711
- var l = k.implement.apply(void 0, [this].concat(d.call(arguments)));
2712
- Na(l);
2713
- var n = l.L;
2714
- l.notifyOnDestruction();
2715
- n.$ = true;
2716
- Object.defineProperties(this, { L: { value: n } });
2717
- S(this);
2718
- l = n.N;
2719
- l = Ja(e, l);
2720
- P.hasOwnProperty(l) ? K("Tried to register registered instance: " + l) : P[l] = this;
2721
- };
2722
- f.__destruct = function() {
2723
- this === f && K("Pass correct 'this' to __destruct");
2724
- Na(this);
2725
- var l = this.L.N;
2726
- l = Ja(e, l);
2727
- P.hasOwnProperty(l) ? delete P[l] : K("Tried to unregister unregistered instance: " + l);
2728
- };
2729
- a.prototype = Object.create(f);
2730
- for (var m in c)
2731
- a.prototype[m] = c[m];
2732
- return Fa(a);
2733
- },
2734
- j: function(a) {
2735
- var b = Wa[a];
2736
- delete Wa[a];
2737
- var c = b.ea, d = b.V, e = b.ha, f = e.map((g) => g.sa).concat(e.map((g) => g.ya));
2738
- V([a], f, (g) => {
2739
- var k = {};
2740
- e.forEach((m, l) => {
2741
- var n = g[l], p = m.qa, r = m.ra, u = g[l + e.length], t = m.xa, y = m.za;
2742
- k[m.na] = { read: (B) => n.fromWireType(p(r, B)), write: (B, aa) => {
2743
- var I = [];
2744
- t(y, B, u.toWireType(I, aa));
2745
- Xa(I);
2746
- } };
2747
- });
2748
- return [{ name: b.name, fromWireType: function(m) {
2749
- var l = {}, n;
2750
- for (n in k)
2751
- l[n] = k[n].read(m);
2752
- d(m);
2753
- return l;
2754
- }, toWireType: function(m, l) {
2755
- for (var n in k)
2756
- if (!(n in l))
2757
- throw new TypeError('Missing field: "' + n + '"');
2758
- var p = c();
2759
- for (n in k)
2760
- k[n].write(p, l[n]);
2761
- null !== m && m.push(d, p);
2762
- return p;
2763
- }, argPackAdvance: 8, readValueFromPointer: T, U: d }];
2764
- });
2765
- },
2766
- v: function() {
2767
- },
2768
- B: function(a, b, c, d, e) {
2769
- var f = Za(c);
2770
- b = M(b);
2771
- W(a, { name: b, fromWireType: function(g) {
2772
- return !!g;
2773
- }, toWireType: function(g, k) {
2774
- return k ? d : e;
2775
- }, argPackAdvance: 8, readValueFromPointer: function(g) {
2776
- if (1 === c)
2777
- var k = ka;
2778
- else if (2 === c)
2779
- k = A;
2780
- else if (4 === c)
2781
- k = C;
2782
- else
2783
- throw new TypeError("Unknown boolean type size: " + b);
2784
- return this.fromWireType(k[g >> f]);
2785
- }, U: null });
2786
- },
2787
- f: function(a, b, c, d, e, f, g, k, m, l, n, p, r) {
2788
- n = M(n);
2789
- f = Z(e, f);
2790
- k && (k = Z(g, k));
2791
- l && (l = Z(m, l));
2792
- r = Z(p, r);
2793
- var u = Ba(n);
2794
- bb(u, function() {
2795
- nb("Cannot construct " + n + " due to unbound types", [d]);
2796
- });
2797
- V([a, b, c], d ? [d] : [], function(t) {
2798
- t = t[0];
2799
- if (d) {
2800
- var y = t.M;
2801
- var B = y.W;
2802
- } else
2803
- B = X.prototype;
2804
- t = Ca(u, function() {
2805
- if (Object.getPrototypeOf(this) !== aa)
2806
- throw new J("Use 'new' to construct " + n);
2807
- if (void 0 === I.X)
2808
- throw new J(n + " has no accessible constructor");
2809
- var kb = I.X[arguments.length];
2810
- if (void 0 === kb)
2811
- throw new J("Tried to invoke ctor of " + n + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(I.X).toString() + ") parameters instead!");
2812
- return kb.apply(this, arguments);
2813
- });
2814
- var aa = Object.create(B, { constructor: { value: t } });
2815
- t.prototype = aa;
2816
- var I = new cb2(n, t, aa, r, y, f, k, l);
2817
- y = new Y(n, I, true, false);
2818
- B = new Y(n + "*", I, false, false);
2819
- var lb = new Y(n + " const*", I, false, true);
2820
- Ra[a] = { pointerType: B, ka: lb };
2821
- ib(u, t);
2822
- return [y, B, lb];
2823
- });
2824
- },
2825
- c: function(a, b, c, d, e, f, g) {
2826
- var k = pb(c, d);
2827
- b = M(b);
2828
- f = Z(e, f);
2829
- V([], [a], function(m) {
2830
- function l() {
2831
- nb("Cannot call " + n + " due to unbound types", k);
2832
- }
2833
- m = m[0];
2834
- var n = m.name + "." + b;
2835
- b.startsWith("@@") && (b = Symbol[b.substring(2)]);
2836
- var p = m.M.constructor;
2837
- void 0 === p[b] ? (l.Y = c - 1, p[b] = l) : (ab(p, b, n), p[b].R[c - 1] = l);
2838
- V([], k, function(r) {
2839
- r = ob(n, [r[0], null].concat(r.slice(1)), null, f, g);
2840
- void 0 === p[b].R ? (r.Y = c - 1, p[b] = r) : p[b].R[c - 1] = r;
2841
- return [];
2842
- });
2843
- return [];
2844
- });
2845
- },
2846
- o: function(a, b, c, d, e, f) {
2847
- 0 < b || x();
2848
- var g = pb(b, c);
2849
- e = Z(d, e);
2850
- V([], [a], function(k) {
2851
- k = k[0];
2852
- var m = "constructor " + k.name;
2853
- void 0 === k.M.X && (k.M.X = []);
2854
- if (void 0 !== k.M.X[b - 1])
2855
- throw new J("Cannot register multiple constructors with identical number of parameters (" + (b - 1) + ") for class '" + k.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!");
2856
- k.M.X[b - 1] = () => {
2857
- nb("Cannot construct " + k.name + " due to unbound types", g);
2858
- };
2859
- V([], g, function(l) {
2860
- l.splice(1, 0, null);
2861
- k.M.X[b - 1] = ob(m, l, null, e, f);
2862
- return [];
2863
- });
2864
- return [];
2865
- });
2866
- },
2867
- a: function(a, b, c, d, e, f, g, k) {
2868
- var m = pb(c, d);
2869
- b = M(b);
2870
- f = Z(e, f);
2871
- V([], [a], function(l) {
2872
- function n() {
2873
- nb("Cannot call " + p + " due to unbound types", m);
2874
- }
2875
- l = l[0];
2876
- var p = l.name + "." + b;
2877
- b.startsWith("@@") && (b = Symbol[b.substring(2)]);
2878
- k && l.M.ia.push(b);
2879
- var r = l.M.W, u = r[b];
2880
- void 0 === u || void 0 === u.R && u.className !== l.name && u.Y === c - 2 ? (n.Y = c - 2, n.className = l.name, r[b] = n) : (ab(r, b, p), r[b].R[c - 2] = n);
2881
- V([], m, function(t) {
2882
- t = ob(p, t, l, f, g);
2883
- void 0 === r[b].R ? (t.Y = c - 2, r[b] = t) : r[b].R[c - 2] = t;
2884
- return [];
2885
- });
2886
- return [];
2887
- });
2888
- },
2889
- A: function(a, b) {
2890
- b = M(b);
2891
- W(a, { name: b, fromWireType: function(c) {
2892
- var d = L(c);
2893
- qb(c);
2894
- return d;
2895
- }, toWireType: function(c, d) {
2896
- return Fa(d);
2897
- }, argPackAdvance: 8, readValueFromPointer: T, U: null });
2898
- },
2899
- m: function(a, b, c) {
2900
- c = Za(c);
2901
- b = M(b);
2902
- W(a, {
2903
- name: b,
2904
- fromWireType: function(d) {
2905
- return d;
2906
- },
2907
- toWireType: function(d, e) {
2908
- return e;
2909
- },
2910
- argPackAdvance: 8,
2911
- readValueFromPointer: rb(b, c),
2912
- U: null
2913
- });
2914
- },
2915
- d: function(a, b, c, d, e) {
2916
- b = M(b);
2917
- -1 === e && (e = 4294967295);
2918
- e = Za(c);
2919
- var f = (k) => k;
2920
- if (0 === d) {
2921
- var g = 32 - 8 * c;
2922
- f = (k) => k << g >>> g;
2923
- }
2924
- c = b.includes("unsigned") ? function(k, m) {
2925
- return m >>> 0;
2926
- } : function(k, m) {
2927
- return m;
2928
- };
2929
- W(a, { name: b, fromWireType: f, toWireType: c, argPackAdvance: 8, readValueFromPointer: sb(b, e, 0 !== d), U: null });
2930
- },
2931
- b: function(a, b, c) {
2932
- function d(f) {
2933
- f >>= 2;
2934
- var g = D;
2935
- return new e(ja, g[f + 1], g[f]);
2936
- }
2937
- var e = [
2938
- Int8Array,
2939
- Uint8Array,
2940
- Int16Array,
2941
- Uint16Array,
2942
- Int32Array,
2943
- Uint32Array,
2944
- Float32Array,
2945
- Float64Array
2946
- ][b];
2947
- c = M(c);
2948
- W(a, { name: c, fromWireType: d, argPackAdvance: 8, readValueFromPointer: d }, { ta: true });
2949
- },
2950
- n: function(a, b) {
2951
- b = M(b);
2952
- var c = "std::string" === b;
2953
- W(a, { name: b, fromWireType: function(d) {
2954
- var e = D[d >> 2], f = d + 4;
2955
- if (c)
2956
- for (var g = f, k = 0; k <= e; ++k) {
2957
- var m = f + k;
2958
- if (k == e || 0 == z[m]) {
2959
- g = g ? ia(z, g, m - g) : "";
2960
- if (void 0 === l)
2961
- var l = g;
2962
- else
2963
- l += String.fromCharCode(0), l += g;
2964
- g = m + 1;
2965
- }
2966
- }
2967
- else {
2968
- l = Array(e);
2969
- for (k = 0; k < e; ++k)
2970
- l[k] = String.fromCharCode(z[f + k]);
2971
- l = l.join("");
2972
- }
2973
- R(d);
2974
- return l;
2975
- }, toWireType: function(d, e) {
2976
- e instanceof ArrayBuffer && (e = new Uint8Array(e));
2977
- var f, g = "string" == typeof e;
2978
- g || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array || K("Cannot pass non-string to std::string");
2979
- if (c && g) {
2980
- var k = 0;
2981
- for (f = 0; f < e.length; ++f) {
2982
- var m = e.charCodeAt(f);
2983
- 127 >= m ? k++ : 2047 >= m ? k += 2 : 55296 <= m && 57343 >= m ? (k += 4, ++f) : k += 3;
2984
- }
2985
- f = k;
2986
- } else
2987
- f = e.length;
2988
- k = Ib(4 + f + 1);
2989
- m = k + 4;
2990
- D[k >> 2] = f;
2991
- if (c && g) {
2992
- if (g = m, m = f + 1, f = z, 0 < m) {
2993
- m = g + m - 1;
2994
- for (var l = 0; l < e.length; ++l) {
2995
- var n = e.charCodeAt(l);
2996
- if (55296 <= n && 57343 >= n) {
2997
- var p = e.charCodeAt(++l);
2998
- n = 65536 + ((n & 1023) << 10) | p & 1023;
2999
- }
3000
- if (127 >= n) {
3001
- if (g >= m)
3002
- break;
3003
- f[g++] = n;
3004
- } else {
3005
- if (2047 >= n) {
3006
- if (g + 1 >= m)
3007
- break;
3008
- f[g++] = 192 | n >> 6;
3009
- } else {
3010
- if (65535 >= n) {
3011
- if (g + 2 >= m)
3012
- break;
3013
- f[g++] = 224 | n >> 12;
3014
- } else {
3015
- if (g + 3 >= m)
3016
- break;
3017
- f[g++] = 240 | n >> 18;
3018
- f[g++] = 128 | n >> 12 & 63;
3019
- }
3020
- f[g++] = 128 | n >> 6 & 63;
3021
- }
3022
- f[g++] = 128 | n & 63;
3023
- }
3024
- }
3025
- f[g] = 0;
3026
- }
3027
- } else if (g)
3028
- for (g = 0; g < f; ++g)
3029
- l = e.charCodeAt(g), 255 < l && (R(m), K("String has UTF-16 code units that do not fit in 8 bits")), z[m + g] = l;
3030
- else
3031
- for (g = 0; g < f; ++g)
3032
- z[m + g] = e[g];
3033
- null !== d && d.push(R, k);
3034
- return k;
3035
- }, argPackAdvance: 8, readValueFromPointer: T, U: function(d) {
3036
- R(d);
3037
- } });
3038
- },
3039
- i: function(a, b, c) {
3040
- c = M(c);
3041
- if (2 === b) {
3042
- var d = tb;
3043
- var e = ub;
3044
- var f = vb;
3045
- var g = () => la;
3046
- var k = 1;
3047
- } else
3048
- 4 === b && (d = wb, e = xb, f = yb, g = () => D, k = 2);
3049
- W(a, {
3050
- name: c,
3051
- fromWireType: function(m) {
3052
- for (var l = D[m >> 2], n = g(), p, r = m + 4, u = 0; u <= l; ++u) {
3053
- var t = m + 4 + u * b;
3054
- if (u == l || 0 == n[t >> k])
3055
- r = d(r, t - r), void 0 === p ? p = r : (p += String.fromCharCode(0), p += r), r = t + b;
3056
- }
3057
- R(m);
3058
- return p;
3059
- },
3060
- toWireType: function(m, l) {
3061
- "string" != typeof l && K("Cannot pass non-string to C++ string type " + c);
3062
- var n = f(l), p = Ib(4 + n + b);
3063
- D[p >> 2] = n >> k;
3064
- e(l, p + 4, n + b);
3065
- null !== m && m.push(R, p);
3066
- return p;
3067
- },
3068
- argPackAdvance: 8,
3069
- readValueFromPointer: T,
3070
- U: function(m) {
3071
- R(m);
3072
- }
3073
- });
3074
- },
3075
- k: function(a, b, c, d, e, f) {
3076
- Wa[a] = { name: M(b), ea: Z(c, d), V: Z(e, f), ha: [] };
3077
- },
3078
- h: function(a, b, c, d, e, f, g, k, m, l) {
3079
- Wa[a].ha.push({ na: M(b), sa: c, qa: Z(d, e), ra: f, ya: g, xa: Z(k, m), za: l });
3080
- },
3081
- C: function(a, b) {
3082
- b = M(b);
3083
- W(a, { ua: true, name: b, argPackAdvance: 0, fromWireType: function() {
3084
- }, toWireType: function() {
3085
- } });
3086
- },
3087
- s: function(a, b, c, d, e) {
3088
- a = Bb[a];
3089
- b = L(b);
3090
- c = Ab(c);
3091
- var f = [];
3092
- D[d >> 2] = Fa(f);
3093
- return a(b, c, f, e);
3094
- },
3095
- t: function(a, b, c, d) {
3096
- a = Bb[a];
3097
- b = L(b);
3098
- c = Ab(c);
3099
- a(b, c, null, d);
3100
- },
3101
- g: qb,
3102
- l: function(a, b) {
3103
- var c = Db(a, b), d = c[0];
3104
- b = d.name + "_$" + c.slice(1).map(function(g) {
3105
- return g.name;
3106
- }).join("_") + "$";
3107
- var e = Eb[b];
3108
- if (void 0 !== e)
3109
- return e;
3110
- var f = Array(a - 1);
3111
- e = Cb((g, k, m, l) => {
3112
- for (var n = 0, p = 0; p < a - 1; ++p)
3113
- f[p] = c[p + 1].readValueFromPointer(l + n), n += c[p + 1].argPackAdvance;
3114
- g = g[k].apply(g, f);
3115
- for (p = 0; p < a - 1; ++p)
3116
- c[p + 1].la && c[p + 1].la(f[p]);
3117
- if (!d.ua)
3118
- return d.toWireType(m, g);
3119
- });
3120
- return Eb[b] = e;
3121
- },
3122
- q: function(a) {
3123
- 4 < a && (H[a].fa += 1);
3124
- },
3125
- r: function(a) {
3126
- var b = L(a);
3127
- Xa(b);
3128
- qb(a);
3129
- },
3130
- e: function() {
3131
- x("");
3132
- },
3133
- x: function(a, b, c) {
3134
- z.copyWithin(a, b, b + c);
3135
- },
3136
- w: function(a) {
3137
- var b = z.length;
3138
- a >>>= 0;
3139
- if (2147483648 < a)
3140
- return false;
3141
- for (var c = 1; 4 >= c; c *= 2) {
3142
- var d = b * (1 + 0.2 / c);
3143
- d = Math.min(d, a + 100663296);
3144
- var e = Math;
3145
- d = Math.max(a, d);
3146
- e = e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536);
3147
- a: {
3148
- try {
3149
- fa.grow(e - ja.byteLength + 65535 >>> 16);
3150
- oa();
3151
- var f = 1;
3152
- break a;
3153
- } catch (g) {
3154
- }
3155
- f = void 0;
3156
- }
3157
- if (f)
3158
- return true;
3159
- }
3160
- return false;
3161
- },
3162
- z: function() {
3163
- return 52;
3164
- },
3165
- u: function() {
3166
- return 70;
3167
- },
3168
- y: function(a, b, c, d) {
3169
- for (var e = 0, f = 0; f < c; f++) {
3170
- var g = D[b >> 2], k = D[b + 4 >> 2];
3171
- b += 8;
3172
- for (var m = 0; m < k; m++) {
3173
- var l = z[g + m], n = Fb[a];
3174
- 0 === l || 10 === l ? ((1 === a ? ea : v)(ia(n, 0)), n.length = 0) : n.push(l);
3175
- }
3176
- e += k;
3177
- }
3178
- D[d >> 2] = e;
3179
- return 0;
3180
- }
3181
- };
3182
- (function() {
3183
- function a(e) {
3184
- h.asm = e.exports;
3185
- fa = h.asm.D;
3186
- oa();
3187
- pa = h.asm.I;
3188
- ra.unshift(h.asm.E);
3189
- E--;
3190
- h.monitorRunDependencies && h.monitorRunDependencies(E);
3191
- 0 == E && (F && (e = F, F = null, e()));
3192
- }
3193
- function b(e) {
3194
- a(e.instance);
3195
- }
3196
- function c(e) {
3197
- return za().then(function(f) {
3198
- return WebAssembly.instantiate(f, d);
3199
- }).then(function(f) {
3200
- return f;
3201
- }).then(e, function(f) {
3202
- v("failed to asynchronously prepare wasm: " + f);
3203
- x(f);
3204
- });
3205
- }
3206
- var d = { a: Jb };
3207
- E++;
3208
- h.monitorRunDependencies && h.monitorRunDependencies(E);
3209
- if (h.instantiateWasm)
3210
- try {
3211
- return h.instantiateWasm(
3212
- d,
3213
- a
3214
- );
3215
- } catch (e) {
3216
- v("Module.instantiateWasm callback failed with error: " + e), ca2(e);
3217
- }
3218
- (function() {
3219
- return w || "function" != typeof WebAssembly.instantiateStreaming || va(G) || "function" != typeof fetch ? c(b) : fetch(G, { credentials: "same-origin" }).then(function(e) {
3220
- return WebAssembly.instantiateStreaming(e, d).then(b, function(f) {
3221
- v("wasm streaming compile failed: " + f);
3222
- v("falling back to ArrayBuffer instantiation");
3223
- return c(b);
3224
- });
3225
- });
3226
- })().catch(ca2);
3227
- return {};
3228
- })();
3229
- h.___wasm_call_ctors = function() {
3230
- return (h.___wasm_call_ctors = h.asm.E).apply(null, arguments);
3231
- };
3232
- var La = h.___getTypeName = function() {
3233
- return (La = h.___getTypeName = h.asm.F).apply(null, arguments);
3234
- };
3235
- h.__embind_initialize_bindings = function() {
3236
- return (h.__embind_initialize_bindings = h.asm.G).apply(null, arguments);
3237
- };
3238
- var Ib = h._malloc = function() {
3239
- return (Ib = h._malloc = h.asm.H).apply(null, arguments);
3240
- }, R = h._free = function() {
3241
- return (R = h._free = h.asm.J).apply(null, arguments);
3242
- };
3243
- h.dynCall_jiji = function() {
3244
- return (h.dynCall_jiji = h.asm.K).apply(null, arguments);
3245
- };
3246
- var Kb;
3247
- F = function Lb() {
3248
- Kb || Mb();
3249
- Kb || (F = Lb);
3250
- };
3251
- function Mb() {
3252
- function a() {
3253
- if (!Kb && (Kb = true, h.calledRun = true, !ha)) {
3254
- Aa(ra);
3255
- ba(h);
3256
- if (h.onRuntimeInitialized)
3257
- h.onRuntimeInitialized();
3258
- if (h.postRun)
3259
- for ("function" == typeof h.postRun && (h.postRun = [h.postRun]); h.postRun.length; ) {
3260
- var b = h.postRun.shift();
3261
- sa.unshift(b);
3262
- }
3263
- Aa(sa);
3264
- }
3265
- }
3266
- if (!(0 < E)) {
3267
- if (h.preRun)
3268
- for ("function" == typeof h.preRun && (h.preRun = [h.preRun]); h.preRun.length; )
3269
- ta();
3270
- Aa(qa);
3271
- 0 < E || (h.setStatus ? (h.setStatus("Running..."), setTimeout(function() {
3272
- setTimeout(function() {
3273
- h.setStatus("");
3274
- }, 1);
3275
- a();
3276
- }, 1)) : a());
3277
- }
3278
- }
3279
- if (h.preInit)
3280
- for ("function" == typeof h.preInit && (h.preInit = [h.preInit]); 0 < h.preInit.length; )
3281
- h.preInit.pop()();
3282
- Mb();
3283
- return loadYoga2.ready;
3284
- };
3285
- })();
3286
- module2.exports = loadYoga;
3287
- })(wasmAsyncWeb);
3288
- var wasmAsyncWebExports = wasmAsyncWeb.exports;
3289
- (function(exports2) {
3290
- Object.defineProperty(exports2, "__esModule", {
3291
- value: true
3292
- });
3293
- var _exportNames = {
3294
- loadYoga: true
3295
- };
3296
- exports2.loadYoga = loadYoga;
3297
- var _wrapAssembly = _interopRequireDefault(wrapAssembly$1);
3298
- var _YGEnums2 = YGEnums;
3299
- Object.keys(_YGEnums2).forEach(function(key) {
3300
- if (key === "default" || key === "__esModule")
3301
- return;
3302
- if (Object.prototype.hasOwnProperty.call(_exportNames, key))
3303
- return;
3304
- if (key in exports2 && exports2[key] === _YGEnums2[key])
3305
- return;
3306
- Object.defineProperty(exports2, key, {
3307
- enumerable: true,
3308
- get: function() {
3309
- return _YGEnums2[key];
3310
- }
3311
- });
3312
- });
3313
- function _interopRequireDefault(obj) {
3314
- return obj && obj.__esModule ? obj : { default: obj };
3315
- }
3316
- const loadAssembly = wasmAsyncWebExports;
3317
- async function loadYoga() {
3318
- return (0, _wrapAssembly.default)(await loadAssembly());
3319
- }
3320
- })(wasmAsyncWeb$1);
3321
- function breakWord({ context, word, maxW = Infinity }) {
3322
- const lines = [];
3323
- const fullWordMetrics = context.measureText(word);
3324
- if (fullWordMetrics.width < maxW) {
3325
- return [{ text: word, metrics: fullWordMetrics }];
3326
- }
3327
- for (let i = 0; i < word.length; i++) {
3328
- const lastLine = lines[lines.length - 1];
3329
- const newText = ((lastLine == null ? void 0 : lastLine.text) ?? "") + word[i];
3330
- const newLineMetrics = context.measureText(newText);
3331
- if (newLineMetrics.width < maxW) {
3332
- lines[lastLine ? lines.length - 1 : 0] = {
3333
- text: newText,
3334
- metrics: newLineMetrics
3335
- };
3336
- } else {
3337
- lines.push({ text: word[i], metrics: context.measureText(word[i]) });
3338
- }
3339
- }
3340
- return lines;
3341
- }
3342
- memoize(
3343
- ({ font, scale, context, maxW, maxH, text, minSize, maxSize }) => {
3344
- var _a, _b;
3345
- let fontSize = 0;
3346
- if (maxSize) {
3347
- const multiplier = 1;
3348
- fontSize = (minSize ?? 0) * scale;
3349
- let widestLine = 0;
3350
- while (maxSize * scale > fontSize + multiplier) {
3351
- fontSize += multiplier;
3352
- const lines = getLines({ context, font, fontSize, text, maxW });
3353
- widestLine = lines.reduce((acc, line) => {
3354
- if (line.metrics.width > acc) {
3355
- acc = line.metrics.width;
3356
- }
3357
- return acc;
3358
- }, 0);
3359
- if (widestLine > maxW || lines.length * fontSize > maxH) {
3360
- fontSize -= multiplier;
3361
- break;
3362
- }
3363
- }
3364
- } else {
3365
- fontSize = parseFloat(((_b = (_a = font.match(fontSizeRegex)) == null ? void 0 : _a.groups) == null ? void 0 : _b.value) ?? "0") * scale;
3366
- }
3367
- return fontSize;
3368
- },
3369
- {
3370
- cacheKey: ([{ font, text, minSize, maxSize, scale, maxW, maxH }]) => `${font}_${text}_${minSize}_${maxSize}_${scale}_${maxW}_${maxH}`
3371
- }
3372
- );
3373
- const easingMap = {
3374
- linear,
3375
- easeIn,
3376
- easeInOut,
3377
- easeOut,
3378
- circIn,
3379
- circInOut,
3380
- circOut,
3381
- backIn,
3382
- backInOut,
3383
- backOut,
3384
- anticipate,
3385
- bounceIn,
3386
- bounceInOut,
3387
- bounceOut
3388
- };
3389
- memoize(
3390
- (from, to, { clamp: clamp2 = true, ease = "easeIn", ...options } = {}) => {
3391
- return interpolate(from, to, { ...options, clamp: clamp2, ease: easingMap[ease] });
3392
- },
3393
- {
3394
- cacheKey: ([from, to, options]) => JSON.stringify({ from, to, options })
3395
- }
3396
- );
3397
- const fontSizeRegex = /(?<value>\d+\.?\d*)(?=px)/;
3398
- const getLines = memoize(
3399
- ({ context, font, fontSize, text, maxW = Infinity }) => {
3400
- try {
3401
- context.save();
3402
- context.font = font.replace(fontSizeRegex, fontSize.toString());
3403
- const newLines = text.split("\n");
3404
- return newLines.flatMap((line) => {
3405
- const words = line.split(" ").filter(Boolean);
3406
- if (!words.length) {
3407
- return { text: "", metrics: context.measureText("") };
3408
- }
3409
- return words.slice(1).reduce((acc, word) => {
3410
- const prevLine = acc[acc.length - 1].text;
3411
- const newLine = `${prevLine} ${word}`.trim();
3412
- const newMetrics = context.measureText(newLine);
3413
- if (newMetrics.width > maxW) {
3414
- acc = [...acc, ...breakWord({ context, word, maxW })];
3415
- } else {
3416
- acc[acc.length - 1] = {
3417
- text: newLine,
3418
- metrics: newMetrics
3419
- };
3420
- }
3421
- return acc;
3422
- }, breakWord({ context, word: words[0], maxW }));
3423
- });
3424
- } finally {
3425
- context.restore();
3426
- }
3427
- },
3428
- {
3429
- cacheKey: ([{ font, fontSize, text, maxW }]) => `${font}_${fontSize}_${text}_${maxW}`
3430
- }
3431
- );
3432
- const template = {
3433
- id: "046f363c-960a-449c-ae5e-984ac6ab58c2",
3434
- version: "2",
3435
- name: "None",
3436
- entityId: "none",
3437
- templateId: "a95e537e-fb4d-4d2f-9c72-86c0925c7176",
3438
- layouts: [
3439
- {
3440
- name: "none",
3441
- tree: `[
3442
- {
3443
- "width": "100%",
3444
- "height": "100%",
3445
- "node": {
3446
- "type": "video",
3447
- "format": {{ it.videoFormat }},
3448
- "value": {
3449
- "id": {{ it.id }},
3450
- "key": {{ it.key }},
3451
- "src": {{@async resolve-source({ sources: [it.mp4, it.input] }) /}},
3452
- "playlist": {{@async resolve-source({ sources: [it.playlist] }) /}},
3453
- "poster": {{ it.poster }},
3454
- "captions": {{ it.captions }},
3455
- "duration": {{ it.duration }},
3456
- "startOffset": {{ it.startOffset }},
3457
- "endOffset": {{ it.endOffset }},
3458
- "crop": {
3459
- "x": {{ it.crop?.x }},
3460
- "y": {{ it.crop?.y }},
3461
- "width": {{ it.crop?.width }},
3462
- "height": {{ it.crop?.height }}
3463
- }
3464
- }
3465
- }
3466
- }
3467
- ]`
3468
- }
3469
- ],
3470
- content: [
3471
- {
3472
- scenes: [
3473
- {
3474
- layout: "none",
3475
- data: `{
3476
- "id": {{ it.root?.answer?.id }},
3477
- "key": {{ it.root?.answer?.id + '-intro' }},
3478
- "mp4": {{ it.root?.answer?.media?.video }},
3479
- "input": {{ it.root?.answer?.media?.input }},
3480
- "playlist": {{ it.root?.answer?.media?.playlist }},
3481
- "poster": {{ it.root?.answer?.media?.thumbnail }},
3482
- "captions": {{ it.root?.answer?.captions?.current }},
3483
- "duration": {{ it.root?.answer?.metadata?.duration }},
3484
- "startOffset": {{ it.root?.answer?.settings?.startOffset }},
3485
- "endOffset": {{ it.root?.answer?.settings?.endOffset }},
3486
- "crop": {
3487
- "x": {{ it.root?.answer?.settings?.crop?.x }},
3488
- "y": {{ it.root?.answer?.settings?.crop?.y }},
3489
- "width": {{ it.root?.answer?.settings?.crop?.width }},
3490
- "height": {{ it.root?.answer?.settings?.crop?.height }}
3491
- }
3492
- }`
3493
- }
3494
- ],
3495
- root: "{{ it.intro?.questions?.items }}"
3496
- },
3497
- {
3498
- scenes: [
3499
- {
3500
- layout: "none",
3501
- data: `{
3502
- "id": {{ it.root?.answer?.id }},
3503
- "key": {{ it.root?.answer?.id + '-' + it.index }},
3504
- "mp4": {{ it.root?.answer?.media?.video }},
3505
- "input": {{ it.root?.answer?.media?.input }},
3506
- "playlist": {{ it.root?.answer?.media?.playlist }},
3507
- "poster": {{ it.root?.answer?.media?.thumbnail }},
3508
- "captions": {{ it.root?.answer?.captions?.current }},
3509
- "duration": {{ it.root?.answer?.metadata?.duration }},
3510
- "startOffset": {{ it.root?.answer?.settings?.startOffset }},
3511
- "endOffset": {{ it.root?.answer?.settings?.endOffset }},
3512
- "crop": {
3513
- "x": {{ it.root?.answer?.settings?.crop?.x }},
3514
- "y": {{ it.root?.answer?.settings?.crop?.y }},
3515
- "width": {{ it.root?.answer?.settings?.crop?.width }},
3516
- "height": {{ it.root?.answer?.settings?.crop?.height }}
3517
- }
3518
- }`
3519
- }
3520
- ],
3521
- root: "{{ it.questions?.items }}"
3522
- },
3523
- {
3524
- scenes: [
3525
- {
3526
- layout: "none",
3527
- data: `{
3528
- "id": {{ it.root?.answer?.id }},
3529
- "key": {{ it.root?.answer?.id + '-outro' }},
3530
- "mp4": {{ it.root?.answer?.media?.video }},
3531
- "input": {{ it.root?.answer?.media?.input }},
3532
- "playlist": {{ it.root?.answer?.media?.playlist }},
3533
- "poster": {{ it.root?.answer?.media?.thumbnail }},
3534
- "captions": {{ it.root?.answer?.captions?.current }},
3535
- "duration": {{ it.root?.answer?.metadata?.duration }},
3536
- "startOffset": {{ it.root?.answer?.settings?.startOffset }},
3537
- "endOffset": {{ it.root?.answer?.settings?.endOffset }},
3538
- "crop": {
3539
- "x": {{ it.root?.answer?.settings?.crop?.x }},
3540
- "y": {{ it.root?.answer?.settings?.crop?.y }},
3541
- "width": {{ it.root?.answer?.settings?.crop?.width }},
3542
- "height": {{ it.root?.answer?.settings?.crop?.height }}
3543
- }
3544
- }`
3545
- }
3546
- ],
3547
- root: "{{ it.outro?.questions?.items }}"
3548
- }
3549
- ],
3550
- system: true,
3551
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
3552
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
3553
- };
3554
- ({
3555
- id: "073977ec-6384-4329-b7c5-8275fb513e74",
3556
- name: "None",
3557
- entityId: "none",
3558
- templateId: "a95e537e-fb4d-4d2f-9c72-86c0925c7176",
3559
- templates: [template],
3560
- meta: {
3561
- frameRate: 30,
3562
- resolution: 720,
3563
- transitionDuration: 1 / 3
3564
- },
3565
- system: true,
3566
- default: 0,
3567
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
3568
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
3569
- });
3570
- async function imageFactory() {
3571
- if (typeof window === "undefined") {
3572
- const skiaCanvas = await import("./browser-f8654733.js").then((n) => n.b);
3573
- return new skiaCanvas.Image();
3574
- }
3575
- return new Image();
3576
- }
3577
- pMemoize(async function getImage2(src) {
3578
- if (!src) {
3579
- return null;
3580
- }
3581
- return new Promise((resolve, reject) => {
3582
- imageFactory().then((image) => {
3583
- image.onload = () => {
3584
- resolve(image);
3585
- };
3586
- image.onerror = (e) => {
3587
- reject(e);
3588
- };
3589
- image.src = src;
3590
- });
3591
- });
3592
- });
3593
- async function checkSource(src) {
3594
- var _a;
3595
- try {
3596
- if ((_a = await fetch$1(src, { method: "HEAD" })) == null ? void 0 : _a.ok) {
3597
- return src;
3598
- }
3599
- } catch {
3600
- return void 0;
3601
- }
3602
- return void 0;
3603
- }
3604
- async function getSources({ sources }) {
3605
- let src = null;
3606
- if (sources) {
3607
- const sPromises = sources.filter(Boolean).map((src2) => checkSource(src2));
3608
- src = (await Promise.all(sPromises)).find(Boolean);
3609
- }
3610
- return src;
3611
- }
3612
- function isPlainObject(value) {
3613
- if (value === null || typeof value !== "object") {
3614
- return false;
3615
- }
3616
- if (Object.getPrototypeOf(value) === null) {
3617
- return true;
3618
- }
3619
- let proto = value;
3620
- while (Object.getPrototypeOf(proto) !== null) {
3621
- proto = Object.getPrototypeOf(proto);
3622
- }
3623
- return Object.getPrototypeOf(value) === proto;
3624
- }
3625
- function sanitizeJSON(unsanitized) {
3626
- return unsanitized.replace(/\\/g, "\\\\").replace(/\//g, "\\/").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t").replace(/\f/g, "\\f").replace(/"/g, '\\"');
3627
- }
3628
- pMemoize(() => {
3629
- return wasmAsyncWeb$1.loadYoga();
3630
- });
3631
- squirrelly_minExports.filters.define("parse", (data) => {
3632
- if (typeof data === "undefined") {
3633
- return null;
3634
- }
3635
- if (typeof data === "string") {
3636
- return `"${sanitizeJSON(data)}"`;
3637
- }
3638
- if (isPlainObject(data) || Array.isArray(data)) {
3639
- return JSON.stringify(data);
3640
- }
3641
- return data;
3642
- });
3643
- squirrelly_minExports.helpers.define(
3644
- "resolve-source",
3645
- pMemoize(
3646
- async (content) => {
3647
- const { sources } = content.params[0] ?? {};
3648
- const validSources = sources == null ? void 0 : sources.filter(Boolean);
3649
- const blob = validSources == null ? void 0 : validSources.find((source2) => source2.includes("blob:"));
3650
- const local = validSources == null ? void 0 : validSources.find((source2) => !source2.includes("http"));
3651
- const source = blob ?? local ?? await getSources({ sources });
3652
- return source ? `"${source}"` : "null";
3653
- },
3654
- {
3655
- cacheKey: ([content]) => JSON.stringify(content.params[0] ?? {})
3656
- }
3657
- )
3658
- );
3659
- const TEMPLATE_VERSION = "2";
3660
- const name = "@vouchfor/embeds";
3661
- const version = "1.4.0";
3662
- const license = "MIT";
3663
- const author = "Aaron Williams";
3664
- const main = "dist/es/embeds.js";
3665
- const module = "dist/es/embeds.js";
3666
- const type = "module";
3667
- const types = "dist/es/src/index.d.ts";
3668
- const exports = {
3669
- ".": "./dist/es/embeds.js"
3670
- };
3671
- const files = [
3672
- "dist",
3673
- "src"
3674
- ];
3675
- const publishConfig = {
3676
- tag: "latest",
3677
- access: "public"
3678
- };
3679
- const scripts = {
3680
- build: "rm -rf dist && tsc && yarn build:self",
3681
- "build:deps": "yarn --cwd ../media-player build",
3682
- "build:self": "vite build --mode iife && vite build --mode es && node scripts/build.cjs",
3683
- "build:package": "yarn build",
3684
- "build:storybook": "yarn prebuild && storybook build",
3685
- "generate:manifest": "wca src --outFile custom-elements.json",
3686
- lint: "eslint . --quiet",
3687
- "lint:fix": "eslint . --fix",
3688
- "lint:staged": "lint-staged",
3689
- prepublishOnly: "yarn build",
3690
- size: "size-limit",
3691
- storybook: "yarn prebuild && storybook dev -p 6007",
3692
- prebuild: "yarn build:deps && yarn generate:manifest",
3693
- test: "rm -rf test/lib && yarn prebuild && vite build --mode test && web-test-runner",
3694
- "test:ci": "yarn test --config web-test-runner.ci.config.js"
3695
- };
3696
- const dependencies = {
3697
- "@a11y/focus-trap": "^1.0.5",
3698
- "@lit/task": "^1.0.0",
3699
- "@vouchfor/media-player": "^2.3.0",
3700
- uuid: "^9.0.1"
3701
- };
3702
- const peerDependencies = {
3703
- lit: "^3.1.0"
3704
- };
3705
- const devDependencies = {
3706
- "@esm-bundle/chai": "^4.3.4-fix.0",
3707
- "@open-wc/testing": "^3.2.0",
3708
- "@storybook/addon-essentials": "^7.4.5",
3709
- "@storybook/addon-links": "^7.4.5",
3710
- "@storybook/blocks": "^7.4.5",
3711
- "@storybook/web-components": "^7.4.5",
3712
- "@storybook/web-components-vite": "^7.4.5",
3713
- "@types/mocha": "^10.0.1",
3714
- "@vouchfor/eslint-config": "^1.0.0",
3715
- "@vouchfor/prettier-config": "^1.0.0",
3716
- "@web/dev-server-esbuild": "^0.4.1",
3717
- "@web/test-runner": "^0.17.1",
3718
- "@web/test-runner-browserstack": "^0.6.1",
3719
- "@web/test-runner-mocha": "^0.8.1",
3720
- "@web/test-runner-playwright": "^0.10.1",
3721
- dotenv: "^16.3.1",
3722
- eslint: "^8.50.0",
3723
- "eslint-plugin-import": "^2.28.1",
3724
- glob: "^10.3.10",
3725
- "lint-staged": "^14.0.1",
3726
- lit: "^3.1.0",
3727
- lodash: "^4.17.21",
3728
- prettier: "^3.0.3",
3729
- react: "^18.2.0",
3730
- "react-dom": "^18.2.0",
3731
- "rollup-plugin-internal": "^1.0.4",
3732
- sinon: "^17.0.1",
3733
- storybook: "^7.4.5",
3734
- typescript: "^5.1.3",
3735
- vite: "^4.4.9",
3736
- "vite-plugin-commonjs": "^0.10.0",
3737
- "vite-plugin-dts": "^3.6.0",
3738
- "web-component-analyzer": "^1.1.7"
3739
- };
3740
- const packageJson = {
3741
- name,
3742
- version,
3743
- license,
3744
- author,
3745
- main,
3746
- module,
3747
- type,
3748
- types,
3749
- exports,
3750
- files,
3751
- publishConfig,
3752
- scripts,
3753
- "lint-staged": {
3754
- "**/*.{ts,tsx,js}": "eslint --fix --quiet",
3755
- "**/*.{md,json,yml}": "prettier --write"
3756
- },
3757
- dependencies,
3758
- peerDependencies,
3759
- devDependencies
3760
- };
3761
- function createVisitor(env) {
3762
- const { publicApiUrl } = getEnvUrls(env);
3763
- const visitorId = v4();
3764
- navigator.sendBeacon(`${publicApiUrl}/api/visitor`, JSON.stringify({ visitorId }));
3765
- return visitorId;
3766
- }
3767
- function getUids(env) {
3768
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
3769
- if (typeof window === "undefined") {
3770
- return {
3771
- client: null,
3772
- tab: null,
3773
- request: v4()
3774
- };
3775
- }
3776
- let visitorId = (_b = (_a = window.localStorage) == null ? void 0 : _a.getItem) == null ? void 0 : _b.call(_a, "vouch-uid-visitor");
3777
- let clientId = (_d = (_c = window.localStorage) == null ? void 0 : _c.getItem) == null ? void 0 : _d.call(_c, "vouch-uid-client");
3778
- let tabId = (_f = (_e = window.sessionStorage) == null ? void 0 : _e.getItem) == null ? void 0 : _f.call(_e, "vouch-uid-tab");
3779
- const requestId = v4();
3780
- if (!visitorId) {
3781
- visitorId = createVisitor(env);
3782
- (_h = (_g = window.localStorage) == null ? void 0 : _g.setItem) == null ? void 0 : _h.call(_g, "vouch-uid-visitor", visitorId);
3783
- }
3784
- if (!clientId) {
3785
- clientId = v4();
3786
- (_j = (_i = window.localStorage) == null ? void 0 : _i.setItem) == null ? void 0 : _j.call(_i, "vouch-uid-client", clientId);
3787
- }
3788
- if (!tabId) {
3789
- tabId = v4();
3790
- (_l = (_k = window.sessionStorage) == null ? void 0 : _k.setItem) == null ? void 0 : _l.call(_k, "vouch-uid-tab", tabId);
3791
- }
3792
- return {
3793
- client: clientId,
3794
- tab: tabId,
3795
- request: requestId,
3796
- visitor: visitorId
3797
- };
3798
- }
3799
- function findVouchId(payload, vouch) {
3800
- if (payload && "vouchId" in payload) {
3801
- return payload.vouchId;
3802
- }
3803
- return (vouch == null ? void 0 : vouch.id) ?? null;
3804
- }
3805
- function getReportingMetadata(source = "embedded_player") {
3806
- var _a, _b;
3807
- const [country, region] = ((_b = (_a = Intl.DateTimeFormat().resolvedOptions().timeZone) == null ? void 0 : _a.split) == null ? void 0 : _b.call(_a, "/")) ?? [];
3808
- const utmParams = {};
3809
- [...new URLSearchParams(location.search).entries()].forEach(([key, value]) => {
3810
- if (/utm/.test(key)) {
3811
- const param = key.toLowerCase().replace(/[-_][a-z0-9]/g, (group) => group.slice(-1).toUpperCase());
3812
- utmParams[param] = value;
3813
- }
3814
- });
3815
- return {
3816
- source,
3817
- time: /* @__PURE__ */ new Date(),
3818
- region,
3819
- country,
3820
- screenHeight: window.screen.height,
3821
- screenWidth: window.screen.width,
3822
- referrer: document.referrer,
3823
- currentUrl: location.href,
3824
- embedType: "media-player-embed",
3825
- embedVersion: packageJson.version,
3826
- templateVersion: TEMPLATE_VERSION,
3827
- ...utmParams
3828
- };
3829
- }
3830
- const MINIMUM_SEND_THRESHOLD = 1;
3831
- class TrackingController {
3832
- constructor(host) {
3833
- this._batchedEvents = [];
3834
- this._hasPlayed = false;
3835
- this._hasLoaded = {};
3836
- this._answersViewed = {};
3837
- this._streamStartTime = {};
3838
- this._streamLatestTime = {};
3839
- this._currentlyPlayingVideo = null;
3840
- this._createTrackingEvent = (event, payload) => {
3841
- const vouchId = findVouchId(payload, this.host.vouch);
3842
- if (!vouchId || this.host.disableTracking) {
3843
- return;
3844
- }
3845
- this._batchedEvents.push({
3846
- event,
3847
- payload: {
3848
- ...payload,
3849
- vouchId,
3850
- time: (/* @__PURE__ */ new Date()).toISOString()
3851
- }
3852
- });
3853
- };
3854
- this._sendTrackingEvent = () => {
3855
- if (this._batchedEvents.length <= 0) {
3856
- return;
3857
- }
3858
- const { publicApiUrl } = getEnvUrls(this.host.env);
3859
- const { client, tab, request, visitor } = getUids(this.host.env);
3860
- navigator.sendBeacon(
3861
- `${publicApiUrl}/api/batchevents`,
3862
- JSON.stringify({
3863
- payload: {
3864
- events: this._batchedEvents
3865
- },
3866
- context: {
3867
- "x-uid-client": client,
3868
- "x-uid-tab": tab,
3869
- "x-uid-request": request,
3870
- "x-uid-visitor": visitor,
3871
- "x-reporting-metadata": getReportingMetadata(this.host.trackingSource)
3872
- }
3873
- })
3874
- );
3875
- this._batchedEvents = [];
3876
- };
3877
- this._streamEnded = () => {
3878
- if (this._currentlyPlayingVideo) {
3879
- const { id, key } = this._currentlyPlayingVideo;
3880
- if (this._streamLatestTime[key] > this._streamStartTime[key] + MINIMUM_SEND_THRESHOLD) {
3881
- this._createTrackingEvent("VIDEO_STREAMED", {
3882
- answerId: id,
3883
- streamStart: this._streamStartTime[key],
3884
- streamEnd: this._streamLatestTime[key]
3885
- });
3886
- }
3887
- delete this._streamStartTime[key];
3888
- delete this._streamLatestTime[key];
3889
- }
3890
- };
3891
- this._handleVouchLoaded = ({ detail: vouchId }) => {
3892
- if (!vouchId) {
3893
- return;
3894
- }
3895
- if (!this._hasLoaded[vouchId]) {
3896
- this._createTrackingEvent("VOUCH_LOADED", { vouchId });
3897
- this._hasLoaded[vouchId] = true;
3898
- }
3899
- };
3900
- this._handlePlay = () => {
3901
- if (!this._hasPlayed) {
3902
- this._createTrackingEvent("VIDEO_PLAYED", {
3903
- streamStart: this.host.currentTime
3904
- });
3905
- this._hasPlayed = true;
3906
- }
3907
- };
3908
- this._handleVideoPlay = ({ detail: { id, key } }) => {
3909
- if (!this._answersViewed[key]) {
3910
- this._createTrackingEvent("VOUCH_RESPONSE_VIEWED", {
3911
- answerId: id
3912
- });
3913
- this._answersViewed[key] = true;
3914
- }
3915
- };
3916
- this._handleVideoTimeUpdate = ({ detail: { id, key, node } }) => {
3917
- var _a, _b;
3918
- if (
3919
- // We only want to count any time that the video is actually playing
3920
- !this.host.paused && // Only update the latest time if this event fires for the currently active video
3921
- id === ((_b = (_a = this.host.scene) == null ? void 0 : _a.video) == null ? void 0 : _b.id)
3922
- ) {
3923
- this._currentlyPlayingVideo = { id, key, node };
3924
- this._streamLatestTime[key] = node.currentTime;
3925
- if (!this._streamStartTime[key]) {
3926
- this._streamStartTime[key] = node.currentTime;
3927
- this._streamLatestTime[key] = node.currentTime;
3928
- }
3929
- }
3930
- };
3931
- this._handleVideoPause = ({ detail: { id, key } }) => {
3932
- if (this._streamLatestTime[key] > this._streamStartTime[key] + MINIMUM_SEND_THRESHOLD) {
3933
- this._createTrackingEvent("VIDEO_STREAMED", {
3934
- answerId: id,
3935
- streamStart: this._streamStartTime[key],
3936
- streamEnd: this._streamLatestTime[key]
3937
- });
3938
- }
3939
- delete this._streamStartTime[key];
3940
- delete this._streamLatestTime[key];
3941
- };
3942
- this._pageUnloading = () => {
3943
- this._streamEnded();
3944
- this._sendTrackingEvent();
3945
- };
3946
- this._handleVisibilityChange = () => {
3947
- if (document.visibilityState === "hidden") {
3948
- this._pageUnloading();
3949
- }
3950
- };
3951
- this._handlePageHide = () => {
3952
- this._pageUnloading();
3953
- };
3954
- this.host = host;
3955
- host.addController(this);
3956
- }
3957
- hostConnected() {
3958
- requestAnimationFrame(() => {
3959
- var _a, _b, _c, _d;
3960
- if ("onvisibilitychange" in document) {
3961
- document.addEventListener("visibilitychange", this._handleVisibilityChange);
3962
- } else {
3963
- window.addEventListener("pagehide", this._handlePageHide);
3964
- }
3965
- this.host.addEventListener("vouch:loaded", this._handleVouchLoaded);
3966
- (_a = this.host.mediaPlayer) == null ? void 0 : _a.addEventListener("play", this._handlePlay);
3967
- (_b = this.host.mediaPlayer) == null ? void 0 : _b.addEventListener("video:play", this._handleVideoPlay);
3968
- (_c = this.host.mediaPlayer) == null ? void 0 : _c.addEventListener("video:pause", this._handleVideoPause);
3969
- (_d = this.host.mediaPlayer) == null ? void 0 : _d.addEventListener("video:timeupdate", this._handleVideoTimeUpdate);
3970
- });
3971
- }
3972
- hostDisconnected() {
3973
- var _a, _b, _c, _d;
3974
- this._pageUnloading();
3975
- if ("onvisibilitychange" in document) {
3976
- document.removeEventListener("visibilitychange", this._handleVisibilityChange);
3977
- } else {
3978
- window.removeEventListener("pagehide", this._handlePageHide);
3979
- }
3980
- this.host.removeEventListener("vouch:loaded", this._handleVouchLoaded);
3981
- (_a = this.host.mediaPlayer) == null ? void 0 : _a.removeEventListener("play", this._handlePlay);
3982
- (_b = this.host.mediaPlayer) == null ? void 0 : _b.removeEventListener("video:play", this._handleVideoPlay);
3983
- (_c = this.host.mediaPlayer) == null ? void 0 : _c.removeEventListener("video:pause", this._handleVideoPause);
3984
- (_d = this.host.mediaPlayer) == null ? void 0 : _d.removeEventListener("video:timeupdate", this._handleVideoTimeUpdate);
3985
- }
3986
- }
3987
- var __defProp$3 = Object.defineProperty;
3988
- var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
3989
- var __decorateClass$3 = (decorators, target, key, kind) => {
3990
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
3991
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
3992
- if (decorator = decorators[i])
3993
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3994
- if (kind && result)
3995
- __defProp$3(target, key, result);
3996
- return result;
3997
- };
3998
- let PlayerEmbed = class extends LitElement {
3999
- constructor() {
4000
- super(...arguments);
4001
- this.env = "prod";
4002
- this.apiKey = "";
4003
- this.disableTracking = false;
4004
- this.trackingSource = "embedded_player";
4005
- this.preload = "auto";
4006
- this.autoplay = false;
4007
- this.aspectRatio = 0;
4008
- this.eventController = new EventForwardController(this, [
4009
- "durationchange",
4010
- "ended",
4011
- "error",
4012
- "loadeddata",
4013
- "pause",
4014
- "stalled",
4015
- "play",
4016
- "playing",
4017
- "ratechange",
4018
- "scenechange",
4019
- "seeking",
4020
- "seeked",
4021
- "timeupdate",
4022
- "volumechange",
4023
- "waiting",
4024
- "video:loadeddata",
4025
- "video:seeking",
4026
- "video:seeked",
4027
- "video:play",
4028
- "video:playing",
4029
- "video:pause",
4030
- "video:stalled",
4031
- "video:timeupdate",
4032
- "video:ended",
4033
- "video:error"
4034
- ]);
4035
- this._fetcherController = new FetcherController(this);
4036
- this._trackingController = new TrackingController(this);
4037
- this._mediaPlayerRef = createRef();
4038
- }
4039
- get fetching() {
4040
- return this._fetcherController.fetching;
4041
- }
4042
- get waiting() {
4043
- var _a;
4044
- return (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.waiting;
4045
- }
4046
- get initialised() {
4047
- var _a;
4048
- return (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.initialised;
4049
- }
4050
- get seeking() {
4051
- var _a;
4052
- return (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.seeking;
4053
- }
4054
- get paused() {
4055
- var _a;
4056
- return (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.paused;
4057
- }
4058
- get captions() {
4059
- var _a;
4060
- return (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.captions;
4061
- }
4062
- get fullscreen() {
4063
- var _a;
4064
- return (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.fullscreen;
4065
- }
4066
- get duration() {
4067
- var _a;
4068
- return (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.duration;
4069
- }
4070
- set currentTime(value) {
4071
- if (this._mediaPlayerRef.value) {
4072
- this._mediaPlayerRef.value.currentTime = value;
4073
- }
4074
- }
4075
- get currentTime() {
4076
- var _a;
4077
- return ((_a = this._mediaPlayerRef.value) == null ? void 0 : _a.currentTime) ?? 0;
4078
- }
4079
- set playbackRate(value) {
4080
- if (this._mediaPlayerRef.value) {
4081
- this._mediaPlayerRef.value.playbackRate = value;
4082
- }
4083
- }
4084
- get playbackRate() {
4085
- var _a;
4086
- return ((_a = this._mediaPlayerRef.value) == null ? void 0 : _a.playbackRate) ?? 1;
4087
- }
4088
- set volume(value) {
4089
- if (this._mediaPlayerRef.value) {
4090
- this._mediaPlayerRef.value.volume = value;
4091
- }
4092
- }
4093
- get volume() {
4094
- var _a;
4095
- return ((_a = this._mediaPlayerRef.value) == null ? void 0 : _a.volume) ?? 1;
4096
- }
4097
- set muted(value) {
4098
- if (this._mediaPlayerRef.value) {
4099
- this._mediaPlayerRef.value.muted = value;
4100
- }
4101
- }
4102
- get muted() {
4103
- var _a;
4104
- return ((_a = this._mediaPlayerRef.value) == null ? void 0 : _a.muted) ?? false;
4105
- }
4106
- get scene() {
4107
- var _a;
4108
- return ((_a = this._mediaPlayerRef.value) == null ? void 0 : _a.scene) ?? null;
4109
- }
4110
- get scenes() {
4111
- var _a;
4112
- return ((_a = this._mediaPlayerRef.value) == null ? void 0 : _a.scenes) ?? [];
4113
- }
4114
- get sceneConfig() {
4115
- var _a;
4116
- return ((_a = this._mediaPlayerRef.value) == null ? void 0 : _a.sceneConfig) ?? null;
4117
- }
4118
- get videoState() {
4119
- var _a;
4120
- return (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.videoState;
4121
- }
4122
- get mediaPlayer() {
4123
- return this._mediaPlayerRef.value;
4124
- }
4125
- play() {
4126
- var _a;
4127
- (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.play();
4128
- }
4129
- pause() {
4130
- var _a;
4131
- (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.pause();
4132
- }
4133
- reset(time = 0, play = false) {
4134
- var _a;
4135
- (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.reset(time, play);
4136
- }
4137
- setScene(index) {
4138
- var _a;
4139
- (_a = this._mediaPlayerRef.value) == null ? void 0 : _a.setScene(index);
4140
- }
4141
- _renderStyles() {
4142
- if (!this.aspectRatio) {
4143
- return html`
4144
- <style>
4145
- :host {
4146
- width: 100%;
4147
- height: 100%;
4148
- }
4149
- </style>
4150
- `;
4151
- }
4152
- if (typeof this.aspectRatio === "number") {
4153
- return html`
4154
- <style>
4155
- :host {
4156
- aspect-ratio: ${this.aspectRatio};
4157
- }
4158
- </style>
4159
- `;
4160
- }
4161
- return null;
4162
- }
4163
- render() {
4164
- return html`
4165
- ${this._renderStyles()}
4166
- <vmp-media-player
4167
- ${ref(this._mediaPlayerRef)}
4168
- ${this.eventController.register()}
4169
- ?autoplay=${this.autoplay}
4170
- ?loading=${this.fetching}
4171
- .data=${this.vouch}
4172
- .template=${this.template}
4173
- aspectRatio=${ifDefined(this.aspectRatio)}
4174
- preload=${ifDefined(this.preload)}
4175
- .controls=${this.controls}
4176
- ></vmp-media-player>
4177
- `;
4178
- }
4179
- };
4180
- PlayerEmbed.styles = [
4181
- css`
4182
- :host {
4183
- display: flex;
4184
- }
4185
- `
4186
- ];
4187
- __decorateClass$3([
4188
- property({ type: Object })
4189
- ], PlayerEmbed.prototype, "data", 2);
4190
- __decorateClass$3([
4191
- property({ type: String })
4192
- ], PlayerEmbed.prototype, "vouchId", 2);
4193
- __decorateClass$3([
4194
- property({ type: String })
4195
- ], PlayerEmbed.prototype, "templateId", 2);
4196
- __decorateClass$3([
4197
- property({ type: Array })
4198
- ], PlayerEmbed.prototype, "questions", 2);
4199
- __decorateClass$3([
4200
- property({ type: String })
4201
- ], PlayerEmbed.prototype, "env", 2);
4202
- __decorateClass$3([
4203
- property({ type: String })
4204
- ], PlayerEmbed.prototype, "apiKey", 2);
4205
- __decorateClass$3([
4206
- property({ type: Boolean })
4207
- ], PlayerEmbed.prototype, "disableTracking", 2);
4208
- __decorateClass$3([
4209
- property({ type: String })
4210
- ], PlayerEmbed.prototype, "trackingSource", 2);
4211
- __decorateClass$3([
4212
- property({ type: Array })
4213
- ], PlayerEmbed.prototype, "controls", 2);
4214
- __decorateClass$3([
4215
- property({ type: String })
4216
- ], PlayerEmbed.prototype, "preload", 2);
4217
- __decorateClass$3([
4218
- property({ type: Boolean })
4219
- ], PlayerEmbed.prototype, "autoplay", 2);
4220
- __decorateClass$3([
4221
- property({ type: Number })
4222
- ], PlayerEmbed.prototype, "aspectRatio", 2);
4223
- __decorateClass$3([
4224
- state()
4225
- ], PlayerEmbed.prototype, "vouch", 2);
4226
- __decorateClass$3([
4227
- state()
4228
- ], PlayerEmbed.prototype, "template", 2);
4229
- PlayerEmbed = __decorateClass$3([
4230
- customElement("vouch-embed-player")
4231
- ], PlayerEmbed);
4232
- var __defProp$2 = Object.defineProperty;
4233
- var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
4234
- var __decorateClass$2 = (decorators, target, key, kind) => {
4235
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
4236
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
4237
- if (decorator = decorators[i])
4238
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4239
- if (kind && result)
4240
- __defProp$2(target, key, result);
4241
- return result;
4242
- };
4243
- let DialogOverlay = class extends LitElement {
4244
- constructor() {
4245
- super(...arguments);
4246
- this.open = false;
4247
- this.aspectRatio = 0;
4248
- }
4249
- render() {
4250
- return html`
4251
- <div
4252
- class=${classMap({
4253
- container: true,
4254
- hidden: !this.open
4255
- })}
4256
- >
4257
- <div
4258
- class="background"
4259
- @click=${() => this.dispatchEvent(new CustomEvent("overlay:click", { bubbles: true, composed: true }))}
4260
- ></div>
4261
- <focus-trap>
4262
- <div
4263
- class=${classMap({
4264
- "video-frame": true,
4265
- grow: this.aspectRatio === 0
4266
- })}
4267
- style=${styleMap({
4268
- aspectRatio: this.aspectRatio
4269
- })}
4270
- >
4271
- <slot></slot>
4272
- <vmp-icon-button
4273
- icon="close"
4274
- rounded="full"
4275
- weight="heavy"
4276
- @click=${() => this.dispatchEvent(new CustomEvent("close:click", { bubbles: true, composed: true }))}
4277
- ></vmp-icon-button>
4278
- </div>
4279
- </focus-trap>
4280
- </div>
4281
- `;
4282
- }
4283
- };
4284
- DialogOverlay.styles = [
4285
- css`
4286
- :host {
4287
- --vouch-media-player-border-radius: var(--vu-media-player-border-radius, 12px);
4288
- --overlay-background-color: var(--vu-overlay-background-color, black);
4289
- --overlay-background-opacity: var(--vu-overlay-background-opacity, 0.4);
4290
-
4291
- --dialog-width: var(--vu-dialog-width, 890px);
4292
- --dialog-height: var(--vu-dialog-height, 500px);
4293
- }
4294
-
4295
- .container {
4296
- position: fixed;
4297
- display: flex;
4298
- inset: 0;
4299
- opacity: 1;
4300
- z-index: 2147483647;
4301
- align-items: center;
4302
- justify-content: center;
4303
- transition: opacity 100ms ease-in;
4304
- }
4305
-
4306
- .hidden {
4307
- opacity: 0;
4308
- pointer-events: none;
4309
- }
4310
-
4311
- .background {
4312
- position: absolute;
4313
- inset: 0;
4314
- opacity: var(--overlay-background-opacity);
4315
- background-color: var(--overlay-background-color);
4316
- }
4317
-
4318
- focus-trap {
4319
- display: flex;
4320
- align-items: center;
4321
- justify-content: center;
4322
- margin: 40px;
4323
- width: var(--dialog-width);
4324
- height: var(--dialog-height);
4325
- max-width: calc(100% - 80px);
4326
- max-height: calc(100% - 80px);
4327
- }
4328
-
4329
- .video-frame {
4330
- position: relative;
4331
- display: flex;
4332
- align-items: center;
4333
- justify-content: center;
4334
- max-width: 100%;
4335
- max-height: 100%;
4336
- }
4337
-
4338
- .video-frame.grow {
4339
- width: 100%;
4340
- height: 100%;
4341
- }
4342
-
4343
- vmp-icon-button {
4344
- position: absolute;
4345
- top: 0;
4346
- right: 0;
4347
- margin: 10px;
4348
- }
4349
- `
4350
- ];
4351
- __decorateClass$2([
4352
- property({ type: Boolean })
4353
- ], DialogOverlay.prototype, "open", 2);
4354
- __decorateClass$2([
4355
- property({ type: Number })
4356
- ], DialogOverlay.prototype, "aspectRatio", 2);
4357
- DialogOverlay = __decorateClass$2([
4358
- customElement("vouch-embed-dialog-overlay")
4359
- ], DialogOverlay);
4360
- var __defProp$1 = Object.defineProperty;
4361
- var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
4362
- var __decorateClass$1 = (decorators, target, key, kind) => {
4363
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
4364
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
4365
- if (decorator = decorators[i])
4366
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4367
- if (kind && result)
4368
- __defProp$1(target, key, result);
4369
- return result;
4370
- };
4371
- let DialogPortal = class extends LitElement {
4372
- constructor() {
4373
- super(...arguments);
4374
- this.env = "prod";
4375
- this.apiKey = "";
4376
- this.disableTracking = false;
4377
- this.trackingSource = "embedded_player";
4378
- this.preload = "none";
4379
- this.disableAutoplay = false;
4380
- this.aspectRatio = 0;
4381
- this._mediaPlayerRef = createRef();
4382
- this.open = false;
4383
- this._handleToggle = ({ detail }) => {
4384
- var _a, _b, _c;
4385
- if (this.id === detail) {
4386
- this.open = !this.open;
4387
- if (this.open) {
4388
- if (!this.disableAutoplay && ((_a = this._mediaPlayerRef) == null ? void 0 : _a.value)) {
4389
- this._mediaPlayerRef.value.muted = false;
4390
- this._mediaPlayerRef.value.play();
4391
- }
4392
- } else {
4393
- (_c = (_b = this._mediaPlayerRef) == null ? void 0 : _b.value) == null ? void 0 : _c.pause();
4394
- }
4395
- }
4396
- };
4397
- this._handleClose = () => {
4398
- var _a, _b;
4399
- this.open = false;
4400
- (_b = (_a = this._mediaPlayerRef) == null ? void 0 : _a.value) == null ? void 0 : _b.pause();
4401
- };
4402
- this._handleDocumentKeyUp = (e) => {
4403
- if (e.key === "Escape") {
4404
- this._handleClose();
4405
- }
4406
- };
4407
- }
4408
- connectedCallback() {
4409
- super.connectedCallback();
4410
- document.addEventListener("dialogembed:click", this._handleToggle);
4411
- document.addEventListener("keyup", this._handleDocumentKeyUp);
4412
- document.addEventListener("close:click", this._handleClose);
4413
- document.addEventListener("overlay:click", this._handleClose);
4414
- }
4415
- disconnectedCallback() {
4416
- super.disconnectedCallback();
4417
- document.removeEventListener("dialogembed:click", this._handleToggle);
4418
- document.removeEventListener("keyup", this._handleDocumentKeyUp);
4419
- document.removeEventListener("close:click", this._handleClose);
4420
- document.removeEventListener("overlay:click", this._handleClose);
4421
- }
4422
- createRenderRoot() {
4423
- const newNode = document.createElement("div");
4424
- document.body.appendChild(newNode);
4425
- return newNode;
4426
- }
4427
- render() {
4428
- return html`
4429
- <vouch-embed-dialog-overlay ?open=${this.open} aspectRatio=${this.aspectRatio}>
4430
- <vouch-embed-player
4431
- ${ref(this._mediaPlayerRef)}
4432
- style=${styleMap({
4433
- maxWidth: "100%",
4434
- maxHeight: "100%"
4435
- })}
4436
- ?autoplay=${false}
4437
- vouchId=${ifDefined(this.vouchId)}
4438
- templateId=${ifDefined(this.templateId)}
4439
- .questions=${this.questions}
4440
- .controls=${this.controls}
4441
- env=${ifDefined(this.env)}
4442
- apiKey=${ifDefined(this.apiKey)}
4443
- ?disableTracking=${this.disableTracking}
4444
- trackingSource=${ifDefined(this.trackingSource)}
4445
- preload=${ifDefined(this.preload)}
4446
- aspectRatio=${this.aspectRatio}
4447
- ></vouch-embed-player>
4448
- </vouch-embed-dialog-overlay>
4449
- `;
4450
- }
4451
- };
4452
- __decorateClass$1([
4453
- property({ type: String })
4454
- ], DialogPortal.prototype, "vouchId", 2);
4455
- __decorateClass$1([
4456
- property({ type: String })
4457
- ], DialogPortal.prototype, "templateId", 2);
4458
- __decorateClass$1([
4459
- property({ type: Array })
4460
- ], DialogPortal.prototype, "questions", 2);
4461
- __decorateClass$1([
4462
- property({ type: String })
4463
- ], DialogPortal.prototype, "env", 2);
4464
- __decorateClass$1([
4465
- property({ type: String })
4466
- ], DialogPortal.prototype, "apiKey", 2);
4467
- __decorateClass$1([
4468
- property({ type: Boolean })
4469
- ], DialogPortal.prototype, "disableTracking", 2);
4470
- __decorateClass$1([
4471
- property({ type: String })
4472
- ], DialogPortal.prototype, "trackingSource", 2);
4473
- __decorateClass$1([
4474
- property({ type: Array })
4475
- ], DialogPortal.prototype, "controls", 2);
4476
- __decorateClass$1([
4477
- property({ type: String })
4478
- ], DialogPortal.prototype, "preload", 2);
4479
- __decorateClass$1([
4480
- property({ type: Boolean })
4481
- ], DialogPortal.prototype, "disableAutoplay", 2);
4482
- __decorateClass$1([
4483
- property({ type: Number })
4484
- ], DialogPortal.prototype, "aspectRatio", 2);
4485
- __decorateClass$1([
4486
- state()
4487
- ], DialogPortal.prototype, "open", 2);
4488
- DialogPortal = __decorateClass$1([
4489
- customElement("vouch-embed-dialog-portal")
4490
- ], DialogPortal);
4491
- var __defProp = Object.defineProperty;
4492
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4493
- var __decorateClass = (decorators, target, key, kind) => {
4494
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
4495
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
4496
- if (decorator = decorators[i])
4497
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4498
- if (kind && result)
4499
- __defProp(target, key, result);
4500
- return result;
4501
- };
4502
- let DialogEmbed = class extends LitElement {
4503
- constructor() {
4504
- super(...arguments);
4505
- this.env = "prod";
4506
- this.apiKey = "";
4507
- this.disableTracking = false;
4508
- this.trackingSource = "embedded_player";
4509
- this.preload = "none";
4510
- this.disableAutoplay = false;
4511
- this.aspectRatio = 0;
4512
- this._id = v4();
4513
- this._handleRootClick = () => {
4514
- this.dispatchEvent(new CustomEvent("dialogembed:click", { detail: this._id, bubbles: true, composed: true }));
4515
- };
4516
- }
4517
- connectedCallback() {
4518
- super.connectedCallback();
4519
- this.addEventListener("click", this._handleRootClick);
4520
- }
4521
- disconnectedCallback() {
4522
- super.disconnectedCallback();
4523
- this.removeEventListener("click", this._handleRootClick);
4524
- }
4525
- render() {
4526
- return html`
4527
- <slot>
4528
- <vmp-button size="large">Play</vmp-button>
4529
- </slot>
4530
- <vouch-embed-dialog-portal
4531
- id=${this._id}
4532
- ?autoplay=${false}
4533
- vouchId=${ifDefined(this.vouchId)}
4534
- templateId=${ifDefined(this.templateId)}
4535
- .questions=${this.questions}
4536
- .controls=${this.controls}
4537
- env=${ifDefined(this.env)}
4538
- apiKey=${ifDefined(this.apiKey)}
4539
- ?disableTracking=${this.disableTracking}
4540
- trackingSource=${ifDefined(this.trackingSource)}
4541
- preload=${ifDefined(this.preload)}
4542
- aspectRatio=${this.aspectRatio}
4543
- ></vouch-embed-dialog-portal>
4544
- `;
4545
- }
4546
- };
4547
- DialogEmbed.styles = [
4548
- css`
4549
- :host {
4550
- --vu-button-padding: 10px 20px;
4551
- --vu-button-background: #287179;
4552
- --vu-button-background-hover: #4faab2;
4553
-
4554
- display: flex;
4555
- width: fit-content;
4556
- height: fit-content;
4557
- }
4558
- `
4559
- ];
4560
- __decorateClass([
4561
- property({ type: String })
4562
- ], DialogEmbed.prototype, "vouchId", 2);
4563
- __decorateClass([
4564
- property({ type: String })
4565
- ], DialogEmbed.prototype, "templateId", 2);
4566
- __decorateClass([
4567
- property({ type: Array })
4568
- ], DialogEmbed.prototype, "questions", 2);
4569
- __decorateClass([
4570
- property({ type: String })
4571
- ], DialogEmbed.prototype, "env", 2);
4572
- __decorateClass([
4573
- property({ type: String })
4574
- ], DialogEmbed.prototype, "apiKey", 2);
4575
- __decorateClass([
4576
- property({ type: Boolean })
4577
- ], DialogEmbed.prototype, "disableTracking", 2);
4578
- __decorateClass([
4579
- property({ type: String })
4580
- ], DialogEmbed.prototype, "trackingSource", 2);
4581
- __decorateClass([
4582
- property({ type: Array })
4583
- ], DialogEmbed.prototype, "controls", 2);
4584
- __decorateClass([
4585
- property({ type: String })
4586
- ], DialogEmbed.prototype, "preload", 2);
4587
- __decorateClass([
4588
- property({ type: Boolean })
4589
- ], DialogEmbed.prototype, "disableAutoplay", 2);
4590
- __decorateClass([
4591
- property({ type: Number })
4592
- ], DialogEmbed.prototype, "aspectRatio", 2);
4593
- DialogEmbed = __decorateClass([
4594
- customElement("vouch-embed-dialog")
4595
- ], DialogEmbed);
4596
- export {
4597
- DialogEmbed as D,
4598
- PlayerEmbed as P,
4599
- commonjsGlobal as c,
4600
- getDefaultExportFromCjs as g
4601
- };
4602
- //# sourceMappingURL=index-65006a92.js.map