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.
- checksums.yaml +4 -4
- data/lib/avalon-rails/version.rb +1 -1
- data/vendor/assets/javascripts/avalon.js +219 -173
- data/vendor/assets/javascripts/avalon.min.js +3 -3
- data/vendor/assets/javascripts/avalon.mobile.js +355 -337
- data/vendor/assets/javascripts/avalon.mobile.min.js +3 -3
- data/vendor/assets/javascripts/avalon.mobile.shim.js +353 -336
- data/vendor/assets/javascripts/avalon.mobile.shim.min.js +3 -3
- data/vendor/assets/javascripts/avalon.modern.js +265 -240
- data/vendor/assets/javascripts/avalon.modern.min.js +3 -3
- data/vendor/assets/javascripts/avalon.modern.shim.js +263 -239
- data/vendor/assets/javascripts/avalon.modern.shim.min.js +2 -2
- data/vendor/assets/javascripts/avalon.shim.js +240 -221
- data/vendor/assets/javascripts/avalon.shim.min.js +3 -3
- metadata +2 -2
@@ -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 a(){return Object.create(null)}function r(e){return Function.apply(i,e)}function i(){}function o(e,t){"string"==typeof e&&(e=e.match(qt)||[]);for(var n={},a=void 0!==t?t:1,r=0,i=e.length;i>r;r++)n[e[r]]=a;return n}function l(){if(e.VBArray){var t=document.documentMode;return t?t:e.XMLHttpRequest?7:6}return 0/0}function s(e){if(e&&"object"==typeof e){var t=e.length,n=zt.call(e);if(/(Array|List|Collection|Map|Arguments)\]$/.test(n))return!0;if("[object Object]"===n&&t===t>>>0)return!0}return!1}function c(e,t){if(e&&e.childNodes)for(var n,a=e.childNodes,r=0;n=a[r++];)if(n.tagName){var i=Ht.createElementNS(ln,n.tagName.toLowerCase());Wt.forEach.call(n.attributes,function(e){i.setAttribute(e.name,e.value)}),c(n,i),t.appendChild(i)}}function u(e){for(var t in e)if(Xt.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(hn,"\\$&")}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:Zt,type:"user-watcher",handler:i,vmodels:[this],expr:e,uniqueNumber:r.uniqueNumber},t.wildcard=/\*/.test(e)}if(t.update)t.oneTime||avalon.Array.ensure(a,t);else{if(/\w\.*\B/.test(e)){t.getter=i;var o=this;t.update=function(){var e=this.fireArgs||[];e[2]&&t.handler.apply(o,e),delete this.fireArgs},a.sync=!0,avalon.Array.ensure(a,t)}else avalon.injectBinding(t);r&&(t.handler=r)}return function(){t.update=t.getter=t.handler=i,t.element=Ht.createElement("a")}}function v(e,t){var n=this.$events;if(n&&n[e]){t&&(t[2]=e);var a=n[e];h(a,t);var r=this.$up;r&&(this.$pathname&&v.call(r,this.$pathname+"."+e,t),v.call(r,"*."+e,t))}else{if(r=this.$up,this.$ups){for(var i in this.$ups)v.call(this.$ups[i],i+"."+e,t);return}if(r){var o=this.$pathname;""===o&&(o="*");var l=o+"."+e;a=l.split("."),-1===a.indexOf("*")?(v.call(r,l,t),a[1]="*",v.call(r,a.join("."),t)):v.call(r,l,t)}}}function p(e,t){for(;;){if(e.$watch){var n=e.$events||(e.$events={}),a=n[t]||(n[t]=[]);return void Tn.collectDependency(a)}if(e=e.$up,!e)break;t=e.$pathname+"."+t}}function h(e,t){if(e){new Date-Nn>444&&"object"==typeof e[0]&&D();for(var n,a=[],r=[],i=0;n=e[i++];)"user-watcher"===n.type?a.push(n):r.push(n);if(u.async){for(ha.render(),i=0;n=r[i++];)if(n.update){var o=S(n);ha.queue[o]||(ha.queue[o]=1,ha.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||Bt;var r=t.force||Bt,i=t.old,l=i&&i.$accessors||Bt,s=new g,c={},u={},f=[],p=[],h={};e.$skipArray&&(h=o(e.$skipArray),delete e.$skipArray);var m=e.$computed;if(m){delete e.$computed;for(var y in m)u[y]=!0,function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(a){if("function"==typeof t.set){var r=n;t.set.call(this,a);var i=this[e];this.$fire&&i!==r&&this.$fire(e,i,r)}},enumerable:!0,configurable:!0}}(y,m[y])}for(y in e){var w=e[y];yn[y]||(u[y]=!0),"function"==typeof w||w&&w.nodeName&&w.nodeType>0||!r[y]&&("$"===y.charAt(0)||yn[y]||h[y])?f.push(y):b(w)?(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,w)):(p.push(y),c[y]=l[y]?l[y]:$(y,w))}c.$model=bn,s=Object.defineProperties(s,c,e),f.forEach(function(t){s[t]=e[t]}),C(s,"$ups",null),C(s,"$id","anonymous"),C(s,"$up",i?i.$up:null),C(s,"$track",Object.keys(u)),C(s,"$active",!1),C(s,"$pathname",i?i.$pathname:""),C(s,"$accessors",c),C(s,"hasOwnProperty",a),t.watch&&(C(s,"$watch",function(){return d.apply(s,arguments)}),C(s,"$fire",function(e,t){if(0===e.indexOf("all!")){var n=e.slice(4);for(var a in avalon.vmodels){var r=avalon.vmodels[a];r.$fire&&r.$fire.apply(r,[n,t])}}else v.call(s,e,[t])})),p.forEach(function(t){var n=i&&i[t],a=s[t]=e[t];a&&"object"==typeof a&&(a.$up=s,a.$pathname=t),v.call(s,t,[a,n])});for(y in m)w=s[y];return s.$active=!0,s}function b(e){if(e&&"object"==typeof e){for(var t in e)if("get"!==t&&"set"!==t)return!1;return"function"==typeof e.get}}function $(e,t){var n,t=0/0;return{get:function(){return this.$active&&p(this,e),t},set:function(a){if(t!==a){var r=t;n=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 x(e,t,a);if(avalon.isPlainObject(e)){if(t&&"object"==typeof t){var r=Object.keys(e),i=Object.keys(t);if(r.join(";")===i.join(";")){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);return t}t.$active=!1}return y(e,{old:t,watch:a})}return n?e:void 0}function x(e,t,n){if(t){var a=[0,t.length].concat(e);return t.splice.apply(t,a),t}for(var r in xn)e[r]=xn[r];C(e,"$up",null),C(e,"$pathname",""),C(e,"$track",E(e.length)),e._=y({length:0/0},{watch:!0}),e._.length=e.length,e._.$watch("length",function(t,n){v.call(e.$up,e.$pathname+".length",[t,n])}),n&&C(e,"$watch",function(){return d.apply(e,arguments)}),Object.defineProperty(e,"$model",bn);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 C(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!1,configurable:!0})}function T(e){var t=avalon.type(e);if("array"===t){for(var n=[],a=0;a<e.length;a++)n[a]=T(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:T(i)}return r}return e}function k(e,t){for(var n={},a=0,r=t.length;r>a;a++){n[a]=e[a];var i=t[a];i in n?(e[a]=n[i],delete n[i]):e[a]=e[i]}}function E(e){for(var t=[],n=0;e>n;n++)t[n]=Qt("$proxy$each");return t}function N(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 A(e,t){t.oneTime||e&&avalon.Array.ensure(e,t)&&t.element&&(O(t,e),new Date-Nn>444&&D())}function M(e,t){for(var n,a=[],r=0;n=e[r++];)a.push(t?n.$id:n.$key);return a.join(";")}function S(e){if(!e.uniqueNumber){var t=e.element;e.uniqueNumber=t?1!==t.nodeType?e.type+"-"+S(t.parentNode)+"-"+ ++kn:e.name+"-"+S(t):++kn}return e.uniqueNumber}function O(e,t){var n=e.lists||(e.lists=[]),a=S(e);avalon.Array.ensure(n,t),t.$uuid=t.$uuid||Qt(),En[a]||(En[a]=1,En.push(e))}function D(e){for(var t=En.length,n=t,a=[],r={},i={};e=En[--t];){var o=e.type;i[o]?i[o]++:(i[o]=1,a.push(o))}var l=!1;if(a.forEach(function(e){An[e]!==i[e]&&(r[e]=1,l=!0)}),t=n,l)for(;e=En[--t];)if(null!==e.element){if(r[e.type]&&j(e.element)){En.splice(t,1),delete En[e.uniqueNumber];for(var s,c=e.lists,u=0;s=c[u++];)avalon.Array.remove(c,s),avalon.Array.remove(s,e);L(e)}}else En.splice(t,1);An=i,Nn=new Date}function L(e){delete En[e.uniqueNumber],e.element=null,e.rollback&&e.rollback();for(var t in e)e[t]=null}function j(e){try{{e.parentNode.nodeType}}catch(t){return!0}return e.ifRemove&&!Zt.contains(e.ifRemove)&&Rt===e.parentNode?(e.parentNode&&e.parentNode.removeChild(e),!0):e.msRetain?0:1===e.nodeType?!Zt.contains(e):!avalon.contains(Zt,e)}function H(e){return e.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function P(e){return e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})}function R(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:Hn.test(e)?JSON.parse(e):e}catch(t){}return e}function F(e){return e.window&&e.document?e:9===e.nodeType?e.defaultView:!1}function B(e,t){if(e.offsetWidth<=0){var n=getComputedStyle(e,null);if(qn.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&&B(i,t)}}function q(e){var t=e.tagName.toLowerCase();return"input"===t&&/checkbox|radio/.test(e.type)?"checked":t}function _(e,t){var n=[],a=!!t;t=t||0;for(var i="unknown",o="",l=0;l<e.length;l++){var s=e.charAt(l);if("'"===s||'"'===s)"unknown"===i?i=s:i===s&&(i="unknown");else if("\\"===s)("'"===i||'"'===i)&&l++;else if(Yn.test(s))"unknown"===i?(i="variable",o=s):"maybePath"===i?(o=n.pop(),o+="."+s,i="variable"):"variable"===i&&(o+=s);else if(/\w/.test(s))"variable"===i&&(o+=s);else if("."===s)"variable"===i&&o&&(n.push(o),o="",i="maybePath");else if("["===s){if("variable"===i||"maybePath"===i){o&&(n.push(o),o="");var c=n.length,u=n[c-1],f=_(e.slice(l),l);if(f.length)n[c-1]=u+".*",n=f.concat(n);else{var d=e.slice(l+1,f.i);try{var v=r(["return "+d])();n[c-1]=u+"."+v}catch(p){}}i="maybePath",l=f.i}}else if("]"===s){if(a)return n.i=l+t,V(n,o),n}else Xn.test(s)&&"\r"!==s&&"\n"!==s?"variable"===i&&(V(n,o)&&(i="maybePath"),o=""):(V(n,o),i="unknown",o="")}return V(n,o),n}function V(e,t){return t&&!Vn[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 Y(e){e=e.trim();var t=Wn.get(e);if(t)return t.concat();for(var n,a=_(e),r={},i=[],o=0;n=a[o++];)r[n]||(r[n]=1,i.push(n));return Wn.put(e,i).concat()}function X(e,t,n){var a=n.filters;"string"==typeof a&&a.trim()&&!n._filters&&(n._filters=W(a.trim()));var i=Y(e),o=new Date-0,l=[],s=[],c=[];n.observers=[];for(var u=0,f=t.length;f>u;u++)if(i.length){var d="vm"+o+"_"+u;s.push(d),c.push(t[u]),l.push.apply(l,I(i,t[u],d,n))}n.args=c;var v=n.type,p=t.map(function(e){return String(e.$id).replace(zn,"$1")})+e+v,h=Un.get(p);if(h){if("duplex"===v){var m=Un.get(p+"setter");n.setter=m.apply(m,n.args)}return n.getter=h}if(l.length||l.push("fix"+o),"duplex"===v){var g={};l.forEach(function(e){var t=e.split("=");g[t[0].trim()]=t[1].trim()}),e=e.replace(/[\$\w]+/,function(e){return g[e]?g[e]:e});var y=r(s.concat("'use strict';return function(vvv){"+e+" = vvv\n}\n"));Un.put(p+"setter",y),n.setter=y.apply(y,n.args)}if("on"===v){-1===e.indexOf("(")?e+=".call(this, $event)":e=e.replace("(",".call(this,"),s.push("$event"),e="\nreturn "+e+";";var b=e.lastIndexOf("\nreturn"),$=e.slice(0,b),w=e.slice(b);e=$+"\n"+w}else e="\nreturn "+e+";";return h=r(s.concat("'use strict';\nvar "+l.join(",\n")+e)),Un.put(p,h)}function z(e){var t=dn.test(e);if(t){var n=rt(e);return 1===n.length?n[0].expr:n.map(function(e){return e.type?"("+e.expr+")":ea(e.expr)}).join(" + ")}return e}function W(e){return e=e.replace(Gn,"").replace(Zn,function(){return"],|"}).replace(Jn,function(e,t){return"["+ea(t)}).replace(Kn,function(){return'"],["'}).replace(Qn,function(){return'",'})+"]",r(["return ["+e+"]"])()}function U(e,t,n){var a=setTimeout(function(){var r=e.innerHTML;clearTimeout(a),r===n?t():U(e,t,r)})}function 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,rn[n.type].init(n),avalon.injectBinding(n),n.getter&&1===n.element.nodeType&&n.element.removeAttribute(n.name);e.length=0}function J(e,t){return e.priority-t.priority}function K(e,t,a){var r=!0;if(t.length){for(var i,o=e.attributes,l=[],s={},c=0;i=o[c++];){var u=i.name;if(!s[u]&&(s[u]=1,i.specified&&(a=u.match(ia)))){var f=a[1],d=a[2]||"",v=i.value;if(oa[f]?(d=f,f="on"):la[f]&&(d=f,f="attr",u="ms-"+f+"-"+d,n("warning!请改用"+u+"代替"+i.name+"!")),rn[f]){var p=v.replace(ra,""),h=v!==p,m={type:f,param:d,element:e,name:u,expr:p,oneTime:h,priority:(rn[f].priority||10*f.charCodeAt(0))+(Number(d.replace(/\D/g,""))||0)};if("html"===f||"text"===f){var g=at(v).filters;m.expr=m.expr.replace(g,""),m.filters=g.replace(fa,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,sa.test(f))return Z(l.slice(0,c+1),t);r&&(r=!ca.test(f))}Z(l,t)}}r&&!ta[e.tagName]&&(aa&&aa(e),et(e,t))}function Q(e){for(var t,n=e.attributes,a={},r=0;t=n[r++];)t.specified&&!ua.test(t.name)&&(a[P(t.name)]=R(t.value));return a}function et(e,t){var n=avalon.slice(e.childNodes);tt(n,t)}function tt(e,t){for(var n,a=0;n=e[a++];)switch(n.nodeType){case 1:var r=n;if(!r.msResolved&&r.parentNode&&1===r.parentNode.nodeType){var i=lt(r);if(i){var o=r.localName?r.localName.replace(i+":",""):r.nodeName,l=i+":"+P(o);ma.push({library:i,element:r,fullName:l,widget:o,vmodels:t,name:"widget"}),avalon.components[l]&&avalon.component(l)}}nt(n,t),n.msHasEvent&&avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent});break;case 3:dn.test(n.nodeValue)&&it(n,t,a)}}function nt(e,t,n){var a=e.getAttribute("ms-skip"),r=e.getAttributeNode("ms-important"),i=e.getAttributeNode("ms-controller");if("string"!=typeof a){if(n=r||i){var o=avalon.vmodels[n.value];if(!o)return;t=n===r?[o]:[o].concat(t),e.removeAttribute(n.name),e.classList.remove(n.name),G(e,o)}K(e,t)}}function at(e){if(e.indexOf("|")>0){var t=e.replace(va,function(e){return Array(e.length+1).join("1")}),n=t.replace(da,"ᄢ㍄").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(un,r),-1===n)break;if(t=e.slice(r,n),t&&a.push({expr:t}),r=n+un.length,n=e.indexOf(fn,r),-1===n)break;t=e.slice(r,n),t&&a.push(at(t,r)),r=n+fn.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(ra,function(){return i.oneTime=!0,""}),i.element=l,i.filters=i.filters.replace(fa,function(){return i.type="html",""}),i.pos=1e3*n+o,a.push(i)),Jt.appendChild(l)}e.parentNode.replaceChild(Jt,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(_t,function(a){var r=avalon.duplexHooks[a];r&&"function"==typeof r[n]&&(e=r[n](e,t))}),e}function ut(){for(var e=Aa.length-1;e>=0;e--){var t=Aa[e];t()===!1&&Aa.splice(e,1)}Aa.length||clearInterval(Na)}function ft(e,t){if(!e||1!==e.nodeType)return null;if(t)var n=t.effectName,a=t.effectDriver;else n=e.getAttribute("data-effect-name"),a=e.getAttribute("data-effect-driver");if(!n||!a)return null;var r=Pa.pop()||new pt;return r.el=e,r.driver=a,r.useCss="j"!==a,r.useCss&&(t&&avalon(e).addClass(t.effectClass),r.cssEvent="t"===a?Sa:Oa),r.name=n,r.callbacks=avalon.effects[n]||{},r}function dt(e,t){var n=e.getAttribute("data-effect-name");if(n){t.effectName=n,t.effectDriver=e.getAttribute("data-effect-driver");var a=+e.getAttribute("data-effect-stagger");t.effectLeaveStagger=+e.getAttribute("data-effect-leave-stagger")||a,t.effectEnterStagger=+e.getAttribute("data-effect-enter-stagger")||a,t.effectClass=e.className||0/0}}function vt(e){return e.replace(/^[\S]/g,function(e){return e.toUpperCase()})}function pt(){}function ht(e,t){var n=e.callbacks[t+"Class"];return"string"==typeof n?n:"function"==typeof n?n():e.name+"-"+t}function mt(e,t,n){var a=e.callbacks[t];a&&a.call(e,e.el,n)}function gt(e,t,n){var a=e.templateCache&&e.templateCache[t];if(a){for(var r,i=Ht.createDocumentFragment();r=a.firstChild;)i.appendChild(r);return i}return avalon.parseHTML(n)}function yt(e){for(var t=Ht.createDocumentFragment(),n=0,a=e.length;a>n;n++)t.appendChild(e[n]);return t}function bt(e,t,n){for(var a,r=0;a=e[r++];)a.className===n.effectClass&&avalon.effect.apply(a,t,i,i,n)}function $t(e,t,n){return e?setTimeout(t,++n*e):t(),n}function wt(e,t){for(var n=Jt.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 xt(e,t,n,a,r){var i=e.template.cloneNode(!0),o=avalon.slice(i.childNodes);i.appendChild(n.$anchor),r&&t.appendChild(i);var l=[n].concat(e.vmodels),s={nodes:o,vmodels:l,content:i};a.push(s)}function Ct(e){var t="object"===e.xtype?Nt:Tt,n=t(e),a=n.$anchor||(n.$anchor=e.element.cloneNode(!1));return a.nodeValue=e.signature,n.$outer=e.$outer,n}function Tt(e,t){for(var n=e.param||"el",a=0,r=Ia.length;r>a;a++){var i=Ia[a];if(i&&i.hasOwnProperty(n)){Ia.splice(a,1),t=i;break}}return t||(t=kt(n)),t}function kt(e){var t={$outer:{},$index:0,$oldIndex:0,$anchor:null,$first:!1,$last:!1,$remove:avalon.noop};t[e]=0/0;var n={$last:1,$first:1,$index:1};n[e]=1;var a=m(t,{force:n});return a.$id=Qt("$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 Nt(){return Ya.pop()||At()}function At(){var e=m({$key:"",$val:0/0,$index:0,$oldIndex:0,$outer:{},$anchor:null},{force:{$key:1,$val:1,$index:1}});return e.$id=Qt("$proxy$with"),e}function Mt(e,t,n){var a=e[t];if(a){var r=0===a.$id.indexOf("$proxy$each")?Ia:Ya;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 St(e,t){var n="_"+e;if(!St[n]){var a=Ht.createElement(e);Zt.appendChild(a),t=Gt?getComputedStyle(a,null).display:a.currentStyle.display,Zt.removeChild(a),St[n]=t}return St[n]}function Ot(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)}function Dt(){return/iPad|iPhone|iPod/i.test(tr)&&!e.MSStream?"backdropFilter"in document.documentElement.style?9:e.indexedDB?8:e.SpeechSynthesisUtterance?7:e.webkitAudioContext?6:e.matchMedia?5:e.history&&"pushState"in e.history?4:3:0/0}function Lt(e,t){return t&&ir.forEach(function(n){e[n]=t[n]}),e}var jt=Date.now(),Ht=e.document,Pt=Ht.head;Pt.insertAdjacentHTML("afterBegin",'<avalon ms-skip class="avalonHide"><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>');var Rt=Pt.firstChild,Ft="$"+jt,Bt={},qt=/[^, ]+/g,_t=/\w+/g,Vt=/^\[object SVG\w*Element\]$/,It=/^\[object (?:Window|DOMWindow|global)\]$/,Yt=Object.prototype,Xt=Yt.hasOwnProperty,zt=Yt.toString,Wt=Array.prototype,Ut=Wt.slice,Gt=e.dispatchEvent,Zt=Ht.documentElement,Jt=Ht.createDocumentFragment(),Kt=(Ht.createElement("div"),{});"Boolean Number String Function Array Date RegExp Object Error".replace(qt,function(e){Kt["[object "+e+"]"]=e.toLowerCase()});var Qt=function(e){return e=e||"avalon",String(Math.random()+Math.random()).replace(/\d\.\d{4}/,e)},en=l();avalon=function(e){return new avalon.init(e)},avalon.nextTick=new function(){function t(){for(var e=r.length,t=0;e>t;t++)r[t]();r=r.slice(e)}var n=e.setImmediate,a=e.MutationObserver;if(n)return n.bind(e);var r=[];if(a){var i=document.createTextNode("avalon");new a(t).observe(i,{characterData:!0});var o=!1;return function(e){r.push(e),o=!o,i.data=o}}return function(e){setTimeout(e,4)}},avalon.init=function(e){this[0]=this.element=e},avalon.fn=avalon.prototype=avalon.init.prototype,avalon.type=function(e){return null==e?String(e):"object"==typeof e||"function"==typeof e?Kt[zt.call(e)]||"object":typeof e};var tn=function(e){return"[object Function]"===zt.call(e)};avalon.isFunction=tn,avalon.isWindow=function(e){return It.test(zt.call(e))},avalon.isPlainObject=function(e){return"[object Object]"===zt.call(e)&&Object.getPrototypeOf(e)===Yt},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||tn(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:qt,subscribers:Ft,version:1.55,ui:{},log:n,slice:function(e,t,n){return Ut.call(e,t,n)},noop:i,error:function(e,t){throw new(t||Error)(e)},oneObject:o,range:function(e,t,n){n||(n=1),null==t&&(t=e||0,e=0);for(var a=-1,r=Math.max(0,Math.ceil((t-e)/n)),i=new Array(r);++a<r;)i[a]=e,e+=n;return i},eventHooks:{},bind:function(e,t,n,a){var r=avalon.eventHooks,i=r[t];return"object"==typeof i&&(t=i.type||t,a=i.phase||!!a,n=i.fn?i.fn(e,n):n),e.addEventListener(t,n,a),n},unbind:function(e,t,n,a){var r=avalon.eventHooks,o=r[t],l=n||i;"object"==typeof o&&(t=o.type||t,a=o.phase||!!a),e.removeEventListener(t,l,a)},css:function(e,t,n){e instanceof avalon&&(e=e[0]);var a,r=/[_-]/.test(t)?P(t):t;if(t=avalon.cssName(r)||r,void 0===n||"boolean"==typeof n){a=Pn[r+":get"]||Pn["@: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=Pn[r+":set"]||Pn["@: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 nn=avalon.bindingHandlers={},an=avalon.bindingExecutors={},rn=avalon.directives={};avalon.directive=function(e,t){return nn[e]=t.init=t.init||i,an[e]=t.update=t.update||i,rn[e]=t};var on=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 ln="http://www.w3.org/2000/svg",sn=Ht.createElementNS(ln,"svg");sn.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',Vt.test(sn.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 cn=avalon.eventHooks;"onmouseenter"in Zt||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){cn[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]&&!cn.animationend&&(cn.animationend={type:n})}),void 0===Ht.onmousewheel&&(cn.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 un,fn,dn,vn,pn,hn=/[-.*+?^${}()|[\]\/\\]/g,mn={interpolate:function(e){if(un=e[0],fn=e[1],un===fn){throw new SyntaxError("openTag!==closeTag")}u.openTag=un,u.closeTag=fn;var t=f(un),n=f(fn);dn=new RegExp(t+"(.*?)"+n),vn=new RegExp(t+"(.*?)"+n,"g"),pn=new RegExp(t+".*?"+n+"|\\sms-")}};u.async=!0,u.debug=!0,u.plugins=mn,u.plugins.interpolate(["{{","}}"]),u.paths={},u.shim={},u.maxRepeatSize=100,avalon.config=u;var gn=avalon.vmodels={};avalon.define=function(e){var t=e.$id;t||n("warning: vm必须指定$id");var a=m(e);return a.$id=t,gn[t]=a};var yn=o("$id,$watch,$fire,$events,$model,$skipArray,$active,$pathname,$up,$ups,$track,$accessors"),bn={get:function(){return T(this)},set:i,enumerable:!1,configurable:!0},$n=["push","pop","shift","unshift","splice"],wn=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])&&(Cn.call(this.$track,t,1),Cn.call(this,t,1));else if("function"==typeof e)for(t=this.length-1;t>=0;t--){var n=this[t];e(n,t)&&(Cn.call(this.$track,t,1),Cn.call(this,t,1))}else Cn.call(this.$track,0,this.length),Cn.call(this,0,this.length);Gt||(this.$model=T(this)),this.notify(),this._.length=this.length},clear:function(){return this.removeAll()}},Cn=wn.splice;$n.forEach(function(e){var t=wn[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 N(this.$track,e,n),Gt||(this.$model=T(this)),this.notify(),this._.length=this.length,i}}),"sort,reverse".replace(qt,function(e){xn[e]=function(){var t=this.concat(),n=this,a=Math.random(),r=[],i=!1;wn[e].apply(n,arguments);for(var o=0,l=t.length;l>o;o++){var s=n[o],c=t[o];if(s===c)r.push(o);else{var u=t.indexOf(s);r.push(u),t[u]=a,i=!0}}return i&&(k(this.$track,r),Gt||(this.$model=T(this)),this.notify()),this}});var Tn=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||rn[e.type].update||i,e.update=function(){var t=!1;e.getter||(t=!0,Tn.begin({callback:function(t){A(t,e)}}),e.getter=X(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=Ja.$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=un+(e.oneTime?"::":"")+e.expr+fn)}finally{t&&Tn.end()}},e.update()};var kn=0,En=avalon.$$subscribers=[],Nn=new Date,An={},Mn=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(qt,function(e){Mn[e]=Mn.g});var Sn=/<([\w:]+)/,On=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Dn=o(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),Ln=Ht.createElement("script"),jn=/<|&#?\w+;/;avalon.parseHTML=function(e){var t=Jt.cloneNode(!1);if("string"!=typeof e)return t;if(!jn.test(e))return t.appendChild(Ht.createTextNode(e)),t;e=e.replace(On,"<$1></$2>").trim();var n,a=(Sn.exec(e)||["",""])[1].toLowerCase(),r=Mn[a]||Mn._default;r.innerHTML=e;var i=r.getElementsByTagName("script");if(i.length)for(var o,l=0;o=i[l++];)if(Dn[o.type]){var s=Ln.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(qt,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-"+H(e||""),arguments.length){case 2:return this.attr(e,t),this;case 1:var n=this.attr(e);return R(n);case 0:var a={};return Wt.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=P(e.slice(5)),a[e]=R(t.value)))}),a}},removeData:function(e){return e="data-"+H(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||Zt)},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=_n[q(t)+a];if(r)var i=r(t,e);else{if(n)return(t.value||"").replace(/\r/g,"");t.value=e}}return n?i:this}}),Zt.dataset&&(avalon.fn.data=function(e,t){e=e&&P(e);var n=this[0].dataset;switch(arguments.length){case 2:return n[e]=t,this;case 1:return t=n[e],R(t);case 0:var r=a();for(e in n)r[e]=R(n[e]);return r}});var Hn=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/;avalon.parseJSON=JSON.parse,avalon.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){avalon.fn[e]=function(n){var a=this[0]||{},r=F(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 Pn=avalon.cssHooks=a(),Rn=["","-webkit-","-moz-","-ms-"],Fn={"float":"cssFloat"};avalon.cssNumber=o("animationIterationCount,animationIterationCount,columnCount,order,flex,flexGrow,flexShrink,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(Fn[e])return Fn[e];t=t||Zt.style;for(var a=0,r=Rn.length;r>a;a++)if(n=P(Rn[a]+e),n in t)return Fn[e]=n;return null},Pn["@:set"]=function(e,t,n){e.style[t]=n},Pn["@: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},Pn["opacity:get"]=function(e){var t=Pn["@:get"](e,"opacity");return""===t?"1":t},"top,left".replace(qt,function(e){Pn[e+":get"]=function(t){var n=Pn["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Bn={position:"absolute",visibility:"hidden",display:"block"},qn=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(qt,function(e){var t=e.toLowerCase(),n="client"+e,a="scroll"+e,r="offset"+e;Pn[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)},Pn[t+"&get"]=function(e){var n=[];B(e,n);for(var a,r=Pn[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 Pn[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return Pn[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return Pn[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 _n={"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)}},Vn={},In=["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(",");In.replace(/\w+/g,function(e){Vn[e]=!0});var Yn=/[a-z_$]/i,Xn=/[\s\uFEFF\xA0]/,zn=/(\$proxy\$[a-z]+)\d+$/,Wn=new on(218),Un=new on(128);avalon.normalizeExpr=z,avalon.parseExprProxy=X;var Gn=/\)\s*$/,Zn=/\)\s*\|/g,Jn=/\|\s*([$\w]+)/g,Kn=/"\s*\["/g,Qn=/"\s*\(/g,ea=JSON.stringify;avalon.scan=function(e,t){e=e||Zt;var n=t?[].concat(t):[];nt(e,n)};var ta=o("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),na=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]},aa=en&&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,ra=/^\s*::/,ia=/ms-(\w+)-?(.*)/,oa=o("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),la=o("value,title,alt,checked,selected,disabled,readonly,enabled,href,src"),sa=/^if|widget|repeat$/,ca=/^each|with|html|include$/,ua=/^(ms-\S+|data-\S+|on[a-z]+|id|style|class|tabindex)$/,fa=/\|\s*html(?:\b|$)/,da=/\|\|/g,va=/(['"])(\\\1|.)+?\1/g,pa=function(){this.queue=[]};pa.prototype={render:function(e){if(!this.locked){this.locked=e?Zt.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 ha=new pa,ma=[],ga=[],ya={$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({},ya,n));for(var a,r=0;a=ma[r];r++)t===a.fullName&&(ma.splice(r,1),r--,function(n,a,r,i){var o=1,l=n.library,s=avalon.libraries[l]||ya,c=Q(r),u=ot(n.vmodels,c.config||n.widget),f=c.$id||c.identifier||Qt(i);delete c.config,delete c.$id,delete c.identifier;var d={},v=avalon.components[a.$extend];v?(avalon.mix(!0,d,v),d=v.$construct.call(r,d,{},{})):avalon.mix(!0,d,a),d=avalon.components[t].$construct.call(r,d,u,c),d.$refs={},d.$id=f;var p=d.$slot,h=d.$replace,m=d.$container,g=d.$template;delete d.$slot,delete d.$replace,delete d.$container,delete d.$construct;var y=avalon.define(d)||{};r.msResolved=1,y.$init(y,r),s.$init(y,r);for(var b,$,w=r.childNodes,x={},C=0;$=w[C++];){var T=1===$.nodeType&&$.getAttribute("slot")||p;T&&(x[T]?x[T].push($):x[T]=[$])}y.$$template&&(avalon.clearHTML(r),r.innerHTML=y.$$template(g));for(C in x)if(y.hasOwnProperty(C)){var k=x[C];if(k.length){for(var E=Jt.cloneNode(!0),N=0;b=k[N++];)E.appendChild(b);y[C]=E}x[C]=null}x=null;var A=r.firstChild;h&&(A=r.firstChild,r.parentNode.replaceChild(A,r),A.msResolved=1,r=n.element=A),m&&m.appendChild(r),avalon.fireDom(r,"datasetchanged",{library:l,vm:y,childReady:1});var M=0,S=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&&(M++,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)},M?Math.max(17*M,100):17);avalon.unbind(r,"datasetchanged",S),n.rollback=function(){try{y.$dispose(y,r),s.$dispose(y,r)}catch(e){}delete avalon.vmodels[y.$id]},O(n,ga),e.chrome&&r.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(D)})}});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.fireDom=function(e,t,n){if(Ht.createEvent){var a=Ht.createEvent("Events");a.initEvent(t,!0,!0,n),avalon.mix(a,n),e.dispatchEvent(a)}else Zt.contains(e)&&(a=Ht.createEventObject(),avalon.mix(a,n),e.fireEvent("on"+t,a))},avalon.libraries=[],avalon.library=function(e,t){Ht.namespaces&&Ht.namespaces.add(e,"http://www.w3.org/1999/xhtml"),avalon.libraries[e]=avalon.mix({$init:i,$ready:i,$dispose:i},t||{})},avalon.library("ms");var ba=["autofocus,autoplay,async,allowTransparency,checked,controls","declare,disabled,defer,defaultChecked,defaultSelected","contentEditable,isMap,loop,multiple,noHref,noResize,noShade","open,readOnly,selected"].join(","),$a={};ba.replace(qt,function(e){$a[e.toLowerCase()]=e});var wa={"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(qt,function(e){wa[e.toLowerCase()]=e});var Ca=avalon.directive("attr",{init:function(e){if(e.expr=z(e.expr.trim()),"include"===e.type){var t=e.element;dt(t,e),e.includeRendered=na(t,"data-include-rendered",e.vmodels),e.includeLoaded=na(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||Zt.hasAttribute||(t=t.replace(/&/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;!Gt&&wa[a]&&(a=wa[a]);var l=$a[a];if("boolean"==typeof n[l]&&(n[l]=!!t,t||(o=!0)),o)return n.removeAttribute(a);var s=Vt.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(qt,function(e){rn[e]=Ca}),avalon.directive("class",{init:function(e){var t=e.param,a=e.type;if(!t||isFinite(t)?(e.param="",rn.effect.init(e)):(n("ms-"+a+'-xxx="yyy"这种用法已经过时,请使用ms-'+a+'="xxx:yyy"'),e.expr="["+ea(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(qt,function(e){rn[e]=rn["class"]}),avalon.directive("css",{init:rn.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 Ta=/^(?:checkbox|radio)$/,ka=/^(?:radio|checked)$/,Ea=/^(file|button|reset|submit|checkbox|radio|range)$/;avalon.directive("duplex",{priority:2e3,init:function(e,t){function a(t){e.changed.call(this,t,e)}function r(){d=!0}function l(){d=!1}var s=e.element,c=e.vmodels;e.changed=na(s,"data-duplex-changed",c)||i;var u=[],f=o("string,number,boolean,checked");"radio"===s.type&&""===e.param&&(e.param="checked"),e.param.replace(_t,function(a){Ta.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,v=function(){var t=s.value;if(!d&&t!==e.oldValue&&null!==e.pipe){var n=e.pipe(t,e,"get");e.setter(n),a.call(s,n)}};switch(e.xtype){case"radio":e.bound("click",function(){var t=e.pipe(s.value,e,"get");e.setter(t),a.call(s,t)});break;case"checkbox":e.bound("change",function(){var t=s.checked?"ensure":"remove",r=e.getter.apply(0,e.vmodels);Array.isArray(r)||(n("ms-duplex应用于checkbox上要对应一个数组"),r=[r]);var i=e.pipe(s.value,e,"get");avalon.Array[t](r,i),a.call(s,r)});break;case"change":e.bound("change",v);break;case"input":en?e.bound("input",v):(e.bound("input",v),e.bound("compositionstart",r),e.bound("compositionend",l),e.bound("DOMAutoComplete",v));break;case"select":e.bound("change",function(){var t=avalon(s).val();if(t=Array.isArray(t)?t.map(function(t){return e.pipe(t,e,"get")}):e.pipe(t,e,"get"),t+""!==e.oldValue)try{e.setter(t)}catch(a){n(a)}}),e.bound("datasetchanged",function(t){if("selectDuplex"===t.bubble){var n=e._value,r=Array.isArray(n)?n.map(String):n+"";avalon(s).val(r),s.oldValue=r+"",a.call(s,r)}})}"input"!==e.xtype||Ea.test(s.type)||("hidden"!==s.type&&(e.bound("focus",function(){s.msFocus=!0}),e.bound("blur",function(){s.msFocus=!1})),s.avalonSetter=v,Ma(function(){if(Zt.contains(s))s.msFocus||e.oldValue===s.value||v();else if(!s.msRetain)return!1}))},update:function(e){var t,n=this.element,a=this;if(!this.init){for(var r in avalon.vmodels){var i=avalon.vmodels[r];i.$fire("avalon-ms-duplex-init",a)}var o=a.pipe||(a.pipe=ct);o(null,a,"init"),this.init=1}switch(this.xtype){case"input":case"change":if(t=this.pipe(e,this,"set"),t!==this.oldValue){var l=!1;if(n.msFocus)try{var s=n.selectionStart,c=n.selectionEnd;if(s===c){var u=s;l=!0}}catch(f){}n.value=this.oldValue=t,l&&(n.selectionStart=n.selectionEnd=u)}break;case"radio":t=a.isChecked?!!e:e+""===n.value,n.checked=t;break;case"checkbox":var d=[].concat(e);t=this.pipe(n.value,this,"get"),n.checked=d.indexOf(t)>-1;break;case"select":a._value=e,n.msHasEvent?avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent}):n.msHasEvent="selectDuplex"}"select"!==a.xtype&&a.changed.call(n,t,a)}})}avalon.duplexHooks={checked:{get:function(e,t){return!t.oldValue}},string:{get:function(e){return e},set:st},"boolean":{get:function(e){return"true"===e},set:st},number:{get:function(e,t){var n=parseFloat(e);if(-e===-n)return n;var a=/strong|medium|weak/.exec(t.element.getAttribute("data-duplex-number"))||["medium"];switch(a[0]){case"strong":return 0;case"medium":return""===e?"":0;case"weak":return e}},set:st}};var Na,Aa=[];avalon.tick=function(e){1===Aa.push(e)&&(Na=setInterval(ut,60))};var Ma=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){Ma=avalon.tick}},avalon.directive("effect",{priority:5,init:function(e){var t,n,a=e.expr,r=a.replace(vn,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=dn.test(a)?z(t):ea(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&&(Da||La)){var l=r[ja]||i[ja];l&&"0s"!==l&&(a.setAttribute("data-effect-driver","t"),o=!0),o||(l=r[Ha]||i[Ha],l&&"0s"!==l&&(a.setAttribute("data-effect-driver","a"),o=!0))}o||avalon.effects[n]&&(a.setAttribute("data-effect-driver","j"),o=!0),o&&a.setAttribute("data-effect-name",n)}}}),avalon.effects={},avalon.effect=function(e,t){avalon.effects[e]=t};var Sa,Oa,Da=!1,La=!1,ja=avalon.cssName("transition-duration"),Ha=avalon.cssName("animation-duration");!new function(){var t,n={TransitionEvent:"transitionend",WebKitTransitionEvent:"webkitTransitionEnd",OTransitionEvent:"oTransitionEnd",otransitionEvent:"otransitionEnd"};for(var a in n){if(e[a]){t=n[a];break}try{{document.createEvent(a)}t=n[a];break}catch(r){}}"string"==typeof t&&(Da=!0,Sa=t),n={AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"};var i;for(a in n)if(e[a]){i=n[a];break}"string"==typeof i&&(Da=!0,Oa=i)};var Pa=[],Ra=new pa;pt.prototype={contrustor:pt,enterClass:function(){return ht(this,"enter")},leaveClass:function(){return ht(this,"leave")},actionFun:function(e,t,n){if(!document.hidden){var a=this,r=a.el,i="leave"===e;e=i?"leave":"enter";var o=i?"enter":"leave";mt(a,"abort"+vt(o)),mt(a,"before"+vt(e)),i||t(r);var l=function(o){r.removeEventListener(a.cssEvent,a.cssCallback),i?(t(r),avalon(r).removeClass(a.cssClass)):"a"===a.driver&&avalon(r).removeClass(a.cssClass),o!==!0&&(mt(a,"after"+vt(e)),n&&n(r)),a.dispose()};a.useCss?(a.cssCallback&&a.cssCallback(!0),a.cssClass=ht(a,e),a.cssCallback=l,a.update=function(){r.addEventListener(a.cssEvent,a.cssCallback),i||"t"!==a.driver||avalon(r).removeClass(a.cssClass)},avalon(r).addClass(a.cssClass),Ra.render(!0),Ra.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,Pa.unshift(this)>100&&Pa.pop()}};var Fa=function(e,t){var n=Ut.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:Fa,append:function(e,t,n,a){return Fa(e,1,function(){t.appendChild(e)},n,a)},before:function(e,t,n,a){return Fa(e,1,function(){t.parentNode.insertBefore(e,t)},n,a)},remove:function(e,t,n,a){return Fa(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=Qt("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=Jt.cloneNode(!0);l[0];)o.appendChild(l[0])}if(l=avalon.slice(o.childNodes),a){for(var s=n.nodeValue.slice(0,-4);;){var c=n.previousSibling;if(!c||8===c.nodeType&&c.nodeValue===s)break;r.removeChild(c)}r.insertBefore(o,n)}else avalon.clearHTML(n).appendChild(o);tt(l,t.vmodels)}}}),avalon.directive("if",{priority:10,update:function(e){function t(){r.getAttribute(a.name)&&(r.removeAttribute(a.name),K(r,a.vmodels)),a.rollback=null}var n,a=this,r=this.element,i=a.stamp=+new Date,o=function(){i===a.stamp&&(a.recoverNode=null)};a.recoverNode&&a.recoverNode();try{if(!r.parentNode)return;n=r.parentNode}catch(l){return}if(e){if(8===r.nodeType){var s=a.keep,c=avalon.effect.apply(s,1,function(){i===a.stamp&&(r.parentNode.replaceChild(s,r),r=a.element=s,s.getAttribute("_required")&&(r.required=!0,r.removeAttribute("_required")),r.querySelectorAll&&avalon.each(r.querySelectorAll("[_required=true]"),function(e){e.required=!0,e.removeAttribute("_required")}),t())},o);c=c===!1}c||t()}else if(1===r.nodeType){r.required===!0&&(r.required=!1,r.setAttribute("_required","true"));try{avalon.each(r.querySelectorAll(":required"),function(e){r.required=!1,e.setAttribute("_required","true")})}catch(l){}var u=a.element=Ht.createComment("ms-if"),f=r.nextSibling;a.recoverNode=function(){a.recoverNode=null,u.parentNode!==n&&(n.insertBefore(u,f),a.keep=r)},avalon.effect.apply(r,0,function(){a.recoverNode=null,i===a.stamp&&(r.parentNode.replaceChild(u,r),a.keep=r,Rt.appendChild(r),a.rollback=function(){r.parentNode===Rt&&Rt.removeChild(r)})},o)}}});var Ba=function(){return new e.XMLHttpRequest},qa=avalon.templateCache={};avalon.directive("include",{init:rn.attr.init,update:function(e){var t=this,a=this.element,r=t.vmodels,i=t.includeRendered,o=t.effectName&&t.effectClass,l=t.templateCache,s=t.includeReplace,c=t.includeLoaded,u=s?a.parentNode:a,f=t._element;t.recoverNodes=t.recoverNodes||avalon.noop;var d=function(n){var d=t._stamp=+new Date;if(c){var v=c.apply(u,[n].concat(r));"string"==typeof v&&(n=v)}i&&U(u,function(){i.call(u)},0/0);var p=t.includeLastID||"_default";t.includeLastID=e;var h=l&&l[p]||Ht.createElement(a.tagName||t._element.tagName);o&&(h.className=o,u.insertBefore(h,t.start)),(l||{})[p]=h;var m=t.recoverNodes();for(m&&u.insertBefore(m,t.end);;){var g=t.start.nextSibling;if(!g||g===h||g===t.end)break;h.appendChild(g)}avalon.effect.remove(h,u,function(){l&&d===t._stamp&&Rt.appendChild(h)},t);var y=u,b=avalon.noop,$=avalon.noop,w=gt(t,e,n),x=avalon.slice(w.childNodes);s&&o?(y=f,y.innerHTML="",y.setAttribute("ms-skip","true"),u.insertBefore(y,t.end.nextSibling),b=function(){y.insertBefore(w,null)},$=function(){t.recoverNodes=avalon.noop,d===t._stamp&&(w=yt(x),u.insertBefore(w,t.end),tt(x,r)),y.parentNode===u&&u.removeChild(y)},t.recoverNodes=function(){return t.recoverNodes=avalon.noop,yt(x)}):b=function(){u.insertBefore(w,t.end),tt(x,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 v=Ba();v.onload=function(){for(var t,n=v.responseText,a=0;t=qa[e][a++];)t(n);qa[e]=n},v.onerror=function(){n("ms-include load ["+e+"] error")},qa[e]=[d],v.open("GET",e,!0),"withCredentials"in v&&(v.withCredentials=!0),v.setRequestHeader("X-Requested-With","XMLHttpRequest"),v.send(null)}else{var p=e&&1===e.nodeType?e:Ht.getElementById(e);p&&avalon.nextTick(function(){d(p.value||p.innerText||p.innerHTML)})}}});var _a=/\(([^)]*)\)/,Va=avalon.directive("on",{priority:3e3,init:function(e){var t=e.expr;e.type="on";var n=e.param.replace(/-\d+$/,"");if("function"==typeof Va[n+"Hook"]&&Va[n+"Hook"](e),t.indexOf("(")>0&&t.indexOf(")")>-1){var a=(t.match(_a)||["",""])[1].trim();(""===a||"$event"===a)&&(t=t.replace(_a,""))}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=na(n,"data-with-sorted",e.vmodels);var a=na(n,"data-"+t+"-rendered",e.vmodels),r=Qt(t),i=Ht.createComment(r+":start"),o=e.element=Ht.createComment(r+":end");if(e.signature=r,e.start=i,e.template=Jt.cloneNode(!1),"repeat"===t){var l=n.parentNode;l.replaceChild(o,n),l.insertBefore(i,o),e.template.appendChild(n)}else{for(;n.firstChild;)e.template.appendChild(n.firstChild);n.appendChild(i),n.appendChild(o),l=n}if(e.element=o,a)var s=avalon.bind(l,"datasetchanged",function(){a.apply(l,l.args),avalon.unbind(l,"datasetchanged",s),l.msRendered=a})}},update:function(e,t){var n=this,a=this.xtype;this.enterCount+=1;var r=!t;if(r){n.$outer={};var i="$key",o="$val";"array"===a&&(i="$first",o="$last");for(var l,s=0;l=n.vmodels[s++];)if(l.hasOwnProperty(i)&&l.hasOwnProperty(o)){n.$outer=l;break}}var c=this.track;if(n.sortedCallback){var f=n.sortedCallback.call($,c);f&&Array.isArray(f)&&(c=f)}var d="move";n.$repeat=e;var v=[],p=r&&Jt.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 w=c[s],x=g[w];if(x)v.push({}),g[w]=!0;else{if(x=Ct(this),x.$up=null,"array"===a){d="add",x.$id=w;var C=e[s];x[m]=C,Object(C)===C&&(C.$ups=C.$ups||{},C.$ups[m]=x)}else d="append",x.$key=w,x.$val=e[w];this.cache[w]=x;var k=x.$anchor||(x.$anchor=y.cloneNode(!1));k.nodeValue=this.signature,xt(n,p,x,v,r&&!n.effectDriver),Et(x,n,a)}1===this.enterCount&&(x.$active=!1,x.$oldIndex=x.$index,x.$active=!0,x.$index=s),"array"===a?(x.$first=0===s,x.$last=s===b-1):x.$val=T(e[w]),h.push(x)}if(this.proxies=h,r&&!n.effectDriver)$.insertBefore(p,y),v.forEach(function(e){tt(e.nodes||[],e.vmodels),e.nodes=e.vmodels=null});else{var E=n.staggerIndex=0;for(w in g)g[w]!==!0&&(d="del",wt(g[w].$anchor,n),Mt(this.cache,w,m),g[w]=null);for(s=0;b>s;s++){x=h[s],w="array"===a?x.$id:x.$key;var N=h[s-1],A=N?N.$anchor:n.start;g[w]?x.$index!==x.$oldIndex&&!function(e,t){E=$t(n.effectEnterStagger,function(){var a=wt(e.$anchor),r=avalon.slice(a.childNodes);$.insertBefore(a,t.nextSibling),bt(r,1,n)},E)}(x,A):!function(e,t){var a=e.nodes,r=e.vmodels;a&&(E=$t(n.effectEnterStagger,function(){$.insertBefore(e.content,t.nextSibling),tt(a,r),bt(a,1,n)},E)),e.nodes=e.vmodels=null}(v[s],A)}}if(!e.$track)for(w in this.cache)Mt(this.cache,w,m);!function(e){$.args=e,$.msRendered&&$.msRendered.apply($,e)}(u.newWatch?arguments:[d]);var M=setTimeout(function(){clearTimeout(M),avalon.fireDom($,"datasetchanged",{bubble:$.msHasEvent})});this.enterCount-=1}}),"with,each".replace(qt,function(e){rn[e]=avalon.mix({},rn.repeat,{priority:1400})});var Ia=[],Ya=[];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=St,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||St(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=St(a.nodeName))):a.style.display="none"))}});var Xa=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,za=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,Wa=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/gi,Ua={a:/\b(href)\=("javascript[^"]*"|'javascript[^']*')/gi,img:/\b(src)\=("javascript[^"]*"|'javascript[^']*')/gi,form:/\b(action)\=("javascript[^"]*"|'javascript[^']*')/gi},Ga=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Za=/([^\#-~| |!])/g,Ja=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:P,sanitize:function(e){return e.replace(Xa,"").replace(Wa,function(e){var t=e.toLowerCase().match(/<(\w+)\s/);if(t){var n=Ua[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,"&").replace(Ga,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(Za,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")},currency:function(e,t,n){return(t||"¥")+Ot(e,isFinite(n)?n:2)},number:Ot};!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+)\)\/$/;Ja.date=function(t,n){var a,r,i=Ja.date.locate,c="",u=[];if(n=n||"mediumDate",n=i[n]||n,"string"==typeof t)if(/^\d+$/.test(t))t=e(t);else if(s.test(t))t=+RegExp.$1;else{var f=t.trim(),d=[0,0,0,0,0,0,0],v=new Date(0);f=f.replace(/^(\d+)\D(\d+)\D(\d+)/,function(t,n,a,r){var i=4===r.length?[r,n,a]:[n,a,r];return d[0]=e(i[0]),d[1]=e(i[1])-1,d[2]=e(i[2]),""});var p=v.setFullYear,h=v.setHours;f=f.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/,function(t,n,a,r,i){return d[3]=e(n),d[4]=e(a),d[5]=e(r),i&&(d[6]=Math.round(1e3*parseFloat("0."+i))),""});var m=0,g=0;f=f.replace(/Z|([+-])(\d\d):?(\d\d)/,function(t,n,a,r){return p=v.setUTCFullYear,h=v.setUTCHours,n&&(m=e(n+a),g=e(n+r)),""}),d[3]-=m,d[4]-=g,p.apply(v,d.slice(0,3)),h.apply(v,d.slice(3)),t=v}if("number"==typeof t&&(t=new Date(t)),"date"===avalon.type(t)){for(;n;)r=l.exec(n),r?(u=u.concat(r.slice(1)),n=u.pop()):(u.push(n),n=null);return u.forEach(function(e){a=o[e],c+=a?a(t,i):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}};var c={AMPMS:{0:"上午",1:"下午"},DAY:{0:"星期日",1:"星期一",2:"星期二",3:"星期三",4:"星期四",5:"星期五",6:"星期六"},MONTH:{0:"1月",1:"2月",2:"3月",3:"4月",4:"5月",5:"6月",6:"7月",7:"8月",8:"9月",9:"10月",10:"11月",11:"12月"},SHORTDAY:{0:"周日",1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六"},fullDate:"y年M月d日EEEE",longDate:"y年M月d日",medium:"yyyy-M-d H:mm:ss",mediumDate:"yyyy-M-d",mediumTime:"H:mm:ss","short":"yy-M-d ah:mm",shortDate:"yy-M-d",shortTime:"ah:mm"};c.SHORTMONTH=c.MONTH,Ja.date.locate=c};var Ka,Qa=[],er=function(e){Ka=!0;var t=avalon.require;for(t&&t.checkDeps&&(modules["domReady!"].state=4,t.checkDeps());e=Qa.shift();)e(avalon)};"complete"===Ht.readyState?setTimeout(er):Ht.addEventListener("DOMContentLoaded",er),e.addEventListener("load",er),avalon.ready=function(e){Ka?e(avalon):Qa.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(Ht.body)});var tr=navigator.userAgent.toLowerCase(),nr=tr.indexOf("android")>0,ar=Dt(),rr=avalon.gestureHooks={pointers:{},start:function(e,t){for(var n=0;n<e.changedTouches.length;n++){var a=e.changedTouches[n],r={startTouch:Lt({},a),startTime:Date.now(),status:"tapping",element:e.target};rr.pointers[a.identifier]=r,t(r,a)}},move:function(e,t){for(var n=0;n<e.changedTouches.length;n++){var a=e.changedTouches[n],r=rr.pointers[a.identifier];if(!r)return;"lastTouch"in r||(r.lastTouch=r.startTouch,r.lastTime=r.startTime,r.deltaX=r.deltaY=r.duration=r.distance=0);var i=Date.now()-r.lastTime;if(i>0){var o=70;i>o&&(i=o),r.duration+i>o&&(r.duration=o-i),r.duration+=i,r.lastTouch=Lt({},a),r.lastTime=Date.now(),r.deltaX=a.clientX-r.startTouch.clientX,r.deltaY=a.clientY-r.startTouch.clientY;var l=r.deltaX*r.deltaX,s=r.deltaY*r.deltaY;r.distance=Math.sqrt(l+s),r.isVertical=s>l,t(r,a)}}},end:function(e,t){for(var n=0;n<e.changedTouches.length;n++){var a=e.changedTouches[n],r=a.identifier,i=rr.pointers[r];i&&(t(i,a),delete rr.pointers[r])
|
3
|
-
}},fire:function(e,t,n){if(e){var a=document.createEvent("Events");a.initEvent(t,!0,!0),avalon.mix(a,n),e.dispatchEvent(a)}},add:function(e,t){function n(e){t.touchmove(e)}function a(e){t.touchend(e),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",a),document.removeEventListener("touchcancel",r)}function r(e){t.touchcancel(e),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",a),document.removeEventListener("touchcancel",r)}t.events.forEach(function(i){avalon.eventHooks[i]={fn:function(i,o){return i["touch-"+e]||(i["touch-"+e]="1",i.addEventListener("touchstart",function(e){t.touchstart(e),document.addEventListener("touchmove",n),document.addEventListener("touchend",a),document.addEventListener("touchcancel",r)})),o}}})}},
|
1
|
+
!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("Avalon requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(){avalon.config.debug&&console.log.apply(console,arguments)}function a(){return Object.create(null)}function r(){}function i(e){return Function.apply(r,e)}function o(e,t){"string"==typeof e&&(e=e.match(Bt)||[]);for(var n={},a=void 0!==t?t:1,r=0,i=e.length;i>r;r++)n[e[r]]=a;return n}function l(e){if(e&&"object"==typeof e){var t=e.length,n=Xt.call(e);if(/(Array|List|Collection|Map|Arguments)\]$/.test(n))return!0;if("[object Object]"===n&&t===t>>>0)return!0}return!1}function s(e,t){if(e&&e.childNodes)for(var n,a=e.childNodes,r=0;n=a[r++];)if(n.tagName){var i=jt.createElementNS(rn,n.tagName.toLowerCase());zt.forEach.call(n.attributes,function(e){i.setAttribute(e.name,e.value)}),s(n,i),t.appendChild(i)}}function c(e){for(var t in e)if(Yt.call(e,t)){var n=e[t];"function"==typeof c.plugins[t]?c.plugins[t](n):"object"==typeof c[t]?avalon.mix(c[t],n):c[t]=n}return this}function u(e){return(e+"").replace(vn,"\\$&")}function f(e,t){var n=this.$events||(this.$events={}),a=n[e]||(n[e]=[]);if("function"==typeof t){var i=t;i.uniqueNumber=Math.random(),t={element:Gt,type:"user-watcher",handler:r,vmodels:[this],expr:e,uniqueNumber:i.uniqueNumber},t.wildcard=/\*/.test(e)}if(t.update)t.oneTime||avalon.Array.ensure(a,t);else{if(/\w\.*\B/.test(e)||"*"===e){t.getter=r;var o=this;t.update=function(){var e=this.fireArgs||[];e[2]&&t.handler.apply(o,e),delete this.fireArgs},a.sync=!0,avalon.Array.ensure(a,t)}else avalon.injectBinding(t);i&&(t.handler=i)}return function(){t.update=t.getter=t.handler=r,t.element=jt.createElement("a")}}function d(e,t){var n=this.$events;if(n&&n[e]){t&&(t[2]=e);var a=n[e];if(p(a,t),t&&n["*"]&&!/\./.test(e))for(var r,i=0;r=n["*"][i++];)try{r.handler.apply(this,t)}catch(o){}var l=this.$up;l&&(this.$pathname&&d.call(l,this.$pathname+"."+e,t),d.call(l,"*."+e,t))}else{if(l=this.$up,this.$ups){for(var s in this.$ups)d.call(this.$ups[s],s+"."+e,t);return}if(l){var c=this.$pathname;""===c&&(c="*");var u=c+"."+e;a=u.split("."),-1===a.indexOf("*")?(d.call(l,u,t),a[1]="*",d.call(l,a.join("."),t)):d.call(l,u,t)}}}function v(e,t){for(;;){if(e.$watch){var n=e.$events||(e.$events={}),a=n[t]||(n[t]=[]);return void xn.collectDependency(a)}if(e=e.$up,!e)break;t=e.$pathname+"."+t}}function p(e,t){if(e){new Date-kn>444&&"object"==typeof e[0]&&O();for(var n,a=[],r=[],i=0;n=e[i++];)"user-watcher"===n.type?a.push(n):r.push(n);if(c.async){for(va.render(),i=0;n=r[i++];)if(n.update){var o=M(n);va.queue[o]||(va.queue[o]=1,va.queue.push(n))}}else for(i=0;n=r[i++];)n.update&&n.update();for(i=0;n=a[i++];)(t&&t[2]===n.expr||n.wildcard)&&(n.fireArgs=t),n.update()}}function h(e,t){return t=t||{},t.watch=!0,g(e,t)}function m(){}function g(e,t){function a(e){return u[e]===!0}if(!e||e.$id&&e.$accessors||e.nodeName&&e.nodeType>0)return e;t=t||Ft;var r=t.force||Ft,i=t.old,l=i&&i.$accessors||Ft,s=new m,c={},u={},v=[],p=[],h={};e.$skipArray&&(h=o(e.$skipArray),delete e.$skipArray);var g=e.$computed;if(g){delete e.$computed;for(var $ in g)u[$]=!0,function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(a){if("function"==typeof t.set){var r=n;t.set.call(this,a);var i=this[e];this.$fire&&i!==r&&this.$fire(e,i,r)}},enumerable:!0,configurable:!0}}($,g[$])}for($ in e){var w=e[$];mn[$]||(u[$]=!0),"function"==typeof w||w&&w.nodeName&&w.nodeType>0||!r[$]&&("$"===$.charAt(0)||mn[$]||h[$])?v.push($):y(w)?(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}}($,w)):(p.push($),c[$]=l[$]?l[$]:b($,w))}c.$model=gn,s=Object.defineProperties(s,c,e),v.forEach(function(t){s[t]=e[t]}),x(s,"$ups",null),x(s,"$id","anonymous"),x(s,"$up",i?i.$up:null),x(s,"$track",Object.keys(u)),x(s,"$active",!1),x(s,"$pathname",i?i.$pathname:""),x(s,"$accessors",c),x(s,"hasOwnProperty",a),t.watch&&(x(s,"$watch",function(){return f.apply(s,arguments)}),x(s,"$fire",function(e,t){if(0===e.indexOf("all!")){var n=e.slice(4);for(var a in avalon.vmodels){var r=avalon.vmodels[a];r.$fire&&r.$fire.apply(r,[n,t])}}else d.call(s,e,[t])})),p.forEach(function(t){var n=i&&i[t],a=s[t]=e[t];a&&"object"==typeof a&&(a.$up=s,a.$pathname=t),d.call(s,t,[a,n])});for($ in g)w=s[$];return s.$active=!0,s}function y(e){if(e&&"object"==typeof e){for(var t in e)if("get"!==t&&"set"!==t)return!1;return"function"==typeof e.get}}function b(e,t){var n,t=0/0;return{get:function(){return this.$active&&v(this,e),t},set:function(a){if(t!==a){var r=t;n=$(a,t),n?t=n:(n=void 0,t=a),Object(n)===n&&(n.$pathname=e,n.$up=this),this.$active&&d.call(this,e,[t,r])}},enumerable:!0,configurable:!0}}function $(e,t,n,a){if(Array.isArray(e))return 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 g(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 $n)e[r]=$n[r];x(e,"$up",null),x(e,"$pathname",""),x(e,"$track",k(e.length)),e._=g({length:0/0},{watch:!0}),e._.length=e.length,e._.$watch("length",function(t,n){d.call(e.$up,e.$pathname+".length",[t,n])}),n&&x(e,"$watch",function(){return f.apply(e,arguments)}),Object.defineProperty(e,"$model",gn);for(var i=0,o=e.length;o>i;i++){var l=e[i]=$(e[i],0,1,1);Object(l)===l&&(l.$up=e)}return e}function x(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!1,configurable:!0})}function C(e){var t=avalon.type(e);if("array"===t){for(var n=[],a=0;a<e.length;a++)n[a]=C(e[a]);return n}if("object"===t){var r={};for(a in e)if(e.hasOwnProperty(a)){var i=e[a];r[a]=i&&i.nodeType?i:C(i)}return r}return e}function T(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 k(e){for(var t=[],n=0;e>n;n++)t[n]=Qt("$proxy$each");return t}function E(e,t,n){switch(t){case"push":case"unshift":n=k(n.length);break;case"splice":if(n.length>2){{n[1],n.length-2}n=[n[0],n[1]].concat(k(n.length-2))}}Array.prototype[t].apply(e,n)}function N(e,t){t.oneTime||e&&avalon.Array.ensure(e,t)&&t.element&&(S(t,e),new Date-kn>444&&O())}function A(e,t){for(var n,a=[],r=0;n=e[r++];)a.push(t?n.$id:n.$key);return a.join(";")}function M(e){if(!e.uniqueNumber){var t=e.element;e.uniqueNumber=t?1!==t.nodeType?e.type+"-"+M(t.parentNode)+"-"+ ++Cn:e.name+"-"+M(t):++Cn}return e.uniqueNumber}function S(e,t){var n=e.lists||(e.lists=[]),a=M(e);avalon.Array.ensure(n,t),t.$uuid=t.$uuid||Qt(),Tn[a]||(Tn[a]=1,Tn.push(e))}function O(e){for(var t=Tn.length,n=t,a=[],r={},i={};e=Tn[--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=Tn[--t];)if(null!==e.element){if(r[e.type]&&L(e.element)){Tn.splice(t,1),delete Tn[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 Tn.splice(t,1);En=i,kn=new Date}function D(e){delete Tn[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)&&Pt===e.parentNode?(e.parentNode&&e.parentNode.removeChild(e),!0):e.msRetain?0:1===e.nodeType?!Gt.contains(e):!avalon.contains(Gt,e)}function j(e){return e.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function H(e){return e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})}function P(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:Ln.test(e)?JSON.parse(e):e}catch(t){}return e}function R(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(Fn.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&&F(i,t)}}function B(e){var t=e.tagName.toLowerCase();return"input"===t&&/checkbox|radio/.test(e.type)?"checked":t}function q(e,t){var n=[],a=!!t;t=t||0;for(var r="unknown",o="",l=0;l<e.length;l++){var s=e.charAt(l);if("'"===s||'"'===s)"unknown"===r?r=s:r===s&&(r="unknown");else if("\\"===s)("'"===r||'"'===r)&&l++;else if(Vn.test(s))"unknown"===r?(r="variable",o=s):"maybePath"===r?(o=n.pop(),o+="."+s,r="variable"):"variable"===r&&(o+=s);else if(/\w/.test(s))"variable"===r&&(o+=s);else if("."===s)"variable"===r&&o&&(n.push(o),o="",r="maybePath");else if("["===s){if("variable"===r||"maybePath"===r){o&&(n.push(o),o="");var c=n.length,u=n[c-1],f=q(e.slice(l),l);if(f.length)n[c-1]=u+".*",n=f.concat(n);else{var d=e.slice(l+1,f.i);try{var v=i(["return "+d])();n[c-1]=u+"."+v}catch(p){}}r="maybePath",l=f.i}}else if("]"===s){if(a)return n.i=l+t,_(n,o),n}else In.test(s)&&"\r"!==s&&"\n"!==s?"variable"===r&&(_(n,o)&&(r="maybePath"),o=""):(_(n,o),r="unknown",o="")}return _(n,o),n}function _(e,t){return t&&!qn[t]?(e.push(t),!0):void 0}function V(e,t,n,a){for(var r,i=[],o=" = "+n+".",l=e.length;r=e[--l];)for(var s,c=r.split("."),u=c[0];s=c.shift();)t.hasOwnProperty(s)&&(i.push(u+o+u),a.observers.push({v:t,p:r}),e.splice(l,1));return i}function I(e){e=e.trim();var t=Xn.get(e);if(t)return t.concat();for(var n,a=q(e),r={},i=[],o=0;n=a[o++];)r[n]||(r[n]=1,i.push(n));return Xn.put(e,i).concat()}function Y(e,t,n){var a=n.filters;"string"==typeof a&&a.trim()&&!n._filters&&(n._filters=z(a.trim()));var r=I(e),o=new Date-0,l=[],s=[],c=[];n.observers=[];for(var u=0,f=t.length;f>u;u++)if(r.length){var d="vm"+o+"_"+u;s.push(d),c.push(t[u]),l.push.apply(l,V(r,t[u],d,n))}n.args=c;var v=n.type,p=t.map(function(e){return String(e.$id).replace(Yn,"$1")})+e+v,h=zn.get(p);if(h){if("duplex"===v){var m=zn.get(p+"setter");n.setter=m.apply(m,n.args)}return n.getter=h}if(l.length||l.push("fix"+o),"duplex"===v){var 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"));zn.put(p+"setter",y),n.setter=y.apply(y,n.args)}if("on"===v){-1===e.indexOf("(")?e+=".call(this, $event)":e=e.replace("(",".call(this,"),s.push("$event"),e="\nreturn "+e+";";var b=e.lastIndexOf("\nreturn"),$=e.slice(0,b),w=e.slice(b);e=$+"\n"+w}else e="\nreturn "+e+";";return h=i(s.concat("'use strict';\nvar "+l.join(",\n")+e)),zn.put(p,h)}function X(e){var t=un.test(e);if(t){var n=at(e);return 1===n.length?n[0].expr:n.map(function(e){return e.type?"("+e.expr+")":Kn(e.expr)}).join(" + ")}return e}function z(e){return e=e.replace(Wn,"").replace(Un,function(){return"],|"}).replace(Gn,function(e,t){return"["+Kn(t)}).replace(Zn,function(){return'"],["'}).replace(Jn,function(){return'",'})+"]",i(["return ["+e+"]"])()}function W(e,t,n){var a=setTimeout(function(){var r=e.innerHTML;clearTimeout(a),r===n?t():W(e,t,r)})}function U(e,t){var n=e.getAttribute("avalonctrl")||t.$id;e.setAttribute("avalonctrl",n),t.$events&&(t.$events.expr=e.tagName+'[avalonctrl="'+n+'"]')}function G(e,t){for(var n,a=0;n=e[a++];)n.vmodels=t,nn[n.type].init(n),avalon.injectBinding(n),n.getter&&1===n.element.nodeType&&n.element.removeAttribute(n.name);e.length=0}function Z(e,t){return e.priority-t.priority}function J(e,t){for(var n,a=e.attributes,r={},i=0;n=a[i++];){var o=n.name;if(n.specified&&!oa.test(o)){var l=H(n.name);r[l]=/^on\-[\w-]+$/.test(o)?ea(e,o,t):P(n.value)}}return r}function K(e,t,a){var r=!0;if(t.length){for(var i,o=e.attributes,l=[],s={},c=0;i=o[c++];){var u=i.name;if(!s[u]&&(s[u]=1,i.specified&&(a=u.match(aa)))){var f=a[1],d=a[2]||"",v=i.value;if(ra[f]?(d=f,f="on"):ia[f]&&(d=f,f="attr",u="ms-"+f+"-"+d,n("warning!请改用"+u+"代替"+i.name+"!")),nn[f]){var p=v.replace(na,""),h=v!==p,m={type:f,param:d,element:e,name:u,expr:p,oneTime:h,priority:(nn[f].priority||10*f.charCodeAt(0))+(Number(d.replace(/\D/g,""))||0)};if("html"===f||"text"===f){var g=nt(v).filters;m.expr=m.expr.replace(g,""),m.filters=g.replace(ca,function(){return m.type="html",m.group=1,""}).trim()}else if("duplex"===f)var y=u;else if("ms-if-loop"===u)m.priority+=100;else if("ms-attr-value"===u)var b=u;l.push(m)}}}if(l.length){for(l.sort(Z),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 G(l.slice(0,c+1),t);r&&(r=!sa.test(f))}G(l,t)}}r&&!Qn[e.tagName]&&(ta&&ta(e),Q(e,t))}function Q(e,t){var n=avalon.slice(e.childNodes);et(n,t)}function et(e,t){function n(e){setTimeout(function(){avalon.component(e)})}for(var a,r=0;a=e[r++];)switch(a.nodeType){case 1:var i=a;if(!i.msResolved&&i.parentNode&&1===i.parentNode.nodeType){var o=ot(i);if(o){var l=i.localName?i.localName.replace(o+":",""):i.nodeName,s=o+":"+H(l);pa.push({library:o,element:i,fullName:s,widget:l,vmodels:t,name:"widget"}),avalon.components[s]&&n(s)}}tt(a,t),a.msHasEvent&&avalon.fireDom(a,"datasetchanged",{bubble:a.msHasEvent});break;case 3:un.test(a.nodeValue)&&rt(a,t,r)}}function tt(e,t,n){var a=e.getAttribute("ms-skip"),r=e.getAttributeNode("ms-important"),i=e.getAttributeNode("ms-controller");if("string"!=typeof a){if(n=r||i){var o=avalon.vmodels[n.value];if(!o)return;t=n===r?[o]:[o].concat(t),e.removeAttribute(n.name),e.classList.remove(n.name),U(e,o)}K(e,t),o&&setTimeout(function(){o.$fire("ms-scan-end",e)})}}function nt(e){if(e.indexOf("|")>0){var t=e.replace(fa,function(e){return Array(e.length+1).join("1")}),n=t.replace(ua,"ᄢ㍄").indexOf("|");if(n>-1)return{type:"text",filters:e.slice(n).trim(),expr:e.slice(0,n)}}return{type:"text",expr:e,filters:""}}function at(e){for(var t,n,a=[],r=0;;){if(n=e.indexOf(sn,r),-1===n)break;if(t=e.slice(r,n),t&&a.push({expr:t}),r=n+sn.length,n=e.indexOf(cn,r),-1===n)break;t=e.slice(r,n),t&&a.push(nt(t,r)),r=n+cn.length}return t=e.slice(r),t&&a.push({expr:t}),a}function rt(e,t,n){var a=[],r=at(e.data);if(r.length){for(var i,o=0;i=r[o++];){var l=jt.createTextNode(i.expr);i.type&&(i.expr=i.expr.replace(na,function(){return i.oneTime=!0,""}),i.element=l,i.filters=i.filters.replace(ca,function(){return i.type="html",""}),i.pos=1e3*n+o,a.push(i)),Zt.appendChild(l)}e.parentNode.replaceChild(Zt,e),a.length&&G(a,t)}}function it(e,t){if(t)for(var n,a=0;n=e[a++];)if(n.hasOwnProperty(t)&&"object"==typeof n[t]){var r=n[t];return r.$model||r}return{}}function ot(e){if(e.scopeName&&"HTML"!==e.scopeName)return e.scopeName;var t=e.nodeName.toLowerCase(),n=t.indexOf(":");return n>0?t.slice(0,n):void 0}function lt(e){return null==e?"":e}function st(e,t,n){return t.param.replace(qt,function(a){var r=avalon.duplexHooks[a];r&&"function"==typeof r[n]&&(e=r[n](e,t))}),e}function ct(){for(var e=Ea.length-1;e>=0;e--){var t=Ea[e];t()===!1&&Ea.splice(e,1)}Ea.length||clearInterval(ka)}function ut(e,t){if(!e||1!==e.nodeType)return null;if(t)var n=t.effectName,a=t.effectDriver;else n=e.getAttribute("data-effect-name"),a=e.getAttribute("data-effect-driver");if(!n||!a)return null;var r=ja.pop()||new vt;return r.el=e,r.driver=a,r.useCss="j"!==a,r.useCss&&(t&&avalon(e).addClass(t.effectClass),r.cssEvent="t"===a?Aa:Ma),r.name=n,r.callbacks=avalon.effects[n]||{},r}function ft(e,t){var n=e.getAttribute("data-effect-name");if(n){t.effectName=n,t.effectDriver=e.getAttribute("data-effect-driver");var a=+e.getAttribute("data-effect-stagger");t.effectLeaveStagger=+e.getAttribute("data-effect-leave-stagger")||a,t.effectEnterStagger=+e.getAttribute("data-effect-enter-stagger")||a,t.effectClass=e.className||0/0}}function dt(e){return e.replace(/^[\S]/g,function(e){return e.toUpperCase()})}function vt(){}function pt(e,t){var n=e.callbacks[t+"Class"];return"string"==typeof n?n:"function"==typeof n?n():e.name+"-"+t}function ht(e,t,n){var a=e.callbacks[t];a&&a.call(e,e.el,n)}function mt(e,t,n){var a=e.templateCache&&e.templateCache[t];if(a){for(var r,i=jt.createDocumentFragment();r=a.firstChild;)i.appendChild(r);return i}return avalon.parseHTML(n)}function gt(e){for(var t=jt.createDocumentFragment(),n=0,a=e.length;a>n;n++)t.appendChild(e[n]);return t}function yt(e,t,n){for(var a,i=0;a=e[i++];)a.className===n.effectClass&&avalon.effect.apply(a,t,r,r,n)}function bt(e,t,n){return e?setTimeout(t,++n*e):t(),n}function $t(e,t){for(var n=Zt.cloneNode(!1),a=e,i=a.nodeValue,o=t&&Math.max(+t.staggerIndex,0),l=avalon.slice(a.parentNode.childNodes),s=l.indexOf(a);;){var c=l[--s];if(!c||0===String(c.nodeValue).indexOf(i))break;t&&c.className===t.effectClass?(e=c,function(e){t.staggerIndex=bt(t.effectLeaveStagger,function(){avalon.effect.apply(e,0,r,function(){n.appendChild(e)},t)},o)}(c)):n.insertBefore(c,n.firstChild)}return n.appendChild(a),n}function 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 xt(e){var t="object"===e.xtype?Et:Ct,n=t(e),a=n.$anchor||(n.$anchor=e.element.cloneNode(!1));return a.nodeValue=e.signature,n.$outer=e.$outer,n}function Ct(e,t){for(var n=e.param||"el",a=0,r=_a.length;r>a;a++){var i=_a[a];if(i&&i.hasOwnProperty(n)){_a.splice(a,1),t=i;break}}return t||(t=Tt(n)),t}function Tt(e){var t={$outer:{},$index:0,$oldIndex:0,$anchor:null,$first:!1,$last:!1,$remove:avalon.noop};t[e]=0/0;var n={$last:1,$first:1,$index:1};n[e]=1;var a=h(t,{force:n});return a.$id=Qt("$proxy$each"),a}function kt(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 Et(){return Va.pop()||Nt()}function Nt(){var e=h({$key:"",$val:0/0,$index:0,$oldIndex:0,$outer:{},$anchor:null},{force:{$key:1,$val:1,$index:1}});return e.$id=Qt("$proxy$with"),e}function At(e,t,n){var a=e[t];if(a){var r=0===a.$id.indexOf("$proxy$each")?_a:Va;a.$outer={};for(var i in a.$events){var o=a.$events[i];Array.isArray(o)&&(o.length=0,i===n?a[n]=0/0:"$val"===i&&(a.$val=0/0))}r.unshift(a)>c.maxRepeatSize&&r.pop(),delete e[t]}}function Mt(e,t){var n="_"+e;if(!Mt[n]){var a=jt.createElement(e);Gt.appendChild(a),t=Ut?getComputedStyle(a,null).display:a.currentStyle.display,Gt.removeChild(a),Mt[n]=t}return Mt[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)}function Ot(){return/iPad|iPhone|iPod/i.test(Qa)&&!e.MSStream?"backdropFilter"in document.documentElement.style?9:e.indexedDB?8:e.SpeechSynthesisUtterance?7:e.webkitAudioContext?6:e.matchMedia?5:e.history&&"pushState"in e.history?4:3:0/0}function Dt(e,t){return t&&ar.forEach(function(n){e[n]=t[n]}),e}var Lt=Date.now(),jt=e.document,Ht=jt.head;Ht.insertAdjacentHTML("afterBegin",'<avalon ms-skip class="avalonHide"><style id="avalonStyle">.avalonHide{ display: none!important }</style></avalon>');var Pt=Ht.firstChild,Rt="$"+Lt,Ft={},Bt=/[^, ]+/g,qt=/\w+/g,_t=/^\[object SVG\w*Element\]$/,Vt=/^\[object (?:Window|DOMWindow|global)\]$/,It=Object.prototype,Yt=It.hasOwnProperty,Xt=It.toString,zt=Array.prototype,Wt=zt.slice,Ut=e.dispatchEvent,Gt=jt.documentElement,Zt=jt.createDocumentFragment(),Jt=(jt.createElement("div"),{});"Boolean Number String Function Array Date RegExp Object Error".replace(Bt,function(e){Jt["[object "+e+"]"]=e.toLowerCase()});var Kt=0/0;e.VBArray&&(Kt=document.documentMode||(e.XMLHttpRequest?7:6));var Qt=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?Jt[Xt.call(e)]||"object":typeof e},avalon.isFunction=function(e){return"[object Function]"===Xt.call(e)},avalon.isWindow=function(e){return Vt.test(Xt.call(e))},avalon.isPlainObject=function(e){return"[object Object]"===Xt.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||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:r,error:function(e,t){throw new(t||Error)(e)},oneObject:o,range:function(e,t,n){n||(n=1),null==t&&(t=e||0,e=0);for(var a=-1,r=Math.max(0,Math.ceil((t-e)/n)),i=new Array(r);++a<r;)i[a]=e,e+=n;return i},eventHooks:{},bind:function(e,t,n,a){var r=avalon.eventHooks,i=r[t];return"object"==typeof i&&(t=i.type||t,a=i.phase||!!a,n=i.fn?i.fn(e,n):n),e.addEventListener(t,n,a),n},unbind:function(e,t,n,a){var i=avalon.eventHooks,o=i[t],l=n||r;"object"==typeof o&&(t=o.type||t,a=o.phase||!!a),e.removeEventListener(t,l,a)},css:function(e,t,n){e instanceof avalon&&(e=e[0]);var a,r=/[_-]/.test(t)?H(t):t;if(t=avalon.cssName(r)||r,void 0===n||"boolean"==typeof n){a=jn[r+":get"]||jn["@: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=jn[r+":set"]||jn["@:set"],a(e,t,n)}},each:function(e,t){if(e){var n=0;if(l(e))for(var a=e.length;a>n&&t(n,e[n])!==!1;n++);else for(n in e)if(e.hasOwnProperty(n)&&t(n,e[n])===!1)break}},getWidgetData:function(e,t){var n=avalon(e).data(),a={};for(var r in n)0===r.indexOf(t)&&(a[r.replace(t,"").replace(/\w/,function(e){return e.toLowerCase()})]=n[r]);return a},Array:{ensure:function(e,t){return-1===e.indexOf(t)?e.push(t):void 0},removeAt:function(e,t){return!!e.splice(t,1).length},remove:function(e,t){var n=e.indexOf(t);return~n?avalon.Array.removeAt(e,n):!1}}});var en=avalon.bindingHandlers={},tn=avalon.bindingExecutors={},nn=avalon.directives={};avalon.directive=function(e,t){return en[e]=t.init=t.init||r,tn[e]=t.update=t.update||r,nn[e]=t};var an=new function(){function e(e){this.size=0,this.limit=e,this.head=this.tail=void 0,this._keymap={}}var t=e.prototype;return t.put=function(e,t){var n={key:e,value:t};return this._keymap[e]=n,this.tail?(this.tail.newer=n,n.older=this.tail):this.head=n,this.tail=n,this.size===this.limit?this.shift():this.size++,t},t.shift=function(){var e=this.head;e&&(this.head=this.head.newer,this.head.older=e.newer=e.older=this._keymap[e.key]=void 0,delete this._keymap[e.key])},t.get=function(e){var t=this._keymap[e];if(void 0!==t)return t===this.tail?t.value:(t.newer&&(t===this.head&&(this.head=t.newer),t.newer.older=t.older),t.older&&(t.older.newer=t.newer),t.newer=void 0,t.older=this.tail,this.tail&&(this.tail.newer=t),this.tail=t,t.value)},e};if(jt.contains||(Node.prototype.contains=function(e){return!!(16&this.compareDocumentPosition(e))}),avalon.contains=function(e,t){try{for(;t=t.parentNode;)if(t===e)return!0;return!1}catch(n){return!1}},e.SVGElement){var rn="http://www.w3.org/2000/svg",on=jt.createElementNS(rn,"svg");on.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',_t.test(on.firstChild)||Object.defineProperties(SVGElement.prototype,{outerHTML:{enumerable:!0,configurable:!0,get:function(){return(new XMLSerializer).serializeToString(this)},set:function(e){var t=this.tagName.toLowerCase(),n=this.parentNode,a=avalon.parseHTML(e);if("svg"===t)n.insertBefore(a,this);else{var r=jt.createDocumentFragment();s(a,r),n.insertBefore(r,this)}n.removeChild(this)}},innerHTML:{enumerable:!0,configurable:!0,get:function(){var e=this.outerHTML,t=new RegExp("<"+this.nodeName+'\\b(?:(["\'])[^"]*?(\\1)|[^>])*>',"i"),n=new RegExp("</"+this.nodeName+">$","i");return e.replace(t,"").replace(n,"")},set:function(e){if(avalon.clearHTML){avalon.clearHTML(this);var t=avalon.parseHTML(e);s(t,this)}}}})}var ln=avalon.eventHooks;"onmouseenter"in Gt||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){ln[e]={type:t,fn:function(t,n){return function(a){var r=a.relatedTarget;return r&&(r===t||16&t.compareDocumentPosition(r))?void 0:(delete a.type,a.type=e,n.call(t,a))}}}}),avalon.each({AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"},function(t,n){e[t]&&!ln.animationend&&(ln.animationend={type:n})}),void 0===jt.onmousewheel&&(ln.mousewheel={type:"wheel",fn:function(e,t){return function(n){n.wheelDeltaY=n.wheelDelta=n.deltaY>0?-120:120,n.wheelDeltaX=0,Object.defineProperty(n,"type",{value:"mousewheel"}),t.call(e,n)}}}),avalon.config=c;var sn,cn,un,fn,dn,vn=/[-.*+?^${}()|[\]\/\\]/g,pn={interpolate:function(e){if(sn=e[0],cn=e[1],sn===cn){throw new SyntaxError("openTag!==closeTag")}c.openTag=sn,c.closeTag=cn;var t=u(sn),n=u(cn);un=new RegExp(t+"(.*?)"+n),fn=new RegExp(t+"(.*?)"+n,"g"),dn=new RegExp(t+".*?"+n+"|\\sms-")}};c.plugins=pn,c.plugins.interpolate(["{{","}}"]),c.async=!0,c.debug=!0,c.paths={},c.shim={},c.maxRepeatSize=100;var hn=avalon.vmodels={};avalon.define=function(e){var t=e.$id;t||n("warning: vm必须指定$id");var a=h(e);return a.$id=t,hn[t]=a};var mn=o("$id,$watch,$fire,$events,$model,$skipArray,$active,$pathname,$up,$ups,$track,$accessors"),gn={get:function(){return C(this)},set:r,enumerable:!1,configurable:!0},yn=["push","pop","shift","unshift","splice"],bn=Array.prototype,$n={notify:function(){d.call(this.$up,this.$pathname)},set:function(e,t){if(e>>>0===e&&this[e]!==t){if(e>this.length)throw Error(e+"set方法的第一个参数不能大于原数组长度");d.call(this.$up,this.$pathname+".*",[t,this[e]]),this.splice(e,1,t)}},contains:function(e){return-1!==this.indexOf(e)},ensure:function(e){return this.contains(e)||this.push(e),this},pushArray:function(e){return this.push.apply(this,e)},remove:function(e){return this.removeAt(this.indexOf(e))},removeAt:function(e){return e>>>0===e?this.splice(e,1):[]},size:function(){return this._.length},removeAll:function(e){if(Array.isArray(e))for(var t=this.length-1;t>=0;t--)-1!==e.indexOf(this[t])&&(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);Ut||(this.$model=C(this)),this.notify(),this._.length=this.length},clear:function(){return this.removeAll()}},wn=bn.splice;yn.forEach(function(e){var t=bn[e];$n[e]=function(){for(var n=[],a=0,r=arguments.length;r>a;a++)n[a]=$(arguments[a],0,1,1);var i=t.apply(this,n);return E(this.$track,e,n),Ut||(this.$model=C(this)),this.notify(),this._.length=this.length,i}}),"sort,reverse".replace(Bt,function(e){$n[e]=function(){var t=this.concat(),n=this,a=Math.random(),r=[],i=!1;bn[e].apply(n,arguments);for(var o=0,l=t.length;l>o;o++){var s=n[o],c=t[o];if(s===c)r.push(o);else{var u=t.indexOf(s);r.push(u),t[u]=a,i=!0}}return i&&(T(this.$track,r),Ut||(this.$model=C(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||nn[e.type].update||r,e.update=function(){var t=!1;e.getter||(t=!0,xn.begin({callback:function(t){N(t,e)}}),e.getter=Y(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=Ga.$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=A(e.proxies||[],l),c=a.$track||("array"===l?k(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=sn+(e.oneTime?"::":"")+e.expr+cn)}finally{t&&xn.end()}},e.update()};var Cn=0,Tn=avalon.$$subscribers=[],kn=new Date,En={},Nn=new function(){avalon.mix(this,{option:jt.createElement("select"),thead:jt.createElement("table"),td:jt.createElement("tr"),area:jt.createElement("map"),tr:jt.createElement("tbody"),col:jt.createElement("colgroup"),legend:jt.createElement("fieldset"),_default:jt.createElement("div"),g:jt.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){Nn[e]=Nn.g});var An=/<([\w:]+)/,Mn=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Sn=o(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),On=jt.createElement("script"),Dn=/<|&#?\w+;/;avalon.parseHTML=function(e){var t=Zt.cloneNode(!1);if("string"!=typeof e)return t;if(!Dn.test(e))return t.appendChild(jt.createTextNode(e)),t;e=e.replace(Mn,"<$1></$2>").trim();var n,a=(An.exec(e)||["",""])[1].toLowerCase(),r=Nn[a]||Nn._default;r.innerHTML=e;var i=r.getElementsByTagName("script");if(i.length)for(var o,l=0;o=i[l++];)if(Sn[o.type]){var s=On.cloneNode(!1);zt.forEach.call(o.attributes,function(e){s.setAttribute(e.name,e.value)}),s.text=o.text,o.parentNode.replaceChild(s,o)}for(;n=r.firstChild;)t.appendChild(n);return t},avalon.innerHTML=function(e,t){var n=this.parseHTML(t);this.clearHTML(e).appendChild(n)},avalon.clearHTML=function(e){for(e.textContent="";e.firstChild;)e.removeChild(e.firstChild);return e},"add,remove".replace(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-"+j(e||""),arguments.length){case 2:return this.attr(e,t),this;case 1:var n=this.attr(e);return P(n);case 0:var a={};return zt.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=H(e.slice(5)),a[e]=P(t.value)))}),a}},removeData:function(e){return e="data-"+j(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)}
|
2
|
+
},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=Bn[B(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}}),Gt.dataset&&(avalon.fn.data=function(e,t){e=e&&H(e);var n=this[0].dataset;switch(arguments.length){case 2:return n[e]=t,this;case 1:return t=n[e],P(t);case 0:var r=a();for(e in n)r[e]=P(n[e]);return r}});var Ln=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/;avalon.parseJSON=JSON.parse,avalon.fireDom=function(e,t,n){var a=jt.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=R(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 jn=avalon.cssHooks=a(),Hn=["","-webkit-","-moz-","-ms-"],Pn={"float":"cssFloat"};avalon.cssNumber=o("animationIterationCount,animationIterationCount,columnCount,order,flex,flexGrow,flexShrink,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(Pn[e])return Pn[e];t=t||Gt.style;for(var a=0,r=Hn.length;r>a;a++)if(n=H(Hn[a]+e),n in t)return Pn[e]=n;return null},jn["@:set"]=function(e,t,n){e.style[t]=n},jn["@: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},jn["opacity:get"]=function(e){var t=jn["@:get"](e,"opacity");return""===t?"1":t},"top,left".replace(Bt,function(e){jn[e+":get"]=function(t){var n=jn["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Rn={position:"absolute",visibility:"hidden",display:"block"},Fn=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(Bt,function(e){var t=e.toLowerCase(),n="client"+e,a="scroll"+e,r="offset"+e;jn[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)},jn[t+"&get"]=function(e){var n=[];F(e,n);for(var a,r=jn[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 jn[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return jn[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return jn[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)}},qn={},_n=["break,case,catch,continue,debugger,default,delete,do,else,false","finally,for,function,if,in,instanceof,new,null,return,switch,this","throw,true,try,typeof,var,void,while,with","abstract,boolean,byte,char,class,const,double,enum,export,extends","final,float,goto,implements,import,int,interface,long,native","package,private,protected,public,short,static,super,synchronized","throws,transient,volatile","arguments,let,yield,undefined"].join(",");_n.replace(/\w+/g,function(e){qn[e]=!0});var Vn=/[a-z_$]/i,In=/[\s\uFEFF\xA0]/,Yn=/(\$proxy\$[a-z]+)\d+$/,Xn=new an(218),zn=new an(128);avalon.normalizeExpr=X,avalon.parseExprProxy=Y;var Wn=/\)\s*$/,Un=/\)\s*\|/g,Gn=/\|\s*([$\w]+)/g,Zn=/"\s*\["/g,Jn=/"\s*\(/g,Kn=JSON.stringify;avalon.scan=function(e,t){e=e||Gt;var n=t?[].concat(t):[];tt(e,n)};var Qn=o("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),ea=function(e,t,n){var a=e.getAttribute(t);if(a)for(var r,i=0;r=n[i++];)if(r.hasOwnProperty(a)&&"function"==typeof r[a])return r[a]},ta=Kt&&e.MutationObserver?function(e){for(var t,n=e.firstChild;n;){var a=n.nextSibling;3===n.nodeType?t?(t.nodeValue+=n.nodeValue,e.removeChild(n)):t=n:t=null,n=a}}:0,na=/^\s*::/,aa=/ms-(\w+)-?(.*)/,ra=o("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),ia=o("value,title,alt,checked,selected,disabled,readonly,enabled,href,src"),oa=/^(ms-\S+|data-\S+|on[a-z]+|id|style|class)$/,la=/^if|widget|repeat$/,sa=/^each|with|html|include$/,ca=/\|\s*html(?:\b|$)/,ua=/\|\|/g,fa=/(['"])(\\\1|.)+?\1/g,da=function(){this.queue=[]};da.prototype={render:function(e){if(!this.locked){this.locked=e?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 da,pa=[],ha=[],ma={$construct:function(){return avalon.mix.apply(null,arguments)},$ready:r,$init:r,$dispose:r,$container:null,$childReady:r,$replace:!1,$extend:null,$$template:function(e){return e}};avalon.components={},avalon.component=function(t,n){n&&(avalon.components[t]=avalon.mix({},ma,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(jt,r)||r.msResolved)return void avalon.Array.remove(pa,n);var o=1,l=n.library,s=avalon.libraries[l]||ma;if(!r.getAttribute("ms-attr-identifier")){var c=J(r,n.vmodels),u=it(n.vmodels,c.config||n.fullName),f=c.$id||c.identifier||Qt(i);delete c.config,delete c.$id,delete c.identifier;var d={},v=avalon.components[a.$extend];v?(avalon.mix(!0,d,v),d=v.$construct.call(r,d,{},{})):avalon.mix(!0,d,a),d=avalon.components[t].$construct.call(r,d,u,c),d.$refs={},d.$id=f;var p=d.$slot,h=d.$replace,m=d.$container,g=d.$template;delete d.$slot,delete d.$replace,delete d.$container,delete d.$construct;var y=avalon.define(d)||{};r.msResolved=1,y.$init(y,r),s.$init(y,r);for(var b,$,w=r.childNodes,x={},C=0;$=w[C++];){var T=1===$.nodeType&&$.getAttribute("slot")||p;T&&(x[T]?x[T].push($):x[T]=[$])}y.$$template&&(avalon.clearHTML(r),r.innerHTML=y.$$template(g));for(C in x)if(y.hasOwnProperty(C)){var k=x[C];if(k.length){for(var E=Zt.cloneNode(!0),N=0;b=k[N++];)E.appendChild(b);y[C]=E}x[C]=null}x=null;var A=r.children[0]||r.firstChild;if(h){r.parentNode.replaceChild(A,r),A.msResolved=1;var M=r.style.cssText,D=r.className;r=n.element=A,r.style.cssText+=";"+M,D&&avalon(r).addClass(D)}m&&m.appendChild(r),avalon.fireDom(r,"datasetchanged",{library:l,vm:y,childReady:1});var L=0,j=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&&(L++,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)},L?Math.max(17*L,100):17);avalon.unbind(r,"datasetchanged",j),n.rollback=function(){try{y.$dispose(y,r),s.$dispose(y,r)}catch(e){}delete avalon.vmodels[y.$id]},S(n,ha),e.chrome&&r.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(O)})}});if(tt(r,[y].concat(n.vmodels)),avalon.vmodels[y.$id]=y,r.childNodes.length)var H=setTimeout(function(){clearTimeout(H),avalon.fireDom(r,"datasetchanged",{library:l,vm:y,childReady:-1})},17);else avalon.fireDom(r,"datasetchanged",{library:l,vm:y,childReady:-1})}}(a,avalon.components[t],a.element,a.widget))},avalon.libraries=[],avalon.library=function(e,t){jt.namespaces&&jt.namespaces.add(e,"http://www.w3.org/1999/xhtml"),avalon.libraries[e]=avalon.mix({$init:r,$ready:r,$dispose:r},t||{})},avalon.library("ms");var ga=["autofocus,autoplay,async,allowTransparency,checked,controls","declare,disabled,defer,defaultChecked,defaultSelected","contentEditable,isMap,loop,multiple,noHref,noResize,noShade","open,readOnly,selected"].join(","),ya={};ga.replace(Bt,function(e){ya[e.toLowerCase()]=e});var ba={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"},$a=["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan","dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight","rowSpan,tabIndex,useMap,vSpace,valueType,vAlign"].join(",");$a.replace(Bt,function(e){ba[e.toLowerCase()]=e});var wa=avalon.directive("attr",{init:function(e){if(e.expr=X(e.expr.trim()),"include"===e.type){var t=e.element;ft(t,e),e.includeRendered=ea(t,"data-include-rendered",e.vmodels),e.includeLoaded=ea(t,"data-include-loaded",e.vmodels);var n=e.includeReplace=!!avalon(t).data("includeReplace");avalon(t).data("includeCache")&&(e.templateCache={}),e.start=jt.createComment("ms-include"),e.end=jt.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(/&/g,"&")),n[a]=t,e.chrome&&"EMBED"===n.tagName){var r=n.parentNode,i=document.createComment("ms-src");r.replaceChild(i,n),r.replaceChild(n,i)}}else{var o=t===!1||null===t||void 0===t;!Ut&&ba[a]&&(a=ba[a]);var l=ya[a];if("boolean"==typeof n[l]&&(n[l]=!!t,t||(o=!0)),o)return n.removeAttribute(a);var s=_t.test(n)?!1:jt.namespaces&&isVML(n)?!0:a in n.cloneNode(!1);s?n[a]=t+"":n.setAttribute(a,t)}}});"title,alt,src,value,css,include,href".replace(Bt,function(e){nn[e]=wa}),avalon.directive("class",{init:function(e){var t=e.param,a=e.type;if(!t||isFinite(t)?(e.param="",nn.effect.init(e)):(n("ms-"+a+'-xxx="yyy"这种用法已经过时,请使用ms-'+a+'="xxx:yyy"'),e.expr="["+Kn(t)+","+e.expr+"]",e.oldStyle=t),"hover"===a||"active"===a){if(!e.hasBindEvent){var r=e.element,i=avalon(r),o="mouseenter",l="mouseleave";if("active"===a){r.tabIndex=r.tabIndex||-1,o="mousedown",l="mouseup";var s=i.bind("mouseleave",function(){e.toggleClass&&i.removeClass(e.newClass)})}}var c=i.bind(o,function(){e.toggleClass&&i.addClass(e.newClass)}),u=i.bind(l,function(){e.toggleClass&&i.removeClass(e.newClass)});e.rollback=function(){i.unbind("mouseleave",s),i.unbind(o,c),i.unbind(l,u)},e.hasBindEvent=!0}},update:function(e){var t=this,n=avalon(this.element);t.newClass=e[0],t.toggleClass=!!e[1],t.oldClass&&t.newClass!==t.oldClass&&n.removeClass(t.oldClass),t.oldClass=t.newClass,"class"===t.type&&(t.oldStyle?n.toggleClass(t.oldStyle,!!e[1]):n.toggleClass(t.newClass,t.toggleClass))}}),"hover,active".replace(Bt,function(e){nn[e]=nn["class"]}),avalon.directive("css",{init:nn.attr.init,update:function(e){avalon(this.element).css(this.param,e)}}),avalon.directive("data",{priority:100,update:function(e){var t=this.element,n="data-"+this.param;e&&"object"==typeof e?t[n]=e:t.setAttribute(n,String(e))}});{var xa=/^(?:checkbox|radio)$/,Ca=/^(?:radio|checked)$/,Ta=/^(file|button|reset|submit|checkbox|radio|range)$/;avalon.directive("duplex",{priority:2e3,init:function(e,t){function a(t){e.changed.call(this,t,e)}function i(){v=!0}function l(){v=!1}var s=e.element,c=e.vmodels;e.changed=ea(s,"data-duplex-changed",c)||r;var u=[],f=o("string,number,boolean,checked");"radio"===s.type&&""===e.param&&(e.param="checked"),e.param.replace(qt,function(a){xa.test(s.type)&&Ca.test(a)&&("radio"===a&&n("ms-duplex-radio已经更名为ms-duplex-checked"),a="checked",e.isChecked=!0,e.xtype="radio"),"bool"===a?(a="boolean",n("ms-duplex-bool已经更名为ms-duplex-boolean")):"text"===a&&(a="string",n("ms-duplex-text已经更名为ms-duplex-string")),f[a]&&(t=!0),avalon.Array.ensure(u,a)}),t||u.push("string"),e.param=u.join("-"),e.xtype||(e.xtype="SELECT"===s.tagName?"select":"checkbox"===s.type?"checkbox":"radio"===s.type?"radio":/^change/.test(s.getAttribute("data-duplex-event"))?"change":"input");var d=e.bound=function(t,n){s.addEventListener(t,n,!1);var a=e.rollback;e.rollback=function(){s.avalonSetter=null,avalon.unbind(s,t,n),a&&a()}},v=!1,p=function(){var t=s.value;if(!v&&t!==e.oldValue&&null!==e.pipe){var n=e.pipe(t,e,"get");e.oldValue=t,e.setter(n),a.call(s,n)}};switch(e.xtype){case"radio":d("click",function(){var t=e.pipe(s.value,e,"get");e.setter(t),a.call(s,t)});break;case"checkbox":d("change",function(){var t=s.checked?"ensure":"remove",r=e.getter.apply(0,e.vmodels);Array.isArray(r)||(n("ms-duplex应用于checkbox上要对应一个数组"),r=[r]);var i=e.pipe(s.value,e,"get");avalon.Array[t](r,i),a.call(s,r)});break;case"change":d("change",p);break;case"input":d("input",p),d("keyup",p),Kt||(d("compositionstart",i),d("compositionend",l),d("DOMAutoComplete",p));break;case"select":d("change",function(){var t=avalon(s).val();if(t=Array.isArray(t)?t.map(function(t){return e.pipe(t,e,"get")}):e.pipe(t,e,"get"),t+""!==e.oldValue)try{e.setter(t)}catch(a){n(a)}}),d("datasetchanged",function(t){if("selectDuplex"===t.bubble){var n=e._value,r=Array.isArray(n)?n.map(String):n+"";avalon(s).val(r),s.oldValue=r+"",a.call(s,r)}})}"input"!==e.xtype||Ta.test(s.type)||("hidden"!==s.type&&(d("focus",function(){s.msFocus=!0}),d("blur",function(){s.msFocus=!1})),s.avalonSetter=p,Na(function(){if(Gt.contains(s))s.msFocus||p();else if(!s.msRetain)return!1}))},update:function(e){var t,n=this.element,a=this;if(!this.init){for(var r in avalon.vmodels){var i=avalon.vmodels[r];i.$fire("avalon-ms-duplex-init",a)}var o=a.pipe||(a.pipe=st);o(null,a,"init"),this.init=1}switch(this.xtype){case"input":case"change":if(t=this.pipe(e,this,"set"),t!==this.oldValue){var l=!1;if(n.msFocus)try{var s=n.selectionStart,c=n.selectionEnd;if(s===c){var u=s;l=!0}}catch(f){}n.value=this.oldValue=t,l&&!n.readOnly&&(n.selectionStart=n.selectionEnd=u)}break;case"radio":t=a.isChecked?!!e:e+""===n.value,n.checked=t;break;case"checkbox":var d=[].concat(e);t=this.pipe(n.value,this,"get"),n.checked=d.indexOf(t)>-1;break;case"select":a._value=e,n.msHasEvent?avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent}):n.msHasEvent="selectDuplex"}}})}avalon.duplexHooks={checked:{get:function(e,t){return!t.oldValue}},string:{get:function(e){return e},set:lt},"boolean":{get:function(e){return"true"===e},set:lt},number:{get:function(e,t){var n=parseFloat(e);if(-e===-n)return n;var a=/strong|medium|weak/.exec(t.element.getAttribute("data-duplex-number"))||["medium"];switch(a[0]){case"strong":return 0;case"medium":return""===e?"":0;case"weak":return e}},set:lt}};var ka,Ea=[];avalon.tick=function(e){1===Ea.push(e)&&(ka=setInterval(ct,60))};var Na=r;!new function(){function e(e){t[this.tagName].call(this,e),!this.msFocus&&this.avalonSetter&&this.avalonSetter()}try{var t={},n=HTMLInputElement.prototype,a=HTMLTextAreaElement.prototype,r=HTMLInputElement.prototype;Object.getOwnPropertyNames(r),t.INPUT=Object.getOwnPropertyDescriptor(n,"value").set,Object.defineProperty(n,"value",{set:e}),t.TEXTAREA=Object.getOwnPropertyDescriptor(a,"value").set,Object.defineProperty(a,"value",{set:e})}catch(i){Na=avalon.tick}},avalon.directive("effect",{priority:5,init:function(e){var t,n,a=e.expr,r=a.replace(fn,function(e){return e.replace(/./g,"0")}).indexOf(":");-1===r?(t=a,n=!0):(t=a.slice(0,r),n=a.slice(r+1)),t=un.test(a)?X(t):Kn(t),e.expr="["+t+","+n+"]"},update:function(t){var n=t[0],a=this.element;if(a.getAttribute("data-effect-name")!==n){a.removeAttribute("data-effect-driver");var r=a.style,i=e.getComputedStyle?e.getComputedStyle(a):null,o=!1;if(i&&(Sa||Oa)){var l=r[Da]||i[Da];l&&"0s"!==l&&(a.setAttribute("data-effect-driver","t"),o=!0),o||(l=r[La]||i[La],l&&"0s"!==l&&(a.setAttribute("data-effect-driver","a"),o=!0))}o||avalon.effects[n]&&(a.setAttribute("data-effect-driver","j"),o=!0),o&&a.setAttribute("data-effect-name",n)}}}),avalon.effects={},avalon.effect=function(e,t){avalon.effects[e]=t};var Aa,Ma,Sa=!1,Oa=!1,Da=avalon.cssName("transition-duration"),La=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&&(Sa=!0,Aa=t),n={AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"};var i;for(a in n)if(e[a]){i=n[a];break}"string"==typeof i&&(Sa=!0,Ma=i)};var ja=[],Ha=new da;vt.prototype={contrustor:vt,enterClass:function(){return pt(this,"enter")},leaveClass:function(){return pt(this,"leave")},actionFun:function(e,t,n){if(!document.hidden){var a=this,r=a.el,i="leave"===e;e=i?"leave":"enter";var o=i?"enter":"leave";ht(a,"abort"+dt(o)),ht(a,"before"+dt(e)),i||t(r);var l=function(o){r.removeEventListener(a.cssEvent,a.cssCallback),i?(t(r),avalon(r).removeClass(a.cssClass)):"a"===a.driver&&avalon(r).removeClass(a.cssClass),o!==!0&&(ht(a,"after"+dt(e)),n&&n(r)),a.dispose()};a.useCss?(a.cssCallback&&a.cssCallback(!0),a.cssClass=pt(a,e),a.cssCallback=l,a.update=function(){r.addEventListener(a.cssEvent,a.cssCallback),i||"t"!==a.driver||avalon(r).removeClass(a.cssClass)},avalon(r).addClass(a.cssClass),Ha.render(!0),Ha.queue.push(a)):ht(a,e,l)}},enter:function(){this.actionFun.apply(this,["enter"].concat(avalon.slice(arguments)))},leave:function(){this.actionFun.apply(this,["leave"].concat(avalon.slice(arguments)))},dispose:function(){this.update=this.cssCallback=null,ja.unshift(this)>100&&ja.pop()}};var Pa=function(e,t){var n=Wt.call(arguments,0);"function"!=typeof n[2]&&n.splice(2,0,r),"function"!=typeof n[3]&&n.splice(3,0,r);var a=n[2],i=n[3],o=n[4],l=ut(e,o);if(!l)return a(),i(),!1;var s=t?"enter":"leave";l[s](a,i)};avalon.mix(avalon.effect,{apply:Pa,append:function(e,t,n,a){return Pa(e,1,function(){t.appendChild(e)},n,a)},before:function(e,t,n,a){return Pa(e,1,function(){t.parentNode.insertBefore(e,t)},n,a)},remove:function(e,t,n,a){return Pa(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=Qt("html");r.insertBefore(jt.createComment(i),n),t.element=jt.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);et(l,t.vmodels)}}}),avalon.directive("if",{priority:10,update:function(e){function t(){r.getAttribute(a.name)&&(r.removeAttribute(a.name),K(r,a.vmodels)),a.rollback=null}var n,a=this,r=this.element,i=a.stamp=+new Date,o=function(){i===a.stamp&&(a.recoverNode=null)};a.recoverNode&&a.recoverNode();try{if(!r.parentNode)return;n=r.parentNode}catch(l){return}if(e){if(8===r.nodeType){var s=a.keep,c=avalon.effect.apply(s,1,function(){i===a.stamp&&(r.parentNode.replaceChild(s,r),r=a.element=s,s.getAttribute("_required")&&(r.required=!0,r.removeAttribute("_required")),r.querySelectorAll&&avalon.each(r.querySelectorAll("[_required=true]"),function(e){e.required=!0,e.removeAttribute("_required")}),t())},o);c=c===!1}c||t()}else if(1===r.nodeType){r.required===!0&&(r.required=!1,r.setAttribute("_required","true"));try{avalon.each(r.querySelectorAll(":required"),function(e){r.required=!1,e.setAttribute("_required","true")})}catch(l){}var u=a.element=jt.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,Pt.appendChild(r),a.rollback=function(){r.parentNode===Pt&&Pt.removeChild(r)})},o)}}});var Ra=function(){return new e.XMLHttpRequest},Fa=avalon.templateCache={};avalon.directive("include",{init:nn.attr.init,update:function(e){var t=this,a=this.element,r=t.vmodels,i=t.includeRendered,o=t.effectName&&t.effectClass,l=t.templateCache,s=t.includeReplace,c=t.includeLoaded,u=s?a.parentNode:a,f=t._element;t.recoverNodes=t.recoverNodes||avalon.noop;var d=function(n){var d=t._stamp=+new Date;if(c){var v=c.apply(u,[n].concat(r));"string"==typeof v&&(n=v)}i&&W(u,function(){i.call(u)},0/0);var p=t.includeLastID||"_default";t.includeLastID=e;var h=l&&l[p]||jt.createElement(a.tagName||t._element.tagName);o&&(h.className=o,u.insertBefore(h,t.start)),(l||{})[p]=h;var m=t.recoverNodes();for(m&&u.insertBefore(m,t.end);;){var g=t.start.nextSibling;if(!g||g===h||g===t.end)break;h.appendChild(g)}avalon.effect.remove(h,u,function(){l&&d===t._stamp&&Pt.appendChild(h)},t);var y=u,b=avalon.noop,$=avalon.noop,w=mt(t,e,n),x=avalon.slice(w.childNodes);s&&o?(y=f,y.innerHTML="",y.setAttribute("ms-skip","true"),u.insertBefore(y,t.end.nextSibling),b=function(){y.insertBefore(w,null)},$=function(){t.recoverNodes=avalon.noop,d===t._stamp&&(w=gt(x),u.insertBefore(w,t.end),et(x,r)),y.parentNode===u&&u.removeChild(y)},t.recoverNodes=function(){return t.recoverNodes=avalon.noop,gt(x)}):b=function(){u.insertBefore(w,t.end),et(x,r)},avalon.effect.apply(y,"enter",b,$)};if("src"===t.param)if("string"==typeof Fa[e])avalon.nextTick(function(){d(Fa[e])});else if(Array.isArray(Fa[e]))Fa[e].push(d);else{var v=Ra();v.onload=function(){for(var t,n=v.responseText,a=0;t=Fa[e][a++];)t(n);Fa[e]=n},v.onerror=function(){n("ms-include load ["+e+"] error")},Fa[e]=[d],v.open("GET",e,!0),"withCredentials"in v&&(v.withCredentials=!0),v.setRequestHeader("X-Requested-With","XMLHttpRequest"),v.send(null)}else{var p=e&&1===e.nodeType?e:jt.getElementById(e);p&&avalon.nextTick(function(){d(p.value||p.innerText||p.innerHTML)})}}});var Ba=/\(([^)]*)\)/,qa=avalon.directive("on",{priority:3e3,init:function(e){var t=e.expr;e.type="on";var n=e.param.replace(/-\d+$/,"");if("function"==typeof qa[n+"Hook"]&&qa[n+"Hook"](e),t.indexOf("(")>0&&t.indexOf(")")>-1){var a=(t.match(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||r;return n.apply(this,t.args.concat(e))};var a=t.param.replace(/-\d+$/,"");if("scan"===a)e.call(n,{type:a});else if("function"==typeof t.specialBind)t.specialBind(n,e);else var i=avalon.bind(n,a,e);t.rollback=function(){"function"==typeof t.specialUnbind?t.specialUnbind():avalon.unbind(n,a,i)}}});avalon.directive("repeat",{priority:90,init:function(e){var t=e.type;e.cache={},e.enterCount=0;var n=e.element;if(1===n.nodeType){n.removeAttribute(e.name),ft(n,e),e.param=e.param||"el",e.sortedCallback=ea(n,"data-with-sorted",e.vmodels);var a=ea(n,"data-"+t+"-rendered",e.vmodels),r=Qt(t),i=jt.createComment(r+":start"),o=e.element=jt.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 u=this.track;if(n.sortedCallback){var f=n.sortedCallback.call($,u);f&&Array.isArray(f)&&(u=f)}var d="move";n.$repeat=e;var v=[],p=r&&Zt.cloneNode(!1),h=[],m=this.param,g=avalon.mix({},this.cache),y=this.element,b=u.length,$=y.parentNode;for(s=0;b>s;s++){var w=u[s],x=g[w];if(x)v.push({}),g[w]=!0;else{if(x=xt(this),x.$up=null,"array"===a){d="add",x.$id=w;var T=e[s];x[m]=T,Object(T)===T&&(T.$ups=T.$ups||{},T.$ups[m]=x)}else d="append",x.$key=w,x.$val=e[w];this.cache[w]=x;var k=x.$anchor||(x.$anchor=y.cloneNode(!1));k.nodeValue=this.signature,wt(n,p,x,v,r&&!n.effectDriver),kt(x,n,a)}1===this.enterCount&&(x.$active=!1,x.$oldIndex=x.$index,x.$active=!0,x.$index=s),"array"===a?(x.$first=0===s,x.$last=s===b-1):x.$val=C(e[w]),h.push(x)}if(this.proxies=h,r&&!n.effectDriver)$.insertBefore(p,y),v.forEach(function(e){et(e.nodes||[],e.vmodels),e.nodes=e.vmodels=null});else{var E=n.staggerIndex=0;for(w in g)g[w]!==!0&&(d="del",$t(g[w].$anchor,n),At(this.cache,w,m),g[w]=null);for(s=0;b>s;s++){x=h[s],w="array"===a?x.$id:x.$key;var N=h[s-1],A=N?N.$anchor:n.start;g[w]?x.$index!==x.$oldIndex&&!function(e,t){E=bt(n.effectEnterStagger,function(){var a=$t(e.$anchor),r=avalon.slice(a.childNodes);$.insertBefore(a,t.nextSibling),yt(r,1,n)},E)}(x,A):!function(e,t){var a=e.nodes,r=e.vmodels;a&&(E=bt(n.effectEnterStagger,function(){$.insertBefore(e.content,t.nextSibling),et(a,r),yt(a,1,n)},E)),e.nodes=e.vmodels=null}(v[s],A)}}if(!e.$track)for(w in this.cache)At(this.cache,w,m);!function(e){$.args=e,$.msRendered&&$.msRendered.apply($,e)}(c.newWatch?arguments:[d]);var M=setTimeout(function(){clearTimeout(M),avalon.fireDom($,"datasetchanged",{bubble:$.msHasEvent})});this.enterCount-=1}}),"with,each".replace(Bt,function(e){nn[e]=avalon.mix({},nn.repeat,{priority:1400})});var _a=[],Va=[];avalon.directive("text",{update:function(e){var t=this.element;if(e=null==e?"":e,3===t.nodeType)try{t.data=e}catch(n){}else t.textContent=e}}),avalon.parseDisplay=Mt,avalon.directive("visible",{init:function(e){ft(e.element,e)},update:function(e){var t,n=this,a=this.element,r=!this.effectName;return this.stamp?(t=this.stamp=+new Date,void(e?avalon.effect.apply(a,1,function(){if(t===n.stamp){var e=a.getAttribute("data-effect-driver")||"a";r&&(a.style.display=n.display||""),("a"===e||"t"===e)&&"none"===avalon(a).css("display")&&(a.style.display=n.display||Mt(a.nodeName))}}):avalon.effect.apply(a,0,function(){t===n.stamp&&(a.style.display="none")}))):(t=this.stamp=+new Date,void(e?(a.style.display=n.display||"","none"===avalon(a).css("display")&&(a.style.display=n.display=Mt(a.nodeName))):a.style.display="none"))}});var Ia=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,Ya=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,Xa=/<\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,Ua=/([^\#-~| |!])/g,Ga=avalon.filters={uppercase:function(e){return e.toUpperCase()},lowercase:function(e){return e.toLowerCase()},truncate:function(e,t,n){return t=t||30,n="string"==typeof n?n:"...",e.length>t?e.slice(0,t-n.length)+n:String(e)},$filter:function(e){for(var t=1,n=arguments.length;n>t;t++){var a=arguments[t],r=avalon.filters[a[0]];if("function"==typeof r){var i=[e].concat(a.slice(1));e=r.apply(null,i)}}return e},camelize:H,sanitize:function(e){return e.replace(Ia,"").replace(Xa,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(Ya," ").replace(/\s+/g," ")})},escape:function(e){return String(e).replace(/&/g,"&").replace(Wa,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(Ua,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")},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+)\)\/$/;Ga.date=function(t,n){var a,r,i=Ga.date.locate,c="",u=[];if(n=n||"mediumDate",n=i[n]||n,"string"==typeof t)if(/^\d+$/.test(t))t=e(t);else if(s.test(t))t=+RegExp.$1;else{var f=t.trim(),d=[0,0,0,0,0,0,0],v=new Date(0);f=f.replace(/^(\d+)\D(\d+)\D(\d+)/,function(t,n,a,r){var i=4===r.length?[r,n,a]:[n,a,r];return d[0]=e(i[0]),d[1]=e(i[1])-1,d[2]=e(i[2]),""});var p=v.setFullYear,h=v.setHours;f=f.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/,function(t,n,a,r,i){return d[3]=e(n),d[4]=e(a),d[5]=e(r),i&&(d[6]=Math.round(1e3*parseFloat("0."+i))),""});var m=0,g=0;f=f.replace(/Z|([+-])(\d\d):?(\d\d)/,function(t,n,a,r){return p=v.setUTCFullYear,h=v.setUTCHours,n&&(m=e(n+a),g=e(n+r)),""}),d[3]-=m,d[4]-=g,p.apply(v,d.slice(0,3)),h.apply(v,d.slice(3)),t=v}if("number"==typeof t&&(t=new Date(t)),"date"===avalon.type(t)){for(;n;)r=l.exec(n),r?(u=u.concat(r.slice(1)),n=u.pop()):(u.push(n),n=null);return u.forEach(function(e){a=o[e],c+=a?a(t,i):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}};var c={AMPMS:{0:"上午",1:"下午"},DAY:{0:"星期日",1:"星期一",2:"星期二",3:"星期三",4:"星期四",5:"星期五",6:"星期六"},MONTH:{0:"1月",1:"2月",2:"3月",3:"4月",4:"5月",5:"6月",6:"7月",7:"8月",8:"9月",9:"10月",10:"11月",11:"12月"},SHORTDAY:{0:"周日",1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六"},fullDate:"y年M月d日EEEE",longDate:"y年M月d日",medium:"yyyy-M-d H:mm:ss",mediumDate:"yyyy-M-d",mediumTime:"H:mm:ss","short":"yy-M-d ah:mm",shortDate:"yy-M-d",shortTime:"ah:mm"};c.SHORTMONTH=c.MONTH,Ga.date.locate=c};var Za,Ja=[],Ka=function(e){Za=!0;var t=avalon.require;for(t&&t.checkDeps&&(modules["domReady!"].state=4,t.checkDeps());e=Ja.shift();)e(avalon)};"complete"===jt.readyState?setTimeout(Ka):jt.addEventListener("DOMContentLoaded",Ka),e.addEventListener("load",Ka),avalon.ready=function(e){Za?e(avalon):Ja.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(jt.body)});var Qa=navigator.userAgent.toLowerCase(),er=Qa.indexOf("android")>0,tr=Ot(),nr=avalon.gestureHooks={pointers:{},start:function(e,t){for(var n=0;n<e.changedTouches.length;n++){var a=e.changedTouches[n],r={startTouch:Dt({},a),startTime:Date.now(),status:"tapping",element:e.target};nr.pointers[a.identifier]=r,t(r,a)}},move:function(e,t){for(var n=0;n<e.changedTouches.length;n++){var a=e.changedTouches[n],r=nr.pointers[a.identifier];if(!r)return;"lastTouch"in r||(r.lastTouch=r.startTouch,r.lastTime=r.startTime,r.deltaX=r.deltaY=r.duration=r.distance=0);var i=Date.now()-r.lastTime;if(i>0){var o=70;i>o&&(i=o),r.duration+i>o&&(r.duration=o-i),r.duration+=i,r.lastTouch=Dt({},a),r.lastTime=Date.now(),r.deltaX=a.clientX-r.startTouch.clientX,r.deltaY=a.clientY-r.startTouch.clientY;var l=r.deltaX*r.deltaX,s=r.deltaY*r.deltaY;r.distance=Math.sqrt(l+s),r.isVertical=s>l,t(r,a)}}},end:function(e,t){for(var n=0;n<e.changedTouches.length;n++){var a=e.changedTouches[n],r=a.identifier,i=nr.pointers[r];
|
3
|
+
i&&(t(i,a),delete nr.pointers[r])}},fire:function(e,t,n){if(e){var a=document.createEvent("Events");a.initEvent(t,!0,!0),avalon.mix(a,n),e.dispatchEvent(a)}},add:function(e,t){function n(e){t.touchmove(e)}function a(e){t.touchend(e),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",a),document.removeEventListener("touchcancel",r)}function r(e){t.touchcancel(e),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",a),document.removeEventListener("touchcancel",r)}t.events.forEach(function(i){avalon.eventHooks[i]={fn:function(i,o){return i["touch-"+e]||(i["touch-"+e]="1",i.addEventListener("touchstart",function(e){t.touchstart(e),document.addEventListener("touchmove",n),document.addEventListener("touchend",a),document.addEventListener("touchcancel",r)})),o}}})}},ar=["screenX","screenY","clientX","clientY","pageX","pageY"],rr=!!navigator.pointerEnabled||!!navigator.msPointerEnabled;rr&&(Gt.style.msTouchAction=Gt.style.touchAction="none");var ir={events:["tap"],touchBoundary:10,tapDelay:200,needClick:function(e){switch(e.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(e.disabled)return!0;break;case"input":if(tr&&"file"===e.type||e.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return!1},needFocus:function(e){switch(e.nodeName.toLowerCase()){case"textarea":case"select":return!0;case"input":switch(e.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!e.disabled&&!e.readOnly;default:return!1}},focus:function(e){var t,n=e.type;tr&&e.setSelectionRange&&0!==n.indexOf("date")&&"time"!==n&&"month"!==n?(t=e.value.length,e.setSelectionRange(t,t)):e.focus()},findControl:function(e){return void 0!==e.control?e.control:e.htmlFor?document.getElementById(e.htmlFor):e.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},fixTarget:function(t){return 3===t.nodeType?t.parentNode:e.SVGElementInstance&&t instanceof SVGElementInstance?t.correspondingUseElement:t},updateScrollParent:function(e){var t=e.tapScrollParent;if(!t||!t.contains(e)){var n=e;do{if(n.scrollHeight>n.offsetHeight){t=n,e.tapScrollParent=n;break}n=n.parentElement}while(n)}t&&(t.lastScrollTop=t.scrollTop)},touchHasMoved:function(e){var t=e.changedTouches[0],n=ir.touchBoundary;return Math.abs(t.pageX-ir.touchStartX)>n||Math.abs(t.pageY-ir.touchStartY)>n},findType:function(e){return er&&"select"===e.tagName.toLowerCase()?"mousedown":"click"},sendClick:function(t,n){nr.fire(t,"tap",{touchEvent:n});var a,r;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),r=n.changedTouches[0],a=document.createEvent("MouseEvents"),a.initMouseEvent(ir.findType(t),!0,!0,e,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),a.touchEvent=n,t.dispatchEvent(a)},touchstart:function(t){if(1!==t.targetTouches.length)return!0;var n=ir.fixTarget(t.target),a=t.targetTouches[0];if(tr){var r=e.getSelection();if(r.rangeCount&&!r.isCollapsed)return!0;var i=a.identifier;if(i&&isFinite(ir.lastTouchIdentifier)&&ir.lastTouchIdentifier===i)return t.preventDefault(),!1;ir.lastTouchIdentifier=i,ir.updateScrollParent(n)}ir.status="tapping",ir.startTime=Date.now(),ir.element=n,ir.pageX=a.pageX,ir.pageY=a.pageY,ir.startTime-ir.lastTime<ir.tapDelay&&t.preventDefault()},touchmove:function(e){return"tapping"!==ir.status?!0:void((ir.element!==ir.fixTarget(e.target)||ir.touchHasMoved(e))&&(ir.status=ir.element=0))},touchend:function(t){var n=ir.element,a=Date.now();if(!n||a-ir.startTime>ir.tapDelay)return!0;ir.lastTime=a;var r=ir.startTime;if(ir.status=ir.startTime=0,targetTagName=n.tagName.toLowerCase(),"label"===targetTagName){nr.fire(n,"tap",{touchEvent:t});var i=ir.findControl(n);i&&(ir.focus(n),n=i)}else if(ir.needFocus(n))return a-r>100||tr&&e.top!==e&&"input"===targetTagName?(ir.element=0,!1):(ir.focus(n),er&&ir.sendClick(n,t),!1);if(tr){var o=n.tapScrollParent;if(o&&o.lastScrollTop!==o.scrollTop)return!0}ir.needClick(n)||(t.preventDefault(),ir.sendClick(n,t))},touchcancel:function(){ir.startTime=ir.element=0}};nr.add("tap",ir);var or={events:["longtap","doubletap"],cancelPress:function(e){clearTimeout(e.pressingHandler),e.pressingHandler=null},touchstart:function(e){nr.start(e,function(t,n){t.pressingHandler=setTimeout(function(){"tapping"===t.status&&nr.fire(e.target,"longtap",{touch:n,touchEvent:e}),or.cancelPress(t)},500),1!==e.changedTouches.length&&(t.status=0)})},touchmove:function(e){nr.move(e,function(e){e.distance>10&&e.pressingHandler&&(or.cancelPress(e),"tapping"===e.status&&(e.status="panning"))})},touchend:function(e){nr.end(e,function(t,n){or.cancelPress(t),"tapping"===t.status&&(t.lastTime=Date.now(),or.lastTap&&t.lastTime-or.lastTap.lastTime<300&&nr.fire(t.element,"doubletap",{touch:n,touchEvent:e}),or.lastTap=t)})},touchcancel:function(e){nr.end(e,function(e){or.cancelPress(e)})}};nr.add("press",or);var lr={events:["swipe","swipeleft","swiperight","swipeup","swipedown"],getAngle:function(e,t){return 180*Math.atan2(t,e)/Math.PI},getDirection:function(e,t){var n=lr.getAngle(e,t);return-45>n&&n>-135?"up":n>=45&&315>n?"down":n>-45&&45>=n?"right":"left"},touchstart:function(e){nr.start(e,r)},touchmove:function(e){nr.move(e,r)},touchend:function(e){1===e.changedTouches.length&&nr.end(e,function(t,n){var a=t.distance>30&&t.distance/t.duration>.65;if(a){var r={deltaX:t.deltaX,deltaY:t.deltaY,touch:n,touchEvent:e,direction:lr.getDirection(t.deltaX,t.deltaY),isVertical:t.isVertical},i=t.element;nr.fire(i,"swipe",r),nr.fire(i,"swipe"+r.direction,r)}})}};lr.touchcancel=lr.touchend,nr.add("swipe",lr),"function"==typeof define&&define.amd&&define("avalon",[],function(){return avalon});var sr=e.avalon;return avalon.noConflict=function(t){return t&&e.avalon===avalon&&(e.avalon=sr),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.js 1.5.
|
8
|
+
avalon.modern.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
|
-
|
85
|
-
|
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
|
-
|
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.
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
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
|
-
|
1757
|
-
|
1758
|
-
|
1759
|
-
|
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
|
-
|
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
|
-
|
1825
|
-
|
1826
|
-
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
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
|
-
|
1848
|
-
|
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
|
-
|
1859
|
-
|
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
|
-
|
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
|
-
|
1957
|
-
|
1958
|
-
|
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
|
-
|
2000
|
-
|
2001
|
-
|
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
|
-
|
2018
|
-
|
2019
|
-
|
2020
|
-
|
2021
|
-
|
2022
|
-
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
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
|
-
|
2034
|
-
|
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
|
-
|
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
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2051
|
-
|
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
|
-
|
2055
|
-
|
2056
|
-
|
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
|
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
|
-
|
2603
|
+
//确保所有ms-attr-name扫描完再处理
|
2604
|
+
_delay_component(fullName)
|
2571
2605
|
}
|
2572
2606
|
}
|
2573
2607
|
}
|
2574
|
-
|
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
|
-
|
2767
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
3293
|
+
bound("change", updateVModel)
|
3263
3294
|
break
|
3264
3295
|
case "input":
|
3265
|
-
|
3266
|
-
|
3267
|
-
|
3268
|
-
|
3269
|
-
|
3270
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
3335
|
+
bound("focus", function () {
|
3311
3336
|
elem.msFocus = true
|
3312
3337
|
})
|
3313
|
-
|
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
|
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)
|
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 {
|
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])
|
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
|
-
* AMD加载器
|
5060
|
+
* AMD加载器 *
|
5038
5061
|
**********************************************************************/
|
5062
|
+
|
5039
5063
|
//https://www.devbridge.com/articles/understanding-amd-requirejs/
|
5040
5064
|
//http://maxogden.com/nested-dependencies.html
|
5041
5065
|
var modules = avalon.modules = {
|
@@ -5693,8 +5717,9 @@ new function () {// jshint ignore:line
|
|
5693
5717
|
}// jshint ignore:line
|
5694
5718
|
|
5695
5719
|
/*********************************************************************
|
5696
|
-
* DOMReady
|
5720
|
+
* DOMReady *
|
5697
5721
|
**********************************************************************/
|
5722
|
+
|
5698
5723
|
var readyList = [],
|
5699
5724
|
isReady
|
5700
5725
|
var fireReady = function (fn) {
|
@@ -5709,7 +5734,6 @@ var fireReady = function (fn) {
|
|
5709
5734
|
}
|
5710
5735
|
}
|
5711
5736
|
|
5712
|
-
|
5713
5737
|
if (DOC.readyState === "complete") {
|
5714
5738
|
setTimeout(fireReady) //如果在domReady之外加载
|
5715
5739
|
} else {
|
@@ -5723,6 +5747,7 @@ avalon.ready = function (fn) {
|
|
5723
5747
|
fn(avalon)
|
5724
5748
|
}
|
5725
5749
|
}
|
5750
|
+
|
5726
5751
|
avalon.config({
|
5727
5752
|
loader: true
|
5728
5753
|
})
|