UNPKG

easy-magix

Version:

view manager framewrok

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