mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-30 06:57:49 +00:00
Compare commits
526 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
dea6ccbf43 | ||
|
|
0c4d8836e7 | ||
|
|
ef67e07732 | ||
|
|
7e885a4ddd | ||
|
|
a3c1f42708 | ||
|
|
d3ef5a3acb | ||
|
|
5098d63a22 | ||
|
|
4275a73170 | ||
|
|
78a157d675 | ||
|
|
97a437e8e6 | ||
|
|
3c37f290a8 | ||
|
|
dcd5d470e0 | ||
|
|
b424f3b60f | ||
|
|
201ea9a9f0 | ||
|
|
2469af6c3f | ||
|
|
bfe6e06b5a | ||
|
|
091b5fbe30 | ||
|
|
93168e6018 | ||
|
|
16ed081818 | ||
|
|
c38b4b29cf | ||
|
|
a20b88d114 | ||
|
|
87912a3b3f | ||
|
|
53bde1238c | ||
|
|
fd365c27e2 | ||
|
|
4f43841699 | ||
|
|
e60e97c03f | ||
|
|
e619f8ca83 | ||
|
|
cf2f538167 | ||
|
|
17e1a6dbe8 | ||
|
|
74f6af8686 | ||
|
|
351236f526 | ||
|
|
51ad056710 | ||
|
|
6512b7f925 | ||
|
|
c7264e3f1f | ||
|
|
349ec35c48 | ||
|
|
057dd5b0a8 | ||
|
|
f6ac7cb1a1 | ||
|
|
c1958daf65 | ||
|
|
ee73c9b436 | ||
|
|
fac5e727e6 | ||
|
|
977264f55b | ||
|
|
e776e679af | ||
|
|
23901dfd45 | ||
|
|
87444e1a45 | ||
|
|
dc63bc2bd9 | ||
|
|
f4ff4f29b1 | ||
|
|
06412d5f12 | ||
|
|
bbc84903a7 | ||
|
|
e014592ea0 | ||
|
|
4305ffde18 | ||
|
|
0588dcb3e9 | ||
|
|
58afd8c364 | ||
|
|
e120d63ee2 | ||
|
|
d7f43eba6a | ||
|
|
786a92669e | ||
|
|
504aead673 | ||
|
|
8c72ffc583 | ||
|
|
27d3311b6a | ||
|
|
5e2f113d50 | ||
|
|
55e7b8764e | ||
|
|
513c0ae64d | ||
|
|
f0f6a1e382 | ||
|
|
6f3fb587e2 | ||
|
|
083c5b703a | ||
|
|
3583c56067 | ||
|
|
9999199d2b | ||
|
|
c084e358bd | ||
|
|
238d45a2cb | ||
|
|
21d056c470 | ||
|
|
0308d4de62 | ||
|
|
f2a6f6ce6a | ||
|
|
cf5d6b5bc8 | ||
|
|
7a6b64b2f6 | ||
|
|
bca11bd21e | ||
|
|
bf39a31907 | ||
|
|
792bfbb604 | ||
|
|
1ef96896d5 | ||
|
|
2293de07a7 | ||
|
|
804ad3d805 | ||
|
|
c797f83ca5 | ||
|
|
a71ac53fa7 | ||
|
|
7165ef6f5e | ||
|
|
c01e0cd7d1 | ||
|
|
a5990a4c4e | ||
|
|
75d196b01b | ||
|
|
69ce7cde7d | ||
|
|
6861734010 | ||
|
|
0f75d967d0 | ||
|
|
012bff97e0 | ||
|
|
2b58525816 | ||
|
|
579cf00d10 | ||
|
|
cfd25cec75 | ||
|
|
c267c4e06b | ||
|
|
c4a78445b3 | ||
|
|
4c8836a24a | ||
|
|
972624297b | ||
|
|
ebf9904e8a | ||
|
|
64652c263f | ||
|
|
58f93567fc | ||
|
|
f599c4817a | ||
|
|
930b034da5 | ||
|
|
c21174f7f9 | ||
|
|
e22be612e2 | ||
|
|
669bc1520e | ||
|
|
b257bb9c9e | ||
|
|
b8096df6d8 | ||
|
|
43d530ead9 | ||
|
|
9dbd665d05 | ||
|
|
3902fd1a67 | ||
|
|
642d248f99 | ||
|
|
8bd9a4d2c3 | ||
|
|
e96ee69f1c | ||
|
|
5bb899a700 | ||
|
|
431e0fa2f6 | ||
|
|
ec92292c38 | ||
|
|
45953b2ac1 | ||
|
|
d9f93d0895 | ||
|
|
252ea445ca | ||
|
|
9826d9bd46 | ||
|
|
b53f178c46 | ||
|
|
5ad5eb8f5d | ||
|
|
7add87739a | ||
|
|
2cd12c38e3 | ||
|
|
ad72b5b565 | ||
|
|
608e74a111 | ||
|
|
c36d0af5cd | ||
|
|
55c3299d5c | ||
|
|
7a3dda6105 | ||
|
|
171d9eab78 | ||
|
|
ab9d2056da | ||
|
|
4310329971 | ||
|
|
d038315f61 | ||
|
|
c0f91c9169 | ||
|
|
519a02ff34 | ||
|
|
643ce1da74 | ||
|
|
4c789197f9 | ||
|
|
277c9bdc7c | ||
|
|
455eace9c5 | ||
|
|
f263a87983 | ||
|
|
4f92fb7007 | ||
|
|
4fd43f7fe7 | ||
|
|
3fe2efa311 | ||
|
|
a7bf3352df | ||
|
|
2ddd893ca2 | ||
|
|
5d92b37550 | ||
|
|
dcec882262 | ||
|
|
de53132692 | ||
|
|
23a7871e2d | ||
|
|
792347978a | ||
|
|
61c740a4eb | ||
|
|
c3a614858b | ||
|
|
75727d073b | ||
|
|
b1d7450052 | ||
|
|
60e557b059 | ||
|
|
071e13363c | ||
|
|
acf4651c0e | ||
|
|
9b15dc2017 | ||
|
|
f4f0791e0c | ||
|
|
654976c826 | ||
|
|
50e86c70bd | ||
|
|
d135b846db | ||
|
|
ee2153364d | ||
|
|
6d76cdc1b7 | ||
|
|
259bdb6151 | ||
|
|
12438fa0d7 | ||
|
|
654df6f7f8 | ||
|
|
0dfe176fe6 | ||
|
|
0f3338013e | ||
|
|
dcc239b070 | ||
|
|
613488eaf8 | ||
|
|
97193b9680 | ||
|
|
71c0861675 | ||
|
|
f3b35919ef | ||
|
|
06316f1d47 | ||
|
|
271f64ee3f | ||
|
|
583b03ba5f | ||
|
|
16e2c06ab4 | ||
|
|
016de80ce7 | ||
|
|
577226bbd0 | ||
|
|
1670800df3 | ||
|
|
9674d67693 | ||
|
|
f65d36b3c1 | ||
|
|
8d93455076 | ||
|
|
cfe5ea264d | ||
|
|
9a4e11f6f7 | ||
|
|
24cef1a919 | ||
|
|
5fe373f7aa | ||
|
|
25eb4df563 | ||
|
|
6d587bdf34 | ||
|
|
03dd9df78e | ||
|
|
96c60bab46 | ||
|
|
811341efa1 | ||
|
|
5f94723d7f | ||
|
|
9d1536799b | ||
|
|
85057d588c | ||
|
|
234e693d92 | ||
|
|
51833b91d0 | ||
|
|
dfb7a4c078 | ||
|
|
04ddaf49f5 | ||
|
|
b7a6560d90 | ||
|
|
7d8531d6ed | ||
|
|
ab77d9d83a | ||
|
|
37454b8f42 | ||
|
|
ef95f165ff | ||
|
|
6494a072d2 | ||
|
|
984bcc556e | ||
|
|
be77e7366c | ||
|
|
01d961bad8 | ||
|
|
6eb0cb1565 | ||
|
|
b2bff1ad45 | ||
|
|
6ed9c005d7 | ||
|
|
6ef8693bf0 | ||
|
|
8c5025f935 | ||
|
|
9735961090 | ||
|
|
8d7058e6ad | ||
|
|
4d89d9a1b7 | ||
|
|
594f414b1a | ||
|
|
b61d30da1a | ||
|
|
412e19006b | ||
|
|
b8ebceadaf | ||
|
|
2b4f271899 | ||
|
|
c83857c42a | ||
|
|
b95d1d6123 | ||
|
|
7d1d7d909a | ||
|
|
c89a80357c | ||
|
|
1bbb24fa0c | ||
|
|
dd0aa991ff | ||
|
|
6f9b1b1822 | ||
|
|
65fd579ed2 | ||
|
|
f3279b7ee1 | ||
|
|
4d185ae7b5 | ||
|
|
81ee5d76b8 | ||
|
|
8bed7137c7 | ||
|
|
f8bcc5b917 | ||
|
|
81f8518d15 | ||
|
|
f88d27ccda | ||
|
|
40ed92d2af | ||
|
|
c7319d004d | ||
|
|
51a3c5d4e8 | ||
|
|
ecfa002a05 | ||
|
|
62962791b3 | ||
|
|
864e14cb20 | ||
|
|
092f90d2fc | ||
|
|
49b33d667d | ||
|
|
63b097329c | ||
|
|
2c3ab276ea | ||
|
|
c30c43d69e | ||
|
|
230c18d5d6 | ||
|
|
c16e64cd36 | ||
|
|
64704e16c1 | ||
|
|
b41103ee6b | ||
|
|
8ac1d54858 | ||
|
|
0a9af2968e | ||
|
|
7eba5a2221 | ||
|
|
19a8b3886e | ||
|
|
03716f62e8 | ||
|
|
d38000bc33 | ||
|
|
a6c88a173b | ||
|
|
0bad210dec | ||
|
|
62cc7574fc | ||
|
|
f5a134bcbd | ||
|
|
a7bb6b5383 | ||
|
|
e02ce1ea8b | ||
|
|
760a00b82f | ||
|
|
e6929e801b | ||
|
|
8682da4962 | ||
|
|
8e6f3e48d0 | ||
|
|
0589dd6909 | ||
|
|
1b8071d2c4 | ||
|
|
4debf155d7 | ||
|
|
f6df126c43 | ||
|
|
c406e33fcc | ||
|
|
9e11ebb62a | ||
|
|
16ed42b188 | ||
|
|
a19890469e | ||
|
|
cc1c1c127e | ||
|
|
3c1e95a3c2 | ||
|
|
d4c0777d2c | ||
|
|
8f00000676 | ||
|
|
4240f737d1 | ||
|
|
25121a86bb | ||
|
|
e4b3cde0a4 | ||
|
|
cf74ebeb71 | ||
|
|
d682357189 | ||
|
|
ddd4c391a1 | ||
|
|
930ee1d650 | ||
|
|
c5344d5336 | ||
|
|
d59c644a10 | ||
|
|
28171945e9 | ||
|
|
ddf9354d26 | ||
|
|
5f58b65c04 | ||
|
|
1ec20c5281 | ||
|
|
3421fab58a | ||
|
|
deeaf27b54 | ||
|
|
429be57b8a | ||
|
|
7f00e8f2f1 | ||
|
|
89f891ac86 | ||
|
|
63147cd145 | ||
|
|
2c5f026d3c | ||
|
|
c10146e2f0 | ||
|
|
548fe881d6 | ||
|
|
b560b7047b | ||
|
|
6f470abdff | ||
|
|
eabe95c4e3 | ||
|
|
fab50ec384 | ||
|
|
0f298de36a | ||
|
|
f8132e3be4 | ||
|
|
dfd865dadc | ||
|
|
98bdd67cf2 | ||
|
|
e842bec025 | ||
|
|
8278d38a8e | ||
|
|
0699d4cf3d | ||
|
|
8865633ccd | ||
|
|
7066b9a5c7 | ||
|
|
63f8b1dcec | ||
|
|
2e790fb865 | ||
|
|
ac62c24c4a | ||
|
|
629de594d5 | ||
|
|
7a69a45ccc | ||
|
|
916431118e | ||
|
|
83e584d579 | ||
|
|
bbd536fc04 | ||
|
|
0b76654b71 | ||
|
|
ff7d79d5fc | ||
|
|
b40b555386 | ||
|
|
efa1ebff16 | ||
|
|
8f0dcde98f | ||
|
|
3b1efb635b | ||
|
|
055fdfa0b4 | ||
|
|
a5a21235dc | ||
|
|
dfbcfdb0ae | ||
|
|
a1e917bac2 | ||
|
|
62a9208944 | ||
|
|
1bf8eb8cac | ||
|
|
893573485c | ||
|
|
d5231ad94b | ||
|
|
a578935621 | ||
|
|
c88c7ff6bb | ||
|
|
21f9cfa6d3 | ||
|
|
45d2fb8a30 | ||
|
|
9c162624fe | ||
|
|
80b5731709 | ||
|
|
bab4ffff62 | ||
|
|
f644c82da4 | ||
|
|
54294f15ef | ||
|
|
dfe77571fb | ||
|
|
f40f66d29b | ||
|
|
af06529283 | ||
|
|
d8da7a2142 | ||
|
|
c1f8e31775 | ||
|
|
cc4b49226b | ||
|
|
f9a2f74716 | ||
|
|
a326a6badf | ||
|
|
e21f4862e1 | ||
|
|
f0c3ac1789 | ||
|
|
e24513e6e2 | ||
|
|
a224b6f1b0 | ||
|
|
26299eb364 | ||
|
|
772c461a33 | ||
|
|
110ca4d1b5 | ||
|
|
aafb05b675 | ||
|
|
ff6fc56a15 | ||
|
|
2dfbe9fe77 | ||
|
|
4a0fe2c17b | ||
|
|
9f7e626b9a | ||
|
|
f2985bda5f | ||
|
|
1517745a6a | ||
|
|
887cb55919 | ||
|
|
5c42d0ef31 | ||
|
|
837d47a309 | ||
|
|
f3766cf889 | ||
|
|
2b8b63e59f | ||
|
|
d64583b743 | ||
|
|
9ec65d5ed5 | ||
|
|
9fe6afcdcc | ||
|
|
6a4e0fb41b | ||
|
|
b570884bb3 | ||
|
|
8f8f8e288c | ||
|
|
8698a5e0e8 | ||
|
|
ad5e30e189 | ||
|
|
19ee0c74f8 | ||
|
|
007e5aa27a | ||
|
|
2509f562b5 | ||
|
|
a58a276ffd | ||
|
|
1a5b9dcce1 | ||
|
|
1240a0dfdd | ||
|
|
0194169e79 | ||
|
|
a71c19e1b5 | ||
|
|
bfbfa719ff | ||
|
|
49389d0a2f | ||
|
|
e380062403 | ||
|
|
b83abfa9c1 | ||
|
|
48dbf203a5 | ||
|
|
23768398c5 | ||
|
|
ab73503859 | ||
|
|
a4f7d4cc2a | ||
|
|
cca5ac60d6 | ||
|
|
9f7f9fc3c5 | ||
|
|
6e2fb92e9a | ||
|
|
4f702e2381 | ||
|
|
b188f903ce | ||
|
|
7b93dc9c32 | ||
|
|
664d66a89e | ||
|
|
d9dc0e6fd1 | ||
|
|
53168e4cfd | ||
|
|
7998632685 | ||
|
|
86f2a1061c | ||
|
|
9ca02a448e | ||
|
|
17091d3a0e | ||
|
|
c94b1488e9 | ||
|
|
7b2274cb44 | ||
|
|
7c27a6f51e | ||
|
|
e91371d406 |
35
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
35
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
@@ -1,19 +1,20 @@
|
||||
# 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://jquery.org/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/).
|
||||
|
||||
## Feature Requests
|
||||
|
||||
Feature requests are always welcome. They should be submitted in the
|
||||
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 has been shown by the community. Before submitting a request,
|
||||
please search for similar ones in the
|
||||
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
|
||||
[closed issues](https://github.com/lodash/lodash/issues?q=is%3Aissue+is%3Aclosed+label%3Aenhancement).
|
||||
|
||||
## Pull Requests
|
||||
@@ -30,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 [Dojo Foundation](http://dojofoundation.org/).
|
||||
As such, we request that all contributors sign the Dojo Foundation
|
||||
[contributor license agreement (CLA)](http://dojofoundation.org/about/claForm).
|
||||
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/).
|
||||
|
||||
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
|
||||
|
||||
@@ -47,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>
|
||||
@@ -61,7 +62,17 @@ established in the code.
|
||||
functions.
|
||||
|
||||
Guidelines are enforced using [JSCS](https://www.npmjs.com/package/jscs):
|
||||
|
||||
```bash
|
||||
$ npm run style
|
||||
```
|
||||
|
||||
## Tips
|
||||
|
||||
You can opt-in to a pre-push git hook by adding an `.opt-in` file to the root of
|
||||
the project containing:
|
||||
```txt
|
||||
pre-push
|
||||
```
|
||||
|
||||
With that, when you `git push`, the pre-push git hook will trigger and execute
|
||||
`npm run validate`.
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,3 +5,5 @@
|
||||
lodash.compat.min.js
|
||||
coverage
|
||||
node_modules
|
||||
.opt-in
|
||||
.opt-out
|
||||
|
||||
1
.jscsrc
1
.jscsrc
@@ -84,6 +84,7 @@
|
||||
"disallowSpacesInsideArrayBrackets": true,
|
||||
"disallowSpacesInsideParentheses": true,
|
||||
"disallowTrailingWhitespace": true,
|
||||
"disallowUnusedVariables": true,
|
||||
|
||||
"jsDoc": {
|
||||
"checkRedundantAccess": true,
|
||||
|
||||
44
.markdown-doctest-setup.js
Normal file
44
.markdown-doctest-setup.js
Normal file
@@ -0,0 +1,44 @@
|
||||
var _ = require('./lodash.js');
|
||||
|
||||
function mockQuery() {
|
||||
return {
|
||||
'on': function(eventName, callback) {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
mockQuery.each = _.each;
|
||||
|
||||
module.exports = {
|
||||
'babel': false,
|
||||
'globals': {
|
||||
'_': _,
|
||||
|
||||
// Example mocks.
|
||||
'asyncSave': _.noop,
|
||||
'addContactToList': _.noop,
|
||||
'batchLog': _.noop,
|
||||
'calculateLayout': _.noop,
|
||||
'createApplication': _.noop,
|
||||
'data': { 'user': 'mock'},
|
||||
'mainText': '',
|
||||
'renewToken': _.noop,
|
||||
'sendMail': _.noop,
|
||||
'updatePosition': _.noop,
|
||||
|
||||
// DOM mocks.
|
||||
'document': { 'body': { 'childNodes': [], 'nodeName': 'BODY' } },
|
||||
'element': {},
|
||||
'EventSource': _.noop,
|
||||
'jQuery': mockQuery,
|
||||
'window': {},
|
||||
|
||||
// Node.js mocks.
|
||||
'Buffer': Buffer,
|
||||
'fs': { 'writeFileSync': _.noop },
|
||||
'path': require('path'),
|
||||
'process': process,
|
||||
'setImmediate': setImmediate
|
||||
}
|
||||
}
|
||||
31
.travis.yml
31
.travis.yml
@@ -1,7 +1,7 @@
|
||||
language: node_js
|
||||
sudo: false
|
||||
node_js:
|
||||
- "5"
|
||||
- "6"
|
||||
env:
|
||||
global:
|
||||
- BIN="node" ISTANBUL=false OPTION=""
|
||||
@@ -20,6 +20,8 @@ matrix:
|
||||
env:
|
||||
- node_js: "4"
|
||||
env:
|
||||
- node_js: "5"
|
||||
env:
|
||||
git:
|
||||
depth: 10
|
||||
branches:
|
||||
@@ -41,9 +43,9 @@ before_install:
|
||||
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]="|\s*if\s*\(ctorString\b[\s\S]+?\}\s*\}|"
|
||||
PATTERN[4]="|\bcase\s+(?:dataView|promise|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[6]="|\s*if\s*\(\!lodashFunc\)\s*\{\s*return;\s*\}|"
|
||||
PATTERN[7]="|\s*define\([\s\S]+?\);|"
|
||||
PATTERN[8]="|\s*root\._\s*=\s*_;|"
|
||||
|
||||
@@ -53,18 +55,25 @@ before_install:
|
||||
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"
|
||||
- "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 && cd ../../"
|
||||
script:
|
||||
|
||||
# Detect code coverage.
|
||||
- "[ $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/index.js)"
|
||||
- "[ $SAUCE_LABS == false ] || $BIN ./node_modules/lodash-cli/bin/lodash core -o ./dist/lodash.core.js"
|
||||
|
||||
# Test in Node.js and PhantomJS.
|
||||
- "[ $ISTANBUL == true ] || node ./node_modules/lodash-cli/bin/lodash -o ./dist/lodash.js"
|
||||
- "[ $ISTANBUL == true ] || (node ./node_modules/lodash-cli/bin/lodash modularize exports=node -o ./ && node ./node_modules/lodash-cli/bin/lodash -d -o ./lodash.js)"
|
||||
- "[ $ISTANBUL == true ] || [ $SAUCE_LABS == true ] || cd ./test"
|
||||
- "[ $ISTANBUL == true ] || [ $SAUCE_LABS == true ] || $BIN $OPTION ./test.js ../lodash.js"
|
||||
- "[ $ISTANBUL == true ] || [ $SAUCE_LABS == true ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || $BIN $OPTION ./test.js ../dist/lodash.min.js"
|
||||
|
||||
# Test in Sauce Labs.
|
||||
- "[ $SAUCE_LABS == false ] || node ./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\""
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
# Contributor Code of Conduct
|
||||
|
||||
As contributors and maintainers of this project, and in the interest of
|
||||
fostering an open and welcoming community, we pledge to respect all people who
|
||||
contribute through reporting issues, posting feature requests, updating
|
||||
documentation, submitting pull requests or patches, and other activities.
|
||||
|
||||
We are committed to making participation in this project a harassment-free
|
||||
experience for everyone, regardless of level of experience, gender, gender
|
||||
identity and expression, sexual orientation, disability, personal appearance,
|
||||
body size, race, ethnicity, age, religion, or nationality.
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery
|
||||
* Personal attacks
|
||||
* Trolling or insulting/derogatory comments
|
||||
* Public or private harassment
|
||||
* Publishing other's private information, such as physical or electronic
|
||||
addresses, without explicit permission
|
||||
* Other unethical or unprofessional conduct
|
||||
|
||||
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.
|
||||
|
||||
By adopting this Code of Conduct, project maintainers commit themselves to
|
||||
fairly and consistently applying these principles to every aspect of managing
|
||||
this project. Project maintainers who do not follow or enforce the Code of
|
||||
Conduct may be permanently removed from the project team.
|
||||
|
||||
This code of conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community.
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting a project maintainer at
|
||||
[coc@lodash.com](mailto:coc@lodash.com). All complaints will be reviewed and
|
||||
investigated and will result in a response that is deemed necessary and
|
||||
appropriate to the circumstances. Maintainers are obligated to maintain
|
||||
confidentiality with regard to the reporter of an incident.
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 1.3.0, available at
|
||||
[http://contributor-covenant.org/version/1/3/0/][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/3/0/
|
||||
60
LICENSE
60
LICENSE
@@ -1,23 +1,47 @@
|
||||
The MIT License (MIT)
|
||||
Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
||||
|
||||
Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
|
||||
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
|
||||
Based on Underscore.js, copyright Jeremy Ashkenas,
|
||||
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
This software consists of voluntary contributions made by many
|
||||
individuals. For exact contribution history, see the revision history
|
||||
available at https://github.com/lodash/lodash
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
The following license applies to all parts of this software except as
|
||||
documented below:
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
====
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
====
|
||||
|
||||
Copyright and related rights for sample code are waived via CC0. Sample
|
||||
code is defined as all source code displayed within the prose of the
|
||||
documentation.
|
||||
|
||||
CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
====
|
||||
|
||||
Files located in the node_modules and vendor directories are externally
|
||||
maintained libraries used by this software which have their own
|
||||
licenses; we recommend you read them, as their terms may differ from the
|
||||
terms above.
|
||||
|
||||
53
README.md
53
README.md
@@ -1,6 +1,15 @@
|
||||
# lodash v4.4.0
|
||||
# lodash v4.12.0
|
||||
|
||||
The [lodash](https://lodash.com/) library exported as a [UMD](https://github.com/umdjs/umd) module.
|
||||
[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/4.12.0/.github/CONTRIBUTING.md) |
|
||||
[Wiki](https://github.com/lodash/lodash/wiki "Changelog, Roadmap, etc.") |
|
||||
[Code of Conduct](https://jquery.org/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
|
||||
@@ -9,6 +18,15 @@ $ lodash -o ./dist/lodash.js
|
||||
$ lodash core -o ./dist/lodash.core.js
|
||||
```
|
||||
|
||||
## Download
|
||||
|
||||
Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.12.0/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.12.0/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.12.0/dist/lodash.core.min.js))
|
||||
* [Full build](https://raw.githubusercontent.com/lodash/lodash/4.12.0/dist/lodash.js) ([~22 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.12.0/dist/lodash.min.js))
|
||||
* [CDN copies](https://www.jsdelivr.com/projects/lodash)
|
||||
|
||||
## Why Lodash?
|
||||
|
||||
Lodash makes JavaScript easier by taking the hassle out of working with arrays,<br>
|
||||
@@ -18,38 +36,11 @@ numbers, objects, strings, etc. Lodash’s modular methods are great for:
|
||||
* Manipulating & testing values
|
||||
* Creating composite functions
|
||||
|
||||
## Community
|
||||
|
||||
[](https://gitter.im/lodash/lodash)
|
||||
|
||||
## Documentation
|
||||
|
||||
* [API Documentation](https://lodash.com/docs)
|
||||
* [DevDocs – *a searchable interface for our documentation*](https://devdocs.io/lodash/)
|
||||
* [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.4.0/LICENSE) & supports [modern environments](#support).<br>
|
||||
Review the [build differences](https://github.com/lodash/lodash/wiki/build-differences) & pick the one that’s right for you.
|
||||
|
||||
* [Core build](https://raw.githubusercontent.com/lodash/lodash/4.4.0/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.4.0/dist/lodash.core.min.js))
|
||||
* [Full build](https://raw.githubusercontent.com/lodash/lodash/4.4.0/dist/lodash.js) ([~20 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.4.0/dist/lodash.min.js))
|
||||
|
||||
## Module Formats
|
||||
|
||||
Lodash is available in a variety of other builds & 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-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.4.0-npm/fp)
|
||||
|
||||
CDN copies are available on [cdnjs](https://cdnjs.com/) & [jsDelivr](http://www.jsdelivr.com/).<br>
|
||||
Create [custom builds](https://lodash.com/custom-builds) with only the features you need.
|
||||
|
||||
## Further Reading
|
||||
|
||||
* [Contributing](https://github.com/lodash/lodash/blob/master/CONTRIBUTING.md)
|
||||
* [Release Notes](https://github.com/lodash/lodash/releases/tag/4.0.0)
|
||||
* [Wiki (Changelog, Roadmap, etc.)](https://github.com/lodash/lodash/wiki)
|
||||
* [lodash/fp](https://github.com/lodash/lodash/tree/4.12.0-npm/fp)
|
||||
|
||||
1117
dist/lodash.core.js
vendored
1117
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,29 +1,28 @@
|
||||
/**
|
||||
* @license
|
||||
* lodash 4.4.0 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
||||
* Build: `lodash core -o ./dist/lodash.core.js`
|
||||
* lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
||||
*/
|
||||
;(function(){function n(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return 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===ln?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 O(t,function(t){return n[t]})}function o(n){return n&&n.Object===Object?n:null}function i(n){return yn[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"||vn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function a(n){if(Z(n)&&!Un(n)){if(n instanceof l)return n;if(An.call(n,"__wrapped__")){var t=new l(n.__wrapped__,n.__chain__);return t.__actions__=N(n.__actions__),t}}return new l(n)}function l(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function p(n,t,r,e){return n===ln||H(n,En[r])&&!An.call(e,r)?t:n;
|
||||
}function s(n){return Y(n)?Rn(n):{}}function h(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(ln,r)},t)}function v(n,t){var r=true;return qn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function y(n,t){var r=[];return qn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function _(t,r,e,u){u||(u=[]);for(var o=-1,i=t.length;++o<i;){var c=t[o];r>0&&Z(c)&&Q(c)&&(e||Un(c)||L(c))?r>1?_(c,r-1,e,u):n(u,c):e||(u[u.length]=c)}return u}function g(n,t){return n&&zn(n,t,un);
|
||||
}function b(n,t){return y(t,function(t){return W(n[t])})}function j(n,t,r,e,u){return n===t?true:null==n||null==t||!Y(n)&&!Z(t)?n!==n&&t!==t:m(n,t,j,r,e,u)}function m(n,t,r,e,u,o){var i=Un(n),f=Un(t),a="[object Array]",l="[object Array]";i||(a=Nn.call(n),"[object Arguments]"==a&&(a="[object Object]")),f||(l=Nn.call(t),"[object Arguments]"==l&&(l="[object Object]"));var p="[object Object]"==a&&!c(n),f="[object Object]"==l&&!c(t);return!(l=a==l)||i||p?2&u||(a=p&&An.call(n,"__wrapped__"),f=f&&An.call(t,"__wrapped__"),
|
||||
!a&&!f)?l?(o||(o=[]),(a=J(o,function(t){return t[0]===n}))&&a[1]?a[1]==t:(o.push([n,t]),t=(i?I:q)(n,t,r,e,u,o),o.pop(),t)):false:r(a?n.value():n,f?t.value():t,e,u,o):$(n,t,a)}function d(n){var t=typeof n;return"function"==t?n:null==n?fn:("object"==t?x:A)(n)}function w(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function O(n,t){var r=-1,e=Q(n)?Array(n.length):[];return qn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function x(n){var t=un(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],ln,3)))return false}return true}}function E(n,t){return n=Object(n),P(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function A(n){return function(t){return null==t?ln: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 qn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function T(t,r){
|
||||
return P(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];(!H(a,c)||H(a,En[i])&&!An.call(f,i)||c===ln&&!(i in f))&&(f[i]=c)}return r}function R(n){return V(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:ln,o=typeof o=="function"?(u--,o):ln;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 Y(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!==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=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!==ln){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=un(n),f=c.length,a=un(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:An.call(t,p)))return false}for(a=true;++l<f;){
|
||||
var p=c[l],s=n[p],h=t[p];if(void 0!==ln||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:ln;if(X(t)&&(Un(n)||tn(n)||L(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){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||En);
|
||||
}function G(n){return n?n[0]:ln}function J(n,t){return r(n,d(t),qn)}function M(n,t){return qn(n,typeof t=="function"?t:fn)}function P(n,t,r){return e(n,d(t),r,3>arguments.length,qn)}function U(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Vn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=ln),r}}function V(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");return t=$n(t===ln?n.length-1:Vn(t),0),function(){for(var r=arguments,e=-1,u=$n(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 H(n,t){return n===t||n!==n&&t!==t}function K(n,t){return n>t}function L(n){return Z(n)&&Q(n)&&An.call(n,"callee")&&(!Bn.call(n,"callee")||"[object Arguments]"==Nn.call(n))}function Q(n){return null!=n&&!(typeof n=="function"&&W(n))&&X(Cn(n))}function W(n){return n=Y(n)?Nn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function X(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function Y(n){
|
||||
var t=typeof n;return!!n&&("object"==t||"function"==t)}function Z(n){return!!n&&typeof n=="object"}function nn(n){return typeof n=="number"||Z(n)&&"[object Number]"==Nn.call(n)}function tn(n){return typeof n=="string"||!Un(n)&&Z(n)&&"[object String]"==Nn.call(n)}function rn(n,t){return t>n}function en(n){return typeof n=="string"?n:null==n?"":n+""}function un(n){var t=C(n);if(!t&&!Q(n))return In(Object(n));var r,e=z(n),u=!!e,e=e||[],o=e.length;for(r in n)!An.call(n,r)||u&&("length"==r||f(r,o))||t&&"constructor"==r||e.push(r);
|
||||
return e}function on(n){for(var t=-1,r=C(n),e=w(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||!An.call(n,a))||o.push(a)}return o}function cn(n){return n?u(n,un(n)):[]}function fn(n){return n}function an(t,r,e){var u=un(r),o=b(r,u);null!=e||Y(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=b(r,un(r)));var i=Y(e)&&"chain"in e?e.chain:true,c=W(t);return qn(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 ln,pn=1/0,sn=/[&<>"'`]/g,hn=RegExp(sn.source),vn=/^(?:0|[1-9]\d*)$/,yn={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},_n={"function":true,object:true},gn=_n[typeof exports]&&exports&&!exports.nodeType?exports:ln,bn=_n[typeof module]&&module&&!module.nodeType?module:ln,jn=bn&&bn.exports===gn?gn:ln,mn=o(_n[typeof self]&&self),dn=o(_n[typeof window]&&window),wn=o(_n[typeof this]&&this),On=o(gn&&bn&&typeof global=="object"&&global)||dn!==(wn&&wn.window)&&dn||mn||wn||Function("return this")(),xn=Array.prototype,En=Object.prototype,An=En.hasOwnProperty,kn=0,Nn=En.toString,Sn=On._,Tn=On.Reflect,Fn=Tn?Tn.f:ln,Rn=Object.create,Bn=En.propertyIsEnumerable,Dn=On.isFinite,In=Object.keys,$n=Math.max,qn=function(n,t){
|
||||
return function(r,e){if(null==r)return r;if(!Q(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}}(g),zn=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}}();Fn&&!Bn.call({valueOf:1},"valueOf")&&(w=function(n){n=Fn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r});var Cn=A("length"),Gn=V(function(t,r){return Un(t)||(t=null==t?[]:[Object(t)]),_(r,1),
|
||||
n(N(t),cn)}),Jn=V(function(n,t,r){return D(n,t,r)}),Mn=V(function(n,t){return h(n,1,t)}),Pn=V(function(n,t,r){return h(n,Hn(t)||0,r)}),Un=Array.isArray,Vn=Number,Hn=Number,Kn=R(function(n,t){F(t,un(t),n)}),Ln=R(function(n,t){F(t,on(t),n)}),Qn=R(function(n,t,r,e){F(t,on(t),n,e)}),Wn=V(function(n){return n.push(ln,p),Qn.apply(ln,n)}),Xn=V(function(n,t){return null==n?{}:E(n,_(t,1))}),Yn=d;l.prototype=s(a.prototype),l.prototype.constructor=l,a.assignIn=Ln,a.before=U,a.bind=Jn,a.chain=function(n){return n=a(n),
|
||||
n.__chain__=true,n},a.compact=function(n){return y(n,Boolean)},a.concat=Gn,a.create=function(n,t){var r=s(n);return t?Kn(r,t):r},a.defaults=Wn,a.defer=Mn,a.delay=Pn,a.filter=function(n,t){return y(n,d(t))},a.flatten=function(n){return n&&n.length?_(n,1):[]},a.flattenDeep=function(n){return n&&n.length?_(n,pn):[]},a.iteratee=Yn,a.keys=un,a.map=function(n,t){return O(n,d(t))},a.matches=function(n){return x(Kn({},n))},a.mixin=an,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 U(2,n)},a.pick=Xn,a.slice=function(n,t,r){var e=n?n.length:0;return r=r===ln?e:+r,e?k(n,null==t?0:+t,r):[]},a.sortBy=function(n,t){var r=0;return t=d(t),O(O(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===ln,i=r===r,c=null===e,f=e===ln,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;
|
||||
}),A("c"))},a.tap=function(n,t){return t(n),n},a.thru=function(n,t){return t(n)},a.toArray=function(n){return Q(n)?n.length?N(n):[]:cn(n)},a.values=cn,a.extend=Ln,an(a,a),a.clone=function(n){return Y(n)?Un(n)?N(n):F(n,un(n)):n},a.escape=function(n){return(n=en(n))&&hn.test(n)?n.replace(sn,i):n},a.every=function(n,t,r){return t=r?ln:t,v(n,d(t))},a.find=J,a.forEach=M,a.has=function(n,t){return null!=n&&An.call(n,t)},a.head=G,a.identity=fn,a.indexOf=function(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?$n(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=L,a.isArray=Un,a.isBoolean=function(n){return true===n||false===n||Z(n)&&"[object Boolean]"==Nn.call(n)},a.isDate=function(n){return Z(n)&&"[object Date]"==Nn.call(n)},a.isEmpty=function(n){if(Q(n)&&(Un(n)||tn(n)||W(n.splice)||L(n)))return!n.length;for(var t in n)if(An.call(n,t))return false;return true},a.isEqual=function(n,t){return j(n,t)},a.isFinite=function(n){return typeof n=="number"&&Dn(n)},a.isFunction=W,a.isNaN=function(n){
|
||||
return nn(n)&&n!=+n},a.isNull=function(n){return null===n},a.isNumber=nn,a.isObject=Y,a.isRegExp=function(n){return Y(n)&&"[object RegExp]"==Nn.call(n)},a.isString=tn,a.isUndefined=function(n){return n===ln},a.last=function(n){var t=n?n.length:0;return t?n[t-1]:ln},a.max=function(n){return n&&n.length?t(n,fn,K):ln},a.min=function(n){return n&&n.length?t(n,fn,rn):ln},a.noConflict=function(){return On._===this&&(On._=Sn),this},a.noop=function(){},a.reduce=P,a.result=function(n,t,r){return t=null==n?ln:n[t],
|
||||
t===ln&&(t=r),W(t)?t.call(n):t},a.size=function(n){return null==n?0:(n=Q(n)?n:un(n),n.length)},a.some=function(n,t,r){return t=r?ln:t,S(n,d(t))},a.uniqueId=function(n){var t=++kn;return en(n)+t},a.each=M,a.first=G,an(a,function(){var n={};return g(a,function(t,r){An.call(a.prototype,r)||(n[r]=t)}),n}(),{chain:false}),a.VERSION="4.4.0",qn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:xn)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);
|
||||
a.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),a.prototype.toJSON=a.prototype.valueOf=a.prototype.value=function(){return T(this.__wrapped__,this.__actions__)},(dn||mn||{})._=a,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return a}):gn&&bn?(jn&&((bn.exports=a)._=a),gn._=a):On._=a}).call(this);
|
||||
;(function(){function n(n,t){return n.push.apply(n,t),n}function t(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function r(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function e(n,t){return O(t,function(t){return n[t]})}function u(n){return n&&n.Object===Object?n:null}function o(n){return gn[n]}function i(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function c(n){return n instanceof f?n:new f(n)}function f(n,t){
|
||||
this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function a(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 l(n){return nn(n)?Bn(n):{}}function p(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(pn,r)},t)}function s(n,t){var r=true;return zn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function h(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 v(n,t){var r=[];return zn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function y(t,r,e,u,o){var i=-1,c=t.length;for(e||(e=G),o||(o=[]);++i<c;){var f=t[i];r>0&&e(f)?r>1?y(f,r-1,e,u,o):n(o,f):u||(o[o.length]=f)}return o}function g(n,t){return n&&Cn(n,t,on)}function b(n,t){return v(t,function(t){return Y(n[t])})}function _(n,t){return n>t}function d(n,t,r,e,u){return n===t?true:null==n||null==t||!nn(n)&&!tn(t)?n!==n&&t!==t:j(n,t,d,r,e,u)}function j(n,t,r,e,u,o){var c=Vn(n),f=Vn(t),a="[object Array]",l="[object Array]";
|
||||
c||(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&&!i(n),f="[object Object]"==l&&!i(t),l=a==l;o||(o=[]);var s=V(o,function(t){return t[0]===n});return s&&s[1]?s[1]==t:(o.push([n,t]),l&&!p?(r=c||isTypedArray(n)?$(n,t,r,e,u,o):q(n,t,a),o.pop(),r):2&u||(c=p&&kn.call(n,"__wrapped__"),a=f&&kn.call(t,"__wrapped__"),!c&&!a)?l?(r=z(n,t,r,e,u,o),o.pop(),r):false:(c=c?n.value():n,t=a?t.value():t,r=r(c,t,e,u,o),
|
||||
o.pop(),r))}function m(n){return typeof n=="function"?n:null==n?an:(typeof n=="object"?A:k)(n)}function w(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function x(n,t){return t>n}function O(n,t){var r=-1,e=X(n)?Array(n.length):[];return zn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function A(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&&d(n[u],r[u],pn,3)))return false}return true}}function E(n,t){return n=Object(n),K(t,function(t,r){
|
||||
return r in n&&(t[r]=n[r]),t},{})}function k(n){return function(t){return null==t?pn:t[n]}}function N(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 S(n){return N(n,0,n.length)}function T(n,t){var r;return zn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function F(t,r){return K(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args))},t)}function R(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 B(n){return Q(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:pn,o=n.length>3&&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 D(n){return function(){var t=arguments,r=l(n.prototype),t=n.apply(r,t);return nn(t)?t:r}}function I(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=D(n);return e}function $(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?[]:pn;++c<i;){var l=n[c],p=t[c];if(void 0!==pn){f=false;break}if(a){if(!T(t,function(n,t){return U(a,t)||l!==n&&!r(l,n,e,u,o)?void 0:a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function q(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 z(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 C(n){var t=n?n.length:pn;if(Z(t)&&(Vn(n)||en(n)||W(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function G(n){return Vn(n)||W(n)}function J(n,t){return t=null==t?9007199254740991:t,!!t&&(typeof n=="number"||yn.test(n))&&n>-1&&0==n%1&&t>n}function M(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||En);
|
||||
}function P(n){return n&&n.length?n[0]:pn}function U(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}function V(n,r){return t(n,m(r),zn)}function H(n,t){return zn(n,m(t))}function K(n,t,e){return r(n,m(t),e,3>arguments.length,zn)}function L(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 Q(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 W(n){return tn(n)&&X(n)&&kn.call(n,"callee")&&(!Dn.call(n,"callee")||"[object Arguments]"==Sn.call(n))}function X(n){return null!=n&&Z(Gn(n))&&!Y(n)}function Y(n){return n=nn(n)?Sn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n;
|
||||
}function Z(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function nn(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function tn(n){return!!n&&typeof n=="object"}function rn(n){return typeof n=="number"||tn(n)&&"[object Number]"==Sn.call(n)}function en(n){return typeof n=="string"||!Vn(n)&&tn(n)&&"[object String]"==Sn.call(n)}function un(n){return typeof n=="string"?n:null==n?"":n+""}function on(n){var t=M(n);if(!t&&!X(n))return $n(Object(n));var r,e=C(n),u=!!e,e=e||[],o=e.length;
|
||||
for(r in n)!kn.call(n,r)||u&&("length"==r||J(r,o))||t&&"constructor"==r||e.push(r);return e}function cn(n){for(var t=-1,r=M(n),e=w(n),u=e.length,o=C(n),i=!!o,o=o||[],c=o.length;++t<u;){var f=e[t];i&&("length"==f||J(f,c))||"constructor"==f&&(r||!kn.call(n,f))||o.push(f)}return o}function fn(n){return n?e(n,on(n)):[]}function an(n){return n}function ln(t,r,e){var u=on(r),o=b(r,u);null!=e||nn(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=b(r,on(r)));var i=!(nn(e)&&"chain"in e&&!e.chain),c=Y(t);return zn(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__=S(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,dn=bn[typeof module]&&module&&!module.nodeType?module:pn,jn=dn&&dn.exports===_n?_n:pn,mn=u(bn[typeof self]&&self),wn=u(bn[typeof window]&&window),xn=u(bn[typeof this]&&this),On=u(_n&&dn&&typeof global=="object"&&global)||wn!==(xn&&xn.window)&&wn||mn||xn||Function("return this")(),An=Array.prototype,En=Object.prototype,kn=En.hasOwnProperty,Nn=0,Sn=En.toString,Tn=On._,Fn=On.Reflect,Rn=Fn?Fn.a:pn,Bn=Object.create,Dn=En.propertyIsEnumerable,In=On.isFinite,$n=Object.keys,qn=Math.max;
|
||||
f.prototype=l(c.prototype),f.prototype.constructor=f;var zn=function(n,t){return function(r,e){if(null==r)return r;if(!X(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}}(g),Cn=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")&&(w=function(n){n=Rn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r});var Gn=k("length"),Jn=String,Mn=Q(function(n,t,r){
|
||||
return I(n,t,r)}),Pn=Q(function(n,t){return p(n,1,t)}),Un=Q(function(n,t,r){return p(n,Kn(t)||0,r)}),Vn=Array.isArray,Hn=Number,Kn=Number,Ln=B(function(n,t){R(t,on(t),n)}),Qn=B(function(n,t){R(t,cn(t),n)}),Wn=B(function(n,t,r,e){R(t,cn(t),n,e)}),Xn=Q(function(n){return n.push(pn,a),Wn.apply(pn,n)}),Yn=Q(function(n,t){return null==n?{}:E(n,O(y(t,1),Jn))}),Zn=m;c.assignIn=Qn,c.before=L,c.bind=Mn,c.chain=function(n){return n=c(n),n.__chain__=true,n},c.compact=function(n){return v(n,Boolean)},c.concat=function(){
|
||||
for(var t=arguments.length,r=Array(t?t-1:0),e=arguments[0],u=t;u--;)r[u-1]=arguments[u];return t?n(Vn(e)?S(e):[e],y(r,1)):[]},c.create=function(n,t){var r=l(n);return t?Ln(r,t):r},c.defaults=Xn,c.defer=Pn,c.delay=Un,c.filter=function(n,t){return v(n,m(t))},c.flatten=function(n){return n&&n.length?y(n,1):[]},c.flattenDeep=function(n){return n&&n.length?y(n,sn):[]},c.iteratee=Zn,c.keys=on,c.map=function(n,t){return O(n,m(t))},c.matches=function(n){return A(Ln({},n))},c.mixin=ln,c.negate=function(n){
|
||||
if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},c.once=function(n){return L(2,n)},c.pick=Yn,c.slice=function(n,t,r){var e=n?n.length:0;return r=r===pn?e:+r,e?N(n,null==t?0:+t,r):[]},c.sortBy=function(n,t){var r=0;return t=m(t),O(O(n,function(n,e,u){return{value:n,index:r++,criteria:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==pn,o=null===r,i=r===r,c=e!==pn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){
|
||||
r=1;break n}if(!o&&e>r||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),k("value"))},c.tap=function(n,t){return t(n),n},c.thru=function(n,t){return t(n)},c.toArray=function(n){return X(n)?n.length?S(n):[]:fn(n)},c.values=fn,c.extend=Qn,ln(c,c),c.clone=function(n){return nn(n)?Vn(n)?S(n):R(n,on(n)):n},c.escape=function(n){return(n=un(n))&&vn.test(n)?n.replace(hn,o):n},c.every=function(n,t,r){return t=r?pn:t,s(n,m(t))},c.find=V,c.forEach=H,c.has=function(n,t){return null!=n&&kn.call(n,t);
|
||||
},c.head=P,c.identity=an,c.indexOf=U,c.isArguments=W,c.isArray=Vn,c.isBoolean=function(n){return true===n||false===n||tn(n)&&"[object Boolean]"==Sn.call(n)},c.isDate=function(n){return tn(n)&&"[object Date]"==Sn.call(n)},c.isEmpty=function(n){return X(n)&&(Vn(n)||en(n)||Y(n.splice)||W(n))?!n.length:!on(n).length},c.isEqual=function(n,t){return d(n,t)},c.isFinite=function(n){return typeof n=="number"&&In(n)},c.isFunction=Y,c.isNaN=function(n){return rn(n)&&n!=+n},c.isNull=function(n){return null===n},c.isNumber=rn,
|
||||
c.isObject=nn,c.isRegExp=function(n){return nn(n)&&"[object RegExp]"==Sn.call(n)},c.isString=en,c.isUndefined=function(n){return n===pn},c.last=function(n){var t=n?n.length:0;return t?n[t-1]:pn},c.max=function(n){return n&&n.length?h(n,an,_):pn},c.min=function(n){return n&&n.length?h(n,an,x):pn},c.noConflict=function(){return On._===this&&(On._=Tn),this},c.noop=function(){},c.reduce=K,c.result=function(n,t,r){return t=null==n?pn:n[t],t===pn&&(t=r),Y(t)?t.call(n):t},c.size=function(n){return null==n?0:(n=X(n)?n:on(n),
|
||||
n.length)},c.some=function(n,t,r){return t=r?pn:t,T(n,m(t))},c.uniqueId=function(n){var t=++Nn;return un(n)+t},c.each=H,c.first=P,ln(c,function(){var n={};return g(c,function(t,r){kn.call(c.prototype,r)||(n[r]=t)}),n}(),{chain:false}),c.VERSION="4.12.0",zn("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);c.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)})}}),c.prototype.toJSON=c.prototype.valueOf=c.prototype.value=function(){return F(this.__wrapped__,this.__actions__)},(wn||mn||{})._=c,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return c}):_n&&dn?(jn&&((dn.exports=c)._=c),_n._=c):On._=c}).call(this);
|
||||
558
dist/lodash.fp.js
vendored
558
dist/lodash.fp.js
vendored
@@ -57,9 +57,10 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
var baseConvert = __webpack_require__(1);
|
||||
|
||||
/**
|
||||
* Converts `lodash` to an immutable auto-curried iteratee-first data-last version.
|
||||
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
|
||||
* version with conversion `options` applied.
|
||||
*
|
||||
* @param {Function} lodash The lodash function.
|
||||
* @param {Function} lodash The lodash function to convert.
|
||||
* @param {Object} [options] The options object. See `baseConvert` for more details.
|
||||
* @returns {Function} Returns the converted `lodash`.
|
||||
*/
|
||||
@@ -79,15 +80,100 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
var mapping = __webpack_require__(2),
|
||||
mutateMap = mapping.mutate,
|
||||
placeholder = {};
|
||||
fallbackHolder = __webpack_require__(3);
|
||||
|
||||
/**
|
||||
* Creates a function, with an arity of `n`, that invokes `func` with the
|
||||
* arguments it receives.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {number} n The arity of the new function.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function baseArity(func, n) {
|
||||
return n == 2
|
||||
? function(a, b) { return func.apply(undefined, arguments); }
|
||||
: function(a) { return func.apply(undefined, arguments); };
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that invokes `func`, with up to `n` arguments, ignoring
|
||||
* any additional arguments.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to cap arguments for.
|
||||
* @param {number} n The arity cap.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function baseAry(func, n) {
|
||||
return n == 2
|
||||
? function(a, b) { return func(a, b); }
|
||||
: function(a) { return func(a); };
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a clone of `array`.
|
||||
*
|
||||
* @private
|
||||
* @param {Array} array The array to clone.
|
||||
* @returns {Array} Returns the cloned array.
|
||||
*/
|
||||
function cloneArray(array) {
|
||||
var length = array ? array.length : 0,
|
||||
result = Array(length);
|
||||
|
||||
while (length--) {
|
||||
result[length] = array[length];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that clones a given object using the assignment `func`.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The assignment function.
|
||||
* @returns {Function} Returns the new cloner function.
|
||||
*/
|
||||
function createCloner(func) {
|
||||
return function(object) {
|
||||
return func({}, object);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that wraps `func` and uses `cloner` to clone the first
|
||||
* argument it receives.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {Function} cloner The function to clone arguments.
|
||||
* @returns {Function} Returns the new immutable function.
|
||||
*/
|
||||
function immutWrap(func, cloner) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return result;
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
args[length] = arguments[length];
|
||||
}
|
||||
var result = args[0] = cloner.apply(undefined, args);
|
||||
func.apply(undefined, args);
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* The base implementation of `convert` which accepts a `util` object of methods
|
||||
* required to perform conversions.
|
||||
*
|
||||
* @param {Object} util The util object.
|
||||
* @param {string} name The name of the function to wrap.
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {string} name The name of the function to convert.
|
||||
* @param {Function} func The function to convert.
|
||||
* @param {Object} [options] The options object.
|
||||
* @param {boolean} [options.cap=true] Specify capping iteratee arguments.
|
||||
* @param {boolean} [options.curry=true] Specify currying.
|
||||
@@ -119,11 +205,16 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'rearg': 'rearg' in options ? options.rearg : true
|
||||
};
|
||||
|
||||
var forceRearg = ('rearg' in options) && options.rearg;
|
||||
var forceCurry = ('curry' in options) && options.curry,
|
||||
forceFixed = ('fixed' in options) && options.fixed,
|
||||
forceRearg = ('rearg' in options) && options.rearg,
|
||||
placeholder = isLib ? func : fallbackHolder,
|
||||
pristine = isLib ? func.runInContext() : undefined;
|
||||
|
||||
var helpers = isLib ? func : {
|
||||
'ary': util.ary,
|
||||
'cloneDeep': util.cloneDeep,
|
||||
'assign': util.assign,
|
||||
'clone': util.clone,
|
||||
'curry': util.curry,
|
||||
'forEach': util.forEach,
|
||||
'isArray': util.isArray,
|
||||
@@ -131,87 +222,24 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'iteratee': util.iteratee,
|
||||
'keys': util.keys,
|
||||
'rearg': util.rearg,
|
||||
'spread': util.spread
|
||||
'spread': util.spread,
|
||||
'toPath': util.toPath
|
||||
};
|
||||
|
||||
var ary = helpers.ary,
|
||||
cloneDeep = helpers.cloneDeep,
|
||||
assign = helpers.assign,
|
||||
clone = helpers.clone,
|
||||
curry = helpers.curry,
|
||||
each = helpers.forEach,
|
||||
isArray = helpers.isArray,
|
||||
isFunction = helpers.isFunction,
|
||||
keys = helpers.keys,
|
||||
rearg = helpers.rearg,
|
||||
spread = helpers.spread;
|
||||
spread = helpers.spread,
|
||||
toPath = helpers.toPath;
|
||||
|
||||
var aryMethodKeys = keys(mapping.aryMethod);
|
||||
|
||||
var baseArity = function(func, n) {
|
||||
return n == 2
|
||||
? function(a, b) { return func.apply(undefined, arguments); }
|
||||
: function(a) { return func.apply(undefined, arguments); };
|
||||
};
|
||||
|
||||
var baseAry = function(func, n) {
|
||||
return n == 2
|
||||
? function(a, b) { return func(a, b); }
|
||||
: function(a) { return func(a); };
|
||||
};
|
||||
|
||||
var cloneArray = function(array) {
|
||||
var length = array ? array.length : 0,
|
||||
result = Array(length);
|
||||
|
||||
while (length--) {
|
||||
result[length] = array[length];
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
var createCloner = function(func) {
|
||||
return function(object) {
|
||||
return func({}, object);
|
||||
};
|
||||
};
|
||||
|
||||
var immutWrap = function(func, cloner) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return result;
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
args[length] = arguments[length];
|
||||
}
|
||||
var result = args[0] = cloner(args[0]);
|
||||
func.apply(undefined, args);
|
||||
return result;
|
||||
};
|
||||
};
|
||||
|
||||
var iterateeAry = function(func, n) {
|
||||
return overArg(func, function(func) {
|
||||
return baseAry(func, n);
|
||||
});
|
||||
};
|
||||
|
||||
var overArg = function(func, iteratee, retArg) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return func();
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
args[length] = arguments[length];
|
||||
}
|
||||
var index = config.rearg ? 0 : (length - 1);
|
||||
args[index] = iteratee(args[index]);
|
||||
return func.apply(undefined, args);
|
||||
};
|
||||
};
|
||||
|
||||
var wrappers = {
|
||||
'castArray': function(castArray) {
|
||||
return function() {
|
||||
@@ -224,15 +252,15 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'iteratee': function(iteratee) {
|
||||
return function() {
|
||||
var func = arguments[0],
|
||||
arity = arguments[1];
|
||||
arity = arguments[1],
|
||||
result = iteratee(func, arity),
|
||||
length = result.length;
|
||||
|
||||
if (!config.cap) {
|
||||
return iteratee(func, arity);
|
||||
if (config.cap && typeof arity == 'number') {
|
||||
arity = arity > 2 ? (arity - 2) : 1;
|
||||
return (length && length <= arity) ? result : baseAry(result, arity);
|
||||
}
|
||||
arity = arity > 2 ? (arity - 2) : 1;
|
||||
func = iteratee(func);
|
||||
var length = func.length;
|
||||
return (length && length <= arity) ? func : baseAry(func, arity);
|
||||
return result;
|
||||
};
|
||||
},
|
||||
'mixin': function(mixin) {
|
||||
@@ -241,25 +269,21 @@ 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;
|
||||
@@ -272,14 +296,144 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
}
|
||||
};
|
||||
|
||||
var wrap = function(name, func) {
|
||||
name = mapping.aliasToReal[name] || name;
|
||||
var wrapper = wrappers[name];
|
||||
if (wrapper) {
|
||||
return wrapper(func);
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Creates a clone of `object` by `path`.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} object The object to clone.
|
||||
* @param {Array|string} path The path to clone by.
|
||||
* @returns {Object} Returns the cloned object.
|
||||
*/
|
||||
function cloneByPath(object, path) {
|
||||
path = toPath(path);
|
||||
|
||||
var index = -1,
|
||||
length = path.length,
|
||||
lastIndex = length - 1,
|
||||
result = clone(Object(object)),
|
||||
nested = result;
|
||||
|
||||
while (nested != null && ++index < length) {
|
||||
var key = path[index],
|
||||
value = nested[key];
|
||||
|
||||
if (value != null) {
|
||||
nested[path[index]] = clone(index == lastIndex ? value : Object(value));
|
||||
}
|
||||
nested = nested[key];
|
||||
}
|
||||
var wrapped = func;
|
||||
if (config.immutable) {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
|
||||
* version with conversion `options` applied.
|
||||
*
|
||||
* @param {Object} [options] The options object. See `baseConvert` for more details.
|
||||
* @returns {Function} Returns the converted `lodash`.
|
||||
*/
|
||||
function convertLib(options) {
|
||||
return _.runInContext.convert(options)(undefined);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a converter function for `func` of `name`.
|
||||
*
|
||||
* @param {string} name The name of the function to convert.
|
||||
* @param {Function} func The function to convert.
|
||||
* @returns {Function} Returns the new converter function.
|
||||
*/
|
||||
function createConverter(name, func) {
|
||||
var oldOptions = options;
|
||||
return function(options) {
|
||||
var newUtil = isLib ? pristine : helpers,
|
||||
newFunc = isLib ? pristine[name] : func,
|
||||
newOptions = assign(assign({}, oldOptions), options);
|
||||
|
||||
return baseConvert(newUtil, name, newFunc, newOptions);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that wraps `func` to invoke its iteratee, with up to `n`
|
||||
* arguments, ignoring any additional arguments.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to cap iteratee arguments for.
|
||||
* @param {number} n The arity cap.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function iterateeAry(func, n) {
|
||||
return overArg(func, function(func) {
|
||||
return typeof func == 'function' ? baseAry(func, n) : func;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that wraps `func` to invoke its iteratee with arguments
|
||||
* arranged according to the specified `indexes` where the argument value at
|
||||
* the first index is provided as the first argument, the argument value at
|
||||
* the second index is provided as the second argument, and so on.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to rearrange iteratee arguments for.
|
||||
* @param {number[]} indexes The arranged argument indexes.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function iterateeRearg(func, indexes) {
|
||||
return overArg(func, function(func) {
|
||||
var n = indexes.length;
|
||||
return baseArity(rearg(baseAry(func, n), indexes), n);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that invokes `func` with its first argument passed
|
||||
* thru `transform`.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {...Function} transform The functions to transform the first argument.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function overArg(func, transform) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return func();
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
args[length] = arguments[length];
|
||||
}
|
||||
var index = config.rearg ? 0 : (length - 1);
|
||||
args[index] = transform(args[index]);
|
||||
return func.apply(undefined, args);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that wraps `func` and applys the conversions
|
||||
* rules by `name`.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to wrap.
|
||||
* @param {Function} func The function to wrap.
|
||||
* @returns {Function} Returns the converted function.
|
||||
*/
|
||||
function wrap(name, func) {
|
||||
name = mapping.aliasToReal[name] || name;
|
||||
|
||||
var result,
|
||||
wrapped = func,
|
||||
wrapper = wrappers[name];
|
||||
|
||||
if (wrapper) {
|
||||
wrapped = wrapper(func);
|
||||
}
|
||||
else if (config.immutable) {
|
||||
if (mutateMap.array[name]) {
|
||||
wrapped = immutWrap(func, cloneArray);
|
||||
}
|
||||
@@ -287,18 +441,18 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
wrapped = immutWrap(func, createCloner(func));
|
||||
}
|
||||
else if (mutateMap.set[name]) {
|
||||
wrapped = immutWrap(func, cloneDeep);
|
||||
wrapped = immutWrap(func, cloneByPath);
|
||||
}
|
||||
}
|
||||
var result;
|
||||
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];
|
||||
|
||||
result = wrapped;
|
||||
if (config.fixed) {
|
||||
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
|
||||
result = spreadStart === undefined
|
||||
? ary(result, aryKey)
|
||||
: spread(result, spreadStart);
|
||||
@@ -306,10 +460,15 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
if (config.rearg && aryKey > 1 && (forceRearg || !mapping.skipRearg[name])) {
|
||||
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[aryKey]);
|
||||
}
|
||||
if (config.cap && aryN) {
|
||||
result = iterateeAry(result, aryN);
|
||||
if (config.cap) {
|
||||
if (reargIndexes) {
|
||||
result = iterateeRearg(result, reargIndexes);
|
||||
} else if (aryN) {
|
||||
result = iterateeAry(result, aryN);
|
||||
}
|
||||
}
|
||||
if (config.curry && aryKey > 1) {
|
||||
if (forceCurry || (config.curry && aryKey > 1)) {
|
||||
forceCurry && console.log(forceCurry, name);
|
||||
result = curry(result, aryKey);
|
||||
}
|
||||
return false;
|
||||
@@ -319,19 +478,27 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
});
|
||||
|
||||
result || (result = wrapped);
|
||||
if (result == func) {
|
||||
result = forceCurry ? curry(result, 1) : function() {
|
||||
return func.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
result.convert = createConverter(name, func);
|
||||
if (mapping.placeholder[name]) {
|
||||
setPlaceholder = true;
|
||||
func.placeholder = result.placeholder = placeholder;
|
||||
result.placeholder = func.placeholder = placeholder;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
if (!isObj) {
|
||||
return wrap(name, func);
|
||||
}
|
||||
var _ = func;
|
||||
|
||||
// Iterate over methods for the current ary cap.
|
||||
// Convert methods by ary cap.
|
||||
var pairs = [];
|
||||
each(aryMethodKeys, function(aryKey) {
|
||||
each(mapping.aryMethod[aryKey], function(key) {
|
||||
@@ -342,15 +509,31 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
});
|
||||
});
|
||||
|
||||
// Convert remaining methods.
|
||||
each(keys(_), function(key) {
|
||||
var func = _[key];
|
||||
if (typeof func == 'function') {
|
||||
var length = pairs.length;
|
||||
while (length--) {
|
||||
if (pairs[length][0] == key) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
func.convert = createConverter(key, func);
|
||||
pairs.push([key, func]);
|
||||
}
|
||||
});
|
||||
|
||||
// Assign to `_` leaving `_.prototype` unchanged to allow chaining.
|
||||
each(pairs, function(pair) {
|
||||
_[pair[0]] = pair[1];
|
||||
});
|
||||
|
||||
_.convert = convertLib;
|
||||
if (setPlaceholder) {
|
||||
_.placeholder = placeholder;
|
||||
}
|
||||
// Wrap the lodash method and its aliases.
|
||||
// Assign aliases.
|
||||
each(keys(_), function(key) {
|
||||
each(mapping.realToAlias[key] || [], function(alias) {
|
||||
_[alias] = _[key];
|
||||
@@ -369,35 +552,49 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/** Used to map aliases to their real names. */
|
||||
exports.aliasToReal = {
|
||||
|
||||
// Lodash aliases.
|
||||
'each': 'forEach',
|
||||
'eachRight': 'forEachRight',
|
||||
'entries': 'toPairs',
|
||||
'entriesIn': 'toPairsIn',
|
||||
'extend': 'assignIn',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
|
||||
// Ramda aliases.
|
||||
'__': 'placeholder',
|
||||
'all': 'some',
|
||||
'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',
|
||||
'each': 'forEach',
|
||||
'eachRight': 'forEachRight',
|
||||
'equals': 'isEqual',
|
||||
'extend': 'assignIn',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
'identical': 'eq',
|
||||
'init': 'initial',
|
||||
'mapObj': 'mapValues',
|
||||
'invertObj': 'invert',
|
||||
'juxt': 'over',
|
||||
'omitAll': 'omit',
|
||||
'nAry': 'ary',
|
||||
'path': 'get',
|
||||
'pathEq': 'matchesProperty',
|
||||
'pathOr': 'getOr',
|
||||
'paths': 'at',
|
||||
'pickAll': 'pick',
|
||||
'pipe': 'flow',
|
||||
'pluck': 'map',
|
||||
'prop': 'get',
|
||||
'propOf': 'propertyOf',
|
||||
'propEq': 'matchesProperty',
|
||||
'propOr': 'getOr',
|
||||
'somePass': 'overSome',
|
||||
'props': 'at',
|
||||
'unapply': 'rest',
|
||||
'unnest': 'flatten',
|
||||
'useWith': 'overArgs',
|
||||
@@ -409,40 +606,45 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
exports.aryMethod = {
|
||||
'1': [
|
||||
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
|
||||
'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'methodOf', 'mixin',
|
||||
'over', 'overEvery', 'overSome', 'rest', 'reverse', 'round', 'runInContext',
|
||||
'spread', 'template', 'trim', 'trimEnd', 'trimStart', 'uniqueId', 'words'
|
||||
'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', 'bindKey',
|
||||
'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
|
||||
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
||||
'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq', 'every',
|
||||
'filter', 'find', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',
|
||||
'findLastKey', 'flatMap', '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', 'merge', 'minBy', 'omit',
|
||||
'omitBy', 'orderBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
|
||||
'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', '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', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
||||
'split', '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'
|
||||
'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', 'isEqualWith',
|
||||
'isMatchWith', 'mergeWith', 'pullAllBy', 'reduce', 'reduceRight', 'replace',
|
||||
'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy',
|
||||
'unionWith', 'xorBy', 'xorWith', 'zipWith'
|
||||
'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'
|
||||
'fill', 'setWith', 'updateWith'
|
||||
]
|
||||
};
|
||||
|
||||
@@ -455,10 +657,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/** Used to map method names to their iteratee ary. */
|
||||
exports.iterateeAry = {
|
||||
'assignWith': 2,
|
||||
'assignInWith': 2,
|
||||
'cloneDeepWith': 1,
|
||||
'cloneWith': 1,
|
||||
'dropRightWhile': 1,
|
||||
'dropWhile': 1,
|
||||
'every': 1,
|
||||
@@ -470,14 +668,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'findLastIndex': 1,
|
||||
'findLastKey': 1,
|
||||
'flatMap': 1,
|
||||
'flatMapDeep': 1,
|
||||
'flatMapDepth': 1,
|
||||
'forEach': 1,
|
||||
'forEachRight': 1,
|
||||
'forIn': 1,
|
||||
'forInRight': 1,
|
||||
'forOwn': 1,
|
||||
'forOwnRight': 1,
|
||||
'isEqualWith': 2,
|
||||
'isMatchWith': 2,
|
||||
'map': 1,
|
||||
'mapKeys': 1,
|
||||
'mapValues': 1,
|
||||
@@ -493,24 +691,38 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'transform': 2
|
||||
};
|
||||
|
||||
/** Used to map method names to iteratee rearg configs. */
|
||||
exports.iterateeRearg = {
|
||||
'mapKeys': [1]
|
||||
};
|
||||
|
||||
/** Used to map method names to rearg configs. */
|
||||
exports.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]
|
||||
};
|
||||
|
||||
/** Used to map method names to spread configs. */
|
||||
exports.methodSpread = {
|
||||
'invokeArgs': 2,
|
||||
'invokeArgsMap': 2,
|
||||
'partial': 1,
|
||||
'partialRight': 1
|
||||
'partialRight': 1,
|
||||
'without': 1
|
||||
};
|
||||
|
||||
/** Used to identify methods which mutate arrays or objects. */
|
||||
@@ -520,6 +732,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'pull': true,
|
||||
'pullAll': true,
|
||||
'pullAllBy': true,
|
||||
'pullAllWith': true,
|
||||
'pullAt': true,
|
||||
'remove': true,
|
||||
'reverse': true
|
||||
@@ -537,7 +750,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'set': {
|
||||
'set': true,
|
||||
'setWith': true,
|
||||
'unset': true
|
||||
'unset': true,
|
||||
'update': true,
|
||||
'updateWith': true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -573,35 +788,72 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'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'
|
||||
};
|
||||
|
||||
/** Used to track methods that skip `_.rearg`. */
|
||||
/** Used to track methods that skip fixing their arity. */
|
||||
exports.skipFixed = {
|
||||
'castArray': true,
|
||||
'flow': true,
|
||||
'flowRight': true,
|
||||
'iteratee': true,
|
||||
'mixin': true,
|
||||
'runInContext': true
|
||||
};
|
||||
|
||||
/** Used to track methods that skip rearranging arguments. */
|
||||
exports.skipRearg = {
|
||||
'add': true,
|
||||
'assign': true,
|
||||
'assignIn': true,
|
||||
'bind': true,
|
||||
'bindKey': true,
|
||||
'concat': true,
|
||||
'difference': true,
|
||||
'divide': true,
|
||||
'eq': true,
|
||||
'gt': true,
|
||||
'gte': true,
|
||||
'isEqual': true,
|
||||
'lt': true,
|
||||
'lte': true,
|
||||
'matchesProperty': true,
|
||||
'merge': true,
|
||||
'multiply': true,
|
||||
'overArgs': true,
|
||||
'partial': true,
|
||||
'partialRight': true,
|
||||
'random': true,
|
||||
'range': true,
|
||||
'rangeRight': true,
|
||||
'subtract': true,
|
||||
'without': true,
|
||||
'zip': true,
|
||||
'zipObject': true
|
||||
};
|
||||
|
||||
|
||||
/***/ },
|
||||
/* 3 */
|
||||
/***/ function(module, exports) {
|
||||
|
||||
/**
|
||||
* The default argument placeholder value for methods.
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
module.exports = {};
|
||||
|
||||
|
||||
/***/ }
|
||||
/******/ ])
|
||||
});
|
||||
|
||||
28
dist/lodash.fp.min.js
vendored
28
dist/lodash.fp.min.js
vendored
@@ -1,12 +1,16 @@
|
||||
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.fp=r():e.fp=r()}(this,function(){return function(e){function r(i){if(t[i])return t[i].exports;var n=t[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){function i(e,r){return n(e,e,r)}var n=t(1);"function"==typeof _&&(_=i(_.runInContext())),
|
||||
e.exports=i},function(e,r,t){function i(e,r,t,s){var u,c="function"==typeof r,p=r===Object(r);if(p&&(s=t,t=r,r=void 0),null==t)throw new TypeError;s||(s={});var l={cap:"cap"in s?s.cap:!0,curry:"curry"in s?s.curry:!0,fixed:"fixed"in s?s.fixed:!0,immutable:"immutable"in s?s.immutable:!0,rearg:"rearg"in s?s.rearg:!0},f="rearg"in s&&s.rearg,h=c?t:{ary:e.ary,cloneDeep:e.cloneDeep,curry:e.curry,forEach:e.forEach,isArray:e.isArray,isFunction:e.isFunction,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg,spread:e.spread
|
||||
},d=h.ary,y=h.cloneDeep,g=h.curry,m=h.forEach,v=h.isArray,W=h.isFunction,x=h.keys,R=h.rearg,I=h.spread,O=x(n.aryMethod),b=function(e,r){return 2==r?function(r,t){return e(r,t)}:function(r){return e(r)}},A=function(e){for(var r=e?e.length:0,t=Array(r);r--;)t[r]=e[r];return t},B=function(e){return function(r){return e({},r)}},E=function(e,r){return function(){var t=arguments.length;if(!t)return n;for(var i=Array(t);t--;)i[t]=arguments[t];var n=i[0]=r(i[0]);return e.apply(void 0,i),n}},k=function(e,r){
|
||||
return j(e,function(e){return b(e,r)})},j=function(e,r,t){return function(){var t=arguments.length;if(!t)return e();for(var i=Array(t);t--;)i[t]=arguments[t];var n=l.rearg?0:t-1;return i[n]=r(i[n]),e.apply(void 0,i)}},w={castArray:function(e){return function(){var r=arguments[0];return v(r)?e(A(r)):e.apply(void 0,arguments)}},iteratee:function(e){return function(){var r=arguments[0],t=arguments[1];if(!l.cap)return e(r,t);t=t>2?t-2:1,r=e(r);var i=r.length;return i&&t>=i?r:b(r,t)}},mixin:function(e){
|
||||
return function(r){var t=this;if(!W(t))return e(t,Object(r));var i=[],n=[];return m(x(r),function(e){var a=r[e];W(a)&&(n.push(e),i.push(t.prototype[e]))}),e(t,Object(r)),m(n,function(e,r){var n=i[r];W(n)?t.prototype[e]=n:delete t.prototype[e]}),t}},runInContext:function(r){return function(t){return i(e,r(t),s)}}},q=function(e,r){e=n.aliasToReal[e]||e;var t=w[e];if(t)return t(r);var i=r;l.immutable&&(a.array[e]?i=E(r,A):a.object[e]?i=E(r,B(r)):a.set[e]&&(i=E(r,y)));var s;return m(O,function(r){return m(n.aryMethod[r],function(t){
|
||||
if(e==t){var a=!c&&n.iterateeAry[e],o=n.methodSpread[e];return s=i,l.fixed&&(s=void 0===o?d(s,r):I(s,o)),l.rearg&&r>1&&(f||!n.skipRearg[e])&&(s=R(s,n.methodRearg[e]||n.aryRearg[r])),l.cap&&a&&(s=k(s,a)),l.curry&&r>1&&(s=g(s,r)),!1}}),!s}),s||(s=i),n.placeholder[e]&&(u=!0,r.placeholder=s.placeholder=o),s};if(!p)return q(r,t);var z=t,M=[];return m(O,function(e){m(n.aryMethod[e],function(e){var r=z[n.remap[e]||e];r&&M.push([e,q(e,r)])})}),m(M,function(e){z[e[0]]=e[1]}),u&&(z.placeholder=o),m(x(z),function(e){
|
||||
m(n.realToAlias[e]||[],function(r){z[r]=z[e]})}),z}var n=t(2),a=n.mutate,o={};e.exports=i},function(e,r){r.aliasToReal={__:"placeholder",all:"some",allPass:"overEvery",apply:"spread",assoc:"set",assocPath:"set",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",each:"forEach",eachRight:"forEachRight",equals:"isEqual",extend:"assignIn",extendWith:"assignInWith",first:"head",init:"initial",mapObj:"mapValues",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",
|
||||
pickAll:"pick",pipe:"flow",prop:"get",propOf:"propertyOf",propOr:"getOr",somePass:"overSome",unapply:"rest",unnest:"flatten",useWith:"overArgs",whereEq:"filter",zipObj:"zipObject"},r.aryMethod={1:["attempt","castArray","ceil","create","curry","curryRight","floor","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","bindKey","chunk","cloneDeepWith","cloneWith","concat","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","delay","difference","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","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","merge","minBy","omit","omitBy","orderBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","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","isEqualWith","isMatchWith","mergeWith","pullAllBy","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","xorBy","xorWith","zipWith"],4:["fill","setWith"]},r.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},r.iterateeAry={assignWith:2,assignInWith:2,cloneDeepWith:1,cloneWith:1,dropRightWhile:1,dropWhile:1,every:1,filter:1,
|
||||
find:1,findIndex:1,findKey:1,findLast:1,findLastIndex:1,findLastKey:1,flatMap:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,isEqualWith:2,isMatchWith:2,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},r.methodRearg={assignInWith:[1,2,0],assignWith:[1,2,0],getOr:[2,1,0],isMatchWith:[2,1,0],mergeWith:[1,2,0],pullAllBy:[2,1,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],
|
||||
zipWith:[1,2,0]},r.methodSpread={partial:1,partialRight:1},r.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!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}},r.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},r.realToAlias=function(){var e=Object.prototype.hasOwnProperty,t=r.aliasToReal,i={};for(var n in t){var a=t[n];e.call(i,a)?i[a].push(n):i[a]=[n];
|
||||
}return i}(),r.remap={curryN:"curry",curryRightN:"curryRight",getOr:"get",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart"},r.skipRearg={add:!0,assign:!0,assignIn:!0,concat:!0,difference:!0,gt:!0,gte:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,partial:!0,partialRight:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0}}])});
|
||||
!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=n-1,a=M(Object(t)),o=a;null!=o&&++r<n;){var s=e[r],u=o[s];null!=u&&(o[e[r]]=M(r==i?u:Object(u))),o=o[s]}return a}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=[];return P(K(e),function(t){z(e[t])&&n.push([t,r.prototype[t]])}),t(r,Object(e)),P(n,function(t){var e=t[1];z(e)?r.prototype[t[0]]=e:delete r.prototype[t[0]];
|
||||
}),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",pluck:"map",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","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={}}])});
|
||||
4950
dist/lodash.js
vendored
4950
dist/lodash.js
vendored
File diff suppressed because it is too large
Load Diff
239
dist/lodash.min.js
vendored
239
dist/lodash.min.js
vendored
@@ -1,120 +1,125 @@
|
||||
/**
|
||||
* @license
|
||||
* lodash 4.4.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 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,o=n.length;++u<o;){var i=n[u];t(e,i,r(i),n)}return e}function u(n,t){for(var r=-1,e=n.length;++r<e&&false!==t(n[r],r,n););return n}function o(n,t){for(var r=-1,e=n.length;++r<e;)if(!t(n[r],r,n))return false;
|
||||
return true}function i(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;){var i=n[r];t(i,r,n)&&(o[++u]=i)}return o}function f(n,t){return!!n.length&&-1<d(n,t,0)}function c(n,t,r){for(var e=-1,u=n.length;++e<u;)if(r(t,n[e]))return true;return false}function a(n,t){for(var r=-1,e=n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function l(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function s(n,t,r,e){var u=-1,o=n.length;for(e&&o&&(r=n[++u]);++u<o;)r=t(r,n[u],u,n);return r}function h(n,t,r,e){
|
||||
var u=n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function p(n,t){for(var r=-1,e=n.length;++r<e;)if(t(n[r],r,n))return true;return false}function _(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(f===Z?i===i:r(i,f)))var f=i,c=o}return c}function g(n,t,r,e){var u;return r(n,function(n,r,o){return t(n,r,o)?(u=e?r:n,false):void 0}),u}function v(n,t,r){for(var e=n.length,u=r?e:-1;r?u--:++u<e;)if(t(n[u],u,n))return u;return-1}function d(n,t,r){if(t!==t)return B(n,r);--r;for(var e=n.length;++r<e;)if(n[r]===t)return r;
|
||||
return-1}function y(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function b(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;return n}function x(n,t){for(var r,e=-1,u=n.length;++e<u;){var o=t(n[e]);o!==Z&&(r=r===Z?o:r+o)}return r}function j(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function m(n,t){return a(t,function(t){return[t,n[t]]})}function w(n){return function(t){return n(t)}}function A(n,t){return a(t,function(t){return n[t]})}function O(n,t){for(var r=-1,e=n.length;++r<e&&-1<d(t,n[r],0););
|
||||
return r}function k(n,t){for(var r=n.length;r--&&-1<d(t,n[r],0););return r}function E(n){return n&&n.Object===Object?n:null}function I(n,t){if(n!==t){var r=null===n,e=n===Z,u=n===n,o=null===t,i=t===Z,f=t===t;if(n>t&&!o||!u||r&&!i&&f||e&&f)return 1;if(t>n&&!r||!f||o&&!e&&u||i&&u)return-1}return 0}function S(n){return Un[n]}function R(n){return zn[n]}function W(n){return"\\"+$n[n]}function B(n,t,r){var e=n.length;for(t+=r?0:-1;r?t--:++t<e;){var u=n[t];if(u!==u)return t}return-1}function C(n){var t=false;
|
||||
if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function U(n,t){return n=typeof n=="number"||yn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function z(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function L(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;)n[r]===t&&(n[r]="__lodash_placeholder__",o[++u]=r);return o}function $(n){var t=-1,r=Array(n.size);return n.forEach(function(n){
|
||||
r[++t]=n}),r}function F(n){if(!n||!En.test(n))return n.length;for(var t=kn.lastIndex=0;kn.test(n);)t++;return t}function N(n){return Mn[n]}function D(E){function yn(n){if(me(n)&&!Do(n)&&!(n instanceof An)){if(n instanceof wn)return n;if(au.call(n,"__wrapped__"))return qr(n)}return new wn(n)}function mn(){}function wn(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=Z}function An(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=false,
|
||||
this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Un(){}function zn(n){var t=-1,r=n?n.length:0;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Mn(n){var t=-1,r=n?n.length:0;for(this.__data__=new zn;++t<r;)this.push(n[t])}function Ln(n,t){var r=n.__data__;return Lr(t)?(r=r.__data__,"__lodash_hash_undefined__"===(typeof t=="string"?r.string:r.hash)[t]):r.has(t)}function $n(n){var t=-1,r=n?n.length:0;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1]);
|
||||
}}function Dn(n,t){var r=Pn(n,t);return 0>r?false:(r==n.length-1?n.pop():Eu.call(n,r,1),true)}function Zn(n,t){var r=Pn(n,t);return 0>r?Z:n[r][1]}function Pn(n,t){for(var r=n.length;r--;)if(he(n[r][0],t))return r;return-1}function Tn(n,t,r){var e=Pn(n,t);0>e?n.push([t,r]):n[e][1]=r}function Kn(n,t,r,e){return n===Z||he(n,fu[r])&&!au.call(e,r)?t:n}function Jn(n,t,r){(r!==Z&&!he(n[t],r)||typeof t=="number"&&r===Z&&!(t in n))&&(n[t]=r)}function Yn(n,t,r){var e=n[t];(!he(e,r)||he(e,fu[t])&&!au.call(n,t)||r===Z&&!(t in n))&&(n[t]=r);
|
||||
}function Hn(n,t,r,e){return Yu(n,function(n,u,o){t(e,n,r(n),o)}),e}function Qn(n,t){return n&&nr(t,Ne(t),n)}function Xn(n,t){for(var r=-1,e=null==n,u=t.length,o=Array(u);++r<u;)o[r]=e?Z:Le(n,t[r]);return o}function nt(n){return ve(n)?n:[]}function tt(n){return typeof n=="function"?n:Je}function rt(n){return Do(n)?n:Zr(n)}function et(n,t,r){return n===n&&(r!==Z&&(n=n>r?r:n),t!==Z&&(n=t>n?t:n)),n}function ut(n,t,r,e,o,i){var f;if(r&&(f=o?r(n,e,o,i):r(n)),f!==Z)return f;if(!je(n))return n;if(e=Do(n)){
|
||||
if(f=Wr(n),!t)return Xt(n,f)}else{var c=Sr(n),a="[object Function]"==c||"[object GeneratorFunction]"==c;if(Zo(n))return Jt(n,t);if("[object Object]"!=c&&"[object Arguments]"!=c&&(!a||o))return Cn[c]?Cr(n,c,t):o?n:{};if(C(n))return o?n:{};if(f=Br(a?{}:n),!t)return rr(n,Qn(f,n))}return i||(i=new $n),(o=i.get(n))?o:(i.set(n,f),(e?u:pt)(n,function(e,u){Yn(f,u,ut(e,t,r,u,n,i))}),e?f:rr(n,f))}function ot(n){var t=Ne(n),r=t.length;return function(e){if(null==e)return!r;for(var u=r;u--;){var o=t[u],i=n[o],f=e[o];
|
||||
if(f===Z&&!(o in Object(e))||!i(f))return false}return true}}function it(n){return je(n)?Au(n):{}}function ft(n,t,r){if(typeof n!="function")throw new ou("Expected a function");return ku(function(){n.apply(Z,r)},t)}function ct(n,t,r,e){var u=-1,o=f,i=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=a(t,w(r))),e?(o=c,i=false):t.length>=200&&(o=Ln,i=false,t=new Mn(t));n:for(;++u<l;){var p=n[u],_=r?r(p):p;if(i&&_===_){for(var g=h;g--;)if(t[g]===_)continue n;s.push(p)}else o(t,_,e)||s.push(p)}return s}function at(n,t){
|
||||
var r=true;return Yu(n,function(n,e,u){return r=!!t(n,e,u)}),r}function lt(n,t){var r=[];return Yu(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function st(n,t,r,e){e||(e=[]);for(var u=-1,o=n.length;++u<o;){var i=n[u];t>0&&ve(i)&&(r||Do(i)||_e(i))?t>1?st(i,t-1,r,e):l(e,i):r||(e[e.length]=i)}return e}function ht(n,t){null==n||Qu(n,t,De)}function pt(n,t){return n&&Qu(n,t,Ne)}function _t(n,t){return n&&Xu(n,t,Ne)}function gt(n,t){return i(t,function(t){return ye(n[t])})}function vt(n,t){t=Mr(t,n)?[t+""]:rt(t);
|
||||
for(var r=0,e=t.length;null!=n&&e>r;)n=n[t[r++]];return r&&r==e?n:Z}function dt(n,t){return au.call(n,t)||typeof n=="object"&&t in n&&null===ju(n)}function yt(n,t){return t in Object(n)}function bt(n,t,r){for(var e=r?c:f,u=n.length,o=u,i=Array(u),l=[];o--;){var s=n[o];o&&t&&(s=a(s,w(t))),i[o]=r||!t&&120>s.length?Z:new Mn(o&&s)}var s=n[0],h=-1,p=s.length,_=i[0];n:for(;++h<p;){var g=s[h],v=t?t(g):g;if(_?!Ln(_,v):!e(l,v,r)){for(o=u;--o;){var d=i[o];if(d?!Ln(d,v):!e(n[o],v,r))continue n}_&&_.push(v),
|
||||
l.push(g)}}return l}function xt(n,t,r){var e={};return pt(n,function(n,u,o){t(e,r(n),u,o)}),e}function jt(n,t,e){return Mr(t,n)||(t=rt(t),n=Dr(n,t),t=Gr(t)),t=null==n?n:n[t],null==t?Z:r(t,n,e)}function mt(n,t,r,e,u){if(n===t)n=true;else if(null==n||null==t||!je(n)&&!me(t))n=n!==n&&t!==t;else n:{var o=Do(n),i=Do(t),f="[object Array]",c="[object Array]";o||(f=Sr(n),"[object Arguments]"==f?f="[object Object]":"[object Object]"!=f&&(o=Se(n))),i||(c=Sr(t),"[object Arguments]"==c?c="[object Object]":"[object Object]"!=c&&Se(t));
|
||||
var a="[object Object]"==f&&!C(n),i="[object Object]"==c&&!C(t),c=f==c;if(!c||o||a){if(!(2&e)&&(f=a&&au.call(n,"__wrapped__"),i=i&&au.call(t,"__wrapped__"),f||i)){n=mt(f?n.value():n,i?t.value():t,r,e,u);break n}c?(u||(u=new $n),n=(o?mr:Ar)(n,t,mt,r,e,u)):n=false}else n=wr(n,t,f,mt,r,e)}return n}function wt(n,t,r,e){var u=r.length,o=u,i=!e;if(null==n)return!o;for(n=Object(n);u--;){var f=r[u];if(i&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return false}for(;++u<o;){var f=r[u],c=f[0],a=n[c],l=f[1];if(i&&f[2]){if(a===Z&&!(c in n))return false;
|
||||
}else if(f=new $n,c=e?e(a,l,c,n,t,f):Z,c===Z?!mt(l,a,e,3,f):!c)return false}return true}function At(n){var t=typeof n;return"function"==t?n:null==n?Je:"object"==t?Do(n)?It(n[0],n[1]):Et(n):Xe(n)}function Ot(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function kt(n,t){var r=-1,e=ge(n)?Array(n.length):[];return Yu(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function Et(n){var t=Er(n);if(1==t.length&&t[0][2]){var r=t[0][0],e=t[0][1];return function(n){return null==n?false:n[r]===e&&(e!==Z||r in Object(n));
|
||||
}}return function(r){return r===n||wt(r,n,t)}}function It(n,t){return function(r){var e=Le(r,n);return e===Z&&e===t?Fe(r,n):mt(t,e,Z,3)}}function St(n,t,r,e,o){if(n!==t){var i=Do(t)||Se(t)?Z:De(t);u(i||t,function(u,f){if(i&&(f=u,u=t[f]),je(u)){o||(o=new $n);var c=f,a=o,l=n[c],s=t[c],h=a.get(s);if(h)Jn(n,c,h);else{var h=e?e(l,s,c+"",n,t,a):Z,p=h===Z;p&&(h=s,Do(s)||Se(s)?Do(l)?h=l:ve(l)?h=Xt(l):(p=false,h=ut(s,true)):Oe(s)||_e(s)?_e(l)?h=ze(l):!je(l)||r&&ye(l)?(p=false,h=ut(s,true)):h=l:p=false),a.set(s,h),p&&St(h,s,r,e,a),
|
||||
Jn(n,c,h)}}else c=e?e(n[f],u,f+"",n,t,o):Z,c===Z&&(c=u),Jn(n,f,c)})}}function Rt(n,t,r){var e=-1,u=kr();return t=a(t.length?t:Array(1),function(n){return u(n)}),n=kt(n,function(n){return{a:a(t,function(t){return t(n)}),b:++e,c:n}}),b(n,function(n,t){var e;n:{e=-1;for(var u=n.a,o=t.a,i=u.length,f=r.length;++e<i;){var c=I(u[e],o[e]);if(c){e=f>e?c*("desc"==r[e]?-1:1):c;break n}}e=n.b-t.b}return e})}function Wt(n,t){return n=Object(n),s(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function Bt(n,t){
|
||||
var r={};return ht(n,function(n,e){t(n,e)&&(r[e]=n)}),r}function Ct(n){return function(t){return null==t?Z:t[n]}}function Ut(n){return function(t){return vt(t,n)}}function zt(n,t,r){var e=-1,u=t.length,o=n;for(r&&(o=a(n,function(n){return r(n)}));++e<u;)for(var i=0,f=t[e],f=r?r(f):f;-1<(i=d(o,f,i));)o!==n&&Eu.call(o,i,1),Eu.call(n,i,1);return n}function Mt(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(e==r||u!=o){var o=u;if(U(u))Eu.call(n,u,1);else if(Mr(u,n))delete n[u];else{var u=rt(u),i=Dr(n,u);
|
||||
null!=i&&delete i[Gr(u)]}}}}function Lt(n,t){return n+Su(Mu()*(t-n+1))}function $t(n,t,r,e){t=Mr(t,n)?[t+""]:rt(t);for(var u=-1,o=t.length,i=o-1,f=n;null!=f&&++u<o;){var c=t[u];if(je(f)){var a=r;if(u!=i){var l=f[c],a=e?e(l,c,f):Z;a===Z&&(a=null==l?U(t[u+1])?[]:{}:l)}Yn(f,c,a)}f=f[c]}return n}function Ft(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 Nt(n,t){var r;return Yu(n,function(n,e,u){return r=t(n,e,u),
|
||||
!r}),!!r}function Dt(n,t,r){var e=0,u=n?n.length:e;if(typeof t=="number"&&t===t&&2147483647>=u){for(;u>e;){var o=e+u>>>1,i=n[o];(r?t>=i:t>i)&&null!==i?e=o+1:u=o}return u}return Zt(n,t,Je,r)}function Zt(n,t,r,e){t=r(t);for(var u=0,o=n?n.length:0,i=t!==t,f=null===t,c=t===Z;o>u;){var a=Su((u+o)/2),l=r(n[a]),s=l!==Z,h=l===l;(i?h||e:f?h&&s&&(e||null!=l):c?h&&(e||s):null==l?0:e?t>=l:t>l)?u=a+1:o=a}return Uu(o,4294967294)}function qt(n,t){for(var r=0,e=n.length,u=n[0],o=t?t(u):u,i=o,f=0,c=[u];++r<e;)u=n[r],
|
||||
o=t?t(u):u,he(o,i)||(i=o,c[++f]=u);return c}function Pt(n,t,r){var e=-1,u=f,o=n.length,i=true,a=[],l=a;if(r)i=false,u=c;else if(o<200)l=t?[]:a;else{if(u=t?null:to(n))return $(u);i=false,u=Ln,l=new Mn}n:for(;++e<o;){var s=n[e],h=t?t(s):s;if(i&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue n;t&&l.push(h),a.push(s)}else u(l,h,r)||(l!==a&&l.push(h),a.push(s))}return a}function Tt(n,t,r,e){for(var u=n.length,o=e?u:-1;(e?o--:++o<u)&&t(n[o],o,n););return r?Ft(n,e?0:o,e?o+1:u):Ft(n,e?o+1:0,e?u:o)}function Kt(n,t){
|
||||
var r=n;return r instanceof An&&(r=r.value()),s(t,function(n,t){return t.func.apply(t.thisArg,l([n],t.args))},r)}function Gt(n,t,r){for(var e=-1,u=n.length;++e<u;)var o=o?l(ct(o,n[e],t,r),ct(n[e],o,t,r)):n[e];return o&&o.length?Pt(o,t,r):[]}function Vt(n,t,r){for(var e=-1,u=n.length,o=t.length,i={};++e<u;)r(i,n[e],o>e?t[e]:Z);return i}function Jt(n,t){if(t)return n.slice();var r=new n.constructor(n.length);return n.copy(r),r}function Yt(n){var t=new n.constructor(n.byteLength);return new yu(t).set(new yu(n)),
|
||||
t}function Ht(n,t,r){for(var e=r.length,u=-1,o=Cu(n.length-e,0),i=-1,f=t.length,c=Array(f+o);++i<f;)c[i]=t[i];for(;++u<e;)c[r[u]]=n[u];for(;o--;)c[i++]=n[u++];return c}function Qt(n,t,r){for(var e=-1,u=r.length,o=-1,i=Cu(n.length-u,0),f=-1,c=t.length,a=Array(i+c);++o<i;)a[o]=n[o];for(i=o;++f<c;)a[i+f]=t[f];for(;++e<u;)a[i+r[e]]=n[o++];return a}function Xt(n,t){var r=-1,e=n.length;for(t||(t=Array(e));++r<e;)t[r]=n[r];return t}function nr(n,t,r){return tr(n,t,r)}function tr(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){
|
||||
var i=t[u],f=e?e(r[i],n[i],i,r,n):n[i];Yn(r,i,f)}return r}function rr(n,t){return nr(n,uo(n),t)}function er(n,t){return function(r,u){var o=Do(r)?e:Hn,i=t?t():{};return o(r,n,kr(u),i)}}function ur(n){return se(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:Z,i=u>2?r[2]:Z,o=typeof o=="function"?(u--,o):Z;for(i&&zr(r[0],r[1],i)&&(o=3>u?Z:o,u=1),t=Object(t);++e<u;)(i=r[e])&&n(t,i,e,o);return t})}function or(n,t){return function(r,e){if(null==r)return r;if(!ge(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}}function ir(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var f=e[n?i:++u];if(false===r(o[f],f,o))break}return t}}function fr(n,t,r){function e(){return(this&&this!==Gn&&this instanceof e?o:n).apply(u?r:this,arguments)}var u=1&t,o=lr(n);return e}function cr(n){return function(t){t=Me(t);var r=En.test(t)?t.match(kn):Z,e=r?r[0]:t.charAt(0);return t=r?r.slice(1).join(""):t.slice(1),e[n]()+t}}function ar(n){return function(t){return s(Ge(Te(t)),n,"")}}function lr(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=it(n.prototype),t=n.apply(r,t);return je(t)?t:r}}function sr(n,t,e){function u(){for(var i=arguments.length,f=i,c=Array(i),a=this&&this!==Gn&&this instanceof u?o:n,l=yn.placeholder||u.placeholder;f--;)c[f]=arguments[f];
|
||||
return f=3>i&&c[0]!==l&&c[i-1]!==l?[]:L(c,l),i-=f.length,e>i?br(n,t,pr,l,Z,c,f,Z,Z,e-i):r(a,this,c)}var o=lr(n);return u}function hr(n){return se(function(t){t=st(t,1);var r=t.length,e=r,u=wn.prototype.thru;for(n&&t.reverse();e--;){var o=t[e];if(typeof o!="function")throw new ou("Expected a function");if(u&&!i&&"wrapper"==Or(o))var i=new wn([],true)}for(e=i?e:r;++e<r;)var o=t[e],u=Or(o),f="wrapper"==u?ro(o):Z,i=f&&$r(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?i[Or(f[0])].apply(i,f[3]):1==o.length&&$r(o)?i[u]():i.thru(o);
|
||||
return function(){var n=arguments,e=n[0];if(i&&1==n.length&&Do(e)&&e.length>=200)return i.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 pr(n,t,r,e,u,o,i,f,c,a){function l(){for(var y=arguments.length,b=y,x=Array(y);b--;)x[b]=arguments[b];if(e&&(x=Ht(x,e,u)),o&&(x=Qt(x,o,i)),_||g){var b=yn.placeholder||l.placeholder,j=L(x,b),y=y-j.length;if(a>y)return br(n,t,pr,b,r,x,j,f,c,a-y)}if(y=h?r:this,b=p?y[n]:n,f)for(var j=x.length,m=Uu(f.length,j),w=Xt(x);m--;){
|
||||
var A=f[m];x[m]=U(A,j)?w[A]:Z}else v&&x.length>1&&x.reverse();return s&&x.length>c&&(x.length=c),this&&this!==Gn&&this instanceof l&&(b=d||lr(b)),b.apply(y,x)}var s=128&t,h=1&t,p=2&t,_=8&t,g=16&t,v=512&t,d=p?Z:lr(n);return l}function _r(n,t){return function(r,e){return xt(r,n,t(e))}}function gr(n){return se(function(t){return t=a(st(t,1),kr()),se(function(e){var u=this;return n(t,function(n){return r(n,u,e)})})})}function vr(n,t,r){return t=Be(t),n=F(n),t&&t>n?(t-=n,r=r===Z?" ":r+"",n=Ke(r,Iu(t/F(r))),
|
||||
En.test(r)?n.match(kn).slice(0,t).join(""):n.slice(0,t)):""}function dr(n,t,e,u){function o(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=Array(l+c),h=this&&this!==Gn&&this instanceof o?f:n;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++t];return r(h,i?e:this,s)}var i=1&t,f=lr(n);return o}function yr(n){return function(t,r,e){e&&typeof e!="number"&&zr(t,r,e)&&(r=e=Z),t=Ue(t),t=t===t?t:0,r===Z?(r=t,t=0):r=Ue(r)||0,e=e===Z?r>t?1:-1:Ue(e)||0;var u=-1;r=Cu(Iu((r-t)/(e||1)),0);for(var o=Array(r);r--;)o[n?r:++u]=t,
|
||||
t+=e;return o}}function br(n,t,r,e,u,o,i,f,c,a){var l=8&t;f=f?Xt(f):Z;var s=l?i:Z;i=l?Z:i;var h=l?o:Z;return o=l?Z:o,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),t=[n,t,u,h,s,o,i,f,c,a],r=r.apply(Z,t),$r(n)&&oo(r,t),r.placeholder=e,r}function xr(n){var t=eu[n];return function(n,r){if(n=Ue(n),r=Be(r)){var e=(Me(n)+"e").split("e"),e=t(e[0]+"e"+(+e[1]+r)),e=(Me(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return t(n)}}function jr(n,t,r,e,u,o,i,f){var c=2&t;if(!c&&typeof n!="function")throw new ou("Expected a function");
|
||||
var a=e?e.length:0;if(a||(t&=-97,e=u=Z),i=i===Z?i:Cu(Be(i),0),f=f===Z?f:Be(f),a-=u?u.length:0,64&t){var l=e,s=u;e=u=Z}var h=c?Z:ro(n);return o=[n,t,r,e,u,l,s,o,i,f],h&&(r=o[1],n=h[1],t=r|n,e=128==n&&8==r||128==n&&256==r&&h[8]>=o[7].length||384==n&&h[8]>=h[7].length&&8==r,131>t||e)&&(1&n&&(o[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=o[3],o[3]=e?Ht(e,r,h[4]):Xt(r),o[4]=e?L(o[3],"__lodash_placeholder__"):Xt(h[4])),(r=h[5])&&(e=o[5],o[5]=e?Qt(e,r,h[6]):Xt(r),o[6]=e?L(o[5],"__lodash_placeholder__"):Xt(h[6])),(r=h[7])&&(o[7]=Xt(r)),
|
||||
128&n&&(o[8]=null==o[8]?h[8]:Uu(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=t),n=o[0],t=o[1],r=o[2],e=o[3],u=o[4],f=o[9]=null==o[9]?c?0:n.length:Cu(o[9]-a,0),!f&&24&t&&(t&=-25),(h?no:oo)(t&&1!=t?8==t||16==t?sr(n,t,f):32!=t&&33!=t||u.length?pr.apply(Z,o):dr(n,t,r,e):fr(n,t,r),o)}function mr(n,t,r,e,u,o){var i=-1,f=2&u,c=1&u,a=n.length,l=t.length;if(!(a==l||f&&l>a))return false;if(l=o.get(n))return l==t;for(l=true,o.set(n,t);++i<a;){var s=n[i],h=t[i];if(e)var _=f?e(h,s,i,t,n,o):e(s,h,i,n,t,o);if(_!==Z){
|
||||
if(_)continue;l=false;break}if(c){if(!p(t,function(n){return s===n||r(s,n,e,u,o)})){l=false;break}}else if(s!==h&&!r(s,h,e,u,o)){l=false;break}}return o["delete"](n),l}function wr(n,t,r,e,u,o){switch(r){case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!e(new yu(n),new yu(t)))break;return true;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+"";case"[object Map]":var i=M;case"[object Set]":return i||(i=$),(2&o||n.size==t.size)&&e(i(n),i(t),u,1|o);case"[object Symbol]":return!!du&&Gu.call(n)==Gu.call(t)}return false}function Ar(n,t,r,e,u,o){var i=2&u,f=Ne(n),c=f.length,a=Ne(t).length;if(c!=a&&!i)return false;for(var l=c;l--;){var s=f[l];if(!(i?s in t:dt(t,s)))return false}if(a=o.get(n))return a==t;a=true,o.set(n,t);for(var h=i;++l<c;){var s=f[l],p=n[s],_=t[s];if(e)var g=i?e(_,p,s,t,n,o):e(p,_,s,n,t,o);if(g===Z?p!==_&&!r(p,_,e,u,o):!g){a=false;
|
||||
break}h||(h="constructor"==s)}return a&&!h&&(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)),o["delete"](n),a}function Or(n){for(var t=n.name+"",r=Ju[t],e=au.call(Ju,t)?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==n)return u.name}return t}function kr(){var n=yn.iteratee||Ye,n=n===Ye?At:n;return arguments.length?n(arguments[0],arguments[1]):n}function Er(n){n=Ze(n);for(var t=n.length;t--;){
|
||||
var r=n[t][1];n[t][2]=r===r&&!je(r)}return n}function Ir(n,t){var r=null==n?Z:n[t];return we(r)?r:Z}function Sr(n){return hu.call(n)}function Rr(n,t,r){if(null==n)return false;var e=r(n,t);return e||Mr(t)||(t=rt(t),n=Dr(n,t),null!=n&&(t=Gr(t),e=r(n,t))),r=n?n.length:Z,e||!!r&&xe(r)&&U(t,r)&&(Do(n)||Ee(n)||_e(n))}function Wr(n){var t=n.length,r=n.constructor(t);return t&&"string"==typeof n[0]&&au.call(n,"index")&&(r.index=n.index,r.input=n.input),r}function Br(n){return Fr(n)?{}:(n=n.constructor,it(ye(n)?n.prototype:Z));
|
||||
}function Cr(r,e,u){var o=r.constructor;switch(e){case"[object ArrayBuffer]":return Yt(r);case"[object Boolean]":case"[object Date]":return new o(+r);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=r.buffer,u=u?Yt(e):e,new r.constructor(u,r.byteOffset,r.length);case"[object Map]":return u=r.constructor,
|
||||
s(M(r),n,new u);case"[object Number]":case"[object String]":return new o(r);case"[object RegExp]":return u=new r.constructor(r.source,hn.exec(r)),u.lastIndex=r.lastIndex,u;case"[object Set]":return u=r.constructor,s($(r),t,new u);case"[object Symbol]":return du?Object(Gu.call(r)):{}}}function Ur(n){var t=n?n.length:Z;return xe(t)&&(Do(n)||Ee(n)||_e(n))?j(t,String):null}function zr(n,t,r){if(!je(r))return false;var e=typeof t;return("number"==e?ge(r)&&U(t,r.length):"string"==e&&t in r)?he(r[t],n):false}function Mr(n,t){
|
||||
return typeof n=="number"?true:!Do(n)&&(rn.test(n)||!tn.test(n)||null!=t&&n in Object(t))}function Lr(n){var t=typeof n;return"number"==t||"boolean"==t||"string"==t&&"__proto__"!=n||null==n}function $r(n){var t=Or(n),r=yn[t];return typeof r=="function"&&t in An.prototype?n===r?true:(t=ro(r),!!t&&n===t[0]):false}function Fr(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||fu)}function Nr(n,t,r,e,u,o){return je(n)&&je(t)&&(o.set(t,n),St(n,t,Z,Nr,o)),n}function Dr(n,t){return 1==t.length?n:Le(n,Ft(t,0,-1));
|
||||
}function Zr(n){var t=[];return Me(n).replace(en,function(n,r,e,u){t.push(e?u.replace(ln,"$1"):r||n)}),t}function qr(n){if(n instanceof An)return n.clone();var t=new wn(n.__wrapped__,n.__chain__);return t.__actions__=Xt(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}function Pr(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Be(t),Ft(n,0>t?0:t,e)):[]}function Tr(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Be(t),t=e-t,Ft(n,0,0>t?0:t)):[]}function Kr(n){return n?n[0]:Z}function Gr(n){
|
||||
var t=n?n.length:0;return t?n[t-1]:Z}function Vr(n,t){return n&&n.length&&t&&t.length?zt(n,t):n}function Jr(n){return n?Lu.call(n):n}function Yr(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){return ve(n)?(t=Cu(n.length,t),true):void 0}),j(t,function(t){return a(n,Ct(t))})}function Hr(n,t){if(!n||!n.length)return[];var e=Yr(n);return null==t?e:a(e,function(n){return r(t,Z,n)})}function Qr(n){return n=yn(n),n.__chain__=true,n}function Xr(n,t){return t(n)}function ne(){return this}function te(n,t){
|
||||
return typeof t=="function"&&Do(n)?u(n,t):Yu(n,tt(t))}function re(n,t){var r;if(typeof t=="function"&&Do(n)){for(r=n.length;r--&&false!==t(n[r],r,n););r=n}else r=Hu(n,tt(t));return r}function ee(n,t){return(Do(n)?a:kt)(n,kr(t,3))}function ue(n,t){var r=-1,e=We(n),u=e.length,o=u-1;for(t=et(Be(t),0,u);++r<t;){var u=Lt(r,o),i=e[u];e[u]=e[r],e[r]=i}return e.length=t,e}function oe(n,t,r){return t=r?Z:t,t=n&&null==t?n.length:t,jr(n,128,Z,Z,Z,Z,t)}function ie(n,t){var r;if(typeof t!="function")throw new ou("Expected a function");
|
||||
return n=Be(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=Z),r}}function fe(n,t,r){return t=r?Z:t,n=jr(n,8,Z,Z,Z,Z,Z,t),n.placeholder=yn.placeholder||fe.placeholder,n}function ce(n,t,r){return t=r?Z:t,n=jr(n,16,Z,Z,Z,Z,Z,t),n.placeholder=yn.placeholder||ce.placeholder,n}function ae(n,t,r){function e(){p&&bu(p),a&&bu(a),g=0,c=a=h=p=_=Z}function u(t,r){r&&bu(r),a=p=_=Z,t&&(g=Bo(),l=n.apply(h,c),p||a||(c=h=Z))}function o(){var n=t-(Bo()-s);0>=n||n>t?u(_,a):p=ku(o,n)}function i(){u(y,p);
|
||||
}function f(){if(c=arguments,s=Bo(),h=this,_=y&&(p||!v),false===d)var r=v&&!p;else{g||a||v||(g=s);var e=d-(s-g),u=(0>=e||e>d)&&(v||a);u?(a&&(a=bu(a)),g=s,l=n.apply(h,c)):a||(a=ku(i,e))}return u&&p?p=bu(p):p||t===d||(p=ku(o,t)),r&&(u=true,l=n.apply(h,c)),!u||p||a||(c=h=Z),l}var c,a,l,s,h,p,_,g=0,v=false,d=false,y=true;if(typeof n!="function")throw new ou("Expected a function");return t=Ue(t)||0,je(r)&&(v=!!r.leading,d="maxWait"in r&&Cu(Ue(r.maxWait)||0,t),y="trailing"in r?!!r.trailing:y),f.cancel=e,f.flush=function(){
|
||||
return(p&&_||a&&y)&&(l=n.apply(h,c)),e(),l},f}function le(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=n.apply(this,e),r.cache=o.set(u,e),e)}if(typeof n!="function"||t&&typeof t!="function")throw new ou("Expected a function");return r.cache=new le.Cache,r}function se(n,t){if(typeof n!="function")throw new ou("Expected a function");return t=Cu(t===Z?n.length-1:Be(t),0),function(){for(var e=arguments,u=-1,o=Cu(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];
|
||||
switch(t){case 0:return n.call(this,i);case 1:return n.call(this,e[0],i);case 2:return n.call(this,e[0],e[1],i)}for(o=Array(t+1),u=-1;++u<t;)o[u]=e[u];return o[t]=i,r(n,this,o)}}function he(n,t){return n===t||n!==n&&t!==t}function pe(n,t){return n>t}function _e(n){return ve(n)&&au.call(n,"callee")&&(!Ou.call(n,"callee")||"[object Arguments]"==hu.call(n))}function ge(n){return null!=n&&!(typeof n=="function"&&ye(n))&&xe(eo(n))}function ve(n){return me(n)&&ge(n)}function de(n){if(!me(n))return false;var t=n.constructor;
|
||||
return"[object Error]"==hu.call(n)||typeof t=="function"&&"[object Error]"==hu.call(t.prototype)}function ye(n){return n=je(n)?hu.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function be(n){return typeof n=="number"&&n==Be(n)}function xe(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function je(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function me(n){return!!n&&typeof n=="object"}function we(n){return null==n?false:ye(n)?_u.test(cu.call(n)):me(n)&&(C(n)?_u:vn).test(n);
|
||||
}function Ae(n){return typeof n=="number"||me(n)&&"[object Number]"==hu.call(n)}function Oe(n){if(!me(n)||"[object Object]"!=hu.call(n)||C(n))return false;var t=fu;return typeof n.constructor=="function"&&(t=ju(n)),null===t?true:(n=t.constructor,typeof n=="function"&&n instanceof n&&cu.call(n)==su)}function ke(n){return je(n)&&"[object RegExp]"==hu.call(n)}function Ee(n){return typeof n=="string"||!Do(n)&&me(n)&&"[object String]"==hu.call(n)}function Ie(n){return typeof n=="symbol"||me(n)&&"[object Symbol]"==hu.call(n);
|
||||
}function Se(n){return me(n)&&xe(n.length)&&!!Bn[hu.call(n)]}function Re(n,t){return t>n}function We(n){if(!n)return[];if(ge(n))return Ee(n)?n.match(kn):Xt(n);if(wu&&n[wu])return z(n[wu]());var t=Sr(n);return("[object Map]"==t?M:"[object Set]"==t?$:qe)(n)}function Be(n){if(!n)return 0===n?n:0;if(n=Ue(n),n===q||n===-q)return 1.7976931348623157e308*(0>n?-1:1);var t=n%1;return n===n?t?n-t:n:0}function Ce(n){return n?et(Be(n),0,4294967295):0}function Ue(n){if(je(n)&&(n=ye(n.valueOf)?n.valueOf():n,n=je(n)?n+"":n),
|
||||
typeof n!="string")return 0===n?n:+n;n=n.replace(fn,"");var t=gn.test(n);return t||dn.test(n)?Nn(n.slice(2),t?2:8):_n.test(n)?P:+n}function ze(n){return nr(n,De(n))}function Me(n){if(typeof n=="string")return n;if(null==n)return"";if(Ie(n))return du?Vu.call(n):"";var t=n+"";return"0"==t&&1/n==-q?"-0":t}function Le(n,t,r){return n=null==n?Z:vt(n,t),n===Z?r:n}function $e(n,t){return Rr(n,t,dt)}function Fe(n,t){return Rr(n,t,yt)}function Ne(n){var t=Fr(n);if(!t&&!ge(n))return Bu(Object(n));var r,e=Ur(n),u=!!e,e=e||[],o=e.length;
|
||||
for(r in n)!dt(n,r)||u&&("length"==r||U(r,o))||t&&"constructor"==r||e.push(r);return e}function De(n){for(var t=-1,r=Fr(n),e=Ot(n),u=e.length,o=Ur(n),i=!!o,o=o||[],f=o.length;++t<u;){var c=e[t];i&&("length"==c||U(c,f))||"constructor"==c&&(r||!au.call(n,c))||o.push(c)}return o}function Ze(n){return m(n,Ne(n))}function qe(n){return n?A(n,Ne(n)):[]}function Pe(n){return fi(Me(n).toLowerCase())}function Te(n){return(n=Me(n))&&n.replace(bn,S).replace(On,"")}function Ke(n,t){n=Me(n),t=Be(t);var r="";if(!n||1>t||t>9007199254740991)return r;
|
||||
do t%2&&(r+=n),t=Su(t/2),n+=n;while(t);return r}function Ge(n,t,r){return n=Me(n),t=r?Z:t,t===Z&&(t=Rn.test(n)?Sn:In),n.match(t)||[]}function Ve(n){return function(){return n}}function Je(n){return n}function Ye(n){return At(typeof n=="function"?n:ut(n,true))}function He(n,t,r){var e=Ne(t),o=gt(t,e);null!=r||je(t)&&(o.length||!e.length)||(r=t,t=n,n=this,o=gt(t,Ne(t)));var i=je(r)&&"chain"in r?r.chain:true,f=ye(n);return u(o,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;
|
||||
if(i||t){var r=n(this.__wrapped__);return(r.__actions__=Xt(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,l([this.value()],arguments))})}),n}function Qe(){}function Xe(n){return Mr(n)?Ct(n):Ut(n)}function nu(n){return n&&n.length?x(n,Je):0}E=E?Vn.defaults({},E,Vn.pick(Gn,Wn)):Gn;var tu=E.Date,ru=E.Error,eu=E.Math,uu=E.RegExp,ou=E.TypeError,iu=E.Array.prototype,fu=E.Object.prototype,cu=E.Function.prototype.toString,au=fu.hasOwnProperty,lu=0,su=cu.call(Object),hu=fu.toString,pu=Gn._,_u=uu("^"+cu.call(au).replace(un,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),gu=qn?E.Buffer:Z,vu=E.Reflect,du=E.Symbol,yu=E.Uint8Array,bu=E.clearTimeout,xu=vu?vu.f:Z,ju=Object.getPrototypeOf,mu=Object.getOwnPropertySymbols,wu=typeof(wu=du&&du.iterator)=="symbol"?wu:Z,Au=Object.create,Ou=fu.propertyIsEnumerable,ku=E.setTimeout,Eu=iu.splice,Iu=eu.ceil,Su=eu.floor,Ru=E.isFinite,Wu=iu.join,Bu=Object.keys,Cu=eu.max,Uu=eu.min,zu=E.parseInt,Mu=eu.random,Lu=iu.reverse,$u=Ir(E,"Map"),Fu=Ir(E,"Set"),Nu=Ir(E,"WeakMap"),Du=Ir(Object,"create"),Zu=Nu&&new Nu,qu=$u?cu.call($u):"",Pu=Fu?cu.call(Fu):"",Tu=Nu?cu.call(Nu):"",Ku=du?du.prototype:Z,Gu=du?Ku.valueOf:Z,Vu=du?Ku.toString:Z,Ju={};
|
||||
yn.templateSettings={escape:Q,evaluate:X,interpolate:nn,variable:"",imports:{_:yn}};var Yu=or(pt),Hu=or(_t,true),Qu=ir(),Xu=ir(true);xu&&!Ou.call({valueOf:1},"valueOf")&&(Ot=function(n){return z(xu(n))});var no=Zu?function(n,t){return Zu.set(n,t),n}:Je,to=Fu&&2===new Fu([1,2]).size?function(n){return new Fu(n)}:Qe,ro=Zu?function(n){return Zu.get(n)}:Qe,eo=Ct("length"),uo=mu||function(){return[]};($u&&"[object Map]"!=Sr(new $u)||Fu&&"[object Set]"!=Sr(new Fu)||Nu&&"[object WeakMap]"!=Sr(new Nu))&&(Sr=function(n){
|
||||
var t=hu.call(n);if(n="[object Object]"==t?n.constructor:null,n=typeof n=="function"?cu.call(n):"")switch(n){case qu:return"[object Map]";case Pu:return"[object Set]";case Tu:return"[object WeakMap]"}return t});var oo=function(){var n=0,t=0;return function(r,e){var u=Bo(),o=16-(u-t);if(t=u,o>0){if(150<=++n)return r}else n=0;return no(r,e)}}(),io=se(function(n,t){Do(n)||(n=null==n?[]:[Object(n)]),t=st(t,1);for(var r=n,e=t,u=-1,o=r.length,i=-1,f=e.length,c=Array(o+f);++u<o;)c[u]=r[u];for(;++i<f;)c[u++]=e[i];
|
||||
return c}),fo=se(function(n,t){return ve(n)?ct(n,st(t,1,true)):[]}),co=se(function(n,t){var r=Gr(t);return ve(r)&&(r=Z),ve(n)?ct(n,st(t,1,true),kr(r)):[]}),ao=se(function(n,t){var r=Gr(t);return ve(r)&&(r=Z),ve(n)?ct(n,st(t,1,true),Z,r):[]}),lo=se(function(n){var t=a(n,nt);return t.length&&t[0]===n[0]?bt(t):[]}),so=se(function(n){var t=Gr(n),r=a(n,nt);return t===Gr(r)?t=Z:r.pop(),r.length&&r[0]===n[0]?bt(r,kr(t)):[]}),ho=se(function(n){var t=Gr(n),r=a(n,nt);return t===Gr(r)?t=Z:r.pop(),r.length&&r[0]===n[0]?bt(r,Z,t):[];
|
||||
}),po=se(Vr),_o=se(function(n,t){t=a(st(t,1),String);var r=Xn(n,t);return Mt(n,t.sort(I)),r}),go=se(function(n){return Pt(st(n,1,true))}),vo=se(function(n){var t=Gr(n);return ve(t)&&(t=Z),Pt(st(n,1,true),kr(t))}),yo=se(function(n){var t=Gr(n);return ve(t)&&(t=Z),Pt(st(n,1,true),Z,t)}),bo=se(function(n,t){return ve(n)?ct(n,t):[]}),xo=se(function(n){return Gt(i(n,ve))}),jo=se(function(n){var t=Gr(n);return ve(t)&&(t=Z),Gt(i(n,ve),kr(t))}),mo=se(function(n){var t=Gr(n);return ve(t)&&(t=Z),Gt(i(n,ve),Z,t)}),wo=se(Yr),Ao=se(function(n){
|
||||
var t=n.length,t=t>1?n[t-1]:Z,t=typeof t=="function"?(n.pop(),t):Z;return Hr(n,t)}),Oo=se(function(n){function t(t){return Xn(t,n)}n=st(n,1);var r=n.length,e=r?n[0]:0,u=this.__wrapped__;return 1>=r&&!this.__actions__.length&&u instanceof An&&U(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:Xr,args:[t],thisArg:Z}),new wn(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(Z),n})):this.thru(t)}),ko=er(function(n,t,r){au.call(n,r)?++n[r]:n[r]=1}),Eo=er(function(n,t,r){au.call(n,r)?n[r].push(t):n[r]=[t];
|
||||
}),Io=se(function(n,t,e){var u=-1,o=typeof t=="function",i=Mr(t),f=ge(n)?Array(n.length):[];return Yu(n,function(n){var c=o?t:i&&null!=n?n[t]:Z;f[++u]=c?r(c,n,e):jt(n,t,e)}),f}),So=er(function(n,t,r){n[r]=t}),Ro=er(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),Wo=se(function(n,t){if(null==n)return[];var r=t.length;return r>1&&zr(n,t[0],t[1])?t=[]:r>2&&zr(t[0],t[1],t[2])&&(t.length=1),Rt(n,st(t,1),[])}),Bo=tu.now,Co=se(function(n,t,r){var e=1;if(r.length)var u=L(r,yn.placeholder||Co.placeholder),e=32|e;
|
||||
return jr(n,e,t,r,u)}),Uo=se(function(n,t,r){var e=3;if(r.length)var u=L(r,yn.placeholder||Uo.placeholder),e=32|e;return jr(t,e,n,r,u)}),zo=se(function(n,t){return ft(n,1,t)}),Mo=se(function(n,t,r){return ft(n,Ue(t)||0,r)}),Lo=se(function(n,t){t=a(st(t,1),kr());var e=t.length;return se(function(u){for(var o=-1,i=Uu(u.length,e);++o<i;)u[o]=t[o].call(this,u[o]);return r(n,this,u)})}),$o=se(function(n,t){var r=L(t,yn.placeholder||$o.placeholder);return jr(n,32,Z,t,r)}),Fo=se(function(n,t){var r=L(t,yn.placeholder||Fo.placeholder);
|
||||
return jr(n,64,Z,t,r)}),No=se(function(n,t){return jr(n,256,Z,Z,Z,st(t,1))}),Do=Array.isArray,Zo=gu?function(n){return n instanceof gu}:Ve(false),qo=ur(function(n,t){nr(t,Ne(t),n)}),Po=ur(function(n,t){nr(t,De(t),n)}),To=ur(function(n,t,r,e){tr(t,De(t),n,e)}),Ko=ur(function(n,t,r,e){tr(t,Ne(t),n,e)}),Go=se(function(n,t){return Xn(n,st(t,1))}),Vo=se(function(n){return n.push(Z,Kn),r(To,Z,n)}),Jo=se(function(n){return n.push(Z,Nr),r(ni,Z,n)}),Yo=_r(function(n,t,r){n[t]=r},Ve(Je)),Ho=_r(function(n,t,r){
|
||||
au.call(n,t)?n[t].push(r):n[t]=[r]},kr),Qo=se(jt),Xo=ur(function(n,t,r){St(n,t,r)}),ni=ur(function(n,t,r,e){St(n,t,r,e)}),ti=se(function(n,t){return null==n?{}:(t=a(st(t,1),String),Wt(n,ct(De(n),t)))}),ri=se(function(n,t){return null==n?{}:Wt(n,st(t,1))}),ei=ar(function(n,t,r){return t=t.toLowerCase(),n+(r?Pe(t):t)}),ui=ar(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),oi=ar(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),ii=cr("toLowerCase"),fi=cr("toUpperCase"),ci=ar(function(n,t,r){
|
||||
return n+(r?"_":"")+t.toLowerCase()}),ai=ar(function(n,t,r){return n+(r?" ":"")+Pe(t)}),li=ar(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),si=se(function(n,t){try{return r(n,Z,t)}catch(e){return de(e)?e:new ru(e)}}),hi=se(function(n,t){return u(st(t,1),function(t){n[t]=Co(n[t],n)}),n}),pi=hr(),_i=hr(true),gi=se(function(n,t){return function(r){return jt(r,n,t)}}),vi=se(function(n,t){return function(r){return jt(n,r,t)}}),di=gr(a),yi=gr(o),bi=gr(p),xi=yr(),ji=yr(true),mi=xr("ceil"),wi=xr("floor"),Ai=xr("round");
|
||||
return yn.prototype=mn.prototype,wn.prototype=it(mn.prototype),wn.prototype.constructor=wn,An.prototype=it(mn.prototype),An.prototype.constructor=An,Un.prototype=Du?Du(null):fu,zn.prototype.clear=function(){this.__data__={hash:new Un,map:$u?new $u:[],string:new Un}},zn.prototype["delete"]=function(n){var t=this.__data__;return Lr(n)?(t=typeof n=="string"?t.string:t.hash,n=(Du?t[n]!==Z:au.call(t,n))&&delete t[n]):n=$u?t.map["delete"](n):Dn(t.map,n),n},zn.prototype.get=function(n){var t=this.__data__;
|
||||
return Lr(n)?(t=typeof n=="string"?t.string:t.hash,Du?(n=t[n],n="__lodash_hash_undefined__"===n?Z:n):n=au.call(t,n)?t[n]:Z):n=$u?t.map.get(n):Zn(t.map,n),n},zn.prototype.has=function(n){var t=this.__data__;return Lr(n)?(t=typeof n=="string"?t.string:t.hash,n=Du?t[n]!==Z:au.call(t,n)):n=$u?t.map.has(n):-1<Pn(t.map,n),n},zn.prototype.set=function(n,t){var r=this.__data__;return Lr(n)?(typeof n=="string"?r.string:r.hash)[n]=Du&&t===Z?"__lodash_hash_undefined__":t:$u?r.map.set(n,t):Tn(r.map,n,t),this;
|
||||
},Mn.prototype.push=function(n){var t=this.__data__;Lr(n)?(t=t.__data__,(typeof n=="string"?t.string:t.hash)[n]="__lodash_hash_undefined__"):t.set(n,"__lodash_hash_undefined__")},$n.prototype.clear=function(){this.__data__={array:[],map:null}},$n.prototype["delete"]=function(n){var t=this.__data__,r=t.array;return r?Dn(r,n):t.map["delete"](n)},$n.prototype.get=function(n){var t=this.__data__,r=t.array;return r?Zn(r,n):t.map.get(n)},$n.prototype.has=function(n){var t=this.__data__,r=t.array;return r?-1<Pn(r,n):t.map.has(n);
|
||||
},$n.prototype.set=function(n,t){var r=this.__data__,e=r.array;return e&&(199>e.length?Tn(e,n,t):(r.array=null,r.map=new zn(e))),(r=r.map)&&r.set(n,t),this},le.Cache=zn,yn.after=function(n,t){if(typeof t!="function")throw new ou("Expected a function");return n=Be(n),function(){return 1>--n?t.apply(this,arguments):void 0}},yn.ary=oe,yn.assign=qo,yn.assignIn=Po,yn.assignInWith=To,yn.assignWith=Ko,yn.at=Go,yn.before=ie,yn.bind=Co,yn.bindAll=hi,yn.bindKey=Uo,yn.castArray=function(){if(!arguments.length)return[];
|
||||
var n=arguments[0];return Do(n)?n:[n]},yn.chain=Qr,yn.chunk=function(n,t){t=Cu(Be(t),0);var r=n?n.length:0;if(!r||1>t)return[];for(var e=0,u=-1,o=Array(Iu(r/t));r>e;)o[++u]=Ft(n,e,e+=t);return o},yn.compact=function(n){for(var t=-1,r=n?n.length:0,e=-1,u=[];++t<r;){var o=n[t];o&&(u[++e]=o)}return u},yn.concat=io,yn.cond=function(n){var t=n?n.length:0,e=kr();return n=t?a(n,function(n){if("function"!=typeof n[1])throw new ou("Expected a function");return[e(n[0]),n[1]]}):[],se(function(e){for(var u=-1;++u<t;){
|
||||
var o=n[u];if(r(o[0],this,e))return r(o[1],this,e)}})},yn.conforms=function(n){return ot(ut(n,true))},yn.constant=Ve,yn.countBy=ko,yn.create=function(n,t){var r=it(n);return t?Qn(r,t):r},yn.curry=fe,yn.curryRight=ce,yn.debounce=ae,yn.defaults=Vo,yn.defaultsDeep=Jo,yn.defer=zo,yn.delay=Mo,yn.difference=fo,yn.differenceBy=co,yn.differenceWith=ao,yn.drop=Pr,yn.dropRight=Tr,yn.dropRightWhile=function(n,t){return n&&n.length?Tt(n,kr(t,3),true,true):[]},yn.dropWhile=function(n,t){return n&&n.length?Tt(n,kr(t,3),true):[];
|
||||
},yn.fill=function(n,t,r,e){var u=n?n.length:0;if(!u)return[];for(r&&typeof r!="number"&&zr(n,t,r)&&(r=0,e=u),u=n.length,r=Be(r),0>r&&(r=-r>u?0:u+r),e=e===Z||e>u?u:Be(e),0>e&&(e+=u),e=r>e?0:Ce(e);e>r;)n[r++]=t;return n},yn.filter=function(n,t){return(Do(n)?i:lt)(n,kr(t,3))},yn.flatMap=function(n,t){return st(ee(n,t),1)},yn.flatten=function(n){return n&&n.length?st(n,1):[]},yn.flattenDeep=function(n){return n&&n.length?st(n,q):[]},yn.flattenDepth=function(n,t){return n&&n.length?(t=t===Z?1:Be(t),st(n,t)):[];
|
||||
},yn.flip=function(n){return jr(n,512)},yn.flow=pi,yn.flowRight=_i,yn.fromPairs=function(n){for(var t=-1,r=n?n.length:0,e={};++t<r;){var u=n[t];e[u[0]]=u[1]}return e},yn.functions=function(n){return null==n?[]:gt(n,Ne(n))},yn.functionsIn=function(n){return null==n?[]:gt(n,De(n))},yn.groupBy=Eo,yn.initial=function(n){return Tr(n,1)},yn.intersection=lo,yn.intersectionBy=so,yn.intersectionWith=ho,yn.invert=Yo,yn.invertBy=Ho,yn.invokeMap=Io,yn.iteratee=Ye,yn.keyBy=So,yn.keys=Ne,yn.keysIn=De,yn.map=ee,
|
||||
yn.mapKeys=function(n,t){var r={};return t=kr(t,3),pt(n,function(n,e,u){r[t(n,e,u)]=n}),r},yn.mapValues=function(n,t){var r={};return t=kr(t,3),pt(n,function(n,e,u){r[e]=t(n,e,u)}),r},yn.matches=function(n){return Et(ut(n,true))},yn.matchesProperty=function(n,t){return It(n,ut(t,true))},yn.memoize=le,yn.merge=Xo,yn.mergeWith=ni,yn.method=gi,yn.methodOf=vi,yn.mixin=He,yn.negate=function(n){if(typeof n!="function")throw new ou("Expected a function");return function(){return!n.apply(this,arguments)}},yn.nthArg=function(n){
|
||||
return n=Be(n),function(){return arguments[n]}},yn.omit=ti,yn.omitBy=function(n,t){return t=kr(t,2),Bt(n,function(n,r){return!t(n,r)})},yn.once=function(n){return ie(2,n)},yn.orderBy=function(n,t,r,e){return null==n?[]:(Do(t)||(t=null==t?[]:[t]),r=e?Z:r,Do(r)||(r=null==r?[]:[r]),Rt(n,t,r))},yn.over=di,yn.overArgs=Lo,yn.overEvery=yi,yn.overSome=bi,yn.partial=$o,yn.partialRight=Fo,yn.partition=Ro,yn.pick=ri,yn.pickBy=function(n,t){return null==n?{}:Bt(n,kr(t,2))},yn.property=Xe,yn.propertyOf=function(n){
|
||||
return function(t){return null==n?Z:vt(n,t)}},yn.pull=po,yn.pullAll=Vr,yn.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?zt(n,t,kr(r)):n},yn.pullAt=_o,yn.range=xi,yn.rangeRight=ji,yn.rearg=No,yn.reject=function(n,t){var r=Do(n)?i:lt;return t=kr(t,3),r(n,function(n,r,e){return!t(n,r,e)})},yn.remove=function(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],o=n.length;for(t=kr(t,3);++e<o;){var i=n[e];t(i,e,n)&&(r.push(i),u.push(e))}return Mt(n,u),r},yn.rest=se,yn.reverse=Jr,yn.sampleSize=ue,
|
||||
yn.set=function(n,t,r){return null==n?n:$t(n,t,r)},yn.setWith=function(n,t,r,e){return e=typeof e=="function"?e:Z,null==n?n:$t(n,t,r,e)},yn.shuffle=function(n){return ue(n,4294967295)},yn.slice=function(n,t,r){var e=n?n.length:0;return e?(r&&typeof r!="number"&&zr(n,t,r)?(t=0,r=e):(t=null==t?0:Be(t),r=r===Z?e:Be(r)),Ft(n,t,r)):[]},yn.sortBy=Wo,yn.sortedUniq=function(n){return n&&n.length?qt(n):[]},yn.sortedUniqBy=function(n,t){return n&&n.length?qt(n,kr(t)):[]},yn.split=function(n,t,r){return Me(n).split(t,r);
|
||||
},yn.spread=function(n,t){if(typeof n!="function")throw new ou("Expected a function");return t=t===Z?0:Cu(Be(t),0),se(function(e){var u=e[t];return e=e.slice(0,t),u&&l(e,u),r(n,this,e)})},yn.tail=function(n){return Pr(n,1)},yn.take=function(n,t,r){return n&&n.length?(t=r||t===Z?1:Be(t),Ft(n,0,0>t?0:t)):[]},yn.takeRight=function(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Be(t),t=e-t,Ft(n,0>t?0:t,e)):[]},yn.takeRightWhile=function(n,t){return n&&n.length?Tt(n,kr(t,3),false,true):[]},yn.takeWhile=function(n,t){
|
||||
return n&&n.length?Tt(n,kr(t,3)):[]},yn.tap=function(n,t){return t(n),n},yn.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ou("Expected a function");return je(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ae(n,t,{leading:e,maxWait:t,trailing:u})},yn.thru=Xr,yn.toArray=We,yn.toPairs=Ze,yn.toPairsIn=function(n){return m(n,De(n))},yn.toPath=function(n){return Do(n)?a(n,String):Zr(n)},yn.toPlainObject=ze,yn.transform=function(n,t,r){var e=Do(n)||Se(n);if(t=kr(t,4),
|
||||
null==r)if(e||je(n)){var o=n.constructor;r=e?Do(n)?new o:[]:it(ye(o)?o.prototype:Z)}else r={};return(e?u:pt)(n,function(n,e,u){return t(r,n,e,u)}),r},yn.unary=function(n){return oe(n,1)},yn.union=go,yn.unionBy=vo,yn.unionWith=yo,yn.uniq=function(n){return n&&n.length?Pt(n):[]},yn.uniqBy=function(n,t){return n&&n.length?Pt(n,kr(t)):[]},yn.uniqWith=function(n,t){return n&&n.length?Pt(n,Z,t):[]},yn.unset=function(n,t){var r;if(null==n)r=true;else{r=n;var e=t,e=Mr(e,r)?[e+""]:rt(e);r=Dr(r,e),e=Gr(e),r=null!=r&&$e(r,e)?delete r[e]:true;
|
||||
}return r},yn.unzip=Yr,yn.unzipWith=Hr,yn.values=qe,yn.valuesIn=function(n){return null==n?[]:A(n,De(n))},yn.without=bo,yn.words=Ge,yn.wrap=function(n,t){return t=null==t?Je:t,$o(t,n)},yn.xor=xo,yn.xorBy=jo,yn.xorWith=mo,yn.zip=wo,yn.zipObject=function(n,t){return Vt(n||[],t||[],Yn)},yn.zipObjectDeep=function(n,t){return Vt(n||[],t||[],$t)},yn.zipWith=Ao,yn.extend=Po,yn.extendWith=To,He(yn,yn),yn.add=function(n,t){var r;return n===Z&&t===Z?0:(n!==Z&&(r=n),t!==Z&&(r=r===Z?t:r+t),r)},yn.attempt=si,
|
||||
yn.camelCase=ei,yn.capitalize=Pe,yn.ceil=mi,yn.clamp=function(n,t,r){return r===Z&&(r=t,t=Z),r!==Z&&(r=Ue(r),r=r===r?r:0),t!==Z&&(t=Ue(t),t=t===t?t:0),et(Ue(n),t,r)},yn.clone=function(n){return ut(n)},yn.cloneDeep=function(n){return ut(n,true)},yn.cloneDeepWith=function(n,t){return ut(n,true,t)},yn.cloneWith=function(n,t){return ut(n,false,t)},yn.deburr=Te,yn.endsWith=function(n,t,r){n=Me(n),t=typeof t=="string"?t:t+"";var e=n.length;return r=r===Z?e:et(Be(r),0,e),r-=t.length,r>=0&&n.indexOf(t,r)==r},yn.eq=he,
|
||||
yn.escape=function(n){return(n=Me(n))&&H.test(n)?n.replace(J,R):n},yn.escapeRegExp=function(n){return(n=Me(n))&&on.test(n)?n.replace(un,"\\$&"):n},yn.every=function(n,t,r){var e=Do(n)?o:at;return r&&zr(n,t,r)&&(t=Z),e(n,kr(t,3))},yn.find=function(n,t){if(t=kr(t,3),Do(n)){var r=v(n,t);return r>-1?n[r]:Z}return g(n,t,Yu)},yn.findIndex=function(n,t){return n&&n.length?v(n,kr(t,3)):-1},yn.findKey=function(n,t){return g(n,kr(t,3),pt,true)},yn.findLast=function(n,t){if(t=kr(t,3),Do(n)){var r=v(n,t,true);return r>-1?n[r]:Z;
|
||||
}return g(n,t,Hu)},yn.findLastIndex=function(n,t){return n&&n.length?v(n,kr(t,3),true):-1},yn.findLastKey=function(n,t){return g(n,kr(t,3),_t,true)},yn.floor=wi,yn.forEach=te,yn.forEachRight=re,yn.forIn=function(n,t){return null==n?n:Qu(n,tt(t),De)},yn.forInRight=function(n,t){return null==n?n:Xu(n,tt(t),De)},yn.forOwn=function(n,t){return n&&pt(n,tt(t))},yn.forOwnRight=function(n,t){return n&&_t(n,tt(t))},yn.get=Le,yn.gt=pe,yn.gte=function(n,t){return n>=t},yn.has=$e,yn.hasIn=Fe,yn.head=Kr,yn.identity=Je,
|
||||
yn.includes=function(n,t,r,e){return n=ge(n)?n:qe(n),r=r&&!e?Be(r):0,e=n.length,0>r&&(r=Cu(e+r,0)),Ee(n)?e>=r&&-1<n.indexOf(t,r):!!e&&-1<d(n,t,r)},yn.indexOf=function(n,t,r){var e=n?n.length:0;return e?(r=Be(r),0>r&&(r=Cu(e+r,0)),d(n,t,r)):-1},yn.inRange=function(n,t,r){return t=Ue(t)||0,r===Z?(r=t,t=0):r=Ue(r)||0,n=Ue(n),n>=Uu(t,r)&&n<Cu(t,r)},yn.invoke=Qo,yn.isArguments=_e,yn.isArray=Do,yn.isArrayBuffer=function(n){return me(n)&&"[object ArrayBuffer]"==hu.call(n)},yn.isArrayLike=ge,yn.isArrayLikeObject=ve,
|
||||
yn.isBoolean=function(n){return true===n||false===n||me(n)&&"[object Boolean]"==hu.call(n)},yn.isBuffer=Zo,yn.isDate=function(n){return me(n)&&"[object Date]"==hu.call(n)},yn.isElement=function(n){return!!n&&1===n.nodeType&&me(n)&&!Oe(n)},yn.isEmpty=function(n){if(ge(n)&&(Do(n)||Ee(n)||ye(n.splice)||_e(n)))return!n.length;for(var t in n)if(au.call(n,t))return false;return true},yn.isEqual=function(n,t){return mt(n,t)},yn.isEqualWith=function(n,t,r){var e=(r=typeof r=="function"?r:Z)?r(n,t):Z;return e===Z?mt(n,t,r):!!e;
|
||||
},yn.isError=de,yn.isFinite=function(n){return typeof n=="number"&&Ru(n)},yn.isFunction=ye,yn.isInteger=be,yn.isLength=xe,yn.isMap=function(n){return me(n)&&"[object Map]"==Sr(n)},yn.isMatch=function(n,t){return n===t||wt(n,t,Er(t))},yn.isMatchWith=function(n,t,r){return r=typeof r=="function"?r:Z,wt(n,t,Er(t),r)},yn.isNaN=function(n){return Ae(n)&&n!=+n},yn.isNative=we,yn.isNil=function(n){return null==n},yn.isNull=function(n){return null===n},yn.isNumber=Ae,yn.isObject=je,yn.isObjectLike=me,yn.isPlainObject=Oe,
|
||||
yn.isRegExp=ke,yn.isSafeInteger=function(n){return be(n)&&n>=-9007199254740991&&9007199254740991>=n},yn.isSet=function(n){return me(n)&&"[object Set]"==Sr(n)},yn.isString=Ee,yn.isSymbol=Ie,yn.isTypedArray=Se,yn.isUndefined=function(n){return n===Z},yn.isWeakMap=function(n){return me(n)&&"[object WeakMap]"==Sr(n)},yn.isWeakSet=function(n){return me(n)&&"[object WeakSet]"==hu.call(n)},yn.join=function(n,t){return n?Wu.call(n,t):""},yn.kebabCase=ui,yn.last=Gr,yn.lastIndexOf=function(n,t,r){var e=n?n.length:0;
|
||||
if(!e)return-1;var u=e;if(r!==Z&&(u=Be(r),u=(0>u?Cu(e+u,0):Uu(u,e-1))+1),t!==t)return B(n,u,true);for(;u--;)if(n[u]===t)return u;return-1},yn.lowerCase=oi,yn.lowerFirst=ii,yn.lt=Re,yn.lte=function(n,t){return t>=n},yn.max=function(n){return n&&n.length?_(n,Je,pe):Z},yn.maxBy=function(n,t){return n&&n.length?_(n,kr(t),pe):Z},yn.mean=function(n){return nu(n)/(n?n.length:0)},yn.min=function(n){return n&&n.length?_(n,Je,Re):Z},yn.minBy=function(n,t){return n&&n.length?_(n,kr(t),Re):Z},yn.noConflict=function(){
|
||||
return Gn._===this&&(Gn._=pu),this},yn.noop=Qe,yn.now=Bo,yn.pad=function(n,t,r){n=Me(n),t=Be(t);var e=F(n);return t&&t>e?(e=(t-e)/2,t=Su(e),e=Iu(e),vr("",t,r)+n+vr("",e,r)):n},yn.padEnd=function(n,t,r){return n=Me(n),n+vr(n,t,r)},yn.padStart=function(n,t,r){return n=Me(n),vr(n,t,r)+n},yn.parseInt=function(n,t,r){return r||null==t?t=0:t&&(t=+t),n=Me(n).replace(fn,""),zu(n,t||(pn.test(n)?16:10))},yn.random=function(n,t,r){if(r&&typeof r!="boolean"&&zr(n,t,r)&&(t=r=Z),r===Z&&(typeof t=="boolean"?(r=t,
|
||||
t=Z):typeof n=="boolean"&&(r=n,n=Z)),n===Z&&t===Z?(n=0,t=1):(n=Ue(n)||0,t===Z?(t=n,n=0):t=Ue(t)||0),n>t){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mu(),Uu(n+r*(t-n+Fn("1e-"+((r+"").length-1))),t)):Lt(n,t)},yn.reduce=function(n,t,r){var e=Do(n)?s:y,u=3>arguments.length;return e(n,kr(t,4),r,u,Yu)},yn.reduceRight=function(n,t,r){var e=Do(n)?h:y,u=3>arguments.length;return e(n,kr(t,4),r,u,Hu)},yn.repeat=Ke,yn.replace=function(){var n=arguments,t=Me(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},yn.result=function(n,t,r){
|
||||
if(Mr(t,n))e=null==n?Z:n[t];else{t=rt(t);var e=Le(n,t);n=Dr(n,t)}return e===Z&&(e=r),ye(e)?e.call(n):e},yn.round=Ai,yn.runInContext=D,yn.sample=function(n){n=ge(n)?n:qe(n);var t=n.length;return t>0?n[Lt(0,t-1)]:Z},yn.size=function(n){if(null==n)return 0;if(ge(n)){var t=n.length;return t&&Ee(n)?F(n):t}return Ne(n).length},yn.snakeCase=ci,yn.some=function(n,t,r){var e=Do(n)?p:Nt;return r&&zr(n,t,r)&&(t=Z),e(n,kr(t,3))},yn.sortedIndex=function(n,t){return Dt(n,t)},yn.sortedIndexBy=function(n,t,r){return Zt(n,t,kr(r));
|
||||
},yn.sortedIndexOf=function(n,t){var r=n?n.length:0;if(r){var e=Dt(n,t);if(r>e&&he(n[e],t))return e}return-1},yn.sortedLastIndex=function(n,t){return Dt(n,t,true)},yn.sortedLastIndexBy=function(n,t,r){return Zt(n,t,kr(r),true)},yn.sortedLastIndexOf=function(n,t){if(n&&n.length){var r=Dt(n,t,true)-1;if(he(n[r],t))return r}return-1},yn.startCase=ai,yn.startsWith=function(n,t,r){return n=Me(n),r=et(Be(r),0,n.length),n.lastIndexOf(t,r)==r},yn.subtract=function(n,t){var r;return n===Z&&t===Z?0:(n!==Z&&(r=n),
|
||||
t!==Z&&(r=r===Z?t:r-t),r)},yn.sum=nu,yn.sumBy=function(n,t){return n&&n.length?x(n,kr(t)):0},yn.template=function(n,t,r){var e=yn.templateSettings;r&&zr(n,t,r)&&(t=Z),n=Me(n),t=To({},t,e,Kn),r=To({},t.imports,e.imports,Kn);var u,o,i=Ne(r),f=A(r,i),c=0;r=t.interpolate||xn;var a="__p+='";r=uu((t.escape||xn).source+"|"+r.source+"|"+(r===nn?sn:xn).source+"|"+(t.evaluate||xn).source+"|$","g");var l="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,i,f,l){return e||(e=i),
|
||||
a+=n.slice(c,l).replace(jn,W),r&&(u=true,a+="'+__e("+r+")+'"),f&&(o=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=(o?a.replace(T,""):a).replace(K,"$1").replace(G,"$1;"),a="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",t=si(function(){return Function(i,l+"return "+a).apply(Z,f);
|
||||
}),t.source=a,de(t))throw t;return t},yn.times=function(n,t){if(n=Be(n),1>n||n>9007199254740991)return[];var r=4294967295,e=Uu(n,4294967295);for(t=tt(t),n-=4294967295,e=j(e,t);++r<n;)t(r);return e},yn.toInteger=Be,yn.toLength=Ce,yn.toLower=function(n){return Me(n).toLowerCase()},yn.toNumber=Ue,yn.toSafeInteger=function(n){return et(Be(n),-9007199254740991,9007199254740991)},yn.toString=Me,yn.toUpper=function(n){return Me(n).toUpperCase()},yn.trim=function(n,t,r){return(n=Me(n))?r||t===Z?n.replace(fn,""):(t+="")?(n=n.match(kn),
|
||||
t=t.match(kn),n.slice(O(n,t),k(n,t)+1).join("")):n:n},yn.trimEnd=function(n,t,r){return(n=Me(n))?r||t===Z?n.replace(an,""):(t+="")?(n=n.match(kn),n.slice(0,k(n,t.match(kn))+1).join("")):n:n},yn.trimStart=function(n,t,r){return(n=Me(n))?r||t===Z?n.replace(cn,""):(t+="")?(n=n.match(kn),n.slice(O(n,t.match(kn))).join("")):n:n},yn.truncate=function(n,t){var r=30,e="...";if(je(t))var u="separator"in t?t.separator:u,r="length"in t?Be(t.length):r,e="omission"in t?Me(t.omission):e;n=Me(n);var o=n.length;if(En.test(n))var i=n.match(kn),o=i.length;
|
||||
if(r>=o)return n;if(o=r-F(e),1>o)return e;if(r=i?i.slice(0,o).join(""):n.slice(0,o),u===Z)return r+e;if(i&&(o+=r.length-o),ke(u)){if(n.slice(o).search(u)){var f=r;for(u.global||(u=uu(u.source,Me(hn.exec(u))+"g")),u.lastIndex=0;i=u.exec(f);)var c=i.index;r=r.slice(0,c===Z?o:c)}}else n.indexOf(u,o)!=o&&(u=r.lastIndexOf(u),u>-1&&(r=r.slice(0,u)));return r+e},yn.unescape=function(n){return(n=Me(n))&&Y.test(n)?n.replace(V,N):n},yn.uniqueId=function(n){var t=++lu;return Me(n)+t},yn.upperCase=li,yn.upperFirst=fi,
|
||||
yn.each=te,yn.eachRight=re,yn.first=Kr,He(yn,function(){var n={};return pt(yn,function(t,r){au.call(yn.prototype,r)||(n[r]=t)}),n}(),{chain:false}),yn.VERSION="4.4.0",u("bind bindKey curry curryRight partial partialRight".split(" "),function(n){yn[n].placeholder=yn}),u(["drop","take"],function(n,t){An.prototype[n]=function(r){var e=this.__filtered__;if(e&&!t)return new An(this);r=r===Z?1:Cu(Be(r),0);var u=this.clone();return e?u.__takeCount__=Uu(r,u.__takeCount__):u.__views__.push({size:Uu(r,4294967295),
|
||||
type:n+(0>u.__dir__?"Right":"")}),u},An.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;An.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:kr(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),u(["head","last"],function(n,t){var r="take"+(t?"Right":"");An.prototype[n]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");
|
||||
An.prototype[n]=function(){return this.__filtered__?new An(this):this[r](1)}}),An.prototype.compact=function(){return this.filter(Je)},An.prototype.find=function(n){return this.filter(n).head()},An.prototype.findLast=function(n){return this.reverse().find(n)},An.prototype.invokeMap=se(function(n,t){return typeof n=="function"?new An(this):this.map(function(r){return jt(r,n,t)})}),An.prototype.reject=function(n){return n=kr(n,3),this.filter(function(t){return!n(t)})},An.prototype.slice=function(n,t){
|
||||
n=Be(n);var r=this;return r.__filtered__&&(n>0||0>t)?new An(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==Z&&(t=Be(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},An.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},An.prototype.toArray=function(){return this.take(4294967295)},pt(An.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=yn[e?"take"+("last"==t?"Right":""):t],o=e||/^find/.test(t);u&&(yn.prototype[t]=function(){
|
||||
function t(n){return n=u.apply(yn,l([n],f)),e&&h?n[0]:n}var i=this.__wrapped__,f=e?[1]:arguments,c=i instanceof An,a=f[0],s=c||Do(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 An(this),i=n.apply(i,f),i.__actions__.push({func:Xr,args:[t],thisArg:Z}),new wn(i,h)):a&&c?n.apply(this,f):(i=this.thru(t),a?e?i.value()[0]:i.value():i)})}),u("pop push shift sort splice unshift".split(" "),function(n){var t=iu[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);
|
||||
yn.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),pt(An.prototype,function(n,t){var r=yn[t];if(r){var e=r.name+"";(Ju[e]||(Ju[e]=[])).push({name:t,func:r})}}),Ju[pr(Z,2).name]=[{name:"wrapper",func:Z}],An.prototype.clone=function(){var n=new An(this.__wrapped__);return n.__actions__=Xt(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Xt(this.__iteratees__),n.__takeCount__=this.__takeCount__,
|
||||
n.__views__=Xt(this.__views__),n},An.prototype.reverse=function(){if(this.__filtered__){var n=new An(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},An.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=Do(t),u=0>r,o=e?t.length:0;n=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":n-=s;break;case"take":n=Uu(n,f+s);break;case"takeRight":f=Cu(f,n-s)}}if(n={start:f,
|
||||
end:n},i=n.start,f=n.end,n=f-i,u=u?f:i-1,i=this.__iteratees__,f=i.length,c=0,a=Uu(n,this.__takeCount__),!e||200>o||o==n&&a==n)return Kt(t,this.__actions__);e=[];n:for(;n--&&a>c;){for(u+=r,o=-1,l=t[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 n;break n}}e[c++]=l}return e},yn.prototype.at=Oo,yn.prototype.chain=function(){return Qr(this)},yn.prototype.commit=function(){return new wn(this.value(),this.__chain__)},yn.prototype.flatMap=function(n){return this.map(n).flatten();
|
||||
},yn.prototype.next=function(){this.__values__===Z&&(this.__values__=We(this.value()));var n=this.__index__>=this.__values__.length,t=n?Z:this.__values__[this.__index__++];return{done:n,value:t}},yn.prototype.plant=function(n){for(var t,r=this;r instanceof mn;){var e=qr(r);e.__index__=0,e.__values__=Z,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},yn.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof An?(this.__actions__.length&&(n=new An(this)),n=n.reverse(),
|
||||
n.__actions__.push({func:Xr,args:[Jr],thisArg:Z}),new wn(n,this.__chain__)):this.thru(Jr)},yn.prototype.toJSON=yn.prototype.valueOf=yn.prototype.value=function(){return Kt(this.__wrapped__,this.__actions__)},wu&&(yn.prototype[wu]=ne),yn}var Z,q=1/0,P=NaN,T=/\b__p\+='';/g,K=/\b(__p\+=)''\+/g,G=/(__e\(.*?\)|\b__t\))\+'';/g,V=/&(?:amp|lt|gt|quot|#39|#96);/g,J=/[&<>"'`]/g,Y=RegExp(V.source),H=RegExp(J.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,nn=/<%=([\s\S]+?)%>/g,tn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rn=/^\w*$/,en=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,un=/[\\^$.*+?()[\]{}|]/g,on=RegExp(un.source),fn=/^\s+|\s+$/g,cn=/^\s+/,an=/\s+$/,ln=/\\(\\)?/g,sn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,hn=/\w*$/,pn=/^0x/i,_n=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,vn=/^\[object .+?Constructor\]$/,dn=/^0o[0-7]+$/i,yn=/^(?:0|[1-9]\d*)$/,bn=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,xn=/($^)/,jn=/['\n\r\u2028\u2029\\]/g,mn="[\\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])?)*",wn="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,An="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",On=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),kn=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+An+mn,"g"),En=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),In=/[a-zA-Z0-9]+/g,Sn=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?=[\\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])+(?=[\\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])+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|\\d+",wn].join("|"),"g"),Rn=/[a-z][A-Z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Reflect RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={};
|
||||
Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=true,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=false;
|
||||
var Cn={};Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object Date]"]=Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object Symbol]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,
|
||||
Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object WeakMap]"]=false;var Un={"\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"},zn={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Mn={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Ln={"function":true,object:true},$n={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"
|
||||
},Fn=parseFloat,Nn=parseInt,Dn=Ln[typeof exports]&&exports&&!exports.nodeType?exports:Z,Zn=Ln[typeof module]&&module&&!module.nodeType?module:Z,qn=Zn&&Zn.exports===Dn?Dn:Z,Pn=E(Ln[typeof self]&&self),Tn=E(Ln[typeof window]&&window),Kn=E(Ln[typeof this]&&this),Gn=E(Dn&&Zn&&typeof global=="object"&&global)||Tn!==(Kn&&Kn.window)&&Tn||Pn||Kn||Function("return this")(),Vn=D();(Tn||Pn||{})._=Vn,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return Vn}):Dn&&Zn?(qn&&((Zn.exports=Vn)._=Vn),
|
||||
Dn._=Vn):Gn._=Vn}).call(this);
|
||||
;(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=t.length;r--&&false!==n(t[r],r,t););return t}function i(t,n){
|
||||
for(var r=-1,e=t.length;++r<e;)if(!n(t[r],r,t))return false;return true}function f(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 c(t,n){return!!t.length&&-1<d(t,n,0)}function a(t,n,r){for(var e=-1,u=t.length;++e<u;)if(r(n,t[e]))return true;return false}function l(t,n){for(var r=-1,e=t.length,u=Array(e);++r<e;)u[r]=n(t[r],r,t);return u}function s(t,n){for(var r=-1,e=n.length,u=t.length;++r<e;)t[u+r]=n[r];return t}function h(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 p(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 _(t,n){for(var r=-1,e=t.length;++r<e;)if(n(t[r],r,t))return true;return false}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?w(t,n)/r:V}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 w(t,n){for(var r,e=-1,u=t.length;++e<u;){var o=n(t[e]);o!==T&&(r=r===T?o:r+o)}return r}function m(t,n){for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);return e}function A(t,n){return l(n,function(n){return[n,t[n]]})}function O(t){return function(n){return t(n)}}function k(t,n){return l(n,function(n){
|
||||
return t[n]})}function E(t,n){return t.has(n)}function I(t,n){for(var r=-1,e=t.length;++r<e&&-1<d(n,t[r],0););return r}function S(t,n){for(var r=t.length;r--&&-1<d(n,t[r],0););return r}function R(t){return t&&t.Object===Object?t:null}function W(t){return zt[t]}function B(t){return Ut[t]}function L(t){return"\\"+$t[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 C(t){var n=false;if(null!=t&&typeof t.toString!="function")try{n=!!(t+"")}catch(r){}
|
||||
return n}function z(t){for(var n,r=[];!(n=t.next()).done;)r.push(n.value);return r}function U(t){var n=-1,r=Array(t.size);return t.forEach(function(t,e){r[++n]=[e,t]}),r}function D(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 F(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=t}),r}function $(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=[t,t]}),r}function N(t){
|
||||
if(!t||!Wt.test(t))return t.length;for(var n=St.lastIndex=0;St.test(t);)n++;return n}function P(t){return Dt[t]}function Z(R){function At(t){if(De(t)&&!ai(t)&&!(t instanceof zt)){if(t instanceof kt)return t;if(wu.call(t,"__wrapped__"))return ie(t)}return new kt(t)}function Ot(){}function kt(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=T}function zt(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],
|
||||
this.__takeCount__=4294967295,this.__views__=[]}function Ut(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 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 Ft(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 Ft;++n<r;)this.add(t[n])}function Zt(t){this.__data__=new Dt(t)}function Tt(t,n,r,e){return t===T||Se(t,bu[r])&&!wu.call(e,r)?n:t;
|
||||
}function Vt(t,n,r){(r===T||Se(t[n],r))&&(typeof n!="number"||r!==T||n in t)||(t[n]=r)}function Kt(t,n,r){var e=t[n];wu.call(t,n)&&Se(e,r)&&(r!==T||n in t)||(t[n]=r)}function Gt(t,n){for(var r=t.length;r--;)if(Se(t[r][0],n))return r;return-1}function Ht(t,n,r,e){return go(t,function(t,u,o){n(e,t,r(t),o)}),e}function Qt(t,n){return t&&ar(n,nu(n),t)}function Xt(t,n){for(var r=-1,e=null==t,u=n.length,o=Array(u);++r<u;)o[r]=e?T:Xe(t,n[r]);return o}function tn(t,n,r){return t===t&&(r!==T&&(t=r>=t?t:r),
|
||||
n!==T&&(t=t>=n?t:n)),t}function nn(t,n,r,e,o,i,f){var c;if(e&&(c=i?e(t,o,i,f):e(t)),c!==T)return c;if(!Ue(t))return t;if(o=ai(t)){if(c=Tr(t),!n)return cr(t,c)}else{var a=Pr(t),l="[object Function]"==a||"[object GeneratorFunction]"==a;if(li(t))return er(t,n);if("[object Object]"==a||"[object Arguments]"==a||l&&!i){if(C(t))return i?t:{};if(c=qr(l?{}:t),!n)return lr(t,Qt(c,t))}else{if(!Ct[a])return i?t:{};c=Vr(t,a,nn,n)}}if(f||(f=new Zt),i=f.get(t))return i;if(f.set(t,c),!o)var s=r?vn(t,nu,Nr):nu(t);
|
||||
return u(s||t,function(u,o){s&&(o=u,u=t[o]),Kt(c,o,nn(u,n,r,e,o,t,f))}),c}function rn(t){var n=nu(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===T&&!(o in Object(e))||!i(f))return false}return true}}function en(t){return Ue(t)?zu(t):{}}function un(t,n,r){if(typeof t!="function")throw new du("Expected a function");return Du(function(){t.apply(T,r)},n)}function on(t,n,r,e){var u=-1,o=c,i=true,f=t.length,s=[],h=n.length;if(!f)return s;r&&(n=l(n,O(r))),e?(o=a,
|
||||
i=false):n.length>=200&&(o=E,i=false,n=new $t(n));t:for(;++u<f;){var p=t[u],_=r?r(p):p,p=e||0!==p?p:0;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 fn(t,n){var r=true;return go(t,function(t,e,u){return r=!!n(t,e,u)}),r}function cn(t,n,r){for(var e=-1,u=t.length;++e<u;){var o=t[e],i=n(o);if(null!=i&&(f===T?i===i&&!Te(i):r(i,f)))var f=i,c=o}return c}function an(t,n){var r=[];return go(t,function(t,e,u){n(t,e,u)&&r.push(t)}),r}function ln(t,n,r,e,u){
|
||||
var o=-1,i=t.length;for(r||(r=Gr),u||(u=[]);++o<i;){var f=t[o];n>0&&r(f)?n>1?ln(f,n-1,r,e,u):s(u,f):e||(u[u.length]=f)}return u}function sn(t,n){return t&&bo(t,n,nu)}function hn(t,n){return t&&xo(t,n,nu)}function pn(t,n){return f(n,function(n){return Me(t[n])})}function _n(t,n){n=Qr(n,t)?[n]:nr(n);for(var r=0,e=n.length;null!=t&&e>r;)t=t[ue(n[r++])];return r&&r==e?t:T}function vn(t,n,r){return n=n(t),ai(t)?n:s(n,r(t))}function gn(t,n){return t>n}function dn(t,n){return wu.call(t,n)||typeof t=="object"&&n in t&&null===Pu(Object(t));
|
||||
}function yn(t,n){return n in Object(t)}function bn(t,n,r){for(var e=r?a:c,u=t[0].length,o=t.length,i=o,f=Array(o),s=1/0,h=[];i--;){var p=t[i];i&&n&&(p=l(p,O(n))),s=Ku(p.length,s),f[i]=!r&&(n||u>=120&&p.length>=120)?new $t(i&&p):T}var p=t[0],_=-1,v=f[0];t:for(;++_<u&&s>h.length;){var g=p[_],d=n?n(g):g,g=r||0!==g?g:0;if(v?!E(v,d):!e(h,d,r)){for(i=o;--i;){var y=f[i];if(y?!E(y,d):!e(t[i],d,r))continue t}v&&v.push(d),h.push(g)}}return h}function xn(t,n,r){var e={};return sn(t,function(t,u,o){n(e,r(t),u,o);
|
||||
}),e}function jn(t,n,e){return Qr(n,t)||(n=nr(n),t=ee(t,n),n=le(n)),n=null==t?t:t[ue(n)],null==n?T:r(n,t,e)}function wn(t,n,r,e,u){if(t===n)n=true;else if(null==t||null==n||!Ue(t)&&!De(n))n=t!==t&&n!==n;else t:{var o=ai(t),i=ai(n),f="[object Array]",c="[object Array]";o||(f=Pr(t),f="[object Arguments]"==f?"[object Object]":f),i||(c=Pr(n),c="[object Arguments]"==c?"[object Object]":c);var a="[object Object]"==f&&!C(t),i="[object Object]"==c&&!C(n);if((c=f==c)&&!a)u||(u=new Zt),n=o||qe(t)?Lr(t,n,wn,r,e,u):Mr(t,n,f,wn,r,e,u);else{
|
||||
if(!(2&e)&&(o=a&&wu.call(t,"__wrapped__"),f=i&&wu.call(n,"__wrapped__"),o||f)){t=o?t.value():t,n=f?n.value():n,u||(u=new Zt),n=wn(t,n,r,e,u);break t}if(c)n:if(u||(u=new Zt),o=2&e,f=nu(t),i=f.length,c=nu(n).length,i==c||o){for(a=i;a--;){var l=f[a];if(!(o?l in n:dn(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(_===T?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 mn(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===T&&!(c in t))return false}else{if(f=new Zt,e)var s=e(a,l,c,t,n,f);if(s===T?!wn(l,a,e,3,f):!s)return false;
|
||||
}}return true}function An(t){return typeof t=="function"?t:null==t?cu:typeof t=="object"?ai(t)?Sn(t[0],t[1]):In(t):hu(t)}function On(t){t=null==t?t:Object(t);var n,r=[];for(n in t)r.push(n);return r}function kn(t,n){return n>t}function En(t,n){var r=-1,e=We(t)?Array(t.length):[];return go(t,function(t,u,o){e[++r]=n(t,u,o)}),e}function In(t){var n=Fr(t);return 1==n.length&&n[0][2]?ne(n[0][0],n[0][1]):function(r){return r===t||mn(r,t,n)}}function Sn(t,n){return Qr(t)&&n===n&&!Ue(n)?ne(ue(t),n):function(r){
|
||||
var e=Xe(r,t);return e===T&&e===n?tu(r,t):wn(n,e,T,3)}}function Rn(t,n,r,e,o){if(t!==n){if(!ai(n)&&!qe(n))var i=ru(n);u(i||n,function(u,f){if(i&&(f=u,u=n[f]),Ue(u)){o||(o=new Zt);var c=f,a=o,l=t[c],s=n[c],h=a.get(s);if(h)Vt(t,c,h);else{var h=e?e(l,s,c+"",t,n,a):T,p=h===T;p&&(h=s,ai(s)||qe(s)?ai(l)?h=l:Be(l)?h=cr(l):(p=false,h=nn(s,true)):Ne(s)||Re(s)?Re(l)?h=He(l):!Ue(l)||r&&Me(l)?(p=false,h=nn(s,true)):h=l:p=false),a.set(s,h),p&&Rn(h,s,r,e,a),a["delete"](s),Vt(t,c,h)}}else c=e?e(t[f],u,f+"",t,n,o):T,c===T&&(c=u),
|
||||
Vt(t,f,c)})}}function Wn(t,n){var r=t.length;return r?(n+=0>n?r:0,Yr(n,r)?t[n]:T):void 0}function Bn(t,n,r){var e=-1;return n=l(n.length?n:[cu],O(Ur())),t=En(t,function(t){return{a:l(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=or(u[e],o[e]);if(c){e=e>=f?c:c*("desc"==r[e]?-1:1);break t}}e=t.b-n.b}return e})}function Ln(t,n){return t=Object(t),h(n,function(n,r){return r in t&&(n[r]=t[r]),n},{})}function Mn(t,n){for(var r=-1,e=vn(t,ru,Oo),u=e.length,o={};++r<u;){
|
||||
var i=e[r],f=t[i];n(f,i)&&(o[i]=f)}return o}function Cn(t){return function(n){return null==n?T:n[t]}}function zn(t){return function(n){return _n(n,t)}}function Un(t,n,r,e){var u=e?y:d,o=-1,i=n.length,f=t;for(r&&(f=l(t,O(r)));++o<i;)for(var c=0,a=n[o],a=r?r(a):a;-1<(c=u(f,a,c,e));)f!==t&&Fu.call(f,c,1),Fu.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(r==e||u!==o){var o=u;if(Yr(u))Fu.call(t,u,1);else if(Qr(u,t))delete t[ue(u)];else{var u=nr(u),i=ee(t,u);null!=i&&delete i[ue(le(u))];
|
||||
}}}}function Fn(t,n){return t+Nu(Ju()*(n-t+1))}function $n(t,n){var r="";if(!t||1>n||n>9007199254740991)return r;do n%2&&(r+=t),(n=Nu(n/2))&&(t+=t);while(n);return r}function Nn(t,n,r,e){n=Qr(n,t)?[n]:nr(n);for(var u=-1,o=n.length,i=o-1,f=t;null!=f&&++u<o;){var c=ue(n[u]);if(Ue(f)){var a=r;if(u!=i){var l=f[c],a=e?e(l,c,f):T;a===T&&(a=null==l?Yr(n[u+1])?[]:{}:l)}Kt(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 go(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];null!==i&&!Te(i)&&(r?n>=i:n>i)?e=o+1:u=o}return u}return qn(t,n,cu,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=Te(n),a=n===T;o>u;){var l=Nu((u+o)/2),s=r(t[l]),h=s!==T,p=null===s,_=s===s,v=Te(s);(i?e||_:a?_&&(e||h):f?_&&h&&(e||!p):c?_&&h&&!p&&(e||!v):p||v?0:e?n>=s:n>s)?u=l+1:o=l;
|
||||
}return Ku(o,4294967294)}function Vn(t,n){for(var r=-1,e=t.length,u=0,o=[];++r<e;){var i=t[r],f=n?n(i):i;if(!r||!Se(f,c)){var c=f;o[u++]=0===i?0:i}}return o}function Kn(t){return typeof t=="number"?t:Te(t)?V:+t}function Gn(t){if(typeof t=="string")return t;if(Te(t))return vo?vo.call(t):"";var n=t+"";return"0"==n&&1/t==-q?"-0":n}function Jn(t,n,r){var e=-1,u=c,o=t.length,i=true,f=[],l=f;if(r)i=false,u=a;else if(o>=200){if(u=n?null:wo(t))return F(u);i=false,u=E,l=new $t}else l=n?[]:f;t:for(;++e<o;){var s=t[e],h=n?n(s):s,s=r||0!==s?s:0;
|
||||
if(i&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue t;n&&l.push(h),f.push(s)}else u(l,h,r)||(l!==f&&l.push(h),f.push(s))}return f}function Yn(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 Hn(t,n){var r=t;return r instanceof zt&&(r=r.value()),h(n,function(t,n){return n.func.apply(n.thisArg,s([t],n.args))},r)}function Qn(t,n,r){for(var e=-1,u=t.length;++e<u;)var o=o?s(on(o,t[e],n,r),on(t[e],o,n,r)):t[e];return o&&o.length?Jn(o,n,r):[];
|
||||
}function Xn(t,n,r){for(var e=-1,u=t.length,o=n.length,i={};++e<u;)r(i,t[e],o>e?n[e]:T);return i}function tr(t){return Be(t)?t:[]}function nr(t){return ai(t)?t:Eo(t)}function rr(t,n,r){var e=t.length;return r=r===T?e:r,!n&&r>=e?t:Pn(t,n,r)}function er(t,n){if(n)return t.slice();var r=new t.constructor(t.length);return t.copy(r),r}function ur(t){var n=new t.constructor(t.byteLength);return new Wu(n).set(new Wu(t)),n}function or(t,n){if(t!==n){var r=t!==T,e=null===t,u=t===t,o=Te(t),i=n!==T,f=null===n,c=n===n,a=Te(n);
|
||||
if(!f&&!a&&!o&&t>n||o&&i&&c&&!f&&!a||e&&i&&c||!r&&c||!u)return 1;if(!e&&!o&&!a&&n>t||a&&r&&u&&!e&&!o||f&&r&&u||!i&&u||!c)return-1}return 0}function ir(t,n,r,e){var u=-1,o=t.length,i=r.length,f=-1,c=n.length,a=Vu(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 fr(t,n,r,e){var u=-1,o=t.length,i=-1,f=r.length,c=-1,a=n.length,l=Vu(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 cr(t,n){var r=-1,e=t.length;for(n||(n=Array(e));++r<e;)n[r]=t[r];return n}function ar(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];Kt(r,i,f)}return r}function lr(t,n){return ar(t,Nr(t),n)}function sr(t,n){return function(r,u){var o=ai(r)?e:Ht,i=n?n():{};return o(r,t,Ur(u),i)}}function hr(t){return Ie(function(n,r){var e=-1,u=r.length,o=u>1?r[u-1]:T,i=u>2?r[2]:T,o=t.length>3&&typeof o=="function"?(u--,o):T;for(i&&Hr(r[0],r[1],i)&&(o=3>u?T:o,
|
||||
u=1),n=Object(n);++e<u;)(i=r[e])&&t(n,i,e,o);return n})}function pr(t,n){return function(r,e){if(null==r)return r;if(!We(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 _r(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 vr(t,n,r){function e(){return(this&&this!==Jt&&this instanceof e?o:t).apply(u?r:this,arguments)}var u=1&n,o=yr(t);return e}function gr(t){
|
||||
return function(n){n=Qe(n);var r=Wt.test(n)?n.match(St):T,e=r?r[0]:n.charAt(0);return n=r?rr(r,1).join(""):n.slice(1),e[t]()+n}}function dr(t){return function(n){return h(iu(ou(n).replace(Et,"")),t,"")}}function yr(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=en(t.prototype),n=t.apply(r,n);return Ue(n)?n:r}}function br(t,n,e){function u(){for(var i=arguments.length,f=Array(i),c=i,a=zr(u);c--;)f[c]=arguments[c];return c=3>i&&f[0]!==a&&f[i-1]!==a?[]:D(f,a),i-=c.length,e>i?Sr(t,n,jr,u.placeholder,T,f,c,T,T,e-i):r(this&&this!==Jt&&this instanceof u?o:t,this,f)}var o=yr(t);return u}function xr(t){return Ie(function(n){n=ln(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 du("Expected a function");if(u&&!i&&"wrapper"==Cr(o))var i=new kt([],true)}for(e=i?e:r;++e<r;)var o=n[e],u=Cr(o),f="wrapper"==u?mo(o):T,i=f&&Xr(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?i[Cr(f[0])].apply(i,f[3]):1==o.length&&Xr(o)?i[u]():i.thru(o);return function(){var t=arguments,e=t[0];if(i&&1==t.length&&ai(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 jr(t,n,r,e,u,o,i,f,c,a){function l(){
|
||||
for(var d=arguments.length,y=Array(d),b=d;b--;)y[b]=arguments[b];if(_){var x,j=zr(l),b=y.length;for(x=0;b--;)y[b]===j&&x++}if(e&&(y=ir(y,e,u,_)),o&&(y=fr(y,o,i,_)),d-=x,_&&a>d)return j=D(y,j),Sr(t,n,jr,l.placeholder,r,y,j,f,c,a-d);if(j=h?r:this,b=p?j[t]:t,d=y.length,f){x=y.length;for(var w=Ku(f.length,x),m=cr(y);w--;){var A=f[w];y[w]=Yr(A,x)?m[A]:T}}else v&&d>1&&y.reverse();return s&&d>c&&(y.length=c),this&&this!==Jt&&this instanceof l&&(b=g||yr(b)),b.apply(j,y)}var s=128&n,h=1&n,p=2&n,_=24&n,v=512&n,g=p?T:yr(t);
|
||||
return l}function wr(t,n){return function(r,e){return xn(r,t,n(e))}}function mr(t){return function(n,r){var e;if(n===T&&r===T)return 0;if(n!==T&&(e=n),r!==T){if(e===T)return r;typeof n=="string"||typeof r=="string"?(n=Gn(n),r=Gn(r)):(n=Kn(n),r=Kn(r)),e=t(n,r)}return e}}function Ar(t){return Ie(function(n){return n=1==n.length&&ai(n[0])?l(n[0],O(Ur())):l(ln(n,1,Jr),O(Ur())),Ie(function(e){var u=this;return t(n,function(t){return r(t,u,e)})})})}function Or(t,n){n=n===T?" ":Gn(n);var r=n.length;return 2>r?r?$n(n,t):n:(r=$n(n,$u(t/N(n))),
|
||||
Wt.test(n)?rr(r.match(St),0,t).join(""):r.slice(0,t))}function kr(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!==Jt&&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=yr(t);return o}function Er(t){return function(n,r,e){e&&typeof e!="number"&&Hr(n,r,e)&&(r=e=T),n=Ye(n),n=n===n?n:0,r===T?(r=n,n=0):r=Ye(r)||0,e=e===T?r>n?1:-1:Ye(e)||0;var u=-1;r=Vu($u((r-n)/(e||1)),0);for(var o=Array(r);r--;)o[t?r:++u]=n,
|
||||
n+=e;return o}}function Ir(t){return function(n,r){return typeof n=="string"&&typeof r=="string"||(n=Ye(n),r=Ye(r)),t(n,r)}}function Sr(t,n,r,e,u,o,i,f,c,a){var l=8&n,s=l?i:T;i=l?T:i;var h=l?o:T;return o=l?T: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(T,n),Xr(t)&&ko(r,n),r.placeholder=e,r}function Rr(t){var n=vu[t];return function(t,r){if(t=Ye(t),r=Ge(r)){var e=(Qe(t)+"e").split("e"),e=n(e[0]+"e"+(+e[1]+r)),e=(Qe(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return n(t);
|
||||
}}function Wr(t){return function(n){var r=Pr(n);return"[object Map]"==r?U(n):"[object Set]"==r?$(n):A(n,t(n))}}function Br(t,n,r,e,u,o,i,f){var c=2&n;if(!c&&typeof t!="function")throw new du("Expected a function");var a=e?e.length:0;if(a||(n&=-97,e=u=T),i=i===T?i:Vu(Ge(i),0),f=f===T?f:Ge(f),a-=u?u.length:0,64&n){var l=e,s=u;e=u=T}var h=c?T:mo(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?ir(e,r,h[4]):r,o[4]=e?D(o[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=o[5],o[5]=e?fr(e,r,h[6]):r,o[6]=e?D(o[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(o[7]=r),128&t&&(o[8]=null==o[8]?h[8]:Ku(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:Vu(o[9]-a,0),!f&&24&n&&(n&=-25),(h?jo:ko)(n&&1!=n?8==n||16==n?br(t,n,f):32!=n&&33!=n||u.length?jr.apply(T,o):kr(t,n,r,e):vr(t,n,r),o)}function Lr(t,n,r,e,u,o){
|
||||
var i=2&u,f=t.length,c=n.length;if(f!=c&&!(i&&c>f))return false;if(c=o.get(t))return c==n;var c=-1,a=true,l=1&u?new $t:T;for(o.set(t,n);++c<f;){var s=t[c],h=n[c];if(e)var p=i?e(h,s,c,n,t,o):e(s,h,c,t,n,o);if(p!==T){if(p)continue;a=false;break}if(l){if(!_(n,function(t,n){return l.has(n)||s!==t&&!r(s,t,e,u,o)?void 0:l.add(n)})){a=false;break}}else if(s!==h&&!r(s,h,e,u,o)){a=false;break}}return o["delete"](t),a}function Mr(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 Wu(t),new Wu(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=U;case"[object Set]":if(f||(f=F),t.size!=n.size&&!(2&o))break;return(r=i.get(t))?r==n:(o|=1,i.set(t,n),Lr(f(t),f(n),e,u,o,i));case"[object Symbol]":
|
||||
if(_o)return _o.call(t)==_o.call(n)}return false}function Cr(t){for(var n=t.name+"",r=fo[n],e=wu.call(fo,n)?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==t)return u.name}return n}function zr(t){return(wu.call(At,"placeholder")?At:t).placeholder}function Ur(){var t=At.iteratee||au,t=t===au?An:t;return arguments.length?t(arguments[0],arguments[1]):t}function Dr(t,n){var r=t.__data__,e=typeof n;return("string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==n:null===n)?r[typeof n=="string"?"string":"hash"]:r.map;
|
||||
}function Fr(t){t=Ei(t);for(var n=t.length;n--;){var r=t[n][1];t[n][2]=r===r&&!Ue(r)}return t}function $r(t,n){var r=t[n];return Fe(r)?r:T}function Nr(t){return Mu(Object(t))}function Pr(t){return Ou.call(t)}function Zr(t,n,r){n=Qr(n,t)?[n]:nr(n);for(var e,u=-1,o=n.length;++u<o;){var i=ue(n[u]);if(!(e=null!=t&&r(t,i)))break;t=t[i]}return e?e:(o=t?t.length:0,!!o&&ze(o)&&Yr(i,o)&&(ai(t)||Ze(t)||Re(t)))}function Tr(t){var n=t.length,r=t.constructor(n);return n&&"string"==typeof t[0]&&wu.call(t,"index")&&(r.index=t.index,
|
||||
r.input=t.input),r}function qr(t){return typeof t.constructor!="function"||te(t)?{}:en(Pu(Object(t)))}function Vr(r,e,u,o){var i=r.constructor;switch(e){case"[object ArrayBuffer]":return ur(r);case"[object Boolean]":case"[object Date]":return new i(+r);case"[object DataView]":return e=o?ur(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?ur(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.length);case"[object Map]":return e=o?u(U(r),true):U(r),h(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,_t.exec(r)),e.lastIndex=r.lastIndex,e;case"[object Set]":return e=o?u(F(r),true):F(r),h(e,n,new r.constructor);case"[object Symbol]":return _o?Object(_o.call(r)):{};
|
||||
}}function Kr(t){var n=t?t.length:T;return ze(n)&&(ai(t)||Ze(t)||Re(t))?m(n,String):null}function Gr(t){return ai(t)||Re(t)}function Jr(t){return ai(t)&&!(2==t.length&&!Me(t[0]))}function Yr(t,n){return n=null==n?9007199254740991:n,!!n&&(typeof t=="number"||xt.test(t))&&t>-1&&0==t%1&&n>t}function Hr(t,n,r){if(!Ue(r))return false;var e=typeof n;return("number"==e?We(r)&&Yr(n,r.length):"string"==e&&n in r)?Se(r[n],t):false}function Qr(t,n){if(ai(t))return false;var r=typeof t;return"number"==r||"symbol"==r||"boolean"==r||null==t||Te(t)?true:ut.test(t)||!et.test(t)||null!=n&&t in Object(n);
|
||||
}function Xr(t){var n=Cr(t),r=At[n];return typeof r=="function"&&n in zt.prototype?t===r?true:(n=mo(r),!!n&&t===n[0]):false}function te(t){var n=t&&t.constructor;return t===(typeof n=="function"&&n.prototype||bu)}function ne(t,n){return function(r){return null==r?false:r[t]===n&&(n!==T||t in Object(r))}}function re(t,n,r,e,u,o){return Ue(t)&&Ue(n)&&Rn(t,n,T,re,o.set(n,t)),t}function ee(t,n){return 1==n.length?t:_n(t,Pn(n,0,-1))}function ue(t){if(typeof t=="string"||Te(t))return t;var n=t+"";return"0"==n&&1/t==-q?"-0":n;
|
||||
}function oe(t){if(null!=t){try{return ju.call(t)}catch(n){}return t+""}return""}function ie(t){if(t instanceof zt)return t.clone();var n=new kt(t.__wrapped__,t.__chain__);return n.__actions__=cr(t.__actions__),n.__index__=t.__index__,n.__values__=t.__values__,n}function fe(t,n,r){var e=t?t.length:0;return e?(n=r||n===T?1:Ge(n),Pn(t,0>n?0:n,e)):[]}function ce(t,n,r){var e=t?t.length:0;return e?(n=r||n===T?1:Ge(n),n=e-n,Pn(t,0,0>n?0:n)):[]}function ae(t){return t&&t.length?t[0]:T}function le(t){var n=t?t.length:0;
|
||||
return n?t[n-1]:T}function se(t,n){return t&&t.length&&n&&n.length?Un(t,n):t}function he(t){return t?Hu.call(t):t}function pe(t){if(!t||!t.length)return[];var n=0;return t=f(t,function(t){return Be(t)?(n=Vu(t.length,n),true):void 0}),m(n,function(n){return l(t,Cn(n))})}function _e(t,n){if(!t||!t.length)return[];var e=pe(t);return null==n?e:l(e,function(t){return r(n,T,t)})}function ve(t){return t=At(t),t.__chain__=true,t}function ge(t,n){return n(t)}function de(){return this}function ye(t,n){return(ai(t)?u:go)(t,Ur(n,3));
|
||||
}function be(t,n){return(ai(t)?o:yo)(t,Ur(n,3))}function xe(t,n){return(ai(t)?l:En)(t,Ur(n,3))}function je(t,n,r){var e=-1,u=Ve(t),o=u.length,i=o-1;for(n=(r?Hr(t,n,r):n===T)?1:tn(Ge(n),0,o);++e<n;)t=Fn(e,i),r=u[t],u[t]=u[e],u[e]=r;return u.length=n,u}function we(t,n,r){return n=r?T:n,n=t&&null==n?t.length:n,Br(t,128,T,T,T,T,n)}function me(t,n){var r;if(typeof n!="function")throw new du("Expected a function");return t=Ge(t),function(){return 0<--t&&(r=n.apply(this,arguments)),1>=t&&(n=T),r}}function Ae(t,n,r){
|
||||
return n=r?T:n,t=Br(t,8,T,T,T,T,T,n),t.placeholder=Ae.placeholder,t}function Oe(t,n,r){return n=r?T:n,t=Br(t,16,T,T,T,T,T,n),t.placeholder=Oe.placeholder,t}function ke(t,n,r){function e(n){var r=c,e=a;return c=a=T,_=n,s=t.apply(e,r)}function u(t){var r=t-p;return t-=_,!p||r>=n||0>r||g&&t>=l}function o(){var t=Qo();if(u(t))return i(t);var r;r=t-_,t=n-(t-p),r=g?Ku(t,l-r):t,h=Du(o,r)}function i(t){return Bu(h),h=T,d&&c?e(t):(c=a=T,s)}function f(){var t=Qo(),r=u(t);if(c=arguments,a=this,p=t,r){if(h===T)return _=t=p,
|
||||
h=Du(o,n),v?e(t):s;if(g)return Bu(h),h=Du(o,n),e(p)}return h===T&&(h=Du(o,n)),s}var c,a,l,s,h,p=0,_=0,v=false,g=false,d=true;if(typeof t!="function")throw new du("Expected a function");return n=Ye(n)||0,Ue(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Vu(Ye(r.maxWait)||0,n):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&Bu(h),p=_=0,c=a=h=T},f.flush=function(){return h===T?s:i(Qo())},f}function Ee(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 du("Expected a function");return r.cache=new(Ee.Cache||Ft),r}function Ie(t,n){if(typeof t!="function")throw new du("Expected a function");return n=Vu(n===T?t.length-1:Ge(n),0),function(){for(var e=arguments,u=-1,o=Vu(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 Se(t,n){return t===n||t!==t&&n!==n}function Re(t){return Be(t)&&wu.call(t,"callee")&&(!Uu.call(t,"callee")||"[object Arguments]"==Ou.call(t))}function We(t){return null!=t&&ze(Ao(t))&&!Me(t)}function Be(t){return De(t)&&We(t)}function Le(t){return De(t)?"[object Error]"==Ou.call(t)||typeof t.message=="string"&&typeof t.name=="string":false}function Me(t){return t=Ue(t)?Ou.call(t):"","[object Function]"==t||"[object GeneratorFunction]"==t}function Ce(t){return typeof t=="number"&&t==Ge(t);
|
||||
}function ze(t){return typeof t=="number"&&t>-1&&0==t%1&&9007199254740991>=t}function Ue(t){var n=typeof t;return!!t&&("object"==n||"function"==n)}function De(t){return!!t&&typeof t=="object"}function Fe(t){return Ue(t)?(Me(t)||C(t)?Eu:yt).test(oe(t)):false}function $e(t){return typeof t=="number"||De(t)&&"[object Number]"==Ou.call(t)}function Ne(t){return!De(t)||"[object Object]"!=Ou.call(t)||C(t)?false:(t=Pu(Object(t)),null===t?true:(t=wu.call(t,"constructor")&&t.constructor,typeof t=="function"&&t instanceof t&&ju.call(t)==Au));
|
||||
}function Pe(t){return Ue(t)&&"[object RegExp]"==Ou.call(t)}function Ze(t){return typeof t=="string"||!ai(t)&&De(t)&&"[object String]"==Ou.call(t)}function Te(t){return typeof t=="symbol"||De(t)&&"[object Symbol]"==Ou.call(t)}function qe(t){return De(t)&&ze(t.length)&&!!Mt[Ou.call(t)]}function Ve(t){if(!t)return[];if(We(t))return Ze(t)?t.match(St):cr(t);if(Cu&&t[Cu])return z(t[Cu]());var n=Pr(t);return("[object Map]"==n?U:"[object Set]"==n?F:eu)(t)}function Ke(t){return t?(t=Ye(t),t===q||t===-q?1.7976931348623157e308*(0>t?-1:1):t===t?t:0):0===t?t:0;
|
||||
}function Ge(t){t=Ke(t);var n=t%1;return t===t?n?t-n:t:0}function Je(t){return t?tn(Ge(t),0,4294967295):0}function Ye(t){if(typeof t=="number")return t;if(Te(t))return V;if(Ue(t)&&(t=Me(t.valueOf)?t.valueOf():t,t=Ue(t)?t+"":t),typeof t!="string")return 0===t?t:+t;t=t.replace(ct,"");var n=dt.test(t);return n||bt.test(t)?Pt(t.slice(2),n?2:8):gt.test(t)?V:+t}function He(t){return ar(t,ru(t))}function Qe(t){return null==t?"":Gn(t)}function Xe(t,n,r){return t=null==t?T:_n(t,n),t===T?r:t}function tu(t,n){
|
||||
return null!=t&&Zr(t,n,yn)}function nu(t){var n=te(t);if(!n&&!We(t))return qu(Object(t));var r,e=Kr(t),u=!!e,e=e||[],o=e.length;for(r in t)!dn(t,r)||u&&("length"==r||Yr(r,o))||n&&"constructor"==r||e.push(r);return e}function ru(t){for(var n=-1,r=te(t),e=On(t),u=e.length,o=Kr(t),i=!!o,o=o||[],f=o.length;++n<u;){var c=e[n];i&&("length"==c||Yr(c,f))||"constructor"==c&&(r||!wu.call(t,c))||o.push(c)}return o}function eu(t){return t?k(t,nu(t)):[]}function uu(t){return zi(Qe(t).toLowerCase())}function ou(t){
|
||||
return(t=Qe(t))&&t.replace(jt,W).replace(It,"")}function iu(t,n,r){return t=Qe(t),n=r?T:n,n===T&&(n=Bt.test(t)?Rt:st),t.match(n)||[]}function fu(t){return function(){return t}}function cu(t){return t}function au(t){return An(typeof t=="function"?t:nn(t,true))}function lu(t,n,r){var e=nu(n),o=pn(n,e);null!=r||Ue(n)&&(o.length||!e.length)||(r=n,n=t,t=this,o=pn(n,nu(n)));var i=!(Ue(r)&&"chain"in r&&!r.chain),f=Me(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__=cr(this.__actions__)).push({func:e,args:arguments,thisArg:t}),r.__chain__=n,r}return e.apply(t,s([this.value()],arguments))})}),t}function su(){}function hu(t){return Qr(t)?Cn(ue(t)):zn(t)}R=R?Yt.defaults({},R,Yt.pick(Jt,Lt)):Jt;var pu=R.Date,_u=R.Error,vu=R.Math,gu=R.RegExp,du=R.TypeError,yu=R.Array.prototype,bu=R.Object.prototype,xu=R.String.prototype,ju=R.Function.prototype.toString,wu=bu.hasOwnProperty,mu=0,Au=ju.call(Object),Ou=bu.toString,ku=Jt._,Eu=gu("^"+ju.call(wu).replace(it,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Iu=qt?R.Buffer:T,Su=R.Reflect,Ru=R.Symbol,Wu=R.Uint8Array,Bu=R.clearTimeout,Lu=Su?Su.f:T,Mu=Object.getOwnPropertySymbols,Cu=typeof(Cu=Ru&&Ru.iterator)=="symbol"?Cu:T,zu=Object.create,Uu=bu.propertyIsEnumerable,Du=R.setTimeout,Fu=yu.splice,$u=vu.ceil,Nu=vu.floor,Pu=Object.getPrototypeOf,Zu=R.isFinite,Tu=yu.join,qu=Object.keys,Vu=vu.max,Ku=vu.min,Gu=R.parseInt,Ju=vu.random,Yu=xu.replace,Hu=yu.reverse,Qu=xu.split,Xu=$r(R,"DataView"),to=$r(R,"Map"),no=$r(R,"Promise"),ro=$r(R,"Set"),eo=$r(R,"WeakMap"),uo=$r(Object,"create"),oo=eo&&new eo,io=!Uu.call({
|
||||
valueOf:1},"valueOf"),fo={},co=oe(Xu),ao=oe(to),lo=oe(no),so=oe(ro),ho=oe(eo),po=Ru?Ru.prototype:T,_o=po?po.valueOf:T,vo=po?po.toString:T;At.templateSettings={escape:tt,evaluate:nt,interpolate:rt,variable:"",imports:{_:At}},At.prototype=Ot.prototype,At.prototype.constructor=At,kt.prototype=en(Ot.prototype),kt.prototype.constructor=kt,zt.prototype=en(Ot.prototype),zt.prototype.constructor=zt,Ut.prototype.clear=function(){this.__data__=uo?uo(null):{}},Ut.prototype["delete"]=function(t){return this.has(t)&&delete this.__data__[t];
|
||||
},Ut.prototype.get=function(t){var n=this.__data__;return uo?(t=n[t],"__lodash_hash_undefined__"===t?T:t):wu.call(n,t)?n[t]:T},Ut.prototype.has=function(t){var n=this.__data__;return uo?n[t]!==T:wu.call(n,t)},Ut.prototype.set=function(t,n){return this.__data__[t]=uo&&n===T?"__lodash_hash_undefined__":n,this},Dt.prototype.clear=function(){this.__data__=[]},Dt.prototype["delete"]=function(t){var n=this.__data__;return t=Gt(n,t),0>t?false:(t==n.length-1?n.pop():Fu.call(n,t,1),true)},Dt.prototype.get=function(t){
|
||||
var n=this.__data__;return t=Gt(n,t),0>t?T:n[t][1]},Dt.prototype.has=function(t){return-1<Gt(this.__data__,t)},Dt.prototype.set=function(t,n){var r=this.__data__,e=Gt(r,t);return 0>e?r.push([t,n]):r[e][1]=n,this},Ft.prototype.clear=function(){this.__data__={hash:new Ut,map:new(to||Dt),string:new Ut}},Ft.prototype["delete"]=function(t){return Dr(this,t)["delete"](t)},Ft.prototype.get=function(t){return Dr(this,t).get(t)},Ft.prototype.has=function(t){return Dr(this,t).has(t)},Ft.prototype.set=function(t,n){
|
||||
return Dr(this,t).set(t,n),this},$t.prototype.add=$t.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},$t.prototype.has=function(t){return this.__data__.has(t)},Zt.prototype.clear=function(){this.__data__=new Dt},Zt.prototype["delete"]=function(t){return this.__data__["delete"](t)},Zt.prototype.get=function(t){return this.__data__.get(t)},Zt.prototype.has=function(t){return this.__data__.has(t)},Zt.prototype.set=function(t,n){var r=this.__data__;return r instanceof Dt&&200==r.__data__.length&&(r=this.__data__=new Ft(r.__data__)),
|
||||
r.set(t,n),this};var go=pr(sn),yo=pr(hn,true),bo=_r(),xo=_r(true);Lu&&!Uu.call({valueOf:1},"valueOf")&&(On=function(t){return z(Lu(t))});var jo=oo?function(t,n){return oo.set(t,n),t}:cu,wo=ro&&1/F(new ro([,-0]))[1]==q?function(t){return new ro(t)}:su,mo=oo?function(t){return oo.get(t)}:su,Ao=Cn("length");Mu||(Nr=function(){return[]});var Oo=Mu?function(t){for(var n=[];t;)s(n,Nr(t)),t=Pu(Object(t));return n}:Nr;(Xu&&"[object DataView]"!=Pr(new Xu(new ArrayBuffer(1)))||to&&"[object Map]"!=Pr(new to)||no&&"[object Promise]"!=Pr(no.resolve())||ro&&"[object Set]"!=Pr(new ro)||eo&&"[object WeakMap]"!=Pr(new eo))&&(Pr=function(t){
|
||||
var n=Ou.call(t);if(t=(t="[object Object]"==n?t.constructor:T)?oe(t):T)switch(t){case co:return"[object DataView]";case ao:return"[object Map]";case lo:return"[object Promise]";case so:return"[object Set]";case ho:return"[object WeakMap]"}return n});var ko=function(){var t=0,n=0;return function(r,e){var u=Qo(),o=16-(u-n);if(n=u,o>0){if(150<=++t)return r}else t=0;return jo(r,e)}}(),Eo=Ee(function(t){var n=[];return Qe(t).replace(ot,function(t,r,e,u){n.push(e?u.replace(ht,"$1"):r||t)}),n}),Io=Ie(function(t,n){
|
||||
return Be(t)?on(t,ln(n,1,Be,true)):[]}),So=Ie(function(t,n){var r=le(n);return Be(r)&&(r=T),Be(t)?on(t,ln(n,1,Be,true),Ur(r)):[]}),Ro=Ie(function(t,n){var r=le(n);return Be(r)&&(r=T),Be(t)?on(t,ln(n,1,Be,true),T,r):[]}),Wo=Ie(function(t){var n=l(t,tr);return n.length&&n[0]===t[0]?bn(n):[]}),Bo=Ie(function(t){var n=le(t),r=l(t,tr);return n===le(r)?n=T:r.pop(),r.length&&r[0]===t[0]?bn(r,Ur(n)):[]}),Lo=Ie(function(t){var n=le(t),r=l(t,tr);return n===le(r)?n=T:r.pop(),r.length&&r[0]===t[0]?bn(r,T,n):[]}),Mo=Ie(se),Co=Ie(function(t,n){
|
||||
n=ln(n,1);var r=t?t.length:0,e=Xt(t,n);return Dn(t,l(n,function(t){return Yr(t,r)?+t:t}).sort(or)),e}),zo=Ie(function(t){return Jn(ln(t,1,Be,true))}),Uo=Ie(function(t){var n=le(t);return Be(n)&&(n=T),Jn(ln(t,1,Be,true),Ur(n))}),Do=Ie(function(t){var n=le(t);return Be(n)&&(n=T),Jn(ln(t,1,Be,true),T,n)}),Fo=Ie(function(t,n){return Be(t)?on(t,n):[]}),$o=Ie(function(t){return Qn(f(t,Be))}),No=Ie(function(t){var n=le(t);return Be(n)&&(n=T),Qn(f(t,Be),Ur(n))}),Po=Ie(function(t){var n=le(t);return Be(n)&&(n=T),
|
||||
Qn(f(t,Be),T,n)}),Zo=Ie(pe),To=Ie(function(t){var n=t.length,n=n>1?t[n-1]:T,n=typeof n=="function"?(t.pop(),n):T;return _e(t,n)}),qo=Ie(function(t){function n(n){return Xt(n,t)}t=ln(t,1);var r=t.length,e=r?t[0]:0,u=this.__wrapped__;return!(r>1||this.__actions__.length)&&u instanceof zt&&Yr(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:ge,args:[n],thisArg:T}),new kt(u,this.__chain__).thru(function(t){return r&&!t.length&&t.push(T),t})):this.thru(n)}),Vo=sr(function(t,n,r){wu.call(t,r)?++t[r]:t[r]=1;
|
||||
}),Ko=sr(function(t,n,r){wu.call(t,r)?t[r].push(n):t[r]=[n]}),Go=Ie(function(t,n,e){var u=-1,o=typeof n=="function",i=Qr(n),f=We(t)?Array(t.length):[];return go(t,function(t){var c=o?n:i&&null!=t?t[n]:T;f[++u]=c?r(c,t,e):jn(t,n,e)}),f}),Jo=sr(function(t,n,r){t[r]=n}),Yo=sr(function(t,n,r){t[r?0:1].push(n)},function(){return[[],[]]}),Ho=Ie(function(t,n){if(null==t)return[];var r=n.length;return r>1&&Hr(t,n[0],n[1])?n=[]:r>2&&Hr(n[0],n[1],n[2])&&(n=[n[0]]),n=1==n.length&&ai(n[0])?n[0]:ln(n,1,Jr),Bn(t,n,[]);
|
||||
}),Qo=pu.now,Xo=Ie(function(t,n,r){var e=1;if(r.length)var u=D(r,zr(Xo)),e=32|e;return Br(t,e,n,r,u)}),ti=Ie(function(t,n,r){var e=3;if(r.length)var u=D(r,zr(ti)),e=32|e;return Br(n,e,t,r,u)}),ni=Ie(function(t,n){return un(t,1,n)}),ri=Ie(function(t,n,r){return un(t,Ye(n)||0,r)});Ee.Cache=Ft;var ei=Ie(function(t,n){n=1==n.length&&ai(n[0])?l(n[0],O(Ur())):l(ln(n,1,Jr),O(Ur()));var e=n.length;return Ie(function(u){for(var o=-1,i=Ku(u.length,e);++o<i;)u[o]=n[o].call(this,u[o]);return r(t,this,u)})}),ui=Ie(function(t,n){
|
||||
var r=D(n,zr(ui));return Br(t,32,T,n,r)}),oi=Ie(function(t,n){var r=D(n,zr(oi));return Br(t,64,T,n,r)}),ii=Ie(function(t,n){return Br(t,256,T,T,T,ln(n,1))}),fi=Ir(gn),ci=Ir(function(t,n){return t>=n}),ai=Array.isArray,li=Iu?function(t){return t instanceof Iu}:fu(false),si=Ir(kn),hi=Ir(function(t,n){return n>=t}),pi=hr(function(t,n){if(io||te(n)||We(n))ar(n,nu(n),t);else for(var r in n)wu.call(n,r)&&Kt(t,r,n[r])}),_i=hr(function(t,n){if(io||te(n)||We(n))ar(n,ru(n),t);else for(var r in n)Kt(t,r,n[r])}),vi=hr(function(t,n,r,e){
|
||||
ar(n,ru(n),t,e)}),gi=hr(function(t,n,r,e){ar(n,nu(n),t,e)}),di=Ie(function(t,n){return Xt(t,ln(n,1))}),yi=Ie(function(t){return t.push(T,Tt),r(vi,T,t)}),bi=Ie(function(t){return t.push(T,re),r(Ai,T,t)}),xi=wr(function(t,n,r){t[n]=r},fu(cu)),ji=wr(function(t,n,r){wu.call(t,n)?t[n].push(r):t[n]=[r]},Ur),wi=Ie(jn),mi=hr(function(t,n,r){Rn(t,n,r)}),Ai=hr(function(t,n,r,e){Rn(t,n,r,e)}),Oi=Ie(function(t,n){return null==t?{}:(n=l(ln(n,1),ue),Ln(t,on(vn(t,ru,Oo),n)))}),ki=Ie(function(t,n){return null==t?{}:Ln(t,l(ln(n,1),ue));
|
||||
}),Ei=Wr(nu),Ii=Wr(ru),Si=dr(function(t,n,r){return n=n.toLowerCase(),t+(r?uu(n):n)}),Ri=dr(function(t,n,r){return t+(r?"-":"")+n.toLowerCase()}),Wi=dr(function(t,n,r){return t+(r?" ":"")+n.toLowerCase()}),Bi=gr("toLowerCase"),Li=dr(function(t,n,r){return t+(r?"_":"")+n.toLowerCase()}),Mi=dr(function(t,n,r){return t+(r?" ":"")+zi(n)}),Ci=dr(function(t,n,r){return t+(r?" ":"")+n.toUpperCase()}),zi=gr("toUpperCase"),Ui=Ie(function(t,n){try{return r(t,T,n)}catch(e){return Le(e)?e:new _u(e)}}),Di=Ie(function(t,n){
|
||||
return u(ln(n,1),function(n){n=ue(n),t[n]=Xo(t[n],t)}),t}),Fi=xr(),$i=xr(true),Ni=Ie(function(t,n){return function(r){return jn(r,t,n)}}),Pi=Ie(function(t,n){return function(r){return jn(t,r,n)}}),Zi=Ar(l),Ti=Ar(i),qi=Ar(_),Vi=Er(),Ki=Er(true),Gi=mr(function(t,n){return t+n}),Ji=Rr("ceil"),Yi=mr(function(t,n){return t/n}),Hi=Rr("floor"),Qi=mr(function(t,n){return t*n}),Xi=Rr("round"),tf=mr(function(t,n){return t-n});return At.after=function(t,n){if(typeof n!="function")throw new du("Expected a function");
|
||||
return t=Ge(t),function(){return 1>--t?n.apply(this,arguments):void 0}},At.ary=we,At.assign=pi,At.assignIn=_i,At.assignInWith=vi,At.assignWith=gi,At.at=di,At.before=me,At.bind=Xo,At.bindAll=Di,At.bindKey=ti,At.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return ai(t)?t:[t]},At.chain=ve,At.chunk=function(t,n,r){if(n=(r?Hr(t,n,r):n===T)?1:Vu(Ge(n),0),r=t?t.length:0,!r||1>n)return[];for(var e=0,u=0,o=Array($u(r/n));r>e;)o[u++]=Pn(t,e,e+=n);return o},At.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},At.concat=function(){for(var t=arguments.length,n=Array(t?t-1:0),r=arguments[0],e=t;e--;)n[e-1]=arguments[e];return t?s(ai(r)?cr(r):[r],ln(n,1)):[]},At.cond=function(t){var n=t?t.length:0,e=Ur();return t=n?l(t,function(t){if("function"!=typeof t[1])throw new du("Expected a function");return[e(t[0]),t[1]]}):[],Ie(function(e){for(var u=-1;++u<n;){var o=t[u];if(r(o[0],this,e))return r(o[1],this,e)}})},At.conforms=function(t){return rn(nn(t,true))},At.constant=fu,At.countBy=Vo,
|
||||
At.create=function(t,n){var r=en(t);return n?Qt(r,n):r},At.curry=Ae,At.curryRight=Oe,At.debounce=ke,At.defaults=yi,At.defaultsDeep=bi,At.defer=ni,At.delay=ri,At.difference=Io,At.differenceBy=So,At.differenceWith=Ro,At.drop=fe,At.dropRight=ce,At.dropRightWhile=function(t,n){return t&&t.length?Yn(t,Ur(n,3),true,true):[]},At.dropWhile=function(t,n){return t&&t.length?Yn(t,Ur(n,3),true):[]},At.fill=function(t,n,r,e){var u=t?t.length:0;if(!u)return[];for(r&&typeof r!="number"&&Hr(t,n,r)&&(r=0,e=u),u=t.length,
|
||||
r=Ge(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Ge(e),0>e&&(e+=u),e=r>e?0:Je(e);e>r;)t[r++]=n;return t},At.filter=function(t,n){return(ai(t)?f:an)(t,Ur(n,3))},At.flatMap=function(t,n){return ln(xe(t,n),1)},At.flatMapDeep=function(t,n){return ln(xe(t,n),q)},At.flatMapDepth=function(t,n,r){return r=r===T?1:Ge(r),ln(xe(t,n),r)},At.flatten=function(t){return t&&t.length?ln(t,1):[]},At.flattenDeep=function(t){return t&&t.length?ln(t,q):[]},At.flattenDepth=function(t,n){return t&&t.length?(n=n===T?1:Ge(n),ln(t,n)):[];
|
||||
},At.flip=function(t){return Br(t,512)},At.flow=Fi,At.flowRight=$i,At.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},At.functions=function(t){return null==t?[]:pn(t,nu(t))},At.functionsIn=function(t){return null==t?[]:pn(t,ru(t))},At.groupBy=Ko,At.initial=function(t){return ce(t,1)},At.intersection=Wo,At.intersectionBy=Bo,At.intersectionWith=Lo,At.invert=xi,At.invertBy=ji,At.invokeMap=Go,At.iteratee=au,At.keyBy=Jo,At.keys=nu,At.keysIn=ru,At.map=xe,
|
||||
At.mapKeys=function(t,n){var r={};return n=Ur(n,3),sn(t,function(t,e,u){r[n(t,e,u)]=t}),r},At.mapValues=function(t,n){var r={};return n=Ur(n,3),sn(t,function(t,e,u){r[e]=n(t,e,u)}),r},At.matches=function(t){return In(nn(t,true))},At.matchesProperty=function(t,n){return Sn(t,nn(n,true))},At.memoize=Ee,At.merge=mi,At.mergeWith=Ai,At.method=Ni,At.methodOf=Pi,At.mixin=lu,At.negate=function(t){if(typeof t!="function")throw new du("Expected a function");return function(){return!t.apply(this,arguments)}},At.nthArg=function(t){
|
||||
return t=Ge(t),Ie(function(n){return Wn(n,t)})},At.omit=Oi,At.omitBy=function(t,n){return n=Ur(n),Mn(t,function(t,r){return!n(t,r)})},At.once=function(t){return me(2,t)},At.orderBy=function(t,n,r,e){return null==t?[]:(ai(n)||(n=null==n?[]:[n]),r=e?T:r,ai(r)||(r=null==r?[]:[r]),Bn(t,n,r))},At.over=Zi,At.overArgs=ei,At.overEvery=Ti,At.overSome=qi,At.partial=ui,At.partialRight=oi,At.partition=Yo,At.pick=ki,At.pickBy=function(t,n){return null==t?{}:Mn(t,Ur(n))},At.property=hu,At.propertyOf=function(t){
|
||||
return function(n){return null==t?T:_n(t,n)}},At.pull=Mo,At.pullAll=se,At.pullAllBy=function(t,n,r){return t&&t.length&&n&&n.length?Un(t,n,Ur(r)):t},At.pullAllWith=function(t,n,r){return t&&t.length&&n&&n.length?Un(t,n,T,r):t},At.pullAt=Co,At.range=Vi,At.rangeRight=Ki,At.rearg=ii,At.reject=function(t,n){var r=ai(t)?f:an;return n=Ur(n,3),r(t,function(t,r,e){return!n(t,r,e)})},At.remove=function(t,n){var r=[];if(!t||!t.length)return r;var e=-1,u=[],o=t.length;for(n=Ur(n,3);++e<o;){var i=t[e];n(i,e,t)&&(r.push(i),
|
||||
u.push(e))}return Dn(t,u),r},At.rest=Ie,At.reverse=he,At.sampleSize=je,At.set=function(t,n,r){return null==t?t:Nn(t,n,r)},At.setWith=function(t,n,r,e){return e=typeof e=="function"?e:T,null==t?t:Nn(t,n,r,e)},At.shuffle=function(t){return je(t,4294967295)},At.slice=function(t,n,r){var e=t?t.length:0;return e?(r&&typeof r!="number"&&Hr(t,n,r)?(n=0,r=e):(n=null==n?0:Ge(n),r=r===T?e:Ge(r)),Pn(t,n,r)):[]},At.sortBy=Ho,At.sortedUniq=function(t){return t&&t.length?Vn(t):[]},At.sortedUniqBy=function(t,n){
|
||||
return t&&t.length?Vn(t,Ur(n)):[]},At.split=function(t,n,r){return r&&typeof r!="number"&&Hr(t,n,r)&&(n=r=T),r=r===T?4294967295:r>>>0,r?(t=Qe(t))&&(typeof n=="string"||null!=n&&!Pe(n))&&(n=Gn(n),""==n&&Wt.test(t))?rr(t.match(St),0,r):Qu.call(t,n,r):[]},At.spread=function(t,n){if(typeof t!="function")throw new du("Expected a function");return n=n===T?0:Vu(Ge(n),0),Ie(function(e){var u=e[n];return e=rr(e,0,n),u&&s(e,u),r(t,this,e)})},At.tail=function(t){return fe(t,1)},At.take=function(t,n,r){return t&&t.length?(n=r||n===T?1:Ge(n),
|
||||
Pn(t,0,0>n?0:n)):[]},At.takeRight=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===T?1:Ge(n),n=e-n,Pn(t,0>n?0:n,e)):[]},At.takeRightWhile=function(t,n){return t&&t.length?Yn(t,Ur(n,3),false,true):[]},At.takeWhile=function(t,n){return t&&t.length?Yn(t,Ur(n,3)):[]},At.tap=function(t,n){return n(t),t},At.throttle=function(t,n,r){var e=true,u=true;if(typeof t!="function")throw new du("Expected a function");return Ue(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ke(t,n,{leading:e,maxWait:n,
|
||||
trailing:u})},At.thru=ge,At.toArray=Ve,At.toPairs=Ei,At.toPairsIn=Ii,At.toPath=function(t){return ai(t)?l(t,ue):Te(t)?[t]:cr(Eo(t))},At.toPlainObject=He,At.transform=function(t,n,r){var e=ai(t)||qe(t);if(n=Ur(n,4),null==r)if(e||Ue(t)){var o=t.constructor;r=e?ai(t)?new o:[]:Me(o)?en(Pu(Object(t))):{}}else r={};return(e?u:sn)(t,function(t,e,u){return n(r,t,e,u)}),r},At.unary=function(t){return we(t,1)},At.union=zo,At.unionBy=Uo,At.unionWith=Do,At.uniq=function(t){return t&&t.length?Jn(t):[]},At.uniqBy=function(t,n){
|
||||
return t&&t.length?Jn(t,Ur(n)):[]},At.uniqWith=function(t,n){return t&&t.length?Jn(t,T,n):[]},At.unset=function(t,n){var r;if(null==t)r=true;else{r=t;var e=n,e=Qr(e,r)?[e]:nr(e);r=ee(r,e),e=ue(le(e)),r=!(null!=r&&dn(r,e))||delete r[e]}return r},At.unzip=pe,At.unzipWith=_e,At.update=function(t,n,r){return null==t?t:Nn(t,n,(typeof r=="function"?r:cu)(_n(t,n)),void 0)},At.updateWith=function(t,n,r,e){return e=typeof e=="function"?e:T,null!=t&&(t=Nn(t,n,(typeof r=="function"?r:cu)(_n(t,n)),e)),t},At.values=eu,
|
||||
At.valuesIn=function(t){return null==t?[]:k(t,ru(t))},At.without=Fo,At.words=iu,At.wrap=function(t,n){return n=null==n?cu:n,ui(n,t)},At.xor=$o,At.xorBy=No,At.xorWith=Po,At.zip=Zo,At.zipObject=function(t,n){return Xn(t||[],n||[],Kt)},At.zipObjectDeep=function(t,n){return Xn(t||[],n||[],Nn)},At.zipWith=To,At.entries=Ei,At.entriesIn=Ii,At.extend=_i,At.extendWith=vi,lu(At,At),At.add=Gi,At.attempt=Ui,At.camelCase=Si,At.capitalize=uu,At.ceil=Ji,At.clamp=function(t,n,r){return r===T&&(r=n,n=T),r!==T&&(r=Ye(r),
|
||||
r=r===r?r:0),n!==T&&(n=Ye(n),n=n===n?n:0),tn(Ye(t),n,r)},At.clone=function(t){return nn(t,false,true)},At.cloneDeep=function(t){return nn(t,true,true)},At.cloneDeepWith=function(t,n){return nn(t,true,true,n)},At.cloneWith=function(t,n){return nn(t,false,true,n)},At.deburr=ou,At.divide=Yi,At.endsWith=function(t,n,r){t=Qe(t),n=Gn(n);var e=t.length;return r=r===T?e:tn(Ge(r),0,e),r-=n.length,r>=0&&t.indexOf(n,r)==r},At.eq=Se,At.escape=function(t){return(t=Qe(t))&&X.test(t)?t.replace(H,B):t},At.escapeRegExp=function(t){
|
||||
return(t=Qe(t))&&ft.test(t)?t.replace(it,"\\$&"):t},At.every=function(t,n,r){var e=ai(t)?i:fn;return r&&Hr(t,n,r)&&(n=T),e(t,Ur(n,3))},At.find=function(t,n){if(n=Ur(n,3),ai(t)){var r=g(t,n);return r>-1?t[r]:T}return v(t,n,go)},At.findIndex=function(t,n){return t&&t.length?g(t,Ur(n,3)):-1},At.findKey=function(t,n){return v(t,Ur(n,3),sn,true)},At.findLast=function(t,n){if(n=Ur(n,3),ai(t)){var r=g(t,n,true);return r>-1?t[r]:T}return v(t,n,yo)},At.findLastIndex=function(t,n){return t&&t.length?g(t,Ur(n,3),true):-1;
|
||||
},At.findLastKey=function(t,n){return v(t,Ur(n,3),hn,true)},At.floor=Hi,At.forEach=ye,At.forEachRight=be,At.forIn=function(t,n){return null==t?t:bo(t,Ur(n,3),ru)},At.forInRight=function(t,n){return null==t?t:xo(t,Ur(n,3),ru)},At.forOwn=function(t,n){return t&&sn(t,Ur(n,3))},At.forOwnRight=function(t,n){return t&&hn(t,Ur(n,3))},At.get=Xe,At.gt=fi,At.gte=ci,At.has=function(t,n){return null!=t&&Zr(t,n,dn)},At.hasIn=tu,At.head=ae,At.identity=cu,At.includes=function(t,n,r,e){return t=We(t)?t:eu(t),r=r&&!e?Ge(r):0,
|
||||
e=t.length,0>r&&(r=Vu(e+r,0)),Ze(t)?e>=r&&-1<t.indexOf(n,r):!!e&&-1<d(t,n,r)},At.indexOf=function(t,n,r){var e=t?t.length:0;return e?(r=Ge(r),0>r&&(r=Vu(e+r,0)),d(t,n,r)):-1},At.inRange=function(t,n,r){return n=Ye(n)||0,r===T?(r=n,n=0):r=Ye(r)||0,t=Ye(t),t>=Ku(n,r)&&t<Vu(n,r)},At.invoke=wi,At.isArguments=Re,At.isArray=ai,At.isArrayBuffer=function(t){return De(t)&&"[object ArrayBuffer]"==Ou.call(t)},At.isArrayLike=We,At.isArrayLikeObject=Be,At.isBoolean=function(t){return true===t||false===t||De(t)&&"[object Boolean]"==Ou.call(t);
|
||||
},At.isBuffer=li,At.isDate=function(t){return De(t)&&"[object Date]"==Ou.call(t)},At.isElement=function(t){return!!t&&1===t.nodeType&&De(t)&&!Ne(t)},At.isEmpty=function(t){if(We(t)&&(ai(t)||Ze(t)||Me(t.splice)||Re(t)||li(t)))return!t.length;if(De(t)){var n=Pr(t);if("[object Map]"==n||"[object Set]"==n)return!t.size}for(var r in t)if(wu.call(t,r))return false;return!(io&&nu(t).length)},At.isEqual=function(t,n){return wn(t,n)},At.isEqualWith=function(t,n,r){var e=(r=typeof r=="function"?r:T)?r(t,n):T;return e===T?wn(t,n,r):!!e;
|
||||
},At.isError=Le,At.isFinite=function(t){return typeof t=="number"&&Zu(t)},At.isFunction=Me,At.isInteger=Ce,At.isLength=ze,At.isMap=function(t){return De(t)&&"[object Map]"==Pr(t)},At.isMatch=function(t,n){return t===n||mn(t,n,Fr(n))},At.isMatchWith=function(t,n,r){return r=typeof r=="function"?r:T,mn(t,n,Fr(n),r)},At.isNaN=function(t){return $e(t)&&t!=+t},At.isNative=Fe,At.isNil=function(t){return null==t},At.isNull=function(t){return null===t},At.isNumber=$e,At.isObject=Ue,At.isObjectLike=De,At.isPlainObject=Ne,
|
||||
At.isRegExp=Pe,At.isSafeInteger=function(t){return Ce(t)&&t>=-9007199254740991&&9007199254740991>=t},At.isSet=function(t){return De(t)&&"[object Set]"==Pr(t)},At.isString=Ze,At.isSymbol=Te,At.isTypedArray=qe,At.isUndefined=function(t){return t===T},At.isWeakMap=function(t){return De(t)&&"[object WeakMap]"==Pr(t)},At.isWeakSet=function(t){return De(t)&&"[object WeakSet]"==Ou.call(t)},At.join=function(t,n){return t?Tu.call(t,n):""},At.kebabCase=Ri,At.last=le,At.lastIndexOf=function(t,n,r){var e=t?t.length:0;
|
||||
if(!e)return-1;var u=e;if(r!==T&&(u=Ge(r),u=(0>u?Vu(e+u,0):Ku(u,e-1))+1),n!==n)return M(t,u,true);for(;u--;)if(t[u]===n)return u;return-1},At.lowerCase=Wi,At.lowerFirst=Bi,At.lt=si,At.lte=hi,At.max=function(t){return t&&t.length?cn(t,cu,gn):T},At.maxBy=function(t,n){return t&&t.length?cn(t,Ur(n),gn):T},At.mean=function(t){return b(t,cu)},At.meanBy=function(t,n){return b(t,Ur(n))},At.min=function(t){return t&&t.length?cn(t,cu,kn):T},At.minBy=function(t,n){return t&&t.length?cn(t,Ur(n),kn):T},At.multiply=Qi,
|
||||
At.nth=function(t,n){return t&&t.length?Wn(t,Ge(n)):T},At.noConflict=function(){return Jt._===this&&(Jt._=ku),this},At.noop=su,At.now=Qo,At.pad=function(t,n,r){t=Qe(t);var e=(n=Ge(n))?N(t):0;return!n||e>=n?t:(n=(n-e)/2,Or(Nu(n),r)+t+Or($u(n),r))},At.padEnd=function(t,n,r){t=Qe(t);var e=(n=Ge(n))?N(t):0;return n&&n>e?t+Or(n-e,r):t},At.padStart=function(t,n,r){t=Qe(t);var e=(n=Ge(n))?N(t):0;return n&&n>e?Or(n-e,r)+t:t},At.parseInt=function(t,n,r){return r||null==n?n=0:n&&(n=+n),t=Qe(t).replace(ct,""),
|
||||
Gu(t,n||(vt.test(t)?16:10))},At.random=function(t,n,r){if(r&&typeof r!="boolean"&&Hr(t,n,r)&&(n=r=T),r===T&&(typeof n=="boolean"?(r=n,n=T):typeof t=="boolean"&&(r=t,t=T)),t===T&&n===T?(t=0,n=1):(t=Ye(t)||0,n===T?(n=t,t=0):n=Ye(n)||0),t>n){var e=t;t=n,n=e}return r||t%1||n%1?(r=Ju(),Ku(t+r*(n-t+Nt("1e-"+((r+"").length-1))),n)):Fn(t,n)},At.reduce=function(t,n,r){var e=ai(t)?h:x,u=3>arguments.length;return e(t,Ur(n,4),r,u,go)},At.reduceRight=function(t,n,r){var e=ai(t)?p:x,u=3>arguments.length;return e(t,Ur(n,4),r,u,yo);
|
||||
},At.repeat=function(t,n,r){return n=(r?Hr(t,n,r):n===T)?1:Ge(n),$n(Qe(t),n)},At.replace=function(){var t=arguments,n=Qe(t[0]);return 3>t.length?n:Yu.call(n,t[1],t[2])},At.result=function(t,n,r){n=Qr(n,t)?[n]:nr(n);var e=-1,u=n.length;for(u||(t=T,u=1);++e<u;){var o=null==t?T:t[ue(n[e])];o===T&&(e=u,o=r),t=Me(o)?o.call(t):o}return t},At.round=Xi,At.runInContext=Z,At.sample=function(t){t=We(t)?t:eu(t);var n=t.length;return n>0?t[Fn(0,n-1)]:T},At.size=function(t){if(null==t)return 0;if(We(t)){var n=t.length;
|
||||
return n&&Ze(t)?N(t):n}return De(t)&&(n=Pr(t),"[object Map]"==n||"[object Set]"==n)?t.size:nu(t).length},At.snakeCase=Li,At.some=function(t,n,r){var e=ai(t)?_:Zn;return r&&Hr(t,n,r)&&(n=T),e(t,Ur(n,3))},At.sortedIndex=function(t,n){return Tn(t,n)},At.sortedIndexBy=function(t,n,r){return qn(t,n,Ur(r))},At.sortedIndexOf=function(t,n){var r=t?t.length:0;if(r){var e=Tn(t,n);if(r>e&&Se(t[e],n))return e}return-1},At.sortedLastIndex=function(t,n){return Tn(t,n,true)},At.sortedLastIndexBy=function(t,n,r){return qn(t,n,Ur(r),true);
|
||||
},At.sortedLastIndexOf=function(t,n){if(t&&t.length){var r=Tn(t,n,true)-1;if(Se(t[r],n))return r}return-1},At.startCase=Mi,At.startsWith=function(t,n,r){return t=Qe(t),r=tn(Ge(r),0,t.length),t.lastIndexOf(Gn(n),r)==r},At.subtract=tf,At.sum=function(t){return t&&t.length?w(t,cu):0},At.sumBy=function(t,n){return t&&t.length?w(t,Ur(n)):0},At.template=function(t,n,r){var e=At.templateSettings;r&&Hr(t,n,r)&&(n=T),t=Qe(t),n=vi({},n,e,Tt),r=vi({},n.imports,e.imports,Tt);var u,o,i=nu(r),f=k(r,i),c=0;r=n.interpolate||wt;
|
||||
var a="__p+='";r=gu((n.escape||wt).source+"|"+r.source+"|"+(r===rt?pt: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(mt,L),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(K,""):a).replace(G,"$1").replace(J,"$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=Ui(function(){return Function(i,l+"return "+a).apply(T,f)}),n.source=a,Le(n))throw n;return n},At.times=function(t,n){if(t=Ge(t),1>t||t>9007199254740991)return[];var r=4294967295,e=Ku(t,4294967295);for(n=Ur(n),t-=4294967295,e=m(e,n);++r<t;)n(r);return e},At.toFinite=Ke,At.toInteger=Ge,At.toLength=Je,At.toLower=function(t){return Qe(t).toLowerCase()},At.toNumber=Ye,At.toSafeInteger=function(t){return tn(Ge(t),-9007199254740991,9007199254740991)},At.toString=Qe,At.toUpper=function(t){return Qe(t).toUpperCase();
|
||||
},At.trim=function(t,n,r){return(t=Qe(t))&&(r||n===T)?t.replace(ct,""):t&&(n=Gn(n))?(t=t.match(St),n=n.match(St),rr(t,I(t,n),S(t,n)+1).join("")):t},At.trimEnd=function(t,n,r){return(t=Qe(t))&&(r||n===T)?t.replace(lt,""):t&&(n=Gn(n))?(t=t.match(St),n=S(t,n.match(St))+1,rr(t,0,n).join("")):t},At.trimStart=function(t,n,r){return(t=Qe(t))&&(r||n===T)?t.replace(at,""):t&&(n=Gn(n))?(t=t.match(St),n=I(t,n.match(St)),rr(t,n).join("")):t},At.truncate=function(t,n){var r=30,e="...";if(Ue(n))var u="separator"in n?n.separator:u,r="length"in n?Ge(n.length):r,e="omission"in n?Gn(n.omission):e;
|
||||
t=Qe(t);var o=t.length;if(Wt.test(t))var i=t.match(St),o=i.length;if(r>=o)return t;if(o=r-N(e),1>o)return e;if(r=i?rr(i,0,o).join(""):t.slice(0,o),u===T)return r+e;if(i&&(o+=r.length-o),Pe(u)){if(t.slice(o).search(u)){var f=r;for(u.global||(u=gu(u.source,Qe(_t.exec(u))+"g")),u.lastIndex=0;i=u.exec(f);)var c=i.index;r=r.slice(0,c===T?o:c)}}else t.indexOf(Gn(u),o)!=o&&(u=r.lastIndexOf(u),u>-1&&(r=r.slice(0,u)));return r+e},At.unescape=function(t){return(t=Qe(t))&&Q.test(t)?t.replace(Y,P):t},At.uniqueId=function(t){
|
||||
var n=++mu;return Qe(t)+n},At.upperCase=Ci,At.upperFirst=zi,At.each=ye,At.eachRight=be,At.first=ae,lu(At,function(){var t={};return sn(At,function(n,r){wu.call(At.prototype,r)||(t[r]=n)}),t}(),{chain:false}),At.VERSION="4.12.0",u("bind bindKey curry curryRight partial partialRight".split(" "),function(t){At[t].placeholder=At}),u(["drop","take"],function(t,n){zt.prototype[t]=function(r){var e=this.__filtered__;if(e&&!n)return new zt(this);r=r===T?1:Vu(Ge(r),0);var u=this.clone();return e?u.__takeCount__=Ku(r,u.__takeCount__):u.__views__.push({
|
||||
size:Ku(r,4294967295),type:t+(0>u.__dir__?"Right":"")}),u},zt.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;zt.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:Ur(t,3),type:r}),n.__filtered__=n.__filtered__||e,n}}),u(["head","last"],function(t,n){var r="take"+(n?"Right":"");zt.prototype[t]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(t,n){var r="drop"+(n?"":"Right");
|
||||
zt.prototype[t]=function(){return this.__filtered__?new zt(this):this[r](1)}}),zt.prototype.compact=function(){return this.filter(cu)},zt.prototype.find=function(t){return this.filter(t).head()},zt.prototype.findLast=function(t){return this.reverse().find(t)},zt.prototype.invokeMap=Ie(function(t,n){return typeof t=="function"?new zt(this):this.map(function(r){return jn(r,t,n)})}),zt.prototype.reject=function(t){return t=Ur(t,3),this.filter(function(n){return!t(n)})},zt.prototype.slice=function(t,n){
|
||||
t=Ge(t);var r=this;return r.__filtered__&&(t>0||0>n)?new zt(r):(0>t?r=r.takeRight(-t):t&&(r=r.drop(t)),n!==T&&(n=Ge(n),r=0>n?r.dropRight(-n):r.take(n-t)),r)},zt.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},zt.prototype.toArray=function(){return this.take(4294967295)},sn(zt.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),e=/^(?:head|last)$/.test(n),u=At[e?"take"+("last"==n?"Right":""):n],o=e||/^find/.test(n);u&&(At.prototype[n]=function(){
|
||||
function n(t){return t=u.apply(At,s([t],f)),e&&h?t[0]:t}var i=this.__wrapped__,f=e?[1]:arguments,c=i instanceof zt,a=f[0],l=c||ai(i);l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);var h=this.__chain__,p=!!this.__actions__.length,a=o&&!h,c=c&&!p;return!o&&l?(i=c?i:new zt(this),i=t.apply(i,f),i.__actions__.push({func:ge,args:[n],thisArg:T}),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=yu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",e=/^(?:pop|shift)$/.test(t);
|
||||
At.prototype[t]=function(){var t=arguments;if(e&&!this.__chain__){var u=this.value();return n.apply(ai(u)?u:[],t)}return this[r](function(r){return n.apply(ai(r)?r:[],t)})}}),sn(zt.prototype,function(t,n){var r=At[n];if(r){var e=r.name+"";(fo[e]||(fo[e]=[])).push({name:n,func:r})}}),fo[jr(T,2).name]=[{name:"wrapper",func:T}],zt.prototype.clone=function(){var t=new zt(this.__wrapped__);return t.__actions__=cr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=cr(this.__iteratees__),
|
||||
t.__takeCount__=this.__takeCount__,t.__views__=cr(this.__views__),t},zt.prototype.reverse=function(){if(this.__filtered__){var t=new zt(this);t.__dir__=-1,t.__filtered__=true}else t=this.clone(),t.__dir__*=-1;return t},zt.prototype.value=function(){var t,n=this.__wrapped__.value(),r=this.__dir__,e=ai(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=Ku(t,f+s);break;case"takeRight":
|
||||
f=Vu(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=Ku(t,this.__takeCount__),!e||200>o||o==t&&a==t)return Hn(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},At.prototype.at=qo,At.prototype.chain=function(){return ve(this)},At.prototype.commit=function(){return new kt(this.value(),this.__chain__)},At.prototype.next=function(){
|
||||
this.__values__===T&&(this.__values__=Ve(this.value()));var t=this.__index__>=this.__values__.length,n=t?T:this.__values__[this.__index__++];return{done:t,value:n}},At.prototype.plant=function(t){for(var n,r=this;r instanceof Ot;){var e=ie(r);e.__index__=0,e.__values__=T,n?u.__wrapped__=e:n=e;var u=e,r=r.__wrapped__}return u.__wrapped__=t,n},At.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof zt?(this.__actions__.length&&(t=new zt(this)),t=t.reverse(),t.__actions__.push({func:ge,
|
||||
args:[he],thisArg:T}),new kt(t,this.__chain__)):this.thru(he)},At.prototype.toJSON=At.prototype.valueOf=At.prototype.value=function(){return Hn(this.__wrapped__,this.__actions__)},Cu&&(At.prototype[Cu]=de),At}var T,q=1/0,V=NaN,K=/\b__p\+='';/g,G=/\b(__p\+=)''\+/g,J=/(__e\(.*?\)|\b__t\))\+'';/g,Y=/&(?:amp|lt|gt|quot|#39|#96);/g,H=/[&<>"'`]/g,Q=RegExp(Y.source),X=RegExp(H.source),tt=/<%-([\s\S]+?)%>/g,nt=/<%([\s\S]+?)%>/g,rt=/<%=([\s\S]+?)%>/g,et=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ut=/^\w*$/,ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,it=/[\\^$.*+?()[\]{}|]/g,ft=RegExp(it.source),ct=/^\s+|\s+$/g,at=/^\s+/,lt=/\s+$/,st=/[a-zA-Z0-9]+/g,ht=/\\(\\)?/g,pt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_t=/\w*$/,vt=/^0x/i,gt=/^[-+]0x[0-9a-f]+$/i,dt=/^0b[01]+$/i,yt=/^\[object .+?Constructor\]$/,bt=/^0o[0-7]+$/i,xt=/^(?:0|[1-9]\d*)$/,jt=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,wt=/($^)/,mt=/['\n\r\u2028\u2029\\]/g,At="[\\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])?)*",Ot="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+At,kt="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",Et=RegExp("['\u2019]","g"),It=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),St=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+kt+At,"g"),Rt=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+",Ot].join("|"),"g"),Wt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),Bt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Lt="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 Ct={};Ct["[object Arguments]"]=Ct["[object Array]"]=Ct["[object ArrayBuffer]"]=Ct["[object DataView]"]=Ct["[object Boolean]"]=Ct["[object Date]"]=Ct["[object Float32Array]"]=Ct["[object Float64Array]"]=Ct["[object Int8Array]"]=Ct["[object Int16Array]"]=Ct["[object Int32Array]"]=Ct["[object Map]"]=Ct["[object Number]"]=Ct["[object Object]"]=Ct["[object RegExp]"]=Ct["[object Set]"]=Ct["[object String]"]=Ct["[object Symbol]"]=Ct["[object Uint8Array]"]=Ct["[object Uint8ClampedArray]"]=Ct["[object Uint16Array]"]=Ct["[object Uint32Array]"]=true,
|
||||
Ct["[object Error]"]=Ct["[object Function]"]=Ct["[object WeakMap]"]=false;var zt={"\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"},Ut={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Dt={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Ft={"function":true,object:true},$t={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"
|
||||
},Nt=parseFloat,Pt=parseInt,Zt=Ft[typeof exports]&&exports&&!exports.nodeType?exports:T,Tt=Ft[typeof module]&&module&&!module.nodeType?module:T,qt=Tt&&Tt.exports===Zt?Zt:T,Vt=R(Ft[typeof self]&&self),Kt=R(Ft[typeof window]&&window),Gt=R(Ft[typeof this]&&this),Jt=R(Zt&&Tt&&typeof global=="object"&&global)||Kt!==(Gt&&Gt.window)&&Kt||Vt||Gt||Function("return this")(),Yt=Z();(Kt||Vt||{})._=Yt,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return Yt}):Zt&&Tt?(qt&&((Tt.exports=Yt)._=Yt),
|
||||
Zt._=Yt):Jt._=Yt}).call(this);
|
||||
139
dist/mapping.fp.js
vendored
139
dist/mapping.fp.js
vendored
@@ -56,35 +56,49 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/** Used to map aliases to their real names. */
|
||||
exports.aliasToReal = {
|
||||
|
||||
// Lodash aliases.
|
||||
'each': 'forEach',
|
||||
'eachRight': 'forEachRight',
|
||||
'entries': 'toPairs',
|
||||
'entriesIn': 'toPairsIn',
|
||||
'extend': 'assignIn',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
|
||||
// Ramda aliases.
|
||||
'__': 'placeholder',
|
||||
'all': 'some',
|
||||
'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',
|
||||
'each': 'forEach',
|
||||
'eachRight': 'forEachRight',
|
||||
'equals': 'isEqual',
|
||||
'extend': 'assignIn',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
'identical': 'eq',
|
||||
'init': 'initial',
|
||||
'mapObj': 'mapValues',
|
||||
'invertObj': 'invert',
|
||||
'juxt': 'over',
|
||||
'omitAll': 'omit',
|
||||
'nAry': 'ary',
|
||||
'path': 'get',
|
||||
'pathEq': 'matchesProperty',
|
||||
'pathOr': 'getOr',
|
||||
'paths': 'at',
|
||||
'pickAll': 'pick',
|
||||
'pipe': 'flow',
|
||||
'pluck': 'map',
|
||||
'prop': 'get',
|
||||
'propOf': 'propertyOf',
|
||||
'propEq': 'matchesProperty',
|
||||
'propOr': 'getOr',
|
||||
'somePass': 'overSome',
|
||||
'props': 'at',
|
||||
'unapply': 'rest',
|
||||
'unnest': 'flatten',
|
||||
'useWith': 'overArgs',
|
||||
@@ -96,40 +110,45 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
exports.aryMethod = {
|
||||
'1': [
|
||||
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
|
||||
'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'methodOf', 'mixin',
|
||||
'over', 'overEvery', 'overSome', 'rest', 'reverse', 'round', 'runInContext',
|
||||
'spread', 'template', 'trim', 'trimEnd', 'trimStart', 'uniqueId', 'words'
|
||||
'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', 'bindKey',
|
||||
'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
|
||||
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
||||
'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq', 'every',
|
||||
'filter', 'find', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',
|
||||
'findLastKey', 'flatMap', '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', 'merge', 'minBy', 'omit',
|
||||
'omitBy', 'orderBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
|
||||
'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', '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', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
||||
'split', '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'
|
||||
'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', 'isEqualWith',
|
||||
'isMatchWith', 'mergeWith', 'pullAllBy', 'reduce', 'reduceRight', 'replace',
|
||||
'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy',
|
||||
'unionWith', 'xorBy', 'xorWith', 'zipWith'
|
||||
'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'
|
||||
'fill', 'setWith', 'updateWith'
|
||||
]
|
||||
};
|
||||
|
||||
@@ -142,10 +161,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
|
||||
/** Used to map method names to their iteratee ary. */
|
||||
exports.iterateeAry = {
|
||||
'assignWith': 2,
|
||||
'assignInWith': 2,
|
||||
'cloneDeepWith': 1,
|
||||
'cloneWith': 1,
|
||||
'dropRightWhile': 1,
|
||||
'dropWhile': 1,
|
||||
'every': 1,
|
||||
@@ -157,14 +172,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'findLastIndex': 1,
|
||||
'findLastKey': 1,
|
||||
'flatMap': 1,
|
||||
'flatMapDeep': 1,
|
||||
'flatMapDepth': 1,
|
||||
'forEach': 1,
|
||||
'forEachRight': 1,
|
||||
'forIn': 1,
|
||||
'forInRight': 1,
|
||||
'forOwn': 1,
|
||||
'forOwnRight': 1,
|
||||
'isEqualWith': 2,
|
||||
'isMatchWith': 2,
|
||||
'map': 1,
|
||||
'mapKeys': 1,
|
||||
'mapValues': 1,
|
||||
@@ -180,24 +195,38 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'transform': 2
|
||||
};
|
||||
|
||||
/** Used to map method names to iteratee rearg configs. */
|
||||
exports.iterateeRearg = {
|
||||
'mapKeys': [1]
|
||||
};
|
||||
|
||||
/** Used to map method names to rearg configs. */
|
||||
exports.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]
|
||||
};
|
||||
|
||||
/** Used to map method names to spread configs. */
|
||||
exports.methodSpread = {
|
||||
'invokeArgs': 2,
|
||||
'invokeArgsMap': 2,
|
||||
'partial': 1,
|
||||
'partialRight': 1
|
||||
'partialRight': 1,
|
||||
'without': 1
|
||||
};
|
||||
|
||||
/** Used to identify methods which mutate arrays or objects. */
|
||||
@@ -207,6 +236,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'pull': true,
|
||||
'pullAll': true,
|
||||
'pullAllBy': true,
|
||||
'pullAllWith': true,
|
||||
'pullAt': true,
|
||||
'remove': true,
|
||||
'reverse': true
|
||||
@@ -224,7 +254,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'set': {
|
||||
'set': true,
|
||||
'setWith': true,
|
||||
'unset': true
|
||||
'unset': true,
|
||||
'update': true,
|
||||
'updateWith': true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -260,30 +292,55 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
'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'
|
||||
};
|
||||
|
||||
/** Used to track methods that skip `_.rearg`. */
|
||||
/** Used to track methods that skip fixing their arity. */
|
||||
exports.skipFixed = {
|
||||
'castArray': true,
|
||||
'flow': true,
|
||||
'flowRight': true,
|
||||
'iteratee': true,
|
||||
'mixin': true,
|
||||
'runInContext': true
|
||||
};
|
||||
|
||||
/** Used to track methods that skip rearranging arguments. */
|
||||
exports.skipRearg = {
|
||||
'add': true,
|
||||
'assign': true,
|
||||
'assignIn': true,
|
||||
'bind': true,
|
||||
'bindKey': true,
|
||||
'concat': true,
|
||||
'difference': true,
|
||||
'divide': true,
|
||||
'eq': true,
|
||||
'gt': true,
|
||||
'gte': true,
|
||||
'isEqual': true,
|
||||
'lt': true,
|
||||
'lte': true,
|
||||
'matchesProperty': true,
|
||||
'merge': true,
|
||||
'multiply': true,
|
||||
'overArgs': true,
|
||||
'partial': true,
|
||||
'partialRight': true,
|
||||
'random': true,
|
||||
'range': true,
|
||||
'rangeRight': true,
|
||||
'subtract': true,
|
||||
'without': true,
|
||||
'zip': true,
|
||||
'zipObject': true
|
||||
};
|
||||
|
||||
3262
doc/README.md
3262
doc/README.md
File diff suppressed because it is too large
Load Diff
@@ -1,14 +1,99 @@
|
||||
var mapping = require('./_mapping'),
|
||||
mutateMap = mapping.mutate,
|
||||
placeholder = {};
|
||||
fallbackHolder = require('./placeholder');
|
||||
|
||||
/**
|
||||
* Creates a function, with an arity of `n`, that invokes `func` with the
|
||||
* arguments it receives.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {number} n The arity of the new function.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function baseArity(func, n) {
|
||||
return n == 2
|
||||
? function(a, b) { return func.apply(undefined, arguments); }
|
||||
: function(a) { return func.apply(undefined, arguments); };
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that invokes `func`, with up to `n` arguments, ignoring
|
||||
* any additional arguments.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to cap arguments for.
|
||||
* @param {number} n The arity cap.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function baseAry(func, n) {
|
||||
return n == 2
|
||||
? function(a, b) { return func(a, b); }
|
||||
: function(a) { return func(a); };
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a clone of `array`.
|
||||
*
|
||||
* @private
|
||||
* @param {Array} array The array to clone.
|
||||
* @returns {Array} Returns the cloned array.
|
||||
*/
|
||||
function cloneArray(array) {
|
||||
var length = array ? array.length : 0,
|
||||
result = Array(length);
|
||||
|
||||
while (length--) {
|
||||
result[length] = array[length];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that clones a given object using the assignment `func`.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The assignment function.
|
||||
* @returns {Function} Returns the new cloner function.
|
||||
*/
|
||||
function createCloner(func) {
|
||||
return function(object) {
|
||||
return func({}, object);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that wraps `func` and uses `cloner` to clone the first
|
||||
* argument it receives.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {Function} cloner The function to clone arguments.
|
||||
* @returns {Function} Returns the new immutable function.
|
||||
*/
|
||||
function immutWrap(func, cloner) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return result;
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
args[length] = arguments[length];
|
||||
}
|
||||
var result = args[0] = cloner.apply(undefined, args);
|
||||
func.apply(undefined, args);
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* The base implementation of `convert` which accepts a `util` object of methods
|
||||
* required to perform conversions.
|
||||
*
|
||||
* @param {Object} util The util object.
|
||||
* @param {string} name The name of the function to wrap.
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {string} name The name of the function to convert.
|
||||
* @param {Function} func The function to convert.
|
||||
* @param {Object} [options] The options object.
|
||||
* @param {boolean} [options.cap=true] Specify capping iteratee arguments.
|
||||
* @param {boolean} [options.curry=true] Specify currying.
|
||||
@@ -40,11 +125,16 @@ function baseConvert(util, name, func, options) {
|
||||
'rearg': 'rearg' in options ? options.rearg : true
|
||||
};
|
||||
|
||||
var forceRearg = ('rearg' in options) && options.rearg;
|
||||
var forceCurry = ('curry' in options) && options.curry,
|
||||
forceFixed = ('fixed' in options) && options.fixed,
|
||||
forceRearg = ('rearg' in options) && options.rearg,
|
||||
placeholder = isLib ? func : fallbackHolder,
|
||||
pristine = isLib ? func.runInContext() : undefined;
|
||||
|
||||
var helpers = isLib ? func : {
|
||||
'ary': util.ary,
|
||||
'cloneDeep': util.cloneDeep,
|
||||
'assign': util.assign,
|
||||
'clone': util.clone,
|
||||
'curry': util.curry,
|
||||
'forEach': util.forEach,
|
||||
'isArray': util.isArray,
|
||||
@@ -52,87 +142,24 @@ function baseConvert(util, name, func, options) {
|
||||
'iteratee': util.iteratee,
|
||||
'keys': util.keys,
|
||||
'rearg': util.rearg,
|
||||
'spread': util.spread
|
||||
'spread': util.spread,
|
||||
'toPath': util.toPath
|
||||
};
|
||||
|
||||
var ary = helpers.ary,
|
||||
cloneDeep = helpers.cloneDeep,
|
||||
assign = helpers.assign,
|
||||
clone = helpers.clone,
|
||||
curry = helpers.curry,
|
||||
each = helpers.forEach,
|
||||
isArray = helpers.isArray,
|
||||
isFunction = helpers.isFunction,
|
||||
keys = helpers.keys,
|
||||
rearg = helpers.rearg,
|
||||
spread = helpers.spread;
|
||||
spread = helpers.spread,
|
||||
toPath = helpers.toPath;
|
||||
|
||||
var aryMethodKeys = keys(mapping.aryMethod);
|
||||
|
||||
var baseArity = function(func, n) {
|
||||
return n == 2
|
||||
? function(a, b) { return func.apply(undefined, arguments); }
|
||||
: function(a) { return func.apply(undefined, arguments); };
|
||||
};
|
||||
|
||||
var baseAry = function(func, n) {
|
||||
return n == 2
|
||||
? function(a, b) { return func(a, b); }
|
||||
: function(a) { return func(a); };
|
||||
};
|
||||
|
||||
var cloneArray = function(array) {
|
||||
var length = array ? array.length : 0,
|
||||
result = Array(length);
|
||||
|
||||
while (length--) {
|
||||
result[length] = array[length];
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
var createCloner = function(func) {
|
||||
return function(object) {
|
||||
return func({}, object);
|
||||
};
|
||||
};
|
||||
|
||||
var immutWrap = function(func, cloner) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return result;
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
args[length] = arguments[length];
|
||||
}
|
||||
var result = args[0] = cloner(args[0]);
|
||||
func.apply(undefined, args);
|
||||
return result;
|
||||
};
|
||||
};
|
||||
|
||||
var iterateeAry = function(func, n) {
|
||||
return overArg(func, function(func) {
|
||||
return baseAry(func, n);
|
||||
});
|
||||
};
|
||||
|
||||
var overArg = function(func, iteratee, retArg) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return func();
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
args[length] = arguments[length];
|
||||
}
|
||||
var index = config.rearg ? 0 : (length - 1);
|
||||
args[index] = iteratee(args[index]);
|
||||
return func.apply(undefined, args);
|
||||
};
|
||||
};
|
||||
|
||||
var wrappers = {
|
||||
'castArray': function(castArray) {
|
||||
return function() {
|
||||
@@ -145,15 +172,15 @@ function baseConvert(util, name, func, options) {
|
||||
'iteratee': function(iteratee) {
|
||||
return function() {
|
||||
var func = arguments[0],
|
||||
arity = arguments[1];
|
||||
arity = arguments[1],
|
||||
result = iteratee(func, arity),
|
||||
length = result.length;
|
||||
|
||||
if (!config.cap) {
|
||||
return iteratee(func, arity);
|
||||
if (config.cap && typeof arity == 'number') {
|
||||
arity = arity > 2 ? (arity - 2) : 1;
|
||||
return (length && length <= arity) ? result : baseAry(result, arity);
|
||||
}
|
||||
arity = arity > 2 ? (arity - 2) : 1;
|
||||
func = iteratee(func);
|
||||
var length = func.length;
|
||||
return (length && length <= arity) ? func : baseAry(func, arity);
|
||||
return result;
|
||||
};
|
||||
},
|
||||
'mixin': function(mixin) {
|
||||
@@ -162,25 +189,21 @@ 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;
|
||||
@@ -193,14 +216,144 @@ function baseConvert(util, name, func, options) {
|
||||
}
|
||||
};
|
||||
|
||||
var wrap = function(name, func) {
|
||||
name = mapping.aliasToReal[name] || name;
|
||||
var wrapper = wrappers[name];
|
||||
if (wrapper) {
|
||||
return wrapper(func);
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Creates a clone of `object` by `path`.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} object The object to clone.
|
||||
* @param {Array|string} path The path to clone by.
|
||||
* @returns {Object} Returns the cloned object.
|
||||
*/
|
||||
function cloneByPath(object, path) {
|
||||
path = toPath(path);
|
||||
|
||||
var index = -1,
|
||||
length = path.length,
|
||||
lastIndex = length - 1,
|
||||
result = clone(Object(object)),
|
||||
nested = result;
|
||||
|
||||
while (nested != null && ++index < length) {
|
||||
var key = path[index],
|
||||
value = nested[key];
|
||||
|
||||
if (value != null) {
|
||||
nested[path[index]] = clone(index == lastIndex ? value : Object(value));
|
||||
}
|
||||
nested = nested[key];
|
||||
}
|
||||
var wrapped = func;
|
||||
if (config.immutable) {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
|
||||
* version with conversion `options` applied.
|
||||
*
|
||||
* @param {Object} [options] The options object. See `baseConvert` for more details.
|
||||
* @returns {Function} Returns the converted `lodash`.
|
||||
*/
|
||||
function convertLib(options) {
|
||||
return _.runInContext.convert(options)(undefined);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a converter function for `func` of `name`.
|
||||
*
|
||||
* @param {string} name The name of the function to convert.
|
||||
* @param {Function} func The function to convert.
|
||||
* @returns {Function} Returns the new converter function.
|
||||
*/
|
||||
function createConverter(name, func) {
|
||||
var oldOptions = options;
|
||||
return function(options) {
|
||||
var newUtil = isLib ? pristine : helpers,
|
||||
newFunc = isLib ? pristine[name] : func,
|
||||
newOptions = assign(assign({}, oldOptions), options);
|
||||
|
||||
return baseConvert(newUtil, name, newFunc, newOptions);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that wraps `func` to invoke its iteratee, with up to `n`
|
||||
* arguments, ignoring any additional arguments.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to cap iteratee arguments for.
|
||||
* @param {number} n The arity cap.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function iterateeAry(func, n) {
|
||||
return overArg(func, function(func) {
|
||||
return typeof func == 'function' ? baseAry(func, n) : func;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that wraps `func` to invoke its iteratee with arguments
|
||||
* arranged according to the specified `indexes` where the argument value at
|
||||
* the first index is provided as the first argument, the argument value at
|
||||
* the second index is provided as the second argument, and so on.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to rearrange iteratee arguments for.
|
||||
* @param {number[]} indexes The arranged argument indexes.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function iterateeRearg(func, indexes) {
|
||||
return overArg(func, function(func) {
|
||||
var n = indexes.length;
|
||||
return baseArity(rearg(baseAry(func, n), indexes), n);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that invokes `func` with its first argument passed
|
||||
* thru `transform`.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to wrap.
|
||||
* @param {...Function} transform The functions to transform the first argument.
|
||||
* @returns {Function} Returns the new function.
|
||||
*/
|
||||
function overArg(func, transform) {
|
||||
return function() {
|
||||
var length = arguments.length;
|
||||
if (!length) {
|
||||
return func();
|
||||
}
|
||||
var args = Array(length);
|
||||
while (length--) {
|
||||
args[length] = arguments[length];
|
||||
}
|
||||
var index = config.rearg ? 0 : (length - 1);
|
||||
args[index] = transform(args[index]);
|
||||
return func.apply(undefined, args);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a function that wraps `func` and applys the conversions
|
||||
* rules by `name`.
|
||||
*
|
||||
* @private
|
||||
* @param {string} name The name of the function to wrap.
|
||||
* @param {Function} func The function to wrap.
|
||||
* @returns {Function} Returns the converted function.
|
||||
*/
|
||||
function wrap(name, func) {
|
||||
name = mapping.aliasToReal[name] || name;
|
||||
|
||||
var result,
|
||||
wrapped = func,
|
||||
wrapper = wrappers[name];
|
||||
|
||||
if (wrapper) {
|
||||
wrapped = wrapper(func);
|
||||
}
|
||||
else if (config.immutable) {
|
||||
if (mutateMap.array[name]) {
|
||||
wrapped = immutWrap(func, cloneArray);
|
||||
}
|
||||
@@ -208,18 +361,18 @@ function baseConvert(util, name, func, options) {
|
||||
wrapped = immutWrap(func, createCloner(func));
|
||||
}
|
||||
else if (mutateMap.set[name]) {
|
||||
wrapped = immutWrap(func, cloneDeep);
|
||||
wrapped = immutWrap(func, cloneByPath);
|
||||
}
|
||||
}
|
||||
var result;
|
||||
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];
|
||||
|
||||
result = wrapped;
|
||||
if (config.fixed) {
|
||||
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
|
||||
result = spreadStart === undefined
|
||||
? ary(result, aryKey)
|
||||
: spread(result, spreadStart);
|
||||
@@ -227,10 +380,15 @@ function baseConvert(util, name, func, options) {
|
||||
if (config.rearg && aryKey > 1 && (forceRearg || !mapping.skipRearg[name])) {
|
||||
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[aryKey]);
|
||||
}
|
||||
if (config.cap && aryN) {
|
||||
result = iterateeAry(result, aryN);
|
||||
if (config.cap) {
|
||||
if (reargIndexes) {
|
||||
result = iterateeRearg(result, reargIndexes);
|
||||
} else if (aryN) {
|
||||
result = iterateeAry(result, aryN);
|
||||
}
|
||||
}
|
||||
if (config.curry && aryKey > 1) {
|
||||
if (forceCurry || (config.curry && aryKey > 1)) {
|
||||
forceCurry && console.log(forceCurry, name);
|
||||
result = curry(result, aryKey);
|
||||
}
|
||||
return false;
|
||||
@@ -240,19 +398,27 @@ function baseConvert(util, name, func, options) {
|
||||
});
|
||||
|
||||
result || (result = wrapped);
|
||||
if (result == func) {
|
||||
result = forceCurry ? curry(result, 1) : function() {
|
||||
return func.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
result.convert = createConverter(name, func);
|
||||
if (mapping.placeholder[name]) {
|
||||
setPlaceholder = true;
|
||||
func.placeholder = result.placeholder = placeholder;
|
||||
result.placeholder = func.placeholder = placeholder;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
if (!isObj) {
|
||||
return wrap(name, func);
|
||||
}
|
||||
var _ = func;
|
||||
|
||||
// Iterate over methods for the current ary cap.
|
||||
// Convert methods by ary cap.
|
||||
var pairs = [];
|
||||
each(aryMethodKeys, function(aryKey) {
|
||||
each(mapping.aryMethod[aryKey], function(key) {
|
||||
@@ -263,15 +429,31 @@ function baseConvert(util, name, func, options) {
|
||||
});
|
||||
});
|
||||
|
||||
// Convert remaining methods.
|
||||
each(keys(_), function(key) {
|
||||
var func = _[key];
|
||||
if (typeof func == 'function') {
|
||||
var length = pairs.length;
|
||||
while (length--) {
|
||||
if (pairs[length][0] == key) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
func.convert = createConverter(key, func);
|
||||
pairs.push([key, func]);
|
||||
}
|
||||
});
|
||||
|
||||
// Assign to `_` leaving `_.prototype` unchanged to allow chaining.
|
||||
each(pairs, function(pair) {
|
||||
_[pair[0]] = pair[1];
|
||||
});
|
||||
|
||||
_.convert = convertLib;
|
||||
if (setPlaceholder) {
|
||||
_.placeholder = placeholder;
|
||||
}
|
||||
// Wrap the lodash method and its aliases.
|
||||
// Assign aliases.
|
||||
each(keys(_), function(key) {
|
||||
each(mapping.realToAlias[key] || [], function(alias) {
|
||||
_[alias] = _[key];
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
var baseConvert = require('./_baseConvert');
|
||||
|
||||
/**
|
||||
* Converts `lodash` to an immutable auto-curried iteratee-first data-last version.
|
||||
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
|
||||
* version with conversion `options` applied.
|
||||
*
|
||||
* @param {Function} lodash The lodash function.
|
||||
* @param {Function} lodash The lodash function to convert.
|
||||
* @param {Object} [options] The options object. See `baseConvert` for more details.
|
||||
* @returns {Function} Returns the converted `lodash`.
|
||||
*/
|
||||
|
||||
139
fp/_mapping.js
139
fp/_mapping.js
@@ -1,34 +1,48 @@
|
||||
/** Used to map aliases to their real names. */
|
||||
exports.aliasToReal = {
|
||||
|
||||
// Lodash aliases.
|
||||
'each': 'forEach',
|
||||
'eachRight': 'forEachRight',
|
||||
'entries': 'toPairs',
|
||||
'entriesIn': 'toPairsIn',
|
||||
'extend': 'assignIn',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
|
||||
// Ramda aliases.
|
||||
'__': 'placeholder',
|
||||
'all': 'some',
|
||||
'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',
|
||||
'each': 'forEach',
|
||||
'eachRight': 'forEachRight',
|
||||
'equals': 'isEqual',
|
||||
'extend': 'assignIn',
|
||||
'extendWith': 'assignInWith',
|
||||
'first': 'head',
|
||||
'identical': 'eq',
|
||||
'init': 'initial',
|
||||
'mapObj': 'mapValues',
|
||||
'invertObj': 'invert',
|
||||
'juxt': 'over',
|
||||
'omitAll': 'omit',
|
||||
'nAry': 'ary',
|
||||
'path': 'get',
|
||||
'pathEq': 'matchesProperty',
|
||||
'pathOr': 'getOr',
|
||||
'paths': 'at',
|
||||
'pickAll': 'pick',
|
||||
'pipe': 'flow',
|
||||
'pluck': 'map',
|
||||
'prop': 'get',
|
||||
'propOf': 'propertyOf',
|
||||
'propEq': 'matchesProperty',
|
||||
'propOr': 'getOr',
|
||||
'somePass': 'overSome',
|
||||
'props': 'at',
|
||||
'unapply': 'rest',
|
||||
'unnest': 'flatten',
|
||||
'useWith': 'overArgs',
|
||||
@@ -40,40 +54,45 @@ exports.aliasToReal = {
|
||||
exports.aryMethod = {
|
||||
'1': [
|
||||
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
|
||||
'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'methodOf', 'mixin',
|
||||
'over', 'overEvery', 'overSome', 'rest', 'reverse', 'round', 'runInContext',
|
||||
'spread', 'template', 'trim', 'trimEnd', 'trimStart', 'uniqueId', 'words'
|
||||
'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', 'bindKey',
|
||||
'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
|
||||
'bindKey', 'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
||||
'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq', 'every',
|
||||
'filter', 'find', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',
|
||||
'findLastKey', 'flatMap', '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', 'merge', 'minBy', 'omit',
|
||||
'omitBy', 'orderBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
|
||||
'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', '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', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
||||
'split', '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'
|
||||
'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', 'isEqualWith',
|
||||
'isMatchWith', 'mergeWith', 'pullAllBy', 'reduce', 'reduceRight', 'replace',
|
||||
'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy',
|
||||
'unionWith', 'xorBy', 'xorWith', 'zipWith'
|
||||
'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'
|
||||
'fill', 'setWith', 'updateWith'
|
||||
]
|
||||
};
|
||||
|
||||
@@ -86,10 +105,6 @@ exports.aryRearg = {
|
||||
|
||||
/** Used to map method names to their iteratee ary. */
|
||||
exports.iterateeAry = {
|
||||
'assignWith': 2,
|
||||
'assignInWith': 2,
|
||||
'cloneDeepWith': 1,
|
||||
'cloneWith': 1,
|
||||
'dropRightWhile': 1,
|
||||
'dropWhile': 1,
|
||||
'every': 1,
|
||||
@@ -101,14 +116,14 @@ exports.iterateeAry = {
|
||||
'findLastIndex': 1,
|
||||
'findLastKey': 1,
|
||||
'flatMap': 1,
|
||||
'flatMapDeep': 1,
|
||||
'flatMapDepth': 1,
|
||||
'forEach': 1,
|
||||
'forEachRight': 1,
|
||||
'forIn': 1,
|
||||
'forInRight': 1,
|
||||
'forOwn': 1,
|
||||
'forOwnRight': 1,
|
||||
'isEqualWith': 2,
|
||||
'isMatchWith': 2,
|
||||
'map': 1,
|
||||
'mapKeys': 1,
|
||||
'mapValues': 1,
|
||||
@@ -124,24 +139,38 @@ exports.iterateeAry = {
|
||||
'transform': 2
|
||||
};
|
||||
|
||||
/** Used to map method names to iteratee rearg configs. */
|
||||
exports.iterateeRearg = {
|
||||
'mapKeys': [1]
|
||||
};
|
||||
|
||||
/** Used to map method names to rearg configs. */
|
||||
exports.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]
|
||||
};
|
||||
|
||||
/** Used to map method names to spread configs. */
|
||||
exports.methodSpread = {
|
||||
'invokeArgs': 2,
|
||||
'invokeArgsMap': 2,
|
||||
'partial': 1,
|
||||
'partialRight': 1
|
||||
'partialRight': 1,
|
||||
'without': 1
|
||||
};
|
||||
|
||||
/** Used to identify methods which mutate arrays or objects. */
|
||||
@@ -151,6 +180,7 @@ exports.mutate = {
|
||||
'pull': true,
|
||||
'pullAll': true,
|
||||
'pullAllBy': true,
|
||||
'pullAllWith': true,
|
||||
'pullAt': true,
|
||||
'remove': true,
|
||||
'reverse': true
|
||||
@@ -168,7 +198,9 @@ exports.mutate = {
|
||||
'set': {
|
||||
'set': true,
|
||||
'setWith': true,
|
||||
'unset': true
|
||||
'unset': true,
|
||||
'update': true,
|
||||
'updateWith': true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -204,30 +236,55 @@ exports.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'
|
||||
};
|
||||
|
||||
/** Used to track methods that skip `_.rearg`. */
|
||||
/** Used to track methods that skip fixing their arity. */
|
||||
exports.skipFixed = {
|
||||
'castArray': true,
|
||||
'flow': true,
|
||||
'flowRight': true,
|
||||
'iteratee': true,
|
||||
'mixin': true,
|
||||
'runInContext': true
|
||||
};
|
||||
|
||||
/** Used to track methods that skip rearranging arguments. */
|
||||
exports.skipRearg = {
|
||||
'add': true,
|
||||
'assign': true,
|
||||
'assignIn': true,
|
||||
'bind': true,
|
||||
'bindKey': true,
|
||||
'concat': true,
|
||||
'difference': true,
|
||||
'divide': true,
|
||||
'eq': true,
|
||||
'gt': true,
|
||||
'gte': true,
|
||||
'isEqual': true,
|
||||
'lt': true,
|
||||
'lte': true,
|
||||
'matchesProperty': true,
|
||||
'merge': true,
|
||||
'multiply': true,
|
||||
'overArgs': true,
|
||||
'partial': true,
|
||||
'partialRight': true,
|
||||
'random': true,
|
||||
'range': true,
|
||||
'rangeRight': true,
|
||||
'subtract': true,
|
||||
'without': true,
|
||||
'zip': true,
|
||||
'zipObject': true
|
||||
};
|
||||
|
||||
6
fp/placeholder.js
Normal file
6
fp/placeholder.js
Normal file
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* The default argument placeholder value for methods.
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
module.exports = {};
|
||||
71
lib/common/file.js
Normal file
71
lib/common/file.js
Normal file
@@ -0,0 +1,71 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
glob = require('glob'),
|
||||
path = require('path');
|
||||
|
||||
var minify = require('../common/minify.js');
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Creates a [fs.copy](https://github.com/jprichardson/node-fs-extra#copy)
|
||||
* function with `srcPath` and `destPath` partially applied.
|
||||
*
|
||||
* @memberOf file
|
||||
* @param {string} srcPath The path of the file to copy.
|
||||
* @param {string} destPath The path to copy the file to.
|
||||
* @returns {Function} Returns the partially applied function.
|
||||
*/
|
||||
function copy(srcPath, destPath) {
|
||||
return _.partial(fs.copy, srcPath, destPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an object of compiled template and base name 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));
|
||||
result[key] = _.template(fs.readFileSync(filePath, 'utf8'));
|
||||
}, {});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a `minify` function with `srcPath` and `destPath` partially applied.
|
||||
*
|
||||
* @memberOf file
|
||||
* @param {string} srcPath The path of the file to minify.
|
||||
* @param {string} destPath The path to write the file to.
|
||||
* @returns {Function} Returns the partially applied function.
|
||||
*/
|
||||
function min(srcPath, destPath) {
|
||||
return _.partial(minify, srcPath, destPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a [fs.writeFile](https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback)
|
||||
* function with `filePath` and `data` partially applied.
|
||||
*
|
||||
* @memberOf file
|
||||
* @param {string} destPath The path to write the file to.
|
||||
* @param {string} data The data to write to the file.
|
||||
* @returns {Function} Returns the partially applied function.
|
||||
*/
|
||||
function write(destPath, data) {
|
||||
return _.partial(fs.writeFile, destPath, data);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
module.exports = {
|
||||
'copy': copy,
|
||||
'globTemplate': globTemplate,
|
||||
'min': min,
|
||||
'write': write
|
||||
};
|
||||
9
lib/common/mapping.js
Normal file
9
lib/common/mapping.js
Normal file
@@ -0,0 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
var _mapping = require('../../fp/_mapping'),
|
||||
util = require('./util'),
|
||||
Hash = util.Hash;
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
module.exports = new Hash(_mapping);
|
||||
@@ -4,23 +4,36 @@ var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
uglify = require('uglify-js');
|
||||
|
||||
var uglifyOptions = require('./uglify.options.js');
|
||||
var uglifyOptions = require('./uglify.options');
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function minify(inpath, outpath, callback, options) {
|
||||
if (_.isFunction(outpath)) {
|
||||
/**
|
||||
* Asynchronously minifies the file at `srcPath`, writes it to `destPath`, and
|
||||
* 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`.
|
||||
*
|
||||
* @param {string} srcPath The path of the file to minify.
|
||||
* @param {string} [destPath] The path to write the file to.
|
||||
* @param {Function} callback The function invoked upon completion.
|
||||
* @param {Object} [option] The UglifyJS options object.
|
||||
*/
|
||||
function minify(srcPath, destPath, callback, options) {
|
||||
if (_.isFunction(destPath)) {
|
||||
if (_.isObject(callback)) {
|
||||
options = callback;
|
||||
}
|
||||
callback = outpath;
|
||||
outpath = undefined;
|
||||
callback = destPath;
|
||||
destPath = undefined;
|
||||
}
|
||||
if (!outpath) {
|
||||
outpath = inpath.replace(/(?=\.js$)/, '.min');
|
||||
if (!destPath) {
|
||||
destPath = srcPath.replace(/(?=\.js$)/, '.min');
|
||||
}
|
||||
var output = uglify.minify(inpath, _.defaults(options || {}, uglifyOptions));
|
||||
fs.writeFile(outpath, output.code, 'utf-8', callback);
|
||||
var output = uglify.minify(srcPath, _.defaults(options || {}, uglifyOptions));
|
||||
fs.writeFile(destPath, output.code, 'utf-8', callback);
|
||||
}
|
||||
|
||||
module.exports = minify;
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* The UglifyJS options object for
|
||||
* [compress](https://github.com/mishoo/UglifyJS2#compressor-options),
|
||||
* [mangle](https://github.com/mishoo/UglifyJS2#mangler-options), and
|
||||
* [output](https://github.com/mishoo/UglifyJS2#beautifier-options) options.
|
||||
*/
|
||||
module.exports = {
|
||||
'compress': {
|
||||
'pure_getters': true,
|
||||
'unsafe': true,
|
||||
'unsafe_comps': true,
|
||||
'warnings': false
|
||||
},
|
||||
'mangle': {
|
||||
|
||||
@@ -1,18 +1,27 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
glob = require('glob'),
|
||||
path = require('path');
|
||||
var _ = require('lodash');
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function globTemplate(pattern) {
|
||||
return _.transform(glob.sync(pattern), function(result, filePath) {
|
||||
result[path.basename(filePath, path.extname(filePath))] = _.template(fs.readFileSync(filePath));
|
||||
}, {});
|
||||
/**
|
||||
* Creates a hash object. If a `properties` object is provided, its own
|
||||
* enumerable properties are assigned to the created object.
|
||||
*
|
||||
* @memberOf util
|
||||
* @param {Object} [properties] The properties to assign to the object.
|
||||
* @returns {Object} Returns the new hash object.
|
||||
*/
|
||||
function Hash(properties) {
|
||||
return _.transform(properties, function(result, value, key) {
|
||||
result[key] = (_.isPlainObject(value) && !(value instanceof Hash))
|
||||
? new Hash(value)
|
||||
: value;
|
||||
}, this);
|
||||
}
|
||||
|
||||
Hash.prototype = Object.create(null);
|
||||
|
||||
module.exports = {
|
||||
'globTemplate': globTemplate
|
||||
'Hash': Hash
|
||||
};
|
||||
|
||||
@@ -5,7 +5,7 @@ var _ = require('lodash'),
|
||||
path = require('path'),
|
||||
webpack = require('webpack');
|
||||
|
||||
var minify = require('../common/minify.js');
|
||||
var file = require('../common/file');
|
||||
|
||||
var basePath = path.join(__dirname, '..', '..'),
|
||||
distPath = path.join(basePath, 'dist'),
|
||||
@@ -48,7 +48,7 @@ function build() {
|
||||
async.series([
|
||||
_.partial(webpack, mappingConfig),
|
||||
_.partial(webpack, fpConfig),
|
||||
_.partial(minify, path.join(distPath, filename))
|
||||
file.min(path.join(distPath, filename))
|
||||
], onComplete);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
|
||||
var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
path = require('path'),
|
||||
util = require('../common/util');
|
||||
path = require('path');
|
||||
|
||||
var mapping = require('../../fp/_mapping'),
|
||||
templatePath = path.join(__dirname, 'template/doc'),
|
||||
template = util.globTemplate(path.join(templatePath, '*.jst'));
|
||||
var file = require('../common/file'),
|
||||
mapping = require('../common/mapping');
|
||||
|
||||
var templatePath = path.join(__dirname, 'template/doc'),
|
||||
template = file.globTemplate(path.join(templatePath, '*.jst'));
|
||||
|
||||
var argNames = ['a', 'b', 'c', 'd'];
|
||||
|
||||
@@ -18,9 +19,11 @@ var templateData = {
|
||||
};
|
||||
|
||||
function toArgOrder(array) {
|
||||
return '`(' + _.map(array, function(value) {
|
||||
return argNames[value];
|
||||
}).join(', ') + ')`';
|
||||
var reordered = [];
|
||||
_.each(array, function(newIndex, index) {
|
||||
reordered[newIndex] = argNames[index];
|
||||
});
|
||||
return '`(' + reordered.join(', ') + ')`';
|
||||
}
|
||||
|
||||
function toFuncList(array) {
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
var _ = require('lodash'),
|
||||
async = require('async'),
|
||||
fs = require('fs-extra'),
|
||||
glob = require('glob'),
|
||||
path = require('path'),
|
||||
util = require('../common/util');
|
||||
path = require('path');
|
||||
|
||||
var mapping = require('../../fp/_mapping'),
|
||||
templatePath = path.join(__dirname, 'template/modules'),
|
||||
template = util.globTemplate(path.join(templatePath, '*.jst'));
|
||||
var file = require('../common/file'),
|
||||
mapping = require('../common/mapping');
|
||||
|
||||
var templatePath = path.join(__dirname, 'template/modules'),
|
||||
template = file.globTemplate(path.join(templatePath, '*.jst'));
|
||||
|
||||
var aryMethods = _.union(
|
||||
mapping.aryMethod[1],
|
||||
@@ -35,15 +35,13 @@ var categories = [
|
||||
var ignored = [
|
||||
'_*.js',
|
||||
'core.js',
|
||||
'core.min.js',
|
||||
'fp.js',
|
||||
'index.js',
|
||||
'lodash.js'
|
||||
'lodash.js',
|
||||
'lodash.min.js'
|
||||
];
|
||||
|
||||
function copyFile(srcPath, destPath) {
|
||||
return _.partial(fs.copy, srcPath, destPath);
|
||||
}
|
||||
|
||||
function isAlias(funcName) {
|
||||
return _.has(mapping.aliasToReal, funcName);
|
||||
}
|
||||
@@ -74,10 +72,6 @@ function getTemplate(moduleName) {
|
||||
return template.module(data);
|
||||
}
|
||||
|
||||
function writeFile(filePath, data) {
|
||||
return _.partial(fs.writeFile, filePath, data);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function onComplete(error) {
|
||||
@@ -103,8 +97,7 @@ function build(target) {
|
||||
_.each([mapping.aliasToReal, mapping.remap], function(data) {
|
||||
_.forOwn(data, function(realName, alias) {
|
||||
var modulePath = path.join(target, alias + '.js');
|
||||
if (!_.startsWith(alias, '_') &&
|
||||
!_.includes(modulePaths, modulePath)) {
|
||||
if (!_.includes(modulePaths, modulePath)) {
|
||||
modulePaths.push(modulePath);
|
||||
}
|
||||
});
|
||||
@@ -112,13 +105,14 @@ function build(target) {
|
||||
|
||||
var actions = modulePaths.map(function(modulePath) {
|
||||
var moduleName = path.basename(modulePath, '.js');
|
||||
return writeFile(path.join(fpPath, moduleName + '.js'), getTemplate(moduleName));
|
||||
return file.write(path.join(fpPath, moduleName + '.js'), getTemplate(moduleName));
|
||||
});
|
||||
|
||||
actions.unshift(copyFile(path.join(__dirname, '../../fp'), fpPath));
|
||||
actions.push(writeFile(path.join(target, 'fp.js'), template.fp()));
|
||||
actions.push(writeFile(path.join(fpPath, 'convert.js'), template.convert()));
|
||||
actions.push(writeFile(path.join(fpPath, '_util.js'), template._util()));
|
||||
actions.unshift(file.copy(path.join(__dirname, '../../fp'), fpPath));
|
||||
actions.push(file.write(path.join(fpPath, '_falseOptions.js'), template._falseOptions()));
|
||||
actions.push(file.write(path.join(fpPath, '_util.js'), template._util()));
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
## 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
|
||||
|
||||
@@ -9,12 +11,25 @@ In a browser:
|
||||
```html
|
||||
<script src='path/to/lodash.js'></script>
|
||||
<script src='path/to/lodash.fp.js'></script>
|
||||
<script>
|
||||
// Loading `lodash.fp.js` converts `_` to its fp variant.
|
||||
_.defaults({ 'a': 2, 'b': 2 })({ 'a': 1 });
|
||||
// → { '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 }
|
||||
fp.defaults({ 'a': 2, 'b': 2 })({ 'a': 1 });
|
||||
// → { 'a: 1, 'b': 2 }
|
||||
</script>
|
||||
```
|
||||
|
||||
In Node.js:
|
||||
```js
|
||||
// Load the fp build.
|
||||
var _ = require('lodash/fp');
|
||||
var fp = require('lodash/fp');
|
||||
|
||||
// Load a method category.
|
||||
var object = require('lodash/fp/object');
|
||||
@@ -23,9 +38,173 @@ var object = require('lodash/fp/object');
|
||||
var extend = require('lodash/fp/extend');
|
||||
```
|
||||
|
||||
## Mapping
|
||||
|
||||
Immutable auto-curried iteratee-first data-last methods sound great, but what
|
||||
does that really mean for each method? Below is a breakdown of the mapping used
|
||||
to convert each method.
|
||||
|
||||
#### Capped Iteratee Arguments
|
||||
|
||||
Iteratee arguments are capped to avoid gotchas with variadic iteratees.
|
||||
```js
|
||||
// The `lodash/map` iteratee receives three arguments:
|
||||
// (value, index|key, collection)
|
||||
_.map(['6', '8', '10'], parseInt);
|
||||
// → [6, NaN, 2]
|
||||
|
||||
// The `lodash/fp/map` iteratee is capped at one argument:
|
||||
// (value)
|
||||
fp.map(parseInt)(['6', '8', '10']);
|
||||
// → [6, 8, 10]
|
||||
```
|
||||
|
||||
Methods that cap iteratees to one argument:<br>
|
||||
<%= toFuncList(_.keys(_.pickBy(mapping.iterateeAry, _.partial(_.eq, _, 1)))) %>
|
||||
|
||||
Methods that cap iteratees to two arguments:<br>
|
||||
<%= toFuncList(_.keys(_.pickBy(mapping.iterateeAry, _.partial(_.eq, _, 2)))) %>
|
||||
|
||||
The iteratee of `mapKeys` is invoked with one argument: (key)
|
||||
|
||||
#### Fixed Arity
|
||||
|
||||
Methods have fixed arities to support auto-currying.
|
||||
```js
|
||||
// `lodash/padStart` accepts an optional `chars` param.
|
||||
_.padStart('a', 3, '-')
|
||||
// → '--a'
|
||||
|
||||
// `lodash/fp/padStart` does not.
|
||||
fp.padStart(3)('a');
|
||||
// → ' a'
|
||||
fp.padCharsStart('-')(3)('a');
|
||||
// → '--a'
|
||||
```
|
||||
|
||||
Methods with a fixed arity of one:<br>
|
||||
<%= toFuncList(_.difference(mapping.aryMethod[1], _.keys(mapping.skipFixed))) %>
|
||||
|
||||
Methods with a fixed arity of two:<br>
|
||||
<%= toFuncList(_.difference(mapping.aryMethod[2], _.keys(mapping.skipFixed))) %>
|
||||
|
||||
Methods with a fixed arity of three:<br>
|
||||
<%= toFuncList(_.difference(mapping.aryMethod[3], _.keys(mapping.skipFixed))) %>
|
||||
|
||||
Methods with a fixed arity of four:<br>
|
||||
<%= toFuncList(_.difference(mapping.aryMethod[4], _.keys(mapping.skipFixed))) %>
|
||||
|
||||
#### Rearranged Arguments
|
||||
|
||||
Method arguments are rearranged to make composition easier.
|
||||
```js
|
||||
// `lodash/filter` is data-first iteratee-last:
|
||||
// (collection, iteratee)
|
||||
var compact = _.partial(_.filter, _, Boolean);
|
||||
compact(['a', null, 'c']);
|
||||
// → ['a', 'c']
|
||||
|
||||
// `lodash/fp/filter` is iteratee-first data-last:
|
||||
// (iteratee, collection)
|
||||
var compact = fp.filter(Boolean);
|
||||
compact(['a', null, 'c']);
|
||||
// → ['a', 'c']
|
||||
```
|
||||
|
||||
##### Most methods follow these rules
|
||||
|
||||
A fixed arity of two has an argument order of:<br>
|
||||
<%= toArgOrder(mapping.aryRearg[2]) %>
|
||||
|
||||
A fixed arity of three has an argument order of:<br>
|
||||
<%= toArgOrder(mapping.aryRearg[3]) %>
|
||||
|
||||
A fixed arity of four has an argument order of:<br>
|
||||
<%= toArgOrder(mapping.aryRearg[4]) %>
|
||||
|
||||
##### Exceptions to the rules
|
||||
|
||||
Methods that accept an array of arguments as their second parameter:<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];
|
||||
return ' * `_.' + methodName + '` has an order of ' + toArgOrder(orders);
|
||||
}).join('\n') %>
|
||||
|
||||
#### New Methods
|
||||
|
||||
Not all variadic methods have corresponding new method variants. Feel free to
|
||||
[request](https://github.com/lodash/lodash/blob/master/.github/CONTRIBUTING.md#feature-requests)
|
||||
any additions.
|
||||
|
||||
Methods created to accommodate Lodash’s variadic methods:<br>
|
||||
<%= toFuncList(_.keys(mapping.remap)) %>
|
||||
|
||||
#### Aliases
|
||||
|
||||
There are <%= _.size(mapping.aliasToReal) %> method aliases:<br>
|
||||
<%= _.map(_.keys(mapping.aliasToReal).sort(), function(alias) {
|
||||
var realName = mapping.aliasToReal[alias];
|
||||
return ' * `_.' + alias + '` is an alias of `_.' + realName + '`';
|
||||
}).join('\n') %>
|
||||
|
||||
## Placeholders
|
||||
|
||||
The placeholder argument, which defaults to `_`, may be used to fill in method
|
||||
arguments in a different order. Placeholders are filled by the first available
|
||||
arguments of the curried returned function.
|
||||
```js
|
||||
// The equivalent of `2 > 5`.
|
||||
_.gt(2)(5);
|
||||
// → false
|
||||
|
||||
// The equivalent of `_.gt(5, 2)` or `5 > 2`.
|
||||
_.gt(_, 2)(5);
|
||||
// → true
|
||||
```
|
||||
|
||||
## Chaining
|
||||
|
||||
The `lodash/fp` module **does not** convert chain sequence methods. See
|
||||
[Izaak Schroeder’s article](https://medium.com/making-internets/why-using-chain-is-a-mistake-9bc1f80d51ba)
|
||||
on using functional composition as an alternative to method chaining.
|
||||
|
||||
## Convert
|
||||
|
||||
This module is used to convert Lodash methods to their `fp` counterparts.
|
||||
Although `lodash/fp` & its method modules come pre-converted, there are times
|
||||
when you may want to customize the conversion. That’s when the `convert` method
|
||||
comes in handy.
|
||||
```js
|
||||
// Every option is `true` by default.
|
||||
var _fp = fp.convert({
|
||||
// Specify capping iteratee arguments.
|
||||
'cap': true,
|
||||
// Specify currying.
|
||||
'curry': true,
|
||||
// Specify fixed arity.
|
||||
'fixed': true,
|
||||
// Specify immutable operations.
|
||||
'immutable': true,
|
||||
// Specify rearranging arguments.
|
||||
'rearg': true
|
||||
});
|
||||
|
||||
// The `convert` method is available on each method too.
|
||||
var mapValuesWithKey = fp.mapValues.convert({ 'cap': false });
|
||||
|
||||
// Here’s an example of disabling iteratee argument caps to access the `key` param.
|
||||
mapValuesWithKey(function(value, key) {
|
||||
return key == 'a' ? -1 : value;
|
||||
})({ 'a': 1, 'b': 1 });
|
||||
// => { 'a': -1, 'b': 1 }
|
||||
```
|
||||
|
||||
Manual conversions are also possible with the `convert` module.
|
||||
```js
|
||||
var convert = require('lodash/fp/convert');
|
||||
|
||||
@@ -42,86 +221,7 @@ var fp = convert({
|
||||
var fp = convert(lodash.runInContext());
|
||||
```
|
||||
|
||||
It’s even customizable so you can create the `fp` function that’s right for you.
|
||||
```js
|
||||
// Every option is `true` by default.
|
||||
var filter = convert('filter', _.filter, {
|
||||
// Specify capping iteratee arguments.
|
||||
'cap': true,
|
||||
// Specify currying.
|
||||
'curry': true,
|
||||
// Specify fixed arity.
|
||||
'fixed': true,
|
||||
// Specify immutable operations.
|
||||
'immutable': true,
|
||||
// Specify rearranging arguments.
|
||||
'rearg': true
|
||||
});
|
||||
## Tooling
|
||||
|
||||
// Specify `cap` of `false` to create a function that doesn’t cap iteratee arguments.
|
||||
var filter = convert('filter', _.filter, { 'cap': false });
|
||||
|
||||
filter(function(value, index) {
|
||||
return index % 2 == 0;
|
||||
})(['a', 'b', 'c']);
|
||||
// => ['a', 'c']
|
||||
```
|
||||
|
||||
## Mapping
|
||||
|
||||
Immutable auto-curried iteratee-first data-last methods sound great, but what’s
|
||||
that really mean for each method? Below is a breakdown of the mapping used to
|
||||
convert each method.
|
||||
|
||||
#### Capped Iteratee Arguments
|
||||
|
||||
Methods which provide iteratees one argument:<br>
|
||||
<%= toFuncList(_.keys(_.pick(mapping.iterateeAry, _.partial(_.eq, _, 1)))) %>
|
||||
|
||||
Methods which provide iteratees two arguments:<br>
|
||||
<%= toFuncList(_.keys(_.pick(mapping.iterateeAry, _.partial(_.eq, _, 2)))) %>
|
||||
|
||||
#### Fixed Arity
|
||||
|
||||
Methods with arity fixed to one argument:<br>
|
||||
<%= toFuncList(mapping.aryMethod[1]) %>
|
||||
|
||||
Methods with arity fixed to two arguments:<br>
|
||||
<%= toFuncList(mapping.aryMethod[2]) %>
|
||||
|
||||
Methods with arity fixed to three arguments:<br>
|
||||
<%= toFuncList(mapping.aryMethod[3]) %>
|
||||
|
||||
Methods with arity fixed to four arguments:<br>
|
||||
<%= toFuncList(mapping.aryMethod[4]) %>
|
||||
|
||||
#### Rearranged Arguments
|
||||
|
||||
Methods fixed to two arguments have an argument order of<br>
|
||||
<%= toArgOrder(mapping.aryRearg[2]) %>
|
||||
|
||||
Methods fixed to three arguments have an argument order of<br>
|
||||
<%= toArgOrder(mapping.aryRearg[3]) %>
|
||||
|
||||
Methods fixed to four arguments have an argument order of<br>
|
||||
<%= toArgOrder(mapping.aryRearg[4]) %>
|
||||
|
||||
Methods with custom argument orders:<br>
|
||||
<%= _.map(mapping.methodRearg, function(orders, methodName) {
|
||||
return ' * `_.' + methodName + '` has an order of ' + toArgOrder(orders);
|
||||
}).join('\n') %>
|
||||
|
||||
Methods with unchanged argument orders:<br>
|
||||
<%= toFuncList(_.keys(mapping.skipRearg)) %>
|
||||
|
||||
#### New Methods
|
||||
|
||||
Methods created to accommodate Lodash’s variadic methods:<br>
|
||||
<%= toFuncList(_.keys(mapping.remap)) %>
|
||||
|
||||
#### Aliases
|
||||
|
||||
There are <%= _.size(mapping.aliasToReal) %> method aliases:<br>
|
||||
<%= _.map(mapping.aliasToReal, function(realName, alias) {
|
||||
return ' * Added `_.' + alias + '` as an alias of `_.' + realName + '`';
|
||||
}).join('\n') %>
|
||||
Use [eslint-plugin-lodash-fp](https://www.npmjs.com/package/eslint-plugin-lodash-fp)
|
||||
to help use `lodash/fp` more efficiently.
|
||||
|
||||
7
lib/fp/template/modules/_falseOptions.jst
Normal file
7
lib/fp/template/modules/_falseOptions.jst
Normal file
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
'cap': false,
|
||||
'curry': false,
|
||||
'fixed': false,
|
||||
'immutable': false,
|
||||
'rearg': false
|
||||
};
|
||||
@@ -1,6 +1,7 @@
|
||||
module.exports = {
|
||||
'ary': require('../ary'),
|
||||
'cloneDeep': require('../cloneDeep'),
|
||||
'assign': require('../_baseAssign'),
|
||||
'clone': require('../clone'),
|
||||
'curry': require('../curry'),
|
||||
'forEach': require('../_arrayEach'),
|
||||
'isArray': require('../isArray'),
|
||||
@@ -8,5 +9,6 @@ module.exports = {
|
||||
'iteratee': require('../iteratee'),
|
||||
'keys': require('../_baseKeys'),
|
||||
'rearg': require('../rearg'),
|
||||
'spread': require('../spread')
|
||||
'spread': require('../spread'),
|
||||
'toPath': require('../toPath')
|
||||
};
|
||||
|
||||
@@ -3,7 +3,8 @@ var baseConvert = require('./_baseConvert'),
|
||||
|
||||
/**
|
||||
* Converts `func` of `name` to an immutable auto-curried iteratee-first data-last
|
||||
* version. If `name` is an object its methods will be converted.
|
||||
* version with conversion `options` applied. If `name` is an object its methods
|
||||
* will be converted.
|
||||
*
|
||||
* @param {string} name The name of the function to wrap.
|
||||
* @param {Function} [func] The function to wrap.
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
var _ = require('./lodash').runInContext();
|
||||
module.exports = require('./fp/convert')(_);
|
||||
var _ = require('./lodash.min').runInContext();
|
||||
module.exports = require('./fp/_baseConvert')(_, _);
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
var convert = require('./convert');
|
||||
module.exports = convert('<%= name %>', require('../<%= _.result(mapping.remap, name, name) %>'));
|
||||
var convert = require('./convert'),
|
||||
func = convert('<%= name %>', require('../<%= _.result(mapping.remap, name, name) %>'));
|
||||
|
||||
func.placeholder = require('./placeholder');
|
||||
module.exports = func;
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
module.exports = require('../<%= name %>');
|
||||
var convert = require('./convert'),
|
||||
func = convert('<%= name %>', require('../<%= _.result(mapping.remap, name, name) %>'), require('./_falseOptions'));
|
||||
|
||||
func.placeholder = require('./placeholder');
|
||||
module.exports = func;
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
async = require('async'),
|
||||
fs = require('fs-extra'),
|
||||
var async = require('async'),
|
||||
path = require('path');
|
||||
|
||||
var minify = require('../common/minify.js');
|
||||
var file = require('../common/file');
|
||||
|
||||
var basePath = path.join(__dirname, '..', '..'),
|
||||
distPath = path.join(basePath, 'dist'),
|
||||
@@ -24,8 +22,8 @@ function onComplete(error) {
|
||||
|
||||
function build() {
|
||||
async.series([
|
||||
_.partial(fs.copy, baseLodash, distLodash),
|
||||
_.partial(minify, distLodash)
|
||||
file.copy(baseLodash, distLodash),
|
||||
file.min(distLodash)
|
||||
], onComplete);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,8 +33,13 @@ var config = {
|
||||
};
|
||||
|
||||
function postprocess(string) {
|
||||
// Fix docdown bug by wrapping symbol property identifiers in brackets.
|
||||
return string.replace(/\.(Symbol\.(?:[a-z]+[A-Z]?)+)/g, '[$1]');
|
||||
// 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]');
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
async = require('async'),
|
||||
path = require('path');
|
||||
|
||||
var file = require('../common/file');
|
||||
|
||||
var basePath = path.join(__dirname, '..', '..'),
|
||||
distPath = path.join(basePath, 'dist'),
|
||||
corePath = path.join(distPath, 'lodash.core.js');
|
||||
distPath = path.join(basePath, 'dist');
|
||||
|
||||
var 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,7 +24,11 @@ function onComplete(error) {
|
||||
}
|
||||
|
||||
function build(target) {
|
||||
fs.copy(corePath, path.join(target, 'core.js'), onComplete);
|
||||
var actions = _.map(filePairs, function(pair) {
|
||||
return file.copy(pair[0], path.join(target, pair[1]));
|
||||
});
|
||||
|
||||
async.series(actions, onComplete);
|
||||
}
|
||||
|
||||
build(_.last(process.argv));
|
||||
|
||||
69
package.json
69
package.json
@@ -1,51 +1,54 @@
|
||||
{
|
||||
"name": "lodash",
|
||||
"version": "4.4.0",
|
||||
"main": "lodash.js",
|
||||
"version": "4.12.0",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"async": "^1.5.2",
|
||||
"benchmark": "^2.1.0",
|
||||
"chalk": "^1.1.1",
|
||||
"codecov.io": "~0.1.6",
|
||||
"coveralls": "^2.11.6",
|
||||
"curl-amd": "~0.8.12",
|
||||
"docdown": "~0.4.1",
|
||||
"dojo": "^1.10.4",
|
||||
"ecstatic": "^1.4.0",
|
||||
"fs-extra": "~0.26.5",
|
||||
"glob": "^7.0.0",
|
||||
"istanbul": "0.4.2",
|
||||
"jquery": "^2.2.0",
|
||||
"jscs": "^2.10.1",
|
||||
"lodash": "^3.10.1",
|
||||
"platform": "^1.3.1",
|
||||
"qunit-extras": "^1.4.5",
|
||||
"qunitjs": "~1.21.0",
|
||||
"request": "^2.69.0",
|
||||
"requirejs": "^2.1.22",
|
||||
"sauce-tunnel": "^2.4.0",
|
||||
"uglify-js": "2.6.1",
|
||||
"webpack": "^1.12.13"
|
||||
},
|
||||
"main": "lodash.js",
|
||||
"scripts": {
|
||||
"build": "npm run build:main & npm run build:fp",
|
||||
"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",
|
||||
"prepublish": "npm run style",
|
||||
"pretest": "npm run build",
|
||||
"style": "npm run style:main & npm run style:fp & npm run style:perf & npm run style:test",
|
||||
"style": "npm run style:main && npm run style:fp && npm run style:perf && npm run style:test",
|
||||
"style:fp": "jscs fp/*.js lib/**/*.js",
|
||||
"style:main": "jscs lodash.js",
|
||||
"style:perf": "jscs perf/*.js perf/**/*.js",
|
||||
"style:test": "jscs test/*.js test/**/*.js",
|
||||
"test": "npm run test:main && npm run test:fp && npm run test:docs",
|
||||
"test": "npm run test:main && npm run test:fp",
|
||||
"test:doc": "markdown-doctest",
|
||||
"test:fp": "node test/test-fp",
|
||||
"test:main": "node test/test"
|
||||
"test:main": "node test/test",
|
||||
"validate": "npm run style && npm run test"
|
||||
},
|
||||
"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.30.0",
|
||||
"glob": "^7.0.3",
|
||||
"istanbul": "0.4.3",
|
||||
"jquery": "^2.2.3",
|
||||
"jscs": "^3.0.1",
|
||||
"lodash": "4.11.2",
|
||||
"markdown-doctest": "^0.4.0",
|
||||
"platform": "^1.3.1",
|
||||
"qunit-extras": "^2.0.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"
|
||||
}
|
||||
}
|
||||
|
||||
14
perf/perf.js
14
perf/perf.js
@@ -82,12 +82,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
|
||||
@@ -565,11 +559,11 @@
|
||||
suites.push(
|
||||
Benchmark.Suite('`_.assign`')
|
||||
.add(buildName, {
|
||||
'fn': 'lodashAssign({}, object)',
|
||||
'fn': 'lodashAssign({}, { "a": 1, "b": 2, "c": 3 })',
|
||||
'teardown': 'function assign(){}'
|
||||
})
|
||||
.add(otherName, {
|
||||
'fn': '_assign({}, object)',
|
||||
'fn': '_assign({}, { "a": 1, "b": 2, "c": 3 })',
|
||||
'teardown': 'function assign(){}'
|
||||
})
|
||||
);
|
||||
@@ -577,11 +571,11 @@
|
||||
suites.push(
|
||||
Benchmark.Suite('`_.assign` with multiple sources')
|
||||
.add(buildName, {
|
||||
'fn': 'lodashAssign({}, object, object)',
|
||||
'fn': 'lodashAssign({}, { "a": 1, "b": 2 }, { "c": 3, "d": 4 })',
|
||||
'teardown': 'function assign(){}'
|
||||
})
|
||||
.add(otherName, {
|
||||
'fn': '_assign({}, object, object)',
|
||||
'fn': '_assign({}, { "a": 1, "b": 2 }, { "c": 3, "d": 4 })',
|
||||
'teardown': 'function assign(){}'
|
||||
})
|
||||
);
|
||||
|
||||
@@ -5,7 +5,10 @@ addEventListener('message', function(e) {
|
||||
try {
|
||||
importScripts('../' + e.data);
|
||||
} catch (e) {
|
||||
self._ = { 'VERSION': e.message };
|
||||
var lineNumber = e.lineNumber,
|
||||
message = (lineNumber == null ? '' : (lineNumber + ': ')) + e.message;
|
||||
|
||||
self._ = { 'VERSION': message };
|
||||
}
|
||||
postMessage(_.VERSION);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
};
|
||||
}
|
||||
</script>
|
||||
<script src="../node_modules/lodash/index.js"></script>
|
||||
<script src="../node_modules/lodash/lodash.js"></script>
|
||||
<script>var lodashStable = _.noConflict();</script>
|
||||
<script src="../node_modules/qunitjs/qunit/qunit.js"></script>
|
||||
<script src="../node_modules/qunit-extras/qunit-extras.js"></script>
|
||||
@@ -119,6 +119,9 @@
|
||||
|
||||
setProperty(Map, 'toString', createToString('Map'));
|
||||
}
|
||||
setProperty(window, '_Promise', window.Promise);
|
||||
setProperty(window, 'Promise', noop);
|
||||
|
||||
setProperty(window, '_Set', window.Set);
|
||||
setProperty(window, 'Set', noop);
|
||||
|
||||
@@ -158,6 +161,11 @@
|
||||
} else {
|
||||
setProperty(window, 'Map', undefined);
|
||||
}
|
||||
if (_Promise) {
|
||||
Promise = _Promise;
|
||||
} else {
|
||||
setProperty(window, 'Promise', undefined);
|
||||
}
|
||||
if (_Set) {
|
||||
Set = _Set;
|
||||
} else {
|
||||
@@ -172,6 +180,7 @@
|
||||
setProperty(window, 'WeakMap', undefined);
|
||||
}
|
||||
setProperty(window, '_Map', undefined);
|
||||
setProperty(window, '_Promise', undefined);
|
||||
setProperty(window, '_Set', undefined);
|
||||
setProperty(window, '_Symbol', undefined);
|
||||
setProperty(window, '_WeakMap', undefined);
|
||||
@@ -296,9 +305,9 @@
|
||||
|
||||
if (ui.isModularize) {
|
||||
require(getConfig(), [
|
||||
'lodash/internal/baseEach',
|
||||
'lodash/internal/isIndex',
|
||||
'lodash/internal/isIterateeCall'
|
||||
'lodash/_baseEach',
|
||||
'lodash/_isIndex',
|
||||
'lodash/_isIterateeCall'
|
||||
], function(baseEach, isIndex, isIterateeCall) {
|
||||
lodash._baseEach = baseEach;
|
||||
lodash._isIndex = isIndex;
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
#!/usr/bin/env node
|
||||
'use strict';
|
||||
|
||||
var fs = require('fs'),
|
||||
var _ = require('../lodash'),
|
||||
fs = require('fs'),
|
||||
path = require('path');
|
||||
|
||||
var args = (args = process.argv)
|
||||
.slice((args[0] === process.execPath || args[0] === 'node') ? 2 : 0);
|
||||
|
||||
var filePath = path.resolve(args[1]),
|
||||
reLine = /.*/gm,
|
||||
slice = Array.prototype.slice;
|
||||
reLine = /.*/gm;
|
||||
|
||||
var pattern = (function() {
|
||||
var result = args[0],
|
||||
@@ -22,6 +22,6 @@ var pattern = (function() {
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
fs.writeFileSync(filePath, fs.readFileSync(filePath, 'utf8').replace(pattern, function(match) {
|
||||
var snippet = slice.call(arguments, -3, -1)[0];
|
||||
var snippet = _.slice(arguments, -3, -2)[0];
|
||||
return match.replace(snippet, snippet.replace(reLine, ''));
|
||||
}));
|
||||
|
||||
@@ -97,17 +97,18 @@ var browserNameMap = {
|
||||
'googlechrome': 'Chrome',
|
||||
'iehta': 'Internet Explorer',
|
||||
'ipad': 'iPad',
|
||||
'iphone': 'iPhone'
|
||||
'iphone': 'iPhone',
|
||||
'microsoftedge': 'Edge'
|
||||
};
|
||||
|
||||
/** List of platforms to load the runner on. */
|
||||
var platforms = [
|
||||
['Linux', 'android', '5.1'],
|
||||
['Windows 10', 'chrome', '48'],
|
||||
['Windows 10', 'chrome', '47'],
|
||||
['Windows 10', 'firefox', '44'],
|
||||
['Windows 10', 'firefox', '43'],
|
||||
['Windows 10', 'microsoftedge', '20.10240'],
|
||||
['Windows 10', 'chrome', '50'],
|
||||
['Windows 10', 'chrome', '49'],
|
||||
['Windows 10', 'firefox', '46'],
|
||||
['Windows 10', 'firefox', '45'],
|
||||
['Windows 10', 'microsoftedge', '13'],
|
||||
['Windows 10', 'internet explorer', '11'],
|
||||
['Windows 8', 'internet explorer', '10'],
|
||||
['Windows 7', 'internet explorer', '9'],
|
||||
@@ -213,18 +214,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);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -450,7 +440,7 @@ 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'),
|
||||
label = options.name + ':',
|
||||
@@ -601,7 +591,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();
|
||||
@@ -826,13 +816,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;
|
||||
};
|
||||
|
||||
666
test/test-fp.js
666
test/test-fp.js
@@ -14,39 +14,27 @@
|
||||
|
||||
/** Method and object shortcuts. */
|
||||
var phantom = root.phantom,
|
||||
amd = root.define && define.amd,
|
||||
argv = root.process && process.argv,
|
||||
document = !phantom && root.document,
|
||||
noop = function() {},
|
||||
slice = arrayProto.slice,
|
||||
WeakMap = root.WeakMap;
|
||||
|
||||
// Leak to avoid sporadic `noglobals` fails on Edge in Sauce Labs.
|
||||
root.msWDfn = undefined;
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/** Use a single "load" function. */
|
||||
var load = (!amd && typeof require == 'function')
|
||||
? require
|
||||
: noop;
|
||||
/** Load QUnit and extras. */
|
||||
var QUnit = root.QUnit || require('qunit-extras');
|
||||
|
||||
/** The unit testing framework. */
|
||||
var QUnit = root.QUnit || (root.QUnit = (
|
||||
QUnit = load('../node_modules/qunitjs/qunit/qunit.js') || root.QUnit,
|
||||
QUnit = QUnit.QUnit || QUnit
|
||||
));
|
||||
|
||||
/** Load stable Lodash and QUnit Extras. */
|
||||
var _ = root._ || (root._ = (
|
||||
_ = load('../lodash.js'),
|
||||
/** Load stable Lodash. */
|
||||
var _ = root._ || (
|
||||
_ = require('../lodash.js'),
|
||||
_.runInContext(root)
|
||||
));
|
||||
|
||||
var QUnitExtras = load('../node_modules/qunit-extras/qunit-extras.js');
|
||||
if (QUnitExtras) {
|
||||
QUnitExtras.runInContext(root);
|
||||
}
|
||||
);
|
||||
|
||||
var convert = (function() {
|
||||
var baseConvert = root.fp || load('../fp/_baseConvert.js');
|
||||
var baseConvert = root.fp || require('../fp/_baseConvert.js');
|
||||
if (!root.fp) {
|
||||
return function(name, func, options) {
|
||||
return baseConvert(_, name, func, options);
|
||||
@@ -64,11 +52,19 @@
|
||||
};
|
||||
}());
|
||||
|
||||
var allFalseOptions = {
|
||||
'cap': false,
|
||||
'curry': false,
|
||||
'fixed': false,
|
||||
'immutable': false,
|
||||
'rearg': false
|
||||
};
|
||||
|
||||
var fp = root.fp
|
||||
? (fp = _.noConflict(), _ = root._, fp)
|
||||
: convert(_.runInContext());
|
||||
|
||||
var mapping = root.mapping || load('../fp/_mapping.js');
|
||||
var mapping = root.mapping || require('../fp/_mapping.js');
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
@@ -92,18 +88,39 @@
|
||||
console.log('Running lodash/fp tests.');
|
||||
}
|
||||
|
||||
QUnit.module('convert');
|
||||
QUnit.module('convert module');
|
||||
|
||||
(function() {
|
||||
var allFalseOptions = {
|
||||
'cap': false,
|
||||
'curry': false,
|
||||
'fixed': false,
|
||||
'immutable': false,
|
||||
'rearg': false
|
||||
};
|
||||
QUnit.test('should work with `name` and `func`', function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
QUnit.test('should work when given an object', function(assert) {
|
||||
var array = [1, 2, 3, 4],
|
||||
remove = convert('remove', _.remove);
|
||||
|
||||
var actual = remove(function(n) {
|
||||
return n % 2 == 0;
|
||||
})(array);
|
||||
|
||||
assert.deepEqual(array, [1, 2, 3, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
});
|
||||
|
||||
QUnit.test('should work with `name`, `func`, and `options`', function(assert) {
|
||||
assert.expect(3);
|
||||
|
||||
var array = [1, 2, 3, 4],
|
||||
remove = convert('remove', _.remove, allFalseOptions);
|
||||
|
||||
var actual = remove(array, function(n, index) {
|
||||
return index % 2 == 0;
|
||||
});
|
||||
|
||||
assert.deepEqual(array, [2, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
assert.deepEqual(remove(), []);
|
||||
});
|
||||
|
||||
QUnit.test('should work with an object', function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
if (!document) {
|
||||
@@ -122,44 +139,55 @@
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test('should only add a `placeholder` property if needed', function(assert) {
|
||||
assert.expect(2);
|
||||
QUnit.test('should work with an object and `options`', function(assert) {
|
||||
assert.expect(3);
|
||||
|
||||
if (!document) {
|
||||
var methodNames = _.keys(mapping.placeholder),
|
||||
expected = _.map(methodNames, _.constant(true));
|
||||
var array = [1, 2, 3, 4],
|
||||
lodash = convert({ 'remove': _.remove }, allFalseOptions);
|
||||
|
||||
var actual = _.map(methodNames, function(methodName) {
|
||||
var object = {};
|
||||
object[methodName] = _[methodName];
|
||||
|
||||
var lodash = convert(object);
|
||||
return methodName in lodash;
|
||||
var actual = lodash.remove(array, function(n, index) {
|
||||
return index % 2 == 0;
|
||||
});
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
|
||||
var lodash = convert({ 'add': _.add });
|
||||
assert.notOk('placeholder' in lodash);
|
||||
assert.deepEqual(array, [2, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
assert.deepEqual(lodash.remove(), []);
|
||||
}
|
||||
else {
|
||||
skipAssert(assert, 2);
|
||||
skipAssert(assert, 3);
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test('should accept an `options` argument', function(assert) {
|
||||
QUnit.test('should work with lodash and `options`', function(assert) {
|
||||
assert.expect(3);
|
||||
|
||||
var array = [1, 2, 3, 4],
|
||||
remove = convert('remove', _.remove, allFalseOptions);
|
||||
lodash = convert(_.runInContext(), allFalseOptions);
|
||||
|
||||
var actual = remove(array, function(n, index) {
|
||||
var actual = lodash.remove(array, function(n, index) {
|
||||
return index % 2 == 0;
|
||||
});
|
||||
|
||||
assert.deepEqual(array, [2, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
assert.deepEqual(remove(), []);
|
||||
assert.deepEqual(lodash.remove(), []);
|
||||
});
|
||||
|
||||
QUnit.test('should work with `runInContext` and `options`', function(assert) {
|
||||
assert.expect(3);
|
||||
|
||||
var array = [1, 2, 3, 4],
|
||||
runInContext = convert('runInContext', _.runInContext, allFalseOptions),
|
||||
lodash = runInContext();
|
||||
|
||||
var actual = lodash.remove(array, function(n, index) {
|
||||
return index % 2 == 0;
|
||||
});
|
||||
|
||||
assert.deepEqual(array, [2, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
assert.deepEqual(lodash.remove(), []);
|
||||
});
|
||||
|
||||
QUnit.test('should accept a variety of options', function(assert) {
|
||||
@@ -217,60 +245,90 @@
|
||||
assert.strictEqual(add('2')('1'), '12');
|
||||
});
|
||||
|
||||
QUnit.test('should use `options` in `runInContext`', function(assert) {
|
||||
assert.expect(3);
|
||||
|
||||
var array = [1, 2, 3, 4],
|
||||
runInContext = convert('runInContext', _.runInContext, allFalseOptions),
|
||||
lodash = runInContext();
|
||||
|
||||
var actual = lodash.remove(array, function(n, index) {
|
||||
return index % 2 == 0;
|
||||
});
|
||||
|
||||
assert.deepEqual(array, [2, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
assert.deepEqual(lodash.remove(), []);
|
||||
});
|
||||
|
||||
QUnit.test('should work when given lodash and `options`', function(assert) {
|
||||
assert.expect(3);
|
||||
|
||||
var array = [1, 2, 3, 4],
|
||||
lodash = convert(_.runInContext(), allFalseOptions);
|
||||
|
||||
var actual = lodash.remove(array, function(n, index) {
|
||||
return index % 2 == 0;
|
||||
});
|
||||
|
||||
assert.deepEqual(array, [2, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
assert.deepEqual(lodash.remove(), []);
|
||||
});
|
||||
|
||||
QUnit.test('should work when given an object and `options`', function(assert) {
|
||||
assert.expect(3);
|
||||
QUnit.test('should only add a `placeholder` property if needed', function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
if (!document) {
|
||||
var array = [1, 2, 3, 4],
|
||||
lodash = convert({ 'remove': _.remove }, allFalseOptions);
|
||||
var methodNames = _.keys(mapping.placeholder),
|
||||
expected = _.map(methodNames, _.constant(true));
|
||||
|
||||
var actual = lodash.remove(array, function(n, index) {
|
||||
return index % 2 == 0;
|
||||
var actual = _.map(methodNames, function(methodName) {
|
||||
var object = {};
|
||||
object[methodName] = _[methodName];
|
||||
|
||||
var lodash = convert(object);
|
||||
return methodName in lodash;
|
||||
});
|
||||
|
||||
assert.deepEqual(array, [2, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
assert.deepEqual(lodash.remove(), []);
|
||||
assert.deepEqual(actual, expected);
|
||||
|
||||
var lodash = convert({ 'add': _.add });
|
||||
assert.notOk('placeholder' in lodash);
|
||||
}
|
||||
else {
|
||||
skipAssert(assert, 3);
|
||||
skipAssert(assert, 2);
|
||||
}
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('method.convert');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should exist on unconverted methods', function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var array = [],
|
||||
isArray = fp.isArray.convert({ 'curry': true });
|
||||
|
||||
assert.strictEqual(fp.isArray(array), true);
|
||||
assert.strictEqual(isArray()(array), true);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('convert methods');
|
||||
|
||||
_.each(['fp.convert', 'method.convert'], function(methodName) {
|
||||
var isFp = methodName == 'fp.convert',
|
||||
func = isFp ? fp.convert : fp.remove.convert;
|
||||
|
||||
QUnit.test('`' + methodName + '` should work with an object', function(assert) {
|
||||
assert.expect(3);
|
||||
|
||||
var array = [1, 2, 3, 4],
|
||||
lodash = func(allFalseOptions),
|
||||
remove = isFp ? lodash.remove : lodash;
|
||||
|
||||
var actual = remove(array, function(n, index) {
|
||||
return index % 2 == 0;
|
||||
});
|
||||
|
||||
assert.deepEqual(array, [2, 4]);
|
||||
assert.deepEqual(actual, [1, 3]);
|
||||
assert.deepEqual(remove(), []);
|
||||
});
|
||||
|
||||
QUnit.test('`' + methodName + '` should extend existing configs', function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var array = [1, 2, 3, 4],
|
||||
lodash = func({ 'cap': false }),
|
||||
remove = (isFp ? lodash.remove : lodash).convert({ 'rearg': false });
|
||||
|
||||
var actual = remove(array)(function(n, index) {
|
||||
return index % 2 == 0;
|
||||
});
|
||||
|
||||
assert.deepEqual(array, [1, 2, 3, 4]);
|
||||
assert.deepEqual(actual, [2, 4]);
|
||||
});
|
||||
});
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('method arity checks');
|
||||
|
||||
(function() {
|
||||
@@ -355,8 +413,9 @@
|
||||
assert.expect(1);
|
||||
|
||||
var funcMethods = [
|
||||
'after', 'ary', 'before', 'bind', 'bindKey', 'curryN', 'debounce', 'delay',
|
||||
'overArgs', 'partial', 'partialRight', 'rearg', 'throttle', 'wrap'
|
||||
'after', 'ary', 'before', 'bind', 'bindKey', 'curryN', 'debounce',
|
||||
'delay', 'overArgs', 'partial', 'partialRight', 'rearg', 'throttle',
|
||||
'wrap'
|
||||
];
|
||||
|
||||
var exceptions = _.difference(funcMethods.concat('matchesProperty'), ['cloneDeepWith', 'cloneWith', 'delay']),
|
||||
@@ -413,7 +472,7 @@
|
||||
assert.expect(10);
|
||||
|
||||
var array = ['a', 'b', 'c'],
|
||||
other = ['b', 'b', 'd'],
|
||||
other = ['b', 'd', 'b'],
|
||||
object = { 'a': 1, 'b': 2, 'c': 2 },
|
||||
actual = fp.difference(array)(other);
|
||||
|
||||
@@ -437,7 +496,7 @@
|
||||
actual = fp.uniqBy(_.identity, other);
|
||||
assert.deepEqual(actual, ['b', 'd'], 'fp.uniqBy');
|
||||
|
||||
actual = fp.without('b')(array);
|
||||
actual = fp.without(array)(other);
|
||||
assert.deepEqual(actual, ['a', 'c'], 'fp.without');
|
||||
|
||||
actual = fp.xor(other)(array);
|
||||
@@ -526,6 +585,32 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('iteratee shorthands');
|
||||
|
||||
(function() {
|
||||
var objects = [{ 'a': 1, 'b': 2 }, { 'a': 3, 'b': 4 }];
|
||||
|
||||
QUnit.test('should work with "_.matches" shorthands', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
assert.deepEqual(fp.filter({ 'a': 3 })(objects), [objects[1]]);
|
||||
});
|
||||
|
||||
QUnit.test('should work with "_.matchesProperty" shorthands', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
assert.deepEqual(fp.filter(['a', 3])(objects), [objects[1]]);
|
||||
});
|
||||
|
||||
QUnit.test('should work with "_.property" shorthands', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
assert.deepEqual(fp.map('a')(objects), [1, 3]);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('mutation methods');
|
||||
|
||||
(function() {
|
||||
@@ -534,7 +619,7 @@
|
||||
deepObject = { 'a': { 'b': 2, 'c': 3 } };
|
||||
|
||||
QUnit.test('should not mutate values', function(assert) {
|
||||
assert.expect(38);
|
||||
assert.expect(42);
|
||||
|
||||
function Foo() {}
|
||||
Foo.prototype = { 'b': 2 };
|
||||
@@ -665,7 +750,19 @@
|
||||
actual = fp.unset('a.b')(value);
|
||||
|
||||
assert.deepEqual(value, deepObject, 'fp.unset');
|
||||
assert.deepEqual(actual, { 'a': { 'c': 3 } }, 'fp.set');
|
||||
assert.deepEqual(actual, { 'a': { 'c': 3 } }, 'fp.unset');
|
||||
|
||||
value = _.cloneDeep(deepObject);
|
||||
actual = fp.update('a.b')(function(n) { return n * n; })(value);
|
||||
|
||||
assert.deepEqual(value, deepObject, 'fp.update');
|
||||
assert.deepEqual(actual, { 'a': { 'b': 4, 'c': 3 } }, 'fp.update');
|
||||
|
||||
value = _.cloneDeep(deepObject);
|
||||
actual = fp.updateWith(Object)('d.e')(_.constant(4))(value);
|
||||
|
||||
assert.deepEqual(value, deepObject, 'fp.updateWith');
|
||||
assert.deepEqual(actual, { 'a': { 'b': 2, 'c': 3 }, 'd': { 'e': 4 } }, 'fp.updateWith');
|
||||
});
|
||||
}());
|
||||
|
||||
@@ -674,7 +771,20 @@
|
||||
QUnit.module('placeholder methods');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should support placeholders', function(assert) {
|
||||
QUnit.test('should use `fp` as the default placeholder', function(assert) {
|
||||
assert.expect(3);
|
||||
|
||||
var actual = fp.add(fp, 'b')('a');
|
||||
assert.strictEqual(actual, 'ab');
|
||||
|
||||
actual = fp.slice(fp, 2)(1)(['a', 'b', 'c']);
|
||||
assert.deepEqual(actual, ['b']);
|
||||
|
||||
actual = fp.fill(fp, 2)(1, '*')([1, 2, 3]);
|
||||
assert.deepEqual(actual, [1, '*', 3]);
|
||||
});
|
||||
|
||||
QUnit.test('should support `fp.placeholder`', function(assert) {
|
||||
assert.expect(6);
|
||||
|
||||
_.each([[], fp.__], function(ph) {
|
||||
@@ -705,14 +815,56 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('set methods');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should only clone objects in `path`', function(assert) {
|
||||
assert.expect(11);
|
||||
|
||||
var object = { 'a': { 'b': 2, 'c': 3 }, 'd': { 'e': 4 } },
|
||||
value = _.cloneDeep(object),
|
||||
actual = fp.set('a.b.c.d', 5, value);
|
||||
|
||||
assert.ok(_.isObject(actual.a.b), 'fp.set');
|
||||
assert.ok(_.isNumber(actual.a.b), 'fp.set');
|
||||
|
||||
assert.strictEqual(actual.a.b.c.d, 5, 'fp.set');
|
||||
assert.strictEqual(actual.d, value.d, 'fp.set');
|
||||
|
||||
value = _.cloneDeep(object);
|
||||
actual = fp.setWith(Object)('[0][1]')('a')(value);
|
||||
|
||||
assert.deepEqual(actual[0], { '1': 'a' }, 'fp.setWith');
|
||||
|
||||
value = _.cloneDeep(object);
|
||||
actual = fp.unset('a.b')(value);
|
||||
|
||||
assert.notOk('b' in actual.a, 'fp.unset');
|
||||
assert.strictEqual(actual.a.c, value.a.c, 'fp.unset');
|
||||
|
||||
value = _.cloneDeep(object);
|
||||
actual = fp.update('a.b')(function(n) { return n * n; })(value);
|
||||
|
||||
assert.strictEqual(actual.a.b, 4, 'fp.update');
|
||||
assert.strictEqual(actual.d, value.d, 'fp.update');
|
||||
|
||||
value = _.cloneDeep(object);
|
||||
actual = fp.updateWith(Object)('[0][1]')(_.constant('a'))(value);
|
||||
|
||||
assert.deepEqual(actual[0], { '1': 'a' }, 'fp.updateWith');
|
||||
assert.strictEqual(actual.d, value.d, 'fp.updateWith');
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('with methods');
|
||||
|
||||
(function() {
|
||||
var array = [1, 2, 3],
|
||||
object = { 'a': 1 };
|
||||
var object = { 'a': 1 };
|
||||
|
||||
QUnit.test('should provide the correct `customizer` arguments', function(assert) {
|
||||
assert.expect(4);
|
||||
assert.expect(7);
|
||||
|
||||
var args,
|
||||
value = _.clone(object);
|
||||
@@ -732,17 +884,48 @@
|
||||
|
||||
assert.deepEqual(args, [undefined, 2, 'b', { 'a': 1 }, { 'b': 2 }], 'fp.extendWith');
|
||||
|
||||
var stack = { '__data__': { 'array': [], 'map': null } },
|
||||
expected = [[1], [2, 3], 'a', { 'a': [1] }, { 'a': [2, 3] }, stack];
|
||||
var iteration = 0,
|
||||
objects = [{ 'a': 1 }, { 'a': 2 }],
|
||||
stack = { '__data__': { '__data__': [objects] } },
|
||||
expected = [1, 2, 'a', objects[0], objects[1], stack];
|
||||
|
||||
args = undefined;
|
||||
|
||||
fp.isEqualWith(function() {
|
||||
if (++iteration == 2) {
|
||||
args = _.map(arguments, _.cloneDeep);
|
||||
}
|
||||
})(objects[0])(objects[1]);
|
||||
|
||||
args[5] = _.omitBy(args[5], _.isFunction);
|
||||
args[5].__data__ = _.omitBy(args[5].__data__, _.isFunction);
|
||||
|
||||
assert.deepEqual(args, expected, 'fp.isEqualWith');
|
||||
|
||||
args = undefined;
|
||||
stack = { '__data__': { '__data__': [] } };
|
||||
expected = [2, 1, 'a', objects[1], objects[0], stack];
|
||||
|
||||
fp.isMatchWith(function() {
|
||||
args || (args = _.map(arguments, _.cloneDeep));
|
||||
})(objects[0])(objects[1]);
|
||||
|
||||
args[5] = _.omitBy(args[5], _.isFunction);
|
||||
args[5].__data__ = _.omitBy(args[5].__data__, _.isFunction);
|
||||
|
||||
assert.deepEqual(args, expected, 'fp.isMatchWith');
|
||||
|
||||
args = undefined;
|
||||
value = { 'a': [1] };
|
||||
expected = [[1], [2, 3], 'a', { 'a': [1] }, { 'a': [2, 3] }, stack];
|
||||
|
||||
fp.mergeWith(function() {
|
||||
args || (args = _.map(arguments, _.cloneDeep));
|
||||
})(value)({ 'a': [2, 3] });
|
||||
|
||||
args[5] = _.omitBy(args[5], _.isFunction);
|
||||
args[5].__data__ = _.omitBy(args[5].__data__, _.isFunction);
|
||||
|
||||
assert.deepEqual(args, expected, 'fp.mergeWith');
|
||||
|
||||
args = undefined;
|
||||
@@ -753,6 +936,15 @@
|
||||
})('b.c')(2)(value);
|
||||
|
||||
assert.deepEqual(args, [undefined, 'b', { 'a': 1 }], 'fp.setWith');
|
||||
|
||||
args = undefined;
|
||||
value = _.clone(object);
|
||||
|
||||
fp.updateWith(function() {
|
||||
args || (args = _.map(arguments, _.cloneDeep));
|
||||
})('b.c')(_.constant(2))(value);
|
||||
|
||||
assert.deepEqual(args, [undefined, 'b', { 'a': 1 }], 'fp.updateWith');
|
||||
});
|
||||
}());
|
||||
|
||||
@@ -764,7 +956,7 @@
|
||||
var func = fp[methodName],
|
||||
isAdd = methodName == 'add';
|
||||
|
||||
QUnit.test('`fp.' + methodName + '` should have `rearg` applied', function(assert) {
|
||||
QUnit.test('`fp.' + methodName + '` should not have `rearg` applied', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
assert.strictEqual(func('1')('2'), isAdd ? '12' : -1);
|
||||
@@ -815,7 +1007,7 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.curry and fp.curryRight');
|
||||
QUnit.module('curry methods');
|
||||
|
||||
_.each(['curry', 'curryRight'], function(methodName) {
|
||||
var func = fp[methodName];
|
||||
@@ -829,7 +1021,7 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.curryN and fp.curryRightN');
|
||||
QUnit.module('curryN methods');
|
||||
|
||||
_.each(['curryN', 'curryRightN'], function(methodName) {
|
||||
var func = fp[methodName];
|
||||
@@ -856,6 +1048,21 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.divide and fp.multiply');
|
||||
|
||||
_.each(['divide', 'multiply'], function(methodName) {
|
||||
var func = fp[methodName],
|
||||
isDivide = methodName == 'divide';
|
||||
|
||||
QUnit.test('`fp.' + methodName + '` should not have `rearg` applied', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
assert.strictEqual(func('2')('4'), isDivide ? 0.5 : 8);
|
||||
});
|
||||
});
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.extend');
|
||||
|
||||
(function() {
|
||||
@@ -890,7 +1097,28 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.flow and fp.flowRight');
|
||||
QUnit.module('fp.flatMapDepth');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should have an argument order of `iteratee`, `depth`, then `collection`', function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
function duplicate(n) {
|
||||
return [[[n, n]]];
|
||||
}
|
||||
|
||||
var array = [1, 2],
|
||||
object = { 'a': 1, 'b': 2 },
|
||||
expected = [[1, 1], [2, 2]];
|
||||
|
||||
assert.deepEqual(fp.flatMapDepth(duplicate)(2)(array), expected);
|
||||
assert.deepEqual(fp.flatMapDepth(duplicate)(2)(object), expected);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('flow methods');
|
||||
|
||||
_.each(['flow', 'flowRight'], function(methodName) {
|
||||
var func = fp[methodName],
|
||||
@@ -935,16 +1163,47 @@
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('forEach methods');
|
||||
|
||||
_.each(['forEach', 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight'], function(methodName) {
|
||||
var func = fp[methodName];
|
||||
|
||||
QUnit.test('`fp.' + methodName + '` should provide `value` to `iteratee`', function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var args;
|
||||
|
||||
func(function() {
|
||||
args || (args = slice.call(arguments));
|
||||
})(['a']);
|
||||
|
||||
assert.deepEqual(args, ['a']);
|
||||
|
||||
args = undefined;
|
||||
|
||||
func(function() {
|
||||
args || (args = slice.call(arguments));
|
||||
})({ 'a': 1 });
|
||||
|
||||
assert.deepEqual(args, [1]);
|
||||
});
|
||||
});
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.getOr');
|
||||
|
||||
QUnit.test('should accept a `defaultValue` param', function(assert) {
|
||||
assert.expect(1);
|
||||
(function() {
|
||||
QUnit.test('should accept a `defaultValue` param', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var actual = fp.getOr('default')('path')({});
|
||||
assert.strictEqual(actual, 'default');
|
||||
});
|
||||
var actual = fp.getOr('default')('path')({});
|
||||
assert.strictEqual(actual, 'default');
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
@@ -975,6 +1234,58 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.invoke');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should not accept an `args` param', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var actual = fp.invoke('toUpperCase')('a');
|
||||
assert.strictEqual(actual, 'A');
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.invokeMap');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should not accept an `args` param', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var actual = fp.invokeMap('toUpperCase')(['a', 'b']);
|
||||
assert.deepEqual(actual, ['A', 'B']);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.invokeArgs');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should accept an `args` param', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var actual = fp.invokeArgs('concat')(['b', 'c'])('a');
|
||||
assert.strictEqual(actual, 'abc');
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.invokeArgsMap');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should accept an `args` param', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var actual = fp.invokeArgsMap('concat')(['b', 'c'])(['a', 'A']);
|
||||
assert.deepEqual(actual, ['abc', 'Abc']);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.iteratee');
|
||||
|
||||
(function() {
|
||||
@@ -1011,6 +1322,24 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.mapKeys');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should only provide `key` to `iteratee`', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var args;
|
||||
|
||||
fp.mapKeys(function() {
|
||||
args || (args = slice.call(arguments));
|
||||
}, { 'a': 1 });
|
||||
|
||||
assert.deepEqual(args, ['a']);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.maxBy and fp.minBy');
|
||||
|
||||
_.each(['maxBy', 'minBy'], function(methodName) {
|
||||
@@ -1128,7 +1457,75 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.partial and fp.partialRight');
|
||||
QUnit.module('fp.over');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should not cap iteratee args', function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
_.each([fp.over, convert('over', _.over)], function(func) {
|
||||
var over = func([Math.max, Math.min]);
|
||||
assert.deepEqual(over(1, 2, 3, 4), [4, 1]);
|
||||
});
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.omitBy and fp.pickBy');
|
||||
|
||||
_.each(['omitBy', 'pickBy'], function(methodName) {
|
||||
var func = fp[methodName];
|
||||
|
||||
QUnit.test('`fp.' + methodName + '` should provide `value` and `key` to `iteratee`', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var args;
|
||||
|
||||
func(function() {
|
||||
args || (args = slice.call(arguments));
|
||||
})({ 'a': 1 });
|
||||
|
||||
assert.deepEqual(args, [1, 'a']);
|
||||
});
|
||||
});
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.update');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should not convert end of `path` to an object', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var actual = fp.update('a.b')(_.identity)({ 'a': { 'b': 1 } });
|
||||
assert.strictEqual(typeof actual.a.b, 'number');
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('padChars methods');
|
||||
|
||||
_.each(['padChars', 'padCharsStart', 'padCharsEnd'], function(methodName) {
|
||||
var func = fp[methodName],
|
||||
isPad = methodName == 'padChars',
|
||||
isStart = methodName == 'padCharsStart';
|
||||
|
||||
QUnit.test('`_.' + methodName + '` should truncate pad characters to fit the pad length', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
if (isPad) {
|
||||
assert.strictEqual(func('_-')(8)('abc'), '_-abc_-_');
|
||||
} else {
|
||||
assert.strictEqual(func('_-')(6)('abc'), isStart ? '_-_abc' : 'abc_-_');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('partial methods');
|
||||
|
||||
_.each(['partial', 'partialRight'], function(methodName) {
|
||||
var func = fp[methodName],
|
||||
@@ -1201,7 +1598,7 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.reduce and fp.reduceRight');
|
||||
QUnit.module('reduce methods');
|
||||
|
||||
_.each(['reduce', 'reduceRight'], function(methodName) {
|
||||
var func = fp[methodName],
|
||||
@@ -1210,12 +1607,11 @@
|
||||
QUnit.test('`_.' + methodName + '` should provide the correct `iteratee` arguments when iterating an array', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var args,
|
||||
array = [1, 2, 3];
|
||||
var args;
|
||||
|
||||
func(function() {
|
||||
args || (args = slice.call(arguments));
|
||||
})(0)(array);
|
||||
})(0)([1, 2, 3]);
|
||||
|
||||
assert.deepEqual(args, isReduce ? [0, 1] : [0, 3]);
|
||||
});
|
||||
@@ -1241,6 +1637,22 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.restFrom');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should accept a `start` param', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var actual = fp.restFrom(2)(function() {
|
||||
return slice.call(arguments);
|
||||
})('a', 'b', 'c', 'd');
|
||||
|
||||
assert.deepEqual(actual, ['a', 'b', ['c', 'd']]);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.runInContext');
|
||||
|
||||
(function() {
|
||||
@@ -1260,7 +1672,23 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('fp.trimChars');
|
||||
QUnit.module('fp.spreadFrom');
|
||||
|
||||
(function() {
|
||||
QUnit.test('should accept a `start` param', function(assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var actual = fp.spreadFrom(2)(function() {
|
||||
return slice.call(arguments);
|
||||
})('a', 'b', ['c', 'd']);
|
||||
|
||||
assert.deepEqual(actual, ['a', 'b', 'c', 'd']);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('trimChars methods');
|
||||
|
||||
_.each(['trimChars', 'trimCharsStart', 'trimCharsEnd'], function(methodName, index) {
|
||||
var func = fp[methodName],
|
||||
|
||||
5601
test/test.js
5601
test/test.js
File diff suppressed because it is too large
Load Diff
@@ -29,6 +29,9 @@
|
||||
QUnit.config.hidepassed = true;
|
||||
QUnit.config.excused = {
|
||||
'Arrays': {
|
||||
'chunk': [
|
||||
'defaults to empty array (chunk size 0)'
|
||||
],
|
||||
'difference': [
|
||||
'can perform an OO-style difference'
|
||||
],
|
||||
@@ -291,6 +294,9 @@
|
||||
'isMatch': [
|
||||
'doesnt falsey match constructor on undefined/null'
|
||||
],
|
||||
'isSet': [
|
||||
'Died on test #9'
|
||||
],
|
||||
'findKey': [
|
||||
'called with context'
|
||||
],
|
||||
@@ -381,8 +387,6 @@
|
||||
|
||||
// Only excuse in Sauce Labs.
|
||||
if (!ui.isSauceLabs) {
|
||||
delete QUnit.config.excused.Functions['throttle repeatedly with results'];
|
||||
delete QUnit.config.excused.Functions['more throttle does not trigger leading call when leading is set to false'];
|
||||
delete QUnit.config.excused.Functions['throttle does not trigger trailing call when trailing is set to false'];
|
||||
delete QUnit.config.excused.Utility.now;
|
||||
}
|
||||
|
||||
27
vendor/backbone/backbone.js
vendored
27
vendor/backbone/backbone.js
vendored
@@ -1,4 +1,4 @@
|
||||
// Backbone.js 1.2.3
|
||||
// Backbone.js 1.3.3
|
||||
|
||||
// (c) 2010-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
||||
// Backbone may be freely distributed under the MIT license.
|
||||
@@ -44,7 +44,7 @@
|
||||
var slice = Array.prototype.slice;
|
||||
|
||||
// Current version of the library. Keep in sync with `package.json`.
|
||||
Backbone.VERSION = '1.2.3';
|
||||
Backbone.VERSION = '1.3.3';
|
||||
|
||||
// For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns
|
||||
// the `$` variable.
|
||||
@@ -242,7 +242,6 @@
|
||||
|
||||
listening.obj.off(name, callback, this);
|
||||
}
|
||||
if (_.isEmpty(listeningTo)) this._listeningTo = void 0;
|
||||
|
||||
return this;
|
||||
};
|
||||
@@ -299,7 +298,7 @@
|
||||
delete events[name];
|
||||
}
|
||||
}
|
||||
if (_.size(events)) return events;
|
||||
return events;
|
||||
};
|
||||
|
||||
// Bind an event to only be triggered a single time. After the first time
|
||||
@@ -309,7 +308,8 @@
|
||||
Events.once = function(name, callback, context) {
|
||||
// Map the event into a `{event: once}` object.
|
||||
var events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this));
|
||||
return this.on(events, void 0, context);
|
||||
if (typeof name === 'string' && context == null) callback = void 0;
|
||||
return this.on(events, callback, context);
|
||||
};
|
||||
|
||||
// Inversion-of-control versions of `once`.
|
||||
@@ -398,7 +398,8 @@
|
||||
this.attributes = {};
|
||||
if (options.collection) this.collection = options.collection;
|
||||
if (options.parse) attrs = this.parse(attrs, options) || {};
|
||||
attrs = _.defaults({}, attrs, _.result(this, 'defaults'));
|
||||
var defaults = _.result(this, 'defaults');
|
||||
attrs = _.defaults(_.extend({}, defaults, attrs), defaults);
|
||||
this.set(attrs, options);
|
||||
this.changed = {};
|
||||
this.initialize.apply(this, arguments);
|
||||
@@ -714,7 +715,7 @@
|
||||
|
||||
// Check if the model is currently in a valid state.
|
||||
isValid: function(options) {
|
||||
return this._validate({}, _.defaults({validate: true}, options));
|
||||
return this._validate({}, _.extend({}, options, {validate: true}));
|
||||
},
|
||||
|
||||
// Run validation against the next complete set of model attributes,
|
||||
@@ -824,7 +825,7 @@
|
||||
set: function(models, options) {
|
||||
if (models == null) return;
|
||||
|
||||
options = _.defaults({}, options, setOptions);
|
||||
options = _.extend({}, setOptions, options);
|
||||
if (options.parse && !this._isModel(models)) {
|
||||
models = this.parse(models, options) || [];
|
||||
}
|
||||
@@ -834,6 +835,7 @@
|
||||
|
||||
var at = options.at;
|
||||
if (at != null) at = +at;
|
||||
if (at > this.length) at = this.length;
|
||||
if (at < 0) at += this.length + 1;
|
||||
|
||||
var set = [];
|
||||
@@ -978,11 +980,13 @@
|
||||
return slice.apply(this.models, arguments);
|
||||
},
|
||||
|
||||
// Get a model from the set by id.
|
||||
// Get a model from the set by id, cid, model object with id or cid
|
||||
// properties, or an attributes object that is transformed through modelId.
|
||||
get: function(obj) {
|
||||
if (obj == null) return void 0;
|
||||
var id = this.modelId(this._isModel(obj) ? obj.attributes : obj);
|
||||
return this._byId[obj] || this._byId[id] || this._byId[obj.cid];
|
||||
return this._byId[obj] ||
|
||||
this._byId[this.modelId(obj.attributes || obj)] ||
|
||||
obj.cid && this._byId[obj.cid];
|
||||
},
|
||||
|
||||
// Returns `true` if the model is in the collection.
|
||||
@@ -1913,5 +1917,4 @@
|
||||
};
|
||||
|
||||
return Backbone;
|
||||
|
||||
});
|
||||
|
||||
21
vendor/backbone/test/collection.js
vendored
21
vendor/backbone/test/collection.js
vendored
@@ -101,11 +101,6 @@
|
||||
assert.equal(collection2.get(model.clone()), collection2.first());
|
||||
});
|
||||
|
||||
QUnit.test('get with "undefined" id', function(assert) {
|
||||
var collection = new Backbone.Collection([{id: 1}, {id: 'undefined'}]);
|
||||
assert.equal(collection.get(1).id, 1);
|
||||
});
|
||||
|
||||
QUnit.test('has', function(assert) {
|
||||
assert.expect(15);
|
||||
assert.ok(col.has(a));
|
||||
@@ -1583,7 +1578,7 @@
|
||||
});
|
||||
|
||||
QUnit.test('_addReference binds all collection events & adds to the lookup hashes', function(assert) {
|
||||
assert.expect(9);
|
||||
assert.expect(8);
|
||||
|
||||
var calls = {add: 0, remove: 0};
|
||||
|
||||
@@ -1603,7 +1598,6 @@
|
||||
assert.equal(this._byId[model.id], void 0);
|
||||
assert.equal(this._byId[model.cid], void 0);
|
||||
assert.equal(model.collection, void 0);
|
||||
assert.equal(model._events, void 0);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1739,13 +1733,14 @@
|
||||
assert.equal(c2.modelId(m.attributes), void 0);
|
||||
});
|
||||
|
||||
QUnit.test('#3039: adding at index fires with correct at', function(assert) {
|
||||
assert.expect(3);
|
||||
var collection = new Backbone.Collection([{at: 0}, {at: 4}]);
|
||||
QUnit.test('#3039 #3951: adding at index fires with correct at', function(assert) {
|
||||
assert.expect(4);
|
||||
var collection = new Backbone.Collection([{val: 0}, {val: 4}]);
|
||||
collection.on('add', function(model, coll, options) {
|
||||
assert.equal(model.get('at'), options.index);
|
||||
assert.equal(model.get('val'), options.index);
|
||||
});
|
||||
collection.add([{at: 1}, {at: 2}, {at: 3}], {at: 1});
|
||||
collection.add([{val: 1}, {val: 2}, {val: 3}], {at: 1});
|
||||
collection.add({val: 5}, {at: 10});
|
||||
});
|
||||
|
||||
QUnit.test('#3039: index is not sent when at is not specified', function(assert) {
|
||||
@@ -1903,7 +1898,7 @@
|
||||
assert.deepEqual(changed.merged, []);
|
||||
assert.ok(changed.removed.length === 2);
|
||||
|
||||
assert.ok(changed.removed.indexOf(model) > -1 && changed.removed.indexOf(model2) > -1);
|
||||
assert.ok(_.indexOf(changed.removed, model) > -1 && _.indexOf(changed.removed, model2) > -1);
|
||||
});
|
||||
collection.remove([model, model2]);
|
||||
});
|
||||
|
||||
25
vendor/backbone/test/events.js
vendored
25
vendor/backbone/test/events.js
vendored
@@ -417,6 +417,18 @@
|
||||
assert.equal(obj.counterB, 1, 'counterB should have only been incremented once.');
|
||||
});
|
||||
|
||||
QUnit.test('bind a callback with a default context when none supplied', function(assert) {
|
||||
assert.expect(1);
|
||||
var obj = _.extend({
|
||||
assertTrue: function() {
|
||||
assert.equal(this, obj, '`this` was bound to the callback');
|
||||
}
|
||||
}, Backbone.Events);
|
||||
|
||||
obj.once('event', obj.assertTrue);
|
||||
obj.trigger('event');
|
||||
});
|
||||
|
||||
QUnit.test('bind a callback with a supplied context', function(assert) {
|
||||
assert.expect(1);
|
||||
var TestClass = function() {
|
||||
@@ -587,6 +599,19 @@
|
||||
assert.equal(obj.counter, 3);
|
||||
});
|
||||
|
||||
QUnit.test('bind a callback with a supplied context using once with object notation', function(assert) {
|
||||
assert.expect(1);
|
||||
var obj = {counter: 0};
|
||||
var context = {};
|
||||
_.extend(obj, Backbone.Events);
|
||||
|
||||
obj.once({
|
||||
a: function() {
|
||||
assert.strictEqual(this, context, 'defaults `context` to `callback` param');
|
||||
}
|
||||
}, context).trigger('a');
|
||||
});
|
||||
|
||||
QUnit.test('once with off only by context', function(assert) {
|
||||
assert.expect(0);
|
||||
var context = {};
|
||||
|
||||
37
vendor/backbone/test/model.js
vendored
37
vendor/backbone/test/model.js
vendored
@@ -34,6 +34,12 @@
|
||||
assert.equal(model.collection, collection);
|
||||
});
|
||||
|
||||
QUnit.test('Object.prototype properties are overridden by attributes', function(assert) {
|
||||
assert.expect(1);
|
||||
var model = new Backbone.Model({hasOwnProperty: true});
|
||||
assert.equal(model.get('hasOwnProperty'), true);
|
||||
});
|
||||
|
||||
QUnit.test('initialize with attributes and options', function(assert) {
|
||||
assert.expect(1);
|
||||
var Model = Backbone.Model.extend({
|
||||
@@ -57,19 +63,6 @@
|
||||
assert.equal(model.get('value'), 2);
|
||||
});
|
||||
|
||||
QUnit.test('initialize with defaults', function(assert) {
|
||||
assert.expect(2);
|
||||
var Model = Backbone.Model.extend({
|
||||
defaults: {
|
||||
firstName: 'Unknown',
|
||||
lastName: 'Unknown'
|
||||
}
|
||||
});
|
||||
var model = new Model({'firstName': 'John'});
|
||||
assert.equal(model.get('firstName'), 'John');
|
||||
assert.equal(model.get('lastName'), 'Unknown');
|
||||
});
|
||||
|
||||
QUnit.test('parse can return null', function(assert) {
|
||||
assert.expect(1);
|
||||
var Model = Backbone.Model.extend({
|
||||
@@ -428,7 +421,7 @@
|
||||
});
|
||||
|
||||
QUnit.test('defaults', function(assert) {
|
||||
assert.expect(4);
|
||||
assert.expect(9);
|
||||
var Defaulted = Backbone.Model.extend({
|
||||
defaults: {
|
||||
one: 1,
|
||||
@@ -438,6 +431,9 @@
|
||||
var model = new Defaulted({two: undefined});
|
||||
assert.equal(model.get('one'), 1);
|
||||
assert.equal(model.get('two'), 2);
|
||||
model = new Defaulted({two: 3});
|
||||
assert.equal(model.get('one'), 1);
|
||||
assert.equal(model.get('two'), 3);
|
||||
Defaulted = Backbone.Model.extend({
|
||||
defaults: function() {
|
||||
return {
|
||||
@@ -449,6 +445,15 @@
|
||||
model = new Defaulted({two: undefined});
|
||||
assert.equal(model.get('one'), 3);
|
||||
assert.equal(model.get('two'), 4);
|
||||
Defaulted = Backbone.Model.extend({
|
||||
defaults: {hasOwnProperty: true}
|
||||
});
|
||||
model = new Defaulted();
|
||||
assert.equal(model.get('hasOwnProperty'), true);
|
||||
model = new Defaulted({hasOwnProperty: undefined});
|
||||
assert.equal(model.get('hasOwnProperty'), true);
|
||||
model = new Defaulted({hasOwnProperty: false});
|
||||
assert.equal(model.get('hasOwnProperty'), false);
|
||||
});
|
||||
|
||||
QUnit.test('change, hasChanged, changedAttributes, previous, previousAttributes', function(assert) {
|
||||
@@ -989,8 +994,8 @@
|
||||
|
||||
QUnit.test('`previous` for falsey keys', function(assert) {
|
||||
assert.expect(2);
|
||||
var model = new Backbone.Model({0: true, '': true});
|
||||
model.set({0: false, '': false}, {silent: true});
|
||||
var model = new Backbone.Model({'0': true, '': true});
|
||||
model.set({'0': false, '': false}, {silent: true});
|
||||
assert.equal(model.previous(0), true);
|
||||
assert.equal(model.previous(''), true);
|
||||
});
|
||||
|
||||
5
vendor/backbone/test/view.js
vendored
5
vendor/backbone/test/view.js
vendored
@@ -14,6 +14,11 @@
|
||||
className: 'test-view',
|
||||
other: 'non-special-option'
|
||||
});
|
||||
},
|
||||
|
||||
afterEach: function() {
|
||||
$('#testElement').remove();
|
||||
$('#test-view').remove();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
12
vendor/underscore/test/functions.js
vendored
12
vendor/underscore/test/functions.js
vendored
@@ -475,9 +475,9 @@
|
||||
});
|
||||
|
||||
QUnit.test('debounce asap', function(assert) {
|
||||
assert.expect(4);
|
||||
assert.expect(6);
|
||||
var done = assert.async();
|
||||
var a, b;
|
||||
var a, b, c;
|
||||
var counter = 0;
|
||||
var incr = function(){ return ++counter; };
|
||||
var debouncedIncr = _.debounce(incr, 64, true);
|
||||
@@ -489,7 +489,13 @@
|
||||
_.delay(debouncedIncr, 16);
|
||||
_.delay(debouncedIncr, 32);
|
||||
_.delay(debouncedIncr, 48);
|
||||
_.delay(function(){ assert.equal(counter, 1, 'incr was debounced'); done(); }, 128);
|
||||
_.delay(function(){
|
||||
assert.equal(counter, 1, 'incr was debounced');
|
||||
c = debouncedIncr();
|
||||
assert.equal(c, 2);
|
||||
assert.equal(counter, 2, 'incr was called again');
|
||||
done();
|
||||
}, 128);
|
||||
});
|
||||
|
||||
QUnit.test('debounce asap cancel', function(assert) {
|
||||
|
||||
102
vendor/underscore/test/objects.js
vendored
102
vendor/underscore/test/objects.js
vendored
@@ -565,6 +565,14 @@
|
||||
assert.equal(_.isEqual({a: 0}, {a: -0}), false);
|
||||
assert.equal(_.isEqual([NaN], [NaN]), true);
|
||||
assert.equal(_.isEqual({a: NaN}, {a: NaN}), true);
|
||||
|
||||
if (typeof Symbol !== 'undefined') {
|
||||
var symbol = Symbol('x');
|
||||
assert.strictEqual(_.isEqual(symbol, symbol), true, 'A symbol is equal to itself');
|
||||
assert.strictEqual(_.isEqual(symbol, Object(symbol)), true, 'Even when wrapped in Object()');
|
||||
assert.strictEqual(_.isEqual(symbol, null), false, 'Different types are not equal');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
QUnit.test('isEmpty', function(assert) {
|
||||
@@ -673,6 +681,100 @@
|
||||
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');
|
||||
if (typeof Set === 'function') {
|
||||
assert.ok(!_.isMap(new Set()), 'a set is not a map');
|
||||
}
|
||||
if (typeof WeakSet === 'function') {
|
||||
assert.ok(!_.isMap(new WeakSet()), 'a weakset is not a map');
|
||||
}
|
||||
if (typeof WeakMap === 'function') {
|
||||
assert.ok(!_.isMap(new WeakMap()), 'a weakmap is not a map');
|
||||
}
|
||||
if (typeof Map === 'function') {
|
||||
var keyString = 'a string';
|
||||
var obj = new Map();
|
||||
obj.set(keyString, 'value');
|
||||
assert.ok(_.isMap(obj), 'but a map is');
|
||||
}
|
||||
});
|
||||
|
||||
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');
|
||||
if (typeof Set === 'function') {
|
||||
assert.ok(!_.isWeakMap(new Set()), 'a set is not a weakmap');
|
||||
}
|
||||
if (typeof WeakSet === 'function') {
|
||||
assert.ok(!_.isWeakMap(new WeakSet()), 'a weakset is not a weakmap');
|
||||
}
|
||||
if (typeof Map === 'function') {
|
||||
assert.ok(!_.isWeakMap(new Map()), 'a map is not a weakmap');
|
||||
}
|
||||
if (typeof WeakMap === 'function') {
|
||||
var keyObj = {}, obj = new WeakMap();
|
||||
obj.set(keyObj, 'value');
|
||||
assert.ok(_.isWeakMap(obj), 'but a weakmap is');
|
||||
}
|
||||
});
|
||||
|
||||
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');
|
||||
if (typeof Map === 'function') {
|
||||
assert.ok(!_.isSet(new Map()), 'a map is not a set');
|
||||
}
|
||||
if (typeof WeakMap === 'function') {
|
||||
assert.ok(!_.isSet(new WeakMap()), 'a weakmap is not a set');
|
||||
}
|
||||
if (typeof WeakSet === 'function') {
|
||||
assert.ok(!_.isSet(new WeakSet()), 'a weakset is not a set');
|
||||
}
|
||||
if (typeof Set === 'function') {
|
||||
var obj = new Set();
|
||||
obj.add(1).add('string').add(false).add({});
|
||||
assert.ok(_.isSet(obj), 'but a set is');
|
||||
}
|
||||
});
|
||||
|
||||
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');
|
||||
if (typeof Map === 'function') {
|
||||
assert.ok(!_.isWeakSet(new Map()), 'a map is not a weakset');
|
||||
}
|
||||
if (typeof WeakMap === 'function') {
|
||||
assert.ok(!_.isWeakSet(new WeakMap()), 'a weakmap is not a weakset');
|
||||
}
|
||||
if (typeof Set === 'function') {
|
||||
assert.ok(!_.isWeakSet(new Set()), 'a set is not a weakset');
|
||||
}
|
||||
if (typeof WeakSet === 'function') {
|
||||
var obj = new WeakSet();
|
||||
obj.add({x: 1}, {y: 'string'}).add({y: 'string'}).add({z: [1, 2, 3]});
|
||||
assert.ok(_.isWeakSet(obj), 'but a weakset is');
|
||||
}
|
||||
});
|
||||
|
||||
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');
|
||||
|
||||
27
vendor/underscore/underscore.js
vendored
27
vendor/underscore/underscore.js
vendored
@@ -20,6 +20,7 @@
|
||||
|
||||
// Save bytes in the minified (but not gzipped) version:
|
||||
var ArrayProto = Array.prototype, ObjProto = Object.prototype;
|
||||
var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;
|
||||
|
||||
// Create quick reference variables for speed access to core prototypes.
|
||||
var push = ArrayProto.push,
|
||||
@@ -218,12 +219,8 @@
|
||||
|
||||
// Return the first value which passes a truth test. Aliased as `detect`.
|
||||
_.find = _.detect = function(obj, predicate, context) {
|
||||
var key;
|
||||
if (isArrayLike(obj)) {
|
||||
key = _.findIndex(obj, predicate, context);
|
||||
} else {
|
||||
key = _.findKey(obj, predicate, context);
|
||||
}
|
||||
var keyFinder = isArrayLike(obj) ? _.findIndex : _.findKey;
|
||||
var key = keyFinder(obj, predicate, context);
|
||||
if (key !== void 0 && key !== -1) return obj[key];
|
||||
};
|
||||
|
||||
@@ -442,7 +439,7 @@
|
||||
// Keep surrogate pair characters together
|
||||
return obj.match(reStrSymbol);
|
||||
}
|
||||
if (isArrayLike(obj)) return _.map(obj, _.identity);
|
||||
if (isArrayLike(obj)) return _.map(obj);
|
||||
return _.values(obj);
|
||||
};
|
||||
|
||||
@@ -494,7 +491,7 @@
|
||||
|
||||
// Trim out all falsy values from an array.
|
||||
_.compact = function(array) {
|
||||
return _.filter(array, _.identity);
|
||||
return _.filter(array);
|
||||
};
|
||||
|
||||
// Internal implementation of a recursive `flatten` function.
|
||||
@@ -859,12 +856,12 @@
|
||||
};
|
||||
|
||||
var debounced = restArgs(function(args) {
|
||||
var callNow = immediate && !timeout;
|
||||
if (timeout) clearTimeout(timeout);
|
||||
if (callNow) {
|
||||
if (immediate) {
|
||||
var callNow = !timeout;
|
||||
timeout = setTimeout(later, wait);
|
||||
result = func.apply(this, args);
|
||||
} else if (!immediate) {
|
||||
if (callNow) result = func.apply(this, args);
|
||||
} else {
|
||||
timeout = _.delay(later, wait, this, args);
|
||||
}
|
||||
|
||||
@@ -1195,6 +1192,8 @@
|
||||
// millisecond representations. Note that invalid dates with millisecond representations
|
||||
// of `NaN` are not equivalent.
|
||||
return +a === +b;
|
||||
case '[object Symbol]':
|
||||
return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);
|
||||
}
|
||||
|
||||
var areArrays = className === '[object Array]';
|
||||
@@ -1285,8 +1284,8 @@
|
||||
return type === 'function' || type === 'object' && !!obj;
|
||||
};
|
||||
|
||||
// Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.
|
||||
_.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol'], function(name) {
|
||||
// Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.
|
||||
_.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol', 'Map', 'WeakMap', 'Set', 'WeakSet'], function(name) {
|
||||
_['is' + name] = function(obj) {
|
||||
return toString.call(obj) === '[object ' + name + ']';
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user