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(){e.console&&avalon.config.debug&&Function.apply.call(console.log,console,arguments)}function r(e){return Function.apply(i,e)}function i(){}function o(e,t){"string"==typeof e&&(e=e.match(Kt)||[]);for(var n={},r=void 0!==t?t:1,a=0,i=e.length;i>a;a++)n[e[a]]=r;return n}function l(){if(e.VBArray){var t=document.documentMode;return t?t:e.XMLHttpRequest?7:6}return 0/0}function s(e){return tn.test(an.call(e))}function c(e,t){return e=Math.floor(e)||0,0>e?Math.max(t+e,0):Math.min(e,t)}function u(e){if(!e)return!1;var t=e.length;if(t===t>>>0){var n=an.call(e).slice(8,-1);if(/(?:regexp|string|function|window|global)$/i.test(n))return!1;if("Array"===n)return!0;try{return{}.propertyIsEnumerable.call(e,"length")===!1?/^\s?function/.test(e.item||e.callee):!0}catch(r){return!e.window}}return!1}function f(e,t,n){var r="for(var "+e+"i=0,n = this.length; i < n; i++){"+t.replace("_","((i in this) && fn.call(scope,this[i],i,this))")+"}"+n;return Function("fn,scope",r)}function p(e,t){try{for(;t=t.parentNode;)if(t===e)return!0;return!1}catch(n){return!1}}function d(){return(new XMLSerializer).serializeToString(this)}function v(e,t){if(e&&e.childNodes)for(var n,r=e.childNodes,a=0;n=r[a++];)if(n.tagName){var i=Wt.createElementNS(En,n.tagName.toLowerCase());on.forEach.call(n.attributes,function(e){i.setAttribute(e.name,e.value)}),v(n,i),t.appendChild(i)}}function h(e){var t={};for(var n in e)t[n]=e[n];var r=t.target=e.srcElement;if(0===e.type.indexOf("key"))t.which=null!=e.charCode?e.charCode:e.keyCode;else if(_n.test(e.type)){var a=r.ownerDocument||Wt,i="BackCompat"===a.compatMode?a.body:a.documentElement;t.pageX=e.clientX+(i.scrollLeft>>0)-(i.clientLeft>>0),t.pageY=e.clientY+(i.scrollTop>>0)-(i.clientTop>>0),t.wheelDeltaY=t.wheelDelta,t.wheelDeltaX=0}return t.timeStamp=new Date-0,t.originalEvent=e,t.preventDefault=function(){e.returnValue=!1},t.stopPropagation=function(){e.cancelBubble=!0},t}function m(e){for(var t in e)if(rn.call(e,t)){var n=e[t];"function"==typeof m.plugins[t]?m.plugins[t](n):"object"==typeof m[t]?avalon.mix(m[t],n):m[t]=n}return this}function g(e){return(e+"").replace(Fn,"\\$&")}function y(e,t){var n=this.$events||(this.$events={}),r=n[e]||(n[e]=[]);if("function"==typeof t){var a=t;a.uniqueNumber=Math.random(),t={element:cn,type:"user-watcher",handler:i,vmodels:[this],expr:e,uniqueNumber:a.uniqueNumber},t.wildcard=/\*/.test(e)}if(t.update)t.oneTime||avalon.Array.ensure(r,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},r.sync=!0,avalon.Array.ensure(r,t)}else avalon.injectBinding(t);a&&(t.handler=a)}return function(){t.update=t.getter=t.handler=i,t.element=Wt.createElement("a")}}function b(e,t){var n=this.$events;if(n&&n[e]){t&&(t[2]=e);var r=n[e];$(r,t);var a=this.$up;a&&(this.$pathname&&b.call(a,this.$pathname+"."+e,t),b.call(a,"*."+e,t))}else{if(a=this.$up,this.$ups){for(var i in this.$ups)b.call(this.$ups[i],i+"."+e,t);return}if(a){var o=this.$pathname;""===o&&(o="*");var l=o+"."+e;r=l.split("."),-1===r.indexOf("*")?(b.call(a,l,t),r[1]="*",b.call(a,r.join("."),t)):b.call(a,l,t)}}}function x(e,t){for(;;){if(e.$watch){var n=e.$events||(e.$events={}),r=n[t]||(n[t]=[]);return void Qn.collectDependency(r)}if(e=e.$up,!e)break;t=e.$pathname+"."+t}}function $(e,t){if(e){new Date-nr>444&&"object"==typeof e[0]&&R();for(var n,r=[],a=[],i=0;n=e[i++];)"user-watcher"===n.type?r.push(n):a.push(n);if(m.async){for(fa.render(),i=0;n=a[i++];)if(n.update){var o=P(n);fa.queue[o]||(fa.queue[o]=1,fa.queue.push(n))}}else for(i=0;n=a[i++];)n.update&&n.update();for(i=0;n=r[i++];)(t&&t[2]===n.expr||n.wildcard)&&(n.fireArgs=t),n.update()}}function w(e,t){return t=t||{},t.watch=!0,k(e,t)}function C(){}function k(e,t){function r(e){return u[e]===!0}if(!e||e.$id&&e.$accessors||e.nodeName&&e.nodeType>0)return e;t=t||Zt;var a=t.force||Zt,i=t.old,l=i&&i.$accessors||Zt,s=new C,c={},u={},f=[],p=[],d={};e.$skipArray&&(d=o(e.$skipArray),delete e.$skipArray);var v=e.$computed;if(v){delete e.$computed;for(var h in v)u[h]=!0,function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(r){if("function"==typeof t.set){var a=n;t.set.call(this,r);var i=this[e];this.$fire&&i!==a&&this.$fire(e,i,a)}},enumerable:!0,configurable:!0}}(h,v[h])}for(h in e){var m=e[h];qn[h]||(u[h]=!0),"function"==typeof m||m&&m.nodeName&&m.nodeType>0||!a[h]&&("$"===h.charAt(0)||qn[h]||d[h])?f.push(h):N(m)?(n("warning:计算属性建议放在$computed对象中统一定义"),function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(r){if("function"==typeof t.set){var a=n;t.set.call(this,r);var i=this[e];this.$fire&&i!==a&&this.$fire(e,i,a)}},enumerable:!0,configurable:!0}}(h,m)):(p.push(h),c[h]=l[h]?l[h]:T(h,m))}c.$model=Xn,s=Un(s,c,e),f.forEach(function(t){s[t]=e[t]}),_(s,"$ups",null),_(s,"$id","anonymous"),_(s,"$up",i?i.$up:null),_(s,"$track",Object.keys(u)),_(s,"$active",!1),_(s,"$pathname",i?i.$pathname:""),_(s,"$accessors",c),_(s,"hasOwnProperty",r),t.watch&&(_(s,"$watch",function(){return y.apply(s,arguments)}),_(s,"$fire",function(e,t){if(0===e.indexOf("all!")){var n=e.slice(4);for(var r in avalon.vmodels){var a=avalon.vmodels[r];a.$fire&&a.$fire.apply(a,[n,t])}}else b.call(s,e,[t])})),p.forEach(function(t){var n=i&&i[t],r=s[t]=e[t];r&&"object"==typeof r&&(r.$up=s,r.$pathname=t),b.call(s,t,[r,n])});for(h in v)m=s[h];return s.$active=!0,s}function N(e){if(e&&"object"==typeof e){for(var t in e)if("get"!==t&&"set"!==t)return!1;return"function"==typeof e.get}}function T(e,t){var n;return t=0/0,{get:function(){return this.$active&&x(this,e),t},set:function(r){if(t!==r){var a=t;n=E(r,t),n?t=n:(n=void 0,t=r),Object(n)===n&&(n.$pathname=e,n.$up=this),this.$active&&b.call(this,e,[t,a])}},enumerable:!0,configurable:!0}}function E(e,t,n,r){if(Array.isArray(e))return A(e,t,r);if(avalon.isPlainObject(e)){if(t&&"object"==typeof t){var a=Wn(e),i=Wn(t);if(a.join(";")===i.join(";")){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);return t}t.$active=!1}return k(e,{old:t,watch:r})}return n?e:void 0}function A(e,t,n){if(t){var r=[0,t.length].concat(e);return t.splice.apply(t,r),t}for(var a in Zn)e[a]=Zn[a];_(e,"$up",null),_(e,"$pathname",""),_(e,"$track",j(e.length)),e._=k({length:0/0},{watch:!0}),e._.length=e.length,e._.$watch("length",function(t,n){b.call(e.$up,e.$pathname+".length",[t,n])}),n&&_(e,"$watch",function(){return y.apply(e,arguments)}),sn?Object.defineProperty(e,"$model",Xn):e.$model=S(e);for(var i=0,o=e.length;o>i;i++){var l=e[i]=E(e[i],0,1,1);Object(l)===l&&(l.$up=e)}return e}function _(e,t,n){Vn?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!1,configurable:!0}):e[t]=n}function S(e){var t=avalon.type(e);if("array"===t){for(var n=[],r=0;r<e.length;r++)n[r]=S(e[r]);return n}if("object"===t){var a={};for(r in e)if("__proxy__"!==r&&"__data__"!==r&&"__const__"!==r&&e.hasOwnProperty(r)){var i=e[r];a[r]=i&&i.nodeType?i:S(i)}return a}return e}function O(e,t,n,r){var a=t[n];return 4!==arguments.length?a.get.call(e):void a.set.call(e,r)}function M(e,t){for(var n={},r=0,a=t.length;a>r;r++){n[r]=e[r];var i=t[r];i in n?(e[r]=n[i],delete n[i]):e[r]=e[i]}}function j(e){for(var t=[],n=0;e>n;n++)t[n]=dn("$proxy$each");return t}function L(e,t,n){switch(t){case"push":case"unshift":n=j(n.length);break;case"splice":if(n.length>2){{n[1],n.length-2}n=[n[0],n[1]].concat(j(n.length-2))}}Array.prototype[t].apply(e,n)}function D(e,t){t.oneTime||e&&avalon.Array.ensure(e,t)&&t.element&&(F(t,e),new Date-nr>444&&R())}function H(e,t){for(var n,r=[],a=0;n=e[a++];)r.push(t?n.$id:n.$key);return r.join(";")}function P(e){if(!e.uniqueNumber){var t=e.element;e.uniqueNumber=t?1!==t.nodeType?e.type+"-"+P(t.parentNode)+"-"+ ++er:e.name+"-"+P(t):++er}return e.uniqueNumber}function F(e,t){var n=e.lists||(e.lists=[]),r=P(e);avalon.Array.ensure(n,t),t.$uuid=t.$uuid||dn(),tr[r]||(tr[r]=1,tr.push(e))}function R(e){for(var t=tr.length,n=t,r=[],a={},i={};e=tr[--t];){var o=e.type;i[o]?i[o]++:(i[o]=1,r.push(o))}var l=!1;if(r.forEach(function(e){rr[e]!==i[e]&&(a[e]=1,l=!0)}),t=n,l)for(;e=tr[--t];)if(null!==e.element){if(a[e.type]&&q(e.element)){tr.splice(t,1),delete tr[e.uniqueNumber];for(var s,c=e.lists,u=0;s=c[u++];)avalon.Array.remove(c,s),avalon.Array.remove(s,e);B(e)}}else tr.splice(t,1);rr=i,nr=new Date}function B(e){delete tr[e.uniqueNumber],e.element=null,e.rollback&&e.rollback();for(var t in e)e[t]=null}function q(e){try{{e.parentNode.nodeType}}catch(t){return!0}return e.ifRemove&&!cn.contains(e.ifRemove)&&Yt===e.parentNode?(e.parentNode&&e.parentNode.removeChild(e),!0):e.msRetain?0:1===e.nodeType?!cn.contains(e):!avalon.contains(cn,e)}function I(e){var t=e.nodeName;return t.toLowerCase()===t&&e.scopeName&&""===e.outerText}function V(e){"url(#default#VML)"!==e.currentStyle.behavior&&(e.style.behavior="url(#default#VML)",e.style.display="inline-block",e.style.zoom=1)}function U(e){return e.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function z(e){return!e||e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})}function W(e){if(!("classList"in e)){e.classList={node:e};for(var t in pr)e.classList[t.slice(1)]=pr[t]}return e.classList}function X(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:dr.test(e)?avalon.parseJSON(e):e}catch(t){}return e}function Y(e){return e.window&&e.document?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}function G(e,t){if(e.offsetWidth<=0){if(Ar.test(yr["@:get"](e,"display"))){var n={node:e};for(var r in Er)n[r]=e.style[r],e.style[r]=Er[r];t.push(n)}var a=e.parentNode;a&&1===a.nodeType&&G(a,t)}}function J(e){var t=e.tagName.toLowerCase();return"input"===t&&/checkbox|radio/.test(e.type)?"checked":t}function Z(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(jr.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=Z(e.slice(l),l);if(f.length)n[c-1]=u+".*",n=f.concat(n);else{var p=e.slice(l+1,f.i);try{var d=r(["return "+p])();n[c-1]=u+"."+d}catch(v){}}i="maybePath",l=f.i}}else if("]"===s){if(a)return n.i=l+t,K(n,o),n}else Lr.test(s)&&"\r"!==s&&"\n"!==s?"variable"===i&&(K(n,o)&&(i="maybePath"),o=""):(K(n,o),i="unknown",o="")}return K(n,o),n}function K(e,t){return t&&!Or[t]?(e.push(t),!0):void 0}function Q(e,t,n,r){for(var a,i=[],o=" = "+n+".",l=e.length;a=e[--l];)for(var s,c=a.split("."),u=c[0];s=c.shift();)t.hasOwnProperty(s)&&(i.push(u+o+u),r.observers.push({v:t,p:a}),e.splice(l,1));return i}function et(e){e=e.trim();var t=Hr.get(e);if(t)return t.concat();for(var n,r=Z(e),a={},i=[],o=0;n=r[o++];)a[n]||(a[n]=1,i.push(n));return Hr.put(e,i).concat()}function tt(e,t,n){var a=n.filters;"string"==typeof a&&a.trim()&&!n._filters&&(n._filters=rt(a.trim()));var i=et(e),o=new Date-0,l=[],s=[],c=[];n.observers=[];for(var u=0,f=t.length;f>u;u++)if(i.length){var p="vm"+o+"_"+u;s.push(p),c.push(t[u]),l.push.apply(l,Q(i,t[u],p,n))}n.args=c;var d=n.type,v=t.map(function(e){return String(e.$id).replace(Dr,"$1")})+e+d,h=Pr.get(v);if(h){if("duplex"===d){var m=Pr.get(v+"setter");n.setter=m.apply(m,n.args)}return n.getter=h}if(l.length||l.push("fix"+o),"duplex"===d){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"));Pr.put(v+"setter",y),n.setter=y.apply(y,n.args)}if("on"===d){-1===e.indexOf("(")?e+=".call(this, $event)":e=e.replace("(",".call(this,"),s.push("$event"),e="\nreturn "+e+";";var b=e.lastIndexOf("\nreturn"),x=e.slice(0,b),$=e.slice(b);e=x+"\n"+$}else e="\nreturn "+e+";";return h=r(s.concat("'use strict';\nvar "+l.join(",\n")+e)),Pr.put(v,h)}function nt(e){var t=Dn.test(e);if(t){var n=vt(e);return 1===n.length?n[0].expr:n.map(function(e){return e.type?"("+e.expr+")":Ur(e.expr)}).join(" + ")}return e}function rt(e){return e=e.replace(Fr,"").replace(Rr,function(){return"],|"}).replace(Br,function(e,t){return"["+Ur(t)}).replace(qr,function(){return'"],["'}).replace(Ir,function(){return'",'})+"]",r(["return ["+e+"]"])()}function at(e,t,n){var r=setTimeout(function(){var a=e.innerHTML;clearTimeout(r),a===n?t():at(e,t,a)})}function it(e,t){var n=e.getAttribute("avalonctrl")||t.$id;e.setAttribute("avalonctrl",n),t.$events&&(t.$events.expr=e.tagName+'[avalonctrl="'+n+'"]')}function ot(e,t){for(var n,r=0;n=e[r++];)n.vmodels=t,xn[n.type].init(n),avalon.injectBinding(n),n.getter&&1===n.element.nodeType&&n.element.removeAttribute(n.name);e.length=0}function lt(e,t){return e.priority-t.priority}function st(e,t,r){var a=!0;if(t.length){for(var i,o=ia?ia(e):e.attributes,l=[],s={},c=0;i=o[c++];){var u=i.name;if(!s[u]&&(s[u]=1,i.specified&&(r=u.match(Gr)))){var f=r[1],p=r[2]||"",d=i.value;if(Jr[f]?(p=f,f="on"):Zr[f]&&(p=f,f="attr",u="ms-"+f+"-"+p,n("warning!请改用"+u+"代替"+i.name+"!")),xn[f]){var v=d.replace(Yr,""),h=d!==v,m={type:f,param:p,element:e,name:u,expr:v,oneTime:h,uniqueNumber:i.name+"-"+P(e),priority:(xn[f].priority||10*f.charCodeAt(0))+(Number(p.replace(/\D/g,""))||0)};if("html"===f||"text"===f){var g=dt(d).filters;m.expr=m.expr.replace(g,""),m.filters=g.replace(la,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(lt),y&&b&&"INPUT"===e.nodeName&&"text"===e.type&&n("warning!一个控件不能同时定义ms-attr-value与"+y),c=0;m=l[c];c++){if(f=m.type,Kr.test(f))return ot(l.slice(0,c+1),t);a&&(a=!Qr.test(f))}ot(l,t)}}a&&!zr[e.tagName]&&(gt(e)?e.msResolved:1)&&(Xr&&Xr(e),ut(e,t))}function ct(e){for(var t,n=ia?ia(e):e.attributes,r={},a=0;t=n[a++];)t.specified&&!oa.test(t.name)&&(r[z(t.name)]=X(t.value));return r}function ut(e,t){var n=avalon.slice(e.childNodes);ft(n,t)}function ft(e,t){for(var n,r=0;n=e[r++];)switch(n.nodeType){case 1:var a=n;if(!a.msResolved&&a.parentNode&&1===a.parentNode.nodeType){var i=gt(a);if(i){var o=a.localName?a.localName.replace(i+":",""):a.nodeName,l=i+":"+z(o);pa.push({library:i,element:a,fullName:l,widget:o,vmodels:t,name:"widget"}),avalon.components[l]&&avalon.component(l)}}pt(n,t),n.msHasEvent&&avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent});break;case 3:Dn.test(n.nodeValue)&&ht(n,t,r)}}function pt(e,t,r){var a=e.getAttribute("ms-skip");if(!e.getAttributeNode)return n("warning "+e.tagName+" no getAttributeNode method");var i=e.getAttributeNode("ms-important"),o=e.getAttributeNode("ms-controller");if("string"!=typeof a){if(r=i||o){var l=avalon.vmodels[r.value];if(!l)return;t=r===i?[l]:[l].concat(t);var s=r.name;e.removeAttribute(s),avalon(e).removeClass(s),it(e,l)}st(e,t)}}function dt(e){if(e.indexOf("|")>0){var t=e.replace(ca,function(e){return Array(e.length+1).join("1")}),n=t.replace(sa,"ᄢ㍄").indexOf("|");if(n>-1)return{type:"text",filters:e.slice(n).trim(),expr:e.slice(0,n)}}return{type:"text",expr:e,filters:""}}function vt(e){for(var t,n,r=[],a=0;;){if(n=e.indexOf(jn,a),-1===n)break;if(t=e.slice(a,n),t&&r.push({expr:t}),a=n+jn.length,n=e.indexOf(Ln,a),-1===n)break;t=e.slice(a,n),t&&r.push(dt(t,a)),a=n+Ln.length}return t=e.slice(a),t&&r.push({expr:t}),r}function ht(e,t,n){var r=[],a=vt(e.data);if(a.length){for(var i,o=0;i=a[o++];){var l=Wt.createTextNode(i.expr);i.type&&(i.expr=i.expr.replace(Yr,function(){return i.oneTime=!0,""}),i.element=l,i.filters=i.filters.replace(la,function(){return i.type="html",""}),i.pos=1e3*n+o,r.push(i)),un.appendChild(l)}e.parentNode.replaceChild(un,e),r.length&&ot(r,t)}}function mt(e,t){if(t)for(var n,r=0;n=e[r++];)if(n.hasOwnProperty(t)&&"object"==typeof n[t]){var a=n[t];return a.$model||a}return{}}function gt(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 yt(e){return null==e?"":e}function bt(e,t,n){return t.param.replace(Qt,function(r){var a=avalon.duplexHooks[r];a&&"function"==typeof a[n]&&(e=a[n](e,t))}),e}function xt(){for(var e=ka.length-1;e>=0;e--){var t=ka[e];t()===!1&&ka.splice(e,1)}ka.length||clearInterval(Ca)}function $t(e,t,n){if(e.setSelectionRange)t=e.selectionStart,n=e.selectionEnd;else if(document.selection&&document.selection.createRange){var r=document.selection.createRange();t=0-r.duplicate().moveStart("character",-1e5),n=t+r.text.length}return{start:t,end:n}}function wt(e,t,n){e.value&&!e.readOnly&&(e.createTextRange?setTimeout(function(){var n=e.createTextRange();n.collapse(!0),n.moveStart("character",t),n.select()},17):(e.selectionStart=t,e.selectionEnd=n))}function Ct(e,t){if(!e||1!==e.nodeType)return null;if(t)var n=t.effectName,r=t.effectDriver;else n=e.getAttribute("data-effect-name"),r=e.getAttribute("data-effect-driver");if(!n||!r)return null;var a=Ma.pop()||new Tt;return a.el=e,a.driver=r,a.useCss="j"!==r,a.useCss&&(t&&avalon(e).addClass(t.effectClass),a.cssEvent="t"===r?Ta:Ea),a.name=n,a.callbacks=avalon.effects[n]||{},a}function kt(e,t){var n=e.getAttribute("data-effect-name");if(n){t.effectName=n,t.effectDriver=e.getAttribute("data-effect-driver");var r=+e.getAttribute("data-effect-stagger");t.effectLeaveStagger=+e.getAttribute("data-effect-leave-stagger")||r,t.effectEnterStagger=+e.getAttribute("data-effect-enter-stagger")||r,t.effectClass=e.className||0/0}}function Nt(e){return e.replace(/^[\S]/g,function(e){return e.toUpperCase()})}function Tt(){}function Et(e,t){var n=e.callbacks[t+"Class"];return"string"==typeof n?n:"function"==typeof n?n():e.name+"-"+t}function At(e,t,n){var r=e.callbacks[t];r&&r.call(e,e.el,n)}function _t(e,t,n){var r=e.templateCache&&e.templateCache[t];if(r){for(var a,i=Wt.createDocumentFragment();a=r.firstChild;)i.appendChild(a);return i}return avalon.parseHTML(n)}function St(e){for(var t=Wt.createDocumentFragment(),n=0,r=e.length;r>n;n++)t.appendChild(e[n]);return t}function Ot(e,t,n){for(var r,a=0;r=e[a++];)r.className===n.effectClass&&avalon.effect.apply(r,t,i,i,n)}function Mt(e,t,n){return e?setTimeout(t,++n*e):t(),n}function jt(e,t){for(var n=un.cloneNode(!1),r=e,a=r.nodeValue,o=t&&Math.max(+t.staggerIndex,0),l=avalon.slice(r.parentNode.childNodes),s=l.indexOf(r);;){var c=l[--s];if(!c||0===String(c.nodeValue).indexOf(a))break;t&&c.className===t.effectClass?(e=c,function(e){t.staggerIndex=Mt(t.effectLeaveStagger,function(){avalon.effect.apply(e,0,i,function(){n.appendChild(e)},t)},o)}(c)):n.insertBefore(c,n.firstChild)}return n.appendChild(r),n}function Lt(e,t,n,r,a){var i=e.template.cloneNode(!0),o=avalon.slice(i.childNodes);i.appendChild(n.$anchor),a&&t.appendChild(i);var l=[n].concat(e.vmodels),s={nodes:o,vmodels:l,content:i};r.push(s)}function Dt(e){var t="object"===e.xtype?Rt:Ht,n=t(e),r=n.$anchor||(n.$anchor=e.element.cloneNode(!1));return r.nodeValue=e.signature,n.$outer=e.$outer,n}function Ht(e,t){for(var n=e.param||"el",r=0,a=qa.length;a>r;r++){var i=qa[r];if(i&&i.hasOwnProperty(n)){qa.splice(r,1),t=i;break}}return t||(t=Pt(n)),t}function Pt(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 r=w(t,{force:n});return r.$id=dn("$proxy$each"),r}function Ft(e,t,n){if("array"===n){e.$remove=function(){t.$repeat.removeAt(e.$index)};var r=t.param;e.$watch(r,function(n){var r=e.$index;t.$repeat[r]=n})}else e.$watch("$val",function(n){t.$repeat[e.$key]=n})}function Rt(){return Ia.pop()||Bt()}function Bt(){var e=w({$key:"",$val:0/0,$index:0,$oldIndex:0,$outer:{},$anchor:null},{force:{$key:1,$val:1,$index:1}});return e.$id=dn("$proxy$with"),e}function qt(e,t,n){var r=e[t];if(r){var a=0===r.$id.indexOf("$proxy$each")?qa:Ia;r.$outer={};for(var i in r.$events){var o=r.$events[i];Array.isArray(o)&&(o.length=0,i===n?r[n]=0/0:"$val"===i&&(r.$val=0/0))}a.unshift(r)>m.maxRepeatSize&&a.pop(),delete e[t]}}function It(e,t){var n="_"+e;if(!It[n]){var r=Wt.createElement(e);cn.appendChild(r),t=sn?getComputedStyle(r,null).display:r.currentStyle.display,cn.removeChild(r),It[n]=t}return It[n]}function Vt(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):3,o=r||",",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(a,i):""+Math.round(a)).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 Ut(){try{cn.doScroll("left"),ni()}catch(e){setTimeout(Ut)}}var zt=new Date-0,Wt=e.document,Xt=Wt.getElementsByTagName("head")[0],Yt=Xt.insertBefore(document.createElement("avalon"),Xt.firstChild);Yt.innerHTML="X<style id='avalonStyle'>.avalonHide{ display: none!important }</style>",Yt.setAttribute("ms-skip","1"),Yt.className="avalonHide";var Gt=/\[native code\]/,Jt="$"+zt,Zt={},Kt=/[^, ]+/g,Qt=/\w+/g,en=/^\[object SVG\w*Element\]$/,tn=/^\[object (?:Window|DOMWindow|global)\]$/,nn=Object.prototype,rn=nn.hasOwnProperty,an=nn.toString,on=Array.prototype,ln=on.slice,sn=e.dispatchEvent,cn=Wt.documentElement,un=Wt.createDocumentFragment(),fn=Wt.createElement("div"),pn={};"Boolean Number String Function Array Date RegExp Object Error".replace(Kt,function(e){pn["[object "+e+"]"]=e.toLowerCase()});var dn=function(e){return e=e||"avalon",String(Math.random()+Math.random()).replace(/\d\.\d{4}/,e)},vn=l();avalon=function(e){return new avalon.init(e)},avalon.nextTick=new function(){function t(){for(var e=a.length,t=0;e>t;t++)a[t]();a=a.slice(e)}var n=e.setImmediate,r=e.MutationObserver;if(n)return n.bind(e);var a=[];if(r){var i=document.createTextNode("avalon");new r(t).observe(i,{characterData:!0});var o=!1;return function(e){a.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?pn[an.call(e)]||"object":typeof e};var hn="object"==typeof alert?function(e){try{return/^\s*\bfunction\b/.test(e+"")}catch(t){return!1}}:function(e){return"[object Function]"===an.call(e)};avalon.isFunction=hn,avalon.isWindow=function(e){return e?e==e.document&&e.document!=e:!1},s(e)&&(avalon.isWindow=s);var mn;for(mn in avalon({}))break;var gn="0"!==mn;avalon.isPlainObject=function(e,t){if(!e||"object"!==avalon.type(e)||e.nodeType||avalon.isWindow(e))return!1;try{if(e.constructor&&!rn.call(e,"constructor")&&!rn.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(gn)for(t in e)return rn.call(e,t);for(t in e);return void 0===t||rn.call(e,t)},Gt.test(Object.getPrototypeOf)&&(avalon.isPlainObject=function(e){return"[object Object]"===an.call(e)&&Object.getPrototypeOf(e)===nn}),avalon.mix=avalon.fn.mix=function(){var e,t,n,r,a,i,o=arguments[0]||{},l=1,s=arguments.length,c=!1;for("boolean"==typeof o&&(c=o,o=arguments[1]||{},l++),"object"==typeof o||hn(o)||(o={}),l===s&&(o=this,l--);s>l;l++)if(null!=(e=arguments[l]))for(t in e){n=o[t];try{r=e[t]}catch(u){continue}o!==r&&(c&&r&&(avalon.isPlainObject(r)||(a=Array.isArray(r)))?(a?(a=!1,i=n&&Array.isArray(n)?n:[]):i=n&&avalon.isPlainObject(n)?n:{},o[t]=avalon.mix(c,i,r)):void 0!==r&&(o[t]=r))}return o},avalon.mix({rword:Kt,subscribers:Jt,version:1.55,ui:{},log:n,slice:sn?function(e,t,n){return ln.call(e,t,n)}:function(e,t,n){var r=[],a=e.length;if(void 0===n&&(n=a),"number"==typeof n&&isFinite(n)){t=c(t,a),n=c(n,a);for(var i=t;n>i;++i)r[i-t]=e[i]}return r},noop:i,error:function(e,t){throw(t||Error)(e)},oneObject:o,range:function(e,t,n){n||(n=1),null==t&&(t=e||0,e=0);for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n)),i=new Array(a);++r<a;)i[r]=e,e+=n;return i},eventHooks:{},bind:function(e,t,n,r){var a=avalon.eventHooks,i=a[t];"object"==typeof i&&(t=i.type||t,r=i.phase||!!r,n=i.fn?i.fn(e,n):n);var o=sn?n:function(t){n.call(e,h(t))};return sn?e.addEventListener(t,o,r):e.attachEvent("on"+t,o),o},unbind:function(e,t,n,r){var a=avalon.eventHooks,o=a[t],l=n||i;"object"==typeof o&&(t=o.type||t,r=o.phase||!!r),sn?e.removeEventListener(t,l,r):e.detachEvent("on"+t,l)},css:function(e,t,n){e instanceof avalon&&(e=e[0]);var r,a=/[_-]/.test(t)?z(t):t;if(t=avalon.cssName(a)||a,void 0===n||"boolean"==typeof n){r=yr[a+":get"]||yr["@:get"],"background"===t&&(t="backgroundColor");var i=r(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[a]&&(n+="px"),r=yr[a+":set"]||yr["@:set"],r(e,t,n)}},each:function(e,t){if(e){var n=0;if(u(e))for(var r=e.length;r>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(),r={};for(var a in n)0===a.indexOf(t)&&(r[a.replace(t,"").replace(/\w/,function(e){return e.toLowerCase()})]=n[a]);return r},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 yn=avalon.bindingHandlers={},bn=avalon.bindingExecutors={},xn=avalon.directives={};avalon.directive=function(e,t){return yn[e]=t.init=t.init||i,bn[e]=t.update=t.update||i,xn[e]=t};var $n=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(!"司徒正美".trim){var wn=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(wn,"")}}var Cn=!{toString:null}.propertyIsEnumerable("toString"),kn=function(){}.propertyIsEnumerable("prototype"),Nn=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Tn=Nn.length;if(Object.keys||(Object.keys=function(e){var t=[],n=kn&&"function"==typeof e;if("string"==typeof e||e&&e.callee)for(var r=0;r<e.length;++r)t.push(String(r));else for(var a in e)n&&"prototype"===a||!rn.call(e,a)||t.push(String(a));if(Cn)for(var i=e.constructor,o=i&&i.prototype===e,l=0;Tn>l;l++){var s=Nn[l];o&&"constructor"===s||!rn.call(e,s)||t.push(s)}return t}),Array.isArray||(Array.isArray=function(e){return"[object Array]"===an.call(e)}),i.bind||(Function.prototype.bind=function(e){if(arguments.length<2&&void 0===e)return this;var t=this,n=arguments;return function(){var r,a=[];for(r=1;r<n.length;r++)a.push(n[r]);for(r=0;r<arguments.length;r++)a.push(arguments[r]);return t.apply(e,a)}}),Gt.test([].map)||avalon.mix(on,{indexOf:function(e,t){var n=this.length,r=~~t;for(0>r&&(r+=n);n>r;r++)if(this[r]===e)return r;return-1},lastIndexOf:function(e,t){var n=this.length,r=null==t?n-1:t;for(0>r&&(r=Math.max(0,n+r));r>=0;r--)if(this[r]===e)return r;return-1},forEach:f("","_",""),filter:f("r=[],j=0,","if(_)r[j++]=this[i]","return r"),map:f("r=[],","r[i]=_","return r"),some:f("","if(_)return true","return false"),every:f("","if(!_)return false","return true")}),avalon.contains=p,Wt.contains||(Wt.contains=function(e){return p(Wt,e)}),e.SVGElement){Wt.createTextNode("x").contains||(Node.prototype.contains=function(e){return!!(16&this.compareDocumentPosition(e))});var En="http://www.w3.org/2000/svg",An=Wt.createElementNS(En,"svg");An.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',en.test(An.firstChild)||Object.defineProperties(SVGElement.prototype,{outerHTML:{enumerable:!0,configurable:!0,get:d,set:function(e){var t=this.tagName.toLowerCase(),n=this.parentNode,r=avalon.parseHTML(e);if("svg"===t)n.insertBefore(r,this);else{var a=Wt.createDocumentFragment();v(r,a),n.insertBefore(a,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);v(t,this)}}}})}!cn.outerHTML&&e.HTMLElement&&HTMLElement.prototype.__defineGetter__("outerHTML",d);var _n=/^(?:mouse|contextmenu|drag)|click/,Sn=avalon.eventHooks;if("onmouseenter"in cn||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){Sn[e]={type:t,fn:function(t,n){return function(r){var a=r.relatedTarget;return a&&(a===t||16&t.compareDocumentPosition(a))?void 0:(delete r.type,r.type=e,n.call(t,r))}}}}),avalon.each({AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"},function(t,n){e[t]&&!Sn.animationend&&(Sn.animationend={type:n})}),"oninput"in Wt.createElement("input")||(Sn.input={type:"propertychange",deel:function(e,t){return function(n){return"value"===n.propertyName?(n.type="input",t.call(e,n)):void 0}}}),void 0===Wt.onmousewheel){var On=void 0!==Wt.onwheel?"wheel":"DOMMouseScroll",Mn="wheel"===On?"deltaY":"detail";Sn.mousewheel={type:On,fn:function(e,t){return function(n){n.wheelDeltaY=n.wheelDelta=n[Mn]>0?-120:120,n.wheelDeltaX=0,Object.defineProperty&&Object.defineProperty(n,"type",{value:"mousewheel"}),t.call(e,n)}}}}var jn,Ln,Dn,Hn,Pn,Fn=/[-.*+?^${}()|[\]\/\\]/g,Rn={interpolate:function(e){if(jn=e[0],Ln=e[1],jn===Ln){throw new SyntaxError("openTag!==closeTag")}m.openTag=jn,m.closeTag=Ln;var t=g(jn),n=g(Ln);Dn=new RegExp(t+"(.*?)"+n),Hn=new RegExp(t+"(.*?)"+n,"g"),Pn=new RegExp(t+".*?"+n+"|\\sms-")}};m.async=!0,m.debug=!0,m.plugins=Rn,m.plugins.interpolate(["{{","}}"]),m.paths={},m.shim={},m.maxRepeatSize=100,avalon.config=m;var Bn=avalon.vmodels={};avalon.define=function(e){var t=e.$id;t||n("warning: vm必须指定$id");var r=w(e);return r.$id=t,Bn[t]=r};var qn=o("$id,$watch,$fire,$events,$model,$skipArray,$active,$pathname,$up,$track,$accessors,$ups"),In=Object.defineProperty,Vn=!0;try{In({},"_",{value:"x"});var Un=Object.defineProperties}catch(zn){Vn=!1}var Wn=Gt.test(Object.key)?Object.key:function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&!qn[n]&&t.push(n);return t},Xn={get:function(){return S(this)},set:i,enumerable:!1,configurable:!0};if(!Vn&&("__defineGetter__"in avalon&&(In=function(e,t,n){return"value"in n&&(e[t]=n.value),"get"in n&&e.__defineGetter__(t,n.get),"set"in n&&e.__defineSetter__(t,n.set),e},Un=function(e,t){for(var n in t)t.hasOwnProperty(n)&&In(e,n,t[n]);return e}),vn)){var Yn={};e.execScript(["Function parseVB(code)"," ExecuteGlobal(code)","End Function"].join("\n"),"VBScript"),Un=function(t,n,r){var a=[];a.push("\r\n Private [__data__], [__proxy__]"," Public Default Function [__const__](d"+zt+", p"+zt+")"," Set [__data__] = d"+zt+": set [__proxy__] = p"+zt," Set [__const__] = Me"," End Function");var i={};for(t in n)i[t]=!0,a.push(" Public Property Let ["+t+"](val"+zt+")",' Call [__proxy__](Me,[__data__], "'+t+'", val'+zt+")"," End Property"," Public Property Set ["+t+"](val"+zt+")",' Call [__proxy__](Me,[__data__], "'+t+'", val'+zt+")"," End Property"," Public Property Get ["+t+"]"," On Error Resume Next"," Set["+t+'] = [__proxy__](Me,[__data__],"'+t+'")'," If Err.Number <> 0 Then"," ["+t+'] = [__proxy__](Me,[__data__],"'+t+'")'," End If"," On Error Goto 0"," End Property");
|
2
|
-
for(t in r)i[t]!==!0&&(i[t]=!0,a.push(" Public ["+t+"]"));for(t in qn)i[t]!==!0&&(i[t]=!0,a.push(" Public ["+t+"]"));a.push(" Public [hasOwnProperty]"),a.push("End Class");var o=a.join("\r\n"),l=Yn[o];l||(l=dn("VBClass"),e.parseVB("Class "+l+o),e.parseVB(["Function "+l+"Factory(a, b)"," Dim o"," Set o = (New "+l+")(a, b)"," Set "+l+"Factory = o","End Function"].join("\r\n")),Yn[o]=l);var s=e[l+"Factory"](n,O);return s}}var Gn=["push","pop","shift","unshift","splice"],Jn=Array.prototype,Zn={notify:function(){b.call(this.$up,this.$pathname)},set:function(e,t){if(e>>>0===e&&this[e]!==t){if(e>this.length)throw Error(e+"set方法的第一个参数不能大于原数组长度");b.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])&&(Kn.call(this.$track,t,1),Kn.call(this,t,1));else if("function"==typeof e)for(t=this.length-1;t>=0;t--){var n=this[t];e(n,t)&&(Kn.call(this.$track,t,1),Kn.call(this,t,1))}else Kn.call(this.$track,0,this.length),Kn.call(this,0,this.length);sn||(this.$model=S(this)),this.notify(),this._.length=this.length},clear:function(){return this.removeAll()}},Kn=Jn.splice;Gn.forEach(function(e){var t=Jn[e];Zn[e]=function(){for(var n=[],r=0,a=arguments.length;a>r;r++)n[r]=E(arguments[r],0,1,1);var i=t.apply(this,n);return L(this.$track,e,n),sn||(this.$model=S(this)),this.notify(),this._.length=this.length,i}}),"sort,reverse".replace(Kt,function(e){Zn[e]=function(){var t=this.concat(),n=this,r=Math.random(),a=[],i=!1;Jn[e].apply(n,arguments);for(var o=0,l=t.length;l>o;o++){var s=n[o],c=t[o];if(s===c)a.push(o);else{var u=t.indexOf(s);a.push(u),t[u]=r,i=!0}}return i&&(M(this.$track,a),sn||(this.$model=S(this)),this.notify()),this}});var Qn=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||xn[e.type].update||i,e.update=function(){var t=!1;e.getter||(t=!0,Qn.begin({callback:function(t){D(t,e)}}),e.getter=tt(e.expr,e.vmodels,e),e.observers.forEach(function(t){t.v.$watch(t.p,e)}),delete e.observers);try{var r,a,i=e.fireArgs;if(delete e.fireArgs,i?(r=i[0],a=i[1]):r="on"===e.type?e.getter+"":e.getter.apply(0,e.args),a="undefined"==typeof a?e.oldValue:a,e._filters&&(r=Ga.$filter.apply(0,[r].concat(e._filters))),e.signature){var o=avalon.type(r);if("array"!==o&&"object"!==o)throw Error("warning:"+e.expr+"只能是对象或数组");e.xtype=o;var l=H(e.proxies||[],o),s=r.$track||("array"===o?j(r.length):Object.keys(r));e.track=s,l!==s.join(";")&&(e.handler(r,a),e.oldValue=1)}else(Array.isArray(r)?r.length===(a&&a.length):1)?"oldValue"in e&&r===a||(e.handler(r,a),e.oldValue=r):(e.handler(r,a),e.oldValue=r.concat())}catch(c){delete e.getter,n("warning:exception throwed in [avalon.injectBinding] ",c);var u=e.element;u&&3===u.nodeType&&(u.nodeValue=jn+(e.oneTime?"::":"")+e.expr+Ln)}finally{t&&Qn.end()}},e.update()};var er=0,tr=avalon.$$subscribers=[],nr=new Date,rr={},ar={area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],col:[2,"<table><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],tr:[2,"<table>","</table>"],td:[3,"<table><tr>","</tr></table>"],g:[1,'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">',"</svg>"],_default:sn?[0,"",""]:[1,"X<div>","</div>"]};ar.th=ar.td,ar.optgroup=ar.option,ar.tbody=ar.tfoot=ar.colgroup=ar.caption=ar.thead,String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(Kt,function(e){ar[e]=ar.g});var ir=/<([\w:]+)/,or=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,lr=sn?/[^\d\D]/:/(<(?:script|link|style|meta|noscript))/gi,sr=o(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),cr=/<(?:tb|td|tf|th|tr|col|opt|leg|cap|area)/,ur=Wt.createElement("script"),fr=/<|&#?\w+;/;avalon.parseHTML=function(e){var t=un.cloneNode(!1);if("string"!=typeof e)return t;if(!fr.test(e))return t.appendChild(Wt.createTextNode(e)),t;e=e.replace(or,"<$1></$2>").trim();var n,r,a=(ir.exec(e)||["",""])[1].toLowerCase(),i=ar[a]||ar._default,o=fn;sn||(e=e.replace(lr,"<br class=msNoScope>$1")),o.innerHTML=i[1]+e+i[2];var l=o.getElementsByTagName("script");if(l.length)for(var s,c=0;s=l[c++];)sr[s.type]&&(r=ur.cloneNode(!1),on.forEach.call(s.attributes,function(e){e&&e.specified&&(r[e.name]=e.value,r.setAttribute(e.name,e.value))}),r.text=s.text,s.parentNode.replaceChild(r,s));if(!sn){var u="X<div>"===i[1]?o.lastChild.firstChild:o.lastChild;if(u&&"TABLE"===u.tagName&&"tbody"!==a)for(l=u.childNodes,c=0;s=l[c++];)if("TBODY"===s.tagName&&!s.innerHTML){u.removeChild(s);break}l=o.getElementsByTagName("br");for(var f=l.length;s=l[--f];)"msNoScope"===s.className&&s.parentNode.removeChild(s);for(l=o.all,c=0;s=l[c++];)I(s)&&V(s)}for(c=i[0];c--;o=o.lastChild);for(;n=o.firstChild;)t.appendChild(n);return t},avalon.innerHTML=function(e,t){if(!sn&&!lr.test(t)&&!cr.test(t))try{return void(e.innerHTML=t)}catch(n){}var r=this.parseHTML(t);this.clearHTML(e).appendChild(r)},avalon.clearHTML=function(e){for(e.textContent="";e.firstChild;)e.removeChild(e.firstChild);return e};var pr={_toString:function(){var e=this.node,t=e.className,n="string"==typeof t?t:t.baseVal;return n.split(/\s+/).join(" ")},_contains:function(e){return(" "+this+" ").indexOf(" "+e+" ")>-1},_add:function(e){this.contains(e)||this._set(this+" "+e)},_remove:function(e){this._set((" "+this+" ").replace(" "+e+" "," "))},__set:function(e){e=e.trim();var t=this.node;en.test(t)?t.setAttribute("class",e):t.className=e}};"add,remove".replace(Kt,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){W(n)[e](t)}),this}}),avalon.fn.mix({hasClass:function(e){var t=this[0]||{};return 1===t.nodeType&&W(t).contains(e)},toggleClass:function(e,t){for(var n,r=0,a=String(e).split(/\s+/),i="boolean"==typeof t;n=a[r++];){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-"+U(e||""),arguments.length){case 2:return this.attr(e,t),this;case 1:var n=this.attr(e);return X(n);case 0:var r={};return on.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=z(e.slice(5)),r[e]=X(t.value)))}),r}},removeData:function(e){return e="data-"+U(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 r=avalon.css(this,e,t);return void 0!==r?r:this},position:function(){var e,t,n=this[0],r={top:0,left:0};if(n)return"fixed"===this.css("position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),"HTML"!==e[0].tagName&&(r=e.offset()),r.top+=avalon.css(e[0],"borderTopWidth",!0),r.left+=avalon.css(e[0],"borderLeftWidth",!0),r.top-=e.scrollTop(),r.left-=e.scrollLeft()),{top:t.top-r.top-avalon.css(n,"marginTop",!0),left:t.left-r.left-avalon.css(n,"marginLeft",!0)}},offsetParent:function(){for(var e=this[0].offsetParent;e&&"static"===avalon.css(e,"position");)e=e.offsetParent;return avalon(e||cn)},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,r=n?":get":":set",a=Sr[J(t)+r];if(a)var i=a(t,e);else{if(n)return(t.value||"").replace(/\r/g,"");t.value=e}}return n?i:this}});var dr=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,vr=/^[\],:{}\s]*$/,hr=/(?:^|:|,)(?:\s*\[)+/g,mr=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,gr=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g;avalon.parseJSON=e.JSON?JSON.parse:function(e){if("string"==typeof e){if(e=e.trim(),e&&vr.test(e.replace(mr,"@").replace(gr,"]").replace(hr,"")))return new Function("return "+e)();avalon.error("Invalid JSON: "+e)}return e},avalon.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){avalon.fn[e]=function(n){var r=this[0]||{},a=Y(r),i="scrollTop"===e;return arguments.length?void(a?a.scrollTo(i?avalon(a).scrollLeft():n,i?n:avalon(a).scrollTop()):r[e]=n):a?t in a?a[t]:cn[e]:r[e]}});var yr=avalon.cssHooks={},br=["","-webkit-","-o-","-moz-","-ms-"],xr={"float":sn?"cssFloat":"styleFloat"};if(avalon.cssNumber=o("animationIterationCount,columnCount,order,flex,flexGrow,flexShrink,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(xr[e])return xr[e];t=t||cn.style;for(var r=0,a=br.length;a>r;r++)if(n=z(br[r]+e),n in t)return xr[e]=n;return null},yr["@:set"]=function(e,t,n){try{e.style[t]=n}catch(r){}},e.getComputedStyle)yr["@:get"]=function(e,t){if(!e||!e.style)throw new Error("getComputedStyle要求传入一个节点 "+e);var n,r=getComputedStyle(e,null);return r&&(n="filter"===t?r.getPropertyValue(t):r[t],""===n&&(n=e.style[t])),n},yr["opacity:get"]=function(e){var t=yr["@:get"](e,"opacity");return""===t?"1":t};else{var $r=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,wr=/^(top|right|bottom|left)$/,Cr=/alpha\([^)]*\)/i,kr=!!e.XDomainRequest,Nr="DXImageTransform.Microsoft.Alpha",Tr={thin:kr?"1px":"2px",medium:kr?"3px":"4px",thick:kr?"5px":"6px"};yr["@:get"]=function(e,t){var n=e.currentStyle,r=n[t];if($r.test(r)&&!wr.test(r)){var a=e.style,i=a.left,o=e.runtimeStyle.left;e.runtimeStyle.left=n.left,a.left="fontSize"===t?"1em":r||0,r=a.pixelLeft+"px",a.left=i,e.runtimeStyle.left=o}return"medium"===r&&(t=t.replace("Width","Style"),"none"===n[t]&&(r="0px")),""===r?"auto":Tr[r]||r},yr["opacity:set"]=function(e,t,n){var r=e.style,a=isFinite(n)&&1>=n?"alpha(opacity="+100*n+")":"",i=r.filter||"";r.zoom=1,r.filter=(Cr.test(i)?i.replace(Cr,a):i+" "+a).trim(),r.filter||r.removeAttribute("filter")},yr["opacity:get"]=function(e){var t=e.filters.alpha||e.filters[Nr],n=t&&t.enabled?t.opacity:100;return n/100+""}}"top,left".replace(Kt,function(e){yr[e+":get"]=function(t){var n=yr["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Er={position:"absolute",visibility:"hidden",display:"block"},Ar=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(Kt,function(e){var t=e.toLowerCase(),n="client"+e,r="scroll"+e,a="offset"+e;yr[t+":get"]=function(t,n,r){var i=-4;"number"==typeof r&&(i=r),n="Width"===e?["Left","Right"]:["Top","Bottom"];var o=t[a];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)},yr[t+"&get"]=function(e){var n=[];G(e,n);for(var r,a=yr[t+":get"](e),i=0;r=n[i++];){e=r.node;for(var o in r)"string"==typeof r[o]&&(e.style[o]=r[o])}return a},avalon.fn[t]=function(i){var o=this[0];if(0===arguments.length){if(o.setTimeout)return o["inner"+e]||o.document.documentElement[n]||o.document.body[n];if(9===o.nodeType){var l=o.documentElement;return Math.max(o.body[r],l[r],o.body[a],l[a],l[n])}return yr[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return yr[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return yr[t+":get"](this[0],void 0,e===!0?2:0)}}),avalon.fn.offset=function(){var e=this[0],t={left:0,top:0};if(!e||!e.tagName||!e.ownerDocument)return t;var n=e.ownerDocument,r=n.body,a=n.documentElement,i=n.defaultView||n.parentWindow;if(!avalon.contains(a,e))return t;e.getBoundingClientRect&&(t=e.getBoundingClientRect());var o=a.clientTop||r.clientTop,l=a.clientLeft||r.clientLeft,s=Math.max(i.pageYOffset||0,a.scrollTop,r.scrollTop),c=Math.max(i.pageXOffset||0,a.scrollLeft,r.scrollLeft);return{top:t.top+s-o,left:t.left+c-l}};var _r=/^<option(?:\s+\w+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s+value[\s=]/i,Sr={"option:get":vn?function(e){return _r.test(e.outerHTML)?e.value:e.text.trim()}:function(e){return e.value},"select:get":function(e,t){for(var n,r=e.options,a=e.selectedIndex,i=Sr["option:get"],o="select-one"===e.type||0>a,l=o?null:[],s=o?a+1:r.length,c=0>a?s:o?a:0;s>c;c++)if(n=r[c],(n.selected||c===a)&&!n.disabled){if(t=i(n),o)return t;l.push(t)}return l},"select:set":function(e,t,n){t=[].concat(t);for(var r,a=Sr["option:get"],i=0;r=e.options[i++];)(r.selected=t.indexOf(a(r))>-1)&&(n=!0);n||(e.selectedIndex=-1)}},Or={},Mr=["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(",");Mr.replace(/\w+/g,function(e){Or[e]=!0});var jr=/[a-z_$]/i,Lr=/[\s\uFEFF\xA0]/,Dr=/(\$proxy\$[a-z]+)\d+$/,Hr=new $n(218),Pr=new $n(128);avalon.normalizeExpr=nt,avalon.parseExprProxy=tt;var Fr=/\)\s*$/,Rr=/\)\s*\|/g,Br=/\|\s*([$\w]+)/g,qr=/"\s*\["/g,Ir=/"\s*\(/g,Vr={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Ur=e.JSON&&JSON.stringify||function(e){return'"'+e.replace(/[\\\"\x00-\x1f]/g,function(e){var t=Vr[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"'};avalon.scan=function(e,t){e=e||cn;var n=t?[].concat(t):[];pt(e,n)};var zr=o("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),Wr=function(e,t,n){var r=e.getAttribute(t);if(r)for(var a,i=0;a=n[i++];)if(a.hasOwnProperty(r)&&"function"==typeof a[r])return a[r]},Xr=vn&&e.MutationObserver?function(e){for(var t,n=e.firstChild;n;){var r=n.nextSibling;3===n.nodeType?t?(t.nodeValue+=n.nodeValue,e.removeChild(n)):t=n:t=null,n=r}}:0,Yr=/^\s*::/,Gr=/ms-(\w+)-?(.*)/,Jr=o("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),Zr=o("value,title,alt,checked,selected,disabled,readonly,enabled,href,src"),Kr=/^if|widget|repeat$/,Qr=/^each|with|html|include$/;if(!sn)var ea=new $n(512),ta=/\s+([^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,na=/^['"]/,ra=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/i,aa=/&/g,ia=function(e){var t=e.outerHTML;if("</"===t.slice(0,2)||!t.trim())return[];var n,r,a=t.match(ra)[0],i=[],o=ea.get(a);if(o)return o;for(;n=ta.exec(a);){r=n[2],r&&(r=(na.test(r)?r.slice(1,-1):r).replace(aa,"&"));var l=n[1].toLowerCase();match=l.match(Gr);var s={name:l,specified:!0,value:r||""};i.push(s)}return ea.put(a,i)};var oa=/^(ms-\S+|data-\S+|on[a-z]+|id|style|class|tabindex)$/,la=/\|\s*html(?:\b|$)/,sa=/\|\|/g,ca=/(['"])(\\\1|.)+?\1/g,ua=function(){this.queue=[]};ua.prototype={render:function(e){if(!this.locked){this.locked=e?cn.offsetHeight+10:1;var t=this;avalon.nextTick(function(){t.flush()})}},flush:function(){for(var e,t=0;e=this.queue[t++];)e.update&&e.update();this.locked=0,this.queue=[]}};var fa=new ua,pa=[],da=[],va={$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({},va,n));for(var r,a=0;r=pa[a];a++)t===r.fullName&&(pa.splice(a,1),a--,function(n,r,a,i){var o=1,l=n.library,s=avalon.libraries[l]||va,c=ct(a),u=mt(n.vmodels,c.config||n.widget),f=c.$id||c.identifier||dn(i);delete c.config,delete c.$id,delete c.identifier;var p={},d=avalon.components[r.$extend];d?(avalon.mix(!0,p,d),p=d.$construct.call(a,p,{},{})):avalon.mix(!0,p,r),p=avalon.components[t].$construct.call(a,p,u,c),p.$refs={},p.$id=f;var v=p.$slot,h=p.$replace,m=p.$container,g=p.$template;delete p.$slot,delete p.$replace,delete p.$container,delete p.$construct;var y=avalon.define(p)||{};a.msResolved=1,y.$init(y,a),s.$init(y,a);for(var b,x,$=a.childNodes,w={},C=0;x=$[C++];){var k=1===x.nodeType&&x.getAttribute("slot")||v;k&&(w[k]?w[k].push(x):w[k]=[x])}y.$$template&&(avalon.clearHTML(a),a.innerHTML=y.$$template(g));for(C in w)if(y.hasOwnProperty(C)){var N=w[C];if(N.length){for(var T=un.cloneNode(!0),E=0;b=N[E++];)T.appendChild(b);y[C]=T}w[C]=null}w=null;var A=a.firstChild;h&&(A=a.firstChild,a.parentNode.replaceChild(A,a),A.msResolved=1,a=n.element=A),m&&m.appendChild(a),avalon.fireDom(a,"datasetchanged",{library:l,vm:y,childReady:1});var _=0,S=avalon.bind(a,"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&&(_++,y.$childReady(y,a,t)),t.stopPropagation())),0===o){var r=setTimeout(function(){clearTimeout(r),y.$ready(y,a,n.vmodels),s.$ready(y,a,n.vmodels)},_?Math.max(17*_,100):17);avalon.unbind(a,"datasetchanged",S),n.rollback=function(){try{y.$dispose(y,a),s.$dispose(y,a)}catch(e){}delete avalon.vmodels[y.$id]},F(n,da),e.chrome&&a.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(R)})}});if(pt(a,[y].concat(n.vmodels)),avalon.vmodels[y.$id]=y,a.childNodes.length)var O=setTimeout(function(){clearTimeout(O),avalon.fireDom(a,"datasetchanged",{library:l,vm:y,childReady:-1})},17);else avalon.fireDom(a,"datasetchanged",{library:l,vm:y,childReady:-1})}(r,avalon.components[t],r.element,r.widget))},avalon.fireDom=function(e,t,n){if(Wt.createEvent){var r=Wt.createEvent("Events");r.initEvent(t,!0,!0,n),avalon.mix(r,n),e.dispatchEvent(r)}else cn.contains(e)&&(r=Wt.createEventObject(),avalon.mix(r,n),e.fireEvent("on"+t,r))},avalon.libraries=[],avalon.library=function(e,t){Wt.namespaces&&Wt.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 ha=["autofocus,autoplay,async,allowTransparency,checked,controls","declare,disabled,defer,defaultChecked,defaultSelected","contentEditable,isMap,loop,multiple,noHref,noResize,noShade","open,readOnly,selected"].join(","),ma={};ha.replace(Kt,function(e){ma[e.toLowerCase()]=e});var ga={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"},ya=["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan","dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight","rowSpan,tabIndex,useMap,vSpace,valueType,vAlign"].join(",");ya.replace(Kt,function(e){ga[e.toLowerCase()]=e});var ba=avalon.directive("attr",{init:function(e){if(e.expr=nt(e.expr.trim()),"include"===e.type){var t=e.element;kt(t,e),e.includeRendered=Wr(t,"data-include-rendered",e.vmodels),e.includeLoaded=Wr(t,"data-include-loaded",e.vmodels);var n=e.includeReplace=!!avalon(t).data("includeReplace");avalon(t).data("includeCache")&&(e.templateCache={}),e.start=Wt.createComment("ms-include"),e.end=Wt.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,r=this.param;if("href"===r||"src"===r){if("string"!=typeof t||cn.hasAttribute||(t=t.replace(/&/g,"&")),n[r]=t,e.chrome&&"EMBED"===n.tagName){var a=n.parentNode,i=document.createComment("ms-src");a.replaceChild(i,n),a.replaceChild(n,i)}}else{var o=t===!1||null===t||void 0===t;!sn&&ga[r]&&(r=ga[r]);var l=ma[r];if("boolean"==typeof n[l]&&(n[l]=!!t,t||(o=!0)),o)return n.removeAttribute(r);var s=en.test(n)?!1:Wt.namespaces&&I(n)?!0:r in n.cloneNode(!1);s?n[r]=t+"":n.setAttribute(r,t)}}});"title,alt,src,value,css,include,href".replace(Kt,function(e){xn[e]=ba}),avalon.directive("class",{init:function(e){var t=e.param,r=e.type;if(!t||isFinite(t)?(e.param="",xn.effect.init(e)):(n("ms-"+r+'-xxx="yyy"这种用法已经过时,请使用ms-'+r+'="xxx:yyy"'),e.expr="["+Ur(t)+","+e.expr+"]",e.oldStyle=t),"hover"===r||"active"===r){if(!e.hasBindEvent){var a=e.element,i=avalon(a),o="mouseenter",l="mouseleave";if("active"===r){a.tabIndex=a.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(Kt,function(e){xn[e]=xn["class"]}),avalon.directive("css",{init:xn.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)$/,$a=/^(?:radio|checked)$/,wa=/^(file|button|reset|submit|checkbox|radio|range)$/;avalon.directive("duplex",{priority:2e3,init:function(e,t){function r(t){e.changed.call(this,t,e)}function a(){p=!0}function l(){p=!1}var s=e.element,c=e.vmodels;e.changed=Wr(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(Qt,function(r){xa.test(s.type)&&$a.test(r)&&("radio"===r&&n("ms-duplex-radio已经更名为ms-duplex-checked"),r="checked",e.isChecked=!0,e.xtype="radio"),"bool"===r?(r="boolean",n("ms-duplex-bool已经更名为ms-duplex-boolean")):"text"===r&&(r="string",n("ms-duplex-text已经更名为ms-duplex-string")),f[r]&&(t=!0),avalon.Array.ensure(u,r)}),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?s.addEventListener(t,n,!1):s.attachEvent("on"+t,n);var r=e.rollback;e.rollback=function(){s.avalonSetter=null,avalon.unbind(s,t,n),r&&r()}};var p=!1,d=function(){var t=s.value;if(!p&&t!==e.oldValue&&null!==e.pipe){var a=e.pipe(t,e,"get");try{e.setter(a),r.call(s,a)}catch(i){n(i)}}};switch(e.xtype){case"radio":e.bound("click",function(){var t=e.pipe(s.value,e,"get");try{e.setter(t),r.call(s,t)}catch(a){n(a)}});break;case"checkbox":e.bound(sn?"change":"click",function(){var t=s.checked?"ensure":"remove",a=e.getter.apply(0,e.vmodels);Array.isArray(a)||(n("ms-duplex应用于checkbox上要对应一个数组"),a=[a]);var i=e.pipe(s.value,e,"get");avalon.Array[t](a,i),r.call(s,a)});break;case"change":e.bound("change",d);break;case"input":vn?(vn>8?e.bound("input",d):e.bound("propertychange",function(e){"value"===e.propertyName&&d()}),e.bound("dragend",function(){setTimeout(function(){d()},17)})):(e.bound("input",d),e.bound("compositionstart",a),e.bound("compositionend",l),e.bound("DOMAutoComplete",d));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(r){n(r)}}),e.bound("datasetchanged",function(t){if("selectDuplex"===t.bubble){var n=e._value,a=Array.isArray(n)?n.map(String):n+"";avalon(s).val(a),s.oldValue=a+"",r.call(s,a)}})}"input"!==e.xtype||wa.test(s.type)||("hidden"!==s.type&&(e.bound("focus",function(){s.msFocus=!0}),e.bound("blur",function(){s.msFocus=!1})),s.avalonSetter=d,Na(function(){if(s.contains(s))this.msFocus||e.oldValue===s.value||d();else if(!s.msRetain)return!1}))},update:function(e){var t,n=this.element,r=this;if(!this.init){for(var a in avalon.vmodels){var i=avalon.vmodels[a];i.$fire("avalon-ms-duplex-init",r)}var o=r.pipe||(r.pipe=bt);o(null,r,"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=$t(n);s.start===s.end&&(s=s.start,l=!0)}catch(c){}n.value=this.oldValue=t,l&&wt(n,s,s)}break;case"radio":t=r.isChecked?!!e:e+""===n.value,6===vn?setTimeout(function(){n.defaultChecked=t,n.checked=t},31):n.checked=t;break;case"checkbox":var u=[].concat(e);t=this.pipe(n.value,this,"get"),n.checked=u.indexOf(t)>-1;break;case"select":r._value=e,n.msHasEvent?avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent}):n.msHasEvent="selectDuplex"}"select"!==r.xtype&&r.changed.call(n,t,r)}})}vn&&avalon.bind(Wt,"selectionchange",function(){var e=Wt.activeElement;e&&"function"==typeof e.avalonSetter&&e.avalonSetter()}),avalon.duplexHooks={checked:{get:function(e,t){return!t.oldValue}},string:{get:function(e){return e},set:yt},"boolean":{get:function(e){return"true"===e},set:yt},number:{get:function(e,t){var n=parseFloat(e+"");if(-e===-n)return n;var r=/strong|medium|weak/.exec(t.element.getAttribute("data-duplex-number"))||["medium"];switch(r[0]){case"strong":return 0;case"medium":return""===e?"":0;case"weak":return e}},set:yt}};var Ca,ka=[];avalon.tick=function(e){1===ka.push(e)&&(Ca=setInterval(xt,60))};var Na=i;!new function(){function e(e){t[this.tagName].call(this,e),!this.msFocus&&this.avalonSetter&&this.oldValue!==e&&this.avalonSetter()}try{var t={},n=HTMLInputElement.prototype,r=HTMLTextAreaElement.prototype,a=HTMLInputElement.prototype;Object.getOwnPropertyNames(a),t.INPUT=Object.getOwnPropertyDescriptor(n,"value").set,Object.defineProperty(n,"value",{set:e}),t.TEXTAREA=Object.getOwnPropertyDescriptor(r,"value").set,Object.defineProperty(r,"value",{set:e})}catch(i){Na=avalon.tick}},avalon.directive("effect",{priority:5,init:function(e){var t,n,r=e.expr,a=r.replace(Hn,function(e){return e.replace(/./g,"0")}).indexOf(":");-1===a?(t=r,n=!0):(t=r.slice(0,a),n=r.slice(a+1)),t=Dn.test(r)?nt(t):Ur(t),e.expr="["+t+","+n+"]"},update:function(t){var n=t[0],r=this.element;if(r.getAttribute("data-effect-name")!==n){r.removeAttribute("data-effect-driver");var a=r.style,i=e.getComputedStyle?e.getComputedStyle(r):null,o=!1;if(i&&(Aa||_a)){var l=a[Sa]||i[Sa];l&&"0s"!==l&&(r.setAttribute("data-effect-driver","t"),o=!0),o||(l=a[Oa]||i[Oa],l&&"0s"!==l&&(r.setAttribute("data-effect-driver","a"),o=!0))}o||avalon.effects[n]&&(r.setAttribute("data-effect-driver","j"),o=!0),o&&r.setAttribute("data-effect-name",n)}}}),avalon.effects={},avalon.effect=function(e,t){avalon.effects[e]=t};var Ta,Ea,Aa=!1,_a=!1,Sa=avalon.cssName("transition-duration"),Oa=avalon.cssName("animation-duration");!new function(){var t,n={TransitionEvent:"transitionend",WebKitTransitionEvent:"webkitTransitionEnd",OTransitionEvent:"oTransitionEnd",otransitionEvent:"otransitionEnd"};for(var r in n){if(e[r]){t=n[r];break}try{{document.createEvent(r)}t=n[r];break}catch(a){}}"string"==typeof t&&(Aa=!0,Ta=t),n={AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"};var i;for(r in n)if(e[r]){i=n[r];break}"string"==typeof i&&(Aa=!0,Ea=i)};var Ma=[],ja=new ua;Tt.prototype={contrustor:Tt,enterClass:function(){return Et(this,"enter")},leaveClass:function(){return Et(this,"leave")},actionFun:function(e,t,n){if(!document.hidden){var r=this,a=r.el,i="leave"===e;e=i?"leave":"enter";var o=i?"enter":"leave";At(r,"abort"+Nt(o)),At(r,"before"+Nt(e)),i||t(a);var l=function(o){a.removeEventListener(r.cssEvent,r.cssCallback),i?(t(a),avalon(a).removeClass(r.cssClass)):"a"===r.driver&&avalon(a).removeClass(r.cssClass),o!==!0&&(At(r,"after"+Nt(e)),n&&n(a)),r.dispose()};r.useCss?(r.cssCallback&&r.cssCallback(!0),r.cssClass=Et(r,e),r.cssCallback=l,r.update=function(){a.addEventListener(r.cssEvent,r.cssCallback),i||"t"!==r.driver||avalon(a).removeClass(r.cssClass)},avalon(a).addClass(r.cssClass),ja.render(!0),ja.queue.push(r)):At(r,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,Ma.unshift(this)>100&&Ma.pop()}};var La=function(e,t){var n=ln.call(arguments,0);"function"!=typeof n[2]&&n.splice(2,0,i),"function"!=typeof n[3]&&n.splice(3,0,i);var r=n[2],a=n[3],o=n[4],l=Ct(e,o);if(!l)return r(),a(),!1;var s=t?"enter":"leave";l[s](r,a)};avalon.mix(avalon.effect,{apply:La,append:function(e,t,n,r){return La(e,1,function(){t.appendChild(e)},n,r)},before:function(e,t,n,r){return La(e,1,function(){t.parentNode.insertBefore(e,t)},n,r)},remove:function(e,t,n,r){return La(e,0,function(){e.parentNode===t&&t.removeChild(e)},n,r)}}),avalon.directive("html",{update:function(e){var t=this,n=this.element,r=1!==n.nodeType,a=r?n.parentNode:n;if(a){if(e=null==e?"":e,3===n.nodeType){var i=dn("html");a.insertBefore(Wt.createComment(i),n),t.element=Wt.createComment(i+":end"),a.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=un.cloneNode(!0);l[0];)o.appendChild(l[0])}if(l=avalon.slice(o.childNodes),r){for(var s=n.nodeValue.slice(0,-4);;){var c=n.previousSibling;if(!c||8===c.nodeType&&c.nodeValue===s)break;a.removeChild(c)}a.insertBefore(o,n)}else avalon.clearHTML(n).appendChild(o);ft(l,t.vmodels)}}}),avalon.directive("if",{priority:10,update:function(e){function t(){a.getAttribute(r.name)&&(a.removeAttribute(r.name),st(a,r.vmodels)),r.rollback=null}var n,r=this,a=this.element,i=r.stamp=+new Date,o=function(){i===r.stamp&&(r.recoverNode=null)};r.recoverNode&&r.recoverNode();try{if(!a.parentNode)return;n=a.parentNode}catch(l){return}if(e){if(8===a.nodeType){var s=r.keep,c=avalon.effect.apply(s,1,function(){i===r.stamp&&(a.parentNode.replaceChild(s,a),a=r.element=s,s.getAttribute("_required")&&(a.required=!0,a.removeAttribute("_required")),a.querySelectorAll&&avalon.each(a.querySelectorAll("[_required=true]"),function(e){e.required=!0,e.removeAttribute("_required")}),t())},o);c=c===!1}c||t()}else if(1===a.nodeType){a.required===!0&&(a.required=!1,a.setAttribute("_required","true"));try{avalon.each(a.querySelectorAll(":required"),function(e){a.required=!1,e.setAttribute("_required","true")})}catch(l){}var u=r.element=Wt.createComment("ms-if"),f=a.nextSibling;r.recoverNode=function(){r.recoverNode=null,u.parentNode!==n&&(n.insertBefore(u,f),r.keep=a)},avalon.effect.apply(a,0,function(){r.recoverNode=null,i===r.stamp&&(a.parentNode.replaceChild(u,a),r.keep=a,Yt.appendChild(a),r.rollback=function(){a.parentNode===Yt&&Yt.removeChild(a)})},o)}}});var Da=/<noscript.*?>(?:[\s\S]+?)<\/noscript>/gim,Ha=/<noscript.*?>([\s\S]+?)<\/noscript>/im,Pa=function(){return new(e.XMLHttpRequest||ActiveXObject)("Microsoft.XMLHTTP")},Fa=avalon.templateCache={};avalon.directive("include",{init:xn.attr.init,update:function(e){var t=this,r=this.element,a=t.vmodels,i=t.includeRendered,o=t.effectName&&t.effectClass,l=t.templateCache,s=t.includeReplace,c=t.includeLoaded,u=s?r.parentNode:r,f=t._element;t.recoverNodes=t.recoverNodes||avalon.noop;var p=function(n){var p=t._stamp=+new Date;if(c){var d=c.apply(u,[n].concat(a));"string"==typeof d&&(n=d)}i&&at(u,function(){i.call(u)},0/0);var v=t.includeLastID||"_default";t.includeLastID=e;var h=l&&l[v]||Wt.createElement(r.tagName||t._element.tagName);o&&(h.className=o,u.insertBefore(h,t.start)),(l||{})[v]=h;var m=t.recoverNodes();for(m&&u.insertBefore(m,t.end);;){var g=t.start.nextSibling;if(!g||g===h||g===t.end)break;h.appendChild(g)}avalon.effect.remove(h,u,function(){l&&p===t._stamp&&Yt.appendChild(h)},t);var y=u,b=avalon.noop,x=avalon.noop,$=_t(t,e,n),w=avalon.slice($.childNodes);s&&o?(y=f,y.innerHTML="",y.setAttribute("ms-skip","true"),u.insertBefore(y,t.end.nextSibling),b=function(){y.insertBefore($,null)
|
3
|
-
},x=function(){t.recoverNodes=avalon.noop,p===t._stamp&&($=St(w),u.insertBefore($,t.end),ft(w,a)),y.parentNode===u&&u.removeChild(y)},t.recoverNodes=function(){return t.recoverNodes=avalon.noop,St(w)}):b=function(){u.insertBefore($,t.end),ft(w,a)},avalon.effect.apply(y,"enter",b,x)};if("src"===t.param)if("string"==typeof Fa[e])avalon.nextTick(function(){p(Fa[e])});else if(Array.isArray(Fa[e]))Fa[e].push(p);else{var d=Pa();d.onreadystatechange=function(){if(4===d.readyState){var t=d.status;if(t>=200&&300>t||304===t||1223===t){for(var r,a=d.responseText,i=0;r=Fa[e][i++];)r(a);Fa[e]=a}else n("ms-include load ["+e+"] error")}},Fa[e]=[p],d.open("GET",e,!0),"withCredentials"in d&&(d.withCredentials=!0),d.setRequestHeader("X-Requested-With","XMLHttpRequest"),d.send(null)}else{var v=e&&1===e.nodeType?e:Wt.getElementById(e);if(v){if("NOSCRIPT"===v.tagName&&!v.innerHTML&&!v.fixIE78){d=Pa(),d.open("GET",location,!1),d.send(null);for(var h=Wt.getElementsByTagName("noscript"),m=(d.responseText||"").match(Da)||[],g=m.length,y=0;g>y;y++){var b=h[y];b&&(b.style.display="none",b.fixIE78=(m[y].match(Ha)||[""," "])[1])}}avalon.nextTick(function(){p(v.fixIE78||v.value||v.innerText||v.innerHTML)})}}}});var Ra=/\(([^)]*)\)/,Ba=avalon.directive("on",{priority:3e3,init:function(e){var t=e.expr;e.type="on";var n=e.param.replace(/-\d+$/,"");if("function"==typeof Ba[n+"Hook"]&&Ba[n+"Hook"](e),t.indexOf("(")>0&&t.indexOf(")")>-1){var r=(t.match(Ra)||["",""])[1].trim();(""===r||"$event"===r)&&(t=t.replace(Ra,""))}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 r=t.param.replace(/-\d+$/,"");if("scan"===r)e.call(n,{type:r});else if("function"==typeof t.specialBind)t.specialBind(n,e);else var a=avalon.bind(n,r,e);t.rollback=function(){"function"==typeof t.specialUnbind?t.specialUnbind():avalon.unbind(n,r,a)}}});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),kt(n,e),e.param=e.param||"el",e.sortedCallback=Wr(n,"data-with-sorted",e.vmodels);var r=Wr(n,"data-"+t+"-rendered",e.vmodels),a=dn(t),i=Wt.createComment(a+":start"),o=e.element=Wt.createComment(a+":end");if(e.signature=a,e.start=i,e.template=un.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,r)var s=avalon.bind(l,"datasetchanged",function(){r.apply(l,l.args),avalon.unbind(l,"datasetchanged",s),l.msRendered=r})}},update:function(e,t){var n=this,r=this.xtype;this.enterCount+=1;var a=!t;if(a){n.$outer={};var i="$key",o="$val";"array"===r&&(i="$first",o="$last");for(var l,s=0;l=n.vmodels[s++];)if(l.hasOwnProperty(i)&&l.hasOwnProperty(o)){n.$outer=l;break}}var c=this.track;if(n.sortedCallback){var u=n.sortedCallback.call(x,c);u&&Array.isArray(u)&&(c=u)}var f="move";n.$repeat=e;var p=[],d=a&&un.cloneNode(!1),v=[],h=this.param,g=avalon.mix({},this.cache),y=this.element,b=c.length,x=y.parentNode;for(s=0;b>s;s++){var $=c[s],w=g[$];if(w)p.push({}),g[$]=!0;else{if(w=Dt(this),w.$up=null,"array"===r){f="add",w.$id=$;var C=e[s];w[h]=C,Object(C)===C&&(C.$ups=C.$ups||{},C.$ups[h]=w)}else f="append",w.$key=$,w.$val=e[$];this.cache[$]=w;var k=w.$anchor||(w.$anchor=y.cloneNode(!1));k.nodeValue=this.signature,Lt(n,d,w,p,a&&!n.effectDriver),Ft(w,n,r)}1===this.enterCount&&(w.$active=!1,w.$oldIndex=w.$index,w.$active=!0,w.$index=s),"array"===r?(w.$first=0===s,w.$last=s===b-1):w.$val=S(e[$]),v.push(w)}if(this.proxies=v,a&&!n.effectDriver)x.insertBefore(d,y),p.forEach(function(e){ft(e.nodes||[],e.vmodels),e.nodes=e.vmodels=null});else{var N=n.staggerIndex=0;for($ in g)g[$]!==!0&&(f="del",jt(g[$].$anchor,n),qt(this.cache,$,h),g[$]=null);for(s=0;b>s;s++){w=v[s],$="array"===r?w.$id:w.$key;var T=v[s-1],E=T?T.$anchor:n.start;g[$]?w.$index!==w.$oldIndex&&!function(e,t){N=Mt(n.effectEnterStagger,function(){var r=jt(e.$anchor),a=avalon.slice(r.childNodes);x.insertBefore(r,t.nextSibling),Ot(a,1,n)},N)}(w,E):!function(e,t){var r=e.nodes,a=e.vmodels;r&&(N=Mt(n.effectEnterStagger,function(){x.insertBefore(e.content,t.nextSibling),ft(r,a),Ot(r,1,n)},N)),e.nodes=e.vmodels=null}(p[s],E)}}if(!e.$track)for($ in this.cache)qt(this.cache,$,h);!function(e){x.args=e,x.msRendered&&x.msRendered.apply(x,e)}(m.newWatch?arguments:[f]);var A=setTimeout(function(){clearTimeout(A),avalon.fireDom(x,"datasetchanged",{bubble:x.msHasEvent})});this.enterCount-=1}}),"with,each".replace(Kt,function(e){xn[e]=avalon.mix({},xn.repeat,{priority:1400})});var qa=[],Ia=[];avalon.directive("text",{update:function(e){var t=this.element;if(e=null==e?"":e,3===t.nodeType)try{t.data=e}catch(n){}else"textContent"in t?t.textContent=e:t.innerText=e}}),avalon.parseDisplay=It,avalon.directive("visible",{init:function(e){kt(e.element,e)},update:function(e){var t,n=this,r=this.element,a=!this.effectName;return this.stamp?(t=this.stamp=+new Date,void(e?avalon.effect.apply(r,1,function(){if(t===n.stamp){var e=r.getAttribute("data-effect-driver")||"a";a&&(r.style.display=n.display||""),("a"===e||"t"===e)&&"none"===avalon(r).css("display")&&(r.style.display=n.display||It(r.nodeName))}}):avalon.effect.apply(r,0,function(){t===n.stamp&&(r.style.display="none")}))):(t=this.stamp=+new Date,void(e?(r.style.display=n.display||"","none"===avalon(r).css("display")&&(r.style.display=n.display=It(r.nodeName))):r.style.display="none"))}});var Va=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,Ua=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,za=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/gi,Wa={a:/\b(href)\=("javascript[^"]*"|'javascript[^']*')/gi,img:/\b(src)\=("javascript[^"]*"|'javascript[^']*')/gi,form:/\b(action)\=("javascript[^"]*"|'javascript[^']*')/gi},Xa=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ya=/([^\#-~| |!])/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 r=arguments[t],a=avalon.filters[r[0]];if("function"==typeof a){var i=[e].concat(r.slice(1));e=a.apply(null,i)}}return e},camelize:z,sanitize:function(e){return e.replace(Va,"").replace(za,function(e){var t=e.toLowerCase().match(/<(\w+)\s/);if(t){var n=Wa[t[1]];n&&(e=e.replace(n,function(e,t,n){var r=n.charAt(0);return t+"="+r+"javascript:void(0)"+r}))}return e.replace(Ua," ").replace(/\s+/g," ")})},escape:function(e){return String(e).replace(/&/g,"&").replace(Xa,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(Ya,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")},currency:function(e,t,n){return(t||"¥")+Vt(e,isFinite(n)?n:2)},number:Vt};!new function(){function e(e){return parseInt(e,10)||0}function t(e,t,n){var r="";for(0>e&&(r="-",e=-e),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),r+e}function n(e,n,r,a){return function(i){var o=i["get"+e]();return(r>0||o>-r)&&(o+=r),0===o&&-12===r&&(o=12),t(o,n,a)}}function r(e,t){return function(n,r){var a=n["get"+e](),i=(t?"SHORT"+e:e).toUpperCase();return r[i][a]}}function a(e){var n=-1*e.getTimezoneOffset(),r=n>=0?"+":"";return r+=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:r("Month"),MMM:r("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:r("Day"),EEE:r("Day",!0),a:i,Z:a},l=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,s=/^\/Date\((\d+)\)\/$/;Ga.date=function(t,n){var r,a,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(),p=[0,0,0,0,0,0,0],d=new Date(0);f=f.replace(/^(\d+)\D(\d+)\D(\d+)/,function(t,n,r,a){var i=4===a.length?[a,n,r]:[n,r,a];return p[0]=e(i[0]),p[1]=e(i[1])-1,p[2]=e(i[2]),""});var v=d.setFullYear,h=d.setHours;f=f.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/,function(t,n,r,a,i){return p[3]=e(n),p[4]=e(r),p[5]=e(a),i&&(p[6]=Math.round(1e3*parseFloat("0."+i))),""});var m=0,g=0;f=f.replace(/Z|([+-])(\d\d):?(\d\d)/,function(t,n,r,a){return v=d.setUTCFullYear,h=d.setUTCHours,n&&(m=e(n+r),g=e(n+a)),""}),p[3]-=m,p[4]-=g,v.apply(d,p.slice(0,3)),h.apply(d,p.slice(3)),t=d}if("number"==typeof t&&(t=new Date(t)),"date"===avalon.type(t)){for(;n;)a=l.exec(n),a?(u=u.concat(a.slice(1)),n=u.pop()):(u.push(n),n=null);return u.forEach(function(e){r=o[e],c+=r?r(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 Ja=avalon.modules={"domReady!":{exports:avalon,state:3},avalon:{exports:avalon,state:4}};Ja.exports=Ja.avalon;var Za,Ka=e.require,Qa=e.define;Rn.loader=function(t){var n=Za&&t;e.require=n?Za:Ka,e.define=n?Za.define:Qa},new function(){function t(e,t){var r="js";e=e.replace(/^(\w+)\!/,function(e,t){return r=t,""}),"ready"===r&&(n("debug: ready!已经被废弃,请使用domReady!"),r="domReady");var a="";e=e.replace(A,function(e){return a=e,""});var i="."+r,o=/js|css/.test(i)?i:"";e=e.replace(/\.[a-z0-9]+$/g,function(e){return e===i?(o=e,""):e});var l=avalon.mix({query:a,ext:o,res:r,name:e,toUrl:h},t);return l.toUrl(e),l}function r(e){var t=e.name,n=e.res,r=Ja[t],a=t&&e.urlNoQuery;if(r&&r.state>=1)return t;if(r=Ja[a],r&&r.state>=3)return Za(r.deps||[],r.factory,a),a;if(t&&!r){r=Ja[a]={id:a,state:1};var i=function(a){H[n]=a,a.load(t,e,function(e){arguments.length&&void 0!==e&&(r.exports=e),r.state=4,s()})};H[n]?i(H[n]):Za([n],i)}return t?a:n+"!"}function o(e,t){for(var n,r=0;n=e[r++];)if(4!==Ja[n].state&&(n===t||o(Ja[n].deps,t)))return!0}function l(e,t,r){var a=u(e.src);return e.onload=e.onreadystatechange=e.onerror=null,t||r&&Ja[a]&&!Ja[a].state?(setTimeout(function(){Xt.removeChild(e),e=null}),void n("debug: 加载 "+a+" 失败"+t+" "+!Ja[a].state)):!0}function s(){e:for(var e,t=N.length;e=N[--t];){var n=Ja[e],r=n.deps;if(r){for(var a,i=0;a=r[i];i++)if(4!==Object(Ja[a]).state)continue e;4!==n.state&&(N.splice(t,1),v(n.id,n.deps,n.factory),s())}}}function c(e,t,r){function a(){var a=T.pop();a&&a.require(t),r&&r(),l(i,!1,!o)&&(n("debug: 已成功加载 "+e),t&&N.push(t),s())}var i=Wt.createElement("script"),o="onload"in i,c=o?"onload":"onreadystatechange";i[c]=o?a:function(){D.test(i.readyState)&&a()},i.onerror=function(){l(i,!0)},i.className=Jt,i.src=e,Xt.insertBefore(i,Xt.firstChild),n("debug: 正准备加载 "+e)}function u(e){return(e||"").replace(A,"")}function f(e){return/^(?:[a-z]+:)?\/\//i.test(String(e))}function p(e,t){return"1"[0]?e[t]:e.getAttribute(t,4)}function d(){var t;try{a.b.c()}catch(n){t=n.stack,!t&&e.opera&&(t=(String(n).match(/of linked script \S+/g)||[]).join(" "))}if(t)return t=t.split(/[@ ]/g).pop(),t="("===t[0]?t.slice(1,-1):t.replace(/\s/,""),u(t.replace(/(:\d+)?:\d+$/i,""));for(var r,i=Xt.getElementsByTagName("script"),o=i.length;r=i[--o];)if(r.className===Jt&&"interactive"===r.readyState){var l=p(r,"src");return r.className=u(l)}}function v(t,r,a){var i=Object(Ja[t]);i.state=4;for(var o,l=0,s=[];o=r[l++];)if("exports"===o){var c=i.exports||(i.exports={});s.push(c)}else s.push(Ja[o].exports);try{var u=a.apply(e,s)}catch(f){n("执行["+t+"]模块的factory抛错: ",f)}return void 0!==u&&(i.exports=u),P.test(t)&&delete Ja[t],delete i.factory,u}function h(e){0===e.indexOf(this.res+"!")&&(e=e.slice(this.res.length+1));var t=e,n=0,r=this.baseUrl,a=this.parentUrl||r;$(e,m.paths,function(e,r){t=t.replace(r,e),n=1}),n||$(e,m.packages,function(e,n,r){t=t.replace(r.name,r.location)}),this.mapUrl&&$(this.mapUrl,m.map,function(e){$(t,e,function(e,n){t=t.replace(n,e),a=r})});var i=this.ext;i&&n&&t.slice(-i.length)===i&&(t=t.slice(0,-i.length)),f(t)||(a=this.built||/^\w/.test(t)?r:a,t=C(a,t));var o=t+i;return t=o+this.query,o=t.replace(A,function(e){return this.query=e,""}),$(e,m.urlArgs,function(e){t+=(-1===t.indexOf("?")?"?":"&")+e}),this.url=t,this.urlNoQuery=o}function g(e,t,n){var r=x(e,t,n);return r.sort(w),r}function y(e){return new RegExp("^"+e+"(/|$)")}function b(t){return function(){var n;return t.init&&(n=t.init.apply(e,arguments)),n||t.exports&&k(t.exports)}}function x(e,t,n){var r=[];for(var a in e)if(rn.call(e,a)){var i={name:a,val:e[a]};r.push(i),i.reg="*"===a&&t?/^/:y(a),n&&"*"!==a&&(i.reg=new RegExp("/"+a.replace(/^\//,"")+"(/|$)"))}return r}function $(e,t,n){t=t||[];for(var r,a=0;r=t[a++];)if(r.reg.test(e))return n(r.val,r.name,r),!1}function w(e,t){var n=e.name,r=t.name;return"*"===r?-1:"*"===n?1:r.length-n.length}function C(e,t){if("/"!==e.charAt(e.length-1)&&(e+="/"),"./"===t.slice(0,2))return e+t.slice(2);if(".."===t.slice(0,2)){for(e+=t;F.test(e);)e=e.replace(F,"");return e}return"/"===t.slice(0,1)?e+t.slice(1):e+t}function k(t){if(!t)return t;var n=e;return t.split(".").forEach(function(e){n=n[e]}),n}var N=[],T=[],E=/\.js$/i,A=/(\?[^#]*)$/,_=[],S=!1;Za=avalon.require=function(e,n,a,o){if(S){Array.isArray(e)||avalon.error("require方法的第一个参数应为数组 "+e);var l=[],c={},u=a||"callback"+setTimeout("1");o=o||{},o.baseUrl=m.baseUrl;var f=!!o.built;if(a&&(o.parentUrl=a.substr(0,a.lastIndexOf("/")),o.mapUrl=a.replace(E,"")),f){var p=t(o.defineName,o);u=p.urlNoQuery}else e.forEach(function(e){var n=t(e,o),a=r(n);a&&(c[a]||(l.push(a),c[a]="司徒正美"))});var d=Ja[u];d&&4===d.state||(Ja[u]={id:u,deps:f?e.concat():l,factory:n||i,state:3}),d||N.push(u),s()}else if(_.push(avalon.slice(arguments)),arguments.length<=2){S=!0;for(var v,h=_.splice(0,_.length);v=h.shift();)Za.apply(null,v)}},Za.define=function(e,t,n){"string"!=typeof e&&(n=t,t=e,e="anonymous"),Array.isArray(t)||(n=t,t=[]);var r={built:!S,defineName:e},a=[t,n,r];n.require=function(e){if(a.splice(2,0,e),Ja[e]){Ja[e].state=3;var t=!1;try{t=o(Ja[e].deps,e)}catch(r){}t&&avalon.error(e+"模块与之前的模块存在循环依赖,请不要直接用script标签引入"+e+"模块")}delete n.require,Za.apply(null,a)};var i=r.built?"unknown":d();if(i){var l=Ja[i];l&&(l.state=2),n.require(i)}else T.push(n)},Za.config=m,Za.define.amd=Ja;var O=m["orig.paths"]={},M=m["orig.map"]={},j=m.packages=[],L=m["orig.args"]={};avalon.mix(Rn,{paths:function(e){avalon.mix(O,e),m.paths=g(O)},map:function(e){avalon.mix(M,e);var t=g(M,1,1);avalon.each(t,function(e,t){t.val=g(t.val)}),m.map=t},packages:function(e){e=e.concat(j);for(var t,n={},r=[],a=0;t=e[a++];){t="string"==typeof t?{name:t}:t;var i=t.name;if(!n[i]){var o=C(t.location||i,t.main||"main");o=o.replace(E,""),r.push(t),n[i]=t.location=o,t.reg=y(i)}}m.packages=r.sort()},urlArgs:function(e){"string"==typeof e&&(e={"*":e}),avalon.mix(L,e),m.urlArgs=g(L,1)},baseUrl:function(e){if(!f(e)){var t=Xt.getElementsByTagName("base")[0];t&&Xt.removeChild(t);var n=Wt.createElement("a");n.href=e,e=p(n,"href"),t&&Xt.insertBefore(t,Xt.firstChild)}e.length>3&&(m.baseUrl=e)},shim:function(e){for(var t in e){var n=e[t];Array.isArray(n)&&(n=e[t]={deps:n}),n.exportsFn||!n.exports&&!n.init||(n.exportsFn=b(n))}m.shim=e}});var D=/complete|loaded/,H=Za.plugins={domReady:{load:i},js:{load:function(e,t,n){var r=t.url,a=t.urlNoQuery,i=m.shim[e.replace(E,"")];i?Za(i.deps||[],function(){var e=avalon.slice(arguments);c(r,a,function(){n(i.exportsFn?i.exportsFn.apply(0,e):void 0)})}):c(r,a)}},css:{load:function(e,t,r){var a=t.url,i=Wt.createElement("link");i.rel="stylesheet",i.href=a,Xt.insertBefore(i,Xt.firstChild),n("debug: 已成功加载 "+a),r()}},text:{load:function(e,t,r){var a=t.url,i=Pa();i.onreadystatechange=function(){if(4===i.readyState){var e=i.status;e>399&&600>e?avalon.error(a+" 对应资源不存在或没有开启 CORS"):(n("debug: 已成功加载 "+a),r(i.responseText))}};var o="_="+(new Date-0),l=-1===a.indexOf("?")?a+"?"+o:a+"&"+o;i.open("GET",l,!0),"withCredentials"in i&&(i.withCredentials=!0),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.send(),n("debug: 正准备加载 "+a)}}};Za.checkDeps=s;var P=/^callback\d+$/,F=/\/\w+\/\.\./,R=Wt.scripts[Wt.scripts.length-1],B=R.getAttribute("data-main");if(B){Rn.baseUrl(B);var q=m.baseUrl;m.baseUrl=q.slice(0,q.lastIndexOf("/")+1),c(q.replace(E,"")+".js")}else{var I=u(p(R,"src"));m.baseUrl=I.slice(0,I.lastIndexOf("/")+1)}};var ei,ti=[],ni=function(e){ei=!0;var t=avalon.require;for(t&&t.checkDeps&&(Ja["domReady!"].state=4,t.checkDeps());e=ti.shift();)e(avalon)};if("complete"===Wt.readyState)setTimeout(ni);else if(sn)Wt.addEventListener("DOMContentLoaded",ni);else{Wt.attachEvent("onreadystatechange",function(){"complete"===Wt.readyState&&ni()});try{var ri=null===e.frameElement}catch(zn){}cn.doScroll&&ri&&e.external&&Ut()}avalon.bind(e,"load",ni),avalon.ready=function(e){ei?e(avalon):ti.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(Wt.body)}),"function"==typeof define&&define.amd&&define("avalon",[],function(){return avalon});var ai=e.avalon;return avalon.noConflict=function(t){return t&&e.avalon===avalon&&(e.avalon=ai),avalon},void 0===t&&(e.avalon=avalon),avalon});
|
1
|
+
!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("Avalon requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(){e.console&&h.debug&&Function.apply.call(console.log,console,arguments)}function r(){}function i(e){return Function.apply(r,e)}function o(e,t){"string"==typeof e&&(e=e.match(Zt)||[]);for(var n={},r=void 0!==t?t:1,a=0,i=e.length;i>a;a++)n[e[a]]=r;return n}function l(e){return en.test(rn.call(e))}function s(e,t){return e=Math.floor(e)||0,0>e?Math.max(t+e,0):Math.min(e,t)}function c(e){if(!e)return!1;var t=e.length;if(t===t>>>0){var n=rn.call(e).slice(8,-1);if(/(?:regexp|string|function|window|global)$/i.test(n))return!1;if("Array"===n)return!0;try{return{}.propertyIsEnumerable.call(e,"length")===!1?/^\s?function/.test(e.item||e.callee):!0}catch(r){return!e.window}}return!1}function u(e,t,n){var r="for(var "+e+"i=0,n = this.length; i < n; i++){"+t.replace("_","((i in this) && fn.call(scope,this[i],i,this))")+"}"+n;return Function("fn,scope",r)}function f(e,t){try{for(;t=t.parentNode;)if(t===e)return!0;return!1}catch(n){return!1}}function p(){return(new XMLSerializer).serializeToString(this)}function d(e,t){if(e&&e.childNodes)for(var n,r=e.childNodes,a=0;n=r[a++];)if(n.tagName){var i=zt.createElementNS(Nn,n.tagName.toLowerCase());an.forEach.call(n.attributes,function(e){i.setAttribute(e.name,e.value)}),d(n,i),t.appendChild(i)}}function v(e){var t={};for(var n in e)t[n]=e[n];var r=t.target=e.srcElement;if(0===e.type.indexOf("key"))t.which=null!=e.charCode?e.charCode:e.keyCode;else if(En.test(e.type)){var a=r.ownerDocument||zt,i="BackCompat"===a.compatMode?a.body:a.documentElement;t.pageX=e.clientX+(i.scrollLeft>>0)-(i.clientLeft>>0),t.pageY=e.clientY+(i.scrollTop>>0)-(i.clientTop>>0),t.wheelDeltaY=t.wheelDelta,t.wheelDeltaX=0}return t.timeStamp=new Date-0,t.originalEvent=e,t.preventDefault=function(){e.returnValue=!1},t.stopPropagation=function(){e.cancelBubble=!0},t}function h(e){for(var t in e)if(nn.call(e,t)){var n=e[t];"function"==typeof h.plugins[t]?h.plugins[t](n):"object"==typeof h[t]?avalon.mix(h[t],n):h[t]=n}return this}function m(e){return(e+"").replace(Hn,"\\$&")}function y(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:sn,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=zt.createElement("a")}}function g(e,t){var n=this.$events;if(n&&n[e]){t&&(t[2]=e);var r=n[e];if(x(r,t),t&&n["*"]&&!/\./.test(e))for(var a,i=0;a=n["*"][i++];)try{a.handler.apply(this,t)}catch(o){}var l=this.$up;l&&(this.$pathname&&g.call(l,this.$pathname+"."+e,t),g.call(l,"*."+e,t))}else{if(l=this.$up,this.$ups){for(var s in this.$ups)g.call(this.$ups[s],s+"."+e,t);return}if(l){var c=this.$pathname;""===c&&(c="*");var u=c+"."+e;r=u.split("."),-1===r.indexOf("*")?(g.call(l,u,t),r[1]="*",g.call(l,r.join("."),t)):g.call(l,u,t)}}}function b(e,t){for(;;){if(e.$watch){var n=e.$events||(e.$events={}),r=n[t]||(n[t]=[]);return void Zn.collectDependency(r)}if(e=e.$up,!e)break;t=e.$pathname+"."+t}}function x(e,t){if(e){new Date-er>444&&"object"==typeof e[0]&&F();for(var n,r=[],a=[],i=0;n=e[i++];)"user-watcher"===n.type?r.push(n):a.push(n);if(h.async){for(ca.render(),i=0;n=a[i++];)if(n.update){var o=H(n);ca.queue[o]||(ca.queue[o]=1,ca.queue.push(n))}}else for(i=0;n=a[i++];)n.update&&n.update();for(i=0;n=r[i++];)(t&&t[2]===n.expr||n.wildcard)&&(n.fireArgs=t),n.update()}}function $(e,t){return t=t||{},t.watch=!0,C(e,t)}function w(){}function C(e,t){function r(e){return u[e]===!0}if(!e||e.$id&&e.$accessors||e.nodeName&&e.nodeType>0)return e;t=t||Jt;var a=t.force||Jt,i=t.old,l=i&&i.$accessors||Jt,s=new w,c={},u={},f=[],p=[],d={};e.$skipArray&&(d=o(e.$skipArray),delete e.$skipArray);var v=e.$computed;if(v){delete e.$computed;for(var h in v)u[h]=!0,function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(r){if("function"==typeof t.set){var a=n;t.set.call(this,r);var i=this[e];this.$fire&&i!==a&&this.$fire(e,i,a)}},enumerable:!0,configurable:!0}}(h,v[h])}for(h in e){var m=e[h];Rn[h]||(u[h]=!0),"function"==typeof m||m&&m.nodeName&&m.nodeType>0||!a[h]&&("$"===h.charAt(0)||Rn[h]||d[h])?f.push(h):k(m)?(n("warning:计算属性建议放在$computed对象中统一定义"),function(e,t){var n;c[e]={get:function(){return n=t.get.call(this)},set:function(r){if("function"==typeof t.set){var a=n;t.set.call(this,r);var i=this[e];this.$fire&&i!==a&&this.$fire(e,i,a)}},enumerable:!0,configurable:!0}}(h,m)):(p.push(h),c[h]=l[h]?l[h]:N(h,m))}c.$model=zn,s=In(s,c,e),f.forEach(function(t){s[t]=e[t]}),A(s,"$ups",null),A(s,"$id","anonymous"),A(s,"$up",i?i.$up:null),A(s,"$track",Object.keys(u)),A(s,"$active",!1),A(s,"$pathname",i?i.$pathname:""),A(s,"$accessors",c),A(s,"hasOwnProperty",r),t.watch&&(A(s,"$watch",function(){return y.apply(s,arguments)}),A(s,"$fire",function(e,t){if(0===e.indexOf("all!")){var n=e.slice(4);for(var r in avalon.vmodels){var a=avalon.vmodels[r];a.$fire&&a.$fire.apply(a,[n,t])}}else g.call(s,e,[t])})),p.forEach(function(t){var n=i&&i[t],r=s[t]=e[t];r&&"object"==typeof r&&(r.$up=s,r.$pathname=t),g.call(s,t,[r,n])});for(h in v)m=s[h];return s.$active=!0,s}function k(e){if(e&&"object"==typeof e){for(var t in e)if("get"!==t&&"set"!==t)return!1;return"function"==typeof e.get}}function N(e,t){var n;return t=0/0,{get:function(){return this.$active&&b(this,e),t},set:function(r){if(t!==r){var a=t;n=T(r,t),n?t=n:(n=void 0,t=r),Object(n)===n&&(n.$pathname=e,n.$up=this),this.$active&&g.call(this,e,[t,a])}},enumerable:!0,configurable:!0}}function T(e,t,n,r){if(Array.isArray(e))return E(e,t,r);if(avalon.isPlainObject(e)){if(t&&"object"==typeof t){var a=Un(e),i=Un(t);if(a.join(";")===i.join(";")){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);return t}t.$active=!1}return C(e,{old:t,watch:r})}return n?e:void 0}function E(e,t,n){if(t&&t.splice){var r=[0,t.length].concat(e);return t.splice.apply(t,r),t}for(var a in Gn)e[a]=Gn[a];A(e,"$up",null),A(e,"$pathname",""),A(e,"$track",M(e.length)),e._=C({length:0/0},{watch:!0}),e._.length=e.length,e._.$watch("length",function(t,n){g.call(e.$up,e.$pathname+".length",[t,n])}),n&&A(e,"$watch",function(){return y.apply(e,arguments)}),ln?Object.defineProperty(e,"$model",zn):e.$model=_(e);for(var i=0,o=e.length;o>i;i++){var l=e[i]=T(e[i],0,1,1);Object(l)===l&&(l.$up=e)}return e}function A(e,t,n){qn?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!1,configurable:!0}):e[t]=n}function _(e){var t=avalon.type(e);if("array"===t){for(var n=[],r=0;r<e.length;r++)n[r]=_(e[r]);return n}if("object"===t){var a={};for(r in e)if("__proxy__"!==r&&"__data__"!==r&&"__const__"!==r&&e.hasOwnProperty(r)){var i=e[r];a[r]=i&&i.nodeType?i:_(i)}return a}return e}function S(e,t,n,r){var a=t[n];return 4!==arguments.length?a.get.call(e):void a.set.call(e,r)}function O(e,t){for(var n={},r=0,a=t.length;a>r;r++){n[r]=e[r];var i=t[r];i in n?(e[r]=n[i],delete n[i]):e[r]=e[i]}}function M(e){for(var t=[],n=0;e>n;n++)t[n]=dn("$proxy$each");return t}function j(e,t,n){switch(t){case"push":case"unshift":n=M(n.length);break;case"splice":if(n.length>2){{n[1],n.length-2}n=[n[0],n[1]].concat(M(n.length-2))}}Array.prototype[t].apply(e,n)}function L(e,t){t.oneTime||e&&avalon.Array.ensure(e,t)&&t.element&&(P(t,e),new Date-er>444&&F())}function D(e,t){for(var n,r=[],a=0;n=e[a++];)r.push(t?n.$id:n.$key);return r.join(";")}function H(e){if(!e.uniqueNumber){var t=e.element;e.uniqueNumber=t?1!==t.nodeType?e.type+"-"+H(t.parentNode)+"-"+ ++Kn:e.name+"-"+H(t):++Kn}return e.uniqueNumber}function P(e,t){var n=e.lists||(e.lists=[]),r=H(e);avalon.Array.ensure(n,t),t.$uuid=t.$uuid||dn(),Qn[r]||(Qn[r]=1,Qn.push(e))}function F(e){for(var t=Qn.length,n=t,r=[],a={},i={};e=Qn[--t];){var o=e.type;i[o]?i[o]++:(i[o]=1,r.push(o))}var l=!1;if(r.forEach(function(e){tr[e]!==i[e]&&(a[e]=1,l=!0)}),t=n,l)for(;e=Qn[--t];)if(null!==e.element){if(a[e.type]&&B(e.element)){Qn.splice(t,1),delete Qn[e.uniqueNumber];for(var s,c=e.lists,u=0;s=c[u++];)avalon.Array.remove(c,s),avalon.Array.remove(s,e);R(e)}}else Qn.splice(t,1);tr=i,er=new Date}function R(e){delete Qn[e.uniqueNumber],e.element=null,e.rollback&&e.rollback();for(var t in e)e[t]=null}function B(e){try{{e.parentNode.nodeType}}catch(t){return!0}return e.ifRemove&&!sn.contains(e.ifRemove)&&Xt===e.parentNode?(e.parentNode&&e.parentNode.removeChild(e),!0):e.msRetain?0:1===e.nodeType?!sn.contains(e):!avalon.contains(sn,e)}function q(e){var t=e.nodeName;return t.toLowerCase()===t&&e.scopeName&&""===e.outerText}function I(e){"url(#default#VML)"!==e.currentStyle.behavior&&(e.style.behavior="url(#default#VML)",e.style.display="inline-block",e.style.zoom=1)}function V(e){return e.replace(/([a-z\d])([A-Z]+)/g,"$1-$2").toLowerCase()}function U(e){return!e||e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})}function z(e){if(!("classList"in e)){e.classList={node:e};for(var t in ur)e.classList[t.slice(1)]=ur[t]}return e.classList}function W(e){try{if("object"==typeof e)return e;e="true"===e?!0:"false"===e?!1:"null"===e?null:+e+""===e?+e:fr.test(e)?avalon.parseJSON(e):e}catch(t){}return e}function X(e){return e.window&&e.document?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}function Y(e,t){if(e.offsetWidth<=0){if(Tr.test(mr["@:get"](e,"display"))){var n={node:e};for(var r in Nr)n[r]=e.style[r],e.style[r]=Nr[r];t.push(n)}var a=e.parentNode;a&&1===a.nodeType&&Y(a,t)}}function G(e){var t=e.tagName.toLowerCase();return"input"===t&&/checkbox|radio/.test(e.type)?"checked":t}function J(e,t){var n=[],r=!!t;t=t||0;for(var a="unknown",o="",l=0;l<e.length;l++){var s=e.charAt(l);if("'"===s||'"'===s)"unknown"===a?a=s:a===s&&(a="unknown");else if("\\"===s)("'"===a||'"'===a)&&l++;else if(Or.test(s))"unknown"===a?(a="variable",o=s):"maybePath"===a?(o=n.pop(),o+="."+s,a="variable"):"variable"===a&&(o+=s);else if(/\w/.test(s))"variable"===a&&(o+=s);else if("."===s)"variable"===a&&o&&(n.push(o),o="",a="maybePath");else if("["===s){if("variable"===a||"maybePath"===a){o&&(n.push(o),o="");var c=n.length,u=n[c-1],f=J(e.slice(l),l);if(f.length)n[c-1]=u+".*",n=f.concat(n);else{var p=e.slice(l+1,f.i);try{var d=i(["return "+p])();n[c-1]=u+"."+d}catch(v){}}a="maybePath",l=f.i}}else if("]"===s){if(r)return n.i=l+t,Z(n,o),n}else Mr.test(s)&&"\r"!==s&&"\n"!==s?"variable"===a&&(Z(n,o)&&(a="maybePath"),o=""):(Z(n,o),a="unknown",o="")}return Z(n,o),n}function Z(e,t){return t&&!_r[t]?(e.push(t),!0):void 0}function K(e,t,n,r){for(var a,i=[],o=" = "+n+".",l=e.length;a=e[--l];)for(var s,c=a.split("."),u=c[0];s=c.shift();)t.hasOwnProperty(s)&&(i.push(u+o+u),r.observers.push({v:t,p:a}),e.splice(l,1));return i}function Q(e){e=e.trim();var t=Lr.get(e);if(t)return t.concat();for(var n,r=J(e),a={},i=[],o=0;n=r[o++];)a[n]||(a[n]=1,i.push(n));return Lr.put(e,i).concat()}function et(e,t,n){var r=n.filters;"string"==typeof r&&r.trim()&&!n._filters&&(n._filters=nt(r.trim()));var a=Q(e),o=new Date-0,l=[],s=[],c=[];n.observers=[];for(var u=0,f=t.length;f>u;u++)if(a.length){var p="vm"+o+"_"+u;s.push(p),c.push(t[u]),l.push.apply(l,K(a,t[u],p,n))}n.args=c;var d=n.type,v=t.map(function(e){return String(e.$id).replace(jr,"$1")})+e+d,h=Dr.get(v);if(h){if("duplex"===d){var m=Dr.get(v+"setter");n.setter=m.apply(m,n.args)}return n.getter=h}if(l.length||l.push("fix"+o),"duplex"===d){var y={};l.forEach(function(e){var t=e.split("=");y[t[0].trim()]=t[1].trim()}),e=e.replace(/[\$\w]+/,function(e){return y[e]?y[e]:e});var g=i(s.concat("'use strict';return function(vvv){"+e+" = vvv\n}\n"));Dr.put(v+"setter",g),n.setter=g.apply(g,n.args)}if("on"===d){-1===e.indexOf("(")?e+=".call(this, $event)":e=e.replace("(",".call(this,"),s.push("$event"),e="\nreturn "+e+";";var b=e.lastIndexOf("\nreturn"),x=e.slice(0,b),$=e.slice(b);e=x+"\n"+$}else e="\nreturn "+e+";";return h=i(s.concat("'use strict';\nvar "+l.join(",\n")+e)),Dr.put(v,h)}function tt(e){var t=jn.test(e);if(t){var n=dt(e);return 1===n.length?n[0].expr:n.map(function(e){return e.type?"("+e.expr+")":Ir(e.expr)}).join(" + ")}return e}function nt(e){return e=e.replace(Hr,"").replace(Pr,function(){return"],|"}).replace(Fr,function(e,t){return"["+Ir(t)}).replace(Rr,function(){return'"],["'}).replace(Br,function(){return'",'})+"]",i(["return ["+e+"]"])()}function rt(e,t,n){var r=setTimeout(function(){var a=e.innerHTML;clearTimeout(r),a===n?t():rt(e,t,a)})}function at(e,t){var n=e.getAttribute("avalonctrl")||t.$id;e.setAttribute("avalonctrl",n),t.$events&&(t.$events.expr=e.tagName+'[avalonctrl="'+n+'"]')}function it(e,t){for(var n,r=0;n=e[r++];)n.vmodels=t,gn[n.type].init(n),avalon.injectBinding(n),n.getter&&1===n.element.nodeType&&n.element.removeAttribute(n.name);e.length=0}function ot(e,t){return e.priority-t.priority}function lt(e,t){for(var n,r=e.attributes,a={},i=0;n=r[i++];){var o=n.name;if(n.specified&&!Jr.test(o)){var l=U(n.name);a[l]=/^on\-[\w-]+$/.test(o)?Ur(e,o,t):W(n.value)}}return a}function st(e,t,r){var a=!0;if(t.length){for(var i,o=aa?aa(e):e.attributes,l=[],s={},c=0;i=o[c++];){var u=i.name;if(!s[u]&&(s[u]=1,i.specified&&(r=u.match(Xr)))){var f=r[1],p=r[2]||"",d=i.value;if(Yr[f]?(p=f,f="on"):Gr[f]&&(p=f,f="attr",u="ms-"+f+"-"+p,n("warning!请改用"+u+"代替"+i.name+"!")),gn[f]){var v=d.replace(Wr,""),h=d!==v,m={type:f,param:p,element:e,name:u,expr:v,oneTime:h,uniqueNumber:i.name+"-"+H(e),priority:(gn[f].priority||10*f.charCodeAt(0))+(Number(p.replace(/\D/g,""))||0)};if("html"===f||"text"===f){var y=pt(d).filters;m.expr=m.expr.replace(y,""),m.filters=y.replace(ia,function(){return m.type="html",m.group=1,""}).trim()}else if("duplex"===f)var g=u;else if("ms-if-loop"===u)m.priority+=100;else if("ms-attr-value"===u)var b=u;l.push(m)}}}if(l.length){for(l.sort(ot),g&&b&&"INPUT"===e.nodeName&&"text"===e.type&&n("warning!一个控件不能同时定义ms-attr-value与"+g),c=0;m=l[c];c++){if(f=m.type,Zr.test(f))return it(l.slice(0,c+1),t);a&&(a=!Kr.test(f))}it(l,t)}}a&&!Vr[e.tagName]&&(mt(e)?e.msResolved:1)&&(zr&&zr(e),ct(e,t))}function ct(e,t){var n=avalon.slice(e.childNodes);ut(n,t)}function ut(e,t){function n(e){setTimeout(function(){avalon.component(e)})}for(var r,a=0;r=e[a++];)switch(r.nodeType){case 1:var i=r;if(!i.msResolved&&i.parentNode&&1===i.parentNode.nodeType){var o=mt(i);if(o){var l=i.localName?i.localName.replace(o+":",""):i.nodeName,s=o+":"+U(l);ua.push({library:o,element:i,fullName:s,widget:l,vmodels:t,name:"widget"}),avalon.components[s]&&n(s)}}ft(r,t),r.msHasEvent&&avalon.fireDom(r,"datasetchanged",{bubble:r.msHasEvent});break;case 3:jn.test(r.nodeValue)&&vt(r,t,a)}}function ft(e,t,r){var a=e.getAttribute("ms-skip");if(!e.getAttributeNode)return n("warning "+e.tagName+" no getAttributeNode method");var i=e.getAttributeNode("ms-important"),o=e.getAttributeNode("ms-controller");if("string"!=typeof a){if(r=i||o){var l=avalon.vmodels[r.value];if(!l)return;t=r===i?[l]:[l].concat(t);var s=r.name;e.removeAttribute(s),avalon(e).removeClass(s),at(e,l)}st(e,t),l&&setTimeout(function(){l.$fire("ms-scan-end",e)})}}function pt(e){if(e.indexOf("|")>0){var t=e.replace(la,function(e){return Array(e.length+1).join("1")}),n=t.replace(oa,"ᄢ㍄").indexOf("|");if(n>-1)return{type:"text",filters:e.slice(n).trim(),expr:e.slice(0,n)}}return{type:"text",expr:e,filters:""}}function dt(e){for(var t,n,r=[],a=0;;){if(n=e.indexOf(On,a),-1===n)break;if(t=e.slice(a,n),t&&r.push({expr:t}),a=n+On.length,n=e.indexOf(Mn,a),-1===n)break;t=e.slice(a,n),t&&r.push(pt(t,a)),a=n+Mn.length}return t=e.slice(a),t&&r.push({expr:t}),r}function vt(e,t,n){var r=[],a=dt(e.data);if(a.length){for(var i,o=0;i=a[o++];){var l=zt.createTextNode(i.expr);i.type&&(i.expr=i.expr.replace(Wr,function(){return i.oneTime=!0,""}),i.element=l,i.filters=i.filters.replace(ia,function(){return i.type="html",""}),i.pos=1e3*n+o,r.push(i)),cn.appendChild(l)}e.parentNode.replaceChild(cn,e),r.length&&it(r,t)}}function ht(e,t){if(t)for(var n,r=0;n=e[r++];)if(n.hasOwnProperty(t)&&"object"==typeof n[t]){var a=n[t];return a.$model||a}return{}}function mt(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 yt(e){return null==e?"":e}function gt(e,t,n){return t.param.replace(Kt,function(r){var a=avalon.duplexHooks[r];a&&"function"==typeof a[n]&&(e=a[n](e,t))}),e}function bt(){for(var e=wa.length-1;e>=0;e--){var t=wa[e];t()===!1&&wa.splice(e,1)}wa.length||clearInterval($a)}function xt(e){var t=0/0,n=0/0;if(e.setSelectionRange)t=e.selectionStart,n=e.selectionEnd;else if(document.selection&&document.selection.createRange){var r=document.selection.createRange();t=0-r.duplicate().moveStart("character",-1e5),n=t+r.text.length}return{start:t,end:n}}function $t(e,t,n){if(e.value&&!e.readOnly)if(e.createTextRange){var r=e.createTextRange();r.collapse(!0),r.moveStart("character",t),r.select()}else e.selectionStart=t,e.selectionEnd=n}function wt(e,t){if(!e||1!==e.nodeType)return null;if(t)var n=t.effectName,r=t.effectDriver;else n=e.getAttribute("data-effect-name"),r=e.getAttribute("data-effect-driver");if(!n||!r)return null;var a=Sa.pop()||new Nt;return a.el=e,a.driver=r,a.useCss="j"!==r,a.useCss&&(t&&avalon(e).addClass(t.effectClass),a.cssEvent="t"===r?ka:Na),a.name=n,a.callbacks=avalon.effects[n]||{},a}function Ct(e,t){var n=e.getAttribute("data-effect-name");if(n){t.effectName=n,t.effectDriver=e.getAttribute("data-effect-driver");var r=+e.getAttribute("data-effect-stagger");t.effectLeaveStagger=+e.getAttribute("data-effect-leave-stagger")||r,t.effectEnterStagger=+e.getAttribute("data-effect-enter-stagger")||r,t.effectClass=e.className||0/0}}function kt(e){return e.replace(/^[\S]/g,function(e){return e.toUpperCase()})}function Nt(){}function Tt(e,t){var n=e.callbacks[t+"Class"];return"string"==typeof n?n:"function"==typeof n?n():e.name+"-"+t}function Et(e,t,n){var r=e.callbacks[t];r&&r.call(e,e.el,n)}function At(e,t,n){var r=e.templateCache&&e.templateCache[t];if(r){for(var a,i=zt.createDocumentFragment();a=r.firstChild;)i.appendChild(a);return i}return avalon.parseHTML(n)}function _t(e){for(var t=zt.createDocumentFragment(),n=0,r=e.length;r>n;n++)t.appendChild(e[n]);return t}function St(e,t,n){for(var a,i=0;a=e[i++];)a.className===n.effectClass&&avalon.effect.apply(a,t,r,r,n)}function Ot(e,t,n){return e?setTimeout(t,++n*e):t(),n}function Mt(e,t){for(var n=cn.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=Ot(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 jt(e,t,n,r,a){var i=e.template.cloneNode(!0),o=avalon.slice(i.childNodes);i.appendChild(n.$anchor),a&&t.appendChild(i);var l=[n].concat(e.vmodels),s={nodes:o,vmodels:l,content:i};r.push(s)}function Lt(e){var t="object"===e.xtype?Ft:Dt,n=t(e),r=n.$anchor||(n.$anchor=e.element.cloneNode(!1));return r.nodeValue=e.signature,n.$outer=e.$outer,n}function Dt(e,t){for(var n=e.param||"el",r=0,a=Ra.length;a>r;r++){var i=Ra[r];if(i&&i.hasOwnProperty(n)){Ra.splice(r,1),t=i;break}}return t||(t=Ht(n)),t}function Ht(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 r=$(t,{force:n});return r.$id=dn("$proxy$each"),r}function Pt(e,t,n){if("array"===n){e.$remove=function(){t.$repeat.removeAt(e.$index)};var r=t.param;e.$watch(r,function(n){var r=e.$index;t.$repeat[r]=n})}else e.$watch("$val",function(n){t.$repeat[e.$key]=n})}function Ft(){return Ba.pop()||Rt()}function Rt(){var e=$({$key:"",$val:0/0,$index:0,$oldIndex:0,$outer:{},$anchor:null},{force:{$key:1,$val:1,$index:1}});return e.$id=dn("$proxy$with"),e}function Bt(e,t,n){var r=e[t];if(r){var a=0===r.$id.indexOf("$proxy$each")?Ra:Ba;r.$outer={};for(var i in r.$events){var o=r.$events[i];Array.isArray(o)&&(o.length=0,i===n?r[n]=0/0:"$val"===i&&(r.$val=0/0))}a.unshift(r)>h.maxRepeatSize&&a.pop(),delete e[t]}}function qt(e,t){var n="_"+e;if(!qt[n]){var r=zt.createElement(e);sn.appendChild(r),t=ln?getComputedStyle(r,null).display:r.currentStyle.display,sn.removeChild(r),qt[n]=t}return qt[n]}function It(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):3,o=r||",",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(a,i):""+Math.round(a)).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 Vt(){try{sn.doScroll("left"),ei()}catch(e){setTimeout(Vt)}}var Ut=new Date-0,zt=e.document,Wt=zt.getElementsByTagName("head")[0],Xt=Wt.insertBefore(document.createElement("avalon"),Wt.firstChild);Xt.innerHTML="X<style id='avalonStyle'>.avalonHide{ display: none!important }</style>",Xt.setAttribute("ms-skip","1"),Xt.className="avalonHide";var Yt=/\[native code\]/,Gt="$"+Ut,Jt={},Zt=/[^, ]+/g,Kt=/\w+/g,Qt=/^\[object SVG\w*Element\]$/,en=/^\[object (?:Window|DOMWindow|global)\]$/,tn=Object.prototype,nn=tn.hasOwnProperty,rn=tn.toString,an=Array.prototype,on=an.slice,ln=e.dispatchEvent,sn=zt.documentElement,cn=zt.createDocumentFragment(),un=zt.createElement("div"),fn={};"Boolean Number String Function Array Date RegExp Object Error".replace(Zt,function(e){fn["[object "+e+"]"]=e.toLowerCase()});var pn=0/0;e.VBArray&&(pn=document.documentMode||(e.XMLHttpRequest?7:6));var dn=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=a.length,t=0;e>t;t++)a[t]();a=a.slice(e)}var n=e.setImmediate,r=e.MutationObserver;if(n)return n.bind(e);var a=[];if(r){var i=document.createTextNode("avalon");new r(t).observe(i,{characterData:!0});var o=!1;return function(e){a.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?fn[rn.call(e)]||"object":typeof e},avalon.isFunction="object"==typeof alert?function(e){try{return/^\s*\bfunction\b/.test(e+"")}catch(t){return!1}}:function(e){return"[object Function]"===rn.call(e)},avalon.isWindow=function(e){return e?e==e.document&&e.document!=e:!1},l(e)&&(avalon.isWindow=l);var vn,hn;for(vn in avalon({}))break;hn="0"!==vn,avalon.isPlainObject=function(e,t){if(!e||"object"!==avalon.type(e)||e.nodeType||avalon.isWindow(e))return!1;try{if(e.constructor&&!nn.call(e,"constructor")&&!nn.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(hn)for(t in e)return nn.call(e,t);for(t in e);return void 0===t||nn.call(e,t)},Yt.test(Object.getPrototypeOf)&&(avalon.isPlainObject=function(e){return"[object Object]"===rn.call(e)&&Object.getPrototypeOf(e)===tn}),avalon.mix=avalon.fn.mix=function(){var e,t,n,r,a,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];try{r=e[t]}catch(u){continue}o!==r&&(c&&r&&(avalon.isPlainObject(r)||(a=Array.isArray(r)))?(a?(a=!1,i=n&&Array.isArray(n)?n:[]):i=n&&avalon.isPlainObject(n)?n:{},o[t]=avalon.mix(c,i,r)):void 0!==r&&(o[t]=r))}return o},avalon.mix({rword:Zt,subscribers:Gt,version:1.56,ui:{},log:n,slice:ln?function(e,t,n){return on.call(e,t,n)}:function(e,t,n){var r=[],a=e.length;if(void 0===n&&(n=a),"number"==typeof n&&isFinite(n)){t=s(t,a),n=s(n,a);for(var i=t;n>i;++i)r[i-t]=e[i]}return r},noop:r,error:function(e,t){throw(t||Error)(e)},oneObject:o,range:function(e,t,n){n||(n=1),null==t&&(t=e||0,e=0);for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n)),i=new Array(a);++r<a;)i[r]=e,e+=n;return i},eventHooks:{},bind:function(e,t,n,r){var a=avalon.eventHooks,i=a[t];"object"==typeof i&&(t=i.type||t,r=i.phase||!!r,n=i.fn?i.fn(e,n):n);var o=ln?n:function(t){n.call(e,v(t))};return ln?e.addEventListener(t,o,r):e.attachEvent("on"+t,o),o},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),ln?e.removeEventListener(t,l,a):e.detachEvent("on"+t,l)},css:function(e,t,n){e instanceof avalon&&(e=e[0]);var r,a=/[_-]/.test(t)?U(t):t;if(t=avalon.cssName(a)||a,void 0===n||"boolean"==typeof n){r=mr[a+":get"]||mr["@:get"],"background"===t&&(t="backgroundColor");var i=r(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[a]&&(n+="px"),r=mr[a+":set"]||mr["@:set"],r(e,t,n)}},each:function(e,t){if(e){var n=0;if(c(e))for(var r=e.length;r>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(),r={};for(var a in n)0===a.indexOf(t)&&(r[a.replace(t,"").replace(/\w/,function(e){return e.toLowerCase()})]=n[a]);return r},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 mn=avalon.bindingHandlers={},yn=avalon.bindingExecutors={},gn=avalon.directives={};avalon.directive=function(e,t){return mn[e]=t.init=t.init||r,yn[e]=t.update=t.update||r,gn[e]=t};var bn=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(!"司徒正美".trim){var xn=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(xn,"")}}var $n=!{toString:null}.propertyIsEnumerable("toString"),wn=function(){}.propertyIsEnumerable("prototype"),Cn=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],kn=Cn.length;if(Object.keys||(Object.keys=function(e){var t=[],n=wn&&"function"==typeof e;if("string"==typeof e||e&&e.callee)for(var r=0;r<e.length;++r)t.push(String(r));else for(var a in e)n&&"prototype"===a||!nn.call(e,a)||t.push(String(a));if($n)for(var i=e.constructor,o=i&&i.prototype===e,l=0;kn>l;l++){var s=Cn[l];o&&"constructor"===s||!nn.call(e,s)||t.push(s)}return t}),Array.isArray||(Array.isArray=function(e){return"[object Array]"===rn.call(e)}),r.bind||(Function.prototype.bind=function(e){if(arguments.length<2&&void 0===e)return this;var t=this,n=arguments;return function(){var r,a=[];for(r=1;r<n.length;r++)a.push(n[r]);for(r=0;r<arguments.length;r++)a.push(arguments[r]);return t.apply(e,a)}}),Yt.test([].map)||avalon.mix(an,{indexOf:function(e,t){var n=this.length,r=~~t;for(0>r&&(r+=n);n>r;r++)if(this[r]===e)return r;return-1},lastIndexOf:function(e,t){var n=this.length,r=null==t?n-1:t;for(0>r&&(r=Math.max(0,n+r));r>=0;r--)if(this[r]===e)return r;return-1},forEach:u("","_",""),filter:u("r=[],j=0,","if(_)r[j++]=this[i]","return r"),map:u("r=[],","r[i]=_","return r"),some:u("","if(_)return true","return false"),every:u("","if(!_)return false","return true")}),avalon.contains=f,zt.contains||(zt.contains=function(e){return f(zt,e)}),e.SVGElement){zt.createTextNode("x").contains||(Node.prototype.contains=function(e){return!!(16&this.compareDocumentPosition(e))});var Nn="http://www.w3.org/2000/svg",Tn=zt.createElementNS(Nn,"svg");Tn.innerHTML='<circle cx="50" cy="50" r="40" fill="red" />',Qt.test(Tn.firstChild)||Object.defineProperties(SVGElement.prototype,{outerHTML:{enumerable:!0,configurable:!0,get:p,set:function(e){var t=this.tagName.toLowerCase(),n=this.parentNode,r=avalon.parseHTML(e);if("svg"===t)n.insertBefore(r,this);else{var a=zt.createDocumentFragment();d(r,a),n.insertBefore(a,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);d(t,this)}}}})}!sn.outerHTML&&e.HTMLElement&&HTMLElement.prototype.__defineGetter__("outerHTML",p);var En=/^(?:mouse|contextmenu|drag)|click/,An=avalon.eventHooks;if("onmouseenter"in sn||avalon.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){An[e]={type:t,fn:function(t,n){return function(r){var a=r.relatedTarget;return a&&(a===t||16&t.compareDocumentPosition(a))?void 0:(delete r.type,r.type=e,n.call(t,r))}}}}),avalon.each({AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"},function(t,n){e[t]&&!An.animationend&&(An.animationend={type:n})}),"oninput"in zt.createElement("input")||(An.input={type:"propertychange",deel:function(e,t){return function(n){return"value"===n.propertyName?(n.type="input",t.call(e,n)):void 0}}}),void 0===zt.onmousewheel){var _n=void 0!==zt.onwheel?"wheel":"DOMMouseScroll",Sn="wheel"===_n?"deltaY":"detail";An.mousewheel={type:_n,fn:function(e,t){return function(n){n.wheelDeltaY=n.wheelDelta=n[Sn]>0?-120:120,n.wheelDeltaX=0,Object.defineProperty&&Object.defineProperty(n,"type",{value:"mousewheel"}),t.call(e,n)}}}}avalon.config=h;var On,Mn,jn,Ln,Dn,Hn=/[-.*+?^${}()|[\]\/\\]/g,Pn={interpolate:function(e){if(On=e[0],Mn=e[1],On===Mn){throw new SyntaxError("openTag!==closeTag")}h.openTag=On,h.closeTag=Mn;var t=m(On),n=m(Mn);jn=new RegExp(t+"(.*?)"+n),Ln=new RegExp(t+"(.*?)"+n,"g"),Dn=new RegExp(t+".*?"+n+"|\\sms-")}};h.plugins=Pn,h.plugins.interpolate(["{{","}}"]),h.async=!0,h.debug=!0,h.paths={},h.shim={},h.maxRepeatSize=100;var Fn=avalon.vmodels={};avalon.define=function(e){var t=e.$id;t||n("warning: vm必须指定$id");var r=$(e);return r.$id=t,Fn[t]=r};var Rn=o("$id,$watch,$fire,$events,$model,$skipArray,$active,$pathname,$up,$track,$accessors,$ups"),Bn=Object.defineProperty,qn=!0;try{Bn({},"_",{value:"x"});var In=Object.defineProperties}catch(Vn){qn=!1}var Un=Yt.test(Object.key)?Object.key:function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&!Rn[n]&&t.push(n);return t},zn={get:function(){return _(this)},set:r,enumerable:!1,configurable:!0};if(!qn&&("__defineGetter__"in avalon&&(Bn=function(e,t,n){return"value"in n&&(e[t]=n.value),"get"in n&&e.__defineGetter__(t,n.get),"set"in n&&e.__defineSetter__(t,n.set),e},In=function(e,t){for(var n in t)t.hasOwnProperty(n)&&Bn(e,n,t[n]);return e}),pn)){var Wn={};e.execScript(["Function parseVB(code)"," ExecuteGlobal(code)","End Function"].join("\n"),"VBScript"),In=function(t,n,r){var a=[];a.push("\r\n Private [__data__], [__proxy__]"," Public Default Function [__const__](d"+Ut+", p"+Ut+")"," Set [__data__] = d"+Ut+": set [__proxy__] = p"+Ut," Set [__const__] = Me"," End Function");var i={};for(t in n)i[t]=!0,a.push(" Public Property Let ["+t+"](val"+Ut+")",' Call [__proxy__](Me,[__data__], "'+t+'", val'+Ut+")"," End Property"," Public Property Set ["+t+"](val"+Ut+")",' Call [__proxy__](Me,[__data__], "'+t+'", val'+Ut+")"," End Property"," Public Property Get ["+t+"]"," On Error Resume Next"," Set["+t+'] = [__proxy__](Me,[__data__],"'+t+'")'," If Err.Number <> 0 Then"," ["+t+'] = [__proxy__](Me,[__data__],"'+t+'")'," End If"," On Error Goto 0"," End Property");
|
2
|
+
for(t in r)i[t]!==!0&&(i[t]=!0,a.push(" Public ["+t+"]"));for(t in Rn)i[t]!==!0&&(i[t]=!0,a.push(" Public ["+t+"]"));a.push(" Public [hasOwnProperty]"),a.push("End Class");var o=a.join("\r\n"),l=Wn[o];l||(l=dn("VBClass"),e.parseVB("Class "+l+o),e.parseVB(["Function "+l+"Factory(a, b)"," Dim o"," Set o = (New "+l+")(a, b)"," Set "+l+"Factory = o","End Function"].join("\r\n")),Wn[o]=l);var s=e[l+"Factory"](n,S);return s}}var Xn=["push","pop","shift","unshift","splice"],Yn=Array.prototype,Gn={notify:function(){g.call(this.$up,this.$pathname)},set:function(e,t){if(e>>>0===e&&this[e]!==t){if(e>this.length)throw Error(e+"set方法的第一个参数不能大于原数组长度");g.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])&&(Jn.call(this.$track,t,1),Jn.call(this,t,1));else if("function"==typeof e)for(t=this.length-1;t>=0;t--){var n=this[t];e(n,t)&&(Jn.call(this.$track,t,1),Jn.call(this,t,1))}else Jn.call(this.$track,0,this.length),Jn.call(this,0,this.length);ln||(this.$model=_(this)),this.notify(),this._.length=this.length},clear:function(){return this.removeAll()}},Jn=Yn.splice;Xn.forEach(function(e){var t=Yn[e];Gn[e]=function(){for(var n=[],r=0,a=arguments.length;a>r;r++)n[r]=T(arguments[r],0,1,1);var i=t.apply(this,n);return j(this.$track,e,n),ln||(this.$model=_(this)),this.notify(),this._.length=this.length,i}}),"sort,reverse".replace(Zt,function(e){Gn[e]=function(){var t=this.concat(),n=this,r=Math.random(),a=[],i=!1;Yn[e].apply(n,arguments);for(var o=0,l=t.length;l>o;o++){var s=n[o],c=t[o];if(s===c)a.push(o);else{var u=t.indexOf(s);a.push(u),t[u]=r,i=!0}}return i&&(O(this.$track,a),ln||(this.$model=_(this)),this.notify()),this}});var Zn=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||gn[e.type].update||r,e.update=function(){var t=!1;e.getter||(t=!0,Zn.begin({callback:function(t){L(t,e)}}),e.getter=et(e.expr,e.vmodels,e),e.observers.forEach(function(t){t.v.$watch(t.p,e)}),delete e.observers);try{var r,a,i=e.fireArgs;if(delete e.fireArgs,i)r=i[0],a=i[1];else if("on"===e.type)r=e.getter+"";else try{r=e.getter.apply(0,e.args)}catch(o){r=null}if(a="undefined"==typeof a?e.oldValue:a,e._filters&&(r=Xa.$filter.apply(0,[r].concat(e._filters))),e.signature){var l=avalon.type(r);if("array"!==l&&"object"!==l)throw Error("warning:"+e.expr+"只能是对象或数组");e.xtype=l;var s=D(e.proxies||[],l),c=r.$track||("array"===l?M(r.length):Object.keys(r));e.track=c,s!==c.join(";")&&(e.handler(r,a),e.oldValue=1)}else(Array.isArray(r)?r.length===(a&&a.length):1)?"oldValue"in e&&r===a||(e.handler(r,a),e.oldValue=r):(e.handler(r,a),e.oldValue=r.concat())}catch(u){delete e.getter,n("warning:exception throwed in [avalon.injectBinding] ",u);var f=e.element;f&&3===f.nodeType&&(f.nodeValue=On+(e.oneTime?"::":"")+e.expr+Mn)}finally{t&&Zn.end()}},e.update()};var Kn=0,Qn=avalon.$$subscribers=[],er=new Date,tr={},nr={area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],col:[2,"<table><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],tr:[2,"<table>","</table>"],td:[3,"<table><tr>","</tr></table>"],g:[1,'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">',"</svg>"],_default:ln?[0,"",""]:[1,"X<div>","</div>"]};nr.th=nr.td,nr.optgroup=nr.option,nr.tbody=nr.tfoot=nr.colgroup=nr.caption=nr.thead,String("circle,defs,ellipse,image,line,path,polygon,polyline,rect,symbol,text,use").replace(Zt,function(e){nr[e]=nr.g});var rr=/<([\w:]+)/,ar=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ir=ln?/[^\d\D]/:/(<(?:script|link|style|meta|noscript))/gi,or=o(["","text/javascript","text/ecmascript","application/ecmascript","application/javascript"]),lr=/<(?:tb|td|tf|th|tr|col|opt|leg|cap|area)/,sr=zt.createElement("script"),cr=/<|&#?\w+;/;avalon.parseHTML=function(e){var t=cn.cloneNode(!1);if("string"!=typeof e)return t;if(!cr.test(e))return t.appendChild(zt.createTextNode(e)),t;e=e.replace(ar,"<$1></$2>").trim();var n,r,a=(rr.exec(e)||["",""])[1].toLowerCase(),i=nr[a]||nr._default,o=un;ln||(e=e.replace(ir,"<br class=msNoScope>$1")),o.innerHTML=i[1]+e+i[2];var l=o.getElementsByTagName("script");if(l.length)for(var s,c=0;s=l[c++];)or[s.type]&&(r=sr.cloneNode(!1),an.forEach.call(s.attributes,function(e){e&&e.specified&&(r[e.name]=e.value,r.setAttribute(e.name,e.value))}),r.text=s.text,s.parentNode.replaceChild(r,s));if(!ln){var u="X<div>"===i[1]?o.lastChild.firstChild:o.lastChild;if(u&&"TABLE"===u.tagName&&"tbody"!==a)for(l=u.childNodes,c=0;s=l[c++];)if("TBODY"===s.tagName&&!s.innerHTML){u.removeChild(s);break}l=o.getElementsByTagName("br");for(var f=l.length;s=l[--f];)"msNoScope"===s.className&&s.parentNode.removeChild(s);for(l=o.all,c=0;s=l[c++];)q(s)&&I(s)}for(c=i[0];c--;o=o.lastChild);for(;n=o.firstChild;)t.appendChild(n);return t},avalon.innerHTML=function(e,t){if(!ln&&!ir.test(t)&&!lr.test(t))try{return void(e.innerHTML=t)}catch(n){}var r=this.parseHTML(t);this.clearHTML(e).appendChild(r)},avalon.clearHTML=function(e){for(e.textContent="";e.firstChild;)e.removeChild(e.firstChild);return e};var ur={_toString:function(){var e=this.node,t=e.className,n="string"==typeof t?t:t.baseVal;return n.split(/\s+/).join(" ")},_contains:function(e){return(" "+this+" ").indexOf(" "+e+" ")>-1},_add:function(e){this.contains(e)||this._set(this+" "+e)},_remove:function(e){this._set((" "+this+" ").replace(" "+e+" "," "))},__set:function(e){e=e.trim();var t=this.node;Qt.test(t)?t.setAttribute("class",e):t.className=e}};"add,remove".replace(Zt,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){z(n)[e](t)}),this}}),avalon.fn.mix({hasClass:function(e){var t=this[0]||{};return 1===t.nodeType&&z(t).contains(e)},toggleClass:function(e,t){for(var n,r=0,a=String(e).split(/\s+/),i="boolean"==typeof t;n=a[r++];){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-"+V(e||""),arguments.length){case 2:return this.attr(e,t),this;case 1:var n=this.attr(e);return W(n);case 0:var r={};return an.forEach.call(this[0].attributes,function(t){t&&(e=t.name,e.indexOf("data-")||(e=U(e.slice(5)),r[e]=W(t.value)))}),r}},removeData:function(e){return e="data-"+V(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 r=avalon.css(this,e,t);return void 0!==r?r:this},position:function(){var e,t,n=this[0],r={top:0,left:0};if(n)return"fixed"===this.css("position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),"HTML"!==e[0].tagName&&(r=e.offset()),r.top+=avalon.css(e[0],"borderTopWidth",!0),r.left+=avalon.css(e[0],"borderLeftWidth",!0),r.top-=e.scrollTop(),r.left-=e.scrollLeft()),{top:t.top-r.top-avalon.css(n,"marginTop",!0),left:t.left-r.left-avalon.css(n,"marginLeft",!0)}},offsetParent:function(){for(var e=this[0].offsetParent;e&&"static"===avalon.css(e,"position");)e=e.offsetParent;return avalon(e||sn)},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,r=n?":get":":set",a=Ar[G(t)+r];if(a)var i=a(t,e);else{if(n)return(t.value||"").replace(/\r/g,"");t.value=e}}return n?i:this}});var fr=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,pr=/^[\],:{}\s]*$/,dr=/(?:^|:|,)(?:\s*\[)+/g,vr=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,hr=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g;avalon.parseJSON=e.JSON?JSON.parse:function(e){if("string"==typeof e){if(e=e.trim(),e&&pr.test(e.replace(vr,"@").replace(hr,"]").replace(dr,"")))return new Function("return "+e)();avalon.error("Invalid JSON: "+e)}return e},avalon.fireDom=function(e,t,n){if(zt.createEvent){var r=zt.createEvent("Events");r.initEvent(t,!0,!0,n),avalon.mix(r,n),e.dispatchEvent(r)}else sn.contains(e)&&(r=zt.createEventObject(),avalon.mix(r,n),e.fireEvent("on"+t,r))},avalon.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){avalon.fn[e]=function(n){var r=this[0]||{},a=X(r),i="scrollTop"===e;return arguments.length?void(a?a.scrollTo(i?avalon(a).scrollLeft():n,i?n:avalon(a).scrollTop()):r[e]=n):a?t in a?a[t]:sn[e]:r[e]}});var mr=avalon.cssHooks={},yr=["","-webkit-","-o-","-moz-","-ms-"],gr={"float":ln?"cssFloat":"styleFloat"};if(avalon.cssNumber=o("animationIterationCount,columnCount,order,flex,flexGrow,flexShrink,fillOpacity,fontWeight,lineHeight,opacity,orphans,widows,zIndex,zoom"),avalon.cssName=function(e,t,n){if(gr[e])return gr[e];t=t||sn.style;for(var r=0,a=yr.length;a>r;r++)if(n=U(yr[r]+e),n in t)return gr[e]=n;return null},mr["@:set"]=function(e,t,n){try{e.style[t]=n}catch(r){}},e.getComputedStyle)mr["@:get"]=function(e,t){if(!e||!e.style)throw new Error("getComputedStyle要求传入一个节点 "+e);var n,r=getComputedStyle(e,null);return r&&(n="filter"===t?r.getPropertyValue(t):r[t],""===n&&(n=e.style[t])),n},mr["opacity:get"]=function(e){var t=mr["@:get"](e,"opacity");return""===t?"1":t};else{var br=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,xr=/^(top|right|bottom|left)$/,$r=/alpha\([^)]*\)/i,wr=!!e.XDomainRequest,Cr="DXImageTransform.Microsoft.Alpha",kr={thin:wr?"1px":"2px",medium:wr?"3px":"4px",thick:wr?"5px":"6px"};mr["@:get"]=function(e,t){var n=e.currentStyle,r=n[t];if(br.test(r)&&!xr.test(r)){var a=e.style,i=a.left,o=e.runtimeStyle.left;e.runtimeStyle.left=n.left,a.left="fontSize"===t?"1em":r||0,r=a.pixelLeft+"px",a.left=i,e.runtimeStyle.left=o}return"medium"===r&&(t=t.replace("Width","Style"),"none"===n[t]&&(r="0px")),""===r?"auto":kr[r]||r},mr["opacity:set"]=function(e,t,n){var r=e.style,a=isFinite(n)&&1>=n?"alpha(opacity="+100*n+")":"",i=r.filter||"";r.zoom=1,r.filter=($r.test(i)?i.replace($r,a):i+" "+a).trim(),r.filter||r.removeAttribute("filter")},mr["opacity:get"]=function(e){var t=e.filters.alpha||e.filters[Cr],n=t&&t.enabled?t.opacity:100;return n/100+""}}"top,left".replace(Zt,function(e){mr[e+":get"]=function(t){var n=mr["@:get"](t,e);return/px$/.test(n)?n:avalon(t).position()[e]+"px"}});var Nr={position:"absolute",visibility:"hidden",display:"block"},Tr=/^(none|table(?!-c[ea]).+)/;"Width,Height".replace(Zt,function(e){var t=e.toLowerCase(),n="client"+e,r="scroll"+e,a="offset"+e;mr[t+":get"]=function(t,n,r){var i=-4;"number"==typeof r&&(i=r),n="Width"===e?["Left","Right"]:["Top","Bottom"];var o=t[a];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)},mr[t+"&get"]=function(e){var n=[];Y(e,n);for(var r,a=mr[t+":get"](e),i=0;r=n[i++];){e=r.node;for(var o in r)"string"==typeof r[o]&&(e.style[o]=r[o])}return a},avalon.fn[t]=function(i){var o=this[0];if(0===arguments.length){if(o.setTimeout)return o["inner"+e]||o.document.documentElement[n]||o.document.body[n];if(9===o.nodeType){var l=o.documentElement;return Math.max(o.body[r],l[r],o.body[a],l[a],l[n])}return mr[t+"&get"](o)}return this.css(t,i)},avalon.fn["inner"+e]=function(){return mr[t+":get"](this[0],void 0,-2)},avalon.fn["outer"+e]=function(e){return mr[t+":get"](this[0],void 0,e===!0?2:0)}}),avalon.fn.offset=function(){var e=this[0],t={left:0,top:0};if(!e||!e.tagName||!e.ownerDocument)return t;var n=e.ownerDocument,r=n.body,a=n.documentElement,i=n.defaultView||n.parentWindow;if(!avalon.contains(a,e))return t;e.getBoundingClientRect&&(t=e.getBoundingClientRect());var o=a.clientTop||r.clientTop,l=a.clientLeft||r.clientLeft,s=Math.max(i.pageYOffset||0,a.scrollTop,r.scrollTop),c=Math.max(i.pageXOffset||0,a.scrollLeft,r.scrollLeft);return{top:t.top+s-o,left:t.left+c-l}};var Er=/^<option(?:\s+\w+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s+value[\s=]/i,Ar={"option:get":pn?function(e){return Er.test(e.outerHTML)?e.value:e.text.trim()}:function(e){return e.value},"select:get":function(e,t){for(var n,r=e.options,a=e.selectedIndex,i=Ar["option:get"],o="select-one"===e.type||0>a,l=o?null:[],s=o?a+1:r.length,c=0>a?s:o?a:0;s>c;c++)if(n=r[c],(n.selected||c===a)&&!n.disabled){if(t=i(n),o)return t;l.push(t)}return l},"select:set":function(e,t,n){t=[].concat(t);for(var r,a=Ar["option:get"],i=0;r=e.options[i++];)(r.selected=t.indexOf(a(r))>-1)&&(n=!0);n||(e.selectedIndex=-1)}},_r={},Sr=["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(",");Sr.replace(/\w+/g,function(e){_r[e]=!0});var Or=/[a-z_$]/i,Mr=/[\s\uFEFF\xA0]/,jr=/(\$proxy\$[a-z]+)\d+$/,Lr=new bn(218),Dr=new bn(128);avalon.normalizeExpr=tt,avalon.parseExprProxy=et;var Hr=/\)\s*$/,Pr=/\)\s*\|/g,Fr=/\|\s*([$\w]+)/g,Rr=/"\s*\["/g,Br=/"\s*\(/g,qr={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Ir=e.JSON&&JSON.stringify||function(e){return'"'+e.replace(/[\\\"\x00-\x1f]/g,function(e){var t=qr[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"'};avalon.scan=function(e,t){e=e||sn;var n=t?[].concat(t):[];ft(e,n)};var Vr=o("area,base,basefont,br,col,command,embed,hr,img,input,link,meta,param,source,track,wbr,noscript,script,style,textarea".toUpperCase()),Ur=function(e,t,n){var r=e.getAttribute(t);if(r)for(var a,i=0;a=n[i++];)if(a.hasOwnProperty(r)&&"function"==typeof a[r])return a[r]},zr=pn&&e.MutationObserver?function(e){for(var t,n=e.firstChild;n;){var r=n.nextSibling;3===n.nodeType?t?(t.nodeValue+=n.nodeValue,e.removeChild(n)):t=n:t=null,n=r}}:0,Wr=/^\s*::/,Xr=/ms-(\w+)-?(.*)/,Yr=o("animationend,blur,change,input,click,dblclick,focus,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,scan,scroll,submit"),Gr=o("value,title,alt,checked,selected,disabled,readonly,enabled,href,src"),Jr=/^(ms-\S+|data-\S+|on[a-z]+|id|style|class)$/,Zr=/^if|widget|repeat$/,Kr=/^each|with|html|include$/;if(!ln)var Qr=new bn(512),ea=/\s+([^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,ta=/^['"]/,na=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/i,ra=/&/g,aa=function(e){var t=e.outerHTML;if("</"===t.slice(0,2)||!t.trim())return[];var n,r,a=t.match(na)[0],i=[],o=Qr.get(a);if(o)return o;for(;n=ea.exec(a);){r=n[2],r&&(r=(ta.test(r)?r.slice(1,-1):r).replace(ra,"&"));var l=n[1].toLowerCase();match=l.match(Xr);var s={name:l,specified:!0,value:r||""};i.push(s)}return Qr.put(a,i)};var ia=/\|\s*html(?:\b|$)/,oa=/\|\|/g,la=/(['"])(\\\1|.)+?\1/g,sa=function(){this.queue=[]};sa.prototype={render:function(e){if(!this.locked){this.locked=e?sn.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 ca=new sa,ua=[],fa=[],pa={$construct:function(){return avalon.mix.apply(null,arguments)},$ready:r,$init:r,$dispose:r,$container:null,$childReady:r,$replace:!1,$extend:null,$$template:function(e){return e}};avalon.components={},avalon.component=function(t,n){n&&(avalon.components[t]=avalon.mix({},pa,n));for(var r,a=0;r=ua[a];a++)t===r.fullName&&(ua.splice(a,1),a--,function(n,r,a,i){if(!avalon.contains(zt,a)||a.msResolved)return void avalon.Array.remove(ua,n);var o=1,l=n.library,s=avalon.libraries[l]||pa;if(!a.getAttribute("ms-attr-identifier")){var c=lt(a,n.vmodels),u=ht(n.vmodels,c.config||n.fullName),f=c.$id||c.identifier||dn(i);delete c.config,delete c.$id,delete c.identifier;var p={},d=avalon.components[r.$extend];d?(avalon.mix(!0,p,d),p=d.$construct.call(a,p,{},{})):avalon.mix(!0,p,r),p=avalon.components[t].$construct.call(a,p,u,c),p.$refs={},p.$id=f;var v=p.$slot,h=p.$replace,m=p.$container,y=p.$template;delete p.$slot,delete p.$replace,delete p.$container,delete p.$construct;var g=avalon.define(p)||{};a.msResolved=1,g.$init(g,a),s.$init(g,a);for(var b,x,$=a.childNodes,w={},C=0;x=$[C++];){var k=1===x.nodeType&&x.getAttribute("slot")||v;k&&(w[k]?w[k].push(x):w[k]=[x])}g.$$template&&(avalon.clearHTML(a),a.innerHTML=g.$$template(y));for(C in w)if(g.hasOwnProperty(C)){var N=w[C];if(N.length){for(var T=cn.cloneNode(!0),E=0;b=N[E++];)T.appendChild(b);g[C]=T}w[C]=null}w=null;var A=a.children[0]||a.firstChild;if(h){a.parentNode.replaceChild(A,a),A.msResolved=1;var _=a.style.cssText,S=a.className;a=n.element=A,a.style.cssText+=";"+_,S&&avalon(a).addClass(S)}m&&m.appendChild(a),avalon.fireDom(a,"datasetchanged",{library:l,vm:g,childReady:1});var O=0,M=avalon.bind(a,"datasetchanged",function(t){if(t.childReady&&t.library===l&&(o+=t.childReady,g!==t.vm&&(g.$refs[t.vm.$id]=t.vm,-1===t.childReady&&(O++,g.$childReady(g,a,t)),t.stopPropagation())),0===o){var r=setTimeout(function(){clearTimeout(r),g.$ready(g,a,n.vmodels),s.$ready(g,a,n.vmodels)},O?Math.max(17*O,100):17);avalon.unbind(a,"datasetchanged",M),n.rollback=function(){try{g.$dispose(g,a),s.$dispose(g,a)}catch(e){}delete avalon.vmodels[g.$id]},P(n,fa),e.chrome&&a.addEventListener("DOMNodeRemovedFromDocument",function(){setTimeout(F)})}});if(ft(a,[g].concat(n.vmodels)),avalon.vmodels[g.$id]=g,a.childNodes.length)var j=setTimeout(function(){clearTimeout(j),avalon.fireDom(a,"datasetchanged",{library:l,vm:g,childReady:-1})},17);else avalon.fireDom(a,"datasetchanged",{library:l,vm:g,childReady:-1})}}(r,avalon.components[t],r.element,r.widget))},avalon.libraries=[],avalon.library=function(e,t){zt.namespaces&&zt.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 da=["autofocus,autoplay,async,allowTransparency,checked,controls","declare,disabled,defer,defaultChecked,defaultSelected","contentEditable,isMap,loop,multiple,noHref,noResize,noShade","open,readOnly,selected"].join(","),va={};da.replace(Zt,function(e){va[e.toLowerCase()]=e});var ha={"accept-charset":"acceptCharset","char":"ch",charoff:"chOff","class":"className","for":"htmlFor","http-equiv":"httpEquiv"},ma=["accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan","dateTime,defaultValue,frameBorder,longDesc,maxLength,marginWidth,marginHeight","rowSpan,tabIndex,useMap,vSpace,valueType,vAlign"].join(",");ma.replace(Zt,function(e){ha[e.toLowerCase()]=e});var ya=avalon.directive("attr",{init:function(e){if(e.expr=tt(e.expr.trim()),"include"===e.type){var t=e.element;Ct(t,e),e.includeRendered=Ur(t,"data-include-rendered",e.vmodels),e.includeLoaded=Ur(t,"data-include-loaded",e.vmodels);var n=e.includeReplace=!!avalon(t).data("includeReplace");avalon(t).data("includeCache")&&(e.templateCache={}),e.start=zt.createComment("ms-include"),e.end=zt.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,r=this.param;if("href"===r||"src"===r){if("string"!=typeof t||sn.hasAttribute||(t=t.replace(/&/g,"&")),n[r]=t,e.chrome&&"EMBED"===n.tagName){var a=n.parentNode,i=document.createComment("ms-src");a.replaceChild(i,n),a.replaceChild(n,i)}}else{var o=t===!1||null===t||void 0===t;!ln&&ha[r]&&(r=ha[r]);var l=va[r];if("boolean"==typeof n[l]&&(n[l]=!!t,t||(o=!0)),o)return n.removeAttribute(r);var s=Qt.test(n)?!1:zt.namespaces&&q(n)?!0:r in n.cloneNode(!1);s?n[r]=t+"":n.setAttribute(r,t)}}});"title,alt,src,value,css,include,href".replace(Zt,function(e){gn[e]=ya}),avalon.directive("class",{init:function(e){var t=e.param,r=e.type;if(!t||isFinite(t)?(e.param="",gn.effect.init(e)):(n("ms-"+r+'-xxx="yyy"这种用法已经过时,请使用ms-'+r+'="xxx:yyy"'),e.expr="["+Ir(t)+","+e.expr+"]",e.oldStyle=t),"hover"===r||"active"===r){if(!e.hasBindEvent){var a=e.element,i=avalon(a),o="mouseenter",l="mouseleave";if("active"===r){a.tabIndex=a.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(Zt,function(e){gn[e]=gn["class"]}),avalon.directive("css",{init:gn.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 ga=/^(?:checkbox|radio)$/,ba=/^(?:radio|checked)$/,xa=/^(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(){d=!0}function l(){d=!1}var s=e.element,c=e.vmodels;e.changed=Ur(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(Kt,function(r){ga.test(s.type)&&ba.test(r)&&("radio"===r&&n("ms-duplex-radio已经更名为ms-duplex-checked"),r="checked",e.isChecked=!0,e.xtype="radio"),"bool"===r?(r="boolean",n("ms-duplex-bool已经更名为ms-duplex-boolean")):"text"===r&&(r="string",n("ms-duplex-text已经更名为ms-duplex-string")),f[r]&&(t=!0),avalon.Array.ensure(u,r)}),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 p=e.bound=function(t,n){s.addEventListener?s.addEventListener(t,n,!1):s.attachEvent("on"+t,n);var r=e.rollback;e.rollback=function(){s.avalonSetter=null,avalon.unbind(s,t,n),r&&r()}},d=!1,v=function(){var t=s.value;if(!d&&t!==e.oldValue&&null!==e.pipe){var r=e.pipe(t,e,"get");try{e.oldValue=t,e.setter(r),a.call(s,r)}catch(i){n(i)}}};switch(e.xtype){case"radio":e.bound("click",function(){var t=e.pipe(s.value,e,"get");try{e.setter(t),a.call(s,t)}catch(r){n(r)}});break;case"checkbox":p(ln?"change":"click",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":p("change",v);break;case"input":pn?(pn>8?(9===pn&&p("keyup",v),p("input",v)):p("propertychange",function(e){"value"===e.propertyName&&v()}),p("dragend",function(){setTimeout(function(){v()},17)})):(p("input",v),p("compositionstart",i),p("compositionend",l),p("DOMAutoComplete",v));break;case"select":p("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(r){n(r)}}),p("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||xa.test(s.type)||("hidden"!==s.type&&(p("focus",function(){s.msFocus=!0}),p("blur",function(){s.msFocus=!1})),s.avalonSetter=v,Ca(function(){if(avalon.contains(sn,s))this.msFocus||v();else if(!s.msRetain)return!1}))},update:function(e){var t,n=this.element,r=this;if(!this.init){for(var a in avalon.vmodels){var i=avalon.vmodels[a];i.$fire("avalon-ms-duplex-init",r)}var o=r.pipe||(r.pipe=gt);o(null,r,"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=xt(n);s.start===s.end&&(s=s.start,l=!0)}catch(c){}n.value=r.oldValue=t,l&&$t(n,s,s)}break;case"radio":t=r.isChecked?!!e:e+""===n.value,6===pn?setTimeout(function(){n.defaultChecked=t,n.checked=t},31):n.checked=t;break;case"checkbox":var u=[].concat(e);t=this.pipe(n.value,this,"get"),n.checked=u.indexOf(t)>-1;break;case"select":r._value=e,n.msHasEvent?avalon.fireDom(n,"datasetchanged",{bubble:n.msHasEvent}):n.msHasEvent="selectDuplex"}}})}pn&&avalon.bind(zt,"selectionchange",function(){var e=zt.activeElement||{};!e.msFocus&&e.avalonSetter&&e.avalonSetter()}),avalon.duplexHooks={checked:{get:function(e,t){return!t.oldValue}},string:{get:function(e){return e},set:yt},"boolean":{get:function(e){return"true"===e},set:yt},number:{get:function(e,t){var n=parseFloat(e+"");if(-e===-n)return n;var r=/strong|medium|weak/.exec(t.element.getAttribute("data-duplex-number"))||["medium"];switch(r[0]){case"strong":return 0;case"medium":return""===e?"":0;case"weak":return e}},set:yt}};var $a,wa=[];avalon.tick=function(e){1===wa.push(e)&&($a=setInterval(bt,60))};var Ca=r;!new function(){function e(e){t[this.tagName].call(this,e),!this.msFocus&&this.avalonSetter&&this.avalonSetter()}try{var t={},n=HTMLInputElement.prototype,r=HTMLTextAreaElement.prototype,a=HTMLInputElement.prototype;Object.getOwnPropertyNames(a),t.INPUT=Object.getOwnPropertyDescriptor(n,"value").set,Object.defineProperty(n,"value",{set:e}),t.TEXTAREA=Object.getOwnPropertyDescriptor(r,"value").set,Object.defineProperty(r,"value",{set:e})}catch(i){Ca=avalon.tick}},avalon.directive("effect",{priority:5,init:function(e){var t,n,r=e.expr,a=r.replace(Ln,function(e){return e.replace(/./g,"0")}).indexOf(":");-1===a?(t=r,n=!0):(t=r.slice(0,a),n=r.slice(a+1)),t=jn.test(r)?tt(t):Ir(t),e.expr="["+t+","+n+"]"},update:function(t){var n=t[0],r=this.element;if(r.getAttribute("data-effect-name")!==n){r.removeAttribute("data-effect-driver");var a=r.style,i=e.getComputedStyle?e.getComputedStyle(r):null,o=!1;if(i&&(Ta||Ea)){var l=a[Aa]||i[Aa];l&&"0s"!==l&&(r.setAttribute("data-effect-driver","t"),o=!0),o||(l=a[_a]||i[_a],l&&"0s"!==l&&(r.setAttribute("data-effect-driver","a"),o=!0))}o||avalon.effects[n]&&(r.setAttribute("data-effect-driver","j"),o=!0),o&&r.setAttribute("data-effect-name",n)}}}),avalon.effects={},avalon.effect=function(e,t){avalon.effects[e]=t};var ka,Na,Ta=!1,Ea=!1,Aa=avalon.cssName("transition-duration"),_a=avalon.cssName("animation-duration");!new function(){var t,n={TransitionEvent:"transitionend",WebKitTransitionEvent:"webkitTransitionEnd",OTransitionEvent:"oTransitionEnd",otransitionEvent:"otransitionEnd"};for(var r in n){if(e[r]){t=n[r];break}try{{document.createEvent(r)}t=n[r];break}catch(a){}}"string"==typeof t&&(Ta=!0,ka=t),n={AnimationEvent:"animationend",WebKitAnimationEvent:"webkitAnimationEnd"};var i;for(r in n)if(e[r]){i=n[r];break}"string"==typeof i&&(Ta=!0,Na=i)};var Sa=[],Oa=new sa;Nt.prototype={contrustor:Nt,enterClass:function(){return Tt(this,"enter")},leaveClass:function(){return Tt(this,"leave")},actionFun:function(e,t,n){if(!document.hidden){var r=this,a=r.el,i="leave"===e;e=i?"leave":"enter";var o=i?"enter":"leave";Et(r,"abort"+kt(o)),Et(r,"before"+kt(e)),i||t(a);var l=function(o){a.removeEventListener(r.cssEvent,r.cssCallback),i?(t(a),avalon(a).removeClass(r.cssClass)):"a"===r.driver&&avalon(a).removeClass(r.cssClass),o!==!0&&(Et(r,"after"+kt(e)),n&&n(a)),r.dispose()};r.useCss?(r.cssCallback&&r.cssCallback(!0),r.cssClass=Tt(r,e),r.cssCallback=l,r.update=function(){a.addEventListener(r.cssEvent,r.cssCallback),i||"t"!==r.driver||avalon(a).removeClass(r.cssClass)},avalon(a).addClass(r.cssClass),Oa.render(!0),Oa.queue.push(r)):Et(r,e,l)}},enter:function(){this.actionFun.apply(this,["enter"].concat(avalon.slice(arguments)))},leave:function(){this.actionFun.apply(this,["leave"].concat(avalon.slice(arguments)))},dispose:function(){this.update=this.cssCallback=null,Sa.unshift(this)>100&&Sa.pop()}};var Ma=function(e,t){var n=on.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=wt(e,o);if(!l)return a(),i(),!1;var s=t?"enter":"leave";l[s](a,i)};avalon.mix(avalon.effect,{apply:Ma,append:function(e,t,n,r){return Ma(e,1,function(){t.appendChild(e)},n,r)},before:function(e,t,n,r){return Ma(e,1,function(){t.parentNode.insertBefore(e,t)},n,r)},remove:function(e,t,n,r){return Ma(e,0,function(){e.parentNode===t&&t.removeChild(e)},n,r)}}),avalon.directive("html",{update:function(e){var t=this,n=this.element,r=1!==n.nodeType,a=r?n.parentNode:n;if(a){if(e=null==e?"":e,3===n.nodeType){var i=dn("html");a.insertBefore(zt.createComment(i),n),t.element=zt.createComment(i+":end"),a.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=cn.cloneNode(!0);l[0];)o.appendChild(l[0])}if(l=avalon.slice(o.childNodes),r){for(var s=n.nodeValue.slice(0,-4);;){var c=n.previousSibling;if(!c||8===c.nodeType&&c.nodeValue===s)break;a.removeChild(c)}a.insertBefore(o,n)}else avalon.clearHTML(n).appendChild(o);ut(l,t.vmodels)}}}),avalon.directive("if",{priority:10,update:function(e){function t(){a.getAttribute(r.name)&&(a.removeAttribute(r.name),st(a,r.vmodels)),r.rollback=null}var n,r=this,a=this.element,i=r.stamp=+new Date,o=function(){i===r.stamp&&(r.recoverNode=null)};r.recoverNode&&r.recoverNode();try{if(!a.parentNode)return;n=a.parentNode}catch(l){return}if(e){if(8===a.nodeType){var s=r.keep,c=avalon.effect.apply(s,1,function(){i===r.stamp&&(a.parentNode.replaceChild(s,a),a=r.element=s,s.getAttribute("_required")&&(a.required=!0,a.removeAttribute("_required")),a.querySelectorAll&&avalon.each(a.querySelectorAll("[_required=true]"),function(e){e.required=!0,e.removeAttribute("_required")}),t())},o);c=c===!1}c||t()}else if(1===a.nodeType){a.required===!0&&(a.required=!1,a.setAttribute("_required","true"));try{avalon.each(a.querySelectorAll(":required"),function(e){a.required=!1,e.setAttribute("_required","true")})}catch(l){}var u=r.element=zt.createComment("ms-if"),f=a.nextSibling;r.recoverNode=function(){r.recoverNode=null,u.parentNode!==n&&(n.insertBefore(u,f),r.keep=a)},avalon.effect.apply(a,0,function(){r.recoverNode=null,i===r.stamp&&(a.parentNode.replaceChild(u,a),r.keep=a,Xt.appendChild(a),r.rollback=function(){a.parentNode===Xt&&Xt.removeChild(a)})},o)}}});var ja=/<noscript.*?>(?:[\s\S]+?)<\/noscript>/gim,La=/<noscript.*?>([\s\S]+?)<\/noscript>/im,Da=function(){return new(e.XMLHttpRequest||ActiveXObject)("Microsoft.XMLHTTP")},Ha=avalon.templateCache={};avalon.directive("include",{init:gn.attr.init,update:function(e){var t=this,r=this.element,a=t.vmodels,i=t.includeRendered,o=t.effectName&&t.effectClass,l=t.templateCache,s=t.includeReplace,c=t.includeLoaded,u=s?r.parentNode:r,f=t._element;t.recoverNodes=t.recoverNodes||avalon.noop;var p=function(n){var p=t._stamp=+new Date;if(c){var d=c.apply(u,[n].concat(a));"string"==typeof d&&(n=d)}i&&rt(u,function(){i.call(u)},0/0);var v=t.includeLastID||"_default";t.includeLastID=e;var h=l&&l[v]||zt.createElement(r.tagName||t._element.tagName);o&&(h.className=o,u.insertBefore(h,t.start)),(l||{})[v]=h;var m=t.recoverNodes();for(m&&u.insertBefore(m,t.end);;){var y=t.start.nextSibling;if(!y||y===h||y===t.end)break;h.appendChild(y)}avalon.effect.remove(h,u,function(){l&&p===t._stamp&&Xt.appendChild(h)},t);var g=u,b=avalon.noop,x=avalon.noop,$=At(t,e,n),w=avalon.slice($.childNodes);
|
3
|
+
s&&o?(g=f,g.innerHTML="",g.setAttribute("ms-skip","true"),u.insertBefore(g,t.end.nextSibling),b=function(){g.insertBefore($,null)},x=function(){t.recoverNodes=avalon.noop,p===t._stamp&&($=_t(w),u.insertBefore($,t.end),ut(w,a)),g.parentNode===u&&u.removeChild(g)},t.recoverNodes=function(){return t.recoverNodes=avalon.noop,_t(w)}):b=function(){u.insertBefore($,t.end),ut(w,a)},avalon.effect.apply(g,"enter",b,x)};if("src"===t.param)if("string"==typeof Ha[e])avalon.nextTick(function(){p(Ha[e])});else if(Array.isArray(Ha[e]))Ha[e].push(p);else{var d=Da();d.onreadystatechange=function(){if(4===d.readyState){var t=d.status;if(t>=200&&300>t||304===t||1223===t){for(var r,a=d.responseText,i=0;r=Ha[e][i++];)r(a);Ha[e]=a}else n("ms-include load ["+e+"] error")}},Ha[e]=[p],d.open("GET",e,!0),"withCredentials"in d&&(d.withCredentials=!0),d.setRequestHeader("X-Requested-With","XMLHttpRequest"),d.send(null)}else{var v=e&&1===e.nodeType?e:zt.getElementById(e);if(v){if("NOSCRIPT"===v.tagName&&!v.innerHTML&&!v.fixIE78){d=Da(),d.open("GET",location,!1),d.send(null);for(var h=zt.getElementsByTagName("noscript"),m=(d.responseText||"").match(ja)||[],y=m.length,g=0;y>g;g++){var b=h[g];b&&(b.style.display="none",b.fixIE78=(m[g].match(La)||[""," "])[1])}}avalon.nextTick(function(){p(v.fixIE78||v.value||v.innerText||v.innerHTML)})}}}});var Pa=/\(([^)]*)\)/,Fa=avalon.directive("on",{priority:3e3,init:function(e){var t=e.expr;e.type="on";var n=e.param.replace(/-\d+$/,"");if("function"==typeof Fa[n+"Hook"]&&Fa[n+"Hook"](e),t.indexOf("(")>0&&t.indexOf(")")>-1){var r=(t.match(Pa)||["",""])[1].trim();(""===r||"$event"===r)&&(t=t.replace(Pa,""))}e.expr=t},update:function(e){var t=this,n=this.element;e=function(e){var n=t.getter||r;return n.apply(this,t.args.concat(e))};var a=t.param.replace(/-\d+$/,"");if("scan"===a)e.call(n,{type:a});else if("function"==typeof t.specialBind)t.specialBind(n,e);else var i=avalon.bind(n,a,e);t.rollback=function(){"function"==typeof t.specialUnbind?t.specialUnbind():avalon.unbind(n,a,i)}}});avalon.directive("repeat",{priority:90,init:function(e){var t=e.type;e.cache={},e.enterCount=0;var n=e.element;if(1===n.nodeType){n.removeAttribute(e.name),Ct(n,e),e.param=e.param||"el",e.sortedCallback=Ur(n,"data-with-sorted",e.vmodels);var r=Ur(n,"data-"+t+"-rendered",e.vmodels),a=dn(t),i=zt.createComment(a+":start"),o=e.element=zt.createComment(a+":end");if(e.signature=a,e.start=i,e.template=cn.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,r)var s=avalon.bind(l,"datasetchanged",function(){r.apply(l,l.args),avalon.unbind(l,"datasetchanged",s),l.msRendered=r})}},update:function(e,t){var n=this,r=this.xtype;this.enterCount+=1;var a=!t;if(a){n.$outer={};var i="$key",o="$val";"array"===r&&(i="$first",o="$last");for(var l,s=0;l=n.vmodels[s++];)if(l.hasOwnProperty(i)&&l.hasOwnProperty(o)){n.$outer=l;break}}var c=this.track;if(n.sortedCallback){var u=n.sortedCallback.call(x,c);u&&Array.isArray(u)&&(c=u)}var f="move";n.$repeat=e;var p=[],d=a&&cn.cloneNode(!1),v=[],m=this.param,y=avalon.mix({},this.cache),g=this.element,b=c.length,x=g.parentNode;for(s=0;b>s;s++){var $=c[s],w=y[$];if(w)p.push({}),y[$]=!0;else{if(w=Lt(this),w.$up=null,"array"===r){f="add",w.$id=$;var C=e[s];w[m]=C,Object(C)===C&&(C.$ups=C.$ups||{},C.$ups[m]=w)}else f="append",w.$key=$,w.$val=e[$];this.cache[$]=w;var k=w.$anchor||(w.$anchor=g.cloneNode(!1));k.nodeValue=this.signature,jt(n,d,w,p,a&&!n.effectDriver),Pt(w,n,r)}1===this.enterCount&&(w.$active=!1,w.$oldIndex=w.$index,w.$active=!0,w.$index=s),"array"===r?(w.$first=0===s,w.$last=s===b-1):w.$val=_(e[$]),v.push(w)}if(this.proxies=v,a&&!n.effectDriver)x.insertBefore(d,g),p.forEach(function(e){ut(e.nodes||[],e.vmodels),e.nodes=e.vmodels=null});else{var N=n.staggerIndex=0;for($ in y)y[$]!==!0&&(f="del",Mt(y[$].$anchor,n),Bt(this.cache,$,m),y[$]=null);for(s=0;b>s;s++){w=v[s],$="array"===r?w.$id:w.$key;var T=v[s-1],E=T?T.$anchor:n.start;y[$]?w.$index!==w.$oldIndex&&!function(e,t){N=Ot(n.effectEnterStagger,function(){var r=Mt(e.$anchor),a=avalon.slice(r.childNodes);x.insertBefore(r,t.nextSibling),St(a,1,n)},N)}(w,E):!function(e,t){var r=e.nodes,a=e.vmodels;r&&(N=Ot(n.effectEnterStagger,function(){x.insertBefore(e.content,t.nextSibling),ut(r,a),St(r,1,n)},N)),e.nodes=e.vmodels=null}(p[s],E)}}if(!e.$track)for($ in this.cache)Bt(this.cache,$,m);!function(e){x.args=e,x.msRendered&&x.msRendered.apply(x,e)}(h.newWatch?arguments:[f]);var A=setTimeout(function(){clearTimeout(A),avalon.fireDom(x,"datasetchanged",{bubble:x.msHasEvent})});this.enterCount-=1}}),"with,each".replace(Zt,function(e){gn[e]=avalon.mix({},gn.repeat,{priority:1400})});var Ra=[],Ba=[];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"textContent"in t?t.textContent=e:t.innerText=e}}),avalon.parseDisplay=qt,avalon.directive("visible",{init:function(e){Ct(e.element,e)},update:function(e){var t,n=this,r=this.element,a=!this.effectName;return this.stamp?(t=this.stamp=+new Date,void(e?avalon.effect.apply(r,1,function(){if(t===n.stamp){var e=r.getAttribute("data-effect-driver")||"a";a&&(r.style.display=n.display||""),("a"===e||"t"===e)&&"none"===avalon(r).css("display")&&(r.style.display=n.display||qt(r.nodeName))}}):avalon.effect.apply(r,0,function(){t===n.stamp&&(r.style.display="none")}))):(t=this.stamp=+new Date,void(e?(r.style.display=n.display||"","none"===avalon(r).css("display")&&(r.style.display=n.display=qt(r.nodeName))):r.style.display="none"))}});var qa=/<script[^>]*>([\S\s]*?)<\/script\s*>/gim,Ia=/\s+(on[^=\s]+)(?:=("[^"]*"|'[^']*'|[^\s>]+))?/g,Va=/<\w+\b(?:(["'])[^"]*?(\1)|[^>])*>/gi,Ua={a:/\b(href)\=("javascript[^"]*"|'javascript[^']*')/gi,img:/\b(src)\=("javascript[^"]*"|'javascript[^']*')/gi,form:/\b(action)\=("javascript[^"]*"|'javascript[^']*')/gi},za=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Wa=/([^\#-~| |!])/g,Xa=avalon.filters={uppercase:function(e){return e.toUpperCase()},lowercase:function(e){return e.toLowerCase()},truncate:function(e,t,n){return t=t||30,n="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 r=arguments[t],a=avalon.filters[r[0]];if("function"==typeof a){var i=[e].concat(r.slice(1));e=a.apply(null,i)}}return e},camelize:U,sanitize:function(e){return e.replace(qa,"").replace(Va,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 r=n.charAt(0);return t+"="+r+"javascript:void(0)"+r}))}return e.replace(Ia," ").replace(/\s+/g," ")})},escape:function(e){return String(e).replace(/&/g,"&").replace(za,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(Wa,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")},currency:function(e,t,n){return(t||"¥")+It(e,isFinite(n)?n:2)},number:It};!new function(){function e(e){return parseInt(e,10)||0}function t(e,t,n){var r="";for(0>e&&(r="-",e=-e),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),r+e}function n(e,n,r,a){return function(i){var o=i["get"+e]();return(r>0||o>-r)&&(o+=r),0===o&&-12===r&&(o=12),t(o,n,a)}}function r(e,t){return function(n,r){var a=n["get"+e](),i=(t?"SHORT"+e:e).toUpperCase();return r[i][a]}}function a(e){var n=-1*e.getTimezoneOffset(),r=n>=0?"+":"";return r+=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:r("Month"),MMM:r("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:r("Day"),EEE:r("Day",!0),a:i,Z:a},l=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,s=/^\/Date\((\d+)\)\/$/;Xa.date=function(t,n){var r,a,i=Xa.date.locate,c="",u=[];if(n=n||"mediumDate",n=i[n]||n,"string"==typeof t)if(/^\d+$/.test(t))t=e(t);else if(s.test(t))t=+RegExp.$1;else{var f=t.trim(),p=[0,0,0,0,0,0,0],d=new Date(0);f=f.replace(/^(\d+)\D(\d+)\D(\d+)/,function(t,n,r,a){var i=4===a.length?[a,n,r]:[n,r,a];return p[0]=e(i[0]),p[1]=e(i[1])-1,p[2]=e(i[2]),""});var v=d.setFullYear,h=d.setHours;f=f.replace(/[T\s](\d+):(\d+):?(\d+)?\.?(\d)?/,function(t,n,r,a,i){return p[3]=e(n),p[4]=e(r),p[5]=e(a),i&&(p[6]=Math.round(1e3*parseFloat("0."+i))),""});var m=0,y=0;f=f.replace(/Z|([+-])(\d\d):?(\d\d)/,function(t,n,r,a){return v=d.setUTCFullYear,h=d.setUTCHours,n&&(m=e(n+r),y=e(n+a)),""}),p[3]-=m,p[4]-=y,v.apply(d,p.slice(0,3)),h.apply(d,p.slice(3)),t=d}if("number"==typeof t&&(t=new Date(t)),"date"===avalon.type(t)){for(;n;)a=l.exec(n),a?(u=u.concat(a.slice(1)),n=u.pop()):(u.push(n),n=null);return u.forEach(function(e){r=o[e],c+=r?r(t,i):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}};var c={AMPMS:{0:"上午",1:"下午"},DAY:{0:"星期日",1:"星期一",2:"星期二",3:"星期三",4:"星期四",5:"星期五",6:"星期六"},MONTH:{0:"1月",1:"2月",2:"3月",3:"4月",4:"5月",5:"6月",6:"7月",7:"8月",8:"9月",9:"10月",10:"11月",11:"12月"},SHORTDAY:{0:"周日",1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六"},fullDate:"y年M月d日EEEE",longDate:"y年M月d日",medium:"yyyy-M-d H:mm:ss",mediumDate:"yyyy-M-d",mediumTime:"H:mm:ss","short":"yy-M-d ah:mm",shortDate:"yy-M-d",shortTime:"ah:mm"};c.SHORTMONTH=c.MONTH,Xa.date.locate=c};var Ya=avalon.modules={"domReady!":{exports:avalon,state:3},avalon:{exports:avalon,state:4}};Ya.exports=Ya.avalon;var Ga,Ja=e.require,Za=e.define;Pn.loader=function(t){var n=Ga&&t;e.require=n?Ga:Ja,e.define=n?Ga.define:Za},new function(){function t(e,t){var r="js";e=e.replace(/^(\w+)\!/,function(e,t){return r=t,""}),"ready"===r&&(n("debug: ready!已经被废弃,请使用domReady!"),r="domReady");var a="";e=e.replace(A,function(e){return a=e,""});var i="."+r,o=/js|css/.test(i)?i:"";e=e.replace(/\.[a-z0-9]+$/g,function(e){return e===i?(o=e,""):e});var l=avalon.mix({query:a,ext:o,res:r,name:e,toUrl:m},t);return l.toUrl(e),l}function i(e){var t=e.name,n=e.res,r=Ya[t],a=t&&e.urlNoQuery;if(r&&r.state>=1)return t;if(r=Ya[a],r&&r.state>=3)return Ga(r.deps||[],r.factory,a),a;if(t&&!r){r=Ya[a]={id:a,state:1};var i=function(a){H[n]=a,a.load(t,e,function(e){arguments.length&&void 0!==e&&(r.exports=e),r.state=4,s()})};H[n]?i(H[n]):Ga([n],i)}return t?a:n+"!"}function o(e,t){for(var n,r=0;n=e[r++];)if(4!==Ya[n].state&&(n===t||o(Ya[n].deps,t)))return!0}function l(e,t,r){var a=u(e.src);return e.onload=e.onreadystatechange=e.onerror=null,t||r&&Ya[a]&&!Ya[a].state?(setTimeout(function(){Wt.removeChild(e),e=null}),void n("debug: 加载 "+a+" 失败"+t+" "+!Ya[a].state)):!0}function s(){e:for(var e,t=N.length;e=N[--t];){var n=Ya[e],r=n.deps;if(r){for(var a,i=0;a=r[i];i++)if(4!==Object(Ya[a]).state)continue e;4!==n.state&&(N.splice(t,1),v(n.id,n.deps,n.factory),s())}}}function c(e,t,r){function a(){var a=T.pop();a&&a.require(t),r&&r(),l(i,!1,!o)&&(n("debug: 已成功加载 "+e),t&&N.push(t),s())}var i=zt.createElement("script"),o="onload"in i,c=o?"onload":"onreadystatechange";i[c]=o?a:function(){D.test(i.readyState)&&a()},i.onerror=function(){l(i,!0)},i.className=Gt,i.src=e,Wt.insertBefore(i,Wt.firstChild),n("debug: 正准备加载 "+e)}function u(e){return(e||"").replace(A,"")}function f(e){return/^(?:[a-z]+:)?\/\//i.test(String(e))}function p(e,t){return"1"[0]?e[t]:e.getAttribute(t,4)}function d(){var t;try{a.b.c()}catch(n){t=n.stack,!t&&e.opera&&(t=(String(n).match(/of linked script \S+/g)||[]).join(" "))}if(t)return t=t.split(/[@ ]/g).pop(),t="("===t[0]?t.slice(1,-1):t.replace(/\s/,""),u(t.replace(/(:\d+)?:\d+$/i,""));for(var r,i=Wt.getElementsByTagName("script"),o=i.length;r=i[--o];)if(r.className===Gt&&"interactive"===r.readyState){var l=p(r,"src");return r.className=u(l)}}function v(t,r,a){var i=Object(Ya[t]);i.state=4;for(var o,l=0,s=[];o=r[l++];)if("exports"===o){var c=i.exports||(i.exports={});s.push(c)}else s.push(Ya[o].exports);try{var u=a.apply(e,s)}catch(f){n("执行["+t+"]模块的factory抛错: ",f)}return void 0!==u&&(i.exports=u),P.test(t)&&delete Ya[t],delete i.factory,u}function m(e){0===e.indexOf(this.res+"!")&&(e=e.slice(this.res.length+1));var t=e,n=0,r=this.baseUrl,a=this.parentUrl||r;$(e,h.paths,function(e,r){t=t.replace(r,e),n=1}),n||$(e,h.packages,function(e,n,r){t=t.replace(r.name,r.location)}),this.mapUrl&&$(this.mapUrl,h.map,function(e){$(t,e,function(e,n){t=t.replace(n,e),a=r})});var i=this.ext;i&&n&&t.slice(-i.length)===i&&(t=t.slice(0,-i.length)),f(t)||(a=this.built||/^\w/.test(t)?r:a,t=C(a,t));var o=t+i;return t=o+this.query,o=t.replace(A,function(e){return this.query=e,""}),$(e,h.urlArgs,function(e){t+=(-1===t.indexOf("?")?"?":"&")+e}),this.url=t,this.urlNoQuery=o}function y(e,t,n){var r=x(e,t,n);return r.sort(w),r}function g(e){return new RegExp("^"+e+"(/|$)")}function b(t){return function(){var n;return t.init&&(n=t.init.apply(e,arguments)),n||t.exports&&k(t.exports)}}function x(e,t,n){var r=[];for(var a in e)if(nn.call(e,a)){var i={name:a,val:e[a]};r.push(i),i.reg="*"===a&&t?/^/:g(a),n&&"*"!==a&&(i.reg=new RegExp("/"+a.replace(/^\//,"")+"(/|$)"))}return r}function $(e,t,n){t=t||[];for(var r,a=0;r=t[a++];)if(r.reg.test(e))return n(r.val,r.name,r),!1}function w(e,t){var n=e.name,r=t.name;return"*"===r?-1:"*"===n?1:r.length-n.length}function C(e,t){if("/"!==e.charAt(e.length-1)&&(e+="/"),"./"===t.slice(0,2))return e+t.slice(2);if(".."===t.slice(0,2)){for(e+=t;F.test(e);)e=e.replace(F,"");return e}return"/"===t.slice(0,1)?e+t.slice(1):e+t}function k(t){if(!t)return t;var n=e;return t.split(".").forEach(function(e){n=n[e]}),n}var N=[],T=[],E=/\.js$/i,A=/(\?[^#]*)$/,_=[],S=!1;Ga=avalon.require=function(e,n,a,o){if(S){Array.isArray(e)||avalon.error("require方法的第一个参数应为数组 "+e);var l=[],c={},u=a||"callback"+setTimeout("1");o=o||{},o.baseUrl=h.baseUrl;var f=!!o.built;if(a&&(o.parentUrl=a.substr(0,a.lastIndexOf("/")),o.mapUrl=a.replace(E,"")),f){var p=t(o.defineName,o);u=p.urlNoQuery}else e.forEach(function(e){var n=t(e,o),r=i(n);r&&(c[r]||(l.push(r),c[r]="司徒正美"))});var d=Ya[u];d&&4===d.state||(Ya[u]={id:u,deps:f?e.concat():l,factory:n||r,state:3}),d||N.push(u),s()}else if(_.push(avalon.slice(arguments)),arguments.length<=2){S=!0;for(var v,m=_.splice(0,_.length);v=m.shift();)Ga.apply(null,v)}},Ga.define=function(e,t,n){"string"!=typeof e&&(n=t,t=e,e="anonymous"),Array.isArray(t)||(n=t,t=[]);var r={built:!S,defineName:e},a=[t,n,r];n.require=function(e){if(a.splice(2,0,e),Ya[e]){Ya[e].state=3;var t=!1;try{t=o(Ya[e].deps,e)}catch(r){}t&&avalon.error(e+"模块与之前的模块存在循环依赖,请不要直接用script标签引入"+e+"模块")}delete n.require,Ga.apply(null,a)};var i=r.built?"unknown":d();if(i){var l=Ya[i];l&&(l.state=2),n.require(i)}else T.push(n)},Ga.config=h,Ga.define.amd=Ya;var O=h["orig.paths"]={},M=h["orig.map"]={},j=h.packages=[],L=h["orig.args"]={};avalon.mix(Pn,{paths:function(e){avalon.mix(O,e),h.paths=y(O)},map:function(e){avalon.mix(M,e);var t=y(M,1,1);avalon.each(t,function(e,t){t.val=y(t.val)}),h.map=t},packages:function(e){e=e.concat(j);for(var t,n={},r=[],a=0;t=e[a++];){t="string"==typeof t?{name:t}:t;var i=t.name;if(!n[i]){var o=C(t.location||i,t.main||"main");o=o.replace(E,""),r.push(t),n[i]=t.location=o,t.reg=g(i)}}h.packages=r.sort()},urlArgs:function(e){"string"==typeof e&&(e={"*":e}),avalon.mix(L,e),h.urlArgs=y(L,1)},baseUrl:function(e){if(!f(e)){var t=Wt.getElementsByTagName("base")[0];t&&Wt.removeChild(t);var n=zt.createElement("a");n.href=e,e=p(n,"href"),t&&Wt.insertBefore(t,Wt.firstChild)}e.length>3&&(h.baseUrl=e)},shim:function(e){for(var t in e){var n=e[t];Array.isArray(n)&&(n=e[t]={deps:n}),n.exportsFn||!n.exports&&!n.init||(n.exportsFn=b(n))}h.shim=e}});var D=/complete|loaded/,H=Ga.plugins={domReady:{load:r},js:{load:function(e,t,n){var r=t.url,a=t.urlNoQuery,i=h.shim[e.replace(E,"")];i?Ga(i.deps||[],function(){var e=avalon.slice(arguments);c(r,a,function(){n(i.exportsFn?i.exportsFn.apply(0,e):void 0)})}):c(r,a)}},css:{load:function(e,t,r){var a=t.url,i=zt.createElement("link");i.rel="stylesheet",i.href=a,Wt.insertBefore(i,Wt.firstChild),n("debug: 已成功加载 "+a),r()}},text:{load:function(e,t,r){var a=t.url,i=Da();i.onreadystatechange=function(){if(4===i.readyState){var e=i.status;e>399&&600>e?avalon.error(a+" 对应资源不存在或没有开启 CORS"):(n("debug: 已成功加载 "+a),r(i.responseText))}};var o="_="+(new Date-0),l=-1===a.indexOf("?")?a+"?"+o:a+"&"+o;i.open("GET",l,!0),"withCredentials"in i&&(i.withCredentials=!0),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.send(),n("debug: 正准备加载 "+a)}}};Ga.checkDeps=s;var P=/^callback\d+$/,F=/\/\w+\/\.\./,R=zt.scripts[zt.scripts.length-1],B=R.getAttribute("data-main");if(B){Pn.baseUrl(B);var q=h.baseUrl;h.baseUrl=q.slice(0,q.lastIndexOf("/")+1),c(q.replace(E,"")+".js")}else{var I=u(p(R,"src"));h.baseUrl=I.slice(0,I.lastIndexOf("/")+1)}};var Ka,Qa=[],ei=function(e){Ka=!0;var t=avalon.require;for(t&&t.checkDeps&&(Ya["domReady!"].state=4,t.checkDeps());e=Qa.shift();)e(avalon)};if("complete"===zt.readyState)setTimeout(ei);else if(ln)zt.addEventListener("DOMContentLoaded",ei);else{zt.attachEvent("onreadystatechange",function(){"complete"===zt.readyState&&ei()});try{var ti=null===e.frameElement}catch(Vn){}sn.doScroll&&ti&&e.external&&Vt()}avalon.bind(e,"load",ei),avalon.ready=function(e){Ka?e(avalon):Qa.push(e)},avalon.config({loader:!0}),avalon.ready(function(){avalon.scan(zt.body)}),"function"==typeof define&&define.amd&&define("avalon",[],function(){return avalon});var ni=e.avalon;return avalon.noConflict=function(t){return t&&e.avalon===avalon&&(e.avalon=ni),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.mobile.js 1.5.
|
8
|
+
avalon.mobile.js 1.5.6 built in 2015.12.1
|
9
9
|
mobile
|
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
|
})
|
@@ -5761,8 +5786,10 @@ function iOSversion() {
|
|
5761
5786
|
|
5762
5787
|
var deviceIsAndroid = ua.indexOf('android') > 0
|
5763
5788
|
var deviceIsIOS = iOSversion()
|
5764
|
-
|
5789
|
+
|
5790
|
+
var Recognizer = avalon.gestureHooks = {
|
5765
5791
|
pointers: {},
|
5792
|
+
//以AOP切入touchstart, touchmove, touchend, touchcancel回调
|
5766
5793
|
start: function (event, callback) {
|
5767
5794
|
|
5768
5795
|
//touches是当前屏幕上所有触摸点的列表;
|
@@ -5771,12 +5798,12 @@ var gestureHooks = avalon.gestureHooks = {
|
|
5771
5798
|
for (var i = 0; i < event.changedTouches.length; i++) {
|
5772
5799
|
var touch = event.changedTouches[i]
|
5773
5800
|
var pointer = {
|
5774
|
-
startTouch:
|
5801
|
+
startTouch: mixLocations({}, touch),
|
5775
5802
|
startTime: Date.now(),
|
5776
5803
|
status: 'tapping',
|
5777
5804
|
element: event.target
|
5778
5805
|
}
|
5779
|
-
|
5806
|
+
Recognizer.pointers[touch.identifier] = pointer;
|
5780
5807
|
callback(pointer, touch)
|
5781
5808
|
|
5782
5809
|
}
|
@@ -5784,7 +5811,7 @@ var gestureHooks = avalon.gestureHooks = {
|
|
5784
5811
|
move: function (event, callback) {
|
5785
5812
|
for (var i = 0; i < event.changedTouches.length; i++) {
|
5786
5813
|
var touch = event.changedTouches[i]
|
5787
|
-
var pointer =
|
5814
|
+
var pointer = Recognizer.pointers[touch.identifier]
|
5788
5815
|
if (!pointer) {
|
5789
5816
|
return
|
5790
5817
|
}
|
@@ -5807,9 +5834,8 @@ var gestureHooks = avalon.gestureHooks = {
|
|
5807
5834
|
pointer.duration = RECORD_DURATION - time
|
5808
5835
|
}
|
5809
5836
|
|
5810
|
-
|
5811
5837
|
pointer.duration += time;
|
5812
|
-
pointer.lastTouch =
|
5838
|
+
pointer.lastTouch = mixLocations({}, touch)
|
5813
5839
|
|
5814
5840
|
pointer.lastTime = Date.now()
|
5815
5841
|
|
@@ -5828,16 +5854,17 @@ var gestureHooks = avalon.gestureHooks = {
|
|
5828
5854
|
for (var i = 0; i < event.changedTouches.length; i++) {
|
5829
5855
|
var touch = event.changedTouches[i],
|
5830
5856
|
id = touch.identifier,
|
5831
|
-
pointer =
|
5857
|
+
pointer = Recognizer.pointers[id]
|
5832
5858
|
|
5833
5859
|
if (!pointer)
|
5834
5860
|
continue
|
5835
5861
|
|
5836
5862
|
callback(pointer, touch)
|
5837
5863
|
|
5838
|
-
delete
|
5864
|
+
delete Recognizer.pointers[id]
|
5839
5865
|
}
|
5840
5866
|
},
|
5867
|
+
//人工触发合成事件
|
5841
5868
|
fire: function (elem, type, props) {
|
5842
5869
|
if (elem) {
|
5843
5870
|
var event = document.createEvent('Events')
|
@@ -5846,13 +5873,14 @@ var gestureHooks = avalon.gestureHooks = {
|
|
5846
5873
|
elem.dispatchEvent(event)
|
5847
5874
|
}
|
5848
5875
|
},
|
5849
|
-
|
5876
|
+
//添加各种识别器
|
5877
|
+
add: function (name, recognizer) {
|
5850
5878
|
function move(event) {
|
5851
|
-
|
5879
|
+
recognizer.touchmove(event)
|
5852
5880
|
}
|
5853
5881
|
|
5854
5882
|
function end(event) {
|
5855
|
-
|
5883
|
+
recognizer.touchend(event)
|
5856
5884
|
|
5857
5885
|
document.removeEventListener('touchmove', move)
|
5858
5886
|
|
@@ -5863,7 +5891,7 @@ var gestureHooks = avalon.gestureHooks = {
|
|
5863
5891
|
}
|
5864
5892
|
|
5865
5893
|
function cancel(event) {
|
5866
|
-
|
5894
|
+
recognizer.touchcancel(event)
|
5867
5895
|
|
5868
5896
|
document.removeEventListener('touchmove', move)
|
5869
5897
|
|
@@ -5873,13 +5901,13 @@ var gestureHooks = avalon.gestureHooks = {
|
|
5873
5901
|
|
5874
5902
|
}
|
5875
5903
|
|
5876
|
-
|
5904
|
+
recognizer.events.forEach(function (eventName) {
|
5877
5905
|
avalon.eventHooks[eventName] = {
|
5878
5906
|
fn: function (el, fn) {
|
5879
5907
|
if (!el['touch-' + name]) {
|
5880
5908
|
el['touch-' + name] = '1'
|
5881
5909
|
el.addEventListener('touchstart', function (event) {
|
5882
|
-
|
5910
|
+
recognizer.touchstart(event)
|
5883
5911
|
|
5884
5912
|
document.addEventListener('touchmove', move)
|
5885
5913
|
|
@@ -5896,28 +5924,24 @@ var gestureHooks = avalon.gestureHooks = {
|
|
5896
5924
|
}
|
5897
5925
|
}
|
5898
5926
|
|
5899
|
-
|
5900
|
-
|
5901
|
-
var touchkeys = ['screenX', 'screenY', 'clientX', 'clientY', 'pageX', 'pageY']
|
5927
|
+
var locations = ['screenX', 'screenY', 'clientX', 'clientY', 'pageX', 'pageY']
|
5902
5928
|
|
5903
5929
|
// 复制 touch 对象上的有用属性到固定对象上
|
5904
|
-
function
|
5930
|
+
function mixLocations(target, source) {
|
5905
5931
|
if (source) {
|
5906
|
-
|
5932
|
+
locations.forEach(function (key) {
|
5907
5933
|
target[key] = source[key]
|
5908
5934
|
})
|
5909
5935
|
}
|
5910
5936
|
return target
|
5911
5937
|
}
|
5912
5938
|
|
5913
|
-
|
5914
|
-
|
5915
5939
|
var supportPointer = !!navigator.pointerEnabled || !!navigator.msPointerEnabled
|
5916
5940
|
|
5917
5941
|
if (supportPointer) { // 支持pointer的设备可用样式来取消click事件的300毫秒延迟
|
5918
5942
|
root.style.msTouchAction = root.style.touchAction = 'none'
|
5919
5943
|
}
|
5920
|
-
var
|
5944
|
+
var tapRecognizer = {
|
5921
5945
|
events: ['tap'],
|
5922
5946
|
touchBoundary: 10,
|
5923
5947
|
tapDelay: 200,
|
@@ -6026,11 +6050,11 @@ var tapGesture = {
|
|
6026
6050
|
}
|
6027
6051
|
},
|
6028
6052
|
touchHasMoved: function(event) {
|
6029
|
-
|
6053
|
+
//判定是否发生移动,其阀值是10px
|
6030
6054
|
var touch = event.changedTouches[0],
|
6031
|
-
boundary =
|
6032
|
-
return Math.abs(touch.pageX -
|
6033
|
-
Math.abs(touch.pageY -
|
6055
|
+
boundary = tapRecognizer.touchBoundary
|
6056
|
+
return Math.abs(touch.pageX - tapRecognizer.touchStartX) > boundary ||
|
6057
|
+
Math.abs(touch.pageY - tapRecognizer.touchStartY) > boundary
|
6034
6058
|
|
6035
6059
|
},
|
6036
6060
|
|
@@ -6041,7 +6065,7 @@ var tapGesture = {
|
|
6041
6065
|
},
|
6042
6066
|
sendClick: function(targetElement, event) {
|
6043
6067
|
// 在click之前触发tap事件
|
6044
|
-
|
6068
|
+
Recognizer.fire(targetElement, 'tap', {
|
6045
6069
|
touchEvent: event
|
6046
6070
|
})
|
6047
6071
|
var clickEvent, touch
|
@@ -6054,7 +6078,7 @@ var tapGesture = {
|
|
6054
6078
|
// 手动触发点击事件,此时必须使用document.createEvent('MouseEvents')来创建事件
|
6055
6079
|
// 及使用initMouseEvent来初始化它
|
6056
6080
|
clickEvent = document.createEvent('MouseEvents')
|
6057
|
-
clickEvent.initMouseEvent(
|
6081
|
+
clickEvent.initMouseEvent(tapRecognizer.findType(targetElement), true, true, window, 1, touch.screenX,
|
6058
6082
|
touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null)
|
6059
6083
|
clickEvent.touchEvent = event
|
6060
6084
|
targetElement.dispatchEvent(clickEvent)
|
@@ -6065,7 +6089,7 @@ var tapGesture = {
|
|
6065
6089
|
return true
|
6066
6090
|
}
|
6067
6091
|
//修正事件源对象
|
6068
|
-
var targetElement =
|
6092
|
+
var targetElement = tapRecognizer.fixTarget(event.target)
|
6069
6093
|
var touch = event.targetTouches[0]
|
6070
6094
|
if (deviceIsIOS) {
|
6071
6095
|
// 判断是否是点击文字,进行选择等操作,如果是,不需要模拟click
|
@@ -6075,73 +6099,73 @@ var tapGesture = {
|
|
6075
6099
|
}
|
6076
6100
|
var id = touch.identifier
|
6077
6101
|
//当 alert 或 confirm 时,点击其他地方,会触发touch事件,identifier相同,此事件应该被忽略
|
6078
|
-
if (id && isFinite(
|
6102
|
+
if (id && isFinite(tapRecognizer.lastTouchIdentifier) && tapRecognizer.lastTouchIdentifier === id) {
|
6079
6103
|
event.preventDefault()
|
6080
6104
|
return false
|
6081
6105
|
}
|
6082
6106
|
|
6083
|
-
|
6107
|
+
tapRecognizer.lastTouchIdentifier = id
|
6084
6108
|
|
6085
|
-
|
6109
|
+
tapRecognizer.updateScrollParent(targetElement)
|
6086
6110
|
}
|
6087
6111
|
//收集触摸点的信息
|
6088
|
-
|
6089
|
-
|
6090
|
-
|
6091
|
-
|
6092
|
-
|
6112
|
+
tapRecognizer.status = "tapping"
|
6113
|
+
tapRecognizer.startTime = Date.now()
|
6114
|
+
tapRecognizer.element = targetElement
|
6115
|
+
tapRecognizer.pageX = touch.pageX
|
6116
|
+
tapRecognizer.pageY = touch.pageY
|
6093
6117
|
// 如果点击太快,阻止双击带来的放大收缩行为
|
6094
|
-
if ((
|
6118
|
+
if ((tapRecognizer.startTime - tapRecognizer.lastTime) < tapRecognizer.tapDelay) {
|
6095
6119
|
event.preventDefault()
|
6096
6120
|
}
|
6097
6121
|
},
|
6098
6122
|
touchmove: function(event) {
|
6099
|
-
if (
|
6123
|
+
if (tapRecognizer.status !== "tapping") {
|
6100
6124
|
return true
|
6101
6125
|
}
|
6102
6126
|
// 如果事件源元素发生改变,或者发生了移动,那么就取消触发点击事件
|
6103
|
-
if (
|
6104
|
-
|
6105
|
-
|
6127
|
+
if (tapRecognizer.element !== tapRecognizer.fixTarget(event.target) ||
|
6128
|
+
tapRecognizer.touchHasMoved(event)) {
|
6129
|
+
tapRecognizer.status = tapRecognizer.element = 0
|
6106
6130
|
}
|
6107
6131
|
|
6108
6132
|
},
|
6109
6133
|
touchend: function(event) {
|
6110
|
-
var targetElement =
|
6134
|
+
var targetElement = tapRecognizer.element
|
6111
6135
|
var now = Date.now()
|
6112
6136
|
//如果是touchstart与touchend相隔太久,可以认为是长按,那么就直接返回
|
6113
6137
|
//或者是在touchstart, touchmove阶段,判定其不该触发点击事件,也直接返回
|
6114
|
-
if (!targetElement || now -
|
6138
|
+
if (!targetElement || now - tapRecognizer.startTime > tapRecognizer.tapDelay) {
|
6115
6139
|
return true
|
6116
6140
|
}
|
6117
6141
|
|
6118
6142
|
|
6119
|
-
|
6143
|
+
tapRecognizer.lastTime = now
|
6120
6144
|
|
6121
|
-
var startTime =
|
6122
|
-
|
6145
|
+
var startTime = tapRecognizer.startTime
|
6146
|
+
tapRecognizer.status = tapRecognizer.startTime = 0
|
6123
6147
|
|
6124
6148
|
targetTagName = targetElement.tagName.toLowerCase()
|
6125
6149
|
if (targetTagName === 'label') {
|
6126
6150
|
//尝试触发label上可能绑定的tap事件
|
6127
|
-
|
6151
|
+
Recognizer.fire(targetElement, 'tap', {
|
6128
6152
|
touchEvent: event
|
6129
6153
|
})
|
6130
|
-
var forElement =
|
6154
|
+
var forElement = tapRecognizer.findControl(targetElement)
|
6131
6155
|
if (forElement) {
|
6132
|
-
|
6156
|
+
tapRecognizer.focus(targetElement)
|
6133
6157
|
targetElement = forElement
|
6134
6158
|
}
|
6135
|
-
} else if (
|
6159
|
+
} else if (tapRecognizer.needFocus(targetElement)) {
|
6136
6160
|
// 如果元素从touchstart到touchend经历时间过长,那么不应该触发点击事
|
6137
6161
|
// 或者此元素是iframe中的input元素,那么它也无法获点焦点
|
6138
6162
|
if ((now - startTime) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {
|
6139
|
-
|
6163
|
+
tapRecognizer.element = 0
|
6140
6164
|
return false
|
6141
6165
|
}
|
6142
6166
|
|
6143
|
-
|
6144
|
-
deviceIsAndroid &&
|
6167
|
+
tapRecognizer.focus(targetElement)
|
6168
|
+
deviceIsAndroid && tapRecognizer.sendClick(targetElement, event)
|
6145
6169
|
|
6146
6170
|
return false
|
6147
6171
|
}
|
@@ -6154,36 +6178,35 @@ var tapGesture = {
|
|
6154
6178
|
}
|
6155
6179
|
}
|
6156
6180
|
//如果这不是一个需要使用原生click的元素,则屏蔽原生事件,避免触发两次click
|
6157
|
-
if (!
|
6181
|
+
if (!tapRecognizer.needClick(targetElement)) {
|
6158
6182
|
event.preventDefault()
|
6159
6183
|
// 触发一次模拟的click
|
6160
|
-
|
6184
|
+
tapRecognizer.sendClick(targetElement, event)
|
6161
6185
|
}
|
6162
6186
|
},
|
6163
6187
|
touchcancel: function() {
|
6164
|
-
|
6188
|
+
tapRecognizer.startTime = tapRecognizer.element = 0
|
6165
6189
|
}
|
6166
6190
|
}
|
6167
6191
|
|
6168
|
-
|
6169
|
-
|
6192
|
+
Recognizer.add("tap", tapRecognizer)
|
6170
6193
|
|
6171
|
-
var
|
6194
|
+
var pressRecognizer = {
|
6172
6195
|
events: ['longtap', 'doubletap'],
|
6173
6196
|
cancelPress: function (pointer) {
|
6174
6197
|
clearTimeout(pointer.pressingHandler)
|
6175
6198
|
pointer.pressingHandler = null
|
6176
6199
|
},
|
6177
6200
|
touchstart: function (event) {
|
6178
|
-
|
6201
|
+
Recognizer.start(event, function (pointer, touch) {
|
6179
6202
|
pointer.pressingHandler = setTimeout(function () {
|
6180
6203
|
if (pointer.status === 'tapping') {
|
6181
|
-
|
6204
|
+
Recognizer.fire(event.target, 'longtap', {
|
6182
6205
|
touch: touch,
|
6183
6206
|
touchEvent: event
|
6184
6207
|
})
|
6185
6208
|
}
|
6186
|
-
|
6209
|
+
pressRecognizer.cancelPress(pointer)
|
6187
6210
|
}, 500)
|
6188
6211
|
if (event.changedTouches.length !== 1) {
|
6189
6212
|
pointer.status = 0
|
@@ -6192,9 +6215,9 @@ var pressGesture = {
|
|
6192
6215
|
|
6193
6216
|
},
|
6194
6217
|
touchmove: function (event) {
|
6195
|
-
|
6218
|
+
Recognizer.move(event, function (pointer) {
|
6196
6219
|
if (pointer.distance > 10 && pointer.pressingHandler) {
|
6197
|
-
|
6220
|
+
pressRecognizer.cancelPress(pointer)
|
6198
6221
|
if (pointer.status === 'tapping') {
|
6199
6222
|
pointer.status = 'panning'
|
6200
6223
|
}
|
@@ -6202,62 +6225,58 @@ var pressGesture = {
|
|
6202
6225
|
})
|
6203
6226
|
},
|
6204
6227
|
touchend: function (event) {
|
6205
|
-
|
6206
|
-
|
6228
|
+
Recognizer.end(event, function (pointer, touch) {
|
6229
|
+
pressRecognizer.cancelPress(pointer)
|
6207
6230
|
if (pointer.status === 'tapping') {
|
6208
6231
|
pointer.lastTime = Date.now()
|
6209
|
-
if (
|
6210
|
-
|
6232
|
+
if (pressRecognizer.lastTap && pointer.lastTime - pressRecognizer.lastTap.lastTime < 300) {
|
6233
|
+
Recognizer.fire(pointer.element, 'doubletap', {
|
6211
6234
|
touch: touch,
|
6212
6235
|
touchEvent: event
|
6213
6236
|
})
|
6214
6237
|
}
|
6215
6238
|
|
6216
|
-
|
6239
|
+
pressRecognizer.lastTap = pointer
|
6217
6240
|
}
|
6218
6241
|
})
|
6219
6242
|
|
6220
6243
|
},
|
6221
6244
|
touchcancel: function (event) {
|
6222
|
-
|
6223
|
-
|
6245
|
+
Recognizer.end(event, function (pointer) {
|
6246
|
+
pressRecognizer.cancelPress(pointer)
|
6224
6247
|
})
|
6225
6248
|
}
|
6226
6249
|
}
|
6227
|
-
|
6250
|
+
Recognizer.add('press', pressRecognizer)
|
6228
6251
|
|
6229
|
-
var
|
6252
|
+
var swipeRecognizer = {
|
6230
6253
|
events: ['swipe', 'swipeleft', 'swiperight', 'swipeup', 'swipedown'],
|
6231
|
-
getAngle: function (x, y) {
|
6232
|
-
|
6233
|
-
var angle = Math.round(r * 180 / Math.PI) //degrees
|
6234
|
-
return angle < 0 ? 360 - Math.abs(angle) : angle
|
6254
|
+
getAngle: function (x, y ) {
|
6255
|
+
return Math.atan2(y, x) * 180 / Math.PI
|
6235
6256
|
},
|
6236
6257
|
getDirection: function (x, y) {
|
6237
|
-
var angle =
|
6238
|
-
if ((angle
|
6239
|
-
return "left"
|
6240
|
-
} else if ((angle <= 360) && (angle >= 315)) {
|
6241
|
-
return "left"
|
6242
|
-
} else if ((angle >= 135) && (angle <= 225)) {
|
6243
|
-
return "right"
|
6244
|
-
} else if ((angle > 45) && (angle < 135)) {
|
6245
|
-
return "down"
|
6246
|
-
} else {
|
6258
|
+
var angle = swipeRecognizer.getAngle(x, y)
|
6259
|
+
if ((angle < -45) && (angle > -135)) {
|
6247
6260
|
return "up"
|
6261
|
+
} else if ((angle >= 45) && (angle < 315)) {
|
6262
|
+
return "down"
|
6263
|
+
} else if ((angle > -45) && (angle <= 45)) {
|
6264
|
+
return "right"
|
6265
|
+
} else{
|
6266
|
+
return "left"
|
6248
6267
|
}
|
6249
6268
|
},
|
6250
6269
|
touchstart: function (event) {
|
6251
|
-
|
6270
|
+
Recognizer.start(event, noop)
|
6252
6271
|
},
|
6253
6272
|
touchmove: function (event) {
|
6254
|
-
|
6273
|
+
Recognizer.move(event, noop)
|
6255
6274
|
},
|
6256
6275
|
touchend: function (event) {
|
6257
6276
|
if(event.changedTouches.length !== 1){
|
6258
6277
|
return
|
6259
6278
|
}
|
6260
|
-
|
6279
|
+
Recognizer.end(event, function (pointer, touch) {
|
6261
6280
|
var isflick = (pointer.distance > 30 && pointer.distance / pointer.duration > 0.65)
|
6262
6281
|
if (isflick) {
|
6263
6282
|
var extra = {
|
@@ -6265,20 +6284,19 @@ var swipeGesture = {
|
|
6265
6284
|
deltaY: pointer.deltaY,
|
6266
6285
|
touch: touch,
|
6267
6286
|
touchEvent: event,
|
6268
|
-
direction:
|
6287
|
+
direction: swipeRecognizer.getDirection(pointer.deltaX, pointer.deltaY),
|
6269
6288
|
isVertical: pointer.isVertical
|
6270
6289
|
}
|
6271
6290
|
var target = pointer.element
|
6272
|
-
|
6273
|
-
|
6291
|
+
Recognizer.fire(target, 'swipe', extra)
|
6292
|
+
Recognizer.fire(target, 'swipe' + extra.direction, extra)
|
6274
6293
|
}
|
6275
6294
|
})
|
6276
6295
|
}
|
6277
6296
|
}
|
6278
6297
|
|
6279
|
-
|
6280
|
-
|
6281
|
-
|
6298
|
+
swipeRecognizer.touchcancel = swipeRecognizer.touchend
|
6299
|
+
Recognizer.add('swipe', swipeRecognizer)
|
6282
6300
|
|
6283
6301
|
|
6284
6302
|
// Register as a named AMD module, since avalon can be concatenated with other
|