easy-magix
Version:
view manager framewrok
1 lines • 16.5 kB
JavaScript
/*!3.7.0 MIT kooboy_li@163.com*/KISSY.add("magix",function(r,o,t){var $,n=r.noop,x=r.all,f=r.isObject,I=r.isArray,u=0,V="",h=[],g=h.slice,q=null,e=window,i=document,a=x(i),c=JSON.stringify,A="\x1e",s="object",y="prototype",S="params",T="path",v=/[#?].*$/,d=/([^=&?\/#]+)=?([^&#?]*)/g,l=/(?!^)=|&/,U=function(t){return(t||"mx_")+u++},p=U(),m={rootId:U(),defaultView:p,error:function(t){throw t}},b=m.hasOwnProperty,w=function(t){return typeof t==s?t:i.getElementById(t)},k=function(t){return!t||typeof t!=s},O=function(t,n,e){var r,i,o,f=0;for(o in t)r=t[o],i=n[o],k(r)&&i==r||(f=e[o]=1),n[o]=r;return f},j=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},R=Object.assign||function(t,n,e){for(e in n)t[e]=n[e];return t},E=function(t,n){n&&!E[t]&&(E[t]=1,x("head").append("<style>"+n+"</style>"))},H=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){m.error(t)}}return i},C=function(t,n){return t&&b.call(t,n)},M=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},Z=function(t,n){return n.f-t.f||n.t-t.t},L=function(t,n,e,r){(r=this).c=[],r.b=0|n||5,r.x=r.b+(t||20),r.r=e};R(L[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(Z);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&&H(r,e.o))},has:function(t){return C(this.c,A+t)}});var N,P=function(t,n){r.use(t&&t+V,function(t){n&&n.apply(t,g.call(arguments,1))})},B=r.extend,F=function(t,n,e){a.fireHandler("htmlchange",{vId:e}),r.one(t).html(n),a.fireHandler("htmlchanged",{vId:e})},K=t.test,D=function(t,n){n=this,t.eventTarget=n.e,H(n.f,t,n.v)},J=function(t,n,e,r,i){i?o[(r?"un":V)+"delegate"](t,n,e,i):o[r?"detach":X](t,n,e,i)},Y=new L,_=function(t,n,e){try{e=decodeURIComponent(e)}catch(t){}N[n]=e},z=function(t){var n,e=Y.get(t);return e||(N={},t==(n=t.replace(v,V))&&l.test(n)&&(n=V),t.replace(n,V).replace(d,_),Y.set(t,e={a:n,b:N})),{path:e.a,params:R({},e.b)}},G=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},Q=Object.keys||function(t,n,e){for(e in n=[],t)C(t,e)&&n.push(e);return n},W={config:function(t,n){return n=m,t&&(n=f(t)?R(n,t):n[t]),n},boot:function(t){R(m,t),P(m.exts,function(){vt().mountView(m.defaultView),ct.on("changed",pt)})},toMap:G,toTry:H,toUrl:function(t,n,e){var r,i,o,f=[];for(i in n)r=n[i]+V,(!e||r||C(e,i))&&(r=encodeURIComponent(r),f.push(o=i+"="+r));return o&&(t+=(t&&(~t.indexOf("?")?"&":"?"))+f.join("&")),t},parseUrl:z,mix:R,has:C,keys:Q,inside:j,node:w,applyStyle:E,guid:U,Cache:L,use:P,define:function(t,n){r.add(t,function(){return n})}},X="on",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,H(u.f,n,a),u.x=V):u.x||(c.splice(f,1),o--);(c=a[X+t])&&H(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[X+t]}};W.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],C(it,n)?it[n]++:it[n]=1;return t},at=function(t){for(var n,e=0;e<t.length;e++)n=t[e],C(it,n)&&(--it[n]||(delete it[n],delete rt[n]))},ct=R({get:function(t){var n=t?rt[t]:rt;return n},set:function(t){return ft=O(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);W.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=dt[t.pId])&&!C(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=dt[t.pId])&&C(r.$r,e)&&(r.$rc--,delete r.$r[e],ht(r,n)))},vt=function(t,n){return nt||($=i.body,w(t=m.rootId)||($.id=t),nt=new mt(t)),nt},dt={},lt=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=C(n,o))break}return e})(e,n)&&e.render();for(var r=t.children(),i=r.length,o=0;o<i;)lt(dt[r[o++]],n)}},pt=function(t){var n,e=vt();(n=t.view)?e.mountView(n.to):(st=u++,lt(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,C(dt,r=t)||(dt[r]=i,mt.fire("add",{vframe:i}),(r=w(r))&&(r.vframe=i))};R(mt,R({all:function(){return dt},get:function(t){return dt[t]}},tt)),R(R(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=z(t),i=e.path,r=++c.$s,o=e[S],u=c.pId,(a=(a=(a=dt[u])&&a.$v)&&a.$u)&&0<t.indexOf(A)&&M(a,o,o),R(o,n),P(i,function(t){if(r==c.$s){if(!t)return m.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,Ft(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),Pt(r,1),Ft(r,1)),r.$s--,r.owner=q,(t=w(i))&&e.$a&&F(t,e.$t,i),n&&(et=0)),e.$s++},mountVframe:function(t,n,e){var r,i=this;return ht(i,{id:t}),(r=dt[t])||(C(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=U()),r.$m||(r.$m=1,f.push([i,r.getAttribute("mx-view")]));for(;f.length;)f[i=(r=f.shift())[0]]?m.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=dt[t])&&(r=e.$cr,i=e.pId,e.unmountView(),f=r,(u=dt[o=t])&&(delete dt[o],mt.fire("remove",{vframe:u,fcc:f}),(o=w(o))&&(o.vframe=q)),e.id=e.pId=V,(e=dt[i])&&C(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&&j(e,t))&&this.unmountVframe(e,1);n||$t(this)},parent:function(t,n){for(n=this,t=t>>>0||1;n&&t--;)n=dt[n.pId];return n},children:function(t){return(t=this).$cl||(t.$cl=Q(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])&&H(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}}),W.Vframe=mt,t[y].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 L(30,10),yt=/(?:([\w\-]+)\x1e)?([^(]+)\(([\s\S]*)?\)/,bt={},wt={},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&&H(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||wt[n]){if(!(f=t.$v))for(s.push(a);a!=$&&(a=a.parentNode);){if(dt[r=a.id]||(r=a.$v)){f=r;break}s.push(a)}if(f){for(;c=s.pop();)c.$v=f;do{if((e=dt[f])&&(o=e.$v)){for(r in o.$so[n])K(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 m.error(Error("bad "+c+":"+n.r));(o=(i=dt[n.v])&&i.$v)&&(f=o[n.n+A+c])&&(t.eventTarget=a,u=n.p||{},n.i&&0<n.i.indexOf(A)&&M(o.$u,u,u={}),t[S]=u,H(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={'&':'&','<':'<','>':'>','\"':'"','\\'':''','`':'`'},$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)},St=new L,Tt=function(t,n){var e=St.get(t);return e||(e=At(t),St.set(t,e)),e.call(n,A,n)},Ut=/\d+\x1d/g,Ot=/([\w\-]+)(?:="([\s\S]*?)")?/g,jt={amp:"&",lt:"<",gt:">","#34":'"',"#39":"'","#96":"`"},Rt=/&([^;]+);/g,Et=function(t,n){return jt[n]||t},Ht=function(t,n,e,r,i,o,f){var u,a,c=t.id||(t.id=U()),s=n.owner;if(i){var $=Lt(Tt(e.attr,r),f),h={};$.replace(Ot,function(t,n,e){h[n]=e});for(var v,d,l,p,m,g=e.attrs.length;g--;)d=(v=e.attrs[g]).n,m=v.f,v.v?(u=1,a=h[d]):(p=C(h,d),(v.p?t[m||d]:t.getAttribute(d))!==(l=v.b?p:h[d]||V)&&(v.p?(v.q&&l.replace(Rt,Et),t[m||d]=l):p?t.setAttribute(d,l):t.removeAttribute(d)))}var y,b,w,k=dt[c];u&&!o&&k&&(w=(b=z(a))[S],z(k[T])[T]==b[T]&&(0<a.indexOf(A)&&M(n.$u,w,w),k[T]=a,(y=k.invoke("assign",w))&&k.invoke("render"))),y||(u&&s.unmountVframe(c,a),o&&n.setHTML(c,Tt(e.tmpl,r)),u&&a&&s.mountVframe(c,a))},Ct=function(t){this.$i=t,this.$t=t,this.$data={"\x1e":1},this.$keys={}};R(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 O(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=dt[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,d,l,p,m=a.length;m--;){if(h=$=0,v=1,l=(s=a[m]).mask,c=s.pKeys)for(d=c.length;d--;)if(C(n,c[d])){v=0;break}if(v){for(v=0,d=(c=s.keys).length;d--;)if(C(n,c[d])){if(v=1,!l||$&&h){$=s.tmpl,h=s.attr;break}p=l.charAt(d),$=$||1&p,h=h||2&p}if(v){var g=x(Lt(s.path,i));for(d=0;d<g.length;)Ht(g[d++],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=a.length;y--;)(b=a[y]).s&&((w[b.s]=b).tmpl=b.tmpl.replace(Ut,k));u=r.html=u.replace(Ut,k)}t.$rd=1,f.setHTML(t.$t,Tt(u,e))}}}(n,e,t),n},snapshot:function(){return this.$ss=c(this.$data),this},altered:function(){if(this.$ss)return this.$ss!=c(this.$data)}});var Mt=/^(\$?)([^<]+?)<([^>]+)>$/,Zt=/\x1f/g,Lt=function(t,n){return(t+V).replace(Zt,n||this.id)},Nt=function(t,n,e){return t.$l?e=t:((e=function(t){H(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)&&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&&H(i,h,o),delete t[n]),o},Ft=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|bt[i],a=f?-1:1,u&&f!==u||J($,i,xt,f),bt[i]=u+a,o&&(wt[i]=(0|wt[i])+a);for(e=(c=t.$el).length;e--;)r=c[e],J(r.e,r.n,D,n,{i:t.id,v:t,f:r.f,e:r.e})},Kt=[],Dt={win:e,doc:i},Jt=function(t){if(!t[A]){t[A]=[];var n,e,r,i,o,f,u,a,c,s=t[y],$={},h=[],v={},d={};if(a=0,e=s.mixins){for(c=e.length;a<c;)for(u in o=e[a++])n=o[u],r=d[u],"ctor"!=u?(Mt.test(u)&&(r?n=Nt(r,n):n.$m=1),d[u]=n):t[A].push(n);for(u in d)C(s,u)||(s[u]=d[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=Dt[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]=Nt(o,n):C(s,u)&&(s[a]=n)):s[a]=n}p=(l=s).render,l.render=function(){0<(m=this).$s&&(m.$s++,m.fire("rendercall"),Pt(m),H(p,g.call(arguments),m))},s.$eo=$,s.$el=h,s.$so=v,s.$t=!!s.tmpl}var l,p,m;return t[A]},Yt=function(t,n){R(n=this,t),n.$r={},n.$s=1,n.updater=n.$u=new Ct(n.id),H(Kt,t,n)},_t=Yt[y];R(Yt,{merge:function(t,n){(n=t&&t.ctor)&&Kt.push(n),R(_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),H(i.concat(e),n,this)};return o.extend=r.extend,B(o,r,t,n)}}),R(R(_t,tt),{render:n,init:n,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))&&F(e,Lt(n,r),r),this.endUpdate(t)}}),W.View=Yt;var zt=r.type,Gt=r.bind,Qt=r.now,Wt=function(){this.id=U("b"),this.$={}};R(Wt[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&&zt(n)!=zt(i)&&(i=n),i},set:function(t,n){var e;f(t)||((e={})[t]=n,t=e),R(this.$,t)}});var Xt=function(t,n,e){(e=this[t])&&(delete this[t],H(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,d,l,p,m,u,a=n.length,g=(c=e,$=t,h=a,v=r,d=(s=o).$c,l=[],p=q,m=0,function(t,n){var e,r=this;m++;var i=r.$m,o=i.k,f={bag:l[t+1]=r,error:n};if(n)p=n,s.fire("fail",f),e=1;else if(!d.has(o)){o&&d.set(o,r),i.t=Qt();var u=i.a;u&&H(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&&(l[0]=p,H(c,l,$))),1==v&&H(c,[n||q,r,a,t],$)}e&&s.fire("end",f)}),y=0;y<a;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},nn=function(){var t=this;t.id=U("s"),t.$q=[]};R(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&&H(t,n.$a=e,n)}},0))},destroy:function(t){(t=this).$o=1,t.$q=0}});var en=function(t,n,e){return[c(n),c(t)].join(A)},rn=function(t,n,e,r){(r=t&&t.$m)&&n[r.n]&&e.del(r.k)},on=R({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 Wt;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&&H(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,G((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))&&Qt()-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 L(n,e),i.$r={},i.$m={},B(i,r,q,on)},W.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 R(n[y],tt),n.extend=fn,W.Base=n,r.add(p,function(){return Yt.extend()}),W},{requires:["event","node","dom"]});