@imtf/icons 0.0.1

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 (281) hide show
  1. package/README.md +75 -0
  2. package/lib/icons/AdminIcon.d.ts +3 -0
  3. package/lib/icons/AdminIcon.js +29 -0
  4. package/lib/icons/AlertCircleIcon.d.ts +3 -0
  5. package/lib/icons/AlertCircleIcon.js +29 -0
  6. package/lib/icons/AlertCircleOutlinedIcon.d.ts +3 -0
  7. package/lib/icons/AlertCircleOutlinedIcon.js +29 -0
  8. package/lib/icons/AlertIcon.d.ts +3 -0
  9. package/lib/icons/AlertIcon.js +31 -0
  10. package/lib/icons/AlertLightIcon.d.ts +3 -0
  11. package/lib/icons/AlertLightIcon.js +31 -0
  12. package/lib/icons/AnnotationsIcon.d.ts +3 -0
  13. package/lib/icons/AnnotationsIcon.js +30 -0
  14. package/lib/icons/AppIcon.d.ts +3 -0
  15. package/lib/icons/AppIcon.js +30 -0
  16. package/lib/icons/ArrowDropDownIcon.d.ts +3 -0
  17. package/lib/icons/ArrowDropDownIcon.js +29 -0
  18. package/lib/icons/BackIcon.d.ts +3 -0
  19. package/lib/icons/BackIcon.js +29 -0
  20. package/lib/icons/BaseDefaultIcon.d.ts +3 -0
  21. package/lib/icons/BaseDefaultIcon.js +27 -0
  22. package/lib/icons/BindersIcon.d.ts +3 -0
  23. package/lib/icons/BindersIcon.js +29 -0
  24. package/lib/icons/BinocularsIcon.d.ts +3 -0
  25. package/lib/icons/BinocularsIcon.js +29 -0
  26. package/lib/icons/BookmarksIcon.d.ts +3 -0
  27. package/lib/icons/BookmarksIcon.js +29 -0
  28. package/lib/icons/BusinessIcon.d.ts +3 -0
  29. package/lib/icons/BusinessIcon.js +29 -0
  30. package/lib/icons/CalendarIcon.d.ts +3 -0
  31. package/lib/icons/CalendarIcon.js +29 -0
  32. package/lib/icons/CancelIcon.d.ts +3 -0
  33. package/lib/icons/CancelIcon.js +29 -0
  34. package/lib/icons/CaseManagerIcon.d.ts +3 -0
  35. package/lib/icons/CaseManagerIcon.js +29 -0
  36. package/lib/icons/CheckIcon.d.ts +3 -0
  37. package/lib/icons/CheckIcon.js +29 -0
  38. package/lib/icons/ChevronDownIcon.d.ts +3 -0
  39. package/lib/icons/ChevronDownIcon.js +29 -0
  40. package/lib/icons/ChevronLeftIcon.d.ts +3 -0
  41. package/lib/icons/ChevronLeftIcon.js +32 -0
  42. package/lib/icons/ChevronRightIcon.d.ts +3 -0
  43. package/lib/icons/ChevronRightIcon.js +29 -0
  44. package/lib/icons/ChevronUpIcon.d.ts +3 -0
  45. package/lib/icons/ChevronUpIcon.js +29 -0
  46. package/lib/icons/CircleIcon.d.ts +3 -0
  47. package/lib/icons/CircleIcon.js +29 -0
  48. package/lib/icons/CollapseAllIcon.d.ts +3 -0
  49. package/lib/icons/CollapseAllIcon.js +29 -0
  50. package/lib/icons/CommentIcon.d.ts +3 -0
  51. package/lib/icons/CommentIcon.js +31 -0
  52. package/lib/icons/CommentResolvedIcon.d.ts +3 -0
  53. package/lib/icons/CommentResolvedIcon.js +38 -0
  54. package/lib/icons/CommentUnresolvedIcon.d.ts +3 -0
  55. package/lib/icons/CommentUnresolvedIcon.js +38 -0
  56. package/lib/icons/CompareIcon.d.ts +3 -0
  57. package/lib/icons/CompareIcon.js +30 -0
  58. package/lib/icons/ComposeFilled1Icon.d.ts +3 -0
  59. package/lib/icons/ComposeFilled1Icon.js +29 -0
  60. package/lib/icons/ComposeFilled2Icon.d.ts +3 -0
  61. package/lib/icons/ComposeFilled2Icon.js +29 -0
  62. package/lib/icons/ComposeIcon.d.ts +3 -0
  63. package/lib/icons/ComposeIcon.js +29 -0
  64. package/lib/icons/ConfigurationIcon.d.ts +3 -0
  65. package/lib/icons/ConfigurationIcon.js +29 -0
  66. package/lib/icons/CustomerIcon.d.ts +3 -0
  67. package/lib/icons/CustomerIcon.js +29 -0
  68. package/lib/icons/DashboardIcon.d.ts +3 -0
  69. package/lib/icons/DashboardIcon.js +29 -0
  70. package/lib/icons/DefaultIcon.d.ts +3 -0
  71. package/lib/icons/DefaultIcon.js +27 -0
  72. package/lib/icons/DeleteIcon.d.ts +3 -0
  73. package/lib/icons/DeleteIcon.js +29 -0
  74. package/lib/icons/DetailsIcon.d.ts +3 -0
  75. package/lib/icons/DetailsIcon.js +29 -0
  76. package/lib/icons/DocIcon.d.ts +3 -0
  77. package/lib/icons/DocIcon.js +29 -0
  78. package/lib/icons/DocLinkIcon.d.ts +3 -0
  79. package/lib/icons/DocLinkIcon.js +29 -0
  80. package/lib/icons/DocumentIcon.d.ts +3 -0
  81. package/lib/icons/DocumentIcon.js +29 -0
  82. package/lib/icons/DossierIcon.d.ts +3 -0
  83. package/lib/icons/DossierIcon.js +29 -0
  84. package/lib/icons/DownloadIcon.d.ts +3 -0
  85. package/lib/icons/DownloadIcon.js +29 -0
  86. package/lib/icons/DragHandleIcon.d.ts +3 -0
  87. package/lib/icons/DragHandleIcon.js +29 -0
  88. package/lib/icons/DragIcon.d.ts +3 -0
  89. package/lib/icons/DragIcon.js +30 -0
  90. package/lib/icons/DropZoneIcon.d.ts +3 -0
  91. package/lib/icons/DropZoneIcon.js +29 -0
  92. package/lib/icons/DuplicateIcon.d.ts +3 -0
  93. package/lib/icons/DuplicateIcon.js +29 -0
  94. package/lib/icons/EditIcon.d.ts +3 -0
  95. package/lib/icons/EditIcon.js +29 -0
  96. package/lib/icons/EditedIcon.d.ts +3 -0
  97. package/lib/icons/EditedIcon.js +29 -0
  98. package/lib/icons/EmptyNotificationIcon.d.ts +3 -0
  99. package/lib/icons/EmptyNotificationIcon.js +29 -0
  100. package/lib/icons/EntityIcon.d.ts +3 -0
  101. package/lib/icons/EntityIcon.js +29 -0
  102. package/lib/icons/EraseIcon.d.ts +3 -0
  103. package/lib/icons/EraseIcon.js +29 -0
  104. package/lib/icons/ExpandContentIcon.d.ts +3 -0
  105. package/lib/icons/ExpandContentIcon.js +33 -0
  106. package/lib/icons/ExternalLinkIcon.d.ts +3 -0
  107. package/lib/icons/ExternalLinkIcon.js +32 -0
  108. package/lib/icons/EyeIcon.d.ts +3 -0
  109. package/lib/icons/EyeIcon.js +29 -0
  110. package/lib/icons/FileArchiveIcon.d.ts +3 -0
  111. package/lib/icons/FileArchiveIcon.js +29 -0
  112. package/lib/icons/FileIcon.d.ts +3 -0
  113. package/lib/icons/FileIcon.js +29 -0
  114. package/lib/icons/FileImageIcon.d.ts +3 -0
  115. package/lib/icons/FileImageIcon.js +29 -0
  116. package/lib/icons/FileImageLinkIcon.d.ts +3 -0
  117. package/lib/icons/FileImageLinkIcon.js +29 -0
  118. package/lib/icons/FileLinkIcon.d.ts +3 -0
  119. package/lib/icons/FileLinkIcon.js +29 -0
  120. package/lib/icons/FilePdfIcon.d.ts +3 -0
  121. package/lib/icons/FilePdfIcon.js +29 -0
  122. package/lib/icons/FilePdfLinkIcon.d.ts +3 -0
  123. package/lib/icons/FilePdfLinkIcon.js +29 -0
  124. package/lib/icons/FileStackIcon.d.ts +3 -0
  125. package/lib/icons/FileStackIcon.js +29 -0
  126. package/lib/icons/FlagIcon.d.ts +3 -0
  127. package/lib/icons/FlagIcon.js +29 -0
  128. package/lib/icons/FloppyFilledIcon.d.ts +3 -0
  129. package/lib/icons/FloppyFilledIcon.js +29 -0
  130. package/lib/icons/FloppyIcon.d.ts +3 -0
  131. package/lib/icons/FloppyIcon.js +29 -0
  132. package/lib/icons/FolderAddIcon.d.ts +3 -0
  133. package/lib/icons/FolderAddIcon.js +29 -0
  134. package/lib/icons/FolderIcon.d.ts +3 -0
  135. package/lib/icons/FolderIcon.js +29 -0
  136. package/lib/icons/FolderOpenIcon.d.ts +3 -0
  137. package/lib/icons/FolderOpenIcon.js +29 -0
  138. package/lib/icons/FolderTemplateIcon.d.ts +3 -0
  139. package/lib/icons/FolderTemplateIcon.js +29 -0
  140. package/lib/icons/FormIcon.d.ts +3 -0
  141. package/lib/icons/FormIcon.js +29 -0
  142. package/lib/icons/FullscreenIcon.d.ts +3 -0
  143. package/lib/icons/FullscreenIcon.js +29 -0
  144. package/lib/icons/GaugeIcon.d.ts +3 -0
  145. package/lib/icons/GaugeIcon.js +33 -0
  146. package/lib/icons/GaugeLightIcon.d.ts +3 -0
  147. package/lib/icons/GaugeLightIcon.js +33 -0
  148. package/lib/icons/GenerateFileIcon.d.ts +3 -0
  149. package/lib/icons/GenerateFileIcon.js +29 -0
  150. package/lib/icons/GraphIcon.d.ts +3 -0
  151. package/lib/icons/GraphIcon.js +29 -0
  152. package/lib/icons/GroupIcon.d.ts +3 -0
  153. package/lib/icons/GroupIcon.js +29 -0
  154. package/lib/icons/HistoryIcon.d.ts +3 -0
  155. package/lib/icons/HistoryIcon.js +29 -0
  156. package/lib/icons/HomeIcon.d.ts +3 -0
  157. package/lib/icons/HomeIcon.js +29 -0
  158. package/lib/icons/HorseIcon.d.ts +3 -0
  159. package/lib/icons/HorseIcon.js +33 -0
  160. package/lib/icons/InboxIcon.d.ts +3 -0
  161. package/lib/icons/InboxIcon.js +29 -0
  162. package/lib/icons/InfoIcon.d.ts +3 -0
  163. package/lib/icons/InfoIcon.js +29 -0
  164. package/lib/icons/InheritableIcon.d.ts +3 -0
  165. package/lib/icons/InheritableIcon.js +29 -0
  166. package/lib/icons/InkIcon.d.ts +3 -0
  167. package/lib/icons/InkIcon.js +29 -0
  168. package/lib/icons/LinkIcon.d.ts +3 -0
  169. package/lib/icons/LinkIcon.js +29 -0
  170. package/lib/icons/LockIcon.d.ts +3 -0
  171. package/lib/icons/LockIcon.js +29 -0
  172. package/lib/icons/LogoIcon.d.ts +3 -0
  173. package/lib/icons/LogoIcon.js +32 -0
  174. package/lib/icons/LogoutIcon.d.ts +3 -0
  175. package/lib/icons/LogoutIcon.js +29 -0
  176. package/lib/icons/MarkerIcon.d.ts +3 -0
  177. package/lib/icons/MarkerIcon.js +29 -0
  178. package/lib/icons/MenuIcon.d.ts +3 -0
  179. package/lib/icons/MenuIcon.js +29 -0
  180. package/lib/icons/MinusIcon.d.ts +3 -0
  181. package/lib/icons/MinusIcon.js +29 -0
  182. package/lib/icons/MoreIcon.d.ts +3 -0
  183. package/lib/icons/MoreIcon.js +29 -0
  184. package/lib/icons/NewIcon.d.ts +3 -0
  185. package/lib/icons/NewIcon.js +29 -0
  186. package/lib/icons/NotFoundIcon.d.ts +3 -0
  187. package/lib/icons/NotFoundIcon.js +42 -0
  188. package/lib/icons/NotificationsOutlineIcon.d.ts +3 -0
  189. package/lib/icons/NotificationsOutlineIcon.js +29 -0
  190. package/lib/icons/OpenIcon.d.ts +3 -0
  191. package/lib/icons/OpenIcon.js +29 -0
  192. package/lib/icons/PermissionsIcon.d.ts +3 -0
  193. package/lib/icons/PermissionsIcon.js +29 -0
  194. package/lib/icons/PersonIcon.d.ts +3 -0
  195. package/lib/icons/PersonIcon.js +29 -0
  196. package/lib/icons/PinFilledIcon.d.ts +3 -0
  197. package/lib/icons/PinFilledIcon.js +29 -0
  198. package/lib/icons/PinOutlinedIcon.d.ts +3 -0
  199. package/lib/icons/PinOutlinedIcon.js +29 -0
  200. package/lib/icons/PlayIcon.d.ts +3 -0
  201. package/lib/icons/PlayIcon.js +29 -0
  202. package/lib/icons/PptIcon.d.ts +3 -0
  203. package/lib/icons/PptIcon.js +29 -0
  204. package/lib/icons/PptLinkIcon.d.ts +3 -0
  205. package/lib/icons/PptLinkIcon.js +29 -0
  206. package/lib/icons/PreviewIcon.d.ts +3 -0
  207. package/lib/icons/PreviewIcon.js +29 -0
  208. package/lib/icons/PrintIcon.d.ts +3 -0
  209. package/lib/icons/PrintIcon.js +29 -0
  210. package/lib/icons/QuestionnaireErrorIcon.d.ts +3 -0
  211. package/lib/icons/QuestionnaireErrorIcon.js +29 -0
  212. package/lib/icons/QuestionnaireIcon.d.ts +3 -0
  213. package/lib/icons/QuestionnaireIcon.js +29 -0
  214. package/lib/icons/RemoveIcon.d.ts +3 -0
  215. package/lib/icons/RemoveIcon.js +29 -0
  216. package/lib/icons/RotateRightIcon.d.ts +3 -0
  217. package/lib/icons/RotateRightIcon.js +29 -0
  218. package/lib/icons/SafeOkIcon.d.ts +3 -0
  219. package/lib/icons/SafeOkIcon.js +29 -0
  220. package/lib/icons/SafePassiveIcon.d.ts +3 -0
  221. package/lib/icons/SafePassiveIcon.js +30 -0
  222. package/lib/icons/SafeProgressIcon.d.ts +3 -0
  223. package/lib/icons/SafeProgressIcon.js +31 -0
  224. package/lib/icons/ScissorsIcon.d.ts +3 -0
  225. package/lib/icons/ScissorsIcon.js +29 -0
  226. package/lib/icons/SearchIcon.d.ts +3 -0
  227. package/lib/icons/SearchIcon.js +29 -0
  228. package/lib/icons/SendIcon.d.ts +3 -0
  229. package/lib/icons/SendIcon.js +29 -0
  230. package/lib/icons/ShieldWarningIcon.d.ts +3 -0
  231. package/lib/icons/ShieldWarningIcon.js +36 -0
  232. package/lib/icons/SidebarCollapsedIcon.d.ts +3 -0
  233. package/lib/icons/SidebarCollapsedIcon.js +30 -0
  234. package/lib/icons/SidebarExpandedIcon.d.ts +3 -0
  235. package/lib/icons/SidebarExpandedIcon.js +30 -0
  236. package/lib/icons/SidebarIcon.d.ts +3 -0
  237. package/lib/icons/SidebarIcon.js +29 -0
  238. package/lib/icons/SquareIcon.d.ts +3 -0
  239. package/lib/icons/SquareIcon.js +29 -0
  240. package/lib/icons/StarBorderIcon.d.ts +3 -0
  241. package/lib/icons/StarBorderIcon.js +29 -0
  242. package/lib/icons/StarIcon.d.ts +3 -0
  243. package/lib/icons/StarIcon.js +29 -0
  244. package/lib/icons/SystemBotIcon.d.ts +3 -0
  245. package/lib/icons/SystemBotIcon.js +29 -0
  246. package/lib/icons/TableIcon.d.ts +3 -0
  247. package/lib/icons/TableIcon.js +29 -0
  248. package/lib/icons/TaskIcon.d.ts +3 -0
  249. package/lib/icons/TaskIcon.js +29 -0
  250. package/lib/icons/ThumbnailsIcon.d.ts +3 -0
  251. package/lib/icons/ThumbnailsIcon.js +29 -0
  252. package/lib/icons/TimelapsIcon.d.ts +3 -0
  253. package/lib/icons/TimelapsIcon.js +29 -0
  254. package/lib/icons/TimelineIcon.d.ts +3 -0
  255. package/lib/icons/TimelineIcon.js +29 -0
  256. package/lib/icons/ToolsIcon.d.ts +3 -0
  257. package/lib/icons/ToolsIcon.js +29 -0
  258. package/lib/icons/TypesIcon.d.ts +3 -0
  259. package/lib/icons/TypesIcon.js +29 -0
  260. package/lib/icons/UploadIcon.d.ts +3 -0
  261. package/lib/icons/UploadIcon.js +29 -0
  262. package/lib/icons/ViewTreeIcon.d.ts +3 -0
  263. package/lib/icons/ViewTreeIcon.js +29 -0
  264. package/lib/icons/WarningIcon.d.ts +3 -0
  265. package/lib/icons/WarningIcon.js +30 -0
  266. package/lib/icons/WatermarkIcon.d.ts +3 -0
  267. package/lib/icons/WatermarkIcon.js +29 -0
  268. package/lib/icons/XlsIcon.d.ts +3 -0
  269. package/lib/icons/XlsIcon.js +29 -0
  270. package/lib/icons/XlsLinkIcon.d.ts +3 -0
  271. package/lib/icons/XlsLinkIcon.js +29 -0
  272. package/lib/icons/index.d.ts +135 -0
  273. package/lib/icons/index.js +135 -0
  274. package/lib/index.d.ts +2 -0
  275. package/lib/index.js +2 -0
  276. package/lib/src/index.d.ts +1 -0
  277. package/lib/src/index.js +1004 -0
  278. package/lib/src/providers/IconProvider/Context.d.ts +13 -0
  279. package/lib/src/providers/IconProvider/IconProvider.d.ts +9 -0
  280. package/lib/src/providers/index.d.ts +4 -0
  281. package/package.json +46 -0
