UNPKG

awv3

Version:
1 lines 7.36 kB
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}exports.__esModule=!0;var _extends3=require("babel-runtime/helpers/extends"),_extends4=_interopRequireDefault(_extends3),_getIterator2=require("babel-runtime/core-js/get-iterator"),_getIterator3=_interopRequireDefault(_getIterator2),_regenerator=require("babel-runtime/regenerator"),_regenerator2=_interopRequireDefault(_regenerator),_asyncToGenerator2=require("babel-runtime/helpers/asyncToGenerator"),_asyncToGenerator3=_interopRequireDefault(_asyncToGenerator2),_typeof2=require("babel-runtime/helpers/typeof"),_typeof3=_interopRequireDefault(_typeof2),_keys=require("babel-runtime/core-js/object/keys"),_keys2=_interopRequireDefault(_keys),_classCallCheck2=require("babel-runtime/helpers/classCallCheck"),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_plugin=require("../plugin"),Integration=function(){function e(){var t=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if((0,_classCallCheck3.default)(this,e),this.plugins={},!n.view)throw"Integration needs a view passed in: new Integration({ view: ... })!";this.view=n.view,this.canvas=this.view.canvas,this.selection=new _plugin.Selection(this,n),n.socket&&(this.socket=n.socket,this.socket.on("connected",function(e){return(0,_keys2.default)(t.data.plugins).forEach(function(n){return t.resolve(n).emit(_plugin.Plugin.Events.Online,e)})}),this.socket.on("disconnected",function(e){return(0,_keys2.default)(t.data.plugins).forEach(function(n){return t.resolve(n).emit(_plugin.Plugin.Events.Offline,e)})})),this.data={plugins:{},active:void 0,enable:function(e){return t.enable(e)},disable:function(e){return t.disable(e)},toggle:function(e){return t.toggle(e)},toggleSelection:function(e,n){return t.selection.toggle(e,n)}}}return e.prototype.resolve=function(e){return e instanceof _plugin.Plugin?e:"string"==typeof e?this.plugins[e]:"object"===("undefined"==typeof e?"undefined":(0,_typeof3.default)(e))?this.plugins[e.name]:void 0},e.prototype.getActive=function(){return this.data.active},e.prototype.clear=function(){function e(){return t.apply(this,arguments)}var t=(0,_asyncToGenerator3.default)(_regenerator2.default.mark(function e(){var t;return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=_regenerator2.default.keys(this.plugins);case 1:if((e.t1=e.t0()).done){e.next=7;break}return t=e.t1.value,e.next=5,this.destroy(t);case 5:e.next=1;break;case 7:this.plugins={},this.data.plugins={};case 9:case"end":return e.stop()}},e,this)}));return e}(),e.prototype.use=function(){function e(e){return t.apply(this,arguments)}var t=(0,_asyncToGenerator3.default)(_regenerator2.default.mark(function e(){for(var t=arguments.length,n=Array(t),a=0;a<t;a++)n[a]=arguments[a];var r,i,s,o,l,u;return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=n,i=Array.isArray(r),s=0,r=i?r:(0,_getIterator3.default)(r);case 1:if(!i){e.next=7;break}if(!(s>=r.length)){e.next=4;break}return e.abrupt("break",21);case 4:l=r[s++],e.next=11;break;case 7:if(s=r.next(),!s.done){e.next=10;break}return e.abrupt("break",21);case 10:l=s.value;case 11:return u=l,u.integration=this,this.plugins[u.name]=u,this.data.plugins=(0,_extends4.default)({},this.data.plugins,(o={},o[u.name]=u.data,o)),e.next=17,u.emit(_plugin.Plugin.Events.Integrated,this);case 17:return e.next=19,u.onIntegrated(this);case 19:e.next=1;break;case 21:case"end":return e.stop()}},e,this)}));return e}(),e.prototype.enable=function(){function e(e){return t.apply(this,arguments)}var t=(0,_asyncToGenerator3.default)(_regenerator2.default.mark(function e(t){return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.resolve(t),!t){e.next=12;break}if(!this.data.active||this.data.active===t){e.next=5;break}return e.next=5,this.disable(this.data.active);case 5:return e.next=7,t.emit(_plugin.Plugin.Events.Enabled,this);case 7:return e.next=9,t.onEnabled(this);case 9:this.data.active=t.data,this.show(t),t.data.enabled=!0;case 12:case"end":return e.stop()}},e,this)}));return e}(),e.prototype.disable=function(){function e(e){return t.apply(this,arguments)}var t=(0,_asyncToGenerator3.default)(_regenerator2.default.mark(function e(t){return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.resolve(t),!t){e.next=8;break}return this.data.active&&this.data.active===t.data&&(this.selection.deactivate(),this.handler&&document.removeEventListener("keyup",this.handler),this.handler=void 0,this.data.active=void 0),e.next=5,t.emit(_plugin.Plugin.Events.Disabled,this);case 5:return e.next=7,t.onDisabled(this);case 7:t.data.enabled=!1;case 8:case"end":return e.stop()}},e,this)}));return e}(),e.prototype.toggle=function(){function e(e){return t.apply(this,arguments)}var t=(0,_asyncToGenerator3.default)(_regenerator2.default.mark(function e(t){return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.resolve(t),!t){e.next=9;break}if(!t.data.enabled){e.next=7;break}return e.next=5,this.disable(t);case 5:e.next=9;break;case 7:return e.next=9,this.enable(t);case 9:case"end":return e.stop()}},e,this)}));return e}(),e.prototype.destroy=function(){function e(e){return t.apply(this,arguments)}var t=(0,_asyncToGenerator3.default)(_regenerator2.default.mark(function e(t){return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.resolve(t),!t){e.next=11;break}return t.removeListeners(),e.next=5,this.disable(t);case 5:return delete this.plugins[t.name],this.data.plugins=this.data.plugins.filter(function(e){return e.name!==t.name}),e.next=9,t.emit(_plugin.Plugin.Events.Destroyed,this);case 9:return e.next=11,t.onDestroyed(this);case 11:case"end":return e.stop()}},e,this)}));return e}(),e.prototype.show=function(e){if(e=this.resolve(e)){for(var t=e.data.elements,n=Array.isArray(t),a=0,t=n?t:(0,_getIterator3.default)(t);;){var r;if(n){if(a>=t.length)break;r=t[a++]}else{if(a=t.next(),a.done)break;r=a.value}var i=r;if(i.type===_plugin.Element.Type.Selection&&i.active){this.selection.activate(i);break}}e.data.console&&(this.handler&&document.removeEventListener("keyup",this.handler),this.handler=function(t){if(!document.activeElement||!document.activeElement.classList.contains("value"))if(document.activeElement.blur(),1===t.key.length)e.data.console.index=0,e.data.console.value+=t.key,e.data.console.onChange({element:e.data.console,value:e.data.console.value}),document.querySelector("input.console.value").focus();else switch(t.key){case"ArrowDown":e.data.console.index++,e.data.console.index>e.data.console.labels.length-1&&(e.data.console.index=e.data.console.labels.length-1);break;case"ArrowUp":e.data.console.index--,e.data.console.index<0&&(e.data.console.index=0);break;case"Backspace":e.data.console.value=e.data.console.value.slice(0,-1),e.data.console.onChange({element:e.data.console,value:e.data.console.value});break;case"Escape":e.data.console.value="",e.data.console.onChange({element:e.data.console,value:e.data.console.value});break;case"Enter":e.data.console.onExecute({element:e.data.console,value:e.data.console.value,index:e.data.console.index}),e.data.console.index=0,e.data.console.value="",e.data.console.labels=[]}},document.addEventListener("keyup",this.handler))}},e}();exports.default=Integration;