@plattar/plattar-ar-adapter 1.122.4 → 1.123.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/build/es2015/plattar-ar-adapter.js +2296 -1346
  2. package/build/es2015/plattar-ar-adapter.min.js +1 -1
  3. package/build/es2019/plattar-ar-adapter.js +1218 -560
  4. package/build/es2019/plattar-ar-adapter.min.js +9 -1
  5. package/dist/ar/launcher-ar.d.ts +8 -1
  6. package/dist/ar/launcher-ar.js +12 -0
  7. package/dist/ar/model-ar.d.ts +0 -5
  8. package/dist/ar/model-ar.js +1 -12
  9. package/dist/ar/product-ar.d.ts +1 -6
  10. package/dist/ar/product-ar.js +3 -14
  11. package/dist/ar/raw-ar.d.ts +0 -5
  12. package/dist/ar/raw-ar.js +0 -12
  13. package/dist/ar/scene-ar.d.ts +21 -1
  14. package/dist/ar/scene-ar.js +148 -5
  15. package/dist/embed/controllers/configurator-controller.d.ts +17 -0
  16. package/dist/embed/controllers/configurator-controller.js +178 -0
  17. package/dist/embed/controllers/plattar-controller.d.ts +62 -0
  18. package/dist/embed/controllers/plattar-controller.js +62 -0
  19. package/dist/embed/controllers/product-controller.d.ts +17 -0
  20. package/dist/embed/controllers/product-controller.js +133 -0
  21. package/dist/embed/controllers/viewer-controller.d.ts +17 -0
  22. package/dist/embed/controllers/viewer-controller.js +147 -0
  23. package/dist/embed/controllers/vto-controller.d.ts +17 -0
  24. package/dist/embed/controllers/vto-controller.js +169 -0
  25. package/dist/embed/plattar-embed.d.ts +7 -10
  26. package/dist/embed/plattar-embed.js +51 -346
  27. package/dist/index.d.ts +1 -1
  28. package/dist/index.js +3 -3
  29. package/dist/util/configurator-state.d.ts +26 -0
  30. package/dist/util/configurator-state.js +92 -0
  31. package/dist/version.d.ts +1 -1
  32. package/dist/version.js +1 -1
  33. package/package.json +6 -6
  34. package/dist/ar/configurator-ar.d.ts +0 -9
  35. package/dist/ar/configurator-ar.js +0 -19
@@ -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":9,"../viewers/quicklook-viewer":12,"../viewers/reality-viewer":13,"../viewers/scene-viewer":14,"./launcher-ar":2,"@plattar/plattar-analytics":32,"@plattar/plattar-api":36}],4:[function(require,module,exports){
145
+ },{"../util/util":14,"../viewers/quicklook-viewer":17,"../viewers/reality-viewer":18,"../viewers/scene-viewer":19,"./launcher-ar":1,"@plattar/plattar-analytics":37,"@plattar/plattar-api":41}],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,7 +307,7 @@ class ProductAR extends launcher_ar_1.LauncherAR {
338
307
  }
339
308
  exports.ProductAR = ProductAR;
340
309
 
341
- },{"../util/util":9,"../viewers/quicklook-viewer":12,"../viewers/reality-viewer":13,"../viewers/scene-viewer":14,"./launcher-ar":2,"@plattar/plattar-analytics":32,"@plattar/plattar-api":36}],5:[function(require,module,exports){
310
+ },{"../util/util":14,"../viewers/quicklook-viewer":17,"../viewers/reality-viewer":18,"../viewers/scene-viewer":19,"./launcher-ar":1,"@plattar/plattar-analytics":37,"@plattar/plattar-api":41}],4:[function(require,module,exports){
342
311
  "use strict";
343
312
  var __importDefault = (this && this.__importDefault) || function (mod) {
344
313
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -416,18 +385,6 @@ class RawAR extends launcher_ar_1.LauncherAR {
416
385
  return reject(new Error("RawAR.init() - could not initialise AR correctly, check values"));
417
386
  });
418
387
  }
419
- /**
420
- * Initialise and launch with a single function call. this is mostly for convenience.
421
- * Use .init() and .start() separately for fine-grained control
422
- */
423
- launch() {
424
- return new Promise((accept, reject) => {
425
- this.init().then((value) => {
426
- value.start();
427
- return accept();
428
- }).catch(reject);
429
- });
430
- }
431
388
  /**
432
389
  * Launches the internal AR instance using an appropriate version of AR Viewers
433
390
  */
@@ -450,47 +407,877 @@ class RawAR extends launcher_ar_1.LauncherAR {
450
407
  }
451
408
  exports.RawAR = RawAR;
452
409
 
453
- },{"../util/util":9,"../viewers/quicklook-viewer":12,"../viewers/reality-viewer":13,"../viewers/scene-viewer":14,"./launcher-ar":2}],6:[function(require,module,exports){
410
+ },{"../util/util":14,"../viewers/quicklook-viewer":17,"../viewers/reality-viewer":18,"../viewers/scene-viewer":19,"./launcher-ar":1}],5:[function(require,module,exports){
454
411
  "use strict";
412
+ var __importDefault = (this && this.__importDefault) || function (mod) {
413
+ return (mod && mod.__esModule) ? mod : { "default": mod };
414
+ };
455
415
  Object.defineProperty(exports, "__esModule", { value: true });
456
416
  exports.SceneAR = void 0;
417
+ const plattar_analytics_1 = require("@plattar/plattar-analytics");
418
+ const plattar_api_1 = require("@plattar/plattar-api");
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"));
457
424
  const launcher_ar_1 = require("./launcher-ar");
458
425
  /**
459
426
  * Performs AR functionality related to Plattar Scenes
460
427
  */
461
428
  class SceneAR extends launcher_ar_1.LauncherAR {
429
+ constructor(sceneID = null) {
430
+ super();
431
+ // analytics instance
432
+ this._analytics = null;
433
+ if (!sceneID) {
434
+ throw new Error("SceneAR.constructor(sceneID) - sceneID must be defined");
435
+ }
436
+ this._sceneID = sceneID;
437
+ this._ar = null;
438
+ }
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);
457
+ }
458
+ }
459
+ }
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) {
465
+ return new Promise((accept, reject) => {
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"));
470
+ }
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);
484
+ }).catch(reject);
485
+ });
486
+ }
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
+ */
462
494
  init() {
463
- throw new Error("Method not implemented.");
495
+ return new Promise((accept, reject) => {
496
+ if (!util_1.Util.canAugment()) {
497
+ return reject(new Error("SceneAR.init() - cannot proceed as AR not available in context"));
498
+ }
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
+ }
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);
540
+ }
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);
545
+ });
464
546
  }
