@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.
- package/build/es2015/plattar-ar-adapter.js +1660 -1878
- package/build/es2015/plattar-ar-adapter.min.js +1 -1
- package/build/es2019/plattar-ar-adapter.js +413 -570
- package/build/es2019/plattar-ar-adapter.min.js +1 -1
- package/dist/ar/configurator-ar.js +2 -0
- package/dist/ar/model-ar.js +2 -0
- package/dist/ar/product-ar.js +2 -2
- package/dist/ar/raw-ar.js +2 -0
- package/dist/ar/scene-ar.js +76 -47
- package/dist/ar/scene-graph-ar.d.ts +1 -0
- package/dist/ar/scene-graph-ar.js +31 -25
- package/dist/embed/controllers/configurator-controller.d.ts +5 -0
- package/dist/embed/controllers/configurator-controller.js +50 -18
- package/dist/embed/controllers/gallery-controller.js +3 -9
- package/dist/embed/controllers/launcher-controller.js +9 -4
- package/dist/embed/controllers/plattar-controller.d.ts +9 -2
- package/dist/embed/controllers/plattar-controller.js +30 -12
- package/dist/embed/controllers/vto-controller.js +4 -10
- package/dist/embed/controllers/webxr-controller.js +4 -10
- package/dist/embed/plattar-embed.d.ts +6 -0
- package/dist/embed/plattar-embed.js +12 -0
- package/dist/util/configurator-state.d.ts +13 -1
- package/dist/util/configurator-state.js +74 -35
- package/dist/util/util.d.ts +1 -0
- package/dist/util/util.js +74 -22
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +14 -5
|
@@ -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
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
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
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
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
|
|
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
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
if (
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1351
|
-
|
|
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 =
|
|
1409
|
+
const product = configState.firstOfType("product");
|
|
1355
1410
|
if (product) {
|
|
1356
|
-
this.
|
|
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
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
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.
|
|
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
|
-
|
|
1574
|
-
|
|
1575
|
-
return accept(viewer);
|
|
1576
|
-
};
|
|
1577
|
-
this.append(viewer);
|
|
1578
|
-
});
|
|
1646
|
+
this.append(viewer);
|
|
1647
|
+
return this._awaitLoad(viewer);
|
|
1579
1648
|
}
|
|
1580
|
-
return
|
|
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
|
|
1744
|
-
viewer.setAttribute("scene-graph-id",
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
2063
|
-
|
|
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
|
-
|
|
2076
|
-
|
|
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
|
-
|
|
2563
|
-
|
|
2564
|
-
return accept(viewer);
|
|
2565
|
-
};
|
|
2566
|
-
this.append(viewer);
|
|
2567
|
-
});
|
|
2652
|
+
this.append(viewer);
|
|
2653
|
+
return this._awaitLoad(viewer);
|
|
2568
2654
|
}
|
|
2569
|
-
return
|
|
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
|
-
|
|
2781
|
-
|
|
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
|
-
|
|
2816
|
-
|
|
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":
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3883
|
+
Util._cache.set('canQuicklook', result);
|
|
3884
|
+
return result;
|
|
3745
3885
|
}
|
|
3746
3886
|
static canSceneViewer() {
|
|
3747
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3962
|
+
result = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3], 10)];
|
|
3784
3963
|
}
|
|
3785
3964
|
}
|
|
3786
|
-
|
|
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
|
-
|
|
3791
|
-
|
|
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.
|
|
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
|
-
|
|
5581
|
-
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
9129
|
+
},{}],136:[function(require,module,exports){
|
|
9287
9130
|
module.exports = "2.7.2";
|
|
9288
9131
|
|
|
9289
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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+="<";break;case">":e+=">";break;case"&":e+="&";break;case'"':e+=""";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":
|
|
11376
|
+
},{"buffer":138}]},{},[17])(17)
|
|
11534
11377
|
});
|