diff --git a/API-ax5-mustache.md b/API-ax5-mustache.md new file mode 100644 index 0000000..3e444a3 --- /dev/null +++ b/API-ax5-mustache.md @@ -0,0 +1,82 @@ +# ax5.mustache + +> "ax5.mustache" is a modified version of the in the "https://github.com/janl/mustache.js", some of the syntax. + +## ax5.mustache.render +`ax5.mustache.render(tmpl, view)` + +```js +var view = { + title: "Joe", + calc: function () { + return 2 + 4; + } +}; + +var output = ax5.mustache.render("{{title}} spends {{calc}}", view); +``` +Please refer to the `mustache` API is about the template. +this version added only a few of the key and function in the `mustache`. +[Mustache API](https://github.com/janl/mustache.js/blob/master/README.md) +You can use all of the API of `mustache` in the same way. I will introduce the features added in the `ax5.mustache` below. + + +## Array + +View: +```js +{ + "beatles": [ + { "firstName": "John", "lastName": "Lennon" }, + { "firstName": "Paul", "lastName": "McCartney" }, + { "firstName": "George", "lastName": "Harrison" }, + { "firstName": "Ringo", "lastName": "Star" } + ] +} +``` + +Template: +``` +{{#beatles}} +* {{firstName}} {{lastName}} ({{@i}}) ({{@first}}) +{{/beatles}} +``` + +Output: +``` +* John Lennon (0) (true) +* Paul McCartney (1) (false) +* George Harrison (2) (false) +* Ringo Star (3) (false) +``` + +## Object.getEach + +View: +```js +{ + "beatles": { + "John": {"firstName": "John", "lastName": "Lennon"}, + "Paul": {"firstName": "Paul", "lastName": "McCartney"}, + "George": {"firstName": "George", "lastName": "Harrison"}, + "Ringo": {"firstName": "Ringo", "lastName": "Star"} + } +} +``` + +Template: +``` +{{#beatles}} + {{#getEach}} + * {{@key}} : {{@value.firstName}} {{@value.lastName}} + {{/getEach}} +{{/beatles}} +``` + +Output: +``` +* John : John Lennon +* Paul : Paul McCartney +* George : George Harrison +* Ringo : Ringo Star +``` \ No newline at end of file diff --git a/bower.json b/bower.json index e2066a3..fa7c47b 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "ax5core", - "version": "0.8.0", + "version": "0.9.0", "authors": [ "ThomasJ " ], diff --git a/dist/ax5core.js b/dist/ax5core.js old mode 100755 new mode 100644 index d667620..5d7cf3e --- a/dist/ax5core.js +++ b/dist/ax5core.js @@ -2424,7 +2424,16 @@ ax5.ui = (function (core) { */ function Context(view, parentContext) { this.view = view; - this.cache = {'.': this.view}; + this.cache = { + '.': this.view, + 'getEach': function () { + var returns = []; + for (var k in this) { + returns.push({'@key': k, '@value': this[k]}); + } + return returns; + } + }; this.parent = parentContext; } @@ -2550,7 +2559,6 @@ ax5.ui = (function (core) { */ Writer.prototype.renderTokens = function renderTokens(tokens, context, partials, originalTemplate) { var buffer = ''; - var token, symbol, value; for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) { value = undefined; @@ -2587,8 +2595,8 @@ ax5.ui = (function (core) { if (isArray(value)) { for (var j = 0, valueLength = value.length; j < valueLength; ++j) { - value[j].__i__ = j; - value[j].__first__ = (j === 0); + value[j]['@i'] = j; + value[j]['@first'] = (j === 0); buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate); } } diff --git a/dist/ax5core.min.js b/dist/ax5core.min.js old mode 100755 new mode 100644 index cf65932..850f443 --- a/dist/ax5core.min.js +++ b/dist/ax5core.min.js @@ -1 +1 @@ -(function(){"use strict";var e,t,n,r=this,o=window,i=document,a=(document.documentElement,/^(["'](\\.|[^"\\\n\r])*?["']|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/),u=/^-ms-/,s=/[\-_]([\da-z])/gi,l=/([A-Z])/g,c=/\./,f=/[-|+]?[\D]/gi,p=/\D/gi,d=new RegExp("([0-9])([0-9][0-9][0-9][,.])"),h=/&/g,g=/=/,m=/[ ]+/g,y={};y.guid=1,y.getGuid=function(){return y.guid++},y.info=e=function(){function n(e,n){return e={href:o.location.href,param:o.location.search,referrer:i.referrer,pathname:o.location.pathname,hostname:o.location.hostname,port:o.location.port},n=e.href.split(/[\?#]/),e.param=e.param.replace("?",""),e.url=n[0],e.href.search("#")>-1&&(e.hashdata=t.last(n)),n=null,e.baseUrl=t.left(e.href,"?").replace(e.pathname,""),e}function r(t,n,r){return e.errorMsg&&e.errorMsg[t]?{className:t,errorCode:n,methodName:r,msg:e.errorMsg[t][n]}:{className:t,errorCode:n,methodName:r}}var a="0.0.1",u="",s=function(){console.error(t.toArray(arguments).join(":"))},l={BACKSPACE:8,TAB:9,RETURN:13,ESC:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46,HOME:36,END:35,PAGEUP:33,PAGEDOWN:34,INSERT:45,SPACE:32},c=[{label:"SUN"},{label:"MON"},{label:"TUE"},{label:"WED"},{label:"THU"},{label:"FRI"},{label:"SAT"}],f=function(e,t,n,r,o,i){return e=navigator.userAgent.toLowerCase(),t=-1!=e.search(/mobile/g),i,-1!=e.search(/iphone/g)?{name:"iphone",version:0,mobile:!0}:-1!=e.search(/ipad/g)?{name:"ipad",version:0,mobile:!0}:-1!=e.search(/android/g)?(r=/(android)[ \/]([\w.]+)/.exec(e)||[],i=r[2]||"0",{name:"android",version:i,mobile:t}):(n="",r=/(opr)[ \/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[],o=r[1]||"",i=r[2]||"0","msie"==o&&(o="ie"),{name:o,version:i,mobile:t})}(),p=!("undefined"==typeof window||"undefined"==typeof navigator||!o.document),d=/Firefox/i.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel",h={ax5dialog:{501:"Duplicate call error"},ax5picker:{401:"Can not find target element",501:"Duplicate call error"},"single-uploader":{460:"There are no files to be uploaded.",461:"There is no uploaded files."},ax5calendar:{401:"Can not find target element"}};return{errorMsg:h,version:a,baseUrl:u,onerror:s,eventKeys:l,weekNames:c,browser:f,isBrowser:p,wheelEnm:d,urlUtil:n,getError:r}}(),y.util=t=function(){function t(e,t){if(R(e))return[];var n,r=0,o=e.length,i=void 0===o||"function"==typeof e;if(i){for(n in e)if("undefined"!=typeof e[n]&&t.call(e[n],n,e[n])===!1)break}else for(;o>r&&("undefined"==typeof e[r]||t.call(e[r],r,e[r++])!==!1););return e}function b(e,t){if(R(e))return[];var n,r,o=0,i=e.length,a=[];if(O(e)){for(n in e)if("undefined"!=typeof e[n]){if(r=void 0,(r=t.call(e[n],n,e[n]))===!1)break;a.push(r)}}else for(;i>o;)if("undefined"!=typeof e[o]){if(r=void 0,(r=t.call(e[o],o,e[o++]))===!1)break;a.push(r)}return a}function v(e,t){if(R(e))return-1;var n,r=0,o=e.length;if(O(e))for(n in e){if("undefined"!=typeof e[n]&&A(t)&&t.call(e[n],n,e[n]))return n;if(e[n]==t)return n}else for(;o>r;){if("undefined"!=typeof e[r]&&A(t)&&t.call(e[r],r,e[r]))return r;if(e[r]==t)return r;r++}return-1}function w(e,t){var n,o,i;if(S(e)){for(n=0,o=e.length,i=e[n];o-1>n&&("undefined"==typeof e[n]||(i=t.call(r,i,e[++n]))!==!1););return i}if(O(e)){for(n in e)if("undefined"!=typeof e[n]&&(i=t.call(r,i,e[n]))===!1)break;return i}return console.error("argument error : ax5.util.reduce - use Array or Object"),null}function T(e,t){for(var n=e.length-1,o=e[n];n>0&&("undefined"==typeof e[n]||(o=t.call(r,o,e[--n]))!==!1););return o}function x(e,t){if(R(e))return[];var n,r,o=0,i=e.length,a=[];if(O(e))for(n in e)"undefined"!=typeof e[n]&&(r=t.call(e[n],n,e[n]))&&a.push(e[n]);else for(;i>o;)"undefined"!=typeof e[o]&&((r=t.call(e[o],o,e[o]))&&a.push(e[o]),o++);return a}function E(e){var n="";if(y.util.isArray(e)){var r=0,o=e.length;for(n+="[";o>r;r++)r>0&&(n+=","),n+=E(e[r]);n+="]"}else if(y.util.isObject(e)){n+="{";var i=[];t(e,function(e,t){i.push('"'+e+'": '+E(t))}),n+=i.join(", "),n+="}"}else y.util.isString(e)?n='"'+e+'"':y.util.isNumber(e)?n=e:y.util.isUndefined(e)?n="undefined":y.util.isFunction(e)&&(n='"{Function}"');return n}function D(e,t){if(!t&&!a.test(e))return{error:500,msg:"syntax error"};try{return new Function("","return "+e)()}catch(n){return{error:500,msg:"syntax error"}}}function N(e){var t;return null!=e&&e==e.window?t="window":e&&1==e.nodeType?t="element":e&&11==e.nodeType?t="fragment":"undefined"==typeof e?t="undefined":"[object Object]"==le.call(e)?t="object":"[object Array]"==le.call(e)?t="array":"[object String]"==le.call(e)?t="string":"[object Number]"==le.call(e)?t="number":"[object NodeList]"==le.call(e)?t="nodelist":"function"==typeof e&&(t="function"),t}function k(e){return null!=e&&e==e.window}function j(e){return!(!e||1!=e.nodeType&&11!=e.nodeType)}function O(e){return"[object Object]"==le.call(e)}function S(e){return"[object Array]"==le.call(e)}function A(e){return"function"==typeof e}function U(e){return"[object String]"==le.call(e)}function C(e){return"[object Number]"==le.call(e)}function M(e){return"[object NodeList]"==le.call(e)||e&&e[0]&&1==e[0].nodeType}function F(e){return"undefined"==typeof e}function R(e){return"undefined"==typeof e||null===e||""===e}function P(e){return e instanceof Date&&!isNaN(e.valueOf())}function _(e){var t=!1;if(e){if(e instanceof Date&&!isNaN(e.valueOf()))t=!0;else if(e=e.replace(/\D/g,""),e.length>7){var n=e.substr(4,2),r=e.substr(6,2);e=ee(e),e.getMonth()==n-1&&e.getDate()==r&&(t=!0)}}else;return t}function $(e){if(O(e)){var t=Object.keys(e),n={};return n[t[0]]=e[t[0]],n}return S(e)?e[0]:void console.error("ax5.util.object.first","argument type error")}function I(e){if(O(e)){var t=Object.keys(e),n={};return n[t[t.length-1]]=e[t[t.length-1]],n}return S(e)?e[e.length-1]:void console.error("ax5.util.object.last","argument type error")}function Y(e,t,n,r){var o;return"number"==typeof n&&(o=new Date,o.setDate(o.getDate()+n)),r=r||{},i.cookie=[escape(e),"=",escape(t),o?"; expires="+o.toUTCString():"",r.path?"; path="+r.path:"",r.domain?"; domain="+r.domain:"",r.secure?"; secure":""].join("")}function z(e){for(var t=e+"=",n=i.cookie.split(";"),r=0,o=n.length;o>r;r++){for(var a=n[r];" "==a.charAt(0);)a=a.substring(1);if(-1!=a.indexOf(t))return unescape(a.substring(t.length,a.length))}return""}function W(t,r,o){for(var a,u,s=i.head||i.getElementsByTagName("head")[0],l=e.isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,c=t.length,f=[],p={},d=!1,h=n.get("script[src]"),g=(n.get("style[href]"),function(){1>c&&0==f.length&&!d&&(r&&r({}),d=!0)}),m=function(){1>c&&f.length>0&&!d&&(console.error(f),o&&o({type:"loadFail",list:f}),d=!0)},b=0,v=t.length;v>b;b++){for(var w,T,x,E=t[b],D=L(E,"."),N=!1,k=e.baseUrl+E,j="js"===D?"src":"href",O=h.length;O--;)if(h[O].getAttribute(j)===k){N=!0;break}N?(c--,g()):(w="js"===D?n.create("script",{type:"text/javascript",src:k,"data-src":k}):n.create("link",{rel:"stylesheet",type:"text/css",href:k}),T=function(e,t){e&&("load"===e.type||l.test((e.currentTarget||e.srcElement).readyState))&&(p[t]||c--,a&&clearTimeout(a),a=setTimeout(g,1))},x=function(t){c--,f.push({src:e.baseUrl+E,error:t}),u&&clearTimeout(u),u=setTimeout(m,1)},y.xhr({url:k,contentType:"",res:function(e,t){for(var r,o=!1,i=n.get("script[src]"),a=i.length;a--;)if(i[a].getAttribute(j)===k){o=!0;break}o||s.appendChild(w),w.onload=function(e){T(e,k),r&&clearTimeout(r)},r=setTimeout(function(){T({type:"load"},k)},500)},error:function(){x(this)}}))}}function B(e){return o.alert(E(e)),e}function H(e,t){return"undefined"==typeof e||"undefined"==typeof t?"":U(t)?e.indexOf(t)>-1?e.substr(0,e.indexOf(t)):e:C(t)?e.substr(0,t):""}function L(e,t){return"undefined"==typeof e||"undefined"==typeof t?"":(e=""+e,U(t)?e.lastIndexOf(t)>-1?e.substr(e.lastIndexOf(t)+1):e:C(t)?e.substr(e.length-t):"")}function q(e){return e.replace(u,"ms-").replace(s,function(e,t){return t.toUpperCase()})}function V(e){return q(e).replace(l,function(e,t){return"-"+t.toLowerCase()})}function G(e,n){var r,o=(""+e).split(c),i=Number(o[0])<0||"-0"==o[0],a=0;return o[0]=o[0].replace(f,""),o[1]?(o[1]=o[1].replace(p,""),a=Number(o[0]+"."+o[1])||0):a=Number(o[0])||0,r=i?-a:a,t(n,function(e,t){"round"==e&&(r=C(t)?0>t?+(Math.round(r+"e-"+Math.abs(t))+"e+"+Math.abs(t)):+(Math.round(r+"e+"+t)+"e-"+t):Math.round(r)),"floor"==e&&(r=Math.floor(r)),"ceil"==e?r=Math.ceil(r):"money"==e?r=function(e){var t=""+e;if(isNaN(t)||""==t)return"";var n=t.split(".");n[0]+=".";do n[0]=n[0].replace(d,"$1,$2");while(d.test(n[0]));return n.length>1?n.join(""):n[0].split(".")[0]}(r):"abs"==e?r=Math.abs(Number(r)):"byte"==e&&(r=function(e){e=Number(r);var t="KB",n=e/1024;return n/1024>1&&(t="MB",n/=1024),n/1024>1&&(t="GB",n/=1024),G(n,{round:1})+t}(r))}),r}function J(e){return"undefined"!=typeof e.length?Array.prototype.slice.call(e):[]}function K(e,t){var n=t.length,r=e.length,o=0;if("number"==typeof n)for(;n>o;o++)e[r++]=t[o];else for(;void 0!==t[o];)e[r++]=t[o++];return e.length=r,e}function X(e,n){var r;return U(e)&&"undefined"!=typeof n&&"param"==n?e:U(e)&&"undefined"!=typeof n&&"object"==n||U(e)&&"undefined"==typeof n?(r={},t(e.split(h),function(){var e=this.split(g);r[e[0]]=e[1]}),r):(r=[],t(e,function(e,t){r.push(e+"="+escape(t))}),r.join("&"))}function Q(){y.info.onerror.apply(this,arguments)}function Z(e,t,n,r,o,i){var a,u;return u=new Date,"undefined"==typeof r&&(r=23),"undefined"==typeof o&&(o=59),a=new Date(Date.UTC(e,t,n||1,r,o,i||0)),0==t&&1==n&&a.getUTCHours()+a.getTimezoneOffset()/60<0?a.setUTCHours(0):a.setUTCHours(a.getUTCHours()+a.getTimezoneOffset()/60),a}function ee(t,n){var r,o,i,a,u,s,l,c,f,p;if(U(t))if(0==t.length)t=new Date;else if(t.length>15)s=t.split(/ /g),f=s[0].split(/\D/g),r=f[0],o=parseFloat(f[1]),i=parseFloat(f[2]),c=s[1]||"09:00",l=c.left(5).split(":"),a=parseFloat(l[0]),u=parseFloat(l[1]),("AM"===c.right(2)||"PM"===c.right(2))&&(a+=12),t=Z(r,o-1,i,a,u);else if(14==t.length)p=t.replace(/\D/g,""),t=Z(p.substr(0,4),p.substr(4,2)-1,G(p.substr(6,2)),G(p.substr(8,2)),G(p.substr(10,2)),G(p.substr(12,2)));else if(t.length>7)p=t.replace(/\D/g,""),t=Z(p.substr(0,4),p.substr(4,2)-1,G(p.substr(6,2)));else if(t.length>4)p=t.replace(/\D/g,""),t=Z(p.substr(0,4),p.substr(4,2)-1,1);else{if(t.length>2)return p=t.replace(/\D/g,""),Z(p.substr(0,4),p.substr(4,2)-1,1);t=new Date}return"undefined"==typeof n?t:(n.add&&(t=function(e,t){var n,r,o,i,a=864e5;return"undefined"!=typeof t.d?e.setTime(e.getTime()+t.d*a):"undefined"!=typeof t.m?(n=e.getFullYear(),r=e.getMonth(),o=e.getDate(),n+=parseInt(t.m/12),r+=t.m%12,i=re(n,r),o>i&&(o=i),e=new Date(n,r,o,12)):"undefined"!=typeof t.y?e.setTime(e.getTime()+365*t.y*a):e.setTime(e.getTime()+t.y*a),e}(new Date(t),n.add)),n["return"]?function(){var r,o,i,a,u,s,l,c=n["return"];r=t.getUTCFullYear(),o=oe(t.getMonth()+1,2),i=oe(t.getDate(),2),a=oe(t.getHours(),2),u=oe(t.getMinutes(),2),s=oe(t.getSeconds(),2),l=t.getDay();var f=/[^y]*(yyyy)[^y]*/gi;f.exec(c);var p=RegExp.$1,d=/[^m]*(mm)[^m]*/gi;d.exec(c);var h=RegExp.$1,g=/[^d]*(dd)[^d]*/gi;g.exec(c);var m=RegExp.$1,y=/[^h]*(hh)[^h]*/gi;y.exec(c);var b=RegExp.$1,v=/[^m]*(mi)[^i]*/gi;v.exec(c);var w=RegExp.$1,T=/[^s]*(ss)[^s]*/gi;T.exec(c);var x=RegExp.$1,E=/[^d]*(dw)[^w]*/gi;E.exec(c);var D=RegExp.$1;return"yyyy"===p&&(c=c.replace(p,L(r,p.length))),"mm"===h&&(1==h.length&&(o=t.getMonth()+1),c=c.replace(h,o)),"dd"===m&&(1==m.length&&(i=t.getDate()),c=c.replace(m,i)),"hh"===b&&(c=c.replace(b,a)),"mi"===w&&(c=c.replace(w,u)),"ss"===x&&(c=c.replace(x,s)),"dw"==D&&(c=c.replace(D,e.weekNames[l].label)),c}():t)}function te(e,t){function n(e){return Math.floor(e.getTime()/a)*a}var r,o,i=ee(e),a=864e5,u=new Date;return"undefined"==typeof t?r=G((n(i)-n(u))/a,{floor:!0}):(r=G((n(i)-n(u))/a,{floor:!0}),t.today&&(u=ee(t.today),r=G((n(i)-n(u))/a,{floor:!0})),t.thisYear&&(o=new Date(u.getFullYear(),i.getMonth(),i.getDate()),r=G((n(o)-n(u))/a,{floor:!0}),0>r&&(o=new Date(u.getFullYear()+1,i.getMonth(),i.getDate()),r=G((n(o)-n(u))/a,{floor:!0}))),t.age&&(o=new Date(u.getFullYear(),i.getMonth(),i.getDate()),r=o.getFullYear()-i.getFullYear()),r)}function ne(e){var t=ee(e);return{year:t.getFullYear(),month:t.getMonth()+1,count:parseInt(t.getDate()/7+1)}}function re(e,t){return 3==t||5==t||8==t||10==t?30:1==t?e%4==0&&e%100!=0||e%400==0?29:28:31}function oe(e,t,n,r){var o=e.toString(r||10);return ie(n||"0",t-o.length)+o}function ie(e,t){return 1>t?"":new Array(t+1).join(e)}function ae(e,t){if(e)for(;function(){var n=!0;if("undefined"==typeof t)e=e.parentNode?e.parentNode:!1;else if(A(t))n=t(e);else if(O(t))for(var r in t)if("tagname"===r){if(e.tagName.toLocaleLowerCase()!=t[r]){n=!1;break}}else if("clazz"===r||"class_name"===r){if(!("className"in e)){n=!1;break}for(var o=e.className.split(m),i=!1,a=0;aa;a++)e.call(o,n[a])&&u.push(n[a]);return u}}()),Array.prototype.forEach||(Array.prototype.forEach=function(e){if(void 0===this||null===this)throw TypeError();var t=Object(this),n=t.length>>>0;if("function"!=typeof e)throw TypeError();var r,o=arguments[1];for(r=0;n>r;r++)r in t&&e.call(o,t[r],r,t)}),Function.prototype.bind||(Function.prototype.bind=function(e){function t(){}if("function"!=typeof this)throw TypeError("function");var n=[].slice,r=n.call(arguments,1),o=this,i=function(){return o.apply(this instanceof t?this:e,r.concat(n.call(arguments)))};return t.prototype=o.prototype,i.prototype=new t,i}),function(){if(!document.querySelectorAll&&!document.querySelector&&document.createStyleSheet){var e=document.createStyleSheet(),t=function(t,n){var r,o=document.all,i=o.length,a=[];for(e.addRule(t,"foo:bar"),r=0;i>r&&!("bar"===o[r].currentStyle.foo&&(a.push(o[r]),a.length>n));r+=1);return e.removeRule(0),a};document.querySelectorAll=function(e){return t(e,1/0)},document.querySelector=function(e){return t(e,1)[0]||null}}}(),String.prototype.trim||!function(){String.prototype.trim=function(){return this.replace(t,"")}}(),window.JSON||(window.JSON={parse:function(e){return new Function("","return "+e)()},stringify:function(){var e,t=/["]/g;return e=function(n){var r,o,i;switch(r=typeof n){case"string":return'"'+n.replace(t,'\\"')+'"';case"number":case"boolean":return n.toString();case"undefined":return"undefined";case"function":return'""';case"object":if(!n)return"null";if(r="",n.splice){for(o=0,i=n.length;i>o;o++)r+=","+e(n[o]);return"["+r.substr(1)+"]"}for(o in n)n.hasOwnProperty(o)&&void 0!==n[o]&&"function"!=typeof n[o]&&(r+=',"'+o+'":'+e(n[o]));return"{"+r.substr(1)+"}"}}}()}),function(e){for(var t,n,r={},o=function(){},i="memory".split(","),a="assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(",");t=i.pop();)e[t]=e[t]||r;for(;n=a.pop();)e[n]=e[n]||o}(e.console=e.console||{});var n=document.getElementsByTagName("html")[0];document.getElementsByTagName("body")[0];window.innerWidth||(window.innerWidth=n.clientWidth),window.innerHeight||(window.innerHeight=n.clientHeight),window.scrollX||(window.scrollX=window.pageXOffset||n.scrollLeft),window.scrollY||(window.scrollY=window.pageYOffset||n.scrollTop)}.call(this),ax5.ui=function(e){function t(){this.config={},this.name="root",this.setConfig=function(e,t){return jQuery.extend(!0,this.config,e,!0),("undefined"==typeof t||t===!0)&&this.init(),this},this.init=function(){console.log(this.config)},this.bindWindowResize=function(e){setTimeout(function(){jQuery(window).resize(function(){this.bindWindowResize__&&clearTimeout(this.bindWindowResize__),this.bindWindowResize__=setTimeout(function(){e.call(this)}.bind(this),10)}.bind(this))}.bind(this),100)},this.stopEvent=function(e){return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,!1},this.main=function(){}.apply(this,arguments)}return{root:t}}(ax5),function(e,t){t(e.mustache={})}(window.ax5,function(e){function t(e){return"function"==typeof e}function n(e){return g(e)?"array":typeof e}function r(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function o(e,t){return null!=e&&"object"==typeof e&&t in e}function i(e,t){return m.call(e,t)}function a(e){return!i(y,e)}function u(e){return String(e).replace(/[&<>"'\/]/g,function(e){return b[e]})}function s(t,n){function o(){if(y&&!b)for(;m.length;)delete h[m.pop()];else m=[];y=!1,b=!1}function i(e){if("string"==typeof e&&(e=e.split(w,2)),!g(e)||2!==e.length)throw new Error("Invalid tags: "+e);u=new RegExp(r(e[0])+"\\s*"),s=new RegExp("\\s*"+r(e[1])),p=new RegExp("\\s*"+r("}"+e[1]))}if(!t)return[];var u,s,p,d=[],h=[],m=[],y=!1,b=!1;i(n||e.tags);for(var D,N,k,j,O,S,A=new f(t);!A.eos();){if(D=A.pos,k=A.scanUntil(u))for(var U=0,C=k.length;C>U;++U)j=k.charAt(U),a(j)?m.push(h.length):b=!0,h.push(["text",j,D,D+1]),D+=1,"\n"===j&&o();if(!A.scan(u))break;if(y=!0,N=A.scan(E)||"name",A.scan(v),"="===N?(k=A.scanUntil(T),A.scan(T),A.scanUntil(s)):"{"===N?(k=A.scanUntil(p),A.scan(x),A.scanUntil(s),N="&"):k=A.scanUntil(s),!A.scan(s))throw new Error("Unclosed tag at "+A.pos);if(O=[N,k,D,A.pos],h.push(O),"#"===N||"^"===N)d.push(O);else if("/"===N){if(S=d.pop(),!S)throw new Error('Unopened section "'+k+'" at '+D);if(S[1]!==k)throw new Error('Unclosed section "'+S[1]+'" at '+D)}else"name"===N||"{"===N||"&"===N?b=!0:"="===N&&i(k)}if(S=d.pop())throw new Error('Unclosed section "'+S[1]+'" at '+A.pos);return c(l(h))}function l(e){for(var t,n,r=[],o=0,i=e.length;i>o;++o)t=e[o],t&&("text"===t[0]&&n&&"text"===n[0]?(n[1]+=t[1],n[3]=t[3]):(r.push(t),n=t));return r}function c(e){for(var t,n,r=[],o=r,i=[],a=0,u=e.length;u>a;++a)switch(t=e[a],t[0]){case"#":case"^":o.push(t),i.push(t),o=t[4]=[];break;case"/":n=i.pop(),n[5]=t[2],o=i.length>0?i[i.length-1][4]:r;break;default:o.push(t)}return r}function f(e){this.string=e,this.tail=e,this.pos=0}function p(e,t){this.view=e,this.cache={".":this.view},this.parent=t}function d(){this.cache={}}var h=Object.prototype.toString,g=Array.isArray||function(e){return"[object Array]"===h.call(e)},m=RegExp.prototype.test,y=/\S/,b={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},v=/\s*/,w=/\s+/,T=/\s*=/,x=/\s*\}/,E=/#|\^|\/|>|\{|&|=|!/;f.prototype.eos=function(){return""===this.tail},f.prototype.scan=function(e){var t=this.tail.match(e);if(!t||0!==t.index)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n},f.prototype.scanUntil=function(e){var t,n=this.tail.search(e);switch(n){case-1:t=this.tail,this.tail="";break;case 0:t="";break;default:t=this.tail.substring(0,n),this.tail=this.tail.substring(n)}return this.pos+=t.length,t},p.prototype.push=function(e){return new p(e,this)},p.prototype.lookup=function(e){var n,r=this.cache;if(r.hasOwnProperty(e))n=r[e];else{for(var i,a,u=this,s=!1;u;){if(e.indexOf(".")>0)for(n=u.view,i=e.split("."),a=0;null!=n&&as;++s)a=void 0,o=e[s],i=o[0],"#"===i?a=this.renderSection(o,t,n,r):"^"===i?a=this.renderInverted(o,t,n,r):">"===i?a=this.renderPartial(o,t,n,r):"&"===i?a=this.unescapedValue(o,t):"name"===i?a=this.escapedValue(o,t):"text"===i&&(a=this.rawValue(o)),void 0!==a&&(u+=a);return u},d.prototype.renderSection=function(e,n,r,o){function i(e){return a.render(e,n,r)}var a=this,u="",s=n.lookup(e[1]);if(s){if(g(s))for(var l=0,c=s.length;c>l;++l)s[l].__i__=l,s[l].__first__=0===l,u+=this.renderTokens(e[4],n.push(s[l]),r,o);else if("object"==typeof s||"string"==typeof s||"number"==typeof s)u+=this.renderTokens(e[4],n.push(s),r,o);else if(t(s)){if("string"!=typeof o)throw new Error("Cannot use higher-order sections without the original template");s=s.call(n.view,o.slice(e[3],e[5]),i),null!=s&&(u+=s)}else u+=this.renderTokens(e[4],n,r,o);return u}},d.prototype.renderInverted=function(e,t,n,r){var o=t.lookup(e[1]);return!o||g(o)&&0===o.length?this.renderTokens(e[4],t,n,r):void 0},d.prototype.renderPartial=function(e,n,r){if(r){var o=t(r)?r(e[1]):r[e[1]];return null!=o?this.renderTokens(this.parse(o),n,r,o):void 0}},d.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);return null!=n?n:void 0},d.prototype.escapedValue=function(t,n){var r=n.lookup(t[1]);return null!=r?e.escape(r):void 0},d.prototype.rawValue=function(e){return e[1]},e.name="mustache.js",e.version="2.1.3",e.tags=["{{","}}"];var D=new d;e.clearCache=function(){return D.clearCache()},e.parse=function(e,t){return D.parse(e,t)},e.render=function(e,t,r){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+n(e)+'" was given as the first argument for mustache#render(template, view, partials)');return D.render(e,t,r)},e.to_html=function(n,r,o,i){var a=e.render(n,r,o);return t(i)?void i(a):a},e.escape=u,e.Scanner=f,e.Context=p,e.Writer=d}); \ No newline at end of file +(function(){"use strict";var e,t,n,r=this,o=window,i=document,a=(document.documentElement,/^(["'](\\.|[^"\\\n\r])*?["']|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/),u=/^-ms-/,s=/[\-_]([\da-z])/gi,l=/([A-Z])/g,c=/\./,f=/[-|+]?[\D]/gi,p=/\D/gi,d=new RegExp("([0-9])([0-9][0-9][0-9][,.])"),h=/&/g,g=/=/,m=/[ ]+/g,y={};y.guid=1,y.getGuid=function(){return y.guid++},y.info=e=function(){function n(e,n){return e={href:o.location.href,param:o.location.search,referrer:i.referrer,pathname:o.location.pathname,hostname:o.location.hostname,port:o.location.port},n=e.href.split(/[\?#]/),e.param=e.param.replace("?",""),e.url=n[0],e.href.search("#")>-1&&(e.hashdata=t.last(n)),n=null,e.baseUrl=t.left(e.href,"?").replace(e.pathname,""),e}function r(t,n,r){return e.errorMsg&&e.errorMsg[t]?{className:t,errorCode:n,methodName:r,msg:e.errorMsg[t][n]}:{className:t,errorCode:n,methodName:r}}var a="0.0.1",u="",s=function(){console.error(t.toArray(arguments).join(":"))},l={BACKSPACE:8,TAB:9,RETURN:13,ESC:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46,HOME:36,END:35,PAGEUP:33,PAGEDOWN:34,INSERT:45,SPACE:32},c=[{label:"SUN"},{label:"MON"},{label:"TUE"},{label:"WED"},{label:"THU"},{label:"FRI"},{label:"SAT"}],f=function(e,t,n,r,o,i){return e=navigator.userAgent.toLowerCase(),t=-1!=e.search(/mobile/g),i,-1!=e.search(/iphone/g)?{name:"iphone",version:0,mobile:!0}:-1!=e.search(/ipad/g)?{name:"ipad",version:0,mobile:!0}:-1!=e.search(/android/g)?(r=/(android)[ \/]([\w.]+)/.exec(e)||[],i=r[2]||"0",{name:"android",version:i,mobile:t}):(n="",r=/(opr)[ \/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[],o=r[1]||"",i=r[2]||"0","msie"==o&&(o="ie"),{name:o,version:i,mobile:t})}(),p=!("undefined"==typeof window||"undefined"==typeof navigator||!o.document),d=/Firefox/i.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel",h={ax5dialog:{501:"Duplicate call error"},ax5picker:{401:"Can not find target element",501:"Duplicate call error"},"single-uploader":{460:"There are no files to be uploaded.",461:"There is no uploaded files."},ax5calendar:{401:"Can not find target element"}};return{errorMsg:h,version:a,baseUrl:u,onerror:s,eventKeys:l,weekNames:c,browser:f,isBrowser:p,wheelEnm:d,urlUtil:n,getError:r}}(),y.util=t=function(){function t(e,t){if(R(e))return[];var n,r=0,o=e.length,i=void 0===o||"function"==typeof e;if(i){for(n in e)if("undefined"!=typeof e[n]&&t.call(e[n],n,e[n])===!1)break}else for(;o>r&&("undefined"==typeof e[r]||t.call(e[r],r,e[r++])!==!1););return e}function b(e,t){if(R(e))return[];var n,r,o=0,i=e.length,a=[];if(O(e)){for(n in e)if("undefined"!=typeof e[n]){if(r=void 0,(r=t.call(e[n],n,e[n]))===!1)break;a.push(r)}}else for(;i>o;)if("undefined"!=typeof e[o]){if(r=void 0,(r=t.call(e[o],o,e[o++]))===!1)break;a.push(r)}return a}function v(e,t){if(R(e))return-1;var n,r=0,o=e.length;if(O(e))for(n in e){if("undefined"!=typeof e[n]&&A(t)&&t.call(e[n],n,e[n]))return n;if(e[n]==t)return n}else for(;o>r;){if("undefined"!=typeof e[r]&&A(t)&&t.call(e[r],r,e[r]))return r;if(e[r]==t)return r;r++}return-1}function w(e,t){var n,o,i;if(S(e)){for(n=0,o=e.length,i=e[n];o-1>n&&("undefined"==typeof e[n]||(i=t.call(r,i,e[++n]))!==!1););return i}if(O(e)){for(n in e)if("undefined"!=typeof e[n]&&(i=t.call(r,i,e[n]))===!1)break;return i}return console.error("argument error : ax5.util.reduce - use Array or Object"),null}function T(e,t){for(var n=e.length-1,o=e[n];n>0&&("undefined"==typeof e[n]||(o=t.call(r,o,e[--n]))!==!1););return o}function x(e,t){if(R(e))return[];var n,r,o=0,i=e.length,a=[];if(O(e))for(n in e)"undefined"!=typeof e[n]&&(r=t.call(e[n],n,e[n]))&&a.push(e[n]);else for(;i>o;)"undefined"!=typeof e[o]&&((r=t.call(e[o],o,e[o]))&&a.push(e[o]),o++);return a}function E(e){var n="";if(y.util.isArray(e)){var r=0,o=e.length;for(n+="[";o>r;r++)r>0&&(n+=","),n+=E(e[r]);n+="]"}else if(y.util.isObject(e)){n+="{";var i=[];t(e,function(e,t){i.push('"'+e+'": '+E(t))}),n+=i.join(", "),n+="}"}else y.util.isString(e)?n='"'+e+'"':y.util.isNumber(e)?n=e:y.util.isUndefined(e)?n="undefined":y.util.isFunction(e)&&(n='"{Function}"');return n}function k(e,t){if(!t&&!a.test(e))return{error:500,msg:"syntax error"};try{return new Function("","return "+e)()}catch(n){return{error:500,msg:"syntax error"}}}function D(e){var t;return null!=e&&e==e.window?t="window":e&&1==e.nodeType?t="element":e&&11==e.nodeType?t="fragment":"undefined"==typeof e?t="undefined":"[object Object]"==le.call(e)?t="object":"[object Array]"==le.call(e)?t="array":"[object String]"==le.call(e)?t="string":"[object Number]"==le.call(e)?t="number":"[object NodeList]"==le.call(e)?t="nodelist":"function"==typeof e&&(t="function"),t}function N(e){return null!=e&&e==e.window}function j(e){return!(!e||1!=e.nodeType&&11!=e.nodeType)}function O(e){return"[object Object]"==le.call(e)}function S(e){return"[object Array]"==le.call(e)}function A(e){return"function"==typeof e}function U(e){return"[object String]"==le.call(e)}function C(e){return"[object Number]"==le.call(e)}function M(e){return"[object NodeList]"==le.call(e)||e&&e[0]&&1==e[0].nodeType}function F(e){return"undefined"==typeof e}function R(e){return"undefined"==typeof e||null===e||""===e}function P(e){return e instanceof Date&&!isNaN(e.valueOf())}function $(e){var t=!1;if(e){if(e instanceof Date&&!isNaN(e.valueOf()))t=!0;else if(e=e.replace(/\D/g,""),e.length>7){var n=e.substr(4,2),r=e.substr(6,2);e=ee(e),e.getMonth()==n-1&&e.getDate()==r&&(t=!0)}}else;return t}function I(e){if(O(e)){var t=Object.keys(e),n={};return n[t[0]]=e[t[0]],n}return S(e)?e[0]:void console.error("ax5.util.object.first","argument type error")}function Y(e){if(O(e)){var t=Object.keys(e),n={};return n[t[t.length-1]]=e[t[t.length-1]],n}return S(e)?e[e.length-1]:void console.error("ax5.util.object.last","argument type error")}function z(e,t,n,r){var o;return"number"==typeof n&&(o=new Date,o.setDate(o.getDate()+n)),r=r||{},i.cookie=[escape(e),"=",escape(t),o?"; expires="+o.toUTCString():"",r.path?"; path="+r.path:"",r.domain?"; domain="+r.domain:"",r.secure?"; secure":""].join("")}function W(e){for(var t=e+"=",n=i.cookie.split(";"),r=0,o=n.length;o>r;r++){for(var a=n[r];" "==a.charAt(0);)a=a.substring(1);if(-1!=a.indexOf(t))return unescape(a.substring(t.length,a.length))}return""}function B(t,r,o){for(var a,u,s=i.head||i.getElementsByTagName("head")[0],l=e.isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,c=t.length,f=[],p={},d=!1,h=n.get("script[src]"),g=(n.get("style[href]"),function(){1>c&&0==f.length&&!d&&(r&&r({}),d=!0)}),m=function(){1>c&&f.length>0&&!d&&(console.error(f),o&&o({type:"loadFail",list:f}),d=!0)},b=0,v=t.length;v>b;b++){for(var w,T,x,E=t[b],k=_(E,"."),D=!1,N=e.baseUrl+E,j="js"===k?"src":"href",O=h.length;O--;)if(h[O].getAttribute(j)===N){D=!0;break}D?(c--,g()):(w="js"===k?n.create("script",{type:"text/javascript",src:N,"data-src":N}):n.create("link",{rel:"stylesheet",type:"text/css",href:N}),T=function(e,t){e&&("load"===e.type||l.test((e.currentTarget||e.srcElement).readyState))&&(p[t]||c--,a&&clearTimeout(a),a=setTimeout(g,1))},x=function(t){c--,f.push({src:e.baseUrl+E,error:t}),u&&clearTimeout(u),u=setTimeout(m,1)},y.xhr({url:N,contentType:"",res:function(e,t){for(var r,o=!1,i=n.get("script[src]"),a=i.length;a--;)if(i[a].getAttribute(j)===N){o=!0;break}o||s.appendChild(w),w.onload=function(e){T(e,N),r&&clearTimeout(r)},r=setTimeout(function(){T({type:"load"},N)},500)},error:function(){x(this)}}))}}function H(e){return o.alert(E(e)),e}function L(e,t){return"undefined"==typeof e||"undefined"==typeof t?"":U(t)?e.indexOf(t)>-1?e.substr(0,e.indexOf(t)):e:C(t)?e.substr(0,t):""}function _(e,t){return"undefined"==typeof e||"undefined"==typeof t?"":(e=""+e,U(t)?e.lastIndexOf(t)>-1?e.substr(e.lastIndexOf(t)+1):e:C(t)?e.substr(e.length-t):"")}function q(e){return e.replace(u,"ms-").replace(s,function(e,t){return t.toUpperCase()})}function V(e){return q(e).replace(l,function(e,t){return"-"+t.toLowerCase()})}function G(e,n){var r,o=(""+e).split(c),i=Number(o[0])<0||"-0"==o[0],a=0;return o[0]=o[0].replace(f,""),o[1]?(o[1]=o[1].replace(p,""),a=Number(o[0]+"."+o[1])||0):a=Number(o[0])||0,r=i?-a:a,t(n,function(e,t){"round"==e&&(r=C(t)?0>t?+(Math.round(r+"e-"+Math.abs(t))+"e+"+Math.abs(t)):+(Math.round(r+"e+"+t)+"e-"+t):Math.round(r)),"floor"==e&&(r=Math.floor(r)),"ceil"==e?r=Math.ceil(r):"money"==e?r=function(e){var t=""+e;if(isNaN(t)||""==t)return"";var n=t.split(".");n[0]+=".";do n[0]=n[0].replace(d,"$1,$2");while(d.test(n[0]));return n.length>1?n.join(""):n[0].split(".")[0]}(r):"abs"==e?r=Math.abs(Number(r)):"byte"==e&&(r=function(e){e=Number(r);var t="KB",n=e/1024;return n/1024>1&&(t="MB",n/=1024),n/1024>1&&(t="GB",n/=1024),G(n,{round:1})+t}(r))}),r}function J(e){return"undefined"!=typeof e.length?Array.prototype.slice.call(e):[]}function K(e,t){var n=t.length,r=e.length,o=0;if("number"==typeof n)for(;n>o;o++)e[r++]=t[o];else for(;void 0!==t[o];)e[r++]=t[o++];return e.length=r,e}function X(e,n){var r;return U(e)&&"undefined"!=typeof n&&"param"==n?e:U(e)&&"undefined"!=typeof n&&"object"==n||U(e)&&"undefined"==typeof n?(r={},t(e.split(h),function(){var e=this.split(g);r[e[0]]=e[1]}),r):(r=[],t(e,function(e,t){r.push(e+"="+escape(t))}),r.join("&"))}function Q(){y.info.onerror.apply(this,arguments)}function Z(e,t,n,r,o,i){var a,u;return u=new Date,"undefined"==typeof r&&(r=23),"undefined"==typeof o&&(o=59),a=new Date(Date.UTC(e,t,n||1,r,o,i||0)),0==t&&1==n&&a.getUTCHours()+a.getTimezoneOffset()/60<0?a.setUTCHours(0):a.setUTCHours(a.getUTCHours()+a.getTimezoneOffset()/60),a}function ee(t,n){var r,o,i,a,u,s,l,c,f,p;if(U(t))if(0==t.length)t=new Date;else if(t.length>15)s=t.split(/ /g),f=s[0].split(/\D/g),r=f[0],o=parseFloat(f[1]),i=parseFloat(f[2]),c=s[1]||"09:00",l=c.left(5).split(":"),a=parseFloat(l[0]),u=parseFloat(l[1]),("AM"===c.right(2)||"PM"===c.right(2))&&(a+=12),t=Z(r,o-1,i,a,u);else if(14==t.length)p=t.replace(/\D/g,""),t=Z(p.substr(0,4),p.substr(4,2)-1,G(p.substr(6,2)),G(p.substr(8,2)),G(p.substr(10,2)),G(p.substr(12,2)));else if(t.length>7)p=t.replace(/\D/g,""),t=Z(p.substr(0,4),p.substr(4,2)-1,G(p.substr(6,2)));else if(t.length>4)p=t.replace(/\D/g,""),t=Z(p.substr(0,4),p.substr(4,2)-1,1);else{if(t.length>2)return p=t.replace(/\D/g,""),Z(p.substr(0,4),p.substr(4,2)-1,1);t=new Date}return"undefined"==typeof n?t:(n.add&&(t=function(e,t){var n,r,o,i,a=864e5;return"undefined"!=typeof t.d?e.setTime(e.getTime()+t.d*a):"undefined"!=typeof t.m?(n=e.getFullYear(),r=e.getMonth(),o=e.getDate(),n+=parseInt(t.m/12),r+=t.m%12,i=re(n,r),o>i&&(o=i),e=new Date(n,r,o,12)):"undefined"!=typeof t.y?e.setTime(e.getTime()+365*t.y*a):e.setTime(e.getTime()+t.y*a),e}(new Date(t),n.add)),n["return"]?function(){var r,o,i,a,u,s,l,c=n["return"];r=t.getUTCFullYear(),o=oe(t.getMonth()+1,2),i=oe(t.getDate(),2),a=oe(t.getHours(),2),u=oe(t.getMinutes(),2),s=oe(t.getSeconds(),2),l=t.getDay();var f=/[^y]*(yyyy)[^y]*/gi;f.exec(c);var p=RegExp.$1,d=/[^m]*(mm)[^m]*/gi;d.exec(c);var h=RegExp.$1,g=/[^d]*(dd)[^d]*/gi;g.exec(c);var m=RegExp.$1,y=/[^h]*(hh)[^h]*/gi;y.exec(c);var b=RegExp.$1,v=/[^m]*(mi)[^i]*/gi;v.exec(c);var w=RegExp.$1,T=/[^s]*(ss)[^s]*/gi;T.exec(c);var x=RegExp.$1,E=/[^d]*(dw)[^w]*/gi;E.exec(c);var k=RegExp.$1;return"yyyy"===p&&(c=c.replace(p,_(r,p.length))),"mm"===h&&(1==h.length&&(o=t.getMonth()+1),c=c.replace(h,o)),"dd"===m&&(1==m.length&&(i=t.getDate()),c=c.replace(m,i)),"hh"===b&&(c=c.replace(b,a)),"mi"===w&&(c=c.replace(w,u)),"ss"===x&&(c=c.replace(x,s)),"dw"==k&&(c=c.replace(k,e.weekNames[l].label)),c}():t)}function te(e,t){function n(e){return Math.floor(e.getTime()/a)*a}var r,o,i=ee(e),a=864e5,u=new Date;return"undefined"==typeof t?r=G((n(i)-n(u))/a,{floor:!0}):(r=G((n(i)-n(u))/a,{floor:!0}),t.today&&(u=ee(t.today),r=G((n(i)-n(u))/a,{floor:!0})),t.thisYear&&(o=new Date(u.getFullYear(),i.getMonth(),i.getDate()),r=G((n(o)-n(u))/a,{floor:!0}),0>r&&(o=new Date(u.getFullYear()+1,i.getMonth(),i.getDate()),r=G((n(o)-n(u))/a,{floor:!0}))),t.age&&(o=new Date(u.getFullYear(),i.getMonth(),i.getDate()),r=o.getFullYear()-i.getFullYear()),r)}function ne(e){var t=ee(e);return{year:t.getFullYear(),month:t.getMonth()+1,count:parseInt(t.getDate()/7+1)}}function re(e,t){return 3==t||5==t||8==t||10==t?30:1==t?e%4==0&&e%100!=0||e%400==0?29:28:31}function oe(e,t,n,r){var o=e.toString(r||10);return ie(n||"0",t-o.length)+o}function ie(e,t){return 1>t?"":new Array(t+1).join(e)}function ae(e,t){if(e)for(;function(){var n=!0;if("undefined"==typeof t)e=e.parentNode?e.parentNode:!1;else if(A(t))n=t(e);else if(O(t))for(var r in t)if("tagname"===r){if(e.tagName.toLocaleLowerCase()!=t[r]){n=!1;break}}else if("clazz"===r||"class_name"===r){if(!("className"in e)){n=!1;break}for(var o=e.className.split(m),i=!1,a=0;aa;a++)e.call(o,n[a])&&u.push(n[a]);return u}}()),Array.prototype.forEach||(Array.prototype.forEach=function(e){if(void 0===this||null===this)throw TypeError();var t=Object(this),n=t.length>>>0;if("function"!=typeof e)throw TypeError();var r,o=arguments[1];for(r=0;n>r;r++)r in t&&e.call(o,t[r],r,t)}),Function.prototype.bind||(Function.prototype.bind=function(e){function t(){}if("function"!=typeof this)throw TypeError("function");var n=[].slice,r=n.call(arguments,1),o=this,i=function(){return o.apply(this instanceof t?this:e,r.concat(n.call(arguments)))};return t.prototype=o.prototype,i.prototype=new t,i}),function(){if(!document.querySelectorAll&&!document.querySelector&&document.createStyleSheet){var e=document.createStyleSheet(),t=function(t,n){var r,o=document.all,i=o.length,a=[];for(e.addRule(t,"foo:bar"),r=0;i>r&&!("bar"===o[r].currentStyle.foo&&(a.push(o[r]),a.length>n));r+=1);return e.removeRule(0),a};document.querySelectorAll=function(e){return t(e,1/0)},document.querySelector=function(e){return t(e,1)[0]||null}}}(),String.prototype.trim||!function(){String.prototype.trim=function(){return this.replace(t,"")}}(),window.JSON||(window.JSON={parse:function(e){return new Function("","return "+e)()},stringify:function(){var e,t=/["]/g;return e=function(n){var r,o,i;switch(r=typeof n){case"string":return'"'+n.replace(t,'\\"')+'"';case"number":case"boolean":return n.toString();case"undefined":return"undefined";case"function":return'""';case"object":if(!n)return"null";if(r="",n.splice){for(o=0,i=n.length;i>o;o++)r+=","+e(n[o]);return"["+r.substr(1)+"]"}for(o in n)n.hasOwnProperty(o)&&void 0!==n[o]&&"function"!=typeof n[o]&&(r+=',"'+o+'":'+e(n[o]));return"{"+r.substr(1)+"}"}}}()}),function(e){for(var t,n,r={},o=function(){},i="memory".split(","),a="assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(",");t=i.pop();)e[t]=e[t]||r;for(;n=a.pop();)e[n]=e[n]||o}(e.console=e.console||{});var n=document.getElementsByTagName("html")[0];document.getElementsByTagName("body")[0];window.innerWidth||(window.innerWidth=n.clientWidth),window.innerHeight||(window.innerHeight=n.clientHeight),window.scrollX||(window.scrollX=window.pageXOffset||n.scrollLeft),window.scrollY||(window.scrollY=window.pageYOffset||n.scrollTop)}.call(this),ax5.ui=function(e){function t(){this.config={},this.name="root",this.setConfig=function(e,t){return jQuery.extend(!0,this.config,e,!0),("undefined"==typeof t||t===!0)&&this.init(),this},this.init=function(){console.log(this.config)},this.bindWindowResize=function(e){setTimeout(function(){jQuery(window).resize(function(){this.bindWindowResize__&&clearTimeout(this.bindWindowResize__),this.bindWindowResize__=setTimeout(function(){e.call(this)}.bind(this),10)}.bind(this))}.bind(this),100)},this.stopEvent=function(e){return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,!1},this.main=function(){}.apply(this,arguments)}return{root:t}}(ax5),function(e,t){t(e.mustache={})}(window.ax5,function(e){function t(e){return"function"==typeof e}function n(e){return g(e)?"array":typeof e}function r(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function o(e,t){return null!=e&&"object"==typeof e&&t in e}function i(e,t){return m.call(e,t)}function a(e){return!i(y,e)}function u(e){return String(e).replace(/[&<>"'\/]/g,function(e){return b[e]})}function s(t,n){function o(){if(y&&!b)for(;m.length;)delete h[m.pop()];else m=[];y=!1,b=!1}function i(e){if("string"==typeof e&&(e=e.split(w,2)),!g(e)||2!==e.length)throw new Error("Invalid tags: "+e);u=new RegExp(r(e[0])+"\\s*"),s=new RegExp("\\s*"+r(e[1])),p=new RegExp("\\s*"+r("}"+e[1]))}if(!t)return[];var u,s,p,d=[],h=[],m=[],y=!1,b=!1;i(n||e.tags);for(var k,D,N,j,O,S,A=new f(t);!A.eos();){if(k=A.pos,N=A.scanUntil(u))for(var U=0,C=N.length;C>U;++U)j=N.charAt(U),a(j)?m.push(h.length):b=!0,h.push(["text",j,k,k+1]),k+=1,"\n"===j&&o();if(!A.scan(u))break;if(y=!0,D=A.scan(E)||"name",A.scan(v),"="===D?(N=A.scanUntil(T),A.scan(T),A.scanUntil(s)):"{"===D?(N=A.scanUntil(p),A.scan(x),A.scanUntil(s),D="&"):N=A.scanUntil(s),!A.scan(s))throw new Error("Unclosed tag at "+A.pos);if(O=[D,N,k,A.pos],h.push(O),"#"===D||"^"===D)d.push(O);else if("/"===D){if(S=d.pop(),!S)throw new Error('Unopened section "'+N+'" at '+k);if(S[1]!==N)throw new Error('Unclosed section "'+S[1]+'" at '+k)}else"name"===D||"{"===D||"&"===D?b=!0:"="===D&&i(N)}if(S=d.pop())throw new Error('Unclosed section "'+S[1]+'" at '+A.pos);return c(l(h))}function l(e){for(var t,n,r=[],o=0,i=e.length;i>o;++o)t=e[o],t&&("text"===t[0]&&n&&"text"===n[0]?(n[1]+=t[1],n[3]=t[3]):(r.push(t),n=t));return r}function c(e){for(var t,n,r=[],o=r,i=[],a=0,u=e.length;u>a;++a)switch(t=e[a],t[0]){case"#":case"^":o.push(t),i.push(t),o=t[4]=[];break;case"/":n=i.pop(),n[5]=t[2],o=i.length>0?i[i.length-1][4]:r;break;default:o.push(t)}return r}function f(e){this.string=e,this.tail=e,this.pos=0}function p(e,t){this.view=e,this.cache={".":this.view,getEach:function(){var e=[];for(var t in this)e.push({"@key":t,"@value":this[t]});return e}},this.parent=t}function d(){this.cache={}}var h=Object.prototype.toString,g=Array.isArray||function(e){return"[object Array]"===h.call(e)},m=RegExp.prototype.test,y=/\S/,b={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},v=/\s*/,w=/\s+/,T=/\s*=/,x=/\s*\}/,E=/#|\^|\/|>|\{|&|=|!/;f.prototype.eos=function(){return""===this.tail},f.prototype.scan=function(e){var t=this.tail.match(e);if(!t||0!==t.index)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n},f.prototype.scanUntil=function(e){var t,n=this.tail.search(e);switch(n){case-1:t=this.tail,this.tail="";break;case 0:t="";break;default:t=this.tail.substring(0,n),this.tail=this.tail.substring(n)}return this.pos+=t.length,t},p.prototype.push=function(e){return new p(e,this)},p.prototype.lookup=function(e){var n,r=this.cache;if(r.hasOwnProperty(e))n=r[e];else{for(var i,a,u=this,s=!1;u;){if(e.indexOf(".")>0)for(n=u.view,i=e.split("."),a=0;null!=n&&as;++s)a=void 0,o=e[s],i=o[0],"#"===i?a=this.renderSection(o,t,n,r):"^"===i?a=this.renderInverted(o,t,n,r):">"===i?a=this.renderPartial(o,t,n,r):"&"===i?a=this.unescapedValue(o,t):"name"===i?a=this.escapedValue(o,t):"text"===i&&(a=this.rawValue(o)),void 0!==a&&(u+=a);return u},d.prototype.renderSection=function(e,n,r,o){function i(e){return a.render(e,n,r)}var a=this,u="",s=n.lookup(e[1]);if(s){if(g(s))for(var l=0,c=s.length;c>l;++l)s[l]["@i"]=l,s[l]["@first"]=0===l,u+=this.renderTokens(e[4],n.push(s[l]),r,o);else if("object"==typeof s||"string"==typeof s||"number"==typeof s)u+=this.renderTokens(e[4],n.push(s),r,o);else if(t(s)){if("string"!=typeof o)throw new Error("Cannot use higher-order sections without the original template");s=s.call(n.view,o.slice(e[3],e[5]),i),null!=s&&(u+=s)}else u+=this.renderTokens(e[4],n,r,o);return u}},d.prototype.renderInverted=function(e,t,n,r){var o=t.lookup(e[1]);return!o||g(o)&&0===o.length?this.renderTokens(e[4],t,n,r):void 0},d.prototype.renderPartial=function(e,n,r){if(r){var o=t(r)?r(e[1]):r[e[1]];return null!=o?this.renderTokens(this.parse(o),n,r,o):void 0}},d.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);return null!=n?n:void 0},d.prototype.escapedValue=function(t,n){var r=n.lookup(t[1]);return null!=r?e.escape(r):void 0},d.prototype.rawValue=function(e){return e[1]},e.name="mustache.js",e.version="2.1.3",e.tags=["{{","}}"];var k=new d;e.clearCache=function(){return k.clearCache()},e.parse=function(e,t){return k.parse(e,t)},e.render=function(e,t,r){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+n(e)+'" was given as the first argument for mustache#render(template, view, partials)');return k.render(e,t,r)},e.to_html=function(n,r,o,i){var a=e.render(n,r,o);return t(i)?void i(a):a},e.escape=u,e.Scanner=f,e.Context=p,e.Writer=d}); \ No newline at end of file diff --git a/package.json b/package.json index e8bbe24..a061fab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ax5core", - "version": "0.8.0", + "version": "0.9.0", "description": "`ax5core` is a collection of utility functions that have been designed for use in ax5ui", "license": "MIT", "repository": { diff --git a/src/mustache.js b/src/mustache.js index 9f651e7..2094eb4 100644 --- a/src/mustache.js +++ b/src/mustache.js @@ -352,7 +352,16 @@ */ function Context(view, parentContext) { this.view = view; - this.cache = {'.': this.view}; + this.cache = { + '.': this.view, + 'getEach': function () { + var returns = []; + for (var k in this) { + returns.push({'@key': k, '@value': this[k]}); + } + return returns; + } + }; this.parent = parentContext; } @@ -478,7 +487,6 @@ */ Writer.prototype.renderTokens = function renderTokens(tokens, context, partials, originalTemplate) { var buffer = ''; - var token, symbol, value; for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) { value = undefined; @@ -515,8 +523,8 @@ if (isArray(value)) { for (var j = 0, valueLength = value.length; j < valueLength; ++j) { - value[j].__i__ = j; - value[j].__first__ = (j === 0); + value[j]['@i'] = j; + value[j]['@first'] = (j === 0); buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate); } } diff --git a/test/index.html b/test/index.html index 25c0547..0d96359 100644 --- a/test/index.html +++ b/test/index.html @@ -9,21 +9,69 @@