@wfrog/vc-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/README.md +95 -0
  2. package/dist/es/chunk/-EkpfdcW.mjs +1100 -0
  3. package/dist/es/chunk/8rLUmOVR.mjs +29 -0
  4. package/dist/es/chunk/B-rxnVJv.mjs +3 -0
  5. package/dist/es/chunk/BAGoDD49.mjs +36 -0
  6. package/dist/es/chunk/BAtns-Mc.mjs +96 -0
  7. package/dist/es/chunk/BJS5Pdfp.mjs +55 -0
  8. package/dist/es/chunk/BMzd-IS6.mjs +900 -0
  9. package/dist/es/chunk/BWcCXRRK.mjs +229 -0
  10. package/dist/es/chunk/BX-Ogf7p.mjs +3743 -0
  11. package/dist/es/chunk/B_tU9Nax.mjs +49 -0
  12. package/dist/es/chunk/BdDihk0t.mjs +3420 -0
  13. package/dist/es/chunk/C2LgraHx.mjs +489 -0
  14. package/dist/es/chunk/C5hWsUfD.mjs +64 -0
  15. package/dist/es/chunk/C7iSSBUr.mjs +303 -0
  16. package/dist/es/chunk/CD98REcR.mjs +666 -0
  17. package/dist/es/chunk/CEClY-_T.mjs +445 -0
  18. package/dist/es/chunk/CEm0brzD.mjs +35 -0
  19. package/dist/es/chunk/CMABHk8B.mjs +1942 -0
  20. package/dist/es/chunk/CS4VKsqy.mjs +19 -0
  21. package/dist/es/chunk/CVlj9F0I.mjs +291 -0
  22. package/dist/es/chunk/CZ4ggqDE.mjs +140 -0
  23. package/dist/es/chunk/CaTfZePA.mjs +533 -0
  24. package/dist/es/chunk/Ce9ApjrT.mjs +201 -0
  25. package/dist/es/chunk/ClZGuAIb.mjs +10 -0
  26. package/dist/es/chunk/Coex0GxM.mjs +450 -0
  27. package/dist/es/chunk/Ct6q2FXg.mjs +5 -0
  28. package/dist/es/chunk/CyxEcbcy.mjs +29 -0
  29. package/dist/es/chunk/D389hx_T.mjs +35 -0
  30. package/dist/es/chunk/D3DXeVfC.mjs +1171 -0
  31. package/dist/es/chunk/D3uV7vm-.mjs +45 -0
  32. package/dist/es/chunk/D5259bwd.mjs +50 -0
  33. package/dist/es/chunk/DMHNh_tw.mjs +49 -0
  34. package/dist/es/chunk/DVNTpOBR.mjs +4 -0
  35. package/dist/es/chunk/DZACQ9LT.mjs +95 -0
  36. package/dist/es/chunk/De_EXLIy.mjs +22 -0
  37. package/dist/es/chunk/Dh4jaUSg.mjs +89 -0
  38. package/dist/es/chunk/DhhdKtyu.mjs +439 -0
  39. package/dist/es/chunk/DqUIKX7f.mjs +2039 -0
  40. package/dist/es/chunk/Dqz1zvKN.mjs +59 -0
  41. package/dist/es/chunk/Dvi7RsXg.mjs +727 -0
  42. package/dist/es/chunk/DyDMGLoF.mjs +123 -0
  43. package/dist/es/chunk/E_WRn0OP.mjs +449 -0
  44. package/dist/es/chunk/Fo0dZYnz.mjs +128 -0
  45. package/dist/es/chunk/HSv8BL8o.mjs +72 -0
  46. package/dist/es/chunk/JCIyOUEY.mjs +105 -0
  47. package/dist/es/chunk/O-uhUKF4.mjs +43 -0
  48. package/dist/es/chunk/Spa-JKB4.mjs +1046 -0
  49. package/dist/es/chunk/VAdRxe-1.mjs +16 -0
  50. package/dist/es/chunk/VCrtRnxt.mjs +1477 -0
  51. package/dist/es/chunk/ViP2SEY4.mjs +211 -0
  52. package/dist/es/chunk/aibQ9WSZ.mjs +249 -0
  53. package/dist/es/chunk/nWBcrYxV.mjs +690 -0
  54. package/dist/es/chunk/pcqpp-6-.mjs +9 -0
  55. package/dist/es/chunk/qY9OvNHY.mjs +283 -0
  56. package/dist/es/chunk/su2Zrql0.mjs +53 -0
  57. package/dist/es/chunk/zfg5SOj1.mjs +138 -0
  58. package/dist/es/components/awesome-icon/awesome-icon.d.ts +6 -0
  59. package/dist/es/components/awesome-icon/awesome-icon.mjs +41 -0
  60. package/dist/es/components/awesome-icon/awesome-icon.vue.d.ts +5 -0
  61. package/dist/es/components/awesome-icon/index.d.ts +4 -0
  62. package/dist/es/components/awesome-icon/index.mjs +6 -0
  63. package/dist/es/components/backbottom/backbottom.d.ts +7 -0
  64. package/dist/es/components/backbottom/backbottom.mjs +172 -0
  65. package/dist/es/components/backbottom/backbottom.vue.d.ts +7 -0
  66. package/dist/es/components/backbottom/components/child.vue.d.ts +30 -0
  67. package/dist/es/components/backbottom/index.d.ts +4 -0
  68. package/dist/es/components/backbottom/index.mjs +6 -0
  69. package/dist/es/components/button/button.d.ts +18 -0
  70. package/dist/es/components/button/button.mjs +313 -0
  71. package/dist/es/components/button/button.vue.d.ts +33 -0
  72. package/dist/es/components/button/index.css +9 -0
  73. package/dist/es/components/button/index.d.ts +4 -0
  74. package/dist/es/components/button/index.mjs +6 -0
  75. package/dist/es/components/cdn-tag.vue.d.ts +5 -0
  76. package/dist/es/components/chat-container/chat-container.d.ts +9 -0
  77. package/dist/es/components/chat-container/chat-container.mjs +77 -0
  78. package/dist/es/components/chat-container/chat-container.vue.d.ts +29 -0
  79. package/dist/es/components/chat-container/index.css +9 -0
  80. package/dist/es/components/chat-container/index.d.ts +4 -0
  81. package/dist/es/components/chat-container/index.mjs +6 -0
  82. package/dist/es/components/choice/choice.d.ts +6 -0
  83. package/dist/es/components/choice/choice.mjs +53 -0
  84. package/dist/es/components/choice/choice.vue.d.ts +5 -0
  85. package/dist/es/components/choice/index.css +7 -0
  86. package/dist/es/components/choice/index.d.ts +4 -0
  87. package/dist/es/components/choice/index.mjs +6 -0
  88. package/dist/es/components/choice-boolean/choice-boolean.d.ts +5 -0
  89. package/dist/es/components/choice-boolean/choice-boolean.mjs +32 -0
  90. package/dist/es/components/choice-boolean/choice-boolean.vue.d.ts +10 -0
  91. package/dist/es/components/choice-boolean/index.d.ts +4 -0
  92. package/dist/es/components/choice-boolean/index.mjs +6 -0
  93. package/dist/es/components/config-provider/config-provider.d.ts +16 -0
  94. package/dist/es/components/config-provider/config-provider.mjs +29 -0
  95. package/dist/es/components/config-provider/config-provider.vue.d.ts +18 -0
  96. package/dist/es/components/config-provider/config-provider2.mjs +6 -0
  97. package/dist/es/components/config-provider/index.d.ts +4 -0
  98. package/dist/es/components/config-provider/index.mjs +6 -0
  99. package/dist/es/components/cropper/cropper.d.ts +12 -0
  100. package/dist/es/components/cropper/cropper.mjs +333 -0
  101. package/dist/es/components/cropper/cropper.vue.d.ts +32 -0
  102. package/dist/es/components/cropper/index.css +4 -0
  103. package/dist/es/components/cropper/index.d.ts +4 -0
  104. package/dist/es/components/cropper/index.mjs +6 -0
  105. package/dist/es/components/currency/currency.d.ts +21 -0
  106. package/dist/es/components/currency/currency.mjs +185 -0
  107. package/dist/es/components/currency/currency.vue.d.ts +14 -0
  108. package/dist/es/components/currency/index.css +8 -0
  109. package/dist/es/components/currency/index.d.ts +4 -0
  110. package/dist/es/components/currency/index.mjs +6 -0
  111. package/dist/es/components/daterange-picker/daterange-picker.d.ts +6 -0
  112. package/dist/es/components/daterange-picker/daterange-picker.mjs +5550 -0
  113. package/dist/es/components/daterange-picker/daterange-picker.vue.d.ts +13 -0
  114. package/dist/es/components/daterange-picker/index.d.ts +4 -0
  115. package/dist/es/components/daterange-picker/index.mjs +6 -0
  116. package/dist/es/components/dialog/dialog.d.ts +13 -0
  117. package/dist/es/components/dialog/dialog.mjs +537 -0
  118. package/dist/es/components/dialog/dialog.vue.d.ts +38 -0
  119. package/dist/es/components/dialog/index.css +87 -0
  120. package/dist/es/components/dialog/index.d.ts +4 -0
  121. package/dist/es/components/dialog/index.mjs +6 -0
  122. package/dist/es/components/dialog-camera-upload/dialog-camera-upload.d.ts +33 -0
  123. package/dist/es/components/dialog-camera-upload/dialog-camera-upload.mjs +412 -0
  124. package/dist/es/components/dialog-camera-upload/dialog-camera-upload.vue.d.ts +23 -0
  125. package/dist/es/components/dialog-camera-upload/index.css +66 -0
  126. package/dist/es/components/dialog-camera-upload/index.d.ts +4 -0
  127. package/dist/es/components/dialog-camera-upload/index.mjs +6 -0
  128. package/dist/es/components/dialog-map-point/dialog-map-point.d.ts +9 -0
  129. package/dist/es/components/dialog-map-point/dialog-map-point.mjs +183 -0
  130. package/dist/es/components/dialog-map-point/dialog-map-point.vue.d.ts +22 -0
  131. package/dist/es/components/dialog-map-point/index.css +11 -0
  132. package/dist/es/components/dialog-map-point/index.d.ts +4 -0
  133. package/dist/es/components/dialog-map-point/index.mjs +6 -0
  134. package/dist/es/components/dialog-upload-images/dialog-upload-images.d.ts +16 -0
  135. package/dist/es/components/dialog-upload-images/dialog-upload-images.mjs +1391 -0
  136. package/dist/es/components/dialog-upload-images/dialog-upload-images.vue.d.ts +19 -0
  137. package/dist/es/components/dialog-upload-images/index.css +62 -0
  138. package/dist/es/components/dialog-upload-images/index.d.ts +4 -0
  139. package/dist/es/components/dialog-upload-images/index.mjs +6 -0
  140. package/dist/es/components/document.vue.d.ts +14 -0
  141. package/dist/es/components/drawer/drawer.d.ts +7 -0
  142. package/dist/es/components/drawer/drawer.mjs +412 -0
  143. package/dist/es/components/drawer/drawer.vue.d.ts +31 -0
  144. package/dist/es/components/drawer/index.css +56 -0
  145. package/dist/es/components/drawer/index.d.ts +4 -0
  146. package/dist/es/components/drawer/index.mjs +6 -0
  147. package/dist/es/components/easy-pagination/easy-pagination.d.ts +8 -0
  148. package/dist/es/components/easy-pagination/easy-pagination.mjs +74 -0
  149. package/dist/es/components/easy-pagination/easy-pagination.vue.d.ts +19 -0
  150. package/dist/es/components/easy-pagination/index.css +10 -0
  151. package/dist/es/components/easy-pagination/index.d.ts +4 -0
  152. package/dist/es/components/easy-pagination/index.mjs +6 -0
  153. package/dist/es/components/el-icon/el-icon.d.ts +6 -0
  154. package/dist/es/components/el-icon/el-icon.mjs +46 -0
  155. package/dist/es/components/el-icon/el-icon.vue.d.ts +6 -0
  156. package/dist/es/components/el-icon/index.css +7 -0
  157. package/dist/es/components/el-icon/index.d.ts +4 -0
  158. package/dist/es/components/el-icon/index.mjs +6 -0
  159. package/dist/es/components/example-wrapper.vue.d.ts +19 -0
  160. package/dist/es/components/flag/flag.mjs +44 -0
  161. package/dist/es/components/flag/flag.vue.d.ts +5 -0
  162. package/dist/es/components/flag/flags.d.ts +8 -0
  163. package/dist/es/components/flag/index.d.ts +4 -0
  164. package/dist/es/components/flag/index.mjs +6 -0
  165. package/dist/es/components/icon/icon.d.ts +6 -0
  166. package/dist/es/components/icon/icon.mjs +54 -0
  167. package/dist/es/components/icon/icon.vue.d.ts +3 -0
  168. package/dist/es/components/icon/icon2.mjs +27 -0
  169. package/dist/es/components/icon/index.css +9 -0
  170. package/dist/es/components/icon/index.d.ts +4 -0
  171. package/dist/es/components/icon/index.mjs +6 -0
  172. package/dist/es/components/image/image.d.ts +16 -0
  173. package/dist/es/components/image/image.mjs +167 -0
  174. package/dist/es/components/image/image.vue.d.ts +206 -0
  175. package/dist/es/components/image/index.css +20 -0
  176. package/dist/es/components/image/index.d.ts +4 -0
  177. package/dist/es/components/image/index.mjs +6 -0
  178. package/dist/es/components/input/index.css +9 -0
  179. package/dist/es/components/input/index.d.ts +4 -0
  180. package/dist/es/components/input/index.mjs +6 -0
  181. package/dist/es/components/input/input.d.ts +4 -0
  182. package/dist/es/components/input/input.mjs +85 -0
  183. package/dist/es/components/input/input.vue.d.ts +1232 -0
  184. package/dist/es/components/input-number/index.css +24 -0
  185. package/dist/es/components/input-number/index.d.ts +4 -0
  186. package/dist/es/components/input-number/index.mjs +6 -0
  187. package/dist/es/components/input-number/input-number.d.ts +8 -0
  188. package/dist/es/components/input-number/input-number.mjs +137 -0
  189. package/dist/es/components/input-number/input-number.vue.d.ts +35 -0
  190. package/dist/es/components/pca-picker/components/c.vue.d.ts +123 -0
  191. package/dist/es/components/pca-picker/components/elevator-item.vue.d.ts +7 -0
  192. package/dist/es/components/pca-picker/components/filter.vue.d.ts +2 -0
  193. package/dist/es/components/pca-picker/components/history.vue.d.ts +2 -0
  194. package/dist/es/components/pca-picker/components/hot.vue.d.ts +2 -0
  195. package/dist/es/components/pca-picker/components/p.vue.d.ts +2 -0
  196. package/dist/es/components/pca-picker/components/pca.vue.d.ts +9 -0
  197. package/dist/es/components/pca-picker/index.css +107 -0
  198. package/dist/es/components/pca-picker/index.d.ts +4 -0
  199. package/dist/es/components/pca-picker/index.mjs +6 -0
  200. package/dist/es/components/pca-picker/pca-picker.d.ts +78 -0
  201. package/dist/es/components/pca-picker/pca-picker.mjs +1667 -0
  202. package/dist/es/components/pca-picker/pca-picker.vue.d.ts +583 -0
  203. package/dist/es/components/qr-code/index.d.ts +4 -0
  204. package/dist/es/components/qr-code/index.mjs +6 -0
  205. package/dist/es/components/qr-code/qr-code.d.ts +9 -0
  206. package/dist/es/components/qr-code/qr-code.mjs +69 -0
  207. package/dist/es/components/qr-code/qr-code.vue.d.ts +13 -0
  208. package/dist/es/components/screenfull/index.css +14 -0
  209. package/dist/es/components/screenfull/index.d.ts +4 -0
  210. package/dist/es/components/screenfull/index.mjs +6 -0
  211. package/dist/es/components/screenfull/screenfull.d.ts +4 -0
  212. package/dist/es/components/screenfull/screenfull.mjs +91 -0
  213. package/dist/es/components/screenfull/screenfull.vue.d.ts +20 -0
  214. package/dist/es/components/select/index.css +9 -0
  215. package/dist/es/components/select/index.d.ts +4 -0
  216. package/dist/es/components/select/index.mjs +6 -0
  217. package/dist/es/components/select/select.d.ts +6 -0
  218. package/dist/es/components/select/select.mjs +63 -0
  219. package/dist/es/components/select/select.vue.d.ts +6 -0
  220. package/dist/es/components/single-player/index.css +45 -0
  221. package/dist/es/components/single-player/index.d.ts +4 -0
  222. package/dist/es/components/single-player/index.mjs +6 -0
  223. package/dist/es/components/single-player/single-player.d.ts +4 -0
  224. package/dist/es/components/single-player/single-player.mjs +1172 -0
  225. package/dist/es/components/single-player/single-player.vue.d.ts +13 -0
  226. package/dist/es/components/svg-icon/index.css +9 -0
  227. package/dist/es/components/svg-icon/index.d.ts +4 -0
  228. package/dist/es/components/svg-icon/index.mjs +6 -0
  229. package/dist/es/components/svg-icon/svg-icon.d.ts +5 -0
  230. package/dist/es/components/svg-icon/svg-icon.mjs +46 -0
  231. package/dist/es/components/svg-icon/svg-icon.vue.d.ts +18 -0
  232. package/dist/es/components/switch/index.css +15 -0
  233. package/dist/es/components/switch/index.d.ts +4 -0
  234. package/dist/es/components/switch/index.mjs +6 -0
  235. package/dist/es/components/switch/switch.d.ts +9 -0
  236. package/dist/es/components/switch/switch.mjs +82 -0
  237. package/dist/es/components/switch/switch.vue.d.ts +14 -0
  238. package/dist/es/components/sync-scroll-container/index.css +82 -0
  239. package/dist/es/components/sync-scroll-container/index.d.ts +4 -0
  240. package/dist/es/components/sync-scroll-container/index.mjs +6 -0
  241. package/dist/es/components/sync-scroll-container/sync-scroll-container.d.ts +6 -0
  242. package/dist/es/components/sync-scroll-container/sync-scroll-container.mjs +157 -0
  243. package/dist/es/components/sync-scroll-container/sync-scroll-container.vue.d.ts +36 -0
  244. package/dist/es/components/tags/index.css +17 -0
  245. package/dist/es/components/tags/index.d.ts +4 -0
  246. package/dist/es/components/tags/index.mjs +6 -0
  247. package/dist/es/components/tags/tags.d.ts +9 -0
  248. package/dist/es/components/tags/tags.mjs +296 -0
  249. package/dist/es/components/tags/tags.vue.d.ts +20 -0
  250. package/dist/es/components/text-ellipsis/index.css +15 -0
  251. package/dist/es/components/text-ellipsis/index.d.ts +4 -0
  252. package/dist/es/components/text-ellipsis/index.mjs +6 -0
  253. package/dist/es/components/text-ellipsis/text-ellipsis.d.ts +12 -0
  254. package/dist/es/components/text-ellipsis/text-ellipsis.mjs +137 -0
  255. package/dist/es/components/text-ellipsis/text-ellipsis.vue.d.ts +41 -0
  256. package/dist/es/components/thousand-input/index.css +4 -0
  257. package/dist/es/components/thousand-input/index.d.ts +4 -0
  258. package/dist/es/components/thousand-input/index.mjs +6 -0
  259. package/dist/es/components/thousand-input/thousand-input.d.ts +11 -0
  260. package/dist/es/components/thousand-input/thousand-input.mjs +159 -0
  261. package/dist/es/components/thousand-input/thousand-input.vue.d.ts +2558 -0
  262. package/dist/es/components/tinymce/config.d.ts +25 -0
  263. package/dist/es/components/tinymce/index.css +9 -0
  264. package/dist/es/components/tinymce/index.d.ts +4 -0
  265. package/dist/es/components/tinymce/index.mjs +6 -0
  266. package/dist/es/components/tinymce/tinymce.d.ts +9 -0
  267. package/dist/es/components/tinymce/tinymce.mjs +176 -0
  268. package/dist/es/components/tinymce/tinymce.vue.d.ts +20 -0
  269. package/dist/es/components/tree-picker/components/popover-cascader.d.ts +8 -0
  270. package/dist/es/components/tree-picker/components/popover-cascader.vue.d.ts +1361 -0
  271. package/dist/es/components/tree-picker/docs/data.d.ts +2 -0
  272. package/dist/es/components/tree-picker/index.css +41 -0
  273. package/dist/es/components/tree-picker/index.d.ts +4 -0
  274. package/dist/es/components/tree-picker/index.mjs +6 -0
  275. package/dist/es/components/tree-picker/popover-cascader.css +23 -0
  276. package/dist/es/components/tree-picker/tree-picker.d.ts +14 -0
  277. package/dist/es/components/tree-picker/tree-picker.mjs +173 -0
  278. package/dist/es/components/tree-picker/tree-picker.vue.d.ts +575 -0
  279. package/dist/es/components/upload-file/index.css +30 -0
  280. package/dist/es/components/upload-file/index.d.ts +4 -0
  281. package/dist/es/components/upload-file/index.mjs +6 -0
  282. package/dist/es/components/upload-file/upload-file.d.ts +39 -0
  283. package/dist/es/components/upload-file/upload-file.mjs +202 -0
  284. package/dist/es/components/upload-file/upload-file.vue.d.ts +30 -0
  285. package/dist/es/directives/cleave/index.d.ts +3 -0
  286. package/dist/es/directives/focus/index.d.ts +4 -0
  287. package/dist/es/directives/index.d.ts +3 -0
  288. package/dist/es/directives/thousand/index.d.ts +3 -0
  289. package/dist/es/index.d.ts +42 -0
  290. package/dist/es/index.mjs +122 -0
  291. package/dist/es/use/useSmallScreen/index.d.ts +4 -0
  292. package/dist/es/use/useSmallScreen/index.mjs +10 -0
  293. package/dist/es/use/useStore/index.d.ts +3 -0
  294. package/dist/es/use/useStore/index.mjs +22 -0
  295. package/dist/es/utils/index.d.ts +6 -0
  296. package/dist/es/utils/resolver.d.ts +3 -0
  297. package/dist/es/utils/resolver.mjs +24 -0
  298. package/dist/es/utils/typescript.d.ts +6 -0
  299. package/dist/global.d.ts +42 -0
  300. package/dist/index.css +869 -0
  301. package/package.json +58 -0
