From 7017766591b6b23570ce29a76ef2ead1abe54c32 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Tue, 15 Apr 2014 23:21:37 -0700 Subject: [PATCH] Rebuild dist. --- dist/lodash.compat.js | 85 ++++++++++++++++--------- dist/lodash.compat.min.js | 114 +++++++++++++++++----------------- dist/lodash.js | 84 +++++++++++++++++-------- dist/lodash.min.js | 108 ++++++++++++++++---------------- dist/lodash.underscore.js | 73 ++++++++++++++++------ dist/lodash.underscore.min.js | 71 ++++++++++----------- 6 files changed, 315 insertions(+), 220 deletions(-) diff --git a/dist/lodash.compat.js b/dist/lodash.compat.js index cb387ed65..cb5967908 100644 --- a/dist/lodash.compat.js +++ b/dist/lodash.compat.js @@ -3670,7 +3670,7 @@ * @param {Array|Object|string} collection The collection to search. * @param {*} target The value to check for. * @param {number} [fromIndex=0] The index to search from. - * @returns {boolean} Returns `true` if the target element is found, else `false`. + * @returns {boolean} Returns `true` if a matching element is found, else `false`. * @example * * _.contains([1, 2, 3], 1); @@ -3886,14 +3886,14 @@ * * @static * @memberOf _ - * @alias detect, findWhere + * @alias detect * @category Collections * @param {Array|Object|string} collection The collection to search. * @param {Function|Object|string} [predicate=identity] The function called * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the found element, else `undefined`. + * @returns {*} Returns the matched element, else `undefined`. * @example * * var characters = [ @@ -3936,7 +3936,7 @@ * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the found element, else `undefined`. + * @returns {*} Returns the matched element, else `undefined`. * @example * * _.findLast([1, 2, 3, 4], function(num) { @@ -3949,6 +3949,34 @@ return baseFind(collection, predicate, baseEachRight); } + /** + * Performs a deep comparison between each element in `collection` and the + * source object, returning the first element that has equivalent property + * values. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|string} collection The collection to search. + * @param {Object} source The object of property values to match. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var characters = [ + * { 'name': 'barney', 'age': 36, 'employer': 'slate' }, + * { 'name': 'fred', 'age': 40, 'employer': 'slate' } + * ]; + * + * _.findWhere(characters, { 'employer': 'slate' }); + * // => { 'name': 'barney', 'age': 36, 'employer': 'slate' } + * + * _.findWhere(characters, { 'age': 40 }); + * // => { 'name': 'fred', 'age': 40, 'employer': 'slate' } + */ + function findWhere(collection, source) { + return find(collection, matches(source)); + } + /** * Iterates over elements of a collection executing the callback for each * element. The callback is bound to `thisArg` and invoked with three arguments; @@ -4383,7 +4411,6 @@ * * @static * @memberOf _ - * @type Function * @category Collections * @param {Array|Object|string} collection The collection to iterate over. * @param {string} key The name of the property to pluck. @@ -4398,7 +4425,9 @@ * _.pluck(characters, 'name'); * // => ['barney', 'fred'] */ - var pluck = map; + function pluck(collection, key) { + return map(collection, property(key)); + } /** * Reduces a collection to a value which is the accumulated result of running @@ -4789,25 +4818,29 @@ * * @static * @memberOf _ - * @type Function * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Object} source The object of property values to filter by. + * @param {Array|Object|string} collection The collection to search. + * @param {Object} source The object of property values to match. * @returns {Array} Returns the new filtered array. * @example * * var characters = [ - * { 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }, - * { 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] } + * { 'name': 'barney', 'age': 36, 'employer': 'slate', 'pets': ['hoppy'] }, + * { 'name': 'fred', 'age': 40, 'employer': 'slate', 'pets': ['baby puss', 'dino'] } * ]; * - * _.where(characters, { 'age': 36 }); - * // => [{ 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }] + * _.pluck(_.where(characters, { 'age': 36 }), 'name'); + * // => ['barney'] * - * _.where(characters, { 'pets': ['dino'] }); - * // => [{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }] + * _.pluck(_.where(characters, { 'pets': ['dino'] }), 'name'); + * // => ['fred'] + * + * _.pluck(_.where(characters, { 'employer': 'slate' }), 'name'); + * // => ['barney', 'fred'] */ - var where = filter; + function where(collection, source) { + return filter(collection, matches(source)); + } /*--------------------------------------------------------------------------*/ @@ -5759,7 +5792,7 @@ * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {string|undefined} Returns the key of the found element, else `undefined`. + * @returns {string|undefined} Returns the key of the matched element, else `undefined`. * @example * * var characters = { @@ -5805,7 +5838,7 @@ * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {string|undefined} Returns the key of the found element, else `undefined`. + * @returns {string|undefined} Returns the key of the matched element, else `undefined`. * @example * * var characters = { @@ -6186,14 +6219,10 @@ if (!value) { return result; } - var className = toString.call(value), - length = value.length; - - if (length > -1 && length <= maxSafeInteger && ( - (className == arrayClass || className == stringClass || - (support.argsClass ? className == argsClass : isArguments(value))) || - (className == objectClass && isFunction(value.splice)) - )) { + var length = value.length; + if (length > -1 && length <= maxSafeInteger && + (isArray(value) || isString(value) || isArguments(value) || + (typeof value == 'object' && isFunction(value.splice)))) { return !length; } baseForOwn(value, function() { @@ -7747,7 +7776,7 @@ func || baseCreateCallback(func, thisArg, argCount); } // handle "_.pluck" and "_.where" style callback shorthands - return type != 'object' ? property(func) : matches(func); + return type == 'object' ? matches(func) : property(func); } /** @@ -8345,6 +8374,7 @@ lodash.findLast = findLast; lodash.findLastIndex = findLastIndex; lodash.findLastKey = findLastKey; + lodash.findWhere = findWhere; lodash.has = has; lodash.identity = identity; lodash.indexOf = indexOf; @@ -8398,7 +8428,6 @@ lodash.all = every; lodash.any = some; lodash.detect = find; - lodash.findWhere = find; lodash.foldl = reduce; lodash.foldr = reduceRight; lodash.include = contains; diff --git a/dist/lodash.compat.min.js b/dist/lodash.compat.min.js index 5369ca1bb..6a1f45386 100644 --- a/dist/lodash.compat.min.js +++ b/dist/lodash.compat.min.js @@ -6,64 +6,64 @@ ;(function(){function n(n,t){return typeof n=="undefined"?t:n}function t(n,t){if(n!==t){if(n>t||typeof n=="undefined")return 1;if(ne||13e||8202r||13r||8202>>0:0,u=Tr(e);++ri(t,l)&&f.push(l);return f}function vt(n,t){var r=-1,e=n,u=n?n.length:0;if(typeof u=="number"&&-1a(s,g)&&((u||f)&&s.push(g),c.push(p))}return c}function It(n,t){for(var r=-1,e=t(n),u=e.length,o=Tr(u);++ri?0:i)}function Bt(n,t,e){var u=n?n.length:0;if(typeof e=="number")e=0>e?de(u+e,0):e||0;else if(e)return e=Mt(n,t),u&&n[e]===t?e:-1;return r(n,t,e)}function qt(n,t,r){var e=n?n.length:0;if(typeof t!="number"&&null!=t){var u=e,i=0;for(t=o.createCallback(t,r,3);u--&&t(n[u],u,n);)i++}else i=null==t||r?1:t;return i=e-(i||0),Kt(n,0,0>i?0:i)}function Ut(n,t,r){var e=n?n.length:0;if(typeof t!="number"&&null!=t){var u=e,i=0;for(t=o.createCallback(t,r,3);u--&&t(n[u],u,n);)i++}else if(i=t,null==i||r)return n?n[e-1]:w; -return i=e-(i||0),Kt(n,0>i?0:i)}function Zt(n,t,r){if(typeof t!="number"&&null!=t){var e=-1,u=n?n.length:0,i=0;for(t=o.createCallback(t,r,3);++et?0:t;return Kt(n,i)}function Kt(n,t,r){var e=-1,u=n?n.length:0;for(t=typeof t=="undefined"?0:+t||0,0>t?t=de(u+t,0):t>u&&(t=u),r=typeof r=="undefined"?u:+r||0,0>r?r=de(u+r,0):r>u&&(r=u),u=t>r?0:r-t,r=Tr(u);++e>>1,r(n[e])r?0:r);++tr?de(e+r,0):r||0:0,typeof n=="string"||!Fe(n)&&wr(n)?r>>0:0,u=Lr(e);++ri(t,l)&&f.push(l);return f}function vt(n,t){var r=-1,e=n,u=n?n.length:0;if(typeof u=="number"&&-1a(s,g)&&((u||f)&&s.push(g),c.push(p))}return c}function It(n,t){for(var r=-1,e=t(n),u=e.length,o=Lr(u);++ri?0:i)}function Bt(n,t,e){var u=n?n.length:0;if(typeof e=="number")e=0>e?be(u+e,0):e||0;else if(e)return e=Mt(n,t),u&&n[e]===t?e:-1;return r(n,t,e)}function qt(n,t,r){var e=n?n.length:0;if(typeof t!="number"&&null!=t){var u=e,i=0;for(t=o.createCallback(t,r,3);u--&&t(n[u],u,n);)i++}else i=null==t||r?1:t;return i=e-(i||0),Kt(n,0,0>i?0:i)}function Ut(n,t,r){var e=n?n.length:0;if(typeof t!="number"&&null!=t){var u=e,i=0;for(t=o.createCallback(t,r,3);u--&&t(n[u],u,n);)i++}else if(i=t,null==i||r)return n?n[e-1]:w; +return i=e-(i||0),Kt(n,0>i?0:i)}function Zt(n,t,r){if(typeof t!="number"&&null!=t){var e=-1,u=n?n.length:0,i=0;for(t=o.createCallback(t,r,3);++et?0:t;return Kt(n,i)}function Kt(n,t,r){var e=-1,u=n?n.length:0;for(t=typeof t=="undefined"?0:+t||0,0>t?t=be(u+t,0):t>u&&(t=u),r=typeof r=="undefined"?u:+r||0,0>r?r=be(u+r,0):r>u&&(r=u),u=t>r?0:r-t,r=Lr(u);++e>>1,r(n[e])r?0:r);++tr?be(e+r,0):r||0:0,typeof n=="string"||!Fe(n)&&xr(n)?ri&&(i=l)}else t=null==t&&wr(n)?u:o.createCallback(t,r,3),vt(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,i=n)});return i}function or(n,t,r,e){var u=3>arguments.length;if(t=o.createCallback(t,e,4),Fe(n)){var i=-1,a=n.length;for(u&&a&&(r=n[++i]);++iarguments.length; -return t=o.createCallback(t,e,4),yt(n,function(n,e,o){r=u?(u=false,n):t(r,n,e,o)}),r}function ar(n){var t=-1,r=n&&n.length,e=Tr(0>r?0:r>>>0);return vt(n,function(n){var r=At(0,++t);e[t]=e[r],e[r]=n}),e}function lr(n,t,r){var e;if(t=o.createCallback(t,r,3),Fe(n)){r=-1;for(var u=n.length;++rarguments.length)return Lt(n,x,null,t);if(n)var r=n[S]?n[S][2]:n.length,e=Kt(arguments,2),r=r-e.length;return Lt(n,x|O,r,t,e) -}function cr(n,t,r){var e,u,o,i,a,l,f,c=0,s=false,p=true;if(!mr(n))throw new Ur;if(t=0>t?0:t,true===r)var g=true,p=false;else dr(r)&&(g=r.leading,s="maxWait"in r&&de(t,+r.maxWait||0),p="trailing"in r?r.trailing:p);var h=function(){var r=t-(Ke()-i);0>=r||r>t?(u&&ne(u),r=f,u=l=f=w,r&&(c=Ke(),o=n.apply(a,e),l||u||(e=a=null))):l=le(h,r)},v=function(){l&&ne(l),u=l=f=w,(p||s!==t)&&(c=Ke(),o=n.apply(a,e),l||u||(e=a=null))};return function(){if(e=arguments,i=Ke(),a=this,f=p&&(l||!g),false===s)var r=g&&!l;else{u||g||(c=i); -var y=s-(i-c),m=0>=y||y>s;m?(u&&(u=ne(u)),c=i,o=n.apply(a,e)):u||(u=le(v,y))}return m&&l?l=ne(l):l||t===s||(l=le(h,t)),r&&(m=true,o=n.apply(a,e)),!m||l||u||(e=a=null),o}}function sr(n){if(!mr(n))throw new Ur;return function(){return!n.apply(this,arguments)}}function pr(n,t,r){var e=arguments;if(!n||2>e.length)return n;var u=0,o=e.length,i=typeof r;if("number"!=i&&"string"!=i||!e[3]||e[3][r]!==t||(o=2),3arguments.length)return t;var r=Kt(arguments);return r.push(n),pr.apply(null,r)}function hr(n){var t=[];return Ct(n,function(n,r){mr(n)&&t.push(r)}),t.sort()}function vr(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Gr.call(n)==Q||false}function yr(n){return n&&typeof n=="object"&&1===n.nodeType&&(Ae.nodeClass?-1>>0,e=-1,u=r-1,o=Tr(r),i=0t||null==n||!ve(t))return r;n=qr(n);do t%2&&(r+=n),t=te(t/2),n+=n;while(t);return r}function Er(n,t,r){var e=typeof n;return"function"==e||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||pt(n,t,r):"object"!=e?Nr(n):Sr(n)}function Ar(n){return n}function Sr(n){var t=Pe(n),r=t.length,e=t[0],u=r&&n[e];return 1!=r||u!==u||dr(u)?function(e){var u=r;if(u&&!e)return false; -for(var o=true;u--&&(o=t[u],o=ue.call(e,o)&&Ot(e[o],n[o],null,true)););return o}:function(n){return n&&ue.call(n,e)?(n=n[e],u===n&&(0!==u||1/u==1/n)):false}}function Ir(n,t,r){var e=true,u=t&&hr(t);t&&(r||u.length)||(null==r&&(r=t),t=n,n=o,u=hr(t)),false===r?e=false:dr(r)&&"chain"in r&&(e=r.chain),r=-1;for(var i=mr(n),a=u?u.length:0;++r--n?t.apply(this,arguments):void 0 -}},o.assign=pr,o.at=function(n,t){var r=arguments,e=-1,u=bt(r,true,false,1),o=u.length,i=typeof t;for("number"!=i&&"string"!=i||!r[2]||r[2][t]!==n||(o=1),Ae.unindexedChars&&wr(n)&&(n=n.split("")),r=Tr(o);++earguments.length?Lt(t,x|C,null,n):Lt(t,x|C|O,null,n,Kt(arguments,2))},o.chain=function(n){return new i(n,true) -},o.compact=function(n){for(var t=-1,r=n?n.length:0,e=0,u=[];++t(p?e(p,l):i(s,l))){for(t=u;--t;){var g=o[t];if(0>(g?e(g,l):i(n[t],l)))continue n}p&&p.push(l),s.push(l)}return s},o.invert=function(n,t){for(var r=-1,e=Pe(n),u=e.length,o={};++ro?0:o>>>0);return vt(n,function(n){var o=u?t:null!=n&&n[t];i[++e]=o?o.apply(n,r):w -}),i},o.keys=Pe,o.keysIn=xr,o.map=er,o.mapValues=function(n,t,r){var e={};return t=o.createCallback(t,r,3),jt(n,function(n,r,u){e[r]=t(n,r,u)}),e},o.matches=Sr,o.max=ur,o.memoize=function(n,t){if(!mr(n)||t&&!mr(t))throw new Ur;var r=function(){var e=r.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return ue.call(e,u)?e[u]:e[u]=n.apply(this,arguments)};return r.cache={},r},o.merge=function(n,t,r){if(!n)return n;var e=arguments,u=e.length,o=typeof r;if("number"!=o&&"string"!=o||!e[3]||e[3][r]!==t||(u=2),3u?0:u>>>0);for(i||(t=o.createCallback(t,r,3)),vt(n,function(n,r,u){if(i)for(r=t.length,u=Tr(r);r--;)u[r]=n[t[r]]; -else u=t(n,r,u);f[++e]={a:u,b:e,c:n}}),u=f.length,f.sort(i?l:a);u--;)f[u]=f[u].c;return f},o.tap=function(n,t,r){return t.call(r,n),n},o.throttle=function(n,t,r){var e=true,u=true;if(!mr(n))throw new Ur;return false===r?e=false:dr(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ct.leading=e,ct.maxWait=+t,ct.trailing=u,cr(n,t,ct)},o.times=function(n,t,r){n=0>n?0:n>>>0,t=pt(t,r,1),r=-1;for(var e=Tr(n);++rr?0:+r||0,e))-t.length,0<=r&&n.indexOf(t,r)==r},o.escape=function(n){return null==n?"":qr(n).replace(F,s)},o.escapeRegExp=kr,o.every=Ht,o.find=nr,o.findIndex=zt,o.findKey=function(n,t,r){return t=o.createCallback(t,r,3),dt(n,t,jt,true)},o.findLast=function(n,t,r){return t=o.createCallback(t,r,3),dt(n,t,yt) -},o.findLastIndex=function(n,t,r){var e=n?n.length:0;for(t=o.createCallback(t,r,3);e--;)if(t(n[e],e,n))return e;return-1},o.findLastKey=function(n,t,r){return t=o.createCallback(t,r,3),dt(n,t,kt,true)},o.has=function(n,t){return n?ue.call(n,t):false},o.identity=Ar,o.indexOf=Bt,o.isArguments=vr,o.isArray=Fe,o.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Gr.call(n)==tt||false},o.isDate=function(n){return n&&typeof n=="object"&&Gr.call(n)==rt||false},o.isElement=yr,o.isEmpty=function(n){var t=true; -if(!n)return t;var r=Gr.call(n),e=n.length;return-1r?de(e+r,0):be(r||0,e-1))+1);e--;)if(n[e]===t)return e;return-1},o.mixin=Ir,o.noConflict=function(){return t._=Xr,this},o.noop=Rr,o.now=Ke,o.pad=function(n,t,r){n=null==n?"":qr(n),t=+t;var e=n.length;return er?0:+r||0,n.length),n.lastIndexOf(t,r)==r},o.template=function(n,t,r){var e=o.templateSettings;r=gr({},r,e),n=qr(null==n?"":n);var u,i,a=gr({},r.imports,e.imports),e=Pe(a),a=jr(a),l=0,f=r.interpolate||K,c="__p+='",f=Br((r.escape||K).source+"|"+f.source+"|"+(f===z?D:K).source+"|"+(r.evaluate||K).source+"|$","g"); -n.replace(f,function(t,r,e,o,a,f){return e||(e=o),c+=n.slice(l,f).replace(J,p),r&&(u=true,c+="'+__e("+r+")+'"),a&&(i=true,c+="';"+a+";\n__p+='"),e&&(c+="'+((__t=("+e+"))==null?'':__t)+'"),l=f+t.length,t}),c+="';",(r=r.variable)||(c="with(obj){"+c+"}"),c=(i?c.replace(N,""):c).replace(T,"$1").replace(L,"$1;"),c="function("+(r||"obj")+"){"+(r?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var s=$r(e,"return "+c).apply(w,a) -}catch(g){throw g.source=c,g}return t?s(t):(s.source=c,s)},o.trim=qe,o.trimLeft=Ue,o.trimRight=Ze,o.truncate=function(n,t){var r=30,e="...";if(t&&dr(t))var u="separator"in t?t.separator:u,r="length"in t?+t.length||0:r,e="omission"in t?qr(t.omission):e;else null!=t&&(r=+t||0);if(n=null==n?"":qr(n),r>=n.length)return n;var o=r-e.length;if(1>o)return e;if(r=n.slice(0,o),null==u)return r+e;if(_r(u)){if(n.slice(o).search(u)){var i,a,l=n.slice(0,o);for(u.global||(u=Br(u.source,(B.exec(u)||"")+"g")),u.lastIndex=0;i=u.exec(l);)a=i.index; -r=r.slice(0,null==a?o:a)}}else n.indexOf(u,o)!=o&&(u=r.lastIndexOf(u),-1n.indexOf(";")?n:n.replace(W,b))},o.uniqueId=function(n){var t=++I;return qr(null==n?"":n)+t},o.all=Ht,o.any=lr,o.detect=nr,o.findWhere=nr,o.foldl=or,o.foldr=ir,o.include=Gt,o.inject=or,Ir(function(){var n={};return jt(o,function(t,r){o.prototype[r]||(n[r]=t)}),n}(),false),o.first=Dt,o.last=Ut,o.sample=function(n,t,r){return n&&typeof n.length!="number"?n=jr(n):Ae.unindexedChars&&wr(n)&&(n=n.split("")),null==t||r?(t=n?n.length:0,0t?0:+t||0,n.length),n) -},o.take=Dt,o.takeRight=Ut,o.takeRightWhile=Ut,o.takeWhile=Dt,o.head=Dt,jt(o,function(n,t){var r="sample"!==t;o.prototype[t]||(o.prototype[t]=function(t,e){var u=this.__chain__,o=n(this.__wrapped__,t,e);return u||null!=t&&(!e||r&&typeof t=="function")?new i(o,u):o})}),o.VERSION=A,o.prototype.chain=function(){return this.__chain__=true,this},o.prototype.toJSON=Yt,o.prototype.toString=function(){return qr(this.__wrapped__)},o.prototype.value=Yt,o.prototype.valueOf=Yt,c(["join","pop","shift"],function(n){var t=Zr[n]; -o.prototype[n]=function(){var n=this.__chain__,r=t.apply(this.__wrapped__,arguments);return n?new i(r,n):r}}),c(["push","reverse","sort","unshift"],function(n){var t=Zr[n];o.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),c(["concat","splice"],function(n){var t=Zr[n];o.prototype[n]=function(){return new i(t.apply(this.__wrapped__,arguments),this.__chain__)}}),Ae.spliceObjects||c(["pop","shift","splice"],function(n){var t=Zr[n],r="splice"==n;o.prototype[n]=function(){var n=this.__chain__,e=this.__wrapped__,u=t.apply(e,arguments); +}),u}function ur(n,t,r){var e=-1/0,i=e,a=typeof t;if("number"!=a&&"string"!=a||!r||r[t]!==n||(t=null),null==t&&Fe(n))for(r=-1,a=n.length;++ri&&(i=l)}else t=null==t&&xr(n)?u:o.createCallback(t,r,3),vt(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,i=n)});return i}function or(n,t){return er(n,Tr(t))}function ir(n,t,r,e){var u=3>arguments.length;if(t=o.createCallback(t,e,4),Fe(n)){var i=-1,a=n.length;for(u&&a&&(r=n[++i]);++iarguments.length;return t=o.createCallback(t,e,4),yt(n,function(n,e,o){r=u?(u=false,n):t(r,n,e,o)}),r}function lr(n){var t=-1,r=n&&n.length,e=Lr(0>r?0:r>>>0);return vt(n,function(n){var r=At(0,++t);e[t]=e[r],e[r]=n}),e}function fr(n,t,r){var e;if(t=o.createCallback(t,r,3),Fe(n)){r=-1;for(var u=n.length;++rarguments.length)return Lt(n,x,null,t);if(n)var r=n[S]?n[S][2]:n.length,e=Kt(arguments,2),r=r-e.length; +return Lt(n,x|O,r,t,e)}function sr(n,t,r){var e,u,o,i,a,l,f,c=0,s=false,p=true;if(!dr(n))throw new Zr;if(t=0>t?0:t,true===r)var g=true,p=false;else br(r)&&(g=r.leading,s="maxWait"in r&&be(t,+r.maxWait||0),p="trailing"in r?r.trailing:p);var h=function(){var r=t-(Ke()-i);0>=r||r>t?(u&&te(u),r=f,u=l=f=w,r&&(c=Ke(),o=n.apply(a,e),l||u||(e=a=null))):l=fe(h,r)},v=function(){l&&te(l),u=l=f=w,(p||s!==t)&&(c=Ke(),o=n.apply(a,e),l||u||(e=a=null))};return function(){if(e=arguments,i=Ke(),a=this,f=p&&(l||!g),false===s)var r=g&&!l; +else{u||g||(c=i);var y=s-(i-c),m=0>=y||y>s;m?(u&&(u=te(u)),c=i,o=n.apply(a,e)):u||(u=fe(v,y))}return m&&l?l=te(l):l||t===s||(l=fe(h,t)),r&&(m=true,o=n.apply(a,e)),!m||l||u||(e=a=null),o}}function pr(n){if(!dr(n))throw new Zr;return function(){return!n.apply(this,arguments)}}function gr(n,t,r){var e=arguments;if(!n||2>e.length)return n;var u=0,o=e.length,i=typeof r;if("number"!=i&&"string"!=i||!e[3]||e[3][r]!==t||(o=2),3arguments.length)return t;var r=Kt(arguments);return r.push(n),gr.apply(null,r)}function vr(n){var t=[];return Ct(n,function(n,r){dr(n)&&t.push(r)}),t.sort()}function yr(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Hr.call(n)==Q||false}function mr(n){return n&&typeof n=="object"&&1===n.nodeType&&(Se.nodeClass?-1>>0,e=-1,u=r-1,o=Lr(r),i=0t||null==n||!ye(t))return r;n=Ur(n);do t%2&&(r+=n),t=re(t/2),n+=n;while(t);return r}function Ar(n,t,r){var e=typeof n;return"function"==e||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||pt(n,t,r):"object"==e?Ir(n):Tr(n)}function Sr(n){return n}function Ir(n){var t=Pe(n),r=t.length,e=t[0],u=r&&n[e];return 1!=r||u!==u||br(u)?function(e){var u=r;if(u&&!e)return false; +for(var o=true;u--&&(o=t[u],o=oe.call(e,o)&&Ot(e[o],n[o],null,true)););return o}:function(n){return n&&oe.call(n,e)?(n=n[e],u===n&&(0!==u||1/u==1/n)):false}}function Rr(n,t,r){var e=true,u=t&&vr(t);t&&(r||u.length)||(null==r&&(r=t),t=n,n=o,u=vr(t)),false===r?e=false:br(r)&&"chain"in r&&(e=r.chain),r=-1;for(var i=dr(n),a=u?u.length:0;++r--n?t.apply(this,arguments):void 0}},o.assign=gr,o.at=function(n,t){var r=arguments,e=-1,u=bt(r,true,false,1),o=u.length,i=typeof t; +for("number"!=i&&"string"!=i||!r[2]||r[2][t]!==n||(o=1),Se.unindexedChars&&xr(n)&&(n=n.split("")),r=Lr(o);++earguments.length?Lt(t,x|C,null,n):Lt(t,x|C|O,null,n,Kt(arguments,2))},o.chain=function(n){return new i(n,true)},o.compact=function(n){for(var t=-1,r=n?n.length:0,e=0,u=[];++t(p?e(p,l):i(s,l))){for(t=u;--t;){var g=o[t]; +if(0>(g?e(g,l):i(n[t],l)))continue n}p&&p.push(l),s.push(l)}return s},o.invert=function(n,t){for(var r=-1,e=Pe(n),u=e.length,o={};++ro?0:o>>>0);return vt(n,function(n){var o=u?t:null!=n&&n[t];i[++e]=o?o.apply(n,r):w}),i},o.keys=Pe,o.keysIn=Cr,o.map=er,o.mapValues=function(n,t,r){var e={};return t=o.createCallback(t,r,3),jt(n,function(n,r,u){e[r]=t(n,r,u) +}),e},o.matches=Ir,o.max=ur,o.memoize=function(n,t){if(!dr(n)||t&&!dr(t))throw new Zr;var r=function(){var e=r.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return oe.call(e,u)?e[u]:e[u]=n.apply(this,arguments)};return r.cache={},r},o.merge=function(n,t,r){if(!n)return n;var e=arguments,u=e.length,o=typeof r;if("number"!=o&&"string"!=o||!e[3]||e[3][r]!==t||(u=2),3u?0:u>>>0);for(i||(t=o.createCallback(t,r,3)),vt(n,function(n,r,u){if(i)for(r=t.length,u=Lr(r);r--;)u[r]=n[t[r]]; +else u=t(n,r,u);f[++e]={a:u,b:e,c:n}}),u=f.length,f.sort(i?l:a);u--;)f[u]=f[u].c;return f},o.tap=function(n,t,r){return t.call(r,n),n},o.throttle=function(n,t,r){var e=true,u=true;if(!dr(n))throw new Zr;return false===r?e=false:br(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ct.leading=e,ct.maxWait=+t,ct.trailing=u,sr(n,t,ct)},o.times=function(n,t,r){n=0>n?0:n>>>0,t=pt(t,r,1),r=-1;for(var e=Lr(n);++rr?0:+r||0,e))-t.length,0<=r&&n.indexOf(t,r)==r},o.escape=function(n){return null==n?"":Ur(n).replace(F,s)},o.escapeRegExp=Or,o.every=Ht,o.find=nr,o.findIndex=zt,o.findKey=function(n,t,r){return t=o.createCallback(t,r,3),dt(n,t,jt,true)},o.findLast=function(n,t,r){return t=o.createCallback(t,r,3),dt(n,t,yt) +},o.findLastIndex=function(n,t,r){var e=n?n.length:0;for(t=o.createCallback(t,r,3);e--;)if(t(n[e],e,n))return e;return-1},o.findLastKey=function(n,t,r){return t=o.createCallback(t,r,3),dt(n,t,kt,true)},o.findWhere=function(n,t){return nr(n,Ir(t))},o.has=function(n,t){return n?oe.call(n,t):false},o.identity=Sr,o.indexOf=Bt,o.isArguments=yr,o.isArray=Fe,o.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Hr.call(n)==tt||false},o.isDate=function(n){return n&&typeof n=="object"&&Hr.call(n)==rt||false +},o.isElement=mr,o.isEmpty=function(n){var t=true;if(!n)return t;var r=n.length;return-1r?be(e+r,0):_e(r||0,e-1))+1);e--;)if(n[e]===t)return e;return-1},o.mixin=Rr,o.noConflict=function(){return t._=Yr,this},o.noop=Nr,o.now=Ke,o.pad=function(n,t,r){n=null==n?"":Ur(n),t=+t;var e=n.length;return er?0:+r||0,n.length),n.lastIndexOf(t,r)==r},o.template=function(n,t,r){var e=o.templateSettings;r=hr({},r,e),n=Ur(null==n?"":n);var u,i,a=hr({},r.imports,e.imports),e=Pe(a),a=kr(a),l=0,f=r.interpolate||K,c="__p+='",f=qr((r.escape||K).source+"|"+f.source+"|"+(f===z?D:K).source+"|"+(r.evaluate||K).source+"|$","g"); +n.replace(f,function(t,r,e,o,a,f){return e||(e=o),c+=n.slice(l,f).replace(J,p),r&&(u=true,c+="'+__e("+r+")+'"),a&&(i=true,c+="';"+a+";\n__p+='"),e&&(c+="'+((__t=("+e+"))==null?'':__t)+'"),l=f+t.length,t}),c+="';",(r=r.variable)||(c="with(obj){"+c+"}"),c=(i?c.replace(N,""):c).replace(T,"$1").replace(L,"$1;"),c="function("+(r||"obj")+"){"+(r?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var s=Pr(e,"return "+c).apply(w,a) +}catch(g){throw g.source=c,g}return t?s(t):(s.source=c,s)},o.trim=qe,o.trimLeft=Ue,o.trimRight=Ze,o.truncate=function(n,t){var r=30,e="...";if(t&&br(t))var u="separator"in t?t.separator:u,r="length"in t?+t.length||0:r,e="omission"in t?Ur(t.omission):e;else null!=t&&(r=+t||0);if(n=null==n?"":Ur(n),r>=n.length)return n;var o=r-e.length;if(1>o)return e;if(r=n.slice(0,o),null==u)return r+e;if(wr(u)){if(n.slice(o).search(u)){var i,a,l=n.slice(0,o);for(u.global||(u=qr(u.source,(B.exec(u)||"")+"g")),u.lastIndex=0;i=u.exec(l);)a=i.index; +r=r.slice(0,null==a?o:a)}}else n.indexOf(u,o)!=o&&(u=r.lastIndexOf(u),-1n.indexOf(";")?n:n.replace(W,b))},o.uniqueId=function(n){var t=++I;return Ur(null==n?"":n)+t},o.all=Ht,o.any=fr,o.detect=nr,o.foldl=ir,o.foldr=ar,o.include=Gt,o.inject=ir,Rr(function(){var n={};return jt(o,function(t,r){o.prototype[r]||(n[r]=t)}),n}(),false),o.first=Dt,o.last=Ut,o.sample=function(n,t,r){return n&&typeof n.length!="number"?n=kr(n):Se.unindexedChars&&xr(n)&&(n=n.split("")),null==t||r?(t=n?n.length:0,0t?0:+t||0,n.length),n) +},o.take=Dt,o.takeRight=Ut,o.takeRightWhile=Ut,o.takeWhile=Dt,o.head=Dt,jt(o,function(n,t){var r="sample"!==t;o.prototype[t]||(o.prototype[t]=function(t,e){var u=this.__chain__,o=n(this.__wrapped__,t,e);return u||null!=t&&(!e||r&&typeof t=="function")?new i(o,u):o})}),o.VERSION=A,o.prototype.chain=function(){return this.__chain__=true,this},o.prototype.toJSON=Yt,o.prototype.toString=function(){return Ur(this.__wrapped__)},o.prototype.value=Yt,o.prototype.valueOf=Yt,c(["join","pop","shift"],function(n){var t=Kr[n]; +o.prototype[n]=function(){var n=this.__chain__,r=t.apply(this.__wrapped__,arguments);return n?new i(r,n):r}}),c(["push","reverse","sort","unshift"],function(n){var t=Kr[n];o.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),c(["concat","splice"],function(n){var t=Kr[n];o.prototype[n]=function(){return new i(t.apply(this.__wrapped__,arguments),this.__chain__)}}),Se.spliceObjects||c(["pop","shift","splice"],function(n){var t=Kr[n],r="splice"==n;o.prototype[n]=function(){var n=this.__chain__,e=this.__wrapped__,u=t.apply(e,arguments); return 0===e.length&&delete e[0],n||r?new i(u,n):u}}),o}var w,x=1,C=2,j=4,k=8,O=16,E=32,A="2.4.1",S="__lodash@"+A+"__",I=0,R=/^[A-Z]+$/,N=/\b__p\+='';/g,T=/\b(__p\+=)''\+/g,L=/(__e\(.*?\)|\b__t\))\+'';/g,W=/&(?:amp|lt|gt|quot|#39);/g,F=/[&<>"']/g,$=/<%-([\s\S]+?)%>/g,P=/<%([\s\S]+?)%>/g,z=/<%=([\s\S]+?)%>/g,D=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,B=/\w*$/,q=/^\s*function[ \n\r\t]+\w/,U=/^0[xX]/,Z=/[\xC0-\xFF]/g,K=/($^)/,M=/[.*+?^${}()|[\]\\]/g,V=/\bthis\b/,J=/['\n\r\u2028\u2029\\]/g,X=/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[a-z]+|[0-9]+/g,Y=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",G="Array Boolean Date Error Function Math Number Object RegExp Set String _ clearTimeout document isFinite isNaN parseInt setTimeout TypeError window WinRTError".split(" "),H="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Q="[object Arguments]",nt="[object Array]",tt="[object Boolean]",rt="[object Date]",et="[object Error]",ut="[object Function]",ot="[object Number]",it="[object Object]",at="[object RegExp]",lt="[object String]",ft={}; ft[ut]=false,ft[Q]=ft[nt]=ft[tt]=ft[rt]=ft[ot]=ft[it]=ft[at]=ft[lt]=true;var ct={leading:false,maxWait:0,trailing:false},st={configurable:false,enumerable:false,value:null,writable:false},pt={"&":"&","<":"<",">":">",'"':""","'":"'"},gt={"&":"&","<":"<",">":">",""":'"',"'":"'"},ht={\u00c0:"A",\u00c1:"A",\u00c2:"A",\u00c3:"A",\u00c4:"A",\u00c5:"A",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u00e3:"a",\u00e4:"a",\u00e5:"a",\u00c7:"C",\u00e7:"c",\u00d0:"D",\u00f0:"d",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u00cb:"E",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u00eb:"e",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u00cf:"I",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u00ef:"i",\u00d1:"N",\u00f1:"n",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u00d5:"O",\u00d6:"O",\u00d8:"O",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u00f5:"o",\u00f6:"o",\u00f8:"o",\u00d9:"U",\u00da:"U",\u00db:"U",\u00dc:"U",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u00fc:"u",\u00dd:"Y",\u00fd:"y",\u00ff:"y",\u00c6:"AE",\u00e6:"ae",\u00de:"Th",\u00fe:"th",\u00df:"ss","\xd7":" ","\xf7":" "},vt={"function":true,object:true},yt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},mt=vt[typeof window]&&window||this,dt=vt[typeof exports]&&exports&&!exports.nodeType&&exports,vt=vt[typeof module]&&module&&!module.nodeType&&module,bt=dt&&vt&&typeof global=="object"&&global; !bt||bt.global!==bt&&bt.window!==bt&&bt.self!==bt||(mt=bt);var bt=vt&&vt.exports===dt&&dt,_t=_();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(mt._=_t, define(function(){return _t})):dt&&vt?bt?(vt.exports=_t)._=_t:dt._=_t:mt._=_t}).call(this); \ No newline at end of file diff --git a/dist/lodash.js b/dist/lodash.js index c7a6a0697..0dfe610fa 100644 --- a/dist/lodash.js +++ b/dist/lodash.js @@ -3485,7 +3485,7 @@ * @param {Array|Object|string} collection The collection to search. * @param {*} target The value to check for. * @param {number} [fromIndex=0] The index to search from. - * @returns {boolean} Returns `true` if the target element is found, else `false`. + * @returns {boolean} Returns `true` if a matching element is found, else `false`. * @example * * _.contains([1, 2, 3], 1); @@ -3701,14 +3701,14 @@ * * @static * @memberOf _ - * @alias detect, findWhere + * @alias detect * @category Collections * @param {Array|Object|string} collection The collection to search. * @param {Function|Object|string} [predicate=identity] The function called * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the found element, else `undefined`. + * @returns {*} Returns the matched element, else `undefined`. * @example * * var characters = [ @@ -3753,7 +3753,7 @@ * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the found element, else `undefined`. + * @returns {*} Returns the matched element, else `undefined`. * @example * * _.findLast([1, 2, 3, 4], function(num) { @@ -3766,6 +3766,34 @@ return baseFind(collection, predicate, baseEachRight); } + /** + * Performs a deep comparison between each element in `collection` and the + * source object, returning the first element that has equivalent property + * values. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|string} collection The collection to search. + * @param {Object} source The object of property values to match. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var characters = [ + * { 'name': 'barney', 'age': 36, 'employer': 'slate' }, + * { 'name': 'fred', 'age': 40, 'employer': 'slate' } + * ]; + * + * _.findWhere(characters, { 'employer': 'slate' }); + * // => { 'name': 'barney', 'age': 36, 'employer': 'slate' } + * + * _.findWhere(characters, { 'age': 40 }); + * // => { 'name': 'fred', 'age': 40, 'employer': 'slate' } + */ + function findWhere(collection, source) { + return find(collection, matches(source)); + } + /** * Iterates over elements of a collection executing the callback for each * element. The callback is bound to `thisArg` and invoked with three arguments; @@ -4207,7 +4235,6 @@ * * @static * @memberOf _ - * @type Function * @category Collections * @param {Array|Object|string} collection The collection to iterate over. * @param {string} key The name of the property to pluck. @@ -4222,7 +4249,9 @@ * _.pluck(characters, 'name'); * // => ['barney', 'fred'] */ - var pluck = map; + function pluck(collection, key) { + return map(collection, property(key)); + } /** * Reduces a collection to a value which is the accumulated result of running @@ -4609,25 +4638,29 @@ * * @static * @memberOf _ - * @type Function * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Object} source The object of property values to filter by. + * @param {Array|Object|string} collection The collection to search. + * @param {Object} source The object of property values to match. * @returns {Array} Returns the new filtered array. * @example * * var characters = [ - * { 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }, - * { 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] } + * { 'name': 'barney', 'age': 36, 'employer': 'slate', 'pets': ['hoppy'] }, + * { 'name': 'fred', 'age': 40, 'employer': 'slate', 'pets': ['baby puss', 'dino'] } * ]; * - * _.where(characters, { 'age': 36 }); - * // => [{ 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }] + * _.pluck(_.where(characters, { 'age': 36 }), 'name'); + * // => ['barney'] * - * _.where(characters, { 'pets': ['dino'] }); - * // => [{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }] + * _.pluck(_.where(characters, { 'pets': ['dino'] }), 'name'); + * // => ['fred'] + * + * _.pluck(_.where(characters, { 'employer': 'slate' }), 'name'); + * // => ['barney', 'fred'] */ - var where = filter; + function where(collection, source) { + return filter(collection, matches(source)); + } /*--------------------------------------------------------------------------*/ @@ -5579,7 +5612,7 @@ * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {string|undefined} Returns the key of the found element, else `undefined`. + * @returns {string|undefined} Returns the key of the matched element, else `undefined`. * @example * * var characters = { @@ -5625,7 +5658,7 @@ * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {string|undefined} Returns the key of the found element, else `undefined`. + * @returns {string|undefined} Returns the key of the matched element, else `undefined`. * @example * * var characters = { @@ -5999,13 +6032,10 @@ if (!value) { return result; } - var className = toString.call(value), - length = value.length; - - if (length > -1 && length <= maxSafeInteger && ( - (className == arrayClass || className == stringClass || className == argsClass) || - (className == objectClass && isFunction(value.splice)) - )) { + var length = value.length; + if (length > -1 && length <= maxSafeInteger && + (isArray(value) || isString(value) || isArguments(value) || + (typeof value == 'object' && isFunction(value.splice)))) { return !length; } baseForOwn(value, function() { @@ -7526,7 +7556,7 @@ func || baseCreateCallback(func, thisArg, argCount); } // handle "_.pluck" and "_.where" style callback shorthands - return type != 'object' ? property(func) : matches(func); + return type == 'object' ? matches(func) : property(func); } /** @@ -8124,6 +8154,7 @@ lodash.findLast = findLast; lodash.findLastIndex = findLastIndex; lodash.findLastKey = findLastKey; + lodash.findWhere = findWhere; lodash.has = has; lodash.identity = identity; lodash.indexOf = indexOf; @@ -8177,7 +8208,6 @@ lodash.all = every; lodash.any = some; lodash.detect = find; - lodash.findWhere = find; lodash.foldl = reduce; lodash.foldr = reduceRight; lodash.include = contains; diff --git a/dist/lodash.min.js b/dist/lodash.min.js index 357083a2d..02124fdd0 100644 --- a/dist/lodash.min.js +++ b/dist/lodash.min.js @@ -6,60 +6,60 @@ ;(function(){function n(n,t){return typeof n=="undefined"?t:n}function t(n,t){if(n!==t){if(n>t||typeof n=="undefined")return 1;if(nr||13r||8202e||13e||8202>>0:0,u=Re(r);++ei(t,l)&&f.push(l);return f}function st(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number"&&-1a(p,h)&&((u||f)&&p.push(h),c.push(s))}return c}function At(n,t){for(var e=-1,r=t(n),u=r.length,o=Re(u);++ei?0:i)}function zt(n,t,r){var u=n?n.length:0;if(typeof r=="number")r=0>r?hr(u+r,0):r||0;else if(r)return r=Zt(n,t),u&&n[r]===t?r:-1;return e(n,t,r) +}return t}function d(n){return ct[n]}function b(t){function o(n){return n&&typeof n=="object"&&!Rr(n)&&nr.call(n,"__wrapped__")?n:new i(n)}function i(n,t){this.__chain__=!!t,this.__wrapped__=n}function c(n,t){for(var e=-1,r=n?n.length:0;++e>>0:0,u=Ne(r);++ei(t,l)&&f.push(l);return f}function st(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number"&&-1a(p,h)&&((u||f)&&p.push(h),c.push(s))}return c}function At(n,t){for(var e=-1,r=t(n),u=r.length,o=Ne(u);++ei?0:i)}function zt(n,t,r){var u=n?n.length:0;if(typeof r=="number")r=0>r?gr(u+r,0):r||0;else if(r)return r=Zt(n,t),u&&n[r]===t?r:-1;return e(n,t,r) }function Dt(n,t,e){var r=n?n.length:0;if(typeof t!="number"&&null!=t){var u=r,i=0;for(t=o.createCallback(t,e,3);u--&&t(n[u],u,n);)i++}else i=null==t||e?1:t;return i=r-(i||0),Ut(n,0,0>i?0:i)}function Bt(n,t,e){var r=n?n.length:0;if(typeof t!="number"&&null!=t){var u=r,i=0;for(t=o.createCallback(t,e,3);u--&&t(n[u],u,n);)i++}else if(i=t,null==i||e)return n?n[r-1]:_;return i=r-(i||0),Ut(n,0>i?0:i)}function qt(n,t,e){if(typeof t!="number"&&null!=t){var r=-1,u=n?n.length:0,i=0;for(t=o.createCallback(t,e,3);++rt?0:t;return Ut(n,i)}function Ut(n,t,e){var r=-1,u=n?n.length:0;for(t=typeof t=="undefined"?0:+t||0,0>t?t=hr(u+t,0):t>u&&(t=u),e=typeof e=="undefined"?u:+e||0,0>e?e=hr(u+e,0):e>u&&(e=u),u=t>e?0:e-t,e=Re(u);++r>>1,e(n[r])e?0:e);++te?hr(r+e,0):e||0:0,typeof n=="string"||!Rr(n)&&de(n)?ei&&(i=l)}else t=null==t&&de(n)?u:o.createCallback(t,e,3),st(n,function(n,e,u){e=t(n,e,u),e>r&&(r=e,i=n)});return i}function ee(n,t,e,r){var u=3>arguments.length;t=o.createCallback(t,r,4);var i=-1,a=n?n.length:0;if(typeof a=="number"&&-1arguments.length; -return t=o.createCallback(t,r,4),ht(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)}),e}function ue(n){var t=-1,e=n&&n.length,r=Re(0>e?0:e>>>0);return st(n,function(n){var e=Ct(0,++t);r[t]=r[e],r[e]=n}),r}function oe(n,t,e){var r;t=o.createCallback(t,e,3),e=-1;var u=n?n.length:0;if(typeof u=="number"&&-1arguments.length)return Nt(n,w,null,t);if(n)var e=n[E]?n[E][2]:n.length,r=Ut(arguments,2),e=e-r.length; -return Nt(n,w|C,e,t,r)}function ae(n,t,e){var r,u,o,i,a,l,f,c=0,p=false,s=true;if(!ge(n))throw new De;if(t=0>t?0:t,true===e)var h=true,s=false;else ve(e)&&(h=e.leading,p="maxWait"in e&&hr(t,+e.maxWait||0),s="trailing"in e?e.trailing:s);var g=function(){var e=t-(Dr()-i);0>=e||e>t?(u&&Xe(u),e=f,u=l=f=_,e&&(c=Dr(),o=n.apply(a,r),l||u||(r=a=null))):l=rr(g,e)},v=function(){l&&Xe(l),u=l=f=_,(s||p!==t)&&(c=Dr(),o=n.apply(a,r),l||u||(r=a=null))};return function(){if(r=arguments,i=Dr(),a=this,f=s&&(l||!h),false===p)var e=h&&!l; -else{u||h||(c=i);var y=p-(i-c),m=0>=y||y>p;m?(u&&(u=Xe(u)),c=i,o=n.apply(a,r)):u||(u=rr(v,y))}return m&&l?l=Xe(l):l||t===p||(l=rr(g,t)),e&&(m=true,o=n.apply(a,r)),!m||l||u||(r=a=null),o}}function le(n){if(!ge(n))throw new De;return function(){return!n.apply(this,arguments)}}function fe(n,t,e){var r=arguments;if(!n||2>r.length)return n;var u=0,o=r.length,i=typeof e;if("number"!=i&&"string"!=i||!r[3]||r[3][e]!==t||(o=2),3arguments.length)return t;var e=Ut(arguments);return e.push(n),fe.apply(null,e)}function pe(n){var t=[];return _t(n,function(n,e){ge(n)&&t.push(e)}),t.sort()}function se(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Me.call(n)==G||false}function he(n){return n&&typeof n=="object"&&1===n.nodeType&&-1>>0,r=-1,u=e-1,o=Re(e),i=0t||null==n||!cr(t))return e;n=ze(n);do t%2&&(e+=n),t=Ye(t/2),n+=n;while(t);return e}function je(n,t,e){var r=typeof n;return"function"==r||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||ft(n,t,e):"object"!=r?Ie(n):Oe(n) -}function Ce(n){return n}function Oe(n){var t=Sr(n),e=t.length,r=t[0],u=e&&n[r];return 1!=e||u!==u||ve(u)?function(r){var u=e;if(u&&!r)return false;for(var o=true;u--&&(o=t[u],o=Qe.call(r,o)&&kt(r[o],n[o],null,true)););return o}:function(n){return n&&Qe.call(n,r)?(n=n[r],u===n&&(0!==u||1/u==1/n)):false}}function Ae(n,t,e){var r=true,u=t&&pe(t);t&&(e||u.length)||(null==e&&(e=t),t=n,n=o,u=pe(t)),false===e?r=false:ve(e)&&"chain"in e&&(r=e.chain),e=-1;for(var i=ge(n),a=u?u.length:0;++e--n?t.apply(this,arguments):void 0}},o.assign=fe,o.at=function(n,t){var e=arguments,r=-1,u=yt(e,true,false,1),o=u.length,i=typeof t;for("number"!=i&&"string"!=i||!e[2]||e[2][t]!==n||(o=1),e=Re(o);++rarguments.length?Nt(t,w|x,null,n):Nt(t,w|x|C,null,n,Ut(arguments,2))},o.chain=function(n){return new i(n,true)},o.compact=function(n){for(var t=-1,e=n?n.length:0,r=0,u=[];++t(s?r(s,l):i(p,l))){for(t=u;--t;){var h=o[t];if(0>(h?r(h,l):i(n[t],l)))continue n}s&&s.push(l),p.push(l)}return p},o.invert=function(n,t){for(var e=-1,r=Sr(n),u=r.length,o={};++eo?0:o>>>0); -return st(n,function(n){var o=u?t:null!=n&&n[t];i[++r]=o?o.apply(n,e):_}),i},o.keys=Sr,o.keysIn=be,o.map=ne,o.mapValues=function(n,t,e){var r={};return t=o.createCallback(t,e,3),wt(n,function(n,e,u){r[e]=t(n,e,u)}),r},o.matches=Oe,o.max=te,o.memoize=function(n,t){if(!ge(n)||t&&!ge(t))throw new De;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return Qe.call(r,u)?r[u]:r[u]=n.apply(this,arguments)};return e.cache={},e},o.merge=function(n,t,e){if(!n)return n;var r=arguments,u=r.length,o=typeof e; -if("number"!=o&&"string"!=o||!r[3]||r[3][e]!==t||(u=2),3u?0:u>>>0);for(i||(t=o.createCallback(t,e,3)),st(n,function(n,e,u){if(i)for(e=t.length,u=Re(e);e--;)u[e]=n[t[e]];else u=t(n,e,u);f[++r]={a:u,b:r,c:n}}),u=f.length,f.sort(i?l:a);u--;)f[u]=f[u].c;return f},o.tap=function(n,t,e){return t.call(e,n),n},o.throttle=function(n,t,e){var r=true,u=true;if(!ge(n))throw new De; -return false===e?r=false:ve(e)&&(r="leading"in e?!!e.leading:r,u="trailing"in e?!!e.trailing:u),at.leading=r,at.maxWait=+t,at.trailing=u,ae(n,t,at)},o.times=function(n,t,e){n=0>n?0:n>>>0,t=ft(t,e,1),e=-1;for(var r=Re(n);++ee?0:+e||0,r))-t.length,0<=e&&n.indexOf(t,e)==e},o.escape=function(n){return null==n?"":ze(n).replace(F,p)},o.escapeRegExp=xe,o.every=Xt,o.find=Gt,o.findIndex=$t,o.findKey=function(n,t,e){return t=o.createCallback(t,e,3),vt(n,t,wt,true) -},o.findLast=function(n,t,e){return t=o.createCallback(t,e,3),vt(n,t,ht)},o.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=o.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;return-1},o.findLastKey=function(n,t,e){return t=o.createCallback(t,e,3),vt(n,t,xt,true)},o.has=function(n,t){return n?Qe.call(n,t):false},o.identity=Ce,o.indexOf=zt,o.isArguments=se,o.isArray=Rr,o.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Me.call(n)==Q||false},o.isDate=function(n){return n&&typeof n=="object"&&Me.call(n)==nt||false -},o.isElement=he,o.isEmpty=function(n){var t=true;if(!n)return t;var e=Me.call(n),r=n.length;return-1e?hr(r+e,0):gr(e||0,r-1))+1);r--;)if(n[r]===t)return r;return-1},o.mixin=Ae,o.noConflict=function(){return t._=Pe,this},o.noop=Ee,o.now=Dr,o.pad=function(n,t,e){n=null==n?"":ze(n),t=+t;var r=n.length;return re?0:+e||0,n.length),n.lastIndexOf(t,e)==e},o.template=function(n,t,e){var r=o.templateSettings;e=ce({},e,r),n=ze(null==n?"":n);var u,i,a=ce({},e.imports,r.imports),r=Sr(a),a=we(a),l=0,f=e.interpolate||P,c="__p+='",f=Le((e.escape||P).source+"|"+f.source+"|"+(f===z?D:P).source+"|"+(e.evaluate||P).source+"|$","g"); -n.replace(f,function(t,e,r,o,a,f){return r||(r=o),c+=n.slice(l,f).replace(V,s),e&&(u=true,c+="'+__e("+e+")+'"),a&&(i=true,c+="';"+a+";\n__p+='"),r&&(c+="'+((__t=("+r+"))==null?'':__t)+'"),l=f+t.length,t}),c+="';",(e=e.variable)||(c="with(obj){"+c+"}"),c=(i?c.replace(N,""):c).replace(S,"$1").replace(T,"$1;"),c="function("+(e||"obj")+"){"+(e?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var p=Te(r,"return "+c).apply(_,a) -}catch(h){throw h.source=c,h}return t?p(t):(p.source=c,p)},o.trim=$r,o.trimLeft=Lr,o.trimRight=zr,o.truncate=function(n,t){var e=30,r="...";if(t&&ve(t))var u="separator"in t?t.separator:u,e="length"in t?+t.length||0:e,r="omission"in t?ze(t.omission):r;else null!=t&&(e=+t||0);if(n=null==n?"":ze(n),e>=n.length)return n;var o=e-r.length;if(1>o)return r;if(e=n.slice(0,o),null==u)return e+r;if(me(u)){if(n.slice(o).search(u)){var i,a,l=n.slice(0,o);for(u.global||(u=Le(u.source,(B.exec(u)||"")+"g")),u.lastIndex=0;i=u.exec(l);)a=i.index; -e=e.slice(0,null==a?o:a)}}else n.indexOf(u,o)!=o&&(u=e.lastIndexOf(u),-1n.indexOf(";")?n:n.replace(W,d))},o.uniqueId=function(n){var t=++I;return ze(null==n?"":n)+t},o.all=Xt,o.any=oe,o.detect=Gt,o.findWhere=Gt,o.foldl=ee,o.foldr=re,o.include=Jt,o.inject=ee,Ae(function(){var n={};return wt(o,function(t,e){o.prototype[e]||(n[e]=t)}),n}(),false),o.first=Lt,o.last=Bt,o.sample=function(n,t,e){return n&&typeof n.length!="number"&&(n=we(n)),null==t||e?(t=n?n.length:0,0t?0:+t||0,n.length),n) -},o.take=Lt,o.takeRight=Bt,o.takeRightWhile=Bt,o.takeWhile=Lt,o.head=Lt,wt(o,function(n,t){var e="sample"!==t;o.prototype[t]||(o.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t=="function")?new i(o,u):o})}),o.VERSION=A,o.prototype.chain=function(){return this.__chain__=true,this},o.prototype.toJSON=Vt,o.prototype.toString=function(){return ze(this.__wrapped__)},o.prototype.value=Vt,o.prototype.valueOf=Vt,c(["join","pop","shift"],function(n){var t=Be[n]; -o.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments);return n?new i(e,n):e}}),c(["push","reverse","sort","unshift"],function(n){var t=Be[n];o.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),c(["concat","splice"],function(n){var t=Be[n];o.prototype[n]=function(){return new i(t.apply(this.__wrapped__,arguments),this.__chain__)}}),o}var _,w=1,x=2,k=4,j=8,C=16,O=32,A="2.4.1",E="__lodash@"+A+"__",I=0,R=/^[A-Z]+$/,N=/\b__p\+='';/g,S=/\b(__p\+=)''\+/g,T=/(__e\(.*?\)|\b__t\))\+'';/g,W=/&(?:amp|lt|gt|quot|#39);/g,F=/[&<>"']/g,$=/<%-([\s\S]+?)%>/g,L=/<%([\s\S]+?)%>/g,z=/<%=([\s\S]+?)%>/g,D=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,B=/\w*$/,q=/^\s*function[ \n\r\t]+\w/,U=/^0[xX]/,Z=/[\xC0-\xFF]/g,P=/($^)/,K=/[.*+?^${}()|[\]\\]/g,M=/\bthis\b/,V=/['\n\r\u2028\u2029\\]/g,J=/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[a-z]+|[0-9]+/g,X=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",Y="Array Boolean Date Function Math Number Object RegExp Set String _ clearTimeout document isFinite isNaN parseInt setTimeout TypeError window WinRTError".split(" "),G="[object Arguments]",H="[object Array]",Q="[object Boolean]",nt="[object Date]",tt="[object Function]",et="[object Number]",rt="[object Object]",ut="[object RegExp]",ot="[object String]",it={}; +}else i=null==t||e?1:0>t?0:t;return Ut(n,i)}function Ut(n,t,e){var r=-1,u=n?n.length:0;for(t=typeof t=="undefined"?0:+t||0,0>t?t=gr(u+t,0):t>u&&(t=u),e=typeof e=="undefined"?u:+e||0,0>e?e=gr(u+e,0):e>u&&(e=u),u=t>e?0:e-t,e=Ne(u);++r>>1,e(n[r])e?0:e);++te?gr(r+e,0):e||0:0,typeof n=="string"||!Rr(n)&&be(n)?ei&&(i=l)}else t=null==t&&be(n)?u:o.createCallback(t,e,3),st(n,function(n,e,u){e=t(n,e,u),e>r&&(r=e,i=n)});return i}function ee(n,t){return ne(n,Re(t))}function re(n,t,e,r){var u=3>arguments.length;t=o.createCallback(t,r,4);var i=-1,a=n?n.length:0;if(typeof a=="number"&&-1arguments.length; +return t=o.createCallback(t,r,4),ht(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)}),e}function oe(n){var t=-1,e=n&&n.length,r=Ne(0>e?0:e>>>0);return st(n,function(n){var e=Ct(0,++t);r[t]=r[e],r[e]=n}),r}function ie(n,t,e){var r;t=o.createCallback(t,e,3),e=-1;var u=n?n.length:0;if(typeof u=="number"&&-1arguments.length)return Nt(n,w,null,t);if(n)var e=n[E]?n[E][2]:n.length,r=Ut(arguments,2),e=e-r.length; +return Nt(n,w|C,e,t,r)}function le(n,t,e){var r,u,o,i,a,l,f,c=0,p=false,s=true;if(!ve(n))throw new Be;if(t=0>t?0:t,true===e)var h=true,s=false;else ye(e)&&(h=e.leading,p="maxWait"in e&&gr(t,+e.maxWait||0),s="trailing"in e?e.trailing:s);var g=function(){var e=t-(Dr()-i);0>=e||e>t?(u&&Ye(u),e=f,u=l=f=_,e&&(c=Dr(),o=n.apply(a,r),l||u||(r=a=null))):l=ur(g,e)},v=function(){l&&Ye(l),u=l=f=_,(s||p!==t)&&(c=Dr(),o=n.apply(a,r),l||u||(r=a=null))};return function(){if(r=arguments,i=Dr(),a=this,f=s&&(l||!h),false===p)var e=h&&!l; +else{u||h||(c=i);var y=p-(i-c),m=0>=y||y>p;m?(u&&(u=Ye(u)),c=i,o=n.apply(a,r)):u||(u=ur(v,y))}return m&&l?l=Ye(l):l||t===p||(l=ur(g,t)),e&&(m=true,o=n.apply(a,r)),!m||l||u||(r=a=null),o}}function fe(n){if(!ve(n))throw new Be;return function(){return!n.apply(this,arguments)}}function ce(n,t,e){var r=arguments;if(!n||2>r.length)return n;var u=0,o=r.length,i=typeof e;if("number"!=i&&"string"!=i||!r[3]||r[3][e]!==t||(o=2),3arguments.length)return t;var e=Ut(arguments);return e.push(n),ce.apply(null,e)}function se(n){var t=[];return _t(n,function(n,e){ve(n)&&t.push(e)}),t.sort()}function he(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Ve.call(n)==G||false}function ge(n){return n&&typeof n=="object"&&1===n.nodeType&&-1>>0,r=-1,u=e-1,o=Ne(e),i=0t||null==n||!pr(t))return e;n=De(n);do t%2&&(e+=n),t=Ge(t/2),n+=n;while(t);return e}function Ce(n,t,e){var r=typeof n;return"function"==r||null==n?(typeof t=="undefined"||!("prototype"in n))&&n||ft(n,t,e):"object"==r?Ae(n):Re(n) +}function Oe(n){return n}function Ae(n){var t=Sr(n),e=t.length,r=t[0],u=e&&n[r];return 1!=e||u!==u||ye(u)?function(r){var u=e;if(u&&!r)return false;for(var o=true;u--&&(o=t[u],o=nr.call(r,o)&&jt(r[o],n[o],null,true)););return o}:function(n){return n&&nr.call(n,r)?(n=n[r],u===n&&(0!==u||1/u==1/n)):false}}function Ee(n,t,e){var r=true,u=t&&se(t);t&&(e||u.length)||(null==e&&(e=t),t=n,n=o,u=se(t)),false===e?r=false:ye(e)&&"chain"in e&&(r=e.chain),e=-1;for(var i=ve(n),a=u?u.length:0;++e--n?t.apply(this,arguments):void 0}},o.assign=ce,o.at=function(n,t){var e=arguments,r=-1,u=yt(e,true,false,1),o=u.length,i=typeof t;for("number"!=i&&"string"!=i||!e[2]||e[2][t]!==n||(o=1),e=Ne(o);++rarguments.length?Nt(t,w|x,null,n):Nt(t,w|x|C,null,n,Ut(arguments,2))},o.chain=function(n){return new i(n,true)},o.compact=function(n){for(var t=-1,e=n?n.length:0,r=0,u=[];++t(s?r(s,l):i(p,l))){for(t=u;--t;){var h=o[t];if(0>(h?r(h,l):i(n[t],l)))continue n}s&&s.push(l),p.push(l)}return p},o.invert=function(n,t){for(var e=-1,r=Sr(n),u=r.length,o={};++eo?0:o>>>0); +return st(n,function(n){var o=u?t:null!=n&&n[t];i[++r]=o?o.apply(n,e):_}),i},o.keys=Sr,o.keysIn=_e,o.map=ne,o.mapValues=function(n,t,e){var r={};return t=o.createCallback(t,e,3),wt(n,function(n,e,u){r[e]=t(n,e,u)}),r},o.matches=Ae,o.max=te,o.memoize=function(n,t){if(!ve(n)||t&&!ve(t))throw new Be;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return nr.call(r,u)?r[u]:r[u]=n.apply(this,arguments)};return e.cache={},e},o.merge=function(n,t,e){if(!n)return n;var r=arguments,u=r.length,o=typeof e; +if("number"!=o&&"string"!=o||!r[3]||r[3][e]!==t||(u=2),3u?0:u>>>0);for(i||(t=o.createCallback(t,e,3)),st(n,function(n,e,u){if(i)for(e=t.length,u=Ne(e);e--;)u[e]=n[t[e]];else u=t(n,e,u);f[++r]={a:u,b:r,c:n}}),u=f.length,f.sort(i?l:a);u--;)f[u]=f[u].c;return f},o.tap=function(n,t,e){return t.call(e,n),n},o.throttle=function(n,t,e){var r=true,u=true;if(!ve(n))throw new Be; +return false===e?r=false:ye(e)&&(r="leading"in e?!!e.leading:r,u="trailing"in e?!!e.trailing:u),at.leading=r,at.maxWait=+t,at.trailing=u,le(n,t,at)},o.times=function(n,t,e){n=0>n?0:n>>>0,t=ft(t,e,1),e=-1;for(var r=Ne(n);++ee?0:+e||0,r))-t.length,0<=e&&n.indexOf(t,e)==e},o.escape=function(n){return null==n?"":De(n).replace(F,p)},o.escapeRegExp=je,o.every=Xt,o.find=Gt,o.findIndex=$t,o.findKey=function(n,t,e){return t=o.createCallback(t,e,3),vt(n,t,wt,true) +},o.findLast=function(n,t,e){return t=o.createCallback(t,e,3),vt(n,t,ht)},o.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=o.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;return-1},o.findLastKey=function(n,t,e){return t=o.createCallback(t,e,3),vt(n,t,xt,true)},o.findWhere=function(n,t){return Gt(n,Ae(t))},o.has=function(n,t){return n?nr.call(n,t):false},o.identity=Oe,o.indexOf=zt,o.isArguments=he,o.isArray=Rr,o.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&Ve.call(n)==Q||false +},o.isDate=function(n){return n&&typeof n=="object"&&Ve.call(n)==nt||false},o.isElement=ge,o.isEmpty=function(n){var t=true;if(!n)return t;var e=n.length;return-1e?gr(r+e,0):vr(e||0,r-1))+1);r--;)if(n[r]===t)return r;return-1},o.mixin=Ee,o.noConflict=function(){return t._=Ke,this},o.noop=Ie,o.now=Dr,o.pad=function(n,t,e){n=null==n?"":De(n),t=+t; +var r=n.length;return re?0:+e||0,n.length),n.lastIndexOf(t,e)==e},o.template=function(n,t,e){var r=o.templateSettings;e=pe({},e,r),n=De(null==n?"":n);var u,i,a=pe({},e.imports,r.imports),r=Sr(a),a=xe(a),l=0,f=e.interpolate||P,c="__p+='",f=ze((e.escape||P).source+"|"+f.source+"|"+(f===z?D:P).source+"|"+(e.evaluate||P).source+"|$","g"); +n.replace(f,function(t,e,r,o,a,f){return r||(r=o),c+=n.slice(l,f).replace(V,s),e&&(u=true,c+="'+__e("+e+")+'"),a&&(i=true,c+="';"+a+";\n__p+='"),r&&(c+="'+((__t=("+r+"))==null?'':__t)+'"),l=f+t.length,t}),c+="';",(e=e.variable)||(c="with(obj){"+c+"}"),c=(i?c.replace(N,""):c).replace(S,"$1").replace(T,"$1;"),c="function("+(e||"obj")+"){"+(e?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+c+"return __p}";try{var p=We(r,"return "+c).apply(_,a) +}catch(h){throw h.source=c,h}return t?p(t):(p.source=c,p)},o.trim=$r,o.trimLeft=Lr,o.trimRight=zr,o.truncate=function(n,t){var e=30,r="...";if(t&&ye(t))var u="separator"in t?t.separator:u,e="length"in t?+t.length||0:e,r="omission"in t?De(t.omission):r;else null!=t&&(e=+t||0);if(n=null==n?"":De(n),e>=n.length)return n;var o=e-r.length;if(1>o)return r;if(e=n.slice(0,o),null==u)return e+r;if(de(u)){if(n.slice(o).search(u)){var i,a,l=n.slice(0,o);for(u.global||(u=ze(u.source,(B.exec(u)||"")+"g")),u.lastIndex=0;i=u.exec(l);)a=i.index; +e=e.slice(0,null==a?o:a)}}else n.indexOf(u,o)!=o&&(u=e.lastIndexOf(u),-1n.indexOf(";")?n:n.replace(W,d))},o.uniqueId=function(n){var t=++I;return De(null==n?"":n)+t},o.all=Xt,o.any=ie,o.detect=Gt,o.foldl=re,o.foldr=ue,o.include=Jt,o.inject=re,Ee(function(){var n={};return wt(o,function(t,e){o.prototype[e]||(n[e]=t)}),n}(),false),o.first=Lt,o.last=Bt,o.sample=function(n,t,e){return n&&typeof n.length!="number"&&(n=xe(n)),null==t||e?(t=n?n.length:0,0t?0:+t||0,n.length),n) +},o.take=Lt,o.takeRight=Bt,o.takeRightWhile=Bt,o.takeWhile=Lt,o.head=Lt,wt(o,function(n,t){var e="sample"!==t;o.prototype[t]||(o.prototype[t]=function(t,r){var u=this.__chain__,o=n(this.__wrapped__,t,r);return u||null!=t&&(!r||e&&typeof t=="function")?new i(o,u):o})}),o.VERSION=A,o.prototype.chain=function(){return this.__chain__=true,this},o.prototype.toJSON=Vt,o.prototype.toString=function(){return De(this.__wrapped__)},o.prototype.value=Vt,o.prototype.valueOf=Vt,c(["join","pop","shift"],function(n){var t=qe[n]; +o.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments);return n?new i(e,n):e}}),c(["push","reverse","sort","unshift"],function(n){var t=qe[n];o.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),c(["concat","splice"],function(n){var t=qe[n];o.prototype[n]=function(){return new i(t.apply(this.__wrapped__,arguments),this.__chain__)}}),o}var _,w=1,x=2,j=4,k=8,C=16,O=32,A="2.4.1",E="__lodash@"+A+"__",I=0,R=/^[A-Z]+$/,N=/\b__p\+='';/g,S=/\b(__p\+=)''\+/g,T=/(__e\(.*?\)|\b__t\))\+'';/g,W=/&(?:amp|lt|gt|quot|#39);/g,F=/[&<>"']/g,$=/<%-([\s\S]+?)%>/g,L=/<%([\s\S]+?)%>/g,z=/<%=([\s\S]+?)%>/g,D=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,B=/\w*$/,q=/^\s*function[ \n\r\t]+\w/,U=/^0[xX]/,Z=/[\xC0-\xFF]/g,P=/($^)/,K=/[.*+?^${}()|[\]\\]/g,M=/\bthis\b/,V=/['\n\r\u2028\u2029\\]/g,J=/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[a-z]+|[0-9]+/g,X=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",Y="Array Boolean Date Function Math Number Object RegExp Set String _ clearTimeout document isFinite isNaN parseInt setTimeout TypeError window WinRTError".split(" "),G="[object Arguments]",H="[object Array]",Q="[object Boolean]",nt="[object Date]",tt="[object Function]",et="[object Number]",rt="[object Object]",ut="[object RegExp]",ot="[object String]",it={}; it[tt]=false,it[G]=it[H]=it[Q]=it[nt]=it[et]=it[rt]=it[ut]=it[ot]=true;var at={leading:false,maxWait:0,trailing:false},lt={configurable:false,enumerable:false,value:null,writable:false},ft={"&":"&","<":"<",">":">",'"':""","'":"'"},ct={"&":"&","<":"<",">":">",""":'"',"'":"'"},pt={\u00c0:"A",\u00c1:"A",\u00c2:"A",\u00c3:"A",\u00c4:"A",\u00c5:"A",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u00e3:"a",\u00e4:"a",\u00e5:"a",\u00c7:"C",\u00e7:"c",\u00d0:"D",\u00f0:"d",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u00cb:"E",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u00eb:"e",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u00cf:"I",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u00ef:"i",\u00d1:"N",\u00f1:"n",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u00d5:"O",\u00d6:"O",\u00d8:"O",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u00f5:"o",\u00f6:"o",\u00f8:"o",\u00d9:"U",\u00da:"U",\u00db:"U",\u00dc:"U",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u00fc:"u",\u00dd:"Y",\u00fd:"y",\u00ff:"y",\u00c6:"AE",\u00e6:"ae",\u00de:"Th",\u00fe:"th",\u00df:"ss","\xd7":" ","\xf7":" "},st={"function":true,object:true},ht={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},gt=st[typeof window]&&window||this,vt=st[typeof exports]&&exports&&!exports.nodeType&&exports,st=st[typeof module]&&module&&!module.nodeType&&module,yt=vt&&st&&typeof global=="object"&&global; !yt||yt.global!==yt&&yt.window!==yt&&yt.self!==yt||(gt=yt);var yt=st&&st.exports===vt&&vt,mt=b();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(gt._=mt, define(function(){return mt})):vt&&st?yt?(st.exports=mt)._=mt:vt._=mt:gt._=mt}).call(this); \ No newline at end of file diff --git a/dist/lodash.underscore.js b/dist/lodash.underscore.js index 5173bda64..771394f36 100644 --- a/dist/lodash.underscore.js +++ b/dist/lodash.underscore.js @@ -2008,7 +2008,7 @@ * @param {Array|Object|string} collection The collection to search. * @param {*} target The value to check for. * @param {number} [fromIndex=0] The index to search from. - * @returns {boolean} Returns `true` if the target element is found, else `false`. + * @returns {boolean} Returns `true` if a matching element is found, else `false`. * @example * * _.contains([1, 2, 3], 1); @@ -2211,14 +2211,14 @@ * * @static * @memberOf _ - * @alias detect, findWhere + * @alias detect * @category Collections * @param {Array|Object|string} collection The collection to search. * @param {Function|Object|string} [predicate=identity] The function called * per iteration. If a property name or object is provided it will be used * to create a "_.pluck" or "_.where" style callback respectively. * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the found element, else `undefined`. + * @returns {*} Returns the matched element, else `undefined`. * @example * * var characters = [ @@ -2251,6 +2251,34 @@ return baseFind(collection, predicate, baseEach); } + /** + * Performs a deep comparison between each element in `collection` and the + * source object, returning the first element that has equivalent property + * values. + * + * @static + * @memberOf _ + * @category Collections + * @param {Array|Object|string} collection The collection to search. + * @param {Object} source The object of property values to match. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var characters = [ + * { 'name': 'barney', 'age': 36, 'employer': 'slate' }, + * { 'name': 'fred', 'age': 40, 'employer': 'slate' } + * ]; + * + * _.findWhere(characters, { 'employer': 'slate' }); + * // => { 'name': 'barney', 'age': 36, 'employer': 'slate' } + * + * _.findWhere(characters, { 'age': 40 }); + * // => { 'name': 'fred', 'age': 40, 'employer': 'slate' } + */ + function findWhere(collection, source) { + return find(collection, matches(source)); + } + /** * Iterates over elements of a collection executing the callback for each * element. The callback is bound to `thisArg` and invoked with three arguments; @@ -2662,7 +2690,6 @@ * * @static * @memberOf _ - * @type Function * @category Collections * @param {Array|Object|string} collection The collection to iterate over. * @param {string} key The name of the property to pluck. @@ -2677,7 +2704,9 @@ * _.pluck(characters, 'name'); * // => ['barney', 'fred'] */ - var pluck = map; + function pluck(collection, key) { + return map(collection, property(key)); + } /** * Reduces a collection to a value which is the accumulated result of running @@ -3057,25 +3086,29 @@ * * @static * @memberOf _ - * @type Function * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Object} source The object of property values to filter by. + * @param {Array|Object|string} collection The collection to search. + * @param {Object} source The object of property values to match. * @returns {Array} Returns the new filtered array. * @example * * var characters = [ - * { 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }, - * { 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] } + * { 'name': 'barney', 'age': 36, 'employer': 'slate', 'pets': ['hoppy'] }, + * { 'name': 'fred', 'age': 40, 'employer': 'slate', 'pets': ['baby puss', 'dino'] } * ]; * - * _.where(characters, { 'age': 36 }); - * // => [{ 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }] + * _.pluck(_.where(characters, { 'age': 36 }), 'name'); + * // => ['barney'] * - * _.where(characters, { 'pets': ['dino'] }); - * // => [{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }] + * _.pluck(_.where(characters, { 'pets': ['dino'] }), 'name'); + * // => ['fred'] + * + * _.pluck(_.where(characters, { 'employer': 'slate' }), 'name'); + * // => ['barney', 'fred'] */ - var where = filter; + function where(collection, source) { + return filter(collection, matches(source)); + } /*--------------------------------------------------------------------------*/ @@ -4005,8 +4038,10 @@ if (!value) { return true; } - if (isArray(value) || isString(value)) { - return !value.length; + var length = value.length; + if (length > -1 && length <= maxSafeInteger && + (isArray(value) || isString(value) || isArguments(value))) { + return !length; } for (var key in value) { if (hasOwnProperty.call(value, key)) { @@ -4752,7 +4787,7 @@ func || baseCreateCallback(func, thisArg, argCount); } // handle "_.pluck" and "_.where" style callback shorthands - return type != 'object' ? property(func) : matches(func); + return type == 'object' ? matches(func) : property(func); } /** @@ -5221,6 +5256,7 @@ lodash.escape = escape; lodash.every = every; lodash.find = find; + lodash.findWhere = findWhere; lodash.has = has; lodash.identity = identity; lodash.indexOf = indexOf; @@ -5259,7 +5295,6 @@ lodash.all = every; lodash.any = some; lodash.detect = find; - lodash.findWhere = find; lodash.foldl = reduce; lodash.foldr = reduceRight; lodash.include = contains; diff --git a/dist/lodash.underscore.min.js b/dist/lodash.underscore.min.js index 93476f232..4b1f72d3b 100644 --- a/dist/lodash.underscore.min.js +++ b/dist/lodash.underscore.min.js @@ -3,38 +3,39 @@ * Lo-Dash 2.4.1 (Custom Build) lodash.com/license | Underscore.js 1.6.0 underscorejs.org/LICENSE * Build: `lodash underscore -o ./dist/lodash.underscore.js` */ -;(function(){function n(n,r,t){t=(t||0)-1;for(var e=n?n.length:0;++te||typeof t=="undefined"){t=1;break n}if(t>>0:0,u=Array(e);++tu(r,i)&&o.push(i)}return o}function g(n,r){var t=-1,e=n?n.length:0;if(typeof e=="number"&&-1o(f,c)&&(t&&f.push(c),i.push(a))}return i}function j(n,r){return function(t,e,u){var o=r?r():{};e=ur(e,u,3),u=-1;var i=t?t.length:0;if(typeof i=="number"&&-1r?0:r) -}function k(r,t,e){var u=r?r.length:0;if(typeof e=="number")e=0>e?rt(u+e,0):e||0;else if(e)return e=q(r,t),u&&r[e]===t?e:-1;return n(r,t,e)}function S(n,r,t){return N(n,null==r||t?1:0>r?0:r)}function N(n,r,t){var e=-1,u=n?n.length:0;for(r=typeof r=="undefined"?0:+r||0,0>r?r=rt(u+r,0):r>u&&(r=u),t=typeof t=="undefined"?u:+t||0,0>t?t=rt(u+t,0):t>u&&(t=u),u=r>t?0:t-r,t=Array(u);++e>>1,t(n[e])u&&(u=t);else r=ur(r,t,3),g(n,function(n,t,o){t=r(n,t,o),t>e&&(e=t,u=n)});return u}function z(n,r,t,e){var u=3>arguments.length;r=ur(r,e,4);var o=-1,i=n?n.length:0; -if(typeof i=="number"&&-1arguments.length;return r=ur(r,e,4),h(n,function(n,e,o){t=u?(u=false,n):r(t,n,e,o)}),t}function P(n){var r=-1,t=n&&n.length,e=Array(0>t?0:t>>>0);return g(n,function(n){var t=_(++r);e[r]=e[t],e[t]=n}),e}function U(n,r,t){var e;r=ur(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number"&&-1arguments.length?x(n,lr,r):x(n,lr|sr,r,N(arguments,2))}function G(n,r,t){function e(){l&&clearTimeout(l),i=l=p=cr,(h||g!==r)&&(s=yt(),f=n.apply(c,o),l||i||(o=c=null))}function u(){var t=r-(yt()-a);0>=t||t>r?(i&&clearTimeout(i),t=p,i=l=p=cr,t&&(s=yt(),f=n.apply(c,o),l||i||(o=c=null))):l=setTimeout(u,t)}var o,i,f,a,c,l,p,s=0,g=false,h=true;if(!X(n))throw new TypeError;if(r=0>r?0:r,true===t)var v=true,h=false;else Y(t)&&(v=t.leading,g="maxWait"in t&&rt(r,+t.maxWait||0),h="trailing"in t?t.trailing:h); -return function(){if(o=arguments,a=yt(),c=this,p=h&&(l||!v),false===g)var t=v&&!l;else{i||v||(s=a);var y=g-(a-s),m=0>=y||y>g;m?(i&&(i=clearTimeout(i)),s=a,f=n.apply(c,o)):i||(i=setTimeout(e,y))}return m&&l?l=clearTimeout(l):l||r===g||(l=setTimeout(u,r)),t&&(m=true,f=n.apply(c,o)),!m||l||i||(o=c=null),f}}function H(n){if(!X(n))throw new TypeError;return function(){return!n.apply(this,arguments)}}function J(n,r,t){if(!n)return n;var e=arguments,u=0,o=e.length,i=typeof t;for("number"!=i&&"string"!=i||!e[3]||e[3][t]!==r||(o=2);++u"']/g,mr=/($^)/,br=/[.*+?^${}()|[\]\\]/g,dr=/['\n\r\u2028\u2029\\]/g,_r="[object Arguments]",wr="[object Array]",jr="[object Boolean]",xr="[object Date]",Tr="[object Number]",Ar="[object Object]",Er="[object RegExp]",Or="[object String]",kr={"&":"&","<":"<",">":">",'"':""","'":"'"},Sr={"&":"&","<":"<",">":">",""":'"',"'":"'"},Nr={"function":true,object:true},qr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Fr=Nr[typeof window]&&window||this,Br=Nr[typeof exports]&&exports&&!exports.nodeType&&exports,Mr=Nr[typeof module]&&module&&!module.nodeType&&module,Rr=Br&&Mr&&typeof global=="object"&&global; -!Rr||Rr.global!==Rr&&Rr.window!==Rr&&Rr.self!==Rr||(Fr=Rr);var $r=Mr&&Mr.exports===Br&&Br,Ir=Array.prototype,Dr=Object.prototype,Wr=Fr._,zr=Math.pow(2,53)-1,Cr=Dr.toString,Pr=RegExp("^"+(null==Cr?"":(Cr+"").replace(br,"\\$&")).replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ur=Math.ceil,Vr=Math.floor,Gr=Function.prototype.toString,Hr=Dr.hasOwnProperty,Jr=Ir.push,Kr=Dr.propertyIsEnumerable,Lr=Ir.splice,Qr=A(Qr=Object.create)&&Qr,Xr=A(Xr=Array.isArray)&&Xr,Yr=Fr.isFinite,Zr=Fr.isNaN,nt=A(nt=Object.keys)&&nt,rt=Math.max,tt=Math.min,et=A(et=Date.now)&&et,ut=Math.random; -i.prototype=o.prototype;var ot={};!function(){var n={0:1,length:1};ot.spliceObjects=(Lr.call(n,0,1),!n[0])}(0,0),o.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},Qr||(c=function(){function n(){}return function(r){if(Y(r)){n.prototype=r;var t=new n;n.prototype=null}return t||Fr.Object()}}());var it=S,ft=O,at=j(function(n,r,t){Hr.call(n,t)?n[t]++:n[t]=1}),ct=j(function(n,r,t){Hr.call(n,t)?n[t].push(r):n[t]=[r]}),lt=j(function(n,r,t){n[t]=r -}),pt=j(function(n,r,t){n[t?0:1].push(r)},function(){return[[],[]]}),st=D,gt=R;Q(arguments)||(Q=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Hr.call(n,"callee")&&!Kr.call(n,"callee")||false});var ht=Xr||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Cr.call(n)==wr||false};X(/x/)&&(X=function(n){return typeof n=="function"&&"[object Function]"==Cr.call(n)});var vt=nt?function(n){return Y(n)?nt(n):[]}:E,yt=et||function(){return(new Date).getTime()};o.after=function(n,r){if(!X(r))throw new TypeError; -return n=Yr(n=+n)?n:0,function(){return 1>--n?r.apply(this,arguments):void 0}},o.bind=V,o.bindAll=function(n){for(var r=1r?0:r)},o.intersection=function(){for(var n=[],r=-1,t=arguments.length;++ri(a,e)){for(r=t;--r;)if(0>i(n[r],e))continue n;a.push(e)}return a},o.invert=function(n){for(var r=-1,t=vt(n),e=t.length,u={};++ro?0:o>>>0);return g(n,function(n){var o=u?r:null!=n&&n[r];i[++e]=o?o.apply(n,t):cr}),i},o.keys=vt,o.map=D,o.matches=ir,o.max=W,o.memoize=function(n,r){if(!X(n)||r&&!X(r))throw new TypeError;var t={};return function(){var e=r?r.apply(this,arguments):"_"+arguments[0];return Hr.call(t,e)?t[e]:t[e]=n.apply(this,arguments)}},o.min=function(n,r,t){var e=1/0,u=e,o=typeof r;"number"!=o&&"string"!=o||!t||t[r]!==n||(r=null); -var o=-1,i=n?n.length:0;if(null==r&&typeof i=="number"&&-1o?0:o>>>0);for(t=ur(t,e,3),g(n,function(n,r,e){i[++u]={a:t(n,r,e),b:u,c:n}}),o=i.length,i.sort(r);o--;)i[o]=i[o].c; -return i},o.tap=function(n,r){return r(n),n},o.throttle=function(n,r,t){var e=true,u=true;if(!X(n))throw new TypeError;return false===t?e=false:Y(t)&&(e="leading"in t?t.leading:e,u="trailing"in t?t.trailing:u),G(n,r,{leading:e,maxWait:r,trailing:u})},o.times=function(n,r,t){n=0>n?0:n>>>0,r=l(r,t,1),t=-1;for(var e=Array(n);++tr?0:r);++nt?rt(e+t,0):tt(t||0,e-1))+1);e--;)if(n[e]===r)return e;return-1},o.mixin=fr,o.noConflict=function(){return Fr._=Wr,this},o.now=yt,o.random=function(n,r){return null==n&&null==r&&(r=1),n=+n||0,null==r?(r=n,n=0):r=+r||0,n+Vr(ut()*(r-n+1)) -},o.reduce=z,o.reduceRight=C,o.result=function(n,r){if(null!=n){var t=n[r];return X(t)?n[r]():t}},o.size=function(n){var r=n?n.length:0;return typeof r=="number"&&-1n.indexOf(";")?n:n.replace(vr,u))},o.uniqueId=function(n){var r=++hr+"";return n?n+r:r},o.all=M,o.any=U,o.detect=$,o.findWhere=$,o.foldl=z,o.foldr=C,o.include=B,o.inject=z,o.first=O,o.last=function(n,r,t){var e=n?n.length:0; -return null==r||t?n?n[e-1]:cr:(r=e-(r||0),N(n,0>r?0:r))},o.sample=function(n,r,t){return n&&typeof n.length!="number"&&(n=er(n)),null==r||t?(r=n?n.length:0,0r?0:+r||0,n.length),n)},o.take=ft,o.head=O,fr(J({},o)),o.VERSION="2.4.1",o.prototype.chain=function(){return this.__chain__=true,this},o.prototype.value=function(){return this.__wrapped__},f("pop push reverse shift sort splice unshift".split(" "),function(n){var r=Ir[n];o.prototype[n]=function(){var n=this.__wrapped__; -return r.apply(n,arguments),ot.spliceObjects||0!==n.length||delete n[0],this}}),f(["concat","join","slice"],function(n){var r=Ir[n];o.prototype[n]=function(){var n=r.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new i(n),n.__chain__=true),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Fr._=o, define("underscore",function(){return o})):Br&&Mr?$r?(Mr.exports=o)._=o:Br._=o:Fr._=o}).call(this); \ No newline at end of file +;(function(){function n(n,r,t){t=(t||0)-1;for(var e=n?n.length:0;++te||typeof t=="undefined"){t=1;break n}if(t>>0:0,u=Array(e);++tu(r,i)&&o.push(i)}return o}function g(n,r){var t=-1,e=n?n.length:0;if(typeof e=="number"&&-1o(f,c)&&(t&&f.push(c),i.push(a))}return i}function j(n,r){return function(t,e,u){var o=r?r():{};e=or(e,u,3),u=-1;var i=t?t.length:0;if(typeof i=="number"&&-1r?0:r) +}function k(r,t,e){var u=r?r.length:0;if(typeof e=="number")e=0>e?tt(u+e,0):e||0;else if(e)return e=q(r,t),u&&r[e]===t?e:-1;return n(r,t,e)}function S(n,r,t){return N(n,null==r||t?1:0>r?0:r)}function N(n,r,t){var e=-1,u=n?n.length:0;for(r=typeof r=="undefined"?0:+r||0,0>r?r=tt(u+r,0):r>u&&(r=u),t=typeof t=="undefined"?u:+t||0,0>t?t=tt(u+t,0):t>u&&(t=u),u=r>t?0:t-r,t=Array(u);++e>>1,t(n[e])u&&(u=t);else r=or(r,t,3),g(n,function(n,t,o){t=r(n,t,o),t>e&&(e=t,u=n)});return u}function z(n,r){return D(n,cr(r))}function C(n,r,t,e){var u=3>arguments.length; +r=or(r,e,4);var o=-1,i=n?n.length:0;if(typeof i=="number"&&-1arguments.length;return r=or(r,e,4),h(n,function(n,e,o){t=u?(u=false,n):r(t,n,e,o)}),t}function U(n){var r=-1,t=n&&n.length,e=Array(0>t?0:t>>>0);return g(n,function(n){var t=_(++r);e[r]=e[t],e[t]=n}),e}function V(n,r,t){var e;r=or(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number"&&-1arguments.length?x(n,pr,r):x(n,pr|gr,r,N(arguments,2))}function H(n,r,t){function e(){l&&clearTimeout(l),i=l=p=lr,(h||g!==r)&&(s=vt(),f=n.apply(c,o),l||i||(o=c=null))}function u(){var t=r-(vt()-a);0>=t||t>r?(i&&clearTimeout(i),t=p,i=l=p=lr,t&&(s=vt(),f=n.apply(c,o),l||i||(o=c=null))):l=setTimeout(u,t)}var o,i,f,a,c,l,p,s=0,g=false,h=true;if(!Y(n))throw new TypeError;if(r=0>r?0:r,true===t)var v=true,h=false;else Z(t)&&(v=t.leading,g="maxWait"in t&&tt(r,+t.maxWait||0),h="trailing"in t?t.trailing:h); +return function(){if(o=arguments,a=vt(),c=this,p=h&&(l||!v),false===g)var t=v&&!l;else{i||v||(s=a);var y=g-(a-s),m=0>=y||y>g;m?(i&&(i=clearTimeout(i)),s=a,f=n.apply(c,o)):i||(i=setTimeout(e,y))}return m&&l?l=clearTimeout(l):l||r===g||(l=setTimeout(u,r)),t&&(m=true,f=n.apply(c,o)),!m||l||i||(o=c=null),f}}function J(n){if(!Y(n))throw new TypeError;return function(){return!n.apply(this,arguments)}}function K(n,r,t){if(!n)return n;var e=arguments,u=0,o=e.length,i=typeof t;for("number"!=i&&"string"!=i||!e[3]||e[3][t]!==r||(o=2);++u"']/g,br=/($^)/,dr=/[.*+?^${}()|[\]\\]/g,_r=/['\n\r\u2028\u2029\\]/g,wr="[object Arguments]",jr="[object Array]",xr="[object Boolean]",Tr="[object Date]",Ar="[object Number]",Er="[object Object]",Or="[object RegExp]",kr="[object String]",Sr={"&":"&","<":"<",">":">",'"':""","'":"'"},Nr={"&":"&","<":"<",">":">",""":'"',"'":"'"},qr={"function":true,object:true},Fr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Br=qr[typeof window]&&window||this,Mr=qr[typeof exports]&&exports&&!exports.nodeType&&exports,Rr=qr[typeof module]&&module&&!module.nodeType&&module,$r=Mr&&Rr&&typeof global=="object"&&global; +!$r||$r.global!==$r&&$r.window!==$r&&$r.self!==$r||(Br=$r);var Ir=Rr&&Rr.exports===Mr&&Mr,Dr=Array.prototype,Wr=Object.prototype,zr=Br._,Cr=Math.pow(2,53)-1,Pr=Wr.toString,Ur=RegExp("^"+(null==Pr?"":(Pr+"").replace(dr,"\\$&")).replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Vr=Math.ceil,Gr=Math.floor,Hr=Function.prototype.toString,Jr=Wr.hasOwnProperty,Kr=Dr.push,Lr=Wr.propertyIsEnumerable,Qr=Dr.splice,Xr=A(Xr=Object.create)&&Xr,Yr=A(Yr=Array.isArray)&&Yr,Zr=Br.isFinite,nt=Br.isNaN,rt=A(rt=Object.keys)&&rt,tt=Math.max,et=Math.min,ut=A(ut=Date.now)&&ut,ot=Math.random; +i.prototype=o.prototype;var it={};!function(){var n={0:1,length:1};it.spliceObjects=(Qr.call(n,0,1),!n[0])}(0,0),o.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},Xr||(c=function(){function n(){}return function(r){if(Z(r)){n.prototype=r;var t=new n;n.prototype=null}return t||Br.Object()}}());var ft=S,at=O,ct=j(function(n,r,t){Jr.call(n,t)?n[t]++:n[t]=1}),lt=j(function(n,r,t){Jr.call(n,t)?n[t].push(r):n[t]=[r]}),pt=j(function(n,r,t){n[t]=r +}),st=j(function(n,r,t){n[t?0:1].push(r)},function(){return[[],[]]});X(arguments)||(X=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Jr.call(n,"callee")&&!Lr.call(n,"callee")||false});var gt=Yr||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Pr.call(n)==jr||false};Y(/x/)&&(Y=function(n){return typeof n=="function"&&"[object Function]"==Pr.call(n)});var ht=rt?function(n){return Z(n)?rt(n):[]}:E,vt=ut||function(){return(new Date).getTime()};o.after=function(n,r){if(!Y(r))throw new TypeError; +return n=Zr(n=+n)?n:0,function(){return 1>--n?r.apply(this,arguments):void 0}},o.bind=G,o.bindAll=function(n){for(var r=1r?0:r)},o.intersection=function(){for(var n=[],r=-1,t=arguments.length;++ri(a,e)){for(r=t;--r;)if(0>i(n[r],e))continue n;a.push(e)}return a},o.invert=function(n){for(var r=-1,t=ht(n),e=t.length,u={};++ro?0:o>>>0);return g(n,function(n){var o=u?r:null!=n&&n[r];i[++e]=o?o.apply(n,t):lr}),i},o.keys=ht,o.map=D,o.matches=fr,o.max=W,o.memoize=function(n,r){if(!Y(n)||r&&!Y(r))throw new TypeError;var t={};return function(){var e=r?r.apply(this,arguments):"_"+arguments[0];return Jr.call(t,e)?t[e]:t[e]=n.apply(this,arguments)}},o.min=function(n,r,t){var e=1/0,u=e,o=typeof r;"number"!=o&&"string"!=o||!t||t[r]!==n||(r=null); +var o=-1,i=n?n.length:0;if(null==r&&typeof i=="number"&&-1o?0:o>>>0);for(t=or(t,e,3),g(n,function(n,r,e){i[++u]={a:t(n,r,e),b:u,c:n}}),o=i.length,i.sort(r);o--;)i[o]=i[o].c; +return i},o.tap=function(n,r){return r(n),n},o.throttle=function(n,r,t){var e=true,u=true;if(!Y(n))throw new TypeError;return false===t?e=false:Z(t)&&(e="leading"in t?t.leading:e,u="trailing"in t?t.trailing:u),H(n,r,{leading:e,maxWait:r,trailing:u})},o.times=function(n,r,t){n=0>n?0:n>>>0,r=l(r,t,1),t=-1;for(var e=Array(n);++tr?0:r);++nt?tt(e+t,0):et(t||0,e-1))+1);e--;)if(n[e]===r)return e; +return-1},o.mixin=ar,o.noConflict=function(){return Br._=zr,this},o.now=vt,o.random=function(n,r){return null==n&&null==r&&(r=1),n=+n||0,null==r?(r=n,n=0):r=+r||0,n+Gr(ot()*(r-n+1))},o.reduce=C,o.reduceRight=P,o.result=function(n,r){if(null!=n){var t=n[r];return Y(t)?n[r]():t}},o.size=function(n){var r=n?n.length:0;return typeof r=="number"&&-1n.indexOf(";")?n:n.replace(yr,u))},o.uniqueId=function(n){var r=++vr+"";return n?n+r:r},o.all=M,o.any=V,o.detect=$,o.foldl=C,o.foldr=P,o.include=B,o.inject=C,o.first=O,o.last=function(n,r,t){var e=n?n.length:0;return null==r||t?n?n[e-1]:lr:(r=e-(r||0),N(n,0>r?0:r))},o.sample=function(n,r,t){return n&&typeof n.length!="number"&&(n=ur(n)),null==r||t?(r=n?n.length:0,0r?0:+r||0,n.length),n) +},o.take=at,o.head=O,ar(K({},o)),o.VERSION="2.4.1",o.prototype.chain=function(){return this.__chain__=true,this},o.prototype.value=function(){return this.__wrapped__},f("pop push reverse shift sort splice unshift".split(" "),function(n){var r=Dr[n];o.prototype[n]=function(){var n=this.__wrapped__;return r.apply(n,arguments),it.spliceObjects||0!==n.length||delete n[0],this}}),f(["concat","join","slice"],function(n){var r=Dr[n];o.prototype[n]=function(){var n=r.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new i(n),n.__chain__=true),n +}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Br._=o, define("underscore",function(){return o})):Mr&&Rr?Ir?(Rr.exports=o)._=o:Mr._=o:Br._=o}).call(this); \ No newline at end of file