Files
old-2sajsmeetup/node_modules/webvr-ui/build/webvr-ui.min.js
2017-03-11 15:22:17 +01:00

25 lines
26 KiB
JavaScript

(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.webvrui = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
"use strict";function Events(){}function EE(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function EventEmitter(){this._events=new Events,this._eventsCount=0}var has=Object.prototype.hasOwnProperty,prefix="~";Object.create&&(Events.prototype=Object.create(null),(new Events).__proto__||(prefix=!1)),EventEmitter.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)has.call(e,t)&&n.push(prefix?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},EventEmitter.prototype.listeners=function(e,t){var n=prefix?prefix+e:e,r=this._events[n];if(t)return!!r;if(!r)return[];if(r.fn)return[r.fn];for(var s=0,i=r.length,o=new Array(i);s<i;s++)o[s]=r[s].fn;return o},EventEmitter.prototype.emit=function(e,t,n,r,s,i){var o=prefix?prefix+e:e;if(!this._events[o])return!1;var v,f,h=this._events[o],c=arguments.length;if(h.fn){switch(h.once&&this.removeListener(e,h.fn,void 0,!0),c){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,t),!0;case 3:return h.fn.call(h.context,t,n),!0;case 4:return h.fn.call(h.context,t,n,r),!0;case 5:return h.fn.call(h.context,t,n,r,s),!0;case 6:return h.fn.call(h.context,t,n,r,s,i),!0}for(f=1,v=new Array(c-1);f<c;f++)v[f-1]=arguments[f];h.fn.apply(h.context,v)}else{var p,a=h.length;for(f=0;f<a;f++)switch(h[f].once&&this.removeListener(e,h[f].fn,void 0,!0),c){case 1:h[f].fn.call(h[f].context);break;case 2:h[f].fn.call(h[f].context,t);break;case 3:h[f].fn.call(h[f].context,t,n);break;case 4:h[f].fn.call(h[f].context,t,n,r);break;default:if(!v)for(p=1,v=new Array(c-1);p<c;p++)v[p-1]=arguments[p];h[f].fn.apply(h[f].context,v)}}return!0},EventEmitter.prototype.on=function(e,t,n){var r=new EE(t,n||this),s=prefix?prefix+e:e;return this._events[s]?this._events[s].fn?this._events[s]=[this._events[s],r]:this._events[s].push(r):(this._events[s]=r,this._eventsCount++),this},EventEmitter.prototype.once=function(e,t,n){var r=new EE(t,n||this,!0),s=prefix?prefix+e:e;return this._events[s]?this._events[s].fn?this._events[s]=[this._events[s],r]:this._events[s].push(r):(this._events[s]=r,this._eventsCount++),this},EventEmitter.prototype.removeListener=function(e,t,n,r){var s=prefix?prefix+e:e;if(!this._events[s])return this;if(!t)return 0===--this._eventsCount?this._events=new Events:delete this._events[s],this;var i=this._events[s];if(i.fn)i.fn!==t||r&&!i.once||n&&i.context!==n||(0===--this._eventsCount?this._events=new Events:delete this._events[s]);else{for(var o=0,v=[],f=i.length;o<f;o++)(i[o].fn!==t||r&&!i[o].once||n&&i[o].context!==n)&&v.push(i[o]);v.length?this._events[s]=1===v.length?v[0]:v:0===--this._eventsCount?this._events=new Events:delete this._events[s]}return this},EventEmitter.prototype.removeAllListeners=function(e){var t;return e?(t=prefix?prefix+e:e,this._events[t]&&(0===--this._eventsCount?this._events=new Events:delete this._events[t])):(this._events=new Events,this._eventsCount=0),this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.addListener=EventEmitter.prototype.on,EventEmitter.prototype.setMaxListeners=function(){return this},EventEmitter.prefixed=prefix,EventEmitter.EventEmitter=EventEmitter,"undefined"!=typeof module&&(module.exports=EventEmitter);
},{}],2:[function(_dereq_,module,exports){
!function(){"use strict";var e="undefined"!=typeof module&&module.exports,n="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,l=function(){for(var e,n,l=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,t=l.length,u={};r<t;r++)if(e=l[r],e&&e[1]in document){for(r=0,n=e.length;r<n;r++)u[l[0][r]]=e[r];return u}return!1}(),r={request:function(e){var r=l.requestFullscreen;e=e||document.documentElement,/5\.1[\.\d]* Safari/.test(navigator.userAgent)?e[r]():e[r](n&&Element.ALLOW_KEYBOARD_INPUT)},exit:function(){document[l.exitFullscreen]()},toggle:function(e){this.isFullscreen?this.exit():this.request(e)},raw:l};return l?(Object.defineProperties(r,{isFullscreen:{get:function(){return Boolean(document[l.fullscreenElement])}},element:{enumerable:!0,get:function(){return document[l.fullscreenElement]}},enabled:{enumerable:!0,get:function(){return Boolean(document[l.fullscreenEnabled])}}}),void(e?module.exports=r:window.screenfull=r)):void(e?module.exports=!1:window.screenfull=!1)}();
},{}],3:[function(_dereq_,module,exports){
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _enterVrButton=_dereq_("./enter-vr-button"),_enterVrButton2=_interopRequireDefault(_enterVrButton),_states=_dereq_("./states"),_states2=_interopRequireDefault(_states);"undefined"!=typeof AFRAME&&AFRAME&&AFRAME.registerComponent("webvr-ui",{dependencies:["canvas"],schema:{enabled:{type:"boolean",default:!0},color:{type:"string",default:"white"},background:{type:"string",default:"black"},corners:{type:"string",default:"square"},disabledOpacity:{type:"number",default:.5},textEnterVRTitle:{type:"string"},textExitVRTitle:{type:"string"},textVRNotFoundTitle:{type:"string"}},init:function(){},update:function(){var e=document.querySelector("a-scene");if(e.setAttribute("vr-mode-ui",{enabled:!this.data.enabled}),this.data.enabled){if(this.enterVREl)return;var t={color:this.data.color,background:this.data.background,corners:this.data.corners,disabledOpacity:this.data.disabledOpacity,textEnterVRTitle:this.data.textEnterVRTitle,textExitVRTitle:this.data.textExitVRTitle,textVRNotFoundTitle:this.data.textVRNotFoundTitle,onRequestStateChange:function(t){return t==_states2.default.PRESENTING?e.enterVR():e.exitVR(),!1}},n=this.enterVR=new _enterVrButton2.default(e.canvas,t);this.enterVREl=n.domElement,document.body.appendChild(n.domElement),n.domElement.style.position="absolute",n.domElement.style.bottom="10px",n.domElement.style.left="50%",n.domElement.style.transform="translate(-50%, -50%)",n.domElement.style.textAlign="center"}else this.enterVREl&&(this.enterVREl.parentNode.removeChild(this.enterVREl),this.enterVR.remove())},remove:function(){this.enterVREl&&(this.enterVREl.parentNode.removeChild(this.enterVREl),this.enterVR.remove())}});
},{"./enter-vr-button":5,"./states":7}],4:[function(_dereq_,module,exports){
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _LOGO_SCALE=.8,_WEBVR_UI_CSS_INJECTED={},generateInnerHTML=function(n,e){var t=e*_LOGO_SCALE,r=generateVRIconString(n,t)+generateNoVRIconString(n,t);return'<button class="'+n+'-button">\n <div class="'+n+'-title"></div>\n <div class="'+n+'-logo" >'+r+"</div>\n </button>"},injectCSS=exports.injectCSS=function(n){var e=document.createElement("style");e.innerHTML=n;var t=document.getElementsByTagName("head")[0];t.insertBefore(e,t.firstChild)},createDefaultView=exports.createDefaultView=function(n){var e=n.height/3;n.injectCSS&&(_WEBVR_UI_CSS_INJECTED[n.cssprefix]||(injectCSS(generateCSS(n,e)),_WEBVR_UI_CSS_INJECTED[n.cssprefix]=!0));var t=document.createElement("div");return t.innerHTML=generateInnerHTML(n.cssprefix,e),t.firstChild},createVRIcon=exports.createVRIcon=function(n,e){var t=document.createElement("div");return t.innerHTML=generateVRIconString(n,e),t.firstChild},createNoVRIcon=exports.createNoVRIcon=function(n,e){var t=document.createElement("div");return t.innerHTML=generateNoVRIconString(n,e),t.firstChild},generateVRIconString=function(n,e){var t=28/18;return'<svg class="'+n+'-svg" version="1.1" x="0px" y="0px" \n width="'+t*e+'px" height="'+e+'px" viewBox="0 0 28 18" xml:space="preserve">\n <path d="M26.8,1.1C26.1,0.4,25.1,0,24.2,0H3.4c-1,0-1.7,0.4-2.4,1.1C0.3,1.7,0,2.7,0,3.6v10.7\n c0,1,0.3,1.9,0.9,2.6C1.6,17.6,2.4,18,3.4,18h5c0.7,0,1.3-0.2,1.8-0.5c0.6-0.3,1-0.8,1.3-1.4l\n 1.5-2.6C13.2,13.1,13,13,14,13v0h-0.2 h0c0.3,0,0.7,0.1,0.8,0.5l1.4,2.6c0.3,0.6,0.8,1.1,1.3,\n 1.4c0.6,0.3,1.2,0.5,1.8,0.5h5c1,0,2-0.4,2.7-1.1c0.7-0.7,1.2-1.6,1.2-2.6 V3.6C28,2.7,27.5,\n 1.7,26.8,1.1z M7.4,11.8c-1.6,0-2.8-1.3-2.8-2.8c0-1.6,1.3-2.8,2.8-2.8c1.6,0,2.8,1.3,2.8,2.8\n C10.2,10.5,8.9,11.8,7.4,11.8z M20.1,11.8c-1.6,0-2.8-1.3-2.8-2.8c0-1.6,1.3-2.8,2.8-2.8C21.7\n ,6.2,23,7.4,23,9 C23,10.5,21.7,11.8,20.1,11.8z"/>\n </svg>'},generateNoVRIconString=function(n,e){var t=28/18;return'<svg class="'+n+'-svg-error" x="0px" y="0px" \n width="'+t*e+'px" height="'+t*e+'px" viewBox="0 0 28 28" xml:space="preserve">\n <path d="M17.6,13.4c0-0.2-0.1-0.4-0.1-0.6c0-1.6,1.3-2.8,2.8-2.8s2.8,1.3,2.8,2.8s-1.3,2.8-2.8,2.8\n c-0.2,0-0.4,0-0.6-0.1l5.9,5.9c0.5-0.2,0.9-0.4,1.3-0.8\n c0.7-0.7,1.1-1.6,1.1-2.5V7.4c0-1-0.4-1.9-1.1-2.5c-0.7-0.7-1.6-1-2.5-1\n H8.1 L17.6,13.4z"/>\n <path d="M10.1,14.2c-0.5,0.9-1.4,1.4-2.4,1.4c-1.6,0-2.8-1.3-2.8-2.8c0-1.1,0.6-2,1.4-2.5\n L0.9,5.1 C0.3,5.7,0,6.6,0,7.5v10.7c0,1,0.4,1.8,1.1,2.5c0.7,0.7,1.6,1,2.5,1\n h5c0.7,0,1.3-0.1,1.8-0.5c0.6-0.3,1-0.8,1.3-1.4l1.3-2.6 L10.1,14.2z"/>\n <path d="M25.5,27.5l-25-25C-0.1,2-0.1,1,0.5,0.4l0,0C1-0.1,2-0.1,2.6,0.4l25,25c0.6,0.6,0.6,1.5\n ,0,2.1l0,0 C27,28.1,26,28.1,25.5,27.5z"/>\n </svg>'},generateCSS=exports.generateCSS=function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:18,t=n.height,r=2,o=n.background?n.background:n.color,i=n.cssprefix,a=void 0;return a="round"==n.corners?n.height/2:"square"==n.corners?2:n.corners,"\n @font-face {\n font-family: 'Karla';\n font-style: normal;\n font-weight: 400;\n src: local('Karla'), local('Karla-Regular'), \n url(https://fonts.gstatic.com/s/karla/v5/31P4mP32i98D9CEnGyeX9Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;\n }\n @font-face {\n font-family: 'Karla';\n font-style: normal;\n font-weight: 400;\n src: local('Karla'), local('Karla-Regular'), \n url(https://fonts.gstatic.com/s/karla/v5/Zi_e6rBgGqv33BWF8WTq8g.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, \n U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;\n }\n\n button."+i+"-button {\n font-family: 'Karla', sans-serif;\n\n border: "+o+" "+r+"px solid;\n border-radius: "+a+"px;\n box-sizing: border-box;\n background: "+(n.background?n.background:"none")+";\n\n height: "+t+"px;\n min-width: "+9.6*e+"px;\n display: inline-block;\n position: relative;\n\n cursor: pointer;\n }\n \n button."+i+"-button:focus {\n outline: none;\n }\n\n /*\n * Logo\n */\n\n ."+i+"-logo {\n width: "+t+"px;\n height: "+t+"px;\n position: absolute;\n top:0px;\n left:0px;\n width: "+(t-4)+"px;\n height: "+(t-4)+"px;\n }\n ."+i+"-svg {\n fill: "+n.color+";\n margin-top: "+((t-e*_LOGO_SCALE)/2-2)+"px;\n margin-left: "+t/3+"px;\n }\n ."+i+"-svg-error {\n fill: "+n.color+";\n display:none;\n margin-top: "+((t-28/18*e*_LOGO_SCALE)/2-2)+"px;\n margin-left: "+t/3+"px;\n }\n\n\n /*\n * Title\n */\n\n ."+i+"-title {\n color: "+n.color+";\n position: relative;\n font-size: "+e+"px;\n padding-left: "+1.05*t+"px;\n padding-right: "+(a-10<5?t/3:a-10)+"px;\n }\n\n /*\n * disabled\n */\n\n button."+i+"-button[disabled=true] {\n opacity: "+n.disabledOpacity+";\n }\n\n button."+i+"-button[disabled=true] > ."+i+"-logo > ."+i+"-svg {\n display:none;\n }\n\n button."+i+"-button[disabled=true] > ."+i+"-logo > ."+i+"-svg-error {\n display:initial;\n }\n "};
},{}],5:[function(_dereq_,module,exports){
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,i,s){return i&&e(t.prototype,i),s&&e(t,s),t}}(),_webvrManager=_dereq_("./webvr-manager"),_webvrManager2=_interopRequireDefault(_webvrManager),_dom=_dereq_("./dom"),_states=_dereq_("./states"),_states2=_interopRequireDefault(_states),_eventemitter=_dereq_("eventemitter3"),_eventemitter2=_interopRequireDefault(_eventemitter),EnterVRButton=function(e){function t(e,i){_classCallCheck(this,t);var s=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return i=i||{},i.color=i.color||"rgb(80,168,252)",i.background=i.background||!1,i.disabledOpacity=i.disabledOpacity||.5,i.height=i.height||55,i.corners=i.corners||"square",i.cssprefix=i.cssprefix||"webvr-ui",i.textEnterVRTitle=i.textEnterVRTitle||"ENTER VR",i.textVRNotFoundTitle=i.textVRNotFoundTitle||"VR NOT FOUND",i.textExitVRTitle=i.textExitVRTitle||"EXIT VR",i.onRequestStateChange=i.onRequestStateChange||function(){return!0},i.beforeEnter=i.beforeEnter||function(){return new Promise(function(e){return e()})},i.beforeExit=i.beforeExit||function(){return new Promise(function(e){return e()})},i.injectCSS=i.injectCSS!==!1,s.options=i,s.sourceCanvas=e,s.domElement=i.domElement||(0,_dom.createDefaultView)(i),s.__defaultDisplayStyle=s.domElement.style.display||"initial",s.manager=new _webvrManager2.default,s.manager.checkDisplays(),s.manager.addListener("change",function(e){return s.__onStateChange(e)}),s.domElement.addEventListener("click",function(){return s.__onEnterVRClick()}),s.__forceDisabled=!1,s.setTitle(s.options.textEnterVRTitle),s}return _inherits(t,e),_createClass(t,[{key:"setTitle",value:function(e){return this.domElement.title=e,ifChild(this.domElement,this.options.cssprefix,"title",function(t){e?(t.innerText=e,t.style.display="initial"):t.style.display="none"}),this}},{key:"setTooltip",value:function(e){return this.domElement.title=e,this}},{key:"show",value:function(){return this.domElement.style.display=this.__defaultDisplayStyle,this.emit("show"),this}},{key:"hide",value:function(){return this.domElement.style.display="none",this.emit("hide"),this}},{key:"enable",value:function(){return this.__setDisabledAttribute(!1),this.__forceDisabled=!1,this}},{key:"disable",value:function(){return this.__setDisabledAttribute(!0),this.__forceDisabled=!0,this}},{key:"remove",value:function(){this.manager.remove(),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement)}},{key:"getVRDisplay",value:function(){return _webvrManager2.default.getVRDisplay()}},{key:"isPresenting",value:function(){return this.state===_states2.default.PRESENTING||this.state==_states2.default.PRESENTING_FULLSCREEN}},{key:"requestEnterVR",value:function(){var e=this;return new Promise(function(t,i){return e.options.onRequestStateChange(_states2.default.PRESENTING)?e.options.beforeEnter().then(function(){return e.manager.enterVR(e.manager.defaultDisplay,e.sourceCanvas)}).then(t):void i(new Error(_states2.default.ERROR_REQUEST_STATE_CHANGE_REJECTED))})}},{key:"requestExit",value:function(){var e=this,t=this.state;return new Promise(function(i,s){return e.options.onRequestStateChange(_states2.default.READY_TO_PRESENT)?e.options.beforeExit().then(function(){return t===_states2.default.PRESENTING?e.manager.exitVR(e.manager.defaultDisplay):e.manager.exitFullscreen()}).then(i):void s(new Error(_states2.default.ERROR_REQUEST_STATE_CHANGE_REJECTED))})}},{key:"requestEnterFullscreen",value:function(){var e=this;return new Promise(function(t,i){return e.options.onRequestStateChange(_states2.default.PRESENTING_FULLSCREEN)?e.options.beforeEnter().then(function(){return e.manager.enterFullscreen(e.sourceCanvas)}).then(t):void i(new Error(_states2.default.ERROR_REQUEST_STATE_CHANGE_REJECTED))})}},{key:"__setDisabledAttribute",value:function(e){e||this.__forceDisabled?this.domElement.setAttribute("disabled","true"):this.domElement.removeAttribute("disabled")}},{key:"__onEnterVRClick",value:function(){this.state==_states2.default.READY_TO_PRESENT?this.requestEnterVR():this.isPresenting()&&this.requestExit()}},{key:"__onStateChange",value:function(e){if(e!=this.state)switch(this.state!==_states2.default.PRESENTING&&this.state!==_states2.default.PRESENTING_FULLSCREEN||this.emit("exit"),this.state=e,e){case _states2.default.READY_TO_PRESENT:this.show(),this.setTitle(this.options.textEnterVRTitle),this.manager.defaultDisplay&&this.setTooltip("Enter VR using "+this.manager.defaultDisplay.displayName),this.__setDisabledAttribute(!1),this.emit("ready");break;case _states2.default.PRESENTING:case _states2.default.PRESENTING_FULLSCREEN:this.manager.defaultDisplay&&this.manager.defaultDisplay.capabilities.hasExternalDisplay&&e!=_states2.default.PRESENTING_FULLSCREEN||this.hide(),this.setTitle(this.options.textExitVRTitle),this.__setDisabledAttribute(!1),this.emit("enter");break;case _states2.default.ERROR_BROWSER_NOT_SUPPORTED:this.show(),this.setTitle(this.options.textVRNotFoundTitle),this.setTooltip("Browser not supported"),this.__setDisabledAttribute(!0),this.emit("error",new Error(e));break;case _states2.default.ERROR_NO_PRESENTABLE_DISPLAYS:this.show(),this.setTitle(this.options.textVRNotFoundTitle),this.setTooltip("No VR headset found."),this.__setDisabledAttribute(!0),this.emit("error",new Error(e));break;case _states2.default.ERROR_REQUEST_TO_PRESENT_REJECTED:this.show(),this.setTitle(this.options.textVRNotFoundTitle),this.setTooltip("Something went wrong trying to start presenting to your headset."),this.__setDisabledAttribute(!0),this.emit("error",new Error(e));break;case _states2.default.ERROR_EXIT_PRESENT_REJECTED:default:this.show(),this.setTitle(this.options.textVRNotFoundTitle),this.setTooltip("Unknown error."),this.__setDisabledAttribute(!0),this.emit("error",new Error(e))}}}]),t}(_eventemitter2.default);exports.default=EnterVRButton;var ifChild=function(e,t,i,s){var n=e.querySelector("."+t+"-"+i);n&&s(n)};
},{"./dom":4,"./states":7,"./webvr-manager":8,"eventemitter3":1}],6:[function(_dereq_,module,exports){
"use strict";function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.WebVRManager=exports.State=exports.dom=exports.EnterVRButton=void 0;var _webvrManager=_dereq_("./webvr-manager"),_webvrManager2=_interopRequireDefault(_webvrManager),_states=_dereq_("./states"),_states2=_interopRequireDefault(_states),_dom=_dereq_("./dom"),dom=_interopRequireWildcard(_dom),_enterVrButton=_dereq_("./enter-vr-button"),_enterVrButton2=_interopRequireDefault(_enterVrButton);_dereq_("./aframe-component"),exports.EnterVRButton=_enterVrButton2.default,exports.dom=dom,exports.State=_states2.default,exports.WebVRManager=_webvrManager2.default;
},{"./aframe-component":3,"./dom":4,"./enter-vr-button":5,"./states":7,"./webvr-manager":8}],7:[function(_dereq_,module,exports){
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var READY_TO_PRESENT="ready",PRESENTING="presenting",PRESENTING_FULLSCREEN="presenting-fullscreen",PREPARING="preparing",ERROR_NO_PRESENTABLE_DISPLAYS="error-no-presentable-displays",ERROR_BROWSER_NOT_SUPPORTED="error-browser-not-supported",ERROR_REQUEST_TO_PRESENT_REJECTED="error-request-to-present-rejected",ERROR_EXIT_PRESENT_REJECTED="error-exit-present-rejected",ERROR_REQUEST_STATE_CHANGE_REJECTED="error-request-state-change-rejected",ERROR_UNKOWN="error-unkown";exports.default={READY_TO_PRESENT:READY_TO_PRESENT,PRESENTING:PRESENTING,PRESENTING_FULLSCREEN:PRESENTING_FULLSCREEN,PREPARING:PREPARING,ERROR_NO_PRESENTABLE_DISPLAYS:ERROR_NO_PRESENTABLE_DISPLAYS,ERROR_BROWSER_NOT_SUPPORTED:ERROR_BROWSER_NOT_SUPPORTED,ERROR_REQUEST_TO_PRESENT_REJECTED:ERROR_REQUEST_TO_PRESENT_REJECTED,ERROR_EXIT_PRESENT_REJECTED:ERROR_EXIT_PRESENT_REJECTED,ERROR_REQUEST_STATE_CHANGE_REJECTED:ERROR_REQUEST_STATE_CHANGE_REJECTED,ERROR_UNKOWN:ERROR_UNKOWN};
},{}],8:[function(_dereq_,module,exports){
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),_states=_dereq_("./states"),_states2=_interopRequireDefault(_states),_eventemitter=_dereq_("eventemitter3"),_eventemitter2=_interopRequireDefault(_eventemitter),_screenfull=_dereq_("screenfull"),_screenfull2=_interopRequireDefault(_screenfull),WebVRManager=function(e){function t(){_classCallCheck(this,t);var e=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.state=_states2.default.PREPARING,e.__onVRDisplayPresentChange=e.__onVRDisplayPresentChange.bind(e),window.addEventListener("vrdisplaypresentchange",e.__onVRDisplayPresentChange),e.__onChangeFullscreen=e.__onChangeFullscreen.bind(e),_screenfull2.default.enabled&&document.addEventListener(_screenfull2.default.raw.fullscreenchange,e.__onChangeFullscreen),e}return _inherits(t,e),_createClass(t,[{key:"checkDisplays",value:function(){var e=this;return t.getVRDisplay().then(function(t){return e.defaultDisplay=t,e.__setState(_states2.default.READY_TO_PRESENT),t}).catch(function(t){delete e.defaultDisplay,"NO_DISPLAYS"==t.name?e.__setState(_states2.default.ERROR_NO_PRESENTABLE_DISPLAYS):"WEBVR_UNSUPPORTED"==t.name?e.__setState(_states2.default.ERROR_BROWSER_NOT_SUPPORTED):e.__setState(_states2.default.ERROR_UNKOWN)})}},{key:"remove",value:function(){window.removeEventListener("vrdisplaypresentchange",this.__onVRDisplayPresentChange),_screenfull2.default.enabled&&document.removeEventListener(_screenfull2.default.raw.fullscreenchanged,this.__onChangeFullscreen),this.removeAllListeners()}},{key:"enterVR",value:function(e,t){var n=this;return this.presentedSource=t,e.requestPresent([{source:t}]).then(function(){},function(){return n.__setState(_states2.default.ERROR_REQUEST_TO_PRESENT_REJECTED)})}},{key:"exitVR",value:function(e){var t=this;return e.exitPresent().then(function(){t.presentedSource=void 0},function(){return t.__setState(_states2.default.ERROR_EXIT_PRESENT_REJECTED)})}},{key:"enterFullscreen",value:function(e){return _screenfull2.default.enabled?_screenfull2.default.request(e):this.__setState(_states2.default.PRESENTING_FULLSCREEN),!0}},{key:"exitFullscreen",value:function(){return _screenfull2.default.enabled&&_screenfull2.default.isFullscreen?_screenfull2.default.exit():this.state==_states2.default.PRESENTING_FULLSCREEN&&this.checkDisplays(),!0}},{key:"__setState",value:function(e){e!=this.state&&(this.emit("change",e,this.state),this.state=e)}},{key:"__onChangeFullscreen",value:function(e){_screenfull2.default.isFullscreen?this.__setState(_states2.default.PRESENTING_FULLSCREEN):this.checkDisplays()}},{key:"__onVRDisplayPresentChange",value:function(e){try{var t=e.display?e.display:e.detail.display;if(t.isPresenting&&t.getLayers()[0].source!==this.presentedSource)return;var n=this.defaultDisplay&&this.defaultDisplay.isPresenting;this.__setState(n?_states2.default.PRESENTING:_states2.default.READY_TO_PRESENT)}catch(e){}}}],[{key:"getVRDisplay",value:function(){return new Promise(function(e,t){if(!navigator||!navigator.getVRDisplays){var n=new Error("Browser not supporting WebVR");return n.name="WEBVR_UNSUPPORTED",void t(n)}var r=function(){var e=new Error("No displays found");e.name="NO_DISPLAYS",t(e)};navigator.getVRDisplays().then(function(t){for(var n=0;n<t.length;n++)if(t[n].capabilities.canPresent){e(t[n]);break}r()},r)})}}]),t}(_eventemitter2.default);exports.default=WebVRManager;
},{"./states":7,"eventemitter3":1,"screenfull":2}]},{},[6])(6)
});