465
- launch() {
466
- throw new Error("Method not implemented.");
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":14,"../viewers/quicklook-viewer":17,"../viewers/reality-viewer":18,"../viewers/scene-viewer":19,"./launcher-ar":1,"@plattar/plattar-analytics":37,"@plattar/plattar-api":41,"@plattar/plattar-services":112}],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) {
621
+ viewer.setAttribute("qr-type", opt.qrType);
622
+ }
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);
666
+ }
667
+ if (showAR) {
668
+ viewer.setAttribute("show-ar", showAR);
669
+ }
670
+ viewer.onload = () => {
671
+ return accept(viewer);
672
+ };
673
+ this.append(viewer);
674
+ this._element = viewer;
675
+ this._state = plattar_controller_1.ControllerState.Renderer;
676
+ return;
677
+ }
678
+ return reject(new Error("ConfiguratorController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"));
679
+ });
680
+ }
681
+ initAR() {
682
+ return new Promise((accept, reject) => {
683
+ if (!util_1.Util.canAugment()) {
684
+ return reject(new Error("ConfiguratorController.initAR() - cannot proceed as AR not available in context"));
685
+ }
686
+ // if scene ID is available and the state is a configurator viewer
687
+ // we can use the real-time configurator state to launch the AR view
688
+ const viewer = this.element;
689
+ const sceneID = this.getAttribute("scene-id");
690
+ if (viewer && sceneID) {
691
+ let output = "glb";
692
+ if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
693
+ output = "usdz";
694
+ }
695
+ return viewer.messenger.getARFile(output).then((result) => {
696
+ const rawAR = new raw_ar_1.RawAR(result.filename);
697
+ return rawAR.init().then(accept).catch(reject);
698
+ }).catch(reject);
699
+ }
700
+ const configState = this.getAttribute("config-state");
701
+ // otherwise scene ID is available to the viewer is not launched
702
+ // we can use the static configuration state to launch the AR view
703
+ if (sceneID && configState) {
704
+ try {
705
+ const decodedb64State = atob(configState);
706
+ const state = JSON.parse(decodedb64State);
707
+ if (state.meta) {
708
+ const sceneProductIndex = state.meta.scene_product_index || 0;
709
+ const variationIndex = state.meta.product_variation_index || 1;
710
+ const states = state.states || [];
711
+ if (states.length > 0) {
712
+ const configurator = new plattar_services_1.Configurator();
713
+ states.forEach((productState) => {
714
+ configurator.addSceneProduct(productState[sceneProductIndex], productState[variationIndex]);
715
+ });
716
+ if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
717
+ configurator.output = "usdz";
718
+ }
719
+ if (util_1.Util.canSceneViewer()) {
720
+ configurator.output = "glb";
721
+ }
722
+ const server = this.getAttribute("server") || "production";
723
+ configurator.server = server;
724
+ return configurator.get().then((result) => {
725
+ const rawAR = new raw_ar_1.RawAR(result.filename);
726
+ rawAR.init().then(accept).catch(reject);
727
+ }).catch(reject);
728
+ }
729
+ return reject(new Error("ConfiguratorController.initAR() - invalid config-state does not have any product states"));
730
+ }
731
+ return reject(new Error("ConfiguratorController.initAR() - invalid config-state for configurator"));
732
+ }
733
+ catch (err) {
734
+ return reject(err);
735
+ }
736
+ }
737
+ return reject(new Error("ConfiguratorController.initAR() - minimum required attributes not set, use scene-id as a minimum"));
738
+ });
739
+ }
740
+ removeRenderer() {
741
+ if (this._element) {
742
+ this._element.remove();
743
+ this._element = null;
744
+ return true;
745
+ }
746
+ return false;
747
+ }
748
+ get element() {
749
+ return this._element;
750
+ }
751
+ }
752
+ exports.ConfiguratorController = ConfiguratorController;
753
+
754
+ },{"../../ar/raw-ar":4,"../../util/util":14,"./plattar-controller":7,"@plattar/plattar-api":41,"@plattar/plattar-services":112}],7:[function(require,module,exports){
755
+ "use strict";
756
+ Object.defineProperty(exports, "__esModule", { value: true });
757
+ exports.PlattarController = exports.ControllerState = void 0;
758
+ var ControllerState;
759
+ (function (ControllerState) {
760
+ ControllerState[ControllerState["None"] = 0] = "None";
761
+ ControllerState[ControllerState["Renderer"] = 1] = "Renderer";
762
+ ControllerState[ControllerState["QRCode"] = 2] = "QRCode";
763
+ })(ControllerState = exports.ControllerState || (exports.ControllerState = {}));
764
+ /**
765
+ * All Plattar Controllers are derived from the same interface
766
+ */
767
+ class PlattarController {
768
+ constructor(parent) {
769
+ this._parent = parent;
770
+ }
771
+ /**
772
+ * Default QR Code rendering options
773
+ */
774
+ static get DEFAULT_QR_OPTIONS() {
775
+ return {
776
+ color: "#101721",
777
+ qrType: "default",
778
+ margin: 0
779
+ };
780
+ }
781
+ ;
782
+ /**
783
+ * Initialise and start AR mode if available
784
+ */
785
+ startAR() {
786
+ return new Promise((accept, reject) => {
787
+ this.initAR().then((launcher) => {
788
+ launcher.start();
789
+ accept();
790
+ }).catch(reject);
791
+ });
792
+ }
793
+ /**
794
+ * Returns the Parent Instance
795
+ */
796
+ get parent() {
797
+ return this._parent;
798
+ }
799
+ /**
800
+ * Returns the specified attribute from the parent
801
+ * @param attribute - The name of thhe attribute
802
+ * @returns - The attribute value or null
803
+ */
804
+ getAttribute(attribute) {
805
+ return this.parent ? (this.parent.hasAttribute(attribute) ? this.parent.getAttribute(attribute) : null) : null;
806
+ }
807
+ /**
808
+ * Appends the provided element into the shadow-root of the parent element
809
+ * @param element - The element to append
810
+ */
811
+ append(element) {
812
+ const shadow = this.parent.shadowRoot || this.parent.attachShadow({ mode: 'open' });
813
+ shadow.append(element);
814
+ }
815
+ }
816
+ exports.PlattarController = PlattarController;
817
+
818
+ },{}],8:[function(require,module,exports){
819
+ "use strict";
820
+ Object.defineProperty(exports, "__esModule", { value: true });
821
+ exports.ProductController = void 0;
822
+ const plattar_api_1 = require("@plattar/plattar-api");
823
+ const product_ar_1 = require("../../ar/product-ar");
824
+ const util_1 = require("../../util/util");
825
+ const plattar_controller_1 = require("./plattar-controller");
826
+ /**
827
+ * Manages an instance of the <plattar-product> HTML Element
828
+ */
829
+ class ProductController extends plattar_controller_1.PlattarController {
830
+ constructor(parent) {
831
+ super(parent);
832
+ this._state = plattar_controller_1.ControllerState.None;
833
+ this._element = null;
834
+ this._prevQROpt = null;
835
+ }
836
+ onAttributesUpdated() {
837
+ const state = this._state;
838
+ // re-render the QR Code when attributes have changed
839
+ if (state === plattar_controller_1.ControllerState.QRCode) {
840
+ this.startQRCode(this._prevQROpt);
841
+ return;
842
+ }
843
+ // use the messenger function to change variation when attributes have changed
844
+ if (state === plattar_controller_1.ControllerState.Renderer) {
845
+ const viewer = this._element;
846
+ if (viewer) {
847
+ const variationID = this.getAttribute("variation-id");
848
+ viewer.messenger.selectVariation(variationID);
849
+ }
850
+ return;
851
+ }
852
+ }
853
+ startQRCode(options) {
854
+ return new Promise((accept, reject) => {
855
+ // remove the old renderer instance if any
856
+ this.removeRenderer();
857
+ const productID = this.getAttribute("product-id");
858
+ if (productID) {
859
+ const opt = options || plattar_controller_1.PlattarController.DEFAULT_QR_OPTIONS;
860
+ const viewer = document.createElement("plattar-qrcode");
861
+ // required attributes with defaults for plattar-viewer node
862
+ const width = this.getAttribute("width") || "500px";
863
+ const height = this.getAttribute("height") || "500px";
864
+ viewer.setAttribute("width", width);
865
+ viewer.setAttribute("height", height);
866
+ if (opt.color) {
867
+ viewer.setAttribute("color", opt.color);
868
+ }
869
+ if (opt.margin) {
870
+ viewer.setAttribute("margin", "" + opt.margin);
871
+ }
872
+ if (opt.qrType) {
873
+ viewer.setAttribute("qr-type", opt.qrType);
874
+ }
875
+ // optional attributes
876
+ const variationID = this.getAttribute("variation-id");
877
+ let dst = plattar_api_1.Server.location().base + "renderer/product.html?product_id=" + productID;
878
+ if (variationID) {
879
+ dst += "&variation_id=" + variationID;
880
+ }
881
+ viewer.setAttribute("url", opt.url || dst);
882
+ viewer.onload = () => {
883
+ return accept(viewer);
884
+ };
885
+ this.append(viewer);
886
+ this._element = viewer;
887
+ this._state = plattar_controller_1.ControllerState.QRCode;
888
+ this._prevQROpt = opt;
889
+ return;
890
+ }
891
+ return reject(new Error("ProductController.startQRCode() - minimum required attributes not set, use product-id as a minimum"));
892
+ });
893
+ }
894
+ startRenderer() {
895
+ return new Promise((accept, reject) => {
896
+ // remove the old renderer instance if any
897
+ this.removeRenderer();
898
+ const productID = this.getAttribute("product-id");
899
+ if (productID) {
900
+ // required attributes with defaults for plattar-product node
901
+ const width = this.getAttribute("width") || "500px";
902
+ const height = this.getAttribute("height") || "500px";
903
+ const server = this.getAttribute("server") || "production";
904
+ const viewer = document.createElement("plattar-product");
905
+ viewer.setAttribute("width", width);
906
+ viewer.setAttribute("height", height);
907
+ viewer.setAttribute("server", server);
908
+ viewer.setAttribute("product-id", productID);
909
+ // optional attributes
910
+ const variationID = this.getAttribute("variation-id");
911
+ if (variationID) {
912
+ viewer.setAttribute("variation-id", variationID);
913
+ }
914
+ viewer.onload = () => {
915
+ return accept(viewer);
916
+ };
917
+ this.append(viewer);
918
+ this._element = viewer;
919
+ this._state = plattar_controller_1.ControllerState.Renderer;
920
+ return;
921
+ }
922
+ return reject(new Error("ProductController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"));
923
+ });
924
+ }
925
+ initAR() {
926
+ return new Promise((accept, reject) => {
927
+ if (!util_1.Util.canAugment()) {
928
+ return reject(new Error("ProductController.initAR() - cannot proceed as AR not available in context"));
929
+ }
930
+ const productID = this.getAttribute("product-id");
931
+ if (productID) {
932
+ const variationID = this.getAttribute("variation-id");
933
+ const product = new product_ar_1.ProductAR(productID, variationID);
934
+ return product.init().then(accept).catch(reject);
935
+ }
936
+ return reject(new Error("ProductController.initAR() - minimum required attributes not set, use product-id as a minimum"));
937
+ });
938
+ }
939
+ removeRenderer() {
940
+ if (this._element) {
941
+ this._element.remove();
942
+ this._element = null;
943
+ return true;
944
+ }
945
+ return false;
946
+ }
947
+ get element() {
948
+ return this._element;
949
+ }
950
+ }
951
+ exports.ProductController = ProductController;
952
+
953
+ },{"../../ar/product-ar":3,"../../util/util":14,"./plattar-controller":7,"@plattar/plattar-api":41}],9:[function(require,module,exports){
954
+ "use strict";
955
+ Object.defineProperty(exports, "__esModule", { value: true });
956
+ exports.ViewerController = void 0;
957
+ const plattar_api_1 = require("@plattar/plattar-api");
958
+ const product_ar_1 = require("../../ar/product-ar");
959
+ const util_1 = require("../../util/util");
960
+ const plattar_controller_1 = require("./plattar-controller");
961
+ /**
962
+ * Manages an instance of the <plattar-viewer> HTML Element
963
+ */
964
+ class ViewerController extends plattar_controller_1.PlattarController {
965
+ constructor(parent) {
966
+ super(parent);
967
+ this._state = plattar_controller_1.ControllerState.None;
968
+ this._element = null;
969
+ this._prevQROpt = null;
970
+ }
971
+ onAttributesUpdated() {
972
+ const state = this._state;
973
+ // re-render the QR Code when attributes have changed
974
+ if (state === plattar_controller_1.ControllerState.QRCode) {
975
+ this.startQRCode(this._prevQROpt);
976
+ return;
977
+ }
978
+ // use the messenger function to change variation when attributes have changed
979
+ if (state === plattar_controller_1.ControllerState.Renderer) {
980
+ const viewer = this._element;
981
+ if (viewer) {
982
+ const productID = this.getAttribute("product-id");
983
+ const variationID = this.getAttribute("variation-id");
984
+ viewer.messenger.selectVariation(productID, variationID);
985
+ }
986
+ return;
987
+ }
988
+ }
989
+ startQRCode(options) {
990
+ return new Promise((accept, reject) => {
991
+ // remove the old renderer instance if any
992
+ this.removeRenderer();
993
+ const sceneID = this.getAttribute("scene-id");
994
+ if (sceneID) {
995
+ const opt = options || plattar_controller_1.PlattarController.DEFAULT_QR_OPTIONS;
996
+ const viewer = document.createElement("plattar-qrcode");
997
+ // required attributes with defaults for plattar-viewer node
998
+ const width = this.getAttribute("width") || "500px";
999
+ const height = this.getAttribute("height") || "500px";
1000
+ viewer.setAttribute("width", width);
1001
+ viewer.setAttribute("height", height);
1002
+ if (opt.color) {
1003
+ viewer.setAttribute("color", opt.color);
1004
+ }
1005
+ if (opt.margin) {
1006
+ viewer.setAttribute("margin", "" + opt.margin);
1007
+ }
1008
+ if (opt.qrType) {
1009
+ viewer.setAttribute("qr-type", opt.qrType);
1010
+ }
1011
+ let dst = plattar_api_1.Server.location().base + "renderer/viewer.html?scene_id=" + sceneID;
1012
+ // optional attributes
1013
+ const productID = this.getAttribute("product-id");
1014
+ const variationID = this.getAttribute("variation-id");
1015
+ if (productID) {
1016
+ dst += "&productId=" + productID;
1017
+ }
1018
+ if (variationID) {
1019
+ dst += "&variationId=" + variationID;
1020
+ }
1021
+ viewer.setAttribute("url", opt.url || dst);
1022
+ viewer.onload = () => {
1023
+ return accept(viewer);
1024
+ };
1025
+ this.append(viewer);
1026
+ this._element = viewer;
1027
+ this._state = plattar_controller_1.ControllerState.QRCode;
1028
+ this._prevQROpt = opt;
1029
+ return;
1030
+ }
1031
+ return reject(new Error("ViewerController.startQRCode() - minimum required attributes not set, use scene-id as a minimum"));
1032
+ });
1033
+ }
1034
+ startRenderer() {
1035
+ return new Promise((accept, reject) => {
1036
+ // remove the old renderer instance if any
1037
+ this.removeRenderer();
1038
+ const sceneID = this.getAttribute("scene-id");
1039
+ if (sceneID) {
1040
+ // required attributes with defaults for plattar-viewer node
1041
+ const width = this.getAttribute("width") || "500px";
1042
+ const height = this.getAttribute("height") || "500px";
1043
+ const server = this.getAttribute("server") || "production";
1044
+ const viewer = document.createElement("plattar-viewer");
1045
+ viewer.setAttribute("width", width);
1046
+ viewer.setAttribute("height", height);
1047
+ viewer.setAttribute("server", server);
1048
+ viewer.setAttribute("scene-id", sceneID);
1049
+ // optional attributes
1050
+ const productID = this.getAttribute("product-id");
1051
+ const variationID = this.getAttribute("variation-id");
1052
+ if (productID) {
1053
+ viewer.setAttribute("product-id", productID);
1054
+ }
1055
+ if (variationID) {
1056
+ viewer.setAttribute("variation-id", variationID);
1057
+ }
1058
+ viewer.onload = () => {
1059
+ return accept(viewer);
1060
+ };
1061
+ this.append(viewer);
1062
+ this._element = viewer;
1063
+ this._state = plattar_controller_1.ControllerState.Renderer;
1064
+ return;
1065
+ }
1066
+ return reject(new Error("ViewerController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"));
1067
+ });
1068
+ }
1069
+ initAR() {
1070
+ return new Promise((accept, reject) => {
1071
+ if (!util_1.Util.canAugment()) {
1072
+ return reject(new Error("ViewerController.initAR() - cannot proceed as AR not available in context"));
1073
+ }
1074
+ const productID = this.getAttribute("product-id");
1075
+ if (productID) {
1076
+ const variationID = this.getAttribute("variation-id");
1077
+ const product = new product_ar_1.ProductAR(productID, variationID);
1078
+ return product.init().then(accept).catch(reject);
1079
+ }
1080
+ const sceneID = this.getAttribute("scene-id");
1081
+ // otherwise, scene was set so use SceneAR
1082
+ if (sceneID) {
1083
+ return reject(new Error("ViewerController.initAR() - AR mode for scene-id not yet supported, use product-id"));
1084
+ }
1085
+ return reject(new Error("ViewerController.initAR() - minimum required attributes not set, use scene-id or product-id as a minimum"));
1086
+ });
1087
+ }
1088
+ removeRenderer() {
1089
+ if (this._element) {
1090
+ this._element.remove();
1091
+ this._element = null;
1092
+ return true;
1093
+ }
1094
+ return false;
1095
+ }
1096
+ get element() {
1097
+ return this._element;
1098
+ }
1099
+ }
1100
+ exports.ViewerController = ViewerController;
1101
+
1102
+ },{"../../ar/product-ar":3,"../../util/util":14,"./plattar-controller":7,"@plattar/plattar-api":41}],10:[function(require,module,exports){
1103
+ "use strict";
1104
+ Object.defineProperty(exports, "__esModule", { value: true });
1105
+ exports.VTOController = void 0;
1106
+ const plattar_api_1 = require("@plattar/plattar-api");
1107
+ const plattar_services_1 = require("@plattar/plattar-services");
1108
+ const __1 = require("../..");
1109
+ const raw_ar_1 = require("../../ar/raw-ar");
1110
+ const util_1 = require("../../util/util");
1111
+ const plattar_controller_1 = require("./plattar-controller");
1112
+ /**
1113
+ * Manages an instance of the <plattar-configurator> HTML Element
1114
+ */
1115
+ class VTOController extends plattar_controller_1.PlattarController {
1116
+ constructor(parent) {
1117
+ super(parent);
1118
+ this._state = plattar_controller_1.ControllerState.None;
1119
+ this._element = null;
1120
+ this._prevQROpt = null;
1121
+ }
1122
+ onAttributesUpdated() {
1123
+ const state = this._state;
1124
+ // re-render the QR Code when attributes have changed
1125
+ if (state === plattar_controller_1.ControllerState.QRCode) {
1126
+ this.startQRCode(this._prevQROpt);
1127
+ return;
1128
+ }
1129
+ }
1130
+ startQRCode(options) {
1131
+ return new Promise((accept, reject) => {
1132
+ // remove the old renderer instance if any
1133
+ this.removeRenderer();
1134
+ const sceneID = this.getAttribute("scene-id");
1135
+ if (sceneID) {
1136
+ const opt = options || plattar_controller_1.PlattarController.DEFAULT_QR_OPTIONS;
1137
+ const viewer = document.createElement("plattar-qrcode");
1138
+ // required attributes with defaults for plattar-viewer node
1139
+ const width = this.getAttribute("width") || "500px";
1140
+ const height = this.getAttribute("height") || "500px";
1141
+ viewer.setAttribute("width", width);
1142
+ viewer.setAttribute("height", height);
1143
+ if (opt.color) {
1144
+ viewer.setAttribute("color", opt.color);
1145
+ }
1146
+ if (opt.margin) {
1147
+ viewer.setAttribute("margin", "" + opt.margin);
1148
+ }
1149
+ if (opt.qrType) {
1150
+ viewer.setAttribute("qr-type", opt.qrType);
1151
+ }
1152
+ let dst = plattar_api_1.Server.location().base + "renderer/facear.html?scene_id=" + sceneID;
1153
+ // optional attributes
1154
+ const configState = this.getAttribute("config-state");
1155
+ const showAR = this.getAttribute("show-ar");
1156
+ if (configState) {
1157
+ dst += "&config_state=" + configState;
1158
+ }
1159
+ if (showAR) {
1160
+ dst += "&show_ar=" + showAR;
1161
+ }
1162
+ viewer.setAttribute("url", opt.url || dst);
1163
+ viewer.onload = () => {
1164
+ return accept(viewer);
1165
+ };
1166
+ this.append(viewer);
1167
+ this._element = viewer;
1168
+ this._state = plattar_controller_1.ControllerState.QRCode;
1169
+ this._prevQROpt = opt;
1170
+ return;
1171
+ }
1172
+ return reject(new Error("VTOController.startQRCode() - minimum required attributes not set, use scene-id as a minimum"));
1173
+ });
1174
+ }
1175
+ startRenderer() {
1176
+ return new Promise((accept, reject) => {
1177
+ // remove the old renderer instance if any
1178
+ this.removeRenderer();
1179
+ const sceneID = this.getAttribute("scene-id");
1180
+ if (sceneID) {
1181
+ // required attributes with defaults for plattar-facear node
1182
+ const width = this.getAttribute("width") || "500px";
1183
+ const height = this.getAttribute("height") || "500px";
1184
+ const server = this.getAttribute("server") || "production";
1185
+ const viewer = document.createElement("plattar-facear");
1186
+ viewer.setAttribute("width", width);
1187
+ viewer.setAttribute("height", height);
1188
+ viewer.setAttribute("server", server);
1189
+ viewer.setAttribute("scene-id", sceneID);
1190
+ // optional attributes
1191
+ const configState = this.getAttribute("config-state");
1192
+ const showAR = this.getAttribute("show-ar");
1193
+ if (configState) {
1194
+ viewer.setAttribute("config-state", configState);
1195
+ }
1196
+ if (showAR) {
1197
+ viewer.setAttribute("show-ar", showAR);
1198
+ }
1199
+ viewer.onload = () => {
1200
+ return accept(viewer);
1201
+ };
1202
+ this.append(viewer);
1203
+ this._element = viewer;
1204
+ this._state = plattar_controller_1.ControllerState.Renderer;
1205
+ return;
1206
+ }
1207
+ return reject(new Error("VTOController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"));
1208
+ });
1209
+ }
1210
+ initAR() {
1211
+ return new Promise((accept, reject) => {
1212
+ if (!util_1.Util.canAugment()) {
1213
+ return reject(new Error("VTOController.initAR() - cannot proceed as VTO AR not available in context"));
1214
+ }
1215
+ if (!(util_1.Util.isSafari() || util_1.Util.isChromeOnIOS())) {
1216
+ return reject(new Error("VTOController.initAR() - cannot proceed as VTO AR only available on IOS Mobile devices"));
1217
+ }
1218
+ // if scene ID is available and the state is a configurator viewer
1219
+ // we can use the real-time configurator state to launch the AR view
1220
+ const viewer = this.element;
1221
+ const sceneID = this.getAttribute("scene-id");
1222
+ if (viewer && sceneID) {
1223
+ return viewer.messenger.getARFile("vto").then((result) => {
1224
+ const rawAR = new raw_ar_1.RawAR(result.filename);
1225
+ return rawAR.init().then(accept).catch(reject);
1226
+ }).catch(reject);
1227
+ }
1228
+ const configState = this.getAttribute("config-state");
1229
+ // otherwise scene ID is available to the viewer is not launched
1230
+ // we can use the static configuration state to launch the AR view
1231
+ if (sceneID && configState) {
1232
+ const state = __1.ConfiguratorState.decode(configState);
1233
+ if (state.length > 0) {
1234
+ const server = this.getAttribute("server") || "production";
1235
+ const configurator = new plattar_services_1.Configurator();
1236
+ configurator.server = server;
1237
+ configurator.output = "vto";
1238
+ state.forEach((productState) => {
1239
+ if (productState.meta_data.augment === true) {
1240
+ configurator.addSceneProduct(productState.scene_product_id, productState.product_variation_id);
1241
+ }
1242
+ });
1243
+ return configurator.get().then((result) => {
1244
+ const rawAR = new raw_ar_1.RawAR(result.filename);
1245
+ rawAR.init().then(accept).catch(reject);
1246
+ }).catch(reject);
1247
+ }
1248
+ return reject(new Error("VTOController.initAR() - invalid config-state does not have any product states"));
1249
+ }
1250
+ // otherwise no config-state or viewer is active
1251
+ // fallback to using default SceneAR implementation
1252
+ if (sceneID) {
1253
+ const sceneAR = new __1.SceneAR(sceneID);
1254
+ return sceneAR.init().then(accept).catch(reject);
1255
+ }
1256
+ return reject(new Error("VTOController.initAR() - minimum required attributes not set, use scene-id as a minimum"));
1257
+ });
1258
+ }
1259
+ removeRenderer() {
1260
+ if (this._element) {
1261
+ this._element.remove();
1262
+ this._element = null;
1263
+ return true;
1264
+ }
1265
+ return false;
467
1266
  }
468
- start() {
469
- throw new Error("Method not implemented.");
1267
+ get element() {
1268
+ return this._element;
470
1269
  }
471
1270
  }
472
- exports.SceneAR = SceneAR;
1271
+ exports.VTOController = VTOController;
473
1272
 
474
- },{"./launcher-ar":2}],7:[function(require,module,exports){
1273
+ },{"../..":12,"../../ar/raw-ar":4,"../../util/util":14,"./plattar-controller":7,"@plattar/plattar-api":41,"@plattar/plattar-services":112}],11:[function(require,module,exports){
475
1274
  "use strict";
476
1275
  Object.defineProperty(exports, "__esModule", { value: true });
477
1276
  const plattar_api_1 = require("@plattar/plattar-api");
478
- const product_ar_1 = require("../ar/product-ar");
479
- const plattar_services_1 = require("@plattar/plattar-services");
480
- const util_1 = require("../util/util");
481
- const raw_ar_1 = require("../ar/raw-ar");
482
- /**
483
- * This tracks the current state of the Embed
484
- */
485
- var EmbedState;
486
- (function (EmbedState) {
487
- EmbedState[EmbedState["None"] = 0] = "None";
488
- EmbedState[EmbedState["SceneViewer"] = 1] = "SceneViewer";
489
- EmbedState[EmbedState["ProductViewer"] = 2] = "ProductViewer";
490
- EmbedState[EmbedState["ConfiguratorViewer"] = 3] = "ConfiguratorViewer";
491
- EmbedState[EmbedState["ProductAR"] = 4] = "ProductAR";
492
- EmbedState[EmbedState["QRCode"] = 5] = "QRCode";
493
- })(EmbedState || (EmbedState = {}));
1277
+ const product_controller_1 = require("./controllers/product-controller");
1278
+ const viewer_controller_1 = require("./controllers/viewer-controller");
1279
+ const configurator_controller_1 = require("./controllers/configurator-controller");
1280
+ const vto_controller_1 = require("./controllers/vto-controller");
494
1281
  /**
495
1282
  * This tracks the current embed type
496
1283
  */
@@ -498,6 +1285,7 @@ var EmbedType;
498
1285
  (function (EmbedType) {
499
1286
  EmbedType[EmbedType["Viewer"] = 0] = "Viewer";
500
1287
  EmbedType[EmbedType["Configurator"] = 1] = "Configurator";
1288
+ EmbedType[EmbedType["VTO"] = 2] = "VTO";
501
1289
  })(EmbedType || (EmbedType = {}));
502
1290
  /**
503
1291
  * This is the primary <plattar-embed /> node that allows easy embedding
@@ -506,26 +1294,12 @@ var EmbedType;
506
1294
  class PlattarEmbed extends HTMLElement {
507
1295
  constructor() {
508
1296
  super();
509
- // this is the current state of the embed, none by default
510
- this._currentState = EmbedState.None;
511
1297
  // this is the current embed type, viewer by default
512
1298
  this._currentType = EmbedType.Viewer;
513
- this._qrCodeOptions = {
514
- color: "#101721",
515
- qrType: "default",
516
- margin: 0
517
- };
518
- this._sceneID = null;
519
- this._productID = null;
520
- this._variationID = null;
521
- this._isReady = false;
522
- this._width = "500px";
523
- this._height = "500px";
524
- this._server = "production";
525
- this._viewer = null;
1299
+ this._controller = null;
526
1300
  }
527
1301
  get viewer() {
528
- return this._viewer;
1302
+ return this._controller ? this._controller.element : null;
529
1303
  }
530
1304
  connectedCallback() {
531
1305
  const embedType = this.hasAttribute("embed-type") ? this.getAttribute("embed-type") : "viewer";
@@ -534,6 +1308,9 @@ class PlattarEmbed extends HTMLElement {
534
1308
  case "viewer":
535
1309
  this._currentType = EmbedType.Viewer;
536
1310
  break;
1311
+ case "vto":
1312
+ this._currentType = EmbedType.VTO;
1313
+ break;
537
1314
  case "configurator":
538
1315
  this._currentType = EmbedType.Configurator;
539
1316
  break;
@@ -544,26 +1321,7 @@ class PlattarEmbed extends HTMLElement {
544
1321
  const observer = new MutationObserver((mutations) => {
545
1322
  mutations.forEach((mutation) => {
546
1323
  if (mutation.type === "attributes") {
547
- const sceneID = this.hasAttribute("scene-id") ? this.getAttribute("scene-id") : null;
548
- const productID = this.hasAttribute("product-id") ? this.getAttribute("product-id") : null;
549
- const variationID = this.hasAttribute("variation-id") ? this.getAttribute("variation-id") : null;
550
- let updated = false;
551
- if (sceneID !== this._sceneID) {
552
- this._sceneID = sceneID;
553
- updated = true;
554
- }
555
- if (productID !== this._productID) {
556
- this._productID = productID;
557
- updated = true;
558
- }
559
- if (variationID !== this._variationID) {
560
- this._variationID = variationID;
561
- updated = true;
562
- }
563
- if (updated) {
564
- // re-render based on internal state
565
- this._OnAttributesUpdated();
566
- }
1324
+ this._OnAttributesUpdated();
567
1325
  }
568
1326
  });
569
1327
  });
@@ -572,21 +1330,24 @@ class PlattarEmbed extends HTMLElement {
572
1330
  });
573
1331
  const server = this.hasAttribute("server") ? this.getAttribute("server") : "production";
574
1332
  plattar_api_1.Server.create(plattar_api_1.Server.match(server || "production"));
575
- if (server) {
576
- this._server = server;
1333
+ const sceneID = this.hasAttribute("scene-id") ? this.getAttribute("scene-id") : null;
1334
+ const productID = this.hasAttribute("product-id") ? this.getAttribute("product-id") : null;
1335
+ // decide which controller to initialise
1336
+ if (this._currentType === EmbedType.Viewer) {
1337
+ // initialise product if scene-id is missing but product-id is defined
1338
+ if (!sceneID && productID) {
1339
+ this._controller = new product_controller_1.ProductController(this);
1340
+ }
1341
+ else if (sceneID) {
1342
+ this._controller = new viewer_controller_1.ViewerController(this);
1343
+ }
577
1344
  }
578
- this._sceneID = this.hasAttribute("scene-id") ? this.getAttribute("scene-id") : null;
579
- this._productID = this.hasAttribute("product-id") ? this.getAttribute("product-id") : null;
580
- this._variationID = this.hasAttribute("variation-id") ? this.getAttribute("variation-id") : null;
581
- const width = this.hasAttribute("width") ? this.getAttribute("width") : "500px";
582
- const height = this.hasAttribute("height") ? this.getAttribute("height") : "500px";
583
- if (width) {
584
- this._width = width;
1345
+ else if (this._currentType === EmbedType.Configurator) {
1346
+ this._controller = new configurator_controller_1.ConfiguratorController(this);
585
1347
  }
586
- if (height) {
587
- this._height = height;
1348
+ else if (this._currentType === EmbedType.VTO) {
1349
+ this._controller = new vto_controller_1.VTOController(this);
588
1350
  }
589
- this._isReady = true;
590
1351
  const init = this.hasAttribute("init") ? this.getAttribute("init") : null;
591
1352
  if (init === "ar") {
592
1353
  this.startAR();
@@ -614,317 +1375,60 @@ class PlattarEmbed extends HTMLElement {
614
1375
  }
615
1376
  initAR() {
616
1377
  return new Promise((accept, reject) => {
617
- if (!this._isReady) {
618
- return reject(new Error("PlattarEmbed.initAR() - cannot execute as page has not loaded yet"));
619
- }
620
- if (!util_1.Util.canAugment()) {
621
- return reject(new Error("PlattarEmbed.initAR() - cannot proceed as AR not available in context"));
622
- }
623
- if (this._currentType === EmbedType.Viewer) {
624
- // if scene is not set but product is, then use ProductAR
625
- if (!this._sceneID && this._productID) {
626
- const product = new product_ar_1.ProductAR(this._productID, this._variationID);
627
- return product.init().then(accept).catch(reject);
628
- }
629
- // If Product is set (under any scenario) then use ProductAR
630
- // NOTE: At some point this should check for Scenes when SceneAR
631
- // is implemented
632
- if (this._productID) {
633
- const product = new product_ar_1.ProductAR(this._productID, this._variationID);
634
- return product.init().then(accept).catch(reject);
635
- }
636
- }
637
- if (this._currentType === EmbedType.Configurator) {
638
- // if scene ID is available and the state is a configurator viewer
639
- // we can use the real-time configurator state to launch the AR view
640
- const viewer = this.viewer;
641
- if (viewer && this._sceneID && this._currentState === EmbedState.ConfiguratorViewer) {
642
- let output = "glb";
643
- if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
644
- output = "usdz";
645
- }
646
- viewer.messenger.getARFile(output).then((result) => {
647
- const rawAR = new raw_ar_1.RawAR(result.filename);
648
- return rawAR.init().then(accept).catch(reject);
649
- }).catch(reject);
650
- }
651
- const configState = this.hasAttribute("config-state") ? this.getAttribute("config-state") : null;
652
- // otherwise scene ID is available to the viewer is not launched
653
- // we can use the static configuration state to launch the AR view
654
- if (this._sceneID && configState) {
655
- try {
656
- const decodedb64State = atob(configState);
657
- const state = JSON.parse(decodedb64State);
658
- if (state.meta) {
659
- const sceneProductIndex = state.meta.scene_product_index || 0;
660
- const variationIndex = state.meta.product_variation_index || 1;
661
- const states = state.states || [];
662
- if (states.length > 0) {
663
- const configurator = new plattar_services_1.Configurator();
664
- states.forEach((productState) => {
665
- configurator.addSceneProduct(productState[sceneProductIndex], productState[variationIndex]);
666
- });
667
- if (util_1.Util.isSafari() || util_1.Util.isChromeOnIOS()) {
668
- configurator.output = "usdz";
669
- }
670
- if (util_1.Util.canSceneViewer()) {
671
- configurator.output = "glb";
672
- }
673
- configurator.server = this._server;
674
- return configurator.get().then((result) => {
675
- const rawAR = new raw_ar_1.RawAR(result.filename);
676
- rawAR.init().then(accept).catch(reject);
677
- }).catch(reject);
678
- }
679
- return reject(new Error("PlattarEmbed.initAR() - invalid config-state does not have any product states"));
680
- }
681
- return reject(new Error("PlattarEmbed.initAR() - invalid config-state for configurator"));
682
- }
683
- catch (err) {
684
- return reject(err);
685
- }
686
- }
687
- }
688
- // otherwise, scene was set so use SceneAR
689
- if (this._sceneID) {
690
- return reject(new Error("PlattarEmbed.initAR() - scene-id not yet supported"));
1378
+ if (!this._controller) {
1379
+ return reject(new Error("PlattarEmbed.initAR() - cannot execute as controller has not loaded yet"));
691
1380
  }
692
- return reject(new Error("PlattarEmbed.initAR() - minimum required attributes not set, use scene-id or product-id as a minimum"));
1381
+ return this._controller.initAR().then(accept).catch(reject);
693
1382
  });
694
1383
  }
695
1384
  startAR() {
696
1385
  return new Promise((accept, reject) => {
697
- if (!this._isReady) {
698
- return reject(new Error("PlattarEmbed.startAR() - cannot execute as page has not loaded yet"));
1386
+ if (!this._controller) {
1387
+ return reject(new Error("PlattarEmbed.startAR() - cannot execute as controller has not loaded yet"));
699
1388
  }
700
- this.initAR().then((launcher) => {
701
- launcher.start();
702
- accept();
703
- }).catch(reject);
1389
+ return this._controller.startAR().then(accept).catch(reject);
704
1390
  });
705
1391
  }
706
1392
  startViewer() {
707
1393
  return new Promise((accept, reject) => {
708
- if (!this._isReady) {
709
- return reject(new Error("PlattarEmbed.startViewer() - cannot execute as page has not loaded yet"));
710
- }
711
- if (this._viewer) {
712
- this._viewer.remove();
713
- this._viewer = null;
714
- }
715
- // if scene is set and embed is a viewer type, we use <plattar-viewer /> node from plattar-web
716
- if (this._sceneID && this._currentType === EmbedType.Viewer) {
717
- const viewer = document.createElement("plattar-viewer");
718
- viewer.setAttribute("width", this._width);
719
- viewer.setAttribute("height", this._height);
720
- viewer.setAttribute("server", this._server);
721
- viewer.setAttribute("scene-id", this._sceneID);
722
- if (this._productID) {
723
- viewer.setAttribute("product-id", this._productID);
724
- }
725
- if (this._variationID) {
726
- viewer.setAttribute("variation-id", this._variationID);
727
- }
728
- viewer.onload = () => {
729
- return accept(viewer);
730
- };
731
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
732
- shadow.append(viewer);
733
- this._viewer = viewer;
734
- this._currentState = EmbedState.SceneViewer;
735
- return;
736
- }
737
- // if scene is set and embed is a configurator type, we use <plattar-configurator /> node from plattar-web
738
- if (this._sceneID && this._currentType === EmbedType.Configurator) {
739
- const viewer = document.createElement("plattar-configurator");
740
- viewer.setAttribute("width", this._width);
741
- viewer.setAttribute("height", this._height);
742
- viewer.setAttribute("server", this._server);
743
- viewer.setAttribute("scene-id", this._sceneID);
744
- const configState = this.hasAttribute("config-state") ? this.getAttribute("config-state") : null;
745
- const showAR = this.hasAttribute("show-ar") ? this.getAttribute("show-ar") : null;
746
- if (configState) {
747
- viewer.setAttribute("config-state", configState);
748
- }
749
- if (showAR) {
750
- viewer.setAttribute("show-ar", showAR);
751
- }
752
- viewer.onload = () => {
753
- return accept(viewer);
754
- };
755
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
756
- shadow.append(viewer);
757
- this._viewer = viewer;
758
- this._currentState = EmbedState.ConfiguratorViewer;
759
- return;
760
- }
761
- // if product is set, we use <plattar-product /> node from plattar-web
762
- if (this._productID) {
763
- const viewer = document.createElement("plattar-product");
764
- viewer.setAttribute("width", this._width);
765
- viewer.setAttribute("height", this._height);
766
- viewer.setAttribute("server", this._server);
767
- viewer.setAttribute("product-id", this._productID);
768
- if (this._variationID) {
769
- viewer.setAttribute("variation-id", this._variationID);
770
- }
771
- viewer.onload = () => {
772
- return accept(viewer);
773
- };
774
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
775
- shadow.append(viewer);
776
- this._viewer = viewer;
777
- this._currentState = EmbedState.ProductViewer;
778
- return;
1394
+ if (!this._controller) {
1395
+ return reject(new Error("PlattarEmbed.startViewer() - cannot execute as controller has not loaded yet"));
779
1396
  }
780
- return reject(new Error("PlattarEmbed.startViewer() - minimum required attributes not set, use scene-id or product-id as a minimum"));
1397
+ return this._controller.startRenderer().then(accept).catch(reject);
781
1398
  });
782
1399
  }
783
1400
  startQRCode(options = null) {
784
1401
  return new Promise((accept, reject) => {
785
- if (!this._isReady) {
786
- return reject(new Error("PlattarEmbed.startQRCode() - cannot execute as page has not loaded yet"));
787
- }
788
- const opt = options || this._qrCodeOptions;
789
- // reset instance for later use
790
- this._qrCodeOptions = opt;
791
- if (this._viewer) {
792
- this._viewer.remove();
793
- this._viewer = null;
794
- }
795
- // if scene is set and embed type is viewer
796
- // we embed a QR code that takes us to viewer.html
797
- if (this._sceneID && this._currentType == EmbedType.Viewer) {
798
- const viewer = document.createElement("plattar-qrcode");
799
- viewer.setAttribute("width", this._width);
800
- viewer.setAttribute("height", this._height);
801
- if (opt.color) {
802
- viewer.setAttribute("color", opt.color);
803
- }
804
- if (opt.margin) {
805
- viewer.setAttribute("margin", "" + opt.margin);
806
- }
807
- if (opt.qrType) {
808
- viewer.setAttribute("qr-type", opt.qrType);
809
- }
810
- let dst = plattar_api_1.Server.location().base + "renderer/viewer.html?scene_id=" + this._sceneID;
811
- if (this._productID) {
812
- dst += "&productId=" + this._productID;
813
- }
814
- if (this._variationID) {
815
- dst += "&variationId=" + this._variationID;
816
- }
817
- viewer.setAttribute("url", opt.url || dst);
818
- viewer.onload = () => {
819
- return accept(viewer);
820
- };
821
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
822
- shadow.append(viewer);
823
- this._viewer = viewer;
824
- this._currentState = EmbedState.QRCode;
825
- return;
826
- }
827
- // if scene is set and embed type is configurator
828
- // we embed a QR code that takes us to configurator.html
829
- if (this._sceneID && this._currentType == EmbedType.Configurator) {
830
- const viewer = document.createElement("plattar-qrcode");
831
- viewer.setAttribute("width", this._width);
832
- viewer.setAttribute("height", this._height);
833
- if (opt.color) {
834
- viewer.setAttribute("color", opt.color);
835
- }
836
- if (opt.margin) {
837
- viewer.setAttribute("margin", "" + opt.margin);
838
- }
839
- if (opt.qrType) {
840
- viewer.setAttribute("qr-type", opt.qrType);
841
- }
842
- let dst = plattar_api_1.Server.location().base + "renderer/configurator.html?scene_id=" + this._sceneID;
843
- const configState = this.hasAttribute("config-state") ? this.getAttribute("config-state") : null;
844
- const showAR = this.hasAttribute("show-ar") ? this.getAttribute("show-ar") : null;
845
- if (configState) {
846
- dst += "&config_state=" + configState;
847
- }
848
- if (showAR) {
849
- dst += "&show_ar=" + showAR;
850
- }
851
- viewer.setAttribute("url", opt.url || dst);
852
- viewer.onload = () => {
853
- return accept(viewer);
854
- };
855
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
856
- shadow.append(viewer);
857
- this._viewer = viewer;
858
- this._currentState = EmbedState.QRCode;
859
- return;
860
- }
861
- // if product is set, we embed a QR code that takes us to product.html
862
- if (this._productID) {
863
- const viewer = document.createElement("plattar-qrcode");
864
- viewer.setAttribute("width", this._width);
865
- viewer.setAttribute("height", this._height);
866
- if (opt.color) {
867
- viewer.setAttribute("color", opt.color);
868
- }
869
- if (opt.margin) {
870
- viewer.setAttribute("margin", "" + opt.margin);
871
- }
872
- if (opt.qrType) {
873
- viewer.setAttribute("qr-type", opt.qrType);
874
- }
875
- let dst = plattar_api_1.Server.location().base + "renderer/product.html?product_id=" + this._productID;
876
- if (this._variationID) {
877
- dst += "&variation_id=" + this._variationID;
878
- }
879
- viewer.setAttribute("url", opt.url || dst);
880
- viewer.onload = () => {
881
- return accept(viewer);
882
- };
883
- const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
884
- shadow.append(viewer);
885
- this._viewer = viewer;
886
- this._currentState = EmbedState.QRCode;
887
- return;
1402
+ if (!this._controller) {
1403
+ return reject(new Error("PlattarEmbed.startQRCode() - cannot execute as controller has not loaded yet"));
888
1404
  }
889
- return reject(new Error("PlattarEmbed.startQRCode() - minimum required attributes not set, use scene-id or product-id as a minimum"));
1405
+ return this._controller.startQRCode(options).then(accept).catch(reject);
890
1406
  });
891
1407
  }
1408
+ /**
1409
+ * This will remove the currently active Renderer
1410
+ *
1411
+ * @returns - true if removed successfully, false otherwise
1412
+ */
1413
+ removeRenderer() {
1414
+ if (!this._controller) {
1415
+ return false;
1416
+ }
1417
+ return this._controller.removeRenderer();
1418
+ }
892
1419
  /**
893
1420
  * This is called by the observer if any of the embed attributes have changed
894
1421
  * based on the state of the embed, we update the internal structure accordingly
895
1422
  */
896
1423
  _OnAttributesUpdated() {
897
- // nothing to update in these scenarios
898
- if (this._currentState === EmbedState.None ||
899
- this._currentState === EmbedState.ProductAR ||
900
- this._currentState === EmbedState.ConfiguratorViewer) {
901
- return;
902
- }
903
- // re-render the QR Code when attributes have changed
904
- if (this._currentState === EmbedState.QRCode) {
905
- this.startQRCode(this._qrCodeOptions);
906
- return;
907
- }
908
- // use the messenger function to change variation when attributes have changed
909
- if (this._currentState === EmbedState.SceneViewer) {
910
- const viewer = this.viewer;
911
- if (viewer) {
912
- viewer.messenger.selectVariation(this._productID, this._variationID);
913
- }
914
- return;
915
- }
916
- if (this._currentState === EmbedState.ProductViewer) {
917
- const viewer = this.viewer;
918
- if (viewer) {
919
- viewer.messenger.selectVariation(this._variationID);
920
- }
921
- return;
1424
+ if (this._controller) {
1425
+ this._controller.onAttributesUpdated();
922
1426
  }
923
1427
  }
924
1428
  }
925
1429
  exports.default = PlattarEmbed;
926
1430
 
927
- },{"../ar/product-ar":4,"../ar/raw-ar":5,"../util/util":9,"@plattar/plattar-api":36,"@plattar/plattar-services":107}],8:[function(require,module,exports){
1431
+ },{"./controllers/configurator-controller":6,"./controllers/product-controller":8,"./controllers/viewer-controller":9,"./controllers/vto-controller":10,"@plattar/plattar-api":41}],12:[function(require,module,exports){
928
1432
  "use strict";
929
1433
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
930
1434
  if (k2 === undefined) k2 = k;
@@ -949,12 +1453,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
949
1453
  return (mod && mod.__esModule) ? mod : { "default": mod };
950
1454
  };
951
1455
  Object.defineProperty(exports, "__esModule", { value: true });
952
- exports.Util = exports.RawAR = exports.ModelAR = exports.SceneAR = exports.ProductAR = exports.ConfiguratorAR = exports.version = exports.PlattarQRCode = exports.PlattarWeb = void 0;
1456
+ exports.ConfiguratorState = exports.Util = exports.RawAR = exports.ModelAR = exports.SceneAR = exports.ProductAR = exports.version = exports.PlattarQRCode = exports.PlattarWeb = void 0;
953
1457
  exports.PlattarWeb = __importStar(require("@plattar/plattar-web"));
954
1458
  exports.PlattarQRCode = __importStar(require("@plattar/plattar-qrcode"));
955
1459
  exports.version = __importStar(require("./version"));
956
- var configurator_ar_1 = require("./ar/configurator-ar");
957
- Object.defineProperty(exports, "ConfiguratorAR", { enumerable: true, get: function () { return configurator_ar_1.ConfiguratorAR; } });
958
1460
  var product_ar_1 = require("./ar/product-ar");
959
1461
  Object.defineProperty(exports, "ProductAR", { enumerable: true, get: function () { return product_ar_1.ProductAR; } });
960
1462
  var scene_ar_1 = require("./ar/scene-ar");
@@ -965,6 +1467,8 @@ var raw_ar_1 = require("./ar/raw-ar");
965
1467
  Object.defineProperty(exports, "RawAR", { enumerable: true, get: function () { return raw_ar_1.RawAR; } });
966
1468
  var util_1 = require("./util/util");
967
1469
  Object.defineProperty(exports, "Util", { enumerable: true, get: function () { return util_1.Util; } });
1470
+ var configurator_state_1 = require("./util/configurator-state");
1471
+ Object.defineProperty(exports, "ConfiguratorState", { enumerable: true, get: function () { return configurator_state_1.ConfiguratorState; } });
968
1472
  const plattar_embed_1 = __importDefault(require("./embed/plattar-embed"));
969
1473
  const version_1 = __importDefault(require("./version"));
970
1474
  if (customElements) {
@@ -974,7 +1478,101 @@ if (customElements) {
974
1478
  }
975
1479
  console.log("using @plattar/plattar-ar-adapter v" + version_1.default);
976
1480
 
977
- },{"./ar/configurator-ar":1,"./ar/model-ar":3,"./ar/product-ar":4,"./ar/raw-ar":5,"./ar/scene-ar":6,"./embed/plattar-embed":7,"./util/util":9,"./version":10,"@plattar/plattar-qrcode":102,"@plattar/plattar-web":121}],9:[function(require,module,exports){
1481
+ },{"./ar/model-ar":2,"./ar/product-ar":3,"./ar/raw-ar":4,"./ar/scene-ar":5,"./embed/plattar-embed":11,"./util/configurator-state":13,"./util/util":14,"./version":15,"@plattar/plattar-qrcode":107,"@plattar/plattar-web":126}],13:[function(require,module,exports){
1482
+ "use strict";
1483
+ Object.defineProperty(exports, "__esModule", { value: true });
1484
+ exports.ConfiguratorState = void 0;
1485
+ class ConfiguratorState {
1486
+ constructor(state = null) {
1487
+ const defaultState = {
1488
+ meta: {
1489
+ scene_product_index: 0,
1490
+ product_variation_index: 1,
1491
+ meta_index: 2,
1492
+ },
1493
+ states: []
1494
+ };
1495
+ if (state) {
1496
+ try {
1497
+ const decodedb64State = atob(state);
1498
+ const parsedState = JSON.parse(decodedb64State);
1499
+ // set the meta data
1500
+ if (parsedState.meta) {
1501
+ defaultState.meta.scene_product_index = parsedState.meta.scene_product_index || 0;
1502
+ defaultState.meta.product_variation_index = parsedState.meta.product_variation_index || 1;
1503
+ defaultState.meta.meta_index = parsedState.meta.meta_index || 2;
1504
+ }
1505
+ defaultState.states = parsedState.states || [];
1506
+ }
1507
+ catch (err) {
1508
+ console.error("ConfiguratorState.constructor() - there was an error parsing configurator state");
1509
+ console.error(err);
1510
+ }
1511
+ }
1512
+ this._state = defaultState;
1513
+ }
1514
+ /**
1515
+ * Adds a new Scene Product/Variation combo with meta-data into the Configurator State
1516
+ *
1517
+ * @param sceneProductID - The Scene Product ID to be used (as defined in Plattar CMS)
1518
+ * @param productVariationID - The Product Variation ID to be used (as defined in Plattar CMS)
1519
+ * @param metaData - Arbitrary meta-data that can be used against certain operaions
1520
+ */
1521
+ addSceneProduct(sceneProductID, productVariationID, metaData = null) {
1522
+ if (sceneProductID && productVariationID) {
1523
+ const states = this._state.states;
1524
+ const meta = this._state.meta;
1525
+ const newData = [];
1526
+ newData.splice(meta.scene_product_index, 0, sceneProductID);
1527
+ newData.splice(meta.product_variation_index, 0, productVariationID);
1528
+ if (metaData) {
1529
+ newData.splice(meta.meta_index, 0, metaData);
1530
+ }
1531
+ states.push(newData);
1532
+ }
1533
+ }
1534
+ /**
1535
+ * Iterate over the internal state data
1536
+ */
1537
+ forEach(callback) {
1538
+ const states = this._state.states;
1539
+ const meta = this._state.meta;
1540
+ if (states.length > 0) {
1541
+ states.forEach((productState) => {
1542
+ if (productState.length === 2) {
1543
+ callback({
1544
+ scene_product_id: productState[meta.scene_product_index],
1545
+ product_variation_id: productState[meta.product_variation_index],
1546
+ meta_data: {
1547
+ augment: true
1548
+ }
1549
+ });
1550
+ }
1551
+ else if (productState.length === 3) {
1552
+ callback({
1553
+ scene_product_id: productState[meta.scene_product_index],
1554
+ product_variation_id: productState[meta.product_variation_index],
1555
+ meta_data: {
1556
+ augment: productState[meta.meta_index].augment || true
1557
+ }
1558
+ });
1559
+ }
1560
+ });
1561
+ }
1562
+ }
1563
+ get length() {
1564
+ return this._state.states.length;
1565
+ }
1566
+ static decode(state) {
1567
+ return new ConfiguratorState(state);
1568
+ }
1569
+ encode() {
1570
+ return btoa(JSON.stringify(this._state));
1571
+ }
1572
+ }
1573
+ exports.ConfiguratorState = ConfiguratorState;
1574
+
1575
+ },{}],14:[function(require,module,exports){
978
1576
  "use strict";
979
1577
  Object.defineProperty(exports, "__esModule", { value: true });
980
1578
  exports.Util = void 0;
@@ -1061,12 +1659,12 @@ class Util {
1061
1659
  }
1062
1660
  exports.Util = Util;
1063
1661
 
1064
- },{}],10:[function(require,module,exports){
1662
+ },{}],15:[function(require,module,exports){
1065
1663
  "use strict";
1066
1664
  Object.defineProperty(exports, "__esModule", { value: true });
1067
- exports.default = "1.122.4";
1665
+ exports.default = "1.123.4";
1068
1666
 
1069
- },{}],11:[function(require,module,exports){
1667
+ },{}],16:[function(require,module,exports){
1070
1668
  "use strict";
1071
1669
  Object.defineProperty(exports, "__esModule", { value: true });
1072
1670
  class ARViewer {
@@ -1077,7 +1675,7 @@ class ARViewer {
1077
1675
  }
1078
1676
  exports.default = ARViewer;
1079
1677
 
1080
- },{}],12:[function(require,module,exports){
1678
+ },{}],17:[function(require,module,exports){
1081
1679
  "use strict";
1082
1680
  var __importDefault = (this && this.__importDefault) || function (mod) {
1083
1681
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -1127,7 +1725,7 @@ class QuicklookViewer extends ar_viewer_1.default {
1127
1725
  }
1128
1726
  exports.default = QuicklookViewer;
1129
1727
 
1130
- },{"./ar-viewer":11}],13:[function(require,module,exports){
1728
+ },{"./ar-viewer":16}],18:[function(require,module,exports){
1131
1729
  "use strict";
1132
1730
  var __importDefault = (this && this.__importDefault) || function (mod) {
1133
1731
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -1157,7 +1755,7 @@ class RealityViewer extends ar_viewer_1.default {
1157
1755
  }
1158
1756
  exports.default = RealityViewer;
1159
1757
 
1160
- },{"./ar-viewer":11}],14:[function(require,module,exports){
1758
+ },{"./ar-viewer":16}],19:[function(require,module,exports){
1161
1759
  "use strict";
1162
1760
  var __importDefault = (this && this.__importDefault) || function (mod) {
1163
1761
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -1210,7 +1808,7 @@ class SceneViewer extends ar_viewer_1.default {
1210
1808
  }
1211
1809
  exports.default = SceneViewer;
1212
1810
 
1213
- },{"./ar-viewer":11}],15:[function(require,module,exports){
1811
+ },{"./ar-viewer":16}],20:[function(require,module,exports){
1214
1812
  "use strict";
1215
1813
  const Messenger = require("./messenger/messenger.js");
1216
1814
  const Memory = require("./memory/memory.js");
@@ -1244,7 +1842,7 @@ module.exports = {
1244
1842
  memory: GlobalEventHandler.instance().memoryInstance,
1245
1843
  version: Version
1246
1844
  }
1247
- },{"./memory/memory.js":16,"./messenger/global-event-handler.js":23,"./messenger/messenger.js":24,"./version":29}],16:[function(require,module,exports){
1845
+ },{"./memory/memory.js":21,"./messenger/global-event-handler.js":28,"./messenger/messenger.js":29,"./version":34}],21:[function(require,module,exports){
1248
1846
  const PermanentMemory = require("./permanent-memory");
1249
1847
  const TemporaryMemory = require("./temporary-memory");
1250
1848
 
@@ -1278,7 +1876,7 @@ class Memory {
1278
1876
  }
1279
1877
 
1280
1878
  module.exports = Memory;
1281
- },{"./permanent-memory":17,"./temporary-memory":18}],17:[function(require,module,exports){
1879
+ },{"./permanent-memory":22,"./temporary-memory":23}],22:[function(require,module,exports){
1282
1880
  const WrappedValue = require("./wrapped-value");
1283
1881
 
1284
1882
  class PermanentMemory {
@@ -1347,7 +1945,7 @@ class PermanentMemory {
1347
1945
  }
1348
1946
 
1349
1947
  module.exports = PermanentMemory;
1350
- },{"./wrapped-value":19}],18:[function(require,module,exports){
1948
+ },{"./wrapped-value":24}],23:[function(require,module,exports){
1351
1949
  const WrappedValue = require("./wrapped-value");
1352
1950
 
1353
1951
  class TemporaryMemory {
@@ -1404,7 +2002,7 @@ class TemporaryMemory {
1404
2002
  }
1405
2003
 
1406
2004
  module.exports = TemporaryMemory;
1407
- },{"./wrapped-value":19}],19:[function(require,module,exports){
2005
+ },{"./wrapped-value":24}],24:[function(require,module,exports){
1408
2006
  /**
1409
2007
  * WrappedValue represents a generic value type with a callback function
1410
2008
  * for when the value has changed
@@ -1516,7 +2114,7 @@ class WrappedValue {
1516
2114
  }
1517
2115
 
1518
2116
  module.exports = WrappedValue;
1519
- },{}],20:[function(require,module,exports){
2117
+ },{}],25:[function(require,module,exports){
1520
2118
  /**
1521
2119
  * Broadcaster is used to call functions in multiple contexts at the
1522
2120
  * same time. This can be useful without having to handle complex logic
@@ -1569,7 +2167,7 @@ class Broadcaster {
1569
2167
  }
1570
2168
 
1571
2169
  module.exports = Broadcaster;
1572
- },{}],21:[function(require,module,exports){
2170
+ },{}],26:[function(require,module,exports){
1573
2171
  const WrappedFunction = require("./wrapped-local-function");
1574
2172
 
1575
2173
  class CurrentFunctionList {
@@ -1620,7 +2218,7 @@ class CurrentFunctionList {
1620
2218
  }
1621
2219
 
1622
2220
  module.exports = CurrentFunctionList;
1623
- },{"./wrapped-local-function":22}],22:[function(require,module,exports){
2221
+ },{"./wrapped-local-function":27}],27:[function(require,module,exports){
1624
2222
  const Util = require("../util/util.js");
1625
2223
 
1626
2224
  /**
@@ -1707,7 +2305,7 @@ class WrappedLocalFunction {
1707
2305
  }
1708
2306
 
1709
2307
  module.exports = WrappedLocalFunction;
1710
- },{"../util/util.js":28}],23:[function(require,module,exports){
2308
+ },{"../util/util.js":33}],28:[function(require,module,exports){
1711
2309
  const RemoteInterface = require("./remote-interface.js");
1712
2310
 
1713
2311
  /**
@@ -1792,7 +2390,7 @@ GlobalEventHandler.instance = () => {
1792
2390
  };
1793
2391
 
1794
2392
  module.exports = GlobalEventHandler;
1795
- },{"./remote-interface.js":25}],24:[function(require,module,exports){
2393
+ },{"./remote-interface.js":30}],29:[function(require,module,exports){
1796
2394
  const CurrentFunctionList = require("./current/current-function-list");
1797
2395
  const RemoteInterface = require("./remote-interface");
1798
2396
  const RemoteFunctionList = require("./remote/remote-function-list");
@@ -2091,7 +2689,7 @@ class Messenger {
2091
2689
  }
2092
2690
 
2093
2691
  module.exports = Messenger;
2094
- },{"./broadcaster.js":20,"./current/current-function-list":21,"./global-event-handler.js":23,"./remote-interface":25,"./remote/remote-function-list":26,"./util/util.js":28}],25:[function(require,module,exports){
2692
+ },{"./broadcaster.js":25,"./current/current-function-list":26,"./global-event-handler.js":28,"./remote-interface":30,"./remote/remote-function-list":31,"./util/util.js":33}],30:[function(require,module,exports){
2095
2693
  /**
2096
2694
  * Provides a single useful interface for performing remote function calls
2097
2695
  */
@@ -2150,7 +2748,7 @@ class RemoteInterface {
2150
2748
  }
2151
2749
 
2152
2750
  module.exports = RemoteInterface;
2153
- },{}],26:[function(require,module,exports){
2751
+ },{}],31:[function(require,module,exports){
2154
2752
  const WrappedFunction = require("./wrapped-remote-function");
2155
2753
 
2156
2754
  class RemoteFunctionList {
@@ -2229,7 +2827,7 @@ class RemoteFunctionList {
2229
2827
  }
2230
2828
 
2231
2829
  module.exports = RemoteFunctionList;
2232
- },{"./wrapped-remote-function":27}],27:[function(require,module,exports){
2830
+ },{"./wrapped-remote-function":32}],32:[function(require,module,exports){
2233
2831
  const Util = require("../util/util.js");
2234
2832
  const GlobalEventHandler = require("../global-event-handler.js");
2235
2833
 
@@ -2310,7 +2908,7 @@ class WrappedRemoteFunction {
2310
2908
  }
2311
2909
 
2312
2910
  module.exports = WrappedRemoteFunction;
2313
- },{"../global-event-handler.js":23,"../util/util.js":28}],28:[function(require,module,exports){
2911
+ },{"../global-event-handler.js":28,"../util/util.js":33}],33:[function(require,module,exports){
2314
2912
  class Util {
2315
2913
 
2316
2914
  /**
@@ -2336,10 +2934,10 @@ class Util {
2336
2934
  }
2337
2935
 
2338
2936
  module.exports = Util;
2339
- },{}],29:[function(require,module,exports){
2937
+ },{}],34:[function(require,module,exports){
2340
2938
  module.exports = "1.113.6";
2341
2939
 
2342
- },{}],30:[function(require,module,exports){
2940
+ },{}],35:[function(require,module,exports){
2343
2941
  "use strict";
2344
2942
  Object.defineProperty(exports, "__esModule", { value: true });
2345
2943
  exports.AnalyticsData = void 0;
@@ -2386,7 +2984,7 @@ class AnalyticsData {
2386
2984
  }
2387
2985
  exports.AnalyticsData = AnalyticsData;
2388
2986
 
2389
- },{"../util/util":34}],31:[function(require,module,exports){
2987
+ },{"../util/util":39}],36:[function(require,module,exports){
2390
2988
  "use strict";
2391
2989
  var __importDefault = (this && this.__importDefault) || function (mod) {
2392
2990
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -2473,7 +3071,7 @@ class Analytics {
2473
3071
  }
2474
3072
  exports.Analytics = Analytics;
2475
3073
 
2476
- },{"../util/basic-http":33,"./analytics-data":30}],32:[function(require,module,exports){
3074
+ },{"../util/basic-http":38,"./analytics-data":35}],37:[function(require,module,exports){
2477
3075
  "use strict";
2478
3076
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2479
3077
  if (k2 === undefined) k2 = k;
@@ -2505,7 +3103,7 @@ Object.defineProperty(exports, "Analytics", { enumerable: true, get: function ()
2505
3103
  const version_1 = __importDefault(require("./version"));
2506
3104
  console.log("using @plattar/plattar-analytics v" + version_1.default);
2507
3105
 
2508
- },{"./analytics/analytics":31,"./version":35}],33:[function(require,module,exports){
3106
+ },{"./analytics/analytics":36,"./version":40}],38:[function(require,module,exports){
2509
3107
  "use strict";
2510
3108
  Object.defineProperty(exports, "__esModule", { value: true });
2511
3109
  /**
@@ -2571,7 +3169,7 @@ class BasicHTTP {
2571
3169
  }
2572
3170
  exports.default = BasicHTTP;
2573
3171
 
2574
- },{}],34:[function(require,module,exports){
3172
+ },{}],39:[function(require,module,exports){
2575
3173
  "use strict";
2576
3174
  Object.defineProperty(exports, "__esModule", { value: true });
2577
3175
  exports.Util = void 0;
@@ -2597,12 +3195,12 @@ class Util {
2597
3195
  }
2598
3196
  exports.Util = Util;
2599
3197
 
2600
- },{}],35:[function(require,module,exports){
3198
+ },{}],40:[function(require,module,exports){
2601
3199
  "use strict";
2602
3200
  Object.defineProperty(exports, "__esModule", { value: true });
2603
3201
  exports.default = "1.117.2";
2604
3202
 
2605
- },{}],36:[function(require,module,exports){
3203
+ },{}],41:[function(require,module,exports){
2606
3204
  "use strict";
2607
3205
  const Server = require("./server/plattar-server.js");
2608
3206
  const Util = require("./util/plattar-util.js");
@@ -2757,7 +3355,7 @@ module.exports = {
2757
3355
  version: Version
2758
3356
  };
2759
3357
 
2760
- },{"./server/plattar-server.js":38,"./types/application.js":39,"./types/content-pipeline/brief.js":40,"./types/content-pipeline/comment-brief.js":41,"./types/content-pipeline/comment-quote.js":42,"./types/content-pipeline/comment-solution.js":43,"./types/content-pipeline/folder.js":44,"./types/content-pipeline/pipeline-user.js":45,"./types/content-pipeline/quote.js":46,"./types/content-pipeline/rating.js":47,"./types/content-pipeline/solution.js":48,"./types/file/file-audio.js":49,"./types/file/file-base.js":50,"./types/file/file-image.js":51,"./types/file/file-model.js":52,"./types/file/file-script.js":53,"./types/file/file-video.js":54,"./types/misc/application-build.js":58,"./types/misc/asset-library.js":59,"./types/misc/async-job.js":60,"./types/misc/script-event.js":61,"./types/misc/tag.js":62,"./types/page/card-base.js":63,"./types/page/card-button.js":64,"./types/page/card-html.js":65,"./types/page/card-iframe.js":66,"./types/page/card-image.js":67,"./types/page/card-map.js":68,"./types/page/card-paragraph.js":69,"./types/page/card-row.js":70,"./types/page/card-slider.js":71,"./types/page/card-title.js":72,"./types/page/card-video.js":73,"./types/page/card-youtube.js":74,"./types/page/page.js":75,"./types/product/product-annotation.js":76,"./types/product/product-base.js":77,"./types/product/product-variation.js":78,"./types/product/product.js":79,"./types/scene/scene-annotation.js":80,"./types/scene/scene-audio.js":81,"./types/scene/scene-base.js":82,"./types/scene/scene-button.js":83,"./types/scene/scene-camera.js":84,"./types/scene/scene-carousel.js":85,"./types/scene/scene-image.js":86,"./types/scene/scene-model.js":87,"./types/scene/scene-panorama.js":88,"./types/scene/scene-poller.js":89,"./types/scene/scene-product.js":90,"./types/scene/scene-script.js":91,"./types/scene/scene-shadow.js":92,"./types/scene/scene-video.js":93,"./types/scene/scene-volumetric.js":94,"./types/scene/scene-youtube.js":95,"./types/scene/scene.js":96,"./types/trigger/trigger-image.js":97,"./util/plattar-util.js":98,"./version":99}],37:[function(require,module,exports){
3358
+ },{"./server/plattar-server.js":43,"./types/application.js":44,"./types/content-pipeline/brief.js":45,"./types/content-pipeline/comment-brief.js":46,"./types/content-pipeline/comment-quote.js":47,"./types/content-pipeline/comment-solution.js":48,"./types/content-pipeline/folder.js":49,"./types/content-pipeline/pipeline-user.js":50,"./types/content-pipeline/quote.js":51,"./types/content-pipeline/rating.js":52,"./types/content-pipeline/solution.js":53,"./types/file/file-audio.js":54,"./types/file/file-base.js":55,"./types/file/file-image.js":56,"./types/file/file-model.js":57,"./types/file/file-script.js":58,"./types/file/file-video.js":59,"./types/misc/application-build.js":63,"./types/misc/asset-library.js":64,"./types/misc/async-job.js":65,"./types/misc/script-event.js":66,"./types/misc/tag.js":67,"./types/page/card-base.js":68,"./types/page/card-button.js":69,"./types/page/card-html.js":70,"./types/page/card-iframe.js":71,"./types/page/card-image.js":72,"./types/page/card-map.js":73,"./types/page/card-paragraph.js":74,"./types/page/card-row.js":75,"./types/page/card-slider.js":76,"./types/page/card-title.js":77,"./types/page/card-video.js":78,"./types/page/card-youtube.js":79,"./types/page/page.js":80,"./types/product/product-annotation.js":81,"./types/product/product-base.js":82,"./types/product/product-variation.js":83,"./types/product/product.js":84,"./types/scene/scene-annotation.js":85,"./types/scene/scene-audio.js":86,"./types/scene/scene-base.js":87,"./types/scene/scene-button.js":88,"./types/scene/scene-camera.js":89,"./types/scene/scene-carousel.js":90,"./types/scene/scene-image.js":91,"./types/scene/scene-model.js":92,"./types/scene/scene-panorama.js":93,"./types/scene/scene-poller.js":94,"./types/scene/scene-product.js":95,"./types/scene/scene-script.js":96,"./types/scene/scene-shadow.js":97,"./types/scene/scene-video.js":98,"./types/scene/scene-volumetric.js":99,"./types/scene/scene-youtube.js":100,"./types/scene/scene.js":101,"./types/trigger/trigger-image.js":102,"./util/plattar-util.js":103,"./version":104}],42:[function(require,module,exports){
2761
3359
  const fetch = require("node-fetch");
2762
3360
 
2763
3361
  class PlattarQuery {
@@ -3249,7 +3847,7 @@ PlattarQuery._DeleteGlobalCachedObject = (obj) => {
3249
3847
  };
3250
3848
 
3251
3849
  module.exports = PlattarQuery;
3252
- },{"../util/plattar-util.js":98,"node-fetch":124}],38:[function(require,module,exports){
3850
+ },{"../util/plattar-util.js":103,"node-fetch":129}],43:[function(require,module,exports){
3253
3851
  (function (process){(function (){
3254
3852
  const fetch = require("node-fetch");
3255
3853
 
@@ -3454,7 +4052,7 @@ PlattarServer.location = () => {
3454
4052
 
3455
4053
  module.exports = PlattarServer;
3456
4054
  }).call(this)}).call(this,require('_process'))
3457
- },{"_process":126,"node-fetch":124}],39:[function(require,module,exports){
4055
+ },{"_process":131,"node-fetch":129}],44:[function(require,module,exports){
3458
4056
  const PlattarBase = require("./interfaces/plattar-base.js");
3459
4057
 
3460
4058
  class Application extends PlattarBase {
@@ -3464,7 +4062,7 @@ class Application extends PlattarBase {
3464
4062
  }
3465
4063
 
3466
4064
  module.exports = Application;
3467
- },{"./interfaces/plattar-base.js":55}],40:[function(require,module,exports){
4065
+ },{"./interfaces/plattar-base.js":60}],45:[function(require,module,exports){
3468
4066
  const PlattarBase = require("../interfaces/plattar-base");
3469
4067
 
3470
4068
  class Brief extends PlattarBase {
@@ -3474,7 +4072,7 @@ class Brief extends PlattarBase {
3474
4072
  }
3475
4073
 
3476
4074
  module.exports = Brief;
3477
- },{"../interfaces/plattar-base":55}],41:[function(require,module,exports){
4075
+ },{"../interfaces/plattar-base":60}],46:[function(require,module,exports){
3478
4076
  const PlattarBase = require("../interfaces/plattar-base");
3479
4077
 
3480
4078
  class CommentBrief extends PlattarBase {
@@ -3484,7 +4082,7 @@ class CommentBrief extends PlattarBase {
3484
4082
  }
3485
4083
 
3486
4084
  module.exports = CommentBrief;
3487
- },{"../interfaces/plattar-base":55}],42:[function(require,module,exports){
4085
+ },{"../interfaces/plattar-base":60}],47:[function(require,module,exports){
3488
4086
  const PlattarBase = require("../interfaces/plattar-base");
3489
4087
 
3490
4088
  class CommentQuote extends PlattarBase {
@@ -3494,7 +4092,7 @@ class CommentQuote extends PlattarBase {
3494
4092
  }
3495
4093
 
3496
4094
  module.exports = CommentQuote;
3497
- },{"../interfaces/plattar-base":55}],43:[function(require,module,exports){
4095
+ },{"../interfaces/plattar-base":60}],48:[function(require,module,exports){
3498
4096
  const PlattarBase = require("../interfaces/plattar-base");
3499
4097
 
3500
4098
  class CommentSolution extends PlattarBase {
@@ -3504,7 +4102,7 @@ class CommentSolution extends PlattarBase {
3504
4102
  }
3505
4103
 
3506
4104
  module.exports = CommentSolution;
3507
- },{"../interfaces/plattar-base":55}],44:[function(require,module,exports){
4105
+ },{"../interfaces/plattar-base":60}],49:[function(require,module,exports){
3508
4106
  const PlattarBase = require("../interfaces/plattar-base");
3509
4107
 
3510
4108
  class Folder extends PlattarBase {
@@ -3514,7 +4112,7 @@ class Folder extends PlattarBase {
3514
4112
  }
3515
4113
 
3516
4114
  module.exports = Folder;
3517
- },{"../interfaces/plattar-base":55}],45:[function(require,module,exports){
4115
+ },{"../interfaces/plattar-base":60}],50:[function(require,module,exports){
3518
4116
  const PlattarBase = require("../interfaces/plattar-base");
3519
4117
 
3520
4118
  class PipelineUser extends PlattarBase {
@@ -3524,7 +4122,7 @@ class PipelineUser extends PlattarBase {
3524
4122
  }
3525
4123
 
3526
4124
  module.exports = PipelineUser;
3527
- },{"../interfaces/plattar-base":55}],46:[function(require,module,exports){
4125
+ },{"../interfaces/plattar-base":60}],51:[function(require,module,exports){
3528
4126
  const PlattarBase = require("../interfaces/plattar-base");
3529
4127
 
3530
4128
  class Quote extends PlattarBase {
@@ -3534,7 +4132,7 @@ class Quote extends PlattarBase {
3534
4132
  }
3535
4133
 
3536
4134
  module.exports = Quote;
3537
- },{"../interfaces/plattar-base":55}],47:[function(require,module,exports){
4135
+ },{"../interfaces/plattar-base":60}],52:[function(require,module,exports){
3538
4136
  const PlattarBase = require("../interfaces/plattar-base");
3539
4137
 
3540
4138
  class Rating extends PlattarBase {
@@ -3544,7 +4142,7 @@ class Rating extends PlattarBase {
3544
4142
  }
3545
4143
 
3546
4144
  module.exports = Rating;
3547
- },{"../interfaces/plattar-base":55}],48:[function(require,module,exports){
4145
+ },{"../interfaces/plattar-base":60}],53:[function(require,module,exports){
3548
4146
  const PlattarBase = require("../interfaces/plattar-base");
3549
4147
 
3550
4148
  class Solution extends PlattarBase {
@@ -3554,7 +4152,7 @@ class Solution extends PlattarBase {
3554
4152
  }
3555
4153
 
3556
4154
  module.exports = Solution;
3557
- },{"../interfaces/plattar-base":55}],49:[function(require,module,exports){
4155
+ },{"../interfaces/plattar-base":60}],54:[function(require,module,exports){
3558
4156
  const FileBase = require("./file-base.js");
3559
4157
 
3560
4158
  class FileAudio extends FileBase {
@@ -3564,7 +4162,7 @@ class FileAudio extends FileBase {
3564
4162
  }
3565
4163
 
3566
4164
  module.exports = FileAudio;
3567
- },{"./file-base.js":50}],50:[function(require,module,exports){
4165
+ },{"./file-base.js":55}],55:[function(require,module,exports){
3568
4166
  const PlattarBase = require("../interfaces/plattar-base.js");
3569
4167
  const Server = require("../../server/plattar-server.js");
3570
4168
 
@@ -3624,7 +4222,7 @@ class FileBase extends PlattarBase {
3624
4222
  }
3625
4223
 
3626
4224
  module.exports = FileBase;
3627
- },{"../../server/plattar-server.js":38,"../interfaces/plattar-base.js":55,"./file-audio.js":49,"./file-image.js":51,"./file-model.js":52,"./file-video.js":54}],51:[function(require,module,exports){
4225
+ },{"../../server/plattar-server.js":43,"../interfaces/plattar-base.js":60,"./file-audio.js":54,"./file-image.js":56,"./file-model.js":57,"./file-video.js":59}],56:[function(require,module,exports){
3628
4226
  const FileBase = require("./file-base.js");
3629
4227
 
3630
4228
  class FileImage extends FileBase {
@@ -3634,7 +4232,7 @@ class FileImage extends FileBase {
3634
4232
  }
3635
4233
 
3636
4234
  module.exports = FileImage;
3637
- },{"./file-base.js":50}],52:[function(require,module,exports){
4235
+ },{"./file-base.js":55}],57:[function(require,module,exports){
3638
4236
  const FileBase = require("./file-base.js");
3639
4237
 
3640
4238
  class FileModel extends FileBase {
@@ -3644,7 +4242,7 @@ class FileModel extends FileBase {
3644
4242
  }
3645
4243
 
3646
4244
  module.exports = FileModel;
3647
- },{"./file-base.js":50}],53:[function(require,module,exports){
4245
+ },{"./file-base.js":55}],58:[function(require,module,exports){
3648
4246
  const FileBase = require("./file-base.js");
3649
4247
 
3650
4248
  class FileScript extends FileBase {
@@ -3654,7 +4252,7 @@ class FileScript extends FileBase {
3654
4252
  }
3655
4253
 
3656
4254
  module.exports = FileScript;
3657
- },{"./file-base.js":50}],54:[function(require,module,exports){
4255
+ },{"./file-base.js":55}],59:[function(require,module,exports){
3658
4256
  const FileBase = require("./file-base.js");
3659
4257
 
3660
4258
  class FileVideo extends FileBase {
@@ -3664,7 +4262,7 @@ class FileVideo extends FileBase {
3664
4262
  }
3665
4263
 
3666
4264
  module.exports = FileVideo;
3667
- },{"./file-base.js":50}],55:[function(require,module,exports){
4265
+ },{"./file-base.js":55}],60:[function(require,module,exports){
3668
4266
  const PlattarObject = require("./plattar-object.js");
3669
4267
  const Server = require("../../server/plattar-server.js");
3670
4268
 
@@ -3679,7 +4277,7 @@ class PlattarBase extends PlattarObject {
3679
4277
  }
3680
4278
 
3681
4279
  module.exports = PlattarBase;
3682
- },{"../../server/plattar-server.js":38,"./plattar-object.js":57}],56:[function(require,module,exports){
4280
+ },{"../../server/plattar-server.js":43,"./plattar-object.js":62}],61:[function(require,module,exports){
3683
4281
  /**
3684
4282
  * Handles the list of relationships for the provided object
3685
4283
  */
@@ -3800,7 +4398,7 @@ class PlattarObjectRelations {
3800
4398
  }
3801
4399
 
3802
4400
  module.exports = PlattarObjectRelations;
3803
- },{"../../util/plattar-util.js":98}],57:[function(require,module,exports){
4401
+ },{"../../util/plattar-util.js":103}],62:[function(require,module,exports){
3804
4402
  const PlattarQuery = require("../../server/plattar-query.js");
3805
4403
  const PlattarObjectRelations = require("./plattar-object-relations.js");
3806
4404
 
@@ -3943,7 +4541,7 @@ class PlattarObject {
3943
4541
  }
3944
4542
 
3945
4543
  module.exports = PlattarObject;
3946
- },{"../../server/plattar-query.js":37,"./plattar-object-relations.js":56}],58:[function(require,module,exports){
4544
+ },{"../../server/plattar-query.js":42,"./plattar-object-relations.js":61}],63:[function(require,module,exports){
3947
4545
  const PlattarBase = require("../interfaces/plattar-base.js");
3948
4546
 
3949
4547
  class ApplicationBuild extends PlattarBase {
@@ -3953,7 +4551,7 @@ class ApplicationBuild extends PlattarBase {
3953
4551
  }
3954
4552
 
3955
4553
  module.exports = ApplicationBuild;
3956
- },{"../interfaces/plattar-base.js":55}],59:[function(require,module,exports){
4554
+ },{"../interfaces/plattar-base.js":60}],64:[function(require,module,exports){
3957
4555
  const PlattarBase = require("../interfaces/plattar-base.js");
3958
4556
 
3959
4557
  class AssetLibrary extends PlattarBase {
@@ -3963,7 +4561,7 @@ class AssetLibrary extends PlattarBase {
3963
4561
  }
3964
4562
 
3965
4563
  module.exports = AssetLibrary;
3966
- },{"../interfaces/plattar-base.js":55}],60:[function(require,module,exports){
4564
+ },{"../interfaces/plattar-base.js":60}],65:[function(require,module,exports){
3967
4565
  const PlattarBase = require("../interfaces/plattar-base.js");
3968
4566
 
3969
4567
  class AsyncJob extends PlattarBase {
@@ -3977,7 +4575,7 @@ class AsyncJob extends PlattarBase {
3977
4575
  }
3978
4576
 
3979
4577
  module.exports = AsyncJob;
3980
- },{"../interfaces/plattar-base.js":55}],61:[function(require,module,exports){
4578
+ },{"../interfaces/plattar-base.js":60}],66:[function(require,module,exports){
3981
4579
  const PlattarBase = require("../interfaces/plattar-base.js");
3982
4580
 
3983
4581
  class ScriptEvent extends PlattarBase {
@@ -3987,7 +4585,7 @@ class ScriptEvent extends PlattarBase {
3987
4585
  }
3988
4586
 
3989
4587
  module.exports = ScriptEvent;
3990
- },{"../interfaces/plattar-base.js":55}],62:[function(require,module,exports){
4588
+ },{"../interfaces/plattar-base.js":60}],67:[function(require,module,exports){
3991
4589
  const PlattarBase = require("../interfaces/plattar-base.js");
3992
4590
 
3993
4591
  class Tag extends PlattarBase {
@@ -3997,7 +4595,7 @@ class Tag extends PlattarBase {
3997
4595
  }
3998
4596
 
3999
4597
  module.exports = Tag;
4000
- },{"../interfaces/plattar-base.js":55}],63:[function(require,module,exports){
4598
+ },{"../interfaces/plattar-base.js":60}],68:[function(require,module,exports){
4001
4599
  const PlattarBase = require("../interfaces/plattar-base.js");
4002
4600
  const Server = require("../../server/plattar-server.js");
4003
4601
 
@@ -4028,7 +4626,7 @@ class CardBase extends PlattarBase {
4028
4626
  }
4029
4627
 
4030
4628
  module.exports = CardBase;
4031
- },{"../../server/plattar-server.js":38,"../interfaces/plattar-base.js":55,"./card-button.js":64,"./card-html.js":65,"./card-iframe.js":66,"./card-image.js":67,"./card-map.js":68,"./card-paragraph.js":69,"./card-row.js":70,"./card-slider.js":71,"./card-title.js":72,"./card-video.js":73,"./card-youtube.js":74}],64:[function(require,module,exports){
4629
+ },{"../../server/plattar-server.js":43,"../interfaces/plattar-base.js":60,"./card-button.js":69,"./card-html.js":70,"./card-iframe.js":71,"./card-image.js":72,"./card-map.js":73,"./card-paragraph.js":74,"./card-row.js":75,"./card-slider.js":76,"./card-title.js":77,"./card-video.js":78,"./card-youtube.js":79}],69:[function(require,module,exports){
4032
4630
  const CardBase = require("./card-base.js");
4033
4631
 
4034
4632
  class CardButton extends CardBase {
@@ -4038,7 +4636,7 @@ class CardButton extends CardBase {
4038
4636
  }
4039
4637
 
4040
4638
  module.exports = CardButton;
4041
- },{"./card-base.js":63}],65:[function(require,module,exports){
4639
+ },{"./card-base.js":68}],70:[function(require,module,exports){
4042
4640
  const CardBase = require("./card-base.js");
4043
4641
 
4044
4642
  class CardHTML extends CardBase {
@@ -4048,7 +4646,7 @@ class CardHTML extends CardBase {
4048
4646
  }
4049
4647
 
4050
4648
  module.exports = CardHTML;
4051
- },{"./card-base.js":63}],66:[function(require,module,exports){
4649
+ },{"./card-base.js":68}],71:[function(require,module,exports){
4052
4650
  const CardBase = require("./card-base.js");
4053
4651
 
4054
4652
  class CardIFrame extends CardBase {
@@ -4058,7 +4656,7 @@ class CardIFrame extends CardBase {
4058
4656
  }
4059
4657
 
4060
4658
  module.exports = CardIFrame;
4061
- },{"./card-base.js":63}],67:[function(require,module,exports){
4659
+ },{"./card-base.js":68}],72:[function(require,module,exports){
4062
4660
  const CardBase = require("./card-base.js");
4063
4661
 
4064
4662
  class CardImage extends CardBase {
@@ -4068,7 +4666,7 @@ class CardImage extends CardBase {
4068
4666
  }
4069
4667
 
4070
4668
  module.exports = CardImage;
4071
- },{"./card-base.js":63}],68:[function(require,module,exports){
4669
+ },{"./card-base.js":68}],73:[function(require,module,exports){
4072
4670
  const CardBase = require("./card-base.js");
4073
4671
 
4074
4672
  class CardMap extends CardBase {
@@ -4078,7 +4676,7 @@ class CardMap extends CardBase {
4078
4676
  }
4079
4677
 
4080
4678
  module.exports = CardMap;
4081
- },{"./card-base.js":63}],69:[function(require,module,exports){
4679
+ },{"./card-base.js":68}],74:[function(require,module,exports){
4082
4680
  const CardBase = require("./card-base.js");
4083
4681
 
4084
4682
  class CardParagraph extends CardBase {
@@ -4088,7 +4686,7 @@ class CardParagraph extends CardBase {
4088
4686
  }
4089
4687
 
4090
4688
  module.exports = CardParagraph;
4091
- },{"./card-base.js":63}],70:[function(require,module,exports){
4689
+ },{"./card-base.js":68}],75:[function(require,module,exports){
4092
4690
  const CardBase = require("./card-base.js");
4093
4691
 
4094
4692
  class CardRow extends CardBase {
@@ -4098,7 +4696,7 @@ class CardRow extends CardBase {
4098
4696
  }
4099
4697
 
4100
4698
  module.exports = CardRow;
4101
- },{"./card-base.js":63}],71:[function(require,module,exports){
4699
+ },{"./card-base.js":68}],76:[function(require,module,exports){
4102
4700
  const CardBase = require("./card-base.js");
4103
4701
 
4104
4702
  class CardSlider extends CardBase {
@@ -4108,7 +4706,7 @@ class CardSlider extends CardBase {
4108
4706
  }
4109
4707
 
4110
4708
  module.exports = CardSlider;
4111
- },{"./card-base.js":63}],72:[function(require,module,exports){
4709
+ },{"./card-base.js":68}],77:[function(require,module,exports){
4112
4710
  const CardBase = require("./card-base.js");
4113
4711
 
4114
4712
  class CardTitle extends CardBase {
@@ -4118,7 +4716,7 @@ class CardTitle extends CardBase {
4118
4716
  }
4119
4717
 
4120
4718
  module.exports = CardTitle;
4121
- },{"./card-base.js":63}],73:[function(require,module,exports){
4719
+ },{"./card-base.js":68}],78:[function(require,module,exports){
4122
4720
  const CardBase = require("./card-base.js");
4123
4721
 
4124
4722
  class CardVideo extends CardBase {
@@ -4128,7 +4726,7 @@ class CardVideo extends CardBase {
4128
4726
  }
4129
4727
 
4130
4728
  module.exports = CardVideo;
4131
- },{"./card-base.js":63}],74:[function(require,module,exports){
4729
+ },{"./card-base.js":68}],79:[function(require,module,exports){
4132
4730
  const CardBase = require("./card-base.js");
4133
4731
 
4134
4732
  class CardYoutube extends CardBase {
@@ -4138,7 +4736,7 @@ class CardYoutube extends CardBase {
4138
4736
  }
4139
4737
 
4140
4738
  module.exports = CardYoutube;
4141
- },{"./card-base.js":63}],75:[function(require,module,exports){
4739
+ },{"./card-base.js":68}],80:[function(require,module,exports){
4142
4740
  const PlattarBase = require("../interfaces/plattar-base.js");
4143
4741
 
4144
4742
  class Page extends PlattarBase {
@@ -4148,7 +4746,7 @@ class Page extends PlattarBase {
4148
4746
  }
4149
4747
 
4150
4748
  module.exports = Page;
4151
- },{"../interfaces/plattar-base.js":55}],76:[function(require,module,exports){
4749
+ },{"../interfaces/plattar-base.js":60}],81:[function(require,module,exports){
4152
4750
  const ProductBase = require("./product-base.js");
4153
4751
 
4154
4752
  class ProductAnnotation extends ProductBase {
@@ -4158,7 +4756,7 @@ class ProductAnnotation extends ProductBase {
4158
4756
  }
4159
4757
 
4160
4758
  module.exports = ProductAnnotation;
4161
- },{"./product-base.js":77}],77:[function(require,module,exports){
4759
+ },{"./product-base.js":82}],82:[function(require,module,exports){
4162
4760
  const PlattarBase = require("../interfaces/plattar-base.js");
4163
4761
  const Server = require("../../server/plattar-server.js");
4164
4762
 
@@ -4180,7 +4778,7 @@ class ProductBase extends PlattarBase {
4180
4778
  }
4181
4779
 
4182
4780
  module.exports = ProductBase;
4183
- },{"../../server/plattar-server.js":38,"../interfaces/plattar-base.js":55,"./product-annotation.js":76,"./product-variation.js":78}],78:[function(require,module,exports){
4781
+ },{"../../server/plattar-server.js":43,"../interfaces/plattar-base.js":60,"./product-annotation.js":81,"./product-variation.js":83}],83:[function(require,module,exports){
4184
4782
  const ProductBase = require("./product-base.js");
4185
4783
 
4186
4784
  class ProductVariation extends ProductBase {
@@ -4190,7 +4788,7 @@ class ProductVariation extends ProductBase {
4190
4788
  }
4191
4789
 
4192
4790
  module.exports = ProductVariation;
4193
- },{"./product-base.js":77}],79:[function(require,module,exports){
4791
+ },{"./product-base.js":82}],84:[function(require,module,exports){
4194
4792
  const PlattarBase = require("../interfaces/plattar-base.js");
4195
4793
 
4196
4794
  class Product extends PlattarBase {
@@ -4200,7 +4798,7 @@ class Product extends PlattarBase {
4200
4798
  }
4201
4799
 
4202
4800
  module.exports = Product;
4203
- },{"../interfaces/plattar-base.js":55}],80:[function(require,module,exports){
4801
+ },{"../interfaces/plattar-base.js":60}],85:[function(require,module,exports){
4204
4802
  const SceneBase = require("./scene-base.js");
4205
4803
 
4206
4804
  class SceneAnnotation extends SceneBase {
@@ -4210,7 +4808,7 @@ class SceneAnnotation extends SceneBase {
4210
4808
  }
4211
4809
 
4212
4810
  module.exports = SceneAnnotation;
4213
- },{"./scene-base.js":82}],81:[function(require,module,exports){
4811
+ },{"./scene-base.js":87}],86:[function(require,module,exports){
4214
4812
  const SceneBase = require("./scene-base.js");
4215
4813
 
4216
4814
  class SceneAudio extends SceneBase {
@@ -4220,7 +4818,7 @@ class SceneAudio extends SceneBase {
4220
4818
  }
4221
4819
 
4222
4820
  module.exports = SceneAudio;
4223
- },{"./scene-base.js":82}],82:[function(require,module,exports){
4821
+ },{"./scene-base.js":87}],87:[function(require,module,exports){
4224
4822
  const PlattarBase = require("../interfaces/plattar-base.js");
4225
4823
  const Server = require("../../server/plattar-server.js");
4226
4824
 
@@ -4254,7 +4852,7 @@ class SceneBase extends PlattarBase {
4254
4852
  }
4255
4853
 
4256
4854
  module.exports = SceneBase;
4257
- },{"../../server/plattar-server.js":38,"../interfaces/plattar-base.js":55,"./scene-annotation.js":80,"./scene-audio.js":81,"./scene-button.js":83,"./scene-camera.js":84,"./scene-carousel.js":85,"./scene-image.js":86,"./scene-model.js":87,"./scene-panorama.js":88,"./scene-poller.js":89,"./scene-product.js":90,"./scene-shadow.js":92,"./scene-video.js":93,"./scene-volumetric.js":94,"./scene-youtube.js":95}],83:[function(require,module,exports){
4855
+ },{"../../server/plattar-server.js":43,"../interfaces/plattar-base.js":60,"./scene-annotation.js":85,"./scene-audio.js":86,"./scene-button.js":88,"./scene-camera.js":89,"./scene-carousel.js":90,"./scene-image.js":91,"./scene-model.js":92,"./scene-panorama.js":93,"./scene-poller.js":94,"./scene-product.js":95,"./scene-shadow.js":97,"./scene-video.js":98,"./scene-volumetric.js":99,"./scene-youtube.js":100}],88:[function(require,module,exports){
4258
4856
  const SceneBase = require("./scene-base.js");
4259
4857
 
4260
4858
  class SceneButton extends SceneBase {
@@ -4264,7 +4862,7 @@ class SceneButton extends SceneBase {
4264
4862
  }
4265
4863
 
4266
4864
  module.exports = SceneButton;
4267
- },{"./scene-base.js":82}],84:[function(require,module,exports){
4865
+ },{"./scene-base.js":87}],89:[function(require,module,exports){
4268
4866
  const SceneBase = require("./scene-base.js");
4269
4867
 
4270
4868
  class SceneCamera extends SceneBase {
@@ -4274,7 +4872,7 @@ class SceneCamera extends SceneBase {
4274
4872
  }
4275
4873
 
4276
4874
  module.exports = SceneCamera;
4277
- },{"./scene-base.js":82}],85:[function(require,module,exports){
4875
+ },{"./scene-base.js":87}],90:[function(require,module,exports){
4278
4876
  const SceneBase = require("./scene-base.js");
4279
4877
 
4280
4878
  class SceneCarousel extends SceneBase {
@@ -4284,7 +4882,7 @@ class SceneCarousel extends SceneBase {
4284
4882
  }
4285
4883
 
4286
4884
  module.exports = SceneCarousel;
4287
- },{"./scene-base.js":82}],86:[function(require,module,exports){
4885
+ },{"./scene-base.js":87}],91:[function(require,module,exports){
4288
4886
  const SceneBase = require("./scene-base.js");
4289
4887
 
4290
4888
  class SceneImage extends SceneBase {
@@ -4294,7 +4892,7 @@ class SceneImage extends SceneBase {
4294
4892
  }
4295
4893
 
4296
4894
  module.exports = SceneImage;
4297
- },{"./scene-base.js":82}],87:[function(require,module,exports){
4895
+ },{"./scene-base.js":87}],92:[function(require,module,exports){
4298
4896
  const SceneBase = require("./scene-base.js");
4299
4897
 
4300
4898
  class SceneModel extends SceneBase {
@@ -4304,7 +4902,7 @@ class SceneModel extends SceneBase {
4304
4902
  }
4305
4903
 
4306
4904
  module.exports = SceneModel;
4307
- },{"./scene-base.js":82}],88:[function(require,module,exports){
4905
+ },{"./scene-base.js":87}],93:[function(require,module,exports){
4308
4906
  const SceneBase = require("./scene-base.js");
4309
4907
 
4310
4908
  class ScenePanorama extends SceneBase {
@@ -4314,7 +4912,7 @@ class ScenePanorama extends SceneBase {
4314
4912
  }
4315
4913
 
4316
4914
  module.exports = ScenePanorama;
4317
- },{"./scene-base.js":82}],89:[function(require,module,exports){
4915
+ },{"./scene-base.js":87}],94:[function(require,module,exports){
4318
4916
  const SceneBase = require("./scene-base.js");
4319
4917
 
4320
4918
  class ScenePoller extends SceneBase {
@@ -4324,7 +4922,7 @@ class ScenePoller extends SceneBase {
4324
4922
  }
4325
4923
 
4326
4924
  module.exports = ScenePoller;
4327
- },{"./scene-base.js":82}],90:[function(require,module,exports){
4925
+ },{"./scene-base.js":87}],95:[function(require,module,exports){
4328
4926
  const SceneBase = require("./scene-base.js");
4329
4927
 
4330
4928
  class SceneProduct extends SceneBase {
@@ -4334,7 +4932,7 @@ class SceneProduct extends SceneBase {
4334
4932
  }
4335
4933
 
4336
4934
  module.exports = SceneProduct;
4337
- },{"./scene-base.js":82}],91:[function(require,module,exports){
4935
+ },{"./scene-base.js":87}],96:[function(require,module,exports){
4338
4936
  const SceneBase = require("./scene-base.js");
4339
4937
 
4340
4938
  class SceneScript extends SceneBase {
@@ -4344,7 +4942,7 @@ class SceneScript extends SceneBase {
4344
4942
  }
4345
4943
 
4346
4944
  module.exports = SceneScript;
4347
- },{"./scene-base.js":82}],92:[function(require,module,exports){
4945
+ },{"./scene-base.js":87}],97:[function(require,module,exports){
4348
4946
  const SceneBase = require("./scene-base.js");
4349
4947
 
4350
4948
  class SceneShadow extends SceneBase {
@@ -4354,7 +4952,7 @@ class SceneShadow extends SceneBase {
4354
4952
  }
4355
4953
 
4356
4954
  module.exports = SceneShadow;
4357
- },{"./scene-base.js":82}],93:[function(require,module,exports){
4955
+ },{"./scene-base.js":87}],98:[function(require,module,exports){
4358
4956
  const SceneBase = require("./scene-base.js");
4359
4957
 
4360
4958
  class SceneVideo extends SceneBase {
@@ -4364,7 +4962,7 @@ class SceneVideo extends SceneBase {
4364
4962
  }
4365
4963
 
4366
4964
  module.exports = SceneVideo;
4367
- },{"./scene-base.js":82}],94:[function(require,module,exports){
4965
+ },{"./scene-base.js":87}],99:[function(require,module,exports){
4368
4966
  const SceneBase = require("./scene-base.js");
4369
4967
 
4370
4968
  class SceneVolumetric extends SceneBase {
@@ -4374,7 +4972,7 @@ class SceneVolumetric extends SceneBase {
4374
4972
  }
4375
4973
 
4376
4974
  module.exports = SceneVolumetric;
4377
- },{"./scene-base.js":82}],95:[function(require,module,exports){
4975
+ },{"./scene-base.js":87}],100:[function(require,module,exports){
4378
4976
  const SceneBase = require("./scene-base.js");
4379
4977
 
4380
4978
  class SceneYoutube extends SceneBase {
@@ -4384,7 +4982,7 @@ class SceneYoutube extends SceneBase {
4384
4982
  }
4385
4983
 
4386
4984
  module.exports = SceneYoutube;
4387
- },{"./scene-base.js":82}],96:[function(require,module,exports){
4985
+ },{"./scene-base.js":87}],101:[function(require,module,exports){
4388
4986
  const PlattarBase = require("../interfaces/plattar-base.js");
4389
4987
 
4390
4988
  class Scene extends PlattarBase {
@@ -4394,7 +4992,7 @@ class Scene extends PlattarBase {
4394
4992
  }
4395
4993
 
4396
4994
  module.exports = Scene;
4397
- },{"../interfaces/plattar-base.js":55}],97:[function(require,module,exports){
4995
+ },{"../interfaces/plattar-base.js":60}],102:[function(require,module,exports){
4398
4996
  const PlattarBase = require("../interfaces/plattar-base.js");
4399
4997
 
4400
4998
  class TriggerImage extends PlattarBase {
@@ -4404,7 +5002,7 @@ class TriggerImage extends PlattarBase {
4404
5002
  }
4405
5003
 
4406
5004
  module.exports = TriggerImage;
4407
- },{"../interfaces/plattar-base.js":55}],98:[function(require,module,exports){
5005
+ },{"../interfaces/plattar-base.js":60}],103:[function(require,module,exports){
4408
5006
  const Application = require("../types/application.js");
4409
5007
 
4410
5008
  // import Scene types and its children
@@ -4631,10 +5229,10 @@ PlattarUtil.match = (type) => {
4631
5229
 
4632
5230
 
4633
5231
  module.exports = PlattarUtil;
4634
- },{"../types/application.js":39,"../types/content-pipeline/brief.js":40,"../types/content-pipeline/comment-brief.js":41,"../types/content-pipeline/comment-quote.js":42,"../types/content-pipeline/comment-solution.js":43,"../types/content-pipeline/folder.js":44,"../types/content-pipeline/pipeline-user.js":45,"../types/content-pipeline/quote.js":46,"../types/content-pipeline/rating.js":47,"../types/content-pipeline/solution.js":48,"../types/file/file-audio.js":49,"../types/file/file-image.js":51,"../types/file/file-model.js":52,"../types/file/file-script.js":53,"../types/file/file-video.js":54,"../types/interfaces/plattar-object.js":57,"../types/misc/application-build.js":58,"../types/misc/asset-library":59,"../types/misc/async-job.js":60,"../types/misc/script-event.js":61,"../types/misc/tag.js":62,"../types/page/card-button.js":64,"../types/page/card-html.js":65,"../types/page/card-iframe.js":66,"../types/page/card-image.js":67,"../types/page/card-map.js":68,"../types/page/card-paragraph.js":69,"../types/page/card-row.js":70,"../types/page/card-slider.js":71,"../types/page/card-title.js":72,"../types/page/card-video.js":73,"../types/page/card-youtube.js":74,"../types/page/page.js":75,"../types/product/product-annotation.js":76,"../types/product/product-variation.js":78,"../types/product/product.js":79,"../types/scene/scene-annotation.js":80,"../types/scene/scene-audio.js":81,"../types/scene/scene-button.js":83,"../types/scene/scene-camera.js":84,"../types/scene/scene-carousel.js":85,"../types/scene/scene-image.js":86,"../types/scene/scene-model.js":87,"../types/scene/scene-panorama.js":88,"../types/scene/scene-poller.js":89,"../types/scene/scene-product.js":90,"../types/scene/scene-script.js":91,"../types/scene/scene-shadow.js":92,"../types/scene/scene-video.js":93,"../types/scene/scene-volumetric.js":94,"../types/scene/scene-youtube.js":95,"../types/scene/scene.js":96,"../types/trigger/trigger-image.js":97}],99:[function(require,module,exports){
5232
+ },{"../types/application.js":44,"../types/content-pipeline/brief.js":45,"../types/content-pipeline/comment-brief.js":46,"../types/content-pipeline/comment-quote.js":47,"../types/content-pipeline/comment-solution.js":48,"../types/content-pipeline/folder.js":49,"../types/content-pipeline/pipeline-user.js":50,"../types/content-pipeline/quote.js":51,"../types/content-pipeline/rating.js":52,"../types/content-pipeline/solution.js":53,"../types/file/file-audio.js":54,"../types/file/file-image.js":56,"../types/file/file-model.js":57,"../types/file/file-script.js":58,"../types/file/file-video.js":59,"../types/interfaces/plattar-object.js":62,"../types/misc/application-build.js":63,"../types/misc/asset-library":64,"../types/misc/async-job.js":65,"../types/misc/script-event.js":66,"../types/misc/tag.js":67,"../types/page/card-button.js":69,"../types/page/card-html.js":70,"../types/page/card-iframe.js":71,"../types/page/card-image.js":72,"../types/page/card-map.js":73,"../types/page/card-paragraph.js":74,"../types/page/card-row.js":75,"../types/page/card-slider.js":76,"../types/page/card-title.js":77,"../types/page/card-video.js":78,"../types/page/card-youtube.js":79,"../types/page/page.js":80,"../types/product/product-annotation.js":81,"../types/product/product-variation.js":83,"../types/product/product.js":84,"../types/scene/scene-annotation.js":85,"../types/scene/scene-audio.js":86,"../types/scene/scene-button.js":88,"../types/scene/scene-camera.js":89,"../types/scene/scene-carousel.js":90,"../types/scene/scene-image.js":91,"../types/scene/scene-model.js":92,"../types/scene/scene-panorama.js":93,"../types/scene/scene-poller.js":94,"../types/scene/scene-product.js":95,"../types/scene/scene-script.js":96,"../types/scene/scene-shadow.js":97,"../types/scene/scene-video.js":98,"../types/scene/scene-volumetric.js":99,"../types/scene/scene-youtube.js":100,"../types/scene/scene.js":101,"../types/trigger/trigger-image.js":102}],104:[function(require,module,exports){
4635
5233
  module.exports = "1.120.1";
4636
5234
 
4637
- },{}],100:[function(require,module,exports){
5235
+ },{}],105:[function(require,module,exports){
4638
5236
  const QRCodeStyling = require("qr-code-styling");
4639
5237
 
4640
5238
  class BaseElement extends HTMLElement {
@@ -4763,7 +5361,6 @@ class BaseElement extends HTMLElement {
4763
5361
  type: "canvas"
4764
5362
  };
4765
5363
 
4766
- this._options.data = url;
4767
5364
  this._options.margin = margin;
4768
5365
  this._options.image = image;
4769
5366
 
@@ -4781,6 +5378,45 @@ class BaseElement extends HTMLElement {
4781
5378
  this._options.dotsOptions.type = "rounded";
4782
5379
  }
4783
5380
 
5381
+ const shortenURL = this.hasAttribute("shorten") ? this.getAttribute("shorten") : "false";
5382
+
5383
+ if (shortenURL && shortenURL.toLowerCase() === "true") {
5384
+ this._ShortenURL(url).then((newURL) => {
5385
+ this._GenerateQRCode(newURL, width, height);
5386
+ }).catch((_err) => {
5387
+ console.warn(_err);
5388
+ // ignore error and just generate normal QR Code
5389
+ this._GenerateQRCode(url, width, height);
5390
+ });
5391
+ }
5392
+ else {
5393
+ this._GenerateQRCode(url, width, height);
5394
+ }
5395
+ }
5396
+
5397
+ _UpdateCanvas(width, height) {
5398
+ if (!this._qrCode) {
5399
+ return;
5400
+ }
5401
+
5402
+ const canvas = this._qrCode._canvas;
5403
+
5404
+ if (canvas) {
5405
+ canvas.style.width = "100%";
5406
+ canvas.style.height = "100%";
5407
+ }
5408
+
5409
+ if (this._divContainer) {
5410
+ const div = this._divContainer;
5411
+
5412
+ div.style.width = width + "px";
5413
+ div.style.height = height + "px";
5414
+ }
5415
+ }
5416
+
5417
+ _GenerateQRCode(url, width, height) {
5418
+ this._options.data = url;
5419
+
4784
5420
  const shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
4785
5421
 
4786
5422
  const qrCode = this._qrCode;
@@ -4803,29 +5439,41 @@ class BaseElement extends HTMLElement {
4803
5439
  this._UpdateCanvas(width, height);
4804
5440
  }
4805
5441
 
4806
- _UpdateCanvas(width, height) {
4807
- if (!this._qrCode) {
4808
- return;
4809
- }
5442
+ _IsFetchAPISupported() {
5443
+ return 'fetch' in window;
5444
+ }
4810
5445
 
4811
- const canvas = this._qrCode._canvas;
5446
+ _ShortenURL(url) {
5447
+ return new Promise((accept, reject) => {
5448
+ if (!this._IsFetchAPISupported()) {
5449
+ return reject(new Error("PlattarQR._ShortenURL() - fetch api not supported, cannot proceed"));
5450
+ }
4812
5451
 
4813
- if (canvas) {
4814
- canvas.style.width = "100%";
4815
- canvas.style.height = "100%";
4816
- }
5452
+ try {
5453
+ const b64 = btoa(url);
5454
+ const endpoint = "https://c.plattar.space/api/v2/shorten?base64=" + b64;
4817
5455
 
4818
- if (this._divContainer) {
4819
- const div = this._divContainer;
5456
+ fetch(endpoint).then((response) => {
5457
+ if (!response.ok) {
5458
+ throw new Error("PlattarQR._ShortenURL() - response was invalid");
5459
+ }
4820
5460
 
4821
- div.style.width = width + "px";
4822
- div.style.height = height + "px";
4823
- }
5461
+ return response.text();
5462
+ }).then((text) => {
5463
+ return accept(text);
5464
+ }).catch(() => {
5465
+ return reject(new Error("PlattarQR._ShortenURL() - there was an unexpected issue generating short url"));
5466
+ });
5467
+ }
5468
+ catch (err) {
5469
+ return reject(err);
5470
+ }
5471
+ });
4824
5472
  }
4825
5473
  }
4826
5474
 
4827
5475
  module.exports = BaseElement;
4828
- },{"qr-code-styling":127}],101:[function(require,module,exports){
5476
+ },{"qr-code-styling":132}],106:[function(require,module,exports){
4829
5477
  const BaseElement = require("./base/base-element.js");
4830
5478
 
4831
5479
  class QRCodeElement extends BaseElement {
@@ -4835,22 +5483,26 @@ class QRCodeElement extends BaseElement {
4835
5483
  }
4836
5484
 
4837
5485
  module.exports = QRCodeElement;
4838
- },{"./base/base-element.js":100}],102:[function(require,module,exports){
5486
+ },{"./base/base-element.js":105}],107:[function(require,module,exports){
4839
5487
  "use strict";
4840
5488
  const QRCodeElement = require("./elements/qrcode-element.js");
4841
5489
  const Version = require("./version");
4842
5490
 
4843
- console.log("using @plattar/plattar-qrcode v" + Version);
5491
+ if (customElements) {
5492
+ if (customElements.get("plattar-qrcode") === undefined) {
5493
+ customElements.define("plattar-qrcode", QRCodeElement);
5494
+ }
5495
+ }
4844
5496
 
4845
- customElements.define("plattar-qrcode", QRCodeElement);
5497
+ console.log("using @plattar/plattar-qrcode v" + Version);
4846
5498
 
4847
5499
  module.exports = {
4848
5500
  version: Version
4849
5501
  };
4850
- },{"./elements/qrcode-element.js":101,"./version":103}],103:[function(require,module,exports){
4851
- module.exports = "1.120.3";
5502
+ },{"./elements/qrcode-element.js":106,"./version":108}],108:[function(require,module,exports){
5503
+ module.exports = "1.122.1";
4852
5504
 
4853
- },{}],104:[function(require,module,exports){
5505
+ },{}],109:[function(require,module,exports){
4854
5506
  "use strict";
4855
5507
  var __importDefault = (this && this.__importDefault) || function (mod) {
4856
5508
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -5007,7 +5659,7 @@ class Configurator {
5007
5659
  }
5008
5660
  exports.Configurator = Configurator;
5009
5661
 
5010
- },{"./remote-request":106,"@plattar/plattar-api":36,"object-hash":125}],105:[function(require,module,exports){
5662
+ },{"./remote-request":111,"@plattar/plattar-api":41,"object-hash":130}],110:[function(require,module,exports){
5011
5663
  "use strict";
5012
5664
  var __importDefault = (this && this.__importDefault) || function (mod) {
5013
5665
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -5071,7 +5723,7 @@ class ModelConverter {
5071
5723
  }
5072
5724
  exports.ModelConverter = ModelConverter;
5073
5725
 
5074
- },{"./remote-request":106,"@plattar/plattar-api":36,"object-hash":125}],106:[function(require,module,exports){
5726
+ },{"./remote-request":111,"@plattar/plattar-api":41,"object-hash":130}],111:[function(require,module,exports){
5075
5727
  "use strict";
5076
5728
  var __importDefault = (this && this.__importDefault) || function (mod) {
5077
5729
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -5139,7 +5791,7 @@ class RemoteRequest {
5139
5791
  }
5140
5792
  exports.RemoteRequest = RemoteRequest;
5141
5793
 
5142
- },{"node-fetch":124}],107:[function(require,module,exports){
5794
+ },{"node-fetch":129}],112:[function(require,module,exports){
5143
5795
  "use strict";
5144
5796
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5145
5797
  if (k2 === undefined) k2 = k;
@@ -5173,12 +5825,12 @@ exports.version = __importStar(require("./version"));
5173
5825
  const version_1 = __importDefault(require("./version"));
5174
5826
  console.log("using @plattar/plattar-services v" + version_1.default);
5175
5827
 
5176
- },{"./core/configurator":104,"./core/model-converter":105,"./version":108}],108:[function(require,module,exports){
5828
+ },{"./core/configurator":109,"./core/model-converter":110,"./version":113}],113:[function(require,module,exports){
5177
5829
  "use strict";
5178
5830
  Object.defineProperty(exports, "__esModule", { value: true });
5179
5831
  exports.default = "1.120.1";
5180
5832
 
5181
- },{}],109:[function(require,module,exports){
5833
+ },{}],114:[function(require,module,exports){
5182
5834
  const ElementController = require("../controllers/element-controller");
5183
5835
 
5184
5836
  class BaseElement extends HTMLElement {
@@ -5315,7 +5967,7 @@ class BaseElement extends HTMLElement {
5315
5967
  }
5316
5968
 
5317
5969
  module.exports = BaseElement;
5318
- },{"../controllers/element-controller":111}],110:[function(require,module,exports){
5970
+ },{"../controllers/element-controller":116}],115:[function(require,module,exports){
5319
5971
  const BaseElement = require("./base/base-element.js");
5320
5972
 
5321
5973
  class ConfiguratorElement extends BaseElement {
@@ -5343,7 +5995,7 @@ class ConfiguratorElement extends BaseElement {
5343
5995
  }
5344
5996
 
5345
5997
  module.exports = ConfiguratorElement;
5346
- },{"./base/base-element.js":109}],111:[function(require,module,exports){
5998
+ },{"./base/base-element.js":114}],116:[function(require,module,exports){
5347
5999
  const Util = require("../../util/util.js");
5348
6000
  const { messenger } = require("@plattar/context-messenger");
5349
6001
  const IFrameController = require("./iframe-controller.js");
@@ -5436,7 +6088,7 @@ class ElementController {
5436
6088
  }
5437
6089
 
5438
6090
  module.exports = ElementController;
5439
- },{"../../util/util.js":122,"./iframe-controller.js":112,"@plattar/context-messenger":15}],112:[function(require,module,exports){
6091
+ },{"../../util/util.js":127,"./iframe-controller.js":117,"@plattar/context-messenger":20}],117:[function(require,module,exports){
5440
6092
  const Util = require("../../util/util.js");
5441
6093
 
5442
6094
  class IFrameController {
@@ -5546,7 +6198,7 @@ class IFrameController {
5546
6198
  }
5547
6199
 
5548
6200
  module.exports = IFrameController;
5549
- },{"../../util/util.js":122}],113:[function(require,module,exports){
6201
+ },{"../../util/util.js":127}],118:[function(require,module,exports){
5550
6202
  const BaseElement = require("./base/base-element.js");
5551
6203
 
5552
6204
  class EditorElement extends BaseElement {
@@ -5564,7 +6216,7 @@ class EditorElement extends BaseElement {
5564
6216
  }
5565
6217
 
5566
6218
  module.exports = EditorElement;
5567
- },{"./base/base-element.js":109}],114:[function(require,module,exports){
6219
+ },{"./base/base-element.js":114}],119:[function(require,module,exports){
5568
6220
  const BaseElement = require("./base/base-element.js");
5569
6221
 
5570
6222
  class EWallElement extends BaseElement {
@@ -5601,7 +6253,7 @@ class EWallElement extends BaseElement {
5601
6253
  }
5602
6254
 
5603
6255
  module.exports = EWallElement;
5604
- },{"./base/base-element.js":109}],115:[function(require,module,exports){
6256
+ },{"./base/base-element.js":114}],120:[function(require,module,exports){
5605
6257
  const BaseElement = require("./base/base-element.js");
5606
6258
 
5607
6259
  class FaceARElement extends BaseElement {
@@ -5624,12 +6276,18 @@ class FaceARElement extends BaseElement {
5624
6276
  }, {
5625
6277
  key: "product-id",
5626
6278
  map: "productId"
6279
+ }, {
6280
+ key: "config-state",
6281
+ map: "config_state"
6282
+ }, {
6283
+ key: "show-ar",
6284
+ map: "show_ar"
5627
6285
  }];
5628
6286
  }
5629
6287
  }
5630
6288
 
5631
6289
  module.exports = FaceARElement;
5632
- },{"./base/base-element.js":109}],116:[function(require,module,exports){
6290
+ },{"./base/base-element.js":114}],121:[function(require,module,exports){
5633
6291
  const BaseElement = require("./base/base-element.js");
5634
6292
 
5635
6293
  class ModelElement extends BaseElement {
@@ -5654,7 +6312,7 @@ class ModelElement extends BaseElement {
5654
6312
  }
5655
6313
 
5656
6314
  module.exports = ModelElement;
5657
- },{"./base/base-element.js":109}],117:[function(require,module,exports){
6315
+ },{"./base/base-element.js":114}],122:[function(require,module,exports){
5658
6316
  const BaseElement = require("./base/base-element.js");
5659
6317
 
5660
6318
  class ProductElement extends BaseElement {
@@ -5686,7 +6344,7 @@ class ProductElement extends BaseElement {
5686
6344
  }
5687
6345
 
5688
6346
  module.exports = ProductElement;
5689
- },{"./base/base-element.js":109}],118:[function(require,module,exports){
6347
+ },{"./base/base-element.js":114}],123:[function(require,module,exports){
5690
6348
  const BaseElement = require("./base/base-element.js");
5691
6349
 
5692
6350
  class StudioElement extends BaseElement {
@@ -5704,7 +6362,7 @@ class StudioElement extends BaseElement {
5704
6362
  }
5705
6363
 
5706
6364
  module.exports = StudioElement;
5707
- },{"./base/base-element.js":109}],119:[function(require,module,exports){
6365
+ },{"./base/base-element.js":114}],124:[function(require,module,exports){
5708
6366
  const BaseElement = require("./base/base-element.js");
5709
6367
 
5710
6368
  class ViewerElement extends BaseElement {
@@ -5732,7 +6390,7 @@ class ViewerElement extends BaseElement {
5732
6390
  }
5733
6391
 
5734
6392
  module.exports = ViewerElement;
5735
- },{"./base/base-element.js":109}],120:[function(require,module,exports){
6393
+ },{"./base/base-element.js":114}],125:[function(require,module,exports){
5736
6394
  const BaseElement = require("./base/base-element.js");
5737
6395
 
5738
6396
  class WebXRElement extends BaseElement {
@@ -5750,7 +6408,7 @@ class WebXRElement extends BaseElement {
5750
6408
  }
5751
6409
 
5752
6410
  module.exports = WebXRElement;
5753
- },{"./base/base-element.js":109}],121:[function(require,module,exports){
6411
+ },{"./base/base-element.js":114}],126:[function(require,module,exports){
5754
6412
  "use strict";
5755
6413
  const WebXRElement = require("./elements/webxr-element.js");
5756
6414
  const ViewerElement = require("./elements/viewer-element.js");
@@ -5804,7 +6462,7 @@ console.log("using @plattar/plattar-web v" + Version);
5804
6462
  module.exports = {
5805
6463
  version: Version
5806
6464
  };
5807
- },{"./elements/configurator-element.js":110,"./elements/editor-element.js":113,"./elements/ewall-element.js":114,"./elements/facear-element.js":115,"./elements/model-element.js":116,"./elements/product-element.js":117,"./elements/studio-element.js":118,"./elements/viewer-element.js":119,"./elements/webxr-element.js":120,"./version":123}],122:[function(require,module,exports){
6465
+ },{"./elements/configurator-element.js":115,"./elements/editor-element.js":118,"./elements/ewall-element.js":119,"./elements/facear-element.js":120,"./elements/model-element.js":121,"./elements/product-element.js":122,"./elements/studio-element.js":123,"./elements/viewer-element.js":124,"./elements/webxr-element.js":125,"./version":128}],127:[function(require,module,exports){
5808
6466
  class Util {
5809
6467
  static getServerLocation(server) {
5810
6468
  switch (server) {
@@ -5879,10 +6537,10 @@ class Util {
5879
6537
  }
5880
6538
 
5881
6539
  module.exports = Util;
5882
- },{}],123:[function(require,module,exports){
5883
- module.exports = "1.122.3";
6540
+ },{}],128:[function(require,module,exports){
6541
+ module.exports = "1.123.1";
5884
6542
 
5885
- },{}],124:[function(require,module,exports){
6543
+ },{}],129:[function(require,module,exports){
5886
6544
  (function (global){(function (){
5887
6545
  "use strict";
5888
6546
 
@@ -5910,11 +6568,11 @@ exports.Headers = global.Headers;
5910
6568
  exports.Request = global.Request;
5911
6569
  exports.Response = global.Response;
5912
6570
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
5913
- },{}],125:[function(require,module,exports){
6571
+ },{}],130:[function(require,module,exports){
5914
6572
  (function (global){(function (){
5915
6573
  !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)});
5916
6574
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
5917
- },{}],126:[function(require,module,exports){
6575
+ },{}],131:[function(require,module,exports){
5918
6576
  // shim for using process in browser
5919
6577
  var process = module.exports = {};
5920
6578
 
@@ -6100,8 +6758,8 @@ process.chdir = function (dir) {
6100
6758
  };
6101
6759
  process.umask = function() { return 0; };
6102
6760
 
6103
- },{}],127:[function(require,module,exports){
6761
+ },{}],132:[function(require,module,exports){
6104
6762
  !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}));
6105
6763
 
6106
- },{}]},{},[8])(8)
6764
+ },{}]},{},[12])(12)
6107
6765
  });