@@ -0,0 +1,1004 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, useMemo } from 'react';
3
+
4
+ /*! *****************************************************************************
5
+ Copyright (c) Microsoft Corporation.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted.
9
+
10
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
11
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
13
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
15
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16
+ PERFORMANCE OF THIS SOFTWARE.
17
+ ***************************************************************************** */
18
+
19
+ var __assign = function() {
20
+ __assign = Object.assign || function __assign(t) {
21
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
22
+ s = arguments[i];
23
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
24
+ }
25
+ return t;
26
+ };
27
+ return __assign.apply(this, arguments);
28
+ };
29
+
30
+ function __rest(s, e) {
31
+ var t = {};
32
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
33
+ t[p] = s[p];
34
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
35
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
36
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
37
+ t[p[i]] = s[p[i]];
38
+ }
39
+ return t;
40
+ }
41
+
42
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
43
+
44
+ /**
45
+ * lodash (Custom Build) <https://lodash.com/>
46
+ * Build: `lodash modularize exports="npm" -o ./`
47
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
48
+ * Released under MIT license <https://lodash.com/license>
49
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
50
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
51
+ */
52
+
53
+ /** Used as the `TypeError` message for "Functions" methods. */
54
+ var FUNC_ERROR_TEXT = 'Expected a function';
55
+
56
+ /** Used to stand-in for `undefined` hash values. */
57
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
58
+
59
+ /** Used as references for various `Number` constants. */
60
+ var INFINITY = 1 / 0;
61
+
62
+ /** `Object#toString` result references. */
63
+ var funcTag = '[object Function]',
64
+ genTag = '[object GeneratorFunction]',
65
+ symbolTag = '[object Symbol]';
66
+
67
+ /** Used to match property names within property paths. */
68
+ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
69
+ reIsPlainProp = /^\w*$/,
70
+ reLeadingDot = /^\./,
71
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
72
+
73
+ /**
74
+ * Used to match `RegExp`
75
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
76
+ */
77
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
78
+
79
+ /** Used to match backslashes in property paths. */
80
+ var reEscapeChar = /\\(\\)?/g;
81
+
82
+ /** Used to detect host constructors (Safari). */
83
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
84
+
85
+ /** Detect free variable `global` from Node.js. */
86
+ var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
87
+
88
+ /** Detect free variable `self`. */
89
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
90
+
91
+ /** Used as a reference to the global object. */
92
+ var root = freeGlobal || freeSelf || Function('return this')();
93
+
94
+ /**
95
+ * Gets the value at `key` of `object`.
96
+ *
97
+ * @private
98
+ * @param {Object} [object] The object to query.
99
+ * @param {string} key The key of the property to get.
100
+ * @returns {*} Returns the property value.
101
+ */
102
+ function getValue(object, key) {
103
+ return object == null ? undefined : object[key];
104
+ }
105
+
106
+ /**
107
+ * Checks if `value` is a host object in IE < 9.
108
+ *
109
+ * @private
110
+ * @param {*} value The value to check.
111
+ * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
112
+ */
113
+ function isHostObject(value) {
114
+ // Many host objects are `Object` objects that can coerce to strings
115
+ // despite having improperly defined `toString` methods.
116
+ var result = false;
117
+ if (value != null && typeof value.toString != 'function') {
118
+ try {
119
+ result = !!(value + '');
120
+ } catch (e) {}
121
+ }
122
+ return result;
123
+ }
124
+
125
+ /** Used for built-in method references. */
126
+ var arrayProto = Array.prototype,
127
+ funcProto = Function.prototype,
128
+ objectProto = Object.prototype;
129
+
130
+ /** Used to detect overreaching core-js shims. */
131
+ var coreJsData = root['__core-js_shared__'];
132
+
133
+ /** Used to detect methods masquerading as native. */
134
+ var maskSrcKey = (function() {
135
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
136
+ return uid ? ('Symbol(src)_1.' + uid) : '';
137
+ }());
138
+
139
+ /** Used to resolve the decompiled source of functions. */
140
+ var funcToString = funcProto.toString;
141
+
142
+ /** Used to check objects for own properties. */
143
+ var hasOwnProperty = objectProto.hasOwnProperty;
144
+
145
+ /**
146
+ * Used to resolve the
147
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
148
+ * of values.
149
+ */
150
+ var objectToString = objectProto.toString;
151
+
152
+ /** Used to detect if a method is native. */
153
+ var reIsNative = RegExp('^' +
154
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
155
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
156
+ );
157
+
158
+ /** Built-in value references. */
159
+ var Symbol = root.Symbol,
160
+ splice = arrayProto.splice;
161
+
162
+ /* Built-in method references that are verified to be native. */
163
+ var Map = getNative(root, 'Map'),
164
+ nativeCreate = getNative(Object, 'create');
165
+
166
+ /** Used to convert symbols to primitives and strings. */
167
+ var symbolProto = Symbol ? Symbol.prototype : undefined,
168
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
169
+
170
+ /**
171
+ * Creates a hash object.
172
+ *
173
+ * @private
174
+ * @constructor
175
+ * @param {Array} [entries] The key-value pairs to cache.
176
+ */
177
+ function Hash(entries) {
178
+ var index = -1,
179
+ length = entries ? entries.length : 0;
180
+
181
+ this.clear();
182
+ while (++index < length) {
183
+ var entry = entries[index];
184
+ this.set(entry[0], entry[1]);
185
+ }
186
+ }
187
+
188
+ /**
189
+ * Removes all key-value entries from the hash.
190
+ *
191
+ * @private
192
+ * @name clear
193
+ * @memberOf Hash
194
+ */
195
+ function hashClear() {
196
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
197
+ }
198
+
199
+ /**
200
+ * Removes `key` and its value from the hash.
201
+ *
202
+ * @private
203
+ * @name delete
204
+ * @memberOf Hash
205
+ * @param {Object} hash The hash to modify.
206
+ * @param {string} key The key of the value to remove.
207
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
208
+ */
209
+ function hashDelete(key) {
210
+ return this.has(key) && delete this.__data__[key];
211
+ }
212
+
213
+ /**
214
+ * Gets the hash value for `key`.
215
+ *
216
+ * @private
217
+ * @name get
218
+ * @memberOf Hash
219
+ * @param {string} key The key of the value to get.
220
+ * @returns {*} Returns the entry value.
221
+ */
222
+ function hashGet(key) {
223
+ var data = this.__data__;
224
+ if (nativeCreate) {
225
+ var result = data[key];
226
+ return result === HASH_UNDEFINED ? undefined : result;
227
+ }
228
+ return hasOwnProperty.call(data, key) ? data[key] : undefined;
229
+ }
230
+
231
+ /**
232
+ * Checks if a hash value for `key` exists.
233
+ *
234
+ * @private
235
+ * @name has
236
+ * @memberOf Hash
237
+ * @param {string} key The key of the entry to check.
238
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
239
+ */
240
+ function hashHas(key) {
241
+ var data = this.__data__;
242
+ return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
243
+ }
244
+
245
+ /**
246
+ * Sets the hash `key` to `value`.
247
+ *
248
+ * @private
249
+ * @name set
250
+ * @memberOf Hash
251
+ * @param {string} key The key of the value to set.
252
+ * @param {*} value The value to set.
253
+ * @returns {Object} Returns the hash instance.
254
+ */
255
+ function hashSet(key, value) {
256
+ var data = this.__data__;
257
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
258
+ return this;
259
+ }
260
+
261
+ // Add methods to `Hash`.
262
+ Hash.prototype.clear = hashClear;
263
+ Hash.prototype['delete'] = hashDelete;
264
+ Hash.prototype.get = hashGet;
265
+ Hash.prototype.has = hashHas;
266
+ Hash.prototype.set = hashSet;
267
+
268
+ /**
269
+ * Creates an list cache object.
270
+ *
271
+ * @private
272
+ * @constructor
273
+ * @param {Array} [entries] The key-value pairs to cache.
274
+ */
275
+ function ListCache(entries) {
276
+ var index = -1,
277
+ length = entries ? entries.length : 0;
278
+
279
+ this.clear();
280
+ while (++index < length) {
281
+ var entry = entries[index];
282
+ this.set(entry[0], entry[1]);
283
+ }
284
+ }
285
+
286
+ /**
287
+ * Removes all key-value entries from the list cache.
288
+ *
289
+ * @private
290
+ * @name clear
291
+ * @memberOf ListCache
292
+ */
293
+ function listCacheClear() {
294
+ this.__data__ = [];
295
+ }
296
+
297
+ /**
298
+ * Removes `key` and its value from the list cache.
299
+ *
300
+ * @private
301
+ * @name delete
302
+ * @memberOf ListCache
303
+ * @param {string} key The key of the value to remove.
304
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
305
+ */
306
+ function listCacheDelete(key) {
307
+ var data = this.__data__,
308
+ index = assocIndexOf(data, key);
309
+
310
+ if (index < 0) {
311
+ return false;
312
+ }
313
+ var lastIndex = data.length - 1;
314
+ if (index == lastIndex) {
315
+ data.pop();
316
+ } else {
317
+ splice.call(data, index, 1);
318
+ }
319
+ return true;
320
+ }
321
+
322
+ /**
323
+ * Gets the list cache value for `key`.
324
+ *
325
+ * @private
326
+ * @name get
327
+ * @memberOf ListCache
328
+ * @param {string} key The key of the value to get.
329
+ * @returns {*} Returns the entry value.
330
+ */
331
+ function listCacheGet(key) {
332
+ var data = this.__data__,
333
+ index = assocIndexOf(data, key);
334
+
335
+ return index < 0 ? undefined : data[index][1];
336
+ }
337
+
338
+ /**
339
+ * Checks if a list cache value for `key` exists.
340
+ *
341
+ * @private
342
+ * @name has
343
+ * @memberOf ListCache
344
+ * @param {string} key The key of the entry to check.
345
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
346
+ */
347
+ function listCacheHas(key) {
348
+ return assocIndexOf(this.__data__, key) > -1;
349
+ }
350
+
351
+ /**
352
+ * Sets the list cache `key` to `value`.
353
+ *
354
+ * @private
355
+ * @name set
356
+ * @memberOf ListCache
357
+ * @param {string} key The key of the value to set.
358
+ * @param {*} value The value to set.
359
+ * @returns {Object} Returns the list cache instance.
360
+ */
361
+ function listCacheSet(key, value) {
362
+ var data = this.__data__,
363
+ index = assocIndexOf(data, key);
364
+
365
+ if (index < 0) {
366
+ data.push([key, value]);
367
+ } else {
368
+ data[index][1] = value;
369
+ }
370
+ return this;
371
+ }
372
+
373
+ // Add methods to `ListCache`.
374
+ ListCache.prototype.clear = listCacheClear;
375
+ ListCache.prototype['delete'] = listCacheDelete;
376
+ ListCache.prototype.get = listCacheGet;
377
+ ListCache.prototype.has = listCacheHas;
378
+ ListCache.prototype.set = listCacheSet;
379
+
380
+ /**
381
+ * Creates a map cache object to store key-value pairs.
382
+ *
383
+ * @private
384
+ * @constructor
385
+ * @param {Array} [entries] The key-value pairs to cache.
386
+ */
387
+ function MapCache(entries) {
388
+ var index = -1,
389
+ length = entries ? entries.length : 0;
390
+
391
+ this.clear();
392
+ while (++index < length) {
393
+ var entry = entries[index];
394
+ this.set(entry[0], entry[1]);
395
+ }
396
+ }
397
+
398
+ /**
399
+ * Removes all key-value entries from the map.
400
+ *
401
+ * @private
402
+ * @name clear
403
+ * @memberOf MapCache
404
+ */
405
+ function mapCacheClear() {
406
+ this.__data__ = {
407
+ 'hash': new Hash,
408
+ 'map': new (Map || ListCache),
409
+ 'string': new Hash
410
+ };
411
+ }
412
+
413
+ /**
414
+ * Removes `key` and its value from the map.
415
+ *
416
+ * @private
417
+ * @name delete
418
+ * @memberOf MapCache
419
+ * @param {string} key The key of the value to remove.
420
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
421
+ */
422
+ function mapCacheDelete(key) {
423
+ return getMapData(this, key)['delete'](key);
424
+ }
425
+
426
+ /**
427
+ * Gets the map value for `key`.
428
+ *
429
+ * @private
430
+ * @name get
431
+ * @memberOf MapCache
432
+ * @param {string} key The key of the value to get.
433
+ * @returns {*} Returns the entry value.
434
+ */
435
+ function mapCacheGet(key) {
436
+ return getMapData(this, key).get(key);
437
+ }
438
+
439
+ /**
440
+ * Checks if a map value for `key` exists.
441
+ *
442
+ * @private
443
+ * @name has
444
+ * @memberOf MapCache
445
+ * @param {string} key The key of the entry to check.
446
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
447
+ */
448
+ function mapCacheHas(key) {
449
+ return getMapData(this, key).has(key);
450
+ }
451
+
452
+ /**
453
+ * Sets the map `key` to `value`.
454
+ *
455
+ * @private
456
+ * @name set
457
+ * @memberOf MapCache
458
+ * @param {string} key The key of the value to set.
459
+ * @param {*} value The value to set.
460
+ * @returns {Object} Returns the map cache instance.
461
+ */
462
+ function mapCacheSet(key, value) {
463
+ getMapData(this, key).set(key, value);
464
+ return this;
465
+ }
466
+
467
+ // Add methods to `MapCache`.
468
+ MapCache.prototype.clear = mapCacheClear;
469
+ MapCache.prototype['delete'] = mapCacheDelete;
470
+ MapCache.prototype.get = mapCacheGet;
471
+ MapCache.prototype.has = mapCacheHas;
472
+ MapCache.prototype.set = mapCacheSet;
473
+
474
+ /**
475
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
476
+ *
477
+ * @private
478
+ * @param {Array} array The array to inspect.
479
+ * @param {*} key The key to search for.
480
+ * @returns {number} Returns the index of the matched value, else `-1`.
481
+ */
482
+ function assocIndexOf(array, key) {
483
+ var length = array.length;
484
+ while (length--) {
485
+ if (eq(array[length][0], key)) {
486
+ return length;
487
+ }
488
+ }
489
+ return -1;
490
+ }
491
+
492
+ /**
493
+ * The base implementation of `_.get` without support for default values.
494
+ *
495
+ * @private
496
+ * @param {Object} object The object to query.
497
+ * @param {Array|string} path The path of the property to get.
498
+ * @returns {*} Returns the resolved value.
499
+ */
500
+ function baseGet(object, path) {
501
+ path = isKey(path, object) ? [path] : castPath(path);
502
+
503
+ var index = 0,
504
+ length = path.length;
505
+
506
+ while (object != null && index < length) {
507
+ object = object[toKey(path[index++])];
508
+ }
509
+ return (index && index == length) ? object : undefined;
510
+ }
511
+
512
+ /**
513
+ * The base implementation of `_.isNative` without bad shim checks.
514
+ *
515
+ * @private
516
+ * @param {*} value The value to check.
517
+ * @returns {boolean} Returns `true` if `value` is a native function,
518
+ * else `false`.
519
+ */
520
+ function baseIsNative(value) {
521
+ if (!isObject(value) || isMasked(value)) {
522
+ return false;
523
+ }
524
+ var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
525
+ return pattern.test(toSource(value));
526
+ }
527
+
528
+ /**
529
+ * The base implementation of `_.toString` which doesn't convert nullish
530
+ * values to empty strings.
531
+ *
532
+ * @private
533
+ * @param {*} value The value to process.
534
+ * @returns {string} Returns the string.
535
+ */
536
+ function baseToString(value) {
537
+ // Exit early for strings to avoid a performance hit in some environments.
538
+ if (typeof value == 'string') {
539
+ return value;
540
+ }
541
+ if (isSymbol(value)) {
542
+ return symbolToString ? symbolToString.call(value) : '';
543
+ }
544
+ var result = (value + '');
545
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
546
+ }
547
+
548
+ /**
549
+ * Casts `value` to a path array if it's not one.
550
+ *
551
+ * @private
552
+ * @param {*} value The value to inspect.
553
+ * @returns {Array} Returns the cast property path array.
554
+ */
555
+ function castPath(value) {
556
+ return isArray(value) ? value : stringToPath(value);
557
+ }
558
+
559
+ /**
560
+ * Gets the data for `map`.
561
+ *
562
+ * @private
563
+ * @param {Object} map The map to query.
564
+ * @param {string} key The reference key.
565
+ * @returns {*} Returns the map data.
566
+ */
567
+ function getMapData(map, key) {
568
+ var data = map.__data__;
569
+ return isKeyable(key)
570
+ ? data[typeof key == 'string' ? 'string' : 'hash']
571
+ : data.map;
572
+ }
573
+
574
+ /**
575
+ * Gets the native function at `key` of `object`.
576
+ *
577
+ * @private
578
+ * @param {Object} object The object to query.
579
+ * @param {string} key The key of the method to get.
580
+ * @returns {*} Returns the function if it's native, else `undefined`.
581
+ */
582
+ function getNative(object, key) {
583
+ var value = getValue(object, key);
584
+ return baseIsNative(value) ? value : undefined;
585
+ }
586
+
587
+ /**
588
+ * Checks if `value` is a property name and not a property path.
589
+ *
590
+ * @private
591
+ * @param {*} value The value to check.
592
+ * @param {Object} [object] The object to query keys on.
593
+ * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
594
+ */
595
+ function isKey(value, object) {
596
+ if (isArray(value)) {
597
+ return false;
598
+ }
599
+ var type = typeof value;
600
+ if (type == 'number' || type == 'symbol' || type == 'boolean' ||
601
+ value == null || isSymbol(value)) {
602
+ return true;
603
+ }
604
+ return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
605
+ (object != null && value in Object(object));
606
+ }
607
+
608
+ /**
609
+ * Checks if `value` is suitable for use as unique object key.
610
+ *
611
+ * @private
612
+ * @param {*} value The value to check.
613
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
614
+ */
615
+ function isKeyable(value) {
616
+ var type = typeof value;
617
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
618
+ ? (value !== '__proto__')
619
+ : (value === null);
620
+ }
621
+
622
+ /**
623
+ * Checks if `func` has its source masked.
624
+ *
625
+ * @private
626
+ * @param {Function} func The function to check.
627
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
628
+ */
629
+ function isMasked(func) {
630
+ return !!maskSrcKey && (maskSrcKey in func);
631
+ }
632
+
633
+ /**
634
+ * Converts `string` to a property path array.
635
+ *
636
+ * @private
637
+ * @param {string} string The string to convert.
638
+ * @returns {Array} Returns the property path array.
639
+ */
640
+ var stringToPath = memoize(function(string) {
641
+ string = toString(string);
642
+
643
+ var result = [];
644
+ if (reLeadingDot.test(string)) {
645
+ result.push('');
646
+ }
647
+ string.replace(rePropName, function(match, number, quote, string) {
648
+ result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
649
+ });
650
+ return result;
651
+ });
652
+
653
+ /**
654
+ * Converts `value` to a string key if it's not a string or symbol.
655
+ *
656
+ * @private
657
+ * @param {*} value The value to inspect.
658
+ * @returns {string|symbol} Returns the key.
659
+ */
660
+ function toKey(value) {
661
+ if (typeof value == 'string' || isSymbol(value)) {
662
+ return value;
663
+ }
664
+ var result = (value + '');
665
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
666
+ }
667
+
668
+ /**
669
+ * Converts `func` to its source code.
670
+ *
671
+ * @private
672
+ * @param {Function} func The function to process.
673
+ * @returns {string} Returns the source code.
674
+ */
675
+ function toSource(func) {
676
+ if (func != null) {
677
+ try {
678
+ return funcToString.call(func);
679
+ } catch (e) {}
680
+ try {
681
+ return (func + '');
682
+ } catch (e) {}
683
+ }
684
+ return '';
685
+ }
686
+
687
+ /**
688
+ * Creates a function that memoizes the result of `func`. If `resolver` is
689
+ * provided, it determines the cache key for storing the result based on the
690
+ * arguments provided to the memoized function. By default, the first argument
691
+ * provided to the memoized function is used as the map cache key. The `func`
692
+ * is invoked with the `this` binding of the memoized function.
693
+ *
694
+ * **Note:** The cache is exposed as the `cache` property on the memoized
695
+ * function. Its creation may be customized by replacing the `_.memoize.Cache`
696
+ * constructor with one whose instances implement the
697
+ * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
698
+ * method interface of `delete`, `get`, `has`, and `set`.
699
+ *
700
+ * @static
701
+ * @memberOf _
702
+ * @since 0.1.0
703
+ * @category Function
704
+ * @param {Function} func The function to have its output memoized.
705
+ * @param {Function} [resolver] The function to resolve the cache key.
706
+ * @returns {Function} Returns the new memoized function.
707
+ * @example
708
+ *
709
+ * var object = { 'a': 1, 'b': 2 };
710
+ * var other = { 'c': 3, 'd': 4 };
711
+ *
712
+ * var values = _.memoize(_.values);
713
+ * values(object);
714
+ * // => [1, 2]
715
+ *
716
+ * values(other);
717
+ * // => [3, 4]
718
+ *
719
+ * object.a = 2;
720
+ * values(object);
721
+ * // => [1, 2]
722
+ *
723
+ * // Modify the result cache.
724
+ * values.cache.set(object, ['a', 'b']);
725
+ * values(object);
726
+ * // => ['a', 'b']
727
+ *
728
+ * // Replace `_.memoize.Cache`.
729
+ * _.memoize.Cache = WeakMap;
730
+ */
731
+ function memoize(func, resolver) {
732
+ if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
733
+ throw new TypeError(FUNC_ERROR_TEXT);
734
+ }
735
+ var memoized = function() {
736
+ var args = arguments,
737
+ key = resolver ? resolver.apply(this, args) : args[0],
738
+ cache = memoized.cache;
739
+
740
+ if (cache.has(key)) {
741
+ return cache.get(key);
742
+ }
743
+ var result = func.apply(this, args);
744
+ memoized.cache = cache.set(key, result);
745
+ return result;
746
+ };
747
+ memoized.cache = new (memoize.Cache || MapCache);
748
+ return memoized;
749
+ }
750
+
751
+ // Assign cache to `_.memoize`.
752
+ memoize.Cache = MapCache;
753
+
754
+ /**
755
+ * Performs a
756
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
757
+ * comparison between two values to determine if they are equivalent.
758
+ *
759
+ * @static
760
+ * @memberOf _
761
+ * @since 4.0.0
762
+ * @category Lang
763
+ * @param {*} value The value to compare.
764
+ * @param {*} other The other value to compare.
765
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
766
+ * @example
767
+ *
768
+ * var object = { 'a': 1 };
769
+ * var other = { 'a': 1 };
770
+ *
771
+ * _.eq(object, object);
772
+ * // => true
773
+ *
774
+ * _.eq(object, other);
775
+ * // => false
776
+ *
777
+ * _.eq('a', 'a');
778
+ * // => true
779
+ *
780
+ * _.eq('a', Object('a'));
781
+ * // => false
782
+ *
783
+ * _.eq(NaN, NaN);
784
+ * // => true
785
+ */
786
+ function eq(value, other) {
787
+ return value === other || (value !== value && other !== other);
788
+ }
789
+
790
+ /**
791
+ * Checks if `value` is classified as an `Array` object.
792
+ *
793
+ * @static
794
+ * @memberOf _
795
+ * @since 0.1.0
796
+ * @category Lang
797
+ * @param {*} value The value to check.
798
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
799
+ * @example
800
+ *
801
+ * _.isArray([1, 2, 3]);
802
+ * // => true
803
+ *
804
+ * _.isArray(document.body.children);
805
+ * // => false
806
+ *
807
+ * _.isArray('abc');
808
+ * // => false
809
+ *
810
+ * _.isArray(_.noop);
811
+ * // => false
812
+ */
813
+ var isArray = Array.isArray;
814
+
815
+ /**
816
+ * Checks if `value` is classified as a `Function` object.
817
+ *
818
+ * @static
819
+ * @memberOf _
820
+ * @since 0.1.0
821
+ * @category Lang
822
+ * @param {*} value The value to check.
823
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
824
+ * @example
825
+ *
826
+ * _.isFunction(_);
827
+ * // => true
828
+ *
829
+ * _.isFunction(/abc/);
830
+ * // => false
831
+ */
832
+ function isFunction(value) {
833
+ // The use of `Object#toString` avoids issues with the `typeof` operator
834
+ // in Safari 8-9 which returns 'object' for typed array and other constructors.
835
+ var tag = isObject(value) ? objectToString.call(value) : '';
836
+ return tag == funcTag || tag == genTag;
837
+ }
838
+
839
+ /**
840
+ * Checks if `value` is the
841
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
842
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
843
+ *
844
+ * @static
845
+ * @memberOf _
846
+ * @since 0.1.0
847
+ * @category Lang
848
+ * @param {*} value The value to check.
849
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
850
+ * @example
851
+ *
852
+ * _.isObject({});
853
+ * // => true
854
+ *
855
+ * _.isObject([1, 2, 3]);
856
+ * // => true
857
+ *
858
+ * _.isObject(_.noop);
859
+ * // => true
860
+ *
861
+ * _.isObject(null);
862
+ * // => false
863
+ */
864
+ function isObject(value) {
865
+ var type = typeof value;
866
+ return !!value && (type == 'object' || type == 'function');
867
+ }
868
+
869
+ /**
870
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
871
+ * and has a `typeof` result of "object".
872
+ *
873
+ * @static
874
+ * @memberOf _
875
+ * @since 4.0.0
876
+ * @category Lang
877
+ * @param {*} value The value to check.
878
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
879
+ * @example
880
+ *
881
+ * _.isObjectLike({});
882
+ * // => true
883
+ *
884
+ * _.isObjectLike([1, 2, 3]);
885
+ * // => true
886
+ *
887
+ * _.isObjectLike(_.noop);
888
+ * // => false
889
+ *
890
+ * _.isObjectLike(null);
891
+ * // => false
892
+ */
893
+ function isObjectLike(value) {
894
+ return !!value && typeof value == 'object';
895
+ }
896
+
897
+ /**
898
+ * Checks if `value` is classified as a `Symbol` primitive or object.
899
+ *
900
+ * @static
901
+ * @memberOf _
902
+ * @since 4.0.0
903
+ * @category Lang
904
+ * @param {*} value The value to check.
905
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
906
+ * @example
907
+ *
908
+ * _.isSymbol(Symbol.iterator);
909
+ * // => true
910
+ *
911
+ * _.isSymbol('abc');
912
+ * // => false
913
+ */
914
+ function isSymbol(value) {
915
+ return typeof value == 'symbol' ||
916
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
917
+ }
918
+
919
+ /**
920
+ * Converts `value` to a string. An empty string is returned for `null`
921
+ * and `undefined` values. The sign of `-0` is preserved.
922
+ *
923
+ * @static
924
+ * @memberOf _
925
+ * @since 4.0.0
926
+ * @category Lang
927
+ * @param {*} value The value to process.
928
+ * @returns {string} Returns the string.
929
+ * @example
930
+ *
931
+ * _.toString(null);
932
+ * // => ''
933
+ *
934
+ * _.toString(-0);
935
+ * // => '-0'
936
+ *
937
+ * _.toString([1, 2, 3]);
938
+ * // => '1,2,3'
939
+ */
940
+ function toString(value) {
941
+ return value == null ? '' : baseToString(value);
942
+ }
943
+
944
+ /**
945
+ * Gets the value at `path` of `object`. If the resolved value is
946
+ * `undefined`, the `defaultValue` is returned in its place.
947
+ *
948
+ * @static
949
+ * @memberOf _
950
+ * @since 3.7.0
951
+ * @category Object
952
+ * @param {Object} object The object to query.
953
+ * @param {Array|string} path The path of the property to get.
954
+ * @param {*} [defaultValue] The value returned for `undefined` resolved values.
955
+ * @returns {*} Returns the resolved value.
956
+ * @example
957
+ *
958
+ * var object = { 'a': [{ 'b': { 'c': 3 } }] };
959
+ *
960
+ * _.get(object, 'a[0].b.c');
961
+ * // => 3
962
+ *
963
+ * _.get(object, ['a', '0', 'b', 'c']);
964
+ * // => 3
965
+ *
966
+ * _.get(object, 'a.b.c', 'default');
967
+ * // => 'default'
968
+ */
969
+ function get(object, path, defaultValue) {
970
+ var result = object == null ? undefined : baseGet(object, path);
971
+ return result === undefined ? defaultValue : result;
972
+ }
973
+
974
+ var lodash_get = get;
975
+
976
+ var defaultContext = {
977
+ color: 'currentColor',
978
+ size: 24,
979
+ palette: {},
980
+ };
981
+ var IconContext = createContext(defaultContext);
982
+ function withIconContext(Comp) {
983
+ return function (props) { return (jsx(IconContext.Consumer, { children: function (contextValue) { return jsx(Comp, __assign({}, props, contextValue), void 0); } }, void 0)); };
984
+ }
985
+
986
+ var IconProvider = function (_a) {
987
+ var palette = _a.palette, defaultColor = _a.defaultColor, defaultSize = _a.defaultSize, children = _a.children, props = __rest(_a, ["palette", "defaultColor", "defaultSize", "children"]);
988
+ // Checks if default color comes from the palette, else we take default color value
989
+ var color = useMemo(function () { return lodash_get(palette, defaultColor || '', defaultColor); }, [defaultColor, palette]);
990
+ var defaultValue = useMemo(function () {
991
+ return Object.entries({
992
+ size: defaultSize,
993
+ color: color,
994
+ palette: palette,
995
+ }).reduce(function (acc, _a) {
996
+ var _b;
997
+ var key = _a[0], value = _a[1];
998
+ return (!!value ? __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b)) : acc);
999
+ }, {});
1000
+ }, [defaultSize, color, palette]);
1001
+ return (jsx(IconContext.Provider, __assign({ value: __assign(__assign(__assign({}, defaultContext), props), defaultValue) }, { children: children }), void 0));
1002
+ };
1003
+
1004
+ export { IconContext, IconProvider, defaultContext, withIconContext };