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,3 +1,3 @@
1
- !function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("Avalon requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(){avalon.config.debug&&console.log.apply(console,arguments)}function r(){return Object.create(null)}function i(e){return Function.apply(o,e)}function o(){}function l(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 s(){if(e.VBArray){var t=document.documentMode;return t?t:e.XMLHttpRequest?7:6}return 0/0}function c(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 u(e,t){if(e&&e.childNodes)for(var n,a=e.childNodes,r=0;n=a[r++];)if(n.tagName){var i=Dt.createElementNS(on,n.tagName.toLowerCase());Wt.forEach.call(n.attributes,function(e){i.setAttribute(e.name,e.value)}),u(n,i),t.appendChild(i)}}function f(e){for(var t in e)if(Ut.call(e,t)){var n=e[t];"function"==typeof f.plugins[t]?f.plugins[t](n):"object"==typeof f[t]?avalon.mix(f[t],n):f[t]=n}return this}function d(e){return(e+"").replace(vn,"\\$&")}function p(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:Gt,type:"user-watcher",handler:o,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=o;var i=this;t.update=function(){var e=this.fireArgs||[];e[2]&&t.handler.apply(i,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=o,t.element=Dt.createElement("a")}}function v(e,t){var n=this.$events;if(n&&n[e]){t&&(t[2]=e);var a=n[e];m(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 h(e,t){for(;;){if(e.$watch){var n=e.$events||(e.$events={}),a=n[t]||(n[t]=[]);return void Cn.collectDependency(a)}if(e=e.$up,!e)break;t=e.$pathname+"."+t}}function m(e,t){if(e){new Date-An>444&&"object"==typeof e[0]&&H();for(var n,a=[],r=[],i=0;n=e[i++];)"user-watcher"===n.type?a.push(n):r.push(n);if(f.async){for(va.render(),i=0;n=r[i++];)if(n.update){var o=j(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 g(e,t){return t=t||{},t.watch=!0,b(e,t)}function y(){}function b(e,t){function a(e){return u[e]===!0}if(!e||e.$id&&e.$accessors||e.nodeName&&e.nodeType>0)return e;t=t||Bt;var r=t.force||Bt,i=t.old,o=i&&i.$accessors||Bt,s=new y,c={},u={},f=[],d=[],h={};e.$skipArray&&(h=l(e.$skipArray),delete e.$skipArray);var m=e.$computed;if(m){delete e.$computed;for(var g in m)u[g]=!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}}(g,m[g])}for(g in e){var b=e[g];gn[g]||(u[g]=!0),"function"==typeof b||b&&b.nodeName&&b.nodeType>0||!r[g]&&("$"===g.charAt(0)||gn[g]||h[g])?f.push(g):$(b)?(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}}(g,b)):(d.push(g),c[g]=o[g]?o[g]:x(g,b))}c.$model=yn,s=Object.defineProperties(s,c,e),f.forEach(function(t){s[t]=e[t]}),k(s,"$ups",null),k(s,"$id","anonymous"),k(s,"$up",i?i.$up:null),k(s,"$track",Object.keys(u)),k(s,"$active",!1),k(s,"$pathname",i?i.$pathname:""),k(s,"$accessors",c),k(s,"hasOwnProperty",a),t.watch&&(k(s,"$watch",function(){return p.apply(s,arguments)}),k(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])})),d.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(g in m)b=s[g];return s.$active=!0,s}function $(e){if(e&&"object"==typeof e){for(var t in e)if("get"!==t&&"set"!==t)return!1;return"function"==typeof e.get}}function x(e,t){var n,t=0/0;return{get:function(){return this.$active&&h(this,e),t},set:function(a){if(t!==a){var r=t;n=w(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 w(e,t,n,a){if(Array.isArray(e))return C(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 b(e,{old:t,watch:a})}return n?e:void 0}function C(e,t,n){if(t){var a=[0,t.length].concat(e);return t.splice.apply(t,a),t}for(var r in xn)e[r]=xn[r];k(e,"$up",null),k(e,"$pathname",""),k(e,"$track",E(e.length)),e._=b({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&&k(e,"$watch",function(){return p.apply(e,arguments)}),Object.defineProperty(e,"$model",yn);for(var i=0,o=e.length;o>i;i++){var l=e[i]=w(e[i],0,1,1);Object(l)===l&&(l.$up=e)}return e}function k(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!1,configurable:!0})}function N(e){var t=avalon.type(e);if("array"===t){for(var n=[],a=0;a<e.length;a++)n[a]=N(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:N(i)}return r}return e}function A(e,t){for(var n={},a=0,r=t.length;r>a;a++){n[a]=e[a];var i=t[a];i in n?(e[a]=n[i],delete n[i]):e[a]=e[i]}}function E(e){for(var t=[],n=0;e>n;n++)t[n]=Kt("$proxy$each");return t}function T(e,t,n){switch(t){case"push":case"unshift":n=E(n.length);break;case"splice":if(n.length>2){{n[1],n.length-2}n=[n[0],n[1]].concat(E(n.length-2))}}Array.prototype[t].apply(e,n)}function O(e,t){t.oneTime||e&&avalon.Array.ensure(e,t)&&t.element&&(S(t,e),new Date-An>444&&H())}function M(e,t){for(var n,a=[],r=0;n=e[r++];)a.push(t?n.$id:n.$key);return a.join(";")}function j(e){if(!e.uniqueNumber){var t=e.element;e.uniqueNumber=t?1!==t.nodeType?e.type+"-"+j(t.parentNode)+"-"+ ++kn:e.name+"-"+j(t):++kn}return e.uniqueNumber}function S(e,t){var n=e.lists||(e.lists=[]),a=j(e);avalon.Array.ensure(n,t),t.$uuid=t.$uuid||Kt(),Nn[a]||(Nn[a]=1,Nn.push(e))}function H(e){for(var t=Nn.length,n=t,a=[],r={},i={};e=Nn[--t];){var o=e.type;i[o]?i[o]++:(i[o]=1,a.push(o))}var l=!1;if(a.forEach(function(e){En[e]!==i[e]&&(r[e]=1,l=!0)}),t=n,l)for(;e=Nn[--t];)if(null!==e.element){if(r[e.type]&&L(e.element)){Nn.splice(t,1),delete Nn[e.uniqueNumber];for(var s,c=e.lists,u=0;s=c[u++];)avalon.Array.remove(c,s),avalon.Array.remove(s,e);D(e)}}else Nn.splice(t,1);En=i,An=new Date}function D(e){delete Nn[e.uniqueNumber],e.element=null,e.rollback&&e.rollback();for(var t in e)e[t]=null}function L(e){try{{e.parentNode.nodeType}}catch(t){return!0}return e.ifRemove&&!Gt.contains(e.ifRemove)&&Rt===e.parentNode?(e.parentNode&&e.parentNode.removeChild(e),!0):e.msRetain?0:1===e.nodeType?!Gt.contains(e):!avalon.contains(Gt,e)}function R(e){return e.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function q(e){return e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})}function B(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:Dn.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 F(e,t){if(e.offsetWidth<=0){var n=getComputedStyle(e,null);if(Pn.test(n.display)){var a={node:e};for(var r in Bn)a[r]=n[r],e.style[r]=Bn[r];t.push(a)}var i=e.parentNode;i&&1===i.nodeType&&F(i,t)}}function _(e){var t=e.tagName.toLowerCase();return"input"===t&&/checkbox|radio/.test(e.type)?"checked":t}function V(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(In.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=V(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 p=i(["return "+d])();n[c-1]=u+"."+p}catch(v){}}r="maybePath",l=f.i}}else if("]"===s){if(a)return n.i=l+t,I(n,o),n}else Un.test(s)&&"\r"!==s&&"\n"!==s?"variable"===r&&(I(n,o)&&(r="maybePath"),o=""):(I(n,o),r="unknown",o="")}return I(n,o),n}function I(e,t){return t&&!_n[t]?(e.push(t),!0):void 0}function U(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=V(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=Y(a.trim()));var r=z(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,U(r,t[u],d,n))}n.args=c;var p=n.type,v=t.map(function(e){return String(e.$id).replace(zn,"$1")})+e+p,h=Xn.get(v);if(h){if("duplex"===p){var m=Xn.get(v+"setter");n.setter=m.apply(m,n.args)}return n.getter=h}if(l.length||l.push("fix"+o),"duplex"===p){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=i(s.concat("'use strict';return function(vvv){"+e+" = vvv\n}\n"));Xn.put(v+"setter",y),n.setter=y.apply(y,n.args)}if("on"===p){-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)),Xn.put(v,h)}function X(e){var t=fn.test(e);if(t){var n=it(e);return 1===n.length?n[0].expr:n.map(function(e){return e.type?"("+e.expr+")":Qn(e.expr)}).join(" + ")}return e}function Y(e){return e=e.replace(Yn,"").replace(Gn,function(){return"],|"}).replace(Zn,function(e,t){return"["+Qn(t)}).replace(Jn,function(){return'"],["'}).replace(Kn,function(){return'",'})+"]",i(["return ["+e+"]"])()}function G(e,t,n){var a=setTimeout(function(){var r=e.innerHTML;clearTimeout(a),r===n?t():G(e,t,r)})}function Z(e,t){var n=e.getAttribute("avalonctrl")||t.$id;e.setAttribute("avalonctrl",n),t.$events&&(t.$events.expr=e.tagName+'[avalonctrl="'+n+'"]')}function J(e,t){for(var n,a=0;n=e[a++];)n.vmodels=t,an[n.type].init(n),avalon.injectBinding(n),n.getter&&1===n.element.nodeType&&n.element.removeAttribute(n.name);e.length=0}function K(e,t){return e.priority-t.priority}function Q(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(ra)))){var f=a[1],d=a[2]||"",p=i.value;if(ia[f]?(d=f,f="on"):oa[f]&&(d=f,f="attr",u="ms-"+f+"-"+d,n("warning!请改用"+u+"代替"+i.name+"!")),an[f]){var v=p.replace(aa,""),h=p!==v,m={type:f,param:d,element:e,name:u,expr:v,oneTime:h,priority:(an[f].priority||10*f.charCodeAt(0))+(Number(d.replace(/\D/g,""))||0)};if("html"===f||"text"===f){var g=rt(p).filters;m.expr=m.expr.replace(g,""),m.filters=g.replace(ua,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(K),y&&b&&"text"===e.type&&n("warning!一个控件不能同时定义ms-attr-value与"+y),c=0;m=l[c];c++){if(f=m.type,la.test(f))return J(l.slice(0,c+1),t);r&&(r=!sa.test(f))}J(l,t)}}r&&!ea[e.tagName]&&(na&&na(e),tt(e,t))}function et(e){for(var t,n=e.attributes,a={},r=0;t=n[r++];)t.specified&&!ca.test(t.name)&&(a[q(t.name)]=B(t.value));return a}function tt(e,t){var n=avalon.slice(e.childNodes);nt(n,t)}function nt(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=st(r);if(i){var o=r.localName?r.localName.replace(i+":",""):r.nodeName,l=i+":"+q(o);ha.push({library:i,element:r,fullName:l,widget:o,vmodels:t,name:"widget"}),avalon.components[l]&&avalon.component(l)}}at(n,t),n.msHasEvent&&avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent});break;case 3:fn.test(n.nodeValue)&&ot(n,t,a)}}function at(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),Z(e,o)}Q(e,t)}}function rt(e){if(e.indexOf("|")>0){var t=e.replace(da,function(e){return Array(e.length+1).join("1")}),n=t.replace(fa,"ᄢ㍄").indexOf("|");if(n>-1)return{type:"text",filters:e.slice(n).trim(),expr:e.slice(0,n)}}return{type:"text",expr:e,filters:""}}function it(e){for(var t,n,a=[],r=0;;){if(n=e.indexOf(cn,r),-1===n)break;if(t=e.slice(r,n),t&&a.push({expr:t}),r=n+cn.length,n=e.indexOf(un,r),-1===n)break;t=e.slice(r,n),t&&a.push(rt(t,r)),r=n+un.length}return t=e.slice(r),t&&a.push({expr:t}),a}function ot(e,t,n){var a=[],r=it(e.data);if(r.length){for(var i,o=0;i=r[o++];){var l=Dt.createTextNode(i.expr);i.type&&(i.expr=i.expr.replace(aa,function(){return i.oneTime=!0,""}),i.element=l,i.filters=i.filters.replace(ua,function(){return i.type="html",""}),i.pos=1e3*n+o,a.push(i)),Zt.appendChild(l)}e.parentNode.replaceChild(Zt,e),a.length&&J(a,t)}}function lt(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 st(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 ct(e){return null==e?"":e}function ut(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 ft(){for(var e=Ea.length-1;e>=0;e--){var t=Ea[e];t()===!1&&Ea.splice(e,1)}Ea.length||clearInterval(Aa)}function dt(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=La.pop()||new ht;return r.el=e,r.driver=a,r.useCss="j"!==a,r.useCss&&(t&&avalon(e).addClass(t.effectClass),r.cssEvent="t"===a?Oa:Ma),r.name=n,r.callbacks=avalon.effects[n]||{},r}function pt(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 ht(){}function mt(e,t){var n=e.callbacks[t+"Class"];return"string"==typeof n?n:"function"==typeof n?n():e.name+"-"+t}function gt(e,t,n){var a=e.callbacks[t];a&&a.call(e,e.el,n)}function yt(e,t,n){var a=e.templateCache&&e.templateCache[t];if(a){for(var r,i=Dt.createDocumentFragment();r=a.firstChild;)i.appendChild(r);return i}return avalon.parseHTML(n)}function bt(e){for(var t=Dt.createDocumentFragment(),n=0,a=e.length;a>n;n++)t.appendChild(e[n]);return t}function $t(e,t,n){for(var a,r=0;a=e[r++];)a.className===n.effectClass&&avalon.effect.apply(a,t,o,o,n)}function xt(e,t,n){return e?setTimeout(t,++n*e):t(),n}function wt(e,t){for(var n=Zt.cloneNode(!1),a=e,r=a.nodeValue,i=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=xt(t.effectLeaveStagger,function(){avalon.effect.apply(e,0,o,function(){n.appendChild(e)},t)},i)}(c)):n.insertBefore(c,n.firstChild)}return n.appendChild(a),n}function Ct(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 kt(e){var t="object"===e.xtype?Tt:Nt,n=t(e),a=n.$anchor||(n.$anchor=e.element.cloneNode(!1));return a.nodeValue=e.signature,n.$outer=e.$outer,n}function Nt(e,t){for(var n=e.param||"el",a=0,r=Va.length;r>a;a++){var i=Va[a];if(i&&i.hasOwnProperty(n)){Va.splice(a,1),t=i;break}}return t||(t=At(n)),t}function At(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=g(t,{force:n});return a.$id=Kt("$proxy$each"),a}function Et(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 Ia.pop()||Ot()}function Ot(){var e=g({$key:"",$val:0/0,$index:0,$oldIndex:0,$outer:{},$anchor:null},{force:{$key:1,$val:1,$index:1}});return e.$id=Kt("$proxy$with"),e}function Mt(e,t,n){var a=e[t];if(a){var r=0===a.$id.indexOf("$proxy$each")?Va:Ia;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)>f.maxRepeatSize&&r.pop(),delete e[t]}}function jt(e,t){var n="_"+e;if(!jt[n]){var a=Dt.createElement(e);Gt.appendChild(a),t=Yt?getComputedStyle(a,null).display:a.currentStyle.display,Gt.removeChild(a),jt[n]=t}return jt[n]}function St(e,t,n,a){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var r=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):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 Ht=Date.now(),Dt=e.document,Lt=Dt.head;Lt.insertAdjacentHTML("afterBegin",'<avalon ms-skip class="avalonHide"><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>');var Rt=Lt.firstChild,qt="$"+Ht,Bt={},Pt=/[^, ]+/g,Ft=/\w+/g,_t=/^\[object SVG\w*Element\]$/,Vt=/^\[object (?:Window|DOMWindow|global)\]$/,It=Object.prototype,Ut=It.hasOwnProperty,zt=It.toString,Wt=Array.prototype,Xt=Wt.slice,Yt=e.dispatchEvent,Gt=Dt.documentElement,Zt=Dt.createDocumentFragment(),Jt=(Dt.createElement("div"),{});"Boolean Number String Function Array Date RegExp Object Error".replace(Pt,function(e){Jt["[object "+e+"]"]=e.toLowerCase()});var Kt=function(e){return e=e||"avalon",String(Math.random()+Math.random()).replace(/\d\.\d{4}/,e)},Qt=s();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?Jt[zt.call(e)]||"object":typeof e};var en=function(e){return"[object Function]"===zt.call(e)};avalon.isFunction=en,avalon.isWindow=function(e){return Vt.test(zt.call(e))},avalon.isPlainObject=function(e){return"[object Object]"===zt.call(e)&&Object.getPrototypeOf(e)===It},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||en(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:qt,version:1.55,ui:{},log:n,slice:function(e,t,n){return Xt.call(e,t,n)},noop:o,error:function(e,t){throw new(t||Error)(e)},oneObject:l,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,i=r[t],l=n||o;"object"==typeof i&&(t=i.type||t,a=i.phase||!!a),e.removeEventListener(t,l,a)},css:function(e,t,n){e instanceof avalon&&(e=e[0]);var a,r=/[_-]/.test(t)?q(t):t;if(t=avalon.cssName(r)||r,void 0===n||"boolean"==typeof n){a=Ln[r+":get"]||Ln["@: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=Ln[r+":set"]||Ln["@:set"],a(e,t,n)}},each:function(e,t){if(e){var n=0;if(c(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 tn=avalon.bindingHandlers={},nn=avalon.bindingExecutors={},an=avalon.directives={};avalon.directive=function(e,t){return tn[e]=t.init=t.init||o,nn[e]=t.update=t.update||o,an[e]=t};var rn=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(Dt.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 on="http://www.w3.org/2000/svg",ln=Dt.createElementNS(on,"svg");ln.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',_t.test(ln.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=Dt.createDocumentFragment();u(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);u(t,this)}}}})}var sn=avalon.eventHooks;"onmouseenter"in Gt||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){sn[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]&&!sn.animationend&&(sn.animationend={type:n})}),void 0===Dt.onmousewheel&&(sn.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 cn,un,fn,dn,pn,vn=/[-.*+?^${}()|[\]\/\\]/g,hn={interpolate:function(e){if(cn=e[0],un=e[1],cn===un){throw new SyntaxError("openTag!==closeTag")}f.openTag=cn,f.closeTag=un;var t=d(cn),n=d(un);fn=new RegExp(t+"(.*?)"+n),dn=new RegExp(t+"(.*?)"+n,"g"),pn=new RegExp(t+".*?"+n+"|\\sms-")}};f.async=!0,f.debug=!0,f.plugins=hn,f.plugins.interpolate(["{{","}}"]),f.paths={},f.shim={},f.maxRepeatSize=100,avalon.config=f;var mn=avalon.vmodels={};avalon.define=function(e){var t=e.$id;t||n("warning: vm必须指定$id");var a=g(e);return a.$id=t,mn[t]=a};var gn=l("$id,$watch,$fire,$events,$model,$skipArray,$active,$pathname,$up,$ups,$track,$accessors"),yn={get:function(){return N(this)},set:o,enumerable:!1,configurable:!0},bn=["push","pop","shift","unshift","splice"],$n=Array.prototype,xn={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])&&(wn.call(this.$track,t,1),wn.call(this,t,1));else if("function"==typeof e)for(t=this.length-1;t>=0;t--){var n=this[t];e(n,t)&&(wn.call(this.$track,t,1),wn.call(this,t,1))}else wn.call(this.$track,0,this.length),wn.call(this,0,this.length);Yt||(this.$model=N(this)),this.notify(),this._.length=this.length},clear:function(){return this.removeAll()}},wn=$n.splice;bn.forEach(function(e){var t=$n[e];xn[e]=function(){for(var n=[],a=0,r=arguments.length;r>a;a++)n[a]=w(arguments[a],0,1,1);var i=t.apply(this,n);return T(this.$track,e,n),Yt||(this.$model=N(this)),this.notify(),this._.length=this.length,i}}),"sort,reverse".replace(Pt,function(e){xn[e]=function(){var t=this.concat(),n=this,a=Math.random(),r=[],i=!1;$n[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&&(A(this.$track,r),Yt||(this.$model=N(this)),this.notify()),this}});var Cn=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||an[e.type].update||o,e.update=function(){var t=!1;e.getter||(t=!0,Cn.begin({callback:function(t){O(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=Za.$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=M(e.proxies||[],o),s=a.$track||("array"===o?E(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=cn+(e.oneTime?"::":"")+e.expr+un)}finally{t&&Cn.end()}},e.update()};var kn=0,Nn=avalon.$$subscribers=[],An=new Date,En={},Tn=new function(){avalon.mix(this,{option:Dt.createElement("select"),thead:Dt.createElement("table"),td:Dt.createElement("tr"),area:Dt.createElement("map"),tr:Dt.createElement("tbody"),col:Dt.createElement("colgroup"),legend:Dt.createElement("fieldset"),_default:Dt.createElement("div"),g:Dt.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){Tn[e]=Tn.g});var On=/<([\w:]+)/,Mn=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jn=l(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),Sn=Dt.createElement("script"),Hn=/<|&#?\w+;/;avalon.parseHTML=function(e){var t=Zt.cloneNode(!1);if("string"!=typeof e)return t;if(!Hn.test(e))return t.appendChild(Dt.createTextNode(e)),t;e=e.replace(Mn,"<$1></$2>").trim();var n,a=(On.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(jn[o.type]){var s=Sn.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(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-"+R(e||""),arguments.length){case 2:return this.attr(e,t),this;case 1:var n=this.attr(e);return B(n);case 0:var a={};return Wt.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=q(e.slice(5)),a[e]=B(t.value)))}),a}},removeData:function(e){return e="data-"+R(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||Gt)},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[_(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}}),Gt.dataset&&(avalon.fn.data=function(e,t){e=e&&q(e);var n=this[0].dataset;switch(arguments.length){case 2:return n[e]=t,this;case 1:return t=n[e],B(t);case 0:var a=r();for(e in n)a[e]=B(n[e]);return a}});var Dn=/(?:\{[\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=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 Ln=avalon.cssHooks=r(),Rn=["","-webkit-","-moz-","-ms-"],qn={"float":"cssFloat"};avalon.cssNumber=l("animationIterationCount,animationIterationCount,columnCount,order,flex,flexGrow,flexShrink,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(qn[e])return qn[e];t=t||Gt.style;for(var a=0,r=Rn.length;r>a;a++)if(n=q(Rn[a]+e),n in t)return qn[e]=n;return null},Ln["@:set"]=function(e,t,n){e.style[t]=n},Ln["@: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},Ln["opacity:get"]=function(e){var t=Ln["@:get"](e,"opacity");return""===t?"1":t},"top,left".replace(Pt,function(e){Ln[e+":get"]=function(t){var n=Ln["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Bn={position:"absolute",visibility:"hidden",display:"block"},Pn=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(Pt,function(e){var t=e.toLowerCase(),n="client"+e,a="scroll"+e,r="offset"+e;Ln[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)},Ln[t+"&get"]=function(e){var n=[];F(e,n);for(var a,r=Ln[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 Ln[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return Ln[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return Ln[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)}},_n={},Vn=["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(",");Vn.replace(/\w+/g,function(e){_n[e]=!0});var In=/[a-z_$]/i,Un=/[\s\uFEFF\xA0]/,zn=/(\$proxy\$[a-z]+)\d+$/,Wn=new rn(218),Xn=new rn(128);avalon.normalizeExpr=X,avalon.parseExprProxy=W;var Yn=/\)\s*$/,Gn=/\)\s*\|/g,Zn=/\|\s*([$\w]+)/g,Jn=/"\s*\["/g,Kn=/"\s*\(/g,Qn=JSON.stringify;avalon.scan=function(e,t){e=e||Gt;var n=t?[].concat(t):[];at(e,n)};var ea=l("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),ta=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]},na=Qt&&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,aa=/^\s*::/,ra=/ms-(\w+)-?(.*)/,ia=l("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),oa=l("value,title,alt,checked,selected,disabled,readonly,enabled,href,src"),la=/^if|widget|repeat$/,sa=/^each|with|html|include$/,ca=/^(ms-\S+|data-\S+|on[a-z]+|id|style|class|tabindex)$/,ua=/\|\s*html(?:\b|$)/,fa=/\|\|/g,da=/(['"])(\\\1|.)+?\1/g,pa=function(){this.queue=[]};pa.prototype={render:function(e){if(!this.locked){this.locked=e?Gt.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 pa,ha=[],ma=[],ga={$construct:function(){return avalon.mix.apply(null,arguments)},$ready:o,$init:o,$dispose:o,$container:null,$childReady:o,$replace:!1,$extend:null,$$template:function(e){return e}};avalon.components={},avalon.component=function(t,n){n&&(avalon.components[t]=avalon.mix({},ga,n));for(var a,r=0;a=ha[r];r++)t===a.fullName&&(ha.splice(r,1),r--,function(n,a,r,i){var o=1,l=n.library,s=avalon.libraries[l]||ga,c=et(r),u=lt(n.vmodels,c.config||n.widget),f=c.$id||c.identifier||Kt(i);delete c.config,delete c.$id,delete c.identifier;var d={},p=avalon.components[a.$extend];p?(avalon.mix(!0,d,p),d=p.$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 v=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")||v;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=Zt.cloneNode(!0),E=0;b=N[E++];)A.appendChild(b);y[C]=A}w[C]=null}w=null;var T=r.firstChild;h&&(T=r.firstChild,r.parentNode.replaceChild(T,r),T.msResolved=1,r=n.element=T),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]},S(n,ma),e.chrome&&r.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(H)})}});if(at(r,[y].concat(n.vmodels)),avalon.vmodels[y.$id]=y,r.childNodes.length)var j=setTimeout(function(){clearTimeout(j),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(Dt.createEvent){var a=Dt.createEvent("Events");a.initEvent(t,!0,!0,n),avalon.mix(a,n),e.dispatchEvent(a)}else Gt.contains(e)&&(a=Dt.createEventObject(),avalon.mix(a,n),e.fireEvent("on"+t,a))},avalon.libraries=[],avalon.library=function(e,t){Dt.namespaces&&Dt.namespaces.add(e,"http://www.w3.org/1999/xhtml"),avalon.libraries[e]=avalon.mix({$init:o,$ready:o,$dispose:o},t||{})},avalon.library("ms");var ya=["autofocus,autoplay,async,allowTransparency,checked,controls","declare,disabled,defer,defaultChecked,defaultSelected","contentEditable,isMap,loop,multiple,noHref,noResize,noShade","open,readOnly,selected"].join(","),ba={};ya.replace(Pt,function(e){ba[e.toLowerCase()]=e});var $a={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"},xa=["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan","dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight","rowSpan,tabIndex,useMap,vSpace,valueType,vAlign"].join(",");xa.replace(Pt,function(e){$a[e.toLowerCase()]=e});var wa=avalon.directive("attr",{init:function(e){if(e.expr=X(e.expr.trim()),"include"===e.type){var t=e.element;pt(t,e),e.includeRendered=ta(t,"data-include-rendered",e.vmodels),e.includeLoaded=ta(t,"data-include-loaded",e.vmodels);var n=e.includeReplace=!!avalon(t).data("includeReplace");avalon(t).data("includeCache")&&(e.templateCache={}),e.start=Dt.createComment("ms-include"),e.end=Dt.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||Gt.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&&$a[a]&&(a=$a[a]);var l=ba[a];if("boolean"==typeof n[l]&&(n[l]=!!t,t||(o=!0)),o)return n.removeAttribute(a);var s=_t.test(n)?!1:Dt.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){an[e]=wa}),avalon.directive("class",{init:function(e){var t=e.param,a=e.type;if(!t||isFinite(t)?(e.param="",an.effect.init(e)):(n("ms-"+a+'-xxx="yyy"这种用法已经过时,请使用ms-'+a+'="xxx:yyy"'),e.expr="["+Qn(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){an[e]=an["class"]}),avalon.directive("css",{init:an.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 Ca=/^(?:checkbox|radio)$/,ka=/^(?:radio|checked)$/,Na=/^(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 i(){d=!1}var s=e.element,c=e.vmodels;e.changed=ta(s,"data-duplex-changed",c)||o;var u=[],f=l("string,number,boolean,checked");"radio"===s.type&&""===e.param&&(e.param="checked"),e.param.replace(Ft,function(a){Ca.test(s.type)&&ka.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,p=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",p);break;case"input":Qt?e.bound("input",p):(e.bound("input",p),e.bound("compositionstart",r),e.bound("compositionend",i),e.bound("DOMAutoComplete",p));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||Na.test(s.type)||("hidden"!==s.type&&(e.bound("focus",function(){s.msFocus=!0}),e.bound("blur",function(){s.msFocus=!1})),s.avalonSetter=p,Ta(function(){if(Gt.contains(s))s.msFocus||e.oldValue===s.value||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=ut);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:ct},"boolean":{get:function(e){return"true"===e},set:ct},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:ct}};var Aa,Ea=[];avalon.tick=function(e){1===Ea.push(e)&&(Aa=setInterval(ft,60))};var Ta=o;!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(dn,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=fn.test(a)?X(t):Qn(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&&(ja||Sa)){var l=r[Ha]||i[Ha];l&&"0s"!==l&&(a.setAttribute("data-effect-driver","t"),o=!0),o||(l=r[Da]||i[Da],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 Oa,Ma,ja=!1,Sa=!1,Ha=avalon.cssName("transition-duration"),Da=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&&(ja=!0,Oa=t),n={AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"};var i;for(a in n)if(e[a]){i=n[a];break}"string"==typeof i&&(ja=!0,Ma=i)};var La=[],Ra=new pa;ht.prototype={contrustor:ht,enterClass:function(){return mt(this,"enter")},leaveClass:function(){return mt(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";gt(a,"abort"+vt(o)),gt(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&&(gt(a,"after"+vt(e)),n&&n(r)),a.dispose()};a.useCss?(a.cssCallback&&a.cssCallback(!0),a.cssClass=mt(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),Ra.render(!0),Ra.queue.push(a)):gt(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,La.unshift(this)>100&&La.pop()}};var qa=function(e,t){var n=Xt.call(arguments,0);"function"!=typeof n[2]&&n.splice(2,0,o),"function"!=typeof n[3]&&n.splice(3,0,o);var a=n[2],r=n[3],i=n[4],l=dt(e,i);if(!l)return a(),r(),!1;var s=t?"enter":"leave";l[s](a,r)};avalon.mix(avalon.effect,{apply:qa,append:function(e,t,n,a){return qa(e,1,function(){t.appendChild(e)},n,a)},before:function(e,t,n,a){return qa(e,1,function(){t.parentNode.insertBefore(e,t)},n,a)},remove:function(e,t,n,a){return qa(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=Kt("html");r.insertBefore(Dt.createComment(i),n),t.element=Dt.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=Zt.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);nt(l,t.vmodels)}}}),avalon.directive("if",{priority:10,update:function(e){function t(){r.getAttribute(a.name)&&(r.removeAttribute(a.name),Q(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=Dt.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,Rt.appendChild(r),a.rollback=function(){r.parentNode===Rt&&Rt.removeChild(r)})},o)}}});var Ba=function(){return new e.XMLHttpRequest},Pa=avalon.templateCache={};avalon.directive("include",{init:an.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 p=c.apply(u,[n].concat(r));"string"==typeof p&&(n=p)}i&&G(u,function(){i.call(u)},0/0);var v=t.includeLastID||"_default";t.includeLastID=e;var h=l&&l[v]||Dt.createElement(a.tagName||t._element.tagName);o&&(h.className=o,u.insertBefore(h,t.start)),(l||{})[v]=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&&Rt.appendChild(h)},t);var y=u,b=avalon.noop,$=avalon.noop,x=yt(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=bt(w),u.insertBefore(x,t.end),nt(w,r)),y.parentNode===u&&u.removeChild(y)},t.recoverNodes=function(){return t.recoverNodes=avalon.noop,bt(w)}):b=function(){u.insertBefore(x,t.end),nt(w,r)},avalon.effect.apply(y,"enter",b,$)};if("src"===t.param)if("string"==typeof Pa[e])avalon.nextTick(function(){d(Pa[e])});else if(Array.isArray(Pa[e]))Pa[e].push(d);else{var p=Ba();p.onload=function(){for(var t,n=p.responseText,a=0;t=Pa[e][a++];)t(n);Pa[e]=n},p.onerror=function(){n("ms-include load ["+e+"] error")},Pa[e]=[d],p.open("GET",e,!0),"withCredentials"in p&&(p.withCredentials=!0),p.setRequestHeader("X-Requested-With","XMLHttpRequest"),p.send(null)}else{var v=e&&1===e.nodeType?e:Dt.getElementById(e);v&&avalon.nextTick(function(){d(v.value||v.innerText||v.innerHTML)})}}});var Fa=/\(([^)]*)\)/,_a=avalon.directive("on",{priority:3e3,init:function(e){var t=e.expr;e.type="on";var n=e.param.replace(/-\d+$/,"");if("function"==typeof _a[n+"Hook"]&&_a[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||o;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),pt(n,e),e.param=e.param||"el",e.sortedCallback=ta(n,"data-with-sorted",e.vmodels);var a=ta(n,"data-"+t+"-rendered",e.vmodels),r=Kt(t),i=Dt.createComment(r+":start"),o=e.element=Dt.createComment(r+":end");if(e.signature=r,e.start=i,e.template=Zt.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 u=n.sortedCallback.call($,c);u&&Array.isArray(u)&&(c=u)}var d="move";n.$repeat=e;var p=[],v=r&&Zt.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)p.push({}),g[x]=!0;else{if(w=kt(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 k=w.$anchor||(w.$anchor=y.cloneNode(!1));k.nodeValue=this.signature,Ct(n,v,w,p,r&&!n.effectDriver),Et(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=N(e[x]),h.push(w)}if(this.proxies=h,r&&!n.effectDriver)$.insertBefore(v,y),p.forEach(function(e){nt(e.nodes||[],e.vmodels),e.nodes=e.vmodels=null});else{var A=n.staggerIndex=0;for(x in g)g[x]!==!0&&(d="del",wt(g[x].$anchor,n),Mt(this.cache,x,m),g[x]=null);for(s=0;b>s;s++){w=h[s],x="array"===a?w.$id:w.$key;var E=h[s-1],T=E?E.$anchor:n.start;g[x]?w.$index!==w.$oldIndex&&!function(e,t){A=xt(n.effectEnterStagger,function(){var a=wt(e.$anchor),r=avalon.slice(a.childNodes);$.insertBefore(a,t.nextSibling),$t(r,1,n)},A)}(w,T):!function(e,t){var a=e.nodes,r=e.vmodels;a&&(A=xt(n.effectEnterStagger,function(){$.insertBefore(e.content,t.nextSibling),nt(a,r),$t(a,1,n)},A)),e.nodes=e.vmodels=null}(p[s],T)}}if(!e.$track)for(x in this.cache)Mt(this.cache,x,m);!function(e){$.args=e,$.msRendered&&$.msRendered.apply($,e)}(f.newWatch?arguments:[d]);var O=setTimeout(function(){clearTimeout(O),avalon.fireDom($,"datasetchanged",{bubble:$.msHasEvent})});this.enterCount-=1}}),"with,each".replace(Pt,function(e){an[e]=avalon.mix({},an.repeat,{priority:1400})});var Va=[],Ia=[];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=jt,avalon.directive("visible",{init:function(e){pt(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||jt(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=jt(a.nodeName))):a.style.display="none"))}});var Ua=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,za=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,Wa=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/gi,Xa={a:/\b(href)\=("javascript[^"]*"|'javascript[^']*')/gi,img:/\b(src)\=("javascript[^"]*"|'javascript[^']*')/gi,form:/\b(action)\=("javascript[^"]*"|'javascript[^']*')/gi},Ya=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ga=/([^\#-~| |!])/g,Za=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:q,sanitize:function(e){return e.replace(Ua,"").replace(Wa,function(e){var t=e.toLowerCase().match(/<(\w+)\s/);if(t){var n=Xa[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(Ya,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(Ga,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")},currency:function(e,t,n){return(t||"¥")+St(e,isFinite(n)?n:2)},number:St};!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+)\)\/$/;Za.date=function(t,n){var a,r,i=Za.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],p=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 v=p.setFullYear,h=p.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 v=p.setUTCFullYear,h=p.setUTCHours,n&&(m=e(n+a),g=e(n+r)),""}),d[3]-=m,d[4]-=g,v.apply(p,d.slice(0,3)),h.apply(p,d.slice(3)),t=p}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,Za.date.locate=c};var Ja=avalon.modules={"domReady!":{exports:avalon,state:3},avalon:{exports:avalon,state:4}};Ja.exports=Ja.avalon;var Ka,Qa=e.require,er=e.define;hn.loader=function(t){var n=Ka&&t;e.require=n?Ka:Qa,e.define=n?Ka.define:er},new function(){function t(e,t){var a="js";e=e.replace(/^(\w+)\!/,function(e,t){return a=t,""}),"ready"===a&&(n("debug: ready!已经被废弃,请使用domReady!"),a="domReady");var r="";e=e.replace(L,function(e){return r=e,""});var i="."+a,o=/js|css/.test(i)?i:"";e=e.replace(/\.[a-z0-9]+$/g,function(e){return e===i?(o=e,""):e});var l=avalon.mix({query:r,ext:o,res:a,name:e,toUrl:m},t);return l.toUrl(e),l}function i(e){var t=e.name,n=e.res,a=Ja[t],r=t&&e.urlNoQuery;if(a&&a.state>=1)return t;if(a=Ja[r],a&&a.state>=3)return Ka(a.deps||[],a.factory,r),r;if(t&&!a){a=Ja[r]={id:r,state:1};var i=function(r){D[n]=r,r.load(t,e,function(e){arguments.length&&void 0!==e&&(a.exports=e),a.state=4,c()})};D[n]?i(D[n]):Ka([n],i)}return t?r:n+"!"}function l(e,t){for(var n,a=0;n=e[a++];)if(4!==Ja[n].state&&(n===t||l(Ja[n].deps,t)))return!0}function s(e,t){var a=d(e.src);return e.onload=e.onerror=null,t?(setTimeout(function(){Lt.removeChild(e),e=null}),void n("debug: 加载 "+a+" 失败"+t+" "+!Ja[a].state)):!0}function c(){e:for(var e,t=N.length;e=N[--t];){var n=Ja[e],a=n.deps;if(a){for(var r,i=0;r=a[i];i++)if(4!==Object(Ja[r]).state)continue e;4!==n.state&&(N.splice(t,1),h(n.id,n.deps,n.factory),c())}}}function u(e,t,a){var r=Dt.createElement("script");r.className=qt,r.onload=function(){var r=A.pop();r&&r.require(t),a&&a(),n("debug: 已成功加载 "+e),t&&N.push(t),c()},r.onerror=function(){s(r,!0)},Lt.insertBefore(r,Lt.firstChild),r.src=e,n("debug: 正准备加载 "+e)}function d(e){return(e||"").replace(L,"")
3
- }function p(e){return/^(?:[a-z]+:)?\/\//i.test(String(e))}function v(){var e;try{a.b.c()}catch(t){e=t.stack}if(e)return e=e.split(/[@ ]/g).pop(),e="("===e[0]?e.slice(1,-1):e.replace(/\s/,""),d(e.replace(/(:\d+)?:\d+$/i,""));for(var n,r=Lt.getElementsByTagName("script"),i=r.length;n=r[--i];)if(n.className===qt&&"interactive"===n.readyState){var o=n.src;return n.className=d(o)}}function h(t,a,i){var o=Object(Ja[t]);o.state=4;for(var l,s=0,c=[];l=a[s++];)if("exports"===l){var u=o.exports||(o.exports=r());c.push(u)}else c.push(Ja[l].exports);try{var f=i.apply(e,c)}catch(d){n("执行["+t+"]模块的factory抛错: ",d)}return void 0!==f&&(o.exports=f),R.test(t)&&delete Ja[t],delete o.factory,f}function m(e){0===e.indexOf(this.res+"!")&&(e=e.slice(this.res.length+1));var t=e,n=0,a=this.baseUrl,r=this.parentUrl||a;x(e,f.paths,function(e,a){t=t.replace(a,e),n=1}),n||x(e,f.packages,function(e,n,a){t=t.replace(a.name,a.location)}),this.mapUrl&&x(this.mapUrl,f.map,function(e){x(t,e,function(e,n){t=t.replace(n,e),r=a})});var i=this.ext;i&&n&&t.slice(-i.length)===i&&(t=t.slice(0,-i.length)),p(t)||(r=this.built||/^\w/.test(t)?a:r,t=C(r,t));var o=t+i;return t=o+this.query,o=t.replace(L,function(e){return this.query=e,""}),x(e,f.urlArgs,function(e){t+=(-1===t.indexOf("?")?"?":"&")+e}),this.url=t,this.urlNoQuery=o}function g(e,t,n){var a=$(e,t,n);return a.sort(w),a}function y(e){return new RegExp("^"+e+"(/|$)")}function b(t){return function(){var n;return t.init&&(n=t.init.apply(e,arguments)),n||t.exports&&k(t.exports)}}function $(e,t,n){var a=[];for(var r in e){var i={name:r,val:e[r]};a.push(i),i.reg="*"===r&&t?/^/:y(r),n&&"*"!==r&&(i.reg=new RegExp("/"+r.replace(/^\//,"")+"(/|$)"))}return a}function x(e,t,n){t=t||[];for(var a,r=0;a=t[r++];)if(a.reg.test(e))return n(a.val,a.name,a),!1}function w(e,t){var n=e.name,a=t.name;return"*"===a?-1:"*"===n?1:a.length-n.length}function C(e,t){if("/"!==e.charAt(e.length-1)&&(e+="/"),"./"===t.slice(0,2))return e+t.slice(2);if(".."===t.slice(0,2)){for(e+=t;q.test(e);)e=e.replace(q,"");return e}return"/"===t.slice(0,1)?e+t.slice(1):e+t}function k(t){if(!t)return t;var n=e;return t.split(".").forEach(function(e){n=n[e]}),n}var N=[],A=[],E=/\.js$/i,T=[],O=!1;Ka=avalon.require=function(e,n,a,l){if(O){Array.isArray(e)||avalon.error("require方法的第一个参数应为数组 "+e);var s=[],u=r(),d=a||"callback"+setTimeout("1");l=l||r(),l.baseUrl=f.baseUrl;var p=!!l.built;if(a&&(l.parentUrl=a.substr(0,a.lastIndexOf("/")),l.mapUrl=a.replace(E,"")),p){var v=t(l.defineName,l);d=v.urlNoQuery}else e.forEach(function(e){var n=t(e,l),a=i(n);a&&(u[a]||(s.push(a),u[a]="司徒正美"))});var h=Ja[d];h&&4===h.state||(Ja[d]={id:d,deps:p?e.concat():s,factory:n||o,state:3}),h||N.push(d),c()}else if(T.push(avalon.slice(arguments)),arguments.length<=2){O=!0;for(var m,g=T.splice(0,T.length);m=g.shift();)Ka.apply(null,m)}},Ka.define=function(e,t,n){"string"!=typeof e&&(n=t,t=e,e="anonymous"),Array.isArray(t)||(n=t,t=[]);var a={built:!O,defineName:e},r=[t,n,a];n.require=function(e){if(r.splice(2,0,e),Ja[e]){Ja[e].state=3;var t=!1;try{t=l(Ja[e].deps,e)}catch(a){}t&&avalon.error(e+"模块与之前的模块存在循环依赖,请不要直接用script标签引入"+e+"模块")}delete n.require,Ka.apply(null,r)};var i=a.built?"unknown":v();if(i){var o=Ja[i];o&&(o.state=2),n.require(i)}else A.push(n)},Ka.config=f,Ka.define.amd=Ja;var M=f["orig.paths"]=r(),j=f["orig.map"]=r(),S=f.packages=[],H=f["orig.args"]=r();avalon.mix(hn,{paths:function(e){avalon.mix(M,e),f.paths=g(M)},map:function(e){avalon.mix(j,e);var t=g(j,1,1);avalon.each(t,function(e,t){t.val=g(t.val)}),f.map=t},packages:function(e){e=e.concat(S);for(var t,n=r(),a=[],i=0;t=e[i++];){t="string"==typeof t?{name:t}:t;var o=t.name;if(!n[o]){var l=C(t.location||o,t.main||"main");l=l.replace(E,""),a.push(t),n[o]=t.location=l,t.reg=y(o)}}f.packages=a.sort()},urlArgs:function(e){"string"==typeof e&&(e={"*":e}),avalon.mix(H,e),f.urlArgs=g(H,1)},baseUrl:function(e){if(!p(e)){var t=Lt.getElementsByTagName("base")[0];t&&Lt.removeChild(t);var n=Dt.createElement("a");n.href=e,e=n.href,t&&Lt.insertBefore(t,Lt.firstChild)}e.length>3&&(f.baseUrl=e)},shim:function(e){for(var t in e){var n=e[t];Array.isArray(n)&&(n=e[t]={deps:n}),n.exportsFn||!n.exports&&!n.init||(n.exportsFn=b(n))}f.shim=e}});var D=Ka.plugins={domReady:{load:o},js:{load:function(e,t,n){var a=t.url,r=t.urlNoQuery,i=f.shim[e.replace(E,"")];i?Ka(i.deps||[],function(){var e=avalon.slice(arguments);u(a,r,function(){n(i.exportsFn?i.exportsFn.apply(0,e):void 0)})}):u(a,r)}},css:{load:function(e,t,a){var r=t.url;Lt.insertAdjacentHTML("afterBegin",'<link rel="stylesheet" href="'+r+'">'),n("debug: 已成功加载 "+r),a()}},text:{load:function(e,t,a){var r=t.url,i=Ba();i.onload=function(){var e=i.status;e>399&&600>e?avalon.error(r+" 对应资源不存在或没有开启 CORS"):(n("debug: 已成功加载 "+r),a(i.responseText))};var o="_="+(new Date-0),l=-1===r.indexOf("?")?r+"?"+o:r+"&"+o;i.open("GET",l,!0),"withCredentials"in i&&(i.withCredentials=!0),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.send(),n("debug: 正准备加载 "+r)}}};Ka.checkDeps=c;var L=/(\?[^#]*)$/,R=/^callback\d+$/,q=/\/\w+\/\.\./,B=Dt.scripts[Dt.scripts.length-1],P=B.getAttribute("data-main");if(P){hn.baseUrl(P);var F=f.baseUrl;f.baseUrl=F.slice(0,F.lastIndexOf("/")+1),u(F.replace(E,"")+".js")}else{var _=d(B.src);f.baseUrl=_.slice(0,_.lastIndexOf("/")+1)}};var tr,nr=[],ar=function(e){tr=!0;var t=avalon.require;for(t&&t.checkDeps&&(Ja["domReady!"].state=4,t.checkDeps());e=nr.shift();)e(avalon)};"complete"===Dt.readyState?setTimeout(ar):Dt.addEventListener("DOMContentLoaded",ar),e.addEventListener("load",ar),avalon.ready=function(e){tr?e(avalon):nr.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(Dt.body)}),"function"==typeof define&&define.amd&&define("avalon",[],function(){return avalon});var rr=e.avalon;return avalon.noConflict=function(t){return t&&e.avalon===avalon&&(e.avalon=rr),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 r(){return Object.create(null)}function i(){}function o(e){return Function.apply(i,e)}function l(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 s(e){if(e&&"object"==typeof e){var t=e.length,n=Ut.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(an,n.tagName.toLowerCase());zt.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(dn,"\\$&")}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:Yt,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)||"*"===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 p(e,t){var n=this.$events;if(n&&n[e]){t&&(t[2]=e);var a=n[e];if(h(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&&p.call(l,this.$pathname+"."+e,t),p.call(l,"*."+e,t))}else{if(l=this.$up,this.$ups){for(var s in this.$ups)p.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("*")?(p.call(l,u,t),a[1]="*",p.call(l,a.join("."),t)):p.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 xn.collectDependency(a)}if(e=e.$up,!e)break;t=e.$pathname+"."+t}}function h(e,t){if(e){new Date-kn>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(da.render(),i=0;n=r[i++];)if(n.update){var o=M(n);da.queue[o]||(da.queue[o]=1,da.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||qt;var r=t.force||qt,i=t.old,o=i&&i.$accessors||qt,s=new g,c={},u={},f=[],v=[],h={};e.$skipArray&&(h=l(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];hn[y]||(u[y]=!0),"function"==typeof x||x&&x.nodeName&&x.nodeType>0||!r[y]&&("$"===y.charAt(0)||hn[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)):(v.push(y),c[y]=o[y]?o[y]:$(y,x))}c.$model=mn,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 p.call(s,e,[t])})),v.forEach(function(t){var n=i&&i[t],a=s[t]=e[t];a&&"object"==typeof a&&(a.$up=s,a.$pathname=t),p.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&&v(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&&p.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&&t.splice){var a=[0,t.length].concat(e);return t.splice.apply(t,a),t}for(var r in bn)e[r]=bn[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){p.call(e.$up,e.$pathname+".length",[t,n])}),n&&C(e,"$watch",function(){return d.apply(e,arguments)}),Object.defineProperty(e,"$model",mn);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]=Kt("$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-kn>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)+"-"+ ++wn:e.name+"-"+M(t):++wn}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||Kt(),Cn[a]||(Cn[a]=1,Cn.push(e))}function S(e){for(var t=Cn.length,n=t,a=[],r={},i={};e=Cn[--t];){var o=e.type;i[o]?i[o]++:(i[o]=1,a.push(o))}var l=!1;if(a.forEach(function(e){Nn[e]!==i[e]&&(r[e]=1,l=!0)}),t=n,l)for(;e=Cn[--t];)if(null!==e.element){if(r[e.type]&&D(e.element)){Cn.splice(t,1),delete Cn[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 Cn.splice(t,1);Nn=i,kn=new Date}function H(e){delete Cn[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&&!Yt.contains(e.ifRemove)&&Lt===e.parentNode?(e.parentNode&&e.parentNode.removeChild(e),!0):e.msRetain?0:1===e.nodeType?!Yt.contains(e):!avalon.contains(Yt,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 q(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:Sn.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 P(e,t){if(e.offsetWidth<=0){var n=getComputedStyle(e,null);if(qn.test(n.display)){var a={node:e};for(var r in Rn)a[r]=n[r],e.style[r]=Rn[r];t.push(a)}var i=e.parentNode;i&&1===i.nodeType&&P(i,t)}}function F(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 r="unknown",i="",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(_n.test(s))"unknown"===r?(r="variable",i=s):"maybePath"===r?(i=n.pop(),i+="."+s,r="variable"):"variable"===r&&(i+=s);else if(/\w/.test(s))"variable"===r&&(i+=s);else if("."===s)"variable"===r&&i&&(n.push(i),i="",r="maybePath");else if("["===s){if("variable"===r||"maybePath"===r){i&&(n.push(i),i="");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 p=o(["return "+d])();n[c-1]=u+"."+p}catch(v){}}r="maybePath",l=f.i}}else if("]"===s){if(a)return n.i=l+t,V(n,i),n}else Vn.test(s)&&"\r"!==s&&"\n"!==s?"variable"===r&&(V(n,i)&&(r="maybePath"),i=""):(V(n,i),r="unknown",i="")}return V(n,i),n}function V(e,t){return t&&!Pn[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 U(e){e=e.trim();var t=Un.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 Un.put(e,i).concat()}function z(e,t,n){var a=n.filters;"string"==typeof a&&a.trim()&&!n._filters&&(n._filters=X(a.trim()));var r=U(e),i=new Date-0,l=[],s=[],c=[];n.observers=[];for(var u=0,f=t.length;f>u;u++)if(r.length){var d="vm"+i+"_"+u;s.push(d),c.push(t[u]),l.push.apply(l,I(r,t[u],d,n))}n.args=c;var p=n.type,v=t.map(function(e){return String(e.$id).replace(In,"$1")})+e+p,h=zn.get(v);if(h){if("duplex"===p){var m=zn.get(v+"setter");n.setter=m.apply(m,n.args)}return n.getter=h}if(l.length||l.push("fix"+i),"duplex"===p){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=o(s.concat("'use strict';return function(vvv){"+e+" = vvv\n}\n"));zn.put(v+"setter",y),n.setter=y.apply(y,n.args)}if("on"===p){-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=o(s.concat("'use strict';\nvar "+l.join(",\n")+e)),zn.put(v,h)}function W(e){var t=cn.test(e);if(t){var n=rt(e);return 1===n.length?n[0].expr:n.map(function(e){return e.type?"("+e.expr+")":Jn(e.expr)}).join(" + ")}return e}function X(e){return e=e.replace(Wn,"").replace(Xn,function(){return"],|"}).replace(Yn,function(e,t){return"["+Jn(t)}).replace(Gn,function(){return'"],["'}).replace(Zn,function(){return'",'})+"]",o(["return ["+e+"]"])()}function Y(e,t,n){var a=setTimeout(function(){var r=e.innerHTML;clearTimeout(a),r===n?t():Y(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,tn[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){for(var n,a=e.attributes,r={},i=0;n=a[i++];){var o=n.name;if(n.specified&&!ia.test(o)){var l=R(n.name);r[l]=/^on\-[\w-]+$/.test(o)?Qn(e,o,t):q(n.value)}}return r}function Q(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(na)))){var f=a[1],d=a[2]||"",p=i.value;if(aa[f]?(d=f,f="on"):ra[f]&&(d=f,f="attr",u="ms-"+f+"-"+d,n("warning!请改用"+u+"代替"+i.name+"!")),tn[f]){var v=p.replace(ta,""),h=p!==v,m={type:f,param:d,element:e,name:u,expr:v,oneTime:h,priority:(tn[f].priority||10*f.charCodeAt(0))+(Number(d.replace(/\D/g,""))||0)};if("html"===f||"text"===f){var g=at(p).filters;m.expr=m.expr.replace(g,""),m.filters=g.replace(sa,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&&!Kn[e.tagName]&&(ea&&ea(e),et(e,t))}function et(e,t){var n=avalon.slice(e.childNodes);tt(n,t)}function tt(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=lt(i);if(o){var l=i.localName?i.localName.replace(o+":",""):i.nodeName,s=o+":"+R(l);pa.push({library:o,element:i,fullName:s,widget:l,vmodels:t,name:"widget"}),avalon.components[s]&&n(s)}}nt(a,t),a.msHasEvent&&avalon.fireDom(a,"datasetchanged",{bubble:a.msHasEvent});break;case 3:cn.test(a.nodeValue)&&it(a,t,r)}}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)}Q(e,t),o&&setTimeout(function(){o.$fire("ms-scan-end",e)})}}function at(e){if(e.indexOf("|")>0){var t=e.replace(ua,function(e){return Array(e.length+1).join("1")}),n=t.replace(ca,"ᄢ㍄").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(ln,r),-1===n)break;if(t=e.slice(r,n),t&&a.push({expr:t}),r=n+ln.length,n=e.indexOf(sn,r),-1===n)break;t=e.slice(r,n),t&&a.push(at(t,r)),r=n+sn.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(ta,function(){return i.oneTime=!0,""}),i.element=l,i.filters=i.filters.replace(sa,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(Pt,function(a){var r=avalon.duplexHooks[a];r&&"function"==typeof r[n]&&(e=r[n](e,t))}),e}function ut(){for(var e=Na.length-1;e>=0;e--){var t=Na[e];t()===!1&&Na.splice(e,1)}Na.length||clearInterval(ka)}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=Ha.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?Ta:Ea),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 pt(e){return e.replace(/^[\S]/g,function(e){return e.toUpperCase()})}function vt(){}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=Fa.length;r>a;a++){var i=Fa[a];if(i&&i.hasOwnProperty(n)){Fa.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=Kt("$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 _a.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=Kt("$proxy$with"),e}function Ot(e,t,n){var a=e[t];if(a){var r=0===a.$id.indexOf("$proxy$each")?Fa:_a;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);Yt.appendChild(a),t=Xt?getComputedStyle(a,null).display:a.currentStyle.display,Yt.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,qt={},Bt=/[^, ]+/g,Pt=/\w+/g,Ft=/^\[object SVG\w*Element\]$/,_t=/^\[object (?:Window|DOMWindow|global)\]$/,Vt=Object.prototype,It=Vt.hasOwnProperty,Ut=Vt.toString,zt=Array.prototype,Wt=zt.slice,Xt=e.dispatchEvent,Yt=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=0/0;e.VBArray&&(Jt=document.documentMode||(e.XMLHttpRequest?7:6));var Kt=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?Zt[Ut.call(e)]||"object":typeof e},avalon.isFunction=function(e){return"[object Function]"===Ut.call(e)},avalon.isWindow=function(e){return _t.test(Ut.call(e))},avalon.isPlainObject=function(e){return"[object Object]"===Ut.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||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:Bt,subscribers:Rt,version:1.56,ui:{},log:n,slice:function(e,t,n){return Wt.call(e,t,n)},noop:i,error:function(e,t){throw new(t||Error)(e)},oneObject:l,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=Hn[r+":get"]||Hn["@: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=Hn[r+":set"]||Hn["@: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 Qt=avalon.bindingHandlers={},en=avalon.bindingExecutors={},tn=avalon.directives={};avalon.directive=function(e,t){return Qt[e]=t.init=t.init||i,en[e]=t.update=t.update||i,tn[e]=t};var nn=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 an="http://www.w3.org/2000/svg",rn=Ht.createElementNS(an,"svg");rn.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',Ft.test(rn.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 on=avalon.eventHooks;"onmouseenter"in Yt||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){on[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]&&!on.animationend&&(on.animationend={type:n})}),void 0===Ht.onmousewheel&&(on.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=u;var ln,sn,cn,un,fn,dn=/[-.*+?^${}()|[\]\/\\]/g,pn={interpolate:function(e){if(ln=e[0],sn=e[1],ln===sn){throw new SyntaxError("openTag!==closeTag")}u.openTag=ln,u.closeTag=sn;var t=f(ln),n=f(sn);cn=new RegExp(t+"(.*?)"+n),un=new RegExp(t+"(.*?)"+n,"g"),fn=new RegExp(t+".*?"+n+"|\\sms-")}};u.plugins=pn,u.plugins.interpolate(["{{","}}"]),u.async=!0,u.debug=!0,u.paths={},u.shim={},u.maxRepeatSize=100;var vn=avalon.vmodels={};avalon.define=function(e){var t=e.$id;t||n("warning: vm必须指定$id");var a=m(e);return a.$id=t,vn[t]=a};var hn=l("$id,$watch,$fire,$events,$model,$skipArray,$active,$pathname,$up,$ups,$track,$accessors"),mn={get:function(){return k(this)},set:i,enumerable:!1,configurable:!0},gn=["push","pop","shift","unshift","splice"],yn=Array.prototype,bn={notify:function(){p.call(this.$up,this.$pathname)},set:function(e,t){if(e>>>0===e&&this[e]!==t){if(e>this.length)throw Error(e+"set方法的第一个参数不能大于原数组长度");p.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])&&($n.call(this.$track,t,1),$n.call(this,t,1));else if("function"==typeof e)for(t=this.length-1;t>=0;t--){var n=this[t];e(n,t)&&($n.call(this.$track,t,1),$n.call(this,t,1))}else $n.call(this.$track,0,this.length),$n.call(this,0,this.length);Xt||(this.$model=k(this)),this.notify(),this._.length=this.length},clear:function(){return this.removeAll()}},$n=yn.splice;gn.forEach(function(e){var t=yn[e];bn[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),Xt||(this.$model=k(this)),this.notify(),this._.length=this.length,i}}),"sort,reverse".replace(Bt,function(e){bn[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&&(N(this.$track,r),Xt||(this.$model=k(this)),this.notify()),this}});var xn=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||tn[e.type].update||i,e.update=function(){var t=!1;e.getter||(t=!0,xn.begin({callback:function(t){E(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=Ya.$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=O(e.proxies||[],l),c=a.$track||("array"===l?A(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=ln+(e.oneTime?"::":"")+e.expr+sn)}finally{t&&xn.end()}},e.update()};var wn=0,Cn=avalon.$$subscribers=[],kn=new Date,Nn={},An=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){An[e]=An.g});var Tn=/<([\w:]+)/,En=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,On=l(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),Mn=Ht.createElement("script"),jn=/<|&#?\w+;/;avalon.parseHTML=function(e){var t=Gt.cloneNode(!1);if("string"!=typeof e)return t;if(!jn.test(e))return t.appendChild(Ht.createTextNode(e)),t;e=e.replace(En,"<$1></$2>").trim();var n,a=(Tn.exec(e)||["",""])[1].toLowerCase(),r=An[a]||An._default;r.innerHTML=e;var i=r.getElementsByTagName("script");if(i.length)for(var o,l=0;o=i[l++];)if(On[o.type]){var s=Mn.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(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 q(n);case 0:var a={};return zt.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=R(e.slice(5)),a[e]=q(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;
2
+ return avalon(e||Yt)},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=Bn[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}}),Yt.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],q(t);case 0:var a=r();for(e in n)a[e]=q(n[e]);return a}});var Sn=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/;avalon.parseJSON=JSON.parse,avalon.fireDom=function(e,t,n){var a=Ht.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=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 Hn=avalon.cssHooks=r(),Dn=["","-webkit-","-moz-","-ms-"],Ln={"float":"cssFloat"};avalon.cssNumber=l("animationIterationCount,animationIterationCount,columnCount,order,flex,flexGrow,flexShrink,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(Ln[e])return Ln[e];t=t||Yt.style;for(var a=0,r=Dn.length;r>a;a++)if(n=R(Dn[a]+e),n in t)return Ln[e]=n;return null},Hn["@:set"]=function(e,t,n){e.style[t]=n},Hn["@: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},Hn["opacity:get"]=function(e){var t=Hn["@:get"](e,"opacity");return""===t?"1":t},"top,left".replace(Bt,function(e){Hn[e+":get"]=function(t){var n=Hn["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Rn={position:"absolute",visibility:"hidden",display:"block"},qn=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(Bt,function(e){var t=e.toLowerCase(),n="client"+e,a="scroll"+e,r="offset"+e;Hn[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)},Hn[t+"&get"]=function(e){var n=[];P(e,n);for(var a,r=Hn[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 Hn[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return Hn[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return Hn[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 Bn={"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)}},Pn={},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){Pn[e]=!0});var _n=/[a-z_$]/i,Vn=/[\s\uFEFF\xA0]/,In=/(\$proxy\$[a-z]+)\d+$/,Un=new nn(218),zn=new nn(128);avalon.normalizeExpr=W,avalon.parseExprProxy=z;var Wn=/\)\s*$/,Xn=/\)\s*\|/g,Yn=/\|\s*([$\w]+)/g,Gn=/"\s*\["/g,Zn=/"\s*\(/g,Jn=JSON.stringify;avalon.scan=function(e,t){e=e||Yt;var n=t?[].concat(t):[];nt(e,n)};var Kn=l("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),Qn=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]},ea=Jt&&e.MutationObserver?function(e){for(var t,n=e.firstChild;n;){var a=n.nextSibling;3===n.nodeType?t?(t.nodeValue+=n.nodeValue,e.removeChild(n)):t=n:t=null,n=a}}:0,ta=/^\s*::/,na=/ms-(\w+)-?(.*)/,aa=l("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),ra=l("value,title,alt,checked,selected,disabled,readonly,enabled,href,src"),ia=/^(ms-\S+|data-\S+|on[a-z]+|id|style|class)$/,oa=/^if|widget|repeat$/,la=/^each|with|html|include$/,sa=/\|\s*html(?:\b|$)/,ca=/\|\|/g,ua=/(['"])(\\\1|.)+?\1/g,fa=function(){this.queue=[]};fa.prototype={render:function(e){if(!this.locked){this.locked=e?Yt.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 da=new fa,pa=[],va=[],ha={$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({},ha,n));for(var a,r=0;a=pa[r];r++)t===a.fullName&&(pa.splice(r,1),r--,function(n,a,r,i){if(!avalon.contains(Ht,r)||r.msResolved)return void avalon.Array.remove(pa,n);var o=1,l=n.library,s=avalon.libraries[l]||ha;if(!r.getAttribute("ms-attr-identifier")){var c=K(r,n.vmodels),u=ot(n.vmodels,c.config||n.fullName),f=c.$id||c.identifier||Kt(i);delete c.config,delete c.$id,delete c.identifier;var d={},p=avalon.components[a.$extend];p?(avalon.mix(!0,d,p),d=p.$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 v=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")||v;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.children[0]||r.firstChild;if(h){r.parentNode.replaceChild(E,r),E.msResolved=1;var O=r.style.cssText,M=r.className;r=n.element=E,r.style.cssText+=";"+O,M&&avalon(r).addClass(M)}m&&m.appendChild(r),avalon.fireDom(r,"datasetchanged",{library:l,vm:y,childReady:1});var H=0,D=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&&(H++,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)},H?Math.max(17*H,100):17);avalon.unbind(r,"datasetchanged",D),n.rollback=function(){try{y.$dispose(y,r),s.$dispose(y,r)}catch(e){}delete avalon.vmodels[y.$id]},j(n,va),e.chrome&&r.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(S)})}});if(nt(r,[y].concat(n.vmodels)),avalon.vmodels[y.$id]=y,r.childNodes.length)var L=setTimeout(function(){clearTimeout(L),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.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 ma=["autofocus,autoplay,async,allowTransparency,checked,controls","declare,disabled,defer,defaultChecked,defaultSelected","contentEditable,isMap,loop,multiple,noHref,noResize,noShade","open,readOnly,selected"].join(","),ga={};ma.replace(Bt,function(e){ga[e.toLowerCase()]=e});var ya={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"},ba=["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan","dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight","rowSpan,tabIndex,useMap,vSpace,valueType,vAlign"].join(",");ba.replace(Bt,function(e){ya[e.toLowerCase()]=e});var $a=avalon.directive("attr",{init:function(e){if(e.expr=W(e.expr.trim()),"include"===e.type){var t=e.element;dt(t,e),e.includeRendered=Qn(t,"data-include-rendered",e.vmodels),e.includeLoaded=Qn(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||Yt.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;!Xt&&ya[a]&&(a=ya[a]);var l=ga[a];if("boolean"==typeof n[l]&&(n[l]=!!t,t||(o=!0)),o)return n.removeAttribute(a);var s=Ft.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){tn[e]=$a}),avalon.directive("class",{init:function(e){var t=e.param,a=e.type;if(!t||isFinite(t)?(e.param="",tn.effect.init(e)):(n("ms-"+a+'-xxx="yyy"这种用法已经过时,请使用ms-'+a+'="xxx:yyy"'),e.expr="["+Jn(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){tn[e]=tn["class"]}),avalon.directive("css",{init:tn.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 xa=/^(?:checkbox|radio)$/,wa=/^(?:radio|checked)$/,Ca=/^(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(){p=!0}function o(){p=!1}var s=e.element,c=e.vmodels;e.changed=Qn(s,"data-duplex-changed",c)||i;var u=[],f=l("string,number,boolean,checked");"radio"===s.type&&""===e.param&&(e.param="checked"),e.param.replace(Pt,function(a){xa.test(s.type)&&wa.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()}},p=!1,v=function(){var t=s.value;if(!p&&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",v);break;case"input":d("input",v),d("keyup",v),Jt||(d("compositionstart",r),d("compositionend",o),d("DOMAutoComplete",v));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||Ca.test(s.type)||("hidden"!==s.type&&(d("focus",function(){s.msFocus=!0}),d("blur",function(){s.msFocus=!1})),s.avalonSetter=v,Aa(function(){if(Yt.contains(s))s.msFocus||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.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: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 ka,Na=[];avalon.tick=function(e){1===Na.push(e)&&(ka=setInterval(ut,60))};var Aa=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){Aa=avalon.tick}},avalon.directive("effect",{priority:5,init:function(e){var t,n,a=e.expr,r=a.replace(un,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=cn.test(a)?W(t):Jn(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&&(Oa||Ma)){var l=r[ja]||i[ja];l&&"0s"!==l&&(a.setAttribute("data-effect-driver","t"),o=!0),o||(l=r[Sa]||i[Sa],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 Ta,Ea,Oa=!1,Ma=!1,ja=avalon.cssName("transition-duration"),Sa=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&&(Oa=!0,Ta=t),n={AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"};var i;for(a in n)if(e[a]){i=n[a];break}"string"==typeof i&&(Oa=!0,Ea=i)};var Ha=[],Da=new fa;vt.prototype={contrustor:vt,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"+pt(o)),mt(a,"before"+pt(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"+pt(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),Da.render(!0),Da.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,Ha.unshift(this)>100&&Ha.pop()}};var La=function(e,t){var n=Wt.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:La,append:function(e,t,n,a){return La(e,1,function(){t.appendChild(e)},n,a)},before:function(e,t,n,a){return La(e,1,function(){t.parentNode.insertBefore(e,t)},n,a)},remove:function(e,t,n,a){return La(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=Kt("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),Q(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 Ra=function(){return new e.XMLHttpRequest},qa=avalon.templateCache={};avalon.directive("include",{init:tn.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 p=c.apply(u,[n].concat(r));"string"==typeof p&&(n=p)}i&&Y(u,function(){i.call(u)},0/0);var v=t.includeLastID||"_default";t.includeLastID=e;var h=l&&l[v]||Ht.createElement(a.tagName||t._element.tagName);o&&(h.className=o,u.insertBefore(h,t.start)),(l||{})[v]=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 qa[e])avalon.nextTick(function(){d(qa[e])});else if(Array.isArray(qa[e]))qa[e].push(d);else{var p=Ra();p.onload=function(){for(var t,n=p.responseText,a=0;t=qa[e][a++];)t(n);qa[e]=n},p.onerror=function(){n("ms-include load ["+e+"] error")},qa[e]=[d],p.open("GET",e,!0),"withCredentials"in p&&(p.withCredentials=!0),p.setRequestHeader("X-Requested-With","XMLHttpRequest"),p.send(null)}else{var v=e&&1===e.nodeType?e:Ht.getElementById(e);v&&avalon.nextTick(function(){d(v.value||v.innerText||v.innerHTML)})}}});var Ba=/\(([^)]*)\)/,Pa=avalon.directive("on",{priority:3e3,init:function(e){var t=e.expr;e.type="on";var n=e.param.replace(/-\d+$/,"");if("function"==typeof Pa[n+"Hook"]&&Pa[n+"Hook"](e),t.indexOf("(")>0&&t.indexOf(")")>-1){var a=(t.match(Ba)||["",""])[1].trim();(""===a||"$event"===a)&&(t=t.replace(Ba,""))}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=Qn(n,"data-with-sorted",e.vmodels);var a=Qn(n,"data-"+t+"-rendered",e.vmodels),r=Kt(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 p=[],v=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)p.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,v,w,p,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(v,y),p.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}(p[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){tn[e]=avalon.mix({},tn.repeat,{priority:1400})});var Fa=[],_a=[];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 Va=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,Ia=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,Ua=/<\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,Xa=/([^\#-~| |!])/g,Ya=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(Va,"").replace(Ua,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(Ia," ").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(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+)\)\/$/;Ya.date=function(t,n){var a,r,i=Ya.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],p=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 v=p.setFullYear,h=p.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 v=p.setUTCFullYear,h=p.setUTCHours,n&&(m=e(n+a),g=e(n+r)),""}),d[3]-=m,d[4]-=g,v.apply(p,d.slice(0,3)),h.apply(p,d.slice(3)),t=p}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,Ya.date.locate=c};var Ga=avalon.modules={"domReady!":{exports:avalon,state:3},avalon:{exports:avalon,state:4}};Ga.exports=Ga.avalon;var Za,Ja=e.require,Ka=e.define;pn.loader=function(t){var n=Za&&t;e.require=n?Za:Ja,e.define=n?Za.define:Ka},new function(){function t(e,t){var a="js";e=e.replace(/^(\w+)\!/,function(e,t){return a=t,""}),"ready"===a&&(n("debug: ready!已经被废弃,请使用domReady!"),a="domReady");var r="";e=e.replace(L,function(e){return r=e,""});var i="."+a,o=/js|css/.test(i)?i:"";e=e.replace(/\.[a-z0-9]+$/g,function(e){return e===i?(o=e,""):e});var l=avalon.mix({query:r,ext:o,res:a,name:e,toUrl:m},t);return l.toUrl(e),l}function o(e){var t=e.name,n=e.res,a=Ga[t],r=t&&e.urlNoQuery;if(a&&a.state>=1)return t;if(a=Ga[r],a&&a.state>=3)return Za(a.deps||[],a.factory,r),r;if(t&&!a){a=Ga[r]={id:r,state:1};var i=function(r){D[n]=r,r.load(t,e,function(e){arguments.length&&void 0!==e&&(a.exports=e),a.state=4,c()})};D[n]?i(D[n]):Za([n],i)}return t?r:n+"!"}function l(e,t){for(var n,a=0;n=e[a++];)if(4!==Ga[n].state&&(n===t||l(Ga[n].deps,t)))return!0}function s(e,t){var a=d(e.src);return e.onload=e.onerror=null,t?(setTimeout(function(){Dt.removeChild(e),e=null}),void n("debug: 加载 "+a+" 失败"+t+" "+!Ga[a].state)):!0}function c(){e:for(var e,t=N.length;e=N[--t];){var n=Ga[e],a=n.deps;if(a){for(var r,i=0;r=a[i];i++)if(4!==Object(Ga[r]).state)continue e;4!==n.state&&(N.splice(t,1),h(n.id,n.deps,n.factory),c())
3
+ }}}function f(e,t,a){var r=Ht.createElement("script");r.className=Rt,r.onload=function(){var r=A.pop();r&&r.require(t),a&&a(),n("debug: 已成功加载 "+e),t&&N.push(t),c()},r.onerror=function(){s(r,!0)},Dt.insertBefore(r,Dt.firstChild),r.src=e,n("debug: 正准备加载 "+e)}function d(e){return(e||"").replace(L,"")}function p(e){return/^(?:[a-z]+:)?\/\//i.test(String(e))}function v(){var e;try{a.b.c()}catch(t){e=t.stack}if(e)return e=e.split(/[@ ]/g).pop(),e="("===e[0]?e.slice(1,-1):e.replace(/\s/,""),d(e.replace(/(:\d+)?:\d+$/i,""));for(var n,r=Dt.getElementsByTagName("script"),i=r.length;n=r[--i];)if(n.className===Rt&&"interactive"===n.readyState){var o=n.src;return n.className=d(o)}}function h(t,a,i){var o=Object(Ga[t]);o.state=4;for(var l,s=0,c=[];l=a[s++];)if("exports"===l){var u=o.exports||(o.exports=r());c.push(u)}else c.push(Ga[l].exports);try{var f=i.apply(e,c)}catch(d){n("执行["+t+"]模块的factory抛错: ",d)}return void 0!==f&&(o.exports=f),R.test(t)&&delete Ga[t],delete o.factory,f}function m(e){0===e.indexOf(this.res+"!")&&(e=e.slice(this.res.length+1));var t=e,n=0,a=this.baseUrl,r=this.parentUrl||a;x(e,u.paths,function(e,a){t=t.replace(a,e),n=1}),n||x(e,u.packages,function(e,n,a){t=t.replace(a.name,a.location)}),this.mapUrl&&x(this.mapUrl,u.map,function(e){x(t,e,function(e,n){t=t.replace(n,e),r=a})});var i=this.ext;i&&n&&t.slice(-i.length)===i&&(t=t.slice(0,-i.length)),p(t)||(r=this.built||/^\w/.test(t)?a:r,t=C(r,t));var o=t+i;return t=o+this.query,o=t.replace(L,function(e){return this.query=e,""}),x(e,u.urlArgs,function(e){t+=(-1===t.indexOf("?")?"?":"&")+e}),this.url=t,this.urlNoQuery=o}function g(e,t,n){var a=$(e,t,n);return a.sort(w),a}function y(e){return new RegExp("^"+e+"(/|$)")}function b(t){return function(){var n;return t.init&&(n=t.init.apply(e,arguments)),n||t.exports&&k(t.exports)}}function $(e,t,n){var a=[];for(var r in e){var i={name:r,val:e[r]};a.push(i),i.reg="*"===r&&t?/^/:y(r),n&&"*"!==r&&(i.reg=new RegExp("/"+r.replace(/^\//,"")+"(/|$)"))}return a}function x(e,t,n){t=t||[];for(var a,r=0;a=t[r++];)if(a.reg.test(e))return n(a.val,a.name,a),!1}function w(e,t){var n=e.name,a=t.name;return"*"===a?-1:"*"===n?1:a.length-n.length}function C(e,t){if("/"!==e.charAt(e.length-1)&&(e+="/"),"./"===t.slice(0,2))return e+t.slice(2);if(".."===t.slice(0,2)){for(e+=t;q.test(e);)e=e.replace(q,"");return e}return"/"===t.slice(0,1)?e+t.slice(1):e+t}function k(t){if(!t)return t;var n=e;return t.split(".").forEach(function(e){n=n[e]}),n}var N=[],A=[],T=/\.js$/i,E=[],O=!1;Za=avalon.require=function(e,n,a,l){if(O){Array.isArray(e)||avalon.error("require方法的第一个参数应为数组 "+e);var s=[],f=r(),d=a||"callback"+setTimeout("1");l=l||r(),l.baseUrl=u.baseUrl;var p=!!l.built;if(a&&(l.parentUrl=a.substr(0,a.lastIndexOf("/")),l.mapUrl=a.replace(T,"")),p){var v=t(l.defineName,l);d=v.urlNoQuery}else e.forEach(function(e){var n=t(e,l),a=o(n);a&&(f[a]||(s.push(a),f[a]="司徒正美"))});var h=Ga[d];h&&4===h.state||(Ga[d]={id:d,deps:p?e.concat():s,factory:n||i,state:3}),h||N.push(d),c()}else if(E.push(avalon.slice(arguments)),arguments.length<=2){O=!0;for(var m,g=E.splice(0,E.length);m=g.shift();)Za.apply(null,m)}},Za.define=function(e,t,n){"string"!=typeof e&&(n=t,t=e,e="anonymous"),Array.isArray(t)||(n=t,t=[]);var a={built:!O,defineName:e},r=[t,n,a];n.require=function(e){if(r.splice(2,0,e),Ga[e]){Ga[e].state=3;var t=!1;try{t=l(Ga[e].deps,e)}catch(a){}t&&avalon.error(e+"模块与之前的模块存在循环依赖,请不要直接用script标签引入"+e+"模块")}delete n.require,Za.apply(null,r)};var i=a.built?"unknown":v();if(i){var o=Ga[i];o&&(o.state=2),n.require(i)}else A.push(n)},Za.config=u,Za.define.amd=Ga;var M=u["orig.paths"]=r(),j=u["orig.map"]=r(),S=u.packages=[],H=u["orig.args"]=r();avalon.mix(pn,{paths:function(e){avalon.mix(M,e),u.paths=g(M)},map:function(e){avalon.mix(j,e);var t=g(j,1,1);avalon.each(t,function(e,t){t.val=g(t.val)}),u.map=t},packages:function(e){e=e.concat(S);for(var t,n=r(),a=[],i=0;t=e[i++];){t="string"==typeof t?{name:t}:t;var o=t.name;if(!n[o]){var l=C(t.location||o,t.main||"main");l=l.replace(T,""),a.push(t),n[o]=t.location=l,t.reg=y(o)}}u.packages=a.sort()},urlArgs:function(e){"string"==typeof e&&(e={"*":e}),avalon.mix(H,e),u.urlArgs=g(H,1)},baseUrl:function(e){if(!p(e)){var t=Dt.getElementsByTagName("base")[0];t&&Dt.removeChild(t);var n=Ht.createElement("a");n.href=e,e=n.href,t&&Dt.insertBefore(t,Dt.firstChild)}e.length>3&&(u.baseUrl=e)},shim:function(e){for(var t in e){var n=e[t];Array.isArray(n)&&(n=e[t]={deps:n}),n.exportsFn||!n.exports&&!n.init||(n.exportsFn=b(n))}u.shim=e}});var D=Za.plugins={domReady:{load:i},js:{load:function(e,t,n){var a=t.url,r=t.urlNoQuery,i=u.shim[e.replace(T,"")];i?Za(i.deps||[],function(){var e=avalon.slice(arguments);f(a,r,function(){n(i.exportsFn?i.exportsFn.apply(0,e):void 0)})}):f(a,r)}},css:{load:function(e,t,a){var r=t.url;Dt.insertAdjacentHTML("afterBegin",'<link rel="stylesheet" href="'+r+'">'),n("debug: 已成功加载 "+r),a()}},text:{load:function(e,t,a){var r=t.url,i=Ra();i.onload=function(){var e=i.status;e>399&&600>e?avalon.error(r+" 对应资源不存在或没有开启 CORS"):(n("debug: 已成功加载 "+r),a(i.responseText))};var o="_="+(new Date-0),l=-1===r.indexOf("?")?r+"?"+o:r+"&"+o;i.open("GET",l,!0),"withCredentials"in i&&(i.withCredentials=!0),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.send(),n("debug: 正准备加载 "+r)}}};Za.checkDeps=c;var L=/(\?[^#]*)$/,R=/^callback\d+$/,q=/\/\w+\/\.\./,B=Ht.scripts[Ht.scripts.length-1],P=B.getAttribute("data-main");if(P){pn.baseUrl(P);var F=u.baseUrl;u.baseUrl=F.slice(0,F.lastIndexOf("/")+1),f(F.replace(T,"")+".js")}else{var _=d(B.src);u.baseUrl=_.slice(0,_.lastIndexOf("/")+1)}};var Qa,er=[],tr=function(e){Qa=!0;var t=avalon.require;for(t&&t.checkDeps&&(Ga["domReady!"].state=4,t.checkDeps());e=er.shift();)e(avalon)};"complete"===Ht.readyState?setTimeout(tr):Ht.addEventListener("DOMContentLoaded",tr),e.addEventListener("load",tr),avalon.ready=function(e){Qa?e(avalon):er.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(Ht.body)}),"function"==typeof define&&define.amd&&define("avalon",[],function(){return avalon});var nr=e.avalon;return avalon.noConflict=function(t){return t&&e.avalon===avalon&&(e.avalon=nr),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.modern.shim.js 1.5.5 built in 2015.10.30
8
+ avalon.modern.shim.js 1.5.6 built in 2015.12.1
9
9
  support IE10+ 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 = Date.now()
37
38
  //http://stackoverflow.com/questions/7290086/javascript-use-strict-and-nicks-find-global-function
38
39
  var DOC = window.document
@@ -46,6 +47,7 @@ function log() {
46
47
  console.log.apply(console, arguments)
47
48
  }
48
49
  }
50
+
49
51
  /**
50
52
  * Creates a new object without a prototype. This object is useful for lookup without having to
51
53
  * guard against prototypically inherited properties via hasOwnProperty.
@@ -61,11 +63,9 @@ function createMap() {
61
63
 
62
64
  var subscribers = "$" + expose
63
65
 
64
- var stopRepeatAssign = false
65
66
  var nullObject = {} //作用类似于noop,只用于代码防御,千万不要在它上面添加属性
66
67
  var rword = /[^, ]+/g //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach
67
68
  var rw20g = /\w+/g
68
- var rcomplexType = /^(?:object|array)$/
69
69
  var rsvg = /^\[object SVG\w*Element\]$/
70
70
  var rwindow = /^\[object (?:Window|DOMWindow|global)\]$/
71
71
  var oproto = Object.prototype
@@ -81,10 +81,16 @@ var class2type = {}
81
81
  "Boolean Number String Function Array Date RegExp Object Error".replace(rword, function (name) {
82
82
  class2type["[object " + name + "]"] = name.toLowerCase()
83
83
  })
84
- function scpCompile(array){
85
- return Function.apply(noop,array)
84
+
85
+ var IEVersion = NaN
86
+ if (window.VBArray) {
87
+ IEVersion = document.documentMode || (window.XMLHttpRequest ? 7 : 6)
86
88
  }
89
+
87
90
  function noop(){}
91
+ function scpCompile(array){
92
+ return Function.apply(noop, array)
93
+ }
88
94
 
89
95
  function oneObject(array, val) {
90
96
  if (typeof array === "string") {
@@ -103,21 +109,11 @@ var generateID = function (prefix) {
103
109
  prefix = prefix || "avalon"
104
110
  return String(Math.random() + Math.random()).replace(/\d\.\d{4}/, prefix)
105
111
  }
106
- function IE() {
107
- if (window.VBArray) {
108
- var mode = document.documentMode
109
- return mode ? mode : window.XMLHttpRequest ? 7 : 6
110
- } else {
111
- return NaN
112
- }
113
- }
114
- var IEVersion = IE()
115
112
 
116
113
  avalon = function (el) { //创建jQuery式的无new 实例化结构
117
114
  return new avalon.init(el)
118
115
  }
119
116
 
120
-
121
117
  /*视浏览器情况采用最快的异步回调*/
122
118
  avalon.nextTick = new function () {// jshint ignore:line
123
119
  var tickImmediate = window.setImmediate
@@ -151,9 +147,11 @@ avalon.nextTick = new function () {// jshint ignore:line
151
147
  setTimeout(fn, 4)
152
148
  }
153
149
  }// jshint ignore:line
150
+
154
151
  /*********************************************************************
155
152
  * avalon的静态方法定义区 *
156
153
  **********************************************************************/
154
+
157
155
  avalon.init = function (el) {
158
156
  this[0] = this.element = el
159
157
  }
@@ -169,18 +167,15 @@ avalon.type = function (obj) { //取得目标的类型
169
167
  typeof obj
170
168
  }
171
169
 
172
- var isFunction = function (fn) {
170
+ avalon.isFunction = function (fn) {
173
171
  return serialize.call(fn) === "[object Function]"
174
172
  }
175
173
 
176
- avalon.isFunction = isFunction
177
-
178
174
  avalon.isWindow = function (obj) {
179
175
  return rwindow.test(serialize.call(obj))
180
176
  }
181
177
 
182
178
  /*判定是否是一个朴素的javascript对象(Object),不是DOM对象,不是BOM对象,不是自定义类的实例*/
183
-
184
179
  avalon.isPlainObject = function (obj) {
185
180
  // 简单的 typeof obj === "object"检测,会致使用isPlainObject(window)在opera下通不过
186
181
  return serialize.call(obj) === "[object Object]" && Object.getPrototypeOf(obj) === oproto
@@ -202,7 +197,7 @@ avalon.mix = avalon.fn.mix = function () {
202
197
  }
203
198
 
204
199
  //确保接受方为一个复杂的数据类型
205
- if (typeof target !== "object" && !isFunction(target)) {
200
+ if (typeof target !== "object" && !avalon.isFunction(target)) {
206
201
  target = {}
207
202
  }
208
203
 
@@ -242,14 +237,10 @@ avalon.mix = avalon.fn.mix = function () {
242
237
  return target
243
238
  }
244
239
 
245
- function _number(a, len) { //用于模拟slice, splice的效果
246
- a = Math.floor(a) || 0
247
- return a < 0 ? Math.max(len + a, 0) : Math.min(a, len);
248
- }
249
240
  avalon.mix({
250
241
  rword: rword,
251
242
  subscribers: subscribers,
252
- version: 1.55,
243
+ version: 1.56,
253
244
  ui: {},
254
245
  log: log,
255
246
  slice: function (nodes, start, end) {
@@ -397,9 +388,9 @@ var directives = avalon.directives = {}
397
388
  avalon.directive = function (name, obj) {
398
389
  bindingHandlers[name] = obj.init = (obj.init || noop)
399
390
  bindingExecutors[name] = obj.update = (obj.update || noop)
400
-
401
391
  return directives[name] = obj
402
392
  }
393
+
403
394
  /*判定是否类数组,如节点集合,纯数组,arguments与拥有非负整数的length属性的纯JS对象*/
404
395
  function isArrayLike(obj) {
405
396
  if (obj && typeof obj === "object") {
@@ -414,7 +405,6 @@ function isArrayLike(obj) {
414
405
  return false
415
406
  }
416
407
 
417
-
418
408
  // https://github.com/rsms/js-lru
419
409
  var Cache = new function() {// jshint ignore:line
420
410
  function LRU(maxLength) {
@@ -492,6 +482,7 @@ var Cache = new function() {// jshint ignore:line
492
482
  /*********************************************************************
493
483
  * DOM 底层补丁 *
494
484
  **********************************************************************/
485
+
495
486
  //safari5+是把contains方法放在Element.prototype上而不是Node.prototype
496
487
  if (!DOC.contains) {
497
488
  Node.prototype.contains = function (arg) {
@@ -632,6 +623,7 @@ if (DOC.onmousewheel === void 0) {
632
623
  }
633
624
  }
634
625
  }
626
+
635
627
  /*********************************************************************
636
628
  * 配置系统 *
637
629
  **********************************************************************/
@@ -651,6 +643,8 @@ function kernel(settings) {
651
643
  }
652
644
  return this
653
645
  }
646
+ avalon.config = kernel
647
+
654
648
  var openTag, closeTag, rexpr, rexprg, rbind, rregexp = /[-.*+?^${}()|[\]\/\\]/g
655
649
 
656
650
  function escapeRegExp(target) {
@@ -681,18 +675,20 @@ var plugins = {
681
675
  rbind = new RegExp(o + ".*?" + c + "|\\sms-")
682
676
  }
683
677
  }
684
- kernel.async =true
685
- kernel.debug = true
686
678
  kernel.plugins = plugins
687
679
  kernel.plugins['interpolate'](["{{", "}}"])
680
+
681
+ kernel.async =true
682
+ kernel.debug = true
688
683
  kernel.paths = {}
689
684
  kernel.shim = {}
690
685
  kernel.maxRepeatSize = 100
691
- avalon.config = kernel
686
+
692
687
  function $watch(expr, binding) {
693
688
  var $events = this.$events || (this.$events = {})
694
689
 
695
690
  var queue = $events[expr] || ($events[expr] = [])
691
+
696
692
  if (typeof binding === "function") {
697
693
  var backup = binding
698
694
  backup.uniqueNumber = Math.random()
@@ -708,7 +704,7 @@ function $watch(expr, binding) {
708
704
  }
709
705
 
710
706
  if (!binding.update) {
711
- if (/\w\.*\B/.test(expr)) {
707
+ if (/\w\.*\B/.test(expr) || expr === "*") {
712
708
  binding.getter = noop
713
709
  var host = this
714
710
  binding.update = function () {
@@ -741,6 +737,14 @@ function $emit(key, args) {
741
737
  }
742
738
  var arr = event[key]
743
739
  notifySubscribers(arr, args)
740
+ if (args && event["*"] && !/\./.test(key)) {
741
+ for (var sub, k = 0; sub = event["*"][k++]; ) {
742
+ try {
743
+ sub.handler.apply(this, args)
744
+ } catch (e) {
745
+ }
746
+ }
747
+ }
744
748
  var parent = this.$up
745
749
  if (parent) {
746
750
  if (this.$pathname) {
@@ -751,10 +755,10 @@ function $emit(key, args) {
751
755
  }
752
756
  } else {
753
757
  parent = this.$up
754
-
755
- if(this.$ups ){
756
- for(var i in this.$ups){
757
- $emit.call(this.$ups[i], i+"."+key, args)//以确切的值往上冒泡
758
+
759
+ if (this.$ups) {
760
+ for (var i in this.$ups) {
761
+ $emit.call(this.$ups[i], i + "." + key, args)//以确切的值往上冒泡
758
762
  }
759
763
  return
760
764
  }
@@ -775,7 +779,6 @@ function $emit(key, args) {
775
779
  }
776
780
  }
777
781
 
778
-
779
782
  function collectDependency(el, key) {
780
783
  do {
781
784
  if (el.$watch) {
@@ -794,7 +797,6 @@ function collectDependency(el, key) {
794
797
  } while (true)
795
798
  }
796
799
 
797
-
798
800
  function notifySubscribers(subs, args) {
799
801
  if (!subs)
800
802
  return
@@ -835,6 +837,7 @@ function notifySubscribers(subs, args) {
835
837
  sub.update()
836
838
  }
837
839
  }
840
+
838
841
  //avalon最核心的方法的两个方法之一(另一个是avalon.scan),返回一个ViewModel(VM)
839
842
  var VMODELS = avalon.vmodels = {} //所有vmodel都储存在这里
840
843
  avalon.define = function (source) {
@@ -914,7 +917,6 @@ function observeObject(source, options) {
914
917
  }
915
918
  }
916
919
 
917
-
918
920
  for (name in source) {
919
921
  var value = source[name]
920
922
  if (!$$skipArray[name])
@@ -954,7 +956,6 @@ function observeObject(source, options) {
954
956
  }
955
957
  }
956
958
 
957
-
958
959
  accessors["$model"] = $modelDescriptor
959
960
  $vmodel = Object.defineProperties($vmodel, accessors, source)
960
961
  function trackBy(name) {
@@ -1007,6 +1008,7 @@ function observeObject(source, options) {
1007
1008
  $vmodel.$active = true
1008
1009
  return $vmodel
1009
1010
  }
1011
+
1010
1012
  /*
1011
1013
  新的VM拥有如下私有属性
1012
1014
  $id: vm.id
@@ -1094,7 +1096,7 @@ function observe(obj, old, hasReturn, watch) {
1094
1096
  }
1095
1097
 
1096
1098
  function observeArray(array, old, watch) {
1097
- if (old) {
1099
+ if (old && old.splice) {
1098
1100
  var args = [0, old.length].concat(array)
1099
1101
  old.splice.apply(old, args)
1100
1102
  return old
@@ -1121,7 +1123,6 @@ function observeArray(array, old, watch) {
1121
1123
  })
1122
1124
  }
1123
1125
 
1124
-
1125
1126
  Object.defineProperty(array, "$model", $modelDescriptor)
1126
1127
 
1127
1128
  for (var j = 0, n = array.length; j < n; j++) {
@@ -1176,7 +1177,6 @@ var $modelDescriptor = {
1176
1177
  configurable: true
1177
1178
  }
1178
1179
 
1179
-
1180
1180
  /*********************************************************************
1181
1181
  * 监控数组(与ms-each, ms-repeat配合使用) *
1182
1182
  **********************************************************************/
@@ -1253,6 +1253,7 @@ var newProto = {
1253
1253
  return this.removeAll()
1254
1254
  }
1255
1255
  }
1256
+
1256
1257
  var _splice = arrayProto.splice
1257
1258
  arrayMethods.forEach(function (method) {
1258
1259
  var original = arrayProto[method]
@@ -1345,9 +1346,11 @@ function addTrack(track, method, args) {
1345
1346
  }
1346
1347
  Array.prototype[method].apply(track, args)
1347
1348
  }
1349
+
1348
1350
  /*********************************************************************
1349
- * 依赖调度系统 *
1351
+ * 依赖调度系统 *
1350
1352
  **********************************************************************/
1353
+
1351
1354
  //检测两个对象间的依赖关系
1352
1355
  var dependencyDetection = (function () {
1353
1356
  var outerFrames = []
@@ -1369,6 +1372,7 @@ var dependencyDetection = (function () {
1369
1372
  }
1370
1373
  };
1371
1374
  })()
1375
+
1372
1376
  //将绑定对象注入到其依赖项的订阅数组中
1373
1377
  var roneval = /^on$/
1374
1378
 
@@ -1401,7 +1405,11 @@ avalon.injectBinding = function (binding) {
1401
1405
  if (binding.type === "on") {
1402
1406
  a = binding.getter + ""
1403
1407
  } else {
1404
- a = binding.getter.apply(0, binding.args)
1408
+ try {
1409
+ a = binding.getter.apply(0, binding.args)
1410
+ } catch (ex) {
1411
+ a = null
1412
+ }
1405
1413
  }
1406
1414
  } else {
1407
1415
  a = args[0]
@@ -1448,7 +1456,6 @@ avalon.injectBinding = function (binding) {
1448
1456
  binding.update()
1449
1457
  }
1450
1458
 
1451
-
1452
1459
  //将依赖项(比它高层的访问器或构建视图刷新函数的绑定对象)注入到订阅者数组
1453
1460
  function injectDependency(list, binding) {
1454
1461
  if (binding.oneTime)
@@ -1461,7 +1468,6 @@ function injectDependency(list, binding) {
1461
1468
  }
1462
1469
  }
1463
1470
 
1464
-
1465
1471
  function getProxyIds(a, isArray) {
1466
1472
  var ret = []
1467
1473
  for (var i = 0, el; el = a[i++]; ) {
@@ -1473,6 +1479,7 @@ function getProxyIds(a, isArray) {
1473
1479
  /*********************************************************************
1474
1480
  * 定时GC回收机制 *
1475
1481
  **********************************************************************/
1482
+
1476
1483
  var disposeCount = 0
1477
1484
  var disposeQueue = avalon.$$subscribers = []
1478
1485
  var beginTime = new Date()
@@ -1579,11 +1586,10 @@ function shouldDispose(el) {
1579
1586
  return el.msRetain ? 0 : (el.nodeType === 1 ? !root.contains(el) : !avalon.contains(root, el))
1580
1587
  }
1581
1588
 
1582
-
1583
-
1584
1589
  /************************************************************************
1585
- * HTML处理(parseHTML, innerHTML, clearHTML) *
1586
- **************************************************************************/
1590
+ * HTML处理(parseHTML, innerHTML, clearHTML) *
1591
+ *************************************************************************/
1592
+
1587
1593
  //parseHTML的辅助变量
1588
1594
  var tagHooks = new function() {// jshint ignore:line
1589
1595
  avalon.mix(this, {
@@ -1601,15 +1607,16 @@ var tagHooks = new function() {// jshint ignore:line
1601
1607
  this.tbody = this.tfoot = this.colgroup = this.caption = this.thead
1602
1608
  this.th = this.td
1603
1609
  }// jshint ignore:line
1604
-
1605
1610
  String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(rword, function(tag) {
1606
1611
  tagHooks[tag] = tagHooks.g //处理SVG
1607
1612
  })
1613
+
1608
1614
  var rtagName = /<([\w:]+)/
1609
1615
  var rxhtml = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig
1610
1616
  var scriptTypes = oneObject(["", "text/javascript", "text/ecmascript", "application/ecmascript", "application/javascript"])
1611
1617
  var script = DOC.createElement("script")
1612
1618
  var rhtml = /<|&#?\w+;/
1619
+
1613
1620
  avalon.parseHTML = function(html) {
1614
1621
  var fragment = avalonFragment.cloneNode(false)
1615
1622
  if (typeof html !== "string" ) {
@@ -1659,7 +1666,7 @@ avalon.clearHTML = function(node) {
1659
1666
  }
1660
1667
 
1661
1668
  /*********************************************************************
1662
- * avalon的原型方法定义区 *
1669
+ * avalon的原型方法定义区 *
1663
1670
  **********************************************************************/
1664
1671
 
1665
1672
  function hyphen(target) {
@@ -1680,7 +1687,7 @@ function camelize(target) {
1680
1687
  "add,remove".replace(rword, function (method) {
1681
1688
  avalon.fn[method + "Class"] = function (cls) {
1682
1689
  var el = this[0]
1683
- //https://developer.mozilla.org/zh-CN/docs/Mozilla/Firefox/Releases/26
1690
+ //https://developer.mozilla.org/zh-CN/docs/Mozilla/Firefox/Releases/26
1684
1691
  if (cls && typeof cls === "string" && el && el.nodeType === 1) {
1685
1692
  cls.replace(/\S+/g, function (c) {
1686
1693
  el.classList[method](c)
@@ -1716,24 +1723,24 @@ avalon.fn.mix({
1716
1723
  data: function (name, value) {
1717
1724
  name = "data-" + hyphen(name || "")
1718
1725
  switch (arguments.length) {
1719
- case 2:
1720
- this.attr(name, value)
1721
- return this
1722
- case 1:
1723
- var val = this.attr(name)
1724
- return parseData(val)
1725
- case 0:
1726
- var ret = {}
1727
- ap.forEach.call(this[0].attributes, function (attr) {
1728
- if (attr) {
1729
- name = attr.name
1730
- if (!name.indexOf("data-")) {
1731
- name = camelize(name.slice(5))
1732
- ret[name] = parseData(attr.value)
1726
+ case 2:
1727
+ this.attr(name, value)
1728
+ return this
1729
+ case 1:
1730
+ var val = this.attr(name)
1731
+ return parseData(val)
1732
+ case 0:
1733
+ var ret = {}
1734
+ ap.forEach.call(this[0].attributes, function (attr) {
1735
+ if (attr) {
1736
+ name = attr.name
1737
+ if (!name.indexOf("data-")) {
1738
+ name = camelize(name.slice(5))
1739
+ ret[name] = parseData(attr.value)
1740
+ }
1733
1741
  }
1734
- }
1735
- })
1736
- return ret
1742
+ })
1743
+ return ret
1737
1744
  }
1738
1745
  },
1739
1746
  removeData: function (name) {
@@ -1753,11 +1760,11 @@ avalon.fn.mix({
1753
1760
  },
1754
1761
  position: function () {
1755
1762
  var offsetParent, offset,
1756
- elem = this[0],
1757
- parentOffset = {
1758
- top: 0,
1759
- left: 0
1760
- };
1763
+ elem = this[0],
1764
+ parentOffset = {
1765
+ top: 0,
1766
+ left: 0
1767
+ };
1761
1768
  if (!elem) {
1762
1769
  return
1763
1770
  }
@@ -1771,7 +1778,7 @@ avalon.fn.mix({
1771
1778
  }
1772
1779
  parentOffset.top += avalon.css(offsetParent[0], "borderTopWidth", true)
1773
1780
  parentOffset.left += avalon.css(offsetParent[0], "borderLeftWidth", true)
1774
- // Subtract offsetParent scroll positions
1781
+ // Subtract offsetParent scroll positions
1775
1782
  parentOffset.top -= offsetParent.scrollTop()
1776
1783
  parentOffset.left -= offsetParent.scrollLeft()
1777
1784
  }
@@ -1821,18 +1828,18 @@ if (root.dataset) {
1821
1828
  name = name && camelize(name)
1822
1829
  var dataset = this[0].dataset
1823
1830
  switch (arguments.length) {
1824
- case 2:
1825
- dataset[name] = val
1826
- return this
1827
- case 1:
1828
- val = dataset[name]
1829
- return parseData(val)
1830
- case 0:
1831
- var ret = createMap()
1832
- for (name in dataset) {
1833
- ret[name] = parseData(dataset[name])
1834
- }
1835
- return ret
1831
+ case 2:
1832
+ dataset[name] = val
1833
+ return this
1834
+ case 1:
1835
+ val = dataset[name]
1836
+ return parseData(val)
1837
+ case 0:
1838
+ var ret = createMap()
1839
+ for (name in dataset) {
1840
+ ret[name] = parseData(dataset[name])
1841
+ }
1842
+ return ret
1836
1843
  }
1837
1844
  }
1838
1845
  }
@@ -1844,19 +1851,28 @@ function parseData(data) {
1844
1851
  if (typeof data === "object")
1845
1852
  return data
1846
1853
  data = data === "true" ? true :
1847
- data === "false" ? false :
1848
- data === "null" ? null : +data + "" === data ? +data : rbrace.test(data) ? JSON.parse(data) : data
1849
- } catch (e) {}
1854
+ data === "false" ? false :
1855
+ data === "null" ? null : +data + "" === data ? +data : rbrace.test(data) ? JSON.parse(data) : data
1856
+ } catch (e) {
1857
+ }
1850
1858
  return data
1851
1859
  }
1860
+
1861
+ avalon.fireDom = function (elem, type, opts) {
1862
+ var hackEvent = DOC.createEvent("Events");
1863
+ hackEvent.initEvent(type, true, true)
1864
+ avalon.mix(hackEvent, opts)
1865
+ elem.dispatchEvent(hackEvent)
1866
+ }
1867
+
1852
1868
  avalon.each({
1853
1869
  scrollLeft: "pageXOffset",
1854
1870
  scrollTop: "pageYOffset"
1855
1871
  }, function (method, prop) {
1856
1872
  avalon.fn[method] = function (val) {
1857
1873
  var node = this[0] || {},
1858
- win = getWindow(node),
1859
- top = method === "scrollTop"
1874
+ win = getWindow(node),
1875
+ top = method === "scrollTop"
1860
1876
  if (!arguments.length) {
1861
1877
  return win ? win[prop] : node[method]
1862
1878
  } else {
@@ -1920,7 +1936,7 @@ cssHooks["opacity:get"] = function (node) {
1920
1936
  cssHooks[name + ":get"] = function (node) {
1921
1937
  var computed = cssHooks["@:get"](node, name)
1922
1938
  return /px$/.test(computed) ? computed :
1923
- avalon(node).position()[name] + "px"
1939
+ avalon(node).position()[name] + "px"
1924
1940
  }
1925
1941
  })
1926
1942
  var cssShow = {
@@ -1953,9 +1969,9 @@ function showHidden(node, array) {
1953
1969
 
1954
1970
  "Width,Height".replace(rword, function (name) { //fix 481
1955
1971
  var method = name.toLowerCase(),
1956
- clientProp = "client" + name,
1957
- scrollProp = "scroll" + name,
1958
- offsetProp = "offset" + name
1972
+ clientProp = "client" + name,
1973
+ scrollProp = "scroll" + name,
1974
+ offsetProp = "offset" + name
1959
1975
  cssHooks[method + ":get"] = function (node, which, override) {
1960
1976
  var boxSizing = -4
1961
1977
  if (typeof override === "number") {
@@ -1978,7 +1994,7 @@ function showHidden(node, array) {
1978
1994
  var hidden = [];
1979
1995
  showHidden(node, hidden);
1980
1996
  var val = cssHooks[method + ":get"](node)
1981
- for (var i = 0, obj; obj = hidden[i++];) {
1997
+ for (var i = 0, obj; obj = hidden[i++]; ) {
1982
1998
  node = obj.node
1983
1999
  for (var n in obj) {
1984
2000
  if (typeof obj[n] === "string") {
@@ -1996,9 +2012,9 @@ function showHidden(node, array) {
1996
2012
  }
1997
2013
  if (node.nodeType === 9) { //取得页面尺寸
1998
2014
  var doc = node.documentElement
1999
- //FF chrome html.scrollHeight< body.scrollHeight
2000
- //IE 标准模式 : html.scrollHeight> body.scrollHeight
2001
- //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点?
2015
+ //FF chrome html.scrollHeight< body.scrollHeight
2016
+ //IE 标准模式 : html.scrollHeight> body.scrollHeight
2017
+ //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点?
2002
2018
  return Math.max(node.body[scrollProp], doc[scrollProp], node.body[offsetProp], doc[offsetProp], doc[clientProp])
2003
2019
  }
2004
2020
  return cssHooks[method + "&get"](node)
@@ -2014,28 +2030,28 @@ function showHidden(node, array) {
2014
2030
  }
2015
2031
  })
2016
2032
  avalon.fn.offset = function () { //取得距离页面左右角的坐标
2017
- var node = this[0]
2018
- try {
2019
- var rect = node.getBoundingClientRect()
2020
- // Make sure element is not hidden (display: none) or disconnected
2021
- // https://github.com/jquery/jquery/pull/2043/files#r23981494
2022
- if (rect.width || rect.height || node.getClientRects().length) {
2023
- var doc = node.ownerDocument
2024
- var root = doc.documentElement
2025
- var win = doc.defaultView
2026
- return {
2027
- top: rect.top + win.pageYOffset - root.clientTop,
2028
- left: rect.left + win.pageXOffset - root.clientLeft
2029
- }
2030
- }
2031
- } catch (e) {
2033
+ var node = this[0]
2034
+ try {
2035
+ var rect = node.getBoundingClientRect()
2036
+ // Make sure element is not hidden (display: none) or disconnected
2037
+ // https://github.com/jquery/jquery/pull/2043/files#r23981494
2038
+ if (rect.width || rect.height || node.getClientRects().length) {
2039
+ var doc = node.ownerDocument
2040
+ var root = doc.documentElement
2041
+ var win = doc.defaultView
2032
2042
  return {
2033
- left: 0,
2034
- top: 0
2043
+ top: rect.top + win.pageYOffset - root.clientTop,
2044
+ left: rect.left + win.pageXOffset - root.clientLeft
2035
2045
  }
2036
2046
  }
2047
+ } catch (e) {
2048
+ return {
2049
+ left: 0,
2050
+ top: 0
2051
+ }
2037
2052
  }
2038
- //=============================val相关=======================
2053
+ }
2054
+ //=============================val相关=======================
2039
2055
 
2040
2056
  function getValType(elem) {
2041
2057
  var ret = elem.tagName.toLowerCase()
@@ -2044,16 +2060,16 @@ function getValType(elem) {
2044
2060
  var valHooks = {
2045
2061
  "select:get": function (node, value) {
2046
2062
  var option, options = node.options,
2047
- index = node.selectedIndex,
2048
- one = node.type === "select-one" || index < 0,
2049
- values = one ? null : [],
2050
- max = one ? index + 1 : options.length,
2051
- i = index < 0 ? max : one ? index : 0
2063
+ index = node.selectedIndex,
2064
+ one = node.type === "select-one" || index < 0,
2065
+ values = one ? null : [],
2066
+ max = one ? index + 1 : options.length,
2067
+ i = index < 0 ? max : one ? index : 0
2052
2068
  for (; i < max; i++) {
2053
2069
  option = options[i]
2054
- //旧式IE在reset后不会改变selected,需要改用i === index判定
2055
- //我们过滤所有disabled的option元素,但在safari5下,如果设置select为disable,那么其所有孩子都disable
2056
- //因此当一个元素为disable,需要检测其是否显式设置了disable及其父节点的disable情况
2070
+ //旧式IE在reset后不会改变selected,需要改用i === index判定
2071
+ //我们过滤所有disabled的option元素,但在safari5下,如果设置select为disable,那么其所有孩子都disable
2072
+ //因此当一个元素为disable,需要检测其是否显式设置了disable及其父节点的disable情况
2057
2073
  if ((option.selected || i === index) && !option.disabled) {
2058
2074
  value = option.value
2059
2075
  if (one) {
@@ -2067,7 +2083,7 @@ var valHooks = {
2067
2083
  },
2068
2084
  "select:set": function (node, values, optionSet) {
2069
2085
  values = [].concat(values) //强制转换为数组
2070
- for (var i = 0, el; el = node.options[i++];) {
2086
+ for (var i = 0, el; el = node.options[i++]; ) {
2071
2087
  if ((el.selected = values.indexOf(el.value) > -1)) {
2072
2088
  optionSet = true
2073
2089
  }
@@ -2090,13 +2106,13 @@ var keys = ["break,case,catch,continue,debugger,default,delete,do,else,false",
2090
2106
  keys.replace(/\w+/g, function (a) {
2091
2107
  keyMap[a] = true
2092
2108
  })
2109
+
2093
2110
  var ridentStart = /[a-z_$]/i
2094
2111
  var rwhiteSpace = /[\s\uFEFF\xA0]/
2095
2112
  function getIdent(input, lastIndex) {
2096
2113
  var result = []
2097
2114
  var subroutine = !!lastIndex
2098
2115
  lastIndex = lastIndex || 0
2099
-
2100
2116
  //将表达式中的标识符抽取出来
2101
2117
  var state = "unknown"
2102
2118
  var variable = ""
@@ -2180,12 +2196,14 @@ function getIdent(input, lastIndex) {
2180
2196
  addVar(result, variable)
2181
2197
  return result
2182
2198
  }
2199
+
2183
2200
  function addVar(array, element) {
2184
2201
  if (element && !keyMap[element]) {
2185
2202
  array.push(element)
2186
2203
  return true
2187
2204
  }
2188
2205
  }
2206
+
2189
2207
  function addAssign(vars, vmodel, name, binding) {
2190
2208
  var ret = [],
2191
2209
  prefix = " = " + name + "."
@@ -2207,6 +2225,7 @@ function addAssign(vars, vmodel, name, binding) {
2207
2225
  }
2208
2226
  return ret
2209
2227
  }
2228
+
2210
2229
  var rproxy = /(\$proxy\$[a-z]+)\d+$/
2211
2230
  var variablePool = new Cache(218)
2212
2231
  //缓存求值函数,以便多次利用
@@ -2309,7 +2328,6 @@ function parseExpr(expr, vmodels, binding) {
2309
2328
  return evaluatorPool.put(exprId, getter)
2310
2329
 
2311
2330
  }
2312
- //========
2313
2331
 
2314
2332
  function normalizeExpr(code) {
2315
2333
  var hasExpr = rexpr.test(code) //比如ms-class="width{{w}}"的情况
@@ -2354,10 +2372,13 @@ function parseFilter(filters) {
2354
2372
  /* jshint ignore:end */
2355
2373
 
2356
2374
  }
2375
+
2357
2376
  /*********************************************************************
2358
2377
  * 编译系统 *
2359
2378
  **********************************************************************/
2379
+
2360
2380
  var quote = JSON.stringify
2381
+
2361
2382
  /*********************************************************************
2362
2383
  * 扫描系统 *
2363
2384
  **********************************************************************/
@@ -2383,7 +2404,6 @@ function checkScan(elem, callback, innerHTML) {
2383
2404
  })
2384
2405
  }
2385
2406
 
2386
-
2387
2407
  function createSignalTower(elem, vmodel) {
2388
2408
  var id = elem.getAttribute("avalonctrl") || vmodel.$id
2389
2409
  elem.setAttribute("avalonctrl", id)
@@ -2444,6 +2464,26 @@ function bindingSorter(a, b) {
2444
2464
  return a.priority - b.priority
2445
2465
  }
2446
2466
 
2467
+ var rnoCollect = /^(ms-\S+|data-\S+|on[a-z]+|id|style|class)$/
2468
+ var ronattr = /^on\-[\w-]+$/
2469
+ function getOptionsFromTag(elem, vmodels) {
2470
+ var attributes = elem.attributes
2471
+ var ret = {}
2472
+ for (var i = 0, attr; attr = attributes[i++]; ) {
2473
+ var name = attr.name
2474
+ if (attr.specified && !rnoCollect.test(name)) {
2475
+ var camelizeName = camelize(attr.name)
2476
+ if (/^on\-[\w-]+$/.test(name)) {
2477
+ ret[camelizeName] = getBindingCallback(elem, name, vmodels)
2478
+ } else {
2479
+ ret[camelizeName] = parseData(attr.value)
2480
+ }
2481
+ }
2482
+
2483
+ }
2484
+ return ret
2485
+ }
2486
+
2447
2487
  function scanAttr(elem, vmodels, match) {
2448
2488
  var scanNode = true
2449
2489
  if (vmodels.length) {
@@ -2531,28 +2571,21 @@ function scanAttr(elem, vmodels, match) {
2531
2571
  var rnoscanAttrBinding = /^if|widget|repeat$/
2532
2572
  var rnoscanNodeBinding = /^each|with|html|include$/
2533
2573
 
2534
- var rnoCollect = /^(ms-\S+|data-\S+|on[a-z]+|id|style|class|tabindex)$/
2535
- function getOptionsFromTag(elem) {
2536
- var attributes = elem.attributes
2537
- var ret = {}
2538
- for (var i = 0, attr; attr = attributes[i++]; ) {
2539
- if (attr.specified && !rnoCollect.test(attr.name)) {
2540
- ret[camelize(attr.name)] = parseData(attr.value)
2541
- }
2542
- }
2543
- return ret
2544
- }
2545
2574
  function scanNodeList(parent, vmodels) {
2546
2575
  var nodes = avalon.slice(parent.childNodes)
2547
2576
  scanNodeArray(nodes, vmodels)
2548
2577
  }
2549
2578
 
2550
-
2551
2579
  function scanNodeArray(nodes, vmodels) {
2580
+ function _delay_component(name) {
2581
+ setTimeout(function () {
2582
+ avalon.component(name)
2583
+ })
2584
+ }
2552
2585
  for (var i = 0, node; node = nodes[i++]; ) {
2553
2586
  switch (node.nodeType) {
2554
2587
  case 1:
2555
- var elem = node, fn
2588
+ var elem = node
2556
2589
  if (!elem.msResolved && elem.parentNode && elem.parentNode.nodeType === 1) {
2557
2590
  var library = isWidget(elem)
2558
2591
  if (library) {
@@ -2567,11 +2600,14 @@ function scanNodeArray(nodes, vmodels) {
2567
2600
  name: "widget"
2568
2601
  })
2569
2602
  if (avalon.components[fullName]) {
2570
- avalon.component(fullName)
2603
+ //确保所有ms-attr-name扫描完再处理
2604
+ _delay_component(fullName)
2571
2605
  }
2572
2606
  }
2573
2607
  }
2574
- scanTag(node, vmodels) //扫描元素节点
2608
+
2609
+ scanTag(node, vmodels) //扫描元素节点
2610
+
2575
2611
  if (node.msHasEvent) {
2576
2612
  avalon.fireDom(node, "datasetchanged", {
2577
2613
  bubble: node.msHasEvent
@@ -2589,7 +2625,6 @@ function scanNodeArray(nodes, vmodels) {
2589
2625
  }
2590
2626
  }
2591
2627
 
2592
-
2593
2628
  function scanTag(elem, vmodels, node) {
2594
2629
  //扫描顺序 ms-skip(0) --> ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100)
2595
2630
  //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后
@@ -2610,6 +2645,12 @@ function scanTag(elem, vmodels, node) {
2610
2645
  createSignalTower(elem, newVmodel)
2611
2646
  }
2612
2647
  scanAttr(elem, vmodels) //扫描特性节点
2648
+
2649
+ if (newVmodel) {
2650
+ setTimeout(function () {
2651
+ newVmodel.$fire("ms-scan-end", elem)
2652
+ })
2653
+ }
2613
2654
  }
2614
2655
  var rhasHtml = /\|\s*html(?:\b|$)/,
2615
2656
  r11a = /\|\|/g,
@@ -2700,8 +2741,6 @@ function scanText(textNode, vmodels, index) {
2700
2741
  }
2701
2742
  }
2702
2743
 
2703
-
2704
-
2705
2744
  //使用来自游戏界的双缓冲技术,减少对视图的冗余刷新
2706
2745
  var Buffer = function () {
2707
2746
  this.queue = []
@@ -2726,6 +2765,7 @@ Buffer.prototype = {
2726
2765
  }
2727
2766
 
2728
2767
  var buffer = new Buffer()
2768
+
2729
2769
  var componentQueue = []
2730
2770
  var widgetList = []
2731
2771
  var componentHooks = {
@@ -2744,7 +2784,6 @@ var componentHooks = {
2744
2784
  }
2745
2785
  }
2746
2786
 
2747
-
2748
2787
  avalon.components = {}
2749
2788
  avalon.component = function (name, opts) {
2750
2789
  if (opts) {
@@ -2756,15 +2795,24 @@ avalon.component = function (name, opts) {
2756
2795
  i--;
2757
2796
 
2758
2797
  (function (host, hooks, elem, widget) {
2759
-
2798
+ //如果elem已从Document里移除,直接返回
2799
+ //issuse : https://github.com/RubyLouvre/avalon2/issues/40
2800
+ if (!avalon.contains(DOC, elem) || elem.msResolved) {
2801
+ avalon.Array.remove(componentQueue, host)
2802
+ return
2803
+ }
2804
+
2760
2805
  var dependencies = 1
2761
2806
  var library = host.library
2762
2807
  var global = avalon.libraries[library] || componentHooks
2763
2808
 
2764
2809
  //===========收集各种配置=======
2765
-
2766
- var elemOpts = getOptionsFromTag(elem)
2767
- var vmOpts = getOptionsFromVM(host.vmodels, elemOpts.config || host.widget)
2810
+ if (elem.getAttribute("ms-attr-identifier")) {
2811
+ //如果还没有解析完,就延迟一下 #1155
2812
+ return
2813
+ }
2814
+ var elemOpts = getOptionsFromTag(elem, host.vmodels)
2815
+ var vmOpts = getOptionsFromVM(host.vmodels, elemOpts.config || host.fullName)
2768
2816
  var $id = elemOpts.$id || elemOpts.identifier || generateID(widget)
2769
2817
  delete elemOpts.config
2770
2818
  delete elemOpts.$id
@@ -2794,7 +2842,7 @@ avalon.component = function (name, opts) {
2794
2842
  delete componentDefinition.$construct
2795
2843
 
2796
2844
  var vmodel = avalon.define(componentDefinition) || {}
2797
- elem.msResolved = 1
2845
+ elem.msResolved = 1 //防止二进扫描此元素
2798
2846
  vmodel.$init(vmodel, elem)
2799
2847
  global.$init(vmodel, elem)
2800
2848
  var nodes = elem.childNodes
@@ -2811,7 +2859,6 @@ avalon.component = function (name, opts) {
2811
2859
  }
2812
2860
  }
2813
2861
 
2814
-
2815
2862
  if (vmodel.$$template) {
2816
2863
  avalon.clearHTML(elem)
2817
2864
  elem.innerHTML = vmodel.$$template(keepTemplate)
@@ -2830,12 +2877,17 @@ avalon.component = function (name, opts) {
2830
2877
  }
2831
2878
  }
2832
2879
  slots = null
2833
- var child = elem.firstChild
2880
+ var child = elem.children[0] || elem.firstChild
2834
2881
  if (keepReplace) {
2835
- child = elem.firstChild
2836
2882
  elem.parentNode.replaceChild(child, elem)
2837
2883
  child.msResolved = 1
2884
+ var cssText = elem.style.cssText
2885
+ var className = elem.className
2838
2886
  elem = host.element = child
2887
+ elem.style.cssText += ";"+ cssText
2888
+ if (className) {
2889
+ avalon(elem).addClass(className)
2890
+ }
2839
2891
  }
2840
2892
  if (keepContainer) {
2841
2893
  keepContainer.appendChild(elem)
@@ -2858,7 +2910,7 @@ avalon.component = function (name, opts) {
2858
2910
  if (dependencies === 0) {
2859
2911
  var id1 = setTimeout(function () {
2860
2912
  clearTimeout(id1)
2861
-
2913
+
2862
2914
  vmodel.$ready(vmodel, elem, host.vmodels)
2863
2915
  global.$ready(vmodel, elem, host.vmodels)
2864
2916
  }, children ? Math.max(children * 17, 100) : 17)
@@ -2882,7 +2934,6 @@ avalon.component = function (name, opts) {
2882
2934
  }
2883
2935
  })
2884
2936
  scanTag(elem, [vmodel].concat(host.vmodels))
2885
-
2886
2937
  avalon.vmodels[vmodel.$id] = vmodel
2887
2938
  if (!elem.childNodes.length) {
2888
2939
  avalon.fireDom(elem, "datasetchanged", {library: library, vm: vmodel, childReady: -1})
@@ -2893,28 +2944,12 @@ avalon.component = function (name, opts) {
2893
2944
  }, 17)
2894
2945
  }
2895
2946
 
2896
-
2897
2947
  })(obj, avalon.components[name], obj.element, obj.widget)// jshint ignore:line
2898
2948
 
2899
-
2900
2949
  }
2901
2950
  }
2902
2951
  }
2903
2952
 
2904
- avalon.fireDom = function (elem, type, opts) {
2905
- if (DOC.createEvent) {
2906
- var hackEvent = DOC.createEvent("Events");
2907
- hackEvent.initEvent(type, true, true, opts)
2908
- avalon.mix(hackEvent, opts)
2909
-
2910
- elem.dispatchEvent(hackEvent)
2911
- } else if (root.contains(elem)) {//IE6-8触发事件必须保证在DOM树中,否则报"SCRIPT16389: 未指明的错误"
2912
- hackEvent = DOC.createEventObject()
2913
- avalon.mix(hackEvent, opts)
2914
- elem.fireEvent("on" + type, hackEvent)
2915
- }
2916
- }
2917
-
2918
2953
 
2919
2954
  function getOptionsFromVM(vmodels, pre) {
2920
2955
  if (pre) {
@@ -2929,8 +2964,6 @@ function getOptionsFromVM(vmodels, pre) {
2929
2964
  return {}
2930
2965
  }
2931
2966
 
2932
-
2933
-
2934
2967
  avalon.libraries = []
2935
2968
  avalon.library = function (name, opts) {
2936
2969
  if (DOC.namespaces) {
@@ -2944,19 +2977,20 @@ avalon.library = function (name, opts) {
2944
2977
  }
2945
2978
 
2946
2979
  avalon.library("ms")
2947
- /*
2948
- broswer nodeName scopeName localName
2949
- IE9 ONI:BUTTON oni button
2950
- IE10 ONI:BUTTON undefined oni:button
2951
- IE8 button oni undefined
2952
- chrome ONI:BUTTON undefined oni:button
2953
2980
 
2954
- */
2981
+ /*
2982
+ broswer nodeName scopeName localName
2983
+ IE9 ONI:BUTTON oni button
2984
+ IE10 ONI:BUTTON undefined oni:button
2985
+ IE8 button oni undefined
2986
+ chrome ONI:BUTTON undefined oni:button
2987
+
2988
+ */
2955
2989
  function isWidget(el) { //如果为自定义标签,返回UI库的名字
2956
- if(el.scopeName && el.scopeName !== "HTML" ){
2990
+ if (el.scopeName && el.scopeName !== "HTML") {
2957
2991
  return el.scopeName
2958
2992
  }
2959
- var fullName = el.nodeName.toLowerCase()
2993
+ var fullName = el.nodeName.toLowerCase()
2960
2994
  var index = fullName.indexOf(":")
2961
2995
  if (index > 0) {
2962
2996
  return fullName.slice(0, index)
@@ -2965,7 +2999,6 @@ function isWidget(el) { //如果为自定义标签,返回UI库的名字
2965
2999
  //各种MVVM框架在大型表格下的性能测试
2966
3000
  // https://github.com/RubyLouvre/avalon/issues/859
2967
3001
 
2968
-
2969
3002
  var bools = ["autofocus,autoplay,async,allowTransparency,checked,controls",
2970
3003
  "declare,disabled,defer,defaultChecked,defaultSelected",
2971
3004
  "contentEditable,isMap,loop,multiple,noHref,noResize,noShade",
@@ -3065,8 +3098,6 @@ var attrDir = avalon.directive("attr", {
3065
3098
  }
3066
3099
  })
3067
3100
 
3068
-
3069
-
3070
3101
  //这几个指令都可以使用插值表达式,如ms-src="aaa/{{b}}/{{c}}.html"
3071
3102
  "title,alt,src,value,css,include,href".replace(rword, function (name) {
3072
3103
  directives[name] = attrDir
@@ -3140,7 +3171,6 @@ avalon.directive("class", {
3140
3171
  directives[name] = directives["class"]
3141
3172
  })
3142
3173
 
3143
-
3144
3174
  //ms-controller绑定已经在scanTag 方法中实现
3145
3175
  avalon.directive("css", {
3146
3176
  init: directives.attr.init,
@@ -3210,7 +3240,7 @@ var duplexBinding = avalon.directive("duplex", {
3210
3240
  "input"
3211
3241
  }
3212
3242
  //===================绑定事件======================
3213
- binding.bound = function (type, callback) {
3243
+ var bound = binding.bound = function (type, callback) {
3214
3244
  elem.addEventListener(type, callback, false)
3215
3245
  var old = binding.rollback
3216
3246
  binding.rollback = function () {
@@ -3219,34 +3249,35 @@ var duplexBinding = avalon.directive("duplex", {
3219
3249
  old && old()
3220
3250
  }
3221
3251
  }
3222
- var composing = false
3223
3252
  function callback(value) {
3224
3253
  binding.changed.call(this, value, binding)
3225
3254
  }
3255
+ var composing = false
3226
3256
  function compositionStart() {
3227
3257
  composing = true
3228
3258
  }
3229
3259
  function compositionEnd() {
3230
3260
  composing = false
3231
3261
  }
3232
- var updateVModel = function () {
3262
+ var updateVModel = function (e) {
3233
3263
  var val = elem.value //防止递归调用形成死循环
3234
3264
  if (composing || val === binding.oldValue || binding.pipe === null) //处理中文输入法在minlengh下引发的BUG
3235
3265
  return
3236
3266
  var lastValue = binding.pipe(val, binding, "get")
3267
+ binding.oldValue = val
3237
3268
  binding.setter(lastValue)
3238
3269
  callback.call(elem, lastValue)
3239
3270
  }
3240
3271
  switch (binding.xtype) {
3241
3272
  case "radio":
3242
- binding.bound("click", function () {
3273
+ bound("click", function () {
3243
3274
  var lastValue = binding.pipe(elem.value, binding, "get")
3244
3275
  binding.setter(lastValue)
3245
3276
  callback.call(elem, lastValue)
3246
3277
  })
3247
3278
  break
3248
3279
  case "checkbox":
3249
- binding.bound("change", function () {
3280
+ bound("change", function () {
3250
3281
  var method = elem.checked ? "ensure" : "remove"
3251
3282
  var array = binding.getter.apply(0, binding.vmodels)
3252
3283
  if (!Array.isArray(array)) {
@@ -3259,25 +3290,19 @@ var duplexBinding = avalon.directive("duplex", {
3259
3290
  })
3260
3291
  break
3261
3292
  case "change":
3262
- binding.bound("change", updateVModel)
3293
+ bound("change", updateVModel)
3263
3294
  break
3264
3295
  case "input":
3265
- if (!IEVersion) { // W3C
3266
- binding.bound("input", updateVModel)
3267
- //非IE浏览器才用这个
3268
- binding.bound("compositionstart", compositionStart)
3269
- binding.bound("compositionend", compositionEnd)
3270
- binding.bound("DOMAutoComplete", updateVModel)
3271
- } else { //onpropertychange事件无法区分是程序触发还是用户触发
3272
- // IE下通过selectionchange事件监听IE9+点击input右边的X的清空行为,及粘贴,剪切,删除行为
3273
- binding.bound("input", updateVModel) //IE9使用propertychange无法监听中文输入改动
3274
- //http://www.cnblogs.com/rubylouvre/archive/2013/02/17/2914604.html
3275
- //http://www.matts411.com/post/internet-explorer-9-oninput/
3296
+ bound("input", updateVModel)
3297
+ bound("keyup", updateVModel)
3298
+ if (!IEVersion) {
3299
+ bound("compositionstart", compositionStart)
3300
+ bound("compositionend", compositionEnd)
3301
+ bound("DOMAutoComplete", updateVModel)
3276
3302
  }
3277
-
3278
3303
  break
3279
3304
  case "select":
3280
- binding.bound("change", function () {
3305
+ bound("change", function () {
3281
3306
  var val = avalon(elem).val() //字符串或字符串数组
3282
3307
  if (Array.isArray(val)) {
3283
3308
  val = val.map(function (v) {
@@ -3294,7 +3319,7 @@ var duplexBinding = avalon.directive("duplex", {
3294
3319
  }
3295
3320
  }
3296
3321
  })
3297
- binding.bound("datasetchanged", function (e) {
3322
+ bound("datasetchanged", function (e) {
3298
3323
  if (e.bubble === "selectDuplex") {
3299
3324
  var value = binding._value
3300
3325
  var curValue = Array.isArray(value) ? value.map(String) : value + ""
@@ -3307,17 +3332,17 @@ var duplexBinding = avalon.directive("duplex", {
3307
3332
  }
3308
3333
  if (binding.xtype === "input" && !rnoduplexInput.test(elem.type)) {
3309
3334
  if (elem.type !== "hidden") {
3310
- binding.bound("focus", function () {
3335
+ bound("focus", function () {
3311
3336
  elem.msFocus = true
3312
3337
  })
3313
- binding.bound("blur", function () {
3338
+ bound("blur", function () {
3314
3339
  elem.msFocus = false
3315
3340
  })
3316
3341
  }
3317
3342
  elem.avalonSetter = updateVModel //#765
3318
3343
  watchValueInTimer(function () {
3319
3344
  if (root.contains(elem)) {
3320
- if (!elem.msFocus && binding.oldValue !== elem.value) {
3345
+ if (!elem.msFocus) {
3321
3346
  updateVModel()
3322
3347
  }
3323
3348
  } else if (!elem.msRetain) {
@@ -3356,7 +3381,7 @@ var duplexBinding = avalon.directive("duplex", {
3356
3381
  }
3357
3382
  }
3358
3383
  elem.value = this.oldValue = curValue
3359
- if (fixCaret) {
3384
+ if (fixCaret && !elem.readOnly) {
3360
3385
  elem.selectionStart = elem.selectionEnd = pos
3361
3386
  }
3362
3387
  }
@@ -3383,9 +3408,6 @@ var duplexBinding = avalon.directive("duplex", {
3383
3408
  }
3384
3409
  break
3385
3410
  }
3386
- if (binding.xtype !== "select") {
3387
- binding.changed.call(elem, curValue, binding)
3388
- }
3389
3411
  }
3390
3412
  })
3391
3413
 
@@ -3674,7 +3696,7 @@ function upperFirstChar(str) {
3674
3696
  }
3675
3697
  var effectBuffer = new Buffer()
3676
3698
  function Effect() {
3677
- }// 动画实例,做成类的形式,是为了共用所有原型方法
3699
+ }//动画实例,做成类的形式,是为了共用所有原型方法
3678
3700
 
3679
3701
  Effect.prototype = {
3680
3702
  contrustor: Effect,
@@ -3697,7 +3719,7 @@ Effect.prototype = {
3697
3719
  callEffectHook(me, "abort" + upperFirstChar(oppositeName))
3698
3720
  callEffectHook(me, "before" + upperFirstChar(name))
3699
3721
  if (!isLeave)
3700
- before(el) //  这里可能做插入DOM树的操作,因此必须在修改类名前执行
3722
+ before(el) //这里可能做插入DOM树的操作,因此必须在修改类名前执行
3701
3723
  var cssCallback = function (cancel) {
3702
3724
  el.removeEventListener(me.cssEvent, me.cssCallback)
3703
3725
  if (isLeave) {
@@ -3816,7 +3838,6 @@ avalon.mix(avalon.effect, {
3816
3838
  }
3817
3839
  })
3818
3840
 
3819
-
3820
3841
  avalon.directive("html", {
3821
3842
  update: function (val) {
3822
3843
  var binding = this
@@ -3924,7 +3945,7 @@ avalon.directive("if", {
3924
3945
  elem.required = false
3925
3946
  elem.setAttribute("_required", "true")
3926
3947
  }
3927
- try {// 如果不支持querySelectorAll或:required,可以直接无视
3948
+ try {//如果不支持querySelectorAll或:required,可以直接无视
3928
3949
  avalon.each(elem.querySelectorAll(":required"), function (el) {
3929
3950
  elem.required = false
3930
3951
  el.setAttribute("_required", "true")
@@ -3960,8 +3981,6 @@ avalon.directive("if", {
3960
3981
  }
3961
3982
  })
3962
3983
 
3963
-
3964
-
3965
3984
  //ms-important绑定已经在scanTag 方法中实现
3966
3985
  var rnoscripts = /<noscript.*?>(?:[\s\S]+?)<\/noscript>/img
3967
3986
  var rnoscriptText = /<noscript.*?>([\s\S]+?)<\/noscript>/im
@@ -4084,7 +4103,7 @@ avalon.directive("include", {
4084
4103
  return nodesToFrag(nodes)
4085
4104
  }
4086
4105
  } else {
4087
- before = function () {// 新添加元素的动画 
4106
+ before = function () {//新添加元素的动画
4088
4107
  target.insertBefore(fragment, binding.end)
4089
4108
  scanNodeArray(nodes, vmodels)
4090
4109
  }
@@ -4302,7 +4321,7 @@ avalon.directive("repeat", {
4302
4321
  }
4303
4322
 
4304
4323
  //重写proxy
4305
- if (this.enterCount === 1) {// 防止多次进入,导致位置不对
4324
+ if (this.enterCount === 1) {//防止多次进入,导致位置不对
4306
4325
  proxy.$active = false
4307
4326
  proxy.$oldIndex = proxy.$index
4308
4327
  proxy.$active = true
@@ -4315,7 +4334,7 @@ avalon.directive("repeat", {
4315
4334
  proxy.$last = i === length - 1
4316
4335
  // proxy[param] = value[i]
4317
4336
  } else {
4318
- proxy.$val = toJson(value[keyOrId]) // 这里是处理vm.object = newObject的情况
4337
+ proxy.$val = toJson(value[keyOrId]) //这里是处理vm.object = newObject的情况
4319
4338
  }
4320
4339
  proxies.push(proxy)
4321
4340
  }
@@ -4366,7 +4385,7 @@ avalon.directive("repeat", {
4366
4385
  } else if (proxy.$index !== proxy.$oldIndex) {
4367
4386
  (function (proxy2, preElement) {
4368
4387
  staggerIndex = mayStaggerAnimate(binding.effectEnterStagger, function () {
4369
- var curNode = removeItem(proxy2.$anchor)// 如果位置被挪动了
4388
+ var curNode = removeItem(proxy2.$anchor)//如果位置被挪动了
4370
4389
  var inserted = avalon.slice(curNode.childNodes)
4371
4390
  parent.insertBefore(curNode, preElement.nextSibling)
4372
4391
  animateRepeat(inserted, 1, binding)
@@ -4602,9 +4621,11 @@ function proxyRecycler(cache, key, param) {
4602
4621
  delete cache[key]
4603
4622
  }
4604
4623
  }
4624
+
4605
4625
  /*********************************************************************
4606
4626
  * 各种指令 *
4607
4627
  **********************************************************************/
4628
+
4608
4629
  //ms-skip绑定已经在scanTag 方法中实现
4609
4630
  avalon.directive("text", {
4610
4631
  update: function (val) {
@@ -4647,7 +4668,7 @@ avalon.directive("visible", {
4647
4668
  var binding = this, elem = this.element, stamp
4648
4669
  var noEffect = !this.effectName
4649
4670
  if (!this.stamp) {
4650
- stamp = this.stamp = +new Date
4671
+ stamp = this.stamp = +new Date()
4651
4672
  if (val) {
4652
4673
  elem.style.display = binding.display || ""
4653
4674
  if (avalon(elem).css("display") === "none") {
@@ -4658,7 +4679,7 @@ avalon.directive("visible", {
4658
4679
  }
4659
4680
  return
4660
4681
  }
4661
- stamp = this.stamp = +new Date
4682
+ stamp = this.stamp = +new Date()
4662
4683
  if (val) {
4663
4684
  avalon.effect.apply(elem, 1, function () {
4664
4685
  if (stamp !== binding.stamp)
@@ -4686,8 +4707,9 @@ avalon.directive("visible", {
4686
4707
  })
4687
4708
 
4688
4709
  /*********************************************************************
4689
- * 自带过滤器 *
4710
+ * 自带过滤器 *
4690
4711
  **********************************************************************/
4712
+
4691
4713
  var rscripts = /<script[^>]*>([\S\s]*?)<\/script\s*>/gim
4692
4714
  var ron = /\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g
4693
4715
  var ropen = /<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/ig
@@ -4701,10 +4723,10 @@ var rnoalphanumeric = /([^\#-~| |!])/g;
4701
4723
 
4702
4724
  function numberFormat(number, decimals, point, thousands) {
4703
4725
  //form http://phpjs.org/functions/number_format/
4704
- //number 必需,要格式化的数字
4705
- //decimals 可选,规定多少个小数位。
4706
- //point 可选,规定用作小数点的字符串(默认为 . )。
4707
- //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。
4726
+ //number 必需,要格式化的数字
4727
+ //decimals 可选,规定多少个小数位。
4728
+ //point 可选,规定用作小数点的字符串(默认为 . )。
4729
+ //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。
4708
4730
  number = (number + '')
4709
4731
  .replace(/[^0-9+\-Ee.]/g, '')
4710
4732
  var n = !isFinite(+number) ? 0 : +number,
@@ -4732,7 +4754,6 @@ function numberFormat(number, decimals, point, thousands) {
4732
4754
  return s.join(dec)
4733
4755
  }
4734
4756
 
4735
-
4736
4757
  var filters = avalon.filters = {
4737
4758
  uppercase: function(str) {
4738
4759
  return str.toUpperCase()
@@ -4799,6 +4820,7 @@ var filters = avalon.filters = {
4799
4820
  },
4800
4821
  number: numberFormat
4801
4822
  }
4823
+
4802
4824
  /*
4803
4825
  'yyyy': 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010)
4804
4826
  'yy': 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)
@@ -5033,9 +5055,11 @@ new function() {// jshint ignore:line
5033
5055
  locate.SHORTMONTH = locate.MONTH
5034
5056
  filters.date.locate = locate
5035
5057
  }// jshint ignore:line
5058
+
5036
5059
  /*********************************************************************
5037
- * DOMReady *
5060
+ * DOMReady *
5038
5061
  **********************************************************************/
5062
+
5039
5063
  var readyList = [],
5040
5064
  isReady
5041
5065
  var fireReady = function (fn) {
@@ -5050,7 +5074,6 @@ var fireReady = function (fn) {
5050
5074
  }
5051
5075
  }
5052
5076
 
5053
-
5054
5077
  if (DOC.readyState === "complete") {
5055
5078
  setTimeout(fireReady) //如果在domReady之外加载
5056
5079
  } else {
@@ -5064,6 +5087,7 @@ avalon.ready = function (fn) {
5064
5087
  fn(avalon)
5065
5088
  }
5066
5089
  }
5090
+
5067
5091
  avalon.config({
5068
5092
  loader: true
5069
5093
  })