@@ -0,0 +1,1100 @@
1
+ import { g as getNative, f as isLength, h as isFunction, j as isArguments, k as isIndex, b as isArray, L as ListCache, M as Map, l as MapCache, m as arrayPush, n as toSource, o as eq } from './Spa-JKB4.mjs';
2
+ import { r as root, i as isObjectLike, b as baseGetTag, S as Symbol$1 } from './Fo0dZYnz.mjs';
3
+ import { b as baseUnary, n as nodeUtil } from './O-uhUKF4.mjs';
4
+
5
+ /* Built-in method references that are verified to be native. */
6
+ var WeakMap = getNative(root, 'WeakMap');
7
+
8
+ /**
9
+ * Checks if `value` is array-like. A value is considered array-like if it's
10
+ * not a function and has a `value.length` that's an integer greater than or
11
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
12
+ *
13
+ * @static
14
+ * @memberOf _
15
+ * @since 4.0.0
16
+ * @category Lang
17
+ * @param {*} value The value to check.
18
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
19
+ * @example
20
+ *
21
+ * _.isArrayLike([1, 2, 3]);
22
+ * // => true
23
+ *
24
+ * _.isArrayLike(document.body.children);
25
+ * // => true
26
+ *
27
+ * _.isArrayLike('abc');
28
+ * // => true
29
+ *
30
+ * _.isArrayLike(_.noop);
31
+ * // => false
32
+ */
33
+ function isArrayLike(value) {
34
+ return value != null && isLength(value.length) && !isFunction(value);
35
+ }
36
+
37
+ /** Used for built-in method references. */
38
+ var objectProto$5 = Object.prototype;
39
+
40
+ /**
41
+ * Checks if `value` is likely a prototype object.
42
+ *
43
+ * @private
44
+ * @param {*} value The value to check.
45
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
46
+ */
47
+ function isPrototype(value) {
48
+ var Ctor = value && value.constructor,
49
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5;
50
+
51
+ return value === proto;
52
+ }
53
+
54
+ /**
55
+ * The base implementation of `_.times` without support for iteratee shorthands
56
+ * or max array length checks.
57
+ *
58
+ * @private
59
+ * @param {number} n The number of times to invoke `iteratee`.
60
+ * @param {Function} iteratee The function invoked per iteration.
61
+ * @returns {Array} Returns the array of results.
62
+ */
63
+ function baseTimes(n, iteratee) {
64
+ var index = -1,
65
+ result = Array(n);
66
+
67
+ while (++index < n) {
68
+ result[index] = iteratee(index);
69
+ }
70
+ return result;
71
+ }
72
+
73
+ /**
74
+ * This method returns `false`.
75
+ *
76
+ * @static
77
+ * @memberOf _
78
+ * @since 4.13.0
79
+ * @category Util
80
+ * @returns {boolean} Returns `false`.
81
+ * @example
82
+ *
83
+ * _.times(2, _.stubFalse);
84
+ * // => [false, false]
85
+ */
86
+ function stubFalse() {
87
+ return false;
88
+ }
89
+
90
+ /** Detect free variable `exports`. */
91
+ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
92
+
93
+ /** Detect free variable `module`. */
94
+ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
95
+
96
+ /** Detect the popular CommonJS extension `module.exports`. */
97
+ var moduleExports = freeModule && freeModule.exports === freeExports;
98
+
99
+ /** Built-in value references. */
100
+ var Buffer = moduleExports ? root.Buffer : undefined;
101
+
102
+ /* Built-in method references for those with the same name as other `lodash` methods. */
103
+ var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
104
+
105
+ /**
106
+ * Checks if `value` is a buffer.
107
+ *
108
+ * @static
109
+ * @memberOf _
110
+ * @since 4.3.0
111
+ * @category Lang
112
+ * @param {*} value The value to check.
113
+ * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
114
+ * @example
115
+ *
116
+ * _.isBuffer(new Buffer(2));
117
+ * // => true
118
+ *
119
+ * _.isBuffer(new Uint8Array(2));
120
+ * // => false
121
+ */
122
+ var isBuffer = nativeIsBuffer || stubFalse;
123
+
124
+ /** `Object#toString` result references. */
125
+ var argsTag$1 = '[object Arguments]',
126
+ arrayTag$1 = '[object Array]',
127
+ boolTag$1 = '[object Boolean]',
128
+ dateTag$1 = '[object Date]',
129
+ errorTag$1 = '[object Error]',
130
+ funcTag = '[object Function]',
131
+ mapTag$2 = '[object Map]',
132
+ numberTag$1 = '[object Number]',
133
+ objectTag$2 = '[object Object]',
134
+ regexpTag$1 = '[object RegExp]',
135
+ setTag$2 = '[object Set]',
136
+ stringTag$1 = '[object String]',
137
+ weakMapTag$1 = '[object WeakMap]';
138
+
139
+ var arrayBufferTag$1 = '[object ArrayBuffer]',
140
+ dataViewTag$2 = '[object DataView]',
141
+ float32Tag = '[object Float32Array]',
142
+ float64Tag = '[object Float64Array]',
143
+ int8Tag = '[object Int8Array]',
144
+ int16Tag = '[object Int16Array]',
145
+ int32Tag = '[object Int32Array]',
146
+ uint8Tag = '[object Uint8Array]',
147
+ uint8ClampedTag = '[object Uint8ClampedArray]',
148
+ uint16Tag = '[object Uint16Array]',
149
+ uint32Tag = '[object Uint32Array]';
150
+
151
+ /** Used to identify `toStringTag` values of typed arrays. */
152
+ var typedArrayTags = {};
153
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
154
+ typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
155
+ typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
156
+ typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
157
+ typedArrayTags[uint32Tag] = true;
158
+ typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] =
159
+ typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] =
160
+ typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] =
161
+ typedArrayTags[errorTag$1] = typedArrayTags[funcTag] =
162
+ typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] =
163
+ typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] =
164
+ typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] =
165
+ typedArrayTags[weakMapTag$1] = false;
166
+
167
+ /**
168
+ * The base implementation of `_.isTypedArray` without Node.js optimizations.
169
+ *
170
+ * @private
171
+ * @param {*} value The value to check.
172
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
173
+ */
174
+ function baseIsTypedArray(value) {
175
+ return isObjectLike(value) &&
176
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
177
+ }
178
+
179
+ /* Node.js helper references. */
180
+ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
181
+
182
+ /**
183
+ * Checks if `value` is classified as a typed array.
184
+ *
185
+ * @static
186
+ * @memberOf _
187
+ * @since 3.0.0
188
+ * @category Lang
189
+ * @param {*} value The value to check.
190
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
191
+ * @example
192
+ *
193
+ * _.isTypedArray(new Uint8Array);
194
+ * // => true
195
+ *
196
+ * _.isTypedArray([]);
197
+ * // => false
198
+ */
199
+ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
200
+
201
+ /** Used for built-in method references. */
202
+ var objectProto$4 = Object.prototype;
203
+
204
+ /** Used to check objects for own properties. */
205
+ var hasOwnProperty$3 = objectProto$4.hasOwnProperty;
206
+
207
+ /**
208
+ * Creates an array of the enumerable property names of the array-like `value`.
209
+ *
210
+ * @private
211
+ * @param {*} value The value to query.
212
+ * @param {boolean} inherited Specify returning inherited property names.
213
+ * @returns {Array} Returns the array of property names.
214
+ */
215
+ function arrayLikeKeys(value, inherited) {
216
+ var isArr = isArray(value),
217
+ isArg = !isArr && isArguments(value),
218
+ isBuff = !isArr && !isArg && isBuffer(value),
219
+ isType = !isArr && !isArg && !isBuff && isTypedArray(value),
220
+ skipIndexes = isArr || isArg || isBuff || isType,
221
+ result = skipIndexes ? baseTimes(value.length, String) : [],
222
+ length = result.length;
223
+
224
+ for (var key in value) {
225
+ if ((inherited || hasOwnProperty$3.call(value, key)) &&
226
+ !(skipIndexes && (
227
+ // Safari 9 has enumerable `arguments.length` in strict mode.
228
+ key == 'length' ||
229
+ // Node.js 0.10 has enumerable non-index properties on buffers.
230
+ (isBuff && (key == 'offset' || key == 'parent')) ||
231
+ // PhantomJS 2 has enumerable non-index properties on typed arrays.
232
+ (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
233
+ // Skip index properties.
234
+ isIndex(key, length)
235
+ ))) {
236
+ result.push(key);
237
+ }
238
+ }
239
+ return result;
240
+ }
241
+
242
+ /**
243
+ * Creates a unary function that invokes `func` with its argument transformed.
244
+ *
245
+ * @private
246
+ * @param {Function} func The function to wrap.
247
+ * @param {Function} transform The argument transform.
248
+ * @returns {Function} Returns the new function.
249
+ */
250
+ function overArg(func, transform) {
251
+ return function(arg) {
252
+ return func(transform(arg));
253
+ };
254
+ }
255
+
256
+ /* Built-in method references for those with the same name as other `lodash` methods. */
257
+ var nativeKeys = overArg(Object.keys, Object);
258
+
259
+ /** Used for built-in method references. */
260
+ var objectProto$3 = Object.prototype;
261
+
262
+ /** Used to check objects for own properties. */
263
+ var hasOwnProperty$2 = objectProto$3.hasOwnProperty;
264
+
265
+ /**
266
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
267
+ *
268
+ * @private
269
+ * @param {Object} object The object to query.
270
+ * @returns {Array} Returns the array of property names.
271
+ */
272
+ function baseKeys(object) {
273
+ if (!isPrototype(object)) {
274
+ return nativeKeys(object);
275
+ }
276
+ var result = [];
277
+ for (var key in Object(object)) {
278
+ if (hasOwnProperty$2.call(object, key) && key != 'constructor') {
279
+ result.push(key);
280
+ }
281
+ }
282
+ return result;
283
+ }
284
+
285
+ /**
286
+ * Creates an array of the own enumerable property names of `object`.
287
+ *
288
+ * **Note:** Non-object values are coerced to objects. See the
289
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
290
+ * for more details.
291
+ *
292
+ * @static
293
+ * @since 0.1.0
294
+ * @memberOf _
295
+ * @category Object
296
+ * @param {Object} object The object to query.
297
+ * @returns {Array} Returns the array of property names.
298
+ * @example
299
+ *
300
+ * function Foo() {
301
+ * this.a = 1;
302
+ * this.b = 2;
303
+ * }
304
+ *
305
+ * Foo.prototype.c = 3;
306
+ *
307
+ * _.keys(new Foo);
308
+ * // => ['a', 'b'] (iteration order is not guaranteed)
309
+ *
310
+ * _.keys('hi');
311
+ * // => ['0', '1']
312
+ */
313
+ function keys(object) {
314
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
315
+ }
316
+
317
+ /**
318
+ * Removes all key-value entries from the stack.
319
+ *
320
+ * @private
321
+ * @name clear
322
+ * @memberOf Stack
323
+ */
324
+ function stackClear() {
325
+ this.__data__ = new ListCache;
326
+ this.size = 0;
327
+ }
328
+
329
+ /**
330
+ * Removes `key` and its value from the stack.
331
+ *
332
+ * @private
333
+ * @name delete
334
+ * @memberOf Stack
335
+ * @param {string} key The key of the value to remove.
336
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
337
+ */
338
+ function stackDelete(key) {
339
+ var data = this.__data__,
340
+ result = data['delete'](key);
341
+
342
+ this.size = data.size;
343
+ return result;
344
+ }
345
+
346
+ /**
347
+ * Gets the stack value for `key`.
348
+ *
349
+ * @private
350
+ * @name get
351
+ * @memberOf Stack
352
+ * @param {string} key The key of the value to get.
353
+ * @returns {*} Returns the entry value.
354
+ */
355
+ function stackGet(key) {
356
+ return this.__data__.get(key);
357
+ }
358
+
359
+ /**
360
+ * Checks if a stack value for `key` exists.
361
+ *
362
+ * @private
363
+ * @name has
364
+ * @memberOf Stack
365
+ * @param {string} key The key of the entry to check.
366
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
367
+ */
368
+ function stackHas(key) {
369
+ return this.__data__.has(key);
370
+ }
371
+
372
+ /** Used as the size to enable large array optimizations. */
373
+ var LARGE_ARRAY_SIZE = 200;
374
+
375
+ /**
376
+ * Sets the stack `key` to `value`.
377
+ *
378
+ * @private
379
+ * @name set
380
+ * @memberOf Stack
381
+ * @param {string} key The key of the value to set.
382
+ * @param {*} value The value to set.
383
+ * @returns {Object} Returns the stack cache instance.
384
+ */
385
+ function stackSet(key, value) {
386
+ var data = this.__data__;
387
+ if (data instanceof ListCache) {
388
+ var pairs = data.__data__;
389
+ if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
390
+ pairs.push([key, value]);
391
+ this.size = ++data.size;
392
+ return this;
393
+ }
394
+ data = this.__data__ = new MapCache(pairs);
395
+ }
396
+ data.set(key, value);
397
+ this.size = data.size;
398
+ return this;
399
+ }
400
+
401
+ /**
402
+ * Creates a stack cache object to store key-value pairs.
403
+ *
404
+ * @private
405
+ * @constructor
406
+ * @param {Array} [entries] The key-value pairs to cache.
407
+ */
408
+ function Stack(entries) {
409
+ var data = this.__data__ = new ListCache(entries);
410
+ this.size = data.size;
411
+ }
412
+
413
+ // Add methods to `Stack`.
414
+ Stack.prototype.clear = stackClear;
415
+ Stack.prototype['delete'] = stackDelete;
416
+ Stack.prototype.get = stackGet;
417
+ Stack.prototype.has = stackHas;
418
+ Stack.prototype.set = stackSet;
419
+
420
+ /**
421
+ * A specialized version of `_.filter` for arrays without support for
422
+ * iteratee shorthands.
423
+ *
424
+ * @private
425
+ * @param {Array} [array] The array to iterate over.
426
+ * @param {Function} predicate The function invoked per iteration.
427
+ * @returns {Array} Returns the new filtered array.
428
+ */
429
+ function arrayFilter(array, predicate) {
430
+ var index = -1,
431
+ length = array == null ? 0 : array.length,
432
+ resIndex = 0,
433
+ result = [];
434
+
435
+ while (++index < length) {
436
+ var value = array[index];
437
+ if (predicate(value, index, array)) {
438
+ result[resIndex++] = value;
439
+ }
440
+ }
441
+ return result;
442
+ }
443
+
444
+ /**
445
+ * This method returns a new empty array.
446
+ *
447
+ * @static
448
+ * @memberOf _
449
+ * @since 4.13.0
450
+ * @category Util
451
+ * @returns {Array} Returns the new empty array.
452
+ * @example
453
+ *
454
+ * var arrays = _.times(2, _.stubArray);
455
+ *
456
+ * console.log(arrays);
457
+ * // => [[], []]
458
+ *
459
+ * console.log(arrays[0] === arrays[1]);
460
+ * // => false
461
+ */
462
+ function stubArray() {
463
+ return [];
464
+ }
465
+
466
+ /** Used for built-in method references. */
467
+ var objectProto$2 = Object.prototype;
468
+
469
+ /** Built-in value references. */
470
+ var propertyIsEnumerable = objectProto$2.propertyIsEnumerable;
471
+
472
+ /* Built-in method references for those with the same name as other `lodash` methods. */
473
+ var nativeGetSymbols = Object.getOwnPropertySymbols;
474
+
475
+ /**
476
+ * Creates an array of the own enumerable symbols of `object`.
477
+ *
478
+ * @private
479
+ * @param {Object} object The object to query.
480
+ * @returns {Array} Returns the array of symbols.
481
+ */
482
+ var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
483
+ if (object == null) {
484
+ return [];
485
+ }
486
+ object = Object(object);
487
+ return arrayFilter(nativeGetSymbols(object), function(symbol) {
488
+ return propertyIsEnumerable.call(object, symbol);
489
+ });
490
+ };
491
+
492
+ /**
493
+ * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
494
+ * `keysFunc` and `symbolsFunc` to get the enumerable property names and
495
+ * symbols of `object`.
496
+ *
497
+ * @private
498
+ * @param {Object} object The object to query.
499
+ * @param {Function} keysFunc The function to get the keys of `object`.
500
+ * @param {Function} symbolsFunc The function to get the symbols of `object`.
501
+ * @returns {Array} Returns the array of property names and symbols.
502
+ */
503
+ function baseGetAllKeys(object, keysFunc, symbolsFunc) {
504
+ var result = keysFunc(object);
505
+ return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
506
+ }
507
+
508
+ /**
509
+ * Creates an array of own enumerable property names and symbols of `object`.
510
+ *
511
+ * @private
512
+ * @param {Object} object The object to query.
513
+ * @returns {Array} Returns the array of property names and symbols.
514
+ */
515
+ function getAllKeys(object) {
516
+ return baseGetAllKeys(object, keys, getSymbols);
517
+ }
518
+
519
+ /* Built-in method references that are verified to be native. */
520
+ var DataView = getNative(root, 'DataView');
521
+
522
+ /* Built-in method references that are verified to be native. */
523
+ var Promise$1 = getNative(root, 'Promise');
524
+
525
+ /* Built-in method references that are verified to be native. */
526
+ var Set = getNative(root, 'Set');
527
+
528
+ /** `Object#toString` result references. */
529
+ var mapTag$1 = '[object Map]',
530
+ objectTag$1 = '[object Object]',
531
+ promiseTag = '[object Promise]',
532
+ setTag$1 = '[object Set]',
533
+ weakMapTag = '[object WeakMap]';
534
+
535
+ var dataViewTag$1 = '[object DataView]';
536
+
537
+ /** Used to detect maps, sets, and weakmaps. */
538
+ var dataViewCtorString = toSource(DataView),
539
+ mapCtorString = toSource(Map),
540
+ promiseCtorString = toSource(Promise$1),
541
+ setCtorString = toSource(Set),
542
+ weakMapCtorString = toSource(WeakMap);
543
+
544
+ /**
545
+ * Gets the `toStringTag` of `value`.
546
+ *
547
+ * @private
548
+ * @param {*} value The value to query.
549
+ * @returns {string} Returns the `toStringTag`.
550
+ */
551
+ var getTag = baseGetTag;
552
+
553
+ // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
554
+ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag$1) ||
555
+ (Map && getTag(new Map) != mapTag$1) ||
556
+ (Promise$1 && getTag(Promise$1.resolve()) != promiseTag) ||
557
+ (Set && getTag(new Set) != setTag$1) ||
558
+ (WeakMap && getTag(new WeakMap) != weakMapTag)) {
559
+ getTag = function(value) {
560
+ var result = baseGetTag(value),
561
+ Ctor = result == objectTag$1 ? value.constructor : undefined,
562
+ ctorString = Ctor ? toSource(Ctor) : '';
563
+
564
+ if (ctorString) {
565
+ switch (ctorString) {
566
+ case dataViewCtorString: return dataViewTag$1;
567
+ case mapCtorString: return mapTag$1;
568
+ case promiseCtorString: return promiseTag;
569
+ case setCtorString: return setTag$1;
570
+ case weakMapCtorString: return weakMapTag;
571
+ }
572
+ }
573
+ return result;
574
+ };
575
+ }
576
+
577
+ /** Built-in value references. */
578
+ var Uint8Array = root.Uint8Array;
579
+
580
+ /** Used to stand-in for `undefined` hash values. */
581
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
582
+
583
+ /**
584
+ * Adds `value` to the array cache.
585
+ *
586
+ * @private
587
+ * @name add
588
+ * @memberOf SetCache
589
+ * @alias push
590
+ * @param {*} value The value to cache.
591
+ * @returns {Object} Returns the cache instance.
592
+ */
593
+ function setCacheAdd(value) {
594
+ this.__data__.set(value, HASH_UNDEFINED);
595
+ return this;
596
+ }
597
+
598
+ /**
599
+ * Checks if `value` is in the array cache.
600
+ *
601
+ * @private
602
+ * @name has
603
+ * @memberOf SetCache
604
+ * @param {*} value The value to search for.
605
+ * @returns {number} Returns `true` if `value` is found, else `false`.
606
+ */
607
+ function setCacheHas(value) {
608
+ return this.__data__.has(value);
609
+ }
610
+
611
+ /**
612
+ *
613
+ * Creates an array cache object to store unique values.
614
+ *
615
+ * @private
616
+ * @constructor
617
+ * @param {Array} [values] The values to cache.
618
+ */
619
+ function SetCache(values) {
620
+ var index = -1,
621
+ length = values == null ? 0 : values.length;
622
+
623
+ this.__data__ = new MapCache;
624
+ while (++index < length) {
625
+ this.add(values[index]);
626
+ }
627
+ }
628
+
629
+ // Add methods to `SetCache`.
630
+ SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
631
+ SetCache.prototype.has = setCacheHas;
632
+
633
+ /**
634
+ * A specialized version of `_.some` for arrays without support for iteratee
635
+ * shorthands.
636
+ *
637
+ * @private
638
+ * @param {Array} [array] The array to iterate over.
639
+ * @param {Function} predicate The function invoked per iteration.
640
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
641
+ * else `false`.
642
+ */
643
+ function arraySome(array, predicate) {
644
+ var index = -1,
645
+ length = array == null ? 0 : array.length;
646
+
647
+ while (++index < length) {
648
+ if (predicate(array[index], index, array)) {
649
+ return true;
650
+ }
651
+ }
652
+ return false;
653
+ }
654
+
655
+ /**
656
+ * Checks if a `cache` value for `key` exists.
657
+ *
658
+ * @private
659
+ * @param {Object} cache The cache to query.
660
+ * @param {string} key The key of the entry to check.
661
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
662
+ */
663
+ function cacheHas(cache, key) {
664
+ return cache.has(key);
665
+ }
666
+
667
+ /** Used to compose bitmasks for value comparisons. */
668
+ var COMPARE_PARTIAL_FLAG$3 = 1,
669
+ COMPARE_UNORDERED_FLAG$1 = 2;
670
+
671
+ /**
672
+ * A specialized version of `baseIsEqualDeep` for arrays with support for
673
+ * partial deep comparisons.
674
+ *
675
+ * @private
676
+ * @param {Array} array The array to compare.
677
+ * @param {Array} other The other array to compare.
678
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
679
+ * @param {Function} customizer The function to customize comparisons.
680
+ * @param {Function} equalFunc The function to determine equivalents of values.
681
+ * @param {Object} stack Tracks traversed `array` and `other` objects.
682
+ * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
683
+ */
684
+ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
685
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3,
686
+ arrLength = array.length,
687
+ othLength = other.length;
688
+
689
+ if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
690
+ return false;
691
+ }
692
+ // Check that cyclic values are equal.
693
+ var arrStacked = stack.get(array);
694
+ var othStacked = stack.get(other);
695
+ if (arrStacked && othStacked) {
696
+ return arrStacked == other && othStacked == array;
697
+ }
698
+ var index = -1,
699
+ result = true,
700
+ seen = (bitmask & COMPARE_UNORDERED_FLAG$1) ? new SetCache : undefined;
701
+
702
+ stack.set(array, other);
703
+ stack.set(other, array);
704
+
705
+ // Ignore non-index properties.
706
+ while (++index < arrLength) {
707
+ var arrValue = array[index],
708
+ othValue = other[index];
709
+
710
+ if (customizer) {
711
+ var compared = isPartial
712
+ ? customizer(othValue, arrValue, index, other, array, stack)
713
+ : customizer(arrValue, othValue, index, array, other, stack);
714
+ }
715
+ if (compared !== undefined) {
716
+ if (compared) {
717
+ continue;
718
+ }
719
+ result = false;
720
+ break;
721
+ }
722
+ // Recursively compare arrays (susceptible to call stack limits).
723
+ if (seen) {
724
+ if (!arraySome(other, function(othValue, othIndex) {
725
+ if (!cacheHas(seen, othIndex) &&
726
+ (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
727
+ return seen.push(othIndex);
728
+ }
729
+ })) {
730
+ result = false;
731
+ break;
732
+ }
733
+ } else if (!(
734
+ arrValue === othValue ||
735
+ equalFunc(arrValue, othValue, bitmask, customizer, stack)
736
+ )) {
737
+ result = false;
738
+ break;
739
+ }
740
+ }
741
+ stack['delete'](array);
742
+ stack['delete'](other);
743
+ return result;
744
+ }
745
+
746
+ /**
747
+ * Converts `map` to its key-value pairs.
748
+ *
749
+ * @private
750
+ * @param {Object} map The map to convert.
751
+ * @returns {Array} Returns the key-value pairs.
752
+ */
753
+ function mapToArray(map) {
754
+ var index = -1,
755
+ result = Array(map.size);
756
+
757
+ map.forEach(function(value, key) {
758
+ result[++index] = [key, value];
759
+ });
760
+ return result;
761
+ }
762
+
763
+ /**
764
+ * Converts `set` to an array of its values.
765
+ *
766
+ * @private
767
+ * @param {Object} set The set to convert.
768
+ * @returns {Array} Returns the values.
769
+ */
770
+ function setToArray(set) {
771
+ var index = -1,
772
+ result = Array(set.size);
773
+
774
+ set.forEach(function(value) {
775
+ result[++index] = value;
776
+ });
777
+ return result;
778
+ }
779
+
780
+ /** Used to compose bitmasks for value comparisons. */
781
+ var COMPARE_PARTIAL_FLAG$2 = 1,
782
+ COMPARE_UNORDERED_FLAG = 2;
783
+
784
+ /** `Object#toString` result references. */
785
+ var boolTag = '[object Boolean]',
786
+ dateTag = '[object Date]',
787
+ errorTag = '[object Error]',
788
+ mapTag = '[object Map]',
789
+ numberTag = '[object Number]',
790
+ regexpTag = '[object RegExp]',
791
+ setTag = '[object Set]',
792
+ stringTag = '[object String]',
793
+ symbolTag = '[object Symbol]';
794
+
795
+ var arrayBufferTag = '[object ArrayBuffer]',
796
+ dataViewTag = '[object DataView]';
797
+
798
+ /** Used to convert symbols to primitives and strings. */
799
+ var symbolProto = Symbol$1 ? Symbol$1.prototype : undefined,
800
+ symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
801
+
802
+ /**
803
+ * A specialized version of `baseIsEqualDeep` for comparing objects of
804
+ * the same `toStringTag`.
805
+ *
806
+ * **Note:** This function only supports comparing values with tags of
807
+ * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
808
+ *
809
+ * @private
810
+ * @param {Object} object The object to compare.
811
+ * @param {Object} other The other object to compare.
812
+ * @param {string} tag The `toStringTag` of the objects to compare.
813
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
814
+ * @param {Function} customizer The function to customize comparisons.
815
+ * @param {Function} equalFunc The function to determine equivalents of values.
816
+ * @param {Object} stack Tracks traversed `object` and `other` objects.
817
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
818
+ */
819
+ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
820
+ switch (tag) {
821
+ case dataViewTag:
822
+ if ((object.byteLength != other.byteLength) ||
823
+ (object.byteOffset != other.byteOffset)) {
824
+ return false;
825
+ }
826
+ object = object.buffer;
827
+ other = other.buffer;
828
+
829
+ case arrayBufferTag:
830
+ if ((object.byteLength != other.byteLength) ||
831
+ !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
832
+ return false;
833
+ }
834
+ return true;
835
+
836
+ case boolTag:
837
+ case dateTag:
838
+ case numberTag:
839
+ // Coerce booleans to `1` or `0` and dates to milliseconds.
840
+ // Invalid dates are coerced to `NaN`.
841
+ return eq(+object, +other);
842
+
843
+ case errorTag:
844
+ return object.name == other.name && object.message == other.message;
845
+
846
+ case regexpTag:
847
+ case stringTag:
848
+ // Coerce regexes to strings and treat strings, primitives and objects,
849
+ // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
850
+ // for more details.
851
+ return object == (other + '');
852
+
853
+ case mapTag:
854
+ var convert = mapToArray;
855
+
856
+ case setTag:
857
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2;
858
+ convert || (convert = setToArray);
859
+
860
+ if (object.size != other.size && !isPartial) {
861
+ return false;
862
+ }
863
+ // Assume cyclic values are equal.
864
+ var stacked = stack.get(object);
865
+ if (stacked) {
866
+ return stacked == other;
867
+ }
868
+ bitmask |= COMPARE_UNORDERED_FLAG;
869
+
870
+ // Recursively compare objects (susceptible to call stack limits).
871
+ stack.set(object, other);
872
+ var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
873
+ stack['delete'](object);
874
+ return result;
875
+
876
+ case symbolTag:
877
+ if (symbolValueOf) {
878
+ return symbolValueOf.call(object) == symbolValueOf.call(other);
879
+ }
880
+ }
881
+ return false;
882
+ }
883
+
884
+ /** Used to compose bitmasks for value comparisons. */
885
+ var COMPARE_PARTIAL_FLAG$1 = 1;
886
+
887
+ /** Used for built-in method references. */
888
+ var objectProto$1 = Object.prototype;
889
+
890
+ /** Used to check objects for own properties. */
891
+ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
892
+
893
+ /**
894
+ * A specialized version of `baseIsEqualDeep` for objects with support for
895
+ * partial deep comparisons.
896
+ *
897
+ * @private
898
+ * @param {Object} object The object to compare.
899
+ * @param {Object} other The other object to compare.
900
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
901
+ * @param {Function} customizer The function to customize comparisons.
902
+ * @param {Function} equalFunc The function to determine equivalents of values.
903
+ * @param {Object} stack Tracks traversed `object` and `other` objects.
904
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
905
+ */
906
+ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
907
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1,
908
+ objProps = getAllKeys(object),
909
+ objLength = objProps.length,
910
+ othProps = getAllKeys(other),
911
+ othLength = othProps.length;
912
+
913
+ if (objLength != othLength && !isPartial) {
914
+ return false;
915
+ }
916
+ var index = objLength;
917
+ while (index--) {
918
+ var key = objProps[index];
919
+ if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) {
920
+ return false;
921
+ }
922
+ }
923
+ // Check that cyclic values are equal.
924
+ var objStacked = stack.get(object);
925
+ var othStacked = stack.get(other);
926
+ if (objStacked && othStacked) {
927
+ return objStacked == other && othStacked == object;
928
+ }
929
+ var result = true;
930
+ stack.set(object, other);
931
+ stack.set(other, object);
932
+
933
+ var skipCtor = isPartial;
934
+ while (++index < objLength) {
935
+ key = objProps[index];
936
+ var objValue = object[key],
937
+ othValue = other[key];
938
+
939
+ if (customizer) {
940
+ var compared = isPartial
941
+ ? customizer(othValue, objValue, key, other, object, stack)
942
+ : customizer(objValue, othValue, key, object, other, stack);
943
+ }
944
+ // Recursively compare objects (susceptible to call stack limits).
945
+ if (!(compared === undefined
946
+ ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
947
+ : compared
948
+ )) {
949
+ result = false;
950
+ break;
951
+ }
952
+ skipCtor || (skipCtor = key == 'constructor');
953
+ }
954
+ if (result && !skipCtor) {
955
+ var objCtor = object.constructor,
956
+ othCtor = other.constructor;
957
+
958
+ // Non `Object` object instances with different constructors are not equal.
959
+ if (objCtor != othCtor &&
960
+ ('constructor' in object && 'constructor' in other) &&
961
+ !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
962
+ typeof othCtor == 'function' && othCtor instanceof othCtor)) {
963
+ result = false;
964
+ }
965
+ }
966
+ stack['delete'](object);
967
+ stack['delete'](other);
968
+ return result;
969
+ }
970
+
971
+ /** Used to compose bitmasks for value comparisons. */
972
+ var COMPARE_PARTIAL_FLAG = 1;
973
+
974
+ /** `Object#toString` result references. */
975
+ var argsTag = '[object Arguments]',
976
+ arrayTag = '[object Array]',
977
+ objectTag = '[object Object]';
978
+
979
+ /** Used for built-in method references. */
980
+ var objectProto = Object.prototype;
981
+
982
+ /** Used to check objects for own properties. */
983
+ var hasOwnProperty = objectProto.hasOwnProperty;
984
+
985
+ /**
986
+ * A specialized version of `baseIsEqual` for arrays and objects which performs
987
+ * deep comparisons and tracks traversed objects enabling objects with circular
988
+ * references to be compared.
989
+ *
990
+ * @private
991
+ * @param {Object} object The object to compare.
992
+ * @param {Object} other The other object to compare.
993
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
994
+ * @param {Function} customizer The function to customize comparisons.
995
+ * @param {Function} equalFunc The function to determine equivalents of values.
996
+ * @param {Object} [stack] Tracks traversed `object` and `other` objects.
997
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
998
+ */
999
+ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
1000
+ var objIsArr = isArray(object),
1001
+ othIsArr = isArray(other),
1002
+ objTag = objIsArr ? arrayTag : getTag(object),
1003
+ othTag = othIsArr ? arrayTag : getTag(other);
1004
+
1005
+ objTag = objTag == argsTag ? objectTag : objTag;
1006
+ othTag = othTag == argsTag ? objectTag : othTag;
1007
+
1008
+ var objIsObj = objTag == objectTag,
1009
+ othIsObj = othTag == objectTag,
1010
+ isSameTag = objTag == othTag;
1011
+
1012
+ if (isSameTag && isBuffer(object)) {
1013
+ if (!isBuffer(other)) {
1014
+ return false;
1015
+ }
1016
+ objIsArr = true;
1017
+ objIsObj = false;
1018
+ }
1019
+ if (isSameTag && !objIsObj) {
1020
+ stack || (stack = new Stack);
1021
+ return (objIsArr || isTypedArray(object))
1022
+ ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
1023
+ : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
1024
+ }
1025
+ if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
1026
+ var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
1027
+ othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
1028
+
1029
+ if (objIsWrapped || othIsWrapped) {
1030
+ var objUnwrapped = objIsWrapped ? object.value() : object,
1031
+ othUnwrapped = othIsWrapped ? other.value() : other;
1032
+
1033
+ stack || (stack = new Stack);
1034
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
1035
+ }
1036
+ }
1037
+ if (!isSameTag) {
1038
+ return false;
1039
+ }
1040
+ stack || (stack = new Stack);
1041
+ return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
1042
+ }
1043
+
1044
+ /**
1045
+ * The base implementation of `_.isEqual` which supports partial comparisons
1046
+ * and tracks traversed objects.
1047
+ *
1048
+ * @private
1049
+ * @param {*} value The value to compare.
1050
+ * @param {*} other The other value to compare.
1051
+ * @param {boolean} bitmask The bitmask flags.
1052
+ * 1 - Unordered comparison
1053
+ * 2 - Partial comparison
1054
+ * @param {Function} [customizer] The function to customize comparisons.
1055
+ * @param {Object} [stack] Tracks traversed `value` and `other` objects.
1056
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
1057
+ */
1058
+ function baseIsEqual(value, other, bitmask, customizer, stack) {
1059
+ if (value === other) {
1060
+ return true;
1061
+ }
1062
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
1063
+ return value !== value && other !== other;
1064
+ }
1065
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
1066
+ }
1067
+
1068
+ /**
1069
+ * Performs a deep comparison between two values to determine if they are
1070
+ * equivalent.
1071
+ *
1072
+ * **Note:** This method supports comparing arrays, array buffers, booleans,
1073
+ * date objects, error objects, maps, numbers, `Object` objects, regexes,
1074
+ * sets, strings, symbols, and typed arrays. `Object` objects are compared
1075
+ * by their own, not inherited, enumerable properties. Functions and DOM
1076
+ * nodes are compared by strict equality, i.e. `===`.
1077
+ *
1078
+ * @static
1079
+ * @memberOf _
1080
+ * @since 0.1.0
1081
+ * @category Lang
1082
+ * @param {*} value The value to compare.
1083
+ * @param {*} other The other value to compare.
1084
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
1085
+ * @example
1086
+ *
1087
+ * var object = { 'a': 1 };
1088
+ * var other = { 'a': 1 };
1089
+ *
1090
+ * _.isEqual(object, other);
1091
+ * // => true
1092
+ *
1093
+ * object === other;
1094
+ * // => false
1095
+ */
1096
+ function isEqual(value, other) {
1097
+ return baseIsEqual(value, other);
1098
+ }
1099
+
1100
+ export { Stack as S, Uint8Array as U, isArrayLike as a, baseIsEqual as b, isPrototype as c, arrayLikeKeys as d, baseGetAllKeys as e, getTag as f, getSymbols as g, isBuffer as h, isEqual as i, getAllKeys as j, keys as k, overArg as o, stubArray as s };