awv3
Version:
AWV client CAD framework
1 lines • 4.46 kB
JavaScript
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}exports.__esModule=!0;var _getIterator2=require("babel-runtime/core-js/get-iterator"),_getIterator3=_interopRequireDefault(_getIterator2),_classCallCheck2=require("babel-runtime/helpers/classCallCheck"),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_createClass2=require("babel-runtime/helpers/createClass"),_createClass3=_interopRequireDefault(_createClass2),_plugin=require("../core/plugin"),_plugin2=_interopRequireDefault(_plugin),_vue=require("vue"),_vue2=_interopRequireDefault(_vue),VueIntegration=function(){function e(t,n,l){var a,i=n.timeout,s=l.toast,r=l.label,o=l.modal,u=l.buttonPanel;(0,_classCallCheck3["default"])(this,e),this.plugins=t,this.timeout=i||5,this.toast=s,this.label=r,this.modal=o,this.buttonPanel=u;for(var c=this,v=(a={},a[_plugin2["default"].Events.RequestToast]=function(e){return c.showToast(this,e)},a[_plugin2["default"].Events.RequestLabel]=function(e){return c.showLabel(this,e)},a[_plugin2["default"].Events.RequestModal]=function(e){return c.showModal(this,e)},a[_plugin2["default"].Events.RequestButtonChanges]=function(e){return c.changeButtons(this,e)},a),f=t,d=Array.isArray(f),p=0,f=d?f:(0,_getIterator3["default"])(f);;){var h,b;if(d){if(p>=f.length)break;b=f[p++]}else{if(p=f.next(),p.done)break;b=p.value}var m=b;m.on((h={},h[_plugin2["default"].Events.Enabled]=function(){this.on(v)},h[_plugin2["default"].Events.Disabled]=function(){this.removeListener(v)},h))}}return e.registerVueComponents=function(){_vue2["default"].component("awv3-toast",{template:'<div v-cloak v-show="visible" v-text="value" v-bind:class="class"/>',data:function(){return{visible:!1,value:""}},props:["class"]}),_vue2["default"].component("awv3-label",{template:'<label v-cloak v-show="visible" v-bind:class="class">\n {{name}} <div v-text="value"/>\n</label>',data:function(){return{visible:!1,name:"",value:""}},props:["class"]}),_vue2["default"].component("awv3-modal",{template:'<form v-cloak v-show="visible" v-on:submit.prevent="ok" v-on:keypress.esc="cancel" v-bind:class="class">\n <label v-for="elt of elements">\n {{elt.name}} <input v-bind:type="elt.type" v-model="elt.value">\n </label>\n</form>',data:function(){return{visible:!1,title:"",elements:[],ok:function(){},cancel:function(){}}},props:["class"]}),_vue2["default"].component("awv3-button-panel",{template:'<div v-cloak>\n <div v-for="elt of elements" v-on:click="click(elt.id)" v-bind:class="class"><img v-bind:src="elt.icon"/>{{elt.name}}</div>\n</div>',data:function(){return{elements:[],click:function(){}}},props:["class"]})},e.prototype.showToast=function(e,t){var n=this,l=t.value;this.toast.value=l,this.toast.visible=!0,setTimeout(function(){return n.toast.visible=!1},1e3*this.timeout)},e.prototype.showLabel=function(e,t){var n=t.options,l=n.name,a=n.value,i=n.icon;t.resolve;this.label.name=l,this.label.value=a,this.label.icon=i,this.label.visible=!0},e.prototype.showModal=function(e,t){var n=t.options,l=n.title,a=(n.position,n.hasOk,n.hasCancel,n.disableOnCancel,n.elements),i=t.resolve,s=t.reject;t.promise;this.modal.title=l,this.modal.elements=a,this.modal.ok=i,this.modal.cancel=s,this.modal.visible=!0},e.prototype.changeButtons=function(e,t){this.buttonPanel.click=function(t){return e.buttonClick(t)};for(var n=this.buttonPanel.elements,l=function(){if(i){if(s>=a.length)return"break";r=a[s++]}else{if(s=a.next(),s.done)return"break";r=s.value}var e=r,t=n.findIndex(function(t){return t.id===e.id});t>=0&&e.visible?(n[t].icon=e.icon,n[t].name=e.name,n[t].order=e.order):t>=0&&!e.visible?n.splice(t,1):t<0&&e.visible&&n.push(e)},a=t,i=Array.isArray(a),s=0,a=i?a:(0,_getIterator3["default"])(a);;){var r,o=l();if("break"===o)break}n.sort(function(e,t){return e.order-t.order})},(0,_createClass3["default"])(e,[{key:"socket",get:function(){return this.plugins.length?this.plugins[0].socket:null},set:function(e){for(var t=this.plugins,n=Array.isArray(t),l=0,t=n?t:(0,_getIterator3["default"])(t);;){var a;if(n){if(l>=t.length)break;a=t[l++]}else{if(l=t.next(),l.done)break;a=l.value}var i=a;i.socket=e}}},{key:"enabled",get:function(){return!!this.plugins.length&&this.plugins[0].enabled},set:function(e){for(var t=this.plugins,n=Array.isArray(t),l=0,t=n?t:(0,_getIterator3["default"])(t);;){var a;if(n){if(l>=t.length)break;a=t[l++]}else{if(l=t.next(),l.done)break;a=l.value}var i=a;i.enabled=e}}}]),e}();exports["default"]=VueIntegration;