diff --git a/dist/angular-filter.js b/dist/angular-filter.js index abfb207..9cb3b21 100644 --- a/dist/angular-filter.js +++ b/dist/angular-filter.js @@ -1,6 +1,6 @@ /** * Bunch of useful filters for angularJS - * @version v0.4.6 - 2014-09-11 * @link https://github.com/a8m/angular-filter + * @version v0.4.6 - 2014-09-16 * @link https://github.com/a8m/angular-filter * @author Ariel Mashraki * @license MIT License, http://www.opensource.org/licenses/MIT */ @@ -154,6 +154,58 @@ angular.module('a8m.angular', []) } }); +/** + * @ngdoc filter + * @name a8m.conditions + * @kind function + * + * @description + * reference to math conditions + */ + +angular.module('a8m.conditions', []) + + .filter('isGreaterThan', function () { + return function (input, check) { + return input > check; + }; + }) + .filter('isGreaterThanOrEqualTo', function () { + return function (input, check) { + return input >= check; + }; + }) + .filter('isLessThan', function () { + return function (input, check) { + return input < check; + }; + }) + .filter('isLessThanOrEqualTo', function () { + return function (input, check) { + return input <= check; + }; + }) + .filter('isEqualTo', function () { + return function (input, check) { + return input == check; + }; + }) + .filter('isNotEqualTo', function () { + return function (input, check) { + return input != check; + }; + }) + .filter('isIdenticalTo', function () { + return function (input, check) { + return input === check; + }; + }) + .filter('isNotIdenticalTo', function () { + return function (input, check) { + return input !== check; + }; + }); + /** * @ngdoc filter * @name isNull @@ -1734,6 +1786,7 @@ angular.module('angular.filter', [ 'a8m.math.sum', 'a8m.angular', + 'a8m.conditions', 'a8m.is-null', 'a8m.filter-watcher' diff --git a/dist/angular-filter.min.js b/dist/angular-filter.min.js index d233c8b..669f871 100644 --- a/dist/angular-filter.min.js +++ b/dist/angular-filter.min.js @@ -1,6 +1,6 @@ /** * Bunch of useful filters for angularJS - * @version v0.4.6 - 2014-09-11 * @link https://github.com/a8m/angular-filter + * @version v0.4.6 - 2014-09-16 * @link https://github.com/a8m/angular-filter * @author Ariel Mashraki * @license MIT License, http://www.opensource.org/licenses/MIT - */!function(a,b,c){"use strict";function d(a){return s(a)?a:Object.keys(a).map(function(b){return a[b]})}function e(a){return null===a}function f(a,b){var c=Object.keys(a);return-1==c.map(function(c){return!(!b[c]||b[c]!=a[c])}).indexOf(!1)}function g(a,b){if(""===b)return a;var c=a.indexOf(b.charAt(0));return-1===c?!1:g(a.substr(c+1),b.substr(1))}function h(a,b,c){var d=0;return a.filter(function(a){var e=m(c)?b>d&&c(a):b>d;return d=e?d+1:d,e})}function i(a){return function(b,c){return b=r(b)?d(b):b,!s(b)||n(c)?!0:b.some(function(b){return r(b)||o(c)?a(c)(b):b===c})}}function j(a,b){return b=b||0,b>=a.length?a:s(a[b])?j(a.slice(0,b).concat(a[b],a.slice(b+1)),b):j(a,b+1)}function k(a){return function(b,c){function e(a,b){return n(b)?!1:a.some(function(a){return w(a,b)})}if(b=r(b)?d(b):b,!s(b))return b;var f=[],g=a(c);return b.filter(n(c)?function(a,b,c){return c.indexOf(a)===b}:function(a){var b=g(a);return e(f,b)?!1:(f.push(b),!0)})}}function l(a,b,c){return b?a+c+l(a,--b,c):a}var m=b.isDefined,n=b.isUndefined,o=b.isFunction,p=b.isString,q=b.isNumber,r=b.isObject,s=b.isArray,t=b.forEach,u=b.extend,v=b.copy,w=b.equals;String.prototype.contains||(String.prototype.contains=function(){return-1!==String.prototype.indexOf.apply(this,arguments)}),b.module("a8m.angular",[]).filter("isUndefined",function(){return function(a){return b.isUndefined(a)}}).filter("isDefined",function(){return function(a){return b.isDefined(a)}}).filter("isFunction",function(){return function(a){return b.isFunction(a)}}).filter("isString",function(){return function(a){return b.isString(a)}}).filter("isNumber",function(){return function(a){return b.isNumber(a)}}).filter("isArray",function(){return function(a){return b.isArray(a)}}).filter("isObject",function(){return function(a){return b.isObject(a)}}).filter("isEqual",function(){return function(a,c){return b.equals(a,c)}}),b.module("a8m.is-null",[]).filter("isNull",function(){return function(a){return e(a)}}),b.module("a8m.after-where",[]).filter("afterWhere",function(){return function(a,b){if(a=r(a)?d(a):a,!s(a)||n(b))return a;var c=a.map(function(a){return f(b,a)}).indexOf(!0);return a.slice(-1===c?0:c)}}),b.module("a8m.after",[]).filter("after",function(){return function(a,b){return a=r(a)?d(a):a,s(a)?a.slice(b):a}}),b.module("a8m.before-where",[]).filter("beforeWhere",function(){return function(a,b){if(a=r(a)?d(a):a,!s(a)||n(b))return a;var c=a.map(function(a){return f(b,a)}).indexOf(!0);return a.slice(0,-1===c?a.length:++c)}}),b.module("a8m.before",[]).filter("before",function(){return function(a,b){return a=r(a)?d(a):a,s(a)?a.slice(0,b?--b:b):a}}),b.module("a8m.concat",[]).filter("concat",[function(){return function(a,b){if(n(b))return a;if(s(a))return a.concat(r(b)?d(b):b);if(r(a)){var c=d(a);return c.concat(r(b)?d(b):b)}return a}}]),b.module("a8m.contains",[]).filter({contains:["$parse",i],some:["$parse",i]}),b.module("a8m.count-by",[]).filter("countBy",["$parse",function(a){return function(b,c){var e,f={},g=a(c);return b=r(b)?d(b):b,!s(b)||n(c)?b:(b.forEach(function(a){e=g(a),f[e]||(f[e]=0),f[e]++}),f)}}]),b.module("a8m.every",[]).filter("every",["$parse",function(a){return function(b,c){return b=r(b)?d(b):b,!s(b)||n(c)?!0:b.every(function(b){return r(b)||o(c)?a(c)(b):b===c})}}]),b.module("a8m.filter-by",[]).filter("filterBy",["$parse",function(a){return function(b,e,f){var g;return f=p(f)||q(f)?String(f).toLowerCase():c,b=r(b)?d(b):b,!s(b)||n(f)?b:b.filter(function(b){return e.some(function(c){if(~c.indexOf("+")){var d=c.replace(new RegExp("\\s","g"),"").split("+");g=d.reduce(function(c,d,e){return 1===e?a(c)(b)+" "+a(d)(b):c+" "+a(d)(b)})}else g=a(c)(b);return p(g)||q(g)?String(g).toLowerCase().contains(f):!1})})}}]),b.module("a8m.first",[]).filter("first",["$parse",function(a){return function(b){var e,f,g;return b=r(b)?d(b):b,s(b)?(g=Array.prototype.slice.call(arguments,1),e=q(g[0])?g[0]:1,f=q(g[0])?q(g[1])?c:g[1]:g[0],g.length?h(b,e,f?a(f):f):b[0]):b}}]),b.module("a8m.flatten",[]).filter("flatten",function(){return function(a,b){return b=b||!1,a=r(a)?d(a):a,s(a)?b?[].concat.apply([],a):j(a,0):a}}),b.module("a8m.fuzzy-by",[]).filter("fuzzyBy",["$parse",function(a){return function(b,c,e,f){var h,i,j=f||!1;return b=r(b)?d(b):b,!s(b)||n(c)||n(e)?b:(i=a(c),b.filter(function(a){return h=i(a),p(h)?(h=j?h:h.toLowerCase(),e=j?e:e.toLowerCase(),g(h,e)!==!1):!1}))}}]),b.module("a8m.fuzzy",[]).filter("fuzzy",function(){return function(a,b,c){function e(a,b){var c,d,e=Object.keys(a);return 0<]*>/g,""):a}}),b.module("a8m.trim",[]).filter("trim",function(){return function(a,b){var c=b||"\\s";return p(a)?a.replace(new RegExp("^"+c+"+|"+c+"+$","g"),""):a}}),b.module("a8m.truncate",[]).filter("truncate",function(){return function(a,b,c,d){return b=n(b)?a.length:b,d=d||!1,c=c||"",!p(a)||a.length<=b?a:a.substring(0,d?-1===a.indexOf(" ",b)?a.length:a.indexOf(" ",b):b)+c}}),b.module("a8m.ucfirst",[]).filter("ucfirst",[function(){return function(a){return b.isString(a)?a.split(" ").map(function(a){return a.charAt(0).toUpperCase()+a.substring(1)}).join(" "):a}}]),b.module("a8m.uri-encode",[]).filter("uriEncode",["$window",function(a){return function(b){return p(b)?a.encodeURI(b):b}}]),b.module("a8m.wrap",[]).filter("wrap",function(){return function(a,b,c){return!p(a)||n(b)?a:[b,a,c||b].join("")}}),b.module("a8m.filter-watcher",[]).provider("filterWatcher",function(){var a="_$$";this.setPrefix=function(b){return a=b,this},this.$get=["$window",function(b){function c(b){return a+b}function d(a,b){return m(b[a])}function e(a,b){var e=c(a);return d(e,b)||Object.defineProperty(b,e,{enumerable:!1,configurable:!0,value:{}}),b[e]}function f(a,b){return g(function(){delete b[c(a)]})}var g=b.setTimeout;return{$watch:e,$destroy:f}}]}),b.module("angular.filter",["a8m.ucfirst","a8m.uri-encode","a8m.slugify","a8m.strip-tags","a8m.stringular","a8m.truncate","a8m.starts-with","a8m.ends-with","a8m.wrap","a8m.trim","a8m.ltrim","a8m.rtrim","a8m.repeat","a8m.to-array","a8m.concat","a8m.contains","a8m.unique","a8m.is-empty","a8m.after","a8m.after-where","a8m.before","a8m.before-where","a8m.where","a8m.reverse","a8m.remove","a8m.remove-with","a8m.group-by","a8m.count-by","a8m.search-field","a8m.fuzzy-by","a8m.fuzzy","a8m.omit","a8m.pick","a8m.every","a8m.filter-by","a8m.xor","a8m.map","a8m.first","a8m.last","a8m.flatten","a8m.math","a8m.math.max","a8m.math.min","a8m.math.percent","a8m.math.radix","a8m.math.sum","a8m.angular","a8m.is-null","a8m.filter-watcher"])}(window,window.angular); \ No newline at end of file + */!function(a,b,c){"use strict";function d(a){return s(a)?a:Object.keys(a).map(function(b){return a[b]})}function e(a){return null===a}function f(a,b){var c=Object.keys(a);return-1==c.map(function(c){return!(!b[c]||b[c]!=a[c])}).indexOf(!1)}function g(a,b){if(""===b)return a;var c=a.indexOf(b.charAt(0));return-1===c?!1:g(a.substr(c+1),b.substr(1))}function h(a,b,c){var d=0;return a.filter(function(a){var e=m(c)?b>d&&c(a):b>d;return d=e?d+1:d,e})}function i(a){return function(b,c){return b=r(b)?d(b):b,!s(b)||n(c)?!0:b.some(function(b){return r(b)||o(c)?a(c)(b):b===c})}}function j(a,b){return b=b||0,b>=a.length?a:s(a[b])?j(a.slice(0,b).concat(a[b],a.slice(b+1)),b):j(a,b+1)}function k(a){return function(b,c){function e(a,b){return n(b)?!1:a.some(function(a){return w(a,b)})}if(b=r(b)?d(b):b,!s(b))return b;var f=[],g=a(c);return b.filter(n(c)?function(a,b,c){return c.indexOf(a)===b}:function(a){var b=g(a);return e(f,b)?!1:(f.push(b),!0)})}}function l(a,b,c){return b?a+c+l(a,--b,c):a}var m=b.isDefined,n=b.isUndefined,o=b.isFunction,p=b.isString,q=b.isNumber,r=b.isObject,s=b.isArray,t=b.forEach,u=b.extend,v=b.copy,w=b.equals;String.prototype.contains||(String.prototype.contains=function(){return-1!==String.prototype.indexOf.apply(this,arguments)}),b.module("a8m.angular",[]).filter("isUndefined",function(){return function(a){return b.isUndefined(a)}}).filter("isDefined",function(){return function(a){return b.isDefined(a)}}).filter("isFunction",function(){return function(a){return b.isFunction(a)}}).filter("isString",function(){return function(a){return b.isString(a)}}).filter("isNumber",function(){return function(a){return b.isNumber(a)}}).filter("isArray",function(){return function(a){return b.isArray(a)}}).filter("isObject",function(){return function(a){return b.isObject(a)}}).filter("isEqual",function(){return function(a,c){return b.equals(a,c)}}),b.module("a8m.conditions",[]).filter("isGreaterThan",function(){return function(a,b){return a>b}}).filter("isGreaterThanOrEqualTo",function(){return function(a,b){return a>=b}}).filter("isLessThan",function(){return function(a,b){return b>a}}).filter("isLessThanOrEqualTo",function(){return function(a,b){return b>=a}}).filter("isEqualTo",function(){return function(a,b){return a==b}}).filter("isNotEqualTo",function(){return function(a,b){return a!=b}}).filter("isIdenticalTo",function(){return function(a,b){return a===b}}).filter("isNotIdenticalTo",function(){return function(a,b){return a!==b}}),b.module("a8m.is-null",[]).filter("isNull",function(){return function(a){return e(a)}}),b.module("a8m.after-where",[]).filter("afterWhere",function(){return function(a,b){if(a=r(a)?d(a):a,!s(a)||n(b))return a;var c=a.map(function(a){return f(b,a)}).indexOf(!0);return a.slice(-1===c?0:c)}}),b.module("a8m.after",[]).filter("after",function(){return function(a,b){return a=r(a)?d(a):a,s(a)?a.slice(b):a}}),b.module("a8m.before-where",[]).filter("beforeWhere",function(){return function(a,b){if(a=r(a)?d(a):a,!s(a)||n(b))return a;var c=a.map(function(a){return f(b,a)}).indexOf(!0);return a.slice(0,-1===c?a.length:++c)}}),b.module("a8m.before",[]).filter("before",function(){return function(a,b){return a=r(a)?d(a):a,s(a)?a.slice(0,b?--b:b):a}}),b.module("a8m.concat",[]).filter("concat",[function(){return function(a,b){if(n(b))return a;if(s(a))return a.concat(r(b)?d(b):b);if(r(a)){var c=d(a);return c.concat(r(b)?d(b):b)}return a}}]),b.module("a8m.contains",[]).filter({contains:["$parse",i],some:["$parse",i]}),b.module("a8m.count-by",[]).filter("countBy",["$parse",function(a){return function(b,c){var e,f={},g=a(c);return b=r(b)?d(b):b,!s(b)||n(c)?b:(b.forEach(function(a){e=g(a),f[e]||(f[e]=0),f[e]++}),f)}}]),b.module("a8m.every",[]).filter("every",["$parse",function(a){return function(b,c){return b=r(b)?d(b):b,!s(b)||n(c)?!0:b.every(function(b){return r(b)||o(c)?a(c)(b):b===c})}}]),b.module("a8m.filter-by",[]).filter("filterBy",["$parse",function(a){return function(b,e,f){var g;return f=p(f)||q(f)?String(f).toLowerCase():c,b=r(b)?d(b):b,!s(b)||n(f)?b:b.filter(function(b){return e.some(function(c){if(~c.indexOf("+")){var d=c.replace(new RegExp("\\s","g"),"").split("+");g=d.reduce(function(c,d,e){return 1===e?a(c)(b)+" "+a(d)(b):c+" "+a(d)(b)})}else g=a(c)(b);return p(g)||q(g)?String(g).toLowerCase().contains(f):!1})})}}]),b.module("a8m.first",[]).filter("first",["$parse",function(a){return function(b){var e,f,g;return b=r(b)?d(b):b,s(b)?(g=Array.prototype.slice.call(arguments,1),e=q(g[0])?g[0]:1,f=q(g[0])?q(g[1])?c:g[1]:g[0],g.length?h(b,e,f?a(f):f):b[0]):b}}]),b.module("a8m.flatten",[]).filter("flatten",function(){return function(a,b){return b=b||!1,a=r(a)?d(a):a,s(a)?b?[].concat.apply([],a):j(a,0):a}}),b.module("a8m.fuzzy-by",[]).filter("fuzzyBy",["$parse",function(a){return function(b,c,e,f){var h,i,j=f||!1;return b=r(b)?d(b):b,!s(b)||n(c)||n(e)?b:(i=a(c),b.filter(function(a){return h=i(a),p(h)?(h=j?h:h.toLowerCase(),e=j?e:e.toLowerCase(),g(h,e)!==!1):!1}))}}]),b.module("a8m.fuzzy",[]).filter("fuzzy",function(){return function(a,b,c){function e(a,b){var c,d,e=Object.keys(a);return 0<]*>/g,""):a}}),b.module("a8m.trim",[]).filter("trim",function(){return function(a,b){var c=b||"\\s";return p(a)?a.replace(new RegExp("^"+c+"+|"+c+"+$","g"),""):a}}),b.module("a8m.truncate",[]).filter("truncate",function(){return function(a,b,c,d){return b=n(b)?a.length:b,d=d||!1,c=c||"",!p(a)||a.length<=b?a:a.substring(0,d?-1===a.indexOf(" ",b)?a.length:a.indexOf(" ",b):b)+c}}),b.module("a8m.ucfirst",[]).filter("ucfirst",[function(){return function(a){return b.isString(a)?a.split(" ").map(function(a){return a.charAt(0).toUpperCase()+a.substring(1)}).join(" "):a}}]),b.module("a8m.uri-encode",[]).filter("uriEncode",["$window",function(a){return function(b){return p(b)?a.encodeURI(b):b}}]),b.module("a8m.wrap",[]).filter("wrap",function(){return function(a,b,c){return!p(a)||n(b)?a:[b,a,c||b].join("")}}),b.module("a8m.filter-watcher",[]).provider("filterWatcher",function(){var a="_$$";this.setPrefix=function(b){return a=b,this},this.$get=["$window",function(b){function c(b){return a+b}function d(a,b){return m(b[a])}function e(a,b){var e=c(a);return d(e,b)||Object.defineProperty(b,e,{enumerable:!1,configurable:!0,value:{}}),b[e]}function f(a,b){return g(function(){delete b[c(a)]})}var g=b.setTimeout;return{$watch:e,$destroy:f}}]}),b.module("angular.filter",["a8m.ucfirst","a8m.uri-encode","a8m.slugify","a8m.strip-tags","a8m.stringular","a8m.truncate","a8m.starts-with","a8m.ends-with","a8m.wrap","a8m.trim","a8m.ltrim","a8m.rtrim","a8m.repeat","a8m.to-array","a8m.concat","a8m.contains","a8m.unique","a8m.is-empty","a8m.after","a8m.after-where","a8m.before","a8m.before-where","a8m.where","a8m.reverse","a8m.remove","a8m.remove-with","a8m.group-by","a8m.count-by","a8m.search-field","a8m.fuzzy-by","a8m.fuzzy","a8m.omit","a8m.pick","a8m.every","a8m.filter-by","a8m.xor","a8m.map","a8m.first","a8m.last","a8m.flatten","a8m.math","a8m.math.max","a8m.math.min","a8m.math.percent","a8m.math.radix","a8m.math.sum","a8m.angular","a8m.conditions","a8m.is-null","a8m.filter-watcher"])}(window,window.angular); \ No newline at end of file diff --git a/dist/angular-filter.zip b/dist/angular-filter.zip index 1e21f9e..ca85631 100644 Binary files a/dist/angular-filter.zip and b/dist/angular-filter.zip differ diff --git a/src/_filter/boolean/conditions.js b/src/_filter/boolean/conditions.js new file mode 100644 index 0000000..921c68d --- /dev/null +++ b/src/_filter/boolean/conditions.js @@ -0,0 +1,51 @@ +/** + * @ngdoc filter + * @name a8m.conditions + * @kind function + * + * @description + * reference to math conditions + */ + +angular.module('a8m.conditions', []) + + .filter('isGreaterThan', function () { + return function (input, check) { + return input > check; + }; + }) + .filter('isGreaterThanOrEqualTo', function () { + return function (input, check) { + return input >= check; + }; + }) + .filter('isLessThan', function () { + return function (input, check) { + return input < check; + }; + }) + .filter('isLessThanOrEqualTo', function () { + return function (input, check) { + return input <= check; + }; + }) + .filter('isEqualTo', function () { + return function (input, check) { + return input == check; + }; + }) + .filter('isNotEqualTo', function () { + return function (input, check) { + return input != check; + }; + }) + .filter('isIdenticalTo', function () { + return function (input, check) { + return input === check; + }; + }) + .filter('isNotIdenticalTo', function () { + return function (input, check) { + return input !== check; + }; + }); diff --git a/src/filters.js b/src/filters.js index a946e90..4f83404 100644 --- a/src/filters.js +++ b/src/filters.js @@ -57,6 +57,7 @@ angular.module('angular.filter', [ 'a8m.math.sum', 'a8m.angular', + 'a8m.conditions', 'a8m.is-null', 'a8m.filter-watcher' diff --git a/test/spec/filter/boolean/conditions.js b/test/spec/filter/boolean/conditions.js new file mode 100644 index 0000000..6719cc5 --- /dev/null +++ b/test/spec/filter/boolean/conditions.js @@ -0,0 +1,41 @@ +'use strict'; + +describe('conditionsFilter', function () { + + var isGreaterThan, + isGreaterThanOrEqualTo, + isLessThan, + isLessThanOrEqualTo, + isEqualTo, + isNotEqualTo, + isIdenticalTo, + isNotIdenticalTo; + + beforeEach(module('a8m.conditions')); + + beforeEach(inject(function ($filter) { + isGreaterThan = $filter('isGreaterThan'); + isGreaterThanOrEqualTo = $filter('isGreaterThanOrEqualTo'); + isLessThan = $filter('isLessThan'); + isLessThanOrEqualTo = $filter('isLessThanOrEqualTo'); + isEqualTo = $filter('isEqualTo'); + isNotEqualTo = $filter('isNotEqualTo'); + isIdenticalTo = $filter('isIdenticalTo'); + isNotIdenticalTo = $filter('isNotIdenticalTo'); + })); + + it('should check expected conditions', function() { + expect(isGreaterThan(1, 2)).toBe(false); + expect(isGreaterThanOrEqualTo(1, 1)).toBe(true); + + expect(isLessThan(1, 2)).toBe(true); + expect(isLessThanOrEqualTo(3, 2)).toBe(false); + + expect(isEqualTo(3, '3')).toBe(true); + expect(isNotEqualTo(3, '3')).toBe(false); + + expect(isIdenticalTo(3, 3)).toBe(true); + expect(isNotIdenticalTo(3, 3)).toBe(false); + }); + +});