lodash-rails 3.7.0 → 3.9.3
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 +755 -693
- data/vendor/assets/javascripts/lodash.compat.min.js +97 -140
- data/vendor/assets/javascripts/lodash.js +752 -683
- data/vendor/assets/javascripts/lodash.min.js +93 -136
- metadata +2 -2
@@ -1,145 +1,102 @@
|
|
1
1
|
/**
|
2
2
|
* @license
|
3
|
-
* lodash 3.
|
3
|
+
* lodash 3.9.3 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
4
4
|
* Build: `lodash compat -o ./lodash.js`
|
5
5
|
*/
|
6
|
-
;(function(){function n(n,t){if(n!==t){var r=
|
7
|
-
return r}function
|
8
|
-
|
9
|
-
}function
|
10
|
-
|
11
|
-
return n
|
12
|
-
|
13
|
-
}function
|
14
|
-
|
15
|
-
}function
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
}),
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
r=
|
28
|
-
|
29
|
-
|
30
|
-
return
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
e=
|
41
|
-
|
42
|
-
|
43
|
-
n(
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
return
|
48
|
-
|
49
|
-
var
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
}function
|
62
|
-
|
63
|
-
return
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
return function(){
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
return
|
82
|
-
return
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
n
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
var i=n[0],c=-1,l=i?i.length:0,s=u[0];n:for(;++c<l;)if(f=i[c],0>(s?qn(s,f):o(a,f,0))){for(t=e;--t;){var p=u[t];if(0>(p?qn(p,f):o(n[t],f,0)))continue n}s&&s.push(f),a.push(f)}return a},Ln.invert=function(n,t,r){r&&Er(n,t,r)&&(t=null),r=-1;for(var e=Ko(n),u=e.length,o={};++r<u;){var i=e[r],a=n[i];t?Ze.call(o,a)?o[a].push(i):o[a]=[i]:o[a]=i}return o},Ln.invoke=_o,Ln.keys=Ko,Ln.keysIn=de,Ln.map=Qr,Ln.mapValues=function(n,t,r){var e={};return t=mr(t,r,3),vt(n,function(n,r,u){e[r]=t(n,r,u)}),e},Ln.matches=function(n){
|
101
|
-
return xt(at(n,true))},Ln.matchesProperty=function(n,t){return At(n,at(t,true))},Ln.memoize=oe,Ln.merge=Vo,Ln.method=ri,Ln.methodOf=ei,Ln.mixin=Re,Ln.negate=function(n){if(typeof n!="function")throw new ze(L);return function(){return!n.apply(this,arguments)}},Ln.omit=Yo,Ln.once=function(n){return ee(2,n)},Ln.pairs=function(n){for(var t=-1,r=Ko(n),e=r.length,u=Te(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},Ln.partial=So,Ln.partialRight=Co,Ln.partition=vo,Ln.pick=Zo,Ln.pluck=function(n,t){return Qr(n,Ce(t));
|
102
|
-
|
103
|
-
},Ln.property=Ce,Ln.propertyOf=function(n){return function(t){return dt(n,$r(t),t+"")}},Ln.pull=function(){var n=arguments,t=n[0];if(!t||!t.length)return t;for(var r=0,e=wr(),u=n.length;++r<u;)for(var o=0,i=n[r];-1<(o=e(t,i,o));)su.call(t,o,1);return t},Ln.pullAt=no,Ln.range=function(n,t,r){r&&Er(n,t,r)&&(t=r=null),n=+n||0,r=null==r?1:+r||0,null==t?(t=n,n=0):t=+t||0;var e=-1;t=wu(tu((t-n)/(r||1)),0);for(var u=Te(t);++e<t;)u[e]=n,n+=r;return u},Ln.rearg=To,Ln.reject=function(n,t,r){var e=Uo(n)?Xn:st;
|
104
|
-
|
105
|
-
return t=mr(t,r,3),e(n,function(n,r,e){return!t(n,r,e)})},Ln.remove=function(n,t,r){var e=[];if(!n||!n.length)return e;var u=-1,o=[],i=n.length;for(t=mr(t,r,3);++u<i;)r=n[u],t(r,u,n)&&(e.push(r),o.push(u));return kt(n,o),e},Ln.rest=qr,Ln.restParam=ie,Ln.set=function(n,t,r){if(null==n)return n;var e=t+"";t=null!=n[e]||kr(t,n)?[e]:$r(t);for(var e=-1,u=t.length,o=u-1,i=n;null!=i&&++e<u;){var a=t[e];le(i)&&(e==o?i[a]=r:null==i[a]&&(i[a]=Or(t[e+1])?[]:{})),i=i[a]}return n},Ln.shuffle=te,Ln.slice=function(n,t,r){
|
106
|
-
var e=n?n.length:0;return e?(r&&typeof r!="number"&&Er(n,t,r)&&(t=0,r=e),St(n,t,r)):[]},Ln.sortBy=function(n,t,r){if(null==n)return[];r&&Er(n,t,r)&&(t=null);var e=-1;return t=mr(t,r,3),n=bt(n,function(n,r,u){return{a:t(n,r,u),b:++e,c:n}}),Tt(n,f)},Ln.sortByAll=mo,Ln.sortByOrder=function(n,t,r,e){return null==n?[]:(e&&Er(t,r,e)&&(r=null),Uo(t)||(t=null==t?[]:[t]),Uo(r)||(r=null==r?[]:[r]),Ut(n,t,r))},Ln.spread=function(n){if(typeof n!="function")throw new ze(L);return function(t){return n.apply(this,t);
|
107
|
-
|
108
|
-
}},Ln.take=function(n,t,r){return n&&n.length?((r?Er(n,t,r):null==t)&&(t=1),St(n,0,0>t?0:t)):[]},Ln.takeRight=function(n,t,r){var e=n?n.length:0;return e?((r?Er(n,t,r):null==t)&&(t=1),t=e-(+t||0),St(n,0>t?0:t)):[]},Ln.takeRightWhile=function(n,t,r){return n&&n.length?$t(n,mr(t,r,3),false,true):[]},Ln.takeWhile=function(n,t,r){return n&&n.length?$t(n,mr(t,r,3)):[]},Ln.tap=function(n,t,r){return t.call(r,n),n},Ln.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ze(L);return false===r?e=false:le(r)&&(e="leading"in r?!!r.leading:e,
|
109
|
-
u="trailing"in r?!!r.trailing:u),$n.leading=e,$n.maxWait=+t,$n.trailing=u,ue(n,t,$n)},Ln.thru=Gr,Ln.times=function(n,t,r){if(n=eu(n),1>n||!du(n))return[];var e=-1,u=Te(bu(n,Iu));for(t=zt(t,r,1);++e<n;)e<Iu?u[e]=t(e):t(e);return u},Ln.toArray=function(n){var t=n?Zu(n):0;return Rr(t)?t?Ln.support.unindexedChars&&_e(n)?n.split(""):Kn(n):[]:me(n)},Ln.toPlainObject=ge,Ln.transform=function(n,t,r,e){var u=Uo(n)||ve(n);return t=mr(t,e,4),null==r&&(u||le(n)?(e=n.constructor,r=u?Uo(n)?new e:[]:Pu(Fo(e)&&e.prototype)):r={}),
|
110
|
-
(u?Vn:vt)(n,function(n,e,u){return t(r,n,e,u)}),r},Ln.union=eo,Ln.uniq=Kr,Ln.unzip=Vr,Ln.values=me,Ln.valuesIn=function(n){return Nt(n,de(n))},Ln.where=function(n,t){return Xr(n,xt(t))},Ln.without=uo,Ln.wrap=function(n,t){return t=null==t?Ie:t,_r(t,k,null,[n],[])},Ln.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var r=arguments[n];if(Uo(r)||ae(r))var e=e?ct(e,r).concat(ct(r,e)):r}return e?Ft(e):[]},Ln.zip=oo,Ln.zipObject=Yr,Ln.backflow=Ro,Ln.collect=Qr,Ln.compose=Ro,Ln.each=lo,Ln.eachRight=so,
|
111
|
-
Ln.extend=$o,Ln.iteratee=Ee,Ln.methods=ye,Ln.object=Yr,Ln.select=Xr,Ln.tail=qr,Ln.unique=Kr,Re(Ln,Ln),Ln.add=function(n,t){return(+n||0)+(+t||0)},Ln.attempt=ti,Ln.camelCase=Go,Ln.capitalize=function(n){return(n=u(n))&&n.charAt(0).toUpperCase()+n.slice(1)},Ln.clone=function(n,t,r,e){return t&&typeof t!="boolean"&&Er(n,t,r)?t=false:typeof t=="function"&&(e=r,r=t,t=false),r=typeof r=="function"&&zt(r,e,1),at(n,t,r)},Ln.cloneDeep=function(n,t,r){return t=typeof t=="function"&&zt(t,r,1),at(n,true,t)},Ln.deburr=we,
|
112
|
-
Ln.endsWith=function(n,t,r){n=u(n),t+="";var e=n.length;return r=r===w?e:bu(0>r?0:+r||0,e),r-=t.length,0<=r&&n.indexOf(t,r)==r},Ln.escape=function(n){return(n=u(n))&&hn.test(n)?n.replace(sn,l):n},Ln.escapeRegExp=be,Ln.every=Jr,Ln.find=fo,Ln.findIndex=Hu,Ln.findKey=Po,Ln.findLast=co,Ln.findLastIndex=Qu,Ln.findLastKey=Bo,Ln.findWhere=function(n,t){return fo(n,xt(t))},Ln.first=zr,Ln.get=function(n,t,r){return n=null==n?w:dt(n,$r(t),t+""),n===w?r:n},Ln.has=function(n,t){if(null==n)return false;var r=Ze.call(n,t);
|
113
|
-
|
114
|
-
return r||kr(t)||(t=$r(t),n=1==t.length?n:dt(n,St(t,0,-1)),t=Dr(t),r=null!=n&&Ze.call(n,t)),r||Ln.support.nonEnumStrings&&_e(n)&&Or(t,n.length)},Ln.identity=Ie,Ln.includes=Hr,Ln.indexOf=Mr,Ln.inRange=function(n,t,r){return t=+t||0,"undefined"===typeof r?(r=t,t=0):r=+r||0,n>=bu(t,r)&&n<wu(t,r)},Ln.isArguments=ae,Ln.isArray=Uo,Ln.isBoolean=function(n){return true===n||false===n||h(n)&&Je.call(n)==M},Ln.isDate=function(n){return h(n)&&Je.call(n)==D},Ln.isElement=fe,Ln.isEmpty=function(n){if(null==n)return true;
|
115
|
-
|
116
|
-
var t=Zu(n);return Rr(t)&&(Uo(n)||_e(n)||ae(n)||h(n)&&Fo(n.splice))?!t:!Ko(n).length},Ln.isEqual=function(n,t,r,e){return r=typeof r=="function"&&zt(r,e,3),!r&&Sr(n)&&Sr(t)?n===t:(e=r?r(n,t):w,e===w?mt(n,t,r):!!e)},Ln.isError=ce,Ln.isFinite=Wo,Ln.isFunction=Fo,Ln.isMatch=function(n,t,r,e){var u=Ko(t),o=u.length;if(!o)return true;if(null==n)return false;if(r=typeof r=="function"&&zt(r,e,3),n=Nr(n),!r&&1==o){var i=u[0];if(e=t[i],Sr(e))return e===n[i]&&(e!==w||i in n)}for(var i=Te(o),a=Te(o);o--;)e=i[o]=t[u[o]],
|
117
|
-
a[o]=Sr(e);return wt(n,u,i,a,r)},Ln.isNaN=function(n){return pe(n)&&n!=+n},Ln.isNative=se,Ln.isNull=function(n){return null===n},Ln.isNumber=pe,Ln.isObject=le,Ln.isPlainObject=No,Ln.isRegExp=he,Ln.isString=_e,Ln.isTypedArray=ve,Ln.isUndefined=function(n){return n===w},Ln.kebabCase=Jo,Ln.last=Dr,Ln.lastIndexOf=function(n,t,r){var e=n?n.length:0;if(!e)return-1;var u=e;if(typeof r=="number")u=(0>r?wu(e+r,0):bu(r||0,e-1))+1;else if(r)return u=Pt(n,t,true)-1,n=n[u],(t===t?t===n:n!==n)?u:-1;if(t!==t)return p(n,u,true);
|
118
|
-
|
119
|
-
for(;u--;)if(n[u]===t)return u;return-1},Ln.max=ui,Ln.min=oi,Ln.noConflict=function(){return _._=Xe,this},Ln.noop=Se,Ln.now=wo,Ln.pad=function(n,t,r){n=u(n),t=+t;var e=n.length;return e<t&&du(t)?(e=(t-e)/2,t=eu(e),e=tu(e),r=sr("",e,r),r.slice(0,t)+n+r):n},Ln.padLeft=Xo,Ln.padRight=Ho,Ln.parseInt=xe,Ln.random=function(n,t,r){r&&Er(n,t,r)&&(t=r=null);var e=null==n,u=null==t;return null==r&&(u&&typeof n=="boolean"?(r=n,n=1):typeof t=="boolean"&&(r=t,u=true)),e&&u&&(t=1,u=false),n=+n||0,u?(t=n,n=0):t=+t||0,
|
120
|
-
r||n%1||t%1?(r=Ou(),bu(n+r*(t-n+parseFloat("1e-"+((r+"").length-1))),t)):It(n,t)},Ln.reduce=go,Ln.reduceRight=yo,Ln.repeat=Ae,Ln.result=function(n,t,r){var e=null==n?w:Nr(n)[t];return e===w&&(null==n||kr(t,n)||(t=$r(t),n=1==t.length?n:dt(n,St(t,0,-1)),e=null==n?w:Nr(n)[Dr(t)]),e=e===w?r:e),Fo(e)?e.call(n):e},Ln.runInContext=m,Ln.size=function(n){var t=n?Zu(n):0;return Rr(t)?t:Ko(n).length},Ln.snakeCase=Qo,Ln.some=re,Ln.sortedIndex=to,Ln.sortedLastIndex=ro,Ln.startCase=ni,Ln.startsWith=function(n,t,r){
|
121
|
-
return n=u(n),r=null==r?0:bu(0>r?0:+r||0,n.length),n.lastIndexOf(t,r)==r},Ln.sum=function(n,t,r){r&&Er(n,t,r)&&(t=null);var e=mr(),u=null==t;if(e===it&&u||(u=false,t=e(t,r,3)),u){for(n=Uo(n)?n:Fr(n),t=n.length,r=0;t--;)r+=+n[t]||0;n=r}else n=Wt(n,t);return n},Ln.template=function(n,t,r){var e=Ln.templateSettings;r&&Er(n,t,r)&&(t=r=null),n=u(n),t=et(Lu({},r||t),e,rt),r=et(Lu({},t.imports),e.imports,rt);var o,i,a=Ko(r),f=Nt(r,a),c=0;r=t.interpolate||Rn;var l="__p+='";r=Pe((t.escape||Rn).source+"|"+r.source+"|"+(r===gn?jn:Rn).source+"|"+(t.evaluate||Rn).source+"|$","g");
|
122
|
-
|
123
|
-
var p="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,u,a,f){return e||(e=u),l+=n.slice(c,f).replace(Sn,s),r&&(o=true,l+="'+__e("+r+")+'"),a&&(i=true,l+="';"+a+";\n__p+='"),e&&(l+="'+((__t=("+e+"))==null?'':__t)+'"),c=f+t.length,t}),l+="';",(t=t.variable)||(l="with(obj){"+l+"}"),l=(i?l.replace(an,""):l).replace(fn,"$1").replace(cn,"$1;"),l="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(o?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+l+"return __p}",
|
124
|
-
t=ti(function(){return Fe(a,p+"return "+l).apply(w,f)}),t.source=l,ce(t))throw t;return t},Ln.trim=je,Ln.trimLeft=function(n,t,r){var e=n;return(n=u(n))?n.slice((r?Er(e,t,r):null==t)?g(n):i(n,t+"")):n},Ln.trimRight=function(n,t,r){var e=n;return(n=u(n))?(r?Er(e,t,r):null==t)?n.slice(0,y(n)+1):n.slice(0,a(n,t+"")+1):n},Ln.trunc=function(n,t,r){r&&Er(n,t,r)&&(t=null);var e=C;if(r=T,null!=t)if(le(t)){var o="separator"in t?t.separator:o,e="length"in t?+t.length||0:e;r="omission"in t?u(t.omission):r}else e=+t||0;
|
125
|
-
|
126
|
-
if(n=u(n),e>=n.length)return n;if(e-=r.length,1>e)return r;if(t=n.slice(0,e),null==o)return t+r;if(he(o)){if(n.slice(e).search(o)){var i,a=n.slice(0,e);for(o.global||(o=Pe(o.source,(On.exec(o)||"")+"g")),o.lastIndex=0;n=o.exec(a);)i=n.index;t=t.slice(0,null==i?e:i)}}else n.indexOf(o,e)!=e&&(o=t.lastIndexOf(o),-1<o&&(t=t.slice(0,o)));return t+r},Ln.unescape=function(n){return(n=u(n))&&pn.test(n)?n.replace(ln,d):n},Ln.uniqueId=function(n){var t=++Ge;return u(n)+t},Ln.words=Oe,Ln.all=Jr,Ln.any=re,Ln.contains=Hr,
|
127
|
-
Ln.detect=fo,Ln.foldl=go,Ln.foldr=yo,Ln.head=zr,Ln.include=Hr,Ln.inject=go,Re(Ln,function(){var n={};return vt(Ln,function(t,r){Ln.prototype[r]||(n[r]=t)}),n}(),false),Ln.sample=ne,Ln.prototype.sample=function(n){return this.__chain__||null!=n?this.thru(function(t){return ne(t,n)}):ne(this.value())},Ln.VERSION=b,Vn("bind bindKey curry curryRight partial partialRight".split(" "),function(n){Ln[n].placeholder=Ln}),Vn(["dropWhile","filter","map","takeWhile"],function(n,t){var r=t!=$,e=t==F;zn.prototype[n]=function(n,u){
|
128
|
-
var o=this.__filtered__,i=o&&e?new zn(this):this.clone();return(i.__iteratees__||(i.__iteratees__=[])).push({done:false,count:0,index:0,iteratee:mr(n,u,1),limit:-1,type:t}),i.__filtered__=o||r,i}}),Vn(["drop","take"],function(n,t){var r=n+"While";zn.prototype[n]=function(r){var e=this.__filtered__,u=e&&!t?this.dropWhile():this.clone();return r=null==r?1:wu(eu(r)||0,0),e?t?u.__takeCount__=bu(u.__takeCount__,r):Dr(u.__iteratees__).limit=r:(u.__views__||(u.__views__=[])).push({size:r,type:n+(0>u.__dir__?"Right":"")
|
129
|
-
}),u},zn.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()},zn.prototype[n+"RightWhile"]=function(n,t){return this.reverse()[r](n,t).reverse()}}),Vn(["first","last"],function(n,t){var r="take"+(t?"Right":"");zn.prototype[n]=function(){return this[r](1).value()[0]}}),Vn(["initial","rest"],function(n,t){var r="drop"+(t?"":"Right");zn.prototype[n]=function(){return this[r](1)}}),Vn(["pluck","where"],function(n,t){var r=t?"filter":"map",e=t?xt:Ce;zn.prototype[n]=function(n){return this[r](e(n));
|
130
|
-
|
131
|
-
}}),zn.prototype.compact=function(){return this.filter(Ie)},zn.prototype.reject=function(n,t){return n=mr(n,t,1),this.filter(function(t){return!n(t)})},zn.prototype.slice=function(n,t){n=null==n?0:+n||0;var r=0>n?this.takeRight(-n):this.drop(n);return t!==w&&(t=+t||0,r=0>t?r.dropRight(-t):r.take(t-n)),r},zn.prototype.toArray=function(){return this.drop(0)},vt(zn.prototype,function(n,t){var r=Ln[t];if(r){var e=/^(?:filter|map|reject)|While$/.test(t),u=/^(?:first|last)$/.test(t);Ln.prototype[t]=function(){
|
132
|
-
function t(n){return n=[n],iu.apply(n,o),r.apply(Ln,n)}var o=arguments,i=this.__chain__,a=this.__wrapped__,f=!!this.__actions__.length,c=a instanceof zn,l=o[0],s=c||Uo(a);return s&&e&&typeof l=="function"&&1!=l.length&&(c=s=false),c=c&&!f,u&&!i?c?n.call(a):r.call(Ln,this.value()):s?(a=n.apply(c?a:new zn(this),o),u||!f&&!a.__actions__||(a.__actions__||(a.__actions__=[])).push({func:Gr,args:[t],thisArg:Ln}),new Bn(a,i)):this.thru(t)}}}),Vn("concat join pop push replace shift sort splice split unshift".split(" "),function(n){
|
133
|
-
var t=(/^(?:replace|split)$/.test(n)?Ke:Me)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:join|pop|replace|shift)$/.test(n),u=$u.spliceObjects||!/^(?:pop|shift|splice)$/.test(n)?t:function(){var n=t.apply(this,arguments);return 0===this.length&&delete this[0],n};Ln.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?u.apply(this.value(),n):this[r](function(t){return u.apply(t,n)})}}),vt(zn.prototype,function(n,t){var r=Ln[t];if(r){var e=r.name;(Wu[e]||(Wu[e]=[])).push({
|
134
|
-
name:t,func:r})}}),Wu[lr(null,A).name]=[{name:"wrapper",func:null}],zn.prototype.clone=function(){var n=this.__actions__,t=this.__iteratees__,r=this.__views__,e=new zn(this.__wrapped__);return e.__actions__=n?Kn(n):null,e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=t?Kn(t):null,e.__takeCount__=this.__takeCount__,e.__views__=r?Kn(r):null,e},zn.prototype.reverse=function(){if(this.__filtered__){var n=new zn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;
|
135
|
-
|
136
|
-
return n},zn.prototype.value=function(){var n=this.__wrapped__.value();if(!Uo(n))return Lt(n,this.__actions__);var t,r=this.__dir__,e=0>r;t=n.length;for(var u=this.__views__,o=0,i=-1,a=u?u.length:0;++i<a;){var f=u[i],c=f.size;switch(f.type){case"drop":o+=c;break;case"dropRight":t-=c;break;case"take":t=bu(t,o+c);break;case"takeRight":o=wu(o,t-c)}}t={start:o,end:t},u=t.start,o=t.end,t=o-u,u=e?o:u-1,o=bu(t,this.__takeCount__),a=(i=this.__iteratees__)?i.length:0,f=0,c=[];n:for(;t--&&f<o;){for(var u=u+r,l=-1,s=n[u];++l<a;){
|
137
|
-
var p=i[l],h=p.iteratee,_=p.type;if(_==F){if(p.done&&(e?u>p.index:u<p.index)&&(p.count=0,p.done=false),p.index=u,!(p.done||(_=p.limit,p.done=-1<_?p.count++>=_:!h(s))))continue n}else if(p=h(s),_==$)s=p;else if(!p){if(_==N)continue n;break n}}c[f++]=s}return c},Ln.prototype.chain=function(){return Zr(this)},Ln.prototype.commit=function(){return new Bn(this.value(),this.__chain__)},Ln.prototype.plant=function(n){for(var t,r=this;r instanceof Pn;){var e=Lr(r);t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__;
|
138
|
-
|
139
|
-
}return u.__wrapped__=n,t},Ln.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof zn?(this.__actions__.length&&(n=new zn(this)),new Bn(n.reverse(),this.__chain__)):this.thru(function(n){return n.reverse()})},Ln.prototype.toString=function(){return this.value()+""},Ln.prototype.run=Ln.prototype.toJSON=Ln.prototype.valueOf=Ln.prototype.value=function(){return Lt(this.__wrapped__,this.__actions__)},Ln.prototype.collect=Ln.prototype.map,Ln.prototype.head=Ln.prototype.first,Ln.prototype.select=Ln.prototype.filter,
|
140
|
-
Ln.prototype.tail=Ln.prototype.rest,Ln}var w,b="3.7.0",x=1,A=2,j=4,O=8,E=16,k=32,I=64,R=128,S=256,C=30,T="...",U=150,W=16,F=0,N=1,$=2,L="Expected a function",P="__lodash_placeholder__",B="[object Arguments]",z="[object Array]",M="[object Boolean]",D="[object Date]",q="[object Error]",K="[object Function]",V="[object Number]",Y="[object Object]",Z="[object RegExp]",G="[object String]",J="[object ArrayBuffer]",X="[object Float32Array]",H="[object Float64Array]",Q="[object Int8Array]",nn="[object Int16Array]",tn="[object Int32Array]",rn="[object Uint8Array]",en="[object Uint8ClampedArray]",un="[object Uint16Array]",on="[object Uint32Array]",an=/\b__p\+='';/g,fn=/\b(__p\+=)''\+/g,cn=/(__e\(.*?\)|\b__t\))\+'';/g,ln=/&(?:amp|lt|gt|quot|#39|#96);/g,sn=/[&<>"'`]/g,pn=RegExp(ln.source),hn=RegExp(sn.source),_n=/<%-([\s\S]+?)%>/g,vn=/<%([\s\S]+?)%>/g,gn=/<%=([\s\S]+?)%>/g,yn=/\.|\[(?:[^[\]]+|(["'])(?:(?!\1)[^\n\\]|\\.)*?)\1\]/,dn=/^\w*$/,mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,wn=/[.*+?^${}()|[\]\/\\]/g,bn=RegExp(wn.source),xn=/[\u0300-\u036f\ufe20-\ufe23]/g,An=/\\(\\)?/g,jn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,On=/\w*$/,En=/^0[xX]/,kn=/^\[object .+?Constructor\]$/,In=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Rn=/($^)/,Sn=/['\n\r\u2028\u2029\\]/g,Cn=RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+","g"),Tn=" \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",Un="Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout document isFinite parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap window".split(" "),Wn="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Fn={};
|
141
|
-
|
142
|
-
Fn[X]=Fn[H]=Fn[Q]=Fn[nn]=Fn[tn]=Fn[rn]=Fn[en]=Fn[un]=Fn[on]=true,Fn[B]=Fn[z]=Fn[J]=Fn[M]=Fn[D]=Fn[q]=Fn[K]=Fn["[object Map]"]=Fn[V]=Fn[Y]=Fn[Z]=Fn["[object Set]"]=Fn[G]=Fn["[object WeakMap]"]=false;var Nn={};Nn[B]=Nn[z]=Nn[J]=Nn[M]=Nn[D]=Nn[X]=Nn[H]=Nn[Q]=Nn[nn]=Nn[tn]=Nn[V]=Nn[Y]=Nn[Z]=Nn[G]=Nn[rn]=Nn[en]=Nn[un]=Nn[on]=true,Nn[q]=Nn[K]=Nn["[object Map]"]=Nn["[object Set]"]=Nn["[object WeakMap]"]=false;var $n={leading:false,maxWait:0,trailing:false},Ln={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A",
|
6
|
+
;(function(){function n(n,t){if(n!==t){var r=null===n,e=n===m,u=n===n,o=null===t,i=t===m,a=t===t;if(n>t&&!o||!u||r&&!i&&a||e&&a)return 1;if(n<t&&!r||!a||o&&!e&&u||i&&u)return-1}return 0}function t(n,t,r){for(var e=n.length,u=r?e:-1;r?u--:++u<e;)if(t(n[u],u,n))return u;return-1}function r(n,t,r){if(t!==t)return s(n,r);r-=1;for(var e=n.length;++r<e;)if(n[r]===t)return r;return-1}function e(n){return typeof n=="function"||false}function u(n){return typeof n=="string"?n:null==n?"":n+""}function o(n,t){for(var r=-1,e=n.length;++r<e&&-1<t.indexOf(n.charAt(r)););
|
7
|
+
return r}function i(n,t){for(var r=n.length;r--&&-1<t.indexOf(n.charAt(r)););return r}function a(t,r){return n(t.a,r.a)||t.b-r.b}function l(n){return Nn[n]}function f(n){return Pn[n]}function c(n){return"\\"+Mn[n]}function s(n,t,r){var e=n.length;for(t+=r?0:-1;r?t--:++t<e;){var u=n[t];if(u!==u)return t}return-1}function p(n){return!!n&&typeof n=="object"}function h(n){return 160>=n&&9<=n&&13>=n||32==n||160==n||5760==n||6158==n||8192<=n&&(8202>=n||8232==n||8233==n||8239==n||8287==n||12288==n||65279==n);
|
8
|
+
}function _(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;)n[r]===t&&(n[r]=N,o[++u]=r);return o}function v(n){for(var t=-1,r=n.length;++t<r&&h(n.charCodeAt(t)););return t}function g(n){for(var t=n.length;t--&&h(n.charCodeAt(t)););return t}function y(n){return zn[n]}function d(h){function Nn(n){if(p(n)&&!(zo(n)||n instanceof Bn)){if(n instanceof zn)return n;if(ou.call(n,"__chain__")&&ou.call(n,"__wrapped__"))return qr(n)}return new zn(n)}function Pn(){}function zn(n,t,r){this.__wrapped__=n,this.__actions__=r||[],
|
9
|
+
this.__chain__=!!t}function Bn(n){this.__wrapped__=n,this.__actions__=null,this.__dir__=1,this.__filtered__=false,this.__iteratees__=null,this.__takeCount__=$u,this.__views__=null}function Mn(){this.__data__={}}function qn(n){var t=n?n.length:0;for(this.data={hash:Ou(null),set:new mu};t--;)this.push(n[t])}function Dn(n,t){var r=n.data;return(typeof t=="string"||ye(t)?r.set.has(t):r.hash[t])?0:-1}function Kn(n,t){var r=-1,e=n.length;for(t||(t=qe(e));++r<e;)t[r]=n[r];return t}function Vn(n,t){for(var r=-1,e=n.length;++r<e&&false!==t(n[r],r,n););
|
10
|
+
return n}function Yn(n,t){for(var r=-1,e=n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function Xn(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;){var i=n[r];t(i,r,n)&&(o[++u]=i)}return o}function Hn(n,t){for(var r=-1,e=n.length,u=qe(e);++r<e;)u[r]=t(n[r],r,n);return u}function Qn(n,t,r,e){var u=-1,o=n.length;for(e&&o&&(r=n[++u]);++u<o;)r=t(r,n[u],u,n);return r}function nt(n,t){for(var r=-1,e=n.length;++r<e;)if(t(n[r],r,n))return true;return false}function tt(n,t){return n===m?t:n}function rt(n,t,r,e){
|
11
|
+
return n!==m&&ou.call(e,r)?n:t}function et(n,t,r){for(var e=-1,u=Ho(t),o=u.length;++e<o;){var i=u[e],a=n[i],l=r(a,t[i],i,n,t);(l===l?l===a:a!==a)&&(a!==m||i in n)||(n[i]=l)}return n}function ut(n,t){return null==t?n:it(t,Ho(t),n)}function ot(n,t){for(var r=-1,e=null==n,u=!e&&Cr(n),o=u?n.length:0,i=t.length,a=qe(i);++r<i;){var l=t[r];a[r]=u?Sr(l,o)?n[l]:m:e?m:n[l]}return a}function it(n,t,r){r||(r={});for(var e=-1,u=t.length;++e<u;){var o=t[e];r[o]=n[o]}return r}function at(n,t,r){var e=typeof n;return"function"==e?t===m?n:qt(n,t,r):null==n?Ne:"object"==e?jt(n):t===m?Me(n):Ot(n,t);
|
12
|
+
}function lt(n,t,r,e,u,o,i){var a;if(r&&(a=u?r(n,e,u):r(n)),a!==m)return a;if(!ye(n))return n;if(e=zo(n)){if(a=kr(n),!t)return Kn(n,a)}else{var l=au.call(n),f=l==D;if(l!=V&&l!=P&&(!f||u))return $n[l]?Er(n,l,t):u?n:{};if(Gn(n))return u?n:{};if(a=Ir(f?{}:n),!t)return ut(a,n)}for(o||(o=[]),i||(i=[]),u=o.length;u--;)if(o[u]==n)return i[u];return o.push(n),i.push(a),(e?Vn:yt)(n,function(e,u){a[u]=lt(e,t,r,u,n,o,i)}),a}function ft(n,t,r){if(typeof n!="function")throw new He(L);return wu(function(){n.apply(m,r);
|
13
|
+
},t)}function ct(n,t){var e=n?n.length:0,u=[];if(!e)return u;var o=-1,i=Ar(),a=i==r,l=a&&200<=t.length?Hu(t):null,f=t.length;l&&(i=Dn,a=false,t=l);n:for(;++o<e;)if(l=n[o],a&&l===l){for(var c=f;c--;)if(t[c]===l)continue n;u.push(l)}else 0>i(t,l,0)&&u.push(l);return u}function st(n,t){var r=true;return Yu(n,function(n,e,u){return r=!!t(n,e,u)}),r}function pt(n,t,r,e){var u=e,o=u;return Yu(n,function(n,i,a){i=+t(n,i,a),(r(i,u)||i===e&&i===o)&&(u=i,o=n)}),o}function ht(n,t){var r=[];return Yu(n,function(n,e,u){
|
14
|
+
t(n,e,u)&&r.push(n)}),r}function _t(n,t,r,e){var u;return r(n,function(n,r,o){return t(n,r,o)?(u=e?r:n,false):void 0}),u}function vt(n,t,r){for(var e=-1,u=n.length,o=-1,i=[];++e<u;){var a=n[e];if(p(a)&&Cr(a)&&(r||zo(a)||he(a))){t&&(a=vt(a,t,r));for(var l=-1,f=a.length;++l<f;)i[++o]=a[l]}else r||(i[++o]=a)}return i}function gt(n,t){Gu(n,t,Ie)}function yt(n,t){return Gu(n,t,Ho)}function dt(n,t){return Ju(n,t,Ho)}function mt(n,t){for(var r=-1,e=t.length,u=-1,o=[];++r<e;){var i=t[r];Mo(n[i])&&(o[++u]=i);
|
15
|
+
}return o}function wt(n,t,r){if(null!=n){n=Br(n),r!==m&&r in n&&(t=[r]),r=0;for(var e=t.length;null!=n&&r<e;)n=Br(n)[t[r++]];return r&&r==e?n:m}}function bt(n,t,r,e,u,o){if(n===t)n=true;else if(null==n||null==t||!ye(n)&&!p(t))n=n!==n&&t!==t;else n:{var i=bt,a=zo(n),l=zo(t),f=z,c=z;a||(f=au.call(n),f==P?f=V:f!=V&&(a=xe(n))),l||(c=au.call(t),c==P?c=V:c!=V&&xe(t));var s=f==V&&!Gn(n),l=c==V&&!Gn(t),c=f==c;if(!c||a||s){if(!e&&(f=s&&ou.call(n,"__wrapped__"),l=l&&ou.call(t,"__wrapped__"),f||l)){n=i(f?n.value():n,l?t.value():t,r,e,u,o);
|
16
|
+
break n}if(c){for(u||(u=[]),o||(o=[]),f=u.length;f--;)if(u[f]==n){n=o[f]==t;break n}u.push(n),o.push(t),n=(a?dr:wr)(n,t,i,r,e,u,o),u.pop(),o.pop()}else n=false}else n=mr(n,t,f)}return n}function xt(n,t,r){var e=t.length,u=e,o=!r;if(null==n)return!u;for(n=Br(n);e--;){var i=t[e];if(o&&i[2]?i[1]!==n[i[0]]:!(i[0]in n))return false}for(;++e<u;){var i=t[e],a=i[0],l=n[a],f=i[1];if(o&&i[2]){if(l===m&&!(a in n))return false}else if(i=r?r(l,f,a):m,i===m?!bt(f,l,r,true):!i)return false}return true}function At(n,t){var r=-1,e=Cr(n)?qe(n.length):[];
|
17
|
+
return Yu(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function jt(n){var t=jr(n);if(1==t.length&&t[0][2]){var r=t[0][0],e=t[0][1];return function(n){return null==n?false:(n=Br(n),n[r]===e&&(e!==m||r in n))}}return function(n){return xt(n,t)}}function Ot(n,t){var r=zo(n),e=Ur(n)&&t===t&&!ye(t),u=n+"";return n=Mr(n),function(o){if(null==o)return false;var i=u;if(o=Br(o),!(!r&&e||i in o)){if(o=1==n.length?o:wt(o,Tt(n,0,-1)),null==o)return false;i=Zr(n),o=Br(o)}return o[i]===t?t!==m||i in o:bt(t,o[i],m,true)}}function kt(n,t,r,e,u){
|
18
|
+
if(!ye(n))return n;var o=Cr(t)&&(zo(t)||xe(t)),i=o?null:Ho(t);return Vn(i||t,function(a,l){if(i&&(l=a,a=t[l]),p(a)){e||(e=[]),u||(u=[]);n:{for(var f=l,c=e,s=u,h=c.length,_=t[f];h--;)if(c[h]==_){n[f]=s[h];break n}var h=n[f],v=r?r(h,_,f,n,t):m,g=v===m;g&&(v=_,Cr(_)&&(zo(_)||xe(_))?v=zo(h)?h:Cr(h)?Kn(h):[]:qo(_)||he(_)?v=he(h)?Oe(h):qo(h)?h:{}:g=false),c.push(_),s.push(v),g?n[f]=kt(v,_,r,c,s):(v===v?v!==h:h===h)&&(n[f]=v)}}else f=n[l],c=r?r(f,a,l,n,t):m,(s=c===m)&&(c=a),c===m&&(!o||l in n)||!s&&(c===c?c===f:f!==f)||(n[l]=c);
|
19
|
+
}),n}function It(n){return function(t){return null==t?m:Br(t)[n]}}function Et(n){var t=n+"";return n=Mr(n),function(r){return wt(r,n,t)}}function Rt(n,t){for(var r=n?t.length:0;r--;){var e=t[r];if(e!=u&&Sr(e)){var u=e;bu.call(n,e,1)}}}function Ct(n,t){return n+_u(Wu()*(t-n+1))}function St(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function Tt(n,t,r){var e=-1,u=n.length;for(t=null==t?0:+t||0,0>t&&(t=-t>u?0:u+t),r=r===m||r>u?u:+r||0,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=qe(u);++e<u;)r[e]=n[e+t];
|
20
|
+
return r}function Ut(n,t){var r;return Yu(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function Wt(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;return n}function Ft(t,r,e){var u=br(),o=-1;return r=Hn(r,function(n){return u(n)}),t=At(t,function(n){return{a:Hn(r,function(t){return t(n)}),b:++o,c:n}}),Wt(t,function(t,r){var u;n:{u=-1;for(var o=t.a,i=r.a,a=o.length,l=e.length;++u<a;){var f=n(o[u],i[u]);if(f){u=u<l?f*(e[u]?1:-1):f;break n}}u=t.b-r.b}return u})}function $t(n,t){var r=0;return Yu(n,function(n,e,u){
|
21
|
+
r+=+t(n,e,u)||0}),r}function Lt(n,t){var e=-1,u=Ar(),o=n.length,i=u==r,a=i&&200<=o,l=a?Hu():null,f=[];l?(u=Dn,i=false):(a=false,l=t?[]:f);n:for(;++e<o;){var c=n[e],s=t?t(c,e,n):c;if(i&&c===c){for(var p=l.length;p--;)if(l[p]===s)continue n;t&&l.push(s),f.push(c)}else 0>u(l,s,0)&&((t||a)&&l.push(s),f.push(c))}return f}function Nt(n,t){for(var r=-1,e=t.length,u=qe(e);++r<e;)u[r]=n[t[r]];return u}function Pt(n,t,r,e){for(var u=n.length,o=e?u:-1;(e?o--:++o<u)&&t(n[o],o,n););return r?Tt(n,e?0:o,e?o+1:u):Tt(n,e?o+1:0,e?u:o);
|
22
|
+
}function zt(n,t){var r=n;r instanceof Bn&&(r=r.value());for(var e=-1,u=t.length;++e<u;){var r=[r],o=t[e];yu.apply(r,o.args),r=o.func.apply(o.thisArg,r)}return r}function Bt(n,t,r){var e=0,u=n?n.length:e;if(typeof t=="number"&&t===t&&u<=Nu){for(;e<u;){var o=e+u>>>1,i=n[o];(r?i<=t:i<t)&&null!==i?e=o+1:u=o}return u}return Mt(n,t,Ne,r)}function Mt(n,t,r,e){t=r(t);for(var u=0,o=n?n.length:0,i=t!==t,a=null===t,l=t===m;u<o;){var f=_u((u+o)/2),c=r(n[f]),s=c!==m,p=c===c;(i?p||e:a?p&&s&&(e||null!=c):l?p&&(e||s):null==c?0:e?c<=t:c<t)?u=f+1:o=f;
|
23
|
+
}return Cu(o,Lu)}function qt(n,t,r){if(typeof n!="function")return Ne;if(t===m)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)};case 5:return function(r,e,u,o,i){return n.call(t,r,e,u,o,i)}}return function(){return n.apply(t,arguments)}}function Dt(n){return su.call(n,0)}function Kt(n,t,r){for(var e=r.length,u=-1,o=Ru(n.length-e,0),i=-1,a=t.length,l=qe(o+a);++i<a;)l[i]=t[i];
|
24
|
+
for(;++u<e;)l[r[u]]=n[u];for(;o--;)l[i++]=n[u++];return l}function Vt(n,t,r){for(var e=-1,u=r.length,o=-1,i=Ru(n.length-u,0),a=-1,l=t.length,f=qe(i+l);++o<i;)f[o]=n[o];for(i=o;++a<l;)f[i+a]=t[a];for(;++e<u;)f[i+r[e]]=n[o++];return f}function Yt(n,t){return function(r,e,u){var o=t?t():{};if(e=br(e,u,3),zo(r)){u=-1;for(var i=r.length;++u<i;){var a=r[u];n(o,a,e(a,u,r),r)}}else Yu(r,function(t,r,u){n(o,t,e(t,r,u),u)});return o}}function Zt(n){return se(function(t,r){var e=-1,u=null==t?0:r.length,o=2<u?r[u-2]:m,i=2<u?r[2]:m,a=1<u?r[u-1]:m;
|
25
|
+
for(typeof o=="function"?(o=qt(o,a,5),u-=2):(o=typeof a=="function"?a:m,u-=o?1:0),i&&Tr(r[0],r[1],i)&&(o=3>u?m:o,u=1);++e<u;)(i=r[e])&&n(t,i,o);return t})}function Gt(n,t){return function(r,e){var u=r?no(r):0;if(!Fr(u))return n(r,e);for(var o=t?u:-1,i=Br(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}function Jt(n){return function(t,r,e){var u=Br(t);e=e(t);for(var o=e.length,i=n?o:-1;n?i--:++i<o;){var a=e[i];if(false===r(u[a],a,u))break}return t}}function Xt(n,t){function r(){return(this&&this!==Zn&&this instanceof r?e:n).apply(t,arguments);
|
26
|
+
}var e=Qt(n);return r}function Ht(n){return function(t){var r=-1;t=Fe(Ce(t));for(var e=t.length,u="";++r<e;)u=n(u,t[r],r);return u}}function Qt(n){return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4])}var r=Vu(n.prototype),t=n.apply(r,t);return ye(t)?t:r}}function nr(n){function t(r,e,u){return u&&Tr(r,e,u)&&(e=null),
|
27
|
+
r=yr(r,n,null,null,null,null,null,e),r.placeholder=t.placeholder,r}return t}function tr(n,t){return function(r,e,u){if(u&&Tr(r,e,u)&&(e=null),e=br(e,u,3),1==e.length){u=r=zr(r);for(var o=e,i=-1,a=u.length,l=t,f=l;++i<a;){var c=u[i],s=+o(c);n(s,l)&&(l=s,f=c)}if(u=f,!r.length||u!==t)return u}return pt(r,e,n,t)}}function rr(n,r){return function(e,u,o){return u=br(u,o,3),zo(e)?(u=t(e,u,r),-1<u?e[u]:m):_t(e,u,n)}}function er(n){return function(r,e,u){return r&&r.length?(e=br(e,u,3),t(r,e,n)):-1}}function ur(n){
|
28
|
+
return function(t,r,e){return r=br(r,e,3),_t(t,r,n,true)}}function or(n){return function(){for(var t,r=arguments.length,e=n?r:-1,u=0,o=qe(r);n?e--:++e<r;){var i=o[u++]=arguments[e];if(typeof i!="function")throw new He(L);!t&&zn.prototype.thru&&"wrapper"==xr(i)&&(t=new zn([]))}for(e=t?-1:r;++e<r;){var i=o[e],u=xr(i),a="wrapper"==u?Qu(i):null;t=a&&Wr(a[0])&&a[1]==(E|j|k|R)&&!a[4].length&&1==a[9]?t[xr(a[0])].apply(t,a[3]):1==i.length&&Wr(i)?t[u]():t.thru(i)}return function(){var n=arguments;if(t&&1==n.length&&zo(n[0]))return t.plant(n[0]).value();
|
29
|
+
for(var e=0,n=r?o[e].apply(this,n):n[0];++e<r;)n=o[e].call(this,n);return n}}}function ir(n,t){return function(r,e,u){return typeof e=="function"&&u===m&&zo(r)?n(r,e):t(r,qt(e,u,3))}}function ar(n){return function(t,r,e){return(typeof r!="function"||e!==m)&&(r=qt(r,e,3)),n(t,r,Ie)}}function lr(n){return function(t,r,e){return(typeof r!="function"||e!==m)&&(r=qt(r,e,3)),n(t,r)}}function fr(n){return function(t,r,e){var u={};return r=br(r,e,3),yt(t,function(t,e,o){o=r(t,e,o),e=n?o:e,t=n?t:o,u[e]=t}),
|
30
|
+
u}}function cr(n){return function(t,r,e){return t=u(t),(n?t:"")+_r(t,r,e)+(n?"":t)}}function sr(n){var t=se(function(r,e){var u=_(e,t.placeholder);return yr(r,n,null,e,u)});return t}function pr(n,t){return function(r,e,u,o){var i=3>arguments.length;return typeof e=="function"&&o===m&&zo(r)?n(r,e,u,i):St(r,br(e,o,4),u,i,t)}}function hr(n,t,r,e,u,o,i,a,l,f){function c(){for(var w=arguments.length,A=w,j=qe(w);A--;)j[A]=arguments[A];if(e&&(j=Kt(j,e,u)),o&&(j=Vt(j,o,i)),v||y){var A=c.placeholder,O=_(j,A),w=w-O.length;
|
31
|
+
if(w<f){var E=a?Kn(a):null,w=Ru(f-w,0),R=v?O:null,O=v?null:O,C=v?j:null,j=v?null:j;return t|=v?k:I,t&=~(v?I:k),g||(t&=~(b|x)),j=[n,t,r,C,R,j,O,E,l,w],E=hr.apply(m,j),Wr(n)&&to(E,j),E.placeholder=A,E}}if(A=p?r:this,E=h?A[n]:n,a)for(w=j.length,R=Cu(a.length,w),O=Kn(j);R--;)C=a[R],j[R]=Sr(C,w)?O[C]:m;return s&&l<j.length&&(j.length=l),this&&this!==Zn&&this instanceof c&&(E=d||Qt(n)),E.apply(A,j)}var s=t&E,p=t&b,h=t&x,v=t&j,g=t&A,y=t&O,d=h?null:Qt(n);return c}function _r(n,t,r){return n=n.length,t=+t,
|
32
|
+
n<t&&Iu(t)?(t-=n,r=null==r?" ":r+"",Ue(r,pu(t/r.length)).slice(0,t)):""}function vr(n,t,r,e){function u(){for(var t=-1,a=arguments.length,l=-1,f=e.length,c=qe(a+f);++l<f;)c[l]=e[l];for(;a--;)c[l++]=arguments[++t];return(this&&this!==Zn&&this instanceof u?i:n).apply(o?r:this,c)}var o=t&b,i=Qt(n);return u}function gr(n){return function(t,r,e,u){var o=br(e);return null==e&&o===at?Bt(t,r,n):Mt(t,r,o(e,u,1),n)}}function yr(n,t,r,e,u,o,i,a){var l=t&x;if(!l&&typeof n!="function")throw new He(L);var f=e?e.length:0;
|
33
|
+
if(f||(t&=~(k|I),e=u=null),f-=u?u.length:0,t&I){var c=e,s=u;e=u=null}var p=l?null:Qu(n);return r=[n,t,r,e,u,c,s,o,i,a],p&&(e=r[1],t=p[1],a=e|t,u=t==E&&e==j||t==E&&e==R&&r[7].length<=p[8]||t==(E|R)&&e==j,(a<E||u)&&(t&b&&(r[2]=p[2],a|=e&b?0:A),(e=p[3])&&(u=r[3],r[3]=u?Kt(u,e,p[4]):Kn(e),r[4]=u?_(r[3],N):Kn(p[4])),(e=p[5])&&(u=r[5],r[5]=u?Vt(u,e,p[6]):Kn(e),r[6]=u?_(r[5],N):Kn(p[6])),(e=p[7])&&(r[7]=Kn(e)),t&E&&(r[8]=null==r[8]?p[8]:Cu(r[8],p[8])),null==r[9]&&(r[9]=p[9]),r[0]=p[0],r[1]=a),t=r[1],a=r[9]),
|
34
|
+
r[9]=null==a?l?0:n.length:Ru(a-f,0)||0,(p?Xu:to)(t==b?Xt(r[0],r[2]):t!=k&&t!=(b|k)||r[4].length?hr.apply(m,r):vr.apply(m,r),r)}function dr(n,t,r,e,u,o,i){var a=-1,l=n.length,f=t.length;if(l!=f&&(!u||f<=l))return false;for(;++a<l;){var c=n[a],f=t[a],s=e?e(u?f:c,u?c:f,a):m;if(s!==m){if(s)continue;return false}if(u){if(!nt(t,function(n){return c===n||r(c,n,e,u,o,i)}))return false}else if(c!==f&&!r(c,f,e,u,o,i))return false}return true}function mr(n,t,r){switch(r){case B:case M:return+n==+t;case q:return n.name==t.name&&n.message==t.message;
|
35
|
+
case K:return n!=+n?t!=+t:n==+t;case Y:case Z:return n==t+""}return false}function wr(n,t,r,e,u,o,i){var a=Ho(n),l=a.length,f=Ho(t).length;if(l!=f&&!u)return false;for(f=l;f--;){var c=a[f];if(!(u?c in t:ou.call(t,c)))return false}for(var s=u;++f<l;){var c=a[f],p=n[c],h=t[c],_=e?e(u?h:p,u?p:h,c):m;if(_===m?!r(p,h,e,u,o,i):!_)return false;s||(s="constructor"==c)}return s||(r=n.constructor,e=t.constructor,!(r!=e&&"constructor"in n&&"constructor"in t)||typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)?true:false;
|
36
|
+
}function br(n,t,r){var e=Nn.callback||$e,e=e===$e?at:e;return r?e(n,t,r):e}function xr(n){for(var t=n.name,r=Mu[t],e=r?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==n)return u.name}return t}function Ar(n,t,e){var u=Nn.indexOf||Yr,u=u===Yr?r:u;return n?u(n,t,e):u}function jr(n){n=Ee(n);for(var t=n.length;t--;){var r=n[t][1];n[t][2]=r===r&&!ye(r)}return n}function Or(n,t){var r=null==n?m:n[t];return de(r)?r:m}function kr(n){var t=n.length,r=new n.constructor(t);return t&&"string"==typeof n[0]&&ou.call(n,"index")&&(r.index=n.index,
|
37
|
+
r.input=n.input),r}function Ir(n){return n=n.constructor,typeof n=="function"&&n instanceof n||(n=Ge),new n}function Er(n,t,r){var e=n.constructor;switch(t){case G:return Dt(n);case B:case M:return new e(+n);case J:case X:case H:case Q:case nn:case tn:case rn:case en:case un:return e instanceof e&&(e=qu[t]),t=n.buffer,new e(r?Dt(t):t,n.byteOffset,n.length);case K:case Z:return new e(n);case Y:var u=new e(n.source,jn.exec(n));u.lastIndex=n.lastIndex}return u}function Rr(n,t,r){return null==n||Ur(t,n)||(t=Mr(t),
|
38
|
+
n=1==t.length?n:wt(n,Tt(t,0,-1)),t=Zr(t)),t=null==n?n:n[t],null==t?m:t.apply(n,r)}function Cr(n){return null!=n&&Fr(no(n))}function Sr(n,t){return n=typeof n=="number"||In.test(n)?+n:-1,t=null==t?zu:t,-1<n&&0==n%1&&n<t}function Tr(n,t,r){if(!ye(r))return false;var e=typeof t;return("number"==e?Cr(r)&&Sr(t,r.length):"string"==e&&t in r)?(t=r[t],n===n?n===t:t!==t):false}function Ur(n,t){var r=typeof n;return"string"==r&&yn.test(n)||"number"==r?true:zo(n)?false:!gn.test(n)||null!=t&&n in Br(t)}function Wr(n){var t=xr(n);
|
39
|
+
return t in Bn.prototype?(t=Nn[t],n===t?true:(t=Qu(t),!!t&&n===t[0])):false}function Fr(n){return typeof n=="number"&&-1<n&&0==n%1&&n<=zu}function $r(n,t){n=Br(n);for(var r=-1,e=t.length,u={};++r<e;){var o=t[r];o in n&&(u[o]=n[o])}return u}function Lr(n,t){var r={};return gt(n,function(n,e,u){t(n,e,u)&&(r[e]=n)}),r}function Nr(n){var t,r=Nn.support;if(!p(n)||au.call(n)!=V||Gn(n)||!(ou.call(n,"constructor")||(t=n.constructor,typeof t!="function"||t instanceof t))||!r.argsTag&&he(n))return false;var e;return r.ownLast?(gt(n,function(n,t,r){
|
40
|
+
return e=ou.call(r,t),false}),false!==e):(gt(n,function(n,t){e=t}),e===m||ou.call(n,e))}function Pr(n){for(var t=Ie(n),r=t.length,e=r&&n.length,u=!!e&&Fr(e)&&(zo(n)||he(n)||be(n)),o=-1,i=[];++o<r;){var a=t[o];(u&&Sr(a,e)||ou.call(n,a))&&i.push(a)}return i}function zr(n){return null==n?[]:Cr(n)?Nn.support.unindexedChars&&be(n)?n.split(""):ye(n)?n:Ge(n):Re(n)}function Br(n){if(Nn.support.unindexedChars&&be(n)){for(var t=-1,r=n.length,e=Ge(n);++t<r;)e[t]=n.charAt(t);return e}return ye(n)?n:Ge(n)}function Mr(n){
|
41
|
+
if(zo(n))return n;var t=[];return u(n).replace(dn,function(n,r,e,u){t.push(e?u.replace(xn,"$1"):r||n)}),t}function qr(n){return n instanceof Bn?n.clone():new zn(n.__wrapped__,n.__chain__,Kn(n.__actions__))}function Dr(n,t,r){return n&&n.length?((r?Tr(n,t,r):null==t)&&(t=1),Tt(n,0>t?0:t)):[]}function Kr(n,t,r){var e=n?n.length:0;return e?((r?Tr(n,t,r):null==t)&&(t=1),t=e-(+t||0),Tt(n,0,0>t?0:t)):[]}function Vr(n){return n?n[0]:m}function Yr(n,t,e){var u=n?n.length:0;if(!u)return-1;if(typeof e=="number")e=0>e?Ru(u+e,0):e;else if(e)return e=Bt(n,t),
|
42
|
+
n=n[e],(t===t?t===n:n!==n)?e:-1;return r(n,t,e||0)}function Zr(n){var t=n?n.length:0;return t?n[t-1]:m}function Gr(n){return Dr(n,1)}function Jr(n,t,e,u){if(!n||!n.length)return[];null!=t&&typeof t!="boolean"&&(u=e,e=Tr(n,t,u)?null:t,t=false);var o=br();if((null!=e||o!==at)&&(e=o(e,u,3)),t&&Ar()==r){t=e;var i;e=-1,u=n.length;for(var o=-1,a=[];++e<u;){var l=n[e],f=t?t(l,e,n):l;e&&i===f||(i=f,a[++o]=l)}n=a}else n=Lt(n,e);return n}function Xr(n){if(!n||!n.length)return[];var t=-1,r=0;n=Xn(n,function(n){
|
43
|
+
return Cr(n)?(r=Ru(n.length,r),true):void 0});for(var e=qe(r);++t<r;)e[t]=Hn(n,It(t));return e}function Hr(n,t,r){return n&&n.length?(n=Xr(n),null==t?n:(t=qt(t,r,4),Hn(n,function(n){return Qn(n,t,m,true)}))):[]}function Qr(n,t){var r=-1,e=n?n.length:0,u={};for(!e||t||zo(n[0])||(t=[]);++r<e;){var o=n[r];t?u[o]=t[r]:o&&(u[o[0]]=o[1])}return u}function ne(n){return n=Nn(n),n.__chain__=true,n}function te(n,t,r){return t.call(r,n)}function re(n,t,r){var e=zo(n)?Yn:st;return r&&Tr(n,t,r)&&(t=null),(typeof t!="function"||r!==m)&&(t=br(t,r,3)),
|
44
|
+
e(n,t)}function ee(n,t,r){var e=zo(n)?Xn:ht;return t=br(t,r,3),e(n,t)}function ue(n,t,r,e){var u=n?no(n):0;return Fr(u)||(n=Re(n),u=n.length),u?(r=typeof r!="number"||e&&Tr(t,r,e)?0:0>r?Ru(u+r,0):r||0,typeof n=="string"||!zo(n)&&be(n)?r<u&&-1<n.indexOf(t,r):-1<Ar(n,t,r)):false}function oe(n,t,r){var e=zo(n)?Hn:At;return t=br(t,r,3),e(n,t)}function ie(n,t,r){if(r?Tr(n,t,r):null==t){n=zr(n);var e=n.length;return 0<e?n[Ct(0,e-1)]:m}r=-1,n=je(n);var e=n.length,u=e-1;for(t=Cu(0>t?0:+t||0,e);++r<t;){var e=Ct(r,u),o=n[e];
|
45
|
+
n[e]=n[r],n[r]=o}return n.length=t,n}function ae(n,t,r){var e=zo(n)?nt:Ut;return r&&Tr(n,t,r)&&(t=null),(typeof t!="function"||r!==m)&&(t=br(t,r,3)),e(n,t)}function le(n,t){var r;if(typeof t!="function"){if(typeof n!="function")throw new He(L);var e=n;n=t,t=e}return function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}}function fe(n,t,r){function e(){var r=t-(Io()-f);0>=r||r>t?(a&&hu(a),r=p,a=s=p=m,r&&(h=Io(),l=n.apply(c,i),s||a||(i=c=null))):s=wu(e,r)}function u(){s&&hu(s),a=s=p=m,
|
46
|
+
(v||_!==t)&&(h=Io(),l=n.apply(c,i),s||a||(i=c=null))}function o(){if(i=arguments,f=Io(),c=this,p=v&&(s||!g),false===_)var r=g&&!s;else{a||g||(h=f);var o=_-(f-h),y=0>=o||o>_;y?(a&&(a=hu(a)),h=f,l=n.apply(c,i)):a||(a=wu(u,o))}return y&&s?s=hu(s):s||t===_||(s=wu(e,t)),r&&(y=true,l=n.apply(c,i)),!y||s||a||(i=c=null),l}var i,a,l,f,c,s,p,h=0,_=false,v=true;if(typeof n!="function")throw new He(L);if(t=0>t?0:+t||0,true===r)var g=true,v=false;else ye(r)&&(g=r.leading,_="maxWait"in r&&Ru(+r.maxWait||0,t),v="trailing"in r?r.trailing:v);
|
47
|
+
return o.cancel=function(){s&&hu(s),a&&hu(a),a=s=p=m},o}function ce(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=n.apply(this,e),r.cache=o.set(u,e),e)}if(typeof n!="function"||t&&typeof t!="function")throw new He(L);return r.cache=new ce.Cache,r}function se(n,t){if(typeof n!="function")throw new He(L);return t=Ru(t===m?n.length-1:+t||0,0),function(){for(var r=arguments,e=-1,u=Ru(r.length-t,0),o=qe(u);++e<u;)o[e]=r[t+e];switch(t){case 0:return n.call(this,o);
|
48
|
+
case 1:return n.call(this,r[0],o);case 2:return n.call(this,r[0],r[1],o)}for(u=qe(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function pe(n,t){return n>t}function he(n){return p(n)&&Cr(n)&&au.call(n)==P}function _e(n){return!!n&&1===n.nodeType&&p(n)&&(Nn.support.nodeTag?-1<au.call(n).indexOf("Element"):Gn(n))}function ve(n,t,r,e){return e=(r=typeof r=="function"?qt(r,e,3):m)?r(n,t):m,e===m?bt(n,t,r):!!e}function ge(n){return p(n)&&typeof n.message=="string"&&au.call(n)==q}function ye(n){
|
49
|
+
var t=typeof n;return!!n&&("object"==t||"function"==t)}function de(n){return null==n?false:au.call(n)==D?fu.test(uu.call(n)):p(n)&&(Gn(n)?fu:kn).test(n)}function me(n){return typeof n=="number"||p(n)&&au.call(n)==K}function we(n){return ye(n)&&au.call(n)==Y}function be(n){return typeof n=="string"||p(n)&&au.call(n)==Z}function xe(n){return p(n)&&Fr(n.length)&&!!Fn[au.call(n)]}function Ae(n,t){return n<t}function je(n){var t=n?no(n):0;return Fr(t)?t?Nn.support.unindexedChars&&be(n)?n.split(""):Kn(n):[]:Re(n);
|
50
|
+
}function Oe(n){return it(n,Ie(n))}function ke(n){return mt(n,Ie(n))}function Ie(n){if(null==n)return[];ye(n)||(n=Ge(n));for(var t=n.length,r=Nn.support,t=t&&Fr(t)&&(zo(n)||he(n)||be(n))&&t||0,e=n.constructor,u=-1,e=Mo(e)&&e.prototype||tu,o=e===n,i=qe(t),a=0<t,l=r.enumErrorProps&&(n===nu||n instanceof Ke),f=r.enumPrototypes&&Mo(n);++u<t;)i[u]=u+"";for(var c in n)f&&"prototype"==c||l&&("message"==c||"name"==c)||a&&Sr(c,t)||"constructor"==c&&(o||!ou.call(n,c))||i.push(c);if(r.nonEnumShadows&&n!==tu)for(t=n===ru?Z:n===nu?q:au.call(n),
|
51
|
+
r=Du[t]||Du[V],t==V&&(e=tu),t=Wn.length;t--;)c=Wn[t],u=r[c],o&&u||(u?!ou.call(n,c):n[c]===e[c])||i.push(c);return i}function Ee(n){n=Br(n);for(var t=-1,r=Ho(n),e=r.length,u=qe(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u}function Re(n){return Nt(n,Ho(n))}function Ce(n){return(n=u(n))&&n.replace(En,l).replace(bn,"")}function Se(n){return(n=u(n))&&wn.test(n)?n.replace(mn,"\\$&"):n}function Te(n,t,r){return r&&Tr(n,t,r)&&(t=0),Uu(n,t)}function Ue(n,t){var r="";if(n=u(n),t=+t,1>t||!n||!Iu(t))return r;
|
52
|
+
do t%2&&(r+=n),t=_u(t/2),n+=n;while(t);return r}function We(n,t,r){var e=n;return(n=u(n))?(r?Tr(e,t,r):null==t)?n.slice(v(n),g(n)+1):(t+="",n.slice(o(n,t),i(n,t)+1)):n}function Fe(n,t,r){return r&&Tr(n,t,r)&&(t=null),n=u(n),n.match(t||Sn)||[]}function $e(n,t,r){return r&&Tr(n,t,r)&&(t=null),p(n)?Pe(n):at(n,t)}function Le(n){return function(){return n}}function Ne(n){return n}function Pe(n){return jt(lt(n,true))}function ze(n,t,r){if(null==r){var e=ye(t),u=e?Ho(t):null;((u=u&&u.length?mt(t,u):null)?u.length:e)||(u=false,
|
53
|
+
r=t,t=n,n=this)}u||(u=mt(t,Ho(t)));var o=true,e=-1,i=Mo(n),a=u.length;false===r?o=false:ye(r)&&"chain"in r&&(o=r.chain);for(;++e<a;){r=u[e];var l=t[r];n[r]=l,i&&(n.prototype[r]=function(t){return function(){var r=this.__chain__;if(o||r){var e=n(this.__wrapped__);return(e.__actions__=Kn(this.__actions__)).push({func:t,args:arguments,thisArg:n}),e.__chain__=r,e}return r=[this.value()],yu.apply(r,arguments),t.apply(n,r)}}(l))}return n}function Be(){}function Me(n){return Ur(n)?It(n):Et(n)}h=h?Jn.defaults(Zn.Object(),h,Jn.pick(Zn,Un)):Zn;
|
54
|
+
var qe=h.Array,De=h.Date,Ke=h.Error,Ve=h.Function,Ye=h.Math,Ze=h.Number,Ge=h.Object,Je=h.RegExp,Xe=h.String,He=h.TypeError,Qe=qe.prototype,nu=Ke.prototype,tu=Ge.prototype,ru=Xe.prototype,eu=(eu=h.window)?eu.document:null,uu=Ve.prototype.toString,ou=tu.hasOwnProperty,iu=0,au=tu.toString,lu=h._,fu=Je("^"+Se(uu.call(ou)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),cu=Or(h,"ArrayBuffer"),su=Or(cu&&new cu(0),"slice"),pu=Ye.ceil,hu=h.clearTimeout,_u=Ye.floor,vu=Or(Ge,"getPrototypeOf"),gu=h.parseFloat,yu=Qe.push,du=tu.propertyIsEnumerable,mu=Or(h,"Set"),wu=h.setTimeout,bu=Qe.splice,xu=Or(h,"Uint8Array"),Au=Or(h,"WeakMap"),ju=function(){
|
55
|
+
try{var n=Or(h,"Float64Array"),t=new n(new cu(10),0,1)&&n}catch(r){}return t||null}(),Ou=Or(Ge,"create"),ku=Or(qe,"isArray"),Iu=h.isFinite,Eu=Or(Ge,"keys"),Ru=Ye.max,Cu=Ye.min,Su=Or(De,"now"),Tu=Or(Ze,"isFinite"),Uu=h.parseInt,Wu=Ye.random,Fu=Ze.NEGATIVE_INFINITY,$u=Ze.POSITIVE_INFINITY,Lu=4294967294,Nu=2147483647,Pu=ju?ju.BYTES_PER_ELEMENT:0,zu=9007199254740991,Bu=Au&&new Au,Mu={},qu={};qu[J]=h.Float32Array,qu[X]=h.Float64Array,qu[H]=h.Int8Array,qu[Q]=h.Int16Array,qu[nn]=h.Int32Array,qu[tn]=h.Uint8Array,
|
56
|
+
qu[rn]=h.Uint8ClampedArray,qu[en]=h.Uint16Array,qu[un]=h.Uint32Array;var Du={};Du[z]=Du[M]=Du[K]={constructor:true,toLocaleString:true,toString:true,valueOf:true},Du[B]=Du[Z]={constructor:true,toString:true,valueOf:true},Du[q]=Du[D]=Du[Y]={constructor:true,toString:true},Du[V]={constructor:true},Vn(Wn,function(n){for(var t in Du)if(ou.call(Du,t)){var r=Du[t];r[n]=ou.call(r,n)}});var Ku=Nn.support={};!function(n){function t(){this.x=n}var r={0:n,length:n},e=[];t.prototype={valueOf:n,y:n};for(var u in new t)e.push(u);Ku.argsTag=au.call(arguments)==P,
|
57
|
+
Ku.enumErrorProps=du.call(nu,"message")||du.call(nu,"name"),Ku.enumPrototypes=du.call(t,"prototype"),Ku.nodeTag=au.call(eu)!=V,Ku.nonEnumShadows=!/valueOf/.test(e),Ku.ownLast="x"!=e[0],Ku.spliceObjects=(bu.call(r,0,1),!r[0]),Ku.unindexedChars="xx"!="x"[0]+Ge("x")[0];try{Ku.dom=11===eu.createDocumentFragment().nodeType}catch(o){Ku.dom=false}}(1,0),Nn.templateSettings={escape:hn,evaluate:_n,interpolate:vn,variable:"",imports:{_:Nn}};var Vu=function(){function n(){}return function(t){if(ye(t)){n.prototype=t;
|
58
|
+
var r=new n;n.prototype=null}return r||{}}}(),Yu=Gt(yt),Zu=Gt(dt,true),Gu=Jt(),Ju=Jt(true),Xu=Bu?function(n,t){return Bu.set(n,t),n}:Ne;su||(Dt=cu&&xu?function(n){var t=n.byteLength,r=ju?_u(t/Pu):0,e=r*Pu,u=new cu(t);if(r){var o=new ju(u,0,r);o.set(new ju(n,0,r))}return t!=e&&(o=new xu(u,e),o.set(new xu(n,e))),u}:Le(null));var Hu=Ou&&mu?function(n){return new qn(n)}:Le(null),Qu=Bu?function(n){return Bu.get(n)}:Be,no=It("length"),to=function(){var n=0,t=0;return function(r,e){var u=Io(),o=U-(u-t);if(t=u,
|
59
|
+
0<o){if(++n>=T)return r}else n=0;return Xu(r,e)}}(),ro=se(function(n,t){return Cr(n)?ct(n,vt(t,false,true)):[]}),eo=er(),uo=er(true),oo=se(function(n){for(var t=n.length,e=t,u=qe(c),o=Ar(),i=o==r,a=[];e--;){var l=n[e]=Cr(l=n[e])?l:[];u[e]=i&&120<=l.length?Hu(e&&l):null}var i=n[0],f=-1,c=i?i.length:0,s=u[0];n:for(;++f<c;)if(l=i[f],0>(s?Dn(s,l):o(a,l,0))){for(e=t;--e;){var p=u[e];if(0>(p?Dn(p,l):o(n[e],l,0)))continue n}s&&s.push(l),a.push(l)}return a}),io=se(function(t,r){r=vt(r);var e=ot(t,r);return Rt(t,r.sort(n)),
|
60
|
+
e}),ao=gr(),lo=gr(true),fo=se(function(n){return Lt(vt(n,false,true))}),co=se(function(n,t){return Cr(n)?ct(n,t):[]}),so=se(Xr),po=se(function(n){var t=n.length,r=2<t?n[t-2]:m,e=1<t?n[t-1]:m;return 2<t&&typeof r=="function"?t-=2:(r=1<t&&typeof e=="function"?(--t,e):m,e=m),n.length=t,Hr(n,r,e)}),ho=se(function(n,t){return Cr(n)&&(n=zr(n)),ot(n,vt(t))}),_o=Yt(function(n,t,r){ou.call(n,r)?++n[r]:n[r]=1}),vo=rr(Yu),go=rr(Zu,true),yo=ir(Vn,Yu),mo=ir(function(n,t){for(var r=n.length;r--&&false!==t(n[r],r,n););return n;
|
61
|
+
},Zu),wo=Yt(function(n,t,r){ou.call(n,r)?n[r].push(t):n[r]=[t]}),bo=Yt(function(n,t,r){n[r]=t}),xo=se(function(n,t,r){var e=-1,u=typeof t=="function",o=Ur(t),i=Cr(n)?qe(n.length):[];return Yu(n,function(n){var a=u?t:o&&null!=n?n[t]:null;i[++e]=a?a.apply(n,r):Rr(n,t,r)}),i}),Ao=Yt(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),jo=pr(Qn,Yu),Oo=pr(function(n,t,r,e){var u=n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r},Zu),ko=se(function(n,t){if(null==n)return[];var r=t[2];return r&&Tr(t[0],t[1],r)&&(t.length=1),
|
62
|
+
Ft(n,vt(t),[])}),Io=Su||function(){return(new De).getTime()},Eo=se(function(n,t,r){var e=b;if(r.length)var u=_(r,Eo.placeholder),e=e|k;return yr(n,e,t,r,u)}),Ro=se(function(n,t){t=t.length?vt(t):ke(n);for(var r=-1,e=t.length;++r<e;){var u=t[r];n[u]=yr(n[u],b,n)}return n}),Co=se(function(n,t,r){var e=b|x;if(r.length)var u=_(r,Co.placeholder),e=e|k;return yr(t,e,n,r,u)}),So=nr(j),To=nr(O),Uo=se(function(n,t){return ft(n,1,t)}),Wo=se(function(n,t,r){return ft(n,t,r)}),Fo=or(),$o=or(true),Lo=sr(k),No=sr(I),Po=se(function(n,t){
|
63
|
+
return yr(n,R,null,null,null,vt(t))});Ku.argsTag||(he=function(n){return p(n)&&Cr(n)&&ou.call(n,"callee")&&!du.call(n,"callee")});var zo=ku||function(n){return p(n)&&Fr(n.length)&&au.call(n)==z};Ku.dom||(_e=function(n){return!!n&&1===n.nodeType&&p(n)&&!qo(n)});var Bo=Tu||function(n){return typeof n=="number"&&Iu(n)},Mo=e(/x/)||xu&&!e(xu)?function(n){return au.call(n)==D}:e,qo=vu?function(n){if(!n||au.call(n)!=V||!Nn.support.argsTag&&he(n))return false;var t=Or(n,"valueOf"),r=t&&(r=vu(t))&&vu(r);return r?n==r||vu(n)==r:Nr(n);
|
64
|
+
}:Nr,Do=Zt(function(n,t,r){return r?et(n,t,r):ut(n,t)}),Ko=se(function(n){var t=n[0];return null==t?t:(n.push(tt),Do.apply(m,n))}),Vo=ur(yt),Yo=ur(dt),Zo=ar(Gu),Go=ar(Ju),Jo=lr(yt),Xo=lr(dt),Ho=Eu?function(n){var t=null==n?null:n.constructor;return typeof t=="function"&&t.prototype===n||(typeof n=="function"?Nn.support.enumPrototypes:Cr(n))?Pr(n):ye(n)?Eu(n):[]}:Pr,Qo=fr(true),ni=fr(),ti=Zt(kt),ri=se(function(n,t){if(null==n)return{};if("function"!=typeof t[0])return t=Hn(vt(t),Xe),$r(n,ct(Ie(n),t));
|
65
|
+
var r=qt(t[0],t[1],3);return Lr(n,function(n,t,e){return!r(n,t,e)})}),ei=se(function(n,t){return null==n?{}:"function"==typeof t[0]?Lr(n,qt(t[0],t[1],3)):$r(n,vt(t))}),ui=Ht(function(n,t,r){return t=t.toLowerCase(),n+(r?t.charAt(0).toUpperCase()+t.slice(1):t)}),oi=Ht(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),ii=cr(),ai=cr(true);8!=Uu(Tn+"08")&&(Te=function(n,t,r){return(r?Tr(n,t,r):null==t)?t=0:t&&(t=+t),n=We(n),Uu(n,t||(On.test(n)?16:10))});var li=Ht(function(n,t,r){return n+(r?"_":"")+t.toLowerCase();
|
66
|
+
}),fi=Ht(function(n,t,r){return n+(r?" ":"")+(t.charAt(0).toUpperCase()+t.slice(1))}),ci=se(function(n,t){try{return n.apply(m,t)}catch(r){return ge(r)?r:new Ke(r)}}),si=se(function(n,t){return function(r){return Rr(r,n,t)}}),pi=se(function(n,t){return function(r){return Rr(n,r,t)}}),hi=tr(pe,Fu),_i=tr(Ae,$u);return Nn.prototype=Pn.prototype,zn.prototype=Vu(Pn.prototype),zn.prototype.constructor=zn,Bn.prototype=Vu(Pn.prototype),Bn.prototype.constructor=Bn,Mn.prototype["delete"]=function(n){return this.has(n)&&delete this.__data__[n];
|
67
|
+
},Mn.prototype.get=function(n){return"__proto__"==n?m:this.__data__[n]},Mn.prototype.has=function(n){return"__proto__"!=n&&ou.call(this.__data__,n)},Mn.prototype.set=function(n,t){return"__proto__"!=n&&(this.__data__[n]=t),this},qn.prototype.push=function(n){var t=this.data;typeof n=="string"||ye(n)?t.set.add(n):t.hash[n]=true},ce.Cache=Mn,Nn.after=function(n,t){if(typeof t!="function"){if(typeof n!="function")throw new He(L);var r=n;n=t,t=r}return n=Iu(n=+n)?n:0,function(){return 1>--n?t.apply(this,arguments):void 0;
|
68
|
+
}},Nn.ary=function(n,t,r){return r&&Tr(n,t,r)&&(t=null),t=n&&null==t?n.length:Ru(+t||0,0),yr(n,E,null,null,null,null,t)},Nn.assign=Do,Nn.at=ho,Nn.before=le,Nn.bind=Eo,Nn.bindAll=Ro,Nn.bindKey=Co,Nn.callback=$e,Nn.chain=ne,Nn.chunk=function(n,t,r){t=(r?Tr(n,t,r):null==t)?1:Ru(+t||1,1),r=0;for(var e=n?n.length:0,u=-1,o=qe(pu(e/t));r<e;)o[++u]=Tt(n,r,r+=t);return o},Nn.compact=function(n){for(var t=-1,r=n?n.length:0,e=-1,u=[];++t<r;){var o=n[t];o&&(u[++e]=o)}return u},Nn.constant=Le,Nn.countBy=_o,Nn.create=function(n,t,r){
|
69
|
+
var e=Vu(n);return r&&Tr(n,t,r)&&(t=null),t?ut(e,t):e},Nn.curry=So,Nn.curryRight=To,Nn.debounce=fe,Nn.defaults=Ko,Nn.defer=Uo,Nn.delay=Wo,Nn.difference=ro,Nn.drop=Dr,Nn.dropRight=Kr,Nn.dropRightWhile=function(n,t,r){return n&&n.length?Pt(n,br(t,r,3),true,true):[]},Nn.dropWhile=function(n,t,r){return n&&n.length?Pt(n,br(t,r,3),true):[]},Nn.fill=function(n,t,r,e){var u=n?n.length:0;if(!u)return[];for(r&&typeof r!="number"&&Tr(n,t,r)&&(r=0,e=u),u=n.length,r=null==r?0:+r||0,0>r&&(r=-r>u?0:u+r),e=e===m||e>u?u:+e||0,
|
70
|
+
0>e&&(e+=u),u=r>e?0:e>>>0,r>>>=0;r<u;)n[r++]=t;return n},Nn.filter=ee,Nn.flatten=function(n,t,r){var e=n?n.length:0;return r&&Tr(n,t,r)&&(t=false),e?vt(n,t):[]},Nn.flattenDeep=function(n){return n&&n.length?vt(n,true):[]},Nn.flow=Fo,Nn.flowRight=$o,Nn.forEach=yo,Nn.forEachRight=mo,Nn.forIn=Zo,Nn.forInRight=Go,Nn.forOwn=Jo,Nn.forOwnRight=Xo,Nn.functions=ke,Nn.groupBy=wo,Nn.indexBy=bo,Nn.initial=function(n){return Kr(n,1)},Nn.intersection=oo,Nn.invert=function(n,t,r){r&&Tr(n,t,r)&&(t=null),r=-1;for(var e=Ho(n),u=e.length,o={};++r<u;){
|
71
|
+
var i=e[r],a=n[i];t?ou.call(o,a)?o[a].push(i):o[a]=[i]:o[a]=i}return o},Nn.invoke=xo,Nn.keys=Ho,Nn.keysIn=Ie,Nn.map=oe,Nn.mapKeys=Qo,Nn.mapValues=ni,Nn.matches=Pe,Nn.matchesProperty=function(n,t){return Ot(n,lt(t,true))},Nn.memoize=ce,Nn.merge=ti,Nn.method=si,Nn.methodOf=pi,Nn.mixin=ze,Nn.negate=function(n){if(typeof n!="function")throw new He(L);return function(){return!n.apply(this,arguments)}},Nn.omit=ri,Nn.once=function(n){return le(2,n)},Nn.pairs=Ee,Nn.partial=Lo,Nn.partialRight=No,Nn.partition=Ao,
|
72
|
+
Nn.pick=ei,Nn.pluck=function(n,t){return oe(n,Me(t))},Nn.property=Me,Nn.propertyOf=function(n){return function(t){return wt(n,Mr(t),t+"")}},Nn.pull=function(){var n=arguments,t=n[0];if(!t||!t.length)return t;for(var r=0,e=Ar(),u=n.length;++r<u;)for(var o=0,i=n[r];-1<(o=e(t,i,o));)bu.call(t,o,1);return t},Nn.pullAt=io,Nn.range=function(n,t,r){r&&Tr(n,t,r)&&(t=r=null),n=+n||0,r=null==r?1:+r||0,null==t?(t=n,n=0):t=+t||0;var e=-1;t=Ru(pu((t-n)/(r||1)),0);for(var u=qe(t);++e<t;)u[e]=n,n+=r;return u},Nn.rearg=Po,
|
73
|
+
Nn.reject=function(n,t,r){var e=zo(n)?Xn:ht;return t=br(t,r,3),e(n,function(n,r,e){return!t(n,r,e)})},Nn.remove=function(n,t,r){var e=[];if(!n||!n.length)return e;var u=-1,o=[],i=n.length;for(t=br(t,r,3);++u<i;)r=n[u],t(r,u,n)&&(e.push(r),o.push(u));return Rt(n,o),e},Nn.rest=Gr,Nn.restParam=se,Nn.set=function(n,t,r){if(null==n)return n;var e=t+"";t=null!=n[e]||Ur(t,n)?[e]:Mr(t);for(var e=-1,u=t.length,o=u-1,i=n;null!=i&&++e<u;){var a=t[e];ye(i)&&(e==o?i[a]=r:null==i[a]&&(i[a]=Sr(t[e+1])?[]:{})),i=i[a];
|
74
|
+
}return n},Nn.shuffle=function(n){return ie(n,$u)},Nn.slice=function(n,t,r){var e=n?n.length:0;return e?(r&&typeof r!="number"&&Tr(n,t,r)&&(t=0,r=e),Tt(n,t,r)):[]},Nn.sortBy=function(n,t,r){if(null==n)return[];r&&Tr(n,t,r)&&(t=null);var e=-1;return t=br(t,r,3),n=At(n,function(n,r,u){return{a:t(n,r,u),b:++e,c:n}}),Wt(n,a)},Nn.sortByAll=ko,Nn.sortByOrder=function(n,t,r,e){return null==n?[]:(e&&Tr(t,r,e)&&(r=null),zo(t)||(t=null==t?[]:[t]),zo(r)||(r=null==r?[]:[r]),Ft(n,t,r))},Nn.spread=function(n){
|
75
|
+
if(typeof n!="function")throw new He(L);return function(t){return n.apply(this,t)}},Nn.take=function(n,t,r){return n&&n.length?((r?Tr(n,t,r):null==t)&&(t=1),Tt(n,0,0>t?0:t)):[]},Nn.takeRight=function(n,t,r){var e=n?n.length:0;return e?((r?Tr(n,t,r):null==t)&&(t=1),t=e-(+t||0),Tt(n,0>t?0:t)):[]},Nn.takeRightWhile=function(n,t,r){return n&&n.length?Pt(n,br(t,r,3),false,true):[]},Nn.takeWhile=function(n,t,r){return n&&n.length?Pt(n,br(t,r,3)):[]},Nn.tap=function(n,t,r){return t.call(r,n),n},Nn.throttle=function(n,t,r){
|
76
|
+
var e=true,u=true;if(typeof n!="function")throw new He(L);return false===r?e=false:ye(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),Ln.leading=e,Ln.maxWait=+t,Ln.trailing=u,fe(n,t,Ln)},Nn.thru=te,Nn.times=function(n,t,r){if(n=_u(n),1>n||!Iu(n))return[];var e=-1,u=qe(Cu(n,4294967295));for(t=qt(t,r,1);++e<n;)4294967295>e?u[e]=t(e):t(e);return u},Nn.toArray=je,Nn.toPlainObject=Oe,Nn.transform=function(n,t,r,e){var u=zo(n)||xe(n);return t=br(t,e,4),null==r&&(u||ye(n)?(e=n.constructor,r=u?zo(n)?new e:[]:Vu(Mo(e)?e.prototype:null)):r={}),
|
77
|
+
(u?Vn:yt)(n,function(n,e,u){return t(r,n,e,u)}),r},Nn.union=fo,Nn.uniq=Jr,Nn.unzip=Xr,Nn.unzipWith=Hr,Nn.values=Re,Nn.valuesIn=function(n){return Nt(n,Ie(n))},Nn.where=function(n,t){return ee(n,jt(t))},Nn.without=co,Nn.wrap=function(n,t){return t=null==t?Ne:t,yr(t,k,null,[n],[])},Nn.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var r=arguments[n];if(Cr(r))var e=e?ct(e,r).concat(ct(r,e)):r}return e?Lt(e):[]},Nn.zip=so,Nn.zipObject=Qr,Nn.zipWith=po,Nn.backflow=$o,Nn.collect=oe,Nn.compose=$o,
|
78
|
+
Nn.each=yo,Nn.eachRight=mo,Nn.extend=Do,Nn.iteratee=$e,Nn.methods=ke,Nn.object=Qr,Nn.select=ee,Nn.tail=Gr,Nn.unique=Jr,ze(Nn,Nn),Nn.add=function(n,t){return(+n||0)+(+t||0)},Nn.attempt=ci,Nn.camelCase=ui,Nn.capitalize=function(n){return(n=u(n))&&n.charAt(0).toUpperCase()+n.slice(1)},Nn.clone=function(n,t,r,e){return t&&typeof t!="boolean"&&Tr(n,t,r)?t=false:typeof t=="function"&&(e=r,r=t,t=false),typeof r=="function"?lt(n,t,qt(r,e,1)):lt(n,t)},Nn.cloneDeep=function(n,t,r){return typeof t=="function"?lt(n,true,qt(t,r,1)):lt(n,true);
|
79
|
+
},Nn.deburr=Ce,Nn.endsWith=function(n,t,r){n=u(n),t+="";var e=n.length;return r=r===m?e:Cu(0>r?0:+r||0,e),r-=t.length,0<=r&&n.indexOf(t,r)==r},Nn.escape=function(n){return(n=u(n))&&pn.test(n)?n.replace(cn,f):n},Nn.escapeRegExp=Se,Nn.every=re,Nn.find=vo,Nn.findIndex=eo,Nn.findKey=Vo,Nn.findLast=go,Nn.findLastIndex=uo,Nn.findLastKey=Yo,Nn.findWhere=function(n,t){return vo(n,jt(t))},Nn.first=Vr,Nn.get=function(n,t,r){return n=null==n?m:wt(n,Mr(t),t+""),n===m?r:n},Nn.gt=pe,Nn.gte=function(n,t){return n>=t;
|
80
|
+
},Nn.has=function(n,t){if(null==n)return false;var r=ou.call(n,t);if(!r&&!Ur(t)){if(t=Mr(t),n=1==t.length?n:wt(n,Tt(t,0,-1)),null==n)return false;t=Zr(t),r=ou.call(n,t)}return r||Fr(n.length)&&Sr(t,n.length)&&(zo(n)||he(n)||be(n))},Nn.identity=Ne,Nn.includes=ue,Nn.indexOf=Yr,Nn.inRange=function(n,t,r){return t=+t||0,"undefined"===typeof r?(r=t,t=0):r=+r||0,n>=Cu(t,r)&&n<Ru(t,r)},Nn.isArguments=he,Nn.isArray=zo,Nn.isBoolean=function(n){return true===n||false===n||p(n)&&au.call(n)==B},Nn.isDate=function(n){return p(n)&&au.call(n)==M;
|
81
|
+
},Nn.isElement=_e,Nn.isEmpty=function(n){return null==n?true:Cr(n)&&(zo(n)||be(n)||he(n)||p(n)&&Mo(n.splice))?!n.length:!Ho(n).length},Nn.isEqual=ve,Nn.isError=ge,Nn.isFinite=Bo,Nn.isFunction=Mo,Nn.isMatch=function(n,t,r,e){return r=typeof r=="function"?qt(r,e,3):m,xt(n,jr(t),r)},Nn.isNaN=function(n){return me(n)&&n!=+n},Nn.isNative=de,Nn.isNull=function(n){return null===n},Nn.isNumber=me,Nn.isObject=ye,Nn.isPlainObject=qo,Nn.isRegExp=we,Nn.isString=be,Nn.isTypedArray=xe,Nn.isUndefined=function(n){
|
82
|
+
return n===m},Nn.kebabCase=oi,Nn.last=Zr,Nn.lastIndexOf=function(n,t,r){var e=n?n.length:0;if(!e)return-1;var u=e;if(typeof r=="number")u=(0>r?Ru(e+r,0):Cu(r||0,e-1))+1;else if(r)return u=Bt(n,t,true)-1,n=n[u],(t===t?t===n:n!==n)?u:-1;if(t!==t)return s(n,u,true);for(;u--;)if(n[u]===t)return u;return-1},Nn.lt=Ae,Nn.lte=function(n,t){return n<=t},Nn.max=hi,Nn.min=_i,Nn.noConflict=function(){return h._=lu,this},Nn.noop=Be,Nn.now=Io,Nn.pad=function(n,t,r){n=u(n),t=+t;var e=n.length;return e<t&&Iu(t)?(e=(t-e)/2,
|
83
|
+
t=_u(e),e=pu(e),r=_r("",e,r),r.slice(0,t)+n+r):n},Nn.padLeft=ii,Nn.padRight=ai,Nn.parseInt=Te,Nn.random=function(n,t,r){r&&Tr(n,t,r)&&(t=r=null);var e=null==n,u=null==t;return null==r&&(u&&typeof n=="boolean"?(r=n,n=1):typeof t=="boolean"&&(r=t,u=true)),e&&u&&(t=1,u=false),n=+n||0,u?(t=n,n=0):t=+t||0,r||n%1||t%1?(r=Wu(),Cu(n+r*(t-n+gu("1e-"+((r+"").length-1))),t)):Ct(n,t)},Nn.reduce=jo,Nn.reduceRight=Oo,Nn.repeat=Ue,Nn.result=function(n,t,r){var e=null==n?m:Br(n)[t];return e===m&&(null==n||Ur(t,n)||(t=Mr(t),
|
84
|
+
n=1==t.length?n:wt(n,Tt(t,0,-1)),e=null==n?m:Br(n)[Zr(t)]),e=e===m?r:e),Mo(e)?e.call(n):e},Nn.runInContext=d,Nn.size=function(n){var t=n?no(n):0;return Fr(t)?t:Ho(n).length},Nn.snakeCase=li,Nn.some=ae,Nn.sortedIndex=ao,Nn.sortedLastIndex=lo,Nn.startCase=fi,Nn.startsWith=function(n,t,r){return n=u(n),r=null==r?0:Cu(0>r?0:+r||0,n.length),n.lastIndexOf(t,r)==r},Nn.sum=function(n,t,r){r&&Tr(n,t,r)&&(t=null);var e=br(),u=null==t;if(u&&e===at||(u=false,t=e(t,r,3)),u){for(n=zo(n)?n:zr(n),t=n.length,r=0;t--;)r+=+n[t]||0;
|
85
|
+
n=r}else n=$t(n,t);return n},Nn.template=function(n,t,r){var e=Nn.templateSettings;r&&Tr(n,t,r)&&(t=r=null),n=u(n),t=et(ut({},r||t),e,rt),r=et(ut({},t.imports),e.imports,rt);var o,i,a=Ho(r),l=Nt(r,a),f=0;r=t.interpolate||Rn;var s="__p+='";r=Je((t.escape||Rn).source+"|"+r.source+"|"+(r===vn?An:Rn).source+"|"+(t.evaluate||Rn).source+"|$","g");var p="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,u,a,l){return e||(e=u),s+=n.slice(f,l).replace(Cn,c),r&&(o=true,s+="'+__e("+r+")+'"),
|
86
|
+
a&&(i=true,s+="';"+a+";\n__p+='"),e&&(s+="'+((__t=("+e+"))==null?'':__t)+'"),f=l+t.length,t}),s+="';",(t=t.variable)||(s="with(obj){"+s+"}"),s=(i?s.replace(on,""):s).replace(an,"$1").replace(ln,"$1;"),s="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(o?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+s+"return __p}",t=ci(function(){return Ve(a,p+"return "+s).apply(m,l)}),t.source=s,ge(t))throw t;return t},Nn.trim=We,Nn.trimLeft=function(n,t,r){
|
87
|
+
var e=n;return(n=u(n))?n.slice((r?Tr(e,t,r):null==t)?v(n):o(n,t+"")):n},Nn.trimRight=function(n,t,r){var e=n;return(n=u(n))?(r?Tr(e,t,r):null==t)?n.slice(0,g(n)+1):n.slice(0,i(n,t+"")+1):n},Nn.trunc=function(n,t,r){r&&Tr(n,t,r)&&(t=null);var e=C;if(r=S,null!=t)if(ye(t)){var o="separator"in t?t.separator:o,e="length"in t?+t.length||0:e;r="omission"in t?u(t.omission):r}else e=+t||0;if(n=u(n),e>=n.length)return n;if(e-=r.length,1>e)return r;if(t=n.slice(0,e),null==o)return t+r;if(we(o)){if(n.slice(e).search(o)){
|
88
|
+
var i,a=n.slice(0,e);for(o.global||(o=Je(o.source,(jn.exec(o)||"")+"g")),o.lastIndex=0;n=o.exec(a);)i=n.index;t=t.slice(0,null==i?e:i)}}else n.indexOf(o,e)!=e&&(o=t.lastIndexOf(o),-1<o&&(t=t.slice(0,o)));return t+r},Nn.unescape=function(n){return(n=u(n))&&sn.test(n)?n.replace(fn,y):n},Nn.uniqueId=function(n){var t=++iu;return u(n)+t},Nn.words=Fe,Nn.all=re,Nn.any=ae,Nn.contains=ue,Nn.eq=ve,Nn.detect=vo,Nn.foldl=jo,Nn.foldr=Oo,Nn.head=Vr,Nn.include=ue,Nn.inject=jo,ze(Nn,function(){var n={};return yt(Nn,function(t,r){
|
89
|
+
Nn.prototype[r]||(n[r]=t)}),n}(),false),Nn.sample=ie,Nn.prototype.sample=function(n){return this.__chain__||null!=n?this.thru(function(t){return ie(t,n)}):ie(this.value())},Nn.VERSION=w,Vn("bind bindKey curry curryRight partial partialRight".split(" "),function(n){Nn[n].placeholder=Nn}),Vn(["dropWhile","filter","map","takeWhile"],function(n,t){var r=t!=$,e=t==W;Bn.prototype[n]=function(n,u){var o=this.__filtered__,i=o&&e?new Bn(this):this.clone();return(i.__iteratees__||(i.__iteratees__=[])).push({done:false,
|
90
|
+
count:0,index:0,iteratee:br(n,u,1),limit:-1,type:t}),i.__filtered__=o||r,i}}),Vn(["drop","take"],function(n,t){var r=n+"While";Bn.prototype[n]=function(r){var e=this.__filtered__,u=e&&!t?this.dropWhile():this.clone();return r=null==r?1:Ru(_u(r)||0,0),e?t?u.__takeCount__=Cu(u.__takeCount__,r):Zr(u.__iteratees__).limit=r:(u.__views__||(u.__views__=[])).push({size:r,type:n+(0>u.__dir__?"Right":"")}),u},Bn.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()},Bn.prototype[n+"RightWhile"]=function(n,t){
|
91
|
+
return this.reverse()[r](n,t).reverse()}}),Vn(["first","last"],function(n,t){var r="take"+(t?"Right":"");Bn.prototype[n]=function(){return this[r](1).value()[0]}}),Vn(["initial","rest"],function(n,t){var r="drop"+(t?"":"Right");Bn.prototype[n]=function(){return this[r](1)}}),Vn(["pluck","where"],function(n,t){var r=t?"filter":"map",e=t?jt:Me;Bn.prototype[n]=function(n){return this[r](e(n))}}),Bn.prototype.compact=function(){return this.filter(Ne)},Bn.prototype.reject=function(n,t){return n=br(n,t,1),
|
92
|
+
this.filter(function(t){return!n(t)})},Bn.prototype.slice=function(n,t){n=null==n?0:+n||0;var r=this;return 0>n?r=this.takeRight(-n):n&&(r=this.drop(n)),t!==m&&(t=+t||0,r=0>t?r.dropRight(-t):r.take(t-n)),r},Bn.prototype.toArray=function(){return this.drop(0)},yt(Bn.prototype,function(n,t){var r=Nn[t];if(r){var e=/^(?:filter|map|reject)|While$/.test(t),u=/^(?:first|last)$/.test(t);Nn.prototype[t]=function(){function t(n){return n=[n],yu.apply(n,o),r.apply(Nn,n)}var o=arguments,i=this.__chain__,a=this.__wrapped__,l=!!this.__actions__.length,f=a instanceof Bn,c=o[0],s=f||zo(a);
|
93
|
+
return s&&e&&typeof c=="function"&&1!=c.length&&(f=s=false),f=f&&!l,u&&!i?f?n.call(a):r.call(Nn,this.value()):s?(a=n.apply(f?a:new Bn(this),o),u||!l&&!a.__actions__||(a.__actions__||(a.__actions__=[])).push({func:te,args:[t],thisArg:Nn}),new zn(a,i)):this.thru(t)}}}),Vn("concat join pop push replace shift sort splice split unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?ru:Qe)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:join|pop|replace|shift)$/.test(n),u=Ku.spliceObjects||!/^(?:pop|shift|splice)$/.test(n)?t:function(){
|
94
|
+
var n=t.apply(this,arguments);return 0===this.length&&delete this[0],n};Nn.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?u.apply(this.value(),n):this[r](function(t){return u.apply(t,n)})}}),yt(Bn.prototype,function(n,t){var r=Nn[t];if(r){var e=r.name;(Mu[e]||(Mu[e]=[])).push({name:t,func:r})}}),Mu[hr(null,x).name]=[{name:"wrapper",func:null}],Bn.prototype.clone=function(){var n=this.__actions__,t=this.__iteratees__,r=this.__views__,e=new Bn(this.__wrapped__);return e.__actions__=n?Kn(n):null,
|
95
|
+
e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=t?Kn(t):null,e.__takeCount__=this.__takeCount__,e.__views__=r?Kn(r):null,e},Bn.prototype.reverse=function(){if(this.__filtered__){var n=new Bn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Bn.prototype.value=function(){var n=this.__wrapped__.value();if(!zo(n))return zt(n,this.__actions__);var t,r=this.__dir__,e=0>r;t=n.length;for(var u=this.__views__,o=0,i=-1,a=u?u.length:0;++i<a;){var l=u[i],f=l.size;
|
96
|
+
switch(l.type){case"drop":o+=f;break;case"dropRight":t-=f;break;case"take":t=Cu(t,o+f);break;case"takeRight":o=Ru(o,t-f)}}t={start:o,end:t},u=t.start,o=t.end,t=o-u,u=e?o:u-1,o=Cu(t,this.__takeCount__),a=(i=this.__iteratees__)?i.length:0,l=0,f=[];n:for(;t--&&l<o;){for(var u=u+r,c=-1,s=n[u];++c<a;){var p=i[c],h=p.iteratee,_=p.type;if(_==W){if(p.done&&(e?u>p.index:u<p.index)&&(p.count=0,p.done=false),p.index=u,!(p.done||(_=p.limit,p.done=-1<_?p.count++>=_:!h(s))))continue n}else if(p=h(s),_==$)s=p;else if(!p){
|
97
|
+
if(_==F)continue n;break n}}f[l++]=s}return f},Nn.prototype.chain=function(){return ne(this)},Nn.prototype.commit=function(){return new zn(this.value(),this.__chain__)},Nn.prototype.plant=function(n){for(var t,r=this;r instanceof Pn;){var e=qr(r);t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},Nn.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Bn?(this.__actions__.length&&(n=new Bn(this)),new zn(n.reverse(),this.__chain__)):this.thru(function(n){return n.reverse();
|
98
|
+
})},Nn.prototype.toString=function(){return this.value()+""},Nn.prototype.run=Nn.prototype.toJSON=Nn.prototype.valueOf=Nn.prototype.value=function(){return zt(this.__wrapped__,this.__actions__)},Nn.prototype.collect=Nn.prototype.map,Nn.prototype.head=Nn.prototype.first,Nn.prototype.select=Nn.prototype.filter,Nn.prototype.tail=Nn.prototype.rest,Nn}var m,w="3.9.3",b=1,x=2,A=4,j=8,O=16,k=32,I=64,E=128,R=256,C=30,S="...",T=150,U=16,W=0,F=1,$=2,L="Expected a function",N="__lodash_placeholder__",P="[object Arguments]",z="[object Array]",B="[object Boolean]",M="[object Date]",q="[object Error]",D="[object Function]",K="[object Number]",V="[object Object]",Y="[object RegExp]",Z="[object String]",G="[object ArrayBuffer]",J="[object Float32Array]",X="[object Float64Array]",H="[object Int8Array]",Q="[object Int16Array]",nn="[object Int32Array]",tn="[object Uint8Array]",rn="[object Uint8ClampedArray]",en="[object Uint16Array]",un="[object Uint32Array]",on=/\b__p\+='';/g,an=/\b(__p\+=)''\+/g,ln=/(__e\(.*?\)|\b__t\))\+'';/g,fn=/&(?:amp|lt|gt|quot|#39|#96);/g,cn=/[&<>"'`]/g,sn=RegExp(fn.source),pn=RegExp(cn.source),hn=/<%-([\s\S]+?)%>/g,_n=/<%([\s\S]+?)%>/g,vn=/<%=([\s\S]+?)%>/g,gn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,yn=/^\w*$/,dn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,mn=/[.*+?^${}()|[\]\/\\]/g,wn=RegExp(mn.source),bn=/[\u0300-\u036f\ufe20-\ufe23]/g,xn=/\\(\\)?/g,An=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,jn=/\w*$/,On=/^0[xX]/,kn=/^\[object .+?Constructor\]$/,In=/^\d+$/,En=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Rn=/($^)/,Cn=/['\n\r\u2028\u2029\\]/g,Sn=RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+","g"),Tn=" \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",Un="Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout document isFinite parseFloat parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap window".split(" "),Wn="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Fn={};
|
99
|
+
Fn[J]=Fn[X]=Fn[H]=Fn[Q]=Fn[nn]=Fn[tn]=Fn[rn]=Fn[en]=Fn[un]=true,Fn[P]=Fn[z]=Fn[G]=Fn[B]=Fn[M]=Fn[q]=Fn[D]=Fn["[object Map]"]=Fn[K]=Fn[V]=Fn[Y]=Fn["[object Set]"]=Fn[Z]=Fn["[object WeakMap]"]=false;var $n={};$n[P]=$n[z]=$n[G]=$n[B]=$n[M]=$n[J]=$n[X]=$n[H]=$n[Q]=$n[nn]=$n[K]=$n[V]=$n[Y]=$n[Z]=$n[tn]=$n[rn]=$n[en]=$n[un]=true,$n[q]=$n[D]=$n["[object Map]"]=$n["[object Set]"]=$n["[object WeakMap]"]=false;var Ln={leading:false,maxWait:0,trailing:false},Nn={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A",
|
143
100
|
"\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u",
|
144
|
-
"\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},Pn={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},
|
145
|
-
try{Object({toString:0}+"")}catch(n){return function(){return false}}return function(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}}(),Jn=
|
101
|
+
"\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},Pn={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},zn={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Bn={"function":true,object:true},Mn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},qn=Bn[typeof exports]&&exports&&!exports.nodeType&&exports,Dn=Bn[typeof module]&&module&&!module.nodeType&&module,Kn=Bn[typeof self]&&self&&self.Object&&self,Vn=Bn[typeof window]&&window&&window.Object&&window,Yn=Dn&&Dn.exports===qn&&qn,Zn=qn&&Dn&&typeof global=="object"&&global&&global.Object&&global||Vn!==(this&&this.window)&&Vn||Kn||this,Gn=function(){
|
102
|
+
try{Object({toString:0}+"")}catch(n){return function(){return false}}return function(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}}(),Jn=d();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Zn._=Jn, define(function(){return Jn})):qn&&Dn?Yn?(Dn.exports=Jn)._=Jn:qn._=Jn:Zn._=Jn}).call(this);
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
2
|
* @license
|
3
|
-
* lodash 3.
|
3
|
+
* lodash 3.9.3 (Custom Build) <https://lodash.com/>
|
4
4
|
* Build: `lodash modern -o ./lodash.js`
|
5
5
|
* Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
|
6
6
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
var undefined;
|
14
14
|
|
15
15
|
/** Used as the semantic version number. */
|
16
|
-
var VERSION = '3.
|
16
|
+
var VERSION = '3.9.3';
|
17
17
|
|
18
18
|
/** Used to compose bitmasks for wrapper metadata. */
|
19
19
|
var BIND_FLAG = 1,
|
@@ -88,7 +88,7 @@
|
|
88
88
|
reInterpolate = /<%=([\s\S]+?)%>/g;
|
89
89
|
|
90
90
|
/** Used to match property names within property paths. */
|
91
|
-
var reIsDeepProp = /\.|\[(?:[^[\]]
|
91
|
+
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
|
92
92
|
reIsPlainProp = /^\w*$/,
|
93
93
|
rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g;
|
94
94
|
|
@@ -118,6 +118,9 @@
|
|
118
118
|
/** Used to detect host constructors (Safari > 5). */
|
119
119
|
var reIsHostCtor = /^\[object .+?Constructor\]$/;
|
120
120
|
|
121
|
+
/** Used to detect unsigned integer values. */
|
122
|
+
var reIsUint = /^\d+$/;
|
123
|
+
|
121
124
|
/** Used to match latin-1 supplementary letters (excluding mathematical operators). */
|
122
125
|
var reLatin1 = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g;
|
123
126
|
|
@@ -152,9 +155,8 @@
|
|
152
155
|
'Array', 'ArrayBuffer', 'Date', 'Error', 'Float32Array', 'Float64Array',
|
153
156
|
'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Math', 'Number',
|
154
157
|
'Object', 'RegExp', 'Set', 'String', '_', 'clearTimeout', 'document',
|
155
|
-
'isFinite', 'parseInt', 'setTimeout', 'TypeError', 'Uint8Array',
|
156
|
-
'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
|
157
|
-
'window'
|
158
|
+
'isFinite', 'parseFloat', 'parseInt', 'setTimeout', 'TypeError', 'Uint8Array',
|
159
|
+
'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', 'window'
|
158
160
|
];
|
159
161
|
|
160
162
|
/** Used to make template sourceURLs easier to identify. */
|
@@ -275,7 +277,7 @@
|
|
275
277
|
/**
|
276
278
|
* Used as a reference to the global object.
|
277
279
|
*
|
278
|
-
* The `this` value is used if it
|
280
|
+
* The `this` value is used if it's the global object to avoid Greasemonkey's
|
279
281
|
* restricted `window` object, otherwise the `window` object is used.
|
280
282
|
*/
|
281
283
|
var root = freeGlobal || ((freeWindow !== (this && this.window)) && freeWindow) || freeSelf || this;
|
@@ -287,19 +289,28 @@
|
|
287
289
|
* sorts them in ascending order without guaranteeing a stable sort.
|
288
290
|
*
|
289
291
|
* @private
|
290
|
-
* @param {*} value The value to compare
|
291
|
-
* @param {*} other The value to compare
|
292
|
+
* @param {*} value The value to compare.
|
293
|
+
* @param {*} other The other value to compare.
|
292
294
|
* @returns {number} Returns the sort order indicator for `value`.
|
293
295
|
*/
|
294
296
|
function baseCompareAscending(value, other) {
|
295
297
|
if (value !== other) {
|
296
|
-
var
|
298
|
+
var valIsNull = value === null,
|
299
|
+
valIsUndef = value === undefined,
|
300
|
+
valIsReflexive = value === value;
|
301
|
+
|
302
|
+
var othIsNull = other === null,
|
303
|
+
othIsUndef = other === undefined,
|
297
304
|
othIsReflexive = other === other;
|
298
305
|
|
299
|
-
if (value > other || !valIsReflexive ||
|
306
|
+
if ((value > other && !othIsNull) || !valIsReflexive ||
|
307
|
+
(valIsNull && !othIsUndef && othIsReflexive) ||
|
308
|
+
(valIsUndef && othIsReflexive)) {
|
300
309
|
return 1;
|
301
310
|
}
|
302
|
-
if (value < other || !othIsReflexive ||
|
311
|
+
if ((value < other && !valIsNull) || !othIsReflexive ||
|
312
|
+
(othIsNull && !valIsUndef && valIsReflexive) ||
|
313
|
+
(othIsUndef && valIsReflexive)) {
|
303
314
|
return -1;
|
304
315
|
}
|
305
316
|
}
|
@@ -367,7 +378,7 @@
|
|
367
378
|
}
|
368
379
|
|
369
380
|
/**
|
370
|
-
* Converts `value` to a string if it
|
381
|
+
* Converts `value` to a string if it's not one. An empty string is returned
|
371
382
|
* for `null` or `undefined` values.
|
372
383
|
*
|
373
384
|
* @private
|
@@ -381,17 +392,6 @@
|
|
381
392
|
return value == null ? '' : (value + '');
|
382
393
|
}
|
383
394
|
|
384
|
-
/**
|
385
|
-
* Used by `_.max` and `_.min` as the default callback for string values.
|
386
|
-
*
|
387
|
-
* @private
|
388
|
-
* @param {string} string The string to inspect.
|
389
|
-
* @returns {number} Returns the code unit of the first character of the string.
|
390
|
-
*/
|
391
|
-
function charAtCallback(string) {
|
392
|
-
return string.charCodeAt(0);
|
393
|
-
}
|
394
|
-
|
395
395
|
/**
|
396
396
|
* Used by `_.trim` and `_.trimLeft` to get the index of the first character
|
397
397
|
* of `string` that is not found in `chars`.
|
@@ -714,7 +714,7 @@
|
|
714
714
|
stringProto = String.prototype;
|
715
715
|
|
716
716
|
/** Used to detect DOM support. */
|
717
|
-
var document = (document = context.window)
|
717
|
+
var document = (document = context.window) ? document.document : null;
|
718
718
|
|
719
719
|
/** Used to resolve the decompiled source of functions. */
|
720
720
|
var fnToString = Function.prototype.toString;
|
@@ -736,26 +736,24 @@
|
|
736
736
|
|
737
737
|
/** Used to detect if a method is native. */
|
738
738
|
var reIsNative = RegExp('^' +
|
739
|
-
escapeRegExp(
|
740
|
-
.replace(/
|
739
|
+
escapeRegExp(fnToString.call(hasOwnProperty))
|
740
|
+
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
|
741
741
|
);
|
742
742
|
|
743
743
|
/** Native method references. */
|
744
|
-
var ArrayBuffer =
|
745
|
-
bufferSlice =
|
744
|
+
var ArrayBuffer = getNative(context, 'ArrayBuffer'),
|
745
|
+
bufferSlice = getNative(ArrayBuffer && new ArrayBuffer(0), 'slice'),
|
746
746
|
ceil = Math.ceil,
|
747
747
|
clearTimeout = context.clearTimeout,
|
748
748
|
floor = Math.floor,
|
749
|
-
|
750
|
-
|
749
|
+
getPrototypeOf = getNative(Object, 'getPrototypeOf'),
|
750
|
+
parseFloat = context.parseFloat,
|
751
751
|
push = arrayProto.push,
|
752
|
-
|
753
|
-
propertyIsEnumerable = objectProto.propertyIsEnumerable,
|
754
|
-
Set = isNative(Set = context.Set) && Set,
|
752
|
+
Set = getNative(context, 'Set'),
|
755
753
|
setTimeout = context.setTimeout,
|
756
754
|
splice = arrayProto.splice,
|
757
|
-
Uint8Array =
|
758
|
-
WeakMap =
|
755
|
+
Uint8Array = getNative(context, 'Uint8Array'),
|
756
|
+
WeakMap = getNative(context, 'WeakMap');
|
759
757
|
|
760
758
|
/** Used to clone array buffers. */
|
761
759
|
var Float64Array = (function() {
|
@@ -763,37 +761,21 @@
|
|
763
761
|
// where the array buffer's `byteLength` is not a multiple of the typed
|
764
762
|
// array's `BYTES_PER_ELEMENT`.
|
765
763
|
try {
|
766
|
-
var func =
|
764
|
+
var func = getNative(context, 'Float64Array'),
|
767
765
|
result = new func(new ArrayBuffer(10), 0, 1) && func;
|
768
766
|
} catch(e) {}
|
769
|
-
return result;
|
770
|
-
}());
|
771
|
-
|
772
|
-
/** Used as `baseAssign`. */
|
773
|
-
var nativeAssign = (function() {
|
774
|
-
// Avoid `Object.assign` in Firefox 34-37 which have an early implementation
|
775
|
-
// with a now defunct try/catch behavior. See https://bugzilla.mozilla.org/show_bug.cgi?id=1103344
|
776
|
-
// for more details.
|
777
|
-
//
|
778
|
-
// Use `Object.preventExtensions` on a plain object instead of simply using
|
779
|
-
// `Object('x')` because Chrome and IE fail to throw an error when attempting
|
780
|
-
// to assign values to readonly indexes of strings in strict mode.
|
781
|
-
var object = { '1': 0 },
|
782
|
-
func = preventExtensions && isNative(func = Object.assign) && func;
|
783
|
-
|
784
|
-
try { func(preventExtensions(object), 'xo'); } catch(e) {}
|
785
|
-
return !object[1] && func;
|
767
|
+
return result || null;
|
786
768
|
}());
|
787
769
|
|
788
770
|
/* Native method references for those with the same name as other `lodash` methods. */
|
789
|
-
var
|
790
|
-
|
771
|
+
var nativeCreate = getNative(Object, 'create'),
|
772
|
+
nativeIsArray = getNative(Array, 'isArray'),
|
791
773
|
nativeIsFinite = context.isFinite,
|
792
|
-
nativeKeys =
|
774
|
+
nativeKeys = getNative(Object, 'keys'),
|
793
775
|
nativeMax = Math.max,
|
794
776
|
nativeMin = Math.min,
|
795
|
-
nativeNow =
|
796
|
-
nativeNumIsFinite =
|
777
|
+
nativeNow = getNative(Date, 'now'),
|
778
|
+
nativeNumIsFinite = getNative(Number, 'isFinite'),
|
797
779
|
nativeParseInt = context.parseInt,
|
798
780
|
nativeRandom = Math.random;
|
799
781
|
|
@@ -802,8 +784,8 @@
|
|
802
784
|
POSITIVE_INFINITY = Number.POSITIVE_INFINITY;
|
803
785
|
|
804
786
|
/** Used as references for the maximum length and index of an array. */
|
805
|
-
var MAX_ARRAY_LENGTH =
|
806
|
-
MAX_ARRAY_INDEX =
|
787
|
+
var MAX_ARRAY_LENGTH = 4294967295,
|
788
|
+
MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,
|
807
789
|
HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
|
808
790
|
|
809
791
|
/** Used as the size, in bytes, of each `Float64Array` element. */
|
@@ -813,7 +795,7 @@
|
|
813
795
|
* Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
|
814
796
|
* of an array-like value.
|
815
797
|
*/
|
816
|
-
var MAX_SAFE_INTEGER =
|
798
|
+
var MAX_SAFE_INTEGER = 9007199254740991;
|
817
799
|
|
818
800
|
/** Used to store function metadata. */
|
819
801
|
var metaMap = WeakMap && new WeakMap;
|
@@ -862,30 +844,31 @@
|
|
862
844
|
* `filter`, `flatten`, `flattenDeep`, `flow`, `flowRight`, `forEach`,
|
863
845
|
* `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `functions`,
|
864
846
|
* `groupBy`, `indexBy`, `initial`, `intersection`, `invert`, `invoke`, `keys`,
|
865
|
-
* `keysIn`, `map`, `mapValues`, `matches`, `matchesProperty`,
|
866
|
-
* `
|
867
|
-
* `
|
868
|
-
* `
|
869
|
-
* `
|
870
|
-
* `
|
871
|
-
* `
|
872
|
-
* `
|
873
|
-
* `
|
847
|
+
* `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,
|
848
|
+
* `memoize`, `merge`, `method`, `methodOf`, `mixin`, `negate`, `omit`, `once`,
|
849
|
+
* `pairs`, `partial`, `partialRight`, `partition`, `pick`, `plant`, `pluck`,
|
850
|
+
* `property`, `propertyOf`, `pull`, `pullAt`, `push`, `range`, `rearg`,
|
851
|
+
* `reject`, `remove`, `rest`, `restParam`, `reverse`, `set`, `shuffle`,
|
852
|
+
* `slice`, `sort`, `sortBy`, `sortByAll`, `sortByOrder`, `splice`, `spread`,
|
853
|
+
* `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `tap`, `throttle`,
|
854
|
+
* `thru`, `times`, `toArray`, `toPlainObject`, `transform`, `union`, `uniq`,
|
855
|
+
* `unshift`, `unzip`, `unzipWith`, `values`, `valuesIn`, `where`, `without`,
|
856
|
+
* `wrap`, `xor`, `zip`, `zipObject`, `zipWith`
|
874
857
|
*
|
875
858
|
* The wrapper methods that are **not** chainable by default are:
|
876
859
|
* `add`, `attempt`, `camelCase`, `capitalize`, `clone`, `cloneDeep`, `deburr`,
|
877
860
|
* `endsWith`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`,
|
878
|
-
* `findLast`, `findLastIndex`, `findLastKey`, `findWhere`, `first`, `
|
879
|
-
* `identity`, `includes`, `indexOf`, `inRange`, `isArguments`,
|
880
|
-
* `isBoolean`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isError`,
|
881
|
-
* `isFunction`, `isMatch`, `isNative`, `isNaN`, `isNull`, `isNumber`,
|
882
|
-
* `isPlainObject`, `isRegExp`, `isString`, `isUndefined`,
|
883
|
-
* `join`, `kebabCase`, `last`, `lastIndexOf`, `
|
884
|
-
* `
|
885
|
-
* `
|
886
|
-
* `
|
887
|
-
* `
|
888
|
-
* `uniqueId`, `value`, and `words`
|
861
|
+
* `findLast`, `findLastIndex`, `findLastKey`, `findWhere`, `first`, `get`,
|
862
|
+
* `gt`, `gte`, `has`, `identity`, `includes`, `indexOf`, `inRange`, `isArguments`,
|
863
|
+
* `isArray`, `isBoolean`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isError`,
|
864
|
+
* `isFinite` `isFunction`, `isMatch`, `isNative`, `isNaN`, `isNull`, `isNumber`,
|
865
|
+
* `isObject`, `isPlainObject`, `isRegExp`, `isString`, `isUndefined`,
|
866
|
+
* `isTypedArray`, `join`, `kebabCase`, `last`, `lastIndexOf`, `lt`, `lte`,
|
867
|
+
* `max`, `min`, `noConflict`, `noop`, `now`, `pad`, `padLeft`, `padRight`,
|
868
|
+
* `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, `repeat`, `result`,
|
869
|
+
* `runInContext`, `shift`, `size`, `snakeCase`, `some`, `sortedIndex`,
|
870
|
+
* `sortedLastIndex`, `startCase`, `startsWith`, `sum`, `template`, `trim`,
|
871
|
+
* `trimLeft`, `trimRight`, `trunc`, `unescape`, `uniqueId`, `value`, and `words`
|
889
872
|
*
|
890
873
|
* The wrapper method `sample` will return a wrapped value when `n` is provided,
|
891
874
|
* otherwise an unwrapped value is returned.
|
@@ -968,24 +951,6 @@
|
|
968
951
|
Ctor.prototype = { 'valueOf': x, 'y': x };
|
969
952
|
for (var key in new Ctor) { props.push(key); }
|
970
953
|
|
971
|
-
/**
|
972
|
-
* Detect if functions can be decompiled by `Function#toString`
|
973
|
-
* (all but Firefox OS certified apps, older Opera mobile browsers, and
|
974
|
-
* the PlayStation 3; forced `false` for Windows 8 apps).
|
975
|
-
*
|
976
|
-
* @memberOf _.support
|
977
|
-
* @type boolean
|
978
|
-
*/
|
979
|
-
support.funcDecomp = /\bthis\b/.test(function() { return this; });
|
980
|
-
|
981
|
-
/**
|
982
|
-
* Detect if `Function#name` is supported (all but IE).
|
983
|
-
*
|
984
|
-
* @memberOf _.support
|
985
|
-
* @type boolean
|
986
|
-
*/
|
987
|
-
support.funcNames = typeof Function.name == 'string';
|
988
|
-
|
989
954
|
/**
|
990
955
|
* Detect if the DOM is supported.
|
991
956
|
*
|
@@ -997,24 +962,6 @@
|
|
997
962
|
} catch(e) {
|
998
963
|
support.dom = false;
|
999
964
|
}
|
1000
|
-
|
1001
|
-
/**
|
1002
|
-
* Detect if `arguments` object indexes are non-enumerable.
|
1003
|
-
*
|
1004
|
-
* In Firefox < 4, IE < 9, PhantomJS, and Safari < 5.1 `arguments` object
|
1005
|
-
* indexes are non-enumerable. Chrome < 25 and Node.js < 0.11.0 treat
|
1006
|
-
* `arguments` object indexes as non-enumerable and fail `hasOwnProperty`
|
1007
|
-
* checks for indexes that exceed the number of function parameters and
|
1008
|
-
* whose associated argument values are `0`.
|
1009
|
-
*
|
1010
|
-
* @memberOf _.support
|
1011
|
-
* @type boolean
|
1012
|
-
*/
|
1013
|
-
try {
|
1014
|
-
support.nonEnumArgs = !propertyIsEnumerable.call(arguments, 1);
|
1015
|
-
} catch(e) {
|
1016
|
-
support.nonEnumArgs = true;
|
1017
|
-
}
|
1018
965
|
}(1, 0));
|
1019
966
|
|
1020
967
|
/**
|
@@ -1413,6 +1360,35 @@
|
|
1413
1360
|
return true;
|
1414
1361
|
}
|
1415
1362
|
|
1363
|
+
/**
|
1364
|
+
* A specialized version of `baseExtremum` for arrays which invokes `iteratee`
|
1365
|
+
* with one argument: (value).
|
1366
|
+
*
|
1367
|
+
* @private
|
1368
|
+
* @param {Array} array The array to iterate over.
|
1369
|
+
* @param {Function} iteratee The function invoked per iteration.
|
1370
|
+
* @param {Function} comparator The function used to compare values.
|
1371
|
+
* @param {*} exValue The initial extremum value.
|
1372
|
+
* @returns {*} Returns the extremum value.
|
1373
|
+
*/
|
1374
|
+
function arrayExtremum(array, iteratee, comparator, exValue) {
|
1375
|
+
var index = -1,
|
1376
|
+
length = array.length,
|
1377
|
+
computed = exValue,
|
1378
|
+
result = computed;
|
1379
|
+
|
1380
|
+
while (++index < length) {
|
1381
|
+
var value = array[index],
|
1382
|
+
current = +iteratee(value);
|
1383
|
+
|
1384
|
+
if (comparator(current, computed)) {
|
1385
|
+
computed = current;
|
1386
|
+
result = value;
|
1387
|
+
}
|
1388
|
+
}
|
1389
|
+
return result;
|
1390
|
+
}
|
1391
|
+
|
1416
1392
|
/**
|
1417
1393
|
* A specialized version of `_.filter` for arrays without support for callback
|
1418
1394
|
* shorthands and `this` binding.
|
@@ -1457,48 +1433,6 @@
|
|
1457
1433
|
return result;
|
1458
1434
|
}
|
1459
1435
|
|
1460
|
-
/**
|
1461
|
-
* A specialized version of `_.max` for arrays without support for iteratees.
|
1462
|
-
*
|
1463
|
-
* @private
|
1464
|
-
* @param {Array} array The array to iterate over.
|
1465
|
-
* @returns {*} Returns the maximum value.
|
1466
|
-
*/
|
1467
|
-
function arrayMax(array) {
|
1468
|
-
var index = -1,
|
1469
|
-
length = array.length,
|
1470
|
-
result = NEGATIVE_INFINITY;
|
1471
|
-
|
1472
|
-
while (++index < length) {
|
1473
|
-
var value = array[index];
|
1474
|
-
if (value > result) {
|
1475
|
-
result = value;
|
1476
|
-
}
|
1477
|
-
}
|
1478
|
-
return result;
|
1479
|
-
}
|
1480
|
-
|
1481
|
-
/**
|
1482
|
-
* A specialized version of `_.min` for arrays without support for iteratees.
|
1483
|
-
*
|
1484
|
-
* @private
|
1485
|
-
* @param {Array} array The array to iterate over.
|
1486
|
-
* @returns {*} Returns the minimum value.
|
1487
|
-
*/
|
1488
|
-
function arrayMin(array) {
|
1489
|
-
var index = -1,
|
1490
|
-
length = array.length,
|
1491
|
-
result = POSITIVE_INFINITY;
|
1492
|
-
|
1493
|
-
while (++index < length) {
|
1494
|
-
var value = array[index];
|
1495
|
-
if (value < result) {
|
1496
|
-
result = value;
|
1497
|
-
}
|
1498
|
-
}
|
1499
|
-
return result;
|
1500
|
-
}
|
1501
|
-
|
1502
1436
|
/**
|
1503
1437
|
* A specialized version of `_.reduce` for arrays without support for callback
|
1504
1438
|
* shorthands and `this` binding.
|
@@ -1629,10 +1563,8 @@
|
|
1629
1563
|
* @returns {Object} Returns `object`.
|
1630
1564
|
*/
|
1631
1565
|
function assignWith(object, source, customizer) {
|
1632
|
-
var props = keys(source);
|
1633
|
-
push.apply(props, getSymbols(source));
|
1634
|
-
|
1635
1566
|
var index = -1,
|
1567
|
+
props = keys(source),
|
1636
1568
|
length = props.length;
|
1637
1569
|
|
1638
1570
|
while (++index < length) {
|
@@ -1657,11 +1589,11 @@
|
|
1657
1589
|
* @param {Object} source The source object.
|
1658
1590
|
* @returns {Object} Returns `object`.
|
1659
1591
|
*/
|
1660
|
-
|
1592
|
+
function baseAssign(object, source) {
|
1661
1593
|
return source == null
|
1662
1594
|
? object
|
1663
|
-
: baseCopy(source,
|
1664
|
-
}
|
1595
|
+
: baseCopy(source, keys(source), object);
|
1596
|
+
}
|
1665
1597
|
|
1666
1598
|
/**
|
1667
1599
|
* The base implementation of `_.at` without support for string collections
|
@@ -1674,8 +1606,9 @@
|
|
1674
1606
|
*/
|
1675
1607
|
function baseAt(collection, props) {
|
1676
1608
|
var index = -1,
|
1677
|
-
|
1678
|
-
isArr =
|
1609
|
+
isNil = collection == null,
|
1610
|
+
isArr = !isNil && isArrayLike(collection),
|
1611
|
+
length = isArr ? collection.length : 0,
|
1679
1612
|
propsLength = props.length,
|
1680
1613
|
result = Array(propsLength);
|
1681
1614
|
|
@@ -1684,7 +1617,7 @@
|
|
1684
1617
|
if (isArr) {
|
1685
1618
|
result[index] = isIndex(key, length) ? collection[key] : undefined;
|
1686
1619
|
} else {
|
1687
|
-
result[index] = collection[key];
|
1620
|
+
result[index] = isNil ? undefined : collection[key];
|
1688
1621
|
}
|
1689
1622
|
}
|
1690
1623
|
return result;
|
@@ -1816,14 +1749,14 @@
|
|
1816
1749
|
* @returns {Object} Returns the new object.
|
1817
1750
|
*/
|
1818
1751
|
var baseCreate = (function() {
|
1819
|
-
function
|
1752
|
+
function object() {}
|
1820
1753
|
return function(prototype) {
|
1821
1754
|
if (isObject(prototype)) {
|
1822
|
-
|
1823
|
-
var result = new
|
1824
|
-
|
1755
|
+
object.prototype = prototype;
|
1756
|
+
var result = new object;
|
1757
|
+
object.prototype = null;
|
1825
1758
|
}
|
1826
|
-
return result ||
|
1759
|
+
return result || {};
|
1827
1760
|
};
|
1828
1761
|
}());
|
1829
1762
|
|
@@ -1932,6 +1865,32 @@
|
|
1932
1865
|
return result;
|
1933
1866
|
}
|
1934
1867
|
|
1868
|
+
/**
|
1869
|
+
* Gets the extremum value of `collection` invoking `iteratee` for each value
|
1870
|
+
* in `collection` to generate the criterion by which the value is ranked.
|
1871
|
+
* The `iteratee` is invoked with three arguments: (value, index|key, collection).
|
1872
|
+
*
|
1873
|
+
* @private
|
1874
|
+
* @param {Array|Object|string} collection The collection to iterate over.
|
1875
|
+
* @param {Function} iteratee The function invoked per iteration.
|
1876
|
+
* @param {Function} comparator The function used to compare values.
|
1877
|
+
* @param {*} exValue The initial extremum value.
|
1878
|
+
* @returns {*} Returns the extremum value.
|
1879
|
+
*/
|
1880
|
+
function baseExtremum(collection, iteratee, comparator, exValue) {
|
1881
|
+
var computed = exValue,
|
1882
|
+
result = computed;
|
1883
|
+
|
1884
|
+
baseEach(collection, function(value, index, collection) {
|
1885
|
+
var current = +iteratee(value, index, collection);
|
1886
|
+
if (comparator(current, computed) || (current === exValue && current === result)) {
|
1887
|
+
computed = current;
|
1888
|
+
result = value;
|
1889
|
+
}
|
1890
|
+
});
|
1891
|
+
return result;
|
1892
|
+
}
|
1893
|
+
|
1935
1894
|
/**
|
1936
1895
|
* The base implementation of `_.fill` without an iteratee call guard.
|
1937
1896
|
*
|
@@ -2011,8 +1970,8 @@
|
|
2011
1970
|
*
|
2012
1971
|
* @private
|
2013
1972
|
* @param {Array} array The array to flatten.
|
2014
|
-
* @param {boolean} isDeep Specify a deep flatten.
|
2015
|
-
* @param {boolean} isStrict Restrict flattening to arrays
|
1973
|
+
* @param {boolean} [isDeep] Specify a deep flatten.
|
1974
|
+
* @param {boolean} [isStrict] Restrict flattening to arrays-like objects.
|
2016
1975
|
* @returns {Array} Returns the new flattened array.
|
2017
1976
|
*/
|
2018
1977
|
function baseFlatten(array, isDeep, isStrict) {
|
@@ -2023,8 +1982,8 @@
|
|
2023
1982
|
|
2024
1983
|
while (++index < length) {
|
2025
1984
|
var value = array[index];
|
2026
|
-
|
2027
|
-
|
1985
|
+
if (isObjectLike(value) && isArrayLike(value) &&
|
1986
|
+
(isStrict || isArray(value) || isArguments(value))) {
|
2028
1987
|
if (isDeep) {
|
2029
1988
|
// Recursively flatten arrays (susceptible to call stack limits).
|
2030
1989
|
value = baseFlatten(value, isDeep, isStrict);
|
@@ -2032,7 +1991,6 @@
|
|
2032
1991
|
var valIndex = -1,
|
2033
1992
|
valLength = value.length;
|
2034
1993
|
|
2035
|
-
result.length += valLength;
|
2036
1994
|
while (++valIndex < valLength) {
|
2037
1995
|
result[++resIndex] = value[valIndex];
|
2038
1996
|
}
|
@@ -2149,13 +2107,13 @@
|
|
2149
2107
|
if (pathKey !== undefined && pathKey in toObject(object)) {
|
2150
2108
|
path = [pathKey];
|
2151
2109
|
}
|
2152
|
-
var index =
|
2110
|
+
var index = 0,
|
2153
2111
|
length = path.length;
|
2154
2112
|
|
2155
|
-
while (object != null &&
|
2156
|
-
|
2113
|
+
while (object != null && index < length) {
|
2114
|
+
object = object[path[index++]];
|
2157
2115
|
}
|
2158
|
-
return
|
2116
|
+
return (index && index == length) ? object : undefined;
|
2159
2117
|
}
|
2160
2118
|
|
2161
2119
|
/**
|
@@ -2172,18 +2130,10 @@
|
|
2172
2130
|
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
2173
2131
|
*/
|
2174
2132
|
function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {
|
2175
|
-
// Exit early for identical values.
|
2176
2133
|
if (value === other) {
|
2177
|
-
|
2178
|
-
return value !== 0 || (1 / value == 1 / other);
|
2134
|
+
return true;
|
2179
2135
|
}
|
2180
|
-
|
2181
|
-
othType = typeof other;
|
2182
|
-
|
2183
|
-
// Exit early for unlike primitive values.
|
2184
|
-
if ((valType != 'function' && valType != 'object' && othType != 'function' && othType != 'object') ||
|
2185
|
-
value == null || other == null) {
|
2186
|
-
// Return `false` unless both values are `NaN`.
|
2136
|
+
if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
|
2187
2137
|
return value !== value && other !== other;
|
2188
2138
|
}
|
2189
2139
|
return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);
|
@@ -2234,11 +2184,11 @@
|
|
2234
2184
|
return equalByTag(object, other, objTag);
|
2235
2185
|
}
|
2236
2186
|
if (!isLoose) {
|
2237
|
-
var
|
2238
|
-
|
2187
|
+
var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
|
2188
|
+
othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
|
2239
2189
|
|
2240
|
-
if (
|
2241
|
-
return equalFunc(
|
2190
|
+
if (objIsWrapped || othIsWrapped) {
|
2191
|
+
return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);
|
2242
2192
|
}
|
2243
2193
|
}
|
2244
2194
|
if (!isSameTag) {
|
@@ -2273,42 +2223,44 @@
|
|
2273
2223
|
*
|
2274
2224
|
* @private
|
2275
2225
|
* @param {Object} object The object to inspect.
|
2276
|
-
* @param {Array}
|
2277
|
-
* @param {Array} values The source values to match.
|
2278
|
-
* @param {Array} strictCompareFlags Strict comparison flags for source values.
|
2226
|
+
* @param {Array} matchData The propery names, values, and compare flags to match.
|
2279
2227
|
* @param {Function} [customizer] The function to customize comparing objects.
|
2280
2228
|
* @returns {boolean} Returns `true` if `object` is a match, else `false`.
|
2281
2229
|
*/
|
2282
|
-
function baseIsMatch(object,
|
2283
|
-
var index =
|
2284
|
-
length =
|
2230
|
+
function baseIsMatch(object, matchData, customizer) {
|
2231
|
+
var index = matchData.length,
|
2232
|
+
length = index,
|
2285
2233
|
noCustomizer = !customizer;
|
2286
2234
|
|
2287
|
-
|
2288
|
-
|
2289
|
-
|
2290
|
-
|
2235
|
+
if (object == null) {
|
2236
|
+
return !length;
|
2237
|
+
}
|
2238
|
+
object = toObject(object);
|
2239
|
+
while (index--) {
|
2240
|
+
var data = matchData[index];
|
2241
|
+
if ((noCustomizer && data[2])
|
2242
|
+
? data[1] !== object[data[0]]
|
2243
|
+
: !(data[0] in object)
|
2291
2244
|
) {
|
2292
2245
|
return false;
|
2293
2246
|
}
|
2294
2247
|
}
|
2295
|
-
index = -1;
|
2296
2248
|
while (++index < length) {
|
2297
|
-
|
2249
|
+
data = matchData[index];
|
2250
|
+
var key = data[0],
|
2298
2251
|
objValue = object[key],
|
2299
|
-
srcValue =
|
2252
|
+
srcValue = data[1];
|
2300
2253
|
|
2301
|
-
if (noCustomizer &&
|
2302
|
-
|
2254
|
+
if (noCustomizer && data[2]) {
|
2255
|
+
if (objValue === undefined && !(key in object)) {
|
2256
|
+
return false;
|
2257
|
+
}
|
2303
2258
|
} else {
|
2304
|
-
result = customizer ? customizer(objValue, srcValue, key) : undefined;
|
2305
|
-
if (result === undefined) {
|
2306
|
-
|
2259
|
+
var result = customizer ? customizer(objValue, srcValue, key) : undefined;
|
2260
|
+
if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) {
|
2261
|
+
return false;
|
2307
2262
|
}
|
2308
2263
|
}
|
2309
|
-
if (!result) {
|
2310
|
-
return false;
|
2311
|
-
}
|
2312
2264
|
}
|
2313
2265
|
return true;
|
2314
2266
|
}
|
@@ -2324,8 +2276,7 @@
|
|
2324
2276
|
*/
|
2325
2277
|
function baseMap(collection, iteratee) {
|
2326
2278
|
var index = -1,
|
2327
|
-
|
2328
|
-
result = isLength(length) ? Array(length) : [];
|
2279
|
+
result = isArrayLike(collection) ? Array(collection.length) : [];
|
2329
2280
|
|
2330
2281
|
baseEach(collection, function(value, key, collection) {
|
2331
2282
|
result[++index] = iteratee(value, key, collection);
|
@@ -2341,50 +2292,34 @@
|
|
2341
2292
|
* @returns {Function} Returns the new function.
|
2342
2293
|
*/
|
2343
2294
|
function baseMatches(source) {
|
2344
|
-
var
|
2345
|
-
|
2295
|
+
var matchData = getMatchData(source);
|
2296
|
+
if (matchData.length == 1 && matchData[0][2]) {
|
2297
|
+
var key = matchData[0][0],
|
2298
|
+
value = matchData[0][1];
|
2346
2299
|
|
2347
|
-
|
2348
|
-
|
2349
|
-
|
2350
|
-
|
2351
|
-
|
2352
|
-
|
2353
|
-
|
2354
|
-
if (isStrictComparable(value)) {
|
2355
|
-
return function(object) {
|
2356
|
-
if (object == null) {
|
2357
|
-
return false;
|
2358
|
-
}
|
2359
|
-
return object[key] === value && (value !== undefined || (key in toObject(object)));
|
2360
|
-
};
|
2361
|
-
}
|
2362
|
-
}
|
2363
|
-
var values = Array(length),
|
2364
|
-
strictCompareFlags = Array(length);
|
2365
|
-
|
2366
|
-
while (length--) {
|
2367
|
-
value = source[props[length]];
|
2368
|
-
values[length] = value;
|
2369
|
-
strictCompareFlags[length] = isStrictComparable(value);
|
2300
|
+
return function(object) {
|
2301
|
+
if (object == null) {
|
2302
|
+
return false;
|
2303
|
+
}
|
2304
|
+
return object[key] === value && (value !== undefined || (key in toObject(object)));
|
2305
|
+
};
|
2370
2306
|
}
|
2371
2307
|
return function(object) {
|
2372
|
-
return
|
2308
|
+
return baseIsMatch(object, matchData);
|
2373
2309
|
};
|
2374
2310
|
}
|
2375
2311
|
|
2376
2312
|
/**
|
2377
|
-
* The base implementation of `_.matchesProperty` which does not
|
2378
|
-
* not clone `value`.
|
2313
|
+
* The base implementation of `_.matchesProperty` which does not clone `srcValue`.
|
2379
2314
|
*
|
2380
2315
|
* @private
|
2381
2316
|
* @param {string} path The path of the property to get.
|
2382
|
-
* @param {*}
|
2317
|
+
* @param {*} srcValue The value to compare.
|
2383
2318
|
* @returns {Function} Returns the new function.
|
2384
2319
|
*/
|
2385
|
-
function baseMatchesProperty(path,
|
2320
|
+
function baseMatchesProperty(path, srcValue) {
|
2386
2321
|
var isArr = isArray(path),
|
2387
|
-
isCommon = isKey(path) && isStrictComparable(
|
2322
|
+
isCommon = isKey(path) && isStrictComparable(srcValue),
|
2388
2323
|
pathKey = (path + '');
|
2389
2324
|
|
2390
2325
|
path = toPath(path);
|
@@ -2402,9 +2337,9 @@
|
|
2402
2337
|
key = last(path);
|
2403
2338
|
object = toObject(object);
|
2404
2339
|
}
|
2405
|
-
return object[key] ===
|
2406
|
-
? (
|
2407
|
-
: baseIsEqual(
|
2340
|
+
return object[key] === srcValue
|
2341
|
+
? (srcValue !== undefined || (key in object))
|
2342
|
+
: baseIsEqual(srcValue, object[key], undefined, true);
|
2408
2343
|
};
|
2409
2344
|
}
|
2410
2345
|
|
@@ -2424,11 +2359,9 @@
|
|
2424
2359
|
if (!isObject(object)) {
|
2425
2360
|
return object;
|
2426
2361
|
}
|
2427
|
-
var isSrcArr =
|
2428
|
-
|
2429
|
-
|
2430
|
-
push.apply(props, getSymbols(source));
|
2431
|
-
}
|
2362
|
+
var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),
|
2363
|
+
props = isSrcArr ? null : keys(source);
|
2364
|
+
|
2432
2365
|
arrayEach(props || source, function(srcValue, key) {
|
2433
2366
|
if (props) {
|
2434
2367
|
key = srcValue;
|
@@ -2447,7 +2380,7 @@
|
|
2447
2380
|
if (isCommon) {
|
2448
2381
|
result = srcValue;
|
2449
2382
|
}
|
2450
|
-
if ((
|
2383
|
+
if ((result !== undefined || (isSrcArr && !(key in object))) &&
|
2451
2384
|
(isCommon || (result === result ? (result !== value) : (value === value)))) {
|
2452
2385
|
object[key] = result;
|
2453
2386
|
}
|
@@ -2487,10 +2420,10 @@
|
|
2487
2420
|
|
2488
2421
|
if (isCommon) {
|
2489
2422
|
result = srcValue;
|
2490
|
-
if (
|
2423
|
+
if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {
|
2491
2424
|
result = isArray(value)
|
2492
2425
|
? value
|
2493
|
-
: (
|
2426
|
+
: (isArrayLike(value) ? arrayCopy(value) : []);
|
2494
2427
|
}
|
2495
2428
|
else if (isPlainObject(srcValue) || isArguments(srcValue)) {
|
2496
2429
|
result = isArguments(value)
|
@@ -2552,9 +2485,9 @@
|
|
2552
2485
|
* @returns {Array} Returns `array`.
|
2553
2486
|
*/
|
2554
2487
|
function basePullAt(array, indexes) {
|
2555
|
-
var length = indexes.length;
|
2488
|
+
var length = array ? indexes.length : 0;
|
2556
2489
|
while (length--) {
|
2557
|
-
var index =
|
2490
|
+
var index = indexes[length];
|
2558
2491
|
if (index != previous && isIndex(index)) {
|
2559
2492
|
var previous = index;
|
2560
2493
|
splice.call(array, index, 1);
|
@@ -2867,7 +2800,7 @@
|
|
2867
2800
|
var mid = (low + high) >>> 1,
|
2868
2801
|
computed = array[mid];
|
2869
2802
|
|
2870
|
-
if (retHighest ? (computed <= value) : (computed < value)) {
|
2803
|
+
if ((retHighest ? (computed <= value) : (computed < value)) && computed !== null) {
|
2871
2804
|
low = mid + 1;
|
2872
2805
|
} else {
|
2873
2806
|
high = mid;
|
@@ -2897,17 +2830,23 @@
|
|
2897
2830
|
var low = 0,
|
2898
2831
|
high = array ? array.length : 0,
|
2899
2832
|
valIsNaN = value !== value,
|
2833
|
+
valIsNull = value === null,
|
2900
2834
|
valIsUndef = value === undefined;
|
2901
2835
|
|
2902
2836
|
while (low < high) {
|
2903
2837
|
var mid = floor((low + high) / 2),
|
2904
2838
|
computed = iteratee(array[mid]),
|
2839
|
+
isDef = computed !== undefined,
|
2905
2840
|
isReflexive = computed === computed;
|
2906
2841
|
|
2907
2842
|
if (valIsNaN) {
|
2908
2843
|
var setLow = isReflexive || retHighest;
|
2844
|
+
} else if (valIsNull) {
|
2845
|
+
setLow = isReflexive && isDef && (retHighest || computed != null);
|
2909
2846
|
} else if (valIsUndef) {
|
2910
|
-
setLow = isReflexive && (retHighest ||
|
2847
|
+
setLow = isReflexive && (retHighest || isDef);
|
2848
|
+
} else if (computed == null) {
|
2849
|
+
setLow = false;
|
2911
2850
|
} else {
|
2912
2851
|
setLow = retHighest ? (computed <= value) : (computed < value);
|
2913
2852
|
}
|
@@ -3038,12 +2977,12 @@
|
|
3038
2977
|
while (++argsIndex < argsLength) {
|
3039
2978
|
result[argsIndex] = args[argsIndex];
|
3040
2979
|
}
|
3041
|
-
var
|
2980
|
+
var offset = argsIndex;
|
3042
2981
|
while (++rightIndex < rightLength) {
|
3043
|
-
result[
|
2982
|
+
result[offset + rightIndex] = partials[rightIndex];
|
3044
2983
|
}
|
3045
2984
|
while (++holdersIndex < holdersLength) {
|
3046
|
-
result[
|
2985
|
+
result[offset + holders[holdersIndex]] = args[argsIndex++];
|
3047
2986
|
}
|
3048
2987
|
return result;
|
3049
2988
|
}
|
@@ -3097,19 +3036,19 @@
|
|
3097
3036
|
return restParam(function(object, sources) {
|
3098
3037
|
var index = -1,
|
3099
3038
|
length = object == null ? 0 : sources.length,
|
3100
|
-
customizer = length > 2
|
3101
|
-
guard = length > 2
|
3102
|
-
thisArg = length > 1
|
3039
|
+
customizer = length > 2 ? sources[length - 2] : undefined,
|
3040
|
+
guard = length > 2 ? sources[2] : undefined,
|
3041
|
+
thisArg = length > 1 ? sources[length - 1] : undefined;
|
3103
3042
|
|
3104
3043
|
if (typeof customizer == 'function') {
|
3105
3044
|
customizer = bindCallback(customizer, thisArg, 5);
|
3106
3045
|
length -= 2;
|
3107
3046
|
} else {
|
3108
|
-
customizer = typeof thisArg == 'function' ? thisArg :
|
3047
|
+
customizer = typeof thisArg == 'function' ? thisArg : undefined;
|
3109
3048
|
length -= (customizer ? 1 : 0);
|
3110
3049
|
}
|
3111
3050
|
if (guard && isIterateeCall(sources[0], sources[1], guard)) {
|
3112
|
-
customizer = length < 3 ?
|
3051
|
+
customizer = length < 3 ? undefined : customizer;
|
3113
3052
|
length = 1;
|
3114
3053
|
}
|
3115
3054
|
while (++index < length) {
|
@@ -3234,8 +3173,20 @@
|
|
3234
3173
|
*/
|
3235
3174
|
function createCtorWrapper(Ctor) {
|
3236
3175
|
return function() {
|
3176
|
+
// Use a `switch` statement to work with class constructors.
|
3177
|
+
// See https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ecmascript-function-objects-call-thisargument-argumentslist
|
3178
|
+
// for more details.
|
3179
|
+
var args = arguments;
|
3180
|
+
switch (args.length) {
|
3181
|
+
case 0: return new Ctor;
|
3182
|
+
case 1: return new Ctor(args[0]);
|
3183
|
+
case 2: return new Ctor(args[0], args[1]);
|
3184
|
+
case 3: return new Ctor(args[0], args[1], args[2]);
|
3185
|
+
case 4: return new Ctor(args[0], args[1], args[2], args[3]);
|
3186
|
+
case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);
|
3187
|
+
}
|
3237
3188
|
var thisBinding = baseCreate(Ctor.prototype),
|
3238
|
-
result = Ctor.apply(thisBinding,
|
3189
|
+
result = Ctor.apply(thisBinding, args);
|
3239
3190
|
|
3240
3191
|
// Mimic the constructor's `return` behavior.
|
3241
3192
|
// See https://es5.github.io/#x13.2.2 for more details.
|
@@ -3266,32 +3217,24 @@
|
|
3266
3217
|
* Creates a `_.max` or `_.min` function.
|
3267
3218
|
*
|
3268
3219
|
* @private
|
3269
|
-
* @param {Function}
|
3270
|
-
* @param {
|
3271
|
-
* extremum value.
|
3220
|
+
* @param {Function} comparator The function used to compare values.
|
3221
|
+
* @param {*} exValue The initial extremum value.
|
3272
3222
|
* @returns {Function} Returns the new extremum function.
|
3273
3223
|
*/
|
3274
|
-
function createExtremum(
|
3224
|
+
function createExtremum(comparator, exValue) {
|
3275
3225
|
return function(collection, iteratee, thisArg) {
|
3276
3226
|
if (thisArg && isIterateeCall(collection, iteratee, thisArg)) {
|
3277
3227
|
iteratee = null;
|
3278
3228
|
}
|
3279
|
-
|
3280
|
-
|
3281
|
-
|
3282
|
-
|
3283
|
-
|
3284
|
-
|
3285
|
-
}
|
3286
|
-
if (noIteratee) {
|
3287
|
-
var isArr = isArray(collection);
|
3288
|
-
if (!isArr && isString(collection)) {
|
3289
|
-
iteratee = charAtCallback;
|
3290
|
-
} else {
|
3291
|
-
return arrayFunc(isArr ? collection : toIterable(collection));
|
3229
|
+
iteratee = getCallback(iteratee, thisArg, 3);
|
3230
|
+
if (iteratee.length == 1) {
|
3231
|
+
collection = toIterable(collection);
|
3232
|
+
var result = arrayExtremum(collection, iteratee, comparator, exValue);
|
3233
|
+
if (!(collection.length && result === exValue)) {
|
3234
|
+
return result;
|
3292
3235
|
}
|
3293
3236
|
}
|
3294
|
-
return
|
3237
|
+
return baseExtremum(collection, iteratee, comparator, exValue);
|
3295
3238
|
};
|
3296
3239
|
}
|
3297
3240
|
|
@@ -3311,7 +3254,7 @@
|
|
3311
3254
|
return index > -1 ? collection[index] : undefined;
|
3312
3255
|
}
|
3313
3256
|
return baseFind(collection, predicate, eachFunc);
|
3314
|
-
}
|
3257
|
+
};
|
3315
3258
|
}
|
3316
3259
|
|
3317
3260
|
/**
|
@@ -3354,11 +3297,8 @@
|
|
3354
3297
|
*/
|
3355
3298
|
function createFlow(fromRight) {
|
3356
3299
|
return function() {
|
3357
|
-
var length = arguments.length;
|
3358
|
-
if (!length) {
|
3359
|
-
return function() { return arguments[0]; };
|
3360
|
-
}
|
3361
3300
|
var wrapper,
|
3301
|
+
length = arguments.length,
|
3362
3302
|
index = fromRight ? length : -1,
|
3363
3303
|
leftIndex = 0,
|
3364
3304
|
funcs = Array(length);
|
@@ -3368,16 +3308,18 @@
|
|
3368
3308
|
if (typeof func != 'function') {
|
3369
3309
|
throw new TypeError(FUNC_ERROR_TEXT);
|
3370
3310
|
}
|
3371
|
-
|
3372
|
-
|
3311
|
+
if (!wrapper && LodashWrapper.prototype.thru && getFuncName(func) == 'wrapper') {
|
3312
|
+
wrapper = new LodashWrapper([]);
|
3313
|
+
}
|
3373
3314
|
}
|
3374
3315
|
index = wrapper ? -1 : length;
|
3375
3316
|
while (++index < length) {
|
3376
3317
|
func = funcs[index];
|
3377
|
-
funcName = getFuncName(func);
|
3378
3318
|
|
3379
|
-
var
|
3380
|
-
|
3319
|
+
var funcName = getFuncName(func),
|
3320
|
+
data = funcName == 'wrapper' ? getData(func) : null;
|
3321
|
+
|
3322
|
+
if (data && isLaziable(data[0]) && data[1] == (ARY_FLAG | CURRY_FLAG | PARTIAL_FLAG | REARG_FLAG) && !data[4].length && data[9] == 1) {
|
3381
3323
|
wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
|
3382
3324
|
} else {
|
3383
3325
|
wrapper = (func.length == 1 && isLaziable(func)) ? wrapper[funcName]() : wrapper.thru(func);
|
@@ -3389,7 +3331,7 @@
|
|
3389
3331
|
return wrapper.plant(args[0]).value();
|
3390
3332
|
}
|
3391
3333
|
var index = 0,
|
3392
|
-
result = funcs[index].apply(this, args);
|
3334
|
+
result = length ? funcs[index].apply(this, args) : args[0];
|
3393
3335
|
|
3394
3336
|
while (++index < length) {
|
3395
3337
|
result = funcs[index].call(this, result);
|
@@ -3447,6 +3389,28 @@
|
|
3447
3389
|
};
|
3448
3390
|
}
|
3449
3391
|
|
3392
|
+
/**
|
3393
|
+
* Creates a function for `_.mapKeys` or `_.mapValues`.
|
3394
|
+
*
|
3395
|
+
* @private
|
3396
|
+
* @param {boolean} [isMapKeys] Specify mapping keys instead of values.
|
3397
|
+
* @returns {Function} Returns the new map function.
|
3398
|
+
*/
|
3399
|
+
function createObjectMapper(isMapKeys) {
|
3400
|
+
return function(object, iteratee, thisArg) {
|
3401
|
+
var result = {};
|
3402
|
+
iteratee = getCallback(iteratee, thisArg, 3);
|
3403
|
+
|
3404
|
+
baseForOwn(object, function(value, key, object) {
|
3405
|
+
var mapped = iteratee(value, key, object);
|
3406
|
+
key = isMapKeys ? mapped : key;
|
3407
|
+
value = isMapKeys ? value : mapped;
|
3408
|
+
result[key] = value;
|
3409
|
+
});
|
3410
|
+
return result;
|
3411
|
+
};
|
3412
|
+
}
|
3413
|
+
|
3450
3414
|
/**
|
3451
3415
|
* Creates a function for `_.padLeft` or `_.padRight`.
|
3452
3416
|
*
|
@@ -3457,7 +3421,7 @@
|
|
3457
3421
|
function createPadDir(fromRight) {
|
3458
3422
|
return function(string, length, chars) {
|
3459
3423
|
string = baseToString(string);
|
3460
|
-
return
|
3424
|
+
return (fromRight ? string : '') + createPadding(string, length, chars) + (fromRight ? '' : string);
|
3461
3425
|
};
|
3462
3426
|
}
|
3463
3427
|
|
@@ -3516,10 +3480,8 @@
|
|
3516
3480
|
isBindKey = bitmask & BIND_KEY_FLAG,
|
3517
3481
|
isCurry = bitmask & CURRY_FLAG,
|
3518
3482
|
isCurryBound = bitmask & CURRY_BOUND_FLAG,
|
3519
|
-
isCurryRight = bitmask & CURRY_RIGHT_FLAG
|
3520
|
-
|
3521
|
-
var Ctor = !isBindKey && createCtorWrapper(func),
|
3522
|
-
key = func;
|
3483
|
+
isCurryRight = bitmask & CURRY_RIGHT_FLAG,
|
3484
|
+
Ctor = isBindKey ? null : createCtorWrapper(func);
|
3523
3485
|
|
3524
3486
|
function wrapper() {
|
3525
3487
|
// Avoid `arguments` object use disqualifying optimizations by
|
@@ -3566,17 +3528,18 @@
|
|
3566
3528
|
return result;
|
3567
3529
|
}
|
3568
3530
|
}
|
3569
|
-
var thisBinding = isBind ? thisArg : this
|
3570
|
-
|
3571
|
-
|
3572
|
-
}
|
3531
|
+
var thisBinding = isBind ? thisArg : this,
|
3532
|
+
fn = isBindKey ? thisBinding[func] : func;
|
3533
|
+
|
3573
3534
|
if (argPos) {
|
3574
3535
|
args = reorder(args, argPos);
|
3575
3536
|
}
|
3576
3537
|
if (isAry && ary < args.length) {
|
3577
3538
|
args.length = ary;
|
3578
3539
|
}
|
3579
|
-
|
3540
|
+
if (this && this !== root && this instanceof wrapper) {
|
3541
|
+
fn = Ctor || createCtorWrapper(func);
|
3542
|
+
}
|
3580
3543
|
return fn.apply(thisBinding, args);
|
3581
3544
|
}
|
3582
3545
|
return wrapper;
|
@@ -3650,10 +3613,10 @@
|
|
3650
3613
|
*/
|
3651
3614
|
function createSortedIndex(retHighest) {
|
3652
3615
|
return function(array, value, iteratee, thisArg) {
|
3653
|
-
var
|
3654
|
-
return (
|
3616
|
+
var callback = getCallback(iteratee);
|
3617
|
+
return (iteratee == null && callback === baseCallback)
|
3655
3618
|
? binaryIndex(array, value, retHighest)
|
3656
|
-
: binaryIndexBy(array, value,
|
3619
|
+
: binaryIndexBy(array, value, callback(iteratee, thisArg, 1), retHighest);
|
3657
3620
|
};
|
3658
3621
|
}
|
3659
3622
|
|
@@ -3739,40 +3702,35 @@
|
|
3739
3702
|
function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {
|
3740
3703
|
var index = -1,
|
3741
3704
|
arrLength = array.length,
|
3742
|
-
othLength = other.length
|
3743
|
-
result = true;
|
3705
|
+
othLength = other.length;
|
3744
3706
|
|
3745
3707
|
if (arrLength != othLength && !(isLoose && othLength > arrLength)) {
|
3746
3708
|
return false;
|
3747
3709
|
}
|
3748
|
-
//
|
3749
|
-
while (
|
3710
|
+
// Ignore non-index properties.
|
3711
|
+
while (++index < arrLength) {
|
3750
3712
|
var arrValue = array[index],
|
3751
|
-
othValue = other[index]
|
3752
|
-
|
3753
|
-
|
3754
|
-
if (
|
3755
|
-
result
|
3756
|
-
|
3757
|
-
: customizer(arrValue, othValue, index);
|
3758
|
-
}
|
3759
|
-
if (result === undefined) {
|
3760
|
-
// Recursively compare arrays (susceptible to call stack limits).
|
3761
|
-
if (isLoose) {
|
3762
|
-
var othIndex = othLength;
|
3763
|
-
while (othIndex--) {
|
3764
|
-
othValue = other[othIndex];
|
3765
|
-
result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
|
3766
|
-
if (result) {
|
3767
|
-
break;
|
3768
|
-
}
|
3769
|
-
}
|
3770
|
-
} else {
|
3771
|
-
result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
|
3713
|
+
othValue = other[index],
|
3714
|
+
result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;
|
3715
|
+
|
3716
|
+
if (result !== undefined) {
|
3717
|
+
if (result) {
|
3718
|
+
continue;
|
3772
3719
|
}
|
3720
|
+
return false;
|
3721
|
+
}
|
3722
|
+
// Recursively compare arrays (susceptible to call stack limits).
|
3723
|
+
if (isLoose) {
|
3724
|
+
if (!arraySome(other, function(othValue) {
|
3725
|
+
return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
|
3726
|
+
})) {
|
3727
|
+
return false;
|
3728
|
+
}
|
3729
|
+
} else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {
|
3730
|
+
return false;
|
3773
3731
|
}
|
3774
3732
|
}
|
3775
|
-
return
|
3733
|
+
return true;
|
3776
3734
|
}
|
3777
3735
|
|
3778
3736
|
/**
|
@@ -3803,8 +3761,7 @@
|
|
3803
3761
|
// Treat `NaN` vs. `NaN` as equal.
|
3804
3762
|
return (object != +object)
|
3805
3763
|
? other != +other
|
3806
|
-
|
3807
|
-
: (object == 0 ? ((1 / object) == (1 / other)) : object == +other);
|
3764
|
+
: object == +other;
|
3808
3765
|
|
3809
3766
|
case regexpTag:
|
3810
3767
|
case stringTag:
|
@@ -3838,29 +3795,22 @@
|
|
3838
3795
|
if (objLength != othLength && !isLoose) {
|
3839
3796
|
return false;
|
3840
3797
|
}
|
3841
|
-
var
|
3842
|
-
|
3843
|
-
|
3798
|
+
var index = objLength;
|
3799
|
+
while (index--) {
|
3800
|
+
var key = objProps[index];
|
3801
|
+
if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {
|
3802
|
+
return false;
|
3803
|
+
}
|
3804
|
+
}
|
3805
|
+
var skipCtor = isLoose;
|
3844
3806
|
while (++index < objLength) {
|
3845
|
-
|
3846
|
-
|
3807
|
+
key = objProps[index];
|
3808
|
+
var objValue = object[key],
|
3809
|
+
othValue = other[key],
|
3810
|
+
result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;
|
3847
3811
|
|
3848
|
-
|
3849
|
-
|
3850
|
-
othValue = other[key];
|
3851
|
-
|
3852
|
-
result = undefined;
|
3853
|
-
if (customizer) {
|
3854
|
-
result = isLoose
|
3855
|
-
? customizer(othValue, objValue, key)
|
3856
|
-
: customizer(objValue, othValue, key);
|
3857
|
-
}
|
3858
|
-
if (result === undefined) {
|
3859
|
-
// Recursively compare objects (susceptible to call stack limits).
|
3860
|
-
result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB);
|
3861
|
-
}
|
3862
|
-
}
|
3863
|
-
if (!result) {
|
3812
|
+
// Recursively compare objects (susceptible to call stack limits).
|
3813
|
+
if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {
|
3864
3814
|
return false;
|
3865
3815
|
}
|
3866
3816
|
skipCtor || (skipCtor = key == 'constructor');
|
@@ -3880,34 +3830,6 @@
|
|
3880
3830
|
return true;
|
3881
3831
|
}
|
3882
3832
|
|
3883
|
-
/**
|
3884
|
-
* Gets the extremum value of `collection` invoking `iteratee` for each value
|
3885
|
-
* in `collection` to generate the criterion by which the value is ranked.
|
3886
|
-
* The `iteratee` is invoked with three arguments: (value, index, collection).
|
3887
|
-
*
|
3888
|
-
* @private
|
3889
|
-
* @param {Array|Object|string} collection The collection to iterate over.
|
3890
|
-
* @param {Function} iteratee The function invoked per iteration.
|
3891
|
-
* @param {boolean} [isMin] Specify returning the minimum, instead of the
|
3892
|
-
* maximum, extremum value.
|
3893
|
-
* @returns {*} Returns the extremum value.
|
3894
|
-
*/
|
3895
|
-
function extremumBy(collection, iteratee, isMin) {
|
3896
|
-
var exValue = isMin ? POSITIVE_INFINITY : NEGATIVE_INFINITY,
|
3897
|
-
computed = exValue,
|
3898
|
-
result = computed;
|
3899
|
-
|
3900
|
-
baseEach(collection, function(value, index, collection) {
|
3901
|
-
var current = iteratee(value, index, collection);
|
3902
|
-
if ((isMin ? (current < computed) : (current > computed)) ||
|
3903
|
-
(current === exValue && current === result)) {
|
3904
|
-
computed = current;
|
3905
|
-
result = value;
|
3906
|
-
}
|
3907
|
-
});
|
3908
|
-
return result;
|
3909
|
-
}
|
3910
|
-
|
3911
3833
|
/**
|
3912
3834
|
* Gets the appropriate "callback" function. If the `_.callback` method is
|
3913
3835
|
* customized this function returns the custom method, otherwise it returns
|
@@ -3941,29 +3863,20 @@
|
|
3941
3863
|
* @param {Function} func The function to query.
|
3942
3864
|
* @returns {string} Returns the function name.
|
3943
3865
|
*/
|
3944
|
-
|
3945
|
-
|
3946
|
-
|
3947
|
-
|
3948
|
-
if (constant.name == 'constant') {
|
3949
|
-
return baseProperty('name');
|
3950
|
-
}
|
3951
|
-
return function(func) {
|
3952
|
-
var result = func.name,
|
3953
|
-
array = realNames[result],
|
3954
|
-
length = array ? array.length : 0;
|
3955
|
-
|
3956
|
-
while (length--) {
|
3957
|
-
var data = array[length],
|
3958
|
-
otherFunc = data.func;
|
3866
|
+
function getFuncName(func) {
|
3867
|
+
var result = func.name,
|
3868
|
+
array = realNames[result],
|
3869
|
+
length = array ? array.length : 0;
|
3959
3870
|
|
3960
|
-
|
3961
|
-
|
3962
|
-
|
3871
|
+
while (length--) {
|
3872
|
+
var data = array[length],
|
3873
|
+
otherFunc = data.func;
|
3874
|
+
if (otherFunc == null || otherFunc == func) {
|
3875
|
+
return data.name;
|
3963
3876
|
}
|
3964
|
-
|
3965
|
-
|
3966
|
-
}
|
3877
|
+
}
|
3878
|
+
return result;
|
3879
|
+
}
|
3967
3880
|
|
3968
3881
|
/**
|
3969
3882
|
* Gets the appropriate "indexOf" function. If the `_.indexOf` method is
|
@@ -3984,7 +3897,7 @@
|
|
3984
3897
|
* Gets the "length" property value of `object`.
|
3985
3898
|
*
|
3986
3899
|
* **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
|
3987
|
-
*
|
3900
|
+
* that affects Safari on at least iOS 8.1-8.3 ARM64.
|
3988
3901
|
*
|
3989
3902
|
* @private
|
3990
3903
|
* @param {Object} object The object to query.
|
@@ -3993,15 +3906,34 @@
|
|
3993
3906
|
var getLength = baseProperty('length');
|
3994
3907
|
|
3995
3908
|
/**
|
3996
|
-
*
|
3909
|
+
* Gets the propery names, values, and compare flags of `object`.
|
3997
3910
|
*
|
3998
3911
|
* @private
|
3999
3912
|
* @param {Object} object The object to query.
|
4000
|
-
* @returns {Array} Returns the
|
3913
|
+
* @returns {Array} Returns the match data of `object`.
|
4001
3914
|
*/
|
4002
|
-
|
4003
|
-
|
4004
|
-
|
3915
|
+
function getMatchData(object) {
|
3916
|
+
var result = pairs(object),
|
3917
|
+
length = result.length;
|
3918
|
+
|
3919
|
+
while (length--) {
|
3920
|
+
result[length][2] = isStrictComparable(result[length][1]);
|
3921
|
+
}
|
3922
|
+
return result;
|
3923
|
+
}
|
3924
|
+
|
3925
|
+
/**
|
3926
|
+
* Gets the native function at `key` of `object`.
|
3927
|
+
*
|
3928
|
+
* @private
|
3929
|
+
* @param {Object} object The object to query.
|
3930
|
+
* @param {string} key The key of the method to get.
|
3931
|
+
* @returns {*} Returns the function if it's native, else `undefined`.
|
3932
|
+
*/
|
3933
|
+
function getNative(object, key) {
|
3934
|
+
var value = object == null ? undefined : object[key];
|
3935
|
+
return isNative(value) ? value : undefined;
|
3936
|
+
}
|
4005
3937
|
|
4006
3938
|
/**
|
4007
3939
|
* Gets the view, applying any `transforms` to the `start` and `end` positions.
|
@@ -4123,6 +4055,17 @@
|
|
4123
4055
|
return func == null ? undefined : func.apply(object, args);
|
4124
4056
|
}
|
4125
4057
|
|
4058
|
+
/**
|
4059
|
+
* Checks if `value` is array-like.
|
4060
|
+
*
|
4061
|
+
* @private
|
4062
|
+
* @param {*} value The value to check.
|
4063
|
+
* @returns {boolean} Returns `true` if `value` is array-like, else `false`.
|
4064
|
+
*/
|
4065
|
+
function isArrayLike(value) {
|
4066
|
+
return value != null && isLength(getLength(value));
|
4067
|
+
}
|
4068
|
+
|
4126
4069
|
/**
|
4127
4070
|
* Checks if `value` is a valid array-like index.
|
4128
4071
|
*
|
@@ -4132,7 +4075,7 @@
|
|
4132
4075
|
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
|
4133
4076
|
*/
|
4134
4077
|
function isIndex(value, length) {
|
4135
|
-
value = +value;
|
4078
|
+
value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
|
4136
4079
|
length = length == null ? MAX_SAFE_INTEGER : length;
|
4137
4080
|
return value > -1 && value % 1 == 0 && value < length;
|
4138
4081
|
}
|
@@ -4151,13 +4094,9 @@
|
|
4151
4094
|
return false;
|
4152
4095
|
}
|
4153
4096
|
var type = typeof index;
|
4154
|
-
if (type == 'number'
|
4155
|
-
|
4156
|
-
|
4157
|
-
} else {
|
4158
|
-
prereq = type == 'string' && index in object;
|
4159
|
-
}
|
4160
|
-
if (prereq) {
|
4097
|
+
if (type == 'number'
|
4098
|
+
? (isArrayLike(object) && isIndex(index, object.length))
|
4099
|
+
: (type == 'string' && index in object)) {
|
4161
4100
|
var other = object[index];
|
4162
4101
|
return value === value ? (value === other) : (other !== other);
|
4163
4102
|
}
|
@@ -4193,7 +4132,15 @@
|
|
4193
4132
|
*/
|
4194
4133
|
function isLaziable(func) {
|
4195
4134
|
var funcName = getFuncName(func);
|
4196
|
-
|
4135
|
+
if (!(funcName in LazyWrapper.prototype)) {
|
4136
|
+
return false;
|
4137
|
+
}
|
4138
|
+
var other = lodash[funcName];
|
4139
|
+
if (func === other) {
|
4140
|
+
return true;
|
4141
|
+
}
|
4142
|
+
var data = getData(other);
|
4143
|
+
return !!data && func === data[0];
|
4197
4144
|
}
|
4198
4145
|
|
4199
4146
|
/**
|
@@ -4218,7 +4165,7 @@
|
|
4218
4165
|
* equality comparisons, else `false`.
|
4219
4166
|
*/
|
4220
4167
|
function isStrictComparable(value) {
|
4221
|
-
return value === value &&
|
4168
|
+
return value === value && !isObject(value);
|
4222
4169
|
}
|
4223
4170
|
|
4224
4171
|
/**
|
@@ -4292,7 +4239,7 @@
|
|
4292
4239
|
}
|
4293
4240
|
|
4294
4241
|
/**
|
4295
|
-
* A specialized version of `_.pick`
|
4242
|
+
* A specialized version of `_.pick` which picks `object` properties specified
|
4296
4243
|
* by `props`.
|
4297
4244
|
*
|
4298
4245
|
* @private
|
@@ -4317,7 +4264,7 @@
|
|
4317
4264
|
}
|
4318
4265
|
|
4319
4266
|
/**
|
4320
|
-
* A specialized version of `_.pick`
|
4267
|
+
* A specialized version of `_.pick` which picks `object` properties `predicate`
|
4321
4268
|
* returns truthy for.
|
4322
4269
|
*
|
4323
4270
|
* @private
|
@@ -4433,11 +4380,10 @@
|
|
4433
4380
|
function shimKeys(object) {
|
4434
4381
|
var props = keysIn(object),
|
4435
4382
|
propsLength = props.length,
|
4436
|
-
length = propsLength && object.length
|
4437
|
-
support = lodash.support;
|
4383
|
+
length = propsLength && object.length;
|
4438
4384
|
|
4439
|
-
var allowIndexes = length && isLength(length) &&
|
4440
|
-
(isArray(object) ||
|
4385
|
+
var allowIndexes = !!length && isLength(length) &&
|
4386
|
+
(isArray(object) || isArguments(object));
|
4441
4387
|
|
4442
4388
|
var index = -1,
|
4443
4389
|
result = [];
|
@@ -4452,7 +4398,7 @@
|
|
4452
4398
|
}
|
4453
4399
|
|
4454
4400
|
/**
|
4455
|
-
* Converts `value` to an array-like object if it
|
4401
|
+
* Converts `value` to an array-like object if it's not one.
|
4456
4402
|
*
|
4457
4403
|
* @private
|
4458
4404
|
* @param {*} value The value to process.
|
@@ -4462,14 +4408,14 @@
|
|
4462
4408
|
if (value == null) {
|
4463
4409
|
return [];
|
4464
4410
|
}
|
4465
|
-
if (!
|
4411
|
+
if (!isArrayLike(value)) {
|
4466
4412
|
return values(value);
|
4467
4413
|
}
|
4468
4414
|
return isObject(value) ? value : Object(value);
|
4469
4415
|
}
|
4470
4416
|
|
4471
4417
|
/**
|
4472
|
-
* Converts `value` to an object if it
|
4418
|
+
* Converts `value` to an object if it's not one.
|
4473
4419
|
*
|
4474
4420
|
* @private
|
4475
4421
|
* @param {*} value The value to process.
|
@@ -4480,7 +4426,7 @@
|
|
4480
4426
|
}
|
4481
4427
|
|
4482
4428
|
/**
|
4483
|
-
* Converts `value` to property path array if it
|
4429
|
+
* Converts `value` to property path array if it's not one.
|
4484
4430
|
*
|
4485
4431
|
* @private
|
4486
4432
|
* @param {*} value The value to process.
|
@@ -4579,12 +4525,9 @@
|
|
4579
4525
|
}
|
4580
4526
|
|
4581
4527
|
/**
|
4582
|
-
* Creates an array
|
4583
|
-
* `SameValueZero`
|
4584
|
-
*
|
4585
|
-
* **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
4586
|
-
* comparisons are like strict equality comparisons, e.g. `===`, except that
|
4587
|
-
* `NaN` matches `NaN`.
|
4528
|
+
* Creates an array of unique `array` values not included in the other
|
4529
|
+
* provided arrays using [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
4530
|
+
* for equality comparisons.
|
4588
4531
|
*
|
4589
4532
|
* @static
|
4590
4533
|
* @memberOf _
|
@@ -4598,7 +4541,7 @@
|
|
4598
4541
|
* // => [1, 3]
|
4599
4542
|
*/
|
4600
4543
|
var difference = restParam(function(array, values) {
|
4601
|
-
return (
|
4544
|
+
return isArrayLike(array)
|
4602
4545
|
? baseDifference(array, baseFlatten(values, false, true))
|
4603
4546
|
: [];
|
4604
4547
|
});
|
@@ -4993,13 +4936,10 @@
|
|
4993
4936
|
|
4994
4937
|
/**
|
4995
4938
|
* Gets the index at which the first occurrence of `value` is found in `array`
|
4996
|
-
* using `SameValueZero`
|
4997
|
-
*
|
4998
|
-
* providing `true` for `fromIndex`
|
4999
|
-
*
|
5000
|
-
* **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5001
|
-
* comparisons are like strict equality comparisons, e.g. `===`, except that
|
5002
|
-
* `NaN` matches `NaN`.
|
4939
|
+
* using [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
4940
|
+
* for equality comparisons. If `fromIndex` is negative, it is used as the offset
|
4941
|
+
* from the end of `array`. If `array` is sorted providing `true` for `fromIndex`
|
4942
|
+
* performs a faster binary search.
|
5003
4943
|
*
|
5004
4944
|
* @static
|
5005
4945
|
* @memberOf _
|
@@ -5059,13 +4999,10 @@
|
|
5059
4999
|
}
|
5060
5000
|
|
5061
5001
|
/**
|
5062
|
-
* Creates an array of unique values in all
|
5002
|
+
* Creates an array of unique values that are included in all of the provided
|
5003
|
+
* arrays using [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5063
5004
|
* for equality comparisons.
|
5064
5005
|
*
|
5065
|
-
* **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5066
|
-
* comparisons are like strict equality comparisons, e.g. `===`, except that
|
5067
|
-
* `NaN` matches `NaN`.
|
5068
|
-
*
|
5069
5006
|
* @static
|
5070
5007
|
* @memberOf _
|
5071
5008
|
* @category Array
|
@@ -5075,27 +5012,19 @@
|
|
5075
5012
|
* _.intersection([1, 2], [4, 2], [2, 1]);
|
5076
5013
|
* // => [2]
|
5077
5014
|
*/
|
5078
|
-
|
5079
|
-
var
|
5080
|
-
|
5081
|
-
|
5082
|
-
caches = [],
|
5015
|
+
var intersection = restParam(function(arrays) {
|
5016
|
+
var othLength = arrays.length,
|
5017
|
+
othIndex = othLength,
|
5018
|
+
caches = Array(length),
|
5083
5019
|
indexOf = getIndexOf(),
|
5084
5020
|
isCommon = indexOf == baseIndexOf,
|
5085
5021
|
result = [];
|
5086
5022
|
|
5087
|
-
while (
|
5088
|
-
var value =
|
5089
|
-
|
5090
|
-
args.push(value);
|
5091
|
-
caches.push((isCommon && value.length >= 120) ? createCache(argsIndex && value) : null);
|
5092
|
-
}
|
5023
|
+
while (othIndex--) {
|
5024
|
+
var value = arrays[othIndex] = isArrayLike(value = arrays[othIndex]) ? value : [];
|
5025
|
+
caches[othIndex] = (isCommon && value.length >= 120) ? createCache(othIndex && value) : null;
|
5093
5026
|
}
|
5094
|
-
|
5095
|
-
if (argsLength < 2) {
|
5096
|
-
return result;
|
5097
|
-
}
|
5098
|
-
var array = args[0],
|
5027
|
+
var array = arrays[0],
|
5099
5028
|
index = -1,
|
5100
5029
|
length = array ? array.length : 0,
|
5101
5030
|
seen = caches[0];
|
@@ -5104,10 +5033,10 @@
|
|
5104
5033
|
while (++index < length) {
|
5105
5034
|
value = array[index];
|
5106
5035
|
if ((seen ? cacheIndexOf(seen, value) : indexOf(result, value, 0)) < 0) {
|
5107
|
-
|
5108
|
-
while (--
|
5109
|
-
var cache = caches[
|
5110
|
-
if ((cache ? cacheIndexOf(cache, value) : indexOf(
|
5036
|
+
var othIndex = othLength;
|
5037
|
+
while (--othIndex) {
|
5038
|
+
var cache = caches[othIndex];
|
5039
|
+
if ((cache ? cacheIndexOf(cache, value) : indexOf(arrays[othIndex], value, 0)) < 0) {
|
5111
5040
|
continue outer;
|
5112
5041
|
}
|
5113
5042
|
}
|
@@ -5118,7 +5047,7 @@
|
|
5118
5047
|
}
|
5119
5048
|
}
|
5120
5049
|
return result;
|
5121
|
-
}
|
5050
|
+
});
|
5122
5051
|
|
5123
5052
|
/**
|
5124
5053
|
* Gets the last element of `array`.
|
@@ -5191,14 +5120,11 @@
|
|
5191
5120
|
}
|
5192
5121
|
|
5193
5122
|
/**
|
5194
|
-
* Removes all provided values from `array` using
|
5195
|
-
*
|
5123
|
+
* Removes all provided values from `array` using
|
5124
|
+
* [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5125
|
+
* for equality comparisons.
|
5196
5126
|
*
|
5197
|
-
* **
|
5198
|
-
* - Unlike `_.without`, this method mutates `array`
|
5199
|
-
* - [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5200
|
-
* comparisons are like strict equality comparisons, e.g. `===`, except
|
5201
|
-
* that `NaN` matches `NaN`
|
5127
|
+
* **Note:** Unlike `_.without`, this method mutates `array`.
|
5202
5128
|
*
|
5203
5129
|
* @static
|
5204
5130
|
* @memberOf _
|
@@ -5262,7 +5188,6 @@
|
|
5262
5188
|
* // => [10, 20]
|
5263
5189
|
*/
|
5264
5190
|
var pullAt = restParam(function(array, indexes) {
|
5265
|
-
array || (array = []);
|
5266
5191
|
indexes = baseFlatten(indexes);
|
5267
5192
|
|
5268
5193
|
var result = baseAt(array, indexes);
|
@@ -5628,12 +5553,9 @@
|
|
5628
5553
|
}
|
5629
5554
|
|
5630
5555
|
/**
|
5631
|
-
* Creates an array of unique values, in order, of the provided arrays
|
5632
|
-
* `SameValueZero`
|
5633
|
-
*
|
5634
|
-
* **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5635
|
-
* comparisons are like strict equality comparisons, e.g. `===`, except that
|
5636
|
-
* `NaN` matches `NaN`.
|
5556
|
+
* Creates an array of unique values, in order, from all of the provided arrays
|
5557
|
+
* using [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5558
|
+
* for equality comparisons.
|
5637
5559
|
*
|
5638
5560
|
* @static
|
5639
5561
|
* @memberOf _
|
@@ -5650,8 +5572,9 @@
|
|
5650
5572
|
});
|
5651
5573
|
|
5652
5574
|
/**
|
5653
|
-
* Creates a duplicate-free version of an array, using
|
5654
|
-
*
|
5575
|
+
* Creates a duplicate-free version of an array, using
|
5576
|
+
* [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5577
|
+
* for equality comparisons, in which only the first occurence of each element
|
5655
5578
|
* is kept. Providing `true` for `isSorted` performs a faster search algorithm
|
5656
5579
|
* for sorted arrays. If an iteratee function is provided it is invoked for
|
5657
5580
|
* each element in the array to generate the criterion by which uniqueness
|
@@ -5669,10 +5592,6 @@
|
|
5669
5592
|
* callback returns `true` for elements that have the properties of the given
|
5670
5593
|
* object, else `false`.
|
5671
5594
|
*
|
5672
|
-
* **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5673
|
-
* comparisons are like strict equality comparisons, e.g. `===`, except that
|
5674
|
-
* `NaN` matches `NaN`.
|
5675
|
-
*
|
5676
5595
|
* @static
|
5677
5596
|
* @memberOf _
|
5678
5597
|
* @alias unique
|
@@ -5711,9 +5630,9 @@
|
|
5711
5630
|
iteratee = isIterateeCall(array, isSorted, thisArg) ? null : isSorted;
|
5712
5631
|
isSorted = false;
|
5713
5632
|
}
|
5714
|
-
var
|
5715
|
-
if (!(
|
5716
|
-
iteratee =
|
5633
|
+
var callback = getCallback();
|
5634
|
+
if (!(iteratee == null && callback === baseCallback)) {
|
5635
|
+
iteratee = callback(iteratee, thisArg, 3);
|
5717
5636
|
}
|
5718
5637
|
return (isSorted && getIndexOf() == baseIndexOf)
|
5719
5638
|
? sortedUniq(array, iteratee)
|
@@ -5722,7 +5641,7 @@
|
|
5722
5641
|
|
5723
5642
|
/**
|
5724
5643
|
* This method is like `_.zip` except that it accepts an array of grouped
|
5725
|
-
* elements and creates an array regrouping the elements to their pre
|
5644
|
+
* elements and creates an array regrouping the elements to their pre-zip
|
5726
5645
|
* configuration.
|
5727
5646
|
*
|
5728
5647
|
* @static
|
@@ -5739,10 +5658,19 @@
|
|
5739
5658
|
* // => [['fred', 'barney'], [30, 40], [true, false]]
|
5740
5659
|
*/
|
5741
5660
|
function unzip(array) {
|
5661
|
+
if (!(array && array.length)) {
|
5662
|
+
return [];
|
5663
|
+
}
|
5742
5664
|
var index = -1,
|
5743
|
-
length =
|
5744
|
-
result = Array(length);
|
5665
|
+
length = 0;
|
5745
5666
|
|
5667
|
+
array = arrayFilter(array, function(group) {
|
5668
|
+
if (isArrayLike(group)) {
|
5669
|
+
length = nativeMax(group.length, length);
|
5670
|
+
return true;
|
5671
|
+
}
|
5672
|
+
});
|
5673
|
+
var result = Array(length);
|
5746
5674
|
while (++index < length) {
|
5747
5675
|
result[index] = arrayMap(array, baseProperty(index));
|
5748
5676
|
}
|
@@ -5750,12 +5678,44 @@
|
|
5750
5678
|
}
|
5751
5679
|
|
5752
5680
|
/**
|
5753
|
-
*
|
5754
|
-
*
|
5681
|
+
* This method is like `_.unzip` except that it accepts an iteratee to specify
|
5682
|
+
* how regrouped values should be combined. The `iteratee` is bound to `thisArg`
|
5683
|
+
* and invoked with four arguments: (accumulator, value, index, group).
|
5684
|
+
*
|
5685
|
+
* @static
|
5686
|
+
* @memberOf _
|
5687
|
+
* @category Array
|
5688
|
+
* @param {Array} array The array of grouped elements to process.
|
5689
|
+
* @param {Function} [iteratee] The function to combine regrouped values.
|
5690
|
+
* @param {*} [thisArg] The `this` binding of `iteratee`.
|
5691
|
+
* @returns {Array} Returns the new array of regrouped elements.
|
5692
|
+
* @example
|
5755
5693
|
*
|
5756
|
-
*
|
5757
|
-
*
|
5758
|
-
*
|
5694
|
+
* var zipped = _.zip([1, 2], [10, 20], [100, 200]);
|
5695
|
+
* // => [[1, 10, 100], [2, 20, 200]]
|
5696
|
+
*
|
5697
|
+
* _.unzipWith(zipped, _.add);
|
5698
|
+
* // => [3, 30, 300]
|
5699
|
+
*/
|
5700
|
+
function unzipWith(array, iteratee, thisArg) {
|
5701
|
+
var length = array ? array.length : 0;
|
5702
|
+
if (!length) {
|
5703
|
+
return [];
|
5704
|
+
}
|
5705
|
+
var result = unzip(array);
|
5706
|
+
if (iteratee == null) {
|
5707
|
+
return result;
|
5708
|
+
}
|
5709
|
+
iteratee = bindCallback(iteratee, thisArg, 4);
|
5710
|
+
return arrayMap(result, function(group) {
|
5711
|
+
return arrayReduce(group, iteratee, undefined, true);
|
5712
|
+
});
|
5713
|
+
}
|
5714
|
+
|
5715
|
+
/**
|
5716
|
+
* Creates an array excluding all provided values using
|
5717
|
+
* [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
5718
|
+
* for equality comparisons.
|
5759
5719
|
*
|
5760
5720
|
* @static
|
5761
5721
|
* @memberOf _
|
@@ -5769,13 +5729,13 @@
|
|
5769
5729
|
* // => [3]
|
5770
5730
|
*/
|
5771
5731
|
var without = restParam(function(array, values) {
|
5772
|
-
return (
|
5732
|
+
return isArrayLike(array)
|
5773
5733
|
? baseDifference(array, values)
|
5774
5734
|
: [];
|
5775
5735
|
});
|
5776
5736
|
|
5777
5737
|
/**
|
5778
|
-
* Creates an array that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
|
5738
|
+
* Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
|
5779
5739
|
* of the provided arrays.
|
5780
5740
|
*
|
5781
5741
|
* @static
|
@@ -5794,7 +5754,7 @@
|
|
5794
5754
|
|
5795
5755
|
while (++index < length) {
|
5796
5756
|
var array = arguments[index];
|
5797
|
-
if (
|
5757
|
+
if (isArrayLike(array)) {
|
5798
5758
|
var result = result
|
5799
5759
|
? baseDifference(result, array).concat(baseDifference(array, result))
|
5800
5760
|
: array;
|
@@ -5860,6 +5820,38 @@
|
|
5860
5820
|
return result;
|
5861
5821
|
}
|
5862
5822
|
|
5823
|
+
/**
|
5824
|
+
* This method is like `_.zip` except that it accepts an iteratee to specify
|
5825
|
+
* how grouped values should be combined. The `iteratee` is bound to `thisArg`
|
5826
|
+
* and invoked with four arguments: (accumulator, value, index, group).
|
5827
|
+
*
|
5828
|
+
* @static
|
5829
|
+
* @memberOf _
|
5830
|
+
* @category Array
|
5831
|
+
* @param {...Array} [arrays] The arrays to process.
|
5832
|
+
* @param {Function} [iteratee] The function to combine grouped values.
|
5833
|
+
* @param {*} [thisArg] The `this` binding of `iteratee`.
|
5834
|
+
* @returns {Array} Returns the new array of grouped elements.
|
5835
|
+
* @example
|
5836
|
+
*
|
5837
|
+
* _.zipWith([1, 2], [10, 20], [100, 200], _.add);
|
5838
|
+
* // => [111, 222]
|
5839
|
+
*/
|
5840
|
+
var zipWith = restParam(function(arrays) {
|
5841
|
+
var length = arrays.length,
|
5842
|
+
iteratee = length > 2 ? arrays[length - 2] : undefined,
|
5843
|
+
thisArg = length > 1 ? arrays[length - 1] : undefined;
|
5844
|
+
|
5845
|
+
if (length > 2 && typeof iteratee == 'function') {
|
5846
|
+
length -= 2;
|
5847
|
+
} else {
|
5848
|
+
iteratee = (length > 1 && typeof thisArg == 'function') ? (--length, thisArg) : undefined;
|
5849
|
+
thisArg = undefined;
|
5850
|
+
}
|
5851
|
+
arrays.length = length;
|
5852
|
+
return unzipWith(arrays, iteratee, thisArg);
|
5853
|
+
});
|
5854
|
+
|
5863
5855
|
/*------------------------------------------------------------------------*/
|
5864
5856
|
|
5865
5857
|
/**
|
@@ -6135,10 +6127,6 @@
|
|
6135
6127
|
* // => ['barney', 'pebbles']
|
6136
6128
|
*/
|
6137
6129
|
var at = restParam(function(collection, props) {
|
6138
|
-
var length = collection ? getLength(collection) : 0;
|
6139
|
-
if (isLength(length)) {
|
6140
|
-
collection = toIterable(collection);
|
6141
|
-
}
|
6142
6130
|
return baseAt(collection, baseFlatten(props));
|
6143
6131
|
});
|
6144
6132
|
|
@@ -6511,13 +6499,10 @@
|
|
6511
6499
|
});
|
6512
6500
|
|
6513
6501
|
/**
|
6514
|
-
* Checks if `value` is in `collection` using
|
6515
|
-
*
|
6516
|
-
*
|
6517
|
-
*
|
6518
|
-
* **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
6519
|
-
* comparisons are like strict equality comparisons, e.g. `===`, except that
|
6520
|
-
* `NaN` matches `NaN`.
|
6502
|
+
* Checks if `value` is in `collection` using
|
6503
|
+
* [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero)
|
6504
|
+
* for equality comparisons. If `fromIndex` is negative, it is used as the offset
|
6505
|
+
* from the end of `collection`.
|
6521
6506
|
*
|
6522
6507
|
* @static
|
6523
6508
|
* @memberOf _
|
@@ -6612,7 +6597,7 @@
|
|
6612
6597
|
});
|
6613
6598
|
|
6614
6599
|
/**
|
6615
|
-
* Invokes the method at `path`
|
6600
|
+
* Invokes the method at `path` of each element in `collection`, returning
|
6616
6601
|
* an array of the results of each invoked method. Any additional arguments
|
6617
6602
|
* are provided to each invoked method. If `methodName` is a function it is
|
6618
6603
|
* invoked for, and `this` bound to, each element in `collection`.
|
@@ -6637,11 +6622,10 @@
|
|
6637
6622
|
var index = -1,
|
6638
6623
|
isFunc = typeof path == 'function',
|
6639
6624
|
isProp = isKey(path),
|
6640
|
-
|
6641
|
-
result = isLength(length) ? Array(length) : [];
|
6625
|
+
result = isArrayLike(collection) ? Array(collection.length) : [];
|
6642
6626
|
|
6643
6627
|
baseEach(collection, function(value) {
|
6644
|
-
var func = isFunc ? path : (isProp && value != null
|
6628
|
+
var func = isFunc ? path : ((isProp && value != null) ? value[path] : null);
|
6645
6629
|
result[++index] = func ? func.apply(value, args) : invokePath(value, path, args);
|
6646
6630
|
});
|
6647
6631
|
return result;
|
@@ -6663,14 +6647,15 @@
|
|
6663
6647
|
* callback returns `true` for elements that have the properties of the given
|
6664
6648
|
* object, else `false`.
|
6665
6649
|
*
|
6666
|
-
* Many lodash methods are guarded to work as
|
6650
|
+
* Many lodash methods are guarded to work as iteratees for methods like
|
6667
6651
|
* `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
|
6668
6652
|
*
|
6669
6653
|
* The guarded methods are:
|
6670
|
-
* `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`,
|
6671
|
-
* `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`,
|
6672
|
-
* `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`,
|
6673
|
-
* `trimRight`, `trunc`, `random`, `range`, `sample`, `some`,
|
6654
|
+
* `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`,
|
6655
|
+
* `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`,
|
6656
|
+
* `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`,
|
6657
|
+
* `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`,
|
6658
|
+
* `sum`, `uniq`, and `words`
|
6674
6659
|
*
|
6675
6660
|
* @static
|
6676
6661
|
* @memberOf _
|
@@ -6806,7 +6791,7 @@
|
|
6806
6791
|
* value. The `iteratee` is bound to `thisArg` and invoked with four arguments:
|
6807
6792
|
* (accumulator, value, index|key, collection).
|
6808
6793
|
*
|
6809
|
-
* Many lodash methods are guarded to work as
|
6794
|
+
* Many lodash methods are guarded to work as iteratees for methods like
|
6810
6795
|
* `_.reduce`, `_.reduceRight`, and `_.transform`.
|
6811
6796
|
*
|
6812
6797
|
* The guarded methods are:
|
@@ -6858,23 +6843,12 @@
|
|
6858
6843
|
* }, []);
|
6859
6844
|
* // => [4, 5, 2, 3, 0, 1]
|
6860
6845
|
*/
|
6861
|
-
var reduceRight =
|
6846
|
+
var reduceRight = createReduce(arrayReduceRight, baseEachRight);
|
6862
6847
|
|
6863
6848
|
/**
|
6864
6849
|
* The opposite of `_.filter`; this method returns the elements of `collection`
|
6865
6850
|
* that `predicate` does **not** return truthy for.
|
6866
6851
|
*
|
6867
|
-
* If a property name is provided for `predicate` the created `_.property`
|
6868
|
-
* style callback returns the property value of the given element.
|
6869
|
-
*
|
6870
|
-
* If a value is also provided for `thisArg` the created `_.matchesProperty`
|
6871
|
-
* style callback returns `true` for elements that have a matching property
|
6872
|
-
* value, else `false`.
|
6873
|
-
*
|
6874
|
-
* If an object is provided for `predicate` the created `_.matches` style
|
6875
|
-
* callback returns `true` for elements that have the properties of the given
|
6876
|
-
* object, else `false`.
|
6877
|
-
*
|
6878
6852
|
* @static
|
6879
6853
|
* @memberOf _
|
6880
6854
|
* @category Collection
|
@@ -6939,8 +6913,20 @@
|
|
6939
6913
|
var length = collection.length;
|
6940
6914
|
return length > 0 ? collection[baseRandom(0, length - 1)] : undefined;
|
6941
6915
|
}
|
6942
|
-
var
|
6943
|
-
|
6916
|
+
var index = -1,
|
6917
|
+
result = toArray(collection),
|
6918
|
+
length = result.length,
|
6919
|
+
lastIndex = length - 1;
|
6920
|
+
|
6921
|
+
n = nativeMin(n < 0 ? 0 : (+n || 0), length);
|
6922
|
+
while (++index < n) {
|
6923
|
+
var rand = baseRandom(index, lastIndex),
|
6924
|
+
value = result[rand];
|
6925
|
+
|
6926
|
+
result[rand] = result[index];
|
6927
|
+
result[index] = value;
|
6928
|
+
}
|
6929
|
+
result.length = n;
|
6944
6930
|
return result;
|
6945
6931
|
}
|
6946
6932
|
|
@@ -6959,20 +6945,7 @@
|
|
6959
6945
|
* // => [4, 1, 3, 2]
|
6960
6946
|
*/
|
6961
6947
|
function shuffle(collection) {
|
6962
|
-
|
6963
|
-
|
6964
|
-
var index = -1,
|
6965
|
-
length = collection.length,
|
6966
|
-
result = Array(length);
|
6967
|
-
|
6968
|
-
while (++index < length) {
|
6969
|
-
var rand = baseRandom(0, index);
|
6970
|
-
if (index != rand) {
|
6971
|
-
result[index] = result[rand];
|
6972
|
-
}
|
6973
|
-
result[rand] = collection[index];
|
6974
|
-
}
|
6975
|
-
return result;
|
6948
|
+
return sample(collection, POSITIVE_INFINITY);
|
6976
6949
|
}
|
6977
6950
|
|
6978
6951
|
/**
|
@@ -7598,12 +7571,13 @@
|
|
7598
7571
|
var curryRight = createCurry(CURRY_RIGHT_FLAG);
|
7599
7572
|
|
7600
7573
|
/**
|
7601
|
-
* Creates a function that delays invoking `func` until after `wait`
|
7602
|
-
* have elapsed since the last time
|
7603
|
-
* with a `cancel` method to cancel
|
7604
|
-
* object to indicate that `func`
|
7605
|
-
* trailing edge of the `wait` timeout.
|
7606
|
-
* function return the result of the last
|
7574
|
+
* Creates a debounced function that delays invoking `func` until after `wait`
|
7575
|
+
* milliseconds have elapsed since the last time the debounced function was
|
7576
|
+
* invoked. The debounced function comes with a `cancel` method to cancel
|
7577
|
+
* delayed invocations. Provide an options object to indicate that `func`
|
7578
|
+
* should be invoked on the leading and/or trailing edge of the `wait` timeout.
|
7579
|
+
* Subsequent calls to the debounced function return the result of the last
|
7580
|
+
* `func` invocation.
|
7607
7581
|
*
|
7608
7582
|
* **Note:** If `leading` and `trailing` options are `true`, `func` is invoked
|
7609
7583
|
* on the trailing edge of the timeout only if the the debounced function is
|
@@ -7917,14 +7891,14 @@
|
|
7917
7891
|
}
|
7918
7892
|
var memoized = function() {
|
7919
7893
|
var args = arguments,
|
7920
|
-
|
7921
|
-
|
7894
|
+
key = resolver ? resolver.apply(this, args) : args[0],
|
7895
|
+
cache = memoized.cache;
|
7922
7896
|
|
7923
7897
|
if (cache.has(key)) {
|
7924
7898
|
return cache.get(key);
|
7925
7899
|
}
|
7926
7900
|
var result = func.apply(this, args);
|
7927
|
-
cache.set(key, result);
|
7901
|
+
memoized.cache = cache.set(key, result);
|
7928
7902
|
return result;
|
7929
7903
|
};
|
7930
7904
|
memoized.cache = new memoize.Cache;
|
@@ -8171,12 +8145,12 @@
|
|
8171
8145
|
}
|
8172
8146
|
|
8173
8147
|
/**
|
8174
|
-
* Creates a function that only invokes `func` at most once per
|
8175
|
-
* milliseconds. The
|
8176
|
-
* delayed invocations. Provide an options object to indicate
|
8177
|
-
* should be invoked on the leading and/or trailing edge of the
|
8178
|
-
* Subsequent calls to the throttled function return the
|
8179
|
-
* `func` call.
|
8148
|
+
* Creates a throttled function that only invokes `func` at most once per
|
8149
|
+
* every `wait` milliseconds. The throttled function comes with a `cancel`
|
8150
|
+
* method to cancel delayed invocations. Provide an options object to indicate
|
8151
|
+
* that `func` should be invoked on the leading and/or trailing edge of the
|
8152
|
+
* `wait` timeout. Subsequent calls to the throttled function return the
|
8153
|
+
* result of the last `func` call.
|
8180
8154
|
*
|
8181
8155
|
* **Note:** If `leading` and `trailing` options are `true`, `func` is invoked
|
8182
8156
|
* on the trailing edge of the timeout only if the the throttled function is
|
@@ -8316,8 +8290,9 @@
|
|
8316
8290
|
customizer = isDeep;
|
8317
8291
|
isDeep = false;
|
8318
8292
|
}
|
8319
|
-
|
8320
|
-
|
8293
|
+
return typeof customizer == 'function'
|
8294
|
+
? baseClone(value, isDeep, bindCallback(customizer, thisArg, 1))
|
8295
|
+
: baseClone(value, isDeep);
|
8321
8296
|
}
|
8322
8297
|
|
8323
8298
|
/**
|
@@ -8366,8 +8341,57 @@
|
|
8366
8341
|
* // => 20
|
8367
8342
|
*/
|
8368
8343
|
function cloneDeep(value, customizer, thisArg) {
|
8369
|
-
|
8370
|
-
|
8344
|
+
return typeof customizer == 'function'
|
8345
|
+
? baseClone(value, true, bindCallback(customizer, thisArg, 1))
|
8346
|
+
: baseClone(value, true);
|
8347
|
+
}
|
8348
|
+
|
8349
|
+
/**
|
8350
|
+
* Checks if `value` is greater than `other`.
|
8351
|
+
*
|
8352
|
+
* @static
|
8353
|
+
* @memberOf _
|
8354
|
+
* @category Lang
|
8355
|
+
* @param {*} value The value to compare.
|
8356
|
+
* @param {*} other The other value to compare.
|
8357
|
+
* @returns {boolean} Returns `true` if `value` is greater than `other`, else `false`.
|
8358
|
+
* @example
|
8359
|
+
*
|
8360
|
+
* _.gt(3, 1);
|
8361
|
+
* // => true
|
8362
|
+
*
|
8363
|
+
* _.gt(3, 3);
|
8364
|
+
* // => false
|
8365
|
+
*
|
8366
|
+
* _.gt(1, 3);
|
8367
|
+
* // => false
|
8368
|
+
*/
|
8369
|
+
function gt(value, other) {
|
8370
|
+
return value > other;
|
8371
|
+
}
|
8372
|
+
|
8373
|
+
/**
|
8374
|
+
* Checks if `value` is greater than or equal to `other`.
|
8375
|
+
*
|
8376
|
+
* @static
|
8377
|
+
* @memberOf _
|
8378
|
+
* @category Lang
|
8379
|
+
* @param {*} value The value to compare.
|
8380
|
+
* @param {*} other The other value to compare.
|
8381
|
+
* @returns {boolean} Returns `true` if `value` is greater than or equal to `other`, else `false`.
|
8382
|
+
* @example
|
8383
|
+
*
|
8384
|
+
* _.gte(3, 1);
|
8385
|
+
* // => true
|
8386
|
+
*
|
8387
|
+
* _.gte(3, 3);
|
8388
|
+
* // => true
|
8389
|
+
*
|
8390
|
+
* _.gte(1, 3);
|
8391
|
+
* // => false
|
8392
|
+
*/
|
8393
|
+
function gte(value, other) {
|
8394
|
+
return value >= other;
|
8371
8395
|
}
|
8372
8396
|
|
8373
8397
|
/**
|
@@ -8387,8 +8411,7 @@
|
|
8387
8411
|
* // => false
|
8388
8412
|
*/
|
8389
8413
|
function isArguments(value) {
|
8390
|
-
|
8391
|
-
return isLength(length) && objToString.call(value) == argsTag;
|
8414
|
+
return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag;
|
8392
8415
|
}
|
8393
8416
|
|
8394
8417
|
/**
|
@@ -8509,10 +8532,9 @@
|
|
8509
8532
|
if (value == null) {
|
8510
8533
|
return true;
|
8511
8534
|
}
|
8512
|
-
|
8513
|
-
if (isLength(length) && (isArray(value) || isString(value) || isArguments(value) ||
|
8535
|
+
if (isArrayLike(value) && (isArray(value) || isString(value) || isArguments(value) ||
|
8514
8536
|
(isObjectLike(value) && isFunction(value.splice)))) {
|
8515
|
-
return !length;
|
8537
|
+
return !value.length;
|
8516
8538
|
}
|
8517
8539
|
return !keys(value).length;
|
8518
8540
|
}
|
@@ -8532,6 +8554,7 @@
|
|
8532
8554
|
*
|
8533
8555
|
* @static
|
8534
8556
|
* @memberOf _
|
8557
|
+
* @alias eq
|
8535
8558
|
* @category Lang
|
8536
8559
|
* @param {*} value The value to compare.
|
8537
8560
|
* @param {*} other The other value to compare.
|
@@ -8561,12 +8584,9 @@
|
|
8561
8584
|
* // => true
|
8562
8585
|
*/
|
8563
8586
|
function isEqual(value, other, customizer, thisArg) {
|
8564
|
-
customizer = typeof customizer == 'function'
|
8565
|
-
if (!customizer && isStrictComparable(value) && isStrictComparable(other)) {
|
8566
|
-
return value === other;
|
8567
|
-
}
|
8587
|
+
customizer = typeof customizer == 'function' ? bindCallback(customizer, thisArg, 3) : undefined;
|
8568
8588
|
var result = customizer ? customizer(value, other) : undefined;
|
8569
|
-
return
|
8589
|
+
return result === undefined ? baseIsEqual(value, other, customizer) : !!result;
|
8570
8590
|
}
|
8571
8591
|
|
8572
8592
|
/**
|
@@ -8668,7 +8688,7 @@
|
|
8668
8688
|
// Avoid a V8 JIT bug in Chrome 19-20.
|
8669
8689
|
// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
|
8670
8690
|
var type = typeof value;
|
8671
|
-
return type == '
|
8691
|
+
return !!value && (type == 'object' || type == 'function');
|
8672
8692
|
}
|
8673
8693
|
|
8674
8694
|
/**
|
@@ -8711,33 +8731,8 @@
|
|
8711
8731
|
* // => true
|
8712
8732
|
*/
|
8713
8733
|
function isMatch(object, source, customizer, thisArg) {
|
8714
|
-
|
8715
|
-
|
8716
|
-
|
8717
|
-
if (!length) {
|
8718
|
-
return true;
|
8719
|
-
}
|
8720
|
-
if (object == null) {
|
8721
|
-
return false;
|
8722
|
-
}
|
8723
|
-
customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 3);
|
8724
|
-
object = toObject(object);
|
8725
|
-
if (!customizer && length == 1) {
|
8726
|
-
var key = props[0],
|
8727
|
-
value = source[key];
|
8728
|
-
|
8729
|
-
if (isStrictComparable(value)) {
|
8730
|
-
return value === object[key] && (value !== undefined || (key in object));
|
8731
|
-
}
|
8732
|
-
}
|
8733
|
-
var values = Array(length),
|
8734
|
-
strictCompareFlags = Array(length);
|
8735
|
-
|
8736
|
-
while (length--) {
|
8737
|
-
value = values[length] = source[props[length]];
|
8738
|
-
strictCompareFlags[length] = isStrictComparable(value);
|
8739
|
-
}
|
8740
|
-
return baseIsMatch(object, props, values, strictCompareFlags, customizer);
|
8734
|
+
customizer = typeof customizer == 'function' ? bindCallback(customizer, thisArg, 3) : undefined;
|
8735
|
+
return baseIsMatch(object, getMatchData(source), customizer);
|
8741
8736
|
}
|
8742
8737
|
|
8743
8738
|
/**
|
@@ -8877,8 +8872,8 @@
|
|
8877
8872
|
if (!(value && objToString.call(value) == objectTag)) {
|
8878
8873
|
return false;
|
8879
8874
|
}
|
8880
|
-
var valueOf = value
|
8881
|
-
objProto =
|
8875
|
+
var valueOf = getNative(value, 'valueOf'),
|
8876
|
+
objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);
|
8882
8877
|
|
8883
8878
|
return objProto
|
8884
8879
|
? (value == objProto || getPrototypeOf(value) == objProto)
|
@@ -8902,7 +8897,7 @@
|
|
8902
8897
|
* // => false
|
8903
8898
|
*/
|
8904
8899
|
function isRegExp(value) {
|
8905
|
-
return
|
8900
|
+
return isObjectLike(value) && objToString.call(value) == regexpTag;
|
8906
8901
|
}
|
8907
8902
|
|
8908
8903
|
/**
|
@@ -8965,6 +8960,54 @@
|
|
8965
8960
|
return value === undefined;
|
8966
8961
|
}
|
8967
8962
|
|
8963
|
+
/**
|
8964
|
+
* Checks if `value` is less than `other`.
|
8965
|
+
*
|
8966
|
+
* @static
|
8967
|
+
* @memberOf _
|
8968
|
+
* @category Lang
|
8969
|
+
* @param {*} value The value to compare.
|
8970
|
+
* @param {*} other The other value to compare.
|
8971
|
+
* @returns {boolean} Returns `true` if `value` is less than `other`, else `false`.
|
8972
|
+
* @example
|
8973
|
+
*
|
8974
|
+
* _.lt(1, 3);
|
8975
|
+
* // => true
|
8976
|
+
*
|
8977
|
+
* _.lt(3, 3);
|
8978
|
+
* // => false
|
8979
|
+
*
|
8980
|
+
* _.lt(3, 1);
|
8981
|
+
* // => false
|
8982
|
+
*/
|
8983
|
+
function lt(value, other) {
|
8984
|
+
return value < other;
|
8985
|
+
}
|
8986
|
+
|
8987
|
+
/**
|
8988
|
+
* Checks if `value` is less than or equal to `other`.
|
8989
|
+
*
|
8990
|
+
* @static
|
8991
|
+
* @memberOf _
|
8992
|
+
* @category Lang
|
8993
|
+
* @param {*} value The value to compare.
|
8994
|
+
* @param {*} other The other value to compare.
|
8995
|
+
* @returns {boolean} Returns `true` if `value` is less than or equal to `other`, else `false`.
|
8996
|
+
* @example
|
8997
|
+
*
|
8998
|
+
* _.lte(1, 3);
|
8999
|
+
* // => true
|
9000
|
+
*
|
9001
|
+
* _.lte(3, 3);
|
9002
|
+
* // => true
|
9003
|
+
*
|
9004
|
+
* _.lte(3, 1);
|
9005
|
+
* // => false
|
9006
|
+
*/
|
9007
|
+
function lte(value, other) {
|
9008
|
+
return value <= other;
|
9009
|
+
}
|
9010
|
+
|
8968
9011
|
/**
|
8969
9012
|
* Converts `value` to an array.
|
8970
9013
|
*
|
@@ -9030,7 +9073,6 @@
|
|
9030
9073
|
* **Note:** This method mutates `object` and is based on
|
9031
9074
|
* [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).
|
9032
9075
|
*
|
9033
|
-
*
|
9034
9076
|
* @static
|
9035
9077
|
* @memberOf _
|
9036
9078
|
* @alias extend
|
@@ -9360,7 +9402,7 @@
|
|
9360
9402
|
}
|
9361
9403
|
|
9362
9404
|
/**
|
9363
|
-
* Gets the property value
|
9405
|
+
* Gets the property value at `path` of `object`. If the resolved value is
|
9364
9406
|
* `undefined` the `defaultValue` is used in its place.
|
9365
9407
|
*
|
9366
9408
|
* @static
|
@@ -9418,10 +9460,14 @@
|
|
9418
9460
|
if (!result && !isKey(path)) {
|
9419
9461
|
path = toPath(path);
|
9420
9462
|
object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
|
9463
|
+
if (object == null) {
|
9464
|
+
return false;
|
9465
|
+
}
|
9421
9466
|
path = last(path);
|
9422
|
-
result =
|
9467
|
+
result = hasOwnProperty.call(object, path);
|
9423
9468
|
}
|
9424
|
-
return result
|
9469
|
+
return result || (isLength(object.length) && isIndex(path, object.length) &&
|
9470
|
+
(isArray(object) || isArguments(object)));
|
9425
9471
|
}
|
9426
9472
|
|
9427
9473
|
/**
|
@@ -9502,12 +9548,9 @@
|
|
9502
9548
|
* // => ['0', '1']
|
9503
9549
|
*/
|
9504
9550
|
var keys = !nativeKeys ? shimKeys : function(object) {
|
9505
|
-
|
9506
|
-
var Ctor = object.constructor,
|
9507
|
-
length = object.length;
|
9508
|
-
}
|
9551
|
+
var Ctor = object == null ? null : object.constructor;
|
9509
9552
|
if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
|
9510
|
-
(typeof object != 'function' &&
|
9553
|
+
(typeof object != 'function' && isArrayLike(object))) {
|
9511
9554
|
return shimKeys(object);
|
9512
9555
|
}
|
9513
9556
|
return isObject(object) ? nativeKeys(object) : [];
|
@@ -9544,7 +9587,7 @@
|
|
9544
9587
|
}
|
9545
9588
|
var length = object.length;
|
9546
9589
|
length = (length && isLength(length) &&
|
9547
|
-
(isArray(object) ||
|
9590
|
+
(isArray(object) || isArguments(object)) && length) || 0;
|
9548
9591
|
|
9549
9592
|
var Ctor = object.constructor,
|
9550
9593
|
index = -1,
|
@@ -9564,6 +9607,28 @@
|
|
9564
9607
|
return result;
|
9565
9608
|
}
|
9566
9609
|
|
9610
|
+
/**
|
9611
|
+
* The opposite of `_.mapValues`; this method creates an object with the
|
9612
|
+
* same values as `object` and keys generated by running each own enumerable
|
9613
|
+
* property of `object` through `iteratee`.
|
9614
|
+
*
|
9615
|
+
* @static
|
9616
|
+
* @memberOf _
|
9617
|
+
* @category Object
|
9618
|
+
* @param {Object} object The object to iterate over.
|
9619
|
+
* @param {Function|Object|string} [iteratee=_.identity] The function invoked
|
9620
|
+
* per iteration.
|
9621
|
+
* @param {*} [thisArg] The `this` binding of `iteratee`.
|
9622
|
+
* @returns {Object} Returns the new mapped object.
|
9623
|
+
* @example
|
9624
|
+
*
|
9625
|
+
* _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
|
9626
|
+
* return key + value;
|
9627
|
+
* });
|
9628
|
+
* // => { 'a1': 1, 'b2': 2 }
|
9629
|
+
*/
|
9630
|
+
var mapKeys = createObjectMapper(true);
|
9631
|
+
|
9567
9632
|
/**
|
9568
9633
|
* Creates an object with the same keys as `object` and values generated by
|
9569
9634
|
* running each own enumerable property of `object` through `iteratee`. The
|
@@ -9605,15 +9670,7 @@
|
|
9605
9670
|
* _.mapValues(users, 'age');
|
9606
9671
|
* // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
|
9607
9672
|
*/
|
9608
|
-
|
9609
|
-
var result = {};
|
9610
|
-
iteratee = getCallback(iteratee, thisArg, 3);
|
9611
|
-
|
9612
|
-
baseForOwn(object, function(value, key, object) {
|
9613
|
-
result[key] = iteratee(value, key, object);
|
9614
|
-
});
|
9615
|
-
return result;
|
9616
|
-
}
|
9673
|
+
var mapValues = createObjectMapper();
|
9617
9674
|
|
9618
9675
|
/**
|
9619
9676
|
* Recursively merges own enumerable properties of the source object(s), that
|
@@ -9668,11 +9725,6 @@
|
|
9668
9725
|
/**
|
9669
9726
|
* The opposite of `_.pick`; this method creates an object composed of the
|
9670
9727
|
* own and inherited enumerable properties of `object` that are not omitted.
|
9671
|
-
* Property names may be specified as individual arguments or as arrays of
|
9672
|
-
* property names. If `predicate` is provided it is invoked for each property
|
9673
|
-
* of `object` omitting the properties `predicate` returns truthy for. The
|
9674
|
-
* predicate is bound to `thisArg` and invoked with three arguments:
|
9675
|
-
* (value, key, object).
|
9676
9728
|
*
|
9677
9729
|
* @static
|
9678
9730
|
* @memberOf _
|
@@ -9722,6 +9774,8 @@
|
|
9722
9774
|
* // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed)
|
9723
9775
|
*/
|
9724
9776
|
function pairs(object) {
|
9777
|
+
object = toObject(object);
|
9778
|
+
|
9725
9779
|
var index = -1,
|
9726
9780
|
props = keys(object),
|
9727
9781
|
length = props.length,
|
@@ -9842,13 +9896,13 @@
|
|
9842
9896
|
|
9843
9897
|
var index = -1,
|
9844
9898
|
length = path.length,
|
9845
|
-
|
9899
|
+
lastIndex = length - 1,
|
9846
9900
|
nested = object;
|
9847
9901
|
|
9848
9902
|
while (nested != null && ++index < length) {
|
9849
9903
|
var key = path[index];
|
9850
9904
|
if (isObject(nested)) {
|
9851
|
-
if (index ==
|
9905
|
+
if (index == lastIndex) {
|
9852
9906
|
nested[key] = value;
|
9853
9907
|
} else if (nested[key] == null) {
|
9854
9908
|
nested[key] = isIndex(path[index + 1]) ? [] : {};
|
@@ -9898,7 +9952,7 @@
|
|
9898
9952
|
if (isArr) {
|
9899
9953
|
accumulator = isArray(object) ? new Ctor : [];
|
9900
9954
|
} else {
|
9901
|
-
accumulator = baseCreate(isFunction(Ctor)
|
9955
|
+
accumulator = baseCreate(isFunction(Ctor) ? Ctor.prototype : null);
|
9902
9956
|
}
|
9903
9957
|
} else {
|
9904
9958
|
accumulator = {};
|
@@ -10177,7 +10231,7 @@
|
|
10177
10231
|
* use a third-party library like [_he_](https://mths.be/he).
|
10178
10232
|
*
|
10179
10233
|
* Though the ">" character is escaped for symmetry, characters like
|
10180
|
-
* ">" and "/" don't
|
10234
|
+
* ">" and "/" don't need escaping in HTML and have no special meaning
|
10181
10235
|
* unless they're part of a tag or unquoted attribute value.
|
10182
10236
|
* See [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)
|
10183
10237
|
* (under "semi-related fun fact") for more details.
|
@@ -10254,7 +10308,7 @@
|
|
10254
10308
|
});
|
10255
10309
|
|
10256
10310
|
/**
|
10257
|
-
* Pads `string` on the left and right sides if it
|
10311
|
+
* Pads `string` on the left and right sides if it's shorter than `length`.
|
10258
10312
|
* Padding characters are truncated if they can't be evenly divided by `length`.
|
10259
10313
|
*
|
10260
10314
|
* @static
|
@@ -10292,7 +10346,7 @@
|
|
10292
10346
|
}
|
10293
10347
|
|
10294
10348
|
/**
|
10295
|
-
* Pads `string` on the left side if it
|
10349
|
+
* Pads `string` on the left side if it's shorter than `length`. Padding
|
10296
10350
|
* characters are truncated if they exceed `length`.
|
10297
10351
|
*
|
10298
10352
|
* @static
|
@@ -10316,7 +10370,7 @@
|
|
10316
10370
|
var padLeft = createPadDir();
|
10317
10371
|
|
10318
10372
|
/**
|
10319
|
-
* Pads `string` on the right side if it
|
10373
|
+
* Pads `string` on the right side if it's shorter than `length`. Padding
|
10320
10374
|
* characters are truncated if they exceed `length`.
|
10321
10375
|
*
|
10322
10376
|
* @static
|
@@ -10797,7 +10851,7 @@
|
|
10797
10851
|
}
|
10798
10852
|
|
10799
10853
|
/**
|
10800
|
-
* Truncates `string` if it
|
10854
|
+
* Truncates `string` if it's longer than the given maximum string length.
|
10801
10855
|
* The last characters of the truncated string are replaced with the omission
|
10802
10856
|
* string which defaults to "...".
|
10803
10857
|
*
|
@@ -11011,7 +11065,9 @@
|
|
11011
11065
|
if (guard && isIterateeCall(func, thisArg, guard)) {
|
11012
11066
|
thisArg = null;
|
11013
11067
|
}
|
11014
|
-
return
|
11068
|
+
return isObjectLike(func)
|
11069
|
+
? matches(func)
|
11070
|
+
: baseCallback(func, thisArg);
|
11015
11071
|
}
|
11016
11072
|
|
11017
11073
|
/**
|
@@ -11056,7 +11112,7 @@
|
|
11056
11112
|
}
|
11057
11113
|
|
11058
11114
|
/**
|
11059
|
-
* Creates a function
|
11115
|
+
* Creates a function that performs a deep comparison between a given object
|
11060
11116
|
* and `source`, returning `true` if the given object has equivalent property
|
11061
11117
|
* values, else `false`.
|
11062
11118
|
*
|
@@ -11085,7 +11141,7 @@
|
|
11085
11141
|
}
|
11086
11142
|
|
11087
11143
|
/**
|
11088
|
-
* Creates a function
|
11144
|
+
* Creates a function that compares the property value of `path` on a given
|
11089
11145
|
* object to `value`.
|
11090
11146
|
*
|
11091
11147
|
* **Note:** This method supports comparing arrays, booleans, `Date` objects,
|
@@ -11096,7 +11152,7 @@
|
|
11096
11152
|
* @memberOf _
|
11097
11153
|
* @category Utility
|
11098
11154
|
* @param {Array|string} path The path of the property to get.
|
11099
|
-
* @param {*}
|
11155
|
+
* @param {*} srcValue The value to match.
|
11100
11156
|
* @returns {Function} Returns the new function.
|
11101
11157
|
* @example
|
11102
11158
|
*
|
@@ -11108,17 +11164,19 @@
|
|
11108
11164
|
* _.find(users, _.matchesProperty('user', 'fred'));
|
11109
11165
|
* // => { 'user': 'fred' }
|
11110
11166
|
*/
|
11111
|
-
function matchesProperty(path,
|
11112
|
-
return baseMatchesProperty(path, baseClone(
|
11167
|
+
function matchesProperty(path, srcValue) {
|
11168
|
+
return baseMatchesProperty(path, baseClone(srcValue, true));
|
11113
11169
|
}
|
11114
11170
|
|
11115
11171
|
/**
|
11116
|
-
* Creates a function
|
11172
|
+
* Creates a function that invokes the method at `path` on a given object.
|
11173
|
+
* Any additional arguments are provided to the invoked method.
|
11117
11174
|
*
|
11118
11175
|
* @static
|
11119
11176
|
* @memberOf _
|
11120
11177
|
* @category Utility
|
11121
11178
|
* @param {Array|string} path The path of the method to invoke.
|
11179
|
+
* @param {...*} [args] The arguments to invoke the method with.
|
11122
11180
|
* @returns {Function} Returns the new function.
|
11123
11181
|
* @example
|
11124
11182
|
*
|
@@ -11136,17 +11194,19 @@
|
|
11136
11194
|
var method = restParam(function(path, args) {
|
11137
11195
|
return function(object) {
|
11138
11196
|
return invokePath(object, path, args);
|
11139
|
-
}
|
11197
|
+
};
|
11140
11198
|
});
|
11141
11199
|
|
11142
11200
|
/**
|
11143
|
-
* The opposite of `_.method`; this method creates a function
|
11144
|
-
* the method at a given path on `object`.
|
11201
|
+
* The opposite of `_.method`; this method creates a function that invokes
|
11202
|
+
* the method at a given path on `object`. Any additional arguments are
|
11203
|
+
* provided to the invoked method.
|
11145
11204
|
*
|
11146
11205
|
* @static
|
11147
11206
|
* @memberOf _
|
11148
11207
|
* @category Utility
|
11149
11208
|
* @param {Object} object The object to query.
|
11209
|
+
* @param {...*} [args] The arguments to invoke the method with.
|
11150
11210
|
* @returns {Function} Returns the new function.
|
11151
11211
|
* @example
|
11152
11212
|
*
|
@@ -11190,9 +11250,6 @@
|
|
11190
11250
|
* });
|
11191
11251
|
* }
|
11192
11252
|
*
|
11193
|
-
* // use `_.runInContext` to avoid conflicts (esp. in Node.js)
|
11194
|
-
* var _ = require('lodash').runInContext();
|
11195
|
-
*
|
11196
11253
|
* _.mixin({ 'vowels': vowels });
|
11197
11254
|
* _.vowels('fred');
|
11198
11255
|
* // => ['e']
|
@@ -11207,8 +11264,8 @@
|
|
11207
11264
|
function mixin(object, source, options) {
|
11208
11265
|
if (options == null) {
|
11209
11266
|
var isObj = isObject(source),
|
11210
|
-
props = isObj
|
11211
|
-
methodNames = props && props.length
|
11267
|
+
props = isObj ? keys(source) : null,
|
11268
|
+
methodNames = (props && props.length) ? baseFunctions(source, props) : null;
|
11212
11269
|
|
11213
11270
|
if (!(methodNames ? methodNames.length : isObj)) {
|
11214
11271
|
methodNames = false;
|
@@ -11275,7 +11332,7 @@
|
|
11275
11332
|
}
|
11276
11333
|
|
11277
11334
|
/**
|
11278
|
-
* A no-operation function
|
11335
|
+
* A no-operation function that returns `undefined` regardless of the
|
11279
11336
|
* arguments it receives.
|
11280
11337
|
*
|
11281
11338
|
* @static
|
@@ -11293,7 +11350,7 @@
|
|
11293
11350
|
}
|
11294
11351
|
|
11295
11352
|
/**
|
11296
|
-
* Creates a function
|
11353
|
+
* Creates a function that returns the property value at `path` on a
|
11297
11354
|
* given object.
|
11298
11355
|
*
|
11299
11356
|
* @static
|
@@ -11319,7 +11376,7 @@
|
|
11319
11376
|
}
|
11320
11377
|
|
11321
11378
|
/**
|
11322
|
-
* The opposite of `_.property`; this method creates a function
|
11379
|
+
* The opposite of `_.property`; this method creates a function that returns
|
11323
11380
|
* the property value at a given path on `object`.
|
11324
11381
|
*
|
11325
11382
|
* @static
|
@@ -11431,7 +11488,7 @@
|
|
11431
11488
|
* // => also invokes `mage.castSpell(n)` three times
|
11432
11489
|
*/
|
11433
11490
|
function times(n, iteratee, thisArg) {
|
11434
|
-
n =
|
11491
|
+
n = floor(n);
|
11435
11492
|
|
11436
11493
|
// Exit early to avoid a JSC JIT bug in Safari 8
|
11437
11494
|
// where `Array(0)` is treated as `Array(1)`.
|
@@ -11540,7 +11597,7 @@
|
|
11540
11597
|
* _.max(users, 'age');
|
11541
11598
|
* // => { 'user': 'fred', 'age': 40 }
|
11542
11599
|
*/
|
11543
|
-
var max = createExtremum(
|
11600
|
+
var max = createExtremum(gt, NEGATIVE_INFINITY);
|
11544
11601
|
|
11545
11602
|
/**
|
11546
11603
|
* Gets the minimum value of `collection`. If `collection` is empty or falsey
|
@@ -11589,7 +11646,7 @@
|
|
11589
11646
|
* _.min(users, 'age');
|
11590
11647
|
* // => { 'user': 'barney', 'age': 36 }
|
11591
11648
|
*/
|
11592
|
-
var min = createExtremum(
|
11649
|
+
var min = createExtremum(lt, POSITIVE_INFINITY);
|
11593
11650
|
|
11594
11651
|
/**
|
11595
11652
|
* Gets the sum of the values in `collection`.
|
@@ -11627,12 +11684,12 @@
|
|
11627
11684
|
if (thisArg && isIterateeCall(collection, iteratee, thisArg)) {
|
11628
11685
|
iteratee = null;
|
11629
11686
|
}
|
11630
|
-
var
|
11687
|
+
var callback = getCallback(),
|
11631
11688
|
noIteratee = iteratee == null;
|
11632
11689
|
|
11633
|
-
if (!(
|
11690
|
+
if (!(noIteratee && callback === baseCallback)) {
|
11634
11691
|
noIteratee = false;
|
11635
|
-
iteratee =
|
11692
|
+
iteratee = callback(iteratee, thisArg, 3);
|
11636
11693
|
}
|
11637
11694
|
return noIteratee
|
11638
11695
|
? arraySum(isArray(collection) ? collection : toIterable(collection))
|
@@ -11711,6 +11768,7 @@
|
|
11711
11768
|
lodash.keys = keys;
|
11712
11769
|
lodash.keysIn = keysIn;
|
11713
11770
|
lodash.map = map;
|
11771
|
+
lodash.mapKeys = mapKeys;
|
11714
11772
|
lodash.mapValues = mapValues;
|
11715
11773
|
lodash.matches = matches;
|
11716
11774
|
lodash.matchesProperty = matchesProperty;
|
@@ -11759,6 +11817,7 @@
|
|
11759
11817
|
lodash.union = union;
|
11760
11818
|
lodash.uniq = uniq;
|
11761
11819
|
lodash.unzip = unzip;
|
11820
|
+
lodash.unzipWith = unzipWith;
|
11762
11821
|
lodash.values = values;
|
11763
11822
|
lodash.valuesIn = valuesIn;
|
11764
11823
|
lodash.where = where;
|
@@ -11767,6 +11826,7 @@
|
|
11767
11826
|
lodash.xor = xor;
|
11768
11827
|
lodash.zip = zip;
|
11769
11828
|
lodash.zipObject = zipObject;
|
11829
|
+
lodash.zipWith = zipWith;
|
11770
11830
|
|
11771
11831
|
// Add aliases.
|
11772
11832
|
lodash.backflow = flowRight;
|
@@ -11808,6 +11868,8 @@
|
|
11808
11868
|
lodash.findWhere = findWhere;
|
11809
11869
|
lodash.first = first;
|
11810
11870
|
lodash.get = get;
|
11871
|
+
lodash.gt = gt;
|
11872
|
+
lodash.gte = gte;
|
11811
11873
|
lodash.has = has;
|
11812
11874
|
lodash.identity = identity;
|
11813
11875
|
lodash.includes = includes;
|
@@ -11837,6 +11899,8 @@
|
|
11837
11899
|
lodash.kebabCase = kebabCase;
|
11838
11900
|
lodash.last = last;
|
11839
11901
|
lodash.lastIndexOf = lastIndexOf;
|
11902
|
+
lodash.lt = lt;
|
11903
|
+
lodash.lte = lte;
|
11840
11904
|
lodash.max = max;
|
11841
11905
|
lodash.min = min;
|
11842
11906
|
lodash.noConflict = noConflict;
|
@@ -11873,6 +11937,7 @@
|
|
11873
11937
|
lodash.all = every;
|
11874
11938
|
lodash.any = some;
|
11875
11939
|
lodash.contains = includes;
|
11940
|
+
lodash.eq = isEqual;
|
11876
11941
|
lodash.detect = find;
|
11877
11942
|
lodash.foldl = reduce;
|
11878
11943
|
lodash.foldr = reduceRight;
|
@@ -12016,8 +12081,13 @@
|
|
12016
12081
|
|
12017
12082
|
LazyWrapper.prototype.slice = function(start, end) {
|
12018
12083
|
start = start == null ? 0 : (+start || 0);
|
12019
|
-
var result = start < 0 ? this.takeRight(-start) : this.drop(start);
|
12020
12084
|
|
12085
|
+
var result = this;
|
12086
|
+
if (start < 0) {
|
12087
|
+
result = this.takeRight(-start);
|
12088
|
+
} else if (start) {
|
12089
|
+
result = this.drop(start);
|
12090
|
+
}
|
12021
12091
|
if (end !== undefined) {
|
12022
12092
|
end = (+end || 0);
|
12023
12093
|
result = end < 0 ? result.dropRight(-end) : result.take(end - start);
|
@@ -12040,7 +12110,6 @@
|
|
12040
12110
|
|
12041
12111
|
lodash.prototype[methodName] = function() {
|
12042
12112
|
var args = arguments,
|
12043
|
-
length = args.length,
|
12044
12113
|
chainAll = this.__chain__,
|
12045
12114
|
value = this.__wrapped__,
|
12046
12115
|
isHybrid = !!this.__actions__.length,
|
@@ -12154,7 +12223,7 @@
|
|
12154
12223
|
if (moduleExports) {
|
12155
12224
|
(freeModule.exports = _)._ = _;
|
12156
12225
|
}
|
12157
|
-
// Export for
|
12226
|
+
// Export for Rhino with CommonJS support.
|
12158
12227
|
else {
|
12159
12228
|
freeExports._ = _;
|
12160
12229
|
}
|