diff --git a/bower.json b/bower.json index f6f3032..fd28888 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { - "name": "agile", - "version": "0.0.2", + "name": "fragile", + "version": "0.0.3", "main": "dist/agile.js", - "description": "Like Underscore, but with zero callbacks and really more fun", + "description": "Dirty fix for agile library. Do not use this library, use agile instead.", "repository": { "type": "git", - "url": "https://github.com/a8m/agile.git" + "url": "https://github.com/freemanfx/agile.git" }, "dependencies": { }, diff --git a/dist/agile.js b/dist/agile.js index 6589f22..dbb9347 100644 --- a/dist/agile.js +++ b/dist/agile.js @@ -1,6 +1,6 @@ /** * Like Underscore, but with zero callbacks and really more fun - * @version v0.0.2 - 2014-11-15 * @link https://github.com/a8m/agile + * @version v0.0.2 - 2015-04-14 * @link https://github.com/a8m/agile * @author Ariel Mashraki * @license MIT License, http://www.opensource.org/licenses/MIT */ @@ -197,12 +197,11 @@ function afterWhere(array, exp) { * @description * get an array and specified count, and returns all of the items * in the collection after the specified count. - * */ function after(array, count) { - return (isArray(array)) ? - array.slice(count) : - array; + return (isArray(array)) + ? array.slice(count) + : array; } /** * @ngdoc filter @@ -232,11 +231,10 @@ function beforeWhere(array, exp) { * get a array and specified count, and returns all of the items * in the array before the specified count. */ - function before(array, count) { - return (isArray(array)) ? - array.slice(0, (!count) ? count : --count) : - array; + return isArray(array) + ? array.slice(0, (!count) ? count : --count) + : array; } /** @@ -254,10 +252,10 @@ function contains(array, exp) { return true; } - return array.some( function(elm) { - return (isObject(elm) || isFunction(exp)) ? - $parse(exp)(elm) : - elm === exp; + return array.some(function(elm) { + return (isObject(elm) || isFunction(exp)) + ? $parse(exp)(elm) + : elm === exp; }); } /** @@ -447,8 +445,9 @@ function first(array) { n = (isNumber(args[0])) ? args[0] : 1; getter = (!isNumber(args[0])) ? args[0] : (!isNumber(args[1])) ? args[1] : undefined; - return (args.length) ? getFirstMatches(array, n,(getter) ? $parse(getter) : getter) : - array[0]; + return (args.length) + ? getFirstMatches(array, n,(getter) ? $parse(getter) : getter) + : array[0]; } /** * @name flatten @@ -466,8 +465,9 @@ function flatten(array, shallow) { return array; } - return (!shallow) ? depthFlatten(array, 0) : - [].concat.apply([], array); + return !shallow + ? depthFlatten(array, 0) + : [].concat.apply([], array); } /** @@ -545,11 +545,11 @@ function last(array) { n = (isNumber(args[0])) ? args[0] : 1; getter = (!isNumber(args[0])) ? args[0] : (!isNumber(args[1])) ? args[1] : undefined; - return (args.length) ? + return (args.length) //send reversed array as arguments, and reverse it back as result - getFirstMatches(reversed.reverse(), n,(getter) ? $parse(getter) : getter).reverse() : + ? getFirstMatches(reversed.reverse(), n,(getter) ? $parse(getter) : getter).reverse() //get the last element - reversed[reversed.length-1]; + : reversed[reversed.length-1]; } /** @@ -734,7 +734,9 @@ function reverse(input) { return input.split('').reverse().join(''); } - return (isArray(input)) ? input.slice().reverse() : input; + return (isArray(input)) + ? input.slice().reverse() + : input; } /** * @name sum @@ -817,10 +819,10 @@ function xor(col1, col2, expression) { function some(el, col) { var getter = $parse(expression); return col.some(function(dElm) { - return expression ? - equals(getter(dElm), getter(el)) : - equals(dElm, el); - }) + return expression + ? equals(getter(dElm), getter(el)) + : equals(dElm, el); + }); } } // AngularJS Boolean @@ -876,6 +878,7 @@ function isDefined(value){return typeof value !== 'undefined';} * @returns {boolean} True if `value` is a `Date`. */ function isDate(value) { + var toString = (value).toString; return toString.call(value) === '[object Date]'; } @@ -923,6 +926,7 @@ function isEmpty(value) { * @returns {boolean} True if `value` is a `Boolean`. */ function isBoolean(value){return typeof value === 'boolean';} + //these methods is kind of common methods for chaining wrappers /** * @description @@ -1064,11 +1068,9 @@ function ltrim(input, chars) { var trim = chars || '\\s'; - if(!isString(input)) { - return input; - } - - return input.replace(new RegExp('^' + trim + '+'), ''); + return isString(input) + ? input.replace(new RegExp('^' + trim + '+'), '') + : input; } /** * @name repeat @@ -1081,7 +1083,9 @@ function repeat(input, n) { var times = ~~n; - return (!isString(input) || !times) ? input : strRepeat(input, n); + return (!isString(input) || !times) + ? input + : strRepeat(input, n); } /** @@ -1113,11 +1117,9 @@ function rtrim(input, chars) { var trim = chars || '\\s'; - if(!isString(input)) { - return input; - } - - return input.replace(new RegExp(trim + '+$'), ''); + return isString(input) + ? input.replace(new RegExp(trim + '+$'), '') + : input; } /** * @name slugify @@ -1130,12 +1132,9 @@ function slugify(input, sub) { var replace = sub || '-'; - if(isString(input)) { - return input.toLowerCase() - .replace(/\s+/g, replace); - } - - return input; + return isString(input) + ? input.toLowerCase().replace(/\s+/g, replace) + : input; } /** * @name startsWith @@ -1169,7 +1168,6 @@ function stringular(input) { return input.replace(/{(\d+)}/g, function (match, number) { return isUndefined(args[number]) ? match : args[number]; }); - } /** * @name stripTags @@ -1179,10 +1177,9 @@ function stringular(input) { * strip html tags from string */ function stripTags(input) { - if(isString(input)) { - return input.replace(/<\S[^><]*>/g, ''); - } - return input; + return isString(input) + ? input.replace(/<\S[^><]*>/g, '') + : input; } /** * @name trim @@ -1195,11 +1192,9 @@ function trim(input, chars) { var trim = chars || '\\s'; - if(!isString(input)) { - return input; - } - - return input.replace(new RegExp('^' + trim + '+|' + trim + '+$', 'g'), ''); + return isString(input) + ? input.replace(new RegExp('^' + trim + '+|' + trim + '+$', 'g'), '') + : input; } /** * @name truncate @@ -1217,9 +1212,9 @@ function truncate(input, length, suffix, preserve) { if(!isString(input) || (input.length <= length)) return input; - return input.substring(0, (preserve) ? - ((input.indexOf(' ', length) === -1) ? input.length : input.indexOf(' ', length)) : - length) + suffix; + return input.substring(0, (preserve) + ? ((input.indexOf(' ', length) === -1) ? input.length : input.indexOf(' ', length)) + : length) + suffix; } /** * @name ucfirst @@ -1229,10 +1224,13 @@ function truncate(input, length, suffix, preserve) { * upper case first char */ function ucfirst(input) { - return isString(input) ? input.split(' ') - .map(function (char) { - return char.charAt(0).toUpperCase() + char.substring(1); - }).join(' ') : input; + return isString(input) + ? input.split(' ') + .map(function (char) { + return char.charAt(0).toUpperCase() + char.substring(1); + }) + .join(' ') + : input; } /** @@ -1243,13 +1241,9 @@ function ucfirst(input) { * Wrap a string with another string */ function wrap(input, wrap, ends) { - - if(!isString(input) || isUndefined(wrap)) { - return input; - } - - return [wrap, input, ends || wrap].join(''); - + return isString(input) && isDefined(wrap) + ? [wrap, input, ends || wrap].join('') + : input; } // AngularJS Utils /** diff --git a/dist/agile.min.js b/dist/agile.min.js index edd1ec9..b17f6db 100644 --- a/dist/agile.min.js +++ b/dist/agile.min.js @@ -1,6 +1,6 @@ /** * Like Underscore, but with zero callbacks and really more fun - * @version v0.0.2 - 2014-11-15 * @link https://github.com/a8m/agile + * @version v0.0.2 - 2015-04-14 * @link https://github.com/a8m/agile * @author Ariel Mashraki * @license MIT License, http://www.opensource.org/licenses/MIT - */!function(a,b){"use strict";function c(a,b){return b=Error,function(c){var d=Array.prototype.slice.call(arguments,1),e="["+a+":]"+c.replace(/{(\d+)}/g,function(a,b){return P(d[b])?a:d[b]});return b(e)}}function d(a){return function(){return a}}function e(a,b,c){var d,f;if(a)if(S(a))for(d in a)"prototype"==d||"length"==d||"name"==d||a.hasOwnProperty&&!a.hasOwnProperty(d)||b.call(c,a[d],d,a);else if(Lb(a)||h(a)){var g="object"!=typeof a;for(d=0,f=a.length;f>d;d++)(g||d in a)&&b.call(c,a[d],d,a)}else if(a.forEach&&a.forEach!==e)a.forEach(b,c,a);else for(d in a)a.hasOwnProperty(d)&&b.call(c,a[d],d,a);return a}function f(a,b,c){var d=0;return a.filter(function(a){var e=Q(c)?b>d&&c(a):b>d;return d=e?d+1:d,e})}function g(a,b,c){var d=b.map(function(a){return Xb(c)(a)});return d.indexOf(Math[a].apply(Math,d))}function h(a){if(null==a||i(a))return!1;var b=a.length;return a.nodeType===Kb&&b?!0:M(a)||Lb(a)||0===b||"number"==typeof b&&b>0&&b-1 in a}function i(a){return a&&a.window===a}function j(a,b,c){for(var d,e=-1;++e=a.length?a:Lb(a[b])?z(a.slice(0,b).concat(a[b],a.slice(b+1)),b):z(a,b+1)}function A(a,b){var c,d={},f=Xb(b);return!Lb(a)||P(b)?a:(e(a,function(a){c=f(a),d[c]||(d[c]=[]),d[c].push(a)}),d)}function B(a){var c,d,e,g;return Lb(a)?(g=a.slice(),e=Array.prototype.slice.call(arguments,1),c=O(e[0])?e[0]:1,d=O(e[0])?O(e[1])?b:e[1]:e[0],e.length?f(g.reverse(),c,d?Xb(d):d).reverse():g[g.length-1]):a}function C(a,b){return!Lb(a)||P(b)?a:a.map(function(a){return Xb(b)(a)})}function D(a,b){return Lb(a)?P(b)?Math.max.apply(Math,a):a[g("max",a,b)]:a}function E(a,b){return Lb(a)?P(b)?Math.min.apply(Math,a):a[g("min",a,b)]:a}function F(a,b){return!Lb(a)||P(b)?a:a.filter(function(a){return N(a)||S(b)?!Xb(b)(a):a!==b})}function G(a,b,c){function d(a,c){for(var d=0;da?-1:1):d>c?-1:1}if(!h(a))return a;b=Lb(b)?b:[b],0===b.length&&(b=["+"]),b=b.map(function(a){var b=!1,c=a||nb;if(M(a)){if(("+"==a.charAt(0)||"-"==a.charAt(0))&&(b="-"==a.charAt(0),a=a.substring(1)),""===a)return e(function(a,b){return f(a,b)},b);if(c=Xb(a),c.constant){var d=c();return e(function(a,b){return f(a[d],b[d])},b)}}return e(function(a,b){return f(c(a),c(b))},b)});for(var g=[],i=0;i>=1);return c}function db(a,b){var c=b||"\\s";return M(a)?a.replace(new RegExp(c+"+$"),""):a}function eb(a,b){var c=b||"-";return M(a)?a.toLowerCase().replace(/\s+/g,c):a}function fb(a,b,c){var d=c||!1;return!M(a)||P(b)?a:(a=d?a:a.toLowerCase(),!a.indexOf(d?b:b.toLowerCase()))}function gb(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,c){return P(b[c])?a:b[c]})}function hb(a){return M(a)?a.replace(/<\S[^><]*>/g,""):a}function ib(a,b){var c=b||"\\s";return M(a)?a.replace(new RegExp("^"+c+"+|"+c+"+$","g"),""):a}function jb(a,b,c,d){return b=P(b)?a.length:b,d=d||!1,c=c||"",!M(a)||a.length<=b?a:a.substring(0,d?-1===a.indexOf(" ",b)?a.length:a.indexOf(" ",b):b)+c}function kb(a){return M(a)?a.split(" ").map(function(a){return a.charAt(0).toUpperCase()+a.substring(1)}).join(" "):a}function lb(a,b,c){return!M(a)||P(b)?a:[b,a,c||b].join("")}function mb(a,c){if(a===c)return!0;if(null===a||null===c)return!1;if(a!==a&&c!==c)return!0;var d,e,f,g=typeof a,h=typeof c;if(g==h&&"object"==g){if(!Lb(a)){if(R(a))return R(c)?mb(a.getTime(),c.getTime()):!1;if(T(a)&&T(c))return a.toString()==c.toString();if(i(a)||i(c)||Lb(c))return!1;f={};for(e in a)if(!S(a[e])){if(!mb(a[e],c[e]))return!1;f[e]=!0}for(e in c)if(!f.hasOwnProperty(e)&&c[e]!==b&&!S(c[e]))return!1;return!0}if(!Lb(c))return!1;if((d=a.length)==c.length){for(e=0;d>e;e++)if(!mb(a[e],c[e]))return!1;return!0}}return!1}function nb(a){return a}function ob(a){for(var b=1,c=arguments.length;c>b;b++){var d=arguments[b];if(d)for(var e=Object.keys(d),f=0,g=e.length;g>f;f++){var h=e[f];a[h]=d[h]}}return a}function pb(){return Object.create(null)}function qb(){}function rb(a){return"undefined"==typeof a?b:JSON.stringify(a)}function sb(a,b,c,d){if(i(a))throw Error("Can't copy! Making copies of Window instances is not supported.");if(b){if(a===b)throw Error("Can't copy! Source and destination are identical.");if(c=c||[],d=d||[],N(a)){var f=c.indexOf(a);if(-1!==f)return d[f];c.push(a),d.push(b)}var g;if(Lb(a)){b.length=0;for(var h=0;h1;g++){e=tb(f.shift(),d);var h=ub(a[e],d);h||(h={},a[e]=h),a=h}return e=tb(f.shift(),d),ub(a[e],d),a[e]=c,c}function yb(a,c,d,e,f,g){return tb(a,g),tb(c,g),tb(d,g),tb(e,g),tb(f,g),function(g,h){var i=h&&h.hasOwnProperty(a)?h:g;return null==i?i:(i=i[a],c?null==i?b:(i=i[c],d?null==i?b:(i=i[d],e?null==i?b:(i=i[e],f?null==i?b:i=i[f]:i):i):i):i)}}function zb(a,c,f){var g=Wb[a];if(g)return g;var h=a.split("."),i=h.length;if(c.csp)g=6>i?yb(h[0],h[1],h[2],h[3],h[4],f):function(a,c){var d,e=0;do d=yb(h[e++],h[e++],h[e++],h[e++],h[e++],f)(a,c),c=b,a=d;while(i>e);return d};else{var j="";e(h,function(a,b){tb(a,f),j+="if(s == null) return undefined;\ns="+(b?"s":'((l&&l.hasOwnProperty("'+a+'"))?l:s)')+"."+a+";\n"}),j+="return s;";var k=new Function("s","l",j);k.toString=d(j),g=k}return g.sharedGetter=!0,g.assign=function(b,c){return xb(b,a,c,a)},Wb[a]=g,g}function Ab(a,b,c){e(b,function(b){var d=M(b)?b:b.name,e=M(b)?c[b]:N(b)?b.action:b,f=M(b)&&!c.E;a.prototype[d]=function(){var a=Array.prototype.slice.call(arguments),b=[this.__value__].concat(a),c=f?e.call(this.__value__,a):e.apply(this,b);return Yb.test(d)||V(c)?c:Hb(c)}})}function Bb(a,b){e(b,function(b){a[b.name]=S(b)?b:b.action})}function Cb(a){this.__value__=a}function Db(a){this.__value__=a}function Eb(a){this.__value__=a}function Fb(a){this.__value__=a}function Gb(a){switch(typeof a){case"string":return Cb;case"number":return Fb;case"object":return Lb(a)?Db:Eb;default:throw Error("Agile value can't be ["+typeof a+"] as an argument")}}function Hb(a){if(a&&a.__wrapped__)return a;var b,c=Gb(a);return(b=new c(a)).__wrapped__=!0,b}function Ib(a){return"object"==typeof module&&module&&module.exports===a?module.exports=Hb:a[a._?"agile":"_"]=Hb}var Jb=c("$parse"),Kb=(Object.prototype.hasOwnProperty,1),Lb=Array.isArray,Mb=function(a){return M(a)?a.toUpperCase():a},Nb=function(a){return M(a)?a.toLowerCase():a},Ob=Function.prototype.call,Pb=Function.prototype.apply,Qb=Function.prototype.bind,Rb=pb();e({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(a,b){a.constant=a.literal=a.sharedGetter=!0,Rb[b]=a}),Rb["this"]=function(a){return a},Rb["this"].sharedGetter=!0;var Sb=ob(pb(),{"+":function(a,c,d,e){return d=d(a,c),e=e(a,c),Q(d)?Q(e)?d+e:d:Q(e)?e:b},"-":function(a,b,c,d){return c=c(a,b),d=d(a,b),(Q(c)?c:0)-(Q(d)?d:0)},"*":function(a,b,c,d){return c(a,b)*d(a,b)},"/":function(a,b,c,d){return c(a,b)/d(a,b)},"%":function(a,b,c,d){return c(a,b)%d(a,b)},"===":function(a,b,c,d){return c(a,b)===d(a,b)},"!==":function(a,b,c,d){return c(a,b)!==d(a,b)},"==":function(a,b,c,d){return c(a,b)==d(a,b)},"!=":function(a,b,c,d){return c(a,b)!=d(a,b)},"<":function(a,b,c,d){return c(a,b)":function(a,b,c,d){return c(a,b)>d(a,b)},"<=":function(a,b,c,d){return c(a,b)<=d(a,b)},">=":function(a,b,c,d){return c(a,b)>=d(a,b)},"&&":function(a,b,c,d){return c(a,b)&&d(a,b)},"||":function(a,b,c,d){return c(a,b)||d(a,b)},"!":function(a,b,c){return!c(a,b)},"=":!0,"|":!0}),Tb={n:"\n",f:"\f",r:"\r",t:" ",v:" ","'":"'",'"':'"'},Ub=function(a){this.options=a};Ub.prototype={constructor:Ub,lex:function(a){for(this.text=a,this.index=0,this.ch=b,this.tokens=[];this.index="0"&&"9">=a},isWhitespace:function(a){return" "===a||"\r"===a||" "===a||"\n"===a||" "===a||" "===a},isIdent:function(a){return a>="a"&&"z">=a||a>="A"&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,c){c=c||this.index;var d=Q(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,c)+"]":" "+c;throw Jb("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",a,d,this.text)},readNumber:function(){for(var a="",b=this.index;this.index0){var e=this.tokens[0],f=e.text;if(f===a||f===b||f===c||f===d||!a&&!b&&!c&&!d)return e}return!1},expect:function(a,b,c,d){var e=this.peek(a,b,c,d);return e?(this.tokens.shift(),e):!1},consume:function(a){this.expect(a)||this.throwError("is unexpected, expecting ["+a+"]",this.peek())},unaryFn:function(a,b){return ob(function(c,d){return a(c,d,b)},{constant:b.constant,inputs:[b]})},binaryFn:function(a,b,c,d){return ob(function(d,e){return b(d,e,a,c)},{constant:a.constant&&c.constant,inputs:!d&&[a,c]})},statements:function(){for(var a=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&a.push(this.filterChain()),!this.expect(";"))return 1===a.length?a[0]:function(b,c){for(var d,e=0,f=a.length;f>e;e++)d=a[e](b,c);return d}},filterChain:function(){for(var a,b=this.expression();a=this.expect("|");)b=!0;return b},expression:function(){return this.assignment()},assignment:function(){var a,b,c=this.ternary();return(b=this.expect("="))?(c.assign||this.throwError("implies assignment but ["+this.text.substring(0,b.index)+"] can not be assigned to",b),a=this.ternary(),ob(function(b,d){return c.assign(b,a(b,d),d)},{inputs:[c,a]})):c},ternary:function(){var a,b,c=this.logicalOR();if(b=this.expect("?")){if(a=this.assignment(),b=this.expect(":")){var d=this.assignment();return ob(function(b,e){return c(b,e)?a(b,e):d(b,e)},{constant:c.constant&&a.constant&&d.constant})}this.throwError("expected :",b)}return c},logicalOR:function(){for(var a,b=this.logicalAND();a=this.expect("||");)b=this.binaryFn(b,a.fn,this.logicalAND(),!0);return b},logicalAND:function(){var a,b=this.equality();return(a=this.expect("&&"))&&(b=this.binaryFn(b,a.fn,this.logicalAND(),!0)),b},equality:function(){var a,b=this.relational();return(a=this.expect("==","!=","===","!=="))&&(b=this.binaryFn(b,a.fn,this.equality())),b},relational:function(){var a,b=this.additive();return(a=this.expect("<",">","<=",">="))&&(b=this.binaryFn(b,a.fn,this.relational())),b},additive:function(){for(var a,b=this.multiplicative();a=this.expect("+","-");)b=this.binaryFn(b,a.fn,this.multiplicative());return b},multiplicative:function(){for(var a,b=this.unary();a=this.expect("*","/","%");)b=this.binaryFn(b,a.fn,this.unary());return b},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(Vb.ZERO,a.fn,this.unary()):(a=this.expect("!"))?this.unaryFn(a.fn,this.unary()):this.primary()},fieldAccess:function(a){var b=this.text,c=this.expect().text,d=zb(c,this.options,b);return ob(function(b,c,e){return d(e||a(b,c))},{assign:function(d,e,f){var g=a(d,f);return g||a.assign(d,g={}),xb(g,c,e,b)}})},objectIndex:function(a){var c=this.text,d=this.expression();return this.consume("]"),ob(function(e,f){var g,h=a(e,f),i=d(e,f);return tb(i,c),h?g=ub(h[i],c):b},{assign:function(b,e,f){var g=tb(d(b,f),c),h=ub(a(b,f),c);return h||a.assign(b,h={}),h[g]=e}})},functionCall:function(a,b){var c=[];if(")"!==this.peekToken().text)do c.push(this.expression());while(this.expect(","));this.consume(")");var d=this.text,e=c.length?[]:null;return function(f,g){var h=b?b(f,g):f,i=a(f,g,h)||qb;if(e)for(var j=c.length;j--;)e[j]=ub(c[j](f,g),d);ub(h,d),vb(i,d);var k=i.apply?i.apply(h,e):i(e[0],e[1],e[2],e[3],e[4]);return ub(k,d)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;var b=this.expression();a.push(b)}while(this.expect(","));return this.consume("]"),ob(function(b,c){for(var d=[],e=0,f=a.length;f>e;e++)d.push(a[e](b,c));return d},{literal:!0,constant:a.every(wb),inputs:a})},object:function(){var a=[],b=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var c=this.expect();a.push(c.string||c.text),this.consume(":");var d=this.expression();b.push(d)}while(this.expect(","));return this.consume("}"),ob(function(c,d){for(var e={},f=0,g=b.length;g>f;f++)e[a[f]]=b[f](c,d);return e},{literal:!0,constant:b.every(wb),inputs:b})}};var Wb=pb(),Xb=(Object.prototype.valueOf,function(){function a(a,b){return b?function(c,d){var e=a(c,d),f=b(e,c,d);return Q(e)?f:e}:a}var b=pb(),c={csp:!1};return function(d,e){var f,g,h;switch(typeof d){case"string":if(h=d=d.trim(),f=b[h],!f){":"===d.charAt(0)&&":"===d.charAt(1)&&(g=!0,d=d.substring(2));var i=new Ub(c),j=new Vb(i,c);f=j.parse(d),b[h]=f}return a(f,e);case"function":return a(d,e);default:return a(qb,e)}}}()),Yb=/^(?:value|identity)$/,Zb={STRING:["charAt","concat","indexOf","lastIndexOf","match","replace","slice","substr","substring","toLowerCase","toUpperCase"],ARRAY:["concat","join","pop","push","shift","sort","splice","unshift","indexOf","lastIndexOf"],NUMBER:["abs","ceil","cos","floor","round","sin","sqrt","pow","tan"]},$b={BASE:[{name:"add",action:W},{name:"value",action:nb}],OBJECT:[{name:"keys",action:Y},{name:"toArray",action:$},{name:"extend",action:ob},{name:"forEach",action:e}],STRING:[{name:"startsWith",action:fb},{name:"endsWith",action:_},{name:"trim",action:ib},{name:"ltrim",action:ab},{name:"rtrim",action:db},{name:"repeat",action:bb},{name:"slugify",action:eb},{name:"stringular",action:gb},{name:"stripTags",action:hb},{name:"truncate",action:jb},{name:"ucfirst",action:kb},{name:"wrap",action:lb},{name:"reverse",action:I}],ARRAY:[{name:"after",action:l},{name:"afterWhere",action:k},{name:"before",action:n},{name:"beforeWhere",action:m},{name:"contains",action:o},{name:"countBy",action:p},{name:"defaults",action:q},{name:"map",action:C},{name:"contains",action:o},{name:"find",action:w},{name:"findIndex",action:t},{name:"findLast",action:v},{name:"findLastIndex",action:u},{name:"first",action:x},{name:"last",action:B},{name:"flatten",action:y},{name:"every",action:r},{name:"groupBy",action:A},{name:"omit",action:F},{name:"filter",action:s},{name:"remove",action:H},{name:"reverse",action:I},{name:"unique",action:K},{name:"uniq",action:K},{name:"xor",action:L},{name:"max",action:D},{name:"min",action:E},{name:"sum",action:J},{name:"pluck",action:C},{name:"pick",action:s},{name:"some",action:o},{name:"orderBy",action:G},{name:"sortBy",action:G},{name:"forEach",action:e}]},_b=y([Zb.STRING,$b.STRING,$b.BASE]);Ab(Cb,_b,String.prototype);var ac=y([Zb.ARRAY,$b.ARRAY,$b.BASE]);Ab(Db,ac,Array.prototype);var bc=y([$b.OBJECT,$b.BASE]);Ab(Eb,bc,Object.prototype);var cc=y([Zb.NUMBER,$b.BASE]);Ab(Fb,cc,Math);var dc=y([$b.BASE,$b.ARRAY,$b.STRING,$b.OBJECT]);Bb(Hb,dc),Hb.isString=M,Hb.isObject=N,Hb.isNumber=O,Hb.isUndefined=P,Hb.isDefined=Q,Hb.isArray=Lb,Hb.isDate=R,Hb.isFunction=S,Hb.isEmpty=U,Hb.copy=sb,Hb.equals=mb,Hb.identity=nb,Hb.dictionary=pb,Hb.noop=qb,Hb.uppercase=Mb,Hb.lowercase=Nb,Hb.toJson=rb,Hb.parse=Xb,Ib(a)}(this); \ No newline at end of file + */!function(a,b){"use strict";function c(a,b){return b=Error,function(c){var d=Array.prototype.slice.call(arguments,1),e="["+a+":]"+c.replace(/{(\d+)}/g,function(a,b){return P(d[b])?a:d[b]});return b(e)}}function d(a){return function(){return a}}function e(a,b,c){var d,f;if(a)if(S(a))for(d in a)"prototype"==d||"length"==d||"name"==d||a.hasOwnProperty&&!a.hasOwnProperty(d)||b.call(c,a[d],d,a);else if(La(a)||h(a)){var g="object"!=typeof a;for(d=0,f=a.length;f>d;d++)(g||d in a)&&b.call(c,a[d],d,a)}else if(a.forEach&&a.forEach!==e)a.forEach(b,c,a);else for(d in a)a.hasOwnProperty(d)&&b.call(c,a[d],d,a);return a}function f(a,b,c){var d=0;return a.filter(function(a){var e=Q(c)?b>d&&c(a):b>d;return d=e?d+1:d,e})}function g(a,b,c){var d=b.map(function(a){return Xa(c)(a)});return d.indexOf(Math[a].apply(Math,d))}function h(a){if(null==a||i(a))return!1;var b=a.length;return a.nodeType===Ka&&b?!0:M(a)||La(a)||0===b||"number"==typeof b&&b>0&&b-1 in a}function i(a){return a&&a.window===a}function j(a,b,c){for(var d,e=-1;++e=a.length?a:La(a[b])?z(a.slice(0,b).concat(a[b],a.slice(b+1)),b):z(a,b+1)}function A(a,b){var c,d={},f=Xa(b);return!La(a)||P(b)?a:(e(a,function(a){c=f(a),d[c]||(d[c]=[]),d[c].push(a)}),d)}function B(a){var c,d,e,g;return La(a)?(g=a.slice(),e=Array.prototype.slice.call(arguments,1),c=O(e[0])?e[0]:1,d=O(e[0])?O(e[1])?b:e[1]:e[0],e.length?f(g.reverse(),c,d?Xa(d):d).reverse():g[g.length-1]):a}function C(a,b){return!La(a)||P(b)?a:a.map(function(a){return Xa(b)(a)})}function D(a,b){return La(a)?P(b)?Math.max.apply(Math,a):a[g("max",a,b)]:a}function E(a,b){return La(a)?P(b)?Math.min.apply(Math,a):a[g("min",a,b)]:a}function F(a,b){return!La(a)||P(b)?a:a.filter(function(a){return N(a)||S(b)?!Xa(b)(a):a!==b})}function G(a,b,c){function d(a,c){for(var d=0;da?-1:1):d>c?-1:1}if(!h(a))return a;b=La(b)?b:[b],0===b.length&&(b=["+"]),b=b.map(function(a){var b=!1,c=a||na;if(M(a)){if(("+"==a.charAt(0)||"-"==a.charAt(0))&&(b="-"==a.charAt(0),a=a.substring(1)),""===a)return e(function(a,b){return f(a,b)},b);if(c=Xa(a),c.constant){var d=c();return e(function(a,b){return f(a[d],b[d])},b)}}return e(function(a,b){return f(c(a),c(b))},b)});for(var g=[],i=0;i>=1);return c}function da(a,b){var c=b||"\\s";return M(a)?a.replace(new RegExp(c+"+$"),""):a}function ea(a,b){var c=b||"-";return M(a)?a.toLowerCase().replace(/\s+/g,c):a}function fa(a,b,c){var d=c||!1;return!M(a)||P(b)?a:(a=d?a:a.toLowerCase(),!a.indexOf(d?b:b.toLowerCase()))}function ga(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,c){return P(b[c])?a:b[c]})}function ha(a){return M(a)?a.replace(/<\S[^><]*>/g,""):a}function ia(a,b){var c=b||"\\s";return M(a)?a.replace(new RegExp("^"+c+"+|"+c+"+$","g"),""):a}function ja(a,b,c,d){return b=P(b)?a.length:b,d=d||!1,c=c||"",!M(a)||a.length<=b?a:a.substring(0,d?-1===a.indexOf(" ",b)?a.length:a.indexOf(" ",b):b)+c}function ka(a){return M(a)?a.split(" ").map(function(a){return a.charAt(0).toUpperCase()+a.substring(1)}).join(" "):a}function la(a,b,c){return M(a)&&Q(b)?[b,a,c||b].join(""):a}function ma(a,c){if(a===c)return!0;if(null===a||null===c)return!1;if(a!==a&&c!==c)return!0;var d,e,f,g=typeof a,h=typeof c;if(g==h&&"object"==g){if(!La(a)){if(R(a))return R(c)?ma(a.getTime(),c.getTime()):!1;if(T(a)&&T(c))return a.toString()==c.toString();if(i(a)||i(c)||La(c))return!1;f={};for(e in a)if(!S(a[e])){if(!ma(a[e],c[e]))return!1;f[e]=!0}for(e in c)if(!f.hasOwnProperty(e)&&c[e]!==b&&!S(c[e]))return!1;return!0}if(!La(c))return!1;if((d=a.length)==c.length){for(e=0;d>e;e++)if(!ma(a[e],c[e]))return!1;return!0}}return!1}function na(a){return a}function oa(a){for(var b=1,c=arguments.length;c>b;b++){var d=arguments[b];if(d)for(var e=Object.keys(d),f=0,g=e.length;g>f;f++){var h=e[f];a[h]=d[h]}}return a}function pa(){return Object.create(null)}function qa(){}function ra(a){return"undefined"==typeof a?b:JSON.stringify(a)}function sa(a,b,c,d){if(i(a))throw Error("Can't copy! Making copies of Window instances is not supported.");if(b){if(a===b)throw Error("Can't copy! Source and destination are identical.");if(c=c||[],d=d||[],N(a)){var f=c.indexOf(a);if(-1!==f)return d[f];c.push(a),d.push(b)}var g;if(La(a)){b.length=0;for(var h=0;h1;g++){e=ta(f.shift(),d);var h=ua(a[e],d);h||(h={},a[e]=h),a=h}return e=ta(f.shift(),d),ua(a[e],d),a[e]=c,c}function ya(a,c,d,e,f,g){return ta(a,g),ta(c,g),ta(d,g),ta(e,g),ta(f,g),function(g,h){var i=h&&h.hasOwnProperty(a)?h:g;return null==i?i:(i=i[a],c?null==i?b:(i=i[c],d?null==i?b:(i=i[d],e?null==i?b:(i=i[e],f?null==i?b:i=i[f]:i):i):i):i)}}function za(a,c,f){var g=Wa[a];if(g)return g;var h=a.split("."),i=h.length;if(c.csp)g=6>i?ya(h[0],h[1],h[2],h[3],h[4],f):function(a,c){var d,e=0;do d=ya(h[e++],h[e++],h[e++],h[e++],h[e++],f)(a,c),c=b,a=d;while(i>e);return d};else{var j="";e(h,function(a,b){ta(a,f),j+="if(s == null) return undefined;\ns="+(b?"s":'((l&&l.hasOwnProperty("'+a+'"))?l:s)')+"."+a+";\n"}),j+="return s;";var k=new Function("s","l",j);k.toString=d(j),g=k}return g.sharedGetter=!0,g.assign=function(b,c){return xa(b,a,c,a)},Wa[a]=g,g}function Aa(a,b,c){e(b,function(b){var d=M(b)?b:b.name,e=M(b)?c[b]:N(b)?b.action:b,f=M(b)&&!c.E;a.prototype[d]=function(){var a=Array.prototype.slice.call(arguments),b=[this.__value__].concat(a),c=f?e.call(this.__value__,a):e.apply(this,b);return Ya.test(d)||V(c)?c:Ha(c)}})}function Ba(a,b){e(b,function(b){a[b.name]=S(b)?b:b.action})}function Ca(a){this.__value__=a}function Da(a){this.__value__=a}function Ea(a){this.__value__=a}function Fa(a){this.__value__=a}function Ga(a){switch(typeof a){case"string":return Ca;case"number":return Fa;case"object":return La(a)?Da:Ea;default:throw Error("Agile value can't be ["+typeof a+"] as an argument")}}function Ha(a){if(a&&a.__wrapped__)return a;var b,c=Ga(a);return(b=new c(a)).__wrapped__=!0,b}function Ia(a){return"object"==typeof module&&module&&module.exports===a?module.exports=Ha:a[a._?"agile":"_"]=Ha}var Ja=c("$parse"),Ka=(Object.prototype.hasOwnProperty,1),La=Array.isArray,Ma=function(a){return M(a)?a.toUpperCase():a},Na=function(a){return M(a)?a.toLowerCase():a},Oa=Function.prototype.call,Pa=Function.prototype.apply,Qa=Function.prototype.bind,Ra=pa();e({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(a,b){a.constant=a.literal=a.sharedGetter=!0,Ra[b]=a}),Ra["this"]=function(a){return a},Ra["this"].sharedGetter=!0;var Sa=oa(pa(),{"+":function(a,c,d,e){return d=d(a,c),e=e(a,c),Q(d)?Q(e)?d+e:d:Q(e)?e:b},"-":function(a,b,c,d){return c=c(a,b),d=d(a,b),(Q(c)?c:0)-(Q(d)?d:0)},"*":function(a,b,c,d){return c(a,b)*d(a,b)},"/":function(a,b,c,d){return c(a,b)/d(a,b)},"%":function(a,b,c,d){return c(a,b)%d(a,b)},"===":function(a,b,c,d){return c(a,b)===d(a,b)},"!==":function(a,b,c,d){return c(a,b)!==d(a,b)},"==":function(a,b,c,d){return c(a,b)==d(a,b)},"!=":function(a,b,c,d){return c(a,b)!=d(a,b)},"<":function(a,b,c,d){return c(a,b)":function(a,b,c,d){return c(a,b)>d(a,b)},"<=":function(a,b,c,d){return c(a,b)<=d(a,b)},">=":function(a,b,c,d){return c(a,b)>=d(a,b)},"&&":function(a,b,c,d){return c(a,b)&&d(a,b)},"||":function(a,b,c,d){return c(a,b)||d(a,b)},"!":function(a,b,c){return!c(a,b)},"=":!0,"|":!0}),Ta={n:"\n",f:"\f",r:"\r",t:" ",v:" ","'":"'",'"':'"'},Ua=function(a){this.options=a};Ua.prototype={constructor:Ua,lex:function(a){for(this.text=a,this.index=0,this.ch=b,this.tokens=[];this.index="0"&&"9">=a},isWhitespace:function(a){return" "===a||"\r"===a||" "===a||"\n"===a||" "===a||" "===a},isIdent:function(a){return a>="a"&&"z">=a||a>="A"&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,c){c=c||this.index;var d=Q(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,c)+"]":" "+c;throw Ja("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",a,d,this.text)},readNumber:function(){for(var a="",b=this.index;this.index0){var e=this.tokens[0],f=e.text;if(f===a||f===b||f===c||f===d||!a&&!b&&!c&&!d)return e}return!1},expect:function(a,b,c,d){var e=this.peek(a,b,c,d);return e?(this.tokens.shift(),e):!1},consume:function(a){this.expect(a)||this.throwError("is unexpected, expecting ["+a+"]",this.peek())},unaryFn:function(a,b){return oa(function(c,d){return a(c,d,b)},{constant:b.constant,inputs:[b]})},binaryFn:function(a,b,c,d){return oa(function(d,e){return b(d,e,a,c)},{constant:a.constant&&c.constant,inputs:!d&&[a,c]})},statements:function(){for(var a=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&a.push(this.filterChain()),!this.expect(";"))return 1===a.length?a[0]:function(b,c){for(var d,e=0,f=a.length;f>e;e++)d=a[e](b,c);return d}},filterChain:function(){for(var a,b=this.expression();a=this.expect("|");)b=!0;return b},expression:function(){return this.assignment()},assignment:function(){var a,b,c=this.ternary();return(b=this.expect("="))?(c.assign||this.throwError("implies assignment but ["+this.text.substring(0,b.index)+"] can not be assigned to",b),a=this.ternary(),oa(function(b,d){return c.assign(b,a(b,d),d)},{inputs:[c,a]})):c},ternary:function(){var a,b,c=this.logicalOR();if(b=this.expect("?")){if(a=this.assignment(),b=this.expect(":")){var d=this.assignment();return oa(function(b,e){return c(b,e)?a(b,e):d(b,e)},{constant:c.constant&&a.constant&&d.constant})}this.throwError("expected :",b)}return c},logicalOR:function(){for(var a,b=this.logicalAND();a=this.expect("||");)b=this.binaryFn(b,a.fn,this.logicalAND(),!0);return b},logicalAND:function(){var a,b=this.equality();return(a=this.expect("&&"))&&(b=this.binaryFn(b,a.fn,this.logicalAND(),!0)),b},equality:function(){var a,b=this.relational();return(a=this.expect("==","!=","===","!=="))&&(b=this.binaryFn(b,a.fn,this.equality())),b},relational:function(){var a,b=this.additive();return(a=this.expect("<",">","<=",">="))&&(b=this.binaryFn(b,a.fn,this.relational())),b},additive:function(){for(var a,b=this.multiplicative();a=this.expect("+","-");)b=this.binaryFn(b,a.fn,this.multiplicative());return b},multiplicative:function(){for(var a,b=this.unary();a=this.expect("*","/","%");)b=this.binaryFn(b,a.fn,this.unary());return b},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(Va.ZERO,a.fn,this.unary()):(a=this.expect("!"))?this.unaryFn(a.fn,this.unary()):this.primary()},fieldAccess:function(a){var b=this.text,c=this.expect().text,d=za(c,this.options,b);return oa(function(b,c,e){return d(e||a(b,c))},{assign:function(d,e,f){var g=a(d,f);return g||a.assign(d,g={}),xa(g,c,e,b)}})},objectIndex:function(a){var c=this.text,d=this.expression();return this.consume("]"),oa(function(e,f){var g,h=a(e,f),i=d(e,f);return ta(i,c),h?g=ua(h[i],c):b},{assign:function(b,e,f){var g=ta(d(b,f),c),h=ua(a(b,f),c);return h||a.assign(b,h={}),h[g]=e}})},functionCall:function(a,b){var c=[];if(")"!==this.peekToken().text)do c.push(this.expression());while(this.expect(","));this.consume(")");var d=this.text,e=c.length?[]:null;return function(f,g){var h=b?b(f,g):f,i=a(f,g,h)||qa;if(e)for(var j=c.length;j--;)e[j]=ua(c[j](f,g),d);ua(h,d),va(i,d);var k=i.apply?i.apply(h,e):i(e[0],e[1],e[2],e[3],e[4]);return ua(k,d)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;var b=this.expression();a.push(b)}while(this.expect(","));return this.consume("]"),oa(function(b,c){for(var d=[],e=0,f=a.length;f>e;e++)d.push(a[e](b,c));return d},{literal:!0,constant:a.every(wa),inputs:a})},object:function(){var a=[],b=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var c=this.expect();a.push(c.string||c.text),this.consume(":");var d=this.expression();b.push(d)}while(this.expect(","));return this.consume("}"),oa(function(c,d){for(var e={},f=0,g=b.length;g>f;f++)e[a[f]]=b[f](c,d);return e},{literal:!0,constant:b.every(wa),inputs:b})}};var Wa=pa(),Xa=(Object.prototype.valueOf,function(){function a(a,b){return b?function(c,d){var e=a(c,d),f=b(e,c,d);return Q(e)?f:e}:a}var b=pa(),c={csp:!1};return function(d,e){var f,g,h;switch(typeof d){case"string":if(h=d=d.trim(),f=b[h],!f){":"===d.charAt(0)&&":"===d.charAt(1)&&(g=!0,d=d.substring(2));var i=new Ua(c),j=new Va(i,c);f=j.parse(d),b[h]=f}return a(f,e);case"function":return a(d,e);default:return a(qa,e)}}}()),Ya=/^(?:value|identity)$/,Za={STRING:["charAt","concat","indexOf","lastIndexOf","match","replace","slice","substr","substring","toLowerCase","toUpperCase"],ARRAY:["concat","join","pop","push","shift","sort","splice","unshift","indexOf","lastIndexOf"],NUMBER:["abs","ceil","cos","floor","round","sin","sqrt","pow","tan"]},$a={BASE:[{name:"add",action:W},{name:"value",action:na}],OBJECT:[{name:"keys",action:Y},{name:"toArray",action:$},{name:"extend",action:oa},{name:"forEach",action:e}],STRING:[{name:"startsWith",action:fa},{name:"endsWith",action:_},{name:"trim",action:ia},{name:"ltrim",action:aa},{name:"rtrim",action:da},{name:"repeat",action:ba},{name:"slugify",action:ea},{name:"stringular",action:ga},{name:"stripTags",action:ha},{name:"truncate",action:ja},{name:"ucfirst",action:ka},{name:"wrap",action:la},{name:"reverse",action:I}],ARRAY:[{name:"after",action:l},{name:"afterWhere",action:k},{name:"before",action:n},{name:"beforeWhere",action:m},{name:"contains",action:o},{name:"countBy",action:p},{name:"defaults",action:q},{name:"map",action:C},{name:"contains",action:o},{name:"find",action:w},{name:"findIndex",action:t},{name:"findLast",action:v},{name:"findLastIndex",action:u},{name:"first",action:x},{name:"last",action:B},{name:"flatten",action:y},{name:"every",action:r},{name:"groupBy",action:A},{name:"omit",action:F},{name:"filter",action:s},{name:"remove",action:H},{name:"reverse",action:I},{name:"unique",action:K},{name:"uniq",action:K},{name:"xor",action:L},{name:"max",action:D},{name:"min",action:E},{name:"sum",action:J},{name:"pluck",action:C},{name:"pick",action:s},{name:"some",action:o},{name:"orderBy",action:G},{name:"sortBy",action:G},{name:"forEach",action:e}]},_a=y([Za.STRING,$a.STRING,$a.BASE]);Aa(Ca,_a,String.prototype);var ab=y([Za.ARRAY,$a.ARRAY,$a.BASE]);Aa(Da,ab,Array.prototype);var bb=y([$a.OBJECT,$a.BASE]);Aa(Ea,bb,Object.prototype);var cb=y([Za.NUMBER,$a.BASE]);Aa(Fa,cb,Math);var db=y([$a.BASE,$a.ARRAY,$a.STRING,$a.OBJECT]);Ba(Ha,db),Ha.isString=M,Ha.isObject=N,Ha.isNumber=O,Ha.isUndefined=P,Ha.isDefined=Q,Ha.isArray=La,Ha.isDate=R,Ha.isFunction=S,Ha.isEmpty=U,Ha.copy=sa,Ha.equals=ma,Ha.identity=na,Ha.dictionary=pa,Ha.noop=qa,Ha.uppercase=Ma,Ha.lowercase=Na,Ha.toJson=ra,Ha.parse=Xa,Ia(a)}(this); \ No newline at end of file diff --git a/dist/agile.zip b/dist/agile.zip index 916fbf7..a0551cf 100644 Binary files a/dist/agile.zip and b/dist/agile.zip differ diff --git a/src/_agile/boolean.js b/src/_agile/boolean.js index 64fab91..0f081b1 100644 --- a/src/_agile/boolean.js +++ b/src/_agile/boolean.js @@ -51,6 +51,7 @@ function isDefined(value){return typeof value !== 'undefined';} * @returns {boolean} True if `value` is a `Date`. */ function isDate(value) { + var toString = (value).toString; return toString.call(value) === '[object Date]'; } @@ -97,4 +98,4 @@ function isEmpty(value) { * @param {*} value Reference to check. * @returns {boolean} True if `value` is a `Boolean`. */ -function isBoolean(value){return typeof value === 'boolean';} \ No newline at end of file +function isBoolean(value){return typeof value === 'boolean';}