UNPKG

easy-magix

Version:

view manager framewrok

1 lines 16.6 kB
/*!3.7.0 MIT kooboy_li@163.com*/define("magix",["$"],function(x){var $,t,o=x.isPlainObject,q=x.isArray,n=function(){},f=0,V="",h=[],g=h.slice,I=null,e=window,r=document,i=x(r),u=JSON.stringify,A="\x1e",c="object",y="prototype",S="params",T="path",a=/[#?].*$/,s=/([^=&?\/#]+)=?([^&#?]*)/g,v=/(?!^)=|&/,U=function(t){return(t||"mx_")+f++},l=U(),d={rootId:U(),defaultView:l,error:function(t){throw t}},p=d.hasOwnProperty,m=function(t){return typeof t==c?t:r.getElementById(t)},b=function(t){return!t||typeof t!=c},w=function(t,n,e){var r,i,o,f=0;for(o in t)r=t[o],i=n[o],b(r)&&i==r||(f=e[o]=1),n[o]=r;return f},k=function(t,n,e){if(t=m(t),n=m(n),t&&n&&!(e=t==n))try{e=n.contains?n.contains(t):16&n.compareDocumentPosition(t)}catch(t){}return e},O=Object.assign||function(t,n,e){for(e in n)t[e]=n[e];return t},j=function(t,n){n&&!j[t]&&(j[t]=1,x("head").append("<style>"+n+"</style>"))},R=function(t,n,e,r,i,o){for(n=n||h,q(t)||(t=[t]),q(n)||(n=[n]),r=0;r<t.length;r++){o=t[r];try{i=o&&o.apply(e,n)}catch(t){d.error(t)}}return i},E=function(t,n){return t&&p.call(t,n)},H=function(t,n,e){var r,i;for(r in n)i=n[r],e[r]=(i+V).charAt(0)==A?t.get(i):i},C=function(t,n){return n.f-t.f||n.t-t.t},M=function(t,n,e,r){(r=this).c=[],r.b=0|n||5,r.x=r.b+(t||20),r.r=e};O(M[y],{get:function(t){var n=this.c[A+t];return n&&(n.f++,n.t=f++,n=n.v),n},each:function(t,n,e,r,i){for(i=(r=(e=this).c).length;i--;)t(r[i].v,n,e)},set:function(t,n){var e=this.c,r=A+t,i=e[r],o=this.b;if(!i){if(e.length>=this.x)for(e.sort(C);o--;)0<(i=e.pop()).f&&this.del(i.o);i={o:t},e.push(i),e[r]=i}i.v=n,i.f=1,i.t=f++},del:function(t){t=A+t;var n=this.c,e=n[t],r=this.r;e&&(e.f=-1,e.v=V,delete n[t],r&&R(r,e.o))},has:function(t){return E(this.c,A+t)}});var Z,L=function(n,e){if(n)if(l==n)t||(t=Jt.extend()),e(t);else if(q(n))require(n,e);else try{e(require(n))}catch(t){require([n],e)}else e&&e()},P=function(){},N=function(t,n,e,r,i){return P[y]=n[y],i=new P,O(i,e),O(t,r),(i.constructor=t)[y]=i,t},B=function(t,n,e){i.triggerHandler({type:"htmlchange",vId:e}),x(t).html(n),i.triggerHandler({type:"htmlchanged",vId:e})},D=x.find||x.zepto,F=D.matchesSelector||D.matches,z=function(t,n){n=t.data,t.eventTarget=n.e,R(n.f,t,n.v)},J=function(t,n,e,r,i){i&&(n+="."+i.i),r?x(t).off(n,e):x(t).on(n,i,e)},K=new M,_=function(t,n,e){try{e=decodeURIComponent(e)}catch(t){}Z[n]=e},G=function(t){var n,e=K.get(t);return e||(Z={},t==(n=t.replace(a,V))&&v.test(n)&&(n=V),t.replace(n,V).replace(s,_),K.set(t,e={a:n,b:Z})),{path:e.a,params:O({},e.b)}},Q=function(t,n){var e,r,i,o={};if(t&&(i=t.length))for(e=0;e<i;e++)r=t[e],o[n&&r?r[n]:r]=n?r:1+(0|o[r]);return o},W=Object.keys||function(t,n,e){for(e in n=[],t)E(t,e)&&n.push(e);return n},X={config:function(t,n){return n=d,t&&(n=o(t)?O(n,t):n[t]),n},boot:function(t){O(d,t),L(d.exts,function(){ht().mountView(d.defaultView),ct.on("changed",dt)})},toMap:Q,toTry:R,toUrl:function(t,n,e){var r,i,o,f=[];for(i in n)r=n[i]+V,(!e||r||E(e,i))&&(r=encodeURIComponent(r),f.push(o=i+"="+r));return o&&(t+=(t&&(~t.indexOf("?")?"&":"?"))+f.join("&")),t},parseUrl:G,mix:O,has:E,keys:W,inside:k,node:m,applyStyle:j,guid:U,Cache:M,use:L,define:function(t,n){define(t,function(){return n})}},Y={fire:function(t,n,e,r){var i,o,f,u,c=this,a=c[A+t];if(n||(n={}),n.type||(n.type=t),a)for(o=(i=a.length)-1;i--;)(u=a[f=r?i:o-i]).f?(u.x=1,R(u.f,n,c),u.x=V):u.x||(a.splice(f,1),o--);(a=c["on"+t])&&R(a,n,c),e&&c.off(t)},on:function(t,n){var e=A+t;(this[e]||(this[e]=[])).push({f:n})},off:function(t,n){var e,r,i=A+t,o=this[i];if(n){if(o)for(e=o.length;e--;)if((r=o[e]).f==n){r.f=V;break}}else delete this[i],delete this["on"+t]}};X.Event=Y;var tt,nt,et={},rt={},it={},ot=0,ft=function(t){t=(t+V).split(",");for(var n,e=0;e<t.length;e++)n=t[e],E(rt,n)?rt[n]++:rt[n]=1;return t},ut=function(t){for(var n,e=0;e<t.length;e++)n=t[e],E(rt,n)&&(--rt[n]||(delete rt[n],delete et[n]))},ct=O({get:function(t){var n=t?et[t]:et;return n},set:function(t){return ot=w(t,et,it)||ot,this},digest:function(t){t&&ct.set(t),ot&&(this.fire("changed",{keys:it}),ot=0,it={})},diff:function(){return it},clean:function(t){return{ctor:function(){t=ft(t),this.on("destroy",function(){ut(t)})}}}},Y);X.State=ct;var at,st=function(t,n,e){t.$d||t.$h||t.$cc!=t.$rc||(t.$cr||(t.$cr=1,t.$ca=0,t.fire("created")),n=t.id,(e=vt[t.pId])&&!E(e.$r,n)&&(e.$r[n]=1,e.$rc++,st(e)))},$t=function(t,n,e,r){!t.$ca&&t.$cr&&(t.$cr=0,t.$ca=1,t.fire("alter",n),e=t.id,(r=vt[t.pId])&&E(r.$r,e)&&(r.$rc--,delete r.$r[e],$t(r,n)))},ht=function(t,n){return tt||($=r.body,m(t=d.rootId)||($.id=t),tt=new pt(t)),tt},vt={},lt=function(t,n,e){if(t&&t.$g!=at&&(e=t.$v)&&0<e.$s){(function(t,n,e){var r=t.$os;if(r)for(var i=r.length;i--;){var o=r[i];if(e=E(n,o))break}return e})(e,n)&&e.render();for(var r=t.children(),i=r.length,o=0;o<i;)lt(vt[r[o++]],n)}},dt=function(t){var n,e=ht();(n=t.view)?e.mountView(n.to):(at=f++,lt(e,t.keys))},pt=function(t,n,e){var r,i;(e=this).id=t,e.$c={},e.$cc=0,e.$rc=0,e.$s=1,e.$r={},e.$il=[],e.pId=n,i=e,E(vt,r=t)||(vt[r]=i,pt.fire("add",{vframe:i}),(r=m(r))&&(r.vframe=i))};O(pt,O({all:function(){return vt},get:function(t){return vt[t]}},Y)),O(O(pt[y],Y),{mountView:function(t,n){var e,r,i,o,f,u,c,a=this,s=a.id,$=m(s);!a.$a&&$&&(a.$a=1,a.$t=$.innerHTML),a.unmountView(),a.$d=0,$&&t&&(a.path=t,e=G(t),i=e.path,r=++a.$s,o=e[S],u=a.pId,(c=(c=(c=vt[u])&&c.$v)&&c.$u)&&0<t.indexOf(A)&&H(c,o,o),O(o,n),L(i,function(t){if(r==a.$s){if(!t)return d.error(Error("id:"+s+" cannot load:"+i));f=zt(t),i=new t({owner:a,id:s},o,f),a.$v=i,a.$g=at,Bt(i),i.init(o),i.render(),i.$t||(a.$a=0,i.$p||i.endUpdate())}}))},unmountView:function(){var t,n,e=this,r=e.$v,i=e.id;e.$il=[],r&&(nt||(n=1,nt={id:i}),e.$d=1,e.unmountZone(0,1),$t(e,nt),(e.$v=0)<r.$s&&(r.$s=0,r.fire("destroy",0,1,1),Pt(r,1),Bt(r,1)),r.$s--,r.owner=I,(t=m(i))&&e.$a&&B(t,e.$t,i),n&&(nt=0)),e.$s++},mountVframe:function(t,n,e){var r,i=this;return $t(i,{id:t}),(r=vt[t])||(E(i.$c,t)||(i.$cl=V,i.$cc++),i.$c[t]=t,r=new pt(t,i.id)),r.mountView(n,e),r},mountZone:function(t,n){var e,r,i,o=this,f=[];t=t||o.id;var u=x("#"+t+" [mx-view]");for(o.$h=1,e=0;e<u.length;e++)i=(r=u[e]).id||(r.id=U()),r.$m||(r.$m=1,f.push([i,r.getAttribute("mx-view")]));for(;f.length;)f[i=(r=f.shift())[0]]?d.error(Error("vf.id duplicate:"+i+" at "+o.path)):o.mountVframe(f[i]=i,r[1],n);o.$h=0,st(o)},unmountVframe:function(t,n){var e,r,i,o,f,u;t=t?this.$c[t]:this.id,(e=vt[t])&&(r=e.$cr,i=e.pId,e.unmountView(),f=r,(u=vt[o=t])&&(delete vt[o],pt.fire("remove",{vframe:u,fcc:f}),(o=m(o))&&(o.vframe=I)),e.id=e.pId=V,(e=vt[i])&&E(e.$c,t)&&(delete e.$c[t],e.$cl=V,e.$cc--,n||st(e)))},unmountZone:function(t,n){var e,r=this.$c;for(e in r)(!t||e!=t&&k(e,t))&&this.unmountVframe(e,1);n||st(this)},parent:function(t,n){for(n=this,t=t>>>0||1;n&&t--;)n=vt[n.pId];return n},children:function(t){return(t=this).$cl||(t.$cl=W(t.$c))},invoke:function(t,n){var e,r,i,o,f,u=this.$il;return(r=this.$v)&&r.$p?e=(i=r[t])&&R(i,n,r):((o=u[f=A+t])&&(o.r=n===o.a),o={n:t,a:n,k:f},u.push(o),u[f]=o),e}}),X.Vframe=pt,x.fn.invokeView=function(t,n){var e=this.length;if(e){var r=this[0],i=r.vframe;if(void 0===n)return i&&i.invoke(t);for(var o=0;o<e;o++)(i=(r=this[o]).vframe)&&i.invoke(t,n)}};var mt=new M(30,10),gt=/(?:([\w\-]+)\x1e)?([^(]+)\(([\s\S]*)?\)/,yt={},bt={},wt=function(t,n){var e,r,i,o,f,u=[],c=t,a=t.getAttribute("mx-"+n),s=[];if(a&&((i=mt.get(a))||((i={v:(i=a.match(gt)||h)[1],n:i[2],i:i[3]}).p=i.i&&R(Function("return "+i.i),h,t),mt.set(a,i)),i={r:a,v:i.v,p:i.p,i:i.i,n:i.n},u.push(i)),i&&!i.v||bt[n]){if(!(f=t.$v))for(s.push(c);c!=$&&(c=c.parentNode);){if(vt[r=c.id]||(r=c.$v)){f=r;break}s.push(c)}if(f){for(;a=s.pop();)a.$v=f;do{if((e=vt[f])&&(o=e.$v)){for(r in o.$so[n])F(t,r)&&u.push({r:r,v:f,n:r});if(o.$t){i&&!i.v&&(i.v=f);break}}}while(e&&(f=e.pId))}}return u},kt=function(t){for(var n,e,r,i,o,f,u,c=t.target,a=t.type,s=[];c!=$;){if((e=wt(c,a)).length)for(s=[];n=e.shift();){if(!n.v)return d.error(Error("bad "+a+":"+n.r));(o=(i=vt[n.v])&&i.$v)&&(f=o[n.n+A+a])&&(t.eventTarget=c,u=n.p||{},n.i&&0<n.i.indexOf(A)&&H(o.$u,u,u={}),t[S]=u,R(f,t,o))}if((r=c.$)&&r[a]||t.isPropagationStopped())break;s.push(c),c=c.parentNode||$}for(;c=s.pop();)(r=c.$||(c.$={}))[a]=1},xt=/\\|'/g,Vt=/\r|\n/g,qt=/<%([@=!])?([\s\S]*?)%>|$/g,It=function(i){var o=0,f="$p+='";return i.replace(qt,function(t,n,e,r){return f+=i.slice(o,r).replace(xt,"\\$&").replace(Vt,"\\n"),o=r+t.length,"@"==n?f+="';$p+=$i("+e+");$p+='":"="==n?f+="'+$e("+e+")+'":"!"==n?f+="'+$n("+e+")+'":e&&(f+="';"+e+";$p+='"),t}),f="var $t,$p='',$em={'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&#34;','\\'':'&#39;','`':'&#96;'},$er=/[&<>\"'`]/g,$n=function(v){return v==null?'':''+v},$ef=function(m){return $em[m]},$e=function(v){return $n(v).replace($er,$ef)},$i=function(v,k,f){for(f=$$[$g];--f;)if($$[k=$g+f]===v)return k;$$[k=$g+$$[$g]++]=v;return k},$um={'!':'%21','\\'':'%27','(':'%28',')':'%29','*':'%2A'},$uf=function(m){return $um[m]},$uq=/[!')(*]/g,$eu=function(v){return encodeURIComponent($n(v)).replace($uq,$uf)},$qr=/[\\\\'\"]/g,$eq=function(v){return $n(v).replace($qr,'\\\\$&')};"+(f+="';")+"return $p",Function("$g","$$",f)},At=new M,St=function(t,n){var e=At.get(t);return e||(e=It(t),At.set(t,e)),e.call(n,A,n)},Tt=/\d+\x1d/g,Ut=/([\w\-]+)(?:="([\s\S]*?)")?/g,Ot={amp:"&",lt:"<",gt:">","#34":'"',"#39":"'","#96":"`"},jt=/&([^;]+);/g,Rt=function(t,n){return Ot[n]||t},Et=function(t,n,e,r,i,o,f){var u,c,a=t.id||(t.id=U()),s=n.owner;if(i){var $=Zt(St(e.attr,r),f),h={};$.replace(Ut,function(t,n,e){h[n]=e});for(var v,l,d,p,m,g=e.attrs.length;g--;)l=(v=e.attrs[g]).n,m=v.f,v.v?(u=1,c=h[l]):(p=E(h,l),(v.p?t[m||l]:t.getAttribute(l))!==(d=v.b?p:h[l]||V)&&(v.p?(v.q&&d.replace(jt,Rt),t[m||l]=d):p?t.setAttribute(l,d):t.removeAttribute(l)))}var y,b,w,k=vt[a];u&&!o&&k&&(w=(b=G(c))[S],G(k[T])[T]==b[T]&&(0<c.indexOf(A)&&H(n.$u,w,w),k[T]=c,(y=k.invoke("assign",w))&&k.invoke("render"))),y||(u&&s.unmountVframe(a,c),o&&n.setHTML(a,St(e.tmpl,r)),u&&c&&s.mountVframe(a,c))},Ht=function(t){this.$i=t,this.$t=t,this.$data={"\x1e":1},this.$keys={}};O(Ht.prototype,{to:function(t,n){return(n=this).$t=t,n},get:function(t){var n=this.$data;return t&&(n=n[t]),n},gain:function(t){for(var n=this.$data,e=t.split(".");n&&e.length;)n=n[e.shift()];return n},set:function(t){var n=this.$data,e=this.$keys;return w(t,n,e),this},digest:function(t){var n=this;t&&n.set(t),t=n.$data;var e=n.$keys;return n.$keys={},function(t,n,e){var r,i=t.$i,o=vt[i],f=o&&o.$v;if(f&&(r=f.tmpl)){var u=r.html,c=r.subs;if(t.$rd&&n)for(var a,s,$,h,v,l,d,p,m=c.length;m--;){if(h=$=0,v=1,d=(s=c[m]).mask,a=s.pKeys)for(l=a.length;l--;)if(E(n,a[l])){v=0;break}if(v){for(v=0,l=(a=s.keys).length;l--;)if(E(n,a[l])){if(v=1,!d||$&&h){$=s.tmpl,h=s.attr;break}p=d.charAt(l),$=$||1&p,h=h||2&p}if(v){var g=x(Zt(s.path,i));for(l=0;l<g.length;)Et(g[l++],f,s,e,h,$,i)}}}else{if(!r[A]){r[A]=1;var y,b,w={},k=function(t){return w[t].tmpl};for(y=c.length;y--;)(b=c[y]).s&&((w[b.s]=b).tmpl=b.tmpl.replace(Tt,k));u=r.html=u.replace(Tt,k)}t.$rd=1,f.setHTML(t.$t,St(u,e))}}}(n,e,t),n},snapshot:function(){return this.$ss=u(this.$data),this},altered:function(){if(this.$ss)return this.$ss!=u(this.$data)}});var Ct=/^(\$?)([^<]+?)<([^>]+)>$/,Mt=/\x1f/g,Zt=function(t,n){return(t+V).replace(Mt,n||this.id)},Lt=function(t,n,e){return t.$l?e=t:((e=function(t){R(e.$l,t,this)}).$l=[t],e.$m=1),e.$l=e.$l.concat(n.$l||n),e},Pt=function(t,n){var e,r,i=t.$r;for(e in i)r=i[e],(n||r.x)&&Nt(i,e,1)},Nt=function(t,n,e,r){var i,o,f=t[n];return f&&f!=r&&((i=(o=f.e).destroy)&&e&&R(i,h,o),delete t[n]),o},Bt=function(t,n){var e,r,i,o,f,u,c,a=t.$eo,s=t.$so;for(e in a)o=s[i=e],f=n,void 0,u=0|yt[i],c=f?-1:1,u&&f!==u||J($,i,kt,f),yt[i]=u+c,o&&(bt[i]=(0|bt[i])+c);for(e=(a=t.$el).length;e--;)r=a[e],J(r.e,r.n,z,n,{i:t.id,v:t,f:r.f,e:r.e})},Dt=[],Ft={win:e,doc:r},zt=function(t){if(!t[A]){t[A]=[];var n,e,r,i,o,f,u,c,a,s=t[y],$={},h=[],v={},l={};if(c=0,e=s.mixins){for(a=e.length;c<a;)for(u in o=e[c++])n=o[u],r=l[u],"ctor"!=u?(Ct.test(u)&&(r?n=Lt(r,n):n.$m=1),l[u]=n):t[A].push(n);for(u in l)E(s,u)||(s[u]=l[u])}for(u in s)if(n=s[u],e=u.match(Ct))for(f=e[1],r=e[2],i=e[3].split(",");c=i.pop();){if(o=Ft[r],a=1,f){if(o){h.push({f:n,e:o,n:c});continue}a=2,(o=v[c])||(o=v[c]={}),o[r]=1}$[c]=$[c]|a,(o=s[c=r+A+c])?o.$m&&(n.$m?s[c]=Lt(o,n):E(s,u)&&(s[c]=n)):s[c]=n}p=(d=s).render,d.render=function(){0<(m=this).$s&&(m.$s++,m.fire("rendercall"),Pt(m),R(p,g.call(arguments),m))},s.$eo=$,s.$el=h,s.$so=v,s.$t=!!s.tmpl}var d,p,m;return t[A]},Jt=function(t,n){O(n=this,t),n.$r={},n.$s=1,n.updater=n.$u=new Ht(n.id),R(Dt,t,n)},Kt=Jt[y];O(Jt,{merge:function(t,n){(n=t&&t.ctor)&&Dt.push(n),O(Kt,t)},extend:function(t,n){var r=this,e=(t=t||{}).ctor,i=[];e&&i.push(e);var o=function(t,n,e){r.call(this,t,n),R(i.concat(e),n,this)};return o.extend=r.extend,N(o,r,t,n)}}),O(O(Kt,Y),{render:n,init:n,wrapEvent:Zt,beginUpdate:function(t,n){0<(n=this).$s&&n.$p&&(n.owner.unmountZone(t,1),n.fire("prerender",{id:t}))},endUpdate:function(t,n,e,r){0<(n=this).$s&&(t=t||n.id,n.fire("rendered",{id:t}),r=n.$p,n.$p=1,(e=n.owner).mountZone(t),r||setTimeout(n.wrapAsync(function(){!function(t,n,e){for(n=t.$il;n.length;)(e=n.shift()).r||t.invoke(e.n,e.a),delete n[e.k]}(e)}),0))},wrapAsync:function(t,n){var e=this,r=e.$s;return function(){0<r&&r==e.$s&&t&&t.apply(n||e,arguments)}},observeState:function(t){this.$os=(t+V).split(",")},capture:function(t,n,e,r,i){return r=this.$r,n?(Nt(r,t,1,n),i={e:n,x:e},r[t]=i):n=(i=r[t])&&i.e||n,n},release:function(t,n){return Nt(this.$r,t,n)},leaveTip:function(r,i){var o=this,f=function(t){var n="a",e="b";"change"!=t.type&&(n="b",e="a"),f[n]?(t.prevent(),t.reject()):i()?(t.prevent(),f[e]=1,o.leaveConfirm(r,function(){f[e]=0,t.resolve()},function(){f[e]=0,t.reject()})):t.resolve()},t=function(t){i()&&(t.msg=r)};Router.on("change",f),Router.on("pageunload",t),o.on("unload",f),o.on("destroy",function(){Router.off("change",f),Router.off("pageunload",t)})},setHTML:function(t,n){var e,r=this.id;this.beginUpdate(t),0<this.$s&&(e=m(t))&&B(e,Zt(n,r),r),this.endUpdate(t)}}),X.View=Jt;var _t=x.type,Gt=x.proxy,Qt=x.now||Date.now,Wt=function(){this.id=U("b"),this.$={}};O(Wt[y],{get:function(t,n,e){var r=n!=e,i=this.$;if(t){for(var o,f=q(t)?g.call(t):(t+V).split(".");(o=f.shift())&&i;)i=i[o];o&&(i=e)}return r&&_t(n)!=_t(i)&&(i=n),i},set:function(t,n){var e;o(t)||((e={})[t]=n,t=e),O(this.$,t)}});var Xt=function(t,n,e){(e=this[t])&&(delete this[t],R(e,n,e.e))},Yt=function(t,n,e,r,i){if(t.$o)return t;if(t.$b)return t.enqueue(function(){Yt(this,n,e,r,i)});t.$b=1;var o=t.constructor,f=o.$r;q(n)||(n=[n]);for(var a,s,$,h,v,l,d,p,m,u,c=n.length,g=(a=e,$=t,h=c,v=r,l=(s=o).$c,d=[],p=I,m=0,function(t,n){var e,r=this;m++;var i=r.$m,o=i.k,f={bag:d[t+1]=r,error:n};if(n)p=n,s.fire("fail",f),e=1;else if(!l.has(o)){o&&l.set(o,r),i.t=Qt();var u=i.a;u&&R(u,r,r),i.x&&s.clear(i.x),s.fire("done",f),e=1}if(!$.$o){var c=m==h;c&&($.$b=0,2==v&&(d[0]=p,R(a,d,$))),1==v&&R(a,[n||I,r,c,t],$)}e&&s.fire("end",f)}),y=0;y<c;y++)if(u=n[y]){var b,w=o.get(u,i),k=w.e,x=k.$m.k,V=Gt(g,k,y);x&&f[x]?f[x].push(V):w.u?(x&&((b=[V]).e=k,f[x]=b,V=Gt(Xt,f,x)),o.$s(k,V)):V()}return t},tn=function(){var t=this;t.id=U("s"),t.$q=[]};O(tn[y],{all:function(t,n){return Yt(this,t,n,2)},save:function(t,n){return Yt(this,t,n,2,1)},one:function(t,n){return Yt(this,t,n,1)},enqueue:function(t){var n=this;return n.$o||(n.$q.push(t),n.dequeue(n.$a)),n},dequeue:function(){var n=this,e=g.call(arguments);n.$b||n.$o||(n.$b=1,setTimeout(function(){if(n.$b=0,!n.$o){var t=n.$q.shift();t&&R(t,n.$a=e,n)}},0))},destroy:function(t){(t=this).$o=1,t.$q=0}});var nn=function(t,n,e){return[u(n),u(t)].join(A)},en=function(t,n,e,r){(r=t&&t.$m)&&n[r.n]&&e.del(r.k)},rn=O({add:function(t){var n=this.$m;q(t)||(t=[t]);for(var e,r,i=t.length;i--;)(e=t[i])&&(r=e.name,e.cache=0|e.cache,n[r]=e)},create:function(t){var n=this.meta(t),e=0|t.cache||n.cache,r=new Wt;r.set(n),r.$m={n:n.name,a:n.after,x:n.cleans,k:e&&nn(n,t)},o(t)&&r.set(t);var i=n.before;return i&&R(i,r,r),this.fire("begin",{bag:r}),r},meta:function(t){return this.$m[t.name||t]||t},get:function(t,n){var e,r;return n||(e=this.cached(t)),e||(e=this.create(t),r=1),{e:e,u:r}},clear:function(t){this.$c.each(en,Q((t+V).split(",")))},cached:function(t){var n,e,r=this.$c,i=this.meta(t),o=0|t.cache||i.cache;if(o&&(e=nn(i,t)),e){var f=this.$r[e];f?n=f.e:(n=r.get(e))&&Qt()-n.$m.t>o&&(r.del(e),n=0)}return n}},Y);tn.extend=function(t,n,e){var r=this,i=function(){r.call(this)};return i.$s=t,i.$c=new M(n,e),i.$r={},i.$m={},N(i,r,I,rn)},X.Service=tn;var on=function(t,n){var e=this,r=t&&t.ctor,i=function(){var t=arguments;e.apply(this,t),r&&r.apply(this,t)};return i.extend=on,N(i,e,t,n)};return O(n[y],Y),n.extend=on,X.Base=n,X});