UNPKG

@plattar/plattar-ar-adapter

Version:

Plattar AR Adapter for interfacing with Google & Apple WebAR

1 lines 414 kB
"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 _regeneratorRuntime(){"use strict";_regeneratorRuntime=function _regeneratorRuntime(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},"")}catch(t){define=function define(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,"_invoke",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=wrap;var h="suspendedStart",l="suspendedYield",f="executing",s="completed",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,function(){return this});var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){["next","throw","return"].forEach(function(e){define(t,e,function(t){return this._invoke(e,t)})})}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==_typeof(h)&&n.call(h,"__await")?e.resolve(h.__await).then(function(t){invoke("next",t,i,a)},function(t){invoke("throw",t,i,a)}):e.resolve(h).then(function(t){u.value=t,i(u)},function(t){return invoke("throw",t,i,a)})}a(c.arg)}var r;o(this,"_invoke",{value:function value(t,n){function callInvokeWithMethodAndArg(){return new e(function(e,r){invoke(t,n,e,r)})}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw Error("Generator is already running");if(o===s){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var p=tryCatch(e,r,n);if("normal"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}"throw"===p.type&&(o=s,n.method="throw",n.arg=p.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator["return"]&&(r.method="return",r.arg=t,maybeInvokeDelegate(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=tryCatch(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new TypeError(_typeof(e)+" is not iterable")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,"GeneratorFunction")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,function(){return this}),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then(function(t){return t.done?t.value:a.next()})},defineIteratorMethods(g),define(g,u,"Generator"),define(g,a,function(){return this}),define(g,"toString",function(){return"[object Generator]"}),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function reset(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function dispatchException(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type="throw",a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function abrupt(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function complete(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function finish(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function _catch(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function delegateYield(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}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 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 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(_regeneratorRuntime().mark(function _callee(output){var objects,configurator,totalARObjectCount,results;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:objects=this._options.state.state.array();if(!(objects.length<=0)){_context.next=3;break}throw new Error("ConfiguratorAR.Compose() - cannot proceed as scene does not contain AR components");case 3:configurator=new plattar_services_1.Configurator;configurator.server=plattar_api_1.Server.location().type;configurator.output=output;totalARObjectCount=0;objects.forEach(function(object){if(object.meta_data.augment){if(object.meta_data.type==="scenemodel"){configurator.addModel(object.scene_product_id)}else{configurator.addSceneProduct(object.scene_product_id,object.product_variation_id)}totalARObjectCount++}});if(!(totalARObjectCount<=0)){_context.next=10;break}throw new Error("ConfiguratorAR.Compose() - cannot proceed as scene does not contain any enabled AR components");case 10:_context.next=12;return configurator.get();case 12:results=_context.sent;return _context.abrupt("return",results.filename);case 14:case"end":return _context.stop()}},_callee,this)}));function _Compose(_x){return _Compose2.apply(this,arguments)}return _Compose}()},{key:"init",value:function(){var _init=_asyncToGenerator(_regeneratorRuntime().mark(function _callee2(){var scene,sceneOpt,modelUrl,_modelUrl,_modelUrl2,arviewer;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(util_1.Util.canAugment()){_context2.next=2;break}throw new Error("ConfiguratorAR.init() - cannot proceed as AR not available in context");case 2:scene=this._options.state.scene;this._SetupAnalytics();sceneOpt=scene.attributes.custom_json||{};if(!(util_1.Util.isSafari()||util_1.Util.isChromeOnIOS())){_context2.next=27;break}if(!(sceneOpt.anchor==="face")){_context2.next=18;break}if(!util_1.Util.canRealityViewer()){_context2.next=17;break}_context2.next=10;return this._Compose("vto");case 10:modelUrl=_context2.sent;this._ar=new quicklook_viewer_1["default"];this._ar.modelUrl=modelUrl;this._ar.banner=this.options.banner;return _context2.abrupt("return",this);case 17:throw new Error("ConfiguratorAR.init() - cannot proceed as VTO AR requires Reality Viewer support");case 18:if(!util_1.Util.canQuicklook()){_context2.next=26;break}_context2.next=21;return this._Compose("usdz");case 21:_modelUrl=_context2.sent;this._ar=new quicklook_viewer_1["default"];this._ar.modelUrl=_modelUrl;this._ar.banner=this.options.banner;return _context2.abrupt("return",this);case 26:throw new Error("ConfiguratorAR.init() - cannot proceed as IOS device does not support AR Mode");case 27:if(!util_1.Util.canSceneViewer()){_context2.next=38;break}_context2.next=30;return this._Compose("glb");case 30:_modelUrl2=_context2.sent;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.abrupt("return",this);case 38:throw new Error("ConfiguratorAR.init() - could not initialise AR correctly, check values");case 39:case"end":return _context2.stop()}},_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":18,"../version":19,"../viewers/quicklook-viewer":21,"../viewers/scene-viewer":23,"./launcher-ar":2,"@plattar/plattar-analytics":43,"@plattar/plattar-api":47,"@plattar/plattar-services":121}],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(_regeneratorRuntime().mark(function _callee3(){var value;return _regeneratorRuntime().wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.next=2;return this.init();case 2:value=_context3.sent;return _context3.abrupt("return",value.start());case 4:case"end":return _context3.stop()}},_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":18,"../version":19,"../viewers/quicklook-viewer":21,"../viewers/reality-viewer":22,"../viewers/scene-viewer":23,"./launcher-ar":2,"@plattar/plattar-analytics":43,"@plattar/plattar-api":47}],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":18,"../version":19,"../viewers/quicklook-viewer":21,"../viewers/reality-viewer":22,"../viewers/scene-viewer":23,"./launcher-ar":2,"@plattar/plattar-analytics":43,"@plattar/plattar-api":47}],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":18,"../version":19,"../viewers/quicklook-viewer":21,"../viewers/reality-viewer":22,"../viewers/scene-viewer":23,"./launcher-ar":2,"@plattar/plattar-analytics":43,"@plattar/plattar-api":47}],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 _this10=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=_this10._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 _this11=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(_this11.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){_this11._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 _this11._ComposeScene(scene,"vto").then(function(modelUrl){_this11._ar=new quicklook_viewer_1["default"];_this11._ar.modelUrl=modelUrl;_this11._ar.banner=_this11.options.banner;return accept(_this11)})["catch"](reject)}else{return reject(new Error("SceneAR.init() - cannot proceed as VTO AR requires Reality Viewer support"))}}if(util_1.Util.canQuicklook()){return _this11._ComposeScene(scene,"usdz").then(function(modelUrl){_this11._ar=new quicklook_viewer_1["default"];_this11._ar.modelUrl=modelUrl;_this11._ar.banner=_this11.options.banner;return accept(_this11)})["catch"](reject)}return reject(new Error("SceneAR.init() - cannot proceed as IOS device does not support AR Mode"))}if(util_1.Util.canSceneViewer()){return _this11._ComposeScene(scene,"glb").then(function(modelUrl){var arviewer=new scene_viewer_1["default"];arviewer.modelUrl=modelUrl;arviewer.isVertical=_this11.options.anchor==="vertical"?true:false;arviewer.banner=_this11.options.banner;if(sceneOpt.anchor==="vertical"){arviewer.isVertical=true}_this11._ar=arviewer;return accept(_this11)})["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":18,"../version":19,"../viewers/quicklook-viewer":21,"../viewers/scene-viewer":23,"./launcher-ar":2,"@plattar/plattar-analytics":43,"@plattar/plattar-api":47,"@plattar/plattar-services":121}],7:[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 _this12;_classCallCheck(this,SceneProductAR);_this12=_callSuper(this,SceneProductAR,[options]);_this12._attachedProductID=null;if(!options.productID){throw new Error("SceneProductAR.constructor(sceneProductID, variationID) - sceneProductID must be defined")}_this12._sceneProductID=options.productID;return _this12}_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 _this13=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(_this13.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")}_this13._attachedProductID=productID;return _superPropGet(SceneProductAR,"init",_this13,3)([]).then(accept)["catch"](reject)})["catch"](reject)})}}])}(product_ar_1.ProductAR);exports.SceneProductAR=SceneProductAR},{"../util/util":18,"./product-ar":4,"@plattar/plattar-api":47}],8:[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 ConfiguratorController=function(_plattar_controller_){function ConfiguratorController(){var _this14;_classCallCheck(this,ConfiguratorController);_this14=_callSuper(this,ConfiguratorController,arguments);_this14._cachedConfigState=null;return _this14}_inherits(ConfiguratorController,_plattar_controller_);return _createClass(ConfiguratorController,[{key:"getConfiguratorState",value:function(){var _getConfiguratorState=_asyncToGenerator(_regeneratorRuntime().mark(function _callee4(){return _regeneratorRuntime().wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(!this._cachedConfigState){_context4.next=2;break}return _context4.abrupt("return",this._cachedConfigState);case 2:this._cachedConfigState=this.createConfiguratorState();return _context4.abrupt("return",this._cachedConfigState);case 4:case"end":return _context4.stop()}},_callee4,this)}));function getConfiguratorState(){return _getConfiguratorState.apply(this,arguments)}return getConfiguratorState}()},{key:"onAttributesUpdated",value:function(){var _onAttributesUpdated=_asyncToGenerator(_regeneratorRuntime().mark(function _callee5(attributeName){var state,viewer,variationIDs,variationIDsList,variationSKUs,variationSKUList,configState,_variationIDs,_variationIDsList,_configState,_variationSKUs,_variationSKUList;return _regeneratorRuntime().wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:state=this._state;if(!(state===plattar_controller_1.ControllerState.Renderer)){_context5.next=17;break}viewer=this.element;if(!viewer){_context5.next=16;break}if(!(attributeName==="variation-id")){_context5.next=10;break}variationIDs=this.getAttribute("variation-id");variationIDsList=variationIDs?variationIDs.split(","):[];if(!(variationIDsList.length>0)){_context5.next=10;break}_context5.next=10;return viewer.messenger.selectVariationID(variationIDsList);case 10:if(!(attributeName==="variation-sku")){_context5.next=16;break}variationSKUs=this.getAttribute("variation-sku");variationSKUList=variationSKUs?variationSKUs.split(","):[];if(!(variationSKUList.length>0)){_context5.next=16;break}_context5.next=16;return viewer.messenger.selectVariationSKU(variationSKUList);case 16:return _context5.abrupt("return");case 17:if(!(state===plattar_controller_1.ControllerState.QRCode)){_context5.next=34;break}if(!(attributeName==="variation-id")){_context5.next=25;break}_context5.next=21;return this.getConfiguratorState();case 21:configState=_context5.sent;_variationIDs=this.getAttribute("variation-id");_variationIDsList=_variationIDs?_variationIDs.split(","):[];_variationIDsList.forEach(function(variatio