avalon-rails 1.3.9.1 → 1.3.9.1.20150212184918

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,115 +1,2 @@
1
- (function(t,U){"object"===typeof module&&"object"===typeof module.exports?module.exports=t.document?U(t,!0):function(t){if(!t.document)throw Error("Avalon requires a window with a document");return U(t)}:U(t)})("undefined"!==typeof window?window:this,function(t,U){function x(){avalon.config.debug&&console.log.apply(console,arguments)}function z(){}function O(b,c){"string"===typeof b&&(b=b.match(y)||[]);for(var d={},e=void 0!==c?c:1,f=0,g=b.length;f<g;f++)d[b[f]]=e;return d}function Ka(b){function c(e,
2
- f){d.push(e)>b&&delete c[d.shift()];return c[e]=f}var d=[];return c}function q(b){for(var c in b)if(La.call(b,c)){var d=b[c];if("function"===typeof q.plugins[c])q.plugins[c](d);else"object"===typeof q[c]?avalon.mix(q[c],d):q[c]=d}return this}function yb(b,c,d){if(P(c)||c&&c.nodeType||-1!==d.indexOf(b)||-1!==Ma.indexOf(b))return!1;c=d.$special;return b&&"$"===b.charAt(0)&&!c[b]?!1:!0}function zb(b,c,d,e){switch(b.type){case 0:var f=b.get;b=b.set;if(P(b)){var g=e.$events,h=g[c];g[c]=[];b.call(e,d);
3
- g[c]=h}return f.call(e);case 1:return d;case 2:return d!==e.$model[c]&&(c=b.svmodel=Ab(e,c,d,b.valueType),d=c.$model,(c=ma[c.$id])&&c()),d}}function G(b,c,d){if(Array.isArray(b)){var e=b.concat();b.length=0;c=Bb(b);c.pushArray(e);return c}if("number"===typeof b.nodeType||b.$id&&b.$events)return b;Array.isArray(b.$skipArray)||(b.$skipArray=[]);b.$skipArray.$special=c||{};var f={};d=d||{};var g={},h={},k=[];for(e in b)(function(c,e){d[c]=e;if(yb(c,e,b.$skipArray)){g[c]=[];var l=avalon.type(e),s=function(b){var c=
4
- s._name,d=this,e=d.$model,f=e[c],g=d.$events;if(arguments.length){if(!na){if(1!==s.type&&(b=zb(s,c,b,d),!s.type))return;Na(f,b)||(e[c]=b,g.$digest?s.pedding||(s.pedding=!0,setTimeout(function(){ca(g[c]);d.$events&&H.$fire.call(d,c,e[c],f);s.pedding=!1})):(ca(g[c]),d.$events&&H.$fire.call(d,c,b,f)))}}else{if(0===s.type)return b=s.get.call(d),f!==b&&(e[c]=b,g.$digest?s.pedding||(s.pedding=!0,setTimeout(function(){d.$events&&H.$fire.call(d,c,e[c],f);s.pedding=!1})):d.$events&&H.$fire.call(d,c,b,f)),
5
- b;Db(g[c]);return s.svmodel||f}};"object"===l&&P(e.get)&&2>=Object.keys(e).length?(s.set=e.set,s.get=e.get,s.type=0,k.push(function(){var b={evaluator:function(){b.type=new Date-0;b.element=null;d[c]=s.get.call(f)},element:E,type:new Date-0,handler:z,args:[]};V[F]=b;s.call(f);delete V[F]})):Oa.test(l)?(s.type=2,s.valueType=l,k.push(function(){var b=G(e,0,d[c]);s.svmodel=b;b.$events[I]=g[c]})):s.type=1;s._name=c;h[c]=s}})(e,b[e]);Ma.forEach(function(c){delete b[c];delete d[c]});var f=Eb(f,Fb(h),b),
6
- l;for(l in b)h[l]||(f[l]=b[l]);f.$id=J();f.$model=d;f.$events=g;for(e in H)c=H[e],Q||(c=c.bind(f)),f[e]=c;Pa?Object.defineProperty(f,"hasOwnProperty",{value:function(b){return b in this.$model},writable:!1,enumerable:!1,configurable:!0}):f.hasOwnProperty=function(b){return b in f.$model};k.forEach(function(b){b()});return f}function Ab(b,c,d,e){var f=b[c];if("array"===e){if(!Array.isArray(d)||f===d)return f;f._.$unwatch();f.clear();f._.$watch();f.pushArray(d.concat());return f}var g=b.$events[c];
7
- if(b=f.$events.$withProxyPool)oa(b,"with"),f.$events.$withProxyPool=null;var h=G(d);h.$events[I]=g;ma[h.$id]=function(b){for(;b=g.shift();)(function(b){avalon.nextTick(function(){b.type&&(b.rollback&&b.rollback(),v[b.type](b,b.vmodels))})})(b);delete ma[h.$id]};return h}function Bb(b){var c=[];c.$id=J();c.$model=b;c.$events={};c.$events[I]=[];c._=G({length:b.length});c._.$watch("length",function(b,d){c.$fire("length",b,d)});for(var d in H)c[d]=H[d];avalon.mix(c,Qa);return c}function R(b,c,d,e,f,g,
8
- h){for(var k=this.length,l=2;--l;){switch(b){case "add":var m=this.$model.slice(c,c+d).map(function(b){return Oa.test(avalon.type(b))?b.$id?b:G(b,0,b):b});pa.apply(this,[c,0].concat(m));this._fire("add",c,d);break;case "del":var n=this._splice(c,d);this._fire("del",c,d)}f&&(b=f,c=g,d=h,l=2,f=0)}this._fire("index",e);this.length!==k&&(this._.length=this.length);return n}function qa(b,c){for(var d={},e=0,f=c.length;e<f;e++){d[e]=b[e];var g=c[e];g in d?(b[e]=d[g],delete d[g]):b[e]=b[g]}}function ra(b){V[F]=
9
- b;avalon.openComputedCollect=!0;var c=b.evaluator;if(c)try{var d=Gb.test(b.type)?b:c.apply(0,b.args);b.handler(d,b.element,b)}catch(e){delete b.evaluator,c=b.element,3===c.nodeType&&(d=c.parentNode,q.commentInterpolate?d.replaceChild(p.createComment(b.value),c):c.data=A+b.value+L)}avalon.openComputedCollect=!1;delete V[F]}function Db(b){var c=V[F];b&&(c&&avalon.Array.ensure(b,c)&&c.element)&&sa(c,b)}function sa(b,c){b.$uuid=b.$uuid||J();c.$uuid=c.$uuid||J();var d={data:b,list:c,$$uuid:b.$uuid+c.$uuid};
10
- M[d.$$uuid]||(M[d.$$uuid]=1,M.push(d))}function Ra(b){b.element=null;b.rollback&&b.rollback();for(var c in b)b[c]=null}function Hb(b){try{if(!b.parentNode)return!0}catch(c){return!0}return b.msRetain?0:1===b.nodeType?"number"===typeof b.sourceIndex?0===b.sourceIndex:!B.contains(b):!avalon.contains(B,b)}function Sa(){for(var b=M.length,c=b,d=0,e,f=[],g={},h={};e=M[--b];){var k=e.data;e=k.type;g[e]?g[e]++:(g[e]=1,f.push(e))}var l=!1;f.forEach(function(b){Ta[b]!==g[b]&&(h[b]=1,l=!0)});b=c;if(l)for(;e=
11
- M[--b];)k=e.data,void 0!==k.element&&(h[k.type]&&Hb(k.element))&&(d++,M.splice(b,1),delete M[e.$$uuid],avalon.Array.remove(e.list,k),Ra(k),e.data=e.list=null);Ta=g;Ua=new Date}function ca(b){if(b&&b.length){444<new Date-Ua&&"object"===typeof b[0]&&Sa();for(var c=da.call(arguments,1),d=b.length,e;e=b[--d];){var f=e.element;f&&f.parentNode&&(e.$repeat?e.handler.apply(e,c):"on"!==e.type&&e.handler((e.evaluator||z).apply(0,e.args||[]),f,e))}}}function ea(b,c,d){var e=setTimeout(function(){var f=b.innerHTML;
12
- clearTimeout(e);f===d?c():ea(b,c,f)})}function Va(b,c){var d=b.getAttribute("avalonctrl")||c.$id;b.setAttribute("avalonctrl",d);c.$events.expr=b.tagName+'[avalonctrl="'+d+'"]'}function ta(b,c){for(var d=0,e;e=b[d++];)e.vmodels=c,v[e.type](e,c),e.evaluator&&(e.element&&1===e.element.nodeType)&&e.element.removeAttribute(e.name);b.length=0}function Ib(b,c){return b.priority-c.priority}function Wa(b,c,d){d=b.getAttribute("ms-skip");var e=b.getAttributeNode("ms-important"),f=b.getAttributeNode("ms-controller");
13
- if("string"!==typeof d){if(d=e||f){f=avalon.vmodels[d.value];if(!f)return;c=d===e?[f]:[f].concat(c);b.removeAttribute(d.name);b.classList.remove(d.name);Va(b,f)}Xa(b,c)}}function Jb(b,c){for(var d=b.firstChild;d;){var e=d.nextSibling;Ya(d,d.nodeType,c);d=e}}function fa(b,c){for(var d=0,e;e=b[d++];)Ya(e,e.nodeType,c)}function Ya(b,c,d){1===c?Wa(b,d):3===c&&W.test(b.data)?Za(b,d):q.commentInterpolate&&(8===c&&!W.test(b.nodeValue))&&Za(b,d)}function Xa(b,c){for(var d=b.hasAttributes()?avalon.slice(b.attributes):
14
- [],e=[],f={},g,h=0,k;k=d[h++];)if(k.specified&&(g=k.name.match(Kb))){var l=g[1],m=g[2]||"",n=k.value;k=k.name;f[k]=n;Lb[l]?(m=l,l="on"):Mb[l]&&(x("ms-"+l+"\u5df2\u7ecf\u88ab\u5e9f\u5f03,\u8bf7\u4f7f\u7528ms-attr-*\u4ee3\u66ff"),"enabled"===l&&(l="disabled",n="!("+n+")"),m=l,l="attr",b.removeAttribute(k),k="ms-attr-"+m,b.setAttribute(k,n),g=[k],f[k]=n);if("function"===typeof v[l]){var r={type:l,param:m,element:b,name:g[0],value:n,priority:l in $a?$a[l]:10*l.charCodeAt(0)+(Number(m)||0)};if("html"===
15
- l||"text"===l)m=ua(n),avalon.mix(r,m),r.filters=r.filters.replace(ab,function(){r.type="html";r.group=1;return""});"ms-if-loop"===k&&(r.priority+=100);c.length&&(e.push(r),"widget"===l&&(b.msData=b.msData||f))}}f["ms-attr-checked"]&&f["ms-duplex"]&&x("warning!\u4e00\u4e2a\u5143\u7d20\u4e0a\u4e0d\u80fd\u540c\u65f6\u5b9a\u4e49ms-attr-checked\u4e0ems-duplex");e.sort(Ib);d=!0;for(h=0;r=e[h];h++){l=r.type;if(Nb.test(l))return ta(e.slice(0,h+1),c);d&&(d=!Ob.test(l))}ta(e,c);d&&(!Pb[b.tagName]&&bb.test(b.innerHTML+
16
- b.textContent))&&(cb&&cb(b),Jb(b,c))}function ua(b){if(0<b.indexOf("|")){var c=b.replace(Qb,"\u1122\u3344").indexOf("|");if(-1<c)return{filters:b.slice(c),value:b.slice(0,c),expr:!0}}return{value:b,filters:"",expr:!0}}function va(b){var c=[],d;d=0;var e;do{e=b.indexOf(A,d);if(-1===e)break;(d=b.slice(d,e))&&c.push({value:d,filters:"",expr:!1});d=e+A.length;e=b.indexOf(L,d);if(-1===e)break;(d=b.slice(d,e))&&c.push(ua(d));d=e+L.length}while(1);(d=b.slice(d))&&c.push({value:d,expr:!1,filters:""});return c}
17
- function Za(b,c){var d=[];if(8===b.nodeType)var e=ua(b.nodeValue),f=[e];else f=va(b.data);if(f.length){for(var g=0;e=f[g++];){var h=p.createTextNode(e.value);e.expr&&(e.type="text",e.element=h,e.filters=e.filters.replace(ab,function(){e.type="html";e.group=1;return""}),d.push(e));S.appendChild(h)}b.parentNode.replaceChild(S,b);d.length&&ta(d,c)}}function db(b){return b.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function ga(b){return 0>b.indexOf("-")&&0>b.indexOf("_")?b:b.replace(/[-_][^-_]/g,
18
- function(b){return b.charAt(1).toUpperCase()})}function ha(b){try{if("object"===typeof b)return b;b="true"===b?!0:"false"===b?!1:"null"===b?null:+b+""===b?+b:Rb.test(b)?JSON.parse(b):b}catch(c){}return b}function eb(b,c){if(0>=b.offsetWidth){var d=getComputedStyle(b,null);if(Sb.test(d.display)){var e={node:b},f;for(f in fb)e[f]=d[f],b.style[f]=fb[f];c.push(e)}(d=b.parentNode)&&1===d.nodeType&&eb(d,c)}}function Tb(b,c,d,e){for(var f=[],g=" = "+d+".",h=b.length,k;k=b[--h];)c.hasOwnProperty(k)&&(f.push(k+
19
- g+k),e.vars.push(k),"duplex"===e.type&&(b.get=d+"."+k),b.splice(h,1));return f}function gb(b){for(var c=[],d={},e=0;e<b.length;e++){var f=b[e],g=f&&"string"===typeof f.$id?f.$id:f;d[g]||(d[g]=c.push(f))}return c}function Ub(b,c){c=c.replace(Vb,"").replace(Wb,function(){return"],|"}).replace(Xb,function(b,c){return"["+hb(c)}).replace(Yb,function(){return'"],["'}).replace(Zb,function(){return'",'})+"]";return"return avalon.filters.$filter("+b+", "+c+")"}function ib(b,c,d){var e=d.type,f=d.filters||
20
- "",g=c.map(function(b){return String(b.$id).replace($b,"$1")})+b+e+f,h=ac(b).concat(),k=[],l=[],m=[],n="";c=gb(c);d.vars=[];for(var n=0,r=c.length;n<r;n++)if(h.length){var s="vm"+F+"_"+n;l.push(s);m.push(c[n]);k.push.apply(k,Tb(h,c[n],s,d))}if(k.length||"duplex"!==e)if("duplex"!==e&&(-1<b.indexOf("||")||-1<b.indexOf("&&"))&&d.vars.forEach(function(c){b=b.replace(RegExp("\\b"+c+"(?:\\.\\w+|\\[\\w+\\])+","ig"),function(d,e){var f=d.charAt(c.length),g=wa?b.slice(e+d.length):RegExp.rightContext,g=/^\s*\(/.test(g);
21
- if("."===f||"["===f||g){f="var"+String(Math.random()).replace(/^0\./,"");if(g){g=d.split(".");if(2<g.length){var h=g.pop();k.push(f+" = "+g.join("."));return f+"."+h}return d}k.push(f+" = "+d);return f}return d})}),d.args=m,c=xa[g])d.evaluator=c;else{(n=k.join(", "))&&(n="var "+n);if(/\S/.test(f)){if(!/text|html/.test(d.type))throw Error("ms-"+d.type+"\u4e0d\u652f\u6301\u8fc7\u6ee4\u5668");b="\nvar ret"+F+" = "+b+";\r\n";b+=Ub("ret"+F,f)}else{if("duplex"===e){e="'use strict';\nreturn function(vvv){\n\t"+
22
- n+";\n\tif(!arguments.length){\n\t\treturn "+b+"\n\t}\n\t"+(!bc.test(b)?h.get:b)+"= vvv;\n} ";try{c=Function.apply(z,l.concat(e)),d.evaluator=xa(g,c)}catch(p){x("debug: parse error,"+p.message)}return}"on"===e?(b=-1===b.indexOf("(")?b+".call(this, $event)":b.replace("(",".call(this,"),l.push("$event"),b="\nreturn "+b+";",f=b.lastIndexOf("\nreturn"),e=b.slice(0,f),f=b.slice(f),b=e+"\n"+f):b="\nreturn "+b+";"}try{c=Function.apply(z,l.concat("'use strict';\n"+n+b)),d.evaluator=xa(g,c)}catch(Cb){x("debug: parse error,"+
23
- Cb.message)}finally{h=textBuffer=l=null}}}function K(b,c,d,e,f){Array.isArray(e)&&(b=e.map(function(b){return b.expr?"("+b.value+")":hb(b.value)}).join(" + "));ib(b,c,d);d.evaluator&&!f&&(d.handler=C[d.handlerName||d.type],ra(d))}function X(b,c){var d="_"+b;if(!X[d]){var e=p.createElement(b);B.appendChild(e);c=Q?getComputedStyle(e,null).display:e.currentStyle.display;B.removeChild(e);X[d]=c}return X[d]}function ya(b){return null==b?"":b}function cc(b,c,d,e){c.param.replace(/\w+/g,function(e){(e=avalon.duplexHooks[e])&&
24
- "function"===typeof e[d]&&(b=e[d](b,c))});return b}function dc(){for(var b=Y.length-1;0<=b;b--)!1===(0,Y[b])()&&Y.splice(b,1);Y.length||clearInterval(jb)}function kb(b,c,d,e){var f=b.template.cloneNode(!0),g=avalon.slice(f.childNodes);d.$stamp&&f.insertBefore(d.$stamp,f.firstChild);c.appendChild(f);b=[d].concat(b.vmodels);e.push({nodes:g,vmodels:b})}function lb(b,c){var d=b.proxies[c];return d?d.$stamp:b.element}function za(b,c,d){for(;;){var e=c.previousSibling;if(!e)break;e.parentNode.removeChild(e);
25
- d&&d.call(e);if(e===b)break}}function ec(b){var c={$host:[],$outer:{},$stamp:1,$index:0,$first:!1,$last:!1,$remove:avalon.noop};c[b]={get:function(){return this.$host[this.$index]},set:function(b){this.$host.set(this.$index,b)}};var c=G(c,{$last:1,$first:1,$index:1}),d=c.$events;d[b]=d.$first=d.$last=d.$index;c.$id=J("$proxy$each");return c}function fc(b,c){for(var d=c.param||"el",e,f=0,g=ia.length;f<g;f++){var h=ia[f];h&&h.hasOwnProperty(d)&&(e=h,ia.splice(f,1))}e||(e=ec(d));var k=c.$repeat,d=k.length-
26
- 1;e.$index=b;e.$first=0===b;e.$last=b===d;e.$host=k;e.$outer=c.$outer;e.$stamp=c.clone.cloneNode(!1);e.$remove=function(){return k.removeAt(e.$index)};return e}function gc(){var b=G({$key:"",$outer:{},$host:{},$val:{get:function(){return this.$host[this.$key]},set:function(b){this.$host[this.$key]=b}}},{$val:1});b.$id=J("$proxy$with");return b}function hc(b,c){var d=mb.pop();d||(d=gc());var e=c.$repeat;d.$key=b;d.$host=e;d.$outer=c.$outer;e.$events?d.$events.$val=e.$events[b]:d.$events={};return d}
27
- function oa(b,c){var d="each"===c?ia:mb;avalon.each(b,function(b,c){if(c.$events){for(var g in c.$events)Array.isArray(c.$events[g])&&(c.$events[g].forEach(function(b){"object"===typeof b&&Ra(b)}),c.$events[g].length=0);c.$host=c.$outer={};d.unshift(c)>q.maxRepeatSize&&d.pop()}});"each"===c&&(b.length=0)}function nb(b,c,d,e){b=(b+"").replace(/[^0-9+\-Ee.]/g,"");b=!isFinite(+b)?0:+b;c=!isFinite(+c)?0:Math.abs(c);e="undefined"===typeof e?",":e;d="undefined"===typeof d?".":d;var f="",f=function(b,c){var d=
28
- Math.pow(10,c);return""+(Math.round(b*d)/d).toFixed(c)},f=(c?f(b,c):""+Math.round(b)).split(".");3<f[0].length&&(f[0]=f[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,e));if((f[1]||"").length<c)f[1]=f[1]||"",f[1]+=Array(c-f[1].length+1).join("0");return f.join(d)}function Z(){D?(u["ready!"].state=2,D.checkDeps()):ob.forEach(function(b){b(avalon)});Z=z}var F=Date.now(),p=t.document,E=p.head;E.insertAdjacentHTML("afterBegin",'<avalon ms-skip><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>');
29
- var Aa=E.firstChild,I="$"+F,ic=t.require,jc=t.define,na=!1,y=/[^, ]+/g,Oa=/^(?:object|array)$/,pb=/^\[object SVG\w*Element\]$/,kc=/^\[object (?:Window|DOMWindow|global)\]$/,Ba=Object.prototype,La=Ba.hasOwnProperty,$=Ba.toString,N=Array.prototype,da=N.slice,V={},Q=t.dispatchEvent,B=p.documentElement,S=p.createDocumentFragment(),ja=p.createElement("div"),qb={};"Boolean Number String Function Array Date RegExp Object Error".replace(y,function(b){qb["[object "+b+"]"]=b.toLowerCase()});var J=function(b){return((b||
30
- "avalon")+Math.random()+Math.random()).replace(/0\./g,"")},wa=function(){if(t.VBArray){var b=document.documentMode;return b?b:t.XMLHttpRequest?7:6}return 0}();avalon=function(b){return new avalon.init(b)};avalon.init=function(b){this[0]=this.element=b};avalon.fn=avalon.prototype=avalon.init.prototype;avalon.type=function(b){return null==b?String(b):"object"===typeof b||"function"===typeof b?qb[$.call(b)]||"object":typeof b};var P=function(b){return"[object Function]"==$.call(b)};avalon.isFunction=
31
- P;avalon.isWindow=function(b){return kc.test($.call(b))};avalon.isPlainObject=function(b){return"[object Object]"===$.call(b)&&Object.getPrototypeOf(b)===Ba};avalon.mix=avalon.fn.mix=function(){var b,c,d,e,f,g=arguments[0]||{},h=1,k=arguments.length,l=!1;"boolean"===typeof g&&(l=g,g=arguments[1]||{},h++);"object"!==typeof g&&!P(g)&&(g={});h===k&&(g=this,h--);for(;h<k;h++)if(null!=(b=arguments[h]))for(c in b)d=g[c],e=b[c],g!==e&&(l&&e&&(avalon.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,d=d&&
32
- Array.isArray(d)?d:[]):d=d&&avalon.isPlainObject(d)?d:{},g[c]=avalon.mix(l,d,e)):void 0!==e&&(g[c]=e));return g};avalon.mix({rword:y,subscribers:I,version:1.391,ui:{},log:x,slice:function(b,c,d){return da.call(b,c,d)},noop:z,error:function(b,c){throw new (c||Error)(b);},oneObject:O,range:function(b,c,d){d||(d=1);null==c&&(c=b||0,b=0);var e=-1;c=Math.max(0,Math.ceil((c-b)/d));for(var f=Array(c);++e<c;)f[e]=b,b+=d;return f},eventHooks:{},bind:function(b,c,d,e){var f=avalon.eventHooks[c];"object"===
33
- typeof f&&(c=f.type,f.deel&&(d=f.deel(b,d)));b.addEventListener(c,d,!!e);return d},unbind:function(b,c,d,e){var f=avalon.eventHooks[c];d=d||z;"object"===typeof f&&(c=f.type);b.removeEventListener(c,d,!!e)},css:function(b,c,d){b instanceof avalon&&(b=b[0]);var e=/[_-]/.test(c)?ga(c):c;c=avalon.cssName(e)||e;if(void 0===d||"boolean"===typeof d)return e=w[e+":get"]||w["@:get"],"background"===c&&(c="backgroundColor"),b=e(b,c),!0===d?parseFloat(b)||0:b;""===d?b.style[c]="":null==d||d!==d||(isFinite(d)&&
34
- !avalon.cssNumber[e]&&(d+="px"),e=w[e+":set"]||w["@:set"],e(b,c,d))},each:function(b,c){if(b){var d=0,e;a:{if(b&&"object"===typeof b){e=b.length;var f=$.call(b);if(/(Array|List|Collection|Map|Arguments)\]$/.test(f)){e=!0;break a}else if("[object Object]"===f&&e===e>>>0){e=!0;break a}}e=!1}if(e)for(e=b.length;d<e&&!1!==c(d,b[d]);d++);else for(d in b)if(b.hasOwnProperty(d)&&c(d,!1===b[d]))break}},getWidgetData:function(b,c){var d=avalon(b).data(),e={},f;for(f in d)0===f.indexOf(c)&&(e[f.replace(c,"").replace(/\w/,
35
- function(b){return b.toLowerCase()})]=d[f]);return e},Array:{ensure:function(b,c){if(-1===b.indexOf(c))return b.push(c)},removeAt:function(b,c){return!!b.splice(c,1).length},remove:function(b,c){var d=b.indexOf(c);return~d?avalon.Array.removeAt(b,d):!1}}});var v=avalon.bindingHandlers={},C=avalon.bindingExecutors={};avalon.nextTick=t.setImmediate?setImmediate.bind(t):function(b){setTimeout(b,0)};B.contains||(Node.prototype.contains=function(b){return!!(this.compareDocumentPosition(b)&16)});avalon.contains=
36
- function(b,c){try{for(;c=c.parentNode;)if(c===b)return!0;return!1}catch(d){return!1}};if(t.SVGElement){var rb=p.createElementNS("http://www.w3.org/2000/svg","svg");rb.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />';if(!pb.test(rb.firstChild)){var Ca=function(b,c){if(b&&b.childNodes)for(var d=b.childNodes,e=0,f;f=d[e++];)if(f.tagName){var g=p.createElementNS("http://www.w3.org/2000/svg",f.tagName.toLowerCase());N.forEach.call(f.attributes,function(b){g.setAttribute(b.name,b.value)});Ca(f,
37
- g);c.appendChild(g)}};Object.defineProperties(SVGElement.prototype,{outerHTML:{enumerable:!0,configurable:!0,get:function(){return(new XMLSerializer).serializeToString(this)},set:function(b){var c=this.tagName.toLowerCase(),d=this.parentNode;b=avalon.parseHTML(b);"svg"===c?d.insertBefore(b,this):(c=p.createDocumentFragment(),Ca(b,c),d.insertBefore(c,this));d.removeChild(this)}},innerHTML:{enumerable:!0,configurable:!0,get:function(){var b=RegExp("</"+this.nodeName+">$","i");return this.outerHTML.replace(RegExp("<"+
38
- this.nodeName+'\\b(?:(["\'])[^"]*?(\\1)|[^>])*>',"i"),"").replace(b,"")},set:function(b){avalon.clearHTML&&(avalon.clearHTML(this),b=avalon.parseHTML(b),Ca(b,this))}}})}}var ka=avalon.eventHooks;"onmouseenter"in B||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(b,c){ka[b]={type:c,deel:function(c,e){return function(f){var g=f.relatedTarget;if(!g||g!==c&&!(c.compareDocumentPosition(g)&16))return delete f.type,f.type=b,e.call(c,f)}}}});avalon.each({AnimationEvent:"animationend",
39
- WebKitAnimationEvent:"webkitAnimationEnd"},function(b,c){t[b]&&!ka.animationend&&(ka.animationend={type:c})});void 0===p.onmousewheel&&(ka.mousewheel={type:"wheel",deel:function(b,c){return function(d){d.wheelDeltaY=d.wheelDelta=0<d.deltaY?-120:120;d.wheelDeltaX=0;Object.defineProperty(d,"type",{value:"mousewheel"});c.call(b,d)}}});var A,L,W,sb,bb,tb=/[-.*+?^${}()|[\]\/\\]/g,D=z,aa={loader:function(b){t.define=b?D.define:jc;t.require=b?D:ic},interpolate:function(b){A=b[0];L=b[1];if(A===L)throw new SyntaxError("openTag!==closeTag");
40
- if("\x3c!--,--\x3e"===b+"")q.commentInterpolate=!0;else{b=A+"test"+L;ja.innerHTML=b;if(ja.innerHTML!==b&&-1<ja.innerHTML.indexOf("&lt;"))throw new SyntaxError("\u6b64\u5b9a\u754c\u7b26\u4e0d\u5408\u6cd5");ja.innerHTML=""}b=(A+"").replace(tb,"\\$&");var c=(L+"").replace(tb,"\\$&");W=RegExp(b+"(.*?)"+c);sb=RegExp(b+"(.*?)"+c,"g");bb=RegExp(b+".*?"+c+"|\\sms-")}};q.debug=!0;q.plugins=aa;q.plugins.interpolate(["{{","}}"]);q.paths={};q.shim={};q.maxRepeatSize=100;avalon.config=q;var H={$watch:function(b,
41
- c){if("function"===typeof c){var d=this.$events[b];d?d.push(c):this.$events[b]=[c]}else this.$events=this.$watch.backup;return this},$unwatch:function(b,c){var d=arguments.length;if(0===d)this.$watch.backup=this.$events,this.$events={};else if(1===d)this.$events[b]=[];else for(var d=this.$events[b]||[],e=d.length;0>~--e;)if(d[e]===c)return d.splice(e,1);return this},$fire:function(b){var c;/^(\w+)!(\S+)$/.test(b)&&(c=RegExp.$1,b=RegExp.$2);var d=this.$events,e=da.call(arguments,1),f=[b].concat(e);
42
- if("all"===c)for(var g in avalon.vmodels){var h=avalon.vmodels[g];h!==this&&h.$fire.apply(h,f)}else if("up"===c||"down"===c){var k=d.expr?p.querySelectorAll(d.expr):[];if(0!==k.length){for(g in avalon.vmodels)h=avalon.vmodels[g],h!==this&&h.$events.expr&&(e=p.querySelectorAll(h.$events.expr),0!==e.length&&Array.prototype.forEach.call(e,function(b){Array.prototype.forEach.call(k,function(d){if("down"===c?d.contains(b):b.contains(d))b._avalon=h})}));g=p.getElementsByTagName("*");var l=[];Array.prototype.forEach.call(g,
43
- function(b){b._avalon&&(l.push(b._avalon),b._avalon="",b.removeAttribute("_avalon"))});"up"===c&&l.reverse();for(g=0;(e=l[g++])&&!1!==e.$fire.apply(e,f););}}else{f=d[b]||[];d=d.$all||[];g=0;for(var m;m=f[g++];)P(m)&&m.apply(this,e);for(g=0;m=d[g++];)P(m)&&m.apply(this,arguments)}}},ub=avalon.vmodels={};avalon.define=function(b,c){var d=b.$id||b;d||x("warning: vm\u5fc5\u987b\u6307\u5b9a$id");ub[d]&&x("warning: "+d+" \u5df2\u7ecf\u5b58\u5728\u4e8eavalon.vmodels\u4e2d");if("object"===typeof b)var e=
44
- G(b);else e={$watch:z},c(e),e=G(e),na=!0,c(e),na=!1;e.$id=d;return ub[d]=e};var Ma="$id,$watch,$unwatch,$fire,$events,$model,$skipArray".match(y),ma={},lc=Object.defineProperty,Pa=!0;try{lc({},"_",{value:"x"});var Eb=Object.defineProperties}catch(Fc){Pa=!1}var Na=Object.is||function(b,c){return 0===b&&0===c?1/b===1/c:b!==b?c!==c:b===c},Fb=Q?function(b){var c={},d;for(d in b)c[d]={get:b[d],set:b[d],enumerable:!0,configurable:!0};return c}:function(b){return b},pa=N.splice,Qa={_splice:pa,_fire:function(b,
45
- c,d){ca(this.$events[I],b,c,d)},size:function(){return this._.length},pushArray:function(b){var c=b.length,d=this.length;c&&(N.push.apply(this.$model,b),R.call(this,"add",d,c,d));return c+d},push:function(){var b,c=arguments.length;for(b=0;b<c;b++);return this.pushArray(arguments)},unshift:function(){var b=arguments.length,c=this.length;b&&(N.unshift.apply(this.$model,arguments),R.call(this,"add",0,b,0));return b+c},shift:function(){if(this.length){var b=this.$model.shift();R.call(this,"del",0,1,
46
- 0);return b}},pop:function(){var b=this.length;if(b){var c=this.$model.pop();R.call(this,"del",b-1,1,Math.max(0,b-2));return c}},splice:function(b){var c=arguments.length,d=[],e,f=pa.apply(this.$model,arguments);f.length&&(d.push("del",b,f.length,0),e=!0);2<c&&(e?d.splice(3,1,0,"add",b,c-2):d.push("add",b,c-2,0),e=!0);return e?R.apply(this,d):[]},contains:function(b){return-1!==this.indexOf(b)},remove:function(b){return this.removeAt(this.indexOf(b))},removeAt:function(b){return 0<=b?(this.$model.splice(b,
47
- 1),R.call(this,"del",b,1,0)):[]},clear:function(){this.$model.length=this.length=this._.length=0;this._fire("clear",0);return this},removeAll:function(b){if(Array.isArray(b))b.forEach(function(b){this.remove(b)},this);else if("function"===typeof b)for(var c=this.length-1;0<=c;c--)b(this[c],c)&&this.removeAt(c);else this.clear()},ensure:function(b){this.contains(b)||this.push(b);return this},set:function(b,c){if(0<=b){var d=avalon.type(c);c&&c.$model&&(c=c.$model);var e=this[b];if("object"===d)for(var f in c)e.hasOwnProperty(f)&&
48
- (e[f]=c[f]);else"array"===d?e.clear().push.apply(e,c):e!==c&&(this[b]=c,this.$model[b]=c,this._fire("set",b,c))}return this}};"sort,reverse".replace(y,function(b){Qa[b]=function(){var c=this.$model,d=c.concat(),e=Math.random(),f=[],g;N[b].apply(c,arguments);for(var h=0,k=d.length;h<k;h++){var l=c[h];Na(l,d[h])?f.push(h):(g=d.indexOf(l),f.push(g),d[g]=e,g=!0)}g&&(qa(this,f),this._fire("move",f),this._fire("index",0));return this}});var Gb=/^(duplex|on)$/,M=avalon.$$subscribers=[],Ua=new Date,Ta={},
49
- la=new function(){avalon.mix(this,{option:p.createElement("select"),thead:p.createElement("table"),td:p.createElement("tr"),area:p.createElement("map"),tr:p.createElement("tbody"),col:p.createElement("colgroup"),legend:p.createElement("fieldset"),_default:p.createElement("div"),g:p.createElementNS("http://www.w3.org/2000/svg","svg")});this.optgroup=this.option;this.tbody=this.tfoot=this.colgroup=this.caption=this.thead;this.th=this.td};"circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use".replace(y,
50
- function(b){la[b]=la.g});var mc=/<([\w:]+)/,nc=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,oc=O(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),pc=p.createElement("script");avalon.parseHTML=function(b){if("string"!==typeof b)return p.createDocumentFragment();b=b.replace(nc,"<$1></$2>").trim();var c=(mc.exec(b)||["",""])[1].toLowerCase(),c=la[c]||la._default,d=S.cloneNode(!1);c.innerHTML=b;b=c.getElementsByTagName("script");
51
- if(b.length)for(var e=0,f;f=b[e++];)if(oc[f.type]){var g=pc.cloneNode(!1);N.forEach.call(f.attributes,function(b){g.setAttribute(b.name,b.value)});g.text=f.text;f.parentNode.replaceChild(g,f)}for(;b=c.firstChild;)d.appendChild(b);return d};avalon.innerHTML=function(b,c){var d=this.parseHTML(c);this.clearHTML(b).appendChild(d)};avalon.clearHTML=function(b){for(b.textContent="";b.firstChild;)b.removeChild(b.firstChild);return b};avalon.scan=function(b,c,d){b=b||B;c=c?[].concat(c):[];Wa(b,c)};var Pb=
52
- O("AREA,BASE,BASEFONT,BR,COL,COMMAND,EMBED,HR,IMG,INPUT,LINK,META,PARAM,SOURCE,TRACK,WBR,NOSCRIPT,SCRIPT,STYLE,TEXTAREA"),ba=function(b,c,d){if(b=b.getAttribute(c)){c=0;for(var e;e=d[c++];)if(e.hasOwnProperty(b)&&"function"===typeof e[b])return e[b]}},cb=wa&&t.MutationObserver?function(b){for(var c=b.firstChild,d;c;){var e=c.nextSibling;3===c.nodeType?d?(d.nodeValue+=c.nodeValue,b.removeChild(c)):d=c:d=null;c=e}}:0,Kb=/ms-(\w+)-?(.*)/,$a={"if":10,repeat:90,data:100,widget:110,each:1400,"with":1500,
53
- duplex:2E3,on:3E3},Lb=O("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),Mb=O("value,title,alt,checked,selected,disabled,readonly,enabled"),Nb=/^if|widget|repeat$/,Ob=/^each|with|html|include$/,ab=/\|\s*html\s*/,Qb=/\|\|/g;"add,remove".replace(y,function(b){avalon.fn[b+"Class"]=function(c){var d=this[0];c&&("string"===typeof c&&d&&1===d.nodeType)&&c.replace(/\S+/g,function(c){d.classList[b](c)});
54
- return this}});avalon.fn.mix({hasClass:function(b){var c=this[0]||{};return 1===c.nodeType&&c.classList.contains(b)},toggleClass:function(b,c){for(var d,e=0,f=b.split(/\s+/),g="boolean"===typeof c;d=f[e++];)this[(g?c:!this.hasClass(d))?"addClass":"removeClass"](d);return this},attr:function(b,c){return 2===arguments.length?(this[0].setAttribute(b,c),this):this[0].getAttribute(b)},data:function(b,c){b="data-"+db(b||"");switch(arguments.length){case 2:return this.attr(b,c),this;case 1:var d=this.attr(b);
55
- return ha(d);case 0:var e={};N.forEach.call(this[0].attributes,function(c){c&&(b=c.name,b.indexOf("data-")||(b=ga(b.slice(5)),e[b]=ha(c.value)))});return e}},removeData:function(b){b="data-"+db(b);this[0].removeAttribute(b);return this},css:function(b,c){if(avalon.isPlainObject(b))for(var d in b)avalon.css(this,d,b[d]);else var e=avalon.css(this,b,c);return void 0!==e?e:this},position:function(){var b,c,d=this[0],e={top:0,left:0};if(d)return"fixed"===this.css("position")?c=d.getBoundingClientRect():
56
- (b=this.offsetParent(),c=this.offset(),"HTML"!==b[0].tagName&&(e=b.offset()),e.top+=avalon.css(b[0],"borderTopWidth",!0),e.left+=avalon.css(b[0],"borderLeftWidth",!0)),{top:c.top-e.top-avalon.css(d,"marginTop",!0),left:c.left-e.left-avalon.css(d,"marginLeft",!0)}},offsetParent:function(){for(var b=this[0].offsetParent;b&&"static"===avalon.css(b,"position");)b=b.offsetParent;return avalon(b)},bind:function(b,c,d){if(this[0])return avalon.bind(this[0],b,c,d)},unbind:function(b,c,d){this[0]&&avalon.unbind(this[0],
57
- b,c,d);return this},val:function(b){var c=this[0];if(c&&1===c.nodeType){var d=0===arguments.length,e=d?":get":":set",f=qc,g;g=c.tagName.toLowerCase();g="input"===g&&/checkbox|radio/.test(c.type)?"checked":g;if(e=f[g+e])var h=e(c,b);else{if(d)return(c.value||"").replace(/\r/g,"");c.value=b}}return d?h:this}});B.dataset&&(avalon.fn.data=function(b,c){var d=this[0].dataset;switch(arguments.length){case 2:return d[b]=c,this;case 1:return c=d[b],ha(c);case 0:var e={};for(b in d)e[b]=ha(d[b]);return e}});
58
- var Rb=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/;avalon.parseJSON=JSON.parse;avalon.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){avalon.fn[b]=function(d){var e=this[0]||{},f=e.window&&e.document?e:9===e.nodeType?e.defaultView:!1,g="scrollTop"===b;if(arguments.length)f?f.scrollTo(!g?d:avalon(f).scrollLeft(),g?d:avalon(f).scrollTop()):e[b]=d;else return f?f[c]:e[b]}});var w=avalon.cssHooks={},vb=["","-webkit-","-moz-","-ms-"],Da={"float":"cssFloat"};avalon.cssNumber=O("columnCount,order,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom");
59
- avalon.cssName=function(b,c,d){if(Da[b])return Da[b];c=c||B.style;for(var e=0,f=vb.length;e<f;e++)if(d=ga(vb[e]+b),d in c)return Da[b]=d;return null};w["@:set"]=function(b,c,d){b.style[c]=d};w["@:get"]=function(b,c){if(!b||!b.style)throw Error("getComputedStyle\u8981\u6c42\u4f20\u5165\u4e00\u4e2a\u8282\u70b9 "+b);var d,e=getComputedStyle(b,null);e&&(d="filter"===c?e.getPropertyValue(c):e[c],""===d&&(d=b.style[c]));return d};w["opacity:get"]=function(b){b=w["@:get"](b,"opacity");return""===b?"1":b};
60
- "top,left".replace(y,function(b){w[b+":get"]=function(c){var d=w["@:get"](c,b);return/px$/.test(d)?d:avalon(c).position()[b]+"px"}});var fb={position:"absolute",visibility:"hidden",display:"block"},Sb=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(y,function(b){var c=b.toLowerCase(),d="client"+b,e="scroll"+b,f="offset"+b;w[c+":get"]=function(c,d,e){var l=-4;"number"===typeof e&&(l=e);d="Width"===b?["Left","Right"]:["Top","Bottom"];e=c[f];if(2===l)return e+avalon.css(c,"margin"+d[0],!0)+avalon.css(c,
61
- "margin"+d[1],!0);0>l&&(e=e-avalon.css(c,"border"+d[0]+"Width",!0)-avalon.css(c,"border"+d[1]+"Width",!0));-4===l&&(e=e-avalon.css(c,"padding"+d[0],!0)-avalon.css(c,"padding"+d[1],!0));return e};w[c+"&get"]=function(b){var d=[];eb(b,d);for(var e=w[c+":get"](b),f=0,m;m=d[f++];){b=m.node;for(var n in m)"string"===typeof m[n]&&(b.style[n]=m[n])}return e};avalon.fn[c]=function(g){var h=this[0];if(0===arguments.length){if(h.setTimeout)return h["inner"+b];if(9===h.nodeType){var k=h.documentElement;return Math.max(h.body[e],
62
- k[e],h.body[f],k[f],k[d])}return w[c+"&get"](h)}return this.css(c,g)};avalon.fn["inner"+b]=function(){return w[c+":get"](this[0],void 0,-2)};avalon.fn["outer"+b]=function(b){return w[c+":get"](this[0],void 0,!0===b?2:0)}});avalon.fn.offset=function(){var b=this[0],c={left:0,top:0};if(!b||!b.tagName||!b.ownerDocument)return c;var d=b.ownerDocument,e=d.documentElement,d=d.defaultView;if(!e.contains(b))return c;void 0!==b.getBoundingClientRect&&(c=b.getBoundingClientRect());return{top:c.top+d.pageYOffset-
63
- e.clientTop,left:c.left+d.pageXOffset-e.clientLeft}};var qc={"select:get":function(b,c){for(var d,e=b.options,f=b.selectedIndex,g="select-one"===b.type||0>f,h=g?null:[],k=g?f+1:e.length,l=0>f?k:g?f:0;l<k;l++)if(d=e[l],(d.selected||l===f)&&!d.disabled){c=d.value;if(g)return c;h.push(c)}return h},"select:set":function(b,c,d){c=[].concat(c);for(var e=0,f;f=b.options[e++];)if(f.selected=-1<c.indexOf(f.value))d=!0;d||(b.selectedIndex=-1)}},hb=JSON.stringify,rc=/\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g,
64
- sc=/[^\w$]+/g,tc=RegExp(""+("\\b"+"break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined".replace(/,/g,"\\b|\\b")+"\\b"),"g"),uc=/\b\d[^,]*/g,
65
- vc=/^,+|,+$/g,Ea=Ka(512),ac=function(b){var c=","+b.trim();if(Ea[c])return Ea[c];b=b.replace(rc,"").replace(sc,",").replace(tc,"").replace(uc,"").replace(vc,"").split(/^$|,+/);return Ea(c,gb(b))},xa=Ka(128),bc=/\w\[.*\]|\w\.\w/,$b=/(\$proxy\$[a-z]+)\d+$/,Vb=/\)\s*$/,Wb=/\)\s*\|/g,Xb=/\|\s*([$\w]+)/g,Yb=/"\s*\["/g,Zb=/"\s*\(/g;avalon.parseExprProxy=K;var Fa={};"autofocus,autoplay,async,allowTransparency,checked,controls,declare,disabled,defer,defaultChecked,defaultSelectedcontentEditable,isMap,loop,multiple,noHref,noResize,noShade,open,readOnly,selected".replace(y,
66
- function(b){Fa[b.toLowerCase()]=b});var Ga={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"};"accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan,dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight,rowSpan,tabIndex,useMap,vSpace,valueType,vAlign".replace(y,function(b){Ga[b.toLowerCase()]=b});var wc=/<noscript.*?>(?:[\s\S]+?)<\/noscript>/img,xc=/<noscript.*?>([\s\S]+?)<\/noscript>/im,
67
- Ha=function(){return new (t.XMLHttpRequest||ActiveXObject)("Microsoft.XMLHTTP")},Ia=avalon.templateCache={};v.attr=function(b,c){var d=b.value.trim(),e=!0;-1<d.indexOf(A)&&2<d.indexOf(L)&&(e=!1,W.test(d)&&(""===RegExp.rightContext&&""===RegExp.leftContext)&&(e=!0,d=RegExp.$1));if("include"===b.type){var f=b.element;b.includeRendered=ba(f,"data-include-rendered",c);b.includeLoaded=ba(f,"data-include-loaded",c);var g=b.includeReplaced=!!avalon(f).data("includeReplace");b.startInclude=p.createComment("ms-include");
68
- b.endInclude=p.createComment("ms-include-end");g?(b.element=b.startInclude,f.parentNode.insertBefore(b.startInclude,f),f.parentNode.insertBefore(b.endInclude,f.nextSibling)):(f.insertBefore(b.startInclude,f.firstChild),f.appendChild(b.endInclude))}b.handlerName="attr";K(d,c,b,e?0:va(b.value))};C.attr=function(b,c,d){var e=d.type,f=d.param;if("css"===e)avalon(c).css(f,b);else if("attr"===e){if(Fa[f]&&(e=Fa[f],"boolean"===typeof c[e]))return c[e]=!!b;!Q&&Ga[f]&&(f=Ga[f]);if(!1===b||null===b||void 0===
69
- b)return c.removeAttribute(f);(pb.test(c)?0:p.namespaces&&isVML(c)||f in c.cloneNode(!1))?c[f]=b:c.setAttribute(f,b)}else if("include"===e&&b){var g=d.vmodels,h=d.includeRendered,k=d.includeLoaded,l=d.includeReplaced?c.parentNode:c,m=function(b){k&&(b=k.apply(l,[b].concat(g)));for(h&&ea(l,function(){h.call(l)},NaN);;){var c=d.startInclude.nextSibling;if(c&&c!==d.endInclude)l.removeChild(c);else break}b=avalon.parseHTML(b);c=avalon.slice(b.childNodes);l.insertBefore(b,d.endInclude);fa(c,g)};if("src"===
70
- d.param)if(Ia[b])avalon.nextTick(function(){m(Ia[b])});else{var n=Ha();n.onreadystatechange=function(){if(4===n.readyState){var c=n.status;if(200<=c&&300>c||304===c||1223===c)m(Ia[b]=n.responseText)}};n.open("GET",b,!0);"withCredentials"in n&&(n.withCredentials=!0);n.setRequestHeader("X-Requested-With","XMLHttpRequest");n.send(null)}else{var r=b&&1===b.nodeType?b:p.getElementById(b);if(r){if("NOSCRIPT"===r.tagName&&!r.innerHTML&&!r.fixIE78){n=Ha();n.open("GET",location,!1);n.send(null);c=p.getElementsByTagName("noscript");
71
- for(var f=(n.responseText||"").match(wc)||[],e=f.length,s=0;s<e;s++){var q=c[s];q&&(q.style.display="none",q.fixIE78=(f[s].match(xc)||["","&nbsp;"])[1])}}avalon.nextTick(function(){m(r.fixIE78||r.value||r.innerText||r.innerHTML)})}}}else{if(!B.hasAttribute&&"string"===typeof b&&("src"===e||"href"===e))b=b.replace(/&amp;/g,"&");c[e]=b;t.chrome&&"EMBED"===c.tagName&&(f=c.parentNode,e=document.createComment("ms-src"),f.replaceChild(e,c),f.replaceChild(c,e))}};"title,alt,src,value,css,include,href".replace(y,
72
- function(b){v[b]=v.attr});v["class"]=function(b,c){var d=b.param,e=b.value;b.handlerName="class";if(!d||isFinite(d)){b.param="";var f=e.replace(sb,function(b){return b.replace(/./g,"0")}).indexOf(":");if(-1===f)d=e;else if(d=e.slice(0,f),e=e.slice(f+1),ib(e,c,b),b.evaluator)b._evaluator=b.evaluator,b._args=b.args;else return x("debug: ms-class '"+(e||"").trim()+"' \u4e0d\u5b58\u5728\u4e8eVM\u4e2d"),!1;e=W.test(d);e||(b.immobileClass=d);K("",c,b,e?va(d):0)}else b.immobileClass=b.oldStyle=b.param,K(e,
73
- c,b)};C["class"]=function(b,c,d){var e=avalon(c),f=d.type;if("class"===f&&d.oldStyle)e.toggleClass(d.oldStyle,!!b);else switch(d.toggleClass=d._evaluator?!!d._evaluator.apply(c,d._args):!0,d.newClass=d.immobileClass||b,d.oldClass&&d.newClass!==d.oldClass&&e.removeClass(d.oldClass),d.oldClass=d.newClass,f){case "class":e.toggleClass(d.newClass,d.toggleClass);break;case "hover":case "active":if(!d.hasBindEvent){var g="mouseenter",h="mouseleave";if("active"===f){c.tabIndex=c.tabIndex||-1;var g="mousedown",
74
- h="mouseup",k=e.bind("mouseleave",function(){d.toggleClass&&e.removeClass(d.newClass)})}var l=e.bind(g,function(){d.toggleClass&&e.addClass(d.newClass)}),m=e.bind(h,function(){d.toggleClass&&e.removeClass(d.newClass)});d.rollback=function(){e.unbind("mouseleave",k);e.unbind(g,l);e.unbind(h,m)};d.hasBindEvent=!0}}};"hover,active".replace(y,function(b){v[b]=v["class"]});C.data=function(b,c,d){d="data-"+d.param;b&&"object"===typeof b?c[d]=b:c.setAttribute(d,String(b))};C.text=function(b,c){b=null==b?
75
- "":b;if(3===c.nodeType)try{c.data=b}catch(d){}else c.textContent=b};C.html=function(b,c,d){b=null==b?"":b;var e="group"in d,f=e?c.parentNode:c;if(f){if(11!==b.nodeType)if(1===b.nodeType||b.item){var g=1===b.nodeType?b.childNodes:b.item?b:[];for(b=S.cloneNode(!0);g[0];)b.appendChild(g[0])}else b=avalon.parseHTML(b);var h=p.createComment("ms-html");if(e){f.insertBefore(h,c);for(var g=d.group,k=1;k<g;){var l=c.nextSibling;l&&(f.removeChild(l),k++)}f.removeChild(c);d.element=h}else avalon.clearHTML(f).appendChild(h);
76
- e&&(d.group=b.childNodes.length||1);g=avalon.slice(b.childNodes);g[0]&&(h.parentNode&&h.parentNode.replaceChild(b,h),e&&(d.element=g[0]));fa(g,d.vmodels)}};v["if"]=v.data=v.text=v.html=function(b,c){K(b.value,c,b)};C["if"]=function(b,c,d){b?(8===c.nodeType&&(c.parentNode.replaceChild(d.template,c),c=d.element=d.template),c.getAttribute(d.name)&&(c.removeAttribute(d.name),Xa(c,d.vmodels)),d.rollback=null):1===c.nodeType&&(b=d.element=p.createComment("ms-if"),c.parentNode.replaceChild(b,c),d.template=
77
- c,Aa.appendChild(c),d.rollback=function(){c.parentNode===Aa&&Aa.removeChild(c)})};avalon.parseDisplay=X;v.visible=function(b,c){var d=avalon(b.element),e=d.css("display");if("none"===e){var f=d[0].style,g=/visibility/i.test(f.cssText),h=d.css("visibility");f.display="";f.visibility="hidden";e=d.css("display");"none"===e&&(e=X(d[0].nodeName));f.visibility=g?h:""}b.display=e;K(b.value,c,b)};C.visible=function(b,c,d){c.style.display=b?d.display:"none"};var wb=/\(([^)]*)\)/;v.on=function(b,c){var d=b.value;
78
- b.type="on";var e=b.param.replace(/-\d+$/,"");if("function"===typeof v.on[e+"Hook"])v.on[e+"Hook"](b);if(0<d.indexOf("(")&&-1<d.indexOf(")")&&(e=(d.match(wb)||["",""])[1].trim(),""===e||"$event"===e))d=d.replace(wb,"");K(d,c,b)};C.on=function(b,c,d){b=function(b){return(d.evaluator||z).apply(this,d.args.concat(b))};var e=d.param.replace(/-\d+$/,"");if("scan"===e)b.call(c,{type:e});else if("function"===typeof d.specialBind)d.specialBind(c,b);else var f=avalon.bind(c,e,b);d.rollback=function(){"function"===
79
- typeof d.specialUnbind?d.specialUnbind():avalon.unbind(c,e,f)}};v.widget=function(b,c){var d=b.value.match(y),e=b.element,f=d[0],g=d[1];if(!g||"$"===g)g=J(f);var d=d[2]||f,h=avalon.ui[f];if("function"===typeof h){c=e.vmodels||c;for(var k=0,l;l=c[k++];)if(l.hasOwnProperty(d)&&"object"===typeof l[d]){var m=l[d],m=m.$model||m;break}m&&(k=m[f+"Id"],"string"===typeof k&&(g=k));k=avalon.getWidgetData(e,f);b.value=[f,g,d].join();b[f+"Id"]=g;b.evaluator=z;e.msData["ms-widget-id"]=g;var n=b[f+"Options"]=avalon.mix({},
80
- h.defaults,m||{},k);e.removeAttribute("ms-widget");var r=h(e,b,c)||{};r.$id?(avalon.vmodels[g]=r,Va(e,r),r.hasOwnProperty("$init")&&r.$init(function(){avalon.scan(e,[r].concat(c));"function"===typeof n.onInit&&n.onInit.call(e,r,n,c)}),b.rollback=function(){try{r.widgetElement=null,r.$remove()}catch(b){}e.msData={};delete avalon.vmodels[r.$id]},sa(b,yc),t.chrome&&e.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(Sa)})):avalon.scan(e,c)}else c.length&&(e.vmodels=c)};var yc=[],T=
81
- v.duplex=function(b,c){var d=b.element,e;K(b.value,c,b,0,1);b.changed=ba(d,"data-duplex-changed",c)||z;if(b.evaluator&&b.args){var f=[],g=O("string,number,boolean,checked");"radio"===d.type&&""===b.param&&(b.param="checked");d.msData&&(d.msData["ms-duplex"]=b.value);b.param.replace(/\w+/g,function(c){/^(checkbox|radio)$/.test(d.type)&&/^(radio|checked)$/.test(c)&&("radio"===c&&x("ms-duplex-radio\u5df2\u7ecf\u66f4\u540d\u4e3ams-duplex-checked"),c="checked",b.isChecked=!0);"bool"===c?(c="boolean",x("ms-duplex-bool\u5df2\u7ecf\u66f4\u540d\u4e3ams-duplex-boolean")):
82
- "text"===c&&(c="string",x("ms-duplex-text\u5df2\u7ecf\u66f4\u540d\u4e3ams-duplex-string"));g[c]&&(e=!0);avalon.Array.ensure(f,c)});e||f.push("string");b.param=f.join("-");b.bound=function(c,e){d.addEventListener?d.addEventListener(c,e,!1):d.attachEvent("on"+c,e);var f=b.rollback;b.rollback=function(){d.avalonSetter=null;avalon.unbind(d,c,e);f&&f()}};for(var h in avalon.vmodels)avalon.vmodels[h].$fire("avalon-ms-duplex-init",b);(b.pipe||(b.pipe=cc))(null,b,"init");h=d.tagName;T[h]&&T[h](d,b.evaluator.apply(null,
83
- b.args),b)}};avalon.duplexHooks={checked:{get:function(b,c){return!c.element.oldValue}},string:{get:function(b){return b},set:ya},"boolean":{get:function(b){return"true"===b},set:ya},number:{get:function(b){return isFinite(b)?parseFloat(b)||0:b},set:ya}};var jb,Y=[];avalon.tick=function(b){1===Y.push(b)&&(jb=setInterval(dc,60))};var xb=z;new function(){try{var b={},c=HTMLInputElement.prototype,d=HTMLTextAreaElement.prototype,e=function(c){avalon.contains(B,this)&&(b[this.tagName].call(this,c),this.avalonSetter&&
84
- this.avalonSetter())};Object.getOwnPropertyNames(HTMLInputElement.prototype);b.INPUT=Object.getOwnPropertyDescriptor(c,"value").set;Object.defineProperty(c,"value",{set:e});b.TEXTAREA=Object.getOwnPropertyDescriptor(d,"value").set;Object.defineProperty(d,"value",{set:e})}catch(f){xb=avalon.tick}};T.INPUT=function(b,c,d){function e(b){d.changed.call(this,b,d)}function f(){n=!0}function g(){n=!1}function h(){if(!n){var f=b.oldValue=b.value,f=d.pipe(f,d,"get");!1!==m.data("duplex-observe")&&(c(f),e.call(b,
85
- f),m.data("duplex-focus")&&avalon.nextTick(function(){b.focus()}))}}var k=b.type,l=d.bound,m=avalon(b),n=!1;d.handler=function(){var e=d.pipe(c(),d,"set")+"";e!==b.oldValue&&(b.value=e)};d.isChecked||"radio"===b.type?(h=function(){if(!1!==m.data("duplex-observe")){var f=d.pipe(b.value,d,"get");c(f);e.call(b,f)}},d.handler=function(){var e=c();b.checked=b.oldValue=d.isChecked?!!e:e+""===b.value},l("click",h)):"checkbox"===k?(h=function(){if(!1!==m.data("duplex-observe")){var f=b.checked?"ensure":"remove",
86
- g=c();Array.isArray(g)||(x("ms-duplex\u5e94\u7528\u4e8echeckbox\u4e0a\u8981\u5bf9\u5e94\u4e00\u4e2a\u6570\u7ec4"),g=[g]);avalon.Array[f](g,d.pipe(b.value,d,"get"));e.call(b,g)}},d.handler=function(){var e=[].concat(c());b.checked=-1<e.indexOf(d.pipe(b.value,d,"get"))},l("change",h)):(k=b.getAttribute("data-duplex-event")||b.getAttribute("data-event")||"input",b.attributes["data-event"]&&x("data-event\u6307\u4ee4\u5df2\u7ecf\u5e9f\u5f03\uff0c\u8bf7\u6539\u7528data-duplex-event"),k.replace(y,function(b){switch(b){case "input":l("input",
87
- h);l("DOMAutoComplete",h);wa||(l("compositionstart",f),l("compositionend",g));break;default:l(b,h)}}));/text|password/.test(b.type)&&xb(function(){if(B.contains(b))b.value!==b.oldValue&&h();else if(!b.msRetain)return!1});b.avalonSetter=h;b.oldValue=b.value;ra(d);e.call(b,b.value)};T.TEXTAREA=T.INPUT;T.SELECT=function(b,c,d){var e=avalon(b);d.handler=function(){var d=c(),d=d&&d.$model||d;Array.isArray(d)?b.multiple||x("ms-duplex\u5728<select multiple=true>\u4e0a\u8981\u6c42\u5bf9\u5e94\u4e00\u4e2a\u6570\u7ec4"):
88
- b.multiple&&x("ms-duplex\u5728<select multiple=false>\u4e0d\u80fd\u5bf9\u5e94\u4e00\u4e2a\u6570\u7ec4");d=Array.isArray(d)?d.map(String):d+"";d+""!==b.oldValue&&(e.val(d),b.oldValue=d+"")};d.bound("change",function(){if(!1!==e.data("duplex-observe")){var f=e.val(),f=Array.isArray(f)?f.map(function(b){return d.pipe(b,d,"get")}):d.pipe(f,d,"get");f+""!==b.oldValue&&c(f);d.changed.call(b,f,d)}});ea(b,function(){ra(d);d.changed.call(b,c(),d)},NaN)};v.repeat=function(b,c){var d=b.type;K(b.value,c,b,0,
89
- 1);b.proxies=[];var e=!1;try{var f=b.$repeat=b.evaluator.apply(0,b.args||[]),g=avalon.type(f);"object"!==g&&"array"!==g&&(e=!0,avalon.log("warning:"+b.value+"\u5bf9\u5e94\u7c7b\u578b\u4e0d\u6b63\u786e"))}catch(h){e=!0,avalon.log("warning:"+b.value+"\u7f16\u8bd1\u51fa\u9519")}var k=b.value.split(".")||[];if(1<k.length){k.pop();for(var l=k[0],k=0,m;m=c[k++];)if(m&&m.hasOwnProperty(l)){k=m[l].$events||{};k[I]=k[I]||[];k[I].push(b);break}}k=b.element;k.removeAttribute(b.name);b.sortedCallback=ba(k,"data-with-sorted",
90
- c);b.renderedCallback=ba(k,"data-"+d+"-rendered",c);l=J(d);m=b.element=p.createComment(l+":end");b.clone=p.createComment(l);S.appendChild(m);"each"===d||"with"===d?(b.template=k.innerHTML.trim(),avalon.clearHTML(k).appendChild(m)):(b.template=k.outerHTML.trim(),k.parentNode.replaceChild(m,k));b.template=avalon.parseHTML(b.template);b.rollback=function(){var c=b.element;if(c){C.repeat.call(b,"clear");var d=c.parentNode,e=b.template,f=e.firstChild;d.replaceChild(e,c);(c=b.$stamp)&&c.parentNode&&c.parentNode.removeChild(c);
91
- b.element="repeat"===b.type?f:d}};if(!e){b.handler=C.repeat;b.$outer={};d="$key";e="$val";Array.isArray(f)&&(d="$first",e="$last");for(k=0;l=c[k++];)if(l.hasOwnProperty(d)&&l.hasOwnProperty(e)){b.$outer=l;break}d=f.$events;(e=(d||{})[I])&&avalon.Array.ensure(e,b)&&sa(b,e);"object"===g?(b.$with=!0,g=!d?{}:d.$withProxyPool||(d.$withProxyPool={}),b.handler("append",f,g)):f.length&&b.handler("add",0,f.length)}};C.repeat=function(b,c,d){if(b){var e=this.element,f=e.parentNode,g=this.proxies,h=S.cloneNode(!1);
92
- switch(b){case "add":for(var e=c+d,k=this.$repeat.length-1,k=[],l=lb(this,c),m=c;m<e;m++){var n=fc(m,this);g.splice(m,0,n);kb(this,h,n,k)}f.insertBefore(h,l);for(m=0;h=k[m++];)fa(h.nodes,h.vmodels),h.nodes=h.vmodels=null;break;case "del":l=g[c].$stamp;e=lb(this,c+d);za(l,e);h=g.splice(c,d);oa(h,"each");break;case "clear":if(h=this.$stamp||g[0])l=h.$stamp||h,za(l,e);oa(g,"each");break;case "move":var l=g[0].$stamp,r=l.nodeValue,s=[],p=[];za(l,e,function(){p.unshift(this);this.nodeValue===r&&(s.unshift(p),
93
- p=[])});qa(g,c);for(qa(s,c);p=s.shift();)for(;k=p.shift();)h.appendChild(k);f.insertBefore(h,e);break;case "index":for(k=g.length-1;d=g[c];c++)d.$index=c,d.$first=0===c,d.$last=c===k;return;case "set":(n=g[c])&&ca(n.$events.$index);return;case "append":g=d;l=[];k=[];for(n in c)c.hasOwnProperty(n)&&"hasOwnProperty"!==n&&l.push(n);this.sortedCallback&&(m=this.sortedCallback.call(f,l))&&(Array.isArray(m)&&m.length)&&(l=m);for(m=0;n=l[m++];)"hasOwnProperty"!==n&&(g[n]||(g[n]=hc(n,this)),kb(this,h,g[n],
94
- k));m=this.$stamp=this.clone;f.insertBefore(m,e);f.insertBefore(h,e);for(m=0;h=k[m++];)fa(h.nodes,h.vmodels),h.nodes=h.vmodels=null}"clear"===b&&(b="del");var q=this.renderedCallback||z,t=arguments;ea(f,function(){q.apply(f,t);f.oldValue&&"SELECT"===f.tagName&&avalon(f).val(f.oldValue.split(","))},NaN)}};"with,each".replace(y,function(b){v[b]=v.repeat});var ia=[],mb=[],zc=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,Ac=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,Bc=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/ig,
95
- Cc={a:/\b(href)\=("javascript[^"]*"|'javascript[^']*')/ig,img:/\b(src)\=("javascript[^"]*"|'javascript[^']*')/ig,form:/\b(action)\=("javascript[^"]*"|'javascript[^']*')/ig},Dc=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ec=/([^\#-~| |!])/g,Ja=avalon.filters={uppercase:function(b){return b.toUpperCase()},lowercase:function(b){return b.toLowerCase()},truncate:function(b,c,d){c=c||30;d=void 0===d?"...":d;return b.length>c?b.slice(0,c-d.length)+d:String(b)},$filter:function(b){for(var c=1,d=arguments.length;c<
96
- d;c++){var e=arguments[c],f=avalon.filters[e.shift()];"function"===typeof f&&(e=[b].concat(e),b=f.apply(null,e))}return b},camelize:ga,sanitize:function(b){return b.replace(zc,"").replace(Bc,function(b,d){var e=b.toLowerCase().match(/<(\w+)\s/);e&&(e=Cc[e[1]])&&(b=b.replace(e,function(b,c,d){b=d.charAt(0);return c+"="+b+"javascript:void(0)"+b}));return b.replace(Ac," ").replace(/\s+/g," ")})},escape:function(b){return String(b).replace(/&/g,"&amp;").replace(Dc,function(b){var d=b.charCodeAt(0);b=
97
- b.charCodeAt(1);return"&#"+(1024*(d-55296)+(b-56320)+65536)+";"}).replace(Ec,function(b){return"&#"+b.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")},currency:function(b,c,d){return(c||"\uffe5")+nb(b,isFinite(d)?d:2)},number:function(b,c){return nb(b,isFinite(c)?c:3)}};new function(){function b(b,c,d){var e="";0>b&&(e="-",b=-b);for(b=""+b;b.length<c;)b="0"+b;d&&(b=b.substr(b.length-c));return e+b}function c(c,d,e,f){return function(g){g=g["get"+c]();if(0<e||g>-e)g+=e;0===g&&-12===e&&
98
- (g=12);return b(g,d,f)}}function d(b,c){return function(d,e){var f=d["get"+b](),g=(c?"SHORT"+b:b).toUpperCase();return e[g][f]}}function e(b){var c;if(c=b.match(k)){b=new Date(0);var d=0,e=0,f=c[8]?b.setUTCFullYear:b.setFullYear,g=c[8]?b.setUTCHours:b.setHours;c[9]&&(d=parseInt(c[9]+c[10],10),e=parseInt(c[9]+c[11],10));f.call(b,parseInt(c[1],10),parseInt(c[2],10)-1,parseInt(c[3],10));d=parseInt(c[4]||0,10)-d;e=parseInt(c[5]||0,10)-e;f=parseInt(c[6]||0,10);c=Math.round(1E3*parseFloat("0."+(c[7]||0)));
99
- g.call(b,d,e,f,c)}return b}var f={yyyy:c("FullYear",4),yy:c("FullYear",2,0,!0),y:c("FullYear",1),MMMM:d("Month"),MMM:d("Month",!0),MM:c("Month",2,1),M:c("Month",1,1),dd:c("Date",2),d:c("Date",1),HH:c("Hours",2),H:c("Hours",1),hh:c("Hours",2,-12),h:c("Hours",1,-12),mm:c("Minutes",2),m:c("Minutes",1),ss:c("Seconds",2),s:c("Seconds",1),sss:c("Milliseconds",3),EEEE:d("Day"),EEE:d("Day",!0),a:function(b,c){return 12>b.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(c){c=-1*c.getTimezoneOffset();return c=
100
- (0<=c?"+":"")+(b(Math[0<c?"floor":"ceil"](c/60),2)+b(Math.abs(c%60),2))}},g=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,h=/^\d+$/,k=/^(\d{4})-?(\d+)-?(\d+)(?:T(\d+)(?::?(\d+)(?::?(\d+)(?:\.(\d+))?)?)?(Z|([+-])(\d+):?(\d+))?)?$/,l=/^(\d+)\D(\d+)\D(\d+)/;Ja.date=function(b,c){var d=Ja.date.locate,k="",m=[],p,q;c=c||"mediumDate";c=d[c]||c;"string"===typeof b&&(h.test(b)?b=parseInt(b,10):(b=b.trim().replace(l,function(b,c,d,e){return(4===e.length?[e,c,d]:[c,d,e]).join("-")}),
101
- b=e(b)),b=new Date(b));"number"===typeof b&&(b=new Date(b));if("date"===avalon.type(b)){for(;c;)(q=g.exec(c))?(m=m.concat(q.slice(1)),c=m.pop()):(m.push(c),c=null);m.forEach(function(c){p=f[c];k+=p?p(b,d):c.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return k}};var m={AMPMS:{"0":"\u4e0a\u5348",1:"\u4e0b\u5348"},DAY:{"0":"\u661f\u671f\u65e5",1:"\u661f\u671f\u4e00",2:"\u661f\u671f\u4e8c",3:"\u661f\u671f\u4e09",4:"\u661f\u671f\u56db",5:"\u661f\u671f\u4e94",6:"\u661f\u671f\u516d"},MONTH:{"0":"1\u6708",
102
- 1:"2\u6708",2:"3\u6708",3:"4\u6708",4:"5\u6708",5:"6\u6708",6:"7\u6708",7:"8\u6708",8:"9\u6708",9:"10\u6708",10:"11\u6708",11:"12\u6708"},SHORTDAY:{"0":"\u5468\u65e5",1:"\u5468\u4e00",2:"\u5468\u4e8c",3:"\u5468\u4e09",4:"\u5468\u56db",5:"\u5468\u4e94",6:"\u5468\u516d"},fullDate:"y\u5e74M\u6708d\u65e5EEEE",longDate:"y\u5e74M\u6708d\u65e5",medium:"yyyy-M-d H:mm:ss",mediumDate:"yyyy-M-d",mediumTime:"H:mm:ss","short":"yy-M-d ah:mm",shortDate:"yy-M-d",shortTime:"ah:mm"};m.SHORTMONTH=m.MONTH;Ja.date.locate=
103
- m};var u=avalon.modules={"ready!":{exports:avalon},avalon:{exports:avalon,state:2}};u.exports=u.avalon;new function(){function b(c,d){for(var e in c)if("\u53f8\u5f92\u6b63\u7f8e"===c[e]&&2!==u[e].state&&(e===d||b(u[e].deps,d)))return!0}function c(b,c,d){var f=e(b.src);b.onload=b.onreadystatechange=b.onerror=null;if(c||d&&!u[f].state)setTimeout(function(){E.removeChild(b);b=null}),x("debug: \u52a0\u8f7d "+f+" \u5931\u8d25"+c+" "+!u[f].state);else return!0}function d(){var b=w.length,c;a:for(;c=w[--b];){var e=
104
- u[c];c=e.deps;for(var f in c)if(La.call(c,f)&&2!==u[f].state)continue a;if(2!==e.state){w.splice(b,1);c=e.id;var g=e.args,e=e.factory,h=Object(u[c]);h.state=2;for(var k=0,l=[],m=void 0;m=g[k++];)"exports"===m?(m=h.exports||(h.exports={}),l.push(m)):l.push(u[m].exports);g=e.apply(t,l);void 0!==g&&(u[c].exports=g);d()}}}function e(b){return(b||"").replace(H,"")}function f(b){return b?b.substr(0,b.lastIndexOf("/")):q.baseUrl?q.baseUrl:q.loaderUrl}function g(b){var c;try{a.b.c()}catch(d){c=d.stack,!c&&
105
- t.opera&&(c=(String(d).match(/of linked script \S+/g)||[]).join(" "))}if(c)return c=c.split(/[@ ]/g).pop(),c="("===c[0]?c.slice(1,-1):c.replace(/\s/,""),c.replace(/(:\d+)?:\d+$/i,"");for(var e=(b?p:E).getElementsByTagName("script"),f=e.length;c=e[--f];)if((b||c.className===I)&&"interactive"===c.readyState)return b="1"[0]?c.src:c.getAttribute("src",4),c.className=b}function h(b,c,d){if("ready!"===b||u[b]&&2===u[b].state)return b;var e="js";b=b.replace(/^(\w+)\!/,function(b,c){e=c;return""});var g=
106
- aa[e]||z,h="",k=b.replace(H,function(b){h=b;return""}),l="";"js"===e&&(b=k=k.replace(/\.js$/i,""),l=".js");var m=0;r(k,q.paths,function(c,d){b=b.replace(d,c);m=1});m||r(k,q.packages,function(c,d,e){b=b.replace(e.name,e.location)});d&&r(d,q.map,function(c){r(b,c,function(c,d){b=b.replace(d,c)})});/^(?:[a-z]+:)?\/\//i.test(String(b))||(b=v(/\w/.test(b.charAt(0))?f():c,b));b+=l+h;r(k,q.urlArgs,function(c){b+=(-1===b.indexOf("?")?"?":"&")+c});return g(b,q.shim[k])}function k(b,e,f){var g=p.createElement("script");
107
- g.className=I;g[Q?"onload":"onreadystatechange"]=function(){if(Q||/loaded|complete/i.test(g.readyState)){var h=B.pop();h&&h.require(e);f&&f();c(g,!1,!Q)&&(x("debug: \u5df2\u6210\u529f\u52a0\u8f7d "+b),w.push(e),d())}};g.onerror=function(){c(g,!0)};g.src=b;E.insertBefore(g,E.firstChild);x("debug: \u6b63\u51c6\u5907\u52a0\u8f7d "+b)}function l(b,c,d){var e=[],f;for(f in b)if(b.hasOwnProperty(f)){var g={name:f,val:b[f]};e.push(g);g.reg="*"===f&&c?/^/:RegExp("^"+f+"(/|$)");d&&"*"!==f&&(g.reg=RegExp("/"+
108
- f.replace(/^\//,"")+"(/|$)"))}e.sort(s);return e}function m(b){return function(){var c;b.init&&(c=b.init.apply(t,arguments));return c||b.exports&&y(b.exports)}}function n(b,c,d,e,f){return{id:b,state:c||1,factory:d||z,deps:e||{},args:f||[]}}function r(b,c,d){c=c||[];for(var e=0,f;f=c[e++];)if(f.reg.test(b))return d(f.val,f.name,f),!1}function s(b,c){var d=b.name,e=c.name;return"*"===e?-1:"*"===d?1:e.length-d.length}function v(b,c){"/"!==b.charAt(b.length-1)&&(b+="/");if("./"===c.slice(0,2))return b+
109
- c.slice(2);if(".."===c.slice(0,2)){for(b+=c;J.test(b);)b=b.replace(J,"");return b}return"/"===c.slice(0,1)?b+c.slice(1):b+c}function y(b){if(!b)return b;var c=t;b.split(".").forEach(function(b){c=c[b]});return c}var w=[],B=[];D=avalon.require=function(b,c,e){Array.isArray(b)||avalon.error("require\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u5fc5\u987b\u662f\u4f9d\u8d56\u5217\u6570,\u7c7b\u578b\u4e3a\u6570\u7ec4 "+b);var g=[],k={},l=e||"callback"+setTimeout("1"),m=e&&e.replace(/\.js$/i,"");e=f(e);b.forEach(function(b){if((b=
110
- h(b,e,m))&&!k[b])g.push(b),k[b]="\u53f8\u5f92\u6b63\u7f8e"});b=u[l];if(!b||2!==b.state)u[l]=n(l,1,c,k,g);b||w.push(l);d()};D.define=function(c,d,f){var h=da.call(arguments);if("string"===typeof c)var k=h.shift();"function"===typeof h[0]&&h.unshift([]);var l=u[k]&&1<=u[k].state?k:e(g());f=h[1];f.id=k;!u[l]&&k&&(u[l]=n(l,1,f));f.require=function(c){h.push(c);var d=!0;try{d=b(u[c].deps,c)}catch(e){}d&&avalon.error(c+"\u6a21\u5757\u4e0e\u4e4b\u524d\u7684\u6a21\u5757\u5b58\u5728\u5faa\u73af\u4f9d\u8d56\uff0c\u8bf7\u4e0d\u8981\u76f4\u63a5\u7528script\u6807\u7b7e\u5f15\u5165"+
111
- c+"\u6a21\u5757");delete f.require;D.apply(null,h)};l?f.require(l):B.push(f)};D.config=q;D.define.amd=u;var C=q["orig.paths"]={},F=q["orig.map"]={},K=q.packages=[],G=q["orig.args"]={};avalon.mix(aa,{paths:function(b){avalon.mix(C,b);q.paths=l(C)},map:function(b){avalon.mix(F,b);b=l(F,1,1);avalon.each(b,function(b,c){c.val=l(c.val)});q.map=b},packages:function(b){b=b.concat(K);for(var c={},d=[],e=0,f;f=b[e++];){f="string"===typeof f?{name:f}:f;var g=f.name;if(!c[g]){var h=f.location?f.location:v(g,
112
- f.main||"main"),h=h.replace(/\.js$/i,"");d.push(f);c[g]=f.location=h;f.reg=RegExp("^"+g+"(/|$)")}}q.packages=d.sort()},urlArgs:function(b){"string"===typeof b&&(b={"*":b});avalon.mix(G,b);q.urlArgs=l(G,1)},baseUrl:function(b){if(!/^(?:[a-z]+:)?\/\//i.test(String(b))){var c=E.getElementsByTagName("base")[0];c&&E.removeChild(c);var d=p.createElement("a");d.href=b;b="1"[0]?d.href:d.getAttribute("href",4);c&&E.insertBefore(c,E.firstChild)}q.baseUrl=b},shim:function(b){for(var c in b){var d=b[c];Array.isArray(d)&&
113
- (d=b[c]={deps:d});if(!d.exportsFn&&(d.exports||d.init))d.exportsFn=m(d)}q.shim=b},js:function(b,c){var d=e(b);if(!u[d]){var f=u[d]=n(d);c?D(c.deps||[],function(){var e=avalon.slice(arguments);k(b,d,function(){f.state=2;c.exportsFn&&(f.exports=c.exportsFn.apply(0,e));D.checkDeps()})}):k(b,d)}return d},css:function(b){var c=e(b);if(!p.getElementById(c)){var d=p.createElement("link");d.rel="stylesheet";d.href=b;d.id=c;E.insertBefore(d,E.firstChild)}},text:function(b){var c=e(b);u[c]={};var d=Ha();d.onreadystatechange=
114
- function(){if(4===d.readyState){var e=d.status;399<e&&600>e?avalon.error(b+" \u5bf9\u5e94\u8d44\u6e90\u4e0d\u5b58\u5728\u6216\u6ca1\u6709\u5f00\u542f CORS"):(u[c].state=2,u[c].exports=d.responseText,D.checkDeps())}};d.open("GET",b,!0);"withCredentials"in d&&(d.withCredentials=!0);d.setRequestHeader("X-Requested-With","XMLHttpRequest");d.send();return c}});aa.css.ext=".css";aa.js.ext=".js";D.checkDeps=d;var H=/(\?[^#]*)$/,J=/\/\w+\/\.\./,A=g(!0);A||(A=p.scripts[p.scripts.length-1].src);A=e(A);q.loaderUrl=
115
- A.slice(0,A.lastIndexOf("/")+1)};var ob=[];"complete"===p.readyState?setTimeout(Z):(p.addEventListener("DOMContentLoaded",Z),t.addEventListener("load",Z));avalon.ready=function(b){D?D(["ready!"],b):Z===z?b(avalon):ob.push(b)};avalon.config({loader:!0});avalon.ready(function(){avalon.scan(p.body)});"function"===typeof define&&define.amd&&define("avalon",[],function(){return avalon});avalon.noConflict=function(b){b&&t.avalon===avalon&&(t.avalon=avalon);return avalon};void 0===U&&(t.avalon=avalon);return avalon});
1
+ !function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("Avalon requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(){avalon.config.debug&&console.log.apply(console,arguments)}function r(){}function i(e,t){"string"==typeof e&&(e=e.match(yt)||[]);for(var n={},a=void 0!==t?t:1,r=0,i=e.length;i>r;r++)n[e[r]]=a;return n}function o(e){function t(a,r){return n.push(a)>e&&delete t[n.shift()],t[a]=r}var n=[];return t}function l(){if(e.VBArray){var t=document.documentMode;return t?t:e.XMLHttpRequest?7:6}return 0}function s(e){if(e&&"object"==typeof e){var t=e.length,n=At.call(e);if(/(Array|List|Collection|Map|Arguments)\]$/.test(n))return!0;if("[object Object]"===n&&t===t>>>0)return!0}return!1}function c(e,t){if(e&&e.childNodes)for(var n,a=e.childNodes,r=0;n=a[r++];)if(n.tagName){var i=ft.createElementNS(It,n.tagName.toLowerCase());Tt.forEach.call(n.attributes,function(e){i.setAttribute(e.name,e.value)}),c(n,i),t.appendChild(i)}}function u(e){for(var t in e)if(Ct.call(e,t)){var n=e[t];"function"==typeof u.plugins[t]?u.plugins[t](n):"object"==typeof u[t]?avalon.mix(u[t],n):u[t]=n}return this}function f(e){return(e+"").replace(zt,"\\$&")}function p(e,t,n){if(Pt(t)||t&&t.nodeType)return!1;if(-1!==n.indexOf(e))return!1;if(-1!==Qt.indexOf(e))return!1;var a=n.$special;return e&&"$"===e.charAt(0)&&!a[e]?!1:!0}function v(e,t,n,a){switch(e.type){case 0:var r=e.get,i=e.set;if(Pt(i)){var o=a.$events,l=o[t];o[t]=[],i.call(a,n),o[t]=l}return r.call(a);case 1:return n;case 2:if(n!==a.$model[t]){var s=e.svmodel=m(a,t,n,e.valueType);n=s.$model;var c=Kt[s.$id];c&&c()}return n}}function d(e,t,n){if(Array.isArray(e)){var a=e.concat();e.length=0;var i=g(e);return i.pushArray(a),i}if("number"==typeof e.nodeType)return e;if(e.$id&&e.$events)return e;Array.isArray(e.$skipArray)||(e.$skipArray=[]),e.$skipArray.$special=t||{};var o={};n=n||{};var l={},s={},c=[];for(var u in e)!function(t,a){if(n[t]=a,p(t,a,e.$skipArray)){l[t]=[];var i=avalon.type(a),u=function(e){var t=u._name,n=this,a=n.$model,r=a[t],i=n.$events;return arguments.length?void(gt||(1===u.type||(e=v(u,t,e,n),u.type))&&(rn(r,e)||(a[t]=e,i.$digest?u.pedding||(u.pedding=!0,setTimeout(function(){E(i[t]),h(n,t,a[t],r),u.pedding=!1})):(E(i[t]),h(n,t,e,r))))):0===u.type?(e=u.get.call(n),r!==e&&(a[t]=e,i.$digest?u.pedding||(u.pedding=!0,setTimeout(function(){h(n,t,a[t],r),u.pedding=!1})):h(n,t,e,r)),e):(x(i[t]),u.svmodel||r)};"object"===i&&Pt(a.get)&&Object.keys(a).length<=2?(u.set=a.set,u.get=a.get,u.type=0,c.push(function(){var e={evaluator:function(){e.type=Math.random(),e.element=null,n[t]=u.get.call(o)},element:pt,type:Math.random(),handler:r,args:[]};kt[ut]=e,u.call(o),delete kt[ut]})):bt.test(i)?(u.type=2,u.valueType=i,c.push(function(){var e=d(a,0,n[t]);u.svmodel=e,e.$events[dt]=l[t]})):u.type=1,u._name=t,s[t]=u}}(u,e[u]);Qt.forEach(function(t){delete e[t],delete n[t]}),o=nn(o,on(s),e);for(var f in e)s[f]||(o[f]=e[f]);o.$id=Ht(),o.$model=n,o.$events=l;for(u in Gt){var m=Gt[u];Mt||(m=m.bind(o)),o[u]=m}return tn?Object.defineProperty(o,"hasOwnProperty",{value:function(e){return e in this.$model},writable:!1,enumerable:!1,configurable:!0}):o.hasOwnProperty=function(e){return e in o.$model},c.forEach(function(e){e()}),o}function h(e,t,n,a){e.$events&&Gt.$fire.call(e,t,n,a)}function m(e,t,n,a){var r=e[t];if("array"===a)return Array.isArray(n)&&r!==n?(r._.$unwatch(),r.clear(),r._.$watch(),r.pushArray(n.concat()),r):r;var i=e.$events[t],o=r.$events.$withProxyPool;o&&(ot(o,"with"),r.$events.$withProxyPool=null);var l=d(n);return l.$events[dt]=i,Kt[l.$id]=function(e){for(;e=i.shift();)!function(e){avalon.nextTick(function(){e.type&&(e.rollback&&e.rollback(),Dt[e.type](e,e.vmodels))})}(e);delete Kt[l.$id]},l}function g(e){var t=[];t.$id=Ht(),t.$model=e,t.$events={},t.$events[dt]=[],t._=d({length:e.length}),t._.$watch("length",function(e,n){t.$fire("length",e,n)});for(var n in Gt)t[n]=Gt[n];return avalon.mix(t,sn),t}function y(e,t,n,a,r,i,o){for(var l=this.length,s=2;--s;){switch(e){case"add":var c=this.$model.slice(t,t+n).map(function(e){return bt.test(avalon.type(e))?e.$id?e:d(e,0,e):e});ln.apply(this,[t,0].concat(c)),this._fire("add",t,n);break;case"del":var u=this._splice(t,n);this._fire("del",t,n)}r&&(e=r,t=i,n=o,s=2,r=0)}return this._fire("index",a),this.length!==l&&(this._.length=this.length),u}function b(e,t){for(var n={},a=0,r=t.length;r>a;a++){n[a]=e[a];var i=t[a];i in n?(e[a]=n[i],delete n[i]):e[a]=e[i]}}function $(e){kt[ut]=e,avalon.openComputedCollect=!0;var t=e.evaluator;if(t)try{var n=cn.test(e.type)?e:t.apply(0,e.args);e.handler(n,e.element,e)}catch(a){delete e.evaluator;var r=e.element;if(3===r.nodeType){var i=r.parentNode;u.commentInterpolate?i.replaceChild(ft.createComment(e.value),r):r.data=Bt+e.value+Ut}}avalon.openComputedCollect=!1,delete kt[ut]}function x(e){var t=kt[ut];e&&t&&avalon.Array.ensure(e,t)&&t.element&&w(t,e)}function w(e,t){e.$uuid=e.$uuid||Ht(),t.$uuid=t.$uuid||Ht();var n={data:e,list:t,$$uuid:e.$uuid+t.$uuid};un[n.$$uuid]||(un[n.$$uuid]=1,un.push(n))}function C(e){e.element=null,e.rollback&&e.rollback();for(var t in e)e[t]=null}function A(e){try{if(!e.parentNode)return!0}catch(t){return!0}return e.msRetain?0:1===e.nodeType?"number"==typeof e.sourceIndex?0===e.sourceIndex:!Ot.contains(e):!avalon.contains(Ot,e)}function T(){for(var e,t=un.length,n=t,a=0,r=[],i={},o={};e=un[--t];){var l=e.data,s=l.type;i[s]?i[s]++:(i[s]=1,r.push(s))}var c=!1;if(r.forEach(function(e){pn[e]!==i[e]&&(o[e]=1,c=!0)}),t=n,c)for(;e=un[--t];)l=e.data,void 0!==l.element&&o[l.type]&&A(l.element)&&(a++,un.splice(t,1),delete un[e.$$uuid],avalon.Array.remove(e.list,l),C(l),e.data=e.list=null);pn=i,fn=new Date}function E(e){if(e&&e.length){new Date-fn>444&&"object"==typeof e[0]&&T();for(var t,n=Et.call(arguments,1),a=e.length;t=e[--a];){var i=t.element;if(i&&i.parentNode)if(t.$repeat)t.handler.apply(t,n);else if("on"!==t.type){var o=t.evaluator||r;t.handler(o.apply(0,t.args||[]),i,t)}}}}function k(e,t,n){var a=setTimeout(function(){var r=e.innerHTML;clearTimeout(a),r===n?t():k(e,t,r)})}function M(e,t){var n=e.getAttribute("avalonctrl")||t.$id;e.setAttribute("avalonctrl",n),t.$events.expr=e.tagName+'[avalonctrl="'+n+'"]'}function O(e,t){for(var n,a=0;n=e[a++];)n.vmodels=t,Dt[n.type](n,t),n.evaluator&&n.element&&1===n.element.nodeType&&n.element.removeAttribute(n.name);e.length=0}function N(e,t){return e.priority-t.priority}function L(e,t){for(var a,r,i=e.hasAttributes()?avalon.slice(e.attributes):[],o=[],l={},s=0;r=i[s++];)if(r.specified&&(a=r.name.match(xn))){var c=a[1],u=a[2]||"",f=r.value,p=r.name;if(l[p]=f,Cn[c]?(u=c,c="on"):An[c]&&(n("ms-"+c+"已经被废弃,请使用ms-attr-*代替"),"enabled"===c&&(c="disabled",f="!("+f+")"),u=c,c="attr",e.removeAttribute(p),p="ms-attr-"+u,e.setAttribute(p,f),a=[p],l[p]=f),"function"==typeof Dt[c]){var v={type:c,param:u,element:e,name:a[0],value:f,priority:c in wn?wn[c]:10*c.charCodeAt(0)+(Number(u)||0)};if("html"===c||"text"===c){var d=D(f);avalon.mix(v,d),v.filters=v.filters.replace(kn,function(){return v.type="html",v.group=1,""})}"ms-if-loop"===p&&(v.priority+=100),t.length&&(o.push(v),"widget"===c&&(e.msData=e.msData||l))}}l["ms-attr-checked"]&&l["ms-duplex"]&&n("warning!一个元素上不能同时定义ms-attr-checked与ms-duplex"),o.sort(N);var h=!0;for(s=0;v=o[s];s++){if(c=v.type,Tn.test(c))return O(o.slice(0,s+1),t);h&&(h=!En.test(c))}O(o,t),h&&!yn[e.tagName]&&Wt.test(e.innerHTML+e.textContent)&&($n&&$n(e),S(e,t))}function S(e,t){for(var n=e.firstChild;n;){var a=n.nextSibling;j(n,n.nodeType,t),n=a}}function H(e,t){for(var n,a=0;n=e[a++];)j(n,n.nodeType,t)}function j(e,t,n){1===t?P(e,n):3===t&&Vt.test(e.data)?I(e,n):u.commentInterpolate&&8===t&&!Vt.test(e.nodeValue)&&I(e,n)}function P(e,t,n){var a=e.getAttribute("ms-skip"),r=e.getAttributeNode("ms-important"),i=e.getAttributeNode("ms-controller");if("string"!=typeof a){if(n=r||i){var o=avalon.vmodels[n.value];if(!o)return;t=n===r?[o]:[o].concat(t),e.removeAttribute(n.name),e.classList.remove(n.name),M(e,o)}L(e,t)}}function D(e){if(e.indexOf("|")>0){var t=e.replace(rstringLiteral,function(e){return Math.pow(10,e.length)}),n=t.replace(Mn,"ᄢ㍄").indexOf("|");if(n>-1)return{filters:e.slice(n),value:e.slice(0,n),expr:!0}}return{value:e,filters:"",expr:!0}}function R(e){for(var t,n,a=[],r=0;;){if(n=e.indexOf(Bt,r),-1===n)break;if(t=e.slice(r,n),t&&a.push({value:t,filters:"",expr:!1}),r=n+Bt.length,n=e.indexOf(Ut,r),-1===n)break;t=e.slice(r,n),t&&a.push(D(t)),r=n+Ut.length}return t=e.slice(r),t&&a.push({value:t,expr:!1,filters:""}),a}function I(e,t){var n=[];if(8===e.nodeType)var a=D(e.nodeValue),r=[a];else r=R(e.data);if(r.length){for(var i=0;a=r[i++];){var o=ft.createTextNode(a.value);a.expr&&(a.type="text",a.element=o,a.filters=a.filters.replace(kn,function(){return a.type="html",a.group=1,""}),n.push(a)),Nt.appendChild(o)}e.parentNode.replaceChild(Nt,e),n.length&&O(n,t)}}function _(e){return e.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function F(e){return e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})}function B(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:On.test(e)?JSON.parse(e):e}catch(t){}return e}function U(e){return e.window&&e.document?e:9===e.nodeType?e.defaultView:!1}function V(e,t){if(e.offsetWidth<=0){var n=getComputedStyle(e,null);if(jn.test(n.display)){var a={node:e};for(var r in Hn)a[r]=n[r],e.style[r]=Hn[r];t.push(a)}var i=e.parentNode;i&&1===i.nodeType&&V(i,t)}}function q(e){var t=e.tagName.toLowerCase();return"input"===t&&/checkbox|radio/.test(e.type)?"checked":t}function W(e,t,n,a){for(var r,i=[],o=" = "+n+".",l=e.length;r=e[--l];)t.hasOwnProperty(r)&&(i.push(r+o+r),a.vars.push(r),"duplex"===a.type&&(e.get=n+"."+r),e.splice(l,1));return i}function z(e){for(var t=[],n={},a=0;a<e.length;a++){var r=e[a],i=r&&"string"==typeof r.$id?r.$id:r;n[i]||(n[i]=t.push(r))}return t}function X(e,t){return t=t.replace(Yn,"").replace(Gn,function(){return"],|"}).replace(Zn,function(e,t){return"["+Dn(t)}).replace(Jn,function(){return'"],["'}).replace(Qn,function(){return'",'})+"]","return avalon.filters.$filter("+e+", "+t+")"}function Y(e,t,a){var i=a.type,o=a.filters||"",l=t.map(function(e){return String(e.$id).replace(Xn,"$1")})+e+i+o,s=qn(e).concat(),c=[],u=[],f=[],p="";t=z(t),a.vars=[];for(var v=0,d=t.length;d>v;v++)if(s.length){var h="vm"+ut+"_"+v;u.push(h),f.push(t[v]),c.push.apply(c,W(s,t[v],h,a))}if(c.length||"duplex"!==i){"duplex"!==i&&(e.indexOf("||")>-1||e.indexOf("&&")>-1)&&a.vars.forEach(function(t){var n=new RegExp("\\b"+t+"(?:\\.\\w+|\\[\\w+\\])+","ig");e=e.replace(n,function(n){var a=n.charAt(t.length),r=jt?e.slice(arguments[1]+n.length):RegExp.rightContext,i=/^\s*\(/.test(r);if("."===a||"["===a||i){var o="var"+String(Math.random()).replace(/^0\./,"");if(i){var l=n.split(".");if(l.length>2){var s=l.pop();return c.push(o+" = "+l.join(".")),o+"."+s}return n}return c.push(o+" = "+n),o}return n})}),a.args=f;var m=Wn[l];if(m)return void(a.evaluator=m);if(p=c.join(", "),p&&(p="var "+p),/\S/.test(o)){if(!/text|html/.test(a.type))throw Error("ms-"+a.type+"不支持过滤器");e="\nvar ret"+ut+" = "+e+";\r\n",e+=X("ret"+ut,o)}else{if("duplex"===i){var g="'use strict';\nreturn function(vvv){\n "+p+";\n if(!arguments.length){\n return "+e+"\n }\n "+(zn.test(e)?e:s.get)+"= vvv;\n} ";try{m=Function.apply(r,u.concat(g)),a.evaluator=Wn(l,m)}catch(y){n("debug: parse error,"+y.message)}return}if("on"===i){-1===e.indexOf("(")?e+=".call(this, $event)":e=e.replace("(",".call(this,"),u.push("$event"),e="\nreturn "+e+";";var b=e.lastIndexOf("\nreturn"),$=e.slice(0,b),x=e.slice(b);e=$+"\n"+x}else e="\nreturn "+e+";"}try{m=Function.apply(r,u.concat("'use strict';\n"+p+e)),a.evaluator=Wn(l,m)}catch(y){n("debug: parse error,"+y.message)}finally{s=textBuffer=u=null}}}function G(e,t,n,a,r){Array.isArray(a)&&(e=a.map(function(e){return e.expr?"("+e.value+")":Dn(e.value)}).join(" + ")),Y(e,t,n),n.evaluator&&!r&&(n.handler=Rt[n.handlerName||n.type],$(n))}function Z(e){return null==e?"":e}function J(e,t,n){return t.param.replace(/\w+/g,function(a){var r=avalon.duplexHooks[a];r&&"function"==typeof r[n]&&(e=r[n](e,t))}),e}function Q(){for(var e=ca.length-1;e>=0;e--){var t=ca[e];t()===!1&&ca.splice(e,1)}ca.length||clearInterval(sa)}function K(e,t,n,a){var r=e.template.cloneNode(!0),i=avalon.slice(r.childNodes);n.$stamp&&r.insertBefore(n.$stamp,r.firstChild),t.appendChild(r);var o=[n].concat(e.vmodels),l={nodes:i,vmodels:o};a.push(l)}function et(e,t){var n=e.proxies[t];return n?n.$stamp:e.element}function tt(e,t,n){for(;;){var a=t.previousSibling;if(!a)break;if(a.parentNode.removeChild(a),n&&n.call(a),a===e)break}}function nt(e){var t={$host:[],$outer:{},$stamp:1,$index:0,$first:!1,$last:!1,$remove:avalon.noop};t[e]={get:function(){return this.$host[this.$index]},set:function(e){this.$host.set(this.$index,e)}};var n={$last:1,$first:1,$index:1},a=d(t,n),r=a.$events;return r[e]=r.$first=r.$last=r.$index,a.$id=Ht("$proxy$each"),a}function at(e,t){for(var n,a=t.param||"el",r=0,i=pa.length;i>r;r++){var o=pa[r];o&&o.hasOwnProperty(a)&&(n=o,pa.splice(r,1))}n||(n=nt(a));var l=t.$repeat,s=l.length-1;return n.$index=e,n.$first=0===e,n.$last=e===s,n.$host=l,n.$outer=t.$outer,n.$stamp=t.clone.cloneNode(!1),n.$remove=function(){return l.removeAt(n.$index)},n}function rt(){var e=d({$key:"",$outer:{},$host:{},$val:{get:function(){return this.$host[this.$key]},set:function(e){this.$host[this.$key]=e}}},{$val:1});return e.$id=Ht("$proxy$with"),e}function it(e,t){var n=va.pop();n||(n=rt());var a=t.$repeat;return n.$key=e,n.$host=a,n.$outer=t.$outer,a.$events?n.$events.$val=a.$events[e]:n.$events={},n}function ot(e,t){var n="each"===t?pa:va;avalon.each(e,function(e,t){if(t.$events){for(var a in t.$events)Array.isArray(t.$events[a])&&(t.$events[a].forEach(function(e){"object"==typeof e&&C(e)}),t.$events[a].length=0);t.$host=t.$outer={},n.unshift(t)>u.maxRepeatSize&&n.pop()}}),"each"===t&&(e.length=0)}function lt(e,t){var n="_"+e;if(!lt[n]){var a=ft.createElement(e);Ot.appendChild(a),t=Mt?getComputedStyle(a,null).display:a.currentStyle.display,Ot.removeChild(a),lt[n]=t}return lt[n]}function st(e,t,n,a){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var r=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):0,o="undefined"==typeof a?",":a,l="undefined"==typeof n?".":n,s="",c=function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)};return s=(i?c(r,i):""+Math.round(r)).split("."),s[0].length>3&&(s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,o)),(s[1]||"").length<i&&(s[1]=s[1]||"",s[1]+=new Array(i-s[1].length+1).join("0")),s.join(l)}function ct(){Xt&&(wa["domReady!"].state=4,Xt.checkDeps()),Ca.forEach(function(e){e(avalon)}),ct=r}var ut=Date.now(),ft=e.document,pt=ft.head;pt.insertAdjacentHTML("afterBegin",'<avalon ms-skip class="avalonHide"><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>');var vt=pt.firstChild,dt="$"+ut,ht=e.require,mt=e.define,gt=!1,yt=/[^, ]+/g,bt=/^(?:object|array)$/,$t=/^\[object SVG\w*Element\]$/,xt=/^\[object (?:Window|DOMWindow|global)\]$/,wt=Object.prototype,Ct=wt.hasOwnProperty,At=wt.toString,Tt=Array.prototype,Et=Tt.slice,kt={},Mt=e.dispatchEvent,Ot=ft.documentElement,Nt=ft.createDocumentFragment(),Lt=ft.createElement("div"),St={};"Boolean Number String Function Array Date RegExp Object Error".replace(yt,function(e){St["[object "+e+"]"]=e.toLowerCase()});var Ht=function(e){return e=e||"avalon",(e+Math.random()+Math.random()).replace(/0\./g,"")},jt=l();avalon=function(e){return new avalon.init(e)},avalon.init=function(e){this[0]=this.element=e},avalon.fn=avalon.prototype=avalon.init.prototype,avalon.type=function(e){return null==e?String(e):"object"==typeof e||"function"==typeof e?St[At.call(e)]||"object":typeof e};var Pt=function(e){return"[object Function]"===At.call(e)};avalon.isFunction=Pt,avalon.isWindow=function(e){return xt.test(At.call(e))},avalon.isPlainObject=function(e){return"[object Object]"===At.call(e)&&Object.getPrototypeOf(e)===wt},avalon.mix=avalon.fn.mix=function(){var e,t,n,a,r,i,o=arguments[0]||{},l=1,s=arguments.length,c=!1;for("boolean"==typeof o&&(c=o,o=arguments[1]||{},l++),"object"==typeof o||Pt(o)||(o={}),l===s&&(o=this,l--);s>l;l++)if(null!=(e=arguments[l]))for(t in e)n=o[t],a=e[t],o!==a&&(c&&a&&(avalon.isPlainObject(a)||(r=Array.isArray(a)))?(r?(r=!1,i=n&&Array.isArray(n)?n:[]):i=n&&avalon.isPlainObject(n)?n:{},o[t]=avalon.mix(c,i,a)):void 0!==a&&(o[t]=a));return o},avalon.mix({rword:yt,subscribers:dt,version:1.391,ui:{},log:n,slice:function(e,t,n){return Et.call(e,t,n)},noop:r,error:function(e,t){throw new(t||Error)(e)},oneObject:i,range:function(e,t,n){n||(n=1),null==t&&(t=e||0,e=0);for(var a=-1,r=Math.max(0,Math.ceil((t-e)/n)),i=new Array(r);++a<r;)i[a]=e,e+=n;return i},eventHooks:{},bind:function(e,t,n,a){var r=avalon.eventHooks,i=r[t];return"object"==typeof i&&(t=i.type,i.deel&&(n=i.deel(e,t,n,!0))),n.unbind||e.addEventListener(t,n,!!a),n},unbind:function(e,t,n,a){var i=avalon.eventHooks,o=i[t],l=n||r;"object"==typeof o&&(t=o.type,o.deel&&(n=o.deel(e,t,n,!1))),e.removeEventListener(t,l,!!a)},css:function(e,t,n){e instanceof avalon&&(e=e[0]);var a,r=/[_-]/.test(t)?F(t):t;if(t=avalon.cssName(r)||r,void 0===n||"boolean"==typeof n){a=Nn[r+":get"]||Nn["@:get"],"background"===t&&(t="backgroundColor");var i=a(e,t);return n===!0?parseFloat(i)||0:i}if(""===n)e.style[t]="";else{if(null==n||n!==n)return;isFinite(n)&&!avalon.cssNumber[r]&&(n+="px"),a=Nn[r+":set"]||Nn["@:set"],a(e,t,n)}},each:function(e,t){if(e){var n=0;if(s(e))for(var a=e.length;a>n&&t(n,e[n])!==!1;n++);else for(n in e)if(e.hasOwnProperty(n)&&t(n,e[n])===!1)break}},getWidgetData:function(e,t){var n=avalon(e).data(),a={};for(var r in n)0===r.indexOf(t)&&(a[r.replace(t,"").replace(/\w/,function(e){return e.toLowerCase()})]=n[r]);return a},Array:{ensure:function(e,t){return-1===e.indexOf(t)?e.push(t):void 0},removeAt:function(e,t){return!!e.splice(t,1).length},remove:function(e,t){var n=e.indexOf(t);return~n?avalon.Array.removeAt(e,n):!1}}});var Dt=avalon.bindingHandlers={},Rt=avalon.bindingExecutors={};if(avalon.nextTick=e.setImmediate?setImmediate.bind(e):function(e){setTimeout(e,0)},Ot.contains||(Node.prototype.contains=function(e){return!!(16&this.compareDocumentPosition(e))}),avalon.contains=function(e,t){try{for(;t=t.parentNode;)if(t===e)return!0;return!1}catch(n){return!1}},e.SVGElement){var It="http://www.w3.org/2000/svg",_t=ft.createElementNS(It,"svg");_t.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',$t.test(_t.firstChild)||Object.defineProperties(SVGElement.prototype,{outerHTML:{enumerable:!0,configurable:!0,get:function(){return(new XMLSerializer).serializeToString(this)},set:function(e){var t=this.tagName.toLowerCase(),n=this.parentNode,a=avalon.parseHTML(e);if("svg"===t)n.insertBefore(a,this);else{var r=ft.createDocumentFragment();c(a,r),n.insertBefore(r,this)}n.removeChild(this)}},innerHTML:{enumerable:!0,configurable:!0,get:function(){var e=this.outerHTML,t=new RegExp("<"+this.nodeName+'\\b(?:(["\'])[^"]*?(\\1)|[^>])*>',"i"),n=new RegExp("</"+this.nodeName+">$","i");return e.replace(t,"").replace(n,"")},set:function(e){if(avalon.clearHTML){avalon.clearHTML(this);var t=avalon.parseHTML(e);c(t,this)}}}})}var Ft=avalon.eventHooks;"onmouseenter"in Ot||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){Ft[e]={type:t,deel:function(t,n){return function(a){var r=a.relatedTarget;return r&&(r===t||16&t.compareDocumentPosition(r))?void 0:(delete a.type,a.type=e,n.call(t,a))}}}}),avalon.each({AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"},function(t,n){e[t]&&!Ft.animationend&&(Ft.animationend={type:n})}),void 0===ft.onmousewheel&&(Ft.mousewheel={type:"wheel",deel:function(e,t){return function(n){n.wheelDeltaY=n.wheelDelta=n.deltaY>0?-120:120,n.wheelDeltaX=0,Object.defineProperty(n,"type",{value:"mousewheel"}),t.call(e,n)}}});var Bt,Ut,Vt,qt,Wt,zt=/[-.*+?^${}()|[\]\/\\]/g,Xt=r,Yt={loader:function(t){e.define=t?Xt.define:mt,e.require=t?Xt:ht},interpolate:function(e){if(Bt=e[0],Ut=e[1],Bt===Ut)throw new SyntaxError("openTag!==closeTag");if(e+""=="<!--,-->")u.commentInterpolate=!0;else{var t=Bt+"test"+Ut;if(Lt.innerHTML=t,Lt.innerHTML!==t&&Lt.innerHTML.indexOf("&lt;")>-1)throw new SyntaxError("此定界符不合法");Lt.innerHTML=""}var n=f(Bt),a=f(Ut);Vt=new RegExp(n+"(.*?)"+a),qt=new RegExp(n+"(.*?)"+a,"g"),Wt=new RegExp(n+".*?"+a+"|\\sms-")}};u.debug=!0,u.plugins=Yt,u.plugins.interpolate(["{{","}}"]),u.paths={},u.shim={},u.maxRepeatSize=100,avalon.config=u;var Gt={$watch:function(e,t){if("function"==typeof t){var n=this.$events[e];n?n.push(t):this.$events[e]=[t]}else this.$events=this.$watch.backup;return this},$unwatch:function(e,t){var n=arguments.length;if(0===n)this.$watch.backup=this.$events,this.$events={};else if(1===n)this.$events[e]=[];else for(var a=this.$events[e]||[],r=a.length;~--r<0;)if(a[r]===t)return a.splice(r,1);return this},$fire:function(e){var t,n,a,r;/^(\w+)!(\S+)$/.test(e)&&(t=RegExp.$1,e=RegExp.$2);var i=this.$events,o=Et.call(arguments,1),l=[e].concat(o);if("all"===t)for(n in avalon.vmodels)a=avalon.vmodels[n],a!==this&&a.$fire.apply(a,l);else if("up"===t||"down"===t){var s=i.expr?Zt(i.expr):[];if(0===s.length)return;for(n in avalon.vmodels)if(a=avalon.vmodels[n],a!==this&&a.$events.expr){var c=Zt(a.$events.expr);if(0===c.length)continue;Array.prototype.forEach.call(c,function(e){Array.prototype.forEach.call(s,function(n){var r="down"===t?n.contains(e):e.contains(n);r&&(e._avalon=a)})})}var u=ft.getElementsByTagName("*"),f=[];for(Array.prototype.forEach.call(u,function(e){e._avalon&&(f.push(e._avalon),e._avalon="",e.removeAttribute("_avalon"))}),"up"===t&&f.reverse(),n=0;(r=f[n++])&&r.$fire.apply(r,l)!==!1;);}else{var p=i[e]||[],v=i.$all||[];for(n=0;r=p[n++];)Pt(r)&&r.apply(this,o);for(n=0;r=v[n++];)Pt(r)&&r.apply(this,arguments)}}},Zt=function(e){return ft.querySelectorAll(e)},Jt=avalon.vmodels={};avalon.define=function(e,t){var a=e.$id||e;if(a||n("warning: vm必须指定$id"),Jt[a]&&n("warning: "+a+" 已经存在于avalon.vmodels中"),"object"==typeof e)var i=d(e);else{var o={$watch:r};t(o),i=d(o),gt=!0,t(i),gt=!1}return i.$id=a,Jt[a]=i};var Qt=String("$id,$watch,$unwatch,$fire,$events,$model,$skipArray").match(yt),Kt={},en=Object.defineProperty,tn=!0;try{en({},"_",{value:"x"});var nn=Object.defineProperties}catch(an){tn=!1}var rn=Object.is||function(e,t){return 0===e&&0===t?1/e===1/t:e!==e?t!==t:e===t},on=Mt?function(e){var t={};for(var n in e)t[n]={get:e[n],set:e[n],enumerable:!0,configurable:!0};return t}:function(e){return e},ln=Tt.splice,sn={_splice:ln,_fire:function(e,t,n){E(this.$events[dt],e,t,n)},size:function(){return this._.length},pushArray:function(e){var t=e.length,n=this.length;return t&&(Tt.push.apply(this.$model,e),y.call(this,"add",n,t,n)),t+n},push:function(){var e,t=[],n=arguments.length;for(e=0;n>e;e++)t[e]=arguments[e];return this.pushArray(arguments)},unshift:function(){var e=arguments.length,t=this.length;return e&&(Tt.unshift.apply(this.$model,arguments),y.call(this,"add",0,e,0)),e+t},shift:function(){if(this.length){var e=this.$model.shift();return y.call(this,"del",0,1,0),e}},pop:function(){var e=this.length;if(e){var t=this.$model.pop();return y.call(this,"del",e-1,1,Math.max(0,e-2)),t}},splice:function(e){var t,n=arguments.length,a=[],r=ln.apply(this.$model,arguments);return r.length&&(a.push("del",e,r.length,0),t=!0),n>2&&(t?a.splice(3,1,0,"add",e,n-2):a.push("add",e,n-2,0),t=!0),t?y.apply(this,a):[]},contains:function(e){return-1!==this.indexOf(e)},remove:function(e){return this.removeAt(this.indexOf(e))},removeAt:function(e){return e>=0?(this.$model.splice(e,1),y.call(this,"del",e,1,0)):[]},clear:function(){return this.$model.length=this.length=this._.length=0,this._fire("clear",0),this},removeAll:function(e){if(Array.isArray(e))e.forEach(function(e){this.remove(e)},this);else if("function"==typeof e)for(var t=this.length-1;t>=0;t--){var n=this[t];e(n,t)&&this.removeAt(t)}else this.clear()},ensure:function(e){return this.contains(e)||this.push(e),this},set:function(e,t){if(e>=0){var n=avalon.type(t);t&&t.$model&&(t=t.$model);var a=this[e];if("object"===n)for(var r in t)a.hasOwnProperty(r)&&(a[r]=t[r]);else"array"===n?a.clear().push.apply(a,t):a!==t&&(this[e]=t,this.$model[e]=t,this._fire("set",e,t))}return this}};"sort,reverse".replace(yt,function(e){sn[e]=function(){var t,n=this.$model,a=n.concat(),r=Math.random(),i=[];Tt[e].apply(n,arguments);for(var o=0,l=a.length;l>o;o++){var s=n[o],c=a[o];if(rn(s,c))i.push(o);else{var u=a.indexOf(s);i.push(u),a[u]=r,t=!0}}return t&&(b(this,i),this._fire("move",i),this._fire("index",0)),this}});var cn=/^(duplex|on)$/,un=avalon.$$subscribers=[],fn=new Date,pn={},vn=new function(){avalon.mix(this,{option:ft.createElement("select"),thead:ft.createElement("table"),td:ft.createElement("tr"),area:ft.createElement("map"),tr:ft.createElement("tbody"),col:ft.createElement("colgroup"),legend:ft.createElement("fieldset"),_default:ft.createElement("div"),g:ft.createElementNS("http://www.w3.org/2000/svg","svg")}),this.optgroup=this.option,this.tbody=this.tfoot=this.colgroup=this.caption=this.thead,this.th=this.td};String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(yt,function(e){vn[e]=vn.g});var dn=/<([\w:]+)/,hn=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,mn=i(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),gn=ft.createElement("script");avalon.parseHTML=function(e){if("string"!=typeof e)return ft.createDocumentFragment();e=e.replace(hn,"<$1></$2>").trim();var t,n=(dn.exec(e)||["",""])[1].toLowerCase(),a=vn[n]||vn._default,r=Nt.cloneNode(!1);a.innerHTML=e;var i=a.getElementsByTagName("script");if(i.length)for(var o,l=0;o=i[l++];)if(mn[o.type]){var s=gn.cloneNode(!1);Tt.forEach.call(o.attributes,function(e){s.setAttribute(e.name,e.value)}),s.text=o.text,o.parentNode.replaceChild(s,o)}for(;t=a.firstChild;)r.appendChild(t);return r},avalon.innerHTML=function(e,t){var n=this.parseHTML(t);this.clearHTML(e).appendChild(n)},avalon.clearHTML=function(e){for(e.textContent="";e.firstChild;)e.removeChild(e.firstChild);return e},avalon.scan=function(e,t){e=e||Ot;var n=t?[].concat(t):[];P(e,n)};var yn=i("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),bn=function(e,t,n){var a=e.getAttribute(t);if(a)for(var r,i=0;r=n[i++];)if(r.hasOwnProperty(a)&&"function"==typeof r[a])return r[a]},$n=jt&&e.MutationObserver?function(e){for(var t,n=e.firstChild;n;){var a=n.nextSibling;3===n.nodeType?t?(t.nodeValue+=n.nodeValue,e.removeChild(n)):t=n:t=null,n=a}}:0,xn=/ms-(\w+)-?(.*)/,wn={"if":10,repeat:90,data:100,widget:110,each:1400,"with":1500,duplex:2e3,on:3e3},Cn=i("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),An=i("value,title,alt,checked,selected,disabled,readonly,enabled"),Tn=/^if|widget|repeat$/,En=/^each|with|html|include$/,kn=/\|\s*html\s*/,Mn=/\|\|/g;rstringLiteral=/(['"])(\\\1|.)+?\1/g,"add,remove".replace(yt,function(e){avalon.fn[e+"Class"]=function(t){var n=this[0];return t&&"string"==typeof t&&n&&1===n.nodeType&&t.replace(/\S+/g,function(t){n.classList[e](t)}),this}}),avalon.fn.mix({hasClass:function(e){var t=this[0]||{};return 1===t.nodeType&&t.classList.contains(e)},toggleClass:function(e,t){for(var n,a=0,r=e.split(/\s+/),i="boolean"==typeof t;n=r[a++];){var o=i?t:!this.hasClass(n);this[o?"addClass":"removeClass"](n)}return this},attr:function(e,t){return 2===arguments.length?(this[0].setAttribute(e,t),this):this[0].getAttribute(e)},data:function(e,t){switch(e="data-"+_(e||""),arguments.length){case 2:return this.attr(e,t),this;case 1:var n=this.attr(e);return B(n);case 0:var a={};return Tt.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=F(e.slice(5)),a[e]=B(t.value)))}),a}},removeData:function(e){return e="data-"+_(e),this[0].removeAttribute(e),this},css:function(e,t){if(avalon.isPlainObject(e))for(var n in e)avalon.css(this,n,e[n]);else var a=avalon.css(this,e,t);return void 0!==a?a:this},position:function(){var e,t,n=this[0],a={top:0,left:0};if(n)return"fixed"===this.css("position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),"HTML"!==e[0].tagName&&(a=e.offset()),a.top+=avalon.css(e[0],"borderTopWidth",!0),a.left+=avalon.css(e[0],"borderLeftWidth",!0)),{top:t.top-a.top-avalon.css(n,"marginTop",!0),left:t.left-a.left-avalon.css(n,"marginLeft",!0)}},offsetParent:function(){for(var e=this[0].offsetParent;e&&"static"===avalon.css(e,"position");)e=e.offsetParent;return avalon(e)},bind:function(e,t,n){return this[0]?avalon.bind(this[0],e,t,n):void 0},unbind:function(e,t,n){return this[0]&&avalon.unbind(this[0],e,t,n),this},val:function(e){var t=this[0];if(t&&1===t.nodeType){var n=0===arguments.length,a=n?":get":":set",r=Pn[q(t)+a];if(r)var i=r(t,e);else{if(n)return(t.value||"").replace(/\r/g,"");t.value=e}}return n?i:this}}),Ot.dataset&&(avalon.fn.data=function(e,t){var n=this[0].dataset;switch(arguments.length){case 2:return n[e]=t,this;case 1:return t=n[e],B(t);case 0:var a={};for(var e in n)a[e]=B(n[e]);return a}});var On=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/;avalon.parseJSON=JSON.parse,avalon.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){avalon.fn[e]=function(n){var a=this[0]||{},r=U(a),i="scrollTop"===e;return arguments.length?void(r?r.scrollTo(i?avalon(r).scrollLeft():n,i?n:avalon(r).scrollTop()):a[e]=n):r?r[t]:a[e]}});var Nn=avalon.cssHooks={},Ln=["","-webkit-","-moz-","-ms-"],Sn={"float":"cssFloat"};avalon.cssNumber=i("columnCount,order,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(Sn[e])return Sn[e];t=t||Ot.style;for(var a=0,r=Ln.length;r>a;a++)if(n=F(Ln[a]+e),n in t)return Sn[e]=n;return null},Nn["@:set"]=function(e,t,n){e.style[t]=n},Nn["@:get"]=function(e,t){if(!e||!e.style)throw new Error("getComputedStyle要求传入一个节点 "+e);var n,a=getComputedStyle(e,null);return a&&(n="filter"===t?a.getPropertyValue(t):a[t],""===n&&(n=e.style[t])),n},Nn["opacity:get"]=function(e){var t=Nn["@:get"](e,"opacity");return""===t?"1":t},"top,left".replace(yt,function(e){Nn[e+":get"]=function(t){var n=Nn["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Hn={position:"absolute",visibility:"hidden",display:"block"},jn=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(yt,function(e){var t=e.toLowerCase(),n="client"+e,a="scroll"+e,r="offset"+e;Nn[t+":get"]=function(t,n,a){var i=-4;"number"==typeof a&&(i=a),n="Width"===e?["Left","Right"]:["Top","Bottom"];var o=t[r];return 2===i?o+avalon.css(t,"margin"+n[0],!0)+avalon.css(t,"margin"+n[1],!0):(0>i&&(o=o-avalon.css(t,"border"+n[0]+"Width",!0)-avalon.css(t,"border"+n[1]+"Width",!0)),-4===i&&(o=o-avalon.css(t,"padding"+n[0],!0)-avalon.css(t,"padding"+n[1],!0)),o)},Nn[t+"&get"]=function(e){var n=[];V(e,n);for(var a,r=Nn[t+":get"](e),i=0;a=n[i++];){e=a.node;for(var o in a)"string"==typeof a[o]&&(e.style[o]=a[o])}return r},avalon.fn[t]=function(i){var o=this[0];if(0===arguments.length){if(o.setTimeout)return o["inner"+e];if(9===o.nodeType){var l=o.documentElement;return Math.max(o.body[a],l[a],o.body[r],l[r],l[n])}return Nn[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return Nn[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return Nn[t+":get"](this[0],void 0,e===!0?2:0)}}),avalon.fn.offset=function(){var e=this[0],t={left:0,top:0};if(!e||!e.tagName||!e.ownerDocument)return t;var n=e.ownerDocument,a=n.documentElement,r=n.defaultView;return a.contains(e)?(void 0!==e.getBoundingClientRect&&(t=e.getBoundingClientRect()),{top:t.top+r.pageYOffset-a.clientTop,left:t.left+r.pageXOffset-a.clientLeft}):t};var Pn={"select:get":function(e,t){for(var n,a=e.options,r=e.selectedIndex,i="select-one"===e.type||0>r,o=i?null:[],l=i?r+1:a.length,s=0>r?l:i?r:0;l>s;s++)if(n=a[s],(n.selected||s===r)&&!n.disabled){if(t=n.value,i)return t;
2
+ o.push(t)}return o},"select:set":function(e,t,n){t=[].concat(t);for(var a,r=0;a=e.options[r++];)(a.selected=t.indexOf(a.value)>-1)&&(n=!0);n||(e.selectedIndex=-1)}},Dn=JSON.stringify,Rn="break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined",In=/\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g,_n=/[^\w$]+/g,Fn=new RegExp(["\\b"+Rn.replace(/,/g,"\\b|\\b")+"\\b"].join("|"),"g"),Bn=/\b\d[^,]*/g,Un=/^,+|,+$/g,Vn=o(512),qn=function(e){var t=","+e.trim();if(Vn[t])return Vn[t];var n=e.replace(In,"").replace(_n,",").replace(Fn,"").replace(Bn,"").replace(Un,"").split(/^$|,+/);return Vn(t,z(n))},Wn=o(128),zn=/\w\[.*\]|\w\.\w/,Xn=/(\$proxy\$[a-z]+)\d+$/,Yn=/\)\s*$/,Gn=/\)\s*\|/g,Zn=/\|\s*([$\w]+)/g,Jn=/"\s*\["/g,Qn=/"\s*\(/g;avalon.parseExprProxy=G;var Kn="autofocus,autoplay,async,allowTransparency,checked,controls,declare,disabled,defer,defaultChecked,defaultSelectedcontentEditable,isMap,loop,multiple,noHref,noResize,noShade,open,readOnly,selected",ea={};Kn.replace(yt,function(e){ea[e.toLowerCase()]=e});var ta={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"},na="accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan,dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight,rowSpan,tabIndex,useMap,vSpace,valueType,vAlign";na.replace(yt,function(e){ta[e.toLowerCase()]=e});var aa=/<noscript.*?>(?:[\s\S]+?)<\/noscript>/gim,ra=/<noscript.*?>([\s\S]+?)<\/noscript>/im,ia=function(){return new(e.XMLHttpRequest||ActiveXObject)("Microsoft.XMLHTTP")},oa=avalon.templateCache={};Dt.attr=function(e,t){var n=e.value.trim(),a=!0;if(n.indexOf(Bt)>-1&&n.indexOf(Ut)>2&&(a=!1,Vt.test(n)&&""===RegExp.rightContext&&""===RegExp.leftContext&&(a=!0,n=RegExp.$1)),"include"===e.type){var r=e.element;e.includeRendered=bn(r,"data-include-rendered",t),e.includeLoaded=bn(r,"data-include-loaded",t);var i=e.includeReplaced=!!avalon(r).data("includeReplace");e.startInclude=ft.createComment("ms-include"),e.endInclude=ft.createComment("ms-include-end"),i?(e.element=e.startInclude,r.parentNode.insertBefore(e.startInclude,r),r.parentNode.insertBefore(e.endInclude,r.nextSibling)):(r.insertBefore(e.startInclude,r.firstChild),r.appendChild(e.endInclude))}e.handlerName="attr",G(n,t,e,a?0:R(e.value))},Rt.attr=function(t,n,a){var r=a.type,i=a.param;if("css"===r)avalon(n).css(i,t);else if("attr"===r){if(ea[i]){var o=ea[i];if("boolean"==typeof n[o])return n[o]=!!t}var l=t===!1||null===t||void 0===t;if(!Mt&&ta[i]&&(i=ta[i]),l)return n.removeAttribute(i);var s=$t.test(n)?!1:ft.namespaces&&isVML(n)?!0:i in n.cloneNode(!1);s?n[i]=t:n.setAttribute(i,t)}else if("include"===r&&t){var c=a.vmodels,u=a.includeRendered,f=a.includeLoaded,p=a.includeReplaced,v=p?n.parentNode:n,d=function(e){for(f&&(e=f.apply(v,[e].concat(c))),u&&k(v,function(){u.call(v)},0/0);;){var t=a.startInclude.nextSibling;if(!t||t===a.endInclude)break;v.removeChild(t)}var n=avalon.parseHTML(e),r=avalon.slice(n.childNodes);v.insertBefore(n,a.endInclude),H(r,c)};if("src"===a.param)if(oa[t])avalon.nextTick(function(){d(oa[t])});else{var h=ia();h.onreadystatechange=function(){if(4===h.readyState){var e=h.status;(e>=200&&300>e||304===e||1223===e)&&d(oa[t]=h.responseText)}},h.open("GET",t,!0),"withCredentials"in h&&(h.withCredentials=!0),h.setRequestHeader("X-Requested-With","XMLHttpRequest"),h.send(null)}else{var m=t&&1===t.nodeType?t:ft.getElementById(t);if(m){if("NOSCRIPT"===m.tagName&&!m.innerHTML&&!m.fixIE78){h=ia(),h.open("GET",location,!1),h.send(null);for(var g=ft.getElementsByTagName("noscript"),y=(h.responseText||"").match(aa)||[],b=y.length,$=0;b>$;$++){var x=g[$];x&&(x.style.display="none",x.fixIE78=(y[$].match(ra)||["","&nbsp;"])[1])}}avalon.nextTick(function(){d(m.fixIE78||m.value||m.innerText||m.innerHTML)})}}}else if(Ot.hasAttribute||"string"!=typeof t||"src"!==r&&"href"!==r||(t=t.replace(/&amp;/g,"&")),n[r]=t,e.chrome&&"EMBED"===n.tagName){var w=n.parentNode,C=document.createComment("ms-src");w.replaceChild(C,n),w.replaceChild(n,C)}},"title,alt,src,value,css,include,href".replace(yt,function(e){Dt[e]=Dt.attr}),Dt["class"]=function(e,t){var a,r=e.param,i=e.value;if(e.handlerName="class",!r||isFinite(r)){e.param="";var o=i.replace(qt,function(e){return e.replace(/./g,"0")}),l=o.indexOf(":");if(-1===l)var s=i;else{if(s=i.slice(0,l),a=i.slice(l+1),Y(a,t,e),!e.evaluator)return n("debug: ms-class '"+(a||"").trim()+"' 不存在于VM中"),!1;e._evaluator=e.evaluator,e._args=e.args}var c=Vt.test(s);c||(e.immobileClass=s),G("",t,e,c?R(s):0)}else e.immobileClass=e.oldStyle=e.param,G(i,t,e)},Rt["class"]=function(e,t,n){var a=avalon(t),r=n.type;if("class"===r&&n.oldStyle)a.toggleClass(n.oldStyle,!!e);else switch(n.toggleClass=n._evaluator?!!n._evaluator.apply(t,n._args):!0,n.newClass=n.immobileClass||e,n.oldClass&&n.newClass!==n.oldClass&&a.removeClass(n.oldClass),n.oldClass=n.newClass,r){case"class":a.toggleClass(n.newClass,n.toggleClass);break;case"hover":case"active":if(!n.hasBindEvent){var i="mouseenter",o="mouseleave";if("active"===r){t.tabIndex=t.tabIndex||-1,i="mousedown",o="mouseup";var l=a.bind("mouseleave",function(){n.toggleClass&&a.removeClass(n.newClass)})}var s=a.bind(i,function(){n.toggleClass&&a.addClass(n.newClass)}),c=a.bind(o,function(){n.toggleClass&&a.removeClass(n.newClass)});n.rollback=function(){a.unbind("mouseleave",l),a.unbind(i,s),a.unbind(o,c)},n.hasBindEvent=!0}}},"hover,active".replace(yt,function(e){Dt[e]=Dt["class"]}),Rt.data=function(e,t,n){var a="data-"+n.param;e&&"object"==typeof e?t[a]=e:t.setAttribute(a,String(e))};var la=Dt.duplex=function(e,t){var a,o=e.element;if(G(e.value,t,e,0,1),e.changed=bn(o,"data-duplex-changed",t)||r,e.evaluator&&e.args){var l=[],s=i("string,number,boolean,checked");"radio"===o.type&&""===e.param&&(e.param="checked"),o.msData&&(o.msData["ms-duplex"]=e.value),e.param.replace(/\w+/g,function(t){/^(checkbox|radio)$/.test(o.type)&&/^(radio|checked)$/.test(t)&&("radio"===t&&n("ms-duplex-radio已经更名为ms-duplex-checked"),t="checked",e.isChecked=!0),"bool"===t?(t="boolean",n("ms-duplex-bool已经更名为ms-duplex-boolean")):"text"===t&&(t="string",n("ms-duplex-text已经更名为ms-duplex-string")),s[t]&&(a=!0),avalon.Array.ensure(l,t)}),a||l.push("string"),e.param=l.join("-"),e.bound=function(t,n){o.addEventListener?o.addEventListener(t,n,!1):o.attachEvent("on"+t,n);var a=e.rollback;e.rollback=function(){o.avalonSetter=null,avalon.unbind(o,t,n),a&&a()}};for(var c in avalon.vmodels){var u=avalon.vmodels[c];u.$fire("avalon-ms-duplex-init",e)}var f=e.pipe||(e.pipe=J);f(null,e,"init");var p=o.tagName;la[p]&&la[p](o,e.evaluator.apply(null,e.args),e)}};avalon.duplexHooks={checked:{get:function(e,t){return!t.element.oldValue}},string:{get:function(e){return e},set:Z},"boolean":{get:function(e){return"true"===e},set:Z},number:{get:function(e){return isFinite(e)?parseFloat(e)||0:e},set:Z}};var sa,ca=[];avalon.tick=function(e){1===ca.push(e)&&(sa=setInterval(Q,60))};var ua=r;!new function(){function e(e){avalon.contains(Ot,this)&&(t[this.tagName].call(this,e),this.avalonSetter&&this.avalonSetter())}try{var t={},n=HTMLInputElement.prototype,a=HTMLTextAreaElement.prototype,r=HTMLInputElement.prototype;Object.getOwnPropertyNames(r),t.INPUT=Object.getOwnPropertyDescriptor(n,"value").set,Object.defineProperty(n,"value",{set:e}),t.TEXTAREA=Object.getOwnPropertyDescriptor(a,"value").set,Object.defineProperty(a,"value",{set:e})}catch(i){ua=avalon.tick}},la.INPUT=function(e,t,a){function r(e){a.changed.call(this,e,a)}function i(){f=!0}function o(){f=!1}function l(){if(!f){var n=e.oldValue=e.value,i=a.pipe(n,a,"get");u.data("duplex-observe")!==!1&&(t(i),r.call(e,i),u.data("duplex-focus")&&avalon.nextTick(function(){e.focus()}))}}var s=e.type,c=a.bound,u=avalon(e),f=!1;if(a.handler=function(){var n=a.pipe(t(),a,"set")+"";n!==e.oldValue&&(e.value=n)},a.isChecked||"radio"===e.type)l=function(){if(u.data("duplex-observe")!==!1){var n=a.pipe(e.value,a,"get");t(n),r.call(e,n)}},a.handler=function(){var n=t(),r=a.isChecked?!!n:n+""===e.value;e.checked=e.oldValue=r},c("click",l);else if("checkbox"===s)l=function(){if(u.data("duplex-observe")!==!1){var i=e.checked?"ensure":"remove",o=t();Array.isArray(o)||(n("ms-duplex应用于checkbox上要对应一个数组"),o=[o]),avalon.Array[i](o,a.pipe(e.value,a,"get")),r.call(e,o)}},a.handler=function(){var n=[].concat(t());e.checked=n.indexOf(a.pipe(e.value,a,"get"))>-1},c("change",l);else{var p=e.getAttribute("data-duplex-event")||e.getAttribute("data-event")||"input";e.attributes["data-event"]&&n("data-event指令已经废弃,请改用data-duplex-event"),p.replace(yt,function(e){switch(e){case"input":c("input",l),c("DOMAutoComplete",l),jt||(c("compositionstart",i),c("compositionend",o));break;default:c(e,l)}})}/text|password/.test(e.type)&&ua(function(){if(Ot.contains(e))e.value!==e.oldValue&&l();else if(!e.msRetain)return!1}),e.avalonSetter=l,e.oldValue=e.value,$(a),r.call(e,e.value)},la.TEXTAREA=la.INPUT,la.SELECT=function(e,t,a){function r(){if(i.data("duplex-observe")!==!1){var n=i.val();n=Array.isArray(n)?n.map(function(e){return a.pipe(e,a,"get")}):a.pipe(n,a,"get"),n+""!==e.oldValue&&t(n),a.changed.call(e,n,a)}}var i=avalon(e);a.handler=function(){var a=t();a=a&&a.$model||a,Array.isArray(a)?e.multiple||n("ms-duplex在<select multiple=true>上要求对应一个数组"):e.multiple&&n("ms-duplex在<select multiple=false>不能对应一个数组"),a=Array.isArray(a)?a.map(String):a+"",a+""!==e.oldValue&&(i.val(a),e.oldValue=a+"")},a.bound("change",r),k(e,function(){$(a),a.changed.call(e,t(),a)},0/0)},Rt.html=function(e,t,n){e=null==e?"":e;var a="group"in n,r=a?t.parentNode:t;if(r){if(11===e.nodeType)var i=e;else if(1===e.nodeType||e.item){var o=1===e.nodeType?e.childNodes:e.item?e:[];for(i=Nt.cloneNode(!0);o[0];)i.appendChild(o[0])}else i=avalon.parseHTML(e);var l=ft.createComment("ms-html");if(a){r.insertBefore(l,t);for(var s=n.group,c=1;s>c;){var u=t.nextSibling;u&&(r.removeChild(u),c++)}r.removeChild(t),n.element=l}else avalon.clearHTML(r).appendChild(l);a&&(n.group=i.childNodes.length||1),o=avalon.slice(i.childNodes),o[0]&&(l.parentNode&&l.parentNode.replaceChild(i,l),a&&(n.element=o[0])),H(o,n.vmodels)}},Dt["if"]=Dt.data=Dt.text=Dt.html=function(e,t){G(e.value,t,e)},Rt["if"]=function(e,t,n){if(e)8===t.nodeType&&(t.parentNode.replaceChild(n.template,t),t=n.element=n.template),t.getAttribute(n.name)&&(t.removeAttribute(n.name),L(t,n.vmodels)),n.rollback=null;else if(1===t.nodeType){var a=n.element=ft.createComment("ms-if");t.parentNode.replaceChild(a,t),n.template=t,vt.appendChild(t),n.rollback=function(){t.parentNode===vt&&vt.removeChild(t)}}};var fa=/\(([^)]*)\)/;Dt.on=function(e,t){var n=e.value;e.type="on";var a=e.param.replace(/-\d+$/,"");if("function"==typeof Dt.on[a+"Hook"]&&Dt.on[a+"Hook"](e),n.indexOf("(")>0&&n.indexOf(")")>-1){var r=(n.match(fa)||["",""])[1].trim();(""===r||"$event"===r)&&(n=n.replace(fa,""))}G(n,t,e)},Rt.on=function(e,t,n){e=function(e){var t=n.evaluator||r;return t.apply(this,n.args.concat(e))};var a=n.param.replace(/-\d+$/,"");if("scan"===a)e.call(t,{type:a});else if("function"==typeof n.specialBind)n.specialBind(t,e);else var i=avalon.bind(t,a,e);n.rollback=function(){"function"==typeof n.specialUnbind?n.specialUnbind():avalon.unbind(t,a,i)}},Dt.repeat=function(e,t){var n=e.type;G(e.value,t,e,0,1),e.proxies=[];var a=!1;try{var r=e.$repeat=e.evaluator.apply(0,e.args||[]),i=avalon.type(r);"object"!==i&&"array"!==i&&(a=!0,avalon.log("warning:"+e.value+"对应类型不正确"))}catch(o){a=!0,avalon.log("warning:"+e.value+"编译出错")}var l=e.value.split(".")||[];if(l.length>1){l.pop();for(var s,c=l[0],u=0;s=t[u++];)if(s&&s.hasOwnProperty(c)){var f=s[c].$events||{};f[dt]=f[dt]||[],f[dt].push(e);break}}var p=e.element;p.removeAttribute(e.name),e.sortedCallback=bn(p,"data-with-sorted",t),e.renderedCallback=bn(p,"data-"+n+"-rendered",t);var v=Ht(n),d=e.element=ft.createComment(v+":end");if(e.clone=ft.createComment(v),Nt.appendChild(d),"each"===n||"with"===n?(e.template=p.innerHTML.trim(),avalon.clearHTML(p).appendChild(d)):(e.template=p.outerHTML.trim(),p.parentNode.replaceChild(d,p)),e.template=avalon.parseHTML(e.template),e.rollback=function(){var t=e.element;if(t){Rt.repeat.call(e,"clear");var n=t.parentNode,a=e.template,r=a.firstChild;n.replaceChild(a,t);var i=e.$stamp;i&&i.parentNode&&i.parentNode.removeChild(i),r=e.element="repeat"===e.type?r:n}},!a){e.handler=Rt.repeat,e.$outer={};var h="$key",m="$val";for(Array.isArray(r)&&(h="$first",m="$last"),u=0;s=t[u++];)if(s.hasOwnProperty(h)&&s.hasOwnProperty(m)){e.$outer=s;break}var g=r.$events,y=(g||{})[dt];if(y&&avalon.Array.ensure(y,e)&&w(e,y),"object"===i){e.$with=!0;var b=g?g.$withProxyPool||(g.$withProxyPool={}):{};e.handler("append",r,b)}else r.length&&e.handler("add",0,r.length)}},Rt.repeat=function(e,t,n){if(e){var a=this,i=a.element,o=i.parentNode,l=a.proxies,s=Nt.cloneNode(!1);switch(e){case"add":for(var c,u=t+n,f=a.$repeat,p=f.length-1,v=[],d=et(a,t),h=t;u>h;h++){var m=at(h,a);l.splice(h,0,m),K(a,s,m,v)}for(o.insertBefore(s,d),h=0;c=v[h++];)H(c.nodes,c.vmodels),c.nodes=c.vmodels=null;break;case"del":d=l[t].$stamp,i=et(a,t+n),tt(d,i);var g=l.splice(t,n);ot(g,"each");break;case"clear":var y=a.$stamp||l[0];y&&(d=y.$stamp||y,tt(d,i)),ot(l,"each");break;case"move":d=l[0].$stamp;var $,x=d.nodeValue,w=[],C=[];for(tt(d,i,function(){C.unshift(this),this.nodeValue===x&&(w.unshift(C),C=[])}),b(l,t),b(w,t);C=w.shift();)for(;$=C.shift();)s.appendChild($);o.insertBefore(s,i);break;case"index":for(p=l.length-1;n=l[t];t++)n.$index=t,n.$first=0===t,n.$last=t===p;return;case"set":return m=l[t],void(m&&E(m.$events.$index));case"append":var A=n,T=[];v=[];for(var M in t)t.hasOwnProperty(M)&&"hasOwnProperty"!==M&&T.push(M);if(a.sortedCallback){var O=a.sortedCallback.call(o,T);O&&Array.isArray(O)&&O.length&&(T=O)}for(h=0;M=T[h++];)"hasOwnProperty"!==M&&(A[M]||(A[M]=it(M,a)),K(a,s,A[M],v));var N=a.$stamp=a.clone;for(o.insertBefore(N,i),o.insertBefore(s,i),h=0;c=v[h++];)H(c.nodes,c.vmodels),c.nodes=c.vmodels=null}"clear"===e&&(e="del");var L=a.renderedCallback||r,S=arguments;k(o,function(){L.apply(o,S),o.oldValue&&"SELECT"===o.tagName&&avalon(o).val(o.oldValue.split(","))},0/0)}},"with,each".replace(yt,function(e){Dt[e]=Dt.repeat});var pa=[],va=[];Rt.text=function(e,t){if(e=null==e?"":e,3===t.nodeType)try{t.data=e}catch(n){}else t.textContent=e},avalon.parseDisplay=lt,Dt.visible=function(e,t){var n=avalon(e.element),a=n.css("display");if("none"===a){var r=n[0].style,i=/visibility/i.test(r.cssText),o=n.css("visibility");r.display="",r.visibility="hidden",a=n.css("display"),"none"===a&&(a=lt(n[0].nodeName)),r.visibility=i?o:""}e.display=a,G(e.value,t,e)},Rt.visible=function(e,t,n){t.style.display=e?n.display:"none"},Dt.widget=function(t,n){var a=t.value.match(yt),i=t.element,o=a[0],l=a[1];l&&"$"!==l||(l=Ht(o));var s=a[2]||o,c=avalon.ui[o];if("function"==typeof c){n=i.vmodels||n;for(var u,f=0;u=n[f++];)if(u.hasOwnProperty(s)&&"object"==typeof u[s]){var p=u[s];p=p.$model||p;break}if(p){var v=p[o+"Id"];"string"==typeof v&&(l=v)}var d=avalon.getWidgetData(i,o);t.value=[o,l,s].join(","),t[o+"Id"]=l,t.evaluator=r,i.msData["ms-widget-id"]=l;var h=t[o+"Options"]=avalon.mix({},c.defaults,p||{},d);i.removeAttribute("ms-widget");var m=c(i,t,n)||{};m.$id?(avalon.vmodels[l]=m,M(i,m),m.hasOwnProperty("$init")&&m.$init(function(){avalon.scan(i,[m].concat(n)),"function"==typeof h.onInit&&h.onInit.call(i,m,h,n)}),t.rollback=function(){try{m.widgetElement=null,m.$remove()}catch(e){}i.msData={},delete avalon.vmodels[m.$id]},w(t,da),e.chrome&&i.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(T)})):avalon.scan(i,n)}else n.length&&(i.vmodels=n)};var da=[],ha=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,ma=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,ga=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/gi,ya={a:/\b(href)\=("javascript[^"]*"|'javascript[^']*')/gi,img:/\b(src)\=("javascript[^"]*"|'javascript[^']*')/gi,form:/\b(action)\=("javascript[^"]*"|'javascript[^']*')/gi},ba=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,$a=/([^\#-~| |!])/g,xa=avalon.filters={uppercase:function(e){return e.toUpperCase()},lowercase:function(e){return e.toLowerCase()},truncate:function(e,t,n){return t=t||30,n=void 0===n?"...":n,e.length>t?e.slice(0,t-n.length)+n:String(e)},$filter:function(e){for(var t=1,n=arguments.length;n>t;t++){var a=arguments[t],r=avalon.filters[a.shift()];if("function"==typeof r){var i=[e].concat(a);e=r.apply(null,i)}}return e},camelize:F,sanitize:function(e){return e.replace(ha,"").replace(ga,function(e){var t=e.toLowerCase().match(/<(\w+)\s/);if(t){var n=ya[t[1]];n&&(e=e.replace(n,function(e,t,n){var a=n.charAt(0);return t+"="+a+"javascript:void(0)"+a}))}return e.replace(ma," ").replace(/\s+/g," ")})},escape:function(e){return String(e).replace(/&/g,"&amp;").replace(ba,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace($a,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")},currency:function(e,t,n){return(t||"¥")+st(e,isFinite(n)?n:2)},number:function(e,t){return st(e,isFinite(t)?t:3)}};!new function(){function e(e){return parseInt(e,10)||0}function t(e,t,n){var a="";for(0>e&&(a="-",e=-e),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),a+e}function n(e,n,a,r){return function(i){var o=i["get"+e]();return(a>0||o>-a)&&(o+=a),0===o&&-12===a&&(o=12),t(o,n,r)}}function a(e,t){return function(n,a){var r=n["get"+e](),i=(t?"SHORT"+e:e).toUpperCase();return a[i][r]}}function r(e){var n=-1*e.getTimezoneOffset(),a=n>=0?"+":"";return a+=t(Math[n>0?"floor":"ceil"](n/60),2)+t(Math.abs(n%60),2)}function i(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}var o={yyyy:n("FullYear",4),yy:n("FullYear",2,0,!0),y:n("FullYear",1),MMMM:a("Month"),MMM:a("Month",!0),MM:n("Month",2,1),M:n("Month",1,1),dd:n("Date",2),d:n("Date",1),HH:n("Hours",2),H:n("Hours",1),hh:n("Hours",2,-12),h:n("Hours",1,-12),mm:n("Minutes",2),m:n("Minutes",1),ss:n("Seconds",2),s:n("Seconds",1),sss:n("Milliseconds",3),EEEE:a("Day"),EEE:a("Day",!0),a:i,Z:r},l=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,s=/^\/Date\((\d+)\)\/$/;xa.date=function(t,n){var a,r,i=xa.date.locate,c="",u=[];if(n=n||"mediumDate",n=i[n]||n,"string"==typeof t)if(/^\d+$/.test(t))t=e(t);else if(s.test(t))t=+RegExp.$1;else{var f=t.trim(),p=[0,0,0,0,0,0,0],v=new Date(0);f=f.replace(/^(\d+)\D(\d+)\D(\d+)/,function(t,n,a,r){var i=4===r.length?[r,n,a]:[n,a,r];return p[0]=e(i[0]),p[1]=e(i[1])-1,p[2]=e(i[2]),""});var d=v.setFullYear,h=v.setHours;f=f.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/,function(t,n,a,r,i){return p[3]=e(n),p[4]=e(a),p[5]=e(r),i&&(p[6]=Math.round(1e3*parseFloat("0."+i))),""});var m=0,g=0;f=f.replace(/Z|([+-])(\d\d):?(\d\d)/,function(t,n,a,r){return d=v.setUTCFullYear,h=v.setUTCHours,n&&(m=e(n+a),g=e(n+r)),""}),p[3]-=m,p[4]-=g,d.apply(v,p.slice(0,3)),h.apply(v,p.slice(3)),t=v}if("number"==typeof t&&(t=new Date(t)),"date"===avalon.type(t)){for(;n;)r=l.exec(n),r?(u=u.concat(r.slice(1)),n=u.pop()):(u.push(n),n=null);return u.forEach(function(e){a=o[e],c+=a?a(t,i):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}};var c={AMPMS:{0:"上午",1:"下午"},DAY:{0:"星期日",1:"星期一",2:"星期二",3:"星期三",4:"星期四",5:"星期五",6:"星期六"},MONTH:{0:"1月",1:"2月",2:"3月",3:"4月",4:"5月",5:"6月",6:"7月",7:"8月",8:"9月",9:"10月",10:"11月",11:"12月"},SHORTDAY:{0:"周日",1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六"},fullDate:"y年M月d日EEEE",longDate:"y年M月d日",medium:"yyyy-M-d H:mm:ss",mediumDate:"yyyy-M-d",mediumTime:"H:mm:ss","short":"yy-M-d ah:mm",shortDate:"yy-M-d",shortTime:"ah:mm"};c.SHORTMONTH=c.MONTH,xa.date.locate=c};var wa=avalon.modules={"domReady!":{exports:avalon,state:3},avalon:{exports:avalon,state:4}};wa.exports=wa.avalon,new function(){function t(e,t){var a="js";e=e.replace(/^(\w+)\!/,function(e,t){return a=t,""}),"ready"===a&&(n("debug: ready!已经被废弃,请使用domReady!"),a="domReady");var r="";e=e.replace(P,function(e){return r=e,""});var i="."+a,o=/js|css/.test(i)?i:"";e=e.replace(/\.[a-z0-9]+$/g,function(e){return e===i?(o=e,""):e});var l=avalon.mix({query:r,ext:o,res:a,name:e,toUrl:h},t);return l.toUrl(e),l}function i(e){var t=e.name,n=e.res,a=wa[t],r=t&&e.urlNoQuery;if(a&&a.state>=3)return t;if(a=wa[r],a&&a.state>=3)return Xt(a.deps||[],a.factory,r),r;if(t&&!a){a=wa[r]={id:r,state:1};var i=function(r){j[n]=r,r.load(t,e,function(e){arguments.length&&void 0!==e&&(a.exports=e),a.state=4,s()})};j[n]?i(j[n]):Xt([n],i)}return t?r:n+"!"}function o(e,t){for(var n,a=0;n=e[a++];)if(4!==wa[n].state&&(n===t||o(wa[n].deps,t)))return!0}function l(e,t){var a=f(e.src);return e.onload=e.onerror=null,t?(setTimeout(function(){pt.removeChild(e),e=null}),void n("debug: 加载 "+a+" 失败"+t+" "+!wa[a].state)):!0}function s(){e:for(var e,t=A.length;e=A[--t];){var n=wa[e],a=n.deps;if(a){for(var r,i=0;r=a[i];i++){var o=k[r];if(o&&(r=a[i]=o),4!==Object(wa[r]).state)continue e}4!==n.state&&(A.splice(t,1),d(n.id,n.deps,n.factory),s())}}}function c(e,t,a){var r=ft.createElement("script");r.className=dt,r.onload=function(){var r=T.pop();r&&r.require(t),a&&a(),n("debug: 已成功加载 "+e),t&&A.push(t),s()},r.onerror=function(){l(r,!0)},pt.appendChild(r),r.src=e,n("debug: 正准备加载 "+e)}function f(e){return(e||"").replace(P,"")}function p(e){return/^(?:[a-z]+:)?\/\//i.test(String(e))}function v(){var e;try{a.b.c()}catch(t){e=t.stack}if(e)return e=e.split(/[@ ]/g).pop(),e="("===e[0]?e.slice(1,-1):e.replace(/\s/,""),f(e.replace(/(:\d+)?:\d+$/i,""));for(var n,r=pt.getElementsByTagName("script"),i=r.length;n=r[--i];)if(n.className===dt&&"interactive"===n.readyState){var o=n.src;return n.className=f(o)}}function d(t,n,a){var r=Object(wa[t]);r.state=4;for(var i,o=0,l=[];i=n[o++];)if(i=k[i]||i,"exports"===i){var s=r.exports||(r.exports={});l.push(s)}else l.push(wa[i].exports);var c=a.apply(e,l);return void 0!==c&&(r.exports=c),delete r.factory,c}function h(e){0===e.indexOf(this.res+"!")&&(e=e.slice(this.res.length+1));var t=e,n=0,a=this.baseUrl,r=this.parentUrl||a;$(e,u.paths,function(e,a){t=t.replace(a,e),n=1}),n||$(e,u.packages,function(e,n,a){t=t.replace(a.name,a.location)}),this.mapUrl&&$(this.mapUrl,u.map,function(e){$(t,e,function(e,n){t=t.replace(n,e),r=a})});var i=this.ext;i&&n&&t.slice(-i.length)===i&&(t=t.slice(0,-i.length)),p(t)||(r=this.built||/^\w/.test(t)?a:r,t=w(r,t));var o=t+i;return t=o+this.query,$(e,u.urlArgs,function(e){t+=(-1===t.indexOf("?")?"?":"&")+e}),this.url=t,this.urlNoQuery=o}function m(e,t,n){var a=b(e,t,n);return a.sort(x),a}function g(e){return new RegExp("^"+e+"(/|$)")}function y(t){return function(){var n;return t.init&&(n=t.init.apply(e,arguments)),n||t.exports&&C(t.exports)}}function b(e,t,n){var a=[];for(var r in e)if(e.hasOwnProperty(r)){var i={name:r,val:e[r]};a.push(i),i.reg="*"===r&&t?/^/:g(r),n&&"*"!==r&&(i.reg=new RegExp("/"+r.replace(/^\//,"")+"(/|$)"))}return a}function $(e,t,n){t=t||[];for(var a,r=0;a=t[r++];)if(a.reg.test(e))return n(a.val,a.name,a),!1}function x(e,t){var n=e.name,a=t.name;return"*"===a?-1:"*"===n?1:a.length-n.length}function w(e,t){if("/"!==e.charAt(e.length-1)&&(e+="/"),"./"===t.slice(0,2))return e+t.slice(2);if(".."===t.slice(0,2)){for(e+=t;D.test(e);)e=e.replace(D,"");return e}return"/"===t.slice(0,1)?e+t.slice(1):e+t}function C(t){if(!t)return t;var n=e;return t.split(".").forEach(function(e){n=n[e]}),n}var A=[],T=[],E=/\.js$/i,k={},M=[],O=!1;Xt=avalon.require=function(e,n,a,o){if(O){Array.isArray(e)||avalon.error("require方法的第一个参数应为数组 "+e);var l=[],c={},f=a||"callback"+setTimeout("1");o=o||{},o.baseUrl=u.baseUrl;var p=!!o.built;if(a&&(o.parentUrl=a.substr(0,a.lastIndexOf("/")),o.mapUrl=a.replace(E,"")),p){var v=t(o.name,o);f=v.urlNoQuery}else e.forEach(function(e){var n=t(e,o),a=i(n);a&&(c[a]||(l.push(a),c[a]="司徒正美"))});var d=wa[f];d&&4===d.state||(wa[f]={id:f,deps:p?e.concat():l,factory:n||r,state:3}),d||A.push(f),s()}else if(M.push(avalon.slice(arguments)),arguments.length<=2){O=!0;for(var h,m=M.splice(0,M.length);h=m.shift();)Xt.apply(null,h)}},Xt.define=function(e,t,n){"string"!=typeof e&&(n=t,t=e,e="anonymous"),Array.isArray(t)||(n=t,t=[]);var a={built:!O,name:e},r=[t,n,a];n.require=function(e){if(r.splice(2,0,e),wa[e]){wa[e].state=3;var t=!1;try{t=o(wa[e].deps,e)}catch(a){}t&&avalon.error(e+"模块与之前的模块存在循环依赖,请不要直接用script标签引入"+e+"模块")}delete n.require,Xt.apply(null,r)};var i=a.built?"unknown":v();if(i){var l=wa[i];l&&(l.state=2),n.require(i)}else T.push(n)},Xt.config=u,Xt.define.amd=wa;var N=u["orig.paths"]={},L=u["orig.map"]={},S=u.packages=[],H=u["orig.args"]={};avalon.mix(Yt,{paths:function(e){avalon.mix(N,e),u.paths=m(N)},map:function(e){avalon.mix(L,e);var t=m(L,1,1);avalon.each(t,function(e,t){t.val=m(t.val)}),u.map=t},packages:function(e){e=e.concat(S);for(var t,n={},a=[],r=0;t=e[r++];){t="string"==typeof t?{name:t}:t;var i=t.name;if(!n[i]){var o=t.location?t.location:w(i,t.main||"main");o=o.replace(E,""),a.push(t),n[i]=t.location=o,t.reg=g(i)}}u.packages=a.sort()},urlArgs:function(e){"string"==typeof e&&(e={"*":e}),avalon.mix(H,e),u.urlArgs=m(H,1)},baseUrl:function(e){if(!p(e)){var t=pt.querySelector("base");t&&pt.removeChild(t);var n=ft.createElement("a");n.href=e,e=n.href,t&&pt.insertBefore(t,pt.firstChild)}e.length>3&&(u.baseUrl=e)},shim:function(e){for(var t in e){var n=e[t];Array.isArray(n)&&(n=e[t]={deps:n}),n.exportsFn||!n.exports&&!n.init||(n.exportsFn=y(n))}u.shim=e}});var j=Xt.plugins={ready:{load:r},js:{load:function(e,t,n){var a=t.url,r=t.urlNoQuery,i=u.shim[e.replace(E,"")];i?Xt(i.deps||[],function(){var e=avalon.slice(arguments);c(a,r,function(){n(i.exportsFn?i.exportsFn.apply(0,e):void 0)})}):c(a,r)}},css:{load:function(e,t,a){var r=t.url,i=ft.createElement("link");i.rel="stylesheet",i.href=r,pt.appendChild(i),n("debug: 已成功加载 "+r),a()}},text:{load:function(e,t,a){var r=t.url,i=ia();i.onload=function(){var e=i.status;e>399&&600>e?avalon.error(r+" 对应资源不存在或没有开启 CORS"):a(i.responseText)},i.open("GET",r,!0),"withCredentials"in i&&(i.withCredentials=!0),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.send(),n("debug: 正准备加载 "+r)}}};Xt.checkDeps=s;var P=/(\?[^#]*)$/,D=/\/\w+\/\.\./,R=ft.scripts[ft.scripts.length-1],I=R.getAttribute("data-main");if(I){Yt.baseUrl(I);var _=u.baseUrl;u.baseUrl=_.slice(0,_.lastIndexOf("/")+1),c(_.replace(E,"")+".js")}else{var F=f(R.src);u.baseUrl=F.slice(0,F.lastIndexOf("/")+1)}};var Ca=[];"complete"===ft.readyState?setTimeout(ct):(ft.addEventListener("DOMContentLoaded",ct),e.addEventListener("load",ct)),avalon.ready=function(e){ct===r?e(avalon):Ca.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(ft.body)}),"function"==typeof define&&define.amd&&define("avalon",[],function(){return avalon});e.avalon;return avalon.noConflict=function(t){return t&&e.avalon===avalon&&(e.avalon=avalon),avalon},void 0===t&&(e.avalon=avalon),avalon});
@@ -5,8 +5,8 @@
5
5
  http://weibo.com/jslouvre/
6
6
 
7
7
  Released under the MIT license
8
- avalon.modern.shim.js(去掉加载器与domReady) 1.391 build in 2015.1.31
9
- upport IE6+ and other browsers
8
+ avalon.modern.shim.js(无加载器版本) 1.391 built in 2015.2.12
9
+ support IE10+ and other browsers
10
10
  ==================================================*/
11
11
  (function(global, factory) {
12
12
 
@@ -37,7 +37,7 @@ var expose = Date.now()
37
37
  //http://stackoverflow.com/questions/7290086/javascript-use-strict-and-nicks-find-global-function
38
38
  var DOC = window.document
39
39
  var head = DOC.head //HEAD元素
40
- head.insertAdjacentHTML("afterBegin", '<avalon ms-skip><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>')
40
+ head.insertAdjacentHTML("afterBegin", '<avalon ms-skip class="avalonHide"><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>')
41
41
  var ifGroup = head.firstChild
42
42
 
43
43
  function log() {
@@ -134,7 +134,7 @@ avalon.type = function(obj) { //取得目标的类型
134
134
  }
135
135
 
136
136
  var isFunction = function(fn) {
137
- return serialize.call(fn) == "[object Function]"
137
+ return serialize.call(fn) === "[object Function]"
138
138
  }
139
139
 
140
140
  avalon.isFunction = isFunction
@@ -244,7 +244,7 @@ avalon.mix({
244
244
  }
245
245
  var index = -1,
246
246
  length = Math.max(0, Math.ceil((end - start) / step)),
247
- result = Array(length)
247
+ result = new Array(length)
248
248
  while (++index < length) {
249
249
  result[index] = start
250
250
  start += step
@@ -284,10 +284,10 @@ avalon.mix({
284
284
  if (node instanceof avalon) {
285
285
  node = node[0]
286
286
  }
287
- var prop = /[_-]/.test(name) ? camelize(name) : name
287
+ var prop = /[_-]/.test(name) ? camelize(name) : name, fn
288
288
  name = avalon.cssName(prop) || prop
289
289
  if (value === void 0 || typeof value === "boolean") { //获取样式
290
- var fn = cssHooks[prop + ":get"] || cssHooks["@:get"]
290
+ fn = cssHooks[prop + ":get"] || cssHooks["@:get"]
291
291
  if (name === "background") {
292
292
  name = "backgroundColor"
293
293
  }
@@ -317,7 +317,7 @@ avalon.mix({
317
317
  }
318
318
  } else {
319
319
  for (i in obj) {
320
- if (obj.hasOwnProperty(i) && fn(i, obj[i] === false)) {
320
+ if (obj.hasOwnProperty(i) && fn(i, obj[i]) === false) {
321
321
  break
322
322
  }
323
323
  }
@@ -618,7 +618,7 @@ var EventBus = {
618
618
  return this
619
619
  },
620
620
  $fire: function(type) {
621
- var special
621
+ var special, i, v, callback
622
622
  if (/^(\w+)!(\S+)$/.test(type)) {
623
623
  special = RegExp.$1
624
624
  type = RegExp.$2
@@ -627,8 +627,8 @@ var EventBus = {
627
627
  var args = aslice.call(arguments, 1)
628
628
  var detail = [type].concat(args)
629
629
  if (special === "all") {
630
- for (var i in avalon.vmodels) {
631
- var v = avalon.vmodels[i]
630
+ for (i in avalon.vmodels) {
631
+ v = avalon.vmodels[i]
632
632
  if (v !== this) {
633
633
  v.$fire.apply(v, detail)
634
634
  }
@@ -637,8 +637,8 @@ var EventBus = {
637
637
  var elements = events.expr ? findNodes(events.expr) : []
638
638
  if (elements.length === 0)
639
639
  return
640
- for (var i in avalon.vmodels) {
641
- var v = avalon.vmodels[i]
640
+ for (i in avalon.vmodels) {
641
+ v = avalon.vmodels[i]
642
642
  if (v !== this) {
643
643
  if (v.$events.expr) {
644
644
  var eventNodes = findNodes(v.$events.expr)
@@ -671,19 +671,19 @@ var EventBus = {
671
671
  if (special === "up") {
672
672
  alls.reverse()
673
673
  }
674
- for (var i = 0, el; el = alls[i++]; ) {
675
- if (el.$fire.apply(el, detail) === false) {
674
+ for (i = 0; callback = alls[i++]; ) {
675
+ if (callback.$fire.apply(callback, detail) === false) {
676
676
  break
677
677
  }
678
678
  }
679
679
  } else {
680
680
  var callbacks = events[type] || []
681
681
  var all = events.$all || []
682
- for (var i = 0, callback; callback = callbacks[i++]; ) {
682
+ for (i = 0; callback = callbacks[i++]; ) {
683
683
  if (isFunction(callback))
684
684
  callback.apply(this, args)
685
685
  }
686
- for (var i = 0, callback; callback = all[i++]; ) {
686
+ for (i = 0; callback = all[i++]; ) {
687
687
  if (isFunction(callback))
688
688
  callback.apply(this, arguments)
689
689
  }
@@ -851,7 +851,7 @@ function modelFactory(source, $special, $model) {
851
851
  } else {
852
852
  if (accessor.type === 0) { //type 0 计算属性 1 监控属性 2 对象属性
853
853
  //计算属性不需要收集视图刷新函数,都是由其他监控属性代劳
854
- var newValue = accessor.get.call($vmodel)
854
+ newValue = accessor.get.call($vmodel)
855
855
  if (oldValue !== newValue) {
856
856
  $model[name] = newValue
857
857
  //这里不用同步视图
@@ -883,12 +883,12 @@ function modelFactory(source, $special, $model) {
883
883
  initCallbacks.push(function() {
884
884
  var data = {
885
885
  evaluator: function() {
886
- data.type = new Date - 0
886
+ data.type = Math.random(),
887
887
  data.element = null
888
888
  $model[name] = accessor.get.call($vmodel)
889
889
  },
890
890
  element: head,
891
- type: new Date - 0,
891
+ type: Math.random(),
892
892
  handler: noop,
893
893
  args: []
894
894
  }
@@ -929,7 +929,7 @@ function modelFactory(source, $special, $model) {
929
929
  $vmodel.$id = generateID()
930
930
  $vmodel.$model = $model
931
931
  $vmodel.$events = $events
932
- for (var i in EventBus) {
932
+ for ( i in EventBus) {
933
933
  var fn = EventBus[i]
934
934
  if (!W3C) { //在IE6-8下,VB对象的方法里的this并不指向自身,需要用bind处理一下
935
935
  fn = fn.bind($vmodel)
@@ -1371,7 +1371,7 @@ function removeSubscribers() {
1371
1371
  if (diff) {
1372
1372
  //avalon.log("有需要移除的元素")
1373
1373
  while (obj = $$subscribers[--i]) {
1374
- var data = obj.data
1374
+ data = obj.data
1375
1375
  if (data.element === void 0)
1376
1376
  continue
1377
1377
  if (needTest[data.type] && isRemove(data.element)) { //如果它没有在DOM树
@@ -1575,50 +1575,6 @@ function bindingSorter(a, b) {
1575
1575
  return a.priority - b.priority
1576
1576
  }
1577
1577
 
1578
- function scanTag(elem, vmodels, node) {
1579
- //扫描顺序 ms-skip(0) --> ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100)
1580
- //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后
1581
- var a = elem.getAttribute("ms-skip")
1582
- var b = elem.getAttributeNode("ms-important")
1583
- var c = elem.getAttributeNode("ms-controller")
1584
- if (typeof a === "string") {
1585
- return
1586
- } else if (node = b || c) {
1587
- var newVmodel = avalon.vmodels[node.value]
1588
- if (!newVmodel) {
1589
- return
1590
- }
1591
- //ms-important不包含父VM,ms-controller相反
1592
- vmodels = node === b ? [newVmodel] : [newVmodel].concat(vmodels)
1593
- elem.removeAttribute(node.name) //removeAttributeNode不会刷新[ms-controller]样式规则
1594
- elem.classList.remove(node.name)
1595
- createSignalTower(elem, newVmodel)
1596
- }
1597
- scanAttr(elem, vmodels) //扫描特性节点
1598
- }
1599
- function scanNodeList(parent, vmodels) {
1600
- var node = parent.firstChild
1601
- while (node) {
1602
- var nextNode = node.nextSibling
1603
- scanNode(node, node.nodeType, vmodels)
1604
- node = nextNode
1605
- }
1606
- }
1607
-
1608
- function scanNodeArray(nodes, vmodels) {
1609
- for (var i = 0, node; node = nodes[i++]; ) {
1610
- scanNode(node, node.nodeType, vmodels)
1611
- }
1612
- }
1613
- function scanNode(node, nodeType, vmodels) {
1614
- if (nodeType === 1) {
1615
- scanTag(node, vmodels) //扫描元素节点
1616
- } else if (nodeType === 3 && rexpr.test(node.data)){
1617
- scanText(node, vmodels) //扫描文本节点
1618
- } else if (kernel.commentInterpolate && nodeType === 8 && !rexpr.test(node.nodeValue)) {
1619
- scanText(node, vmodels) //扫描注释节点
1620
- }
1621
- }
1622
1578
  function scanAttr(elem, vmodels) {
1623
1579
  //防止setAttribute, removeAttribute时 attributes自动被同步,导致for循环出错
1624
1580
  var attributes = elem.hasAttributes() ? avalon.slice(elem.attributes) : []
@@ -1687,8 +1643,8 @@ function scanAttr(elem, vmodels) {
1687
1643
  }
1688
1644
  bindings.sort(bindingSorter)
1689
1645
  var scanNode = true
1690
- for (var i = 0, binding; binding = bindings[i]; i++) {
1691
- var type = binding.type
1646
+ for (i = 0; binding = bindings[i]; i++) {
1647
+ type = binding.type
1692
1648
  if (rnoscanAttrBinding.test(type)) {
1693
1649
  return executeBindings(bindings.slice(0, i + 1), vmodels)
1694
1650
  } else if (scanNode) {
@@ -1704,14 +1660,61 @@ function scanAttr(elem, vmodels) {
1704
1660
 
1705
1661
  var rnoscanAttrBinding = /^if|widget|repeat$/
1706
1662
  var rnoscanNodeBinding = /^each|with|html|include$/
1663
+ function scanNodeList(parent, vmodels) {
1664
+ var node = parent.firstChild
1665
+ while (node) {
1666
+ var nextNode = node.nextSibling
1667
+ scanNode(node, node.nodeType, vmodels)
1668
+ node = nextNode
1669
+ }
1670
+ }
1671
+
1672
+ function scanNodeArray(nodes, vmodels) {
1673
+ for (var i = 0, node; node = nodes[i++]; ) {
1674
+ scanNode(node, node.nodeType, vmodels)
1675
+ }
1676
+ }
1677
+ function scanNode(node, nodeType, vmodels) {
1678
+ if (nodeType === 1) {
1679
+ scanTag(node, vmodels) //扫描元素节点
1680
+ } else if (nodeType === 3 && rexpr.test(node.data)){
1681
+ scanText(node, vmodels) //扫描文本节点
1682
+ } else if (kernel.commentInterpolate && nodeType === 8 && !rexpr.test(node.nodeValue)) {
1683
+ scanText(node, vmodels) //扫描注释节点
1684
+ }
1685
+ }
1686
+ function scanTag(elem, vmodels, node) {
1687
+ //扫描顺序 ms-skip(0) --> ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100)
1688
+ //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后
1689
+ var a = elem.getAttribute("ms-skip")
1690
+ var b = elem.getAttributeNode("ms-important")
1691
+ var c = elem.getAttributeNode("ms-controller")
1692
+ if (typeof a === "string") {
1693
+ return
1694
+ } else if (node = b || c) {
1695
+ var newVmodel = avalon.vmodels[node.value]
1696
+ if (!newVmodel) {
1697
+ return
1698
+ }
1699
+ //ms-important不包含父VM,ms-controller相反
1700
+ vmodels = node === b ? [newVmodel] : [newVmodel].concat(vmodels)
1701
+ elem.removeAttribute(node.name) //removeAttributeNode不会刷新[ms-controller]样式规则
1702
+ elem.classList.remove(node.name)
1703
+ createSignalTower(elem, newVmodel)
1704
+ }
1705
+ scanAttr(elem, vmodels) //扫描特性节点
1706
+ }
1707
1707
  var rhasHtml = /\|\s*html\s*/,
1708
1708
  r11a = /\|\|/g,
1709
1709
  rlt = /&lt;/g,
1710
1710
  rgt = /&gt;/g
1711
-
1711
+ rstringLiteral = /(['"])(\\\1|.)+?\1/g
1712
1712
  function getToken(value) {
1713
1713
  if (value.indexOf("|") > 0) {
1714
- var index = value.replace(r11a, "\u1122\u3344").indexOf("|") //干掉所有短路或
1714
+ var scapegoat = value.replace( rstringLiteral, function(_){
1715
+ return Math.pow(10,_.length)
1716
+ })
1717
+ var index = scapegoat.replace(r11a, "\u1122\u3344").indexOf("|") //干掉所有短路或
1715
1718
  if (index > -1) {
1716
1719
  return {
1717
1720
  filters: value.slice(index),
@@ -1775,7 +1778,7 @@ function scanText(textNode, vmodels) {
1775
1778
  tokens = scanExpr(textNode.data)
1776
1779
  }
1777
1780
  if (tokens.length) {
1778
- for (var i = 0, token; token = tokens[i++]; ) {
1781
+ for (var i = 0; token = tokens[i++]; ) {
1779
1782
  var node = DOC.createTextNode(token.value) //将文本转换为文本节点,并替换原来的文本节点
1780
1783
  if (token.expr) {
1781
1784
  token.type = "text"
@@ -2225,14 +2228,14 @@ var keywords =
2225
2228
  // 关键字
2226
2229
  "break,case,catch,continue,debugger,default,delete,do,else,false" +
2227
2230
  ",finally,for,function,if,in,instanceof,new,null,return,switch,this" +
2228
- ",throw,true,try,typeof,var,void,while,with"
2231
+ ",throw,true,try,typeof,var,void,while,with" +
2229
2232
  // 保留字
2230
- + ",abstract,boolean,byte,char,class,const,double,enum,export,extends" +
2233
+ ",abstract,boolean,byte,char,class,const,double,enum,export,extends" +
2231
2234
  ",final,float,goto,implements,import,int,interface,long,native" +
2232
2235
  ",package,private,protected,public,short,static,super,synchronized" +
2233
- ",throws,transient,volatile"
2236
+ ",throws,transient,volatile" +
2234
2237
  // ECMA 5 - use strict
2235
- + ",arguments,let,yield" + ",undefined"
2238
+ ",arguments,let,yield" + ",undefined"
2236
2239
  var rrexpstr = /\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g
2237
2240
  var rsplit = /[^\w$]+/g
2238
2241
  var rkeywords = new RegExp(["\\b" + keywords.replace(/,/g, '\\b|\\b') + "\\b"].join('|'), 'g')
@@ -2372,7 +2375,7 @@ function parseExpr(code, scopes, data) {
2372
2375
  data.evaluator = fn
2373
2376
  return
2374
2377
  }
2375
- var prefix = assigns.join(", ")
2378
+ prefix = assigns.join(", ")
2376
2379
  if (prefix) {
2377
2380
  prefix = "var " + prefix
2378
2381
  }
@@ -2440,12 +2443,6 @@ function parseExprProxy(code, scopes, data, tokens, noregister) {
2440
2443
  }
2441
2444
  }
2442
2445
  avalon.parseExprProxy = parseExprProxy
2443
- /*********************************************************************
2444
- * 各种指令 *
2445
- **********************************************************************/
2446
- //ms-skip绑定已经在scanTag 方法中实现
2447
- //ms-controller绑定已经在scanTag 方法中实现
2448
- //ms-important绑定已经在scanTag 方法中实现
2449
2446
  var bools = "autofocus,autoplay,async,allowTransparency,checked,controls,declare,disabled,defer,defaultChecked,defaultSelected" +
2450
2447
  "contentEditable,isMap,loop,multiple,noHref,noResize,noShade,open,readOnly,selected"
2451
2448
  var boolMap = {}
@@ -2543,7 +2540,7 @@ bindingExecutors.attr = function(val, elem, data) {
2543
2540
  var loaded = data.includeLoaded
2544
2541
  var replace = data.includeReplaced
2545
2542
  var target = replace ? elem.parentNode : elem
2546
- function scanTemplate(text) {
2543
+ var scanTemplate = function(text) {
2547
2544
  if (loaded) {
2548
2545
  text = loaded.apply(target, [text].concat(vmodels))
2549
2546
  }
@@ -2593,7 +2590,7 @@ bindingExecutors.attr = function(val, elem, data) {
2593
2590
  var el = val && val.nodeType === 1 ? val : DOC.getElementById(val)
2594
2591
  if (el) {
2595
2592
  if (el.tagName === "NOSCRIPT" && !(el.innerHTML || el.fixIE78)) { //IE7-8 innerText,innerHTML都无法取得其内容,IE6能取得其innerHTML
2596
- var xhr = getXHR() //IE9-11与chrome的innerHTML会得到转义的内容,它们的innerText可以
2593
+ xhr = getXHR() //IE9-11与chrome的innerHTML会得到转义的内容,它们的innerText可以
2597
2594
  xhr.open("GET", location, false) //谢谢Nodejs 乱炖群 深圳-纯属虚构
2598
2595
  xhr.send(null)
2599
2596
  //http://bbs.csdn.net/topics/390349046?page=1#post-393492653
@@ -2631,8 +2628,6 @@ bindingExecutors.attr = function(val, elem, data) {
2631
2628
  "title,alt,src,value,css,include,href".replace(rword, function(name) {
2632
2629
  bindingHandlers[name] = bindingHandlers.attr
2633
2630
  })
2634
- //ms-include绑定已由ms-attr绑定实现
2635
-
2636
2631
  //根据VM的属性值或表达式的值切换类名,ms-class="xxx yyy zzz:flag"
2637
2632
  //http://www.cnblogs.com/rubylouvre/archive/2012/12/17/2818540.html
2638
2633
  bindingHandlers["class"] = function(data, vmodels) {
@@ -2723,6 +2718,10 @@ bindingExecutors ["class"] = function(val, elem, data) {
2723
2718
  "hover,active".replace(rword, function(method) {
2724
2719
  bindingHandlers[method] = bindingHandlers["class"]
2725
2720
  })
2721
+ //ms-controller绑定已经在scanTag 方法中实现
2722
+ //ms-css绑定已由ms-attr绑定实现
2723
+
2724
+
2726
2725
  // bindingHandlers.data 定义在if.js
2727
2726
  bindingExecutors.data = function(val, elem, data) {
2728
2727
  var key = "data-" + data.param
@@ -2733,357 +2732,107 @@ bindingExecutors.data = function(val, elem, data) {
2733
2732
  }
2734
2733
  }
2735
2734
 
2736
- // bindingHandlers.text 定义在if.js
2737
- bindingExecutors.text = function(val, elem) {
2738
- val = val == null ? "" : val //不在页面上显示undefined null
2739
- if (elem.nodeType === 3) { //绑定在文本节点上
2740
- try { //IE对游离于DOM树外的节点赋值会报错
2741
- elem.data = val
2742
- } catch (e) {
2743
- }
2744
- } else { //绑定在特性节点上
2745
- elem.textContent = val
2746
- }
2747
- }
2735
+ //双工绑定
2736
+ var duplexBinding = bindingHandlers.duplex = function(data, vmodels) {
2737
+ var elem = data.element,
2738
+ hasCast
2739
+ parseExprProxy(data.value, vmodels, data, 0, 1)
2748
2740
 
2749
- // bindingHandlers.html 定义在if.js
2750
- bindingExecutors.html = function(val, elem, data) {
2751
- val = val == null ? "" : val
2752
- var isHtmlFilter = "group" in data
2753
- var parent = isHtmlFilter ? elem.parentNode : elem
2754
- if (!parent)
2755
- return
2756
- if (val.nodeType === 11) { //将val转换为文档碎片
2757
- var fragment = val
2758
- } else if (val.nodeType === 1 || val.item) {
2759
- var nodes = val.nodeType === 1 ? val.childNodes : val.item ? val : []
2760
- fragment = hyperspace.cloneNode(true)
2761
- while (nodes[0]) {
2762
- fragment.appendChild(nodes[0])
2741
+ data.changed = getBindingCallback(elem, "data-duplex-changed", vmodels) || noop
2742
+ if (data.evaluator && data.args) {
2743
+ var params = []
2744
+ var casting = oneObject("string,number,boolean,checked")
2745
+ if (elem.type === "radio" && data.param === "") {
2746
+ data.param = "checked"
2763
2747
  }
2764
- } else {
2765
- fragment = avalon.parseHTML(val)
2766
- }
2767
- //插入占位符, 如果是过滤器,需要有节制地移除指定的数量,如果是html指令,直接清空
2768
- var comment = DOC.createComment("ms-html")
2769
- if (isHtmlFilter) {
2770
- parent.insertBefore(comment, elem)
2771
- var n = data.group, i = 1
2772
- while (i < n) {
2773
- var node = elem.nextSibling
2774
- if (node) {
2775
- parent.removeChild(node)
2776
- i++
2748
+ if (elem.msData) {
2749
+ elem.msData["ms-duplex"] = data.value
2750
+ }
2751
+ data.param.replace(/\w+/g, function(name) {
2752
+ if (/^(checkbox|radio)$/.test(elem.type) && /^(radio|checked)$/.test(name)) {
2753
+ if (name === "radio")
2754
+ log("ms-duplex-radio已经更名为ms-duplex-checked")
2755
+ name = "checked"
2756
+ data.isChecked = true
2757
+ }
2758
+ if (name === "bool") {
2759
+ name = "boolean"
2760
+ log("ms-duplex-bool已经更名为ms-duplex-boolean")
2761
+ } else if (name === "text") {
2762
+ name = "string"
2763
+ log("ms-duplex-text已经更名为ms-duplex-string")
2777
2764
  }
2765
+ if (casting[name]) {
2766
+ hasCast = true
2767
+ }
2768
+ avalon.Array.ensure(params, name)
2769
+ })
2770
+ if (!hasCast) {
2771
+ params.push("string")
2778
2772
  }
2779
- parent.removeChild(elem)
2780
- data.element = comment //防止被CG
2781
- } else {
2782
- avalon.clearHTML(parent).appendChild(comment)
2783
- }
2784
- if (isHtmlFilter) {
2785
- data.group = fragment.childNodes.length || 1
2773
+ data.param = params.join("-")
2774
+ data.bound = function(type, callback) {
2775
+ if (elem.addEventListener) {
2776
+ elem.addEventListener(type, callback, false)
2777
+ } else {
2778
+ elem.attachEvent("on" + type, callback)
2779
+ }
2780
+ var old = data.rollback
2781
+ data.rollback = function() {
2782
+ elem.avalonSetter = null
2783
+ avalon.unbind(elem, type, callback)
2784
+ old && old()
2785
+ }
2786
+ }
2787
+ for (var i in avalon.vmodels) {
2788
+ var v = avalon.vmodels[i]
2789
+ v.$fire("avalon-ms-duplex-init", data)
2790
+ }
2791
+ var cpipe = data.pipe || (data.pipe = pipe)
2792
+ cpipe(null, data, "init")
2793
+ var tagName = elem.tagName
2794
+ duplexBinding[tagName] && duplexBinding[tagName](elem, data.evaluator.apply(null, data.args), data)
2786
2795
  }
2787
- var nodes = avalon.slice(fragment.childNodes)
2788
- if (nodes[0]) {
2789
- if (comment.parentNode)
2790
- comment.parentNode.replaceChild(fragment, comment)
2791
- if (isHtmlFilter) {
2792
- data.element = nodes[0]
2796
+ }
2797
+ //不存在 bindingExecutors.duplex
2798
+ function fixNull(val) {
2799
+ return val == null ? "" : val
2800
+ }
2801
+ avalon.duplexHooks = {
2802
+ checked: {
2803
+ get: function(val, data) {
2804
+ return !data.element.oldValue
2793
2805
  }
2806
+ },
2807
+ string: {
2808
+ get: function(val) { //同步到VM
2809
+ return val
2810
+ },
2811
+ set: fixNull
2812
+ },
2813
+ "boolean": {
2814
+ get: function(val) {
2815
+ return val === "true"
2816
+ },
2817
+ set: fixNull
2818
+ },
2819
+ number: {
2820
+ get: function(val) {
2821
+ return isFinite(val) ? parseFloat(val) || 0 : val
2822
+ },
2823
+ set: fixNull
2794
2824
  }
2795
- scanNodeArray(nodes, data.vmodels)
2796
2825
  }
2797
2826
 
2798
- bindingHandlers["if"] =
2799
- bindingHandlers.data =
2800
- bindingHandlers.text =
2801
- bindingHandlers.html =
2802
- function(data, vmodels) {
2803
- parseExprProxy(data.value, vmodels, data)
2827
+ function pipe(val, data, action, e) {
2828
+ data.param.replace(/\w+/g, function(name) {
2829
+ var hook = avalon.duplexHooks[name]
2830
+ if (hook && typeof hook[action] === "function") {
2831
+ val = hook[action](val, data)
2804
2832
  }
2805
-
2806
- bindingExecutors["if"] = function(val, elem, data) {
2807
- if (val) { //插回DOM树
2808
- if (elem.nodeType === 8) {
2809
- elem.parentNode.replaceChild(data.template, elem)
2810
- elem = data.element = data.template //这时可能为null
2811
- }
2812
- if (elem.getAttribute(data.name)) {
2813
- elem.removeAttribute(data.name)
2814
- scanAttr(elem, data.vmodels)
2815
- }
2816
- data.rollback = null
2817
- } else { //移出DOM树,并用注释节点占据原位置
2818
- if (elem.nodeType === 1) {
2819
- var node = data.element = DOC.createComment("ms-if")
2820
- elem.parentNode.replaceChild(node, elem)
2821
- data.template = elem //元素节点
2822
- ifGroup.appendChild(elem)
2823
- data.rollback = function() {
2824
- if (elem.parentNode === ifGroup) {
2825
- ifGroup.removeChild(elem)
2826
- }
2827
- }
2828
- }
2829
- }
2830
- }
2831
-
2832
-
2833
- function parseDisplay(nodeName, val) {
2834
- //用于取得此类标签的默认display值
2835
- var key = "_" + nodeName
2836
- if (!parseDisplay[key]) {
2837
- var node = DOC.createElement(nodeName)
2838
- root.appendChild(node)
2839
- if (W3C) {
2840
- val = getComputedStyle(node, null).display
2841
- } else {
2842
- val = node.currentStyle.display
2843
- }
2844
- root.removeChild(node)
2845
- parseDisplay[key] = val
2846
- }
2847
- return parseDisplay[key]
2848
- }
2849
-
2850
- avalon.parseDisplay = parseDisplay
2851
-
2852
- bindingHandlers.visible = function(data, vmodels) {
2853
- var elem = avalon(data.element)
2854
- var display = elem.css("display")
2855
- if (display === "none") {
2856
- var style = elem[0].style
2857
- var has = /visibility/i.test(style.cssText)
2858
- var visible = elem.css("visibility")
2859
- style.display = ""
2860
- style.visibility = "hidden"
2861
- display = elem.css("display")
2862
- if (display === "none") {
2863
- display = parseDisplay(elem[0].nodeName)
2864
- }
2865
- style.visibility = has ? visible : ""
2866
- }
2867
- data.display = display
2868
- parseExprProxy(data.value, vmodels, data)
2869
- }
2870
-
2871
- bindingExecutors.visible = function(val, elem, data) {
2872
- elem.style.display = val ? data.display : "none"
2873
- }
2874
-
2875
- var rdash = /\(([^)]*)\)/
2876
- bindingHandlers.on = function(data, vmodels) {
2877
- var value = data.value
2878
- data.type = "on"
2879
- var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10
2880
- if (typeof bindingHandlers.on[eventType + "Hook"] === "function") {
2881
- bindingHandlers.on[eventType + "Hook"](data)
2882
- }
2883
- if (value.indexOf("(") > 0 && value.indexOf(")") > -1) {
2884
- var matched = (value.match(rdash) || ["", ""])[1].trim()
2885
- if (matched === "" || matched === "$event") { // aaa() aaa($event)当成aaa处理
2886
- value = value.replace(rdash, "")
2887
- }
2888
- }
2889
- parseExprProxy(value, vmodels, data)
2890
- }
2891
-
2892
- bindingExecutors.on = function(callback, elem, data) {
2893
- callback = function(e) {
2894
- var fn = data.evaluator || noop
2895
- return fn.apply(this, data.args.concat(e))
2896
- }
2897
- var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10
2898
- if (eventType === "scan") {
2899
- callback.call(elem, {
2900
- type: eventType
2901
- })
2902
- } else if (typeof data.specialBind === "function") {
2903
- data.specialBind(elem, callback)
2904
- } else {
2905
- var removeFn = avalon.bind(elem, eventType, callback)
2906
- }
2907
- data.rollback = function() {
2908
- if (typeof data.specialUnbind === "function") {
2909
- data.specialUnbind()
2910
- } else {
2911
- avalon.unbind(elem, eventType, removeFn)
2912
- }
2913
- }
2914
- }
2915
-
2916
-
2917
- bindingHandlers.widget = function(data, vmodels) {
2918
- var args = data.value.match(rword)
2919
- var elem = data.element
2920
- var widget = args[0]
2921
- var id = args[1]
2922
- if (!id || id === "$") {//没有定义或为$时,取组件名+随机数
2923
- id = generateID(widget)
2924
- }
2925
- var optName = args[2] || widget//没有定义,取组件名
2926
- var constructor = avalon.ui[widget]
2927
- if (typeof constructor === "function") { //ms-widget="tabs,tabsAAA,optname"
2928
- vmodels = elem.vmodels || vmodels
2929
- for (var i = 0, v; v = vmodels[i++]; ) {
2930
- if (v.hasOwnProperty(optName) && typeof v[optName] === "object") {
2931
- var vmOptions = v[optName]
2932
- vmOptions = vmOptions.$model || vmOptions
2933
- break
2934
- }
2935
- }
2936
- if (vmOptions) {
2937
- var wid = vmOptions[widget + "Id"]
2938
- if (typeof wid === "string") {
2939
- id = wid
2940
- }
2941
- }
2942
- //抽取data-tooltip-text、data-tooltip-attr属性,组成一个配置对象
2943
- var widgetData = avalon.getWidgetData(elem, widget)
2944
- data.value = [widget, id, optName].join(",")
2945
- data[widget + "Id"] = id
2946
- data.evaluator = noop
2947
- elem.msData["ms-widget-id"] = id
2948
- var options = data[widget + "Options"] = avalon.mix({}, constructor.defaults, vmOptions || {}, widgetData)
2949
- elem.removeAttribute("ms-widget")
2950
- var vmodel = constructor(elem, data, vmodels) || {} //防止组件不返回VM
2951
- if (vmodel.$id) {
2952
- avalon.vmodels[id] = vmodel
2953
- createSignalTower(elem, vmodel)
2954
- if (vmodel.hasOwnProperty("$init")) {
2955
- vmodel.$init(function() {
2956
- avalon.scan(elem, [vmodel].concat(vmodels))
2957
- if (typeof options.onInit === "function") {
2958
- options.onInit.call(elem, vmodel, options, vmodels)
2959
- }
2960
- })
2961
- }
2962
- data.rollback = function() {
2963
- try {
2964
- vmodel.widgetElement = null
2965
- vmodel.$remove()
2966
- } catch (e) {
2967
- }
2968
- elem.msData = {}
2969
- delete avalon.vmodels[vmodel.$id]
2970
- }
2971
- addSubscribers(data, widgetList)
2972
- if (window.chrome) {
2973
- elem.addEventListener("DOMNodeRemovedFromDocument", function() {
2974
- setTimeout(removeSubscribers)
2975
- })
2976
- }
2977
- } else {
2978
- avalon.scan(elem, vmodels)
2979
- }
2980
- } else if (vmodels.length) { //如果该组件还没有加载,那么保存当前的vmodels
2981
- elem.vmodels = vmodels
2982
- }
2983
- }
2984
- var widgetList = []
2985
- //不存在 bindingExecutors.widget
2986
- //双工绑定
2987
- var duplexBinding = bindingHandlers.duplex = function(data, vmodels) {
2988
- var elem = data.element,
2989
- hasCast
2990
- parseExprProxy(data.value, vmodels, data, 0, 1)
2991
-
2992
- data.changed = getBindingCallback(elem, "data-duplex-changed", vmodels) || noop
2993
- if (data.evaluator && data.args) {
2994
- var params = []
2995
- var casting = oneObject("string,number,boolean,checked")
2996
- if (elem.type === "radio" && data.param === "") {
2997
- data.param = "checked"
2998
- }
2999
- if (elem.msData) {
3000
- elem.msData["ms-duplex"] = data.value
3001
- }
3002
- data.param.replace(/\w+/g, function(name) {
3003
- if (/^(checkbox|radio)$/.test(elem.type) && /^(radio|checked)$/.test(name)) {
3004
- if (name === "radio")
3005
- log("ms-duplex-radio已经更名为ms-duplex-checked")
3006
- name = "checked"
3007
- data.isChecked = true
3008
- }
3009
- if (name === "bool") {
3010
- name = "boolean"
3011
- log("ms-duplex-bool已经更名为ms-duplex-boolean")
3012
- } else if (name === "text") {
3013
- name = "string"
3014
- log("ms-duplex-text已经更名为ms-duplex-string")
3015
- }
3016
- if (casting[name]) {
3017
- hasCast = true
3018
- }
3019
- avalon.Array.ensure(params, name)
3020
- })
3021
- if (!hasCast) {
3022
- params.push("string")
3023
- }
3024
- data.param = params.join("-")
3025
- data.bound = function(type, callback) {
3026
- if (elem.addEventListener) {
3027
- elem.addEventListener(type, callback, false)
3028
- } else {
3029
- elem.attachEvent("on" + type, callback)
3030
- }
3031
- var old = data.rollback
3032
- data.rollback = function() {
3033
- elem.avalonSetter = null
3034
- avalon.unbind(elem, type, callback)
3035
- old && old()
3036
- }
3037
- }
3038
- for (var i in avalon.vmodels) {
3039
- var v = avalon.vmodels[i]
3040
- v.$fire("avalon-ms-duplex-init", data)
3041
- }
3042
- var cpipe = data.pipe || (data.pipe = pipe)
3043
- cpipe(null, data, "init")
3044
- var tagName = elem.tagName
3045
- duplexBinding[tagName] && duplexBinding[tagName](elem, data.evaluator.apply(null, data.args), data)
3046
- }
3047
- }
3048
- //不存在 bindingExecutors.duplex
3049
- function fixNull(val) {
3050
- return val == null ? "" : val
3051
- }
3052
- avalon.duplexHooks = {
3053
- checked: {
3054
- get: function(val, data) {
3055
- return !data.element.oldValue
3056
- }
3057
- },
3058
- string: {
3059
- get: function(val) { //同步到VM
3060
- return val
3061
- },
3062
- set: fixNull
3063
- },
3064
- "boolean": {
3065
- get: function(val) {
3066
- return val === "true"
3067
- },
3068
- set: fixNull
3069
- },
3070
- number: {
3071
- get: function(val) {
3072
- return isFinite(val) ? parseFloat(val) || 0 : val
3073
- },
3074
- set: fixNull
3075
- }
3076
- }
3077
-
3078
- function pipe(val, data, action, e) {
3079
- data.param.replace(/\w+/g, function(name) {
3080
- var hook = avalon.duplexHooks[name]
3081
- if (hook && typeof hook[action] === "function") {
3082
- val = hook[action](val, data)
3083
- }
3084
- })
3085
- return val
3086
- }
2833
+ })
2834
+ return val
2835
+ }
3087
2836
 
3088
2837
  var TimerID, ribbon = []
3089
2838
  function W3CFire(el, name, detail) {
@@ -3300,6 +3049,135 @@ duplexBinding.SELECT = function(element, evaluator, data) {
3300
3049
  }
3301
3050
 
3302
3051
 
3052
+ // bindingHandlers.html 定义在if.js
3053
+ bindingExecutors.html = function(val, elem, data) {
3054
+ val = val == null ? "" : val
3055
+ var isHtmlFilter = "group" in data
3056
+ var parent = isHtmlFilter ? elem.parentNode : elem
3057
+ if (!parent)
3058
+ return
3059
+ if (val.nodeType === 11) { //将val转换为文档碎片
3060
+ var fragment = val
3061
+ } else if (val.nodeType === 1 || val.item) {
3062
+ var nodes = val.nodeType === 1 ? val.childNodes : val.item ? val : []
3063
+ fragment = hyperspace.cloneNode(true)
3064
+ while (nodes[0]) {
3065
+ fragment.appendChild(nodes[0])
3066
+ }
3067
+ } else {
3068
+ fragment = avalon.parseHTML(val)
3069
+ }
3070
+ //插入占位符, 如果是过滤器,需要有节制地移除指定的数量,如果是html指令,直接清空
3071
+ var comment = DOC.createComment("ms-html")
3072
+ if (isHtmlFilter) {
3073
+ parent.insertBefore(comment, elem)
3074
+ var n = data.group, i = 1
3075
+ while (i < n) {
3076
+ var node = elem.nextSibling
3077
+ if (node) {
3078
+ parent.removeChild(node)
3079
+ i++
3080
+ }
3081
+ }
3082
+ parent.removeChild(elem)
3083
+ data.element = comment //防止被CG
3084
+ } else {
3085
+ avalon.clearHTML(parent).appendChild(comment)
3086
+ }
3087
+ if (isHtmlFilter) {
3088
+ data.group = fragment.childNodes.length || 1
3089
+ }
3090
+ nodes = avalon.slice(fragment.childNodes)
3091
+ if (nodes[0]) {
3092
+ if (comment.parentNode)
3093
+ comment.parentNode.replaceChild(fragment, comment)
3094
+ if (isHtmlFilter) {
3095
+ data.element = nodes[0]
3096
+ }
3097
+ }
3098
+ scanNodeArray(nodes, data.vmodels)
3099
+ }
3100
+
3101
+ bindingHandlers["if"] =
3102
+ bindingHandlers.data =
3103
+ bindingHandlers.text =
3104
+ bindingHandlers.html =
3105
+ function(data, vmodels) {
3106
+ parseExprProxy(data.value, vmodels, data)
3107
+ }
3108
+
3109
+ bindingExecutors["if"] = function(val, elem, data) {
3110
+ if (val) { //插回DOM树
3111
+ if (elem.nodeType === 8) {
3112
+ elem.parentNode.replaceChild(data.template, elem)
3113
+ elem = data.element = data.template //这时可能为null
3114
+ }
3115
+ if (elem.getAttribute(data.name)) {
3116
+ elem.removeAttribute(data.name)
3117
+ scanAttr(elem, data.vmodels)
3118
+ }
3119
+ data.rollback = null
3120
+ } else { //移出DOM树,并用注释节点占据原位置
3121
+ if (elem.nodeType === 1) {
3122
+ var node = data.element = DOC.createComment("ms-if")
3123
+ elem.parentNode.replaceChild(node, elem)
3124
+ data.template = elem //元素节点
3125
+ ifGroup.appendChild(elem)
3126
+ data.rollback = function() {
3127
+ if (elem.parentNode === ifGroup) {
3128
+ ifGroup.removeChild(elem)
3129
+ }
3130
+ }
3131
+ }
3132
+ }
3133
+ }
3134
+
3135
+
3136
+ //ms-important绑定已经在scanTag 方法中实现
3137
+ //ms-include绑定已由ms-attr绑定实现
3138
+
3139
+ var rdash = /\(([^)]*)\)/
3140
+ bindingHandlers.on = function(data, vmodels) {
3141
+ var value = data.value
3142
+ data.type = "on"
3143
+ var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10
3144
+ if (typeof bindingHandlers.on[eventType + "Hook"] === "function") {
3145
+ bindingHandlers.on[eventType + "Hook"](data)
3146
+ }
3147
+ if (value.indexOf("(") > 0 && value.indexOf(")") > -1) {
3148
+ var matched = (value.match(rdash) || ["", ""])[1].trim()
3149
+ if (matched === "" || matched === "$event") { // aaa() aaa($event)当成aaa处理
3150
+ value = value.replace(rdash, "")
3151
+ }
3152
+ }
3153
+ parseExprProxy(value, vmodels, data)
3154
+ }
3155
+
3156
+ bindingExecutors.on = function(callback, elem, data) {
3157
+ callback = function(e) {
3158
+ var fn = data.evaluator || noop
3159
+ return fn.apply(this, data.args.concat(e))
3160
+ }
3161
+ var eventType = data.param.replace(/-\d+$/, "") // ms-on-mousemove-10
3162
+ if (eventType === "scan") {
3163
+ callback.call(elem, {
3164
+ type: eventType
3165
+ })
3166
+ } else if (typeof data.specialBind === "function") {
3167
+ data.specialBind(elem, callback)
3168
+ } else {
3169
+ var removeFn = avalon.bind(elem, eventType, callback)
3170
+ }
3171
+ data.rollback = function() {
3172
+ if (typeof data.specialUnbind === "function") {
3173
+ data.specialUnbind()
3174
+ } else {
3175
+ avalon.unbind(elem, eventType, removeFn)
3176
+ }
3177
+ }
3178
+ }
3179
+
3180
+
3303
3181
  bindingHandlers.repeat = function(data, vmodels) {
3304
3182
  var type = data.type
3305
3183
  parseExprProxy(data.value, vmodels, data, 0, 1)
@@ -3372,9 +3250,9 @@ bindingHandlers.repeat = function(data, vmodels) {
3372
3250
  check0 = "$first"
3373
3251
  check1 = "$last"
3374
3252
  }
3375
- for (var i = 0, p; p = vmodels[i++]; ) {
3376
- if (p.hasOwnProperty(check0) && p.hasOwnProperty(check1)) {
3377
- data.$outer = p
3253
+ for (i = 0; v = vmodels[i++]; ) {
3254
+ if (v.hasOwnProperty(check0) && v.hasOwnProperty(check1)) {
3255
+ data.$outer = v
3378
3256
  break
3379
3257
  }
3380
3258
  }
@@ -3404,7 +3282,7 @@ bindingExecutors.repeat = function(method, pos, el) {
3404
3282
  var n = pos + el
3405
3283
  var array = data.$repeat
3406
3284
  var last = array.length - 1
3407
- var fragments = []
3285
+ var fragments = [], fragment
3408
3286
  var start = locateNode(data, pos)
3409
3287
  for (var i = pos; i < n; i++) {
3410
3288
  var proxy = eachProxyAgent(i, data)
@@ -3412,7 +3290,7 @@ bindingExecutors.repeat = function(method, pos, el) {
3412
3290
  shimController(data, transation, proxy, fragments)
3413
3291
  }
3414
3292
  parent.insertBefore(transation, start)
3415
- for (var i = 0, fragment; fragment = fragments[i++]; ) {
3293
+ for (i = 0; fragment = fragments[i++]; ) {
3416
3294
  scanNodeArray(fragment.nodes, fragment.vmodels)
3417
3295
  fragment.nodes = fragment.vmodels = null
3418
3296
  }
@@ -3454,7 +3332,7 @@ bindingExecutors.repeat = function(method, pos, el) {
3454
3332
  parent.insertBefore(transation, end)
3455
3333
  break
3456
3334
  case "index": //将proxies中的第pos个起的所有元素重新索引
3457
- var last = proxies.length - 1
3335
+ last = proxies.length - 1
3458
3336
  for (; el = proxies[pos]; pos++) {
3459
3337
  el.$index = pos
3460
3338
  el.$first = pos === 0
@@ -3462,7 +3340,7 @@ bindingExecutors.repeat = function(method, pos, el) {
3462
3340
  }
3463
3341
  return
3464
3342
  case "set": //将proxies中的第pos个元素的VM设置为el(pos为数字,el任意)
3465
- var proxy = proxies[pos]
3343
+ proxy = proxies[pos]
3466
3344
  if (proxy) {
3467
3345
  notifySubscribers(proxy.$events.$index)
3468
3346
  }
@@ -3470,7 +3348,7 @@ bindingExecutors.repeat = function(method, pos, el) {
3470
3348
  case "append": //将pos的键值对从el中取出(pos为一个普通对象,el为预先生成好的代理VM对象池)
3471
3349
  var pool = el
3472
3350
  var keys = []
3473
- var fragments = []
3351
+ fragments = []
3474
3352
  for (var key in pos) { //得到所有键名
3475
3353
  if (pos.hasOwnProperty(key) && key !== "hasOwnProperty") {
3476
3354
  keys.push(key)
@@ -3482,7 +3360,7 @@ bindingExecutors.repeat = function(method, pos, el) {
3482
3360
  keys = keys2
3483
3361
  }
3484
3362
  }
3485
- for (var i = 0, key; key = keys[i++]; ) {
3363
+ for (i = 0; key = keys[i++]; ) {
3486
3364
  if (key !== "hasOwnProperty") {
3487
3365
  if (!pool[key]) {
3488
3366
  pool[key] = withProxyAgent(key, data)
@@ -3493,7 +3371,7 @@ bindingExecutors.repeat = function(method, pos, el) {
3493
3371
  var comment = data.$stamp = data.clone
3494
3372
  parent.insertBefore(comment, end)
3495
3373
  parent.insertBefore(transation, end)
3496
- for (var i = 0, fragment; fragment = fragments[i++]; ) {
3374
+ for (i = 0; fragment = fragments[i++]; ) {
3497
3375
  scanNodeArray(fragment.nodes, fragment.vmodels)
3498
3376
  fragment.nodes = fragment.vmodels = null
3499
3377
  }
@@ -3673,6 +3551,134 @@ function recycleProxies(proxies, type) {
3673
3551
 
3674
3552
 
3675
3553
 
3554
+ /*********************************************************************
3555
+ * 各种指令 *
3556
+ **********************************************************************/
3557
+ //ms-skip绑定已经在scanTag 方法中实现
3558
+ // bindingHandlers.text 定义在if.js
3559
+ bindingExecutors.text = function(val, elem) {
3560
+ val = val == null ? "" : val //不在页面上显示undefined null
3561
+ if (elem.nodeType === 3) { //绑定在文本节点上
3562
+ try { //IE对游离于DOM树外的节点赋值会报错
3563
+ elem.data = val
3564
+ } catch (e) {
3565
+ }
3566
+ } else { //绑定在特性节点上
3567
+ elem.textContent = val
3568
+ }
3569
+ }
3570
+
3571
+ function parseDisplay(nodeName, val) {
3572
+ //用于取得此类标签的默认display值
3573
+ var key = "_" + nodeName
3574
+ if (!parseDisplay[key]) {
3575
+ var node = DOC.createElement(nodeName)
3576
+ root.appendChild(node)
3577
+ if (W3C) {
3578
+ val = getComputedStyle(node, null).display
3579
+ } else {
3580
+ val = node.currentStyle.display
3581
+ }
3582
+ root.removeChild(node)
3583
+ parseDisplay[key] = val
3584
+ }
3585
+ return parseDisplay[key]
3586
+ }
3587
+
3588
+ avalon.parseDisplay = parseDisplay
3589
+
3590
+ bindingHandlers.visible = function(data, vmodels) {
3591
+ var elem = avalon(data.element)
3592
+ var display = elem.css("display")
3593
+ if (display === "none") {
3594
+ var style = elem[0].style
3595
+ var has = /visibility/i.test(style.cssText)
3596
+ var visible = elem.css("visibility")
3597
+ style.display = ""
3598
+ style.visibility = "hidden"
3599
+ display = elem.css("display")
3600
+ if (display === "none") {
3601
+ display = parseDisplay(elem[0].nodeName)
3602
+ }
3603
+ style.visibility = has ? visible : ""
3604
+ }
3605
+ data.display = display
3606
+ parseExprProxy(data.value, vmodels, data)
3607
+ }
3608
+
3609
+ bindingExecutors.visible = function(val, elem, data) {
3610
+ elem.style.display = val ? data.display : "none"
3611
+ }
3612
+
3613
+ bindingHandlers.widget = function(data, vmodels) {
3614
+ var args = data.value.match(rword)
3615
+ var elem = data.element
3616
+ var widget = args[0]
3617
+ var id = args[1]
3618
+ if (!id || id === "$") {//没有定义或为$时,取组件名+随机数
3619
+ id = generateID(widget)
3620
+ }
3621
+ var optName = args[2] || widget//没有定义,取组件名
3622
+ var constructor = avalon.ui[widget]
3623
+ if (typeof constructor === "function") { //ms-widget="tabs,tabsAAA,optname"
3624
+ vmodels = elem.vmodels || vmodels
3625
+ for (var i = 0, v; v = vmodels[i++]; ) {
3626
+ if (v.hasOwnProperty(optName) && typeof v[optName] === "object") {
3627
+ var vmOptions = v[optName]
3628
+ vmOptions = vmOptions.$model || vmOptions
3629
+ break
3630
+ }
3631
+ }
3632
+ if (vmOptions) {
3633
+ var wid = vmOptions[widget + "Id"]
3634
+ if (typeof wid === "string") {
3635
+ id = wid
3636
+ }
3637
+ }
3638
+ //抽取data-tooltip-text、data-tooltip-attr属性,组成一个配置对象
3639
+ var widgetData = avalon.getWidgetData(elem, widget)
3640
+ data.value = [widget, id, optName].join(",")
3641
+ data[widget + "Id"] = id
3642
+ data.evaluator = noop
3643
+ elem.msData["ms-widget-id"] = id
3644
+ var options = data[widget + "Options"] = avalon.mix({}, constructor.defaults, vmOptions || {}, widgetData)
3645
+ elem.removeAttribute("ms-widget")
3646
+ var vmodel = constructor(elem, data, vmodels) || {} //防止组件不返回VM
3647
+ if (vmodel.$id) {
3648
+ avalon.vmodels[id] = vmodel
3649
+ createSignalTower(elem, vmodel)
3650
+ if (vmodel.hasOwnProperty("$init")) {
3651
+ vmodel.$init(function() {
3652
+ avalon.scan(elem, [vmodel].concat(vmodels))
3653
+ if (typeof options.onInit === "function") {
3654
+ options.onInit.call(elem, vmodel, options, vmodels)
3655
+ }
3656
+ })
3657
+ }
3658
+ data.rollback = function() {
3659
+ try {
3660
+ vmodel.widgetElement = null
3661
+ vmodel.$remove()
3662
+ } catch (e) {
3663
+ }
3664
+ elem.msData = {}
3665
+ delete avalon.vmodels[vmodel.$id]
3666
+ }
3667
+ addSubscribers(data, widgetList)
3668
+ if (window.chrome) {
3669
+ elem.addEventListener("DOMNodeRemovedFromDocument", function() {
3670
+ setTimeout(removeSubscribers)
3671
+ })
3672
+ }
3673
+ } else {
3674
+ avalon.scan(elem, vmodels)
3675
+ }
3676
+ } else if (vmodels.length) { //如果该组件还没有加载,那么保存当前的vmodels
3677
+ elem.vmodels = vmodels
3678
+ }
3679
+ }
3680
+ var widgetList = []
3681
+ //不存在 bindingExecutors.widget
3676
3682
  /*********************************************************************
3677
3683
  * 自带过滤器 *
3678
3684
  **********************************************************************/
@@ -3897,6 +3903,7 @@ new function() {
3897
3903
  Z: timeZoneGetter
3898
3904
  }
3899
3905
  var rdateFormat = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/
3906
+ var raspnetjson = /^\/Date\((\d+)\)\/$/
3900
3907
  filters.date = function(date, format) {
3901
3908
  var locate = filters.date.locate,
3902
3909
  text = "",
@@ -3907,6 +3914,8 @@ new function() {
3907
3914
  if (typeof date === "string") {
3908
3915
  if (/^\d+$/.test(date)) {
3909
3916
  date = toInt(date)
3917
+ } else if (raspnetjson.test(date)) {
3918
+ date = +RegExp.$1
3910
3919
  } else {
3911
3920
  var trimDate = date.trim()
3912
3921
  var dateArray = [0, 0, 0, 0, 0, 0, 0]
@@ -3914,9 +3923,9 @@ new function() {
3914
3923
  //取得年月日
3915
3924
  trimDate = trimDate.replace(/^(\d+)\D(\d+)\D(\d+)/, function(_, a, b, c) {
3916
3925
  var array = c.length === 4 ? [c, a, b] : [a, b, c]
3917
- dateArray[0] = toInt(array[0]) //年
3926
+ dateArray[0] = toInt(array[0]) //年
3918
3927
  dateArray[1] = toInt(array[1]) - 1 //月
3919
- dateArray[2] = toInt(array[2])//日
3928
+ dateArray[2] = toInt(array[2]) //日
3920
3929
  return ""
3921
3930
  })
3922
3931
  var dateSetter = oDate.setFullYear
@@ -3925,10 +3934,9 @@ new function() {
3925
3934
  dateArray[3] = toInt(a) //小时
3926
3935
  dateArray[4] = toInt(b) //分钟
3927
3936
  dateArray[5] = toInt(c) //秒
3928
- if (d) {
3929
- dateArray[6] = Math.round(parseFloat("0." + d) * 1000) //毫秒
3937
+ if (d) { //毫秒
3938
+ dateArray[6] = Math.round(parseFloat("0." + d) * 1000)
3930
3939
  }
3931
- dateArray[6] = d || ""
3932
3940
  return ""
3933
3941
  })
3934
3942
  var tzHour = 0
@@ -4048,7 +4056,7 @@ new function() {
4048
4056
  }, 50)
4049
4057
  }
4050
4058
  avalon.ready = function(fn) {
4051
- loaded ? fn() : fns.push(fn)
4059
+ loaded ? fn(avalon) : fns.push(fn)
4052
4060
  }
4053
4061
  avalon.ready(function() {
4054
4062
  avalon.scan(DOC.body)
@@ -4081,11 +4089,11 @@ new function() {
4081
4089
  }
4082
4090
  return avalon
4083
4091
  }
4084
- // Expose avalon and $ identifiers, even in AMD
4092
+ // Expose avalon identifiers, even in AMD
4085
4093
  // and CommonJS for browser emulators
4086
4094
  if (noGlobal === void 0) {
4087
4095
  window.avalon = avalon
4088
4096
  }
4089
4097
  return avalon
4090
4098
 
4091
- }));
4099
+ }));