@plattar/plattar-ar-adapter
Version:
Plattar AR Adapter for interfacing with Google & Apple WebAR
1 lines • 414 kB
JavaScript
"use strict";function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n2=0,F=function F(){};return{s:F,n:function n(){return _n2>=r.length?{done:!0}:{done:!1,value:r[_n2++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _readOnlyError(r){throw new TypeError('"'+r+'" is read-only')}function _wrapNativeSuper(t){var r="function"==typeof Map?new Map:void 0;return _wrapNativeSuper=function _wrapNativeSuper(t){if(null===t||!_isNativeFunction(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,Wrapper)}function Wrapper(){return _construct(t,arguments,_getPrototypeOf(this).constructor)}return Wrapper.prototype=Object.create(t.prototype,{constructor:{value:Wrapper,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf(Wrapper,t)},_wrapNativeSuper(t)}function _construct(t,e,r){if(_isNativeReflectConstruct())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,e);var p=new(t.bind.apply(t,o));return r&&_setPrototypeOf(p,r.prototype),p}function _isNativeFunction(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(n){return"function"==typeof t}}function _superPropGet(t,o,e,r){var p=_get(_getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t)}:p}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=_superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},_get.apply(null,arguments)}function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=_getPrototypeOf(t)););return t}function _regenerator(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof Generator?n:Generator,u=Object.create(c.prototype);return _regeneratorDefine2(u,"_invoke",function(r,n,o){var i,c,u,f=0,p=o||[],y=!1,G={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function d(t,r){return i=t,c=0,u=e,G.n=r,a}};function d(r,n){for(c=r,u=n,t=0;!y&&f&&!o&&t<p.length;t++){var o,i=p[t],d=G.p,l=i[2];r>3?(o=l===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(c=0,G.v=n,G.n=i[1]):d<l&&(o=r<3||i[0]>n||n>l)&&(i[4]=r,i[5]=n,G.n=l,c=0))}if(o||r>1)return a;throw y=!0,n}return function(o,p,l){if(f>1)throw TypeError("Generator is already running");for(y&&1===p&&d(p,l),c=p,u=l;(t=c<2?e:u)||!y;){i||(c?c<3?(c>1&&(G.n=-1),d(c,u)):G.n=u:G.v=u);try{if(f=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i["return"])&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(y=G.n<0)?u:r.call(n,G))!==a)break}catch(t){i=e,c=1,u=t}finally{f=1}}return{value:t,done:y}}}(r,o,i),!0),u}var a={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(_regeneratorDefine2(t={},n,function(){return this}),t),u=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(c);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,GeneratorFunctionPrototype):(e.__proto__=GeneratorFunctionPrototype,_regeneratorDefine2(e,o,"GeneratorFunction")),e.prototype=Object.create(u),e}return GeneratorFunction.prototype=GeneratorFunctionPrototype,_regeneratorDefine2(u,"constructor",GeneratorFunctionPrototype),_regeneratorDefine2(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName="GeneratorFunction",_regeneratorDefine2(GeneratorFunctionPrototype,o,"GeneratorFunction"),_regeneratorDefine2(u),_regeneratorDefine2(u,o,"Generator"),_regeneratorDefine2(u,n,function(){return this}),_regeneratorDefine2(u,"toString",function(){return"[object Generator]"}),(_regenerator=function _regenerator(){return{w:i,m:f}})()}function _regeneratorDefine2(e,r,n,t){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}_regeneratorDefine2=function _regeneratorDefine(e,r,n,t){function o(r,n){_regeneratorDefine2(e,r,function(e){return this._invoke(r,n,e)})}r?i?i(e,r,{value:n,enumerable:!t,configurable:!t,writable:!t}):e[r]=n:(o("next",0),o("throw",1),o("return",2))},_regeneratorDefine2(e,r,n,t)}function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value}catch(n){return void e(n)}i.done?t(u):Promise.resolve(u).then(r,o)}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise(function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n)}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n)}_next(void 0)})}}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}(function(f){if((typeof exports==="undefined"?"undefined":_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;var plattar_analytics_1=require("@plattar/plattar-analytics");var plattar_api_1=require("@plattar/plattar-api");var util_1=require("../util/util");var quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));var scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));var launcher_ar_1=require("./launcher-ar");var version_1=__importDefault(require("../version"));var ConfiguratorAR=function(_launcher_ar_1$Launch){function ConfiguratorAR(options){var _this;_classCallCheck(this,ConfiguratorAR);_this=_callSuper(this,ConfiguratorAR);_this._analytics=null;if(!options.state){throw new Error("ConfiguratorAR.constructor(state) - state must be defined")}_this._options=options;_this._ar=null;return _this}_inherits(ConfiguratorAR,_launcher_ar_1$Launch);return _createClass(ConfiguratorAR,[{key:"_SetupAnalytics",value:function _SetupAnalytics(){var scene=this._options.state.scene;var 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);var 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"}}}}}},{key:"_Compose",value:function(){var _Compose2=_asyncToGenerator(_regenerator().m(function _callee(output){var type,url,response,data,_t;return _regenerator().w(function(_context){while(1)switch(_context.p=_context.n){case 0:type=output==="glb"?"viewer":"reality";url="https://xrutils.plattar.com/v3/scene/".concat(this._options.state.scene.id,"/").concat(type);_context.p=1;_context.n=2;return fetch(url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{attributes:this._options.state.state.sceneGraph}})});case 2:response=_context.v;if(response.ok){_context.n=3;break}throw new Error("ConfiguratorAR - Fetching Existing Graph Error - network response was not ok ".concat(response.status));case 3:_context.n=4;return response.json();case 4:data=_context.v;return _context.a(2,data.data.attributes.url);case 5:_context.p=5;_t=_context.v;throw new Error("ConfiguratorAR - Fetching Existing Graph Error - there was a request error to ".concat(url,", error was ").concat(_t.message));case 6:return _context.a(2)}},_callee,this,[[1,5]])}));function _Compose(_x){return _Compose2.apply(this,arguments)}return _Compose}()},{key:"init",value:function(){var _init=_asyncToGenerator(_regenerator().m(function _callee2(){var scene,sceneOpt,modelUrl,_modelUrl,_modelUrl2,arviewer;return _regenerator().w(function(_context2){while(1)switch(_context2.n){case 0:if(util_1.Util.canAugment()){_context2.n=1;break}throw new Error("ConfiguratorAR.init() - cannot proceed as AR not available in context");case 1:scene=this._options.state.scene;this._SetupAnalytics();sceneOpt=scene.attributes.custom_json||{};if(!(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS())){_context2.n=7;break}if(!(sceneOpt.anchor==="face")){_context2.n=4;break}if(!util_1.Util.canRealityViewer()){_context2.n=3;break}_context2.n=2;return this._Compose("vto");case 2:modelUrl=_context2.v;this._ar=new quicklook_viewer_1["default"];this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return _context2.a(2,this);case 3:throw new Error("ConfiguratorAR.init() - cannot proceed as VTO AR requires Reality Viewer support");case 4:if(!util_1.Util.canQuicklook()){_context2.n=6;break}_context2.n=5;return this._Compose("usdz");case 5:_modelUrl=_context2.v;this._ar=new quicklook_viewer_1["default"];this._ar.modelUrl=_modelUrl;this._ar.banner=this.options.banner;return _context2.a(2,this);case 6:throw new Error("ConfiguratorAR.init() - cannot proceed as IOS device does not support AR Mode");case 7:if(!util_1.Util.canSceneViewer()){_context2.n=9;break}_context2.n=8;return this._Compose("glb");case 8:_modelUrl2=_context2.v;arviewer=new scene_viewer_1["default"];arviewer.modelUrl=_modelUrl2;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}this._ar=arviewer;return _context2.a(2,this);case 9:throw new Error("ConfiguratorAR.init() - could not initialise AR correctly, check values");case 10:return _context2.a(2)}},_callee2,this)}));function init(){return _init.apply(this,arguments)}return init}()},{key:"start",value:function start(){if(!this._ar){throw new Error("SceneAR.start() - cannot proceed as AR instance is null")}var 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()}},{key:"canQuicklook",value:function canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}},{key:"canRealityViewer",value:function canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}},{key:"canSceneViewer",value:function canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}])}(launcher_ar_1.LauncherAR);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;var LauncherAR=function(){function LauncherAR(){_classCallCheck(this,LauncherAR);this._opt={anchor:"horizontal_vertical",banner:null}}return _createClass(LauncherAR,[{key:"launch",value:function(){var _launch=_asyncToGenerator(_regenerator().m(function _callee3(){var value;return _regenerator().w(function(_context3){while(1)switch(_context3.n){case 0:_context3.n=1;return this.init();case 1:value=_context3.v;return _context3.a(2,value.start())}},_callee3,this)}));function launch(){return _launch.apply(this,arguments)}return launch}()},{key:"options",get:function get(){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;var plattar_api_1=require("@plattar/plattar-api");var plattar_analytics_1=require("@plattar/plattar-analytics");var util_1=require("../util/util");var quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));var reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));var scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));var launcher_ar_1=require("./launcher-ar");var version_1=__importDefault(require("../version"));var ModelAR=function(_launcher_ar_1$Launch2){function ModelAR(options){var _this2;_classCallCheck(this,ModelAR);_this2=_callSuper(this,ModelAR);_this2._analytics=null;if(!options.modelID){throw new Error("ModelAR.constructor(modelID) - modelID must be defined")}_this2._options=options;_this2._ar=null;return _this2}_inherits(ModelAR,_launcher_ar_1$Launch2);return _createClass(ModelAR,[{key:"modelID",get:function get(){return this._options.modelID}},{key:"_SetupAnalytics",value:function _SetupAnalytics(model){var analytics=null;var 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"}}}}},{key:"init",value:function init(){var _this3=this;return new Promise(function(accept,reject){if(!util_1.Util.canAugment()){return reject(new Error("ModelAR.init() - cannot proceed as AR not available in context"))}var model=new plattar_api_1.FileModel(_this3.modelID);model.include(plattar_api_1.Project);model.get().then(function(model){_this3._SetupAnalytics(model);if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(model.attributes.reality_filename&&util_1.Util.canRealityViewer()){_this3._ar=new reality_viewer_1["default"];_this3._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.reality_filename;_this3._ar.banner=_this3.options.banner;return accept(_this3)}if(model.attributes.usdz_filename&&util_1.Util.canQuicklook()){_this3._ar=new quicklook_viewer_1["default"];_this3._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.usdz_filename;_this3._ar.banner=_this3.options.banner;return accept(_this3)}return reject(new Error("ModelAR.init() - cannot proceed as ModelFile does not have a defined .usdz or .reality file"))}if(util_1.Util.canSceneViewer()){var arviewer=new scene_viewer_1["default"];arviewer.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.original_filename;arviewer.isVertical=_this3.options.anchor==="vertical"?true:false;arviewer.banner=_this3.options.banner;_this3._ar=arviewer;return accept(_this3)}return reject(new Error("ModelAR.init() - could not initialise AR correctly, check values"))})["catch"](reject)})}},{key:"start",value:function start(){if(!this._ar){throw new Error("ModelAR.start() - cannot proceed as AR instance is null")}var 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()}},{key:"canQuicklook",value:function canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}},{key:"canRealityViewer",value:function canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}},{key:"canSceneViewer",value:function canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}])}(launcher_ar_1.LauncherAR);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;var plattar_api_1=require("@plattar/plattar-api");var plattar_analytics_1=require("@plattar/plattar-analytics");var util_1=require("../util/util");var quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));var reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));var scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));var launcher_ar_1=require("./launcher-ar");var version_1=__importDefault(require("../version"));var ProductAR=function(_launcher_ar_1$Launch3){function ProductAR(options){var _this4;_classCallCheck(this,ProductAR);_this4=_callSuper(this,ProductAR);_this4._analytics=null;if(!options.productID){throw new Error("ProductAR.constructor(productID, variationID) - productID must be defined")}_this4._options=options;_this4._ar=null;return _this4}_inherits(ProductAR,_launcher_ar_1$Launch3);return _createClass(ProductAR,[{key:"productID",get:function get(){return this._options.productID}},{key:"variationID",get:function get(){return this._options.variationID}},{key:"variationSKU",get:function get(){return this._options.variationSKU}},{key:"_SetupAnalytics",value:function _SetupAnalytics(product,variation){var analytics=null;var 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);var 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)}}},{key:"init",value:function init(){var _this5=this;return new Promise(function(accept,reject){if(!util_1.Util.canAugment()){return reject(new Error("ProductAR.init() - cannot proceed as AR not available in context"))}var product=new plattar_api_1.Product(_this5.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(function(product){var variationID=_this5.variationID?_this5.variationID==="default"?product.attributes.product_variation_id:_this5.variationID:null;var variationSKU=_this5.variationSKU;if(!variationID&&!variationSKU){return reject(new Error("ProductAR.init() - cannot proceed as variation-id or variation-sku was not set correctly"))}var variation=undefined;if(variationID){variation=product.relationships.find(plattar_api_1.ProductVariation,variationID)}if(!variation&&variationSKU){var variations=product.relationships.filter(plattar_api_1.ProductVariation);if(variations){variation=variations.find(function(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"))}var modelID=variation.attributes.file_model_id;if(!modelID){return reject(new Error("ProductAR.init() - cannot proceed as variation does not have a defined file"))}var 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"))}_this5._SetupAnalytics(product,variation);if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(model.attributes.reality_filename&&util_1.Util.canRealityViewer()){_this5._ar=new reality_viewer_1["default"];_this5._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.reality_filename;_this5._ar.banner=_this5.options.banner;return accept(_this5)}if(model.attributes.usdz_filename&&util_1.Util.canQuicklook()){_this5._ar=new quicklook_viewer_1["default"];_this5._ar.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.usdz_filename;_this5._ar.banner=_this5.options.banner;return accept(_this5)}return reject(new Error("ProductAR.init() - cannot proceed as ModelFile does not have a defined .usdz or .reality file"))}if(util_1.Util.canSceneViewer()){var arviewer=new scene_viewer_1["default"];arviewer.modelUrl=plattar_api_1.Server.location().cdn+model.attributes.path+model.attributes.original_filename;arviewer.isVertical=_this5.options.anchor==="vertical"?true:false;arviewer.banner=_this5.options.banner;var scene=product.relationships.find(plattar_api_1.Scene);if(scene){var sceneOpt=scene.attributes.custom_json||{};if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}}_this5._ar=arviewer;return accept(_this5)}return reject(new Error("ProductAR.init() - could not initialise AR correctly, check values"))})["catch"](reject)})}},{key:"start",value:function start(){if(!this._ar){throw new Error("ProductAR.start() - cannot proceed as AR instance is null")}var 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()}},{key:"canQuicklook",value:function canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}},{key:"canRealityViewer",value:function canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}},{key:"canSceneViewer",value:function canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}])}(launcher_ar_1.LauncherAR);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;var plattar_analytics_1=require("@plattar/plattar-analytics");var plattar_api_1=require("@plattar/plattar-api");var util_1=require("../util/util");var quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));var reality_viewer_1=__importDefault(require("../viewers/reality-viewer"));var scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));var launcher_ar_1=require("./launcher-ar");var version_1=__importDefault(require("../version"));var RawAR=function(_launcher_ar_1$Launch4){function RawAR(options){var _this6;_classCallCheck(this,RawAR);_this6=_callSuper(this,RawAR);_this6._analytics=null;if(!options.modelLocation){throw new Error("RawAR.constructor(modelLocation) - modelLocation must be defined")}var lowerLoc=options.modelLocation.toLowerCase();if(lowerLoc.endsWith("usdz")||lowerLoc.endsWith("glb")||lowerLoc.endsWith("gltf")||lowerLoc.endsWith("reality")){_this6._options=options;_this6._ar=null}else{throw new Error("RawAR.constructor(modelLocation) - modelLocation must be one of gltf, glb, usdz or reality")}return _this6}_inherits(RawAR,_launcher_ar_1$Launch4);return _createClass(RawAR,[{key:"modelLocation",get:function get(){return this._options.modelLocation}},{key:"_SetupAnalytics",value:function _SetupAnalytics(){var _this7=this;return new Promise(function(accept,_reject){var sceneID=_this7._options.sceneID;if(!sceneID){return accept()}var scene=new plattar_api_1.Scene(sceneID);scene.include(plattar_api_1.Project);scene.get().then(function(scene){var analytics=new plattar_analytics_1.Analytics(scene.attributes.application_id);analytics.origin=plattar_api_1.Server.location().type;_this7._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);var application=scene.relationships.find(plattar_api_1.Project);if(application){analytics.data.push("applicationId",application.id);analytics.data.push("applicationTitle",application.attributes.title);if(_this7._options.useARBanner){_this7.options.banner={title:application.attributes.title,subtitle:scene.attributes.title,button:"Visit"}}}accept()})["catch"](function(_err){accept()})})}},{key:"init",value:function init(){var _this8=this;return new Promise(function(accept,reject){if(!util_1.Util.canAugment()){return reject(new Error("RawAR.init() - cannot proceed as AR not available in context"))}_this8._SetupAnalytics().then(function(){var modelLocation=_this8._options.modelLocation;var lowerLoc=modelLocation.toLowerCase();if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(lowerLoc.endsWith("reality")&&util_1.Util.canRealityViewer()){_this8._ar=new reality_viewer_1["default"];_this8._ar.modelUrl=modelLocation;_this8._ar.banner=_this8.options.banner;return accept(_this8)}if(lowerLoc.endsWith("usdz")&&util_1.Util.canQuicklook()){_this8._ar=new quicklook_viewer_1["default"];_this8._ar.modelUrl=modelLocation;return accept(_this8)}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")){var arviewer=new scene_viewer_1["default"];arviewer.modelUrl=modelLocation;arviewer.isVertical=_this8.options.anchor==="vertical"?true:false;arviewer.banner=_this8.options.banner;_this8._ar=arviewer;return accept(_this8)}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"))})})}},{key:"start",value:function start(){if(!this._ar){throw new Error("RawAR.start() - cannot proceed as AR instance is null")}var 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()}},{key:"canQuicklook",value:function canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}},{key:"canRealityViewer",value:function canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}},{key:"canSceneViewer",value:function canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}])}(launcher_ar_1.LauncherAR);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;var plattar_analytics_1=require("@plattar/plattar-analytics");var plattar_api_1=require("@plattar/plattar-api");var plattar_services_1=require("@plattar/plattar-services");var util_1=require("../util/util");var quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));var scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));var launcher_ar_1=require("./launcher-ar");var version_1=__importDefault(require("../version"));var SceneAR=function(_launcher_ar_1$Launch5){function SceneAR(options){var _this9;_classCallCheck(this,SceneAR);_this9=_callSuper(this,SceneAR);_this9._analytics=null;if(!options.sceneID){throw new Error("SceneAR.constructor(sceneID) - sceneID must be defined")}_this9._options=options;_this9._ar=null;return _this9}_inherits(SceneAR,_launcher_ar_1$Launch5);return _createClass(SceneAR,[{key:"sceneID",get:function get(){return this._options.sceneID}},{key:"_SetupAnalytics",value:function _SetupAnalytics(scene){var 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);var 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"}}}}}},{key:"_ComposeScene",value:function _ComposeScene(scene,output){var _this0=this;return new Promise(function(accept,reject){var sceneProducts=scene.relationships.filter(plattar_api_1.SceneProduct);var 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"))}var configurator=new plattar_services_1.Configurator;configurator.server=plattar_api_1.Server.location().type;configurator.output=output;var totalARObjectCount=0;sceneProducts.forEach(function(sceneProduct){var product=sceneProduct.relationships.find(plattar_api_1.Product);var selection=_this0._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(function(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(function(result){accept(result.filename)})["catch"](reject)})}},{key:"init",value:function init(){var _this1=this;return new Promise(function(accept,reject){if(!util_1.Util.canAugment()){return reject(new Error("SceneAR.init() - cannot proceed as AR not available in context"))}var scene=new plattar_api_1.Scene(_this1.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(function(scene){_this1._SetupAnalytics(scene);var sceneOpt=scene.attributes.custom_json||{};if(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS()){if(sceneOpt.anchor==="face"){if(util_1.Util.canRealityViewer()){return _this1._ComposeScene(scene,"vto").then(function(modelUrl){_this1._ar=new quicklook_viewer_1["default"];_this1._ar.modelUrl=modelUrl;_this1._ar.banner=_this1.options.banner;return accept(_this1)})["catch"](reject)}else{return reject(new Error("SceneAR.init() - cannot proceed as VTO AR requires Reality Viewer support"))}}if(util_1.Util.canQuicklook()){return _this1._ComposeScene(scene,"usdz").then(function(modelUrl){_this1._ar=new quicklook_viewer_1["default"];_this1._ar.modelUrl=modelUrl;_this1._ar.banner=_this1.options.banner;return accept(_this1)})["catch"](reject)}return reject(new Error("SceneAR.init() - cannot proceed as IOS device does not support AR Mode"))}if(util_1.Util.canSceneViewer()){return _this1._ComposeScene(scene,"glb").then(function(modelUrl){var arviewer=new scene_viewer_1["default"];arviewer.modelUrl=modelUrl;arviewer.isVertical=_this1.options.anchor==="vertical"?true:false;arviewer.banner=_this1.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}_this1._ar=arviewer;return accept(_this1)})["catch"](reject)}return reject(new Error("SceneAR.init() - could not initialise AR correctly, check values"))})["catch"](reject)})}},{key:"start",value:function start(){if(!this._ar){throw new Error("SceneAR.start() - cannot proceed as AR instance is null")}var 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()}},{key:"canQuicklook",value:function canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}},{key:"canRealityViewer",value:function canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}},{key:"canSceneViewer",value:function canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}])}(launcher_ar_1.LauncherAR);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;var plattar_analytics_1=require("@plattar/plattar-analytics");var plattar_api_1=require("@plattar/plattar-api");var util_1=require("../util/util");var quicklook_viewer_1=__importDefault(require("../viewers/quicklook-viewer"));var scene_viewer_1=__importDefault(require("../viewers/scene-viewer"));var launcher_ar_1=require("./launcher-ar");var version_1=__importDefault(require("../version"));var SceneGraphAR=function(_launcher_ar_1$Launch6){function SceneGraphAR(options){var _this10;_classCallCheck(this,SceneGraphAR);_this10=_callSuper(this,SceneGraphAR);_this10._analytics=null;_this10._options=options;_this10._ar=null;return _this10}_inherits(SceneGraphAR,_launcher_ar_1$Launch6);return _createClass(SceneGraphAR,[{key:"_SetupAnalytics",value:function(){var _SetupAnalytics2=_asyncToGenerator(_regenerator().m(function _callee4(){var scene,fetchedScene,analytics,application;return _regenerator().w(function(_context4){while(1)switch(_context4.n){case 0:scene=new plattar_api_1.Scene(this._options.sceneID);scene.include(plattar_api_1.Project);_context4.n=1;return scene.get();case 1:fetchedScene=_context4.v;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);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 _context4.a(2,fetchedScene)}},_callee4,this)}));function _SetupAnalytics(){return _SetupAnalytics2.apply(this,arguments)}return _SetupAnalytics}()},{key:"_Compose",value:function(){var _Compose3=_asyncToGenerator(_regenerator().m(function _callee5(output){var type,url,response,data,_t2;return _regenerator().w(function(_context5){while(1)switch(_context5.p=_context5.n){case 0:type=output==="glb"?"viewer":"reality";url="https://xrutils.plattar.com/v3/scene/".concat(this._options.sceneID,"/").concat(type,"/").concat(this._options.id);_context5.p=1;_context5.n=2;return fetch(url,{method:"GET",headers:{"Content-Type":"application/json"}});case 2:response=_context5.v;if(response.ok){_context5.n=3;break}throw new Error("ARAdapter - Fetching Existing Graph Error - network response was not ok ".concat(response.status));case 3:_context5.n=4;return response.json();case 4:data=_context5.v;return _context5.a(2,data.data.attributes.url);case 5:_context5.p=5;_t2=_context5.v;throw new Error("ARAdapter - Fetching Existing Graph Error - there was a request error to ".concat(url,", error was ").concat(_t2.message));case 6:return _context5.a(2)}},_callee5,this,[[1,5]])}));function _Compose(_x2){return _Compose3.apply(this,arguments)}return _Compose}()},{key:"init",value:function(){var _init2=_asyncToGenerator(_regenerator().m(function _callee6(){var scene,sceneOpt,modelUrl,_modelUrl3,_modelUrl4,arviewer;return _regenerator().w(function(_context6){while(1)switch(_context6.n){case 0:if(util_1.Util.canAugment()){_context6.n=1;break}throw new Error("SceneGraphAR.init() - cannot proceed as AR not available in context");case 1:_context6.n=2;return this._SetupAnalytics();case 2:scene=_context6.v;sceneOpt=scene.attributes.custom_json||{};if(!(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS())){_context6.n=8;break}if(!(sceneOpt.anchor==="face")){_context6.n=5;break}if(!util_1.Util.canRealityViewer()){_context6.n=4;break}_context6.n=3;return this._Compose("vto");case 3:modelUrl=_context6.v;this._ar=new quicklook_viewer_1["default"];this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return _context6.a(2,this);case 4:throw new Error("SceneGraphAR.init() - cannot proceed as VTO AR requires Reality Viewer support");case 5:if(!util_1.Util.canQuicklook()){_context6.n=7;break}_context6.n=6;return this._Compose("usdz");case 6:_modelUrl3=_context6.v;this._ar=new quicklook_viewer_1["default"];this._ar.modelUrl=_modelUrl3;this._ar.banner=this.options.banner;return _context6.a(2,this);case 7:throw new Error("SceneGraphAR.init() - cannot proceed as IOS device does not support AR Mode");case 8:if(!util_1.Util.canSceneViewer()){_context6.n=10;break}_context6.n=9;return this._Compose("glb");case 9:_modelUrl4=_context6.v;arviewer=new scene_viewer_1["default"];arviewer.modelUrl=_modelUrl4;arviewer.isVertical=this.options.anchor==="vertical"?true:false;arviewer.banner=this.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}this._ar=arviewer;return _context6.a(2,this);case 10:throw new Error("SceneGraphAR.init() - could not initialise AR correctly, check values");case 11:return _context6.a(2)}},_callee6,this)}));function init(){return _init2.apply(this,arguments)}return init}()},{key:"start",value:function start(){if(!this._ar){throw new Error("SceneGraphAR.start() - cannot proceed as AR instance is null")}var 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()}},{key:"canQuicklook",value:function canQuicklook(){return this._ar&&this._ar.nodeType==="Quick Look"?true:false}},{key:"canRealityViewer",value:function canRealityViewer(){return this._ar&&this._ar.nodeType==="Reality Viewer"?true:false}},{key:"canSceneViewer",value:function canSceneViewer(){return this._ar&&this._ar.nodeType==="Scene Viewer"?true:false}}])}(launcher_ar_1.LauncherAR);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;var product_ar_1=require("./product-ar");var plattar_api_1=require("@plattar/plattar-api");var util_1=require("../util/util");var SceneProductAR=function(_product_ar_1$Product){function SceneProductAR(options){var _this11;_classCallCheck(this,SceneProductAR);_this11=_callSuper(this,SceneProductAR,[options]);_this11._attachedProductID=null;if(!options.productID){throw new Error("SceneProductAR.constructor(sceneProductID, variationID) - sceneProductID must be defined")}_this11._sceneProductID=options.productID;return _this11}_inherits(SceneProductAR,_product_ar_1$Product);return _createClass(SceneProductAR,[{key:"sceneProductID",get:function get(){return this._sceneProductID}},{key:"productID",get:function get(){if(!this._attachedProductID){throw new Error("SceneProductAR.productID() - product id was not defined, did you call init()?")}return this._attachedProductID}},{key:"init",value:function init(){var _this12=this;return new Promise(function(accept,reject){if(!util_1.Util.canAugment()){return reject(new Error("SceneProductAR.init() - cannot proceed as AR not available in context"))}var sceneProduct=new plattar_api_1.SceneProduct(_this12.sceneProductID);sceneProduct.get().then(function(sceneProduct){var productID=sceneProduct.attributes.product_id;if(!productID){return reject("SceneProductAR.init() - Scene Product does not have an attached Product instance")}_this12._attachedProductID=productID;return _superPropGet(SceneProductAR,"init",_this12,3)([]).then(accept)["catch"](reject)})["catch"](reject)})}}])}(product_ar_1.ProductAR);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;var plattar_api_1=require("@plattar/plattar-api");var scene_product_ar_1=require("../../ar/scene-product-ar");var util_1=require("../../util/util");var plattar_controller_1=require("./plattar-controller");var configurator_ar_1=require("../../ar/configurator-ar");var scene_graph_ar_1=require("../../ar/scene-graph-ar");var ConfiguratorController=function(_plattar_controller_){function ConfiguratorController(){var _this13;_classCallCheck(this,ConfiguratorController);_this13=_callSuper(this,ConfiguratorController,arguments);_this13._cachedConfigState=null;return _this13}_inherits(ConfiguratorController,_plattar_controller_);return _createClass(ConfiguratorController,[{key:"getConfiguratorState",value:function(){var _getConfiguratorState=_asyncToGenerator(_regenerator().m(function _callee7(){return _regenerator().w(function(_context7){while(1)switch(_context7.n){case 0:if(!this._cachedConfigState){_context7.n=1;break}return _context7.a(2,this._cachedConfigState);case 1:this._cachedConfigState=this.createConfiguratorState();return _context7.a(2,this._cachedConfigState)}},_callee7,this)}));function getConfiguratorState(){return _getConfiguratorState.apply(this,arguments)}return getConfiguratorState}()},{key:"onAttributesUpdated",value:function(){var _onAttributesUpdated=_asyncToGenerator(_regenerator().m(function _callee8(attributeName){var state,viewer,variationIDs,variationIDsList,variationSKUs,variationSKUList,configState,_variationIDs,_variationIDsList,_configState,_variationSKUs,_variationSKUList;return _regenerator().w(function(_context8){while(1)switch(_context8.n){case 0:state=this._state;if(!(state===plattar_controller_1.ControllerState.Renderer)){_context8.n=3;break}viewer=this.element;if(!viewer){_context8.n=2;break}if(!(attributeName==="variation-id")){_context8.n=1;break}variationIDs=this.getAttribute("variation-id");variationIDsList=variationIDs?variationIDs.split(","):[];if(!(variationIDsList.length>0)){_context8.n=1;break}_context8.n=1;return viewer.messenger.selectVariationID(variationIDsList)