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.
- checksums.yaml +4 -4
- data/lib/avalon-rails/version.rb +1 -1
- data/vendor/assets/javascripts/avalon.js +840 -707
- data/vendor/assets/javascripts/avalon.min.js +3 -135
- data/vendor/assets/javascripts/avalon.mobile.js +911 -738
- data/vendor/assets/javascripts/avalon.mobile.min.js +3 -122
- data/vendor/assets/javascripts/avalon.mobile.shim.js +146 -80
- data/vendor/assets/javascripts/avalon.modern.js +902 -790
- data/vendor/assets/javascripts/avalon.modern.min.js +2 -115
- data/vendor/assets/javascripts/avalon.modern.shim.js +453 -445
- data/vendor/assets/javascripts/avalon.shim.js +512 -504
- metadata +2 -2
@@ -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("<"))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)||[""," "])[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(/&/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,"&").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,"<").replace(/>/g,">")},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("<")>-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)||[""," "])[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(/&/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,"&").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,"<").replace(/>/g,">")},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(
|
9
|
-
|
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)
|
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
|
-
|
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 (
|
631
|
-
|
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 (
|
641
|
-
|
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 (
|
675
|
-
if (
|
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 (
|
682
|
+
for (i = 0; callback = callbacks[i++]; ) {
|
683
683
|
if (isFunction(callback))
|
684
684
|
callback.apply(this, args)
|
685
685
|
}
|
686
|
-
for (
|
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
|
-
|
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 =
|
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:
|
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 (
|
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
|
-
|
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 (
|
1691
|
-
|
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 = /</g,
|
1710
1710
|
rgt = />/g
|
1711
|
-
|
1711
|
+
rstringLiteral = /(['"])(\\\1|.)+?\1/g
|
1712
1712
|
function getToken(value) {
|
1713
1713
|
if (value.indexOf("|") > 0) {
|
1714
|
-
var
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
2737
|
-
|
2738
|
-
|
2739
|
-
|
2740
|
-
|
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
|
-
|
2750
|
-
|
2751
|
-
|
2752
|
-
|
2753
|
-
|
2754
|
-
|
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
|
-
|
2765
|
-
|
2766
|
-
|
2767
|
-
|
2768
|
-
|
2769
|
-
|
2770
|
-
|
2771
|
-
|
2772
|
-
|
2773
|
-
|
2774
|
-
if (
|
2775
|
-
|
2776
|
-
|
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
|
-
|
2780
|
-
data.
|
2781
|
-
|
2782
|
-
|
2783
|
-
|
2784
|
-
|
2785
|
-
|
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
|
-
|
2788
|
-
|
2789
|
-
|
2790
|
-
|
2791
|
-
|
2792
|
-
|
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
|
-
|
2799
|
-
|
2800
|
-
|
2801
|
-
|
2802
|
-
|
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
|
-
|
2807
|
-
|
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 (
|
3376
|
-
if (
|
3377
|
-
data.$outer =
|
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 (
|
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
|
-
|
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
|
-
|
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
|
-
|
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 (
|
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 (
|
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
|
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
|
+
}));
|