avalon-rails 1.5.5 → 1.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
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 a(){return Object.create(null)}function r(e){return Function.apply(i,e)}function i(){}function o(e,t){"string"==typeof e&&(e=e.match(Bt)||[]);for(var n={},a=void 0!==t?t:1,r=0,i=e.length;i>r;r++)n[e[r]]=a;return n}function l(){if(e.VBArray){var t=document.documentMode;return t?t:e.XMLHttpRequest?7:6}return 0/0}function s(e){if(e&&"object"==typeof e){var t=e.length,n=zt.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=Ht.createElementNS(rn,n.tagName.toLowerCase());Wt.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(It.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(vn,"\\$&")}function d(e,t){var n=this.$events||(this.$events={}),a=n[e]||(n[e]=[]);if("function"==typeof t){var r=t;r.uniqueNumber=Math.random(),t={element:Xt,type:"user-watcher",handler:i,vmodels:[this],expr:e,uniqueNumber:r.uniqueNumber},t.wildcard=/\*/.test(e)}if(t.update)t.oneTime||avalon.Array.ensure(a,t);else{if(/\w\.*\B/.test(e)){t.getter=i;var o=this;t.update=function(){var e=this.fireArgs||[];e[2]&&t.handler.apply(o,e),delete this.fireArgs},a.sync=!0,avalon.Array.ensure(a,t)}else avalon.injectBinding(t);r&&(t.handler=r)}return function(){t.update=t.getter=t.handler=i,t.element=Ht.createElement("a")}}function v(e,t){var n=this.$events;if(n&&n[e]){t&&(t[2]=e);var a=n[e];h(a,t);var r=this.$up;r&&(this.$pathname&&v.call(r,this.$pathname+"."+e,t),v.call(r,"*."+e,t))}else{if(r=this.$up,this.$ups){for(var i in this.$ups)v.call(this.$ups[i],i+"."+e,t);return}if(r){var o=this.$pathname;""===o&&(o="*");var l=o+"."+e;a=l.split("."),-1===a.indexOf("*")?(v.call(r,l,t),a[1]="*",v.call(r,a.join("."),t)):v.call(r,l,t)}}}function p(e,t){for(;;){if(e.$watch){var n=e.$events||(e.$events={}),a=n[t]||(n[t]=[]);return void wn.collectDependency(a)}if(e=e.$up,!e)break;t=e.$pathname+"."+t}}function h(e,t){if(e){new Date-Nn>444&&"object"==typeof e[0]&&S();for(var n,a=[],r=[],i=0;n=e[i++];)"user-watcher"===n.type?a.push(n):r.push(n);if(u.async){for(va.render(),i=0;n=r[i++];)if(n.update){var o=M(n);va.queue[o]||(va.queue[o]=1,va.queue.push(n))}}else for(i=0;n=r[i++];)n.update&&n.update();for(i=0;n=a[i++];)(t&&t[2]===n.expr||n.wildcard)&&(n.fireArgs=t),n.update()}}function m(e,t){return t=t||{},t.watch=!0,y(e,t)}function g(){}function y(e,t){function a(e){return u[e]===!0}if(!e||e.$id&&e.$accessors||e.nodeName&&e.nodeType>0)return e;t=t||Pt;var r=t.force||Pt,i=t.old,l=i&&i.$accessors||Pt,s=new g,c={},u={},f=[],p=[],h={};e.$skipArray&&(h=o(e.$skipArray),delete e.$skipArray);var m=e.$computed;if(m){delete e.$computed;for(var y in m)u[y]=!0,function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(a){if("function"==typeof t.set){var r=n;t.set.call(this,a);var i=this[e];this.$fire&&i!==r&&this.$fire(e,i,r)}},enumerable:!0,configurable:!0}}(y,m[y])}for(y in e){var x=e[y];mn[y]||(u[y]=!0),"function"==typeof x||x&&x.nodeName&&x.nodeType>0||!r[y]&&("$"===y.charAt(0)||mn[y]||h[y])?f.push(y):b(x)?(n("warning:计算属性建议放在$computed对象中统一定义"),function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(a){if("function"==typeof t.set){var r=n;t.set.call(this,a);var i=this[e];this.$fire&&i!==r&&this.$fire(e,i,r)}},enumerable:!0,configurable:!0}}(y,x)):(p.push(y),c[y]=l[y]?l[y]:$(y,x))}c.$model=gn,s=Object.defineProperties(s,c,e),f.forEach(function(t){s[t]=e[t]}),C(s,"$ups",null),C(s,"$id","anonymous"),C(s,"$up",i?i.$up:null),C(s,"$track",Object.keys(u)),C(s,"$active",!1),C(s,"$pathname",i?i.$pathname:""),C(s,"$accessors",c),C(s,"hasOwnProperty",a),t.watch&&(C(s,"$watch",function(){return d.apply(s,arguments)}),C(s,"$fire",function(e,t){if(0===e.indexOf("all!")){var n=e.slice(4);for(var a in avalon.vmodels){var r=avalon.vmodels[a];r.$fire&&r.$fire.apply(r,[n,t])}}else v.call(s,e,[t])})),p.forEach(function(t){var n=i&&i[t],a=s[t]=e[t];a&&"object"==typeof a&&(a.$up=s,a.$pathname=t),v.call(s,t,[a,n])});for(y in m)x=s[y];return s.$active=!0,s}function b(e){if(e&&"object"==typeof e){for(var t in e)if("get"!==t&&"set"!==t)return!1;return"function"==typeof e.get}}function $(e,t){var n,t=0/0;return{get:function(){return this.$active&&p(this,e),t},set:function(a){if(t!==a){var r=t;n=x(a,t),n?t=n:(n=void 0,t=a),Object(n)===n&&(n.$pathname=e,n.$up=this),this.$active&&v.call(this,e,[t,r])}},enumerable:!0,configurable:!0}}function x(e,t,n,a){if(Array.isArray(e))return w(e,t,a);if(avalon.isPlainObject(e)){if(t&&"object"==typeof t){var r=Object.keys(e),i=Object.keys(t);if(r.join(";")===i.join(";")){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);return t}t.$active=!1}return y(e,{old:t,watch:a})}return n?e:void 0}function w(e,t,n){if(t){var a=[0,t.length].concat(e);return t.splice.apply(t,a),t}for(var r in $n)e[r]=$n[r];C(e,"$up",null),C(e,"$pathname",""),C(e,"$track",A(e.length)),e._=y({length:0/0},{watch:!0}),e._.length=e.length,e._.$watch("length",function(t,n){v.call(e.$up,e.$pathname+".length",[t,n])}),n&&C(e,"$watch",function(){return d.apply(e,arguments)}),Object.defineProperty(e,"$model",gn);for(var i=0,o=e.length;o>i;i++){var l=e[i]=x(e[i],0,1,1);Object(l)===l&&(l.$up=e)}return e}function C(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!1,configurable:!0})}function k(e){var t=avalon.type(e);if("array"===t){for(var n=[],a=0;a<e.length;a++)n[a]=k(e[a]);return n}if("object"===t){var r={};for(a in e)if(e.hasOwnProperty(a)){var i=e[a];r[a]=i&&i.nodeType?i:k(i)}return r}return e}function N(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 A(e){for(var t=[],n=0;e>n;n++)t[n]=Jt("$proxy$each");return t}function T(e,t,n){switch(t){case"push":case"unshift":n=A(n.length);break;case"splice":if(n.length>2){{n[1],n.length-2}n=[n[0],n[1]].concat(A(n.length-2))}}Array.prototype[t].apply(e,n)}function E(e,t){t.oneTime||e&&avalon.Array.ensure(e,t)&&t.element&&(j(t,e),new Date-Nn>444&&S())}function O(e,t){for(var n,a=[],r=0;n=e[r++];)a.push(t?n.$id:n.$key);return a.join(";")}function M(e){if(!e.uniqueNumber){var t=e.element;e.uniqueNumber=t?1!==t.nodeType?e.type+"-"+M(t.parentNode)+"-"+ ++Cn:e.name+"-"+M(t):++Cn}return e.uniqueNumber}function j(e,t){var n=e.lists||(e.lists=[]),a=M(e);avalon.Array.ensure(n,t),t.$uuid=t.$uuid||Jt(),kn[a]||(kn[a]=1,kn.push(e))}function S(e){for(var t=kn.length,n=t,a=[],r={},i={};e=kn[--t];){var o=e.type;i[o]?i[o]++:(i[o]=1,a.push(o))}var l=!1;if(a.forEach(function(e){An[e]!==i[e]&&(r[e]=1,l=!0)}),t=n,l)for(;e=kn[--t];)if(null!==e.element){if(r[e.type]&&D(e.element)){kn.splice(t,1),delete kn[e.uniqueNumber];for(var s,c=e.lists,u=0;s=c[u++];)avalon.Array.remove(c,s),avalon.Array.remove(s,e);H(e)}}else kn.splice(t,1);An=i,Nn=new Date}function H(e){delete kn[e.uniqueNumber],e.element=null,e.rollback&&e.rollback();for(var t in e)e[t]=null}function D(e){try{{e.parentNode.nodeType}}catch(t){return!0}return e.ifRemove&&!Xt.contains(e.ifRemove)&&Lt===e.parentNode?(e.parentNode&&e.parentNode.removeChild(e),!0):e.msRetain?0:1===e.nodeType?!Xt.contains(e):!avalon.contains(Xt,e)}function L(e){return e.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function R(e){return e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})}function P(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:Hn.test(e)?JSON.parse(e):e}catch(t){}return e}function B(e){return e.window&&e.document?e:9===e.nodeType?e.defaultView:!1}function F(e,t){if(e.offsetWidth<=0){var n=getComputedStyle(e,null);if(Bn.test(n.display)){var a={node:e};for(var r in Pn)a[r]=n[r],e.style[r]=Pn[r];t.push(a)}var i=e.parentNode;i&&1===i.nodeType&&F(i,t)}}function q(e){var t=e.tagName.toLowerCase();return"input"===t&&/checkbox|radio/.test(e.type)?"checked":t}function _(e,t){var n=[],a=!!t;t=t||0;for(var i="unknown",o="",l=0;l<e.length;l++){var s=e.charAt(l);if("'"===s||'"'===s)"unknown"===i?i=s:i===s&&(i="unknown");else if("\\"===s)("'"===i||'"'===i)&&l++;else if(Vn.test(s))"unknown"===i?(i="variable",o=s):"maybePath"===i?(o=n.pop(),o+="."+s,i="variable"):"variable"===i&&(o+=s);else if(/\w/.test(s))"variable"===i&&(o+=s);else if("."===s)"variable"===i&&o&&(n.push(o),o="",i="maybePath");else if("["===s){if("variable"===i||"maybePath"===i){o&&(n.push(o),o="");var c=n.length,u=n[c-1],f=_(e.slice(l),l);if(f.length)n[c-1]=u+".*",n=f.concat(n);else{var d=e.slice(l+1,f.i);try{var v=r(["return "+d])();n[c-1]=u+"."+v}catch(p){}}i="maybePath",l=f.i}}else if("]"===s){if(a)return n.i=l+t,V(n,o),n}else In.test(s)&&"\r"!==s&&"\n"!==s?"variable"===i&&(V(n,o)&&(i="maybePath"),o=""):(V(n,o),i="unknown",o="")}return V(n,o),n}function V(e,t){return t&&!qn[t]?(e.push(t),!0):void 0}function I(e,t,n,a){for(var r,i=[],o=" = "+n+".",l=e.length;r=e[--l];)for(var s,c=r.split("."),u=c[0];s=c.shift();)t.hasOwnProperty(s)&&(i.push(u+o+u),a.observers.push({v:t,p:r}),e.splice(l,1));return i}function z(e){e=e.trim();var t=Wn.get(e);if(t)return t.concat();for(var n,a=_(e),r={},i=[],o=0;n=a[o++];)r[n]||(r[n]=1,i.push(n));return Wn.put(e,i).concat()}function W(e,t,n){var a=n.filters;"string"==typeof a&&a.trim()&&!n._filters&&(n._filters=U(a.trim()));var i=z(e),o=new Date-0,l=[],s=[],c=[];n.observers=[];for(var u=0,f=t.length;f>u;u++)if(i.length){var d="vm"+o+"_"+u;s.push(d),c.push(t[u]),l.push.apply(l,I(i,t[u],d,n))}n.args=c;var v=n.type,p=t.map(function(e){return String(e.$id).replace(zn,"$1")})+e+v,h=Yn.get(p);if(h){if("duplex"===v){var m=Yn.get(p+"setter");n.setter=m.apply(m,n.args)}return n.getter=h}if(l.length||l.push("fix"+o),"duplex"===v){var g={};l.forEach(function(e){var t=e.split("=");g[t[0].trim()]=t[1].trim()}),e=e.replace(/[\$\w]+/,function(e){return g[e]?g[e]:e});var y=r(s.concat("'use strict';return function(vvv){"+e+" = vvv\n}\n"));Yn.put(p+"setter",y),n.setter=y.apply(y,n.args)}if("on"===v){-1===e.indexOf("(")?e+=".call(this, $event)":e=e.replace("(",".call(this,"),s.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+";";return h=r(s.concat("'use strict';\nvar "+l.join(",\n")+e)),Yn.put(p,h)}function Y(e){var t=un.test(e);if(t){var n=rt(e);return 1===n.length?n[0].expr:n.map(function(e){return e.type?"("+e.expr+")":Kn(e.expr)}).join(" + ")}return e}function U(e){return e=e.replace(Un,"").replace(Xn,function(){return"],|"}).replace(Gn,function(e,t){return"["+Kn(t)}).replace(Zn,function(){return'"],["'}).replace(Jn,function(){return'",'})+"]",r(["return ["+e+"]"])()}function X(e,t,n){var a=setTimeout(function(){var r=e.innerHTML;clearTimeout(a),r===n?t():X(e,t,r)})}function G(e,t){var n=e.getAttribute("avalonctrl")||t.$id;e.setAttribute("avalonctrl",n),t.$events&&(t.$events.expr=e.tagName+'[avalonctrl="'+n+'"]')}function Z(e,t){for(var n,a=0;n=e[a++];)n.vmodels=t,nn[n.type].init(n),avalon.injectBinding(n),n.getter&&1===n.element.nodeType&&n.element.removeAttribute(n.name);e.length=0}function J(e,t){return e.priority-t.priority}function K(e,t,a){var r=!0;if(t.length){for(var i,o=e.attributes,l=[],s={},c=0;i=o[c++];){var u=i.name;if(!s[u]&&(s[u]=1,i.specified&&(a=u.match(aa)))){var f=a[1],d=a[2]||"",v=i.value;if(ra[f]?(d=f,f="on"):ia[f]&&(d=f,f="attr",u="ms-"+f+"-"+d,n("warning!请改用"+u+"代替"+i.name+"!")),nn[f]){var p=v.replace(na,""),h=v!==p,m={type:f,param:d,element:e,name:u,expr:p,oneTime:h,priority:(nn[f].priority||10*f.charCodeAt(0))+(Number(d.replace(/\D/g,""))||0)};if("html"===f||"text"===f){var g=at(v).filters;m.expr=m.expr.replace(g,""),m.filters=g.replace(ca,function(){return m.type="html",m.group=1,""}).trim()}else if("duplex"===f)var y=u;else if("ms-if-loop"===u)m.priority+=100;else if("ms-attr-value"===u)var b=u;l.push(m)}}}if(l.length){for(l.sort(J),y&&b&&"text"===e.type&&n("warning!一个控件不能同时定义ms-attr-value与"+y),c=0;m=l[c];c++){if(f=m.type,oa.test(f))return Z(l.slice(0,c+1),t);r&&(r=!la.test(f))}Z(l,t)}}r&&!Qn[e.tagName]&&(ta&&ta(e),et(e,t))}function Q(e){for(var t,n=e.attributes,a={},r=0;t=n[r++];)t.specified&&!sa.test(t.name)&&(a[R(t.name)]=P(t.value));return a}function et(e,t){var n=avalon.slice(e.childNodes);tt(n,t)}function tt(e,t){for(var n,a=0;n=e[a++];)switch(n.nodeType){case 1:var r=n;if(!r.msResolved&&r.parentNode&&1===r.parentNode.nodeType){var i=lt(r);if(i){var o=r.localName?r.localName.replace(i+":",""):r.nodeName,l=i+":"+R(o);pa.push({library:i,element:r,fullName:l,widget:o,vmodels:t,name:"widget"}),avalon.components[l]&&avalon.component(l)}}nt(n,t),n.msHasEvent&&avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent});break;case 3:un.test(n.nodeValue)&&it(n,t,a)}}function nt(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),G(e,o)}K(e,t)}}function at(e){if(e.indexOf("|")>0){var t=e.replace(fa,function(e){return Array(e.length+1).join("1")}),n=t.replace(ua,"ᄢ㍄").indexOf("|");if(n>-1)return{type:"text",filters:e.slice(n).trim(),expr:e.slice(0,n)}}return{type:"text",expr:e,filters:""}}function rt(e){for(var t,n,a=[],r=0;;){if(n=e.indexOf(sn,r),-1===n)break;if(t=e.slice(r,n),t&&a.push({expr:t}),r=n+sn.length,n=e.indexOf(cn,r),-1===n)break;t=e.slice(r,n),t&&a.push(at(t,r)),r=n+cn.length}return t=e.slice(r),t&&a.push({expr:t}),a}function it(e,t,n){var a=[],r=rt(e.data);if(r.length){for(var i,o=0;i=r[o++];){var l=Ht.createTextNode(i.expr);i.type&&(i.expr=i.expr.replace(na,function(){return i.oneTime=!0,""}),i.element=l,i.filters=i.filters.replace(ca,function(){return i.type="html",""}),i.pos=1e3*n+o,a.push(i)),Gt.appendChild(l)}e.parentNode.replaceChild(Gt,e),a.length&&Z(a,t)}}function ot(e,t){if(t)for(var n,a=0;n=e[a++];)if(n.hasOwnProperty(t)&&"object"==typeof n[t]){var r=n[t];return r.$model||r}return{}}function lt(e){if(e.scopeName&&"HTML"!==e.scopeName)return e.scopeName;var t=e.nodeName.toLowerCase(),n=t.indexOf(":");return n>0?t.slice(0,n):void 0}function st(e){return null==e?"":e}function ct(e,t,n){return t.param.replace(Ft,function(a){var r=avalon.duplexHooks[a];r&&"function"==typeof r[n]&&(e=r[n](e,t))}),e}function ut(){for(var e=Aa.length-1;e>=0;e--){var t=Aa[e];t()===!1&&Aa.splice(e,1)}Aa.length||clearInterval(Na)}function ft(e,t){if(!e||1!==e.nodeType)return null;if(t)var n=t.effectName,a=t.effectDriver;else n=e.getAttribute("data-effect-name"),a=e.getAttribute("data-effect-driver");if(!n||!a)return null;var r=Da.pop()||new pt;return r.el=e,r.driver=a,r.useCss="j"!==a,r.useCss&&(t&&avalon(e).addClass(t.effectClass),r.cssEvent="t"===a?Ea:Oa),r.name=n,r.callbacks=avalon.effects[n]||{},r}function dt(e,t){var n=e.getAttribute("data-effect-name");if(n){t.effectName=n,t.effectDriver=e.getAttribute("data-effect-driver");var a=+e.getAttribute("data-effect-stagger");t.effectLeaveStagger=+e.getAttribute("data-effect-leave-stagger")||a,t.effectEnterStagger=+e.getAttribute("data-effect-enter-stagger")||a,t.effectClass=e.className||0/0}}function vt(e){return e.replace(/^[\S]/g,function(e){return e.toUpperCase()})}function pt(){}function ht(e,t){var n=e.callbacks[t+"Class"];return"string"==typeof n?n:"function"==typeof n?n():e.name+"-"+t}function mt(e,t,n){var a=e.callbacks[t];a&&a.call(e,e.el,n)}function gt(e,t,n){var a=e.templateCache&&e.templateCache[t];if(a){for(var r,i=Ht.createDocumentFragment();r=a.firstChild;)i.appendChild(r);return i}return avalon.parseHTML(n)}function yt(e){for(var t=Ht.createDocumentFragment(),n=0,a=e.length;a>n;n++)t.appendChild(e[n]);return t}function bt(e,t,n){for(var a,r=0;a=e[r++];)a.className===n.effectClass&&avalon.effect.apply(a,t,i,i,n)}function $t(e,t,n){return e?setTimeout(t,++n*e):t(),n}function xt(e,t){for(var n=Gt.cloneNode(!1),a=e,r=a.nodeValue,o=t&&Math.max(+t.staggerIndex,0),l=avalon.slice(a.parentNode.childNodes),s=l.indexOf(a);;){var c=l[--s];if(!c||0===String(c.nodeValue).indexOf(r))break;t&&c.className===t.effectClass?(e=c,function(e){t.staggerIndex=$t(t.effectLeaveStagger,function(){avalon.effect.apply(e,0,i,function(){n.appendChild(e)},t)},o)}(c)):n.insertBefore(c,n.firstChild)}return n.appendChild(a),n}function wt(e,t,n,a,r){var i=e.template.cloneNode(!0),o=avalon.slice(i.childNodes);i.appendChild(n.$anchor),r&&t.appendChild(i);var l=[n].concat(e.vmodels),s={nodes:o,vmodels:l,content:i};a.push(s)}function Ct(e){var t="object"===e.xtype?Tt:kt,n=t(e),a=n.$anchor||(n.$anchor=e.element.cloneNode(!1));return a.nodeValue=e.signature,n.$outer=e.$outer,n}function kt(e,t){for(var n=e.param||"el",a=0,r=_a.length;r>a;a++){var i=_a[a];if(i&&i.hasOwnProperty(n)){_a.splice(a,1),t=i;break}}return t||(t=Nt(n)),t}function Nt(e){var t={$outer:{},$index:0,$oldIndex:0,$anchor:null,$first:!1,$last:!1,$remove:avalon.noop};t[e]=0/0;var n={$last:1,$first:1,$index:1};n[e]=1;var a=m(t,{force:n});return a.$id=Jt("$proxy$each"),a}function At(e,t,n){if("array"===n){e.$remove=function(){t.$repeat.removeAt(e.$index)};var a=t.param;e.$watch(a,function(n){var a=e.$index;t.$repeat[a]=n})}else e.$watch("$val",function(n){t.$repeat[e.$key]=n})}function Tt(){return Va.pop()||Et()}function Et(){var e=m({$key:"",$val:0/0,$index:0,$oldIndex:0,$outer:{},$anchor:null},{force:{$key:1,$val:1,$index:1}});return e.$id=Jt("$proxy$with"),e}function Ot(e,t,n){var a=e[t];if(a){var r=0===a.$id.indexOf("$proxy$each")?_a:Va;a.$outer={};for(var i in a.$events){var o=a.$events[i];Array.isArray(o)&&(o.length=0,i===n?a[n]=0/0:"$val"===i&&(a.$val=0/0))}r.unshift(a)>u.maxRepeatSize&&r.pop(),delete e[t]}}function Mt(e,t){var n="_"+e;if(!Mt[n]){var a=Ht.createElement(e);Xt.appendChild(a),t=Ut?getComputedStyle(a,null).display:a.currentStyle.display,Xt.removeChild(a),Mt[n]=t}return Mt[n]}function jt(e,t,n,a){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var r=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):3,o=a||",",l=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)}var St=Date.now(),Ht=e.document,Dt=Ht.head;Dt.insertAdjacentHTML("afterBegin",'<avalon ms-skip class="avalonHide"><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>');var Lt=Dt.firstChild,Rt="$"+St,Pt={},Bt=/[^, ]+/g,Ft=/\w+/g,qt=/^\[object SVG\w*Element\]$/,_t=/^\[object (?:Window|DOMWindow|global)\]$/,Vt=Object.prototype,It=Vt.hasOwnProperty,zt=Vt.toString,Wt=Array.prototype,Yt=Wt.slice,Ut=e.dispatchEvent,Xt=Ht.documentElement,Gt=Ht.createDocumentFragment(),Zt=(Ht.createElement("div"),{});"Boolean Number String Function Array Date RegExp Object Error".replace(Bt,function(e){Zt["[object "+e+"]"]=e.toLowerCase()});var Jt=function(e){return e=e||"avalon",String(Math.random()+Math.random()).replace(/\d\.\d{4}/,e)},Kt=l();avalon=function(e){return new avalon.init(e)},avalon.nextTick=new function(){function t(){for(var e=r.length,t=0;e>t;t++)r[t]();r=r.slice(e)}var n=e.setImmediate,a=e.MutationObserver;if(n)return n.bind(e);var r=[];if(a){var i=document.createTextNode("avalon");new a(t).observe(i,{characterData:!0});var o=!1;return function(e){r.push(e),o=!o,i.data=o}}return function(e){setTimeout(e,4)}},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?Zt[zt.call(e)]||"object":typeof e};var Qt=function(e){return"[object Function]"===zt.call(e)};avalon.isFunction=Qt,avalon.isWindow=function(e){return _t.test(zt.call(e))},avalon.isPlainObject=function(e){return"[object Object]"===zt.call(e)&&Object.getPrototypeOf(e)===Vt},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||Qt(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:Bt,subscribers:Rt,version:1.55,ui:{},log:n,slice:function(e,t,n){return Yt.call(e,t,n)},noop:i,error:function(e,t){throw new(t||Error)(e)},oneObject:o,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||t,a=i.phase||!!a,n=i.fn?i.fn(e,n):n),e.addEventListener(t,n,a),n},unbind:function(e,t,n,a){var r=avalon.eventHooks,o=r[t],l=n||i;"object"==typeof o&&(t=o.type||t,a=o.phase||!!a),e.removeEventListener(t,l,a)},css:function(e,t,n){e instanceof avalon&&(e=e[0]);var a,r=/[_-]/.test(t)?R(t):t;if(t=avalon.cssName(r)||r,void 0===n||"boolean"==typeof n){a=Dn[r+":get"]||Dn["@: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=Dn[r+":set"]||Dn["@: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 en=avalon.bindingHandlers={},tn=avalon.bindingExecutors={},nn=avalon.directives={};avalon.directive=function(e,t){return en[e]=t.init=t.init||i,tn[e]=t.update=t.update||i,nn[e]=t};var an=new function(){function e(e){this.size=0,this.limit=e,this.head=this.tail=void 0,this._keymap={}}var t=e.prototype;return t.put=function(e,t){var n={key:e,value:t};return this._keymap[e]=n,this.tail?(this.tail.newer=n,n.older=this.tail):this.head=n,this.tail=n,this.size===this.limit?this.shift():this.size++,t},t.shift=function(){var e=this.head;e&&(this.head=this.head.newer,this.head.older=e.newer=e.older=this._keymap[e.key]=void 0,delete this._keymap[e.key])},t.get=function(e){var t=this._keymap[e];if(void 0!==t)return t===this.tail?t.value:(t.newer&&(t===this.head&&(this.head=t.newer),t.newer.older=t.older),t.older&&(t.older.newer=t.newer),t.newer=void 0,t.older=this.tail,this.tail&&(this.tail.newer=t),this.tail=t,t.value)},e};if(Ht.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 rn="http://www.w3.org/2000/svg",on=Ht.createElementNS(rn,"svg");on.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',qt.test(on.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=Ht.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 ln=avalon.eventHooks;"onmouseenter"in Xt||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){ln[e]={type:t,fn: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]&&!ln.animationend&&(ln.animationend={type:n})}),void 0===Ht.onmousewheel&&(ln.mousewheel={type:"wheel",fn: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 sn,cn,un,fn,dn,vn=/[-.*+?^${}()|[\]\/\\]/g,pn={interpolate:function(e){if(sn=e[0],cn=e[1],sn===cn){throw new SyntaxError("openTag!==closeTag")}u.openTag=sn,u.closeTag=cn;var t=f(sn),n=f(cn);un=new RegExp(t+"(.*?)"+n),fn=new RegExp(t+"(.*?)"+n,"g"),dn=new RegExp(t+".*?"+n+"|\\sms-")}};u.async=!0,u.debug=!0,u.plugins=pn,u.plugins.interpolate(["{{","}}"]),u.paths={},u.shim={},u.maxRepeatSize=100,avalon.config=u;var hn=avalon.vmodels={};avalon.define=function(e){var t=e.$id;t||n("warning: vm必须指定$id");var a=m(e);return a.$id=t,hn[t]=a};var mn=o("$id,$watch,$fire,$events,$model,$skipArray,$active,$pathname,$up,$ups,$track,$accessors"),gn={get:function(){return k(this)},set:i,enumerable:!1,configurable:!0},yn=["push","pop","shift","unshift","splice"],bn=Array.prototype,$n={notify:function(){v.call(this.$up,this.$pathname)},set:function(e,t){if(e>>>0===e&&this[e]!==t){if(e>this.length)throw Error(e+"set方法的第一个参数不能大于原数组长度");v.call(this.$up,this.$pathname+".*",[t,this[e]]),this.splice(e,1,t)}},contains:function(e){return-1!==this.indexOf(e)},ensure:function(e){return this.contains(e)||this.push(e),this},pushArray:function(e){return this.push.apply(this,e)},remove:function(e){return this.removeAt(this.indexOf(e))},removeAt:function(e){return e>>>0===e?this.splice(e,1):[]},size:function(){return this._.length},removeAll:function(e){if(Array.isArray(e))for(var t=this.length-1;t>=0;t--)-1!==e.indexOf(this[t])&&(xn.call(this.$track,t,1),xn.call(this,t,1));else if("function"==typeof e)for(t=this.length-1;t>=0;t--){var n=this[t];e(n,t)&&(xn.call(this.$track,t,1),xn.call(this,t,1))}else xn.call(this.$track,0,this.length),xn.call(this,0,this.length);Ut||(this.$model=k(this)),this.notify(),this._.length=this.length},clear:function(){return this.removeAll()}},xn=bn.splice;yn.forEach(function(e){var t=bn[e];$n[e]=function(){for(var n=[],a=0,r=arguments.length;r>a;a++)n[a]=x(arguments[a],0,1,1);var i=t.apply(this,n);return T(this.$track,e,n),Ut||(this.$model=k(this)),this.notify(),this._.length=this.length,i}}),"sort,reverse".replace(Bt,function(e){$n[e]=function(){var t=this.concat(),n=this,a=Math.random(),r=[],i=!1;bn[e].apply(n,arguments);for(var o=0,l=t.length;l>o;o++){var s=n[o],c=t[o];if(s===c)r.push(o);else{var u=t.indexOf(s);r.push(u),t[u]=a,i=!0}}return i&&(N(this.$track,r),Ut||(this.$model=k(this)),this.notify()),this}});var wn=function(){var e,t=[];return{begin:function(n){t.push(e),e=n},end:function(){e=t.pop()},collectDependency:function(t){e&&e.callback(t)}}}();avalon.injectBinding=function(e){e.handler=e.handler||nn[e.type].update||i,e.update=function(){var t=!1;e.getter||(t=!0,wn.begin({callback:function(t){E(t,e)}}),e.getter=W(e.expr,e.vmodels,e),e.observers.forEach(function(t){t.v.$watch(t.p,e)}),delete e.observers);try{var a,r,i=e.fireArgs;if(delete e.fireArgs,i?(a=i[0],r=i[1]):a="on"===e.type?e.getter+"":e.getter.apply(0,e.args),r="undefined"==typeof r?e.oldValue:r,e._filters&&(a=Ga.$filter.apply(0,[a].concat(e._filters))),e.signature){var o=avalon.type(a);if("array"!==o&&"object"!==o)throw Error("warning:"+e.expr+"只能是对象或数组");e.xtype=o;var l=O(e.proxies||[],o),s=a.$track||("array"===o?A(a.length):Object.keys(a));e.track=s,l!==s.join(";")&&(e.handler(a,r),e.oldValue=1)}else(Array.isArray(a)?a.length===(r&&r.length):1)?"oldValue"in e&&a===r||(e.handler(a,r),e.oldValue=a):(e.handler(a,r),e.oldValue=a.concat())}catch(c){delete e.getter,n("warning:exception throwed in [avalon.injectBinding] ",c);var u=e.element;u&&3===u.nodeType&&(u.nodeValue=sn+(e.oneTime?"::":"")+e.expr+cn)}finally{t&&wn.end()}},e.update()};var Cn=0,kn=avalon.$$subscribers=[],Nn=new Date,An={},Tn=new function(){avalon.mix(this,{option:Ht.createElement("select"),thead:Ht.createElement("table"),td:Ht.createElement("tr"),area:Ht.createElement("map"),tr:Ht.createElement("tbody"),col:Ht.createElement("colgroup"),legend:Ht.createElement("fieldset"),_default:Ht.createElement("div"),g:Ht.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(Bt,function(e){Tn[e]=Tn.g});var En=/<([\w:]+)/,On=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Mn=o(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),jn=Ht.createElement("script"),Sn=/<|&#?\w+;/;avalon.parseHTML=function(e){var t=Gt.cloneNode(!1);if("string"!=typeof e)return t;if(!Sn.test(e))return t.appendChild(Ht.createTextNode(e)),t;e=e.replace(On,"<$1></$2>").trim();var n,a=(En.exec(e)||["",""])[1].toLowerCase(),r=Tn[a]||Tn._default;r.innerHTML=e;var i=r.getElementsByTagName("script");if(i.length)for(var o,l=0;o=i[l++];)if(Mn[o.type]){var s=jn.cloneNode(!1);Wt.forEach.call(o.attributes,function(e){s.setAttribute(e.name,e.value)}),s.text=o.text,o.parentNode.replaceChild(s,o)}for(;n=r.firstChild;)t.appendChild(n);return t},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},"add,remove".replace(Bt,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=String(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-"+L(e||""),arguments.length){case 2:return this.attr(e,t),this;case 1:var n=this.attr(e);return P(n);case 0:var a={};return Wt.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=R(e.slice(5)),a[e]=P(t.value)))}),a}},removeData:function(e){return e="data-"+L(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),a.top-=e.scrollTop(),a.left-=e.scrollLeft()),{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||Xt)},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=Fn[q(t)+a];
2
- if(r)var i=r(t,e);else{if(n)return(t.value||"").replace(/\r/g,"");t.value=e}}return n?i:this}}),Xt.dataset&&(avalon.fn.data=function(e,t){e=e&&R(e);var n=this[0].dataset;switch(arguments.length){case 2:return n[e]=t,this;case 1:return t=n[e],P(t);case 0:var r=a();for(e in n)r[e]=P(n[e]);return r}});var Hn=/(?:\{[\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=B(a),i="scrollTop"===e;return arguments.length?void(r?r.scrollTo(i?r[t]:n,i?n:r[t]):a[e]=n):r?r[t]:a[e]}});var Dn=avalon.cssHooks=a(),Ln=["","-webkit-","-moz-","-ms-"],Rn={"float":"cssFloat"};avalon.cssNumber=o("animationIterationCount,animationIterationCount,columnCount,order,flex,flexGrow,flexShrink,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(Rn[e])return Rn[e];t=t||Xt.style;for(var a=0,r=Ln.length;r>a;a++)if(n=R(Ln[a]+e),n in t)return Rn[e]=n;return null},Dn["@:set"]=function(e,t,n){e.style[t]=n},Dn["@:get"]=function(e,t){if(!e||!e.style)throw new Error("getComputedStyle要求传入一个节点 "+e);var n,a=getComputedStyle(e);return a&&(n="filter"===t?a.getPropertyValue(t):a[t],""===n&&(n=e.style[t])),n},Dn["opacity:get"]=function(e){var t=Dn["@:get"](e,"opacity");return""===t?"1":t},"top,left".replace(Bt,function(e){Dn[e+":get"]=function(t){var n=Dn["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Pn={position:"absolute",visibility:"hidden",display:"block"},Bn=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(Bt,function(e){var t=e.toLowerCase(),n="client"+e,a="scroll"+e,r="offset"+e;Dn[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)},Dn[t+"&get"]=function(e){var n=[];F(e,n);for(var a,r=Dn[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 Dn[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return Dn[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return Dn[t+":get"](this[0],void 0,e===!0?2:0)}}),avalon.fn.offset=function(){var e=this[0];try{var t=e.getBoundingClientRect();if(t.width||t.height||e.getClientRects().length){var n=e.ownerDocument,a=n.documentElement,r=n.defaultView;return{top:t.top+r.pageYOffset-a.clientTop,left:t.left+r.pageXOffset-a.clientLeft}}}catch(i){return{left:0,top:0}}};var Fn={"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;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)}},qn={},_n=["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"].join(",");_n.replace(/\w+/g,function(e){qn[e]=!0});var Vn=/[a-z_$]/i,In=/[\s\uFEFF\xA0]/,zn=/(\$proxy\$[a-z]+)\d+$/,Wn=new an(218),Yn=new an(128);avalon.normalizeExpr=Y,avalon.parseExprProxy=W;var Un=/\)\s*$/,Xn=/\)\s*\|/g,Gn=/\|\s*([$\w]+)/g,Zn=/"\s*\["/g,Jn=/"\s*\(/g,Kn=JSON.stringify;avalon.scan=function(e,t){e=e||Xt;var n=t?[].concat(t):[];nt(e,n)};var Qn=o("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),ea=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]},ta=Kt&&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,na=/^\s*::/,aa=/ms-(\w+)-?(.*)/,ra=o("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),ia=o("value,title,alt,checked,selected,disabled,readonly,enabled,href,src"),oa=/^if|widget|repeat$/,la=/^each|with|html|include$/,sa=/^(ms-\S+|data-\S+|on[a-z]+|id|style|class|tabindex)$/,ca=/\|\s*html(?:\b|$)/,ua=/\|\|/g,fa=/(['"])(\\\1|.)+?\1/g,da=function(){this.queue=[]};da.prototype={render:function(e){if(!this.locked){this.locked=e?Xt.offsetHeight+10:1;var t=this;avalon.nextTick(function(){t.flush()})}},flush:function(){for(var e,t=0;e=this.queue[t++];)e.update&&e.update();this.locked=0,this.queue=[]}};var va=new da,pa=[],ha=[],ma={$construct:function(){return avalon.mix.apply(null,arguments)},$ready:i,$init:i,$dispose:i,$container:null,$childReady:i,$replace:!1,$extend:null,$$template:function(e){return e}};avalon.components={},avalon.component=function(t,n){n&&(avalon.components[t]=avalon.mix({},ma,n));for(var a,r=0;a=pa[r];r++)t===a.fullName&&(pa.splice(r,1),r--,function(n,a,r,i){var o=1,l=n.library,s=avalon.libraries[l]||ma,c=Q(r),u=ot(n.vmodels,c.config||n.widget),f=c.$id||c.identifier||Jt(i);delete c.config,delete c.$id,delete c.identifier;var d={},v=avalon.components[a.$extend];v?(avalon.mix(!0,d,v),d=v.$construct.call(r,d,{},{})):avalon.mix(!0,d,a),d=avalon.components[t].$construct.call(r,d,u,c),d.$refs={},d.$id=f;var p=d.$slot,h=d.$replace,m=d.$container,g=d.$template;delete d.$slot,delete d.$replace,delete d.$container,delete d.$construct;var y=avalon.define(d)||{};r.msResolved=1,y.$init(y,r),s.$init(y,r);for(var b,$,x=r.childNodes,w={},C=0;$=x[C++];){var k=1===$.nodeType&&$.getAttribute("slot")||p;k&&(w[k]?w[k].push($):w[k]=[$])}y.$$template&&(avalon.clearHTML(r),r.innerHTML=y.$$template(g));for(C in w)if(y.hasOwnProperty(C)){var N=w[C];if(N.length){for(var A=Gt.cloneNode(!0),T=0;b=N[T++];)A.appendChild(b);y[C]=A}w[C]=null}w=null;var E=r.firstChild;h&&(E=r.firstChild,r.parentNode.replaceChild(E,r),E.msResolved=1,r=n.element=E),m&&m.appendChild(r),avalon.fireDom(r,"datasetchanged",{library:l,vm:y,childReady:1});var O=0,M=avalon.bind(r,"datasetchanged",function(t){if(t.childReady&&t.library===l&&(o+=t.childReady,y!==t.vm&&(y.$refs[t.vm.$id]=t.vm,-1===t.childReady&&(O++,y.$childReady(y,r,t)),t.stopPropagation())),0===o){var a=setTimeout(function(){clearTimeout(a),y.$ready(y,r,n.vmodels),s.$ready(y,r,n.vmodels)},O?Math.max(17*O,100):17);avalon.unbind(r,"datasetchanged",M),n.rollback=function(){try{y.$dispose(y,r),s.$dispose(y,r)}catch(e){}delete avalon.vmodels[y.$id]},j(n,ha),e.chrome&&r.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(S)})}});if(nt(r,[y].concat(n.vmodels)),avalon.vmodels[y.$id]=y,r.childNodes.length)var H=setTimeout(function(){clearTimeout(H),avalon.fireDom(r,"datasetchanged",{library:l,vm:y,childReady:-1})},17);else avalon.fireDom(r,"datasetchanged",{library:l,vm:y,childReady:-1})}(a,avalon.components[t],a.element,a.widget))},avalon.fireDom=function(e,t,n){if(Ht.createEvent){var a=Ht.createEvent("Events");a.initEvent(t,!0,!0,n),avalon.mix(a,n),e.dispatchEvent(a)}else Xt.contains(e)&&(a=Ht.createEventObject(),avalon.mix(a,n),e.fireEvent("on"+t,a))},avalon.libraries=[],avalon.library=function(e,t){Ht.namespaces&&Ht.namespaces.add(e,"http://www.w3.org/1999/xhtml"),avalon.libraries[e]=avalon.mix({$init:i,$ready:i,$dispose:i},t||{})},avalon.library("ms");var ga=["autofocus,autoplay,async,allowTransparency,checked,controls","declare,disabled,defer,defaultChecked,defaultSelected","contentEditable,isMap,loop,multiple,noHref,noResize,noShade","open,readOnly,selected"].join(","),ya={};ga.replace(Bt,function(e){ya[e.toLowerCase()]=e});var ba={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"},$a=["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan","dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight","rowSpan,tabIndex,useMap,vSpace,valueType,vAlign"].join(",");$a.replace(Bt,function(e){ba[e.toLowerCase()]=e});var xa=avalon.directive("attr",{init:function(e){if(e.expr=Y(e.expr.trim()),"include"===e.type){var t=e.element;dt(t,e),e.includeRendered=ea(t,"data-include-rendered",e.vmodels),e.includeLoaded=ea(t,"data-include-loaded",e.vmodels);var n=e.includeReplace=!!avalon(t).data("includeReplace");avalon(t).data("includeCache")&&(e.templateCache={}),e.start=Ht.createComment("ms-include"),e.end=Ht.createComment("ms-include-end"),n?(e.element=e.end,e._element=t,t.parentNode.insertBefore(e.start,t),t.parentNode.insertBefore(e.end,t.nextSibling)):(t.insertBefore(e.start,t.firstChild),t.appendChild(e.end))}},update:function(t){var n=this.element,a=this.param;if("href"===a||"src"===a){if("string"!=typeof t||Xt.hasAttribute||(t=t.replace(/&amp;/g,"&")),n[a]=t,e.chrome&&"EMBED"===n.tagName){var r=n.parentNode,i=document.createComment("ms-src");r.replaceChild(i,n),r.replaceChild(n,i)}}else{var o=t===!1||null===t||void 0===t;!Ut&&ba[a]&&(a=ba[a]);var l=ya[a];if("boolean"==typeof n[l]&&(n[l]=!!t,t||(o=!0)),o)return n.removeAttribute(a);var s=qt.test(n)?!1:Ht.namespaces&&isVML(n)?!0:a in n.cloneNode(!1);s?n[a]=t+"":n.setAttribute(a,t)}}});"title,alt,src,value,css,include,href".replace(Bt,function(e){nn[e]=xa}),avalon.directive("class",{init:function(e){var t=e.param,a=e.type;if(!t||isFinite(t)?(e.param="",nn.effect.init(e)):(n("ms-"+a+'-xxx="yyy"这种用法已经过时,请使用ms-'+a+'="xxx:yyy"'),e.expr="["+Kn(t)+","+e.expr+"]",e.oldStyle=t),"hover"===a||"active"===a){if(!e.hasBindEvent){var r=e.element,i=avalon(r),o="mouseenter",l="mouseleave";if("active"===a){r.tabIndex=r.tabIndex||-1,o="mousedown",l="mouseup";var s=i.bind("mouseleave",function(){e.toggleClass&&i.removeClass(e.newClass)})}}var c=i.bind(o,function(){e.toggleClass&&i.addClass(e.newClass)}),u=i.bind(l,function(){e.toggleClass&&i.removeClass(e.newClass)});e.rollback=function(){i.unbind("mouseleave",s),i.unbind(o,c),i.unbind(l,u)},e.hasBindEvent=!0}},update:function(e){var t=this,n=avalon(this.element);t.newClass=e[0],t.toggleClass=!!e[1],t.oldClass&&t.newClass!==t.oldClass&&n.removeClass(t.oldClass),t.oldClass=t.newClass,"class"===t.type&&(t.oldStyle?n.toggleClass(t.oldStyle,!!e[1]):n.toggleClass(t.newClass,t.toggleClass))}}),"hover,active".replace(Bt,function(e){nn[e]=nn["class"]}),avalon.directive("css",{init:nn.attr.init,update:function(e){avalon(this.element).css(this.param,e)}}),avalon.directive("data",{priority:100,update:function(e){var t=this.element,n="data-"+this.param;e&&"object"==typeof e?t[n]=e:t.setAttribute(n,String(e))}});{var wa=/^(?:checkbox|radio)$/,Ca=/^(?:radio|checked)$/,ka=/^(file|button|reset|submit|checkbox|radio|range)$/;avalon.directive("duplex",{priority:2e3,init:function(e,t){function a(t){e.changed.call(this,t,e)}function r(){d=!0}function l(){d=!1}var s=e.element,c=e.vmodels;e.changed=ea(s,"data-duplex-changed",c)||i;var u=[],f=o("string,number,boolean,checked");"radio"===s.type&&""===e.param&&(e.param="checked"),e.param.replace(Ft,function(a){wa.test(s.type)&&Ca.test(a)&&("radio"===a&&n("ms-duplex-radio已经更名为ms-duplex-checked"),a="checked",e.isChecked=!0,e.xtype="radio"),"bool"===a?(a="boolean",n("ms-duplex-bool已经更名为ms-duplex-boolean")):"text"===a&&(a="string",n("ms-duplex-text已经更名为ms-duplex-string")),f[a]&&(t=!0),avalon.Array.ensure(u,a)}),t||u.push("string"),e.param=u.join("-"),e.xtype||(e.xtype="SELECT"===s.tagName?"select":"checkbox"===s.type?"checkbox":"radio"===s.type?"radio":/^change/.test(s.getAttribute("data-duplex-event"))?"change":"input"),e.bound=function(t,n){s.addEventListener(t,n,!1);var a=e.rollback;e.rollback=function(){s.avalonSetter=null,avalon.unbind(s,t,n),a&&a()}};var d=!1,v=function(){var t=s.value;if(!d&&t!==e.oldValue&&null!==e.pipe){var n=e.pipe(t,e,"get");e.setter(n),a.call(s,n)}};switch(e.xtype){case"radio":e.bound("click",function(){var t=e.pipe(s.value,e,"get");e.setter(t),a.call(s,t)});break;case"checkbox":e.bound("change",function(){var t=s.checked?"ensure":"remove",r=e.getter.apply(0,e.vmodels);Array.isArray(r)||(n("ms-duplex应用于checkbox上要对应一个数组"),r=[r]);var i=e.pipe(s.value,e,"get");avalon.Array[t](r,i),a.call(s,r)});break;case"change":e.bound("change",v);break;case"input":Kt?e.bound("input",v):(e.bound("input",v),e.bound("compositionstart",r),e.bound("compositionend",l),e.bound("DOMAutoComplete",v));break;case"select":e.bound("change",function(){var t=avalon(s).val();if(t=Array.isArray(t)?t.map(function(t){return e.pipe(t,e,"get")}):e.pipe(t,e,"get"),t+""!==e.oldValue)try{e.setter(t)}catch(a){n(a)}}),e.bound("datasetchanged",function(t){if("selectDuplex"===t.bubble){var n=e._value,r=Array.isArray(n)?n.map(String):n+"";avalon(s).val(r),s.oldValue=r+"",a.call(s,r)}})}"input"!==e.xtype||ka.test(s.type)||("hidden"!==s.type&&(e.bound("focus",function(){s.msFocus=!0}),e.bound("blur",function(){s.msFocus=!1})),s.avalonSetter=v,Ta(function(){if(Xt.contains(s))s.msFocus||e.oldValue===s.value||v();else if(!s.msRetain)return!1}))},update:function(e){var t,n=this.element,a=this;if(!this.init){for(var r in avalon.vmodels){var i=avalon.vmodels[r];i.$fire("avalon-ms-duplex-init",a)}var o=a.pipe||(a.pipe=ct);o(null,a,"init"),this.init=1}switch(this.xtype){case"input":case"change":if(t=this.pipe(e,this,"set"),t!==this.oldValue){var l=!1;if(n.msFocus)try{var s=n.selectionStart,c=n.selectionEnd;if(s===c){var u=s;l=!0}}catch(f){}n.value=this.oldValue=t,l&&(n.selectionStart=n.selectionEnd=u)}break;case"radio":t=a.isChecked?!!e:e+""===n.value,n.checked=t;break;case"checkbox":var d=[].concat(e);t=this.pipe(n.value,this,"get"),n.checked=d.indexOf(t)>-1;break;case"select":a._value=e,n.msHasEvent?avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent}):n.msHasEvent="selectDuplex"}"select"!==a.xtype&&a.changed.call(n,t,a)}})}avalon.duplexHooks={checked:{get:function(e,t){return!t.oldValue}},string:{get:function(e){return e},set:st},"boolean":{get:function(e){return"true"===e},set:st},number:{get:function(e,t){var n=parseFloat(e);if(-e===-n)return n;var a=/strong|medium|weak/.exec(t.element.getAttribute("data-duplex-number"))||["medium"];switch(a[0]){case"strong":return 0;case"medium":return""===e?"":0;case"weak":return e}},set:st}};var Na,Aa=[];avalon.tick=function(e){1===Aa.push(e)&&(Na=setInterval(ut,60))};var Ta=i;!new function(){function e(e){t[this.tagName].call(this,e),!this.msFocus&&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){Ta=avalon.tick}},avalon.directive("effect",{priority:5,init:function(e){var t,n,a=e.expr,r=a.replace(fn,function(e){return e.replace(/./g,"0")}).indexOf(":");-1===r?(t=a,n=!0):(t=a.slice(0,r),n=a.slice(r+1)),t=un.test(a)?Y(t):Kn(t),e.expr="["+t+","+n+"]"},update:function(t){var n=t[0],a=this.element;if(a.getAttribute("data-effect-name")!==n){a.removeAttribute("data-effect-driver");var r=a.style,i=e.getComputedStyle?e.getComputedStyle(a):null,o=!1;if(i&&(Ma||ja)){var l=r[Sa]||i[Sa];l&&"0s"!==l&&(a.setAttribute("data-effect-driver","t"),o=!0),o||(l=r[Ha]||i[Ha],l&&"0s"!==l&&(a.setAttribute("data-effect-driver","a"),o=!0))}o||avalon.effects[n]&&(a.setAttribute("data-effect-driver","j"),o=!0),o&&a.setAttribute("data-effect-name",n)}}}),avalon.effects={},avalon.effect=function(e,t){avalon.effects[e]=t};var Ea,Oa,Ma=!1,ja=!1,Sa=avalon.cssName("transition-duration"),Ha=avalon.cssName("animation-duration");!new function(){var t,n={TransitionEvent:"transitionend",WebKitTransitionEvent:"webkitTransitionEnd",OTransitionEvent:"oTransitionEnd",otransitionEvent:"otransitionEnd"};for(var a in n){if(e[a]){t=n[a];break}try{{document.createEvent(a)}t=n[a];break}catch(r){}}"string"==typeof t&&(Ma=!0,Ea=t),n={AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"};var i;for(a in n)if(e[a]){i=n[a];break}"string"==typeof i&&(Ma=!0,Oa=i)};var Da=[],La=new da;pt.prototype={contrustor:pt,enterClass:function(){return ht(this,"enter")},leaveClass:function(){return ht(this,"leave")},actionFun:function(e,t,n){if(!document.hidden){var a=this,r=a.el,i="leave"===e;e=i?"leave":"enter";var o=i?"enter":"leave";mt(a,"abort"+vt(o)),mt(a,"before"+vt(e)),i||t(r);var l=function(o){r.removeEventListener(a.cssEvent,a.cssCallback),i?(t(r),avalon(r).removeClass(a.cssClass)):"a"===a.driver&&avalon(r).removeClass(a.cssClass),o!==!0&&(mt(a,"after"+vt(e)),n&&n(r)),a.dispose()};a.useCss?(a.cssCallback&&a.cssCallback(!0),a.cssClass=ht(a,e),a.cssCallback=l,a.update=function(){r.addEventListener(a.cssEvent,a.cssCallback),i||"t"!==a.driver||avalon(r).removeClass(a.cssClass)},avalon(r).addClass(a.cssClass),La.render(!0),La.queue.push(a)):mt(a,e,l)}},enter:function(){this.actionFun.apply(this,["enter"].concat(avalon.slice(arguments)))},leave:function(){this.actionFun.apply(this,["leave"].concat(avalon.slice(arguments)))},dispose:function(){this.update=this.cssCallback=null,Da.unshift(this)>100&&Da.pop()}};var Ra=function(e,t){var n=Yt.call(arguments,0);"function"!=typeof n[2]&&n.splice(2,0,i),"function"!=typeof n[3]&&n.splice(3,0,i);var a=n[2],r=n[3],o=n[4],l=ft(e,o);if(!l)return a(),r(),!1;var s=t?"enter":"leave";l[s](a,r)};avalon.mix(avalon.effect,{apply:Ra,append:function(e,t,n,a){return Ra(e,1,function(){t.appendChild(e)},n,a)},before:function(e,t,n,a){return Ra(e,1,function(){t.parentNode.insertBefore(e,t)},n,a)},remove:function(e,t,n,a){return Ra(e,0,function(){e.parentNode===t&&t.removeChild(e)},n,a)}}),avalon.directive("html",{update:function(e){var t=this,n=this.element,a=1!==n.nodeType,r=a?n.parentNode:n;if(r){if(e=null==e?"":e,3===n.nodeType){var i=Jt("html");r.insertBefore(Ht.createComment(i),n),t.element=Ht.createComment(i+":end"),r.replaceChild(t.element,n),n=t.element}if("object"!=typeof e)var o=avalon.parseHTML(String(e));else if(11===e.nodeType)o=e;else if(1===e.nodeType||e.item){var l=1===e.nodeType?e.childNodes:e.item;for(o=Gt.cloneNode(!0);l[0];)o.appendChild(l[0])}if(l=avalon.slice(o.childNodes),a){for(var s=n.nodeValue.slice(0,-4);;){var c=n.previousSibling;if(!c||8===c.nodeType&&c.nodeValue===s)break;r.removeChild(c)}r.insertBefore(o,n)}else avalon.clearHTML(n).appendChild(o);tt(l,t.vmodels)}}}),avalon.directive("if",{priority:10,update:function(e){function t(){r.getAttribute(a.name)&&(r.removeAttribute(a.name),K(r,a.vmodels)),a.rollback=null}var n,a=this,r=this.element,i=a.stamp=+new Date,o=function(){i===a.stamp&&(a.recoverNode=null)};a.recoverNode&&a.recoverNode();try{if(!r.parentNode)return;n=r.parentNode}catch(l){return}if(e){if(8===r.nodeType){var s=a.keep,c=avalon.effect.apply(s,1,function(){i===a.stamp&&(r.parentNode.replaceChild(s,r),r=a.element=s,s.getAttribute("_required")&&(r.required=!0,r.removeAttribute("_required")),r.querySelectorAll&&avalon.each(r.querySelectorAll("[_required=true]"),function(e){e.required=!0,e.removeAttribute("_required")}),t())},o);c=c===!1}c||t()}else if(1===r.nodeType){r.required===!0&&(r.required=!1,r.setAttribute("_required","true"));try{avalon.each(r.querySelectorAll(":required"),function(e){r.required=!1,e.setAttribute("_required","true")})}catch(l){}var u=a.element=Ht.createComment("ms-if"),f=r.nextSibling;a.recoverNode=function(){a.recoverNode=null,u.parentNode!==n&&(n.insertBefore(u,f),a.keep=r)},avalon.effect.apply(r,0,function(){a.recoverNode=null,i===a.stamp&&(r.parentNode.replaceChild(u,r),a.keep=r,Lt.appendChild(r),a.rollback=function(){r.parentNode===Lt&&Lt.removeChild(r)})},o)}}});var Pa=function(){return new e.XMLHttpRequest},Ba=avalon.templateCache={};avalon.directive("include",{init:nn.attr.init,update:function(e){var t=this,a=this.element,r=t.vmodels,i=t.includeRendered,o=t.effectName&&t.effectClass,l=t.templateCache,s=t.includeReplace,c=t.includeLoaded,u=s?a.parentNode:a,f=t._element;t.recoverNodes=t.recoverNodes||avalon.noop;var d=function(n){var d=t._stamp=+new Date;if(c){var v=c.apply(u,[n].concat(r));"string"==typeof v&&(n=v)}i&&X(u,function(){i.call(u)},0/0);var p=t.includeLastID||"_default";t.includeLastID=e;var h=l&&l[p]||Ht.createElement(a.tagName||t._element.tagName);o&&(h.className=o,u.insertBefore(h,t.start)),(l||{})[p]=h;var m=t.recoverNodes();for(m&&u.insertBefore(m,t.end);;){var g=t.start.nextSibling;if(!g||g===h||g===t.end)break;h.appendChild(g)}avalon.effect.remove(h,u,function(){l&&d===t._stamp&&Lt.appendChild(h)},t);var y=u,b=avalon.noop,$=avalon.noop,x=gt(t,e,n),w=avalon.slice(x.childNodes);s&&o?(y=f,y.innerHTML="",y.setAttribute("ms-skip","true"),u.insertBefore(y,t.end.nextSibling),b=function(){y.insertBefore(x,null)},$=function(){t.recoverNodes=avalon.noop,d===t._stamp&&(x=yt(w),u.insertBefore(x,t.end),tt(w,r)),y.parentNode===u&&u.removeChild(y)},t.recoverNodes=function(){return t.recoverNodes=avalon.noop,yt(w)}):b=function(){u.insertBefore(x,t.end),tt(w,r)},avalon.effect.apply(y,"enter",b,$)};if("src"===t.param)if("string"==typeof Ba[e])avalon.nextTick(function(){d(Ba[e])});else if(Array.isArray(Ba[e]))Ba[e].push(d);else{var v=Pa();v.onload=function(){for(var t,n=v.responseText,a=0;t=Ba[e][a++];)t(n);Ba[e]=n},v.onerror=function(){n("ms-include load ["+e+"] error")},Ba[e]=[d],v.open("GET",e,!0),"withCredentials"in v&&(v.withCredentials=!0),v.setRequestHeader("X-Requested-With","XMLHttpRequest"),v.send(null)}else{var p=e&&1===e.nodeType?e:Ht.getElementById(e);p&&avalon.nextTick(function(){d(p.value||p.innerText||p.innerHTML)})}}});var Fa=/\(([^)]*)\)/,qa=avalon.directive("on",{priority:3e3,init:function(e){var t=e.expr;e.type="on";var n=e.param.replace(/-\d+$/,"");if("function"==typeof qa[n+"Hook"]&&qa[n+"Hook"](e),t.indexOf("(")>0&&t.indexOf(")")>-1){var a=(t.match(Fa)||["",""])[1].trim();(""===a||"$event"===a)&&(t=t.replace(Fa,""))}e.expr=t},update:function(e){var t=this,n=this.element;e=function(e){var n=t.getter||i;return n.apply(this,t.args.concat(e))};var a=t.param.replace(/-\d+$/,"");if("scan"===a)e.call(n,{type:a});else if("function"==typeof t.specialBind)t.specialBind(n,e);else var r=avalon.bind(n,a,e);t.rollback=function(){"function"==typeof t.specialUnbind?t.specialUnbind():avalon.unbind(n,a,r)}}});avalon.directive("repeat",{priority:90,init:function(e){var t=e.type;e.cache={},e.enterCount=0;var n=e.element;if(1===n.nodeType){n.removeAttribute(e.name),dt(n,e),e.param=e.param||"el",e.sortedCallback=ea(n,"data-with-sorted",e.vmodels);var a=ea(n,"data-"+t+"-rendered",e.vmodels),r=Jt(t),i=Ht.createComment(r+":start"),o=e.element=Ht.createComment(r+":end");if(e.signature=r,e.start=i,e.template=Gt.cloneNode(!1),"repeat"===t){var l=n.parentNode;l.replaceChild(o,n),l.insertBefore(i,o),e.template.appendChild(n)}else{for(;n.firstChild;)e.template.appendChild(n.firstChild);n.appendChild(i),n.appendChild(o),l=n}if(e.element=o,a)var s=avalon.bind(l,"datasetchanged",function(){a.apply(l,l.args),avalon.unbind(l,"datasetchanged",s),l.msRendered=a})}},update:function(e,t){var n=this,a=this.xtype;this.enterCount+=1;var r=!t;if(r){n.$outer={};var i="$key",o="$val";"array"===a&&(i="$first",o="$last");for(var l,s=0;l=n.vmodels[s++];)if(l.hasOwnProperty(i)&&l.hasOwnProperty(o)){n.$outer=l;break}}var c=this.track;if(n.sortedCallback){var f=n.sortedCallback.call($,c);f&&Array.isArray(f)&&(c=f)}var d="move";n.$repeat=e;var v=[],p=r&&Gt.cloneNode(!1),h=[],m=this.param,g=avalon.mix({},this.cache),y=this.element,b=c.length,$=y.parentNode;for(s=0;b>s;s++){var x=c[s],w=g[x];if(w)v.push({}),g[x]=!0;else{if(w=Ct(this),w.$up=null,"array"===a){d="add",w.$id=x;var C=e[s];w[m]=C,Object(C)===C&&(C.$ups=C.$ups||{},C.$ups[m]=w)}else d="append",w.$key=x,w.$val=e[x];this.cache[x]=w;var N=w.$anchor||(w.$anchor=y.cloneNode(!1));N.nodeValue=this.signature,wt(n,p,w,v,r&&!n.effectDriver),At(w,n,a)}1===this.enterCount&&(w.$active=!1,w.$oldIndex=w.$index,w.$active=!0,w.$index=s),"array"===a?(w.$first=0===s,w.$last=s===b-1):w.$val=k(e[x]),h.push(w)}if(this.proxies=h,r&&!n.effectDriver)$.insertBefore(p,y),v.forEach(function(e){tt(e.nodes||[],e.vmodels),e.nodes=e.vmodels=null});else{var A=n.staggerIndex=0;for(x in g)g[x]!==!0&&(d="del",xt(g[x].$anchor,n),Ot(this.cache,x,m),g[x]=null);for(s=0;b>s;s++){w=h[s],x="array"===a?w.$id:w.$key;var T=h[s-1],E=T?T.$anchor:n.start;g[x]?w.$index!==w.$oldIndex&&!function(e,t){A=$t(n.effectEnterStagger,function(){var a=xt(e.$anchor),r=avalon.slice(a.childNodes);$.insertBefore(a,t.nextSibling),bt(r,1,n)},A)}(w,E):!function(e,t){var a=e.nodes,r=e.vmodels;a&&(A=$t(n.effectEnterStagger,function(){$.insertBefore(e.content,t.nextSibling),tt(a,r),bt(a,1,n)},A)),e.nodes=e.vmodels=null}(v[s],E)}}if(!e.$track)for(x in this.cache)Ot(this.cache,x,m);!function(e){$.args=e,$.msRendered&&$.msRendered.apply($,e)}(u.newWatch?arguments:[d]);var O=setTimeout(function(){clearTimeout(O),avalon.fireDom($,"datasetchanged",{bubble:$.msHasEvent})});this.enterCount-=1}}),"with,each".replace(Bt,function(e){nn[e]=avalon.mix({},nn.repeat,{priority:1400})});var _a=[],Va=[];avalon.directive("text",{update:function(e){var t=this.element;if(e=null==e?"":e,3===t.nodeType)try{t.data=e}catch(n){}else t.textContent=e}}),avalon.parseDisplay=Mt,avalon.directive("visible",{init:function(e){dt(e.element,e)},update:function(e){var t,n=this,a=this.element,r=!this.effectName;return this.stamp?(t=this.stamp=+new Date,void(e?avalon.effect.apply(a,1,function(){if(t===n.stamp){var e=a.getAttribute("data-effect-driver")||"a";r&&(a.style.display=n.display||""),("a"===e||"t"===e)&&"none"===avalon(a).css("display")&&(a.style.display=n.display||Mt(a.nodeName))}}):avalon.effect.apply(a,0,function(){t===n.stamp&&(a.style.display="none")}))):(t=this.stamp=+new Date,void(e?(a.style.display=n.display||"","none"===avalon(a).css("display")&&(a.style.display=n.display=Mt(a.nodeName))):a.style.display="none"))}});var Ia=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,za=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,Wa=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/gi,Ya={a:/\b(href)\=("javascript[^"]*"|'javascript[^']*')/gi,img:/\b(src)\=("javascript[^"]*"|'javascript[^']*')/gi,form:/\b(action)\=("javascript[^"]*"|'javascript[^']*')/gi},Ua=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Xa=/([^\#-~| |!])/g,Ga=avalon.filters={uppercase:function(e){return e.toUpperCase()},lowercase:function(e){return e.toLowerCase()},truncate:function(e,t,n){return t=t||30,n="string"==typeof 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[0]];if("function"==typeof r){var i=[e].concat(a.slice(1));e=r.apply(null,i)}}return e},camelize:R,sanitize:function(e){return e.replace(Ia,"").replace(Wa,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(za," ").replace(/\s+/g," ")})},escape:function(e){return String(e).replace(/&/g,"&amp;").replace(Ua,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(Xa,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")},currency:function(e,t,n){return(t||"¥")+jt(e,isFinite(n)?n:2)},number:jt};!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+)\)\/$/;Ga.date=function(t,n){var a,r,i=Ga.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(),d=[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 d[0]=e(i[0]),d[1]=e(i[1])-1,d[2]=e(i[2]),""});var p=v.setFullYear,h=v.setHours;f=f.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/,function(t,n,a,r,i){return d[3]=e(n),d[4]=e(a),d[5]=e(r),i&&(d[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 p=v.setUTCFullYear,h=v.setUTCHours,n&&(m=e(n+a),g=e(n+r)),""}),d[3]-=m,d[4]-=g,p.apply(v,d.slice(0,3)),h.apply(v,d.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,Ga.date.locate=c};var Za,Ja=[],Ka=function(e){Za=!0;var t=avalon.require;for(t&&t.checkDeps&&(modules["domReady!"].state=4,t.checkDeps());e=Ja.shift();)e(avalon)};"complete"===Ht.readyState?setTimeout(Ka):Ht.addEventListener("DOMContentLoaded",Ka),e.addEventListener("load",Ka),avalon.ready=function(e){Za?e(avalon):Ja.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(Ht.body)}),"function"==typeof define&&define.amd&&define("avalon",[],function(){return avalon});var Qa=e.avalon;return avalon.noConflict=function(t){return t&&e.avalon===avalon&&(e.avalon=Qa),avalon},void 0===t&&(e.avalon=avalon),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 a(){return Object.create(null)}function r(){}function i(e){return Function.apply(r,e)}function o(e,t){"string"==typeof e&&(e=e.match(Pt)||[]);for(var n={},a=void 0!==t?t:1,r=0,i=e.length;i>r;r++)n[e[r]]=a;return n}function l(e){if(e&&"object"==typeof e){var t=e.length,n=It.call(e);if(/(Array|List|Collection|Map|Arguments)\]$/.test(n))return!0;if("[object Object]"===n&&t===t>>>0)return!0}return!1}function s(e,t){if(e&&e.childNodes)for(var n,a=e.childNodes,r=0;n=a[r++];)if(n.tagName){var i=St.createElementNS(nn,n.tagName.toLowerCase());zt.forEach.call(n.attributes,function(e){i.setAttribute(e.name,e.value)}),s(n,i),t.appendChild(i)}}function c(e){for(var t in e)if(Vt.call(e,t)){var n=e[t];"function"==typeof c.plugins[t]?c.plugins[t](n):"object"==typeof c[t]?avalon.mix(c[t],n):c[t]=n}return this}function u(e){return(e+"").replace(fn,"\\$&")}function f(e,t){var n=this.$events||(this.$events={}),a=n[e]||(n[e]=[]);if("function"==typeof t){var i=t;i.uniqueNumber=Math.random(),t={element:Ut,type:"user-watcher",handler:r,vmodels:[this],expr:e,uniqueNumber:i.uniqueNumber},t.wildcard=/\*/.test(e)}if(t.update)t.oneTime||avalon.Array.ensure(a,t);else{if(/\w\.*\B/.test(e)||"*"===e){t.getter=r;var o=this;t.update=function(){var e=this.fireArgs||[];e[2]&&t.handler.apply(o,e),delete this.fireArgs},a.sync=!0,avalon.Array.ensure(a,t)}else avalon.injectBinding(t);i&&(t.handler=i)}return function(){t.update=t.getter=t.handler=r,t.element=St.createElement("a")}}function d(e,t){var n=this.$events;if(n&&n[e]){t&&(t[2]=e);var a=n[e];if(p(a,t),t&&n["*"]&&!/\./.test(e))for(var r,i=0;r=n["*"][i++];)try{r.handler.apply(this,t)}catch(o){}var l=this.$up;l&&(this.$pathname&&d.call(l,this.$pathname+"."+e,t),d.call(l,"*."+e,t))}else{if(l=this.$up,this.$ups){for(var s in this.$ups)d.call(this.$ups[s],s+"."+e,t);return}if(l){var c=this.$pathname;""===c&&(c="*");var u=c+"."+e;a=u.split("."),-1===a.indexOf("*")?(d.call(l,u,t),a[1]="*",d.call(l,a.join("."),t)):d.call(l,u,t)}}}function v(e,t){for(;;){if(e.$watch){var n=e.$events||(e.$events={}),a=n[t]||(n[t]=[]);return void $n.collectDependency(a)}if(e=e.$up,!e)break;t=e.$pathname+"."+t}}function p(e,t){if(e){new Date-Cn>444&&"object"==typeof e[0]&&j();for(var n,a=[],r=[],i=0;n=e[i++];)"user-watcher"===n.type?a.push(n):r.push(n);if(c.async){for(fa.render(),i=0;n=r[i++];)if(n.update){var o=O(n);fa.queue[o]||(fa.queue[o]=1,fa.queue.push(n))}}else for(i=0;n=r[i++];)n.update&&n.update();for(i=0;n=a[i++];)(t&&t[2]===n.expr||n.wildcard)&&(n.fireArgs=t),n.update()}}function h(e,t){return t=t||{},t.watch=!0,y(e,t)}function m(){}function y(e,t){function a(e){return u[e]===!0}if(!e||e.$id&&e.$accessors||e.nodeName&&e.nodeType>0)return e;t=t||Rt;var r=t.force||Rt,i=t.old,l=i&&i.$accessors||Rt,s=new m,c={},u={},v=[],p=[],h={};e.$skipArray&&(h=o(e.$skipArray),delete e.$skipArray);var y=e.$computed;if(y){delete e.$computed;for(var $ in y)u[$]=!0,function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(a){if("function"==typeof t.set){var r=n;t.set.call(this,a);var i=this[e];this.$fire&&i!==r&&this.$fire(e,i,r)}},enumerable:!0,configurable:!0}}($,y[$])}for($ in e){var x=e[$];pn[$]||(u[$]=!0),"function"==typeof x||x&&x.nodeName&&x.nodeType>0||!r[$]&&("$"===$.charAt(0)||pn[$]||h[$])?v.push($):g(x)?(n("warning:计算属性建议放在$computed对象中统一定义"),function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(a){if("function"==typeof t.set){var r=n;t.set.call(this,a);var i=this[e];this.$fire&&i!==r&&this.$fire(e,i,r)}},enumerable:!0,configurable:!0}}($,x)):(p.push($),c[$]=l[$]?l[$]:b($,x))}c.$model=hn,s=Object.defineProperties(s,c,e),v.forEach(function(t){s[t]=e[t]}),w(s,"$ups",null),w(s,"$id","anonymous"),w(s,"$up",i?i.$up:null),w(s,"$track",Object.keys(u)),w(s,"$active",!1),w(s,"$pathname",i?i.$pathname:""),w(s,"$accessors",c),w(s,"hasOwnProperty",a),t.watch&&(w(s,"$watch",function(){return f.apply(s,arguments)}),w(s,"$fire",function(e,t){if(0===e.indexOf("all!")){var n=e.slice(4);for(var a in avalon.vmodels){var r=avalon.vmodels[a];r.$fire&&r.$fire.apply(r,[n,t])}}else d.call(s,e,[t])})),p.forEach(function(t){var n=i&&i[t],a=s[t]=e[t];a&&"object"==typeof a&&(a.$up=s,a.$pathname=t),d.call(s,t,[a,n])});for($ in y)x=s[$];return s.$active=!0,s}function g(e){if(e&&"object"==typeof e){for(var t in e)if("get"!==t&&"set"!==t)return!1;return"function"==typeof e.get}}function b(e,t){var n,t=0/0;return{get:function(){return this.$active&&v(this,e),t},set:function(a){if(t!==a){var r=t;n=$(a,t),n?t=n:(n=void 0,t=a),Object(n)===n&&(n.$pathname=e,n.$up=this),this.$active&&d.call(this,e,[t,r])}},enumerable:!0,configurable:!0}}function $(e,t,n,a){if(Array.isArray(e))return x(e,t,a);if(avalon.isPlainObject(e)){if(t&&"object"==typeof t){var r=Object.keys(e),i=Object.keys(t);if(r.join(";")===i.join(";")){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);return t}t.$active=!1}return y(e,{old:t,watch:a})}return n?e:void 0}function x(e,t,n){if(t&&t.splice){var a=[0,t.length].concat(e);return t.splice.apply(t,a),t}for(var r in gn)e[r]=gn[r];w(e,"$up",null),w(e,"$pathname",""),w(e,"$track",N(e.length)),e._=y({length:0/0},{watch:!0}),e._.length=e.length,e._.$watch("length",function(t,n){d.call(e.$up,e.$pathname+".length",[t,n])}),n&&w(e,"$watch",function(){return f.apply(e,arguments)}),Object.defineProperty(e,"$model",hn);for(var i=0,o=e.length;o>i;i++){var l=e[i]=$(e[i],0,1,1);Object(l)===l&&(l.$up=e)}return e}function w(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!1,configurable:!0})}function C(e){var t=avalon.type(e);if("array"===t){for(var n=[],a=0;a<e.length;a++)n[a]=C(e[a]);return n}if("object"===t){var r={};for(a in e)if(e.hasOwnProperty(a)){var i=e[a];r[a]=i&&i.nodeType?i:C(i)}return r}return e}function k(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 N(e){for(var t=[],n=0;e>n;n++)t[n]=Jt("$proxy$each");return t}function A(e,t,n){switch(t){case"push":case"unshift":n=N(n.length);break;case"splice":if(n.length>2){{n[1],n.length-2}n=[n[0],n[1]].concat(N(n.length-2))}}Array.prototype[t].apply(e,n)}function T(e,t){t.oneTime||e&&avalon.Array.ensure(e,t)&&t.element&&(M(t,e),new Date-Cn>444&&j())}function E(e,t){for(var n,a=[],r=0;n=e[r++];)a.push(t?n.$id:n.$key);return a.join(";")}function O(e){if(!e.uniqueNumber){var t=e.element;e.uniqueNumber=t?1!==t.nodeType?e.type+"-"+O(t.parentNode)+"-"+ ++xn:e.name+"-"+O(t):++xn}return e.uniqueNumber}function M(e,t){var n=e.lists||(e.lists=[]),a=O(e);avalon.Array.ensure(n,t),t.$uuid=t.$uuid||Jt(),wn[a]||(wn[a]=1,wn.push(e))}function j(e){for(var t=wn.length,n=t,a=[],r={},i={};e=wn[--t];){var o=e.type;i[o]?i[o]++:(i[o]=1,a.push(o))}var l=!1;if(a.forEach(function(e){kn[e]!==i[e]&&(r[e]=1,l=!0)}),t=n,l)for(;e=wn[--t];)if(null!==e.element){if(r[e.type]&&H(e.element)){wn.splice(t,1),delete wn[e.uniqueNumber];for(var s,c=e.lists,u=0;s=c[u++];)avalon.Array.remove(c,s),avalon.Array.remove(s,e);S(e)}}else wn.splice(t,1);kn=i,Cn=new Date}function S(e){delete wn[e.uniqueNumber],e.element=null,e.rollback&&e.rollback();for(var t in e)e[t]=null}function H(e){try{{e.parentNode.nodeType}}catch(t){return!0}return e.ifRemove&&!Ut.contains(e.ifRemove)&&Dt===e.parentNode?(e.parentNode&&e.parentNode.removeChild(e),!0):e.msRetain?0:1===e.nodeType?!Ut.contains(e):!avalon.contains(Ut,e)}function D(e){return e.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function L(e){return e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})}function R(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:jn.test(e)?JSON.parse(e):e}catch(t){}return e}function P(e){return e.window&&e.document?e:9===e.nodeType?e.defaultView:!1}function B(e,t){if(e.offsetWidth<=0){var n=getComputedStyle(e,null);if(Rn.test(n.display)){var a={node:e};for(var r in Ln)a[r]=n[r],e.style[r]=Ln[r];t.push(a)}var i=e.parentNode;i&&1===i.nodeType&&B(i,t)}}function F(e){var t=e.tagName.toLowerCase();return"input"===t&&/checkbox|radio/.test(e.type)?"checked":t}function q(e,t){var n=[],a=!!t;t=t||0;for(var r="unknown",o="",l=0;l<e.length;l++){var s=e.charAt(l);if("'"===s||'"'===s)"unknown"===r?r=s:r===s&&(r="unknown");else if("\\"===s)("'"===r||'"'===r)&&l++;else if(qn.test(s))"unknown"===r?(r="variable",o=s):"maybePath"===r?(o=n.pop(),o+="."+s,r="variable"):"variable"===r&&(o+=s);else if(/\w/.test(s))"variable"===r&&(o+=s);else if("."===s)"variable"===r&&o&&(n.push(o),o="",r="maybePath");else if("["===s){if("variable"===r||"maybePath"===r){o&&(n.push(o),o="");var c=n.length,u=n[c-1],f=q(e.slice(l),l);if(f.length)n[c-1]=u+".*",n=f.concat(n);else{var d=e.slice(l+1,f.i);try{var v=i(["return "+d])();n[c-1]=u+"."+v}catch(p){}}r="maybePath",l=f.i}}else if("]"===s){if(a)return n.i=l+t,_(n,o),n}else _n.test(s)&&"\r"!==s&&"\n"!==s?"variable"===r&&(_(n,o)&&(r="maybePath"),o=""):(_(n,o),r="unknown",o="")}return _(n,o),n}function _(e,t){return t&&!Bn[t]?(e.push(t),!0):void 0}function V(e,t,n,a){for(var r,i=[],o=" = "+n+".",l=e.length;r=e[--l];)for(var s,c=r.split("."),u=c[0];s=c.shift();)t.hasOwnProperty(s)&&(i.push(u+o+u),a.observers.push({v:t,p:r}),e.splice(l,1));return i}function I(e){e=e.trim();var t=In.get(e);if(t)return t.concat();for(var n,a=q(e),r={},i=[],o=0;n=a[o++];)r[n]||(r[n]=1,i.push(n));return In.put(e,i).concat()}function z(e,t,n){var a=n.filters;"string"==typeof a&&a.trim()&&!n._filters&&(n._filters=Y(a.trim()));var r=I(e),o=new Date-0,l=[],s=[],c=[];n.observers=[];for(var u=0,f=t.length;f>u;u++)if(r.length){var d="vm"+o+"_"+u;s.push(d),c.push(t[u]),l.push.apply(l,V(r,t[u],d,n))}n.args=c;var v=n.type,p=t.map(function(e){return String(e.$id).replace(Vn,"$1")})+e+v,h=zn.get(p);if(h){if("duplex"===v){var m=zn.get(p+"setter");n.setter=m.apply(m,n.args)}return n.getter=h}if(l.length||l.push("fix"+o),"duplex"===v){var y={};l.forEach(function(e){var t=e.split("=");y[t[0].trim()]=t[1].trim()}),e=e.replace(/[\$\w]+/,function(e){return y[e]?y[e]:e});var g=i(s.concat("'use strict';return function(vvv){"+e+" = vvv\n}\n"));zn.put(p+"setter",g),n.setter=g.apply(g,n.args)}if("on"===v){-1===e.indexOf("(")?e+=".call(this, $event)":e=e.replace("(",".call(this,"),s.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+";";return h=i(s.concat("'use strict';\nvar "+l.join(",\n")+e)),zn.put(p,h)}function W(e){var t=sn.test(e);if(t){var n=at(e);return 1===n.length?n[0].expr:n.map(function(e){return e.type?"("+e.expr+")":Zn(e.expr)}).join(" + ")}return e}function Y(e){return e=e.replace(Wn,"").replace(Yn,function(){return"],|"}).replace(Un,function(e,t){return"["+Zn(t)}).replace(Xn,function(){return'"],["'}).replace(Gn,function(){return'",'})+"]",i(["return ["+e+"]"])()}function U(e,t,n){var a=setTimeout(function(){var r=e.innerHTML;clearTimeout(a),r===n?t():U(e,t,r)})}function X(e,t){var n=e.getAttribute("avalonctrl")||t.$id;e.setAttribute("avalonctrl",n),t.$events&&(t.$events.expr=e.tagName+'[avalonctrl="'+n+'"]')}function G(e,t){for(var n,a=0;n=e[a++];)n.vmodels=t,en[n.type].init(n),avalon.injectBinding(n),n.getter&&1===n.element.nodeType&&n.element.removeAttribute(n.name);e.length=0}function Z(e,t){return e.priority-t.priority}function J(e,t){for(var n,a=e.attributes,r={},i=0;n=a[i++];){var o=n.name;if(n.specified&&!ra.test(o)){var l=L(n.name);r[l]=/^on\-[\w-]+$/.test(o)?Kn(e,o,t):R(n.value)}}return r}function K(e,t,a){var r=!0;if(t.length){for(var i,o=e.attributes,l=[],s={},c=0;i=o[c++];){var u=i.name;if(!s[u]&&(s[u]=1,i.specified&&(a=u.match(ta)))){var f=a[1],d=a[2]||"",v=i.value;if(na[f]?(d=f,f="on"):aa[f]&&(d=f,f="attr",u="ms-"+f+"-"+d,n("warning!请改用"+u+"代替"+i.name+"!")),en[f]){var p=v.replace(ea,""),h=v!==p,m={type:f,param:d,element:e,name:u,expr:p,oneTime:h,priority:(en[f].priority||10*f.charCodeAt(0))+(Number(d.replace(/\D/g,""))||0)};if("html"===f||"text"===f){var y=nt(v).filters;m.expr=m.expr.replace(y,""),m.filters=y.replace(la,function(){return m.type="html",m.group=1,""}).trim()}else if("duplex"===f)var g=u;else if("ms-if-loop"===u)m.priority+=100;else if("ms-attr-value"===u)var b=u;l.push(m)}}}if(l.length){for(l.sort(Z),g&&b&&"text"===e.type&&n("warning!一个控件不能同时定义ms-attr-value与"+g),c=0;m=l[c];c++){if(f=m.type,ia.test(f))return G(l.slice(0,c+1),t);r&&(r=!oa.test(f))}G(l,t)}}r&&!Jn[e.tagName]&&(Qn&&Qn(e),Q(e,t))}function Q(e,t){var n=avalon.slice(e.childNodes);et(n,t)}function et(e,t){function n(e){setTimeout(function(){avalon.component(e)})}for(var a,r=0;a=e[r++];)switch(a.nodeType){case 1:var i=a;if(!i.msResolved&&i.parentNode&&1===i.parentNode.nodeType){var o=ot(i);if(o){var l=i.localName?i.localName.replace(o+":",""):i.nodeName,s=o+":"+L(l);da.push({library:o,element:i,fullName:s,widget:l,vmodels:t,name:"widget"}),avalon.components[s]&&n(s)}}tt(a,t),a.msHasEvent&&avalon.fireDom(a,"datasetchanged",{bubble:a.msHasEvent});break;case 3:sn.test(a.nodeValue)&&rt(a,t,r)}}function tt(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),X(e,o)}K(e,t),o&&setTimeout(function(){o.$fire("ms-scan-end",e)})}}function nt(e){if(e.indexOf("|")>0){var t=e.replace(ca,function(e){return Array(e.length+1).join("1")}),n=t.replace(sa,"ᄢ㍄").indexOf("|");if(n>-1)return{type:"text",filters:e.slice(n).trim(),expr:e.slice(0,n)}}return{type:"text",expr:e,filters:""}}function at(e){for(var t,n,a=[],r=0;;){if(n=e.indexOf(on,r),-1===n)break;if(t=e.slice(r,n),t&&a.push({expr:t}),r=n+on.length,n=e.indexOf(ln,r),-1===n)break;t=e.slice(r,n),t&&a.push(nt(t,r)),r=n+ln.length}return t=e.slice(r),t&&a.push({expr:t}),a}function rt(e,t,n){var a=[],r=at(e.data);if(r.length){for(var i,o=0;i=r[o++];){var l=St.createTextNode(i.expr);i.type&&(i.expr=i.expr.replace(ea,function(){return i.oneTime=!0,""}),i.element=l,i.filters=i.filters.replace(la,function(){return i.type="html",""}),i.pos=1e3*n+o,a.push(i)),Xt.appendChild(l)}e.parentNode.replaceChild(Xt,e),a.length&&G(a,t)}}function it(e,t){if(t)for(var n,a=0;n=e[a++];)if(n.hasOwnProperty(t)&&"object"==typeof n[t]){var r=n[t];return r.$model||r}return{}}function ot(e){if(e.scopeName&&"HTML"!==e.scopeName)return e.scopeName;var t=e.nodeName.toLowerCase(),n=t.indexOf(":");return n>0?t.slice(0,n):void 0}function lt(e){return null==e?"":e}function st(e,t,n){return t.param.replace(Bt,function(a){var r=avalon.duplexHooks[a];r&&"function"==typeof r[n]&&(e=r[n](e,t))}),e}function ct(){for(var e=ka.length-1;e>=0;e--){var t=ka[e];t()===!1&&ka.splice(e,1)}ka.length||clearInterval(Ca)}function ut(e,t){if(!e||1!==e.nodeType)return null;if(t)var n=t.effectName,a=t.effectDriver;else n=e.getAttribute("data-effect-name"),a=e.getAttribute("data-effect-driver");if(!n||!a)return null;var r=Sa.pop()||new vt;return r.el=e,r.driver=a,r.useCss="j"!==a,r.useCss&&(t&&avalon(e).addClass(t.effectClass),r.cssEvent="t"===a?Aa:Ta),r.name=n,r.callbacks=avalon.effects[n]||{},r}function ft(e,t){var n=e.getAttribute("data-effect-name");if(n){t.effectName=n,t.effectDriver=e.getAttribute("data-effect-driver");var a=+e.getAttribute("data-effect-stagger");t.effectLeaveStagger=+e.getAttribute("data-effect-leave-stagger")||a,t.effectEnterStagger=+e.getAttribute("data-effect-enter-stagger")||a,t.effectClass=e.className||0/0}}function dt(e){return e.replace(/^[\S]/g,function(e){return e.toUpperCase()})}function vt(){}function pt(e,t){var n=e.callbacks[t+"Class"];return"string"==typeof n?n:"function"==typeof n?n():e.name+"-"+t}function ht(e,t,n){var a=e.callbacks[t];a&&a.call(e,e.el,n)}function mt(e,t,n){var a=e.templateCache&&e.templateCache[t];if(a){for(var r,i=St.createDocumentFragment();r=a.firstChild;)i.appendChild(r);return i}return avalon.parseHTML(n)}function yt(e){for(var t=St.createDocumentFragment(),n=0,a=e.length;a>n;n++)t.appendChild(e[n]);return t}function gt(e,t,n){for(var a,i=0;a=e[i++];)a.className===n.effectClass&&avalon.effect.apply(a,t,r,r,n)}function bt(e,t,n){return e?setTimeout(t,++n*e):t(),n}function $t(e,t){for(var n=Xt.cloneNode(!1),a=e,i=a.nodeValue,o=t&&Math.max(+t.staggerIndex,0),l=avalon.slice(a.parentNode.childNodes),s=l.indexOf(a);;){var c=l[--s];if(!c||0===String(c.nodeValue).indexOf(i))break;t&&c.className===t.effectClass?(e=c,function(e){t.staggerIndex=bt(t.effectLeaveStagger,function(){avalon.effect.apply(e,0,r,function(){n.appendChild(e)},t)},o)}(c)):n.insertBefore(c,n.firstChild)}return n.appendChild(a),n}function xt(e,t,n,a,r){var i=e.template.cloneNode(!0),o=avalon.slice(i.childNodes);i.appendChild(n.$anchor),r&&t.appendChild(i);var l=[n].concat(e.vmodels),s={nodes:o,vmodels:l,content:i};a.push(s)}function wt(e){var t="object"===e.xtype?At:Ct,n=t(e),a=n.$anchor||(n.$anchor=e.element.cloneNode(!1));return a.nodeValue=e.signature,n.$outer=e.$outer,n}function Ct(e,t){for(var n=e.param||"el",a=0,r=Fa.length;r>a;a++){var i=Fa[a];if(i&&i.hasOwnProperty(n)){Fa.splice(a,1),t=i;break}}return t||(t=kt(n)),t}function kt(e){var t={$outer:{},$index:0,$oldIndex:0,$anchor:null,$first:!1,$last:!1,$remove:avalon.noop};t[e]=0/0;var n={$last:1,$first:1,$index:1};n[e]=1;var a=h(t,{force:n});return a.$id=Jt("$proxy$each"),a}function Nt(e,t,n){if("array"===n){e.$remove=function(){t.$repeat.removeAt(e.$index)};var a=t.param;e.$watch(a,function(n){var a=e.$index;t.$repeat[a]=n})}else e.$watch("$val",function(n){t.$repeat[e.$key]=n})}function At(){return qa.pop()||Tt()}function Tt(){var e=h({$key:"",$val:0/0,$index:0,$oldIndex:0,$outer:{},$anchor:null},{force:{$key:1,$val:1,$index:1}});return e.$id=Jt("$proxy$with"),e}function Et(e,t,n){var a=e[t];if(a){var r=0===a.$id.indexOf("$proxy$each")?Fa:qa;a.$outer={};for(var i in a.$events){var o=a.$events[i];Array.isArray(o)&&(o.length=0,i===n?a[n]=0/0:"$val"===i&&(a.$val=0/0))}r.unshift(a)>c.maxRepeatSize&&r.pop(),delete e[t]}}function Ot(e,t){var n="_"+e;if(!Ot[n]){var a=St.createElement(e);Ut.appendChild(a),t=Yt?getComputedStyle(a,null).display:a.currentStyle.display,Ut.removeChild(a),Ot[n]=t}return Ot[n]}function Mt(e,t,n,a){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var r=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):3,o=a||",",l=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)}var jt=Date.now(),St=e.document,Ht=St.head;Ht.insertAdjacentHTML("afterBegin",'<avalon ms-skip class="avalonHide"><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>');var Dt=Ht.firstChild,Lt="$"+jt,Rt={},Pt=/[^, ]+/g,Bt=/\w+/g,Ft=/^\[object SVG\w*Element\]$/,qt=/^\[object (?:Window|DOMWindow|global)\]$/,_t=Object.prototype,Vt=_t.hasOwnProperty,It=_t.toString,zt=Array.prototype,Wt=zt.slice,Yt=e.dispatchEvent,Ut=St.documentElement,Xt=St.createDocumentFragment(),Gt=(St.createElement("div"),{});"Boolean Number String Function Array Date RegExp Object Error".replace(Pt,function(e){Gt["[object "+e+"]"]=e.toLowerCase()});var Zt=0/0;e.VBArray&&(Zt=document.documentMode||(e.XMLHttpRequest?7:6));var Jt=function(e){return e=e||"avalon",String(Math.random()+Math.random()).replace(/\d\.\d{4}/,e)};avalon=function(e){return new avalon.init(e)},avalon.nextTick=new function(){function t(){for(var e=r.length,t=0;e>t;t++)r[t]();r=r.slice(e)}var n=e.setImmediate,a=e.MutationObserver;if(n)return n.bind(e);var r=[];if(a){var i=document.createTextNode("avalon");new a(t).observe(i,{characterData:!0});var o=!1;return function(e){r.push(e),o=!o,i.data=o}}return function(e){setTimeout(e,4)}},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?Gt[It.call(e)]||"object":typeof e},avalon.isFunction=function(e){return"[object Function]"===It.call(e)},avalon.isWindow=function(e){return qt.test(It.call(e))},avalon.isPlainObject=function(e){return"[object Object]"===It.call(e)&&Object.getPrototypeOf(e)===_t},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||avalon.isFunction(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:Pt,subscribers:Lt,version:1.56,ui:{},log:n,slice:function(e,t,n){return Wt.call(e,t,n)},noop:r,error:function(e,t){throw new(t||Error)(e)},oneObject:o,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||t,a=i.phase||!!a,n=i.fn?i.fn(e,n):n),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||t,a=o.phase||!!a),e.removeEventListener(t,l,a)},css:function(e,t,n){e instanceof avalon&&(e=e[0]);var a,r=/[_-]/.test(t)?L(t):t;if(t=avalon.cssName(r)||r,void 0===n||"boolean"==typeof n){a=Sn[r+":get"]||Sn["@: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=Sn[r+":set"]||Sn["@:set"],a(e,t,n)}},each:function(e,t){if(e){var n=0;if(l(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 Kt=avalon.bindingHandlers={},Qt=avalon.bindingExecutors={},en=avalon.directives={};avalon.directive=function(e,t){return Kt[e]=t.init=t.init||r,Qt[e]=t.update=t.update||r,en[e]=t};var tn=new function(){function e(e){this.size=0,this.limit=e,this.head=this.tail=void 0,this._keymap={}}var t=e.prototype;return t.put=function(e,t){var n={key:e,value:t};return this._keymap[e]=n,this.tail?(this.tail.newer=n,n.older=this.tail):this.head=n,this.tail=n,this.size===this.limit?this.shift():this.size++,t},t.shift=function(){var e=this.head;e&&(this.head=this.head.newer,this.head.older=e.newer=e.older=this._keymap[e.key]=void 0,delete this._keymap[e.key])},t.get=function(e){var t=this._keymap[e];if(void 0!==t)return t===this.tail?t.value:(t.newer&&(t===this.head&&(this.head=t.newer),t.newer.older=t.older),t.older&&(t.older.newer=t.newer),t.newer=void 0,t.older=this.tail,this.tail&&(this.tail.newer=t),this.tail=t,t.value)},e};if(St.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 nn="http://www.w3.org/2000/svg",an=St.createElementNS(nn,"svg");an.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',Ft.test(an.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=St.createDocumentFragment();s(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);s(t,this)}}}})}var rn=avalon.eventHooks;"onmouseenter"in Ut||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){rn[e]={type:t,fn: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]&&!rn.animationend&&(rn.animationend={type:n})}),void 0===St.onmousewheel&&(rn.mousewheel={type:"wheel",fn: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)}}}),avalon.config=c;var on,ln,sn,cn,un,fn=/[-.*+?^${}()|[\]\/\\]/g,dn={interpolate:function(e){if(on=e[0],ln=e[1],on===ln){throw new SyntaxError("openTag!==closeTag")}c.openTag=on,c.closeTag=ln;var t=u(on),n=u(ln);sn=new RegExp(t+"(.*?)"+n),cn=new RegExp(t+"(.*?)"+n,"g"),un=new RegExp(t+".*?"+n+"|\\sms-")}};c.plugins=dn,c.plugins.interpolate(["{{","}}"]),c.async=!0,c.debug=!0,c.paths={},c.shim={},c.maxRepeatSize=100;var vn=avalon.vmodels={};avalon.define=function(e){var t=e.$id;t||n("warning: vm必须指定$id");var a=h(e);return a.$id=t,vn[t]=a};var pn=o("$id,$watch,$fire,$events,$model,$skipArray,$active,$pathname,$up,$ups,$track,$accessors"),hn={get:function(){return C(this)},set:r,enumerable:!1,configurable:!0},mn=["push","pop","shift","unshift","splice"],yn=Array.prototype,gn={notify:function(){d.call(this.$up,this.$pathname)},set:function(e,t){if(e>>>0===e&&this[e]!==t){if(e>this.length)throw Error(e+"set方法的第一个参数不能大于原数组长度");d.call(this.$up,this.$pathname+".*",[t,this[e]]),this.splice(e,1,t)}},contains:function(e){return-1!==this.indexOf(e)},ensure:function(e){return this.contains(e)||this.push(e),this},pushArray:function(e){return this.push.apply(this,e)},remove:function(e){return this.removeAt(this.indexOf(e))},removeAt:function(e){return e>>>0===e?this.splice(e,1):[]},size:function(){return this._.length},removeAll:function(e){if(Array.isArray(e))for(var t=this.length-1;t>=0;t--)-1!==e.indexOf(this[t])&&(bn.call(this.$track,t,1),bn.call(this,t,1));else if("function"==typeof e)for(t=this.length-1;t>=0;t--){var n=this[t];e(n,t)&&(bn.call(this.$track,t,1),bn.call(this,t,1))}else bn.call(this.$track,0,this.length),bn.call(this,0,this.length);Yt||(this.$model=C(this)),this.notify(),this._.length=this.length},clear:function(){return this.removeAll()}},bn=yn.splice;mn.forEach(function(e){var t=yn[e];gn[e]=function(){for(var n=[],a=0,r=arguments.length;r>a;a++)n[a]=$(arguments[a],0,1,1);var i=t.apply(this,n);return A(this.$track,e,n),Yt||(this.$model=C(this)),this.notify(),this._.length=this.length,i}}),"sort,reverse".replace(Pt,function(e){gn[e]=function(){var t=this.concat(),n=this,a=Math.random(),r=[],i=!1;yn[e].apply(n,arguments);for(var o=0,l=t.length;l>o;o++){var s=n[o],c=t[o];if(s===c)r.push(o);else{var u=t.indexOf(s);r.push(u),t[u]=a,i=!0}}return i&&(k(this.$track,r),Yt||(this.$model=C(this)),this.notify()),this}});var $n=function(){var e,t=[];return{begin:function(n){t.push(e),e=n},end:function(){e=t.pop()},collectDependency:function(t){e&&e.callback(t)}}}();avalon.injectBinding=function(e){e.handler=e.handler||en[e.type].update||r,e.update=function(){var t=!1;e.getter||(t=!0,$n.begin({callback:function(t){T(t,e)}}),e.getter=z(e.expr,e.vmodels,e),e.observers.forEach(function(t){t.v.$watch(t.p,e)}),delete e.observers);try{var a,r,i=e.fireArgs;if(delete e.fireArgs,i)a=i[0],r=i[1];else if("on"===e.type)a=e.getter+"";else try{a=e.getter.apply(0,e.args)}catch(o){a=null}if(r="undefined"==typeof r?e.oldValue:r,e._filters&&(a=Ua.$filter.apply(0,[a].concat(e._filters))),e.signature){var l=avalon.type(a);if("array"!==l&&"object"!==l)throw Error("warning:"+e.expr+"只能是对象或数组");e.xtype=l;var s=E(e.proxies||[],l),c=a.$track||("array"===l?N(a.length):Object.keys(a));e.track=c,s!==c.join(";")&&(e.handler(a,r),e.oldValue=1)}else(Array.isArray(a)?a.length===(r&&r.length):1)?"oldValue"in e&&a===r||(e.handler(a,r),e.oldValue=a):(e.handler(a,r),e.oldValue=a.concat())}catch(u){delete e.getter,n("warning:exception throwed in [avalon.injectBinding] ",u);var f=e.element;f&&3===f.nodeType&&(f.nodeValue=on+(e.oneTime?"::":"")+e.expr+ln)}finally{t&&$n.end()}},e.update()};var xn=0,wn=avalon.$$subscribers=[],Cn=new Date,kn={},Nn=new function(){avalon.mix(this,{option:St.createElement("select"),thead:St.createElement("table"),td:St.createElement("tr"),area:St.createElement("map"),tr:St.createElement("tbody"),col:St.createElement("colgroup"),legend:St.createElement("fieldset"),_default:St.createElement("div"),g:St.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(Pt,function(e){Nn[e]=Nn.g});var An=/<([\w:]+)/,Tn=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,En=o(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),On=St.createElement("script"),Mn=/<|&#?\w+;/;avalon.parseHTML=function(e){var t=Xt.cloneNode(!1);if("string"!=typeof e)return t;if(!Mn.test(e))return t.appendChild(St.createTextNode(e)),t;e=e.replace(Tn,"<$1></$2>").trim();var n,a=(An.exec(e)||["",""])[1].toLowerCase(),r=Nn[a]||Nn._default;r.innerHTML=e;var i=r.getElementsByTagName("script");if(i.length)for(var o,l=0;o=i[l++];)if(En[o.type]){var s=On.cloneNode(!1);zt.forEach.call(o.attributes,function(e){s.setAttribute(e.name,e.value)}),s.text=o.text,o.parentNode.replaceChild(s,o)}for(;n=r.firstChild;)t.appendChild(n);return t},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},"add,remove".replace(Pt,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=String(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-"+D(e||""),arguments.length){case 2:return this.attr(e,t),this;case 1:var n=this.attr(e);return R(n);case 0:var a={};return zt.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=L(e.slice(5)),a[e]=R(t.value)))}),a}},removeData:function(e){return e="data-"+D(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),a.top-=e.scrollTop(),a.left-=e.scrollLeft()),{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;
2
+ return avalon(e||Ut)},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[F(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}}),Ut.dataset&&(avalon.fn.data=function(e,t){e=e&&L(e);var n=this[0].dataset;switch(arguments.length){case 2:return n[e]=t,this;case 1:return t=n[e],R(t);case 0:var r=a();for(e in n)r[e]=R(n[e]);return r}});var jn=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/;avalon.parseJSON=JSON.parse,avalon.fireDom=function(e,t,n){var a=St.createEvent("Events");a.initEvent(t,!0,!0),avalon.mix(a,n),e.dispatchEvent(a)},avalon.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){avalon.fn[e]=function(n){var a=this[0]||{},r=P(a),i="scrollTop"===e;return arguments.length?void(r?r.scrollTo(i?r[t]:n,i?n:r[t]):a[e]=n):r?r[t]:a[e]}});var Sn=avalon.cssHooks=a(),Hn=["","-webkit-","-moz-","-ms-"],Dn={"float":"cssFloat"};avalon.cssNumber=o("animationIterationCount,animationIterationCount,columnCount,order,flex,flexGrow,flexShrink,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(Dn[e])return Dn[e];t=t||Ut.style;for(var a=0,r=Hn.length;r>a;a++)if(n=L(Hn[a]+e),n in t)return Dn[e]=n;return null},Sn["@:set"]=function(e,t,n){e.style[t]=n},Sn["@:get"]=function(e,t){if(!e||!e.style)throw new Error("getComputedStyle要求传入一个节点 "+e);var n,a=getComputedStyle(e);return a&&(n="filter"===t?a.getPropertyValue(t):a[t],""===n&&(n=e.style[t])),n},Sn["opacity:get"]=function(e){var t=Sn["@:get"](e,"opacity");return""===t?"1":t},"top,left".replace(Pt,function(e){Sn[e+":get"]=function(t){var n=Sn["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Ln={position:"absolute",visibility:"hidden",display:"block"},Rn=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(Pt,function(e){var t=e.toLowerCase(),n="client"+e,a="scroll"+e,r="offset"+e;Sn[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)},Sn[t+"&get"]=function(e){var n=[];B(e,n);for(var a,r=Sn[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 Sn[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return Sn[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return Sn[t+":get"](this[0],void 0,e===!0?2:0)}}),avalon.fn.offset=function(){var e=this[0];try{var t=e.getBoundingClientRect();if(t.width||t.height||e.getClientRects().length){var n=e.ownerDocument,a=n.documentElement,r=n.defaultView;return{top:t.top+r.pageYOffset-a.clientTop,left:t.left+r.pageXOffset-a.clientLeft}}}catch(i){return{left:0,top:0}}};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;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)}},Bn={},Fn=["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"].join(",");Fn.replace(/\w+/g,function(e){Bn[e]=!0});var qn=/[a-z_$]/i,_n=/[\s\uFEFF\xA0]/,Vn=/(\$proxy\$[a-z]+)\d+$/,In=new tn(218),zn=new tn(128);avalon.normalizeExpr=W,avalon.parseExprProxy=z;var Wn=/\)\s*$/,Yn=/\)\s*\|/g,Un=/\|\s*([$\w]+)/g,Xn=/"\s*\["/g,Gn=/"\s*\(/g,Zn=JSON.stringify;avalon.scan=function(e,t){e=e||Ut;var n=t?[].concat(t):[];tt(e,n)};var Jn=o("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),Kn=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]},Qn=Zt&&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,ea=/^\s*::/,ta=/ms-(\w+)-?(.*)/,na=o("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),aa=o("value,title,alt,checked,selected,disabled,readonly,enabled,href,src"),ra=/^(ms-\S+|data-\S+|on[a-z]+|id|style|class)$/,ia=/^if|widget|repeat$/,oa=/^each|with|html|include$/,la=/\|\s*html(?:\b|$)/,sa=/\|\|/g,ca=/(['"])(\\\1|.)+?\1/g,ua=function(){this.queue=[]};ua.prototype={render:function(e){if(!this.locked){this.locked=e?Ut.offsetHeight+10:1;var t=this;avalon.nextTick(function(){t.flush()})}},flush:function(){for(var e,t=0;e=this.queue[t++];)e.update&&e.update();this.locked=0,this.queue=[]}};var fa=new ua,da=[],va=[],pa={$construct:function(){return avalon.mix.apply(null,arguments)},$ready:r,$init:r,$dispose:r,$container:null,$childReady:r,$replace:!1,$extend:null,$$template:function(e){return e}};avalon.components={},avalon.component=function(t,n){n&&(avalon.components[t]=avalon.mix({},pa,n));for(var a,r=0;a=da[r];r++)t===a.fullName&&(da.splice(r,1),r--,function(n,a,r,i){if(!avalon.contains(St,r)||r.msResolved)return void avalon.Array.remove(da,n);var o=1,l=n.library,s=avalon.libraries[l]||pa;if(!r.getAttribute("ms-attr-identifier")){var c=J(r,n.vmodels),u=it(n.vmodels,c.config||n.fullName),f=c.$id||c.identifier||Jt(i);delete c.config,delete c.$id,delete c.identifier;var d={},v=avalon.components[a.$extend];v?(avalon.mix(!0,d,v),d=v.$construct.call(r,d,{},{})):avalon.mix(!0,d,a),d=avalon.components[t].$construct.call(r,d,u,c),d.$refs={},d.$id=f;var p=d.$slot,h=d.$replace,m=d.$container,y=d.$template;delete d.$slot,delete d.$replace,delete d.$container,delete d.$construct;var g=avalon.define(d)||{};r.msResolved=1,g.$init(g,r),s.$init(g,r);for(var b,$,x=r.childNodes,w={},C=0;$=x[C++];){var k=1===$.nodeType&&$.getAttribute("slot")||p;k&&(w[k]?w[k].push($):w[k]=[$])}g.$$template&&(avalon.clearHTML(r),r.innerHTML=g.$$template(y));for(C in w)if(g.hasOwnProperty(C)){var N=w[C];if(N.length){for(var A=Xt.cloneNode(!0),T=0;b=N[T++];)A.appendChild(b);g[C]=A}w[C]=null}w=null;var E=r.children[0]||r.firstChild;if(h){r.parentNode.replaceChild(E,r),E.msResolved=1;var O=r.style.cssText,S=r.className;r=n.element=E,r.style.cssText+=";"+O,S&&avalon(r).addClass(S)}m&&m.appendChild(r),avalon.fireDom(r,"datasetchanged",{library:l,vm:g,childReady:1});var H=0,D=avalon.bind(r,"datasetchanged",function(t){if(t.childReady&&t.library===l&&(o+=t.childReady,g!==t.vm&&(g.$refs[t.vm.$id]=t.vm,-1===t.childReady&&(H++,g.$childReady(g,r,t)),t.stopPropagation())),0===o){var a=setTimeout(function(){clearTimeout(a),g.$ready(g,r,n.vmodels),s.$ready(g,r,n.vmodels)},H?Math.max(17*H,100):17);avalon.unbind(r,"datasetchanged",D),n.rollback=function(){try{g.$dispose(g,r),s.$dispose(g,r)}catch(e){}delete avalon.vmodels[g.$id]},M(n,va),e.chrome&&r.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(j)})}});if(tt(r,[g].concat(n.vmodels)),avalon.vmodels[g.$id]=g,r.childNodes.length)var L=setTimeout(function(){clearTimeout(L),avalon.fireDom(r,"datasetchanged",{library:l,vm:g,childReady:-1})},17);else avalon.fireDom(r,"datasetchanged",{library:l,vm:g,childReady:-1})}}(a,avalon.components[t],a.element,a.widget))},avalon.libraries=[],avalon.library=function(e,t){St.namespaces&&St.namespaces.add(e,"http://www.w3.org/1999/xhtml"),avalon.libraries[e]=avalon.mix({$init:r,$ready:r,$dispose:r},t||{})},avalon.library("ms");var ha=["autofocus,autoplay,async,allowTransparency,checked,controls","declare,disabled,defer,defaultChecked,defaultSelected","contentEditable,isMap,loop,multiple,noHref,noResize,noShade","open,readOnly,selected"].join(","),ma={};ha.replace(Pt,function(e){ma[e.toLowerCase()]=e});var ya={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"},ga=["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan","dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight","rowSpan,tabIndex,useMap,vSpace,valueType,vAlign"].join(",");ga.replace(Pt,function(e){ya[e.toLowerCase()]=e});var ba=avalon.directive("attr",{init:function(e){if(e.expr=W(e.expr.trim()),"include"===e.type){var t=e.element;ft(t,e),e.includeRendered=Kn(t,"data-include-rendered",e.vmodels),e.includeLoaded=Kn(t,"data-include-loaded",e.vmodels);var n=e.includeReplace=!!avalon(t).data("includeReplace");avalon(t).data("includeCache")&&(e.templateCache={}),e.start=St.createComment("ms-include"),e.end=St.createComment("ms-include-end"),n?(e.element=e.end,e._element=t,t.parentNode.insertBefore(e.start,t),t.parentNode.insertBefore(e.end,t.nextSibling)):(t.insertBefore(e.start,t.firstChild),t.appendChild(e.end))}},update:function(t){var n=this.element,a=this.param;if("href"===a||"src"===a){if("string"!=typeof t||Ut.hasAttribute||(t=t.replace(/&amp;/g,"&")),n[a]=t,e.chrome&&"EMBED"===n.tagName){var r=n.parentNode,i=document.createComment("ms-src");r.replaceChild(i,n),r.replaceChild(n,i)}}else{var o=t===!1||null===t||void 0===t;!Yt&&ya[a]&&(a=ya[a]);var l=ma[a];if("boolean"==typeof n[l]&&(n[l]=!!t,t||(o=!0)),o)return n.removeAttribute(a);var s=Ft.test(n)?!1:St.namespaces&&isVML(n)?!0:a in n.cloneNode(!1);s?n[a]=t+"":n.setAttribute(a,t)}}});"title,alt,src,value,css,include,href".replace(Pt,function(e){en[e]=ba}),avalon.directive("class",{init:function(e){var t=e.param,a=e.type;if(!t||isFinite(t)?(e.param="",en.effect.init(e)):(n("ms-"+a+'-xxx="yyy"这种用法已经过时,请使用ms-'+a+'="xxx:yyy"'),e.expr="["+Zn(t)+","+e.expr+"]",e.oldStyle=t),"hover"===a||"active"===a){if(!e.hasBindEvent){var r=e.element,i=avalon(r),o="mouseenter",l="mouseleave";if("active"===a){r.tabIndex=r.tabIndex||-1,o="mousedown",l="mouseup";var s=i.bind("mouseleave",function(){e.toggleClass&&i.removeClass(e.newClass)})}}var c=i.bind(o,function(){e.toggleClass&&i.addClass(e.newClass)}),u=i.bind(l,function(){e.toggleClass&&i.removeClass(e.newClass)});e.rollback=function(){i.unbind("mouseleave",s),i.unbind(o,c),i.unbind(l,u)},e.hasBindEvent=!0}},update:function(e){var t=this,n=avalon(this.element);t.newClass=e[0],t.toggleClass=!!e[1],t.oldClass&&t.newClass!==t.oldClass&&n.removeClass(t.oldClass),t.oldClass=t.newClass,"class"===t.type&&(t.oldStyle?n.toggleClass(t.oldStyle,!!e[1]):n.toggleClass(t.newClass,t.toggleClass))}}),"hover,active".replace(Pt,function(e){en[e]=en["class"]}),avalon.directive("css",{init:en.attr.init,update:function(e){avalon(this.element).css(this.param,e)}}),avalon.directive("data",{priority:100,update:function(e){var t=this.element,n="data-"+this.param;e&&"object"==typeof e?t[n]=e:t.setAttribute(n,String(e))}});{var $a=/^(?:checkbox|radio)$/,xa=/^(?:radio|checked)$/,wa=/^(file|button|reset|submit|checkbox|radio|range)$/;avalon.directive("duplex",{priority:2e3,init:function(e,t){function a(t){e.changed.call(this,t,e)}function i(){v=!0}function l(){v=!1}var s=e.element,c=e.vmodels;e.changed=Kn(s,"data-duplex-changed",c)||r;var u=[],f=o("string,number,boolean,checked");"radio"===s.type&&""===e.param&&(e.param="checked"),e.param.replace(Bt,function(a){$a.test(s.type)&&xa.test(a)&&("radio"===a&&n("ms-duplex-radio已经更名为ms-duplex-checked"),a="checked",e.isChecked=!0,e.xtype="radio"),"bool"===a?(a="boolean",n("ms-duplex-bool已经更名为ms-duplex-boolean")):"text"===a&&(a="string",n("ms-duplex-text已经更名为ms-duplex-string")),f[a]&&(t=!0),avalon.Array.ensure(u,a)}),t||u.push("string"),e.param=u.join("-"),e.xtype||(e.xtype="SELECT"===s.tagName?"select":"checkbox"===s.type?"checkbox":"radio"===s.type?"radio":/^change/.test(s.getAttribute("data-duplex-event"))?"change":"input");var d=e.bound=function(t,n){s.addEventListener(t,n,!1);var a=e.rollback;e.rollback=function(){s.avalonSetter=null,avalon.unbind(s,t,n),a&&a()}},v=!1,p=function(){var t=s.value;if(!v&&t!==e.oldValue&&null!==e.pipe){var n=e.pipe(t,e,"get");e.oldValue=t,e.setter(n),a.call(s,n)}};switch(e.xtype){case"radio":d("click",function(){var t=e.pipe(s.value,e,"get");e.setter(t),a.call(s,t)});break;case"checkbox":d("change",function(){var t=s.checked?"ensure":"remove",r=e.getter.apply(0,e.vmodels);Array.isArray(r)||(n("ms-duplex应用于checkbox上要对应一个数组"),r=[r]);var i=e.pipe(s.value,e,"get");avalon.Array[t](r,i),a.call(s,r)});break;case"change":d("change",p);break;case"input":d("input",p),d("keyup",p),Zt||(d("compositionstart",i),d("compositionend",l),d("DOMAutoComplete",p));break;case"select":d("change",function(){var t=avalon(s).val();if(t=Array.isArray(t)?t.map(function(t){return e.pipe(t,e,"get")}):e.pipe(t,e,"get"),t+""!==e.oldValue)try{e.setter(t)}catch(a){n(a)}}),d("datasetchanged",function(t){if("selectDuplex"===t.bubble){var n=e._value,r=Array.isArray(n)?n.map(String):n+"";avalon(s).val(r),s.oldValue=r+"",a.call(s,r)}})}"input"!==e.xtype||wa.test(s.type)||("hidden"!==s.type&&(d("focus",function(){s.msFocus=!0}),d("blur",function(){s.msFocus=!1})),s.avalonSetter=p,Na(function(){if(Ut.contains(s))s.msFocus||p();else if(!s.msRetain)return!1}))},update:function(e){var t,n=this.element,a=this;if(!this.init){for(var r in avalon.vmodels){var i=avalon.vmodels[r];i.$fire("avalon-ms-duplex-init",a)}var o=a.pipe||(a.pipe=st);o(null,a,"init"),this.init=1}switch(this.xtype){case"input":case"change":if(t=this.pipe(e,this,"set"),t!==this.oldValue){var l=!1;if(n.msFocus)try{var s=n.selectionStart,c=n.selectionEnd;if(s===c){var u=s;l=!0}}catch(f){}n.value=this.oldValue=t,l&&!n.readOnly&&(n.selectionStart=n.selectionEnd=u)}break;case"radio":t=a.isChecked?!!e:e+""===n.value,n.checked=t;break;case"checkbox":var d=[].concat(e);t=this.pipe(n.value,this,"get"),n.checked=d.indexOf(t)>-1;break;case"select":a._value=e,n.msHasEvent?avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent}):n.msHasEvent="selectDuplex"}}})}avalon.duplexHooks={checked:{get:function(e,t){return!t.oldValue}},string:{get:function(e){return e},set:lt},"boolean":{get:function(e){return"true"===e},set:lt},number:{get:function(e,t){var n=parseFloat(e);if(-e===-n)return n;var a=/strong|medium|weak/.exec(t.element.getAttribute("data-duplex-number"))||["medium"];switch(a[0]){case"strong":return 0;case"medium":return""===e?"":0;case"weak":return e}},set:lt}};var Ca,ka=[];avalon.tick=function(e){1===ka.push(e)&&(Ca=setInterval(ct,60))};var Na=r;!new function(){function e(e){t[this.tagName].call(this,e),!this.msFocus&&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){Na=avalon.tick}},avalon.directive("effect",{priority:5,init:function(e){var t,n,a=e.expr,r=a.replace(cn,function(e){return e.replace(/./g,"0")}).indexOf(":");-1===r?(t=a,n=!0):(t=a.slice(0,r),n=a.slice(r+1)),t=sn.test(a)?W(t):Zn(t),e.expr="["+t+","+n+"]"},update:function(t){var n=t[0],a=this.element;if(a.getAttribute("data-effect-name")!==n){a.removeAttribute("data-effect-driver");var r=a.style,i=e.getComputedStyle?e.getComputedStyle(a):null,o=!1;if(i&&(Ea||Oa)){var l=r[Ma]||i[Ma];l&&"0s"!==l&&(a.setAttribute("data-effect-driver","t"),o=!0),o||(l=r[ja]||i[ja],l&&"0s"!==l&&(a.setAttribute("data-effect-driver","a"),o=!0))}o||avalon.effects[n]&&(a.setAttribute("data-effect-driver","j"),o=!0),o&&a.setAttribute("data-effect-name",n)}}}),avalon.effects={},avalon.effect=function(e,t){avalon.effects[e]=t};var Aa,Ta,Ea=!1,Oa=!1,Ma=avalon.cssName("transition-duration"),ja=avalon.cssName("animation-duration");!new function(){var t,n={TransitionEvent:"transitionend",WebKitTransitionEvent:"webkitTransitionEnd",OTransitionEvent:"oTransitionEnd",otransitionEvent:"otransitionEnd"};for(var a in n){if(e[a]){t=n[a];break}try{{document.createEvent(a)}t=n[a];break}catch(r){}}"string"==typeof t&&(Ea=!0,Aa=t),n={AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"};var i;for(a in n)if(e[a]){i=n[a];break}"string"==typeof i&&(Ea=!0,Ta=i)};var Sa=[],Ha=new ua;vt.prototype={contrustor:vt,enterClass:function(){return pt(this,"enter")},leaveClass:function(){return pt(this,"leave")},actionFun:function(e,t,n){if(!document.hidden){var a=this,r=a.el,i="leave"===e;e=i?"leave":"enter";var o=i?"enter":"leave";ht(a,"abort"+dt(o)),ht(a,"before"+dt(e)),i||t(r);var l=function(o){r.removeEventListener(a.cssEvent,a.cssCallback),i?(t(r),avalon(r).removeClass(a.cssClass)):"a"===a.driver&&avalon(r).removeClass(a.cssClass),o!==!0&&(ht(a,"after"+dt(e)),n&&n(r)),a.dispose()};a.useCss?(a.cssCallback&&a.cssCallback(!0),a.cssClass=pt(a,e),a.cssCallback=l,a.update=function(){r.addEventListener(a.cssEvent,a.cssCallback),i||"t"!==a.driver||avalon(r).removeClass(a.cssClass)},avalon(r).addClass(a.cssClass),Ha.render(!0),Ha.queue.push(a)):ht(a,e,l)}},enter:function(){this.actionFun.apply(this,["enter"].concat(avalon.slice(arguments)))},leave:function(){this.actionFun.apply(this,["leave"].concat(avalon.slice(arguments)))},dispose:function(){this.update=this.cssCallback=null,Sa.unshift(this)>100&&Sa.pop()}};var Da=function(e,t){var n=Wt.call(arguments,0);"function"!=typeof n[2]&&n.splice(2,0,r),"function"!=typeof n[3]&&n.splice(3,0,r);var a=n[2],i=n[3],o=n[4],l=ut(e,o);if(!l)return a(),i(),!1;var s=t?"enter":"leave";l[s](a,i)};avalon.mix(avalon.effect,{apply:Da,append:function(e,t,n,a){return Da(e,1,function(){t.appendChild(e)},n,a)},before:function(e,t,n,a){return Da(e,1,function(){t.parentNode.insertBefore(e,t)},n,a)},remove:function(e,t,n,a){return Da(e,0,function(){e.parentNode===t&&t.removeChild(e)},n,a)}}),avalon.directive("html",{update:function(e){var t=this,n=this.element,a=1!==n.nodeType,r=a?n.parentNode:n;if(r){if(e=null==e?"":e,3===n.nodeType){var i=Jt("html");r.insertBefore(St.createComment(i),n),t.element=St.createComment(i+":end"),r.replaceChild(t.element,n),n=t.element}if("object"!=typeof e)var o=avalon.parseHTML(String(e));else if(11===e.nodeType)o=e;else if(1===e.nodeType||e.item){var l=1===e.nodeType?e.childNodes:e.item;for(o=Xt.cloneNode(!0);l[0];)o.appendChild(l[0])}if(l=avalon.slice(o.childNodes),a){for(var s=n.nodeValue.slice(0,-4);;){var c=n.previousSibling;if(!c||8===c.nodeType&&c.nodeValue===s)break;r.removeChild(c)}r.insertBefore(o,n)}else avalon.clearHTML(n).appendChild(o);et(l,t.vmodels)}}}),avalon.directive("if",{priority:10,update:function(e){function t(){r.getAttribute(a.name)&&(r.removeAttribute(a.name),K(r,a.vmodels)),a.rollback=null}var n,a=this,r=this.element,i=a.stamp=+new Date,o=function(){i===a.stamp&&(a.recoverNode=null)};a.recoverNode&&a.recoverNode();try{if(!r.parentNode)return;n=r.parentNode}catch(l){return}if(e){if(8===r.nodeType){var s=a.keep,c=avalon.effect.apply(s,1,function(){i===a.stamp&&(r.parentNode.replaceChild(s,r),r=a.element=s,s.getAttribute("_required")&&(r.required=!0,r.removeAttribute("_required")),r.querySelectorAll&&avalon.each(r.querySelectorAll("[_required=true]"),function(e){e.required=!0,e.removeAttribute("_required")}),t())},o);c=c===!1}c||t()}else if(1===r.nodeType){r.required===!0&&(r.required=!1,r.setAttribute("_required","true"));try{avalon.each(r.querySelectorAll(":required"),function(e){r.required=!1,e.setAttribute("_required","true")})}catch(l){}var u=a.element=St.createComment("ms-if"),f=r.nextSibling;a.recoverNode=function(){a.recoverNode=null,u.parentNode!==n&&(n.insertBefore(u,f),a.keep=r)},avalon.effect.apply(r,0,function(){a.recoverNode=null,i===a.stamp&&(r.parentNode.replaceChild(u,r),a.keep=r,Dt.appendChild(r),a.rollback=function(){r.parentNode===Dt&&Dt.removeChild(r)})},o)}}});var La=function(){return new e.XMLHttpRequest},Ra=avalon.templateCache={};avalon.directive("include",{init:en.attr.init,update:function(e){var t=this,a=this.element,r=t.vmodels,i=t.includeRendered,o=t.effectName&&t.effectClass,l=t.templateCache,s=t.includeReplace,c=t.includeLoaded,u=s?a.parentNode:a,f=t._element;t.recoverNodes=t.recoverNodes||avalon.noop;var d=function(n){var d=t._stamp=+new Date;if(c){var v=c.apply(u,[n].concat(r));"string"==typeof v&&(n=v)}i&&U(u,function(){i.call(u)},0/0);var p=t.includeLastID||"_default";t.includeLastID=e;var h=l&&l[p]||St.createElement(a.tagName||t._element.tagName);o&&(h.className=o,u.insertBefore(h,t.start)),(l||{})[p]=h;var m=t.recoverNodes();for(m&&u.insertBefore(m,t.end);;){var y=t.start.nextSibling;if(!y||y===h||y===t.end)break;h.appendChild(y)}avalon.effect.remove(h,u,function(){l&&d===t._stamp&&Dt.appendChild(h)},t);var g=u,b=avalon.noop,$=avalon.noop,x=mt(t,e,n),w=avalon.slice(x.childNodes);s&&o?(g=f,g.innerHTML="",g.setAttribute("ms-skip","true"),u.insertBefore(g,t.end.nextSibling),b=function(){g.insertBefore(x,null)},$=function(){t.recoverNodes=avalon.noop,d===t._stamp&&(x=yt(w),u.insertBefore(x,t.end),et(w,r)),g.parentNode===u&&u.removeChild(g)},t.recoverNodes=function(){return t.recoverNodes=avalon.noop,yt(w)}):b=function(){u.insertBefore(x,t.end),et(w,r)},avalon.effect.apply(g,"enter",b,$)};if("src"===t.param)if("string"==typeof Ra[e])avalon.nextTick(function(){d(Ra[e])});else if(Array.isArray(Ra[e]))Ra[e].push(d);else{var v=La();v.onload=function(){for(var t,n=v.responseText,a=0;t=Ra[e][a++];)t(n);Ra[e]=n},v.onerror=function(){n("ms-include load ["+e+"] error")},Ra[e]=[d],v.open("GET",e,!0),"withCredentials"in v&&(v.withCredentials=!0),v.setRequestHeader("X-Requested-With","XMLHttpRequest"),v.send(null)}else{var p=e&&1===e.nodeType?e:St.getElementById(e);p&&avalon.nextTick(function(){d(p.value||p.innerText||p.innerHTML)})}}});var Pa=/\(([^)]*)\)/,Ba=avalon.directive("on",{priority:3e3,init:function(e){var t=e.expr;e.type="on";var n=e.param.replace(/-\d+$/,"");if("function"==typeof Ba[n+"Hook"]&&Ba[n+"Hook"](e),t.indexOf("(")>0&&t.indexOf(")")>-1){var a=(t.match(Pa)||["",""])[1].trim();(""===a||"$event"===a)&&(t=t.replace(Pa,""))}e.expr=t},update:function(e){var t=this,n=this.element;e=function(e){var n=t.getter||r;return n.apply(this,t.args.concat(e))};var a=t.param.replace(/-\d+$/,"");if("scan"===a)e.call(n,{type:a});else if("function"==typeof t.specialBind)t.specialBind(n,e);else var i=avalon.bind(n,a,e);t.rollback=function(){"function"==typeof t.specialUnbind?t.specialUnbind():avalon.unbind(n,a,i)}}});avalon.directive("repeat",{priority:90,init:function(e){var t=e.type;e.cache={},e.enterCount=0;var n=e.element;if(1===n.nodeType){n.removeAttribute(e.name),ft(n,e),e.param=e.param||"el",e.sortedCallback=Kn(n,"data-with-sorted",e.vmodels);var a=Kn(n,"data-"+t+"-rendered",e.vmodels),r=Jt(t),i=St.createComment(r+":start"),o=e.element=St.createComment(r+":end");if(e.signature=r,e.start=i,e.template=Xt.cloneNode(!1),"repeat"===t){var l=n.parentNode;l.replaceChild(o,n),l.insertBefore(i,o),e.template.appendChild(n)}else{for(;n.firstChild;)e.template.appendChild(n.firstChild);n.appendChild(i),n.appendChild(o),l=n}if(e.element=o,a)var s=avalon.bind(l,"datasetchanged",function(){a.apply(l,l.args),avalon.unbind(l,"datasetchanged",s),l.msRendered=a})}},update:function(e,t){var n=this,a=this.xtype;this.enterCount+=1;var r=!t;if(r){n.$outer={};var i="$key",o="$val";"array"===a&&(i="$first",o="$last");for(var l,s=0;l=n.vmodels[s++];)if(l.hasOwnProperty(i)&&l.hasOwnProperty(o)){n.$outer=l;break}}var u=this.track;if(n.sortedCallback){var f=n.sortedCallback.call($,u);f&&Array.isArray(f)&&(u=f)}var d="move";n.$repeat=e;var v=[],p=r&&Xt.cloneNode(!1),h=[],m=this.param,y=avalon.mix({},this.cache),g=this.element,b=u.length,$=g.parentNode;for(s=0;b>s;s++){var x=u[s],w=y[x];if(w)v.push({}),y[x]=!0;else{if(w=wt(this),w.$up=null,"array"===a){d="add",w.$id=x;var k=e[s];w[m]=k,Object(k)===k&&(k.$ups=k.$ups||{},k.$ups[m]=w)}else d="append",w.$key=x,w.$val=e[x];this.cache[x]=w;var N=w.$anchor||(w.$anchor=g.cloneNode(!1));N.nodeValue=this.signature,xt(n,p,w,v,r&&!n.effectDriver),Nt(w,n,a)}1===this.enterCount&&(w.$active=!1,w.$oldIndex=w.$index,w.$active=!0,w.$index=s),"array"===a?(w.$first=0===s,w.$last=s===b-1):w.$val=C(e[x]),h.push(w)}if(this.proxies=h,r&&!n.effectDriver)$.insertBefore(p,g),v.forEach(function(e){et(e.nodes||[],e.vmodels),e.nodes=e.vmodels=null});else{var A=n.staggerIndex=0;for(x in y)y[x]!==!0&&(d="del",$t(y[x].$anchor,n),Et(this.cache,x,m),y[x]=null);for(s=0;b>s;s++){w=h[s],x="array"===a?w.$id:w.$key;var T=h[s-1],E=T?T.$anchor:n.start;y[x]?w.$index!==w.$oldIndex&&!function(e,t){A=bt(n.effectEnterStagger,function(){var a=$t(e.$anchor),r=avalon.slice(a.childNodes);$.insertBefore(a,t.nextSibling),gt(r,1,n)},A)}(w,E):!function(e,t){var a=e.nodes,r=e.vmodels;a&&(A=bt(n.effectEnterStagger,function(){$.insertBefore(e.content,t.nextSibling),et(a,r),gt(a,1,n)},A)),e.nodes=e.vmodels=null}(v[s],E)}}if(!e.$track)for(x in this.cache)Et(this.cache,x,m);!function(e){$.args=e,$.msRendered&&$.msRendered.apply($,e)}(c.newWatch?arguments:[d]);var O=setTimeout(function(){clearTimeout(O),avalon.fireDom($,"datasetchanged",{bubble:$.msHasEvent})});this.enterCount-=1}}),"with,each".replace(Pt,function(e){en[e]=avalon.mix({},en.repeat,{priority:1400})});var Fa=[],qa=[];avalon.directive("text",{update:function(e){var t=this.element;if(e=null==e?"":e,3===t.nodeType)try{t.data=e}catch(n){}else t.textContent=e}}),avalon.parseDisplay=Ot,avalon.directive("visible",{init:function(e){ft(e.element,e)},update:function(e){var t,n=this,a=this.element,r=!this.effectName;return this.stamp?(t=this.stamp=+new Date,void(e?avalon.effect.apply(a,1,function(){if(t===n.stamp){var e=a.getAttribute("data-effect-driver")||"a";r&&(a.style.display=n.display||""),("a"===e||"t"===e)&&"none"===avalon(a).css("display")&&(a.style.display=n.display||Ot(a.nodeName))}}):avalon.effect.apply(a,0,function(){t===n.stamp&&(a.style.display="none")}))):(t=this.stamp=+new Date,void(e?(a.style.display=n.display||"","none"===avalon(a).css("display")&&(a.style.display=n.display=Ot(a.nodeName))):a.style.display="none"))}});var _a=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,Va=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,Ia=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/gi,za={a:/\b(href)\=("javascript[^"]*"|'javascript[^']*')/gi,img:/\b(src)\=("javascript[^"]*"|'javascript[^']*')/gi,form:/\b(action)\=("javascript[^"]*"|'javascript[^']*')/gi},Wa=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ya=/([^\#-~| |!])/g,Ua=avalon.filters={uppercase:function(e){return e.toUpperCase()},lowercase:function(e){return e.toLowerCase()},truncate:function(e,t,n){return t=t||30,n="string"==typeof 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[0]];if("function"==typeof r){var i=[e].concat(a.slice(1));e=r.apply(null,i)}}return e},camelize:L,sanitize:function(e){return e.replace(_a,"").replace(Ia,function(e){var t=e.toLowerCase().match(/<(\w+)\s/);if(t){var n=za[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(Va," ").replace(/\s+/g," ")})},escape:function(e){return String(e).replace(/&/g,"&amp;").replace(Wa,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(Ya,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")},currency:function(e,t,n){return(t||"¥")+Mt(e,isFinite(n)?n:2)},number:Mt};!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+)\)\/$/;Ua.date=function(t,n){var a,r,i=Ua.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(),d=[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 d[0]=e(i[0]),d[1]=e(i[1])-1,d[2]=e(i[2]),""});var p=v.setFullYear,h=v.setHours;f=f.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/,function(t,n,a,r,i){return d[3]=e(n),d[4]=e(a),d[5]=e(r),i&&(d[6]=Math.round(1e3*parseFloat("0."+i))),""});var m=0,y=0;f=f.replace(/Z|([+-])(\d\d):?(\d\d)/,function(t,n,a,r){return p=v.setUTCFullYear,h=v.setUTCHours,n&&(m=e(n+a),y=e(n+r)),""}),d[3]-=m,d[4]-=y,p.apply(v,d.slice(0,3)),h.apply(v,d.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,Ua.date.locate=c};var Xa,Ga=[],Za=function(e){Xa=!0;var t=avalon.require;for(t&&t.checkDeps&&(modules["domReady!"].state=4,t.checkDeps());e=Ga.shift();)e(avalon)};"complete"===St.readyState?setTimeout(Za):St.addEventListener("DOMContentLoaded",Za),e.addEventListener("load",Za),avalon.ready=function(e){Xa?e(avalon):Ga.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(St.body)}),"function"==typeof define&&define.amd&&define("avalon",[],function(){return avalon});var Ja=e.avalon;return avalon.noConflict=function(t){return t&&e.avalon===avalon&&(e.avalon=Ja),avalon},void 0===t&&(e.avalon=avalon),avalon});
@@ -5,7 +5,7 @@
5
5
  http://weibo.com/jslouvre/
6
6
 
7
7
  Released under the MIT license
8
- avalon.shim.js 1.5.5 built in 2015.10.30
8
+ avalon.shim.js 1.5.6 built in 2015.12.1
9
9
  support IE6+ and other browsers
10
10
  ==================================================*/
11
11
  (function(global, factory) {
@@ -31,8 +31,9 @@
31
31
  }(typeof window !== "undefined" ? window : this, function(window, noGlobal){
32
32
 
33
33
  /*********************************************************************
34
- * 全局变量及方法 *
34
+ * 全局变量及方法 *
35
35
  **********************************************************************/
36
+
36
37
  var expose = new Date() - 0
37
38
  //http://stackoverflow.com/questions/7290086/javascript-use-strict-and-nicks-find-global-function
38
39
  var DOC = window.document
@@ -43,20 +44,17 @@ ifGroup.setAttribute("ms-skip", "1")
43
44
  ifGroup.className = "avalonHide"
44
45
  var rnative = /\[native code\]/ //判定是否原生函数
45
46
  function log() {
46
- if (window.console && avalon.config.debug) {
47
+ if (window.console && kernel.debug) {
47
48
  // http://stackoverflow.com/questions/8785624/how-to-safely-wrap-console-log
48
49
  Function.apply.call(console.log, console, arguments)
49
50
  }
50
51
  }
51
52
 
52
-
53
53
  var subscribers = "$" + expose
54
54
 
55
- var stopRepeatAssign = false
56
55
  var nullObject = {} //作用类似于noop,只用于代码防御,千万不要在它上面添加属性
57
56
  var rword = /[^, ]+/g //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach
58
57
  var rw20g = /\w+/g
59
- var rcomplexType = /^(?:object|array)$/
60
58
  var rsvg = /^\[object SVG\w*Element\]$/
61
59
  var rwindow = /^\[object (?:Window|DOMWindow|global)\]$/
62
60
  var oproto = Object.prototype
@@ -72,10 +70,16 @@ var class2type = {}
72
70
  "Boolean Number String Function Array Date RegExp Object Error".replace(rword, function (name) {
73
71
  class2type["[object " + name + "]"] = name.toLowerCase()
74
72
  })
75
- function scpCompile(array){
76
- return Function.apply(noop,array)
73
+
74
+ var IEVersion = NaN
75
+ if (window.VBArray) {
76
+ IEVersion = document.documentMode || (window.XMLHttpRequest ? 7 : 6)
77
77
  }
78
+
78
79
  function noop(){}
80
+ function scpCompile(array){
81
+ return Function.apply(noop, array)
82
+ }
79
83
 
80
84
  function oneObject(array, val) {
81
85
  if (typeof array === "string") {
@@ -94,21 +98,11 @@ var generateID = function (prefix) {
94
98
  prefix = prefix || "avalon"
95
99
  return String(Math.random() + Math.random()).replace(/\d\.\d{4}/, prefix)
96
100
  }
97
- function IE() {
98
- if (window.VBArray) {
99
- var mode = document.documentMode
100
- return mode ? mode : window.XMLHttpRequest ? 7 : 6
101
- } else {
102
- return NaN
103
- }
104
- }
105
- var IEVersion = IE()
106
101
 
107
102
  avalon = function (el) { //创建jQuery式的无new 实例化结构
108
103
  return new avalon.init(el)
109
104
  }
110
105
 
111
-
112
106
  /*视浏览器情况采用最快的异步回调*/
113
107
  avalon.nextTick = new function () {// jshint ignore:line
114
108
  var tickImmediate = window.setImmediate
@@ -142,9 +136,11 @@ avalon.nextTick = new function () {// jshint ignore:line
142
136
  setTimeout(fn, 4)
143
137
  }
144
138
  }// jshint ignore:line
139
+
145
140
  /*********************************************************************
146
141
  * avalon的静态方法定义区 *
147
142
  **********************************************************************/
143
+
148
144
  avalon.init = function (el) {
149
145
  this[0] = this.element = el
150
146
  }
@@ -160,7 +156,7 @@ avalon.type = function (obj) { //取得目标的类型
160
156
  typeof obj
161
157
  }
162
158
 
163
- var isFunction = typeof alert === "object" ? function (fn) {
159
+ avalon.isFunction = typeof alert === "object" ? function (fn) {
164
160
  try {
165
161
  return /^\s*\bfunction\b/.test(fn + "")
166
162
  } catch (e) {
@@ -169,7 +165,6 @@ var isFunction = typeof alert === "object" ? function (fn) {
169
165
  } : function (fn) {
170
166
  return serialize.call(fn) === "[object Function]"
171
167
  }
172
- avalon.isFunction = isFunction
173
168
 
174
169
  avalon.isWindow = function (obj) {
175
170
  if (!obj)
@@ -185,11 +180,13 @@ function isWindow(obj) {
185
180
  if (isWindow(window)) {
186
181
  avalon.isWindow = isWindow
187
182
  }
188
- var enu
183
+
184
+ var enu, enumerateBUG
189
185
  for (enu in avalon({})) {
190
186
  break
191
187
  }
192
- var enumerateBUG = enu !== "0" //IE6下为true, 其他为false
188
+ enumerateBUG = enu !== "0" //IE6下为true, 其他为false
189
+
193
190
  /*判定是否是一个朴素的javascript对象(Object),不是DOM对象,不是BOM对象,不是自定义类的实例*/
194
191
  avalon.isPlainObject = function (obj, key) {
195
192
  if (!obj || avalon.type(obj) !== "object" || obj.nodeType || avalon.isWindow(obj)) {
@@ -217,6 +214,7 @@ if (rnative.test(Object.getPrototypeOf)) {
217
214
  return serialize.call(obj) === "[object Object]" && Object.getPrototypeOf(obj) === oproto
218
215
  }
219
216
  }
217
+
220
218
  //与jQuery.extend方法,可用于浅拷贝,深拷贝
221
219
  avalon.mix = avalon.fn.mix = function () {
222
220
  var options, name, src, copy, copyIsArray, clone,
@@ -233,7 +231,7 @@ avalon.mix = avalon.fn.mix = function () {
233
231
  }
234
232
 
235
233
  //确保接受方为一个复杂的数据类型
236
- if (typeof target !== "object" && !isFunction(target)) {
234
+ if (typeof target !== "object" && !avalon.isFunction(target)) {
237
235
  target = {}
238
236
  }
239
237
 
@@ -285,7 +283,7 @@ function _number(a, len) { //用于模拟slice, splice的效果
285
283
  avalon.mix({
286
284
  rword: rword,
287
285
  subscribers: subscribers,
288
- version: 1.55,
286
+ version: 1.56,
289
287
  ui: {},
290
288
  log: log,
291
289
  slice: W3C ? function (nodes, start, end) {
@@ -484,7 +482,6 @@ function isArrayLike(obj) {
484
482
  return false
485
483
  }
486
484
 
487
-
488
485
  // https://github.com/rsms/js-lru
489
486
  var Cache = new function() {// jshint ignore:line
490
487
  function LRU(maxLength) {
@@ -560,8 +557,9 @@ var Cache = new function() {// jshint ignore:line
560
557
  }// jshint ignore:line
561
558
 
562
559
  /*********************************************************************
563
- * javascript 底层补丁 *
560
+ * javascript 底层补丁 *
564
561
  **********************************************************************/
562
+
565
563
  if (!"司徒正美".trim) {
566
564
  var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g
567
565
  String.prototype.trim = function () {
@@ -678,6 +676,7 @@ if (!rnative.test([].map)) {
678
676
  every: iterator("", 'if(!_)return false', 'return true')
679
677
  })
680
678
  }
679
+
681
680
  /*********************************************************************
682
681
  * DOM 底层补丁 *
683
682
  **********************************************************************/
@@ -879,8 +878,6 @@ if (DOC.onmousewheel === void 0) {
879
878
  }
880
879
  }
881
880
 
882
-
883
-
884
881
  /*********************************************************************
885
882
  * 配置系统 *
886
883
  **********************************************************************/
@@ -900,6 +897,8 @@ function kernel(settings) {
900
897
  }
901
898
  return this
902
899
  }
900
+ avalon.config = kernel
901
+
903
902
  var openTag, closeTag, rexpr, rexprg, rbind, rregexp = /[-.*+?^${}()|[\]\/\\]/g
904
903
 
905
904
  function escapeRegExp(target) {
@@ -930,18 +929,20 @@ var plugins = {
930
929
  rbind = new RegExp(o + ".*?" + c + "|\\sms-")
931
930
  }
932
931
  }
933
- kernel.async =true
934
- kernel.debug = true
935
932
  kernel.plugins = plugins
936
933
  kernel.plugins['interpolate'](["{{", "}}"])
934
+
935
+ kernel.async =true
936
+ kernel.debug = true
937
937
  kernel.paths = {}
938
938
  kernel.shim = {}
939
939
  kernel.maxRepeatSize = 100
940
- avalon.config = kernel
940
+
941
941
  function $watch(expr, binding) {
942
942
  var $events = this.$events || (this.$events = {})
943
943
 
944
944
  var queue = $events[expr] || ($events[expr] = [])
945
+
945
946
  if (typeof binding === "function") {
946
947
  var backup = binding
947
948
  backup.uniqueNumber = Math.random()
@@ -957,7 +958,7 @@ function $watch(expr, binding) {
957
958
  }
958
959
 
959
960
  if (!binding.update) {
960
- if (/\w\.*\B/.test(expr)) {
961
+ if (/\w\.*\B/.test(expr) || expr === "*") {
961
962
  binding.getter = noop
962
963
  var host = this
963
964
  binding.update = function () {
@@ -990,6 +991,14 @@ function $emit(key, args) {
990
991
  }
991
992
  var arr = event[key]
992
993
  notifySubscribers(arr, args)
994
+ if (args && event["*"] && !/\./.test(key)) {
995
+ for (var sub, k = 0; sub = event["*"][k++]; ) {
996
+ try {
997
+ sub.handler.apply(this, args)
998
+ } catch (e) {
999
+ }
1000
+ }
1001
+ }
993
1002
  var parent = this.$up
994
1003
  if (parent) {
995
1004
  if (this.$pathname) {
@@ -1000,10 +1009,10 @@ function $emit(key, args) {
1000
1009
  }
1001
1010
  } else {
1002
1011
  parent = this.$up
1003
-
1004
- if(this.$ups ){
1005
- for(var i in this.$ups){
1006
- $emit.call(this.$ups[i], i+"."+key, args)//以确切的值往上冒泡
1012
+
1013
+ if (this.$ups) {
1014
+ for (var i in this.$ups) {
1015
+ $emit.call(this.$ups[i], i + "." + key, args)//以确切的值往上冒泡
1007
1016
  }
1008
1017
  return
1009
1018
  }
@@ -1024,7 +1033,6 @@ function $emit(key, args) {
1024
1033
  }
1025
1034
  }
1026
1035
 
1027
-
1028
1036
  function collectDependency(el, key) {
1029
1037
  do {
1030
1038
  if (el.$watch) {
@@ -1043,7 +1051,6 @@ function collectDependency(el, key) {
1043
1051
  } while (true)
1044
1052
  }
1045
1053
 
1046
-
1047
1054
  function notifySubscribers(subs, args) {
1048
1055
  if (!subs)
1049
1056
  return
@@ -1084,6 +1091,7 @@ function notifySubscribers(subs, args) {
1084
1091
  sub.update()
1085
1092
  }
1086
1093
  }
1094
+
1087
1095
  //avalon最核心的方法的两个方法之一(另一个是avalon.scan),返回一个ViewModel(VM)
1088
1096
  var VMODELS = avalon.vmodels = {} //所有vmodel都储存在这里
1089
1097
  avalon.define = function (source) {
@@ -1172,7 +1180,6 @@ function observeObject(source, options) {
1172
1180
  }
1173
1181
  }
1174
1182
 
1175
-
1176
1183
  for (name in source) {
1177
1184
  var value = source[name]
1178
1185
  if (!$$skipArray[name])
@@ -1212,7 +1219,6 @@ function observeObject(source, options) {
1212
1219
  }
1213
1220
  }
1214
1221
 
1215
-
1216
1222
  accessors["$model"] = $modelDescriptor
1217
1223
  $vmodel = defineProperties($vmodel, accessors, source)
1218
1224
  function trackBy(name) {
@@ -1264,6 +1270,7 @@ function observeObject(source, options) {
1264
1270
  $vmodel.$active = true
1265
1271
  return $vmodel
1266
1272
  }
1273
+
1267
1274
  /*
1268
1275
  新的VM拥有如下私有属性
1269
1276
  $id: vm.id
@@ -1350,6 +1357,7 @@ function observe(obj, old, hasReturn, watch) {
1350
1357
  return obj
1351
1358
  }
1352
1359
  }
1360
+
1353
1361
  var getKeys = rnative.test(Object.key) ? Object.key : function (a) {
1354
1362
  var ret = []
1355
1363
  for (var i in a) {
@@ -1359,8 +1367,9 @@ var getKeys = rnative.test(Object.key) ? Object.key : function (a) {
1359
1367
  }
1360
1368
  return ret
1361
1369
  }
1370
+
1362
1371
  function observeArray(array, old, watch) {
1363
- if (old) {
1372
+ if (old && old.splice) {
1364
1373
  var args = [0, old.length].concat(array)
1365
1374
  old.splice.apply(old, args)
1366
1375
  return old
@@ -1448,7 +1457,6 @@ var $modelDescriptor = {
1448
1457
  configurable: true
1449
1458
  }
1450
1459
 
1451
-
1452
1460
  //===================修复浏览器对Object.defineProperties的支持=================
1453
1461
  if (!canHideOwn) {
1454
1462
  if ("__defineGetter__" in avalon) {
@@ -1631,6 +1639,7 @@ var newProto = {
1631
1639
  return this.removeAll()
1632
1640
  }
1633
1641
  }
1642
+
1634
1643
  var _splice = arrayProto.splice
1635
1644
  arrayMethods.forEach(function (method) {
1636
1645
  var original = arrayProto[method]
@@ -1723,9 +1732,11 @@ function addTrack(track, method, args) {
1723
1732
  }
1724
1733
  Array.prototype[method].apply(track, args)
1725
1734
  }
1735
+
1726
1736
  /*********************************************************************
1727
- * 依赖调度系统 *
1737
+ * 依赖调度系统 *
1728
1738
  **********************************************************************/
1739
+
1729
1740
  //检测两个对象间的依赖关系
1730
1741
  var dependencyDetection = (function () {
1731
1742
  var outerFrames = []
@@ -1747,6 +1758,7 @@ var dependencyDetection = (function () {
1747
1758
  }
1748
1759
  };
1749
1760
  })()
1761
+
1750
1762
  //将绑定对象注入到其依赖项的订阅数组中
1751
1763
  var roneval = /^on$/
1752
1764
 
@@ -1779,7 +1791,11 @@ avalon.injectBinding = function (binding) {
1779
1791
  if (binding.type === "on") {
1780
1792
  a = binding.getter + ""
1781
1793
  } else {
1782
- a = binding.getter.apply(0, binding.args)
1794
+ try {
1795
+ a = binding.getter.apply(0, binding.args)
1796
+ } catch (ex) {
1797
+ a = null
1798
+ }
1783
1799
  }
1784
1800
  } else {
1785
1801
  a = args[0]
@@ -1826,7 +1842,6 @@ avalon.injectBinding = function (binding) {
1826
1842
  binding.update()
1827
1843
  }
1828
1844
 
1829
-
1830
1845
  //将依赖项(比它高层的访问器或构建视图刷新函数的绑定对象)注入到订阅者数组
1831
1846
  function injectDependency(list, binding) {
1832
1847
  if (binding.oneTime)
@@ -1839,7 +1854,6 @@ function injectDependency(list, binding) {
1839
1854
  }
1840
1855
  }
1841
1856
 
1842
-
1843
1857
  function getProxyIds(a, isArray) {
1844
1858
  var ret = []
1845
1859
  for (var i = 0, el; el = a[i++]; ) {
@@ -1851,6 +1865,7 @@ function getProxyIds(a, isArray) {
1851
1865
  /*********************************************************************
1852
1866
  * 定时GC回收机制 *
1853
1867
  **********************************************************************/
1868
+
1854
1869
  var disposeCount = 0
1855
1870
  var disposeQueue = avalon.$$subscribers = []
1856
1871
  var beginTime = new Date()
@@ -1957,11 +1972,10 @@ function shouldDispose(el) {
1957
1972
  return el.msRetain ? 0 : (el.nodeType === 1 ? !root.contains(el) : !avalon.contains(root, el))
1958
1973
  }
1959
1974
 
1960
-
1961
-
1962
1975
  /************************************************************************
1963
- * HTML处理(parseHTML, innerHTML, clearHTML) *
1964
- ************************************************************************/
1976
+ * HTML处理(parseHTML, innerHTML, clearHTML) *
1977
+ *************************************************************************/
1978
+
1965
1979
  // We have to close these tags to support XHTML
1966
1980
  var tagHooks = {
1967
1981
  area: [1, "<map>", "</map>"],
@@ -1982,6 +1996,7 @@ tagHooks.tbody = tagHooks.tfoot = tagHooks.colgroup = tagHooks.caption = tagHook
1982
1996
  String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(rword, function (tag) {
1983
1997
  tagHooks[tag] = tagHooks.g //处理SVG
1984
1998
  })
1999
+
1985
2000
  var rtagName = /<([\w:]+)/ //取得其tagName
1986
2001
  var rxhtml = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig
1987
2002
  var rcreate = W3C ? /[^\d\D]/ : /(<(?:script|link|style|meta|noscript))/ig
@@ -1989,6 +2004,7 @@ var scriptTypes = oneObject(["", "text/javascript", "text/ecmascript", "applicat
1989
2004
  var rnest = /<(?:tb|td|tf|th|tr|col|opt|leg|cap|area)/ //需要处理套嵌关系的标签
1990
2005
  var script = DOC.createElement("script")
1991
2006
  var rhtml = /<|&#?\w+;/
2007
+
1992
2008
  avalon.parseHTML = function (html) {
1993
2009
  var fragment = avalonFragment.cloneNode(false)
1994
2010
  if (typeof html !== "string") {
@@ -2071,6 +2087,7 @@ function fixVML(node) {
2071
2087
  node.style.zoom = 1 //hasLayout
2072
2088
  }
2073
2089
  }
2090
+
2074
2091
  avalon.innerHTML = function (node, html) {
2075
2092
  if (!W3C && (!rcreate.test(html) && !rnest.test(html))) {
2076
2093
  try {
@@ -2081,6 +2098,7 @@ avalon.innerHTML = function (node, html) {
2081
2098
  var a = this.parseHTML(html)
2082
2099
  this.clearHTML(node).appendChild(a)
2083
2100
  }
2101
+
2084
2102
  avalon.clearHTML = function (node) {
2085
2103
  node.textContent = ""
2086
2104
  while (node.firstChild) {
@@ -2090,7 +2108,7 @@ avalon.clearHTML = function (node) {
2090
2108
  }
2091
2109
 
2092
2110
  /*********************************************************************
2093
- * avalon的原型方法定义区 *
2111
+ * avalon的原型方法定义区 *
2094
2112
  **********************************************************************/
2095
2113
 
2096
2114
  function hyphen(target) {
@@ -2321,6 +2339,20 @@ avalon.parseJSON = window.JSON ? JSON.parse : function (data) {
2321
2339
  return data
2322
2340
  }
2323
2341
 
2342
+ avalon.fireDom = function (elem, type, opts) {
2343
+ if (DOC.createEvent) {
2344
+ var hackEvent = DOC.createEvent("Events");
2345
+ hackEvent.initEvent(type, true, true, opts)
2346
+ avalon.mix(hackEvent, opts)
2347
+
2348
+ elem.dispatchEvent(hackEvent)
2349
+ } else if (root.contains(elem)) {//IE6-8触发事件必须保证在DOM树中,否则报"SCRIPT16389: 未指明的错误"
2350
+ hackEvent = DOC.createEventObject()
2351
+ avalon.mix(hackEvent, opts)
2352
+ elem.fireEvent("on" + type, hackEvent)
2353
+ }
2354
+ }
2355
+
2324
2356
  //生成avalon.fn.scrollLeft, avalon.fn.scrollTop方法
2325
2357
  avalon.each({
2326
2358
  scrollLeft: "pageXOffset",
@@ -2652,13 +2684,13 @@ var keys = ["break,case,catch,continue,debugger,default,delete,do,else,false",
2652
2684
  keys.replace(/\w+/g, function (a) {
2653
2685
  keyMap[a] = true
2654
2686
  })
2687
+
2655
2688
  var ridentStart = /[a-z_$]/i
2656
2689
  var rwhiteSpace = /[\s\uFEFF\xA0]/
2657
2690
  function getIdent(input, lastIndex) {
2658
2691
  var result = []
2659
2692
  var subroutine = !!lastIndex
2660
2693
  lastIndex = lastIndex || 0
2661
-
2662
2694
  //将表达式中的标识符抽取出来
2663
2695
  var state = "unknown"
2664
2696
  var variable = ""
@@ -2742,12 +2774,14 @@ function getIdent(input, lastIndex) {
2742
2774
  addVar(result, variable)
2743
2775
  return result
2744
2776
  }
2777
+
2745
2778
  function addVar(array, element) {
2746
2779
  if (element && !keyMap[element]) {
2747
2780
  array.push(element)
2748
2781
  return true
2749
2782
  }
2750
2783
  }
2784
+
2751
2785
  function addAssign(vars, vmodel, name, binding) {
2752
2786
  var ret = [],
2753
2787
  prefix = " = " + name + "."
@@ -2769,6 +2803,7 @@ function addAssign(vars, vmodel, name, binding) {
2769
2803
  }
2770
2804
  return ret
2771
2805
  }
2806
+
2772
2807
  var rproxy = /(\$proxy\$[a-z]+)\d+$/
2773
2808
  var variablePool = new Cache(218)
2774
2809
  //缓存求值函数,以便多次利用
@@ -2871,7 +2906,6 @@ function parseExpr(expr, vmodels, binding) {
2871
2906
  return evaluatorPool.put(exprId, getter)
2872
2907
 
2873
2908
  }
2874
- //========
2875
2909
 
2876
2910
  function normalizeExpr(code) {
2877
2911
  var hasExpr = rexpr.test(code) //比如ms-class="width{{w}}"的情况
@@ -2916,9 +2950,11 @@ function parseFilter(filters) {
2916
2950
  /* jshint ignore:end */
2917
2951
 
2918
2952
  }
2953
+
2919
2954
  /*********************************************************************
2920
2955
  * 编译系统 *
2921
2956
  **********************************************************************/
2957
+
2922
2958
  var meta = {
2923
2959
  '\b': '\\b',
2924
2960
  '\t': '\\t',
@@ -2960,7 +2996,6 @@ function checkScan(elem, callback, innerHTML) {
2960
2996
  })
2961
2997
  }
2962
2998
 
2963
-
2964
2999
  function createSignalTower(elem, vmodel) {
2965
3000
  var id = elem.getAttribute("avalonctrl") || vmodel.$id
2966
3001
  elem.setAttribute("avalonctrl", id)
@@ -3021,6 +3056,26 @@ function bindingSorter(a, b) {
3021
3056
  return a.priority - b.priority
3022
3057
  }
3023
3058
 
3059
+ var rnoCollect = /^(ms-\S+|data-\S+|on[a-z]+|id|style|class)$/
3060
+ var ronattr = /^on\-[\w-]+$/
3061
+ function getOptionsFromTag(elem, vmodels) {
3062
+ var attributes = elem.attributes
3063
+ var ret = {}
3064
+ for (var i = 0, attr; attr = attributes[i++]; ) {
3065
+ var name = attr.name
3066
+ if (attr.specified && !rnoCollect.test(name)) {
3067
+ var camelizeName = camelize(attr.name)
3068
+ if (/^on\-[\w-]+$/.test(name)) {
3069
+ ret[camelizeName] = getBindingCallback(elem, name, vmodels)
3070
+ } else {
3071
+ ret[camelizeName] = parseData(attr.value)
3072
+ }
3073
+ }
3074
+
3075
+ }
3076
+ return ret
3077
+ }
3078
+
3024
3079
  function scanAttr(elem, vmodels, match) {
3025
3080
  var scanNode = true
3026
3081
  if (vmodels.length) {
@@ -3159,28 +3214,21 @@ if (!W3C) {
3159
3214
  }
3160
3215
  }
3161
3216
 
3162
- var rnoCollect = /^(ms-\S+|data-\S+|on[a-z]+|id|style|class|tabindex)$/
3163
- function getOptionsFromTag(elem) {
3164
- var attributes = getAttributes ? getAttributes(elem) : elem.attributes
3165
- var ret = {}
3166
- for (var i = 0, attr; attr = attributes[i++]; ) {
3167
- if (attr.specified && !rnoCollect.test(attr.name)) {
3168
- ret[camelize(attr.name)] = parseData(attr.value)
3169
- }
3170
- }
3171
- return ret
3172
- }
3173
3217
  function scanNodeList(parent, vmodels) {
3174
3218
  var nodes = avalon.slice(parent.childNodes)
3175
3219
  scanNodeArray(nodes, vmodels)
3176
3220
  }
3177
3221
 
3178
-
3179
3222
  function scanNodeArray(nodes, vmodels) {
3223
+ function _delay_component(name) {
3224
+ setTimeout(function () {
3225
+ avalon.component(name)
3226
+ })
3227
+ }
3180
3228
  for (var i = 0, node; node = nodes[i++]; ) {
3181
3229
  switch (node.nodeType) {
3182
3230
  case 1:
3183
- var elem = node, fn
3231
+ var elem = node
3184
3232
  if (!elem.msResolved && elem.parentNode && elem.parentNode.nodeType === 1) {
3185
3233
  var library = isWidget(elem)
3186
3234
  if (library) {
@@ -3195,11 +3243,14 @@ function scanNodeArray(nodes, vmodels) {
3195
3243
  name: "widget"
3196
3244
  })
3197
3245
  if (avalon.components[fullName]) {
3198
- avalon.component(fullName)
3246
+ //确保所有ms-attr-name扫描完再处理
3247
+ _delay_component(fullName)
3199
3248
  }
3200
3249
  }
3201
3250
  }
3202
- scanTag(node, vmodels) //扫描元素节点
3251
+
3252
+ scanTag(node, vmodels) //扫描元素节点
3253
+
3203
3254
  if (node.msHasEvent) {
3204
3255
  avalon.fireDom(node, "datasetchanged", {
3205
3256
  bubble: node.msHasEvent
@@ -3217,7 +3268,6 @@ function scanNodeArray(nodes, vmodels) {
3217
3268
  }
3218
3269
  }
3219
3270
 
3220
-
3221
3271
  function scanTag(elem, vmodels, node) {
3222
3272
  //扫描顺序 ms-skip(0) --> ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100)
3223
3273
  //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后
@@ -3242,12 +3292,15 @@ function scanTag(elem, vmodels, node) {
3242
3292
  avalon(elem).removeClass(name)
3243
3293
  createSignalTower(elem, newVmodel)
3244
3294
  }
3245
-
3295
+
3246
3296
  scanAttr(elem, vmodels) //扫描特性节点
3297
+ if (newVmodel) {
3298
+ setTimeout(function () {
3299
+ newVmodel.$fire("ms-scan-end", elem)
3300
+ })
3301
+ }
3247
3302
  }
3248
3303
 
3249
-
3250
-
3251
3304
  var rhasHtml = /\|\s*html(?:\b|$)/,
3252
3305
  r11a = /\|\|/g,
3253
3306
  rlt = /&lt;/g,
@@ -3337,8 +3390,6 @@ function scanText(textNode, vmodels, index) {
3337
3390
  }
3338
3391
  }
3339
3392
 
3340
-
3341
-
3342
3393
  //使用来自游戏界的双缓冲技术,减少对视图的冗余刷新
3343
3394
  var Buffer = function () {
3344
3395
  this.queue = []
@@ -3363,6 +3414,7 @@ Buffer.prototype = {
3363
3414
  }
3364
3415
 
3365
3416
  var buffer = new Buffer()
3417
+
3366
3418
  var componentQueue = []
3367
3419
  var widgetList = []
3368
3420
  var componentHooks = {
@@ -3381,7 +3433,6 @@ var componentHooks = {
3381
3433
  }
3382
3434
  }
3383
3435
 
3384
-
3385
3436
  avalon.components = {}
3386
3437
  avalon.component = function (name, opts) {
3387
3438
  if (opts) {
@@ -3393,15 +3444,24 @@ avalon.component = function (name, opts) {
3393
3444
  i--;
3394
3445
 
3395
3446
  (function (host, hooks, elem, widget) {
3396
-
3447
+ //如果elem已从Document里移除,直接返回
3448
+ //issuse : https://github.com/RubyLouvre/avalon2/issues/40
3449
+ if (!avalon.contains(DOC, elem) || elem.msResolved) {
3450
+ avalon.Array.remove(componentQueue, host)
3451
+ return
3452
+ }
3453
+
3397
3454
  var dependencies = 1
3398
3455
  var library = host.library
3399
3456
  var global = avalon.libraries[library] || componentHooks
3400
3457
 
3401
3458
  //===========收集各种配置=======
3402
-
3403
- var elemOpts = getOptionsFromTag(elem)
3404
- var vmOpts = getOptionsFromVM(host.vmodels, elemOpts.config || host.widget)
3459
+ if (elem.getAttribute("ms-attr-identifier")) {
3460
+ //如果还没有解析完,就延迟一下 #1155
3461
+ return
3462
+ }
3463
+ var elemOpts = getOptionsFromTag(elem, host.vmodels)
3464
+ var vmOpts = getOptionsFromVM(host.vmodels, elemOpts.config || host.fullName)
3405
3465
  var $id = elemOpts.$id || elemOpts.identifier || generateID(widget)
3406
3466
  delete elemOpts.config
3407
3467
  delete elemOpts.$id
@@ -3431,7 +3491,7 @@ avalon.component = function (name, opts) {
3431
3491
  delete componentDefinition.$construct
3432
3492
 
3433
3493
  var vmodel = avalon.define(componentDefinition) || {}
3434
- elem.msResolved = 1
3494
+ elem.msResolved = 1 //防止二进扫描此元素
3435
3495
  vmodel.$init(vmodel, elem)
3436
3496
  global.$init(vmodel, elem)
3437
3497
  var nodes = elem.childNodes
@@ -3448,7 +3508,6 @@ avalon.component = function (name, opts) {
3448
3508
  }
3449
3509
  }
3450
3510
 
3451
-
3452
3511
  if (vmodel.$$template) {
3453
3512
  avalon.clearHTML(elem)
3454
3513
  elem.innerHTML = vmodel.$$template(keepTemplate)
@@ -3467,12 +3526,17 @@ avalon.component = function (name, opts) {
3467
3526
  }
3468
3527
  }
3469
3528
  slots = null
3470
- var child = elem.firstChild
3529
+ var child = elem.children[0] || elem.firstChild
3471
3530
  if (keepReplace) {
3472
- child = elem.firstChild
3473
3531
  elem.parentNode.replaceChild(child, elem)
3474
3532
  child.msResolved = 1
3533
+ var cssText = elem.style.cssText
3534
+ var className = elem.className
3475
3535
  elem = host.element = child
3536
+ elem.style.cssText += ";"+ cssText
3537
+ if (className) {
3538
+ avalon(elem).addClass(className)
3539
+ }
3476
3540
  }
3477
3541
  if (keepContainer) {
3478
3542
  keepContainer.appendChild(elem)
@@ -3495,7 +3559,7 @@ avalon.component = function (name, opts) {
3495
3559
  if (dependencies === 0) {
3496
3560
  var id1 = setTimeout(function () {
3497
3561
  clearTimeout(id1)
3498
-
3562
+
3499
3563
  vmodel.$ready(vmodel, elem, host.vmodels)
3500
3564
  global.$ready(vmodel, elem, host.vmodels)
3501
3565
  }, children ? Math.max(children * 17, 100) : 17)
@@ -3519,7 +3583,6 @@ avalon.component = function (name, opts) {
3519
3583
  }
3520
3584
  })
3521
3585
  scanTag(elem, [vmodel].concat(host.vmodels))
3522
-
3523
3586
  avalon.vmodels[vmodel.$id] = vmodel
3524
3587
  if (!elem.childNodes.length) {
3525
3588
  avalon.fireDom(elem, "datasetchanged", {library: library, vm: vmodel, childReady: -1})
@@ -3530,28 +3593,12 @@ avalon.component = function (name, opts) {
3530
3593
  }, 17)
3531
3594
  }
3532
3595
 
3533
-
3534
3596
  })(obj, avalon.components[name], obj.element, obj.widget)// jshint ignore:line
3535
3597
 
3536
-
3537
3598
  }
3538
3599
  }
3539
3600
  }
3540
3601
 
3541
- avalon.fireDom = function (elem, type, opts) {
3542
- if (DOC.createEvent) {
3543
- var hackEvent = DOC.createEvent("Events");
3544
- hackEvent.initEvent(type, true, true, opts)
3545
- avalon.mix(hackEvent, opts)
3546
-
3547
- elem.dispatchEvent(hackEvent)
3548
- } else if (root.contains(elem)) {//IE6-8触发事件必须保证在DOM树中,否则报"SCRIPT16389: 未指明的错误"
3549
- hackEvent = DOC.createEventObject()
3550
- avalon.mix(hackEvent, opts)
3551
- elem.fireEvent("on" + type, hackEvent)
3552
- }
3553
- }
3554
-
3555
3602
 
3556
3603
  function getOptionsFromVM(vmodels, pre) {
3557
3604
  if (pre) {
@@ -3566,8 +3613,6 @@ function getOptionsFromVM(vmodels, pre) {
3566
3613
  return {}
3567
3614
  }
3568
3615
 
3569
-
3570
-
3571
3616
  avalon.libraries = []
3572
3617
  avalon.library = function (name, opts) {
3573
3618
  if (DOC.namespaces) {
@@ -3581,19 +3626,20 @@ avalon.library = function (name, opts) {
3581
3626
  }
3582
3627
 
3583
3628
  avalon.library("ms")
3584
- /*
3585
- broswer nodeName scopeName localName
3586
- IE9 ONI:BUTTON oni button
3587
- IE10 ONI:BUTTON undefined oni:button
3588
- IE8 button oni undefined
3589
- chrome ONI:BUTTON undefined oni:button
3590
3629
 
3591
- */
3630
+ /*
3631
+ broswer nodeName scopeName localName
3632
+ IE9 ONI:BUTTON oni button
3633
+ IE10 ONI:BUTTON undefined oni:button
3634
+ IE8 button oni undefined
3635
+ chrome ONI:BUTTON undefined oni:button
3636
+
3637
+ */
3592
3638
  function isWidget(el) { //如果为自定义标签,返回UI库的名字
3593
- if(el.scopeName && el.scopeName !== "HTML" ){
3639
+ if (el.scopeName && el.scopeName !== "HTML") {
3594
3640
  return el.scopeName
3595
3641
  }
3596
- var fullName = el.nodeName.toLowerCase()
3642
+ var fullName = el.nodeName.toLowerCase()
3597
3643
  var index = fullName.indexOf(":")
3598
3644
  if (index > 0) {
3599
3645
  return fullName.slice(0, index)
@@ -3602,7 +3648,6 @@ function isWidget(el) { //如果为自定义标签,返回UI库的名字
3602
3648
  //各种MVVM框架在大型表格下的性能测试
3603
3649
  // https://github.com/RubyLouvre/avalon/issues/859
3604
3650
 
3605
-
3606
3651
  var bools = ["autofocus,autoplay,async,allowTransparency,checked,controls",
3607
3652
  "declare,disabled,defer,defaultChecked,defaultSelected",
3608
3653
  "contentEditable,isMap,loop,multiple,noHref,noResize,noShade",
@@ -3702,8 +3747,6 @@ var attrDir = avalon.directive("attr", {
3702
3747
  }
3703
3748
  })
3704
3749
 
3705
-
3706
-
3707
3750
  //这几个指令都可以使用插值表达式,如ms-src="aaa/{{b}}/{{c}}.html"
3708
3751
  "title,alt,src,value,css,include,href".replace(rword, function (name) {
3709
3752
  directives[name] = attrDir
@@ -3777,7 +3820,6 @@ avalon.directive("class", {
3777
3820
  directives[name] = directives["class"]
3778
3821
  })
3779
3822
 
3780
-
3781
3823
  //ms-controller绑定已经在scanTag 方法中实现
3782
3824
  avalon.directive("css", {
3783
3825
  init: directives.attr.init,
@@ -3848,7 +3890,7 @@ var duplexBinding = avalon.directive("duplex", {
3848
3890
  "input"
3849
3891
  }
3850
3892
  //===================绑定事件======================
3851
- binding.bound = function (type, callback) {
3893
+ var bound = binding.bound = function (type, callback) {
3852
3894
  if (elem.addEventListener) {
3853
3895
  elem.addEventListener(type, callback, false)
3854
3896
  } else {
@@ -3861,22 +3903,24 @@ var duplexBinding = avalon.directive("duplex", {
3861
3903
  old && old()
3862
3904
  }
3863
3905
  }
3864
- var composing = false
3865
3906
  function callback(value) {
3866
3907
  binding.changed.call(this, value, binding)
3867
3908
  }
3909
+ var composing = false
3868
3910
  function compositionStart() {
3869
3911
  composing = true
3870
3912
  }
3871
3913
  function compositionEnd() {
3872
3914
  composing = false
3873
3915
  }
3874
- var updateVModel = function () {
3916
+
3917
+ var updateVModel = function (e) {
3875
3918
  var val = elem.value //防止递归调用形成死循环
3876
3919
  if (composing || val === binding.oldValue || binding.pipe === null) //处理中文输入法在minlengh下引发的BUG
3877
3920
  return
3878
3921
  var lastValue = binding.pipe(val, binding, "get")
3879
3922
  try {
3923
+ binding.oldValue = val
3880
3924
  binding.setter(lastValue)
3881
3925
  callback.call(elem, lastValue)
3882
3926
  } catch (ex) {
@@ -3896,7 +3940,7 @@ var duplexBinding = avalon.directive("duplex", {
3896
3940
  })
3897
3941
  break
3898
3942
  case "checkbox":
3899
- binding.bound(W3C ? "change" : "click", function () {
3943
+ bound(W3C ? "change" : "click", function () {
3900
3944
  var method = elem.checked ? "ensure" : "remove"
3901
3945
  var array = binding.getter.apply(0, binding.vmodels)
3902
3946
  if (!Array.isArray(array)) {
@@ -3909,27 +3953,33 @@ var duplexBinding = avalon.directive("duplex", {
3909
3953
  })
3910
3954
  break
3911
3955
  case "change":
3912
- binding.bound("change", updateVModel)
3956
+ bound("change", updateVModel)
3913
3957
  break
3914
3958
  case "input":
3915
3959
  if (!IEVersion) { // W3C
3916
- binding.bound("input", updateVModel)
3960
+ bound("input", updateVModel)
3917
3961
  //非IE浏览器才用这个
3918
- binding.bound("compositionstart", compositionStart)
3919
- binding.bound("compositionend", compositionEnd)
3920
- binding.bound("DOMAutoComplete", updateVModel)
3921
- } else { //onpropertychange事件无法区分是程序触发还是用户触发
3962
+ bound("compositionstart", compositionStart)
3963
+ bound("compositionend", compositionEnd)
3964
+ bound("DOMAutoComplete", updateVModel)
3965
+ } else {
3922
3966
  // IE下通过selectionchange事件监听IE9+点击input右边的X的清空行为,及粘贴,剪切,删除行为
3923
3967
  if (IEVersion > 8) {
3924
- binding.bound("input", updateVModel) //IE9使用propertychange无法监听中文输入改动
3968
+ if (IEVersion === 9) {
3969
+ //IE9删除字符后再失去焦点不会同步 #1167
3970
+ bound("keyup", updateVModel)
3971
+ }
3972
+ bound("input", updateVModel) //IE9使用propertychange无法监听中文输入改动
3925
3973
  } else {
3926
- binding.bound("propertychange", function (e) { //IE6-8下第一次修改时不会触发,需要使用keydown或selectionchange修正
3974
+ //onpropertychange事件无法区分是程序触发还是用户触发
3975
+ //IE6-8下第一次修改时不会触发,需要使用keydown或selectionchange修正
3976
+ bound("propertychange", function (e) {
3927
3977
  if (e.propertyName === "value") {
3928
3978
  updateVModel()
3929
3979
  }
3930
3980
  })
3931
3981
  }
3932
- binding.bound("dragend", function () {
3982
+ bound("dragend", function () {
3933
3983
  setTimeout(function () {
3934
3984
  updateVModel()
3935
3985
  }, 17)
@@ -3939,7 +3989,7 @@ var duplexBinding = avalon.directive("duplex", {
3939
3989
  }
3940
3990
  break
3941
3991
  case "select":
3942
- binding.bound("change", function () {
3992
+ bound("change", function () {
3943
3993
  var val = avalon(elem).val() //字符串或字符串数组
3944
3994
  if (Array.isArray(val)) {
3945
3995
  val = val.map(function (v) {
@@ -3956,7 +4006,7 @@ var duplexBinding = avalon.directive("duplex", {
3956
4006
  }
3957
4007
  }
3958
4008
  })
3959
- binding.bound("datasetchanged", function (e) {
4009
+ bound("datasetchanged", function (e) {
3960
4010
  if (e.bubble === "selectDuplex") {
3961
4011
  var value = binding._value
3962
4012
  var curValue = Array.isArray(value) ? value.map(String) : value + ""
@@ -3969,17 +4019,17 @@ var duplexBinding = avalon.directive("duplex", {
3969
4019
  }
3970
4020
  if (binding.xtype === "input" && !rnoduplexInput.test(elem.type)) {
3971
4021
  if (elem.type !== "hidden") {
3972
- binding.bound("focus", function () {
4022
+ bound("focus", function () {
3973
4023
  elem.msFocus = true
3974
4024
  })
3975
- binding.bound("blur", function () {
4025
+ bound("blur", function () {
3976
4026
  elem.msFocus = false
3977
4027
  })
3978
4028
  }
3979
4029
  elem.avalonSetter = updateVModel //#765
3980
4030
  watchValueInTimer(function () {
3981
- if (elem.contains(elem)) {
3982
- if (!this.msFocus && binding.oldValue !== elem.value) {
4031
+ if (avalon.contains(root, elem)) {
4032
+ if (!this.msFocus) {
3983
4033
  updateVModel()
3984
4034
  }
3985
4035
  } else if (!elem.msRetain) {
@@ -4016,7 +4066,7 @@ var duplexBinding = avalon.directive("duplex", {
4016
4066
  } catch (e) {
4017
4067
  }
4018
4068
  }
4019
- elem.value = this.oldValue = curValue
4069
+ elem.value = binding.oldValue = curValue
4020
4070
  if (fixCaret) {
4021
4071
  setCaret(elem, pos, pos)
4022
4072
  }
@@ -4054,16 +4104,13 @@ var duplexBinding = avalon.directive("duplex", {
4054
4104
  }
4055
4105
  break
4056
4106
  }
4057
- if (binding.xtype !== "select") {
4058
- binding.changed.call(elem, curValue, binding)
4059
- }
4060
4107
  }
4061
4108
  })
4062
4109
 
4063
4110
  if (IEVersion) {
4064
4111
  avalon.bind(DOC, "selectionchange", function (e) {
4065
- var el = DOC.activeElement
4066
- if (el && typeof el.avalonSetter === "function") {
4112
+ var el = DOC.activeElement || {}
4113
+ if (!el.msFocus && el.avalonSetter) {
4067
4114
  el.avalonSetter()
4068
4115
  }
4069
4116
  })
@@ -4149,7 +4196,7 @@ new function () { // jshint ignore:line
4149
4196
  var bproto = HTMLTextAreaElement.prototype
4150
4197
  function newSetter(value) { // jshint ignore:line
4151
4198
  setters[this.tagName].call(this, value)
4152
- if (!this.msFocus && this.avalonSetter && this.oldValue !== value) {
4199
+ if (!this.msFocus && this.avalonSetter) {
4153
4200
  this.avalonSetter()
4154
4201
  }
4155
4202
  }
@@ -4171,7 +4218,8 @@ new function () { // jshint ignore:line
4171
4218
  watchValueInTimer = avalon.tick
4172
4219
  }
4173
4220
  } // jshint ignore:line
4174
- function getCaret(ctrl, start, end) {
4221
+ function getCaret(ctrl) {
4222
+ var start = NaN, end = NaN
4175
4223
  if (ctrl.setSelectionRange) {
4176
4224
  start = ctrl.selectionStart
4177
4225
  end = ctrl.selectionEnd
@@ -4188,14 +4236,11 @@ function getCaret(ctrl, start, end) {
4188
4236
  function setCaret(ctrl, begin, end) {
4189
4237
  if (!ctrl.value || ctrl.readOnly)
4190
4238
  return
4191
- if (ctrl.createTextRange) {//IE6-9
4192
- setTimeout(function () {
4193
- var range = ctrl.createTextRange()
4194
- range.collapse(true);
4195
- range.moveStart("character", begin)
4196
- // range.moveEnd("character", end) #1125
4197
- range.select()
4198
- }, 17)
4239
+ if (ctrl.createTextRange) {//IE6-8
4240
+ var range = ctrl.createTextRange()
4241
+ range.collapse(true)
4242
+ range.moveStart("character", begin)
4243
+ range.select()
4199
4244
  } else {
4200
4245
  ctrl.selectionStart = begin
4201
4246
  ctrl.selectionEnd = end
@@ -4383,7 +4428,7 @@ function upperFirstChar(str) {
4383
4428
  }
4384
4429
  var effectBuffer = new Buffer()
4385
4430
  function Effect() {
4386
- }// 动画实例,做成类的形式,是为了共用所有原型方法
4431
+ }//动画实例,做成类的形式,是为了共用所有原型方法
4387
4432
 
4388
4433
  Effect.prototype = {
4389
4434
  contrustor: Effect,
@@ -4406,7 +4451,7 @@ Effect.prototype = {
4406
4451
  callEffectHook(me, "abort" + upperFirstChar(oppositeName))
4407
4452
  callEffectHook(me, "before" + upperFirstChar(name))
4408
4453
  if (!isLeave)
4409
- before(el) //  这里可能做插入DOM树的操作,因此必须在修改类名前执行
4454
+ before(el) //这里可能做插入DOM树的操作,因此必须在修改类名前执行
4410
4455
  var cssCallback = function (cancel) {
4411
4456
  el.removeEventListener(me.cssEvent, me.cssCallback)
4412
4457
  if (isLeave) {
@@ -4525,7 +4570,6 @@ avalon.mix(avalon.effect, {
4525
4570
  }
4526
4571
  })
4527
4572
 
4528
-
4529
4573
  avalon.directive("html", {
4530
4574
  update: function (val) {
4531
4575
  var binding = this
@@ -4633,7 +4677,7 @@ avalon.directive("if", {
4633
4677
  elem.required = false
4634
4678
  elem.setAttribute("_required", "true")
4635
4679
  }
4636
- try {// 如果不支持querySelectorAll或:required,可以直接无视
4680
+ try {//如果不支持querySelectorAll或:required,可以直接无视
4637
4681
  avalon.each(elem.querySelectorAll(":required"), function (el) {
4638
4682
  elem.required = false
4639
4683
  el.setAttribute("_required", "true")
@@ -4669,8 +4713,6 @@ avalon.directive("if", {
4669
4713
  }
4670
4714
  })
4671
4715
 
4672
-
4673
-
4674
4716
  //ms-important绑定已经在scanTag 方法中实现
4675
4717
  var rnoscripts = /<noscript.*?>(?:[\s\S]+?)<\/noscript>/img
4676
4718
  var rnoscriptText = /<noscript.*?>([\s\S]+?)<\/noscript>/im
@@ -4790,7 +4832,7 @@ avalon.directive("include", {
4790
4832
  return nodesToFrag(nodes)
4791
4833
  }
4792
4834
  } else {
4793
- before = function () {// 新添加元素的动画 
4835
+ before = function () {//新添加元素的动画
4794
4836
  target.insertBefore(fragment, binding.end)
4795
4837
  scanNodeArray(nodes, vmodels)
4796
4838
  }
@@ -5026,7 +5068,7 @@ avalon.directive("repeat", {
5026
5068
  }
5027
5069
 
5028
5070
  //重写proxy
5029
- if (this.enterCount === 1) {// 防止多次进入,导致位置不对
5071
+ if (this.enterCount === 1) {//防止多次进入,导致位置不对
5030
5072
  proxy.$active = false
5031
5073
  proxy.$oldIndex = proxy.$index
5032
5074
  proxy.$active = true
@@ -5039,7 +5081,7 @@ avalon.directive("repeat", {
5039
5081
  proxy.$last = i === length - 1
5040
5082
  // proxy[param] = value[i]
5041
5083
  } else {
5042
- proxy.$val = toJson(value[keyOrId]) // 这里是处理vm.object = newObject的情况
5084
+ proxy.$val = toJson(value[keyOrId]) //这里是处理vm.object = newObject的情况
5043
5085
  }
5044
5086
  proxies.push(proxy)
5045
5087
  }
@@ -5090,7 +5132,7 @@ avalon.directive("repeat", {
5090
5132
  } else if (proxy.$index !== proxy.$oldIndex) {
5091
5133
  (function (proxy2, preElement) {
5092
5134
  staggerIndex = mayStaggerAnimate(binding.effectEnterStagger, function () {
5093
- var curNode = removeItem(proxy2.$anchor)// 如果位置被挪动了
5135
+ var curNode = removeItem(proxy2.$anchor)//如果位置被挪动了
5094
5136
  var inserted = avalon.slice(curNode.childNodes)
5095
5137
  parent.insertBefore(curNode, preElement.nextSibling)
5096
5138
  animateRepeat(inserted, 1, binding)
@@ -5326,9 +5368,11 @@ function proxyRecycler(cache, key, param) {
5326
5368
  delete cache[key]
5327
5369
  }
5328
5370
  }
5371
+
5329
5372
  /*********************************************************************
5330
5373
  * 各种指令 *
5331
5374
  **********************************************************************/
5375
+
5332
5376
  //ms-skip绑定已经在scanTag 方法中实现
5333
5377
  avalon.directive("text", {
5334
5378
  update: function (value) {
@@ -5375,7 +5419,7 @@ avalon.directive("visible", {
5375
5419
  var binding = this, elem = this.element, stamp
5376
5420
  var noEffect = !this.effectName
5377
5421
  if (!this.stamp) {
5378
- stamp = this.stamp = +new Date
5422
+ stamp = this.stamp = +new Date()
5379
5423
  if (val) {
5380
5424
  elem.style.display = binding.display || ""
5381
5425
  if (avalon(elem).css("display") === "none") {
@@ -5386,7 +5430,7 @@ avalon.directive("visible", {
5386
5430
  }
5387
5431
  return
5388
5432
  }
5389
- stamp = this.stamp = +new Date
5433
+ stamp = this.stamp = +new Date()
5390
5434
  if (val) {
5391
5435
  avalon.effect.apply(elem, 1, function () {
5392
5436
  if (stamp !== binding.stamp)
@@ -5414,8 +5458,9 @@ avalon.directive("visible", {
5414
5458
  })
5415
5459
 
5416
5460
  /*********************************************************************
5417
- * 自带过滤器 *
5461
+ * 自带过滤器 *
5418
5462
  **********************************************************************/
5463
+
5419
5464
  var rscripts = /<script[^>]*>([\S\s]*?)<\/script\s*>/gim
5420
5465
  var ron = /\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g
5421
5466
  var ropen = /<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/ig
@@ -5429,10 +5474,10 @@ var rnoalphanumeric = /([^\#-~| |!])/g;
5429
5474
 
5430
5475
  function numberFormat(number, decimals, point, thousands) {
5431
5476
  //form http://phpjs.org/functions/number_format/
5432
- //number 必需,要格式化的数字
5433
- //decimals 可选,规定多少个小数位。
5434
- //point 可选,规定用作小数点的字符串(默认为 . )。
5435
- //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。
5477
+ //number 必需,要格式化的数字
5478
+ //decimals 可选,规定多少个小数位。
5479
+ //point 可选,规定用作小数点的字符串(默认为 . )。
5480
+ //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。
5436
5481
  number = (number + '')
5437
5482
  .replace(/[^0-9+\-Ee.]/g, '')
5438
5483
  var n = !isFinite(+number) ? 0 : +number,
@@ -5460,7 +5505,6 @@ function numberFormat(number, decimals, point, thousands) {
5460
5505
  return s.join(dec)
5461
5506
  }
5462
5507
 
5463
-
5464
5508
  var filters = avalon.filters = {
5465
5509
  uppercase: function(str) {
5466
5510
  return str.toUpperCase()
@@ -5527,6 +5571,7 @@ var filters = avalon.filters = {
5527
5571
  },
5528
5572
  number: numberFormat
5529
5573
  }
5574
+
5530
5575
  /*
5531
5576
  'yyyy': 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010)
5532
5577
  'yy': 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)
@@ -5761,68 +5806,42 @@ new function() {// jshint ignore:line
5761
5806
  locate.SHORTMONTH = locate.MONTH
5762
5807
  filters.date.locate = locate
5763
5808
  }// jshint ignore:line
5809
+
5764
5810
  /*********************************************************************
5765
- * DOMReady *
5811
+ * END *
5766
5812
  **********************************************************************/
5767
5813
 
5768
- var readyList = [],
5769
- isReady
5770
- var fireReady = function (fn) {
5771
- isReady = true
5772
- var require = avalon.require
5773
- if (require && require.checkDeps) {
5774
- modules["domReady!"].state = 4
5775
- require.checkDeps()
5776
- }
5777
- while (fn = readyList.shift()) {
5778
- fn(avalon)
5814
+ new function () {
5815
+ avalon.config({
5816
+ loader: false
5817
+ })
5818
+ var fns = [], loaded = DOC.readyState === "complete", fn
5819
+ function flush(f) {
5820
+ loaded = 1
5821
+ while (f = fns.shift())
5822
+ f()
5779
5823
  }
5780
- }
5781
5824
 
5782
- function doScrollCheck() {
5783
- try { //IE下通过doScrollCheck检测DOM树是否建完
5784
- root.doScroll("left")
5785
- fireReady()
5786
- } catch (e) {
5787
- setTimeout(doScrollCheck)
5788
- }
5789
- }
5825
+ avalon.bind(DOC, "DOMContentLoaded", fn = function () {
5826
+ avalon.unbind(DOC, "DOMContentLoaded", fn)
5827
+ flush()
5828
+ })
5790
5829
 
5791
- if (DOC.readyState === "complete") {
5792
- setTimeout(fireReady) //如果在domReady之外加载
5793
- } else if (W3C) {
5794
- DOC.addEventListener("DOMContentLoaded", fireReady)
5795
- } else {
5796
- DOC.attachEvent("onreadystatechange", function () {
5797
- if (DOC.readyState === "complete") {
5798
- fireReady()
5830
+ var id = setInterval(function () {
5831
+ if (document.readyState === "complete" && document.body) {
5832
+ clearInterval(id)
5833
+ flush()
5799
5834
  }
5800
- })
5801
- try {
5802
- var isTop = window.frameElement === null
5803
- } catch (e) {}
5804
- if (root.doScroll && isTop && window.external) { //fix IE iframe BUG
5805
- doScrollCheck()
5806
- }
5807
- }
5808
- avalon.bind(window, "load", fireReady)
5835
+ }, 50)
5809
5836
 
5810
- avalon.ready = function (fn) {
5811
- if (!isReady) {
5812
- readyList.push(fn)
5813
- } else {
5814
- fn(avalon)
5837
+ avalon.ready = function (fn) {
5838
+ loaded ? fn(avalon) : fns.push(fn)
5815
5839
  }
5840
+ avalon.ready(function () {
5841
+ avalon.scan(DOC.body)
5842
+ })
5816
5843
  }
5817
5844
 
5818
- avalon.config({
5819
- loader: true
5820
- })
5821
-
5822
- avalon.ready(function () {
5823
- avalon.scan(DOC.body)
5824
- })
5825
-
5826
5845
 
5827
5846
  // Register as a named AMD module, since avalon can be concatenated with other
5828
5847
  // files that may use define, but not via a proper concatenation script that