mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 22:47:50 +00:00
Compare commits
670 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc22665dd8 | ||
|
|
7862e5ce2d | ||
|
|
7cbffd5ebf | ||
|
|
5028267c72 | ||
|
|
6f03ef955c | ||
|
|
f75bf13ad1 | ||
|
|
d7dbf0951d | ||
|
|
daf6de6a46 | ||
|
|
7d4c3ed404 | ||
|
|
a9fd17950a | ||
|
|
b91a515258 | ||
|
|
bc5729a9de | ||
|
|
729d1a57aa | ||
|
|
73e2562cd1 | ||
|
|
849423c9d8 | ||
|
|
1c9a9f364d | ||
|
|
e485e16d28 | ||
|
|
bc49e7fe18 | ||
|
|
6a9337434f | ||
|
|
0c89b9aeb5 | ||
|
|
6f7a8501cb | ||
|
|
7a03898ffe | ||
|
|
609ae34b4e | ||
|
|
2d21faf68a | ||
|
|
26ee0c5c2a | ||
|
|
cafb5e1331 | ||
|
|
7717b8aa64 | ||
|
|
c82322c490 | ||
|
|
4af0c066ec | ||
|
|
d2b10de40b | ||
|
|
26bfb74a60 | ||
|
|
ef129e4c8c | ||
|
|
0b04309ea5 | ||
|
|
fb4852f6db | ||
|
|
5046943020 | ||
|
|
14d7f89f75 | ||
|
|
d431e97030 | ||
|
|
8f06ea259a | ||
|
|
0a0fa58e2d | ||
|
|
286f1abb87 | ||
|
|
a621ba236a | ||
|
|
a041a3782d | ||
|
|
9f8064a8b5 | ||
|
|
729f424622 | ||
|
|
6a8e978fd7 | ||
|
|
aea509c230 | ||
|
|
21113b8c87 | ||
|
|
dcf6d382c4 | ||
|
|
c541598f40 | ||
|
|
bd8e38518f | ||
|
|
067036a359 | ||
|
|
22b51ed232 | ||
|
|
054e78572b | ||
|
|
31cb06a643 | ||
|
|
ee4a5a2604 | ||
|
|
05b60871c5 | ||
|
|
03a194fcb9 | ||
|
|
52e96c38dc | ||
|
|
f5dd98cac4 | ||
|
|
b890d40b54 | ||
|
|
457a0dc703 | ||
|
|
e4837cd75d | ||
|
|
67b2c6f900 | ||
|
|
260a84c4d8 | ||
|
|
4b0db6ec6c | ||
|
|
9c4c194bb5 | ||
|
|
ac74a1ea15 | ||
|
|
e4ddf3e155 | ||
|
|
896b27ef73 | ||
|
|
bdf0b9f288 | ||
|
|
1665e5cbff | ||
|
|
6e8c0de1ff | ||
|
|
4fb41ac6a9 | ||
|
|
af983b2dd3 | ||
|
|
405d5875b8 | ||
|
|
b30f979ec7 | ||
|
|
836bd258a0 | ||
|
|
d2f74ee245 | ||
|
|
45f668b416 | ||
|
|
d29d74f687 | ||
|
|
9fba7be296 | ||
|
|
f30851bac1 | ||
|
|
d308bce09f | ||
|
|
3d7dbd140c | ||
|
|
15bd64a1b4 | ||
|
|
3c30100837 | ||
|
|
81bdb9da43 | ||
|
|
60e3a93a30 | ||
|
|
158f2839fd | ||
|
|
c7b9df4286 | ||
|
|
0eca941e22 | ||
|
|
8592f4163f | ||
|
|
29e2598a39 | ||
|
|
32e75acb9f | ||
|
|
b54501a771 | ||
|
|
6062860628 | ||
|
|
a12c3797fb | ||
|
|
48bc8b4f1a | ||
|
|
e861681963 | ||
|
|
9985e81808 | ||
|
|
ffde99b216 | ||
|
|
492caa4fd2 | ||
|
|
01c0950ae8 | ||
|
|
20fa52309c | ||
|
|
7a345b5606 | ||
|
|
b6d8116882 | ||
|
|
4495e74f77 | ||
|
|
c009349d99 | ||
|
|
26d5ba992c | ||
|
|
320ef6f933 | ||
|
|
b678bb4a74 | ||
|
|
c1c394ac60 | ||
|
|
70d3057e17 | ||
|
|
3d27920226 | ||
|
|
33a43a5f93 | ||
|
|
fac9501840 | ||
|
|
4d6aade733 | ||
|
|
d9e2c1cc34 | ||
|
|
c8c6a7e7b1 | ||
|
|
69addb855e | ||
|
|
55fb0172c0 | ||
|
|
2026cbeebd | ||
|
|
d6d01cdfa0 | ||
|
|
cb07604dc6 | ||
|
|
549def0e48 | ||
|
|
a3c215919d | ||
|
|
ab904a1047 | ||
|
|
60381f4d6c | ||
|
|
8f607295ae | ||
|
|
27218a95af | ||
|
|
8e150ad6bc | ||
|
|
c8914a890c | ||
|
|
b25a86f352 | ||
|
|
ec8e279235 | ||
|
|
1cc16029db | ||
|
|
5c912bcc62 | ||
|
|
b3742c8d3c | ||
|
|
c3a7516712 | ||
|
|
12319d5775 | ||
|
|
45e1965936 | ||
|
|
6091c8ec49 | ||
|
|
cfb7dab0f3 | ||
|
|
2d9f3cde0f | ||
|
|
e5f4770247 | ||
|
|
dc7c321514 | ||
|
|
40164659b1 | ||
|
|
7829f3d224 | ||
|
|
92359257c1 | ||
|
|
d2a2b3a8c4 | ||
|
|
4019eb65f2 | ||
|
|
4c5bead5c6 | ||
|
|
0163aae357 | ||
|
|
8fa23a94a0 | ||
|
|
8176d56c72 | ||
|
|
5add168743 | ||
|
|
27e59404d3 | ||
|
|
54f5ac7b8d | ||
|
|
5c688cc0b7 | ||
|
|
86efb0ea09 | ||
|
|
bc13666222 | ||
|
|
d1abde7d1a | ||
|
|
691db4d406 | ||
|
|
fb833b0c19 | ||
|
|
4d2181ad83 | ||
|
|
9dd291a96e | ||
|
|
1344803e7e | ||
|
|
4a5f8fa974 | ||
|
|
212e4a6407 | ||
|
|
d47123779e | ||
|
|
fc734a6371 | ||
|
|
02be5b808e | ||
|
|
0d757fdc40 | ||
|
|
0263a879c4 | ||
|
|
c309ed1c49 | ||
|
|
e58de14437 | ||
|
|
78a7fa1d14 | ||
|
|
77178a9583 | ||
|
|
d2ab33eb52 | ||
|
|
7b3194660c | ||
|
|
f627b25e9d | ||
|
|
1bbb7c9d3b | ||
|
|
08a4ae1f56 | ||
|
|
7c398f8019 | ||
|
|
6651023f7f | ||
|
|
021df666a3 | ||
|
|
d7e60cb6d0 | ||
|
|
4cd26e6860 | ||
|
|
946a3bf5c8 | ||
|
|
b10e6a01b2 | ||
|
|
e23341a118 | ||
|
|
4446fb13a3 | ||
|
|
4dfbde7716 | ||
|
|
3c03d4a1f3 | ||
|
|
a0ecdfff0b | ||
|
|
60023a23df | ||
|
|
e96442631c | ||
|
|
94750bfa3c | ||
|
|
5cc02555d0 | ||
|
|
6e2f7e2f38 | ||
|
|
de92cc32e6 | ||
|
|
e97205409d | ||
|
|
091d8e3dbf | ||
|
|
171ca53c29 | ||
|
|
5be61796d9 | ||
|
|
1aee1c6cb8 | ||
|
|
343f48b08c | ||
|
|
358ecfd2eb | ||
|
|
8066ad7e65 | ||
|
|
7ae0d0099d | ||
|
|
2e4fc41c9b | ||
|
|
71247ff556 | ||
|
|
5ef163f143 | ||
|
|
510cbfaa3f | ||
|
|
bd3fcab9c0 | ||
|
|
9841e6aa4c | ||
|
|
1bf125eebd | ||
|
|
f9936b8b54 | ||
|
|
d11aa6de06 | ||
|
|
1c4fccc0fd | ||
|
|
aa0323f04d | ||
|
|
2916e9dd11 | ||
|
|
6958d7abd4 | ||
|
|
9e661cb858 | ||
|
|
a972026c67 | ||
|
|
2b1bda7418 | ||
|
|
a6a3f3ed80 | ||
|
|
5cca51e978 | ||
|
|
7c971587dc | ||
|
|
40a13d4b86 | ||
|
|
a0971d016d | ||
|
|
410e9e3eb8 | ||
|
|
37813c3826 | ||
|
|
e00c243662 | ||
|
|
f504f5aac5 | ||
|
|
0b63f2c259 | ||
|
|
14fb27ce77 | ||
|
|
7da7d7b7e0 | ||
|
|
907add6acc | ||
|
|
f110e3ddcd | ||
|
|
ed206e5611 | ||
|
|
e4d8af175b | ||
|
|
ba7ddc8cdc | ||
|
|
389f5790a7 | ||
|
|
6071982dd9 | ||
|
|
f71c0bd4c3 | ||
|
|
50b45d013a | ||
|
|
93a047e77c | ||
|
|
a3bf0e8888 | ||
|
|
d8fa2f3e89 | ||
|
|
e361c5a5b3 | ||
|
|
3ef032cbaf | ||
|
|
36cf5a7ff3 | ||
|
|
6d930d6920 | ||
|
|
f676a8c9c1 | ||
|
|
941ffee2d3 | ||
|
|
0a71f3372f | ||
|
|
f817f68487 | ||
|
|
826975f392 | ||
|
|
5f244d3c31 | ||
|
|
71be34859f | ||
|
|
f9a4705c9c | ||
|
|
a546842792 | ||
|
|
ba86e20179 | ||
|
|
b32fc6f6e6 | ||
|
|
1f13a34687 | ||
|
|
f212b4850d | ||
|
|
1b4555afb6 | ||
|
|
358013c67e | ||
|
|
a98667ca05 | ||
|
|
02e9f4c333 | ||
|
|
d7951db01b | ||
|
|
21fba2df9f | ||
|
|
a4947139a6 | ||
|
|
c01e7580cd | ||
|
|
8b4f22ed75 | ||
|
|
669b76bf99 | ||
|
|
efee02ace7 | ||
|
|
cd8adf5611 | ||
|
|
d216106b88 | ||
|
|
6dd8fb12ad | ||
|
|
a4999575d0 | ||
|
|
fcaff8ff28 | ||
|
|
cf0b3e3212 | ||
|
|
bccb4150fd | ||
|
|
9a297b0eb5 | ||
|
|
9c4baf7645 | ||
|
|
73b2f20509 | ||
|
|
642690e692 | ||
|
|
1468c74c36 | ||
|
|
0bfa1ec2d0 | ||
|
|
7c74464d7a | ||
|
|
de051ac1ac | ||
|
|
ba0c4c413d | ||
|
|
7e6f5ef4f5 | ||
|
|
712eeb009f | ||
|
|
b54e28deb7 | ||
|
|
1f44cebac3 | ||
|
|
9c05e8392b | ||
|
|
9a67fec48a | ||
|
|
1966ac7979 | ||
|
|
8b624217c5 | ||
|
|
40499af9b9 | ||
|
|
b3bd359a0d | ||
|
|
de07e3f874 | ||
|
|
c7e8953b68 | ||
|
|
80e7fe4bf9 | ||
|
|
2bc199d7fc | ||
|
|
9b710d8e81 | ||
|
|
cc6a0ee98d | ||
|
|
c9492d79a1 | ||
|
|
94c4719c0d | ||
|
|
c253e8d7b8 | ||
|
|
98f12fb8e1 | ||
|
|
e05a40bb16 | ||
|
|
c73bb67486 | ||
|
|
3ad0cbc86d | ||
|
|
6402af7db9 | ||
|
|
6a41a79ded | ||
|
|
fbd9a804a9 | ||
|
|
694e1175a1 | ||
|
|
80dbd4cbfa | ||
|
|
d459f4ac7c | ||
|
|
2c5c4bfbea | ||
|
|
a1a68bb5d7 | ||
|
|
984a10c1b1 | ||
|
|
3c4c06cb5e | ||
|
|
8d28a5ca3f | ||
|
|
801c4a56c3 | ||
|
|
ea000e6ce7 | ||
|
|
6723cdfa07 | ||
|
|
2cf10711f5 | ||
|
|
bde171e947 | ||
|
|
2696615523 | ||
|
|
f98028d1d8 | ||
|
|
97475fc365 | ||
|
|
ea7aa52ea3 | ||
|
|
ec4ae5978b | ||
|
|
90d73143e1 | ||
|
|
249f0cd72c | ||
|
|
232cc1ab34 | ||
|
|
2cea31cb1b | ||
|
|
02c4d60861 | ||
|
|
8c9073308a | ||
|
|
8cb5455671 | ||
|
|
8bc44e3bff | ||
|
|
73f84baaec | ||
|
|
d3acace1c4 | ||
|
|
7f3539d001 | ||
|
|
3ef19f1ab1 | ||
|
|
749b2db846 | ||
|
|
a3e99b5d89 | ||
|
|
dbbb3fbb55 | ||
|
|
6eeac45d23 | ||
|
|
5669cc0a0b | ||
|
|
d986901a1c | ||
|
|
5394bbf06a | ||
|
|
d7b2f922b5 | ||
|
|
9ab55443eb | ||
|
|
67c7a43e6f | ||
|
|
26a4bfb838 | ||
|
|
e7a16b2e64 | ||
|
|
a5612ed668 | ||
|
|
f55d15692b | ||
|
|
107994859b | ||
|
|
a8d3689061 | ||
|
|
4fb4ec5328 | ||
|
|
9bc8519656 | ||
|
|
af36d2d8e5 | ||
|
|
6b0069f10f | ||
|
|
a64b629333 | ||
|
|
fc4cc977ed | ||
|
|
7483520c8c | ||
|
|
5d18fb8c70 | ||
|
|
1163bfac5c | ||
|
|
d643bbd7e4 | ||
|
|
32158935f8 | ||
|
|
50bf1ea784 | ||
|
|
fa29123c5e | ||
|
|
314c652818 | ||
|
|
a3dd60370e | ||
|
|
3d82567118 | ||
|
|
eaac5e02c0 | ||
|
|
3bd5703bdb | ||
|
|
bf80a75474 | ||
|
|
bea7016223 | ||
|
|
c8ff2b4612 | ||
|
|
6c673cd19b | ||
|
|
c1ae43e041 | ||
|
|
9605072200 | ||
|
|
9cabc7c222 | ||
|
|
b2b3391827 | ||
|
|
19e94b8889 | ||
|
|
4bee8c9ead | ||
|
|
3f1ae77306 | ||
|
|
9f6d6d7b37 | ||
|
|
adac412f58 | ||
|
|
31ca38515a | ||
|
|
4a35929979 | ||
|
|
4a0610f107 | ||
|
|
9a1b3d813a | ||
|
|
a7a4862491 | ||
|
|
5783536837 | ||
|
|
f8646d1a5d | ||
|
|
39bb7064e7 | ||
|
|
388bf6934d | ||
|
|
5122e9271c | ||
|
|
32b36435f8 | ||
|
|
807ad48bbc | ||
|
|
b5842314b4 | ||
|
|
efb4db2b86 | ||
|
|
ecbf8cd722 | ||
|
|
9992144130 | ||
|
|
1f9cba6f53 | ||
|
|
2465a6bdbd | ||
|
|
1a7199fd6b | ||
|
|
57f0a4c6d7 | ||
|
|
138cf77916 | ||
|
|
43d1ca89c2 | ||
|
|
51e619b18f | ||
|
|
21df7426e2 | ||
|
|
2f6b2ca0c7 | ||
|
|
cf1b9f9595 | ||
|
|
b0ec8339fa | ||
|
|
762748684e | ||
|
|
bdfd5880e9 | ||
|
|
9e55e5bcea | ||
|
|
887576e4a5 | ||
|
|
ccd1d6ab29 | ||
|
|
fcbb63ad60 | ||
|
|
1607e7914c | ||
|
|
68e98397ab | ||
|
|
3983d4f473 | ||
|
|
9eda959489 | ||
|
|
4880f9923c | ||
|
|
87e8a4290e | ||
|
|
fd96d59963 | ||
|
|
1a1771f0b5 | ||
|
|
22ed53260f | ||
|
|
77cf88a3bf | ||
|
|
695d74d7c5 | ||
|
|
a164735369 | ||
|
|
6ccea636b1 | ||
|
|
0ccaf76661 | ||
|
|
593f6f9f86 | ||
|
|
fbdda6df03 | ||
|
|
a7dcce3e8d | ||
|
|
ee5718003b | ||
|
|
a43065ec08 | ||
|
|
1740ee91da | ||
|
|
90f95306f9 | ||
|
|
0964f9175e | ||
|
|
dbde3f8826 | ||
|
|
33e08baf3f | ||
|
|
6e67ebab05 | ||
|
|
5fbc5303ff | ||
|
|
e582ad226a | ||
|
|
dfb71a3a50 | ||
|
|
5355f4f25e | ||
|
|
98c422d227 | ||
|
|
e18b577d20 | ||
|
|
7226df593e | ||
|
|
8a376f647e | ||
|
|
050087f6c4 | ||
|
|
c67e347255 | ||
|
|
3fdac985c7 | ||
|
|
02ff3e6258 | ||
|
|
65ce1b0bb5 | ||
|
|
7e8528104b | ||
|
|
40ac55acb6 | ||
|
|
42c639d252 | ||
|
|
d110b64ee4 | ||
|
|
a2617d810c | ||
|
|
90d07bc04c | ||
|
|
013d9db86f | ||
|
|
9d4d725bc7 | ||
|
|
9881cc9e10 | ||
|
|
01474fed0b | ||
|
|
024e6d8ae8 | ||
|
|
607ba653f7 | ||
|
|
9090c1904f | ||
|
|
158b762367 | ||
|
|
e8b3b2dc31 | ||
|
|
5d72eec742 | ||
|
|
6fe020c920 | ||
|
|
40c5a6af49 | ||
|
|
803dce242b | ||
|
|
4ed722ccd8 | ||
|
|
f35d479d5e | ||
|
|
f3af61de97 | ||
|
|
077fb89083 | ||
|
|
d4d4390846 | ||
|
|
33e54546fe | ||
|
|
bf008e0680 | ||
|
|
08694bd709 | ||
|
|
91242440fc | ||
|
|
68ae6fc212 | ||
|
|
14a16c2a7a | ||
|
|
9cbb50d3a6 | ||
|
|
47635b9978 | ||
|
|
f90c3f2483 | ||
|
|
5a67ecc142 | ||
|
|
a542f8ab54 | ||
|
|
f32349db7d | ||
|
|
32f5db3f72 | ||
|
|
670e3983b4 | ||
|
|
e1cc4d8552 | ||
|
|
8422bb37b0 | ||
|
|
ebf9b64062 | ||
|
|
56b397b506 | ||
|
|
de6cc79ac8 | ||
|
|
d28395fdb9 | ||
|
|
84b8ee7bda | ||
|
|
b56c732332 | ||
|
|
041c1b4586 | ||
|
|
0edc480d17 | ||
|
|
1a3bcb4ebd | ||
|
|
7d8c2a84b7 | ||
|
|
4faac431c4 | ||
|
|
df9ded3282 | ||
|
|
1fe8d1679e | ||
|
|
708505f2b1 | ||
|
|
b2da5ee1a7 | ||
|
|
315e751f43 | ||
|
|
dc5544223f | ||
|
|
c14728d31a | ||
|
|
7d4b154866 | ||
|
|
b69647a0c3 | ||
|
|
d054442e2c | ||
|
|
e50bf1fb44 | ||
|
|
d40b6a75da | ||
|
|
e124e7fb5f | ||
|
|
7c3a163f9c | ||
|
|
03af0791aa | ||
|
|
464885a539 | ||
|
|
346579ac7a | ||
|
|
76ed206e9b | ||
|
|
06e7c963ef | ||
|
|
573d902026 | ||
|
|
66cdfe5896 | ||
|
|
9afd4659c7 | ||
|
|
7249217600 | ||
|
|
2f20c672e0 | ||
|
|
6d02a64c47 | ||
|
|
3d078383cb | ||
|
|
64e765bf7a | ||
|
|
b5b6125730 | ||
|
|
e45984f6b8 | ||
|
|
a95cf1c26c | ||
|
|
4a19913726 | ||
|
|
52ae769bfa | ||
|
|
44d7c3887d | ||
|
|
315271996c | ||
|
|
2357704540 | ||
|
|
262049f737 | ||
|
|
04d6e351a6 | ||
|
|
9fa86ec712 | ||
|
|
901e3dcff2 | ||
|
|
43fffe3200 | ||
|
|
1123e13072 | ||
|
|
996636d25b | ||
|
|
8864095bab | ||
|
|
def9f5d84a | ||
|
|
47d024ae7b | ||
|
|
05135ca171 | ||
|
|
ca1f22a7c6 | ||
|
|
9a461a5e48 | ||
|
|
73e7bab839 | ||
|
|
572060aedc | ||
|
|
f1b63d41f8 | ||
|
|
9ee423edcf | ||
|
|
70c8651182 | ||
|
|
2b54f23dad | ||
|
|
67ef2bb008 | ||
|
|
f2b5e58500 | ||
|
|
b8fa0d9b29 | ||
|
|
264d68dec9 | ||
|
|
71f5264ee1 | ||
|
|
ce8a1feb94 | ||
|
|
05c32044e9 | ||
|
|
44927be6e2 | ||
|
|
d1779d6cdd | ||
|
|
a13d640bcc | ||
|
|
c7d4106f66 | ||
|
|
2e59faad8f | ||
|
|
6d70b64b2e | ||
|
|
767f9c6bce | ||
|
|
edd7c2f0b1 | ||
|
|
b9cfd31bd5 | ||
|
|
6883f99141 | ||
|
|
c2aee218d2 | ||
|
|
8e44d73705 | ||
|
|
9e30cc4542 | ||
|
|
963e2c23b0 | ||
|
|
7ee4bf8d02 | ||
|
|
c3c6bc9666 | ||
|
|
ef1024bb60 | ||
|
|
6c6e1c2be3 | ||
|
|
e9a08ba9a9 | ||
|
|
59546b9989 | ||
|
|
816edcce2e | ||
|
|
8accfb3372 | ||
|
|
da146a9afd | ||
|
|
cbcd5ffdc4 | ||
|
|
6f600ebeac | ||
|
|
9aa456f26f | ||
|
|
dc77d7605d | ||
|
|
f7c4410f41 | ||
|
|
9fa0ec00b8 | ||
|
|
0125ff7303 | ||
|
|
fbc91cf7ae | ||
|
|
43c26b5d6f | ||
|
|
4e38f70e0e | ||
|
|
e2c86dac63 | ||
|
|
aebc0650f8 | ||
|
|
44cf971405 | ||
|
|
c0d7418054 | ||
|
|
a0db54b53f | ||
|
|
32b813e42b | ||
|
|
3c144b8601 | ||
|
|
076e4e6db5 | ||
|
|
2ea08ccd36 | ||
|
|
fc48518f2b | ||
|
|
594c3b3406 | ||
|
|
38edd713e4 | ||
|
|
6987d70dc2 | ||
|
|
0e4b307585 | ||
|
|
c81bbe95c6 | ||
|
|
b21a87b50f | ||
|
|
e3566eb1ce | ||
|
|
0429434dbb | ||
|
|
80f35ee713 | ||
|
|
224595c837 | ||
|
|
61ace9a24b | ||
|
|
8c630ede7e | ||
|
|
ca3b583695 | ||
|
|
c2cbb06d57 | ||
|
|
f6bf8d2e6d | ||
|
|
60c89b2754 | ||
|
|
b72fba911d | ||
|
|
3930c388e4 | ||
|
|
ddf5ef0839 | ||
|
|
c66947405b | ||
|
|
ad27b62343 | ||
|
|
5283b0f407 | ||
|
|
af41f9267a | ||
|
|
6e8c984250 | ||
|
|
c2e018b2ac | ||
|
|
a47ce3cf13 | ||
|
|
ba58f35f37 | ||
|
|
30fd1693ee | ||
|
|
161c17ce7f | ||
|
|
27dfe542bd | ||
|
|
353113f17f | ||
|
|
762e858c48 | ||
|
|
db49702046 | ||
|
|
7239bf791f | ||
|
|
9cb75cae1d | ||
|
|
fdb4cf1208 | ||
|
|
714cf7b18c | ||
|
|
1a1e0e1a6b | ||
|
|
f6c14ec31f | ||
|
|
da7f413f6f | ||
|
|
3cf28953a7 | ||
|
|
080b761f7f | ||
|
|
7f6ad484ec | ||
|
|
391a930d49 | ||
|
|
a532773703 | ||
|
|
49f8aa4289 | ||
|
|
44b9b085c0 | ||
|
|
a447353977 |
18
.github/CONTRIBUTING.md
vendored
18
.github/CONTRIBUTING.md
vendored
@@ -1,8 +1,8 @@
|
||||
# Contributing to Lodash
|
||||
|
||||
Contributions are always welcome. Before contributing please read the
|
||||
[code of conduct](https://github.com/lodash/lodash/blob/master/CODE_OF_CONDUCT.md)
|
||||
& [search the issue tracker](https://github.com/lodash/lodash/issues); your issue
|
||||
[code of conduct](https://js.foundation/conduct/) &
|
||||
[search the issue tracker](https://github.com/lodash/lodash/issues); your issue
|
||||
may have already been discussed or fixed in `master`. To contribute,
|
||||
[fork](https://help.github.com/articles/fork-a-repo/) Lodash, commit your changes,
|
||||
& [send a pull request](https://help.github.com/articles/using-pull-requests/).
|
||||
@@ -13,8 +13,8 @@ Feature requests should be submitted in the
|
||||
[issue tracker](https://github.com/lodash/lodash/issues), with a description of
|
||||
the expected behavior & use case, where they’ll remain closed until sufficient interest,
|
||||
[e.g. :+1: reactions](https://help.github.com/articles/about-discussions-in-issues-and-pull-requests/),
|
||||
has been shown by the community. Before submitting a request, please search for
|
||||
similar ones in the
|
||||
has been [shown by the community](https://github.com/lodash/lodash/issues?q=label%3A%22votes+needed%22+sort%3Areactions-%2B1-desc).
|
||||
Before submitting a request, please search for similar ones in the
|
||||
[closed issues](https://github.com/lodash/lodash/issues?q=is%3Aissue+is%3Aclosed+label%3Aenhancement).
|
||||
|
||||
## Pull Requests
|
||||
@@ -31,12 +31,12 @@ Run unit tests from the command-line via `npm test`, or open `test/index.html` &
|
||||
|
||||
## Contributor License Agreement
|
||||
|
||||
Lodash is a member of the [jQuery Foundation](https://jquery.org/).
|
||||
As such, we request that all contributors sign the jQuery Foundation
|
||||
[contributor license agreement (CLA)](https://contribute.jquery.org/CLA/).
|
||||
Lodash is a member of the [JS Foundation](https://js.foundation/).
|
||||
As such, we request that all contributors sign the JS Foundation
|
||||
[contributor license agreement (CLA)](https://js.foundation/CLA/).
|
||||
|
||||
For more information about CLAs, please check out Alex Russell’s excellent post,
|
||||
[“Why Do I Need to Sign This?”](http://infrequently.org/2008/06/why-do-i-need-to-sign-this/).
|
||||
[“Why Do I Need to Sign This?”](https://infrequently.org/2008/06/why-do-i-need-to-sign-this/).
|
||||
|
||||
## Coding Guidelines
|
||||
|
||||
@@ -48,7 +48,7 @@ established in the code.
|
||||
|
||||
- **Naming**:<br>
|
||||
Keep variable & method names concise & descriptive.<br>
|
||||
Variable names `index`, `collection`, & `callback` are preferable to
|
||||
Variable names `index`, `array`, & `iteratee` are preferable to
|
||||
`i`, `arr`, & `fn`.
|
||||
|
||||
- **Quotes**:<br>
|
||||
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,9 +1,4 @@
|
||||
.DS_Store
|
||||
*.custom.*
|
||||
*.log
|
||||
*.map
|
||||
lodash.compat.min.js
|
||||
coverage
|
||||
doc/*.html
|
||||
node_modules
|
||||
.opt-in
|
||||
.opt-out
|
||||
|
||||
181
.jscsrc
181
.jscsrc
@@ -1,96 +1,97 @@
|
||||
{
|
||||
"maxErrors": "2000",
|
||||
"maximumLineLength": {
|
||||
"value": 180,
|
||||
"allExcept": ["comments", "functionSignature", "regex"]
|
||||
},
|
||||
"requireCurlyBraces": [
|
||||
"if",
|
||||
"else",
|
||||
"for",
|
||||
"while",
|
||||
"do",
|
||||
"try",
|
||||
"catch"
|
||||
],
|
||||
"requireOperatorBeforeLineBreak": [
|
||||
"=",
|
||||
"+",
|
||||
"-",
|
||||
"/",
|
||||
"*",
|
||||
"==",
|
||||
"===",
|
||||
"!=",
|
||||
"!==",
|
||||
">",
|
||||
">=",
|
||||
"<",
|
||||
"<="
|
||||
],
|
||||
"requireSpaceAfterKeywords": [
|
||||
"if",
|
||||
"else",
|
||||
"for",
|
||||
"while",
|
||||
"do",
|
||||
"switch",
|
||||
"return",
|
||||
"try",
|
||||
"catch"
|
||||
],
|
||||
"requireSpaceBeforeBinaryOperators": [
|
||||
"=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=",
|
||||
"&=", "|=", "^=", "+=",
|
||||
"maxErrors": "2000",
|
||||
"maximumLineLength": {
|
||||
"value": 180,
|
||||
"allExcept": ["comments", "functionSignature", "regex"]
|
||||
},
|
||||
"requireCurlyBraces": [
|
||||
"if",
|
||||
"else",
|
||||
"for",
|
||||
"while",
|
||||
"do",
|
||||
"try",
|
||||
"catch"
|
||||
],
|
||||
"requireOperatorBeforeLineBreak": [
|
||||
"=",
|
||||
"+",
|
||||
"-",
|
||||
"/",
|
||||
"*",
|
||||
"==",
|
||||
"===",
|
||||
"!=",
|
||||
"!==",
|
||||
">",
|
||||
">=",
|
||||
"<",
|
||||
"<="
|
||||
],
|
||||
"requireSpaceAfterKeywords": [
|
||||
"if",
|
||||
"else",
|
||||
"for",
|
||||
"while",
|
||||
"do",
|
||||
"switch",
|
||||
"return",
|
||||
"try",
|
||||
"catch"
|
||||
],
|
||||
"requireSpaceBeforeBinaryOperators": [
|
||||
"=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=",
|
||||
"&=", "|=", "^=",
|
||||
|
||||
"+", "-", "*", "/", "%", "<<", ">>", ">>>", "&",
|
||||
"|", "^", "&&", "||", "===", "==", ">=",
|
||||
"<=", "<", ">", "!=", "!=="
|
||||
],
|
||||
"requireSpacesInFunctionExpression": {
|
||||
"beforeOpeningCurlyBrace": true
|
||||
},
|
||||
"requireCamelCaseOrUpperCaseIdentifiers": true,
|
||||
"requireDotNotation": { "allExcept": ["keywords"] },
|
||||
"requireEarlyReturn": true,
|
||||
"requireLineFeedAtFileEnd": true,
|
||||
"requireSemicolons": true,
|
||||
"requireSpaceAfterBinaryOperators": true,
|
||||
"requireSpacesInConditionalExpression": true,
|
||||
"requireSpaceBeforeObjectValues": true,
|
||||
"requireSpaceBeforeBlockStatements": true,
|
||||
"requireSpacesInForStatement": true,
|
||||
"+", "-", "*", "/", "%", "<<", ">>", ">>>", "&",
|
||||
"|", "^", "&&", "||", "===", "==", ">=",
|
||||
"<=", "<", ">", "!=", "!=="
|
||||
],
|
||||
"requireSpacesInFunctionExpression": {
|
||||
"beforeOpeningCurlyBrace": true
|
||||
},
|
||||
"requireCamelCaseOrUpperCaseIdentifiers": true,
|
||||
"requireDotNotation": { "allExcept": ["keywords"] },
|
||||
"requireEarlyReturn": true,
|
||||
"requireLineFeedAtFileEnd": true,
|
||||
"requireSemicolons": true,
|
||||
"requireSpaceAfterBinaryOperators": true,
|
||||
"requireSpacesInConditionalExpression": true,
|
||||
"requireSpaceBeforeObjectValues": true,
|
||||
"requireSpaceBeforeBlockStatements": true,
|
||||
"requireSpacesInForStatement": true,
|
||||
|
||||
"validateIndentation": 2,
|
||||
"validateParameterSeparator": ", ",
|
||||
"validateQuoteMarks": { "mark": "'", "escape": true },
|
||||
"validateIndentation": 2,
|
||||
"validateParameterSeparator": ", ",
|
||||
"validateQuoteMarks": { "mark": "'", "escape": true },
|
||||
|
||||
"disallowSpacesInAnonymousFunctionExpression": {
|
||||
"beforeOpeningRoundBrace": true
|
||||
},
|
||||
"disallowSpacesInFunctionDeclaration": {
|
||||
"beforeOpeningRoundBrace": true
|
||||
},
|
||||
"disallowSpacesInFunctionExpression": {
|
||||
"beforeOpeningRoundBrace": true
|
||||
},
|
||||
"disallowKeywords": ["with"],
|
||||
"disallowMixedSpacesAndTabs": true,
|
||||
"disallowMultipleLineBreaks": true,
|
||||
"disallowNewlineBeforeBlockStatements": true,
|
||||
"disallowSpaceAfterObjectKeys": true,
|
||||
"disallowSpaceAfterPrefixUnaryOperators": true,
|
||||
"disallowSpacesInCallExpression": true,
|
||||
"disallowSpacesInsideArrayBrackets": true,
|
||||
"disallowSpacesInsideParentheses": true,
|
||||
"disallowTrailingWhitespace": true,
|
||||
"disallowSpacesInAnonymousFunctionExpression": {
|
||||
"beforeOpeningRoundBrace": true
|
||||
},
|
||||
"disallowSpacesInFunctionDeclaration": {
|
||||
"beforeOpeningRoundBrace": true
|
||||
},
|
||||
"disallowSpacesInFunctionExpression": {
|
||||
"beforeOpeningRoundBrace": true
|
||||
},
|
||||
"disallowKeywords": ["with"],
|
||||
"disallowMixedSpacesAndTabs": true,
|
||||
"disallowMultipleLineBreaks": true,
|
||||
"disallowNewlineBeforeBlockStatements": true,
|
||||
"disallowSpaceAfterObjectKeys": true,
|
||||
"disallowSpaceAfterPrefixUnaryOperators": true,
|
||||
"disallowSpacesInCallExpression": true,
|
||||
"disallowSpacesInsideArrayBrackets": true,
|
||||
"disallowSpacesInsideParentheses": true,
|
||||
"disallowTrailingWhitespace": true,
|
||||
"disallowUnusedVariables": true,
|
||||
|
||||
"jsDoc": {
|
||||
"checkRedundantAccess": true,
|
||||
"checkTypes": true,
|
||||
"requireNewlineAfterDescription": true,
|
||||
"requireParamDescription": true,
|
||||
"requireParamTypes": true,
|
||||
"requireReturnTypes": true
|
||||
}
|
||||
"jsDoc": {
|
||||
"checkRedundantAccess": true,
|
||||
"checkTypes": true,
|
||||
"requireNewlineAfterDescription": true,
|
||||
"requireParamDescription": true,
|
||||
"requireParamTypes": true,
|
||||
"requireReturnTypes": true
|
||||
}
|
||||
}
|
||||
|
||||
11
.markdown-doctest-setup.js
Normal file
11
.markdown-doctest-setup.js
Normal file
@@ -0,0 +1,11 @@
|
||||
'use strict';
|
||||
|
||||
delete global['__core-js_shared__'];
|
||||
|
||||
const _ = require('./lodash.js');
|
||||
const globals = require('lodash-doc-globals');
|
||||
|
||||
module.exports = {
|
||||
'babel': false,
|
||||
'globals': _.assign({ '_': _ }, globals)
|
||||
};
|
||||
154
.travis.yml
154
.travis.yml
@@ -1,77 +1,135 @@
|
||||
language: node_js
|
||||
sudo: false
|
||||
node_js:
|
||||
- "5"
|
||||
- 7
|
||||
|
||||
addons:
|
||||
jwt:
|
||||
secure: OYhRpW+8A0Iik+9GmHwa45ZwXeBXw/6zh6I+1w2H9g/LqPRp+Nhq3f4FSpvrrfno8lO8W4h+7s6+JOzF8C8NxNda5UUygKjF9pUphgiQdqls3YZMJlC9zXVl7gQXAHi3nG1s8vWSpwpzYD9fqczE1FX9n0+R63qX3eB6C/LbPeI=
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- ~/.npm
|
||||
- ~/.yarn-cache
|
||||
- travis_phantomjs
|
||||
|
||||
env:
|
||||
global:
|
||||
- BIN="node" ISTANBUL=false OPTION=""
|
||||
- SAUCE_LABS=false SAUCE_USERNAME="lodash"
|
||||
- secure: "tg1JFsIFnxzLaTboFPOnm+aJCuMm5+JdhLlESlqg9x3fwro++7KCnwHKLNovhchaPe4otC43ZMB/nfWhDnDm11dKbm/V6HlTkED+dadTsaLxVDg6J+7yK41QhokBPJOxLV78iDaNaAQVYEirAgZ0yn8kFubxmNKV+bpCGQNc9yU="
|
||||
- BIN=node ISTANBUL=false OPTION=""
|
||||
- SAUCE_LABS=false SAUCE_USERNAME=lodash
|
||||
|
||||
matrix:
|
||||
-
|
||||
- BIN="phantomjs"
|
||||
- BIN=phantomjs
|
||||
- ISTANBUL=true
|
||||
- SAUCE_LABS=true
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- node_js: "0.10"
|
||||
env:
|
||||
- node_js: "0.12"
|
||||
env:
|
||||
- node_js: "4"
|
||||
- node_js: 6
|
||||
env:
|
||||
|
||||
git:
|
||||
depth: 10
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
|
||||
notifications:
|
||||
webhooks:
|
||||
urls:
|
||||
- https://webhooks.gitter.im/e/4aab6358b0e9aed0b628
|
||||
on_success: change
|
||||
on_failure: always
|
||||
before_install:
|
||||
- "nvm use $TRAVIS_NODE_VERSION"
|
||||
- "npm set loglevel error"
|
||||
- "npm set progress false"
|
||||
- "npm i -g npm@\"^2.0.0\""
|
||||
- |
|
||||
PATTERN[0]="|\s*if\s*\(isHostObject\b[\s\S]+?\}(?=\n)|"
|
||||
PATTERN[1]="|\s*if\s*\(enumerate\b[\s\S]+?\};\s*\}|"
|
||||
PATTERN[2]="|\s*while\s*\([^)]+\)\s*\{\s*iteratee\(index\);\s*\}|"
|
||||
PATTERN[3]="|\s*else\s*\{\s*assocSet\(data\b[\s\S]+?\}|"
|
||||
PATTERN[4]="|\bcase\s+(?:dataView|set|map|weakMap)CtorString:.+|g"
|
||||
PATTERN[5]="|\bindex,\s*iterable\)\s*===\s*false\)[^}]+?(break;)|"
|
||||
PATTERN[6]="|\s*if\s*\(\!lodashFunc\)\s*\{\s*return;\s*\}|"
|
||||
PATTERN[7]="|\s*define\([\s\S]+?\);|"
|
||||
PATTERN[8]="|\s*root\._\s*=\s*_;|"
|
||||
|
||||
if [ $ISTANBUL == true ]; then
|
||||
before_install:
|
||||
# Upgrade PhantomJS.
|
||||
- |
|
||||
export PHANTOMJS_VERSION=2.1.1
|
||||
export PATH=$PWD/travis_phantomjs/phantomjs-$PHANTOMJS_VERSION-linux-x86_64/bin:$PATH
|
||||
if [ $(phantomjs --version) != $PHANTOMJS_VERSION ]; then
|
||||
rm -rf $PWD/travis_phantomjs
|
||||
mkdir -p $PWD/travis_phantomjs
|
||||
wget https://github.com/Medium/phantomjs/releases/download/v$PHANTOMJS_VERSION/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2
|
||||
tar -xvf phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs
|
||||
fi
|
||||
phantomjs -v
|
||||
|
||||
# Use exact Node version.
|
||||
- nvm use $TRAVIS_NODE_VERSION
|
||||
|
||||
# Setup package managers.
|
||||
- npm set loglevel error
|
||||
- npm set progress false
|
||||
- npm i -g yarn
|
||||
- yarn -V
|
||||
|
||||
# Remove code skipped on the coverage run.
|
||||
- |
|
||||
PATTERN[0]="|\s*while\s*\([^)]+\)\s*\{\s*iteratee\(index\);\s*\}|"
|
||||
PATTERN[1]="|\s*else\s*\{\s*assocSet\(data\b[\s\S]+?\}|"
|
||||
PATTERN[2]="|\bindex,\s*iterable\)\s*===\s*false\)[^}]+?(break;)|"
|
||||
PATTERN[3]="|\bcase\s+(?:dataView|promise|set|map|weakMap)CtorString:.+|g"
|
||||
PATTERN[4]="|\s*if\s*\(cache\.size\b[\s\S]+?\}|"
|
||||
PATTERN[5]="|\s*if\s*\(\!lodashFunc\)\s*\{\s*return;\s*\}|"
|
||||
PATTERN[6]="|\s*define\([\s\S]+?\);|"
|
||||
PATTERN[7]="|\s*root\._\s*=\s*_;|"
|
||||
|
||||
if [ $ISTANBUL = true ]; then
|
||||
set -e
|
||||
for PTRN in ${PATTERN[@]}; do
|
||||
node ./test/remove.js "$PTRN" ./lodash.js
|
||||
node ./test/remove.js $PTRN ./lodash.js
|
||||
done
|
||||
fi
|
||||
- "git clone --depth=10 --branch=master git://github.com/lodash/lodash-cli ./node_modules/lodash-cli && mkdir $_/node_modules && cd $_ && ln -s ../../../ ./lodash && cd ../ && npm i && cd ../../"
|
||||
- "node ./node_modules/lodash-cli/bin/lodash -o ./dist/lodash.js"
|
||||
|
||||
install:
|
||||
# Install packages.
|
||||
- yarn
|
||||
|
||||
# Use lodash-cli from GitHub.
|
||||
- git clone --depth=10 --branch=master git://github.com/lodash/lodash-cli ./node_modules/lodash-cli
|
||||
- mkdir -p ./node_modules/lodash-cli/node_modules/lodash; cd $_; cp ../../../../lodash.js ./lodash.js; cp ../../../../package.json ./package.json
|
||||
- cd ../../; npm i --production; cd ../../
|
||||
|
||||
script:
|
||||
- "[ $ISTANBUL == false ] || istanbul cover -x \"**/vendor/**\" --report lcovonly ./test/test.js -- ./lodash.js"
|
||||
- "[ $ISTANBUL == false ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || (cat ./coverage/lcov.info | coveralls) || true"
|
||||
- "[ $ISTANBUL == false ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || (cat ./coverage/coverage.json | codecov) || true"
|
||||
- "[ $SAUCE_LABS == true ] || [ $ISTANBUL == true ] || cd ./test"
|
||||
- "[ $SAUCE_LABS == true ] || [ $ISTANBUL == true ] || $BIN $OPTION ./test.js ../lodash.js"
|
||||
- "[ $SAUCE_LABS == true ] || [ $ISTANBUL == true ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || $BIN $OPTION ./test.js ../dist/lodash.min.js"
|
||||
- "[ $SAUCE_LABS == false ] || rm -rf ./node_modules/lodash"
|
||||
- "[ $SAUCE_LABS == false ] || ($BIN ./node_modules/lodash-cli/bin/lodash modularize exports=node -o ./node_modules/lodash && node ./node_modules/lodash-cli/bin/lodash -d -o ./node_modules/lodash/lodash.js)"
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./node_modules/lodash-cli/bin/lodash core -o ./dist/lodash.core.js"
|
||||
- "[ $SAUCE_LABS == false ] || npm run build"
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash tests\" runner=\"test/index.html?build=../dist/lodash.js&noglobals=true\" tags=\"development\""
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash tests\" runner=\"test/index.html?build=../dist/lodash.min.js&noglobals=true\" tags=\"production\""
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash-fp tests\" runner=\"test/fp.html?noglobals=true\" tags=\"development\""
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"underscore tests\" runner=\"test/underscore.html?build=../dist/lodash.js\" tags=\"development,underscore\""
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"underscore tests\" runner=\"test/underscore.html?build=../dist/lodash.min.js\" tags=\"production,underscore\""
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.js\" tags=\"development,backbone\""
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.min.js\" tags=\"production,backbone\""
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.core.js\" tags=\"development,backbone\""
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.core.min.js\" tags=\"production,backbone\""
|
||||
# Detect code coverage.
|
||||
- |
|
||||
if [ $ISTANBUL = true ]; then
|
||||
istanbul cover -x "**/vendor/**" --report lcovonly ./test/test.js -- ./lodash.js
|
||||
if [ $TRAVIS_SECURE_ENV_VARS = true ]; then
|
||||
cat ./coverage/lcov.info | coveralls
|
||||
cat ./coverage/coverage.json | codecov
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test in Node.js and PhantomJS.
|
||||
- |
|
||||
if [ $ISTANBUL = false ]; then
|
||||
node ./node_modules/lodash-cli/bin/lodash -o ./dist/lodash.js
|
||||
node ./node_modules/lodash-cli/bin/lodash modularize exports=node -o ./
|
||||
node ./node_modules/lodash-cli/bin/lodash -d -o ./lodash.js
|
||||
if [ $SAUCE_LABS = false ]; then
|
||||
cd ./test
|
||||
$BIN $OPTION ./test.js ../lodash.js
|
||||
if [ $TRAVIS_SECURE_ENV_VARS = true ]; then
|
||||
$BIN $OPTION ./test.js ../dist/lodash.min.js
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test in Sauce Labs.
|
||||
- |
|
||||
if [ $SAUCE_LABS = true ]; then
|
||||
node ./node_modules/lodash-cli/bin/lodash core -o ./dist/lodash.core.js
|
||||
npm run build
|
||||
$BIN ./test/saucelabs.js name="lodash tests" runner="test/index.html?build=../dist/lodash.js&noglobals=true" tags=development
|
||||
$BIN ./test/saucelabs.js name="lodash tests" runner="test/index.html?build=../dist/lodash.min.js&noglobals=true" tags=production
|
||||
$BIN ./test/saucelabs.js name="lodash-fp tests" runner="test/fp.html?noglobals=true" tags=development
|
||||
$BIN ./test/saucelabs.js name="underscore tests" runner="test/underscore.html?build=../dist/lodash.js" tags=development,underscore
|
||||
$BIN ./test/saucelabs.js name="underscore tests" runner="test/underscore.html?build=../dist/lodash.min.js" tags=production,underscore
|
||||
$BIN ./test/saucelabs.js name="backbone tests" runner="test/backbone.html?build=../dist/lodash.js" tags=development,backbone
|
||||
$BIN ./test/saucelabs.js name="backbone tests" runner="test/backbone.html?build=../dist/lodash.min.js" tags=production,backbone
|
||||
$BIN ./test/saucelabs.js name="backbone tests" runner="test/backbone.html?build=../dist/lodash.core.js" tags=development,backbone
|
||||
$BIN ./test/saucelabs.js name="backbone tests" runner="test/backbone.html?build=../dist/lodash.core.min.js" tags=production,backbone
|
||||
fi
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||
nationality, personal appearance, race, religion, or sexual identity and
|
||||
orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at [coc@lodash.com](mailto:coc@lodash.com).
|
||||
The project team will review and investigate all complaints, and will respond in
|
||||
a way that it deems appropriate to the circumstances. The project team is obligated
|
||||
to maintain confidentiality with regard to the reporter of an incident. Further
|
||||
details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at [http://contributor-covenant.org/version/1/4][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
||||
2
LICENSE
2
LICENSE
@@ -1,4 +1,4 @@
|
||||
Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
||||
Copyright JS Foundation and other contributors <https://js.foundation/>
|
||||
|
||||
Based on Underscore.js, copyright Jeremy Ashkenas,
|
||||
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||
|
||||
80
README.md
80
README.md
@@ -1,52 +1,80 @@
|
||||
# lodash v4.11.0
|
||||
# lodash v4.16.5
|
||||
|
||||
[Site](https://lodash.com/) |
|
||||
[Docs](https://lodash.com/docs) |
|
||||
[FP Guide](https://github.com/lodash/lodash/wiki/FP-Guide) |
|
||||
[Contributing](https://github.com/lodash/lodash/blob/master/.github/CONTRIBUTING.md) |
|
||||
[Wiki](https://github.com/lodash/lodash/wiki "Changelog, Roadmap, etc.") |
|
||||
[Code of Conduct](https://js.foundation/conduct/) |
|
||||
[Twitter](https://twitter.com/bestiejs) |
|
||||
[Chat](https://gitter.im/lodash/lodash)
|
||||
|
||||
The [Lodash](https://lodash.com/) library exported as a [UMD](https://github.com/umdjs/umd) module.
|
||||
|
||||
Generated using [lodash-cli](https://www.npmjs.com/package/lodash-cli):
|
||||
```bash
|
||||
```shell
|
||||
$ npm run build
|
||||
$ lodash -o ./dist/lodash.js
|
||||
$ lodash core -o ./dist/lodash.core.js
|
||||
```
|
||||
|
||||
## Community
|
||||
|
||||
[](https://gitter.im/lodash/lodash)
|
||||
|
||||
## Documentation
|
||||
|
||||
* [API Documentation](https://lodash.com/docs)
|
||||
* [FP Guide](https://github.com/lodash/lodash/wiki/FP-Guide)
|
||||
|
||||
## Download
|
||||
|
||||
Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.11.0/LICENSE) & supports [modern environments](#support).<br>
|
||||
* [Core build](https://raw.githubusercontent.com/lodash/lodash/4.16.5/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.16.5/dist/lodash.core.min.js))
|
||||
* [Full build](https://raw.githubusercontent.com/lodash/lodash/4.16.5/dist/lodash.js) ([~23 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.16.5/dist/lodash.min.js))
|
||||
* [CDN copies](https://www.jsdelivr.com/projects/lodash)
|
||||
|
||||
Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.16.5/LICENSE) & supports [modern environments](#support).<br>
|
||||
Review the [build differences](https://github.com/lodash/lodash/wiki/build-differences) & pick one that’s right for you.
|
||||
|
||||
* [Core build](https://raw.githubusercontent.com/lodash/lodash/4.11.0/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.11.0/dist/lodash.core.min.js))
|
||||
* [Full build](https://raw.githubusercontent.com/lodash/lodash/4.11.0/dist/lodash.js) ([~21 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.11.0/dist/lodash.min.js))
|
||||
* [CDN copies](https://www.jsdelivr.com/projects/lodash)
|
||||
## Installation
|
||||
|
||||
In a browser:
|
||||
```html
|
||||
<script src="lodash.js"></script>
|
||||
```
|
||||
|
||||
Using npm:
|
||||
```shell
|
||||
$ npm i -g npm
|
||||
$ npm i --save lodash
|
||||
```
|
||||
|
||||
In Node.js:
|
||||
```js
|
||||
// Load the full build.
|
||||
var _ = require('lodash');
|
||||
// Load the core build.
|
||||
var _ = require('lodash/core');
|
||||
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
|
||||
var fp = require('lodash/fp');
|
||||
|
||||
// Load method categories.
|
||||
var array = require('lodash/array');
|
||||
var object = require('lodash/fp/object');
|
||||
|
||||
// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
|
||||
var at = require('lodash/at');
|
||||
var curryN = require('lodash/fp/curryN');
|
||||
```
|
||||
|
||||
**Note:**<br>
|
||||
Install [n_](https://www.npmjs.com/package/n_) for Lodash use in the Node.js < 6 REPL.
|
||||
|
||||
## Why Lodash?
|
||||
|
||||
Lodash makes JavaScript easier by taking the hassle out of working with arrays,<br>
|
||||
numbers, objects, strings, etc. Lodash’s modular methods are great for:
|
||||
|
||||
* Iterating arrays, objects, & strings
|
||||
* Manipulating & testing values
|
||||
* Creating composite functions
|
||||
* Iterating arrays, objects, & strings
|
||||
* Manipulating & testing values
|
||||
* Creating composite functions
|
||||
|
||||
## Module Formats
|
||||
|
||||
Lodash is available in a [variety of builds](https://lodash.com/custom-builds) & module formats.
|
||||
|
||||
* [lodash](https://www.npmjs.com/package/lodash) & [per method packages](https://www.npmjs.com/browse/keyword/lodash-modularized)
|
||||
* [lodash-es](https://www.npmjs.com/package/lodash-es), [babel-plugin-lodash](https://www.npmjs.com/package/babel-plugin-lodash), & [lodash-webpack-plugin](https://www.npmjs.com/package/lodash-webpack-plugin)
|
||||
* [lodash/fp](https://github.com/lodash/lodash/tree/npm/fp)
|
||||
* [lodash-amd](https://www.npmjs.com/package/lodash-amd)
|
||||
* [lodash-es](https://www.npmjs.com/package/lodash-es) & [babel-plugin-lodash](https://www.npmjs.com/package/babel-plugin-lodash)
|
||||
* [lodash/fp](https://github.com/lodash/lodash/tree/4.11.0-npm/fp)
|
||||
|
||||
## Further Reading
|
||||
|
||||
* [Contributing](https://github.com/lodash/lodash/blob/4.11.0/.github/CONTRIBUTING.md)
|
||||
* [Release Notes](https://github.com/lodash/lodash/releases/tag/4.0.0)
|
||||
* [Wiki (Changelog, Roadmap, etc.)](https://github.com/lodash/lodash/wiki)
|
||||
|
||||
1377
dist/lodash.core.js
vendored
1377
dist/lodash.core.js
vendored
File diff suppressed because it is too large
Load Diff
51
dist/lodash.core.min.js
vendored
51
dist/lodash.core.min.js
vendored
@@ -1,30 +1,29 @@
|
||||
/**
|
||||
* @license
|
||||
* lodash 4.11.0 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
||||
* lodash (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
||||
* Build: `lodash core -o ./dist/lodash.core.js`
|
||||
*/
|
||||
;(function(){function n(n,t){return n.push.apply(n,t),n}function t(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===pn?i===i:r(i,c)))var c=i,f=o}return f}function r(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return w(t,function(t){return n[t]})}function o(n){return n&&n.Object===Object?n:null}function i(n){return gn[n]}function c(n){var t=false;if(null!=n&&typeof n.toString!="function")try{
|
||||
t=!!(n+"")}catch(r){}return t}function f(n,t){return n=typeof n=="number"||yn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function a(n){return n instanceof l?n:new l(n)}function l(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function p(n,t,r,e){var u;return(u=n===pn)||(u=En[r],u=(n===u||n!==n&&u!==u)&&!kn.call(e,r)),u?t:n}function s(n){return Z(n)?Bn(n):{}}function h(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){
|
||||
n.apply(pn,r)},t)}function v(n,t){var r=true;return Cn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function y(n,t){var r=[];return Cn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function g(t,r,e,u,o){var i=-1,c=t.length;for(e||(e=C),o||(o=[]);++i<c;){var f=t[i];r>0&&e(f)?r>1?g(f,r-1,e,u,o):n(o,f):u||(o[o.length]=f)}return o}function b(n,t){return n&&Gn(n,t,on)}function _(n,t){return y(t,function(t){return X(n[t])})}function j(n,t,r,e,u){return n===t?true:null==n||null==t||!Z(n)&&!nn(t)?n!==n&&t!==t:d(n,t,j,r,e,u);
|
||||
}function d(n,t,r,e,u,o){var i=Vn(n),f=Vn(t),a="[object Array]",l="[object Array]";i||(a=Sn.call(n),a="[object Arguments]"==a?"[object Object]":a),f||(l=Sn.call(t),l="[object Arguments]"==l?"[object Object]":l);var p="[object Object]"==a&&!c(n),f="[object Object]"==l&&!c(t),l=a==l;o||(o=[]);var s=M(o,function(t){return t[0]===n});return s&&s[1]?s[1]==t:(o.push([n,t]),l&&!p?(r=i||isTypedArray(n)?I(n,t,r,e,u,o):$(n,t,a),o.pop(),r):2&u||(i=p&&kn.call(n,"__wrapped__"),a=f&&kn.call(t,"__wrapped__"),!i&&!a)?l?(r=q(n,t,r,e,u,o),
|
||||
o.pop(),r):false:(i=i?n.value():n,t=a?t.value():t,r=r(i,t,e,u,o),o.pop(),r))}function m(n){return typeof n=="function"?n:null==n?an:(typeof n=="object"?x:E)(n)}function O(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function w(n,t){var r=-1,e=W(n)?Array(n.length):[];return Cn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function x(n){var t=on(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&j(n[u],r[u],pn,3)))return false}return true}}function A(n,t){
|
||||
return n=Object(n),U(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function E(n){return function(t){return null==t?pn:t[n]}}function k(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function N(n){return k(n,0,n.length)}function S(n,t){var r;return Cn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function T(t,r){return U(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args))},t)}function F(n,t,r,e){r||(r={});
|
||||
for(var u=-1,o=t.length;++u<o;){var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];kn.call(f,i)&&(a===c||a!==a&&c!==c)&&(c!==pn||i in f)||(f[i]=c)}return r}function R(n){return H(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:pn,o=typeof o=="function"?(u--,o):pn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function B(n){return function(){var t=arguments,r=s(n.prototype),t=n.apply(r,t);return Z(t)?t:r}}function D(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==xn&&this instanceof e?u:n;++c<f;)a[c]=r[c];
|
||||
for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=B(n);return e}function I(n,t,r,e,u,o){var i=-1,c=1&u,f=n.length,a=t.length;if(f!=a&&!(2&u&&a>f))return false;for(a=true;++i<f;){var l=n[i],p=t[i];if(void 0!==pn){a=false;break}if(c){if(!S(t,function(n){return l===n||r(l,n,e,u,o)})){a=false;break}}else if(l!==p&&!r(l,p,e,u,o)){a=false;break}}return a}function $(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":return+n==+t;case"[object Error]":
|
||||
return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+""}return false}function q(n,t,r,e,u,o){var i=2&u,c=on(n),f=c.length,a=on(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:kn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==pn||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(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)&&(a=false)),
|
||||
a}function z(n){var t=n?n.length:pn;if(Y(t)&&(Vn(n)||rn(n)||Q(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function C(n){return nn(n)&&W(n)&&(Vn(n)||Q(n))}function G(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||En)}function J(n){return n&&n.length?n[0]:pn}function M(n,t){return r(n,m(t),Cn)}function P(n,t){return Cn(n,m(t))}function U(n,t,r){return e(n,m(t),r,3>arguments.length,Cn)}function V(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");
|
||||
return n=Hn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=pn),r}}function H(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");return t=qn(t===pn?n.length-1:Hn(t),0),function(){for(var r=arguments,e=-1,u=qn(r.length-t,0),o=Array(u);++e<u;)o[e]=r[t+e];for(u=Array(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function K(){if(!arguments.length)return[];var n=arguments[0];return Vn(n)?n:[n]}function L(n,t){return n>t}function Q(n){return nn(n)&&W(n)&&kn.call(n,"callee")&&(!Dn.call(n,"callee")||"[object Arguments]"==Sn.call(n));
|
||||
}function W(n){return null!=n&&Y(Jn(n))&&!X(n)}function X(n){return n=Z(n)?Sn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function Y(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function Z(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function nn(n){return!!n&&typeof n=="object"}function tn(n){return typeof n=="number"||nn(n)&&"[object Number]"==Sn.call(n)}function rn(n){return typeof n=="string"||!Vn(n)&&nn(n)&&"[object String]"==Sn.call(n)}function en(n,t){
|
||||
return t>n}function un(n){return typeof n=="string"?n:null==n?"":n+""}function on(n){var t=G(n);if(!t&&!W(n))return $n(Object(n));var r,e=z(n),u=!!e,e=e||[],o=e.length;for(r in n)!kn.call(n,r)||u&&("length"==r||f(r,o))||t&&"constructor"==r||e.push(r);return e}function cn(n){for(var t=-1,r=G(n),e=O(n),u=e.length,o=z(n),i=!!o,o=o||[],c=o.length;++t<u;){var a=e[t];i&&("length"==a||f(a,c))||"constructor"==a&&(r||!kn.call(n,a))||o.push(a)}return o}function fn(n){return n?u(n,on(n)):[]}function an(n){return n;
|
||||
}function ln(t,r,e){var u=on(r),o=_(r,u);null!=e||Z(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=_(r,on(r)));var i=Z(e)&&"chain"in e?e.chain:true,c=X(t);return Cn(o,function(e){var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=t(this.__wrapped__);return(e.__actions__=N(this.__actions__)).push({func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var pn,sn=1/0,hn=/[&<>"'`]/g,vn=RegExp(hn.source),yn=/^(?:0|[1-9]\d*)$/,gn={
|
||||
"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},bn={"function":true,object:true},_n=bn[typeof exports]&&exports&&!exports.nodeType?exports:pn,jn=bn[typeof module]&&module&&!module.nodeType?module:pn,dn=jn&&jn.exports===_n?_n:pn,mn=o(bn[typeof self]&&self),On=o(bn[typeof window]&&window),wn=o(bn[typeof this]&&this),xn=o(_n&&jn&&typeof global=="object"&&global)||On!==(wn&&wn.window)&&On||mn||wn||Function("return this")(),An=Array.prototype,En=Object.prototype,kn=En.hasOwnProperty,Nn=0,Sn=En.toString,Tn=xn._,Fn=xn.Reflect,Rn=Fn?Fn.f:pn,Bn=Object.create,Dn=En.propertyIsEnumerable,In=xn.isFinite,$n=Object.keys,qn=Math.max,zn=!Dn.call({
|
||||
valueOf:1},"valueOf");l.prototype=s(a.prototype),l.prototype.constructor=l;var Cn=function(n,t){return function(r,e){if(null==r)return r;if(!W(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(b),Gn=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}();Rn&&!Dn.call({valueOf:1},"valueOf")&&(O=function(n){n=Rn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);
|
||||
return r});var Jn=E("length"),Mn=H(function(n,t,r){return D(n,t,r)}),Pn=H(function(n,t){return h(n,1,t)}),Un=H(function(n,t,r){return h(n,Kn(t)||0,r)}),Vn=Array.isArray,Hn=Number,Kn=Number,Ln=R(function(n,t){F(t,on(t),n)}),Qn=R(function(n,t){F(t,cn(t),n)}),Wn=R(function(n,t,r,e){F(t,cn(t),n,e)}),Xn=H(function(n){return n.push(pn,p),Wn.apply(pn,n)}),Yn=H(function(n,t){return null==n?{}:A(n,g(t,1))}),Zn=m;a.assignIn=Qn,a.before=V,a.bind=Mn,a.chain=function(n){return n=a(n),n.__chain__=true,n},a.compact=function(n){
|
||||
return y(n,Boolean)},a.concat=function(){var t=arguments.length,r=K(arguments[0]);if(2>t)return t?N(r):[];for(var e=Array(t-1);t--;)e[t-1]=arguments[t];return g(e,1),n(N(r),fn)},a.create=function(n,t){var r=s(n);return t?Ln(r,t):r},a.defaults=Xn,a.defer=Pn,a.delay=Un,a.filter=function(n,t){return y(n,m(t))},a.flatten=function(n){return n&&n.length?g(n,1):[]},a.flattenDeep=function(n){return n&&n.length?g(n,sn):[]},a.iteratee=Zn,a.keys=on,a.map=function(n,t){return w(n,m(t))},a.matches=function(n){
|
||||
return x(Ln({},n))},a.mixin=ln,a.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},a.once=function(n){return V(2,n)},a.pick=Yn,a.slice=function(n,t,r){var e=n?n.length:0;return r=r===pn?e:+r,e?k(n,null==t?0:+t,r):[]},a.sortBy=function(n,t){var r=0;return t=m(t),w(w(n,function(n,e,u){return{c:n,b:r++,a:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.a;var e=t.a;if(r!==e){var u=null===r,o=r===pn,i=r===r,c=null===e,f=e===pn,a=e===e;
|
||||
if(r>e&&!c||!i||u&&!f&&a||o&&a){r=1;break n}if(e>r&&!u||!a||c&&!o&&i||f&&i){r=-1;break n}}r=0}return r||n.b-t.b}),E("c"))},a.tap=function(n,t){return t(n),n},a.thru=function(n,t){return t(n)},a.toArray=function(n){return W(n)?n.length?N(n):[]:fn(n)},a.values=fn,a.extend=Qn,ln(a,a),a.clone=function(n){return Z(n)?Vn(n)?N(n):F(n,on(n)):n},a.escape=function(n){return(n=un(n))&&vn.test(n)?n.replace(hn,i):n},a.every=function(n,t,r){return t=r?pn:t,v(n,m(t))},a.find=M,a.forEach=P,a.has=function(n,t){return null!=n&&kn.call(n,t);
|
||||
},a.head=J,a.identity=an,a.indexOf=function(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?qn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1},a.isArguments=Q,a.isArray=Vn,a.isBoolean=function(n){return true===n||false===n||nn(n)&&"[object Boolean]"==Sn.call(n)},a.isDate=function(n){return nn(n)&&"[object Date]"==Sn.call(n)},a.isEmpty=function(n){if(W(n)&&(Vn(n)||rn(n)||X(n.splice)||Q(n)))return!n.length;for(var t in n)if(kn.call(n,t))return false;return!(zn&&on(n).length);
|
||||
},a.isEqual=function(n,t){return j(n,t)},a.isFinite=function(n){return typeof n=="number"&&In(n)},a.isFunction=X,a.isNaN=function(n){return tn(n)&&n!=+n},a.isNull=function(n){return null===n},a.isNumber=tn,a.isObject=Z,a.isRegExp=function(n){return Z(n)&&"[object RegExp]"==Sn.call(n)},a.isString=rn,a.isUndefined=function(n){return n===pn},a.last=function(n){var t=n?n.length:0;return t?n[t-1]:pn},a.max=function(n){return n&&n.length?t(n,an,L):pn},a.min=function(n){return n&&n.length?t(n,an,en):pn},
|
||||
a.noConflict=function(){return xn._===this&&(xn._=Tn),this},a.noop=function(){},a.reduce=U,a.result=function(n,t,r){return t=null==n?pn:n[t],t===pn&&(t=r),X(t)?t.call(n):t},a.size=function(n){return null==n?0:(n=W(n)?n:on(n),n.length)},a.some=function(n,t,r){return t=r?pn:t,S(n,m(t))},a.uniqueId=function(n){var t=++Nn;return un(n)+t},a.each=P,a.first=J,ln(a,function(){var n={};return b(a,function(t,r){kn.call(a.prototype,r)||(n[r]=t)}),n}(),{chain:false}),a.VERSION="4.11.0",Cn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
|
||||
var t=(/^(?:replace|split)$/.test(n)?String.prototype:An)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);a.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Vn(u)?u:[],n)}return this[r](function(r){return t.apply(Vn(r)?r:[],n)})}}),a.prototype.toJSON=a.prototype.valueOf=a.prototype.value=function(){return T(this.__wrapped__,this.__actions__)},(On||mn||{})._=a,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){
|
||||
return a}):_n&&jn?(dn&&((jn.exports=a)._=a),_n._=a):xn._=a}).call(this);
|
||||
;(function(){function n(n){return K(n)&&pn.call(n,"callee")&&!bn.call(n,"callee")}function t(n,t){return n.push.apply(n,t),n}function r(n){return function(t){return null==t?nn:t[n]}}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return d(t,function(t){return n[t]})}function o(n){return n instanceof i?n:new i(n)}function i(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function c(n,t,r,e){return n===nn||M(n,ln[r])&&!pn.call(e,r)?t:n}function f(n,t,r){
|
||||
if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(nn,r)},t)}function a(n,t){var r=true;return mn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function l(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===nn?i===i:r(i,c)))var c=i,f=o}return f}function p(n,t){var r=[];return mn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function s(n,r,e,u,o){var i=-1,c=n.length;for(e||(e=D),o||(o=[]);++i<c;){var f=n[i];0<r&&e(f)?1<r?s(f,r-1,e,u,o):t(o,f):u||(o[o.length]=f);
|
||||
}return o}function h(n,t){return n&&On(n,t,qn)}function v(n,t){return p(t,function(t){return V(n[t])})}function y(n,t){return n>t}function b(n,t,r,e,u){return n===t||(null==n||null==t||!H(n)&&!K(t)?n!==n&&t!==t:g(n,t,b,r,e,u))}function g(n,t,r,e,u,o){var i=Sn(n),c=Sn(t),f="[object Array]",a="[object Array]";i||(f=hn.call(n),f="[object Arguments]"==f?"[object Object]":f),c||(a=hn.call(t),a="[object Arguments]"==a?"[object Object]":a);var l="[object Object]"==f,c="[object Object]"==a,a=f==a;o||(o=[]);
|
||||
var p=En(o,function(t){return t[0]==n}),s=En(o,function(n){return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if(i)r=B(n,t,r,e,u,o);else n:{switch(f){case"[object Boolean]":case"[object Date]":case"[object Number]":r=M(+n,+t);break n;case"[object Error]":r=n.name==t.name&&n.message==t.message;break n;case"[object RegExp]":case"[object String]":r=n==t+"";break n}r=false}return o.pop(),r}return 2&u||(i=l&&pn.call(n,"__wrapped__"),f=c&&pn.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=R(n,t,r,e,u,o),
|
||||
o.pop(),r):(i=i?n.value():n,f=f?t.value():t,r=r(i,f,e,u,o),o.pop(),r)}function _(n){return typeof n=="function"?n:null==n?Y:(typeof n=="object"?m:r)(n)}function j(n,t){return n<t}function d(n,t){var r=-1,e=U(n)?Array(n.length):[];return mn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function m(n){var t=_n(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&b(n[u],r[u],nn,3)))return false}return true}}function O(n,t){return n=Object(n),G(t,function(t,r){return r in n&&(t[r]=n[r]),
|
||||
t},{})}function x(n){return xn(q(n,void 0,Y),n+"")}function A(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function E(n){return A(n,0,n.length)}function w(n,t){var r;return mn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function k(n,r){return G(r,function(n,r){return r.func.apply(r.thisArg,t([n],r.args))},n)}function N(n,t,r,e){var u=!r;r||(r={});for(var o=-1,i=t.length;++o<i;){var c=t[o],f=e?e(r[c],n[c],c,r,n):nn;
|
||||
if(f===nn&&(f=n[c]),u)r[c]=f;else{var a=r,l=a[c];pn.call(a,c)&&M(l,f)&&(f!==nn||c in a)||(a[c]=f)}}return r}function S(n){return x(function(t,r){var e=-1,u=r.length,o=1<u?r[u-1]:nn,o=3<n.length&&typeof o=="function"?(u--,o):nn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function F(n){return function(){var t=arguments,r=dn(n.prototype),t=n.apply(r,t);return H(t)?t:r}}function T(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==on&&this instanceof e?u:n;++c<f;)a[c]=r[c];
|
||||
for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=F(n);return e}function B(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(2&u&&c>i))return false;for(var c=-1,f=true,a=1&u?[]:nn;++c<i;){var l=n[c],p=t[c];if(void 0!==nn){f=false;break}if(a){if(!w(t,function(n,t){if(!z(a,t)&&(l===n||r(l,n,e,u,o)))return a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function R(n,t,r,e,u,o){var i=2&u,c=qn(n),f=c.length,a=qn(t).length;
|
||||
if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:pn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==nn||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(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)&&(a=false)),a}function D(t){return Sn(t)||n(t)}function I(n){var t=[];if(null!=n)for(var r in Object(n))t.push(r);return t}function q(n,t,r){
|
||||
return t=jn(t===nn?n.length-1:t,0),function(){for(var e=arguments,u=-1,o=jn(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];for(u=-1,o=Array(t+1);++u<t;)o[u]=e[u];return o[t]=r(i),n.apply(this,o)}}function $(n){return(null==n?0:n.length)?s(n,1):[]}function P(n){return n&&n.length?n[0]:nn}function z(n,t,r){var e=null==n?0:n.length;r=typeof r=="number"?0>r?jn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1}function C(n,t){return mn(n,_(t))}function G(n,t,r){return e(n,_(t),r,3>arguments.length,mn);
|
||||
}function J(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Fn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=nn),r}}function M(n,t){return n===t||n!==n&&t!==t}function U(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1<t&&0==t%1&&9007199254740991>=t),t&&!V(n)}function V(n){return!!H(n)&&(n=hn.call(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function H(n){var t=typeof n;
|
||||
return null!=n&&("object"==t||"function"==t)}function K(n){return null!=n&&typeof n=="object"}function L(n){return typeof n=="number"||K(n)&&"[object Number]"==hn.call(n)}function Q(n){return typeof n=="string"||!Sn(n)&&K(n)&&"[object String]"==hn.call(n)}function W(n){return typeof n=="string"?n:null==n?"":n+""}function X(n){return null==n?[]:u(n,qn(n))}function Y(n){return n}function Z(n,r,e){var u=qn(r),o=v(r,u);null!=e||H(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=v(r,qn(r)));var i=!(H(e)&&"chain"in e&&!e.chain),c=V(n);
|
||||
return mn(o,function(e){var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=n(this.__wrapped__);return(e.__actions__=E(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var nn,tn=1/0,rn=/[&<>"']/g,en=RegExp(rn.source),un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=function(n){
|
||||
return function(t){return null==n?nn:n[t]}}({"&":"&","<":"<",">":">",'"':""","'":"'"}),an=Array.prototype,ln=Object.prototype,pn=ln.hasOwnProperty,sn=0,hn=ln.toString,vn=on._,yn=Object.create,bn=ln.propertyIsEnumerable,gn=on.isFinite,_n=function(n,t){return function(r){return n(t(r))}}(Object.keys,Object),jn=Math.max,dn=function(){function n(){}return function(t){return H(t)?yn?yn(t):(n.prototype=t,t=new n,n.prototype=nn,t):{}}}();i.prototype=dn(o.prototype),i.prototype.constructor=i;
|
||||
var mn=function(n,t){return function(r,e){if(null==r)return r;if(!U(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(h),On=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}(),xn=Y,An=String,En=function(n){return function(t,r,e){var u=Object(t);if(!U(t)){var o=_(r);t=qn(t),r=function(n){return o(u[n],n,u)}}return r=n(t,r,e),-1<r?u[o?t[r]:r]:nn}}(function(n,t,r){
|
||||
var e=null==n?0:n.length;if(!e)return-1;r=null==r?0:Fn(r),0>r&&(r=jn(e+r,0));n:{for(t=_(t),e=n.length,r+=-1;++r<e;)if(t(n[r],r,n)){n=r;break n}n=-1}return n}),wn=x(function(n,t,r){return T(n,t,r)}),kn=x(function(n,t){return f(n,1,t)}),Nn=x(function(n,t,r){return f(n,Tn(t)||0,r)}),Sn=Array.isArray,Fn=Number,Tn=Number,Bn=S(function(n,t){N(t,_n(t),n)}),Rn=S(function(n,t){N(t,I(t),n)}),Dn=S(function(n,t,r,e){N(t,$n(t),n,e)}),In=x(function(n){return n.push(nn,c),Dn.apply(nn,n)}),qn=_n,$n=I,Pn=function(n){
|
||||
return xn(q(n,nn,$),n+"")}(function(n,t){return null==n?{}:O(n,d(t,An))});o.assignIn=Rn,o.before=J,o.bind=wn,o.chain=function(n){return n=o(n),n.__chain__=true,n},o.compact=function(n){return p(n,Boolean)},o.concat=function(){var n=arguments.length;if(!n)return[];for(var r=Array(n-1),e=arguments[0];n--;)r[n-1]=arguments[n];return t(Sn(e)?E(e):[e],s(r,1))},o.create=function(n,t){var r=dn(n);return null==t?r:Bn(r,t)},o.defaults=In,o.defer=kn,o.delay=Nn,o.filter=function(n,t){return p(n,_(t))},o.flatten=$,
|
||||
o.flattenDeep=function(n){return(null==n?0:n.length)?s(n,tn):[]},o.iteratee=_,o.keys=qn,o.map=function(n,t){return d(n,_(t))},o.matches=function(n){return m(Bn({},n))},o.mixin=Z,o.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},o.once=function(n){return J(2,n)},o.pick=Pn,o.slice=function(n,t,r){var e=null==n?0:n.length;return r=r===nn?e:+r,e?A(n,null==t?0:+t,r):[]},o.sortBy=function(n,t){var e=0;return t=_(t),
|
||||
d(d(n,function(n,r,u){return{value:n,index:e++,criteria:t(n,r,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==nn,o=null===r,i=r===r,c=e!==nn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&r<e||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),r("value"))},o.tap=function(n,t){return t(n),n},o.thru=function(n,t){return t(n)},o.toArray=function(n){return U(n)?n.length?E(n):[]:X(n)},o.values=X,o.extend=Rn,Z(o,o),o.clone=function(n){
|
||||
return H(n)?Sn(n)?E(n):N(n,_n(n)):n},o.escape=function(n){return(n=W(n))&&en.test(n)?n.replace(rn,fn):n},o.every=function(n,t,r){return t=r?nn:t,a(n,_(t))},o.find=En,o.forEach=C,o.has=function(n,t){return null!=n&&pn.call(n,t)},o.head=P,o.identity=Y,o.indexOf=z,o.isArguments=n,o.isArray=Sn,o.isBoolean=function(n){return true===n||false===n||K(n)&&"[object Boolean]"==hn.call(n)},o.isDate=function(n){return K(n)&&"[object Date]"==hn.call(n)},o.isEmpty=function(t){return U(t)&&(Sn(t)||Q(t)||V(t.splice)||n(t))?!t.length:!_n(t).length;
|
||||
},o.isEqual=function(n,t){return b(n,t)},o.isFinite=function(n){return typeof n=="number"&&gn(n)},o.isFunction=V,o.isNaN=function(n){return L(n)&&n!=+n},o.isNull=function(n){return null===n},o.isNumber=L,o.isObject=H,o.isRegExp=function(n){return K(n)&&"[object RegExp]"==hn.call(n)},o.isString=Q,o.isUndefined=function(n){return n===nn},o.last=function(n){var t=null==n?0:n.length;return t?n[t-1]:nn},o.max=function(n){return n&&n.length?l(n,Y,y):nn},o.min=function(n){return n&&n.length?l(n,Y,j):nn},
|
||||
o.noConflict=function(){return on._===this&&(on._=vn),this},o.noop=function(){},o.reduce=G,o.result=function(n,t,r){return t=null==n?nn:n[t],t===nn&&(t=r),V(t)?t.call(n):t},o.size=function(n){return null==n?0:(n=U(n)?n:_n(n),n.length)},o.some=function(n,t,r){return t=r?nn:t,w(n,_(t))},o.uniqueId=function(n){var t=++sn;return W(n)+t},o.each=C,o.first=P,Z(o,function(){var n={};return h(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.16.5",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
|
||||
var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Sn(u)?u:[],n)}return this[r](function(r){return t.apply(Sn(r)?r:[],n)})}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return k(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o,
|
||||
define(function(){return o})):cn?((cn.exports=o)._=o,un._=o):on._=o}).call(this);
|
||||
327
dist/lodash.fp.js
vendored
327
dist/lodash.fp.js
vendored
@@ -68,7 +68,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
return baseConvert(lodash, lodash, options);
|
||||
}
|
||||
|
||||
if (typeof _ == 'function') {
|
||||
if (typeof _ == 'function' && typeof _.runInContext == 'function') {
|
||||
_ = browserConvert(_.runInContext());
|
||||
}
|
||||
module.exports = browserConvert;
|
||||
@@ -79,7 +79,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
/***/ function(module, exports, __webpack_require__) {
|
||||
|
||||
var mapping = __webpack_require__(2),
|
||||
mutateMap = mapping.mutate,
|
||||
fallbackHolder = __webpack_require__(3);
|
||||
|
||||
/**
|
||||
@@ -151,11 +150,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
* @param {Function} cloner The function to clone arguments.
|
||||
* @returns {Function} Returns the new immutable function.
|
||||
*/
|
||||
function immutWrap(func, cloner) {
|
||||
function wrapImmutable(func, cloner) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return result;
|
||||
return;
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
@@ -223,6 +222,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'keys': util.keys,
|
||||
'rearg': util.rearg,
|
||||
'spread': util.spread,
|
||||
'toInteger': util.toInteger,
|
||||
'toPath': util.toPath
|
||||
};
|
||||
|
||||
@@ -236,6 +236,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
keys = helpers.keys,
|
||||
rearg = helpers.rearg,
|
||||
spread = helpers.spread,
|
||||
toInteger = helpers.toInteger,
|
||||
toPath = helpers.toPath;
|
||||
|
||||
var aryMethodKeys = keys(mapping.aryMethod);
|
||||
@@ -269,30 +270,38 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
if (!isFunction(func)) {
|
||||
return mixin(func, Object(source));
|
||||
}
|
||||
var methods = [],
|
||||
methodNames = [];
|
||||
|
||||
var pairs = [];
|
||||
each(keys(source), function(key) {
|
||||
var value = source[key];
|
||||
if (isFunction(value)) {
|
||||
methodNames.push(key);
|
||||
methods.push(func.prototype[key]);
|
||||
if (isFunction(source[key])) {
|
||||
pairs.push([key, func.prototype[key]]);
|
||||
}
|
||||
});
|
||||
|
||||
mixin(func, Object(source));
|
||||
|
||||
each(methodNames, function(methodName, index) {
|
||||
var method = methods[index];
|
||||
if (isFunction(method)) {
|
||||
func.prototype[methodName] = method;
|
||||
each(pairs, function(pair) {
|
||||
var value = pair[1];
|
||||
if (isFunction(value)) {
|
||||
func.prototype[pair[0]] = value;
|
||||
} else {
|
||||
delete func.prototype[methodName];
|
||||
delete func.prototype[pair[0]];
|
||||
}
|
||||
});
|
||||
return func;
|
||||
};
|
||||
},
|
||||
'nthArg': function(nthArg) {
|
||||
return function(n) {
|
||||
var arity = n < 0 ? 1 : (toInteger(n) + 1);
|
||||
return curry(nthArg(n), arity);
|
||||
};
|
||||
},
|
||||
'rearg': function(rearg) {
|
||||
return function(func, indexes) {
|
||||
var arity = indexes ? indexes.length : 0;
|
||||
return curry(rearg(func, indexes), arity);
|
||||
};
|
||||
},
|
||||
'runInContext': function(runInContext) {
|
||||
return function(context) {
|
||||
return baseConvert(util, runInContext(context), options);
|
||||
@@ -302,6 +311,77 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Casts `func` to a function with an arity capped iteratee if needed.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to inspect.
|
||||
* @param {Function} func The function to inspect.
|
||||
* @returns {Function} Returns the cast function.
|
||||
*/
|
||||
function castCap(name, func) {
|
||||
if (config.cap) {
|
||||
var indexes = mapping.iterateeRearg[name];
|
||||
if (indexes) {
|
||||
return iterateeRearg(func, indexes);
|
||||
}
|
||||
var n = !isLib && mapping.iterateeAry[name];
|
||||
if (n) {
|
||||
return iterateeAry(func, n);
|
||||
}
|
||||
}
|
||||
return func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Casts `func` to a curried function if needed.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to inspect.
|
||||
* @param {Function} func The function to inspect.
|
||||
* @param {number} n The arity of `func`.
|
||||
* @returns {Function} Returns the cast function.
|
||||
*/
|
||||
function castCurry(name, func, n) {
|
||||
return (forceCurry || (config.curry && n > 1))
|
||||
? curry(func, n)
|
||||
: func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Casts `func` to a fixed arity function if needed.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to inspect.
|
||||
* @param {Function} func The function to inspect.
|
||||
* @param {number} n The arity cap.
|
||||
* @returns {Function} Returns the cast function.
|
||||
*/
|
||||
function castFixed(name, func, n) {
|
||||
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
|
||||
var data = mapping.methodSpread[name],
|
||||
start = data && data.start;
|
||||
|
||||
return start === undefined ? ary(func, n) : spread(func, start);
|
||||
}
|
||||
return func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Casts `func` to an rearged function if needed.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to inspect.
|
||||
* @param {Function} func The function to inspect.
|
||||
* @param {number} n The arity of `func`.
|
||||
* @returns {Function} Returns the cast function.
|
||||
*/
|
||||
function castRearg(name, func, n) {
|
||||
return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))
|
||||
? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])
|
||||
: func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a clone of `object` by `path`.
|
||||
*
|
||||
@@ -315,6 +395,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
var index = -1,
|
||||
length = path.length,
|
||||
lastIndex = length - 1,
|
||||
result = clone(Object(object)),
|
||||
nested = result;
|
||||
|
||||
@@ -323,7 +404,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
value = nested[key];
|
||||
|
||||
if (value != null) {
|
||||
nested[key] = clone(Object(value));
|
||||
nested[path[index]] = clone(index == lastIndex ? value : Object(value));
|
||||
}
|
||||
nested = nested[key];
|
||||
}
|
||||
@@ -349,13 +430,16 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
* @returns {Function} Returns the new converter function.
|
||||
*/
|
||||
function createConverter(name, func) {
|
||||
var oldOptions = options;
|
||||
var realName = mapping.aliasToReal[name] || name,
|
||||
methodName = mapping.remap[realName] || realName,
|
||||
oldOptions = options;
|
||||
|
||||
return function(options) {
|
||||
var newUtil = isLib ? pristine : helpers,
|
||||
newFunc = isLib ? pristine[name] : func,
|
||||
newFunc = isLib ? pristine[methodName] : func,
|
||||
newOptions = assign(assign({}, oldOptions), options);
|
||||
|
||||
return baseConvert(newUtil, name, newFunc, newOptions);
|
||||
return baseConvert(newUtil, realName, newFunc, newOptions);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -393,12 +477,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that invokes `func` with its first argument passed
|
||||
* thru `transform`.
|
||||
* Creates a function that invokes `func` with its first argument transformed.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {...Function} transform The functions to transform the first argument.
|
||||
* @param {Function} transform The argument transform.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function overArg(func, transform) {
|
||||
@@ -427,53 +510,37 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
* @returns {Function} Returns the converted function.
|
||||
*/
|
||||
function wrap(name, func) {
|
||||
name = mapping.aliasToReal[name] || name;
|
||||
|
||||
var result,
|
||||
realName = mapping.aliasToReal[name] || name,
|
||||
wrapped = func,
|
||||
wrapper = wrappers[name];
|
||||
wrapper = wrappers[realName];
|
||||
|
||||
if (wrapper) {
|
||||
wrapped = wrapper(func);
|
||||
}
|
||||
else if (config.immutable) {
|
||||
if (mutateMap.array[name]) {
|
||||
wrapped = immutWrap(func, cloneArray);
|
||||
if (mapping.mutate.array[realName]) {
|
||||
wrapped = wrapImmutable(func, cloneArray);
|
||||
}
|
||||
else if (mutateMap.object[name]) {
|
||||
wrapped = immutWrap(func, createCloner(func));
|
||||
else if (mapping.mutate.object[realName]) {
|
||||
wrapped = wrapImmutable(func, createCloner(func));
|
||||
}
|
||||
else if (mutateMap.set[name]) {
|
||||
wrapped = immutWrap(func, cloneByPath);
|
||||
else if (mapping.mutate.set[realName]) {
|
||||
wrapped = wrapImmutable(func, cloneByPath);
|
||||
}
|
||||
}
|
||||
each(aryMethodKeys, function(aryKey) {
|
||||
each(mapping.aryMethod[aryKey], function(otherName) {
|
||||
if (name == otherName) {
|
||||
var aryN = !isLib && mapping.iterateeAry[name],
|
||||
reargIndexes = mapping.iterateeRearg[name],
|
||||
spreadStart = mapping.methodSpread[name];
|
||||
if (realName == otherName) {
|
||||
var spreadData = mapping.methodSpread[realName],
|
||||
afterRearg = spreadData && spreadData.afterRearg;
|
||||
|
||||
result = wrapped;
|
||||
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
|
||||
result = spreadStart === undefined
|
||||
? ary(result, aryKey)
|
||||
: spread(result, spreadStart);
|
||||
}
|
||||
if (config.rearg && aryKey > 1 && (forceRearg || !mapping.skipRearg[name])) {
|
||||
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[aryKey]);
|
||||
}
|
||||
if (config.cap) {
|
||||
if (reargIndexes) {
|
||||
result = iterateeRearg(result, reargIndexes);
|
||||
} else if (aryN) {
|
||||
result = iterateeAry(result, aryN);
|
||||
}
|
||||
}
|
||||
if (forceCurry || (config.curry && aryKey > 1)) {
|
||||
forceCurry && console.log(forceCurry, name);
|
||||
result = curry(result, aryKey);
|
||||
}
|
||||
result = afterRearg
|
||||
? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)
|
||||
: castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);
|
||||
|
||||
result = castCap(realName, result);
|
||||
result = castCurry(realName, result, aryKey);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@@ -486,8 +553,8 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
return func.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
result.convert = createConverter(name, func);
|
||||
if (mapping.placeholder[name]) {
|
||||
result.convert = createConverter(realName, func);
|
||||
if (mapping.placeholder[realName]) {
|
||||
setPlaceholder = true;
|
||||
result.placeholder = func.placeholder = placeholder;
|
||||
}
|
||||
@@ -562,11 +629,20 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'entries': 'toPairs',
|
||||
'entriesIn': 'toPairsIn',
|
||||
'extend': 'assignIn',
|
||||
'extendAll': 'assignInAll',
|
||||
'extendAllWith': 'assignInAllWith',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
|
||||
// Methods that are curried variants of others.
|
||||
'conforms': 'conformsTo',
|
||||
'matches': 'isMatch',
|
||||
'property': 'get',
|
||||
|
||||
// Ramda aliases.
|
||||
'__': 'placeholder',
|
||||
'F': 'stubFalse',
|
||||
'T': 'stubTrue',
|
||||
'all': 'every',
|
||||
'allPass': 'overEvery',
|
||||
'always': 'constant',
|
||||
@@ -580,8 +656,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'contains': 'includes',
|
||||
'dissoc': 'unset',
|
||||
'dissocPath': 'unset',
|
||||
'dropLast': 'dropRight',
|
||||
'dropLastWhile': 'dropRightWhile',
|
||||
'equals': 'isEqual',
|
||||
'identical': 'eq',
|
||||
'indexBy': 'keyBy',
|
||||
'init': 'initial',
|
||||
'invertObj': 'invert',
|
||||
'juxt': 'over',
|
||||
@@ -593,40 +672,49 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'paths': 'at',
|
||||
'pickAll': 'pick',
|
||||
'pipe': 'flow',
|
||||
'pluck': 'map',
|
||||
'prop': 'get',
|
||||
'propEq': 'matchesProperty',
|
||||
'propOr': 'getOr',
|
||||
'props': 'at',
|
||||
'symmetricDifference': 'xor',
|
||||
'symmetricDifferenceBy': 'xorBy',
|
||||
'symmetricDifferenceWith': 'xorWith',
|
||||
'takeLast': 'takeRight',
|
||||
'takeLastWhile': 'takeRightWhile',
|
||||
'unapply': 'rest',
|
||||
'unnest': 'flatten',
|
||||
'useWith': 'overArgs',
|
||||
'whereEq': 'filter',
|
||||
'where': 'conformsTo',
|
||||
'whereEq': 'isMatch',
|
||||
'zipObj': 'zipObject'
|
||||
};
|
||||
|
||||
/** Used to map ary to method names. */
|
||||
exports.aryMethod = {
|
||||
'1': [
|
||||
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
|
||||
'flow', 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
|
||||
'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest', 'reverse',
|
||||
'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',
|
||||
'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',
|
||||
'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',
|
||||
'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',
|
||||
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
|
||||
'uniqueId', 'words'
|
||||
'uniqueId', 'words', 'zipAll'
|
||||
],
|
||||
'2': [
|
||||
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
|
||||
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
||||
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith',
|
||||
'eq', 'every', 'filter', 'find', 'find', 'findIndex', 'findKey', 'findLast',
|
||||
'findLastIndex', 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth',
|
||||
'forEach', 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight',
|
||||
'get', 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf',
|
||||
'intersection', 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch',
|
||||
'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues',
|
||||
'matchesProperty', 'maxBy', 'meanBy', 'merge', 'minBy', 'multiply', 'nth',
|
||||
'omit', 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
|
||||
'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
|
||||
'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',
|
||||
'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',
|
||||
'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',
|
||||
'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',
|
||||
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',
|
||||
'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',
|
||||
'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',
|
||||
'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',
|
||||
'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',
|
||||
'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',
|
||||
'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',
|
||||
'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',
|
||||
'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',
|
||||
'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',
|
||||
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
|
||||
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
||||
@@ -638,12 +726,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
],
|
||||
'3': [
|
||||
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
|
||||
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'invokeArgs',
|
||||
'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', 'mergeWith',
|
||||
'orderBy', 'padChars', 'padCharsEnd', 'padCharsStart', 'pullAllBy',
|
||||
'pullAllWith', 'reduce', 'reduceRight', 'replace', 'set', 'slice',
|
||||
'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith',
|
||||
'update', 'xorBy', 'xorWith', 'zipWith'
|
||||
'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',
|
||||
'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',
|
||||
'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',
|
||||
'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',
|
||||
'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',
|
||||
'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',
|
||||
'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',
|
||||
'xorWith', 'zipWith'
|
||||
],
|
||||
'4': [
|
||||
'fill', 'setWith', 'updateWith'
|
||||
@@ -664,10 +754,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'every': 1,
|
||||
'filter': 1,
|
||||
'find': 1,
|
||||
'findFrom': 1,
|
||||
'findIndex': 1,
|
||||
'findIndexFrom': 1,
|
||||
'findKey': 1,
|
||||
'findLast': 1,
|
||||
'findLastFrom': 1,
|
||||
'findLastIndex': 1,
|
||||
'findLastIndexFrom': 1,
|
||||
'findLastKey': 1,
|
||||
'flatMap': 1,
|
||||
'flatMapDeep': 1,
|
||||
@@ -700,31 +794,53 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/** Used to map method names to rearg configs. */
|
||||
exports.methodRearg = {
|
||||
'assignInAllWith': [1, 2, 0],
|
||||
'assignInWith': [1, 2, 0],
|
||||
'assignAllWith': [1, 2, 0],
|
||||
'assignWith': [1, 2, 0],
|
||||
'differenceBy': [1, 2, 0],
|
||||
'differenceWith': [1, 2, 0],
|
||||
'getOr': [2, 1, 0],
|
||||
'intersectionBy': [1, 2, 0],
|
||||
'intersectionWith': [1, 2, 0],
|
||||
'isEqualWith': [1, 2, 0],
|
||||
'isMatchWith': [2, 1, 0],
|
||||
'mergeAllWith': [1, 2, 0],
|
||||
'mergeWith': [1, 2, 0],
|
||||
'padChars': [2, 1, 0],
|
||||
'padCharsEnd': [2, 1, 0],
|
||||
'padCharsStart': [2, 1, 0],
|
||||
'pullAllBy': [2, 1, 0],
|
||||
'pullAllWith': [2, 1, 0],
|
||||
'rangeStep': [1, 2, 0],
|
||||
'rangeStepRight': [1, 2, 0],
|
||||
'setWith': [3, 1, 2, 0],
|
||||
'sortedIndexBy': [2, 1, 0],
|
||||
'sortedLastIndexBy': [2, 1, 0],
|
||||
'unionBy': [1, 2, 0],
|
||||
'unionWith': [1, 2, 0],
|
||||
'updateWith': [3, 1, 2, 0],
|
||||
'xorBy': [1, 2, 0],
|
||||
'xorWith': [1, 2, 0],
|
||||
'zipWith': [1, 2, 0]
|
||||
};
|
||||
|
||||
/** Used to map method names to spread configs. */
|
||||
exports.methodSpread = {
|
||||
'invokeArgs': 2,
|
||||
'invokeArgsMap': 2,
|
||||
'partial': 1,
|
||||
'partialRight': 1,
|
||||
'without': 1
|
||||
'assignAll': { 'start': 0 },
|
||||
'assignAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'assignInAll': { 'start': 0 },
|
||||
'assignInAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'defaultsAll': { 'start': 0 },
|
||||
'defaultsDeepAll': { 'start': 0 },
|
||||
'invokeArgs': { 'start': 2 },
|
||||
'invokeArgsMap': { 'start': 2 },
|
||||
'mergeAll': { 'start': 0 },
|
||||
'mergeAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'partial': { 'start': 1 },
|
||||
'partialRight': { 'start': 1 },
|
||||
'without': { 'start': 1 },
|
||||
'zipAll': { 'start': 0 }
|
||||
};
|
||||
|
||||
/** Used to identify methods which mutate arrays or objects. */
|
||||
@@ -741,13 +857,21 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
},
|
||||
'object': {
|
||||
'assign': true,
|
||||
'assignAll': true,
|
||||
'assignAllWith': true,
|
||||
'assignIn': true,
|
||||
'assignInAll': true,
|
||||
'assignInAllWith': true,
|
||||
'assignInWith': true,
|
||||
'assignWith': true,
|
||||
'defaults': true,
|
||||
'defaultsAll': true,
|
||||
'defaultsDeep': true,
|
||||
'defaultsDeepAll': true,
|
||||
'merge': true,
|
||||
'mergeWith': true
|
||||
'mergeAll': true,
|
||||
'mergeAllWith': true,
|
||||
'mergeWith': true,
|
||||
},
|
||||
'set': {
|
||||
'set': true,
|
||||
@@ -787,19 +911,38 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/** Used to map method names to other names. */
|
||||
exports.remap = {
|
||||
'assignAll': 'assign',
|
||||
'assignAllWith': 'assignWith',
|
||||
'assignInAll': 'assignIn',
|
||||
'assignInAllWith': 'assignInWith',
|
||||
'curryN': 'curry',
|
||||
'curryRightN': 'curryRight',
|
||||
'defaultsAll': 'defaults',
|
||||
'defaultsDeepAll': 'defaultsDeep',
|
||||
'findFrom': 'find',
|
||||
'findIndexFrom': 'findIndex',
|
||||
'findLastFrom': 'findLast',
|
||||
'findLastIndexFrom': 'findLastIndex',
|
||||
'getOr': 'get',
|
||||
'includesFrom': 'includes',
|
||||
'indexOfFrom': 'indexOf',
|
||||
'invokeArgs': 'invoke',
|
||||
'invokeArgsMap': 'invokeMap',
|
||||
'lastIndexOfFrom': 'lastIndexOf',
|
||||
'mergeAll': 'merge',
|
||||
'mergeAllWith': 'mergeWith',
|
||||
'padChars': 'pad',
|
||||
'padCharsEnd': 'padEnd',
|
||||
'padCharsStart': 'padStart',
|
||||
'propertyOf': 'get',
|
||||
'rangeStep': 'range',
|
||||
'rangeStepRight': 'rangeRight',
|
||||
'restFrom': 'rest',
|
||||
'spreadFrom': 'spread',
|
||||
'trimChars': 'trim',
|
||||
'trimCharsEnd': 'trimEnd',
|
||||
'trimCharsStart': 'trimStart'
|
||||
'trimCharsStart': 'trimStart',
|
||||
'zipAll': 'zip'
|
||||
};
|
||||
|
||||
/** Used to track methods that skip fixing their arity. */
|
||||
@@ -809,6 +952,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'flowRight': true,
|
||||
'iteratee': true,
|
||||
'mixin': true,
|
||||
'rearg': true,
|
||||
'runInContext': true
|
||||
};
|
||||
|
||||
@@ -834,13 +978,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'overArgs': true,
|
||||
'partial': true,
|
||||
'partialRight': true,
|
||||
'propertyOf': true,
|
||||
'random': true,
|
||||
'range': true,
|
||||
'rangeRight': true,
|
||||
'subtract': true,
|
||||
'without': true,
|
||||
'zip': true,
|
||||
'zipObject': true
|
||||
'zipObject': true,
|
||||
'zipObjectDeep': true
|
||||
};
|
||||
|
||||
|
||||
|
||||
36
dist/lodash.fp.min.js
vendored
36
dist/lodash.fp.min.js
vendored
@@ -1,16 +1,20 @@
|
||||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fp=e():t.fp=e()}(this,function(){return function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){function n(t,e){return i(t,t,e)}var i=r(1);"function"==typeof _&&(_=n(_.runInContext())),
|
||||
t.exports=n},function(t,e,r){function n(t,e){return 2==e?function(e,r){return t.apply(void 0,arguments)}:function(e){return t.apply(void 0,arguments)}}function i(t,e){return 2==e?function(e,r){return t(e,r)}:function(e){return t(e)}}function a(t){for(var e=t?t.length:0,r=Array(e);e--;)r[e]=t[e];return r}function o(t){return function(e){return t({},e)}}function s(t,e){return function(){var r=arguments.length;if(!r)return i;for(var n=Array(r);r--;)n[r]=arguments[r];var i=n[0]=e.apply(void 0,n);return t.apply(void 0,n),
|
||||
i}}function u(t,e,r,d){function f(t,e){e=F(e);for(var r=-1,n=e.length,i=M(Object(t)),a=i;null!=a&&++r<n;){var o=e[r],s=a[o];null!=s&&(a[o]=M(Object(s))),a=a[o]}return i}function h(t){return N.runInContext.convert(t)(void 0)}function y(t,e){var r=d;return function(n){var i=R?B:j,a=R?B[t]:e,o=w(w({},r),n);return u(i,t,a,o)}}function g(t,e){return v(t,function(t){return"function"==typeof t?i(t,e):t})}function m(t,e){return v(t,function(t){var r=e.length;return n(L(i(t,r),e),r)})}function v(t,e){return function(){
|
||||
var r=arguments.length;if(!r)return t();for(var n=Array(r);r--;)n[r]=arguments[r];var i=I.rearg?0:r-1;return n[i]=e(n[i]),t.apply(void 0,n)}}function x(t,e){t=p.aliasToReal[t]||t;var r,n=e,i=_[t];return i?n=i(e):I.immutable&&(l.array[t]?n=s(e,a):l.object[t]?n=s(e,o(e)):l.set[t]&&(n=s(e,f))),P(T,function(e){return P(p.aryMethod[e],function(i){if(t==i){var a=!R&&p.iterateeAry[t],o=p.iterateeRearg[t],s=p.methodSpread[t];return r=n,!I.fixed||!k&&p.skipFixed[t]||(r=void 0===s?C(r,e):D(r,s)),I.rearg&&e>1&&(E||!p.skipRearg[t])&&(r=L(r,p.methodRearg[t]||p.aryRearg[e])),
|
||||
I.cap&&(o?r=m(r,o):a&&(r=g(r,a))),(b||I.curry&&e>1)&&(b&&console.log(b,t),r=q(r,e)),!1}}),!r}),r||(r=n),r==e&&(r=b?q(r,1):function(){return e.apply(this,arguments)}),r.convert=y(t,e),p.placeholder[t]&&(W=!0,r.placeholder=e.placeholder=O),r}var W,R="function"==typeof e,A=e===Object(e);if(A&&(d=r,r=e,e=void 0),null==r)throw new TypeError;d||(d={});var I={cap:"cap"in d?d.cap:!0,curry:"curry"in d?d.curry:!0,fixed:"fixed"in d?d.fixed:!0,immutable:"immutable"in d?d.immutable:!0,rearg:"rearg"in d?d.rearg:!0
|
||||
},b="curry"in d&&d.curry,k="fixed"in d&&d.fixed,E="rearg"in d&&d.rearg,O=R?r:c,B=R?r.runInContext():void 0,j=R?r:{ary:t.ary,assign:t.assign,clone:t.clone,curry:t.curry,forEach:t.forEach,isArray:t.isArray,isFunction:t.isFunction,iteratee:t.iteratee,keys:t.keys,rearg:t.rearg,spread:t.spread,toPath:t.toPath},C=j.ary,w=j.assign,M=j.clone,q=j.curry,P=j.forEach,S=j.isArray,z=j.isFunction,K=j.keys,L=j.rearg,D=j.spread,F=j.toPath,T=K(p.aryMethod),_={castArray:function(t){return function(){var e=arguments[0];
|
||||
return S(e)?t(a(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[0],r=arguments[1],n=t(e,r),a=n.length;return I.cap&&"number"==typeof r?(r=r>2?r-2:1,a&&r>=a?n:i(n,r)):n}},mixin:function(t){return function(e){var r=this;if(!z(r))return t(r,Object(e));var n=[],i=[];return P(K(e),function(t){var a=e[t];z(a)&&(i.push(t),n.push(r.prototype[t]))}),t(r,Object(e)),P(i,function(t,e){var i=n[e];z(i)?r.prototype[t]=i:delete r.prototype[t]}),r}},runInContext:function(e){
|
||||
return function(r){return u(t,e(r),d)}}};if(!A)return x(e,r);var N=r,V=[];return P(T,function(t){P(p.aryMethod[t],function(t){var e=N[p.remap[t]||t];e&&V.push([t,x(t,e)])})}),P(K(N),function(t){var e=N[t];if("function"==typeof e){for(var r=V.length;r--;)if(V[r][0]==t)return;e.convert=y(t,e),V.push([t,e])}}),P(V,function(t){N[t[0]]=t[1]}),N.convert=h,W&&(N.placeholder=O),P(K(N),function(t){P(p.realToAlias[t]||[],function(e){N[e]=N[t]})}),N}var p=r(2),l=p.mutate,c=r(3);t.exports=u},function(t,e){e.aliasToReal={
|
||||
each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendWith:"assignInWith",first:"head",__:"placeholder",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",equals:"isEqual",identical:"eq",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",
|
||||
pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",unapply:"rest",unnest:"flatten",useWith:"overArgs",whereEq:"filter",zipObj:"zipObject"},e.aryMethod={1:["attempt","castArray","ceil","create","curry","curryRight","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","methodOf","mixin","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words"],
|
||||
2:["add","after","ary","assign","assignIn","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],
|
||||
3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","getOr","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},e.aryRearg={2:[1,0],3:[2,0,1],
|
||||
4:[3,2,0,1]},e.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findIndex:1,findKey:1,findLast:1,findLastIndex:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},e.iterateeRearg={mapKeys:[1]},e.methodRearg={assignInWith:[1,2,0],assignWith:[1,2,0],getOr:[2,1,0],isEqualWith:[1,2,0],
|
||||
isMatchWith:[2,1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],updateWith:[3,1,2,0],zipWith:[1,2,0]},e.methodSpread={invokeArgs:2,invokeArgsMap:2,partial:1,partialRight:1,without:1},e.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignIn:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsDeep:!0,
|
||||
merge:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},e.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,r=e.aliasToReal,n={};for(var i in r){var a=r[i];t.call(n,a)?n[a].push(i):n[a]=[i]}return n}(),e.remap={curryN:"curry",curryRightN:"curryRight",getOr:"get",invokeArgs:"invoke",invokeArgsMap:"invokeMap",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",restFrom:"rest",
|
||||
spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart"},e.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,runInContext:!0},e.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,without:!0,zip:!0,zipObject:!0}},function(t,e){t.exports={}}])});
|
||||
(function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fp=e():t.fp=e()})(this,function(){return function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){function n(t,e){return i(t,t,e)}var i=r(1);"function"==typeof _&&"function"==typeof _.runInContext&&(_=n(_.runInContext())),
|
||||
t.exports=n},function(t,e,r){function n(t,e){return 2==e?function(e,r){return t.apply(void 0,arguments)}:function(e){return t.apply(void 0,arguments)}}function i(t,e){return 2==e?function(e,r){return t(e,r)}:function(e){return t(e)}}function a(t){for(var e=t?t.length:0,r=Array(e);e--;)r[e]=t[e];return r}function o(t){return function(e){return t({},e)}}function s(t,e){return function(){var r=arguments.length;if(r){for(var n=Array(r);r--;)n[r]=arguments[r];var i=n[0]=e.apply(void 0,n);return t.apply(void 0,n),
|
||||
i}}}function l(t,e,r,f){function d(t,e){if(k.cap){var r=u.iterateeRearg[t];if(r)return W(e,r);var n=!O&&u.iterateeAry[t];if(n)return A(e,n)}return e}function c(t,e,r){return B||k.curry&&r>1?D(e,r):e}function h(t,e,r){if(k.fixed&&(E||!u.skipFixed[t])){var n=u.methodSpread[t],i=n&&n.start;return void 0===i?S(e,r):_(e,i)}return e}function g(t,e,r){return k.rearg&&r>1&&(F||!u.skipRearg[t])?K(e,u.methodRearg[t]||u.aryRearg[r]):e}function y(t,e){e=V(e);for(var r=-1,n=e.length,i=n-1,a=M(Object(t)),o=a;null!=o&&++r<n;){
|
||||
var s=e[r],l=o[s];null!=l&&(o[e[r]]=M(r==i?l:Object(l))),o=o[s]}return a}function m(t){return H.runInContext.convert(t)(void 0)}function v(t,e){var r=u.aliasToReal[t]||t,n=u.remap[r]||r,i=f;return function(t){return l(O?C:L,r,O?C[n]:e,w(w({},i),t))}}function A(t,e){return x(t,function(t){return"function"==typeof t?i(t,e):t})}function W(t,e){return x(t,function(t){var r=e.length;return n(K(i(t,r),e),r)})}function x(t,e){return function(){var r=arguments.length;if(!r)return t();for(var n=Array(r);r--;)n[r]=arguments[r];
|
||||
var i=k.rearg?0:r-1;return n[i]=e(n[i]),t.apply(void 0,n)}}function I(t,e){var r,n=u.aliasToReal[t]||t,i=e,l=G[n];return l?i=l(e):k.immutable&&(u.mutate.array[n]?i=s(e,a):u.mutate.object[n]?i=s(e,o(e)):u.mutate.set[n]&&(i=s(e,y))),z(U,function(t){return z(u.aryMethod[t],function(e){if(n==e){var a=u.methodSpread[n];return r=a&&a.afterRearg?h(n,g(n,i,t),t):g(n,h(n,i,t),t),r=d(n,r),r=c(n,r,t),!1}}),!r}),r||(r=i),r==e&&(r=B?D(r,1):function(){return e.apply(this,arguments)}),r.convert=v(n,e),u.placeholder[n]&&(R=!0,
|
||||
r.placeholder=e.placeholder=j),r}var R,O="function"==typeof e,b=e===Object(e);if(b&&(f=r,r=e,e=void 0),null==r)throw new TypeError;f||(f={});var k={cap:!("cap"in f)||f.cap,curry:!("curry"in f)||f.curry,fixed:!("fixed"in f)||f.fixed,immutable:!("immutable"in f)||f.immutable,rearg:!("rearg"in f)||f.rearg},B="curry"in f&&f.curry,E="fixed"in f&&f.fixed,F="rearg"in f&&f.rearg,j=O?r:p,C=O?r.runInContext():void 0,L=O?r:{ary:t.ary,assign:t.assign,clone:t.clone,curry:t.curry,forEach:t.forEach,isArray:t.isArray,
|
||||
isFunction:t.isFunction,iteratee:t.iteratee,keys:t.keys,rearg:t.rearg,spread:t.spread,toInteger:t.toInteger,toPath:t.toPath},S=L.ary,w=L.assign,M=L.clone,D=L.curry,z=L.forEach,q=L.isArray,P=L.isFunction,T=L.keys,K=L.rearg,_=L.spread,N=L.toInteger,V=L.toPath,U=T(u.aryMethod),G={castArray:function(t){return function(){var e=arguments[0];return q(e)?t(a(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[0],r=arguments[1],n=t(e,r),a=n.length;return k.cap&&"number"==typeof r?(r=r>2?r-2:1,
|
||||
a&&a<=r?n:i(n,r)):n}},mixin:function(t){return function(e){var r=this;if(!P(r))return t(r,Object(e));var n=[];return z(T(e),function(t){P(e[t])&&n.push([t,r.prototype[t]])}),t(r,Object(e)),z(n,function(t){var e=t[1];P(e)?r.prototype[t[0]]=e:delete r.prototype[t[0]]}),r}},nthArg:function(t){return function(e){var r=e<0?1:N(e)+1;return D(t(e),r)}},rearg:function(t){return function(e,r){var n=r?r.length:0;return D(t(e,r),n)}},runInContext:function(e){return function(r){return l(t,e(r),f)}}};if(!b)return I(e,r);
|
||||
var H=r,J=[];return z(U,function(t){z(u.aryMethod[t],function(t){var e=H[u.remap[t]||t];e&&J.push([t,I(t,e)])})}),z(T(H),function(t){var e=H[t];if("function"==typeof e){for(var r=J.length;r--;)if(J[r][0]==t)return;e.convert=v(t,e),J.push([t,e])}}),z(J,function(t){H[t[0]]=t[1]}),H.convert=m,R&&(H.placeholder=j),z(T(H),function(t){z(u.realToAlias[t]||[],function(e){H[e]=H[t]})}),H}var u=r(2),p=r(3);t.exports=l},function(t,e){e.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",
|
||||
extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",
|
||||
indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},
|
||||
e.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],
|
||||
3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],
|
||||
4:["fill","setWith","updateWith"]},e.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},e.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,
|
||||
transform:2},e.iterateeRearg={mapKeys:[1]},e.methodRearg={assignInAllWith:[1,2,0],assignInWith:[1,2,0],assignAllWith:[1,2,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,2,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],
|
||||
sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},e.methodSpread={assignAll:{start:0},assignAllWith:{afterRearg:!0,start:1},assignInAll:{start:0},assignInAllWith:{afterRearg:!0,start:1},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{afterRearg:!0,start:1},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},e.mutate={array:{
|
||||
fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},e.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,r=e.aliasToReal,n={};
|
||||
for(var i in r){var a=r[i];t.call(n,a)?n[a].push(i):n[a]=[i]}return n}(),e.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",
|
||||
mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},e.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},e.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,
|
||||
lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},function(t,e){t.exports={}}])});
|
||||
4840
dist/lodash.js
vendored
4840
dist/lodash.js
vendored
File diff suppressed because it is too large
Load Diff
255
dist/lodash.min.js
vendored
255
dist/lodash.min.js
vendored
@@ -1,125 +1,136 @@
|
||||
/**
|
||||
* @license
|
||||
* lodash 4.11.0 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
||||
* Build: `lodash -o ./dist/lodash.js`
|
||||
* lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
||||
*/
|
||||
;(function(){function t(t,n){return t.set(n[0],n[1]),t}function n(t,n){return t.add(n),t}function r(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}function e(t,n,r,e){for(var u=-1,o=t.length;++u<o;){var i=t[u];n(e,i,r(i),t)}return e}function u(t,n){for(var r=-1,e=t.length;++r<e&&false!==n(t[r],r,t););return t}function o(t,n){for(var r=-1,e=t.length;++r<e;)if(!n(t[r],r,t))return false;
|
||||
return true}function i(t,n){for(var r=-1,e=t.length,u=0,o=[];++r<e;){var i=t[r];n(i,r,t)&&(o[u++]=i)}return o}function f(t,n){return!!t.length&&-1<d(t,n,0)}function c(t,n,r){for(var e=-1,u=t.length;++e<u;)if(r(n,t[e]))return true;return false}function a(t,n){for(var r=-1,e=t.length,u=Array(e);++r<e;)u[r]=n(t[r],r,t);return u}function l(t,n){for(var r=-1,e=n.length,u=t.length;++r<e;)t[u+r]=n[r];return t}function s(t,n,r,e){var u=-1,o=t.length;for(e&&o&&(r=t[++u]);++u<o;)r=n(r,t[u],u,t);return r}function h(t,n,r,e){
|
||||
var u=t.length;for(e&&u&&(r=t[--u]);u--;)r=n(r,t[u],u,t);return r}function p(t,n){for(var r=-1,e=t.length;++r<e;)if(n(t[r],r,t))return true;return false}function _(t,n,r){for(var e=-1,u=t.length;++e<u;){var o=t[e],i=n(o);if(null!=i&&(f===q?i===i:r(i,f)))var f=i,c=o}return c}function v(t,n,r,e){var u;return r(t,function(t,r,o){return n(t,r,o)?(u=e?r:t,false):void 0}),u}function g(t,n,r){for(var e=t.length,u=r?e:-1;r?u--:++u<e;)if(n(t[u],u,t))return u;return-1}function d(t,n,r){if(n!==n)return M(t,r);--r;for(var e=t.length;++r<e;)if(t[r]===n)return r;
|
||||
return-1}function y(t,n,r,e){--r;for(var u=t.length;++r<u;)if(e(t[r],n))return r;return-1}function b(t,n){var r=t?t.length:0;return r?m(t,n)/r:K}function x(t,n,r,e,u){return u(t,function(t,u,o){r=e?(e=false,t):n(r,t,u,o)}),r}function j(t,n){var r=t.length;for(t.sort(n);r--;)t[r]=t[r].c;return t}function m(t,n){for(var r,e=-1,u=t.length;++e<u;){var o=n(t[e]);o!==q&&(r=r===q?o:r+o)}return r}function w(t,n){for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);return e}function A(t,n){return a(n,function(n){return[n,t[n]];
|
||||
})}function O(t){return function(n){return t(n)}}function k(t,n){return a(n,function(n){return t[n]})}function E(t,n){for(var r=-1,e=t.length;++r<e&&-1<d(n,t[r],0););return r}function I(t,n){for(var r=t.length;r--&&-1<d(n,t[r],0););return r}function S(t){return t&&t.Object===Object?t:null}function R(t,n){if(t!==n){var r=null===t,e=t===q,u=t===t,o=null===n,i=n===q,f=n===n;if(t>n&&!o||!u||r&&!i&&f||e&&f)return 1;if(n>t&&!r||!f||o&&!e&&u||i&&u)return-1}return 0}function W(t){return function(n,r){var e;
|
||||
return n===q&&r===q?0:(n!==q&&(e=n),r!==q&&(e=e===q?r:t(e,r)),e)}}function B(t){return Ut[t]}function L(t){return Dt[t]}function C(t){return"\\"+Nt[t]}function M(t,n,r){var e=t.length;for(n+=r?0:-1;r?n--:++n<e;){var u=t[n];if(u!==u)return n}return-1}function z(t){var n=false;if(null!=t&&typeof t.toString!="function")try{n=!!(t+"")}catch(r){}return n}function U(t,n){return t=typeof t=="number"||jt.test(t)?+t:-1,t>-1&&0==t%1&&(null==n?9007199254740991:n)>t}function D(t){for(var n,r=[];!(n=t.next()).done;)r.push(n.value);
|
||||
return r}function $(t){var n=-1,r=Array(t.size);return t.forEach(function(t,e){r[++n]=[e,t]}),r}function F(t,n){for(var r=-1,e=t.length,u=0,o=[];++r<e;){var i=t[r];i!==n&&"__lodash_placeholder__"!==i||(t[r]="__lodash_placeholder__",o[u++]=r)}return o}function N(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=t}),r}function P(t){if(!t||!Bt.test(t))return t.length;for(var n=Rt.lastIndex=0;Rt.test(t);)n++;return n}function Z(t){return $t[t]}function T(S){function jt(t){if(Le(t)&&!oi(t)&&!(t instanceof Et)){
|
||||
if(t instanceof kt)return t;if(xu.call(t,"__wrapped__"))return Xr(t)}return new kt(t)}function Ot(){}function kt(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=q}function Et(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Ut(){}function Dt(t){var n=-1,r=t?t.length:0;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function $t(t){var n=-1,r=t?t.length:0;
|
||||
for(this.__data__=new Dt;++n<r;)this.push(t[n])}function Ft(t,n){var r=t.__data__;return qr(n)?(r=r.__data__,"__lodash_hash_undefined__"===(typeof n=="string"?r.string:r.hash)[n]):r.has(n)}function Nt(t){var n=-1,r=t?t.length:0;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function Tt(t,n){var r=Kt(t,n);return 0>r?false:(r==t.length-1?t.pop():Uu.call(t,r,1),true)}function qt(t,n){var r=Kt(t,n);return 0>r?q:t[r][1]}function Kt(t,n){for(var r=t.length;r--;)if(we(t[r][0],n))return r;return-1}function Gt(t,n,r){
|
||||
var e=Kt(t,n);0>e?t.push([n,r]):t[e][1]=r}function Jt(t,n,r,e){return t===q||we(t,du[r])&&!xu.call(e,r)?n:t}function Qt(t,n,r){(r===q||we(t[n],r))&&(typeof n!="number"||r!==q||n in t)||(t[n]=r)}function Xt(t,n,r){var e=t[n];xu.call(t,n)&&we(e,r)&&(r!==q||n in t)||(t[n]=r)}function tn(t,n,r,e){return _o(t,function(t,u,o){n(e,t,r(t),o)}),e}function nn(t,n){return t&&ir(n,He(n),t)}function rn(t,n){for(var r=-1,e=null==t,u=n.length,o=Array(u);++r<u;)o[r]=e?q:Ge(t,n[r]);return o}function en(t,n,r){return t===t&&(r!==q&&(t=t>r?r:t),
|
||||
n!==q&&(t=n>t?n:t)),t}function un(t,n,r,e,o,i,f){var c;if(e&&(c=i?e(t,o,i,f):e(t)),c!==q)return c;if(!Be(t))return t;if(o=oi(t)){if(c=Ur(t),!n)return or(t,c)}else{var a=Mr(t),l="[object Function]"==a||"[object GeneratorFunction]"==a;if(ii(t))return nr(t,n);if("[object Object]"==a||"[object Arguments]"==a||l&&!i){if(z(t))return i?t:{};if(c=Dr(l?{}:t),!n)return fr(t,nn(c,t))}else{if(!zt[a])return i?t:{};c=$r(t,a,un,n)}}if(f||(f=new Nt),i=f.get(t))return i;if(f.set(t,c),!o)var s=r?dn(t,He,Cr):He(t);return u(s||t,function(u,o){
|
||||
s&&(o=u,u=t[o]),Xt(c,o,un(u,n,r,e,o,t,f))}),c}function on(t){var n=He(t),r=n.length;return function(e){if(null==e)return!r;for(var u=r;u--;){var o=n[u],i=t[o],f=e[o];if(f===q&&!(o in Object(e))||!i(f))return false}return true}}function fn(t){return Be(t)?Cu(t):{}}function cn(t,n,r){if(typeof t!="function")throw new vu("Expected a function");return zu(function(){t.apply(q,r)},n)}function an(t,n,r,e){var u=-1,o=f,i=true,l=t.length,s=[],h=n.length;if(!l)return s;r&&(n=a(n,O(r))),e?(o=c,i=false):n.length>=200&&(o=Ft,
|
||||
i=false,n=new $t(n));t:for(;++u<l;){var p=t[u],_=r?r(p):p;if(i&&_===_){for(var v=h;v--;)if(n[v]===_)continue t;s.push(p)}else o(n,_,e)||s.push(p)}return s}function ln(t,n){var r=true;return _o(t,function(t,e,u){return r=!!n(t,e,u)}),r}function sn(t,n){var r=[];return _o(t,function(t,e,u){n(t,e,u)&&r.push(t)}),r}function hn(t,n,r,e,u){var o=-1,i=t.length;for(r||(r=Nr),u||(u=[]);++o<i;){var f=t[o];n>0&&r(f)?n>1?hn(f,n-1,r,e,u):l(u,f):e||(u[u.length]=f)}return u}function pn(t,n){return t&&go(t,n,He)}function _n(t,n){
|
||||
return t&&yo(t,n,He)}function vn(t,n){return i(n,function(n){return Se(t[n])})}function gn(t,n){n=Tr(n,t)?[n]:Xn(n);for(var r=0,e=n.length;null!=t&&e>r;)t=t[n[r++]];return r&&r==e?t:q}function dn(t,n,r){return n=n(t),oi(t)?n:l(n,r(t))}function yn(t,n){return xu.call(t,n)||typeof t=="object"&&n in t&&null===Fu(Object(t))}function bn(t,n){return n in Object(t)}function xn(t,n,r){for(var e=r?c:f,u=t[0].length,o=t.length,i=o,l=Array(o),s=1/0,h=[];i--;){var p=t[i];i&&n&&(p=a(p,O(n))),s=qu(p.length,s),
|
||||
l[i]=r||!n&&(120>u||120>p.length)?q:new $t(i&&p)}var p=t[0],_=-1,v=l[0];t:for(;++_<u&&s>h.length;){var g=p[_],d=n?n(g):g;if(v?!Ft(v,d):!e(h,d,r)){for(i=o;--i;){var y=l[i];if(y?!Ft(y,d):!e(t[i],d,r))continue t}v&&v.push(d),h.push(g)}}return h}function jn(t,n,r){var e={};return pn(t,function(t,u,o){n(e,r(t),u,o)}),e}function mn(t,n,e){return Tr(n,t)||(n=Xn(n),t=Yr(t,n),n=ee(n)),n=null==t?t:t[n],null==n?q:r(n,t,e)}function wn(t,n,r,e,u){if(t===n)n=true;else if(null==t||null==n||!Be(t)&&!Le(n))n=t!==t&&n!==n;else t:{
|
||||
var o=oi(t),i=oi(n),f="[object Array]",c="[object Array]";o||(f=Mr(t),f="[object Arguments]"==f?"[object Object]":f),i||(c=Mr(n),c="[object Arguments]"==c?"[object Object]":c);var a="[object Object]"==f&&!z(t),i="[object Object]"==c&&!z(n);if((c=f==c)&&!a)u||(u=new Nt),n=o||Fe(t)?Er(t,n,wn,r,e,u):Ir(t,n,f,wn,r,e,u);else{if(!(2&e)&&(o=a&&xu.call(t,"__wrapped__"),f=i&&xu.call(n,"__wrapped__"),o||f)){t=o?t.value():t,n=f?n.value():n,u||(u=new Nt),n=wn(t,n,r,e,u);break t}if(c)n:if(u||(u=new Nt),o=2&e,
|
||||
f=He(t),i=f.length,c=He(n).length,i==c||o){for(a=i;a--;){var l=f[a];if(!(o?l in n:yn(n,l))){n=false;break n}}if(c=u.get(t))n=c==n;else{c=true,u.set(t,n);for(var s=o;++a<i;){var l=f[a],h=t[l],p=n[l];if(r)var _=o?r(p,h,l,n,t,u):r(h,p,l,t,n,u);if(_===q?h!==p&&!wn(h,p,r,e,u):!_){c=false;break}s||(s="constructor"==l)}c&&!s&&(r=t.constructor,e=n.constructor,r!=e&&"constructor"in t&&"constructor"in n&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(c=false)),u["delete"](t),n=c}}else n=false;else n=false;
|
||||
}}return n}function An(t,n,r,e){var u=r.length,o=u,i=!e;if(null==t)return!o;for(t=Object(t);u--;){var f=r[u];if(i&&f[2]?f[1]!==t[f[0]]:!(f[0]in t))return false}for(;++u<o;){var f=r[u],c=f[0],a=t[c],l=f[1];if(i&&f[2]){if(a===q&&!(c in t))return false}else{if(f=new Nt,e)var s=e(a,l,c,t,n,f);if(s===q?!wn(l,a,e,3,f):!s)return false}}return true}function On(t){return typeof t=="function"?t:null==t?iu:typeof t=="object"?oi(t)?Sn(t[0],t[1]):In(t):lu(t)}function kn(t){t=null==t?t:Object(t);var n,r=[];for(n in t)r.push(n);
|
||||
return r}function En(t,n){var r=-1,e=ke(t)?Array(t.length):[];return _o(t,function(t,u,o){e[++r]=n(t,u,o)}),e}function In(t){var n=Wr(t);return 1==n.length&&n[0][2]?Gr(n[0][0],n[0][1]):function(r){return r===t||An(r,t,n)}}function Sn(t,n){return Tr(t)&&n===n&&!Be(n)?Gr(t,n):function(r){var e=Ge(r,t);return e===q&&e===n?Ye(r,t):wn(n,e,q,3)}}function Rn(t,n,r,e,o){if(t!==n){if(!oi(n)&&!Fe(n))var i=Qe(n);u(i||n,function(u,f){if(i&&(f=u,u=n[f]),Be(u)){o||(o=new Nt);var c=f,a=o,l=t[c],s=n[c],h=a.get(s);
|
||||
if(h)Qt(t,c,h);else{var h=e?e(l,s,c+"",t,n,a):q,p=h===q;p&&(h=s,oi(s)||Fe(s)?oi(l)?h=l:Ee(l)?h=or(l):(p=false,h=un(s,true)):ze(s)||Oe(s)?Oe(l)?h=Ve(l):!Be(l)||r&&Se(l)?(p=false,h=un(s,true)):h=l:p=false),a.set(s,h),p&&Rn(h,s,r,e,a),a["delete"](s),Qt(t,c,h)}}else c=e?e(t[f],u,f+"",t,n,o):q,c===q&&(c=u),Qt(t,f,c)})}}function Wn(t,n){var r=t.length;return r?(n+=0>n?r:0,U(n,r)?t[n]:q):void 0}function Bn(t,n,r){var e=-1;return n=a(n.length?n:[iu],O(Rr())),t=En(t,function(t){return{a:a(n,function(n){return n(t)}),b:++e,
|
||||
c:t}}),j(t,function(t,n){var e;t:{e=-1;for(var u=t.a,o=n.a,i=u.length,f=r.length;++e<i;){var c=R(u[e],o[e]);if(c){e=f>e?c*("desc"==r[e]?-1:1):c;break t}}e=t.b-n.b}return e})}function Ln(t,n){return t=Object(t),s(n,function(n,r){return r in t&&(n[r]=t[r]),n},{})}function Cn(t,n){for(var r=-1,e=dn(t,Qe,wo),u=e.length,o={};++r<u;){var i=e[r],f=t[i];n(f,i)&&(o[i]=f)}return o}function Mn(t){return function(n){return null==n?q:n[t]}}function zn(t){return function(n){return gn(n,t)}}function Un(t,n,r,e){
|
||||
var u=e?y:d,o=-1,i=n.length,f=t;for(r&&(f=a(t,O(r)));++o<i;)for(var c=0,l=n[o],l=r?r(l):l;-1<(c=u(f,l,c,e));)f!==t&&Uu.call(f,c,1),Uu.call(t,c,1);return t}function Dn(t,n){for(var r=t?n.length:0,e=r-1;r--;){var u=n[r];if(e==r||u!=o){var o=u;if(U(u))Uu.call(t,u,1);else if(Tr(u,t))delete t[u];else{var u=Xn(u),i=Yr(t,u);null!=i&&delete i[ee(u)]}}}}function $n(t,n){return t+$u(Ku()*(n-t+1))}function Fn(t,n){var r="";if(!t||1>n||n>9007199254740991)return r;do n%2&&(r+=t),(n=$u(n/2))&&(t+=t);while(n);return r;
|
||||
}function Nn(t,n,r,e){n=Tr(n,t)?[n]:Xn(n);for(var u=-1,o=n.length,i=o-1,f=t;null!=f&&++u<o;){var c=n[u];if(Be(f)){var a=r;if(u!=i){var l=f[c],a=e?e(l,c,f):q;a===q&&(a=null==l?U(n[u+1])?[]:{}:l)}Xt(f,c,a)}f=f[c]}return t}function Pn(t,n,r){var e=-1,u=t.length;for(0>n&&(n=-n>u?0:u+n),r=r>u?u:r,0>r&&(r+=u),u=n>r?0:r-n>>>0,n>>>=0,r=Array(u);++e<u;)r[e]=t[e+n];return r}function Zn(t,n){var r;return _o(t,function(t,e,u){return r=n(t,e,u),!r}),!!r}function Tn(t,n,r){var e=0,u=t?t.length:e;if(typeof n=="number"&&n===n&&2147483647>=u){
|
||||
for(;u>e;){var o=e+u>>>1,i=t[o];(r?n>=i:n>i)&&null!==i?e=o+1:u=o}return u}return qn(t,n,iu,r)}function qn(t,n,r,e){n=r(n);for(var u=0,o=t?t.length:0,i=n!==n,f=null===n,c=n===q;o>u;){var a=$u((u+o)/2),l=r(t[a]),s=l!==q,h=l===l;(i?h||e:f?h&&s&&(e||null!=l):c?h&&(e||s):null==l?0:e?n>=l:n>l)?u=a+1:o=a}return qu(o,4294967294)}function Vn(t,n){for(var r=0,e=t.length,u=t[0],o=n?n(u):u,i=o,f=1,c=[u];++r<e;)u=t[r],o=n?n(u):u,we(o,i)||(i=o,c[f++]=u);return c}function Kn(t,n,r){var e=-1,u=f,o=t.length,i=true,a=[],l=a;
|
||||
if(r)i=false,u=c;else if(o<200)l=n?[]:a;else{if(u=n?null:xo(t))return N(u);i=false,u=Ft,l=new $t}t:for(;++e<o;){var s=t[e],h=n?n(s):s;if(i&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue t;n&&l.push(h),a.push(s)}else u(l,h,r)||(l!==a&&l.push(h),a.push(s))}return a}function Gn(t,n,r,e){for(var u=t.length,o=e?u:-1;(e?o--:++o<u)&&n(t[o],o,t););return r?Pn(t,e?0:o,e?o+1:u):Pn(t,e?o+1:0,e?u:o)}function Jn(t,n){var r=t;return r instanceof Et&&(r=r.value()),s(n,function(t,n){return n.func.apply(n.thisArg,l([t],n.args));
|
||||
},r)}function Yn(t,n,r){for(var e=-1,u=t.length;++e<u;)var o=o?l(an(o,t[e],n,r),an(t[e],o,n,r)):t[e];return o&&o.length?Kn(o,n,r):[]}function Hn(t,n,r){for(var e=-1,u=t.length,o=n.length,i={};++e<u;)r(i,t[e],o>e?n[e]:q);return i}function Qn(t){return Ee(t)?t:[]}function Xn(t){return oi(t)?t:Oo(t)}function tr(t,n,r){var e=t.length;return r=r===q?e:r,n||e>r?Pn(t,n,r):t}function nr(t,n){if(n)return t.slice();var r=new t.constructor(t.length);return t.copy(r),r}function rr(t){var n=new t.constructor(t.byteLength);
|
||||
return new Su(n).set(new Su(t)),n}function er(t,n,r,e){var u=-1,o=t.length,i=r.length,f=-1,c=n.length,a=Tu(o-i,0),l=Array(c+a);for(e=!e;++f<c;)l[f]=n[f];for(;++u<i;)(e||o>u)&&(l[r[u]]=t[u]);for(;a--;)l[f++]=t[u++];return l}function ur(t,n,r,e){var u=-1,o=t.length,i=-1,f=r.length,c=-1,a=n.length,l=Tu(o-f,0),s=Array(l+a);for(e=!e;++u<l;)s[u]=t[u];for(l=u;++c<a;)s[l+c]=n[c];for(;++i<f;)(e||o>u)&&(s[l+r[i]]=t[u++]);return s}function or(t,n){var r=-1,e=t.length;for(n||(n=Array(e));++r<e;)n[r]=t[r];return n;
|
||||
}function ir(t,n,r,e){r||(r={});for(var u=-1,o=n.length;++u<o;){var i=n[u],f=e?e(r[i],t[i],i,r,t):t[i];Xt(r,i,f)}return r}function fr(t,n){return ir(t,Cr(t),n)}function cr(t,n){return function(r,u){var o=oi(r)?e:tn,i=n?n():{};return o(r,t,Rr(u),i)}}function ar(t){return je(function(n,r){var e=-1,u=r.length,o=u>1?r[u-1]:q,i=u>2?r[2]:q,o=typeof o=="function"?(u--,o):q;for(i&&Zr(r[0],r[1],i)&&(o=3>u?q:o,u=1),n=Object(n);++e<u;)(i=r[e])&&t(n,i,e,o);return n})}function lr(t,n){return function(r,e){if(null==r)return r;
|
||||
if(!ke(r))return t(r,e);for(var u=r.length,o=n?u:-1,i=Object(r);(n?o--:++o<u)&&false!==e(i[o],o,i););return r}}function sr(t){return function(n,r,e){var u=-1,o=Object(n);e=e(n);for(var i=e.length;i--;){var f=e[t?i:++u];if(false===r(o[f],f,o))break}return n}}function hr(t,n,r){function e(){return(this&&this!==Yt&&this instanceof e?o:t).apply(u?r:this,arguments)}var u=1&n,o=vr(t);return e}function pr(t){return function(n){n=Ke(n);var r=Bt.test(n)?n.match(Rt):q,e=r?r[0]:n.charAt(0);return n=r?tr(r,1).join(""):n.slice(1),
|
||||
e[t]()+n}}function _r(t){return function(n){return s(uu(eu(n).replace(It,"")),t,"")}}function vr(t){return function(){var n=arguments;switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3]);case 5:return new t(n[0],n[1],n[2],n[3],n[4]);case 6:return new t(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new t(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var r=fn(t.prototype),n=t.apply(r,n);return Be(n)?n:r;
|
||||
}}function gr(t,n,e){function u(){for(var i=arguments.length,f=Array(i),c=i,a=Lr(u);c--;)f[c]=arguments[c];return c=3>i&&f[0]!==a&&f[i-1]!==a?[]:F(f,a),i-=c.length,e>i?Ar(t,n,yr,u.placeholder,q,f,c,q,q,e-i):r(this&&this!==Yt&&this instanceof u?o:t,this,f)}var o=vr(t);return u}function dr(t){return je(function(n){n=hn(n,1);var r=n.length,e=r,u=kt.prototype.thru;for(t&&n.reverse();e--;){var o=n[e];if(typeof o!="function")throw new vu("Expected a function");if(u&&!i&&"wrapper"==Sr(o))var i=new kt([],true);
|
||||
}for(e=i?e:r;++e<r;)var o=n[e],u=Sr(o),f="wrapper"==u?jo(o):q,i=f&&Vr(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?i[Sr(f[0])].apply(i,f[3]):1==o.length&&Vr(o)?i[u]():i.thru(o);return function(){var t=arguments,e=t[0];if(i&&1==t.length&&oi(e)&&e.length>=200)return i.plant(e).value();for(var u=0,t=r?n[u].apply(this,t):e;++u<r;)t=n[u].call(this,t);return t}})}function yr(t,n,r,e,u,o,i,f,c,a){function l(){for(var d=arguments.length,y=d,b=Array(d);y--;)b[y]=arguments[y];if(_){var x,j=Lr(l),y=b.length;for(x=0;y--;)b[y]===j&&x++;
|
||||
}if(e&&(b=er(b,e,u,_)),o&&(b=ur(b,o,i,_)),d-=x,_&&a>d)return j=F(b,j),Ar(t,n,yr,l.placeholder,r,b,j,f,c,a-d);if(j=h?r:this,y=p?j[t]:t,d=b.length,f){x=b.length;for(var m=qu(f.length,x),w=or(b);m--;){var A=f[m];b[m]=U(A,x)?w[A]:q}}else v&&d>1&&b.reverse();return s&&d>c&&(b.length=c),this&&this!==Yt&&this instanceof l&&(y=g||vr(y)),y.apply(j,b)}var s=128&n,h=1&n,p=2&n,_=24&n,v=512&n,g=p?q:vr(t);return l}function br(t,n){return function(r,e){return jn(r,t,n(e))}}function xr(t){return je(function(n){return n=1==n.length&&oi(n[0])?a(n[0],O(Rr())):a(hn(n,1,Pr),O(Rr())),
|
||||
je(function(e){var u=this;return t(n,function(t){return r(t,u,e)})})})}function jr(t,n){n=n===q?" ":n+"";var r=n.length;return 2>r?r?Fn(n,t):n:(r=Fn(n,Du(t/P(n))),Bt.test(n)?tr(r.match(Rt),0,t).join(""):r.slice(0,t))}function mr(t,n,e,u){function o(){for(var n=-1,c=arguments.length,a=-1,l=u.length,s=Array(l+c),h=this&&this!==Yt&&this instanceof o?f:t;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++n];return r(h,i?e:this,s)}var i=1&n,f=vr(t);return o}function wr(t){return function(n,r,e){e&&typeof e!="number"&&Zr(n,r,e)&&(r=e=q),
|
||||
n=qe(n),n=n===n?n:0,r===q?(r=n,n=0):r=qe(r)||0,e=e===q?r>n?1:-1:qe(e)||0;var u=-1;r=Tu(Du((r-n)/(e||1)),0);for(var o=Array(r);r--;)o[t?r:++u]=n,n+=e;return o}}function Ar(t,n,r,e,u,o,i,f,c,a){var l=8&n,s=l?i:q;i=l?q:i;var h=l?o:q;return o=l?q:o,n=(n|(l?32:64))&~(l?64:32),4&n||(n&=-4),n=[t,n,u,h,s,o,i,f,c,a],r=r.apply(q,n),Vr(t)&&Ao(r,n),r.placeholder=e,r}function Or(t){var n=pu[t];return function(t,r){if(t=qe(t),r=Ze(r)){var e=(Ke(t)+"e").split("e"),e=n(e[0]+"e"+(+e[1]+r)),e=(Ke(e)+"e").split("e");
|
||||
return+(e[0]+"e"+(+e[1]-r))}return n(t)}}function kr(t,n,r,e,u,o,i,f){var c=2&n;if(!c&&typeof t!="function")throw new vu("Expected a function");var a=e?e.length:0;if(a||(n&=-97,e=u=q),i=i===q?i:Tu(Ze(i),0),f=f===q?f:Ze(f),a-=u?u.length:0,64&n){var l=e,s=u;e=u=q}var h=c?q:jo(t);return o=[t,n,r,e,u,l,s,o,i,f],h&&(r=o[1],t=h[1],n=r|t,e=128==t&&8==r||128==t&&256==r&&h[8]>=o[7].length||384==t&&h[8]>=h[7].length&&8==r,131>n||e)&&(1&t&&(o[2]=h[2],n|=1&r?0:4),(r=h[3])&&(e=o[3],o[3]=e?er(e,r,h[4]):r,o[4]=e?F(o[3],"__lodash_placeholder__"):h[4]),
|
||||
(r=h[5])&&(e=o[5],o[5]=e?ur(e,r,h[6]):r,o[6]=e?F(o[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(o[7]=r),128&t&&(o[8]=null==o[8]?h[8]:qu(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=n),t=o[0],n=o[1],r=o[2],e=o[3],u=o[4],f=o[9]=null==o[9]?c?0:t.length:Tu(o[9]-a,0),!f&&24&n&&(n&=-25),(h?bo:Ao)(n&&1!=n?8==n||16==n?gr(t,n,f):32!=n&&33!=n||u.length?yr.apply(q,o):mr(t,n,r,e):hr(t,n,r),o)}function Er(t,n,r,e,u,o){var i=-1,f=2&u,c=1&u,a=t.length,l=n.length;if(!(a==l||f&&l>a))return false;if(l=o.get(t))return l==n;
|
||||
for(l=true,o.set(t,n);++i<a;){var s=t[i],h=n[i];if(e)var _=f?e(h,s,i,n,t,o):e(s,h,i,t,n,o);if(_!==q){if(_)continue;l=false;break}if(c){if(!p(n,function(t){return s===t||r(s,t,e,u,o)})){l=false;break}}else if(s!==h&&!r(s,h,e,u,o)){l=false;break}}return o["delete"](t),l}function Ir(t,n,r,e,u,o,i){switch(r){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!e(new Su(t),new Su(n)))break;return true;
|
||||
case"[object Boolean]":case"[object Date]":return+t==+n;case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object Number]":return t!=+t?n!=+n:t==+n;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var f=$;case"[object Set]":if(f||(f=N),t.size!=n.size&&!(2&o))break;return(r=i.get(t))?r==n:(o|=1,i.set(t,n),Er(f(t),f(n),e,u,o,i));case"[object Symbol]":if(ho)return ho.call(t)==ho.call(n)}return false}function Sr(t){for(var n=t.name+"",r=oo[n],e=xu.call(oo,n)?r.length:0;e--;){
|
||||
var u=r[e],o=u.func;if(null==o||o==t)return u.name}return n}function Rr(){var t=jt.iteratee||fu,t=t===fu?On:t;return arguments.length?t(arguments[0],arguments[1]):t}function Wr(t){t=Xe(t);for(var n=t.length;n--;){var r=t[n][1];t[n][2]=r===r&&!Be(r)}return t}function Br(t,n){var r=t[n];return Ce(r)?r:q}function Lr(t){return(xu.call(jt,"placeholder")?jt:t).placeholder}function Cr(t){return Bu(Object(t))}function Mr(t){return wu.call(t)}function zr(t,n,r){n=Tr(n,t)?[n]:Xn(n);for(var e,u=-1,o=n.length;++u<o;){
|
||||
var i=n[u];if(!(e=null!=t&&r(t,i)))break;t=t[i]}return e?e:(o=t?t.length:0,!!o&&We(o)&&U(i,o)&&(oi(t)||De(t)||Oe(t)))}function Ur(t){var n=t.length,r=t.constructor(n);return n&&"string"==typeof t[0]&&xu.call(t,"index")&&(r.index=t.index,r.input=t.input),r}function Dr(t){return typeof t.constructor!="function"||Kr(t)?{}:fn(Fu(Object(t)))}function $r(r,e,u,o){var i=r.constructor;switch(e){case"[object ArrayBuffer]":return rr(r);case"[object Boolean]":case"[object Date]":return new i(+r);case"[object DataView]":
|
||||
return e=o?rr(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return e=o?rr(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.length);case"[object Map]":return e=o?u($(r),true):$(r),s(e,t,new r.constructor);case"[object Number]":case"[object String]":
|
||||
return new i(r);case"[object RegExp]":return e=new r.constructor(r.source,vt.exec(r)),e.lastIndex=r.lastIndex,e;case"[object Set]":return e=o?u(N(r),true):N(r),s(e,n,new r.constructor);case"[object Symbol]":return ho?Object(ho.call(r)):{}}}function Fr(t){var n=t?t.length:q;return We(n)&&(oi(t)||De(t)||Oe(t))?w(n,String):null}function Nr(t){return Ee(t)&&(oi(t)||Oe(t))}function Pr(t){return oi(t)&&!(2==t.length&&!Se(t[0]))}function Zr(t,n,r){if(!Be(r))return false;var e=typeof n;return("number"==e?ke(r)&&U(n,r.length):"string"==e&&n in r)?we(r[n],t):false;
|
||||
}function Tr(t,n){var r=typeof t;return"number"==r||"symbol"==r?true:!oi(t)&&($e(t)||ot.test(t)||!ut.test(t)||null!=n&&t in Object(n))}function qr(t){var n=typeof t;return"number"==n||"boolean"==n||"string"==n&&"__proto__"!=t||null==t}function Vr(t){var n=Sr(t),r=jt[n];return typeof r=="function"&&n in Et.prototype?t===r?true:(n=jo(r),!!n&&t===n[0]):false}function Kr(t){var n=t&&t.constructor;return t===(typeof n=="function"&&n.prototype||du)}function Gr(t,n){return function(r){return null==r?false:r[t]===n&&(n!==q||t in Object(r));
|
||||
}}function Jr(t,n,r,e,u,o){return Be(t)&&Be(n)&&Rn(t,n,q,Jr,o.set(n,t)),t}function Yr(t,n){return 1==n.length?t:gn(t,Pn(n,0,-1))}function Hr(t){return typeof t=="string"||$e(t)?t:t+""}function Qr(t){if(null!=t){try{return bu.call(t)}catch(n){}return t+""}return""}function Xr(t){if(t instanceof Et)return t.clone();var n=new kt(t.__wrapped__,t.__chain__);return n.__actions__=or(t.__actions__),n.__index__=t.__index__,n.__values__=t.__values__,n}function te(t,n,r){var e=t?t.length:0;return e?(n=r||n===q?1:Ze(n),
|
||||
Pn(t,0>n?0:n,e)):[]}function ne(t,n,r){var e=t?t.length:0;return e?(n=r||n===q?1:Ze(n),n=e-n,Pn(t,0,0>n?0:n)):[]}function re(t){return t&&t.length?t[0]:q}function ee(t){var n=t?t.length:0;return n?t[n-1]:q}function ue(t,n){return t&&t.length&&n&&n.length?Un(t,n):t}function oe(t){return t?Ju.call(t):t}function ie(t){if(!t||!t.length)return[];var n=0;return t=i(t,function(t){return Ee(t)?(n=Tu(t.length,n),true):void 0}),w(n,function(n){return a(t,Mn(n))})}function fe(t,n){if(!t||!t.length)return[];var e=ie(t);
|
||||
return null==n?e:a(e,function(t){return r(n,q,t)})}function ce(t){return t=jt(t),t.__chain__=true,t}function ae(t,n){return n(t)}function le(){return this}function se(t,n){return typeof n=="function"&&oi(t)?u(t,n):_o(t,Rr(n))}function he(t,n){var r;if(typeof n=="function"&&oi(t)){for(r=t.length;r--&&false!==n(t[r],r,t););r=t}else r=vo(t,Rr(n));return r}function pe(t,n){return(oi(t)?a:En)(t,Rr(n,3))}function _e(t,n,r){var e=-1,u=Pe(t),o=u.length,i=o-1;for(n=(r?Zr(t,n,r):n===q)?1:en(Ze(n),0,o);++e<n;)t=$n(e,i),
|
||||
r=u[t],u[t]=u[e],u[e]=r;return u.length=n,u}function ve(t,n,r){return n=r?q:n,n=t&&null==n?t.length:n,kr(t,128,q,q,q,q,n)}function ge(t,n){var r;if(typeof n!="function")throw new vu("Expected a function");return t=Ze(t),function(){return 0<--t&&(r=n.apply(this,arguments)),1>=t&&(n=q),r}}function de(t,n,r){return n=r?q:n,t=kr(t,8,q,q,q,q,q,n),t.placeholder=de.placeholder,t}function ye(t,n,r){return n=r?q:n,t=kr(t,16,q,q,q,q,q,n),t.placeholder=ye.placeholder,t}function be(t,n,r){function e(n){var r=c,e=a;
|
||||
return c=a=q,p=n,l=t.apply(e,r)}function u(t){var r=t-h;return t-=p,!h||r>=n||0>r||false!==v&&t>=v}function o(){var t=Yo();if(u(t))return i(t);var r;r=t-p,t=n-(t-h),r=false===v?t:qu(t,v-r),s=zu(o,r)}function i(t){return Ru(s),s=q,g&&c?e(t):(c=a=q,l)}function f(){var t=Yo(),r=u(t);return c=arguments,a=this,h=t,r?s===q?(p=t=h,s=zu(o,n),_?e(t):l):(Ru(s),s=zu(o,n),e(h)):(s===q&&(s=zu(o,n)),l)}var c,a,l,s,h=0,p=0,_=false,v=false,g=true;if(typeof t!="function")throw new vu("Expected a function");return n=qe(n)||0,Be(r)&&(_=!!r.leading,
|
||||
v="maxWait"in r&&Tu(qe(r.maxWait)||0,n),g="trailing"in r?!!r.trailing:g),f.cancel=function(){s!==q&&Ru(s),h=p=0,c=a=s=q},f.flush=function(){return s===q?l:i(Yo())},f}function xe(t,n){function r(){var e=arguments,u=n?n.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=t.apply(this,e),r.cache=o.set(u,e),e)}if(typeof t!="function"||n&&typeof n!="function")throw new vu("Expected a function");return r.cache=new(xe.Cache||Dt),r}function je(t,n){if(typeof t!="function")throw new vu("Expected a function");
|
||||
return n=Tu(n===q?t.length-1:Ze(n),0),function(){for(var e=arguments,u=-1,o=Tu(e.length-n,0),i=Array(o);++u<o;)i[u]=e[n+u];switch(n){case 0:return t.call(this,i);case 1:return t.call(this,e[0],i);case 2:return t.call(this,e[0],e[1],i)}for(o=Array(n+1),u=-1;++u<n;)o[u]=e[u];return o[n]=i,r(t,this,o)}}function me(){if(!arguments.length)return[];var t=arguments[0];return oi(t)?t:[t]}function we(t,n){return t===n||t!==t&&n!==n}function Ae(t,n){return t>n}function Oe(t){return Ee(t)&&xu.call(t,"callee")&&(!Mu.call(t,"callee")||"[object Arguments]"==wu.call(t));
|
||||
}function ke(t){return null!=t&&We(mo(t))&&!Se(t)}function Ee(t){return Le(t)&&ke(t)}function Ie(t){return Le(t)?"[object Error]"==wu.call(t)||typeof t.message=="string"&&typeof t.name=="string":false}function Se(t){return t=Be(t)?wu.call(t):"","[object Function]"==t||"[object GeneratorFunction]"==t}function Re(t){return typeof t=="number"&&t==Ze(t)}function We(t){return typeof t=="number"&&t>-1&&0==t%1&&9007199254740991>=t}function Be(t){var n=typeof t;return!!t&&("object"==n||"function"==n)}function Le(t){
|
||||
return!!t&&typeof t=="object"}function Ce(t){return Be(t)?(Se(t)||z(t)?Ou:bt).test(Qr(t)):false}function Me(t){return typeof t=="number"||Le(t)&&"[object Number]"==wu.call(t)}function ze(t){return!Le(t)||"[object Object]"!=wu.call(t)||z(t)?false:(t=Fu(Object(t)),null===t?true:(t=xu.call(t,"constructor")&&t.constructor,typeof t=="function"&&t instanceof t&&bu.call(t)==mu))}function Ue(t){return Be(t)&&"[object RegExp]"==wu.call(t)}function De(t){return typeof t=="string"||!oi(t)&&Le(t)&&"[object String]"==wu.call(t);
|
||||
}function $e(t){return typeof t=="symbol"||Le(t)&&"[object Symbol]"==wu.call(t)}function Fe(t){return Le(t)&&We(t.length)&&!!Mt[wu.call(t)]}function Ne(t,n){return n>t}function Pe(t){if(!t)return[];if(ke(t))return De(t)?t.match(Rt):or(t);if(Lu&&t[Lu])return D(t[Lu]());var n=Mr(t);return("[object Map]"==n?$:"[object Set]"==n?N:nu)(t)}function Ze(t){if(!t)return 0===t?t:0;if(t=qe(t),t===V||t===-V)return 1.7976931348623157e308*(0>t?-1:1);var n=t%1;return t===t?n?t-n:t:0}function Te(t){return t?en(Ze(t),0,4294967295):0;
|
||||
}function qe(t){if(typeof t=="number")return t;if($e(t))return K;if(Be(t)&&(t=Se(t.valueOf)?t.valueOf():t,t=Be(t)?t+"":t),typeof t!="string")return 0===t?t:+t;t=t.replace(at,"");var n=yt.test(t);return n||xt.test(t)?Zt(t.slice(2),n?2:8):dt.test(t)?K:+t}function Ve(t){return ir(t,Qe(t))}function Ke(t){if(typeof t=="string")return t;if(null==t)return"";if($e(t))return po?po.call(t):"";var n=t+"";return"0"==n&&1/t==-V?"-0":n}function Ge(t,n,r){return t=null==t?q:gn(t,n),t===q?r:t}function Je(t,n){return null!=t&&zr(t,n,yn);
|
||||
}function Ye(t,n){return null!=t&&zr(t,n,bn)}function He(t){var n=Kr(t);if(!n&&!ke(t))return Zu(Object(t));var r,e=Fr(t),u=!!e,e=e||[],o=e.length;for(r in t)!yn(t,r)||u&&("length"==r||U(r,o))||n&&"constructor"==r||e.push(r);return e}function Qe(t){for(var n=-1,r=Kr(t),e=kn(t),u=e.length,o=Fr(t),i=!!o,o=o||[],f=o.length;++n<u;){var c=e[n];i&&("length"==c||U(c,f))||"constructor"==c&&(r||!xu.call(t,c))||o.push(c)}return o}function Xe(t){return A(t,He(t))}function tu(t){return A(t,Qe(t))}function nu(t){
|
||||
return t?k(t,He(t)):[]}function ru(t){return Ii(Ke(t).toLowerCase())}function eu(t){return(t=Ke(t))&&t.replace(mt,B).replace(St,"")}function uu(t,n,r){return t=Ke(t),n=r?q:n,n===q&&(n=Lt.test(t)?Wt:ht),t.match(n)||[]}function ou(t){return function(){return t}}function iu(t){return t}function fu(t){return On(typeof t=="function"?t:un(t,true))}function cu(t,n,r){var e=He(n),o=vn(n,e);null!=r||Be(n)&&(o.length||!e.length)||(r=n,n=t,t=this,o=vn(n,He(n)));var i=Be(r)&&"chain"in r?r.chain:true,f=Se(t);return u(o,function(r){
|
||||
var e=n[r];t[r]=e,f&&(t.prototype[r]=function(){var n=this.__chain__;if(i||n){var r=t(this.__wrapped__);return(r.__actions__=or(this.__actions__)).push({func:e,args:arguments,thisArg:t}),r.__chain__=n,r}return e.apply(t,l([this.value()],arguments))})}),t}function au(){}function lu(t){return Tr(t)?Mn(t):zn(t)}S=S?Ht.defaults({},S,Ht.pick(Yt,Ct)):Yt;var su=S.Date,hu=S.Error,pu=S.Math,_u=S.RegExp,vu=S.TypeError,gu=S.Array.prototype,du=S.Object.prototype,yu=S.String.prototype,bu=S.Function.prototype.toString,xu=du.hasOwnProperty,ju=0,mu=bu.call(Object),wu=du.toString,Au=Yt._,Ou=_u("^"+bu.call(xu).replace(ft,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ku=Vt?S.Buffer:q,Eu=S.Reflect,Iu=S.Symbol,Su=S.Uint8Array,Ru=S.clearTimeout,Wu=Eu?Eu.f:q,Bu=Object.getOwnPropertySymbols,Lu=typeof(Lu=Iu&&Iu.iterator)=="symbol"?Lu:q,Cu=Object.create,Mu=du.propertyIsEnumerable,zu=S.setTimeout,Uu=gu.splice,Du=pu.ceil,$u=pu.floor,Fu=Object.getPrototypeOf,Nu=S.isFinite,Pu=gu.join,Zu=Object.keys,Tu=pu.max,qu=pu.min,Vu=S.parseInt,Ku=pu.random,Gu=yu.replace,Ju=gu.reverse,Yu=yu.split,Hu=Br(S,"DataView"),Qu=Br(S,"Map"),Xu=Br(S,"Promise"),to=Br(S,"Set"),no=Br(S,"WeakMap"),ro=Br(Object,"create"),eo=no&&new no,uo=!Mu.call({
|
||||
valueOf:1},"valueOf"),oo={},io=Qr(Hu),fo=Qr(Qu),co=Qr(Xu),ao=Qr(to),lo=Qr(no),so=Iu?Iu.prototype:q,ho=so?so.valueOf:q,po=so?so.toString:q;jt.templateSettings={escape:nt,evaluate:rt,interpolate:et,variable:"",imports:{_:jt}},jt.prototype=Ot.prototype,jt.prototype.constructor=jt,kt.prototype=fn(Ot.prototype),kt.prototype.constructor=kt,Et.prototype=fn(Ot.prototype),Et.prototype.constructor=Et,Ut.prototype=ro?ro(null):du,Dt.prototype.clear=function(){this.__data__={hash:new Ut,map:Qu?new Qu:[],string:new Ut
|
||||
}},Dt.prototype["delete"]=function(t){var n=this.__data__;return qr(t)?(n=typeof t=="string"?n.string:n.hash,t=(ro?n[t]!==q:xu.call(n,t))&&delete n[t]):t=Qu?n.map["delete"](t):Tt(n.map,t),t},Dt.prototype.get=function(t){var n=this.__data__;return qr(t)?(n=typeof t=="string"?n.string:n.hash,ro?(t=n[t],t="__lodash_hash_undefined__"===t?q:t):t=xu.call(n,t)?n[t]:q):t=Qu?n.map.get(t):qt(n.map,t),t},Dt.prototype.has=function(t){var n=this.__data__;return qr(t)?(n=typeof t=="string"?n.string:n.hash,t=ro?n[t]!==q:xu.call(n,t)):t=Qu?n.map.has(t):-1<Kt(n.map,t),
|
||||
t},Dt.prototype.set=function(t,n){var r=this.__data__;return qr(t)?(typeof t=="string"?r.string:r.hash)[t]=ro&&n===q?"__lodash_hash_undefined__":n:Qu?r.map.set(t,n):Gt(r.map,t,n),this},$t.prototype.push=function(t){var n=this.__data__;qr(t)?(n=n.__data__,(typeof t=="string"?n.string:n.hash)[t]="__lodash_hash_undefined__"):n.set(t,"__lodash_hash_undefined__")},Nt.prototype.clear=function(){this.__data__={array:[],map:null}},Nt.prototype["delete"]=function(t){var n=this.__data__,r=n.array;return r?Tt(r,t):n.map["delete"](t);
|
||||
},Nt.prototype.get=function(t){var n=this.__data__,r=n.array;return r?qt(r,t):n.map.get(t)},Nt.prototype.has=function(t){var n=this.__data__,r=n.array;return r?-1<Kt(r,t):n.map.has(t)},Nt.prototype.set=function(t,n){var r=this.__data__,e=r.array;return e&&(199>e.length?Gt(e,t,n):(r.array=null,r.map=new Dt(e))),(r=r.map)&&r.set(t,n),this};var _o=lr(pn),vo=lr(_n,true),go=sr(),yo=sr(true);Wu&&!Mu.call({valueOf:1},"valueOf")&&(kn=function(t){return D(Wu(t))});var bo=eo?function(t,n){return eo.set(t,n),t}:iu,xo=to&&2===new to([1,2]).size?function(t){
|
||||
return new to(t)}:au,jo=eo?function(t){return eo.get(t)}:au,mo=Mn("length");Bu||(Cr=function(){return[]});var wo=Bu?function(t){for(var n=[];t;)l(n,Cr(t)),t=Fu(Object(t));return n}:Cr;(Hu&&"[object DataView]"!=Mr(new Hu(new ArrayBuffer(1)))||Qu&&"[object Map]"!=Mr(new Qu)||Xu&&"[object Promise]"!=Mr(Xu.resolve())||to&&"[object Set]"!=Mr(new to)||no&&"[object WeakMap]"!=Mr(new no))&&(Mr=function(t){var n=wu.call(t);if(t=(t="[object Object]"==n?t.constructor:q)?Qr(t):q)switch(t){case io:return"[object DataView]";
|
||||
case fo:return"[object Map]";case co:return"[object Promise]";case ao:return"[object Set]";case lo:return"[object WeakMap]"}return n});var Ao=function(){var t=0,n=0;return function(r,e){var u=Yo(),o=16-(u-n);if(n=u,o>0){if(150<=++t)return r}else t=0;return bo(r,e)}}(),Oo=xe(function(t){var n=[];return Ke(t).replace(it,function(t,r,e,u){n.push(e?u.replace(pt,"$1"):r||t)}),n}),ko=je(function(t,n){return Ee(t)?an(t,hn(n,1,Ee,true)):[]}),Eo=je(function(t,n){var r=ee(n);return Ee(r)&&(r=q),Ee(t)?an(t,hn(n,1,Ee,true),Rr(r)):[];
|
||||
}),Io=je(function(t,n){var r=ee(n);return Ee(r)&&(r=q),Ee(t)?an(t,hn(n,1,Ee,true),q,r):[]}),So=je(function(t){var n=a(t,Qn);return n.length&&n[0]===t[0]?xn(n):[]}),Ro=je(function(t){var n=ee(t),r=a(t,Qn);return n===ee(r)?n=q:r.pop(),r.length&&r[0]===t[0]?xn(r,Rr(n)):[]}),Wo=je(function(t){var n=ee(t),r=a(t,Qn);return n===ee(r)?n=q:r.pop(),r.length&&r[0]===t[0]?xn(r,q,n):[]}),Bo=je(ue),Lo=je(function(t,n){n=a(hn(n,1),String);var r=rn(t,n);return Dn(t,n.sort(R)),r}),Co=je(function(t){return Kn(hn(t,1,Ee,true));
|
||||
}),Mo=je(function(t){var n=ee(t);return Ee(n)&&(n=q),Kn(hn(t,1,Ee,true),Rr(n))}),zo=je(function(t){var n=ee(t);return Ee(n)&&(n=q),Kn(hn(t,1,Ee,true),q,n)}),Uo=je(function(t,n){return Ee(t)?an(t,n):[]}),Do=je(function(t){return Yn(i(t,Ee))}),$o=je(function(t){var n=ee(t);return Ee(n)&&(n=q),Yn(i(t,Ee),Rr(n))}),Fo=je(function(t){var n=ee(t);return Ee(n)&&(n=q),Yn(i(t,Ee),q,n)}),No=je(ie),Po=je(function(t){var n=t.length,n=n>1?t[n-1]:q,n=typeof n=="function"?(t.pop(),n):q;return fe(t,n)}),Zo=je(function(t){
|
||||
function n(n){return rn(n,t)}t=hn(t,1);var r=t.length,e=r?t[0]:0,u=this.__wrapped__;return 1>=r&&!this.__actions__.length&&u instanceof Et&&U(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:ae,args:[n],thisArg:q}),new kt(u,this.__chain__).thru(function(t){return r&&!t.length&&t.push(q),t})):this.thru(n)}),To=cr(function(t,n,r){xu.call(t,r)?++t[r]:t[r]=1}),qo=cr(function(t,n,r){xu.call(t,r)?t[r].push(n):t[r]=[n]}),Vo=je(function(t,n,e){var u=-1,o=typeof n=="function",i=Tr(n),f=ke(t)?Array(t.length):[];
|
||||
return _o(t,function(t){var c=o?n:i&&null!=t?t[n]:q;f[++u]=c?r(c,t,e):mn(t,n,e)}),f}),Ko=cr(function(t,n,r){t[r]=n}),Go=cr(function(t,n,r){t[r?0:1].push(n)},function(){return[[],[]]}),Jo=je(function(t,n){if(null==t)return[];var r=n.length;return r>1&&Zr(t,n[0],n[1])?n=[]:r>2&&Zr(n[0],n[1],n[2])&&(n=[n[0]]),n=1==n.length&&oi(n[0])?n[0]:hn(n,1,Pr),Bn(t,n,[])}),Yo=su.now,Ho=je(function(t,n,r){var e=1;if(r.length)var u=F(r,Lr(Ho)),e=32|e;return kr(t,e,n,r,u)}),Qo=je(function(t,n,r){var e=3;if(r.length)var u=F(r,Lr(Qo)),e=32|e;
|
||||
return kr(n,e,t,r,u)}),Xo=je(function(t,n){return cn(t,1,n)}),ti=je(function(t,n,r){return cn(t,qe(n)||0,r)});xe.Cache=Dt;var ni=je(function(t,n){n=1==n.length&&oi(n[0])?a(n[0],O(Rr())):a(hn(n,1,Pr),O(Rr()));var e=n.length;return je(function(u){for(var o=-1,i=qu(u.length,e);++o<i;)u[o]=n[o].call(this,u[o]);return r(t,this,u)})}),ri=je(function(t,n){var r=F(n,Lr(ri));return kr(t,32,q,n,r)}),ei=je(function(t,n){var r=F(n,Lr(ei));return kr(t,64,q,n,r)}),ui=je(function(t,n){return kr(t,256,q,q,q,hn(n,1));
|
||||
}),oi=Array.isArray,ii=ku?function(t){return t instanceof ku}:ou(false),fi=ar(function(t,n){if(uo||Kr(n)||ke(n))ir(n,He(n),t);else for(var r in n)xu.call(n,r)&&Xt(t,r,n[r])}),ci=ar(function(t,n){if(uo||Kr(n)||ke(n))ir(n,Qe(n),t);else for(var r in n)Xt(t,r,n[r])}),ai=ar(function(t,n,r,e){ir(n,Qe(n),t,e)}),li=ar(function(t,n,r,e){ir(n,He(n),t,e)}),si=je(function(t,n){return rn(t,hn(n,1))}),hi=je(function(t){return t.push(q,Jt),r(ai,q,t)}),pi=je(function(t){return t.push(q,Jr),r(yi,q,t)}),_i=br(function(t,n,r){
|
||||
t[n]=r},ou(iu)),vi=br(function(t,n,r){xu.call(t,n)?t[n].push(r):t[n]=[r]},Rr),gi=je(mn),di=ar(function(t,n,r){Rn(t,n,r)}),yi=ar(function(t,n,r,e){Rn(t,n,r,e)}),bi=je(function(t,n){return null==t?{}:(n=a(hn(n,1),Hr),Ln(t,an(dn(t,Qe,wo),n)))}),xi=je(function(t,n){return null==t?{}:Ln(t,hn(n,1))}),ji=_r(function(t,n,r){return n=n.toLowerCase(),t+(r?ru(n):n)}),mi=_r(function(t,n,r){return t+(r?"-":"")+n.toLowerCase()}),wi=_r(function(t,n,r){return t+(r?" ":"")+n.toLowerCase()}),Ai=pr("toLowerCase"),Oi=_r(function(t,n,r){
|
||||
return t+(r?"_":"")+n.toLowerCase()}),ki=_r(function(t,n,r){return t+(r?" ":"")+Ii(n)}),Ei=_r(function(t,n,r){return t+(r?" ":"")+n.toUpperCase()}),Ii=pr("toUpperCase"),Si=je(function(t,n){try{return r(t,q,n)}catch(e){return Ie(e)?e:new hu(e)}}),Ri=je(function(t,n){return u(hn(n,1),function(n){t[n]=Ho(t[n],t)}),t}),Wi=dr(),Bi=dr(true),Li=je(function(t,n){return function(r){return mn(r,t,n)}}),Ci=je(function(t,n){return function(r){return mn(t,r,n)}}),Mi=xr(a),zi=xr(o),Ui=xr(p),Di=wr(),$i=wr(true),Fi=W(function(t,n){
|
||||
return t+n}),Ni=Or("ceil"),Pi=W(function(t,n){return t/n}),Zi=Or("floor"),Ti=W(function(t,n){return t*n}),qi=Or("round"),Vi=W(function(t,n){return t-n});return jt.after=function(t,n){if(typeof n!="function")throw new vu("Expected a function");return t=Ze(t),function(){return 1>--t?n.apply(this,arguments):void 0}},jt.ary=ve,jt.assign=fi,jt.assignIn=ci,jt.assignInWith=ai,jt.assignWith=li,jt.at=si,jt.before=ge,jt.bind=Ho,jt.bindAll=Ri,jt.bindKey=Qo,jt.castArray=me,jt.chain=ce,jt.chunk=function(t,n,r){
|
||||
if(n=(r?Zr(t,n,r):n===q)?1:Tu(Ze(n),0),r=t?t.length:0,!r||1>n)return[];for(var e=0,u=0,o=Array(Du(r/n));r>e;)o[u++]=Pn(t,e,e+=n);return o},jt.compact=function(t){for(var n=-1,r=t?t.length:0,e=0,u=[];++n<r;){var o=t[n];o&&(u[e++]=o)}return u},jt.concat=function(){var t=arguments.length,n=me(arguments[0]);if(2>t)return t?or(n):[];for(var r=Array(t-1);t--;)r[t-1]=arguments[t];for(var t=hn(r,1),r=-1,e=n.length,u=-1,o=t.length,i=Array(e+o);++r<e;)i[r]=n[r];for(;++u<o;)i[r++]=t[u];return i},jt.cond=function(t){
|
||||
var n=t?t.length:0,e=Rr();return t=n?a(t,function(t){if("function"!=typeof t[1])throw new vu("Expected a function");return[e(t[0]),t[1]]}):[],je(function(e){for(var u=-1;++u<n;){var o=t[u];if(r(o[0],this,e))return r(o[1],this,e)}})},jt.conforms=function(t){return on(un(t,true))},jt.constant=ou,jt.countBy=To,jt.create=function(t,n){var r=fn(t);return n?nn(r,n):r},jt.curry=de,jt.curryRight=ye,jt.debounce=be,jt.defaults=hi,jt.defaultsDeep=pi,jt.defer=Xo,jt.delay=ti,jt.difference=ko,jt.differenceBy=Eo,
|
||||
jt.differenceWith=Io,jt.drop=te,jt.dropRight=ne,jt.dropRightWhile=function(t,n){return t&&t.length?Gn(t,Rr(n,3),true,true):[]},jt.dropWhile=function(t,n){return t&&t.length?Gn(t,Rr(n,3),true):[]},jt.fill=function(t,n,r,e){var u=t?t.length:0;if(!u)return[];for(r&&typeof r!="number"&&Zr(t,n,r)&&(r=0,e=u),u=t.length,r=Ze(r),0>r&&(r=-r>u?0:u+r),e=e===q||e>u?u:Ze(e),0>e&&(e+=u),e=r>e?0:Te(e);e>r;)t[r++]=n;return t},jt.filter=function(t,n){return(oi(t)?i:sn)(t,Rr(n,3))},jt.flatMap=function(t,n){return hn(pe(t,n),1);
|
||||
},jt.flatMapDeep=function(t,n){return hn(pe(t,n),V)},jt.flatMapDepth=function(t,n,r){return r=r===q?1:Ze(r),hn(pe(t,n),r)},jt.flatten=function(t){return t&&t.length?hn(t,1):[]},jt.flattenDeep=function(t){return t&&t.length?hn(t,V):[]},jt.flattenDepth=function(t,n){return t&&t.length?(n=n===q?1:Ze(n),hn(t,n)):[]},jt.flip=function(t){return kr(t,512)},jt.flow=Wi,jt.flowRight=Bi,jt.fromPairs=function(t){for(var n=-1,r=t?t.length:0,e={};++n<r;){var u=t[n];e[u[0]]=u[1]}return e},jt.functions=function(t){
|
||||
return null==t?[]:vn(t,He(t))},jt.functionsIn=function(t){return null==t?[]:vn(t,Qe(t))},jt.groupBy=qo,jt.initial=function(t){return ne(t,1)},jt.intersection=So,jt.intersectionBy=Ro,jt.intersectionWith=Wo,jt.invert=_i,jt.invertBy=vi,jt.invokeMap=Vo,jt.iteratee=fu,jt.keyBy=Ko,jt.keys=He,jt.keysIn=Qe,jt.map=pe,jt.mapKeys=function(t,n){var r={};return n=Rr(n,3),pn(t,function(t,e,u){r[n(t,e,u)]=t}),r},jt.mapValues=function(t,n){var r={};return n=Rr(n,3),pn(t,function(t,e,u){r[e]=n(t,e,u)}),r},jt.matches=function(t){
|
||||
return In(un(t,true))},jt.matchesProperty=function(t,n){return Sn(t,un(n,true))},jt.memoize=xe,jt.merge=di,jt.mergeWith=yi,jt.method=Li,jt.methodOf=Ci,jt.mixin=cu,jt.negate=function(t){if(typeof t!="function")throw new vu("Expected a function");return function(){return!t.apply(this,arguments)}},jt.nthArg=function(t){return t=Ze(t),je(function(n){return Wn(n,t)})},jt.omit=bi,jt.omitBy=function(t,n){return n=Rr(n),Cn(t,function(t,r){return!n(t,r)})},jt.once=function(t){return ge(2,t)},jt.orderBy=function(t,n,r,e){
|
||||
return null==t?[]:(oi(n)||(n=null==n?[]:[n]),r=e?q:r,oi(r)||(r=null==r?[]:[r]),Bn(t,n,r))},jt.over=Mi,jt.overArgs=ni,jt.overEvery=zi,jt.overSome=Ui,jt.partial=ri,jt.partialRight=ei,jt.partition=Go,jt.pick=xi,jt.pickBy=function(t,n){return null==t?{}:Cn(t,Rr(n))},jt.property=lu,jt.propertyOf=function(t){return function(n){return null==t?q:gn(t,n)}},jt.pull=Bo,jt.pullAll=ue,jt.pullAllBy=function(t,n,r){return t&&t.length&&n&&n.length?Un(t,n,Rr(r)):t},jt.pullAllWith=function(t,n,r){return t&&t.length&&n&&n.length?Un(t,n,q,r):t;
|
||||
},jt.pullAt=Lo,jt.range=Di,jt.rangeRight=$i,jt.rearg=ui,jt.reject=function(t,n){var r=oi(t)?i:sn;return n=Rr(n,3),r(t,function(t,r,e){return!n(t,r,e)})},jt.remove=function(t,n){var r=[];if(!t||!t.length)return r;var e=-1,u=[],o=t.length;for(n=Rr(n,3);++e<o;){var i=t[e];n(i,e,t)&&(r.push(i),u.push(e))}return Dn(t,u),r},jt.rest=je,jt.reverse=oe,jt.sampleSize=_e,jt.set=function(t,n,r){return null==t?t:Nn(t,n,r)},jt.setWith=function(t,n,r,e){return e=typeof e=="function"?e:q,null==t?t:Nn(t,n,r,e)},jt.shuffle=function(t){
|
||||
return _e(t,4294967295)},jt.slice=function(t,n,r){var e=t?t.length:0;return e?(r&&typeof r!="number"&&Zr(t,n,r)?(n=0,r=e):(n=null==n?0:Ze(n),r=r===q?e:Ze(r)),Pn(t,n,r)):[]},jt.sortBy=Jo,jt.sortedUniq=function(t){return t&&t.length?Vn(t):[]},jt.sortedUniqBy=function(t,n){return t&&t.length?Vn(t,Rr(n)):[]},jt.split=function(t,n,r){return r&&typeof r!="number"&&Zr(t,n,r)&&(n=r=q),r=r===q?4294967295:r>>>0,r?(t=Ke(t))&&(typeof n=="string"||null!=n&&!Ue(n))&&(n+="",""==n&&Bt.test(t))?tr(t.match(Rt),0,r):Yu.call(t,n,r):[];
|
||||
},jt.spread=function(t,n){if(typeof t!="function")throw new vu("Expected a function");return n=n===q?0:Tu(Ze(n),0),je(function(e){var u=e[n];return e=tr(e,0,n),u&&l(e,u),r(t,this,e)})},jt.tail=function(t){return te(t,1)},jt.take=function(t,n,r){return t&&t.length?(n=r||n===q?1:Ze(n),Pn(t,0,0>n?0:n)):[]},jt.takeRight=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===q?1:Ze(n),n=e-n,Pn(t,0>n?0:n,e)):[]},jt.takeRightWhile=function(t,n){return t&&t.length?Gn(t,Rr(n,3),false,true):[]},jt.takeWhile=function(t,n){
|
||||
return t&&t.length?Gn(t,Rr(n,3)):[]},jt.tap=function(t,n){return n(t),t},jt.throttle=function(t,n,r){var e=true,u=true;if(typeof t!="function")throw new vu("Expected a function");return Be(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),be(t,n,{leading:e,maxWait:n,trailing:u})},jt.thru=ae,jt.toArray=Pe,jt.toPairs=Xe,jt.toPairsIn=tu,jt.toPath=function(t){return oi(t)?a(t,Hr):$e(t)?[t]:or(Oo(t))},jt.toPlainObject=Ve,jt.transform=function(t,n,r){var e=oi(t)||Fe(t);if(n=Rr(n,4),null==r)if(e||Be(t)){
|
||||
var o=t.constructor;r=e?oi(t)?new o:[]:Se(o)?fn(Fu(Object(t))):{}}else r={};return(e?u:pn)(t,function(t,e,u){return n(r,t,e,u)}),r},jt.unary=function(t){return ve(t,1)},jt.union=Co,jt.unionBy=Mo,jt.unionWith=zo,jt.uniq=function(t){return t&&t.length?Kn(t):[]},jt.uniqBy=function(t,n){return t&&t.length?Kn(t,Rr(n)):[]},jt.uniqWith=function(t,n){return t&&t.length?Kn(t,q,n):[]},jt.unset=function(t,n){var r;if(null==t)r=true;else{r=t;var e=n,e=Tr(e,r)?[e]:Xn(e);r=Yr(r,e),e=ee(e),r=null!=r&&Je(r,e)?delete r[e]:true;
|
||||
}return r},jt.unzip=ie,jt.unzipWith=fe,jt.update=function(t,n,r){return null==t?t:Nn(t,n,(typeof r=="function"?r:iu)(gn(t,n)),void 0)},jt.updateWith=function(t,n,r,e){return e=typeof e=="function"?e:q,null!=t&&(t=Nn(t,n,(typeof r=="function"?r:iu)(gn(t,n)),e)),t},jt.values=nu,jt.valuesIn=function(t){return null==t?[]:k(t,Qe(t))},jt.without=Uo,jt.words=uu,jt.wrap=function(t,n){return n=null==n?iu:n,ri(n,t)},jt.xor=Do,jt.xorBy=$o,jt.xorWith=Fo,jt.zip=No,jt.zipObject=function(t,n){return Hn(t||[],n||[],Xt);
|
||||
},jt.zipObjectDeep=function(t,n){return Hn(t||[],n||[],Nn)},jt.zipWith=Po,jt.entries=Xe,jt.entriesIn=tu,jt.extend=ci,jt.extendWith=ai,cu(jt,jt),jt.add=Fi,jt.attempt=Si,jt.camelCase=ji,jt.capitalize=ru,jt.ceil=Ni,jt.clamp=function(t,n,r){return r===q&&(r=n,n=q),r!==q&&(r=qe(r),r=r===r?r:0),n!==q&&(n=qe(n),n=n===n?n:0),en(qe(t),n,r)},jt.clone=function(t){return un(t,false,true)},jt.cloneDeep=function(t){return un(t,true,true)},jt.cloneDeepWith=function(t,n){return un(t,true,true,n)},jt.cloneWith=function(t,n){return un(t,false,true,n);
|
||||
},jt.deburr=eu,jt.divide=Pi,jt.endsWith=function(t,n,r){t=Ke(t),n=typeof n=="string"?n:n+"";var e=t.length;return r=r===q?e:en(Ze(r),0,e),r-=n.length,r>=0&&t.indexOf(n,r)==r},jt.eq=we,jt.escape=function(t){return(t=Ke(t))&&tt.test(t)?t.replace(Q,L):t},jt.escapeRegExp=function(t){return(t=Ke(t))&&ct.test(t)?t.replace(ft,"\\$&"):t},jt.every=function(t,n,r){var e=oi(t)?o:ln;return r&&Zr(t,n,r)&&(n=q),e(t,Rr(n,3))},jt.find=function(t,n){if(n=Rr(n,3),oi(t)){var r=g(t,n);return r>-1?t[r]:q}return v(t,n,_o);
|
||||
},jt.findIndex=function(t,n){return t&&t.length?g(t,Rr(n,3)):-1},jt.findKey=function(t,n){return v(t,Rr(n,3),pn,true)},jt.findLast=function(t,n){if(n=Rr(n,3),oi(t)){var r=g(t,n,true);return r>-1?t[r]:q}return v(t,n,vo)},jt.findLastIndex=function(t,n){return t&&t.length?g(t,Rr(n,3),true):-1},jt.findLastKey=function(t,n){return v(t,Rr(n,3),_n,true)},jt.floor=Zi,jt.forEach=se,jt.forEachRight=he,jt.forIn=function(t,n){return null==t?t:go(t,Rr(n),Qe)},jt.forInRight=function(t,n){return null==t?t:yo(t,Rr(n),Qe);
|
||||
},jt.forOwn=function(t,n){return t&&pn(t,Rr(n))},jt.forOwnRight=function(t,n){return t&&_n(t,Rr(n))},jt.get=Ge,jt.gt=Ae,jt.gte=function(t,n){return t>=n},jt.has=Je,jt.hasIn=Ye,jt.head=re,jt.identity=iu,jt.includes=function(t,n,r,e){return t=ke(t)?t:nu(t),r=r&&!e?Ze(r):0,e=t.length,0>r&&(r=Tu(e+r,0)),De(t)?e>=r&&-1<t.indexOf(n,r):!!e&&-1<d(t,n,r)},jt.indexOf=function(t,n,r){var e=t?t.length:0;return e?(r=Ze(r),0>r&&(r=Tu(e+r,0)),d(t,n,r)):-1},jt.inRange=function(t,n,r){return n=qe(n)||0,r===q?(r=n,
|
||||
n=0):r=qe(r)||0,t=qe(t),t>=qu(n,r)&&t<Tu(n,r)},jt.invoke=gi,jt.isArguments=Oe,jt.isArray=oi,jt.isArrayBuffer=function(t){return Le(t)&&"[object ArrayBuffer]"==wu.call(t)},jt.isArrayLike=ke,jt.isArrayLikeObject=Ee,jt.isBoolean=function(t){return true===t||false===t||Le(t)&&"[object Boolean]"==wu.call(t)},jt.isBuffer=ii,jt.isDate=function(t){return Le(t)&&"[object Date]"==wu.call(t)},jt.isElement=function(t){return!!t&&1===t.nodeType&&Le(t)&&!ze(t)},jt.isEmpty=function(t){if(ke(t)&&(oi(t)||De(t)||Se(t.splice)||Oe(t)||ii(t)))return!t.length;
|
||||
if(Le(t)){var n=Mr(t);if("[object Map]"==n||"[object Set]"==n)return!t.size}for(var r in t)if(xu.call(t,r))return false;return!(uo&&He(t).length)},jt.isEqual=function(t,n){return wn(t,n)},jt.isEqualWith=function(t,n,r){var e=(r=typeof r=="function"?r:q)?r(t,n):q;return e===q?wn(t,n,r):!!e},jt.isError=Ie,jt.isFinite=function(t){return typeof t=="number"&&Nu(t)},jt.isFunction=Se,jt.isInteger=Re,jt.isLength=We,jt.isMap=function(t){return Le(t)&&"[object Map]"==Mr(t)},jt.isMatch=function(t,n){return t===n||An(t,n,Wr(n));
|
||||
},jt.isMatchWith=function(t,n,r){return r=typeof r=="function"?r:q,An(t,n,Wr(n),r)},jt.isNaN=function(t){return Me(t)&&t!=+t},jt.isNative=Ce,jt.isNil=function(t){return null==t},jt.isNull=function(t){return null===t},jt.isNumber=Me,jt.isObject=Be,jt.isObjectLike=Le,jt.isPlainObject=ze,jt.isRegExp=Ue,jt.isSafeInteger=function(t){return Re(t)&&t>=-9007199254740991&&9007199254740991>=t},jt.isSet=function(t){return Le(t)&&"[object Set]"==Mr(t)},jt.isString=De,jt.isSymbol=$e,jt.isTypedArray=Fe,jt.isUndefined=function(t){
|
||||
return t===q},jt.isWeakMap=function(t){return Le(t)&&"[object WeakMap]"==Mr(t)},jt.isWeakSet=function(t){return Le(t)&&"[object WeakSet]"==wu.call(t)},jt.join=function(t,n){return t?Pu.call(t,n):""},jt.kebabCase=mi,jt.last=ee,jt.lastIndexOf=function(t,n,r){var e=t?t.length:0;if(!e)return-1;var u=e;if(r!==q&&(u=Ze(r),u=(0>u?Tu(e+u,0):qu(u,e-1))+1),n!==n)return M(t,u,true);for(;u--;)if(t[u]===n)return u;return-1},jt.lowerCase=wi,jt.lowerFirst=Ai,jt.lt=Ne,jt.lte=function(t,n){return n>=t},jt.max=function(t){
|
||||
return t&&t.length?_(t,iu,Ae):q},jt.maxBy=function(t,n){return t&&t.length?_(t,Rr(n),Ae):q},jt.mean=function(t){return b(t,iu)},jt.meanBy=function(t,n){return b(t,Rr(n))},jt.min=function(t){return t&&t.length?_(t,iu,Ne):q},jt.minBy=function(t,n){return t&&t.length?_(t,Rr(n),Ne):q},jt.multiply=Ti,jt.nth=function(t,n){return t&&t.length?Wn(t,Ze(n)):q},jt.noConflict=function(){return Yt._===this&&(Yt._=Au),this},jt.noop=au,jt.now=Yo,jt.pad=function(t,n,r){t=Ke(t);var e=(n=Ze(n))?P(t):0;return n&&n>e?(n=(n-e)/2,
|
||||
jr($u(n),r)+t+jr(Du(n),r)):t},jt.padEnd=function(t,n,r){t=Ke(t);var e=(n=Ze(n))?P(t):0;return n&&n>e?t+jr(n-e,r):t},jt.padStart=function(t,n,r){t=Ke(t);var e=(n=Ze(n))?P(t):0;return n&&n>e?jr(n-e,r)+t:t},jt.parseInt=function(t,n,r){return r||null==n?n=0:n&&(n=+n),t=Ke(t).replace(at,""),Vu(t,n||(gt.test(t)?16:10))},jt.random=function(t,n,r){if(r&&typeof r!="boolean"&&Zr(t,n,r)&&(n=r=q),r===q&&(typeof n=="boolean"?(r=n,n=q):typeof t=="boolean"&&(r=t,t=q)),t===q&&n===q?(t=0,n=1):(t=qe(t)||0,n===q?(n=t,
|
||||
t=0):n=qe(n)||0),t>n){var e=t;t=n,n=e}return r||t%1||n%1?(r=Ku(),qu(t+r*(n-t+Pt("1e-"+((r+"").length-1))),n)):$n(t,n)},jt.reduce=function(t,n,r){var e=oi(t)?s:x,u=3>arguments.length;return e(t,Rr(n,4),r,u,_o)},jt.reduceRight=function(t,n,r){var e=oi(t)?h:x,u=3>arguments.length;return e(t,Rr(n,4),r,u,vo)},jt.repeat=function(t,n,r){return n=(r?Zr(t,n,r):n===q)?1:Ze(n),Fn(Ke(t),n)},jt.replace=function(){var t=arguments,n=Ke(t[0]);return 3>t.length?n:Gu.call(n,t[1],t[2])},jt.result=function(t,n,r){n=Tr(n,t)?[n]:Xn(n);
|
||||
var e=-1,u=n.length;for(u||(t=q,u=1);++e<u;){var o=null==t?q:t[n[e]];o===q&&(e=u,o=r),t=Se(o)?o.call(t):o}return t},jt.round=qi,jt.runInContext=T,jt.sample=function(t){t=ke(t)?t:nu(t);var n=t.length;return n>0?t[$n(0,n-1)]:q},jt.size=function(t){if(null==t)return 0;if(ke(t)){var n=t.length;return n&&De(t)?P(t):n}return Le(t)&&(n=Mr(t),"[object Map]"==n||"[object Set]"==n)?t.size:He(t).length},jt.snakeCase=Oi,jt.some=function(t,n,r){var e=oi(t)?p:Zn;return r&&Zr(t,n,r)&&(n=q),e(t,Rr(n,3))},jt.sortedIndex=function(t,n){
|
||||
return Tn(t,n)},jt.sortedIndexBy=function(t,n,r){return qn(t,n,Rr(r))},jt.sortedIndexOf=function(t,n){var r=t?t.length:0;if(r){var e=Tn(t,n);if(r>e&&we(t[e],n))return e}return-1},jt.sortedLastIndex=function(t,n){return Tn(t,n,true)},jt.sortedLastIndexBy=function(t,n,r){return qn(t,n,Rr(r),true)},jt.sortedLastIndexOf=function(t,n){if(t&&t.length){var r=Tn(t,n,true)-1;if(we(t[r],n))return r}return-1},jt.startCase=ki,jt.startsWith=function(t,n,r){return t=Ke(t),r=en(Ze(r),0,t.length),t.lastIndexOf(n,r)==r;
|
||||
},jt.subtract=Vi,jt.sum=function(t){return t&&t.length?m(t,iu):0},jt.sumBy=function(t,n){return t&&t.length?m(t,Rr(n)):0},jt.template=function(t,n,r){var e=jt.templateSettings;r&&Zr(t,n,r)&&(n=q),t=Ke(t),n=ai({},n,e,Jt),r=ai({},n.imports,e.imports,Jt);var u,o,i=He(r),f=k(r,i),c=0;r=n.interpolate||wt;var a="__p+='";r=_u((n.escape||wt).source+"|"+r.source+"|"+(r===et?_t:wt).source+"|"+(n.evaluate||wt).source+"|$","g");var l="sourceURL"in n?"//# sourceURL="+n.sourceURL+"\n":"";if(t.replace(r,function(n,r,e,i,f,l){
|
||||
return e||(e=i),a+=t.slice(c,l).replace(At,C),r&&(u=true,a+="'+__e("+r+")+'"),f&&(o=true,a+="';"+f+";\n__p+='"),e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+n.length,n}),a+="';",(n=n.variable)||(a="with(obj){"+a+"}"),a=(o?a.replace(G,""):a).replace(J,"$1").replace(Y,"$1;"),a="function("+(n||"obj")+"){"+(n?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",n=Si(function(){return Function(i,l+"return "+a).apply(q,f);
|
||||
}),n.source=a,Ie(n))throw n;return n},jt.times=function(t,n){if(t=Ze(t),1>t||t>9007199254740991)return[];var r=4294967295,e=qu(t,4294967295);for(n=Rr(n),t-=4294967295,e=w(e,n);++r<t;)n(r);return e},jt.toInteger=Ze,jt.toLength=Te,jt.toLower=function(t){return Ke(t).toLowerCase()},jt.toNumber=qe,jt.toSafeInteger=function(t){return en(Ze(t),-9007199254740991,9007199254740991)},jt.toString=Ke,jt.toUpper=function(t){return Ke(t).toUpperCase()},jt.trim=function(t,n,r){return(t=Ke(t))?r||n===q?t.replace(at,""):(n+="")?(t=t.match(Rt),
|
||||
n=n.match(Rt),tr(t,E(t,n),I(t,n)+1).join("")):t:t},jt.trimEnd=function(t,n,r){return(t=Ke(t))?r||n===q?t.replace(st,""):(n+="")?(t=t.match(Rt),n=I(t,n.match(Rt))+1,tr(t,0,n).join("")):t:t},jt.trimStart=function(t,n,r){return(t=Ke(t))?r||n===q?t.replace(lt,""):(n+="")?(t=t.match(Rt),n=E(t,n.match(Rt)),tr(t,n).join("")):t:t},jt.truncate=function(t,n){var r=30,e="...";if(Be(n))var u="separator"in n?n.separator:u,r="length"in n?Ze(n.length):r,e="omission"in n?Ke(n.omission):e;t=Ke(t);var o=t.length;if(Bt.test(t))var i=t.match(Rt),o=i.length;
|
||||
if(r>=o)return t;if(o=r-P(e),1>o)return e;if(r=i?tr(i,0,o).join(""):t.slice(0,o),u===q)return r+e;if(i&&(o+=r.length-o),Ue(u)){if(t.slice(o).search(u)){var f=r;for(u.global||(u=_u(u.source,Ke(vt.exec(u))+"g")),u.lastIndex=0;i=u.exec(f);)var c=i.index;r=r.slice(0,c===q?o:c)}}else t.indexOf(u,o)!=o&&(u=r.lastIndexOf(u),u>-1&&(r=r.slice(0,u)));return r+e},jt.unescape=function(t){return(t=Ke(t))&&X.test(t)?t.replace(H,Z):t},jt.uniqueId=function(t){var n=++ju;return Ke(t)+n},jt.upperCase=Ei,jt.upperFirst=Ii,
|
||||
jt.each=se,jt.eachRight=he,jt.first=re,cu(jt,function(){var t={};return pn(jt,function(n,r){xu.call(jt.prototype,r)||(t[r]=n)}),t}(),{chain:false}),jt.VERSION="4.11.0",u("bind bindKey curry curryRight partial partialRight".split(" "),function(t){jt[t].placeholder=jt}),u(["drop","take"],function(t,n){Et.prototype[t]=function(r){var e=this.__filtered__;if(e&&!n)return new Et(this);r=r===q?1:Tu(Ze(r),0);var u=this.clone();return e?u.__takeCount__=qu(r,u.__takeCount__):u.__views__.push({size:qu(r,4294967295),
|
||||
type:t+(0>u.__dir__?"Right":"")}),u},Et.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),u(["filter","map","takeWhile"],function(t,n){var r=n+1,e=1==r||3==r;Et.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:Rr(t,3),type:r}),n.__filtered__=n.__filtered__||e,n}}),u(["head","last"],function(t,n){var r="take"+(n?"Right":"");Et.prototype[t]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(t,n){var r="drop"+(n?"":"Right");
|
||||
Et.prototype[t]=function(){return this.__filtered__?new Et(this):this[r](1)}}),Et.prototype.compact=function(){return this.filter(iu)},Et.prototype.find=function(t){return this.filter(t).head()},Et.prototype.findLast=function(t){return this.reverse().find(t)},Et.prototype.invokeMap=je(function(t,n){return typeof t=="function"?new Et(this):this.map(function(r){return mn(r,t,n)})}),Et.prototype.reject=function(t){return t=Rr(t,3),this.filter(function(n){return!t(n)})},Et.prototype.slice=function(t,n){
|
||||
t=Ze(t);var r=this;return r.__filtered__&&(t>0||0>n)?new Et(r):(0>t?r=r.takeRight(-t):t&&(r=r.drop(t)),n!==q&&(n=Ze(n),r=0>n?r.dropRight(-n):r.take(n-t)),r)},Et.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Et.prototype.toArray=function(){return this.take(4294967295)},pn(Et.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),e=/^(?:head|last)$/.test(n),u=jt[e?"take"+("last"==n?"Right":""):n],o=e||/^find/.test(n);u&&(jt.prototype[n]=function(){
|
||||
function n(t){return t=u.apply(jt,l([t],f)),e&&h?t[0]:t}var i=this.__wrapped__,f=e?[1]:arguments,c=i instanceof Et,a=f[0],s=c||oi(i);s&&r&&typeof a=="function"&&1!=a.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,a=o&&!h,c=c&&!p;return!o&&s?(i=c?i:new Et(this),i=t.apply(i,f),i.__actions__.push({func:ae,args:[n],thisArg:q}),new kt(i,h)):a&&c?t.apply(this,f):(i=this.thru(n),a?e?i.value()[0]:i.value():i)})}),u("pop push shift sort splice unshift".split(" "),function(t){var n=gu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",e=/^(?:pop|shift)$/.test(t);
|
||||
jt.prototype[t]=function(){var t=arguments;if(e&&!this.__chain__){var u=this.value();return n.apply(oi(u)?u:[],t)}return this[r](function(r){return n.apply(oi(r)?r:[],t)})}}),pn(Et.prototype,function(t,n){var r=jt[n];if(r){var e=r.name+"";(oo[e]||(oo[e]=[])).push({name:n,func:r})}}),oo[yr(q,2).name]=[{name:"wrapper",func:q}],Et.prototype.clone=function(){var t=new Et(this.__wrapped__);return t.__actions__=or(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=or(this.__iteratees__),
|
||||
t.__takeCount__=this.__takeCount__,t.__views__=or(this.__views__),t},Et.prototype.reverse=function(){if(this.__filtered__){var t=new Et(this);t.__dir__=-1,t.__filtered__=true}else t=this.clone(),t.__dir__*=-1;return t},Et.prototype.value=function(){var t,n=this.__wrapped__.value(),r=this.__dir__,e=oi(n),u=0>r,o=e?n.length:0;t=o;for(var i=this.__views__,f=0,c=-1,a=i.length;++c<a;){var l=i[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":t-=s;break;case"take":t=qu(t,f+s);break;case"takeRight":
|
||||
f=Tu(f,t-s)}}if(t={start:f,end:t},i=t.start,f=t.end,t=f-i,u=u?f:i-1,i=this.__iteratees__,f=i.length,c=0,a=qu(t,this.__takeCount__),!e||200>o||o==t&&a==t)return Jn(n,this.__actions__);e=[];t:for(;t--&&a>c;){for(u+=r,o=-1,l=n[u];++o<f;){var h=i[o],s=h.type,h=(0,h.iteratee)(l);if(2==s)l=h;else if(!h){if(1==s)continue t;break t}}e[c++]=l}return e},jt.prototype.at=Zo,jt.prototype.chain=function(){return ce(this)},jt.prototype.commit=function(){return new kt(this.value(),this.__chain__)},jt.prototype.next=function(){
|
||||
this.__values__===q&&(this.__values__=Pe(this.value()));var t=this.__index__>=this.__values__.length,n=t?q:this.__values__[this.__index__++];return{done:t,value:n}},jt.prototype.plant=function(t){for(var n,r=this;r instanceof Ot;){var e=Xr(r);e.__index__=0,e.__values__=q,n?u.__wrapped__=e:n=e;var u=e,r=r.__wrapped__}return u.__wrapped__=t,n},jt.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof Et?(this.__actions__.length&&(t=new Et(this)),t=t.reverse(),t.__actions__.push({func:ae,
|
||||
args:[oe],thisArg:q}),new kt(t,this.__chain__)):this.thru(oe)},jt.prototype.toJSON=jt.prototype.valueOf=jt.prototype.value=function(){return Jn(this.__wrapped__,this.__actions__)},Lu&&(jt.prototype[Lu]=le),jt}var q,V=1/0,K=NaN,G=/\b__p\+='';/g,J=/\b(__p\+=)''\+/g,Y=/(__e\(.*?\)|\b__t\))\+'';/g,H=/&(?:amp|lt|gt|quot|#39|#96);/g,Q=/[&<>"'`]/g,X=RegExp(H.source),tt=RegExp(Q.source),nt=/<%-([\s\S]+?)%>/g,rt=/<%([\s\S]+?)%>/g,et=/<%=([\s\S]+?)%>/g,ut=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ot=/^\w*$/,it=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,ft=/[\\^$.*+?()[\]{}|]/g,ct=RegExp(ft.source),at=/^\s+|\s+$/g,lt=/^\s+/,st=/\s+$/,ht=/[a-zA-Z0-9]+/g,pt=/\\(\\)?/g,_t=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,vt=/\w*$/,gt=/^0x/i,dt=/^[-+]0x[0-9a-f]+$/i,yt=/^0b[01]+$/i,bt=/^\[object .+?Constructor\]$/,xt=/^0o[0-7]+$/i,jt=/^(?:0|[1-9]\d*)$/,mt=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,wt=/($^)/,At=/['\n\r\u2028\u2029\\]/g,Ot="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",kt="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+Ot,Et="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",It=RegExp("['\u2019]","g"),St=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),Rt=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+Et+Ot,"g"),Wt=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\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]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\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\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\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]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\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\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\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\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d+",kt].join("|"),"g"),Bt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),Lt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ct="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise Reflect RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Mt={};
|
||||
Mt["[object Float32Array]"]=Mt["[object Float64Array]"]=Mt["[object Int8Array]"]=Mt["[object Int16Array]"]=Mt["[object Int32Array]"]=Mt["[object Uint8Array]"]=Mt["[object Uint8ClampedArray]"]=Mt["[object Uint16Array]"]=Mt["[object Uint32Array]"]=true,Mt["[object Arguments]"]=Mt["[object Array]"]=Mt["[object ArrayBuffer]"]=Mt["[object Boolean]"]=Mt["[object DataView]"]=Mt["[object Date]"]=Mt["[object Error]"]=Mt["[object Function]"]=Mt["[object Map]"]=Mt["[object Number]"]=Mt["[object Object]"]=Mt["[object RegExp]"]=Mt["[object Set]"]=Mt["[object String]"]=Mt["[object WeakMap]"]=false;
|
||||
var zt={};zt["[object Arguments]"]=zt["[object Array]"]=zt["[object ArrayBuffer]"]=zt["[object DataView]"]=zt["[object Boolean]"]=zt["[object Date]"]=zt["[object Float32Array]"]=zt["[object Float64Array]"]=zt["[object Int8Array]"]=zt["[object Int16Array]"]=zt["[object Int32Array]"]=zt["[object Map]"]=zt["[object Number]"]=zt["[object Object]"]=zt["[object RegExp]"]=zt["[object Set]"]=zt["[object String]"]=zt["[object Symbol]"]=zt["[object Uint8Array]"]=zt["[object Uint8ClampedArray]"]=zt["[object Uint16Array]"]=zt["[object Uint32Array]"]=true,
|
||||
zt["[object Error]"]=zt["[object Function]"]=zt["[object WeakMap]"]=false;var Ut={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\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","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},Dt={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},$t={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Ft={"function":true,object:true},Nt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"
|
||||
},Pt=parseFloat,Zt=parseInt,Tt=Ft[typeof exports]&&exports&&!exports.nodeType?exports:q,qt=Ft[typeof module]&&module&&!module.nodeType?module:q,Vt=qt&&qt.exports===Tt?Tt:q,Kt=S(Ft[typeof self]&&self),Gt=S(Ft[typeof window]&&window),Jt=S(Ft[typeof this]&&this),Yt=S(Tt&&qt&&typeof global=="object"&&global)||Gt!==(Jt&&Jt.window)&&Gt||Kt||Jt||Function("return this")(),Ht=T();(Gt||Kt||{})._=Ht,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return Ht}):Tt&&qt?(Vt&&((qt.exports=Ht)._=Ht),
|
||||
Tt._=Ht):Yt._=Ht}).call(this);
|
||||
;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function u(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&false!==t(n[r],r,n););return n}function i(n,t){for(var r=null==n?0:n.length;r--&&false!==t(n[r],r,n););
|
||||
return n}function o(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function f(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r<e;){var o=n[r];t(o,r,n)&&(i[u++]=o)}return i}function c(n,t){return!(null==n||!n.length)&&-1<d(n,t,0)}function a(n,t,r){for(var e=-1,u=null==n?0:n.length;++e<u;)if(r(t,n[e]))return true;return false}function l(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function s(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];
|
||||
return n}function h(n,t,r,e){var u=-1,i=null==n?0:n.length;for(e&&i&&(r=n[++u]);++u<i;)r=t(r,n[u],u,n);return r}function p(n,t,r,e){var u=null==n?0:n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function _(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(t(n[r],r,n))return true;return false}function v(n,t,r){var e;return r(n,function(n,r,u){if(t(n,r,u))return e=r,false}),e}function g(n,t,r,e){var u=n.length;for(r+=e?1:-1;e?r--:++r<u;)if(t(n[r],r,n))return r;return-1}function d(n,t,r){if(t===t)n:{
|
||||
--r;for(var e=n.length;++r<e;)if(n[r]===t){n=r;break n}n=-1}else n=g(n,b,r);return n}function y(n,t,r,e){--r;for(var u=n.length;++r<u;)if(e(n[r],t))return r;return-1}function b(n){return n!==n}function x(n,t){var r=null==n?0:n.length;return r?k(n,t)/r:P}function j(n){return function(t){return null==t?F:t[n]}}function w(n){return function(t){return null==n?F:n[t]}}function m(n,t,r,e,u){return u(n,function(n,u,i){r=e?(e=false,n):t(r,n,u,i)}),r}function A(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;
|
||||
return n}function k(n,t){for(var r,e=-1,u=n.length;++e<u;){var i=t(n[e]);i!==F&&(r=r===F?i:r+i)}return r}function E(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function O(n,t){return l(t,function(t){return[t,n[t]]})}function S(n){return function(t){return n(t)}}function I(n,t){return l(t,function(t){return n[t]})}function R(n,t){return n.has(t)}function z(n,t){for(var r=-1,e=n.length;++r<e&&-1<d(t,n[r],0););return r}function W(n,t){for(var r=n.length;r--&&-1<d(t,n[r],0););return r}function B(n){
|
||||
return"\\"+Tn[n]}function L(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function U(n,t){return function(r){return n(t(r))}}function C(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r];o!==t&&"__lodash_placeholder__"!==o||(n[r]="__lodash_placeholder__",i[u++]=r)}return i}function D(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=[n,n]}),r}function T(n){if(Bn.test(n)){
|
||||
for(var t=zn.lastIndex=0;zn.test(n);)++t;n=t}else n=tt(n);return n}function $(n){return Bn.test(n)?n.match(zn)||[]:n.split("")}var F,N=1/0,P=NaN,Z=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],q=/\b__p\+='';/g,V=/\b(__p\+=)''\+/g,K=/(__e\(.*?\)|\b__t\))\+'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,H=/[&<>"']/g,J=RegExp(G.source),Y=RegExp(H.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,nn=/<%=([\s\S]+?)%>/g,tn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rn=/^\w*$/,en=/^\./,un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,on=/[\\^$.*+?()[\]{}|]/g,fn=RegExp(on.source),cn=/^\s+|\s+$/g,an=/^\s+/,ln=/\s+$/,sn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,hn=/\{\n\/\* \[wrapped with (.+)\] \*/,pn=/,? & /,_n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,vn=/\\(\\)?/g,gn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dn=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,bn=/^0b[01]+$/i,xn=/^\[object .+?Constructor\]$/,jn=/^0o[0-7]+$/i,wn=/^(?:0|[1-9]\d*)$/,mn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,An=/($^)/,kn=/['\n\r\u2028\u2029\\]/g,En="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",On="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+En,Sn="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",In=RegExp("['\u2019]","g"),Rn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),zn=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+Sn+En,"g"),Wn=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\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]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\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\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\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]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\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\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\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\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)|\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)|\\d+",On].join("|"),"g"),Bn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),Ln=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Un="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Cn={};
|
||||
Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object DataView]"]=Cn["[object Date]"]=Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object WeakMap]"]=false;
|
||||
var Dn={};Dn["[object Arguments]"]=Dn["[object Array]"]=Dn["[object ArrayBuffer]"]=Dn["[object DataView]"]=Dn["[object Boolean]"]=Dn["[object Date]"]=Dn["[object Float32Array]"]=Dn["[object Float64Array]"]=Dn["[object Int8Array]"]=Dn["[object Int16Array]"]=Dn["[object Int32Array]"]=Dn["[object Map]"]=Dn["[object Number]"]=Dn["[object Object]"]=Dn["[object RegExp]"]=Dn["[object Set]"]=Dn["[object String]"]=Dn["[object Symbol]"]=Dn["[object Uint8Array]"]=Dn["[object Uint8ClampedArray]"]=Dn["[object Uint16Array]"]=Dn["[object Uint32Array]"]=true,
|
||||
Dn["[object Error]"]=Dn["[object Function]"]=Dn["[object WeakMap]"]=false;var Mn,Tn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$n=parseFloat,Fn=parseInt,Nn=typeof global=="object"&&global&&global.Object===Object&&global,Pn=typeof self=="object"&&self&&self.Object===Object&&self,Zn=Nn||Pn||Function("return this")(),qn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Vn=qn&&typeof module=="object"&&module&&!module.nodeType&&module,Kn=Vn&&Vn.exports===qn,Gn=Kn&&Nn.h;
|
||||
n:{try{Mn=Gn&&Gn.g("util");break n}catch(n){}Mn=void 0}var Hn=Mn&&Mn.isArrayBuffer,Jn=Mn&&Mn.isDate,Yn=Mn&&Mn.isMap,Qn=Mn&&Mn.isRegExp,Xn=Mn&&Mn.isSet,nt=Mn&&Mn.isTypedArray,tt=j("length"),rt=w({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\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","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C",
|
||||
"\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i",
|
||||
"\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S",
|
||||
"\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n",
|
||||
"\u017f":"s"}),et=w({"&":"&","<":"<",">":">",'"':""","'":"'"}),ut=w({"&":"&","<":"<",">":">",""":'"',"'":"'"}),it=function w(En){function On(n){if(gu(n)&&!uf(n)&&!(n instanceof Mn)){if(n instanceof zn)return n;if(ui.call(n,"__wrapped__"))return Te(n)}return new zn(n)}function Sn(){}function zn(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=F}function Mn(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=false,
|
||||
this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Tn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Nn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Pn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function qn(n){var t=-1,r=null==n?0:n.length;for(this.__data__=new Pn;++t<r;)this.add(n[t])}function Vn(n){this.size=(this.__data__=new Nn(n)).size;
|
||||
}function Gn(n,t){var r,e=uf(n),u=!e&&ef(n),i=!e&&!u&&ff(n),o=!e&&!u&&!i&&hf(n),u=(e=e||u||i||o)?E(n.length,Qu):[],f=u.length;for(r in n)!t&&!ui.call(n,r)||e&&("length"==r||i&&("offset"==r||"parent"==r)||o&&("buffer"==r||"byteLength"==r||"byteOffset"==r)||Ae(r,f))||u.push(r);return u}function tt(n){var t=n.length;return t?n[cr(0,t-1)]:F}function ot(n,t){return Ue(Dr(n),gt(t,0,n.length))}function ft(n){return Ue(Dr(n))}function ct(n,t,r,e){return n===F||cu(n,ti[r])&&!ui.call(e,r)?t:n}function at(n,t,r){
|
||||
(r===F||cu(n[t],r))&&(r!==F||t in n)||_t(n,t,r)}function lt(n,t,r){var e=n[t];ui.call(n,t)&&cu(e,r)&&(r!==F||t in n)||_t(n,t,r)}function st(n,t){for(var r=n.length;r--;)if(cu(n[r][0],t))return r;return-1}function ht(n,t,r,e){return ro(n,function(n,u,i){t(e,n,r(n),i)}),e}function pt(n,t){return n&&Mr(t,Ru(t),n)}function _t(n,t,r){"__proto__"==t&&wi?wi(n,t,{configurable:true,enumerable:true,value:r,writable:true}):n[t]=r}function vt(n,t){for(var r=-1,e=t.length,u=qu(e),i=null==n;++r<e;)u[r]=i?F:Su(n,t[r]);
|
||||
return u}function gt(n,t,r){return n===n&&(r!==F&&(n=n<=r?n:r),t!==F&&(n=n>=t?n:t)),n}function dt(n,t,r,e,i,o,f){var c;if(e&&(c=o?e(n,i,o,f):e(n)),c!==F)return c;if(!vu(n))return n;if(i=uf(n)){if(c=xe(n),!t)return Dr(n,c)}else{var a=po(n),l="[object Function]"==a||"[object GeneratorFunction]"==a;if(ff(n))return zr(n,t);if("[object Object]"==a||"[object Arguments]"==a||l&&!o){if(c=je(l?{}:n),!t)return Tr(n,pt(c,n))}else{if(!Dn[a])return o?n:{};c=we(n,a,dt,t)}}if(f||(f=new Vn),o=f.get(n))return o;f.set(n,c);
|
||||
var s=i?F:(r?he:Ru)(n);return u(s||n,function(u,i){s&&(i=u,u=n[i]),lt(c,i,dt(u,t,r,e,i,n,f))}),c}function yt(n){var t=Ru(n);return function(r){return bt(r,n,t)}}function bt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Ju(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===F&&!(u in n)||!i(o))return false}return true}function xt(n,t,r){if(typeof n!="function")throw new Xu("Expected a function");return go(function(){n.apply(F,r)},t)}function jt(n,t,r,e){var u=-1,i=c,o=true,f=n.length,s=[],h=t.length;if(!f)return s;r&&(t=l(t,S(r))),
|
||||
e?(i=a,o=false):200<=t.length&&(i=R,o=false,t=new qn(t));n:for(;++u<f;){var p=n[u],_=null==r?p:r(p),p=e||0!==p?p:0;if(o&&_===_){for(var v=h;v--;)if(t[v]===_)continue n;s.push(p)}else i(t,_,e)||s.push(p)}return s}function wt(n,t){var r=true;return ro(n,function(n,e,u){return r=!!t(n,e,u)}),r}function mt(n,t,r){for(var e=-1,u=n.length;++e<u;){var i=n[e],o=t(i);if(null!=o&&(f===F?o===o&&!xu(o):r(o,f)))var f=o,c=i}return c}function At(n,t){var r=[];return ro(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function kt(n,t,r,e,u){
|
||||
var i=-1,o=n.length;for(r||(r=me),u||(u=[]);++i<o;){var f=n[i];0<t&&r(f)?1<t?kt(f,t-1,r,e,u):s(u,f):e||(u[u.length]=f)}return u}function Et(n,t){return n&&uo(n,t,Ru)}function Ot(n,t){return n&&io(n,t,Ru)}function St(n,t){return f(t,function(t){return hu(n[t])})}function It(n,t){t=Ee(t,n)?[t]:Ir(t);for(var r=0,e=t.length;null!=n&&r<e;)n=n[Ce(t[r++])];return r&&r==e?n:F}function Rt(n,t,r){return t=t(n),uf(n)?t:s(t,r(n))}function zt(n){if(null==n)return n===F?"[object Undefined]":"[object Null]";n=Ju(n);
|
||||
var t;if(ji&&ji in n){var r=ui.call(n,ji),e=n[ji];try{n[ji]=F,t=true}catch(n){}var u=fi.call(n);t&&(r?n[ji]=e:delete n[ji]),t=u}else t=fi.call(n);return t}function Wt(n,t){return n>t}function Bt(n,t){return null!=n&&ui.call(n,t)}function Lt(n,t){return null!=n&&t in Ju(n)}function Ut(n,t,r){for(var e=r?a:c,u=n[0].length,i=n.length,o=i,f=qu(i),s=1/0,h=[];o--;){var p=n[o];o&&t&&(p=l(p,S(t))),s=Li(p.length,s),f[o]=!r&&(t||120<=u&&120<=p.length)?new qn(o&&p):F}var p=n[0],_=-1,v=f[0];n:for(;++_<u&&h.length<s;){
|
||||
var g=p[_],d=t?t(g):g,g=r||0!==g?g:0;if(v?!R(v,d):!e(h,d,r)){for(o=i;--o;){var y=f[o];if(y?!R(y,d):!e(n[o],d,r))continue n}v&&v.push(d),h.push(g)}}return h}function Ct(n,t,r){var e={};return Et(n,function(n,u,i){t(e,r(n),u,i)}),e}function Dt(n,t,e){return Ee(t,n)||(t=Ir(t),n=We(n,t),t=Ze(t)),t=null==n?n:n[Ce(t)],null==t?F:r(t,n,e)}function Mt(n){return gu(n)&&"[object Arguments]"==zt(n)}function Tt(n){return gu(n)&&"[object ArrayBuffer]"==zt(n)}function $t(n){return gu(n)&&"[object Date]"==zt(n)}
|
||||
function Ft(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!vu(n)&&!gu(t))t=n!==n&&t!==t;else n:{var i=uf(n),o=uf(t),f="[object Array]",c="[object Array]";i||(f=po(n),f="[object Arguments]"==f?"[object Object]":f),o||(c=po(t),c="[object Arguments]"==c?"[object Object]":c);var a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&ff(n)){if(!ff(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Vn),t=i||hf(n)?ae(n,t,Ft,r,e,u):le(n,t,f,Ft,r,e,u);else{if(!(2&e)&&(i=a&&ui.call(n,"__wrapped__"),f=o&&ui.call(t,"__wrapped__"),
|
||||
i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Vn),t=Ft(n,t,r,e,u);break n}if(c)t:if(u||(u=new Vn),i=2&e,f=Ru(n),o=f.length,c=Ru(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ui.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++a<o;){var l=f[a],h=n[l],p=t[l];if(r)var _=i?r(p,h,l,t,n,u):r(h,p,l,n,t,u);if(_===F?h!==p&&!Ft(h,p,r,e,u):!_){c=false;break}s||(s="constructor"==l)}c&&!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)&&(c=false)),
|
||||
u.delete(n),u.delete(t),t=c}}else t=false;else t=false}}return t}function Nt(n){return gu(n)&&"[object Map]"==po(n)}function Pt(n,t,r,e){var u=r.length,i=u,o=!e;if(null==n)return!i;for(n=Ju(n);u--;){var f=r[u];if(o&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return false}for(;++u<i;){var f=r[u],c=f[0],a=n[c],l=f[1];if(o&&f[2]){if(a===F&&!(c in n))return false}else{if(f=new Vn,e)var s=e(a,l,c,n,t,f);if(s===F?!Ft(l,a,e,3,f):!s)return false}}return true}function Zt(n){return!(!vu(n)||oi&&oi in n)&&(hu(n)?li:xn).test(De(n))}function qt(n){
|
||||
return gu(n)&&"[object RegExp]"==zt(n)}function Vt(n){return gu(n)&&"[object Set]"==po(n)}function Kt(n){return gu(n)&&_u(n.length)&&!!Cn[zt(n)]}function Gt(n){return typeof n=="function"?n:null==n?Mu:typeof n=="object"?uf(n)?Xt(n[0],n[1]):Qt(n):Nu(n)}function Ht(n){if(!Se(n))return Wi(n);var t,r=[];for(t in Ju(n))ui.call(n,t)&&"constructor"!=t&&r.push(t);return r}function Jt(n,t){return n<t}function Yt(n,t){var r=-1,e=au(n)?qu(n.length):[];return ro(n,function(n,u,i){e[++r]=t(n,u,i)}),e}function Qt(n){
|
||||
var t=de(n);return 1==t.length&&t[0][2]?Ie(t[0][0],t[0][1]):function(r){return r===n||Pt(r,n,t)}}function Xt(n,t){return Ee(n)&&t===t&&!vu(t)?Ie(Ce(n),t):function(r){var e=Su(r,n);return e===F&&e===t?Iu(r,n):Ft(t,e,F,3)}}function nr(n,t,r,e,u){n!==t&&uo(t,function(i,o){if(vu(i)){u||(u=new Vn);var f=u,c=n[o],a=t[o],l=f.get(a);if(l)at(n,o,l);else{var l=e?e(c,a,o+"",n,t,f):F,s=l===F;if(s){var h=uf(a),p=!h&&ff(a),_=!h&&!p&&hf(a),l=a;h||p||_?uf(c)?l=c:lu(c)?l=Dr(c):p?(s=false,l=zr(a,true)):_?(s=false,l=Br(a,true)):l=[]:yu(a)||ef(a)?(l=c,
|
||||
ef(c)?l=Eu(c):(!vu(c)||r&&hu(c))&&(l=je(a))):s=false}s&&(f.set(a,l),nr(l,a,r,e,f),f.delete(a)),at(n,o,l)}}else f=e?e(n[o],i,o+"",n,t,u):F,f===F&&(f=i),at(n,o,f)},zu)}function tr(n,t){var r=n.length;if(r)return t+=0>t?r:0,Ae(t,r)?n[t]:F}function rr(n,t,r){var e=-1;return t=l(t.length?t:[Mu],S(ve())),n=Yt(n,function(n){return{a:l(t,function(t){return t(n)}),b:++e,c:n}}),A(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e<o;){var c=Lr(u[e],i[e]);if(c){e=e>=f?c:c*("desc"==r[e]?-1:1);
|
||||
break n}}e=n.b-t.b}return e})}function er(n,t){return n=Ju(n),ur(n,t,function(t,r){return r in n})}function ur(n,t,r){for(var e=-1,u=t.length,i={};++e<u;){var o=t[e],f=n[o];r(f,o)&&_t(i,o,f)}return i}function ir(n){return function(t){return It(t,n)}}function or(n,t,r,e){var u=e?y:d,i=-1,o=t.length,f=n;for(n===t&&(t=Dr(t)),r&&(f=l(n,S(r)));++i<o;)for(var c=0,a=t[i],a=r?r(a):a;-1<(c=u(f,a,c,e));)f!==n&&yi.call(f,c,1),yi.call(n,c,1);return n}function fr(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];
|
||||
if(r==e||u!==i){var i=u;if(Ae(u))yi.call(n,u,1);else if(Ee(u,n))delete n[Ce(u)];else{var u=Ir(u),o=We(n,u);null!=o&&delete o[Ce(Ze(u))]}}}}function cr(n,t){return n+Oi(Di()*(t-n+1))}function ar(n,t){var r="";if(!n||1>t||9007199254740991<t)return r;do t%2&&(r+=n),(t=Oi(t/2))&&(n+=n);while(t);return r}function lr(n,t){return yo(ze(n,t,Mu),n+"")}function sr(n){return tt(Bu(n))}function hr(n,t){var r=Bu(n);return Ue(r,gt(t,0,r.length))}function pr(n,t,r,e){if(!vu(n))return n;t=Ee(t,n)?[t]:Ir(t);for(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++u<i;){
|
||||
var c=Ce(t[u]),a=r;if(u!=o){var l=f[c],a=e?e(l,c,f):F;a===F&&(a=vu(l)?l:Ae(t[u+1])?[]:{})}lt(f,c,a),f=f[c]}return n}function _r(n){return Ue(Bu(n))}function vr(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=qu(u);++e<u;)r[e]=n[e+t];return r}function gr(n,t){var r;return ro(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function dr(n,t,r){var e=0,u=null==n?e:n.length;if(typeof t=="number"&&t===t&&2147483647>=u){for(;e<u;){var i=e+u>>>1,o=n[i];null!==o&&!xu(o)&&(r?o<=t:o<t)?e=i+1:u=i;
|
||||
}return u}return yr(n,t,Mu,r)}function yr(n,t,r,e){t=r(t);for(var u=0,i=null==n?0:n.length,o=t!==t,f=null===t,c=xu(t),a=t===F;u<i;){var l=Oi((u+i)/2),s=r(n[l]),h=s!==F,p=null===s,_=s===s,v=xu(s);(o?e||_:a?_&&(e||h):f?_&&h&&(e||!p):c?_&&h&&!p&&(e||!v):p||v?0:e?s<=t:s<t)?u=l+1:i=l}return Li(i,4294967294)}function br(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r],f=t?t(o):o;if(!r||!cu(f,c)){var c=f;i[u++]=0===o?0:o}}return i}function xr(n){return typeof n=="number"?n:xu(n)?P:+n}function jr(n){
|
||||
if(typeof n=="string")return n;if(uf(n))return l(n,jr)+"";if(xu(n))return no?no.call(n):"";var t=n+"";return"0"==t&&1/n==-N?"-0":t}function wr(n,t,r){var e=-1,u=c,i=n.length,o=true,f=[],l=f;if(r)o=false,u=a;else if(200<=i){if(u=t?null:ao(n))return D(u);o=false,u=R,l=new qn}else l=t?[]:f;n:for(;++e<i;){var s=n[e],h=t?t(s):s,s=r||0!==s?s:0;if(o&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue n;t&&l.push(h),f.push(s)}else u(l,h,r)||(l!==f&&l.push(h),f.push(s))}return f}function mr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++i<u)&&t(n[i],i,n););
|
||||
return r?vr(n,e?0:i,e?i+1:u):vr(n,e?i+1:0,e?u:i)}function Ar(n,t){var r=n;return r instanceof Mn&&(r=r.value()),h(t,function(n,t){return t.func.apply(t.thisArg,s([n],t.args))},r)}function kr(n,t,r){var e=n.length;if(2>e)return e?wr(n[0]):[];for(var u=-1,i=qu(e);++u<e;)for(var o=n[u],f=-1;++f<e;){var c=n[f];c!==o&&(i[u]=jt(i[u]||o,c,t,r))}return wr(kt(i,1),t,r)}function Er(n,t,r){for(var e=-1,u=n.length,i=t.length,o={};++e<u;)r(o,n[e],e<i?t[e]:F);return o}function Or(n){return lu(n)?n:[]}function Sr(n){
|
||||
return typeof n=="function"?n:Mu}function Ir(n){return uf(n)?n:bo(n)}function Rr(n,t,r){var e=n.length;return r=r===F?e:r,!t&&r>=e?n:vr(n,t,r)}function zr(n,t){if(t)return n.slice();var r=n.length,r=_i?_i(r):new n.constructor(r);return n.copy(r),r}function Wr(n){var t=new n.constructor(n.byteLength);return new pi(t).set(new pi(n)),t}function Br(n,t){return new n.constructor(t?Wr(n.buffer):n.buffer,n.byteOffset,n.length)}function Lr(n,t){if(n!==t){var r=n!==F,e=null===n,u=n===n,i=xu(n),o=t!==F,f=null===t,c=t===t,a=xu(t);
|
||||
if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&n<t||a&&r&&u&&!e&&!i||f&&r&&u||!o&&u||!c)return-1}return 0}function Ur(n,t,r,e){var u=-1,i=n.length,o=r.length,f=-1,c=t.length,a=Bi(i-o,0),l=qu(c+a);for(e=!e;++f<c;)l[f]=t[f];for(;++u<o;)(e||u<i)&&(l[r[u]]=n[u]);for(;a--;)l[f++]=n[u++];return l}function Cr(n,t,r,e){var u=-1,i=n.length,o=-1,f=r.length,c=-1,a=t.length,l=Bi(i-f,0),s=qu(l+a);for(e=!e;++u<l;)s[u]=n[u];for(l=u;++c<a;)s[l+c]=t[c];for(;++o<f;)(e||u<i)&&(s[l+r[o]]=n[u++]);
|
||||
return s}function Dr(n,t){var r=-1,e=n.length;for(t||(t=qu(e));++r<e;)t[r]=n[r];return t}function Mr(n,t,r,e){var u=!r;r||(r={});for(var i=-1,o=t.length;++i<o;){var f=t[i],c=e?e(r[f],n[f],f,r,n):F;c===F&&(c=n[f]),u?_t(r,f,c):lt(r,f,c)}return r}function Tr(n,t){return Mr(n,so(n),t)}function $r(n,t){return function(r,u){var i=uf(r)?e:ht,o=t?t():{};return i(r,n,ve(u,2),o)}}function Fr(n){return lr(function(t,r){var e=-1,u=r.length,i=1<u?r[u-1]:F,o=2<u?r[2]:F,i=3<n.length&&typeof i=="function"?(u--,i):F;
|
||||
for(o&&ke(r[0],r[1],o)&&(i=3>u?F:i,u=1),t=Ju(t);++e<u;)(o=r[e])&&n(t,o,e,i);return t})}function Nr(n,t){return function(r,e){if(null==r)return r;if(!au(r))return n(r,e);for(var u=r.length,i=t?u:-1,o=Ju(r);(t?i--:++i<u)&&false!==e(o[i],i,o););return r}}function Pr(n){return function(t,r,e){var u=-1,i=Ju(t);e=e(t);for(var o=e.length;o--;){var f=e[n?o:++u];if(false===r(i[f],f,i))break}return t}}function Zr(n,t,r){function e(){return(this&&this!==Zn&&this instanceof e?i:n).apply(u?r:this,arguments)}var u=1&t,i=Kr(n);
|
||||
return e}function qr(n){return function(t){t=Ou(t);var r=Bn.test(t)?$(t):F,e=r?r[0]:t.charAt(0);return t=r?Rr(r,1).join(""):t.slice(1),e[n]()+t}}function Vr(n){return function(t){return h(Cu(Uu(t).replace(In,"")),n,"")}}function Kr(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]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);
|
||||
case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=to(n.prototype),t=n.apply(r,t);return vu(t)?t:r}}function Gr(n,t,e){function u(){for(var o=arguments.length,f=qu(o),c=o,a=_e(u);c--;)f[c]=arguments[c];return c=3>o&&f[0]!==a&&f[o-1]!==a?[]:C(f,a),o-=c.length,o<e?ie(n,t,Yr,u.placeholder,F,f,c,F,F,e-o):r(this&&this!==Zn&&this instanceof u?i:n,this,f)}var i=Kr(n);return u}function Hr(n){return function(t,r,e){var u=Ju(t);if(!au(t)){var i=ve(r,3);t=Ru(t),r=function(n){return i(u[n],n,u)}}return r=n(t,r,e),
|
||||
-1<r?u[i?t[r]:r]:F}}function Jr(n){return se(function(t){var r=t.length,e=r,u=zn.prototype.thru;for(n&&t.reverse();e--;){var i=t[e];if(typeof i!="function")throw new Xu("Expected a function");if(u&&!o&&"wrapper"==pe(i))var o=new zn([],true)}for(e=o?e:r;++e<r;)var i=t[e],u=pe(i),f="wrapper"==u?lo(i):F,o=f&&Oe(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?o[pe(f[0])].apply(o,f[3]):1==i.length&&Oe(i)?o[u]():o.thru(i);return function(){var n=arguments,e=n[0];if(o&&1==n.length&&uf(e)&&200<=e.length)return o.plant(e).value();
|
||||
for(var u=0,n=r?t[u].apply(this,n):e;++u<r;)n=t[u].call(this,n);return n}})}function Yr(n,t,r,e,u,i,o,f,c,a){function l(){for(var d=arguments.length,y=qu(d),b=d;b--;)y[b]=arguments[b];if(_){var x,j=_e(l),b=y.length;for(x=0;b--;)y[b]===j&&++x}if(e&&(y=Ur(y,e,u,_)),i&&(y=Cr(y,i,o,_)),d-=x,_&&d<a)return j=C(y,j),ie(n,t,Yr,l.placeholder,r,y,j,f,c,a-d);if(j=h?r:this,b=p?j[n]:n,d=y.length,f){x=y.length;for(var w=Li(f.length,x),m=Dr(y);w--;){var A=f[w];y[w]=Ae(A,x)?m[A]:F}}else v&&1<d&&y.reverse();return s&&c<d&&(y.length=c),
|
||||
this&&this!==Zn&&this instanceof l&&(b=g||Kr(b)),b.apply(j,y)}var s=128&t,h=1&t,p=2&t,_=24&t,v=512&t,g=p?F:Kr(n);return l}function Qr(n,t){return function(r,e){return Ct(r,n,t(e))}}function Xr(n,t){return function(r,e){var u;if(r===F&&e===F)return t;if(r!==F&&(u=r),e!==F){if(u===F)return e;typeof r=="string"||typeof e=="string"?(r=jr(r),e=jr(e)):(r=xr(r),e=xr(e)),u=n(r,e)}return u}}function ne(n){return se(function(t){return t=l(t,S(ve())),lr(function(e){var u=this;return n(t,function(n){return r(n,u,e);
|
||||
})})})}function te(n,t){t=t===F?" ":jr(t);var r=t.length;return 2>r?r?ar(t,n):t:(r=ar(t,Ei(n/T(t))),Bn.test(t)?Rr($(r),0,n).join(""):r.slice(0,n))}function re(n,t,e,u){function i(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=qu(l+c),h=this&&this!==Zn&&this instanceof i?f:n;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++t];return r(h,o?e:this,s)}var o=1&t,f=Kr(n);return i}function ee(n){return function(t,r,e){e&&typeof e!="number"&&ke(t,r,e)&&(r=e=F),t=wu(t),r===F?(r=t,t=0):r=wu(r),e=e===F?t<r?1:-1:wu(e);
|
||||
var u=-1;r=Bi(Ei((r-t)/(e||1)),0);for(var i=qu(r);r--;)i[n?r:++u]=t,t+=e;return i}}function ue(n){return function(t,r){return typeof t=="string"&&typeof r=="string"||(t=ku(t),r=ku(r)),n(t,r)}}function ie(n,t,r,e,u,i,o,f,c,a){var l=8&t,s=l?o:F;o=l?F:o;var h=l?i:F;return i=l?F:i,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),u=[n,t,u,h,s,i,o,f,c,a],r=r.apply(F,u),Oe(n)&&vo(r,u),r.placeholder=e,Be(r,n,t)}function oe(n){var t=Hu[n];return function(n,r){if(n=ku(n),r=Li(mu(r),292)){var e=(Ou(n)+"e").split("e"),e=t(e[0]+"e"+(+e[1]+r)),e=(Ou(e)+"e").split("e");
|
||||
return+(e[0]+"e"+(+e[1]-r))}return t(n)}}function fe(n){return function(t){var r=po(t);return"[object Map]"==r?L(t):"[object Set]"==r?M(t):O(t,n(t))}}function ce(n,t,r,e,u,i,o,f){var c=2&t;if(!c&&typeof n!="function")throw new Xu("Expected a function");var a=e?e.length:0;if(a||(t&=-97,e=u=F),o=o===F?o:Bi(mu(o),0),f=f===F?f:mu(f),a-=u?u.length:0,64&t){var l=e,s=u;e=u=F}var h=c?F:lo(n);return i=[n,t,r,e,u,l,s,i,o,f],h&&(r=i[1],n=h[1],t=r|n,e=128==n&&8==r||128==n&&256==r&&i[7].length<=h[8]||384==n&&h[7].length<=h[8]&&8==r,
|
||||
131>t||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Ur(e,r,h[4]):r,i[4]=e?C(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Cr(e,r,h[6]):r,i[6]=e?C(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Li(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],r=i[2],e=i[3],u=i[4],f=i[9]=null==i[9]?c?0:n.length:Bi(i[9]-a,0),!f&&24&t&&(t&=-25),Be((h?oo:vo)(t&&1!=t?8==t||16==t?Gr(n,t,f):32!=t&&33!=t||u.length?Yr.apply(F,i):re(n,t,r,e):Zr(n,t,r),i),n,t);
|
||||
}function ae(n,t,r,e,u,i){var o=2&u,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=1&u?new qn:F;for(i.set(n,t),i.set(t,n);++c<f;){var s=n[c],h=t[c];if(e)var p=o?e(h,s,c,t,n,i):e(s,h,c,n,t,i);if(p!==F){if(p)continue;a=false;break}if(l){if(!_(t,function(n,t){if(!R(l,t)&&(s===n||r(s,n,e,u,i)))return l.push(t)})){a=false;break}}else if(s!==h&&!r(s,h,e,u,i)){a=false;break}}return i.delete(n),i.delete(t),a}function le(n,t,r,e,u,i,o){switch(r){case"[object DataView]":
|
||||
if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)break;n=n.buffer,t=t.buffer;case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!e(new pi(n),new pi(t)))break;return true;case"[object Boolean]":case"[object Date]":case"[object Number]":return cu(+n,+t);case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object RegExp]":case"[object String]":return n==t+"";case"[object Map]":var f=L;case"[object Set]":if(f||(f=D),n.size!=t.size&&!(2&i))break;return(r=o.get(n))?r==t:(i|=1,
|
||||
o.set(n,t),t=ae(f(n),f(t),e,u,i,o),o.delete(n),t);case"[object Symbol]":if(Xi)return Xi.call(n)==Xi.call(t)}return false}function se(n){return yo(ze(n,F,Ne),n+"")}function he(n){return Rt(n,Ru,so)}function pe(n){for(var t=n.name+"",r=Vi[t],e=ui.call(Vi,t)?r.length:0;e--;){var u=r[e],i=u.func;if(null==i||i==n)return u.name}return t}function _e(n){return(ui.call(On,"placeholder")?On:n).placeholder}function ve(){var n=On.iteratee||Tu,n=n===Tu?Gt:n;return arguments.length?n(arguments[0],arguments[1]):n}function ge(n,t){
|
||||
var r=n.__data__,e=typeof t;return("string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t)?r[typeof t=="string"?"string":"hash"]:r.map}function de(n){for(var t=Ru(n),r=t.length;r--;){var e=t[r],u=n[e];t[r]=[e,u,u===u&&!vu(u)]}return t}function ye(n,t){var r=null==n?F:n[t];return Zt(r)?r:F}function be(n,t,r){t=Ee(t,n)?[t]:Ir(t);for(var e=-1,u=t.length,i=false;++e<u;){var o=Ce(t[e]);if(!(i=null!=n&&r(n,o)))break;n=n[o]}return i||++e!=u?i:(u=null==n?0:n.length,!!u&&_u(u)&&Ae(o,u)&&(uf(n)||ef(n)));
|
||||
}function xe(n){var t=n.length,r=n.constructor(t);return t&&"string"==typeof n[0]&&ui.call(n,"index")&&(r.index=n.index,r.input=n.input),r}function je(n){return typeof n.constructor!="function"||Se(n)?{}:to(vi(n))}function we(r,e,u,i){var o=r.constructor;switch(e){case"[object ArrayBuffer]":return Wr(r);case"[object Boolean]":case"[object Date]":return new o(+r);case"[object DataView]":return e=i?Wr(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.byteLength);case"[object Float32Array]":case"[object Float64Array]":
|
||||
case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Br(r,i);case"[object Map]":return e=i?u(L(r),true):L(r),h(e,n,new r.constructor);case"[object Number]":case"[object String]":return new o(r);case"[object RegExp]":return e=new r.constructor(r.source,dn.exec(r)),e.lastIndex=r.lastIndex,e;case"[object Set]":return e=i?u(D(r),true):D(r),h(e,t,new r.constructor);
|
||||
case"[object Symbol]":return Xi?Ju(Xi.call(r)):{}}}function me(n){return uf(n)||ef(n)||!!(bi&&n&&n[bi])}function Ae(n,t){return t=null==t?9007199254740991:t,!!t&&(typeof n=="number"||wn.test(n))&&-1<n&&0==n%1&&n<t}function ke(n,t,r){if(!vu(r))return false;var e=typeof t;return!!("number"==e?au(r)&&Ae(t,r.length):"string"==e&&t in r)&&cu(r[t],n)}function Ee(n,t){if(uf(n))return false;var r=typeof n;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=n&&!xu(n))||(rn.test(n)||!tn.test(n)||null!=t&&n in Ju(t));
|
||||
}function Oe(n){var t=pe(n),r=On[t];return typeof r=="function"&&t in Mn.prototype&&(n===r||(t=lo(r),!!t&&n===t[0]))}function Se(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||ti)}function Ie(n,t){return function(r){return null!=r&&(r[n]===t&&(t!==F||n in Ju(r)))}}function Re(n,t,r,e,u,i){return vu(n)&&vu(t)&&(i.set(t,n),nr(n,t,F,Re,i),i.delete(t)),n}function ze(n,t,e){return t=Bi(t===F?n.length-1:t,0),function(){for(var u=arguments,i=-1,o=Bi(u.length-t,0),f=qu(o);++i<o;)f[i]=u[t+i];
|
||||
for(i=-1,o=qu(t+1);++i<t;)o[i]=u[i];return o[t]=e(f),r(n,this,o)}}function We(n,t){return 1==t.length?n:It(n,vr(t,0,-1))}function Be(n,t,r){var e=t+"";t=yo;var u,i=Me;return u=(u=e.match(hn))?u[1].split(pn):[],r=i(u,r),(i=r.length)&&(u=i-1,r[u]=(1<i?"& ":"")+r[u],r=r.join(2<i?", ":" "),e=e.replace(sn,"{\n/* [wrapped with "+r+"] */\n")),t(n,e)}function Le(n){var t=0,r=0;return function(){var e=Ui(),u=16-(e-r);if(r=e,0<u){if(800<=++t)return arguments[0]}else t=0;return n.apply(F,arguments)}}function Ue(n,t){
|
||||
var r=-1,e=n.length,u=e-1;for(t=t===F?e:t;++r<t;){var e=cr(r,u),i=n[e];n[e]=n[r],n[r]=i}return n.length=t,n}function Ce(n){if(typeof n=="string"||xu(n))return n;var t=n+"";return"0"==t&&1/n==-N?"-0":t}function De(n){if(null!=n){try{return ei.call(n)}catch(n){}return n+""}return""}function Me(n,t){return u(Z,function(r){var e="_."+r[0];t&r[1]&&!c(n,e)&&n.push(e)}),n.sort()}function Te(n){if(n instanceof Mn)return n.clone();var t=new zn(n.__wrapped__,n.__chain__);return t.__actions__=Dr(n.__actions__),
|
||||
t.__index__=n.__index__,t.__values__=n.__values__,t}function $e(n,t,r){var e=null==n?0:n.length;return e?(r=null==r?0:mu(r),0>r&&(r=Bi(e+r,0)),g(n,ve(t,3),r)):-1}function Fe(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==F&&(u=mu(r),u=0>r?Bi(e+u,0):Li(u,e-1)),g(n,ve(t,3),u,true)}function Ne(n){return(null==n?0:n.length)?kt(n,1):[]}function Pe(n){return n&&n.length?n[0]:F}function Ze(n){var t=null==n?0:n.length;return t?n[t-1]:F}function qe(n,t){return n&&n.length&&t&&t.length?or(n,t):n;
|
||||
}function Ve(n){return null==n?n:Mi.call(n)}function Ke(n){if(!n||!n.length)return[];var t=0;return n=f(n,function(n){if(lu(n))return t=Bi(n.length,t),true}),E(t,function(t){return l(n,j(t))})}function Ge(n,t){if(!n||!n.length)return[];var e=Ke(n);return null==t?e:l(e,function(n){return r(t,F,n)})}function He(n){return n=On(n),n.__chain__=true,n}function Je(n,t){return t(n)}function Ye(){return this}function Qe(n,t){return(uf(n)?u:ro)(n,ve(t,3))}function Xe(n,t){return(uf(n)?i:eo)(n,ve(t,3))}function nu(n,t){
|
||||
return(uf(n)?l:Yt)(n,ve(t,3))}function tu(n,t,r){return t=r?F:t,t=n&&null==t?n.length:t,ce(n,128,F,F,F,F,t)}function ru(n,t){var r;if(typeof t!="function")throw new Xu("Expected a function");return n=mu(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=F),r}}function eu(n,t,r){return t=r?F:t,n=ce(n,8,F,F,F,F,F,t),n.placeholder=eu.placeholder,n}function uu(n,t,r){return t=r?F:t,n=ce(n,16,F,F,F,F,F,t),n.placeholder=uu.placeholder,n}function iu(n,t,r){function e(t){var r=c,e=a;return c=a=F,
|
||||
_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===F||r>=t||0>r||g&&n>=l}function i(){var n=Vo();if(u(n))return o(n);var r,e=go;r=n-_,n=t-(n-p),r=g?Li(n,l-r):n,h=e(i,r)}function o(n){return h=F,d&&c?e(n):(c=a=F,s)}function f(){var n=Vo(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===F)return _=n=p,h=go(i,t),v?e(n):s;if(g)return h=go(i,t),e(p)}return h===F&&(h=go(i,t)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new Xu("Expected a function");return t=ku(t)||0,vu(r)&&(v=!!r.leading,
|
||||
l=(g="maxWait"in r)?Bi(ku(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==F&&co(h),_=0,c=p=a=h=F},f.flush=function(){return h===F?s:o(Vo())},f}function ou(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new Xu("Expected a function");return r.cache=new(ou.Cache||Pn),r}function fu(n){if(typeof n!="function")throw new Xu("Expected a function");
|
||||
return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function cu(n,t){return n===t||n!==n&&t!==t}function au(n){return null!=n&&_u(n.length)&&!hu(n)}function lu(n){return gu(n)&&au(n)}function su(n){if(!gu(n))return false;var t=zt(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!yu(n);
|
||||
}function hu(n){return!!vu(n)&&(n=zt(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function pu(n){return typeof n=="number"&&n==mu(n)}function _u(n){return typeof n=="number"&&-1<n&&0==n%1&&9007199254740991>=n}function vu(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function gu(n){return null!=n&&typeof n=="object"}function du(n){return typeof n=="number"||gu(n)&&"[object Number]"==zt(n)}function yu(n){return!(!gu(n)||"[object Object]"!=zt(n))&&(n=vi(n),
|
||||
null===n||(n=ui.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&ei.call(n)==ci))}function bu(n){return typeof n=="string"||!uf(n)&&gu(n)&&"[object String]"==zt(n)}function xu(n){return typeof n=="symbol"||gu(n)&&"[object Symbol]"==zt(n)}function ju(n){if(!n)return[];if(au(n))return bu(n)?$(n):Dr(n);if(xi&&n[xi]){n=n[xi]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=po(n),("[object Map]"==t?L:"[object Set]"==t?D:Bu)(n)}function wu(n){return n?(n=ku(n),
|
||||
n===N||n===-N?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function mu(n){n=wu(n);var t=n%1;return n===n?t?n-t:n:0}function Au(n){return n?gt(mu(n),0,4294967295):0}function ku(n){if(typeof n=="number")return n;if(xu(n))return P;if(vu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=vu(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(cn,"");var t=bn.test(n);return t||jn.test(n)?Fn(n.slice(2),t?2:8):yn.test(n)?P:+n}function Eu(n){return Mr(n,zu(n))}function Ou(n){return null==n?"":jr(n);
|
||||
}function Su(n,t,r){return n=null==n?F:It(n,t),n===F?r:n}function Iu(n,t){return null!=n&&be(n,t,Lt)}function Ru(n){return au(n)?Gn(n):Ht(n)}function zu(n){if(au(n))n=Gn(n,true);else if(vu(n)){var t,r=Se(n),e=[];for(t in n)("constructor"!=t||!r&&ui.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Ju(n))t.push(r);n=t}return n}function Wu(n,t){return null==n?{}:ur(n,Rt(n,zu,ho),ve(t))}function Bu(n){return null==n?[]:I(n,Ru(n))}function Lu(n){return Mf(Ou(n).toLowerCase())}function Uu(n){return(n=Ou(n))&&n.replace(mn,rt).replace(Rn,"");
|
||||
}function Cu(n,t,r){return n=Ou(n),t=r?F:t,t===F?Ln.test(n)?n.match(Wn)||[]:n.match(_n)||[]:n.match(t)||[]}function Du(n){return function(){return n}}function Mu(n){return n}function Tu(n){return Gt(typeof n=="function"?n:dt(n,true))}function $u(n,t,r){var e=Ru(t),i=St(t,e);null!=r||vu(t)&&(i.length||!e.length)||(r=t,t=n,n=this,i=St(t,Ru(t)));var o=!(vu(r)&&"chain"in r&&!r.chain),f=hu(n);return u(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);
|
||||
return(r.__actions__=Dr(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,s([this.value()],arguments))})}),n}function Fu(){}function Nu(n){return Ee(n)?j(Ce(n)):ir(n)}function Pu(){return[]}function Zu(){return false}En=null==En?Zn:it.defaults(Zn.Object(),En,it.pick(Zn,Un));var qu=En.Array,Vu=En.Date,Ku=En.Error,Gu=En.Function,Hu=En.Math,Ju=En.Object,Yu=En.RegExp,Qu=En.String,Xu=En.TypeError,ni=qu.prototype,ti=Ju.prototype,ri=En["__core-js_shared__"],ei=Gu.prototype.toString,ui=ti.hasOwnProperty,ii=0,oi=function(){
|
||||
var n=/[^.]+$/.exec(ri&&ri.keys&&ri.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),fi=ti.toString,ci=ei.call(Ju),ai=Zn._,li=Yu("^"+ei.call(ui).replace(on,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),si=Kn?En.Buffer:F,hi=En.Symbol,pi=En.Uint8Array,_i=si?si.f:F,vi=U(Ju.getPrototypeOf,Ju),gi=Ju.create,di=ti.propertyIsEnumerable,yi=ni.splice,bi=hi?hi.isConcatSpreadable:F,xi=hi?hi.iterator:F,ji=hi?hi.toStringTag:F,wi=function(){try{var n=ye(Ju,"defineProperty");
|
||||
return n({},"",{}),n}catch(n){}}(),mi=En.clearTimeout!==Zn.clearTimeout&&En.clearTimeout,Ai=Vu&&Vu.now!==Zn.Date.now&&Vu.now,ki=En.setTimeout!==Zn.setTimeout&&En.setTimeout,Ei=Hu.ceil,Oi=Hu.floor,Si=Ju.getOwnPropertySymbols,Ii=si?si.isBuffer:F,Ri=En.isFinite,zi=ni.join,Wi=U(Ju.keys,Ju),Bi=Hu.max,Li=Hu.min,Ui=Vu.now,Ci=En.parseInt,Di=Hu.random,Mi=ni.reverse,Ti=ye(En,"DataView"),$i=ye(En,"Map"),Fi=ye(En,"Promise"),Ni=ye(En,"Set"),Pi=ye(En,"WeakMap"),Zi=ye(Ju,"create"),qi=Pi&&new Pi,Vi={},Ki=De(Ti),Gi=De($i),Hi=De(Fi),Ji=De(Ni),Yi=De(Pi),Qi=hi?hi.prototype:F,Xi=Qi?Qi.valueOf:F,no=Qi?Qi.toString:F,to=function(){
|
||||
function n(){}return function(t){return vu(t)?gi?gi(t):(n.prototype=t,t=new n,n.prototype=F,t):{}}}();On.templateSettings={escape:Q,evaluate:X,interpolate:nn,variable:"",imports:{_:On}},On.prototype=Sn.prototype,On.prototype.constructor=On,zn.prototype=to(Sn.prototype),zn.prototype.constructor=zn,Mn.prototype=to(Sn.prototype),Mn.prototype.constructor=Mn,Tn.prototype.clear=function(){this.__data__=Zi?Zi(null):{},this.size=0},Tn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],
|
||||
this.size-=n?1:0,n},Tn.prototype.get=function(n){var t=this.__data__;return Zi?(n=t[n],"__lodash_hash_undefined__"===n?F:n):ui.call(t,n)?t[n]:F},Tn.prototype.has=function(n){var t=this.__data__;return Zi?t[n]!==F:ui.call(t,n)},Tn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=Zi&&t===F?"__lodash_hash_undefined__":t,this},Nn.prototype.clear=function(){this.__data__=[],this.size=0},Nn.prototype.delete=function(n){var t=this.__data__;return n=st(t,n),!(0>n)&&(n==t.length-1?t.pop():yi.call(t,n,1),
|
||||
--this.size,true)},Nn.prototype.get=function(n){var t=this.__data__;return n=st(t,n),0>n?F:t[n][1]},Nn.prototype.has=function(n){return-1<st(this.__data__,n)},Nn.prototype.set=function(n,t){var r=this.__data__,e=st(r,n);return 0>e?(++this.size,r.push([n,t])):r[e][1]=t,this},Pn.prototype.clear=function(){this.size=0,this.__data__={hash:new Tn,map:new($i||Nn),string:new Tn}},Pn.prototype.delete=function(n){return n=ge(this,n).delete(n),this.size-=n?1:0,n},Pn.prototype.get=function(n){return ge(this,n).get(n);
|
||||
},Pn.prototype.has=function(n){return ge(this,n).has(n)},Pn.prototype.set=function(n,t){var r=ge(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},qn.prototype.add=qn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},qn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.clear=function(){this.__data__=new Nn,this.size=0},Vn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Vn.prototype.get=function(n){
|
||||
return this.__data__.get(n)},Vn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Nn){var e=r.__data__;if(!$i||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Pn(e)}return r.set(n,t),this.size=r.size,this};var ro=Nr(Et),eo=Nr(Ot,true),uo=Pr(),io=Pr(true),oo=qi?function(n,t){return qi.set(n,t),n}:Mu,fo=wi?function(n,t){return wi(n,"toString",{configurable:true,enumerable:false,value:Du(t),writable:true})}:Mu,co=mi||function(n){
|
||||
return Zn.clearTimeout(n)},ao=Ni&&1/D(new Ni([,-0]))[1]==N?function(n){return new Ni(n)}:Fu,lo=qi?function(n){return qi.get(n)}:Fu,so=Si?U(Si,Ju):Pu,ho=Si?function(n){for(var t=[];n;)s(t,so(n)),n=vi(n);return t}:Pu,po=zt;(Ti&&"[object DataView]"!=po(new Ti(new ArrayBuffer(1)))||$i&&"[object Map]"!=po(new $i)||Fi&&"[object Promise]"!=po(Fi.resolve())||Ni&&"[object Set]"!=po(new Ni)||Pi&&"[object WeakMap]"!=po(new Pi))&&(po=function(n){var t=zt(n);if(n=(n="[object Object]"==t?n.constructor:F)?De(n):"")switch(n){
|
||||
case Ki:return"[object DataView]";case Gi:return"[object Map]";case Hi:return"[object Promise]";case Ji:return"[object Set]";case Yi:return"[object WeakMap]"}return t});var _o=ri?hu:Zu,vo=Le(oo),go=ki||function(n,t){return Zn.setTimeout(n,t)},yo=Le(fo),bo=function(n){n=ou(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){n=Ou(n);var t=[];return en.test(n)&&t.push(""),n.replace(un,function(n,r,e,u){t.push(e?u.replace(vn,"$1"):r||n)}),t}),xo=lr(function(n,t){return lu(n)?jt(n,kt(t,1,lu,true)):[];
|
||||
}),jo=lr(function(n,t){var r=Ze(t);return lu(r)&&(r=F),lu(n)?jt(n,kt(t,1,lu,true),ve(r,2)):[]}),wo=lr(function(n,t){var r=Ze(t);return lu(r)&&(r=F),lu(n)?jt(n,kt(t,1,lu,true),F,r):[]}),mo=lr(function(n){var t=l(n,Or);return t.length&&t[0]===n[0]?Ut(t):[]}),Ao=lr(function(n){var t=Ze(n),r=l(n,Or);return t===Ze(r)?t=F:r.pop(),r.length&&r[0]===n[0]?Ut(r,ve(t,2)):[]}),ko=lr(function(n){var t=Ze(n),r=l(n,Or);return(t=typeof t=="function"?t:F)&&r.pop(),r.length&&r[0]===n[0]?Ut(r,F,t):[]}),Eo=lr(qe),Oo=se(function(n,t){
|
||||
var r=null==n?0:n.length,e=vt(n,t);return fr(n,l(t,function(n){return Ae(n,r)?+n:n}).sort(Lr)),e}),So=lr(function(n){return wr(kt(n,1,lu,true))}),Io=lr(function(n){var t=Ze(n);return lu(t)&&(t=F),wr(kt(n,1,lu,true),ve(t,2))}),Ro=lr(function(n){var t=Ze(n),t=typeof t=="function"?t:F;return wr(kt(n,1,lu,true),F,t)}),zo=lr(function(n,t){return lu(n)?jt(n,t):[]}),Wo=lr(function(n){return kr(f(n,lu))}),Bo=lr(function(n){var t=Ze(n);return lu(t)&&(t=F),kr(f(n,lu),ve(t,2))}),Lo=lr(function(n){var t=Ze(n),t=typeof t=="function"?t:F;
|
||||
return kr(f(n,lu),F,t)}),Uo=lr(Ke),Co=lr(function(n){var t=n.length,t=1<t?n[t-1]:F,t=typeof t=="function"?(n.pop(),t):F;return Ge(n,t)}),Do=se(function(n){function t(t){return vt(t,n)}var r=n.length,e=r?n[0]:0,u=this.__wrapped__;return!(1<r||this.__actions__.length)&&u instanceof Mn&&Ae(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:Je,args:[t],thisArg:F}),new zn(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(F),n})):this.thru(t)}),Mo=$r(function(n,t,r){ui.call(n,r)?++n[r]:_t(n,r,1);
|
||||
}),To=Hr($e),$o=Hr(Fe),Fo=$r(function(n,t,r){ui.call(n,r)?n[r].push(t):_t(n,r,[t])}),No=lr(function(n,t,e){var u=-1,i=typeof t=="function",o=Ee(t),f=au(n)?qu(n.length):[];return ro(n,function(n){var c=i?t:o&&null!=n?n[t]:F;f[++u]=c?r(c,n,e):Dt(n,t,e)}),f}),Po=$r(function(n,t,r){_t(n,r,t)}),Zo=$r(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),qo=lr(function(n,t){if(null==n)return[];var r=t.length;return 1<r&&ke(n,t[0],t[1])?t=[]:2<r&&ke(t[0],t[1],t[2])&&(t=[t[0]]),rr(n,kt(t,1),[])}),Vo=Ai||function(){
|
||||
return Zn.Date.now()},Ko=lr(function(n,t,r){var e=1;if(r.length)var u=C(r,_e(Ko)),e=32|e;return ce(n,e,t,r,u)}),Go=lr(function(n,t,r){var e=3;if(r.length)var u=C(r,_e(Go)),e=32|e;return ce(t,e,n,r,u)}),Ho=lr(function(n,t){return xt(n,1,t)}),Jo=lr(function(n,t,r){return xt(n,ku(t)||0,r)});ou.Cache=Pn;var Yo=lr(function(n,t){t=1==t.length&&uf(t[0])?l(t[0],S(ve())):l(kt(t,1),S(ve()));var e=t.length;return lr(function(u){for(var i=-1,o=Li(u.length,e);++i<o;)u[i]=t[i].call(this,u[i]);return r(n,this,u);
|
||||
})}),Qo=lr(function(n,t){return ce(n,32,F,t,C(t,_e(Qo)))}),Xo=lr(function(n,t){return ce(n,64,F,t,C(t,_e(Xo)))}),nf=se(function(n,t){return ce(n,256,F,F,F,t)}),tf=ue(Wt),rf=ue(function(n,t){return n>=t}),ef=Mt(function(){return arguments}())?Mt:function(n){return gu(n)&&ui.call(n,"callee")&&!di.call(n,"callee")},uf=qu.isArray,of=Hn?S(Hn):Tt,ff=Ii||Zu,cf=Jn?S(Jn):$t,af=Yn?S(Yn):Nt,lf=Qn?S(Qn):qt,sf=Xn?S(Xn):Vt,hf=nt?S(nt):Kt,pf=ue(Jt),_f=ue(function(n,t){return n<=t}),vf=Fr(function(n,t){if(Se(t)||au(t))Mr(t,Ru(t),n);else for(var r in t)ui.call(t,r)&<(n,r,t[r]);
|
||||
}),gf=Fr(function(n,t){Mr(t,zu(t),n)}),df=Fr(function(n,t,r,e){Mr(t,zu(t),n,e)}),yf=Fr(function(n,t,r,e){Mr(t,Ru(t),n,e)}),bf=se(vt),xf=lr(function(n){return n.push(F,ct),r(df,F,n)}),jf=lr(function(n){return n.push(F,Re),r(Ef,F,n)}),wf=Qr(function(n,t,r){n[t]=r},Du(Mu)),mf=Qr(function(n,t,r){ui.call(n,t)?n[t].push(r):n[t]=[r]},ve),Af=lr(Dt),kf=Fr(function(n,t,r){nr(n,t,r)}),Ef=Fr(function(n,t,r,e){nr(n,t,r,e)}),Of=se(function(n,t){return null==n?{}:(t=l(t,Ce),er(n,jt(Rt(n,zu,ho),t)))}),Sf=se(function(n,t){
|
||||
return null==n?{}:er(n,l(t,Ce))}),If=fe(Ru),Rf=fe(zu),zf=Vr(function(n,t,r){return t=t.toLowerCase(),n+(r?Lu(t):t)}),Wf=Vr(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Bf=Vr(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Lf=qr("toLowerCase"),Uf=Vr(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()}),Cf=Vr(function(n,t,r){return n+(r?" ":"")+Mf(t)}),Df=Vr(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Mf=qr("toUpperCase"),Tf=lr(function(n,t){try{return r(n,F,t)}catch(n){return su(n)?n:new Ku(n);
|
||||
}}),$f=se(function(n,t){return u(t,function(t){t=Ce(t),_t(n,t,Ko(n[t],n))}),n}),Ff=Jr(),Nf=Jr(true),Pf=lr(function(n,t){return function(r){return Dt(r,n,t)}}),Zf=lr(function(n,t){return function(r){return Dt(n,r,t)}}),qf=ne(l),Vf=ne(o),Kf=ne(_),Gf=ee(),Hf=ee(true),Jf=Xr(function(n,t){return n+t},0),Yf=oe("ceil"),Qf=Xr(function(n,t){return n/t},1),Xf=oe("floor"),nc=Xr(function(n,t){return n*t},1),tc=oe("round"),rc=Xr(function(n,t){return n-t},0);return On.after=function(n,t){if(typeof t!="function")throw new Xu("Expected a function");
|
||||
return n=mu(n),function(){if(1>--n)return t.apply(this,arguments)}},On.ary=tu,On.assign=vf,On.assignIn=gf,On.assignInWith=df,On.assignWith=yf,On.at=bf,On.before=ru,On.bind=Ko,On.bindAll=$f,On.bindKey=Go,On.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return uf(n)?n:[n]},On.chain=He,On.chunk=function(n,t,r){if(t=(r?ke(n,t,r):t===F)?1:Bi(mu(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=qu(Ei(r/t));e<r;)i[u++]=vr(n,e,e+=t);return i},On.compact=function(n){for(var t=-1,r=null==n?0:n.length,e=0,u=[];++t<r;){
|
||||
var i=n[t];i&&(u[e++]=i)}return u},On.concat=function(){var n=arguments.length;if(!n)return[];for(var t=qu(n-1),r=arguments[0];n--;)t[n-1]=arguments[n];return s(uf(r)?Dr(r):[r],kt(t,1))},On.cond=function(n){var t=null==n?0:n.length,e=ve();return n=t?l(n,function(n){if("function"!=typeof n[1])throw new Xu("Expected a function");return[e(n[0]),n[1]]}):[],lr(function(e){for(var u=-1;++u<t;){var i=n[u];if(r(i[0],this,e))return r(i[1],this,e)}})},On.conforms=function(n){return yt(dt(n,true))},On.constant=Du,
|
||||
On.countBy=Mo,On.create=function(n,t){var r=to(n);return null==t?r:pt(r,t)},On.curry=eu,On.curryRight=uu,On.debounce=iu,On.defaults=xf,On.defaultsDeep=jf,On.defer=Ho,On.delay=Jo,On.difference=xo,On.differenceBy=jo,On.differenceWith=wo,On.drop=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:mu(t),vr(n,0>t?0:t,e)):[]},On.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:mu(t),t=e-t,vr(n,0,0>t?0:t)):[]},On.dropRightWhile=function(n,t){return n&&n.length?mr(n,ve(t,3),true,true):[];
|
||||
},On.dropWhile=function(n,t){return n&&n.length?mr(n,ve(t,3),true):[]},On.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&ke(n,t,r)&&(r=0,e=u),u=n.length,r=mu(r),0>r&&(r=-r>u?0:u+r),e=e===F||e>u?u:mu(e),0>e&&(e+=u),e=r>e?0:Au(e);r<e;)n[r++]=t;return n},On.filter=function(n,t){return(uf(n)?f:At)(n,ve(t,3))},On.flatMap=function(n,t){return kt(nu(n,t),1)},On.flatMapDeep=function(n,t){return kt(nu(n,t),N)},On.flatMapDepth=function(n,t,r){return r=r===F?1:mu(r),
|
||||
kt(nu(n,t),r)},On.flatten=Ne,On.flattenDeep=function(n){return(null==n?0:n.length)?kt(n,N):[]},On.flattenDepth=function(n,t){return null!=n&&n.length?(t=t===F?1:mu(t),kt(n,t)):[]},On.flip=function(n){return ce(n,512)},On.flow=Ff,On.flowRight=Nf,On.fromPairs=function(n){for(var t=-1,r=null==n?0:n.length,e={};++t<r;){var u=n[t];e[u[0]]=u[1]}return e},On.functions=function(n){return null==n?[]:St(n,Ru(n))},On.functionsIn=function(n){return null==n?[]:St(n,zu(n))},On.groupBy=Fo,On.initial=function(n){
|
||||
return(null==n?0:n.length)?vr(n,0,-1):[]},On.intersection=mo,On.intersectionBy=Ao,On.intersectionWith=ko,On.invert=wf,On.invertBy=mf,On.invokeMap=No,On.iteratee=Tu,On.keyBy=Po,On.keys=Ru,On.keysIn=zu,On.map=nu,On.mapKeys=function(n,t){var r={};return t=ve(t,3),Et(n,function(n,e,u){_t(r,t(n,e,u),n)}),r},On.mapValues=function(n,t){var r={};return t=ve(t,3),Et(n,function(n,e,u){_t(r,e,t(n,e,u))}),r},On.matches=function(n){return Qt(dt(n,true))},On.matchesProperty=function(n,t){return Xt(n,dt(t,true))},On.memoize=ou,
|
||||
On.merge=kf,On.mergeWith=Ef,On.method=Pf,On.methodOf=Zf,On.mixin=$u,On.negate=fu,On.nthArg=function(n){return n=mu(n),lr(function(t){return tr(t,n)})},On.omit=Of,On.omitBy=function(n,t){return Wu(n,fu(ve(t)))},On.once=function(n){return ru(2,n)},On.orderBy=function(n,t,r,e){return null==n?[]:(uf(t)||(t=null==t?[]:[t]),r=e?F:r,uf(r)||(r=null==r?[]:[r]),rr(n,t,r))},On.over=qf,On.overArgs=Yo,On.overEvery=Vf,On.overSome=Kf,On.partial=Qo,On.partialRight=Xo,On.partition=Zo,On.pick=Sf,On.pickBy=Wu,On.property=Nu,
|
||||
On.propertyOf=function(n){return function(t){return null==n?F:It(n,t)}},On.pull=Eo,On.pullAll=qe,On.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?or(n,t,ve(r,2)):n},On.pullAllWith=function(n,t,r){return n&&n.length&&t&&t.length?or(n,t,F,r):n},On.pullAt=Oo,On.range=Gf,On.rangeRight=Hf,On.rearg=nf,On.reject=function(n,t){return(uf(n)?f:At)(n,fu(ve(t,3)))},On.remove=function(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],i=n.length;for(t=ve(t,3);++e<i;){var o=n[e];t(o,e,n)&&(r.push(o),
|
||||
u.push(e))}return fr(n,u),r},On.rest=function(n,t){if(typeof n!="function")throw new Xu("Expected a function");return t=t===F?t:mu(t),lr(n,t)},On.reverse=Ve,On.sampleSize=function(n,t,r){return t=(r?ke(n,t,r):t===F)?1:mu(t),(uf(n)?ot:hr)(n,t)},On.set=function(n,t,r){return null==n?n:pr(n,t,r)},On.setWith=function(n,t,r,e){return e=typeof e=="function"?e:F,null==n?n:pr(n,t,r,e)},On.shuffle=function(n){return(uf(n)?ft:_r)(n)},On.slice=function(n,t,r){var e=null==n?0:n.length;return e?(r&&typeof r!="number"&&ke(n,t,r)?(t=0,
|
||||
r=e):(t=null==t?0:mu(t),r=r===F?e:mu(r)),vr(n,t,r)):[]},On.sortBy=qo,On.sortedUniq=function(n){return n&&n.length?br(n):[]},On.sortedUniqBy=function(n,t){return n&&n.length?br(n,ve(t,2)):[]},On.split=function(n,t,r){return r&&typeof r!="number"&&ke(n,t,r)&&(t=r=F),r=r===F?4294967295:r>>>0,r?(n=Ou(n))&&(typeof t=="string"||null!=t&&!lf(t))&&(t=jr(t),!t&&Bn.test(n))?Rr($(n),0,r):n.split(t,r):[]},On.spread=function(n,t){if(typeof n!="function")throw new Xu("Expected a function");return t=t===F?0:Bi(mu(t),0),
|
||||
lr(function(e){var u=e[t];return e=Rr(e,0,t),u&&s(e,u),r(n,this,e)})},On.tail=function(n){var t=null==n?0:n.length;return t?vr(n,1,t):[]},On.take=function(n,t,r){return n&&n.length?(t=r||t===F?1:mu(t),vr(n,0,0>t?0:t)):[]},On.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:mu(t),t=e-t,vr(n,0>t?0:t,e)):[]},On.takeRightWhile=function(n,t){return n&&n.length?mr(n,ve(t,3),false,true):[]},On.takeWhile=function(n,t){return n&&n.length?mr(n,ve(t,3)):[]},On.tap=function(n,t){return t(n),
|
||||
n},On.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new Xu("Expected a function");return vu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),iu(n,t,{leading:e,maxWait:t,trailing:u})},On.thru=Je,On.toArray=ju,On.toPairs=If,On.toPairsIn=Rf,On.toPath=function(n){return uf(n)?l(n,Ce):xu(n)?[n]:Dr(bo(n))},On.toPlainObject=Eu,On.transform=function(n,t,r){var e=uf(n),i=e||ff(n)||hf(n);if(t=ve(t,4),null==r){var o=n&&n.constructor;r=i?e?new o:[]:vu(n)&&hu(o)?to(vi(n)):{};
|
||||
}return(i?u:Et)(n,function(n,e,u){return t(r,n,e,u)}),r},On.unary=function(n){return tu(n,1)},On.union=So,On.unionBy=Io,On.unionWith=Ro,On.uniq=function(n){return n&&n.length?wr(n):[]},On.uniqBy=function(n,t){return n&&n.length?wr(n,ve(t,2)):[]},On.uniqWith=function(n,t){return t=typeof t=="function"?t:F,n&&n.length?wr(n,F,t):[]},On.unset=function(n,t){var r;if(null==n)r=true;else{r=n;var e=t,e=Ee(e,r)?[e]:Ir(e);r=We(r,e),e=Ce(Ze(e)),r=!(null!=r&&ui.call(r,e))||delete r[e]}return r},On.unzip=Ke,On.unzipWith=Ge,
|
||||
On.update=function(n,t,r){return null==n?n:pr(n,t,Sr(r)(It(n,t)),void 0)},On.updateWith=function(n,t,r,e){return e=typeof e=="function"?e:F,null!=n&&(n=pr(n,t,Sr(r)(It(n,t)),e)),n},On.values=Bu,On.valuesIn=function(n){return null==n?[]:I(n,zu(n))},On.without=zo,On.words=Cu,On.wrap=function(n,t){return Qo(Sr(t),n)},On.xor=Wo,On.xorBy=Bo,On.xorWith=Lo,On.zip=Uo,On.zipObject=function(n,t){return Er(n||[],t||[],lt)},On.zipObjectDeep=function(n,t){return Er(n||[],t||[],pr)},On.zipWith=Co,On.entries=If,
|
||||
On.entriesIn=Rf,On.extend=gf,On.extendWith=df,$u(On,On),On.add=Jf,On.attempt=Tf,On.camelCase=zf,On.capitalize=Lu,On.ceil=Yf,On.clamp=function(n,t,r){return r===F&&(r=t,t=F),r!==F&&(r=ku(r),r=r===r?r:0),t!==F&&(t=ku(t),t=t===t?t:0),gt(ku(n),t,r)},On.clone=function(n){return dt(n,false,true)},On.cloneDeep=function(n){return dt(n,true,true)},On.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:F,dt(n,true,true,t)},On.cloneWith=function(n,t){return t=typeof t=="function"?t:F,dt(n,false,true,t)},On.conformsTo=function(n,t){
|
||||
return null==t||bt(n,t,Ru(t))},On.deburr=Uu,On.defaultTo=function(n,t){return null==n||n!==n?t:n},On.divide=Qf,On.endsWith=function(n,t,r){n=Ou(n),t=jr(t);var e=n.length,e=r=r===F?e:gt(mu(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},On.eq=cu,On.escape=function(n){return(n=Ou(n))&&Y.test(n)?n.replace(H,et):n},On.escapeRegExp=function(n){return(n=Ou(n))&&fn.test(n)?n.replace(on,"\\$&"):n},On.every=function(n,t,r){var e=uf(n)?o:wt;return r&&ke(n,t,r)&&(t=F),e(n,ve(t,3))},On.find=To,On.findIndex=$e,
|
||||
On.findKey=function(n,t){return v(n,ve(t,3),Et)},On.findLast=$o,On.findLastIndex=Fe,On.findLastKey=function(n,t){return v(n,ve(t,3),Ot)},On.floor=Xf,On.forEach=Qe,On.forEachRight=Xe,On.forIn=function(n,t){return null==n?n:uo(n,ve(t,3),zu)},On.forInRight=function(n,t){return null==n?n:io(n,ve(t,3),zu)},On.forOwn=function(n,t){return n&&Et(n,ve(t,3))},On.forOwnRight=function(n,t){return n&&Ot(n,ve(t,3))},On.get=Su,On.gt=tf,On.gte=rf,On.has=function(n,t){return null!=n&&be(n,t,Bt)},On.hasIn=Iu,On.head=Pe,
|
||||
On.identity=Mu,On.includes=function(n,t,r,e){return n=au(n)?n:Bu(n),r=r&&!e?mu(r):0,e=n.length,0>r&&(r=Bi(e+r,0)),bu(n)?r<=e&&-1<n.indexOf(t,r):!!e&&-1<d(n,t,r)},On.indexOf=function(n,t,r){var e=null==n?0:n.length;return e?(r=null==r?0:mu(r),0>r&&(r=Bi(e+r,0)),d(n,t,r)):-1},On.inRange=function(n,t,r){return t=wu(t),r===F?(r=t,t=0):r=wu(r),n=ku(n),n>=Li(t,r)&&n<Bi(t,r)},On.invoke=Af,On.isArguments=ef,On.isArray=uf,On.isArrayBuffer=of,On.isArrayLike=au,On.isArrayLikeObject=lu,On.isBoolean=function(n){
|
||||
return true===n||false===n||gu(n)&&"[object Boolean]"==zt(n)},On.isBuffer=ff,On.isDate=cf,On.isElement=function(n){return gu(n)&&1===n.nodeType&&!yu(n)},On.isEmpty=function(n){if(null==n)return true;if(au(n)&&(uf(n)||typeof n=="string"||typeof n.splice=="function"||ff(n)||hf(n)||ef(n)))return!n.length;var t=po(n);if("[object Map]"==t||"[object Set]"==t)return!n.size;if(Se(n))return!Ht(n).length;for(var r in n)if(ui.call(n,r))return false;return true},On.isEqual=function(n,t){return Ft(n,t)},On.isEqualWith=function(n,t,r){
|
||||
var e=(r=typeof r=="function"?r:F)?r(n,t):F;return e===F?Ft(n,t,r):!!e},On.isError=su,On.isFinite=function(n){return typeof n=="number"&&Ri(n)},On.isFunction=hu,On.isInteger=pu,On.isLength=_u,On.isMap=af,On.isMatch=function(n,t){return n===t||Pt(n,t,de(t))},On.isMatchWith=function(n,t,r){return r=typeof r=="function"?r:F,Pt(n,t,de(t),r)},On.isNaN=function(n){return du(n)&&n!=+n},On.isNative=function(n){if(_o(n))throw new Ku("Unsupported core-js use. Try https://github.com/es-shims.");return Zt(n)},
|
||||
On.isNil=function(n){return null==n},On.isNull=function(n){return null===n},On.isNumber=du,On.isObject=vu,On.isObjectLike=gu,On.isPlainObject=yu,On.isRegExp=lf,On.isSafeInteger=function(n){return pu(n)&&-9007199254740991<=n&&9007199254740991>=n},On.isSet=sf,On.isString=bu,On.isSymbol=xu,On.isTypedArray=hf,On.isUndefined=function(n){return n===F},On.isWeakMap=function(n){return gu(n)&&"[object WeakMap]"==po(n)},On.isWeakSet=function(n){return gu(n)&&"[object WeakSet]"==zt(n)},On.join=function(n,t){
|
||||
return null==n?"":zi.call(n,t)},On.kebabCase=Wf,On.last=Ze,On.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==F&&(u=mu(r),u=0>u?Bi(e+u,0):Li(u,e-1)),t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=g(n,b,u,true);return n},On.lowerCase=Bf,On.lowerFirst=Lf,On.lt=pf,On.lte=_f,On.max=function(n){return n&&n.length?mt(n,Mu,Wt):F},On.maxBy=function(n,t){return n&&n.length?mt(n,ve(t,2),Wt):F},On.mean=function(n){return x(n,Mu)},On.meanBy=function(n,t){return x(n,ve(t,2))},On.min=function(n){
|
||||
return n&&n.length?mt(n,Mu,Jt):F},On.minBy=function(n,t){return n&&n.length?mt(n,ve(t,2),Jt):F},On.stubArray=Pu,On.stubFalse=Zu,On.stubObject=function(){return{}},On.stubString=function(){return""},On.stubTrue=function(){return true},On.multiply=nc,On.nth=function(n,t){return n&&n.length?tr(n,mu(t)):F},On.noConflict=function(){return Zn._===this&&(Zn._=ai),this},On.noop=Fu,On.now=Vo,On.pad=function(n,t,r){n=Ou(n);var e=(t=mu(t))?T(n):0;return!t||e>=t?n:(t=(t-e)/2,te(Oi(t),r)+n+te(Ei(t),r))},On.padEnd=function(n,t,r){
|
||||
n=Ou(n);var e=(t=mu(t))?T(n):0;return t&&e<t?n+te(t-e,r):n},On.padStart=function(n,t,r){n=Ou(n);var e=(t=mu(t))?T(n):0;return t&&e<t?te(t-e,r)+n:n},On.parseInt=function(n,t,r){return r||null==t?t=0:t&&(t=+t),Ci(Ou(n).replace(an,""),t||0)},On.random=function(n,t,r){if(r&&typeof r!="boolean"&&ke(n,t,r)&&(t=r=F),r===F&&(typeof t=="boolean"?(r=t,t=F):typeof n=="boolean"&&(r=n,n=F)),n===F&&t===F?(n=0,t=1):(n=wu(n),t===F?(t=n,n=0):t=wu(t)),n>t){var e=n;n=t,t=e}return r||n%1||t%1?(r=Di(),Li(n+r*(t-n+$n("1e-"+((r+"").length-1))),t)):cr(n,t);
|
||||
},On.reduce=function(n,t,r){var e=uf(n)?h:m,u=3>arguments.length;return e(n,ve(t,4),r,u,ro)},On.reduceRight=function(n,t,r){var e=uf(n)?p:m,u=3>arguments.length;return e(n,ve(t,4),r,u,eo)},On.repeat=function(n,t,r){return t=(r?ke(n,t,r):t===F)?1:mu(t),ar(Ou(n),t)},On.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},On.result=function(n,t,r){t=Ee(t,n)?[t]:Ir(t);var e=-1,u=t.length;for(u||(n=F,u=1);++e<u;){var i=null==n?F:n[Ce(t[e])];i===F&&(e=u,i=r),n=hu(i)?i.call(n):i;
|
||||
}return n},On.round=tc,On.runInContext=w,On.sample=function(n){return(uf(n)?tt:sr)(n)},On.size=function(n){if(null==n)return 0;if(au(n))return bu(n)?T(n):n.length;var t=po(n);return"[object Map]"==t||"[object Set]"==t?n.size:Ht(n).length},On.snakeCase=Uf,On.some=function(n,t,r){var e=uf(n)?_:gr;return r&&ke(n,t,r)&&(t=F),e(n,ve(t,3))},On.sortedIndex=function(n,t){return dr(n,t)},On.sortedIndexBy=function(n,t,r){return yr(n,t,ve(r,2))},On.sortedIndexOf=function(n,t){var r=null==n?0:n.length;if(r){
|
||||
var e=dr(n,t);if(e<r&&cu(n[e],t))return e}return-1},On.sortedLastIndex=function(n,t){return dr(n,t,true)},On.sortedLastIndexBy=function(n,t,r){return yr(n,t,ve(r,2),true)},On.sortedLastIndexOf=function(n,t){if(null==n?0:n.length){var r=dr(n,t,true)-1;if(cu(n[r],t))return r}return-1},On.startCase=Cf,On.startsWith=function(n,t,r){return n=Ou(n),r=gt(mu(r),0,n.length),t=jr(t),n.slice(r,r+t.length)==t},On.subtract=rc,On.sum=function(n){return n&&n.length?k(n,Mu):0},On.sumBy=function(n,t){return n&&n.length?k(n,ve(t,2)):0;
|
||||
},On.template=function(n,t,r){var e=On.templateSettings;r&&ke(n,t,r)&&(t=F),n=Ou(n),t=df({},t,e,ct),r=df({},t.imports,e.imports,ct);var u,i,o=Ru(r),f=I(r,o),c=0;r=t.interpolate||An;var a="__p+='";r=Yu((t.escape||An).source+"|"+r.source+"|"+(r===nn?gn:An).source+"|"+(t.evaluate||An).source+"|$","g");var l="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,o,f,l){return e||(e=o),a+=n.slice(c,l).replace(kn,B),r&&(u=true,a+="'+__e("+r+")+'"),f&&(i=true,a+="';"+f+";\n__p+='"),
|
||||
e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+t.length,t}),a+="';",(t=t.variable)||(a="with(obj){"+a+"}"),a=(i?a.replace(q,""):a).replace(V,"$1").replace(K,"$1;"),a="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",t=Tf(function(){return Gu(o,l+"return "+a).apply(F,f)}),t.source=a,su(t))throw t;return t},On.times=function(n,t){if(n=mu(n),1>n||9007199254740991<n)return[];
|
||||
var r=4294967295,e=Li(n,4294967295);for(t=ve(t),n-=4294967295,e=E(e,t);++r<n;)t(r);return e},On.toFinite=wu,On.toInteger=mu,On.toLength=Au,On.toLower=function(n){return Ou(n).toLowerCase()},On.toNumber=ku,On.toSafeInteger=function(n){return gt(mu(n),-9007199254740991,9007199254740991)},On.toString=Ou,On.toUpper=function(n){return Ou(n).toUpperCase()},On.trim=function(n,t,r){return(n=Ou(n))&&(r||t===F)?n.replace(cn,""):n&&(t=jr(t))?(n=$(n),r=$(t),t=z(n,r),r=W(n,r)+1,Rr(n,t,r).join("")):n},On.trimEnd=function(n,t,r){
|
||||
return(n=Ou(n))&&(r||t===F)?n.replace(ln,""):n&&(t=jr(t))?(n=$(n),t=W(n,$(t))+1,Rr(n,0,t).join("")):n},On.trimStart=function(n,t,r){return(n=Ou(n))&&(r||t===F)?n.replace(an,""):n&&(t=jr(t))?(n=$(n),t=z(n,$(t)),Rr(n,t).join("")):n},On.truncate=function(n,t){var r=30,e="...";if(vu(t))var u="separator"in t?t.separator:u,r="length"in t?mu(t.length):r,e="omission"in t?jr(t.omission):e;n=Ou(n);var i=n.length;if(Bn.test(n))var o=$(n),i=o.length;if(r>=i)return n;if(i=r-T(e),1>i)return e;if(r=o?Rr(o,0,i).join(""):n.slice(0,i),
|
||||
u===F)return r+e;if(o&&(i+=r.length-i),lf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Yu(u.source,Ou(dn.exec(u))+"g")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===F?i:c)}}else n.indexOf(jr(u),i)!=i&&(u=r.lastIndexOf(u),-1<u&&(r=r.slice(0,u)));return r+e},On.unescape=function(n){return(n=Ou(n))&&J.test(n)?n.replace(G,ut):n},On.uniqueId=function(n){var t=++ii;return Ou(n)+t},On.upperCase=Df,On.upperFirst=Mf,On.each=Qe,On.eachRight=Xe,On.first=Pe,$u(On,function(){var n={};return Et(On,function(t,r){
|
||||
ui.call(On.prototype,r)||(n[r]=t)}),n}(),{chain:false}),On.VERSION="4.16.5",u("bind bindKey curry curryRight partial partialRight".split(" "),function(n){On[n].placeholder=On}),u(["drop","take"],function(n,t){Mn.prototype[n]=function(r){var e=this.__filtered__;if(e&&!t)return new Mn(this);r=r===F?1:Bi(mu(r),0);var u=this.clone();return e?u.__takeCount__=Li(r,u.__takeCount__):u.__views__.push({size:Li(r,4294967295),type:n+(0>u.__dir__?"Right":"")}),u},Mn.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse();
|
||||
}}),u(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;Mn.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:ve(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),u(["head","last"],function(n,t){var r="take"+(t?"Right":"");Mn.prototype[n]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Mn.prototype[n]=function(){return this.__filtered__?new Mn(this):this[r](1)}}),Mn.prototype.compact=function(){
|
||||
return this.filter(Mu)},Mn.prototype.find=function(n){return this.filter(n).head()},Mn.prototype.findLast=function(n){return this.reverse().find(n)},Mn.prototype.invokeMap=lr(function(n,t){return typeof n=="function"?new Mn(this):this.map(function(r){return Dt(r,n,t)})}),Mn.prototype.reject=function(n){return this.filter(fu(ve(n)))},Mn.prototype.slice=function(n,t){n=mu(n);var r=this;return r.__filtered__&&(0<n||0>t)?new Mn(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==F&&(t=mu(t),r=0>t?r.dropRight(-t):r.take(t-n)),
|
||||
r)},Mn.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Mn.prototype.toArray=function(){return this.take(4294967295)},Et(Mn.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=On[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(On.prototype[t]=function(){function t(n){return n=u.apply(On,s([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Mn,a=f[0],l=c||uf(o);l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);
|
||||
var h=this.__chain__,p=!!this.__actions__.length,a=i&&!h,c=c&&!p;return!i&&l?(o=c?o:new Mn(this),o=n.apply(o,f),o.__actions__.push({func:Je,args:[t],thisArg:F}),new zn(o,h)):a&&c?n.apply(this,f):(o=this.thru(t),a?e?o.value()[0]:o.value():o)})}),u("pop push shift sort splice unshift".split(" "),function(n){var t=ni[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);On.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(uf(u)?u:[],n);
|
||||
}return this[r](function(r){return t.apply(uf(r)?r:[],n)})}}),Et(Mn.prototype,function(n,t){var r=On[t];if(r){var e=r.name+"";(Vi[e]||(Vi[e]=[])).push({name:t,func:r})}}),Vi[Yr(F,2).name]=[{name:"wrapper",func:F}],Mn.prototype.clone=function(){var n=new Mn(this.__wrapped__);return n.__actions__=Dr(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Dr(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Dr(this.__views__),n},Mn.prototype.reverse=function(){
|
||||
if(this.__filtered__){var n=new Mn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Mn.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=uf(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c<a;){var l=o[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":n-=s;break;case"take":n=Li(n,f+s);break;case"takeRight":f=Bi(f,n-s)}}if(n={start:f,end:n},o=n.start,f=n.end,n=f-o,u=u?f:o-1,o=this.__iteratees__,f=o.length,
|
||||
c=0,a=Li(n,this.__takeCount__),!e||200>i||i==n&&a==n)return Ar(t,this.__actions__);e=[];n:for(;n--&&c<a;){for(u+=r,i=-1,l=t[u];++i<f;){var h=o[i],s=h.type,h=(0,h.iteratee)(l);if(2==s)l=h;else if(!h){if(1==s)continue n;break n}}e[c++]=l}return e},On.prototype.at=Do,On.prototype.chain=function(){return He(this)},On.prototype.commit=function(){return new zn(this.value(),this.__chain__)},On.prototype.next=function(){this.__values__===F&&(this.__values__=ju(this.value()));var n=this.__index__>=this.__values__.length;
|
||||
return{done:n,value:n?F:this.__values__[this.__index__++]}},On.prototype.plant=function(n){for(var t,r=this;r instanceof Sn;){var e=Te(r);e.__index__=0,e.__values__=F,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},On.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Mn?(this.__actions__.length&&(n=new Mn(this)),n=n.reverse(),n.__actions__.push({func:Je,args:[Ve],thisArg:F}),new zn(n,this.__chain__)):this.thru(Ve)},On.prototype.toJSON=On.prototype.valueOf=On.prototype.value=function(){
|
||||
return Ar(this.__wrapped__,this.__actions__)},On.prototype.first=On.prototype.head,xi&&(On.prototype[xi]=Ye),On}();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Zn._=it, define(function(){return it})):Vn?((Vn.exports=it)._=it,qn._=it):Zn._=it}).call(this);
|
||||
144
dist/mapping.fp.js
vendored
144
dist/mapping.fp.js
vendored
@@ -63,11 +63,20 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'entries': 'toPairs',
|
||||
'entriesIn': 'toPairsIn',
|
||||
'extend': 'assignIn',
|
||||
'extendAll': 'assignInAll',
|
||||
'extendAllWith': 'assignInAllWith',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
|
||||
// Methods that are curried variants of others.
|
||||
'conforms': 'conformsTo',
|
||||
'matches': 'isMatch',
|
||||
'property': 'get',
|
||||
|
||||
// Ramda aliases.
|
||||
'__': 'placeholder',
|
||||
'F': 'stubFalse',
|
||||
'T': 'stubTrue',
|
||||
'all': 'every',
|
||||
'allPass': 'overEvery',
|
||||
'always': 'constant',
|
||||
@@ -81,8 +90,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'contains': 'includes',
|
||||
'dissoc': 'unset',
|
||||
'dissocPath': 'unset',
|
||||
'dropLast': 'dropRight',
|
||||
'dropLastWhile': 'dropRightWhile',
|
||||
'equals': 'isEqual',
|
||||
'identical': 'eq',
|
||||
'indexBy': 'keyBy',
|
||||
'init': 'initial',
|
||||
'invertObj': 'invert',
|
||||
'juxt': 'over',
|
||||
@@ -94,40 +106,49 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'paths': 'at',
|
||||
'pickAll': 'pick',
|
||||
'pipe': 'flow',
|
||||
'pluck': 'map',
|
||||
'prop': 'get',
|
||||
'propEq': 'matchesProperty',
|
||||
'propOr': 'getOr',
|
||||
'props': 'at',
|
||||
'symmetricDifference': 'xor',
|
||||
'symmetricDifferenceBy': 'xorBy',
|
||||
'symmetricDifferenceWith': 'xorWith',
|
||||
'takeLast': 'takeRight',
|
||||
'takeLastWhile': 'takeRightWhile',
|
||||
'unapply': 'rest',
|
||||
'unnest': 'flatten',
|
||||
'useWith': 'overArgs',
|
||||
'whereEq': 'filter',
|
||||
'where': 'conformsTo',
|
||||
'whereEq': 'isMatch',
|
||||
'zipObj': 'zipObject'
|
||||
};
|
||||
|
||||
/** Used to map ary to method names. */
|
||||
exports.aryMethod = {
|
||||
'1': [
|
||||
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
|
||||
'flow', 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
|
||||
'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest', 'reverse',
|
||||
'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',
|
||||
'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',
|
||||
'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',
|
||||
'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',
|
||||
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
|
||||
'uniqueId', 'words'
|
||||
'uniqueId', 'words', 'zipAll'
|
||||
],
|
||||
'2': [
|
||||
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
|
||||
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
||||
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith',
|
||||
'eq', 'every', 'filter', 'find', 'find', 'findIndex', 'findKey', 'findLast',
|
||||
'findLastIndex', 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth',
|
||||
'forEach', 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight',
|
||||
'get', 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf',
|
||||
'intersection', 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch',
|
||||
'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues',
|
||||
'matchesProperty', 'maxBy', 'meanBy', 'merge', 'minBy', 'multiply', 'nth',
|
||||
'omit', 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
|
||||
'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
|
||||
'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',
|
||||
'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',
|
||||
'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',
|
||||
'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',
|
||||
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',
|
||||
'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',
|
||||
'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',
|
||||
'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',
|
||||
'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',
|
||||
'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',
|
||||
'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',
|
||||
'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',
|
||||
'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',
|
||||
'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',
|
||||
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
|
||||
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
||||
@@ -139,12 +160,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
],
|
||||
'3': [
|
||||
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
|
||||
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'invokeArgs',
|
||||
'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', 'mergeWith',
|
||||
'orderBy', 'padChars', 'padCharsEnd', 'padCharsStart', 'pullAllBy',
|
||||
'pullAllWith', 'reduce', 'reduceRight', 'replace', 'set', 'slice',
|
||||
'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith',
|
||||
'update', 'xorBy', 'xorWith', 'zipWith'
|
||||
'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',
|
||||
'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',
|
||||
'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',
|
||||
'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',
|
||||
'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',
|
||||
'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',
|
||||
'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',
|
||||
'xorWith', 'zipWith'
|
||||
],
|
||||
'4': [
|
||||
'fill', 'setWith', 'updateWith'
|
||||
@@ -165,10 +188,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'every': 1,
|
||||
'filter': 1,
|
||||
'find': 1,
|
||||
'findFrom': 1,
|
||||
'findIndex': 1,
|
||||
'findIndexFrom': 1,
|
||||
'findKey': 1,
|
||||
'findLast': 1,
|
||||
'findLastFrom': 1,
|
||||
'findLastIndex': 1,
|
||||
'findLastIndexFrom': 1,
|
||||
'findLastKey': 1,
|
||||
'flatMap': 1,
|
||||
'flatMapDeep': 1,
|
||||
@@ -201,31 +228,53 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/** Used to map method names to rearg configs. */
|
||||
exports.methodRearg = {
|
||||
'assignInAllWith': [1, 2, 0],
|
||||
'assignInWith': [1, 2, 0],
|
||||
'assignAllWith': [1, 2, 0],
|
||||
'assignWith': [1, 2, 0],
|
||||
'differenceBy': [1, 2, 0],
|
||||
'differenceWith': [1, 2, 0],
|
||||
'getOr': [2, 1, 0],
|
||||
'intersectionBy': [1, 2, 0],
|
||||
'intersectionWith': [1, 2, 0],
|
||||
'isEqualWith': [1, 2, 0],
|
||||
'isMatchWith': [2, 1, 0],
|
||||
'mergeAllWith': [1, 2, 0],
|
||||
'mergeWith': [1, 2, 0],
|
||||
'padChars': [2, 1, 0],
|
||||
'padCharsEnd': [2, 1, 0],
|
||||
'padCharsStart': [2, 1, 0],
|
||||
'pullAllBy': [2, 1, 0],
|
||||
'pullAllWith': [2, 1, 0],
|
||||
'rangeStep': [1, 2, 0],
|
||||
'rangeStepRight': [1, 2, 0],
|
||||
'setWith': [3, 1, 2, 0],
|
||||
'sortedIndexBy': [2, 1, 0],
|
||||
'sortedLastIndexBy': [2, 1, 0],
|
||||
'unionBy': [1, 2, 0],
|
||||
'unionWith': [1, 2, 0],
|
||||
'updateWith': [3, 1, 2, 0],
|
||||
'xorBy': [1, 2, 0],
|
||||
'xorWith': [1, 2, 0],
|
||||
'zipWith': [1, 2, 0]
|
||||
};
|
||||
|
||||
/** Used to map method names to spread configs. */
|
||||
exports.methodSpread = {
|
||||
'invokeArgs': 2,
|
||||
'invokeArgsMap': 2,
|
||||
'partial': 1,
|
||||
'partialRight': 1,
|
||||
'without': 1
|
||||
'assignAll': { 'start': 0 },
|
||||
'assignAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'assignInAll': { 'start': 0 },
|
||||
'assignInAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'defaultsAll': { 'start': 0 },
|
||||
'defaultsDeepAll': { 'start': 0 },
|
||||
'invokeArgs': { 'start': 2 },
|
||||
'invokeArgsMap': { 'start': 2 },
|
||||
'mergeAll': { 'start': 0 },
|
||||
'mergeAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'partial': { 'start': 1 },
|
||||
'partialRight': { 'start': 1 },
|
||||
'without': { 'start': 1 },
|
||||
'zipAll': { 'start': 0 }
|
||||
};
|
||||
|
||||
/** Used to identify methods which mutate arrays or objects. */
|
||||
@@ -242,13 +291,21 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
},
|
||||
'object': {
|
||||
'assign': true,
|
||||
'assignAll': true,
|
||||
'assignAllWith': true,
|
||||
'assignIn': true,
|
||||
'assignInAll': true,
|
||||
'assignInAllWith': true,
|
||||
'assignInWith': true,
|
||||
'assignWith': true,
|
||||
'defaults': true,
|
||||
'defaultsAll': true,
|
||||
'defaultsDeep': true,
|
||||
'defaultsDeepAll': true,
|
||||
'merge': true,
|
||||
'mergeWith': true
|
||||
'mergeAll': true,
|
||||
'mergeAllWith': true,
|
||||
'mergeWith': true,
|
||||
},
|
||||
'set': {
|
||||
'set': true,
|
||||
@@ -288,19 +345,38 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/** Used to map method names to other names. */
|
||||
exports.remap = {
|
||||
'assignAll': 'assign',
|
||||
'assignAllWith': 'assignWith',
|
||||
'assignInAll': 'assignIn',
|
||||
'assignInAllWith': 'assignInWith',
|
||||
'curryN': 'curry',
|
||||
'curryRightN': 'curryRight',
|
||||
'defaultsAll': 'defaults',
|
||||
'defaultsDeepAll': 'defaultsDeep',
|
||||
'findFrom': 'find',
|
||||
'findIndexFrom': 'findIndex',
|
||||
'findLastFrom': 'findLast',
|
||||
'findLastIndexFrom': 'findLastIndex',
|
||||
'getOr': 'get',
|
||||
'includesFrom': 'includes',
|
||||
'indexOfFrom': 'indexOf',
|
||||
'invokeArgs': 'invoke',
|
||||
'invokeArgsMap': 'invokeMap',
|
||||
'lastIndexOfFrom': 'lastIndexOf',
|
||||
'mergeAll': 'merge',
|
||||
'mergeAllWith': 'mergeWith',
|
||||
'padChars': 'pad',
|
||||
'padCharsEnd': 'padEnd',
|
||||
'padCharsStart': 'padStart',
|
||||
'propertyOf': 'get',
|
||||
'rangeStep': 'range',
|
||||
'rangeStepRight': 'rangeRight',
|
||||
'restFrom': 'rest',
|
||||
'spreadFrom': 'spread',
|
||||
'trimChars': 'trim',
|
||||
'trimCharsEnd': 'trimEnd',
|
||||
'trimCharsStart': 'trimStart'
|
||||
'trimCharsStart': 'trimStart',
|
||||
'zipAll': 'zip'
|
||||
};
|
||||
|
||||
/** Used to track methods that skip fixing their arity. */
|
||||
@@ -310,6 +386,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'flowRight': true,
|
||||
'iteratee': true,
|
||||
'mixin': true,
|
||||
'rearg': true,
|
||||
'runInContext': true
|
||||
};
|
||||
|
||||
@@ -335,13 +412,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'overArgs': true,
|
||||
'partial': true,
|
||||
'partialRight': true,
|
||||
'propertyOf': true,
|
||||
'random': true,
|
||||
'range': true,
|
||||
'rangeRight': true,
|
||||
'subtract': true,
|
||||
'without': true,
|
||||
'zip': true,
|
||||
'zipObject': true
|
||||
'zipObject': true,
|
||||
'zipObjectDeep': true
|
||||
};
|
||||
|
||||
|
||||
|
||||
2956
doc/README.md
2956
doc/README.md
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,4 @@
|
||||
var mapping = require('./_mapping'),
|
||||
mutateMap = mapping.mutate,
|
||||
fallbackHolder = require('./placeholder');
|
||||
|
||||
/**
|
||||
@@ -71,11 +70,11 @@ function createCloner(func) {
|
||||
* @param {Function} cloner The function to clone arguments.
|
||||
* @returns {Function} Returns the new immutable function.
|
||||
*/
|
||||
function immutWrap(func, cloner) {
|
||||
function wrapImmutable(func, cloner) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return result;
|
||||
return;
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
@@ -143,6 +142,7 @@ function baseConvert(util, name, func, options) {
|
||||
'keys': util.keys,
|
||||
'rearg': util.rearg,
|
||||
'spread': util.spread,
|
||||
'toInteger': util.toInteger,
|
||||
'toPath': util.toPath
|
||||
};
|
||||
|
||||
@@ -156,6 +156,7 @@ function baseConvert(util, name, func, options) {
|
||||
keys = helpers.keys,
|
||||
rearg = helpers.rearg,
|
||||
spread = helpers.spread,
|
||||
toInteger = helpers.toInteger,
|
||||
toPath = helpers.toPath;
|
||||
|
||||
var aryMethodKeys = keys(mapping.aryMethod);
|
||||
@@ -189,30 +190,38 @@ function baseConvert(util, name, func, options) {
|
||||
if (!isFunction(func)) {
|
||||
return mixin(func, Object(source));
|
||||
}
|
||||
var methods = [],
|
||||
methodNames = [];
|
||||
|
||||
var pairs = [];
|
||||
each(keys(source), function(key) {
|
||||
var value = source[key];
|
||||
if (isFunction(value)) {
|
||||
methodNames.push(key);
|
||||
methods.push(func.prototype[key]);
|
||||
if (isFunction(source[key])) {
|
||||
pairs.push([key, func.prototype[key]]);
|
||||
}
|
||||
});
|
||||
|
||||
mixin(func, Object(source));
|
||||
|
||||
each(methodNames, function(methodName, index) {
|
||||
var method = methods[index];
|
||||
if (isFunction(method)) {
|
||||
func.prototype[methodName] = method;
|
||||
each(pairs, function(pair) {
|
||||
var value = pair[1];
|
||||
if (isFunction(value)) {
|
||||
func.prototype[pair[0]] = value;
|
||||
} else {
|
||||
delete func.prototype[methodName];
|
||||
delete func.prototype[pair[0]];
|
||||
}
|
||||
});
|
||||
return func;
|
||||
};
|
||||
},
|
||||
'nthArg': function(nthArg) {
|
||||
return function(n) {
|
||||
var arity = n < 0 ? 1 : (toInteger(n) + 1);
|
||||
return curry(nthArg(n), arity);
|
||||
};
|
||||
},
|
||||
'rearg': function(rearg) {
|
||||
return function(func, indexes) {
|
||||
var arity = indexes ? indexes.length : 0;
|
||||
return curry(rearg(func, indexes), arity);
|
||||
};
|
||||
},
|
||||
'runInContext': function(runInContext) {
|
||||
return function(context) {
|
||||
return baseConvert(util, runInContext(context), options);
|
||||
@@ -222,6 +231,77 @@ function baseConvert(util, name, func, options) {
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Casts `func` to a function with an arity capped iteratee if needed.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to inspect.
|
||||
* @param {Function} func The function to inspect.
|
||||
* @returns {Function} Returns the cast function.
|
||||
*/
|
||||
function castCap(name, func) {
|
||||
if (config.cap) {
|
||||
var indexes = mapping.iterateeRearg[name];
|
||||
if (indexes) {
|
||||
return iterateeRearg(func, indexes);
|
||||
}
|
||||
var n = !isLib && mapping.iterateeAry[name];
|
||||
if (n) {
|
||||
return iterateeAry(func, n);
|
||||
}
|
||||
}
|
||||
return func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Casts `func` to a curried function if needed.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to inspect.
|
||||
* @param {Function} func The function to inspect.
|
||||
* @param {number} n The arity of `func`.
|
||||
* @returns {Function} Returns the cast function.
|
||||
*/
|
||||
function castCurry(name, func, n) {
|
||||
return (forceCurry || (config.curry && n > 1))
|
||||
? curry(func, n)
|
||||
: func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Casts `func` to a fixed arity function if needed.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to inspect.
|
||||
* @param {Function} func The function to inspect.
|
||||
* @param {number} n The arity cap.
|
||||
* @returns {Function} Returns the cast function.
|
||||
*/
|
||||
function castFixed(name, func, n) {
|
||||
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
|
||||
var data = mapping.methodSpread[name],
|
||||
start = data && data.start;
|
||||
|
||||
return start === undefined ? ary(func, n) : spread(func, start);
|
||||
}
|
||||
return func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Casts `func` to an rearged function if needed.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to inspect.
|
||||
* @param {Function} func The function to inspect.
|
||||
* @param {number} n The arity of `func`.
|
||||
* @returns {Function} Returns the cast function.
|
||||
*/
|
||||
function castRearg(name, func, n) {
|
||||
return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))
|
||||
? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])
|
||||
: func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a clone of `object` by `path`.
|
||||
*
|
||||
@@ -235,6 +315,7 @@ function baseConvert(util, name, func, options) {
|
||||
|
||||
var index = -1,
|
||||
length = path.length,
|
||||
lastIndex = length - 1,
|
||||
result = clone(Object(object)),
|
||||
nested = result;
|
||||
|
||||
@@ -243,7 +324,7 @@ function baseConvert(util, name, func, options) {
|
||||
value = nested[key];
|
||||
|
||||
if (value != null) {
|
||||
nested[key] = clone(Object(value));
|
||||
nested[path[index]] = clone(index == lastIndex ? value : Object(value));
|
||||
}
|
||||
nested = nested[key];
|
||||
}
|
||||
@@ -269,13 +350,16 @@ function baseConvert(util, name, func, options) {
|
||||
* @returns {Function} Returns the new converter function.
|
||||
*/
|
||||
function createConverter(name, func) {
|
||||
var oldOptions = options;
|
||||
var realName = mapping.aliasToReal[name] || name,
|
||||
methodName = mapping.remap[realName] || realName,
|
||||
oldOptions = options;
|
||||
|
||||
return function(options) {
|
||||
var newUtil = isLib ? pristine : helpers,
|
||||
newFunc = isLib ? pristine[name] : func,
|
||||
newFunc = isLib ? pristine[methodName] : func,
|
||||
newOptions = assign(assign({}, oldOptions), options);
|
||||
|
||||
return baseConvert(newUtil, name, newFunc, newOptions);
|
||||
return baseConvert(newUtil, realName, newFunc, newOptions);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -313,12 +397,11 @@ function baseConvert(util, name, func, options) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that invokes `func` with its first argument passed
|
||||
* thru `transform`.
|
||||
* Creates a function that invokes `func` with its first argument transformed.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {...Function} transform The functions to transform the first argument.
|
||||
* @param {Function} transform The argument transform.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function overArg(func, transform) {
|
||||
@@ -347,53 +430,37 @@ function baseConvert(util, name, func, options) {
|
||||
* @returns {Function} Returns the converted function.
|
||||
*/
|
||||
function wrap(name, func) {
|
||||
name = mapping.aliasToReal[name] || name;
|
||||
|
||||
var result,
|
||||
realName = mapping.aliasToReal[name] || name,
|
||||
wrapped = func,
|
||||
wrapper = wrappers[name];
|
||||
wrapper = wrappers[realName];
|
||||
|
||||
if (wrapper) {
|
||||
wrapped = wrapper(func);
|
||||
}
|
||||
else if (config.immutable) {
|
||||
if (mutateMap.array[name]) {
|
||||
wrapped = immutWrap(func, cloneArray);
|
||||
if (mapping.mutate.array[realName]) {
|
||||
wrapped = wrapImmutable(func, cloneArray);
|
||||
}
|
||||
else if (mutateMap.object[name]) {
|
||||
wrapped = immutWrap(func, createCloner(func));
|
||||
else if (mapping.mutate.object[realName]) {
|
||||
wrapped = wrapImmutable(func, createCloner(func));
|
||||
}
|
||||
else if (mutateMap.set[name]) {
|
||||
wrapped = immutWrap(func, cloneByPath);
|
||||
else if (mapping.mutate.set[realName]) {
|
||||
wrapped = wrapImmutable(func, cloneByPath);
|
||||
}
|
||||
}
|
||||
each(aryMethodKeys, function(aryKey) {
|
||||
each(mapping.aryMethod[aryKey], function(otherName) {
|
||||
if (name == otherName) {
|
||||
var aryN = !isLib && mapping.iterateeAry[name],
|
||||
reargIndexes = mapping.iterateeRearg[name],
|
||||
spreadStart = mapping.methodSpread[name];
|
||||
if (realName == otherName) {
|
||||
var spreadData = mapping.methodSpread[realName],
|
||||
afterRearg = spreadData && spreadData.afterRearg;
|
||||
|
||||
result = wrapped;
|
||||
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
|
||||
result = spreadStart === undefined
|
||||
? ary(result, aryKey)
|
||||
: spread(result, spreadStart);
|
||||
}
|
||||
if (config.rearg && aryKey > 1 && (forceRearg || !mapping.skipRearg[name])) {
|
||||
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[aryKey]);
|
||||
}
|
||||
if (config.cap) {
|
||||
if (reargIndexes) {
|
||||
result = iterateeRearg(result, reargIndexes);
|
||||
} else if (aryN) {
|
||||
result = iterateeAry(result, aryN);
|
||||
}
|
||||
}
|
||||
if (forceCurry || (config.curry && aryKey > 1)) {
|
||||
forceCurry && console.log(forceCurry, name);
|
||||
result = curry(result, aryKey);
|
||||
}
|
||||
result = afterRearg
|
||||
? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)
|
||||
: castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);
|
||||
|
||||
result = castCap(realName, result);
|
||||
result = castCurry(realName, result, aryKey);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@@ -406,8 +473,8 @@ function baseConvert(util, name, func, options) {
|
||||
return func.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
result.convert = createConverter(name, func);
|
||||
if (mapping.placeholder[name]) {
|
||||
result.convert = createConverter(realName, func);
|
||||
if (mapping.placeholder[realName]) {
|
||||
setPlaceholder = true;
|
||||
result.placeholder = func.placeholder = placeholder;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ function browserConvert(lodash, options) {
|
||||
return baseConvert(lodash, lodash, options);
|
||||
}
|
||||
|
||||
if (typeof _ == 'function') {
|
||||
if (typeof _ == 'function' && typeof _.runInContext == 'function') {
|
||||
_ = browserConvert(_.runInContext());
|
||||
}
|
||||
module.exports = browserConvert;
|
||||
|
||||
144
fp/_mapping.js
144
fp/_mapping.js
@@ -7,11 +7,20 @@ exports.aliasToReal = {
|
||||
'entries': 'toPairs',
|
||||
'entriesIn': 'toPairsIn',
|
||||
'extend': 'assignIn',
|
||||
'extendAll': 'assignInAll',
|
||||
'extendAllWith': 'assignInAllWith',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
|
||||
// Methods that are curried variants of others.
|
||||
'conforms': 'conformsTo',
|
||||
'matches': 'isMatch',
|
||||
'property': 'get',
|
||||
|
||||
// Ramda aliases.
|
||||
'__': 'placeholder',
|
||||
'F': 'stubFalse',
|
||||
'T': 'stubTrue',
|
||||
'all': 'every',
|
||||
'allPass': 'overEvery',
|
||||
'always': 'constant',
|
||||
@@ -25,8 +34,11 @@ exports.aliasToReal = {
|
||||
'contains': 'includes',
|
||||
'dissoc': 'unset',
|
||||
'dissocPath': 'unset',
|
||||
'dropLast': 'dropRight',
|
||||
'dropLastWhile': 'dropRightWhile',
|
||||
'equals': 'isEqual',
|
||||
'identical': 'eq',
|
||||
'indexBy': 'keyBy',
|
||||
'init': 'initial',
|
||||
'invertObj': 'invert',
|
||||
'juxt': 'over',
|
||||
@@ -38,40 +50,49 @@ exports.aliasToReal = {
|
||||
'paths': 'at',
|
||||
'pickAll': 'pick',
|
||||
'pipe': 'flow',
|
||||
'pluck': 'map',
|
||||
'prop': 'get',
|
||||
'propEq': 'matchesProperty',
|
||||
'propOr': 'getOr',
|
||||
'props': 'at',
|
||||
'symmetricDifference': 'xor',
|
||||
'symmetricDifferenceBy': 'xorBy',
|
||||
'symmetricDifferenceWith': 'xorWith',
|
||||
'takeLast': 'takeRight',
|
||||
'takeLastWhile': 'takeRightWhile',
|
||||
'unapply': 'rest',
|
||||
'unnest': 'flatten',
|
||||
'useWith': 'overArgs',
|
||||
'whereEq': 'filter',
|
||||
'where': 'conformsTo',
|
||||
'whereEq': 'isMatch',
|
||||
'zipObj': 'zipObject'
|
||||
};
|
||||
|
||||
/** Used to map ary to method names. */
|
||||
exports.aryMethod = {
|
||||
'1': [
|
||||
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
|
||||
'flow', 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
|
||||
'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest', 'reverse',
|
||||
'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',
|
||||
'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',
|
||||
'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',
|
||||
'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',
|
||||
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
|
||||
'uniqueId', 'words'
|
||||
'uniqueId', 'words', 'zipAll'
|
||||
],
|
||||
'2': [
|
||||
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
|
||||
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
||||
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith',
|
||||
'eq', 'every', 'filter', 'find', 'find', 'findIndex', 'findKey', 'findLast',
|
||||
'findLastIndex', 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth',
|
||||
'forEach', 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight',
|
||||
'get', 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf',
|
||||
'intersection', 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch',
|
||||
'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues',
|
||||
'matchesProperty', 'maxBy', 'meanBy', 'merge', 'minBy', 'multiply', 'nth',
|
||||
'omit', 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
|
||||
'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
|
||||
'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',
|
||||
'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',
|
||||
'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',
|
||||
'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',
|
||||
'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',
|
||||
'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',
|
||||
'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',
|
||||
'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',
|
||||
'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',
|
||||
'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',
|
||||
'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',
|
||||
'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',
|
||||
'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',
|
||||
'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',
|
||||
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
|
||||
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
||||
@@ -83,12 +104,14 @@ exports.aryMethod = {
|
||||
],
|
||||
'3': [
|
||||
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
|
||||
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'invokeArgs',
|
||||
'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', 'mergeWith',
|
||||
'orderBy', 'padChars', 'padCharsEnd', 'padCharsStart', 'pullAllBy',
|
||||
'pullAllWith', 'reduce', 'reduceRight', 'replace', 'set', 'slice',
|
||||
'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith',
|
||||
'update', 'xorBy', 'xorWith', 'zipWith'
|
||||
'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',
|
||||
'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',
|
||||
'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',
|
||||
'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',
|
||||
'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',
|
||||
'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',
|
||||
'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',
|
||||
'xorWith', 'zipWith'
|
||||
],
|
||||
'4': [
|
||||
'fill', 'setWith', 'updateWith'
|
||||
@@ -109,10 +132,14 @@ exports.iterateeAry = {
|
||||
'every': 1,
|
||||
'filter': 1,
|
||||
'find': 1,
|
||||
'findFrom': 1,
|
||||
'findIndex': 1,
|
||||
'findIndexFrom': 1,
|
||||
'findKey': 1,
|
||||
'findLast': 1,
|
||||
'findLastFrom': 1,
|
||||
'findLastIndex': 1,
|
||||
'findLastIndexFrom': 1,
|
||||
'findLastKey': 1,
|
||||
'flatMap': 1,
|
||||
'flatMapDeep': 1,
|
||||
@@ -145,31 +172,53 @@ exports.iterateeRearg = {
|
||||
|
||||
/** Used to map method names to rearg configs. */
|
||||
exports.methodRearg = {
|
||||
'assignInAllWith': [1, 2, 0],
|
||||
'assignInWith': [1, 2, 0],
|
||||
'assignAllWith': [1, 2, 0],
|
||||
'assignWith': [1, 2, 0],
|
||||
'differenceBy': [1, 2, 0],
|
||||
'differenceWith': [1, 2, 0],
|
||||
'getOr': [2, 1, 0],
|
||||
'intersectionBy': [1, 2, 0],
|
||||
'intersectionWith': [1, 2, 0],
|
||||
'isEqualWith': [1, 2, 0],
|
||||
'isMatchWith': [2, 1, 0],
|
||||
'mergeAllWith': [1, 2, 0],
|
||||
'mergeWith': [1, 2, 0],
|
||||
'padChars': [2, 1, 0],
|
||||
'padCharsEnd': [2, 1, 0],
|
||||
'padCharsStart': [2, 1, 0],
|
||||
'pullAllBy': [2, 1, 0],
|
||||
'pullAllWith': [2, 1, 0],
|
||||
'rangeStep': [1, 2, 0],
|
||||
'rangeStepRight': [1, 2, 0],
|
||||
'setWith': [3, 1, 2, 0],
|
||||
'sortedIndexBy': [2, 1, 0],
|
||||
'sortedLastIndexBy': [2, 1, 0],
|
||||
'unionBy': [1, 2, 0],
|
||||
'unionWith': [1, 2, 0],
|
||||
'updateWith': [3, 1, 2, 0],
|
||||
'xorBy': [1, 2, 0],
|
||||
'xorWith': [1, 2, 0],
|
||||
'zipWith': [1, 2, 0]
|
||||
};
|
||||
|
||||
/** Used to map method names to spread configs. */
|
||||
exports.methodSpread = {
|
||||
'invokeArgs': 2,
|
||||
'invokeArgsMap': 2,
|
||||
'partial': 1,
|
||||
'partialRight': 1,
|
||||
'without': 1
|
||||
'assignAll': { 'start': 0 },
|
||||
'assignAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'assignInAll': { 'start': 0 },
|
||||
'assignInAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'defaultsAll': { 'start': 0 },
|
||||
'defaultsDeepAll': { 'start': 0 },
|
||||
'invokeArgs': { 'start': 2 },
|
||||
'invokeArgsMap': { 'start': 2 },
|
||||
'mergeAll': { 'start': 0 },
|
||||
'mergeAllWith': { 'afterRearg': true, 'start': 1 },
|
||||
'partial': { 'start': 1 },
|
||||
'partialRight': { 'start': 1 },
|
||||
'without': { 'start': 1 },
|
||||
'zipAll': { 'start': 0 }
|
||||
};
|
||||
|
||||
/** Used to identify methods which mutate arrays or objects. */
|
||||
@@ -186,13 +235,21 @@ exports.mutate = {
|
||||
},
|
||||
'object': {
|
||||
'assign': true,
|
||||
'assignAll': true,
|
||||
'assignAllWith': true,
|
||||
'assignIn': true,
|
||||
'assignInAll': true,
|
||||
'assignInAllWith': true,
|
||||
'assignInWith': true,
|
||||
'assignWith': true,
|
||||
'defaults': true,
|
||||
'defaultsAll': true,
|
||||
'defaultsDeep': true,
|
||||
'defaultsDeepAll': true,
|
||||
'merge': true,
|
||||
'mergeWith': true
|
||||
'mergeAll': true,
|
||||
'mergeAllWith': true,
|
||||
'mergeWith': true,
|
||||
},
|
||||
'set': {
|
||||
'set': true,
|
||||
@@ -232,19 +289,38 @@ exports.realToAlias = (function() {
|
||||
|
||||
/** Used to map method names to other names. */
|
||||
exports.remap = {
|
||||
'assignAll': 'assign',
|
||||
'assignAllWith': 'assignWith',
|
||||
'assignInAll': 'assignIn',
|
||||
'assignInAllWith': 'assignInWith',
|
||||
'curryN': 'curry',
|
||||
'curryRightN': 'curryRight',
|
||||
'defaultsAll': 'defaults',
|
||||
'defaultsDeepAll': 'defaultsDeep',
|
||||
'findFrom': 'find',
|
||||
'findIndexFrom': 'findIndex',
|
||||
'findLastFrom': 'findLast',
|
||||
'findLastIndexFrom': 'findLastIndex',
|
||||
'getOr': 'get',
|
||||
'includesFrom': 'includes',
|
||||
'indexOfFrom': 'indexOf',
|
||||
'invokeArgs': 'invoke',
|
||||
'invokeArgsMap': 'invokeMap',
|
||||
'lastIndexOfFrom': 'lastIndexOf',
|
||||
'mergeAll': 'merge',
|
||||
'mergeAllWith': 'mergeWith',
|
||||
'padChars': 'pad',
|
||||
'padCharsEnd': 'padEnd',
|
||||
'padCharsStart': 'padStart',
|
||||
'propertyOf': 'get',
|
||||
'rangeStep': 'range',
|
||||
'rangeStepRight': 'rangeRight',
|
||||
'restFrom': 'rest',
|
||||
'spreadFrom': 'spread',
|
||||
'trimChars': 'trim',
|
||||
'trimCharsEnd': 'trimEnd',
|
||||
'trimCharsStart': 'trimStart'
|
||||
'trimCharsStart': 'trimStart',
|
||||
'zipAll': 'zip'
|
||||
};
|
||||
|
||||
/** Used to track methods that skip fixing their arity. */
|
||||
@@ -254,6 +330,7 @@ exports.skipFixed = {
|
||||
'flowRight': true,
|
||||
'iteratee': true,
|
||||
'mixin': true,
|
||||
'rearg': true,
|
||||
'runInContext': true
|
||||
};
|
||||
|
||||
@@ -279,11 +356,12 @@ exports.skipRearg = {
|
||||
'overArgs': true,
|
||||
'partial': true,
|
||||
'partialRight': true,
|
||||
'propertyOf': true,
|
||||
'random': true,
|
||||
'range': true,
|
||||
'rangeRight': true,
|
||||
'subtract': true,
|
||||
'without': true,
|
||||
'zip': true,
|
||||
'zipObject': true
|
||||
'zipObject': true,
|
||||
'zipObjectDeep': true
|
||||
};
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
glob = require('glob'),
|
||||
path = require('path');
|
||||
const _ = require('lodash');
|
||||
const fs = require('fs-extra');
|
||||
const glob = require('glob');
|
||||
const path = require('path');
|
||||
|
||||
var minify = require('../common/minify.js');
|
||||
const minify = require('../common/minify.js');
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
@@ -23,15 +23,15 @@ function copy(srcPath, destPath) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an object of compiled template and base name pairs that match `pattern`.
|
||||
* Creates an object of base name and compiled template pairs that match `pattern`.
|
||||
*
|
||||
* @memberOf file
|
||||
* @param {string} pattern The glob pattern to be match.
|
||||
* @returns {Object} Returns the object of compiled templates.
|
||||
*/
|
||||
function globTemplate(pattern) {
|
||||
return _.transform(glob.sync(pattern), function(result, filePath) {
|
||||
var key = path.basename(filePath, path.extname(filePath));
|
||||
return _.transform(glob.sync(pattern), (result, filePath) => {
|
||||
const key = path.basename(filePath, path.extname(filePath));
|
||||
result[key] = _.template(fs.readFileSync(filePath, 'utf8'));
|
||||
}, {});
|
||||
}
|
||||
@@ -64,8 +64,8 @@ function write(destPath, data) {
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
module.exports = {
|
||||
'copy': copy,
|
||||
'globTemplate': globTemplate,
|
||||
'min': min,
|
||||
'write': write
|
||||
copy,
|
||||
globTemplate,
|
||||
min,
|
||||
write
|
||||
};
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
'use strict';
|
||||
|
||||
var _mapping = require('../../fp/_mapping'),
|
||||
util = require('./util'),
|
||||
Hash = util.Hash;
|
||||
const _mapping = require('../../fp/_mapping');
|
||||
const util = require('./util');
|
||||
const Hash = util.Hash;
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
uglify = require('uglify-js');
|
||||
const _ = require('lodash');
|
||||
const fs = require('fs-extra');
|
||||
const uglify = require('uglify-js');
|
||||
|
||||
var uglifyOptions = require('./uglify.options');
|
||||
const uglifyOptions = require('./uglify.options');
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
@@ -13,8 +13,8 @@ var uglifyOptions = require('./uglify.options');
|
||||
* invokes `callback` upon completion. The callback is invoked with one argument:
|
||||
* (error).
|
||||
*
|
||||
* If unspecified, `destPath` is `srcPath` with an extension of `.min.js`. For
|
||||
* example, a `srcPath` of `path/to/foo.js` would have a `destPath` of `path/to/foo.min.js`.
|
||||
* If unspecified, `destPath` is `srcPath` with an extension of `.min.js`.
|
||||
* (e.g. the `destPath` of `path/to/foo.js` would be `path/to/foo.min.js`)
|
||||
*
|
||||
* @param {string} srcPath The path of the file to minify.
|
||||
* @param {string} [destPath] The path to write the file to.
|
||||
@@ -32,7 +32,7 @@ function minify(srcPath, destPath, callback, options) {
|
||||
if (!destPath) {
|
||||
destPath = srcPath.replace(/(?=\.js$)/, '.min');
|
||||
}
|
||||
var output = uglify.minify(srcPath, _.defaults(options || {}, uglifyOptions));
|
||||
const output = uglify.minify(srcPath, _.defaults(options || {}, uglifyOptions));
|
||||
fs.writeFile(destPath, output.code, 'utf-8', callback);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,17 +8,15 @@
|
||||
*/
|
||||
module.exports = {
|
||||
'compress': {
|
||||
'collapse_vars': true,
|
||||
'negate_iife': false,
|
||||
'pure_getters': true,
|
||||
'unsafe': true,
|
||||
'unsafe_comps': true,
|
||||
'warnings': false
|
||||
},
|
||||
'mangle': {
|
||||
'except': ['define']
|
||||
},
|
||||
'output': {
|
||||
'ascii_only': true,
|
||||
'comments': /^!|@cc_on|@license|@preserve/i,
|
||||
'comments': /@license/,
|
||||
'max_line_len': 500
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash');
|
||||
const _ = require('lodash');
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Creates a hash object. If a `properties` object is provided, its own
|
||||
* enumerable properties are assigned to the created object.
|
||||
* enumerable properties are assigned to the created hash.
|
||||
*
|
||||
* @memberOf util
|
||||
* @param {Object} [properties] The properties to assign to the object.
|
||||
* @param {Object} [properties] The properties to assign to the hash.
|
||||
* @returns {Object} Returns the new hash object.
|
||||
*/
|
||||
function Hash(properties) {
|
||||
return _.transform(properties, function(result, value, key) {
|
||||
return _.transform(properties, (result, value, key) => {
|
||||
result[key] = (_.isPlainObject(value) && !(value instanceof Hash))
|
||||
? new Hash(value)
|
||||
: value;
|
||||
@@ -22,6 +22,19 @@ function Hash(properties) {
|
||||
|
||||
Hash.prototype = Object.create(null);
|
||||
|
||||
/**
|
||||
* This method throws any error it receives.
|
||||
*
|
||||
* @memberOf util
|
||||
* @param {Object} [error] The error object.
|
||||
*/
|
||||
function pitch(error) {
|
||||
if (error != null) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
'Hash': Hash
|
||||
Hash,
|
||||
pitch
|
||||
};
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
async = require('async'),
|
||||
path = require('path'),
|
||||
webpack = require('webpack');
|
||||
const _ = require('lodash');
|
||||
const async = require('async');
|
||||
const path = require('path');
|
||||
const webpack = require('webpack');
|
||||
|
||||
var file = require('../common/file');
|
||||
const file = require('../common/file');
|
||||
const util = require('../common/util');
|
||||
|
||||
var basePath = path.join(__dirname, '..', '..'),
|
||||
distPath = path.join(basePath, 'dist'),
|
||||
fpPath = path.join(basePath, 'fp'),
|
||||
filename = 'lodash.fp.js';
|
||||
const basePath = path.join(__dirname, '..', '..');
|
||||
const distPath = path.join(basePath, 'dist');
|
||||
const fpPath = path.join(basePath, 'fp');
|
||||
const filename = 'lodash.fp.js';
|
||||
|
||||
var fpConfig = {
|
||||
const fpConfig = {
|
||||
'entry': path.join(fpPath, '_convertBrowser.js'),
|
||||
'output': {
|
||||
'path': distPath,
|
||||
@@ -26,7 +27,7 @@ var fpConfig = {
|
||||
]
|
||||
};
|
||||
|
||||
var mappingConfig = {
|
||||
const mappingConfig = {
|
||||
'entry': path.join(fpPath, '_mapping.js'),
|
||||
'output': {
|
||||
'path': distPath,
|
||||
@@ -38,18 +39,18 @@ var mappingConfig = {
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function onComplete(error) {
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates browser builds of the FP converter and mappings at the `target` path.
|
||||
*
|
||||
* @private
|
||||
* @param {string} target The output directory path.
|
||||
*/
|
||||
function build() {
|
||||
async.series([
|
||||
_.partial(webpack, mappingConfig),
|
||||
_.partial(webpack, fpConfig),
|
||||
file.min(path.join(distPath, filename))
|
||||
], onComplete);
|
||||
], util.pitch);
|
||||
}
|
||||
|
||||
build();
|
||||
|
||||
@@ -1,44 +1,57 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
path = require('path');
|
||||
const _ = require('lodash');
|
||||
const fs = require('fs-extra');
|
||||
const path = require('path');
|
||||
|
||||
var file = require('../common/file'),
|
||||
mapping = require('../common/mapping');
|
||||
const file = require('../common/file');
|
||||
const mapping = require('../common/mapping');
|
||||
const util = require('../common/util');
|
||||
|
||||
var templatePath = path.join(__dirname, 'template/doc'),
|
||||
template = file.globTemplate(path.join(templatePath, '*.jst'));
|
||||
const templatePath = path.join(__dirname, 'template/doc');
|
||||
const template = file.globTemplate(path.join(templatePath, '*.jst'));
|
||||
|
||||
var argNames = ['a', 'b', 'c', 'd'];
|
||||
const argNames = ['a', 'b', 'c', 'd'];
|
||||
|
||||
var templateData = {
|
||||
'mapping': mapping,
|
||||
'toArgOrder': toArgOrder,
|
||||
'toFuncList': toFuncList
|
||||
const templateData = {
|
||||
mapping,
|
||||
toArgOrder,
|
||||
toFuncList
|
||||
};
|
||||
|
||||
function toArgOrder(array) {
|
||||
var reordered = [];
|
||||
_.each(array, function(newIndex, index) {
|
||||
/**
|
||||
* Converts arranged argument `indexes` into a named argument string
|
||||
* representation of their order.
|
||||
*
|
||||
* @private
|
||||
* @param {number[]} indexes The arranged argument indexes.
|
||||
* @returns {string} Returns the named argument string.
|
||||
*/
|
||||
function toArgOrder(indexes) {
|
||||
const reordered = [];
|
||||
_.each(indexes, (newIndex, index) => {
|
||||
reordered[newIndex] = argNames[index];
|
||||
});
|
||||
return '`(' + reordered.join(', ') + ')`';
|
||||
}
|
||||
|
||||
function toFuncList(array) {
|
||||
var chunks = _.chunk(array.slice().sort(), 5),
|
||||
lastChunk = _.last(chunks),
|
||||
last = lastChunk ? lastChunk.pop() : undefined;
|
||||
/**
|
||||
* Converts `funcNames` into a chunked list string representation.
|
||||
*
|
||||
* @private
|
||||
* @param {string[]} funcNames The function names.
|
||||
* @returns {string} Returns the function list string.
|
||||
*/
|
||||
function toFuncList(funcNames) {
|
||||
let chunks = _.chunk(funcNames.slice().sort(), 5);
|
||||
let lastChunk = _.last(chunks);
|
||||
const lastName = lastChunk ? lastChunk.pop() : undefined;
|
||||
|
||||
chunks = _.reject(chunks, _.isEmpty);
|
||||
lastChunk = _.last(chunks);
|
||||
|
||||
var result = '`' + _.map(chunks, function(chunk) {
|
||||
return chunk.join('`, `') + '`';
|
||||
}).join(',\n`');
|
||||
|
||||
if (last == null) {
|
||||
let result = '`' + _.map(chunks, chunk => chunk.join('`, `') + '`').join(',\n`');
|
||||
if (lastName == null) {
|
||||
return result;
|
||||
}
|
||||
if (_.size(chunks) > 1 || _.size(lastChunk) > 1) {
|
||||
@@ -46,20 +59,20 @@ function toFuncList(array) {
|
||||
}
|
||||
result += ' &';
|
||||
result += _.size(lastChunk) < 5 ? ' ' : '\n';
|
||||
return result + '`' + last + '`';
|
||||
return result + '`' + lastName + '`';
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function onComplete(error) {
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the FP-Guide wiki at the `target` path.
|
||||
*
|
||||
* @private
|
||||
* @param {string} target The output file path.
|
||||
*/
|
||||
function build(target) {
|
||||
target = path.resolve(target);
|
||||
fs.writeFile(target, template.wiki(templateData), onComplete);
|
||||
fs.writeFile(target, template.wiki(templateData), util.pitch);
|
||||
}
|
||||
|
||||
build(_.last(process.argv));
|
||||
|
||||
@@ -1,24 +1,25 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
async = require('async'),
|
||||
glob = require('glob'),
|
||||
path = require('path');
|
||||
const _ = require('lodash');
|
||||
const async = require('async');
|
||||
const glob = require('glob');
|
||||
const path = require('path');
|
||||
|
||||
var file = require('../common/file'),
|
||||
mapping = require('../common/mapping');
|
||||
const file = require('../common/file');
|
||||
const mapping = require('../common/mapping');
|
||||
const util = require('../common/util');
|
||||
|
||||
var templatePath = path.join(__dirname, 'template/modules'),
|
||||
template = file.globTemplate(path.join(templatePath, '*.jst'));
|
||||
const templatePath = path.join(__dirname, 'template/modules');
|
||||
const template = file.globTemplate(path.join(templatePath, '*.jst'));
|
||||
|
||||
var aryMethods = _.union(
|
||||
const aryMethods = _.union(
|
||||
mapping.aryMethod[1],
|
||||
mapping.aryMethod[2],
|
||||
mapping.aryMethod[3],
|
||||
mapping.aryMethod[4]
|
||||
);
|
||||
|
||||
var categories = [
|
||||
const categories = [
|
||||
'array',
|
||||
'collection',
|
||||
'date',
|
||||
@@ -32,7 +33,7 @@ var categories = [
|
||||
'util'
|
||||
];
|
||||
|
||||
var ignored = [
|
||||
const ignored = [
|
||||
'_*.js',
|
||||
'core.js',
|
||||
'core.min.js',
|
||||
@@ -42,21 +43,50 @@ var ignored = [
|
||||
'lodash.min.js'
|
||||
];
|
||||
|
||||
function isAlias(funcName) {
|
||||
return _.has(mapping.aliasToReal, funcName);
|
||||
/**
|
||||
* Checks if `name` is a method alias.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name to check.
|
||||
* @returns {boolean} Returns `true` if `name` is a method alias, else `false`.
|
||||
*/
|
||||
function isAlias(name) {
|
||||
return _.has(mapping.aliasToReal, name);
|
||||
}
|
||||
|
||||
function isCategory(funcName) {
|
||||
return _.includes(categories, funcName);
|
||||
/**
|
||||
* Checks if `name` is a category name.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name to check.
|
||||
* @returns {boolean} Returns `true` if `name` is a category name, else `false`.
|
||||
*/
|
||||
function isCategory(name) {
|
||||
return _.includes(categories, name);
|
||||
}
|
||||
|
||||
function isThru(funcName) {
|
||||
return !_.includes(aryMethods, funcName);
|
||||
/**
|
||||
* Checks if `name` belongs to a method that's passed thru and not wrapped.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name to check.
|
||||
* @returns {boolean} Returns `true` if `name` is of a pass thru method,
|
||||
* else `false`.
|
||||
*/
|
||||
function isThru(name) {
|
||||
return !_.includes(aryMethods, name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets metadata for `func`.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to query.
|
||||
* @returns {*} Returns the metadata for `func`.
|
||||
*/
|
||||
function getTemplate(moduleName) {
|
||||
var data = {
|
||||
'name': _.result(mapping.aliasToReal, moduleName, moduleName),
|
||||
const data = {
|
||||
'name': _.get(mapping.aliasToReal, moduleName, moduleName),
|
||||
'mapping': mapping
|
||||
};
|
||||
|
||||
@@ -74,37 +104,37 @@ function getTemplate(moduleName) {
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function onComplete(error) {
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates FP modules at the `target` path.
|
||||
*
|
||||
* @private
|
||||
* @param {string} target The output directory path.
|
||||
*/
|
||||
function build(target) {
|
||||
target = path.resolve(target);
|
||||
|
||||
var fpPath = path.join(target, 'fp');
|
||||
const fpPath = path.join(target, 'fp');
|
||||
|
||||
// Glob existing lodash module paths.
|
||||
var modulePaths = glob.sync(path.join(target, '*.js'), {
|
||||
const modulePaths = glob.sync(path.join(target, '*.js'), {
|
||||
'nodir': true,
|
||||
'ignore': ignored.map(function(filename) {
|
||||
'ignore': ignored.map(filename => {
|
||||
return path.join(target, filename);
|
||||
})
|
||||
});
|
||||
|
||||
// Add FP alias and remapped module paths.
|
||||
_.each([mapping.aliasToReal, mapping.remap], function(data) {
|
||||
_.forOwn(data, function(realName, alias) {
|
||||
var modulePath = path.join(target, alias + '.js');
|
||||
_.each([mapping.aliasToReal, mapping.remap], data => {
|
||||
_.forOwn(data, (realName, alias) => {
|
||||
const modulePath = path.join(target, alias + '.js');
|
||||
if (!_.includes(modulePaths, modulePath)) {
|
||||
modulePaths.push(modulePath);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var actions = modulePaths.map(function(modulePath) {
|
||||
var moduleName = path.basename(modulePath, '.js');
|
||||
const actions = modulePaths.map(modulePath => {
|
||||
const moduleName = path.basename(modulePath, '.js');
|
||||
return file.write(path.join(fpPath, moduleName + '.js'), getTemplate(moduleName));
|
||||
});
|
||||
|
||||
@@ -114,7 +144,7 @@ function build(target) {
|
||||
actions.push(file.write(path.join(target, 'fp.js'), template.fp()));
|
||||
actions.push(file.write(path.join(fpPath, 'convert.js'), template.convert()));
|
||||
|
||||
async.series(actions, onComplete);
|
||||
async.series(actions, util.pitch);
|
||||
}
|
||||
|
||||
build(_.last(process.argv));
|
||||
|
||||
@@ -1,26 +1,27 @@
|
||||
## lodash/fp
|
||||
|
||||
The `lodash/fp` module is an instance of `lodash` with its methods wrapped to
|
||||
produce immutable auto-curried iteratee-first data-last methods.
|
||||
The `lodash/fp` module promotes a more
|
||||
[functional programming](https://en.wikipedia.org/wiki/Functional_programming)
|
||||
(FP) friendly style by exporting an instance of `lodash` with its methods wrapped
|
||||
to produce immutable auto-curried iteratee-first data-last methods.
|
||||
|
||||
## Installation
|
||||
|
||||
In a browser:
|
||||
```html
|
||||
<script src='path/to/lodash.js'></script>
|
||||
<script src='path/to/lodash.fp.js'></script>
|
||||
<script src='https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)'></script>
|
||||
<script>
|
||||
// Loading `lodash.fp.js` converts `_` to its fp variant.
|
||||
_.defaults({ 'a': 2, 'b': 2 })({ 'a': 1 });
|
||||
// → { 'a: 1, 'b': 2 }
|
||||
// ➜ { 'a': 1, 'b': 2 }
|
||||
|
||||
// Use `noConflict` to restore the pre-fp variant.
|
||||
var fp = _.noConflict();
|
||||
|
||||
_.defaults({ 'a': 1 }, { 'a': 2, 'b': 2 });
|
||||
// → { 'a: 1, 'b': 2 }
|
||||
// ➜ { 'a': 1, 'b': 2 }
|
||||
fp.defaults({ 'a': 2, 'b': 2 })({ 'a': 1 });
|
||||
// → { 'a: 1, 'b': 2 }
|
||||
// ➜ { 'a': 1, 'b': 2 }
|
||||
</script>
|
||||
```
|
||||
|
||||
@@ -49,12 +50,12 @@ Iteratee arguments are capped to avoid gotchas with variadic iteratees.
|
||||
// The `lodash/map` iteratee receives three arguments:
|
||||
// (value, index|key, collection)
|
||||
_.map(['6', '8', '10'], parseInt);
|
||||
// → [6, NaN, 2]
|
||||
// ➜ [6, NaN, 2]
|
||||
|
||||
// The `lodash/fp/map` iteratee is capped at one argument:
|
||||
// (value)
|
||||
fp.map(parseInt)(['6', '8', '10']);
|
||||
// → [6, 8, 10]
|
||||
// ➜ [6, 8, 10]
|
||||
```
|
||||
|
||||
Methods that cap iteratees to one argument:<br>
|
||||
@@ -71,13 +72,13 @@ Methods have fixed arities to support auto-currying.
|
||||
```js
|
||||
// `lodash/padStart` accepts an optional `chars` param.
|
||||
_.padStart('a', 3, '-')
|
||||
// → '--a'
|
||||
// ➜ '--a'
|
||||
|
||||
// `lodash/fp/padStart` does not.
|
||||
fp.padStart(3)('a');
|
||||
// → ' a'
|
||||
// ➜ ' a'
|
||||
fp.padCharsStart('-')(3)('a');
|
||||
// → '--a'
|
||||
// ➜ '--a'
|
||||
```
|
||||
|
||||
Methods with a fixed arity of one:<br>
|
||||
@@ -100,13 +101,13 @@ Method arguments are rearranged to make composition easier.
|
||||
// (collection, iteratee)
|
||||
var compact = _.partial(_.filter, _, Boolean);
|
||||
compact(['a', null, 'c']);
|
||||
// → ['a', 'c']
|
||||
// ➜ ['a', 'c']
|
||||
|
||||
// `lodash/fp/filter` is iteratee-first data-last:
|
||||
// (iteratee, collection)
|
||||
var compact = fp.filter(Boolean);
|
||||
compact(['a', null, 'c']);
|
||||
// → ['a', 'c']
|
||||
// ➜ ['a', 'c']
|
||||
```
|
||||
|
||||
##### Most methods follow these rules
|
||||
@@ -122,15 +123,15 @@ A fixed arity of four has an argument order of:<br>
|
||||
|
||||
##### Exceptions to the rules
|
||||
|
||||
Methods that accept an array of arguments as their second parameter:<br>
|
||||
Methods that accept an array as their last or only argument:<br>
|
||||
<%= toFuncList(_.keys(mapping.methodSpread)) %>
|
||||
|
||||
Methods with unchanged argument orders:<br>
|
||||
<%= toFuncList(_.keys(mapping.skipRearg)) %>
|
||||
|
||||
Methods with custom argument orders:<br>
|
||||
<%= _.map(_.keys(mapping.methodRearg), function(methodName) {
|
||||
var orders = mapping.methodRearg[methodName];
|
||||
<%= _.map(_.keys(mapping.methodRearg), methodName => {
|
||||
const orders = mapping.methodRearg[methodName];
|
||||
return ' * `_.' + methodName + '` has an order of ' + toArgOrder(orders);
|
||||
}).join('\n') %>
|
||||
|
||||
@@ -146,8 +147,8 @@ Methods created to accommodate Lodash’s variadic methods:<br>
|
||||
#### Aliases
|
||||
|
||||
There are <%= _.size(mapping.aliasToReal) %> method aliases:<br>
|
||||
<%= _.map(_.keys(mapping.aliasToReal).sort(), function(alias) {
|
||||
var realName = mapping.aliasToReal[alias];
|
||||
<%= _.map(_.keys(mapping.aliasToReal).sort(), alias => {
|
||||
const realName = mapping.aliasToReal[alias];
|
||||
return ' * `_.' + alias + '` is an alias of `_.' + realName + '`';
|
||||
}).join('\n') %>
|
||||
|
||||
@@ -159,11 +160,11 @@ arguments of the curried returned function.
|
||||
```js
|
||||
// The equivalent of `2 > 5`.
|
||||
_.gt(2)(5);
|
||||
// → false
|
||||
// ➜ false
|
||||
|
||||
// The equivalent of `_.gt(5, 2)` or `5 > 2`.
|
||||
_.gt(_, 2)(5);
|
||||
// → true
|
||||
// ➜ true
|
||||
```
|
||||
|
||||
## Chaining
|
||||
@@ -218,3 +219,8 @@ var fp = convert({
|
||||
// Convert by `lodash` instance.
|
||||
var fp = convert(lodash.runInContext());
|
||||
```
|
||||
|
||||
## Tooling
|
||||
|
||||
Use [eslint-plugin-lodash-fp](https://www.npmjs.com/package/eslint-plugin-lodash-fp)
|
||||
to help use `lodash/fp` more efficiently.
|
||||
|
||||
@@ -10,5 +10,6 @@ module.exports = {
|
||||
'keys': require('../_baseKeys'),
|
||||
'rearg': require('../rearg'),
|
||||
'spread': require('../spread'),
|
||||
'toInteger': require('../toInteger'),
|
||||
'toPath': require('../toPath')
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var convert = require('./convert'),
|
||||
func = convert('<%= name %>', require('../<%= _.result(mapping.remap, name, name) %>'));
|
||||
func = convert('<%= name %>', require('../<%= _.get(mapping.remap, name, name) %>'));
|
||||
|
||||
func.placeholder = require('./placeholder');
|
||||
module.exports = func;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var convert = require('./convert'),
|
||||
func = convert('<%= name %>', require('../<%= _.result(mapping.remap, name, name) %>'), require('./_falseOptions'));
|
||||
func = convert('<%= name %>', require('../<%= _.get(mapping.remap, name, name) %>'), require('./_falseOptions'));
|
||||
|
||||
func.placeholder = require('./placeholder');
|
||||
module.exports = func;
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
async = require('async'),
|
||||
path = require('path');
|
||||
const async = require('async');
|
||||
const path = require('path');
|
||||
|
||||
var file = require('../common/file');
|
||||
const file = require('../common/file');
|
||||
const util = require('../common/util');
|
||||
|
||||
var basePath = path.join(__dirname, '..', '..'),
|
||||
distPath = path.join(basePath, 'dist'),
|
||||
filename = 'lodash.js';
|
||||
const basePath = path.join(__dirname, '..', '..');
|
||||
const distPath = path.join(basePath, 'dist');
|
||||
const filename = 'lodash.js';
|
||||
|
||||
var baseLodash = path.join(basePath, filename),
|
||||
distLodash = path.join(distPath, filename);
|
||||
const baseLodash = path.join(basePath, filename);
|
||||
const distLodash = path.join(distPath, filename);
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function onComplete(error) {
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates browser builds of Lodash at the `target` path.
|
||||
*
|
||||
* @private
|
||||
* @param {string} target The output directory path.
|
||||
*/
|
||||
function build() {
|
||||
async.series([
|
||||
file.copy(baseLodash, distLodash),
|
||||
file.min(distLodash)
|
||||
], onComplete);
|
||||
], util.pitch);
|
||||
}
|
||||
|
||||
build();
|
||||
|
||||
@@ -1,60 +1,83 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
docdown = require('docdown'),
|
||||
fs = require('fs-extra'),
|
||||
path = require('path');
|
||||
const _ = require('lodash');
|
||||
const docdown = require('docdown');
|
||||
const fs = require('fs-extra');
|
||||
const path = require('path');
|
||||
|
||||
var basePath = path.join(__dirname, '..', '..'),
|
||||
docPath = path.join(basePath, 'doc'),
|
||||
readmePath = path.join(docPath, 'README.md');
|
||||
const util = require('../common/util');
|
||||
|
||||
var pkg = require('../../package.json'),
|
||||
version = pkg.version;
|
||||
const basePath = path.join(__dirname, '..', '..');
|
||||
const docPath = path.join(basePath, 'doc');
|
||||
const readmePath = path.join(docPath, 'README.md');
|
||||
|
||||
var config = {
|
||||
const pkg = require('../../package.json');
|
||||
const version = pkg.version;
|
||||
|
||||
const config = {
|
||||
'base': {
|
||||
'entryLinks': [
|
||||
'<% if (name == "templateSettings" || !/^(?:methods|properties|seq)$/i.test(category)) {' +
|
||||
'print("[Ⓝ](https://www.npmjs.com/package/lodash." + name.toLowerCase() + " \\"See the npm package\\")")' +
|
||||
'} %>'
|
||||
],
|
||||
'path': path.join(basePath, 'lodash.js'),
|
||||
'title': '<a href="https://lodash.com/">lodash</a> <span>v' + version + '</span>',
|
||||
'title': `<a href="https://lodash.com/">lodash</a> <span>v${ version }</span>`,
|
||||
'toc': 'categories',
|
||||
'url': 'https://github.com/lodash/lodash/blob/' + version + '/lodash.js'
|
||||
'url': `https://github.com/lodash/lodash/blob/${ version }/lodash.js`
|
||||
},
|
||||
'github': {
|
||||
'hash': 'github'
|
||||
'style': 'github',
|
||||
'sublinks': [npmLink('Ⓝ', 'See the npm package')]
|
||||
},
|
||||
'site': {
|
||||
'tocLink': '#docs'
|
||||
'entryLink': '<a href="${entryHref}" class="fa fa-link"></a>',
|
||||
'sourceLink': '[source](${sourceHref})',
|
||||
'tocHref': '',
|
||||
'tocLink': '',
|
||||
'sublinks': [npmLink('npm package')]
|
||||
}
|
||||
};
|
||||
|
||||
function postprocess(string) {
|
||||
// Fix docdown bugs.
|
||||
return string
|
||||
// Repair the default value of `chars`.
|
||||
// See https://github.com/eslint/doctrine/issues/157 for more details.
|
||||
.replace(/\bchars=''/g, "chars=' '")
|
||||
// Wrap symbol property identifiers in brackets.
|
||||
.replace(/\.(Symbol\.(?:[a-z]+[A-Z]?)+)/g, '[$1]');
|
||||
/**
|
||||
* Composes a npm link from `text` and optional `title`.
|
||||
*
|
||||
* @private
|
||||
* @param {string} text The link text.
|
||||
* @param {string} [title] The link title.
|
||||
* @returns {string} Returns the composed npm link.
|
||||
*/
|
||||
function npmLink(text, title) {
|
||||
return (
|
||||
'<% if (name == "templateSettings" || !/^(?:methods|properties|seq)$/i.test(category)) {' +
|
||||
'print(' +
|
||||
'"[' + text + '](https://www.npmjs.com/package/lodash." + name.toLowerCase() + ' +
|
||||
'"' + (title == null ? '' : ' \\"' + title + '\\"') + ')"' +
|
||||
');' +
|
||||
'} %>'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Post-process `markdown` to make adjustments.
|
||||
*
|
||||
* @private
|
||||
* @param {string} markdown The markdown to process.
|
||||
* @returns {string} Returns the processed markdown.
|
||||
*/
|
||||
function postprocess(markdown) {
|
||||
// Wrap symbol property identifiers in brackets.
|
||||
return markdown.replace(/\.(Symbol\.(?:[a-z]+[A-Z]?)+)/g, '[$1]');
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function onComplete(error) {
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the documentation markdown formatted for 'github' or 'site'.
|
||||
*
|
||||
* @private
|
||||
* @param {string} type The format type.
|
||||
*/
|
||||
function build(type) {
|
||||
var options = _.defaults({}, config.base, config[type]),
|
||||
markdown = docdown(options);
|
||||
const options = _.defaults({}, config.base, config[type]);
|
||||
const markdown = docdown(options);
|
||||
|
||||
fs.writeFile(readmePath, postprocess(markdown), onComplete);
|
||||
fs.writeFile(readmePath, postprocess(markdown), util.pitch);
|
||||
}
|
||||
|
||||
build(_.last(process.argv));
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
async = require('async'),
|
||||
path = require('path');
|
||||
const _ = require('lodash');
|
||||
const async = require('async');
|
||||
const path = require('path');
|
||||
|
||||
var file = require('../common/file');
|
||||
const file = require('../common/file');
|
||||
const util = require('../common/util');
|
||||
|
||||
var basePath = path.join(__dirname, '..', '..'),
|
||||
distPath = path.join(basePath, 'dist');
|
||||
const basePath = path.join(__dirname, '..', '..');
|
||||
const distPath = path.join(basePath, 'dist');
|
||||
|
||||
var filePairs = [
|
||||
const filePairs = [
|
||||
[path.join(distPath, 'lodash.core.js'), 'core.js'],
|
||||
[path.join(distPath, 'lodash.core.min.js'), 'core.min.js'],
|
||||
[path.join(distPath, 'lodash.min.js'), 'lodash.min.js']
|
||||
@@ -17,18 +18,17 @@ var filePairs = [
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function onComplete(error) {
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates supplementary Lodash modules at the `target` path.
|
||||
*
|
||||
* @private
|
||||
* @param {string} target The output directory path.
|
||||
*/
|
||||
function build(target) {
|
||||
var actions = _.map(filePairs, function(pair) {
|
||||
return file.copy(pair[0], path.join(target, pair[1]));
|
||||
});
|
||||
const actions = _.map(filePairs, pair =>
|
||||
file.copy(pair[0], path.join(target, pair[1])));
|
||||
|
||||
async.series(actions, onComplete);
|
||||
async.series(actions, util.pitch);
|
||||
}
|
||||
|
||||
build(_.last(process.argv));
|
||||
|
||||
215
lib/main/build-site.js
Normal file
215
lib/main/build-site.js
Normal file
@@ -0,0 +1,215 @@
|
||||
'use strict';
|
||||
|
||||
const _ = require('lodash');
|
||||
const fs = require('fs');
|
||||
const marky = require('marky-markdown');
|
||||
const path = require('path');
|
||||
const util = require('../common/util');
|
||||
|
||||
const basePath = path.join(__dirname, '..', '..');
|
||||
const docPath = path.join(basePath, 'doc');
|
||||
const readmePath = path.join(docPath, 'README.md');
|
||||
|
||||
const highlights = {
|
||||
'html': [
|
||||
'string'
|
||||
],
|
||||
'js': [
|
||||
'comment',
|
||||
'console',
|
||||
'delimiter',
|
||||
'method',
|
||||
'modifier',
|
||||
'name',
|
||||
'numeric',
|
||||
'string',
|
||||
'support',
|
||||
'type'
|
||||
]
|
||||
};
|
||||
|
||||
const exts = _.keys(highlights);
|
||||
|
||||
/**
|
||||
* Converts Lodash method references into documentation links.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} $ The Cheerio object.
|
||||
*/
|
||||
function autoLink($) {
|
||||
$('.doc-container code').each(function() {
|
||||
const $code = $(this);
|
||||
const html = $code.html();
|
||||
if (/^_\.\w+$/.test(html)) {
|
||||
const id = html.split('.')[1];
|
||||
$code.replaceWith(`<a href="#${ id }"><code>_.${ id }</code></a>`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes horizontal rules from the document.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} $ The Cheerio object.
|
||||
*/
|
||||
function removeHorizontalRules($) {
|
||||
$('hr').remove();
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes marky-markdown specific ids and class names.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} $ The Cheerio object.
|
||||
*/
|
||||
function removeMarkyAttributes($) {
|
||||
$('[id^="user-content-"]')
|
||||
.attr('class', null)
|
||||
.attr('id', null);
|
||||
|
||||
$(':header:not(h3) > a').each(function() {
|
||||
const $a = $(this);
|
||||
$a.replaceWith($a.html());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Renames "_" id and anchor references to "lodash".
|
||||
*
|
||||
* @private
|
||||
* @param {Object} $ The Cheerio object.
|
||||
*/
|
||||
function renameLodashId($) {
|
||||
$('#_').attr('id', 'lodash');
|
||||
$('[href="#_"]').attr('href', '#lodash');
|
||||
}
|
||||
|
||||
/**
|
||||
* Repairs broken marky-markdown headers.
|
||||
* See https://github.com/npm/marky-markdown/issues/217 for more details.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} $ The Cheerio object.
|
||||
*/
|
||||
function repairMarkyHeaders($) {
|
||||
$('p:empty + h3').prev().remove();
|
||||
|
||||
$('h3 ~ p:empty').each(function() {
|
||||
const $p = $(this);
|
||||
let node = this.prev;
|
||||
while ((node = node.prev) && node.name != 'h3' && node.name != 'p') {
|
||||
$p.prepend(node.next);
|
||||
}
|
||||
});
|
||||
|
||||
$('h3 code em').parent().each(function() {
|
||||
const $code = $(this);
|
||||
$code.html($code.html().replace(/<\/?em>/g, '_'));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up highlights blocks by removing extraneous class names and elements.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} $ The Cheerio object.
|
||||
*/
|
||||
function tidyHighlights($) {
|
||||
$('.highlight').each(function() {
|
||||
let $spans;
|
||||
const $parent = $(this);
|
||||
const classes = $parent.find('.source,.text').first().attr('class').split(' ');
|
||||
const ext = _(classes).intersection(exts).last();
|
||||
|
||||
$parent.addClass(ext);
|
||||
|
||||
// Remove line indicators for single line snippets.
|
||||
$parent.children('pre').each(function() {
|
||||
const $divs = $(this).children('div');
|
||||
if ($divs.length == 1) {
|
||||
$divs.replaceWith($divs.html());
|
||||
}
|
||||
});
|
||||
// Remove extraneous class names.
|
||||
$parent.find('[class]').each(function() {
|
||||
const $element = $(this);
|
||||
const classes = $element.attr('class').split(' ');
|
||||
const attr = _(classes).intersection(highlights[ext]).join(' ');
|
||||
$element.attr('class', attr || null);
|
||||
});
|
||||
// Collapse nested comment highlights.
|
||||
$parent.find(`[class~="comment"]`).each(function() {
|
||||
const $element = $(this);
|
||||
$element.text($element.text().trim());
|
||||
});
|
||||
// Collapse nested string highlights.
|
||||
$parent.find(`[class~="string"]`).each(function() {
|
||||
const $element = $(this);
|
||||
$element.text($element.text());
|
||||
});
|
||||
// Collapse nested spans.
|
||||
while (($spans = $parent.find('span:not([class])')).length) {
|
||||
$spans.each(function() {
|
||||
let $span = $(this);
|
||||
while ($span[0] && $span[0].name == 'span' && !$span.attr('class')) {
|
||||
const $parent = $span.parent();
|
||||
$span.replaceWith($span.html());
|
||||
$span = $parent;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Creates the documentation HTML.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function build() {
|
||||
const markdown = fs
|
||||
// Load markdown.
|
||||
.readFileSync(readmePath, 'utf8')
|
||||
// Uncomment docdown HTML hints.
|
||||
.replace(/(<)!--\s*|\s*--(>)/g, '$1$2');
|
||||
|
||||
const $ = marky(markdown, { 'sanitize': false });
|
||||
const $header = $('h1').first().remove();
|
||||
const version = $header.find('span').first().text().trim().slice(1);
|
||||
|
||||
// Auto-link Lodash method references.
|
||||
autoLink($);
|
||||
// Rename "_" id references to "lodash".
|
||||
renameLodashId($);
|
||||
// Remove docdown horizontal rules.
|
||||
removeHorizontalRules($);
|
||||
// Remove marky-markdown attribute additions.
|
||||
removeMarkyAttributes($);
|
||||
// Repair marky-markdown wrapping around headers.
|
||||
repairMarkyHeaders($);
|
||||
// Cleanup highlights.
|
||||
tidyHighlights($);
|
||||
|
||||
const html = [
|
||||
// Append YAML front matter.
|
||||
'---',
|
||||
'id: docs',
|
||||
'layout: docs',
|
||||
'title: Lodash Documentation',
|
||||
'version: ' + (version || null),
|
||||
'---',
|
||||
'',
|
||||
// Wrap in raw tags to avoid Liquid template tag processing.
|
||||
'{% raw %}',
|
||||
$.html().trim(),
|
||||
'{% endraw %}',
|
||||
''
|
||||
].join('\n');
|
||||
|
||||
fs.writeFile(path.join(docPath, version + '.html'), html, util.pitch);
|
||||
}
|
||||
|
||||
build();
|
||||
65
package.json
65
package.json
@@ -1,43 +1,20 @@
|
||||
{
|
||||
"name": "lodash",
|
||||
"version": "4.11.0",
|
||||
"version": "4.16.5",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"main": "lodash.js",
|
||||
"devDependencies": {
|
||||
"async": "^1.5.2",
|
||||
"benchmark": "^2.1.0",
|
||||
"chalk": "^1.1.3",
|
||||
"codecov.io": "~0.1.6",
|
||||
"coveralls": "^2.11.9",
|
||||
"curl-amd": "~0.8.12",
|
||||
"docdown": "~0.5.1",
|
||||
"dojo": "^1.11.1",
|
||||
"ecstatic": "^1.4.0",
|
||||
"fs-extra": "~0.26.7",
|
||||
"glob": "^7.0.3",
|
||||
"istanbul": "0.4.3",
|
||||
"jquery": "^2.2.3",
|
||||
"jscs": "^2.11.0",
|
||||
"lodash": "4.10.0",
|
||||
"platform": "^1.3.1",
|
||||
"qunit-extras": "^1.5.0",
|
||||
"qunitjs": "~1.23.1",
|
||||
"request": "^2.69.0",
|
||||
"requirejs": "^2.2.0",
|
||||
"sauce-tunnel": "^2.4.0",
|
||||
"uglify-js": "2.6.2",
|
||||
"webpack": "^1.12.15"
|
||||
},
|
||||
"engines": { "node": ">=4.0.0" },
|
||||
"scripts": {
|
||||
"build": "npm run build:main && npm run build:fp",
|
||||
"build:fp": "node lib/fp/build-dist.js",
|
||||
"build:fp-modules": "node lib/fp/build-modules.js",
|
||||
"build:main": "node lib/main/build-dist.js",
|
||||
"build:main-modules": "node lib/main/build-modules.js",
|
||||
"doc": "node lib/main/build-doc github",
|
||||
"doc": "node lib/main/build-doc github && npm run test:doc",
|
||||
"doc:fp": "node lib/fp/build-doc",
|
||||
"doc:site": "node lib/main/build-doc site",
|
||||
"doc:sitehtml": "optional-dev-dependency marky-markdown@^8.1.0 && npm run doc:site && node lib/main/build-site",
|
||||
"pretest": "npm run build",
|
||||
"style": "npm run style:main && npm run style:fp && npm run style:perf && npm run style:test",
|
||||
"style:fp": "jscs fp/*.js lib/**/*.js",
|
||||
@@ -45,8 +22,42 @@
|
||||
"style:perf": "jscs perf/*.js perf/**/*.js",
|
||||
"style:test": "jscs test/*.js test/**/*.js",
|
||||
"test": "npm run test:main && npm run test:fp",
|
||||
"test:doc": "markdown-doctest doc/*.md",
|
||||
"test:fp": "node test/test-fp",
|
||||
"test:main": "node test/test",
|
||||
"validate": "npm run style && npm run test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"async": "^2.1.2",
|
||||
"benchmark": "^2.1.2",
|
||||
"chalk": "^1.1.3",
|
||||
"codecov.io": "~0.1.6",
|
||||
"coveralls": "^2.11.14",
|
||||
"curl-amd": "~0.8.12",
|
||||
"docdown": "~0.7.1",
|
||||
"dojo": "^1.11.2",
|
||||
"ecstatic": "^2.1.0",
|
||||
"fs-extra": "~0.30.0",
|
||||
"glob": "^7.1.1",
|
||||
"istanbul": "0.4.5",
|
||||
"jquery": "^3.1.1",
|
||||
"jscs": "^3.0.7",
|
||||
"lodash": "4.16.2",
|
||||
"lodash-doc-globals": "^0.1.1",
|
||||
"markdown-doctest": "^0.9.0",
|
||||
"optional-dev-dependency": "^1.4.0",
|
||||
"platform": "^1.3.1",
|
||||
"qunit-extras": "^3.0.0",
|
||||
"qunitjs": "^2.0.1",
|
||||
"request": "^2.76.0",
|
||||
"requirejs": "^2.3.2",
|
||||
"sauce-tunnel": "^2.5.0",
|
||||
"uglify-js": "2.7.4",
|
||||
"webpack": "^1.13.3"
|
||||
},
|
||||
"greenkeeper": {
|
||||
"ignore": [
|
||||
"lodash"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,27 +15,8 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Registers an event listener on an element.
|
||||
*
|
||||
* @private
|
||||
* @param {Element} element The element.
|
||||
* @param {string} eventName The name of the event.
|
||||
* @param {Function} handler The event handler.
|
||||
* @returns {Element} The element.
|
||||
*/
|
||||
function addListener(element, eventName, handler) {
|
||||
if (typeof element.addEventListener != 'undefined') {
|
||||
element.addEventListener(eventName, handler, false);
|
||||
} else if (typeof element.attachEvent != 'undefined') {
|
||||
element.attachEvent('on' + eventName, handler);
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
// Initialize controls.
|
||||
addListener(window, 'load', function() {
|
||||
addEventListener('load', function() {
|
||||
function eventHandler(event) {
|
||||
var buildIndex = buildList.selectedIndex,
|
||||
otherIndex = otherList.selectedIndex,
|
||||
@@ -58,7 +39,7 @@
|
||||
span1.innerHTML =
|
||||
'<label for="perf-build">Build: </label>' +
|
||||
'<select id="perf-build">' +
|
||||
'<option value="lodash">lodash</option>' +
|
||||
'<option value="lodash">lodash (production)</option>' +
|
||||
'</select>';
|
||||
|
||||
var span2 = document.createElement('span');
|
||||
@@ -96,8 +77,8 @@
|
||||
return -1;
|
||||
}());
|
||||
|
||||
addListener(buildList, 'change', eventHandler);
|
||||
addListener(otherList, 'change', eventHandler);
|
||||
buildList.addEventListener('change', eventHandler);
|
||||
otherList.addEventListener('change', eventHandler);
|
||||
});
|
||||
|
||||
// The lodash build file path.
|
||||
|
||||
@@ -10,16 +10,27 @@
|
||||
height: 100%;
|
||||
}
|
||||
#FirebugUI {
|
||||
top: 2em;
|
||||
top: 2.5em;
|
||||
}
|
||||
#perf-toolbar {
|
||||
background-color: #EEE;
|
||||
color: #5E740B;
|
||||
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
||||
font-size: small;
|
||||
padding: 0.5em 0 0.5em 2em;
|
||||
padding: 0.5em 1em 0.5em 1em;
|
||||
overflow: hidden;
|
||||
}
|
||||
#perf-toolbar label {
|
||||
display: inline-block;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
#perf-toolbar span {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
line-height: 2.1em;
|
||||
margin-left: 1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
;(function() {
|
||||
'use strict';
|
||||
|
||||
/** Used to access the Firebug Lite panel (set by `run`). */
|
||||
var fbPanel;
|
||||
@@ -82,12 +83,6 @@
|
||||
/** Used to queue benchmark suites. */
|
||||
var suites = [];
|
||||
|
||||
/** Used to resolve a value's internal [[Class]]. */
|
||||
var toString = Object.prototype.toString;
|
||||
|
||||
/** Detect if in a browser environment. */
|
||||
var isBrowser = isHostType(root, 'document') && isHostType(root, 'navigator');
|
||||
|
||||
/** Use a single "load" function. */
|
||||
var load = (typeof require == 'function' && !amd)
|
||||
? require
|
||||
|
||||
@@ -15,27 +15,8 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Registers an event listener on an element.
|
||||
*
|
||||
* @private
|
||||
* @param {Element} element The element.
|
||||
* @param {string} eventName The name of the event.
|
||||
* @param {Function} handler The event handler.
|
||||
* @returns {Element} The element.
|
||||
*/
|
||||
function addListener(element, eventName, handler) {
|
||||
if (typeof element.addEventListener != 'undefined') {
|
||||
element.addEventListener(eventName, handler, false);
|
||||
} else if (typeof element.attachEvent != 'undefined') {
|
||||
element.attachEvent('on' + eventName, handler);
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
// Initialize controls.
|
||||
addListener(window, 'load', function() {
|
||||
addEventListener('load', function() {
|
||||
function eventHandler(event) {
|
||||
var buildIndex = buildList.selectedIndex,
|
||||
loaderIndex = loaderList.selectedIndex,
|
||||
@@ -59,8 +40,8 @@
|
||||
setTimeout(init, 15);
|
||||
return;
|
||||
}
|
||||
toolbar.appendChild(span1);
|
||||
toolbar.appendChild(span2);
|
||||
toolbar.insertBefore(span2, toolbar.lastChild);
|
||||
toolbar.insertBefore(span1, span2);
|
||||
|
||||
buildList.selectedIndex = (function() {
|
||||
switch (build) {
|
||||
@@ -84,12 +65,11 @@
|
||||
return -1;
|
||||
}());
|
||||
|
||||
addListener(buildList, 'change', eventHandler);
|
||||
addListener(loaderList, 'change', eventHandler);
|
||||
buildList.addEventListener('change', eventHandler);
|
||||
loaderList.addEventListener('change', eventHandler);
|
||||
}
|
||||
|
||||
var span1 = document.createElement('span');
|
||||
span1.style.cssText = 'float:right';
|
||||
span1.innerHTML =
|
||||
'<label for="qunit-build">Build: </label>' +
|
||||
'<select id="qunit-build">' +
|
||||
@@ -100,7 +80,6 @@
|
||||
'</select>';
|
||||
|
||||
var span2 = document.createElement('span');
|
||||
span2.style.cssText = 'float:right';
|
||||
span2.innerHTML =
|
||||
'<label for="qunit-loader">Loader: </label>' +
|
||||
'<select id="qunit-loader">' +
|
||||
@@ -110,6 +89,12 @@
|
||||
'<option value="requirejs">RequireJS</option>' +
|
||||
'</select>';
|
||||
|
||||
span1.style.cssText =
|
||||
span2.style.cssText = 'display:inline-block;float:right;line-height:2.1em;margin-left:1em;margin-top:0;';
|
||||
|
||||
span1.firstChild.style.cssText =
|
||||
span2.firstChild.style.cssText = 'display:inline-block;margin-right:.5em;';
|
||||
|
||||
var buildList = span1.lastChild,
|
||||
loaderList = span2.lastChild;
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
'use strict';
|
||||
|
||||
self.console || (self.console = { 'log': function() {} });
|
||||
|
||||
addEventListener('message', function(e) {
|
||||
@@ -12,4 +14,4 @@ addEventListener('message', function(e) {
|
||||
}
|
||||
postMessage(_.VERSION);
|
||||
}
|
||||
}, false);
|
||||
});
|
||||
|
||||
@@ -40,36 +40,38 @@
|
||||
var lodash = _.noConflict();
|
||||
|
||||
return function(_) {
|
||||
lodash.defaultsDeep(_, { 'templateSettings': lodash.templateSettings });
|
||||
lodash.mixin(_, lodash.pick(lodash, lodash.difference([
|
||||
'countBy',
|
||||
'debounce',
|
||||
'difference',
|
||||
'find',
|
||||
'findIndex',
|
||||
'findLastIndex',
|
||||
'groupBy',
|
||||
'includes',
|
||||
'invert',
|
||||
'invokeMap',
|
||||
'keyBy',
|
||||
'omit',
|
||||
'partition',
|
||||
'reduceRight',
|
||||
'reject',
|
||||
'sample',
|
||||
'without'
|
||||
], lodash.functions(_))));
|
||||
lodash(_)
|
||||
.defaultsDeep({ 'templateSettings': lodash.templateSettings })
|
||||
.mixin(lodash.pick(lodash, lodash.difference([
|
||||
'countBy',
|
||||
'debounce',
|
||||
'difference',
|
||||
'find',
|
||||
'findIndex',
|
||||
'findLastIndex',
|
||||
'groupBy',
|
||||
'includes',
|
||||
'invert',
|
||||
'invokeMap',
|
||||
'keyBy',
|
||||
'omit',
|
||||
'partition',
|
||||
'reduceRight',
|
||||
'reject',
|
||||
'sample',
|
||||
'without'
|
||||
], lodash.functions(_))))
|
||||
.value();
|
||||
|
||||
lodash.forOwn(keyMap, function(realName, otherName) {
|
||||
_[otherName] = lodash[realName];
|
||||
_.prototype[otherName] = lodash.prototype[realName];
|
||||
});
|
||||
|
||||
lodash.forOwn(aliasToReal, function(realName, alias) {
|
||||
_[alias] = _[realName];
|
||||
_.prototype[alias] = _.prototype[realName];
|
||||
});
|
||||
return _;
|
||||
};
|
||||
}());
|
||||
|
||||
@@ -147,7 +149,7 @@
|
||||
QUnit.config.autostart = false;
|
||||
|
||||
require(getConfig(), ['underscore'], function(lodash) {
|
||||
mixinPrereqs(lodash);
|
||||
_ = mixinPrereqs(lodash);
|
||||
require(getConfig(), ['backbone'], function() {
|
||||
require(getConfig(), [
|
||||
'test/setup/dom-setup',
|
||||
@@ -159,9 +161,7 @@
|
||||
'test/router',
|
||||
'test/view',
|
||||
'test/sync'
|
||||
], function() {
|
||||
QUnit.start();
|
||||
});
|
||||
], QUnit.start);
|
||||
});
|
||||
});
|
||||
}());
|
||||
|
||||
@@ -83,17 +83,7 @@
|
||||
|
||||
// Set bad shims.
|
||||
setProperty(Object, '_create', Object.create);
|
||||
setProperty(Object, 'create', (function() {
|
||||
function object() {}
|
||||
return function(prototype) {
|
||||
if (prototype === Object(prototype)) {
|
||||
object.prototype = prototype;
|
||||
var result = new object;
|
||||
object.prototype = undefined;
|
||||
}
|
||||
return result || {};
|
||||
};
|
||||
}()));
|
||||
setProperty(Object, 'create', undefined);
|
||||
|
||||
setProperty(Object, '_getOwnPropertySymbols', Object.getOwnPropertySymbols);
|
||||
setProperty(Object, 'getOwnPropertySymbols', undefined);
|
||||
|
||||
@@ -4,11 +4,6 @@
|
||||
/** Environment shortcut. */
|
||||
var env = process.env;
|
||||
|
||||
if (env.TRAVIS_SECURE_ENV_VARS == 'false') {
|
||||
console.log('Skipping Sauce Labs jobs; secure environment variables are unavailable');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
/** Load Node.js modules. */
|
||||
var EventEmitter = require('events').EventEmitter,
|
||||
http = require('http'),
|
||||
@@ -104,15 +99,14 @@ var browserNameMap = {
|
||||
/** List of platforms to load the runner on. */
|
||||
var platforms = [
|
||||
['Linux', 'android', '5.1'],
|
||||
['Windows 10', 'chrome', '49'],
|
||||
['Windows 10', 'chrome', '48'],
|
||||
['Windows 10', 'firefox', '45'],
|
||||
['Windows 10', 'firefox', '44'],
|
||||
['Windows 10', 'microsoftedge', '13'],
|
||||
['Windows 10', 'chrome', '54'],
|
||||
['Windows 10', 'chrome', '53'],
|
||||
['Windows 10', 'firefox', '49'],
|
||||
['Windows 10', 'firefox', '48'],
|
||||
['Windows 10', 'microsoftedge', '14'],
|
||||
['Windows 10', 'internet explorer', '11'],
|
||||
['Windows 8', 'internet explorer', '10'],
|
||||
['Windows 7', 'internet explorer', '9'],
|
||||
// ['OS X 10.10', 'ipad', '9.1'],
|
||||
['OS X 10.11', 'safari', '9'],
|
||||
['OS X 10.10', 'safari', '8']
|
||||
];
|
||||
@@ -214,18 +208,7 @@ if (tunneled) {
|
||||
* @returns {string} Returns the formal browser name.
|
||||
*/
|
||||
function browserName(identifier) {
|
||||
return browserNameMap[identifier] || capitalizeWords(identifier);
|
||||
}
|
||||
|
||||
/**
|
||||
* Capitalizes the first character of each word in `string`.
|
||||
*
|
||||
* @private
|
||||
* @param {string} string The string to augment.
|
||||
* @returns {string} Returns the augmented string.
|
||||
*/
|
||||
function capitalizeWords(string) {
|
||||
return _.map(string.split(' '), _.capitalize).join(' ');
|
||||
return browserNameMap[identifier] || _.startCase(identifier);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -305,7 +288,7 @@ function optionToArray(name, string) {
|
||||
function optionToValue(name, string) {
|
||||
var result = string.match(RegExp('^' + name + '(?:=([\\s\\S]+))?$'));
|
||||
if (result) {
|
||||
result = _.result(result, 1);
|
||||
result = _.get(result, 1);
|
||||
result = result ? _.trim(result) : true;
|
||||
}
|
||||
if (result === 'false') {
|
||||
@@ -377,8 +360,8 @@ function onJobStart(error, res, body) {
|
||||
if (this.stopping) {
|
||||
return;
|
||||
}
|
||||
var statusCode = _.result(res, 'statusCode'),
|
||||
taskId = _.first(_.result(body, 'js tests'));
|
||||
var statusCode = _.get(res, 'statusCode'),
|
||||
taskId = _.first(_.get(body, 'js tests'));
|
||||
|
||||
if (error || !taskId || statusCode != 200) {
|
||||
if (this.attempts < this.retries) {
|
||||
@@ -419,19 +402,19 @@ function onJobStatus(error, res, body) {
|
||||
if (!this.running || this.stopping) {
|
||||
return;
|
||||
}
|
||||
var completed = _.result(body, 'completed', false),
|
||||
data = _.first(_.result(body, 'js tests')),
|
||||
var completed = _.get(body, 'completed', false),
|
||||
data = _.first(_.get(body, 'js tests')),
|
||||
elapsed = (_.now() - this.timestamp) / 1000,
|
||||
jobId = _.result(data, 'job_id', null),
|
||||
jobResult = _.result(data, 'result', null),
|
||||
jobStatus = _.result(data, 'status', ''),
|
||||
jobUrl = _.result(data, 'url', null),
|
||||
jobId = _.get(data, 'job_id', null),
|
||||
jobResult = _.get(data, 'result', null),
|
||||
jobStatus = _.get(data, 'status', ''),
|
||||
jobUrl = _.get(data, 'url', null),
|
||||
expired = (elapsed >= queueTimeout && !_.includes(jobStatus, 'in progress')),
|
||||
options = this.options,
|
||||
platform = options.platforms[0];
|
||||
|
||||
if (_.isObject(jobResult)) {
|
||||
var message = _.result(jobResult, 'message');
|
||||
var message = _.get(jobResult, 'message');
|
||||
} else {
|
||||
if (typeof jobResult == 'string') {
|
||||
message = jobResult;
|
||||
@@ -451,9 +434,9 @@ function onJobStatus(error, res, body) {
|
||||
this._pollerId = _.delay(_.bind(this.status, this), this.statusInterval * 1000);
|
||||
return;
|
||||
}
|
||||
var description = browserName(platform[1]) + ' ' + platform[2] + ' on ' + capitalizeWords(platform[0]),
|
||||
var description = browserName(platform[1]) + ' ' + platform[2] + ' on ' + _.startCase(platform[0]),
|
||||
errored = !jobResult || !jobResult.passed || reError.test(message) || reError.test(jobStatus),
|
||||
failures = _.result(jobResult, 'failed'),
|
||||
failures = _.get(jobResult, 'failed'),
|
||||
label = options.name + ':',
|
||||
tunnel = this.tunnel;
|
||||
|
||||
@@ -474,7 +457,7 @@ function onJobStatus(error, res, body) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (typeof message == 'undefined') {
|
||||
if (message === undefined) {
|
||||
message = 'Results are unavailable. ' + details;
|
||||
}
|
||||
console.error(label, description, chalk.red('failed') + ';', message);
|
||||
@@ -602,7 +585,7 @@ Job.prototype.restart = function(callback) {
|
||||
|
||||
var options = this.options,
|
||||
platform = options.platforms[0],
|
||||
description = browserName(platform[1]) + ' ' + platform[2] + ' on ' + capitalizeWords(platform[0]),
|
||||
description = browserName(platform[1]) + ' ' + platform[2] + ' on ' + _.startCase(platform[0]),
|
||||
label = options.name + ':';
|
||||
|
||||
logInline();
|
||||
@@ -827,13 +810,16 @@ Tunnel.prototype.start = function(callback) {
|
||||
* @param {Object} Returns the tunnel instance.
|
||||
*/
|
||||
Tunnel.prototype.dequeue = function() {
|
||||
var jobs = this.jobs,
|
||||
var count = 0,
|
||||
jobs = this.jobs,
|
||||
active = jobs.active,
|
||||
queue = jobs.queue,
|
||||
throttled = this.throttled;
|
||||
|
||||
while (queue.length && (active.length < throttled)) {
|
||||
active.push(queue.shift().start());
|
||||
var job = queue.shift();
|
||||
active.push(job);
|
||||
_.delay(_.bind(job.start, job), ++count * 1000);
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
1326
test/test-fp.js
1326
test/test-fp.js
File diff suppressed because it is too large
Load Diff
6492
test/test.js
6492
test/test.js
File diff suppressed because it is too large
Load Diff
@@ -56,9 +56,6 @@
|
||||
'works on an arguments object',
|
||||
'can handle very deep arrays'
|
||||
],
|
||||
'head': [
|
||||
'is an alias for first'
|
||||
],
|
||||
'indexOf': [
|
||||
"sorted indexOf doesn't uses binary search",
|
||||
'0'
|
||||
@@ -86,9 +83,6 @@
|
||||
'an array of pairs zipped together into an object',
|
||||
'an object converted to pairs and back to an object'
|
||||
],
|
||||
'range': [
|
||||
'range with two arguments a & b, b<a generates an empty array'
|
||||
],
|
||||
'rest': [
|
||||
'returns the whole array when index is 0',
|
||||
'returns elements starting at the given index',
|
||||
@@ -129,7 +123,8 @@
|
||||
'Iterating objects with sketchy length properties': true,
|
||||
'Resistant to collection length and properties changing while iterating': true,
|
||||
'countBy': [
|
||||
'true'
|
||||
'{}',
|
||||
'[{}]'
|
||||
],
|
||||
'each': [
|
||||
'context object property accessed'
|
||||
@@ -141,24 +136,17 @@
|
||||
],
|
||||
'filter': [
|
||||
'given context',
|
||||
'[{"a":1,"b":2},{"a":1,"b":3},{"a":1,"b":4}]',
|
||||
'[{"a":1,"b":2},{"a":2,"b":2}]',
|
||||
'Empty object accepts all items',
|
||||
'OO-filter'
|
||||
],
|
||||
'find': [
|
||||
'{"a":1,"b":4}',
|
||||
'undefined when not found',
|
||||
'undefined when searching empty list',
|
||||
'works on objects',
|
||||
'undefined',
|
||||
'called with context'
|
||||
],
|
||||
'findWhere': [
|
||||
'checks properties given function'
|
||||
],
|
||||
'groupBy': [
|
||||
'true'
|
||||
'{}',
|
||||
'[{}]'
|
||||
],
|
||||
'includes': [
|
||||
"doesn't delegate to binary search"
|
||||
@@ -198,8 +186,7 @@
|
||||
'partition': [
|
||||
'can reference the array index',
|
||||
'Died on test #8',
|
||||
'partition takes a context argument',
|
||||
'function(a){[code]}'
|
||||
'partition takes a context argument'
|
||||
],
|
||||
'pluck': [
|
||||
'[1]'
|
||||
@@ -223,39 +210,36 @@
|
||||
'checks properties given function'
|
||||
],
|
||||
'Can use various collection methods on NodeLists': [
|
||||
'<span id="id2"></span>',
|
||||
'<span id="id1"></span>'
|
||||
'<span id="id2"></span>'
|
||||
]
|
||||
},
|
||||
'Functions': {
|
||||
'debounce asap': true,
|
||||
'debounce asap cancel': true,
|
||||
'debounce after system time is set backwards': true,
|
||||
'debounce asap recursively': true,
|
||||
'debounce after system time is set backwards': true,
|
||||
'debounce re-entrant': true,
|
||||
'throttle repeatedly with results': true,
|
||||
'more throttle does not trigger leading call when leading is set to false': true,
|
||||
'throttle does not trigger trailing call when trailing is set to false': true,
|
||||
'before': [
|
||||
'stores a memo to the last value',
|
||||
'provides context'
|
||||
],
|
||||
'before': true,
|
||||
'bind': [
|
||||
'Died on test #2'
|
||||
],
|
||||
'bindAll': [
|
||||
'throws an error for bindAll with no functions named'
|
||||
],
|
||||
'debounce': [
|
||||
'incr was debounced'
|
||||
],
|
||||
'iteratee': [
|
||||
'"bbiz"',
|
||||
'"foo"',
|
||||
'1'
|
||||
],
|
||||
'memoize': [
|
||||
'{"bar":"BAR","foo":"FOO"}',
|
||||
'Died on test #8'
|
||||
],
|
||||
'partial':[
|
||||
'can partially apply with placeholders',
|
||||
'accepts more arguments than the number of placeholders',
|
||||
'accepts fewer arguments than the number of placeholders',
|
||||
'unfilled placeholders are undefined',
|
||||
'keeps prototype',
|
||||
'allows the placeholder to be swapped out'
|
||||
]
|
||||
},
|
||||
'Objects': {
|
||||
@@ -265,10 +249,6 @@
|
||||
'is not fooled by sparse arrays with additional properties',
|
||||
'[]'
|
||||
],
|
||||
'defaults': [
|
||||
'defaults skips nulls',
|
||||
'defaults skips undefined'
|
||||
],
|
||||
'extend': [
|
||||
'extending null results in null',
|
||||
'extending undefined results in undefined'
|
||||
@@ -285,15 +265,13 @@
|
||||
'Commutative equality is implemented for `0` and `-0`',
|
||||
'`new Number(0)` and `-0` are not equal',
|
||||
'Commutative equality is implemented for `new Number(0)` and `-0`',
|
||||
'Invalid dates are not equal',
|
||||
'false'
|
||||
],
|
||||
'isFinite': [
|
||||
'Numeric strings are numbers',
|
||||
'Number instances can be finite'
|
||||
],
|
||||
'isMatch': [
|
||||
'doesnt falsey match constructor on undefined/null'
|
||||
],
|
||||
'isSet': [
|
||||
'Died on test #9'
|
||||
],
|
||||
@@ -309,10 +287,6 @@
|
||||
'called with context',
|
||||
'mapValue identity'
|
||||
],
|
||||
'matcher': [
|
||||
'null matches null',
|
||||
'treats primitives as empty'
|
||||
],
|
||||
'omit': [
|
||||
'can accept a predicate',
|
||||
'function is given context'
|
||||
@@ -323,7 +297,12 @@
|
||||
]
|
||||
},
|
||||
'Utility': {
|
||||
'noConflict (node vm)': true,
|
||||
'_.escape & unescape': [
|
||||
'` is escaped',
|
||||
'` can be unescaped',
|
||||
'can escape multiple occurances of `',
|
||||
'multiple occurrences of ` can be unescaped'
|
||||
],
|
||||
'now': [
|
||||
'Produces the correct time in milliseconds'
|
||||
],
|
||||
@@ -370,18 +349,20 @@
|
||||
var lodash = _.noConflict();
|
||||
|
||||
return function(_) {
|
||||
lodash.defaultsDeep(_, { 'templateSettings': lodash.templateSettings });
|
||||
lodash.mixin(_, lodash.pick(lodash, lodash.difference(lodash.functions(lodash), lodash.functions(_))));
|
||||
lodash(_)
|
||||
.defaultsDeep({ 'templateSettings': lodash.templateSettings })
|
||||
.mixin(lodash.pick(lodash, lodash.difference(lodash.functions(lodash), lodash.functions(_))))
|
||||
.value();
|
||||
|
||||
lodash.forOwn(keyMap, function(realName, otherName) {
|
||||
_[otherName] = lodash[realName];
|
||||
_.prototype[otherName] = lodash.prototype[realName];
|
||||
});
|
||||
|
||||
lodash.forOwn(aliasToReal, function(realName, alias) {
|
||||
_[alias] = _[realName];
|
||||
_.prototype[alias] = _.prototype[realName];
|
||||
});
|
||||
return _;
|
||||
};
|
||||
}());
|
||||
|
||||
@@ -463,9 +444,12 @@
|
||||
}
|
||||
|
||||
QUnit.config.autostart = false;
|
||||
QUnit.config.excused.Functions.iteratee = true;
|
||||
QUnit.config.excused.Utility.noConflict = true;
|
||||
QUnit.config.excused.Utility['noConflict (node vm)'] = true;
|
||||
|
||||
require(getConfig(), [moduleId], function(lodash) {
|
||||
mixinPrereqs(lodash);
|
||||
_ = mixinPrereqs(lodash);
|
||||
require(getConfig(), [
|
||||
'test/collections',
|
||||
'test/arrays',
|
||||
@@ -474,9 +458,7 @@
|
||||
'test/cross-document',
|
||||
'test/utility',
|
||||
'test/chaining'
|
||||
], function() {
|
||||
QUnit.start();
|
||||
});
|
||||
], QUnit.start);
|
||||
});
|
||||
}());
|
||||
</script>
|
||||
|
||||
36
vendor/backbone/backbone.js
vendored
36
vendor/backbone/backbone.js
vendored
@@ -394,6 +394,7 @@
|
||||
var Model = Backbone.Model = function(attributes, options) {
|
||||
var attrs = attributes || {};
|
||||
options || (options = {});
|
||||
this.preinitialize.apply(this, arguments);
|
||||
this.cid = _.uniqueId(this.cidPrefix);
|
||||
this.attributes = {};
|
||||
if (options.collection) this.collection = options.collection;
|
||||
@@ -422,6 +423,10 @@
|
||||
// You may want to override this if you're experiencing name clashes with model ids.
|
||||
cidPrefix: 'c',
|
||||
|
||||
// preinitialize is an empty function by default. You can override it with a function
|
||||
// or object. preinitialize will run before any instantiation logic is run in the Model.
|
||||
preinitialize: function(){},
|
||||
|
||||
// Initialize is an empty function by default. Override it with your own
|
||||
// initialization logic.
|
||||
initialize: function(){},
|
||||
@@ -562,12 +567,14 @@
|
||||
if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;
|
||||
var old = this._changing ? this._previousAttributes : this.attributes;
|
||||
var changed = {};
|
||||
var hasChanged;
|
||||
for (var attr in diff) {
|
||||
var val = diff[attr];
|
||||
if (_.isEqual(old[attr], val)) continue;
|
||||
changed[attr] = val;
|
||||
hasChanged = true;
|
||||
}
|
||||
return _.size(changed) ? changed : false;
|
||||
return hasChanged ? changed : false;
|
||||
},
|
||||
|
||||
// Get the previous value of an attribute, recorded at the time the last
|
||||
@@ -754,6 +761,7 @@
|
||||
// its models in sort order, as they're added and removed.
|
||||
var Collection = Backbone.Collection = function(models, options) {
|
||||
options || (options = {});
|
||||
this.preinitialize.apply(this, arguments);
|
||||
if (options.model) this.model = options.model;
|
||||
if (options.comparator !== void 0) this.comparator = options.comparator;
|
||||
this._reset();
|
||||
@@ -783,6 +791,11 @@
|
||||
// This should be overridden in most cases.
|
||||
model: Model,
|
||||
|
||||
|
||||
// preinitialize is an empty function by default. You can override it with a function
|
||||
// or object. preinitialize will run before any instantiation logic is run in the Collection.
|
||||
preinitialize: function(){},
|
||||
|
||||
// Initialize is an empty function by default. Override it with your own
|
||||
// initialization logic.
|
||||
initialize: function(){},
|
||||
@@ -1219,6 +1232,7 @@
|
||||
// if an existing element is not provided...
|
||||
var View = Backbone.View = function(options) {
|
||||
this.cid = _.uniqueId('view');
|
||||
this.preinitialize.apply(this, arguments);
|
||||
_.extend(this, _.pick(options, viewOptions));
|
||||
this._ensureElement();
|
||||
this.initialize.apply(this, arguments);
|
||||
@@ -1242,6 +1256,10 @@
|
||||
return this.$el.find(selector);
|
||||
},
|
||||
|
||||
// preinitialize is an empty function by default. You can override it with a function
|
||||
// or object. preinitialize will run before any instantiation logic is run in the View
|
||||
preinitialize: function(){},
|
||||
|
||||
// Initialize is an empty function by default. Override it with your own
|
||||
// initialization logic.
|
||||
initialize: function(){},
|
||||
@@ -1467,6 +1485,7 @@
|
||||
// matched. Creating a new one sets its `routes` hash, if not set statically.
|
||||
var Router = Backbone.Router = function(options) {
|
||||
options || (options = {});
|
||||
this.preinitialize.apply(this, arguments);
|
||||
if (options.routes) this.routes = options.routes;
|
||||
this._bindRoutes();
|
||||
this.initialize.apply(this, arguments);
|
||||
@@ -1482,6 +1501,10 @@
|
||||
// Set up all inheritable **Backbone.Router** properties and methods.
|
||||
_.extend(Router.prototype, Events, {
|
||||
|
||||
// preinitialize is an empty function by default. You can override it with a function
|
||||
// or object. preinitialize will run before any instantiation logic is run in the Router.
|
||||
preinitialize: function(){},
|
||||
|
||||
// Initialize is an empty function by default. Override it with your own
|
||||
// initialization logic.
|
||||
initialize: function(){},
|
||||
@@ -1812,11 +1835,14 @@
|
||||
}
|
||||
var url = rootPath + fragment;
|
||||
|
||||
// Strip the hash and decode for matching.
|
||||
fragment = this.decodeFragment(fragment.replace(pathStripper, ''));
|
||||
// Strip the fragment of the query and hash for matching.
|
||||
fragment = fragment.replace(pathStripper, '');
|
||||
|
||||
if (this.fragment === fragment) return;
|
||||
this.fragment = fragment;
|
||||
// Decode for matching.
|
||||
var decodedFragment = this.decodeFragment(fragment);
|
||||
|
||||
if (this.fragment === decodedFragment) return;
|
||||
this.fragment = decodedFragment;
|
||||
|
||||
// If pushState is available, we use it to set the fragment as a real URL.
|
||||
if (this._usePushState) {
|
||||
|
||||
35
vendor/backbone/test/collection.js
vendored
35
vendor/backbone/test/collection.js
vendored
@@ -1,4 +1,4 @@
|
||||
(function() {
|
||||
(function(QUnit) {
|
||||
|
||||
var a, b, c, d, e, col, otherCol;
|
||||
|
||||
@@ -593,7 +593,7 @@
|
||||
assert.equal(error, 'fail');
|
||||
assert.equal(options.validationError, 'fail');
|
||||
});
|
||||
assert.equal(collection.create({'foo': 'bar'}, {validate: true}), false);
|
||||
assert.equal(collection.create({foo: 'bar'}, {validate: true}), false);
|
||||
});
|
||||
|
||||
QUnit.test('create will pass extra options to success callback', function(assert) {
|
||||
@@ -661,6 +661,31 @@
|
||||
assert.equal(coll.one, 1);
|
||||
});
|
||||
|
||||
QUnit.test('preinitialize', function(assert) {
|
||||
assert.expect(1);
|
||||
var Collection = Backbone.Collection.extend({
|
||||
preinitialize: function() {
|
||||
this.one = 1;
|
||||
}
|
||||
});
|
||||
var coll = new Collection;
|
||||
assert.equal(coll.one, 1);
|
||||
});
|
||||
|
||||
QUnit.test('preinitialize occurs before the collection is set up', function(assert) {
|
||||
assert.expect(2);
|
||||
var Collection = Backbone.Collection.extend({
|
||||
preinitialize: function() {
|
||||
assert.notEqual(this.model, FooModel);
|
||||
}
|
||||
});
|
||||
var FooModel = Backbone.Model.extend({id: 'foo'});
|
||||
var coll = new Collection({}, {
|
||||
model: FooModel
|
||||
});
|
||||
assert.equal(coll.model, FooModel);
|
||||
});
|
||||
|
||||
QUnit.test('toJSON', function(assert) {
|
||||
assert.expect(1);
|
||||
assert.equal(JSON.stringify(col), '[{"id":3,"label":"a"},{"id":2,"label":"b"},{"id":1,"label":"c"},{"id":0,"label":"d"}]');
|
||||
@@ -1724,10 +1749,10 @@
|
||||
return new M(attrs);
|
||||
}
|
||||
});
|
||||
var c2 = new C2({'_id': 1});
|
||||
var c2 = new C2({_id: 1});
|
||||
assert.equal(c2.get(1), void 0);
|
||||
assert.equal(c2.modelId(c2.at(0).attributes), void 0);
|
||||
var m = new M({'_id': 2});
|
||||
var m = new M({_id: 2});
|
||||
c2.add(m);
|
||||
assert.equal(c2.get(2), void 0);
|
||||
assert.equal(c2.modelId(m.attributes), void 0);
|
||||
@@ -1995,4 +2020,4 @@
|
||||
assert.equal(fired, false);
|
||||
});
|
||||
|
||||
})();
|
||||
})(QUnit);
|
||||
|
||||
4
vendor/backbone/test/events.js
vendored
4
vendor/backbone/test/events.js
vendored
@@ -1,4 +1,4 @@
|
||||
(function() {
|
||||
(function(QUnit) {
|
||||
|
||||
QUnit.module('Backbone.Events');
|
||||
|
||||
@@ -703,4 +703,4 @@
|
||||
two.trigger('y', 2);
|
||||
});
|
||||
|
||||
})();
|
||||
})(QUnit);
|
||||
|
||||
34
vendor/backbone/test/model.js
vendored
34
vendor/backbone/test/model.js
vendored
@@ -1,4 +1,4 @@
|
||||
(function() {
|
||||
(function(QUnit) {
|
||||
|
||||
var ProxyModel = Backbone.Model.extend();
|
||||
var Klass = Backbone.Collection.extend({
|
||||
@@ -63,6 +63,36 @@
|
||||
assert.equal(model.get('value'), 2);
|
||||
});
|
||||
|
||||
|
||||
QUnit.test('preinitialize', function(assert) {
|
||||
assert.expect(2);
|
||||
var Model = Backbone.Model.extend({
|
||||
|
||||
preinitialize: function() {
|
||||
this.one = 1;
|
||||
}
|
||||
});
|
||||
var model = new Model({}, {collection: collection});
|
||||
assert.equal(model.one, 1);
|
||||
assert.equal(model.collection, collection);
|
||||
});
|
||||
|
||||
QUnit.test('preinitialize occurs before the model is set up', function(assert) {
|
||||
assert.expect(6);
|
||||
var Model = Backbone.Model.extend({
|
||||
|
||||
preinitialize: function() {
|
||||
assert.equal(this.collection, undefined);
|
||||
assert.equal(this.cid, undefined);
|
||||
assert.equal(this.id, undefined);
|
||||
}
|
||||
});
|
||||
var model = new Model({id: 'foo'}, {collection: collection});
|
||||
assert.equal(model.collection, collection);
|
||||
assert.equal(model.id, 'foo');
|
||||
assert.notEqual(model.cid, undefined);
|
||||
});
|
||||
|
||||
QUnit.test('parse can return null', function(assert) {
|
||||
assert.expect(1);
|
||||
var Model = Backbone.Model.extend({
|
||||
@@ -1415,4 +1445,4 @@
|
||||
assert.equal(model.id, 3);
|
||||
});
|
||||
|
||||
})();
|
||||
})(QUnit);
|
||||
|
||||
4
vendor/backbone/test/noconflict.js
vendored
4
vendor/backbone/test/noconflict.js
vendored
@@ -1,4 +1,4 @@
|
||||
(function() {
|
||||
(function(QUnit) {
|
||||
|
||||
QUnit.module('Backbone.noConflict');
|
||||
|
||||
@@ -10,4 +10,4 @@
|
||||
assert.equal(window.Backbone, noconflictBackbone, 'Backbone is still pointing to the original Backbone');
|
||||
});
|
||||
|
||||
})();
|
||||
})(QUnit);
|
||||
|
||||
107
vendor/backbone/test/router.js
vendored
107
vendor/backbone/test/router.js
vendored
@@ -1,4 +1,4 @@
|
||||
(function() {
|
||||
(function(QUnit) {
|
||||
|
||||
var router = null;
|
||||
var location = null;
|
||||
@@ -28,7 +28,8 @@
|
||||
'fragment',
|
||||
'pathname',
|
||||
'protocol'
|
||||
));
|
||||
));
|
||||
|
||||
// In IE, anchor.pathname does not contain a leading slash though
|
||||
// window.location.pathname does.
|
||||
if (!/^\//.test(this.pathname)) this.pathname = '/' + this.pathname;
|
||||
@@ -42,7 +43,7 @@
|
||||
|
||||
QUnit.module('Backbone.Router', {
|
||||
|
||||
setup: function() {
|
||||
beforeEach: function() {
|
||||
location = new Location('http://example.com');
|
||||
Backbone.history = _.extend(new Backbone.History, {location: location});
|
||||
router = new Router({testing: 101});
|
||||
@@ -53,7 +54,7 @@
|
||||
Backbone.history.on('route', onRoute);
|
||||
},
|
||||
|
||||
teardown: function() {
|
||||
afterEach: function() {
|
||||
Backbone.history.stop();
|
||||
Backbone.history.off('route', onRoute);
|
||||
}
|
||||
@@ -95,6 +96,10 @@
|
||||
'*anything': 'anything'
|
||||
},
|
||||
|
||||
preinitialize: function(options) {
|
||||
this.testpreinit = 'foo';
|
||||
},
|
||||
|
||||
initialize: function(options) {
|
||||
this.testing = options.testing;
|
||||
this.route('implicit', 'implicit');
|
||||
@@ -121,19 +126,19 @@
|
||||
this.charType = 'escaped';
|
||||
},
|
||||
|
||||
contacts: function(){
|
||||
contacts: function() {
|
||||
this.contact = 'index';
|
||||
},
|
||||
|
||||
newContact: function(){
|
||||
newContact: function() {
|
||||
this.contact = 'new';
|
||||
},
|
||||
|
||||
loadContact: function(){
|
||||
loadContact: function() {
|
||||
this.contact = 'load';
|
||||
},
|
||||
|
||||
optionalItem: function(arg){
|
||||
optionalItem: function(arg) {
|
||||
this.arg = arg !== void 0 ? arg : null;
|
||||
},
|
||||
|
||||
@@ -181,6 +186,11 @@
|
||||
assert.equal(router.testing, 101);
|
||||
});
|
||||
|
||||
QUnit.test('preinitialize', function(assert) {
|
||||
assert.expect(1);
|
||||
assert.equal(router.testpreinit, 'foo');
|
||||
});
|
||||
|
||||
QUnit.test('routes (simple)', function(assert) {
|
||||
assert.expect(4);
|
||||
location.replace('http://example.com#search/news');
|
||||
@@ -234,10 +244,11 @@
|
||||
assert.ok(Backbone.history.navigate('search/manhattan/p20', true));
|
||||
});
|
||||
|
||||
QUnit.test('route precedence via navigate', function(assert){
|
||||
QUnit.test('route precedence via navigate', function(assert) {
|
||||
assert.expect(6);
|
||||
// check both 0.9.x and backwards-compatibility options
|
||||
_.each([{trigger: true}, true], function( options ){
|
||||
|
||||
// Check both 0.9.x and backwards-compatibility options
|
||||
_.each([{trigger: true}, true], function(options) {
|
||||
Backbone.history.navigate('contacts', options);
|
||||
assert.equal(router.contact, 'index');
|
||||
Backbone.history.navigate('contacts/new', options);
|
||||
@@ -249,7 +260,7 @@
|
||||
|
||||
QUnit.test('loadUrl is not called for identical routes.', function(assert) {
|
||||
assert.expect(0);
|
||||
Backbone.history.loadUrl = function(){ assert.ok(false); };
|
||||
Backbone.history.loadUrl = function() { assert.ok(false); };
|
||||
location.replace('http://example.com#route');
|
||||
Backbone.history.navigate('route');
|
||||
Backbone.history.navigate('/route');
|
||||
@@ -345,9 +356,9 @@
|
||||
assert.strictEqual(router.path, 'c/d/e');
|
||||
});
|
||||
|
||||
QUnit.test("fires event when router doesn't have callback on it", function(assert) {
|
||||
QUnit.test('fires event when router doesn\'t have callback on it', function(assert) {
|
||||
assert.expect(1);
|
||||
router.on('route:noCallback', function(){ assert.ok(true); });
|
||||
router.on('route:noCallback', function() { assert.ok(true); });
|
||||
location.replace('http://example.com#noCallback');
|
||||
Backbone.history.checkUrl();
|
||||
});
|
||||
@@ -536,8 +547,8 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(){},
|
||||
replaceState: function(){}
|
||||
pushState: function() {},
|
||||
replaceState: function() {}
|
||||
}
|
||||
});
|
||||
Backbone.history.start({root: 'root'});
|
||||
@@ -551,8 +562,8 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(){},
|
||||
replaceState: function(state, title, url){
|
||||
pushState: function() {},
|
||||
replaceState: function(state, title, url) {
|
||||
assert.strictEqual(url, '/root/x/y');
|
||||
}
|
||||
}
|
||||
@@ -570,8 +581,8 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(){},
|
||||
replaceState: function(){}
|
||||
pushState: function() {},
|
||||
replaceState: function() {}
|
||||
}
|
||||
});
|
||||
Backbone.history.start({root: ''});
|
||||
@@ -625,8 +636,8 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(){},
|
||||
replaceState: function(state, title, url){
|
||||
pushState: function() {},
|
||||
replaceState: function(state, title, url) {
|
||||
assert.strictEqual(url, '/root/x/y?a=b');
|
||||
}
|
||||
}
|
||||
@@ -641,8 +652,8 @@
|
||||
assert.expect(1);
|
||||
var MyRouter = Backbone.Router.extend({
|
||||
routes: {'': 'empty'},
|
||||
empty: function(){},
|
||||
route: function(route){
|
||||
empty: function() {},
|
||||
route: function(route) {
|
||||
assert.strictEqual(route, '');
|
||||
}
|
||||
});
|
||||
@@ -655,7 +666,8 @@
|
||||
assert.strictEqual(history.getFragment('fragment '), 'fragment');
|
||||
});
|
||||
|
||||
QUnit.test('#1820 - Leading slash and trailing space.', 1, function(assert) {
|
||||
QUnit.test('#1820 - Leading slash and trailing space.', function(assert) {
|
||||
assert.expect(1);
|
||||
var history = new Backbone.History;
|
||||
assert.strictEqual(history.getFragment('/fragment '), 'fragment');
|
||||
});
|
||||
@@ -670,7 +682,7 @@
|
||||
assert.strictEqual(router.z, '123');
|
||||
});
|
||||
|
||||
QUnit.test("#2062 - Trigger 'route' event on router instance.", function(assert) {
|
||||
QUnit.test('#2062 - Trigger "route" event on router instance.', function(assert) {
|
||||
assert.expect(2);
|
||||
router.on('route', function(name, args) {
|
||||
assert.strictEqual(name, 'routeEvent');
|
||||
@@ -709,8 +721,8 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(){},
|
||||
replaceState: function(){ assert.ok(false); }
|
||||
pushState: function() {},
|
||||
replaceState: function() { assert.ok(false); }
|
||||
}
|
||||
});
|
||||
Backbone.history.start({
|
||||
@@ -726,8 +738,8 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(){},
|
||||
replaceState: function(){}
|
||||
pushState: function() {},
|
||||
replaceState: function() {}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -753,7 +765,7 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(state, title, url){
|
||||
pushState: function(state, title, url) {
|
||||
assert.strictEqual(url, '/root');
|
||||
}
|
||||
}
|
||||
@@ -785,7 +797,7 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(state, title, url){
|
||||
pushState: function(state, title, url) {
|
||||
assert.strictEqual(url, '/root?x=1');
|
||||
}
|
||||
}
|
||||
@@ -823,7 +835,7 @@
|
||||
assert.expect(1);
|
||||
var MyRouter = Backbone.Router.extend({
|
||||
routes: {
|
||||
path: function(params){
|
||||
path: function(params) {
|
||||
assert.strictEqual(params, 'x=y%3Fz');
|
||||
}
|
||||
}
|
||||
@@ -921,7 +933,7 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {location: location});
|
||||
var MyRouter = Backbone.Router.extend({
|
||||
routes: {'foo/:id/bar': 'foo'},
|
||||
foo: function(){},
|
||||
foo: function() {},
|
||||
execute: function(callback, args, name) {
|
||||
assert.strictEqual(callback, this.foo);
|
||||
assert.deepEqual(args, ['123', 'x=y']);
|
||||
@@ -953,8 +965,8 @@
|
||||
Backbone.history = _.extend(new Backbone.History, {
|
||||
location: location,
|
||||
history: {
|
||||
pushState: function(){ assert.ok(false); },
|
||||
replaceState: function(){ assert.ok(false); }
|
||||
pushState: function() { assert.ok(false); },
|
||||
replaceState: function() { assert.ok(false); }
|
||||
}
|
||||
});
|
||||
Backbone.history.start({pushState: true});
|
||||
@@ -991,14 +1003,14 @@
|
||||
Backbone.history.start({root: '/root', pushState: true});
|
||||
});
|
||||
|
||||
QUnit.test("Paths that don't match the root should not match no root", function(assert) {
|
||||
QUnit.test('Paths that don\'t match the root should not match no root', function(assert) {
|
||||
assert.expect(0);
|
||||
location.replace('http://example.com/foo');
|
||||
Backbone.history.stop();
|
||||
Backbone.history = _.extend(new Backbone.History, {location: location});
|
||||
var MyRouter = Backbone.Router.extend({
|
||||
routes: {
|
||||
foo: function(){
|
||||
foo: function() {
|
||||
assert.ok(false, 'should not match unless root matches');
|
||||
}
|
||||
}
|
||||
@@ -1007,14 +1019,14 @@
|
||||
Backbone.history.start({root: 'root', pushState: true});
|
||||
});
|
||||
|
||||
QUnit.test("Paths that don't match the root should not match roots of the same length", function(assert) {
|
||||
QUnit.test('Paths that don\'t match the root should not match roots of the same length', function(assert) {
|
||||
assert.expect(0);
|
||||
location.replace('http://example.com/xxxx/foo');
|
||||
Backbone.history.stop();
|
||||
Backbone.history = _.extend(new Backbone.History, {location: location});
|
||||
var MyRouter = Backbone.Router.extend({
|
||||
routes: {
|
||||
foo: function(){
|
||||
foo: function() {
|
||||
assert.ok(false, 'should not match unless root matches');
|
||||
}
|
||||
}
|
||||
@@ -1029,7 +1041,7 @@
|
||||
Backbone.history.stop();
|
||||
Backbone.history = _.extend(new Backbone.History, {location: location});
|
||||
var MyRouter = Backbone.Router.extend({
|
||||
routes: {foo: function(){ assert.ok(true); }}
|
||||
routes: {foo: function() { assert.ok(true); }}
|
||||
});
|
||||
var myRouter = new MyRouter;
|
||||
Backbone.history.start({root: 'x+y.z', pushState: true});
|
||||
@@ -1041,7 +1053,7 @@
|
||||
Backbone.history.stop();
|
||||
Backbone.history = _.extend(new Backbone.History, {location: location});
|
||||
var MyRouter = Backbone.Router.extend({
|
||||
routes: {foo: function(){ assert.ok(true); }}
|
||||
routes: {foo: function() { assert.ok(true); }}
|
||||
});
|
||||
var myRouter = new MyRouter;
|
||||
Backbone.history.start({root: '®ooτ', pushState: true});
|
||||
@@ -1053,10 +1065,17 @@
|
||||
Backbone.history.stop();
|
||||
Backbone.history = _.extend(new Backbone.History, {location: location});
|
||||
var MyRouter = Backbone.Router.extend({
|
||||
routes: {'': function(){ assert.ok(true); }}
|
||||
routes: {'': function() { assert.ok(true); }}
|
||||
});
|
||||
var myRouter = new MyRouter;
|
||||
Backbone.history.start({root: '®ooτ', pushState: true});
|
||||
});
|
||||
|
||||
})();
|
||||
QUnit.test('#4025 - navigate updates URL hash as is', function(assert) {
|
||||
assert.expect(1);
|
||||
var route = 'search/has%20space';
|
||||
Backbone.history.navigate(route);
|
||||
assert.strictEqual(location.hash, '#' + route);
|
||||
});
|
||||
|
||||
})(QUnit);
|
||||
|
||||
6
vendor/backbone/test/setup/environment.js
vendored
6
vendor/backbone/test/setup/environment.js
vendored
@@ -1,4 +1,4 @@
|
||||
(function() {
|
||||
(function(QUnit) {
|
||||
|
||||
var sync = Backbone.sync;
|
||||
var ajax = Backbone.ajax;
|
||||
@@ -14,7 +14,7 @@
|
||||
var env = QUnit.config.current.testEnvironment;
|
||||
|
||||
// We never want to actually call these during tests.
|
||||
history.pushState = history.replaceState = function(){};
|
||||
history.pushState = history.replaceState = function() {};
|
||||
|
||||
// Capture ajax settings for comparison.
|
||||
Backbone.ajax = function(settings) {
|
||||
@@ -42,4 +42,4 @@
|
||||
history.replaceState = replaceState;
|
||||
});
|
||||
|
||||
})();
|
||||
})(QUnit);
|
||||
|
||||
6
vendor/backbone/test/sync.js
vendored
6
vendor/backbone/test/sync.js
vendored
@@ -1,4 +1,4 @@
|
||||
(function() {
|
||||
(function(QUnit) {
|
||||
|
||||
var Library = Backbone.Collection.extend({
|
||||
url: function() { return '/library'; }
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
QUnit.test('Backbone.ajax', function(assert) {
|
||||
assert.expect(1);
|
||||
Backbone.ajax = function(settings){
|
||||
Backbone.ajax = function(settings) {
|
||||
assert.strictEqual(settings.url, '/test');
|
||||
};
|
||||
var model = new Backbone.Model();
|
||||
@@ -236,4 +236,4 @@
|
||||
this.ajaxSettings.error({}, 'textStatus', 'errorThrown');
|
||||
});
|
||||
|
||||
})();
|
||||
})(QUnit);
|
||||
|
||||
47
vendor/backbone/test/view.js
vendored
47
vendor/backbone/test/view.js
vendored
@@ -1,13 +1,13 @@
|
||||
(function() {
|
||||
(function(QUnit) {
|
||||
|
||||
var view;
|
||||
|
||||
QUnit.module('Backbone.View', {
|
||||
|
||||
beforeEach: function(assert) {
|
||||
beforeEach: function() {
|
||||
$('#qunit-fixture').append(
|
||||
'<div id="testElement"><h1>Test</h1></div>'
|
||||
);
|
||||
);
|
||||
|
||||
view = new Backbone.View({
|
||||
id: 'test-view',
|
||||
@@ -61,6 +61,28 @@
|
||||
assert.strictEqual(new View().one, 1);
|
||||
});
|
||||
|
||||
QUnit.test('preinitialize', function(assert) {
|
||||
assert.expect(1);
|
||||
var View = Backbone.View.extend({
|
||||
preinitialize: function() {
|
||||
this.one = 1;
|
||||
}
|
||||
});
|
||||
|
||||
assert.strictEqual(new View().one, 1);
|
||||
});
|
||||
|
||||
QUnit.test('preinitialize occurs before the view is set up', function(assert) {
|
||||
assert.expect(2);
|
||||
var View = Backbone.View.extend({
|
||||
preinitialize: function() {
|
||||
assert.equal(this.el, undefined);
|
||||
}
|
||||
});
|
||||
var _view = new View({});
|
||||
assert.notEqual(_view.el, undefined);
|
||||
});
|
||||
|
||||
QUnit.test('render', function(assert) {
|
||||
assert.expect(1);
|
||||
var myView = new Backbone.View;
|
||||
@@ -72,8 +94,8 @@
|
||||
var counter1 = 0, counter2 = 0;
|
||||
|
||||
var myView = new Backbone.View({el: '#testElement'});
|
||||
myView.increment = function(){ counter1++; };
|
||||
myView.$el.on('click', function(){ counter2++; });
|
||||
myView.increment = function() { counter1++; };
|
||||
myView.$el.on('click', function() { counter2++; });
|
||||
|
||||
var events = {'click h1': 'increment'};
|
||||
|
||||
@@ -129,11 +151,10 @@
|
||||
assert.equal(myView.counter, 3);
|
||||
});
|
||||
|
||||
|
||||
QUnit.test('delegateEvents ignore undefined methods', function(assert) {
|
||||
assert.expect(0);
|
||||
var myView = new Backbone.View({el: '<p></p>'});
|
||||
myView.delegateEvents({'click': 'undefinedMethod'});
|
||||
myView.delegateEvents({click: 'undefinedMethod'});
|
||||
myView.$el.trigger('click');
|
||||
});
|
||||
|
||||
@@ -142,8 +163,8 @@
|
||||
var counter1 = 0, counter2 = 0;
|
||||
|
||||
var myView = new Backbone.View({el: '#testElement'});
|
||||
myView.increment = function(){ counter1++; };
|
||||
myView.$el.on('click', function(){ counter2++; });
|
||||
myView.increment = function() { counter1++; };
|
||||
myView.$el.on('click', function() { counter2++; });
|
||||
|
||||
var events = {'click h1': 'increment'};
|
||||
|
||||
@@ -203,7 +224,7 @@
|
||||
assert.expect(2);
|
||||
var myView = new Backbone.View({el: '#testElement'});
|
||||
myView.delegate('click', function() { assert.ok(true); });
|
||||
var handler = function(){ assert.ok(false); };
|
||||
var handler = function() { assert.ok(false); };
|
||||
myView.delegate('click', 'h1', handler);
|
||||
myView.undelegate('click', 'h1', handler);
|
||||
myView.$('h1').trigger('click');
|
||||
@@ -405,8 +426,8 @@
|
||||
assert.expect(0);
|
||||
var View = Backbone.View.extend({
|
||||
initialize: function() {
|
||||
this.listenTo(this.model, 'all x', function(){ assert.ok(false); });
|
||||
this.listenTo(this.collection, 'all x', function(){ assert.ok(false); });
|
||||
this.listenTo(this.model, 'all x', function() { assert.ok(false); });
|
||||
this.listenTo(this.collection, 'all x', function() { assert.ok(false); });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -492,4 +513,4 @@
|
||||
assert.notEqual($oldEl, myView.$el);
|
||||
});
|
||||
|
||||
})();
|
||||
})(QUnit);
|
||||
|
||||
8
vendor/underscore/test/arrays.js
vendored
8
vendor/underscore/test/arrays.js
vendored
@@ -15,6 +15,10 @@
|
||||
result = _.map([[1, 2, 3], [1, 2, 3]], _.first);
|
||||
assert.deepEqual(result, [1, 1], 'works well with _.map');
|
||||
assert.equal(_.first(null), void 0, 'returns undefined when called on null');
|
||||
|
||||
Array.prototype[0] = 'boo';
|
||||
assert.equal(_.first([]), void 0, 'return undefined when called on a empty array');
|
||||
delete Array.prototype[0];
|
||||
});
|
||||
|
||||
QUnit.test('head', function(assert) {
|
||||
@@ -66,6 +70,10 @@
|
||||
result = _.map([[1, 2, 3], [1, 2, 3]], _.last);
|
||||
assert.deepEqual(result, [3, 3], 'works well with _.map');
|
||||
assert.equal(_.last(null), void 0, 'returns undefined when called on null');
|
||||
|
||||
var arr = [];
|
||||
arr[-1] = 'boo';
|
||||
assert.equal(_.last(arr), void 0, 'return undefined when called on a empty array');
|
||||
});
|
||||
|
||||
QUnit.test('compact', function(assert) {
|
||||
|
||||
118
vendor/underscore/test/collections.js
vendored
118
vendor/underscore/test/collections.js
vendored
@@ -188,7 +188,7 @@
|
||||
var prod = _.reduce([1, 2, 3, 4], function(memo, num){ return memo * num; });
|
||||
assert.equal(prod, 24, 'can reduce via multiplication');
|
||||
|
||||
assert.ok(_.reduce(null, _.noop, 138) === 138, 'handles a null (with initial value) properly');
|
||||
assert.strictEqual(_.reduce(null, _.noop, 138), 138, 'handles a null (with initial value) properly');
|
||||
assert.equal(_.reduce([], _.noop, void 0), void 0, 'undefined can be passed as a special case');
|
||||
assert.equal(_.reduce([_], _.noop), _, 'collection of length one with no initial value returns the first item');
|
||||
assert.equal(_.reduce([], _.noop), void 0, 'returns undefined when collection is empty and no initial value');
|
||||
@@ -212,7 +212,7 @@
|
||||
var sum = _.reduceRight({a: 1, b: 2, c: 3}, function(memo, num){ return memo + num; });
|
||||
assert.equal(sum, 6, 'default initial value on object');
|
||||
|
||||
assert.ok(_.reduceRight(null, _.noop, 138) === 138, 'handles a null (with initial value) properly');
|
||||
assert.strictEqual(_.reduceRight(null, _.noop, 138), 138, 'handles a null (with initial value) properly');
|
||||
assert.equal(_.reduceRight([_], _.noop), _, 'collection of length one with no initial value returns the first item');
|
||||
|
||||
assert.equal(_.reduceRight([], _.noop, void 0), void 0, 'undefined can be passed as a special case');
|
||||
@@ -268,8 +268,8 @@
|
||||
var list = [{a: 1, b: 2}, {a: 2, b: 2}, {a: 1, b: 3}, {a: 1, b: 4}, {a: 2, b: 4}];
|
||||
assert.deepEqual(_.find(list, {a: 1}), {a: 1, b: 2}, 'can be used as findWhere');
|
||||
assert.deepEqual(_.find(list, {b: 4}), {a: 1, b: 4});
|
||||
assert.ok(!_.find(list, {c: 1}), 'undefined when not found');
|
||||
assert.ok(!_.find([], {c: 1}), 'undefined when searching empty list');
|
||||
assert.notOk(_.find(list, {c: 1}), 'undefined when not found');
|
||||
assert.notOk(_.find([], {c: 1}), 'undefined when searching empty list');
|
||||
|
||||
var result = _.find([1, 2, 3], function(num){ return num * 2 === 4; });
|
||||
assert.equal(result, 2, 'found the first "2" and broke the loop');
|
||||
@@ -348,25 +348,25 @@
|
||||
QUnit.test('every', function(assert) {
|
||||
assert.ok(_.every([], _.identity), 'the empty set');
|
||||
assert.ok(_.every([true, true, true], _.identity), 'every true values');
|
||||
assert.ok(!_.every([true, false, true], _.identity), 'one false value');
|
||||
assert.notOk(_.every([true, false, true], _.identity), 'one false value');
|
||||
assert.ok(_.every([0, 10, 28], function(num){ return num % 2 === 0; }), 'even numbers');
|
||||
assert.ok(!_.every([0, 11, 28], function(num){ return num % 2 === 0; }), 'an odd number');
|
||||
assert.ok(_.every([1], _.identity) === true, 'cast to boolean - true');
|
||||
assert.ok(_.every([0], _.identity) === false, 'cast to boolean - false');
|
||||
assert.ok(!_.every([void 0, void 0, void 0], _.identity), 'works with arrays of undefined');
|
||||
assert.notOk(_.every([0, 11, 28], function(num){ return num % 2 === 0; }), 'an odd number');
|
||||
assert.strictEqual(_.every([1], _.identity), true, 'cast to boolean - true');
|
||||
assert.strictEqual(_.every([0], _.identity), false, 'cast to boolean - false');
|
||||
assert.notOk(_.every([void 0, void 0, void 0], _.identity), 'works with arrays of undefined');
|
||||
|
||||
var list = [{a: 1, b: 2}, {a: 2, b: 2}, {a: 1, b: 3}, {a: 1, b: 4}];
|
||||
assert.ok(!_.every(list, {a: 1, b: 2}), 'Can be called with object');
|
||||
assert.notOk(_.every(list, {a: 1, b: 2}), 'Can be called with object');
|
||||
assert.ok(_.every(list, 'a'), 'String mapped to object property');
|
||||
|
||||
list = [{a: 1, b: 2}, {a: 2, b: 2, c: true}];
|
||||
assert.ok(_.every(list, {b: 2}), 'Can be called with object');
|
||||
assert.ok(!_.every(list, 'c'), 'String mapped to object property');
|
||||
assert.notOk(_.every(list, 'c'), 'String mapped to object property');
|
||||
|
||||
assert.ok(_.every({a: 1, b: 2, c: 3, d: 4}, _.isNumber), 'takes objects');
|
||||
assert.ok(!_.every({a: 1, b: 2, c: 3, d: 4}, _.isObject), 'takes objects');
|
||||
assert.notOk(_.every({a: 1, b: 2, c: 3, d: 4}, _.isObject), 'takes objects');
|
||||
assert.ok(_.every(['a', 'b', 'c', 'd'], _.hasOwnProperty, {a: 1, b: 2, c: 3, d: 4}), 'context works');
|
||||
assert.ok(!_.every(['a', 'b', 'c', 'd', 'f'], _.hasOwnProperty, {a: 1, b: 2, c: 3, d: 4}), 'context works');
|
||||
assert.notOk(_.every(['a', 'b', 'c', 'd', 'f'], _.hasOwnProperty, {a: 1, b: 2, c: 3, d: 4}), 'context works');
|
||||
});
|
||||
|
||||
QUnit.test('all', function(assert) {
|
||||
@@ -374,29 +374,29 @@
|
||||
});
|
||||
|
||||
QUnit.test('some', function(assert) {
|
||||
assert.ok(!_.some([]), 'the empty set');
|
||||
assert.ok(!_.some([false, false, false]), 'all false values');
|
||||
assert.notOk(_.some([]), 'the empty set');
|
||||
assert.notOk(_.some([false, false, false]), 'all false values');
|
||||
assert.ok(_.some([false, false, true]), 'one true value');
|
||||
assert.ok(_.some([null, 0, 'yes', false]), 'a string');
|
||||
assert.ok(!_.some([null, 0, '', false]), 'falsy values');
|
||||
assert.ok(!_.some([1, 11, 29], function(num){ return num % 2 === 0; }), 'all odd numbers');
|
||||
assert.notOk(_.some([null, 0, '', false]), 'falsy values');
|
||||
assert.notOk(_.some([1, 11, 29], function(num){ return num % 2 === 0; }), 'all odd numbers');
|
||||
assert.ok(_.some([1, 10, 29], function(num){ return num % 2 === 0; }), 'an even number');
|
||||
assert.ok(_.some([1], _.identity) === true, 'cast to boolean - true');
|
||||
assert.ok(_.some([0], _.identity) === false, 'cast to boolean - false');
|
||||
assert.strictEqual(_.some([1], _.identity), true, 'cast to boolean - true');
|
||||
assert.strictEqual(_.some([0], _.identity), false, 'cast to boolean - false');
|
||||
assert.ok(_.some([false, false, true]));
|
||||
|
||||
var list = [{a: 1, b: 2}, {a: 2, b: 2}, {a: 1, b: 3}, {a: 1, b: 4}];
|
||||
assert.ok(!_.some(list, {a: 5, b: 2}), 'Can be called with object');
|
||||
assert.notOk(_.some(list, {a: 5, b: 2}), 'Can be called with object');
|
||||
assert.ok(_.some(list, 'a'), 'String mapped to object property');
|
||||
|
||||
list = [{a: 1, b: 2}, {a: 2, b: 2, c: true}];
|
||||
assert.ok(_.some(list, {b: 2}), 'Can be called with object');
|
||||
assert.ok(!_.some(list, 'd'), 'String mapped to object property');
|
||||
assert.notOk(_.some(list, 'd'), 'String mapped to object property');
|
||||
|
||||
assert.ok(_.some({a: '1', b: '2', c: '3', d: '4', e: 6}, _.isNumber), 'takes objects');
|
||||
assert.ok(!_.some({a: 1, b: 2, c: 3, d: 4}, _.isObject), 'takes objects');
|
||||
assert.notOk(_.some({a: 1, b: 2, c: 3, d: 4}, _.isObject), 'takes objects');
|
||||
assert.ok(_.some(['a', 'b', 'c', 'd'], _.hasOwnProperty, {a: 1, b: 2, c: 3, d: 4}), 'context works');
|
||||
assert.ok(!_.some(['x', 'y', 'z'], _.hasOwnProperty, {a: 1, b: 2, c: 3, d: 4}), 'context works');
|
||||
assert.notOk(_.some(['x', 'y', 'z'], _.hasOwnProperty, {a: 1, b: 2, c: 3, d: 4}), 'context works');
|
||||
});
|
||||
|
||||
QUnit.test('any', function(assert) {
|
||||
@@ -408,11 +408,11 @@
|
||||
assert.strictEqual(_.includes(val, 'hasOwnProperty'), false);
|
||||
});
|
||||
assert.strictEqual(_.includes([1, 2, 3], 2), true, 'two is in the array');
|
||||
assert.ok(!_.includes([1, 3, 9], 2), 'two is not in the array');
|
||||
assert.notOk(_.includes([1, 3, 9], 2), 'two is not in the array');
|
||||
|
||||
assert.strictEqual(_.includes([5, 4, 3, 2, 1], 5, true), true, 'doesn\'t delegate to binary search');
|
||||
|
||||
assert.ok(_.includes({moe: 1, larry: 3, curly: 9}, 3) === true, '_.includes on objects checks their values');
|
||||
assert.strictEqual(_.includes({moe: 1, larry: 3, curly: 9}, 3), true, '_.includes on objects checks their values');
|
||||
assert.ok(_([1, 2, 3]).includes(2), 'OO-style includes');
|
||||
|
||||
var numbers = [1, 2, 3, 1, 2, 3, 1, 2, 3];
|
||||
@@ -549,7 +549,7 @@
|
||||
assert.equal(-Infinity, _.max(void 0), 'can handle null/undefined');
|
||||
assert.equal(-Infinity, _.max(null, _.identity), 'can handle null/undefined');
|
||||
|
||||
assert.equal(3, _.max([1, 2, 3]), 'can perform a regular Math.max');
|
||||
assert.equal(_.max([1, 2, 3]), 3, 'can perform a regular Math.max');
|
||||
|
||||
var neg = _.max([1, 2, 3], function(num){ return -num; });
|
||||
assert.equal(neg, 1, 'can perform a computation-based max');
|
||||
@@ -558,24 +558,24 @@
|
||||
assert.equal(-Infinity, _.max([]), 'Maximum value of an empty array');
|
||||
assert.equal(_.max({a: 'a'}), -Infinity, 'Maximum value of a non-numeric collection');
|
||||
|
||||
assert.equal(299999, _.max(_.range(1, 300000)), 'Maximum value of a too-big array');
|
||||
assert.equal(_.max(_.range(1, 300000)), 299999, 'Maximum value of a too-big array');
|
||||
|
||||
assert.equal(3, _.max([1, 2, 3, 'test']), 'Finds correct max in array starting with num and containing a NaN');
|
||||
assert.equal(3, _.max(['test', 1, 2, 3]), 'Finds correct max in array starting with NaN');
|
||||
assert.equal(_.max([1, 2, 3, 'test']), 3, 'Finds correct max in array starting with num and containing a NaN');
|
||||
assert.equal(_.max(['test', 1, 2, 3]), 3, 'Finds correct max in array starting with NaN');
|
||||
|
||||
assert.equal(3, _.max([1, 2, 3, null]), 'Finds correct max in array starting with num and containing a `null`');
|
||||
assert.equal(3, _.max([null, 1, 2, 3]), 'Finds correct max in array starting with a `null`');
|
||||
assert.equal(_.max([1, 2, 3, null]), 3, 'Finds correct max in array starting with num and containing a `null`');
|
||||
assert.equal(_.max([null, 1, 2, 3]), 3, 'Finds correct max in array starting with a `null`');
|
||||
|
||||
assert.equal(3, _.max([1, 2, 3, '']), 'Finds correct max in array starting with num and containing an empty string');
|
||||
assert.equal(3, _.max(['', 1, 2, 3]), 'Finds correct max in array starting with an empty string');
|
||||
assert.equal(_.max([1, 2, 3, '']), 3, 'Finds correct max in array starting with num and containing an empty string');
|
||||
assert.equal(_.max(['', 1, 2, 3]), 3, 'Finds correct max in array starting with an empty string');
|
||||
|
||||
assert.equal(3, _.max([1, 2, 3, false]), 'Finds correct max in array starting with num and containing a false');
|
||||
assert.equal(3, _.max([false, 1, 2, 3]), 'Finds correct max in array starting with a false');
|
||||
assert.equal(_.max([1, 2, 3, false]), 3, 'Finds correct max in array starting with num and containing a false');
|
||||
assert.equal(_.max([false, 1, 2, 3]), 3, 'Finds correct max in array starting with a false');
|
||||
|
||||
assert.equal(4, _.max([0, 1, 2, 3, 4]), 'Finds correct max in array containing a zero');
|
||||
assert.equal(0, _.max([-3, -2, -1, 0]), 'Finds correct max in array containing negative numbers');
|
||||
assert.equal(_.max([0, 1, 2, 3, 4]), 4, 'Finds correct max in array containing a zero');
|
||||
assert.equal(_.max([-3, -2, -1, 0]), 0, 'Finds correct max in array containing negative numbers');
|
||||
|
||||
assert.deepEqual([3, 6], _.map([[1, 2, 3], [4, 5, 6]], _.max), 'Finds correct max in array when mapping through multiple arrays');
|
||||
assert.deepEqual(_.map([[1, 2, 3], [4, 5, 6]], _.max), [3, 6], 'Finds correct max in array when mapping through multiple arrays');
|
||||
|
||||
var a = {x: -Infinity};
|
||||
var b = {x: -Infinity};
|
||||
@@ -590,35 +590,35 @@
|
||||
});
|
||||
|
||||
QUnit.test('min', function(assert) {
|
||||
assert.equal(Infinity, _.min(null), 'can handle null/undefined');
|
||||
assert.equal(Infinity, _.min(void 0), 'can handle null/undefined');
|
||||
assert.equal(Infinity, _.min(null, _.identity), 'can handle null/undefined');
|
||||
assert.equal(_.min(null), Infinity, 'can handle null/undefined');
|
||||
assert.equal(_.min(void 0), Infinity, 'can handle null/undefined');
|
||||
assert.equal(_.min(null, _.identity), Infinity, 'can handle null/undefined');
|
||||
|
||||
assert.equal(1, _.min([1, 2, 3]), 'can perform a regular Math.min');
|
||||
assert.equal(_.min([1, 2, 3]), 1, 'can perform a regular Math.min');
|
||||
|
||||
var neg = _.min([1, 2, 3], function(num){ return -num; });
|
||||
assert.equal(neg, 3, 'can perform a computation-based min');
|
||||
|
||||
assert.equal(Infinity, _.min({}), 'Minimum value of an empty object');
|
||||
assert.equal(Infinity, _.min([]), 'Minimum value of an empty array');
|
||||
assert.equal(_.min({}), Infinity, 'Minimum value of an empty object');
|
||||
assert.equal(_.min([]), Infinity, 'Minimum value of an empty array');
|
||||
assert.equal(_.min({a: 'a'}), Infinity, 'Minimum value of a non-numeric collection');
|
||||
|
||||
assert.deepEqual([1, 4], _.map([[1, 2, 3], [4, 5, 6]], _.min), 'Finds correct min in array when mapping through multiple arrays');
|
||||
assert.deepEqual(_.map([[1, 2, 3], [4, 5, 6]], _.min), [1, 4], 'Finds correct min in array when mapping through multiple arrays');
|
||||
|
||||
var now = new Date(9999999999);
|
||||
var then = new Date(0);
|
||||
assert.equal(_.min([now, then]), then);
|
||||
|
||||
assert.equal(1, _.min(_.range(1, 300000)), 'Minimum value of a too-big array');
|
||||
assert.equal(_.min(_.range(1, 300000)), 1, 'Minimum value of a too-big array');
|
||||
|
||||
assert.equal(1, _.min([1, 2, 3, 'test']), 'Finds correct min in array starting with num and containing a NaN');
|
||||
assert.equal(1, _.min(['test', 1, 2, 3]), 'Finds correct min in array starting with NaN');
|
||||
assert.equal(_.min([1, 2, 3, 'test']), 1, 'Finds correct min in array starting with num and containing a NaN');
|
||||
assert.equal(_.min(['test', 1, 2, 3]), 1, 'Finds correct min in array starting with NaN');
|
||||
|
||||
assert.equal(1, _.min([1, 2, 3, null]), 'Finds correct min in array starting with num and containing a `null`');
|
||||
assert.equal(1, _.min([null, 1, 2, 3]), 'Finds correct min in array starting with a `null`');
|
||||
assert.equal(_.min([1, 2, 3, null]), 1, 'Finds correct min in array starting with num and containing a `null`');
|
||||
assert.equal(_.min([null, 1, 2, 3]), 1, 'Finds correct min in array starting with a `null`');
|
||||
|
||||
assert.equal(0, _.min([0, 1, 2, 3, 4]), 'Finds correct min in array containing a zero');
|
||||
assert.equal(-3, _.min([-3, -2, -1, 0]), 'Finds correct min in array containing negative numbers');
|
||||
assert.equal(_.min([0, 1, 2, 3, 4]), 0, 'Finds correct min in array containing a zero');
|
||||
assert.equal(_.min([-3, -2, -1, 0]), -3, 'Finds correct min in array containing negative numbers');
|
||||
|
||||
var a = {x: Infinity};
|
||||
var b = {x: Infinity};
|
||||
@@ -692,7 +692,7 @@
|
||||
assert.deepEqual(grouped['5'], ['three', 'seven', 'eight']);
|
||||
|
||||
var context = {};
|
||||
_.groupBy([{}], function(){ assert.ok(this === context); }, context);
|
||||
_.groupBy([{}], function(){ assert.strictEqual(this, context); }, context);
|
||||
|
||||
grouped = _.groupBy([4.2, 6.1, 6.4], function(num) {
|
||||
return Math.floor(num) > 4 ? 'hasOwnProperty' : 'constructor';
|
||||
@@ -701,7 +701,7 @@
|
||||
assert.equal(grouped.hasOwnProperty.length, 2);
|
||||
|
||||
var array = [{}];
|
||||
_.groupBy(array, function(value, index, obj){ assert.ok(obj === array); });
|
||||
_.groupBy(array, function(value, index, obj){ assert.strictEqual(obj, array); });
|
||||
|
||||
array = [1, 2, 1, 2, 3];
|
||||
grouped = _.groupBy(array);
|
||||
@@ -747,7 +747,7 @@
|
||||
assert.equal(grouped['5'], 3);
|
||||
|
||||
var context = {};
|
||||
_.countBy([{}], function(){ assert.ok(this === context); }, context);
|
||||
_.countBy([{}], function(){ assert.strictEqual(this, context); }, context);
|
||||
|
||||
grouped = _.countBy([4.2, 6.1, 6.4], function(num) {
|
||||
return Math.floor(num) > 4 ? 'hasOwnProperty' : 'constructor';
|
||||
@@ -756,7 +756,7 @@
|
||||
assert.equal(grouped.hasOwnProperty, 2);
|
||||
|
||||
var array = [{}];
|
||||
_.countBy(array, function(value, index, obj){ assert.ok(obj === array); });
|
||||
_.countBy(array, function(value, index, obj){ assert.strictEqual(obj, array); });
|
||||
|
||||
array = [1, 2, 1, 2, 3];
|
||||
grouped = _.countBy(array);
|
||||
@@ -797,10 +797,10 @@
|
||||
});
|
||||
|
||||
QUnit.test('toArray', function(assert) {
|
||||
assert.ok(!_.isArray(arguments), 'arguments object is not an array');
|
||||
assert.notOk(_.isArray(arguments), 'arguments object is not an array');
|
||||
assert.ok(_.isArray(_.toArray(arguments)), 'arguments object converted into array');
|
||||
var a = [1, 2, 3];
|
||||
assert.ok(_.toArray(a) !== a, 'array is cloned');
|
||||
assert.notStrictEqual(_.toArray(a), a, 'array is cloned');
|
||||
assert.deepEqual(_.toArray(a), [1, 2, 3], 'cloned array contains same elements');
|
||||
|
||||
var numbers = _.toArray({one: 1, two: 2, three: 3});
|
||||
@@ -882,7 +882,7 @@
|
||||
assert.deepEqual(_.map(elementChildren, 'id'), ['id1', 'id2']);
|
||||
assert.deepEqual(_.map(parent.childNodes, 'nodeType'), [1, 3, 1]);
|
||||
|
||||
assert.ok(!_.every(parent.childNodes, _.isElement));
|
||||
assert.notOk(_.every(parent.childNodes, _.isElement));
|
||||
assert.ok(_.some(parent.childNodes, _.isElement));
|
||||
|
||||
function compareNode(node) {
|
||||
|
||||
20
vendor/underscore/test/cross-document.js
vendored
20
vendor/underscore/test/cross-document.js
vendored
@@ -35,7 +35,7 @@
|
||||
|
||||
QUnit.test('isEqual', function(assert) {
|
||||
|
||||
assert.ok(!_.isEqual(iNumber, 101));
|
||||
assert.notOk(_.isEqual(iNumber, 101));
|
||||
assert.ok(_.isEqual(iNumber, 100));
|
||||
|
||||
// Objects from another frame.
|
||||
@@ -46,13 +46,13 @@
|
||||
});
|
||||
|
||||
QUnit.test('isEmpty', function(assert) {
|
||||
assert.ok(!_([iNumber]).isEmpty(), '[1] is not empty');
|
||||
assert.ok(!_.isEmpty(iArray), '[] is empty');
|
||||
assert.notOk(_([iNumber]).isEmpty(), '[1] is not empty');
|
||||
assert.notOk(_.isEmpty(iArray), '[] is empty');
|
||||
assert.ok(_.isEmpty(iObject), '{} is empty');
|
||||
});
|
||||
|
||||
QUnit.test('isElement', function(assert) {
|
||||
assert.ok(!_.isElement('div'), 'strings are not dom elements');
|
||||
assert.notOk(_.isElement('div'), 'strings are not dom elements');
|
||||
assert.ok(_.isElement(document.body), 'the body tag is a DOM element');
|
||||
assert.ok(_.isElement(iElement), 'even from another frame');
|
||||
});
|
||||
@@ -113,12 +113,12 @@
|
||||
if (typeof ActiveXObject != 'undefined') {
|
||||
QUnit.test('IE host objects', function(assert) {
|
||||
var xml = new ActiveXObject('Msxml2.DOMDocument.3.0');
|
||||
assert.ok(!_.isNumber(xml));
|
||||
assert.ok(!_.isBoolean(xml));
|
||||
assert.ok(!_.isNaN(xml));
|
||||
assert.ok(!_.isFunction(xml));
|
||||
assert.ok(!_.isNull(xml));
|
||||
assert.ok(!_.isUndefined(xml));
|
||||
assert.notOk(_.isNumber(xml));
|
||||
assert.notOk(_.isBoolean(xml));
|
||||
assert.notOk(_.isNaN(xml));
|
||||
assert.notOk(_.isFunction(xml));
|
||||
assert.notOk(_.isNull(xml));
|
||||
assert.notOk(_.isUndefined(xml));
|
||||
});
|
||||
|
||||
QUnit.test('#1621 IE 11 compat mode DOM elements are not functions', function(assert) {
|
||||
|
||||
39
vendor/underscore/test/functions.js
vendored
39
vendor/underscore/test/functions.js
vendored
@@ -180,7 +180,7 @@
|
||||
var done = assert.async();
|
||||
var delayed = false;
|
||||
_.delay(function(){ delayed = true; }, 100);
|
||||
setTimeout(function(){ assert.ok(!delayed, "didn't delay the function quite yet"); }, 50);
|
||||
setTimeout(function(){ assert.notOk(delayed, "didn't delay the function quite yet"); }, 50);
|
||||
setTimeout(function(){ assert.ok(delayed, 'delayed the function'); done(); }, 150);
|
||||
});
|
||||
|
||||
@@ -694,6 +694,43 @@
|
||||
assert.deepEqual(_.toArray(cb(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)), _.range(1, 11));
|
||||
});
|
||||
|
||||
// Test custom iteratee
|
||||
var builtinIteratee = _.iteratee;
|
||||
_.iteratee = function(value) {
|
||||
// RegEx values return a function that returns the number of matches
|
||||
if (_.isRegExp(value)) return function(obj) {
|
||||
return (obj.match(value) || []).length;
|
||||
};
|
||||
return value;
|
||||
};
|
||||
|
||||
var collection = ['foo', 'bar', 'bbiz'];
|
||||
|
||||
// Test all methods that claim to be transformed through `_.iteratee`
|
||||
assert.deepEqual(_.countBy(collection, /b/g), {0: 1, 1: 1, 2: 1});
|
||||
assert.equal(_.every(collection, /b/g), false);
|
||||
assert.deepEqual(_.filter(collection, /b/g), ['bar', 'bbiz']);
|
||||
assert.equal(_.find(collection, /b/g), 'bar');
|
||||
assert.equal(_.findIndex(collection, /b/g), 1);
|
||||
assert.equal(_.findKey(collection, /b/g), 1);
|
||||
assert.equal(_.findLastIndex(collection, /b/g), 2);
|
||||
assert.deepEqual(_.groupBy(collection, /b/g), {0: ['foo'], 1: ['bar'], 2: ['bbiz']});
|
||||
assert.deepEqual(_.indexBy(collection, /b/g), {0: 'foo', 1: 'bar', 2: 'bbiz'});
|
||||
assert.deepEqual(_.map(collection, /b/g), [0, 1, 2]);
|
||||
assert.equal(_.max(collection, /b/g), 'bbiz');
|
||||
assert.equal(_.min(collection, /b/g), 'foo');
|
||||
assert.deepEqual(_.partition(collection, /b/g), [['bar', 'bbiz'], ['foo']]);
|
||||
assert.deepEqual(_.reject(collection, /b/g), ['foo']);
|
||||
assert.equal(_.some(collection, /b/g), true);
|
||||
assert.deepEqual(_.sortBy(collection, /b/g), ['foo', 'bar', 'bbiz']);
|
||||
assert.equal(_.sortedIndex(collection, 'blah', /b/g), 1);
|
||||
assert.deepEqual(_.uniq(collection, /b/g), ['foo', 'bar', 'bbiz']);
|
||||
|
||||
var objCollection = {a: 'foo', b: 'bar', c: 'bbiz'};
|
||||
assert.deepEqual(_.mapObject(objCollection, /b/g), {a: 0, b: 1, c: 2});
|
||||
|
||||
// Restore the builtin iteratee
|
||||
_.iteratee = builtinIteratee;
|
||||
});
|
||||
|
||||
QUnit.test('restArgs', function(assert) {
|
||||
|
||||
323
vendor/underscore/test/objects.js
vendored
323
vendor/underscore/test/objects.js
vendored
@@ -123,7 +123,7 @@
|
||||
subObj.c = 'd';
|
||||
assert.deepEqual(_.extend({}, subObj), {a: 'b', c: 'd'}, 'extend copies all properties from source');
|
||||
_.extend(subObj, {});
|
||||
assert.ok(!subObj.hasOwnProperty('a'), "extend does not convert destination object's 'in' properties to 'own' properties");
|
||||
assert.notOk(subObj.hasOwnProperty('a'), "extend does not convert destination object's 'in' properties to 'own' properties");
|
||||
|
||||
try {
|
||||
result = {};
|
||||
@@ -205,7 +205,7 @@
|
||||
return this[key] === 3 && this === instance;
|
||||
}, instance), {c: 3}, 'function is given context');
|
||||
|
||||
assert.ok(!_.has(_.pick({}, 'foo'), 'foo'), 'does not set own property if property not in object');
|
||||
assert.notOk(_.has(_.pick({}, 'foo'), 'foo'), 'does not set own property if property not in object');
|
||||
_.pick(data, function(value, key, obj) {
|
||||
assert.equal(obj, data, 'passes same object as third parameter of iteratee');
|
||||
});
|
||||
@@ -309,7 +309,7 @@
|
||||
|
||||
Child.prototype.foo = 'foo';
|
||||
var created = _.create(Child.prototype, new Child);
|
||||
assert.ok(!created.hasOwnProperty('foo'), 'should only add own properties');
|
||||
assert.notOk(created.hasOwnProperty('foo'), 'should only add own properties');
|
||||
});
|
||||
|
||||
QUnit.test('isEqual', function(assert) {
|
||||
@@ -326,10 +326,10 @@
|
||||
assert.ok(_.isEqual(null, null), '`null` is equal to `null`');
|
||||
assert.ok(_.isEqual(), '`undefined` is equal to `undefined`');
|
||||
|
||||
assert.ok(!_.isEqual(0, -0), '`0` is not equal to `-0`');
|
||||
assert.ok(!_.isEqual(-0, 0), 'Commutative equality is implemented for `0` and `-0`');
|
||||
assert.ok(!_.isEqual(null, void 0), '`null` is not equal to `undefined`');
|
||||
assert.ok(!_.isEqual(void 0, null), 'Commutative equality is implemented for `null` and `undefined`');
|
||||
assert.notOk(_.isEqual(0, -0), '`0` is not equal to `-0`');
|
||||
assert.notOk(_.isEqual(-0, 0), 'Commutative equality is implemented for `0` and `-0`');
|
||||
assert.notOk(_.isEqual(null, void 0), '`null` is not equal to `undefined`');
|
||||
assert.notOk(_.isEqual(void 0, null), 'Commutative equality is implemented for `null` and `undefined`');
|
||||
|
||||
// String object and primitive comparisons.
|
||||
assert.ok(_.isEqual('Curly', 'Curly'), 'Identical string primitives are equal');
|
||||
@@ -337,76 +337,76 @@
|
||||
assert.ok(_.isEqual(new String('Curly'), 'Curly'), 'String primitives and their corresponding object wrappers are equal');
|
||||
assert.ok(_.isEqual('Curly', new String('Curly')), 'Commutative equality is implemented for string objects and primitives');
|
||||
|
||||
assert.ok(!_.isEqual('Curly', 'Larry'), 'String primitives with different values are not equal');
|
||||
assert.ok(!_.isEqual(new String('Curly'), new String('Larry')), 'String objects with different primitive values are not equal');
|
||||
assert.ok(!_.isEqual(new String('Curly'), {toString: function(){ return 'Curly'; }}), 'String objects and objects with a custom `toString` method are not equal');
|
||||
assert.notOk(_.isEqual('Curly', 'Larry'), 'String primitives with different values are not equal');
|
||||
assert.notOk(_.isEqual(new String('Curly'), new String('Larry')), 'String objects with different primitive values are not equal');
|
||||
assert.notOk(_.isEqual(new String('Curly'), {toString: function(){ return 'Curly'; }}), 'String objects and objects with a custom `toString` method are not equal');
|
||||
|
||||
// Number object and primitive comparisons.
|
||||
assert.ok(_.isEqual(75, 75), 'Identical number primitives are equal');
|
||||
assert.ok(_.isEqual(new Number(75), new Number(75)), 'Number objects with identical primitive values are equal');
|
||||
assert.ok(_.isEqual(75, new Number(75)), 'Number primitives and their corresponding object wrappers are equal');
|
||||
assert.ok(_.isEqual(new Number(75), 75), 'Commutative equality is implemented for number objects and primitives');
|
||||
assert.ok(!_.isEqual(new Number(0), -0), '`new Number(0)` and `-0` are not equal');
|
||||
assert.ok(!_.isEqual(0, new Number(-0)), 'Commutative equality is implemented for `new Number(0)` and `-0`');
|
||||
assert.notOk(_.isEqual(new Number(0), -0), '`new Number(0)` and `-0` are not equal');
|
||||
assert.notOk(_.isEqual(0, new Number(-0)), 'Commutative equality is implemented for `new Number(0)` and `-0`');
|
||||
|
||||
assert.ok(!_.isEqual(new Number(75), new Number(63)), 'Number objects with different primitive values are not equal');
|
||||
assert.ok(!_.isEqual(new Number(63), {valueOf: function(){ return 63; }}), 'Number objects and objects with a `valueOf` method are not equal');
|
||||
assert.notOk(_.isEqual(new Number(75), new Number(63)), 'Number objects with different primitive values are not equal');
|
||||
assert.notOk(_.isEqual(new Number(63), {valueOf: function(){ return 63; }}), 'Number objects and objects with a `valueOf` method are not equal');
|
||||
|
||||
// Comparisons involving `NaN`.
|
||||
assert.ok(_.isEqual(NaN, NaN), '`NaN` is equal to `NaN`');
|
||||
assert.ok(_.isEqual(new Number(NaN), NaN), 'Object(`NaN`) is equal to `NaN`');
|
||||
assert.ok(!_.isEqual(61, NaN), 'A number primitive is not equal to `NaN`');
|
||||
assert.ok(!_.isEqual(new Number(79), NaN), 'A number object is not equal to `NaN`');
|
||||
assert.ok(!_.isEqual(Infinity, NaN), '`Infinity` is not equal to `NaN`');
|
||||
assert.notOk(_.isEqual(61, NaN), 'A number primitive is not equal to `NaN`');
|
||||
assert.notOk(_.isEqual(new Number(79), NaN), 'A number object is not equal to `NaN`');
|
||||
assert.notOk(_.isEqual(Infinity, NaN), '`Infinity` is not equal to `NaN`');
|
||||
|
||||
// Boolean object and primitive comparisons.
|
||||
assert.ok(_.isEqual(true, true), 'Identical boolean primitives are equal');
|
||||
assert.ok(_.isEqual(new Boolean, new Boolean), 'Boolean objects with identical primitive values are equal');
|
||||
assert.ok(_.isEqual(true, new Boolean(true)), 'Boolean primitives and their corresponding object wrappers are equal');
|
||||
assert.ok(_.isEqual(new Boolean(true), true), 'Commutative equality is implemented for booleans');
|
||||
assert.ok(!_.isEqual(new Boolean(true), new Boolean), 'Boolean objects with different primitive values are not equal');
|
||||
assert.notOk(_.isEqual(new Boolean(true), new Boolean), 'Boolean objects with different primitive values are not equal');
|
||||
|
||||
// Common type coercions.
|
||||
assert.ok(!_.isEqual(new Boolean(false), true), '`new Boolean(false)` is not equal to `true`');
|
||||
assert.ok(!_.isEqual('75', 75), 'String and number primitives with like values are not equal');
|
||||
assert.ok(!_.isEqual(new Number(63), new String(63)), 'String and number objects with like values are not equal');
|
||||
assert.ok(!_.isEqual(75, '75'), 'Commutative equality is implemented for like string and number values');
|
||||
assert.ok(!_.isEqual(0, ''), 'Number and string primitives with like values are not equal');
|
||||
assert.ok(!_.isEqual(1, true), 'Number and boolean primitives with like values are not equal');
|
||||
assert.ok(!_.isEqual(new Boolean(false), new Number(0)), 'Boolean and number objects with like values are not equal');
|
||||
assert.ok(!_.isEqual(false, new String('')), 'Boolean primitives and string objects with like values are not equal');
|
||||
assert.ok(!_.isEqual(12564504e5, new Date(2009, 9, 25)), 'Dates and their corresponding numeric primitive values are not equal');
|
||||
assert.notOk(_.isEqual(new Boolean(false), true), '`new Boolean(false)` is not equal to `true`');
|
||||
assert.notOk(_.isEqual('75', 75), 'String and number primitives with like values are not equal');
|
||||
assert.notOk(_.isEqual(new Number(63), new String(63)), 'String and number objects with like values are not equal');
|
||||
assert.notOk(_.isEqual(75, '75'), 'Commutative equality is implemented for like string and number values');
|
||||
assert.notOk(_.isEqual(0, ''), 'Number and string primitives with like values are not equal');
|
||||
assert.notOk(_.isEqual(1, true), 'Number and boolean primitives with like values are not equal');
|
||||
assert.notOk(_.isEqual(new Boolean(false), new Number(0)), 'Boolean and number objects with like values are not equal');
|
||||
assert.notOk(_.isEqual(false, new String('')), 'Boolean primitives and string objects with like values are not equal');
|
||||
assert.notOk(_.isEqual(12564504e5, new Date(2009, 9, 25)), 'Dates and their corresponding numeric primitive values are not equal');
|
||||
|
||||
// Dates.
|
||||
assert.ok(_.isEqual(new Date(2009, 9, 25), new Date(2009, 9, 25)), 'Date objects referencing identical times are equal');
|
||||
assert.ok(!_.isEqual(new Date(2009, 9, 25), new Date(2009, 11, 13)), 'Date objects referencing different times are not equal');
|
||||
assert.ok(!_.isEqual(new Date(2009, 11, 13), {
|
||||
assert.notOk(_.isEqual(new Date(2009, 9, 25), new Date(2009, 11, 13)), 'Date objects referencing different times are not equal');
|
||||
assert.notOk(_.isEqual(new Date(2009, 11, 13), {
|
||||
getTime: function(){
|
||||
return 12606876e5;
|
||||
}
|
||||
}), 'Date objects and objects with a `getTime` method are not equal');
|
||||
assert.ok(!_.isEqual(new Date('Curly'), new Date('Curly')), 'Invalid dates are not equal');
|
||||
assert.notOk(_.isEqual(new Date('Curly'), new Date('Curly')), 'Invalid dates are not equal');
|
||||
|
||||
// Functions.
|
||||
assert.ok(!_.isEqual(First, Second), 'Different functions with identical bodies and source code representations are not equal');
|
||||
assert.notOk(_.isEqual(First, Second), 'Different functions with identical bodies and source code representations are not equal');
|
||||
|
||||
// RegExps.
|
||||
assert.ok(_.isEqual(/(?:)/gim, /(?:)/gim), 'RegExps with equivalent patterns and flags are equal');
|
||||
assert.ok(_.isEqual(/(?:)/gi, /(?:)/ig), 'Flag order is not significant');
|
||||
assert.ok(!_.isEqual(/(?:)/g, /(?:)/gi), 'RegExps with equivalent patterns and different flags are not equal');
|
||||
assert.ok(!_.isEqual(/Moe/gim, /Curly/gim), 'RegExps with different patterns and equivalent flags are not equal');
|
||||
assert.ok(!_.isEqual(/(?:)/gi, /(?:)/g), 'Commutative equality is implemented for RegExps');
|
||||
assert.ok(!_.isEqual(/Curly/g, {source: 'Larry', global: true, ignoreCase: false, multiline: false}), 'RegExps and RegExp-like objects are not equal');
|
||||
assert.notOk(_.isEqual(/(?:)/g, /(?:)/gi), 'RegExps with equivalent patterns and different flags are not equal');
|
||||
assert.notOk(_.isEqual(/Moe/gim, /Curly/gim), 'RegExps with different patterns and equivalent flags are not equal');
|
||||
assert.notOk(_.isEqual(/(?:)/gi, /(?:)/g), 'Commutative equality is implemented for RegExps');
|
||||
assert.notOk(_.isEqual(/Curly/g, {source: 'Larry', global: true, ignoreCase: false, multiline: false}), 'RegExps and RegExp-like objects are not equal');
|
||||
|
||||
// Empty arrays, array-like objects, and object literals.
|
||||
assert.ok(_.isEqual({}, {}), 'Empty object literals are equal');
|
||||
assert.ok(_.isEqual([], []), 'Empty array literals are equal');
|
||||
assert.ok(_.isEqual([{}], [{}]), 'Empty nested arrays and objects are equal');
|
||||
assert.ok(!_.isEqual({length: 0}, []), 'Array-like objects and arrays are not equal.');
|
||||
assert.ok(!_.isEqual([], {length: 0}), 'Commutative equality is implemented for array-like objects');
|
||||
assert.notOk(_.isEqual({length: 0}, []), 'Array-like objects and arrays are not equal.');
|
||||
assert.notOk(_.isEqual([], {length: 0}), 'Commutative equality is implemented for array-like objects');
|
||||
|
||||
assert.ok(!_.isEqual({}, []), 'Object literals and array literals are not equal');
|
||||
assert.ok(!_.isEqual([], {}), 'Commutative equality is implemented for objects and arrays');
|
||||
assert.notOk(_.isEqual({}, []), 'Object literals and array literals are not equal');
|
||||
assert.notOk(_.isEqual([], {}), 'Commutative equality is implemented for objects and arrays');
|
||||
|
||||
// Arrays with primitive and object values.
|
||||
assert.ok(_.isEqual([1, 'Larry', true], [1, 'Larry', true]), 'Arrays containing identical primitives are equal');
|
||||
@@ -424,14 +424,14 @@
|
||||
// Array elements and properties.
|
||||
assert.ok(_.isEqual(a, b), 'Arrays containing equivalent elements and different non-numeric properties are equal');
|
||||
a.push('White Rocks');
|
||||
assert.ok(!_.isEqual(a, b), 'Arrays of different lengths are not equal');
|
||||
assert.notOk(_.isEqual(a, b), 'Arrays of different lengths are not equal');
|
||||
a.push('East Boulder');
|
||||
b.push('Gunbarrel Ranch', 'Teller Farm');
|
||||
assert.ok(!_.isEqual(a, b), 'Arrays of identical lengths containing different elements are not equal');
|
||||
assert.notOk(_.isEqual(a, b), 'Arrays of identical lengths containing different elements are not equal');
|
||||
|
||||
// Sparse arrays.
|
||||
assert.ok(_.isEqual(Array(3), Array(3)), 'Sparse arrays of identical lengths are equal');
|
||||
assert.ok(!_.isEqual(Array(3), Array(6)), 'Sparse arrays of different lengths are not equal when both are empty');
|
||||
assert.notOk(_.isEqual(Array(3), Array(6)), 'Sparse arrays of different lengths are not equal when both are empty');
|
||||
|
||||
var sparse = [];
|
||||
sparse[1] = 5;
|
||||
@@ -440,11 +440,11 @@
|
||||
// Simple objects.
|
||||
assert.ok(_.isEqual({a: 'Curly', b: 1, c: true}, {a: 'Curly', b: 1, c: true}), 'Objects containing identical primitives are equal');
|
||||
assert.ok(_.isEqual({a: /Curly/g, b: new Date(2009, 11, 13)}, {a: /Curly/g, b: new Date(2009, 11, 13)}), 'Objects containing equivalent members are equal');
|
||||
assert.ok(!_.isEqual({a: 63, b: 75}, {a: 61, b: 55}), 'Objects of identical sizes with different values are not equal');
|
||||
assert.ok(!_.isEqual({a: 63, b: 75}, {a: 61, c: 55}), 'Objects of identical sizes with different property names are not equal');
|
||||
assert.ok(!_.isEqual({a: 1, b: 2}, {a: 1}), 'Objects of different sizes are not equal');
|
||||
assert.ok(!_.isEqual({a: 1}, {a: 1, b: 2}), 'Commutative equality is implemented for objects');
|
||||
assert.ok(!_.isEqual({x: 1, y: void 0}, {x: 1, z: 2}), 'Objects with identical keys and different values are not equivalent');
|
||||
assert.notOk(_.isEqual({a: 63, b: 75}, {a: 61, b: 55}), 'Objects of identical sizes with different values are not equal');
|
||||
assert.notOk(_.isEqual({a: 63, b: 75}, {a: 61, c: 55}), 'Objects of identical sizes with different property names are not equal');
|
||||
assert.notOk(_.isEqual({a: 1, b: 2}, {a: 1}), 'Objects of different sizes are not equal');
|
||||
assert.notOk(_.isEqual({a: 1}, {a: 1, b: 2}), 'Commutative equality is implemented for objects');
|
||||
assert.notOk(_.isEqual({x: 1, y: void 0}, {x: 1, z: 2}), 'Objects with identical keys and different values are not equivalent');
|
||||
|
||||
// `A` contains nested objects and arrays.
|
||||
a = {
|
||||
@@ -479,9 +479,9 @@
|
||||
|
||||
// Instances.
|
||||
assert.ok(_.isEqual(new First, new First), 'Object instances are equal');
|
||||
assert.ok(!_.isEqual(new First, new Second), 'Objects with different constructors and identical own properties are not equal');
|
||||
assert.ok(!_.isEqual({value: 1}, new First), 'Object instances and objects sharing equivalent properties are not equal');
|
||||
assert.ok(!_.isEqual({value: 2}, new Second), 'The prototype chain of objects should not be examined');
|
||||
assert.notOk(_.isEqual(new First, new Second), 'Objects with different constructors and identical own properties are not equal');
|
||||
assert.notOk(_.isEqual({value: 1}, new First), 'Object instances and objects sharing equivalent properties are not equal');
|
||||
assert.notOk(_.isEqual({value: 2}, new Second), 'The prototype chain of objects should not be examined');
|
||||
|
||||
// Circular Arrays.
|
||||
(a = []).push(a);
|
||||
@@ -492,13 +492,13 @@
|
||||
assert.ok(_.isEqual(a, b), 'Arrays containing circular references and equivalent properties are equal');
|
||||
a.push('Shemp');
|
||||
b.push('Curly');
|
||||
assert.ok(!_.isEqual(a, b), 'Arrays containing circular references and different properties are not equal');
|
||||
assert.notOk(_.isEqual(a, b), 'Arrays containing circular references and different properties are not equal');
|
||||
|
||||
// More circular arrays #767.
|
||||
a = ['everything is checked but', 'this', 'is not'];
|
||||
a[1] = a;
|
||||
b = ['everything is checked but', ['this', 'array'], 'is not'];
|
||||
assert.ok(!_.isEqual(a, b), 'Comparison of circular references with non-circular references are not equal');
|
||||
assert.notOk(_.isEqual(a, b), 'Comparison of circular references with non-circular references are not equal');
|
||||
|
||||
// Circular Objects.
|
||||
a = {abc: null};
|
||||
@@ -511,13 +511,13 @@
|
||||
assert.ok(_.isEqual(a, b), 'Objects containing circular references and equivalent properties are equal');
|
||||
a.def = new Number(75);
|
||||
b.def = new Number(63);
|
||||
assert.ok(!_.isEqual(a, b), 'Objects containing circular references and different properties are not equal');
|
||||
assert.notOk(_.isEqual(a, b), 'Objects containing circular references and different properties are not equal');
|
||||
|
||||
// More circular objects #767.
|
||||
a = {everything: 'is checked', but: 'this', is: 'not'};
|
||||
a.but = a;
|
||||
b = {everything: 'is checked', but: {that: 'object'}, is: 'not'};
|
||||
assert.ok(!_.isEqual(a, b), 'Comparison of circular references with non-circular object references are not equal');
|
||||
assert.notOk(_.isEqual(a, b), 'Comparison of circular references with non-circular object references are not equal');
|
||||
|
||||
// Cyclic Structures.
|
||||
a = [{abc: null}];
|
||||
@@ -530,7 +530,7 @@
|
||||
assert.ok(_.isEqual(a, b), 'Cyclic structures containing equivalent properties are equal');
|
||||
a[0].def = new String('Larry');
|
||||
b[0].def = new String('Curly');
|
||||
assert.ok(!_.isEqual(a, b), 'Cyclic structures containing different properties are not equal');
|
||||
assert.notOk(_.isEqual(a, b), 'Cyclic structures containing different properties are not equal');
|
||||
|
||||
// Complex Circular References.
|
||||
a = {foo: {b: {foo: {c: {foo: null}}}}};
|
||||
@@ -540,7 +540,7 @@
|
||||
assert.ok(_.isEqual(a, b), 'Cyclic structures with nested and identically-named properties are equal');
|
||||
|
||||
// Chaining.
|
||||
assert.ok(!_.isEqual(_({x: 1, y: void 0}).chain(), _({x: 1, z: 2}).chain()), 'Chained objects containing different values are not equal');
|
||||
assert.notOk(_.isEqual(_({x: 1, y: void 0}).chain(), _({x: 1, z: 2}).chain()), 'Chained objects containing different values are not equal');
|
||||
|
||||
a = _({x: 1, y: 2}).chain();
|
||||
b = _({x: 1, y: 2}).chain();
|
||||
@@ -576,15 +576,15 @@
|
||||
});
|
||||
|
||||
QUnit.test('isEmpty', function(assert) {
|
||||
assert.ok(!_([1]).isEmpty(), '[1] is not empty');
|
||||
assert.notOk(_([1]).isEmpty(), '[1] is not empty');
|
||||
assert.ok(_.isEmpty([]), '[] is empty');
|
||||
assert.ok(!_.isEmpty({one: 1}), '{one: 1} is not empty');
|
||||
assert.notOk(_.isEmpty({one: 1}), '{one: 1} is not empty');
|
||||
assert.ok(_.isEmpty({}), '{} is empty');
|
||||
assert.ok(_.isEmpty(new RegExp('')), 'objects with prototype properties are empty');
|
||||
assert.ok(_.isEmpty(null), 'null is empty');
|
||||
assert.ok(_.isEmpty(), 'undefined is empty');
|
||||
assert.ok(_.isEmpty(''), 'the empty string is empty');
|
||||
assert.ok(!_.isEmpty('moe'), 'but other strings are not');
|
||||
assert.notOk(_.isEmpty('moe'), 'but other strings are not');
|
||||
|
||||
var obj = {one: 1};
|
||||
delete obj.one;
|
||||
@@ -592,27 +592,27 @@
|
||||
|
||||
var args = function(){ return arguments; };
|
||||
assert.ok(_.isEmpty(args()), 'empty arguments object is empty');
|
||||
assert.ok(!_.isEmpty(args('')), 'non-empty arguments object is not empty');
|
||||
assert.notOk(_.isEmpty(args('')), 'non-empty arguments object is not empty');
|
||||
|
||||
// covers collecting non-enumerable properties in IE < 9
|
||||
var nonEnumProp = {toString: 5};
|
||||
assert.ok(!_.isEmpty(nonEnumProp), 'non-enumerable property is not empty');
|
||||
assert.notOk(_.isEmpty(nonEnumProp), 'non-enumerable property is not empty');
|
||||
});
|
||||
|
||||
if (typeof document === 'object') {
|
||||
QUnit.test('isElement', function(assert) {
|
||||
assert.ok(!_.isElement('div'), 'strings are not dom elements');
|
||||
assert.notOk(_.isElement('div'), 'strings are not dom elements');
|
||||
assert.ok(_.isElement(testElement), 'an element is a DOM element');
|
||||
});
|
||||
}
|
||||
|
||||
QUnit.test('isArguments', function(assert) {
|
||||
var args = (function(){ return arguments; }(1, 2, 3));
|
||||
assert.ok(!_.isArguments('string'), 'a string is not an arguments object');
|
||||
assert.ok(!_.isArguments(_.isArguments), 'a function is not an arguments object');
|
||||
assert.notOk(_.isArguments('string'), 'a string is not an arguments object');
|
||||
assert.notOk(_.isArguments(_.isArguments), 'a function is not an arguments object');
|
||||
assert.ok(_.isArguments(args), 'but the arguments object is an arguments object');
|
||||
assert.ok(!_.isArguments(_.toArray(args)), 'but not when it\'s converted into an array');
|
||||
assert.ok(!_.isArguments([1, 2, 3]), 'and not vanilla arrays.');
|
||||
assert.notOk(_.isArguments(_.toArray(args)), 'but not when it\'s converted into an array');
|
||||
assert.notOk(_.isArguments([1, 2, 3]), 'and not vanilla arrays.');
|
||||
});
|
||||
|
||||
QUnit.test('isObject', function(assert) {
|
||||
@@ -622,24 +622,24 @@
|
||||
assert.ok(_.isObject(testElement), 'and DOM element');
|
||||
}
|
||||
assert.ok(_.isObject(function() {}), 'and functions');
|
||||
assert.ok(!_.isObject(null), 'but not null');
|
||||
assert.ok(!_.isObject(void 0), 'and not undefined');
|
||||
assert.ok(!_.isObject('string'), 'and not string');
|
||||
assert.ok(!_.isObject(12), 'and not number');
|
||||
assert.ok(!_.isObject(true), 'and not boolean');
|
||||
assert.notOk(_.isObject(null), 'but not null');
|
||||
assert.notOk(_.isObject(void 0), 'and not undefined');
|
||||
assert.notOk(_.isObject('string'), 'and not string');
|
||||
assert.notOk(_.isObject(12), 'and not number');
|
||||
assert.notOk(_.isObject(true), 'and not boolean');
|
||||
assert.ok(_.isObject(new String('string')), 'but new String()');
|
||||
});
|
||||
|
||||
QUnit.test('isArray', function(assert) {
|
||||
assert.ok(!_.isArray(void 0), 'undefined vars are not arrays');
|
||||
assert.ok(!_.isArray(arguments), 'the arguments object is not an array');
|
||||
assert.notOk(_.isArray(void 0), 'undefined vars are not arrays');
|
||||
assert.notOk(_.isArray(arguments), 'the arguments object is not an array');
|
||||
assert.ok(_.isArray([1, 2, 3]), 'but arrays are');
|
||||
});
|
||||
|
||||
QUnit.test('isString', function(assert) {
|
||||
var obj = new String('I am a string object');
|
||||
if (testElement) {
|
||||
assert.ok(!_.isString(testElement), 'an element is not a string');
|
||||
assert.notOk(_.isString(testElement), 'an element is not a string');
|
||||
}
|
||||
assert.ok(_.isString([1, 2, 3].join(', ')), 'but strings are');
|
||||
assert.strictEqual(_.isString('I am a string literal'), true, 'string literals are');
|
||||
@@ -648,9 +648,9 @@
|
||||
});
|
||||
|
||||
QUnit.test('isSymbol', function(assert) {
|
||||
assert.ok(!_.isSymbol(0), 'numbers are not symbols');
|
||||
assert.ok(!_.isSymbol(''), 'strings are not symbols');
|
||||
assert.ok(!_.isSymbol(_.isSymbol), 'functions are not symbols');
|
||||
assert.notOk(_.isSymbol(0), 'numbers are not symbols');
|
||||
assert.notOk(_.isSymbol(''), 'strings are not symbols');
|
||||
assert.notOk(_.isSymbol(_.isSymbol), 'functions are not symbols');
|
||||
if (typeof Symbol === 'function') {
|
||||
assert.ok(_.isSymbol(Symbol()), 'symbols are symbols');
|
||||
assert.ok(_.isSymbol(Symbol('description')), 'described symbols are symbols');
|
||||
@@ -659,43 +659,43 @@
|
||||
});
|
||||
|
||||
QUnit.test('isNumber', function(assert) {
|
||||
assert.ok(!_.isNumber('string'), 'a string is not a number');
|
||||
assert.ok(!_.isNumber(arguments), 'the arguments object is not a number');
|
||||
assert.ok(!_.isNumber(void 0), 'undefined is not a number');
|
||||
assert.notOk(_.isNumber('string'), 'a string is not a number');
|
||||
assert.notOk(_.isNumber(arguments), 'the arguments object is not a number');
|
||||
assert.notOk(_.isNumber(void 0), 'undefined is not a number');
|
||||
assert.ok(_.isNumber(3 * 4 - 7 / 10), 'but numbers are');
|
||||
assert.ok(_.isNumber(NaN), 'NaN *is* a number');
|
||||
assert.ok(_.isNumber(Infinity), 'Infinity is a number');
|
||||
assert.ok(!_.isNumber('1'), 'numeric strings are not numbers');
|
||||
assert.notOk(_.isNumber('1'), 'numeric strings are not numbers');
|
||||
});
|
||||
|
||||
QUnit.test('isBoolean', function(assert) {
|
||||
assert.ok(!_.isBoolean(2), 'a number is not a boolean');
|
||||
assert.ok(!_.isBoolean('string'), 'a string is not a boolean');
|
||||
assert.ok(!_.isBoolean('false'), 'the string "false" is not a boolean');
|
||||
assert.ok(!_.isBoolean('true'), 'the string "true" is not a boolean');
|
||||
assert.ok(!_.isBoolean(arguments), 'the arguments object is not a boolean');
|
||||
assert.ok(!_.isBoolean(void 0), 'undefined is not a boolean');
|
||||
assert.ok(!_.isBoolean(NaN), 'NaN is not a boolean');
|
||||
assert.ok(!_.isBoolean(null), 'null is not a boolean');
|
||||
assert.notOk(_.isBoolean(2), 'a number is not a boolean');
|
||||
assert.notOk(_.isBoolean('string'), 'a string is not a boolean');
|
||||
assert.notOk(_.isBoolean('false'), 'the string "false" is not a boolean');
|
||||
assert.notOk(_.isBoolean('true'), 'the string "true" is not a boolean');
|
||||
assert.notOk(_.isBoolean(arguments), 'the arguments object is not a boolean');
|
||||
assert.notOk(_.isBoolean(void 0), 'undefined is not a boolean');
|
||||
assert.notOk(_.isBoolean(NaN), 'NaN is not a boolean');
|
||||
assert.notOk(_.isBoolean(null), 'null is not a boolean');
|
||||
assert.ok(_.isBoolean(true), 'but true is');
|
||||
assert.ok(_.isBoolean(false), 'and so is false');
|
||||
});
|
||||
|
||||
QUnit.test('isMap', function(assert) {
|
||||
assert.ok(!_.isMap('string'), 'a string is not a map');
|
||||
assert.ok(!_.isMap(2), 'a number is not a map');
|
||||
assert.ok(!_.isMap({}), 'an object is not a map');
|
||||
assert.ok(!_.isMap(false), 'a boolean is not a map');
|
||||
assert.ok(!_.isMap(void 0), 'undefined is not a map');
|
||||
assert.ok(!_.isMap([1, 2, 3]), 'an array is not a map');
|
||||
assert.notOk(_.isMap('string'), 'a string is not a map');
|
||||
assert.notOk(_.isMap(2), 'a number is not a map');
|
||||
assert.notOk(_.isMap({}), 'an object is not a map');
|
||||
assert.notOk(_.isMap(false), 'a boolean is not a map');
|
||||
assert.notOk(_.isMap(void 0), 'undefined is not a map');
|
||||
assert.notOk(_.isMap([1, 2, 3]), 'an array is not a map');
|
||||
if (typeof Set === 'function') {
|
||||
assert.ok(!_.isMap(new Set()), 'a set is not a map');
|
||||
assert.notOk(_.isMap(new Set()), 'a set is not a map');
|
||||
}
|
||||
if (typeof WeakSet === 'function') {
|
||||
assert.ok(!_.isMap(new WeakSet()), 'a weakset is not a map');
|
||||
assert.notOk(_.isMap(new WeakSet()), 'a weakset is not a map');
|
||||
}
|
||||
if (typeof WeakMap === 'function') {
|
||||
assert.ok(!_.isMap(new WeakMap()), 'a weakmap is not a map');
|
||||
assert.notOk(_.isMap(new WeakMap()), 'a weakmap is not a map');
|
||||
}
|
||||
if (typeof Map === 'function') {
|
||||
var keyString = 'a string';
|
||||
@@ -706,20 +706,20 @@
|
||||
});
|
||||
|
||||
QUnit.test('isWeakMap', function(assert) {
|
||||
assert.ok(!_.isWeakMap('string'), 'a string is not a weakmap');
|
||||
assert.ok(!_.isWeakMap(2), 'a number is not a weakmap');
|
||||
assert.ok(!_.isWeakMap({}), 'an object is not a weakmap');
|
||||
assert.ok(!_.isWeakMap(false), 'a boolean is not a weakmap');
|
||||
assert.ok(!_.isWeakMap(void 0), 'undefined is not a weakmap');
|
||||
assert.ok(!_.isWeakMap([1, 2, 3]), 'an array is not a weakmap');
|
||||
assert.notOk(_.isWeakMap('string'), 'a string is not a weakmap');
|
||||
assert.notOk(_.isWeakMap(2), 'a number is not a weakmap');
|
||||
assert.notOk(_.isWeakMap({}), 'an object is not a weakmap');
|
||||
assert.notOk(_.isWeakMap(false), 'a boolean is not a weakmap');
|
||||
assert.notOk(_.isWeakMap(void 0), 'undefined is not a weakmap');
|
||||
assert.notOk(_.isWeakMap([1, 2, 3]), 'an array is not a weakmap');
|
||||
if (typeof Set === 'function') {
|
||||
assert.ok(!_.isWeakMap(new Set()), 'a set is not a weakmap');
|
||||
assert.notOk(_.isWeakMap(new Set()), 'a set is not a weakmap');
|
||||
}
|
||||
if (typeof WeakSet === 'function') {
|
||||
assert.ok(!_.isWeakMap(new WeakSet()), 'a weakset is not a weakmap');
|
||||
assert.notOk(_.isWeakMap(new WeakSet()), 'a weakset is not a weakmap');
|
||||
}
|
||||
if (typeof Map === 'function') {
|
||||
assert.ok(!_.isWeakMap(new Map()), 'a map is not a weakmap');
|
||||
assert.notOk(_.isWeakMap(new Map()), 'a map is not a weakmap');
|
||||
}
|
||||
if (typeof WeakMap === 'function') {
|
||||
var keyObj = {}, obj = new WeakMap();
|
||||
@@ -729,20 +729,20 @@
|
||||
});
|
||||
|
||||
QUnit.test('isSet', function(assert) {
|
||||
assert.ok(!_.isSet('string'), 'a string is not a set');
|
||||
assert.ok(!_.isSet(2), 'a number is not a set');
|
||||
assert.ok(!_.isSet({}), 'an object is not a set');
|
||||
assert.ok(!_.isSet(false), 'a boolean is not a set');
|
||||
assert.ok(!_.isSet(void 0), 'undefined is not a set');
|
||||
assert.ok(!_.isSet([1, 2, 3]), 'an array is not a set');
|
||||
assert.notOk(_.isSet('string'), 'a string is not a set');
|
||||
assert.notOk(_.isSet(2), 'a number is not a set');
|
||||
assert.notOk(_.isSet({}), 'an object is not a set');
|
||||
assert.notOk(_.isSet(false), 'a boolean is not a set');
|
||||
assert.notOk(_.isSet(void 0), 'undefined is not a set');
|
||||
assert.notOk(_.isSet([1, 2, 3]), 'an array is not a set');
|
||||
if (typeof Map === 'function') {
|
||||
assert.ok(!_.isSet(new Map()), 'a map is not a set');
|
||||
assert.notOk(_.isSet(new Map()), 'a map is not a set');
|
||||
}
|
||||
if (typeof WeakMap === 'function') {
|
||||
assert.ok(!_.isSet(new WeakMap()), 'a weakmap is not a set');
|
||||
assert.notOk(_.isSet(new WeakMap()), 'a weakmap is not a set');
|
||||
}
|
||||
if (typeof WeakSet === 'function') {
|
||||
assert.ok(!_.isSet(new WeakSet()), 'a weakset is not a set');
|
||||
assert.notOk(_.isSet(new WeakSet()), 'a weakset is not a set');
|
||||
}
|
||||
if (typeof Set === 'function') {
|
||||
var obj = new Set();
|
||||
@@ -753,20 +753,20 @@
|
||||
|
||||
QUnit.test('isWeakSet', function(assert) {
|
||||
|
||||
assert.ok(!_.isWeakSet('string'), 'a string is not a weakset');
|
||||
assert.ok(!_.isWeakSet(2), 'a number is not a weakset');
|
||||
assert.ok(!_.isWeakSet({}), 'an object is not a weakset');
|
||||
assert.ok(!_.isWeakSet(false), 'a boolean is not a weakset');
|
||||
assert.ok(!_.isWeakSet(void 0), 'undefined is not a weakset');
|
||||
assert.ok(!_.isWeakSet([1, 2, 3]), 'an array is not a weakset');
|
||||
assert.notOk(_.isWeakSet('string'), 'a string is not a weakset');
|
||||
assert.notOk(_.isWeakSet(2), 'a number is not a weakset');
|
||||
assert.notOk(_.isWeakSet({}), 'an object is not a weakset');
|
||||
assert.notOk(_.isWeakSet(false), 'a boolean is not a weakset');
|
||||
assert.notOk(_.isWeakSet(void 0), 'undefined is not a weakset');
|
||||
assert.notOk(_.isWeakSet([1, 2, 3]), 'an array is not a weakset');
|
||||
if (typeof Map === 'function') {
|
||||
assert.ok(!_.isWeakSet(new Map()), 'a map is not a weakset');
|
||||
assert.notOk(_.isWeakSet(new Map()), 'a map is not a weakset');
|
||||
}
|
||||
if (typeof WeakMap === 'function') {
|
||||
assert.ok(!_.isWeakSet(new WeakMap()), 'a weakmap is not a weakset');
|
||||
assert.notOk(_.isWeakSet(new WeakMap()), 'a weakmap is not a weakset');
|
||||
}
|
||||
if (typeof Set === 'function') {
|
||||
assert.ok(!_.isWeakSet(new Set()), 'a set is not a weakset');
|
||||
assert.notOk(_.isWeakSet(new Set()), 'a set is not a weakset');
|
||||
}
|
||||
if (typeof WeakSet === 'function') {
|
||||
var obj = new WeakSet();
|
||||
@@ -776,19 +776,19 @@
|
||||
});
|
||||
|
||||
QUnit.test('isFunction', function(assert) {
|
||||
assert.ok(!_.isFunction(void 0), 'undefined vars are not functions');
|
||||
assert.ok(!_.isFunction([1, 2, 3]), 'arrays are not functions');
|
||||
assert.ok(!_.isFunction('moe'), 'strings are not functions');
|
||||
assert.notOk(_.isFunction(void 0), 'undefined vars are not functions');
|
||||
assert.notOk(_.isFunction([1, 2, 3]), 'arrays are not functions');
|
||||
assert.notOk(_.isFunction('moe'), 'strings are not functions');
|
||||
assert.ok(_.isFunction(_.isFunction), 'but functions are');
|
||||
assert.ok(_.isFunction(function(){}), 'even anonymous ones');
|
||||
|
||||
if (testElement) {
|
||||
assert.ok(!_.isFunction(testElement), 'elements are not functions');
|
||||
assert.notOk(_.isFunction(testElement), 'elements are not functions');
|
||||
}
|
||||
|
||||
var nodelist = typeof document != 'undefined' && document.childNodes;
|
||||
if (nodelist) {
|
||||
assert.ok(!_.isFunction(nodelist));
|
||||
assert.notOk(_.isFunction(nodelist));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -806,65 +806,68 @@
|
||||
}
|
||||
|
||||
QUnit.test('isDate', function(assert) {
|
||||
assert.ok(!_.isDate(100), 'numbers are not dates');
|
||||
assert.ok(!_.isDate({}), 'objects are not dates');
|
||||
assert.notOk(_.isDate(100), 'numbers are not dates');
|
||||
assert.notOk(_.isDate({}), 'objects are not dates');
|
||||
assert.ok(_.isDate(new Date()), 'but dates are');
|
||||
});
|
||||
|
||||
QUnit.test('isRegExp', function(assert) {
|
||||
assert.ok(!_.isRegExp(_.identity), 'functions are not RegExps');
|
||||
assert.notOk(_.isRegExp(_.identity), 'functions are not RegExps');
|
||||
assert.ok(_.isRegExp(/identity/), 'but RegExps are');
|
||||
});
|
||||
|
||||
QUnit.test('isFinite', function(assert) {
|
||||
assert.ok(!_.isFinite(void 0), 'undefined is not finite');
|
||||
assert.ok(!_.isFinite(null), 'null is not finite');
|
||||
assert.ok(!_.isFinite(NaN), 'NaN is not finite');
|
||||
assert.ok(!_.isFinite(Infinity), 'Infinity is not finite');
|
||||
assert.ok(!_.isFinite(-Infinity), '-Infinity is not finite');
|
||||
assert.notOk(_.isFinite(void 0), 'undefined is not finite');
|
||||
assert.notOk(_.isFinite(null), 'null is not finite');
|
||||
assert.notOk(_.isFinite(NaN), 'NaN is not finite');
|
||||
assert.notOk(_.isFinite(Infinity), 'Infinity is not finite');
|
||||
assert.notOk(_.isFinite(-Infinity), '-Infinity is not finite');
|
||||
assert.ok(_.isFinite('12'), 'Numeric strings are numbers');
|
||||
assert.ok(!_.isFinite('1a'), 'Non numeric strings are not numbers');
|
||||
assert.ok(!_.isFinite(''), 'Empty strings are not numbers');
|
||||
assert.notOk(_.isFinite('1a'), 'Non numeric strings are not numbers');
|
||||
assert.notOk(_.isFinite(''), 'Empty strings are not numbers');
|
||||
var obj = new Number(5);
|
||||
assert.ok(_.isFinite(obj), 'Number instances can be finite');
|
||||
assert.ok(_.isFinite(0), '0 is finite');
|
||||
assert.ok(_.isFinite(123), 'Ints are finite');
|
||||
assert.ok(_.isFinite(-12.44), 'Floats are finite');
|
||||
if (typeof Symbol === 'function') {
|
||||
assert.ok(!_.isFinite(Symbol()), 'symbols are not numbers');
|
||||
assert.ok(!_.isFinite(Symbol('description')), 'described symbols are not numbers');
|
||||
assert.ok(!_.isFinite(Object(Symbol())), 'boxed symbols are not numbers');
|
||||
assert.notOk(_.isFinite(Symbol()), 'symbols are not numbers');
|
||||
assert.notOk(_.isFinite(Symbol('description')), 'described symbols are not numbers');
|
||||
assert.notOk(_.isFinite(Object(Symbol())), 'boxed symbols are not numbers');
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test('isNaN', function(assert) {
|
||||
assert.ok(!_.isNaN(void 0), 'undefined is not NaN');
|
||||
assert.ok(!_.isNaN(null), 'null is not NaN');
|
||||
assert.ok(!_.isNaN(0), '0 is not NaN');
|
||||
assert.ok(!_.isNaN(new Number(0)), 'wrapped 0 is not NaN');
|
||||
assert.notOk(_.isNaN(void 0), 'undefined is not NaN');
|
||||
assert.notOk(_.isNaN(null), 'null is not NaN');
|
||||
assert.notOk(_.isNaN(0), '0 is not NaN');
|
||||
assert.notOk(_.isNaN(new Number(0)), 'wrapped 0 is not NaN');
|
||||
assert.ok(_.isNaN(NaN), 'but NaN is');
|
||||
assert.ok(_.isNaN(new Number(NaN)), 'wrapped NaN is still NaN');
|
||||
if (typeof Symbol !== 'undefined'){
|
||||
assert.notOk(_.isNaN(Symbol()), 'symbol is not NaN');
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test('isNull', function(assert) {
|
||||
assert.ok(!_.isNull(void 0), 'undefined is not null');
|
||||
assert.ok(!_.isNull(NaN), 'NaN is not null');
|
||||
assert.notOk(_.isNull(void 0), 'undefined is not null');
|
||||
assert.notOk(_.isNull(NaN), 'NaN is not null');
|
||||
assert.ok(_.isNull(null), 'but null is');
|
||||
});
|
||||
|
||||
QUnit.test('isUndefined', function(assert) {
|
||||
assert.ok(!_.isUndefined(1), 'numbers are defined');
|
||||
assert.ok(!_.isUndefined(null), 'null is defined');
|
||||
assert.ok(!_.isUndefined(false), 'false is defined');
|
||||
assert.ok(!_.isUndefined(NaN), 'NaN is defined');
|
||||
assert.notOk(_.isUndefined(1), 'numbers are defined');
|
||||
assert.notOk(_.isUndefined(null), 'null is defined');
|
||||
assert.notOk(_.isUndefined(false), 'false is defined');
|
||||
assert.notOk(_.isUndefined(NaN), 'NaN is defined');
|
||||
assert.ok(_.isUndefined(), 'nothing is undefined');
|
||||
assert.ok(_.isUndefined(void 0), 'undefined is undefined');
|
||||
});
|
||||
|
||||
QUnit.test('isError', function(assert) {
|
||||
assert.ok(!_.isError(1), 'numbers are not Errors');
|
||||
assert.ok(!_.isError(null), 'null is not an Error');
|
||||
assert.ok(!_.isError(Error), 'functions are not Errors');
|
||||
assert.notOk(_.isError(1), 'numbers are not Errors');
|
||||
assert.notOk(_.isError(null), 'null is not an Error');
|
||||
assert.notOk(_.isError(Error), 'functions are not Errors');
|
||||
assert.ok(_.isError(new Error()), 'Errors are Errors');
|
||||
assert.ok(_.isError(new EvalError()), 'EvalErrors are Errors');
|
||||
assert.ok(_.isError(new RangeError()), 'RangeErrors are Errors');
|
||||
@@ -893,13 +896,13 @@
|
||||
QUnit.test('has', function(assert) {
|
||||
var obj = {foo: 'bar', func: function(){}};
|
||||
assert.ok(_.has(obj, 'foo'), 'has() checks that the object has a property.');
|
||||
assert.ok(!_.has(obj, 'baz'), "has() returns false if the object doesn't have the property.");
|
||||
assert.notOk(_.has(obj, 'baz'), "has() returns false if the object doesn't have the property.");
|
||||
assert.ok(_.has(obj, 'func'), 'has() works for functions too.');
|
||||
obj.hasOwnProperty = null;
|
||||
assert.ok(_.has(obj, 'foo'), 'has() works even when the hasOwnProperty method is deleted.');
|
||||
var child = {};
|
||||
child.prototype = obj;
|
||||
assert.ok(!_.has(child, 'foo'), 'has() does not check the prototype chain for a property.');
|
||||
assert.notOk(_.has(child, 'foo'), 'has() does not check the prototype chain for a property.');
|
||||
assert.strictEqual(_.has(null, 'foo'), false, 'has() returns false for null');
|
||||
assert.strictEqual(_.has(void 0, 'foo'), false, 'has() returns false for undefined');
|
||||
});
|
||||
@@ -958,8 +961,8 @@
|
||||
assert.equal(_.matcher({})(null), true, 'Empty spec called with null object returns true');
|
||||
assert.equal(_.matcher({a: 1})(null), false, 'Non-empty spec called with null object returns false');
|
||||
|
||||
assert.ok(_.find(stooges, _.matcher({hair: false})) === curly, 'returns a predicate that can be used by finding functions.');
|
||||
assert.ok(_.find(stooges, _.matcher(moe)) === moe, 'can be used to locate an object exists in a collection.');
|
||||
assert.strictEqual(_.find(stooges, _.matcher({hair: false})), curly, 'returns a predicate that can be used by finding functions.');
|
||||
assert.strictEqual(_.find(stooges, _.matcher(moe)), moe, 'can be used to locate an object exists in a collection.');
|
||||
assert.deepEqual(_.filter([null, void 0], _.matcher({a: 1})), [], 'Do not throw on null values.');
|
||||
|
||||
assert.deepEqual(_.filter([null, void 0], _.matcher(null)), [null, void 0], 'null matches null');
|
||||
|
||||
17
vendor/underscore/test/utility.js
vendored
17
vendor/underscore/test/utility.js
vendored
@@ -52,8 +52,8 @@
|
||||
QUnit.test('#750 - Return _ instance.', function(assert) {
|
||||
assert.expect(2);
|
||||
var instance = _([]);
|
||||
assert.ok(_(instance) === instance);
|
||||
assert.ok(new _(instance) === instance);
|
||||
assert.strictEqual(_(instance), instance);
|
||||
assert.strictEqual(new _(instance), instance);
|
||||
});
|
||||
|
||||
QUnit.test('identity', function(assert) {
|
||||
@@ -137,11 +137,12 @@
|
||||
});
|
||||
|
||||
QUnit.test('mixin', function(assert) {
|
||||
_.mixin({
|
||||
var ret = _.mixin({
|
||||
myReverse: function(string) {
|
||||
return string.split('').reverse().join('');
|
||||
}
|
||||
});
|
||||
assert.equal(ret, _, 'returns the _ object to facilitate chaining');
|
||||
assert.equal(_.myReverse('panacea'), 'aecanap', 'mixed in a function to _');
|
||||
assert.equal(_('champ').myReverse(), 'pmahc', 'mixed in a function to the OOP wrapper');
|
||||
});
|
||||
@@ -188,7 +189,7 @@
|
||||
var str = 'some string & another string & yet another';
|
||||
var escaped = _.escape(str);
|
||||
|
||||
assert.ok(escaped.indexOf('&') !== -1, 'handles & aka &');
|
||||
assert.notStrictEqual(escaped.indexOf('&'), -1, 'handles & aka &');
|
||||
assert.equal(_.unescape(str), str, 'can unescape &');
|
||||
});
|
||||
|
||||
@@ -370,9 +371,9 @@
|
||||
});
|
||||
|
||||
QUnit.test('#547 - _.templateSettings is unchanged by custom settings.', function(assert) {
|
||||
assert.ok(!_.templateSettings.variable);
|
||||
assert.notOk(_.templateSettings.variable);
|
||||
_.template('', {}, {variable: 'x'});
|
||||
assert.ok(!_.templateSettings.variable);
|
||||
assert.notOk(_.templateSettings.variable);
|
||||
});
|
||||
|
||||
QUnit.test('#556 - undefined template variables.', function(assert) {
|
||||
@@ -397,11 +398,11 @@
|
||||
assert.expect(2);
|
||||
var count = 0;
|
||||
var template = _.template('<%= f() %>');
|
||||
template({f: function(){ assert.ok(!count++); }});
|
||||
template({f: function(){ assert.notOk(count++); }});
|
||||
|
||||
var countEscaped = 0;
|
||||
var templateEscaped = _.template('<%- f() %>');
|
||||
templateEscaped({f: function(){ assert.ok(!countEscaped++); }});
|
||||
templateEscaped({f: function(){ assert.notOk(countEscaped++); }});
|
||||
});
|
||||
|
||||
QUnit.test('#746 - _.template settings are not modified.', function(assert) {
|
||||
|
||||
24
vendor/underscore/underscore.js
vendored
24
vendor/underscore/underscore.js
vendored
@@ -84,18 +84,23 @@
|
||||
};
|
||||
};
|
||||
|
||||
var builtinIteratee;
|
||||
|
||||
// An internal function to generate callbacks that can be applied to each
|
||||
// element in a collection, returning the desired result — either `identity`,
|
||||
// an arbitrary callback, a property matcher, or a property accessor.
|
||||
var cb = function(value, context, argCount) {
|
||||
if (_.iteratee !== builtinIteratee) return _.iteratee(value, context);
|
||||
if (value == null) return _.identity;
|
||||
if (_.isFunction(value)) return optimizeCb(value, context, argCount);
|
||||
if (_.isObject(value)) return _.matcher(value);
|
||||
return _.property(value);
|
||||
};
|
||||
|
||||
// An external wrapper for the internal callback generator.
|
||||
_.iteratee = function(value, context) {
|
||||
// External wrapper for our callback generator. Users may customize
|
||||
// `_.iteratee` if they want additional predicate/iteratee shorthand styles.
|
||||
// This abstraction hides the internal-only argCount argument.
|
||||
_.iteratee = builtinIteratee = function(value, context) {
|
||||
return cb(value, context, Infinity);
|
||||
};
|
||||
|
||||
@@ -439,7 +444,7 @@
|
||||
// Keep surrogate pair characters together
|
||||
return obj.match(reStrSymbol);
|
||||
}
|
||||
if (isArrayLike(obj)) return _.map(obj);
|
||||
if (isArrayLike(obj)) return _.map(obj, _.identity);
|
||||
return _.values(obj);
|
||||
};
|
||||
|
||||
@@ -462,7 +467,7 @@
|
||||
// values in the array. Aliased as `head` and `take`. The **guard** check
|
||||
// allows it to work with `_.map`.
|
||||
_.first = _.head = _.take = function(array, n, guard) {
|
||||
if (array == null) return void 0;
|
||||
if (array == null || array.length < 1) return void 0;
|
||||
if (n == null || guard) return array[0];
|
||||
return _.initial(array, array.length - n);
|
||||
};
|
||||
@@ -477,7 +482,7 @@
|
||||
// Get the last element of an array. Passing **n** will return the last N
|
||||
// values in the array.
|
||||
_.last = function(array, n, guard) {
|
||||
if (array == null) return void 0;
|
||||
if (array == null || array.length < 1) return void 0;
|
||||
if (n == null || guard) return array[array.length - 1];
|
||||
return _.rest(array, Math.max(0, array.length - n));
|
||||
};
|
||||
@@ -491,7 +496,7 @@
|
||||
|
||||
// Trim out all falsy values from an array.
|
||||
_.compact = function(array) {
|
||||
return _.filter(array);
|
||||
return _.filter(array, Boolean);
|
||||
};
|
||||
|
||||
// Internal implementation of a recursive `flatten` function.
|
||||
@@ -1094,7 +1099,7 @@
|
||||
return result;
|
||||
});
|
||||
|
||||
// Return a copy of the object without the blacklisted properties.
|
||||
// Return a copy of the object without the blacklisted properties.
|
||||
_.omit = restArgs(function(obj, keys) {
|
||||
var iteratee = keys[0], context;
|
||||
if (_.isFunction(iteratee)) {
|
||||
@@ -1403,7 +1408,7 @@
|
||||
return new Date().getTime();
|
||||
};
|
||||
|
||||
// List of HTML entities for escaping.
|
||||
// List of HTML entities for escaping.
|
||||
var escapeMap = {
|
||||
'&': '&',
|
||||
'<': '<',
|
||||
@@ -1568,6 +1573,7 @@
|
||||
return chainResult(this, func.apply(_, args));
|
||||
};
|
||||
});
|
||||
return _;
|
||||
};
|
||||
|
||||
// Add all of the Underscore functions to the wrapper object.
|
||||
@@ -1602,7 +1608,7 @@
|
||||
_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;
|
||||
|
||||
_.prototype.toString = function() {
|
||||
return '' + this._wrapped;
|
||||
return String(this._wrapped);
|
||||
};
|
||||
|
||||
// AMD registration happens at the end for compatibility with AMD loaders
|
||||
|
||||
Reference in New Issue
Block a user