@plattar/plattar-ar-adapter
Version:
Plattar AR Adapter for interfacing with Google & Apple WebAR
1 lines • 332 kB
JavaScript
(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+="<";break;case">":e+=">";break;case"&":e+="&";break;case'"':e+=""";break;default:e+=r}}return e};return v.createASCII=function(t,e){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var e,i,r,n,o,s=1*v.getModuleCount()+2*t,a=t,h=s-t,d={"██":"█","█ ":"▀"," █":"▄"," ":" "},u={"██":"▀","█ ":"▀"," █":" "," ":" "},c="";for(e=0;e<s;e+=2){for(r=Math.floor((e-a)/1),n=Math.floor((e+1-a)/1),i=0;i<s;i+=1)o="█",a<=i&&i<h&&a<=e&&e<h&&v.isDark(r,Math.floor((i-a)/1))&&(o=" "),a<=i&&i<h&&a<=e+1&&e+1<h&&v.isDark(n,Math.floor((i-a)/1))?o+=" ":o+="█",c+=t<1&&e+1>=h?u[o]:d[o];c+="\n"}return s%2&&t>0?c.substring(0,c.length-s-1)+Array(s+1).join("▀"):c.substring(0,c.length-1)}(e);t-=1,e=void 0===e?2*t:e;var i,r,n,o,s=v.getModuleCount()*t+2*e,a=e,h=s-e,d=Array(t+1).join("██"),u=Array(t+1).join(" "),c="",l="";for(i=0;i<s;i+=1){for(n=Math.floor((i-a)/t),l="",r=0;r<s;r+=1)o=1,a<=r&&r<h&&a<=i&&i<h&&v.isDark(n,Math.floor((r-a)/t))&&(o=0),l+=o?d:u;for(n=0;n<t;n+=1)c+=l+"\n"}return c.substring(0,c.length-1)},v.renderTo2dContext=function(t,e){e=e||2;for(var i=v.getModuleCount(),r=0;r<i;r++)for(var n=0;n<i;n++)t.fillStyle=v.isDark(r,n)?"black":"white",t.fillRect(r*e,n*e,e,e)},v};t.stringToBytes=(t.stringToBytesFuncs={default:function(t){for(var e=[],i=0;i<t.length;i+=1){var r=t.charCodeAt(i);e.push(255&r)}return e}}).default,t.createStringToBytes=function(t,e){var i=function(){for(var i=v(t),r=function(){var t=i.read();if(-1==t)throw"eof";return t},n=0,o={};;){var s=i.read();if(-1==s)break;var a=r(),h=r()<<8|r();o[String.fromCharCode(s<<8|a)]=h,n+=1}if(n!=e)throw n+" != "+e;return o}(),r="?".charCodeAt(0);return function(t){for(var e=[],n=0;n<t.length;n+=1){var o=t.charCodeAt(n);if(o<128)e.push(o);else{var s=i[t.charAt(n)];"number"==typeof s?(255&s)==s?e.push(s):(e.push(s>>>8),e.push(255&s)):e.push(r)}}return e}};var e,i,r,n,o,s={L:1,M:0,Q:3,H:2},a=(e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],i=1335,r=7973,o=function(t){for(var e=0;0!=t;)e+=1,t>>>=1;return e},(n={}).getBCHTypeInfo=function(t){for(var e=t<<10;o(e)-o(i)>=0;)e^=i<<o(e)-o(i);return 21522^(t<<10|e)},n.getBCHTypeNumber=function(t){for(var e=t<<12;o(e)-o(r)>=0;)e^=r<<o(e)-o(r);return t<<12|e},n.getPatternPosition=function(t){return e[t-1]},n.getMaskFunction=function(t){switch(t){case 0:return function(t,e){return(t+e)%2==0};case 1:return function(t,e){return t%2==0};case 2:return function(t,e){return e%3==0};case 3:return function(t,e){return(t+e)%3==0};case 4:return function(t,e){return(Math.floor(t/2)+Math.floor(e/3))%2==0};case 5:return function(t,e){return t*e%2+t*e%3==0};case 6:return function(t,e){return(t*e%2+t*e%3)%2==0};case 7:return function(t,e){return(t*e%3+(t+e)%2)%2==0};default:throw"bad maskPattern:"+t}},n.getErrorCorrectPolynomial=function(t){for(var e=d([1],0),i=0;i<t;i+=1)e=e.multiply(d([1,h.gexp(i)],0));return e},n.getLengthInBits=function(t,e){if(1<=e&&e<10)switch(t){case 1:return 10;case 2:return 9;case 4:case 8:return 8;default:throw"mode:"+t}else if(e<27)switch(t){case 1:return 12;case 2:return 11;case 4:return 16;case 8:return 10;default:throw"mode:"+t}else{if(!(e<41))throw"type:"+e;switch(t){case 1:return 14;case 2:return 13;case 4:return 16;case 8:return 12;default:throw"mode:"+t}}},n.getLostPoint=function(t){for(var e=t.getModuleCount(),i=0,r=0;r<e;r+=1)for(var n=0;n<e;n+=1){for(var o=0,s=t.isDark(r,n),a=-1;a<=1;a+=1)if(!(r+a<0||e<=r+a))for(var h=-1;h<=1;h+=1)n+h<0||e<=n+h||0==a&&0==h||s==t.isDark(r+a,n+h)&&(o+=1);o>5&&(i+=3+o-5)}for(r=0;r<e-1;r+=1)for(n=0;n<e-1;n+=1){var d=0;t.isDark(r,n)&&(d+=1),t.isDark(r+1,n)&&(d+=1),t.isDark(r,n+1)&&(d+=1),t.isDark(r+1,n+1)&&(d+=1),0!=d&&4!=d||(i+=3)}for(r=0;r<e;r+=1)for(n=0;n<e-6;n+=1)t.isDark(r,n)&&!t.isDark(r,n+1)&&t.isDark(r,n+2)&&t.isDark(r,n+3)&&t.isDark(r,n+4)&&!t.isDark(r,n+5)&&t.isDark(r,n+6)&&(i+=40);for(n=0;n<e;n+=1)for(r=0;r<e-6;r+=1)t.isDark(r,n)&&!t.isDark(r+1,n)&&t.isDark(r+2,n)&&t.isDark(r+3,n)&&t.isDark(r+4,n)&&!t.isDark(r+5,n)&&t.isDark(r+6,n)&&(i+=40);var u=0;for(n=0;n<e;n+=1)for(r=0;r<e;r+=1)t.isDark(r,n)&&(u+=1);return i+Math.abs(100*u/e/e-50)/5*10},n),h=function(){for(var t=new Array(256),e=new Array(256),i=0;i<8;i+=1)t[i]=1<<i;for(i=8;i<256;i+=1)t[i]=t[i-4]^t[i-5]^t[i-6]^t[i-8];for(i=0;i<255;i+=1)e[t[i]]=i;return{glog:function(t){if(t<1)throw"glog("+t+")";return e[t]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t[e]}}}();function d(t,e){if(void 0===t.length)throw t.length+"/"+e;var i=function(){for(var i=0;i<t.length&&0==t[i];)i+=1;for(var r=new Array(t.length-i+e),n=0;n<t.length-i;n+=1)r[n]=t[n+i];return r}(),r={getAt:function(t){return i[t]},getLength:function(){return i.length},multiply:function(t){for(var e=new Array(r.getLength()+t.getLength()-1),i=0;i<r.getLength();i+=1)for(var n=0;n<t.getLength();n+=1)e[i+n]^=h.gexp(h.glog(r.getAt(i))+h.glog(t.getAt(n)));return d(e,0)},mod:function(t){if(r.getLength()-t.getLength()<0)return r;for(var e=h.glog(r.getAt(0))-h.glog(t.getAt(0)),i=new Array(r.getLength()),n=0;n<r.getLength();n+=1)i[n]=r.getAt(n);for(n=0;n<t.getLength();n+=1)i[n]^=h.gexp(h.glog(t.getAt(n))+e);return d(i,0).mod(t)}};return r}var u=function(){var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],e=function(t,e){var i={};return i.totalCount=t,i.dataCount=e,i},i={getRSBlocks:function(i,r){var n=function(e,i){switch(i){case s.L:return t[4*(e-1)+0];case s.M:return t[4*(e-1)+1];case s.Q:return t[4*(e-1)+2];case s.H:return t[4*(e-1)+3];default:return}}(i,r);if(void 0===n)throw"bad rs block @ typeNumber:"+i+"/errorCorrectionLevel:"+r;for(var o=n.length/3,a=[],h=0;h<o;h+=1)for(var d=n[3*h+0],u=n[3*h+1],c=n[3*h+2],l=0;l<d;l+=1)a.push(e(u,c));return a}};return i}(),c=function(){var t=[],e=0,i={getBuffer:function(){return t},getAt:function(e){var i=Math.floor(e/8);return 1==(t[i]>>>7-e%8&1)},put:function(t,e){for(var r=0;r<e;r+=1)i.putBit(1==(t>>>e-r-1&1))},getLengthInBits:function(){return e},putBit:function(i){var r=Math.floor(e/8);t.length<=r&&t.push(0),i&&(t[r]|=128>>>e%8),e+=1}};return i},l=function(t){var e=t,i={getMode:function(){return 1},getLength:function(t){return e.length},write:function(t){for(var i=e,n=0;n+2<i.length;)t.put(r(i.substring(n,n+3)),10),n+=3;n<i.length&&(i.length-n==1?t.put(r(i.substring(n,n+1)),4):i.length-n==2&&t.put(r(i.substring(n,n+2)),7))}},r=function(t){for(var e=0,i=0;i<t.length;i+=1)e=10*e+n(t.charAt(i));return e},n=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);throw"illegal char :"+t};return i},g=function(t){var e=t,i={getMode:function(){return 2},getLength:function(t){return e.length},write:function(t){for(var i=e,n=0;n+1<i.length;)t.put(45*r(i.charAt(n))+r(i.charAt(n+1)),11),n+=2;n<i.length&&t.put(r(i.charAt(n)),6)}},r=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);if("A"<=t&&t<="Z")return t.charCodeAt(0)-"A".charCodeAt(0)+10;switch(t){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+t}};return i},f=function(e){var i=t.stringToBytes(e);return{getMode:function(){return 4},getLength:function(t){return i.length},write:function(t){for(var e=0;e<i.length;e+=1)t.put(i[e],8)}}},w=function(e){var i=t.stringToBytesFuncs.SJIS;if(!i)throw"sjis not supported.";!function(){var t=i("友");if(2!=t.length||38726!=(t[0]<<8|t[1]))throw"sjis not supported."}();var r=i(e),n={getMode:function(){return 8},getLength:function(t){return~~(r.length/2)},write:function(t){for(var e=r,i=0;i+1<e.length;){var n=(255&e[i])<<8|255&e[i+1];if(33088<=n&&n<=40956)n-=33088;else{if(!(57408<=n&&n<=60351))throw"illegal char at "+(i+1)+"/"+n;n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13),i+=2}if(i<e.length)throw"illegal char at "+(i+1)}};return n},p=function(){var t=[],e={writeByte:function(e){t.push(255&e)},writeShort:function(t){e.writeByte(t),e.writeByte(t>>>8)},writeBytes:function(t,i,r){i=i||0,r=r||t.length;for(var n=0;n<r;n+=1)e.writeByte(t[n+i])},writeString:function(t){for(var i=0;i<t.length;i+=1)e.writeByte(t.charCodeAt(i))},toByteArray:function(){return t},toString:function(){var e="";e+="[";for(var i=0;i<t.length;i+=1)i>0&&(e+=","),e+=t[i];return e+"]"}};return e},v=function(t){var e=t,i=0,r=0,n=0,o={read:function(){for(;n<8;){if(i>=e.length){if(0==n)return-1;throw"unexpected end of file./"+n}var t=e.charAt(i);if(i+=1,"="==t)return n=0,-1;t.match(/^\s$/)||(r=r<<6|s(t.charCodeAt(0)),n+=6)}var o=r>>>n-8&255;return n-=8,o}},s=function(t){if(65<=t&&t<=90)return t-65;if(97<=t&&t<=122)return t-97+26;if(48<=t&&t<=57)return t-48+52;if(43==t)return 62;if(47==t)return 63;throw"c:"+t};return o},_=function(t,e,i){for(var r=function(t,e){var i=t,r=e,n=new Array(t*e),o={setPixel:function(t,e,r){n[e*i+t]=r},write:function(t){t.writeString("GIF87a"),t.writeShort(i),t.writeShort(r),t.writeByte(128),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(255),t.writeByte(255),t.writeByte(255),t.writeString(","),t.writeShort(0),t.writeShort(0),t.writeShort(i),t.writeShort(r),t.writeByte(0);var e=s(2);t.writeByte(2);for(var n=0;e.length-n>255;)t.writeByte(255),t.writeBytes(e,n,255),n+=255;t.writeByte(e.length-n),t.writeBytes(e,n,e.length-n),t.writeByte(0),t.writeString(";")}},s=function(t){for(var e=1<<t,i=1+(1<<t),r=t+1,o=a(),s=0;s<e;s+=1)o.add(String.fromCharCode(s));o.add(String.fromCharCode(e)),o.add(String.fromCharCode(i));var h,d,u,c=p(),l=(h=c,d=0,u=0,{write:function(t,e){if(t>>>e!=0)throw"length over";for(;d+e>=8;)h.writeByte(255&(t<<d|u)),e-=8-d,t>>>=8-d,u=0,d=0;u|=t<<d,d+=e},flush:function(){d>0&&h.writeByte(u)}});l.write(e,r);var g=0,f=String.fromCharCode(n[g]);for(g+=1;g<n.length;){var w=String.fromCharCode(n[g]);g+=1,o.contains(f+w)?f+=w:(l.write(o.indexOf(f),r),o.size()<4095&&(o.size()==1<<r&&(r+=1),o.add(f+w)),f=w)}return l.write(o.indexOf(f),r),l.write(i,r),l.flush(),c.toByteArray()},a=function(){var t={},e=0,i={add:function(r){if(i.contains(r))throw"dup key:"+r;t[r]=e,e+=1},size:function(){return e},indexOf:function(e){return t[e]},contains:function(e){return void 0!==t[e]}};return i};return o}(t,e),n=0;n<e;n+=1)for(var o=0;o<t;o+=1)r.setPixel(o,n,i(o,n));var s=p();r.write(s);for(var a=function(){var t=0,e=0,i=0,r="",n={},o=function(t){r+=String.fromCharCode(s(63&t))},s=function(t){if(t<0);else{if(t<26)return 65+t;if(t<52)return t-26+97;if(t<62)return t-52+48;if(62==t)return 43;if(63==t)return 47}throw"n:"+t};return n.writeByte=function(r){for(t=t<<8|255&r,e+=8,i+=1;e>=6;)o(t>>>e-6),e-=6},n.flush=function(){if(e>0&&(o(t<<6-e),t=0,e=0),i%3!=0)for(var n=3-i%3,s=0;s<n;s+=1)r+="="},n.toString=function(){return r},n}(),h=s.toByteArray(),d=0;d<h.length;d+=1)a.writeByte(h[d]);return a.flush(),"data:image/gif;base64,"+a};return t}();n.stringToBytesFuncs["UTF-8"]=function(t){return function(t){for(var e=[],i=0;i<t.length;i++){var r=t.charCodeAt(i);r<128?e.push(r):r<2048?e.push(192|r>>6,128|63&r):r<55296||r>=57344?e.push(224|r>>12,128|r>>6&63,128|63&r):(i++,r=65536+((1023&r)<<10|1023&t.charCodeAt(i)),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return e}(t)},void 0===(r="function"==typeof(i=function(){return n})?i.apply(e,[]):i)||(t.exports=r)}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};return(()=>{"use strict";i.d(r,{default:()=>$});const t=t=>!!t&&"object"==typeof t&&!Array.isArray(t);function e(i,...r){if(!r.length)return i;const n=r.shift();return void 0!==n&&t(i)&&t(n)?(i=Object.assign({},i),Object.keys(n).forEach(r=>{const o=i[r],s=n[r];Array.isArray(o)&&Array.isArray(s)?i[r]=s:t(o)&&t(s)?i[r]=e(Object.assign({},o),s):i[r]=s}),e(i,...r)):i}function n(t,e){const i=document.createElement("a");i.download=e,i.href=t,document.body.appendChild(i),i.click(),document.body.removeChild(i)}const o={L:.07,M:.15,Q:.25,H:.3};class s{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;switch(this._type){case"dots":n=this._drawDot;break;case"classy":n=this._drawClassy;break;case"classy-rounded":n=this._drawClassyRounded;break;case"rounded":n=this._drawRounded;break;case"extra-rounded":n=this._drawExtraRounded;break;default:n=this._drawSquare}n.call(this,{x:t,y:e,size:i,getNeighbor:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(i+e/2)),this._element.setAttribute("cy",String(r+e/2)),this._element.setAttribute("r",String(e/2))}}))}_basicSquare(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(i)),this._element.setAttribute("y",String(r)),this._element.setAttribute("width",String(e)),this._element.setAttribute("height",String(e))}}))}_basicSideRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h `+e/2+`a ${e/2} ${e/2}, 0, 0, 0, 0 ${-e}`)}}))}_basicCornerRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}v `+-e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2}`)}}))}_basicCornerExtraRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}a ${e} ${e}, 0, 0, 0, ${-e} ${-e}`)}}))}_basicCornersRounded(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("d",`M ${i} ${r}v `+e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${e/2} ${e/2}h `+e/2+"v "+-e/2+`a ${e/2} ${e/2}, 0, 0, 0, ${-e/2} ${-e/2}`)}}))}_drawDot({x:t,y:e,size:i}){this._basicDot({x:t,y:e,size:i,rotation:0})}_drawSquare({x:t,y:e,size:i}){this._basicSquare({x:t,y:e,size:i,rotation:0})}_drawRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,h=n+o+s+a;if(0!==h)if(h>2||n&&o||s&&a)this._basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===h){let r=0;return n&&s?r=Math.PI/2:s&&o?r=Math.PI:o&&a&&(r=-Math.PI/2),void this._basicCornerRounded({x:t,y:e,size:i,rotation:r})}if(1===h){let r=0;return s?r=Math.PI/2:o?r=Math.PI:a&&(r=-Math.PI/2),void this._basicSideRounded({x:t,y:e,size:i,rotation:r})}}else this._basicDot({x:t,y:e,size:i,rotation:0})}_drawExtraRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0,h=n+o+s+a;if(0!==h)if(h>2||n&&o||s&&a)this._basicSquare({x:t,y:e,size:i,rotation:0});else{if(2===h){let r=0;return n&&s?r=Math.PI/2:s&&o?r=Math.PI:o&&a&&(r=-Math.PI/2),void this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:r})}if(1===h){let r=0;return s?r=Math.PI/2:o?r=Math.PI:a&&(r=-Math.PI/2),void this._basicSideRounded({x:t,y:e,size:i,rotation:r})}}else this._basicDot({x:t,y:e,size:i,rotation:0})}_drawClassy({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+o+s+a?n||s?o||a?this._basicSquare({x:t,y:e,size:i,rotation:0}):this._basicCornerRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this._basicCornerRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this._basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}_drawClassyRounded({x:t,y:e,size:i,getNeighbor:r}){const n=r?+r(-1,0):0,o=r?+r(1,0):0,s=r?+r(0,-1):0,a=r?+r(0,1):0;0!==n+o+s+a?n||s?o||a?this._basicSquare({x:t,y:e,size:i,rotation:0}):this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:t,y:e,size:i,rotation:-Math.PI/2}):this._basicCornersRounded({x:t,y:e,size:i,rotation:Math.PI/2})}}const a={dot:"dot",square:"square",extraRounded:"extra-rounded"},h=Object.values(a);class d{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;switch(this._type){case a.square:n=this._drawSquare;break;case a.extraRounded:n=this._drawExtraRounded;break;default:n=this._drawDot}n.call(this,{x:t,y:e,size:i,rotation:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i+e/2} ${r}a ${e/2} ${e/2} 0 1 0 0.1 0zm 0 ${n}a ${e/2-n} ${e/2-n} 0 1 1 -0.1 0Z`)}}))}_basicSquare(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i} ${r}v ${e}h ${e}v `+-e+"z"+`M ${i+n} ${r+n}h `+(e-2*n)+"v "+(e-2*n)+"h "+(2*n-e)+"z")}}))}_basicExtraRounded(t){const{size:e,x:i,y:r}=t,n=e/7;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","path"),this._element.setAttribute("clip-rule","evenodd"),this._element.setAttribute("d",`M ${i} ${r+2.5*n}v `+2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*n}h `+2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*n} ${2.5*-n}v `+-2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*-n}h `+-2*n+`a ${2.5*n} ${2.5*n}, 0, 0, 0, ${2.5*-n} ${2.5*n}`+`M ${i+2.5*n} ${r+n}h `+2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*n}v `+2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*n}h `+-2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*-n} ${1.5*-n}v `+-2*n+`a ${1.5*n} ${1.5*n}, 0, 0, 1, ${1.5*n} ${1.5*-n}`)}}))}_drawDot({x:t,y:e,size:i,rotation:r}){this._basicDot({x:t,y:e,size:i,rotation:r})}_drawSquare({x:t,y:e,size:i,rotation:r}){this._basicSquare({x:t,y:e,size:i,rotation:r})}_drawExtraRounded({x:t,y:e,size:i,rotation:r}){this._basicExtraRounded({x:t,y:e,size:i,rotation:r})}}const u={dot:"dot",square:"square"},c=Object.values(u);class l{constructor({svg:t,type:e,window:i}){this._svg=t,this._type=e,this._window=i}draw(t,e,i,r){let n;n=this._type===u.square?this._drawSquare:this._drawDot,n.call(this,{x:t,y:e,size:i,rotation:r})}_rotateFigure({x:t,y:e,size:i,rotation:r=0,draw:n}){var o;const s=t+i/2,a=e+i/2;n(),null===(o=this._element)||void 0===o||o.setAttribute("transform",`rotate(${180*r/Math.PI},${s},${a})`)}_basicDot(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","circle"),this._element.setAttribute("cx",String(i+e/2)),this._element.setAttribute("cy",String(r+e/2)),this._element.setAttribute("r",String(e/2))}}))}_basicSquare(t){const{size:e,x:i,y:r}=t;this._rotateFigure(Object.assign(Object.assign({},t),{draw:()=>{this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect"),this._element.setAttribute("x",String(i)),this._element.setAttribute("y",String(r)),this._element.setAttribute("width",String(e)),this._element.setAttribute("height",String(e))}}))}_drawDot({x:t,y:e,size:i,rotation:r}){this._basicDot({x:t,y:e,size:i,rotation:r})}_drawSquare({x:t,y:e,size:i,rotation:r}){this._basicSquare({x:t,y:e,size:i,rotation:r})}}const g="circle",f=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],w=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];class p{constructor(t,e){this._roundSize=t=>this._options.dotsOptions.roundSize?Math.floor(t):t,this._window=e,this._element=this._window.document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("width",String(t.width)),this._element.setAttribute("height",String(t.height)),this._element.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),t.dotsOptions.roundSize||this._element.setAttribute("shape-rendering","crispEdges"),this._element.setAttribute("viewBox",`0 0 ${t.width} ${t.height}`),this._defs=this._window.document.createElementNS("http://www.w3.org/2000/svg","defs"),this._element.appendChild(this._defs),this._imageUri=t.image,this._instanceId=p.instanceCount++,this._options=t}get width(){return this._options.width}get height(){return this._options.height}getElement(){return this._element}async drawQR(t){const e=t.getModuleCount(),i=Math.min(this._options.width,this._options.height)-2*this._options.margin,r=this._options.shape===g?i/Math.sqrt(2):i,n=this._roundSize(r/e);let s={hideXDots:0,hideYDots:0,width:0,height:0};if(this._qr=t,this._options.image){if(await this.loadImage(),!this._image)return;const{imageOptions:t,qrOptions:i}=this._options,r=t.imageSize*o[i.errorCorrectionLevel],a=Math.floor(r*e*e);s=function({originalHeight:t,originalWidth:e,maxHiddenDots:i,maxHiddenAxisDots:r,dotSize:n}){const o={x:0,y:0},s={x:0,y:0};if(t<=0||e<=0||i<=0||n<=0)return{height:0,width:0,hideYDots:0,hideXDots:0};const a=t/e;return o.x=Math.floor(Math.sqrt(i/a)),o.x<=0&&(o.x=1),r&&r<o.x&&(o.x=r),o.x%2==0&&o.x--,s.x=o.x*n,o.y=1+2*Math.ceil((o.x*a-1)/2),s.y=Math.round(s.x*a),(o.y*o.x>i||r&&r<o.y)&&(r&&r<o.y?(o.y=r,o.y%2==0&&o.x--):o.y-=2,s.y=o.y*n,o.x=1+2*Math.ceil((o.y/a-1)/2),s.x=Math.round(s.y/a)),{height:s.y,width:s.x,hideYDots:o.y,hideXDots:o.x}}({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:a,maxHiddenAxisDots:e-14,dotSize:n})}this.drawBackground(),this.drawDots((t,i)=>{var r,n,o,a,h,d;return!(this._options.imageOptions.hideBackgroundDots&&t>=(e-s.hideYDots)/2&&t<(e+s.hideYDots)/2&&i>=(e-s.hideXDots)/2&&i<(e+s.hideXDots)/2||(null===(r=f[t])||void 0===r?void 0:r[i])||(null===(n=f[t-e+7])||void 0===n?void 0:n[i])||(null===(o=f[t])||void 0===o?void 0:o[i-e+7])||(null===(a=w[t])||void 0===a?void 0:a[i])||(null===(h=w[t-e+7])||void 0===h?void 0:h[i])||(null===(d=w[t])||void 0===d?void 0:d[i-e+7]))}),this.drawCorners(),this._options.image&&await this.drawImage({width:s.width,height:s.height,count:e,dotSize:n})}drawBackground(){var t,e,i;const r=this._element,n=this._options;if(r){const r=null===(t=n.backgroundOptions)||void 0===t?void 0:t.gradient,o=null===(e=n.backgroundOptions)||void 0===e?void 0:e.color;let s=n.height,a=n.width;if(r||o){const t=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");this._backgroundClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._backgroundClipPath.setAttribute("id",`clip-path-background-color-${this._instanceId}`),this._defs.appendChild(this._backgroundClipPath),(null===(i=n.backgroundOptions)||void 0===i?void 0:i.round)&&(s=a=Math.min(n.width,n.height),t.setAttribute("rx",String(s/2*n.backgroundOptions.round))),t.setAttribute("x",String(this._roundSize((n.width-a)/2))),t.setAttribute("y",String(this._roundSize((n.height-s)/2))),t.setAttribute("width",String(a)),t.setAttribute("height",String(s)),this._backgroundClipPath.appendChild(t),this._createColor({options:r,color:o,additionalRotation:0,x:0,y:0,height:n.height,width:n.width,name:`background-color-${this._instanceId}`})}}}drawDots(t){var e,i;if(!this._qr)throw"QR code is not defined";const r=this._options,n=this._qr.getModuleCount();if(n>r.width||n>r.height)throw"The canvas is too small.";const o=Math.min(r.width,r.height)-2*r.margin,a=r.shape===g?o/Math.sqrt(2):o,h=this._roundSize(a/n),d=this._roundSize((r.width-n*h)/2),u=this._roundSize((r.height-n*h)/2),c=new s({svg:this._element,type:r.dotsOptions.type,window:this._window});this._dotsClipPath=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),this._dotsClipPath.setAttribute("id",`clip-path-dot-color-${this._instanceId}`),this._defs.appendChild(this._dotsClipPath),this._createColor({options:null===(e=r.dotsOptions)||void 0===e?void 0:e.gradient,color:r.dotsOptions.color,additionalRotation:0,x:0,y:0,height:r.height,width:r.width,name:`dot-color-${this._instanceId}`});for(let e=0;e<n;e++)for(let r=0;r<n;r++)t&&!t(e,r)||(null===(i=this._qr)||void 0===i?void 0:i.isDark(e,r))&&(c.draw(d+r*h,u+e*h,h,(i,o)=>!(r+i<0||e+o<0||r+i>=n||e+o>=n)&&!(t&&!t(e+o,r+i))&&!!this._qr&&this._qr.isDark(e+o,r+i)),c._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(c._element));if(r.shape===g){const t=this._roundSize((o/h-n)/2),e=n+2*t,i=d-t*h,r=u-t*h,s=[],a=this._roundSize(e/2);for(let i=0;i<e;i++){s[i]=[];for(let r=0;r<e;r++)i>=t-1&&i<=e-t&&r>=t-1&&r<=e-t||Math.sqrt((i-a)*(i-a)+(r-a)*(r-a))>a?s[i][r]=0:s[i][r]=this._qr.isDark(r-2*t<0?r:r>=n?r-2*t:r-t,i-2*t<0?i:i>=n?i-2*t:i-t)?1:0}for(let t=0;t<e;t++)for(let n=0;n<e;n++)s[t][n]&&(c.draw(i+n*h,r+t*h,h,(e,i)=>{var r;return!!(null===(r=s[t+i])||void 0===r?void 0:r[n+e])}),c._element&&this._dotsClipPath&&this._dotsClipPath.appendChild(c._element))}}drawCorners(){if(!this._qr)throw"QR code is not defined";const t=this._element,e=this._options;if(!t)throw"Element code is not defined";const i=this._qr.getModuleCount(),r=Math.min(e.width,e.height)-2*e.margin,n=e.shape===g?r/Math.sqrt(2):r,o=this._roundSize(n/i),a=7*o,u=3*o,p=this._roundSize((e.width-i*o)/2),v=this._roundSize((e.height-i*o)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach(([t,r,n])=>{var g,_,m,b,y,x,S,C,A,M,$,O,D,k;const z=p+t*o*(i-7),B=v+r*o*(i-7);let P=this._dotsClipPath,I=this._dotsClipPath;if(((null===(g=e.cornersSquareOptions)||void 0===g?void 0:g.gradient)||(null===(_=e.cornersSquareOptions)||void 0===_?void 0:_.color))&&(P=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),P.setAttribute("id",`clip-path-corners-square-color-${t}-${r}-${this._instanceId}`),this._defs.appendChild(P),this._cornersSquareClipPath=this._cornersDotClipPath=I=P,this._createColor({options:null===(m=e.cornersSquareOptions)||void 0===m?void 0:m.gradient,color:null===(b=e.cornersSquareOptions)||void 0===b?void 0:b.color,additionalRotation:n,x:z,y:B,height:a,width:a,name:`corners-square-color-${t}-${r}-${this._instanceId}`})),(null===(y=e.cornersSquareOptions)||void 0===y?void 0:y.type)&&h.includes(e.cornersSquareOptions.type)){const t=new d({svg:this._element,type:e.cornersSquareOptions.type,window:this._window});t.draw(z,B,a,n),t._element&&P&&P.appendChild(t._element)}else{const t=new s({svg:this._element,type:(null===(x=e.cornersSquareOptions)||void 0===x?void 0:x.type)||e.dotsOptions.type,window:this._window});for(let e=0;e<f.length;e++)for(let i=0;i<f[e].length;i++)(null===(S=f[e])||void 0===S?void 0:S[i])&&(t.draw(z+i*o,B+e*o,o,(t,r)=>{var n;return!!(null===(n=f[e+r])||void 0===n?void 0:n[i+t])}),t._element&&P&&P.appendChild(t._element))}if(((null===(C=e.cornersDotOptions)||void 0===C?void 0:C.gradient)||(null===(A=e.cornersDotOptions)||void 0===A?void 0:A.color))&&(I=this._window.document.createElementNS("http://www.w3.org/2000/svg","clipPath"),I.setAttribute("id",`clip-path-corners-dot-color-${t}-${r}-${this._instanceId}`),this._defs.appendChild(I),this._cornersDotClipPath=I,this._createColor({options:null===(M=e.cornersDotOptions)||void 0===M?void 0:M.gradient,color:null===($=e.cornersDotOptions)||void 0===$?void 0:$.color,additionalRotation:n,x:z+2*o,y:B+2*o,height:u,width:u,name:`corners-dot-color-${t}-${r}-${this._instanceId}`})),(null===(O=e.cornersDotOptions)||void 0===O?void 0:O.type)&&c.includes(e.cornersDotOptions.type)){const t=new l({svg:this._element,type:e.cornersDotOptions.type,window:this._window});t.draw(z+2*o,B+2*o,u,n),t._element&&I&&I.appendChild(t._element)}else{const t=new s({svg:this._element,type:(null===(D=e.cornersDotOptions)||void 0===D?void 0:D.type)||e.dotsOptions.type,window:this._window});for(let e=0;e<w.length;e++)for(let i=0;i<w[e].length;i++)(null===(k=w[e])||void 0===k?void 0:k[i])&&(t.draw(z+i*o,B+e*o,o,(t,r)=>{var n;return!!(null===(n=w[e+r])||void 0===n?void 0:n[i+t])}),t._element&&I&&I.appendChild(t._element))}})}loadImage(){return new Promise((t,e)=>{var i;const r=this._options;if(!r.image)return e("Image is not defined");if(null===(i=r.nodeCanvas)||void 0===i?void 0:i.loadImage)r.nodeCanvas.loadImage(r.image).then(e=>{var i,n;if(this._image=e,this._options.imageOptions.saveAsBlob){const t=null===(i=r.nodeCanvas)||void 0===i?void 0:i.createCanvas(this._image.width,this._image.height);null===(n=null==t?void 0:t.getContext("2d"))||void 0===n||n.drawImage(e,0,0),this._imageUri=null==t?void 0:t.toDataURL()}t()}).catch(e);else{const e=new this._window.Image;"string"==typeof r.imageOptions.crossOrigin&&(e.crossOrigin=r.imageOptions.crossOrigin),this._image=e,e.onload=async()=>{this._options.imageOptions.saveAsBlob&&(this._imageUri=await async function(t,e){return new Promise(i=>{const r=new e.XMLHttpRequest;r.onload=function(){const t=new e.FileReader;t.onloadend=function(){i(t.result)},t.readAsDataURL(r.response)},r.open("GET",t),r.responseType="blob",r.send()})}(r.image||"",this._window)),t()},e.src=r.image}})}async drawImage({width:t,height:e,count:i,dotSize:r}){const n=this._options,o=this._roundSize((n.width-i*r)/2),s=this._roundSize((n.height-i*r)/2),a=o+this._roundSize(n.imageOptions.margin+(i*r-t)/2),h=s+this._roundSize(n.imageOptions.margin+(i*r-e)/2),d=t-2*n.imageOptions.margin,u=e-2*n.imageOptions.margin,c=this._window.document.createElementNS("http://www.w3.org/2000/svg","image");c.setAttribute("href",this._imageUri||""),c.setAttribute("xlink:href",this._imageUri||""),c.setAttribute("x",String(a)),c.setAttribute("y",String(h)),c.setAttribute("width",`${d}px`),c.setAttribute("height",`${u}px`),this._element.appendChild(c)}_createColor({options:t,color:e,additionalRotation:i,x:r,y:n,height:o,width:s,name:a}){const h=s>o?s:o,d=this._window.document.createElementNS("http://www.w3.org/2000/svg","rect");if(d.setAttribute("x",String(r)),d.setAttribute("y",String(n)),d.setAttribute("height",String(o)),d.setAttribute("width",String(s)),d.setAttribute("clip-path",`url('#clip-path-${a}')`),t){let e;if("radial"===t.type)e=this._window.document.createElementNS("http://www.w3.org/2000/svg","radialGradient"),e.setAttribute("id",a),e.setAttribute("gradientUnits","userSpaceOnUse"),e.setAttribute("fx",String(r+s/2)),e.setAttribute("fy",String(n+o/2)),e.setAttribute("cx",String(r+s/2)),e.setAttribute("cy",String(n+o/2)),e.setAttribute("r",String(h/2));else{const h=((t.rotation||0)+i)%(2*Math.PI),d=(h+2*Math.PI)%(2*Math.PI);let u=r+s/2,c=n+o/2,l=r+s/2,g=n+o/2;d>=0&&d<=.25*Math.PI||d>1.75*Math.PI&&d<=2*Math.PI?(u-=s/2,c-=o/2*Math.tan(h),l+=s/2,g+=o/2*Math.tan(h)):d>.25*Math.PI&&d<=.75*Math.PI?(c-=o/2,u-=s/2/Math.tan(h),g+=o/2,l+=s/2/Math.tan(h)):d>.75*Math.PI&&d<=1.25*Math.PI?(u+=s/2,c+=o/2*Math.tan(h),l-=s/2,g-=o/2*Math.tan(h)):d>1.25*Math.PI&&d<=1.75*Math.PI&&(c+=o/2,u+=s/2/Math.tan(h),g-=o/2,l-=s/2/Math.tan(h)),e=this._window.document.createElementNS("http://www.w3.org/2000/svg","linearGradient"),e.setAttribute("id",a),e.setAttribute("gradientUnits","userSpaceOnUse"),e.setAttribute("x1",String(Math.round(u))),e.setAttribute("y1",String(Math.round(c))),e.setAttribute("x2",String(Math.round(l))),e.setAttribute("y2",String(Math.round(g)))}t.colorStops.forEach(({offset:t,color:i})=>{const r=this._window.document.createElementNS("http://www.w3.org/2000/svg","stop");r.setAttribute("offset",100*t+"%"),r.setAttribute("stop-color",i),e.appendChild(r)}),d.setAttribute("fill",`url('#${a}')`),this._defs.appendChild(e)}else e&&d.setAttribute("fill",e);this._element.appendChild(d)}}p.instanceCount=0;const v=p,_="canvas",m={};for(let t=0;t<=40;t++)m[t]=t;const b={type:_,shape:"square",width:300,height:300,data:"",margin:0,qrOptions:{typeNumber:m[0],mode:void 0,errorCorrectionLevel:"Q"},imageOptions:{saveAsBlob:!0,hideBackgroundDots:!0,imageSize:.4,crossOrigin:void 0,margin:0},dotsOptions:{type:"square",color:"#000",roundSize:!0},backgroundOptions:{round:0,color:"#fff"}};function y(t){const e=Object.assign({},t);if(!e.colorStops||!e.colorStops.length)throw"Field 'colorStops' is required in gradient";return e.rotation?e.rotation=Number(e.rotation):e.rotation=0,e.colorStops=e.colorStops.map(t=>Object.assign(Object.assign({},t),{offset:Number(t.offset)})),e}function x(t){const e=Object.assign({},t);return e.width=Number(e.width),e.height=Number(e.height),e.margin=Number(e.margin),e.imageOptions=Object.assign(Object.assign({},e.imageOptions),{hideBackgroundDots:Boolean(e.imageOptions.hideBackgroundDots),imageSize:Number(e.imageOptions.imageSize),margin:Number(e.imageOptions.margin)}),e.margin>Math.min(e.width,e.height)&&(e.margin=Math.min(e.width,e.height)),e.dotsOptions=Object.assign({},e.dotsOptions),e.dotsOptions.gradient&&(e.dotsOptions.gradient=y(e.dotsOptions.gradient)),e.cornersSquareOptions&&(e.cornersSquareOptions=Object.assign({},e.cornersSquareOptions),e.cornersSquareOptions.gradient&&(e.cornersSquareOptions.gradient=y(e.cornersSquareOptions.gradient))),e.cornersDotOptions&&(e.cornersDotOptions=Object.assign({},e.cornersDotOptions),e.cornersDotOptions.gradient&&(e.cornersDotOptions.gradient=y(e.cornersDotOptions.gradient))),e.backgroundOptions&&(e.backgroundOptions=Object.assign({},e.backgroundOptions),e.backgroundOptions.gradient&&(e.backgroundOptions.gradient=y(e.backgroundOptions.gradient))),e}var S=i(873),C=i.n(S);function A(t){if(!t)throw new Error("Extension must be defined");"."===t[0]&&(t=t.substring(1));const e={bmp:"image/bmp",gif:"image/gif",ico:"image/vnd.microsoft.icon",jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp",pdf:"application/pdf"}[t.toLowerCase()];if(!e)throw new Error(`Extension "${t}" is not supported`);return e}class M{constructor(t){(null==t?void 0:t.jsdom)?this._window=new t.jsdom("",{resources:"usable"}).window:this._window=window,this._options=t?x(e(b,t)):b,this.update()}static _clearContainer(t){t&&(t.innerHTML="")}_setupSvg(){if(!this._qr)return;const t=new v(this._options,this._window);this._svg=t.getElement(),this._svgDrawingPromise=t.drawQR(this._qr).then(()=>{var e;this._svg&&(null===(e=this._extension)||void 0===e||e.call(this,t.getElement(),this._options))})}_setupCanvas(){var t,e;this._qr&&((null===(t=this._options.nodeCanvas)||void 0===t?void 0:t.createCanvas)?(this._nodeCanvas=this._options.nodeCanvas.createCanvas(this._options.width,this._options.height),this._nodeCanvas.width=this._options.width,this._nodeCanvas.height=this._options.height):(this._domCanvas=document.createElement("canvas"),this._domCanvas.width=this._options.width,this._domCanvas.height=this._options.height),this._setupSvg(),this._canvasDrawingPromise=null===(e=this._svgDrawingPromise)||void 0===e?void 0:e.then(()=>{var t;if(!this._svg)return;const e=this._svg,i=(new this._window.XMLSerializer).serializeToString(e),r=btoa(i),n=`data:${A("svg")};base64,${r}`;if(null===(t=this._options.nodeCanvas)||void 0===t?void 0:t.loadImage)return this._options.nodeCanvas.loadImage(n).then(t=>{var e,i;t.width=this._options.width,t.height=this._options.height,null===(i=null===(e=this._nodeCanvas)||void 0===e?void 0:e.getContext("2d"))||void 0===i||i.drawImage(t,0,0)});{const t=new this._window.Image;return new Promise(e=>{t.onload=()=>{var i,r;null===(r=null===(i=this._domCanvas)||void 0===i?void 0:i.getContext("2d"))||void 0===r||r.drawImage(t,0,0),e()},t.src=n})}}))}async _getElement(t="png"){if(!this._qr)throw"QR code is empty";return"svg"===t.toLowerCase()?(this._svg&&this._svgDrawingPromise||this._setupSvg(),await this._svgDrawingPromise,this._svg):((this._domCanvas||this._nodeCanvas)&&this._canvasDrawingPromise||this._setupCanvas(),await this._canvasDrawingPromise,this._domCanvas||this._nodeCanvas)}update(t){M._clearContainer(this._container),this._options=t?x(e(this._options,t)):this._options,this._options.data&&(this._qr=C()(this._options.qrOptions.typeNumber,this._options.qrOptions.errorCorrectionLevel),this._qr.addData(this._options.data,this._options.qrOptions.mode||function(t){switch(!0){case/^[0-9]*$/.test(t):return"Numeric";case/^[0-9A-Z $%*+\-./:]*$/.test(t):return"Alphanumeric";default:return"Byte"}}(this._options.data)),this._qr.make(),this._options.type===_?this._setupCanvas():this._setupSvg(),this.append(this._container))}append(t){if(t){if("function"!=typeof t.appendChild)throw"Container should be a single DOM node";this._options.type===_?this._domCanvas&&t.appendChild(this._domCanvas):this._svg&&t.appendChild(this._svg),this._container=t}}applyExtension(t){if(!t)throw"Extension function should be defined.";this._extension=t,this.update()}deleteExtension(){this._extension=void 0,this.update()}async getRawData(t="png"){if(!this._qr)throw"QR code is empty";const e=await this._getElement(t),i=A(t);if(!e)return null;if("svg"===t.toLowerCase()){const t=`<?xml version="1.0" standalone="no"?>\r\n${(new this._window.XMLSerializer).serializeToString(e)}`;return"undefined"==typeof Blob||this._options.jsdom?Buffer.from(t):new Blob([t],{type:i})}return new Promise(t=>{const r=e;if("toBuffer"in r)if("image/png"===i)t(r.toBuffer(i));else if("image/jpeg"===i)t(r.toBuffer(i));else{if("application/pdf"!==i)throw Error("Unsupported extension");t(r.toBuffer(i))}else"toBlob"in r&&r.toBlob(t,i,1)})}async download(t){if(!this._qr)throw"QR code is empty";if("undefined"==typeof Blob)throw"Cannot download in Node.js, call getRawData instead.";let e="png",i="qr";"string"==typeof t?(e=t,console.warn("Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument")):"object"==typeof t&&null!==t&&(t.name&&(i=t.name),t.extension&&(e=t.extension));const r=await this._getElement(e);if(r)if("svg"===e.toLowerCase()){let t=(new XMLSerializer).serializeToString(r);t='<?xml version="1.0" standalone="no"?>\r\n'+t,n(`data:${A(e)};charset=utf-8,${encodeURIComponent(t)}`,`${i}.svg`)}else n(r.toDataURL(A(e)),`${i}.${e}`)}}const $=M})(),r.default})())}).call(this)}).call(this,require("buffer").Buffer)},{buffer:142}]},{},[17])(17)});