UNPKG

sugar

Version:

A Javascript library for working with native objects.

68 lines (67 loc) 25.3 kB
/* * Sugar Library v1.2 * * Freely distributable and licensed under the MIT-style license. * Copyright (c) 2012 Andrew Plummer * http://sugarjs.com/ * * ---------------------------- */ (function(context){var h=true,j=null,k=false,m=Object,n=Array,o=RegExp,q=Date,r=String,s=Number,t=m.defineProperty&&m.defineProperties;function u(a,b,c,d){var e=b?a.prototype:a;v(a,b,d);w(d,function(f,g){if(typeof c==="function")x(e,f,aa(e[f],g,c));else if(c===h||!e[f])x(e,f,g);a.SugarMethods[f]={e:b,method:g}})} function v(a){if(!a.SugarMethods){x(a,"SugarMethods",{});x(a,"restore",function(){var b=arguments.length===0,c=y(arguments);w(a.SugarMethods,function(d,e){if(b||z(c,d))x(e.e?a.prototype:a,d,e.method)})});x(a,"extend",function(b,c,d){a===m&&arguments.length===0?A(Object.keys(Object.SugarMethods).remove("extended","fromQueryString"),Object):u(a,d!==k,c,b)})}}function aa(a,b,c){return function(){return a&&(c===h||!c.apply(this,arguments))?a.apply(this,arguments):b.apply(this,arguments)}} function x(a,b,c){if(t)m.defineProperty(a,b,{value:c,configurable:h,enumerable:k,writable:h});else a[b]=c}function w(a,b){var c=0,d;for(d in a)if(a.hasOwnProperty(d)){b.call(a,d,a[d],c);c++}} function B(a,b,c){var d=m.prototype.toString.call(a).match(/\[object (\w+)\]/)[1];if(a===b)return a!==0||1/a===1/b;else if(a===j||C(a)||b===j||C(b))return k;else if(d=="RegExp")return a.ignoreCase==b.ignoreCase&&a.multiline==b.multiline&&a.source==b.source&&a.global==b.global;else if(d=="Array"||d=="Object"){for(d=c.length;d--;)if(c[d]==a)return h;c.push(a);for(var e in a)if(a.hasOwnProperty(e))if(!b.hasOwnProperty(e)||!B(a[e],b[e],c))return k;c.pop();return m.keys(a).length===m.keys(b).length&&a.constructor=== b.constructor&&a.length===b.length}else return D(b,d)&&a.valueOf()===b.valueOf()}function E(a,b,c,d){var e=h;if(a===b)return h;else if(m.isRegExp(b))return o(b).test(a);else if(m.isFunction(b))return b.apply(c,[a].concat(d));else if(m.isObject(b)&&m.isObject(a)){w(b,function(f){E(a[f],b[f],c,d)||(e=k)});return!m.isEmpty(b)&&e}else return m.equal(a,b)}function F(a,b,c,d){return C(b)?a:m.isFunction(b)?b.apply(c,d||[]):m.isFunction(a[b])?a[b].call(a):a[b]} function G(a,b){return Array.prototype.slice.call(a,b)}function y(a,b,c,d){a=G(a);if(c!==k)a=H(a);I(a,b||function(){},d);return a}function J(a,b,c){var d=[],e=a.length,f=b[b.length-1]!==k,g;y(b,function(i){if(m.isBoolean(i))return k;if(f){i%=e;if(i<0)i=e+i}g=c?a.charAt(i)||"":a[i];d.push(g)});return d.length<2?d[0]:d}function D(a,b){return m.prototype.toString.call(a)==="[object "+b+"]"}function K(a){return typeof a=="object"}function C(a){return a===void 0}function L(a){return a!==void 0} function M(a,b,c,d){K(b)&&w(b,function(e,f){var g=a[e],i=L(g),l=m.isArray(f);if(c===h&&(l||m.isObject(f))){g||(g=l?[]:{});M(g,f,c)}else if(i&&m.isFunction(d))g=d.call(b,e,a[e],b[e]);else if(!i||i&&d!==k)g=b[e];a[e]=g});return a} function O(a,b,c,d){var e=/^(.+?)(\[.*\])$/,f,g,i;if(d!==k&&(g=b.match(e))){i=g[1];b=g[2].replace(/^\[|\]$/g,"").split("][");I(b,function(l){f=!l||l.match(/^\d+$/);if(!i&&m.isArray(a))i=a.length;a[i]||(a[i]=f?[]:{});a=a[i];i=l});if(!i&&f)i=a.length.toString();O(a,i,c)}else a[b]=c.match(/^[\d.]+$/)?parseFloat(c):c==="true"?h:c==="false"?k:c}function P(a){var b=this;w(a,function(c,d){b[c]=d})}P.prototype.constructor=m; function A(a,b){var c={};I(a,function(d){c[d+(d==="equal"?"s":"")]=function(){return Object[d].apply(j,[this].concat(G(arguments)))}});u(b,h,k,c)}u(m,k,h,{watch:function(a,b,c){if(t){var d=a[b];m.defineProperty(a,b,{get:function(){return d},set:function(e){d=c.call(a,b,d,e)},enumerable:h,configurable:h})}}}); u(m,k,k,{extended:function(a){return new P(a)},isObject:function(a){return a===j||C(a)?k:D(a,"Object")&&a.constructor===m},isNaN:function(a){return m.isNumber(a)&&a.valueOf()!==a.valueOf()},each:function(a,b){b&&w(a,function(c,d){b.call(a,c,d,a)});return a},merge:function(a,b,c){return M(a,b,h,c)},isEmpty:function(a){if(!K(a)||a===j)return!(a&&a.length>0);return m.keys(a).length==0},equal:function(a,b){return B(a,b,[])},values:function(a,b){var c=[];w(a,function(d,e){c.push(e);b&&b.call(a,e)});return c}, clone:function(a,b){if(!K(a)||a===j)return a;var c=Object.isFunction(a.keys)?Object.extended():{};return M(c,a,b)},fromQueryString:function(a,b){var c=m.extended();a=a&&a.toString?a.toString():"";a.replace(/^.*?\?/,"").unescapeURL().split("&").each(function(d){d=d.split("=");d.length===2&&O(c,d[0],d[1],b)});return c},tap:function(a,b){F(a,b,a,[a]);return a}}); u(m,k,function(){return arguments.length>1},{keys:function(a,b){if(a===j||!K(a)&&!m.isRegExp(a)&&!m.isFunction(a))throw new TypeError("Object required");var c=[];w(a,function(d,e){c.push(d);b&&b.call(a,d,e)});return c}});function I(a,b,c,d,e){var f,g;Q(b);if(c<0)c=a.length+c;g=isNaN(c)?0:parseInt(c>>0);for(c=d===h?a.length+g:a.length;g<c;){f=g%a.length;if(!(f in a)&&e===h)return ba(a,b,g,d);else if(b.call(a,a[f],f,a)===k)break;g++}} function ca(a,b,c,d,e){var f,g;I(a,function(i,l,p){if(E(i,b,p,[l,p])){f=i;g=l;return k}},c,d);return e?g:f}function z(a,b){return a.any(function(c){return m.equal(b,c)})}function R(a,b){function c(e){return F(e,b,a,[e])===d}var d;return a.reduce(function(e,f,g){d=F(f,b,a,[f,g,a]);if(e.none(b?c:f))e.push(f);return e},[])}function H(a,b,c){b=b||Infinity;c=c||0;var d=[];I(a,function(e){if(m.isArray(e)&&c<b)d=d.concat(H(e,b,c+1));else d.push(e)});return d} function da(a,b,c){var d=[];a.each(function(e){if((c||!z(d,e))&&c!=z(b,e))d.push(e)});return d}function ea(a,b,c,d){var e=a.length,f=d==-1,g=f?e-1:0;c=isNaN(c)?g:parseInt(c>>0);if(c<0)c=e+c;if(!f&&c<0||f&&c>=e)c=g;for(;f&&c>=0||!f&&c<e;){if(a[c]===b)return c;c+=d}return-1} function fa(a,b,c,d){var e=a.length,f=0,g=L(c);Q(b);if(e==0&&!g)throw new TypeError("Reduce called on empty array with no initial value");else if(g)c=c;else{c=a[d?e-1:f];f++}for(;f<e;){g=d?e-f-1:f;if(g in a)c=b.call(void 0,c,a[g],g,a);f++}return c}function Q(a){if(!a||!a.call)throw new TypeError("Callback is not callable");}function S(a){if(a.length===0)throw new TypeError("First argument must be defined");} function ba(a,b,c){var d=[],e;for(e in a)e in a&&e>>>0==e&&e!=4294967295&&e>=c&&d.push(e.toNumber());d.sort().each(function(f){return b.call(a,a[f],f,a)});return a}function T(a,b,c,d){var e=c==="max",f=c==="min",g=e?-Infinity:Infinity,i=[];w(a,function(l){var p=a[l];l=F(p,b,a,d?[p,l.toNumber(),a]:[]);if(!C(l))if(l===g)i.push(p);else if(e&&l>g||f&&l<g){i=[p];g=l}});return i} u(n,k,k,{create:function(){var a=[];y(arguments,function(b){if(b&&b.callee)b=G(b);a=a.concat(b)});return a},isArray:function(a){return D(a,"Array")}}); u(n,h,function(){var a=arguments;return a.length>0&&!m.isFunction(a[0])},{every:function(a,b){var c=this.length,d=0;for(S(arguments);d<c;){if(d in this&&!E(this[d],a,b,[d,this]))return k;d++}return h},some:function(a,b){var c=this.length,d=0;for(S(arguments);d<c;){if(d in this&&E(this[d],a,b,[d,this]))return h;d++}return k},map:function(a,b){var c=this.length,d=0,e,f=Array(c);for(S(arguments);d<c;){if(d in this){e=this[d];f[d]=F(e,a,b,[e,d,this])}d++}return f},filter:function(a,b){var c=this.length, d=0,e=[];for(S(arguments);d<c;){d in this&&E(this[d],a,b,[d,this])&&e.push(this[d]);d++}return e}}); u(n,h,k,{indexOf:function(a,b){if(m.isString(this))return this.indexOf(a,b);return ea(this,a,b,1)},lastIndexOf:function(a,b){if(m.isString(this))return this.lastIndexOf(a,b);return ea(this,a,b,-1)},forEach:function(a,b){var c=this.length,d=0;for(Q(a);d<c;){d in this&&a.call(b,this[d],d,this);d++}},reduce:function(a,b){return fa(this,a,b)},reduceRight:function(a,b){return fa(this,a,b,h)},each:function(a,b,c){I(this,a,b,c,h);return this},find:function(a,b,c){return ca(this,a,b,c)},findAll:function(a, b,c){var d=[];I(this,function(e,f,g){E(e,a,g,[f,g])&&d.push(e)},b,c);return d},findIndex:function(a,b,c){a=ca(this,a,b,c,h);return L(a)?a:-1},count:function(a){if(C(a))return this.length;return this.findAll(a).length},none:function(){return!this.any.apply(this,arguments)},remove:function(){var a,b=this;y(arguments,function(c){for(a=0;a<b.length;)if(E(b[a],c,b,[a,b]))b.splice(a,1);else a++},k);return b},removeAt:function(a,b){if(C(a))return this;if(C(b))b=a;for(var c=0;c<=b-a;c++)this.splice(a,1); return this},add:function(a,b){if(!m.isNumber(s(b))||isNaN(b)||b==-1)b=this.length;else if(b<-1)b+=1;n.prototype.splice.apply(this,[b,0].concat(a));return this},include:function(a,b){return this.clone().add(a,b)},exclude:function(){return n.prototype.remove.apply(this.clone(),arguments)},clone:function(){return M([],this)},unique:function(a){return R(this,a)},union:function(){var a=this;y(arguments,function(b){a=a.concat(b)});return R(a)},intersect:function(){return da(this,y(arguments),k)},subtract:function(){return da(this, y(arguments),h)},at:function(){return J(this,arguments)},first:function(a){if(C(a))return this[0];if(a<0)a=0;return this.slice(0,a)},last:function(a){if(C(a))return this[this.length-1];return this.slice(this.length-a<0?0:this.length-a)},from:function(a){return this.slice(a)},to:function(a){if(C(a))a=this.length;return this.slice(0,a)},min:function(a){return R(T(this,a,"min",h))},max:function(a){return R(T(this,a,"max",h))},least:function(){var a=H(T(this.groupBy.apply(this,arguments),"length","min")); return a.length===this.length?[]:R(a)},most:function(){var a=H(T(this.groupBy.apply(this,arguments),"length","max"));return a.length===this.length?[]:R(a)},sum:function(a){a=a?this.map(a):this;return a.length>0?a.reduce(function(b,c){return b+c}):0},average:function(a){a=a?this.map(a):this;return a.length>0?a.sum()/a.length:0},groupBy:function(a,b){var c=this,d=m.extended(),e;I(c,function(f,g){e=F(f,a,c,[f,g,c]);d[e]||(d[e]=[]);d[e].push(f)});return d.each(b)},inGroups:function(a,b){var c=arguments.length> 1,d=this,e=[],f=(this.length/a).ceil();(0).upto(a-1,function(g){g=g*f;var i=d.slice(g,g+f);c&&i.length<f&&(f-i.length).times(function(){i=i.add(b)});e.push(i)});return e},inGroupsOf:function(a,b){if(this.length===0||a===0)return this;if(C(a))a=1;if(C(b))b=j;var c=[],d=j;this.each(function(e,f){if(f%a===0){d&&c.push(d);d=[]}if(C(e))e=b;d.push(e)});if(!this.length.isMultipleOf(a)){(a-this.length%a).times(function(){d.push(b)});this.length+=a-this.length%a}d.length>0&&c.push(d);return c},compact:function(a){var b= [];I(this,function(c){if(m.isArray(c))b.push(c.compact());else if(a&&c)b.push(c);else if(!a&&L(c)&&c!==j&&(!m.isNumber(c)||!isNaN(c)))b.push(c)});return b},isEmpty:function(){return this.compact().length==0},flatten:function(a){return H(this,a)},sortBy:function(a,b){var c=this.clone();c.sort(function(d,e){var f,g;f=F(d,a,c,[d]);g=F(e,a,c,[e]);return(f&&f.compare?f.compare(g):f<g)*(b?-1:1)});return c},randomize:function(){for(var a=this.concat(),b,c,d=a.length;d;b=parseInt(Math.random()*d),c=a[--d], a[d]=a[b],a[b]=c);return a},zip:function(){var a=G(arguments);return this.map(function(b,c){return[b].concat(a.map(function(d){return c in d?d[c]:j}))})},sample:function(a){var b=[],c=this.clone(),d;for(a>0||(a=1);b.length<a;){d=Number.random(0,c.length-1);b.push(c[d]);c.removeAt(d);if(c.length==0)break}return arguments.length>0?b:b[0]}});u(n,h,k,{all:n.prototype.every,any:n.prototype.some,has:n.prototype.some,insert:n.prototype.add}); function U(a,b,c){c=Math[c||"round"];var d=Math.pow(10,(b||0).abs());if(b<0)d=1/d;return c(a*d)/d}function ga(a,b,c,d){var e=[];a=parseInt(a);for(var f=d>0;f&&a<=b||!f&&a>=b;){e.push(a);c&&c.call(this,a);a+=d}return e} function V(a,b,c,d,e,f){var g=a.toFixed(20),i=g.search(/\./);g=g.search(/[1-9]/);i=i-g;if(i>0)i-=1;e=Math.max(Math.min((i/3).floor(),e===k?c.length:e),-d);d=c.charAt(e+d-1);if(i<-9){e=-3;b=i.abs()-9;d=c.first()}return(a/(f?(2).pow(10*e):(10).pow(e*3))).round(b||0).format()+d.trim()}u(s,k,k,{random:function(a,b){var c;if(arguments.length==1){b=a;a=0}c=Math.min(a||0,L(b)?b:1);return U(Math.random()*(Math.max(a||0,L(b)?b:1)-c)+c)}}); u(s,h,k,{toNumber:function(){return parseFloat(this,10)},abbr:function(a){return V(this,a,"kmbt",0,4)},metric:function(a,b){return V(this,a,"n\u03bcm kMGTPE",4,L(b)?b:1)},bytes:function(a,b){return V(this,a,"kMGTPE",0,L(b)?b:4,h)+"B"},isInteger:function(){return this%1==0},ceil:function(a){return U(this,a,"ceil")},floor:function(a){return U(this,a,"floor")},abs:function(){return Math.abs(this)},pow:function(a){if(C(a))a=1;return Math.pow(this,a)},round:function(a){return U(this,a,"round")},chr:function(){return r.fromCharCode(this)}, isOdd:function(){return!this.isMultipleOf(2)},isEven:function(){return this.isMultipleOf(2)},isMultipleOf:function(a){return this%a===0},upto:function(a,b,c){return ga(this,a,b,c||1)},downto:function(a,b,c){return ga(this,a,b,-(c||1))},times:function(a){if(a)for(var b=0;b<this;b++)a.call(this,b);return this.toNumber()},ordinalize:function(){var a;a=this.abs();var b=a.toString().last(2).toNumber();if(b>=11&&b<=13)a="th";else switch(a%10){case 1:a="st";break;case 2:a="nd";break;case 3:a="rd";break; default:a="th"}return this.toString()+a},pad:function(a,b,c){c=c||10;c=this.toNumber()===0?"":this.toString(c).replace(/^-/,"");c=W(c,"0",a-c.replace(/\.\d+$/,"").length,0);if(b||this<0)c=(this<0?"-":"+")+c;return c},format:function(a,b,c){var d,e,f=/(\d+)(\d{3})/;if(r(b).match(/\d/))throw new TypeError("Thousands separator cannot contain numbers.");d=m.isNumber(a)?U(this,a).toFixed(Math.max(a,0)):this.toString();b=b||",";c=c||".";e=d.split(".");d=e[0];for(e=e[1]||"";d.match(f);)d=d.replace(f,"$1"+ b+"$2");if(e.length>0)d+=c+W(e,"0",0,a-e.length);return d},hex:function(a){return this.pad(a||1,k,16)},compare:function(a){return this-Number(a)}});function X(){return"\t\n\u000b\u000c\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u2028\u2029\u3000\ufeff"} function ha(a,b,c,d){var e=G(b).join("");e=e.replace(/all/,"").replace(/(\w)lphabet|umbers?|atakana|paces?|unctuation/g,"$1");return a.replace(c,function(f){return d[f]&&(!e||e.has(d[f].type))?d[f].to:f})} var ia=[{type:"a",shift:65248,start:65,end:90},{type:"a",shift:65248,start:97,end:122},{type:"n",shift:65248,start:48,end:57},{type:"p",shift:65248,start:33,end:47},{type:"p",shift:65248,start:58,end:64},{type:"p",shift:65248,start:91,end:96},{type:"p",shift:65248,start:123,end:126}],ja={},ka={},la=/[\u0020-\u00A5]|[\uFF61-\uFF9F][\uff9e\uff9f]?/g,ma=/[\u3000-\u301C]|[\u301A-\u30FC]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,na=/[\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30cf\u30d2\u30d5\u30d8\u30db]/, oa=/[\u30cf\u30d2\u30d5\u30d8\u30db\u30f2]/;function Y(a,b,c){ja[b]={type:a,to:c};ka[c]={type:a,to:b}}function W(a,b,c,d){var e=String(b);if(e!=b)e="";m.isNumber(c)||(c=1);m.isNumber(d)||(d=1);return e.repeat(c)+a+e.repeat(d)} u(r,h,k,{escapeRegExp:function(){return o.escape(this)},escapeURL:function(a){return a?encodeURIComponent(this):encodeURI(this)},unescapeURL:function(a){return a?decodeURI(this):decodeURIComponent(this)},escapeHTML:function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},unescapeHTML:function(){return this.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")},encodeBase64:function(){return btoa(this)},decodeBase64:function(){return atob(this)},capitalize:function(a){return this.toLowerCase().replace(a? /\b[a-z]/g:/^[a-z]/,function(b){return b.toUpperCase()})},pad:function(a,b){return W(this,a,b,b)},padLeft:function(a,b){return W(this,a,b,0)},padRight:function(a,b){return W(this,a,0,b)},repeat:function(a){var b="",c=0;if(m.isNumber(a)&&a>0)for(;c<a;){b+=this;c++}return b},each:function(a,b){if(m.isFunction(a)){b=a;a=/./g}else if(a)if(m.isString(a))a=o(o.escape(a),"gi");else{if(m.isRegExp(a))a=a.addFlag("g")}else a=/./g;var c=this.match(a)||[];if(b)for(var d=0;d<c.length;d++)c[d]=b.call(this,c[d], d,c)||c[d];return c},shift:function(a){var b="";a=a||0;this.codes(function(c){b+=(c+a).chr()});return b},codes:function(a){for(var b=[],c=0;c<this.length;c++){var d=this.charCodeAt(c);b.push(d);a&&a.call(this,d,c)}return b},chars:function(a){return this.trim().each(a)},words:function(a){return this.trim().each(/\S+/g,a)},lines:function(a){return this.trim().each(/^.*$/gm,a)},paragraphs:function(a){var b=this.trim().split(/[\r\n]{2,}/);return b=b.map(function(c){if(a)var d=a.call(c);return d?d:c})}, startsWith:function(a,b){if(C(b))b=h;var c=m.isRegExp(a)?a.source.replace("^",""):o.escape(a);return o("^"+c,b?"":"i").test(this)},endsWith:function(a,b){if(C(b))b=h;var c=m.isRegExp(a)?a.source.replace("$",""):o.escape(a);return o(c+"$",b?"":"i").test(this)},isBlank:function(){return this.trim().length===0},has:function(a){return this.search(a)!==-1},add:function(a,b){return this.split("").add(a,b).join("")},remove:function(a){return this.replace(a,"")},hankaku:function(){return ha(this,arguments, ma,ka)},zenkaku:function(){return ha(this,arguments,la,ja)},hiragana:function(a){var b=this;if(a!==k)b=b.zenkaku("k");return b.replace(/[\u30A1-\u30F6]/g,function(c){return c.shift(-96)})},katakana:function(){return this.replace(/[\u3041-\u3096]/g,function(a){return a.shift(96)})},toNumber:function(a){var b=this.replace(/,/g,"");return b.match(/\./)?parseFloat(b):parseInt(b,a||10)},reverse:function(){return this.split("").reverse().join("")},compact:function(){return this.replace(/[\r\n]/g,"").trim().replace(/([\s\u3000])+/g, "$1")},at:function(){return J(this,arguments,h)},first:function(a){a=C(a)?1:a;return this.substr(0,a)},last:function(a){a=C(a)?1:a;return this.substr(this.length-a<0?0:this.length-a)},from:function(a){return this.slice(a)},to:function(a){if(C(a))a=this.length;return this.slice(0,a)},toDate:function(a){var b=this.toString();return q.create?q.create(b,a):new q(b)},dasherize:function(){return this.underscore().replace(/_/g,"-")},underscore:function(){return this.replace(/[-\s]+/g,"_").replace(String.Inflector&& String.Inflector.acronymRegExp,function(a,b){return(b>0?"_":"")+a.toLowerCase()}).replace(/([A-Z\d]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").toLowerCase()},camelize:function(a){return this.underscore().replace(/(^|_)([^_]+)/g,function(b,c,d,e){b=r.Inflector&&r.Inflector.acronyms&&r.Inflector.acronyms[d];e=a!==k||e>0;if(b)return e?b:b.toLowerCase();return e?d.capitalize():d})},spacify:function(){return this.underscore().replace(/_/g," ")},stripTags:function(){var a=this;y(arguments.length> 0?arguments:[""],function(b){a=a.replace(o("</?"+b.escapeRegExp()+"[^<>]*>","gi"),"")});return a},removeTags:function(){var a=this;y(arguments.length>0?arguments:["\\S+"],function(b){b=o("<("+b+")[^<>]*(?:\\/>|>.*?<\\/\\1>)","gi");a=a.replace(b,"")});return a},truncate:function(a,b,c){var d;b=C(b)?"...":String(b);a-=b.length;if(this.length<=a)return this.toString();d=b.match(/^(.)\1+$/)?b.slice(0,1):"";for(d=o("[^"+X()+d+"]["+X()+d+"]");a>0&&!d.test(this.slice(a-1,a+1))&&c!==h;)a--;return this.slice(0, a)+(a>0?b:"")},assign:function(){var a=m.extended();y(arguments,function(b,c){if(m.isObject(b))a.merge(b);else a[c+1]=b});return this.replace(/\{(.+?)\}/g,function(b,c){return a.hasOwnProperty(c)?a[c]:b})},compare:function(a,b){var c=this;a=String(a);if(b===h)b=/\W/g;if(b){a=a.remove(b);c=c.remove(b)}return c==a?0:c<a?-1:1}}); u(r,h,function(a){return m.isRegExp(a)},{split:function(a,b){var c=[],d=0;a=o(a).addFlag("g");var e,f,g,i;o.c||(e=RegExp("^"+a.source+"$(?!\\s)",a.getFlags()));if(C(b)||b<0)b=Infinity;else{b|=0;if(!b)return[]}for(;f=a.exec(this);){g=f.index+f[0].length;if(g>d){c.push(this.slice(d,f.index));!o.c&&f.length>1&&f[0].replace(e,function(){for(var l=1;l<arguments.length-2;l++)if(C(arguments[l]))f[l]=void 0});f.length>1&&f.index<this.length&&n.prototype.push.apply(c,f.slice(1));i=f[0].length;d=g;if(c.length>= b)break}a.lastIndex===f.index&&a.lastIndex++}if(d===this.length){if(i||!a.test(""))c.push("")}else c.push(this.slice(d));return c.length>b?c.slice(0,b):c}});u(r,h,k,{insert:r.prototype.add});o.c=C(o("()??").exec("")[1]);function Z(a,b){var c="";if(b=="g"||a.global)c+="g";if(b=="i"||a.ignoreCase)c+="i";if(b=="m"||a.multiline)c+="m";if(b=="y"||a.f)c+="y";return c}u(o,k,k,{escape:function(a){m.isString(a)||(a=String(a));return a.replace(/([/'*+?|()\[\]{}.^$])/g,"\\$1")}}); u(o,h,k,{getFlags:function(){return Z(this)},setFlags:function(a){return o(this.source,a)},addFlag:function(a){return this.setFlags(Z(this,a))},removeFlag:function(a){return this.setFlags(Z(this).replace(a,""))}});function $(a,b,c,d,e){if(!a.b)a.b=[];a.b.push(setTimeout(function(){a.b.removeAt(f);c.apply(d,e||[])},b));var f=a.b.length} u(Function,h,k,{lazy:function(a,b){function c(){if(!(g||f.length==0)){for(var p=Math.max(f.length-l,0);f.length>p;)Function.prototype.apply.apply(e,f.shift());$(d,i,function(){g=k;c()});g=h}}function d(){if(!(g&&f.length>b-2)){f.push([this,arguments]);c()}}var e=this,f=[],g=k,i,l;a=a||1;b=b||Infinity;i=a.ceil();l=U(i/a);return d},delay:function(a){m.isNumber(a)||(a=0);var b=G(arguments,1);$(this,a,this,this,b);return this},debounce:function(a,b){var c=this;return b===k?this.lazy(a,1):function(){c.cancel(); $(c,a,c,this,arguments)}},cancel:function(){if(m.isArray(this.b))for(;this.b.length>0;)clearTimeout(this.b.shift());return this},after:function(a){var b=this,c=0,d=[];if(m.isNumber(a)){if(a===0){b.call();return b}}else a=1;return function(){var e;d.push(Array.create(arguments));c++;if(c==a){e=b.call(this,d);c=0;d=[];return e}}},once:function(){var a=this;return function(){return a.hasOwnProperty("memo")?a.memo:a.memo=a.apply(this,arguments)}},fill:function(){var a=this,b=G(arguments);return function(){var c= G(arguments);I(b,function(d,e){if(L(d)||e>=c.length)c.splice(e,0,d)});return a.apply(this,c)}}});(function(){var a={};I(["Array","Boolean","Date","Function","Number","String","RegExp"],function(b){a["is"+b]=function(c){return D(c,b)}});u(Object,k,k,a)})();A(["keys","values","each","merge","isEmpty","clone","equal","watch","tap"],P); (function(a){if(!L(this.btoa)){var b=/[^A-Za-z0-9\+\/\=]/g;btoa=function(c){var d="",e,f,g,i,l,p,N=0;do{e=c.charCodeAt(N++);f=c.charCodeAt(N++);g=c.charCodeAt(N++);i=e>>2;e=(e&3)<<4|f>>4;l=(f&15)<<2|g>>6;p=g&63;if(isNaN(f))l=p=64;else if(isNaN(g))p=64;d=d+a.charAt(i)+a.charAt(e)+a.charAt(l)+a.charAt(p)}while(N<c.length);return d};atob=function(c){var d="",e,f,g,i,l,p=0;if(c.match(b))throw Error("String contains invalid base64 characters");c=c.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(c.charAt(p++)); f=a.indexOf(c.charAt(p++));i=a.indexOf(c.charAt(p++));l=a.indexOf(c.charAt(p++));e=e<<2|f>>4;f=(f&15)<<4|i>>2;g=(i&3)<<6|l;d+=e.chr();if(i!=64)d+=f.chr();if(l!=64)d+=g.chr()}while(p<c.length);return unescape(d)}}})("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="); (function(){var a=X().match(/^\s+$/);try{r.prototype.trim.call([1])}catch(b){a=k}var c=o("^["+X()+"]+"),d=o("["+X()+"]+$");u(r,h,!a,{trim:function(){return this.toString().trimLeft().trimRight()},trimLeft:function(){return this.replace(c,"")},trimRight:function(){return this.replace(d,"")}})})(); (function(){var a;I(ia,function(b){b.start.upto(b.end,function(c){Y(b.type,c.chr(),(c+b.shift).chr())})});"\u30a2\u30a4\u30a6\u30a8\u30aa\u30a1\u30a3\u30a5\u30a7\u30a9\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c3\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e3\u30e6\u30e5\u30e8\u30e7\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f2\u30f3\u30fc\u30fb".each(function(b,c){a="\uff71\uff72\uff73\uff74\uff75\uff67\uff68\uff69\uff6a\uff6b\uff76\uff77\uff78\uff79\uff7a\uff7b\uff7c\uff7d\uff7e\uff7f\uff80\uff81\uff82\uff6f\uff83\uff84\uff85\uff86\uff87\uff88\uff89\uff8a\uff8b\uff8c\uff8d\uff8e\uff8f\uff90\uff91\uff92\uff93\uff94\uff6c\uff95\uff6d\uff96\uff6e\uff97\uff98\uff99\uff9a\uff9b\uff9c\uff66\uff9d\uff70\uff65".charAt(c); Y("k",a,b);b.match(na)&&Y("k",a+"\uff9e",b.shift(1));b.match(oa)&&Y("k",a+"\uff9f",b.shift(2))});"\u3002\u3001\u300c\u300d\uffe5\uffe0\uffe1".each(function(b,c){Y("p","\uff61\uff64\uff62\uff63\u00a5\u00a2\u00a3".charAt(c),b)});Y("k","\uff73\uff9e","\u30f4");Y("k","\uff66\uff9e","\u30fa");Y("s"," ","\u3000")})(); [{a:["Arabic"],source:"\u0600-\u06ff"},{a:["Cyrillic"],source:"\u0400-\u04ff"},{a:["Devanagari"],source:"\u0900-\u097f"},{a:["Greek"],source:"\u0370-\u03ff"},{a:["Hangul"],source:"\uac00-\ud7af\u1100-\u11ff"},{a:["Han","Kanji"],source:"\u4e00-\u9fff\uf900-\ufaff"},{a:["Hebrew"],source:"\u0590-\u05ff"},{a:["Hiragana"],source:"\u3040-\u309f\u30fb-\u30fc"},{a:["Kana"],source:"\u3040-\u30ff\uff61-\uff9f"},{a:["Katakana"],source:"\u30a0-\u30ff\uff61-\uff9f"},{a:["Latin"],source:"\u0001-\u0080-\u00ff\u0100-\u017f\u0180-\u024f"}, {a:["Thai"],source:"\u0e00-\u0e7f"}].each(function(a){var b=o("^["+a.source+"\\s]+$"),c=o("["+a.source+"]");a.a.each(function(d){x(r.prototype,"is"+d,function(){return b.test(this.trim())});x(r.prototype,"has"+d,function(){return c.test(this)})})}); (function(){var a=k;if(Function.prototype.d){a=function(){};var b=a.d();a=new b instanceof b&&!(new a instanceof b)}u(Function,h,!a,{bind:function(c){var d=this,e=G(arguments,1),f,g;if(!m.isFunction(this))throw new TypeError("Function.prototype.bind called on a non-function");g=function(){return d.apply(d.prototype&&this instanceof d?this:c,e.concat(G(arguments)))};f=function(){};f.prototype=this.prototype;g.prototype=new f;return g}})})();v(q);})(this);