@plattar/plattar-ar-adapter 2.7.1 → 2.7.3

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.
@@ -31,6 +31,8 @@ class ConfiguratorAR extends launcher_ar_1.LauncherAR {
31
31
  this._ar = null;
32
32
  }
33
33
  _SetupAnalytics() {
34
+ if (this._analytics !== null)
35
+ return;
34
36
  const scene = this._options.state.scene;
35
37
  let analytics = null;
36
38
  // setup scene stuff (if any)
@@ -240,6 +242,8 @@ class ModelAR extends launcher_ar_1.LauncherAR {
240
242
  return this._options.modelID;
241
243
  }
242
244
  _SetupAnalytics(model) {
245
+ if (this._analytics !== null)
246
+ return;
243
247
  let analytics = null;
244
248
  const project = model.relationships.find(plattar_api_1.Project);
245
249
  // setup scene stuff (if any)
@@ -387,6 +391,8 @@ class ProductAR extends launcher_ar_1.LauncherAR {
387
391
  return this._options.variationSKU;
388
392
  }
389
393
  _SetupAnalytics(product, variation) {
394
+ if (this._analytics !== null)
395
+ return;
390
396
  let analytics = null;
391
397
  const scene = product.relationships.find(plattar_api_1.Scene);
392
398
  // setup scene stuff (if any)
@@ -436,9 +442,7 @@ class ProductAR extends launcher_ar_1.LauncherAR {
436
442
  return reject(new Error("ProductAR.init() - cannot proceed as AR not available in context"));
437
443
  }
438
444
  const product = new plattar_api_1.Product(this.productID);
439
- product.include(plattar_api_1.ProductVariation);
440
445
  product.include(plattar_api_1.ProductVariation.include(plattar_api_1.FileModel));
441
- product.include(plattar_api_1.Scene);
442
446
  product.include(plattar_api_1.Scene.include(plattar_api_1.Project));
443
447
  product.get().then((product) => {
444
448
  // find the required variation from our product
@@ -594,6 +598,8 @@ class RawAR extends launcher_ar_1.LauncherAR {
594
598
  }
595
599
  _SetupAnalytics() {
596
600
  return new Promise((accept, _reject) => {
601
+ if (this._analytics !== null)
602
+ return accept();
597
603
  const sceneID = this._options.sceneID;
598
604
  if (!sceneID) {
599
605
  return accept();
@@ -718,7 +724,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
718
724
  exports.SceneAR = void 0;
719
725
  const plattar_analytics_1 = require("@plattar/plattar-analytics");
720
726
  const plattar_api_1 = require("@plattar/plattar-api");
721
- const plattar_services_1 = require("@plattar/plattar-services");
722
727
  const util_1 = require("../util/util");
723
728
  const quicklook_viewer_1 = __importDefault(require("../viewers/quicklook-viewer"));
724
729
  const scene_viewer_1 = __importDefault(require("../viewers/scene-viewer"));
@@ -747,6 +752,8 @@ class SceneAR extends launcher_ar_1.LauncherAR {
747
752
  return this._options.sceneID;
748
753
  }
749
754
  _SetupAnalytics(scene) {
755
+ if (this._analytics !== null)
756
+ return;
750
757
  let analytics = null;
751
758
  // setup scene stuff (if any)
752
759
  if (scene) {
@@ -776,58 +783,87 @@ class SceneAR extends launcher_ar_1.LauncherAR {
776
783
  * Composes a Scene into an AR Model (remote operation) that can be used to launch
777
784
  * an AR File
778
785
  */
779
- _ComposeScene(scene, output) {
780
- return new Promise((accept, reject) => {
781
- const sceneProducts = scene.relationships.filter(plattar_api_1.SceneProduct);
782
- const sceneModels = scene.relationships.filter(plattar_api_1.SceneModel);
783
- // nothing to do if no AR components can be found
784
- if ((sceneProducts.length + sceneModels.length) <= 0) {
785
- return reject(new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain AR components"));
786
- }
787
- // define our configurator
788
- const configurator = new plattar_services_1.Configurator();
789
- configurator.server = plattar_api_1.Server.location().type;
790
- configurator.output = output;
791
- let totalARObjectCount = 0;
792
- // add our scene products
793
- sceneProducts.forEach((sceneProduct) => {
794
- const product = sceneProduct.relationships.find(plattar_api_1.Product);
795
- const selection = this._options.variationSelection;
796
- // we have a specific product selection
797
- if (sceneProduct.attributes.include_in_augment) {
798
- // check if this product is the one we want (from selection optionally)
799
- if (product && (product.id === selection.productID) && selection.variationID) {
800
- configurator.addSceneProduct(sceneProduct.id, selection.variationID);
786
+ async _ComposeScene(scene, output) {
787
+ const sceneProducts = scene.relationships.filter(plattar_api_1.SceneProduct);
788
+ const sceneModels = scene.relationships.filter(plattar_api_1.SceneModel);
789
+ // nothing to do if no AR components can be found
790
+ if ((sceneProducts.length + sceneModels.length) <= 0) {
791
+ throw new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain AR components");
792
+ }
793
+ const url = `${plattar_api_1.Server.location().type === 'staging' ? 'https://converter.plattar.space' : 'https://converter.plattar.com'}/v3/converter/config-to-model`;
794
+ const payload = {
795
+ data: {
796
+ attributes: {
797
+ quality: 100,
798
+ output: output,
799
+ maps: new Array()
800
+ }
801
+ }
802
+ };
803
+ let totalARObjectCount = 0;
804
+ // add our scene products
805
+ sceneProducts.forEach((sceneProduct) => {
806
+ const product = sceneProduct.relationships.find(plattar_api_1.Product);
807
+ const selection = this._options.variationSelection;
808
+ // we have a specific product selection
809
+ if (sceneProduct.attributes.include_in_augment) {
810
+ // check if this product is the one we want (from selection optionally)
811
+ if (product && (product.id === selection.productID) && selection.variationID) {
812
+ payload.data.attributes.maps.push({
813
+ sceneproduct: sceneProduct.id,
814
+ productvariation: selection.variationID
815
+ });
816
+ totalARObjectCount++;
817
+ }
818
+ else if (product) {
819
+ // check if this scene-product is the one we want (from selection)
820
+ if ((sceneProduct.id === selection.sceneProductID) && selection.variationID) {
821
+ payload.data.attributes.maps.push({
822
+ sceneproduct: sceneProduct.id,
823
+ productvariation: selection.variationID
824
+ });
801
825
  totalARObjectCount++;
802
826
  }
803
- else if (product) {
804
- // check if this scene-product is the one we want (from selection)
805
- if ((sceneProduct.id === selection.sceneProductID) && selection.variationID) {
806
- configurator.addSceneProduct(sceneProduct.id, selection.variationID);
807
- totalARObjectCount++;
808
- }
809
- else if (product.attributes.product_variation_id) {
810
- configurator.addSceneProduct(sceneProduct.id, product.attributes.product_variation_id);
811
- totalARObjectCount++;
812
- }
827
+ else if (product.attributes.product_variation_id) {
828
+ payload.data.attributes.maps.push({
829
+ sceneproduct: sceneProduct.id,
830
+ productvariation: product.attributes.product_variation_id
831
+ });
832
+ totalARObjectCount++;
813
833
  }
814
834
  }
815
- });
816
- // add our scene models
817
- sceneModels.forEach((sceneModel) => {
818
- if (sceneModel.attributes.include_in_augment) {
819
- configurator.addModel(sceneModel.id);
820
- totalARObjectCount++;
821
- }
822
- });
823
- // ensure we have actually added AR objects
824
- if (totalARObjectCount <= 0) {
825
- return reject(new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain any enabled AR components"));
826
835
  }
827
- return configurator.get().then((result) => {
828
- accept(result.filename);
829
- }).catch(reject);
830
836
  });
837
+ // add our scene models
838
+ sceneModels.forEach((sceneModel) => {
839
+ if (sceneModel.attributes.include_in_augment) {
840
+ payload.data.attributes.maps.push({
841
+ scenemodel: sceneModel.id
842
+ });
843
+ totalARObjectCount++;
844
+ }
845
+ });
846
+ // ensure we have actually added AR objects
847
+ if (totalARObjectCount <= 0) {
848
+ throw new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain any enabled AR components");
849
+ }
850
+ try {
851
+ const response = await fetch(url, {
852
+ method: "POST",
853
+ headers: {
854
+ "Content-Type": "application/json"
855
+ },
856
+ body: JSON.stringify(payload)
857
+ });
858
+ if (!response.ok) {
859
+ throw new Error(`SceneAR.ComposeScene() - network response was not ok ${response.status}`);
860
+ }
861
+ const data = await response.json();
862
+ return data.data.attributes.filename;
863
+ }
864
+ catch (error) {
865
+ throw new Error(`SceneAR.ComposeScene() - there was a request error to ${url}, error was ${error.message}`);
866
+ }
831
867
  }
832
868
  /**
833
869
  * Initialise the SceneAR instance. This returns a Promise that resolves
@@ -843,7 +879,6 @@ class SceneAR extends launcher_ar_1.LauncherAR {
843
879
  }
844
880
  const scene = new plattar_api_1.Scene(this.sceneID);
845
881
  scene.include(plattar_api_1.Project);
846
- scene.include(plattar_api_1.SceneProduct);
847
882
  scene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product));
848
883
  scene.include(plattar_api_1.SceneModel);
849
884
  scene.get().then((scene) => {
@@ -925,7 +960,7 @@ class SceneAR extends launcher_ar_1.LauncherAR {
925
960
  }
926
961
  exports.SceneAR = SceneAR;
927
962
 
928
- },{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48,"@plattar/plattar-services":122}],7:[function(require,module,exports){
963
+ },{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],7:[function(require,module,exports){
929
964
  "use strict";
930
965
  var __importDefault = (this && this.__importDefault) || function (mod) {
931
966
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -945,6 +980,7 @@ const version_1 = __importDefault(require("../version"));
945
980
  class SceneGraphAR extends launcher_ar_1.LauncherAR {
946
981
  // analytics instance
947
982
  _analytics = null;
983
+ _analyticsSetup = null;
948
984
  _options;
949
985
  // this thing controls the actual AR view
950
986
  // this is setup via .init() function
@@ -954,32 +990,37 @@ class SceneGraphAR extends launcher_ar_1.LauncherAR {
954
990
  this._options = options;
955
991
  this._ar = null;
956
992
  }
957
- async _SetupAnalytics() {
958
- const scene = new plattar_api_1.Scene(this._options.sceneID);
959
- scene.include(plattar_api_1.Project);
960
- const fetchedScene = await scene.get();
961
- let analytics = null;
962
- analytics = new plattar_analytics_1.Analytics(fetchedScene.attributes.application_id);
963
- analytics.origin = plattar_api_1.Server.location().type;
964
- this._analytics = analytics;
965
- analytics.data.push("type", "scene-graph-ar");
966
- analytics.data.push("sdkVersion", version_1.default);
967
- analytics.data.push("sceneId", fetchedScene.id);
968
- analytics.data.push("sceneTitle", fetchedScene.attributes.title);
969
- const application = fetchedScene.relationships.find(plattar_api_1.Project);
970
- // setup application stuff (if any)
971
- if (application) {
972
- analytics.data.push("applicationId", application.id);
973
- analytics.data.push("applicationTitle", application.attributes.title);
974
- if (this._options.useARBanner) {
975
- this.options.banner = {
976
- title: application.attributes.title,
977
- subtitle: fetchedScene.attributes.title,
978
- button: 'Visit'
979
- };
993
+ _SetupAnalytics() {
994
+ if (this._analyticsSetup !== null)
995
+ return this._analyticsSetup;
996
+ this._analyticsSetup = (async () => {
997
+ const scene = new plattar_api_1.Scene(this._options.sceneID);
998
+ scene.include(plattar_api_1.Project);
999
+ const fetchedScene = await scene.get();
1000
+ let analytics = null;
1001
+ analytics = new plattar_analytics_1.Analytics(fetchedScene.attributes.application_id);
1002
+ analytics.origin = plattar_api_1.Server.location().type;
1003
+ this._analytics = analytics;
1004
+ analytics.data.push("type", "scene-graph-ar");
1005
+ analytics.data.push("sdkVersion", version_1.default);
1006
+ analytics.data.push("sceneId", fetchedScene.id);
1007
+ analytics.data.push("sceneTitle", fetchedScene.attributes.title);
1008
+ const application = fetchedScene.relationships.find(plattar_api_1.Project);
1009
+ // setup application stuff (if any)
1010
+ if (application) {
1011
+ analytics.data.push("applicationId", application.id);
1012
+ analytics.data.push("applicationTitle", application.attributes.title);
1013
+ if (this._options.useARBanner) {
1014
+ this.options.banner = {
1015
+ title: application.attributes.title,
1016
+ subtitle: fetchedScene.attributes.title,
1017
+ button: 'Visit'
1018
+ };
1019
+ }
980
1020
  }
981
- }
982
- return fetchedScene;
1021
+ return fetchedScene;
1022
+ })();
1023
+ return this._analyticsSetup;
983
1024
  }
984
1025
  /**
985
1026
  * Composes a Scene into an AR Model (remote operation) that can be used to launch
@@ -1148,6 +1189,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
1148
1189
  exports.ConfiguratorController = void 0;
1149
1190
  const plattar_api_1 = require("@plattar/plattar-api");
1150
1191
  const scene_product_ar_1 = require("../../ar/scene-product-ar");
1192
+ const configurator_state_1 = require("../../util/configurator-state");
1151
1193
  const util_1 = require("../../util/util");
1152
1194
  const plattar_controller_1 = require("./plattar-controller");
1153
1195
  const configurator_ar_1 = require("../../ar/configurator-ar");
@@ -1226,6 +1268,11 @@ class ConfiguratorController extends plattar_controller_1.PlattarController {
1226
1268
  }
1227
1269
  return Promise.reject(new Error("ConfiguratorController.startARQRCode() - legacy product transition failed"));
1228
1270
  }
1271
+ // Kick off scene-graph encoding immediately while we proceed to the base
1272
+ // implementation — the result is Promise-cached so no duplicate request is fired
1273
+ if (!this.getAttribute("scene-graph-id")) {
1274
+ dState.state.encodeSceneGraphID().catch(() => null);
1275
+ }
1229
1276
  }
1230
1277
  catch (_err) {
1231
1278
  }
@@ -1347,28 +1394,38 @@ class ConfiguratorController extends plattar_controller_1.PlattarController {
1347
1394
  // optional attributes
1348
1395
  let configState = null;
1349
1396
  this._state = plattar_controller_1.ControllerState.Renderer;
1350
- try {
1351
- const dState = await this.getConfiguratorState();
1397
+ const suppliedState = this.getAttribute("config-state");
1398
+ if (suppliedState) {
1399
+ // the state was supplied by the host page — decode it locally
1400
+ // rather than paying for the scene fetch getConfiguratorState()
1401
+ // performs before the renderer iframe can even be created. The
1402
+ // renderer only needs the re-encoded state; the flows that do
1403
+ // need the scene (QR/AR) decode on demand and reuse this same
1404
+ // instance via _bootConfigState, keeping user mutations.
1405
+ configState = configurator_state_1.ConfiguratorState.decode(suppliedState);
1406
+ this._bootConfigState = configState;
1352
1407
  // if this is declared, we have a furniture scene that we need to re-create the embed
1353
1408
  // with new attributes
1354
- const product = dState.state.firstOfType("product");
1409
+ const product = configState.firstOfType("product");
1355
1410
  if (product) {
1356
- this.parent.lockObserver();
1357
- this.parent.destroy();
1358
- this.setAttribute("product-id", product.scene_product_id);
1359
- this.removeAttribute("scene-id");
1360
- this.parent.unlockObserver();
1361
- const controller = this.parent.create();
1362
- if (controller) {
1363
- return controller.startRenderer();
1364
- }
1365
- return Promise.reject(new Error("ConfiguratorController.startRenderer() - legacy product transition failed"));
1411
+ return this._transitionLegacyProduct(product);
1366
1412
  }
1367
- configState = dState;
1368
1413
  }
1369
- catch (_err) {
1370
- // config state is not available
1371
- configState = null;
1414
+ else {
1415
+ try {
1416
+ const dState = await this.getConfiguratorState();
1417
+ // if this is declared, we have a furniture scene that we need to re-create the embed
1418
+ // with new attributes
1419
+ const product = dState.state.firstOfType("product");
1420
+ if (product) {
1421
+ return this._transitionLegacyProduct(product);
1422
+ }
1423
+ configState = dState.state;
1424
+ }
1425
+ catch (_err) {
1426
+ // config state is not available
1427
+ configState = null;
1428
+ }
1372
1429
  }
1373
1430
  // required attributes with defaults for plattar-configurator node
1374
1431
  const width = this.getAttribute("width") || "500px";
@@ -1383,7 +1440,7 @@ class ConfiguratorController extends plattar_controller_1.PlattarController {
1383
1440
  const showAR = this.getAttribute("show-ar");
1384
1441
  const showUI = this.getAttribute("show-ui");
1385
1442
  if (configState) {
1386
- const encodedState = configState.state.encode();
1443
+ const encodedState = configState.encode();
1387
1444
  if (encodedState.length < 6000) {
1388
1445
  viewer.setAttribute("config-state", encodedState);
1389
1446
  }
@@ -1402,6 +1459,22 @@ class ConfiguratorController extends plattar_controller_1.PlattarController {
1402
1459
  return accept(viewer);
1403
1460
  });
1404
1461
  }
1462
+ /**
1463
+ * Legacy furniture scenes carry a "product" state entry — the embed is
1464
+ * re-created with product attributes and rendering restarts there
1465
+ */
1466
+ async _transitionLegacyProduct(product) {
1467
+ this.parent.lockObserver();
1468
+ this.parent.destroy();
1469
+ this.setAttribute("product-id", product.scene_product_id);
1470
+ this.removeAttribute("scene-id");
1471
+ this.parent.unlockObserver();
1472
+ const controller = this.parent.create();
1473
+ if (controller) {
1474
+ return controller.startRenderer();
1475
+ }
1476
+ return Promise.reject(new Error("ConfiguratorController.startRenderer() - legacy product transition failed"));
1477
+ }
1405
1478
  async initAR() {
1406
1479
  if (!util_1.Util.canAugment()) {
1407
1480
  throw new Error("ConfiguratorController.initAR() - cannot proceed as AR not available in context");
@@ -1485,7 +1558,7 @@ class ConfiguratorController extends plattar_controller_1.PlattarController {
1485
1558
  }
1486
1559
  exports.ConfiguratorController = ConfiguratorController;
1487
1560
 
1488
- },{"../../ar/configurator-ar":1,"../../ar/scene-graph-ar":7,"../../ar/scene-product-ar":8,"../../util/util":19,"./plattar-controller":12,"@plattar/plattar-api":48}],10:[function(require,module,exports){
1561
+ },{"../../ar/configurator-ar":1,"../../ar/scene-graph-ar":7,"../../ar/scene-product-ar":8,"../../util/configurator-state":18,"../../util/util":19,"./plattar-controller":12,"@plattar/plattar-api":48}],10:[function(require,module,exports){
1489
1562
  "use strict";
1490
1563
  Object.defineProperty(exports, "__esModule", { value: true });
1491
1564
  exports.GalleryController = void 0;
@@ -1570,16 +1643,10 @@ class GalleryController extends plattar_controller_1.PlattarController {
1570
1643
  this._prevQROpt = opt;
1571
1644
  if (!opt.detached) {
1572
1645
  this._state = plattar_controller_1.ControllerState.QRCode;
1573
- return new Promise((accept, reject) => {
1574
- viewer.onload = () => {
1575
- return accept(viewer);
1576
- };
1577
- this.append(viewer);
1578
- });
1646
+ this.append(viewer);
1647
+ return this._awaitLoad(viewer);
1579
1648
  }
1580
- return new Promise((accept, reject) => {
1581
- return accept(viewer);
1582
- });
1649
+ return Promise.resolve(viewer);
1583
1650
  }
1584
1651
  async startRenderer() {
1585
1652
  // remove the old renderer instance if any
@@ -1676,6 +1743,11 @@ class LauncherController extends plattar_controller_1.PlattarController {
1676
1743
  }
1677
1744
  return Promise.reject(new Error("LauncherController.startARQRCode() - legacy product transition failed"));
1678
1745
  }
1746
+ // Kick off scene-graph encoding immediately while we proceed to the base
1747
+ // implementation — the result is Promise-cached so no duplicate request is fired
1748
+ if (!this.getAttribute("scene-graph-id")) {
1749
+ dState.state.encodeSceneGraphID().catch(() => null);
1750
+ }
1679
1751
  }
1680
1752
  catch (_err) {
1681
1753
  }
@@ -1738,10 +1810,10 @@ class LauncherController extends plattar_controller_1.PlattarController {
1738
1810
  if (sceneGraphID) {
1739
1811
  viewer.setAttribute("scene-graph-id", sceneGraphID);
1740
1812
  }
1741
- else {
1813
+ else if (configState) {
1742
1814
  try {
1743
- const sceneGraphID = await (await this.getConfiguratorState()).state.encodeSceneGraphID();
1744
- viewer.setAttribute("scene-graph-id", sceneGraphID);
1815
+ const encodedID = await configState.state.encodeSceneGraphID();
1816
+ viewer.setAttribute("scene-graph-id", encodedID);
1745
1817
  }
1746
1818
  catch (_err) {
1747
1819
  // scene graph ID not available for some reason
@@ -1752,7 +1824,7 @@ class LauncherController extends plattar_controller_1.PlattarController {
1752
1824
  return new Promise((accept, reject) => {
1753
1825
  this.append(viewer);
1754
1826
  if (configState) {
1755
- this.setupMessengerObservers(viewer, configState);
1827
+ this.setupMessengerObservers(viewer, configState.state);
1756
1828
  }
1757
1829
  return accept(viewer);
1758
1830
  });
@@ -1875,6 +1947,11 @@ class PlattarController {
1875
1947
  _state = ControllerState.None;
1876
1948
  _element = null;
1877
1949
  _prevQROpt = null;
1950
+ // when the renderer was booted from a supplied config-state attribute the
1951
+ // state is decoded locally without the scene fetch — this keeps that live
1952
+ // instance (mutated by the messenger observers as the user configures) so
1953
+ // a later full decode for QR/AR reuses it instead of losing those changes
1954
+ _bootConfigState = null;
1878
1955
  _selectVariationObserver = null;
1879
1956
  _selectVariationIDObserver = null;
1880
1957
  _selectVariationSKUObserver = null;
@@ -1896,7 +1973,7 @@ class PlattarController {
1896
1973
  // get a list of variation SKU's to use for initialising
1897
1974
  const variationSKUs = this.getAttribute("variation-sku");
1898
1975
  // generate the decoded configurator state
1899
- const decodedState = configState ? await configurator_state_1.ConfiguratorState.decodeState(sceneID, configState) : await configurator_state_1.ConfiguratorState.decodeScene(sceneID);
1976
+ const decodedState = configState ? await configurator_state_1.ConfiguratorState.decodeState(sceneID, configState, this._bootConfigState) : await configurator_state_1.ConfiguratorState.decodeScene(sceneID);
1900
1977
  // change the ID's and SKU's (if any) of the default configuration state
1901
1978
  const variationIDList = variationIDs ? variationIDs.split(",") : [];
1902
1979
  const variationSKUList = variationSKUs ? variationSKUs.split(",") : [];
@@ -1919,7 +1996,7 @@ class PlattarController {
1919
1996
  const args = cd.data[0];
1920
1997
  const variations = args ? (Array.isArray(args) ? args : [args]) : [];
1921
1998
  variations.forEach((variationID) => {
1922
- configState.state.setVariationID(variationID);
1999
+ configState.setVariationID(variationID);
1923
2000
  });
1924
2001
  }
1925
2002
  });
@@ -1928,7 +2005,7 @@ class PlattarController {
1928
2005
  const args = cd.data[0];
1929
2006
  const variations = args ? (Array.isArray(args) ? args : [args]) : [];
1930
2007
  variations.forEach((variationID) => {
1931
- configState.state.setVariationID(variationID);
2008
+ configState.setVariationID(variationID);
1932
2009
  });
1933
2010
  }
1934
2011
  });
@@ -1937,7 +2014,7 @@ class PlattarController {
1937
2014
  const args = cd.data[0];
1938
2015
  const variations = args ? (Array.isArray(args) ? args : [args]) : [];
1939
2016
  variations.forEach((variationSKU) => {
1940
- configState.state.setVariationSKU(variationSKU);
2017
+ configState.setVariationSKU(variationSKU);
1941
2018
  });
1942
2019
  }
1943
2020
  });
@@ -2059,8 +2136,9 @@ class PlattarController {
2059
2136
  }
2060
2137
  else {
2061
2138
  try {
2062
- const sceneGraphID = await (await this.getConfiguratorState()).state.encodeSceneGraphID();
2063
- dst += "&scene_graph_id=" + sceneGraphID;
2139
+ const configState = await this.getConfiguratorState();
2140
+ const encodedID = await configState.state.encodeSceneGraphID();
2141
+ dst += "&scene_graph_id=" + encodedID;
2064
2142
  }
2065
2143
  catch (_err) {
2066
2144
  // scene graph ID not available for some reason
@@ -2072,17 +2150,29 @@ class PlattarController {
2072
2150
  this._prevQROpt = opt;
2073
2151
  if (!opt.detached) {
2074
2152
  this._state = ControllerState.QRCode;
2075
- return new Promise((accept, reject) => {
2076
- this.append(viewer);
2077
- viewer.onload = () => {
2078
- return accept(viewer);
2079
- };
2080
- });
2153
+ this.append(viewer);
2154
+ return this._awaitLoad(viewer);
2081
2155
  }
2082
2156
  return new Promise((accept, reject) => {
2083
2157
  return accept(viewer);
2084
2158
  });
2085
2159
  }
2160
+ /**
2161
+ * Appends the viewer to the shadow DOM and waits for its onload event.
2162
+ * Rejects if onload does not fire within timeoutMs (default 30 s) so
2163
+ * callers are never left with a permanently-pending Promise.
2164
+ */
2165
+ _awaitLoad(viewer, timeoutMs = 30000) {
2166
+ return new Promise((accept, reject) => {
2167
+ const timeout = setTimeout(() => {
2168
+ reject(new Error("PlattarController._awaitLoad() - element did not fire onload within " + timeoutMs + "ms"));
2169
+ }, timeoutMs);
2170
+ viewer.onload = () => {
2171
+ clearTimeout(timeout);
2172
+ accept(viewer);
2173
+ };
2174
+ });
2175
+ }
2086
2176
  /**
2087
2177
  * Removes the currently active renderer view from the DOM
2088
2178
  */
@@ -2559,16 +2649,10 @@ class VTOController extends plattar_controller_1.PlattarController {
2559
2649
  this._prevQROpt = opt;
2560
2650
  if (!opt.detached) {
2561
2651
  this._state = plattar_controller_1.ControllerState.QRCode;
2562
- return new Promise((accept, reject) => {
2563
- viewer.onload = () => {
2564
- return accept(viewer);
2565
- };
2566
- this.append(viewer);
2567
- });
2652
+ this.append(viewer);
2653
+ return this._awaitLoad(viewer);
2568
2654
  }
2569
- return new Promise((accept, reject) => {
2570
- return accept(viewer);
2571
- });
2655
+ return Promise.resolve(viewer);
2572
2656
  }
2573
2657
  async startRenderer() {
2574
2658
  // remove the old renderer instance if any
@@ -2619,7 +2703,7 @@ class VTOController extends plattar_controller_1.PlattarController {
2619
2703
  return new Promise((accept, reject) => {
2620
2704
  this.append(viewer);
2621
2705
  if (configState) {
2622
- this.setupMessengerObservers(viewer, configState);
2706
+ this.setupMessengerObservers(viewer, configState.state);
2623
2707
  }
2624
2708
  return accept(viewer);
2625
2709
  });
@@ -2777,12 +2861,8 @@ class WebXRController extends plattar_controller_1.PlattarController {
2777
2861
  viewer.setAttribute("url", opt.url || dst);
2778
2862
  this._state = plattar_controller_1.ControllerState.QRCode;
2779
2863
  this._prevQROpt = opt;
2780
- return new Promise((accept, reject) => {
2781
- viewer.onload = () => {
2782
- return accept(viewer);
2783
- };
2784
- this.append(viewer);
2785
- });
2864
+ this.append(viewer);
2865
+ return this._awaitLoad(viewer);
2786
2866
  }
2787
2867
  async startRenderer() {
2788
2868
  // remove the old renderer instance if any
@@ -2812,10 +2892,8 @@ class WebXRController extends plattar_controller_1.PlattarController {
2812
2892
  if (showUI) {
2813
2893
  viewer.setAttribute("show-ui", showUI);
2814
2894
  }
2815
- return new Promise((accept, reject) => {
2816
- this.append(viewer);
2817
- return accept(viewer);
2818
- });
2895
+ this.append(viewer);
2896
+ return Promise.resolve(viewer);
2819
2897
  }
2820
2898
  async initAR() {
2821
2899
  throw new Error("WebXRController.initAR() - cannot proceed as AR not available in webxr");
@@ -2879,6 +2957,18 @@ class PlattarEmbed extends HTMLElement {
2879
2957
  connectedCallback() {
2880
2958
  this.create();
2881
2959
  }
2960
+ /**
2961
+ * Clean up when the element is removed from the DOM.
2962
+ * Disconnects the MutationObserver and removes all messenger subscriptions
2963
+ * to prevent memory leaks from dangling closures.
2964
+ */
2965
+ disconnectedCallback() {
2966
+ if (this._observer) {
2967
+ this._observer.disconnect();
2968
+ this._observer = null;
2969
+ }
2970
+ this.destroy();
2971
+ }
2882
2972
  /**
2883
2973
  * creates a brand new instance of this embed
2884
2974
  */
@@ -3182,7 +3272,7 @@ if (customElements) {
3182
3272
  }
3183
3273
  console.log("using @plattar/plattar-ar-adapter v" + version_1.default);
3184
3274
 
3185
- },{"./ar/launcher-ar":2,"./ar/model-ar":3,"./ar/product-ar":4,"./ar/raw-ar":5,"./ar/scene-ar":6,"./ar/scene-product-ar":8,"./embed/plattar-embed":16,"./util/configurator-state":18,"./util/util":19,"./version":20,"@plattar/plattar-qrcode":117,"@plattar/plattar-web":139}],18:[function(require,module,exports){
3275
+ },{"./ar/launcher-ar":2,"./ar/model-ar":3,"./ar/product-ar":4,"./ar/raw-ar":5,"./ar/scene-ar":6,"./ar/scene-product-ar":8,"./embed/plattar-embed":16,"./util/configurator-state":18,"./util/util":19,"./version":20,"@plattar/plattar-qrcode":117,"@plattar/plattar-web":134}],18:[function(require,module,exports){
3186
3276
  "use strict";
3187
3277
  Object.defineProperty(exports, "__esModule", { value: true });
3188
3278
  exports.ConfiguratorState = void 0;
@@ -3197,6 +3287,16 @@ class ConfiguratorState {
3197
3287
  _mappedVariationIDValues;
3198
3288
  // This maps Variation SKU against a Variation ID - populated by decodeScene() function
3199
3289
  _mappedVariationSKUValues;
3290
+ // Cache for encodeSceneGraphID() - keyed by serialised scene graph JSON so state
3291
+ // changes automatically bust the cache, and concurrent in-flight calls share one fetch
3292
+ _cachedSceneGraphID = null;
3293
+ _cachedSceneGraphJSON = null;
3294
+ // Memoised result of the sceneGraph getter - cleared whenever state is mutated
3295
+ _cachedSceneGraph = null;
3296
+ // Static page-lifetime cache for Scene API responses, keyed by sceneID.
3297
+ // Shared across all controller instances so that multiple <plattar-embed>
3298
+ // elements with the same scene-id (or a recreated controller) reuse one fetch.
3299
+ static _sceneAPICache = new Map();
3200
3300
  constructor(state = null) {
3201
3301
  this._mappedVariationIDValues = new Map();
3202
3302
  this._mappedVariationSKUValues = new Map();
@@ -3293,6 +3393,7 @@ class ConfiguratorState {
3293
3393
  newData[meta.scene_product_index] = SceneModelID;
3294
3394
  newData[meta.product_variation_index] = null;
3295
3395
  newData[meta.meta_index] = metaData;
3396
+ this._cachedSceneGraph = null;
3296
3397
  }
3297
3398
  }
3298
3399
  /**
@@ -3320,6 +3421,7 @@ class ConfiguratorState {
3320
3421
  newData[meta.product_index] = productID;
3321
3422
  newData[meta.product_variation_index] = productVariationID;
3322
3423
  newData[meta.meta_index] = metaData;
3424
+ this._cachedSceneGraph = null;
3323
3425
  }
3324
3426
  }
3325
3427
  /**
@@ -3348,6 +3450,7 @@ class ConfiguratorState {
3348
3450
  newData[meta.scene_product_index] = sceneProductID;
3349
3451
  newData[meta.product_variation_index] = productVariationID;
3350
3452
  newData[meta.meta_index] = metaData;
3453
+ this._cachedSceneGraph = null;
3351
3454
  }
3352
3455
  }
3353
3456
  /**
@@ -3532,24 +3635,43 @@ class ConfiguratorState {
3532
3635
  static decode(state) {
3533
3636
  return new ConfiguratorState(state);
3534
3637
  }
3638
+ /**
3639
+ * Returns a cached Promise<Scene> for the given sceneID, firing at most one
3640
+ * API request per sceneID per page lifetime. Both decodeState() and
3641
+ * decodeScene() share this cache so they never race each other.
3642
+ */
3643
+ static _fetchScene(sceneID) {
3644
+ const cached = ConfiguratorState._sceneAPICache.get(sceneID);
3645
+ if (cached) {
3646
+ return cached;
3647
+ }
3648
+ const fscene = new plattar_api_1.Scene(sceneID);
3649
+ fscene.include(plattar_api_1.Project);
3650
+ fscene.include(plattar_api_1.SceneModel);
3651
+ fscene.include(plattar_api_1.Product);
3652
+ fscene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product.include(plattar_api_1.ProductVariation)));
3653
+ const promise = fscene.get();
3654
+ ConfiguratorState._sceneAPICache.set(sceneID, promise);
3655
+ // Bust the cache on failure so the next call retries
3656
+ promise.catch(() => {
3657
+ ConfiguratorState._sceneAPICache.delete(sceneID);
3658
+ });
3659
+ return promise;
3660
+ }
3535
3661
  /**
3536
3662
  * Decodes a previously generated state
3537
3663
  * @param sceneID
3538
3664
  * @param state
3665
+ * @param existingState - (optional) reuse this already-decoded instance instead of
3666
+ * parsing a fresh one, so mutations applied to it before this call are preserved
3539
3667
  * @returns
3540
3668
  */
3541
- static async decodeState(sceneID = null, state = null) {
3669
+ static async decodeState(sceneID = null, state = null, existingState = null) {
3542
3670
  if (!sceneID || !state) {
3543
3671
  throw new Error("ConfiguratorState.decodeState(sceneID, state) - sceneID and state must be defined");
3544
3672
  }
3545
- const configState = new ConfiguratorState(state);
3546
- const fscene = new plattar_api_1.Scene(sceneID);
3547
- fscene.include(plattar_api_1.Project);
3548
- fscene.include(plattar_api_1.Product);
3549
- fscene.include(plattar_api_1.SceneProduct);
3550
- fscene.include(plattar_api_1.SceneModel);
3551
- fscene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product.include(plattar_api_1.ProductVariation)));
3552
- const scene = await fscene.get();
3673
+ const configState = existingState ?? new ConfiguratorState(state);
3674
+ const scene = await ConfiguratorState._fetchScene(sceneID);
3553
3675
  return {
3554
3676
  scene: scene,
3555
3677
  state: configState
@@ -3566,13 +3688,7 @@ class ConfiguratorState {
3566
3688
  throw new Error("ConfiguratorState.decodeScene(sceneID) - sceneID must be defined");
3567
3689
  }
3568
3690
  const configState = new ConfiguratorState();
3569
- const fscene = new plattar_api_1.Scene(sceneID);
3570
- fscene.include(plattar_api_1.Project);
3571
- fscene.include(plattar_api_1.SceneProduct);
3572
- fscene.include(plattar_api_1.SceneModel);
3573
- fscene.include(plattar_api_1.Product);
3574
- fscene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product.include(plattar_api_1.ProductVariation)));
3575
- const scene = await fscene.get();
3691
+ const scene = await ConfiguratorState._fetchScene(sceneID);
3576
3692
  const sceneProducts = scene.relationships.filter(plattar_api_1.SceneProduct);
3577
3693
  const sceneModels = scene.relationships.filter(plattar_api_1.SceneModel);
3578
3694
  const products = scene.relationships.filter(plattar_api_1.Product);
@@ -3630,42 +3746,54 @@ class ConfiguratorState {
3630
3746
  encode() {
3631
3747
  return btoa(JSON.stringify(this._state));
3632
3748
  }
3633
- async encodeSceneGraphID() {
3749
+ encodeSceneGraphID() {
3634
3750
  const graph = this.sceneGraph;
3751
+ const graphJSON = JSON.stringify(graph);
3752
+ // Return cached promise if the scene graph state hasn't changed.
3753
+ // Caching the Promise (not the resolved value) means concurrent in-flight
3754
+ // calls also share a single fetch rather than firing multiple requests.
3755
+ if (this._cachedSceneGraphID !== null && this._cachedSceneGraphJSON === graphJSON) {
3756
+ return this._cachedSceneGraphID;
3757
+ }
3635
3758
  // some scene-graphs are very large in size, we store it remotely
3636
3759
  // this storage will expire in 10 minutes so this is a non-permanent version
3637
3760
  // and is designed for quick ar
3638
3761
  const url = plattar_api_1.Server.location().type === 'staging' ? 'https://c.plattar.space/v3/redir/store' : 'https://c.plattar.com/v3/redir/store';
3639
- // finally send our scene-graph to the backend to generate the AR file and return
3640
- try {
3641
- const response = await fetch(url, {
3642
- method: "POST",
3643
- headers: {
3644
- "Content-Type": "application/json"
3645
- },
3646
- body: JSON.stringify({
3647
- data: {
3648
- attributes: {
3649
- data: graph
3650
- }
3762
+ this._cachedSceneGraphJSON = graphJSON;
3763
+ this._cachedSceneGraphID = fetch(url, {
3764
+ method: "POST",
3765
+ headers: {
3766
+ "Content-Type": "application/json"
3767
+ },
3768
+ body: JSON.stringify({
3769
+ data: {
3770
+ attributes: {
3771
+ data: graph
3651
3772
  }
3652
- })
3653
- });
3773
+ }
3774
+ })
3775
+ }).then(async (response) => {
3654
3776
  if (!response.ok) {
3655
3777
  throw new Error(`ConfiguratorState.encodeSceneGraphID() - network response was not ok ${response.status}`);
3656
3778
  }
3657
3779
  const data = await response.json();
3658
3780
  return data.data.id;
3659
- }
3660
- catch (error) {
3781
+ }).catch((error) => {
3782
+ // Bust the cache on failure so the next call retries
3783
+ this._cachedSceneGraphID = null;
3784
+ this._cachedSceneGraphJSON = null;
3661
3785
  throw new Error(`ConfiguratorState.encodeSceneGraphID() - there was a request error to ${url}, error was ${error.message}`);
3662
- }
3786
+ });
3787
+ return this._cachedSceneGraphID;
3663
3788
  }
3664
3789
  /**
3665
3790
  * Compiles and returns the Dynamic Scene Graph (Updated for 2025 for DynamicAR)
3666
3791
  * NOTE: Eventually this structure should replace ConfiguratorState
3667
3792
  */
3668
3793
  get sceneGraph() {
3794
+ if (this._cachedSceneGraph !== null) {
3795
+ return this._cachedSceneGraph;
3796
+ }
3669
3797
  const objects = this.array();
3670
3798
  // in here we need to generate the schema input to be sent to the backend service
3671
3799
  const schema = {
@@ -3692,7 +3820,8 @@ class ConfiguratorState {
3692
3820
  schema.inputs.push(data);
3693
3821
  }
3694
3822
  });
3695
- return schema;
3823
+ this._cachedSceneGraph = schema;
3824
+ return this._cachedSceneGraph;
3696
3825
  }
3697
3826
  }
3698
3827
  exports.ConfiguratorState = ConfiguratorState;
@@ -3705,6 +3834,7 @@ exports.Util = void 0;
3705
3834
  * Static Utility Functions
3706
3835
  */
3707
3836
  class Util {
3837
+ static _cache = new Map();
3708
3838
  static isValidServerLocation(server) {
3709
3839
  if (!server) {
3710
3840
  return false;
@@ -3730,67 +3860,118 @@ class Util {
3730
3860
  return false;
3731
3861
  }
3732
3862
  static canAugment() {
3733
- return Util.canQuicklook() || Util.canSceneViewer();
3863
+ if (Util._cache.has('canAugment'))
3864
+ return Util._cache.get('canAugment');
3865
+ const result = Util.canQuicklook() || Util.canSceneViewer();
3866
+ Util._cache.set('canAugment', result);
3867
+ return result;
3734
3868
  }
3735
3869
  static canQuicklook() {
3870
+ if (Util._cache.has('canQuicklook'))
3871
+ return Util._cache.get('canQuicklook');
3872
+ let result = false;
3736
3873
  if (Util.isIOS()) {
3737
3874
  const isWKWebView = Boolean((window && window).webkit && window.webkit.messageHandlers);
3738
3875
  if (isWKWebView) {
3739
- return Boolean(/CriOS\/|EdgiOS\/|FxiOS\/|GSA\/|DuckDuckGo\//.test(navigator.userAgent));
3876
+ result = Boolean(/CriOS\/|EdgiOS\/|FxiOS\/|GSA\/|DuckDuckGo\//.test(navigator.userAgent));
3877
+ }
3878
+ else {
3879
+ const tempAnchor = document.createElement("a");
3880
+ result = Boolean(tempAnchor.relList && tempAnchor.relList.supports && tempAnchor.relList.supports("ar"));
3740
3881
  }
3741
- const tempAnchor = document.createElement("a");
3742
- return tempAnchor.relList && tempAnchor.relList.supports && tempAnchor.relList.supports("ar");
3743
3882
  }
3744
- return false;
3883
+ Util._cache.set('canQuicklook', result);
3884
+ return result;
3745
3885
  }
3746
3886
  static canSceneViewer() {
3747
- return Util.isAndroid() && !Util.isFirefox() && !Util.isOculus();
3887
+ if (Util._cache.has('canSceneViewer'))
3888
+ return Util._cache.get('canSceneViewer');
3889
+ const result = Util.isAndroid() && !Util.isFirefox() && !Util.isOculus();
3890
+ Util._cache.set('canSceneViewer', result);
3891
+ return result;
3748
3892
  }
3749
3893
  static canRealityViewer() {
3750
- return Util.isIOS() && Util.getIOSVersion()[0] >= 13;
3894
+ if (Util._cache.has('canRealityViewer'))
3895
+ return Util._cache.get('canRealityViewer');
3896
+ const result = Util.isIOS() && Util.getIOSVersion()[0] >= 13;
3897
+ Util._cache.set('canRealityViewer', result);
3898
+ return result;
3751
3899
  }
3752
3900
  static isSafariOnIOS() {
3753
- return Util.isIOS() && Util.isSafari();
3901
+ if (Util._cache.has('isSafariOnIOS'))
3902
+ return Util._cache.get('isSafariOnIOS');
3903
+ const result = Util.isIOS() && Util.isSafari();
3904
+ Util._cache.set('isSafariOnIOS', result);
3905
+ return result;
3754
3906
  }
3755
3907
  static isChromeOnIOS() {
3756
- return Util.isIOS() && /CriOS\//.test(navigator.userAgent);
3908
+ if (Util._cache.has('isChromeOnIOS'))
3909
+ return Util._cache.get('isChromeOnIOS');
3910
+ const result = Util.isIOS() && /CriOS\//.test(navigator.userAgent);
3911
+ Util._cache.set('isChromeOnIOS', result);
3912
+ return result;
3757
3913
  }
3758
3914
  static isIOS() {
3759
- return (/iPad|iPhone|iPod/.test(navigator.userAgent) && !self.MSStream) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1);
3915
+ if (Util._cache.has('isIOS'))
3916
+ return Util._cache.get('isIOS');
3917
+ const result = (/iPad|iPhone|iPod/.test(navigator.userAgent) && !self.MSStream) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1);
3918
+ Util._cache.set('isIOS', result);
3919
+ return result;
3760
3920
  }
3761
3921
  static isAndroid() {
3762
- return /android/i.test(navigator.userAgent);
3922
+ if (Util._cache.has('isAndroid'))
3923
+ return Util._cache.get('isAndroid');
3924
+ const result = /android/i.test(navigator.userAgent);
3925
+ Util._cache.set('isAndroid', result);
3926
+ return result;
3763
3927
  }
3764
3928
  static isFirefox() {
3765
- return /firefox/i.test(navigator.userAgent);
3929
+ if (Util._cache.has('isFirefox'))
3930
+ return Util._cache.get('isFirefox');
3931
+ const result = /firefox/i.test(navigator.userAgent);
3932
+ Util._cache.set('isFirefox', result);
3933
+ return result;
3766
3934
  }
3767
3935
  static isOculus() {
3768
- return /OculusBrowser/.test(navigator.userAgent);
3936
+ if (Util._cache.has('isOculus'))
3937
+ return Util._cache.get('isOculus');
3938
+ const result = /OculusBrowser/.test(navigator.userAgent);
3939
+ Util._cache.set('isOculus', result);
3940
+ return result;
3769
3941
  }
3770
3942
  static isSafari() {
3771
- return Util.isIOS() && /Safari\//.test(navigator.userAgent);
3943
+ if (Util._cache.has('isSafari'))
3944
+ return Util._cache.get('isSafari');
3945
+ const result = Util.isIOS() && /Safari\//.test(navigator.userAgent);
3946
+ Util._cache.set('isSafari', result);
3947
+ return result;
3772
3948
  }
3773
3949
  static getIOSVersion() {
3950
+ if (Util._cache.has('getIOSVersion'))
3951
+ return Util._cache.get('getIOSVersion');
3952
+ let result = [-1, -1, -1];
3774
3953
  if (/iP(hone|od|ad)/.test(navigator.platform)) {
3775
3954
  const v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
3776
3955
  if (v !== null) {
3777
- return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3], 10)];
3956
+ result = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3], 10)];
3778
3957
  }
3779
3958
  }
3780
- if (/Mac/.test(navigator.platform)) {
3959
+ else if (/Mac/.test(navigator.platform)) {
3781
3960
  const v = (navigator.appVersion).match(/Version\/(\d+)\.(\d+)\.?(\d+)?/);
3782
3961
  if (v !== null) {
3783
- return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3], 10)];
3962
+ result = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3], 10)];
3784
3963
  }
3785
3964
  }
3786
- return [-1, -1, -1];
3965
+ Util._cache.set('getIOSVersion', result);
3966
+ return result;
3787
3967
  }
3788
3968
  static getChromeVersion() {
3969
+ if (Util._cache.has('getChromeVersion'))
3970
+ return Util._cache.get('getChromeVersion');
3789
3971
  const raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
3790
- if (raw !== null) {
3791
- return parseInt(raw[2], 10);
3792
- }
3793
- return 1;
3972
+ const result = raw !== null ? parseInt(raw[2], 10) : 1;
3973
+ Util._cache.set('getChromeVersion', result);
3974
+ return result;
3794
3975
  }
3795
3976
  }
3796
3977
  exports.Util = Util;
@@ -3798,7 +3979,7 @@ exports.Util = Util;
3798
3979
  },{}],20:[function(require,module,exports){
3799
3980
  "use strict";
3800
3981
  Object.defineProperty(exports, "__esModule", { value: true });
3801
- exports.default = "2.7.1";
3982
+ exports.default = "2.7.3";
3802
3983
 
3803
3984
  },{}],21:[function(require,module,exports){
3804
3985
  "use strict";
@@ -5577,8 +5758,11 @@ class Util {
5577
5758
  exports.Util = Util;
5578
5759
 
5579
5760
  },{}],47:[function(require,module,exports){
5580
- arguments[4][20][0].apply(exports,arguments)
5581
- },{"dup":20}],48:[function(require,module,exports){
5761
+ "use strict";
5762
+ Object.defineProperty(exports, "__esModule", { value: true });
5763
+ exports.default = "2.7.1";
5764
+
5765
+ },{}],48:[function(require,module,exports){
5582
5766
  "use strict";
5583
5767
  const Server = require("./server/plattar-server.js");
5584
5768
  const Util = require("./util/plattar-util.js");
@@ -6231,7 +6415,7 @@ PlattarQuery._DeleteGlobalCachedObject = (obj) => {
6231
6415
  };
6232
6416
 
6233
6417
  module.exports = PlattarQuery;
6234
- },{"../util/plattar-util.js":113,"node-fetch":145}],50:[function(require,module,exports){
6418
+ },{"../util/plattar-util.js":113,"node-fetch":140}],50:[function(require,module,exports){
6235
6419
  (function (process){(function (){
6236
6420
  const fetch = require("node-fetch");
6237
6421
 
@@ -6459,7 +6643,7 @@ PlattarServer.location = () => {
6459
6643
 
6460
6644
  module.exports = PlattarServer;
6461
6645
  }).call(this)}).call(this,require('_process'))
6462
- },{"_process":147,"node-fetch":145}],51:[function(require,module,exports){
6646
+ },{"_process":142,"node-fetch":140}],51:[function(require,module,exports){
6463
6647
  const PlattarBase = require("./interfaces/plattar-base.js");
6464
6648
 
6465
6649
  class Application extends PlattarBase {
@@ -7982,7 +8166,7 @@ class BaseElement extends HTMLElement {
7982
8166
  }
7983
8167
 
7984
8168
  module.exports = BaseElement;
7985
- },{"object-hash":146,"qr-code-styling":148}],116:[function(require,module,exports){
8169
+ },{"object-hash":141,"qr-code-styling":143}],116:[function(require,module,exports){
7986
8170
  const BaseElement = require("./base/base-element.js");
7987
8171
 
7988
8172
  class QRCodeElement extends BaseElement {
@@ -8011,347 +8195,6 @@ module.exports = {
8011
8195
  },{"./elements/qrcode-element.js":116,"./version":118}],118:[function(require,module,exports){
8012
8196
  arguments[4][114][0].apply(exports,arguments)
8013
8197
  },{"dup":114}],119:[function(require,module,exports){
8014
- "use strict";
8015
- var __importDefault = (this && this.__importDefault) || function (mod) {
8016
- return (mod && mod.__esModule) ? mod : { "default": mod };
8017
- };
8018
- Object.defineProperty(exports, "__esModule", { value: true });
8019
- exports.Configurator = void 0;
8020
- const plattar_api_1 = require("@plattar/plattar-api");
8021
- const object_hash_1 = __importDefault(require("object-hash"));
8022
- const remote_request_1 = require("./remote-request");
8023
- class Configurator {
8024
- _maps;
8025
- _attrHash;
8026
- quality = 100;
8027
- output = "glb";
8028
- server = "production";
8029
- retry = 0;
8030
- constructor() {
8031
- this._maps = [];
8032
- this._attrHash = [];
8033
- }
8034
- add(sceneProduct = null, productVariation = null) {
8035
- this.addSceneProduct(sceneProduct, productVariation);
8036
- }
8037
- addSceneProduct(sceneProduct = null, productVariation = null) {
8038
- if (!sceneProduct) {
8039
- throw new Error("Configurator.addSceneProduct() - sceneProduct input was null or undefined");
8040
- }
8041
- if (!productVariation) {
8042
- throw new Error("Configurator.addSceneProduct() - productVariation input was null or undefined");
8043
- }
8044
- const map = {
8045
- sceneproduct: null,
8046
- productvariation: null
8047
- };
8048
- if ((sceneProduct instanceof plattar_api_1.SceneProduct) && (productVariation instanceof plattar_api_1.ProductVariation)) {
8049
- map.sceneproduct = sceneProduct.id;
8050
- map.productvariation = productVariation.id;
8051
- this._maps.push(map);
8052
- return;
8053
- }
8054
- if ((typeof sceneProduct === "string" || sceneProduct instanceof String) && (typeof productVariation === "string" || productVariation instanceof String)) {
8055
- map.sceneproduct = sceneProduct;
8056
- map.productvariation = productVariation;
8057
- this._maps.push(map);
8058
- return;
8059
- }
8060
- throw new Error("Configurator.addSceneProduct() - mismatched instance types for inputs");
8061
- }
8062
- addProduct(product = null, productVariation = null) {
8063
- if (!product) {
8064
- throw new Error("Configurator.addProduct() - product input was null or undefined");
8065
- }
8066
- if (!productVariation) {
8067
- throw new Error("Configurator.addProduct() - productVariation input was null or undefined");
8068
- }
8069
- const map = {
8070
- productvariation: null,
8071
- product: null
8072
- };
8073
- if ((product instanceof plattar_api_1.Product) && (productVariation instanceof plattar_api_1.ProductVariation)) {
8074
- map.product = product.id;
8075
- map.productvariation = productVariation.id;
8076
- this._maps.push(map);
8077
- return;
8078
- }
8079
- if ((typeof product === "string" || product instanceof String) && (typeof productVariation === "string" || productVariation instanceof String)) {
8080
- map.product = product;
8081
- map.productvariation = productVariation;
8082
- this._maps.push(map);
8083
- return;
8084
- }
8085
- throw new Error("Configurator.addProduct() - mismatched instance types for inputs");
8086
- }
8087
- addModel(sceneModel = null) {
8088
- if (!sceneModel) {
8089
- throw new Error("Configurator.addModel() - sceneModel input was null or undefined");
8090
- }
8091
- const map = {
8092
- scenemodel: null
8093
- };
8094
- if (sceneModel instanceof plattar_api_1.SceneModel) {
8095
- map.scenemodel = sceneModel.id;
8096
- this._maps.push(map);
8097
- return;
8098
- }
8099
- if (typeof sceneModel === "string") {
8100
- map.scenemodel = sceneModel;
8101
- this._maps.push(map);
8102
- return;
8103
- }
8104
- throw new Error("Configurator.addModel() - mismatched instance types for inputs");
8105
- }
8106
- get() {
8107
- return new Promise((accept, reject) => {
8108
- this._CalculateHash().then(() => {
8109
- remote_request_1.RemoteRequest.request(this._GetPayload(), (this.retry < 0 ? 0 : this.retry)).then(accept).catch(reject);
8110
- }).catch((_err) => {
8111
- reject(new Error("Configurator.get() - one of the objects does not exist in Plattar API"));
8112
- });
8113
- });
8114
- }
8115
- _CalculateHash() {
8116
- return new Promise((accept, reject) => {
8117
- const promises = [];
8118
- const oldOrigin = plattar_api_1.Server.default().originLocation.type;
8119
- plattar_api_1.Server.create(plattar_api_1.Server.match(this.server));
8120
- this._maps.forEach((map) => {
8121
- if (map.productvariation) {
8122
- promises.push(new plattar_api_1.ProductVariation(map.productvariation).get());
8123
- }
8124
- if (map.sceneproduct) {
8125
- promises.push(new plattar_api_1.SceneProduct(map.sceneproduct).get());
8126
- }
8127
- if (map.scenemodel) {
8128
- promises.push(new plattar_api_1.SceneModel(map.scenemodel).get());
8129
- }
8130
- if (map.product) {
8131
- promises.push(new plattar_api_1.Product(map.product).get());
8132
- }
8133
- });
8134
- Promise.all(promises).then((values) => {
8135
- values.forEach((value) => {
8136
- this._attrHash.push(value.attributes);
8137
- });
8138
- // reset server back
8139
- plattar_api_1.Server.create(plattar_api_1.Server.match(oldOrigin));
8140
- accept();
8141
- }).catch(() => {
8142
- // reset server back
8143
- plattar_api_1.Server.create(plattar_api_1.Server.match(oldOrigin));
8144
- reject(new Error("Configurator._CalculateHash() - unexpected error"));
8145
- });
8146
- });
8147
- }
8148
- _GetPayload() {
8149
- const converter = this.output === "vto" ? "config_to_reality" : "config_to_model";
8150
- const load = {
8151
- options: {
8152
- converter: converter,
8153
- quality: this.quality,
8154
- output: this.output,
8155
- server: this.server
8156
- },
8157
- data: {
8158
- maps: this._maps
8159
- }
8160
- };
8161
- if (this._attrHash.length > 0) {
8162
- load.options.hash = object_hash_1.default.MD5(this._attrHash) + object_hash_1.default.MD5(load);
8163
- }
8164
- else {
8165
- load.options.hash = object_hash_1.default.MD5(load);
8166
- }
8167
- return load;
8168
- }
8169
- }
8170
- exports.Configurator = Configurator;
8171
-
8172
- },{"./remote-request":121,"@plattar/plattar-api":48,"object-hash":146}],120:[function(require,module,exports){
8173
- "use strict";
8174
- var __importDefault = (this && this.__importDefault) || function (mod) {
8175
- return (mod && mod.__esModule) ? mod : { "default": mod };
8176
- };
8177
- Object.defineProperty(exports, "__esModule", { value: true });
8178
- exports.ModelConverter = void 0;
8179
- const plattar_api_1 = require("@plattar/plattar-api");
8180
- const object_hash_1 = __importDefault(require("object-hash"));
8181
- const remote_request_1 = require("./remote-request");
8182
- class ModelConverter {
8183
- _attrHash;
8184
- _model = null;
8185
- quality = 100;
8186
- output = "glb";
8187
- server = "production";
8188
- retry = 0;
8189
- constructor() {
8190
- this._attrHash = [];
8191
- }
8192
- get model() {
8193
- return this._model;
8194
- }
8195
- set model(newModel) {
8196
- if (!newModel) {
8197
- return;
8198
- }
8199
- if (newModel instanceof plattar_api_1.FileModel) {
8200
- this._model = newModel.id;
8201
- this._attrHash.push(object_hash_1.default.MD5(newModel.attributes));
8202
- return;
8203
- }
8204
- this._model = newModel;
8205
- }
8206
- get() {
8207
- return new Promise((accept, reject) => {
8208
- if (!this._model) {
8209
- return reject(new Error("ModelConverter.get() - required .model attribute was not set"));
8210
- }
8211
- remote_request_1.RemoteRequest.request(this._Payload, (this.retry < 0 ? 0 : this.retry)).then(accept).catch(reject);
8212
- });
8213
- }
8214
- get _Payload() {
8215
- const load = {
8216
- options: {
8217
- converter: "gltf_to_model",
8218
- quality: this.quality,
8219
- output: this.output,
8220
- server: this.server
8221
- },
8222
- data: {
8223
- model: this._model
8224
- }
8225
- };
8226
- if (this._attrHash.length > 0) {
8227
- load.options.hash = object_hash_1.default.MD5(this._attrHash) + object_hash_1.default.MD5(load);
8228
- }
8229
- else {
8230
- load.options.hash = object_hash_1.default.MD5(load);
8231
- }
8232
- return load;
8233
- }
8234
- }
8235
- exports.ModelConverter = ModelConverter;
8236
-
8237
- },{"./remote-request":121,"@plattar/plattar-api":48,"object-hash":146}],121:[function(require,module,exports){
8238
- "use strict";
8239
- Object.defineProperty(exports, "__esModule", { value: true });
8240
- exports.RemoteRequest = void 0;
8241
- /**
8242
- * This is used by the core types to perform remote requests
8243
- */
8244
- class RemoteRequest {
8245
- static request(payload, retry = 0) {
8246
- return new Promise((accept, reject) => {
8247
- if (retry >= 0) {
8248
- RemoteRequest._send(payload).then(accept).catch((err) => {
8249
- const newretry = retry - 1;
8250
- if (newretry < 0) {
8251
- return reject(err);
8252
- }
8253
- console.error("RemoteRequest.request() - retry number " + newretry);
8254
- console.error(err);
8255
- setTimeout(() => {
8256
- RemoteRequest.request(payload, newretry).then(accept).catch(reject);
8257
- }, 500);
8258
- });
8259
- }
8260
- else {
8261
- return reject(new Error("RemoteRequest.request() - attempted all retries without success"));
8262
- }
8263
- });
8264
- }
8265
- static _send(payload) {
8266
- return new Promise((accept, reject) => {
8267
- const endpoint = payload.options.server === "dev" ? "http://localhost:9000/2015-03-31/functions/function/invocations" : "https://3gbnq7wuw2.execute-api.ap-southeast-2.amazonaws.com/main/xrutils";
8268
- const reqopts = {
8269
- method: "POST",
8270
- headers: {
8271
- 'Accept': 'application/json',
8272
- 'Content-Type': 'application/json'
8273
- },
8274
- body: JSON.stringify(payload)
8275
- };
8276
- fetch(endpoint, reqopts)
8277
- .then((res) => {
8278
- if (res.ok) {
8279
- try {
8280
- return res.json();
8281
- }
8282
- catch (err) {
8283
- return new Error("RemoteRequest.request() - critical error occured, cannot proceed");
8284
- }
8285
- }
8286
- return new Error("RemoteRequest.request() - unexpected error occured, cannot proceed. error message is " + res.statusText);
8287
- })
8288
- .then((json) => {
8289
- if (json instanceof Error) {
8290
- reject(json);
8291
- }
8292
- else {
8293
- accept(json);
8294
- }
8295
- });
8296
- });
8297
- }
8298
- }
8299
- exports.RemoteRequest = RemoteRequest;
8300
-
8301
- },{}],122:[function(require,module,exports){
8302
- "use strict";
8303
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8304
- if (k2 === undefined) k2 = k;
8305
- var desc = Object.getOwnPropertyDescriptor(m, k);
8306
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8307
- desc = { enumerable: true, get: function() { return m[k]; } };
8308
- }
8309
- Object.defineProperty(o, k2, desc);
8310
- }) : (function(o, m, k, k2) {
8311
- if (k2 === undefined) k2 = k;
8312
- o[k2] = m[k];
8313
- }));
8314
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
8315
- Object.defineProperty(o, "default", { enumerable: true, value: v });
8316
- }) : function(o, v) {
8317
- o["default"] = v;
8318
- });
8319
- var __importStar = (this && this.__importStar) || (function () {
8320
- var ownKeys = function(o) {
8321
- ownKeys = Object.getOwnPropertyNames || function (o) {
8322
- var ar = [];
8323
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
8324
- return ar;
8325
- };
8326
- return ownKeys(o);
8327
- };
8328
- return function (mod) {
8329
- if (mod && mod.__esModule) return mod;
8330
- var result = {};
8331
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
8332
- __setModuleDefault(result, mod);
8333
- return result;
8334
- };
8335
- })();
8336
- var __importDefault = (this && this.__importDefault) || function (mod) {
8337
- return (mod && mod.__esModule) ? mod : { "default": mod };
8338
- };
8339
- Object.defineProperty(exports, "__esModule", { value: true });
8340
- exports.version = exports.ModelConverter = exports.Configurator = void 0;
8341
- var configurator_1 = require("./core/configurator");
8342
- Object.defineProperty(exports, "Configurator", { enumerable: true, get: function () { return configurator_1.Configurator; } });
8343
- var model_converter_1 = require("./core/model-converter");
8344
- Object.defineProperty(exports, "ModelConverter", { enumerable: true, get: function () { return model_converter_1.ModelConverter; } });
8345
- exports.version = __importStar(require("./version"));
8346
- const version_1 = __importDefault(require("./version"));
8347
- console.log("using @plattar/plattar-services v" + version_1.default);
8348
-
8349
- },{"./core/configurator":119,"./core/model-converter":120,"./version":123}],123:[function(require,module,exports){
8350
- "use strict";
8351
- Object.defineProperty(exports, "__esModule", { value: true });
8352
- exports.default = "2.7.2";
8353
-
8354
- },{}],124:[function(require,module,exports){
8355
8198
  const BaseElement = require("./base/base-element.js");
8356
8199
 
8357
8200
  class AdhocElement extends BaseElement {
@@ -8413,7 +8256,7 @@ class AdhocElement extends BaseElement {
8413
8256
  }
8414
8257
 
8415
8258
  module.exports = AdhocElement;
8416
- },{"./base/base-element.js":125}],125:[function(require,module,exports){
8259
+ },{"./base/base-element.js":120}],120:[function(require,module,exports){
8417
8260
  const Util = require("../../util/util");
8418
8261
  const ElementController = require("../controllers/element-controller");
8419
8262
  const { messenger } = require("@plattar/context-messenger");
@@ -8600,7 +8443,7 @@ class BaseElement extends HTMLElement {
8600
8443
  }
8601
8444
 
8602
8445
  module.exports = BaseElement;
8603
- },{"../../util/util":140,"../controllers/element-controller":127,"@plattar/context-messenger":25}],126:[function(require,module,exports){
8446
+ },{"../../util/util":135,"../controllers/element-controller":122,"@plattar/context-messenger":25}],121:[function(require,module,exports){
8604
8447
  const BaseElement = require("./base/base-element.js");
8605
8448
 
8606
8449
  class ConfiguratorElement extends BaseElement {
@@ -8655,7 +8498,7 @@ class ConfiguratorElement extends BaseElement {
8655
8498
  }
8656
8499
 
8657
8500
  module.exports = ConfiguratorElement;
8658
- },{"./base/base-element.js":125}],127:[function(require,module,exports){
8501
+ },{"./base/base-element.js":120}],122:[function(require,module,exports){
8659
8502
  const Util = require("../../util/util.js");
8660
8503
  const { messenger } = require("@plattar/context-messenger");
8661
8504
  const IFrameController = require("./iframe-controller.js");
@@ -8740,7 +8583,7 @@ class ElementController {
8740
8583
  }
8741
8584
 
8742
8585
  module.exports = ElementController;
8743
- },{"../../util/util.js":140,"./iframe-controller.js":128,"@plattar/context-messenger":25}],128:[function(require,module,exports){
8586
+ },{"../../util/util.js":135,"./iframe-controller.js":123,"@plattar/context-messenger":25}],123:[function(require,module,exports){
8744
8587
  const Util = require("../../util/util.js");
8745
8588
 
8746
8589
  class IFrameController {
@@ -8842,7 +8685,7 @@ class IFrameController {
8842
8685
  }
8843
8686
 
8844
8687
  module.exports = IFrameController;
8845
- },{"../../util/util.js":140}],129:[function(require,module,exports){
8688
+ },{"../../util/util.js":135}],124:[function(require,module,exports){
8846
8689
  const BaseElement = require("./base/base-element.js");
8847
8690
 
8848
8691
  class EditorElement extends BaseElement {
@@ -8860,7 +8703,7 @@ class EditorElement extends BaseElement {
8860
8703
  }
8861
8704
 
8862
8705
  module.exports = EditorElement;
8863
- },{"./base/base-element.js":125}],130:[function(require,module,exports){
8706
+ },{"./base/base-element.js":120}],125:[function(require,module,exports){
8864
8707
  const BaseElement = require("./base/base-element.js");
8865
8708
 
8866
8709
  class EWallElement extends BaseElement {
@@ -8878,7 +8721,7 @@ class EWallElement extends BaseElement {
8878
8721
  }
8879
8722
 
8880
8723
  module.exports = EWallElement;
8881
- },{"./base/base-element.js":125}],131:[function(require,module,exports){
8724
+ },{"./base/base-element.js":120}],126:[function(require,module,exports){
8882
8725
  const BaseElement = require("./base/base-element.js");
8883
8726
 
8884
8727
  class FaceARElement extends BaseElement {
@@ -8915,7 +8758,7 @@ class FaceARElement extends BaseElement {
8915
8758
  }
8916
8759
 
8917
8760
  module.exports = FaceARElement;
8918
- },{"./base/base-element.js":125}],132:[function(require,module,exports){
8761
+ },{"./base/base-element.js":120}],127:[function(require,module,exports){
8919
8762
  const BaseElement = require("./base/base-element.js");
8920
8763
 
8921
8764
  class GalleryElement extends BaseElement {
@@ -8937,7 +8780,7 @@ class GalleryElement extends BaseElement {
8937
8780
  }
8938
8781
 
8939
8782
  module.exports = GalleryElement;
8940
- },{"./base/base-element.js":125}],133:[function(require,module,exports){
8783
+ },{"./base/base-element.js":120}],128:[function(require,module,exports){
8941
8784
  const BaseElement = require("./base/base-element.js");
8942
8785
 
8943
8786
  class LauncherElement extends BaseElement {
@@ -9000,7 +8843,7 @@ class LauncherElement extends BaseElement {
9000
8843
  }
9001
8844
 
9002
8845
  module.exports = LauncherElement;
9003
- },{"./base/base-element.js":125}],134:[function(require,module,exports){
8846
+ },{"./base/base-element.js":120}],129:[function(require,module,exports){
9004
8847
  const BaseElement = require("./base/base-element.js");
9005
8848
 
9006
8849
  class ModelElement extends BaseElement {
@@ -9035,7 +8878,7 @@ class ModelElement extends BaseElement {
9035
8878
  }
9036
8879
 
9037
8880
  module.exports = ModelElement;
9038
- },{"./base/base-element.js":125}],135:[function(require,module,exports){
8881
+ },{"./base/base-element.js":120}],130:[function(require,module,exports){
9039
8882
  const BaseElement = require("./base/base-element.js");
9040
8883
 
9041
8884
  class ProductElement extends BaseElement {
@@ -9073,7 +8916,7 @@ class ProductElement extends BaseElement {
9073
8916
  }
9074
8917
 
9075
8918
  module.exports = ProductElement;
9076
- },{"./base/base-element.js":125}],136:[function(require,module,exports){
8919
+ },{"./base/base-element.js":120}],131:[function(require,module,exports){
9077
8920
  const BaseElement = require("./base/base-element.js");
9078
8921
 
9079
8922
  class StudioElement extends BaseElement {
@@ -9101,7 +8944,7 @@ class StudioElement extends BaseElement {
9101
8944
  }
9102
8945
 
9103
8946
  module.exports = StudioElement;
9104
- },{"./base/base-element.js":125}],137:[function(require,module,exports){
8947
+ },{"./base/base-element.js":120}],132:[function(require,module,exports){
9105
8948
  const BaseElement = require("./base/base-element.js");
9106
8949
 
9107
8950
  class ViewerElement extends BaseElement {
@@ -9135,7 +8978,7 @@ class ViewerElement extends BaseElement {
9135
8978
  }
9136
8979
 
9137
8980
  module.exports = ViewerElement;
9138
- },{"./base/base-element.js":125}],138:[function(require,module,exports){
8981
+ },{"./base/base-element.js":120}],133:[function(require,module,exports){
9139
8982
  const BaseElement = require("./base/base-element.js");
9140
8983
 
9141
8984
  class WebXRElement extends BaseElement {
@@ -9153,7 +8996,7 @@ class WebXRElement extends BaseElement {
9153
8996
  }
9154
8997
 
9155
8998
  module.exports = WebXRElement;
9156
- },{"./base/base-element.js":125}],139:[function(require,module,exports){
8999
+ },{"./base/base-element.js":120}],134:[function(require,module,exports){
9157
9000
  "use strict";
9158
9001
  const WebXRElement = require("./elements/webxr-element.js");
9159
9002
  const ViewerElement = require("./elements/viewer-element.js");
@@ -9222,7 +9065,7 @@ console.log("using @plattar/plattar-web v" + Version);
9222
9065
  module.exports = {
9223
9066
  version: Version
9224
9067
  };
9225
- },{"./elements/adhoc-element.js":124,"./elements/configurator-element.js":126,"./elements/editor-element.js":129,"./elements/ewall-element.js":130,"./elements/facear-element.js":131,"./elements/gallery-element.js":132,"./elements/launcher-element.js":133,"./elements/model-element.js":134,"./elements/product-element.js":135,"./elements/studio-element.js":136,"./elements/viewer-element.js":137,"./elements/webxr-element.js":138,"./version":141}],140:[function(require,module,exports){
9068
+ },{"./elements/adhoc-element.js":119,"./elements/configurator-element.js":121,"./elements/editor-element.js":124,"./elements/ewall-element.js":125,"./elements/facear-element.js":126,"./elements/gallery-element.js":127,"./elements/launcher-element.js":128,"./elements/model-element.js":129,"./elements/product-element.js":130,"./elements/studio-element.js":131,"./elements/viewer-element.js":132,"./elements/webxr-element.js":133,"./version":136}],135:[function(require,module,exports){
9226
9069
  class Util {
9227
9070
  static getServerLocation(server) {
9228
9071
  switch (server) {
@@ -9283,10 +9126,10 @@ class Util {
9283
9126
  }
9284
9127
 
9285
9128
  module.exports = Util;
9286
- },{}],141:[function(require,module,exports){
9129
+ },{}],136:[function(require,module,exports){
9287
9130
  module.exports = "2.7.2";
9288
9131
 
9289
- },{}],142:[function(require,module,exports){
9132
+ },{}],137:[function(require,module,exports){
9290
9133
  'use strict'
9291
9134
 
9292
9135
  exports.byteLength = byteLength
@@ -9438,7 +9281,7 @@ function fromByteArray (uint8) {
9438
9281
  return parts.join('')
9439
9282
  }
9440
9283
 
9441
- },{}],143:[function(require,module,exports){
9284
+ },{}],138:[function(require,module,exports){
9442
9285
  (function (Buffer){(function (){
9443
9286
  /*!
9444
9287
  * The buffer module from node.js, for the browser.
@@ -11219,7 +11062,7 @@ function numberIsNaN (obj) {
11219
11062
  }
11220
11063
 
11221
11064
  }).call(this)}).call(this,require("buffer").Buffer)
11222
- },{"base64-js":142,"buffer":143,"ieee754":144}],144:[function(require,module,exports){
11065
+ },{"base64-js":137,"buffer":138,"ieee754":139}],139:[function(require,module,exports){
11223
11066
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
11224
11067
  exports.read = function (buffer, offset, isLE, mLen, nBytes) {
11225
11068
  var e, m
@@ -11306,7 +11149,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
11306
11149
  buffer[offset + i - d] |= s * 128
11307
11150
  }
11308
11151
 
11309
- },{}],145:[function(require,module,exports){
11152
+ },{}],140:[function(require,module,exports){
11310
11153
  (function (global){(function (){
11311
11154
  "use strict";
11312
11155
 
@@ -11335,11 +11178,11 @@ exports.Request = globalObject.Request;
11335
11178
  exports.Response = globalObject.Response;
11336
11179
 
11337
11180
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
11338
- },{}],146:[function(require,module,exports){
11181
+ },{}],141:[function(require,module,exports){
11339
11182
  (function (global){(function (){
11340
11183
  !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 r(o,i,u){function s(n,e){if(!i[n]){if(!o[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(a)return a(n,!0);throw new Error("Cannot find module '"+n+"'")}e=i[n]={exports:{}};o[n][0].call(e.exports,function(e){var t=o[n][1][e];return s(t||e)},e,e.exports,r,o,i,u)}return i[n].exports}for(var a="function"==typeof require&&require,e=0;e<u.length;e++)s(u[e]);return s}({1:[function(w,b,m){!function(e,n,s,c,d,h,p,g,y){"use strict";var r=w("crypto");function t(e,t){t=u(e,t);var n;return void 0===(n="passthrough"!==t.algorithm?r.createHash(t.algorithm):new l).write&&(n.write=n.update,n.end=n.update),f(t,n).dispatch(e),n.update||n.end(""),n.digest?n.digest("buffer"===t.encoding?void 0:t.encoding):(e=n.read(),"buffer"!==t.encoding?e.toString(t.encoding):e)}(m=b.exports=t).sha1=function(e){return t(e)},m.keys=function(e){return t(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},m.MD5=function(e){return t(e,{algorithm:"md5",encoding:"hex"})},m.keysMD5=function(e){return t(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var o=r.getHashes?r.getHashes().slice():["sha1","md5"],i=(o.push("passthrough"),["buffer","hex","binary","base64"]);function u(e,t){var n={};if(n.algorithm=(t=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<o.length;++r)o[r].toLowerCase()===n.algorithm.toLowerCase()&&(n.algorithm=o[r]);if(-1===o.indexOf(n.algorithm))throw new Error('Algorithm "'+n.algorithm+'" not supported. supported values: '+o.join(", "));if(-1===i.indexOf(n.encoding)&&"passthrough"!==n.algorithm)throw new Error('Encoding "'+n.encoding+'" not supported. supported values: '+i.join(", "));return n}function a(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 f(o,t,i){i=i||[];function u(e){return t.update?t.update(e,"utf8"):t.write(e,"utf8")}return{dispatch:function(e){return this["_"+(null===(e=o.replacer?o.replacer(e):e)?"null":typeof e)](e)},_object:function(t){var n,e=Object.prototype.toString.call(t),r=/\[object (.*)\]/i.exec(e);r=(r=r?r[1]:"unknown:["+e+"]").toLowerCase();if(0<=(e=i.indexOf(t)))return this.dispatch("[CIRCULAR:"+e+"]");if(i.push(t),void 0!==s&&s.isBuffer&&s.isBuffer(t))return u("buffer:"),u(t);if("object"===r||"function"===r||"asyncfunction"===r)return e=Object.keys(t),o.unorderedObjects&&(e=e.sort()),!1===o.respectType||a(t)||e.splice(0,0,"prototype","__proto__","constructor"),o.excludeKeys&&(e=e.filter(function(e){return!o.excludeKeys(e)})),u("object:"+e.length+":"),n=this,e.forEach(function(e){n.dispatch(e),u(":"),o.excludeValues||n.dispatch(t[e]),u(",")});if(!this["_"+r]){if(o.ignoreUnknown)return u("["+r+"]");throw new Error('Unknown object type "'+r+'"')}this["_"+r](t)},_array:function(e,t){t=void 0!==t?t:!1!==o.unorderedArrays;var n=this;if(u("array:"+e.length+":"),!t||e.length<=1)return e.forEach(function(e){return n.dispatch(e)});var r=[],t=e.map(function(e){var t=new l,n=i.slice();return f(o,t,n).dispatch(e),r=r.concat(n.slice(i.length)),t.read().toString()});return i=i.concat(r),t.sort(),this._array(t,!1)},_date:function(e){return u("date:"+e.toJSON())},_symbol:function(e){return u("symbol:"+e.toString())},_error:function(e){return u("error:"+e.toString())},_boolean:function(e){return u("bool:"+e.toString())},_string:function(e){u("string:"+e.length+":"),u(e.toString())},_function:function(e){u("fn:"),a(e)?this.dispatch("[native]"):this.dispatch(e.toString()),!1!==o.respectFunctionNames&&this.dispatch("function-name:"+String(e.name)),o.respectFunctionProperties&&this._object(e)},_number:function(e){return u("number:"+e.toString())},_xml:function(e){return u("xml:"+e.toString())},_null:function(){return u("Null")},_undefined:function(){return u("Undefined")},_regexp:function(e){return u("regex:"+e.toString())},_uint8array:function(e){return u("uint8array:"),this.dispatch(Array.prototype.slice.call(e))},_uint8clampedarray:function(e){return u("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(e))},_int8array:function(e){return u("int8array:"),this.dispatch(Array.prototype.slice.call(e))},_uint16array:function(e){return u("uint16array:"),this.dispatch(Array.prototype.slice.call(e))},_int16array:function(e){return u("int16array:"),this.dispatch(Array.prototype.slice.call(e))},_uint32array:function(e){return u("uint32array:"),this.dispatch(Array.prototype.slice.call(e))},_int32array:function(e){return u("int32array:"),this.dispatch(Array.prototype.slice.call(e))},_float32array:function(e){return u("float32array:"),this.dispatch(Array.prototype.slice.call(e))},_float64array:function(e){return u("float64array:"),this.dispatch(Array.prototype.slice.call(e))},_arraybuffer:function(e){return u("arraybuffer:"),this.dispatch(new Uint8Array(e))},_url:function(e){return u("url:"+e.toString())},_map:function(e){u("map:");e=Array.from(e);return this._array(e,!1!==o.unorderedSets)},_set:function(e){u("set:");e=Array.from(e);return this._array(e,!1!==o.unorderedSets)},_file:function(e){return u("file:"),this.dispatch([e.name,e.size,e.type,e.lastModfied])},_blob:function(){if(o.ignoreUnknown)return u("[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 u("domwindow")},_bigint:function(e){return u("bigint:"+e.toString())},_process:function(){return u("process")},_timer:function(){return u("timer")},_pipe:function(){return u("pipe")},_tcp:function(){return u("tcp")},_udp:function(){return u("udp")},_tty:function(){return u("tty")},_statwatcher:function(){return u("statwatcher")},_securecontext:function(){return u("securecontext")},_connection:function(){return u("connection")},_zlib:function(){return u("zlib")},_context:function(){return u("context")},_nodescript:function(){return u("nodescript")},_httpparser:function(){return u("httpparser")},_dataview:function(){return u("dataview")},_signal:function(){return u("signal")},_fsevent:function(){return u("fsevent")},_tlswrap:function(){return u("tlswrap")}}}function l(){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={}),f(t=u(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_9a5aa49d.js","/")},{buffer:3,crypto:5,lYpoI2:11}],2:[function(e,t,f){!function(e,t,n,r,o,i,u,s,a){!function(e){"use strict";var a="undefined"!=typeof Uint8Array?Uint8Array:Array,t="+".charCodeAt(0),n="/".charCodeAt(0),r="0".charCodeAt(0),o="a".charCodeAt(0),i="A".charCodeAt(0),u="-".charCodeAt(0),s="_".charCodeAt(0);function f(e){e=e.charCodeAt(0);return e===t||e===u?62:e===n||e===s?63:e<r?-1:e<r+10?e-r+26+26:e<i+26?e-i:e<o+26?e-o+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,r="="===e.charAt(r-2)?2:"="===e.charAt(r-1)?1:0,o=new a(3*e.length/4-r),i=0<r?e.length-4:e.length,u=0;function s(e){o[u++]=e}for(t=0;t<i;t+=4,0)s((16711680&(n=f(e.charAt(t))<<18|f(e.charAt(t+1))<<12|f(e.charAt(t+2))<<6|f(e.charAt(t+3))))>>16),s((65280&n)>>8),s(255&n);return 2==r?s(255&(n=f(e.charAt(t))<<2|f(e.charAt(t+1))>>4)):1==r&&(s((n=f(e.charAt(t))<<10|f(e.charAt(t+1))<<4|f(e.charAt(t+2))>>2)>>8&255),s(255&n)),o},e.fromByteArray=function(e){var t,n,r,o,i=e.length%3,u="";function s(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+=s((o=n)>>18&63)+s(o>>12&63)+s(o>>6&63)+s(63&o);switch(i){case 1:u=(u+=s((n=e[e.length-1])>>2))+s(n<<4&63)+"==";break;case 2:u=(u=(u+=s((n=(e[e.length-2]<<8)+e[e.length-1])>>10))+s(n>>4&63))+s(n<<2&63)+"="}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:11}],3:[function(O,e,H){!function(e,n,f,r,h,p,g,y,w){var a=O("base64-js"),i=O("ieee754");function f(e,t,n){if(!(this instanceof f))return new f(e,t,n);var r,o,i,u,s=typeof e;if("base64"===t&&"string"==s)for(e=(u=e).trim?u.trim():u.replace(/^\s+|\s+$/g,"");e.length%4!=0;)e+="=";if("number"==s)r=j(e);else if("string"==s)r=f.byteLength(e,t);else{if("object"!=s)throw new Error("First argument needs to be a number, array or string.");r=j(e.length)}if(f._useTypedArrays?o=f._augment(new Uint8Array(r)):((o=this).length=r,o._isBuffer=!0),f._useTypedArrays&&"number"==typeof e.byteLength)o._set(e);else if(C(u=e)||f.isBuffer(u)||u&&"object"==typeof u&&"number"==typeof u.length)for(i=0;i<r;i++)f.isBuffer(e)?o[i]=e.readUInt8(i):o[i]=e[i];else if("string"==s)o.write(e,0,t);else if("number"==s&&!f._useTypedArrays&&!n)for(i=0;i<r;i++)o[i]=0;return o}function b(e,t,n,r){return f._charsWritten=c(function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function m(e,t,n,r){return f._charsWritten=c(function(e){for(var t,n,r=[],o=0;o<e.length;o++)n=e.charCodeAt(o),t=n>>8,n=n%256,r.push(n),r.push(t);return r}(t),e,n,r)}function v(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 o(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,r=e.length;if(!(r<=t))return n?(o=e[t],t+1<r&&(o|=e[t+1]<<8)):(o=e[t]<<8,t+1<r&&(o|=e[t+1])),o}function u(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,r=e.length;if(!(r<=t))return n?(t+2<r&&(o=e[t+2]<<16),t+1<r&&(o|=e[t+1]<<8),o|=e[t],t+3<r&&(o+=e[t+3]<<24>>>0)):(t+1<r&&(o=e[t+1]<<16),t+2<r&&(o|=e[t+2]<<8),t+3<r&&(o|=e[t+3]),o+=e[t]<<24>>>0),o}function _(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))return r=o(e,t,n,!0),32768&r?-1*(65535-r+1):r}function E(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))return r=u(e,t,n,!0),2147483648&r?-1*(4294967295-r+1):r}function I(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")),i.read(e,t,n,23,4)}function A(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")),i.read(e,t,n,52,8)}function s(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,65535));o=e.length;if(!(o<=n))for(var i=0,u=Math.min(o-n,2);i<u;i++)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function l(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,4294967295));o=e.length;if(!(o<=n))for(var i=0,u=Math.min(o-n,4);i<u;i++)e[n+i]=t>>>8*(r?i:3-i)&255}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+1<e.length,"Trying to write beyond buffer length"),F(t,32767,-32768)),e.length<=n||s(e,0<=t?t:65535+t+1,n,r,o)}function L(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,2147483647,-2147483648)),e.length<=n||l(e,0<=t?t:4294967295+t+1,n,r,o)}function U(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"),D(t,34028234663852886e22,-34028234663852886e22)),e.length<=n||i.write(e,t,n,r,23,4)}function x(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"),D(t,17976931348623157e292,-17976931348623157e292)),e.length<=n||i.write(e,t,n,r,52,8)}H.Buffer=f,H.SlowBuffer=f,H.INSPECT_MAX_BYTES=50,f.poolSize=8192,f._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}}(),f.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}},f.isBuffer=function(e){return!(null==e||!e._isBuffer)},f.byteLength=function(e,t){var n;switch(e+="",t||"utf8"){case"hex":n=e.length/2;break;case"utf8":case"utf-8":n=T(e).length;break;case"ascii":case"binary":case"raw":n=e.length;break;case"base64":n=M(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},f.concat=function(e,t){if(d(C(e),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===e.length)return new f(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 f(t),r=0,o=0;o<e.length;o++){var i=e[o];i.copy(n,r),r+=i.length}return n},f.prototype.write=function(e,t,n,r){isFinite(t)?isFinite(n)||(r=n,n=void 0):(a=r,r=t,t=n,n=a),t=Number(t)||0;var o,i,u,s,a=this.length-t;switch((!n||a<(n=Number(n)))&&(n=a),r=String(r||"utf8").toLowerCase()){case"hex":o=function(e,t,n,r){n=Number(n)||0;var o=e.length-n;(!r||o<(r=Number(r)))&&(r=o),d((o=t.length)%2==0,"Invalid hex string"),o/2<r&&(r=o/2);for(var i=0;i<r;i++){var u=parseInt(t.substr(2*i,2),16);d(!isNaN(u),"Invalid hex string"),e[n+i]=u}return f._charsWritten=2*i,i}(this,e,t,n);break;case"utf8":case"utf-8":i=this,u=t,s=n,o=f._charsWritten=c(T(e),i,u,s);break;case"ascii":case"binary":o=b(this,e,t,n);break;case"base64":i=this,u=t,s=n,o=f._charsWritten=c(M(e),i,u,s);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":o=m(this,e,t,n);break;default:throw new Error("Unknown encoding")}return o},f.prototype.toString=function(e,t,n){var r,o,i,u,s=this;if(e=String(e||"utf8").toLowerCase(),t=Number(t)||0,(n=void 0!==n?Number(n):s.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+=k(e[i]);return o}(s,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+=N(o)+String.fromCharCode(e[i]),o=""):o+="%"+e[i].toString(16);return r+N(o)}(s,t,n);break;case"ascii":case"binary":r=v(s,t,n);break;case"base64":o=s,u=n,r=0===(i=t)&&u===o.length?a.fromByteArray(o):a.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}(s,t,n);break;default:throw new Error("Unknown encoding")}return r},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},f.prototype.copy=function(e,t,n,r){if(t=t||0,(r=r||0===r?r:this.length)!==(n=n||0)&&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);var o=(r=e.length-t<r-n?e.length-t+n:r)-n;if(o<100||!f._useTypedArrays)for(var i=0;i<o;i++)e[i+t]=this[i+n];else e._set(this.subarray(n,n+o),t)}},f.prototype.slice=function(e,t){var n=this.length;if(e=S(e,n,0),t=S(t,n,n),f._useTypedArrays)return f._augment(this.subarray(e,t));for(var r=t-e,o=new f(r,void 0,!0),i=0;i<r;i++)o[i]=this[i+e];return o},f.prototype.get=function(e){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(e)},f.prototype.set=function(e,t){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(e,t)},f.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]},f.prototype.readUInt16LE=function(e,t){return o(this,e,!0,t)},f.prototype.readUInt16BE=function(e,t){return o(this,e,!1,t)},f.prototype.readUInt32LE=function(e,t){return u(this,e,!0,t)},f.prototype.readUInt32BE=function(e,t){return u(this,e,!1,t)},f.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]},f.prototype.readInt16LE=function(e,t){return _(this,e,!0,t)},f.prototype.readInt16BE=function(e,t){return _(this,e,!1,t)},f.prototype.readInt32LE=function(e,t){return E(this,e,!0,t)},f.prototype.readInt32BE=function(e,t){return E(this,e,!1,t)},f.prototype.readFloatLE=function(e,t){return I(this,e,!0,t)},f.prototype.readFloatBE=function(e,t){return I(this,e,!1,t)},f.prototype.readDoubleLE=function(e,t){return A(this,e,!0,t)},f.prototype.readDoubleBE=function(e,t){return A(this,e,!1,t)},f.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"),Y(e,255)),t>=this.length||(this[t]=e)},f.prototype.writeUInt16LE=function(e,t,n){s(this,e,t,!0,n)},f.prototype.writeUInt16BE=function(e,t,n){s(this,e,t,!1,n)},f.prototype.writeUInt32LE=function(e,t,n){l(this,e,t,!0,n)},f.prototype.writeUInt32BE=function(e,t,n){l(this,e,t,!1,n)},f.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"),F(e,127,-128)),t>=this.length||(0<=e?this.writeUInt8(e,t,n):this.writeUInt8(255+e+1,t,n))},f.prototype.writeInt16LE=function(e,t,n){B(this,e,t,!0,n)},f.prototype.writeInt16BE=function(e,t,n){B(this,e,t,!1,n)},f.prototype.writeInt32LE=function(e,t,n){L(this,e,t,!0,n)},f.prototype.writeInt32BE=function(e,t,n){L(this,e,t,!1,n)},f.prototype.writeFloatLE=function(e,t,n){U(this,e,t,!0,n)},f.prototype.writeFloatBE=function(e,t,n){U(this,e,t,!1,n)},f.prototype.writeDoubleLE=function(e,t,n){x(this,e,t,!0,n)},f.prototype.writeDoubleBE=function(e,t,n){x(this,e,t,!1,n)},f.prototype.fill=function(e,t,n){if(t=t||0,n=n||this.length,d("number"==typeof(e="string"==typeof(e=e||0)?e.charCodeAt(0):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}},f.prototype.inspect=function(){for(var e=[],t=this.length,n=0;n<t;n++)if(e[n]=k(this[n]),n===H.INSPECT_MAX_BYTES){e[n+1]="...";break}return"<Buffer "+e.join(" ")+">"},f.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(f._useTypedArrays)return new f(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 t=f.prototype;function S(e,t,n){return"number"!=typeof e?n:t<=(e=~~e)?t:0<=e||0<=(e+=t)?e:0}function j(e){return(e=~~Math.ceil(+e))<0?0:e}function C(e){return(Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)})(e)}function k(e){return e<16?"0"+e.toString(16):e.toString(16)}function T(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<=127)t.push(e.charCodeAt(n));else for(var o=n,i=(55296<=r&&r<=57343&&n++,encodeURIComponent(e.slice(o,n+1)).substr(1).split("%")),u=0;u<i.length;u++)t.push(parseInt(i[u],16))}return t}function M(e){return a.toByteArray(e)}function c(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 N(e){try{return decodeURIComponent(e)}catch(e){return String.fromCharCode(65533)}}function Y(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 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"),d(Math.floor(e)===e,"value has a fractional component")}function D(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")}f._augment=function(e){return e._isBuffer=!0,e._get=e.get,e._set=e.set,e.get=t.get,e.set=t.set,e.write=t.write,e.toString=t.toString,e.toLocaleString=t.toString,e.toJSON=t.toJSON,e.copy=t.copy,e.slice=t.slice,e.readUInt8=t.readUInt8,e.readUInt16LE=t.readUInt16LE,e.readUInt16BE=t.readUInt16BE,e.readUInt32LE=t.readUInt32LE,e.readUInt32BE=t.readUInt32BE,e.readInt8=t.readInt8,e.readInt16LE=t.readInt16LE,e.readInt16BE=t.readInt16BE,e.readInt32LE=t.readInt32LE,e.readInt32BE=t.readInt32BE,e.readFloatLE=t.readFloatLE,e.readFloatBE=t.readFloatBE,e.readDoubleLE=t.readDoubleLE,e.readDoubleBE=t.readDoubleBE,e.writeUInt8=t.writeUInt8,e.writeUInt16LE=t.writeUInt16LE,e.writeUInt16BE=t.writeUInt16BE,e.writeUInt32LE=t.writeUInt32LE,e.writeUInt32BE=t.writeUInt32BE,e.writeInt8=t.writeInt8,e.writeInt16LE=t.writeInt16LE,e.writeInt16BE=t.writeInt16BE,e.writeInt32LE=t.writeInt32LE,e.writeInt32BE=t.writeInt32BE,e.writeFloatLE=t.writeFloatLE,e.writeFloatBE=t.writeFloatBE,e.writeDoubleLE=t.writeDoubleLE,e.writeDoubleBE=t.writeDoubleBE,e.fill=t.fill,e.inspect=t.inspect,e.toArrayBuffer=t.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:10,lYpoI2:11}],4:[function(c,d,e){!function(e,t,a,n,r,o,i,u,s){var a=c("buffer").Buffer,f=4,l=new a(f);l.fill(0);d.exports={hash:function(e,t,n,r){for(var o=t(function(e,t){e.length%f!=0&&(n=e.length+(f-e.length%f),e=a.concat([e,l],n));for(var n,r=[],o=t?e.readInt32BE:e.readInt32LE,i=0;i<e.length;i+=f)r.push(o.call(e,i));return r}(e=a.isBuffer(e)?e:new a(e),r),8*e.length),t=r,i=new a(n),u=t?i.writeInt32BE:i.writeInt32LE,s=0;s<o.length;s++)u.call(i,o[s],4*s,!0);return i}}}.call(this,c("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},c("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:11}],5:[function(v,e,_){!function(l,c,u,d,h,p,g,y,w){var u=v("buffer").Buffer,e=v("./sha"),t=v("./sha256"),n=v("./rng"),b={sha1:e,sha256:t,md5:v("./md5")},s=64,a=new u(s);function r(e,n){var r=b[e=e||"sha1"],o=[];return r||i("algorithm:",e,"is not yet supported"),{update:function(e){return u.isBuffer(e)||(e=new u(e)),o.push(e),e.length,this},digest:function(e){var t=u.concat(o),t=n?function(e,t,n){u.isBuffer(t)||(t=new u(t)),u.isBuffer(n)||(n=new u(n)),t.length>s?t=e(t):t.length<s&&(t=u.concat([t,a],s));for(var r=new u(s),o=new u(s),i=0;i<s;i++)r[i]=54^t[i],o[i]=92^t[i];return n=e(u.concat([r,n])),e(u.concat([o,n]))}(r,n,t):r(t);return o=null,e?t.toString(e):t}}}function i(){var e=[].slice.call(arguments).join(" ");throw new Error([e,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}a.fill(0),_.createHash=function(e){return r(e)},_.createHmac=r,_.randomBytes=function(e,t){if(!t||!t.call)return new u(n(e));try{t.call(this,void 0,new u(n(e)))}catch(e){t(e)}};var o,f=["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],m=function(e){_[e]=function(){i("sorry,",e,"is not implemented yet")}};for(o in f)m(f[o],o)}.call(this,v("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},v("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:11}],6:[function(w,b,e){!function(e,r,o,i,u,a,f,l,y){var t=w("./helpers");function n(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 s=n,a=r,f=o,l=i,n=c(n,r,o,i,e[u+0],7,-680876936),i=c(i,n,r,o,e[u+1],12,-389564586),o=c(o,i,n,r,e[u+2],17,606105819),r=c(r,o,i,n,e[u+3],22,-1044525330);n=c(n,r,o,i,e[u+4],7,-176418897),i=c(i,n,r,o,e[u+5],12,1200080426),o=c(o,i,n,r,e[u+6],17,-1473231341),r=c(r,o,i,n,e[u+7],22,-45705983),n=c(n,r,o,i,e[u+8],7,1770035416),i=c(i,n,r,o,e[u+9],12,-1958414417),o=c(o,i,n,r,e[u+10],17,-42063),r=c(r,o,i,n,e[u+11],22,-1990404162),n=c(n,r,o,i,e[u+12],7,1804603682),i=c(i,n,r,o,e[u+13],12,-40341101),o=c(o,i,n,r,e[u+14],17,-1502002290),n=d(n,r=c(r,o,i,n,e[u+15],22,1236535329),o,i,e[u+1],5,-165796510),i=d(i,n,r,o,e[u+6],9,-1069501632),o=d(o,i,n,r,e[u+11],14,643717713),r=d(r,o,i,n,e[u+0],20,-373897302),n=d(n,r,o,i,e[u+5],5,-701558691),i=d(i,n,r,o,e[u+10],9,38016083),o=d(o,i,n,r,e[u+15],14,-660478335),r=d(r,o,i,n,e[u+4],20,-405537848),n=d(n,r,o,i,e[u+9],5,568446438),i=d(i,n,r,o,e[u+14],9,-1019803690),o=d(o,i,n,r,e[u+3],14,-187363961),r=d(r,o,i,n,e[u+8],20,1163531501),n=d(n,r,o,i,e[u+13],5,-1444681467),i=d(i,n,r,o,e[u+2],9,-51403784),o=d(o,i,n,r,e[u+7],14,1735328473),n=h(n,r=d(r,o,i,n,e[u+12],20,-1926607734),o,i,e[u+5],4,-378558),i=h(i,n,r,o,e[u+8],11,-2022574463),o=h(o,i,n,r,e[u+11],16,1839030562),r=h(r,o,i,n,e[u+14],23,-35309556),n=h(n,r,o,i,e[u+1],4,-1530992060),i=h(i,n,r,o,e[u+4],11,1272893353),o=h(o,i,n,r,e[u+7],16,-155497632),r=h(r,o,i,n,e[u+10],23,-1094730640),n=h(n,r,o,i,e[u+13],4,681279174),i=h(i,n,r,o,e[u+0],11,-358537222),o=h(o,i,n,r,e[u+3],16,-722521979),r=h(r,o,i,n,e[u+6],23,76029189),n=h(n,r,o,i,e[u+9],4,-640364487),i=h(i,n,r,o,e[u+12],11,-421815835),o=h(o,i,n,r,e[u+15],16,530742520),n=p(n,r=h(r,o,i,n,e[u+2],23,-995338651),o,i,e[u+0],6,-198630844),i=p(i,n,r,o,e[u+7],10,1126891415),o=p(o,i,n,r,e[u+14],15,-1416354905),r=p(r,o,i,n,e[u+5],21,-57434055),n=p(n,r,o,i,e[u+12],6,1700485571),i=p(i,n,r,o,e[u+3],10,-1894986606),o=p(o,i,n,r,e[u+10],15,-1051523),r=p(r,o,i,n,e[u+1],21,-2054922799),n=p(n,r,o,i,e[u+8],6,1873313359),i=p(i,n,r,o,e[u+15],10,-30611744),o=p(o,i,n,r,e[u+6],15,-1560198380),r=p(r,o,i,n,e[u+13],21,1309151649),n=p(n,r,o,i,e[u+4],6,-145523070),i=p(i,n,r,o,e[u+11],10,-1120210379),o=p(o,i,n,r,e[u+2],15,718787259),r=p(r,o,i,n,e[u+9],21,-343485551),n=g(n,s),r=g(r,a),o=g(o,f),i=g(i,l)}return Array(n,r,o,i)}function s(e,t,n,r,o,i){return g((t=g(g(t,e),g(r,i)))<<o|t>>>32-o,n)}function c(e,t,n,r,o,i,u){return s(t&n|~t&r,e,t,o,i,u)}function d(e,t,n,r,o,i,u){return s(t&r|n&~r,e,t,o,i,u)}function h(e,t,n,r,o,i,u){return s(t^n^r,e,t,o,i,u)}function p(e,t,n,r,o,i,u){return s(n^(t|~r),e,t,o,i,u)}function g(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}b.exports=function(e){return t.hash(e,n,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:11}],7:[function(e,l,t){!function(e,t,n,r,o,i,u,s,f){var a;l.exports=a||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}}.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:11}],8:[function(c,d,e){!function(e,t,n,r,o,s,a,f,l){var i=c("./helpers");function u(l,c){l[c>>5]|=128<<24-c%32,l[15+(c+64>>9<<4)]=c;for(var e,t,n,r=Array(80),o=1732584193,i=-271733879,u=-1732584194,s=271733878,d=-1009589776,h=0;h<l.length;h+=16){for(var p=o,g=i,y=u,w=s,b=d,a=0;a<80;a++){r[a]=a<16?l[h+a]:v(r[a-3]^r[a-8]^r[a-14]^r[a-16],1);var f=m(m(v(o,5),(f=i,t=u,n=s,(e=a)<20?f&t|~f&n:!(e<40)&&e<60?f&t|f&n|t&n:f^t^n)),m(m(d,r[a]),(e=a)<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514)),d=s,s=u,u=v(i,30),i=o,o=f}o=m(o,p),i=m(i,g),u=m(u,y),s=m(s,w),d=m(d,b)}return Array(o,i,u,s,d)}function m(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function v(e,t){return e<<t|e>>>32-t}d.exports=function(e){return i.hash(e,u,20,!0)}}.call(this,c("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},c("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:11}],9:[function(c,d,e){!function(e,t,n,r,u,s,a,f,l){function b(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,l){var c,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),t=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),n=new Array(64);e[l>>5]|=128<<24-l%32,e[15+(l+64>>9<<4)]=l;for(var r,o,h=0;h<e.length;h+=16){for(var i=t[0],u=t[1],s=t[2],p=t[3],a=t[4],g=t[5],y=t[6],w=t[7],f=0;f<64;f++)n[f]=f<16?e[f+h]:b(b(b((o=n[f-2],m(o,17)^m(o,19)^v(o,10)),n[f-7]),(o=n[f-15],m(o,7)^m(o,18)^v(o,3))),n[f-16]),c=b(b(b(b(w,m(o=a,6)^m(o,11)^m(o,25)),a&g^~a&y),d[f]),n[f]),r=b(m(r=i,2)^m(r,13)^m(r,22),i&u^i&s^u&s),w=y,y=g,g=a,a=b(p,c),p=s,s=u,u=i,i=b(c,r);t[0]=b(i,t[0]),t[1]=b(u,t[1]),t[2]=b(s,t[2]),t[3]=b(p,t[3]),t[4]=b(a,t[4]),t[5]=b(g,t[5]),t[6]=b(y,t[6]),t[7]=b(w,t[7])}return t}var i=c("./helpers"),m=function(e,t){return e>>>t|e<<32-t},v=function(e,t){return e>>>t};d.exports=function(e){return i.hash(e,o,32,!0)}}.call(this,c("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},c("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:11}],10:[function(e,t,f){!function(e,t,n,r,o,i,u,s,a){f.read=function(e,t,n,r,o){var i,u,l=8*o-r-1,c=(1<<l)-1,d=c>>1,s=-7,a=n?o-1:0,f=n?-1:1,o=e[t+a];for(a+=f,i=o&(1<<-s)-1,o>>=-s,s+=l;0<s;i=256*i+e[t+a],a+=f,s-=8);for(u=i&(1<<-s)-1,i>>=-s,s+=r;0<s;u=256*u+e[t+a],a+=f,s-=8);if(0===i)i=1-d;else{if(i===c)return u?NaN:1/0*(o?-1:1);u+=Math.pow(2,r),i-=d}return(o?-1:1)*u*Math.pow(2,i-r)},f.write=function(e,t,l,n,r,c){var o,i,u=8*c-r-1,s=(1<<u)-1,a=s>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:c-1,h=n?1:-1,c=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(i=isNaN(t)?1:0,o=s):(o=Math.floor(Math.log(t)/Math.LN2),t*(n=Math.pow(2,-o))<1&&(o--,n*=2),2<=(t+=1<=o+a?d/n:d*Math.pow(2,1-a))*n&&(o++,n/=2),s<=o+a?(i=0,o=s):1<=o+a?(i=(t*n-1)*Math.pow(2,r),o+=a):(i=t*Math.pow(2,a-1)*Math.pow(2,r),o=0));8<=r;e[l+f]=255&i,f+=h,i/=256,r-=8);for(o=o<<r|i,u+=r;0<u;e[l+f]=255&o,f+=h,o/=256,u-=8);e[l+f-h]|=128*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/ieee754/index.js","/node_modules/gulp-browserify/node_modules/ieee754")},{buffer:3,lYpoI2:11}],11:[function(e,h,t){!function(e,t,n,r,o,f,l,c,d){var i,u,s;function a(){}(e=h.exports={}).nextTick=(u="undefined"!=typeof window&&window.setImmediate,s="undefined"!=typeof window&&window.postMessage&&window.addEventListener,u?function(e){return window.setImmediate(e)}:s?(i=[],window.addEventListener("message",function(e){var t=e.source;t!==window&&null!==t||"process-tick"!==e.data||(e.stopPropagation(),0<i.length&&i.shift()())},!0),function(e){i.push(e),window.postMessage("process-tick","*")}):function(e){setTimeout(e,0)}),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=a,e.addListener=a,e.once=a,e.off=a,e.removeListener=a,e.removeAllListeners=a,e.emit=a,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:11}]},{},[1])(1)});
11341
11184
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
11342
- },{}],147:[function(require,module,exports){
11185
+ },{}],142:[function(require,module,exports){
11343
11186
  // shim for using process in browser
11344
11187
  var process = module.exports = {};
11345
11188
 
@@ -11525,10 +11368,10 @@ process.chdir = function (dir) {
11525
11368
  };
11526
11369
  process.umask = function() { return 0; };
11527
11370
 
11528
- },{}],148:[function(require,module,exports){
11371
+ },{}],143:[function(require,module,exports){
11529
11372
  (function (Buffer){(function (){
11530
11373
  !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()}(this,(()=>(()=>{var t={873:(t,e)=>{var i,r,n=function(){var t=function(t,e){var i=t,r=s[e],n=null,o=0,h=null,p=[],v={},m=function(t,e){n=function(t){for(var e=new Array(t),i=0;i<t;i+=1){e[i]=new Array(t);for(var r=0;r<t;r+=1)e[i][r]=null}return e}(o=4*i+17),b(0,0),b(o-7,0),b(0,o-7),x(),y(),C(t,e),i>=7&&S(t),null==h&&(h=M(i,r,p)),A(h,e)},b=function(t,e){for(var i=-1;i<=7;i+=1)if(!(t+i<=-1||o<=t+i))for(var r=-1;r<=7;r+=1)e+r<=-1||o<=e+r||(n[t+i][e+r]=0<=i&&i<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==i||6==i)||2<=i&&i<=4&&2<=r&&r<=4)},y=function(){for(var t=8;t<o-8;t+=1)null==n[t][6]&&(n[t][6]=t%2==0);for(var e=8;e<o-8;e+=1)null==n[6][e]&&(n[6][e]=e%2==0)},x=function(){for(var t=a.getPatternPosition(i),e=0;e<t.length;e+=1)for(var r=0;r<t.length;r+=1){var o=t[e],s=t[r];if(null==n[o][s])for(var h=-2;h<=2;h+=1)for(var d=-2;d<=2;d+=1)n[o+h][s+d]=-2==h||2==h||-2==d||2==d||0==h&&0==d}},S=function(t){for(var e=a.getBCHTypeNumber(i),r=0;r<18;r+=1){var s=!t&&1==(e>>r&1);n[Math.floor(r/3)][r%3+o-8-3]=s}for(r=0;r<18;r+=1)s=!t&&1==(e>>r&1),n[r%3+o-8-3][Math.floor(r/3)]=s},C=function(t,e){for(var i=r<<3|e,s=a.getBCHTypeInfo(i),h=0;h<15;h+=1){var d=!t&&1==(s>>h&1);h<6?n[h][8]=d:h<8?n[h+1][8]=d:n[o-15+h][8]=d}for(h=0;h<15;h+=1)d=!t&&1==(s>>h&1),h<8?n[8][o-h-1]=d:h<9?n[8][15-h-1+1]=d:n[8][15-h-1]=d;n[o-8][8]=!t},A=function(t,e){for(var i=-1,r=o-1,s=7,h=0,d=a.getMaskFunction(e),u=o-1;u>0;u-=2)for(6==u&&(u-=1);;){for(var c=0;c<2;c+=1)if(null==n[r][u-c]){var l=!1;h<t.length&&(l=1==(t[h]>>>s&1)),d(r,u-c)&&(l=!l),n[r][u-c]=l,-1==(s-=1)&&(h+=1,s=7)}if((r+=i)<0||o<=r){r-=i,i=-i;break}}},M=function(t,e,i){for(var r=u.getRSBlocks(t,e),n=c(),o=0;o<i.length;o+=1){var s=i[o];n.put(s.getMode(),4),n.put(s.getLength(),a.getLengthInBits(s.getMode(),t)),s.write(n)}var h=0;for(o=0;o<r.length;o+=1)h+=r[o].dataCount;if(n.getLengthInBits()>8*h)throw"code length overflow. ("+n.getLengthInBits()+">"+8*h+")";for(n.getLengthInBits()+4<=8*h&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*h||(n.put(236,8),n.getLengthInBits()>=8*h));)n.put(17,8);return function(t,e){for(var i=0,r=0,n=0,o=new Array(e.length),s=new Array(e.length),h=0;h<e.length;h+=1){var u=e[h].dataCount,c=e[h].totalCount-u;r=Math.max(r,u),n=Math.max(n,c),o[h]=new Array(u);for(var l=0;l<o[h].length;l+=1)o[h][l]=255&t.getBuffer()[l+i];i+=u;var g=a.getErrorCorrectPolynomial(c),f=d(o[h],g.getLength()-1).mod(g);for(s[h]=new Array(g.getLength()-1),l=0;l<s[h].length;l+=1){var w=l+f.getLength()-s[h].length;s[h][l]=w>=0?f.getAt(w):0}}var p=0;for(l=0;l<e.length;l+=1)p+=e[l].totalCount;var v=new Array(p),_=0;for(l=0;l<r;l+=1)for(h=0;h<e.length;h+=1)l<o[h].length&&(v[_]=o[h][l],_+=1);for(l=0;l<n;l+=1)for(h=0;h<e.length;h+=1)l<s[h].length&&(v[_]=s[h][l],_+=1);return v}(n,r)};v.addData=function(t,e){var i=null;switch(e=e||"Byte"){case"Numeric":i=l(t);break;case"Alphanumeric":i=g(t);break;case"Byte":i=f(t);break;case"Kanji":i=w(t);break;default:throw"mode:"+e}p.push(i),h=null},v.isDark=function(t,e){if(t<0||o<=t||e<0||o<=e)throw t+","+e;return n[t][e]},v.getModuleCount=function(){return o},v.make=function(){if(i<1){for(var t=1;t<40;t++){for(var e=u.getRSBlocks(t,r),n=c(),o=0;o<p.length;o++){var s=p[o];n.put(s.getMode(),4),n.put(s.getLength(),a.getLengthInBits(s.getMode(),t)),s.write(n)}var h=0;for(o=0;o<e.length;o++)h+=e[o].dataCount;if(n.getLengthInBits()<=8*h)break}i=t}m(!1,function(){for(var t=0,e=0,i=0;i<8;i+=1){m(!0,i);var r=a.getLostPoint(v);(0==i||t>r)&&(t=r,e=i)}return e}())},v.createTableTag=function(t,e){t=t||2;var i="";i+='<table style="',i+=" border-width: 0px; border-style: none;",i+=" border-collapse: collapse;",i+=" padding: 0px; margin: "+(e=void 0===e?4*t:e)+"px;",i+='">',i+="<tbody>";for(var r=0;r<v.getModuleCount();r+=1){i+="<tr>";for(var n=0;n<v.getModuleCount();n+=1)i+='<td style="',i+=" border-width: 0px; border-style: none;",i+=" border-collapse: collapse;",i+=" padding: 0px; margin: 0px;",i+=" width: "+t+"px;",i+=" height: "+t+"px;",i+=" background-color: ",i+=v.isDark(r,n)?"#000000":"#ffffff",i+=";",i+='"/>';i+="</tr>"}return(i+="</tbody>")+"</table>"},v.createSvgTag=function(t,e,i,r){var n={};"object"==typeof arguments[0]&&(t=(n=arguments[0]).cellSize,e=n.margin,i=n.alt,r=n.title),t=t||2,e=void 0===e?4*t:e,(i="string"==typeof i?{text:i}:i||{}).text=i.text||null,i.id=i.text?i.id||"qrcode-description":null,(r="string"==typeof r?{text:r}:r||{}).text=r.text||null,r.id=r.text?r.id||"qrcode-title":null;var o,s,a,h,d=v.getModuleCount()*t+2*e,u="";for(h="l"+t+",0 0,"+t+" -"+t+",0 0,-"+t+"z ",u+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',u+=n.scalable?"":' width="'+d+'px" height="'+d+'px"',u+=' viewBox="0 0 '+d+" "+d+'" ',u+=' preserveAspectRatio="xMinYMin meet"',u+=r.text||i.text?' role="img" aria-labelledby="'+$([r.id,i.id].join(" ").trim())+'"':"",u+=">",u+=r.text?'<title id="'+$(r.id)+'">'+$(r.text)+"</title>":"",u+=i.text?'<description id="'+$(i.id)+'">'+$(i.text)+"</description>":"",u+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',u+='<path d="',s=0;s<v.getModuleCount();s+=1)for(a=s*t+e,o=0;o<v.getModuleCount();o+=1)v.isDark(s,o)&&(u+="M"+(o*t+e)+","+a+h);return(u+='" stroke="transparent" fill="black"/>')+"</svg>"},v.createDataURL=function(t,e){t=t||2,e=void 0===e?4*t:e;var i=v.getModuleCount()*t+2*e,r=e,n=i-e;return _(i,i,(function(e,i){if(r<=e&&e<n&&r<=i&&i<n){var o=Math.floor((e-r)/t),s=Math.floor((i-r)/t);return v.isDark(s,o)?0:1}return 1}))},v.createImgTag=function(t,e,i){t=t||2,e=void 0===e?4*t:e;var r=v.getModuleCount()*t+2*e,n="";return n+="<img",n+=' src="',n+=v.createDataURL(t,e),n+='"',n+=' width="',n+=r,n+='"',n+=' height="',n+=r,n+='"',i&&(n+=' alt="',n+=$(i),n+='"'),n+"/>"};var $=function(t){for(var e="",i=0;i<t.length;i+=1){var r=t.charAt(i);switch(r){case"<":e+="&lt;";break;case">":e+="&gt;";break;case"&":e+="&amp;";break;case'"':e+="&quot;";break;default:e+=r}}return e};return v.createASCII=function(t,e){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var e,i,r,n,o,s=1*v.getModuleCount()+2*t,a=t,h=s-t,d={"██":"█","█ ":"▀"," █":"▄"," ":" "},u={"██":"▀","█ ":"▀"," █":" "," ":" "},c="";for(e=0;e<s;e+=2){for(r=Math.floor((e-a)/1),n=Math.floor((e+1-a)/1),i=0;i<s;i+=1)o="█",a<=i&&i<h&&a<=e&&e<h&&v.isDark(r,Math.floor((i-a)/1))&&(o=" "),a<=i&&i<h&&a<=e+1&&e+1<h&&v.isDark(n,Math.floor((i-a)/1))?o+=" ":o+="█",c+=t<1&&e+1>=h?u[o]:d[o];c+="\n"}return s%2&&t>0?c.substring(0,c.length-s-1)+Array(s+1).join("▀"):c.substring(0,c.length-1)}(e);t-=1,e=void 0===e?2*t:e;var i,r,n,o,s=v.getModuleCount()*t+2*e,a=e,h=s-e,d=Array(t+1).join("██"),u=Array(t+1).join(" "),c="",l="";for(i=0;i<s;i+=1){for(n=Math.floor((i-a)/t),l="",r=0;r<s;r+=1)o=1,a<=r&&r<h&&a<=i&&i<h&&v.isDark(n,Math.floor((r-a)/t))&&(o=0),l+=o?d:u;for(n=0;n<t;n+=1)c+=l+"\n"}return c.substring(0,c.length-1)},v.renderTo2dContext=function(t,e){e=e||2;for(var i=v.getModuleCount(),r=0;r<i;r++)for(var n=0;n<i;n++)t.fillStyle=v.isDark(r,n)?"black":"white",t.fillRect(r*e,n*e,e,e)},v};t.stringToBytes=(t.stringToBytesFuncs={default:function(t){for(var e=[],i=0;i<t.length;i+=1){var r=t.charCodeAt(i);e.push(255&r)}return e}}).default,t.createStringToBytes=function(t,e){var i=function(){for(var i=v(t),r=function(){var t=i.read();if(-1==t)throw"eof";return t},n=0,o={};;){var s=i.read();if(-1==s)break;var a=r(),h=r()<<8|r();o[String.fromCharCode(s<<8|a)]=h,n+=1}if(n!=e)throw n+" != "+e;return o}(),r="?".charCodeAt(0);return function(t){for(var e=[],n=0;n<t.length;n+=1){var o=t.charCodeAt(n);if(o<128)e.push(o);else{var s=i[t.charAt(n)];"number"==typeof s?(255&s)==s?e.push(s):(e.push(s>>>8),e.push(255&s)):e.push(r)}}return e}};var e,i,r,n,o,s={L:1,M:0,Q:3,H:2},a=(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]],i=1335,r=7973,o=function(t){for(var e=0;0!=t;)e+=1,t>>>=1;return e},(n={}).getBCHTypeInfo=function(t){for(var e=t<<10;o(e)-o(i)>=0;)e^=i<<o(e)-o(i);return 21522^(t<<10|e)},n.getBCHTypeNumber=function(t){for(var e=t<<12;o(e)-o(r)>=0;)e^=r<<o(e)-o(r);return t<<12|e},n.getPatternPosition=function(t){return e[t-1]},n.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}},n.getErrorCorrectPolynomial=function(t){for(var e=d([1],0),i=0;i<t;i+=1)e=e.multiply(d([1,h.gexp(i)],0));return e},n.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}}},n.getLostPoint=function(t){for(var e=t.getModuleCount(),i=0,r=0;r<e;r+=1)for(var n=0;n<e;n+=1){for(var o=0,s=t.isDark(r,n),a=-1;a<=1;a+=1)if(!(r+a<0||e<=r+a))for(var h=-1;h<=1;h+=1)n+h<0||e<=n+h||0==a&&0==h||s==t.isDark(r+a,n+h)&&(o+=1);o>5&&(i+=3+o-5)}for(r=0;r<e-1;r+=1)for(n=0;n<e-1;n+=1){var d=0;t.isDark(r,n)&&(d+=1),t.isDark(r+1,n)&&(d+=1),t.isDark(r,n+1)&&(d+=1),t.isDark(r+1,n+1)&&(d+=1),0!=d&&4!=d||(i+=3)}for(r=0;r<e;r+=1)for(n=0;n<e-6;n+=1)t.isDark(r,n)&&!t.isDark(r,n+1)&&t.isDark(r,n+2)&&t.isDark(r,n+3)&&t.isDark(r,n+4)&&!t.isDark(r,n+5)&&t.isDark(r,n+6)&&(i+=40);for(n=0;n<e;n+=1)for(r=0;r<e-6;r+=1)t.isDark(r,n)&&!t.isDark(r+1,n)&&t.isDark(r+2,n)&&t.isDark(r+3,n)&&t.isDark(r+4,n)&&!t.isDark(r+5,n)&&t.isDark(r+6,n)&&(i+=40);var u=0;for(n=0;n<e;n+=1)for(r=0;r<e;r+=1)t.isDark(r,n)&&(u+=1);return i+Math.abs(100*u/e/e-50)/5*10},n),h=function(){for(var t=new Array(256),e=new Array(256),i=0;i<8;i+=1)t[i]=1<<i;for(i=8;i<256;i+=1)t[i]=t[i-4]^t[i-5]^t[i-6]^t[i-8];for(i=0;i<255;i+=1)e[t[i]]=i;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 d(t,e){if(void 0===t.length)throw t.length+"/"+e;var i=function(){for(var i=0;i<t.length&&0==t[i];)i+=1;for(var r=new Array(t.length-i+e),n=0;n<t.length-i;n+=1)r[n]=t[n+i];return r}(),r={getAt:function(t){return i[t]},getLength:function(){return i.length},multiply:function(t){for(var e=new Array(r.getLength()+t.getLength()-1),i=0;i<r.getLength();i+=1)for(var n=0;n<t.getLength();n+=1)e[i+n]^=h.gexp(h.glog(r.getAt(i))+h.glog(t.getAt(n)));return d(e,0)},mod:function(t){if(r.getLength()-t.getLength()<0)return r;for(var e=h.glog(r.getAt(0))-h.glog(t.getAt(0)),i=new Array(r.getLength()),n=0;n<r.getLength();n+=1)i[n]=r.getAt(n);for(n=0;n<t.getLength();n+=1)i[n]^=h.gexp(h.glog(t.getAt(n))+e);return d(i,0).mod(t)}};return r}var u=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 i={};return i.totalCount=t,i.dataCount=e,i},i={getRSBlocks:function(i,r){var n=function(e,i){switch(i){case s.L:return t[4*(e-1)+0];case s.M:return t[4*(e-1)+1];case s.Q:return t[4*(e-1)+2];case s.H:return t[4*(e-1)+3];default:return}}(i,r);if(void 0===n)throw"bad rs block @ typeNumber:"+i+"/errorCorrectionLevel:"+r;for(var o=n.length/3,a=[],h=0;h<o;h+=1)for(var d=n[3*h+0],u=n[3*h+1],c=n[3*h+2],l=0;l<d;l+=1)a.push(e(u,c));return a}};return i}(),c=function(){var t=[],e=0,i={getBuffer:function(){return t},getAt:function(e){var i=Math.floor(e/8);return 1==(t[i]>>>7-e%8&1)},put:function(t,e){for(var r=0;r<e;r+=1)i.putBit(1==(t>>>e-r-1&1))},getLengthInBits:function(){return e},putBit:function(i){var r=Math.floor(e/8);t.length<=r&&t.push(0),i&&(t[r]|=128>>>e%8),e+=1}};return i},l=function(t){var e=t,i={getMode:function(){return 1},getLength:function(t){return e.length},write:function(t){for(var i=e,n=0;n+2<i.length;)t.put(r(i.substring(n,n+3)),10),n+=3;n<i.length&&(i.length-n==1?t.put(r(i.substring(n,n+1)),4):i.length-n==2&&t.put(r(i.substring(n,n+2)),7))}},r=function(t){for(var e=0,i=0;i<t.length;i+=1)e=10*e+n(t.charAt(i));return e},n=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);throw"illegal char :"+t};return i},g=function(t){var e=t,i={getMode:function(){return 2},getLength:function(t){return e.length},write:function(t){for(var i=e,n=0;n+1<i.length;)t.put(45*r(i.charAt(n))+r(i.charAt(n+1)),11),n+=2;n<i.length&&t.put(r(i.charAt(n)),6)}},r=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 i},f=function(e){var i=t.stringToBytes(e);return{getMode:function(){return 4},getLength:function(t){return i.length},write:function(t){for(var e=0;e<i.length;e+=1)t.put(i[e],8)}}},w=function(e){var i=t.stringToBytesFuncs.SJIS;if(!i)throw"sjis not supported.";!function(){var t=i("友");if(2!=t.length||38726!=(t[0]<<8|t[1]))throw"sjis not supported."}();var r=i(e),n={getMode:function(){return 8},getLength:function(t){return~~(r.length/2)},write:function(t){for(var e=r,i=0;i+1<e.length;){var n=(255&e[i])<<8|255&e[i+1];if(33088<=n&&n<=40956)n-=33088;else{if(!(57408<=n&&n<=60351))throw"illegal char at "+(i+1)+"/"+n;n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13),i+=2}if(i<e.length)throw"illegal char at "+(i+1)}};return n},p=function(){var t=[],e={writeByte:function(e){t.push(255&e)},writeShort:function(t){e.writeByte(t),e.writeByte(t>>>8)},writeBytes:function(t,i,r){i=i||0,r=r||t.length;for(var n=0;n<r;n+=1)e.writeByte(t[n+i])},writeString:function(t){for(var i=0;i<t.length;i+=1)e.writeByte(t.charCodeAt(i))},toByteArray:function(){return t},toString:function(){var e="";e+="[";for(var i=0;i<t.length;i+=1)i>0&&(e+=","),e+=t[i];return e+"]"}};return e},v=function(t){var e=t,i=0,r=0,n=0,o={read:function(){for(;n<8;){if(i>=e.length){if(0==n)return-1;throw"unexpected end of file./"+n}var t=e.charAt(i);if(i+=1,"="==t)return n=0,-1;t.match(/^\s$/)||(r=r<<6|s(t.charCodeAt(0)),n+=6)}var o=r>>>n-8&255;return n-=8,o}},s=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 o},_=function(t,e,i){for(var r=function(t,e){var i=t,r=e,n=new Array(t*e),o={setPixel:function(t,e,r){n[e*i+t]=r},write:function(t){t.writeString("GIF87a"),t.writeShort(i),t.writeShort(r),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(i),t.writeShort(r),t.writeByte(0);var e=s(2);t.writeByte(2);for(var n=0;e.length-n>255;)t.writeByte(255),t.writeBytes(e,n,255),n+=255;t.writeByte(e.length-n),t.writeBytes(e,n,e.length-n),t.writeByte(0),t.writeString(";")}},s=function(t){for(var e=1<<t,i=1+(1<<t),r=t+1,o=a(),s=0;s<e;s+=1)o.add(String.fromCharCode(s));o.add(String.fromCharCode(e)),o.add(String.fromCharCode(i));var h,d,u,c=p(),l=(h=c,d=0,u=0,{write:function(t,e){if(t>>>e!=0)throw"length over";for(;d+e>=8;)h.writeByte(255&(t<<d|u)),e-=8-d,t>>>=8-d,u=0,d=0;u|=t<<d,d+=e},flush:function(){d>0&&h.writeByte(u)}});l.write(e,r);var g=0,f=String.fromCharCode(n[g]);for(g+=1;g<n.length;){var w=String.fromCharCode(n[g]);g+=1,o.contains(f+w)?f+=w:(l.write(o.indexOf(f),r),o.size()<4095&&(o.size()==1<<r&&(r+=1),o.add(f+w)),f=w)}return l.write(o.indexOf(f),r),l.write(i,r),l.flush(),c.toByteArray()},a=function(){var t={},e=0,i={add:function(r){if(i.contains(r))throw"dup key:"+r;t[r]=e,e+=1},size:function(){return e},indexOf:function(e){return t[e]},contains:function(e){return void 0!==t[e]}};return i};return o}(t,e),n=0;n<e;n+=1)for(var o=0;o<t;o+=1)r.setPixel(o,n,i(o,n));var s=p();r.write(s);for(var a=function(){var t=0,e=0,i=0,r="",n={},o=function(t){r+=String.fromCharCode(s(63&t))},s=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 n.writeByte=function(r){for(t=t<<8|255&r,e+=8,i+=1;e>=6;)o(t>>>e-6),e-=6},n.flush=function(){if(e>0&&(o(t<<6-e),t=0,e=0),i%3!=0)for(var n=3-i%3,s=0;s<n;s+=1)r+="="},n.toString=function(){return r},n}(),h=s.toByteArray(),d=0;d<h.length;d+=1)a.writeByte(h[d]);return a.flush(),"data:image/gif;base64,"+a};return t}();n.stringToBytesFuncs["UTF-8"]=function(t){return function(t){for(var e=[],i=0;i<t.length;i++){var r=t.charCodeAt(i);r<128?e.push(r):r<2048?e.push(192|r>>6,128|63&r):r<55296||r>=57344?e.push(224|r>>12,128|r>>6&63,128|63&r):(i++,r=65536+((1023&r)<<10|1023&t.charCodeAt(i)),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return e}(t)},void 0===(r="function"==typeof(i=function(){return n})?i.apply(e,[]):i)||(t.exports=r)}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};return(()=>{"use strict";i.d(r,{default:()=>$});const t=t=>!!t&&"object"==typeof t&&!Array.isArray(t);function e(i,...r){if(!r.length)return i;const n=r.shift();return void 0!==n&&t(i)&&t(n)?(i=Object.assign({},i),Object.keys(n).forEach((r=>{const o=i[r],s=n[r];Array.isArray(o)&&Array.isArray(s)?i[r]=s:t(o)&&t(s)?i[r]=e(Object.assign({},o),s):i[r]=s})),e(i,...r)):i}function n(t,e){const i=document.createElement("a");i.download=e,i.href=t,document.body.appendChild(i),i.click(),document.body.removeChild(i)}const o={L:.07,M:.15,Q:.25,H:.3};class s{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;switch(this._type){case"dots":n=this._drawDot;break;case"classy":n=this._drawClassy;break;case"classy-rounded":n=this._drawClassyRounded;break;case"rounded":n=this._drawRounded;break;case"extra-rounded":n=this._drawExtraRounded;break;default:n=this._drawSquare}n.call(this,{x:t,y:e,size:i,getNeighbor:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(i+e/2)),this._element.setAttribute("cy",String(r+e/2)),this._element.setAttribute("r",String(e/2))}}))}_basicSquare(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(i)),this._element.setAttribute("y",String(r)),this._element.setAttribute("width",String(e)),this._element.setAttribute("height",String(e))}}))}_basicSideRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h `+e/2+`a ${e/2} ${e/2}, 0, 0, 0, 0 ${-e}`)}}))}_basicCornerRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}v `+-e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2}`)}}))}_basicCornerExtraRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}a ${e} ${e}, 0, 0, 0, ${-e} ${-e}`)}}))}_basicCornersRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v `+e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${e/2} ${e/2}h `+e/2+"v "+-e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2}`)}}))}_drawDot({x:t,y:e,size:i}){this._basicDot({x:t,y:e,size:i,rotation:0})}_drawSquare({x:t,y:e,size:i}){this._basicSquare({x:t,y:e,size:i,rotation:0})}_drawRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,h=n+o+s+a;if(0!==h)if(h>2||n&&o||s&&a)this._basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===h){let r=0;return n&&s?r=Math.PI/2:s&&o?r=Math.PI:o&&a&&(r=-Math.PI/2),void this._basicCornerRounded({x:t,y:e,size:i,rotation:r})}if(1===h){let r=0;return s?r=Math.PI/2:o?r=Math.PI:a&&(r=-Math.PI/2),void this._basicSideRounded({x:t,y:e,size:i,rotation:r})}}else this._basicDot({x:t,y:e,size:i,rotation:0})}_drawExtraRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,h=n+o+s+a;if(0!==h)if(h>2||n&&o||s&&a)this._basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===h){let r=0;return n&&s?r=Math.PI/2:s&&o?r=Math.PI:o&&a&&(r=-Math.PI/2),void this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:r})}if(1===h){let r=0;return s?r=Math.PI/2:o?r=Math.PI:a&&(r=-Math.PI/2),void this._basicSideRounded({x:t,y:e,size:i,rotation:r})}}else this._basicDot({x:t,y:e,size:i,rotation:0})}_drawClassy({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+o+s+a?n||s?o||a?this._basicSquare({x:t,y:e,size:i,rotation:0}):this._basicCornerRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this._basicCornerRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this._basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}_drawClassyRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+o+s+a?n||s?o||a?this._basicSquare({x:t,y:e,size:i,rotation:0}):this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this._basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}}const a={dot:"dot",square:"square",extraRounded:"extra-rounded"},h=Object.values(a);class d{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;switch(this._type){case a.square:n=this._drawSquare;break;case a.extraRounded:n=this._drawExtraRounded;break;default:n=this._drawDot}n.call(this,{x:t,y:e,size:i,rotation:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i+e/2} ${r}a ${e/2} ${e/2} 0 1 0 0.1 0zm 0 ${n}a ${e/2-n} ${e/2-n} 0 1 1 -0.1 0Z`)}}))}_basicSquare(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}v `+-e+"z"+`M ${i+n} ${r+n}h `+(e-2*n)+"v "+(e-2*n)+"h "+(2*n-e)+"z")}}))}_basicExtraRounded(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i} ${r+2.5*n}v `+2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n}h `+2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*-n}v `+-2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n}h `+-2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n}`+`M ${i+2.5*n} ${r+n}h `+2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n}v `+2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*n}h `+-2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n}v `+-2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n}`)}}))}_drawDot({x:t,y:e,size:i,rotation:r}){this._basicDot({x:t,y:e,size:i,rotation:r})}_drawSquare({x:t,y:e,size:i,rotation:r}){this._basicSquare({x:t,y:e,size:i,rotation:r})}_drawExtraRounded({x:t,y:e,size:i,rotation:r}){this._basicExtraRounded({x:t,y:e,size:i,rotation:r})}}const u={dot:"dot",square:"square"},c=Object.values(u);class l{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;n=this._type===u.square?this._drawSquare:this._drawDot,n.call(this,{x:t,y:e,size:i,rotation:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(i+e/2)),this._element.setAttribute("cy",String(r+e/2)),this._element.setAttribute("r",String(e/2))}}))}_basicSquare(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(i)),this._element.setAttribute("y",String(r)),this._element.setAttribute("width",String(e)),this._element.setAttribute("height",String(e))}}))}_drawDot({x:t,y:e,size:i,rotation:r}){this._basicDot({x:t,y:e,size:i,rotation:r})}_drawSquare({x:t,y:e,size:i,rotation:r}){this._basicSquare({x:t,y:e,size:i,rotation:r})}}const g="circle",f=[[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]],w=[[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]];class p{constructor(t,e){this._roundSize=t=>this._options.dotsOptions.roundSize?Math.floor(t):t,this._window=e,this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("width",String(t.width)),this._element.setAttribute("height",String(t.height)),this._element.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),t.dotsOptions.roundSize||this._element.setAttribute("shape-rendering","crispEdges"),this._element.setAttribute("viewBox",`0 0 ${t.width} ${t.height}`),this._defs=this._window.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this._defs),this._imageUri=t.image,this._instanceId=p.instanceCount++,this._options=t}get width(){return this._options.width}get height(){return this._options.height}getElement(){return this._element}async drawQR(t){const e=t.getModuleCount(),i=Math.min(this._options.width,this._options.height)-2*this._options.margin,r=this._options.shape===g?i/Math.sqrt(2):i,n=this._roundSize(r/e);let s={hideXDots:0,hideYDots:0,width:0,height:0};if(this._qr=t,this._options.image){if(await this.loadImage(),!this._image)return;const{imageOptions:t,qrOptions:i}=this._options,r=t.imageSize*o[i.errorCorrectionLevel],a=Math.floor(r*e*e);s=function({originalHeight:t,originalWidth:e,maxHiddenDots:i,maxHiddenAxisDots:r,dotSize:n}){const o={x:0,y:0},s={x:0,y:0};if(t<=0||e<=0||i<=0||n<=0)return{height:0,width:0,hideYDots:0,hideXDots:0};const a=t/e;return o.x=Math.floor(Math.sqrt(i/a)),o.x<=0&&(o.x=1),r&&r<o.x&&(o.x=r),o.x%2==0&&o.x--,s.x=o.x*n,o.y=1+2*Math.ceil((o.x*a-1)/2),s.y=Math.round(s.x*a),(o.y*o.x>i||r&&r<o.y)&&(r&&r<o.y?(o.y=r,o.y%2==0&&o.x--):o.y-=2,s.y=o.y*n,o.x=1+2*Math.ceil((o.y/a-1)/2),s.x=Math.round(s.y/a)),{height:s.y,width:s.x,hideYDots:o.y,hideXDots:o.x}}({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:a,maxHiddenAxisDots:e-14,dotSize:n})}this.drawBackground(),this.drawDots(((t,i)=>{var r,n,o,a,h,d;return!(this._options.imageOptions.hideBackgroundDots&&t>=(e-s.hideYDots)/2&&t<(e+s.hideYDots)/2&&i>=(e-s.hideXDots)/2&&i<(e+s.hideXDots)/2||(null===(r=f[t])||void 0===r?void 0:r[i])||(null===(n=f[t-e+7])||void 0===n?void 0:n[i])||(null===(o=f[t])||void 0===o?void 0:o[i-e+7])||(null===(a=w[t])||void 0===a?void 0:a[i])||(null===(h=w[t-e+7])||void 0===h?void 0:h[i])||(null===(d=w[t])||void 0===d?void 0:d[i-e+7]))})),this.drawCorners(),this._options.image&&await this.drawImage({width:s.width,height:s.height,count:e,dotSize:n})}drawBackground(){var t,e,i;const r=this._element,n=this._options;if(r){const r=null===(t=n.backgroundOptions)||void 0===t?void 0:t.gradient,o=null===(e=n.backgroundOptions)||void 0===e?void 0:e.color;let s=n.height,a=n.width;if(r||o){const t=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");this._backgroundClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._backgroundClipPath.setAttribute("id",`clip-path-background-color-${this._instanceId}`),this._defs.appendChild(this._backgroundClipPath),(null===(i=n.backgroundOptions)||void 0===i?void 0:i.round)&&(s=a=Math.min(n.width,n.height),t.setAttribute("rx",String(s/2*n.backgroundOptions.round))),t.setAttribute("x",String(this._roundSize((n.width-a)/2))),t.setAttribute("y",String(this._roundSize((n.height-s)/2))),t.setAttribute("width",String(a)),t.setAttribute("height",String(s)),this._backgroundClipPath.appendChild(t),this._createColor({options:r,color:o,additionalRotation:0,x:0,y:0,height:n.height,width:n.width,name:`background-color-${this._instanceId}`})}}}drawDots(t){var e,i;if(!this._qr)throw"QR code is not defined";const r=this._options,n=this._qr.getModuleCount();if(n>r.width||n>r.height)throw"The canvas is too small.";const o=Math.min(r.width,r.height)-2*r.margin,a=r.shape===g?o/Math.sqrt(2):o,h=this._roundSize(a/n),d=this._roundSize((r.width-n*h)/2),u=this._roundSize((r.height-n*h)/2),c=new s({svg:this._element,type:r.dotsOptions.type,window:this._window});this._dotsClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._dotsClipPath.setAttribute("id",`clip-path-dot-color-${this._instanceId}`),this._defs.appendChild(this._dotsClipPath),this._createColor({options:null===(e=r.dotsOptions)||void 0===e?void 0:e.gradient,color:r.dotsOptions.color,additionalRotation:0,x:0,y:0,height:r.height,width:r.width,name:`dot-color-${this._instanceId}`});for(let e=0;e<n;e++)for(let r=0;r<n;r++)t&&!t(e,r)||(null===(i=this._qr)||void 0===i?void 0:i.isDark(e,r))&&(c.draw(d+r*h,u+e*h,h,((i,o)=>!(r+i<0||e+o<0||r+i>=n||e+o>=n)&&!(t&&!t(e+o,r+i))&&!!this._qr&&this._qr.isDark(e+o,r+i))),c._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(c._element));if(r.shape===g){const t=this._roundSize((o/h-n)/2),e=n+2*t,i=d-t*h,r=u-t*h,s=[],a=this._roundSize(e/2);for(let i=0;i<e;i++){s[i]=[];for(let r=0;r<e;r++)i>=t-1&&i<=e-t&&r>=t-1&&r<=e-t||Math.sqrt((i-a)*(i-a)+(r-a)*(r-a))>a?s[i][r]=0:s[i][r]=this._qr.isDark(r-2*t<0?r:r>=n?r-2*t:r-t,i-2*t<0?i:i>=n?i-2*t:i-t)?1:0}for(let t=0;t<e;t++)for(let n=0;n<e;n++)s[t][n]&&(c.draw(i+n*h,r+t*h,h,((e,i)=>{var r;return!!(null===(r=s[t+i])||void 0===r?void 0:r[n+e])})),c._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(c._element))}}drawCorners(){if(!this._qr)throw"QR code is not defined";const t=this._element,e=this._options;if(!t)throw"Element code is not defined";const i=this._qr.getModuleCount(),r=Math.min(e.width,e.height)-2*e.margin,n=e.shape===g?r/Math.sqrt(2):r,o=this._roundSize(n/i),a=7*o,u=3*o,p=this._roundSize((e.width-i*o)/2),v=this._roundSize((e.height-i*o)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((([t,r,n])=>{var g,_,m,b,y,x,S,C,A,M,$,O,D,k;const z=p+t*o*(i-7),B=v+r*o*(i-7);let P=this._dotsClipPath,I=this._dotsClipPath;if(((null===(g=e.cornersSquareOptions)||void 0===g?void 0:g.gradient)||(null===(_=e.cornersSquareOptions)||void 0===_?void 0:_.color))&&(P=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),P.setAttribute("id",`clip-path-corners-square-color-${t}-${r}-${this._instanceId}`),this._defs.appendChild(P),this._cornersSquareClipPath=this._cornersDotClipPath=I=P,this._createColor({options:null===(m=e.cornersSquareOptions)||void 0===m?void 0:m.gradient,color:null===(b=e.cornersSquareOptions)||void 0===b?void 0:b.color,additionalRotation:n,x:z,y:B,height:a,width:a,name:`corners-square-color-${t}-${r}-${this._instanceId}`})),(null===(y=e.cornersSquareOptions)||void 0===y?void 0:y.type)&&h.includes(e.cornersSquareOptions.type)){const t=new d({svg:this._element,type:e.cornersSquareOptions.type,window:this._window});t.draw(z,B,a,n),t._element&&P&&P.appendChild(t._element)}else{const t=new s({svg:this._element,type:(null===(x=e.cornersSquareOptions)||void 0===x?void 0:x.type)||e.dotsOptions.type,window:this._window});for(let e=0;e<f.length;e++)for(let i=0;i<f[e].length;i++)(null===(S=f[e])||void 0===S?void 0:S[i])&&(t.draw(z+i*o,B+e*o,o,((t,r)=>{var n;return!!(null===(n=f[e+r])||void 0===n?void 0:n[i+t])})),t._element&&P&&P.appendChild(t._element))}if(((null===(C=e.cornersDotOptions)||void 0===C?void 0:C.gradient)||(null===(A=e.cornersDotOptions)||void 0===A?void 0:A.color))&&(I=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),I.setAttribute("id",`clip-path-corners-dot-color-${t}-${r}-${this._instanceId}`),this._defs.appendChild(I),this._cornersDotClipPath=I,this._createColor({options:null===(M=e.cornersDotOptions)||void 0===M?void 0:M.gradient,color:null===($=e.cornersDotOptions)||void 0===$?void 0:$.color,additionalRotation:n,x:z+2*o,y:B+2*o,height:u,width:u,name:`corners-dot-color-${t}-${r}-${this._instanceId}`})),(null===(O=e.cornersDotOptions)||void 0===O?void 0:O.type)&&c.includes(e.cornersDotOptions.type)){const t=new l({svg:this._element,type:e.cornersDotOptions.type,window:this._window});t.draw(z+2*o,B+2*o,u,n),t._element&&I&&I.appendChild(t._element)}else{const t=new s({svg:this._element,type:(null===(D=e.cornersDotOptions)||void 0===D?void 0:D.type)||e.dotsOptions.type,window:this._window});for(let e=0;e<w.length;e++)for(let i=0;i<w[e].length;i++)(null===(k=w[e])||void 0===k?void 0:k[i])&&(t.draw(z+i*o,B+e*o,o,((t,r)=>{var n;return!!(null===(n=w[e+r])||void 0===n?void 0:n[i+t])})),t._element&&I&&I.appendChild(t._element))}}))}loadImage(){return new Promise(((t,e)=>{var i;const r=this._options;if(!r.image)return e("Image is not defined");if(null===(i=r.nodeCanvas)||void 0===i?void 0:i.loadImage)r.nodeCanvas.loadImage(r.image).then((e=>{var i,n;if(this._image=e,this._options.imageOptions.saveAsBlob){const t=null===(i=r.nodeCanvas)||void 0===i?void 0:i.createCanvas(this._image.width,this._image.height);null===(n=null==t?void 0:t.getContext("2d"))||void 0===n||n.drawImage(e,0,0),this._imageUri=null==t?void 0:t.toDataURL()}t()})).catch(e);else{const e=new this._window.Image;"string"==typeof r.imageOptions.crossOrigin&&(e.crossOrigin=r.imageOptions.crossOrigin),this._image=e,e.onload=async()=>{this._options.imageOptions.saveAsBlob&&(this._imageUri=await async function(t,e){return new Promise((i=>{const r=new e.XMLHttpRequest;r.onload=function(){const t=new e.FileReader;t.onloadend=function(){i(t.result)},t.readAsDataURL(r.response)},r.open("GET",t),r.responseType="blob",r.send()}))}(r.image||"",this._window)),t()},e.src=r.image}}))}async drawImage({width:t,height:e,count:i,dotSize:r}){const n=this._options,o=this._roundSize((n.width-i*r)/2),s=this._roundSize((n.height-i*r)/2),a=o+this._roundSize(n.imageOptions.margin+(i*r-t)/2),h=s+this._roundSize(n.imageOptions.margin+(i*r-e)/2),d=t-2*n.imageOptions.margin,u=e-2*n.imageOptions.margin,c=this._window.document.createElementNS("http://www.w3.org/2000/svg","image");c.setAttribute("href",this._imageUri||""),c.setAttribute("xlink:href",this._imageUri||""),c.setAttribute("x",String(a)),c.setAttribute("y",String(h)),c.setAttribute("width",`${d}px`),c.setAttribute("height",`${u}px`),this._element.appendChild(c)}_createColor({options:t,color:e,additionalRotation:i,x:r,y:n,height:o,width:s,name:a}){const h=s>o?s:o,d=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");if(d.setAttribute("x",String(r)),d.setAttribute("y",String(n)),d.setAttribute("height",String(o)),d.setAttribute("width",String(s)),d.setAttribute("clip-path",`url('#clip-path-${a}')`),t){let e;if("radial"===t.type)e=this._window.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),e.setAttribute("id",a),e.setAttribute("gradientUnits","userSpaceOnUse"),e.setAttribute("fx",String(r+s/2)),e.setAttribute("fy",String(n+o/2)),e.setAttribute("cx",String(r+s/2)),e.setAttribute("cy",String(n+o/2)),e.setAttribute("r",String(h/2));else{const h=((t.rotation||0)+i)%(2*Math.PI),d=(h+2*Math.PI)%(2*Math.PI);let u=r+s/2,c=n+o/2,l=r+s/2,g=n+o/2;d>=0&&d<=.25*Math.PI||d>1.75*Math.PI&&d<=2*Math.PI?(u-=s/2,c-=o/2*Math.tan(h),l+=s/2,g+=o/2*Math.tan(h)):d>.25*Math.PI&&d<=.75*Math.PI?(c-=o/2,u-=s/2/Math.tan(h),g+=o/2,l+=s/2/Math.tan(h)):d>.75*Math.PI&&d<=1.25*Math.PI?(u+=s/2,c+=o/2*Math.tan(h),l-=s/2,g-=o/2*Math.tan(h)):d>1.25*Math.PI&&d<=1.75*Math.PI&&(c+=o/2,u+=s/2/Math.tan(h),g-=o/2,l-=s/2/Math.tan(h)),e=this._window.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),e.setAttribute("id",a),e.setAttribute("gradientUnits","userSpaceOnUse"),e.setAttribute("x1",String(Math.round(u))),e.setAttribute("y1",String(Math.round(c))),e.setAttribute("x2",String(Math.round(l))),e.setAttribute("y2",String(Math.round(g)))}t.colorStops.forEach((({offset:t,color:i})=>{const r=this._window.document.createElementNS("http://www.w3.org/2000/svg","stop");r.setAttribute("offset",100*t+"%"),r.setAttribute("stop-color",i),e.appendChild(r)})),d.setAttribute("fill",`url('#${a}')`),this._defs.appendChild(e)}else e&&d.setAttribute("fill",e);this._element.appendChild(d)}}p.instanceCount=0;const v=p,_="canvas",m={};for(let t=0;t<=40;t++)m[t]=t;const b={type:_,shape:"square",width:300,height:300,data:"",margin:0,qrOptions:{typeNumber:m[0],mode:void 0,errorCorrectionLevel:"Q"},imageOptions:{saveAsBlob:!0,hideBackgroundDots:!0,imageSize:.4,crossOrigin:void 0,margin:0},dotsOptions:{type:"square",color:"#000",roundSize:!0},backgroundOptions:{round:0,color:"#fff"}};function y(t){const e=Object.assign({},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((t=>Object.assign(Object.assign({},t),{offset:Number(t.offset)}))),e}function x(t){const e=Object.assign({},t);return e.width=Number(e.width),e.height=Number(e.height),e.margin=Number(e.margin),e.imageOptions=Object.assign(Object.assign({},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=Object.assign({},e.dotsOptions),e.dotsOptions.gradient&&(e.dotsOptions.gradient=y(e.dotsOptions.gradient)),e.cornersSquareOptions&&(e.cornersSquareOptions=Object.assign({},e.cornersSquareOptions),e.cornersSquareOptions.gradient&&(e.cornersSquareOptions.gradient=y(e.cornersSquareOptions.gradient))),e.cornersDotOptions&&(e.cornersDotOptions=Object.assign({},e.cornersDotOptions),e.cornersDotOptions.gradient&&(e.cornersDotOptions.gradient=y(e.cornersDotOptions.gradient))),e.backgroundOptions&&(e.backgroundOptions=Object.assign({},e.backgroundOptions),e.backgroundOptions.gradient&&(e.backgroundOptions.gradient=y(e.backgroundOptions.gradient))),e}var S=i(873),C=i.n(S);function A(t){if(!t)throw new Error("Extension must be defined");"."===t[0]&&(t=t.substring(1));const e={bmp:"image/bmp",gif:"image/gif",ico:"image/vnd.microsoft.icon",jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp",pdf:"application/pdf"}[t.toLowerCase()];if(!e)throw new Error(`Extension "${t}" is not supported`);return e}class M{constructor(t){(null==t?void 0:t.jsdom)?this._window=new t.jsdom("",{resources:"usable"}).window:this._window=window,this._options=t?x(e(b,t)):b,this.update()}static _clearContainer(t){t&&(t.innerHTML="")}_setupSvg(){if(!this._qr)return;const t=new v(this._options,this._window);this._svg=t.getElement(),this._svgDrawingPromise=t.drawQR(this._qr).then((()=>{var e;this._svg&&(null===(e=this._extension)||void 0===e||e.call(this,t.getElement(),this._options))}))}_setupCanvas(){var t,e;this._qr&&((null===(t=this._options.nodeCanvas)||void 0===t?void 0:t.createCanvas)?(this._nodeCanvas=this._options.nodeCanvas.createCanvas(this._options.width,this._options.height),this._nodeCanvas.width=this._options.width,this._nodeCanvas.height=this._options.height):(this._domCanvas=document.createElement("canvas"),this._domCanvas.width=this._options.width,this._domCanvas.height=this._options.height),this._setupSvg(),this._canvasDrawingPromise=null===(e=this._svgDrawingPromise)||void 0===e?void 0:e.then((()=>{var t;if(!this._svg)return;const e=this._svg,i=(new this._window.XMLSerializer).serializeToString(e),r=btoa(i),n=`data:${A("svg")};base64,${r}`;if(null===(t=this._options.nodeCanvas)||void 0===t?void 0:t.loadImage)return this._options.nodeCanvas.loadImage(n).then((t=>{var e,i;t.width=this._options.width,t.height=this._options.height,null===(i=null===(e=this._nodeCanvas)||void 0===e?void 0:e.getContext("2d"))||void 0===i||i.drawImage(t,0,0)}));{const t=new this._window.Image;return new Promise((e=>{t.onload=()=>{var i,r;null===(r=null===(i=this._domCanvas)||void 0===i?void 0:i.getContext("2d"))||void 0===r||r.drawImage(t,0,0),e()},t.src=n}))}})))}async _getElement(t="png"){if(!this._qr)throw"QR code is empty";return"svg"===t.toLowerCase()?(this._svg&&this._svgDrawingPromise||this._setupSvg(),await this._svgDrawingPromise,this._svg):((this._domCanvas||this._nodeCanvas)&&this._canvasDrawingPromise||this._setupCanvas(),await this._canvasDrawingPromise,this._domCanvas||this._nodeCanvas)}update(t){M._clearContainer(this._container),this._options=t?x(e(this._options,t)):this._options,this._options.data&&(this._qr=C()(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===_?this._setupCanvas():this._setupSvg(),this.append(this._container))}append(t){if(t){if("function"!=typeof t.appendChild)throw"Container should be a single DOM node";this._options.type===_?this._domCanvas&&t.appendChild(this._domCanvas):this._svg&&t.appendChild(this._svg),this._container=t}}applyExtension(t){if(!t)throw"Extension function should be defined.";this._extension=t,this.update()}deleteExtension(){this._extension=void 0,this.update()}async getRawData(t="png"){if(!this._qr)throw"QR code is empty";const e=await this._getElement(t),i=A(t);if(!e)return null;if("svg"===t.toLowerCase()){const t=`<?xml version="1.0" standalone="no"?>\r\n${(new this._window.XMLSerializer).serializeToString(e)}`;return"undefined"==typeof Blob||this._options.jsdom?Buffer.from(t):new Blob([t],{type:i})}return new Promise((t=>{const r=e;if("toBuffer"in r)if("image/png"===i)t(r.toBuffer(i));else if("image/jpeg"===i)t(r.toBuffer(i));else{if("application/pdf"!==i)throw Error("Unsupported extension");t(r.toBuffer(i))}else"toBlob"in r&&r.toBlob(t,i,1)}))}async download(t){if(!this._qr)throw"QR code is empty";if("undefined"==typeof Blob)throw"Cannot download in Node.js, call getRawData instead.";let e="png",i="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&&(i=t.name),t.extension&&(e=t.extension));const r=await this._getElement(e);if(r)if("svg"===e.toLowerCase()){let t=(new XMLSerializer).serializeToString(r);t='<?xml version="1.0" standalone="no"?>\r\n'+t,n(`data:${A(e)};charset=utf-8,${encodeURIComponent(t)}`,`${i}.svg`)}else n(r.toDataURL(A(e)),`${i}.${e}`)}}const $=M})(),r.default})()));
11531
11374
 
11532
11375
  }).call(this)}).call(this,require("buffer").Buffer)
11533
- },{"buffer":143}]},{},[17])(17)
11376
+ },{"buffer":138}]},{},[17])(17)
11534
11377
  });