@plattar/plattar-ar-adapter 1.122.2 → 1.123.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,34 +1,25 @@
1
1
  (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.PlattarARAdapter = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ConfiguratorAR = void 0;
5
- const launcher_ar_1 = require("./launcher-ar");
6
- /**
7
- * Performs AR related to Plattar Configurator functionalities
8
- */
9
- class ConfiguratorAR extends launcher_ar_1.LauncherAR {
10
- init() {
11
- throw new Error("Method not implemented.");
12
- }
13
- launch() {
14
- throw new Error("Method not implemented.");
15
- }
16
- start() {
17
- throw new Error("Method not implemented.");
18
- }
19
- }
20
- exports.ConfiguratorAR = ConfiguratorAR;
21
-
22
- },{"./launcher-ar":2}],2:[function(require,module,exports){
23
- "use strict";
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
4
  exports.LauncherAR = void 0;
26
5
  class LauncherAR {
27
6
  constructor() { }
7
+ /**
8
+ * Initialise and launch with a single function call. this is mostly for convenience.
9
+ * Use .init() and .start() separately for fine-grained control
10
+ */
11
+ launch() {
12
+ return new Promise((accept, reject) => {
13
+ this.init().then((value) => {
14
+ value.start();
15
+ return accept();
16
+ }).catch(reject);
17
+ });
18
+ }
28
19
  }
29
20
  exports.LauncherAR = LauncherAR;
30
21
 
31
- },{}],3:[function(require,module,exports){
22
+ },{}],2:[function(require,module,exports){
32
23
  "use strict";
33
24
  var __importDefault = (this && this.__importDefault) || function (mod) {
34
25
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -66,6 +57,7 @@ class ModelAR extends launcher_ar_1.LauncherAR {
66
57
  if (project) {
67
58
  analytics = new plattar_analytics_1.Analytics(project.id);
68
59
  analytics.origin = plattar_api_1.Server.location().type;
60
+ analytics.data.push("type", "model-ar");
69
61
  analytics.data.push("applicationId", project.id);
70
62
  analytics.data.push("applicationTitle", project.attributes.title);
71
63
  analytics.data.push("modelId", model.id);
@@ -120,18 +112,6 @@ class ModelAR extends launcher_ar_1.LauncherAR {
120
112
  }).catch(reject);
121
113
  });
122
114
  }
123
- /**
124
- * Initialise and launch with a single function call. this is mostly for convenience.
125
- * Use .init() and .start() separately for fine-grained control
126
- */
127
- launch() {
128
- return new Promise((accept, reject) => {
129
- this.init().then((value) => {
130
- value.start();
131
- return accept();
132
- }).catch(reject);
133
- });
134
- }
135
115
  /**
136
116
  * Launches the internal AR instance using an appropriate version of AR Viewers
137
117
  */
@@ -162,7 +142,7 @@ class ModelAR extends launcher_ar_1.LauncherAR {
162
142
  }
163
143
  exports.ModelAR = ModelAR;
164
144
 
165
- },{"../util/util":8,"../viewers/quicklook-viewer":11,"../viewers/reality-viewer":12,"../viewers/scene-viewer":13,"./launcher-ar":2,"@plattar/plattar-analytics":31,"@plattar/plattar-api":35}],4:[function(require,module,exports){
145
+ },{"../util/util":12,"../viewers/quicklook-viewer":15,"../viewers/reality-viewer":16,"../viewers/scene-viewer":17,"./launcher-ar":1,"@plattar/plattar-analytics":35,"@plattar/plattar-api":39}],3:[function(require,module,exports){
166
146
  "use strict";
167
147
  var __importDefault = (this && this.__importDefault) || function (mod) {
168
148
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -197,7 +177,7 @@ class ProductAR extends launcher_ar_1.LauncherAR {
197
177
  get variationID() {
198
178
  return this._variationID;
199
179
  }
200
- _setupAnalytics(product, variation) {
180
+ _SetupAnalytics(product, variation) {
201
181
  let analytics = null;
202
182
  const scene = product.relationships.find(plattar_api_1.Scene);
203
183
  // setup scene stuff (if any)
@@ -205,6 +185,7 @@ class ProductAR extends launcher_ar_1.LauncherAR {
205
185
  analytics = new plattar_analytics_1.Analytics(scene.attributes.application_id);
206
186
  analytics.origin = plattar_api_1.Server.location().type;
207
187
  this._analytics = analytics;
188
+ analytics.data.push("type", "product-ar");
208
189
  analytics.data.push("sceneId", scene.id);
209
190
  analytics.data.push("sceneTitle", scene.attributes.title);
210
191
  const application = scene.relationships.find(plattar_api_1.Project);
@@ -265,7 +246,7 @@ class ProductAR extends launcher_ar_1.LauncherAR {
265
246
  if (!model) {
266
247
  return reject(new Error("ProductAR.init() - cannot proceed as ModelFile for selected variation is corrupt"));
267
248
  }
268
- this._setupAnalytics(product, variation);
249
+ this._SetupAnalytics(product, variation);
269
250
  // we need to define our AR module here
270
251
  // we are in Safari/Quicklook mode here
271
252
  if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
@@ -296,18 +277,6 @@ class ProductAR extends launcher_ar_1.LauncherAR {
296
277
  }).catch(reject);
297
278
  });
298
279
  }
299
- /**
300
- * Initialise and launch with a single function call. this is mostly for convenience.
301
- * Use .init() and .start() separately for fine-grained control
302
- */
303
- launch() {
304
- return new Promise((accept, reject) => {
305
- this.init().then((value) => {
306
- value.start();
307
- return accept();
308
- }).catch(reject);
309
- });
310
- }
311
280
  /**
312
281
  * Launches the internal AR instance using an appropriate version of AR Viewers
313
282
  */
@@ -338,277 +307,559 @@ class ProductAR extends launcher_ar_1.LauncherAR {
338
307
  }
339
308
  exports.ProductAR = ProductAR;
340
309
 
341
- },{"../util/util":8,"../viewers/quicklook-viewer":11,"../viewers/reality-viewer":12,"../viewers/scene-viewer":13,"./launcher-ar":2,"@plattar/plattar-analytics":31,"@plattar/plattar-api":35}],5:[function(require,module,exports){
310
+ },{"../util/util":12,"../viewers/quicklook-viewer":15,"../viewers/reality-viewer":16,"../viewers/scene-viewer":17,"./launcher-ar":1,"@plattar/plattar-analytics":35,"@plattar/plattar-api":39}],4:[function(require,module,exports){
342
311
  "use strict";
312
+ var __importDefault = (this && this.__importDefault) || function (mod) {
313
+ return (mod && mod.__esModule) ? mod : { "default": mod };
314
+ };
343
315
  Object.defineProperty(exports, "__esModule", { value: true });
344
- exports.SceneAR = void 0;
316
+ exports.RawAR = void 0;
317
+ const util_1 = require("../util/util");
318
+ const quicklook_viewer_1 = __importDefault(require("../viewers/quicklook-viewer"));
319
+ const reality_viewer_1 = __importDefault(require("../viewers/reality-viewer"));
320
+ const scene_viewer_1 = __importDefault(require("../viewers/scene-viewer"));
345
321
  const launcher_ar_1 = require("./launcher-ar");
346
322
  /**
347
- * Performs AR functionality related to Plattar Scenes
323
+ * Allows launching AR Experiences provided a single remote 3D Model file
348
324
  */
349
- class SceneAR extends launcher_ar_1.LauncherAR {
350
- init() {
351
- throw new Error("Method not implemented.");
325
+ class RawAR extends launcher_ar_1.LauncherAR {
326
+ constructor(modelLocation = null) {
327
+ super();
328
+ if (!modelLocation) {
329
+ throw new Error("RawAR.constructor(modelLocation) - modelLocation must be defined");
330
+ }
331
+ const lowerLoc = modelLocation.toLowerCase();
332
+ if (lowerLoc.endsWith("usdz") || lowerLoc.endsWith("glb") || lowerLoc.endsWith("gltf") || lowerLoc.endsWith("reality")) {
333
+ this._modelLocation = modelLocation;
334
+ this._ar = null;
335
+ }
336
+ else {
337
+ throw new Error("RawAR.constructor(modelLocation) - modelLocation must be one of gltf, glb, usdz or reality");
338
+ }
352
339
  }
353
- launch() {
354
- throw new Error("Method not implemented.");
340
+ get modelLocation() {
341
+ return this._modelLocation;
342
+ }
343
+ /**
344
+ * Initialise the RawAR instance. This returns a Promise that resolves
345
+ * successfully if initialisation is successful, otherwise it will fail.
346
+ *
347
+ * filure can occur for a number of reasons but it generally means that AR
348
+ * cannot be performed.
349
+ */
350
+ init() {
351
+ return new Promise((accept, reject) => {
352
+ if (!util_1.Util.canAugment()) {
353
+ return reject(new Error("RawAR.init() - cannot proceed as AR not available in context"));
354
+ }
355
+ const modelLocation = this._modelLocation;
356
+ const lowerLoc = modelLocation.toLowerCase();
357
+ // we need to define our AR module here
358
+ // we are in Safari/Quicklook mode here
359
+ if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
360
+ // load the reality experience if dealing with reality file
361
+ if (lowerLoc.endsWith("reality") && util_1.Util.canRealityViewer()) {
362
+ this._ar = new reality_viewer_1.default();
363
+ this._ar.modelUrl = modelLocation;
364
+ return accept(this);
365
+ }
366
+ // load the usdz experience if dealing with usdz file
367
+ if (lowerLoc.endsWith("usdz") && util_1.Util.canQuicklook()) {
368
+ this._ar = new quicklook_viewer_1.default();
369
+ this._ar.modelUrl = modelLocation;
370
+ return accept(this);
371
+ }
372
+ return reject(new Error("RawAR.init() - cannot proceed as model is not a .usdz or .reality file"));
373
+ }
374
+ // check android
375
+ if (util_1.Util.canSceneViewer()) {
376
+ if (lowerLoc.endsWith("glb") || lowerLoc.endsWith("gltf")) {
377
+ this._ar = new scene_viewer_1.default();
378
+ this._ar.modelUrl = modelLocation;
379
+ return accept(this);
380
+ }
381
+ return reject(new Error("RawAR.init() - cannot proceed as model is not a .glb or .gltf file"));
382
+ }
383
+ // otherwise, we didn't have AR available - it should never really reach this stage as this should be caught
384
+ // earlier in the process
385
+ return reject(new Error("RawAR.init() - could not initialise AR correctly, check values"));
386
+ });
355
387
  }
388
+ /**
389
+ * Launches the internal AR instance using an appropriate version of AR Viewers
390
+ */
356
391
  start() {
357
- throw new Error("Method not implemented.");
392
+ if (!this._ar) {
393
+ throw new Error("RawAR.start() - cannot proceed as AR instance is null");
394
+ }
395
+ // this was initialised via the init() function
396
+ this._ar.start();
397
+ }
398
+ canQuicklook() {
399
+ return this._ar && this._ar.nodeType === "Quick Look" ? true : false;
400
+ }
401
+ canRealityViewer() {
402
+ return this._ar && this._ar.nodeType === "Reality Viewer" ? true : false;
403
+ }
404
+ canSceneViewer() {
405
+ return this._ar && this._ar.nodeType === "Scene Viewer" ? true : false;
358
406
  }
359
407
  }
360
- exports.SceneAR = SceneAR;
408
+ exports.RawAR = RawAR;
361
409
 
362
- },{"./launcher-ar":2}],6:[function(require,module,exports){
410
+ },{"../util/util":12,"../viewers/quicklook-viewer":15,"../viewers/reality-viewer":16,"../viewers/scene-viewer":17,"./launcher-ar":1}],5:[function(require,module,exports){
363
411
  "use strict";
412
+ var __importDefault = (this && this.__importDefault) || function (mod) {
413
+ return (mod && mod.__esModule) ? mod : { "default": mod };
414
+ };
364
415
  Object.defineProperty(exports, "__esModule", { value: true });
416
+ exports.SceneAR = void 0;
417
+ const plattar_analytics_1 = require("@plattar/plattar-analytics");
365
418
  const plattar_api_1 = require("@plattar/plattar-api");
366
- const product_ar_1 = require("../ar/product-ar");
367
- /**
368
- * This tracks the current state of the Embed
369
- */
370
- var EmbedState;
371
- (function (EmbedState) {
372
- EmbedState[EmbedState["None"] = 0] = "None";
373
- EmbedState[EmbedState["SceneViewer"] = 1] = "SceneViewer";
374
- EmbedState[EmbedState["ProductViewer"] = 2] = "ProductViewer";
375
- EmbedState[EmbedState["ProductAR"] = 3] = "ProductAR";
376
- EmbedState[EmbedState["QRCode"] = 4] = "QRCode";
377
- })(EmbedState || (EmbedState = {}));
419
+ const plattar_services_1 = require("@plattar/plattar-services");
420
+ const util_1 = require("../util/util");
421
+ const quicklook_viewer_1 = __importDefault(require("../viewers/quicklook-viewer"));
422
+ const reality_viewer_1 = __importDefault(require("../viewers/reality-viewer"));
423
+ const scene_viewer_1 = __importDefault(require("../viewers/scene-viewer"));
424
+ const launcher_ar_1 = require("./launcher-ar");
378
425
  /**
379
- * This is the primary <plattar-embed /> node that allows easy embedding
380
- * of Plattar related content
426
+ * Performs AR functionality related to Plattar Scenes
381
427
  */
382
- class PlattarEmbed extends HTMLElement {
383
- constructor() {
428
+ class SceneAR extends launcher_ar_1.LauncherAR {
429
+ constructor(sceneID = null) {
384
430
  super();
385
- // this is the current state of the embed, none by default
386
- this._currentState = EmbedState.None;
387
- this._qrCodeOptions = {
388
- color: "#101721",
389
- qrType: "default",
390
- margin: 0
391
- };
392
- this._sceneID = null;
393
- this._productID = null;
394
- this._variationID = null;
395
- this._isReady = false;
396
- this._width = "500px";
397
- this._height = "500px";
398
- this._server = "production";
399
- this._viewer = null;
400
- }
401
- get viewer() {
402
- return this._viewer;
403
- }
404
- connectedCallback() {
405
- const observer = new MutationObserver((mutations) => {
406
- mutations.forEach((mutation) => {
407
- if (mutation.type === "attributes") {
408
- const sceneID = this.hasAttribute("scene-id") ? this.getAttribute("scene-id") : null;
409
- const productID = this.hasAttribute("product-id") ? this.getAttribute("product-id") : null;
410
- const variationID = this.hasAttribute("variation-id") ? this.getAttribute("variation-id") : null;
411
- let updated = false;
412
- if (sceneID !== this._sceneID) {
413
- this._sceneID = sceneID;
414
- updated = true;
415
- }
416
- if (productID !== this._productID) {
417
- this._productID = productID;
418
- updated = true;
419
- }
420
- if (variationID !== this._variationID) {
421
- this._variationID = variationID;
422
- updated = true;
423
- }
424
- if (updated) {
425
- // re-render based on internal state
426
- this._OnAttributesUpdated();
427
- }
428
- }
429
- });
430
- });
431
- observer.observe(this, {
432
- attributes: true
433
- });
434
- const server = this.hasAttribute("server") ? this.getAttribute("server") : "production";
435
- plattar_api_1.Server.create(plattar_api_1.Server.match(server || "production"));
436
- if (server) {
437
- this._server = server;
438
- }
439
- this._sceneID = this.hasAttribute("scene-id") ? this.getAttribute("scene-id") : null;
440
- this._productID = this.hasAttribute("product-id") ? this.getAttribute("product-id") : null;
441
- this._variationID = this.hasAttribute("variation-id") ? this.getAttribute("variation-id") : null;
442
- const width = this.hasAttribute("width") ? this.getAttribute("width") : "500px";
443
- const height = this.hasAttribute("height") ? this.getAttribute("height") : "500px";
444
- if (width) {
445
- this._width = width;
446
- }
447
- if (height) {
448
- this._height = height;
449
- }
450
- this._isReady = true;
451
- const init = this.hasAttribute("init") ? this.getAttribute("init") : null;
452
- if (init === "ar") {
453
- this.startAR();
454
- }
455
- else if (init === "viewer") {
456
- this.startViewer();
457
- }
458
- else if (init === "qrcode") {
459
- this.startQRCode();
460
- }
461
- else if (init === "ar-fallback-qrcode") {
462
- this.startAR().then(() => {
463
- // nothing to do, launched successfully
464
- }).catch((_err) => {
465
- this.startQRCode();
466
- });
467
- }
468
- else if (init === "ar-fallback-viewer") {
469
- this.startAR().then(() => {
470
- // nothing to do, launched successfully
471
- }).catch((_err) => {
472
- this.startViewer();
473
- });
431
+ // analytics instance
432
+ this._analytics = null;
433
+ if (!sceneID) {
434
+ throw new Error("SceneAR.constructor(sceneID) - sceneID must be defined");
474
435
  }
436
+ this._sceneID = sceneID;
437
+ this._ar = null;
475
438
  }
476
- initAR() {
477
- return new Promise((accept, reject) => {
478
- if (!this._isReady) {
479
- return reject(new Error("PlattarEmbed.initAR() - cannot execute as page has not loaded yet"));
480
- }
481
- // if scene is not set but product is, then use ProductAR
482
- if (!this._sceneID && this._productID) {
483
- const product = new product_ar_1.ProductAR(this._productID, this._variationID);
484
- return product.init().then(accept).catch(reject);
485
- }
486
- // If Product is set (under any scenario) then use ProductAR
487
- // NOTE: At some point this should check for Scenes when SceneAR
488
- // is implemented
489
- if (this._productID) {
490
- const product = new product_ar_1.ProductAR(this._productID, this._variationID);
491
- return product.init().then(accept).catch(reject);
492
- }
493
- // otherwise, scene was set so use SceneAR
494
- if (this._sceneID) {
495
- return reject(new Error("PlattarEmbed.initAR() - scene-id not yet supported"));
439
+ get sceneID() {
440
+ return this._sceneID;
441
+ }
442
+ _SetupAnalytics(scene) {
443
+ let analytics = null;
444
+ // setup scene stuff (if any)
445
+ if (scene) {
446
+ analytics = new plattar_analytics_1.Analytics(scene.attributes.application_id);
447
+ analytics.origin = plattar_api_1.Server.location().type;
448
+ this._analytics = analytics;
449
+ analytics.data.push("type", "scene-ar");
450
+ analytics.data.push("sceneId", scene.id);
451
+ analytics.data.push("sceneTitle", scene.attributes.title);
452
+ const application = scene.relationships.find(plattar_api_1.Project);
453
+ // setup application stuff (if any)
454
+ if (application) {
455
+ analytics.data.push("applicationId", application.id);
456
+ analytics.data.push("applicationTitle", application.attributes.title);
496
457
  }
497
- return reject(new Error("PlattarEmbed.initAR() - minimum required attributes not set, use scene-id or product-id as a minimum"));
498
- });
458
+ }
499
459
  }
500
- startAR() {
460
+ /**
461
+ * Composes a Scene into an AR Model (remote operation) that can be used to launch
462
+ * an AR File
463
+ */
464
+ _ComposeScene(scene, output) {
501
465
  return new Promise((accept, reject) => {
502
- if (!this._isReady) {
503
- return reject(new Error("PlattarEmbed.startAR() - cannot execute as page has not loaded yet"));
466
+ const sceneProducts = scene.relationships.filter(plattar_api_1.SceneProduct);
467
+ // nothing to do if no AR components can be found
468
+ if (sceneProducts.length <= 0) {
469
+ return reject(new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain AR components"));
504
470
  }
505
- this.initAR().then((launcher) => {
506
- launcher.start();
507
- accept();
471
+ // define our configurator
472
+ const configurator = new plattar_services_1.Configurator();
473
+ configurator.server = plattar_api_1.Server.location().type;
474
+ configurator.output = output;
475
+ // add out scene models
476
+ sceneProducts.forEach((sceneProduct) => {
477
+ const product = sceneProduct.relationships.find(plattar_api_1.Product);
478
+ if (product && product.attributes.product_variation_id) {
479
+ configurator.addSceneProduct(sceneProduct.id, product.attributes.product_variation_id);
480
+ }
481
+ });
482
+ return configurator.get().then((result) => {
483
+ accept(result.filename);
508
484
  }).catch(reject);
509
485
  });
510
486
  }
511
- startViewer() {
487
+ /**
488
+ * Initialise the SceneAR instance. This returns a Promise that resolves
489
+ * successfully if initialisation is successful, otherwise it will fail.
490
+ *
491
+ * filure can occur for a number of reasons but it generally means that AR
492
+ * cannot be performed.
493
+ */
494
+ init() {
512
495
  return new Promise((accept, reject) => {
513
- if (!this._isReady) {
514
- return reject(new Error("PlattarEmbed.startViewer() - cannot execute as page has not loaded yet"));
515
- }
516
- if (this._viewer) {
517
- this._viewer.remove();
518
- this._viewer = null;
496
+ if (!util_1.Util.canAugment()) {
497
+ return reject(new Error("SceneAR.init() - cannot proceed as AR not available in context"));
519
498
  }
520
- // if scene is set, we use <plattar-viewer /> node from plattar-web
521
- if (this._sceneID) {
522
- const viewer = document.createElement("plattar-viewer");
523
- viewer.setAttribute("width", this._width);
524
- viewer.setAttribute("height", this._height);
525
- viewer.setAttribute("server", this._server);
526
- viewer.setAttribute("scene-id", this._sceneID);
527
- if (this._productID) {
528
- viewer.setAttribute("product-id", this._productID);
529
- }
530
- if (this._variationID) {
531
- viewer.setAttribute("variation-id", this._variationID);
499
+ const scene = new plattar_api_1.Scene(this.sceneID);
500
+ scene.include(plattar_api_1.Project);
501
+ scene.include(plattar_api_1.SceneProduct);
502
+ scene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product));
503
+ scene.get().then((scene) => {
504
+ this._SetupAnalytics(scene);
505
+ const sceneOpt = scene.attributes.custom_json || {};
506
+ // we need to define our AR module here
507
+ // we are in Safari/Quicklook mode here
508
+ if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
509
+ // we need to launch a VTO experience here
510
+ // VTO requires Reality Support
511
+ if (sceneOpt.anchor === "face") {
512
+ if (util_1.Util.canRealityViewer()) {
513
+ return this._ComposeScene(scene, "vto").then((modelUrl) => {
514
+ this._ar = new reality_viewer_1.default();
515
+ this._ar.modelUrl = modelUrl;
516
+ return accept(this);
517
+ }).catch(reject);
518
+ }
519
+ else {
520
+ return reject(new Error("SceneAR.init() - cannot proceed as VTO AR requires Reality Viewer support"));
521
+ }
522
+ }
523
+ // otherwise, load the USDZ stuff second if available
524
+ if (util_1.Util.canQuicklook()) {
525
+ return this._ComposeScene(scene, "usdz").then((modelUrl) => {
526
+ this._ar = new quicklook_viewer_1.default();
527
+ this._ar.modelUrl = modelUrl;
528
+ return accept(this);
529
+ }).catch(reject);
530
+ }
531
+ return reject(new Error("SceneAR.init() - cannot proceed as IOS device does not support AR Mode"));
532
532
  }
533
- viewer.onload = () => {
534
- return accept(viewer);
535
- };
536
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
537
- shadow.append(viewer);
538
- this._viewer = viewer;
539
- this._currentState = EmbedState.SceneViewer;
540
- return;
541
- }
542
- // if product is set, we use <plattar-product /> node from plattar-web
543
- if (this._productID) {
544
- const viewer = document.createElement("plattar-product");
545
- viewer.setAttribute("width", this._width);
546
- viewer.setAttribute("height", this._height);
547
- viewer.setAttribute("server", this._server);
548
- viewer.setAttribute("product-id", this._productID);
549
- if (this._variationID) {
550
- viewer.setAttribute("variation-id", this._variationID);
533
+ // check android
534
+ if (util_1.Util.canSceneViewer()) {
535
+ return this._ComposeScene(scene, "glb").then((modelUrl) => {
536
+ this._ar = new scene_viewer_1.default();
537
+ this._ar.modelUrl = modelUrl;
538
+ return accept(this);
539
+ }).catch(reject);
551
540
  }
552
- viewer.onload = () => {
553
- return accept(viewer);
554
- };
555
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
556
- shadow.append(viewer);
557
- this._viewer = viewer;
558
- this._currentState = EmbedState.ProductViewer;
559
- return;
560
- }
561
- return reject(new Error("PlattarEmbed.startViewer() - minimum required attributes not set, use scene-id or product-id as a minimum"));
541
+ // otherwise, we didn't have AR available - it should never really reach this stage as this should be caught
542
+ // earlier in the process
543
+ return reject(new Error("SceneAR.init() - could not initialise AR correctly, check values"));
544
+ }).catch(reject);
562
545
  });
563
546
  }
564
- startQRCode(options = null) {
565
- return new Promise((accept, reject) => {
566
- if (!this._isReady) {
567
- return reject(new Error("PlattarEmbed.startQRCode() - cannot execute as page has not loaded yet"));
568
- }
569
- const opt = options || this._qrCodeOptions;
570
- // reset instance for later use
571
- this._qrCodeOptions = opt;
572
- if (this._viewer) {
573
- this._viewer.remove();
574
- this._viewer = null;
575
- }
576
- // if scene is set, we embed a QR code that takes us to viewer.html
577
- if (this._sceneID) {
578
- const viewer = document.createElement("plattar-qrcode");
579
- viewer.setAttribute("width", this._width);
580
- viewer.setAttribute("height", this._height);
581
- if (opt.color) {
582
- viewer.setAttribute("color", opt.color);
583
- }
584
- if (opt.margin) {
585
- viewer.setAttribute("margin", "" + opt.margin);
586
- }
587
- if (opt.qrType) {
547
+ start() {
548
+ if (!this._ar) {
549
+ throw new Error("SceneAR.start() - cannot proceed as AR instance is null");
550
+ }
551
+ const analytics = this._analytics;
552
+ if (analytics) {
553
+ analytics.data.push("device", this._ar.device);
554
+ analytics.data.push("eventCategory", this._ar.nodeType);
555
+ analytics.data.push("eventAction", "Start Scene Augment");
556
+ analytics.write();
557
+ analytics.startRecordEngagement();
558
+ }
559
+ // this was initialised via the init() function
560
+ this._ar.start();
561
+ }
562
+ canQuicklook() {
563
+ return this._ar && this._ar.nodeType === "Quick Look" ? true : false;
564
+ }
565
+ canRealityViewer() {
566
+ return this._ar && this._ar.nodeType === "Reality Viewer" ? true : false;
567
+ }
568
+ canSceneViewer() {
569
+ return this._ar && this._ar.nodeType === "Scene Viewer" ? true : false;
570
+ }
571
+ }
572
+ exports.SceneAR = SceneAR;
573
+
574
+ },{"../util/util":12,"../viewers/quicklook-viewer":15,"../viewers/reality-viewer":16,"../viewers/scene-viewer":17,"./launcher-ar":1,"@plattar/plattar-analytics":35,"@plattar/plattar-api":39,"@plattar/plattar-services":110}],6:[function(require,module,exports){
575
+ "use strict";
576
+ Object.defineProperty(exports, "__esModule", { value: true });
577
+ exports.ConfiguratorController = void 0;
578
+ const plattar_api_1 = require("@plattar/plattar-api");
579
+ const plattar_services_1 = require("@plattar/plattar-services");
580
+ const raw_ar_1 = require("../../ar/raw-ar");
581
+ const util_1 = require("../../util/util");
582
+ const plattar_controller_1 = require("./plattar-controller");
583
+ /**
584
+ * Manages an instance of the <plattar-configurator> HTML Element
585
+ */
586
+ class ConfiguratorController extends plattar_controller_1.PlattarController {
587
+ constructor(parent) {
588
+ super(parent);
589
+ this._state = plattar_controller_1.ControllerState.None;
590
+ this._element = null;
591
+ this._prevQROpt = null;
592
+ }
593
+ onAttributesUpdated() {
594
+ const state = this._state;
595
+ // re-render the QR Code when attributes have changed
596
+ if (state === plattar_controller_1.ControllerState.QRCode) {
597
+ this.startQRCode(this._prevQROpt);
598
+ return;
599
+ }
600
+ }
601
+ startQRCode(options) {
602
+ return new Promise((accept, reject) => {
603
+ // remove the old renderer instance if any
604
+ this.removeRenderer();
605
+ const sceneID = this.getAttribute("scene-id");
606
+ if (sceneID) {
607
+ const opt = options || plattar_controller_1.PlattarController.DEFAULT_QR_OPTIONS;
608
+ const viewer = document.createElement("plattar-qrcode");
609
+ // required attributes with defaults for plattar-viewer node
610
+ const width = this.getAttribute("width") || "500px";
611
+ const height = this.getAttribute("height") || "500px";
612
+ viewer.setAttribute("width", width);
613
+ viewer.setAttribute("height", height);
614
+ if (opt.color) {
615
+ viewer.setAttribute("color", opt.color);
616
+ }
617
+ if (opt.margin) {
618
+ viewer.setAttribute("margin", "" + opt.margin);
619
+ }
620
+ if (opt.qrType) {
588
621
  viewer.setAttribute("qr-type", opt.qrType);
589
622
  }
590
- let dst = plattar_api_1.Server.location().base + "renderer/viewer.html?scene_id=" + this._sceneID;
591
- if (this._productID) {
592
- dst += "&productId=" + this._productID;
623
+ let dst = plattar_api_1.Server.location().base + "renderer/configurator.html?scene_id=" + sceneID;
624
+ // optional attributes
625
+ const configState = this.getAttribute("config-state");
626
+ const showAR = this.getAttribute("show-ar");
627
+ if (configState) {
628
+ dst += "&config_state=" + configState;
629
+ }
630
+ if (showAR) {
631
+ dst += "&show_ar=" + showAR;
632
+ }
633
+ viewer.setAttribute("url", opt.url || dst);
634
+ viewer.onload = () => {
635
+ return accept(viewer);
636
+ };
637
+ this.append(viewer);
638
+ this._element = viewer;
639
+ this._state = plattar_controller_1.ControllerState.QRCode;
640
+ this._prevQROpt = opt;
641
+ return;
642
+ }
643
+ return reject(new Error("ConfiguratorController.startQRCode() - minimum required attributes not set, use scene-id as a minimum"));
644
+ });
645
+ }
646
+ startRenderer() {
647
+ return new Promise((accept, reject) => {
648
+ // remove the old renderer instance if any
649
+ this.removeRenderer();
650
+ const sceneID = this.getAttribute("scene-id");
651
+ if (sceneID) {
652
+ // required attributes with defaults for plattar-configurator node
653
+ const width = this.getAttribute("width") || "500px";
654
+ const height = this.getAttribute("height") || "500px";
655
+ const server = this.getAttribute("server") || "production";
656
+ const viewer = document.createElement("plattar-configurator");
657
+ viewer.setAttribute("width", width);
658
+ viewer.setAttribute("height", height);
659
+ viewer.setAttribute("server", server);
660
+ viewer.setAttribute("scene-id", sceneID);
661
+ // optional attributes
662
+ const configState = this.getAttribute("config-state");
663
+ const showAR = this.getAttribute("show-ar");
664
+ if (configState) {
665
+ viewer.setAttribute("config-state", configState);
593
666
  }
594
- if (this._variationID) {
595
- dst += "&variationId=" + this._variationID;
667
+ if (showAR) {
668
+ viewer.setAttribute("show-ar", showAR);
596
669
  }
597
- viewer.setAttribute("url", dst);
598
670
  viewer.onload = () => {
599
671
  return accept(viewer);
600
672
  };
601
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
602
- shadow.append(viewer);
603
- this._viewer = viewer;
604
- this._currentState = EmbedState.QRCode;
673
+ this.append(viewer);
674
+ this._element = viewer;
675
+ this._state = plattar_controller_1.ControllerState.Renderer;
605
676
  return;
606
677
  }
607
- // if product is set, we embed a QR code that takes us to product.html
608
- if (this._productID) {
678
+ return reject(new Error("ConfiguratorController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"));
679
+ });
680
+ }
681
+ startAR() {
682
+ return new Promise((accept, reject) => {
683
+ this.initAR().then((launcher) => {
684
+ launcher.start();
685
+ accept();
686
+ }).catch(reject);
687
+ });
688
+ }
689
+ initAR() {
690
+ return new Promise((accept, reject) => {
691
+ if (!util_1.Util.canAugment()) {
692
+ return reject(new Error("ConfiguratorController.initAR() - cannot proceed as AR not available in context"));
693
+ }
694
+ // if scene ID is available and the state is a configurator viewer
695
+ // we can use the real-time configurator state to launch the AR view
696
+ const viewer = this.element;
697
+ const sceneID = this.getAttribute("scene-id");
698
+ if (viewer && sceneID) {
699
+ let output = "glb";
700
+ if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
701
+ output = "usdz";
702
+ }
703
+ return viewer.messenger.getARFile(output).then((result) => {
704
+ const rawAR = new raw_ar_1.RawAR(result.filename);
705
+ return rawAR.init().then(accept).catch(reject);
706
+ }).catch(reject);
707
+ }
708
+ const configState = this.getAttribute("config-state");
709
+ // otherwise scene ID is available to the viewer is not launched
710
+ // we can use the static configuration state to launch the AR view
711
+ if (sceneID && configState) {
712
+ try {
713
+ const decodedb64State = atob(configState);
714
+ const state = JSON.parse(decodedb64State);
715
+ if (state.meta) {
716
+ const sceneProductIndex = state.meta.scene_product_index || 0;
717
+ const variationIndex = state.meta.product_variation_index || 1;
718
+ const states = state.states || [];
719
+ if (states.length > 0) {
720
+ const configurator = new plattar_services_1.Configurator();
721
+ states.forEach((productState) => {
722
+ configurator.addSceneProduct(productState[sceneProductIndex], productState[variationIndex]);
723
+ });
724
+ if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
725
+ configurator.output = "usdz";
726
+ }
727
+ if (util_1.Util.canSceneViewer()) {
728
+ configurator.output = "glb";
729
+ }
730
+ const server = this.getAttribute("server") || "production";
731
+ configurator.server = server;
732
+ return configurator.get().then((result) => {
733
+ const rawAR = new raw_ar_1.RawAR(result.filename);
734
+ rawAR.init().then(accept).catch(reject);
735
+ }).catch(reject);
736
+ }
737
+ return reject(new Error("ConfiguratorController.initAR() - invalid config-state does not have any product states"));
738
+ }
739
+ return reject(new Error("ConfiguratorController.initAR() - invalid config-state for configurator"));
740
+ }
741
+ catch (err) {
742
+ return reject(err);
743
+ }
744
+ }
745
+ return reject(new Error("ConfiguratorController.initAR() - minimum required attributes not set, use scene-id as a minimum"));
746
+ });
747
+ }
748
+ removeRenderer() {
749
+ if (this._element) {
750
+ this._element.remove();
751
+ this._element = null;
752
+ return true;
753
+ }
754
+ return false;
755
+ }
756
+ get element() {
757
+ return this._element;
758
+ }
759
+ }
760
+ exports.ConfiguratorController = ConfiguratorController;
761
+
762
+ },{"../../ar/raw-ar":4,"../../util/util":12,"./plattar-controller":7,"@plattar/plattar-api":39,"@plattar/plattar-services":110}],7:[function(require,module,exports){
763
+ "use strict";
764
+ Object.defineProperty(exports, "__esModule", { value: true });
765
+ exports.PlattarController = exports.ControllerState = void 0;
766
+ var ControllerState;
767
+ (function (ControllerState) {
768
+ ControllerState[ControllerState["None"] = 0] = "None";
769
+ ControllerState[ControllerState["Renderer"] = 1] = "Renderer";
770
+ ControllerState[ControllerState["QRCode"] = 2] = "QRCode";
771
+ })(ControllerState = exports.ControllerState || (exports.ControllerState = {}));
772
+ /**
773
+ * All Plattar Controllers are derived from the same interface
774
+ */
775
+ class PlattarController {
776
+ constructor(parent) {
777
+ this._parent = parent;
778
+ }
779
+ /**
780
+ * Default QR Code rendering options
781
+ */
782
+ static get DEFAULT_QR_OPTIONS() {
783
+ return {
784
+ color: "#101721",
785
+ qrType: "default",
786
+ margin: 0
787
+ };
788
+ }
789
+ ;
790
+ /**
791
+ * Returns the Parent Instance
792
+ */
793
+ get parent() {
794
+ return this._parent;
795
+ }
796
+ /**
797
+ * Returns the specified attribute from the parent
798
+ * @param attribute - The name of thhe attribute
799
+ * @returns - The attribute value or null
800
+ */
801
+ getAttribute(attribute) {
802
+ return this.parent ? (this.parent.hasAttribute(attribute) ? this.parent.getAttribute(attribute) : null) : null;
803
+ }
804
+ /**
805
+ * Appends the provided element into the shadow-root of the parent element
806
+ * @param element - The element to append
807
+ */
808
+ append(element) {
809
+ const shadow = this.parent.shadowRoot || this.parent.attachShadow({ mode: 'open' });
810
+ shadow.append(element);
811
+ }
812
+ }
813
+ exports.PlattarController = PlattarController;
814
+
815
+ },{}],8:[function(require,module,exports){
816
+ "use strict";
817
+ Object.defineProperty(exports, "__esModule", { value: true });
818
+ exports.ProductController = void 0;
819
+ const plattar_api_1 = require("@plattar/plattar-api");
820
+ const product_ar_1 = require("../../ar/product-ar");
821
+ const util_1 = require("../../util/util");
822
+ const plattar_controller_1 = require("./plattar-controller");
823
+ /**
824
+ * Manages an instance of the <plattar-product> HTML Element
825
+ */
826
+ class ProductController extends plattar_controller_1.PlattarController {
827
+ constructor(parent) {
828
+ super(parent);
829
+ this._state = plattar_controller_1.ControllerState.None;
830
+ this._element = null;
831
+ this._prevQROpt = null;
832
+ }
833
+ onAttributesUpdated() {
834
+ const state = this._state;
835
+ // re-render the QR Code when attributes have changed
836
+ if (state === plattar_controller_1.ControllerState.QRCode) {
837
+ this.startQRCode(this._prevQROpt);
838
+ return;
839
+ }
840
+ // use the messenger function to change variation when attributes have changed
841
+ if (state === plattar_controller_1.ControllerState.Renderer) {
842
+ const viewer = this._element;
843
+ if (viewer) {
844
+ const variationID = this.getAttribute("variation-id");
845
+ viewer.messenger.selectVariation(variationID);
846
+ }
847
+ return;
848
+ }
849
+ }
850
+ startQRCode(options) {
851
+ return new Promise((accept, reject) => {
852
+ // remove the old renderer instance if any
853
+ this.removeRenderer();
854
+ const productID = this.getAttribute("product-id");
855
+ if (productID) {
856
+ const opt = options || plattar_controller_1.PlattarController.DEFAULT_QR_OPTIONS;
609
857
  const viewer = document.createElement("plattar-qrcode");
610
- viewer.setAttribute("width", this._width);
611
- viewer.setAttribute("height", this._height);
858
+ // required attributes with defaults for plattar-viewer node
859
+ const width = this.getAttribute("width") || "500px";
860
+ const height = this.getAttribute("height") || "500px";
861
+ viewer.setAttribute("width", width);
862
+ viewer.setAttribute("height", height);
612
863
  if (opt.color) {
613
864
  viewer.setAttribute("color", opt.color);
614
865
  }
@@ -618,21 +869,374 @@ class PlattarEmbed extends HTMLElement {
618
869
  if (opt.qrType) {
619
870
  viewer.setAttribute("qr-type", opt.qrType);
620
871
  }
621
- let dst = plattar_api_1.Server.location().base + "renderer/product.html?product_id=" + this._productID;
622
- if (this._variationID) {
623
- dst += "&variation_id=" + this._variationID;
872
+ // optional attributes
873
+ const variationID = this.getAttribute("variation-id");
874
+ let dst = plattar_api_1.Server.location().base + "renderer/product.html?product_id=" + productID;
875
+ if (variationID) {
876
+ dst += "&variation_id=" + variationID;
624
877
  }
625
- viewer.setAttribute("url", dst);
878
+ viewer.setAttribute("url", opt.url || dst);
626
879
  viewer.onload = () => {
627
880
  return accept(viewer);
628
881
  };
629
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
630
- shadow.append(viewer);
631
- this._viewer = viewer;
632
- this._currentState = EmbedState.QRCode;
882
+ this.append(viewer);
883
+ this._element = viewer;
884
+ this._state = plattar_controller_1.ControllerState.QRCode;
885
+ this._prevQROpt = opt;
633
886
  return;
634
887
  }
635
- return reject(new Error("PlattarEmbed.startQRCode() - minimum required attributes not set, use scene-id or product-id as a minimum"));
888
+ return reject(new Error("ProductController.startQRCode() - minimum required attributes not set, use product-id as a minimum"));
889
+ });
890
+ }
891
+ startRenderer() {
892
+ return new Promise((accept, reject) => {
893
+ // remove the old renderer instance if any
894
+ this.removeRenderer();
895
+ const productID = this.getAttribute("product-id");
896
+ if (productID) {
897
+ // required attributes with defaults for plattar-product node
898
+ const width = this.getAttribute("width") || "500px";
899
+ const height = this.getAttribute("height") || "500px";
900
+ const server = this.getAttribute("server") || "production";
901
+ const viewer = document.createElement("plattar-product");
902
+ viewer.setAttribute("width", width);
903
+ viewer.setAttribute("height", height);
904
+ viewer.setAttribute("server", server);
905
+ viewer.setAttribute("product-id", productID);
906
+ // optional attributes
907
+ const variationID = this.getAttribute("variation-id");
908
+ if (variationID) {
909
+ viewer.setAttribute("variation-id", variationID);
910
+ }
911
+ viewer.onload = () => {
912
+ return accept(viewer);
913
+ };
914
+ this.append(viewer);
915
+ this._element = viewer;
916
+ this._state = plattar_controller_1.ControllerState.Renderer;
917
+ return;
918
+ }
919
+ return reject(new Error("ProductController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"));
920
+ });
921
+ }
922
+ startAR() {
923
+ return new Promise((accept, reject) => {
924
+ this.initAR().then((launcher) => {
925
+ launcher.start();
926
+ accept();
927
+ }).catch(reject);
928
+ });
929
+ }
930
+ initAR() {
931
+ return new Promise((accept, reject) => {
932
+ if (!util_1.Util.canAugment()) {
933
+ return reject(new Error("ProductController.initAR() - cannot proceed as AR not available in context"));
934
+ }
935
+ const productID = this.getAttribute("product-id");
936
+ if (productID) {
937
+ const variationID = this.getAttribute("variation-id");
938
+ const product = new product_ar_1.ProductAR(productID, variationID);
939
+ return product.init().then(accept).catch(reject);
940
+ }
941
+ return reject(new Error("ProductController.initAR() - minimum required attributes not set, use product-id as a minimum"));
942
+ });
943
+ }
944
+ removeRenderer() {
945
+ if (this._element) {
946
+ this._element.remove();
947
+ this._element = null;
948
+ return true;
949
+ }
950
+ return false;
951
+ }
952
+ get element() {
953
+ return this._element;
954
+ }
955
+ }
956
+ exports.ProductController = ProductController;
957
+
958
+ },{"../../ar/product-ar":3,"../../util/util":12,"./plattar-controller":7,"@plattar/plattar-api":39}],9:[function(require,module,exports){
959
+ "use strict";
960
+ Object.defineProperty(exports, "__esModule", { value: true });
961
+ exports.ViewerController = void 0;
962
+ const plattar_api_1 = require("@plattar/plattar-api");
963
+ const product_ar_1 = require("../../ar/product-ar");
964
+ const util_1 = require("../../util/util");
965
+ const plattar_controller_1 = require("./plattar-controller");
966
+ /**
967
+ * Manages an instance of the <plattar-viewer> HTML Element
968
+ */
969
+ class ViewerController extends plattar_controller_1.PlattarController {
970
+ constructor(parent) {
971
+ super(parent);
972
+ this._state = plattar_controller_1.ControllerState.None;
973
+ this._element = null;
974
+ this._prevQROpt = null;
975
+ }
976
+ onAttributesUpdated() {
977
+ const state = this._state;
978
+ // re-render the QR Code when attributes have changed
979
+ if (state === plattar_controller_1.ControllerState.QRCode) {
980
+ this.startQRCode(this._prevQROpt);
981
+ return;
982
+ }
983
+ // use the messenger function to change variation when attributes have changed
984
+ if (state === plattar_controller_1.ControllerState.Renderer) {
985
+ const viewer = this._element;
986
+ if (viewer) {
987
+ const productID = this.getAttribute("product-id");
988
+ const variationID = this.getAttribute("variation-id");
989
+ viewer.messenger.selectVariation(productID, variationID);
990
+ }
991
+ return;
992
+ }
993
+ }
994
+ startQRCode(options) {
995
+ return new Promise((accept, reject) => {
996
+ // remove the old renderer instance if any
997
+ this.removeRenderer();
998
+ const sceneID = this.getAttribute("scene-id");
999
+ if (sceneID) {
1000
+ const opt = options || plattar_controller_1.PlattarController.DEFAULT_QR_OPTIONS;
1001
+ const viewer = document.createElement("plattar-qrcode");
1002
+ // required attributes with defaults for plattar-viewer node
1003
+ const width = this.getAttribute("width") || "500px";
1004
+ const height = this.getAttribute("height") || "500px";
1005
+ viewer.setAttribute("width", width);
1006
+ viewer.setAttribute("height", height);
1007
+ if (opt.color) {
1008
+ viewer.setAttribute("color", opt.color);
1009
+ }
1010
+ if (opt.margin) {
1011
+ viewer.setAttribute("margin", "" + opt.margin);
1012
+ }
1013
+ if (opt.qrType) {
1014
+ viewer.setAttribute("qr-type", opt.qrType);
1015
+ }
1016
+ let dst = plattar_api_1.Server.location().base + "renderer/viewer.html?scene_id=" + sceneID;
1017
+ // optional attributes
1018
+ const productID = this.getAttribute("product-id");
1019
+ const variationID = this.getAttribute("variation-id");
1020
+ if (productID) {
1021
+ dst += "&productId=" + productID;
1022
+ }
1023
+ if (variationID) {
1024
+ dst += "&variationId=" + variationID;
1025
+ }
1026
+ viewer.setAttribute("url", opt.url || dst);
1027
+ viewer.onload = () => {
1028
+ return accept(viewer);
1029
+ };
1030
+ this.append(viewer);
1031
+ this._element = viewer;
1032
+ this._state = plattar_controller_1.ControllerState.QRCode;
1033
+ this._prevQROpt = opt;
1034
+ return;
1035
+ }
1036
+ return reject(new Error("ViewerController.startQRCode() - minimum required attributes not set, use scene-id as a minimum"));
1037
+ });
1038
+ }
1039
+ startRenderer() {
1040
+ return new Promise((accept, reject) => {
1041
+ // remove the old renderer instance if any
1042
+ this.removeRenderer();
1043
+ const sceneID = this.getAttribute("scene-id");
1044
+ if (sceneID) {
1045
+ // required attributes with defaults for plattar-viewer node
1046
+ const width = this.getAttribute("width") || "500px";
1047
+ const height = this.getAttribute("height") || "500px";
1048
+ const server = this.getAttribute("server") || "production";
1049
+ const viewer = document.createElement("plattar-viewer");
1050
+ viewer.setAttribute("width", width);
1051
+ viewer.setAttribute("height", height);
1052
+ viewer.setAttribute("server", server);
1053
+ viewer.setAttribute("scene-id", sceneID);
1054
+ // optional attributes
1055
+ const productID = this.getAttribute("product-id");
1056
+ const variationID = this.getAttribute("variation-id");
1057
+ if (productID) {
1058
+ viewer.setAttribute("product-id", productID);
1059
+ }
1060
+ if (variationID) {
1061
+ viewer.setAttribute("variation-id", variationID);
1062
+ }
1063
+ viewer.onload = () => {
1064
+ return accept(viewer);
1065
+ };
1066
+ this.append(viewer);
1067
+ this._element = viewer;
1068
+ this._state = plattar_controller_1.ControllerState.Renderer;
1069
+ return;
1070
+ }
1071
+ return reject(new Error("ViewerController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"));
1072
+ });
1073
+ }
1074
+ startAR() {
1075
+ return new Promise((accept, reject) => {
1076
+ this.initAR().then((launcher) => {
1077
+ launcher.start();
1078
+ accept();
1079
+ }).catch(reject);
1080
+ });
1081
+ }
1082
+ initAR() {
1083
+ return new Promise((accept, reject) => {
1084
+ if (!util_1.Util.canAugment()) {
1085
+ return reject(new Error("ViewerController.initAR() - cannot proceed as AR not available in context"));
1086
+ }
1087
+ const productID = this.getAttribute("product-id");
1088
+ if (productID) {
1089
+ const variationID = this.getAttribute("variation-id");
1090
+ const product = new product_ar_1.ProductAR(productID, variationID);
1091
+ return product.init().then(accept).catch(reject);
1092
+ }
1093
+ const sceneID = this.getAttribute("scene-id");
1094
+ // otherwise, scene was set so use SceneAR
1095
+ if (sceneID) {
1096
+ return reject(new Error("ViewerController.initAR() - AR mode for scene-id not yet supported, use product-id"));
1097
+ }
1098
+ return reject(new Error("ViewerController.initAR() - minimum required attributes not set, use scene-id or product-id as a minimum"));
1099
+ });
1100
+ }
1101
+ removeRenderer() {
1102
+ if (this._element) {
1103
+ this._element.remove();
1104
+ this._element = null;
1105
+ return true;
1106
+ }
1107
+ return false;
1108
+ }
1109
+ get element() {
1110
+ return this._element;
1111
+ }
1112
+ }
1113
+ exports.ViewerController = ViewerController;
1114
+
1115
+ },{"../../ar/product-ar":3,"../../util/util":12,"./plattar-controller":7,"@plattar/plattar-api":39}],10:[function(require,module,exports){
1116
+ "use strict";
1117
+ Object.defineProperty(exports, "__esModule", { value: true });
1118
+ const plattar_api_1 = require("@plattar/plattar-api");
1119
+ const product_controller_1 = require("./controllers/product-controller");
1120
+ const viewer_controller_1 = require("./controllers/viewer-controller");
1121
+ const configurator_controller_1 = require("./controllers/configurator-controller");
1122
+ /**
1123
+ * This tracks the current embed type
1124
+ */
1125
+ var EmbedType;
1126
+ (function (EmbedType) {
1127
+ EmbedType[EmbedType["Viewer"] = 0] = "Viewer";
1128
+ EmbedType[EmbedType["Configurator"] = 1] = "Configurator";
1129
+ })(EmbedType || (EmbedType = {}));
1130
+ /**
1131
+ * This is the primary <plattar-embed /> node that allows easy embedding
1132
+ * of Plattar related content
1133
+ */
1134
+ class PlattarEmbed extends HTMLElement {
1135
+ constructor() {
1136
+ super();
1137
+ // this is the current embed type, viewer by default
1138
+ this._currentType = EmbedType.Viewer;
1139
+ this._controller = null;
1140
+ }
1141
+ get viewer() {
1142
+ return this._controller ? this._controller.element : null;
1143
+ }
1144
+ connectedCallback() {
1145
+ const embedType = this.hasAttribute("embed-type") ? this.getAttribute("embed-type") : "viewer";
1146
+ if (embedType) {
1147
+ switch (embedType.toLowerCase()) {
1148
+ case "viewer":
1149
+ this._currentType = EmbedType.Viewer;
1150
+ break;
1151
+ case "configurator":
1152
+ this._currentType = EmbedType.Configurator;
1153
+ break;
1154
+ default:
1155
+ this._currentType = EmbedType.Viewer;
1156
+ }
1157
+ }
1158
+ const observer = new MutationObserver((mutations) => {
1159
+ mutations.forEach((mutation) => {
1160
+ if (mutation.type === "attributes") {
1161
+ this._OnAttributesUpdated();
1162
+ }
1163
+ });
1164
+ });
1165
+ observer.observe(this, {
1166
+ attributes: true
1167
+ });
1168
+ const server = this.hasAttribute("server") ? this.getAttribute("server") : "production";
1169
+ plattar_api_1.Server.create(plattar_api_1.Server.match(server || "production"));
1170
+ const sceneID = this.hasAttribute("scene-id") ? this.getAttribute("scene-id") : null;
1171
+ const productID = this.hasAttribute("product-id") ? this.getAttribute("product-id") : null;
1172
+ // decide which controller to initialise
1173
+ if (this._currentType === EmbedType.Viewer) {
1174
+ // initialise product if scene-id is missing but product-id is defined
1175
+ if (!sceneID && productID) {
1176
+ this._controller = new product_controller_1.ProductController(this);
1177
+ }
1178
+ else if (sceneID) {
1179
+ this._controller = new viewer_controller_1.ViewerController(this);
1180
+ }
1181
+ }
1182
+ else if (this._currentType === EmbedType.Configurator) {
1183
+ this._controller = new configurator_controller_1.ConfiguratorController(this);
1184
+ }
1185
+ const init = this.hasAttribute("init") ? this.getAttribute("init") : null;
1186
+ if (init === "ar") {
1187
+ this.startAR();
1188
+ }
1189
+ else if (init === "viewer") {
1190
+ this.startViewer();
1191
+ }
1192
+ else if (init === "qrcode") {
1193
+ this.startQRCode();
1194
+ }
1195
+ else if (init === "ar-fallback-qrcode") {
1196
+ this.startAR().then(() => {
1197
+ // nothing to do, launched successfully
1198
+ }).catch((_err) => {
1199
+ this.startQRCode();
1200
+ });
1201
+ }
1202
+ else if (init === "ar-fallback-viewer") {
1203
+ this.startAR().then(() => {
1204
+ // nothing to do, launched successfully
1205
+ }).catch((_err) => {
1206
+ this.startViewer();
1207
+ });
1208
+ }
1209
+ }
1210
+ initAR() {
1211
+ return new Promise((accept, reject) => {
1212
+ if (!this._controller) {
1213
+ return reject(new Error("PlattarEmbed.initAR() - cannot execute as controller has not loaded yet"));
1214
+ }
1215
+ return this._controller.initAR().then(accept).catch(reject);
1216
+ });
1217
+ }
1218
+ startAR() {
1219
+ return new Promise((accept, reject) => {
1220
+ if (!this._controller) {
1221
+ return reject(new Error("PlattarEmbed.startAR() - cannot execute as controller has not loaded yet"));
1222
+ }
1223
+ return this._controller.startAR().then(accept).catch(reject);
1224
+ });
1225
+ }
1226
+ startViewer() {
1227
+ return new Promise((accept, reject) => {
1228
+ if (!this._controller) {
1229
+ return reject(new Error("PlattarEmbed.startViewer() - cannot execute as controller has not loaded yet"));
1230
+ }
1231
+ return this._controller.startRenderer().then(accept).catch(reject);
1232
+ });
1233
+ }
1234
+ startQRCode(options = null) {
1235
+ return new Promise((accept, reject) => {
1236
+ if (!this._controller) {
1237
+ return reject(new Error("PlattarEmbed.startQRCode() - cannot execute as controller has not loaded yet"));
1238
+ }
1239
+ return this._controller.startQRCode(options).then(accept).catch(reject);
636
1240
  });
637
1241
  }
638
1242
  /**
@@ -640,35 +1244,14 @@ class PlattarEmbed extends HTMLElement {
640
1244
  * based on the state of the embed, we update the internal structure accordingly
641
1245
  */
642
1246
  _OnAttributesUpdated() {
643
- // nothing to update in these scenarios
644
- if (this._currentState === EmbedState.None || this._currentState === EmbedState.ProductAR) {
645
- return;
646
- }
647
- // re-render the QR Code when attributes have changed
648
- if (this._currentState === EmbedState.QRCode) {
649
- this.startQRCode(this._qrCodeOptions);
650
- return;
651
- }
652
- // use the messenger function to change variation when attributes have changed
653
- if (this._currentState === EmbedState.SceneViewer) {
654
- const viewer = this.viewer;
655
- if (viewer) {
656
- viewer.messenger.selectVariation(this._productID, this._variationID);
657
- }
658
- return;
659
- }
660
- if (this._currentState === EmbedState.ProductViewer) {
661
- const viewer = this.viewer;
662
- if (viewer) {
663
- viewer.messenger.selectVariation(this._variationID);
664
- }
665
- return;
1247
+ if (this._controller) {
1248
+ this._controller.onAttributesUpdated();
666
1249
  }
667
1250
  }
668
1251
  }
669
1252
  exports.default = PlattarEmbed;
670
1253
 
671
- },{"../ar/product-ar":4,"@plattar/plattar-api":35}],7:[function(require,module,exports){
1254
+ },{"./controllers/configurator-controller":6,"./controllers/product-controller":8,"./controllers/viewer-controller":9,"@plattar/plattar-api":39}],11:[function(require,module,exports){
672
1255
  "use strict";
673
1256
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
674
1257
  if (k2 === undefined) k2 = k;
@@ -693,18 +1276,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
693
1276
  return (mod && mod.__esModule) ? mod : { "default": mod };
694
1277
  };
695
1278
  Object.defineProperty(exports, "__esModule", { value: true });
696
- exports.Util = exports.ModelAR = exports.SceneAR = exports.ProductAR = exports.ConfiguratorAR = exports.version = exports.PlattarQRCode = exports.PlattarWeb = void 0;
1279
+ exports.Util = exports.RawAR = exports.ModelAR = exports.SceneAR = exports.ProductAR = exports.version = exports.PlattarQRCode = exports.PlattarWeb = void 0;
697
1280
  exports.PlattarWeb = __importStar(require("@plattar/plattar-web"));
698
1281
  exports.PlattarQRCode = __importStar(require("@plattar/plattar-qrcode"));
699
1282
  exports.version = __importStar(require("./version"));
700
- var configurator_ar_1 = require("./ar/configurator-ar");
701
- Object.defineProperty(exports, "ConfiguratorAR", { enumerable: true, get: function () { return configurator_ar_1.ConfiguratorAR; } });
702
1283
  var product_ar_1 = require("./ar/product-ar");
703
1284
  Object.defineProperty(exports, "ProductAR", { enumerable: true, get: function () { return product_ar_1.ProductAR; } });
704
1285
  var scene_ar_1 = require("./ar/scene-ar");
705
1286
  Object.defineProperty(exports, "SceneAR", { enumerable: true, get: function () { return scene_ar_1.SceneAR; } });
706
1287
  var model_ar_1 = require("./ar/model-ar");
707
1288
  Object.defineProperty(exports, "ModelAR", { enumerable: true, get: function () { return model_ar_1.ModelAR; } });
1289
+ var raw_ar_1 = require("./ar/raw-ar");
1290
+ Object.defineProperty(exports, "RawAR", { enumerable: true, get: function () { return raw_ar_1.RawAR; } });
708
1291
  var util_1 = require("./util/util");
709
1292
  Object.defineProperty(exports, "Util", { enumerable: true, get: function () { return util_1.Util; } });
710
1293
  const plattar_embed_1 = __importDefault(require("./embed/plattar-embed"));
@@ -716,7 +1299,7 @@ if (customElements) {
716
1299
  }
717
1300
  console.log("using @plattar/plattar-ar-adapter v" + version_1.default);
718
1301
 
719
- },{"./ar/configurator-ar":1,"./ar/model-ar":3,"./ar/product-ar":4,"./ar/scene-ar":5,"./embed/plattar-embed":6,"./util/util":8,"./version":9,"@plattar/plattar-qrcode":101,"@plattar/plattar-web":114}],8:[function(require,module,exports){
1302
+ },{"./ar/model-ar":2,"./ar/product-ar":3,"./ar/raw-ar":4,"./ar/scene-ar":5,"./embed/plattar-embed":10,"./util/util":12,"./version":13,"@plattar/plattar-qrcode":105,"@plattar/plattar-web":124}],12:[function(require,module,exports){
720
1303
  "use strict";
721
1304
  Object.defineProperty(exports, "__esModule", { value: true });
722
1305
  exports.Util = void 0;
@@ -803,12 +1386,12 @@ class Util {
803
1386
  }
804
1387
  exports.Util = Util;
805
1388
 
806
- },{}],9:[function(require,module,exports){
1389
+ },{}],13:[function(require,module,exports){
807
1390
  "use strict";
808
1391
  Object.defineProperty(exports, "__esModule", { value: true });
809
- exports.default = "1.122.2";
1392
+ exports.default = "1.123.2";
810
1393
 
811
- },{}],10:[function(require,module,exports){
1394
+ },{}],14:[function(require,module,exports){
812
1395
  "use strict";
813
1396
  Object.defineProperty(exports, "__esModule", { value: true });
814
1397
  class ARViewer {
@@ -819,7 +1402,7 @@ class ARViewer {
819
1402
  }
820
1403
  exports.default = ARViewer;
821
1404
 
822
- },{}],11:[function(require,module,exports){
1405
+ },{}],15:[function(require,module,exports){
823
1406
  "use strict";
824
1407
  var __importDefault = (this && this.__importDefault) || function (mod) {
825
1408
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -869,7 +1452,7 @@ class QuicklookViewer extends ar_viewer_1.default {
869
1452
  }
870
1453
  exports.default = QuicklookViewer;
871
1454
 
872
- },{"./ar-viewer":10}],12:[function(require,module,exports){
1455
+ },{"./ar-viewer":14}],16:[function(require,module,exports){
873
1456
  "use strict";
874
1457
  var __importDefault = (this && this.__importDefault) || function (mod) {
875
1458
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -899,7 +1482,7 @@ class RealityViewer extends ar_viewer_1.default {
899
1482
  }
900
1483
  exports.default = RealityViewer;
901
1484
 
902
- },{"./ar-viewer":10}],13:[function(require,module,exports){
1485
+ },{"./ar-viewer":14}],17:[function(require,module,exports){
903
1486
  "use strict";
904
1487
  var __importDefault = (this && this.__importDefault) || function (mod) {
905
1488
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -952,7 +1535,7 @@ class SceneViewer extends ar_viewer_1.default {
952
1535
  }
953
1536
  exports.default = SceneViewer;
954
1537
 
955
- },{"./ar-viewer":10}],14:[function(require,module,exports){
1538
+ },{"./ar-viewer":14}],18:[function(require,module,exports){
956
1539
  "use strict";
957
1540
  const Messenger = require("./messenger/messenger.js");
958
1541
  const Memory = require("./memory/memory.js");
@@ -986,7 +1569,7 @@ module.exports = {
986
1569
  memory: GlobalEventHandler.instance().memoryInstance,
987
1570
  version: Version
988
1571
  }
989
- },{"./memory/memory.js":15,"./messenger/global-event-handler.js":22,"./messenger/messenger.js":23,"./version":28}],15:[function(require,module,exports){
1572
+ },{"./memory/memory.js":19,"./messenger/global-event-handler.js":26,"./messenger/messenger.js":27,"./version":32}],19:[function(require,module,exports){
990
1573
  const PermanentMemory = require("./permanent-memory");
991
1574
  const TemporaryMemory = require("./temporary-memory");
992
1575
 
@@ -1020,7 +1603,7 @@ class Memory {
1020
1603
  }
1021
1604
 
1022
1605
  module.exports = Memory;
1023
- },{"./permanent-memory":16,"./temporary-memory":17}],16:[function(require,module,exports){
1606
+ },{"./permanent-memory":20,"./temporary-memory":21}],20:[function(require,module,exports){
1024
1607
  const WrappedValue = require("./wrapped-value");
1025
1608
 
1026
1609
  class PermanentMemory {
@@ -1089,7 +1672,7 @@ class PermanentMemory {
1089
1672
  }
1090
1673
 
1091
1674
  module.exports = PermanentMemory;
1092
- },{"./wrapped-value":18}],17:[function(require,module,exports){
1675
+ },{"./wrapped-value":22}],21:[function(require,module,exports){
1093
1676
  const WrappedValue = require("./wrapped-value");
1094
1677
 
1095
1678
  class TemporaryMemory {
@@ -1146,7 +1729,7 @@ class TemporaryMemory {
1146
1729
  }
1147
1730
 
1148
1731
  module.exports = TemporaryMemory;
1149
- },{"./wrapped-value":18}],18:[function(require,module,exports){
1732
+ },{"./wrapped-value":22}],22:[function(require,module,exports){
1150
1733
  /**
1151
1734
  * WrappedValue represents a generic value type with a callback function
1152
1735
  * for when the value has changed
@@ -1258,7 +1841,7 @@ class WrappedValue {
1258
1841
  }
1259
1842
 
1260
1843
  module.exports = WrappedValue;
1261
- },{}],19:[function(require,module,exports){
1844
+ },{}],23:[function(require,module,exports){
1262
1845
  /**
1263
1846
  * Broadcaster is used to call functions in multiple contexts at the
1264
1847
  * same time. This can be useful without having to handle complex logic
@@ -1311,7 +1894,7 @@ class Broadcaster {
1311
1894
  }
1312
1895
 
1313
1896
  module.exports = Broadcaster;
1314
- },{}],20:[function(require,module,exports){
1897
+ },{}],24:[function(require,module,exports){
1315
1898
  const WrappedFunction = require("./wrapped-local-function");
1316
1899
 
1317
1900
  class CurrentFunctionList {
@@ -1362,7 +1945,7 @@ class CurrentFunctionList {
1362
1945
  }
1363
1946
 
1364
1947
  module.exports = CurrentFunctionList;
1365
- },{"./wrapped-local-function":21}],21:[function(require,module,exports){
1948
+ },{"./wrapped-local-function":25}],25:[function(require,module,exports){
1366
1949
  const Util = require("../util/util.js");
1367
1950
 
1368
1951
  /**
@@ -1449,7 +2032,7 @@ class WrappedLocalFunction {
1449
2032
  }
1450
2033
 
1451
2034
  module.exports = WrappedLocalFunction;
1452
- },{"../util/util.js":27}],22:[function(require,module,exports){
2035
+ },{"../util/util.js":31}],26:[function(require,module,exports){
1453
2036
  const RemoteInterface = require("./remote-interface.js");
1454
2037
 
1455
2038
  /**
@@ -1534,7 +2117,7 @@ GlobalEventHandler.instance = () => {
1534
2117
  };
1535
2118
 
1536
2119
  module.exports = GlobalEventHandler;
1537
- },{"./remote-interface.js":24}],23:[function(require,module,exports){
2120
+ },{"./remote-interface.js":28}],27:[function(require,module,exports){
1538
2121
  const CurrentFunctionList = require("./current/current-function-list");
1539
2122
  const RemoteInterface = require("./remote-interface");
1540
2123
  const RemoteFunctionList = require("./remote/remote-function-list");
@@ -1833,7 +2416,7 @@ class Messenger {
1833
2416
  }
1834
2417
 
1835
2418
  module.exports = Messenger;
1836
- },{"./broadcaster.js":19,"./current/current-function-list":20,"./global-event-handler.js":22,"./remote-interface":24,"./remote/remote-function-list":25,"./util/util.js":27}],24:[function(require,module,exports){
2419
+ },{"./broadcaster.js":23,"./current/current-function-list":24,"./global-event-handler.js":26,"./remote-interface":28,"./remote/remote-function-list":29,"./util/util.js":31}],28:[function(require,module,exports){
1837
2420
  /**
1838
2421
  * Provides a single useful interface for performing remote function calls
1839
2422
  */
@@ -1892,7 +2475,7 @@ class RemoteInterface {
1892
2475
  }
1893
2476
 
1894
2477
  module.exports = RemoteInterface;
1895
- },{}],25:[function(require,module,exports){
2478
+ },{}],29:[function(require,module,exports){
1896
2479
  const WrappedFunction = require("./wrapped-remote-function");
1897
2480
 
1898
2481
  class RemoteFunctionList {
@@ -1971,7 +2554,7 @@ class RemoteFunctionList {
1971
2554
  }
1972
2555
 
1973
2556
  module.exports = RemoteFunctionList;
1974
- },{"./wrapped-remote-function":26}],26:[function(require,module,exports){
2557
+ },{"./wrapped-remote-function":30}],30:[function(require,module,exports){
1975
2558
  const Util = require("../util/util.js");
1976
2559
  const GlobalEventHandler = require("../global-event-handler.js");
1977
2560
 
@@ -2052,7 +2635,7 @@ class WrappedRemoteFunction {
2052
2635
  }
2053
2636
 
2054
2637
  module.exports = WrappedRemoteFunction;
2055
- },{"../global-event-handler.js":22,"../util/util.js":27}],27:[function(require,module,exports){
2638
+ },{"../global-event-handler.js":26,"../util/util.js":31}],31:[function(require,module,exports){
2056
2639
  class Util {
2057
2640
 
2058
2641
  /**
@@ -2078,10 +2661,10 @@ class Util {
2078
2661
  }
2079
2662
 
2080
2663
  module.exports = Util;
2081
- },{}],28:[function(require,module,exports){
2664
+ },{}],32:[function(require,module,exports){
2082
2665
  module.exports = "1.113.6";
2083
2666
 
2084
- },{}],29:[function(require,module,exports){
2667
+ },{}],33:[function(require,module,exports){
2085
2668
  "use strict";
2086
2669
  Object.defineProperty(exports, "__esModule", { value: true });
2087
2670
  exports.AnalyticsData = void 0;
@@ -2128,7 +2711,7 @@ class AnalyticsData {
2128
2711
  }
2129
2712
  exports.AnalyticsData = AnalyticsData;
2130
2713
 
2131
- },{"../util/util":33}],30:[function(require,module,exports){
2714
+ },{"../util/util":37}],34:[function(require,module,exports){
2132
2715
  "use strict";
2133
2716
  var __importDefault = (this && this.__importDefault) || function (mod) {
2134
2717
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -2215,7 +2798,7 @@ class Analytics {
2215
2798
  }
2216
2799
  exports.Analytics = Analytics;
2217
2800
 
2218
- },{"../util/basic-http":32,"./analytics-data":29}],31:[function(require,module,exports){
2801
+ },{"../util/basic-http":36,"./analytics-data":33}],35:[function(require,module,exports){
2219
2802
  "use strict";
2220
2803
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2221
2804
  if (k2 === undefined) k2 = k;
@@ -2247,7 +2830,7 @@ Object.defineProperty(exports, "Analytics", { enumerable: true, get: function ()
2247
2830
  const version_1 = __importDefault(require("./version"));
2248
2831
  console.log("using @plattar/plattar-analytics v" + version_1.default);
2249
2832
 
2250
- },{"./analytics/analytics":30,"./version":34}],32:[function(require,module,exports){
2833
+ },{"./analytics/analytics":34,"./version":38}],36:[function(require,module,exports){
2251
2834
  "use strict";
2252
2835
  Object.defineProperty(exports, "__esModule", { value: true });
2253
2836
  /**
@@ -2313,7 +2896,7 @@ class BasicHTTP {
2313
2896
  }
2314
2897
  exports.default = BasicHTTP;
2315
2898
 
2316
- },{}],33:[function(require,module,exports){
2899
+ },{}],37:[function(require,module,exports){
2317
2900
  "use strict";
2318
2901
  Object.defineProperty(exports, "__esModule", { value: true });
2319
2902
  exports.Util = void 0;
@@ -2339,12 +2922,12 @@ class Util {
2339
2922
  }
2340
2923
  exports.Util = Util;
2341
2924
 
2342
- },{}],34:[function(require,module,exports){
2925
+ },{}],38:[function(require,module,exports){
2343
2926
  "use strict";
2344
2927
  Object.defineProperty(exports, "__esModule", { value: true });
2345
2928
  exports.default = "1.117.2";
2346
2929
 
2347
- },{}],35:[function(require,module,exports){
2930
+ },{}],39:[function(require,module,exports){
2348
2931
  "use strict";
2349
2932
  const Server = require("./server/plattar-server.js");
2350
2933
  const Util = require("./util/plattar-util.js");
@@ -2499,7 +3082,7 @@ module.exports = {
2499
3082
  version: Version
2500
3083
  };
2501
3084
 
2502
- },{"./server/plattar-server.js":37,"./types/application.js":38,"./types/content-pipeline/brief.js":39,"./types/content-pipeline/comment-brief.js":40,"./types/content-pipeline/comment-quote.js":41,"./types/content-pipeline/comment-solution.js":42,"./types/content-pipeline/folder.js":43,"./types/content-pipeline/pipeline-user.js":44,"./types/content-pipeline/quote.js":45,"./types/content-pipeline/rating.js":46,"./types/content-pipeline/solution.js":47,"./types/file/file-audio.js":48,"./types/file/file-base.js":49,"./types/file/file-image.js":50,"./types/file/file-model.js":51,"./types/file/file-script.js":52,"./types/file/file-video.js":53,"./types/misc/application-build.js":57,"./types/misc/asset-library.js":58,"./types/misc/async-job.js":59,"./types/misc/script-event.js":60,"./types/misc/tag.js":61,"./types/page/card-base.js":62,"./types/page/card-button.js":63,"./types/page/card-html.js":64,"./types/page/card-iframe.js":65,"./types/page/card-image.js":66,"./types/page/card-map.js":67,"./types/page/card-paragraph.js":68,"./types/page/card-row.js":69,"./types/page/card-slider.js":70,"./types/page/card-title.js":71,"./types/page/card-video.js":72,"./types/page/card-youtube.js":73,"./types/page/page.js":74,"./types/product/product-annotation.js":75,"./types/product/product-base.js":76,"./types/product/product-variation.js":77,"./types/product/product.js":78,"./types/scene/scene-annotation.js":79,"./types/scene/scene-audio.js":80,"./types/scene/scene-base.js":81,"./types/scene/scene-button.js":82,"./types/scene/scene-camera.js":83,"./types/scene/scene-carousel.js":84,"./types/scene/scene-image.js":85,"./types/scene/scene-model.js":86,"./types/scene/scene-panorama.js":87,"./types/scene/scene-poller.js":88,"./types/scene/scene-product.js":89,"./types/scene/scene-script.js":90,"./types/scene/scene-shadow.js":91,"./types/scene/scene-video.js":92,"./types/scene/scene-volumetric.js":93,"./types/scene/scene-youtube.js":94,"./types/scene/scene.js":95,"./types/trigger/trigger-image.js":96,"./util/plattar-util.js":97,"./version":98}],36:[function(require,module,exports){
3085
+ },{"./server/plattar-server.js":41,"./types/application.js":42,"./types/content-pipeline/brief.js":43,"./types/content-pipeline/comment-brief.js":44,"./types/content-pipeline/comment-quote.js":45,"./types/content-pipeline/comment-solution.js":46,"./types/content-pipeline/folder.js":47,"./types/content-pipeline/pipeline-user.js":48,"./types/content-pipeline/quote.js":49,"./types/content-pipeline/rating.js":50,"./types/content-pipeline/solution.js":51,"./types/file/file-audio.js":52,"./types/file/file-base.js":53,"./types/file/file-image.js":54,"./types/file/file-model.js":55,"./types/file/file-script.js":56,"./types/file/file-video.js":57,"./types/misc/application-build.js":61,"./types/misc/asset-library.js":62,"./types/misc/async-job.js":63,"./types/misc/script-event.js":64,"./types/misc/tag.js":65,"./types/page/card-base.js":66,"./types/page/card-button.js":67,"./types/page/card-html.js":68,"./types/page/card-iframe.js":69,"./types/page/card-image.js":70,"./types/page/card-map.js":71,"./types/page/card-paragraph.js":72,"./types/page/card-row.js":73,"./types/page/card-slider.js":74,"./types/page/card-title.js":75,"./types/page/card-video.js":76,"./types/page/card-youtube.js":77,"./types/page/page.js":78,"./types/product/product-annotation.js":79,"./types/product/product-base.js":80,"./types/product/product-variation.js":81,"./types/product/product.js":82,"./types/scene/scene-annotation.js":83,"./types/scene/scene-audio.js":84,"./types/scene/scene-base.js":85,"./types/scene/scene-button.js":86,"./types/scene/scene-camera.js":87,"./types/scene/scene-carousel.js":88,"./types/scene/scene-image.js":89,"./types/scene/scene-model.js":90,"./types/scene/scene-panorama.js":91,"./types/scene/scene-poller.js":92,"./types/scene/scene-product.js":93,"./types/scene/scene-script.js":94,"./types/scene/scene-shadow.js":95,"./types/scene/scene-video.js":96,"./types/scene/scene-volumetric.js":97,"./types/scene/scene-youtube.js":98,"./types/scene/scene.js":99,"./types/trigger/trigger-image.js":100,"./util/plattar-util.js":101,"./version":102}],40:[function(require,module,exports){
2503
3086
  const fetch = require("node-fetch");
2504
3087
 
2505
3088
  class PlattarQuery {
@@ -2991,7 +3574,7 @@ PlattarQuery._DeleteGlobalCachedObject = (obj) => {
2991
3574
  };
2992
3575
 
2993
3576
  module.exports = PlattarQuery;
2994
- },{"../util/plattar-util.js":97,"node-fetch":117}],37:[function(require,module,exports){
3577
+ },{"../util/plattar-util.js":101,"node-fetch":127}],41:[function(require,module,exports){
2995
3578
  (function (process){(function (){
2996
3579
  const fetch = require("node-fetch");
2997
3580
 
@@ -3196,7 +3779,7 @@ PlattarServer.location = () => {
3196
3779
 
3197
3780
  module.exports = PlattarServer;
3198
3781
  }).call(this)}).call(this,require('_process'))
3199
- },{"_process":118,"node-fetch":117}],38:[function(require,module,exports){
3782
+ },{"_process":129,"node-fetch":127}],42:[function(require,module,exports){
3200
3783
  const PlattarBase = require("./interfaces/plattar-base.js");
3201
3784
 
3202
3785
  class Application extends PlattarBase {
@@ -3206,7 +3789,7 @@ class Application extends PlattarBase {
3206
3789
  }
3207
3790
 
3208
3791
  module.exports = Application;
3209
- },{"./interfaces/plattar-base.js":54}],39:[function(require,module,exports){
3792
+ },{"./interfaces/plattar-base.js":58}],43:[function(require,module,exports){
3210
3793
  const PlattarBase = require("../interfaces/plattar-base");
3211
3794
 
3212
3795
  class Brief extends PlattarBase {
@@ -3216,7 +3799,7 @@ class Brief extends PlattarBase {
3216
3799
  }
3217
3800
 
3218
3801
  module.exports = Brief;
3219
- },{"../interfaces/plattar-base":54}],40:[function(require,module,exports){
3802
+ },{"../interfaces/plattar-base":58}],44:[function(require,module,exports){
3220
3803
  const PlattarBase = require("../interfaces/plattar-base");
3221
3804
 
3222
3805
  class CommentBrief extends PlattarBase {
@@ -3226,7 +3809,7 @@ class CommentBrief extends PlattarBase {
3226
3809
  }
3227
3810
 
3228
3811
  module.exports = CommentBrief;
3229
- },{"../interfaces/plattar-base":54}],41:[function(require,module,exports){
3812
+ },{"../interfaces/plattar-base":58}],45:[function(require,module,exports){
3230
3813
  const PlattarBase = require("../interfaces/plattar-base");
3231
3814
 
3232
3815
  class CommentQuote extends PlattarBase {
@@ -3236,7 +3819,7 @@ class CommentQuote extends PlattarBase {
3236
3819
  }
3237
3820
 
3238
3821
  module.exports = CommentQuote;
3239
- },{"../interfaces/plattar-base":54}],42:[function(require,module,exports){
3822
+ },{"../interfaces/plattar-base":58}],46:[function(require,module,exports){
3240
3823
  const PlattarBase = require("../interfaces/plattar-base");
3241
3824
 
3242
3825
  class CommentSolution extends PlattarBase {
@@ -3246,7 +3829,7 @@ class CommentSolution extends PlattarBase {
3246
3829
  }
3247
3830
 
3248
3831
  module.exports = CommentSolution;
3249
- },{"../interfaces/plattar-base":54}],43:[function(require,module,exports){
3832
+ },{"../interfaces/plattar-base":58}],47:[function(require,module,exports){
3250
3833
  const PlattarBase = require("../interfaces/plattar-base");
3251
3834
 
3252
3835
  class Folder extends PlattarBase {
@@ -3256,7 +3839,7 @@ class Folder extends PlattarBase {
3256
3839
  }
3257
3840
 
3258
3841
  module.exports = Folder;
3259
- },{"../interfaces/plattar-base":54}],44:[function(require,module,exports){
3842
+ },{"../interfaces/plattar-base":58}],48:[function(require,module,exports){
3260
3843
  const PlattarBase = require("../interfaces/plattar-base");
3261
3844
 
3262
3845
  class PipelineUser extends PlattarBase {
@@ -3266,7 +3849,7 @@ class PipelineUser extends PlattarBase {
3266
3849
  }
3267
3850
 
3268
3851
  module.exports = PipelineUser;
3269
- },{"../interfaces/plattar-base":54}],45:[function(require,module,exports){
3852
+ },{"../interfaces/plattar-base":58}],49:[function(require,module,exports){
3270
3853
  const PlattarBase = require("../interfaces/plattar-base");
3271
3854
 
3272
3855
  class Quote extends PlattarBase {
@@ -3276,7 +3859,7 @@ class Quote extends PlattarBase {
3276
3859
  }
3277
3860
 
3278
3861
  module.exports = Quote;
3279
- },{"../interfaces/plattar-base":54}],46:[function(require,module,exports){
3862
+ },{"../interfaces/plattar-base":58}],50:[function(require,module,exports){
3280
3863
  const PlattarBase = require("../interfaces/plattar-base");
3281
3864
 
3282
3865
  class Rating extends PlattarBase {
@@ -3286,7 +3869,7 @@ class Rating extends PlattarBase {
3286
3869
  }
3287
3870
 
3288
3871
  module.exports = Rating;
3289
- },{"../interfaces/plattar-base":54}],47:[function(require,module,exports){
3872
+ },{"../interfaces/plattar-base":58}],51:[function(require,module,exports){
3290
3873
  const PlattarBase = require("../interfaces/plattar-base");
3291
3874
 
3292
3875
  class Solution extends PlattarBase {
@@ -3296,7 +3879,7 @@ class Solution extends PlattarBase {
3296
3879
  }
3297
3880
 
3298
3881
  module.exports = Solution;
3299
- },{"../interfaces/plattar-base":54}],48:[function(require,module,exports){
3882
+ },{"../interfaces/plattar-base":58}],52:[function(require,module,exports){
3300
3883
  const FileBase = require("./file-base.js");
3301
3884
 
3302
3885
  class FileAudio extends FileBase {
@@ -3306,7 +3889,7 @@ class FileAudio extends FileBase {
3306
3889
  }
3307
3890
 
3308
3891
  module.exports = FileAudio;
3309
- },{"./file-base.js":49}],49:[function(require,module,exports){
3892
+ },{"./file-base.js":53}],53:[function(require,module,exports){
3310
3893
  const PlattarBase = require("../interfaces/plattar-base.js");
3311
3894
  const Server = require("../../server/plattar-server.js");
3312
3895
 
@@ -3366,7 +3949,7 @@ class FileBase extends PlattarBase {
3366
3949
  }
3367
3950
 
3368
3951
  module.exports = FileBase;
3369
- },{"../../server/plattar-server.js":37,"../interfaces/plattar-base.js":54,"./file-audio.js":48,"./file-image.js":50,"./file-model.js":51,"./file-video.js":53}],50:[function(require,module,exports){
3952
+ },{"../../server/plattar-server.js":41,"../interfaces/plattar-base.js":58,"./file-audio.js":52,"./file-image.js":54,"./file-model.js":55,"./file-video.js":57}],54:[function(require,module,exports){
3370
3953
  const FileBase = require("./file-base.js");
3371
3954
 
3372
3955
  class FileImage extends FileBase {
@@ -3376,7 +3959,7 @@ class FileImage extends FileBase {
3376
3959
  }
3377
3960
 
3378
3961
  module.exports = FileImage;
3379
- },{"./file-base.js":49}],51:[function(require,module,exports){
3962
+ },{"./file-base.js":53}],55:[function(require,module,exports){
3380
3963
  const FileBase = require("./file-base.js");
3381
3964
 
3382
3965
  class FileModel extends FileBase {
@@ -3386,7 +3969,7 @@ class FileModel extends FileBase {
3386
3969
  }
3387
3970
 
3388
3971
  module.exports = FileModel;
3389
- },{"./file-base.js":49}],52:[function(require,module,exports){
3972
+ },{"./file-base.js":53}],56:[function(require,module,exports){
3390
3973
  const FileBase = require("./file-base.js");
3391
3974
 
3392
3975
  class FileScript extends FileBase {
@@ -3396,7 +3979,7 @@ class FileScript extends FileBase {
3396
3979
  }
3397
3980
 
3398
3981
  module.exports = FileScript;
3399
- },{"./file-base.js":49}],53:[function(require,module,exports){
3982
+ },{"./file-base.js":53}],57:[function(require,module,exports){
3400
3983
  const FileBase = require("./file-base.js");
3401
3984
 
3402
3985
  class FileVideo extends FileBase {
@@ -3406,7 +3989,7 @@ class FileVideo extends FileBase {
3406
3989
  }
3407
3990
 
3408
3991
  module.exports = FileVideo;
3409
- },{"./file-base.js":49}],54:[function(require,module,exports){
3992
+ },{"./file-base.js":53}],58:[function(require,module,exports){
3410
3993
  const PlattarObject = require("./plattar-object.js");
3411
3994
  const Server = require("../../server/plattar-server.js");
3412
3995
 
@@ -3421,7 +4004,7 @@ class PlattarBase extends PlattarObject {
3421
4004
  }
3422
4005
 
3423
4006
  module.exports = PlattarBase;
3424
- },{"../../server/plattar-server.js":37,"./plattar-object.js":56}],55:[function(require,module,exports){
4007
+ },{"../../server/plattar-server.js":41,"./plattar-object.js":60}],59:[function(require,module,exports){
3425
4008
  /**
3426
4009
  * Handles the list of relationships for the provided object
3427
4010
  */
@@ -3542,7 +4125,7 @@ class PlattarObjectRelations {
3542
4125
  }
3543
4126
 
3544
4127
  module.exports = PlattarObjectRelations;
3545
- },{"../../util/plattar-util.js":97}],56:[function(require,module,exports){
4128
+ },{"../../util/plattar-util.js":101}],60:[function(require,module,exports){
3546
4129
  const PlattarQuery = require("../../server/plattar-query.js");
3547
4130
  const PlattarObjectRelations = require("./plattar-object-relations.js");
3548
4131
 
@@ -3685,7 +4268,7 @@ class PlattarObject {
3685
4268
  }
3686
4269
 
3687
4270
  module.exports = PlattarObject;
3688
- },{"../../server/plattar-query.js":36,"./plattar-object-relations.js":55}],57:[function(require,module,exports){
4271
+ },{"../../server/plattar-query.js":40,"./plattar-object-relations.js":59}],61:[function(require,module,exports){
3689
4272
  const PlattarBase = require("../interfaces/plattar-base.js");
3690
4273
 
3691
4274
  class ApplicationBuild extends PlattarBase {
@@ -3695,7 +4278,7 @@ class ApplicationBuild extends PlattarBase {
3695
4278
  }
3696
4279
 
3697
4280
  module.exports = ApplicationBuild;
3698
- },{"../interfaces/plattar-base.js":54}],58:[function(require,module,exports){
4281
+ },{"../interfaces/plattar-base.js":58}],62:[function(require,module,exports){
3699
4282
  const PlattarBase = require("../interfaces/plattar-base.js");
3700
4283
 
3701
4284
  class AssetLibrary extends PlattarBase {
@@ -3705,7 +4288,7 @@ class AssetLibrary extends PlattarBase {
3705
4288
  }
3706
4289
 
3707
4290
  module.exports = AssetLibrary;
3708
- },{"../interfaces/plattar-base.js":54}],59:[function(require,module,exports){
4291
+ },{"../interfaces/plattar-base.js":58}],63:[function(require,module,exports){
3709
4292
  const PlattarBase = require("../interfaces/plattar-base.js");
3710
4293
 
3711
4294
  class AsyncJob extends PlattarBase {
@@ -3719,7 +4302,7 @@ class AsyncJob extends PlattarBase {
3719
4302
  }
3720
4303
 
3721
4304
  module.exports = AsyncJob;
3722
- },{"../interfaces/plattar-base.js":54}],60:[function(require,module,exports){
4305
+ },{"../interfaces/plattar-base.js":58}],64:[function(require,module,exports){
3723
4306
  const PlattarBase = require("../interfaces/plattar-base.js");
3724
4307
 
3725
4308
  class ScriptEvent extends PlattarBase {
@@ -3729,7 +4312,7 @@ class ScriptEvent extends PlattarBase {
3729
4312
  }
3730
4313
 
3731
4314
  module.exports = ScriptEvent;
3732
- },{"../interfaces/plattar-base.js":54}],61:[function(require,module,exports){
4315
+ },{"../interfaces/plattar-base.js":58}],65:[function(require,module,exports){
3733
4316
  const PlattarBase = require("../interfaces/plattar-base.js");
3734
4317
 
3735
4318
  class Tag extends PlattarBase {
@@ -3739,7 +4322,7 @@ class Tag extends PlattarBase {
3739
4322
  }
3740
4323
 
3741
4324
  module.exports = Tag;
3742
- },{"../interfaces/plattar-base.js":54}],62:[function(require,module,exports){
4325
+ },{"../interfaces/plattar-base.js":58}],66:[function(require,module,exports){
3743
4326
  const PlattarBase = require("../interfaces/plattar-base.js");
3744
4327
  const Server = require("../../server/plattar-server.js");
3745
4328
 
@@ -3770,7 +4353,7 @@ class CardBase extends PlattarBase {
3770
4353
  }
3771
4354
 
3772
4355
  module.exports = CardBase;
3773
- },{"../../server/plattar-server.js":37,"../interfaces/plattar-base.js":54,"./card-button.js":63,"./card-html.js":64,"./card-iframe.js":65,"./card-image.js":66,"./card-map.js":67,"./card-paragraph.js":68,"./card-row.js":69,"./card-slider.js":70,"./card-title.js":71,"./card-video.js":72,"./card-youtube.js":73}],63:[function(require,module,exports){
4356
+ },{"../../server/plattar-server.js":41,"../interfaces/plattar-base.js":58,"./card-button.js":67,"./card-html.js":68,"./card-iframe.js":69,"./card-image.js":70,"./card-map.js":71,"./card-paragraph.js":72,"./card-row.js":73,"./card-slider.js":74,"./card-title.js":75,"./card-video.js":76,"./card-youtube.js":77}],67:[function(require,module,exports){
3774
4357
  const CardBase = require("./card-base.js");
3775
4358
 
3776
4359
  class CardButton extends CardBase {
@@ -3780,7 +4363,7 @@ class CardButton extends CardBase {
3780
4363
  }
3781
4364
 
3782
4365
  module.exports = CardButton;
3783
- },{"./card-base.js":62}],64:[function(require,module,exports){
4366
+ },{"./card-base.js":66}],68:[function(require,module,exports){
3784
4367
  const CardBase = require("./card-base.js");
3785
4368
 
3786
4369
  class CardHTML extends CardBase {
@@ -3790,7 +4373,7 @@ class CardHTML extends CardBase {
3790
4373
  }
3791
4374
 
3792
4375
  module.exports = CardHTML;
3793
- },{"./card-base.js":62}],65:[function(require,module,exports){
4376
+ },{"./card-base.js":66}],69:[function(require,module,exports){
3794
4377
  const CardBase = require("./card-base.js");
3795
4378
 
3796
4379
  class CardIFrame extends CardBase {
@@ -3800,7 +4383,7 @@ class CardIFrame extends CardBase {
3800
4383
  }
3801
4384
 
3802
4385
  module.exports = CardIFrame;
3803
- },{"./card-base.js":62}],66:[function(require,module,exports){
4386
+ },{"./card-base.js":66}],70:[function(require,module,exports){
3804
4387
  const CardBase = require("./card-base.js");
3805
4388
 
3806
4389
  class CardImage extends CardBase {
@@ -3810,7 +4393,7 @@ class CardImage extends CardBase {
3810
4393
  }
3811
4394
 
3812
4395
  module.exports = CardImage;
3813
- },{"./card-base.js":62}],67:[function(require,module,exports){
4396
+ },{"./card-base.js":66}],71:[function(require,module,exports){
3814
4397
  const CardBase = require("./card-base.js");
3815
4398
 
3816
4399
  class CardMap extends CardBase {
@@ -3820,7 +4403,7 @@ class CardMap extends CardBase {
3820
4403
  }
3821
4404
 
3822
4405
  module.exports = CardMap;
3823
- },{"./card-base.js":62}],68:[function(require,module,exports){
4406
+ },{"./card-base.js":66}],72:[function(require,module,exports){
3824
4407
  const CardBase = require("./card-base.js");
3825
4408
 
3826
4409
  class CardParagraph extends CardBase {
@@ -3830,7 +4413,7 @@ class CardParagraph extends CardBase {
3830
4413
  }
3831
4414
 
3832
4415
  module.exports = CardParagraph;
3833
- },{"./card-base.js":62}],69:[function(require,module,exports){
4416
+ },{"./card-base.js":66}],73:[function(require,module,exports){
3834
4417
  const CardBase = require("./card-base.js");
3835
4418
 
3836
4419
  class CardRow extends CardBase {
@@ -3840,7 +4423,7 @@ class CardRow extends CardBase {
3840
4423
  }
3841
4424
 
3842
4425
  module.exports = CardRow;
3843
- },{"./card-base.js":62}],70:[function(require,module,exports){
4426
+ },{"./card-base.js":66}],74:[function(require,module,exports){
3844
4427
  const CardBase = require("./card-base.js");
3845
4428
 
3846
4429
  class CardSlider extends CardBase {
@@ -3850,7 +4433,7 @@ class CardSlider extends CardBase {
3850
4433
  }
3851
4434
 
3852
4435
  module.exports = CardSlider;
3853
- },{"./card-base.js":62}],71:[function(require,module,exports){
4436
+ },{"./card-base.js":66}],75:[function(require,module,exports){
3854
4437
  const CardBase = require("./card-base.js");
3855
4438
 
3856
4439
  class CardTitle extends CardBase {
@@ -3860,7 +4443,7 @@ class CardTitle extends CardBase {
3860
4443
  }
3861
4444
 
3862
4445
  module.exports = CardTitle;
3863
- },{"./card-base.js":62}],72:[function(require,module,exports){
4446
+ },{"./card-base.js":66}],76:[function(require,module,exports){
3864
4447
  const CardBase = require("./card-base.js");
3865
4448
 
3866
4449
  class CardVideo extends CardBase {
@@ -3870,7 +4453,7 @@ class CardVideo extends CardBase {
3870
4453
  }
3871
4454
 
3872
4455
  module.exports = CardVideo;
3873
- },{"./card-base.js":62}],73:[function(require,module,exports){
4456
+ },{"./card-base.js":66}],77:[function(require,module,exports){
3874
4457
  const CardBase = require("./card-base.js");
3875
4458
 
3876
4459
  class CardYoutube extends CardBase {
@@ -3880,7 +4463,7 @@ class CardYoutube extends CardBase {
3880
4463
  }
3881
4464
 
3882
4465
  module.exports = CardYoutube;
3883
- },{"./card-base.js":62}],74:[function(require,module,exports){
4466
+ },{"./card-base.js":66}],78:[function(require,module,exports){
3884
4467
  const PlattarBase = require("../interfaces/plattar-base.js");
3885
4468
 
3886
4469
  class Page extends PlattarBase {
@@ -3890,7 +4473,7 @@ class Page extends PlattarBase {
3890
4473
  }
3891
4474
 
3892
4475
  module.exports = Page;
3893
- },{"../interfaces/plattar-base.js":54}],75:[function(require,module,exports){
4476
+ },{"../interfaces/plattar-base.js":58}],79:[function(require,module,exports){
3894
4477
  const ProductBase = require("./product-base.js");
3895
4478
 
3896
4479
  class ProductAnnotation extends ProductBase {
@@ -3900,7 +4483,7 @@ class ProductAnnotation extends ProductBase {
3900
4483
  }
3901
4484
 
3902
4485
  module.exports = ProductAnnotation;
3903
- },{"./product-base.js":76}],76:[function(require,module,exports){
4486
+ },{"./product-base.js":80}],80:[function(require,module,exports){
3904
4487
  const PlattarBase = require("../interfaces/plattar-base.js");
3905
4488
  const Server = require("../../server/plattar-server.js");
3906
4489
 
@@ -3922,7 +4505,7 @@ class ProductBase extends PlattarBase {
3922
4505
  }
3923
4506
 
3924
4507
  module.exports = ProductBase;
3925
- },{"../../server/plattar-server.js":37,"../interfaces/plattar-base.js":54,"./product-annotation.js":75,"./product-variation.js":77}],77:[function(require,module,exports){
4508
+ },{"../../server/plattar-server.js":41,"../interfaces/plattar-base.js":58,"./product-annotation.js":79,"./product-variation.js":81}],81:[function(require,module,exports){
3926
4509
  const ProductBase = require("./product-base.js");
3927
4510
 
3928
4511
  class ProductVariation extends ProductBase {
@@ -3932,7 +4515,7 @@ class ProductVariation extends ProductBase {
3932
4515
  }
3933
4516
 
3934
4517
  module.exports = ProductVariation;
3935
- },{"./product-base.js":76}],78:[function(require,module,exports){
4518
+ },{"./product-base.js":80}],82:[function(require,module,exports){
3936
4519
  const PlattarBase = require("../interfaces/plattar-base.js");
3937
4520
 
3938
4521
  class Product extends PlattarBase {
@@ -3942,7 +4525,7 @@ class Product extends PlattarBase {
3942
4525
  }
3943
4526
 
3944
4527
  module.exports = Product;
3945
- },{"../interfaces/plattar-base.js":54}],79:[function(require,module,exports){
4528
+ },{"../interfaces/plattar-base.js":58}],83:[function(require,module,exports){
3946
4529
  const SceneBase = require("./scene-base.js");
3947
4530
 
3948
4531
  class SceneAnnotation extends SceneBase {
@@ -3952,7 +4535,7 @@ class SceneAnnotation extends SceneBase {
3952
4535
  }
3953
4536
 
3954
4537
  module.exports = SceneAnnotation;
3955
- },{"./scene-base.js":81}],80:[function(require,module,exports){
4538
+ },{"./scene-base.js":85}],84:[function(require,module,exports){
3956
4539
  const SceneBase = require("./scene-base.js");
3957
4540
 
3958
4541
  class SceneAudio extends SceneBase {
@@ -3962,7 +4545,7 @@ class SceneAudio extends SceneBase {
3962
4545
  }
3963
4546
 
3964
4547
  module.exports = SceneAudio;
3965
- },{"./scene-base.js":81}],81:[function(require,module,exports){
4548
+ },{"./scene-base.js":85}],85:[function(require,module,exports){
3966
4549
  const PlattarBase = require("../interfaces/plattar-base.js");
3967
4550
  const Server = require("../../server/plattar-server.js");
3968
4551
 
@@ -3996,7 +4579,7 @@ class SceneBase extends PlattarBase {
3996
4579
  }
3997
4580
 
3998
4581
  module.exports = SceneBase;
3999
- },{"../../server/plattar-server.js":37,"../interfaces/plattar-base.js":54,"./scene-annotation.js":79,"./scene-audio.js":80,"./scene-button.js":82,"./scene-camera.js":83,"./scene-carousel.js":84,"./scene-image.js":85,"./scene-model.js":86,"./scene-panorama.js":87,"./scene-poller.js":88,"./scene-product.js":89,"./scene-shadow.js":91,"./scene-video.js":92,"./scene-volumetric.js":93,"./scene-youtube.js":94}],82:[function(require,module,exports){
4582
+ },{"../../server/plattar-server.js":41,"../interfaces/plattar-base.js":58,"./scene-annotation.js":83,"./scene-audio.js":84,"./scene-button.js":86,"./scene-camera.js":87,"./scene-carousel.js":88,"./scene-image.js":89,"./scene-model.js":90,"./scene-panorama.js":91,"./scene-poller.js":92,"./scene-product.js":93,"./scene-shadow.js":95,"./scene-video.js":96,"./scene-volumetric.js":97,"./scene-youtube.js":98}],86:[function(require,module,exports){
4000
4583
  const SceneBase = require("./scene-base.js");
4001
4584
 
4002
4585
  class SceneButton extends SceneBase {
@@ -4006,7 +4589,7 @@ class SceneButton extends SceneBase {
4006
4589
  }
4007
4590
 
4008
4591
  module.exports = SceneButton;
4009
- },{"./scene-base.js":81}],83:[function(require,module,exports){
4592
+ },{"./scene-base.js":85}],87:[function(require,module,exports){
4010
4593
  const SceneBase = require("./scene-base.js");
4011
4594
 
4012
4595
  class SceneCamera extends SceneBase {
@@ -4016,7 +4599,7 @@ class SceneCamera extends SceneBase {
4016
4599
  }
4017
4600
 
4018
4601
  module.exports = SceneCamera;
4019
- },{"./scene-base.js":81}],84:[function(require,module,exports){
4602
+ },{"./scene-base.js":85}],88:[function(require,module,exports){
4020
4603
  const SceneBase = require("./scene-base.js");
4021
4604
 
4022
4605
  class SceneCarousel extends SceneBase {
@@ -4026,7 +4609,7 @@ class SceneCarousel extends SceneBase {
4026
4609
  }
4027
4610
 
4028
4611
  module.exports = SceneCarousel;
4029
- },{"./scene-base.js":81}],85:[function(require,module,exports){
4612
+ },{"./scene-base.js":85}],89:[function(require,module,exports){
4030
4613
  const SceneBase = require("./scene-base.js");
4031
4614
 
4032
4615
  class SceneImage extends SceneBase {
@@ -4036,7 +4619,7 @@ class SceneImage extends SceneBase {
4036
4619
  }
4037
4620
 
4038
4621
  module.exports = SceneImage;
4039
- },{"./scene-base.js":81}],86:[function(require,module,exports){
4622
+ },{"./scene-base.js":85}],90:[function(require,module,exports){
4040
4623
  const SceneBase = require("./scene-base.js");
4041
4624
 
4042
4625
  class SceneModel extends SceneBase {
@@ -4046,7 +4629,7 @@ class SceneModel extends SceneBase {
4046
4629
  }
4047
4630
 
4048
4631
  module.exports = SceneModel;
4049
- },{"./scene-base.js":81}],87:[function(require,module,exports){
4632
+ },{"./scene-base.js":85}],91:[function(require,module,exports){
4050
4633
  const SceneBase = require("./scene-base.js");
4051
4634
 
4052
4635
  class ScenePanorama extends SceneBase {
@@ -4056,7 +4639,7 @@ class ScenePanorama extends SceneBase {
4056
4639
  }
4057
4640
 
4058
4641
  module.exports = ScenePanorama;
4059
- },{"./scene-base.js":81}],88:[function(require,module,exports){
4642
+ },{"./scene-base.js":85}],92:[function(require,module,exports){
4060
4643
  const SceneBase = require("./scene-base.js");
4061
4644
 
4062
4645
  class ScenePoller extends SceneBase {
@@ -4066,7 +4649,7 @@ class ScenePoller extends SceneBase {
4066
4649
  }
4067
4650
 
4068
4651
  module.exports = ScenePoller;
4069
- },{"./scene-base.js":81}],89:[function(require,module,exports){
4652
+ },{"./scene-base.js":85}],93:[function(require,module,exports){
4070
4653
  const SceneBase = require("./scene-base.js");
4071
4654
 
4072
4655
  class SceneProduct extends SceneBase {
@@ -4076,7 +4659,7 @@ class SceneProduct extends SceneBase {
4076
4659
  }
4077
4660
 
4078
4661
  module.exports = SceneProduct;
4079
- },{"./scene-base.js":81}],90:[function(require,module,exports){
4662
+ },{"./scene-base.js":85}],94:[function(require,module,exports){
4080
4663
  const SceneBase = require("./scene-base.js");
4081
4664
 
4082
4665
  class SceneScript extends SceneBase {
@@ -4086,7 +4669,7 @@ class SceneScript extends SceneBase {
4086
4669
  }
4087
4670
 
4088
4671
  module.exports = SceneScript;
4089
- },{"./scene-base.js":81}],91:[function(require,module,exports){
4672
+ },{"./scene-base.js":85}],95:[function(require,module,exports){
4090
4673
  const SceneBase = require("./scene-base.js");
4091
4674
 
4092
4675
  class SceneShadow extends SceneBase {
@@ -4096,7 +4679,7 @@ class SceneShadow extends SceneBase {
4096
4679
  }
4097
4680
 
4098
4681
  module.exports = SceneShadow;
4099
- },{"./scene-base.js":81}],92:[function(require,module,exports){
4682
+ },{"./scene-base.js":85}],96:[function(require,module,exports){
4100
4683
  const SceneBase = require("./scene-base.js");
4101
4684
 
4102
4685
  class SceneVideo extends SceneBase {
@@ -4106,7 +4689,7 @@ class SceneVideo extends SceneBase {
4106
4689
  }
4107
4690
 
4108
4691
  module.exports = SceneVideo;
4109
- },{"./scene-base.js":81}],93:[function(require,module,exports){
4692
+ },{"./scene-base.js":85}],97:[function(require,module,exports){
4110
4693
  const SceneBase = require("./scene-base.js");
4111
4694
 
4112
4695
  class SceneVolumetric extends SceneBase {
@@ -4116,7 +4699,7 @@ class SceneVolumetric extends SceneBase {
4116
4699
  }
4117
4700
 
4118
4701
  module.exports = SceneVolumetric;
4119
- },{"./scene-base.js":81}],94:[function(require,module,exports){
4702
+ },{"./scene-base.js":85}],98:[function(require,module,exports){
4120
4703
  const SceneBase = require("./scene-base.js");
4121
4704
 
4122
4705
  class SceneYoutube extends SceneBase {
@@ -4126,7 +4709,7 @@ class SceneYoutube extends SceneBase {
4126
4709
  }
4127
4710
 
4128
4711
  module.exports = SceneYoutube;
4129
- },{"./scene-base.js":81}],95:[function(require,module,exports){
4712
+ },{"./scene-base.js":85}],99:[function(require,module,exports){
4130
4713
  const PlattarBase = require("../interfaces/plattar-base.js");
4131
4714
 
4132
4715
  class Scene extends PlattarBase {
@@ -4136,7 +4719,7 @@ class Scene extends PlattarBase {
4136
4719
  }
4137
4720
 
4138
4721
  module.exports = Scene;
4139
- },{"../interfaces/plattar-base.js":54}],96:[function(require,module,exports){
4722
+ },{"../interfaces/plattar-base.js":58}],100:[function(require,module,exports){
4140
4723
  const PlattarBase = require("../interfaces/plattar-base.js");
4141
4724
 
4142
4725
  class TriggerImage extends PlattarBase {
@@ -4146,7 +4729,7 @@ class TriggerImage extends PlattarBase {
4146
4729
  }
4147
4730
 
4148
4731
  module.exports = TriggerImage;
4149
- },{"../interfaces/plattar-base.js":54}],97:[function(require,module,exports){
4732
+ },{"../interfaces/plattar-base.js":58}],101:[function(require,module,exports){
4150
4733
  const Application = require("../types/application.js");
4151
4734
 
4152
4735
  // import Scene types and its children
@@ -4373,10 +4956,10 @@ PlattarUtil.match = (type) => {
4373
4956
 
4374
4957
 
4375
4958
  module.exports = PlattarUtil;
4376
- },{"../types/application.js":38,"../types/content-pipeline/brief.js":39,"../types/content-pipeline/comment-brief.js":40,"../types/content-pipeline/comment-quote.js":41,"../types/content-pipeline/comment-solution.js":42,"../types/content-pipeline/folder.js":43,"../types/content-pipeline/pipeline-user.js":44,"../types/content-pipeline/quote.js":45,"../types/content-pipeline/rating.js":46,"../types/content-pipeline/solution.js":47,"../types/file/file-audio.js":48,"../types/file/file-image.js":50,"../types/file/file-model.js":51,"../types/file/file-script.js":52,"../types/file/file-video.js":53,"../types/interfaces/plattar-object.js":56,"../types/misc/application-build.js":57,"../types/misc/asset-library":58,"../types/misc/async-job.js":59,"../types/misc/script-event.js":60,"../types/misc/tag.js":61,"../types/page/card-button.js":63,"../types/page/card-html.js":64,"../types/page/card-iframe.js":65,"../types/page/card-image.js":66,"../types/page/card-map.js":67,"../types/page/card-paragraph.js":68,"../types/page/card-row.js":69,"../types/page/card-slider.js":70,"../types/page/card-title.js":71,"../types/page/card-video.js":72,"../types/page/card-youtube.js":73,"../types/page/page.js":74,"../types/product/product-annotation.js":75,"../types/product/product-variation.js":77,"../types/product/product.js":78,"../types/scene/scene-annotation.js":79,"../types/scene/scene-audio.js":80,"../types/scene/scene-button.js":82,"../types/scene/scene-camera.js":83,"../types/scene/scene-carousel.js":84,"../types/scene/scene-image.js":85,"../types/scene/scene-model.js":86,"../types/scene/scene-panorama.js":87,"../types/scene/scene-poller.js":88,"../types/scene/scene-product.js":89,"../types/scene/scene-script.js":90,"../types/scene/scene-shadow.js":91,"../types/scene/scene-video.js":92,"../types/scene/scene-volumetric.js":93,"../types/scene/scene-youtube.js":94,"../types/scene/scene.js":95,"../types/trigger/trigger-image.js":96}],98:[function(require,module,exports){
4959
+ },{"../types/application.js":42,"../types/content-pipeline/brief.js":43,"../types/content-pipeline/comment-brief.js":44,"../types/content-pipeline/comment-quote.js":45,"../types/content-pipeline/comment-solution.js":46,"../types/content-pipeline/folder.js":47,"../types/content-pipeline/pipeline-user.js":48,"../types/content-pipeline/quote.js":49,"../types/content-pipeline/rating.js":50,"../types/content-pipeline/solution.js":51,"../types/file/file-audio.js":52,"../types/file/file-image.js":54,"../types/file/file-model.js":55,"../types/file/file-script.js":56,"../types/file/file-video.js":57,"../types/interfaces/plattar-object.js":60,"../types/misc/application-build.js":61,"../types/misc/asset-library":62,"../types/misc/async-job.js":63,"../types/misc/script-event.js":64,"../types/misc/tag.js":65,"../types/page/card-button.js":67,"../types/page/card-html.js":68,"../types/page/card-iframe.js":69,"../types/page/card-image.js":70,"../types/page/card-map.js":71,"../types/page/card-paragraph.js":72,"../types/page/card-row.js":73,"../types/page/card-slider.js":74,"../types/page/card-title.js":75,"../types/page/card-video.js":76,"../types/page/card-youtube.js":77,"../types/page/page.js":78,"../types/product/product-annotation.js":79,"../types/product/product-variation.js":81,"../types/product/product.js":82,"../types/scene/scene-annotation.js":83,"../types/scene/scene-audio.js":84,"../types/scene/scene-button.js":86,"../types/scene/scene-camera.js":87,"../types/scene/scene-carousel.js":88,"../types/scene/scene-image.js":89,"../types/scene/scene-model.js":90,"../types/scene/scene-panorama.js":91,"../types/scene/scene-poller.js":92,"../types/scene/scene-product.js":93,"../types/scene/scene-script.js":94,"../types/scene/scene-shadow.js":95,"../types/scene/scene-video.js":96,"../types/scene/scene-volumetric.js":97,"../types/scene/scene-youtube.js":98,"../types/scene/scene.js":99,"../types/trigger/trigger-image.js":100}],102:[function(require,module,exports){
4377
4960
  module.exports = "1.120.1";
4378
4961
 
4379
- },{}],99:[function(require,module,exports){
4962
+ },{}],103:[function(require,module,exports){
4380
4963
  const QRCodeStyling = require("qr-code-styling");
4381
4964
 
4382
4965
  class BaseElement extends HTMLElement {
@@ -4505,7 +5088,6 @@ class BaseElement extends HTMLElement {
4505
5088
  type: "canvas"
4506
5089
  };
4507
5090
 
4508
- this._options.data = url;
4509
5091
  this._options.margin = margin;
4510
5092
  this._options.image = image;
4511
5093
 
@@ -4523,6 +5105,45 @@ class BaseElement extends HTMLElement {
4523
5105
  this._options.dotsOptions.type = "rounded";
4524
5106
  }
4525
5107
 
5108
+ const shortenURL = this.hasAttribute("shorten") ? this.getAttribute("shorten") : "false";
5109
+
5110
+ if (shortenURL && shortenURL.toLowerCase() === "true") {
5111
+ this._ShortenURL(url).then((newURL) => {
5112
+ this._GenerateQRCode(newURL, width, height);
5113
+ }).catch((_err) => {
5114
+ console.warn(_err);
5115
+ // ignore error and just generate normal QR Code
5116
+ this._GenerateQRCode(url, width, height);
5117
+ });
5118
+ }
5119
+ else {
5120
+ this._GenerateQRCode(url, width, height);
5121
+ }
5122
+ }
5123
+
5124
+ _UpdateCanvas(width, height) {
5125
+ if (!this._qrCode) {
5126
+ return;
5127
+ }
5128
+
5129
+ const canvas = this._qrCode._canvas;
5130
+
5131
+ if (canvas) {
5132
+ canvas.style.width = "100%";
5133
+ canvas.style.height = "100%";
5134
+ }
5135
+
5136
+ if (this._divContainer) {
5137
+ const div = this._divContainer;
5138
+
5139
+ div.style.width = width + "px";
5140
+ div.style.height = height + "px";
5141
+ }
5142
+ }
5143
+
5144
+ _GenerateQRCode(url, width, height) {
5145
+ this._options.data = url;
5146
+
4526
5147
  const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
4527
5148
 
4528
5149
  const qrCode = this._qrCode;
@@ -4545,29 +5166,41 @@ class BaseElement extends HTMLElement {
4545
5166
  this._UpdateCanvas(width, height);
4546
5167
  }
4547
5168
 
4548
- _UpdateCanvas(width, height) {
4549
- if (!this._qrCode) {
4550
- return;
4551
- }
5169
+ _IsFetchAPISupported() {
5170
+ return 'fetch' in window;
5171
+ }
4552
5172
 
4553
- const canvas = this._qrCode._canvas;
5173
+ _ShortenURL(url) {
5174
+ return new Promise((accept, reject) => {
5175
+ if (!this._IsFetchAPISupported()) {
5176
+ return reject(new Error("PlattarQR._ShortenURL() - fetch api not supported, cannot proceed"));
5177
+ }
4554
5178
 
4555
- if (canvas) {
4556
- canvas.style.width = "100%";
4557
- canvas.style.height = "100%";
4558
- }
5179
+ try {
5180
+ const b64 = btoa(url);
5181
+ const endpoint = "https://c.plattar.space/api/v2/shorten?base64=" + b64;
4559
5182
 
4560
- if (this._divContainer) {
4561
- const div = this._divContainer;
5183
+ fetch(endpoint).then((response) => {
5184
+ if (!response.ok) {
5185
+ throw new Error("PlattarQR._ShortenURL() - response was invalid");
5186
+ }
4562
5187
 
4563
- div.style.width = width + "px";
4564
- div.style.height = height + "px";
4565
- }
5188
+ return response.text();
5189
+ }).then((text) => {
5190
+ return accept(text);
5191
+ }).catch(() => {
5192
+ return reject(new Error("PlattarQR._ShortenURL() - there was an unexpected issue generating short url"));
5193
+ });
5194
+ }
5195
+ catch (err) {
5196
+ return reject(err);
5197
+ }
5198
+ });
4566
5199
  }
4567
5200
  }
4568
5201
 
4569
5202
  module.exports = BaseElement;
4570
- },{"qr-code-styling":119}],100:[function(require,module,exports){
5203
+ },{"qr-code-styling":130}],104:[function(require,module,exports){
4571
5204
  const BaseElement = require("./base/base-element.js");
4572
5205
 
4573
5206
  class QRCodeElement extends BaseElement {
@@ -4577,22 +5210,354 @@ class QRCodeElement extends BaseElement {
4577
5210
  }
4578
5211
 
4579
5212
  module.exports = QRCodeElement;
4580
- },{"./base/base-element.js":99}],101:[function(require,module,exports){
5213
+ },{"./base/base-element.js":103}],105:[function(require,module,exports){
4581
5214
  "use strict";
4582
5215
  const QRCodeElement = require("./elements/qrcode-element.js");
4583
5216
  const Version = require("./version");
4584
5217
 
4585
- console.log("using @plattar/plattar-qrcode v" + Version);
5218
+ if (customElements) {
5219
+ if (customElements.get("plattar-qrcode") === undefined) {
5220
+ customElements.define("plattar-qrcode", QRCodeElement);
5221
+ }
5222
+ }
4586
5223
 
4587
- customElements.define("plattar-qrcode", QRCodeElement);
5224
+ console.log("using @plattar/plattar-qrcode v" + Version);
4588
5225
 
4589
5226
  module.exports = {
4590
5227
  version: Version
4591
5228
  };
4592
- },{"./elements/qrcode-element.js":100,"./version":102}],102:[function(require,module,exports){
4593
- module.exports = "1.120.3";
5229
+ },{"./elements/qrcode-element.js":104,"./version":106}],106:[function(require,module,exports){
5230
+ module.exports = "1.122.1";
4594
5231
 
4595
- },{}],103:[function(require,module,exports){
5232
+ },{}],107:[function(require,module,exports){
5233
+ "use strict";
5234
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5235
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5236
+ };
5237
+ Object.defineProperty(exports, "__esModule", { value: true });
5238
+ exports.Configurator = void 0;
5239
+ const plattar_api_1 = require("@plattar/plattar-api");
5240
+ const object_hash_1 = __importDefault(require("object-hash"));
5241
+ const remote_request_1 = require("./remote-request");
5242
+ class Configurator {
5243
+ constructor() {
5244
+ this.quality = 100;
5245
+ this.output = "glb";
5246
+ this.server = "production";
5247
+ this.retry = 0;
5248
+ this._maps = [];
5249
+ this._attrHash = [];
5250
+ }
5251
+ add(sceneProduct = null, productVariation = null) {
5252
+ this.addSceneProduct(sceneProduct, productVariation);
5253
+ }
5254
+ addSceneProduct(sceneProduct = null, productVariation = null) {
5255
+ if (!sceneProduct) {
5256
+ throw new Error("Configurator.addSceneProduct() - sceneProduct input was null or undefined");
5257
+ }
5258
+ if (!productVariation) {
5259
+ throw new Error("Configurator.addSceneProduct() - productVariation input was null or undefined");
5260
+ }
5261
+ const map = {
5262
+ sceneproduct: null,
5263
+ productvariation: null
5264
+ };
5265
+ if ((sceneProduct instanceof plattar_api_1.SceneProduct) && (productVariation instanceof plattar_api_1.ProductVariation)) {
5266
+ map.sceneproduct = sceneProduct.id;
5267
+ map.productvariation = productVariation.id;
5268
+ this._maps.push(map);
5269
+ return;
5270
+ }
5271
+ if ((typeof sceneProduct === "string" || sceneProduct instanceof String) && (typeof productVariation === "string" || productVariation instanceof String)) {
5272
+ map.sceneproduct = sceneProduct;
5273
+ map.productvariation = productVariation;
5274
+ this._maps.push(map);
5275
+ return;
5276
+ }
5277
+ throw new Error("Configurator.addSceneProduct() - mismatched instance types for inputs");
5278
+ }
5279
+ addProduct(product = null, productVariation = null) {
5280
+ if (!product) {
5281
+ throw new Error("Configurator.addProduct() - product input was null or undefined");
5282
+ }
5283
+ if (!productVariation) {
5284
+ throw new Error("Configurator.addProduct() - productVariation input was null or undefined");
5285
+ }
5286
+ const map = {
5287
+ productvariation: null,
5288
+ product: null
5289
+ };
5290
+ if ((product instanceof plattar_api_1.Product) && (productVariation instanceof plattar_api_1.ProductVariation)) {
5291
+ map.product = product.id;
5292
+ map.productvariation = productVariation.id;
5293
+ this._maps.push(map);
5294
+ return;
5295
+ }
5296
+ if ((typeof product === "string" || product instanceof String) && (typeof productVariation === "string" || productVariation instanceof String)) {
5297
+ map.product = product;
5298
+ map.productvariation = productVariation;
5299
+ this._maps.push(map);
5300
+ return;
5301
+ }
5302
+ throw new Error("Configurator.addProduct() - mismatched instance types for inputs");
5303
+ }
5304
+ addModel(sceneModel = null) {
5305
+ if (!sceneModel) {
5306
+ throw new Error("Configurator.addModel() - sceneModel input was null or undefined");
5307
+ }
5308
+ const map = {
5309
+ scenemodel: null
5310
+ };
5311
+ if (sceneModel instanceof plattar_api_1.SceneModel) {
5312
+ map.scenemodel = sceneModel.id;
5313
+ this._maps.push(map);
5314
+ return;
5315
+ }
5316
+ if (typeof sceneModel === "string") {
5317
+ map.scenemodel = sceneModel;
5318
+ this._maps.push(map);
5319
+ return;
5320
+ }
5321
+ throw new Error("Configurator.addModel() - mismatched instance types for inputs");
5322
+ }
5323
+ get() {
5324
+ return new Promise((accept, reject) => {
5325
+ this._CalculateHash().then(() => {
5326
+ remote_request_1.RemoteRequest.request(this._GetPayload(), (this.retry < 0 ? 0 : this.retry)).then(accept).catch(reject);
5327
+ }).catch((_err) => {
5328
+ reject(new Error("Configurator.get() - one of the objects does not exist in Plattar API"));
5329
+ });
5330
+ });
5331
+ }
5332
+ _CalculateHash() {
5333
+ return new Promise((accept, reject) => {
5334
+ const promises = [];
5335
+ const oldOrigin = plattar_api_1.Server.default().originLocation.type;
5336
+ plattar_api_1.Server.create(plattar_api_1.Server.match(this.server));
5337
+ this._maps.forEach((map) => {
5338
+ if (map.productvariation) {
5339
+ promises.push(new plattar_api_1.ProductVariation(map.productvariation).get());
5340
+ }
5341
+ if (map.sceneproduct) {
5342
+ promises.push(new plattar_api_1.SceneProduct(map.sceneproduct).get());
5343
+ }
5344
+ if (map.scenemodel) {
5345
+ promises.push(new plattar_api_1.SceneModel(map.scenemodel).get());
5346
+ }
5347
+ if (map.product) {
5348
+ promises.push(new plattar_api_1.Product(map.product).get());
5349
+ }
5350
+ });
5351
+ Promise.all(promises).then((values) => {
5352
+ values.forEach((value) => {
5353
+ this._attrHash.push(value.attributes);
5354
+ });
5355
+ // reset server back
5356
+ plattar_api_1.Server.create(plattar_api_1.Server.match(oldOrigin));
5357
+ accept();
5358
+ }).catch(() => {
5359
+ // reset server back
5360
+ plattar_api_1.Server.create(plattar_api_1.Server.match(oldOrigin));
5361
+ reject(new Error("Configurator._CalculateHash() - unexpected error"));
5362
+ });
5363
+ });
5364
+ }
5365
+ _GetPayload() {
5366
+ const converter = this.output === "vto" ? "config_to_reality" : "config_to_model";
5367
+ const load = {
5368
+ options: {
5369
+ converter: converter,
5370
+ quality: this.quality,
5371
+ output: this.output,
5372
+ server: this.server
5373
+ },
5374
+ data: {
5375
+ maps: this._maps
5376
+ }
5377
+ };
5378
+ if (this._attrHash.length > 0) {
5379
+ load.options.hash = object_hash_1.default.MD5(this._attrHash) + object_hash_1.default.MD5(load);
5380
+ }
5381
+ else {
5382
+ load.options.hash = object_hash_1.default.MD5(load);
5383
+ }
5384
+ return load;
5385
+ }
5386
+ }
5387
+ exports.Configurator = Configurator;
5388
+
5389
+ },{"./remote-request":109,"@plattar/plattar-api":39,"object-hash":128}],108:[function(require,module,exports){
5390
+ "use strict";
5391
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5392
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5393
+ };
5394
+ Object.defineProperty(exports, "__esModule", { value: true });
5395
+ exports.ModelConverter = void 0;
5396
+ const plattar_api_1 = require("@plattar/plattar-api");
5397
+ const object_hash_1 = __importDefault(require("object-hash"));
5398
+ const remote_request_1 = require("./remote-request");
5399
+ class ModelConverter {
5400
+ constructor() {
5401
+ this._model = null;
5402
+ this.quality = 100;
5403
+ this.output = "glb";
5404
+ this.server = "production";
5405
+ this.retry = 0;
5406
+ this._attrHash = [];
5407
+ }
5408
+ get model() {
5409
+ return this._model;
5410
+ }
5411
+ set model(newModel) {
5412
+ if (!newModel) {
5413
+ return;
5414
+ }
5415
+ if (newModel instanceof plattar_api_1.FileModel) {
5416
+ this._model = newModel.id;
5417
+ this._attrHash.push(object_hash_1.default.MD5(newModel.attributes));
5418
+ return;
5419
+ }
5420
+ this._model = newModel;
5421
+ }
5422
+ get() {
5423
+ return new Promise((accept, reject) => {
5424
+ if (!this._model) {
5425
+ return reject(new Error("ModelConverter.get() - required .model attribute was not set"));
5426
+ }
5427
+ remote_request_1.RemoteRequest.request(this._Payload, (this.retry < 0 ? 0 : this.retry)).then(accept).catch(reject);
5428
+ });
5429
+ }
5430
+ get _Payload() {
5431
+ const load = {
5432
+ options: {
5433
+ converter: "gltf_to_model",
5434
+ quality: this.quality,
5435
+ output: this.output,
5436
+ server: this.server
5437
+ },
5438
+ data: {
5439
+ model: this._model
5440
+ }
5441
+ };
5442
+ if (this._attrHash.length > 0) {
5443
+ load.options.hash = object_hash_1.default.MD5(this._attrHash) + object_hash_1.default.MD5(load);
5444
+ }
5445
+ else {
5446
+ load.options.hash = object_hash_1.default.MD5(load);
5447
+ }
5448
+ return load;
5449
+ }
5450
+ }
5451
+ exports.ModelConverter = ModelConverter;
5452
+
5453
+ },{"./remote-request":109,"@plattar/plattar-api":39,"object-hash":128}],109:[function(require,module,exports){
5454
+ "use strict";
5455
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5456
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5457
+ };
5458
+ Object.defineProperty(exports, "__esModule", { value: true });
5459
+ exports.RemoteRequest = void 0;
5460
+ const node_fetch_1 = __importDefault(require("node-fetch"));
5461
+ /**
5462
+ * This is used by the core types to perform remote requests
5463
+ */
5464
+ class RemoteRequest {
5465
+ static request(payload, retry = 0) {
5466
+ return new Promise((accept, reject) => {
5467
+ if (retry >= 0) {
5468
+ RemoteRequest._send(payload).then(accept).catch((err) => {
5469
+ const newretry = retry - 1;
5470
+ if (newretry < 0) {
5471
+ return reject(err);
5472
+ }
5473
+ console.error("RemoteRequest.request() - retry number " + newretry);
5474
+ console.error(err);
5475
+ setTimeout(() => {
5476
+ RemoteRequest.request(payload, newretry).then(accept).catch(reject);
5477
+ }, 500);
5478
+ });
5479
+ }
5480
+ else {
5481
+ return reject(new Error("RemoteRequest.request() - attempted all retries without success"));
5482
+ }
5483
+ });
5484
+ }
5485
+ static _send(payload) {
5486
+ return new Promise((accept, reject) => {
5487
+ const endpoint = payload.options.server === "dev" ? "http://localhost:9000/2015-03-31/functions/function/invocations" : "https://3gbnq7wuw2.execute-api.ap-southeast-2.amazonaws.com/main/xrutils";
5488
+ const reqopts = {
5489
+ method: "POST",
5490
+ headers: {
5491
+ 'Accept': 'application/json',
5492
+ 'Content-Type': 'application/json'
5493
+ },
5494
+ body: JSON.stringify(payload)
5495
+ };
5496
+ (0, node_fetch_1.default)(endpoint, reqopts)
5497
+ .then((res) => {
5498
+ if (res.ok) {
5499
+ try {
5500
+ return res.json();
5501
+ }
5502
+ catch (err) {
5503
+ return new Error("RemoteRequest.request() - critical error occured, cannot proceed");
5504
+ }
5505
+ }
5506
+ return new Error("RemoteRequest.request() - unexpected error occured, cannot proceed. error message is " + res.statusText);
5507
+ })
5508
+ .then((json) => {
5509
+ if (json instanceof Error) {
5510
+ reject(json);
5511
+ }
5512
+ else {
5513
+ accept(json);
5514
+ }
5515
+ });
5516
+ });
5517
+ }
5518
+ }
5519
+ exports.RemoteRequest = RemoteRequest;
5520
+
5521
+ },{"node-fetch":127}],110:[function(require,module,exports){
5522
+ "use strict";
5523
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5524
+ if (k2 === undefined) k2 = k;
5525
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5526
+ }) : (function(o, m, k, k2) {
5527
+ if (k2 === undefined) k2 = k;
5528
+ o[k2] = m[k];
5529
+ }));
5530
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
5531
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
5532
+ }) : function(o, v) {
5533
+ o["default"] = v;
5534
+ });
5535
+ var __importStar = (this && this.__importStar) || function (mod) {
5536
+ if (mod && mod.__esModule) return mod;
5537
+ var result = {};
5538
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
5539
+ __setModuleDefault(result, mod);
5540
+ return result;
5541
+ };
5542
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5543
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5544
+ };
5545
+ Object.defineProperty(exports, "__esModule", { value: true });
5546
+ exports.version = exports.ModelConverter = exports.Configurator = void 0;
5547
+ var configurator_1 = require("./core/configurator");
5548
+ Object.defineProperty(exports, "Configurator", { enumerable: true, get: function () { return configurator_1.Configurator; } });
5549
+ var model_converter_1 = require("./core/model-converter");
5550
+ Object.defineProperty(exports, "ModelConverter", { enumerable: true, get: function () { return model_converter_1.ModelConverter; } });
5551
+ exports.version = __importStar(require("./version"));
5552
+ const version_1 = __importDefault(require("./version"));
5553
+ console.log("using @plattar/plattar-services v" + version_1.default);
5554
+
5555
+ },{"./core/configurator":107,"./core/model-converter":108,"./version":111}],111:[function(require,module,exports){
5556
+ "use strict";
5557
+ Object.defineProperty(exports, "__esModule", { value: true });
5558
+ exports.default = "1.120.1";
5559
+
5560
+ },{}],112:[function(require,module,exports){
4596
5561
  const ElementController = require("../controllers/element-controller");
4597
5562
 
4598
5563
  class BaseElement extends HTMLElement {
@@ -4729,7 +5694,35 @@ class BaseElement extends HTMLElement {
4729
5694
  }
4730
5695
 
4731
5696
  module.exports = BaseElement;
4732
- },{"../controllers/element-controller":104}],104:[function(require,module,exports){
5697
+ },{"../controllers/element-controller":114}],113:[function(require,module,exports){
5698
+ const BaseElement = require("./base/base-element.js");
5699
+
5700
+ class ConfiguratorElement extends BaseElement {
5701
+ constructor() {
5702
+ super();
5703
+ }
5704
+
5705
+ get permissions() {
5706
+ return ["autoplay"];
5707
+ }
5708
+
5709
+ get elementType() {
5710
+ return "configurator";
5711
+ }
5712
+
5713
+ get optionalAttributes() {
5714
+ return [{
5715
+ key: "config-state",
5716
+ map: "config_state"
5717
+ }, {
5718
+ key: "show-ar",
5719
+ map: "show_ar"
5720
+ }];
5721
+ }
5722
+ }
5723
+
5724
+ module.exports = ConfiguratorElement;
5725
+ },{"./base/base-element.js":112}],114:[function(require,module,exports){
4733
5726
  const Util = require("../../util/util.js");
4734
5727
  const { messenger } = require("@plattar/context-messenger");
4735
5728
  const IFrameController = require("./iframe-controller.js");
@@ -4822,7 +5815,7 @@ class ElementController {
4822
5815
  }
4823
5816
 
4824
5817
  module.exports = ElementController;
4825
- },{"../../util/util.js":115,"./iframe-controller.js":105,"@plattar/context-messenger":14}],105:[function(require,module,exports){
5818
+ },{"../../util/util.js":125,"./iframe-controller.js":115,"@plattar/context-messenger":18}],115:[function(require,module,exports){
4826
5819
  const Util = require("../../util/util.js");
4827
5820
 
4828
5821
  class IFrameController {
@@ -4932,7 +5925,7 @@ class IFrameController {
4932
5925
  }
4933
5926
 
4934
5927
  module.exports = IFrameController;
4935
- },{"../../util/util.js":115}],106:[function(require,module,exports){
5928
+ },{"../../util/util.js":125}],116:[function(require,module,exports){
4936
5929
  const BaseElement = require("./base/base-element.js");
4937
5930
 
4938
5931
  class EditorElement extends BaseElement {
@@ -4950,7 +5943,7 @@ class EditorElement extends BaseElement {
4950
5943
  }
4951
5944
 
4952
5945
  module.exports = EditorElement;
4953
- },{"./base/base-element.js":103}],107:[function(require,module,exports){
5946
+ },{"./base/base-element.js":112}],117:[function(require,module,exports){
4954
5947
  const BaseElement = require("./base/base-element.js");
4955
5948
 
4956
5949
  class EWallElement extends BaseElement {
@@ -4987,7 +5980,7 @@ class EWallElement extends BaseElement {
4987
5980
  }
4988
5981
 
4989
5982
  module.exports = EWallElement;
4990
- },{"./base/base-element.js":103}],108:[function(require,module,exports){
5983
+ },{"./base/base-element.js":112}],118:[function(require,module,exports){
4991
5984
  const BaseElement = require("./base/base-element.js");
4992
5985
 
4993
5986
  class FaceARElement extends BaseElement {
@@ -5015,7 +6008,7 @@ class FaceARElement extends BaseElement {
5015
6008
  }
5016
6009
 
5017
6010
  module.exports = FaceARElement;
5018
- },{"./base/base-element.js":103}],109:[function(require,module,exports){
6011
+ },{"./base/base-element.js":112}],119:[function(require,module,exports){
5019
6012
  const BaseElement = require("./base/base-element.js");
5020
6013
 
5021
6014
  class ModelElement extends BaseElement {
@@ -5040,7 +6033,7 @@ class ModelElement extends BaseElement {
5040
6033
  }
5041
6034
 
5042
6035
  module.exports = ModelElement;
5043
- },{"./base/base-element.js":103}],110:[function(require,module,exports){
6036
+ },{"./base/base-element.js":112}],120:[function(require,module,exports){
5044
6037
  const BaseElement = require("./base/base-element.js");
5045
6038
 
5046
6039
  class ProductElement extends BaseElement {
@@ -5072,7 +6065,7 @@ class ProductElement extends BaseElement {
5072
6065
  }
5073
6066
 
5074
6067
  module.exports = ProductElement;
5075
- },{"./base/base-element.js":103}],111:[function(require,module,exports){
6068
+ },{"./base/base-element.js":112}],121:[function(require,module,exports){
5076
6069
  const BaseElement = require("./base/base-element.js");
5077
6070
 
5078
6071
  class StudioElement extends BaseElement {
@@ -5090,7 +6083,7 @@ class StudioElement extends BaseElement {
5090
6083
  }
5091
6084
 
5092
6085
  module.exports = StudioElement;
5093
- },{"./base/base-element.js":103}],112:[function(require,module,exports){
6086
+ },{"./base/base-element.js":112}],122:[function(require,module,exports){
5094
6087
  const BaseElement = require("./base/base-element.js");
5095
6088
 
5096
6089
  class ViewerElement extends BaseElement {
@@ -5118,7 +6111,7 @@ class ViewerElement extends BaseElement {
5118
6111
  }
5119
6112
 
5120
6113
  module.exports = ViewerElement;
5121
- },{"./base/base-element.js":103}],113:[function(require,module,exports){
6114
+ },{"./base/base-element.js":112}],123:[function(require,module,exports){
5122
6115
  const BaseElement = require("./base/base-element.js");
5123
6116
 
5124
6117
  class WebXRElement extends BaseElement {
@@ -5136,7 +6129,7 @@ class WebXRElement extends BaseElement {
5136
6129
  }
5137
6130
 
5138
6131
  module.exports = WebXRElement;
5139
- },{"./base/base-element.js":103}],114:[function(require,module,exports){
6132
+ },{"./base/base-element.js":112}],124:[function(require,module,exports){
5140
6133
  "use strict";
5141
6134
  const WebXRElement = require("./elements/webxr-element.js");
5142
6135
  const ViewerElement = require("./elements/viewer-element.js");
@@ -5146,6 +6139,7 @@ const FaceARElement = require("./elements/facear-element.js");
5146
6139
  const EditorElement = require("./elements/editor-element.js");
5147
6140
  const StudioElement = require("./elements/studio-element.js");
5148
6141
  const ModelElement = require("./elements/model-element.js");
6142
+ const ConfiguratorElement = require("./elements/configurator-element.js");
5149
6143
  const Version = require("./version");
5150
6144
 
5151
6145
  if (customElements.get("plattar-webxr") === undefined) {
@@ -5180,12 +6174,16 @@ if (customElements.get("plattar-model") === undefined) {
5180
6174
  customElements.define("plattar-model", ModelElement);
5181
6175
  }
5182
6176
 
6177
+ if (customElements.get("plattar-configurator") === undefined) {
6178
+ customElements.define("plattar-configurator", ConfiguratorElement);
6179
+ }
6180
+
5183
6181
  console.log("using @plattar/plattar-web v" + Version);
5184
6182
 
5185
6183
  module.exports = {
5186
6184
  version: Version
5187
6185
  };
5188
- },{"./elements/editor-element.js":106,"./elements/ewall-element.js":107,"./elements/facear-element.js":108,"./elements/model-element.js":109,"./elements/product-element.js":110,"./elements/studio-element.js":111,"./elements/viewer-element.js":112,"./elements/webxr-element.js":113,"./version":116}],115:[function(require,module,exports){
6186
+ },{"./elements/configurator-element.js":113,"./elements/editor-element.js":116,"./elements/ewall-element.js":117,"./elements/facear-element.js":118,"./elements/model-element.js":119,"./elements/product-element.js":120,"./elements/studio-element.js":121,"./elements/viewer-element.js":122,"./elements/webxr-element.js":123,"./version":126}],125:[function(require,module,exports){
5189
6187
  class Util {
5190
6188
  static getServerLocation(server) {
5191
6189
  switch (server) {
@@ -5233,6 +6231,7 @@ class Util {
5233
6231
  case "studio":
5234
6232
  case "product":
5235
6233
  case "model":
6234
+ case "configurator":
5236
6235
  case "webxr": return true;
5237
6236
  default: return false;
5238
6237
  }
@@ -5259,10 +6258,10 @@ class Util {
5259
6258
  }
5260
6259
 
5261
6260
  module.exports = Util;
5262
- },{}],116:[function(require,module,exports){
5263
- module.exports = "1.122.2";
6261
+ },{}],126:[function(require,module,exports){
6262
+ module.exports = "1.122.3";
5264
6263
 
5265
- },{}],117:[function(require,module,exports){
6264
+ },{}],127:[function(require,module,exports){
5266
6265
  (function (global){(function (){
5267
6266
  "use strict";
5268
6267
 
@@ -5290,7 +6289,11 @@ exports.Headers = global.Headers;
5290
6289
  exports.Request = global.Request;
5291
6290
  exports.Response = global.Response;
5292
6291
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
5293
- },{}],118:[function(require,module,exports){
6292
+ },{}],128:[function(require,module,exports){
6293
+ (function (global){(function (){
6294
+ !function(e){var t;"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):("undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.objectHash=e())}(function(){return function o(i,u,a){function s(n,e){if(!u[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(f)return f(n,!0);throw new Error("Cannot find module '"+n+"'")}var r=u[n]={exports:{}};i[n][0].call(r.exports,function(e){var t=i[n][1][e];return s(t||e)},r,r.exports,o,i,u,a)}return u[n].exports}for(var f="function"==typeof require&&require,e=0;e<a.length;e++)s(a[e]);return s}({1:[function(w,b,m){(function(e,t,f,n,r,o,i,u,a){"use strict";var s=w("crypto");function c(e,t){return function(e,t){var n;n="passthrough"!==t.algorithm?s.createHash(t.algorithm):new y;void 0===n.write&&(n.write=n.update,n.end=n.update);g(t,n).dispatch(e),n.update||n.end("");if(n.digest)return n.digest("buffer"===t.encoding?void 0:t.encoding);var r=n.read();return"buffer"!==t.encoding?r.toString(t.encoding):r}(e,t=h(e,t))}(m=b.exports=c).sha1=function(e){return c(e)},m.keys=function(e){return c(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},m.MD5=function(e){return c(e,{algorithm:"md5",encoding:"hex"})},m.keysMD5=function(e){return c(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var l=s.getHashes?s.getHashes().slice():["sha1","md5"];l.push("passthrough");var d=["buffer","hex","binary","base64"];function h(e,t){t=t||{};var n={};if(n.algorithm=t.algorithm||"sha1",n.encoding=t.encoding||"hex",n.excludeValues=!!t.excludeValues,n.algorithm=n.algorithm.toLowerCase(),n.encoding=n.encoding.toLowerCase(),n.ignoreUnknown=!0===t.ignoreUnknown,n.respectType=!1!==t.respectType,n.respectFunctionNames=!1!==t.respectFunctionNames,n.respectFunctionProperties=!1!==t.respectFunctionProperties,n.unorderedArrays=!0===t.unorderedArrays,n.unorderedSets=!1!==t.unorderedSets,n.unorderedObjects=!1!==t.unorderedObjects,n.replacer=t.replacer||void 0,n.excludeKeys=t.excludeKeys||void 0,void 0===e)throw new Error("Object argument required.");for(var r=0;r<l.length;++r)l[r].toLowerCase()===n.algorithm.toLowerCase()&&(n.algorithm=l[r]);if(-1===l.indexOf(n.algorithm))throw new Error('Algorithm "'+n.algorithm+'" not supported. supported values: '+l.join(", "));if(-1===d.indexOf(n.encoding)&&"passthrough"!==n.algorithm)throw new Error('Encoding "'+n.encoding+'" not supported. supported values: '+d.join(", "));return n}function p(e){if("function"==typeof e){return null!=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i.exec(Function.prototype.toString.call(e))}}function g(u,t,a){a=a||[];function s(e){return t.update?t.update(e,"utf8"):t.write(e,"utf8")}return{dispatch:function(e){return u.replacer&&(e=u.replacer(e)),this["_"+(null===e?"null":typeof e)](e)},_object:function(t){var e=Object.prototype.toString.call(t),n=/\[object (.*)\]/i.exec(e);n=(n=n?n[1]:"unknown:["+e+"]").toLowerCase();var r;if(0<=(r=a.indexOf(t)))return this.dispatch("[CIRCULAR:"+r+"]");if(a.push(t),void 0!==f&&f.isBuffer&&f.isBuffer(t))return s("buffer:"),s(t);if("object"===n||"function"===n||"asyncfunction"===n){var o=Object.keys(t);u.unorderedObjects&&(o=o.sort()),!1===u.respectType||p(t)||o.splice(0,0,"prototype","__proto__","constructor"),u.excludeKeys&&(o=o.filter(function(e){return!u.excludeKeys(e)})),s("object:"+o.length+":");var i=this;return o.forEach(function(e){i.dispatch(e),s(":"),u.excludeValues||i.dispatch(t[e]),s(",")})}if(!this["_"+n]){if(u.ignoreUnknown)return s("["+n+"]");throw new Error('Unknown object type "'+n+'"')}this["_"+n](t)},_array:function(e,t){t=void 0!==t?t:!1!==u.unorderedArrays;var n=this;if(s("array:"+e.length+":"),!t||e.length<=1)return e.forEach(function(e){return n.dispatch(e)});var r=[],o=e.map(function(e){var t=new y,n=a.slice();return g(u,t,n).dispatch(e),r=r.concat(n.slice(a.length)),t.read().toString()});return a=a.concat(r),o.sort(),this._array(o,!1)},_date:function(e){return s("date:"+e.toJSON())},_symbol:function(e){return s("symbol:"+e.toString())},_error:function(e){return s("error:"+e.toString())},_boolean:function(e){return s("bool:"+e.toString())},_string:function(e){s("string:"+e.length+":"),s(e.toString())},_function:function(e){s("fn:"),p(e)?this.dispatch("[native]"):this.dispatch(e.toString()),!1!==u.respectFunctionNames&&this.dispatch("function-name:"+String(e.name)),u.respectFunctionProperties&&this._object(e)},_number:function(e){return s("number:"+e.toString())},_xml:function(e){return s("xml:"+e.toString())},_null:function(){return s("Null")},_undefined:function(){return s("Undefined")},_regexp:function(e){return s("regex:"+e.toString())},_uint8array:function(e){return s("uint8array:"),this.dispatch(Array.prototype.slice.call(e))},_uint8clampedarray:function(e){return s("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(e))},_int8array:function(e){return s("uint8array:"),this.dispatch(Array.prototype.slice.call(e))},_uint16array:function(e){return s("uint16array:"),this.dispatch(Array.prototype.slice.call(e))},_int16array:function(e){return s("uint16array:"),this.dispatch(Array.prototype.slice.call(e))},_uint32array:function(e){return s("uint32array:"),this.dispatch(Array.prototype.slice.call(e))},_int32array:function(e){return s("uint32array:"),this.dispatch(Array.prototype.slice.call(e))},_float32array:function(e){return s("float32array:"),this.dispatch(Array.prototype.slice.call(e))},_float64array:function(e){return s("float64array:"),this.dispatch(Array.prototype.slice.call(e))},_arraybuffer:function(e){return s("arraybuffer:"),this.dispatch(new Uint8Array(e))},_url:function(e){return s("url:"+e.toString())},_map:function(e){s("map:");var t=Array.from(e);return this._array(t,!1!==u.unorderedSets)},_set:function(e){s("set:");var t=Array.from(e);return this._array(t,!1!==u.unorderedSets)},_file:function(e){return s("file:"),this.dispatch([e.name,e.size,e.type,e.lastModfied])},_blob:function(){if(u.ignoreUnknown)return s("[blob]");throw Error('Hashing Blob objects is currently not supported\n(see https://github.com/puleos/object-hash/issues/26)\nUse "options.replacer" or "options.ignoreUnknown"\n')},_domwindow:function(){return s("domwindow")},_bigint:function(e){return s("bigint:"+e.toString())},_process:function(){return s("process")},_timer:function(){return s("timer")},_pipe:function(){return s("pipe")},_tcp:function(){return s("tcp")},_udp:function(){return s("udp")},_tty:function(){return s("tty")},_statwatcher:function(){return s("statwatcher")},_securecontext:function(){return s("securecontext")},_connection:function(){return s("connection")},_zlib:function(){return s("zlib")},_context:function(){return s("context")},_nodescript:function(){return s("nodescript")},_httpparser:function(){return s("httpparser")},_dataview:function(){return s("dataview")},_signal:function(){return s("signal")},_fsevent:function(){return s("fsevent")},_tlswrap:function(){return s("tlswrap")}}}function y(){return{buf:"",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}m.writeToStream=function(e,t,n){return void 0===n&&(n=t,t={}),g(t=h(e,t),n).dispatch(e)}}).call(this,w("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},w("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/fake_7eac155c.js","/")},{buffer:3,crypto:5,lYpoI2:10}],2:[function(e,t,f){(function(e,t,n,r,o,i,u,a,s){!function(e){"use strict";var f="undefined"!=typeof Uint8Array?Uint8Array:Array,n="+".charCodeAt(0),r="/".charCodeAt(0),o="0".charCodeAt(0),i="a".charCodeAt(0),u="A".charCodeAt(0),a="-".charCodeAt(0),s="_".charCodeAt(0);function c(e){var t=e.charCodeAt(0);return t===n||t===a?62:t===r||t===s?63:t<o?-1:t<o+10?t-o+26+26:t<u+26?t-u:t<i+26?t-i+26:void 0}e.toByteArray=function(e){var t,n;if(0<e.length%4)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.length,o="="===e.charAt(r-2)?2:"="===e.charAt(r-1)?1:0,i=new f(3*e.length/4-o),u=0<o?e.length-4:e.length,a=0;function s(e){i[a++]=e}for(t=0;t<u;t+=4,0)s((16711680&(n=c(e.charAt(t))<<18|c(e.charAt(t+1))<<12|c(e.charAt(t+2))<<6|c(e.charAt(t+3))))>>16),s((65280&n)>>8),s(255&n);return 2==o?s(255&(n=c(e.charAt(t))<<2|c(e.charAt(t+1))>>4)):1==o&&(s((n=c(e.charAt(t))<<10|c(e.charAt(t+1))<<4|c(e.charAt(t+2))>>2)>>8&255),s(255&n)),i},e.fromByteArray=function(e){var t,n,r,o,i=e.length%3,u="";function a(e){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)}for(t=0,r=e.length-i;t<r;t+=3)n=(e[t]<<16)+(e[t+1]<<8)+e[t+2],u+=a((o=n)>>18&63)+a(o>>12&63)+a(o>>6&63)+a(63&o);switch(i){case 1:u+=a((n=e[e.length-1])>>2),u+=a(n<<4&63),u+="==";break;case 2:u+=a((n=(e[e.length-2]<<8)+e[e.length-1])>>10),u+=a(n>>4&63),u+=a(n<<2&63),u+="="}return u}}(void 0===f?this.base64js={}:f)}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:10}],3:[function(O,e,H){(function(e,t,g,n,r,o,i,u,a){var s=O("base64-js"),f=O("ieee754");function g(e,t,n){if(!(this instanceof g))return new g(e,t,n);var r,o,i,u,a,s=typeof e;if("base64"===t&&"string"==s)for(e=(r=e).trim?r.trim():r.replace(/^\s+|\s+$/g,"");e.length%4!=0;)e+="=";if("number"==s)o=x(e);else if("string"==s)o=g.byteLength(e,t);else{if("object"!=s)throw new Error("First argument needs to be a number, array or string.");o=x(e.length)}if(g._useTypedArrays?i=g._augment(new Uint8Array(o)):((i=this).length=o,i._isBuffer=!0),g._useTypedArrays&&"number"==typeof e.byteLength)i._set(e);else if(S(a=e)||g.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length)for(u=0;u<o;u++)g.isBuffer(e)?i[u]=e.readUInt8(u):i[u]=e[u];else if("string"==s)i.write(e,0,t);else if("number"==s&&!g._useTypedArrays&&!n)for(u=0;u<o;u++)i[u]=0;return i}function y(e,t,n,r){return g._charsWritten=T(function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function w(e,t,n,r){return g._charsWritten=T(function(e){for(var t,n,r,o=[],i=0;i<e.length;i++)t=e.charCodeAt(i),n=t>>8,r=t%256,o.push(r),o.push(n);return o}(t),e,n,r)}function c(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;o++)r+=String.fromCharCode(e[o]);return r}function l(e,t,n,r){r||(D("boolean"==typeof n,"missing or invalid endian"),D(null!=t,"missing offset"),D(t+1<e.length,"Trying to read beyond buffer length"));var o,i=e.length;if(!(i<=t))return n?(o=e[t],t+1<i&&(o|=e[t+1]<<8)):(o=e[t]<<8,t+1<i&&(o|=e[t+1])),o}function d(e,t,n,r){r||(D("boolean"==typeof n,"missing or invalid endian"),D(null!=t,"missing offset"),D(t+3<e.length,"Trying to read beyond buffer length"));var o,i=e.length;if(!(i<=t))return n?(t+2<i&&(o=e[t+2]<<16),t+1<i&&(o|=e[t+1]<<8),o|=e[t],t+3<i&&(o+=e[t+3]<<24>>>0)):(t+1<i&&(o=e[t+1]<<16),t+2<i&&(o|=e[t+2]<<8),t+3<i&&(o|=e[t+3]),o+=e[t]<<24>>>0),o}function h(e,t,n,r){if(r||(D("boolean"==typeof n,"missing or invalid endian"),D(null!=t,"missing offset"),D(t+1<e.length,"Trying to read beyond buffer length")),!(e.length<=t)){var o=l(e,t,n,!0);return 32768&o?-1*(65535-o+1):o}}function p(e,t,n,r){if(r||(D("boolean"==typeof n,"missing or invalid endian"),D(null!=t,"missing offset"),D(t+3<e.length,"Trying to read beyond buffer length")),!(e.length<=t)){var o=d(e,t,n,!0);return 2147483648&o?-1*(4294967295-o+1):o}}function b(e,t,n,r){return r||(D("boolean"==typeof n,"missing or invalid endian"),D(t+3<e.length,"Trying to read beyond buffer length")),f.read(e,t,n,23,4)}function m(e,t,n,r){return r||(D("boolean"==typeof n,"missing or invalid endian"),D(t+7<e.length,"Trying to read beyond buffer length")),f.read(e,t,n,52,8)}function v(e,t,n,r,o){o||(D(null!=t,"missing value"),D("boolean"==typeof r,"missing or invalid endian"),D(null!=n,"missing offset"),D(n+1<e.length,"trying to write beyond buffer length"),N(t,65535));var i=e.length;if(!(i<=n))for(var u=0,a=Math.min(i-n,2);u<a;u++)e[n+u]=(t&255<<8*(r?u:1-u))>>>8*(r?u:1-u)}function _(e,t,n,r,o){o||(D(null!=t,"missing value"),D("boolean"==typeof r,"missing or invalid endian"),D(null!=n,"missing offset"),D(n+3<e.length,"trying to write beyond buffer length"),N(t,4294967295));var i=e.length;if(!(i<=n))for(var u=0,a=Math.min(i-n,4);u<a;u++)e[n+u]=t>>>8*(r?u:3-u)&255}function E(e,t,n,r,o){o||(D(null!=t,"missing value"),D("boolean"==typeof r,"missing or invalid endian"),D(null!=n,"missing offset"),D(n+1<e.length,"Trying to write beyond buffer length"),Y(t,32767,-32768)),e.length<=n||v(e,0<=t?t:65535+t+1,n,r,o)}function I(e,t,n,r,o){o||(D(null!=t,"missing value"),D("boolean"==typeof r,"missing or invalid endian"),D(null!=n,"missing offset"),D(n+3<e.length,"Trying to write beyond buffer length"),Y(t,2147483647,-2147483648)),e.length<=n||_(e,0<=t?t:4294967295+t+1,n,r,o)}function A(e,t,n,r,o){o||(D(null!=t,"missing value"),D("boolean"==typeof r,"missing or invalid endian"),D(null!=n,"missing offset"),D(n+3<e.length,"Trying to write beyond buffer length"),F(t,34028234663852886e22,-34028234663852886e22)),e.length<=n||f.write(e,t,n,r,23,4)}function B(e,t,n,r,o){o||(D(null!=t,"missing value"),D("boolean"==typeof r,"missing or invalid endian"),D(null!=n,"missing offset"),D(n+7<e.length,"Trying to write beyond buffer length"),F(t,17976931348623157e292,-17976931348623157e292)),e.length<=n||f.write(e,t,n,r,52,8)}H.Buffer=g,H.SlowBuffer=g,H.INSPECT_MAX_BYTES=50,g.poolSize=8192,g._useTypedArrays=function(){try{var e=new ArrayBuffer(0),t=new Uint8Array(e);return t.foo=function(){return 42},42===t.foo()&&"function"==typeof t.subarray}catch(e){return!1}}(),g.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},g.isBuffer=function(e){return!(null==e||!e._isBuffer)},g.byteLength=function(e,t){var n;switch(e+="",t||"utf8"){case"hex":n=e.length/2;break;case"utf8":case"utf-8":n=C(e).length;break;case"ascii":case"binary":case"raw":n=e.length;break;case"base64":n=k(e).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":n=2*e.length;break;default:throw new Error("Unknown encoding")}return n},g.concat=function(e,t){if(D(S(e),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===e.length)return new g(0);if(1===e.length)return e[0];if("number"!=typeof t)for(o=t=0;o<e.length;o++)t+=e[o].length;for(var n=new g(t),r=0,o=0;o<e.length;o++){var i=e[o];i.copy(n,r),r+=i.length}return n},g.prototype.write=function(e,t,n,r){var o;isFinite(t)?isFinite(n)||(r=n,n=void 0):(o=r,r=t,t=n,n=o),t=Number(t)||0;var i,u,a,s,f,c,l,d,h,p=this.length-t;switch((!n||p<(n=Number(n)))&&(n=p),r=String(r||"utf8").toLowerCase()){case"hex":i=function(e,t,n,r){n=Number(n)||0;var o=e.length-n;(!r||o<(r=Number(r)))&&(r=o);var i=t.length;D(i%2==0,"Invalid hex string"),i/2<r&&(r=i/2);for(var u=0;u<r;u++){var a=parseInt(t.substr(2*u,2),16);D(!isNaN(a),"Invalid hex string"),e[n+u]=a}return g._charsWritten=2*u,u}(this,e,t,n);break;case"utf8":case"utf-8":c=this,l=e,d=t,h=n,i=g._charsWritten=T(C(l),c,d,h);break;case"ascii":case"binary":i=y(this,e,t,n);break;case"base64":u=this,a=e,s=t,f=n,i=g._charsWritten=T(k(a),u,s,f);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":i=w(this,e,t,n);break;default:throw new Error("Unknown encoding")}return i},g.prototype.toString=function(e,t,n){var r,o,i,u,a=this;if(e=String(e||"utf8").toLowerCase(),t=Number(t)||0,(n=void 0!==n?Number(n):n=a.length)===t)return"";switch(e){case"hex":r=function(e,t,n){var r=e.length;(!t||t<0)&&(t=0);(!n||n<0||r<n)&&(n=r);for(var o="",i=t;i<n;i++)o+=j(e[i]);return o}(a,t,n);break;case"utf8":case"utf-8":r=function(e,t,n){var r="",o="";n=Math.min(e.length,n);for(var i=t;i<n;i++)e[i]<=127?(r+=M(o)+String.fromCharCode(e[i]),o=""):o+="%"+e[i].toString(16);return r+M(o)}(a,t,n);break;case"ascii":case"binary":r=c(a,t,n);break;case"base64":o=a,u=n,r=0===(i=t)&&u===o.length?s.fromByteArray(o):s.fromByteArray(o.slice(i,u));break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":r=function(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}(a,t,n);break;default:throw new Error("Unknown encoding")}return r},g.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},g.prototype.copy=function(e,t,n,r){if(n=n||0,r||0===r||(r=this.length),t=t||0,r!==n&&0!==e.length&&0!==this.length){D(n<=r,"sourceEnd < sourceStart"),D(0<=t&&t<e.length,"targetStart out of bounds"),D(0<=n&&n<this.length,"sourceStart out of bounds"),D(0<=r&&r<=this.length,"sourceEnd out of bounds"),r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o=r-n;if(o<100||!g._useTypedArrays)for(var i=0;i<o;i++)e[i+t]=this[i+n];else e._set(this.subarray(n,n+o),t)}},g.prototype.slice=function(e,t){var n=this.length;if(e=U(e,n,0),t=U(t,n,n),g._useTypedArrays)return g._augment(this.subarray(e,t));for(var r=t-e,o=new g(r,void 0,!0),i=0;i<r;i++)o[i]=this[i+e];return o},g.prototype.get=function(e){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(e)},g.prototype.set=function(e,t){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(e,t)},g.prototype.readUInt8=function(e,t){if(t||(D(null!=e,"missing offset"),D(e<this.length,"Trying to read beyond buffer length")),!(e>=this.length))return this[e]},g.prototype.readUInt16LE=function(e,t){return l(this,e,!0,t)},g.prototype.readUInt16BE=function(e,t){return l(this,e,!1,t)},g.prototype.readUInt32LE=function(e,t){return d(this,e,!0,t)},g.prototype.readUInt32BE=function(e,t){return d(this,e,!1,t)},g.prototype.readInt8=function(e,t){if(t||(D(null!=e,"missing offset"),D(e<this.length,"Trying to read beyond buffer length")),!(e>=this.length))return 128&this[e]?-1*(255-this[e]+1):this[e]},g.prototype.readInt16LE=function(e,t){return h(this,e,!0,t)},g.prototype.readInt16BE=function(e,t){return h(this,e,!1,t)},g.prototype.readInt32LE=function(e,t){return p(this,e,!0,t)},g.prototype.readInt32BE=function(e,t){return p(this,e,!1,t)},g.prototype.readFloatLE=function(e,t){return b(this,e,!0,t)},g.prototype.readFloatBE=function(e,t){return b(this,e,!1,t)},g.prototype.readDoubleLE=function(e,t){return m(this,e,!0,t)},g.prototype.readDoubleBE=function(e,t){return m(this,e,!1,t)},g.prototype.writeUInt8=function(e,t,n){n||(D(null!=e,"missing value"),D(null!=t,"missing offset"),D(t<this.length,"trying to write beyond buffer length"),N(e,255)),t>=this.length||(this[t]=e)},g.prototype.writeUInt16LE=function(e,t,n){v(this,e,t,!0,n)},g.prototype.writeUInt16BE=function(e,t,n){v(this,e,t,!1,n)},g.prototype.writeUInt32LE=function(e,t,n){_(this,e,t,!0,n)},g.prototype.writeUInt32BE=function(e,t,n){_(this,e,t,!1,n)},g.prototype.writeInt8=function(e,t,n){n||(D(null!=e,"missing value"),D(null!=t,"missing offset"),D(t<this.length,"Trying to write beyond buffer length"),Y(e,127,-128)),t>=this.length||(0<=e?this.writeUInt8(e,t,n):this.writeUInt8(255+e+1,t,n))},g.prototype.writeInt16LE=function(e,t,n){E(this,e,t,!0,n)},g.prototype.writeInt16BE=function(e,t,n){E(this,e,t,!1,n)},g.prototype.writeInt32LE=function(e,t,n){I(this,e,t,!0,n)},g.prototype.writeInt32BE=function(e,t,n){I(this,e,t,!1,n)},g.prototype.writeFloatLE=function(e,t,n){A(this,e,t,!0,n)},g.prototype.writeFloatBE=function(e,t,n){A(this,e,t,!1,n)},g.prototype.writeDoubleLE=function(e,t,n){B(this,e,t,!0,n)},g.prototype.writeDoubleBE=function(e,t,n){B(this,e,t,!1,n)},g.prototype.fill=function(e,t,n){if(e=e||0,t=t||0,n=n||this.length,"string"==typeof e&&(e=e.charCodeAt(0)),D("number"==typeof e&&!isNaN(e),"value is not a number"),D(t<=n,"end < start"),n!==t&&0!==this.length){D(0<=t&&t<this.length,"start out of bounds"),D(0<=n&&n<=this.length,"end out of bounds");for(var r=t;r<n;r++)this[r]=e}},g.prototype.inspect=function(){for(var e=[],t=this.length,n=0;n<t;n++)if(e[n]=j(this[n]),n===H.INSPECT_MAX_BYTES){e[n+1]="...";break}return"<Buffer "+e.join(" ")+">"},g.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(g._useTypedArrays)return new g(this).buffer;for(var e=new Uint8Array(this.length),t=0,n=e.length;t<n;t+=1)e[t]=this[t];return e.buffer};var L=g.prototype;function U(e,t,n){return"number"!=typeof e?n:t<=(e=~~e)?t:0<=e||0<=(e+=t)?e:0}function x(e){return(e=~~Math.ceil(+e))<0?0:e}function S(e){return(Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)})(e)}function j(e){return e<16?"0"+e.toString(16):e.toString(16)}function C(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<=127)t.push(e.charCodeAt(n));else{var o=n;55296<=r&&r<=57343&&n++;for(var i=encodeURIComponent(e.slice(o,n+1)).substr(1).split("%"),u=0;u<i.length;u++)t.push(parseInt(i[u],16))}}return t}function k(e){return s.toByteArray(e)}function T(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);o++)t[o+n]=e[o];return o}function M(e){try{return decodeURIComponent(e)}catch(e){return String.fromCharCode(65533)}}function N(e,t){D("number"==typeof e,"cannot write a non-number as a number"),D(0<=e,"specified a negative value for writing an unsigned value"),D(e<=t,"value is larger than maximum value for type"),D(Math.floor(e)===e,"value has a fractional component")}function Y(e,t,n){D("number"==typeof e,"cannot write a non-number as a number"),D(e<=t,"value larger than maximum allowed value"),D(n<=e,"value smaller than minimum allowed value"),D(Math.floor(e)===e,"value has a fractional component")}function F(e,t,n){D("number"==typeof e,"cannot write a non-number as a number"),D(e<=t,"value larger than maximum allowed value"),D(n<=e,"value smaller than minimum allowed value")}function D(e,t){if(!e)throw new Error(t||"Failed assertion")}g._augment=function(e){return e._isBuffer=!0,e._get=e.get,e._set=e.set,e.get=L.get,e.set=L.set,e.write=L.write,e.toString=L.toString,e.toLocaleString=L.toString,e.toJSON=L.toJSON,e.copy=L.copy,e.slice=L.slice,e.readUInt8=L.readUInt8,e.readUInt16LE=L.readUInt16LE,e.readUInt16BE=L.readUInt16BE,e.readUInt32LE=L.readUInt32LE,e.readUInt32BE=L.readUInt32BE,e.readInt8=L.readInt8,e.readInt16LE=L.readInt16LE,e.readInt16BE=L.readInt16BE,e.readInt32LE=L.readInt32LE,e.readInt32BE=L.readInt32BE,e.readFloatLE=L.readFloatLE,e.readFloatBE=L.readFloatBE,e.readDoubleLE=L.readDoubleLE,e.readDoubleBE=L.readDoubleBE,e.writeUInt8=L.writeUInt8,e.writeUInt16LE=L.writeUInt16LE,e.writeUInt16BE=L.writeUInt16BE,e.writeUInt32LE=L.writeUInt32LE,e.writeUInt32BE=L.writeUInt32BE,e.writeInt8=L.writeInt8,e.writeInt16LE=L.writeInt16LE,e.writeInt16BE=L.writeInt16BE,e.writeInt32LE=L.writeInt32LE,e.writeInt32BE=L.writeInt32BE,e.writeFloatLE=L.writeFloatLE,e.writeFloatBE=L.writeFloatBE,e.writeDoubleLE=L.writeDoubleLE,e.writeDoubleBE=L.writeDoubleBE,e.fill=L.fill,e.inspect=L.inspect,e.toArrayBuffer=L.toArrayBuffer,e}}).call(this,O("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},O("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:11,lYpoI2:10}],4:[function(l,d,e){(function(e,t,u,n,r,o,i,a,s){var u=l("buffer").Buffer,f=4,c=new u(f);c.fill(0);d.exports={hash:function(e,t,n,r){return u.isBuffer(e)||(e=new u(e)),function(e,t,n){for(var r=new u(t),o=n?r.writeInt32BE:r.writeInt32LE,i=0;i<e.length;i++)o.call(r,e[i],4*i,!0);return r}(t(function(e,t){var n;e.length%f!=0&&(n=e.length+(f-e.length%f),e=u.concat([e,c],n));for(var r=[],o=t?e.readInt32BE:e.readInt32LE,i=0;i<e.length;i+=f)r.push(o.call(e,i));return r}(e,r),8*e.length),n,r)}}}).call(this,l("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},l("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/helpers.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:10}],5:[function(w,e,b){(function(e,t,a,n,r,o,i,u,s){var a=w("buffer").Buffer,f=w("./sha"),c=w("./sha256"),l=w("./rng"),d={sha1:f,sha256:c,md5:w("./md5")},h=64,p=new a(h);function g(e,r){var o=d[e=e||"sha1"],i=[];return o||y("algorithm:",e,"is not yet supported"),{update:function(e){return a.isBuffer(e)||(e=new a(e)),i.push(e),e.length,this},digest:function(e){var t=a.concat(i),n=r?function(e,t,n){a.isBuffer(t)||(t=new a(t)),a.isBuffer(n)||(n=new a(n)),t.length>h?t=e(t):t.length<h&&(t=a.concat([t,p],h));for(var r=new a(h),o=new a(h),i=0;i<h;i++)r[i]=54^t[i],o[i]=92^t[i];var u=e(a.concat([r,n]));return e(a.concat([o,u]))}(o,r,t):o(t);return i=null,e?n.toString(e):n}}}function y(){var e=[].slice.call(arguments).join(" ");throw new Error([e,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}p.fill(0),b.createHash=function(e){return g(e)},b.createHmac=g,b.randomBytes=function(e,t){if(!t||!t.call)return new a(l(e));try{t.call(this,void 0,new a(l(e)))}catch(e){t(e)}},function(e,t){for(var n in e)t(e[n],n)}(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],function(e){b[e]=function(){y("sorry,",e,"is not implemented yet")}})}).call(this,w("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},w("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/index.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./md5":6,"./rng":7,"./sha":8,"./sha256":9,buffer:3,lYpoI2:10}],6:[function(w,b,e){(function(e,t,n,r,o,i,u,a,s){var f=w("./helpers");function c(e,t){e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;for(var n=1732584193,r=-271733879,o=-1732584194,i=271733878,u=0;u<e.length;u+=16){var a=n,s=r,f=o,c=i,n=d(n,r,o,i,e[u+0],7,-680876936),i=d(i,n,r,o,e[u+1],12,-389564586),o=d(o,i,n,r,e[u+2],17,606105819),r=d(r,o,i,n,e[u+3],22,-1044525330);n=d(n,r,o,i,e[u+4],7,-176418897),i=d(i,n,r,o,e[u+5],12,1200080426),o=d(o,i,n,r,e[u+6],17,-1473231341),r=d(r,o,i,n,e[u+7],22,-45705983),n=d(n,r,o,i,e[u+8],7,1770035416),i=d(i,n,r,o,e[u+9],12,-1958414417),o=d(o,i,n,r,e[u+10],17,-42063),r=d(r,o,i,n,e[u+11],22,-1990404162),n=d(n,r,o,i,e[u+12],7,1804603682),i=d(i,n,r,o,e[u+13],12,-40341101),o=d(o,i,n,r,e[u+14],17,-1502002290),n=h(n,r=d(r,o,i,n,e[u+15],22,1236535329),o,i,e[u+1],5,-165796510),i=h(i,n,r,o,e[u+6],9,-1069501632),o=h(o,i,n,r,e[u+11],14,643717713),r=h(r,o,i,n,e[u+0],20,-373897302),n=h(n,r,o,i,e[u+5],5,-701558691),i=h(i,n,r,o,e[u+10],9,38016083),o=h(o,i,n,r,e[u+15],14,-660478335),r=h(r,o,i,n,e[u+4],20,-405537848),n=h(n,r,o,i,e[u+9],5,568446438),i=h(i,n,r,o,e[u+14],9,-1019803690),o=h(o,i,n,r,e[u+3],14,-187363961),r=h(r,o,i,n,e[u+8],20,1163531501),n=h(n,r,o,i,e[u+13],5,-1444681467),i=h(i,n,r,o,e[u+2],9,-51403784),o=h(o,i,n,r,e[u+7],14,1735328473),n=p(n,r=h(r,o,i,n,e[u+12],20,-1926607734),o,i,e[u+5],4,-378558),i=p(i,n,r,o,e[u+8],11,-2022574463),o=p(o,i,n,r,e[u+11],16,1839030562),r=p(r,o,i,n,e[u+14],23,-35309556),n=p(n,r,o,i,e[u+1],4,-1530992060),i=p(i,n,r,o,e[u+4],11,1272893353),o=p(o,i,n,r,e[u+7],16,-155497632),r=p(r,o,i,n,e[u+10],23,-1094730640),n=p(n,r,o,i,e[u+13],4,681279174),i=p(i,n,r,o,e[u+0],11,-358537222),o=p(o,i,n,r,e[u+3],16,-722521979),r=p(r,o,i,n,e[u+6],23,76029189),n=p(n,r,o,i,e[u+9],4,-640364487),i=p(i,n,r,o,e[u+12],11,-421815835),o=p(o,i,n,r,e[u+15],16,530742520),n=g(n,r=p(r,o,i,n,e[u+2],23,-995338651),o,i,e[u+0],6,-198630844),i=g(i,n,r,o,e[u+7],10,1126891415),o=g(o,i,n,r,e[u+14],15,-1416354905),r=g(r,o,i,n,e[u+5],21,-57434055),n=g(n,r,o,i,e[u+12],6,1700485571),i=g(i,n,r,o,e[u+3],10,-1894986606),o=g(o,i,n,r,e[u+10],15,-1051523),r=g(r,o,i,n,e[u+1],21,-2054922799),n=g(n,r,o,i,e[u+8],6,1873313359),i=g(i,n,r,o,e[u+15],10,-30611744),o=g(o,i,n,r,e[u+6],15,-1560198380),r=g(r,o,i,n,e[u+13],21,1309151649),n=g(n,r,o,i,e[u+4],6,-145523070),i=g(i,n,r,o,e[u+11],10,-1120210379),o=g(o,i,n,r,e[u+2],15,718787259),r=g(r,o,i,n,e[u+9],21,-343485551),n=y(n,a),r=y(r,s),o=y(o,f),i=y(i,c)}return Array(n,r,o,i)}function l(e,t,n,r,o,i){return y((u=y(y(t,e),y(r,i)))<<(a=o)|u>>>32-a,n);var u,a}function d(e,t,n,r,o,i,u){return l(t&n|~t&r,e,t,o,i,u)}function h(e,t,n,r,o,i,u){return l(t&r|n&~r,e,t,o,i,u)}function p(e,t,n,r,o,i,u){return l(t^n^r,e,t,o,i,u)}function g(e,t,n,r,o,i,u){return l(n^(t|~r),e,t,o,i,u)}function y(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}b.exports=function(e){return f.hash(e,c,16)}}).call(this,w("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},w("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],7:[function(e,l,t){(function(e,t,n,r,o,i,u,a,s){var f,c;c=function(e){for(var t,n=new Array(e),r=0;r<e;r++)0==(3&r)&&(t=4294967296*Math.random()),n[r]=t>>>((3&r)<<3)&255;return n},l.exports=f||c}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:10}],8:[function(l,d,e){(function(e,t,n,r,o,i,u,a,s){var f=l("./helpers");function c(e,t){e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var n,r,o,i,u,a=Array(80),s=1732584193,f=-271733879,c=-1732584194,l=271733878,d=-1009589776,h=0;h<e.length;h+=16){for(var p=s,g=f,y=c,w=l,b=d,m=0;m<80;m++){a[m]=m<16?e[h+m]:E(a[m-3]^a[m-8]^a[m-14]^a[m-16],1);var v=_(_(E(s,5),(o=f,i=c,u=l,(r=m)<20?o&i|~o&u:!(r<40)&&r<60?o&i|o&u|i&u:o^i^u)),_(_(d,a[m]),(n=m)<20?1518500249:n<40?1859775393:n<60?-1894007588:-899497514)),d=l,l=c,c=E(f,30),f=s,s=v}s=_(s,p),f=_(f,g),c=_(c,y),l=_(l,w),d=_(d,b)}return Array(s,f,c,l,d)}function _(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function E(e,t){return e<<t|e>>>32-t}d.exports=function(e){return f.hash(e,c,20,!0)}}).call(this,l("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},l("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],9:[function(l,d,e){(function(e,t,n,r,o,i,u,a,s){function B(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function L(e,t){return e>>>t|e<<32-t}function f(e,t){var n,r,o,i,u,a,s,f,c,l,d=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),h=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),p=new Array(64);e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var g,y,w,b,m,v,_,E,I=0;I<e.length;I+=16){n=h[0],r=h[1],o=h[2],i=h[3],u=h[4],a=h[5],s=h[6],f=h[7];for(var A=0;A<64;A++)p[A]=A<16?e[A+I]:B(B(B((E=p[A-2],L(E,17)^L(E,19)^E>>>10),p[A-7]),(_=p[A-15],L(_,7)^L(_,18)^_>>>3)),p[A-16]),c=B(B(B(B(f,L(v=u,6)^L(v,11)^L(v,25)),(m=u)&a^~m&s),d[A]),p[A]),l=B(L(b=n,2)^L(b,13)^L(b,22),(g=n)&(y=r)^g&(w=o)^y&w),f=s,s=a,a=u,u=B(i,c),i=o,o=r,r=n,n=B(c,l);h[0]=B(n,h[0]),h[1]=B(r,h[1]),h[2]=B(o,h[2]),h[3]=B(i,h[3]),h[4]=B(u,h[4]),h[5]=B(a,h[5]),h[6]=B(s,h[6]),h[7]=B(f,h[7])}return h}var c=l("./helpers");d.exports=function(e){return c.hash(e,f,32,!0)}}).call(this,l("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},l("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],10:[function(e,c,t){(function(e,t,n,r,o,i,u,a,s){function f(){}(e=c.exports={}).nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;t!==window&&null!==t||"process-tick"!==e.data||(e.stopPropagation(),0<n.length&&n.shift()())},!0),function(e){n.push(e),window.postMessage("process-tick","*")}}return function(e){setTimeout(e,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=f,e.addListener=f,e.once=f,e.off=f,e.removeListener=f,e.removeAllListeners=f,e.emit=f,e.binding=function(e){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(e){throw new Error("process.chdir is not supported")}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/process/browser.js","/node_modules/gulp-browserify/node_modules/process")},{buffer:3,lYpoI2:10}],11:[function(e,t,f){(function(e,t,n,r,o,i,u,a,s){f.read=function(e,t,n,r,o){var i,u,a=8*o-r-1,s=(1<<a)-1,f=s>>1,c=-7,l=n?o-1:0,d=n?-1:1,h=e[t+l];for(l+=d,i=h&(1<<-c)-1,h>>=-c,c+=a;0<c;i=256*i+e[t+l],l+=d,c-=8);for(u=i&(1<<-c)-1,i>>=-c,c+=r;0<c;u=256*u+e[t+l],l+=d,c-=8);if(0===i)i=1-f;else{if(i===s)return u?NaN:1/0*(h?-1:1);u+=Math.pow(2,r),i-=f}return(h?-1:1)*u*Math.pow(2,i-r)},f.write=function(e,t,n,r,o,i){var u,a,s,f=8*i-o-1,c=(1<<f)-1,l=c>>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,u=c):(u=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-u))<1&&(u--,s*=2),2<=(t+=1<=u+l?d/s:d*Math.pow(2,1-l))*s&&(u++,s/=2),c<=u+l?(a=0,u=c):1<=u+l?(a=(t*s-1)*Math.pow(2,o),u+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,o),u=0));8<=o;e[n+h]=255&a,h+=p,a/=256,o-=8);for(u=u<<o|a,f+=o;0<f;e[n+h]=255&u,h+=p,u/=256,f-=8);e[n+h-p]|=128*g}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/ieee754/index.js","/node_modules/ieee754")},{buffer:3,lYpoI2:10}]},{},[1])(1)});
6295
+ }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
6296
+ },{}],129:[function(require,module,exports){
5294
6297
  // shim for using process in browser
5295
6298
  var process = module.exports = {};
5296
6299
 
@@ -5476,8 +6479,8 @@ process.chdir = function (dir) {
5476
6479
  };
5477
6480
  process.umask = function() { return 0; };
5478
6481
 
5479
- },{}],119:[function(require,module,exports){
6482
+ },{}],130:[function(require,module,exports){
5480
6483
  !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.QRCodeStyling=e():t.QRCodeStyling=e()}(self,(function(){return(()=>{var t={192:(t,e)=>{var r,n,o=function(){var t=function(t,e){var r=t,n=a[e],o=null,i=0,u=null,v=[],w={},m=function(t,e){o=function(t){for(var e=new Array(t),r=0;r<t;r+=1){e[r]=new Array(t);for(var n=0;n<t;n+=1)e[r][n]=null}return e}(i=4*r+17),b(0,0),b(i-7,0),b(0,i-7),x(),_(),M(t,e),r>=7&&S(t),null==u&&(u=A(r,n,v)),C(u,e)},b=function(t,e){for(var r=-1;r<=7;r+=1)if(!(t+r<=-1||i<=t+r))for(var n=-1;n<=7;n+=1)e+n<=-1||i<=e+n||(o[t+r][e+n]=0<=r&&r<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=n&&n<=4)},_=function(){for(var t=8;t<i-8;t+=1)null==o[t][6]&&(o[t][6]=t%2==0);for(var e=8;e<i-8;e+=1)null==o[6][e]&&(o[6][e]=e%2==0)},x=function(){for(var t=s.getPatternPosition(r),e=0;e<t.length;e+=1)for(var n=0;n<t.length;n+=1){var i=t[e],a=t[n];if(null==o[i][a])for(var u=-2;u<=2;u+=1)for(var h=-2;h<=2;h+=1)o[i+u][a+h]=-2==u||2==u||-2==h||2==h||0==u&&0==h}},S=function(t){for(var e=s.getBCHTypeNumber(r),n=0;n<18;n+=1){var a=!t&&1==(e>>n&1);o[Math.floor(n/3)][n%3+i-8-3]=a}for(n=0;n<18;n+=1)a=!t&&1==(e>>n&1),o[n%3+i-8-3][Math.floor(n/3)]=a},M=function(t,e){for(var r=n<<3|e,a=s.getBCHTypeInfo(r),u=0;u<15;u+=1){var h=!t&&1==(a>>u&1);u<6?o[u][8]=h:u<8?o[u+1][8]=h:o[i-15+u][8]=h}for(u=0;u<15;u+=1)h=!t&&1==(a>>u&1),u<8?o[8][i-u-1]=h:u<9?o[8][15-u-1+1]=h:o[8][15-u-1]=h;o[i-8][8]=!t},C=function(t,e){for(var r=-1,n=i-1,a=7,u=0,h=s.getMaskFunction(e),c=i-1;c>0;c-=2)for(6==c&&(c-=1);;){for(var l=0;l<2;l+=1)if(null==o[n][c-l]){var d=!1;u<t.length&&(d=1==(t[u]>>>a&1)),h(n,c-l)&&(d=!d),o[n][c-l]=d,-1==(a-=1)&&(u+=1,a=7)}if((n+=r)<0||i<=n){n-=r,r=-r;break}}},A=function(t,e,r){for(var n=c.getRSBlocks(t,e),o=l(),i=0;i<r.length;i+=1){var a=r[i];o.put(a.getMode(),4),o.put(a.getLength(),s.getLengthInBits(a.getMode(),t)),a.write(o)}var u=0;for(i=0;i<n.length;i+=1)u+=n[i].dataCount;if(o.getLengthInBits()>8*u)throw"code length overflow. ("+o.getLengthInBits()+">"+8*u+")";for(o.getLengthInBits()+4<=8*u&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*u||(o.put(236,8),o.getLengthInBits()>=8*u));)o.put(17,8);return function(t,e){for(var r=0,n=0,o=0,i=new Array(e.length),a=new Array(e.length),u=0;u<e.length;u+=1){var c=e[u].dataCount,l=e[u].totalCount-c;n=Math.max(n,c),o=Math.max(o,l),i[u]=new Array(c);for(var d=0;d<i[u].length;d+=1)i[u][d]=255&t.getBuffer()[d+r];r+=c;var f=s.getErrorCorrectPolynomial(l),g=h(i[u],f.getLength()-1).mod(f);for(a[u]=new Array(f.getLength()-1),d=0;d<a[u].length;d+=1){var p=d+g.getLength()-a[u].length;a[u][d]=p>=0?g.getAt(p):0}}var v=0;for(d=0;d<e.length;d+=1)v+=e[d].totalCount;var w=new Array(v),y=0;for(d=0;d<n;d+=1)for(u=0;u<e.length;u+=1)d<i[u].length&&(w[y]=i[u][d],y+=1);for(d=0;d<o;d+=1)for(u=0;u<e.length;u+=1)d<a[u].length&&(w[y]=a[u][d],y+=1);return w}(o,n)};w.addData=function(t,e){var r=null;switch(e=e||"Byte"){case"Numeric":r=d(t);break;case"Alphanumeric":r=f(t);break;case"Byte":r=g(t);break;case"Kanji":r=p(t);break;default:throw"mode:"+e}v.push(r),u=null},w.isDark=function(t,e){if(t<0||i<=t||e<0||i<=e)throw t+","+e;return o[t][e]},w.getModuleCount=function(){return i},w.make=function(){if(r<1){for(var t=1;t<40;t++){for(var e=c.getRSBlocks(t,n),o=l(),i=0;i<v.length;i++){var a=v[i];o.put(a.getMode(),4),o.put(a.getLength(),s.getLengthInBits(a.getMode(),t)),a.write(o)}var u=0;for(i=0;i<e.length;i++)u+=e[i].dataCount;if(o.getLengthInBits()<=8*u)break}r=t}m(!1,function(){for(var t=0,e=0,r=0;r<8;r+=1){m(!0,r);var n=s.getLostPoint(w);(0==r||t>n)&&(t=n,e=r)}return e}())},w.createTableTag=function(t,e){t=t||2;var r="";r+='<table style="',r+=" border-width: 0px; border-style: none;",r+=" border-collapse: collapse;",r+=" padding: 0px; margin: "+(e=void 0===e?4*t:e)+"px;",r+='">',r+="<tbody>";for(var n=0;n<w.getModuleCount();n+=1){r+="<tr>";for(var o=0;o<w.getModuleCount();o+=1)r+='<td style="',r+=" border-width: 0px; border-style: none;",r+=" border-collapse: collapse;",r+=" padding: 0px; margin: 0px;",r+=" width: "+t+"px;",r+=" height: "+t+"px;",r+=" background-color: ",r+=w.isDark(n,o)?"#000000":"#ffffff",r+=";",r+='"/>';r+="</tr>"}return(r+="</tbody>")+"</table>"},w.createSvgTag=function(t,e,r,n){var o={};"object"==typeof arguments[0]&&(t=(o=arguments[0]).cellSize,e=o.margin,r=o.alt,n=o.title),t=t||2,e=void 0===e?4*t:e,(r="string"==typeof r?{text:r}:r||{}).text=r.text||null,r.id=r.text?r.id||"qrcode-description":null,(n="string"==typeof n?{text:n}:n||{}).text=n.text||null,n.id=n.text?n.id||"qrcode-title":null;var i,a,s,u,h=w.getModuleCount()*t+2*e,c="";for(u="l"+t+",0 0,"+t+" -"+t+",0 0,-"+t+"z ",c+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',c+=o.scalable?"":' width="'+h+'px" height="'+h+'px"',c+=' viewBox="0 0 '+h+" "+h+'" ',c+=' preserveAspectRatio="xMinYMin meet"',c+=n.text||r.text?' role="img" aria-labelledby="'+k([n.id,r.id].join(" ").trim())+'"':"",c+=">",c+=n.text?'<title id="'+k(n.id)+'">'+k(n.text)+"</title>":"",c+=r.text?'<description id="'+k(r.id)+'">'+k(r.text)+"</description>":"",c+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',c+='<path d="',a=0;a<w.getModuleCount();a+=1)for(s=a*t+e,i=0;i<w.getModuleCount();i+=1)w.isDark(a,i)&&(c+="M"+(i*t+e)+","+s+u);return(c+='" stroke="transparent" fill="black"/>')+"</svg>"},w.createDataURL=function(t,e){t=t||2,e=void 0===e?4*t:e;var r=w.getModuleCount()*t+2*e,n=e,o=r-e;return y(r,r,(function(e,r){if(n<=e&&e<o&&n<=r&&r<o){var i=Math.floor((e-n)/t),a=Math.floor((r-n)/t);return w.isDark(a,i)?0:1}return 1}))},w.createImgTag=function(t,e,r){t=t||2,e=void 0===e?4*t:e;var n=w.getModuleCount()*t+2*e,o="";return o+="<img",o+=' src="',o+=w.createDataURL(t,e),o+='"',o+=' width="',o+=n,o+='"',o+=' height="',o+=n,o+='"',r&&(o+=' alt="',o+=k(r),o+='"'),o+"/>"};var k=function(t){for(var e="",r=0;r<t.length;r+=1){var n=t.charAt(r);switch(n){case"<":e+="&lt;";break;case">":e+="&gt;";break;case"&":e+="&amp;";break;case'"':e+="&quot;";break;default:e+=n}}return e};return w.createASCII=function(t,e){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var e,r,n,o,i,a=1*w.getModuleCount()+2*t,s=t,u=a-t,h={"██":"█","█ ":"▀"," █":"▄"," ":" "},c={"██":"▀","█ ":"▀"," █":" "," ":" "},l="";for(e=0;e<a;e+=2){for(n=Math.floor((e-s)/1),o=Math.floor((e+1-s)/1),r=0;r<a;r+=1)i="█",s<=r&&r<u&&s<=e&&e<u&&w.isDark(n,Math.floor((r-s)/1))&&(i=" "),s<=r&&r<u&&s<=e+1&&e+1<u&&w.isDark(o,Math.floor((r-s)/1))?i+=" ":i+="█",l+=t<1&&e+1>=u?c[i]:h[i];l+="\n"}return a%2&&t>0?l.substring(0,l.length-a-1)+Array(a+1).join("▀"):l.substring(0,l.length-1)}(e);t-=1,e=void 0===e?2*t:e;var r,n,o,i,a=w.getModuleCount()*t+2*e,s=e,u=a-e,h=Array(t+1).join("██"),c=Array(t+1).join(" "),l="",d="";for(r=0;r<a;r+=1){for(o=Math.floor((r-s)/t),d="",n=0;n<a;n+=1)i=1,s<=n&&n<u&&s<=r&&r<u&&w.isDark(o,Math.floor((n-s)/t))&&(i=0),d+=i?h:c;for(o=0;o<t;o+=1)l+=d+"\n"}return l.substring(0,l.length-1)},w.renderTo2dContext=function(t,e){e=e||2;for(var r=w.getModuleCount(),n=0;n<r;n++)for(var o=0;o<r;o++)t.fillStyle=w.isDark(n,o)?"black":"white",t.fillRect(n*e,o*e,e,e)},w};t.stringToBytes=(t.stringToBytesFuncs={default:function(t){for(var e=[],r=0;r<t.length;r+=1){var n=t.charCodeAt(r);e.push(255&n)}return e}}).default,t.createStringToBytes=function(t,e){var r=function(){for(var r=w(t),n=function(){var t=r.read();if(-1==t)throw"eof";return t},o=0,i={};;){var a=r.read();if(-1==a)break;var s=n(),u=n()<<8|n();i[String.fromCharCode(a<<8|s)]=u,o+=1}if(o!=e)throw o+" != "+e;return i}(),n="?".charCodeAt(0);return function(t){for(var e=[],o=0;o<t.length;o+=1){var i=t.charCodeAt(o);if(i<128)e.push(i);else{var a=r[t.charAt(o)];"number"==typeof a?(255&a)==a?e.push(a):(e.push(a>>>8),e.push(255&a)):e.push(n)}}return e}};var e,r,n,o,i,a={L:1,M:0,Q:3,H:2},s=(e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],r=1335,n=7973,i=function(t){for(var e=0;0!=t;)e+=1,t>>>=1;return e},(o={}).getBCHTypeInfo=function(t){for(var e=t<<10;i(e)-i(r)>=0;)e^=r<<i(e)-i(r);return 21522^(t<<10|e)},o.getBCHTypeNumber=function(t){for(var e=t<<12;i(e)-i(n)>=0;)e^=n<<i(e)-i(n);return t<<12|e},o.getPatternPosition=function(t){return e[t-1]},o.getMaskFunction=function(t){switch(t){case 0:return function(t,e){return(t+e)%2==0};case 1:return function(t,e){return t%2==0};case 2:return function(t,e){return e%3==0};case 3:return function(t,e){return(t+e)%3==0};case 4:return function(t,e){return(Math.floor(t/2)+Math.floor(e/3))%2==0};case 5:return function(t,e){return t*e%2+t*e%3==0};case 6:return function(t,e){return(t*e%2+t*e%3)%2==0};case 7:return function(t,e){return(t*e%3+(t+e)%2)%2==0};default:throw"bad maskPattern:"+t}},o.getErrorCorrectPolynomial=function(t){for(var e=h([1],0),r=0;r<t;r+=1)e=e.multiply(h([1,u.gexp(r)],0));return e},o.getLengthInBits=function(t,e){if(1<=e&&e<10)switch(t){case 1:return 10;case 2:return 9;case 4:case 8:return 8;default:throw"mode:"+t}else if(e<27)switch(t){case 1:return 12;case 2:return 11;case 4:return 16;case 8:return 10;default:throw"mode:"+t}else{if(!(e<41))throw"type:"+e;switch(t){case 1:return 14;case 2:return 13;case 4:return 16;case 8:return 12;default:throw"mode:"+t}}},o.getLostPoint=function(t){for(var e=t.getModuleCount(),r=0,n=0;n<e;n+=1)for(var o=0;o<e;o+=1){for(var i=0,a=t.isDark(n,o),s=-1;s<=1;s+=1)if(!(n+s<0||e<=n+s))for(var u=-1;u<=1;u+=1)o+u<0||e<=o+u||0==s&&0==u||a==t.isDark(n+s,o+u)&&(i+=1);i>5&&(r+=3+i-5)}for(n=0;n<e-1;n+=1)for(o=0;o<e-1;o+=1){var h=0;t.isDark(n,o)&&(h+=1),t.isDark(n+1,o)&&(h+=1),t.isDark(n,o+1)&&(h+=1),t.isDark(n+1,o+1)&&(h+=1),0!=h&&4!=h||(r+=3)}for(n=0;n<e;n+=1)for(o=0;o<e-6;o+=1)t.isDark(n,o)&&!t.isDark(n,o+1)&&t.isDark(n,o+2)&&t.isDark(n,o+3)&&t.isDark(n,o+4)&&!t.isDark(n,o+5)&&t.isDark(n,o+6)&&(r+=40);for(o=0;o<e;o+=1)for(n=0;n<e-6;n+=1)t.isDark(n,o)&&!t.isDark(n+1,o)&&t.isDark(n+2,o)&&t.isDark(n+3,o)&&t.isDark(n+4,o)&&!t.isDark(n+5,o)&&t.isDark(n+6,o)&&(r+=40);var c=0;for(o=0;o<e;o+=1)for(n=0;n<e;n+=1)t.isDark(n,o)&&(c+=1);return r+Math.abs(100*c/e/e-50)/5*10},o),u=function(){for(var t=new Array(256),e=new Array(256),r=0;r<8;r+=1)t[r]=1<<r;for(r=8;r<256;r+=1)t[r]=t[r-4]^t[r-5]^t[r-6]^t[r-8];for(r=0;r<255;r+=1)e[t[r]]=r;return{glog:function(t){if(t<1)throw"glog("+t+")";return e[t]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t[e]}}}();function h(t,e){if(void 0===t.length)throw t.length+"/"+e;var r=function(){for(var r=0;r<t.length&&0==t[r];)r+=1;for(var n=new Array(t.length-r+e),o=0;o<t.length-r;o+=1)n[o]=t[o+r];return n}(),n={getAt:function(t){return r[t]},getLength:function(){return r.length},multiply:function(t){for(var e=new Array(n.getLength()+t.getLength()-1),r=0;r<n.getLength();r+=1)for(var o=0;o<t.getLength();o+=1)e[r+o]^=u.gexp(u.glog(n.getAt(r))+u.glog(t.getAt(o)));return h(e,0)},mod:function(t){if(n.getLength()-t.getLength()<0)return n;for(var e=u.glog(n.getAt(0))-u.glog(t.getAt(0)),r=new Array(n.getLength()),o=0;o<n.getLength();o+=1)r[o]=n.getAt(o);for(o=0;o<t.getLength();o+=1)r[o]^=u.gexp(u.glog(t.getAt(o))+e);return h(r,0).mod(t)}};return n}var c=function(){var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],e=function(t,e){var r={};return r.totalCount=t,r.dataCount=e,r},r={getRSBlocks:function(r,n){var o=function(e,r){switch(r){case a.L:return t[4*(e-1)+0];case a.M:return t[4*(e-1)+1];case a.Q:return t[4*(e-1)+2];case a.H:return t[4*(e-1)+3];default:return}}(r,n);if(void 0===o)throw"bad rs block @ typeNumber:"+r+"/errorCorrectionLevel:"+n;for(var i=o.length/3,s=[],u=0;u<i;u+=1)for(var h=o[3*u+0],c=o[3*u+1],l=o[3*u+2],d=0;d<h;d+=1)s.push(e(c,l));return s}};return r}(),l=function(){var t=[],e=0,r={getBuffer:function(){return t},getAt:function(e){var r=Math.floor(e/8);return 1==(t[r]>>>7-e%8&1)},put:function(t,e){for(var n=0;n<e;n+=1)r.putBit(1==(t>>>e-n-1&1))},getLengthInBits:function(){return e},putBit:function(r){var n=Math.floor(e/8);t.length<=n&&t.push(0),r&&(t[n]|=128>>>e%8),e+=1}};return r},d=function(t){var e=t,r={getMode:function(){return 1},getLength:function(t){return e.length},write:function(t){for(var r=e,o=0;o+2<r.length;)t.put(n(r.substring(o,o+3)),10),o+=3;o<r.length&&(r.length-o==1?t.put(n(r.substring(o,o+1)),4):r.length-o==2&&t.put(n(r.substring(o,o+2)),7))}},n=function(t){for(var e=0,r=0;r<t.length;r+=1)e=10*e+o(t.charAt(r));return e},o=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);throw"illegal char :"+t};return r},f=function(t){var e=t,r={getMode:function(){return 2},getLength:function(t){return e.length},write:function(t){for(var r=e,o=0;o+1<r.length;)t.put(45*n(r.charAt(o))+n(r.charAt(o+1)),11),o+=2;o<r.length&&t.put(n(r.charAt(o)),6)}},n=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);if("A"<=t&&t<="Z")return t.charCodeAt(0)-"A".charCodeAt(0)+10;switch(t){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+t}};return r},g=function(e){var r=t.stringToBytes(e);return{getMode:function(){return 4},getLength:function(t){return r.length},write:function(t){for(var e=0;e<r.length;e+=1)t.put(r[e],8)}}},p=function(e){var r=t.stringToBytesFuncs.SJIS;if(!r)throw"sjis not supported.";!function(t,e){var n=r("友");if(2!=n.length||38726!=(n[0]<<8|n[1]))throw"sjis not supported."}();var n=r(e);return{getMode:function(){return 8},getLength:function(t){return~~(n.length/2)},write:function(t){for(var e=n,r=0;r+1<e.length;){var o=(255&e[r])<<8|255&e[r+1];if(33088<=o&&o<=40956)o-=33088;else{if(!(57408<=o&&o<=60351))throw"illegal char at "+(r+1)+"/"+o;o-=49472}o=192*(o>>>8&255)+(255&o),t.put(o,13),r+=2}if(r<e.length)throw"illegal char at "+(r+1)}}},v=function(){var t=[],e={writeByte:function(e){t.push(255&e)},writeShort:function(t){e.writeByte(t),e.writeByte(t>>>8)},writeBytes:function(t,r,n){r=r||0,n=n||t.length;for(var o=0;o<n;o+=1)e.writeByte(t[o+r])},writeString:function(t){for(var r=0;r<t.length;r+=1)e.writeByte(t.charCodeAt(r))},toByteArray:function(){return t},toString:function(){var e="";e+="[";for(var r=0;r<t.length;r+=1)r>0&&(e+=","),e+=t[r];return e+"]"}};return e},w=function(t){var e=t,r=0,n=0,o=0,i={read:function(){for(;o<8;){if(r>=e.length){if(0==o)return-1;throw"unexpected end of file./"+o}var t=e.charAt(r);if(r+=1,"="==t)return o=0,-1;t.match(/^\s$/)||(n=n<<6|a(t.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i}},a=function(t){if(65<=t&&t<=90)return t-65;if(97<=t&&t<=122)return t-97+26;if(48<=t&&t<=57)return t-48+52;if(43==t)return 62;if(47==t)return 63;throw"c:"+t};return i},y=function(t,e,r){for(var n=function(t,e){var r=t,n=e,o=new Array(t*e),i={setPixel:function(t,e,n){o[e*r+t]=n},write:function(t){t.writeString("GIF87a"),t.writeShort(r),t.writeShort(n),t.writeByte(128),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(255),t.writeByte(255),t.writeByte(255),t.writeString(","),t.writeShort(0),t.writeShort(0),t.writeShort(r),t.writeShort(n),t.writeByte(0);var e=a(2);t.writeByte(2);for(var o=0;e.length-o>255;)t.writeByte(255),t.writeBytes(e,o,255),o+=255;t.writeByte(e.length-o),t.writeBytes(e,o,e.length-o),t.writeByte(0),t.writeString(";")}},a=function(t){for(var e=1<<t,r=1+(1<<t),n=t+1,i=s(),a=0;a<e;a+=1)i.add(String.fromCharCode(a));i.add(String.fromCharCode(e)),i.add(String.fromCharCode(r));var u,h,c,l=v(),d=(u=l,h=0,c=0,{write:function(t,e){if(t>>>e!=0)throw"length over";for(;h+e>=8;)u.writeByte(255&(t<<h|c)),e-=8-h,t>>>=8-h,c=0,h=0;c|=t<<h,h+=e},flush:function(){h>0&&u.writeByte(c)}});d.write(e,n);var f=0,g=String.fromCharCode(o[f]);for(f+=1;f<o.length;){var p=String.fromCharCode(o[f]);f+=1,i.contains(g+p)?g+=p:(d.write(i.indexOf(g),n),i.size()<4095&&(i.size()==1<<n&&(n+=1),i.add(g+p)),g=p)}return d.write(i.indexOf(g),n),d.write(r,n),d.flush(),l.toByteArray()},s=function(){var t={},e=0,r={add:function(n){if(r.contains(n))throw"dup key:"+n;t[n]=e,e+=1},size:function(){return e},indexOf:function(e){return t[e]},contains:function(e){return void 0!==t[e]}};return r};return i}(t,e),o=0;o<e;o+=1)for(var i=0;i<t;i+=1)n.setPixel(i,o,r(i,o));var a=v();n.write(a);for(var s=function(){var t=0,e=0,r=0,n="",o={},i=function(t){n+=String.fromCharCode(a(63&t))},a=function(t){if(t<0);else{if(t<26)return 65+t;if(t<52)return t-26+97;if(t<62)return t-52+48;if(62==t)return 43;if(63==t)return 47}throw"n:"+t};return o.writeByte=function(n){for(t=t<<8|255&n,e+=8,r+=1;e>=6;)i(t>>>e-6),e-=6},o.flush=function(){if(e>0&&(i(t<<6-e),t=0,e=0),r%3!=0)for(var o=3-r%3,a=0;a<o;a+=1)n+="="},o.toString=function(){return n},o}(),u=a.toByteArray(),h=0;h<u.length;h+=1)s.writeByte(u[h]);return s.flush(),"data:image/gif;base64,"+s};return t}();o.stringToBytesFuncs["UTF-8"]=function(t){return function(t){for(var e=[],r=0;r<t.length;r++){var n=t.charCodeAt(r);n<128?e.push(n):n<2048?e.push(192|n>>6,128|63&n):n<55296||n>=57344?e.push(224|n>>12,128|n>>6&63,128|63&n):(r++,n=65536+((1023&n)<<10|1023&t.charCodeAt(r)),e.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return e}(t)},void 0===(n="function"==typeof(r=function(){return o})?r.apply(e,[]):r)||(t.exports=n)},676:(t,e,r)=>{"use strict";r.d(e,{default:()=>q});var n=function(){return(n=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},o=function(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;var n=Array(t),o=0;for(e=0;e<r;e++)for(var i=arguments[e],a=0,s=i.length;a<s;a++,o++)n[o]=i[a];return n},i=function(t){return!!t&&"object"==typeof t&&!Array.isArray(t)};function a(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];if(!e.length)return t;var s=e.shift();return void 0!==s&&i(t)&&i(s)?(t=n({},t),Object.keys(s).forEach((function(e){var r=t[e],n=s[e];Array.isArray(r)&&Array.isArray(n)?t[e]=n:i(r)&&i(n)?t[e]=a(Object.assign({},r),n):t[e]=n})),a.apply(void 0,o([t],e))):t}function s(t,e){var r=document.createElement("a");r.download=e,r.href=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function u(t){return e=this,r=void 0,o=function(){return function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(e){return[2,new Promise((function(e){var r=new XMLHttpRequest;r.onload=function(){var t=new FileReader;t.onloadend=function(){e(t.result)},t.readAsDataURL(r.response)},r.open("GET",t),r.responseType="blob",r.send()}))]}))},new((n=void 0)||(n=Promise))((function(t,i){function a(t){try{u(o.next(t))}catch(t){i(t)}}function s(t){try{u(o.throw(t))}catch(t){i(t)}}function u(e){var r;e.done?t(e.value):(r=e.value,r instanceof n?r:new n((function(t){t(r)}))).then(a,s)}u((o=o.apply(e,r||[])).next())}));var e,r,n,o}const h={L:.07,M:.15,Q:.25,H:.3};var c=function(){return(c=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const l=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case"dots":o=this._drawDot;break;case"classy":o=this._drawClassy;break;case"classy-rounded":o=this._drawClassyRounded;break;case"rounded":o=this._drawRounded;break;case"extra-rounded":o=this._drawExtraRounded;break;case"square":default:o=this._drawSquare}o.call(this,{x:t,y:e,size:r,getNeighbor:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute("transform","rotate("+180*a/Math.PI+","+s+","+u+")")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","circle"),e._element.setAttribute("cx",String(n+r/2)),e._element.setAttribute("cy",String(o+r/2)),e._element.setAttribute("r",String(r/2))}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","rect"),e._element.setAttribute("x",String(n)),e._element.setAttribute("y",String(o)),e._element.setAttribute("width",String(r)),e._element.setAttribute("height",String(r))}}))},t.prototype._basicSideRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","path"),e._element.setAttribute("d","M "+n+" "+o+"v "+r+"h "+r/2+"a "+r/2+" "+r/2+", 0, 0, 0, 0 "+-r)}}))},t.prototype._basicCornerRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","path"),e._element.setAttribute("d","M "+n+" "+o+"v "+r+"h "+r+"v "+-r/2+"a "+r/2+" "+r/2+", 0, 0, 0, "+-r/2+" "+-r/2)}}))},t.prototype._basicCornerExtraRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","path"),e._element.setAttribute("d","M "+n+" "+o+"v "+r+"h "+r+"a "+r+" "+r+", 0, 0, 0, "+-r+" "+-r)}}))},t.prototype._basicCornersRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","path"),e._element.setAttribute("d","M "+n+" "+o+"v "+r/2+"a "+r/2+" "+r/2+", 0, 0, 0, "+r/2+" "+r/2+"h "+r/2+"v "+-r/2+"a "+r/2+" "+r/2+", 0, 0, 0, "+-r/2+" "+-r/2)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size;this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size;this._basicSquare({x:e,y:r,size:n,rotation:0})},t.prototype._drawRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0,h=i+a+s+u;if(0!==h)if(h>2||i&&a||s&&u)this._basicSquare({x:e,y:r,size:n,rotation:0});else{if(2===h){var c=0;return i&&s?c=Math.PI/2:s&&a?c=Math.PI:a&&u&&(c=-Math.PI/2),void this._basicCornerRounded({x:e,y:r,size:n,rotation:c})}if(1===h)return c=0,s?c=Math.PI/2:a?c=Math.PI:u&&(c=-Math.PI/2),void this._basicSideRounded({x:e,y:r,size:n,rotation:c})}else this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawExtraRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0,h=i+a+s+u;if(0!==h)if(h>2||i&&a||s&&u)this._basicSquare({x:e,y:r,size:n,rotation:0});else{if(2===h){var c=0;return i&&s?c=Math.PI/2:s&&a?c=Math.PI:a&&u&&(c=-Math.PI/2),void this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:c})}if(1===h)return c=0,s?c=Math.PI/2:a?c=Math.PI:u&&(c=-Math.PI/2),void this._basicSideRounded({x:e,y:r,size:n,rotation:c})}else this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawClassy=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0;0!==i+a+s+u?i||s?a||u?this._basicSquare({x:e,y:r,size:n,rotation:0}):this._basicCornerRounded({x:e,y:r,size:n,rotation:Math.PI/2}):this._basicCornerRounded({x:e,y:r,size:n,rotation:-Math.PI/2}):this._basicCornersRounded({x:e,y:r,size:n,rotation:Math.PI/2})},t.prototype._drawClassyRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0;0!==i+a+s+u?i||s?a||u?this._basicSquare({x:e,y:r,size:n,rotation:0}):this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:-Math.PI/2}):this._basicCornersRounded({x:e,y:r,size:n,rotation:Math.PI/2})},t}();var d=function(){return(d=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const f=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case"square":o=this._drawSquare;break;case"extra-rounded":o=this._drawExtraRounded;break;case"dot":default:o=this._drawDot}o.call(this,{x:t,y:e,size:r,rotation:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute("transform","rotate("+180*a/Math.PI+","+s+","+u+")")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(d(d({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","path"),e._element.setAttribute("clip-rule","evenodd"),e._element.setAttribute("d","M "+(n+r/2)+" "+o+"a "+r/2+" "+r/2+" 0 1 0 0.1 0zm 0 "+i+"a "+(r/2-i)+" "+(r/2-i)+" 0 1 1 -0.1 0Z")}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(d(d({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","path"),e._element.setAttribute("clip-rule","evenodd"),e._element.setAttribute("d","M "+n+" "+o+"v "+r+"h "+r+"v "+-r+"zM "+(n+i)+" "+(o+i)+"h "+(r-2*i)+"v "+(r-2*i)+"h "+(2*i-r)+"z")}}))},t.prototype._basicExtraRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(d(d({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","path"),e._element.setAttribute("clip-rule","evenodd"),e._element.setAttribute("d","M "+n+" "+(o+2.5*i)+"v "+2*i+"a "+2.5*i+" "+2.5*i+", 0, 0, 0, "+2.5*i+" "+2.5*i+"h "+2*i+"a "+2.5*i+" "+2.5*i+", 0, 0, 0, "+2.5*i+" "+2.5*-i+"v "+-2*i+"a "+2.5*i+" "+2.5*i+", 0, 0, 0, "+2.5*-i+" "+2.5*-i+"h "+-2*i+"a "+2.5*i+" "+2.5*i+", 0, 0, 0, "+2.5*-i+" "+2.5*i+"M "+(n+2.5*i)+" "+(o+i)+"h "+2*i+"a "+1.5*i+" "+1.5*i+", 0, 0, 1, "+1.5*i+" "+1.5*i+"v "+2*i+"a "+1.5*i+" "+1.5*i+", 0, 0, 1, "+1.5*-i+" "+1.5*i+"h "+-2*i+"a "+1.5*i+" "+1.5*i+", 0, 0, 1, "+1.5*-i+" "+1.5*-i+"v "+-2*i+"a "+1.5*i+" "+1.5*i+", 0, 0, 1, "+1.5*i+" "+1.5*-i)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicDot({x:e,y:r,size:n,rotation:o})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicSquare({x:e,y:r,size:n,rotation:o})},t.prototype._drawExtraRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicExtraRounded({x:e,y:r,size:n,rotation:o})},t}();var g=function(){return(g=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const p=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case"square":o=this._drawSquare;break;case"dot":default:o=this._drawDot}o.call(this,{x:t,y:e,size:r,rotation:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute("transform","rotate("+180*a/Math.PI+","+s+","+u+")")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(g(g({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","circle"),e._element.setAttribute("cx",String(n+r/2)),e._element.setAttribute("cy",String(o+r/2)),e._element.setAttribute("r",String(r/2))}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(g(g({},t),{draw:function(){e._element=document.createElementNS("http://www.w3.org/2000/svg","rect"),e._element.setAttribute("x",String(n)),e._element.setAttribute("y",String(o)),e._element.setAttribute("width",String(r)),e._element.setAttribute("height",String(r))}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicDot({x:e,y:r,size:n,rotation:o})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicSquare({x:e,y:r,size:n,rotation:o})},t}(),v="circle";var w=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function s(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}u((n=n.apply(t,e||[])).next())}))},y=function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},m=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],b=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];const _=function(){function t(t){this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("width",String(t.width)),this._element.setAttribute("height",String(t.height)),this._defs=document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this._defs),this._options=t}return Object.defineProperty(t.prototype,"width",{get:function(){return this._options.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"height",{get:function(){return this._options.height},enumerable:!1,configurable:!0}),t.prototype.getElement=function(){return this._element},t.prototype.drawQR=function(t){return w(this,void 0,void 0,(function(){var e,r,n,o,i,a,s,u,c,l,d=this;return y(this,(function(f){switch(f.label){case 0:return e=t.getModuleCount(),r=Math.min(this._options.width,this._options.height)-2*this._options.margin,n=this._options.shape===v?r/Math.sqrt(2):r,o=Math.floor(n/e),i={hideXDots:0,hideYDots:0,width:0,height:0},this._qr=t,this._options.image?[4,this.loadImage()]:[3,2];case 1:if(f.sent(),!this._image)return[2];a=this._options,s=a.imageOptions,u=a.qrOptions,c=s.imageSize*h[u.errorCorrectionLevel],l=Math.floor(c*e*e),i=function(t){var e=t.originalHeight,r=t.originalWidth,n=t.maxHiddenDots,o=t.maxHiddenAxisDots,i=t.dotSize,a={x:0,y:0},s={x:0,y:0};if(e<=0||r<=0||n<=0||i<=0)return{height:0,width:0,hideYDots:0,hideXDots:0};var u=e/r;return a.x=Math.floor(Math.sqrt(n/u)),a.x<=0&&(a.x=1),o&&o<a.x&&(a.x=o),a.x%2==0&&a.x--,s.x=a.x*i,a.y=1+2*Math.ceil((a.x*u-1)/2),s.y=Math.round(s.x*u),(a.y*a.x>n||o&&o<a.y)&&(o&&o<a.y?(a.y=o,a.y%2==0&&a.x--):a.y-=2,s.y=a.y*i,a.x=1+2*Math.ceil((a.y/u-1)/2),s.x=Math.round(s.y/u)),{height:s.y,width:s.x,hideYDots:a.y,hideXDots:a.x}}({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:l,maxHiddenAxisDots:e-14,dotSize:o}),f.label=2;case 2:return this.drawBackground(),this.drawDots((function(t,r){var n,o,a,s,u,h;return!(d._options.imageOptions.hideBackgroundDots&&t>=(e-i.hideXDots)/2&&t<(e+i.hideXDots)/2&&r>=(e-i.hideYDots)/2&&r<(e+i.hideYDots)/2||(null===(n=m[t])||void 0===n?void 0:n[r])||(null===(o=m[t-e+7])||void 0===o?void 0:o[r])||(null===(a=m[t])||void 0===a?void 0:a[r-e+7])||(null===(s=b[t])||void 0===s?void 0:s[r])||(null===(u=b[t-e+7])||void 0===u?void 0:u[r])||(null===(h=b[t])||void 0===h?void 0:h[r-e+7]))})),this.drawCorners(),this._options.image?[4,this.drawImage({width:i.width,height:i.height,count:e,dotSize:o})]:[3,4];case 3:f.sent(),f.label=4;case 4:return[2]}}))}))},t.prototype.drawBackground=function(){var t,e,r,n=this._element,o=this._options;if(n){var i=null===(t=o.backgroundOptions)||void 0===t?void 0:t.gradient,a=null===(e=o.backgroundOptions)||void 0===e?void 0:e.color;if((i||a)&&this._createColor({options:i,color:a,additionalRotation:0,x:0,y:0,height:o.height,width:o.width,name:"background-color"}),null===(r=o.backgroundOptions)||void 0===r?void 0:r.round){var s=Math.min(o.width,o.height),u=document.createElementNS("http://www.w3.org/2000/svg","rect");this._backgroundClipPath=document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._backgroundClipPath.setAttribute("id","clip-path-background-color"),this._defs.appendChild(this._backgroundClipPath),u.setAttribute("x",String((o.width-s)/2)),u.setAttribute("y",String((o.height-s)/2)),u.setAttribute("width",String(s)),u.setAttribute("height",String(s)),u.setAttribute("rx",String(s/2*o.backgroundOptions.round)),this._backgroundClipPath.appendChild(u)}}},t.prototype.drawDots=function(t){var e,r,n=this;if(!this._qr)throw"QR code is not defined";var o=this._options,i=this._qr.getModuleCount();if(i>o.width||i>o.height)throw"The canvas is too small.";var a=Math.min(o.width,o.height)-2*o.margin,s=o.shape===v?a/Math.sqrt(2):a,u=Math.floor(s/i),h=Math.floor((o.width-i*u)/2),c=Math.floor((o.height-i*u)/2),d=new l({svg:this._element,type:o.dotsOptions.type});this._dotsClipPath=document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._dotsClipPath.setAttribute("id","clip-path-dot-color"),this._defs.appendChild(this._dotsClipPath),this._createColor({options:null===(e=o.dotsOptions)||void 0===e?void 0:e.gradient,color:o.dotsOptions.color,additionalRotation:0,x:0,y:0,height:o.height,width:o.width,name:"dot-color"});for(var f=function(e){for(var o=function(o){return t&&!t(e,o)?"continue":(null===(r=g._qr)||void 0===r?void 0:r.isDark(e,o))?(d.draw(h+e*u,c+o*u,u,(function(r,a){return!(e+r<0||o+a<0||e+r>=i||o+a>=i)&&!(t&&!t(e+r,o+a))&&!!n._qr&&n._qr.isDark(e+r,o+a)})),void(d._element&&g._dotsClipPath&&g._dotsClipPath.appendChild(d._element))):"continue"},a=0;a<i;a++)o(a)},g=this,p=0;p<i;p++)f(p);if(o.shape===v){var w=Math.floor((a/u-i)/2),y=i+2*w,m=h-w*u,b=c-w*u,_=[],x=Math.floor(y/2);for(p=0;p<y;p++){_[p]=[];for(var S=0;S<y;S++)p>=w-1&&p<=y-w&&S>=w-1&&S<=y-w||Math.sqrt((p-x)*(p-x)+(S-x)*(S-x))>x?_[p][S]=0:_[p][S]=this._qr.isDark(S-2*w<0?S:S>=i?S-2*w:S-w,p-2*w<0?p:p>=i?p-2*w:p-w)?1:0}var M=function(t){for(var e=function(e){if(!_[t][e])return"continue";d.draw(m+t*u,b+e*u,u,(function(r,n){var o;return!!(null===(o=_[t+r])||void 0===o?void 0:o[e+n])})),d._element&&C._dotsClipPath&&C._dotsClipPath.appendChild(d._element)},r=0;r<y;r++)e(r)},C=this;for(p=0;p<y;p++)M(p)}},t.prototype.drawCorners=function(){var t=this;if(!this._qr)throw"QR code is not defined";var e=this._element,r=this._options;if(!e)throw"Element code is not defined";var n=this._qr.getModuleCount(),o=Math.min(r.width,r.height)-2*r.margin,i=r.shape===v?o/Math.sqrt(2):o,a=Math.floor(i/n),s=7*a,u=3*a,h=Math.floor((r.width-n*a)/2),c=Math.floor((r.height-n*a)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((function(e){var o,i,d,g,v,w,y,_,x,S,M,C,A=e[0],k=e[1],O=e[2],D=h+A*a*(n-7),P=c+k*a*(n-7),z=t._dotsClipPath,B=t._dotsClipPath;if(((null===(o=r.cornersSquareOptions)||void 0===o?void 0:o.gradient)||(null===(i=r.cornersSquareOptions)||void 0===i?void 0:i.color))&&((z=document.createElementNS("http://www.w3.org/2000/svg","clipPath")).setAttribute("id","clip-path-corners-square-color-"+A+"-"+k),t._defs.appendChild(z),t._cornersSquareClipPath=t._cornersDotClipPath=B=z,t._createColor({options:null===(d=r.cornersSquareOptions)||void 0===d?void 0:d.gradient,color:null===(g=r.cornersSquareOptions)||void 0===g?void 0:g.color,additionalRotation:O,x:D,y:P,height:s,width:s,name:"corners-square-color-"+A+"-"+k})),null===(v=r.cornersSquareOptions)||void 0===v?void 0:v.type){var q=new f({svg:t._element,type:r.cornersSquareOptions.type});q.draw(D,P,s,O),q._element&&z&&z.appendChild(q._element)}else for(var I=new l({svg:t._element,type:r.dotsOptions.type}),E=function(t){for(var e=function(e){if(!(null===(w=m[t])||void 0===w?void 0:w[e]))return"continue";I.draw(D+t*a,P+e*a,a,(function(r,n){var o;return!!(null===(o=m[t+r])||void 0===o?void 0:o[e+n])})),I._element&&z&&z.appendChild(I._element)},r=0;r<m[t].length;r++)e(r)},L=0;L<m.length;L++)E(L);if(((null===(y=r.cornersDotOptions)||void 0===y?void 0:y.gradient)||(null===(_=r.cornersDotOptions)||void 0===_?void 0:_.color))&&((B=document.createElementNS("http://www.w3.org/2000/svg","clipPath")).setAttribute("id","clip-path-corners-dot-color-"+A+"-"+k),t._defs.appendChild(B),t._cornersDotClipPath=B,t._createColor({options:null===(x=r.cornersDotOptions)||void 0===x?void 0:x.gradient,color:null===(S=r.cornersDotOptions)||void 0===S?void 0:S.color,additionalRotation:O,x:D+2*a,y:P+2*a,height:u,width:u,name:"corners-dot-color-"+A+"-"+k})),null===(M=r.cornersDotOptions)||void 0===M?void 0:M.type){var R=new p({svg:t._element,type:r.cornersDotOptions.type});R.draw(D+2*a,P+2*a,u,O),R._element&&B&&B.appendChild(R._element)}else{I=new l({svg:t._element,type:r.dotsOptions.type});var N=function(t){for(var e=function(e){if(!(null===(C=b[t])||void 0===C?void 0:C[e]))return"continue";I.draw(D+t*a,P+e*a,a,(function(r,n){var o;return!!(null===(o=b[t+r])||void 0===o?void 0:o[e+n])})),I._element&&B&&B.appendChild(I._element)},r=0;r<b[t].length;r++)e(r)};for(L=0;L<b.length;L++)N(L)}}))},t.prototype.loadImage=function(){var t=this;return new Promise((function(e,r){var n=t._options,o=new Image;if(!n.image)return r("Image is not defined");"string"==typeof n.imageOptions.crossOrigin&&(o.crossOrigin=n.imageOptions.crossOrigin),t._image=o,o.onload=function(){e()},o.src=n.image}))},t.prototype.drawImage=function(t){var e=t.width,r=t.height,n=t.count,o=t.dotSize;return w(this,void 0,void 0,(function(){var t,i,a,s,h,c,l,d,f;return y(this,(function(g){switch(g.label){case 0:return t=this._options,i=Math.floor((t.width-n*o)/2),a=Math.floor((t.height-n*o)/2),s=i+t.imageOptions.margin+(n*o-e)/2,h=a+t.imageOptions.margin+(n*o-r)/2,c=e-2*t.imageOptions.margin,l=r-2*t.imageOptions.margin,(d=document.createElementNS("http://www.w3.org/2000/svg","image")).setAttribute("x",String(s)),d.setAttribute("y",String(h)),d.setAttribute("width",c+"px"),d.setAttribute("height",l+"px"),[4,u(t.image||"")];case 1:return f=g.sent(),d.setAttribute("href",f||""),this._element.appendChild(d),[2]}}))}))},t.prototype._createColor=function(t){var e=t.options,r=t.color,n=t.additionalRotation,o=t.x,i=t.y,a=t.height,s=t.width,u=t.name,h=s>a?s:a,c=document.createElementNS("http://www.w3.org/2000/svg","rect");if(c.setAttribute("x",String(o)),c.setAttribute("y",String(i)),c.setAttribute("height",String(a)),c.setAttribute("width",String(s)),c.setAttribute("clip-path","url('#clip-path-"+u+"')"),e){var l;if("radial"===e.type)(l=document.createElementNS("http://www.w3.org/2000/svg","radialGradient")).setAttribute("id",u),l.setAttribute("gradientUnits","userSpaceOnUse"),l.setAttribute("fx",String(o+s/2)),l.setAttribute("fy",String(i+a/2)),l.setAttribute("cx",String(o+s/2)),l.setAttribute("cy",String(i+a/2)),l.setAttribute("r",String(h/2));else{var d=((e.rotation||0)+n)%(2*Math.PI),f=(d+2*Math.PI)%(2*Math.PI),g=o+s/2,p=i+a/2,v=o+s/2,w=i+a/2;f>=0&&f<=.25*Math.PI||f>1.75*Math.PI&&f<=2*Math.PI?(g-=s/2,p-=a/2*Math.tan(d),v+=s/2,w+=a/2*Math.tan(d)):f>.25*Math.PI&&f<=.75*Math.PI?(p-=a/2,g-=s/2/Math.tan(d),w+=a/2,v+=s/2/Math.tan(d)):f>.75*Math.PI&&f<=1.25*Math.PI?(g+=s/2,p+=a/2*Math.tan(d),v-=s/2,w-=a/2*Math.tan(d)):f>1.25*Math.PI&&f<=1.75*Math.PI&&(p+=a/2,g+=s/2/Math.tan(d),w-=a/2,v-=s/2/Math.tan(d)),(l=document.createElementNS("http://www.w3.org/2000/svg","linearGradient")).setAttribute("id",u),l.setAttribute("gradientUnits","userSpaceOnUse"),l.setAttribute("x1",String(Math.round(g))),l.setAttribute("y1",String(Math.round(p))),l.setAttribute("x2",String(Math.round(v))),l.setAttribute("y2",String(Math.round(w)))}e.colorStops.forEach((function(t){var e=t.offset,r=t.color,n=document.createElementNS("http://www.w3.org/2000/svg","stop");n.setAttribute("offset",100*e+"%"),n.setAttribute("stop-color",r),l.appendChild(n)})),c.setAttribute("fill","url('#"+u+"')"),this._defs.appendChild(l)}else r&&c.setAttribute("fill",r);this._element.appendChild(c)},t}(),x="canvas";for(var S={},M=0;M<=40;M++)S[M]=M;const C={type:x,shape:"square",width:300,height:300,data:"",margin:0,qrOptions:{typeNumber:S[0],mode:void 0,errorCorrectionLevel:"Q"},imageOptions:{hideBackgroundDots:!0,imageSize:.4,crossOrigin:void 0,margin:0},dotsOptions:{type:"square",color:"#000"},backgroundOptions:{round:0,color:"#fff"}};var A=function(){return(A=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function k(t){var e=A({},t);if(!e.colorStops||!e.colorStops.length)throw"Field 'colorStops' is required in gradient";return e.rotation?e.rotation=Number(e.rotation):e.rotation=0,e.colorStops=e.colorStops.map((function(t){return A(A({},t),{offset:Number(t.offset)})})),e}function O(t){var e=A({},t);return e.width=Number(e.width),e.height=Number(e.height),e.margin=Number(e.margin),e.imageOptions=A(A({},e.imageOptions),{hideBackgroundDots:Boolean(e.imageOptions.hideBackgroundDots),imageSize:Number(e.imageOptions.imageSize),margin:Number(e.imageOptions.margin)}),e.margin>Math.min(e.width,e.height)&&(e.margin=Math.min(e.width,e.height)),e.dotsOptions=A({},e.dotsOptions),e.dotsOptions.gradient&&(e.dotsOptions.gradient=k(e.dotsOptions.gradient)),e.cornersSquareOptions&&(e.cornersSquareOptions=A({},e.cornersSquareOptions),e.cornersSquareOptions.gradient&&(e.cornersSquareOptions.gradient=k(e.cornersSquareOptions.gradient))),e.cornersDotOptions&&(e.cornersDotOptions=A({},e.cornersDotOptions),e.cornersDotOptions.gradient&&(e.cornersDotOptions.gradient=k(e.cornersDotOptions.gradient))),e.backgroundOptions&&(e.backgroundOptions=A({},e.backgroundOptions),e.backgroundOptions.gradient&&(e.backgroundOptions.gradient=k(e.backgroundOptions.gradient))),e}var D=r(192),P=r.n(D),z=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function s(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}u((n=n.apply(t,e||[])).next())}))},B=function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};const q=function(){function t(t){this._options=t?O(a(C,t)):C,this.update()}return t._clearContainer=function(t){t&&(t.innerHTML="")},t.prototype._setupSvg=function(){var t=this;if(this._qr){var e=new _(this._options);this._svg=e.getElement(),this._svgDrawingPromise=e.drawQR(this._qr).then((function(){var r;t._svg&&(null===(r=t._extension)||void 0===r||r.call(t,e.getElement(),t._options))}))}},t.prototype._setupCanvas=function(){var t,e=this;this._qr&&(this._canvas=document.createElement("canvas"),this._canvas.width=this._options.width,this._canvas.height=this._options.height,this._setupSvg(),this._canvasDrawingPromise=null===(t=this._svgDrawingPromise)||void 0===t?void 0:t.then((function(){if(e._svg){var t=e._svg,r=(new XMLSerializer).serializeToString(t),n="data:image/svg+xml;base64,"+btoa(r),o=new Image;return new Promise((function(t){o.onload=function(){var r,n;null===(n=null===(r=e._canvas)||void 0===r?void 0:r.getContext("2d"))||void 0===n||n.drawImage(o,0,0),t()},o.src=n}))}})))},t.prototype._getElement=function(t){return void 0===t&&(t="png"),z(this,void 0,void 0,(function(){return B(this,(function(e){switch(e.label){case 0:if(!this._qr)throw"QR code is empty";return"svg"!==t.toLowerCase()?[3,2]:(this._svg&&this._svgDrawingPromise||this._setupSvg(),[4,this._svgDrawingPromise]);case 1:return e.sent(),[2,this._svg];case 2:return this._canvas&&this._canvasDrawingPromise||this._setupCanvas(),[4,this._canvasDrawingPromise];case 3:return e.sent(),[2,this._canvas]}}))}))},t.prototype.update=function(e){t._clearContainer(this._container),this._options=e?O(a(this._options,e)):this._options,this._options.data&&(this._qr=P()(this._options.qrOptions.typeNumber,this._options.qrOptions.errorCorrectionLevel),this._qr.addData(this._options.data,this._options.qrOptions.mode||function(t){switch(!0){case/^[0-9]*$/.test(t):return"Numeric";case/^[0-9A-Z $%*+\-./:]*$/.test(t):return"Alphanumeric";default:return"Byte"}}(this._options.data)),this._qr.make(),this._options.type===x?this._setupCanvas():this._setupSvg(),this.append(this._container))},t.prototype.append=function(t){if(t){if("function"!=typeof t.appendChild)throw"Container should be a single DOM node";this._options.type===x?this._canvas&&t.appendChild(this._canvas):this._svg&&t.appendChild(this._svg),this._container=t}},t.prototype.applyExtension=function(t){if(!t)throw"Extension function should be defined.";this._extension=t,this.update()},t.prototype.deleteExtension=function(){this._extension=void 0,this.update()},t.prototype.getRawData=function(t){return void 0===t&&(t="png"),z(this,void 0,void 0,(function(){var e,r,n;return B(this,(function(o){switch(o.label){case 0:if(!this._qr)throw"QR code is empty";return[4,this._getElement(t)];case 1:return(e=o.sent())?"svg"===t.toLowerCase()?(r=new XMLSerializer,n=r.serializeToString(e),[2,new Blob(['<?xml version="1.0" standalone="no"?>\r\n'+n],{type:"image/svg+xml"})]):[2,new Promise((function(r){return e.toBlob(r,"image/"+t,1)}))]:[2,null]}}))}))},t.prototype.download=function(t){return z(this,void 0,void 0,(function(){var e,r,n,o,i;return B(this,(function(a){switch(a.label){case 0:if(!this._qr)throw"QR code is empty";return e="png",r="qr","string"==typeof t?(e=t,console.warn("Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument")):"object"==typeof t&&null!==t&&(t.name&&(r=t.name),t.extension&&(e=t.extension)),[4,this._getElement(e)];case 1:return(n=a.sent())?("svg"===e.toLowerCase()?(o=new XMLSerializer,i='<?xml version="1.0" standalone="no"?>\r\n'+(i=o.serializeToString(n)),s("data:image/svg+xml;charset=utf-8,"+encodeURIComponent(i),r+".svg")):s(n.toDataURL("image/"+e),r+"."+e),[2]):[2]}}))}))},t}()}},e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}return r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r(676)})().default}));
5481
6484
 
5482
- },{}]},{},[7])(7)
6485
+ },{}]},{},[11])(11)
5483
6486
  });