@plattar/plattar-ar-adapter 1.189.2 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.PlattarARAdapter=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ConfiguratorAR=void 0;const plattar_analytics_1=require("@plattar/plattar-analytics");const plattar_api_1=require("@plattar/plattar-api");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class ConfiguratorAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.state){throw new Error("ConfiguratorAR.constructor(state) - state must be defined")}this._options=options;this._ar=null}_SetupAnalytics(){const scene=this._options.state.scene;let analytics=null;if(scene){analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","scene-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",scene.id);analytics.data.push("sceneTitle",scene.attributes.title);const application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:application.attributes.title,subtitle:scene.attributes.title,button:"Visit"}}}}}async _Compose(output){const type=output==="glb"?"viewer":"reality";const url=`https://xrutils.plattar.com/v3/scene/${this._options.state.scene.id}/${type}`;try{const response=await fetch(url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{attributes:this._options.state.state.sceneGraph}})});if(!response.ok){throw new Error(`ConfiguratorAR - Fetching Existing Graph Error - network response was not ok ${response.status}`)}const data=await response.json();return data.data.attributes.url}catch(error){throw new Error(`ConfiguratorAR - Fetching Existing Graph Error - there was a request error to ${url}, error was ${error.message}`)}}async init(){if(!util_1.Util.canAugment()){throw new Error("ConfiguratorAR.init() - cannot proceed as AR not available in context")}const scene=this._options.state.scene;this._SetupAnalytics();const sceneOpt=scene.attributes.custom_json||{};if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(sceneOpt.anchor==="face"){if(util_1.Util.canRealityViewer()){const modelUrl=await this._Compose("vto");this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return this}else{throw new Error("ConfiguratorAR.init() - cannot proceed as VTO AR requires Reality Viewer support")}}if(util_1.Util.canQuicklook()){const modelUrl=await this._Compose("usdz");this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return this}throw new Error("ConfiguratorAR.init() - cannot proceed as IOS device does not support AR Mode")}if(util_1.Util.canSceneViewer()){const modelUrl=await this._Compose("glb");const arviewer=new scene_viewer_1.default;arviewer.modelUrl=modelUrl;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}this._ar=arviewer;return this}throw new Error("ConfiguratorAR.init() - could not initialise AR correctly, check values")}start(){if(!this._ar){throw new Error("SceneAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Scene Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.ConfiguratorAR=ConfiguratorAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],2:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.LauncherAR=void 0;class LauncherAR{constructor(){this._opt={anchor:"horizontal_vertical",banner:null}}async launch(){const value=await this.init();return value.start()}get options(){return this._opt}}exports.LauncherAR=LauncherAR},{}],3:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ModelAR=void 0;const plattar_api_1=require("@plattar/plattar-api");const plattar_analytics_1=require("@plattar/plattar-analytics");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class ModelAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.modelID){throw new Error("ModelAR.constructor(modelID) - modelID must be defined")}this._options=options;this._ar=null}get modelID(){return this._options.modelID}_SetupAnalytics(model){let analytics=null;const project=model.relationships.find(plattar_api_1.Project);if(project){analytics=new plattar_analytics_1.Analytics(project.id);analytics.origin=plattar_api_1.Server.location().type;analytics.data.push("type","model-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("applicationId",project.id);analytics.data.push("applicationTitle",project.attributes.title);analytics.data.push("modelId",model.id);analytics.data.push("modelTitle",model.attributes.title);this._analytics=analytics;if(this._options.useARBanner){this.options.banner={title:project.attributes.title,subtitle:model.attributes.title,button:"Visit"}}}}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("ModelAR.init() - cannot proceed as AR not available in context"))}const model=new plattar_api_1.FileModel(this.modelID);model.include(plattar_api_1.Project);model.get().then(model=>{this._SetupAnalytics(model);if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(model.attributes.reality_filename&&util_1.Util.canRealityViewer()){this._ar=new reality_viewer_1.default;this._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.reality_filename;this._ar.banner=this.options.banner;return accept(this)}if(model.attributes.usdz_filename&&util_1.Util.canQuicklook()){this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.usdz_filename;this._ar.banner=this.options.banner;return accept(this)}return reject(new Error("ModelAR.init() - cannot proceed as ModelFile does not have a defined .usdz or .reality file"))}if(util_1.Util.canSceneViewer()){const arviewer=new scene_viewer_1.default;arviewer.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.original_filename;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;this._ar=arviewer;return accept(this)}return reject(new Error("ModelAR.init() - could not initialise AR correctly, check values"))}).catch(reject)})}start(){if(!this._ar){throw new Error("ModelAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Model Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.ModelAR=ModelAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/reality-viewer":23,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],4:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ProductAR=void 0;const plattar_api_1=require("@plattar/plattar-api");const plattar_analytics_1=require("@plattar/plattar-analytics");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class ProductAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.productID){throw new Error("ProductAR.constructor(productID, variationID) - productID must be defined")}this._options=options;this._ar=null}get productID(){return this._options.productID}get variationID(){return this._options.variationID}get variationSKU(){return this._options.variationSKU}_SetupAnalytics(product,variation){let analytics=null;const scene=product.relationships.find(plattar_api_1.Scene);if(scene){analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","product-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",scene.id);analytics.data.push("sceneTitle",scene.attributes.title);const application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:product.attributes.title,subtitle:variation.attributes.title,button:"Visit"}}}}if(analytics){analytics.data.push("productId",product.id);analytics.data.push("productTitle",product.attributes.title);analytics.data.push("productSKU",product.attributes.sku);analytics.data.push("variationId",variation.id);analytics.data.push("variationTitle",variation.attributes.title);analytics.data.push("variationSKU",variation.attributes.sku)}}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("ProductAR.init() - cannot proceed as AR not available in context"))}const product=new plattar_api_1.Product(this.productID);product.include(plattar_api_1.ProductVariation);product.include(plattar_api_1.ProductVariation.include(plattar_api_1.FileModel));product.include(plattar_api_1.Scene);product.include(plattar_api_1.Scene.include(plattar_api_1.Project));product.get().then(product=>{const variationID=this.variationID?this.variationID==="default"?product.attributes.product_variation_id:this.variationID:null;const variationSKU=this.variationSKU;if(!variationID&&!variationSKU){return reject(new Error("ProductAR.init() - cannot proceed as variation-id or variation-sku was not set correctly"))}let variation=undefined;if(variationID){variation=product.relationships.find(plattar_api_1.ProductVariation,variationID)}if(!variation&&variationSKU){const variations=product.relationships.filter(plattar_api_1.ProductVariation);if(variations){variation=variations.find(element=>{return element.attributes.sku===variationSKU})}}if(!variation){return reject(new Error("ProductAR.init() - cannot proceed as variation with id "+variationID+" or sku "+variationSKU+" cannot be found"))}const modelID=variation.attributes.file_model_id;if(!modelID){return reject(new Error("ProductAR.init() - cannot proceed as variation does not have a defined file"))}const model=variation.relationships.find(plattar_api_1.FileModel,modelID);if(!model){return reject(new Error("ProductAR.init() - cannot proceed as ModelFile for selected variation is corrupt"))}this._SetupAnalytics(product,variation);if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(model.attributes.reality_filename&&util_1.Util.canRealityViewer()){this._ar=new reality_viewer_1.default;this._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.reality_filename;this._ar.banner=this.options.banner;return accept(this)}if(model.attributes.usdz_filename&&util_1.Util.canQuicklook()){this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.usdz_filename;this._ar.banner=this.options.banner;return accept(this)}return reject(new Error("ProductAR.init() - cannot proceed as ModelFile does not have a defined .usdz or .reality file"))}if(util_1.Util.canSceneViewer()){const arviewer=new scene_viewer_1.default;arviewer.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.original_filename;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;const scene=product.relationships.find(plattar_api_1.Scene);if(scene){const sceneOpt=scene.attributes.custom_json||{};if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}}this._ar=arviewer;return accept(this)}return reject(new Error("ProductAR.init() - could not initialise AR correctly, check values"))}).catch(reject)})}start(){if(!this._ar){throw new Error("ProductAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.ProductAR=ProductAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/reality-viewer":23,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],5:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.RawAR=void 0;const plattar_analytics_1=require("@plattar/plattar-analytics");const plattar_api_1=require("@plattar/plattar-api");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class RawAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.modelLocation){throw new Error("RawAR.constructor(modelLocation) - modelLocation must be defined")}const lowerLoc=options.modelLocation.toLowerCase();if(lowerLoc.endsWith("usdz")||lowerLoc.endsWith("glb")||lowerLoc.endsWith("gltf")||lowerLoc.endsWith("reality")){this._options=options;this._ar=null}else{throw new Error("RawAR.constructor(modelLocation) - modelLocation must be one of gltf, glb, usdz or reality")}}get modelLocation(){return this._options.modelLocation}_SetupAnalytics(){return new Promise((accept,_reject)=>{const sceneID=this._options.sceneID;if(!sceneID){return accept()}const scene=new plattar_api_1.Scene(sceneID);scene.include(plattar_api_1.Project);scene.get().then(scene=>{const analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","scene-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",scene.id);analytics.data.push("sceneTitle",scene.attributes.title);const application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:application.attributes.title,subtitle:scene.attributes.title,button:"Visit"}}}accept()}).catch(_err=>{accept()})})}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("RawAR.init() - cannot proceed as AR not available in context"))}this._SetupAnalytics().then(()=>{const modelLocation=this._options.modelLocation;const lowerLoc=modelLocation.toLowerCase();if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(lowerLoc.endsWith("reality")&&util_1.Util.canRealityViewer()){this._ar=new reality_viewer_1.default;this._ar.modelUrl=modelLocation;this._ar.banner=this.options.banner;return accept(this)}if(lowerLoc.endsWith("usdz")&&util_1.Util.canQuicklook()){this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelLocation;return accept(this)}return reject(new Error("RawAR.init() - cannot proceed as model is not a .usdz or .reality file"))}if(util_1.Util.canSceneViewer()){if(lowerLoc.endsWith("glb")||lowerLoc.endsWith("gltf")){const arviewer=new scene_viewer_1.default;arviewer.modelUrl=modelLocation;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;this._ar=arviewer;return accept(this)}return reject(new Error("RawAR.init() - cannot proceed as model is not a .glb or .gltf file"))}return reject(new Error("RawAR.init() - could not initialise AR correctly, check values"))})})}start(){if(!this._ar){throw new Error("RawAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Scene Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.RawAR=RawAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/reality-viewer":23,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],6:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.SceneAR=void 0;const plattar_analytics_1=require("@plattar/plattar-analytics");const plattar_api_1=require("@plattar/plattar-api");const plattar_services_1=require("@plattar/plattar-services");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class SceneAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.sceneID){throw new Error("SceneAR.constructor(sceneID) - sceneID must be defined")}this._options=options;this._ar=null}get sceneID(){return this._options.sceneID}_SetupAnalytics(scene){let analytics=null;if(scene){analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","scene-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",scene.id);analytics.data.push("sceneTitle",scene.attributes.title);const application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:application.attributes.title,subtitle:scene.attributes.title,button:"Visit"}}}}}_ComposeScene(scene,output){return new Promise((accept,reject)=>{const sceneProducts=scene.relationships.filter(plattar_api_1.SceneProduct);const sceneModels=scene.relationships.filter(plattar_api_1.SceneModel);if(sceneProducts.length+sceneModels.length<=0){return reject(new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain AR components"))}const configurator=new plattar_services_1.Configurator;configurator.server=plattar_api_1.Server.location().type;configurator.output=output;let totalARObjectCount=0;sceneProducts.forEach(sceneProduct=>{const product=sceneProduct.relationships.find(plattar_api_1.Product);const selection=this._options.variationSelection;if(sceneProduct.attributes.include_in_augment){if(product&&product.id===selection.productID&&selection.variationID){configurator.addSceneProduct(sceneProduct.id,selection.variationID);totalARObjectCount++}else if(product){if(sceneProduct.id===selection.sceneProductID&&selection.variationID){configurator.addSceneProduct(sceneProduct.id,selection.variationID);totalARObjectCount++}else if(product.attributes.product_variation_id){configurator.addSceneProduct(sceneProduct.id,product.attributes.product_variation_id);totalARObjectCount++}}}});sceneModels.forEach(sceneModel=>{if(sceneModel.attributes.include_in_augment){configurator.addModel(sceneModel.id);totalARObjectCount++}});if(totalARObjectCount<=0){return reject(new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain any enabled AR components"))}return configurator.get().then(result=>{accept(result.filename)}).catch(reject)})}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("SceneAR.init() - cannot proceed as AR not available in context"))}const scene=new plattar_api_1.Scene(this.sceneID);scene.include(plattar_api_1.Project);scene.include(plattar_api_1.SceneProduct);scene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product));scene.include(plattar_api_1.SceneModel);scene.get().then(scene=>{this._SetupAnalytics(scene);const sceneOpt=scene.attributes.custom_json||{};if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(sceneOpt.anchor==="face"){if(util_1.Util.canRealityViewer()){return this._ComposeScene(scene,"vto").then(modelUrl=>{this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return accept(this)}).catch(reject)}else{return reject(new Error("SceneAR.init() - cannot proceed as VTO AR requires Reality Viewer support"))}}if(util_1.Util.canQuicklook()){return this._ComposeScene(scene,"usdz").then(modelUrl=>{this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return accept(this)}).catch(reject)}return reject(new Error("SceneAR.init() - cannot proceed as IOS device does not support AR Mode"))}if(util_1.Util.canSceneViewer()){return this._ComposeScene(scene,"glb").then(modelUrl=>{const arviewer=new scene_viewer_1.default;arviewer.modelUrl=modelUrl;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}this._ar=arviewer;return accept(this)}).catch(reject)}return reject(new Error("SceneAR.init() - could not initialise AR correctly, check values"))}).catch(reject)})}start(){if(!this._ar){throw new Error("SceneAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Scene Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.SceneAR=SceneAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48,"@plattar/plattar-services":122}],7:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.SceneGraphAR=void 0;const plattar_analytics_1=require("@plattar/plattar-analytics");const plattar_api_1=require("@plattar/plattar-api");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class SceneGraphAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;this._options=options;this._ar=null}async _SetupAnalytics(){const scene=new plattar_api_1.Scene(this._options.sceneID);scene.include(plattar_api_1.Project);const fetchedScene=await scene.get();let analytics=null;analytics=new plattar_analytics_1.Analytics(fetchedScene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","scene-graph-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",fetchedScene.id);analytics.data.push("sceneTitle",fetchedScene.attributes.title);const application=fetchedScene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:application.attributes.title,subtitle:fetchedScene.attributes.title,button:"Visit"}}}return fetchedScene}async _Compose(output){const type=output==="glb"?"viewer":"reality";const url=`https://xrutils.plattar.com/v3/scene/${this._options.sceneID}/${type}/${this._options.id}`;try{const response=await fetch(url,{method:"GET",headers:{"Content-Type":"application/json"}});if(!response.ok){throw new Error(`ARAdapter - Fetching Existing Graph Error - network response was not ok ${response.status}`)}const data=await response.json();return data.data.attributes.url}catch(error){throw new Error(`ARAdapter - Fetching Existing Graph Error - there was a request error to ${url}, error was ${error.message}`)}}async init(){if(!util_1.Util.canAugment()){throw new Error("SceneGraphAR.init() - cannot proceed as AR not available in context")}const scene=await this._SetupAnalytics();const sceneOpt=scene.attributes.custom_json||{};if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(sceneOpt.anchor==="face"){if(util_1.Util.canRealityViewer()){const modelUrl=await this._Compose("vto");this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return this}else{throw new Error("SceneGraphAR.init() - cannot proceed as VTO AR requires Reality Viewer support")}}if(util_1.Util.canQuicklook()){const modelUrl=await this._Compose("usdz");this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return this}throw new Error("SceneGraphAR.init() - cannot proceed as IOS device does not support AR Mode")}if(util_1.Util.canSceneViewer()){const modelUrl=await this._Compose("glb");const arviewer=new scene_viewer_1.default;arviewer.modelUrl=modelUrl;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}this._ar=arviewer;return this}throw new Error("SceneGraphAR.init() - could not initialise AR correctly, check values")}start(){if(!this._ar){throw new Error("SceneGraphAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Scene Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.SceneGraphAR=SceneGraphAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],8:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SceneProductAR=void 0;const product_ar_1=require("./product-ar");const plattar_api_1=require("@plattar/plattar-api");const util_1=require("../util/util");class SceneProductAR extends product_ar_1.ProductAR{constructor(options){super(options);this._attachedProductID=null;if(!options.productID){throw new Error("SceneProductAR.constructor(sceneProductID, variationID) - sceneProductID must be defined")}this._sceneProductID=options.productID}get sceneProductID(){return this._sceneProductID}get productID(){if(!this._attachedProductID){throw new Error("SceneProductAR.productID() - product id was not defined, did you call init()?")}return this._attachedProductID}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("SceneProductAR.init() - cannot proceed as AR not available in context"))}const sceneProduct=new plattar_api_1.SceneProduct(this.sceneProductID);sceneProduct.get().then(sceneProduct=>{const productID=sceneProduct.attributes.product_id;if(!productID){return reject("SceneProductAR.init() - Scene Product does not have an attached Product instance")}this._attachedProductID=productID;return super.init().then(accept).catch(reject)}).catch(reject)})}}exports.SceneProductAR=SceneProductAR},{"../util/util":19,"./product-ar":4,"@plattar/plattar-api":48}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ConfiguratorController=void 0;const plattar_api_1=require("@plattar/plattar-api");const scene_product_ar_1=require("../../ar/scene-product-ar");const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");const configurator_ar_1=require("../../ar/configurator-ar");const scene_graph_ar_1=require("../../ar/scene-graph-ar");class ConfiguratorController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.Renderer){const viewer=this.element;if(viewer){if(attributeName==="variation-id"){const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];if(variationIDsList.length>0){await viewer.messenger.selectVariationID(variationIDsList)}}if(attributeName==="variation-sku"){const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];if(variationSKUList.length>0){await viewer.messenger.selectVariationSKU(variationSKUList)}}}return}if(state===plattar_controller_1.ControllerState.QRCode){if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}this.startQRCode(this._prevQROpt);return}}async startARQRCode(options){try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.startARQRCode(options)}return Promise.reject(new Error("ConfiguratorController.startARQRCode() - legacy product transition failed"))}}catch(_err){}return super.startARQRCode(options)}async startViewerQRCode(options){const opt=this._GetDefaultQROptions(options);if(!opt.detached){this.removeRenderer()}const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("ConfiguratorController.startViewerQRCode() - minimum required attributes not set, use scene-id as a minimum")}let configState=null;try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.startViewerQRCode(options)}return Promise.reject(new Error("ConfiguratorController.startViewerQRCode() - legacy product transition failed"))}configState=dState.state.encode()}catch(_err){configState=null}const viewer=document.createElement("plattar-qrcode");if(!opt.detached){this._element=viewer}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");let dst=plattar_api_1.Server.location().base+"renderer/configurator.html?scene_id="+sceneID;const showAR=this.getAttribute("show-ar");const showUI=this.getAttribute("show-ui");const showBanner=this.getAttribute("show-ar-banner");const sceneGraphID=this.getAttribute("scene-graph-id");if(showUI&&showUI==="true"){dst=plattar_api_1.Server.location().base+"configurator/dist/index.html?scene_id="+sceneID}if(configState){dst+="&config_state="+configState}if(showAR){dst+="&show_ar="+showAR}if(showBanner){dst+="&show_ar_banner="+showBanner}if(sceneGraphID){dst+="&scene_graph_id="+sceneGraphID}viewer.setAttribute("url",opt.url||dst);this._prevQROpt=opt;if(!opt.detached){this._state=plattar_controller_1.ControllerState.QRCode;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return new Promise((accept,reject)=>{return accept(viewer)})}async startRenderer(){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("ConfiguratorController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}let configState=null;this._state=plattar_controller_1.ControllerState.Renderer;try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.startRenderer()}return Promise.reject(new Error("ConfiguratorController.startRenderer() - legacy product transition failed"))}configState=dState}catch(_err){configState=null}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-configurator");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);const showAR=this.getAttribute("show-ar");const showUI=this.getAttribute("show-ui");if(configState){const encodedState=configState.state.encode();if(encodedState.length<6e3){viewer.setAttribute("config-state",encodedState)}}if(showAR){viewer.setAttribute("show-ar",showAR)}if(showUI){viewer.setAttribute("show-ui",showUI)}return new Promise((accept,reject)=>{this.append(viewer);if(configState){this.setupMessengerObservers(viewer,configState)}return accept(viewer)})}async initAR(){if(!util_1.Util.canAugment()){throw new Error("ConfiguratorController.initAR() - cannot proceed as AR not available in context")}try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.initAR()}return Promise.reject(new Error("ConfiguratorController.initAR() - legacy product transition failed"))}}catch(_err){}const arMode=this.getAttribute("ar-mode")||"generated";switch(arMode.toLowerCase()){case"inherited":return this._InitARInherited();case"generated":default:return this._InitARGenerated()}}async _InitARInherited(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("ConfiguratorController.initAR() - inherited AR minimum required attributes not set, use scene-id as a minimum")}const state=(await this.getConfiguratorState()).state;const first=state.firstActiveOfType("sceneproduct");if(first){const sceneProductAR=new scene_product_ar_1.SceneProductAR({productID:first.scene_product_id,variationID:first.product_variation_id,variationSKU:null,useARBanner:this.getBooleanAttribute("show-ar-banner")});return sceneProductAR.init()}throw new Error("ConfiguratorController.initAR() - invalid decoded config-state does not have any product states")}async _InitARGenerated(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.initAR() - generated AR minimum required attributes not set, use scene-id as a minimum")}const graphID=this.getAttribute("scene-graph-id");if(graphID){const configAR=new scene_graph_ar_1.SceneGraphAR({useARBanner:this.getBooleanAttribute("show-ar-banner"),id:graphID,sceneID:sceneID});return configAR.init()}const configAR=new configurator_ar_1.ConfiguratorAR({state:await this.getConfiguratorState(),useARBanner:this.getBooleanAttribute("show-ar-banner")});return configAR.init()}get element(){return this._element}}exports.ConfiguratorController=ConfiguratorController},{"../../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){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.GalleryController=void 0;const plattar_api_1=require("@plattar/plattar-api");const plattar_controller_1=require("./plattar-controller");class GalleryController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.QRCode){if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}this.startQRCode(this._prevQROpt);return}}async startViewerQRCode(options){const opt=this._GetDefaultQROptions(options);if(!opt.detached){this.removeRenderer()}const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("GalleryController.startViewerQRCode() - minimum required attributes not set, use scene-id as a minimum")}const viewer=document.createElement("plattar-qrcode");if(!opt.detached){this._element=viewer}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const dst=plattar_api_1.Server.location().base+"renderer/gallery.html?scene_id="+sceneID;viewer.setAttribute("url",opt.url||dst);this._prevQROpt=opt;if(!opt.detached){this._state=plattar_controller_1.ControllerState.QRCode;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return new Promise((accept,reject)=>{return accept(viewer)})}async startRenderer(){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("GalleryController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}this._state=plattar_controller_1.ControllerState.Renderer;const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-gallery");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);return new Promise((accept,reject)=>{this.append(viewer);return accept(viewer)})}async initAR(){throw new Error("GalleryController.initAR() - cannot proceed as AR not available in gallery context")}get element(){return this._element}}exports.GalleryController=GalleryController},{"./plattar-controller":12,"@plattar/plattar-api":48}],11:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.LauncherController=void 0;const scene_product_ar_1=require("../../ar/scene-product-ar");const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");const configurator_ar_1=require("../../ar/configurator-ar");const scene_graph_ar_1=require("../../ar/scene-graph-ar");class LauncherController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}if(state===plattar_controller_1.ControllerState.QRCode){this.startQRCode(this._prevQROpt);return}}async startARQRCode(options){try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.startARQRCode(options)}return Promise.reject(new Error("LauncherController.startARQRCode() - legacy product transition failed"))}}catch(_err){}return super.startARQRCode(options)}async startViewerQRCode(options){return this.startARQRCode(options)}async startRenderer(){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("LauncherController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}const configState=await this.getConfiguratorState();this._state=plattar_controller_1.ControllerState.Renderer;const qrOptions=btoa(JSON.stringify(this._GetDefaultQROptions()));const embedType=this.getAttribute("embed-type");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const arMode=this.getAttribute("ar-mode");const showBanner=this.getAttribute("show-ar-banner");const sceneGraphID=this.getAttribute("scene-graph-id");const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-launcher");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);viewer.setAttribute("qr-options",qrOptions);if(embedType){viewer.setAttribute("embed-type",embedType)}if(productID){viewer.setAttribute("product-id",productID)}if(sceneProductID){viewer.setAttribute("scene-product-id",sceneProductID)}if(variationID){viewer.setAttribute("variation-id",variationID)}if(variationSKU){viewer.setAttribute("variation-sku",variationSKU)}if(arMode){viewer.setAttribute("ar-mode",arMode)}if(showBanner){viewer.setAttribute("show-ar-banner",showBanner)}if(sceneGraphID){viewer.setAttribute("scene-graph-id",sceneGraphID)}else{try{const sceneGraphID=await(await this.getConfiguratorState()).state.encodeSceneGraphID();viewer.setAttribute("scene-graph-id",sceneGraphID)}catch(_err){console.error(_err)}}return new Promise((accept,reject)=>{this.append(viewer);if(configState){this.setupMessengerObservers(viewer,configState)}return accept(viewer)})}async initAR(){if(!util_1.Util.canAugment()){throw new Error("LauncherController.initAR() - cannot proceed as AR not available in context")}try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.initAR()}return Promise.reject(new Error("LauncherController.initAR() - legacy product transition failed"))}}catch(_err){}const arMode=this.getAttribute("ar-mode")||"generated";switch(arMode.toLowerCase()){case"inherited":return this._InitARInherited();case"generated":default:return this._InitARGenerated()}}async _InitARInherited(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("LauncherController.initAR() - inherited AR minimum required attributes not set, use scene-id as a minimum")}const state=(await this.getConfiguratorState()).state;const first=state.firstActiveOfType("sceneproduct");if(first){const sceneProductAR=new scene_product_ar_1.SceneProductAR({productID:first.scene_product_id,variationID:first.product_variation_id,variationSKU:null,useARBanner:this.getBooleanAttribute("show-ar-banner")});return sceneProductAR.init()}throw new Error("LauncherController.initAR() - invalid decoded config-state does not have any product states")}async _InitARGenerated(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("LauncherController.initAR() - generated AR minimum required attributes not set, use scene-id as a minimum")}const graphID=this.getAttribute("scene-graph-id");if(graphID){const configAR=new scene_graph_ar_1.SceneGraphAR({useARBanner:this.getBooleanAttribute("show-ar-banner"),id:graphID,sceneID:sceneID});return configAR.init()}const configAR=new configurator_ar_1.ConfiguratorAR({state:await this.getConfiguratorState(),useARBanner:this.getBooleanAttribute("show-ar-banner")});return configAR.init()}get element(){return this._element}}exports.LauncherController=LauncherController},{"../../ar/configurator-ar":1,"../../ar/scene-graph-ar":7,"../../ar/scene-product-ar":8,"../../util/util":19,"./plattar-controller":12}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.PlattarController=exports.ControllerState=void 0;const plattar_api_1=require("@plattar/plattar-api");const configurator_state_1=require("../../util/configurator-state");var ControllerState;(function(ControllerState){ControllerState[ControllerState["None"]=0]="None";ControllerState[ControllerState["Renderer"]=1]="Renderer";ControllerState[ControllerState["QRCode"]=2]="QRCode"})(ControllerState||(exports.ControllerState=ControllerState={}));class PlattarController{_GetDefaultQROptions(opt=null){const options=opt??{};return{color:options.color??(this.getAttribute("qr-color")||"#101721"),qrType:options.qrType??(this.getAttribute("qr-style")||"default"),shorten:options.shorten??(this.getBooleanAttribute("qr-shorten")||true),margin:options.margin??0,detached:options.detached??(this.getBooleanAttribute("qr-detached")||false),url:options.url??null}}constructor(parent){this._state=ControllerState.None;this._element=null;this._prevQROpt=null;this._selectVariationObserver=null;this._selectVariationIDObserver=null;this._selectVariationSKUObserver=null;this._parent=parent}async createConfiguratorState(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("PlattarController.createConfiguratorState() - cannot create as required attribute scene-id is not defined")}const configState=this.getAttribute("config-state");const variationIDs=this.getAttribute("variation-id");const variationSKUs=this.getAttribute("variation-sku");const decodedState=configState?await configurator_state_1.ConfiguratorState.decodeState(sceneID,configState):await configurator_state_1.ConfiguratorState.decodeScene(sceneID);const variationIDList=variationIDs?variationIDs.split(","):[];const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationIDList.forEach(variationID=>{decodedState.state.setVariationID(variationID)});variationSKUList.forEach(variationSKU=>{decodedState.state.setVariationSKU(variationSKU)});return decodedState}setupMessengerObservers(viewer,configState){this._selectVariationObserver=viewer.messengerInstance.observer.subscribe("selectVariation",cd=>{if(cd.type==="call"){const args=cd.data[0];const variations=args?Array.isArray(args)?args:[args]:[];variations.forEach(variationID=>{configState.state.setVariationID(variationID)})}});this._selectVariationIDObserver=viewer.messengerInstance.observer.subscribe("selectVariationID",cd=>{if(cd.type==="call"){const args=cd.data[0];const variations=args?Array.isArray(args)?args:[args]:[];variations.forEach(variationID=>{configState.state.setVariationID(variationID)})}});this._selectVariationSKUObserver=viewer.messengerInstance.observer.subscribe("selectVariationSKU",cd=>{if(cd.type==="call"){const args=cd.data[0];const variations=args?Array.isArray(args)?args:[args]:[];variations.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}})}removeMessengerObservers(){if(this._selectVariationObserver){this._selectVariationObserver();this._selectVariationObserver=null}if(this._selectVariationIDObserver){this._selectVariationIDObserver();this._selectVariationIDObserver=null}if(this._selectVariationSKUObserver){this._selectVariationSKUObserver();this._selectVariationSKUObserver=null}}async startAR(){const launcher=await this.initAR();return launcher.start()}async startQRCode(options){const qrType=this.getAttribute("qr-type")||"viewer";switch(qrType.toLowerCase()){case"ar":return this.startARQRCode(options);case"viewer":default:return this.startViewerQRCode(options)}}async startARQRCode(options){const opt=this._GetDefaultQROptions(options);const viewer=document.createElement("plattar-qrcode");if(!opt.detached){this.removeRenderer();this._element=viewer}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",`${opt.margin}`)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const qrOptions=btoa(JSON.stringify(opt));let dst=plattar_api_1.Server.location().base+"renderer/launcher.html?qr_options="+qrOptions;const sceneID=this.getAttribute("scene-id");const embedType=this.getAttribute("embed-type");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const arMode=this.getAttribute("ar-mode");const showBanner=this.getAttribute("show-ar-banner");const sceneGraphID=this.getAttribute("scene-graph-id");if(embedType){dst+="&embed_type="+embedType}if(productID){dst+="&product_id="+productID}if(sceneProductID){dst+="&scene_product_id="+sceneProductID}if(variationID){dst+="&variation_id="+variationID}if(variationSKU){dst+="&variation_sku="+variationSKU}if(arMode){dst+="&ar_mode="+arMode}if(sceneID){dst+="&scene_id="+sceneID}if(showBanner){dst+="&show_ar_banner="+showBanner}if(sceneGraphID){dst+="&scene_graph_id="+sceneGraphID}else{try{const sceneGraphID=await(await this.getConfiguratorState()).state.encodeSceneGraphID();dst+="&scene_graph_id="+sceneGraphID}catch(_err){console.error(_err)}}viewer.setAttribute("url",opt.url||dst);this._prevQROpt=opt;if(!opt.detached){this._state=ControllerState.QRCode;return new Promise((accept,reject)=>{this.append(viewer);viewer.onload=()=>{return accept(viewer)}})}return new Promise((accept,reject)=>{return accept(viewer)})}removeRenderer(){const shadow=this.parent.shadowRoot;if(shadow){let child=shadow.lastElementChild;while(child){shadow.removeChild(child);child=shadow.lastElementChild}}this._element=null;this.removeMessengerObservers();return true}get parent(){return this._parent}getAttribute(attribute){return this.parent?this.parent.hasAttribute(attribute)?this.parent.getAttribute(attribute):null:null}getBooleanAttribute(attribute){return this.parent?this.parent.hasAttribute(attribute)?this.parent.getAttribute(attribute)?.toLowerCase()==="true"?true:false:false:false}setAttribute(attribute,value){if(this.parent){this.parent.setAttribute(attribute,value)}}removeAttribute(attribute){if(this.parent){this.parent.removeAttribute(attribute)}}append(element){if(this._element!==element){return}const shadow=this.parent.shadowRoot||this.parent.attachShadow({mode:"open"});if(shadow){let child=shadow.lastElementChild;while(child){shadow.removeChild(child);child=shadow.lastElementChild}}shadow.append(element)}removeChild(element){const shadow=this.parent.shadowRoot;if(shadow){shadow.removeChild(element)}}}exports.PlattarController=PlattarController},{"../../util/configurator-state":18,"@plattar/plattar-api":48}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ProductController=void 0;const plattar_api_1=require("@plattar/plattar-api");const product_ar_1=require("../../ar/product-ar");const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");class ProductController extends plattar_controller_1.PlattarController{async getConfiguratorState(){throw new Error("ProductController.getConfiguratorState() - legacy embeds do not support configurator states")}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.QRCode){this.startQRCode(this._prevQROpt);return}if(state===plattar_controller_1.ControllerState.Renderer){const viewer=this._element;if(viewer){const variationID=this.getAttribute("variation-id");if(variationID&&viewer.messenger){viewer.messenger.selectVariation(variationID)}}}}startViewerQRCode(options){return new Promise((accept,reject)=>{this.removeRenderer();const productID=this.getAttribute("product-id");if(productID){const opt=options||this._GetDefaultQROptions();const viewer=document.createElement("plattar-qrcode");const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const showAR=this.getAttribute("show-ar");let dst=plattar_api_1.Server.location().base+"renderer/product.html?product_id="+productID;if(variationID){dst+="&variationId="+variationID}if(variationSKU){dst+="&variationSku="+variationSKU}if(showAR){dst+="&show_ar="+showAR}viewer.setAttribute("url",opt.url||dst);this._element=viewer;this._state=plattar_controller_1.ControllerState.QRCode;this._prevQROpt=opt;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return reject(new Error("ProductController.startQRCode() - minimum required attributes not set, use product-id as a minimum"))})}startARQRCode(options){return new Promise((accept,reject)=>{this.removeRenderer();const opt=options||this._GetDefaultQROptions();const viewer=document.createElement("plattar-qrcode");const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const qrOptions=btoa(JSON.stringify(opt));let dst=plattar_api_1.Server.location().base+"renderer/launcher.html?qr_options="+qrOptions;const sceneID=this.getAttribute("scene-id");const configState=this.getAttribute("config-state");const embedType=this.getAttribute("embed-type");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const arMode=this.getAttribute("ar-mode");const showBanner=this.getAttribute("show-ar-banner");if(configState){dst+="&config_state="+configState}if(embedType){dst+="&embed_type="+embedType}if(productID){dst+="&product_id="+productID}if(sceneProductID){dst+="&scene_product_id="+sceneProductID}if(variationID){dst+="&variation_id="+variationID}if(variationSKU){dst+="&variation_sku="+variationSKU}if(arMode){dst+="&ar_mode="+arMode}if(sceneID){dst+="&scene_id="+sceneID}if(showBanner){dst+="&show_ar_banner="+showBanner}viewer.setAttribute("url",opt.url||dst);this._element=viewer;this._state=plattar_controller_1.ControllerState.QRCode;this._prevQROpt=opt;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})})}startRenderer(){return new Promise((accept,reject)=>{this.removeRenderer();const productID=this.getAttribute("product-id");if(productID){const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-product");viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("product-id",productID);const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const showAR=this.getAttribute("show-ar");if(variationID){viewer.setAttribute("variation-id",variationID)}if(variationSKU){viewer.setAttribute("variation-sku",variationSKU)}if(showAR){viewer.setAttribute("show-ar",showAR)}this._element=viewer;this._state=plattar_controller_1.ControllerState.Renderer;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return reject(new Error("ProductController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"))})}initAR(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("ProductController.initAR() - cannot proceed as AR not available in context"))}const productID=this.getAttribute("product-id");if(productID){const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const product=new product_ar_1.ProductAR({productID:productID,variationID:variationID?variationID:variationSKU?null:"default",variationSKU:variationSKU,useARBanner:this.getBooleanAttribute("show-ar-banner")});return product.init().then(accept).catch(reject)}return reject(new Error("ProductController.initAR() - minimum required attributes not set, use product-id as a minimum"))})}get element(){return this._element}}exports.ProductController=ProductController},{"../../ar/product-ar":4,"../../util/util":19,"./plattar-controller":12,"@plattar/plattar-api":48}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.VTOController=void 0;const plattar_api_1=require("@plattar/plattar-api");const __1=require("../..");const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");const configurator_ar_1=require("../../ar/configurator-ar");class VTOController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.Renderer){const viewer=this.element;if(viewer){if(attributeName==="variation-id"){const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];if(variationIDsList.length>0){await viewer.messenger.selectVariationID(variationIDsList)}}if(attributeName==="variation-sku"){const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];if(variationSKUList.length>0){await viewer.messenger.selectVariationSKU(variationSKUList)}}}return}if(state===plattar_controller_1.ControllerState.QRCode){if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}this.startQRCode(this._prevQROpt);return}}async startViewerQRCode(options){const opt=this._GetDefaultQROptions(options);if(!opt.detached){this.removeRenderer()}const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.startQRCode() - minimum required attributes not set, use scene-id as a minimum")}const viewer=document.createElement("plattar-qrcode");if(!opt.detached){this._element=viewer}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");let dst=plattar_api_1.Server.location().base+"renderer/facear.html?scene_id="+sceneID;let configState=null;try{configState=await this.getConfiguratorState()}catch(_err){configState=null}const showAR=this.getAttribute("show-ar");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");if(configState){dst+="&config_state="+configState.state.encode()}if(showAR){dst+="&show_ar="+showAR}if(productID){dst+="&product_id="+productID}if(sceneProductID){dst+="&scene_product_id="+sceneProductID}if(variationID){dst+="&variation_id="+variationID}viewer.setAttribute("url",opt.url||dst);this._prevQROpt=opt;if(!opt.detached){this._state=plattar_controller_1.ControllerState.QRCode;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return new Promise((accept,reject)=>{return accept(viewer)})}async startRenderer(){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}this._state=plattar_controller_1.ControllerState.Renderer;const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-facear");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);let configState=null;try{configState=await this.getConfiguratorState()}catch(_err){configState=null}const showAR=this.getAttribute("show-ar");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");if(configState){viewer.setAttribute("config-state",configState.state.encode())}if(showAR){viewer.setAttribute("show-ar",showAR)}if(productID){viewer.setAttribute("product-id",productID)}if(sceneProductID){viewer.setAttribute("scene-product-id",sceneProductID)}if(variationID){viewer.setAttribute("variation-id",variationID)}return new Promise((accept,reject)=>{this.append(viewer);if(configState){this.setupMessengerObservers(viewer,configState)}return accept(viewer)})}async initAR(){if(!util_1.Util.canAugment()){throw new Error("VTOController.initAR() - cannot proceed as VTO AR not available in context")}if(!(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS())){throw new Error("VTOController.initAR() - cannot proceed as VTO AR only available on IOS Mobile devices")}const arMode=this.getAttribute("ar-mode")||"generated";switch(arMode.toLowerCase()){case"inherited":return this._InitARInherited();case"generated":default:return this._InitARGenerated()}}async _InitARInherited(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.initAR() - inherited AR minimum required attributes not set, use scene-id as a minimum")}const state=(await this.getConfiguratorState()).state;const first=state.firstActiveOfType("sceneproduct");if(first){const sceneProductAR=new __1.SceneProductAR({productID:first.scene_product_id,variationID:first.product_variation_id,variationSKU:null,useARBanner:this.getBooleanAttribute("show-ar-banner")});return sceneProductAR.init()}throw new Error("VTOController.initAR() - invalid decoded config-state does not have any product states")}async _InitARGenerated(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.initAR() - generated AR minimum required attributes not set, use scene-id as a minimum")}const configAR=new configurator_ar_1.ConfiguratorAR({state:await this.getConfiguratorState(),useARBanner:this.getBooleanAttribute("show-ar-banner")});return configAR.init()}get element(){return this._element}}exports.VTOController=VTOController},{"../..":17,"../../ar/configurator-ar":1,"../../util/util":19,"./plattar-controller":12,"@plattar/plattar-api":48}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WebXRController=void 0;const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");class WebXRController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.Renderer){const viewer=this.element;if(viewer){if(attributeName==="variation-id"){const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];if(variationIDsList.length>0){await viewer.messenger.selectVariationID(variationIDsList)}}if(attributeName==="variation-sku"){const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];if(variationSKUList.length>0){await viewer.messenger.selectVariationSKU(variationSKUList)}}}return}if(state===plattar_controller_1.ControllerState.QRCode){if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}this.startQRCode(this._prevQROpt);return}}startViewerQRCode(options){return this.startQRCode(options)}get element(){return this._element}async startQRCode(options){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("WebXRController.startQRCode() - minimum required attributes not set, use scene-id as a minimum")}const opt=options||this._GetDefaultQROptions();const viewer=document.createElement("plattar-qrcode");this._element=viewer;const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const dst=location.href;viewer.setAttribute("url",opt.url||dst);this._state=plattar_controller_1.ControllerState.QRCode;this._prevQROpt=opt;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}async startRenderer(){this.removeRenderer();if(!util_1.Util.canAugment()){return this.startQRCode(this._GetDefaultQROptions())}const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("WebXRController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-8wall");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);const showAR=this.getAttribute("show-ar");const showUI=this.getAttribute("show-ui");if(showAR){viewer.setAttribute("show-ar",showAR)}if(showUI){viewer.setAttribute("show-ui",showUI)}return new Promise((accept,reject)=>{this.append(viewer);return accept(viewer)})}async initAR(){throw new Error("WebXRController.initAR() - cannot proceed as AR not available in webxr")}}exports.WebXRController=WebXRController},{"../../util/util":19,"./plattar-controller":12}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});const plattar_api_1=require("@plattar/plattar-api");const configurator_controller_1=require("./controllers/configurator-controller");const vto_controller_1=require("./controllers/vto-controller");const product_controller_1=require("./controllers/product-controller");const util_1=require("../util/util");const webxr_controller_1=require("./controllers/webxr-controller");const gallery_controller_1=require("./controllers/gallery-controller");const launcher_controller_1=require("./controllers/launcher-controller");var EmbedType;(function(EmbedType){EmbedType[EmbedType["Configurator"]=0]="Configurator";EmbedType[EmbedType["Legacy"]=1]="Legacy";EmbedType[EmbedType["VTO"]=2]="VTO";EmbedType[EmbedType["WebXR"]=3]="WebXR";EmbedType[EmbedType["Gallery"]=4]="Gallery";EmbedType[EmbedType["Launcher"]=5]="Launcher";EmbedType[EmbedType["None"]=6]="None"})(EmbedType||(EmbedType={}));var ObserverState;(function(ObserverState){ObserverState[ObserverState["Locked"]=0]="Locked";ObserverState[ObserverState["Unlocked"]=1]="Unlocked"})(ObserverState||(ObserverState={}));class PlattarEmbed extends HTMLElement{constructor(){super();this._currentType=EmbedType.None;this._observerState=ObserverState.Unlocked;this._controller=null;this._currentSceneID=null;this._currentServer=null;this._observer=null}get viewer(){return this._controller?this._controller.element:null}connectedCallback(){this.create()}create(){if(!this._observer){this._observer=new MutationObserver(mutations=>{if(this._observerState===ObserverState.Unlocked){mutations.forEach(mutation=>{if(mutation.type==="attributes"){const attributeName=mutation.attributeName?mutation.attributeName:"none";if(this._currentType!==EmbedType.Legacy){this._CreateEmbed(attributeName)}else{this._OnAttributesUpdated(attributeName)}}})}});this._observer.observe(this,{attributes:true})}const productID=this.hasAttribute("product-id")&&!this.hasAttribute("scene-id")?this.getAttribute("product-id"):null;if(productID){this._currentType=EmbedType.Legacy;this._CreateLegacyEmbed();return this._controller}this._CreateEmbed("none");return this._controller}lockObserver(){this._observerState=ObserverState.Locked}unlockObserver(){this._observerState=ObserverState.Unlocked}destroy(){if(this._controller){this._controller.removeRenderer();this._controller=null}this._currentType=EmbedType.None}_CreateLegacyEmbed(){const server=this.hasAttribute("server")?this.getAttribute("server"):"production";if(util_1.Util.isValidServerLocation(server)){plattar_api_1.Server.create(plattar_api_1.Server.match(server||"production"));this._controller=new product_controller_1.ProductController(this);const init=this.hasAttribute("init")?this.getAttribute("init"):null;switch(init){case"viewer":this.startViewer();break;case"qrcode":this.startQRCode();break}}else{console.warn("PlattarEmbed.CreateLegacy - cannot create as server attribute "+server+" is invalid, embed status remains unchanged")}}_CreateEmbed(attributeName){const serverAttribute=this.hasAttribute("server")?this.getAttribute("server"):"production";if(this._currentServer!==serverAttribute){this._currentServer=serverAttribute||"production";if(this._controller){this._controller.removeRenderer();this._controller=null}}if(!util_1.Util.isValidServerLocation(this._currentServer)){console.warn("PlattarEmbed.Create - cannot create as server attribute "+this._currentServer+" is invalid, embed status remains unchanged");return}plattar_api_1.Server.create(plattar_api_1.Server.match(this._currentServer||"production"));const embedType=this.hasAttribute("embed-type")?this.getAttribute("embed-type"):"configurator";const currentEmbed=this._currentType;if(embedType){switch(embedType.toLowerCase()){case"vto":this._currentType=EmbedType.VTO;break;case"webxr":this._currentType=EmbedType.WebXR;break;case"gallery":this._currentType=EmbedType.Gallery;break;case"launcher":this._currentType=EmbedType.Launcher;break;case"viewer":case"configurator":default:this._currentType=EmbedType.Configurator}}if(currentEmbed!==this._currentType&&this._controller){this._controller.removeRenderer();this._controller=null}const sceneID=this.hasAttribute("scene-id")?this.getAttribute("scene-id"):null;if(sceneID!==this._currentSceneID&&this._controller){this._controller.removeRenderer();this._controller=null}this._currentSceneID=sceneID;if(!this._currentSceneID){return}if(!this._controller){switch(this._currentType){case EmbedType.Configurator:this._controller=new configurator_controller_1.ConfiguratorController(this);break;case EmbedType.WebXR:this._controller=new webxr_controller_1.WebXRController(this);break;case EmbedType.Gallery:this._controller=new gallery_controller_1.GalleryController(this);break;case EmbedType.Launcher:this._controller=new launcher_controller_1.LauncherController(this);break;case EmbedType.VTO:this._controller=new vto_controller_1.VTOController(this);break}if(this._controller){const init=this.hasAttribute("init")?this.getAttribute("init"):null;switch(init){case"viewer":this.startViewer();break;case"qrcode":this.startQRCode();break}}}else{this._OnAttributesUpdated(attributeName)}}async initAR(){if(!this._controller){throw new Error("PlattarEmbed.initAR() - cannot execute as controller has not loaded yet")}return this._controller.initAR()}async startAR(){if(!this._controller){throw new Error("PlattarEmbed.startAR() - cannot execute as controller has not loaded yet")}return this._controller.startAR()}async startViewer(){if(!this._controller){throw new Error("PlattarEmbed.startViewer() - cannot execute as controller has not loaded yet")}return this._controller.startRenderer()}async startQRCode(options=null){if(!this._controller){throw new Error("PlattarEmbed.startQRCode() - cannot execute as controller has not loaded yet")}return this._controller.startQRCode(options)}removeRenderer(){if(!this._controller){return false}return this._controller.removeRenderer()}_OnAttributesUpdated(attributeName){if(this._controller){this._controller.onAttributesUpdated(attributeName)}}addEventListener(type,listener,options){super.addEventListener(type,listener,options);const eventType="arclick";if(type===eventType){this.setAttribute("show-ar-banner","true");const url=new URL(location.href);if(url.searchParams.get("plattar_ar_action")==="true"){setTimeout(()=>{this.dispatchEvent(new Event(eventType))},200)}}}}exports.default=PlattarEmbed},{"../util/util":19,"./controllers/configurator-controller":9,"./controllers/gallery-controller":10,"./controllers/launcher-controller":11,"./controllers/product-controller":13,"./controllers/vto-controller":14,"./controllers/webxr-controller":15,"@plattar/plattar-api":48}],17:[function(require,module,exports){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=this&&this.__importStar||function(){var ownKeys=function(o){ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)if(Object.prototype.hasOwnProperty.call(o,k))ar[ar.length]=k;return ar};return ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k=ownKeys(mod),i=0;i<k.length;i++)if(k[i]!=="default")__createBinding(result,mod,k[i]);__setModuleDefault(result,mod);return result}}();var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ConfiguratorState=exports.Util=exports.RawAR=exports.ModelAR=exports.SceneAR=exports.SceneProductAR=exports.ProductAR=exports.LauncherAR=exports.version=exports.PlattarQRCode=exports.PlattarWeb=void 0;exports.PlattarWeb=__importStar(require("@plattar/plattar-web"));exports.PlattarQRCode=__importStar(require("@plattar/plattar-qrcode"));exports.version=__importStar(require("./version"));var launcher_ar_1=require("./ar/launcher-ar");Object.defineProperty(exports,"LauncherAR",{enumerable:true,get:function(){return launcher_ar_1.LauncherAR}});var product_ar_1=require("./ar/product-ar");Object.defineProperty(exports,"ProductAR",{enumerable:true,get:function(){return product_ar_1.ProductAR}});var scene_product_ar_1=require("./ar/scene-product-ar");Object.defineProperty(exports,"SceneProductAR",{enumerable:true,get:function(){return scene_product_ar_1.SceneProductAR}});var scene_ar_1=require("./ar/scene-ar");Object.defineProperty(exports,"SceneAR",{enumerable:true,get:function(){return scene_ar_1.SceneAR}});var model_ar_1=require("./ar/model-ar");Object.defineProperty(exports,"ModelAR",{enumerable:true,get:function(){return model_ar_1.ModelAR}});var raw_ar_1=require("./ar/raw-ar");Object.defineProperty(exports,"RawAR",{enumerable:true,get:function(){return raw_ar_1.RawAR}});var util_1=require("./util/util");Object.defineProperty(exports,"Util",{enumerable:true,get:function(){return util_1.Util}});var configurator_state_1=require("./util/configurator-state");Object.defineProperty(exports,"ConfiguratorState",{enumerable:true,get:function(){return configurator_state_1.ConfiguratorState}});const plattar_embed_1=__importDefault(require("./embed/plattar-embed"));const version_1=__importDefault(require("./version"));if(customElements){if(customElements.get("plattar-embed")===undefined){customElements.define("plattar-embed",plattar_embed_1.default)}}console.log("using @plattar/plattar-ar-adapter v"+version_1.default)},{"./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":138}],18:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ConfiguratorState=void 0;const plattar_api_1=require("@plattar/plattar-api");class ConfiguratorState{constructor(state=null){this._mappedVariationIDValues=new Map;this._mappedVariationSKUValues=new Map;const defaultState={meta:{scene_product_index:0,scene_model_index:0,product_index:0,product_variation_index:1,meta_index:2},states:[]};if(state){try{const decodedb64State=atob(state);const parsedState=JSON.parse(decodedb64State);if(parsedState.meta){defaultState.meta.scene_product_index=parsedState.meta.scene_product_index||0;defaultState.meta.scene_model_index=parsedState.meta.scene_model_index||0;defaultState.meta.product_index=parsedState.meta.product_index||0;defaultState.meta.product_variation_index=parsedState.meta.product_variation_index||1;defaultState.meta.meta_index=parsedState.meta.meta_index||2}defaultState.states=parsedState.states||[]}catch(err){console.error("ConfiguratorState.constructor() - there was an error parsing configurator state");console.error(err)}}this._state=defaultState}setVariationSKU(productVariationSKU){const variationIDs=this._mappedVariationSKUValues.get(productVariationSKU);if(!variationIDs){console.warn("ConfiguratorState.setVariationSKU() - Variation SKU of "+productVariationSKU+" is not defined in any variations");return}variationIDs.forEach(variationID=>{this.setVariationID(variationID)})}setVariationID(productVariationID){const sceneProductID=this._mappedVariationIDValues.get(productVariationID);if(!sceneProductID){console.warn("ConfiguratorState.setVariationID() - Variation ID of "+productVariationID+" is not defined in any products");return}this.setSceneProduct(sceneProductID,productVariationID)}setSceneProduct(sceneProductID,productVariationID,metaData=null){this.addSceneProduct(sceneProductID,productVariationID,metaData)}setSceneModel(SceneModelID,metaData=null){if(SceneModelID){metaData=metaData||{augment:true,type:"scenemodel"};metaData.type="scenemodel";const states=this._state.states;const meta=this._state.meta;let newData=null;const existingData=this.findSceneProductIndex(SceneModelID);if(existingData){newData=existingData}else{newData=[];states.push(newData)}newData[meta.scene_product_index]=SceneModelID;newData[meta.product_variation_index]=null;newData[meta.meta_index]=metaData}}setProduct(productID,productVariationID,metaData=null){if(productID&&productVariationID){metaData=metaData||{augment:true,type:"product"};metaData.type="product";const states=this._state.states;const meta=this._state.meta;let newData=null;const existingData=this.findSceneProductIndex(productID);if(existingData){newData=existingData}else{newData=[];states.push(newData)}newData[meta.product_index]=productID;newData[meta.product_variation_index]=productVariationID;newData[meta.meta_index]=metaData}}addSceneProduct(sceneProductID,productVariationID,metaData=null){if(sceneProductID&&productVariationID){metaData=metaData||{augment:true,type:"sceneproduct"};metaData.type="sceneproduct";const states=this._state.states;const meta=this._state.meta;let newData=null;const existingData=this.findSceneProductIndex(sceneProductID);if(existingData){newData=existingData}else{newData=[];states.push(newData)}newData[meta.scene_product_index]=sceneProductID;newData[meta.product_variation_index]=productVariationID;newData[meta.meta_index]=metaData}}findSceneProductIndex(sceneProductID){const states=this._state.states;if(states.length>0){const meta=this._state.meta;const found=states.find(productState=>{return productState[meta.scene_product_index]===sceneProductID});return found?found:null}return null}findSceneProduct(sceneProductID){const found=this.findSceneProductIndex(sceneProductID);if(found){const meta=this._state.meta;const data={scene_product_id:found[meta.scene_product_index],product_variation_id:found[meta.product_variation_index],meta_data:{augment:true,type:"sceneproduct"}};if(found.length===3){data.meta_data.augment=found[meta.meta_index].augment||true;data.meta_data.type=found[meta.meta_index].type||"sceneproduct"}return data}return null}forEach(callback){const states=this._state.states;const meta=this._state.meta;if(states.length>0){states.forEach(productState=>{if(productState.length===2){callback({scene_product_id:productState[meta.scene_product_index],product_variation_id:productState[meta.product_variation_index],meta_data:{augment:true,type:"sceneproduct"}})}else if(productState.length===3){callback({scene_product_id:productState[meta.scene_product_index],product_variation_id:productState[meta.product_variation_index],meta_data:{augment:productState[meta.meta_index].augment||true,type:productState[meta.meta_index].type||"sceneproduct"}})}})}}array(){const array=new Array;this.forEach(object=>{array.push(object)});return array}first(){const states=this._state.states;if(states.length>0){const meta=this._state.meta;const found=states.find(productState=>{const check=productState[meta.scene_product_index];return check!==null&&check!==undefined});if(!found){return null}const data={scene_product_id:found[meta.scene_product_index],product_variation_id:found[meta.product_variation_index],meta_data:{augment:true,type:"sceneproduct"}};if(found.length===3){data.meta_data.augment=found[meta.meta_index].augment||true;data.meta_data.type=found[meta.meta_index].type||"sceneproduct"}return data}return null}firstOfType(type){const states=this._state.states;if(states.length>0){const meta=this._state.meta;const found=states.find(productState=>{const check=productState[meta.scene_product_index];if(check!==null&&check!==undefined){return productState.length===3&&productState[meta.meta_index].type===type}return false});if(!found){return null}const data={scene_product_id:found[meta.scene_product_index],product_variation_id:found[meta.product_variation_index],meta_data:{augment:found[meta.meta_index].augment||true,type:found[meta.meta_index].type||type}};return data}return null}firstActiveOfType(type){const states=this._state.states;if(states.length>0){const meta=this._state.meta;const found=states.find(productState=>{const check=productState[meta.scene_product_index];if(check!==null&&check!==undefined){return productState.length===3&&productState[meta.meta_index].type===type&&productState[meta.meta_index].augment===true}return false});if(!found){return null}const data={scene_product_id:found[meta.scene_product_index],product_variation_id:found[meta.product_variation_index],meta_data:{augment:found[meta.meta_index].augment||true,type:found[meta.meta_index].type||type}};return data}return null}get length(){return this._state.states.length}static decode(state){return new ConfiguratorState(state)}static async decodeState(sceneID=null,state=null){if(!sceneID||!state){throw new Error("ConfiguratorState.decodeState(sceneID, state) - sceneID and state must be defined")}const configState=new ConfiguratorState(state);const fscene=new plattar_api_1.Scene(sceneID);fscene.include(plattar_api_1.Project);fscene.include(plattar_api_1.Product);fscene.include(plattar_api_1.SceneProduct);fscene.include(plattar_api_1.SceneModel);fscene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product.include(plattar_api_1.ProductVariation)));const scene=await fscene.get();return{scene:scene,state:configState}}static async decodeScene(sceneID=null){if(!sceneID){throw new Error("ConfiguratorState.decodeScene(sceneID) - sceneID must be defined")}const configState=new ConfiguratorState;const fscene=new plattar_api_1.Scene(sceneID);fscene.include(plattar_api_1.Project);fscene.include(plattar_api_1.SceneProduct);fscene.include(plattar_api_1.SceneModel);fscene.include(plattar_api_1.Product);fscene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product.include(plattar_api_1.ProductVariation)));const scene=await fscene.get();const sceneProducts=scene.relationships.filter(plattar_api_1.SceneProduct);const sceneModels=scene.relationships.filter(plattar_api_1.SceneModel);const products=scene.relationships.filter(plattar_api_1.Product);sceneModels.forEach(sceneModel=>{configState.setSceneModel(sceneModel.id,{augment:sceneModel.attributes.include_in_augment,type:"scenemodel"})});products.forEach(product=>{if(product.attributes.product_variation_id){configState.setProduct(product.id,product.attributes.product_variation_id,{augment:true,type:"product"})}});sceneProducts.forEach(sceneProduct=>{const product=sceneProduct.relationships.find(plattar_api_1.Product);if(product){if(product.attributes.product_variation_id){configState.setSceneProduct(sceneProduct.id,product.attributes.product_variation_id,{augment:sceneProduct.attributes.include_in_augment,type:"sceneproduct"})}const variations=product.relationships.filter(plattar_api_1.ProductVariation);variations.forEach(variation=>{configState._mappedVariationIDValues.set(variation.id,sceneProduct.id);if(variation.attributes.sku){const existingSKUs=configState._mappedVariationSKUValues.get(variation.attributes.sku);if(existingSKUs){existingSKUs.push(variation.id)}else{configState._mappedVariationSKUValues.set(variation.attributes.sku,[variation.id])}}})}});return{scene:scene,state:configState}}encode(){return btoa(JSON.stringify(this._state))}async encodeSceneGraphID(){const graph=this.sceneGraph;const url=`https://c.plattar.com/v3/redir/store`;try{const response=await fetch(url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{attributes:{data:graph}}})});if(!response.ok){throw new Error(`ConfiguratorState.encodeSceneGraphID() - network response was not ok ${response.status}`)}const data=await response.json();return data.data.id}catch(error){throw new Error(`ConfiguratorState.encodeSceneGraphID() - there was a request error to ${url}, error was ${error.message}`)}}get sceneGraph(){const objects=this.array();const schema={strict:false,inputs:[]};objects.forEach(object=>{if(object.meta_data.type==="scenemodel"){const data={id:object.scene_product_id,type:"scenemodel",visibility:object.meta_data.augment};schema.inputs.push(data)}else{const data={id:object.scene_product_id,type:"sceneproduct",variation_id:object.product_variation_id,visibility:object.meta_data.augment};schema.inputs.push(data)}});return schema}}exports.ConfiguratorState=ConfiguratorState},{"@plattar/plattar-api":48}],19:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Util=void 0;class Util{static isValidServerLocation(server){if(!server){return false}switch(server.toLowerCase()){case"staging.plattar.space":case"cdn-staging.plattar.space":case"staging":case"app.plattar.com":case"cdn.plattar.com":case"prod":case"production":case"review.plattar.com":case"review":case"qa":case"dev":case"developer":case"development":case"local":case"localhost":return true}return false}static canAugment(){return Util.canQuicklook()||Util.canSceneViewer()}static canQuicklook(){if(Util.isIOS()){const isWKWebView=Boolean((window&&window).webkit&&window.webkit.messageHandlers);if(isWKWebView){return Boolean(/CriOS\/|EdgiOS\/|FxiOS\/|GSA\/|DuckDuckGo\//.test(navigator.userAgent))}const tempAnchor=document.createElement("a");return tempAnchor.relList&&tempAnchor.relList.supports&&tempAnchor.relList.supports("ar")}return false}static canSceneViewer(){return Util.isAndroid()&&!Util.isFirefox()&&!Util.isOculus()}static canRealityViewer(){return Util.isIOS()&&Util.getIOSVersion()[0]>=13}static isSafariOnIOS(){return Util.isIOS()&&Util.isSafari()}static isChromeOnIOS(){return Util.isIOS()&&/CriOS\//.test(navigator.userAgent)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!self.MSStream||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1}static isAndroid(){return/android/i.test(navigator.userAgent)}static isFirefox(){return/firefox/i.test(navigator.userAgent)}static isOculus(){return/OculusBrowser/.test(navigator.userAgent)}static isSafari(){return Util.isIOS()&&/Safari\//.test(navigator.userAgent)}static getIOSVersion(){if(/iP(hone|od|ad)/.test(navigator.platform)){const v=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);if(v!==null){return[parseInt(v[1],10),parseInt(v[2],10),parseInt(v[3],10)]}}if(/Mac/.test(navigator.platform)){const v=navigator.appVersion.match(/Version\/(\d+)\.(\d+)\.?(\d+)?/);if(v!==null){return[parseInt(v[1],10),parseInt(v[2],10),parseInt(v[3],10)]}}return[-1,-1,-1]}static getChromeVersion(){const raw=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(raw!==null){return parseInt(raw[2],10)}return 1}}exports.Util=Util},{}],20:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default="1.189.2"},{}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ARViewer=void 0;class ARViewer{constructor(){this.modelUrl=null;this.banner=null}get composedActionURL(){const link=new URL(location.href);link.searchParams.set("plattar_ar_action","true");return encodeURI(link.href)}}exports.ARViewer=ARViewer},{}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});const ar_viewer_1=require("./ar-viewer");class QuicklookViewer extends ar_viewer_1.ARViewer{constructor(){super()}get nodeType(){return"Quick Look"}get device(){return"ios"}start(){if(!this.modelUrl){throw new Error("QuicklookViewer.start() - model url not set, use QuicklookViewer.modelUrl")}const anchor=document.createElement("a");anchor.setAttribute("rel","ar");anchor.appendChild(document.createElement("img"));const banner=this.banner;let url=this.modelUrl;if(banner){url+=`#callToAction=${banner.button}`;url+=`&checkoutTitle=${banner.title}`;url+=`&checkoutSubtitle=${banner.subtitle}`;const handleQuicklook=event=>{if(event.data==="_apple_ar_quicklook_button_tapped"){window.location.assign(this.composedActionURL)}};anchor.addEventListener("message",handleQuicklook,false)}document.body.appendChild(anchor);anchor.setAttribute("href",encodeURI(url));anchor.click()}}exports.default=QuicklookViewer},{"./ar-viewer":21}],23:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});const ar_viewer_1=require("./ar-viewer");class RealityViewer extends ar_viewer_1.ARViewer{constructor(){super()}get nodeType(){return"Reality Viewer"}get device(){return"ios"}start(){if(!this.modelUrl){throw new Error("RealityViewer.start() - model url not set, use RealityViewer.modelUrl")}const anchor=document.createElement("a");anchor.setAttribute("rel","ar");anchor.appendChild(document.createElement("img"));anchor.setAttribute("href",this.modelUrl);anchor.click()}}exports.default=RealityViewer},{"./ar-viewer":21}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});const ar_viewer_1=require("./ar-viewer");class SceneViewer extends ar_viewer_1.ARViewer{constructor(){super();this.isVertical=false;this.isVertical=false}get nodeType(){return"Scene Viewer"}get device(){return"android"}start(){if(!this.modelUrl){throw new Error("SceneViewer.start() - model url not set, use SceneViewer.modelUrl")}const linkOverride=encodeURIComponent(`${location.href}#no-ar-fallback`);let intent=`intent://arvr.google.com/scene-viewer/1.1?file=${this.modelUrl}&mode=ar_preferred`;const banner=this.banner;if(banner){intent+=`&title=<b>${banner.title}</b><br>${banner.subtitle}`;intent+=`&link=${this.composedActionURL}`}if(this.isVertical){intent+="&enable_vertical_placement=true"}intent+="&a=b#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;";intent+=`S.browser_fallback_url=${linkOverride};end;`;const anchor=document.createElement("a");anchor.setAttribute("href",intent);anchor.click()}}exports.default=SceneViewer},{"./ar-viewer":21}],25:[function(require,module,exports){"use strict";const Messenger=require("./messenger/messenger.js");const Memory=require("./memory/memory.js");const GlobalEventHandler=require("./messenger/global-event-handler.js");const Version=require("./version");if(!GlobalEventHandler.instance().messengerInstance){const messengerInstance=new Messenger;const memoryInstance=new Memory(messengerInstance);GlobalEventHandler.instance().messengerInstance=messengerInstance;GlobalEventHandler.instance().memoryInstance=memoryInstance}if(!GlobalEventHandler.instance().memoryInstance){const memoryInstance=new Memory(GlobalEventHandler.instance().messengerInstance);GlobalEventHandler.instance().memoryInstance=memoryInstance}console.log("using @plattar/context-messenger v"+Version);module.exports={messenger:GlobalEventHandler.instance().messengerInstance,memory:GlobalEventHandler.instance().memoryInstance,version:Version}},{"./memory/memory.js":26,"./messenger/global-event-handler.js":34,"./messenger/messenger.js":35,"./version":40}],26:[function(require,module,exports){const PermanentMemory=require("./permanent-memory");const TemporaryMemory=require("./temporary-memory");class Memory{constructor(messengerInstance){this._messenger=messengerInstance;this._tempMemory=new TemporaryMemory(messengerInstance);this._permMemory=new PermanentMemory(messengerInstance);this._messenger.self.__memory__set_temp_var=(name,data)=>{this._tempMemory[name]=data};this._messenger.self.__memory__set_perm_var=(name,data)=>{this._permMemory[name]=data}}get temp(){return this._tempMemory}get perm(){return this._permMemory}}module.exports=Memory},{"./permanent-memory":27,"./temporary-memory":28}],27:[function(require,module,exports){const WrappedValue=require("./wrapped-value");class PermanentMemory{constructor(messengerInstance){return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="watch"){return(variable,callback)=>{if(!target[variable]){target[variable]=new WrappedValue(variable,true,messengerInstance)}target[variable].watch=callback}}if(prop==="clear"){return()=>{for(const pitem of Object.getOwnPropertyNames(target)){delete target[pitem];localStorage.removeItem(pitem)}}}if(prop==="purge"){return()=>{localStorage.clear();for(const pitem of Object.getOwnPropertyNames(target)){delete target[pitem]}}}if(prop==="refresh"){return()=>{for(const val of Object.getOwnPropertyNames(target)){target[val].refresh()}}}if(!target[prop]){target[prop]=new WrappedValue(prop,true,messengerInstance)}return target[prop].value},set:(target,prop,value)=>{if(!target[prop]){target[prop]=new WrappedValue(prop,true,messengerInstance)}target[prop].value=value;return true}})}}module.exports=PermanentMemory},{"./wrapped-value":29}],28:[function(require,module,exports){const WrappedValue=require("./wrapped-value");class TemporaryMemory{constructor(messengerInstance){return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="watch"){return(variable,callback)=>{if(!target[variable]){target[variable]=new WrappedValue(variable,false,messengerInstance)}target[variable].watch=callback}}if(prop==="clear"||prop==="purge"){return()=>{for(const val of Object.getOwnPropertyNames(target)){delete target[val]}}}if(prop==="refresh"){return()=>{for(const val of Object.getOwnPropertyNames(target)){target[val].refresh()}}}if(!target[prop]){target[prop]=new WrappedValue(prop,false,messengerInstance)}return target[prop].value},set:(target,prop,value)=>{if(!target[prop]){target[prop]=new WrappedValue(prop,false,messengerInstance)}target[prop].value=value;return true}})}}module.exports=TemporaryMemory},{"./wrapped-value":29}],29:[function(require,module,exports){class WrappedValue{constructor(varName,isPermanent,messengerInstance){this._value=undefined;this._callback=undefined;this._isPermanent=isPermanent;this._varName=varName;this._messenger=messengerInstance;if(this._isPermanent){this._value=JSON.parse(localStorage.getItem(this._varName))}}refresh(){if(this._isPermanent){this._messenger.broadcast.__memory__set_perm_var(this._varName,this._value);if(this._messenger.parent){this._messenger.parent.__memory__set_perm_var(this._varName,this._value)}}else{this._messenger.broadcast.__memory__set_temp_var(this._varName,this._value);if(this._messenger.parent){this._messenger.parent.__memory__set_temp_var(this._varName,this._value)}}}refreshFor(callable){if(!this._messenger[callable]){return}if(this._isPermanent){this._messenger[callable].__memory__set_perm_var(this._varName,this._value)}else{this._messenger[callable].__memory__set_temp_var(this._varName,this._value)}}get value(){if(this._isPermanent&&this._value==undefined){this._value=JSON.parse(localStorage.getItem(this._varName))}return this._value}set value(newValue){if(typeof newValue==="function"){throw new TypeError("WrappedValue.value cannot be set to a function type")}const oldValue=this._value;this._value=newValue;if(this._isPermanent){localStorage.setItem(this._varName,JSON.stringify(this._value))}if(this._callback&&oldValue!==newValue){this.refresh();this._callback(oldValue,this._value)}}set watch(newValue){if(typeof newValue==="function"){if(newValue.length==2){this._callback=newValue}else{throw new RangeError("WrappedValue.watch callback must accept exactly 2 variables. Try using WrappedValue.watch = (oldVal, newVal) => {}")}}else{throw new TypeError("WrappedValue.watch must be a type of function. Try using WrappedValue.watch = (oldVal, newVal) => {}")}}}module.exports=WrappedValue},{}],30:[function(require,module,exports){class Broadcaster{constructor(messengerInstance){this._messengerInstance=messengerInstance;this._interfaces=[];return new Proxy(this,{get:(target,prop,receiver)=>{switch(prop){case"_push":case"_interfaces":return target[prop];default:break}return(...args)=>{const interfaces=target._interfaces;const promises=[];interfaces.forEach(callable=>{promises.push(target._messengerInstance[callable][prop](...args))});return Promise.allSettled(promises)}}})}_push(interfaceID){const index=this._interfaces.indexOf(interfaceID);if(index>-1){this._interfaces.splice(index,1)}this._interfaces.push(interfaceID)}}module.exports=Broadcaster},{}],31:[function(require,module,exports){const WrappedFunction=require("./wrapped-local-function");class CurrentFunctionList{constructor(){return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="watch"){return(variable,callback)=>{if(!target[variable]){target[variable]=new WrappedFunction(variable)}target[variable].watch=callback}}if(prop==="clear"||prop==="purge"){return()=>{for(const pitem of Object.getOwnPropertyNames(target)){delete target[pitem]}}}if(!target[prop]){target[prop]=new WrappedFunction(prop)}return(...args)=>{return target[prop].exec(...args)}},set:(target,prop,value)=>{if(!target[prop]){target[prop]=new WrappedFunction(prop)}target[prop].value=value;return true}})}}module.exports=CurrentFunctionList},{"./wrapped-local-function":32}],32:[function(require,module,exports){const Util=require("../util/util.js");class WrappedLocalFunction{constructor(funcName){this._value=undefined;this._callback=undefined;this._funcName=funcName}_execute(...args){const rData=this._value(...args);if(this._callback){this._callback(rData,...args)}return rData}exec(...args){return new Promise((accept,reject)=>{if(!this._value){return reject(new Error("WrappedLocalFunction.exec() function with name "+this._funcName+"() is not defined"))}try{const rObject=this._execute(...args);if(Util.isPromise(rObject)){rObject.then(res=>{return accept(res)}).catch(err=>{return reject(err)})}else{return accept(rObject)}}catch(e){return reject(e)}})}set value(newValue){if(typeof newValue!=="function"){throw new TypeError("WrappedLocalFunction.value must be a function. To store values use Plattar.memory")}this._value=newValue}set watch(newValue){if(typeof newValue==="function"){this._callback=newValue}else{throw new TypeError("WrappedLocalFunction.watch must be a type of function. Try using WrappedLocalFunction.watch = (rData, ...args) => {}")}}}module.exports=WrappedLocalFunction},{"../util/util.js":39}],33:[function(require,module,exports){const Util=require("./util/util");class FunctionObserver{constructor(){this._observers=new Map}subscribe(functionName,callback){if(!functionName||!Util.isFunction(callback)){return()=>{}}const observers=this._observers;let list=observers.get(functionName);if(!list){list=[];observers.set(functionName,list)}list.push(callback);return()=>{return this.unsubscribe(functionName,callback)}}unsubscribe(functionName,callback){if(!functionName||!Util.isFunction(callback)){return false}const observers=this._observers;const list=observers.get(functionName);if(list){const index=list.indexOf(callback);if(index>-1){list.splice(index,1);return true}}return false}call(functionName,data){if(!functionName||!data){return}const observers=this._observers;const list=observers.get(functionName);if(list&&list.length>0){list.forEach(observer=>{try{if(observer){observer(data)}}catch(e){}})}}}module.exports=FunctionObserver},{"./util/util":39}],34:[function(require,module,exports){const RemoteInterface=require("./remote-interface.js");class GlobalEventHandler{constructor(){this._eventListeners={};window.addEventListener("message",evt=>{const data=evt.data;let jsonData=undefined;try{jsonData=JSON.parse(data)}catch(e){jsonData=undefined}if(jsonData&&jsonData.event&&jsonData.data){if(this._eventListeners[jsonData.event]){const remoteInterface=new RemoteInterface(evt.source,evt.origin);this._eventListeners[jsonData.event].forEach(callback=>{try{callback(remoteInterface,jsonData.data)}catch(e){console.error("GlobalEventHandler.message() error occured during callback ");console.error(e)}})}}})}set messengerInstance(value){this._messenger=value}set memoryInstance(value){this._memory=value}get messengerInstance(){return this._messenger}get memoryInstance(){return this._memory}listen(event,callback){if(typeof callback!=="function"){throw new TypeError("GlobalEventHandler.listen(event, callback) callback must be a type of function.")}if(!this._eventListeners[event]){this._eventListeners[event]=[]}this._eventListeners[event].push(callback)}}GlobalEventHandler.instance=()=>{if(!GlobalEventHandler._default){GlobalEventHandler._default=new GlobalEventHandler}return GlobalEventHandler._default};module.exports=GlobalEventHandler},{"./remote-interface.js":36}],35:[function(require,module,exports){const CurrentFunctionList=require("./current/current-function-list");const RemoteInterface=require("./remote-interface");const RemoteFunctionList=require("./remote/remote-function-list");const Util=require("./util/util.js");const GlobalEventHandler=require("./global-event-handler.js");const Broadcaster=require("./broadcaster.js");const FunctionObserver=require("./function-observer.js");class Messenger{constructor(){this._id=Util.id();this._parentStack=RemoteInterface.default();this._functionObserver=new FunctionObserver;this._currentFunctionList=new CurrentFunctionList;this._broadcaster=new Broadcaster(this);this._parentFunctionList=undefined;const callbacks=new Map;this._callbacks=callbacks;this._setup();return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="onload"){return(variable,callback)=>{if(variable==="self"||variable==="id"){return callback()}if(target[variable]){return callback()}if(callbacks.has(variable)){const array=callbacks.get(variable);array.push(callback)}else{callbacks.set(variable,[callback])}}}switch(prop){case"id":return target._id;case"self":return target._currentFunctionList;case"broadcast":return target._broadcaster;case"addChild":case"observer":case"_setup":case"_registerListeners":case"_id":case"_broadcaster":case"_functionObserver":case"_callbacks":case"_parentStack":return target[prop];default:break}const targetVar=target[prop];if(!targetVar||!targetVar.isValid()){return undefined}return target[prop]}})}get observer(){return this._functionObserver}addChild(childNode){const remoteInterface=new RemoteInterface(childNode.contentWindow,"*");remoteInterface.send("__messenger__parent_init_inv",{id:childNode.id})}_setup(){this._registerListeners();if(this._parentStack){this._parentStack.send("__messenger__child_init")}if(window.location.protocol!=="https:"){console.warn("Messenger["+this._id+'] requires https but protocol is "'+window.location.protocol+'", messenger will not work correctly.')}}_registerListeners(){GlobalEventHandler.instance().listen("__messenger__child_init",(src,data)=>{const iframeID=src.id;switch(iframeID){case undefined:throw new Error("Messenger["+this._id+"].setup() Component ID cannot be undefined");case"self":throw new Error("Messenger["+this._id+'].setup() Component ID of "self" cannot be used as the keyword is reserved');case"parent":throw new Error("Messenger["+this._id+'].setup() Component ID of "parent" cannot be used as the keyword is reserved');case"id":throw new Error("Messenger["+this._id+'].setup() Component ID of "id" cannot be used as the keyword is reserved');case"onload":throw new Error("Messenger["+this._id+'].setup() Component ID of "onload" cannot be used as the keyword is reserved');default:break}this[iframeID]=new RemoteFunctionList(iframeID,this._functionObserver);this[iframeID].setup(new RemoteInterface(src.source,src.origin));this._broadcaster._push(iframeID);const callbacks=this._callbacks;if(callbacks.has(iframeID)){const array=callbacks.get(iframeID);if(array){array.forEach((item,_)=>{try{if(item){item()}}catch(err){}})}}callbacks.delete(iframeID);src.send("__messenger__parent_init")});GlobalEventHandler.instance().listen("__messenger__child_init_inv",(src,data)=>{const iframeID=data.id;switch(iframeID){case undefined:throw new Error("Messenger["+this._id+"].setup() Component ID cannot be undefined");case"self":throw new Error("Messenger["+this._id+'].setup() Component ID of "self" cannot be used as the keyword is reserved');case"parent":throw new Error("Messenger["+this._id+'].setup() Component ID of "parent" cannot be used as the keyword is reserved');case"id":throw new Error("Messenger["+this._id+'].setup() Component ID of "id" cannot be used as the keyword is reserved');case"onload":throw new Error("Messenger["+this._id+'].setup() Component ID of "onload" cannot be used as the keyword is reserved');default:break}this[iframeID]=new RemoteFunctionList(iframeID,this._functionObserver);this[iframeID].setup(new RemoteInterface(src.source,src.origin));this._broadcaster._push(iframeID);const callbacks=this._callbacks;if(callbacks.has(iframeID)){const array=callbacks.get(iframeID);if(array){array.forEach((item,_)=>{try{if(item){item()}}catch(err){}})}}callbacks.delete(iframeID)});GlobalEventHandler.instance().listen("__messenger__parent_init",(src,data)=>{const iframeID="parent";this[iframeID]=new RemoteFunctionList(iframeID,this._functionObserver);this[iframeID].setup(new RemoteInterface(src.source,src.origin));const callbacks=this._callbacks;if(callbacks.has(iframeID)){const array=callbacks.get(iframeID);if(array){array.forEach((item,_)=>{try{if(item){item()}}catch(err){}})}}callbacks.delete(iframeID)});GlobalEventHandler.instance().listen("__messenger__parent_init_inv",(src,data)=>{const iframeID="parent";this[iframeID]=new RemoteFunctionList(iframeID,this._functionObserver);this[iframeID].setup(new RemoteInterface(src.source,src.origin));const callbacks=this._callbacks;if(callbacks.has(iframeID)){const array=callbacks.get(iframeID);if(array){array.forEach((item,_)=>{try{if(item){item()}}catch(err){}})}}callbacks.delete(iframeID);src.send("__messenger__child_init_inv",{id:data.id})});GlobalEventHandler.instance().listen("__messenger__exec_fnc",(src,data)=>{const instanceID=data.instance_id;const args=data.function_args;const fname=data.function_name;GlobalEventHandler.instance().messengerInstance.self[fname](...args).then(res=>{src.send("__messenger__exec_fnc_result",{function_status:"success",function_name:fname,function_args:res,instance_id:instanceID})}).catch(err=>{const error_arg=Util.isError(err)?err.message:err;src.send("__messenger__exec_fnc_result",{function_status:"error",function_name:fname,function_args:error_arg?error_arg:"unknown error",instance_id:instanceID})})})}}module.exports=Messenger},{"./broadcaster.js":30,"./current/current-function-list":31,"./function-observer.js":33,"./global-event-handler.js":34,"./remote-interface":36,"./remote/remote-function-list":37,"./util/util.js":39}],36:[function(require,module,exports){class RemoteInterface{constructor(source,origin){this._source=source;this._origin=origin;if(typeof this._source.postMessage!=="function"){throw new Error("RemoteInterface() provided source is invalid")}}get source(){return this._source}get origin(){return this._origin}get id(){return this.source.frameElement?this.source.frameElement.id:undefined}send(event,data){const sendData={event:event,data:data||{}};this.source.postMessage(JSON.stringify(sendData),this.origin)}static default(){try{const parentStack=window.parent?window.frameElement&&window.frameElement.nodeName=="IFRAME"?window.parent:undefined:undefined;if(parentStack){return new RemoteInterface(parentStack,"*")}}catch(err){}return undefined}}module.exports=RemoteInterface},{}],37:[function(require,module,exports){const WrappedFunction=require("./wrapped-remote-function");class RemoteFunctionList{constructor(remoteName,functionObserver){this._remoteInterface=undefined;this._functionObserver=functionObserver;this._remoteName=remoteName;return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="watch"){throw new Error("RemoteFunctionList.watch cannot watch execution of remote functions from current context. Did you mean to use Plattar.messenger.self instead?")}if(prop==="clear"){throw new Error("RemoteFunctionList.clear cannot clear/remove remote functions from current context. Did you mean to use Plattar.messenger.self.clear() instead?")}if(prop==="purge"){throw new Error("RemoteFunctionList.purge cannot clear/remove remote functions from current context. Did you mean to use Plattar.messenger.self.purge() instead?")}switch(prop){case"setup":case"isValid":case"_remoteInterface":case"_functionObserver":case"name":case"_remoteName":return target[prop];default:break}if(!target[prop]){target[prop]=new WrappedFunction(prop,target._remoteInterface,target._functionObserver)}return(...args)=>{return target[prop].exec(...args)}},set:(target,prop,value)=>{if(prop==="_remoteInterface"){target[prop]=value;return true}throw new Error("RemoteFunctionList.set cannot add a remote function from current context. Use Plattar.messenger.self instead")}})}setup(remoteInterface){if(typeof remoteInterface.send!=="function"){throw new Error("RemoteFunctionList.setup() provided invalid interface")}this._remoteInterface=remoteInterface}get name(){return this._remoteName}isValid(){return this._remoteInterface!=undefined}}module.exports=RemoteFunctionList},{"./wrapped-remote-function":38}],38:[function(require,module,exports){const Util=require("../util/util.js");const GlobalEventHandler=require("../global-event-handler.js");class WrappedRemoteFunction{constructor(funcName,remoteInterface,functionObserver){this._funcName=funcName;this._remoteInterface=remoteInterface;this._functionObserver=functionObserver;this._callInstances={};GlobalEventHandler.instance().listen("__messenger__exec_fnc_result",(src,data)=>{const instanceID=data.instance_id;if(data.function_name!==this._funcName){return}if(!this._callInstances[instanceID]){return}const promise=this._callInstances[instanceID];delete this._callInstances[instanceID];if(data.function_status==="success"){this._functionObserver.call(this._funcName,{type:"return",state:"success",data:data.function_args});promise.accept(data.function_args)}else{this._functionObserver.call(this._funcName,{type:"return",state:"exception",data:new Error(data.function_args)});promise.reject(new Error(data.function_args))}})}exec(...args){const instanceID=Util.id();if(this._callInstances[instanceID]){return new Promise((accept,reject)=>{return reject(new Error("WrappedRemoteFunction.exec() cannot execute function. System generated duplicate Instance ID. PRNG needs checking"))})}return new Promise((accept,reject)=>{this._callInstances[instanceID]={accept:accept,reject:reject};this._remoteInterface.send("__messenger__exec_fnc",{instance_id:instanceID,function_name:this._funcName,function_args:args});this._functionObserver.call(this._funcName,{type:"call",state:"success",data:args})})}}module.exports=WrappedRemoteFunction},{"../global-event-handler.js":34,"../util/util.js":39}],39:[function(require,module,exports){class Util{static id(){return Math.abs(Math.floor(Math.random()*1e13))}static isPromise(obj){return!!obj&&(typeof obj==="object"||typeof obj==="function")&&typeof obj.then==="function"}static isError(e){return e&&e.stack&&e.message&&typeof e.stack==="string"&&typeof e.message==="string"}static isFunction(obj){return obj&&obj instanceof Function}}module.exports=Util},{}],40:[function(require,module,exports){module.exports="1.153.3"},{}],41:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.AnalyticsData=void 0;const util_1=require("../util/util");class AnalyticsData{constructor(){this._map=new Map;this.push("source","embed");this.push("pageTitle",document.title);this.push("pageURL",location.href);this.push("referrer",document.referrer);this.push("user_id",AnalyticsData.getUserID())}push(key,value){this._map.set(key,value)}get(key){return this._map.get(key)}get data(){return Object.fromEntries(this._map)}get map(){return this._map}static getUserID(){const key="plattar_user_id";let userID=null;try{userID=localStorage.getItem(key)}catch(err){userID=util_1.Util.generateUUID();try{localStorage.setItem(key,userID)}catch(_err){}}if(!userID){userID=util_1.Util.generateUUID();try{localStorage.setItem(key,userID)}catch(_err){}}return userID}}exports.AnalyticsData=AnalyticsData},{"../util/util":46}],42:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.Analytics=void 0;const basic_http_1=__importDefault(require("../util/basic-http"));const analytics_data_1=require("./analytics-data");const google_analytics_1=require("./google/google-analytics");class Analytics{constructor(applicationID){this._pageTime=null;this.origin="production";this.event="track";this.isBeacon=false;this._applicationID=applicationID;this._data=new analytics_data_1.AnalyticsData;this._ga=new google_analytics_1.GoogleAnalytics;this._handlePageHide=()=>{if(document.visibilityState==="hidden"){this._pageTime=new Date}else if(this._pageTime){const time2=new Date;const diff=time2.getTime()-this._pageTime.getTime();const data=this.data;data.push("eventAction","View Time");data.push("viewTime",diff);data.push("eventLabel",diff);this.write();this._pageTime=null;document.removeEventListener("visibilitychange",this._handlePageHide,false)}}}get googleAnalytics(){return this._ga}query(query=null){return new Promise((accept,reject)=>{if(!query){return reject(new Error("Analytics.query() - provided query was null"))}const url=this.origin==="dev"?"https://localhost:3008/v3/read":"https://analytics.plattar.com/v3/read";const data={data:{attributes:{application_id:this._applicationID,event:this.event,query:query}}};basic_http_1.default.exec("POST",url,data).then(result=>{accept(result?result:{})}).catch(reject)})}write(){return new Promise((accept,reject)=>{const data=this._data;const url=this.origin==="dev"?"https://localhost:3008/v3/write":"https://analytics.plattar.com/v3/write";data.push("applicationId",this._applicationID);const sendData={data:{attributes:{application_id:this._applicationID,event:this.event,origin:this.origin,fields:data.data}}};if(this.isBeacon===false){basic_http_1.default.exec("POST",url,sendData).then(result=>{accept(result?result:{})}).catch(reject)}else{basic_http_1.default.execBeacon(url,sendData).then(result=>{accept(result?result:{})}).catch(reject)}this.googleAnalytics.write(this.event,this.data)})}startRecordEngagement(){document.addEventListener("visibilitychange",this._handlePageHide,false)}get data(){return this._data}}exports.Analytics=Analytics},{"../util/basic-http":45,"./analytics-data":41,"./google/google-analytics":43}],43:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.GoogleAnalytics=void 0;class GoogleAnalytics{constructor(){this._tokens=new Set}addUniversalToken(gaToken){if(this._tokens.has(gaToken)){return}this._tokens.add(gaToken);const gInstance=gtag;if(gInstance){gInstance("config",gaToken,{custom_map:{dimension1:"application_id",dimension2:"application_title",dimension3:"platform"}});gInstance("event","app_dimension",{platform:"Viewer"})}}addToken(gaToken){if(this._tokens.has(gaToken)){return}this._tokens.add(gaToken);const gInstance=gtag;if(gInstance){gInstance("config",gaToken,{custom_map:{dimension1:"application_id",dimension2:"application_title"}})}}write(event,data){if(this._tokens.size<=0){return}this._tokens.forEach(token=>{const gInstance=gtag;if(gInstance){const eventCategory=data.get("eventCategory");const eventAction=data.get("eventAction");const eventLabel=data.get("eventLabel");var fields={send_to:token,event_category:eventCategory,event_label:eventLabel};data.map.forEach((value,key)=>{fields[key]=value});if(event==="track"){gInstance("event",eventAction,fields)}if(event==="pageview"){gInstance("event","pageview",fields)}}})}}exports.GoogleAnalytics=GoogleAnalytics},{}],44:[function(require,module,exports){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k);__setModuleDefault(result,mod);return result};var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.AnalyticsData=exports.Analytics=exports.version=void 0;exports.version=__importStar(require("./version"));var analytics_1=require("./analytics/analytics");Object.defineProperty(exports,"Analytics",{enumerable:true,get:function(){return analytics_1.Analytics}});var analytics_data_1=require("./analytics/analytics-data");Object.defineProperty(exports,"AnalyticsData",{enumerable:true,get:function(){return analytics_data_1.AnalyticsData}});const version_1=__importDefault(require("./version"));console.log("using @plattar/plattar-analytics v"+version_1.default)},{"./analytics/analytics":42,"./analytics/analytics-data":41,"./version":47}],45:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});class BasicHTTP{static execBeacon(path,data=null){return new Promise((accept,reject)=>{try{const body=data||{};const headers={type:"application/json"};const blob=new Blob([JSON.stringify(body)],headers);const result=navigator.sendBeacon(path,blob);if(result){return accept({})}else{return reject(new Error("BasicHTTP.execBeacon() - could not query request"))}}catch(err){return reject(err)}})}static exec(protocol,path,data=null){return new Promise((accept,reject)=>{try{const http=new XMLHttpRequest;http.open(protocol,path,true);http.setRequestHeader("Content-Type","application/json");http.setRequestHeader("Accept","application/json");http.onload=e=>{if(http.status===200){if(http.response){try{const resp=JSON.parse(http.response);return accept(resp)}catch(_err){}}return accept({})}else{return reject(e)}};http.onerror=e=>{return reject(e)};http.onprogress=_e=>{};http.send(data?JSON.stringify(data):null)}catch(e){return reject(e)}})}}exports.default=BasicHTTP},{}],46:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Util=void 0;const _lut=[];for(let i=0;i<256;i++){_lut[i]=(i<16?"0":"")+i.toString(16)}class Util{static generateUUID(){const d0=Math.random()*4294967295|0;const d1=Math.random()*4294967295|0;const d2=Math.random()*4294967295|0;const d3=Math.random()*4294967295|0;const uuid=_lut[d0&255]+_lut[d0>>8&255]+_lut[d0>>16&255]+_lut[d0>>24&255]+"-"+_lut[d1&255]+_lut[d1>>8&255]+"-"+_lut[d1>>16&15|64]+_lut[d1>>24&255]+"-"+_lut[d2&63|128]+_lut[d2>>8&255]+"-"+_lut[d2>>16&255]+_lut[d2>>24&255]+_lut[d3&255]+_lut[d3>>8&255]+_lut[d3>>16&255]+_lut[d3>>24&255];return uuid.toLowerCase()}}exports.Util=Util},{}],47:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default="1.152.2"},{}],48:[function(require,module,exports){"use strict";const Server=require("./server/plattar-server.js");const Util=require("./util/plattar-util.js");const Project=require("./types/application.js");const Scene=require("./types/scene/scene.js");const SceneAnnotation=require("./types/scene/scene-annotation.js");const SceneAudio=require("./types/scene/scene-audio.js");const SceneButton=require("./types/scene/scene-button.js");const SceneCamera=require("./types/scene/scene-camera.js");const SceneCarousel=require("./types/scene/scene-carousel.js");const SceneImage=require("./types/scene/scene-image.js");const SceneModel=require("./types/scene/scene-model.js");const ScenePanorama=require("./types/scene/scene-panorama.js");const ScenePoller=require("./types/scene/scene-poller.js");const SceneProduct=require("./types/scene/scene-product.js");const SceneShadow=require("./types/scene/scene-shadow.js");const SceneVideo=require("./types/scene/scene-video.js");const SceneVolumetric=require("./types/scene/scene-volumetric.js");const SceneYoutube=require("./types/scene/scene-youtube.js");const SceneScript=require("./types/scene/scene-script.js");const SceneGallery=require("./types/scene/scene-gallery.js");const SceneGalleryImage=require("./types/scene/scene-gallery-image.js");const Page=require("./types/page/page.js");const CardButton=require("./types/page/card-button.js");const CardHTML=require("./types/page/card-html.js");const CardIFrame=require("./types/page/card-iframe.js");const CardImage=require("./types/page/card-image.js");const CardMap=require("./types/page/card-map.js");const CardParagraph=require("./types/page/card-paragraph.js");const CardRow=require("./types/page/card-row.js");const CardSlider=require("./types/page/card-slider.js");const CardTitle=require("./types/page/card-title.js");const CardVideo=require("./types/page/card-video.js");const CardYoutube=require("./types/page/card-youtube.js");const Product=require("./types/product/product.js");const ProductVariation=require("./types/product/product-variation.js");const ProductAnnotation=require("./types/product/product-annotation.js");const FileAudio=require("./types/file/file-audio.js");const FileVideo=require("./types/file/file-video.js");const FileModel=require("./types/file/file-model.js");const FileImage=require("./types/file/file-image.js");const FileScript=require("./types/file/file-script.js");const FileJSON=require("./types/file/file-json.js");const ScriptEvent=require("./types/misc/script-event.js");const Tag=require("./types/misc/tag.js");const ApplicationBuild=require("./types/misc/application-build.js");const AsyncJob=require("./types/misc/async-job.js");const AssetLibrary=require("./types/misc/asset-library.js");const TriggerImage=require("./types/trigger/trigger-image.js");const Brief=require("./types/content-pipeline/brief.js");const CommentBrief=require("./types/content-pipeline/comment-brief.js");const CommentQuote=require("./types/content-pipeline/comment-quote.js");const CommentSolution=require("./types/content-pipeline/comment-solution.js");const PipelineUser=require("./types/content-pipeline/pipeline-user.js");const Quote=require("./types/content-pipeline/quote.js");const Rating=require("./types/content-pipeline/rating.js");const Solution=require("./types/content-pipeline/solution.js");const Folder=require("./types/content-pipeline/folder.js");const SceneObject=require("./types/scene/scene-base.js");const CardObject=require("./types/page/card-base.js");const ProductObject=require("./types/product/product-base.js");const FileObject=require("./types/file/file-base.js");const Version=require("./version");Server.create();console.log("using @plattar/plattar-api v"+Version);module.exports={Server:Server,Util:Util,Project:Project,Scene:Scene,SceneAnnotation:SceneAnnotation,SceneAudio:SceneAudio,SceneButton:SceneButton,SceneCamera:SceneCamera,SceneCarousel:SceneCarousel,SceneImage:SceneImage,SceneModel:SceneModel,ScenePanorama:ScenePanorama,ScenePoller:ScenePoller,SceneProduct:SceneProduct,SceneShadow:SceneShadow,SceneVideo:SceneVideo,SceneVolumetric:SceneVolumetric,SceneYoutube:SceneYoutube,SceneScript:SceneScript,SceneGallery:SceneGallery,SceneGalleryImage:SceneGalleryImage,Page:Page,CardButton:CardButton,CardHTML:CardHTML,CardIFrame:CardIFrame,CardImage:CardImage,CardMap:CardMap,CardParagraph:CardParagraph,CardRow:CardRow,CardSlider:CardSlider,CardTitle:CardTitle,CardVideo:CardVideo,CardYoutube:CardYoutube,Product:Product,ProductVariation:ProductVariation,ProductAnnotation:ProductAnnotation,FileAudio:FileAudio,FileVideo:FileVideo,FileModel:FileModel,FileImage:FileImage,FileScript:FileScript,FileJSON:FileJSON,FileObject:FileObject,ScriptEvent:ScriptEvent,Tag:Tag,ApplicationBuild:ApplicationBuild,AsyncJob:AsyncJob,AssetLibrary:AssetLibrary,TriggerImage:TriggerImage,Brief:Brief,CommentBrief:CommentBrief,CommentQuote:CommentQuote,CommentSolution:CommentSolution,PipelineUser:PipelineUser,Quote:Quote,Rating:Rating,Solution:Solution,Folder:Folder,SceneObject:SceneObject,CardObject:CardObject,ProductObject:ProductObject,version:Version}},{"./server/plattar-server.js":50,"./types/application.js":51,"./types/content-pipeline/brief.js":52,"./types/content-pipeline/comment-brief.js":53,"./types/content-pipeline/comment-quote.js":54,"./types/content-pipeline/comment-solution.js":55,"./types/content-pipeline/folder.js":56,"./types/content-pipeline/pipeline-user.js":57,"./types/content-pipeline/quote.js":58,"./types/content-pipeline/rating.js":59,"./types/content-pipeline/solution.js":60,"./types/file/file-audio.js":61,"./types/file/file-base.js":62,"./types/file/file-image.js":63,"./types/file/file-json.js":64,"./types/file/file-model.js":65,"./types/file/file-script.js":66,"./types/file/file-video.js":67,"./types/misc/application-build.js":71,"./types/misc/asset-library.js":72,"./types/misc/async-job.js":73,"./types/misc/script-event.js":74,"./types/misc/tag.js":75,"./types/page/card-base.js":76,"./types/page/card-button.js":77,"./types/page/card-html.js":78,"./types/page/card-iframe.js":79,"./types/page/card-image.js":80,"./types/page/card-map.js":81,"./types/page/card-paragraph.js":82,"./types/page/card-row.js":83,"./types/page/card-slider.js":84,"./types/page/card-title.js":85,"./types/page/card-video.js":86,"./types/page/card-youtube.js":87,"./types/page/page.js":88,"./types/product/product-annotation.js":89,"./types/product/product-base.js":90,"./types/product/product-variation.js":91,"./types/product/product.js":92,"./types/scene/scene-annotation.js":93,"./types/scene/scene-audio.js":94,"./types/scene/scene-base.js":95,"./types/scene/scene-button.js":96,"./types/scene/scene-camera.js":97,"./types/scene/scene-carousel.js":98,"./types/scene/scene-gallery-image.js":99,"./types/scene/scene-gallery.js":100,"./types/scene/scene-image.js":101,"./types/scene/scene-model.js":102,"./types/scene/scene-panorama.js":103,"./types/scene/scene-poller.js":104,"./types/scene/scene-product.js":105,"./types/scene/scene-script.js":106,"./types/scene/scene-shadow.js":107,"./types/scene/scene-video.js":108,"./types/scene/scene-volumetric.js":109,"./types/scene/scene-youtube.js":110,"./types/scene/scene.js":111,"./types/trigger/trigger-image.js":112,"./util/plattar-util.js":113,"./version":114}],49:[function(require,module,exports){const fetch=require("node-fetch");class PlattarQuery{constructor(target,server){if(!target){throw new Error("PlattarQuery cannot be created as target object cannot be null")}if(!server){throw new Error("PlattarQuery cannot be created as server object cannot be null")}this._target=target;this._server=server;this._params=[];this._getIncludeQuery=[]}get target(){return this._target}get server(){return this._server}getCookie(cname){try{let name=cname+"=";let decodedCookie=decodeURIComponent(document.cookie);let ca=decodedCookie.split(";");for(let i=0;i<ca.length;i++){let c=ca[i];while(c.charAt(0)==" "){c=c.substring(1)}if(c.indexOf(name)==0){return c.substring(name.length,c.length)}}}catch(error){}return""}_get(opt){return new Promise((resolve,reject)=>{const target=this.target;const server=this.server;if(!target.id){reject(new Error("PlattarQuery."+target.type()+".get() - object id is missing"));return}const options=opt||{cache:true};if(options.cache===true){const cached=PlattarQuery._GetGlobalCachedObject(target);if(cached){resolve(cached);return}}const origin=server.originLocation.api_read;const auth=server.authToken;const headers={cookie:"laravel_session="+this.getCookie("laravel_session")};Object.assign(headers,auth);const reqopts={method:"GET",headers:headers};const includeQuery=this._IncludeQuery;const params=this._ParamFor("get");let endpoint=origin+target.type()+"/"+target.id;if(includeQuery){endpoint=endpoint+"?include="+includeQuery}if(params){let appender=includeQuery?"&":"?";params.forEach(param=>{endpoint=endpoint+appender+param.key+"="+param.value;appender="&"})}fetch(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("PlattarQuery."+target.type()+".get("+target.id+") - critical error occured, cannot proceed")}}return new Error("PlattarQuery."+target.type()+".get("+target.id+") - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{const PlattarUtil=require("../util/plattar-util.js");PlattarUtil.reconstruct(target,json,options);resolve(target)}})})}_update(){return new Promise((resolve,reject)=>{const target=this.target;const server=this.server;if(!target.id){reject(new Error("PlattarQuery."+target.type()+".update() - object id is missing"));return}const origin=server.originLocation.api_write;const auth=server.authToken;const headers={Accept:"application/json","Content-Type":"application/json",cookie:"laravel_session="+this.getCookie("laravel_session")};Object.assign(headers,auth);const reqopts={method:"PATCH",headers:headers,body:JSON.stringify({data:{id:target.id,attributes:target.attributes},meta:target.meta||{}})};const params=this._ParamFor("update");let endpoint=origin+target.type()+"/"+target.id;if(params){let appender="?";params.forEach(param=>{endpoint=endpoint+appender+param.key+"="+param.value;appender="&"})}fetch(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("PlattarQuery."+target.type()+".update("+target.id+") - critical error occured, cannot proceed")}}return new Error("PlattarQuery."+target.type()+".update("+target.id+") - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{if(json.data){const PlattarUtil=require("../util/plattar-util.js");PlattarUtil.reconstruct(target,json,{cache:true})}resolve(target)}})})}_create(){return new Promise((resolve,reject)=>{const target=this.target;const server=this.server;const origin=server.originLocation.api_write;const auth=server.authToken;const headers={Accept:"application/json","Content-Type":"application/json",cookie:"laravel_session="+this.getCookie("laravel_session")};Object.assign(headers,auth);const reqopts={method:"POST",headers:headers,body:JSON.stringify({data:{attributes:target.attributes},meta:target.meta||{}})};const params=this._ParamFor("create");let endpoint=origin+target.type();if(params){let appender="?";params.forEach(param=>{endpoint=endpoint+appender+param.key+"="+param.value;appender="&"})}fetch(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("PlattarQuery."+target.type()+".create() - critical error occured, cannot proceed")}}return new Error("PlattarQuery."+target.type()+".create() - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{if(json.data){target._id=json.data.id;const PlattarUtil=require("../util/plattar-util.js");PlattarUtil.reconstruct(target,json,{cache:true})}resolve(target)}})})}_delete(){return new Promise((resolve,reject)=>{const target=this.target;const server=this.server;if(!target.id){reject(new Error("PlattarQuery."+target.type()+".delete() - object id is missing"));return}const origin=server.originLocation.api_write;const auth=server.authToken;const headers={Accept:"application/json","Content-Type":"application/json",cookie:"laravel_session="+this.getCookie("laravel_session")};Object.assign(headers,auth);const reqopts={method:"DELETE",headers:headers,body:JSON.stringify({data:{id:target.id,attributes:target.attributes},meta:target.meta||{}})};const params=this._ParamFor("delete");let endpoint=origin+target.type()+"/"+target.id;if(params){let appender="?";params.forEach(param=>{endpoint=endpoint+appender+param.key+"="+param.value;appender="&"})}fetch(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("PlattarQuery."+target.type()+".delete() - critical error occured, cannot proceed")}}return new Error("PlattarQuery."+target.type()+".delete() - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{if(json.data){target._id=json.data.id;const PlattarUtil=require("../util/plattar-util.js");PlattarUtil.reconstruct(target,json,{cache:true})}resolve(target)}})})}_addParameter(key,value,type){type=type||"all";this._params.push({key:key,value:value,type:type.toLowerCase()})}_include(args){if(!args||args.length<=0){return this}const PlattarUtil=require("../util/plattar-util.js");args.forEach(obj=>{if(Array.isArray(obj)){obj.forEach(strObject=>{if(typeof strObject==="string"||strObject instanceof String){this._getIncludeQuery.push(strObject)}else{throw new Error("PlattarQuery."+this.target.type()+".include(...args) - argument of Array must only include Strings")}})}else if(PlattarUtil.isPlattarObject(obj)){const type=obj.type();if(Array.isArray(type)){this._include(type)}else{this._getIncludeQuery.push(type)}}else{throw new Error("PlattarQuery."+this.target.type()+".include(...args) - argument must be of type PlattarObject or Array but was type="+typeof obj+" value="+obj)}});return this}_ParamFor(type){type=type||"all";const list=this._params.filter(objcheck=>{return objcheck.type===type||objcheck.type==="all"});if(list.length>0){return list}return undefined}get _IncludeQuery(){if(this._getIncludeQuery.length<=0){return undefined}return`${this._getIncludeQuery.map(item=>`${item}`).join(",")}`}}PlattarQuery._GlobalObjectCache={};PlattarQuery._InvalidateGlobalCache=()=>{PlattarQuery._GlobalObjectCache={}};PlattarQuery._HasGlobalCachedObject=obj=>{return PlattarQuery._GlobalObjectCache.hasOwnProperty(obj.id)};PlattarQuery._GetGlobalCachedObject=obj=>{return PlattarQuery._HasGlobalCachedObject(obj)?PlattarQuery._GlobalObjectCache[obj.id]:undefined};PlattarQuery._SetGlobalCachedObject=obj=>{};PlattarQuery._DeleteGlobalCachedObject=obj=>{if(PlattarQuery._HasGlobalCachedObject(obj)){delete PlattarQuery._GlobalObjectCache[obj.id]}};module.exports=PlattarQuery},{"../util/plattar-util.js":113,"node-fetch":144}],50:[function(require,module,exports){(function(process){(function(){const fetch=require("node-fetch");class PlattarServer{constructor(){this._authToken={};this._serverLocation=this.prod}get prod(){return PlattarServer.match("prod")}get isProd(){return this._serverLocation.type==="production"}get review(){return PlattarServer.match("review")}get isReview(){return this._serverLocation.type==="review"}get staging(){return PlattarServer.match("staging")}get isStaging(){return this._serverLocation.type==="staging"}get dev(){return PlattarServer.match("dev")}get isDev(){return this._serverLocation.type==="dev"}get authToken(){return this._authToken}get originLocation(){return this._serverLocation}auth(token,opt){const copt=opt||{validate:false};return new Promise((resolve,reject)=>{const server=this.originLocation.api_write;if(!server){reject(new Error("Plattar.auth(token) - cannot authenticate as server not set via Plattar.origin(server)"));return}if(!token){reject(new Error("Plattar.auth(token) - token variable is undefined"));return}if(!copt.validate){this._authToken={"plattar-auth-token":token};resolve(this);return}const endpoint=server+"plattaruser/xauth/validate";const options={method:"GET",headers:{"plattar-auth-token":token}};fetch(endpoint,options).then(res=>{if(res.ok){this._authToken={"plattar-auth-token":token};resolve(this)}else{reject(new Error("Plattar.auth(token) - failed to validate authentication token at "+endpoint))}})})}origin(server,opt){const copt=opt||{validate:false};return new Promise((resolve,reject)=>{if(!server){reject(new Error("Plattar.origin(server) - server variable is undefined"));return}if(!copt.validate){this._serverLocation=server;resolve(this);return}const endpoint=server.api_read+"ping";const options={method:"GET"};fetch(endpoint,options).then(res=>{if(res.ok){this._serverLocation=server;resolve(this)}else{reject(new Error("Plattar.origin(server) - failed to ping server at "+endpoint))}})})}}PlattarServer.match=serverName=>{switch(serverName.toLowerCase()){case"staging.plattar.space":case"cdn-staging.plattar.space":case"staging":return{base:"https://staging.plattar.space/",api_read:"https://api.plattar.space/v3/",api_write:"https://api.plattar.space/v3/",cdn:"https://cdn-staging.plattar.space/",cdn_image:"https://images.plattar.space/",analytics:"https://c.plattar.space/api/v2/analytics",type:"staging"};case"app.plattar.com":case"cdn.plattar.com":case"prod":case"production":return{base:"https://app.plattar.com/",api_read:"https://api.plattar.com/v3/",api_write:"https://api.plattar.com/v3/",cdn:"https://cdn.plattar.com/",cdn_image:"https://images.plattar.com/",analytics:"https://c.plattar.space/api/v2/analytics",type:"production"};case"review.plattar.com":case"review":case"qa":return{base:"https://review.plattar.com/",api_read:"https://review-api.plattar.com/v3/",api_write:"https://review-api.plattar.com/v3/",cdn:"https://cdn.plattar.com/",cdn_image:"https://images.plattar.com/",analytics:"https://c.plattar.space/api/v2/analytics",type:"review"};case"dev":case"developer":case"development":case"local":case"localhost":default:return{base:"https://localhost/",api_read:"https://localhost:3000/v3/",api_write:"https://localhost:3000/v3/",cdn:"https://cdn-dev.plattar.space/",cdn_image:"https://images-dev.plattar.space/",analytics:"https://localhost:3000/api/v2/analytics/",type:"dev"}}};PlattarServer.create=(origin,auth)=>{const newServer=new PlattarServer;if(origin){newServer.origin(origin)}if(auth){newServer.auth(auth)}PlattarServer._default=newServer;return newServer};PlattarServer.disableTLS=()=>{process.env.NODE_TLS_REJECT_UNAUTHORIZED="0"};PlattarServer.default=()=>{return PlattarServer._default};PlattarServer.location=()=>{return PlattarServer.default().originLocation};module.exports=PlattarServer}).call(this)}).call(this,require("_process"))},{_process:146,"node-fetch":144}],51:[function(require,module,exports){const PlattarBase=require("./interfaces/plattar-base.js");class Application extends PlattarBase{static type(){return"application"}}module.exports=Application},{"./interfaces/plattar-base.js":68}],52:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Brief extends PlattarBase{static type(){return"brief"}}module.exports=Brief},{"../interfaces/plattar-base":68}],53:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class CommentBrief extends PlattarBase{static type(){return"commentbrief"}}module.exports=CommentBrief},{"../interfaces/plattar-base":68}],54:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class CommentQuote extends PlattarBase{static type(){return"commentquote"}}module.exports=CommentQuote},{"../interfaces/plattar-base":68}],55:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class CommentSolution extends PlattarBase{static type(){return"commentsolution"}}module.exports=CommentSolution},{"../interfaces/plattar-base":68}],56:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Folder extends PlattarBase{static type(){return"folder"}}module.exports=Folder},{"../interfaces/plattar-base":68}],57:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class PipelineUser extends PlattarBase{static type(){return"pipelineuser"}}module.exports=PipelineUser},{"../interfaces/plattar-base":68}],58:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Quote extends PlattarBase{static type(){return"quote"}}module.exports=Quote},{"../interfaces/plattar-base":68}],59:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Rating extends PlattarBase{static type(){return"rating"}}module.exports=Rating},{"../interfaces/plattar-base":68}],60:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Solution extends PlattarBase{static type(){return"solution"}}module.exports=Solution},{"../interfaces/plattar-base":68}],61:[function(require,module,exports){const FileBase=require("./file-base.js");class FileAudio extends FileBase{static type(){return"fileaudio"}}module.exports=FileAudio},{"./file-base.js":62}],62:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");const Server=require("../../server/plattar-server.js");class FileBase extends PlattarBase{constructor(id,server){super(id,server||Server.default());if(this.constructor===FileBase){throw new Error("FileBase is abstract and cannot be created")}}static type(){const FileAudio=require("./file-audio.js");const FileVideo=require("./file-video.js");const FileModel=require("./file-model.js");const FileImage=require("./file-image.js");const FileJSON=require("./file-json.js");return[FileAudio,FileVideo,FileModel,FileImage,FileJSON]}get sourcePath(){if(!this.attributes.path){return null}return this.path+this.attributes.original_filename}get backupPath(){if(!this.attributes.path){return null}return this.path+this.attributes.original_upload}get path(){if(!this.attributes.path){return null}return this._query.server.originLocation.cdn+this.attributes.path}}module.exports=FileBase},{"../../server/plattar-server.js":50,"../interfaces/plattar-base.js":68,"./file-audio.js":61,"./file-image.js":63,"./file-json.js":64,"./file-model.js":65,"./file-video.js":67}],63:[function(require,module,exports){const FileBase=require("./file-base.js");class FileImage extends FileBase{static type(){return"fileimage"}}module.exports=FileImage},{"./file-base.js":62}],64:[function(require,module,exports){const FileBase=require("./file-base.js");class FileJSON extends FileBase{static type(){return"filejson"}}module.exports=FileJSON},{"./file-base.js":62}],65:[function(require,module,exports){const FileBase=require("./file-base.js");class FileModel extends FileBase{static type(){return"filemodel"}}module.exports=FileModel},{"./file-base.js":62}],66:[function(require,module,exports){const FileBase=require("./file-base.js");class FileScript extends FileBase{static type(){return"filescript"}}module.exports=FileScript},{"./file-base.js":62}],67:[function(require,module,exports){const FileBase=require("./file-base.js");class FileVideo extends FileBase{static type(){return"filevideo"}}module.exports=FileVideo},{"./file-base.js":62}],68:[function(require,module,exports){const PlattarObject=require("./plattar-object.js");const Server=require("../../server/plattar-server.js");class PlattarBase extends PlattarObject{constructor(id,server){super(id,server||Server.default());if(this.constructor===PlattarBase){throw new Error("PlattarBase is abstract and cannot be created")}}}module.exports=PlattarBase},{"../../server/plattar-server.js":50,"./plattar-object.js":70}],69:[function(require,module,exports){class PlattarObjectRelations{constructor(parent){this._parent=parent;this._relatedObjects={}}get parent(){return this._parent}_put(obj){if(!obj){return this}const PlattarUtil=require("../../util/plattar-util.js");if(!PlattarUtil.isPlattarObject(obj)){throw new Error("PlattarObjectRelations._put(PlattarObject) - argument must be type of PlattarObject")}if(!this._relatedObjects.hasOwnProperty(obj.type())){this._relatedObjects[obj.type()]=[]}this._relatedObjects[obj.type()].push(obj)}filter(obj,id){if(!obj){return[]}const PlattarUtil=require("../../util/plattar-util.js");if(!PlattarUtil.isPlattarObject(obj)){throw new Error("PlattarObjectRelations.filter(PlattarObject) - argument must be type of PlattarObject")}const type=obj.type();if(Array.isArray(type)){var compiledList=[];type.forEach(inObject=>{const retArray=this.filter(inObject,id);if(retArray.length>0){compiledList=compiledList.concat(retArray)}});return compiledList}if(!this._relatedObjects.hasOwnProperty(type)){return[]}const list=this._relatedObjects[type];if(!id){return list}return list.filter(objcheck=>{return objcheck.id===id})}find(obj,id=null){if(id===undefined){return undefined}const list=this.filter(obj,id);if(list.length<=0){return undefined}return list[0]}}module.exports=PlattarObjectRelations},{"../../util/plattar-util.js":113}],70:[function(require,module,exports){const PlattarQuery=require("../../server/plattar-query.js");const PlattarObjectRelations=require("./plattar-object-relations.js");class PlattarObject{constructor(id,server){if(this.constructor===PlattarObject){throw new Error("PlattarObject is abstract and cannot be created")}this._id=id;this._attributes={};this._meta={};this._query=new PlattarQuery(this,server);this._relationships=new PlattarObjectRelations(this)}invalidate(){return PlattarQuery._DeleteGlobalCachedObject(this)}_cache(){return PlattarQuery._SetGlobalCachedObject(this)}get id(){return this._id}get attributes(){return this._attributes}get meta(){return this._meta}set overrideAttributes(attributes){this._attributes=Object.assign({},attributes)}get relationships(){return this._relationships}get(opt){return this._query._get(opt)}update(){return this._query._update()}create(){return this._query._create()}delete(){return this._query._delete()}static type(){throw new Error("PlattarObject.type() - not implemented")}type(){return this.constructor.type()}static include(...args){if(!args||args.length<=0){return[]}const includes=[this.type()];args.forEach(obj=>{if(Array.isArray(obj)){obj.forEach(strObject=>{if(typeof strObject==="string"||strObject instanceof String){includes.push(`${this.type()}.${strObject}`)}else{throw new Error("PlattarObject."+this.type()+".include(...args) - argument of Array must only include Strings")}})}else if(obj.prototype instanceof PlattarObject){includes.push(`${this.type()}.${obj.type()}`)}else{throw new Error("PlattarObject."+this.type()+".include(...args) - argument must be of type PlattarObject or Array but was type="+typeof obj+" value="+obj)}});return includes}include(...args){this._query._include(args);return this}addParameter(key,value,type){this._query._addParameter(key,value,type);return this}}module.exports=PlattarObject},{"../../server/plattar-query.js":49,"./plattar-object-relations.js":69}],71:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class ApplicationBuild extends PlattarBase{static type(){return"applicationbuild"}}module.exports=ApplicationBuild},{"../interfaces/plattar-base.js":68}],72:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class AssetLibrary extends PlattarBase{static type(){return"assetlibrary"}}module.exports=AssetLibrary},{"../interfaces/plattar-base.js":68}],73:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class AsyncJob extends PlattarBase{static type(){return"asyncjob"}set accessKey(code){this.addParameter("access_key",code,"update")}}module.exports=AsyncJob},{"../interfaces/plattar-base.js":68}],74:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class ScriptEvent extends PlattarBase{static type(){return"scriptevent"}}module.exports=ScriptEvent},{"../interfaces/plattar-base.js":68}],75:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class Tag extends PlattarBase{static type(){return"tag"}}module.exports=Tag},{"../interfaces/plattar-base.js":68}],76:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");const Server=require("../../server/plattar-server.js");class CardBase extends PlattarBase{constructor(id,server){super(id,server||Server.default());if(this.constructor===CardBase){throw new Error("CardBase is abstract and cannot be created")}}static type(){const CardButton=require("./card-button.js");const CardHTML=require("./card-html.js");const CardIFrame=require("./card-iframe.js");const CardImage=require("./card-image.js");const CardMap=require("./card-map.js");const CardParagraph=require("./card-paragraph.js");const CardRow=require("./card-row.js");const CardSlider=require("./card-slider.js");const CardTitle=require("./card-title.js");const CardVideo=require("./card-video.js");const CardYoutube=require("./card-youtube.js");return[CardButton,CardHTML,CardIFrame,CardImage,CardMap,CardParagraph,CardRow,CardSlider,CardTitle,CardVideo,CardYoutube]}}module.exports=CardBase},{"../../server/plattar-server.js":50,"../interfaces/plattar-base.js":68,"./card-button.js":77,"./card-html.js":78,"./card-iframe.js":79,"./card-image.js":80,"./card-map.js":81,"./card-paragraph.js":82,"./card-row.js":83,"./card-slider.js":84,"./card-title.js":85,"./card-video.js":86,"./card-youtube.js":87}],77:[function(require,module,exports){const CardBase=require("./card-base.js");class CardButton extends CardBase{static type(){return"cardbutton"}}module.exports=CardButton},{"./card-base.js":76}],78:[function(require,module,exports){const CardBase=require("./card-base.js");class CardHTML extends CardBase{static type(){return"cardhtml"}}module.exports=CardHTML},{"./card-base.js":76}],79:[function(require,module,exports){const CardBase=require("./card-base.js");class CardIFrame extends CardBase{static type(){return"cardiframe"}}module.exports=CardIFrame},{"./card-base.js":76}],80:[function(require,module,exports){const CardBase=require("./card-base.js");class CardImage extends CardBase{static type(){return"cardimage"}}module.exports=CardImage},{"./card-base.js":76}],81:[function(require,module,exports){const CardBase=require("./card-base.js");class CardMap extends CardBase{static type(){return"cardmap"}}module.exports=CardMap},{"./card-base.js":76}],82:[function(require,module,exports){const CardBase=require("./card-base.js");class CardParagraph extends CardBase{static type(){return"cardparagraph"}}module.exports=CardParagraph},{"./card-base.js":76}],83:[function(require,module,exports){const CardBase=require("./card-base.js");class CardRow extends CardBase{static type(){return"cardrow"}}module.exports=CardRow},{"./card-base.js":76}],84:[function(require,module,exports){const CardBase=require("./card-base.js");class CardSlider extends CardBase{static type(){return"cardslider"}}module.exports=CardSlider},{"./card-base.js":76}],85:[function(require,module,exports){const CardBase=require("./card-base.js");class CardTitle extends CardBase{static type(){return"cardtitle"}}module.exports=CardTitle},{"./card-base.js":76}],86:[function(require,module,exports){const CardBase=require("./card-base.js");class CardVideo extends CardBase{static type(){return"cardvideo"}}module.exports=CardVideo},{"./card-base.js":76}],87:[function(require,module,exports){const CardBase=require("./card-base.js");class CardYoutube extends CardBase{static type(){return"cardyoutube"}}module.exports=CardYoutube},{"./card-base.js":76}],88:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class Page extends PlattarBase{static type(){return"page"}}module.exports=Page},{"../interfaces/plattar-base.js":68}],89:[function(require,module,exports){const ProductBase=require("./product-base.js");class ProductAnnotation extends ProductBase{static type(){return"productannotation"}}module.exports=ProductAnnotation},{"./product-base.js":90}],90:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");const Server=require("../../server/plattar-server.js");class ProductBase extends PlattarBase{constructor(id,server){super(id,server||Server.default());if(this.constructor===ProductBase){throw new Error("ProductBase is abstract and cannot be created")}}static type(){const ProductVariation=require("./product-variation.js");const ProductAnnotation=require("./product-annotation.js");return[ProductAnnotation,ProductVariation]}}module.exports=ProductBase},{"../../server/plattar-server.js":50,"../interfaces/plattar-base.js":68,"./product-annotation.js":89,"./product-variation.js":91}],91:[function(require,module,exports){const ProductBase=require("./product-base.js");class ProductVariation extends ProductBase{static type(){return"productvariation"}}module.exports=ProductVariation},{"./product-base.js":90}],92:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class Product extends PlattarBase{static type(){return"product"}}module.exports=Product},{"../interfaces/plattar-base.js":68}],93:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneAnnotation extends SceneBase{static type(){return"sceneannotation"}}module.exports=SceneAnnotation},{"./scene-base.js":95}],94:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneAudio extends SceneBase{static type(){return"sceneaudio"}}module.exports=SceneAudio},{"./scene-base.js":95}],95:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");const Server=require("../../server/plattar-server.js");class SceneBase extends PlattarBase{constructor(id,server){super(id,server||Server.default());if(this.constructor===SceneBase){throw new Error("SceneBase is abstract and cannot be created")}}static type(){const SceneAnnotation=require("./scene-annotation.js");const SceneAudio=require("./scene-audio.js");const SceneButton=require("./scene-button.js");const SceneCamera=require("./scene-camera.js");const SceneCarousel=require("./scene-carousel.js");const SceneImage=require("./scene-image.js");const SceneModel=require("./scene-model.js");const ScenePanorama=require("./scene-panorama.js");const ScenePoller=require("./scene-poller.js");const SceneProduct=require("./scene-product.js");const SceneShadow=require("./scene-shadow.js");const SceneVideo=require("./scene-video.js");const SceneVolumetric=require("./scene-volumetric.js");const SceneYoutube=require("./scene-youtube.js");return[SceneAnnotation,SceneAudio,SceneButton,SceneCamera,SceneCarousel,SceneImage,SceneModel,ScenePanorama,ScenePoller,SceneProduct,SceneShadow,SceneVideo,SceneVolumetric,SceneYoutube]}}module.exports=SceneBase},{"../../server/plattar-server.js":50,"../interfaces/plattar-base.js":68,"./scene-annotation.js":93,"./scene-audio.js":94,"./scene-button.js":96,"./scene-camera.js":97,"./scene-carousel.js":98,"./scene-image.js":101,"./scene-model.js":102,"./scene-panorama.js":103,"./scene-poller.js":104,"./scene-product.js":105,"./scene-shadow.js":107,"./scene-video.js":108,"./scene-volumetric.js":109,"./scene-youtube.js":110}],96:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneButton extends SceneBase{static type(){return"scenebutton"}}module.exports=SceneButton},{"./scene-base.js":95}],97:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneCamera extends SceneBase{static type(){return"scenecamera"}}module.exports=SceneCamera},{"./scene-base.js":95}],98:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneCarousel extends SceneBase{static type(){return"scenecarousel"}}module.exports=SceneCarousel},{"./scene-base.js":95}],99:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class SceneGalleryImage extends PlattarBase{static type(){return"scenegalleryimage"}}module.exports=SceneGalleryImage},{"../interfaces/plattar-base.js":68}],100:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class SceneGallery extends PlattarBase{static type(){return"scenegallery"}}module.exports=SceneGallery},{"../interfaces/plattar-base.js":68}],101:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneImage extends SceneBase{static type(){return"sceneimage"}}module.exports=SceneImage},{"./scene-base.js":95}],102:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneModel extends SceneBase{static type(){return"scenemodel"}}module.exports=SceneModel},{"./scene-base.js":95}],103:[function(require,module,exports){const SceneBase=require("./scene-base.js");class ScenePanorama extends SceneBase{static type(){return"scenepanorama"}}module.exports=ScenePanorama},{"./scene-base.js":95}],104:[function(require,module,exports){const SceneBase=require("./scene-base.js");class ScenePoller extends SceneBase{static type(){return"scenepoller"}}module.exports=ScenePoller},{"./scene-base.js":95}],105:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneProduct extends SceneBase{static type(){return"sceneproduct"}}module.exports=SceneProduct},{"./scene-base.js":95}],106:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneScript extends SceneBase{static type(){return"scenescript"}}module.exports=SceneScript},{"./scene-base.js":95}],107:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneShadow extends SceneBase{static type(){return"sceneshadow"}}module.exports=SceneShadow},{"./scene-base.js":95}],108:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneVideo extends SceneBase{static type(){return"scenevideo"}}module.exports=SceneVideo},{"./scene-base.js":95}],109:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneVolumetric extends SceneBase{static type(){return"scenevolumetric"}}module.exports=SceneVolumetric},{"./scene-base.js":95}],110:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneYoutube extends SceneBase{static type(){return"sceneyoutube"}}module.exports=SceneYoutube},{"./scene-base.js":95}],111:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class Scene extends PlattarBase{static type(){return"scene"}}module.exports=Scene},{"../interfaces/plattar-base.js":68}],112:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class TriggerImage extends PlattarBase{static type(){return"triggerimage"}}module.exports=TriggerImage},{"../interfaces/plattar-base.js":68}],113:[function(require,module,exports){const Application=require("../types/application.js");const Scene=require("../types/scene/scene.js");const SceneAnnotation=require("../types/scene/scene-annotation.js");const SceneAudio=require("../types/scene/scene-audio.js");const SceneButton=require("../types/scene/scene-button.js");const SceneCamera=require("../types/scene/scene-camera.js");const SceneCarousel=require("../types/scene/scene-carousel.js");const SceneImage=require("../types/scene/scene-image.js");const SceneModel=require("../types/scene/scene-model.js");const ScenePanorama=require("../types/scene/scene-panorama.js");const ScenePoller=require("../types/scene/scene-poller.js");const SceneProduct=require("../types/scene/scene-product.js");const SceneShadow=require("../types/scene/scene-shadow.js");const SceneVideo=require("../types/scene/scene-video.js");const SceneVolumetric=require("../types/scene/scene-volumetric.js");const SceneYoutube=require("../types/scene/scene-youtube.js");const SceneScript=require("../types/scene/scene-script.js");const SceneGallery=require("../types/scene/scene-gallery.js");const SceneGalleryImage=require("../types/scene/scene-gallery-image.js");const Page=require("../types/page/page.js");const CardButton=require("../types/page/card-button.js");const CardHTML=require("../types/page/card-html.js");const CardIFrame=require("../types/page/card-iframe.js");const CardImage=require("../types/page/card-image.js");const CardMap=require("../types/page/card-map.js");const CardParagraph=require("../types/page/card-paragraph.js");const CardRow=require("../types/page/card-row.js");const CardSlider=require("../types/page/card-slider.js");const CardTitle=require("../types/page/card-title.js");const CardVideo=require("../types/page/card-video.js");const CardYoutube=require("../types/page/card-youtube.js");const Product=require("../types/product/product.js");const ProductVariation=require("../types/product/product-variation.js");const ProductAnnotation=require("../types/product/product-annotation.js");const FileAudio=require("../types/file/file-audio.js");const FileVideo=require("../types/file/file-video.js");const FileModel=require("../types/file/file-model.js");const FileImage=require("../types/file/file-image.js");const FileScript=require("../types/file/file-script.js");const FileJSON=require("../types/file/file-json.js");const TriggerImage=require("../types/trigger/trigger-image.js");const Brief=require("../types/content-pipeline/brief.js");const CommentBrief=require("../types/content-pipeline/comment-brief.js");const CommentQuote=require("../types/content-pipeline/comment-quote.js");const CommentSolution=require("../types/content-pipeline/comment-solution.js");const PipelineUser=require("../types/content-pipeline/pipeline-user.js");const Quote=require("../types/content-pipeline/quote.js");const Rating=require("../types/content-pipeline/rating.js");const Solution=require("../types/content-pipeline/solution.js");const Folder=require("../types/content-pipeline/folder.js");const ScriptEvent=require("../types/misc/script-event.js");const Tag=require("../types/misc/tag.js");const ApplicationBuild=require("../types/misc/application-build.js");const AsyncJob=require("../types/misc/async-job.js");const AssetLibrary=require("../types/misc/asset-library");class PlattarUtil{}PlattarUtil.isPlattarObject=obj=>{const PlattarObject=require("../types/interfaces/plattar-object.js");if(obj&&obj.prototype&&obj.prototype instanceof PlattarObject){return true}if(obj&&obj instanceof PlattarObject){return true}return false};PlattarUtil.reconstruct=(parent,json,options)=>{parent._attributes=json.data.attributes;if(options.cache===true){parent._cache()}const server=parent._query.server;if(json.data.relationships){for(const[key,value]of Object.entries(json.data.relationships)){const data=value.data;if(Array.isArray(data)){data.forEach(item=>{const construct=PlattarUtil.create(key,item.id,server);if(construct){construct._attributes=item.attributes||{};parent.relationships._put(construct)}})}else{const construct=PlattarUtil.create(key,data.id,server);if(construct){construct._attributes=data.attributes||{};parent.relationships._put(construct)}}}}if(json.included){json.included.forEach(item=>{const existing=parent.relationships.find(PlattarUtil.match(item.type),item.id);if(existing){PlattarUtil.reconstruct(existing,{data:item,included:json.included},options)}})}};PlattarUtil.create=(type,id,server)=>{const _DynamicClass=PlattarUtil.match(type);if(_DynamicClass){return new _DynamicClass(id,server)}return undefined};PlattarUtil.match=type=>{switch(type){case Application.type():return Application;case Scene.type():return Scene;case SceneAnnotation.type():return SceneAnnotation;case SceneAudio.type():return SceneAudio;case SceneButton.type():return SceneButton;case SceneCamera.type():return SceneCamera;case SceneCarousel.type():return SceneCarousel;case SceneImage.type():return SceneImage;case SceneModel.type():return SceneModel;case ScenePanorama.type():return ScenePanorama;case ScenePoller.type():return ScenePoller;case SceneProduct.type():return SceneProduct;case SceneShadow.type():return SceneShadow;case SceneVideo.type():return SceneVideo;case SceneVolumetric.type():return SceneVolumetric;case SceneYoutube.type():return SceneYoutube;case SceneScript.type():return SceneScript;case SceneGallery.type():return SceneGallery;case SceneGalleryImage.type():return SceneGalleryImage;case Page.type():return Page;case CardButton.type():return CardButton;case CardHTML.type():return CardHTML;case CardIFrame.type():return CardIFrame;case Product.type():return Product;case ProductVariation.type():return ProductVariation;case ProductAnnotation.type():return ProductAnnotation;case FileAudio.type():return FileAudio;case FileVideo.type():return FileVideo;case FileModel.type():return FileModel;case FileImage.type():return FileImage;case FileScript.type():return FileScript;case FileJSON.type():return FileJSON;case CardMap.type():return CardMap;case CardParagraph.type():return CardParagraph;case CardRow.type():return CardRow;case CardSlider.type():return CardSlider;case CardTitle.type():return CardTitle;case CardVideo.type():return CardVideo;case CardYoutube.type():return CardYoutube;case CardImage.type():return CardImage;case ScriptEvent.type():return ScriptEvent;case Tag.type():return Tag;case ApplicationBuild.type():return ApplicationBuild;case AsyncJob.type():return AsyncJob;case AssetLibrary.type():return AssetLibrary;case TriggerImage.type():return TriggerImage;case Brief.type():return Brief;case CommentBrief.type():return CommentBrief;case CommentQuote.type():return CommentQuote;case CommentSolution.type():return CommentSolution;case PipelineUser.type():return PipelineUser;case Quote.type():return Quote;case Rating.type():return Rating;case Solution.type():return Solution;case Folder.type():return Folder;default:{console.warn('PlattarUtil.match(type) - provided type of "'+type+'" does not exist and cannot be created');return undefined}}};module.exports=PlattarUtil},{"../types/application.js":51,"../types/content-pipeline/brief.js":52,"../types/content-pipeline/comment-brief.js":53,"../types/content-pipeline/comment-quote.js":54,"../types/content-pipeline/comment-solution.js":55,"../types/content-pipeline/folder.js":56,"../types/content-pipeline/pipeline-user.js":57,"../types/content-pipeline/quote.js":58,"../types/content-pipeline/rating.js":59,"../types/content-pipeline/solution.js":60,"../types/file/file-audio.js":61,"../types/file/file-image.js":63,"../types/file/file-json.js":64,"../types/file/file-model.js":65,"../types/file/file-script.js":66,"../types/file/file-video.js":67,"../types/interfaces/plattar-object.js":70,"../types/misc/application-build.js":71,"../types/misc/asset-library":72,"../types/misc/async-job.js":73,"../types/misc/script-event.js":74,"../types/misc/tag.js":75,"../types/page/card-button.js":77,"../types/page/card-html.js":78,"../types/page/card-iframe.js":79,"../types/page/card-image.js":80,"../types/page/card-map.js":81,"../types/page/card-paragraph.js":82,"../types/page/card-row.js":83,"../types/page/card-slider.js":84,"../types/page/card-title.js":85,"../types/page/card-video.js":86,"../types/page/card-youtube.js":87,"../types/page/page.js":88,"../types/product/product-annotation.js":89,"../types/product/product-variation.js":91,"../types/product/product.js":92,"../types/scene/scene-annotation.js":93,"../types/scene/scene-audio.js":94,"../types/scene/scene-button.js":96,"../types/scene/scene-camera.js":97,"../types/scene/scene-carousel.js":98,"../types/scene/scene-gallery-image.js":99,"../types/scene/scene-gallery.js":100,"../types/scene/scene-image.js":101,"../types/scene/scene-model.js":102,"../types/scene/scene-panorama.js":103,"../types/scene/scene-poller.js":104,"../types/scene/scene-product.js":105,"../types/scene/scene-script.js":106,"../types/scene/scene-shadow.js":107,"../types/scene/scene-video.js":108,"../types/scene/scene-volumetric.js":109,"../types/scene/scene-youtube.js":110,"../types/scene/scene.js":111,"../types/trigger/trigger-image.js":112}],114:[function(require,module,exports){module.exports="1.186.3"},{}],115:[function(require,module,exports){const QRCodeStyling=require("qr-code-styling");const hash=require("object-hash");class BaseElement extends HTMLElement{constructor(){super()}connectedCallback(){if(this.hasAttribute("url")){this.renderQRCode()}const observer=new MutationObserver(mutations=>{mutations.forEach(mutation=>{if(mutation.type==="attributes"){if(this.hasAttribute("url")){this.renderQRCode()}}})});observer.observe(this,{attributes:true})}download(options){const opt=options||{name:"plattar-qrcode",extension:"png"};if(this._qrCode){this._qrCode.download(opt)}}renderQRCode(){const url=this.hasAttribute("url")?this.getAttribute("url"):undefined;if(!url){console.warn('PlattarQR.renderQRCode() - required attribute "url" is missing or invalid, QR Code will not render');return}const width=this.hasAttribute("width")?this.getAttribute("width"):"100%";const height=this.hasAttribute("height")?this.getAttribute("height"):"100%";const margin=this.hasAttribute("margin")?this.getAttribute("margin"):0;const image=this.hasAttribute("image")?this.getAttribute("image"):undefined;const color=this.hasAttribute("color")?this.getAttribute("color"):"#000000";const style=this.hasAttribute("qr-type")?this.getAttribute("qr-type"):"default";this._optionsHash="0";this._options=this._options||{imageOptions:{hideBackgroundDots:true,imageSize:.4,margin:0},dotsOptions:{type:"rounded"},backgroundOptions:{color:"#ffffff"},dotsOptionsHelper:{colorType:{single:true,gradient:false},gradient:{linear:true,radial:false,color1:"#6a1a4c",color2:"#6a1a4c",rotation:"0"}},cornersSquareOptions:{type:"extra-rounded"},cornersSquareOptionsHelper:{colorType:{single:true,gradient:false},gradient:{linear:true,radial:false,color1:"#000000",color2:"#000000",rotation:"0"}},cornersDotOptions:{type:"dot"},cornersDotOptionsHelper:{colorType:{single:true,gradient:false},gradient:{linear:true,radial:false,color1:"#000000",color2:"#000000",rotation:"0"}},backgroundOptionsHelper:{colorType:{single:true,gradient:false},gradient:{linear:true,radial:false,color1:"#ffffff",color2:"#ffffff",rotation:"0"}},width:1024,height:1024,type:"canvas"};this._options.margin=margin;this._options.image=image;this._options.dotsOptions.color=color;this._options.cornersDotOptions.color=color;this._options.cornersSquareOptions.color=color;switch(style){case"dots":this._options.dotsOptions.type="dots";break;case"default":default:this._options.dotsOptions.type="rounded"}const shortenURL=this.hasAttribute("shorten")?this.getAttribute("shorten"):"false";if(shortenURL&&shortenURL.toLowerCase()==="true"){this._ShortenURL(url).then(newURL=>{const updatedURL=this.hasAttribute("url")?this.getAttribute("url"):undefined;if(updatedURL===url){this._GenerateQRCode(newURL,width,height)}}).catch(_err=>{console.warn(_err);const updatedURL=this.hasAttribute("url")?this.getAttribute("url"):undefined;if(updatedURL===url){this._GenerateQRCode(url,width,height)}})}else{this._GenerateQRCode(url,width,height)}}_UpdateCanvas(width,height){if(!this._qrCode){return}const canvas=this._qrCode._domCanvas||this._qrCode._canvas;if(canvas){if(canvas.style.width!=="100%"){canvas.style.width="100%"}if(canvas.style.height!=="100%"){canvas.style.height="100%"}}if(this._divContainer){const div=this._divContainer;if(div.style.width!==width){div.style.width=width}if(div.style.height!==height){div.style.height=height}}}_GenerateQRCode(url,width,height){this._options.data=url;const shadow=this.shadowRoot||this.attachShadow({mode:"open"});const qrCode=this._qrCode;if(!qrCode){const div=document.createElement("div");div.style.display="none";shadow.appendChild(div);this._divContainer=div;this._qrCode=new QRCodeStyling(this._options);this._qrCode.append(div);this._UpdateCanvas(width,height);div.style.display="flex";return}const newHash=hash({options:this._options,width:width,height:height});if(this._optionsHash!==newHash){this._optionsHash=newHash;this._qrCode.update(this._options);this._UpdateCanvas(width,height)}}_IsFetchAPISupported(){return"fetch"in window}_ShortenURL(url){return new Promise((accept,reject)=>{if(!this._IsFetchAPISupported()){return reject(new Error("PlattarQR._ShortenURL() - fetch api not supported, cannot proceed"))}try{const b64Link=btoa(url);fetch("https://c.plattar.com/shorten",{cache:"no-store",method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{attributes:{url:b64Link,isBase64:true}}})}).then(response=>{if(!response.ok){throw new Error("PlattarQR._ShortenURL() - response was invalid")}return response.json()}).then(json=>{return accept(json.data.attributes.url)}).catch(()=>{return reject(new Error("PlattarQR._ShortenURL() - there was an unexpected issue generating short url"))})}catch(err){return reject(err)}})}}module.exports=BaseElement},{"object-hash":145,"qr-code-styling":147}],116:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class QRCodeElement extends BaseElement{constructor(){super()}}module.exports=QRCodeElement},{"./base/base-element.js":115}],117:[function(require,module,exports){"use strict";const QRCodeElement=require("./elements/qrcode-element.js");const Version=require("./version");if(customElements){if(customElements.get("plattar-qrcode")===undefined){customElements.define("plattar-qrcode",QRCodeElement)}}console.log("using @plattar/plattar-qrcode v"+Version);module.exports={version:Version}},{"./elements/qrcode-element.js":116,"./version":118}],118:[function(require,module,exports){module.exports="1.178.1"},{}],119:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.Configurator=void 0;const plattar_api_1=require("@plattar/plattar-api");const object_hash_1=__importDefault(require("object-hash"));const remote_request_1=require("./remote-request");class Configurator{constructor(){this.quality=100;this.output="glb";this.server="production";this.retry=0;this._maps=[];this._attrHash=[]}add(sceneProduct=null,productVariation=null){this.addSceneProduct(sceneProduct,productVariation)}addSceneProduct(sceneProduct=null,productVariation=null){if(!sceneProduct){throw new Error("Configurator.addSceneProduct() - sceneProduct input was null or undefined")}if(!productVariation){throw new Error("Configurator.addSceneProduct() - productVariation input was null or undefined")}const map={sceneproduct:null,productvariation:null};if(sceneProduct instanceof plattar_api_1.SceneProduct&&productVariation instanceof plattar_api_1.ProductVariation){map.sceneproduct=sceneProduct.id;map.productvariation=productVariation.id;this._maps.push(map);return}if((typeof sceneProduct==="string"||sceneProduct instanceof String)&&(typeof productVariation==="string"||productVariation instanceof String)){map.sceneproduct=sceneProduct;map.productvariation=productVariation;this._maps.push(map);return}throw new Error("Configurator.addSceneProduct() - mismatched instance types for inputs")}addProduct(product=null,productVariation=null){if(!product){throw new Error("Configurator.addProduct() - product input was null or undefined")}if(!productVariation){throw new Error("Configurator.addProduct() - productVariation input was null or undefined")}const map={productvariation:null,product:null};if(product instanceof plattar_api_1.Product&&productVariation instanceof plattar_api_1.ProductVariation){map.product=product.id;map.productvariation=productVariation.id;this._maps.push(map);return}if((typeof product==="string"||product instanceof String)&&(typeof productVariation==="string"||productVariation instanceof String)){map.product=product;map.productvariation=productVariation;this._maps.push(map);return}throw new Error("Configurator.addProduct() - mismatched instance types for inputs")}addModel(sceneModel=null){if(!sceneModel){throw new Error("Configurator.addModel() - sceneModel input was null or undefined")}const map={scenemodel:null};if(sceneModel instanceof plattar_api_1.SceneModel){map.scenemodel=sceneModel.id;this._maps.push(map);return}if(typeof sceneModel==="string"){map.scenemodel=sceneModel;this._maps.push(map);return}throw new Error("Configurator.addModel() - mismatched instance types for inputs")}get(){return new Promise((accept,reject)=>{this._CalculateHash().then(()=>{remote_request_1.RemoteRequest.request(this._GetPayload(),this.retry<0?0:this.retry).then(accept).catch(reject)}).catch(_err=>{reject(new Error("Configurator.get() - one of the objects does not exist in Plattar API"))})})}_CalculateHash(){return new Promise((accept,reject)=>{const promises=[];const oldOrigin=plattar_api_1.Server.default().originLocation.type;plattar_api_1.Server.create(plattar_api_1.Server.match(this.server));this._maps.forEach(map=>{if(map.productvariation){promises.push(new plattar_api_1.ProductVariation(map.productvariation).get())}if(map.sceneproduct){promises.push(new plattar_api_1.SceneProduct(map.sceneproduct).get())}if(map.scenemodel){promises.push(new plattar_api_1.SceneModel(map.scenemodel).get())}if(map.product){promises.push(new plattar_api_1.Product(map.product).get())}});Promise.all(promises).then(values=>{values.forEach(value=>{this._attrHash.push(value.attributes)});plattar_api_1.Server.create(plattar_api_1.Server.match(oldOrigin));accept()}).catch(()=>{plattar_api_1.Server.create(plattar_api_1.Server.match(oldOrigin));reject(new Error("Configurator._CalculateHash() - unexpected error"))})})}_GetPayload(){const converter=this.output==="vto"?"config_to_reality":"config_to_model";const load={options:{converter:converter,quality:this.quality,output:this.output,server:this.server},data:{maps:this._maps}};if(this._attrHash.length>0){load.options.hash=object_hash_1.default.MD5(this._attrHash)+object_hash_1.default.MD5(load)}else{load.options.hash=object_hash_1.default.MD5(load)}return load}}exports.Configurator=Configurator},{"./remote-request":121,"@plattar/plattar-api":48,"object-hash":145}],120:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ModelConverter=void 0;const plattar_api_1=require("@plattar/plattar-api");const object_hash_1=__importDefault(require("object-hash"));const remote_request_1=require("./remote-request");class ModelConverter{constructor(){this._model=null;this.quality=100;this.output="glb";this.server="production";this.retry=0;this._attrHash=[]}get model(){return this._model}set model(newModel){if(!newModel){return}if(newModel instanceof plattar_api_1.FileModel){this._model=newModel.id;this._attrHash.push(object_hash_1.default.MD5(newModel.attributes));return}this._model=newModel}get(){return new Promise((accept,reject)=>{if(!this._model){return reject(new Error("ModelConverter.get() - required .model attribute was not set"))}remote_request_1.RemoteRequest.request(this._Payload,this.retry<0?0:this.retry).then(accept).catch(reject)})}get _Payload(){const load={options:{converter:"gltf_to_model",quality:this.quality,output:this.output,server:this.server},data:{model:this._model}};if(this._attrHash.length>0){load.options.hash=object_hash_1.default.MD5(this._attrHash)+object_hash_1.default.MD5(load)}else{load.options.hash=object_hash_1.default.MD5(load)}return load}}exports.ModelConverter=ModelConverter},{"./remote-request":121,"@plattar/plattar-api":48,"object-hash":145}],121:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.RemoteRequest=void 0;const node_fetch_1=__importDefault(require("node-fetch"));class RemoteRequest{static request(payload,retry=0){return new Promise((accept,reject)=>{if(retry>=0){RemoteRequest._send(payload).then(accept).catch(err=>{const newretry=retry-1;if(newretry<0){return reject(err)}console.error("RemoteRequest.request() - retry number "+newretry);console.error(err);setTimeout(()=>{RemoteRequest.request(payload,newretry).then(accept).catch(reject)},500)})}else{return reject(new Error("RemoteRequest.request() - attempted all retries without success"))}})}static _send(payload){return new Promise((accept,reject)=>{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";const reqopts={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(payload)};(0,node_fetch_1.default)(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("RemoteRequest.request() - critical error occured, cannot proceed")}}return new Error("RemoteRequest.request() - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{accept(json)}})})}}exports.RemoteRequest=RemoteRequest},{"node-fetch":144}],122:[function(require,module,exports){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=this&&this.__importStar||function(){var ownKeys=function(o){ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)if(Object.prototype.hasOwnProperty.call(o,k))ar[ar.length]=k;return ar};return ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k=ownKeys(mod),i=0;i<k.length;i++)if(k[i]!=="default")__createBinding(result,mod,k[i]);__setModuleDefault(result,mod);return result}}();var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.version=exports.ModelConverter=exports.Configurator=void 0;var configurator_1=require("./core/configurator");Object.defineProperty(exports,"Configurator",{enumerable:true,get:function(){return configurator_1.Configurator}});var model_converter_1=require("./core/model-converter");Object.defineProperty(exports,"ModelConverter",{enumerable:true,get:function(){return model_converter_1.ModelConverter}});exports.version=__importStar(require("./version"));const version_1=__importDefault(require("./version"));console.log("using @plattar/plattar-services v"+version_1.default)},{"./core/configurator":119,"./core/model-converter":120,"./version":123}],123:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default="1.186.1"},{}],124:[function(require,module,exports){const Util=require("../../util/util");const ElementController=require("../controllers/element-controller");const{messenger}=require("@plattar/context-messenger");class BaseElement extends HTMLElement{constructor(){super()}connectedCallback(){this._controller=new ElementController(this)}set onready(callback){if(this._controller){this._controller.onload=callback;return}throw new Error("set BaseElement.onready - cannot use as element not connected")}get messengerInstance(){return messenger}get messenger(){return this._controller?this._controller.messenger:undefined}get context(){return this.messengerInstance.self}get parent(){return this.messengerInstance.parent}get element(){return this._controller}get ready(){return this._controller?true:false}get allowDragDrop(){return this._controller?this._controller.controller.allowDragDrop:false}set allowDragDrop(value){if(this._controller){this._controller.controller.allowDragDrop=value;return}throw new Error("set BaseElement.allowDragDrop - cannot use as element not connected")}get permissions(){return[]}get coreAttributes(){return[{key:"scene-id",map:"scene_id"}]}usesCoreAttribute(key){const attr=this.coreAttributes;const length=attr.length;for(let i=0;i<length;i++){if(attr[i].key===key){return true}}return false}usesOptionalAttribute(key){const attr=this.optionalAttributes;const length=attr.length;for(let i=0;i<length;i++){if(attr[i].key===key){return true}}return false}usesAttribute(key){return this.usesCoreAttribute(key)||this.usesOptionalAttribute(key)}get optionalAttributes(){return[]}get hasAllCoreAttributes(){const attr=this.coreAttributes;const length=attr.length;for(let i=0;i<length;i++){if(!this.hasAttribute(attr[i].key)){return false}}return true}get allMappedAttributes(){const map=new Map;const coreAttr=this.coreAttributes;const optAttr=this.optionalAttributes;coreAttr.forEach(ele=>{if(this.hasAttribute(ele.key)){map.set(ele.map,this.getAttribute(ele.key))}});optAttr.forEach(ele=>{if(this.hasAttribute(ele.key)){map.set(ele.map,this.getAttribute(ele.key))}});return map}get allMappedAttributesQuery(){const attr=this.allMappedAttributes;let queryStr="";let first=true;for(const[key,value]of attr.entries()){queryStr+=first?"?"+key+"="+value:"&"+key+"="+value;first=false}return queryStr}get elementType(){return"none"}get elementLocation(){return Util.getElementLocation(this.elementType)}}module.exports=BaseElement},{"../../util/util":139,"../controllers/element-controller":126,"@plattar/context-messenger":25}],125:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class ConfiguratorElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"configurator"}get elementLocation(){if(this.hasAttribute("show-ui")){const state=this.getAttribute("show-ui");return state==="true"?"configurator/dist/index.html":super.elementLocation}return super.elementLocation}get optionalAttributes(){return[{key:"config-state",map:"config_state"},{key:"show-ar",map:"show_ar"},{key:"scene-graph-id",map:"scene_graph_id"}]}}module.exports=ConfiguratorElement},{"./base/base-element.js":124}],126:[function(require,module,exports){const Util=require("../../util/util.js");const{messenger}=require("@plattar/context-messenger");const IFrameController=require("./iframe-controller.js");class ElementController{constructor(element){this._element=element;const callback=mutationsList=>{for(const mutation of mutationsList){if(mutation.type==="attributes"&&element.usesAttribute(mutation.attributeName)){if(element.hasAllCoreAttributes){this._load()}}}};const observer=new MutationObserver(callback);observer.observe(this._element,{attributes:true});if(element.hasAllCoreAttributes){this._load()}}_load(){if(this._controller){this._controller._destroy();this._controller=undefined}const element=this._element;this._server=element.hasAttribute("server")?element.getAttribute("server"):"production";const serverLocation=Util.getServerLocation(this._server);if(serverLocation===undefined){throw new Error('ElementController - attribute "server" must be one of "production", "staging", "review" or "dev"')}const embedLocation=element.elementLocation;if(embedLocation===undefined){throw new Error('ElementController - element named "'+elementType+'" is invalid')}const source=serverLocation+embedLocation+element.allMappedAttributesQuery;this._messengerID="element_"+Util.id();this._controller=new IFrameController(element,source,this._messengerID,node=>{messenger.addChild(node)})}set onload(callback){if(!callback){return}if(this.messenger){callback()}else{messenger.onload(this._messengerID,()=>{callback()})}}get messenger(){return messenger[this._messengerID]}get context(){return messenger.self}get parent(){return messenger.parent}get controller(){return this._controller}}module.exports=ElementController},{"../../util/util.js":139,"./iframe-controller.js":127,"@plattar/context-messenger":25}],127:[function(require,module,exports){const Util=require("../../util/util.js");class IFrameController{constructor(element,src,id,onelemload=undefined){this._iframe=document.createElement("iframe");this._isDraggable=false;if(!element.hasAttribute("sameorigin")){this._iframe.onload=()=>{if(onelemload){onelemload(this._iframe)}}}this._iframe.setAttribute("id",id);this._iframe.setAttribute("width",element.hasAttribute("width")?element.getAttribute("width"):"500px");this._iframe.setAttribute("height",element.hasAttribute("height")?element.getAttribute("height"):"500px");this._iframe.setAttribute("src",src);this._iframe.setAttribute("frameBorder","0");const permissions=Util.getPermissionString(element.permissions);if(permissions){this._iframe.setAttribute("allow",permissions)}const shadow=element.shadowRoot||element.attachShadow({mode:"open"});this.allowDragging=false;shadow.append(this._iframe);if(element.hasAttribute("fullscreen")){const style=document.createElement("style");style.textContent=`._PlattarFullScreen { width: 100%; height: 100%; position: absolute; top: 0; left: 0; }`;this._iframe.className="_PlattarFullScreen";shadow.append(style);this._fsStyle=style}}set allowDragDrop(value){if(value){this._isDraggable=true;this._iframe.style.pointerEvents="none"}else{this._isDraggable=false;this._iframe.style.pointerEvents="auto"}}_destroy(){if(this._iframe){this._iframe.remove()}if(this._fsStyle){this._fsStyle.remove()}this._iframe=undefined;this._fsStyle=undefined}get allowDragDrop(){return this._isDraggable}get width(){return this._iframe.getAttribute("width")}get child(){return this._iframe}set width(value){this._iframe.setAttribute("width",value)}get height(){return this._iframe.getAttribute("height")}set height(value){this._iframe.setAttribute("height",value)}get id(){return this._iframe.id}}module.exports=IFrameController},{"../../util/util.js":139}],128:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class EditorElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"editor"}}module.exports=EditorElement},{"./base/base-element.js":124}],129:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class EWallElement extends BaseElement{constructor(){super()}get permissions(){return["camera *","autoplay *","xr-spatial-tracking *","gyroscope *","accelerometer *","magnetometer *"]}get elementType(){return"ewall"}}module.exports=EWallElement},{"./base/base-element.js":124}],130:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class FaceARElement extends BaseElement{constructor(){super()}get permissions(){return["camera","autoplay"]}get elementType(){return"facear"}get optionalAttributes(){return[{key:"variation-id",map:"variationId"},{key:"variation-sku",map:"variationSku"},{key:"product-id",map:"productId"},{key:"config-state",map:"config_state"},{key:"show-ar",map:"show_ar"}]}}module.exports=FaceARElement},{"./base/base-element.js":124}],131:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class GalleryElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"gallery"}get optionalAttributes(){return[]}}module.exports=GalleryElement},{"./base/base-element.js":124}],132:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class LauncherElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"launcher"}get optionalAttributes(){return[{key:"config-state",map:"config_state"},{key:"qr-options",map:"qr_options"},{key:"embed-type",map:"embed_type"},{key:"product-id",map:"product_id"},{key:"scene-product-id",map:"scene_product_id"},{key:"variation-id",map:"variation_id"},{key:"variation-sku",map:"variation_sku"},{key:"ar-mode",map:"ar_mode"},{key:"show-ar-banner",map:"show_ar_banner"},{key:"scene-graph-id",map:"scene_graph_id"}]}}module.exports=LauncherElement},{"./base/base-element.js":124}],133:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class ModelElement extends BaseElement{constructor(){super()}get permissions(){return["camera","autoplay"]}get elementType(){return"model"}get coreAttributes(){return[]}get optionalAttributes(){return[{key:"mode",map:"mode"},{key:"capture-id",map:"capture_id"},{key:"model-id",map:"model_id"}]}}module.exports=ModelElement},{"./base/base-element.js":124}],134:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class ProductElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"product"}get coreAttributes(){return[{key:"product-id",map:"product_id"}]}get optionalAttributes(){return[{key:"variation-id",map:"variation_id"},{key:"variation-sku",map:"variationSku"},{key:"show-ar",map:"show_ar"}]}}module.exports=ProductElement},{"./base/base-element.js":124}],135:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class StudioElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"studio"}get optionalAttributes(){return[{key:"variation-id",map:"variationId"},{key:"variation-sku",map:"variationSku"}]}}module.exports=StudioElement},{"./base/base-element.js":124}],136:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class ViewerElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"viewer"}get optionalAttributes(){return[{key:"variation-id",map:"variationId"},{key:"variation-sku",map:"variationSku"},{key:"product-id",map:"productId"},{key:"show-ar",map:"show_ar"}]}}module.exports=ViewerElement},{"./base/base-element.js":124}],137:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class WebXRElement extends BaseElement{constructor(){super()}get permissions(){return["camera","autoplay","xr-spatial-tracking"]}get elementType(){return"webxr"}}module.exports=WebXRElement},{"./base/base-element.js":124}],138:[function(require,module,exports){"use strict";const WebXRElement=require("./elements/webxr-element.js");const ViewerElement=require("./elements/viewer-element.js");const ProductElement=require("./elements/product-element.js");const EWallElement=require("./elements/ewall-element.js");const FaceARElement=require("./elements/facear-element.js");const EditorElement=require("./elements/editor-element.js");const StudioElement=require("./elements/studio-element.js");const ModelElement=require("./elements/model-element.js");const ConfiguratorElement=require("./elements/configurator-element.js");const LauncherElement=require("./elements/launcher-element.js");const GalleryElement=require("./elements/gallery-element.js");const Version=require("./version");if(customElements.get("plattar-webxr")===undefined){customElements.define("plattar-webxr",WebXRElement)}if(customElements.get("plattar-viewer")===undefined){customElements.define("plattar-viewer",ViewerElement)}if(customElements.get("plattar-product")===undefined){customElements.define("plattar-product",ProductElement)}if(customElements.get("plattar-editor")===undefined){customElements.define("plattar-editor",EditorElement)}if(customElements.get("plattar-facear")===undefined){customElements.define("plattar-facear",FaceARElement)}if(customElements.get("plattar-8wall")===undefined){customElements.define("plattar-8wall",EWallElement)}if(customElements.get("plattar-studio")===undefined){customElements.define("plattar-studio",StudioElement)}if(customElements.get("plattar-model")===undefined){customElements.define("plattar-model",ModelElement)}if(customElements.get("plattar-configurator")===undefined){customElements.define("plattar-configurator",ConfiguratorElement)}if(customElements.get("plattar-gallery")===undefined){customElements.define("plattar-gallery",GalleryElement)}if(customElements.get("plattar-launcher")===undefined){customElements.define("plattar-launcher",LauncherElement)}console.log("using @plattar/plattar-web v"+Version);module.exports={version:Version}},{"./elements/configurator-element.js":125,"./elements/editor-element.js":128,"./elements/ewall-element.js":129,"./elements/facear-element.js":130,"./elements/gallery-element.js":131,"./elements/launcher-element.js":132,"./elements/model-element.js":133,"./elements/product-element.js":134,"./elements/studio-element.js":135,"./elements/viewer-element.js":136,"./elements/webxr-element.js":137,"./version":140}],139:[function(require,module,exports){class Util{static getServerLocation(server){switch(server){case"production":return"https://app.plattar.com/";case"staging":return"https://staging.plattar.space/";case"review":return"https://review.plattar.com/";case"dev":return"https://localhost/";default:return undefined}}static getElementLocation(etype){const isValid=Util.isValidType(etype);if(isValid){return"renderer/"+etype+".html"}return undefined}static isValidType(etype){switch(etype){case"viewer":case"editor":case"ewall":case"facear":case"studio":case"product":case"launcher":case"gallery":case"model":case"configurator":case"webxr":return true;default:return false}}static id(){return Math.abs(Math.floor(Math.random()*1e13))}static getPermissionString(permissions){if(permissions&&permissions.length>0){let permissionString=permissions[0];for(let i=1;i<permissions.length;i++){permissionString+="; "+permissions[i]}return permissionString}return undefined}}module.exports=Util},{}],140:[function(require,module,exports){module.exports="1.182.2"},{}],141:[function(require,module,exports){"use strict";exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i<len;++i){lookup[i]=code[i];revLookup[code.charCodeAt(i)]=i}revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len=b64.length;if(len%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var validLen=b64.indexOf("=");if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;var len=placeHoldersLen>0?validLen-4:validLen;var i;for(i=0;i<len;i+=4){tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)];arr[curByte++]=tmp>>16&255;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&255}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;i<end;i+=3){tmp=(uint8[i]<<16&16711680)+(uint8[i+1]<<8&65280)+(uint8[i+2]&255);output.push(tripletToBase64(tmp))}return output.join("")}function fromByteArray(uint8){var tmp;var len=uint8.length;var extraBytes=len%3;var parts=[];var maxChunkLength=16383;for(var i=0,len2=len-extraBytes;i<len2;i+=maxChunkLength){parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")}return parts.join("")}},{}],142:[function(require,module,exports){(function(Buffer){(function(){"use strict";var base64=require("base64-js");var ieee754=require("ieee754");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!=="undefined"&&typeof console.error==="function"){console.error("This browser lacks typed array (Uint8Array) support which is required by "+"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.")}function typedArraySupport(){try{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}};return arr.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,"parent",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,"offset",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"')}var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf}function Buffer(arg,encodingOrOffset,length){if(typeof arg==="number"){if(typeof encodingOrOffset==="string"){throw new TypeError('The "string" argument must be of type string. Received type number')}return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}if(typeof Symbol!=="undefined"&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false})}Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value==="string"){return fromString(value,encodingOrOffset)}if(ArrayBuffer.isView(value)){return fromArrayLike(value)}if(value==null){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length)}if(typeof value==="number"){throw new TypeError('The "value" argument must not be of type number. Received type number')}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length)}var b=fromObject(value);if(b)return b;if(typeof Symbol!=="undefined"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==="function"){return Buffer.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=="number"){throw new TypeError('"size" argument must be of type number')}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"')}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size)}if(fill!==undefined){return typeof encoding==="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill)}return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!=="string"||encoding===""){encoding="utf8"}if(!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){buf=buf.slice(0,actual)}return buf}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i<length;i+=1){buf[i]=array[i]&255}return buf}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset){throw new RangeError('"offset" is outside of buffer bounds')}if(array.byteLength<byteOffset+(length||0)){throw new RangeError('"length" is outside of buffer bounds')}var buf;if(byteOffset===undefined&&length===undefined){buf=new Uint8Array(array)}else if(length===undefined){buf=new Uint8Array(array,byteOffset)}else{buf=new Uint8Array(array,byteOffset,length)}buf.__proto__=Buffer.prototype;return buf}function fromObject(obj){if(Buffer.isBuffer(obj)){var len=checked(obj.length)|0;var buf=createBuffer(len);if(buf.length===0){return buf}obj.copy(buf,0,0,len);return buf}if(obj.length!==undefined){if(typeof obj.length!=="number"||numberIsNaN(obj.length)){return createBuffer(0)}return fromArrayLike(obj)}if(obj.type==="Buffer"&&Array.isArray(obj.data)){return fromArrayLike(obj.data)}}function checked(length){if(length>=K_MAX_LENGTH){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+K_MAX_LENGTH.toString(16)+" bytes")}return length|0}function SlowBuffer(length){if(+length!=length){length=0}return Buffer.alloc(+length)}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i<len;++i){if(a[i]!==b[i]){x=a[i];y=b[i];break}}if(x<y)return-1;if(y<x)return 1;return 0};Buffer.isEncoding=function isEncoding(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return true;default:return false}};Buffer.concat=function concat(list,length){if(!Array.isArray(list)){throw new TypeError('"list" argument must be an Array of Buffers')}if(list.length===0){return Buffer.alloc(0)}var i;if(length===undefined){length=0;for(i=0;i<list.length;++i){length+=list[i].length}}var buffer=Buffer.allocUnsafe(length);var pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array)){buf=Buffer.from(buf)}if(!Buffer.isBuffer(buf)){throw new TypeError('"list" argument must be an Array of Buffers')}buf.copy(buffer,pos);pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer.isBuffer(string)){return string.length}if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer)){return string.byteLength}if(typeof string!=="string"){throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. '+"Received type "+typeof string)}var len=string.length;var mustMatch=arguments.length>2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length}encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;if(start===undefined||start<0){start=0}if(start>this.length){return""}if(end===undefined||end>this.length){end=this.length}if(end<=0){return""}end>>>=0;start>>>=0;if(end<=start){return""}if(!encoding)encoding="utf8";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var i=0;i<len;i+=2){swap(this,i,i+1)}return this};Buffer.prototype.swap32=function swap32(){var len=this.length;if(len%4!==0){throw new RangeError("Buffer size must be a multiple of 32-bits")}for(var i=0;i<len;i+=4){swap(this,i,i+3);swap(this,i+1,i+2)}return this};Buffer.prototype.swap64=function swap64(){var len=this.length;if(len%8!==0){throw new RangeError("Buffer size must be a multiple of 64-bits")}for(var i=0;i<len;i+=8){swap(this,i,i+7);swap(this,i+1,i+6);swap(this,i+2,i+5);swap(this,i+3,i+4)}return this};Buffer.prototype.toString=function toString(){var length=this.length;if(length===0)return"";if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments)};Buffer.prototype.toLocaleString=Buffer.prototype.toString;Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return true;return Buffer.compare(this,b)===0};Buffer.prototype.inspect=function inspect(){var str="";var max=exports.INSPECT_MAX_BYTES;str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim();if(this.length>max)str+=" ... ";return"<Buffer "+str+">"};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength)}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+"Received type "+typeof target)}if(start===undefined){start=0}if(end===undefined){end=target?target.length:0}if(thisStart===undefined){thisStart=0}if(thisEnd===undefined){thisEnd=this.length}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError("out of range index")}if(thisStart>=thisEnd&&start>=end){return 0}if(thisStart>=thisEnd){return-1}if(start>=end){return 1}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i<len;++i){if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i];y=targetCopy[i];break}}if(x<y)return-1;if(y<x)return 1;return 0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset==="string"){encoding=byteOffset;byteOffset=0}else if(byteOffset>2147483647){byteOffset=2147483647}else if(byteOffset<-2147483648){byteOffset=-2147483648}byteOffset=+byteOffset;if(numberIsNaN(byteOffset)){byteOffset=dir?0:buffer.length-1}if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1}else if(byteOffset<0){if(dir)byteOffset=0;else return-1}if(typeof val==="string"){val=Buffer.from(val,encoding)}if(Buffer.isBuffer(val)){if(val.length===0){return-1}return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val==="number"){val=val&255;if(typeof Uint8Array.prototype.indexOf==="function"){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset)}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset)}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le"){if(arr.length<2||val.length<2){return-1}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2}}function read(buf,i){if(indexSize===1){return buf[i]}else{return buf.readUInt16BE(i*indexSize)}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++){if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1)foundIndex=i;if(i-foundIndex+1===valLength)return foundIndex*indexSize}else{if(foundIndex!==-1)i-=i-foundIndex;foundIndex=-1}}}else{if(byteOffset+valLength>arrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;j<valLength;j++){if(read(arr,i+j)!==read(val,j)){found=false;break}}if(found)return i}}return-1}Buffer.prototype.includes=function includes(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer.prototype.indexOf=function indexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,true)};Buffer.prototype.lastIndexOf=function lastIndexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,false)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining}else{length=Number(length);if(length>remaining){length=remaining}}var strLen=string.length;if(length>strLen/2){length=strLen/2}for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function latin1Write(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer.prototype.write=function write(string,offset,length,encoding){if(offset===undefined){encoding="utf8";length=this.length;offset=0}else if(length===undefined&&typeof offset==="string"){encoding=offset;length=this.length;offset=0}else if(isFinite(offset)){offset=offset>>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i<end){var firstByte=buf[i];var codePoint=null;var bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(i<len){res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH))}return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i]&127)}return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i])}return ret}function hexSlice(buf,start,end){var len=buf.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out="";for(var i=start;i<end;++i){out+=toHex(buf[i])}return out}function utf16leSlice(buf,start,end){var bytes=buf.slice(start,end);var res="";for(var i=0;i<bytes.length;i+=2){res+=String.fromCharCode(bytes[i]+bytes[i+1]*256)}return res}Buffer.prototype.slice=function slice(start,end){var len=this.length;start=~~start;end=end===undefined?len:~~end;if(start<0){start+=len;if(start<0)start=0}else if(start>len){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(end<start)end=start;var newBuf=this.subarray(start,end);newBuf.__proto__=Buffer.prototype;return newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}return val};Buffer.prototype.readUIntBE=function readUIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1;var i=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUIntBE=function writeUIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,255,0);this[offset]=value&255;return offset+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255;return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){if(value<0&&sub===0&&this[offset+i-1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end<start)end=start;if(end===start)return 0;if(target.length===0||this.length===0)return 0;if(targetStart<0){throw new RangeError("targetStart out of bounds")}if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart<end-start){end=target.length-targetStart+start}var len=end-start;if(this===target&&typeof Uint8Array.prototype.copyWithin==="function"){this.copyWithin(targetStart,start,end)}else if(this===target&&start<targetStart&&targetStart<end){for(var i=len-1;i>=0;--i){target[i+targetStart]=this[i+start]}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart)}return len};Buffer.prototype.fill=function fill(val,start,end,encoding){if(typeof val==="string"){if(typeof start==="string"){encoding=start;start=0;end=this.length}else if(typeof end==="string"){encoding=end;end=this.length}if(encoding!==undefined&&typeof encoding!=="string"){throw new TypeError("encoding must be a string")}if(typeof encoding==="string"&&!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}if(val.length===1){var code=val.charCodeAt(0);if(encoding==="utf8"&&code<128||encoding==="latin1"){val=code}}}else if(typeof val==="number"){val=val&255}if(start<0||this.length<start||this.length<end){throw new RangeError("Out of range index")}if(end<=start){return this}start=start>>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==="number"){for(i=start;i<end;++i){this[i]=val}}else{var bytes=Buffer.isBuffer(val)?val:Buffer.from(val,encoding);var len=bytes.length;if(len===0){throw new TypeError('The value "'+val+'" is invalid for argument "value"')}for(i=0;i<end-start;++i){this[i+start]=bytes[i%len]}}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){str=str.split("=")[0];str=str.trim().replace(INVALID_BASE64_RE,"");if(str.length<2)return"";while(str.length%4!==0){str=str+"="}return str}function toHex(n){if(n<16)return"0"+n.toString(16);return n.toString(16)}function utf8ToBytes(string,units){units=units||Infinity;var codePoint;var length=string.length;var leadSurrogate=null;var bytes=[];for(var i=0;i<length;++i){codePoint=string.charCodeAt(i);if(codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;++i){byteArray.push(str.charCodeAt(i)&255)}return byteArray}function utf16leToBytes(str,units){var c,hi,lo;var byteArray=[];for(var i=0;i<str.length;++i){if((units-=2)<0)break;c=str.charCodeAt(i);hi=c>>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length;++i){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}}).call(this)}).call(this,require("buffer").Buffer)},{"base64-js":141,buffer:142,ieee754:143}],143:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],144:[function(require,module,exports){(function(global){(function(){"use strict";var getGlobal=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var globalObject=getGlobal();module.exports=exports=globalObject.fetch;if(globalObject.fetch){exports.default=globalObject.fetch.bind(globalObject)}exports.Headers=globalObject.Headers;exports.Request=globalObject.Request;exports.Response=globalObject.Response}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],145:[function(require,module,exports){(function(global){(function(){!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)})}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],146:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;runClearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[]};process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],147:[function(require,module,exports){(function(Buffer){(function(){!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.QRCodeStyling=e():t.QRCodeStyling=e()}(this,()=>(()=>{var t={873:(t,e)=>{var i,r,n=function(){var t=function(t,e){var i=t,r=s[e],n=null,o=0,h=null,p=[],v={},m=function(t,e){n=function(t){for(var e=new Array(t),i=0;i<t;i+=1){e[i]=new Array(t);for(var r=0;r<t;r+=1)e[i][r]=null}return e}(o=4*i+17),b(0,0),b(o-7,0),b(0,o-7),x(),y(),C(t,e),i>=7&&S(t),null==h&&(h=M(i,r,p)),A(h,e)},b=function(t,e){for(var i=-1;i<=7;i+=1)if(!(t+i<=-1||o<=t+i))for(var r=-1;r<=7;r+=1)e+r<=-1||o<=e+r||(n[t+i][e+r]=0<=i&&i<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==i||6==i)||2<=i&&i<=4&&2<=r&&r<=4)},y=function(){for(var t=8;t<o-8;t+=1)null==n[t][6]&&(n[t][6]=t%2==0);for(var e=8;e<o-8;e+=1)null==n[6][e]&&(n[6][e]=e%2==0)},x=function(){for(var t=a.getPatternPosition(i),e=0;e<t.length;e+=1)for(var r=0;r<t.length;r+=1){var o=t[e],s=t[r];if(null==n[o][s])for(var h=-2;h<=2;h+=1)for(var d=-2;d<=2;d+=1)n[o+h][s+d]=-2==h||2==h||-2==d||2==d||0==h&&0==d}},S=function(t){for(var e=a.getBCHTypeNumber(i),r=0;r<18;r+=1){var s=!t&&1==(e>>r&1);n[Math.floor(r/3)][r%3+o-8-3]=s}for(r=0;r<18;r+=1)s=!t&&1==(e>>r&1),n[r%3+o-8-3][Math.floor(r/3)]=s},C=function(t,e){for(var i=r<<3|e,s=a.getBCHTypeInfo(i),h=0;h<15;h+=1){var d=!t&&1==(s>>h&1);h<6?n[h][8]=d:h<8?n[h+1][8]=d:n[o-15+h][8]=d}for(h=0;h<15;h+=1)d=!t&&1==(s>>h&1),h<8?n[8][o-h-1]=d:h<9?n[8][15-h-1+1]=d:n[8][15-h-1]=d;n[o-8][8]=!t},A=function(t,e){for(var i=-1,r=o-1,s=7,h=0,d=a.getMaskFunction(e),u=o-1;u>0;u-=2)for(6==u&&(u-=1);;){for(var c=0;c<2;c+=1)if(null==n[r][u-c]){var l=!1;h<t.length&&(l=1==(t[h]>>>s&1)),d(r,u-c)&&(l=!l),n[r][u-c]=l,-1==(s-=1)&&(h+=1,s=7)}if((r+=i)<0||o<=r){r-=i,i=-i;break}}},M=function(t,e,i){for(var r=u.getRSBlocks(t,e),n=c(),o=0;o<i.length;o+=1){var s=i[o];n.put(s.getMode(),4),n.put(s.getLength(),a.getLengthInBits(s.getMode(),t)),s.write(n)}var h=0;for(o=0;o<r.length;o+=1)h+=r[o].dataCount;if(n.getLengthInBits()>8*h)throw"code length overflow. ("+n.getLengthInBits()+">"+8*h+")";for(n.getLengthInBits()+4<=8*h&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*h||(n.put(236,8),n.getLengthInBits()>=8*h));)n.put(17,8);return function(t,e){for(var i=0,r=0,n=0,o=new Array(e.length),s=new Array(e.length),h=0;h<e.length;h+=1){var u=e[h].dataCount,c=e[h].totalCount-u;r=Math.max(r,u),n=Math.max(n,c),o[h]=new Array(u);for(var l=0;l<o[h].length;l+=1)o[h][l]=255&t.getBuffer()[l+i];i+=u;var g=a.getErrorCorrectPolynomial(c),f=d(o[h],g.getLength()-1).mod(g);for(s[h]=new Array(g.getLength()-1),l=0;l<s[h].length;l+=1){var w=l+f.getLength()-s[h].length;s[h][l]=w>=0?f.getAt(w):0}}var p=0;for(l=0;l<e.length;l+=1)p+=e[l].totalCount;var v=new Array(p),_=0;for(l=0;l<r;l+=1)for(h=0;h<e.length;h+=1)l<o[h].length&&(v[_]=o[h][l],_+=1);for(l=0;l<n;l+=1)for(h=0;h<e.length;h+=1)l<s[h].length&&(v[_]=s[h][l],_+=1);return v}(n,r)};v.addData=function(t,e){var i=null;switch(e=e||"Byte"){case"Numeric":i=l(t);break;case"Alphanumeric":i=g(t);break;case"Byte":i=f(t);break;case"Kanji":i=w(t);break;default:throw"mode:"+e}p.push(i),h=null},v.isDark=function(t,e){if(t<0||o<=t||e<0||o<=e)throw t+","+e;return n[t][e]},v.getModuleCount=function(){return o},v.make=function(){if(i<1){for(var t=1;t<40;t++){for(var e=u.getRSBlocks(t,r),n=c(),o=0;o<p.length;o++){var s=p[o];n.put(s.getMode(),4),n.put(s.getLength(),a.getLengthInBits(s.getMode(),t)),s.write(n)}var h=0;for(o=0;o<e.length;o++)h+=e[o].dataCount;if(n.getLengthInBits()<=8*h)break}i=t}m(!1,function(){for(var t=0,e=0,i=0;i<8;i+=1){m(!0,i);var r=a.getLostPoint(v);(0==i||t>r)&&(t=r,e=i)}return e}())},v.createTableTag=function(t,e){t=t||2;var i="";i+='<table style="',i+=" border-width: 0px; border-style: none;",i+=" border-collapse: collapse;",i+=" padding: 0px; margin: "+(e=void 0===e?4*t:e)+"px;",i+='">',i+="<tbody>";for(var r=0;r<v.getModuleCount();r+=1){i+="<tr>";for(var n=0;n<v.getModuleCount();n+=1)i+='<td style="',i+=" border-width: 0px; border-style: none;",i+=" border-collapse: collapse;",i+=" padding: 0px; margin: 0px;",i+=" width: "+t+"px;",i+=" height: "+t+"px;",i+=" background-color: ",i+=v.isDark(r,n)?"#000000":"#ffffff",i+=";",i+='"/>';i+="</tr>"}return(i+="</tbody>")+"</table>"},v.createSvgTag=function(t,e,i,r){var n={};"object"==typeof arguments[0]&&(t=(n=arguments[0]).cellSize,e=n.margin,i=n.alt,r=n.title),t=t||2,e=void 0===e?4*t:e,(i="string"==typeof i?{text:i}:i||{}).text=i.text||null,i.id=i.text?i.id||"qrcode-description":null,(r="string"==typeof r?{text:r}:r||{}).text=r.text||null,r.id=r.text?r.id||"qrcode-title":null;var o,s,a,h,d=v.getModuleCount()*t+2*e,u="";for(h="l"+t+",0 0,"+t+" -"+t+",0 0,-"+t+"z ",u+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',u+=n.scalable?"":' width="'+d+'px" height="'+d+'px"',u+=' viewBox="0 0 '+d+" "+d+'" ',u+=' preserveAspectRatio="xMinYMin meet"',u+=r.text||i.text?' role="img" aria-labelledby="'+$([r.id,i.id].join(" ").trim())+'"':"",u+=">",u+=r.text?'<title id="'+$(r.id)+'">'+$(r.text)+"</title>":"",u+=i.text?'<description id="'+$(i.id)+'">'+$(i.text)+"</description>":"",u+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',u+='<path d="',s=0;s<v.getModuleCount();s+=1)for(a=s*t+e,o=0;o<v.getModuleCount();o+=1)v.isDark(s,o)&&(u+="M"+(o*t+e)+","+a+h);return(u+='" stroke="transparent" fill="black"/>')+"</svg>"},v.createDataURL=function(t,e){t=t||2,e=void 0===e?4*t:e;var i=v.getModuleCount()*t+2*e,r=e,n=i-e;return _(i,i,function(e,i){if(r<=e&&e<n&&r<=i&&i<n){var o=Math.floor((e-r)/t),s=Math.floor((i-r)/t);return v.isDark(s,o)?0:1}return 1})},v.createImgTag=function(t,e,i){t=t||2,e=void 0===e?4*t:e;var r=v.getModuleCount()*t+2*e,n="";return n+="<img",n+=' src="',n+=v.createDataURL(t,e),n+='"',n+=' width="',n+=r,n+='"',n+=' height="',n+=r,n+='"',i&&(n+=' alt="',n+=$(i),n+='"'),n+"/>"};var $=function(t){for(var e="",i=0;i<t.length;i+=1){var r=t.charAt(i);switch(r){case"<":e+="&lt;";break;case">":e+="&gt;";break;case"&":e+="&amp;";break;case'"':e+="&quot;";break;default:e+=r}}return e};return v.createASCII=function(t,e){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var e,i,r,n,o,s=1*v.getModuleCount()+2*t,a=t,h=s-t,d={"██":"█","█ ":"▀"," █":"▄"," ":" "},u={"██":"▀","█ ":"▀"," █":" "," ":" "},c="";for(e=0;e<s;e+=2){for(r=Math.floor((e-a)/1),n=Math.floor((e+1-a)/1),i=0;i<s;i+=1)o="█",a<=i&&i<h&&a<=e&&e<h&&v.isDark(r,Math.floor((i-a)/1))&&(o=" "),a<=i&&i<h&&a<=e+1&&e+1<h&&v.isDark(n,Math.floor((i-a)/1))?o+=" ":o+="█",c+=t<1&&e+1>=h?u[o]:d[o];c+="\n"}return s%2&&t>0?c.substring(0,c.length-s-1)+Array(s+1).join("▀"):c.substring(0,c.length-1)}(e);t-=1,e=void 0===e?2*t:e;var i,r,n,o,s=v.getModuleCount()*t+2*e,a=e,h=s-e,d=Array(t+1).join("██"),u=Array(t+1).join(" "),c="",l="";for(i=0;i<s;i+=1){for(n=Math.floor((i-a)/t),l="",r=0;r<s;r+=1)o=1,a<=r&&r<h&&a<=i&&i<h&&v.isDark(n,Math.floor((r-a)/t))&&(o=0),l+=o?d:u;for(n=0;n<t;n+=1)c+=l+"\n"}return c.substring(0,c.length-1)},v.renderTo2dContext=function(t,e){e=e||2;for(var i=v.getModuleCount(),r=0;r<i;r++)for(var n=0;n<i;n++)t.fillStyle=v.isDark(r,n)?"black":"white",t.fillRect(r*e,n*e,e,e)},v};t.stringToBytes=(t.stringToBytesFuncs={default:function(t){for(var e=[],i=0;i<t.length;i+=1){var r=t.charCodeAt(i);e.push(255&r)}return e}}).default,t.createStringToBytes=function(t,e){var i=function(){for(var i=v(t),r=function(){var t=i.read();if(-1==t)throw"eof";return t},n=0,o={};;){var s=i.read();if(-1==s)break;var a=r(),h=r()<<8|r();o[String.fromCharCode(s<<8|a)]=h,n+=1}if(n!=e)throw n+" != "+e;return o}(),r="?".charCodeAt(0);return function(t){for(var e=[],n=0;n<t.length;n+=1){var o=t.charCodeAt(n);if(o<128)e.push(o);else{var s=i[t.charAt(n)];"number"==typeof s?(255&s)==s?e.push(s):(e.push(s>>>8),e.push(255&s)):e.push(r)}}return e}};var e,i,r,n,o,s={L:1,M:0,Q:3,H:2},a=(e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],i=1335,r=7973,o=function(t){for(var e=0;0!=t;)e+=1,t>>>=1;return e},(n={}).getBCHTypeInfo=function(t){for(var e=t<<10;o(e)-o(i)>=0;)e^=i<<o(e)-o(i);return 21522^(t<<10|e)},n.getBCHTypeNumber=function(t){for(var e=t<<12;o(e)-o(r)>=0;)e^=r<<o(e)-o(r);return t<<12|e},n.getPatternPosition=function(t){return e[t-1]},n.getMaskFunction=function(t){switch(t){case 0:return function(t,e){return(t+e)%2==0};case 1:return function(t,e){return t%2==0};case 2:return function(t,e){return e%3==0};case 3:return function(t,e){return(t+e)%3==0};case 4:return function(t,e){return(Math.floor(t/2)+Math.floor(e/3))%2==0};case 5:return function(t,e){return t*e%2+t*e%3==0};case 6:return function(t,e){return(t*e%2+t*e%3)%2==0};case 7:return function(t,e){return(t*e%3+(t+e)%2)%2==0};default:throw"bad maskPattern:"+t}},n.getErrorCorrectPolynomial=function(t){for(var e=d([1],0),i=0;i<t;i+=1)e=e.multiply(d([1,h.gexp(i)],0));return e},n.getLengthInBits=function(t,e){if(1<=e&&e<10)switch(t){case 1:return 10;case 2:return 9;case 4:case 8:return 8;default:throw"mode:"+t}else if(e<27)switch(t){case 1:return 12;case 2:return 11;case 4:return 16;case 8:return 10;default:throw"mode:"+t}else{if(!(e<41))throw"type:"+e;switch(t){case 1:return 14;case 2:return 13;case 4:return 16;case 8:return 12;default:throw"mode:"+t}}},n.getLostPoint=function(t){for(var e=t.getModuleCount(),i=0,r=0;r<e;r+=1)for(var n=0;n<e;n+=1){for(var o=0,s=t.isDark(r,n),a=-1;a<=1;a+=1)if(!(r+a<0||e<=r+a))for(var h=-1;h<=1;h+=1)n+h<0||e<=n+h||0==a&&0==h||s==t.isDark(r+a,n+h)&&(o+=1);o>5&&(i+=3+o-5)}for(r=0;r<e-1;r+=1)for(n=0;n<e-1;n+=1){var d=0;t.isDark(r,n)&&(d+=1),t.isDark(r+1,n)&&(d+=1),t.isDark(r,n+1)&&(d+=1),t.isDark(r+1,n+1)&&(d+=1),0!=d&&4!=d||(i+=3)}for(r=0;r<e;r+=1)for(n=0;n<e-6;n+=1)t.isDark(r,n)&&!t.isDark(r,n+1)&&t.isDark(r,n+2)&&t.isDark(r,n+3)&&t.isDark(r,n+4)&&!t.isDark(r,n+5)&&t.isDark(r,n+6)&&(i+=40);for(n=0;n<e;n+=1)for(r=0;r<e-6;r+=1)t.isDark(r,n)&&!t.isDark(r+1,n)&&t.isDark(r+2,n)&&t.isDark(r+3,n)&&t.isDark(r+4,n)&&!t.isDark(r+5,n)&&t.isDark(r+6,n)&&(i+=40);var u=0;for(n=0;n<e;n+=1)for(r=0;r<e;r+=1)t.isDark(r,n)&&(u+=1);return i+Math.abs(100*u/e/e-50)/5*10},n),h=function(){for(var t=new Array(256),e=new Array(256),i=0;i<8;i+=1)t[i]=1<<i;for(i=8;i<256;i+=1)t[i]=t[i-4]^t[i-5]^t[i-6]^t[i-8];for(i=0;i<255;i+=1)e[t[i]]=i;return{glog:function(t){if(t<1)throw"glog("+t+")";return e[t]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t[e]}}}();function d(t,e){if(void 0===t.length)throw t.length+"/"+e;var i=function(){for(var i=0;i<t.length&&0==t[i];)i+=1;for(var r=new Array(t.length-i+e),n=0;n<t.length-i;n+=1)r[n]=t[n+i];return r}(),r={getAt:function(t){return i[t]},getLength:function(){return i.length},multiply:function(t){for(var e=new Array(r.getLength()+t.getLength()-1),i=0;i<r.getLength();i+=1)for(var n=0;n<t.getLength();n+=1)e[i+n]^=h.gexp(h.glog(r.getAt(i))+h.glog(t.getAt(n)));return d(e,0)},mod:function(t){if(r.getLength()-t.getLength()<0)return r;for(var e=h.glog(r.getAt(0))-h.glog(t.getAt(0)),i=new Array(r.getLength()),n=0;n<r.getLength();n+=1)i[n]=r.getAt(n);for(n=0;n<t.getLength();n+=1)i[n]^=h.gexp(h.glog(t.getAt(n))+e);return d(i,0).mod(t)}};return r}var u=function(){var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],e=function(t,e){var i={};return i.totalCount=t,i.dataCount=e,i},i={getRSBlocks:function(i,r){var n=function(e,i){switch(i){case s.L:return t[4*(e-1)+0];case s.M:return t[4*(e-1)+1];case s.Q:return t[4*(e-1)+2];case s.H:return t[4*(e-1)+3];default:return}}(i,r);if(void 0===n)throw"bad rs block @ typeNumber:"+i+"/errorCorrectionLevel:"+r;for(var o=n.length/3,a=[],h=0;h<o;h+=1)for(var d=n[3*h+0],u=n[3*h+1],c=n[3*h+2],l=0;l<d;l+=1)a.push(e(u,c));return a}};return i}(),c=function(){var t=[],e=0,i={getBuffer:function(){return t},getAt:function(e){var i=Math.floor(e/8);return 1==(t[i]>>>7-e%8&1)},put:function(t,e){for(var r=0;r<e;r+=1)i.putBit(1==(t>>>e-r-1&1))},getLengthInBits:function(){return e},putBit:function(i){var r=Math.floor(e/8);t.length<=r&&t.push(0),i&&(t[r]|=128>>>e%8),e+=1}};return i},l=function(t){var e=t,i={getMode:function(){return 1},getLength:function(t){return e.length},write:function(t){for(var i=e,n=0;n+2<i.length;)t.put(r(i.substring(n,n+3)),10),n+=3;n<i.length&&(i.length-n==1?t.put(r(i.substring(n,n+1)),4):i.length-n==2&&t.put(r(i.substring(n,n+2)),7))}},r=function(t){for(var e=0,i=0;i<t.length;i+=1)e=10*e+n(t.charAt(i));return e},n=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);throw"illegal char :"+t};return i},g=function(t){var e=t,i={getMode:function(){return 2},getLength:function(t){return e.length},write:function(t){for(var i=e,n=0;n+1<i.length;)t.put(45*r(i.charAt(n))+r(i.charAt(n+1)),11),n+=2;n<i.length&&t.put(r(i.charAt(n)),6)}},r=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);if("A"<=t&&t<="Z")return t.charCodeAt(0)-"A".charCodeAt(0)+10;switch(t){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+t}};return i},f=function(e){var i=t.stringToBytes(e);return{getMode:function(){return 4},getLength:function(t){return i.length},write:function(t){for(var e=0;e<i.length;e+=1)t.put(i[e],8)}}},w=function(e){var i=t.stringToBytesFuncs.SJIS;if(!i)throw"sjis not supported.";!function(){var t=i("友");if(2!=t.length||38726!=(t[0]<<8|t[1]))throw"sjis not supported."}();var r=i(e),n={getMode:function(){return 8},getLength:function(t){return~~(r.length/2)},write:function(t){for(var e=r,i=0;i+1<e.length;){var n=(255&e[i])<<8|255&e[i+1];if(33088<=n&&n<=40956)n-=33088;else{if(!(57408<=n&&n<=60351))throw"illegal char at "+(i+1)+"/"+n;n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13),i+=2}if(i<e.length)throw"illegal char at "+(i+1)}};return n},p=function(){var t=[],e={writeByte:function(e){t.push(255&e)},writeShort:function(t){e.writeByte(t),e.writeByte(t>>>8)},writeBytes:function(t,i,r){i=i||0,r=r||t.length;for(var n=0;n<r;n+=1)e.writeByte(t[n+i])},writeString:function(t){for(var i=0;i<t.length;i+=1)e.writeByte(t.charCodeAt(i))},toByteArray:function(){return t},toString:function(){var e="";e+="[";for(var i=0;i<t.length;i+=1)i>0&&(e+=","),e+=t[i];return e+"]"}};return e},v=function(t){var e=t,i=0,r=0,n=0,o={read:function(){for(;n<8;){if(i>=e.length){if(0==n)return-1;throw"unexpected end of file./"+n}var t=e.charAt(i);if(i+=1,"="==t)return n=0,-1;t.match(/^\s$/)||(r=r<<6|s(t.charCodeAt(0)),n+=6)}var o=r>>>n-8&255;return n-=8,o}},s=function(t){if(65<=t&&t<=90)return t-65;if(97<=t&&t<=122)return t-97+26;if(48<=t&&t<=57)return t-48+52;if(43==t)return 62;if(47==t)return 63;throw"c:"+t};return o},_=function(t,e,i){for(var r=function(t,e){var i=t,r=e,n=new Array(t*e),o={setPixel:function(t,e,r){n[e*i+t]=r},write:function(t){t.writeString("GIF87a"),t.writeShort(i),t.writeShort(r),t.writeByte(128),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(255),t.writeByte(255),t.writeByte(255),t.writeString(","),t.writeShort(0),t.writeShort(0),t.writeShort(i),t.writeShort(r),t.writeByte(0);var e=s(2);t.writeByte(2);for(var n=0;e.length-n>255;)t.writeByte(255),t.writeBytes(e,n,255),n+=255;t.writeByte(e.length-n),t.writeBytes(e,n,e.length-n),t.writeByte(0),t.writeString(";")}},s=function(t){for(var e=1<<t,i=1+(1<<t),r=t+1,o=a(),s=0;s<e;s+=1)o.add(String.fromCharCode(s));o.add(String.fromCharCode(e)),o.add(String.fromCharCode(i));var h,d,u,c=p(),l=(h=c,d=0,u=0,{write:function(t,e){if(t>>>e!=0)throw"length over";for(;d+e>=8;)h.writeByte(255&(t<<d|u)),e-=8-d,t>>>=8-d,u=0,d=0;u|=t<<d,d+=e},flush:function(){d>0&&h.writeByte(u)}});l.write(e,r);var g=0,f=String.fromCharCode(n[g]);for(g+=1;g<n.length;){var w=String.fromCharCode(n[g]);g+=1,o.contains(f+w)?f+=w:(l.write(o.indexOf(f),r),o.size()<4095&&(o.size()==1<<r&&(r+=1),o.add(f+w)),f=w)}return l.write(o.indexOf(f),r),l.write(i,r),l.flush(),c.toByteArray()},a=function(){var t={},e=0,i={add:function(r){if(i.contains(r))throw"dup key:"+r;t[r]=e,e+=1},size:function(){return e},indexOf:function(e){return t[e]},contains:function(e){return void 0!==t[e]}};return i};return o}(t,e),n=0;n<e;n+=1)for(var o=0;o<t;o+=1)r.setPixel(o,n,i(o,n));var s=p();r.write(s);for(var a=function(){var t=0,e=0,i=0,r="",n={},o=function(t){r+=String.fromCharCode(s(63&t))},s=function(t){if(t<0);else{if(t<26)return 65+t;if(t<52)return t-26+97;if(t<62)return t-52+48;if(62==t)return 43;if(63==t)return 47}throw"n:"+t};return n.writeByte=function(r){for(t=t<<8|255&r,e+=8,i+=1;e>=6;)o(t>>>e-6),e-=6},n.flush=function(){if(e>0&&(o(t<<6-e),t=0,e=0),i%3!=0)for(var n=3-i%3,s=0;s<n;s+=1)r+="="},n.toString=function(){return r},n}(),h=s.toByteArray(),d=0;d<h.length;d+=1)a.writeByte(h[d]);return a.flush(),"data:image/gif;base64,"+a};return t}();n.stringToBytesFuncs["UTF-8"]=function(t){return function(t){for(var e=[],i=0;i<t.length;i++){var r=t.charCodeAt(i);r<128?e.push(r):r<2048?e.push(192|r>>6,128|63&r):r<55296||r>=57344?e.push(224|r>>12,128|r>>6&63,128|63&r):(i++,r=65536+((1023&r)<<10|1023&t.charCodeAt(i)),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return e}(t)},void 0===(r="function"==typeof(i=function(){return n})?i.apply(e,[]):i)||(t.exports=r)}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};return(()=>{"use strict";i.d(r,{default:()=>$});const t=t=>!!t&&"object"==typeof t&&!Array.isArray(t);function e(i,...r){if(!r.length)return i;const n=r.shift();return void 0!==n&&t(i)&&t(n)?(i=Object.assign({},i),Object.keys(n).forEach(r=>{const o=i[r],s=n[r];Array.isArray(o)&&Array.isArray(s)?i[r]=s:t(o)&&t(s)?i[r]=e(Object.assign({},o),s):i[r]=s}),e(i,...r)):i}function n(t,e){const i=document.createElement("a");i.download=e,i.href=t,document.body.appendChild(i),i.click(),document.body.removeChild(i)}const o={L:.07,M:.15,Q:.25,H:.3};class s{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;switch(this._type){case"dots":n=this._drawDot;break;case"classy":n=this._drawClassy;break;case"classy-rounded":n=this._drawClassyRounded;break;case"rounded":n=this._drawRounded;break;case"extra-rounded":n=this._drawExtraRounded;break;default:n=this._drawSquare}n.call(this,{x:t,y:e,size:i,getNeighbor:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(i+e/2)),this._element.setAttribute("cy",String(r+e/2)),this._element.setAttribute("r",String(e/2))}}))}_basicSquare(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(i)),this._element.setAttribute("y",String(r)),this._element.setAttribute("width",String(e)),this._element.setAttribute("height",String(e))}}))}_basicSideRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h `+e/2+`a ${e/2} ${e/2}, 0, 0, 0, 0 ${-e}`)}}))}_basicCornerRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}v `+-e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2}`)}}))}_basicCornerExtraRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}a ${e} ${e}, 0, 0, 0, ${-e} ${-e}`)}}))}_basicCornersRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v `+e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${e/2} ${e/2}h `+e/2+"v "+-e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2}`)}}))}_drawDot({x:t,y:e,size:i}){this._basicDot({x:t,y:e,size:i,rotation:0})}_drawSquare({x:t,y:e,size:i}){this._basicSquare({x:t,y:e,size:i,rotation:0})}_drawRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,h=n+o+s+a;if(0!==h)if(h>2||n&&o||s&&a)this._basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===h){let r=0;return n&&s?r=Math.PI/2:s&&o?r=Math.PI:o&&a&&(r=-Math.PI/2),void this._basicCornerRounded({x:t,y:e,size:i,rotation:r})}if(1===h){let r=0;return s?r=Math.PI/2:o?r=Math.PI:a&&(r=-Math.PI/2),void this._basicSideRounded({x:t,y:e,size:i,rotation:r})}}else this._basicDot({x:t,y:e,size:i,rotation:0})}_drawExtraRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,h=n+o+s+a;if(0!==h)if(h>2||n&&o||s&&a)this._basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===h){let r=0;return n&&s?r=Math.PI/2:s&&o?r=Math.PI:o&&a&&(r=-Math.PI/2),void this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:r})}if(1===h){let r=0;return s?r=Math.PI/2:o?r=Math.PI:a&&(r=-Math.PI/2),void this._basicSideRounded({x:t,y:e,size:i,rotation:r})}}else this._basicDot({x:t,y:e,size:i,rotation:0})}_drawClassy({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+o+s+a?n||s?o||a?this._basicSquare({x:t,y:e,size:i,rotation:0}):this._basicCornerRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this._basicCornerRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this._basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}_drawClassyRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+o+s+a?n||s?o||a?this._basicSquare({x:t,y:e,size:i,rotation:0}):this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this._basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}}const a={dot:"dot",square:"square",extraRounded:"extra-rounded"},h=Object.values(a);class d{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;switch(this._type){case a.square:n=this._drawSquare;break;case a.extraRounded:n=this._drawExtraRounded;break;default:n=this._drawDot}n.call(this,{x:t,y:e,size:i,rotation:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i+e/2} ${r}a ${e/2} ${e/2} 0 1 0 0.1 0zm 0 ${n}a ${e/2-n} ${e/2-n} 0 1 1 -0.1 0Z`)}}))}_basicSquare(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}v `+-e+"z"+`M ${i+n} ${r+n}h `+(e-2*n)+"v "+(e-2*n)+"h "+(2*n-e)+"z")}}))}_basicExtraRounded(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i} ${r+2.5*n}v `+2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n}h `+2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*-n}v `+-2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n}h `+-2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n}`+`M ${i+2.5*n} ${r+n}h `+2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n}v `+2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*n}h `+-2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n}v `+-2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n}`)}}))}_drawDot({x:t,y:e,size:i,rotation:r}){this._basicDot({x:t,y:e,size:i,rotation:r})}_drawSquare({x:t,y:e,size:i,rotation:r}){this._basicSquare({x:t,y:e,size:i,rotation:r})}_drawExtraRounded({x:t,y:e,size:i,rotation:r}){this._basicExtraRounded({x:t,y:e,size:i,rotation:r})}}const u={dot:"dot",square:"square"},c=Object.values(u);class l{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;n=this._type===u.square?this._drawSquare:this._drawDot,n.call(this,{x:t,y:e,size:i,rotation:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(i+e/2)),this._element.setAttribute("cy",String(r+e/2)),this._element.setAttribute("r",String(e/2))}}))}_basicSquare(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(i)),this._element.setAttribute("y",String(r)),this._element.setAttribute("width",String(e)),this._element.setAttribute("height",String(e))}}))}_drawDot({x:t,y:e,size:i,rotation:r}){this._basicDot({x:t,y:e,size:i,rotation:r})}_drawSquare({x:t,y:e,size:i,rotation:r}){this._basicSquare({x:t,y:e,size:i,rotation:r})}}const g="circle",f=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],w=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];class p{constructor(t,e){this._roundSize=t=>this._options.dotsOptions.roundSize?Math.floor(t):t,this._window=e,this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("width",String(t.width)),this._element.setAttribute("height",String(t.height)),this._element.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),t.dotsOptions.roundSize||this._element.setAttribute("shape-rendering","crispEdges"),this._element.setAttribute("viewBox",`0 0 ${t.width} ${t.height}`),this._defs=this._window.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this._defs),this._imageUri=t.image,this._instanceId=p.instanceCount++,this._options=t}get width(){return this._options.width}get height(){return this._options.height}getElement(){return this._element}async drawQR(t){const e=t.getModuleCount(),i=Math.min(this._options.width,this._options.height)-2*this._options.margin,r=this._options.shape===g?i/Math.sqrt(2):i,n=this._roundSize(r/e);let s={hideXDots:0,hideYDots:0,width:0,height:0};if(this._qr=t,this._options.image){if(await this.loadImage(),!this._image)return;const{imageOptions:t,qrOptions:i}=this._options,r=t.imageSize*o[i.errorCorrectionLevel],a=Math.floor(r*e*e);s=function({originalHeight:t,originalWidth:e,maxHiddenDots:i,maxHiddenAxisDots:r,dotSize:n}){const o={x:0,y:0},s={x:0,y:0};if(t<=0||e<=0||i<=0||n<=0)return{height:0,width:0,hideYDots:0,hideXDots:0};const a=t/e;return o.x=Math.floor(Math.sqrt(i/a)),o.x<=0&&(o.x=1),r&&r<o.x&&(o.x=r),o.x%2==0&&o.x--,s.x=o.x*n,o.y=1+2*Math.ceil((o.x*a-1)/2),s.y=Math.round(s.x*a),(o.y*o.x>i||r&&r<o.y)&&(r&&r<o.y?(o.y=r,o.y%2==0&&o.x--):o.y-=2,s.y=o.y*n,o.x=1+2*Math.ceil((o.y/a-1)/2),s.x=Math.round(s.y/a)),{height:s.y,width:s.x,hideYDots:o.y,hideXDots:o.x}}({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:a,maxHiddenAxisDots:e-14,dotSize:n})}this.drawBackground(),this.drawDots((t,i)=>{var r,n,o,a,h,d;return!(this._options.imageOptions.hideBackgroundDots&&t>=(e-s.hideYDots)/2&&t<(e+s.hideYDots)/2&&i>=(e-s.hideXDots)/2&&i<(e+s.hideXDots)/2||(null===(r=f[t])||void 0===r?void 0:r[i])||(null===(n=f[t-e+7])||void 0===n?void 0:n[i])||(null===(o=f[t])||void 0===o?void 0:o[i-e+7])||(null===(a=w[t])||void 0===a?void 0:a[i])||(null===(h=w[t-e+7])||void 0===h?void 0:h[i])||(null===(d=w[t])||void 0===d?void 0:d[i-e+7]))}),this.drawCorners(),this._options.image&&await this.drawImage({width:s.width,height:s.height,count:e,dotSize:n})}drawBackground(){var t,e,i;const r=this._element,n=this._options;if(r){const r=null===(t=n.backgroundOptions)||void 0===t?void 0:t.gradient,o=null===(e=n.backgroundOptions)||void 0===e?void 0:e.color;let s=n.height,a=n.width;if(r||o){const t=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");this._backgroundClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._backgroundClipPath.setAttribute("id",`clip-path-background-color-${this._instanceId}`),this._defs.appendChild(this._backgroundClipPath),(null===(i=n.backgroundOptions)||void 0===i?void 0:i.round)&&(s=a=Math.min(n.width,n.height),t.setAttribute("rx",String(s/2*n.backgroundOptions.round))),t.setAttribute("x",String(this._roundSize((n.width-a)/2))),t.setAttribute("y",String(this._roundSize((n.height-s)/2))),t.setAttribute("width",String(a)),t.setAttribute("height",String(s)),this._backgroundClipPath.appendChild(t),this._createColor({options:r,color:o,additionalRotation:0,x:0,y:0,height:n.height,width:n.width,name:`background-color-${this._instanceId}`})}}}drawDots(t){var e,i;if(!this._qr)throw"QR code is not defined";const r=this._options,n=this._qr.getModuleCount();if(n>r.width||n>r.height)throw"The canvas is too small.";const o=Math.min(r.width,r.height)-2*r.margin,a=r.shape===g?o/Math.sqrt(2):o,h=this._roundSize(a/n),d=this._roundSize((r.width-n*h)/2),u=this._roundSize((r.height-n*h)/2),c=new s({svg:this._element,type:r.dotsOptions.type,window:this._window});this._dotsClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._dotsClipPath.setAttribute("id",`clip-path-dot-color-${this._instanceId}`),this._defs.appendChild(this._dotsClipPath),this._createColor({options:null===(e=r.dotsOptions)||void 0===e?void 0:e.gradient,color:r.dotsOptions.color,additionalRotation:0,x:0,y:0,height:r.height,width:r.width,name:`dot-color-${this._instanceId}`});for(let e=0;e<n;e++)for(let r=0;r<n;r++)t&&!t(e,r)||(null===(i=this._qr)||void 0===i?void 0:i.isDark(e,r))&&(c.draw(d+r*h,u+e*h,h,(i,o)=>!(r+i<0||e+o<0||r+i>=n||e+o>=n)&&!(t&&!t(e+o,r+i))&&!!this._qr&&this._qr.isDark(e+o,r+i)),c._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(c._element));if(r.shape===g){const t=this._roundSize((o/h-n)/2),e=n+2*t,i=d-t*h,r=u-t*h,s=[],a=this._roundSize(e/2);for(let i=0;i<e;i++){s[i]=[];for(let r=0;r<e;r++)i>=t-1&&i<=e-t&&r>=t-1&&r<=e-t||Math.sqrt((i-a)*(i-a)+(r-a)*(r-a))>a?s[i][r]=0:s[i][r]=this._qr.isDark(r-2*t<0?r:r>=n?r-2*t:r-t,i-2*t<0?i:i>=n?i-2*t:i-t)?1:0}for(let t=0;t<e;t++)for(let n=0;n<e;n++)s[t][n]&&(c.draw(i+n*h,r+t*h,h,(e,i)=>{var r;return!!(null===(r=s[t+i])||void 0===r?void 0:r[n+e])}),c._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(c._element))}}drawCorners(){if(!this._qr)throw"QR code is not defined";const t=this._element,e=this._options;if(!t)throw"Element code is not defined";const i=this._qr.getModuleCount(),r=Math.min(e.width,e.height)-2*e.margin,n=e.shape===g?r/Math.sqrt(2):r,o=this._roundSize(n/i),a=7*o,u=3*o,p=this._roundSize((e.width-i*o)/2),v=this._roundSize((e.height-i*o)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach(([t,r,n])=>{var g,_,m,b,y,x,S,C,A,M,$,O,D,k;const z=p+t*o*(i-7),B=v+r*o*(i-7);let P=this._dotsClipPath,I=this._dotsClipPath;if(((null===(g=e.cornersSquareOptions)||void 0===g?void 0:g.gradient)||(null===(_=e.cornersSquareOptions)||void 0===_?void 0:_.color))&&(P=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),P.setAttribute("id",`clip-path-corners-square-color-${t}-${r}-${this._instanceId}`),this._defs.appendChild(P),this._cornersSquareClipPath=this._cornersDotClipPath=I=P,this._createColor({options:null===(m=e.cornersSquareOptions)||void 0===m?void 0:m.gradient,color:null===(b=e.cornersSquareOptions)||void 0===b?void 0:b.color,additionalRotation:n,x:z,y:B,height:a,width:a,name:`corners-square-color-${t}-${r}-${this._instanceId}`})),(null===(y=e.cornersSquareOptions)||void 0===y?void 0:y.type)&&h.includes(e.cornersSquareOptions.type)){const t=new d({svg:this._element,type:e.cornersSquareOptions.type,window:this._window});t.draw(z,B,a,n),t._element&&P&&P.appendChild(t._element)}else{const t=new s({svg:this._element,type:(null===(x=e.cornersSquareOptions)||void 0===x?void 0:x.type)||e.dotsOptions.type,window:this._window});for(let e=0;e<f.length;e++)for(let i=0;i<f[e].length;i++)(null===(S=f[e])||void 0===S?void 0:S[i])&&(t.draw(z+i*o,B+e*o,o,(t,r)=>{var n;return!!(null===(n=f[e+r])||void 0===n?void 0:n[i+t])}),t._element&&P&&P.appendChild(t._element))}if(((null===(C=e.cornersDotOptions)||void 0===C?void 0:C.gradient)||(null===(A=e.cornersDotOptions)||void 0===A?void 0:A.color))&&(I=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),I.setAttribute("id",`clip-path-corners-dot-color-${t}-${r}-${this._instanceId}`),this._defs.appendChild(I),this._cornersDotClipPath=I,this._createColor({options:null===(M=e.cornersDotOptions)||void 0===M?void 0:M.gradient,color:null===($=e.cornersDotOptions)||void 0===$?void 0:$.color,additionalRotation:n,x:z+2*o,y:B+2*o,height:u,width:u,name:`corners-dot-color-${t}-${r}-${this._instanceId}`})),(null===(O=e.cornersDotOptions)||void 0===O?void 0:O.type)&&c.includes(e.cornersDotOptions.type)){const t=new l({svg:this._element,type:e.cornersDotOptions.type,window:this._window});t.draw(z+2*o,B+2*o,u,n),t._element&&I&&I.appendChild(t._element)}else{const t=new s({svg:this._element,type:(null===(D=e.cornersDotOptions)||void 0===D?void 0:D.type)||e.dotsOptions.type,window:this._window});for(let e=0;e<w.length;e++)for(let i=0;i<w[e].length;i++)(null===(k=w[e])||void 0===k?void 0:k[i])&&(t.draw(z+i*o,B+e*o,o,(t,r)=>{var n;return!!(null===(n=w[e+r])||void 0===n?void 0:n[i+t])}),t._element&&I&&I.appendChild(t._element))}})}loadImage(){return new Promise((t,e)=>{var i;const r=this._options;if(!r.image)return e("Image is not defined");if(null===(i=r.nodeCanvas)||void 0===i?void 0:i.loadImage)r.nodeCanvas.loadImage(r.image).then(e=>{var i,n;if(this._image=e,this._options.imageOptions.saveAsBlob){const t=null===(i=r.nodeCanvas)||void 0===i?void 0:i.createCanvas(this._image.width,this._image.height);null===(n=null==t?void 0:t.getContext("2d"))||void 0===n||n.drawImage(e,0,0),this._imageUri=null==t?void 0:t.toDataURL()}t()}).catch(e);else{const e=new this._window.Image;"string"==typeof r.imageOptions.crossOrigin&&(e.crossOrigin=r.imageOptions.crossOrigin),this._image=e,e.onload=async()=>{this._options.imageOptions.saveAsBlob&&(this._imageUri=await async function(t,e){return new Promise(i=>{const r=new e.XMLHttpRequest;r.onload=function(){const t=new e.FileReader;t.onloadend=function(){i(t.result)},t.readAsDataURL(r.response)},r.open("GET",t),r.responseType="blob",r.send()})}(r.image||"",this._window)),t()},e.src=r.image}})}async drawImage({width:t,height:e,count:i,dotSize:r}){const n=this._options,o=this._roundSize((n.width-i*r)/2),s=this._roundSize((n.height-i*r)/2),a=o+this._roundSize(n.imageOptions.margin+(i*r-t)/2),h=s+this._roundSize(n.imageOptions.margin+(i*r-e)/2),d=t-2*n.imageOptions.margin,u=e-2*n.imageOptions.margin,c=this._window.document.createElementNS("http://www.w3.org/2000/svg","image");c.setAttribute("href",this._imageUri||""),c.setAttribute("xlink:href",this._imageUri||""),c.setAttribute("x",String(a)),c.setAttribute("y",String(h)),c.setAttribute("width",`${d}px`),c.setAttribute("height",`${u}px`),this._element.appendChild(c)}_createColor({options:t,color:e,additionalRotation:i,x:r,y:n,height:o,width:s,name:a}){const h=s>o?s:o,d=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");if(d.setAttribute("x",String(r)),d.setAttribute("y",String(n)),d.setAttribute("height",String(o)),d.setAttribute("width",String(s)),d.setAttribute("clip-path",`url('#clip-path-${a}')`),t){let e;if("radial"===t.type)e=this._window.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),e.setAttribute("id",a),e.setAttribute("gradientUnits","userSpaceOnUse"),e.setAttribute("fx",String(r+s/2)),e.setAttribute("fy",String(n+o/2)),e.setAttribute("cx",String(r+s/2)),e.setAttribute("cy",String(n+o/2)),e.setAttribute("r",String(h/2));else{const h=((t.rotation||0)+i)%(2*Math.PI),d=(h+2*Math.PI)%(2*Math.PI);let u=r+s/2,c=n+o/2,l=r+s/2,g=n+o/2;d>=0&&d<=.25*Math.PI||d>1.75*Math.PI&&d<=2*Math.PI?(u-=s/2,c-=o/2*Math.tan(h),l+=s/2,g+=o/2*Math.tan(h)):d>.25*Math.PI&&d<=.75*Math.PI?(c-=o/2,u-=s/2/Math.tan(h),g+=o/2,l+=s/2/Math.tan(h)):d>.75*Math.PI&&d<=1.25*Math.PI?(u+=s/2,c+=o/2*Math.tan(h),l-=s/2,g-=o/2*Math.tan(h)):d>1.25*Math.PI&&d<=1.75*Math.PI&&(c+=o/2,u+=s/2/Math.tan(h),g-=o/2,l-=s/2/Math.tan(h)),e=this._window.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),e.setAttribute("id",a),e.setAttribute("gradientUnits","userSpaceOnUse"),e.setAttribute("x1",String(Math.round(u))),e.setAttribute("y1",String(Math.round(c))),e.setAttribute("x2",String(Math.round(l))),e.setAttribute("y2",String(Math.round(g)))}t.colorStops.forEach(({offset:t,color:i})=>{const r=this._window.document.createElementNS("http://www.w3.org/2000/svg","stop");r.setAttribute("offset",100*t+"%"),r.setAttribute("stop-color",i),e.appendChild(r)}),d.setAttribute("fill",`url('#${a}')`),this._defs.appendChild(e)}else e&&d.setAttribute("fill",e);this._element.appendChild(d)}}p.instanceCount=0;const v=p,_="canvas",m={};for(let t=0;t<=40;t++)m[t]=t;const b={type:_,shape:"square",width:300,height:300,data:"",margin:0,qrOptions:{typeNumber:m[0],mode:void 0,errorCorrectionLevel:"Q"},imageOptions:{saveAsBlob:!0,hideBackgroundDots:!0,imageSize:.4,crossOrigin:void 0,margin:0},dotsOptions:{type:"square",color:"#000",roundSize:!0},backgroundOptions:{round:0,color:"#fff"}};function y(t){const e=Object.assign({},t);if(!e.colorStops||!e.colorStops.length)throw"Field 'colorStops' is required in gradient";return e.rotation?e.rotation=Number(e.rotation):e.rotation=0,e.colorStops=e.colorStops.map(t=>Object.assign(Object.assign({},t),{offset:Number(t.offset)})),e}function x(t){const e=Object.assign({},t);return e.width=Number(e.width),e.height=Number(e.height),e.margin=Number(e.margin),e.imageOptions=Object.assign(Object.assign({},e.imageOptions),{hideBackgroundDots:Boolean(e.imageOptions.hideBackgroundDots),imageSize:Number(e.imageOptions.imageSize),margin:Number(e.imageOptions.margin)}),e.margin>Math.min(e.width,e.height)&&(e.margin=Math.min(e.width,e.height)),e.dotsOptions=Object.assign({},e.dotsOptions),e.dotsOptions.gradient&&(e.dotsOptions.gradient=y(e.dotsOptions.gradient)),e.cornersSquareOptions&&(e.cornersSquareOptions=Object.assign({},e.cornersSquareOptions),e.cornersSquareOptions.gradient&&(e.cornersSquareOptions.gradient=y(e.cornersSquareOptions.gradient))),e.cornersDotOptions&&(e.cornersDotOptions=Object.assign({},e.cornersDotOptions),e.cornersDotOptions.gradient&&(e.cornersDotOptions.gradient=y(e.cornersDotOptions.gradient))),e.backgroundOptions&&(e.backgroundOptions=Object.assign({},e.backgroundOptions),e.backgroundOptions.gradient&&(e.backgroundOptions.gradient=y(e.backgroundOptions.gradient))),e}var S=i(873),C=i.n(S);function A(t){if(!t)throw new Error("Extension must be defined");"."===t[0]&&(t=t.substring(1));const e={bmp:"image/bmp",gif:"image/gif",ico:"image/vnd.microsoft.icon",jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp",pdf:"application/pdf"}[t.toLowerCase()];if(!e)throw new Error(`Extension "${t}" is not supported`);return e}class M{constructor(t){(null==t?void 0:t.jsdom)?this._window=new t.jsdom("",{resources:"usable"}).window:this._window=window,this._options=t?x(e(b,t)):b,this.update()}static _clearContainer(t){t&&(t.innerHTML="")}_setupSvg(){if(!this._qr)return;const t=new v(this._options,this._window);this._svg=t.getElement(),this._svgDrawingPromise=t.drawQR(this._qr).then(()=>{var e;this._svg&&(null===(e=this._extension)||void 0===e||e.call(this,t.getElement(),this._options))})}_setupCanvas(){var t,e;this._qr&&((null===(t=this._options.nodeCanvas)||void 0===t?void 0:t.createCanvas)?(this._nodeCanvas=this._options.nodeCanvas.createCanvas(this._options.width,this._options.height),this._nodeCanvas.width=this._options.width,this._nodeCanvas.height=this._options.height):(this._domCanvas=document.createElement("canvas"),this._domCanvas.width=this._options.width,this._domCanvas.height=this._options.height),this._setupSvg(),this._canvasDrawingPromise=null===(e=this._svgDrawingPromise)||void 0===e?void 0:e.then(()=>{var t;if(!this._svg)return;const e=this._svg,i=(new this._window.XMLSerializer).serializeToString(e),r=btoa(i),n=`data:${A("svg")};base64,${r}`;if(null===(t=this._options.nodeCanvas)||void 0===t?void 0:t.loadImage)return this._options.nodeCanvas.loadImage(n).then(t=>{var e,i;t.width=this._options.width,t.height=this._options.height,null===(i=null===(e=this._nodeCanvas)||void 0===e?void 0:e.getContext("2d"))||void 0===i||i.drawImage(t,0,0)});{const t=new this._window.Image;return new Promise(e=>{t.onload=()=>{var i,r;null===(r=null===(i=this._domCanvas)||void 0===i?void 0:i.getContext("2d"))||void 0===r||r.drawImage(t,0,0),e()},t.src=n})}}))}async _getElement(t="png"){if(!this._qr)throw"QR code is empty";return"svg"===t.toLowerCase()?(this._svg&&this._svgDrawingPromise||this._setupSvg(),await this._svgDrawingPromise,this._svg):((this._domCanvas||this._nodeCanvas)&&this._canvasDrawingPromise||this._setupCanvas(),await this._canvasDrawingPromise,this._domCanvas||this._nodeCanvas)}update(t){M._clearContainer(this._container),this._options=t?x(e(this._options,t)):this._options,this._options.data&&(this._qr=C()(this._options.qrOptions.typeNumber,this._options.qrOptions.errorCorrectionLevel),this._qr.addData(this._options.data,this._options.qrOptions.mode||function(t){switch(!0){case/^[0-9]*$/.test(t):return"Numeric";case/^[0-9A-Z $%*+\-./:]*$/.test(t):return"Alphanumeric";default:return"Byte"}}(this._options.data)),this._qr.make(),this._options.type===_?this._setupCanvas():this._setupSvg(),this.append(this._container))}append(t){if(t){if("function"!=typeof t.appendChild)throw"Container should be a single DOM node";this._options.type===_?this._domCanvas&&t.appendChild(this._domCanvas):this._svg&&t.appendChild(this._svg),this._container=t}}applyExtension(t){if(!t)throw"Extension function should be defined.";this._extension=t,this.update()}deleteExtension(){this._extension=void 0,this.update()}async getRawData(t="png"){if(!this._qr)throw"QR code is empty";const e=await this._getElement(t),i=A(t);if(!e)return null;if("svg"===t.toLowerCase()){const t=`<?xml version="1.0" standalone="no"?>\r\n${(new this._window.XMLSerializer).serializeToString(e)}`;return"undefined"==typeof Blob||this._options.jsdom?Buffer.from(t):new Blob([t],{type:i})}return new Promise(t=>{const r=e;if("toBuffer"in r)if("image/png"===i)t(r.toBuffer(i));else if("image/jpeg"===i)t(r.toBuffer(i));else{if("application/pdf"!==i)throw Error("Unsupported extension");t(r.toBuffer(i))}else"toBlob"in r&&r.toBlob(t,i,1)})}async download(t){if(!this._qr)throw"QR code is empty";if("undefined"==typeof Blob)throw"Cannot download in Node.js, call getRawData instead.";let e="png",i="qr";"string"==typeof t?(e=t,console.warn("Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument")):"object"==typeof t&&null!==t&&(t.name&&(i=t.name),t.extension&&(e=t.extension));const r=await this._getElement(e);if(r)if("svg"===e.toLowerCase()){let t=(new XMLSerializer).serializeToString(r);t='<?xml version="1.0" standalone="no"?>\r\n'+t,n(`data:${A(e)};charset=utf-8,${encodeURIComponent(t)}`,`${i}.svg`)}else n(r.toDataURL(A(e)),`${i}.${e}`)}}const $=M})(),r.default})())}).call(this)}).call(this,require("buffer").Buffer)},{buffer:142}]},{},[17])(17)});
1
+ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.PlattarARAdapter=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ConfiguratorAR=void 0;const plattar_analytics_1=require("@plattar/plattar-analytics");const plattar_api_1=require("@plattar/plattar-api");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class ConfiguratorAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.state){throw new Error("ConfiguratorAR.constructor(state) - state must be defined")}this._options=options;this._ar=null}_SetupAnalytics(){const scene=this._options.state.scene;let analytics=null;if(scene){analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","scene-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",scene.id);analytics.data.push("sceneTitle",scene.attributes.title);const application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:application.attributes.title,subtitle:scene.attributes.title,button:"Visit"}}}}}async _Compose(output){const type=output==="glb"?"viewer":"reality";const url=`https://xrutils.plattar.com/v3/scene/${this._options.state.scene.id}/${type}`;try{const response=await fetch(url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{attributes:this._options.state.state.sceneGraph}})});if(!response.ok){throw new Error(`ConfiguratorAR - Fetching Existing Graph Error - network response was not ok ${response.status}`)}const data=await response.json();return data.data.attributes.url}catch(error){throw new Error(`ConfiguratorAR - Fetching Existing Graph Error - there was a request error to ${url}, error was ${error.message}`)}}async init(){if(!util_1.Util.canAugment()){throw new Error("ConfiguratorAR.init() - cannot proceed as AR not available in context")}const scene=this._options.state.scene;this._SetupAnalytics();const sceneOpt=scene.attributes.custom_json||{};if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(sceneOpt.anchor==="face"){if(util_1.Util.canRealityViewer()){const modelUrl=await this._Compose("vto");this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return this}else{throw new Error("ConfiguratorAR.init() - cannot proceed as VTO AR requires Reality Viewer support")}}if(util_1.Util.canQuicklook()){const modelUrl=await this._Compose("usdz");this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return this}throw new Error("ConfiguratorAR.init() - cannot proceed as IOS device does not support AR Mode")}if(util_1.Util.canSceneViewer()){const modelUrl=await this._Compose("glb");const arviewer=new scene_viewer_1.default;arviewer.modelUrl=modelUrl;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}this._ar=arviewer;return this}throw new Error("ConfiguratorAR.init() - could not initialise AR correctly, check values")}start(){if(!this._ar){throw new Error("SceneAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Scene Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.ConfiguratorAR=ConfiguratorAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],2:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.LauncherAR=void 0;class LauncherAR{constructor(){this._opt={anchor:"horizontal_vertical",banner:null}}async launch(){const value=await this.init();return value.start()}get options(){return this._opt}}exports.LauncherAR=LauncherAR},{}],3:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ModelAR=void 0;const plattar_api_1=require("@plattar/plattar-api");const plattar_analytics_1=require("@plattar/plattar-analytics");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class ModelAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.modelID){throw new Error("ModelAR.constructor(modelID) - modelID must be defined")}this._options=options;this._ar=null}get modelID(){return this._options.modelID}_SetupAnalytics(model){let analytics=null;const project=model.relationships.find(plattar_api_1.Project);if(project){analytics=new plattar_analytics_1.Analytics(project.id);analytics.origin=plattar_api_1.Server.location().type;analytics.data.push("type","model-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("applicationId",project.id);analytics.data.push("applicationTitle",project.attributes.title);analytics.data.push("modelId",model.id);analytics.data.push("modelTitle",model.attributes.title);this._analytics=analytics;if(this._options.useARBanner){this.options.banner={title:project.attributes.title,subtitle:model.attributes.title,button:"Visit"}}}}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("ModelAR.init() - cannot proceed as AR not available in context"))}const model=new plattar_api_1.FileModel(this.modelID);model.include(plattar_api_1.Project);model.get().then(model=>{this._SetupAnalytics(model);if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(model.attributes.reality_filename&&util_1.Util.canRealityViewer()){this._ar=new reality_viewer_1.default;this._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.reality_filename;this._ar.banner=this.options.banner;return accept(this)}if(model.attributes.usdz_filename&&util_1.Util.canQuicklook()){this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.usdz_filename;this._ar.banner=this.options.banner;return accept(this)}return reject(new Error("ModelAR.init() - cannot proceed as ModelFile does not have a defined .usdz or .reality file"))}if(util_1.Util.canSceneViewer()){const arviewer=new scene_viewer_1.default;arviewer.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.original_filename;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;this._ar=arviewer;return accept(this)}return reject(new Error("ModelAR.init() - could not initialise AR correctly, check values"))}).catch(reject)})}start(){if(!this._ar){throw new Error("ModelAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Model Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.ModelAR=ModelAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/reality-viewer":23,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],4:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ProductAR=void 0;const plattar_api_1=require("@plattar/plattar-api");const plattar_analytics_1=require("@plattar/plattar-analytics");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class ProductAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.productID){throw new Error("ProductAR.constructor(productID, variationID) - productID must be defined")}this._options=options;this._ar=null}get productID(){return this._options.productID}get variationID(){return this._options.variationID}get variationSKU(){return this._options.variationSKU}_SetupAnalytics(product,variation){let analytics=null;const scene=product.relationships.find(plattar_api_1.Scene);if(scene){analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","product-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",scene.id);analytics.data.push("sceneTitle",scene.attributes.title);const application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:product.attributes.title,subtitle:variation.attributes.title,button:"Visit"}}}}if(analytics){analytics.data.push("productId",product.id);analytics.data.push("productTitle",product.attributes.title);analytics.data.push("productSKU",product.attributes.sku);analytics.data.push("variationId",variation.id);analytics.data.push("variationTitle",variation.attributes.title);analytics.data.push("variationSKU",variation.attributes.sku)}}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("ProductAR.init() - cannot proceed as AR not available in context"))}const product=new plattar_api_1.Product(this.productID);product.include(plattar_api_1.ProductVariation);product.include(plattar_api_1.ProductVariation.include(plattar_api_1.FileModel));product.include(plattar_api_1.Scene);product.include(plattar_api_1.Scene.include(plattar_api_1.Project));product.get().then(product=>{const variationID=this.variationID?this.variationID==="default"?product.attributes.product_variation_id:this.variationID:null;const variationSKU=this.variationSKU;if(!variationID&&!variationSKU){return reject(new Error("ProductAR.init() - cannot proceed as variation-id or variation-sku was not set correctly"))}let variation=undefined;if(variationID){variation=product.relationships.find(plattar_api_1.ProductVariation,variationID)}if(!variation&&variationSKU){const variations=product.relationships.filter(plattar_api_1.ProductVariation);if(variations){variation=variations.find(element=>{return element.attributes.sku===variationSKU})}}if(!variation){return reject(new Error("ProductAR.init() - cannot proceed as variation with id "+variationID+" or sku "+variationSKU+" cannot be found"))}const modelID=variation.attributes.file_model_id;if(!modelID){return reject(new Error("ProductAR.init() - cannot proceed as variation does not have a defined file"))}const model=variation.relationships.find(plattar_api_1.FileModel,modelID);if(!model){return reject(new Error("ProductAR.init() - cannot proceed as ModelFile for selected variation is corrupt"))}this._SetupAnalytics(product,variation);if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(model.attributes.reality_filename&&util_1.Util.canRealityViewer()){this._ar=new reality_viewer_1.default;this._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.reality_filename;this._ar.banner=this.options.banner;return accept(this)}if(model.attributes.usdz_filename&&util_1.Util.canQuicklook()){this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.usdz_filename;this._ar.banner=this.options.banner;return accept(this)}return reject(new Error("ProductAR.init() - cannot proceed as ModelFile does not have a defined .usdz or .reality file"))}if(util_1.Util.canSceneViewer()){const arviewer=new scene_viewer_1.default;arviewer.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.original_filename;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;const scene=product.relationships.find(plattar_api_1.Scene);if(scene){const sceneOpt=scene.attributes.custom_json||{};if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}}this._ar=arviewer;return accept(this)}return reject(new Error("ProductAR.init() - could not initialise AR correctly, check values"))}).catch(reject)})}start(){if(!this._ar){throw new Error("ProductAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.ProductAR=ProductAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/reality-viewer":23,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],5:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.RawAR=void 0;const plattar_analytics_1=require("@plattar/plattar-analytics");const plattar_api_1=require("@plattar/plattar-api");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class RawAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.modelLocation){throw new Error("RawAR.constructor(modelLocation) - modelLocation must be defined")}const lowerLoc=options.modelLocation.toLowerCase();if(lowerLoc.endsWith("usdz")||lowerLoc.endsWith("glb")||lowerLoc.endsWith("gltf")||lowerLoc.endsWith("reality")){this._options=options;this._ar=null}else{throw new Error("RawAR.constructor(modelLocation) - modelLocation must be one of gltf, glb, usdz or reality")}}get modelLocation(){return this._options.modelLocation}_SetupAnalytics(){return new Promise((accept,_reject)=>{const sceneID=this._options.sceneID;if(!sceneID){return accept()}const scene=new plattar_api_1.Scene(sceneID);scene.include(plattar_api_1.Project);scene.get().then(scene=>{const analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","scene-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",scene.id);analytics.data.push("sceneTitle",scene.attributes.title);const application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:application.attributes.title,subtitle:scene.attributes.title,button:"Visit"}}}accept()}).catch(_err=>{accept()})})}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("RawAR.init() - cannot proceed as AR not available in context"))}this._SetupAnalytics().then(()=>{const modelLocation=this._options.modelLocation;const lowerLoc=modelLocation.toLowerCase();if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(lowerLoc.endsWith("reality")&&util_1.Util.canRealityViewer()){this._ar=new reality_viewer_1.default;this._ar.modelUrl=modelLocation;this._ar.banner=this.options.banner;return accept(this)}if(lowerLoc.endsWith("usdz")&&util_1.Util.canQuicklook()){this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelLocation;return accept(this)}return reject(new Error("RawAR.init() - cannot proceed as model is not a .usdz or .reality file"))}if(util_1.Util.canSceneViewer()){if(lowerLoc.endsWith("glb")||lowerLoc.endsWith("gltf")){const arviewer=new scene_viewer_1.default;arviewer.modelUrl=modelLocation;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;this._ar=arviewer;return accept(this)}return reject(new Error("RawAR.init() - cannot proceed as model is not a .glb or .gltf file"))}return reject(new Error("RawAR.init() - could not initialise AR correctly, check values"))})})}start(){if(!this._ar){throw new Error("RawAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Scene Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.RawAR=RawAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/reality-viewer":23,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],6:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.SceneAR=void 0;const plattar_analytics_1=require("@plattar/plattar-analytics");const plattar_api_1=require("@plattar/plattar-api");const plattar_services_1=require("@plattar/plattar-services");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class SceneAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;if(!options.sceneID){throw new Error("SceneAR.constructor(sceneID) - sceneID must be defined")}this._options=options;this._ar=null}get sceneID(){return this._options.sceneID}_SetupAnalytics(scene){let analytics=null;if(scene){analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","scene-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",scene.id);analytics.data.push("sceneTitle",scene.attributes.title);const application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:application.attributes.title,subtitle:scene.attributes.title,button:"Visit"}}}}}_ComposeScene(scene,output){return new Promise((accept,reject)=>{const sceneProducts=scene.relationships.filter(plattar_api_1.SceneProduct);const sceneModels=scene.relationships.filter(plattar_api_1.SceneModel);if(sceneProducts.length+sceneModels.length<=0){return reject(new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain AR components"))}const configurator=new plattar_services_1.Configurator;configurator.server=plattar_api_1.Server.location().type;configurator.output=output;let totalARObjectCount=0;sceneProducts.forEach(sceneProduct=>{const product=sceneProduct.relationships.find(plattar_api_1.Product);const selection=this._options.variationSelection;if(sceneProduct.attributes.include_in_augment){if(product&&product.id===selection.productID&&selection.variationID){configurator.addSceneProduct(sceneProduct.id,selection.variationID);totalARObjectCount++}else if(product){if(sceneProduct.id===selection.sceneProductID&&selection.variationID){configurator.addSceneProduct(sceneProduct.id,selection.variationID);totalARObjectCount++}else if(product.attributes.product_variation_id){configurator.addSceneProduct(sceneProduct.id,product.attributes.product_variation_id);totalARObjectCount++}}}});sceneModels.forEach(sceneModel=>{if(sceneModel.attributes.include_in_augment){configurator.addModel(sceneModel.id);totalARObjectCount++}});if(totalARObjectCount<=0){return reject(new Error("SceneAR.ComposeScene() - cannot proceed as scene does not contain any enabled AR components"))}return configurator.get().then(result=>{accept(result.filename)}).catch(reject)})}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("SceneAR.init() - cannot proceed as AR not available in context"))}const scene=new plattar_api_1.Scene(this.sceneID);scene.include(plattar_api_1.Project);scene.include(plattar_api_1.SceneProduct);scene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product));scene.include(plattar_api_1.SceneModel);scene.get().then(scene=>{this._SetupAnalytics(scene);const sceneOpt=scene.attributes.custom_json||{};if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(sceneOpt.anchor==="face"){if(util_1.Util.canRealityViewer()){return this._ComposeScene(scene,"vto").then(modelUrl=>{this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return accept(this)}).catch(reject)}else{return reject(new Error("SceneAR.init() - cannot proceed as VTO AR requires Reality Viewer support"))}}if(util_1.Util.canQuicklook()){return this._ComposeScene(scene,"usdz").then(modelUrl=>{this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return accept(this)}).catch(reject)}return reject(new Error("SceneAR.init() - cannot proceed as IOS device does not support AR Mode"))}if(util_1.Util.canSceneViewer()){return this._ComposeScene(scene,"glb").then(modelUrl=>{const arviewer=new scene_viewer_1.default;arviewer.modelUrl=modelUrl;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}this._ar=arviewer;return accept(this)}).catch(reject)}return reject(new Error("SceneAR.init() - could not initialise AR correctly, check values"))}).catch(reject)})}start(){if(!this._ar){throw new Error("SceneAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Scene Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.SceneAR=SceneAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48,"@plattar/plattar-services":122}],7:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.SceneGraphAR=void 0;const plattar_analytics_1=require("@plattar/plattar-analytics");const plattar_api_1=require("@plattar/plattar-api");const util_1=require("../util/util");const quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));const scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));const launcher_ar_1=require("./launcher-ar");const version_1=__importDefault(require("../version"));class SceneGraphAR extends launcher_ar_1.LauncherAR{constructor(options){super();this._analytics=null;this._options=options;this._ar=null}async _SetupAnalytics(){const scene=new plattar_api_1.Scene(this._options.sceneID);scene.include(plattar_api_1.Project);const fetchedScene=await scene.get();let analytics=null;analytics=new plattar_analytics_1.Analytics(fetchedScene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;this._analytics=analytics;analytics.data.push("type","scene-graph-ar");analytics.data.push("sdkVersion",version_1.default);analytics.data.push("sceneId",fetchedScene.id);analytics.data.push("sceneTitle",fetchedScene.attributes.title);const application=fetchedScene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(this._options.useARBanner){this.options.banner={title:application.attributes.title,subtitle:fetchedScene.attributes.title,button:"Visit"}}}return fetchedScene}async _Compose(output){const type=output==="glb"?"viewer":"reality";const url=`https://xrutils.plattar.com/v3/scene/${this._options.sceneID}/${type}/${this._options.id}`;try{const response=await fetch(url,{method:"GET",headers:{"Content-Type":"application/json"}});if(!response.ok){throw new Error(`ARAdapter - Fetching Existing Graph Error - network response was not ok ${response.status}`)}const data=await response.json();return data.data.attributes.url}catch(error){throw new Error(`ARAdapter - Fetching Existing Graph Error - there was a request error to ${url}, error was ${error.message}`)}}async init(){if(!util_1.Util.canAugment()){throw new Error("SceneGraphAR.init() - cannot proceed as AR not available in context")}const scene=await this._SetupAnalytics();const sceneOpt=scene.attributes.custom_json||{};if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(sceneOpt.anchor==="face"){if(util_1.Util.canRealityViewer()){const modelUrl=await this._Compose("vto");this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return this}else{throw new Error("SceneGraphAR.init() - cannot proceed as VTO AR requires Reality Viewer support")}}if(util_1.Util.canQuicklook()){const modelUrl=await this._Compose("usdz");this._ar=new quicklook_viewer_1.default;this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return this}throw new Error("SceneGraphAR.init() - cannot proceed as IOS device does not support AR Mode")}if(util_1.Util.canSceneViewer()){const modelUrl=await this._Compose("glb");const arviewer=new scene_viewer_1.default;arviewer.modelUrl=modelUrl;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}this._ar=arviewer;return this}throw new Error("SceneGraphAR.init() - could not initialise AR correctly, check values")}start(){if(!this._ar){throw new Error("SceneGraphAR.start() - cannot proceed as AR instance is null")}const analytics=this._analytics;if(analytics){analytics.data.push("device",this._ar.device);analytics.data.push("eventCategory",this._ar.nodeType);analytics.data.push("eventAction","Start Scene Augment");analytics.write();analytics.startRecordEngagement()}this._ar.start()}canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}exports.SceneGraphAR=SceneGraphAR},{"../util/util":19,"../version":20,"../viewers/quicklook-viewer":22,"../viewers/scene-viewer":24,"./launcher-ar":2,"@plattar/plattar-analytics":44,"@plattar/plattar-api":48}],8:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SceneProductAR=void 0;const product_ar_1=require("./product-ar");const plattar_api_1=require("@plattar/plattar-api");const util_1=require("../util/util");class SceneProductAR extends product_ar_1.ProductAR{constructor(options){super(options);this._attachedProductID=null;if(!options.productID){throw new Error("SceneProductAR.constructor(sceneProductID, variationID) - sceneProductID must be defined")}this._sceneProductID=options.productID}get sceneProductID(){return this._sceneProductID}get productID(){if(!this._attachedProductID){throw new Error("SceneProductAR.productID() - product id was not defined, did you call init()?")}return this._attachedProductID}init(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("SceneProductAR.init() - cannot proceed as AR not available in context"))}const sceneProduct=new plattar_api_1.SceneProduct(this.sceneProductID);sceneProduct.get().then(sceneProduct=>{const productID=sceneProduct.attributes.product_id;if(!productID){return reject("SceneProductAR.init() - Scene Product does not have an attached Product instance")}this._attachedProductID=productID;return super.init().then(accept).catch(reject)}).catch(reject)})}}exports.SceneProductAR=SceneProductAR},{"../util/util":19,"./product-ar":4,"@plattar/plattar-api":48}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ConfiguratorController=void 0;const plattar_api_1=require("@plattar/plattar-api");const scene_product_ar_1=require("../../ar/scene-product-ar");const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");const configurator_ar_1=require("../../ar/configurator-ar");const scene_graph_ar_1=require("../../ar/scene-graph-ar");class ConfiguratorController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.Renderer){const viewer=this.element;if(viewer){if(attributeName==="variation-id"){const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];if(variationIDsList.length>0){await viewer.messenger.selectVariationID(variationIDsList)}}if(attributeName==="variation-sku"){const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];if(variationSKUList.length>0){await viewer.messenger.selectVariationSKU(variationSKUList)}}}return}if(state===plattar_controller_1.ControllerState.QRCode){if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}this.startQRCode(this._prevQROpt);return}}async startARQRCode(options){try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.startARQRCode(options)}return Promise.reject(new Error("ConfiguratorController.startARQRCode() - legacy product transition failed"))}}catch(_err){}return super.startARQRCode(options)}async startViewerQRCode(options){const opt=this._GetDefaultQROptions(options);if(!opt.detached){this.removeRenderer()}const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("ConfiguratorController.startViewerQRCode() - minimum required attributes not set, use scene-id as a minimum")}let configState=null;try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.startViewerQRCode(options)}return Promise.reject(new Error("ConfiguratorController.startViewerQRCode() - legacy product transition failed"))}configState=dState.state.encode()}catch(_err){configState=null}const viewer=document.createElement("plattar-qrcode");if(!opt.detached){this._element=viewer}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");let dst=plattar_api_1.Server.location().base+"renderer/configurator.html?scene_id="+sceneID;const showAR=this.getAttribute("show-ar");const showUI=this.getAttribute("show-ui");const showBanner=this.getAttribute("show-ar-banner");const sceneGraphID=this.getAttribute("scene-graph-id");if(showUI&&showUI==="true"){dst=plattar_api_1.Server.location().base+"configurator/dist/index.html?scene_id="+sceneID}if(configState){dst+="&config_state="+configState}if(showAR){dst+="&show_ar="+showAR}if(showBanner){dst+="&show_ar_banner="+showBanner}if(sceneGraphID){dst+="&scene_graph_id="+sceneGraphID}viewer.setAttribute("url",opt.url||dst);this._prevQROpt=opt;if(!opt.detached){this._state=plattar_controller_1.ControllerState.QRCode;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return new Promise((accept,reject)=>{return accept(viewer)})}async startRenderer(){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("ConfiguratorController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}let configState=null;this._state=plattar_controller_1.ControllerState.Renderer;try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.startRenderer()}return Promise.reject(new Error("ConfiguratorController.startRenderer() - legacy product transition failed"))}configState=dState}catch(_err){configState=null}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-configurator");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);const showAR=this.getAttribute("show-ar");const showUI=this.getAttribute("show-ui");if(configState){const encodedState=configState.state.encode();if(encodedState.length<6e3){viewer.setAttribute("config-state",encodedState)}}if(showAR){viewer.setAttribute("show-ar",showAR)}if(showUI){viewer.setAttribute("show-ui",showUI)}return new Promise((accept,reject)=>{this.append(viewer);if(configState){this.setupMessengerObservers(viewer,configState)}return accept(viewer)})}async initAR(){if(!util_1.Util.canAugment()){throw new Error("ConfiguratorController.initAR() - cannot proceed as AR not available in context")}try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.initAR()}return Promise.reject(new Error("ConfiguratorController.initAR() - legacy product transition failed"))}}catch(_err){}const arMode=this.getAttribute("ar-mode")||"generated";switch(arMode.toLowerCase()){case"inherited":return this._InitARInherited();case"generated":default:return this._InitARGenerated()}}async _InitARInherited(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("ConfiguratorController.initAR() - inherited AR minimum required attributes not set, use scene-id as a minimum")}const state=(await this.getConfiguratorState()).state;const first=state.firstActiveOfType("sceneproduct");if(first){const sceneProductAR=new scene_product_ar_1.SceneProductAR({productID:first.scene_product_id,variationID:first.product_variation_id,variationSKU:null,useARBanner:this.getBooleanAttribute("show-ar-banner")});return sceneProductAR.init()}throw new Error("ConfiguratorController.initAR() - invalid decoded config-state does not have any product states")}async _InitARGenerated(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.initAR() - generated AR minimum required attributes not set, use scene-id as a minimum")}const graphID=this.getAttribute("scene-graph-id");if(graphID){const configAR=new scene_graph_ar_1.SceneGraphAR({useARBanner:this.getBooleanAttribute("show-ar-banner"),id:graphID,sceneID:sceneID});return configAR.init()}const configAR=new configurator_ar_1.ConfiguratorAR({state:await this.getConfiguratorState(),useARBanner:this.getBooleanAttribute("show-ar-banner")});return configAR.init()}get element(){return this._element}}exports.ConfiguratorController=ConfiguratorController},{"../../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){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.GalleryController=void 0;const plattar_api_1=require("@plattar/plattar-api");const plattar_controller_1=require("./plattar-controller");class GalleryController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.QRCode){if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}this.startQRCode(this._prevQROpt);return}}async startViewerQRCode(options){const opt=this._GetDefaultQROptions(options);if(!opt.detached){this.removeRenderer()}const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("GalleryController.startViewerQRCode() - minimum required attributes not set, use scene-id as a minimum")}const viewer=document.createElement("plattar-qrcode");if(!opt.detached){this._element=viewer}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const dst=plattar_api_1.Server.location().base+"renderer/gallery.html?scene_id="+sceneID;viewer.setAttribute("url",opt.url||dst);this._prevQROpt=opt;if(!opt.detached){this._state=plattar_controller_1.ControllerState.QRCode;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return new Promise((accept,reject)=>{return accept(viewer)})}async startRenderer(){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("GalleryController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}this._state=plattar_controller_1.ControllerState.Renderer;const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-gallery");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);return new Promise((accept,reject)=>{this.append(viewer);return accept(viewer)})}async initAR(){throw new Error("GalleryController.initAR() - cannot proceed as AR not available in gallery context")}get element(){return this._element}}exports.GalleryController=GalleryController},{"./plattar-controller":12,"@plattar/plattar-api":48}],11:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.LauncherController=void 0;const scene_product_ar_1=require("../../ar/scene-product-ar");const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");const configurator_ar_1=require("../../ar/configurator-ar");const scene_graph_ar_1=require("../../ar/scene-graph-ar");class LauncherController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}if(state===plattar_controller_1.ControllerState.QRCode){this.startQRCode(this._prevQROpt);return}}async startARQRCode(options){try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.startARQRCode(options)}return Promise.reject(new Error("LauncherController.startARQRCode() - legacy product transition failed"))}}catch(_err){}return super.startARQRCode(options)}async startViewerQRCode(options){return this.startARQRCode(options)}async startRenderer(){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("LauncherController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}const configState=await this.getConfiguratorState();this._state=plattar_controller_1.ControllerState.Renderer;const qrOptions=btoa(JSON.stringify(this._GetDefaultQROptions()));const embedType=this.getAttribute("embed-type");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const arMode=this.getAttribute("ar-mode");const showBanner=this.getAttribute("show-ar-banner");const sceneGraphID=this.getAttribute("scene-graph-id");const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-launcher");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);viewer.setAttribute("qr-options",qrOptions);if(embedType){viewer.setAttribute("embed-type",embedType)}if(productID){viewer.setAttribute("product-id",productID)}if(sceneProductID){viewer.setAttribute("scene-product-id",sceneProductID)}if(variationID){viewer.setAttribute("variation-id",variationID)}if(variationSKU){viewer.setAttribute("variation-sku",variationSKU)}if(arMode){viewer.setAttribute("ar-mode",arMode)}if(showBanner){viewer.setAttribute("show-ar-banner",showBanner)}if(sceneGraphID){viewer.setAttribute("scene-graph-id",sceneGraphID)}else{try{const sceneGraphID=await(await this.getConfiguratorState()).state.encodeSceneGraphID();viewer.setAttribute("scene-graph-id",sceneGraphID)}catch(_err){console.error(_err)}}return new Promise((accept,reject)=>{this.append(viewer);if(configState){this.setupMessengerObservers(viewer,configState)}return accept(viewer)})}async initAR(){if(!util_1.Util.canAugment()){throw new Error("LauncherController.initAR() - cannot proceed as AR not available in context")}try{const dState=await this.getConfiguratorState();const product=dState.state.firstOfType("product");if(product){this.parent.lockObserver();this.parent.destroy();this.setAttribute("product-id",product.scene_product_id);this.removeAttribute("scene-id");this.parent.unlockObserver();const controller=this.parent.create();if(controller){return controller.initAR()}return Promise.reject(new Error("LauncherController.initAR() - legacy product transition failed"))}}catch(_err){}const arMode=this.getAttribute("ar-mode")||"generated";switch(arMode.toLowerCase()){case"inherited":return this._InitARInherited();case"generated":default:return this._InitARGenerated()}}async _InitARInherited(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("LauncherController.initAR() - inherited AR minimum required attributes not set, use scene-id as a minimum")}const state=(await this.getConfiguratorState()).state;const first=state.firstActiveOfType("sceneproduct");if(first){const sceneProductAR=new scene_product_ar_1.SceneProductAR({productID:first.scene_product_id,variationID:first.product_variation_id,variationSKU:null,useARBanner:this.getBooleanAttribute("show-ar-banner")});return sceneProductAR.init()}throw new Error("LauncherController.initAR() - invalid decoded config-state does not have any product states")}async _InitARGenerated(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("LauncherController.initAR() - generated AR minimum required attributes not set, use scene-id as a minimum")}const graphID=this.getAttribute("scene-graph-id");if(graphID){const configAR=new scene_graph_ar_1.SceneGraphAR({useARBanner:this.getBooleanAttribute("show-ar-banner"),id:graphID,sceneID:sceneID});return configAR.init()}const configAR=new configurator_ar_1.ConfiguratorAR({state:await this.getConfiguratorState(),useARBanner:this.getBooleanAttribute("show-ar-banner")});return configAR.init()}get element(){return this._element}}exports.LauncherController=LauncherController},{"../../ar/configurator-ar":1,"../../ar/scene-graph-ar":7,"../../ar/scene-product-ar":8,"../../util/util":19,"./plattar-controller":12}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.PlattarController=exports.ControllerState=void 0;const plattar_api_1=require("@plattar/plattar-api");const configurator_state_1=require("../../util/configurator-state");var ControllerState;(function(ControllerState){ControllerState[ControllerState["None"]=0]="None";ControllerState[ControllerState["Renderer"]=1]="Renderer";ControllerState[ControllerState["QRCode"]=2]="QRCode"})(ControllerState||(exports.ControllerState=ControllerState={}));class PlattarController{_GetDefaultQROptions(opt=null){const options=opt??{};return{color:options.color??(this.getAttribute("qr-color")||"#101721"),qrType:options.qrType??(this.getAttribute("qr-style")||"default"),shorten:options.shorten??(this.getBooleanAttribute("qr-shorten")||true),margin:options.margin??0,detached:options.detached??(this.getBooleanAttribute("qr-detached")||false),url:options.url??null}}constructor(parent){this._state=ControllerState.None;this._element=null;this._prevQROpt=null;this._selectVariationObserver=null;this._selectVariationIDObserver=null;this._selectVariationSKUObserver=null;this._parent=parent}async createConfiguratorState(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("PlattarController.createConfiguratorState() - cannot create as required attribute scene-id is not defined")}const configState=this.getAttribute("config-state");const variationIDs=this.getAttribute("variation-id");const variationSKUs=this.getAttribute("variation-sku");const decodedState=configState?await configurator_state_1.ConfiguratorState.decodeState(sceneID,configState):await configurator_state_1.ConfiguratorState.decodeScene(sceneID);const variationIDList=variationIDs?variationIDs.split(","):[];const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationIDList.forEach(variationID=>{decodedState.state.setVariationID(variationID)});variationSKUList.forEach(variationSKU=>{decodedState.state.setVariationSKU(variationSKU)});return decodedState}setupMessengerObservers(viewer,configState){this._selectVariationObserver=viewer.messengerInstance.observer.subscribe("selectVariation",cd=>{if(cd.type==="call"){const args=cd.data[0];const variations=args?Array.isArray(args)?args:[args]:[];variations.forEach(variationID=>{configState.state.setVariationID(variationID)})}});this._selectVariationIDObserver=viewer.messengerInstance.observer.subscribe("selectVariationID",cd=>{if(cd.type==="call"){const args=cd.data[0];const variations=args?Array.isArray(args)?args:[args]:[];variations.forEach(variationID=>{configState.state.setVariationID(variationID)})}});this._selectVariationSKUObserver=viewer.messengerInstance.observer.subscribe("selectVariationSKU",cd=>{if(cd.type==="call"){const args=cd.data[0];const variations=args?Array.isArray(args)?args:[args]:[];variations.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}})}removeMessengerObservers(){if(this._selectVariationObserver){this._selectVariationObserver();this._selectVariationObserver=null}if(this._selectVariationIDObserver){this._selectVariationIDObserver();this._selectVariationIDObserver=null}if(this._selectVariationSKUObserver){this._selectVariationSKUObserver();this._selectVariationSKUObserver=null}}async startAR(){const launcher=await this.initAR();return launcher.start()}async startQRCode(options){const qrType=this.getAttribute("qr-type")||"viewer";switch(qrType.toLowerCase()){case"ar":return this.startARQRCode(options);case"viewer":default:return this.startViewerQRCode(options)}}async startARQRCode(options){const opt=this._GetDefaultQROptions(options);const viewer=document.createElement("plattar-qrcode");if(!opt.detached){this.removeRenderer();this._element=viewer}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",`${opt.margin}`)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const qrOptions=btoa(JSON.stringify(opt));let dst=plattar_api_1.Server.location().base+"renderer/launcher.html?qr_options="+qrOptions;const sceneID=this.getAttribute("scene-id");const embedType=this.getAttribute("embed-type");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const arMode=this.getAttribute("ar-mode");const showBanner=this.getAttribute("show-ar-banner");const sceneGraphID=this.getAttribute("scene-graph-id");if(embedType){dst+="&embed_type="+embedType}if(productID){dst+="&product_id="+productID}if(sceneProductID){dst+="&scene_product_id="+sceneProductID}if(variationID){dst+="&variation_id="+variationID}if(variationSKU){dst+="&variation_sku="+variationSKU}if(arMode){dst+="&ar_mode="+arMode}if(sceneID){dst+="&scene_id="+sceneID}if(showBanner){dst+="&show_ar_banner="+showBanner}if(sceneGraphID){dst+="&scene_graph_id="+sceneGraphID}else{try{const sceneGraphID=await(await this.getConfiguratorState()).state.encodeSceneGraphID();dst+="&scene_graph_id="+sceneGraphID}catch(_err){console.error(_err)}}viewer.setAttribute("url",opt.url||dst);this._prevQROpt=opt;if(!opt.detached){this._state=ControllerState.QRCode;return new Promise((accept,reject)=>{this.append(viewer);viewer.onload=()=>{return accept(viewer)}})}return new Promise((accept,reject)=>{return accept(viewer)})}removeRenderer(){const shadow=this.parent.shadowRoot;if(shadow){let child=shadow.lastElementChild;while(child){shadow.removeChild(child);child=shadow.lastElementChild}}this._element=null;this.removeMessengerObservers();return true}get parent(){return this._parent}getAttribute(attribute){return this.parent?this.parent.hasAttribute(attribute)?this.parent.getAttribute(attribute):null:null}getBooleanAttribute(attribute){return this.parent?this.parent.hasAttribute(attribute)?this.parent.getAttribute(attribute)?.toLowerCase()==="true"?true:false:false:false}setAttribute(attribute,value){if(this.parent){this.parent.setAttribute(attribute,value)}}removeAttribute(attribute){if(this.parent){this.parent.removeAttribute(attribute)}}append(element){if(this._element!==element){return}const shadow=this.parent.shadowRoot||this.parent.attachShadow({mode:"open"});if(shadow){let child=shadow.lastElementChild;while(child){shadow.removeChild(child);child=shadow.lastElementChild}}shadow.append(element)}removeChild(element){const shadow=this.parent.shadowRoot;if(shadow){shadow.removeChild(element)}}}exports.PlattarController=PlattarController},{"../../util/configurator-state":18,"@plattar/plattar-api":48}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ProductController=void 0;const plattar_api_1=require("@plattar/plattar-api");const product_ar_1=require("../../ar/product-ar");const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");class ProductController extends plattar_controller_1.PlattarController{async getConfiguratorState(){throw new Error("ProductController.getConfiguratorState() - legacy embeds do not support configurator states")}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.QRCode){this.startQRCode(this._prevQROpt);return}if(state===plattar_controller_1.ControllerState.Renderer){const viewer=this._element;if(viewer){const variationID=this.getAttribute("variation-id");if(variationID&&viewer.messenger){viewer.messenger.selectVariation(variationID)}}}}startViewerQRCode(options){return new Promise((accept,reject)=>{this.removeRenderer();const productID=this.getAttribute("product-id");if(productID){const opt=options||this._GetDefaultQROptions();const viewer=document.createElement("plattar-qrcode");const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const showAR=this.getAttribute("show-ar");let dst=plattar_api_1.Server.location().base+"renderer/product.html?product_id="+productID;if(variationID){dst+="&variationId="+variationID}if(variationSKU){dst+="&variationSku="+variationSKU}if(showAR){dst+="&show_ar="+showAR}viewer.setAttribute("url",opt.url||dst);this._element=viewer;this._state=plattar_controller_1.ControllerState.QRCode;this._prevQROpt=opt;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return reject(new Error("ProductController.startQRCode() - minimum required attributes not set, use product-id as a minimum"))})}startARQRCode(options){return new Promise((accept,reject)=>{this.removeRenderer();const opt=options||this._GetDefaultQROptions();const viewer=document.createElement("plattar-qrcode");const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const qrOptions=btoa(JSON.stringify(opt));let dst=plattar_api_1.Server.location().base+"renderer/launcher.html?qr_options="+qrOptions;const sceneID=this.getAttribute("scene-id");const configState=this.getAttribute("config-state");const embedType=this.getAttribute("embed-type");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const arMode=this.getAttribute("ar-mode");const showBanner=this.getAttribute("show-ar-banner");if(configState){dst+="&config_state="+configState}if(embedType){dst+="&embed_type="+embedType}if(productID){dst+="&product_id="+productID}if(sceneProductID){dst+="&scene_product_id="+sceneProductID}if(variationID){dst+="&variation_id="+variationID}if(variationSKU){dst+="&variation_sku="+variationSKU}if(arMode){dst+="&ar_mode="+arMode}if(sceneID){dst+="&scene_id="+sceneID}if(showBanner){dst+="&show_ar_banner="+showBanner}viewer.setAttribute("url",opt.url||dst);this._element=viewer;this._state=plattar_controller_1.ControllerState.QRCode;this._prevQROpt=opt;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})})}startRenderer(){return new Promise((accept,reject)=>{this.removeRenderer();const productID=this.getAttribute("product-id");if(productID){const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-product");viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("product-id",productID);const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const showAR=this.getAttribute("show-ar");if(variationID){viewer.setAttribute("variation-id",variationID)}if(variationSKU){viewer.setAttribute("variation-sku",variationSKU)}if(showAR){viewer.setAttribute("show-ar",showAR)}this._element=viewer;this._state=plattar_controller_1.ControllerState.Renderer;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return reject(new Error("ProductController.startRenderer() - minimum required attributes not set, use scene-id as a minimum"))})}initAR(){return new Promise((accept,reject)=>{if(!util_1.Util.canAugment()){return reject(new Error("ProductController.initAR() - cannot proceed as AR not available in context"))}const productID=this.getAttribute("product-id");if(productID){const variationID=this.getAttribute("variation-id");const variationSKU=this.getAttribute("variation-sku");const product=new product_ar_1.ProductAR({productID:productID,variationID:variationID?variationID:variationSKU?null:"default",variationSKU:variationSKU,useARBanner:this.getBooleanAttribute("show-ar-banner")});return product.init().then(accept).catch(reject)}return reject(new Error("ProductController.initAR() - minimum required attributes not set, use product-id as a minimum"))})}get element(){return this._element}}exports.ProductController=ProductController},{"../../ar/product-ar":4,"../../util/util":19,"./plattar-controller":12,"@plattar/plattar-api":48}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.VTOController=void 0;const plattar_api_1=require("@plattar/plattar-api");const __1=require("../..");const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");const configurator_ar_1=require("../../ar/configurator-ar");class VTOController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.Renderer){const viewer=this.element;if(viewer){if(attributeName==="variation-id"){const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];if(variationIDsList.length>0){await viewer.messenger.selectVariationID(variationIDsList)}}if(attributeName==="variation-sku"){const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];if(variationSKUList.length>0){await viewer.messenger.selectVariationSKU(variationSKUList)}}}return}if(state===plattar_controller_1.ControllerState.QRCode){if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}this.startQRCode(this._prevQROpt);return}}async startViewerQRCode(options){const opt=this._GetDefaultQROptions(options);if(!opt.detached){this.removeRenderer()}const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.startQRCode() - minimum required attributes not set, use scene-id as a minimum")}const viewer=document.createElement("plattar-qrcode");if(!opt.detached){this._element=viewer}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");let dst=plattar_api_1.Server.location().base+"renderer/facear.html?scene_id="+sceneID;let configState=null;try{configState=await this.getConfiguratorState()}catch(_err){configState=null}const showAR=this.getAttribute("show-ar");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");if(configState){dst+="&config_state="+configState.state.encode()}if(showAR){dst+="&show_ar="+showAR}if(productID){dst+="&product_id="+productID}if(sceneProductID){dst+="&scene_product_id="+sceneProductID}if(variationID){dst+="&variation_id="+variationID}viewer.setAttribute("url",opt.url||dst);this._prevQROpt=opt;if(!opt.detached){this._state=plattar_controller_1.ControllerState.QRCode;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}return new Promise((accept,reject)=>{return accept(viewer)})}async startRenderer(){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}this._state=plattar_controller_1.ControllerState.Renderer;const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-facear");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);let configState=null;try{configState=await this.getConfiguratorState()}catch(_err){configState=null}const showAR=this.getAttribute("show-ar");const productID=this.getAttribute("product-id");const sceneProductID=this.getAttribute("scene-product-id");const variationID=this.getAttribute("variation-id");if(configState){viewer.setAttribute("config-state",configState.state.encode())}if(showAR){viewer.setAttribute("show-ar",showAR)}if(productID){viewer.setAttribute("product-id",productID)}if(sceneProductID){viewer.setAttribute("scene-product-id",sceneProductID)}if(variationID){viewer.setAttribute("variation-id",variationID)}return new Promise((accept,reject)=>{this.append(viewer);if(configState){this.setupMessengerObservers(viewer,configState)}return accept(viewer)})}async initAR(){if(!util_1.Util.canAugment()){throw new Error("VTOController.initAR() - cannot proceed as VTO AR not available in context")}if(!(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS())){throw new Error("VTOController.initAR() - cannot proceed as VTO AR only available on IOS Mobile devices")}const arMode=this.getAttribute("ar-mode")||"generated";switch(arMode.toLowerCase()){case"inherited":return this._InitARInherited();case"generated":default:return this._InitARGenerated()}}async _InitARInherited(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.initAR() - inherited AR minimum required attributes not set, use scene-id as a minimum")}const state=(await this.getConfiguratorState()).state;const first=state.firstActiveOfType("sceneproduct");if(first){const sceneProductAR=new __1.SceneProductAR({productID:first.scene_product_id,variationID:first.product_variation_id,variationSKU:null,useARBanner:this.getBooleanAttribute("show-ar-banner")});return sceneProductAR.init()}throw new Error("VTOController.initAR() - invalid decoded config-state does not have any product states")}async _InitARGenerated(){const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("VTOController.initAR() - generated AR minimum required attributes not set, use scene-id as a minimum")}const configAR=new configurator_ar_1.ConfiguratorAR({state:await this.getConfiguratorState(),useARBanner:this.getBooleanAttribute("show-ar-banner")});return configAR.init()}get element(){return this._element}}exports.VTOController=VTOController},{"../..":17,"../../ar/configurator-ar":1,"../../util/util":19,"./plattar-controller":12,"@plattar/plattar-api":48}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WebXRController=void 0;const util_1=require("../../util/util");const plattar_controller_1=require("./plattar-controller");class WebXRController extends plattar_controller_1.PlattarController{constructor(){super(...arguments);this._cachedConfigState=null}async getConfiguratorState(){if(this._cachedConfigState){return this._cachedConfigState}this._cachedConfigState=this.createConfiguratorState();return this._cachedConfigState}async onAttributesUpdated(attributeName){const state=this._state;if(state===plattar_controller_1.ControllerState.Renderer){const viewer=this.element;if(viewer){if(attributeName==="variation-id"){const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];if(variationIDsList.length>0){await viewer.messenger.selectVariationID(variationIDsList)}}if(attributeName==="variation-sku"){const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];if(variationSKUList.length>0){await viewer.messenger.selectVariationSKU(variationSKUList)}}}return}if(state===plattar_controller_1.ControllerState.QRCode){if(attributeName==="variation-id"){const configState=await this.getConfiguratorState();const variationIDs=this.getAttribute("variation-id");const variationIDsList=variationIDs?variationIDs.split(","):[];variationIDsList.forEach(variationID=>{configState.state.setVariationID(variationID)})}if(attributeName==="variation-sku"){const configState=await this.getConfiguratorState();const variationSKUs=this.getAttribute("variation-sku");const variationSKUList=variationSKUs?variationSKUs.split(","):[];variationSKUList.forEach(variationSKU=>{configState.state.setVariationSKU(variationSKU)})}this.startQRCode(this._prevQROpt);return}}startViewerQRCode(options){return this.startQRCode(options)}get element(){return this._element}async startQRCode(options){this.removeRenderer();const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("WebXRController.startQRCode() - minimum required attributes not set, use scene-id as a minimum")}const opt=options||this._GetDefaultQROptions();const viewer=document.createElement("plattar-qrcode");this._element=viewer;const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";viewer.setAttribute("width",width);viewer.setAttribute("height",height);if(opt.color){viewer.setAttribute("color",opt.color)}if(opt.margin){viewer.setAttribute("margin",""+opt.margin)}if(opt.qrType){viewer.setAttribute("qr-type",opt.qrType)}viewer.setAttribute("shorten",opt.shorten&&(opt.shorten===true||opt.shorten==="true")?"true":"false");const dst=location.href;viewer.setAttribute("url",opt.url||dst);this._state=plattar_controller_1.ControllerState.QRCode;this._prevQROpt=opt;return new Promise((accept,reject)=>{viewer.onload=()=>{return accept(viewer)};this.append(viewer)})}async startRenderer(){this.removeRenderer();if(!util_1.Util.canAugment()){return this.startQRCode(this._GetDefaultQROptions())}const sceneID=this.getAttribute("scene-id");if(!sceneID){throw new Error("WebXRController.startRenderer() - minimum required attributes not set, use scene-id as a minimum")}const width=this.getAttribute("width")||"500px";const height=this.getAttribute("height")||"500px";const server=this.getAttribute("server")||"production";const viewer=document.createElement("plattar-8wall");this._element=viewer;viewer.setAttribute("width",width);viewer.setAttribute("height",height);viewer.setAttribute("server",server);viewer.setAttribute("scene-id",sceneID);const showAR=this.getAttribute("show-ar");const showUI=this.getAttribute("show-ui");if(showAR){viewer.setAttribute("show-ar",showAR)}if(showUI){viewer.setAttribute("show-ui",showUI)}return new Promise((accept,reject)=>{this.append(viewer);return accept(viewer)})}async initAR(){throw new Error("WebXRController.initAR() - cannot proceed as AR not available in webxr")}}exports.WebXRController=WebXRController},{"../../util/util":19,"./plattar-controller":12}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});const plattar_api_1=require("@plattar/plattar-api");const configurator_controller_1=require("./controllers/configurator-controller");const vto_controller_1=require("./controllers/vto-controller");const product_controller_1=require("./controllers/product-controller");const util_1=require("../util/util");const webxr_controller_1=require("./controllers/webxr-controller");const gallery_controller_1=require("./controllers/gallery-controller");const launcher_controller_1=require("./controllers/launcher-controller");var EmbedType;(function(EmbedType){EmbedType[EmbedType["Configurator"]=0]="Configurator";EmbedType[EmbedType["Legacy"]=1]="Legacy";EmbedType[EmbedType["VTO"]=2]="VTO";EmbedType[EmbedType["WebXR"]=3]="WebXR";EmbedType[EmbedType["Gallery"]=4]="Gallery";EmbedType[EmbedType["Launcher"]=5]="Launcher";EmbedType[EmbedType["None"]=6]="None"})(EmbedType||(EmbedType={}));var ObserverState;(function(ObserverState){ObserverState[ObserverState["Locked"]=0]="Locked";ObserverState[ObserverState["Unlocked"]=1]="Unlocked"})(ObserverState||(ObserverState={}));class PlattarEmbed extends HTMLElement{constructor(){super();this._currentType=EmbedType.None;this._observerState=ObserverState.Unlocked;this._controller=null;this._currentSceneID=null;this._currentServer=null;this._observer=null}get viewer(){return this._controller?this._controller.element:null}connectedCallback(){this.create()}create(){if(!this._observer){this._observer=new MutationObserver(mutations=>{if(this._observerState===ObserverState.Unlocked){mutations.forEach(mutation=>{if(mutation.type==="attributes"){const attributeName=mutation.attributeName?mutation.attributeName:"none";if(this._currentType!==EmbedType.Legacy){this._CreateEmbed(attributeName)}else{this._OnAttributesUpdated(attributeName)}}})}});this._observer.observe(this,{attributes:true})}const productID=this.hasAttribute("product-id")&&!this.hasAttribute("scene-id")?this.getAttribute("product-id"):null;if(productID){this._currentType=EmbedType.Legacy;this._CreateLegacyEmbed();return this._controller}this._CreateEmbed("none");return this._controller}lockObserver(){this._observerState=ObserverState.Locked}unlockObserver(){this._observerState=ObserverState.Unlocked}destroy(){if(this._controller){this._controller.removeRenderer();this._controller=null}this._currentType=EmbedType.None}_CreateLegacyEmbed(){const server=this.hasAttribute("server")?this.getAttribute("server"):"production";if(util_1.Util.isValidServerLocation(server)){plattar_api_1.Server.create(plattar_api_1.Server.match(server||"production"));this._controller=new product_controller_1.ProductController(this);const init=this.hasAttribute("init")?this.getAttribute("init"):null;switch(init){case"viewer":this.startViewer();break;case"qrcode":this.startQRCode();break}}else{console.warn("PlattarEmbed.CreateLegacy - cannot create as server attribute "+server+" is invalid, embed status remains unchanged")}}_CreateEmbed(attributeName){const serverAttribute=this.hasAttribute("server")?this.getAttribute("server"):"production";if(this._currentServer!==serverAttribute){this._currentServer=serverAttribute||"production";if(this._controller){this._controller.removeRenderer();this._controller=null}}if(!util_1.Util.isValidServerLocation(this._currentServer)){console.warn("PlattarEmbed.Create - cannot create as server attribute "+this._currentServer+" is invalid, embed status remains unchanged");return}plattar_api_1.Server.create(plattar_api_1.Server.match(this._currentServer||"production"));const embedType=this.hasAttribute("embed-type")?this.getAttribute("embed-type"):"configurator";const currentEmbed=this._currentType;if(embedType){switch(embedType.toLowerCase()){case"vto":this._currentType=EmbedType.VTO;break;case"webxr":this._currentType=EmbedType.WebXR;break;case"gallery":this._currentType=EmbedType.Gallery;break;case"launcher":this._currentType=EmbedType.Launcher;break;case"viewer":case"configurator":default:this._currentType=EmbedType.Configurator}}if(currentEmbed!==this._currentType&&this._controller){this._controller.removeRenderer();this._controller=null}const sceneID=this.hasAttribute("scene-id")?this.getAttribute("scene-id"):null;if(sceneID!==this._currentSceneID&&this._controller){this._controller.removeRenderer();this._controller=null}this._currentSceneID=sceneID;if(!this._currentSceneID){return}if(!this._controller){switch(this._currentType){case EmbedType.Configurator:this._controller=new configurator_controller_1.ConfiguratorController(this);break;case EmbedType.WebXR:this._controller=new webxr_controller_1.WebXRController(this);break;case EmbedType.Gallery:this._controller=new gallery_controller_1.GalleryController(this);break;case EmbedType.Launcher:this._controller=new launcher_controller_1.LauncherController(this);break;case EmbedType.VTO:this._controller=new vto_controller_1.VTOController(this);break}if(this._controller){const init=this.hasAttribute("init")?this.getAttribute("init"):null;switch(init){case"viewer":this.startViewer();break;case"qrcode":this.startQRCode();break}}}else{this._OnAttributesUpdated(attributeName)}}async initAR(){if(!this._controller){throw new Error("PlattarEmbed.initAR() - cannot execute as controller has not loaded yet")}return this._controller.initAR()}async startAR(){if(!this._controller){throw new Error("PlattarEmbed.startAR() - cannot execute as controller has not loaded yet")}return this._controller.startAR()}async startViewer(){if(!this._controller){throw new Error("PlattarEmbed.startViewer() - cannot execute as controller has not loaded yet")}return this._controller.startRenderer()}async startQRCode(options=null){if(!this._controller){throw new Error("PlattarEmbed.startQRCode() - cannot execute as controller has not loaded yet")}return this._controller.startQRCode(options)}removeRenderer(){if(!this._controller){return false}return this._controller.removeRenderer()}_OnAttributesUpdated(attributeName){if(this._controller){this._controller.onAttributesUpdated(attributeName)}}addEventListener(type,listener,options){super.addEventListener(type,listener,options);const eventType="arclick";if(type===eventType){this.setAttribute("show-ar-banner","true");const url=new URL(location.href);if(url.searchParams.get("plattar_ar_action")==="true"){setTimeout(()=>{this.dispatchEvent(new Event(eventType))},200)}}}}exports.default=PlattarEmbed},{"../util/util":19,"./controllers/configurator-controller":9,"./controllers/gallery-controller":10,"./controllers/launcher-controller":11,"./controllers/product-controller":13,"./controllers/vto-controller":14,"./controllers/webxr-controller":15,"@plattar/plattar-api":48}],17:[function(require,module,exports){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=this&&this.__importStar||function(){var ownKeys=function(o){ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)if(Object.prototype.hasOwnProperty.call(o,k))ar[ar.length]=k;return ar};return ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k=ownKeys(mod),i=0;i<k.length;i++)if(k[i]!=="default")__createBinding(result,mod,k[i]);__setModuleDefault(result,mod);return result}}();var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ConfiguratorState=exports.Util=exports.RawAR=exports.ModelAR=exports.SceneAR=exports.SceneProductAR=exports.ProductAR=exports.LauncherAR=exports.version=exports.PlattarQRCode=exports.PlattarWeb=void 0;exports.PlattarWeb=__importStar(require("@plattar/plattar-web"));exports.PlattarQRCode=__importStar(require("@plattar/plattar-qrcode"));exports.version=__importStar(require("./version"));var launcher_ar_1=require("./ar/launcher-ar");Object.defineProperty(exports,"LauncherAR",{enumerable:true,get:function(){return launcher_ar_1.LauncherAR}});var product_ar_1=require("./ar/product-ar");Object.defineProperty(exports,"ProductAR",{enumerable:true,get:function(){return product_ar_1.ProductAR}});var scene_product_ar_1=require("./ar/scene-product-ar");Object.defineProperty(exports,"SceneProductAR",{enumerable:true,get:function(){return scene_product_ar_1.SceneProductAR}});var scene_ar_1=require("./ar/scene-ar");Object.defineProperty(exports,"SceneAR",{enumerable:true,get:function(){return scene_ar_1.SceneAR}});var model_ar_1=require("./ar/model-ar");Object.defineProperty(exports,"ModelAR",{enumerable:true,get:function(){return model_ar_1.ModelAR}});var raw_ar_1=require("./ar/raw-ar");Object.defineProperty(exports,"RawAR",{enumerable:true,get:function(){return raw_ar_1.RawAR}});var util_1=require("./util/util");Object.defineProperty(exports,"Util",{enumerable:true,get:function(){return util_1.Util}});var configurator_state_1=require("./util/configurator-state");Object.defineProperty(exports,"ConfiguratorState",{enumerable:true,get:function(){return configurator_state_1.ConfiguratorState}});const plattar_embed_1=__importDefault(require("./embed/plattar-embed"));const version_1=__importDefault(require("./version"));if(customElements){if(customElements.get("plattar-embed")===undefined){customElements.define("plattar-embed",plattar_embed_1.default)}}console.log("using @plattar/plattar-ar-adapter v"+version_1.default)},{"./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":138}],18:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ConfiguratorState=void 0;const plattar_api_1=require("@plattar/plattar-api");class ConfiguratorState{constructor(state=null){this._mappedVariationIDValues=new Map;this._mappedVariationSKUValues=new Map;const defaultState={meta:{scene_product_index:0,scene_model_index:0,product_index:0,product_variation_index:1,meta_index:2},states:[]};if(state){try{const decodedb64State=atob(state);const parsedState=JSON.parse(decodedb64State);if(parsedState.meta){defaultState.meta.scene_product_index=parsedState.meta.scene_product_index||0;defaultState.meta.scene_model_index=parsedState.meta.scene_model_index||0;defaultState.meta.product_index=parsedState.meta.product_index||0;defaultState.meta.product_variation_index=parsedState.meta.product_variation_index||1;defaultState.meta.meta_index=parsedState.meta.meta_index||2}defaultState.states=parsedState.states||[]}catch(err){console.error("ConfiguratorState.constructor() - there was an error parsing configurator state");console.error(err)}}this._state=defaultState}setVariationSKU(productVariationSKU){const variationIDs=this._mappedVariationSKUValues.get(productVariationSKU);if(!variationIDs){console.warn("ConfiguratorState.setVariationSKU() - Variation SKU of "+productVariationSKU+" is not defined in any variations");return}variationIDs.forEach(variationID=>{this.setVariationID(variationID)})}setVariationID(productVariationID){const sceneProductID=this._mappedVariationIDValues.get(productVariationID);if(!sceneProductID){console.warn("ConfiguratorState.setVariationID() - Variation ID of "+productVariationID+" is not defined in any products");return}this.setSceneProduct(sceneProductID,productVariationID)}setSceneProduct(sceneProductID,productVariationID,metaData=null){this.addSceneProduct(sceneProductID,productVariationID,metaData)}setSceneModel(SceneModelID,metaData=null){if(SceneModelID){metaData=metaData||{augment:true,type:"scenemodel"};metaData.type="scenemodel";const states=this._state.states;const meta=this._state.meta;let newData=null;const existingData=this.findSceneProductIndex(SceneModelID);if(existingData){newData=existingData}else{newData=[];states.push(newData)}newData[meta.scene_product_index]=SceneModelID;newData[meta.product_variation_index]=null;newData[meta.meta_index]=metaData}}setProduct(productID,productVariationID,metaData=null){if(productID&&productVariationID){metaData=metaData||{augment:true,type:"product"};metaData.type="product";const states=this._state.states;const meta=this._state.meta;let newData=null;const existingData=this.findSceneProductIndex(productID);if(existingData){newData=existingData}else{newData=[];states.push(newData)}newData[meta.product_index]=productID;newData[meta.product_variation_index]=productVariationID;newData[meta.meta_index]=metaData}}addSceneProduct(sceneProductID,productVariationID,metaData=null){if(sceneProductID&&productVariationID){metaData=metaData||{augment:true,type:"sceneproduct"};metaData.type="sceneproduct";const states=this._state.states;const meta=this._state.meta;let newData=null;const existingData=this.findSceneProductIndex(sceneProductID);if(existingData){newData=existingData}else{newData=[];states.push(newData)}newData[meta.scene_product_index]=sceneProductID;newData[meta.product_variation_index]=productVariationID;newData[meta.meta_index]=metaData}}findSceneProductIndex(sceneProductID){const states=this._state.states;if(states.length>0){const meta=this._state.meta;const found=states.find(productState=>{return productState[meta.scene_product_index]===sceneProductID});return found?found:null}return null}findSceneProduct(sceneProductID){const found=this.findSceneProductIndex(sceneProductID);if(found){const meta=this._state.meta;const data={scene_product_id:found[meta.scene_product_index],product_variation_id:found[meta.product_variation_index],meta_data:{augment:true,type:"sceneproduct"}};if(found.length===3){data.meta_data.augment=found[meta.meta_index].augment||true;data.meta_data.type=found[meta.meta_index].type||"sceneproduct"}return data}return null}forEach(callback){const states=this._state.states;const meta=this._state.meta;if(states.length>0){states.forEach(productState=>{if(productState.length===2){callback({scene_product_id:productState[meta.scene_product_index],product_variation_id:productState[meta.product_variation_index],meta_data:{augment:true,type:"sceneproduct"}})}else if(productState.length===3){callback({scene_product_id:productState[meta.scene_product_index],product_variation_id:productState[meta.product_variation_index],meta_data:{augment:productState[meta.meta_index].augment??true,type:productState[meta.meta_index].type||"sceneproduct"}})}})}}array(){const array=new Array;this.forEach(object=>{array.push(object)});return array}first(){const states=this._state.states;if(states.length>0){const meta=this._state.meta;const found=states.find(productState=>{const check=productState[meta.scene_product_index];return check!==null&&check!==undefined});if(!found){return null}const data={scene_product_id:found[meta.scene_product_index],product_variation_id:found[meta.product_variation_index],meta_data:{augment:true,type:"sceneproduct"}};if(found.length===3){data.meta_data.augment=found[meta.meta_index].augment||true;data.meta_data.type=found[meta.meta_index].type||"sceneproduct"}return data}return null}firstOfType(type){const states=this._state.states;if(states.length>0){const meta=this._state.meta;const found=states.find(productState=>{const check=productState[meta.scene_product_index];if(check!==null&&check!==undefined){return productState.length===3&&productState[meta.meta_index].type===type}return false});if(!found){return null}const data={scene_product_id:found[meta.scene_product_index],product_variation_id:found[meta.product_variation_index],meta_data:{augment:found[meta.meta_index].augment||true,type:found[meta.meta_index].type||type}};return data}return null}firstActiveOfType(type){const states=this._state.states;if(states.length>0){const meta=this._state.meta;const found=states.find(productState=>{const check=productState[meta.scene_product_index];if(check!==null&&check!==undefined){return productState.length===3&&productState[meta.meta_index].type===type&&productState[meta.meta_index].augment===true}return false});if(!found){return null}const data={scene_product_id:found[meta.scene_product_index],product_variation_id:found[meta.product_variation_index],meta_data:{augment:found[meta.meta_index].augment||true,type:found[meta.meta_index].type||type}};return data}return null}get length(){return this._state.states.length}static decode(state){return new ConfiguratorState(state)}static async decodeState(sceneID=null,state=null){if(!sceneID||!state){throw new Error("ConfiguratorState.decodeState(sceneID, state) - sceneID and state must be defined")}const configState=new ConfiguratorState(state);const fscene=new plattar_api_1.Scene(sceneID);fscene.include(plattar_api_1.Project);fscene.include(plattar_api_1.Product);fscene.include(plattar_api_1.SceneProduct);fscene.include(plattar_api_1.SceneModel);fscene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product.include(plattar_api_1.ProductVariation)));const scene=await fscene.get();return{scene:scene,state:configState}}static async decodeScene(sceneID=null){if(!sceneID){throw new Error("ConfiguratorState.decodeScene(sceneID) - sceneID must be defined")}const configState=new ConfiguratorState;const fscene=new plattar_api_1.Scene(sceneID);fscene.include(plattar_api_1.Project);fscene.include(plattar_api_1.SceneProduct);fscene.include(plattar_api_1.SceneModel);fscene.include(plattar_api_1.Product);fscene.include(plattar_api_1.SceneProduct.include(plattar_api_1.Product.include(plattar_api_1.ProductVariation)));const scene=await fscene.get();const sceneProducts=scene.relationships.filter(plattar_api_1.SceneProduct);const sceneModels=scene.relationships.filter(plattar_api_1.SceneModel);const products=scene.relationships.filter(plattar_api_1.Product);sceneModels.forEach(sceneModel=>{configState.setSceneModel(sceneModel.id,{augment:sceneModel.attributes.include_in_augment,type:"scenemodel"})});products.forEach(product=>{if(product.attributes.product_variation_id){configState.setProduct(product.id,product.attributes.product_variation_id,{augment:true,type:"product"})}});sceneProducts.forEach(sceneProduct=>{const product=sceneProduct.relationships.find(plattar_api_1.Product);if(product){if(product.attributes.product_variation_id){configState.setSceneProduct(sceneProduct.id,product.attributes.product_variation_id,{augment:sceneProduct.attributes.include_in_augment,type:"sceneproduct"})}const variations=product.relationships.filter(plattar_api_1.ProductVariation);variations.forEach(variation=>{configState._mappedVariationIDValues.set(variation.id,sceneProduct.id);if(variation.attributes.sku){const existingSKUs=configState._mappedVariationSKUValues.get(variation.attributes.sku);if(existingSKUs){existingSKUs.push(variation.id)}else{configState._mappedVariationSKUValues.set(variation.attributes.sku,[variation.id])}}})}});return{scene:scene,state:configState}}encode(){return btoa(JSON.stringify(this._state))}async encodeSceneGraphID(){const graph=this.sceneGraph;const url=`https://c.plattar.com/v3/redir/store`;try{const response=await fetch(url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{attributes:{data:graph}}})});if(!response.ok){throw new Error(`ConfiguratorState.encodeSceneGraphID() - network response was not ok ${response.status}`)}const data=await response.json();return data.data.id}catch(error){throw new Error(`ConfiguratorState.encodeSceneGraphID() - there was a request error to ${url}, error was ${error.message}`)}}get sceneGraph(){const objects=this.array();const schema={strict:false,inputs:[]};objects.forEach(object=>{if(object.meta_data.type==="scenemodel"){const data={id:object.scene_product_id,type:"scenemodel",visibility:object.meta_data.augment};schema.inputs.push(data)}else{const data={id:object.scene_product_id,type:"sceneproduct",variation_id:object.product_variation_id,visibility:object.meta_data.augment};schema.inputs.push(data)}});return schema}}exports.ConfiguratorState=ConfiguratorState},{"@plattar/plattar-api":48}],19:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Util=void 0;class Util{static isValidServerLocation(server){if(!server){return false}switch(server.toLowerCase()){case"staging.plattar.space":case"cdn-staging.plattar.space":case"staging":case"app.plattar.com":case"cdn.plattar.com":case"prod":case"production":case"review.plattar.com":case"review":case"qa":case"dev":case"developer":case"development":case"local":case"localhost":return true}return false}static canAugment(){return Util.canQuicklook()||Util.canSceneViewer()}static canQuicklook(){if(Util.isIOS()){const isWKWebView=Boolean((window&&window).webkit&&window.webkit.messageHandlers);if(isWKWebView){return Boolean(/CriOS\/|EdgiOS\/|FxiOS\/|GSA\/|DuckDuckGo\//.test(navigator.userAgent))}const tempAnchor=document.createElement("a");return tempAnchor.relList&&tempAnchor.relList.supports&&tempAnchor.relList.supports("ar")}return false}static canSceneViewer(){return Util.isAndroid()&&!Util.isFirefox()&&!Util.isOculus()}static canRealityViewer(){return Util.isIOS()&&Util.getIOSVersion()[0]>=13}static isSafariOnIOS(){return Util.isIOS()&&Util.isSafari()}static isChromeOnIOS(){return Util.isIOS()&&/CriOS\//.test(navigator.userAgent)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!self.MSStream||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1}static isAndroid(){return/android/i.test(navigator.userAgent)}static isFirefox(){return/firefox/i.test(navigator.userAgent)}static isOculus(){return/OculusBrowser/.test(navigator.userAgent)}static isSafari(){return Util.isIOS()&&/Safari\//.test(navigator.userAgent)}static getIOSVersion(){if(/iP(hone|od|ad)/.test(navigator.platform)){const v=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);if(v!==null){return[parseInt(v[1],10),parseInt(v[2],10),parseInt(v[3],10)]}}if(/Mac/.test(navigator.platform)){const v=navigator.appVersion.match(/Version\/(\d+)\.(\d+)\.?(\d+)?/);if(v!==null){return[parseInt(v[1],10),parseInt(v[2],10),parseInt(v[3],10)]}}return[-1,-1,-1]}static getChromeVersion(){const raw=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(raw!==null){return parseInt(raw[2],10)}return 1}}exports.Util=Util},{}],20:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default="2.5.1"},{}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ARViewer=void 0;class ARViewer{constructor(){this.modelUrl=null;this.banner=null}get composedActionURL(){const link=new URL(location.href);link.searchParams.set("plattar_ar_action","true");return encodeURI(link.href)}}exports.ARViewer=ARViewer},{}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});const ar_viewer_1=require("./ar-viewer");class QuicklookViewer extends ar_viewer_1.ARViewer{constructor(){super()}get nodeType(){return"Quick Look"}get device(){return"ios"}start(){if(!this.modelUrl){throw new Error("QuicklookViewer.start() - model url not set, use QuicklookViewer.modelUrl")}const anchor=document.createElement("a");anchor.setAttribute("rel","ar");anchor.appendChild(document.createElement("img"));const banner=this.banner;let url=this.modelUrl;if(banner){url+=`#callToAction=${banner.button}`;url+=`&checkoutTitle=${banner.title}`;url+=`&checkoutSubtitle=${banner.subtitle}`;const handleQuicklook=event=>{if(event.data==="_apple_ar_quicklook_button_tapped"){window.location.assign(this.composedActionURL)}};anchor.addEventListener("message",handleQuicklook,false)}document.body.appendChild(anchor);anchor.setAttribute("href",encodeURI(url));anchor.click()}}exports.default=QuicklookViewer},{"./ar-viewer":21}],23:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});const ar_viewer_1=require("./ar-viewer");class RealityViewer extends ar_viewer_1.ARViewer{constructor(){super()}get nodeType(){return"Reality Viewer"}get device(){return"ios"}start(){if(!this.modelUrl){throw new Error("RealityViewer.start() - model url not set, use RealityViewer.modelUrl")}const anchor=document.createElement("a");anchor.setAttribute("rel","ar");anchor.appendChild(document.createElement("img"));anchor.setAttribute("href",this.modelUrl);anchor.click()}}exports.default=RealityViewer},{"./ar-viewer":21}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});const ar_viewer_1=require("./ar-viewer");class SceneViewer extends ar_viewer_1.ARViewer{constructor(){super();this.isVertical=false;this.isVertical=false}get nodeType(){return"Scene Viewer"}get device(){return"android"}start(){if(!this.modelUrl){throw new Error("SceneViewer.start() - model url not set, use SceneViewer.modelUrl")}const linkOverride=encodeURIComponent(`${location.href}#no-ar-fallback`);let intent=`intent://arvr.google.com/scene-viewer/1.1?file=${this.modelUrl}&mode=ar_preferred`;const banner=this.banner;if(banner){intent+=`&title=<b>${banner.title}</b><br>${banner.subtitle}`;intent+=`&link=${this.composedActionURL}`}if(this.isVertical){intent+="&enable_vertical_placement=true"}intent+="&a=b#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;";intent+=`S.browser_fallback_url=${linkOverride};end;`;const anchor=document.createElement("a");anchor.setAttribute("href",intent);anchor.click()}}exports.default=SceneViewer},{"./ar-viewer":21}],25:[function(require,module,exports){"use strict";const Messenger=require("./messenger/messenger.js");const Memory=require("./memory/memory.js");const GlobalEventHandler=require("./messenger/global-event-handler.js");const Version=require("./version");if(!GlobalEventHandler.instance().messengerInstance){const messengerInstance=new Messenger;const memoryInstance=new Memory(messengerInstance);GlobalEventHandler.instance().messengerInstance=messengerInstance;GlobalEventHandler.instance().memoryInstance=memoryInstance}if(!GlobalEventHandler.instance().memoryInstance){const memoryInstance=new Memory(GlobalEventHandler.instance().messengerInstance);GlobalEventHandler.instance().memoryInstance=memoryInstance}console.log("using @plattar/context-messenger v"+Version);module.exports={messenger:GlobalEventHandler.instance().messengerInstance,memory:GlobalEventHandler.instance().memoryInstance,version:Version}},{"./memory/memory.js":26,"./messenger/global-event-handler.js":34,"./messenger/messenger.js":35,"./version":40}],26:[function(require,module,exports){const PermanentMemory=require("./permanent-memory");const TemporaryMemory=require("./temporary-memory");class Memory{constructor(messengerInstance){this._messenger=messengerInstance;this._tempMemory=new TemporaryMemory(messengerInstance);this._permMemory=new PermanentMemory(messengerInstance);this._messenger.self.__memory__set_temp_var=(name,data)=>{this._tempMemory[name]=data};this._messenger.self.__memory__set_perm_var=(name,data)=>{this._permMemory[name]=data}}get temp(){return this._tempMemory}get perm(){return this._permMemory}}module.exports=Memory},{"./permanent-memory":27,"./temporary-memory":28}],27:[function(require,module,exports){const WrappedValue=require("./wrapped-value");class PermanentMemory{constructor(messengerInstance){return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="watch"){return(variable,callback)=>{if(!target[variable]){target[variable]=new WrappedValue(variable,true,messengerInstance)}target[variable].watch=callback}}if(prop==="clear"){return()=>{for(const pitem of Object.getOwnPropertyNames(target)){delete target[pitem];localStorage.removeItem(pitem)}}}if(prop==="purge"){return()=>{localStorage.clear();for(const pitem of Object.getOwnPropertyNames(target)){delete target[pitem]}}}if(prop==="refresh"){return()=>{for(const val of Object.getOwnPropertyNames(target)){target[val].refresh()}}}if(!target[prop]){target[prop]=new WrappedValue(prop,true,messengerInstance)}return target[prop].value},set:(target,prop,value)=>{if(!target[prop]){target[prop]=new WrappedValue(prop,true,messengerInstance)}target[prop].value=value;return true}})}}module.exports=PermanentMemory},{"./wrapped-value":29}],28:[function(require,module,exports){const WrappedValue=require("./wrapped-value");class TemporaryMemory{constructor(messengerInstance){return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="watch"){return(variable,callback)=>{if(!target[variable]){target[variable]=new WrappedValue(variable,false,messengerInstance)}target[variable].watch=callback}}if(prop==="clear"||prop==="purge"){return()=>{for(const val of Object.getOwnPropertyNames(target)){delete target[val]}}}if(prop==="refresh"){return()=>{for(const val of Object.getOwnPropertyNames(target)){target[val].refresh()}}}if(!target[prop]){target[prop]=new WrappedValue(prop,false,messengerInstance)}return target[prop].value},set:(target,prop,value)=>{if(!target[prop]){target[prop]=new WrappedValue(prop,false,messengerInstance)}target[prop].value=value;return true}})}}module.exports=TemporaryMemory},{"./wrapped-value":29}],29:[function(require,module,exports){class WrappedValue{constructor(varName,isPermanent,messengerInstance){this._value=undefined;this._callback=undefined;this._isPermanent=isPermanent;this._varName=varName;this._messenger=messengerInstance;if(this._isPermanent){this._value=JSON.parse(localStorage.getItem(this._varName))}}refresh(){if(this._isPermanent){this._messenger.broadcast.__memory__set_perm_var(this._varName,this._value);if(this._messenger.parent){this._messenger.parent.__memory__set_perm_var(this._varName,this._value)}}else{this._messenger.broadcast.__memory__set_temp_var(this._varName,this._value);if(this._messenger.parent){this._messenger.parent.__memory__set_temp_var(this._varName,this._value)}}}refreshFor(callable){if(!this._messenger[callable]){return}if(this._isPermanent){this._messenger[callable].__memory__set_perm_var(this._varName,this._value)}else{this._messenger[callable].__memory__set_temp_var(this._varName,this._value)}}get value(){if(this._isPermanent&&this._value==undefined){this._value=JSON.parse(localStorage.getItem(this._varName))}return this._value}set value(newValue){if(typeof newValue==="function"){throw new TypeError("WrappedValue.value cannot be set to a function type")}const oldValue=this._value;this._value=newValue;if(this._isPermanent){localStorage.setItem(this._varName,JSON.stringify(this._value))}if(this._callback&&oldValue!==newValue){this.refresh();this._callback(oldValue,this._value)}}set watch(newValue){if(typeof newValue==="function"){if(newValue.length==2){this._callback=newValue}else{throw new RangeError("WrappedValue.watch callback must accept exactly 2 variables. Try using WrappedValue.watch = (oldVal, newVal) => {}")}}else{throw new TypeError("WrappedValue.watch must be a type of function. Try using WrappedValue.watch = (oldVal, newVal) => {}")}}}module.exports=WrappedValue},{}],30:[function(require,module,exports){class Broadcaster{constructor(messengerInstance){this._messengerInstance=messengerInstance;this._interfaces=[];return new Proxy(this,{get:(target,prop,receiver)=>{switch(prop){case"_push":case"_interfaces":return target[prop];default:break}return(...args)=>{const interfaces=target._interfaces;const promises=[];interfaces.forEach(callable=>{promises.push(target._messengerInstance[callable][prop](...args))});return Promise.allSettled(promises)}}})}_push(interfaceID){const index=this._interfaces.indexOf(interfaceID);if(index>-1){this._interfaces.splice(index,1)}this._interfaces.push(interfaceID)}}module.exports=Broadcaster},{}],31:[function(require,module,exports){const WrappedFunction=require("./wrapped-local-function");class CurrentFunctionList{constructor(){return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="watch"){return(variable,callback)=>{if(!target[variable]){target[variable]=new WrappedFunction(variable)}target[variable].watch=callback}}if(prop==="clear"||prop==="purge"){return()=>{for(const pitem of Object.getOwnPropertyNames(target)){delete target[pitem]}}}if(!target[prop]){target[prop]=new WrappedFunction(prop)}return(...args)=>{return target[prop].exec(...args)}},set:(target,prop,value)=>{if(!target[prop]){target[prop]=new WrappedFunction(prop)}target[prop].value=value;return true}})}}module.exports=CurrentFunctionList},{"./wrapped-local-function":32}],32:[function(require,module,exports){const Util=require("../util/util.js");class WrappedLocalFunction{constructor(funcName){this._value=undefined;this._callback=undefined;this._funcName=funcName}_execute(...args){const rData=this._value(...args);if(this._callback){this._callback(rData,...args)}return rData}exec(...args){return new Promise((accept,reject)=>{if(!this._value){return reject(new Error("WrappedLocalFunction.exec() function with name "+this._funcName+"() is not defined"))}try{const rObject=this._execute(...args);if(Util.isPromise(rObject)){rObject.then(res=>{return accept(res)}).catch(err=>{return reject(err)})}else{return accept(rObject)}}catch(e){return reject(e)}})}set value(newValue){if(typeof newValue!=="function"){throw new TypeError("WrappedLocalFunction.value must be a function. To store values use Plattar.memory")}this._value=newValue}set watch(newValue){if(typeof newValue==="function"){this._callback=newValue}else{throw new TypeError("WrappedLocalFunction.watch must be a type of function. Try using WrappedLocalFunction.watch = (rData, ...args) => {}")}}}module.exports=WrappedLocalFunction},{"../util/util.js":39}],33:[function(require,module,exports){const Util=require("./util/util");class FunctionObserver{constructor(){this._observers=new Map}subscribe(functionName,callback){if(!functionName||!Util.isFunction(callback)){return()=>{}}const observers=this._observers;let list=observers.get(functionName);if(!list){list=[];observers.set(functionName,list)}list.push(callback);return()=>{return this.unsubscribe(functionName,callback)}}unsubscribe(functionName,callback){if(!functionName||!Util.isFunction(callback)){return false}const observers=this._observers;const list=observers.get(functionName);if(list){const index=list.indexOf(callback);if(index>-1){list.splice(index,1);return true}}return false}call(functionName,data){if(!functionName||!data){return}const observers=this._observers;const list=observers.get(functionName);if(list&&list.length>0){list.forEach(observer=>{try{if(observer){observer(data)}}catch(e){}})}}}module.exports=FunctionObserver},{"./util/util":39}],34:[function(require,module,exports){const RemoteInterface=require("./remote-interface.js");class GlobalEventHandler{constructor(){this._eventListeners={};window.addEventListener("message",evt=>{const data=evt.data;let jsonData=undefined;try{jsonData=JSON.parse(data)}catch(e){jsonData=undefined}if(jsonData&&jsonData.event&&jsonData.data){if(this._eventListeners[jsonData.event]){const remoteInterface=new RemoteInterface(evt.source,evt.origin);this._eventListeners[jsonData.event].forEach(callback=>{try{callback(remoteInterface,jsonData.data)}catch(e){console.error("GlobalEventHandler.message() error occured during callback ");console.error(e)}})}}})}set messengerInstance(value){this._messenger=value}set memoryInstance(value){this._memory=value}get messengerInstance(){return this._messenger}get memoryInstance(){return this._memory}listen(event,callback){if(typeof callback!=="function"){throw new TypeError("GlobalEventHandler.listen(event, callback) callback must be a type of function.")}if(!this._eventListeners[event]){this._eventListeners[event]=[]}this._eventListeners[event].push(callback)}}GlobalEventHandler.instance=()=>{if(!GlobalEventHandler._default){GlobalEventHandler._default=new GlobalEventHandler}return GlobalEventHandler._default};module.exports=GlobalEventHandler},{"./remote-interface.js":36}],35:[function(require,module,exports){const CurrentFunctionList=require("./current/current-function-list");const RemoteInterface=require("./remote-interface");const RemoteFunctionList=require("./remote/remote-function-list");const Util=require("./util/util.js");const GlobalEventHandler=require("./global-event-handler.js");const Broadcaster=require("./broadcaster.js");const FunctionObserver=require("./function-observer.js");class Messenger{constructor(){this._id=Util.id();this._parentStack=RemoteInterface.default();this._functionObserver=new FunctionObserver;this._currentFunctionList=new CurrentFunctionList;this._broadcaster=new Broadcaster(this);this._parentFunctionList=undefined;const callbacks=new Map;this._callbacks=callbacks;this._setup();return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="onload"){return(variable,callback)=>{if(variable==="self"||variable==="id"){return callback()}if(target[variable]){return callback()}if(callbacks.has(variable)){const array=callbacks.get(variable);array.push(callback)}else{callbacks.set(variable,[callback])}}}switch(prop){case"id":return target._id;case"self":return target._currentFunctionList;case"broadcast":return target._broadcaster;case"addChild":case"observer":case"_setup":case"_registerListeners":case"_id":case"_broadcaster":case"_functionObserver":case"_callbacks":case"_parentStack":return target[prop];default:break}const targetVar=target[prop];if(!targetVar||!targetVar.isValid()){return undefined}return target[prop]}})}get observer(){return this._functionObserver}addChild(childNode){const remoteInterface=new RemoteInterface(childNode.contentWindow,"*");remoteInterface.send("__messenger__parent_init_inv",{id:childNode.id})}_setup(){this._registerListeners();if(this._parentStack){this._parentStack.send("__messenger__child_init")}if(window.location.protocol!=="https:"){console.warn("Messenger["+this._id+'] requires https but protocol is "'+window.location.protocol+'", messenger will not work correctly.')}}_registerListeners(){GlobalEventHandler.instance().listen("__messenger__child_init",(src,data)=>{const iframeID=src.id;switch(iframeID){case undefined:throw new Error("Messenger["+this._id+"].setup() Component ID cannot be undefined");case"self":throw new Error("Messenger["+this._id+'].setup() Component ID of "self" cannot be used as the keyword is reserved');case"parent":throw new Error("Messenger["+this._id+'].setup() Component ID of "parent" cannot be used as the keyword is reserved');case"id":throw new Error("Messenger["+this._id+'].setup() Component ID of "id" cannot be used as the keyword is reserved');case"onload":throw new Error("Messenger["+this._id+'].setup() Component ID of "onload" cannot be used as the keyword is reserved');default:break}this[iframeID]=new RemoteFunctionList(iframeID,this._functionObserver);this[iframeID].setup(new RemoteInterface(src.source,src.origin));this._broadcaster._push(iframeID);const callbacks=this._callbacks;if(callbacks.has(iframeID)){const array=callbacks.get(iframeID);if(array){array.forEach((item,_)=>{try{if(item){item()}}catch(err){}})}}callbacks.delete(iframeID);src.send("__messenger__parent_init")});GlobalEventHandler.instance().listen("__messenger__child_init_inv",(src,data)=>{const iframeID=data.id;switch(iframeID){case undefined:throw new Error("Messenger["+this._id+"].setup() Component ID cannot be undefined");case"self":throw new Error("Messenger["+this._id+'].setup() Component ID of "self" cannot be used as the keyword is reserved');case"parent":throw new Error("Messenger["+this._id+'].setup() Component ID of "parent" cannot be used as the keyword is reserved');case"id":throw new Error("Messenger["+this._id+'].setup() Component ID of "id" cannot be used as the keyword is reserved');case"onload":throw new Error("Messenger["+this._id+'].setup() Component ID of "onload" cannot be used as the keyword is reserved');default:break}this[iframeID]=new RemoteFunctionList(iframeID,this._functionObserver);this[iframeID].setup(new RemoteInterface(src.source,src.origin));this._broadcaster._push(iframeID);const callbacks=this._callbacks;if(callbacks.has(iframeID)){const array=callbacks.get(iframeID);if(array){array.forEach((item,_)=>{try{if(item){item()}}catch(err){}})}}callbacks.delete(iframeID)});GlobalEventHandler.instance().listen("__messenger__parent_init",(src,data)=>{const iframeID="parent";this[iframeID]=new RemoteFunctionList(iframeID,this._functionObserver);this[iframeID].setup(new RemoteInterface(src.source,src.origin));const callbacks=this._callbacks;if(callbacks.has(iframeID)){const array=callbacks.get(iframeID);if(array){array.forEach((item,_)=>{try{if(item){item()}}catch(err){}})}}callbacks.delete(iframeID)});GlobalEventHandler.instance().listen("__messenger__parent_init_inv",(src,data)=>{const iframeID="parent";this[iframeID]=new RemoteFunctionList(iframeID,this._functionObserver);this[iframeID].setup(new RemoteInterface(src.source,src.origin));const callbacks=this._callbacks;if(callbacks.has(iframeID)){const array=callbacks.get(iframeID);if(array){array.forEach((item,_)=>{try{if(item){item()}}catch(err){}})}}callbacks.delete(iframeID);src.send("__messenger__child_init_inv",{id:data.id})});GlobalEventHandler.instance().listen("__messenger__exec_fnc",(src,data)=>{const instanceID=data.instance_id;const args=data.function_args;const fname=data.function_name;GlobalEventHandler.instance().messengerInstance.self[fname](...args).then(res=>{src.send("__messenger__exec_fnc_result",{function_status:"success",function_name:fname,function_args:res,instance_id:instanceID})}).catch(err=>{const error_arg=Util.isError(err)?err.message:err;src.send("__messenger__exec_fnc_result",{function_status:"error",function_name:fname,function_args:error_arg?error_arg:"unknown error",instance_id:instanceID})})})}}module.exports=Messenger},{"./broadcaster.js":30,"./current/current-function-list":31,"./function-observer.js":33,"./global-event-handler.js":34,"./remote-interface":36,"./remote/remote-function-list":37,"./util/util.js":39}],36:[function(require,module,exports){class RemoteInterface{constructor(source,origin){this._source=source;this._origin=origin;if(typeof this._source.postMessage!=="function"){throw new Error("RemoteInterface() provided source is invalid")}}get source(){return this._source}get origin(){return this._origin}get id(){return this.source.frameElement?this.source.frameElement.id:undefined}send(event,data){const sendData={event:event,data:data||{}};this.source.postMessage(JSON.stringify(sendData),this.origin)}static default(){try{const parentStack=window.parent?window.frameElement&&window.frameElement.nodeName=="IFRAME"?window.parent:undefined:undefined;if(parentStack){return new RemoteInterface(parentStack,"*")}}catch(err){}return undefined}}module.exports=RemoteInterface},{}],37:[function(require,module,exports){const WrappedFunction=require("./wrapped-remote-function");class RemoteFunctionList{constructor(remoteName,functionObserver){this._remoteInterface=undefined;this._functionObserver=functionObserver;this._remoteName=remoteName;return new Proxy(this,{get:(target,prop,receiver)=>{if(prop==="watch"){throw new Error("RemoteFunctionList.watch cannot watch execution of remote functions from current context. Did you mean to use Plattar.messenger.self instead?")}if(prop==="clear"){throw new Error("RemoteFunctionList.clear cannot clear/remove remote functions from current context. Did you mean to use Plattar.messenger.self.clear() instead?")}if(prop==="purge"){throw new Error("RemoteFunctionList.purge cannot clear/remove remote functions from current context. Did you mean to use Plattar.messenger.self.purge() instead?")}switch(prop){case"setup":case"isValid":case"_remoteInterface":case"_functionObserver":case"name":case"_remoteName":return target[prop];default:break}if(!target[prop]){target[prop]=new WrappedFunction(prop,target._remoteInterface,target._functionObserver)}return(...args)=>{return target[prop].exec(...args)}},set:(target,prop,value)=>{if(prop==="_remoteInterface"){target[prop]=value;return true}throw new Error("RemoteFunctionList.set cannot add a remote function from current context. Use Plattar.messenger.self instead")}})}setup(remoteInterface){if(typeof remoteInterface.send!=="function"){throw new Error("RemoteFunctionList.setup() provided invalid interface")}this._remoteInterface=remoteInterface}get name(){return this._remoteName}isValid(){return this._remoteInterface!=undefined}}module.exports=RemoteFunctionList},{"./wrapped-remote-function":38}],38:[function(require,module,exports){const Util=require("../util/util.js");const GlobalEventHandler=require("../global-event-handler.js");class WrappedRemoteFunction{constructor(funcName,remoteInterface,functionObserver){this._funcName=funcName;this._remoteInterface=remoteInterface;this._functionObserver=functionObserver;this._callInstances={};GlobalEventHandler.instance().listen("__messenger__exec_fnc_result",(src,data)=>{const instanceID=data.instance_id;if(data.function_name!==this._funcName){return}if(!this._callInstances[instanceID]){return}const promise=this._callInstances[instanceID];delete this._callInstances[instanceID];if(data.function_status==="success"){this._functionObserver.call(this._funcName,{type:"return",state:"success",data:data.function_args});promise.accept(data.function_args)}else{this._functionObserver.call(this._funcName,{type:"return",state:"exception",data:new Error(data.function_args)});promise.reject(new Error(data.function_args))}})}exec(...args){const instanceID=Util.id();if(this._callInstances[instanceID]){return new Promise((accept,reject)=>{return reject(new Error("WrappedRemoteFunction.exec() cannot execute function. System generated duplicate Instance ID. PRNG needs checking"))})}return new Promise((accept,reject)=>{this._callInstances[instanceID]={accept:accept,reject:reject};this._remoteInterface.send("__messenger__exec_fnc",{instance_id:instanceID,function_name:this._funcName,function_args:args});this._functionObserver.call(this._funcName,{type:"call",state:"success",data:args})})}}module.exports=WrappedRemoteFunction},{"../global-event-handler.js":34,"../util/util.js":39}],39:[function(require,module,exports){class Util{static id(){return Math.abs(Math.floor(Math.random()*1e13))}static isPromise(obj){return!!obj&&(typeof obj==="object"||typeof obj==="function")&&typeof obj.then==="function"}static isError(e){return e&&e.stack&&e.message&&typeof e.stack==="string"&&typeof e.message==="string"}static isFunction(obj){return obj&&obj instanceof Function}}module.exports=Util},{}],40:[function(require,module,exports){module.exports="1.153.3"},{}],41:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.AnalyticsData=void 0;const util_1=require("../util/util");class AnalyticsData{constructor(){this._map=new Map;this.push("source","embed");this.push("pageTitle",document.title);this.push("pageURL",location.href);this.push("referrer",document.referrer);this.push("user_id",AnalyticsData.getUserID())}push(key,value){this._map.set(key,value)}get(key){return this._map.get(key)}get data(){return Object.fromEntries(this._map)}get map(){return this._map}static getUserID(){const key="plattar_user_id";let userID=null;try{userID=localStorage.getItem(key)}catch(err){userID=util_1.Util.generateUUID();try{localStorage.setItem(key,userID)}catch(_err){}}if(!userID){userID=util_1.Util.generateUUID();try{localStorage.setItem(key,userID)}catch(_err){}}return userID}}exports.AnalyticsData=AnalyticsData},{"../util/util":46}],42:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.Analytics=void 0;const basic_http_1=__importDefault(require("../util/basic-http"));const analytics_data_1=require("./analytics-data");const google_analytics_1=require("./google/google-analytics");class Analytics{constructor(applicationID){this._pageTime=null;this.origin="production";this.event="track";this.isBeacon=false;this._applicationID=applicationID;this._data=new analytics_data_1.AnalyticsData;this._ga=new google_analytics_1.GoogleAnalytics;this._handlePageHide=()=>{if(document.visibilityState==="hidden"){this._pageTime=new Date}else if(this._pageTime){const time2=new Date;const diff=time2.getTime()-this._pageTime.getTime();const data=this.data;data.push("eventAction","View Time");data.push("viewTime",diff);data.push("eventLabel",diff);this.write();this._pageTime=null;document.removeEventListener("visibilitychange",this._handlePageHide,false)}}}get googleAnalytics(){return this._ga}query(query=null){return new Promise((accept,reject)=>{if(!query){return reject(new Error("Analytics.query() - provided query was null"))}const url=this.origin==="dev"?"https://localhost:3008/v3/read":"https://analytics.plattar.com/v3/read";const data={data:{attributes:{application_id:this._applicationID,event:this.event,query:query}}};basic_http_1.default.exec("POST",url,data).then(result=>{accept(result?result:{})}).catch(reject)})}write(){return new Promise((accept,reject)=>{const data=this._data;const url=this.origin==="dev"?"https://localhost:3008/v3/write":"https://analytics.plattar.com/v3/write";data.push("applicationId",this._applicationID);const sendData={data:{attributes:{application_id:this._applicationID,event:this.event,origin:this.origin,fields:data.data}}};if(this.isBeacon===false){basic_http_1.default.exec("POST",url,sendData).then(result=>{accept(result?result:{})}).catch(reject)}else{basic_http_1.default.execBeacon(url,sendData).then(result=>{accept(result?result:{})}).catch(reject)}this.googleAnalytics.write(this.event,this.data)})}startRecordEngagement(){document.addEventListener("visibilitychange",this._handlePageHide,false)}get data(){return this._data}}exports.Analytics=Analytics},{"../util/basic-http":45,"./analytics-data":41,"./google/google-analytics":43}],43:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.GoogleAnalytics=void 0;class GoogleAnalytics{constructor(){this._tokens=new Set}addUniversalToken(gaToken){if(this._tokens.has(gaToken)){return}this._tokens.add(gaToken);const gInstance=gtag;if(gInstance){gInstance("config",gaToken,{custom_map:{dimension1:"application_id",dimension2:"application_title",dimension3:"platform"}});gInstance("event","app_dimension",{platform:"Viewer"})}}addToken(gaToken){if(this._tokens.has(gaToken)){return}this._tokens.add(gaToken);const gInstance=gtag;if(gInstance){gInstance("config",gaToken,{custom_map:{dimension1:"application_id",dimension2:"application_title"}})}}write(event,data){if(this._tokens.size<=0){return}this._tokens.forEach(token=>{const gInstance=gtag;if(gInstance){const eventCategory=data.get("eventCategory");const eventAction=data.get("eventAction");const eventLabel=data.get("eventLabel");var fields={send_to:token,event_category:eventCategory,event_label:eventLabel};data.map.forEach((value,key)=>{fields[key]=value});if(event==="track"){gInstance("event",eventAction,fields)}if(event==="pageview"){gInstance("event","pageview",fields)}}})}}exports.GoogleAnalytics=GoogleAnalytics},{}],44:[function(require,module,exports){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k);__setModuleDefault(result,mod);return result};var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.AnalyticsData=exports.Analytics=exports.version=void 0;exports.version=__importStar(require("./version"));var analytics_1=require("./analytics/analytics");Object.defineProperty(exports,"Analytics",{enumerable:true,get:function(){return analytics_1.Analytics}});var analytics_data_1=require("./analytics/analytics-data");Object.defineProperty(exports,"AnalyticsData",{enumerable:true,get:function(){return analytics_data_1.AnalyticsData}});const version_1=__importDefault(require("./version"));console.log("using @plattar/plattar-analytics v"+version_1.default)},{"./analytics/analytics":42,"./analytics/analytics-data":41,"./version":47}],45:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});class BasicHTTP{static execBeacon(path,data=null){return new Promise((accept,reject)=>{try{const body=data||{};const headers={type:"application/json"};const blob=new Blob([JSON.stringify(body)],headers);const result=navigator.sendBeacon(path,blob);if(result){return accept({})}else{return reject(new Error("BasicHTTP.execBeacon() - could not query request"))}}catch(err){return reject(err)}})}static exec(protocol,path,data=null){return new Promise((accept,reject)=>{try{const http=new XMLHttpRequest;http.open(protocol,path,true);http.setRequestHeader("Content-Type","application/json");http.setRequestHeader("Accept","application/json");http.onload=e=>{if(http.status===200){if(http.response){try{const resp=JSON.parse(http.response);return accept(resp)}catch(_err){}}return accept({})}else{return reject(e)}};http.onerror=e=>{return reject(e)};http.onprogress=_e=>{};http.send(data?JSON.stringify(data):null)}catch(e){return reject(e)}})}}exports.default=BasicHTTP},{}],46:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Util=void 0;const _lut=[];for(let i=0;i<256;i++){_lut[i]=(i<16?"0":"")+i.toString(16)}class Util{static generateUUID(){const d0=Math.random()*4294967295|0;const d1=Math.random()*4294967295|0;const d2=Math.random()*4294967295|0;const d3=Math.random()*4294967295|0;const uuid=_lut[d0&255]+_lut[d0>>8&255]+_lut[d0>>16&255]+_lut[d0>>24&255]+"-"+_lut[d1&255]+_lut[d1>>8&255]+"-"+_lut[d1>>16&15|64]+_lut[d1>>24&255]+"-"+_lut[d2&63|128]+_lut[d2>>8&255]+"-"+_lut[d2>>16&255]+_lut[d2>>24&255]+_lut[d3&255]+_lut[d3>>8&255]+_lut[d3>>16&255]+_lut[d3>>24&255];return uuid.toLowerCase()}}exports.Util=Util},{}],47:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default="1.152.2"},{}],48:[function(require,module,exports){"use strict";const Server=require("./server/plattar-server.js");const Util=require("./util/plattar-util.js");const Project=require("./types/application.js");const Scene=require("./types/scene/scene.js");const SceneAnnotation=require("./types/scene/scene-annotation.js");const SceneAudio=require("./types/scene/scene-audio.js");const SceneButton=require("./types/scene/scene-button.js");const SceneCamera=require("./types/scene/scene-camera.js");const SceneCarousel=require("./types/scene/scene-carousel.js");const SceneImage=require("./types/scene/scene-image.js");const SceneModel=require("./types/scene/scene-model.js");const ScenePanorama=require("./types/scene/scene-panorama.js");const ScenePoller=require("./types/scene/scene-poller.js");const SceneProduct=require("./types/scene/scene-product.js");const SceneShadow=require("./types/scene/scene-shadow.js");const SceneVideo=require("./types/scene/scene-video.js");const SceneVolumetric=require("./types/scene/scene-volumetric.js");const SceneYoutube=require("./types/scene/scene-youtube.js");const SceneScript=require("./types/scene/scene-script.js");const SceneGallery=require("./types/scene/scene-gallery.js");const SceneGalleryImage=require("./types/scene/scene-gallery-image.js");const Page=require("./types/page/page.js");const CardButton=require("./types/page/card-button.js");const CardHTML=require("./types/page/card-html.js");const CardIFrame=require("./types/page/card-iframe.js");const CardImage=require("./types/page/card-image.js");const CardMap=require("./types/page/card-map.js");const CardParagraph=require("./types/page/card-paragraph.js");const CardRow=require("./types/page/card-row.js");const CardSlider=require("./types/page/card-slider.js");const CardTitle=require("./types/page/card-title.js");const CardVideo=require("./types/page/card-video.js");const CardYoutube=require("./types/page/card-youtube.js");const Product=require("./types/product/product.js");const ProductVariation=require("./types/product/product-variation.js");const ProductAnnotation=require("./types/product/product-annotation.js");const FileAudio=require("./types/file/file-audio.js");const FileVideo=require("./types/file/file-video.js");const FileModel=require("./types/file/file-model.js");const FileImage=require("./types/file/file-image.js");const FileScript=require("./types/file/file-script.js");const FileJSON=require("./types/file/file-json.js");const ScriptEvent=require("./types/misc/script-event.js");const Tag=require("./types/misc/tag.js");const ApplicationBuild=require("./types/misc/application-build.js");const AsyncJob=require("./types/misc/async-job.js");const AssetLibrary=require("./types/misc/asset-library.js");const TriggerImage=require("./types/trigger/trigger-image.js");const Brief=require("./types/content-pipeline/brief.js");const CommentBrief=require("./types/content-pipeline/comment-brief.js");const CommentQuote=require("./types/content-pipeline/comment-quote.js");const CommentSolution=require("./types/content-pipeline/comment-solution.js");const PipelineUser=require("./types/content-pipeline/pipeline-user.js");const Quote=require("./types/content-pipeline/quote.js");const Rating=require("./types/content-pipeline/rating.js");const Solution=require("./types/content-pipeline/solution.js");const Folder=require("./types/content-pipeline/folder.js");const SceneObject=require("./types/scene/scene-base.js");const CardObject=require("./types/page/card-base.js");const ProductObject=require("./types/product/product-base.js");const FileObject=require("./types/file/file-base.js");const Version=require("./version");Server.create();console.log("using @plattar/plattar-api v"+Version);module.exports={Server:Server,Util:Util,Project:Project,Scene:Scene,SceneAnnotation:SceneAnnotation,SceneAudio:SceneAudio,SceneButton:SceneButton,SceneCamera:SceneCamera,SceneCarousel:SceneCarousel,SceneImage:SceneImage,SceneModel:SceneModel,ScenePanorama:ScenePanorama,ScenePoller:ScenePoller,SceneProduct:SceneProduct,SceneShadow:SceneShadow,SceneVideo:SceneVideo,SceneVolumetric:SceneVolumetric,SceneYoutube:SceneYoutube,SceneScript:SceneScript,SceneGallery:SceneGallery,SceneGalleryImage:SceneGalleryImage,Page:Page,CardButton:CardButton,CardHTML:CardHTML,CardIFrame:CardIFrame,CardImage:CardImage,CardMap:CardMap,CardParagraph:CardParagraph,CardRow:CardRow,CardSlider:CardSlider,CardTitle:CardTitle,CardVideo:CardVideo,CardYoutube:CardYoutube,Product:Product,ProductVariation:ProductVariation,ProductAnnotation:ProductAnnotation,FileAudio:FileAudio,FileVideo:FileVideo,FileModel:FileModel,FileImage:FileImage,FileScript:FileScript,FileJSON:FileJSON,FileObject:FileObject,ScriptEvent:ScriptEvent,Tag:Tag,ApplicationBuild:ApplicationBuild,AsyncJob:AsyncJob,AssetLibrary:AssetLibrary,TriggerImage:TriggerImage,Brief:Brief,CommentBrief:CommentBrief,CommentQuote:CommentQuote,CommentSolution:CommentSolution,PipelineUser:PipelineUser,Quote:Quote,Rating:Rating,Solution:Solution,Folder:Folder,SceneObject:SceneObject,CardObject:CardObject,ProductObject:ProductObject,version:Version}},{"./server/plattar-server.js":50,"./types/application.js":51,"./types/content-pipeline/brief.js":52,"./types/content-pipeline/comment-brief.js":53,"./types/content-pipeline/comment-quote.js":54,"./types/content-pipeline/comment-solution.js":55,"./types/content-pipeline/folder.js":56,"./types/content-pipeline/pipeline-user.js":57,"./types/content-pipeline/quote.js":58,"./types/content-pipeline/rating.js":59,"./types/content-pipeline/solution.js":60,"./types/file/file-audio.js":61,"./types/file/file-base.js":62,"./types/file/file-image.js":63,"./types/file/file-json.js":64,"./types/file/file-model.js":65,"./types/file/file-script.js":66,"./types/file/file-video.js":67,"./types/misc/application-build.js":71,"./types/misc/asset-library.js":72,"./types/misc/async-job.js":73,"./types/misc/script-event.js":74,"./types/misc/tag.js":75,"./types/page/card-base.js":76,"./types/page/card-button.js":77,"./types/page/card-html.js":78,"./types/page/card-iframe.js":79,"./types/page/card-image.js":80,"./types/page/card-map.js":81,"./types/page/card-paragraph.js":82,"./types/page/card-row.js":83,"./types/page/card-slider.js":84,"./types/page/card-title.js":85,"./types/page/card-video.js":86,"./types/page/card-youtube.js":87,"./types/page/page.js":88,"./types/product/product-annotation.js":89,"./types/product/product-base.js":90,"./types/product/product-variation.js":91,"./types/product/product.js":92,"./types/scene/scene-annotation.js":93,"./types/scene/scene-audio.js":94,"./types/scene/scene-base.js":95,"./types/scene/scene-button.js":96,"./types/scene/scene-camera.js":97,"./types/scene/scene-carousel.js":98,"./types/scene/scene-gallery-image.js":99,"./types/scene/scene-gallery.js":100,"./types/scene/scene-image.js":101,"./types/scene/scene-model.js":102,"./types/scene/scene-panorama.js":103,"./types/scene/scene-poller.js":104,"./types/scene/scene-product.js":105,"./types/scene/scene-script.js":106,"./types/scene/scene-shadow.js":107,"./types/scene/scene-video.js":108,"./types/scene/scene-volumetric.js":109,"./types/scene/scene-youtube.js":110,"./types/scene/scene.js":111,"./types/trigger/trigger-image.js":112,"./util/plattar-util.js":113,"./version":114}],49:[function(require,module,exports){const fetch=require("node-fetch");class PlattarQuery{constructor(target,server){if(!target){throw new Error("PlattarQuery cannot be created as target object cannot be null")}if(!server){throw new Error("PlattarQuery cannot be created as server object cannot be null")}this._target=target;this._server=server;this._params=[];this._getIncludeQuery=[]}get target(){return this._target}get server(){return this._server}getCookie(cname){try{let name=cname+"=";let decodedCookie=decodeURIComponent(document.cookie);let ca=decodedCookie.split(";");for(let i=0;i<ca.length;i++){let c=ca[i];while(c.charAt(0)==" "){c=c.substring(1)}if(c.indexOf(name)==0){return c.substring(name.length,c.length)}}}catch(error){}return""}_get(opt){return new Promise((resolve,reject)=>{const target=this.target;const server=this.server;if(!target.id){reject(new Error("PlattarQuery."+target.type()+".get() - object id is missing"));return}const options=opt||{cache:true};if(options.cache===true){const cached=PlattarQuery._GetGlobalCachedObject(target);if(cached){resolve(cached);return}}const origin=server.originLocation.api_read;const auth=server.authToken;const headers={cookie:"laravel_session="+this.getCookie("laravel_session")};Object.assign(headers,auth);const reqopts={method:"GET",headers:headers};const includeQuery=this._IncludeQuery;const params=this._ParamFor("get");let endpoint=origin+target.type()+"/"+target.id;if(includeQuery){endpoint=endpoint+"?include="+includeQuery}if(params){let appender=includeQuery?"&":"?";params.forEach(param=>{endpoint=endpoint+appender+param.key+"="+param.value;appender="&"})}fetch(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("PlattarQuery."+target.type()+".get("+target.id+") - critical error occured, cannot proceed")}}return new Error("PlattarQuery."+target.type()+".get("+target.id+") - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{const PlattarUtil=require("../util/plattar-util.js");PlattarUtil.reconstruct(target,json,options);resolve(target)}})})}_update(){return new Promise((resolve,reject)=>{const target=this.target;const server=this.server;if(!target.id){reject(new Error("PlattarQuery."+target.type()+".update() - object id is missing"));return}const origin=server.originLocation.api_write;const auth=server.authToken;const headers={Accept:"application/json","Content-Type":"application/json",cookie:"laravel_session="+this.getCookie("laravel_session")};Object.assign(headers,auth);const reqopts={method:"PATCH",headers:headers,body:JSON.stringify({data:{id:target.id,attributes:target.attributes},meta:target.meta||{}})};const params=this._ParamFor("update");let endpoint=origin+target.type()+"/"+target.id;if(params){let appender="?";params.forEach(param=>{endpoint=endpoint+appender+param.key+"="+param.value;appender="&"})}fetch(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("PlattarQuery."+target.type()+".update("+target.id+") - critical error occured, cannot proceed")}}return new Error("PlattarQuery."+target.type()+".update("+target.id+") - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{if(json.data){const PlattarUtil=require("../util/plattar-util.js");PlattarUtil.reconstruct(target,json,{cache:true})}resolve(target)}})})}_create(){return new Promise((resolve,reject)=>{const target=this.target;const server=this.server;const origin=server.originLocation.api_write;const auth=server.authToken;const headers={Accept:"application/json","Content-Type":"application/json",cookie:"laravel_session="+this.getCookie("laravel_session")};Object.assign(headers,auth);const reqopts={method:"POST",headers:headers,body:JSON.stringify({data:{attributes:target.attributes},meta:target.meta||{}})};const params=this._ParamFor("create");let endpoint=origin+target.type();if(params){let appender="?";params.forEach(param=>{endpoint=endpoint+appender+param.key+"="+param.value;appender="&"})}fetch(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("PlattarQuery."+target.type()+".create() - critical error occured, cannot proceed")}}return new Error("PlattarQuery."+target.type()+".create() - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{if(json.data){target._id=json.data.id;const PlattarUtil=require("../util/plattar-util.js");PlattarUtil.reconstruct(target,json,{cache:true})}resolve(target)}})})}_delete(){return new Promise((resolve,reject)=>{const target=this.target;const server=this.server;if(!target.id){reject(new Error("PlattarQuery."+target.type()+".delete() - object id is missing"));return}const origin=server.originLocation.api_write;const auth=server.authToken;const headers={Accept:"application/json","Content-Type":"application/json",cookie:"laravel_session="+this.getCookie("laravel_session")};Object.assign(headers,auth);const reqopts={method:"DELETE",headers:headers,body:JSON.stringify({data:{id:target.id,attributes:target.attributes},meta:target.meta||{}})};const params=this._ParamFor("delete");let endpoint=origin+target.type()+"/"+target.id;if(params){let appender="?";params.forEach(param=>{endpoint=endpoint+appender+param.key+"="+param.value;appender="&"})}fetch(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("PlattarQuery."+target.type()+".delete() - critical error occured, cannot proceed")}}return new Error("PlattarQuery."+target.type()+".delete() - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{if(json.data){target._id=json.data.id;const PlattarUtil=require("../util/plattar-util.js");PlattarUtil.reconstruct(target,json,{cache:true})}resolve(target)}})})}_addParameter(key,value,type){type=type||"all";this._params.push({key:key,value:value,type:type.toLowerCase()})}_include(args){if(!args||args.length<=0){return this}const PlattarUtil=require("../util/plattar-util.js");args.forEach(obj=>{if(Array.isArray(obj)){obj.forEach(strObject=>{if(typeof strObject==="string"||strObject instanceof String){this._getIncludeQuery.push(strObject)}else{throw new Error("PlattarQuery."+this.target.type()+".include(...args) - argument of Array must only include Strings")}})}else if(PlattarUtil.isPlattarObject(obj)){const type=obj.type();if(Array.isArray(type)){this._include(type)}else{this._getIncludeQuery.push(type)}}else{throw new Error("PlattarQuery."+this.target.type()+".include(...args) - argument must be of type PlattarObject or Array but was type="+typeof obj+" value="+obj)}});return this}_ParamFor(type){type=type||"all";const list=this._params.filter(objcheck=>{return objcheck.type===type||objcheck.type==="all"});if(list.length>0){return list}return undefined}get _IncludeQuery(){if(this._getIncludeQuery.length<=0){return undefined}return`${this._getIncludeQuery.map(item=>`${item}`).join(",")}`}}PlattarQuery._GlobalObjectCache={};PlattarQuery._InvalidateGlobalCache=()=>{PlattarQuery._GlobalObjectCache={}};PlattarQuery._HasGlobalCachedObject=obj=>{return PlattarQuery._GlobalObjectCache.hasOwnProperty(obj.id)};PlattarQuery._GetGlobalCachedObject=obj=>{return PlattarQuery._HasGlobalCachedObject(obj)?PlattarQuery._GlobalObjectCache[obj.id]:undefined};PlattarQuery._SetGlobalCachedObject=obj=>{};PlattarQuery._DeleteGlobalCachedObject=obj=>{if(PlattarQuery._HasGlobalCachedObject(obj)){delete PlattarQuery._GlobalObjectCache[obj.id]}};module.exports=PlattarQuery},{"../util/plattar-util.js":113,"node-fetch":144}],50:[function(require,module,exports){(function(process){(function(){const fetch=require("node-fetch");class PlattarServer{constructor(){this._authToken={};this._serverLocation=this.prod}get prod(){return PlattarServer.match("prod")}get isProd(){return this._serverLocation.type==="production"}get review(){return PlattarServer.match("review")}get isReview(){return this._serverLocation.type==="review"}get staging(){return PlattarServer.match("staging")}get isStaging(){return this._serverLocation.type==="staging"}get dev(){return PlattarServer.match("dev")}get isDev(){return this._serverLocation.type==="dev"}get authToken(){return this._authToken}get originLocation(){return this._serverLocation}auth(token,opt){const copt=opt||{validate:false};return new Promise((resolve,reject)=>{const server=this.originLocation.api_write;if(!server){reject(new Error("Plattar.auth(token) - cannot authenticate as server not set via Plattar.origin(server)"));return}if(!token){reject(new Error("Plattar.auth(token) - token variable is undefined"));return}if(!copt.validate){this._authToken={"plattar-auth-token":token};resolve(this);return}const endpoint=server+"plattaruser/xauth/validate";const options={method:"GET",headers:{"plattar-auth-token":token}};fetch(endpoint,options).then(res=>{if(res.ok){this._authToken={"plattar-auth-token":token};resolve(this)}else{reject(new Error("Plattar.auth(token) - failed to validate authentication token at "+endpoint))}})})}origin(server,opt){const copt=opt||{validate:false};return new Promise((resolve,reject)=>{if(!server){reject(new Error("Plattar.origin(server) - server variable is undefined"));return}if(!copt.validate){this._serverLocation=server;resolve(this);return}const endpoint=server.api_read+"ping";const options={method:"GET"};fetch(endpoint,options).then(res=>{if(res.ok){this._serverLocation=server;resolve(this)}else{reject(new Error("Plattar.origin(server) - failed to ping server at "+endpoint))}})})}}PlattarServer.match=serverName=>{switch(serverName.toLowerCase()){case"staging.plattar.space":case"cdn-staging.plattar.space":case"staging":return{base:"https://staging.plattar.space/",api_read:"https://api.plattar.space/v3/",api_write:"https://api.plattar.space/v3/",cdn:"https://cdn-staging.plattar.space/",cdn_image:"https://images.plattar.space/",analytics:"https://c.plattar.space/api/v2/analytics",type:"staging"};case"app.plattar.com":case"cdn.plattar.com":case"prod":case"production":return{base:"https://app.plattar.com/",api_read:"https://api.plattar.com/v3/",api_write:"https://api.plattar.com/v3/",cdn:"https://cdn.plattar.com/",cdn_image:"https://images.plattar.com/",analytics:"https://c.plattar.space/api/v2/analytics",type:"production"};case"review.plattar.com":case"review":case"qa":return{base:"https://review.plattar.com/",api_read:"https://review-api.plattar.com/v3/",api_write:"https://review-api.plattar.com/v3/",cdn:"https://cdn.plattar.com/",cdn_image:"https://images.plattar.com/",analytics:"https://c.plattar.space/api/v2/analytics",type:"review"};case"dev":case"developer":case"development":case"local":case"localhost":default:return{base:"https://localhost/",api_read:"https://localhost:3000/v3/",api_write:"https://localhost:3000/v3/",cdn:"https://cdn-dev.plattar.space/",cdn_image:"https://images-dev.plattar.space/",analytics:"https://localhost:3000/api/v2/analytics/",type:"dev"}}};PlattarServer.create=(origin,auth)=>{const newServer=new PlattarServer;if(origin){newServer.origin(origin)}if(auth){newServer.auth(auth)}PlattarServer._default=newServer;return newServer};PlattarServer.disableTLS=()=>{process.env.NODE_TLS_REJECT_UNAUTHORIZED="0"};PlattarServer.default=()=>{return PlattarServer._default};PlattarServer.location=()=>{return PlattarServer.default().originLocation};module.exports=PlattarServer}).call(this)}).call(this,require("_process"))},{_process:146,"node-fetch":144}],51:[function(require,module,exports){const PlattarBase=require("./interfaces/plattar-base.js");class Application extends PlattarBase{static type(){return"application"}}module.exports=Application},{"./interfaces/plattar-base.js":68}],52:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Brief extends PlattarBase{static type(){return"brief"}}module.exports=Brief},{"../interfaces/plattar-base":68}],53:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class CommentBrief extends PlattarBase{static type(){return"commentbrief"}}module.exports=CommentBrief},{"../interfaces/plattar-base":68}],54:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class CommentQuote extends PlattarBase{static type(){return"commentquote"}}module.exports=CommentQuote},{"../interfaces/plattar-base":68}],55:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class CommentSolution extends PlattarBase{static type(){return"commentsolution"}}module.exports=CommentSolution},{"../interfaces/plattar-base":68}],56:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Folder extends PlattarBase{static type(){return"folder"}}module.exports=Folder},{"../interfaces/plattar-base":68}],57:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class PipelineUser extends PlattarBase{static type(){return"pipelineuser"}}module.exports=PipelineUser},{"../interfaces/plattar-base":68}],58:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Quote extends PlattarBase{static type(){return"quote"}}module.exports=Quote},{"../interfaces/plattar-base":68}],59:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Rating extends PlattarBase{static type(){return"rating"}}module.exports=Rating},{"../interfaces/plattar-base":68}],60:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base");class Solution extends PlattarBase{static type(){return"solution"}}module.exports=Solution},{"../interfaces/plattar-base":68}],61:[function(require,module,exports){const FileBase=require("./file-base.js");class FileAudio extends FileBase{static type(){return"fileaudio"}}module.exports=FileAudio},{"./file-base.js":62}],62:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");const Server=require("../../server/plattar-server.js");class FileBase extends PlattarBase{constructor(id,server){super(id,server||Server.default());if(this.constructor===FileBase){throw new Error("FileBase is abstract and cannot be created")}}static type(){const FileAudio=require("./file-audio.js");const FileVideo=require("./file-video.js");const FileModel=require("./file-model.js");const FileImage=require("./file-image.js");const FileJSON=require("./file-json.js");return[FileAudio,FileVideo,FileModel,FileImage,FileJSON]}get sourcePath(){if(!this.attributes.path){return null}return this.path+this.attributes.original_filename}get backupPath(){if(!this.attributes.path){return null}return this.path+this.attributes.original_upload}get path(){if(!this.attributes.path){return null}return this._query.server.originLocation.cdn+this.attributes.path}}module.exports=FileBase},{"../../server/plattar-server.js":50,"../interfaces/plattar-base.js":68,"./file-audio.js":61,"./file-image.js":63,"./file-json.js":64,"./file-model.js":65,"./file-video.js":67}],63:[function(require,module,exports){const FileBase=require("./file-base.js");class FileImage extends FileBase{static type(){return"fileimage"}}module.exports=FileImage},{"./file-base.js":62}],64:[function(require,module,exports){const FileBase=require("./file-base.js");class FileJSON extends FileBase{static type(){return"filejson"}}module.exports=FileJSON},{"./file-base.js":62}],65:[function(require,module,exports){const FileBase=require("./file-base.js");class FileModel extends FileBase{static type(){return"filemodel"}}module.exports=FileModel},{"./file-base.js":62}],66:[function(require,module,exports){const FileBase=require("./file-base.js");class FileScript extends FileBase{static type(){return"filescript"}}module.exports=FileScript},{"./file-base.js":62}],67:[function(require,module,exports){const FileBase=require("./file-base.js");class FileVideo extends FileBase{static type(){return"filevideo"}}module.exports=FileVideo},{"./file-base.js":62}],68:[function(require,module,exports){const PlattarObject=require("./plattar-object.js");const Server=require("../../server/plattar-server.js");class PlattarBase extends PlattarObject{constructor(id,server){super(id,server||Server.default());if(this.constructor===PlattarBase){throw new Error("PlattarBase is abstract and cannot be created")}}}module.exports=PlattarBase},{"../../server/plattar-server.js":50,"./plattar-object.js":70}],69:[function(require,module,exports){class PlattarObjectRelations{constructor(parent){this._parent=parent;this._relatedObjects={}}get parent(){return this._parent}_put(obj){if(!obj){return this}const PlattarUtil=require("../../util/plattar-util.js");if(!PlattarUtil.isPlattarObject(obj)){throw new Error("PlattarObjectRelations._put(PlattarObject) - argument must be type of PlattarObject")}if(!this._relatedObjects.hasOwnProperty(obj.type())){this._relatedObjects[obj.type()]=[]}this._relatedObjects[obj.type()].push(obj)}filter(obj,id){if(!obj){return[]}const PlattarUtil=require("../../util/plattar-util.js");if(!PlattarUtil.isPlattarObject(obj)){throw new Error("PlattarObjectRelations.filter(PlattarObject) - argument must be type of PlattarObject")}const type=obj.type();if(Array.isArray(type)){var compiledList=[];type.forEach(inObject=>{const retArray=this.filter(inObject,id);if(retArray.length>0){compiledList=compiledList.concat(retArray)}});return compiledList}if(!this._relatedObjects.hasOwnProperty(type)){return[]}const list=this._relatedObjects[type];if(!id){return list}return list.filter(objcheck=>{return objcheck.id===id})}find(obj,id=null){if(id===undefined){return undefined}const list=this.filter(obj,id);if(list.length<=0){return undefined}return list[0]}}module.exports=PlattarObjectRelations},{"../../util/plattar-util.js":113}],70:[function(require,module,exports){const PlattarQuery=require("../../server/plattar-query.js");const PlattarObjectRelations=require("./plattar-object-relations.js");class PlattarObject{constructor(id,server){if(this.constructor===PlattarObject){throw new Error("PlattarObject is abstract and cannot be created")}this._id=id;this._attributes={};this._meta={};this._query=new PlattarQuery(this,server);this._relationships=new PlattarObjectRelations(this)}invalidate(){return PlattarQuery._DeleteGlobalCachedObject(this)}_cache(){return PlattarQuery._SetGlobalCachedObject(this)}get id(){return this._id}get attributes(){return this._attributes}get meta(){return this._meta}set overrideAttributes(attributes){this._attributes=Object.assign({},attributes)}get relationships(){return this._relationships}get(opt){return this._query._get(opt)}update(){return this._query._update()}create(){return this._query._create()}delete(){return this._query._delete()}static type(){throw new Error("PlattarObject.type() - not implemented")}type(){return this.constructor.type()}static include(...args){if(!args||args.length<=0){return[]}const includes=[this.type()];args.forEach(obj=>{if(Array.isArray(obj)){obj.forEach(strObject=>{if(typeof strObject==="string"||strObject instanceof String){includes.push(`${this.type()}.${strObject}`)}else{throw new Error("PlattarObject."+this.type()+".include(...args) - argument of Array must only include Strings")}})}else if(obj.prototype instanceof PlattarObject){includes.push(`${this.type()}.${obj.type()}`)}else{throw new Error("PlattarObject."+this.type()+".include(...args) - argument must be of type PlattarObject or Array but was type="+typeof obj+" value="+obj)}});return includes}include(...args){this._query._include(args);return this}addParameter(key,value,type){this._query._addParameter(key,value,type);return this}}module.exports=PlattarObject},{"../../server/plattar-query.js":49,"./plattar-object-relations.js":69}],71:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class ApplicationBuild extends PlattarBase{static type(){return"applicationbuild"}}module.exports=ApplicationBuild},{"../interfaces/plattar-base.js":68}],72:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class AssetLibrary extends PlattarBase{static type(){return"assetlibrary"}}module.exports=AssetLibrary},{"../interfaces/plattar-base.js":68}],73:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class AsyncJob extends PlattarBase{static type(){return"asyncjob"}set accessKey(code){this.addParameter("access_key",code,"update")}}module.exports=AsyncJob},{"../interfaces/plattar-base.js":68}],74:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class ScriptEvent extends PlattarBase{static type(){return"scriptevent"}}module.exports=ScriptEvent},{"../interfaces/plattar-base.js":68}],75:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class Tag extends PlattarBase{static type(){return"tag"}}module.exports=Tag},{"../interfaces/plattar-base.js":68}],76:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");const Server=require("../../server/plattar-server.js");class CardBase extends PlattarBase{constructor(id,server){super(id,server||Server.default());if(this.constructor===CardBase){throw new Error("CardBase is abstract and cannot be created")}}static type(){const CardButton=require("./card-button.js");const CardHTML=require("./card-html.js");const CardIFrame=require("./card-iframe.js");const CardImage=require("./card-image.js");const CardMap=require("./card-map.js");const CardParagraph=require("./card-paragraph.js");const CardRow=require("./card-row.js");const CardSlider=require("./card-slider.js");const CardTitle=require("./card-title.js");const CardVideo=require("./card-video.js");const CardYoutube=require("./card-youtube.js");return[CardButton,CardHTML,CardIFrame,CardImage,CardMap,CardParagraph,CardRow,CardSlider,CardTitle,CardVideo,CardYoutube]}}module.exports=CardBase},{"../../server/plattar-server.js":50,"../interfaces/plattar-base.js":68,"./card-button.js":77,"./card-html.js":78,"./card-iframe.js":79,"./card-image.js":80,"./card-map.js":81,"./card-paragraph.js":82,"./card-row.js":83,"./card-slider.js":84,"./card-title.js":85,"./card-video.js":86,"./card-youtube.js":87}],77:[function(require,module,exports){const CardBase=require("./card-base.js");class CardButton extends CardBase{static type(){return"cardbutton"}}module.exports=CardButton},{"./card-base.js":76}],78:[function(require,module,exports){const CardBase=require("./card-base.js");class CardHTML extends CardBase{static type(){return"cardhtml"}}module.exports=CardHTML},{"./card-base.js":76}],79:[function(require,module,exports){const CardBase=require("./card-base.js");class CardIFrame extends CardBase{static type(){return"cardiframe"}}module.exports=CardIFrame},{"./card-base.js":76}],80:[function(require,module,exports){const CardBase=require("./card-base.js");class CardImage extends CardBase{static type(){return"cardimage"}}module.exports=CardImage},{"./card-base.js":76}],81:[function(require,module,exports){const CardBase=require("./card-base.js");class CardMap extends CardBase{static type(){return"cardmap"}}module.exports=CardMap},{"./card-base.js":76}],82:[function(require,module,exports){const CardBase=require("./card-base.js");class CardParagraph extends CardBase{static type(){return"cardparagraph"}}module.exports=CardParagraph},{"./card-base.js":76}],83:[function(require,module,exports){const CardBase=require("./card-base.js");class CardRow extends CardBase{static type(){return"cardrow"}}module.exports=CardRow},{"./card-base.js":76}],84:[function(require,module,exports){const CardBase=require("./card-base.js");class CardSlider extends CardBase{static type(){return"cardslider"}}module.exports=CardSlider},{"./card-base.js":76}],85:[function(require,module,exports){const CardBase=require("./card-base.js");class CardTitle extends CardBase{static type(){return"cardtitle"}}module.exports=CardTitle},{"./card-base.js":76}],86:[function(require,module,exports){const CardBase=require("./card-base.js");class CardVideo extends CardBase{static type(){return"cardvideo"}}module.exports=CardVideo},{"./card-base.js":76}],87:[function(require,module,exports){const CardBase=require("./card-base.js");class CardYoutube extends CardBase{static type(){return"cardyoutube"}}module.exports=CardYoutube},{"./card-base.js":76}],88:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class Page extends PlattarBase{static type(){return"page"}}module.exports=Page},{"../interfaces/plattar-base.js":68}],89:[function(require,module,exports){const ProductBase=require("./product-base.js");class ProductAnnotation extends ProductBase{static type(){return"productannotation"}}module.exports=ProductAnnotation},{"./product-base.js":90}],90:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");const Server=require("../../server/plattar-server.js");class ProductBase extends PlattarBase{constructor(id,server){super(id,server||Server.default());if(this.constructor===ProductBase){throw new Error("ProductBase is abstract and cannot be created")}}static type(){const ProductVariation=require("./product-variation.js");const ProductAnnotation=require("./product-annotation.js");return[ProductAnnotation,ProductVariation]}}module.exports=ProductBase},{"../../server/plattar-server.js":50,"../interfaces/plattar-base.js":68,"./product-annotation.js":89,"./product-variation.js":91}],91:[function(require,module,exports){const ProductBase=require("./product-base.js");class ProductVariation extends ProductBase{static type(){return"productvariation"}}module.exports=ProductVariation},{"./product-base.js":90}],92:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class Product extends PlattarBase{static type(){return"product"}}module.exports=Product},{"../interfaces/plattar-base.js":68}],93:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneAnnotation extends SceneBase{static type(){return"sceneannotation"}}module.exports=SceneAnnotation},{"./scene-base.js":95}],94:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneAudio extends SceneBase{static type(){return"sceneaudio"}}module.exports=SceneAudio},{"./scene-base.js":95}],95:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");const Server=require("../../server/plattar-server.js");class SceneBase extends PlattarBase{constructor(id,server){super(id,server||Server.default());if(this.constructor===SceneBase){throw new Error("SceneBase is abstract and cannot be created")}}static type(){const SceneAnnotation=require("./scene-annotation.js");const SceneAudio=require("./scene-audio.js");const SceneButton=require("./scene-button.js");const SceneCamera=require("./scene-camera.js");const SceneCarousel=require("./scene-carousel.js");const SceneImage=require("./scene-image.js");const SceneModel=require("./scene-model.js");const ScenePanorama=require("./scene-panorama.js");const ScenePoller=require("./scene-poller.js");const SceneProduct=require("./scene-product.js");const SceneShadow=require("./scene-shadow.js");const SceneVideo=require("./scene-video.js");const SceneVolumetric=require("./scene-volumetric.js");const SceneYoutube=require("./scene-youtube.js");return[SceneAnnotation,SceneAudio,SceneButton,SceneCamera,SceneCarousel,SceneImage,SceneModel,ScenePanorama,ScenePoller,SceneProduct,SceneShadow,SceneVideo,SceneVolumetric,SceneYoutube]}}module.exports=SceneBase},{"../../server/plattar-server.js":50,"../interfaces/plattar-base.js":68,"./scene-annotation.js":93,"./scene-audio.js":94,"./scene-button.js":96,"./scene-camera.js":97,"./scene-carousel.js":98,"./scene-image.js":101,"./scene-model.js":102,"./scene-panorama.js":103,"./scene-poller.js":104,"./scene-product.js":105,"./scene-shadow.js":107,"./scene-video.js":108,"./scene-volumetric.js":109,"./scene-youtube.js":110}],96:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneButton extends SceneBase{static type(){return"scenebutton"}}module.exports=SceneButton},{"./scene-base.js":95}],97:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneCamera extends SceneBase{static type(){return"scenecamera"}}module.exports=SceneCamera},{"./scene-base.js":95}],98:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneCarousel extends SceneBase{static type(){return"scenecarousel"}}module.exports=SceneCarousel},{"./scene-base.js":95}],99:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class SceneGalleryImage extends PlattarBase{static type(){return"scenegalleryimage"}}module.exports=SceneGalleryImage},{"../interfaces/plattar-base.js":68}],100:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class SceneGallery extends PlattarBase{static type(){return"scenegallery"}}module.exports=SceneGallery},{"../interfaces/plattar-base.js":68}],101:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneImage extends SceneBase{static type(){return"sceneimage"}}module.exports=SceneImage},{"./scene-base.js":95}],102:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneModel extends SceneBase{static type(){return"scenemodel"}}module.exports=SceneModel},{"./scene-base.js":95}],103:[function(require,module,exports){const SceneBase=require("./scene-base.js");class ScenePanorama extends SceneBase{static type(){return"scenepanorama"}}module.exports=ScenePanorama},{"./scene-base.js":95}],104:[function(require,module,exports){const SceneBase=require("./scene-base.js");class ScenePoller extends SceneBase{static type(){return"scenepoller"}}module.exports=ScenePoller},{"./scene-base.js":95}],105:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneProduct extends SceneBase{static type(){return"sceneproduct"}}module.exports=SceneProduct},{"./scene-base.js":95}],106:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneScript extends SceneBase{static type(){return"scenescript"}}module.exports=SceneScript},{"./scene-base.js":95}],107:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneShadow extends SceneBase{static type(){return"sceneshadow"}}module.exports=SceneShadow},{"./scene-base.js":95}],108:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneVideo extends SceneBase{static type(){return"scenevideo"}}module.exports=SceneVideo},{"./scene-base.js":95}],109:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneVolumetric extends SceneBase{static type(){return"scenevolumetric"}}module.exports=SceneVolumetric},{"./scene-base.js":95}],110:[function(require,module,exports){const SceneBase=require("./scene-base.js");class SceneYoutube extends SceneBase{static type(){return"sceneyoutube"}}module.exports=SceneYoutube},{"./scene-base.js":95}],111:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class Scene extends PlattarBase{static type(){return"scene"}}module.exports=Scene},{"../interfaces/plattar-base.js":68}],112:[function(require,module,exports){const PlattarBase=require("../interfaces/plattar-base.js");class TriggerImage extends PlattarBase{static type(){return"triggerimage"}}module.exports=TriggerImage},{"../interfaces/plattar-base.js":68}],113:[function(require,module,exports){const Application=require("../types/application.js");const Scene=require("../types/scene/scene.js");const SceneAnnotation=require("../types/scene/scene-annotation.js");const SceneAudio=require("../types/scene/scene-audio.js");const SceneButton=require("../types/scene/scene-button.js");const SceneCamera=require("../types/scene/scene-camera.js");const SceneCarousel=require("../types/scene/scene-carousel.js");const SceneImage=require("../types/scene/scene-image.js");const SceneModel=require("../types/scene/scene-model.js");const ScenePanorama=require("../types/scene/scene-panorama.js");const ScenePoller=require("../types/scene/scene-poller.js");const SceneProduct=require("../types/scene/scene-product.js");const SceneShadow=require("../types/scene/scene-shadow.js");const SceneVideo=require("../types/scene/scene-video.js");const SceneVolumetric=require("../types/scene/scene-volumetric.js");const SceneYoutube=require("../types/scene/scene-youtube.js");const SceneScript=require("../types/scene/scene-script.js");const SceneGallery=require("../types/scene/scene-gallery.js");const SceneGalleryImage=require("../types/scene/scene-gallery-image.js");const Page=require("../types/page/page.js");const CardButton=require("../types/page/card-button.js");const CardHTML=require("../types/page/card-html.js");const CardIFrame=require("../types/page/card-iframe.js");const CardImage=require("../types/page/card-image.js");const CardMap=require("../types/page/card-map.js");const CardParagraph=require("../types/page/card-paragraph.js");const CardRow=require("../types/page/card-row.js");const CardSlider=require("../types/page/card-slider.js");const CardTitle=require("../types/page/card-title.js");const CardVideo=require("../types/page/card-video.js");const CardYoutube=require("../types/page/card-youtube.js");const Product=require("../types/product/product.js");const ProductVariation=require("../types/product/product-variation.js");const ProductAnnotation=require("../types/product/product-annotation.js");const FileAudio=require("../types/file/file-audio.js");const FileVideo=require("../types/file/file-video.js");const FileModel=require("../types/file/file-model.js");const FileImage=require("../types/file/file-image.js");const FileScript=require("../types/file/file-script.js");const FileJSON=require("../types/file/file-json.js");const TriggerImage=require("../types/trigger/trigger-image.js");const Brief=require("../types/content-pipeline/brief.js");const CommentBrief=require("../types/content-pipeline/comment-brief.js");const CommentQuote=require("../types/content-pipeline/comment-quote.js");const CommentSolution=require("../types/content-pipeline/comment-solution.js");const PipelineUser=require("../types/content-pipeline/pipeline-user.js");const Quote=require("../types/content-pipeline/quote.js");const Rating=require("../types/content-pipeline/rating.js");const Solution=require("../types/content-pipeline/solution.js");const Folder=require("../types/content-pipeline/folder.js");const ScriptEvent=require("../types/misc/script-event.js");const Tag=require("../types/misc/tag.js");const ApplicationBuild=require("../types/misc/application-build.js");const AsyncJob=require("../types/misc/async-job.js");const AssetLibrary=require("../types/misc/asset-library");class PlattarUtil{}PlattarUtil.isPlattarObject=obj=>{const PlattarObject=require("../types/interfaces/plattar-object.js");if(obj&&obj.prototype&&obj.prototype instanceof PlattarObject){return true}if(obj&&obj instanceof PlattarObject){return true}return false};PlattarUtil.reconstruct=(parent,json,options)=>{parent._attributes=json.data.attributes;if(options.cache===true){parent._cache()}const server=parent._query.server;if(json.data.relationships){for(const[key,value]of Object.entries(json.data.relationships)){const data=value.data;if(Array.isArray(data)){data.forEach(item=>{const construct=PlattarUtil.create(key,item.id,server);if(construct){construct._attributes=item.attributes||{};parent.relationships._put(construct)}})}else{const construct=PlattarUtil.create(key,data.id,server);if(construct){construct._attributes=data.attributes||{};parent.relationships._put(construct)}}}}if(json.included){json.included.forEach(item=>{const existing=parent.relationships.find(PlattarUtil.match(item.type),item.id);if(existing){PlattarUtil.reconstruct(existing,{data:item,included:json.included},options)}})}};PlattarUtil.create=(type,id,server)=>{const _DynamicClass=PlattarUtil.match(type);if(_DynamicClass){return new _DynamicClass(id,server)}return undefined};PlattarUtil.match=type=>{switch(type){case Application.type():return Application;case Scene.type():return Scene;case SceneAnnotation.type():return SceneAnnotation;case SceneAudio.type():return SceneAudio;case SceneButton.type():return SceneButton;case SceneCamera.type():return SceneCamera;case SceneCarousel.type():return SceneCarousel;case SceneImage.type():return SceneImage;case SceneModel.type():return SceneModel;case ScenePanorama.type():return ScenePanorama;case ScenePoller.type():return ScenePoller;case SceneProduct.type():return SceneProduct;case SceneShadow.type():return SceneShadow;case SceneVideo.type():return SceneVideo;case SceneVolumetric.type():return SceneVolumetric;case SceneYoutube.type():return SceneYoutube;case SceneScript.type():return SceneScript;case SceneGallery.type():return SceneGallery;case SceneGalleryImage.type():return SceneGalleryImage;case Page.type():return Page;case CardButton.type():return CardButton;case CardHTML.type():return CardHTML;case CardIFrame.type():return CardIFrame;case Product.type():return Product;case ProductVariation.type():return ProductVariation;case ProductAnnotation.type():return ProductAnnotation;case FileAudio.type():return FileAudio;case FileVideo.type():return FileVideo;case FileModel.type():return FileModel;case FileImage.type():return FileImage;case FileScript.type():return FileScript;case FileJSON.type():return FileJSON;case CardMap.type():return CardMap;case CardParagraph.type():return CardParagraph;case CardRow.type():return CardRow;case CardSlider.type():return CardSlider;case CardTitle.type():return CardTitle;case CardVideo.type():return CardVideo;case CardYoutube.type():return CardYoutube;case CardImage.type():return CardImage;case ScriptEvent.type():return ScriptEvent;case Tag.type():return Tag;case ApplicationBuild.type():return ApplicationBuild;case AsyncJob.type():return AsyncJob;case AssetLibrary.type():return AssetLibrary;case TriggerImage.type():return TriggerImage;case Brief.type():return Brief;case CommentBrief.type():return CommentBrief;case CommentQuote.type():return CommentQuote;case CommentSolution.type():return CommentSolution;case PipelineUser.type():return PipelineUser;case Quote.type():return Quote;case Rating.type():return Rating;case Solution.type():return Solution;case Folder.type():return Folder;default:{console.warn('PlattarUtil.match(type) - provided type of "'+type+'" does not exist and cannot be created');return undefined}}};module.exports=PlattarUtil},{"../types/application.js":51,"../types/content-pipeline/brief.js":52,"../types/content-pipeline/comment-brief.js":53,"../types/content-pipeline/comment-quote.js":54,"../types/content-pipeline/comment-solution.js":55,"../types/content-pipeline/folder.js":56,"../types/content-pipeline/pipeline-user.js":57,"../types/content-pipeline/quote.js":58,"../types/content-pipeline/rating.js":59,"../types/content-pipeline/solution.js":60,"../types/file/file-audio.js":61,"../types/file/file-image.js":63,"../types/file/file-json.js":64,"../types/file/file-model.js":65,"../types/file/file-script.js":66,"../types/file/file-video.js":67,"../types/interfaces/plattar-object.js":70,"../types/misc/application-build.js":71,"../types/misc/asset-library":72,"../types/misc/async-job.js":73,"../types/misc/script-event.js":74,"../types/misc/tag.js":75,"../types/page/card-button.js":77,"../types/page/card-html.js":78,"../types/page/card-iframe.js":79,"../types/page/card-image.js":80,"../types/page/card-map.js":81,"../types/page/card-paragraph.js":82,"../types/page/card-row.js":83,"../types/page/card-slider.js":84,"../types/page/card-title.js":85,"../types/page/card-video.js":86,"../types/page/card-youtube.js":87,"../types/page/page.js":88,"../types/product/product-annotation.js":89,"../types/product/product-variation.js":91,"../types/product/product.js":92,"../types/scene/scene-annotation.js":93,"../types/scene/scene-audio.js":94,"../types/scene/scene-button.js":96,"../types/scene/scene-camera.js":97,"../types/scene/scene-carousel.js":98,"../types/scene/scene-gallery-image.js":99,"../types/scene/scene-gallery.js":100,"../types/scene/scene-image.js":101,"../types/scene/scene-model.js":102,"../types/scene/scene-panorama.js":103,"../types/scene/scene-poller.js":104,"../types/scene/scene-product.js":105,"../types/scene/scene-script.js":106,"../types/scene/scene-shadow.js":107,"../types/scene/scene-video.js":108,"../types/scene/scene-volumetric.js":109,"../types/scene/scene-youtube.js":110,"../types/scene/scene.js":111,"../types/trigger/trigger-image.js":112}],114:[function(require,module,exports){module.exports="1.186.3"},{}],115:[function(require,module,exports){const QRCodeStyling=require("qr-code-styling");const hash=require("object-hash");class BaseElement extends HTMLElement{constructor(){super()}connectedCallback(){if(this.hasAttribute("url")){this.renderQRCode()}const observer=new MutationObserver(mutations=>{mutations.forEach(mutation=>{if(mutation.type==="attributes"){if(this.hasAttribute("url")){this.renderQRCode()}}})});observer.observe(this,{attributes:true})}download(options){const opt=options||{name:"plattar-qrcode",extension:"png"};if(this._qrCode){this._qrCode.download(opt)}}renderQRCode(){const url=this.hasAttribute("url")?this.getAttribute("url"):undefined;if(!url){console.warn('PlattarQR.renderQRCode() - required attribute "url" is missing or invalid, QR Code will not render');return}const width=this.hasAttribute("width")?this.getAttribute("width"):"100%";const height=this.hasAttribute("height")?this.getAttribute("height"):"100%";const margin=this.hasAttribute("margin")?this.getAttribute("margin"):0;const image=this.hasAttribute("image")?this.getAttribute("image"):undefined;const color=this.hasAttribute("color")?this.getAttribute("color"):"#000000";const style=this.hasAttribute("qr-type")?this.getAttribute("qr-type"):"default";this._optionsHash="0";this._options=this._options||{imageOptions:{hideBackgroundDots:true,imageSize:.4,margin:0},dotsOptions:{type:"rounded"},backgroundOptions:{color:"#ffffff"},dotsOptionsHelper:{colorType:{single:true,gradient:false},gradient:{linear:true,radial:false,color1:"#6a1a4c",color2:"#6a1a4c",rotation:"0"}},cornersSquareOptions:{type:"extra-rounded"},cornersSquareOptionsHelper:{colorType:{single:true,gradient:false},gradient:{linear:true,radial:false,color1:"#000000",color2:"#000000",rotation:"0"}},cornersDotOptions:{type:"dot"},cornersDotOptionsHelper:{colorType:{single:true,gradient:false},gradient:{linear:true,radial:false,color1:"#000000",color2:"#000000",rotation:"0"}},backgroundOptionsHelper:{colorType:{single:true,gradient:false},gradient:{linear:true,radial:false,color1:"#ffffff",color2:"#ffffff",rotation:"0"}},width:1024,height:1024,type:"canvas"};this._options.margin=margin;this._options.image=image;this._options.dotsOptions.color=color;this._options.cornersDotOptions.color=color;this._options.cornersSquareOptions.color=color;switch(style){case"dots":this._options.dotsOptions.type="dots";break;case"default":default:this._options.dotsOptions.type="rounded"}const shortenURL=this.hasAttribute("shorten")?this.getAttribute("shorten"):"false";if(shortenURL&&shortenURL.toLowerCase()==="true"){this._ShortenURL(url).then(newURL=>{const updatedURL=this.hasAttribute("url")?this.getAttribute("url"):undefined;if(updatedURL===url){this._GenerateQRCode(newURL,width,height)}}).catch(_err=>{console.warn(_err);const updatedURL=this.hasAttribute("url")?this.getAttribute("url"):undefined;if(updatedURL===url){this._GenerateQRCode(url,width,height)}})}else{this._GenerateQRCode(url,width,height)}}_UpdateCanvas(width,height){if(!this._qrCode){return}const canvas=this._qrCode._domCanvas||this._qrCode._canvas;if(canvas){if(canvas.style.width!=="100%"){canvas.style.width="100%"}if(canvas.style.height!=="100%"){canvas.style.height="100%"}}if(this._divContainer){const div=this._divContainer;if(div.style.width!==width){div.style.width=width}if(div.style.height!==height){div.style.height=height}}}_GenerateQRCode(url,width,height){this._options.data=url;const shadow=this.shadowRoot||this.attachShadow({mode:"open"});const qrCode=this._qrCode;if(!qrCode){const div=document.createElement("div");div.style.display="none";shadow.appendChild(div);this._divContainer=div;this._qrCode=new QRCodeStyling(this._options);this._qrCode.append(div);this._UpdateCanvas(width,height);div.style.display="flex";return}const newHash=hash({options:this._options,width:width,height:height});if(this._optionsHash!==newHash){this._optionsHash=newHash;this._qrCode.update(this._options);this._UpdateCanvas(width,height)}}_IsFetchAPISupported(){return"fetch"in window}_ShortenURL(url){return new Promise((accept,reject)=>{if(!this._IsFetchAPISupported()){return reject(new Error("PlattarQR._ShortenURL() - fetch api not supported, cannot proceed"))}try{const b64Link=btoa(url);fetch("https://c.plattar.com/shorten",{cache:"no-store",method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{attributes:{url:b64Link,isBase64:true}}})}).then(response=>{if(!response.ok){throw new Error("PlattarQR._ShortenURL() - response was invalid")}return response.json()}).then(json=>{return accept(json.data.attributes.url)}).catch(()=>{return reject(new Error("PlattarQR._ShortenURL() - there was an unexpected issue generating short url"))})}catch(err){return reject(err)}})}}module.exports=BaseElement},{"object-hash":145,"qr-code-styling":147}],116:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class QRCodeElement extends BaseElement{constructor(){super()}}module.exports=QRCodeElement},{"./base/base-element.js":115}],117:[function(require,module,exports){"use strict";const QRCodeElement=require("./elements/qrcode-element.js");const Version=require("./version");if(customElements){if(customElements.get("plattar-qrcode")===undefined){customElements.define("plattar-qrcode",QRCodeElement)}}console.log("using @plattar/plattar-qrcode v"+Version);module.exports={version:Version}},{"./elements/qrcode-element.js":116,"./version":118}],118:[function(require,module,exports){module.exports="1.178.1"},{}],119:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.Configurator=void 0;const plattar_api_1=require("@plattar/plattar-api");const object_hash_1=__importDefault(require("object-hash"));const remote_request_1=require("./remote-request");class Configurator{constructor(){this.quality=100;this.output="glb";this.server="production";this.retry=0;this._maps=[];this._attrHash=[]}add(sceneProduct=null,productVariation=null){this.addSceneProduct(sceneProduct,productVariation)}addSceneProduct(sceneProduct=null,productVariation=null){if(!sceneProduct){throw new Error("Configurator.addSceneProduct() - sceneProduct input was null or undefined")}if(!productVariation){throw new Error("Configurator.addSceneProduct() - productVariation input was null or undefined")}const map={sceneproduct:null,productvariation:null};if(sceneProduct instanceof plattar_api_1.SceneProduct&&productVariation instanceof plattar_api_1.ProductVariation){map.sceneproduct=sceneProduct.id;map.productvariation=productVariation.id;this._maps.push(map);return}if((typeof sceneProduct==="string"||sceneProduct instanceof String)&&(typeof productVariation==="string"||productVariation instanceof String)){map.sceneproduct=sceneProduct;map.productvariation=productVariation;this._maps.push(map);return}throw new Error("Configurator.addSceneProduct() - mismatched instance types for inputs")}addProduct(product=null,productVariation=null){if(!product){throw new Error("Configurator.addProduct() - product input was null or undefined")}if(!productVariation){throw new Error("Configurator.addProduct() - productVariation input was null or undefined")}const map={productvariation:null,product:null};if(product instanceof plattar_api_1.Product&&productVariation instanceof plattar_api_1.ProductVariation){map.product=product.id;map.productvariation=productVariation.id;this._maps.push(map);return}if((typeof product==="string"||product instanceof String)&&(typeof productVariation==="string"||productVariation instanceof String)){map.product=product;map.productvariation=productVariation;this._maps.push(map);return}throw new Error("Configurator.addProduct() - mismatched instance types for inputs")}addModel(sceneModel=null){if(!sceneModel){throw new Error("Configurator.addModel() - sceneModel input was null or undefined")}const map={scenemodel:null};if(sceneModel instanceof plattar_api_1.SceneModel){map.scenemodel=sceneModel.id;this._maps.push(map);return}if(typeof sceneModel==="string"){map.scenemodel=sceneModel;this._maps.push(map);return}throw new Error("Configurator.addModel() - mismatched instance types for inputs")}get(){return new Promise((accept,reject)=>{this._CalculateHash().then(()=>{remote_request_1.RemoteRequest.request(this._GetPayload(),this.retry<0?0:this.retry).then(accept).catch(reject)}).catch(_err=>{reject(new Error("Configurator.get() - one of the objects does not exist in Plattar API"))})})}_CalculateHash(){return new Promise((accept,reject)=>{const promises=[];const oldOrigin=plattar_api_1.Server.default().originLocation.type;plattar_api_1.Server.create(plattar_api_1.Server.match(this.server));this._maps.forEach(map=>{if(map.productvariation){promises.push(new plattar_api_1.ProductVariation(map.productvariation).get())}if(map.sceneproduct){promises.push(new plattar_api_1.SceneProduct(map.sceneproduct).get())}if(map.scenemodel){promises.push(new plattar_api_1.SceneModel(map.scenemodel).get())}if(map.product){promises.push(new plattar_api_1.Product(map.product).get())}});Promise.all(promises).then(values=>{values.forEach(value=>{this._attrHash.push(value.attributes)});plattar_api_1.Server.create(plattar_api_1.Server.match(oldOrigin));accept()}).catch(()=>{plattar_api_1.Server.create(plattar_api_1.Server.match(oldOrigin));reject(new Error("Configurator._CalculateHash() - unexpected error"))})})}_GetPayload(){const converter=this.output==="vto"?"config_to_reality":"config_to_model";const load={options:{converter:converter,quality:this.quality,output:this.output,server:this.server},data:{maps:this._maps}};if(this._attrHash.length>0){load.options.hash=object_hash_1.default.MD5(this._attrHash)+object_hash_1.default.MD5(load)}else{load.options.hash=object_hash_1.default.MD5(load)}return load}}exports.Configurator=Configurator},{"./remote-request":121,"@plattar/plattar-api":48,"object-hash":145}],120:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.ModelConverter=void 0;const plattar_api_1=require("@plattar/plattar-api");const object_hash_1=__importDefault(require("object-hash"));const remote_request_1=require("./remote-request");class ModelConverter{constructor(){this._model=null;this.quality=100;this.output="glb";this.server="production";this.retry=0;this._attrHash=[]}get model(){return this._model}set model(newModel){if(!newModel){return}if(newModel instanceof plattar_api_1.FileModel){this._model=newModel.id;this._attrHash.push(object_hash_1.default.MD5(newModel.attributes));return}this._model=newModel}get(){return new Promise((accept,reject)=>{if(!this._model){return reject(new Error("ModelConverter.get() - required .model attribute was not set"))}remote_request_1.RemoteRequest.request(this._Payload,this.retry<0?0:this.retry).then(accept).catch(reject)})}get _Payload(){const load={options:{converter:"gltf_to_model",quality:this.quality,output:this.output,server:this.server},data:{model:this._model}};if(this._attrHash.length>0){load.options.hash=object_hash_1.default.MD5(this._attrHash)+object_hash_1.default.MD5(load)}else{load.options.hash=object_hash_1.default.MD5(load)}return load}}exports.ModelConverter=ModelConverter},{"./remote-request":121,"@plattar/plattar-api":48,"object-hash":145}],121:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.RemoteRequest=void 0;const node_fetch_1=__importDefault(require("node-fetch"));class RemoteRequest{static request(payload,retry=0){return new Promise((accept,reject)=>{if(retry>=0){RemoteRequest._send(payload).then(accept).catch(err=>{const newretry=retry-1;if(newretry<0){return reject(err)}console.error("RemoteRequest.request() - retry number "+newretry);console.error(err);setTimeout(()=>{RemoteRequest.request(payload,newretry).then(accept).catch(reject)},500)})}else{return reject(new Error("RemoteRequest.request() - attempted all retries without success"))}})}static _send(payload){return new Promise((accept,reject)=>{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";const reqopts={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(payload)};(0,node_fetch_1.default)(endpoint,reqopts).then(res=>{if(res.ok){try{return res.json()}catch(err){return new Error("RemoteRequest.request() - critical error occured, cannot proceed")}}return new Error("RemoteRequest.request() - unexpected error occured, cannot proceed. error message is "+res.statusText)}).then(json=>{if(json instanceof Error){reject(json)}else{accept(json)}})})}}exports.RemoteRequest=RemoteRequest},{"node-fetch":144}],122:[function(require,module,exports){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=this&&this.__importStar||function(){var ownKeys=function(o){ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)if(Object.prototype.hasOwnProperty.call(o,k))ar[ar.length]=k;return ar};return ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k=ownKeys(mod),i=0;i<k.length;i++)if(k[i]!=="default")__createBinding(result,mod,k[i]);__setModuleDefault(result,mod);return result}}();var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.version=exports.ModelConverter=exports.Configurator=void 0;var configurator_1=require("./core/configurator");Object.defineProperty(exports,"Configurator",{enumerable:true,get:function(){return configurator_1.Configurator}});var model_converter_1=require("./core/model-converter");Object.defineProperty(exports,"ModelConverter",{enumerable:true,get:function(){return model_converter_1.ModelConverter}});exports.version=__importStar(require("./version"));const version_1=__importDefault(require("./version"));console.log("using @plattar/plattar-services v"+version_1.default)},{"./core/configurator":119,"./core/model-converter":120,"./version":123}],123:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default="1.186.1"},{}],124:[function(require,module,exports){const Util=require("../../util/util");const ElementController=require("../controllers/element-controller");const{messenger}=require("@plattar/context-messenger");class BaseElement extends HTMLElement{constructor(){super()}connectedCallback(){this._controller=new ElementController(this)}set onready(callback){if(this._controller){this._controller.onload=callback;return}throw new Error("set BaseElement.onready - cannot use as element not connected")}get messengerInstance(){return messenger}get messenger(){return this._controller?this._controller.messenger:undefined}get context(){return this.messengerInstance.self}get parent(){return this.messengerInstance.parent}get element(){return this._controller}get ready(){return this._controller?true:false}get allowDragDrop(){return this._controller?this._controller.controller.allowDragDrop:false}set allowDragDrop(value){if(this._controller){this._controller.controller.allowDragDrop=value;return}throw new Error("set BaseElement.allowDragDrop - cannot use as element not connected")}get permissions(){return[]}get coreAttributes(){return[{key:"scene-id",map:"scene_id"}]}usesCoreAttribute(key){const attr=this.coreAttributes;const length=attr.length;for(let i=0;i<length;i++){if(attr[i].key===key){return true}}return false}usesOptionalAttribute(key){const attr=this.optionalAttributes;const length=attr.length;for(let i=0;i<length;i++){if(attr[i].key===key){return true}}return false}usesAttribute(key){return this.usesCoreAttribute(key)||this.usesOptionalAttribute(key)}get optionalAttributes(){return[]}get hasAllCoreAttributes(){const attr=this.coreAttributes;const length=attr.length;for(let i=0;i<length;i++){if(!this.hasAttribute(attr[i].key)){return false}}return true}get allMappedAttributes(){const map=new Map;const coreAttr=this.coreAttributes;const optAttr=this.optionalAttributes;coreAttr.forEach(ele=>{if(this.hasAttribute(ele.key)){map.set(ele.map,this.getAttribute(ele.key))}});optAttr.forEach(ele=>{if(this.hasAttribute(ele.key)){map.set(ele.map,this.getAttribute(ele.key))}});return map}get allMappedAttributesQuery(){const attr=this.allMappedAttributes;let queryStr="";let first=true;for(const[key,value]of attr.entries()){queryStr+=first?"?"+key+"="+value:"&"+key+"="+value;first=false}return queryStr}get elementType(){return"none"}get elementFullLocation(){const server=this.hasAttribute("server")?this.getAttribute("server"):"production";const serverLocation=Util.getServerLocation(server);if(serverLocation===undefined){throw new Error(`BaseElement.elementFullLocation - attribute "server" must be one of "production", "staging", "review" or "dev" but was "${server}"`)}const embedLocation=Util.getElementLocation(this.elementType);if(embedLocation===undefined){throw new Error(`BaseElement.elementFullLocation - element named "${this.elementType}" is invalid`)}if(serverLocation===Util.getServerLocation("dev")){return`${serverLocation}renderer/${embedLocation}${this.allMappedAttributesQuery}`}return`${serverLocation}${embedLocation}${this.allMappedAttributesQuery}`}}module.exports=BaseElement},{"../../util/util":139,"../controllers/element-controller":126,"@plattar/context-messenger":25}],125:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class ConfiguratorElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"configurator"}get elementFullLocation(){if(this.hasAttribute("show-ui")){const state=this.getAttribute("show-ui");if(state==="true"){const server=this.hasAttribute("server")?this.getAttribute("server"):"production";switch(server){case"production":return`https://configurator.plattar.com/index.html${this.allMappedAttributesQuery}`;case"staging":return`https://configurator-staging.plattar.com/index.html${this.allMappedAttributesQuery}`;case"review":return`https://configurator-review.plattar.com/index.html${this.allMappedAttributesQuery}`;case"dev":return`https://localhost/configurator/dist/index.html${this.allMappedAttributesQuery}`;default:throw new Error(`ConfiguratorElement.elementFullLocation - attribute "server" must be one of "production", "staging", "review" or "dev" but was "${server}"`)}}}return super.elementFullLocation}get optionalAttributes(){return[{key:"config-state",map:"config_state"},{key:"show-ar",map:"show_ar"},{key:"scene-graph-id",map:"scene_graph_id"}]}}module.exports=ConfiguratorElement},{"./base/base-element.js":124}],126:[function(require,module,exports){const Util=require("../../util/util.js");const{messenger}=require("@plattar/context-messenger");const IFrameController=require("./iframe-controller.js");class ElementController{constructor(element){this._element=element;const callback=mutationsList=>{for(const mutation of mutationsList){if(mutation.type==="attributes"&&element.usesAttribute(mutation.attributeName)){if(element.hasAllCoreAttributes){this._load()}}}};const observer=new MutationObserver(callback);observer.observe(this._element,{attributes:true});if(element.hasAllCoreAttributes){this._load()}}_load(){if(this._controller){this._controller._destroy();this._controller=undefined}const element=this._element;this._server=element.hasAttribute("server")?element.getAttribute("server"):"production";const source=element.elementFullLocation;this._messengerID="element_"+Util.id();this._controller=new IFrameController(element,source,this._messengerID,node=>{messenger.addChild(node)})}set onload(callback){if(!callback){return}if(this.messenger){callback()}else{messenger.onload(this._messengerID,()=>{callback()})}}get messenger(){return messenger[this._messengerID]}get context(){return messenger.self}get parent(){return messenger.parent}get controller(){return this._controller}}module.exports=ElementController},{"../../util/util.js":139,"./iframe-controller.js":127,"@plattar/context-messenger":25}],127:[function(require,module,exports){const Util=require("../../util/util.js");class IFrameController{constructor(element,src,id,onelemload=undefined){this._iframe=document.createElement("iframe");this._isDraggable=false;if(!element.hasAttribute("sameorigin")){this._iframe.onload=()=>{if(onelemload){onelemload(this._iframe)}}}this._iframe.setAttribute("id",id);this._iframe.setAttribute("width",element.hasAttribute("width")?element.getAttribute("width"):"500px");this._iframe.setAttribute("height",element.hasAttribute("height")?element.getAttribute("height"):"500px");this._iframe.setAttribute("src",src);this._iframe.setAttribute("frameBorder","0");const permissions=Util.getPermissionString(element.permissions);if(permissions){this._iframe.setAttribute("allow",permissions)}const shadow=element.shadowRoot||element.attachShadow({mode:"open"});this.allowDragging=false;shadow.append(this._iframe);if(element.hasAttribute("fullscreen")){const style=document.createElement("style");style.textContent=`._PlattarFullScreen { width: 100%; height: 100%; position: absolute; top: 0; left: 0; }`;this._iframe.className="_PlattarFullScreen";shadow.append(style);this._fsStyle=style}}set allowDragDrop(value){if(value){this._isDraggable=true;this._iframe.style.pointerEvents="none"}else{this._isDraggable=false;this._iframe.style.pointerEvents="auto"}}_destroy(){if(this._iframe){this._iframe.remove()}if(this._fsStyle){this._fsStyle.remove()}this._iframe=undefined;this._fsStyle=undefined}get allowDragDrop(){return this._isDraggable}get width(){return this._iframe.getAttribute("width")}get child(){return this._iframe}set width(value){this._iframe.setAttribute("width",value)}get height(){return this._iframe.getAttribute("height")}set height(value){this._iframe.setAttribute("height",value)}get id(){return this._iframe.id}}module.exports=IFrameController},{"../../util/util.js":139}],128:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class EditorElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"editor"}}module.exports=EditorElement},{"./base/base-element.js":124}],129:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class EWallElement extends BaseElement{constructor(){super()}get permissions(){return["camera *","autoplay *","xr-spatial-tracking *","gyroscope *","accelerometer *","magnetometer *"]}get elementType(){return"ewall"}}module.exports=EWallElement},{"./base/base-element.js":124}],130:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class FaceARElement extends BaseElement{constructor(){super()}get permissions(){return["camera","autoplay"]}get elementType(){return"facear"}get optionalAttributes(){return[{key:"variation-id",map:"variationId"},{key:"variation-sku",map:"variationSku"},{key:"product-id",map:"productId"},{key:"config-state",map:"config_state"},{key:"show-ar",map:"show_ar"}]}}module.exports=FaceARElement},{"./base/base-element.js":124}],131:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class GalleryElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"gallery"}get optionalAttributes(){return[]}}module.exports=GalleryElement},{"./base/base-element.js":124}],132:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class LauncherElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"launcher"}get optionalAttributes(){return[{key:"config-state",map:"config_state"},{key:"qr-options",map:"qr_options"},{key:"embed-type",map:"embed_type"},{key:"product-id",map:"product_id"},{key:"scene-product-id",map:"scene_product_id"},{key:"variation-id",map:"variation_id"},{key:"variation-sku",map:"variation_sku"},{key:"ar-mode",map:"ar_mode"},{key:"show-ar-banner",map:"show_ar_banner"},{key:"scene-graph-id",map:"scene_graph_id"}]}}module.exports=LauncherElement},{"./base/base-element.js":124}],133:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class ModelElement extends BaseElement{constructor(){super()}get permissions(){return["camera","autoplay"]}get elementType(){return"model"}get coreAttributes(){return[]}get optionalAttributes(){return[{key:"mode",map:"mode"},{key:"capture-id",map:"capture_id"},{key:"model-id",map:"model_id"}]}}module.exports=ModelElement},{"./base/base-element.js":124}],134:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class ProductElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"product"}get coreAttributes(){return[{key:"product-id",map:"product_id"}]}get optionalAttributes(){return[{key:"variation-id",map:"variation_id"},{key:"variation-sku",map:"variationSku"},{key:"show-ar",map:"show_ar"}]}}module.exports=ProductElement},{"./base/base-element.js":124}],135:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class StudioElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"studio"}get optionalAttributes(){return[{key:"variation-id",map:"variationId"},{key:"variation-sku",map:"variationSku"}]}}module.exports=StudioElement},{"./base/base-element.js":124}],136:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class ViewerElement extends BaseElement{constructor(){super()}get permissions(){return["autoplay"]}get elementType(){return"viewer"}get optionalAttributes(){return[{key:"variation-id",map:"variationId"},{key:"variation-sku",map:"variationSku"},{key:"product-id",map:"productId"},{key:"show-ar",map:"show_ar"}]}}module.exports=ViewerElement},{"./base/base-element.js":124}],137:[function(require,module,exports){const BaseElement=require("./base/base-element.js");class WebXRElement extends BaseElement{constructor(){super()}get permissions(){return["camera","autoplay","xr-spatial-tracking"]}get elementType(){return"webxr"}}module.exports=WebXRElement},{"./base/base-element.js":124}],138:[function(require,module,exports){"use strict";const WebXRElement=require("./elements/webxr-element.js");const ViewerElement=require("./elements/viewer-element.js");const ProductElement=require("./elements/product-element.js");const EWallElement=require("./elements/ewall-element.js");const FaceARElement=require("./elements/facear-element.js");const EditorElement=require("./elements/editor-element.js");const StudioElement=require("./elements/studio-element.js");const ModelElement=require("./elements/model-element.js");const ConfiguratorElement=require("./elements/configurator-element.js");const LauncherElement=require("./elements/launcher-element.js");const GalleryElement=require("./elements/gallery-element.js");const Version=require("./version");if(customElements.get("plattar-webxr")===undefined){customElements.define("plattar-webxr",WebXRElement)}if(customElements.get("plattar-viewer")===undefined){customElements.define("plattar-viewer",ViewerElement)}if(customElements.get("plattar-product")===undefined){customElements.define("plattar-product",ProductElement)}if(customElements.get("plattar-editor")===undefined){customElements.define("plattar-editor",EditorElement)}if(customElements.get("plattar-facear")===undefined){customElements.define("plattar-facear",FaceARElement)}if(customElements.get("plattar-8wall")===undefined){customElements.define("plattar-8wall",EWallElement)}if(customElements.get("plattar-studio")===undefined){customElements.define("plattar-studio",StudioElement)}if(customElements.get("plattar-model")===undefined){customElements.define("plattar-model",ModelElement)}if(customElements.get("plattar-configurator")===undefined){customElements.define("plattar-configurator",ConfiguratorElement)}if(customElements.get("plattar-gallery")===undefined){customElements.define("plattar-gallery",GalleryElement)}if(customElements.get("plattar-launcher")===undefined){customElements.define("plattar-launcher",LauncherElement)}console.log("using @plattar/plattar-web v"+Version);module.exports={version:Version}},{"./elements/configurator-element.js":125,"./elements/editor-element.js":128,"./elements/ewall-element.js":129,"./elements/facear-element.js":130,"./elements/gallery-element.js":131,"./elements/launcher-element.js":132,"./elements/model-element.js":133,"./elements/product-element.js":134,"./elements/studio-element.js":135,"./elements/viewer-element.js":136,"./elements/webxr-element.js":137,"./version":140}],139:[function(require,module,exports){class Util{static getServerLocation(server){switch(server){case"production":return"https://renderer.plattar.com/";case"staging":return"https://renderer-staging.plattar.com/";case"review":return"https://renderer-review.plattar.com/";case"dev":return"https://localhost/";default:return undefined}}static getElementLocation(etype){const isValid=Util.isValidType(etype);if(isValid){return`${etype}.html`}return undefined}static isValidType(etype){switch(etype){case"viewer":case"editor":case"ewall":case"facear":case"studio":case"product":case"launcher":case"gallery":case"model":case"configurator":case"webxr":return true;default:return false}}static id(){return Math.abs(Math.floor(Math.random()*1e13))}static getPermissionString(permissions){if(permissions&&permissions.length>0){let permissionString=permissions[0];for(let i=1;i<permissions.length;i++){permissionString+="; "+permissions[i]}return permissionString}return undefined}}module.exports=Util},{}],140:[function(require,module,exports){module.exports="2.5.3"},{}],141:[function(require,module,exports){"use strict";exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i<len;++i){lookup[i]=code[i];revLookup[code.charCodeAt(i)]=i}revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len=b64.length;if(len%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var validLen=b64.indexOf("=");if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;var len=placeHoldersLen>0?validLen-4:validLen;var i;for(i=0;i<len;i+=4){tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)];arr[curByte++]=tmp>>16&255;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&255}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;i<end;i+=3){tmp=(uint8[i]<<16&16711680)+(uint8[i+1]<<8&65280)+(uint8[i+2]&255);output.push(tripletToBase64(tmp))}return output.join("")}function fromByteArray(uint8){var tmp;var len=uint8.length;var extraBytes=len%3;var parts=[];var maxChunkLength=16383;for(var i=0,len2=len-extraBytes;i<len2;i+=maxChunkLength){parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")}return parts.join("")}},{}],142:[function(require,module,exports){(function(Buffer){(function(){"use strict";var base64=require("base64-js");var ieee754=require("ieee754");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!=="undefined"&&typeof console.error==="function"){console.error("This browser lacks typed array (Uint8Array) support which is required by "+"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.")}function typedArraySupport(){try{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}};return arr.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,"parent",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,"offset",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"')}var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf}function Buffer(arg,encodingOrOffset,length){if(typeof arg==="number"){if(typeof encodingOrOffset==="string"){throw new TypeError('The "string" argument must be of type string. Received type number')}return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}if(typeof Symbol!=="undefined"&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false})}Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value==="string"){return fromString(value,encodingOrOffset)}if(ArrayBuffer.isView(value)){return fromArrayLike(value)}if(value==null){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length)}if(typeof value==="number"){throw new TypeError('The "value" argument must not be of type number. Received type number')}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length)}var b=fromObject(value);if(b)return b;if(typeof Symbol!=="undefined"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==="function"){return Buffer.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=="number"){throw new TypeError('"size" argument must be of type number')}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"')}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size)}if(fill!==undefined){return typeof encoding==="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill)}return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!=="string"||encoding===""){encoding="utf8"}if(!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){buf=buf.slice(0,actual)}return buf}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i<length;i+=1){buf[i]=array[i]&255}return buf}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset){throw new RangeError('"offset" is outside of buffer bounds')}if(array.byteLength<byteOffset+(length||0)){throw new RangeError('"length" is outside of buffer bounds')}var buf;if(byteOffset===undefined&&length===undefined){buf=new Uint8Array(array)}else if(length===undefined){buf=new Uint8Array(array,byteOffset)}else{buf=new Uint8Array(array,byteOffset,length)}buf.__proto__=Buffer.prototype;return buf}function fromObject(obj){if(Buffer.isBuffer(obj)){var len=checked(obj.length)|0;var buf=createBuffer(len);if(buf.length===0){return buf}obj.copy(buf,0,0,len);return buf}if(obj.length!==undefined){if(typeof obj.length!=="number"||numberIsNaN(obj.length)){return createBuffer(0)}return fromArrayLike(obj)}if(obj.type==="Buffer"&&Array.isArray(obj.data)){return fromArrayLike(obj.data)}}function checked(length){if(length>=K_MAX_LENGTH){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+K_MAX_LENGTH.toString(16)+" bytes")}return length|0}function SlowBuffer(length){if(+length!=length){length=0}return Buffer.alloc(+length)}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i<len;++i){if(a[i]!==b[i]){x=a[i];y=b[i];break}}if(x<y)return-1;if(y<x)return 1;return 0};Buffer.isEncoding=function isEncoding(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return true;default:return false}};Buffer.concat=function concat(list,length){if(!Array.isArray(list)){throw new TypeError('"list" argument must be an Array of Buffers')}if(list.length===0){return Buffer.alloc(0)}var i;if(length===undefined){length=0;for(i=0;i<list.length;++i){length+=list[i].length}}var buffer=Buffer.allocUnsafe(length);var pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array)){buf=Buffer.from(buf)}if(!Buffer.isBuffer(buf)){throw new TypeError('"list" argument must be an Array of Buffers')}buf.copy(buffer,pos);pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer.isBuffer(string)){return string.length}if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer)){return string.byteLength}if(typeof string!=="string"){throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. '+"Received type "+typeof string)}var len=string.length;var mustMatch=arguments.length>2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length}encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;if(start===undefined||start<0){start=0}if(start>this.length){return""}if(end===undefined||end>this.length){end=this.length}if(end<=0){return""}end>>>=0;start>>>=0;if(end<=start){return""}if(!encoding)encoding="utf8";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var i=0;i<len;i+=2){swap(this,i,i+1)}return this};Buffer.prototype.swap32=function swap32(){var len=this.length;if(len%4!==0){throw new RangeError("Buffer size must be a multiple of 32-bits")}for(var i=0;i<len;i+=4){swap(this,i,i+3);swap(this,i+1,i+2)}return this};Buffer.prototype.swap64=function swap64(){var len=this.length;if(len%8!==0){throw new RangeError("Buffer size must be a multiple of 64-bits")}for(var i=0;i<len;i+=8){swap(this,i,i+7);swap(this,i+1,i+6);swap(this,i+2,i+5);swap(this,i+3,i+4)}return this};Buffer.prototype.toString=function toString(){var length=this.length;if(length===0)return"";if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments)};Buffer.prototype.toLocaleString=Buffer.prototype.toString;Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return true;return Buffer.compare(this,b)===0};Buffer.prototype.inspect=function inspect(){var str="";var max=exports.INSPECT_MAX_BYTES;str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim();if(this.length>max)str+=" ... ";return"<Buffer "+str+">"};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength)}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+"Received type "+typeof target)}if(start===undefined){start=0}if(end===undefined){end=target?target.length:0}if(thisStart===undefined){thisStart=0}if(thisEnd===undefined){thisEnd=this.length}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError("out of range index")}if(thisStart>=thisEnd&&start>=end){return 0}if(thisStart>=thisEnd){return-1}if(start>=end){return 1}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i<len;++i){if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i];y=targetCopy[i];break}}if(x<y)return-1;if(y<x)return 1;return 0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset==="string"){encoding=byteOffset;byteOffset=0}else if(byteOffset>2147483647){byteOffset=2147483647}else if(byteOffset<-2147483648){byteOffset=-2147483648}byteOffset=+byteOffset;if(numberIsNaN(byteOffset)){byteOffset=dir?0:buffer.length-1}if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1}else if(byteOffset<0){if(dir)byteOffset=0;else return-1}if(typeof val==="string"){val=Buffer.from(val,encoding)}if(Buffer.isBuffer(val)){if(val.length===0){return-1}return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val==="number"){val=val&255;if(typeof Uint8Array.prototype.indexOf==="function"){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset)}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset)}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le"){if(arr.length<2||val.length<2){return-1}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2}}function read(buf,i){if(indexSize===1){return buf[i]}else{return buf.readUInt16BE(i*indexSize)}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++){if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1)foundIndex=i;if(i-foundIndex+1===valLength)return foundIndex*indexSize}else{if(foundIndex!==-1)i-=i-foundIndex;foundIndex=-1}}}else{if(byteOffset+valLength>arrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;j<valLength;j++){if(read(arr,i+j)!==read(val,j)){found=false;break}}if(found)return i}}return-1}Buffer.prototype.includes=function includes(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer.prototype.indexOf=function indexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,true)};Buffer.prototype.lastIndexOf=function lastIndexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,false)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining}else{length=Number(length);if(length>remaining){length=remaining}}var strLen=string.length;if(length>strLen/2){length=strLen/2}for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function latin1Write(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer.prototype.write=function write(string,offset,length,encoding){if(offset===undefined){encoding="utf8";length=this.length;offset=0}else if(length===undefined&&typeof offset==="string"){encoding=offset;length=this.length;offset=0}else if(isFinite(offset)){offset=offset>>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i<end){var firstByte=buf[i];var codePoint=null;var bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(i<len){res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH))}return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i]&127)}return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i])}return ret}function hexSlice(buf,start,end){var len=buf.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out="";for(var i=start;i<end;++i){out+=toHex(buf[i])}return out}function utf16leSlice(buf,start,end){var bytes=buf.slice(start,end);var res="";for(var i=0;i<bytes.length;i+=2){res+=String.fromCharCode(bytes[i]+bytes[i+1]*256)}return res}Buffer.prototype.slice=function slice(start,end){var len=this.length;start=~~start;end=end===undefined?len:~~end;if(start<0){start+=len;if(start<0)start=0}else if(start>len){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(end<start)end=start;var newBuf=this.subarray(start,end);newBuf.__proto__=Buffer.prototype;return newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}return val};Buffer.prototype.readUIntBE=function readUIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1;var i=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUIntBE=function writeUIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,255,0);this[offset]=value&255;return offset+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255;return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){if(value<0&&sub===0&&this[offset+i-1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end<start)end=start;if(end===start)return 0;if(target.length===0||this.length===0)return 0;if(targetStart<0){throw new RangeError("targetStart out of bounds")}if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart<end-start){end=target.length-targetStart+start}var len=end-start;if(this===target&&typeof Uint8Array.prototype.copyWithin==="function"){this.copyWithin(targetStart,start,end)}else if(this===target&&start<targetStart&&targetStart<end){for(var i=len-1;i>=0;--i){target[i+targetStart]=this[i+start]}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart)}return len};Buffer.prototype.fill=function fill(val,start,end,encoding){if(typeof val==="string"){if(typeof start==="string"){encoding=start;start=0;end=this.length}else if(typeof end==="string"){encoding=end;end=this.length}if(encoding!==undefined&&typeof encoding!=="string"){throw new TypeError("encoding must be a string")}if(typeof encoding==="string"&&!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}if(val.length===1){var code=val.charCodeAt(0);if(encoding==="utf8"&&code<128||encoding==="latin1"){val=code}}}else if(typeof val==="number"){val=val&255}if(start<0||this.length<start||this.length<end){throw new RangeError("Out of range index")}if(end<=start){return this}start=start>>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==="number"){for(i=start;i<end;++i){this[i]=val}}else{var bytes=Buffer.isBuffer(val)?val:Buffer.from(val,encoding);var len=bytes.length;if(len===0){throw new TypeError('The value "'+val+'" is invalid for argument "value"')}for(i=0;i<end-start;++i){this[i+start]=bytes[i%len]}}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){str=str.split("=")[0];str=str.trim().replace(INVALID_BASE64_RE,"");if(str.length<2)return"";while(str.length%4!==0){str=str+"="}return str}function toHex(n){if(n<16)return"0"+n.toString(16);return n.toString(16)}function utf8ToBytes(string,units){units=units||Infinity;var codePoint;var length=string.length;var leadSurrogate=null;var bytes=[];for(var i=0;i<length;++i){codePoint=string.charCodeAt(i);if(codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;++i){byteArray.push(str.charCodeAt(i)&255)}return byteArray}function utf16leToBytes(str,units){var c,hi,lo;var byteArray=[];for(var i=0;i<str.length;++i){if((units-=2)<0)break;c=str.charCodeAt(i);hi=c>>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length;++i){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}}).call(this)}).call(this,require("buffer").Buffer)},{"base64-js":141,buffer:142,ieee754:143}],143:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],144:[function(require,module,exports){(function(global){(function(){"use strict";var getGlobal=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var globalObject=getGlobal();module.exports=exports=globalObject.fetch;if(globalObject.fetch){exports.default=globalObject.fetch.bind(globalObject)}exports.Headers=globalObject.Headers;exports.Request=globalObject.Request;exports.Response=globalObject.Response}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],145:[function(require,module,exports){(function(global){(function(){!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)})}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],146:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;runClearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[]};process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],147:[function(require,module,exports){(function(Buffer){(function(){!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.QRCodeStyling=e():t.QRCodeStyling=e()}(this,()=>(()=>{var t={873:(t,e)=>{var i,r,n=function(){var t=function(t,e){var i=t,r=s[e],n=null,o=0,h=null,p=[],v={},m=function(t,e){n=function(t){for(var e=new Array(t),i=0;i<t;i+=1){e[i]=new Array(t);for(var r=0;r<t;r+=1)e[i][r]=null}return e}(o=4*i+17),b(0,0),b(o-7,0),b(0,o-7),x(),y(),C(t,e),i>=7&&S(t),null==h&&(h=M(i,r,p)),A(h,e)},b=function(t,e){for(var i=-1;i<=7;i+=1)if(!(t+i<=-1||o<=t+i))for(var r=-1;r<=7;r+=1)e+r<=-1||o<=e+r||(n[t+i][e+r]=0<=i&&i<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==i||6==i)||2<=i&&i<=4&&2<=r&&r<=4)},y=function(){for(var t=8;t<o-8;t+=1)null==n[t][6]&&(n[t][6]=t%2==0);for(var e=8;e<o-8;e+=1)null==n[6][e]&&(n[6][e]=e%2==0)},x=function(){for(var t=a.getPatternPosition(i),e=0;e<t.length;e+=1)for(var r=0;r<t.length;r+=1){var o=t[e],s=t[r];if(null==n[o][s])for(var h=-2;h<=2;h+=1)for(var d=-2;d<=2;d+=1)n[o+h][s+d]=-2==h||2==h||-2==d||2==d||0==h&&0==d}},S=function(t){for(var e=a.getBCHTypeNumber(i),r=0;r<18;r+=1){var s=!t&&1==(e>>r&1);n[Math.floor(r/3)][r%3+o-8-3]=s}for(r=0;r<18;r+=1)s=!t&&1==(e>>r&1),n[r%3+o-8-3][Math.floor(r/3)]=s},C=function(t,e){for(var i=r<<3|e,s=a.getBCHTypeInfo(i),h=0;h<15;h+=1){var d=!t&&1==(s>>h&1);h<6?n[h][8]=d:h<8?n[h+1][8]=d:n[o-15+h][8]=d}for(h=0;h<15;h+=1)d=!t&&1==(s>>h&1),h<8?n[8][o-h-1]=d:h<9?n[8][15-h-1+1]=d:n[8][15-h-1]=d;n[o-8][8]=!t},A=function(t,e){for(var i=-1,r=o-1,s=7,h=0,d=a.getMaskFunction(e),u=o-1;u>0;u-=2)for(6==u&&(u-=1);;){for(var c=0;c<2;c+=1)if(null==n[r][u-c]){var l=!1;h<t.length&&(l=1==(t[h]>>>s&1)),d(r,u-c)&&(l=!l),n[r][u-c]=l,-1==(s-=1)&&(h+=1,s=7)}if((r+=i)<0||o<=r){r-=i,i=-i;break}}},M=function(t,e,i){for(var r=u.getRSBlocks(t,e),n=c(),o=0;o<i.length;o+=1){var s=i[o];n.put(s.getMode(),4),n.put(s.getLength(),a.getLengthInBits(s.getMode(),t)),s.write(n)}var h=0;for(o=0;o<r.length;o+=1)h+=r[o].dataCount;if(n.getLengthInBits()>8*h)throw"code length overflow. ("+n.getLengthInBits()+">"+8*h+")";for(n.getLengthInBits()+4<=8*h&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*h||(n.put(236,8),n.getLengthInBits()>=8*h));)n.put(17,8);return function(t,e){for(var i=0,r=0,n=0,o=new Array(e.length),s=new Array(e.length),h=0;h<e.length;h+=1){var u=e[h].dataCount,c=e[h].totalCount-u;r=Math.max(r,u),n=Math.max(n,c),o[h]=new Array(u);for(var l=0;l<o[h].length;l+=1)o[h][l]=255&t.getBuffer()[l+i];i+=u;var g=a.getErrorCorrectPolynomial(c),f=d(o[h],g.getLength()-1).mod(g);for(s[h]=new Array(g.getLength()-1),l=0;l<s[h].length;l+=1){var w=l+f.getLength()-s[h].length;s[h][l]=w>=0?f.getAt(w):0}}var p=0;for(l=0;l<e.length;l+=1)p+=e[l].totalCount;var v=new Array(p),_=0;for(l=0;l<r;l+=1)for(h=0;h<e.length;h+=1)l<o[h].length&&(v[_]=o[h][l],_+=1);for(l=0;l<n;l+=1)for(h=0;h<e.length;h+=1)l<s[h].length&&(v[_]=s[h][l],_+=1);return v}(n,r)};v.addData=function(t,e){var i=null;switch(e=e||"Byte"){case"Numeric":i=l(t);break;case"Alphanumeric":i=g(t);break;case"Byte":i=f(t);break;case"Kanji":i=w(t);break;default:throw"mode:"+e}p.push(i),h=null},v.isDark=function(t,e){if(t<0||o<=t||e<0||o<=e)throw t+","+e;return n[t][e]},v.getModuleCount=function(){return o},v.make=function(){if(i<1){for(var t=1;t<40;t++){for(var e=u.getRSBlocks(t,r),n=c(),o=0;o<p.length;o++){var s=p[o];n.put(s.getMode(),4),n.put(s.getLength(),a.getLengthInBits(s.getMode(),t)),s.write(n)}var h=0;for(o=0;o<e.length;o++)h+=e[o].dataCount;if(n.getLengthInBits()<=8*h)break}i=t}m(!1,function(){for(var t=0,e=0,i=0;i<8;i+=1){m(!0,i);var r=a.getLostPoint(v);(0==i||t>r)&&(t=r,e=i)}return e}())},v.createTableTag=function(t,e){t=t||2;var i="";i+='<table style="',i+=" border-width: 0px; border-style: none;",i+=" border-collapse: collapse;",i+=" padding: 0px; margin: "+(e=void 0===e?4*t:e)+"px;",i+='">',i+="<tbody>";for(var r=0;r<v.getModuleCount();r+=1){i+="<tr>";for(var n=0;n<v.getModuleCount();n+=1)i+='<td style="',i+=" border-width: 0px; border-style: none;",i+=" border-collapse: collapse;",i+=" padding: 0px; margin: 0px;",i+=" width: "+t+"px;",i+=" height: "+t+"px;",i+=" background-color: ",i+=v.isDark(r,n)?"#000000":"#ffffff",i+=";",i+='"/>';i+="</tr>"}return(i+="</tbody>")+"</table>"},v.createSvgTag=function(t,e,i,r){var n={};"object"==typeof arguments[0]&&(t=(n=arguments[0]).cellSize,e=n.margin,i=n.alt,r=n.title),t=t||2,e=void 0===e?4*t:e,(i="string"==typeof i?{text:i}:i||{}).text=i.text||null,i.id=i.text?i.id||"qrcode-description":null,(r="string"==typeof r?{text:r}:r||{}).text=r.text||null,r.id=r.text?r.id||"qrcode-title":null;var o,s,a,h,d=v.getModuleCount()*t+2*e,u="";for(h="l"+t+",0 0,"+t+" -"+t+",0 0,-"+t+"z ",u+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',u+=n.scalable?"":' width="'+d+'px" height="'+d+'px"',u+=' viewBox="0 0 '+d+" "+d+'" ',u+=' preserveAspectRatio="xMinYMin meet"',u+=r.text||i.text?' role="img" aria-labelledby="'+$([r.id,i.id].join(" ").trim())+'"':"",u+=">",u+=r.text?'<title id="'+$(r.id)+'">'+$(r.text)+"</title>":"",u+=i.text?'<description id="'+$(i.id)+'">'+$(i.text)+"</description>":"",u+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',u+='<path d="',s=0;s<v.getModuleCount();s+=1)for(a=s*t+e,o=0;o<v.getModuleCount();o+=1)v.isDark(s,o)&&(u+="M"+(o*t+e)+","+a+h);return(u+='" stroke="transparent" fill="black"/>')+"</svg>"},v.createDataURL=function(t,e){t=t||2,e=void 0===e?4*t:e;var i=v.getModuleCount()*t+2*e,r=e,n=i-e;return _(i,i,function(e,i){if(r<=e&&e<n&&r<=i&&i<n){var o=Math.floor((e-r)/t),s=Math.floor((i-r)/t);return v.isDark(s,o)?0:1}return 1})},v.createImgTag=function(t,e,i){t=t||2,e=void 0===e?4*t:e;var r=v.getModuleCount()*t+2*e,n="";return n+="<img",n+=' src="',n+=v.createDataURL(t,e),n+='"',n+=' width="',n+=r,n+='"',n+=' height="',n+=r,n+='"',i&&(n+=' alt="',n+=$(i),n+='"'),n+"/>"};var $=function(t){for(var e="",i=0;i<t.length;i+=1){var r=t.charAt(i);switch(r){case"<":e+="&lt;";break;case">":e+="&gt;";break;case"&":e+="&amp;";break;case'"':e+="&quot;";break;default:e+=r}}return e};return v.createASCII=function(t,e){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var e,i,r,n,o,s=1*v.getModuleCount()+2*t,a=t,h=s-t,d={"██":"█","█ ":"▀"," █":"▄"," ":" "},u={"██":"▀","█ ":"▀"," █":" "," ":" "},c="";for(e=0;e<s;e+=2){for(r=Math.floor((e-a)/1),n=Math.floor((e+1-a)/1),i=0;i<s;i+=1)o="█",a<=i&&i<h&&a<=e&&e<h&&v.isDark(r,Math.floor((i-a)/1))&&(o=" "),a<=i&&i<h&&a<=e+1&&e+1<h&&v.isDark(n,Math.floor((i-a)/1))?o+=" ":o+="█",c+=t<1&&e+1>=h?u[o]:d[o];c+="\n"}return s%2&&t>0?c.substring(0,c.length-s-1)+Array(s+1).join("▀"):c.substring(0,c.length-1)}(e);t-=1,e=void 0===e?2*t:e;var i,r,n,o,s=v.getModuleCount()*t+2*e,a=e,h=s-e,d=Array(t+1).join("██"),u=Array(t+1).join(" "),c="",l="";for(i=0;i<s;i+=1){for(n=Math.floor((i-a)/t),l="",r=0;r<s;r+=1)o=1,a<=r&&r<h&&a<=i&&i<h&&v.isDark(n,Math.floor((r-a)/t))&&(o=0),l+=o?d:u;for(n=0;n<t;n+=1)c+=l+"\n"}return c.substring(0,c.length-1)},v.renderTo2dContext=function(t,e){e=e||2;for(var i=v.getModuleCount(),r=0;r<i;r++)for(var n=0;n<i;n++)t.fillStyle=v.isDark(r,n)?"black":"white",t.fillRect(r*e,n*e,e,e)},v};t.stringToBytes=(t.stringToBytesFuncs={default:function(t){for(var e=[],i=0;i<t.length;i+=1){var r=t.charCodeAt(i);e.push(255&r)}return e}}).default,t.createStringToBytes=function(t,e){var i=function(){for(var i=v(t),r=function(){var t=i.read();if(-1==t)throw"eof";return t},n=0,o={};;){var s=i.read();if(-1==s)break;var a=r(),h=r()<<8|r();o[String.fromCharCode(s<<8|a)]=h,n+=1}if(n!=e)throw n+" != "+e;return o}(),r="?".charCodeAt(0);return function(t){for(var e=[],n=0;n<t.length;n+=1){var o=t.charCodeAt(n);if(o<128)e.push(o);else{var s=i[t.charAt(n)];"number"==typeof s?(255&s)==s?e.push(s):(e.push(s>>>8),e.push(255&s)):e.push(r)}}return e}};var e,i,r,n,o,s={L:1,M:0,Q:3,H:2},a=(e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],i=1335,r=7973,o=function(t){for(var e=0;0!=t;)e+=1,t>>>=1;return e},(n={}).getBCHTypeInfo=function(t){for(var e=t<<10;o(e)-o(i)>=0;)e^=i<<o(e)-o(i);return 21522^(t<<10|e)},n.getBCHTypeNumber=function(t){for(var e=t<<12;o(e)-o(r)>=0;)e^=r<<o(e)-o(r);return t<<12|e},n.getPatternPosition=function(t){return e[t-1]},n.getMaskFunction=function(t){switch(t){case 0:return function(t,e){return(t+e)%2==0};case 1:return function(t,e){return t%2==0};case 2:return function(t,e){return e%3==0};case 3:return function(t,e){return(t+e)%3==0};case 4:return function(t,e){return(Math.floor(t/2)+Math.floor(e/3))%2==0};case 5:return function(t,e){return t*e%2+t*e%3==0};case 6:return function(t,e){return(t*e%2+t*e%3)%2==0};case 7:return function(t,e){return(t*e%3+(t+e)%2)%2==0};default:throw"bad maskPattern:"+t}},n.getErrorCorrectPolynomial=function(t){for(var e=d([1],0),i=0;i<t;i+=1)e=e.multiply(d([1,h.gexp(i)],0));return e},n.getLengthInBits=function(t,e){if(1<=e&&e<10)switch(t){case 1:return 10;case 2:return 9;case 4:case 8:return 8;default:throw"mode:"+t}else if(e<27)switch(t){case 1:return 12;case 2:return 11;case 4:return 16;case 8:return 10;default:throw"mode:"+t}else{if(!(e<41))throw"type:"+e;switch(t){case 1:return 14;case 2:return 13;case 4:return 16;case 8:return 12;default:throw"mode:"+t}}},n.getLostPoint=function(t){for(var e=t.getModuleCount(),i=0,r=0;r<e;r+=1)for(var n=0;n<e;n+=1){for(var o=0,s=t.isDark(r,n),a=-1;a<=1;a+=1)if(!(r+a<0||e<=r+a))for(var h=-1;h<=1;h+=1)n+h<0||e<=n+h||0==a&&0==h||s==t.isDark(r+a,n+h)&&(o+=1);o>5&&(i+=3+o-5)}for(r=0;r<e-1;r+=1)for(n=0;n<e-1;n+=1){var d=0;t.isDark(r,n)&&(d+=1),t.isDark(r+1,n)&&(d+=1),t.isDark(r,n+1)&&(d+=1),t.isDark(r+1,n+1)&&(d+=1),0!=d&&4!=d||(i+=3)}for(r=0;r<e;r+=1)for(n=0;n<e-6;n+=1)t.isDark(r,n)&&!t.isDark(r,n+1)&&t.isDark(r,n+2)&&t.isDark(r,n+3)&&t.isDark(r,n+4)&&!t.isDark(r,n+5)&&t.isDark(r,n+6)&&(i+=40);for(n=0;n<e;n+=1)for(r=0;r<e-6;r+=1)t.isDark(r,n)&&!t.isDark(r+1,n)&&t.isDark(r+2,n)&&t.isDark(r+3,n)&&t.isDark(r+4,n)&&!t.isDark(r+5,n)&&t.isDark(r+6,n)&&(i+=40);var u=0;for(n=0;n<e;n+=1)for(r=0;r<e;r+=1)t.isDark(r,n)&&(u+=1);return i+Math.abs(100*u/e/e-50)/5*10},n),h=function(){for(var t=new Array(256),e=new Array(256),i=0;i<8;i+=1)t[i]=1<<i;for(i=8;i<256;i+=1)t[i]=t[i-4]^t[i-5]^t[i-6]^t[i-8];for(i=0;i<255;i+=1)e[t[i]]=i;return{glog:function(t){if(t<1)throw"glog("+t+")";return e[t]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t[e]}}}();function d(t,e){if(void 0===t.length)throw t.length+"/"+e;var i=function(){for(var i=0;i<t.length&&0==t[i];)i+=1;for(var r=new Array(t.length-i+e),n=0;n<t.length-i;n+=1)r[n]=t[n+i];return r}(),r={getAt:function(t){return i[t]},getLength:function(){return i.length},multiply:function(t){for(var e=new Array(r.getLength()+t.getLength()-1),i=0;i<r.getLength();i+=1)for(var n=0;n<t.getLength();n+=1)e[i+n]^=h.gexp(h.glog(r.getAt(i))+h.glog(t.getAt(n)));return d(e,0)},mod:function(t){if(r.getLength()-t.getLength()<0)return r;for(var e=h.glog(r.getAt(0))-h.glog(t.getAt(0)),i=new Array(r.getLength()),n=0;n<r.getLength();n+=1)i[n]=r.getAt(n);for(n=0;n<t.getLength();n+=1)i[n]^=h.gexp(h.glog(t.getAt(n))+e);return d(i,0).mod(t)}};return r}var u=function(){var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],e=function(t,e){var i={};return i.totalCount=t,i.dataCount=e,i},i={getRSBlocks:function(i,r){var n=function(e,i){switch(i){case s.L:return t[4*(e-1)+0];case s.M:return t[4*(e-1)+1];case s.Q:return t[4*(e-1)+2];case s.H:return t[4*(e-1)+3];default:return}}(i,r);if(void 0===n)throw"bad rs block @ typeNumber:"+i+"/errorCorrectionLevel:"+r;for(var o=n.length/3,a=[],h=0;h<o;h+=1)for(var d=n[3*h+0],u=n[3*h+1],c=n[3*h+2],l=0;l<d;l+=1)a.push(e(u,c));return a}};return i}(),c=function(){var t=[],e=0,i={getBuffer:function(){return t},getAt:function(e){var i=Math.floor(e/8);return 1==(t[i]>>>7-e%8&1)},put:function(t,e){for(var r=0;r<e;r+=1)i.putBit(1==(t>>>e-r-1&1))},getLengthInBits:function(){return e},putBit:function(i){var r=Math.floor(e/8);t.length<=r&&t.push(0),i&&(t[r]|=128>>>e%8),e+=1}};return i},l=function(t){var e=t,i={getMode:function(){return 1},getLength:function(t){return e.length},write:function(t){for(var i=e,n=0;n+2<i.length;)t.put(r(i.substring(n,n+3)),10),n+=3;n<i.length&&(i.length-n==1?t.put(r(i.substring(n,n+1)),4):i.length-n==2&&t.put(r(i.substring(n,n+2)),7))}},r=function(t){for(var e=0,i=0;i<t.length;i+=1)e=10*e+n(t.charAt(i));return e},n=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);throw"illegal char :"+t};return i},g=function(t){var e=t,i={getMode:function(){return 2},getLength:function(t){return e.length},write:function(t){for(var i=e,n=0;n+1<i.length;)t.put(45*r(i.charAt(n))+r(i.charAt(n+1)),11),n+=2;n<i.length&&t.put(r(i.charAt(n)),6)}},r=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);if("A"<=t&&t<="Z")return t.charCodeAt(0)-"A".charCodeAt(0)+10;switch(t){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+t}};return i},f=function(e){var i=t.stringToBytes(e);return{getMode:function(){return 4},getLength:function(t){return i.length},write:function(t){for(var e=0;e<i.length;e+=1)t.put(i[e],8)}}},w=function(e){var i=t.stringToBytesFuncs.SJIS;if(!i)throw"sjis not supported.";!function(){var t=i("友");if(2!=t.length||38726!=(t[0]<<8|t[1]))throw"sjis not supported."}();var r=i(e),n={getMode:function(){return 8},getLength:function(t){return~~(r.length/2)},write:function(t){for(var e=r,i=0;i+1<e.length;){var n=(255&e[i])<<8|255&e[i+1];if(33088<=n&&n<=40956)n-=33088;else{if(!(57408<=n&&n<=60351))throw"illegal char at "+(i+1)+"/"+n;n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13),i+=2}if(i<e.length)throw"illegal char at "+(i+1)}};return n},p=function(){var t=[],e={writeByte:function(e){t.push(255&e)},writeShort:function(t){e.writeByte(t),e.writeByte(t>>>8)},writeBytes:function(t,i,r){i=i||0,r=r||t.length;for(var n=0;n<r;n+=1)e.writeByte(t[n+i])},writeString:function(t){for(var i=0;i<t.length;i+=1)e.writeByte(t.charCodeAt(i))},toByteArray:function(){return t},toString:function(){var e="";e+="[";for(var i=0;i<t.length;i+=1)i>0&&(e+=","),e+=t[i];return e+"]"}};return e},v=function(t){var e=t,i=0,r=0,n=0,o={read:function(){for(;n<8;){if(i>=e.length){if(0==n)return-1;throw"unexpected end of file./"+n}var t=e.charAt(i);if(i+=1,"="==t)return n=0,-1;t.match(/^\s$/)||(r=r<<6|s(t.charCodeAt(0)),n+=6)}var o=r>>>n-8&255;return n-=8,o}},s=function(t){if(65<=t&&t<=90)return t-65;if(97<=t&&t<=122)return t-97+26;if(48<=t&&t<=57)return t-48+52;if(43==t)return 62;if(47==t)return 63;throw"c:"+t};return o},_=function(t,e,i){for(var r=function(t,e){var i=t,r=e,n=new Array(t*e),o={setPixel:function(t,e,r){n[e*i+t]=r},write:function(t){t.writeString("GIF87a"),t.writeShort(i),t.writeShort(r),t.writeByte(128),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(255),t.writeByte(255),t.writeByte(255),t.writeString(","),t.writeShort(0),t.writeShort(0),t.writeShort(i),t.writeShort(r),t.writeByte(0);var e=s(2);t.writeByte(2);for(var n=0;e.length-n>255;)t.writeByte(255),t.writeBytes(e,n,255),n+=255;t.writeByte(e.length-n),t.writeBytes(e,n,e.length-n),t.writeByte(0),t.writeString(";")}},s=function(t){for(var e=1<<t,i=1+(1<<t),r=t+1,o=a(),s=0;s<e;s+=1)o.add(String.fromCharCode(s));o.add(String.fromCharCode(e)),o.add(String.fromCharCode(i));var h,d,u,c=p(),l=(h=c,d=0,u=0,{write:function(t,e){if(t>>>e!=0)throw"length over";for(;d+e>=8;)h.writeByte(255&(t<<d|u)),e-=8-d,t>>>=8-d,u=0,d=0;u|=t<<d,d+=e},flush:function(){d>0&&h.writeByte(u)}});l.write(e,r);var g=0,f=String.fromCharCode(n[g]);for(g+=1;g<n.length;){var w=String.fromCharCode(n[g]);g+=1,o.contains(f+w)?f+=w:(l.write(o.indexOf(f),r),o.size()<4095&&(o.size()==1<<r&&(r+=1),o.add(f+w)),f=w)}return l.write(o.indexOf(f),r),l.write(i,r),l.flush(),c.toByteArray()},a=function(){var t={},e=0,i={add:function(r){if(i.contains(r))throw"dup key:"+r;t[r]=e,e+=1},size:function(){return e},indexOf:function(e){return t[e]},contains:function(e){return void 0!==t[e]}};return i};return o}(t,e),n=0;n<e;n+=1)for(var o=0;o<t;o+=1)r.setPixel(o,n,i(o,n));var s=p();r.write(s);for(var a=function(){var t=0,e=0,i=0,r="",n={},o=function(t){r+=String.fromCharCode(s(63&t))},s=function(t){if(t<0);else{if(t<26)return 65+t;if(t<52)return t-26+97;if(t<62)return t-52+48;if(62==t)return 43;if(63==t)return 47}throw"n:"+t};return n.writeByte=function(r){for(t=t<<8|255&r,e+=8,i+=1;e>=6;)o(t>>>e-6),e-=6},n.flush=function(){if(e>0&&(o(t<<6-e),t=0,e=0),i%3!=0)for(var n=3-i%3,s=0;s<n;s+=1)r+="="},n.toString=function(){return r},n}(),h=s.toByteArray(),d=0;d<h.length;d+=1)a.writeByte(h[d]);return a.flush(),"data:image/gif;base64,"+a};return t}();n.stringToBytesFuncs["UTF-8"]=function(t){return function(t){for(var e=[],i=0;i<t.length;i++){var r=t.charCodeAt(i);r<128?e.push(r):r<2048?e.push(192|r>>6,128|63&r):r<55296||r>=57344?e.push(224|r>>12,128|r>>6&63,128|63&r):(i++,r=65536+((1023&r)<<10|1023&t.charCodeAt(i)),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return e}(t)},void 0===(r="function"==typeof(i=function(){return n})?i.apply(e,[]):i)||(t.exports=r)}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};return(()=>{"use strict";i.d(r,{default:()=>$});const t=t=>!!t&&"object"==typeof t&&!Array.isArray(t);function e(i,...r){if(!r.length)return i;const n=r.shift();return void 0!==n&&t(i)&&t(n)?(i=Object.assign({},i),Object.keys(n).forEach(r=>{const o=i[r],s=n[r];Array.isArray(o)&&Array.isArray(s)?i[r]=s:t(o)&&t(s)?i[r]=e(Object.assign({},o),s):i[r]=s}),e(i,...r)):i}function n(t,e){const i=document.createElement("a");i.download=e,i.href=t,document.body.appendChild(i),i.click(),document.body.removeChild(i)}const o={L:.07,M:.15,Q:.25,H:.3};class s{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;switch(this._type){case"dots":n=this._drawDot;break;case"classy":n=this._drawClassy;break;case"classy-rounded":n=this._drawClassyRounded;break;case"rounded":n=this._drawRounded;break;case"extra-rounded":n=this._drawExtraRounded;break;default:n=this._drawSquare}n.call(this,{x:t,y:e,size:i,getNeighbor:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(i+e/2)),this._element.setAttribute("cy",String(r+e/2)),this._element.setAttribute("r",String(e/2))}}))}_basicSquare(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(i)),this._element.setAttribute("y",String(r)),this._element.setAttribute("width",String(e)),this._element.setAttribute("height",String(e))}}))}_basicSideRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h `+e/2+`a ${e/2} ${e/2}, 0, 0, 0, 0 ${-e}`)}}))}_basicCornerRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}v `+-e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2}`)}}))}_basicCornerExtraRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}a ${e} ${e}, 0, 0, 0, ${-e} ${-e}`)}}))}_basicCornersRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v `+e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${e/2} ${e/2}h `+e/2+"v "+-e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2}`)}}))}_drawDot({x:t,y:e,size:i}){this._basicDot({x:t,y:e,size:i,rotation:0})}_drawSquare({x:t,y:e,size:i}){this._basicSquare({x:t,y:e,size:i,rotation:0})}_drawRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,h=n+o+s+a;if(0!==h)if(h>2||n&&o||s&&a)this._basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===h){let r=0;return n&&s?r=Math.PI/2:s&&o?r=Math.PI:o&&a&&(r=-Math.PI/2),void this._basicCornerRounded({x:t,y:e,size:i,rotation:r})}if(1===h){let r=0;return s?r=Math.PI/2:o?r=Math.PI:a&&(r=-Math.PI/2),void this._basicSideRounded({x:t,y:e,size:i,rotation:r})}}else this._basicDot({x:t,y:e,size:i,rotation:0})}_drawExtraRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,h=n+o+s+a;if(0!==h)if(h>2||n&&o||s&&a)this._basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===h){let r=0;return n&&s?r=Math.PI/2:s&&o?r=Math.PI:o&&a&&(r=-Math.PI/2),void this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:r})}if(1===h){let r=0;return s?r=Math.PI/2:o?r=Math.PI:a&&(r=-Math.PI/2),void this._basicSideRounded({x:t,y:e,size:i,rotation:r})}}else this._basicDot({x:t,y:e,size:i,rotation:0})}_drawClassy({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+o+s+a?n||s?o||a?this._basicSquare({x:t,y:e,size:i,rotation:0}):this._basicCornerRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this._basicCornerRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this._basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}_drawClassyRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+o+s+a?n||s?o||a?this._basicSquare({x:t,y:e,size:i,rotation:0}):this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this._basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}}const a={dot:"dot",square:"square",extraRounded:"extra-rounded"},h=Object.values(a);class d{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;switch(this._type){case a.square:n=this._drawSquare;break;case a.extraRounded:n=this._drawExtraRounded;break;default:n=this._drawDot}n.call(this,{x:t,y:e,size:i,rotation:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i+e/2} ${r}a ${e/2} ${e/2} 0 1 0 0.1 0zm 0 ${n}a ${e/2-n} ${e/2-n} 0 1 1 -0.1 0Z`)}}))}_basicSquare(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}v `+-e+"z"+`M ${i+n} ${r+n}h `+(e-2*n)+"v "+(e-2*n)+"h "+(2*n-e)+"z")}}))}_basicExtraRounded(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i} ${r+2.5*n}v `+2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n}h `+2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*-n}v `+-2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n}h `+-2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n}`+`M ${i+2.5*n} ${r+n}h `+2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n}v `+2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*n}h `+-2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n}v `+-2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n}`)}}))}_drawDot({x:t,y:e,size:i,rotation:r}){this._basicDot({x:t,y:e,size:i,rotation:r})}_drawSquare({x:t,y:e,size:i,rotation:r}){this._basicSquare({x:t,y:e,size:i,rotation:r})}_drawExtraRounded({x:t,y:e,size:i,rotation:r}){this._basicExtraRounded({x:t,y:e,size:i,rotation:r})}}const u={dot:"dot",square:"square"},c=Object.values(u);class l{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;n=this._type===u.square?this._drawSquare:this._drawDot,n.call(this,{x:t,y:e,size:i,rotation:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(i+e/2)),this._element.setAttribute("cy",String(r+e/2)),this._element.setAttribute("r",String(e/2))}}))}_basicSquare(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(i)),this._element.setAttribute("y",String(r)),this._element.setAttribute("width",String(e)),this._element.setAttribute("height",String(e))}}))}_drawDot({x:t,y:e,size:i,rotation:r}){this._basicDot({x:t,y:e,size:i,rotation:r})}_drawSquare({x:t,y:e,size:i,rotation:r}){this._basicSquare({x:t,y:e,size:i,rotation:r})}}const g="circle",f=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],w=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];class p{constructor(t,e){this._roundSize=t=>this._options.dotsOptions.roundSize?Math.floor(t):t,this._window=e,this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("width",String(t.width)),this._element.setAttribute("height",String(t.height)),this._element.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),t.dotsOptions.roundSize||this._element.setAttribute("shape-rendering","crispEdges"),this._element.setAttribute("viewBox",`0 0 ${t.width} ${t.height}`),this._defs=this._window.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this._defs),this._imageUri=t.image,this._instanceId=p.instanceCount++,this._options=t}get width(){return this._options.width}get height(){return this._options.height}getElement(){return this._element}async drawQR(t){const e=t.getModuleCount(),i=Math.min(this._options.width,this._options.height)-2*this._options.margin,r=this._options.shape===g?i/Math.sqrt(2):i,n=this._roundSize(r/e);let s={hideXDots:0,hideYDots:0,width:0,height:0};if(this._qr=t,this._options.image){if(await this.loadImage(),!this._image)return;const{imageOptions:t,qrOptions:i}=this._options,r=t.imageSize*o[i.errorCorrectionLevel],a=Math.floor(r*e*e);s=function({originalHeight:t,originalWidth:e,maxHiddenDots:i,maxHiddenAxisDots:r,dotSize:n}){const o={x:0,y:0},s={x:0,y:0};if(t<=0||e<=0||i<=0||n<=0)return{height:0,width:0,hideYDots:0,hideXDots:0};const a=t/e;return o.x=Math.floor(Math.sqrt(i/a)),o.x<=0&&(o.x=1),r&&r<o.x&&(o.x=r),o.x%2==0&&o.x--,s.x=o.x*n,o.y=1+2*Math.ceil((o.x*a-1)/2),s.y=Math.round(s.x*a),(o.y*o.x>i||r&&r<o.y)&&(r&&r<o.y?(o.y=r,o.y%2==0&&o.x--):o.y-=2,s.y=o.y*n,o.x=1+2*Math.ceil((o.y/a-1)/2),s.x=Math.round(s.y/a)),{height:s.y,width:s.x,hideYDots:o.y,hideXDots:o.x}}({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:a,maxHiddenAxisDots:e-14,dotSize:n})}this.drawBackground(),this.drawDots((t,i)=>{var r,n,o,a,h,d;return!(this._options.imageOptions.hideBackgroundDots&&t>=(e-s.hideYDots)/2&&t<(e+s.hideYDots)/2&&i>=(e-s.hideXDots)/2&&i<(e+s.hideXDots)/2||(null===(r=f[t])||void 0===r?void 0:r[i])||(null===(n=f[t-e+7])||void 0===n?void 0:n[i])||(null===(o=f[t])||void 0===o?void 0:o[i-e+7])||(null===(a=w[t])||void 0===a?void 0:a[i])||(null===(h=w[t-e+7])||void 0===h?void 0:h[i])||(null===(d=w[t])||void 0===d?void 0:d[i-e+7]))}),this.drawCorners(),this._options.image&&await this.drawImage({width:s.width,height:s.height,count:e,dotSize:n})}drawBackground(){var t,e,i;const r=this._element,n=this._options;if(r){const r=null===(t=n.backgroundOptions)||void 0===t?void 0:t.gradient,o=null===(e=n.backgroundOptions)||void 0===e?void 0:e.color;let s=n.height,a=n.width;if(r||o){const t=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");this._backgroundClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._backgroundClipPath.setAttribute("id",`clip-path-background-color-${this._instanceId}`),this._defs.appendChild(this._backgroundClipPath),(null===(i=n.backgroundOptions)||void 0===i?void 0:i.round)&&(s=a=Math.min(n.width,n.height),t.setAttribute("rx",String(s/2*n.backgroundOptions.round))),t.setAttribute("x",String(this._roundSize((n.width-a)/2))),t.setAttribute("y",String(this._roundSize((n.height-s)/2))),t.setAttribute("width",String(a)),t.setAttribute("height",String(s)),this._backgroundClipPath.appendChild(t),this._createColor({options:r,color:o,additionalRotation:0,x:0,y:0,height:n.height,width:n.width,name:`background-color-${this._instanceId}`})}}}drawDots(t){var e,i;if(!this._qr)throw"QR code is not defined";const r=this._options,n=this._qr.getModuleCount();if(n>r.width||n>r.height)throw"The canvas is too small.";const o=Math.min(r.width,r.height)-2*r.margin,a=r.shape===g?o/Math.sqrt(2):o,h=this._roundSize(a/n),d=this._roundSize((r.width-n*h)/2),u=this._roundSize((r.height-n*h)/2),c=new s({svg:this._element,type:r.dotsOptions.type,window:this._window});this._dotsClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._dotsClipPath.setAttribute("id",`clip-path-dot-color-${this._instanceId}`),this._defs.appendChild(this._dotsClipPath),this._createColor({options:null===(e=r.dotsOptions)||void 0===e?void 0:e.gradient,color:r.dotsOptions.color,additionalRotation:0,x:0,y:0,height:r.height,width:r.width,name:`dot-color-${this._instanceId}`});for(let e=0;e<n;e++)for(let r=0;r<n;r++)t&&!t(e,r)||(null===(i=this._qr)||void 0===i?void 0:i.isDark(e,r))&&(c.draw(d+r*h,u+e*h,h,(i,o)=>!(r+i<0||e+o<0||r+i>=n||e+o>=n)&&!(t&&!t(e+o,r+i))&&!!this._qr&&this._qr.isDark(e+o,r+i)),c._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(c._element));if(r.shape===g){const t=this._roundSize((o/h-n)/2),e=n+2*t,i=d-t*h,r=u-t*h,s=[],a=this._roundSize(e/2);for(let i=0;i<e;i++){s[i]=[];for(let r=0;r<e;r++)i>=t-1&&i<=e-t&&r>=t-1&&r<=e-t||Math.sqrt((i-a)*(i-a)+(r-a)*(r-a))>a?s[i][r]=0:s[i][r]=this._qr.isDark(r-2*t<0?r:r>=n?r-2*t:r-t,i-2*t<0?i:i>=n?i-2*t:i-t)?1:0}for(let t=0;t<e;t++)for(let n=0;n<e;n++)s[t][n]&&(c.draw(i+n*h,r+t*h,h,(e,i)=>{var r;return!!(null===(r=s[t+i])||void 0===r?void 0:r[n+e])}),c._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(c._element))}}drawCorners(){if(!this._qr)throw"QR code is not defined";const t=this._element,e=this._options;if(!t)throw"Element code is not defined";const i=this._qr.getModuleCount(),r=Math.min(e.width,e.height)-2*e.margin,n=e.shape===g?r/Math.sqrt(2):r,o=this._roundSize(n/i),a=7*o,u=3*o,p=this._roundSize((e.width-i*o)/2),v=this._roundSize((e.height-i*o)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach(([t,r,n])=>{var g,_,m,b,y,x,S,C,A,M,$,O,D,k;const z=p+t*o*(i-7),B=v+r*o*(i-7);let P=this._dotsClipPath,I=this._dotsClipPath;if(((null===(g=e.cornersSquareOptions)||void 0===g?void 0:g.gradient)||(null===(_=e.cornersSquareOptions)||void 0===_?void 0:_.color))&&(P=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),P.setAttribute("id",`clip-path-corners-square-color-${t}-${r}-${this._instanceId}`),this._defs.appendChild(P),this._cornersSquareClipPath=this._cornersDotClipPath=I=P,this._createColor({options:null===(m=e.cornersSquareOptions)||void 0===m?void 0:m.gradient,color:null===(b=e.cornersSquareOptions)||void 0===b?void 0:b.color,additionalRotation:n,x:z,y:B,height:a,width:a,name:`corners-square-color-${t}-${r}-${this._instanceId}`})),(null===(y=e.cornersSquareOptions)||void 0===y?void 0:y.type)&&h.includes(e.cornersSquareOptions.type)){const t=new d({svg:this._element,type:e.cornersSquareOptions.type,window:this._window});t.draw(z,B,a,n),t._element&&P&&P.appendChild(t._element)}else{const t=new s({svg:this._element,type:(null===(x=e.cornersSquareOptions)||void 0===x?void 0:x.type)||e.dotsOptions.type,window:this._window});for(let e=0;e<f.length;e++)for(let i=0;i<f[e].length;i++)(null===(S=f[e])||void 0===S?void 0:S[i])&&(t.draw(z+i*o,B+e*o,o,(t,r)=>{var n;return!!(null===(n=f[e+r])||void 0===n?void 0:n[i+t])}),t._element&&P&&P.appendChild(t._element))}if(((null===(C=e.cornersDotOptions)||void 0===C?void 0:C.gradient)||(null===(A=e.cornersDotOptions)||void 0===A?void 0:A.color))&&(I=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),I.setAttribute("id",`clip-path-corners-dot-color-${t}-${r}-${this._instanceId}`),this._defs.appendChild(I),this._cornersDotClipPath=I,this._createColor({options:null===(M=e.cornersDotOptions)||void 0===M?void 0:M.gradient,color:null===($=e.cornersDotOptions)||void 0===$?void 0:$.color,additionalRotation:n,x:z+2*o,y:B+2*o,height:u,width:u,name:`corners-dot-color-${t}-${r}-${this._instanceId}`})),(null===(O=e.cornersDotOptions)||void 0===O?void 0:O.type)&&c.includes(e.cornersDotOptions.type)){const t=new l({svg:this._element,type:e.cornersDotOptions.type,window:this._window});t.draw(z+2*o,B+2*o,u,n),t._element&&I&&I.appendChild(t._element)}else{const t=new s({svg:this._element,type:(null===(D=e.cornersDotOptions)||void 0===D?void 0:D.type)||e.dotsOptions.type,window:this._window});for(let e=0;e<w.length;e++)for(let i=0;i<w[e].length;i++)(null===(k=w[e])||void 0===k?void 0:k[i])&&(t.draw(z+i*o,B+e*o,o,(t,r)=>{var n;return!!(null===(n=w[e+r])||void 0===n?void 0:n[i+t])}),t._element&&I&&I.appendChild(t._element))}})}loadImage(){return new Promise((t,e)=>{var i;const r=this._options;if(!r.image)return e("Image is not defined");if(null===(i=r.nodeCanvas)||void 0===i?void 0:i.loadImage)r.nodeCanvas.loadImage(r.image).then(e=>{var i,n;if(this._image=e,this._options.imageOptions.saveAsBlob){const t=null===(i=r.nodeCanvas)||void 0===i?void 0:i.createCanvas(this._image.width,this._image.height);null===(n=null==t?void 0:t.getContext("2d"))||void 0===n||n.drawImage(e,0,0),this._imageUri=null==t?void 0:t.toDataURL()}t()}).catch(e);else{const e=new this._window.Image;"string"==typeof r.imageOptions.crossOrigin&&(e.crossOrigin=r.imageOptions.crossOrigin),this._image=e,e.onload=async()=>{this._options.imageOptions.saveAsBlob&&(this._imageUri=await async function(t,e){return new Promise(i=>{const r=new e.XMLHttpRequest;r.onload=function(){const t=new e.FileReader;t.onloadend=function(){i(t.result)},t.readAsDataURL(r.response)},r.open("GET",t),r.responseType="blob",r.send()})}(r.image||"",this._window)),t()},e.src=r.image}})}async drawImage({width:t,height:e,count:i,dotSize:r}){const n=this._options,o=this._roundSize((n.width-i*r)/2),s=this._roundSize((n.height-i*r)/2),a=o+this._roundSize(n.imageOptions.margin+(i*r-t)/2),h=s+this._roundSize(n.imageOptions.margin+(i*r-e)/2),d=t-2*n.imageOptions.margin,u=e-2*n.imageOptions.margin,c=this._window.document.createElementNS("http://www.w3.org/2000/svg","image");c.setAttribute("href",this._imageUri||""),c.setAttribute("xlink:href",this._imageUri||""),c.setAttribute("x",String(a)),c.setAttribute("y",String(h)),c.setAttribute("width",`${d}px`),c.setAttribute("height",`${u}px`),this._element.appendChild(c)}_createColor({options:t,color:e,additionalRotation:i,x:r,y:n,height:o,width:s,name:a}){const h=s>o?s:o,d=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");if(d.setAttribute("x",String(r)),d.setAttribute("y",String(n)),d.setAttribute("height",String(o)),d.setAttribute("width",String(s)),d.setAttribute("clip-path",`url('#clip-path-${a}')`),t){let e;if("radial"===t.type)e=this._window.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),e.setAttribute("id",a),e.setAttribute("gradientUnits","userSpaceOnUse"),e.setAttribute("fx",String(r+s/2)),e.setAttribute("fy",String(n+o/2)),e.setAttribute("cx",String(r+s/2)),e.setAttribute("cy",String(n+o/2)),e.setAttribute("r",String(h/2));else{const h=((t.rotation||0)+i)%(2*Math.PI),d=(h+2*Math.PI)%(2*Math.PI);let u=r+s/2,c=n+o/2,l=r+s/2,g=n+o/2;d>=0&&d<=.25*Math.PI||d>1.75*Math.PI&&d<=2*Math.PI?(u-=s/2,c-=o/2*Math.tan(h),l+=s/2,g+=o/2*Math.tan(h)):d>.25*Math.PI&&d<=.75*Math.PI?(c-=o/2,u-=s/2/Math.tan(h),g+=o/2,l+=s/2/Math.tan(h)):d>.75*Math.PI&&d<=1.25*Math.PI?(u+=s/2,c+=o/2*Math.tan(h),l-=s/2,g-=o/2*Math.tan(h)):d>1.25*Math.PI&&d<=1.75*Math.PI&&(c+=o/2,u+=s/2/Math.tan(h),g-=o/2,l-=s/2/Math.tan(h)),e=this._window.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),e.setAttribute("id",a),e.setAttribute("gradientUnits","userSpaceOnUse"),e.setAttribute("x1",String(Math.round(u))),e.setAttribute("y1",String(Math.round(c))),e.setAttribute("x2",String(Math.round(l))),e.setAttribute("y2",String(Math.round(g)))}t.colorStops.forEach(({offset:t,color:i})=>{const r=this._window.document.createElementNS("http://www.w3.org/2000/svg","stop");r.setAttribute("offset",100*t+"%"),r.setAttribute("stop-color",i),e.appendChild(r)}),d.setAttribute("fill",`url('#${a}')`),this._defs.appendChild(e)}else e&&d.setAttribute("fill",e);this._element.appendChild(d)}}p.instanceCount=0;const v=p,_="canvas",m={};for(let t=0;t<=40;t++)m[t]=t;const b={type:_,shape:"square",width:300,height:300,data:"",margin:0,qrOptions:{typeNumber:m[0],mode:void 0,errorCorrectionLevel:"Q"},imageOptions:{saveAsBlob:!0,hideBackgroundDots:!0,imageSize:.4,crossOrigin:void 0,margin:0},dotsOptions:{type:"square",color:"#000",roundSize:!0},backgroundOptions:{round:0,color:"#fff"}};function y(t){const e=Object.assign({},t);if(!e.colorStops||!e.colorStops.length)throw"Field 'colorStops' is required in gradient";return e.rotation?e.rotation=Number(e.rotation):e.rotation=0,e.colorStops=e.colorStops.map(t=>Object.assign(Object.assign({},t),{offset:Number(t.offset)})),e}function x(t){const e=Object.assign({},t);return e.width=Number(e.width),e.height=Number(e.height),e.margin=Number(e.margin),e.imageOptions=Object.assign(Object.assign({},e.imageOptions),{hideBackgroundDots:Boolean(e.imageOptions.hideBackgroundDots),imageSize:Number(e.imageOptions.imageSize),margin:Number(e.imageOptions.margin)}),e.margin>Math.min(e.width,e.height)&&(e.margin=Math.min(e.width,e.height)),e.dotsOptions=Object.assign({},e.dotsOptions),e.dotsOptions.gradient&&(e.dotsOptions.gradient=y(e.dotsOptions.gradient)),e.cornersSquareOptions&&(e.cornersSquareOptions=Object.assign({},e.cornersSquareOptions),e.cornersSquareOptions.gradient&&(e.cornersSquareOptions.gradient=y(e.cornersSquareOptions.gradient))),e.cornersDotOptions&&(e.cornersDotOptions=Object.assign({},e.cornersDotOptions),e.cornersDotOptions.gradient&&(e.cornersDotOptions.gradient=y(e.cornersDotOptions.gradient))),e.backgroundOptions&&(e.backgroundOptions=Object.assign({},e.backgroundOptions),e.backgroundOptions.gradient&&(e.backgroundOptions.gradient=y(e.backgroundOptions.gradient))),e}var S=i(873),C=i.n(S);function A(t){if(!t)throw new Error("Extension must be defined");"."===t[0]&&(t=t.substring(1));const e={bmp:"image/bmp",gif:"image/gif",ico:"image/vnd.microsoft.icon",jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp",pdf:"application/pdf"}[t.toLowerCase()];if(!e)throw new Error(`Extension "${t}" is not supported`);return e}class M{constructor(t){(null==t?void 0:t.jsdom)?this._window=new t.jsdom("",{resources:"usable"}).window:this._window=window,this._options=t?x(e(b,t)):b,this.update()}static _clearContainer(t){t&&(t.innerHTML="")}_setupSvg(){if(!this._qr)return;const t=new v(this._options,this._window);this._svg=t.getElement(),this._svgDrawingPromise=t.drawQR(this._qr).then(()=>{var e;this._svg&&(null===(e=this._extension)||void 0===e||e.call(this,t.getElement(),this._options))})}_setupCanvas(){var t,e;this._qr&&((null===(t=this._options.nodeCanvas)||void 0===t?void 0:t.createCanvas)?(this._nodeCanvas=this._options.nodeCanvas.createCanvas(this._options.width,this._options.height),this._nodeCanvas.width=this._options.width,this._nodeCanvas.height=this._options.height):(this._domCanvas=document.createElement("canvas"),this._domCanvas.width=this._options.width,this._domCanvas.height=this._options.height),this._setupSvg(),this._canvasDrawingPromise=null===(e=this._svgDrawingPromise)||void 0===e?void 0:e.then(()=>{var t;if(!this._svg)return;const e=this._svg,i=(new this._window.XMLSerializer).serializeToString(e),r=btoa(i),n=`data:${A("svg")};base64,${r}`;if(null===(t=this._options.nodeCanvas)||void 0===t?void 0:t.loadImage)return this._options.nodeCanvas.loadImage(n).then(t=>{var e,i;t.width=this._options.width,t.height=this._options.height,null===(i=null===(e=this._nodeCanvas)||void 0===e?void 0:e.getContext("2d"))||void 0===i||i.drawImage(t,0,0)});{const t=new this._window.Image;return new Promise(e=>{t.onload=()=>{var i,r;null===(r=null===(i=this._domCanvas)||void 0===i?void 0:i.getContext("2d"))||void 0===r||r.drawImage(t,0,0),e()},t.src=n})}}))}async _getElement(t="png"){if(!this._qr)throw"QR code is empty";return"svg"===t.toLowerCase()?(this._svg&&this._svgDrawingPromise||this._setupSvg(),await this._svgDrawingPromise,this._svg):((this._domCanvas||this._nodeCanvas)&&this._canvasDrawingPromise||this._setupCanvas(),await this._canvasDrawingPromise,this._domCanvas||this._nodeCanvas)}update(t){M._clearContainer(this._container),this._options=t?x(e(this._options,t)):this._options,this._options.data&&(this._qr=C()(this._options.qrOptions.typeNumber,this._options.qrOptions.errorCorrectionLevel),this._qr.addData(this._options.data,this._options.qrOptions.mode||function(t){switch(!0){case/^[0-9]*$/.test(t):return"Numeric";case/^[0-9A-Z $%*+\-./:]*$/.test(t):return"Alphanumeric";default:return"Byte"}}(this._options.data)),this._qr.make(),this._options.type===_?this._setupCanvas():this._setupSvg(),this.append(this._container))}append(t){if(t){if("function"!=typeof t.appendChild)throw"Container should be a single DOM node";this._options.type===_?this._domCanvas&&t.appendChild(this._domCanvas):this._svg&&t.appendChild(this._svg),this._container=t}}applyExtension(t){if(!t)throw"Extension function should be defined.";this._extension=t,this.update()}deleteExtension(){this._extension=void 0,this.update()}async getRawData(t="png"){if(!this._qr)throw"QR code is empty";const e=await this._getElement(t),i=A(t);if(!e)return null;if("svg"===t.toLowerCase()){const t=`<?xml version="1.0" standalone="no"?>\r\n${(new this._window.XMLSerializer).serializeToString(e)}`;return"undefined"==typeof Blob||this._options.jsdom?Buffer.from(t):new Blob([t],{type:i})}return new Promise(t=>{const r=e;if("toBuffer"in r)if("image/png"===i)t(r.toBuffer(i));else if("image/jpeg"===i)t(r.toBuffer(i));else{if("application/pdf"!==i)throw Error("Unsupported extension");t(r.toBuffer(i))}else"toBlob"in r&&r.toBlob(t,i,1)})}async download(t){if(!this._qr)throw"QR code is empty";if("undefined"==typeof Blob)throw"Cannot download in Node.js, call getRawData instead.";let e="png",i="qr";"string"==typeof t?(e=t,console.warn("Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument")):"object"==typeof t&&null!==t&&(t.name&&(i=t.name),t.extension&&(e=t.extension));const r=await this._getElement(e);if(r)if("svg"===e.toLowerCase()){let t=(new XMLSerializer).serializeToString(r);t='<?xml version="1.0" standalone="no"?>\r\n'+t,n(`data:${A(e)};charset=utf-8,${encodeURIComponent(t)}`,`${i}.svg`)}else n(r.toDataURL(A(e)),`${i}.${e}`)}}const $=M})(),r.default})())}).call(this)}).call(this,require("buffer").Buffer)},{buffer:142}]},{},[17])(17)});