lodash-rails 2.3.0 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/lodash/rails/version.rb +1 -1
- data/vendor/assets/javascripts/lodash.compat.js +373 -187
- data/vendor/assets/javascripts/lodash.compat.min.js +54 -52
- data/vendor/assets/javascripts/lodash.js +374 -199
- data/vendor/assets/javascripts/lodash.min.js +49 -49
- data/vendor/assets/javascripts/lodash.underscore.js +203 -134
- data/vendor/assets/javascripts/lodash.underscore.min.js +34 -34
- metadata +2 -2
@@ -1,58 +1,60 @@
|
|
1
1
|
/**
|
2
2
|
* @license
|
3
|
-
* Lo-Dash 2.
|
3
|
+
* Lo-Dash 2.4.0 (Custom Build) lodash.com/license | Underscore.js 1.5.2 underscorejs.org/LICENSE
|
4
4
|
* Build: `lodash -o ./dist/lodash.compat.js`
|
5
5
|
*/
|
6
6
|
;(function(){function n(n,t,e){e=(e||0)-1;for(var r=n?n.length:0;++e<r;)if(n[e]===t)return e;return-1}function t(t,e){var r=typeof e;if(t=t.l,"boolean"==r||null==e)return t[e]?0:-1;"number"!=r&&"string"!=r&&(r="object");var u="number"==r?e:b+e;return t=(t=t[r])&&t[u],"object"==r?t&&-1<n(t,e)?0:-1:t?0:-1}function e(n){var t=this.l,e=typeof n;if("boolean"==e||null==n)t[n]=true;else{"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:b+n,t=t[e]||(t[e]={});"object"==e?(t[r]||(t[r]=[])).push(n):t[r]=true
|
7
|
-
}}function r(n){return n.charCodeAt(0)}function u(n,t){var e=n.m,r=t.m;if(
|
8
|
-
}function f(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function c(n){n.length=0,v.length<w&&v.push(n)}function p(n){var t=n.l;t&&p(t),n.k=n.l=n.m=n.object=n.number=n.string=n.o=null,y.length<w&&y.push(n)}function s(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];
|
9
|
-
}function w(n){function t(){if(r){var n=r.slice();
|
10
|
-
}if(a=
|
11
|
-
|
12
|
-
}var e=n[0],r=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=1&r,f=2&r,c=4&r,p=8&r,g=e;return
|
13
|
-
}function
|
14
|
-
if(l!=G||!
|
15
|
-
}return
|
16
|
-
n[o]=f})}function
|
17
|
-
});return u}}function
|
18
|
-
t=Q.a,Q.d=/^[^,]+/.exec(t)[0],n=
|
19
|
-
else if(r+="for(n in t){",e.j&&u.push("m.call(t, n)"),u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}",
|
20
|
-
}function
|
21
|
-
for(t=tt(t,e,3);u--&&(e=r[u],false!==t(n[e],e,n)););return n}function
|
22
|
-
return u}function
|
23
|
-
t(o,e,n)&&r.push(o)}}else
|
24
|
-
else qe.unindexedChars&&
|
25
|
-
});return o}function
|
26
|
-
for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else
|
27
|
-
for(t=v.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=null==t||e?1:
|
28
|
-
return r}function
|
29
|
-
},y=function(){l&&
|
30
|
-
t||(e=y,t=n,n=v),
|
31
|
-
}
|
32
|
-
for(t in
|
33
|
-
try{
|
34
|
-
});var
|
35
|
-
|
36
|
-
};return v.after=function(n,t){if(!
|
37
|
-
},v.chain=function(n){return n=new y(n),n.__chain__=true,n},v.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},v.compose=function(){for(var n=arguments,t=n.length;t--;)if(!
|
38
|
-
|
39
|
-
},v.
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
}},v.
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
}
|
49
|
-
},v.
|
50
|
-
|
51
|
-
|
52
|
-
}
|
53
|
-
},v.
|
54
|
-
},
|
55
|
-
|
56
|
-
}
|
57
|
-
|
7
|
+
}}function r(n){return n.charCodeAt(0)}function u(n,t){for(var e=n.m,r=t.m,u=-1,o=e.length;++u<o;){var a=e[u],i=r[u];if(a!==i){if(a>i||typeof a=="undefined")return 1;if(a<i||typeof i=="undefined")return-1}}return n.n-t.n}function o(n){var t=-1,r=n.length,u=n[0],o=n[r/2|0],a=n[r-1];if(u&&typeof u=="object"&&o&&typeof o=="object"&&a&&typeof a=="object")return false;for(u=l(),u["false"]=u["null"]=u["true"]=u.undefined=false,o=l(),o.k=n,o.l=u,o.push=e;++t<r;)o.push(n[t]);return o}function a(n){return"\\"+Y[n]
|
8
|
+
}function i(){return v.pop()||[]}function l(){return y.pop()||{k:null,l:null,m:null,"false":false,n:0,"null":false,number:null,object:null,push:null,string:null,"true":false,undefined:false,o:null}}function f(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function c(n){n.length=0,v.length<w&&v.push(n)}function p(n){var t=n.l;t&&p(t),n.k=n.l=n.m=n.object=n.number=n.string=n.o=null,y.length<w&&y.push(n)}function s(n,t,e){t||(t=0),typeof e=="undefined"&&(e=n?n.length:0);var r=-1;e=e-t||0;for(var u=Array(0>e?0:e);++r<e;)u[r]=n[t+r];
|
9
|
+
return u}function g(e){function v(n){return n&&typeof n=="object"&&!Le(n)&&_e.call(n,"__wrapped__")?n:new y(n)}function y(n,t){this.__chain__=!!t,this.__wrapped__=n}function w(n){function t(){if(r){var n=r.slice();we.apply(n,arguments)}if(this instanceof t){var o=nt(e.prototype),n=e.apply(o,n||arguments);return jt(n)?n:o}return e.apply(u,n||arguments)}var e=n[0],r=n[2],u=n[4];return $e(t,n),t}function Y(n,t,e,r,u){if(e){var o=e(n);if(typeof o!="undefined")return o}if(!jt(n))return n;var a=ge.call(n);
|
10
|
+
if(!V[a]||!Te.nodeClass&&f(n))return n;var l=Re[a];switch(a){case L:case z:return new l(+n);case W:case M:return new l(n);case J:return o=l(n.source,S.exec(n)),o.lastIndex=n.lastIndex,o}if(a=Le(n),t){var p=!r;r||(r=i()),u||(u=i());for(var g=r.length;g--;)if(r[g]==n)return u[g];o=a?l(n.length):{}}else o=a?s(n):Qe({},n);return a&&(_e.call(n,"index")&&(o.index=n.index),_e.call(n,"input")&&(o.input=n.input)),t?(r.push(n),u.push(o),(a?Ue:Ze)(n,function(n,a){o[a]=Y(n,t,e,r,u)}),p&&(c(r),c(u)),o):o}function nt(n){return jt(n)?Ee(n):{}
|
11
|
+
}function tt(n,t,e){if(typeof n!="function")return Vt;if(typeof t=="undefined"||!("prototype"in n))return n;var r=n.__bindData__;if(typeof r=="undefined"&&(Te.funcNames&&(r=!n.name),r=r||!Te.funcDecomp,!r)){var u=de.call(n);Te.funcNames||(r=!A.test(u)),r||(r=B.test(u),$e(n,r))}if(false===r||true!==r&&1&r[1])return n;switch(e){case 1:return function(e){return n.call(t,e)};case 2:return function(e,r){return n.call(t,e,r)};case 3:return function(e,r,u){return n.call(t,e,r,u)};case 4:return function(e,r,u,o){return n.call(t,e,r,u,o)
|
12
|
+
}}return Jt(n,t)}function et(n){function t(){var n=l?a:this;if(u){var h=u.slice();we.apply(h,arguments)}return(o||c)&&(h||(h=s(arguments)),o&&we.apply(h,o),c&&h.length<i)?(r|=16,et([e,p?r:-4&r,h,null,a,i])):(h||(h=arguments),f&&(e=n[g]),this instanceof t?(n=nt(e.prototype),h=e.apply(n,h),jt(h)?h:n):e.apply(n,h))}var e=n[0],r=n[1],u=n[2],o=n[3],a=n[4],i=n[5],l=1&r,f=2&r,c=4&r,p=8&r,g=e;return $e(t,n),t}function rt(e,r){var u=-1,a=ht(),i=e?e.length:0,l=i>=_&&a===n,f=[];if(l){var c=o(r);c?(a=t,r=c):l=false
|
13
|
+
}for(;++u<i;)c=e[u],0>a(r,c)&&f.push(c);return l&&p(r),f}function ot(n,t,e,r){r=(r||0)-1;for(var u=n?n.length:0,o=[];++r<u;){var a=n[r];if(a&&typeof a=="object"&&typeof a.length=="number"&&(Le(a)||mt(a))){t||(a=ot(a,t,e));var i=-1,l=a.length,f=o.length;for(o.length+=l;++i<l;)o[f++]=a[i]}else e||o.push(a)}return o}function at(n,t,e,r,u,o){if(e){var a=e(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;if(n===n&&!(n&&X[typeof n]||t&&X[typeof t]))return false;if(null==n||null==t)return n===t;
|
14
|
+
var l=ge.call(n),p=ge.call(t);if(l==T&&(l=G),p==T&&(p=G),l!=p)return false;switch(l){case L:case z:return+n==+t;case W:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case J:case M:return n==ae(t)}if(p=l==$,!p){var s=_e.call(n,"__wrapped__"),g=_e.call(t,"__wrapped__");if(s||g)return at(s?n.__wrapped__:n,g?t.__wrapped__:t,e,r,u,o);if(l!=G||!Te.nodeClass&&(f(n)||f(t)))return false;if(l=!Te.argsObject&&mt(n)?ue:n.constructor,s=!Te.argsObject&&mt(t)?ue:t.constructor,l!=s&&!(wt(l)&&l instanceof l&&wt(s)&&s instanceof s)&&"constructor"in n&&"constructor"in t)return false
|
15
|
+
}for(s=!u,u||(u=i()),o||(o=i()),l=u.length;l--;)if(u[l]==n)return o[l]==t;var h=0,a=true;if(u.push(n),o.push(t),p){if(l=n.length,h=t.length,a=h==n.length,!a&&!r)return a;for(;h--;)if(p=l,s=t[h],r)for(;p--&&!(a=at(n[p],s,e,r,u,o)););else if(!(a=at(n[h],s,e,r,u,o)))break;return a}return Ye(t,function(t,i,l){return _e.call(l,i)?(h++,a=_e.call(n,i)&&at(n[i],t,e,r,u,o)):void 0}),a&&!r&&Ye(n,function(n,t,e){return _e.call(e,t)?a=-1<--h:void 0}),s&&(c(u),c(o)),a}function it(n,t,e,r,u){(Le(t)?It:Ze)(t,function(t,o){var a,i,l=t,f=n[o];
|
16
|
+
if(t&&((i=Le(t))||nr(t))){for(l=r.length;l--;)if(a=r[l]==t){f=u[l];break}if(!a){var c;e&&(l=e(f,t),c=typeof l!="undefined")&&(f=l),c||(f=i?Le(f)?f:[]:nr(f)?f:{}),r.push(t),u.push(f),c||it(f,t,e,r,u)}}else e&&(l=e(f,t),typeof l=="undefined"&&(l=t)),typeof l!="undefined"&&(f=l);n[o]=f})}function lt(n,t){return n+me(Pe()*(t-n+1))}function ft(e,r,u){var a=-1,l=ht(),f=e?e.length:0,s=[],g=!r&&f>=_&&l===n,h=u||g?i():s;if(g){var v=o(h);v?(l=t,h=v):(g=false,h=u?h:(c(h),s))}for(;++a<f;){var v=e[a],y=u?u(v,a,e):v;
|
17
|
+
(r?!a||h[h.length-1]!==y:0>l(h,y))&&((u||g)&&h.push(y),s.push(v))}return g?(c(h.k),p(h)):u&&c(h),s}function ct(n){return function(t,e,r){var u={};if(e=v.createCallback(e,r,3),Le(t)){r=-1;for(var o=t.length;++r<o;){var a=t[r];n(u,a,e(a,r,t),t)}}else Ue(t,function(t,r,o){n(u,t,e(t,r,o),o)});return u}}function pt(n,t,e,r,u,o){var a=1&t,i=4&t,l=16&t,f=32&t;if(!(2&t||wt(n)))throw new ie;l&&!e.length&&(t&=-17,l=e=false),f&&!r.length&&(t&=-33,f=r=false);var c=n&&n.__bindData__;return c&&true!==c?(c=c.slice(),!a||1&c[1]||(c[4]=u),!a&&1&c[1]&&(t|=8),!i||4&c[1]||(c[5]=o),l&&we.apply(c[2]||(c[2]=[]),e),f&&we.apply(c[3]||(c[3]=[]),r),c[1]|=t,pt.apply(null,c)):(1==t||17===t?w:et)([n,t,e,r,u,o])
|
18
|
+
}function st(){Q.h=F,Q.b=Q.c=Q.g=Q.i="",Q.e="t",Q.j=true;for(var n,t=0;n=arguments[t];t++)for(var e in n)Q[e]=n[e];t=Q.a,Q.d=/^[^,]+/.exec(t)[0],n=te,t="return function("+t+"){",e=Q;var r="var n,t="+e.d+",E="+e.e+";if(!t)return E;"+e.i+";";e.b?(r+="var u=t.length;n=-1;if("+e.b+"){",Te.unindexedChars&&(r+="if(s(t)){t=t.split('')}"),r+="while(++n<u){"+e.g+";}}else{"):Te.nonEnumArgs&&(r+="var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';"+e.g+";}}else{"),Te.enumPrototypes&&(r+="var G=typeof t=='function';"),Te.enumErrorProps&&(r+="var F=t===k||t instanceof Error;");
|
19
|
+
var u=[];if(Te.enumPrototypes&&u.push('!(G&&n=="prototype")'),Te.enumErrorProps&&u.push('!(F&&(n=="message"||n=="name"))'),e.j&&e.f)r+="var C=-1,D=B[typeof t]&&v(t),u=D?D.length:0;while(++C<u){n=D[C];",u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}";else if(r+="for(n in t){",e.j&&u.push("m.call(t, n)"),u.length&&(r+="if("+u.join("&&")+"){"),r+=e.g+";",u.length&&(r+="}"),r+="}",Te.nonEnumShadows){for(r+="if(t!==A){var i=t.constructor,r=t===(i&&i.prototype),f=t===J?I:t===k?j:L.call(t),x=y[f];",k=0;7>k;k++)r+="n='"+e.h[k]+"';if((!(r&&x[n])&&m.call(t,n))",e.j||(r+="||(!x[n]&&t[n]!==A[n])"),r+="){"+e.g+"}";
|
20
|
+
r+="}"}return(e.b||Te.nonEnumArgs)&&(r+="}"),r+=e.c+";return E",n("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",t+r+"}")(tt,q,fe,_e,d,mt,Le,Ct,Q.f,ce,X,Fe,M,pe,ge)}function gt(n){return Je[n]}function ht(){var t=(t=v.indexOf)===Lt?n:t;return t}function vt(n){var t,e;return!n||ge.call(n)!=G||(t=n.constructor,wt(t)&&!(t instanceof t))||!Te.argsClass&&mt(n)||!Te.nodeClass&&f(n)?false:Te.ownLast?(Ye(n,function(n,t,r){return e=_e.call(r,t),false}),false!==e):(Ye(n,function(n,t){e=t}),typeof e=="undefined"||_e.call(n,e))}function yt(n){return Me[n]
|
21
|
+
}function mt(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ge.call(n)==T||false}function dt(n,t,e){var r=qe(n),u=r.length;for(t=tt(t,e,3);u--&&(e=r[u],false!==t(n[e],e,n)););return n}function bt(n){var t=[];return Ye(n,function(n,e){wt(n)&&t.push(e)}),t.sort()}function _t(n){for(var t=-1,e=qe(n),r=e.length,u={};++t<r;){var o=e[t];u[n[o]]=o}return u}function wt(n){return typeof n=="function"}function jt(n){return!(!n||!X[typeof n])}function xt(n){return typeof n=="number"||n&&typeof n=="object"&&ge.call(n)==W||false
|
22
|
+
}function Ct(n){return typeof n=="string"||n&&typeof n=="object"&&ge.call(n)==M||false}function kt(n){for(var t=-1,e=qe(n),r=e.length,u=Yt(r);++t<r;)u[t]=n[e[t]];return u}function Et(n,t,e){var r=-1,u=ht(),o=n?n.length:0,a=false;return e=(0>e?De(0,o+e):e)||0,Le(n)?a=-1<u(n,t,e):typeof o=="number"?a=-1<(Ct(n)?n.indexOf(t,e):u(n,t,e)):Ue(n,function(n){return++r<e?void 0:!(a=n===t)}),a}function Ot(n,t,e){var r=true;if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u&&(r=!!t(n[e],e,n)););}else Ue(n,function(n,e,u){return r=!!t(n,e,u)
|
23
|
+
});return r}function St(n,t,e){var r=[];if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u;){var o=n[e];t(o,e,n)&&r.push(o)}}else Ue(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function At(n,t,e){if(t=v.createCallback(t,e,3),!Le(n)){var r;return Ue(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r}e=-1;for(var u=n.length;++e<u;){var o=n[e];if(t(o,e,n))return o}}function It(n,t,e){if(t&&typeof e=="undefined"&&Le(n)){e=-1;for(var r=n.length;++e<r&&false!==t(n[e],e,n););}else Ue(n,t,e);
|
24
|
+
return n}function Dt(n,t,e){var r=n,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:tt(t,e,3),Le(n))for(;u--&&false!==t(n[u],u,n););else{if(typeof u!="number")var o=qe(n),u=o.length;else Te.unindexedChars&&Ct(n)&&(r=n.split(""));Ue(n,function(n,e,a){return e=o?o[--u]:--u,t(r[e],e,a)})}return n}function Nt(n,t,e){var r=-1,u=n?n.length:0,o=Yt(typeof u=="number"?u:0);if(t=v.createCallback(t,e,3),Le(n))for(;++r<u;)o[r]=t(n[r],r,n);else Ue(n,function(n,e,u){o[++r]=t(n,e,u)});return o}function Bt(n,t,e){var u=-1/0,o=u;
|
25
|
+
if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&Le(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i>o&&(o=i)}}else t=null==t&&Ct(n)?r:v.createCallback(t,e,3),Ue(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)});return o}function Pt(n,t,e,r){var u=3>arguments.length;if(t=v.createCallback(t,r,4),Le(n)){var o=-1,a=n.length;for(u&&(e=n[++o]);++o<a;)e=t(e,n[o],o,n)}else Ue(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)});return e}function Rt(n,t,e,r){var u=3>arguments.length;return t=v.createCallback(t,r,4),Dt(n,function(n,r,o){e=u?(u=false,n):t(e,n,r,o)
|
26
|
+
}),e}function Ft(n){var t=-1,e=n?n.length:0,r=Yt(typeof e=="number"?e:0);return It(n,function(n){var e=lt(0,++t);r[t]=r[e],r[e]=n}),r}function Tt(n,t,e){var r;if(t=v.createCallback(t,e,3),Le(n)){e=-1;for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else Ue(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function $t(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=-1;for(t=v.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[0]:h;return s(n,0,Ne(De(0,r),u))
|
27
|
+
}function Lt(t,e,r){if(typeof r=="number"){var u=t?t.length:0;r=0>r?De(0,u+r):r||0}else if(r)return r=qt(t,e),t[r]===e?r:-1;return n(t,e,r)}function zt(n,t,e){if(typeof t!="number"&&null!=t){var r=0,u=-1,o=n?n.length:0;for(t=v.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=null==t||e?1:De(0,t);return s(n,r)}function qt(n,t,e,r){var u=0,o=n?n.length:u;for(e=e?v.createCallback(e,r,1):Vt,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r;return u}function Kt(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(e=v.createCallback(e,r,3)),ft(n,t,e)
|
28
|
+
}function Wt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?Bt(ur(n,"length")):0,r=Yt(0>e?0:e);++t<e;)r[t]=ur(n,t);return r}function Gt(n,t){var e=-1,r=n?n.length:0,u={};for(t||!r||Le(n[0])||(t=[]);++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u}function Jt(n,t){return 2<arguments.length?pt(n,17,s(arguments,2),null,t):pt(n,1,null,null,t)}function Mt(n,t,e){var r,u,o,a,i,l,f,c=0,p=false,s=true;if(!wt(n))throw new ie;if(t=De(0,t)||0,true===e)var g=true,s=false;else jt(e)&&(g=e.leading,p="maxWait"in e&&(De(t,e.maxWait)||0),s="trailing"in e?e.trailing:s);
|
29
|
+
var v=function(){var e=t-(or()-a);0<e?l=xe(v,e):(u&&ye(u),e=f,u=l=f=h,e&&(c=or(),o=n.apply(i,r),l||u||(r=i=null)))},y=function(){l&&ye(l),u=l=f=h,(s||p!==t)&&(c=or(),o=n.apply(i,r),l||u||(r=i=null))};return function(){if(r=arguments,a=or(),i=this,f=s&&(l||!g),false===p)var e=g&&!l;else{u||g||(c=a);var h=p-(a-c),m=0>=h;m?(u&&(u=ye(u)),c=a,o=n.apply(i,r)):u||(u=xe(y,h))}return m&&l?l=ye(l):l||t===p||(l=xe(v,t)),e&&(m=true,o=n.apply(i,r)),!m||l||u||(r=i=null),o}}function Vt(n){return n}function Ht(n,t,e){var r=true,u=t&&bt(t);
|
30
|
+
t&&(e||u.length)||(null==e&&(e=t),o=y,t=n,n=v,u=bt(t)),false===e?r=false:jt(e)&&"chain"in e&&(r=e.chain);var o=n,a=wt(o);It(u,function(e){var u=n[e]=t[e];a&&(o.prototype[e]=function(){var t=this.__chain__,e=this.__wrapped__,a=[e];if(we.apply(a,arguments),a=u.apply(n,a),r||t){if(e===a&&jt(a))return this;a=new o(a),a.__chain__=t}return a})})}function Ut(){}function Qt(n){return function(t){return t[n]}}function Xt(){return this.__wrapped__}e=e?ut.defaults(Z.Object(),e,ut.pick(Z,R)):Z;var Yt=e.Array,Zt=e.Boolean,ne=e.Date,te=e.Function,ee=e.Math,re=e.Number,ue=e.Object,oe=e.RegExp,ae=e.String,ie=e.TypeError,le=[],fe=e.Error.prototype,ce=ue.prototype,pe=ae.prototype,se=e._,ge=ce.toString,he=oe("^"+ae(ge).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),ve=ee.ceil,ye=e.clearTimeout,me=ee.floor,de=te.prototype.toString,be=he.test(be=ue.getPrototypeOf)&&be,_e=ce.hasOwnProperty,we=le.push,je=ce.propertyIsEnumerable,xe=e.setTimeout,Ce=le.splice,ke=function(){try{var n={},t=he.test(t=ue.defineProperty)&&t,e=t(n,n,n)&&t
|
31
|
+
}catch(r){}return e}(),Ee=he.test(Ee=ue.create)&&Ee,Oe=he.test(Oe=Yt.isArray)&&Oe,Se=e.isFinite,Ae=e.isNaN,Ie=he.test(Ie=ue.keys)&&Ie,De=ee.max,Ne=ee.min,Be=e.parseInt,Pe=ee.random,Re={};Re[$]=Yt,Re[L]=Zt,Re[z]=ne,Re[K]=te,Re[G]=ue,Re[W]=re,Re[J]=oe,Re[M]=ae;var Fe={};Fe[$]=Fe[z]=Fe[W]={constructor:true,toLocaleString:true,toString:true,valueOf:true},Fe[L]=Fe[M]={constructor:true,toString:true,valueOf:true},Fe[q]=Fe[K]=Fe[J]={constructor:true,toString:true},Fe[G]={constructor:true},function(){for(var n=F.length;n--;){var t,e=F[n];
|
32
|
+
for(t in Fe)_e.call(Fe,t)&&!_e.call(Fe[t],e)&&(Fe[t][e]=false)}}(),y.prototype=v.prototype;var Te=v.support={};!function(){var n=function(){this.x=1},t={0:1,length:1},r=[];n.prototype={valueOf:1,y:1};for(var u in new n)r.push(u);for(u in arguments);Te.argsClass=ge.call(arguments)==T,Te.argsObject=arguments.constructor==ue&&!(arguments instanceof Yt),Te.enumErrorProps=je.call(fe,"message")||je.call(fe,"name"),Te.enumPrototypes=je.call(n,"prototype"),Te.funcDecomp=!he.test(e.WinRTError)&&B.test(g),Te.funcNames=typeof te.name=="string",Te.nonEnumArgs=0!=u,Te.nonEnumShadows=!/valueOf/.test(r),Te.ownLast="x"!=r[0],Te.spliceObjects=(le.splice.call(t,0,1),!t[0]),Te.unindexedChars="xx"!="x"[0]+ue("x")[0];
|
33
|
+
try{Te.nodeClass=!(ge.call(document)==G&&!({toString:0}+""))}catch(o){Te.nodeClass=true}}(1),v.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:I,variable:"",imports:{_:v}},Ee||(nt=function(){function n(){}return function(t){if(jt(t)){n.prototype=t;var r=new n;n.prototype=null}return r||e.Object()}}());var $e=ke?function(n,t){U.value=t,ke(n,"__bindData__",U)}:Ut;Te.argsClass||(mt=function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&_e.call(n,"callee")&&!je.call(n,"callee")||false
|
34
|
+
});var Le=Oe||function(n){return n&&typeof n=="object"&&typeof n.length=="number"&&ge.call(n)==$||false},ze=st({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),qe=Ie?function(n){return jt(n)?Te.enumPrototypes&&typeof n=="function"||Te.nonEnumArgs&&n.length&&mt(n)?ze(n):Ie(n):[]}:ze,Ke={a:"g,e,K",i:"e=e&&typeof K=='undefined'?e:d(e,K,3)",b:"typeof u=='number'",v:qe,g:"if(e(t[n],n,g)===false)return E"},We={a:"z,H,l",i:"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b<c){t=a[b];if(t&&B[typeof t]){",v:qe,g:"if(typeof E[n]=='undefined')E[n]=t[n]",c:"}}"},Ge={i:"if(!B[typeof t])return E;"+Ke.i,b:false},Je={"&":"&","<":"<",">":">",'"':""","'":"'"},Me=_t(Je),Ve=oe("("+qe(Me).join("|")+")","g"),He=oe("["+qe(Je).join("")+"]","g"),Ue=st(Ke),Qe=st(We,{i:We.i.replace(";",";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}"),g:"E[n]=e?e(E[n],t[n]):t[n]"}),Xe=st(We),Ye=st(Ke,Ge,{j:false}),Ze=st(Ke,Ge);
|
35
|
+
wt(/x/)&&(wt=function(n){return typeof n=="function"&&ge.call(n)==K});var nr=be?function(n){if(!n||ge.call(n)!=G||!Te.argsClass&&mt(n))return false;var t=n.valueOf,e=typeof t=="function"&&(e=be(t))&&be(e);return e?n==e||be(n)==e:vt(n)}:vt,tr=ct(function(n,t,e){_e.call(n,e)?n[e]++:n[e]=1}),er=ct(function(n,t,e){(_e.call(n,e)?n[e]:n[e]=[]).push(t)}),rr=ct(function(n,t,e){n[e]=t}),ur=Nt,or=he.test(or=ne.now)&&or||function(){return(new ne).getTime()},ar=8==Be(j+"08")?Be:function(n,t){return Be(Ct(n)?n.replace(D,""):n,t||0)
|
36
|
+
};return v.after=function(n,t){if(!wt(t))throw new ie;return function(){return 1>--n?t.apply(this,arguments):void 0}},v.assign=Qe,v.at=function(n){var t=arguments,e=-1,r=ot(t,true,false,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=Yt(t);for(Te.unindexedChars&&Ct(n)&&(n=n.split(""));++e<t;)u[e]=n[r[e]];return u},v.bind=Jt,v.bindAll=function(n){for(var t=1<arguments.length?ot(arguments,true,false,1):bt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=pt(n[u],1,null,null,n)}return n},v.bindKey=function(n,t){return 2<arguments.length?pt(t,19,s(arguments,2),null,n):pt(t,3,null,null,n)
|
37
|
+
},v.chain=function(n){return n=new y(n),n.__chain__=true,n},v.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},v.compose=function(){for(var n=arguments,t=n.length;t--;)if(!wt(n[t]))throw new ie;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},v.constant=function(n){return function(){return n}},v.countBy=tr,v.create=function(n,t){var e=nt(n);return t?Qe(e,t):e},v.createCallback=function(n,t,e){var r=typeof n;if(null==n||"function"==r)return tt(n,t,e);
|
38
|
+
if("object"!=r)return Qt(n);var u=qe(n),o=u[0],a=n[o];return 1!=u.length||a!==a||jt(a)?function(t){for(var e=u.length,r=false;e--&&(r=at(t[u[e]],n[u[e]],null,true)););return r}:function(n){return n=n[o],a===n&&(0!==a||1/a==1/n)}},v.curry=function(n,t){return t=typeof t=="number"?t:+t||n.length,pt(n,4,null,null,null,t)},v.debounce=Mt,v.defaults=Xe,v.defer=function(n){if(!wt(n))throw new ie;var t=s(arguments,1);return xe(function(){n.apply(h,t)},1)},v.delay=function(n,t){if(!wt(n))throw new ie;var e=s(arguments,2);
|
39
|
+
return xe(function(){n.apply(h,e)},t)},v.difference=function(n){return rt(n,ot(arguments,true,true,1))},v.filter=St,v.flatten=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=typeof t!="function"&&r&&r[t]===n?null:t,t=false),null!=e&&(n=Nt(n,e,r)),ot(n,t)},v.forEach=It,v.forEachRight=Dt,v.forIn=Ye,v.forInRight=function(n,t,e){var r=[];Ye(n,function(n,t){r.push(t,n)});var u=r.length;for(t=tt(t,e,3);u--&&false!==t(r[u--],r[u],n););return n},v.forOwn=Ze,v.forOwnRight=dt,v.functions=bt,v.groupBy=er,v.indexBy=rr,v.initial=function(n,t,e){var r=0,u=n?n.length:0;
|
40
|
+
if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else r=null==t||e?1:t||r;return s(n,0,Ne(De(0,u-r),u))},v.intersection=function(){for(var e=[],r=-1,u=arguments.length,a=i(),l=ht(),f=l===n,s=i();++r<u;){var g=arguments[r];(Le(g)||mt(g))&&(e.push(g),a.push(f&&g.length>=_&&o(r?e[r]:s)))}var f=e[0],h=-1,v=f?f.length:0,y=[];n:for(;++h<v;){var m=a[0],g=f[h];if(0>(m?t(m,g):l(s,g))){for(r=u,(m||s).push(g);--r;)if(m=a[r],0>(m?t(m,g):l(e[r],g)))continue n;y.push(g)
|
41
|
+
}}for(;u--;)(m=a[u])&&p(m);return c(a),c(s),y},v.invert=_t,v.invoke=function(n,t){var e=s(arguments,2),r=-1,u=typeof t=="function",o=n?n.length:0,a=Yt(typeof o=="number"?o:0);return It(n,function(n){a[++r]=(u?t:n[t]).apply(n,e)}),a},v.keys=qe,v.map=Nt,v.mapValues=function(n,t,e){var r={};return t=v.createCallback(t,e,3),Ze(n,function(n,e,u){r[e]=t(n,e,u)}),r},v.max=Bt,v.memoize=function(n,t){if(!wt(n))throw new ie;var e=function(){var r=e.cache,u=t?t.apply(this,arguments):b+arguments[0];return _e.call(r,u)?r[u]:r[u]=n.apply(this,arguments)
|
42
|
+
};return e.cache={},e},v.merge=function(n){var t=arguments,e=2;if(!jt(n))return n;if("number"!=typeof t[2]&&(e=t.length),3<e&&"function"==typeof t[e-2])var r=tt(t[--e-1],t[e--],2);else 2<e&&"function"==typeof t[e-1]&&(r=t[--e]);for(var t=s(arguments,1,e),u=-1,o=i(),a=i();++u<e;)it(n,t[u],r,o,a);return c(o),c(a),n},v.min=function(n,t,e){var u=1/0,o=u;if(typeof t!="function"&&e&&e[t]===n&&(t=null),null==t&&Le(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i<o&&(o=i)}}else t=null==t&&Ct(n)?r:v.createCallback(t,e,3),Ue(n,function(n,e,r){e=t(n,e,r),e<u&&(u=e,o=n)
|
43
|
+
});return o},v.omit=function(n,t,e){var r={};if(typeof t!="function"){var u=[];Ye(n,function(n,t){u.push(t)});for(var u=rt(u,ot(arguments,true,false,1)),o=-1,a=u.length;++o<a;){var i=u[o];r[i]=n[i]}}else t=v.createCallback(t,e,3),Ye(n,function(n,e,u){t(n,e,u)||(r[e]=n)});return r},v.once=function(n){var t,e;if(!wt(n))throw new ie;return function(){return t?e:(t=true,e=n.apply(this,arguments),n=null,e)}},v.pairs=function(n){for(var t=-1,e=qe(n),r=e.length,u=Yt(r);++t<r;){var o=e[t];u[t]=[o,n[o]]}return u
|
44
|
+
},v.partial=function(n){return pt(n,16,s(arguments,1))},v.partialRight=function(n){return pt(n,32,null,s(arguments,1))},v.pick=function(n,t,e){var r={};if(typeof t!="function")for(var u=-1,o=ot(arguments,true,false,1),a=jt(n)?o.length:0;++u<a;){var i=o[u];i in n&&(r[i]=n[i])}else t=v.createCallback(t,e,3),Ye(n,function(n,e,u){t(n,e,u)&&(r[e]=n)});return r},v.pluck=ur,v.property=Qt,v.pull=function(n){for(var t=arguments,e=0,r=t.length,u=n?n.length:0;++e<r;)for(var o=-1,a=t[e];++o<u;)n[o]===a&&(Ce.call(n,o--,1),u--);
|
45
|
+
return n},v.range=function(n,t,e){n=+n||0,e=typeof e=="number"?e:+e||1,null==t&&(t=n,n=0);var r=-1;t=De(0,ve((t-n)/(e||1)));for(var u=Yt(t);++r<t;)u[r]=n,n+=e;return u},v.reject=function(n,t,e){return t=v.createCallback(t,e,3),St(n,function(n,e,r){return!t(n,e,r)})},v.remove=function(n,t,e){var r=-1,u=n?n.length:0,o=[];for(t=v.createCallback(t,e,3);++r<u;)e=n[r],t(e,r,n)&&(o.push(e),Ce.call(n,r--,1),u--);return o},v.rest=zt,v.shuffle=Ft,v.sortBy=function(n,t,e){var r=-1,o=Le(t),a=n?n.length:0,f=Yt(typeof a=="number"?a:0);
|
46
|
+
for(o||(t=v.createCallback(t,e,3)),It(n,function(n,e,u){var a=f[++r]=l();o?a.m=Nt(t,function(t){return n[t]}):(a.m=i())[0]=t(n,e,u),a.n=r,a.o=n}),a=f.length,f.sort(u);a--;)n=f[a],f[a]=n.o,o||c(n.m),p(n);return f},v.tap=function(n,t){return t(n),n},v.throttle=function(n,t,e){var r=true,u=true;if(!wt(n))throw new ie;return false===e?r=false:jt(e)&&(r="leading"in e?e.leading:r,u="trailing"in e?e.trailing:u),H.leading=r,H.maxWait=t,H.trailing=u,Mt(n,t,H)},v.times=function(n,t,e){n=-1<(n=+n)?n:0;var r=-1,u=Yt(n);
|
47
|
+
for(t=tt(t,e,1);++r<n;)u[r]=t(r);return u},v.toArray=function(n){return n&&typeof n.length=="number"?Te.unindexedChars&&Ct(n)?n.split(""):s(n):kt(n)},v.transform=function(n,t,e,r){var u=Le(n);if(null==e)if(u)e=[];else{var o=n&&n.constructor;e=nt(o&&o.prototype)}return t&&(t=v.createCallback(t,r,4),(u?Ue:Ze)(n,function(n,r,u){return t(e,n,r,u)})),e},v.union=function(){return ft(ot(arguments,true,true))},v.uniq=Kt,v.values=kt,v.where=St,v.without=function(n){return rt(n,s(arguments,1))},v.wrap=function(n,t){return pt(t,16,[n])
|
48
|
+
},v.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var e=arguments[n];if(Le(e)||mt(e))var r=r?ft(rt(r,e).concat(rt(e,r))):e}return r||[]},v.zip=Wt,v.zipObject=Gt,v.collect=Nt,v.drop=zt,v.each=It,v.eachRight=Dt,v.extend=Qe,v.methods=bt,v.object=Gt,v.select=St,v.tail=zt,v.unique=Kt,v.unzip=Wt,Ht(v),v.clone=function(n,t,e,r){return typeof t!="boolean"&&null!=t&&(r=e,e=t,t=false),Y(n,t,typeof e=="function"&&tt(e,r,1))},v.cloneDeep=function(n,t,e){return Y(n,true,typeof t=="function"&&tt(t,e,1))},v.contains=Et,v.escape=function(n){return null==n?"":ae(n).replace(He,gt)
|
49
|
+
},v.every=Ot,v.find=At,v.findIndex=function(n,t,e){var r=-1,u=n?n.length:0;for(t=v.createCallback(t,e,3);++r<u;)if(t(n[r],r,n))return r;return-1},v.findKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),Ze(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.findLast=function(n,t,e){var r;return t=v.createCallback(t,e,3),Dt(n,function(n,e,u){return t(n,e,u)?(r=n,false):void 0}),r},v.findLastIndex=function(n,t,e){var r=n?n.length:0;for(t=v.createCallback(t,e,3);r--;)if(t(n[r],r,n))return r;
|
50
|
+
return-1},v.findLastKey=function(n,t,e){var r;return t=v.createCallback(t,e,3),dt(n,function(n,e,u){return t(n,e,u)?(r=e,false):void 0}),r},v.has=function(n,t){return n?_e.call(n,t):false},v.identity=Vt,v.indexOf=Lt,v.isArguments=mt,v.isArray=Le,v.isBoolean=function(n){return true===n||false===n||n&&typeof n=="object"&&ge.call(n)==L||false},v.isDate=function(n){return n&&typeof n=="object"&&ge.call(n)==z||false},v.isElement=function(n){return n&&1===n.nodeType||false},v.isEmpty=function(n){var t=true;if(!n)return t;var e=ge.call(n),r=n.length;
|
51
|
+
return e==$||e==M||(Te.argsClass?e==T:mt(n))||e==G&&typeof r=="number"&&wt(n.splice)?!r:(Ze(n,function(){return t=false}),t)},v.isEqual=function(n,t,e,r){return at(n,t,typeof e=="function"&&tt(e,r,2))},v.isFinite=function(n){return Se(n)&&!Ae(parseFloat(n))},v.isFunction=wt,v.isNaN=function(n){return xt(n)&&n!=+n},v.isNull=function(n){return null===n},v.isNumber=xt,v.isObject=jt,v.isPlainObject=nr,v.isRegExp=function(n){return n&&X[typeof n]&&ge.call(n)==J||false},v.isString=Ct,v.isUndefined=function(n){return typeof n=="undefined"
|
52
|
+
},v.lastIndexOf=function(n,t,e){var r=n?n.length:0;for(typeof e=="number"&&(r=(0>e?De(0,r+e):Ne(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},v.mixin=Ht,v.noConflict=function(){return e._=se,this},v.noop=Ut,v.now=or,v.parseInt=ar,v.random=function(n,t,e){var r=null==n,u=null==t;return null==e&&(typeof n=="boolean"&&u?(e=n,n=1):u||typeof t!="boolean"||(e=t,u=true)),r&&u&&(t=1),n=+n||0,u?(t=n,n=0):t=+t||0,e||n%1||t%1?(e=Pe(),Ne(n+e*(t-n+parseFloat("1e-"+((e+"").length-1))),t)):lt(n,t)},v.reduce=Pt,v.reduceRight=Rt,v.result=function(n,t){if(n){var e=n[t];
|
53
|
+
return wt(e)?n[t]():e}},v.runInContext=g,v.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:qe(n).length},v.some=Tt,v.sortedIndex=qt,v.template=function(n,t,e){var r=v.templateSettings;n=ae(n||""),e=Xe({},e,r);var u,o=Xe({},e.imports,r.imports),r=qe(o),o=kt(o),i=0,l=e.interpolate||N,f="__p+='",l=oe((e.escape||N).source+"|"+l.source+"|"+(l===I?O:N).source+"|"+(e.evaluate||N).source+"|$","g");n.replace(l,function(t,e,r,o,l,c){return r||(r=o),f+=n.slice(i,c).replace(P,a),e&&(f+="'+__e("+e+")+'"),l&&(u=true,f+="';"+l+";\n__p+='"),r&&(f+="'+((__t=("+r+"))==null?'':__t)+'"),i=c+t.length,t
|
54
|
+
}),f+="';",l=e=e.variable,l||(e="obj",f="with("+e+"){"+f+"}"),f=(u?f.replace(x,""):f).replace(C,"$1").replace(E,"$1;"),f="function("+e+"){"+(l?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(u?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+f+"return __p}";try{var c=te(r,"return "+f).apply(h,o)}catch(p){throw p.source=f,p}return t?c(t):(c.source=f,c)},v.unescape=function(n){return null==n?"":ae(n).replace(Ve,yt)},v.uniqueId=function(n){var t=++m;return ae(null==n?"":n)+t
|
55
|
+
},v.all=Ot,v.any=Tt,v.detect=At,v.findWhere=At,v.foldl=Pt,v.foldr=Rt,v.include=Et,v.inject=Pt,Ht(function(){var n={};return Ze(v,function(t,e){v.prototype[e]||(n[e]=t)}),n}(),false),v.first=$t,v.last=function(n,t,e){var r=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=v.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else if(r=t,null==r||e)return n?n[u-1]:h;return s(n,De(0,u-r))},v.sample=function(n,t,e){return n&&typeof n.length!="number"?n=kt(n):Te.unindexedChars&&Ct(n)&&(n=n.split("")),null==t||e?n?n[lt(0,n.length-1)]:h:(n=Ft(n),n.length=Ne(De(0,t),n.length),n)
|
56
|
+
},v.take=$t,v.head=$t,Ze(v,function(n,t){var e="sample"!==t;v.prototype[t]||(v.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 y(o,u):o})}),v.VERSION="2.4.0",v.prototype.chain=function(){return this.__chain__=true,this},v.prototype.toString=function(){return ae(this.__wrapped__)},v.prototype.value=Xt,v.prototype.valueOf=Xt,Ue(["join","pop","shift"],function(n){var t=le[n];v.prototype[n]=function(){var n=this.__chain__,e=t.apply(this.__wrapped__,arguments);
|
57
|
+
return n?new y(e,n):e}}),Ue(["push","reverse","sort","unshift"],function(n){var t=le[n];v.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Ue(["concat","slice","splice"],function(n){var t=le[n];v.prototype[n]=function(){return new y(t.apply(this.__wrapped__,arguments),this.__chain__)}}),Te.spliceObjects||Ue(["pop","shift","splice"],function(n){var t=le[n],e="splice"==n;v.prototype[n]=function(){var n=this.__chain__,r=this.__wrapped__,u=t.apply(r,arguments);return 0===r.length&&delete r[0],n||e?new y(u,n):u
|
58
|
+
}}),v}var h,v=[],y=[],m=0,d={},b=+new Date+"",_=75,w=40,j=" \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",x=/\b__p\+='';/g,C=/\b(__p\+=)''\+/g,E=/(__e\(.*?\)|\b__t\))\+'';/g,O=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,S=/\w*$/,A=/^\s*function[ \n\r\t]+\w/,I=/<%=([\s\S]+?)%>/g,D=RegExp("^["+j+"]*0+(?=.$)"),N=/($^)/,B=/\bthis\b/,P=/['\n\r\t\u2028\u2029\\]/g,R="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setTimeout".split(" "),F="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),T="[object Arguments]",$="[object Array]",L="[object Boolean]",z="[object Date]",q="[object Error]",K="[object Function]",W="[object Number]",G="[object Object]",J="[object RegExp]",M="[object String]",V={};
|
59
|
+
V[K]=false,V[T]=V[$]=V[L]=V[z]=V[W]=V[G]=V[J]=V[M]=true;var H={leading:false,maxWait:0,trailing:false},U={configurable:false,enumerable:false,value:null,writable:false},Q={a:"",b:null,c:"",d:"",e:"",v:null,g:"",h:null,support:null,i:"",j:false},X={"boolean":false,"function":true,object:true,number:false,string:false,undefined:false},Y={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},Z=X[typeof window]&&window||this,nt=X[typeof exports]&&exports&&!exports.nodeType&&exports,tt=X[typeof module]&&module&&!module.nodeType&&module,et=tt&&tt.exports===nt&&nt,rt=X[typeof global]&&global;
|
58
60
|
!rt||rt.global!==rt&&rt.window!==rt||(Z=rt);var ut=g();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Z._=ut, define(function(){return ut})):nt&&tt?et?(tt.exports=ut)._=ut:nt._=ut:Z._=ut}).call(this);
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
2
|
* @license
|
3
|
-
* Lo-Dash 2.
|
3
|
+
* Lo-Dash 2.4.0 (Custom Build) <http://lodash.com/>
|
4
4
|
* Build: `lodash modern -o ./dist/lodash.js`
|
5
5
|
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
6
6
|
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
@@ -47,7 +47,7 @@
|
|
47
47
|
|
48
48
|
/**
|
49
49
|
* Used to match ES6 template delimiters
|
50
|
-
* http://people.mozilla.org/~jorendorff/es6-draft.html#sec-
|
50
|
+
* http://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-string-literals
|
51
51
|
*/
|
52
52
|
var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
|
53
53
|
|
@@ -76,7 +76,7 @@
|
|
76
76
|
var contextProps = [
|
77
77
|
'Array', 'Boolean', 'Date', 'Function', 'Math', 'Number', 'Object',
|
78
78
|
'RegExp', 'String', '_', 'attachEvent', 'clearTimeout', 'isFinite', 'isNaN',
|
79
|
-
'parseInt', '
|
79
|
+
'parseInt', 'setTimeout'
|
80
80
|
];
|
81
81
|
|
82
82
|
/** Used to make template sourceURLs easier to identify */
|
@@ -256,22 +256,29 @@
|
|
256
256
|
*/
|
257
257
|
function compareAscending(a, b) {
|
258
258
|
var ac = a.criteria,
|
259
|
-
bc = b.criteria
|
259
|
+
bc = b.criteria,
|
260
|
+
index = -1,
|
261
|
+
length = ac.length;
|
260
262
|
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
263
|
+
while (++index < length) {
|
264
|
+
var value = ac[index],
|
265
|
+
other = bc[index];
|
266
|
+
|
267
|
+
if (value !== other) {
|
268
|
+
if (value > other || typeof value == 'undefined') {
|
269
|
+
return 1;
|
270
|
+
}
|
271
|
+
if (value < other || typeof other == 'undefined') {
|
272
|
+
return -1;
|
273
|
+
}
|
269
274
|
}
|
270
275
|
}
|
271
|
-
//
|
272
|
-
//
|
273
|
-
//
|
274
|
-
//
|
276
|
+
// Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
|
277
|
+
// that causes it, under certain circumstances, to return the same value for
|
278
|
+
// `a` and `b`. See https://github.com/jashkenas/underscore/pull/1247
|
279
|
+
//
|
280
|
+
// This also ensures a stable sort in V8 and other engines.
|
281
|
+
// See http://code.google.com/p/v8/issues/detail?id=90
|
275
282
|
return a.index - b.index;
|
276
283
|
}
|
277
284
|
|
@@ -472,15 +479,10 @@
|
|
472
479
|
fnToString = Function.prototype.toString,
|
473
480
|
getPrototypeOf = reNative.test(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf,
|
474
481
|
hasOwnProperty = objectProto.hasOwnProperty,
|
475
|
-
now = reNative.test(now = Date.now) && now || function() { return +new Date; },
|
476
482
|
push = arrayRef.push,
|
477
483
|
setTimeout = context.setTimeout,
|
478
484
|
splice = arrayRef.splice;
|
479
485
|
|
480
|
-
/** Used to detect `setImmediate` in Node.js */
|
481
|
-
var setImmediate = typeof (setImmediate = freeGlobal && moduleExports && freeGlobal.setImmediate) == 'function' &&
|
482
|
-
!reNative.test(setImmediate) && setImmediate;
|
483
|
-
|
484
486
|
/** Used to set meta data on functions */
|
485
487
|
var defineProperty = (function() {
|
486
488
|
// IE 8 only accepts DOM elements
|
@@ -2144,22 +2146,22 @@
|
|
2144
2146
|
}
|
2145
2147
|
|
2146
2148
|
/**
|
2147
|
-
* Checks if the specified
|
2149
|
+
* Checks if the specified property name exists as a direct property of `object`,
|
2148
2150
|
* instead of an inherited property.
|
2149
2151
|
*
|
2150
2152
|
* @static
|
2151
2153
|
* @memberOf _
|
2152
2154
|
* @category Objects
|
2153
|
-
* @param {Object} object The object to
|
2154
|
-
* @param {string}
|
2155
|
+
* @param {Object} object The object to inspect.
|
2156
|
+
* @param {string} key The name of the property to check.
|
2155
2157
|
* @returns {boolean} Returns `true` if key is a direct property, else `false`.
|
2156
2158
|
* @example
|
2157
2159
|
*
|
2158
2160
|
* _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b');
|
2159
2161
|
* // => true
|
2160
2162
|
*/
|
2161
|
-
function has(object,
|
2162
|
-
return object ? hasOwnProperty.call(object,
|
2163
|
+
function has(object, key) {
|
2164
|
+
return object ? hasOwnProperty.call(object, key) : false;
|
2163
2165
|
}
|
2164
2166
|
|
2165
2167
|
/**
|
@@ -2172,7 +2174,7 @@
|
|
2172
2174
|
* @returns {Object} Returns the created inverted object.
|
2173
2175
|
* @example
|
2174
2176
|
*
|
2175
|
-
*
|
2177
|
+
* _.invert({ 'first': 'fred', 'second': 'barney' });
|
2176
2178
|
* // => { 'fred': 'first', 'barney': 'second' }
|
2177
2179
|
*/
|
2178
2180
|
function invert(object) {
|
@@ -2557,6 +2559,52 @@
|
|
2557
2559
|
return typeof value == 'undefined';
|
2558
2560
|
}
|
2559
2561
|
|
2562
|
+
/**
|
2563
|
+
* Creates an object with the same keys as `object` and values generated by
|
2564
|
+
* running each own enumerable property of `object` through the callback.
|
2565
|
+
* The callback is bound to `thisArg` and invoked with three arguments;
|
2566
|
+
* (value, key, object).
|
2567
|
+
*
|
2568
|
+
* If a property name is provided for `callback` the created "_.pluck" style
|
2569
|
+
* callback will return the property value of the given element.
|
2570
|
+
*
|
2571
|
+
* If an object is provided for `callback` the created "_.where" style callback
|
2572
|
+
* will return `true` for elements that have the properties of the given object,
|
2573
|
+
* else `false`.
|
2574
|
+
*
|
2575
|
+
* @static
|
2576
|
+
* @memberOf _
|
2577
|
+
* @category Objects
|
2578
|
+
* @param {Object} object The object to iterate over.
|
2579
|
+
* @param {Function|Object|string} [callback=identity] The function called
|
2580
|
+
* per iteration. If a property name or object is provided it will be used
|
2581
|
+
* to create a "_.pluck" or "_.where" style callback, respectively.
|
2582
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
2583
|
+
* @returns {Array} Returns a new object with values of the results of each `callback` execution.
|
2584
|
+
* @example
|
2585
|
+
*
|
2586
|
+
* _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
|
2587
|
+
* // => { 'a': 3, 'b': 6, 'c': 9 }
|
2588
|
+
*
|
2589
|
+
* var characters = {
|
2590
|
+
* 'fred': { 'name': 'fred', 'age': 40 },
|
2591
|
+
* 'pebbles': { 'name': 'pebbles', 'age': 1 }
|
2592
|
+
* };
|
2593
|
+
*
|
2594
|
+
* // using "_.pluck" callback shorthand
|
2595
|
+
* _.mapValues(characters, 'age');
|
2596
|
+
* // => { 'fred': 40, 'pebbles': 1 }
|
2597
|
+
*/
|
2598
|
+
function mapValues(object, callback, thisArg) {
|
2599
|
+
var result = {};
|
2600
|
+
callback = lodash.createCallback(callback, thisArg, 3);
|
2601
|
+
|
2602
|
+
forOwn(object, function(value, key, object) {
|
2603
|
+
result[key] = callback(value, key, object);
|
2604
|
+
});
|
2605
|
+
return result;
|
2606
|
+
}
|
2607
|
+
|
2560
2608
|
/**
|
2561
2609
|
* Recursively merges own enumerable properties of the source object(s), that
|
2562
2610
|
* don't resolve to `undefined` into the destination object. Subsequent sources
|
@@ -2615,7 +2663,6 @@
|
|
2615
2663
|
if (!isObject(object)) {
|
2616
2664
|
return object;
|
2617
2665
|
}
|
2618
|
-
|
2619
2666
|
// allows working with `_.reduce` and `_.reduceRight` without using
|
2620
2667
|
// their `index` and `collection` arguments
|
2621
2668
|
if (typeof args[2] != 'number') {
|
@@ -2772,11 +2819,11 @@
|
|
2772
2819
|
|
2773
2820
|
/**
|
2774
2821
|
* An alternative to `_.reduce` this method transforms `object` to a new
|
2775
|
-
* `accumulator` object which is the result of running each of its
|
2776
|
-
* through a callback, with each callback execution
|
2777
|
-
* the `accumulator` object. The callback is bound to
|
2778
|
-
* with four arguments; (accumulator, value, key, object).
|
2779
|
-
* iteration early by explicitly returning `false`.
|
2822
|
+
* `accumulator` object which is the result of running each of its own
|
2823
|
+
* enumerable properties through a callback, with each callback execution
|
2824
|
+
* potentially mutating the `accumulator` object. The callback is bound to
|
2825
|
+
* `thisArg` and invoked with four arguments; (accumulator, value, key, object).
|
2826
|
+
* Callbacks may exit iteration early by explicitly returning `false`.
|
2780
2827
|
*
|
2781
2828
|
* @static
|
2782
2829
|
* @memberOf _
|
@@ -3608,7 +3655,7 @@
|
|
3608
3655
|
* @type Function
|
3609
3656
|
* @category Collections
|
3610
3657
|
* @param {Array|Object|string} collection The collection to iterate over.
|
3611
|
-
* @param {string} property The property to pluck.
|
3658
|
+
* @param {string} property The name of the property to pluck.
|
3612
3659
|
* @returns {Array} Returns a new array of property values.
|
3613
3660
|
* @example
|
3614
3661
|
*
|
@@ -3620,18 +3667,7 @@
|
|
3620
3667
|
* _.pluck(characters, 'name');
|
3621
3668
|
* // => ['barney', 'fred']
|
3622
3669
|
*/
|
3623
|
-
|
3624
|
-
var index = -1,
|
3625
|
-
length = collection ? collection.length : 0;
|
3626
|
-
|
3627
|
-
if (typeof length == 'number') {
|
3628
|
-
var result = Array(length);
|
3629
|
-
while (++index < length) {
|
3630
|
-
result[index] = collection[index][property];
|
3631
|
-
}
|
3632
|
-
}
|
3633
|
-
return result || map(collection, property);
|
3634
|
-
}
|
3670
|
+
var pluck = map;
|
3635
3671
|
|
3636
3672
|
/**
|
3637
3673
|
* Reduces a collection to a value which is the accumulated result of running
|
@@ -3839,7 +3875,7 @@
|
|
3839
3875
|
* // => 3
|
3840
3876
|
*
|
3841
3877
|
* _.size('pebbles');
|
3842
|
-
* // =>
|
3878
|
+
* // => 7
|
3843
3879
|
*/
|
3844
3880
|
function size(collection) {
|
3845
3881
|
var length = collection ? collection.length : 0;
|
@@ -3919,6 +3955,9 @@
|
|
3919
3955
|
* If a property name is provided for `callback` the created "_.pluck" style
|
3920
3956
|
* callback will return the property value of the given element.
|
3921
3957
|
*
|
3958
|
+
* If an array of property names is provided for `callback` the collection
|
3959
|
+
* will be sorted by each property value.
|
3960
|
+
*
|
3922
3961
|
* If an object is provided for `callback` the created "_.where" style callback
|
3923
3962
|
* will return `true` for elements that have the properties of the given object,
|
3924
3963
|
* else `false`.
|
@@ -3927,7 +3966,7 @@
|
|
3927
3966
|
* @memberOf _
|
3928
3967
|
* @category Collections
|
3929
3968
|
* @param {Array|Object|string} collection The collection to iterate over.
|
3930
|
-
* @param {Function|Object|string} [callback=identity] The function called
|
3969
|
+
* @param {Array|Function|Object|string} [callback=identity] The function called
|
3931
3970
|
* per iteration. If a property name or object is provided it will be used
|
3932
3971
|
* to create a "_.pluck" or "_.where" style callback, respectively.
|
3933
3972
|
* @param {*} [thisArg] The `this` binding of `callback`.
|
@@ -3940,19 +3979,37 @@
|
|
3940
3979
|
* _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math);
|
3941
3980
|
* // => [3, 1, 2]
|
3942
3981
|
*
|
3982
|
+
* var characters = [
|
3983
|
+
* { 'name': 'barney', 'age': 36 },
|
3984
|
+
* { 'name': 'fred', 'age': 40 },
|
3985
|
+
* { 'name': 'barney', 'age': 26 },
|
3986
|
+
* { 'name': 'fred', 'age': 30 }
|
3987
|
+
* ];
|
3988
|
+
*
|
3943
3989
|
* // using "_.pluck" callback shorthand
|
3944
|
-
* _.sortBy(
|
3945
|
-
* // => ['
|
3990
|
+
* _.map(_.sortBy(characters, 'age'), _.values);
|
3991
|
+
* // => [['barney', 26], ['fred', 30], ['barney', 36], ['fred', 40]]
|
3992
|
+
*
|
3993
|
+
* // sorting by multiple properties
|
3994
|
+
* _.map(_.sortBy(characters, ['name', 'age']), _.values);
|
3995
|
+
* // = > [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]
|
3946
3996
|
*/
|
3947
3997
|
function sortBy(collection, callback, thisArg) {
|
3948
3998
|
var index = -1,
|
3999
|
+
isArr = isArray(callback),
|
3949
4000
|
length = collection ? collection.length : 0,
|
3950
4001
|
result = Array(typeof length == 'number' ? length : 0);
|
3951
4002
|
|
3952
|
-
|
4003
|
+
if (!isArr) {
|
4004
|
+
callback = lodash.createCallback(callback, thisArg, 3);
|
4005
|
+
}
|
3953
4006
|
forEach(collection, function(value, key, collection) {
|
3954
4007
|
var object = result[++index] = getObject();
|
3955
|
-
|
4008
|
+
if (isArr) {
|
4009
|
+
object.criteria = map(callback, function(key) { return value[key]; });
|
4010
|
+
} else {
|
4011
|
+
(object.criteria = getArray())[0] = callback(value, key, collection);
|
4012
|
+
}
|
3956
4013
|
object.index = index;
|
3957
4014
|
object.value = value;
|
3958
4015
|
});
|
@@ -3962,6 +4019,9 @@
|
|
3962
4019
|
while (length--) {
|
3963
4020
|
var object = result[length];
|
3964
4021
|
result[length] = object.value;
|
4022
|
+
if (!isArr) {
|
4023
|
+
releaseArray(object.criteria);
|
4024
|
+
}
|
3965
4025
|
releaseObject(object);
|
3966
4026
|
}
|
3967
4027
|
return result;
|
@@ -3997,7 +4057,7 @@
|
|
3997
4057
|
* @type Function
|
3998
4058
|
* @category Collections
|
3999
4059
|
* @param {Array|Object|string} collection The collection to iterate over.
|
4000
|
-
* @param {Object}
|
4060
|
+
* @param {Object} props The object of property values to filter by.
|
4001
4061
|
* @returns {Array} Returns a new array of elements that have the given properties.
|
4002
4062
|
* @example
|
4003
4063
|
*
|
@@ -4402,29 +4462,34 @@
|
|
4402
4462
|
* @memberOf _
|
4403
4463
|
* @category Arrays
|
4404
4464
|
* @param {...Array} [array] The arrays to inspect.
|
4405
|
-
* @returns {Array} Returns an array of
|
4465
|
+
* @returns {Array} Returns an array of shared values.
|
4406
4466
|
* @example
|
4407
4467
|
*
|
4408
|
-
* _.intersection([1, 2, 3], [
|
4468
|
+
* _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
|
4409
4469
|
* // => [1, 2]
|
4410
4470
|
*/
|
4411
|
-
function intersection(
|
4412
|
-
var args =
|
4413
|
-
argsLength = args.length,
|
4471
|
+
function intersection() {
|
4472
|
+
var args = [],
|
4414
4473
|
argsIndex = -1,
|
4474
|
+
argsLength = arguments.length,
|
4415
4475
|
caches = getArray(),
|
4416
|
-
index = -1,
|
4417
4476
|
indexOf = getIndexOf(),
|
4418
|
-
|
4419
|
-
result = [],
|
4477
|
+
trustIndexOf = indexOf === baseIndexOf,
|
4420
4478
|
seen = getArray();
|
4421
4479
|
|
4422
4480
|
while (++argsIndex < argsLength) {
|
4423
|
-
var value =
|
4424
|
-
|
4425
|
-
(value
|
4426
|
-
|
4481
|
+
var value = arguments[argsIndex];
|
4482
|
+
if (isArray(value) || isArguments(value)) {
|
4483
|
+
args.push(value);
|
4484
|
+
caches.push(trustIndexOf && value.length >= largeArraySize &&
|
4485
|
+
createCache(argsIndex ? args[argsIndex] : seen));
|
4486
|
+
}
|
4427
4487
|
}
|
4488
|
+
var array = args[0],
|
4489
|
+
index = -1,
|
4490
|
+
length = array ? array.length : 0,
|
4491
|
+
result = [];
|
4492
|
+
|
4428
4493
|
outer:
|
4429
4494
|
while (++index < length) {
|
4430
4495
|
var cache = caches[0];
|
@@ -4841,13 +4906,13 @@
|
|
4841
4906
|
* @memberOf _
|
4842
4907
|
* @category Arrays
|
4843
4908
|
* @param {...Array} [array] The arrays to inspect.
|
4844
|
-
* @returns {Array} Returns an array of
|
4909
|
+
* @returns {Array} Returns an array of combined values.
|
4845
4910
|
* @example
|
4846
4911
|
*
|
4847
|
-
* _.union([1, 2, 3], [
|
4848
|
-
* // => [1, 2, 3,
|
4912
|
+
* _.union([1, 2, 3], [5, 2, 1, 4], [2, 1]);
|
4913
|
+
* // => [1, 2, 3, 5, 4]
|
4849
4914
|
*/
|
4850
|
-
function union(
|
4915
|
+
function union() {
|
4851
4916
|
return baseUniq(baseFlatten(arguments, true, true));
|
4852
4917
|
}
|
4853
4918
|
|
@@ -4927,6 +4992,38 @@
|
|
4927
4992
|
return baseDifference(array, slice(arguments, 1));
|
4928
4993
|
}
|
4929
4994
|
|
4995
|
+
/**
|
4996
|
+
* Creates an array that is the smymetric difference of the provided arrays.
|
4997
|
+
* See http://en.wikipedia.org/wiki/Symmetric_difference.
|
4998
|
+
*
|
4999
|
+
* @static
|
5000
|
+
* @memberOf _
|
5001
|
+
* @category Arrays
|
5002
|
+
* @param {...Array} [array] The arrays to inspect.
|
5003
|
+
* @returns {Array} Returns an array of values.
|
5004
|
+
* @example
|
5005
|
+
*
|
5006
|
+
* _.xor([1, 2, 3], [5, 2, 1, 4]);
|
5007
|
+
* // => [3, 5, 4]
|
5008
|
+
*
|
5009
|
+
* _.xor([1, 2, 5], [2, 3, 5], [3, 4, 5]);
|
5010
|
+
* // => [1, 4, 5]
|
5011
|
+
*/
|
5012
|
+
function xor() {
|
5013
|
+
var index = -1,
|
5014
|
+
length = arguments.length;
|
5015
|
+
|
5016
|
+
while (++index < length) {
|
5017
|
+
var array = arguments[index];
|
5018
|
+
if (isArray(array) || isArguments(array)) {
|
5019
|
+
var result = result
|
5020
|
+
? baseUniq(baseDifference(result, array).concat(baseDifference(array, result)))
|
5021
|
+
: array;
|
5022
|
+
}
|
5023
|
+
}
|
5024
|
+
return result || [];
|
5025
|
+
}
|
5026
|
+
|
4930
5027
|
/**
|
4931
5028
|
* Creates an array of grouped elements, the first of which contains the first
|
4932
5029
|
* elements of the given arrays, the second of which contains the second
|
@@ -4978,6 +5075,9 @@
|
|
4978
5075
|
length = keys ? keys.length : 0,
|
4979
5076
|
result = {};
|
4980
5077
|
|
5078
|
+
if (!values && length && !isArray(keys[0])) {
|
5079
|
+
values = [];
|
5080
|
+
}
|
4981
5081
|
while (++index < length) {
|
4982
5082
|
var key = keys[index];
|
4983
5083
|
if (values) {
|
@@ -5070,8 +5170,8 @@
|
|
5070
5170
|
* @example
|
5071
5171
|
*
|
5072
5172
|
* var view = {
|
5073
|
-
*
|
5074
|
-
*
|
5173
|
+
* 'label': 'docs',
|
5174
|
+
* 'onClick': function() { console.log('clicked ' + this.label); }
|
5075
5175
|
* };
|
5076
5176
|
*
|
5077
5177
|
* _.bindAll(view);
|
@@ -5180,74 +5280,6 @@
|
|
5180
5280
|
};
|
5181
5281
|
}
|
5182
5282
|
|
5183
|
-
/**
|
5184
|
-
* Produces a callback bound to an optional `thisArg`. If `func` is a property
|
5185
|
-
* name the created callback will return the property value for a given element.
|
5186
|
-
* If `func` is an object the created callback will return `true` for elements
|
5187
|
-
* that contain the equivalent object properties, otherwise it will return `false`.
|
5188
|
-
*
|
5189
|
-
* @static
|
5190
|
-
* @memberOf _
|
5191
|
-
* @category Functions
|
5192
|
-
* @param {*} [func=identity] The value to convert to a callback.
|
5193
|
-
* @param {*} [thisArg] The `this` binding of the created callback.
|
5194
|
-
* @param {number} [argCount] The number of arguments the callback accepts.
|
5195
|
-
* @returns {Function} Returns a callback function.
|
5196
|
-
* @example
|
5197
|
-
*
|
5198
|
-
* var characters = [
|
5199
|
-
* { 'name': 'barney', 'age': 36 },
|
5200
|
-
* { 'name': 'fred', 'age': 40 }
|
5201
|
-
* ];
|
5202
|
-
*
|
5203
|
-
* // wrap to create custom callback shorthands
|
5204
|
-
* _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
|
5205
|
-
* var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
|
5206
|
-
* return !match ? func(callback, thisArg) : function(object) {
|
5207
|
-
* return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
|
5208
|
-
* };
|
5209
|
-
* });
|
5210
|
-
*
|
5211
|
-
* _.filter(characters, 'age__gt38');
|
5212
|
-
* // => [{ 'name': 'fred', 'age': 40 }]
|
5213
|
-
*/
|
5214
|
-
function createCallback(func, thisArg, argCount) {
|
5215
|
-
var type = typeof func;
|
5216
|
-
if (func == null || type == 'function') {
|
5217
|
-
return baseCreateCallback(func, thisArg, argCount);
|
5218
|
-
}
|
5219
|
-
// handle "_.pluck" style callback shorthands
|
5220
|
-
if (type != 'object') {
|
5221
|
-
return function(object) {
|
5222
|
-
return object[func];
|
5223
|
-
};
|
5224
|
-
}
|
5225
|
-
var props = keys(func),
|
5226
|
-
key = props[0],
|
5227
|
-
a = func[key];
|
5228
|
-
|
5229
|
-
// handle "_.where" style callback shorthands
|
5230
|
-
if (props.length == 1 && a === a && !isObject(a)) {
|
5231
|
-
// fast path the common case of providing an object with a single
|
5232
|
-
// property containing a primitive value
|
5233
|
-
return function(object) {
|
5234
|
-
var b = object[key];
|
5235
|
-
return a === b && (a !== 0 || (1 / a == 1 / b));
|
5236
|
-
};
|
5237
|
-
}
|
5238
|
-
return function(object) {
|
5239
|
-
var length = props.length,
|
5240
|
-
result = false;
|
5241
|
-
|
5242
|
-
while (length--) {
|
5243
|
-
if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
|
5244
|
-
break;
|
5245
|
-
}
|
5246
|
-
}
|
5247
|
-
return result;
|
5248
|
-
};
|
5249
|
-
}
|
5250
|
-
|
5251
5283
|
/**
|
5252
5284
|
* Creates a function which accepts one or more arguments of `func` that when
|
5253
5285
|
* invoked either executes `func` returning its result, if all `func` arguments
|
@@ -5433,8 +5465,8 @@
|
|
5433
5465
|
* @returns {number} Returns the timer id.
|
5434
5466
|
* @example
|
5435
5467
|
*
|
5436
|
-
* _.defer(function() { console.log(
|
5437
|
-
* //
|
5468
|
+
* _.defer(function(text) { console.log(text); }, 'deferred');
|
5469
|
+
* // logs 'deferred' after one or more milliseconds
|
5438
5470
|
*/
|
5439
5471
|
function defer(func) {
|
5440
5472
|
if (!isFunction(func)) {
|
@@ -5443,15 +5475,6 @@
|
|
5443
5475
|
var args = slice(arguments, 1);
|
5444
5476
|
return setTimeout(function() { func.apply(undefined, args); }, 1);
|
5445
5477
|
}
|
5446
|
-
// use `setImmediate` if available in Node.js
|
5447
|
-
if (setImmediate) {
|
5448
|
-
defer = function(func) {
|
5449
|
-
if (!isFunction(func)) {
|
5450
|
-
throw new TypeError;
|
5451
|
-
}
|
5452
|
-
return setImmediate.apply(context, arguments);
|
5453
|
-
};
|
5454
|
-
}
|
5455
5478
|
|
5456
5479
|
/**
|
5457
5480
|
* Executes the `func` function after `wait` milliseconds. Additional arguments
|
@@ -5466,9 +5489,8 @@
|
|
5466
5489
|
* @returns {number} Returns the timer id.
|
5467
5490
|
* @example
|
5468
5491
|
*
|
5469
|
-
*
|
5470
|
-
*
|
5471
|
-
* // => 'logged later' (Appears after one second.)
|
5492
|
+
* _.delay(function(text) { console.log(text); }, 1000, 'later');
|
5493
|
+
* // => logs 'later' after one second
|
5472
5494
|
*/
|
5473
5495
|
function delay(func, wait) {
|
5474
5496
|
if (!isFunction(func)) {
|
@@ -5699,6 +5721,93 @@
|
|
5699
5721
|
|
5700
5722
|
/*--------------------------------------------------------------------------*/
|
5701
5723
|
|
5724
|
+
/**
|
5725
|
+
* Creates a function that returns `value`.
|
5726
|
+
*
|
5727
|
+
* @static
|
5728
|
+
* @memberOf _
|
5729
|
+
* @category Utilities
|
5730
|
+
* @param {*} value The value to return from the new function.
|
5731
|
+
* @returns {Function} Returns the new function.
|
5732
|
+
* @example
|
5733
|
+
*
|
5734
|
+
* var object = { 'name': 'fred' };
|
5735
|
+
* var getter = _.constant(object);
|
5736
|
+
* getter() === object;
|
5737
|
+
* // => true
|
5738
|
+
*/
|
5739
|
+
function constant(value) {
|
5740
|
+
return function() {
|
5741
|
+
return value;
|
5742
|
+
};
|
5743
|
+
}
|
5744
|
+
|
5745
|
+
/**
|
5746
|
+
* Produces a callback bound to an optional `thisArg`. If `func` is a property
|
5747
|
+
* name the created callback will return the property value for a given element.
|
5748
|
+
* If `func` is an object the created callback will return `true` for elements
|
5749
|
+
* that contain the equivalent object properties, otherwise it will return `false`.
|
5750
|
+
*
|
5751
|
+
* @static
|
5752
|
+
* @memberOf _
|
5753
|
+
* @category Utilities
|
5754
|
+
* @param {*} [func=identity] The value to convert to a callback.
|
5755
|
+
* @param {*} [thisArg] The `this` binding of the created callback.
|
5756
|
+
* @param {number} [argCount] The number of arguments the callback accepts.
|
5757
|
+
* @returns {Function} Returns a callback function.
|
5758
|
+
* @example
|
5759
|
+
*
|
5760
|
+
* var characters = [
|
5761
|
+
* { 'name': 'barney', 'age': 36 },
|
5762
|
+
* { 'name': 'fred', 'age': 40 }
|
5763
|
+
* ];
|
5764
|
+
*
|
5765
|
+
* // wrap to create custom callback shorthands
|
5766
|
+
* _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
|
5767
|
+
* var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
|
5768
|
+
* return !match ? func(callback, thisArg) : function(object) {
|
5769
|
+
* return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
|
5770
|
+
* };
|
5771
|
+
* });
|
5772
|
+
*
|
5773
|
+
* _.filter(characters, 'age__gt38');
|
5774
|
+
* // => [{ 'name': 'fred', 'age': 40 }]
|
5775
|
+
*/
|
5776
|
+
function createCallback(func, thisArg, argCount) {
|
5777
|
+
var type = typeof func;
|
5778
|
+
if (func == null || type == 'function') {
|
5779
|
+
return baseCreateCallback(func, thisArg, argCount);
|
5780
|
+
}
|
5781
|
+
// handle "_.pluck" style callback shorthands
|
5782
|
+
if (type != 'object') {
|
5783
|
+
return property(func);
|
5784
|
+
}
|
5785
|
+
var props = keys(func),
|
5786
|
+
key = props[0],
|
5787
|
+
a = func[key];
|
5788
|
+
|
5789
|
+
// handle "_.where" style callback shorthands
|
5790
|
+
if (props.length == 1 && a === a && !isObject(a)) {
|
5791
|
+
// fast path the common case of providing an object with a single
|
5792
|
+
// property containing a primitive value
|
5793
|
+
return function(object) {
|
5794
|
+
var b = object[key];
|
5795
|
+
return a === b && (a !== 0 || (1 / a == 1 / b));
|
5796
|
+
};
|
5797
|
+
}
|
5798
|
+
return function(object) {
|
5799
|
+
var length = props.length,
|
5800
|
+
result = false;
|
5801
|
+
|
5802
|
+
while (length--) {
|
5803
|
+
if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
|
5804
|
+
break;
|
5805
|
+
}
|
5806
|
+
}
|
5807
|
+
return result;
|
5808
|
+
};
|
5809
|
+
}
|
5810
|
+
|
5702
5811
|
/**
|
5703
5812
|
* Converts the characters `&`, `<`, `>`, `"`, and `'` in `string` to their
|
5704
5813
|
* corresponding HTML entities.
|
@@ -5736,51 +5845,71 @@
|
|
5736
5845
|
}
|
5737
5846
|
|
5738
5847
|
/**
|
5739
|
-
* Adds function properties of a source object to the
|
5740
|
-
*
|
5848
|
+
* Adds function properties of a source object to the destination object.
|
5849
|
+
* If `object` is a function methods will be added to its prototype as well.
|
5741
5850
|
*
|
5742
5851
|
* @static
|
5743
5852
|
* @memberOf _
|
5744
5853
|
* @category Utilities
|
5745
|
-
* @param {Object} object
|
5746
|
-
* @param {Object}
|
5854
|
+
* @param {Function|Object} [object=lodash] object The destination object.
|
5855
|
+
* @param {Object} source The object of functions to add.
|
5856
|
+
* @param {Object} [options] The options object.
|
5857
|
+
* @param {boolean} [options.chain=true] Specify whether the functions added are chainable.
|
5747
5858
|
* @example
|
5748
5859
|
*
|
5749
|
-
*
|
5750
|
-
*
|
5751
|
-
*
|
5752
|
-
* }
|
5753
|
-
* });
|
5860
|
+
* function capitalize(string) {
|
5861
|
+
* return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
|
5862
|
+
* }
|
5754
5863
|
*
|
5864
|
+
* _.mixin({ 'capitalize': capitalize });
|
5755
5865
|
* _.capitalize('fred');
|
5756
5866
|
* // => 'Fred'
|
5757
5867
|
*
|
5868
|
+
* _('fred').capitalize().value();
|
5869
|
+
* // => 'Fred'
|
5870
|
+
*
|
5871
|
+
* _.mixin({ 'capitalize': capitalize }, { 'chain': false });
|
5758
5872
|
* _('fred').capitalize();
|
5759
5873
|
* // => 'Fred'
|
5760
5874
|
*/
|
5761
|
-
function mixin(object, source) {
|
5762
|
-
var
|
5763
|
-
|
5875
|
+
function mixin(object, source, options) {
|
5876
|
+
var chain = true,
|
5877
|
+
methodNames = source && functions(source);
|
5764
5878
|
|
5765
|
-
if (!source) {
|
5879
|
+
if (!source || (!options && !methodNames.length)) {
|
5880
|
+
if (options == null) {
|
5881
|
+
options = source;
|
5882
|
+
}
|
5766
5883
|
ctor = lodashWrapper;
|
5767
5884
|
source = object;
|
5768
5885
|
object = lodash;
|
5886
|
+
methodNames = functions(source);
|
5769
5887
|
}
|
5770
|
-
|
5888
|
+
if (options === false) {
|
5889
|
+
chain = false;
|
5890
|
+
} else if (isObject(options) && 'chain' in options) {
|
5891
|
+
chain = options.chain;
|
5892
|
+
}
|
5893
|
+
var ctor = object,
|
5894
|
+
isFunc = isFunction(ctor);
|
5895
|
+
|
5896
|
+
forEach(methodNames, function(methodName) {
|
5771
5897
|
var func = object[methodName] = source[methodName];
|
5772
5898
|
if (isFunc) {
|
5773
5899
|
ctor.prototype[methodName] = function() {
|
5774
|
-
var
|
5900
|
+
var chainAll = this.__chain__,
|
5901
|
+
value = this.__wrapped__,
|
5775
5902
|
args = [value];
|
5776
5903
|
|
5777
5904
|
push.apply(args, arguments);
|
5778
5905
|
var result = func.apply(object, args);
|
5779
|
-
if (
|
5780
|
-
|
5906
|
+
if (chain || chainAll) {
|
5907
|
+
if (value === result && isObject(result)) {
|
5908
|
+
return this;
|
5909
|
+
}
|
5910
|
+
result = new ctor(result);
|
5911
|
+
result.__chain__ = chainAll;
|
5781
5912
|
}
|
5782
|
-
result = new ctor(result);
|
5783
|
-
result.__chain__ = this.__chain__;
|
5784
5913
|
return result;
|
5785
5914
|
};
|
5786
5915
|
}
|
@@ -5820,6 +5949,23 @@
|
|
5820
5949
|
// no operation performed
|
5821
5950
|
}
|
5822
5951
|
|
5952
|
+
/**
|
5953
|
+
* Gets the number of milliseconds that have elapsed since the Unix epoch
|
5954
|
+
* (1 January 1970 00:00:00 UTC).
|
5955
|
+
*
|
5956
|
+
* @static
|
5957
|
+
* @memberOf _
|
5958
|
+
* @category Utilities
|
5959
|
+
* @example
|
5960
|
+
*
|
5961
|
+
* var stamp = _.now();
|
5962
|
+
* _.defer(function() { console.log(_.now() - stamp); });
|
5963
|
+
* // => logs the number of milliseconds it took for the deferred function to be called
|
5964
|
+
*/
|
5965
|
+
var now = reNative.test(now = Date.now) && now || function() {
|
5966
|
+
return new Date().getTime();
|
5967
|
+
};
|
5968
|
+
|
5823
5969
|
/**
|
5824
5970
|
* Converts the given value into an integer of the specified radix.
|
5825
5971
|
* If `radix` is `undefined` or `0` a `radix` of `10` is used unless the
|
@@ -5844,6 +5990,36 @@
|
|
5844
5990
|
return nativeParseInt(isString(value) ? value.replace(reLeadingSpacesAndZeros, '') : value, radix || 0);
|
5845
5991
|
};
|
5846
5992
|
|
5993
|
+
/**
|
5994
|
+
* Creates a "_.pluck" style function, which returns the `key` value of a
|
5995
|
+
* given object.
|
5996
|
+
*
|
5997
|
+
* @static
|
5998
|
+
* @memberOf _
|
5999
|
+
* @category Utilities
|
6000
|
+
* @param {string} key The name of the property to retrieve.
|
6001
|
+
* @returns {Function} Returns the new function.
|
6002
|
+
* @example
|
6003
|
+
*
|
6004
|
+
* var characters = [
|
6005
|
+
* { 'name': 'fred', 'age': 40 },
|
6006
|
+
* { 'name': 'barney', 'age': 36 }
|
6007
|
+
* ];
|
6008
|
+
*
|
6009
|
+
* var getName = _.property('name');
|
6010
|
+
*
|
6011
|
+
* _.map(characters, getName);
|
6012
|
+
* // => ['barney', 'fred']
|
6013
|
+
*
|
6014
|
+
* _.sortBy(characters, getName);
|
6015
|
+
* // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
|
6016
|
+
*/
|
6017
|
+
function property(key) {
|
6018
|
+
return function(object) {
|
6019
|
+
return object[key];
|
6020
|
+
};
|
6021
|
+
}
|
6022
|
+
|
5847
6023
|
/**
|
5848
6024
|
* Produces a random number between `min` and `max` (inclusive). If only one
|
5849
6025
|
* argument is provided a number between `0` and the given number will be
|
@@ -5903,7 +6079,7 @@
|
|
5903
6079
|
}
|
5904
6080
|
|
5905
6081
|
/**
|
5906
|
-
* Resolves the value of
|
6082
|
+
* Resolves the value of property `key` on `object`. If `key` is a function
|
5907
6083
|
* it will be invoked with the `this` binding of `object` and its result returned,
|
5908
6084
|
* else the property value is returned. If `object` is falsey then `undefined`
|
5909
6085
|
* is returned.
|
@@ -5912,7 +6088,7 @@
|
|
5912
6088
|
* @memberOf _
|
5913
6089
|
* @category Utilities
|
5914
6090
|
* @param {Object} object The object to inspect.
|
5915
|
-
* @param {string}
|
6091
|
+
* @param {string} key The name of the property to resolve.
|
5916
6092
|
* @returns {*} Returns the resolved value.
|
5917
6093
|
* @example
|
5918
6094
|
*
|
@@ -5929,10 +6105,10 @@
|
|
5929
6105
|
* _.result(object, 'stuff');
|
5930
6106
|
* // => 'nonsense'
|
5931
6107
|
*/
|
5932
|
-
function result(object,
|
6108
|
+
function result(object, key) {
|
5933
6109
|
if (object) {
|
5934
|
-
var value = object[
|
5935
|
-
return isFunction(value) ? object[
|
6110
|
+
var value = object[key];
|
6111
|
+
return isFunction(value) ? object[key]() : value;
|
5936
6112
|
}
|
5937
6113
|
}
|
5938
6114
|
|
@@ -5996,8 +6172,8 @@
|
|
5996
6172
|
* // => 'hello mustache!'
|
5997
6173
|
*
|
5998
6174
|
* // using the `imports` option to import jQuery
|
5999
|
-
* var list = '<%
|
6000
|
-
* _.template(list, { 'people': ['fred', 'barney'] }, { 'imports': { '
|
6175
|
+
* var list = '<% jq.each(people, function(name) { %><li><%- name %></li><% }); %>';
|
6176
|
+
* _.template(list, { 'people': ['fred', 'barney'] }, { 'imports': { 'jq': jQuery } });
|
6001
6177
|
* // => '<li>fred</li><li>barney</li>'
|
6002
6178
|
*
|
6003
6179
|
* // using the `sourceURL` option to specify a custom sourceURL for the template
|
@@ -6276,7 +6452,7 @@
|
|
6276
6452
|
* _(characters).chain()
|
6277
6453
|
* .first()
|
6278
6454
|
* .pick('age')
|
6279
|
-
* .value()
|
6455
|
+
* .value();
|
6280
6456
|
* // => { 'age': 36 }
|
6281
6457
|
*/
|
6282
6458
|
function wrapperChain() {
|
@@ -6329,6 +6505,7 @@
|
|
6329
6505
|
lodash.chain = chain;
|
6330
6506
|
lodash.compact = compact;
|
6331
6507
|
lodash.compose = compose;
|
6508
|
+
lodash.constant = constant;
|
6332
6509
|
lodash.countBy = countBy;
|
6333
6510
|
lodash.create = create;
|
6334
6511
|
lodash.createCallback = createCallback;
|
@@ -6355,6 +6532,7 @@
|
|
6355
6532
|
lodash.invoke = invoke;
|
6356
6533
|
lodash.keys = keys;
|
6357
6534
|
lodash.map = map;
|
6535
|
+
lodash.mapValues = mapValues;
|
6358
6536
|
lodash.max = max;
|
6359
6537
|
lodash.memoize = memoize;
|
6360
6538
|
lodash.merge = merge;
|
@@ -6366,6 +6544,7 @@
|
|
6366
6544
|
lodash.partialRight = partialRight;
|
6367
6545
|
lodash.pick = pick;
|
6368
6546
|
lodash.pluck = pluck;
|
6547
|
+
lodash.property = property;
|
6369
6548
|
lodash.pull = pull;
|
6370
6549
|
lodash.range = range;
|
6371
6550
|
lodash.reject = reject;
|
@@ -6384,6 +6563,7 @@
|
|
6384
6563
|
lodash.where = where;
|
6385
6564
|
lodash.without = without;
|
6386
6565
|
lodash.wrap = wrap;
|
6566
|
+
lodash.xor = xor;
|
6387
6567
|
lodash.zip = zip;
|
6388
6568
|
lodash.zipObject = zipObject;
|
6389
6569
|
|
@@ -6441,6 +6621,7 @@
|
|
6441
6621
|
lodash.mixin = mixin;
|
6442
6622
|
lodash.noConflict = noConflict;
|
6443
6623
|
lodash.noop = noop;
|
6624
|
+
lodash.now = now;
|
6444
6625
|
lodash.parseInt = parseInt;
|
6445
6626
|
lodash.random = random;
|
6446
6627
|
lodash.reduce = reduce;
|
@@ -6464,20 +6645,15 @@
|
|
6464
6645
|
lodash.include = contains;
|
6465
6646
|
lodash.inject = reduce;
|
6466
6647
|
|
6467
|
-
|
6468
|
-
|
6469
|
-
|
6470
|
-
|
6471
|
-
|
6472
|
-
|
6473
|
-
|
6474
|
-
|
6475
|
-
|
6476
|
-
? new lodashWrapper(result, chainAll)
|
6477
|
-
: result;
|
6478
|
-
};
|
6479
|
-
}
|
6480
|
-
});
|
6648
|
+
mixin(function() {
|
6649
|
+
var source = {}
|
6650
|
+
forOwn(lodash, function(func, methodName) {
|
6651
|
+
if (!lodash.prototype[methodName]) {
|
6652
|
+
source[methodName] = func;
|
6653
|
+
}
|
6654
|
+
});
|
6655
|
+
return source;
|
6656
|
+
}(), false);
|
6481
6657
|
|
6482
6658
|
/*--------------------------------------------------------------------------*/
|
6483
6659
|
|
@@ -6513,7 +6689,7 @@
|
|
6513
6689
|
* @memberOf _
|
6514
6690
|
* @type string
|
6515
6691
|
*/
|
6516
|
-
lodash.VERSION = '2.
|
6692
|
+
lodash.VERSION = '2.4.0';
|
6517
6693
|
|
6518
6694
|
// add "Chaining" functions to the wrapper
|
6519
6695
|
lodash.prototype.chain = wrapperChain;
|
@@ -6534,7 +6710,7 @@
|
|
6534
6710
|
};
|
6535
6711
|
});
|
6536
6712
|
|
6537
|
-
// add `Array` functions that return the wrapped value
|
6713
|
+
// add `Array` functions that return the existing wrapped value
|
6538
6714
|
forEach(['push', 'reverse', 'sort', 'unshift'], function(methodName) {
|
6539
6715
|
var func = arrayRef[methodName];
|
6540
6716
|
lodash.prototype[methodName] = function() {
|
@@ -6562,9 +6738,8 @@
|
|
6562
6738
|
// some AMD build optimizers like r.js check for condition patterns like the following:
|
6563
6739
|
if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
|
6564
6740
|
// Expose Lo-Dash to the global object even when an AMD loader is present in
|
6565
|
-
// case Lo-Dash
|
6566
|
-
//
|
6567
|
-
// module by its `noConflict()` method.
|
6741
|
+
// case Lo-Dash is loaded with a RequireJS shim config.
|
6742
|
+
// See http://requirejs.org/docs/api.html#config-shim
|
6568
6743
|
root._ = _;
|
6569
6744
|
|
6570
6745
|
// define as an anonymous module so, through path mapping, it can be
|