angular-filter
Advanced tools
Comparing version 0.5.4 to 0.5.5
{ | ||
"name": "angular-filter", | ||
"version": "0.5.4", | ||
"main": "dist/angular-filter.js", | ||
@@ -16,2 +15,5 @@ "description": "Bunch of useful filters for angularJS(with no external dependencies!)", | ||
}, | ||
"main":[ | ||
"./dist/angular-filter.min.js" | ||
], | ||
"ignore": [ | ||
@@ -18,0 +20,0 @@ "node_modules", |
/** | ||
* Bunch of useful filters for angularJS(with no external dependencies!) | ||
* @version v0.5.4 - 2015-02-20 * @link https://github.com/a8m/angular-filter | ||
* @version v0.5.5 - 2015-08-07 * @link https://github.com/a8m/angular-filter | ||
* @author Ariel Mashraki <ariel@mashraki.co.il> | ||
@@ -31,4 +31,5 @@ * @license MIT License, http://www.opensource.org/licenses/MIT | ||
function toArray(object) { | ||
return isArray(object) ? object : | ||
Object.keys(object).map(function(key) { | ||
return isArray(object) | ||
? object | ||
: Object.keys(object).map(function(key) { | ||
return object[key]; | ||
@@ -323,8 +324,7 @@ }); | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
: collection; | ||
if(!isArray(collection) || isUndefined(object)) | ||
return collection; | ||
if(!isArray(collection) || isUndefined(object)) return collection; | ||
@@ -353,3 +353,3 @@ var index = collection.map( function( elm ) { | ||
return function (collection, count) { | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -377,8 +377,7 @@ : collection; | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
: collection; | ||
if(!isArray(collection) || isUndefined(object)) | ||
return collection; | ||
if(!isArray(collection) || isUndefined(object)) return collection; | ||
@@ -405,3 +404,3 @@ var index = collection.map( function( elm ) { | ||
return function (collection, count) { | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -418,2 +417,38 @@ : collection; | ||
* @ngdoc filter | ||
* @name chunkBy | ||
* @kind function | ||
* | ||
* @description | ||
* Collect data into fixed-length chunks or blocks | ||
*/ | ||
angular.module('a8m.chunk-by', []) | ||
.filter('chunkBy', [function () { | ||
/** | ||
* @description | ||
* Get array with size `n` in `val` inside it. | ||
* @param n | ||
* @param val | ||
* @returns {Array} | ||
*/ | ||
function fill(n, val) { | ||
var ret = []; | ||
while(n--) ret[n] = val; | ||
return ret; | ||
} | ||
return function (array, n, fillVal) { | ||
if (!isArray(array)) return array; | ||
return array.map(function(el, i, self) { | ||
i = i * n; | ||
el = self.slice(i, i + n); | ||
return !isUndefined(fillVal) && el.length < n | ||
? el.concat(fill(n - el.length, fillVal)) | ||
: el; | ||
}).slice(0, Math.ceil(array.length / n)); | ||
} | ||
}]); | ||
/** | ||
* @ngdoc filter | ||
* @name concat | ||
@@ -426,11 +461,9 @@ * @kind function | ||
angular.module('a8m.concat', []) | ||
//TODO(Ariel):unique option ? or use unique filter to filter result | ||
.filter('concat', [function () { | ||
return function (collection, joined) { | ||
if (isUndefined(joined)) { | ||
return collection; | ||
} | ||
if (isUndefined(joined)) return collection; | ||
if (isArray(collection)) { | ||
return (isObject(joined)) | ||
return isObject(joined) | ||
? collection.concat(toArray(joined)) | ||
@@ -465,6 +498,6 @@ : collection.concat(joined); | ||
function containsFilter( $parse ) { | ||
function containsFilter($parse) { | ||
return function (collection, expression) { | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -534,3 +567,3 @@ if(!isArray(collection) || isUndefined(expression)) { | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -571,3 +604,3 @@ if(!isArray(collection) || !isObject(defaults)) { | ||
return function (collection, expression) { | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -597,3 +630,2 @@ if(!isArray(collection) || isUndefined(expression)) { | ||
return function(collection, properties, search) { | ||
var comparator; | ||
@@ -604,3 +636,3 @@ | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -650,3 +682,2 @@ if(!isArray(collection) || isUndefined(search)) { | ||
return function(collection) { | ||
var n | ||
@@ -656,3 +687,3 @@ , getter | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -688,3 +719,3 @@ : collection; | ||
shallow = shallow || false; | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -738,3 +769,3 @@ : collection; | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -774,7 +805,5 @@ if(!isArray(collection) || isUndefined(property) | ||
return function (collection, search, csensitive) { | ||
var sensitive = csensitive || false; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
if(!isArray(collection) || isUndefined(search)) { | ||
@@ -787,3 +816,2 @@ return collection; | ||
return collection.filter(function(elm) { | ||
if(isString(elm)) { | ||
@@ -793,5 +821,3 @@ elm = (sensitive) ? elm : elm.toLowerCase(); | ||
} | ||
return (isObject(elm)) ? _hasApproximateKey(elm, search) : false; | ||
}); | ||
@@ -825,3 +851,2 @@ | ||
} | ||
} | ||
@@ -841,3 +866,2 @@ }); | ||
angular.module('a8m.group-by', [ 'a8m.filter-watcher' ]) | ||
.filter('groupBy', [ '$parse', 'filterWatcher', function ( $parse, filterWatcher ) { | ||
@@ -890,3 +914,3 @@ return function (collection, property) { | ||
return function(collection) { | ||
return (isObject(collection)) | ||
return isObject(collection) | ||
? !toArray(collection).length | ||
@@ -911,5 +935,3 @@ : !collection.length; | ||
} | ||
if (isUndefined(delimiter)) { | ||
delimiter = ' '; | ||
} | ||
if (isUndefined(delimiter)) delimiter = ' '; | ||
@@ -940,3 +962,3 @@ return input.join(delimiter); | ||
reversed = (isObject(reversed)) | ||
reversed = isObject(reversed) | ||
? toArray(reversed) | ||
@@ -973,3 +995,3 @@ : reversed; | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -1002,3 +1024,3 @@ : collection; | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -1019,3 +1041,3 @@ : collection; | ||
* @ngdoc filter | ||
* @name omit | ||
* @name pick | ||
* @kind function | ||
@@ -1032,3 +1054,3 @@ * | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -1049,2 +1071,19 @@ : collection; | ||
* @ngdoc filter | ||
* @name range | ||
* @kind function | ||
* | ||
* @description | ||
* rangeFilter provides some support for a for loop using numbers | ||
*/ | ||
angular.module('a8m.range', []) | ||
.filter('range', function () { | ||
return function (input, total) { | ||
for (var i = 0; i < parseInt(total); i++) { | ||
input.push(i); | ||
} | ||
return input; | ||
}; | ||
}); | ||
/** | ||
* @ngdoc filter | ||
* @name removeWith | ||
@@ -1089,5 +1128,3 @@ * @kind function | ||
return function (collection) { | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
var args = Array.prototype.slice.call(arguments, 1); | ||
@@ -1104,3 +1141,2 @@ | ||
}); | ||
} | ||
@@ -1120,3 +1156,3 @@ }); | ||
return function (input) { | ||
input = (isObject(input)) ? toArray(input) : input; | ||
input = isObject(input) ? toArray(input) : input; | ||
@@ -1148,3 +1184,3 @@ if(isString(input)) { | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -1216,3 +1252,3 @@ var args = Array.prototype.slice.call(arguments, 1); | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -1267,7 +1303,4 @@ if (!isArray(collection)) { | ||
return function (collection, object) { | ||
if(isUndefined(object)) { | ||
return collection; | ||
} | ||
collection = (isObject(collection)) | ||
if(isUndefined(object)) return collection; | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -1298,4 +1331,4 @@ : collection; | ||
col1 = (isObject(col1)) ? toArray(col1) : col1; | ||
col2 = (isObject(col2)) ? toArray(col2) : col2; | ||
col1 = isObject(col1) ? toArray(col1) : col1; | ||
col2 = isObject(col2) ? toArray(col2) : col2; | ||
@@ -1335,14 +1368,13 @@ if(!isArray(col1) || !isArray(col2)) return col1; | ||
isNumber(bytes) && isFinite(bytes)) { | ||
if(bytes < 1024) { // within 1 KB so B | ||
return convertToDecimal(bytes, decimal, $math) + ' B'; | ||
return convertToDecimal(bytes, decimal, $math) + ' B'; | ||
} else if(bytes < 1048576) { // within 1 MB so KB | ||
return convertToDecimal((bytes / 1024), decimal, $math) + ' KB'; | ||
return convertToDecimal((bytes / 1024), decimal, $math) + ' KB'; | ||
} else if(bytes < 1073741824){ // within 1 GB so MB | ||
return convertToDecimal((bytes / 1048576), decimal, $math) + ' MB'; | ||
return convertToDecimal((bytes / 1048576), decimal, $math) + ' MB'; | ||
} else { // GB or more | ||
return convertToDecimal((bytes / 1073741824), decimal, $math) + ' GB'; | ||
return convertToDecimal((bytes / 1073741824), decimal, $math) + ' GB'; | ||
} | ||
} | ||
} | ||
return "NaN"; | ||
@@ -1362,13 +1394,13 @@ } | ||
return function (radians, decimal) { | ||
// if decimal is not an integer greater than -1, we cannot do. quit with error "NaN" | ||
// if degrees is not a real number, we cannot do also. quit with error "NaN" | ||
if(isNumber(decimal) && isFinite(decimal) && decimal%1===0 && decimal >= 0 && | ||
isNumber(radians) && isFinite(radians)) { | ||
var degrees = (radians * 180) / $math.PI; | ||
return $math.round(degrees * $math.pow(10,decimal)) / ($math.pow(10,decimal)); | ||
} else { | ||
return "NaN"; | ||
} | ||
} | ||
}]); | ||
// if decimal is not an integer greater than -1, we cannot do. quit with error "NaN" | ||
// if degrees is not a real number, we cannot do also. quit with error "NaN" | ||
if(isNumber(decimal) && isFinite(decimal) && decimal%1===0 && decimal >= 0 && | ||
isNumber(radians) && isFinite(radians)) { | ||
var degrees = (radians * 180) / $math.PI; | ||
return $math.round(degrees * $math.pow(10,decimal)) / ($math.pow(10,decimal)); | ||
} else { | ||
return "NaN"; | ||
} | ||
} | ||
}]); | ||
@@ -1392,14 +1424,13 @@ | ||
isNumber(bytes) && isFinite(bytes)) { | ||
if(bytes < 1024) { // within 1 MB so KB | ||
return convertToDecimal(bytes, decimal, $math) + ' KB'; | ||
return convertToDecimal(bytes, decimal, $math) + ' KB'; | ||
} else if(bytes < 1048576) { // within 1 GB so MB | ||
return convertToDecimal((bytes / 1024), decimal, $math) + ' MB'; | ||
return convertToDecimal((bytes / 1024), decimal, $math) + ' MB'; | ||
} else { | ||
return convertToDecimal((bytes / 1048576), decimal, $math) + ' GB'; | ||
return convertToDecimal((bytes / 1048576), decimal, $math) + ' GB'; | ||
} | ||
} | ||
return "NaN"; | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
}]); | ||
/** | ||
@@ -1496,3 +1527,3 @@ * @ngdoc module | ||
var divider = (isString(input)) ? $window.Number(input) : input; | ||
var divider = isString(input) ? $window.Number(input) : input; | ||
divided = divided || 100; | ||
@@ -1520,12 +1551,12 @@ round = round || false; | ||
return function (degrees, decimal) { | ||
// if decimal is not an integer greater than -1, we cannot do. quit with error "NaN" | ||
// if degrees is not a real number, we cannot do also. quit with error "NaN" | ||
if(isNumber(decimal) && isFinite(decimal) && decimal%1===0 && decimal >= 0 && | ||
isNumber(degrees) && isFinite(degrees)) { | ||
var radians = (degrees * 3.14159265359) / 180; | ||
return $math.round(radians * $math.pow(10,decimal)) / ($math.pow(10,decimal)); | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
// if decimal is not an integer greater than -1, we cannot do. quit with error "NaN" | ||
// if degrees is not a real number, we cannot do also. quit with error "NaN" | ||
if(isNumber(decimal) && isFinite(decimal) && decimal%1===0 && decimal >= 0 && | ||
isNumber(degrees) && isFinite(degrees)) { | ||
var radians = (degrees * 3.14159265359) / 180; | ||
return $math.round(radians * $math.pow(10,decimal)) / ($math.pow(10,decimal)); | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
@@ -1570,17 +1601,16 @@ | ||
isNumber(number) && isFinite(number)){ | ||
if(number < 1e3) { | ||
return number; | ||
} else if(number < 1e6) { | ||
return convertToDecimal((number / 1e3), decimal, $math) + ' K'; | ||
} else if(number < 1e9){ | ||
return convertToDecimal((number / 1e6), decimal, $math) + ' M'; | ||
} else { | ||
return convertToDecimal((number / 1e9), decimal, $math) + ' B'; | ||
} | ||
if(number < 1e3) { | ||
return number; | ||
} else if(number < 1e6) { | ||
return convertToDecimal((number / 1e3), decimal, $math) + ' K'; | ||
} else if(number < 1e9){ | ||
return convertToDecimal((number / 1e6), decimal, $math) + ' M'; | ||
} else { | ||
return convertToDecimal((number / 1e9), decimal, $math) + ' B'; | ||
} | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
/** | ||
@@ -2135,3 +2165,3 @@ * @ngdoc filter | ||
* for angular version that greater than v.1.3.0 | ||
* if clear cache when the digest cycle end. | ||
* it clear cache when the digest cycle is end. | ||
*/ | ||
@@ -2250,2 +2280,3 @@ function cleanStateless() { | ||
'a8m.count-by', | ||
'a8m.chunk-by', | ||
'a8m.search-field', | ||
@@ -2264,3 +2295,4 @@ 'a8m.fuzzy-by', | ||
'a8m.join', | ||
'a8m.range', | ||
'a8m.math', | ||
@@ -2267,0 +2299,0 @@ 'a8m.math.max', |
/** | ||
* Bunch of useful filters for angularJS(with no external dependencies!) | ||
* @version v0.5.4 - 2015-02-20 * @link https://github.com/a8m/angular-filter | ||
* @version v0.5.5 - 2015-08-07 * @link https://github.com/a8m/angular-filter | ||
* @author Ariel Mashraki <ariel@mashraki.co.il> | ||
* @license MIT License, http://www.opensource.org/licenses/MIT | ||
*/!function(a,b,c){"use strict";function d(a){return D(a)?a:Object.keys(a).map(function(b){return a[b]})}function e(a){return null===a}function f(a,b){var d=Object.keys(a);return-1==d.map(function(d){return b[d]!==c&&b[d]==a[d]}).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=x(c)?b>d&&c(a):b>d;return d=e?d+1:d,e})}function i(a,b,c){return c.round(a*c.pow(10,b))/c.pow(10,b)}function j(a,b,c){b=b||[];var d=Object.keys(a);return d.forEach(function(d){if(C(a[d])&&!D(a[d])){var e=c?c+"."+d:c;j(a[d],b,e||d)}else{var f=c?c+"."+d:d;b.push(f)}}),b}function k(a){return a&&a.$evalAsync&&a.$watch}function l(){return function(a,b){return a>b}}function m(){return function(a,b){return a>=b}}function n(){return function(a,b){return b>a}}function o(){return function(a,b){return b>=a}}function p(){return function(a,b){return a==b}}function q(){return function(a,b){return a!=b}}function r(){return function(a,b){return a===b}}function s(){return function(a,b){return a!==b}}function t(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?!1:b.some(function(b){return C(b)||z(c)?a(c)(b):b===c})}}function u(a,b){return b=b||0,b>=a.length?a:D(a[b])?u(a.slice(0,b).concat(a[b],a.slice(b+1)),b):u(a,b+1)}function v(a){return function(b,c){function e(a,b){return y(b)?!1:a.some(function(a){return H(a,b)})}if(b=C(b)?d(b):b,!D(b))return b;var f=[],g=a(c);return b.filter(y(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 w(a,b,c){return b?a+c+w(a,--b,c):a}var x=b.isDefined,y=b.isUndefined,z=b.isFunction,A=b.isString,B=b.isNumber,C=b.isObject,D=b.isArray,E=b.forEach,F=b.extend,G=b.copy,H=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:l,">":l,isGreaterThanOrEqualTo:m,">=":m,isLessThan:n,"<":n,isLessThanOrEqualTo:o,"<=":o,isEqualTo:p,"==":p,isNotEqualTo:q,"!=":q,isIdenticalTo:r,"===":r,isNotIdenticalTo:s,"!==":s}),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=C(a)?d(a):a,!D(a)||y(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=C(a)?d(a):a,D(a)?a.slice(b):a}}),b.module("a8m.before-where",[]).filter("beforeWhere",function(){return function(a,b){if(a=C(a)?d(a):a,!D(a)||y(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=C(a)?d(a):a,D(a)?a.slice(0,b?--b:b):a}}),b.module("a8m.concat",[]).filter("concat",[function(){return function(a,b){if(y(b))return a;if(D(a))return a.concat(C(b)?d(b):b);if(C(a)){var c=d(a);return c.concat(C(b)?d(b):b)}return a}}]),b.module("a8m.contains",[]).filter({contains:["$parse",t],some:["$parse",t]}),b.module("a8m.count-by",[]).filter("countBy",["$parse",function(a){return function(b,c){var e,f={},g=a(c);return b=C(b)?d(b):b,!D(b)||y(c)?b:(b.forEach(function(a){e=g(a),f[e]||(f[e]=0),f[e]++}),f)}}]),b.module("a8m.defaults",[]).filter("defaults",["$parse",function(a){return function(b,c){if(b=C(b)?d(b):b,!D(b)||!C(c))return b;var e=j(c);return b.forEach(function(b){e.forEach(function(d){var e=a(d),f=e.assign;y(e(b))&&f(b,e(c))})}),b}}]),b.module("a8m.every",[]).filter("every",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?!0:b.every(function(b){return C(b)||z(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=A(f)||B(f)?String(f).toLowerCase():c,b=C(b)?d(b):b,!D(b)||y(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 A(g)||B(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=C(b)?d(b):b,D(b)?(g=Array.prototype.slice.call(arguments,1),e=B(g[0])?g[0]:1,f=B(g[0])?B(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=C(a)?d(a):a,D(a)?b?[].concat.apply([],a):u(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=C(b)?d(b):b,!D(b)||y(c)||y(e)?b:(i=a(c),b.filter(function(a){return h=i(a),A(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<e.filter(function(e){return c=a[e],d?!0:A(c)?(c=f?c:c.toLowerCase(),d=g(c,b)!==!1):!1}).length}var f=c||!1;return a=C(a)?d(a):a,!D(a)||y(b)?a:(b=f?b:b.toLowerCase(),a.filter(function(a){return A(a)?(a=f?a:a.toLowerCase(),g(a,b)!==!1):C(a)?e(a,b):!1}))}}),b.module("a8m.group-by",["a8m.filter-watcher"]).filter("groupBy",["$parse","filterWatcher",function(a,b){return function(c,d){function e(a,b){var c,d={};return E(a,function(a){c=b(a),d[c]||(d[c]=[]),d[c].push(a)}),d}if(!C(c)||y(d))return c;var f=a(d);return b.isMemoized("groupBy",arguments)||b.memoize("groupBy",arguments,this,e(c,f))}}]),b.module("a8m.is-empty",[]).filter("isEmpty",function(){return function(a){return C(a)?!d(a).length:!a.length}}),b.module("a8m.join",[]).filter("join",function(){return function(a,b){return y(a)||!D(a)?a:(y(b)&&(b=" "),a.join(b))}}),b.module("a8m.last",[]).filter("last",["$parse",function(a){return function(b){var e,f,g,i=G(b);return i=C(i)?d(i):i,D(i)?(g=Array.prototype.slice.call(arguments,1),e=B(g[0])?g[0]:1,f=B(g[0])?B(g[1])?c:g[1]:g[0],g.length?h(i.reverse(),e,f?a(f):f).reverse():i[i.length-1]):i}}]),b.module("a8m.map",[]).filter("map",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.map(function(b){return a(c)(b)})}}]),b.module("a8m.omit",[]).filter("omit",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.filter(function(b){return!a(c)(b)})}}]),b.module("a8m.pick",[]).filter("pick",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.filter(function(b){return a(c)(b)})}}]),b.module("a8m.remove-with",[]).filter("removeWith",function(){return function(a,b){return y(b)?a:(a=C(a)?d(a):a,a.filter(function(a){return!f(b,a)}))}}),b.module("a8m.remove",[]).filter("remove",function(){return function(a){a=C(a)?d(a):a;var b=Array.prototype.slice.call(arguments,1);return D(a)?a.filter(function(a){return!b.some(function(b){return H(b,a)})}):a}}),b.module("a8m.reverse",[]).filter("reverse",[function(){return function(a){return a=C(a)?d(a):a,A(a)?a.split("").reverse().join(""):D(a)?a.slice().reverse():a}}]),b.module("a8m.search-field",[]).filter("searchField",["$parse",function(a){return function(b){var c,e;b=C(b)?d(b):b;var f=Array.prototype.slice.call(arguments,1);return D(b)&&f.length?b.map(function(b){return e=f.map(function(d){return(c=a(d))(b)}).join(" "),F(b,{searchField:e})}):b}}]),b.module("a8m.to-array",[]).filter("toArray",function(){return function(a,b){return C(a)?b?Object.keys(a).map(function(b){return F(a[b],{$key:b})}):d(a):a}}),b.module("a8m.unique",[]).filter({unique:["$parse",v],uniq:["$parse",v]}),b.module("a8m.where",[]).filter("where",function(){return function(a,b){return y(b)?a:(a=C(a)?d(a):a,a.filter(function(a){return f(b,a)}))}}),b.module("a8m.xor",[]).filter("xor",["$parse",function(a){return function(b,c,e){function f(b,c){var d=a(e);return c.some(function(a){return e?H(d(a),d(b)):H(a,b)})}return e=e||!1,b=C(b)?d(b):b,c=C(c)?d(c):c,D(b)&&D(c)?b.concat(c).filter(function(a){return!(f(a,b)&&f(a,c))}):b}}]),b.module("a8m.math.byteFmt",["a8m.math"]).filter("byteFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1024>b?i(b,c,a)+" B":1048576>b?i(b/1024,c,a)+" KB":1073741824>b?i(b/1048576,c,a)+" MB":i(b/1073741824,c,a)+" GB":"NaN"}}]),b.module("a8m.math.degrees",["a8m.math"]).filter("degrees",["$math",function(a){return function(b,c){if(B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)){var d=180*b/a.PI;return a.round(d*a.pow(10,c))/a.pow(10,c)}return"NaN"}}]),b.module("a8m.math.kbFmt",["a8m.math"]).filter("kbFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1024>b?i(b,c,a)+" KB":1048576>b?i(b/1024,c,a)+" MB":i(b/1048576,c,a)+" GB":"NaN"}}]),b.module("a8m.math",[]).factory("$math",["$window",function(a){return a.Math}]),b.module("a8m.math.max",["a8m.math"]).filter("max",["$math","$parse",function(a,b){function c(c,d){var e=c.map(function(a){return b(d)(a)});return e.indexOf(a.max.apply(a,e))}return function(b,d){return D(b)?y(d)?a.max.apply(a,b):b[c(b,d)]:b}}]),b.module("a8m.math.min",["a8m.math"]).filter("min",["$math","$parse",function(a,b){function c(c,d){var e=c.map(function(a){return b(d)(a)});return e.indexOf(a.min.apply(a,e))}return function(b,d){return D(b)?y(d)?a.min.apply(a,b):b[c(b,d)]:b}}]),b.module("a8m.math.percent",["a8m.math"]).filter("percent",["$math","$window",function(a,b){return function(c,d,e){var f=A(c)?b.Number(c):c;return d=d||100,e=e||!1,!B(f)||b.isNaN(f)?c:e?a.round(f/d*100):f/d*100}}]),b.module("a8m.math.radians",["a8m.math"]).filter("radians",["$math",function(a){return function(b,c){if(B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)){var d=3.14159265359*b/180;return a.round(d*a.pow(10,c))/a.pow(10,c)}return"NaN"}}]),b.module("a8m.math.radix",[]).filter("radix",function(){return function(a,b){var c=/^[2-9]$|^[1-2]\d$|^3[0-6]$/;return B(a)&&c.test(b)?a.toString(b).toUpperCase():a}}),b.module("a8m.math.shortFmt",["a8m.math"]).filter("shortFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1e3>b?b:1e6>b?i(b/1e3,c,a)+" K":1e9>b?i(b/1e6,c,a)+" M":i(b/1e9,c,a)+" B":"NaN"}}]),b.module("a8m.math.sum",[]).filter("sum",function(){return function(a,b){return D(a)?a.reduce(function(a,b){return a+b},b||0):a}}),b.module("a8m.ends-with",[]).filter("endsWith",function(){return function(a,b,c){var d,e=c||!1;return!A(a)||y(b)?a:(a=e?a:a.toLowerCase(),d=a.length-b.length,-1!==a.indexOf(e?b:b.toLowerCase(),d))}}),b.module("a8m.latinize",[]).filter("latinize",[function(){function a(a){return a.replace(/[^\u0000-\u007E]/g,function(a){return c[a]||a})}for(var b=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"Œ"},{base:"oe",letters:"œ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],c={},d=0;d<b.length;d++)for(var e=b[d].letters.split(""),f=0;f<e.length;f++)c[e[f]]=b[d].base;return function(b){return A(b)?a(b):b}}]),b.module("a8m.ltrim",[]).filter("ltrim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp("^"+c+"+"),""):a}}),b.module("a8m.match",[]).filter("match",function(){return function(a,b,c){var d=new RegExp(b,c);return A(a)?a.match(d):null}}),b.module("a8m.repeat",[]).filter("repeat",[function(){return function(a,b,c){var d=~~b;return A(a)&&d?w(a,--b,c||""):a}}]),b.module("a8m.rtrim",[]).filter("rtrim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp(c+"+$"),""):a}}),b.module("a8m.slugify",[]).filter("slugify",[function(){return function(a,b){var c=y(b)?"-":b;return A(a)?a.toLowerCase().replace(/\s+/g,c):a}}]),b.module("a8m.starts-with",[]).filter("startsWith",function(){return function(a,b,c){var d=c||!1;return!A(a)||y(b)?a:(a=d?a:a.toLowerCase(),!a.indexOf(d?b:b.toLowerCase()))}}),b.module("a8m.stringular",[]).filter("stringular",function(){return function(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,c){return y(b[c])?a:b[c]})}}),b.module("a8m.strip-tags",[]).filter("stripTags",function(){return function(a){return A(a)?a.replace(/<\S[^><]*>/g,""):a}}),b.module("a8m.test",[]).filter("test",function(){return function(a,b,c){var d=new RegExp(b,c);return A(a)?d.test(a):a}}),b.module("a8m.trim",[]).filter("trim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp("^"+c+"+|"+c+"+$","g"),""):a}}),b.module("a8m.truncate",[]).filter("truncate",function(){return function(a,b,c,d){return b=y(b)?a.length:b,d=d||!1,c=c||"",!A(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 A(a)?a.split(" ").map(function(a){return a.charAt(0).toUpperCase()+a.substring(1)}).join(" "):a}}]),b.module("a8m.uri-component-encode",[]).filter("uriComponentEncode",["$window",function(a){return function(b){return A(b)?a.encodeURIComponent(b):b}}]),b.module("a8m.uri-encode",[]).filter("uriEncode",["$window",function(a){return function(b){return A(b)?a.encodeURI(b):b}}]),b.module("a8m.wrap",[]).filter("wrap",function(){return function(a,b,c){return A(a)&&x(b)?[b,a,c||b].join(""):a}}),b.module("a8m.filter-watcher",[]).provider("filterWatcher",function(){this.$get=["$window","$rootScope",function(a,c){function d(a,c){return[a,b.toJson(c)].join("#").replace(/"/g,"")}function e(a){var b=a.targetScope.$id;E(l[b],function(a){delete j[a]}),delete l[b]}function f(){m(function(){c.$$phase||(j={})})}function g(a,b){var c=a.$id;return y(l[c])&&(a.$on("$destroy",e),l[c]=[]),l[c].push(b)}function h(a,b){var c=d(a,b);return j[c]}function i(a,b,c,e){var h=d(a,b);return j[h]=e,k(c)?g(c,h):f(),e}var j={},l={},m=a.setTimeout;return{isMemoized:h,memoize:i}}]}),b.module("angular.filter",["a8m.ucfirst","a8m.uri-encode","a8m.uri-component-encode","a8m.slugify","a8m.latinize","a8m.strip-tags","a8m.stringular","a8m.truncate","a8m.starts-with","a8m.ends-with","a8m.wrap","a8m.trim","a8m.ltrim","a8m.rtrim","a8m.repeat","a8m.test","a8m.match","a8m.to-array","a8m.concat","a8m.contains","a8m.unique","a8m.is-empty","a8m.after","a8m.after-where","a8m.before","a8m.before-where","a8m.defaults","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.join","a8m.math","a8m.math.max","a8m.math.min","a8m.math.percent","a8m.math.radix","a8m.math.sum","a8m.math.degrees","a8m.math.radians","a8m.math.byteFmt","a8m.math.kbFmt","a8m.math.shortFmt","a8m.angular","a8m.conditions","a8m.is-null","a8m.filter-watcher"])}(window,window.angular); | ||
*/!function(a,b,c){"use strict";function d(a){return D(a)?a:Object.keys(a).map(function(b){return a[b]})}function e(a){return null===a}function f(a,b){var d=Object.keys(a);return-1==d.map(function(d){return b[d]!==c&&b[d]==a[d]}).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=x(c)?b>d&&c(a):b>d;return d=e?d+1:d,e})}function i(a,b,c){return c.round(a*c.pow(10,b))/c.pow(10,b)}function j(a,b,c){b=b||[];var d=Object.keys(a);return d.forEach(function(d){if(C(a[d])&&!D(a[d])){var e=c?c+"."+d:c;j(a[d],b,e||d)}else{var f=c?c+"."+d:d;b.push(f)}}),b}function k(a){return a&&a.$evalAsync&&a.$watch}function l(){return function(a,b){return a>b}}function m(){return function(a,b){return a>=b}}function n(){return function(a,b){return b>a}}function o(){return function(a,b){return b>=a}}function p(){return function(a,b){return a==b}}function q(){return function(a,b){return a!=b}}function r(){return function(a,b){return a===b}}function s(){return function(a,b){return a!==b}}function t(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?!1:b.some(function(b){return C(b)||z(c)?a(c)(b):b===c})}}function u(a,b){return b=b||0,b>=a.length?a:D(a[b])?u(a.slice(0,b).concat(a[b],a.slice(b+1)),b):u(a,b+1)}function v(a){return function(b,c){function e(a,b){return y(b)?!1:a.some(function(a){return H(a,b)})}if(b=C(b)?d(b):b,!D(b))return b;var f=[],g=a(c);return y(c)?b.filter(function(a,b,c){return c.indexOf(a)===b}):b.filter(function(a){var b=g(a);return e(f,b)?!1:(f.push(b),!0)})}}function w(a,b,c){return b?a+c+w(a,--b,c):a}var x=b.isDefined,y=b.isUndefined,z=b.isFunction,A=b.isString,B=b.isNumber,C=b.isObject,D=b.isArray,E=b.forEach,F=b.extend,G=b.copy,H=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:l,">":l,isGreaterThanOrEqualTo:m,">=":m,isLessThan:n,"<":n,isLessThanOrEqualTo:o,"<=":o,isEqualTo:p,"==":p,isNotEqualTo:q,"!=":q,isIdenticalTo:r,"===":r,isNotIdenticalTo:s,"!==":s}),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=C(a)?d(a):a,!D(a)||y(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=C(a)?d(a):a,D(a)?a.slice(b):a}}),b.module("a8m.before-where",[]).filter("beforeWhere",function(){return function(a,b){if(a=C(a)?d(a):a,!D(a)||y(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=C(a)?d(a):a,D(a)?a.slice(0,b?--b:b):a}}),b.module("a8m.chunk-by",[]).filter("chunkBy",[function(){function a(a,b){for(var c=[];a--;)c[a]=b;return c}return function(b,c,d){return D(b)?b.map(function(b,e,f){return e*=c,b=f.slice(e,e+c),!y(d)&&b.length<c?b.concat(a(c-b.length,d)):b}).slice(0,Math.ceil(b.length/c)):b}}]),b.module("a8m.concat",[]).filter("concat",[function(){return function(a,b){if(y(b))return a;if(D(a))return C(b)?a.concat(d(b)):a.concat(b);if(C(a)){var c=d(a);return C(b)?c.concat(d(b)):c.concat(b)}return a}}]),b.module("a8m.contains",[]).filter({contains:["$parse",t],some:["$parse",t]}),b.module("a8m.count-by",[]).filter("countBy",["$parse",function(a){return function(b,c){var e,f={},g=a(c);return b=C(b)?d(b):b,!D(b)||y(c)?b:(b.forEach(function(a){e=g(a),f[e]||(f[e]=0),f[e]++}),f)}}]),b.module("a8m.defaults",[]).filter("defaults",["$parse",function(a){return function(b,c){if(b=C(b)?d(b):b,!D(b)||!C(c))return b;var e=j(c);return b.forEach(function(b){e.forEach(function(d){var e=a(d),f=e.assign;y(e(b))&&f(b,e(c))})}),b}}]),b.module("a8m.every",[]).filter("every",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?!0:b.every(function(b){return C(b)||z(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=A(f)||B(f)?String(f).toLowerCase():c,b=C(b)?d(b):b,!D(b)||y(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 A(g)||B(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=C(b)?d(b):b,D(b)?(g=Array.prototype.slice.call(arguments,1),e=B(g[0])?g[0]:1,f=B(g[0])?B(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=C(a)?d(a):a,D(a)?b?[].concat.apply([],a):u(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=C(b)?d(b):b,!D(b)||y(c)||y(e)?b:(i=a(c),b.filter(function(a){return h=i(a),A(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<e.filter(function(e){return c=a[e],d?!0:A(c)?(c=f?c:c.toLowerCase(),d=g(c,b)!==!1):!1}).length}var f=c||!1;return a=C(a)?d(a):a,!D(a)||y(b)?a:(b=f?b:b.toLowerCase(),a.filter(function(a){return A(a)?(a=f?a:a.toLowerCase(),g(a,b)!==!1):C(a)?e(a,b):!1}))}}),b.module("a8m.group-by",["a8m.filter-watcher"]).filter("groupBy",["$parse","filterWatcher",function(a,b){return function(c,d){function e(a,b){var c,d={};return E(a,function(a){c=b(a),d[c]||(d[c]=[]),d[c].push(a)}),d}if(!C(c)||y(d))return c;var f=a(d);return b.isMemoized("groupBy",arguments)||b.memoize("groupBy",arguments,this,e(c,f))}}]),b.module("a8m.is-empty",[]).filter("isEmpty",function(){return function(a){return C(a)?!d(a).length:!a.length}}),b.module("a8m.join",[]).filter("join",function(){return function(a,b){return y(a)||!D(a)?a:(y(b)&&(b=" "),a.join(b))}}),b.module("a8m.last",[]).filter("last",["$parse",function(a){return function(b){var e,f,g,i=G(b);return i=C(i)?d(i):i,D(i)?(g=Array.prototype.slice.call(arguments,1),e=B(g[0])?g[0]:1,f=B(g[0])?B(g[1])?c:g[1]:g[0],g.length?h(i.reverse(),e,f?a(f):f).reverse():i[i.length-1]):i}}]),b.module("a8m.map",[]).filter("map",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.map(function(b){return a(c)(b)})}}]),b.module("a8m.omit",[]).filter("omit",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.filter(function(b){return!a(c)(b)})}}]),b.module("a8m.pick",[]).filter("pick",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.filter(function(b){return a(c)(b)})}}]),b.module("a8m.range",[]).filter("range",function(){return function(a,b){for(var c=0;c<parseInt(b);c++)a.push(c);return a}}),b.module("a8m.remove-with",[]).filter("removeWith",function(){return function(a,b){return y(b)?a:(a=C(a)?d(a):a,a.filter(function(a){return!f(b,a)}))}}),b.module("a8m.remove",[]).filter("remove",function(){return function(a){a=C(a)?d(a):a;var b=Array.prototype.slice.call(arguments,1);return D(a)?a.filter(function(a){return!b.some(function(b){return H(b,a)})}):a}}),b.module("a8m.reverse",[]).filter("reverse",[function(){return function(a){return a=C(a)?d(a):a,A(a)?a.split("").reverse().join(""):D(a)?a.slice().reverse():a}}]),b.module("a8m.search-field",[]).filter("searchField",["$parse",function(a){return function(b){var c,e;b=C(b)?d(b):b;var f=Array.prototype.slice.call(arguments,1);return D(b)&&f.length?b.map(function(b){return e=f.map(function(d){return(c=a(d))(b)}).join(" "),F(b,{searchField:e})}):b}}]),b.module("a8m.to-array",[]).filter("toArray",function(){return function(a,b){return C(a)?b?Object.keys(a).map(function(b){return F(a[b],{$key:b})}):d(a):a}}),b.module("a8m.unique",[]).filter({unique:["$parse",v],uniq:["$parse",v]}),b.module("a8m.where",[]).filter("where",function(){return function(a,b){return y(b)?a:(a=C(a)?d(a):a,a.filter(function(a){return f(b,a)}))}}),b.module("a8m.xor",[]).filter("xor",["$parse",function(a){return function(b,c,e){function f(b,c){var d=a(e);return c.some(function(a){return e?H(d(a),d(b)):H(a,b)})}return e=e||!1,b=C(b)?d(b):b,c=C(c)?d(c):c,D(b)&&D(c)?b.concat(c).filter(function(a){return!(f(a,b)&&f(a,c))}):b}}]),b.module("a8m.math.byteFmt",["a8m.math"]).filter("byteFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1024>b?i(b,c,a)+" B":1048576>b?i(b/1024,c,a)+" KB":1073741824>b?i(b/1048576,c,a)+" MB":i(b/1073741824,c,a)+" GB":"NaN"}}]),b.module("a8m.math.degrees",["a8m.math"]).filter("degrees",["$math",function(a){return function(b,c){if(B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)){var d=180*b/a.PI;return a.round(d*a.pow(10,c))/a.pow(10,c)}return"NaN"}}]),b.module("a8m.math.kbFmt",["a8m.math"]).filter("kbFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1024>b?i(b,c,a)+" KB":1048576>b?i(b/1024,c,a)+" MB":i(b/1048576,c,a)+" GB":"NaN"}}]),b.module("a8m.math",[]).factory("$math",["$window",function(a){return a.Math}]),b.module("a8m.math.max",["a8m.math"]).filter("max",["$math","$parse",function(a,b){function c(c,d){var e=c.map(function(a){return b(d)(a)});return e.indexOf(a.max.apply(a,e))}return function(b,d){return D(b)?y(d)?a.max.apply(a,b):b[c(b,d)]:b}}]),b.module("a8m.math.min",["a8m.math"]).filter("min",["$math","$parse",function(a,b){function c(c,d){var e=c.map(function(a){return b(d)(a)});return e.indexOf(a.min.apply(a,e))}return function(b,d){return D(b)?y(d)?a.min.apply(a,b):b[c(b,d)]:b}}]),b.module("a8m.math.percent",["a8m.math"]).filter("percent",["$math","$window",function(a,b){return function(c,d,e){var f=A(c)?b.Number(c):c;return d=d||100,e=e||!1,!B(f)||b.isNaN(f)?c:e?a.round(f/d*100):f/d*100}}]),b.module("a8m.math.radians",["a8m.math"]).filter("radians",["$math",function(a){return function(b,c){if(B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)){var d=3.14159265359*b/180;return a.round(d*a.pow(10,c))/a.pow(10,c)}return"NaN"}}]),b.module("a8m.math.radix",[]).filter("radix",function(){return function(a,b){var c=/^[2-9]$|^[1-2]\d$|^3[0-6]$/;return B(a)&&c.test(b)?a.toString(b).toUpperCase():a}}),b.module("a8m.math.shortFmt",["a8m.math"]).filter("shortFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1e3>b?b:1e6>b?i(b/1e3,c,a)+" K":1e9>b?i(b/1e6,c,a)+" M":i(b/1e9,c,a)+" B":"NaN"}}]),b.module("a8m.math.sum",[]).filter("sum",function(){return function(a,b){return D(a)?a.reduce(function(a,b){return a+b},b||0):a}}),b.module("a8m.ends-with",[]).filter("endsWith",function(){return function(a,b,c){var d,e=c||!1;return!A(a)||y(b)?a:(a=e?a:a.toLowerCase(),d=a.length-b.length,-1!==a.indexOf(e?b:b.toLowerCase(),d))}}),b.module("a8m.latinize",[]).filter("latinize",[function(){function a(a){return a.replace(/[^\u0000-\u007E]/g,function(a){return c[a]||a})}for(var b=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"Œ"},{base:"oe",letters:"œ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],c={},d=0;d<b.length;d++)for(var e=b[d].letters.split(""),f=0;f<e.length;f++)c[e[f]]=b[d].base;return function(b){return A(b)?a(b):b}}]),b.module("a8m.ltrim",[]).filter("ltrim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp("^"+c+"+"),""):a}}),b.module("a8m.match",[]).filter("match",function(){return function(a,b,c){var d=new RegExp(b,c);return A(a)?a.match(d):null}}),b.module("a8m.repeat",[]).filter("repeat",[function(){return function(a,b,c){var d=~~b;return A(a)&&d?w(a,--b,c||""):a}}]),b.module("a8m.rtrim",[]).filter("rtrim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp(c+"+$"),""):a}}),b.module("a8m.slugify",[]).filter("slugify",[function(){return function(a,b){var c=y(b)?"-":b;return A(a)?a.toLowerCase().replace(/\s+/g,c):a}}]),b.module("a8m.starts-with",[]).filter("startsWith",function(){return function(a,b,c){var d=c||!1;return!A(a)||y(b)?a:(a=d?a:a.toLowerCase(),!a.indexOf(d?b:b.toLowerCase()))}}),b.module("a8m.stringular",[]).filter("stringular",function(){return function(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,c){return y(b[c])?a:b[c]})}}),b.module("a8m.strip-tags",[]).filter("stripTags",function(){return function(a){return A(a)?a.replace(/<\S[^><]*>/g,""):a}}),b.module("a8m.test",[]).filter("test",function(){return function(a,b,c){var d=new RegExp(b,c);return A(a)?d.test(a):a}}),b.module("a8m.trim",[]).filter("trim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp("^"+c+"+|"+c+"+$","g"),""):a}}),b.module("a8m.truncate",[]).filter("truncate",function(){return function(a,b,c,d){return b=y(b)?a.length:b,d=d||!1,c=c||"",!A(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 A(a)?a.split(" ").map(function(a){return a.charAt(0).toUpperCase()+a.substring(1)}).join(" "):a}}]),b.module("a8m.uri-component-encode",[]).filter("uriComponentEncode",["$window",function(a){return function(b){return A(b)?a.encodeURIComponent(b):b}}]),b.module("a8m.uri-encode",[]).filter("uriEncode",["$window",function(a){return function(b){return A(b)?a.encodeURI(b):b}}]),b.module("a8m.wrap",[]).filter("wrap",function(){return function(a,b,c){return A(a)&&x(b)?[b,a,c||b].join(""):a}}),b.module("a8m.filter-watcher",[]).provider("filterWatcher",function(){this.$get=["$window","$rootScope",function(a,c){function d(a,c){return[a,b.toJson(c)].join("#").replace(/"/g,"")}function e(a){var b=a.targetScope.$id;E(l[b],function(a){delete j[a]}),delete l[b]}function f(){m(function(){c.$$phase||(j={})})}function g(a,b){var c=a.$id;return y(l[c])&&(a.$on("$destroy",e),l[c]=[]),l[c].push(b)}function h(a,b){var c=d(a,b);return j[c]}function i(a,b,c,e){var h=d(a,b);return j[h]=e,k(c)?g(c,h):f(),e}var j={},l={},m=a.setTimeout;return{isMemoized:h,memoize:i}}]}),b.module("angular.filter",["a8m.ucfirst","a8m.uri-encode","a8m.uri-component-encode","a8m.slugify","a8m.latinize","a8m.strip-tags","a8m.stringular","a8m.truncate","a8m.starts-with","a8m.ends-with","a8m.wrap","a8m.trim","a8m.ltrim","a8m.rtrim","a8m.repeat","a8m.test","a8m.match","a8m.to-array","a8m.concat","a8m.contains","a8m.unique","a8m.is-empty","a8m.after","a8m.after-where","a8m.before","a8m.before-where","a8m.defaults","a8m.where","a8m.reverse","a8m.remove","a8m.remove-with","a8m.group-by","a8m.count-by","a8m.chunk-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.join","a8m.range","a8m.math","a8m.math.max","a8m.math.min","a8m.math.percent","a8m.math.radix","a8m.math.sum","a8m.math.degrees","a8m.math.radians","a8m.math.byteFmt","a8m.math.kbFmt","a8m.math.shortFmt","a8m.angular","a8m.conditions","a8m.is-null","a8m.filter-watcher"])}(window,window.angular); |
{ | ||
"name": "angular-filter", | ||
"description": "Bunch of useful filters for angularJS(with no external dependencies!)", | ||
"version": "0.5.4", | ||
"version": "0.5.5", | ||
"filename": "angular-filter.min.js", | ||
@@ -29,3 +29,6 @@ "main": "dist/angular-filter.min.js", | ||
"devDependencies": { | ||
"coveralls": "~2.11.1", | ||
"grunt": "^0.4.1", | ||
"grunt-bower": "*", | ||
"grunt-bower-task": "*", | ||
"grunt-cli": ">= 0.1.7", | ||
@@ -35,16 +38,13 @@ "grunt-contrib-concat": "*", | ||
"grunt-contrib-uglify": "*", | ||
"grunt-bower": "*", | ||
"grunt-bower-task": "*", | ||
"grunt-karma": "latest", | ||
"grunt-conventional-changelog": "0.0.12", | ||
"grunt-coveralls": "~0.3.0", | ||
"grunt-karma": "^0.12.0", | ||
"grunt-karma-coveralls": "~2.5.1", | ||
"grunt-zip": "*", | ||
"karma": "^0.13.8", | ||
"karma-chrome-launcher": "~0.1.2", | ||
"karma-coverage": "~0.2.4", | ||
"karma-firefox-launcher": "~0.1.3", | ||
"karma": "~0.12.16", | ||
"karma-jasmine": "~0.1.5", | ||
"karma-phantomjs-launcher": "~0.1.4", | ||
"coveralls": "~2.11.1", | ||
"grunt-karma-coveralls": "~2.5.1", | ||
"karma-coverage": "~0.2.4", | ||
"grunt-coveralls": "~0.3.0" | ||
"karma-phantomjs-launcher": "~0.1.4" | ||
}, | ||
@@ -51,0 +51,0 @@ "scripts": { |
#Angular-filter [![NPM version][npm-image]][npm-url] [![Build status][travis-image]][travis-url] [![Test coverage][coveralls-image]][coveralls-url] [![License][license-image]][license-url] | ||
>Bunch of useful filters for AngularJS (with no external dependencies!), **v0.5.3** | ||
>Bunch of useful filters for AngularJS (with no external dependencies!), **v0.5.5** | ||
@@ -7,2 +7,3 @@ **Notice:** if you want to use `angular-filter` out of AngularJS(e.g: Node, etc..), check [Agile.js repo](https://github.com/a8m/agile) | ||
##Table of contents: | ||
- [![Gitter][gitter-image]][gitter-url] | ||
- [Get Started](#get-started) | ||
@@ -21,2 +22,3 @@ - [Common Questions](https://github.com/a8m/angular-filter/wiki/Common-Questions) | ||
- [countBy](#countby) | ||
- [chunkBy](#chunkby) | ||
- [defaults](#defaults) | ||
@@ -31,3 +33,3 @@ - [every](#every) | ||
- [isEmpty](#isempty) | ||
- [join] (#join) | ||
- [join](#join) | ||
- [last](#last) | ||
@@ -38,2 +40,3 @@ - [map](#map) | ||
- [pluck](#pluck) | ||
- [range](#range) | ||
- [reverse](#reverse) | ||
@@ -396,3 +399,3 @@ - [remove](#remove) | ||
fuzzy string searching(approximate string matching) by property(nested to). [Read more](http://en.wikipedia.org/wiki/Approximate_string_matching)<br/> | ||
usage: ```collection | fuzzyBy: 'property': search: caseSensitive[optional]``` | ||
**Usage:** ```collection | fuzzyBy: 'property': search: caseSensitive[optional]``` | ||
```js | ||
@@ -420,3 +423,3 @@ $scope.books = [ | ||
each key is an array of the elements.<br/> | ||
**usage:** ```(key, value) in collection | groupBy: 'property'``` or ```... | groupBy: 'nested.property'``` | ||
**Usage:** ```(key, value) in collection | groupBy: 'property'``` or ```... | groupBy: 'nested.property'``` | ||
```js | ||
@@ -455,3 +458,3 @@ $scope.players = [ | ||
each key is the count of objects in each group<br/> | ||
**usage:** ```(key, value) in collection | countBy: 'property'``` or ```... | countBy: 'nested.property'``` | ||
**Usage:** ```(key, value) in collection | countBy: 'property'``` or ```... | countBy: 'nested.property'``` | ||
```js | ||
@@ -475,2 +478,26 @@ $scope.players = [ | ||
``` | ||
###chunkBy | ||
Collect data into fixed-length chunks or blocks | ||
**Usage:** ```(key, value) in collection | chunkBy: 'n': fill-value(optional)``` | ||
```js | ||
$scope.array = [1, 2, 3, 4, 5, 6]; | ||
``` | ||
```html | ||
<li ng-repeat="block in array | chunkBy: 2" > | ||
Block: {{ block }} | ||
</li> | ||
<!-- result: | ||
Block: [1, 2] | ||
Block: [3, 4] | ||
Block: [5, 6] | ||
--> | ||
<-- Example with fill value --> | ||
<li ng-repeat="block in array | chunkBy: 4: 0" > | ||
Block: {{ block }} | ||
</li> | ||
<!-- result: | ||
Block: [1, 2, 3, 4] | ||
Block: [5, 6, 0, 0] | ||
``` | ||
###defaults | ||
@@ -651,3 +678,3 @@ `defaultsFilter` allows to specify a default fallback value for properties that resolve to undefined.<br/> | ||
so searchField filter return new collection with property called searchField<br/> | ||
**support nested properties with dot notation i.e:** ``` collection | searchFiled: 'prop': 'nested.prop' ``` | ||
**support nested properties with dot notation i.e:** ``` collection | searchField: 'prop': 'nested.prop' ``` | ||
```js | ||
@@ -916,2 +943,14 @@ $scope.users = [ | ||
``` | ||
###range | ||
Return a new collection from a given length<br/> | ||
**Usage:** ```collection | range: length```<br/> | ||
```html | ||
<th ng-repeat="i in [] | range: 3"> | ||
{{ i }} | ||
</th> | ||
<!--result: | ||
0 | ||
1 | ||
2 | ||
``` | ||
@@ -1359,1 +1398,3 @@ #String | ||
[license-url]: LICENSE | ||
[gitter-image]: https://badges.gitter.im/Join%20Chat.svg | ||
[gitter-url]: https://gitter.im/a8m/angular-filter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge |
@@ -24,4 +24,5 @@ /*jshint globalstrict:true*/ | ||
function toArray(object) { | ||
return isArray(object) ? object : | ||
Object.keys(object).map(function(key) { | ||
return isArray(object) | ||
? object | ||
: Object.keys(object).map(function(key) { | ||
return object[key]; | ||
@@ -28,0 +29,0 @@ }); |
@@ -15,8 +15,7 @@ /** | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
: collection; | ||
if(!isArray(collection) || isUndefined(object)) | ||
return collection; | ||
if(!isArray(collection) || isUndefined(object)) return collection; | ||
@@ -23,0 +22,0 @@ var index = collection.map( function( elm ) { |
@@ -15,3 +15,3 @@ /** | ||
return function (collection, count) { | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -18,0 +18,0 @@ : collection; |
@@ -14,8 +14,7 @@ /** | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
: collection; | ||
if(!isArray(collection) || isUndefined(object)) | ||
return collection; | ||
if(!isArray(collection) || isUndefined(object)) return collection; | ||
@@ -22,0 +21,0 @@ var index = collection.map( function( elm ) { |
@@ -13,3 +13,3 @@ /** | ||
return function (collection, count) { | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -16,0 +16,0 @@ : collection; |
@@ -10,11 +10,9 @@ /** | ||
angular.module('a8m.concat', []) | ||
//TODO(Ariel):unique option ? or use unique filter to filter result | ||
.filter('concat', [function () { | ||
return function (collection, joined) { | ||
if (isUndefined(joined)) { | ||
return collection; | ||
} | ||
if (isUndefined(joined)) return collection; | ||
if (isArray(collection)) { | ||
return (isObject(joined)) | ||
return isObject(joined) | ||
? collection.concat(toArray(joined)) | ||
@@ -21,0 +19,0 @@ : collection.concat(joined); |
@@ -15,6 +15,6 @@ /** | ||
function containsFilter( $parse ) { | ||
function containsFilter($parse) { | ||
return function (collection, expression) { | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -21,0 +21,0 @@ if(!isArray(collection) || isUndefined(expression)) { |
@@ -13,3 +13,3 @@ /** | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -16,0 +16,0 @@ if(!isArray(collection) || !isObject(defaults)) { |
@@ -13,3 +13,3 @@ /** | ||
return function (collection, expression) { | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -16,0 +16,0 @@ if(!isArray(collection) || isUndefined(expression)) { |
@@ -12,3 +12,2 @@ /** | ||
return function(collection, properties, search) { | ||
var comparator; | ||
@@ -19,3 +18,3 @@ | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -22,0 +21,0 @@ if(!isArray(collection) || isUndefined(search)) { |
@@ -13,3 +13,2 @@ /** | ||
return function(collection) { | ||
var n | ||
@@ -19,3 +18,3 @@ , getter | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -22,0 +21,0 @@ : collection; |
@@ -15,3 +15,3 @@ /** | ||
shallow = shallow || false; | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -18,0 +18,0 @@ : collection; |
@@ -16,3 +16,3 @@ /** | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -19,0 +19,0 @@ if(!isArray(collection) || isUndefined(property) |
@@ -12,7 +12,5 @@ /** | ||
return function (collection, search, csensitive) { | ||
var sensitive = csensitive || false; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
if(!isArray(collection) || isUndefined(search)) { | ||
@@ -25,3 +23,2 @@ return collection; | ||
return collection.filter(function(elm) { | ||
if(isString(elm)) { | ||
@@ -31,5 +28,3 @@ elm = (sensitive) ? elm : elm.toLowerCase(); | ||
} | ||
return (isObject(elm)) ? _hasApproximateKey(elm, search) : false; | ||
}); | ||
@@ -63,4 +58,3 @@ | ||
} | ||
} | ||
}); |
@@ -12,3 +12,2 @@ /** | ||
angular.module('a8m.group-by', [ 'a8m.filter-watcher' ]) | ||
.filter('groupBy', [ '$parse', 'filterWatcher', function ( $parse, filterWatcher ) { | ||
@@ -15,0 +14,0 @@ return function (collection, property) { |
@@ -12,3 +12,3 @@ /** | ||
return function(collection) { | ||
return (isObject(collection)) | ||
return isObject(collection) | ||
? !toArray(collection).length | ||
@@ -15,0 +15,0 @@ : !collection.length; |
@@ -15,5 +15,3 @@ /** | ||
} | ||
if (isUndefined(delimiter)) { | ||
delimiter = ' '; | ||
} | ||
if (isUndefined(delimiter)) delimiter = ' '; | ||
@@ -20,0 +18,0 @@ return input.join(delimiter); |
@@ -20,3 +20,3 @@ /** | ||
reversed = (isObject(reversed)) | ||
reversed = isObject(reversed) | ||
? toArray(reversed) | ||
@@ -23,0 +23,0 @@ : reversed; |
@@ -13,3 +13,3 @@ /** | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -16,0 +16,0 @@ : collection; |
@@ -15,3 +15,3 @@ /** | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -18,0 +18,0 @@ : collection; |
/** | ||
* @ngdoc filter | ||
* @name omit | ||
* @name pick | ||
* @kind function | ||
@@ -15,3 +15,3 @@ * | ||
collection = (isObject(collection)) | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -18,0 +18,0 @@ : collection; |
@@ -15,5 +15,3 @@ | ||
return function (collection) { | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
var args = Array.prototype.slice.call(arguments, 1); | ||
@@ -30,4 +28,3 @@ | ||
}); | ||
} | ||
}); |
@@ -12,3 +12,3 @@ /** | ||
return function (input) { | ||
input = (isObject(input)) ? toArray(input) : input; | ||
input = isObject(input) ? toArray(input) : input; | ||
@@ -15,0 +15,0 @@ if(isString(input)) { |
@@ -16,3 +16,3 @@ /** | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -19,0 +19,0 @@ var args = Array.prototype.slice.call(arguments, 1); |
@@ -21,3 +21,3 @@ /** | ||
collection = (isObject(collection)) ? toArray(collection) : collection; | ||
collection = isObject(collection) ? toArray(collection) : collection; | ||
@@ -24,0 +24,0 @@ if (!isArray(collection)) { |
@@ -14,7 +14,4 @@ /** | ||
return function (collection, object) { | ||
if(isUndefined(object)) { | ||
return collection; | ||
} | ||
collection = (isObject(collection)) | ||
if(isUndefined(object)) return collection; | ||
collection = isObject(collection) | ||
? toArray(collection) | ||
@@ -21,0 +18,0 @@ : collection; |
@@ -17,4 +17,4 @@ /** | ||
col1 = (isObject(col1)) ? toArray(col1) : col1; | ||
col2 = (isObject(col2)) ? toArray(col2) : col2; | ||
col1 = isObject(col1) ? toArray(col1) : col1; | ||
col2 = isObject(col2) ? toArray(col2) : col2; | ||
@@ -21,0 +21,0 @@ if(!isArray(col1) || !isArray(col2)) return col1; |
@@ -16,16 +16,15 @@ /** | ||
isNumber(bytes) && isFinite(bytes)) { | ||
if(bytes < 1024) { // within 1 KB so B | ||
return convertToDecimal(bytes, decimal, $math) + ' B'; | ||
return convertToDecimal(bytes, decimal, $math) + ' B'; | ||
} else if(bytes < 1048576) { // within 1 MB so KB | ||
return convertToDecimal((bytes / 1024), decimal, $math) + ' KB'; | ||
return convertToDecimal((bytes / 1024), decimal, $math) + ' KB'; | ||
} else if(bytes < 1073741824){ // within 1 GB so MB | ||
return convertToDecimal((bytes / 1048576), decimal, $math) + ' MB'; | ||
return convertToDecimal((bytes / 1048576), decimal, $math) + ' MB'; | ||
} else { // GB or more | ||
return convertToDecimal((bytes / 1073741824), decimal, $math) + ' GB'; | ||
return convertToDecimal((bytes / 1073741824), decimal, $math) + ' GB'; | ||
} | ||
} | ||
} | ||
return "NaN"; | ||
} | ||
}]); |
@@ -12,15 +12,15 @@ /** | ||
return function (radians, decimal) { | ||
// if decimal is not an integer greater than -1, we cannot do. quit with error "NaN" | ||
// if degrees is not a real number, we cannot do also. quit with error "NaN" | ||
if(isNumber(decimal) && isFinite(decimal) && decimal%1===0 && decimal >= 0 && | ||
isNumber(radians) && isFinite(radians)) { | ||
var degrees = (radians * 180) / $math.PI; | ||
return $math.round(degrees * $math.pow(10,decimal)) / ($math.pow(10,decimal)); | ||
} else { | ||
return "NaN"; | ||
} | ||
} | ||
}]); | ||
// if decimal is not an integer greater than -1, we cannot do. quit with error "NaN" | ||
// if degrees is not a real number, we cannot do also. quit with error "NaN" | ||
if(isNumber(decimal) && isFinite(decimal) && decimal%1===0 && decimal >= 0 && | ||
isNumber(radians) && isFinite(radians)) { | ||
var degrees = (radians * 180) / $math.PI; | ||
return $math.round(degrees * $math.pow(10,decimal)) / ($math.pow(10,decimal)); | ||
} else { | ||
return "NaN"; | ||
} | ||
} | ||
}]); | ||
@@ -16,13 +16,12 @@ /** | ||
isNumber(bytes) && isFinite(bytes)) { | ||
if(bytes < 1024) { // within 1 MB so KB | ||
return convertToDecimal(bytes, decimal, $math) + ' KB'; | ||
return convertToDecimal(bytes, decimal, $math) + ' KB'; | ||
} else if(bytes < 1048576) { // within 1 GB so MB | ||
return convertToDecimal((bytes / 1024), decimal, $math) + ' MB'; | ||
return convertToDecimal((bytes / 1024), decimal, $math) + ' MB'; | ||
} else { | ||
return convertToDecimal((bytes / 1048576), decimal, $math) + ' GB'; | ||
return convertToDecimal((bytes / 1048576), decimal, $math) + ' GB'; | ||
} | ||
} | ||
return "NaN"; | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
}]); |
@@ -13,3 +13,3 @@ /** | ||
var divider = (isString(input)) ? $window.Number(input) : input; | ||
var divider = isString(input) ? $window.Number(input) : input; | ||
divided = divided || 100; | ||
@@ -16,0 +16,0 @@ round = round || false; |
@@ -12,14 +12,14 @@ /** | ||
return function (degrees, decimal) { | ||
// if decimal is not an integer greater than -1, we cannot do. quit with error "NaN" | ||
// if degrees is not a real number, we cannot do also. quit with error "NaN" | ||
if(isNumber(decimal) && isFinite(decimal) && decimal%1===0 && decimal >= 0 && | ||
isNumber(degrees) && isFinite(degrees)) { | ||
var radians = (degrees * 3.14159265359) / 180; | ||
return $math.round(radians * $math.pow(10,decimal)) / ($math.pow(10,decimal)); | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
// if decimal is not an integer greater than -1, we cannot do. quit with error "NaN" | ||
// if degrees is not a real number, we cannot do also. quit with error "NaN" | ||
if(isNumber(decimal) && isFinite(decimal) && decimal%1===0 && decimal >= 0 && | ||
isNumber(degrees) && isFinite(degrees)) { | ||
var radians = (degrees * 3.14159265359) / 180; | ||
return $math.round(radians * $math.pow(10,decimal)) / ($math.pow(10,decimal)); | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
@@ -16,16 +16,15 @@ /** | ||
isNumber(number) && isFinite(number)){ | ||
if(number < 1e3) { | ||
return number; | ||
} else if(number < 1e6) { | ||
return convertToDecimal((number / 1e3), decimal, $math) + ' K'; | ||
} else if(number < 1e9){ | ||
return convertToDecimal((number / 1e6), decimal, $math) + ' M'; | ||
} else { | ||
return convertToDecimal((number / 1e9), decimal, $math) + ' B'; | ||
} | ||
if(number < 1e3) { | ||
return number; | ||
} else if(number < 1e6) { | ||
return convertToDecimal((number / 1e3), decimal, $math) + ' K'; | ||
} else if(number < 1e9){ | ||
return convertToDecimal((number / 1e6), decimal, $math) + ' M'; | ||
} else { | ||
return convertToDecimal((number / 1e9), decimal, $math) + ' B'; | ||
} | ||
} | ||
return "NaN"; | ||
} | ||
}]); | ||
} | ||
return "NaN"; | ||
} | ||
}]); |
@@ -67,3 +67,3 @@ /** | ||
* for angular version that greater than v.1.3.0 | ||
* if clear cache when the digest cycle end. | ||
* it clear cache when the digest cycle is end. | ||
*/ | ||
@@ -70,0 +70,0 @@ function cleanStateless() { |
@@ -44,2 +44,3 @@ /** | ||
'a8m.count-by', | ||
'a8m.chunk-by', | ||
'a8m.search-field', | ||
@@ -58,3 +59,4 @@ 'a8m.fuzzy-by', | ||
'a8m.join', | ||
'a8m.range', | ||
'a8m.math', | ||
@@ -61,0 +63,0 @@ 'a8m.math.max', |
@@ -24,16 +24,15 @@ 'use strict'; | ||
it('should return NaN if radians is not a number', function(){ | ||
expect(filter("0",2)).toEqual("NaN"); | ||
expect(filter([0],2)).toEqual("NaN"); | ||
expect(filter({number:0},0)).toEqual("NaN"); | ||
expect(filter('0',2)).toEqual('NaN'); | ||
expect(filter([0],2)).toEqual('NaN'); | ||
expect(filter({number:0},0)).toEqual('NaN'); | ||
}); | ||
it('should return NaN if decimal point is less than zero or not a number', function(){ | ||
expect(filter(0.45,-1)).toEqual("NaN"); | ||
expect(filter(-0.25,-101)).toEqual("NaN"); | ||
expect(filter(0.45,1.3)).toEqual("NaN"); | ||
expect(filter(0.45,"0")).toEqual("NaN"); | ||
expect(filter(0.45,[3])).toEqual("NaN"); | ||
expect(filter(0.45,{num : 4})).toEqual("NaN"); | ||
expect(filter(0.45,-1)).toEqual('NaN'); | ||
expect(filter(-0.25,-101)).toEqual('NaN'); | ||
expect(filter(0.45,1.3)).toEqual('NaN'); | ||
expect(filter(0.45,'0')).toEqual('NaN'); | ||
expect(filter(0.45,[3])).toEqual('NaN'); | ||
expect(filter(0.45,{num : 4})).toEqual('NaN'); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
355457
141
6559
1390