phyloio 2.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 (1756) hide show
  1. package/Examples/Easy/index.html +46 -0
  2. package/Examples/Phylo Stack/stack.html +58 -0
  3. package/Examples/Website/fonts/fa-brands-400.eot +0 -0
  4. package/Examples/Website/fonts/fa-brands-400.svg +3717 -0
  5. package/Examples/Website/fonts/fa-brands-400.ttf +0 -0
  6. package/Examples/Website/fonts/fa-brands-400.woff +0 -0
  7. package/Examples/Website/fonts/fa-brands-400.woff2 +0 -0
  8. package/Examples/Website/fonts/fa-regular-400.eot +0 -0
  9. package/Examples/Website/fonts/fa-regular-400.svg +801 -0
  10. package/Examples/Website/fonts/fa-regular-400.ttf +0 -0
  11. package/Examples/Website/fonts/fa-regular-400.woff +0 -0
  12. package/Examples/Website/fonts/fa-regular-400.woff2 +0 -0
  13. package/Examples/Website/fonts/fa-solid-900.eot +0 -0
  14. package/Examples/Website/fonts/fa-solid-900.svg +5034 -0
  15. package/Examples/Website/fonts/fa-solid-900.ttf +0 -0
  16. package/Examples/Website/fonts/fa-solid-900.woff +0 -0
  17. package/Examples/Website/fonts/fa-solid-900.woff2 +0 -0
  18. package/Examples/Website/phylo.js +7365 -0
  19. package/Examples/Website/phyloio.css +86 -0
  20. package/Examples/Website/phyloio.html +928 -0
  21. package/LICENSE.txt +25 -0
  22. package/README.md +106 -0
  23. package/dist/fonts/fa-brands-400.eot +0 -0
  24. package/dist/fonts/fa-brands-400.svg +3717 -0
  25. package/dist/fonts/fa-brands-400.ttf +0 -0
  26. package/dist/fonts/fa-brands-400.woff +0 -0
  27. package/dist/fonts/fa-brands-400.woff2 +0 -0
  28. package/dist/fonts/fa-regular-400.eot +0 -0
  29. package/dist/fonts/fa-regular-400.svg +801 -0
  30. package/dist/fonts/fa-regular-400.ttf +0 -0
  31. package/dist/fonts/fa-regular-400.woff +0 -0
  32. package/dist/fonts/fa-regular-400.woff2 +0 -0
  33. package/dist/fonts/fa-solid-900.eot +0 -0
  34. package/dist/fonts/fa-solid-900.svg +5034 -0
  35. package/dist/fonts/fa-solid-900.ttf +0 -0
  36. package/dist/fonts/fa-solid-900.woff +0 -0
  37. package/dist/fonts/fa-solid-900.woff2 +0 -0
  38. package/dist/phylo.js +7365 -0
  39. package/package-lock_back.json +1572 -0
  40. package/package.json +32 -0
  41. package/src/api.js +465 -0
  42. package/src/comparison.js +223 -0
  43. package/src/container.js +546 -0
  44. package/src/fontawesome/LICENSE.txt +34 -0
  45. package/src/fontawesome/attribution.js +3 -0
  46. package/src/fontawesome/css/all.css +4619 -0
  47. package/src/fontawesome/css/all.min.css +5 -0
  48. package/src/fontawesome/css/brands.css +15 -0
  49. package/src/fontawesome/css/brands.min.css +5 -0
  50. package/src/fontawesome/css/fontawesome.css +4585 -0
  51. package/src/fontawesome/css/fontawesome.min.css +5 -0
  52. package/src/fontawesome/css/regular.css +15 -0
  53. package/src/fontawesome/css/regular.min.css +5 -0
  54. package/src/fontawesome/css/solid.css +16 -0
  55. package/src/fontawesome/css/solid.min.css +5 -0
  56. package/src/fontawesome/css/svg-with-js.css +371 -0
  57. package/src/fontawesome/css/svg-with-js.min.css +5 -0
  58. package/src/fontawesome/css/v4-shims.css +2172 -0
  59. package/src/fontawesome/css/v4-shims.min.css +5 -0
  60. package/src/fontawesome/js/all.js +4467 -0
  61. package/src/fontawesome/js/all.min.js +5 -0
  62. package/src/fontawesome/js/brands.js +586 -0
  63. package/src/fontawesome/js/brands.min.js +5 -0
  64. package/src/fontawesome/js/conflict-detection.js +998 -0
  65. package/src/fontawesome/js/conflict-detection.min.js +5 -0
  66. package/src/fontawesome/js/fontawesome.js +2483 -0
  67. package/src/fontawesome/js/fontawesome.min.js +5 -0
  68. package/src/fontawesome/js/regular.js +280 -0
  69. package/src/fontawesome/js/regular.min.js +5 -0
  70. package/src/fontawesome/js/solid.js +1130 -0
  71. package/src/fontawesome/js/solid.min.js +5 -0
  72. package/src/fontawesome/js/v4-shims.js +68 -0
  73. package/src/fontawesome/js/v4-shims.min.js +5 -0
  74. package/src/fontawesome/less/_animated.less +19 -0
  75. package/src/fontawesome/less/_bordered-pulled.less +16 -0
  76. package/src/fontawesome/less/_core.less +12 -0
  77. package/src/fontawesome/less/_fixed-width.less +6 -0
  78. package/src/fontawesome/less/_icons.less +1462 -0
  79. package/src/fontawesome/less/_larger.less +27 -0
  80. package/src/fontawesome/less/_list.less +18 -0
  81. package/src/fontawesome/less/_mixins.less +56 -0
  82. package/src/fontawesome/less/_rotated-flipped.less +24 -0
  83. package/src/fontawesome/less/_screen-reader.less +5 -0
  84. package/src/fontawesome/less/_shims.less +2066 -0
  85. package/src/fontawesome/less/_stacked.less +22 -0
  86. package/src/fontawesome/less/_variables.less +1474 -0
  87. package/src/fontawesome/less/brands.less +23 -0
  88. package/src/fontawesome/less/fontawesome.less +16 -0
  89. package/src/fontawesome/less/regular.less +23 -0
  90. package/src/fontawesome/less/solid.less +24 -0
  91. package/src/fontawesome/less/v4-shims.less +6 -0
  92. package/src/fontawesome/metadata/categories.yml +2572 -0
  93. package/src/fontawesome/metadata/icons.json +58548 -0
  94. package/src/fontawesome/metadata/icons.yml +21783 -0
  95. package/src/fontawesome/metadata/shims.json +2317 -0
  96. package/src/fontawesome/metadata/shims.yml +298 -0
  97. package/src/fontawesome/metadata/sponsors.yml +744 -0
  98. package/src/fontawesome/scss/_animated.scss +20 -0
  99. package/src/fontawesome/scss/_bordered-pulled.scss +20 -0
  100. package/src/fontawesome/scss/_core.scss +21 -0
  101. package/src/fontawesome/scss/_fixed-width.scss +6 -0
  102. package/src/fontawesome/scss/_icons.scss +1462 -0
  103. package/src/fontawesome/scss/_larger.scss +23 -0
  104. package/src/fontawesome/scss/_list.scss +18 -0
  105. package/src/fontawesome/scss/_mixins.scss +56 -0
  106. package/src/fontawesome/scss/_rotated-flipped.scss +24 -0
  107. package/src/fontawesome/scss/_screen-reader.scss +5 -0
  108. package/src/fontawesome/scss/_shims.scss +2066 -0
  109. package/src/fontawesome/scss/_stacked.scss +31 -0
  110. package/src/fontawesome/scss/_variables.scss +1479 -0
  111. package/src/fontawesome/scss/brands.scss +23 -0
  112. package/src/fontawesome/scss/fontawesome.scss +16 -0
  113. package/src/fontawesome/scss/regular.scss +23 -0
  114. package/src/fontawesome/scss/solid.scss +24 -0
  115. package/src/fontawesome/scss/v4-shims.scss +6 -0
  116. package/src/fontawesome/sprites/brands.svg +1381 -0
  117. package/src/fontawesome/sprites/regular.svg +463 -0
  118. package/src/fontawesome/sprites/solid.svg +3013 -0
  119. package/src/fontawesome/svgs/brands/500px.svg +1 -0
  120. package/src/fontawesome/svgs/brands/accessible-icon.svg +1 -0
  121. package/src/fontawesome/svgs/brands/accusoft.svg +1 -0
  122. package/src/fontawesome/svgs/brands/acquisitions-incorporated.svg +1 -0
  123. package/src/fontawesome/svgs/brands/adn.svg +1 -0
  124. package/src/fontawesome/svgs/brands/adversal.svg +1 -0
  125. package/src/fontawesome/svgs/brands/affiliatetheme.svg +1 -0
  126. package/src/fontawesome/svgs/brands/airbnb.svg +1 -0
  127. package/src/fontawesome/svgs/brands/algolia.svg +1 -0
  128. package/src/fontawesome/svgs/brands/alipay.svg +1 -0
  129. package/src/fontawesome/svgs/brands/amazon-pay.svg +1 -0
  130. package/src/fontawesome/svgs/brands/amazon.svg +1 -0
  131. package/src/fontawesome/svgs/brands/amilia.svg +1 -0
  132. package/src/fontawesome/svgs/brands/android.svg +1 -0
  133. package/src/fontawesome/svgs/brands/angellist.svg +1 -0
  134. package/src/fontawesome/svgs/brands/angrycreative.svg +1 -0
  135. package/src/fontawesome/svgs/brands/angular.svg +1 -0
  136. package/src/fontawesome/svgs/brands/app-store-ios.svg +1 -0
  137. package/src/fontawesome/svgs/brands/app-store.svg +1 -0
  138. package/src/fontawesome/svgs/brands/apper.svg +1 -0
  139. package/src/fontawesome/svgs/brands/apple-pay.svg +1 -0
  140. package/src/fontawesome/svgs/brands/apple.svg +1 -0
  141. package/src/fontawesome/svgs/brands/artstation.svg +1 -0
  142. package/src/fontawesome/svgs/brands/asymmetrik.svg +1 -0
  143. package/src/fontawesome/svgs/brands/atlassian.svg +1 -0
  144. package/src/fontawesome/svgs/brands/audible.svg +1 -0
  145. package/src/fontawesome/svgs/brands/autoprefixer.svg +1 -0
  146. package/src/fontawesome/svgs/brands/avianex.svg +1 -0
  147. package/src/fontawesome/svgs/brands/aviato.svg +1 -0
  148. package/src/fontawesome/svgs/brands/aws.svg +1 -0
  149. package/src/fontawesome/svgs/brands/bandcamp.svg +1 -0
  150. package/src/fontawesome/svgs/brands/battle-net.svg +1 -0
  151. package/src/fontawesome/svgs/brands/behance-square.svg +1 -0
  152. package/src/fontawesome/svgs/brands/behance.svg +1 -0
  153. package/src/fontawesome/svgs/brands/bimobject.svg +1 -0
  154. package/src/fontawesome/svgs/brands/bitbucket.svg +1 -0
  155. package/src/fontawesome/svgs/brands/bitcoin.svg +1 -0
  156. package/src/fontawesome/svgs/brands/bity.svg +1 -0
  157. package/src/fontawesome/svgs/brands/black-tie.svg +1 -0
  158. package/src/fontawesome/svgs/brands/blackberry.svg +1 -0
  159. package/src/fontawesome/svgs/brands/blogger-b.svg +1 -0
  160. package/src/fontawesome/svgs/brands/blogger.svg +1 -0
  161. package/src/fontawesome/svgs/brands/bluetooth-b.svg +1 -0
  162. package/src/fontawesome/svgs/brands/bluetooth.svg +1 -0
  163. package/src/fontawesome/svgs/brands/bootstrap.svg +1 -0
  164. package/src/fontawesome/svgs/brands/btc.svg +1 -0
  165. package/src/fontawesome/svgs/brands/buffer.svg +1 -0
  166. package/src/fontawesome/svgs/brands/buromobelexperte.svg +1 -0
  167. package/src/fontawesome/svgs/brands/buy-n-large.svg +1 -0
  168. package/src/fontawesome/svgs/brands/buysellads.svg +1 -0
  169. package/src/fontawesome/svgs/brands/canadian-maple-leaf.svg +1 -0
  170. package/src/fontawesome/svgs/brands/cc-amazon-pay.svg +1 -0
  171. package/src/fontawesome/svgs/brands/cc-amex.svg +1 -0
  172. package/src/fontawesome/svgs/brands/cc-apple-pay.svg +1 -0
  173. package/src/fontawesome/svgs/brands/cc-diners-club.svg +1 -0
  174. package/src/fontawesome/svgs/brands/cc-discover.svg +1 -0
  175. package/src/fontawesome/svgs/brands/cc-jcb.svg +1 -0
  176. package/src/fontawesome/svgs/brands/cc-mastercard.svg +1 -0
  177. package/src/fontawesome/svgs/brands/cc-paypal.svg +1 -0
  178. package/src/fontawesome/svgs/brands/cc-stripe.svg +1 -0
  179. package/src/fontawesome/svgs/brands/cc-visa.svg +1 -0
  180. package/src/fontawesome/svgs/brands/centercode.svg +1 -0
  181. package/src/fontawesome/svgs/brands/centos.svg +1 -0
  182. package/src/fontawesome/svgs/brands/chrome.svg +1 -0
  183. package/src/fontawesome/svgs/brands/chromecast.svg +1 -0
  184. package/src/fontawesome/svgs/brands/cloudflare.svg +1 -0
  185. package/src/fontawesome/svgs/brands/cloudscale.svg +1 -0
  186. package/src/fontawesome/svgs/brands/cloudsmith.svg +1 -0
  187. package/src/fontawesome/svgs/brands/cloudversify.svg +1 -0
  188. package/src/fontawesome/svgs/brands/codepen.svg +1 -0
  189. package/src/fontawesome/svgs/brands/codiepie.svg +1 -0
  190. package/src/fontawesome/svgs/brands/confluence.svg +1 -0
  191. package/src/fontawesome/svgs/brands/connectdevelop.svg +1 -0
  192. package/src/fontawesome/svgs/brands/contao.svg +1 -0
  193. package/src/fontawesome/svgs/brands/cotton-bureau.svg +1 -0
  194. package/src/fontawesome/svgs/brands/cpanel.svg +1 -0
  195. package/src/fontawesome/svgs/brands/creative-commons-by.svg +1 -0
  196. package/src/fontawesome/svgs/brands/creative-commons-nc-eu.svg +1 -0
  197. package/src/fontawesome/svgs/brands/creative-commons-nc-jp.svg +1 -0
  198. package/src/fontawesome/svgs/brands/creative-commons-nc.svg +1 -0
  199. package/src/fontawesome/svgs/brands/creative-commons-nd.svg +1 -0
  200. package/src/fontawesome/svgs/brands/creative-commons-pd-alt.svg +1 -0
  201. package/src/fontawesome/svgs/brands/creative-commons-pd.svg +1 -0
  202. package/src/fontawesome/svgs/brands/creative-commons-remix.svg +1 -0
  203. package/src/fontawesome/svgs/brands/creative-commons-sa.svg +1 -0
  204. package/src/fontawesome/svgs/brands/creative-commons-sampling-plus.svg +1 -0
  205. package/src/fontawesome/svgs/brands/creative-commons-sampling.svg +1 -0
  206. package/src/fontawesome/svgs/brands/creative-commons-share.svg +1 -0
  207. package/src/fontawesome/svgs/brands/creative-commons-zero.svg +1 -0
  208. package/src/fontawesome/svgs/brands/creative-commons.svg +1 -0
  209. package/src/fontawesome/svgs/brands/critical-role.svg +1 -0
  210. package/src/fontawesome/svgs/brands/css3-alt.svg +1 -0
  211. package/src/fontawesome/svgs/brands/css3.svg +1 -0
  212. package/src/fontawesome/svgs/brands/cuttlefish.svg +1 -0
  213. package/src/fontawesome/svgs/brands/d-and-d-beyond.svg +1 -0
  214. package/src/fontawesome/svgs/brands/d-and-d.svg +1 -0
  215. package/src/fontawesome/svgs/brands/dailymotion.svg +1 -0
  216. package/src/fontawesome/svgs/brands/dashcube.svg +1 -0
  217. package/src/fontawesome/svgs/brands/deezer.svg +1 -0
  218. package/src/fontawesome/svgs/brands/delicious.svg +1 -0
  219. package/src/fontawesome/svgs/brands/deploydog.svg +1 -0
  220. package/src/fontawesome/svgs/brands/deskpro.svg +1 -0
  221. package/src/fontawesome/svgs/brands/dev.svg +1 -0
  222. package/src/fontawesome/svgs/brands/deviantart.svg +1 -0
  223. package/src/fontawesome/svgs/brands/dhl.svg +1 -0
  224. package/src/fontawesome/svgs/brands/diaspora.svg +1 -0
  225. package/src/fontawesome/svgs/brands/digg.svg +1 -0
  226. package/src/fontawesome/svgs/brands/digital-ocean.svg +1 -0
  227. package/src/fontawesome/svgs/brands/discord.svg +1 -0
  228. package/src/fontawesome/svgs/brands/discourse.svg +1 -0
  229. package/src/fontawesome/svgs/brands/dochub.svg +1 -0
  230. package/src/fontawesome/svgs/brands/docker.svg +1 -0
  231. package/src/fontawesome/svgs/brands/draft2digital.svg +1 -0
  232. package/src/fontawesome/svgs/brands/dribbble-square.svg +1 -0
  233. package/src/fontawesome/svgs/brands/dribbble.svg +1 -0
  234. package/src/fontawesome/svgs/brands/dropbox.svg +1 -0
  235. package/src/fontawesome/svgs/brands/drupal.svg +1 -0
  236. package/src/fontawesome/svgs/brands/dyalog.svg +1 -0
  237. package/src/fontawesome/svgs/brands/earlybirds.svg +1 -0
  238. package/src/fontawesome/svgs/brands/ebay.svg +1 -0
  239. package/src/fontawesome/svgs/brands/edge-legacy.svg +1 -0
  240. package/src/fontawesome/svgs/brands/edge.svg +1 -0
  241. package/src/fontawesome/svgs/brands/elementor.svg +1 -0
  242. package/src/fontawesome/svgs/brands/ello.svg +1 -0
  243. package/src/fontawesome/svgs/brands/ember.svg +1 -0
  244. package/src/fontawesome/svgs/brands/empire.svg +1 -0
  245. package/src/fontawesome/svgs/brands/envira.svg +1 -0
  246. package/src/fontawesome/svgs/brands/erlang.svg +1 -0
  247. package/src/fontawesome/svgs/brands/ethereum.svg +1 -0
  248. package/src/fontawesome/svgs/brands/etsy.svg +1 -0
  249. package/src/fontawesome/svgs/brands/evernote.svg +1 -0
  250. package/src/fontawesome/svgs/brands/expeditedssl.svg +1 -0
  251. package/src/fontawesome/svgs/brands/facebook-f.svg +1 -0
  252. package/src/fontawesome/svgs/brands/facebook-messenger.svg +1 -0
  253. package/src/fontawesome/svgs/brands/facebook-square.svg +1 -0
  254. package/src/fontawesome/svgs/brands/facebook.svg +1 -0
  255. package/src/fontawesome/svgs/brands/fantasy-flight-games.svg +1 -0
  256. package/src/fontawesome/svgs/brands/fedex.svg +1 -0
  257. package/src/fontawesome/svgs/brands/fedora.svg +1 -0
  258. package/src/fontawesome/svgs/brands/figma.svg +1 -0
  259. package/src/fontawesome/svgs/brands/firefox-browser.svg +1 -0
  260. package/src/fontawesome/svgs/brands/firefox.svg +1 -0
  261. package/src/fontawesome/svgs/brands/first-order-alt.svg +1 -0
  262. package/src/fontawesome/svgs/brands/first-order.svg +1 -0
  263. package/src/fontawesome/svgs/brands/firstdraft.svg +1 -0
  264. package/src/fontawesome/svgs/brands/flickr.svg +1 -0
  265. package/src/fontawesome/svgs/brands/flipboard.svg +1 -0
  266. package/src/fontawesome/svgs/brands/fly.svg +1 -0
  267. package/src/fontawesome/svgs/brands/font-awesome-alt.svg +1 -0
  268. package/src/fontawesome/svgs/brands/font-awesome-flag.svg +1 -0
  269. package/src/fontawesome/svgs/brands/font-awesome-logo-full.svg +1 -0
  270. package/src/fontawesome/svgs/brands/font-awesome.svg +1 -0
  271. package/src/fontawesome/svgs/brands/fonticons-fi.svg +1 -0
  272. package/src/fontawesome/svgs/brands/fonticons.svg +1 -0
  273. package/src/fontawesome/svgs/brands/fort-awesome-alt.svg +1 -0
  274. package/src/fontawesome/svgs/brands/fort-awesome.svg +1 -0
  275. package/src/fontawesome/svgs/brands/forumbee.svg +1 -0
  276. package/src/fontawesome/svgs/brands/foursquare.svg +1 -0
  277. package/src/fontawesome/svgs/brands/free-code-camp.svg +1 -0
  278. package/src/fontawesome/svgs/brands/freebsd.svg +1 -0
  279. package/src/fontawesome/svgs/brands/fulcrum.svg +1 -0
  280. package/src/fontawesome/svgs/brands/galactic-republic.svg +1 -0
  281. package/src/fontawesome/svgs/brands/galactic-senate.svg +1 -0
  282. package/src/fontawesome/svgs/brands/get-pocket.svg +1 -0
  283. package/src/fontawesome/svgs/brands/gg-circle.svg +1 -0
  284. package/src/fontawesome/svgs/brands/gg.svg +1 -0
  285. package/src/fontawesome/svgs/brands/git-alt.svg +1 -0
  286. package/src/fontawesome/svgs/brands/git-square.svg +1 -0
  287. package/src/fontawesome/svgs/brands/git.svg +1 -0
  288. package/src/fontawesome/svgs/brands/github-alt.svg +1 -0
  289. package/src/fontawesome/svgs/brands/github-square.svg +1 -0
  290. package/src/fontawesome/svgs/brands/github.svg +1 -0
  291. package/src/fontawesome/svgs/brands/gitkraken.svg +1 -0
  292. package/src/fontawesome/svgs/brands/gitlab.svg +1 -0
  293. package/src/fontawesome/svgs/brands/gitter.svg +1 -0
  294. package/src/fontawesome/svgs/brands/glide-g.svg +1 -0
  295. package/src/fontawesome/svgs/brands/glide.svg +1 -0
  296. package/src/fontawesome/svgs/brands/gofore.svg +1 -0
  297. package/src/fontawesome/svgs/brands/goodreads-g.svg +1 -0
  298. package/src/fontawesome/svgs/brands/goodreads.svg +1 -0
  299. package/src/fontawesome/svgs/brands/google-drive.svg +1 -0
  300. package/src/fontawesome/svgs/brands/google-pay.svg +1 -0
  301. package/src/fontawesome/svgs/brands/google-play.svg +1 -0
  302. package/src/fontawesome/svgs/brands/google-plus-g.svg +1 -0
  303. package/src/fontawesome/svgs/brands/google-plus-square.svg +1 -0
  304. package/src/fontawesome/svgs/brands/google-plus.svg +1 -0
  305. package/src/fontawesome/svgs/brands/google-wallet.svg +1 -0
  306. package/src/fontawesome/svgs/brands/google.svg +1 -0
  307. package/src/fontawesome/svgs/brands/gratipay.svg +1 -0
  308. package/src/fontawesome/svgs/brands/grav.svg +1 -0
  309. package/src/fontawesome/svgs/brands/gripfire.svg +1 -0
  310. package/src/fontawesome/svgs/brands/grunt.svg +1 -0
  311. package/src/fontawesome/svgs/brands/guilded.svg +1 -0
  312. package/src/fontawesome/svgs/brands/gulp.svg +1 -0
  313. package/src/fontawesome/svgs/brands/hacker-news-square.svg +1 -0
  314. package/src/fontawesome/svgs/brands/hacker-news.svg +1 -0
  315. package/src/fontawesome/svgs/brands/hackerrank.svg +1 -0
  316. package/src/fontawesome/svgs/brands/hips.svg +1 -0
  317. package/src/fontawesome/svgs/brands/hire-a-helper.svg +1 -0
  318. package/src/fontawesome/svgs/brands/hive.svg +1 -0
  319. package/src/fontawesome/svgs/brands/hooli.svg +1 -0
  320. package/src/fontawesome/svgs/brands/hornbill.svg +1 -0
  321. package/src/fontawesome/svgs/brands/hotjar.svg +1 -0
  322. package/src/fontawesome/svgs/brands/houzz.svg +1 -0
  323. package/src/fontawesome/svgs/brands/html5.svg +1 -0
  324. package/src/fontawesome/svgs/brands/hubspot.svg +1 -0
  325. package/src/fontawesome/svgs/brands/ideal.svg +1 -0
  326. package/src/fontawesome/svgs/brands/imdb.svg +1 -0
  327. package/src/fontawesome/svgs/brands/innosoft.svg +1 -0
  328. package/src/fontawesome/svgs/brands/instagram-square.svg +1 -0
  329. package/src/fontawesome/svgs/brands/instagram.svg +1 -0
  330. package/src/fontawesome/svgs/brands/instalod.svg +1 -0
  331. package/src/fontawesome/svgs/brands/intercom.svg +1 -0
  332. package/src/fontawesome/svgs/brands/internet-explorer.svg +1 -0
  333. package/src/fontawesome/svgs/brands/invision.svg +1 -0
  334. package/src/fontawesome/svgs/brands/ioxhost.svg +1 -0
  335. package/src/fontawesome/svgs/brands/itch-io.svg +1 -0
  336. package/src/fontawesome/svgs/brands/itunes-note.svg +1 -0
  337. package/src/fontawesome/svgs/brands/itunes.svg +1 -0
  338. package/src/fontawesome/svgs/brands/java.svg +1 -0
  339. package/src/fontawesome/svgs/brands/jedi-order.svg +1 -0
  340. package/src/fontawesome/svgs/brands/jenkins.svg +1 -0
  341. package/src/fontawesome/svgs/brands/jira.svg +1 -0
  342. package/src/fontawesome/svgs/brands/joget.svg +1 -0
  343. package/src/fontawesome/svgs/brands/joomla.svg +1 -0
  344. package/src/fontawesome/svgs/brands/js-square.svg +1 -0
  345. package/src/fontawesome/svgs/brands/js.svg +1 -0
  346. package/src/fontawesome/svgs/brands/jsfiddle.svg +1 -0
  347. package/src/fontawesome/svgs/brands/kaggle.svg +1 -0
  348. package/src/fontawesome/svgs/brands/keybase.svg +1 -0
  349. package/src/fontawesome/svgs/brands/keycdn.svg +1 -0
  350. package/src/fontawesome/svgs/brands/kickstarter-k.svg +1 -0
  351. package/src/fontawesome/svgs/brands/kickstarter.svg +1 -0
  352. package/src/fontawesome/svgs/brands/korvue.svg +1 -0
  353. package/src/fontawesome/svgs/brands/laravel.svg +1 -0
  354. package/src/fontawesome/svgs/brands/lastfm-square.svg +1 -0
  355. package/src/fontawesome/svgs/brands/lastfm.svg +1 -0
  356. package/src/fontawesome/svgs/brands/leanpub.svg +1 -0
  357. package/src/fontawesome/svgs/brands/less.svg +1 -0
  358. package/src/fontawesome/svgs/brands/line.svg +1 -0
  359. package/src/fontawesome/svgs/brands/linkedin-in.svg +1 -0
  360. package/src/fontawesome/svgs/brands/linkedin.svg +1 -0
  361. package/src/fontawesome/svgs/brands/linode.svg +1 -0
  362. package/src/fontawesome/svgs/brands/linux.svg +1 -0
  363. package/src/fontawesome/svgs/brands/lyft.svg +1 -0
  364. package/src/fontawesome/svgs/brands/magento.svg +1 -0
  365. package/src/fontawesome/svgs/brands/mailchimp.svg +1 -0
  366. package/src/fontawesome/svgs/brands/mandalorian.svg +1 -0
  367. package/src/fontawesome/svgs/brands/markdown.svg +1 -0
  368. package/src/fontawesome/svgs/brands/mastodon.svg +1 -0
  369. package/src/fontawesome/svgs/brands/maxcdn.svg +1 -0
  370. package/src/fontawesome/svgs/brands/mdb.svg +1 -0
  371. package/src/fontawesome/svgs/brands/medapps.svg +1 -0
  372. package/src/fontawesome/svgs/brands/medium-m.svg +1 -0
  373. package/src/fontawesome/svgs/brands/medium.svg +1 -0
  374. package/src/fontawesome/svgs/brands/medrt.svg +1 -0
  375. package/src/fontawesome/svgs/brands/meetup.svg +1 -0
  376. package/src/fontawesome/svgs/brands/megaport.svg +1 -0
  377. package/src/fontawesome/svgs/brands/mendeley.svg +1 -0
  378. package/src/fontawesome/svgs/brands/microblog.svg +1 -0
  379. package/src/fontawesome/svgs/brands/microsoft.svg +1 -0
  380. package/src/fontawesome/svgs/brands/mix.svg +1 -0
  381. package/src/fontawesome/svgs/brands/mixcloud.svg +1 -0
  382. package/src/fontawesome/svgs/brands/mixer.svg +1 -0
  383. package/src/fontawesome/svgs/brands/mizuni.svg +1 -0
  384. package/src/fontawesome/svgs/brands/modx.svg +1 -0
  385. package/src/fontawesome/svgs/brands/monero.svg +1 -0
  386. package/src/fontawesome/svgs/brands/napster.svg +1 -0
  387. package/src/fontawesome/svgs/brands/neos.svg +1 -0
  388. package/src/fontawesome/svgs/brands/nimblr.svg +1 -0
  389. package/src/fontawesome/svgs/brands/node-js.svg +1 -0
  390. package/src/fontawesome/svgs/brands/node.svg +1 -0
  391. package/src/fontawesome/svgs/brands/npm.svg +1 -0
  392. package/src/fontawesome/svgs/brands/ns8.svg +1 -0
  393. package/src/fontawesome/svgs/brands/nutritionix.svg +1 -0
  394. package/src/fontawesome/svgs/brands/octopus-deploy.svg +1 -0
  395. package/src/fontawesome/svgs/brands/odnoklassniki-square.svg +1 -0
  396. package/src/fontawesome/svgs/brands/odnoklassniki.svg +1 -0
  397. package/src/fontawesome/svgs/brands/old-republic.svg +1 -0
  398. package/src/fontawesome/svgs/brands/opencart.svg +1 -0
  399. package/src/fontawesome/svgs/brands/openid.svg +1 -0
  400. package/src/fontawesome/svgs/brands/opera.svg +1 -0
  401. package/src/fontawesome/svgs/brands/optin-monster.svg +1 -0
  402. package/src/fontawesome/svgs/brands/orcid.svg +1 -0
  403. package/src/fontawesome/svgs/brands/osi.svg +1 -0
  404. package/src/fontawesome/svgs/brands/page4.svg +1 -0
  405. package/src/fontawesome/svgs/brands/pagelines.svg +1 -0
  406. package/src/fontawesome/svgs/brands/palfed.svg +1 -0
  407. package/src/fontawesome/svgs/brands/patreon.svg +1 -0
  408. package/src/fontawesome/svgs/brands/paypal.svg +1 -0
  409. package/src/fontawesome/svgs/brands/penny-arcade.svg +1 -0
  410. package/src/fontawesome/svgs/brands/perbyte.svg +1 -0
  411. package/src/fontawesome/svgs/brands/periscope.svg +1 -0
  412. package/src/fontawesome/svgs/brands/phabricator.svg +1 -0
  413. package/src/fontawesome/svgs/brands/phoenix-framework.svg +1 -0
  414. package/src/fontawesome/svgs/brands/phoenix-squadron.svg +1 -0
  415. package/src/fontawesome/svgs/brands/php.svg +1 -0
  416. package/src/fontawesome/svgs/brands/pied-piper-alt.svg +1 -0
  417. package/src/fontawesome/svgs/brands/pied-piper-hat.svg +1 -0
  418. package/src/fontawesome/svgs/brands/pied-piper-pp.svg +1 -0
  419. package/src/fontawesome/svgs/brands/pied-piper-square.svg +1 -0
  420. package/src/fontawesome/svgs/brands/pied-piper.svg +1 -0
  421. package/src/fontawesome/svgs/brands/pinterest-p.svg +1 -0
  422. package/src/fontawesome/svgs/brands/pinterest-square.svg +1 -0
  423. package/src/fontawesome/svgs/brands/pinterest.svg +1 -0
  424. package/src/fontawesome/svgs/brands/playstation.svg +1 -0
  425. package/src/fontawesome/svgs/brands/product-hunt.svg +1 -0
  426. package/src/fontawesome/svgs/brands/pushed.svg +1 -0
  427. package/src/fontawesome/svgs/brands/python.svg +1 -0
  428. package/src/fontawesome/svgs/brands/qq.svg +1 -0
  429. package/src/fontawesome/svgs/brands/quinscape.svg +1 -0
  430. package/src/fontawesome/svgs/brands/quora.svg +1 -0
  431. package/src/fontawesome/svgs/brands/r-project.svg +1 -0
  432. package/src/fontawesome/svgs/brands/raspberry-pi.svg +1 -0
  433. package/src/fontawesome/svgs/brands/ravelry.svg +1 -0
  434. package/src/fontawesome/svgs/brands/react.svg +1 -0
  435. package/src/fontawesome/svgs/brands/reacteurope.svg +1 -0
  436. package/src/fontawesome/svgs/brands/readme.svg +1 -0
  437. package/src/fontawesome/svgs/brands/rebel.svg +1 -0
  438. package/src/fontawesome/svgs/brands/red-river.svg +1 -0
  439. package/src/fontawesome/svgs/brands/reddit-alien.svg +1 -0
  440. package/src/fontawesome/svgs/brands/reddit-square.svg +1 -0
  441. package/src/fontawesome/svgs/brands/reddit.svg +1 -0
  442. package/src/fontawesome/svgs/brands/redhat.svg +1 -0
  443. package/src/fontawesome/svgs/brands/renren.svg +1 -0
  444. package/src/fontawesome/svgs/brands/replyd.svg +1 -0
  445. package/src/fontawesome/svgs/brands/researchgate.svg +1 -0
  446. package/src/fontawesome/svgs/brands/resolving.svg +1 -0
  447. package/src/fontawesome/svgs/brands/rev.svg +1 -0
  448. package/src/fontawesome/svgs/brands/rocketchat.svg +1 -0
  449. package/src/fontawesome/svgs/brands/rockrms.svg +1 -0
  450. package/src/fontawesome/svgs/brands/rust.svg +1 -0
  451. package/src/fontawesome/svgs/brands/safari.svg +1 -0
  452. package/src/fontawesome/svgs/brands/salesforce.svg +1 -0
  453. package/src/fontawesome/svgs/brands/sass.svg +1 -0
  454. package/src/fontawesome/svgs/brands/schlix.svg +1 -0
  455. package/src/fontawesome/svgs/brands/scribd.svg +1 -0
  456. package/src/fontawesome/svgs/brands/searchengin.svg +1 -0
  457. package/src/fontawesome/svgs/brands/sellcast.svg +1 -0
  458. package/src/fontawesome/svgs/brands/sellsy.svg +1 -0
  459. package/src/fontawesome/svgs/brands/servicestack.svg +1 -0
  460. package/src/fontawesome/svgs/brands/shirtsinbulk.svg +1 -0
  461. package/src/fontawesome/svgs/brands/shopify.svg +1 -0
  462. package/src/fontawesome/svgs/brands/shopware.svg +1 -0
  463. package/src/fontawesome/svgs/brands/simplybuilt.svg +1 -0
  464. package/src/fontawesome/svgs/brands/sistrix.svg +1 -0
  465. package/src/fontawesome/svgs/brands/sith.svg +1 -0
  466. package/src/fontawesome/svgs/brands/sketch.svg +1 -0
  467. package/src/fontawesome/svgs/brands/skyatlas.svg +1 -0
  468. package/src/fontawesome/svgs/brands/skype.svg +1 -0
  469. package/src/fontawesome/svgs/brands/slack-hash.svg +1 -0
  470. package/src/fontawesome/svgs/brands/slack.svg +1 -0
  471. package/src/fontawesome/svgs/brands/slideshare.svg +1 -0
  472. package/src/fontawesome/svgs/brands/snapchat-ghost.svg +1 -0
  473. package/src/fontawesome/svgs/brands/snapchat-square.svg +1 -0
  474. package/src/fontawesome/svgs/brands/snapchat.svg +1 -0
  475. package/src/fontawesome/svgs/brands/soundcloud.svg +1 -0
  476. package/src/fontawesome/svgs/brands/sourcetree.svg +1 -0
  477. package/src/fontawesome/svgs/brands/speakap.svg +1 -0
  478. package/src/fontawesome/svgs/brands/speaker-deck.svg +1 -0
  479. package/src/fontawesome/svgs/brands/spotify.svg +1 -0
  480. package/src/fontawesome/svgs/brands/squarespace.svg +1 -0
  481. package/src/fontawesome/svgs/brands/stack-exchange.svg +1 -0
  482. package/src/fontawesome/svgs/brands/stack-overflow.svg +1 -0
  483. package/src/fontawesome/svgs/brands/stackpath.svg +1 -0
  484. package/src/fontawesome/svgs/brands/staylinked.svg +1 -0
  485. package/src/fontawesome/svgs/brands/steam-square.svg +1 -0
  486. package/src/fontawesome/svgs/brands/steam-symbol.svg +1 -0
  487. package/src/fontawesome/svgs/brands/steam.svg +1 -0
  488. package/src/fontawesome/svgs/brands/sticker-mule.svg +1 -0
  489. package/src/fontawesome/svgs/brands/strava.svg +1 -0
  490. package/src/fontawesome/svgs/brands/stripe-s.svg +1 -0
  491. package/src/fontawesome/svgs/brands/stripe.svg +1 -0
  492. package/src/fontawesome/svgs/brands/studiovinari.svg +1 -0
  493. package/src/fontawesome/svgs/brands/stumbleupon-circle.svg +1 -0
  494. package/src/fontawesome/svgs/brands/stumbleupon.svg +1 -0
  495. package/src/fontawesome/svgs/brands/superpowers.svg +1 -0
  496. package/src/fontawesome/svgs/brands/supple.svg +1 -0
  497. package/src/fontawesome/svgs/brands/suse.svg +1 -0
  498. package/src/fontawesome/svgs/brands/swift.svg +1 -0
  499. package/src/fontawesome/svgs/brands/symfony.svg +1 -0
  500. package/src/fontawesome/svgs/brands/teamspeak.svg +1 -0
  501. package/src/fontawesome/svgs/brands/telegram-plane.svg +1 -0
  502. package/src/fontawesome/svgs/brands/telegram.svg +1 -0
  503. package/src/fontawesome/svgs/brands/tencent-weibo.svg +1 -0
  504. package/src/fontawesome/svgs/brands/the-red-yeti.svg +1 -0
  505. package/src/fontawesome/svgs/brands/themeco.svg +1 -0
  506. package/src/fontawesome/svgs/brands/themeisle.svg +1 -0
  507. package/src/fontawesome/svgs/brands/think-peaks.svg +1 -0
  508. package/src/fontawesome/svgs/brands/tiktok.svg +1 -0
  509. package/src/fontawesome/svgs/brands/trade-federation.svg +1 -0
  510. package/src/fontawesome/svgs/brands/trello.svg +1 -0
  511. package/src/fontawesome/svgs/brands/tripadvisor.svg +1 -0
  512. package/src/fontawesome/svgs/brands/tumblr-square.svg +1 -0
  513. package/src/fontawesome/svgs/brands/tumblr.svg +1 -0
  514. package/src/fontawesome/svgs/brands/twitch.svg +1 -0
  515. package/src/fontawesome/svgs/brands/twitter-square.svg +1 -0
  516. package/src/fontawesome/svgs/brands/twitter.svg +1 -0
  517. package/src/fontawesome/svgs/brands/typo3.svg +1 -0
  518. package/src/fontawesome/svgs/brands/uber.svg +1 -0
  519. package/src/fontawesome/svgs/brands/ubuntu.svg +1 -0
  520. package/src/fontawesome/svgs/brands/uikit.svg +1 -0
  521. package/src/fontawesome/svgs/brands/umbraco.svg +1 -0
  522. package/src/fontawesome/svgs/brands/uncharted.svg +1 -0
  523. package/src/fontawesome/svgs/brands/uniregistry.svg +1 -0
  524. package/src/fontawesome/svgs/brands/unity.svg +1 -0
  525. package/src/fontawesome/svgs/brands/unsplash.svg +1 -0
  526. package/src/fontawesome/svgs/brands/untappd.svg +1 -0
  527. package/src/fontawesome/svgs/brands/ups.svg +1 -0
  528. package/src/fontawesome/svgs/brands/usb.svg +1 -0
  529. package/src/fontawesome/svgs/brands/usps.svg +1 -0
  530. package/src/fontawesome/svgs/brands/ussunnah.svg +1 -0
  531. package/src/fontawesome/svgs/brands/vaadin.svg +1 -0
  532. package/src/fontawesome/svgs/brands/viacoin.svg +1 -0
  533. package/src/fontawesome/svgs/brands/viadeo-square.svg +1 -0
  534. package/src/fontawesome/svgs/brands/viadeo.svg +1 -0
  535. package/src/fontawesome/svgs/brands/viber.svg +1 -0
  536. package/src/fontawesome/svgs/brands/vimeo-square.svg +1 -0
  537. package/src/fontawesome/svgs/brands/vimeo-v.svg +1 -0
  538. package/src/fontawesome/svgs/brands/vimeo.svg +1 -0
  539. package/src/fontawesome/svgs/brands/vine.svg +1 -0
  540. package/src/fontawesome/svgs/brands/vk.svg +1 -0
  541. package/src/fontawesome/svgs/brands/vnv.svg +1 -0
  542. package/src/fontawesome/svgs/brands/vuejs.svg +1 -0
  543. package/src/fontawesome/svgs/brands/watchman-monitoring.svg +1 -0
  544. package/src/fontawesome/svgs/brands/waze.svg +1 -0
  545. package/src/fontawesome/svgs/brands/weebly.svg +1 -0
  546. package/src/fontawesome/svgs/brands/weibo.svg +1 -0
  547. package/src/fontawesome/svgs/brands/weixin.svg +1 -0
  548. package/src/fontawesome/svgs/brands/whatsapp-square.svg +1 -0
  549. package/src/fontawesome/svgs/brands/whatsapp.svg +1 -0
  550. package/src/fontawesome/svgs/brands/whmcs.svg +1 -0
  551. package/src/fontawesome/svgs/brands/wikipedia-w.svg +1 -0
  552. package/src/fontawesome/svgs/brands/windows.svg +1 -0
  553. package/src/fontawesome/svgs/brands/wix.svg +1 -0
  554. package/src/fontawesome/svgs/brands/wizards-of-the-coast.svg +1 -0
  555. package/src/fontawesome/svgs/brands/wodu.svg +1 -0
  556. package/src/fontawesome/svgs/brands/wolf-pack-battalion.svg +1 -0
  557. package/src/fontawesome/svgs/brands/wordpress-simple.svg +1 -0
  558. package/src/fontawesome/svgs/brands/wordpress.svg +1 -0
  559. package/src/fontawesome/svgs/brands/wpbeginner.svg +1 -0
  560. package/src/fontawesome/svgs/brands/wpexplorer.svg +1 -0
  561. package/src/fontawesome/svgs/brands/wpforms.svg +1 -0
  562. package/src/fontawesome/svgs/brands/wpressr.svg +1 -0
  563. package/src/fontawesome/svgs/brands/xbox.svg +1 -0
  564. package/src/fontawesome/svgs/brands/xing-square.svg +1 -0
  565. package/src/fontawesome/svgs/brands/xing.svg +1 -0
  566. package/src/fontawesome/svgs/brands/y-combinator.svg +1 -0
  567. package/src/fontawesome/svgs/brands/yahoo.svg +1 -0
  568. package/src/fontawesome/svgs/brands/yammer.svg +1 -0
  569. package/src/fontawesome/svgs/brands/yandex-international.svg +1 -0
  570. package/src/fontawesome/svgs/brands/yandex.svg +1 -0
  571. package/src/fontawesome/svgs/brands/yarn.svg +1 -0
  572. package/src/fontawesome/svgs/brands/yelp.svg +1 -0
  573. package/src/fontawesome/svgs/brands/yoast.svg +1 -0
  574. package/src/fontawesome/svgs/brands/youtube-square.svg +1 -0
  575. package/src/fontawesome/svgs/brands/youtube.svg +1 -0
  576. package/src/fontawesome/svgs/brands/zhihu.svg +1 -0
  577. package/src/fontawesome/svgs/regular/address-book.svg +1 -0
  578. package/src/fontawesome/svgs/regular/address-card.svg +1 -0
  579. package/src/fontawesome/svgs/regular/angry.svg +1 -0
  580. package/src/fontawesome/svgs/regular/arrow-alt-circle-down.svg +1 -0
  581. package/src/fontawesome/svgs/regular/arrow-alt-circle-left.svg +1 -0
  582. package/src/fontawesome/svgs/regular/arrow-alt-circle-right.svg +1 -0
  583. package/src/fontawesome/svgs/regular/arrow-alt-circle-up.svg +1 -0
  584. package/src/fontawesome/svgs/regular/bell-slash.svg +1 -0
  585. package/src/fontawesome/svgs/regular/bell.svg +1 -0
  586. package/src/fontawesome/svgs/regular/bookmark.svg +1 -0
  587. package/src/fontawesome/svgs/regular/building.svg +1 -0
  588. package/src/fontawesome/svgs/regular/calendar-alt.svg +1 -0
  589. package/src/fontawesome/svgs/regular/calendar-check.svg +1 -0
  590. package/src/fontawesome/svgs/regular/calendar-minus.svg +1 -0
  591. package/src/fontawesome/svgs/regular/calendar-plus.svg +1 -0
  592. package/src/fontawesome/svgs/regular/calendar-times.svg +1 -0
  593. package/src/fontawesome/svgs/regular/calendar.svg +1 -0
  594. package/src/fontawesome/svgs/regular/caret-square-down.svg +1 -0
  595. package/src/fontawesome/svgs/regular/caret-square-left.svg +1 -0
  596. package/src/fontawesome/svgs/regular/caret-square-right.svg +1 -0
  597. package/src/fontawesome/svgs/regular/caret-square-up.svg +1 -0
  598. package/src/fontawesome/svgs/regular/chart-bar.svg +1 -0
  599. package/src/fontawesome/svgs/regular/check-circle.svg +1 -0
  600. package/src/fontawesome/svgs/regular/check-square.svg +1 -0
  601. package/src/fontawesome/svgs/regular/circle.svg +1 -0
  602. package/src/fontawesome/svgs/regular/clipboard.svg +1 -0
  603. package/src/fontawesome/svgs/regular/clock.svg +1 -0
  604. package/src/fontawesome/svgs/regular/clone.svg +1 -0
  605. package/src/fontawesome/svgs/regular/closed-captioning.svg +1 -0
  606. package/src/fontawesome/svgs/regular/comment-alt.svg +1 -0
  607. package/src/fontawesome/svgs/regular/comment-dots.svg +1 -0
  608. package/src/fontawesome/svgs/regular/comment.svg +1 -0
  609. package/src/fontawesome/svgs/regular/comments.svg +1 -0
  610. package/src/fontawesome/svgs/regular/compass.svg +1 -0
  611. package/src/fontawesome/svgs/regular/copy.svg +1 -0
  612. package/src/fontawesome/svgs/regular/copyright.svg +1 -0
  613. package/src/fontawesome/svgs/regular/credit-card.svg +1 -0
  614. package/src/fontawesome/svgs/regular/dizzy.svg +1 -0
  615. package/src/fontawesome/svgs/regular/dot-circle.svg +1 -0
  616. package/src/fontawesome/svgs/regular/edit.svg +1 -0
  617. package/src/fontawesome/svgs/regular/envelope-open.svg +1 -0
  618. package/src/fontawesome/svgs/regular/envelope.svg +1 -0
  619. package/src/fontawesome/svgs/regular/eye-slash.svg +1 -0
  620. package/src/fontawesome/svgs/regular/eye.svg +1 -0
  621. package/src/fontawesome/svgs/regular/file-alt.svg +1 -0
  622. package/src/fontawesome/svgs/regular/file-archive.svg +1 -0
  623. package/src/fontawesome/svgs/regular/file-audio.svg +1 -0
  624. package/src/fontawesome/svgs/regular/file-code.svg +1 -0
  625. package/src/fontawesome/svgs/regular/file-excel.svg +1 -0
  626. package/src/fontawesome/svgs/regular/file-image.svg +1 -0
  627. package/src/fontawesome/svgs/regular/file-pdf.svg +1 -0
  628. package/src/fontawesome/svgs/regular/file-powerpoint.svg +1 -0
  629. package/src/fontawesome/svgs/regular/file-video.svg +1 -0
  630. package/src/fontawesome/svgs/regular/file-word.svg +1 -0
  631. package/src/fontawesome/svgs/regular/file.svg +1 -0
  632. package/src/fontawesome/svgs/regular/flag.svg +1 -0
  633. package/src/fontawesome/svgs/regular/flushed.svg +1 -0
  634. package/src/fontawesome/svgs/regular/folder-open.svg +1 -0
  635. package/src/fontawesome/svgs/regular/folder.svg +1 -0
  636. package/src/fontawesome/svgs/regular/font-awesome-logo-full.svg +1 -0
  637. package/src/fontawesome/svgs/regular/frown-open.svg +1 -0
  638. package/src/fontawesome/svgs/regular/frown.svg +1 -0
  639. package/src/fontawesome/svgs/regular/futbol.svg +1 -0
  640. package/src/fontawesome/svgs/regular/gem.svg +1 -0
  641. package/src/fontawesome/svgs/regular/grimace.svg +1 -0
  642. package/src/fontawesome/svgs/regular/grin-alt.svg +1 -0
  643. package/src/fontawesome/svgs/regular/grin-beam-sweat.svg +1 -0
  644. package/src/fontawesome/svgs/regular/grin-beam.svg +1 -0
  645. package/src/fontawesome/svgs/regular/grin-hearts.svg +1 -0
  646. package/src/fontawesome/svgs/regular/grin-squint-tears.svg +1 -0
  647. package/src/fontawesome/svgs/regular/grin-squint.svg +1 -0
  648. package/src/fontawesome/svgs/regular/grin-stars.svg +1 -0
  649. package/src/fontawesome/svgs/regular/grin-tears.svg +1 -0
  650. package/src/fontawesome/svgs/regular/grin-tongue-squint.svg +1 -0
  651. package/src/fontawesome/svgs/regular/grin-tongue-wink.svg +1 -0
  652. package/src/fontawesome/svgs/regular/grin-tongue.svg +1 -0
  653. package/src/fontawesome/svgs/regular/grin-wink.svg +1 -0
  654. package/src/fontawesome/svgs/regular/grin.svg +1 -0
  655. package/src/fontawesome/svgs/regular/hand-lizard.svg +1 -0
  656. package/src/fontawesome/svgs/regular/hand-paper.svg +1 -0
  657. package/src/fontawesome/svgs/regular/hand-peace.svg +1 -0
  658. package/src/fontawesome/svgs/regular/hand-point-down.svg +1 -0
  659. package/src/fontawesome/svgs/regular/hand-point-left.svg +1 -0
  660. package/src/fontawesome/svgs/regular/hand-point-right.svg +1 -0
  661. package/src/fontawesome/svgs/regular/hand-point-up.svg +1 -0
  662. package/src/fontawesome/svgs/regular/hand-pointer.svg +1 -0
  663. package/src/fontawesome/svgs/regular/hand-rock.svg +1 -0
  664. package/src/fontawesome/svgs/regular/hand-scissors.svg +1 -0
  665. package/src/fontawesome/svgs/regular/hand-spock.svg +1 -0
  666. package/src/fontawesome/svgs/regular/handshake.svg +1 -0
  667. package/src/fontawesome/svgs/regular/hdd.svg +1 -0
  668. package/src/fontawesome/svgs/regular/heart.svg +1 -0
  669. package/src/fontawesome/svgs/regular/hospital.svg +1 -0
  670. package/src/fontawesome/svgs/regular/hourglass.svg +1 -0
  671. package/src/fontawesome/svgs/regular/id-badge.svg +1 -0
  672. package/src/fontawesome/svgs/regular/id-card.svg +1 -0
  673. package/src/fontawesome/svgs/regular/image.svg +1 -0
  674. package/src/fontawesome/svgs/regular/images.svg +1 -0
  675. package/src/fontawesome/svgs/regular/keyboard.svg +1 -0
  676. package/src/fontawesome/svgs/regular/kiss-beam.svg +1 -0
  677. package/src/fontawesome/svgs/regular/kiss-wink-heart.svg +1 -0
  678. package/src/fontawesome/svgs/regular/kiss.svg +1 -0
  679. package/src/fontawesome/svgs/regular/laugh-beam.svg +1 -0
  680. package/src/fontawesome/svgs/regular/laugh-squint.svg +1 -0
  681. package/src/fontawesome/svgs/regular/laugh-wink.svg +1 -0
  682. package/src/fontawesome/svgs/regular/laugh.svg +1 -0
  683. package/src/fontawesome/svgs/regular/lemon.svg +1 -0
  684. package/src/fontawesome/svgs/regular/life-ring.svg +1 -0
  685. package/src/fontawesome/svgs/regular/lightbulb.svg +1 -0
  686. package/src/fontawesome/svgs/regular/list-alt.svg +1 -0
  687. package/src/fontawesome/svgs/regular/map.svg +1 -0
  688. package/src/fontawesome/svgs/regular/meh-blank.svg +1 -0
  689. package/src/fontawesome/svgs/regular/meh-rolling-eyes.svg +1 -0
  690. package/src/fontawesome/svgs/regular/meh.svg +1 -0
  691. package/src/fontawesome/svgs/regular/minus-square.svg +1 -0
  692. package/src/fontawesome/svgs/regular/money-bill-alt.svg +1 -0
  693. package/src/fontawesome/svgs/regular/moon.svg +1 -0
  694. package/src/fontawesome/svgs/regular/newspaper.svg +1 -0
  695. package/src/fontawesome/svgs/regular/object-group.svg +1 -0
  696. package/src/fontawesome/svgs/regular/object-ungroup.svg +1 -0
  697. package/src/fontawesome/svgs/regular/paper-plane.svg +1 -0
  698. package/src/fontawesome/svgs/regular/pause-circle.svg +1 -0
  699. package/src/fontawesome/svgs/regular/play-circle.svg +1 -0
  700. package/src/fontawesome/svgs/regular/plus-square.svg +1 -0
  701. package/src/fontawesome/svgs/regular/question-circle.svg +1 -0
  702. package/src/fontawesome/svgs/regular/registered.svg +1 -0
  703. package/src/fontawesome/svgs/regular/sad-cry.svg +1 -0
  704. package/src/fontawesome/svgs/regular/sad-tear.svg +1 -0
  705. package/src/fontawesome/svgs/regular/save.svg +1 -0
  706. package/src/fontawesome/svgs/regular/share-square.svg +1 -0
  707. package/src/fontawesome/svgs/regular/smile-beam.svg +1 -0
  708. package/src/fontawesome/svgs/regular/smile-wink.svg +1 -0
  709. package/src/fontawesome/svgs/regular/smile.svg +1 -0
  710. package/src/fontawesome/svgs/regular/snowflake.svg +1 -0
  711. package/src/fontawesome/svgs/regular/square.svg +1 -0
  712. package/src/fontawesome/svgs/regular/star-half.svg +1 -0
  713. package/src/fontawesome/svgs/regular/star.svg +1 -0
  714. package/src/fontawesome/svgs/regular/sticky-note.svg +1 -0
  715. package/src/fontawesome/svgs/regular/stop-circle.svg +1 -0
  716. package/src/fontawesome/svgs/regular/sun.svg +1 -0
  717. package/src/fontawesome/svgs/regular/surprise.svg +1 -0
  718. package/src/fontawesome/svgs/regular/thumbs-down.svg +1 -0
  719. package/src/fontawesome/svgs/regular/thumbs-up.svg +1 -0
  720. package/src/fontawesome/svgs/regular/times-circle.svg +1 -0
  721. package/src/fontawesome/svgs/regular/tired.svg +1 -0
  722. package/src/fontawesome/svgs/regular/trash-alt.svg +1 -0
  723. package/src/fontawesome/svgs/regular/user-circle.svg +1 -0
  724. package/src/fontawesome/svgs/regular/user.svg +1 -0
  725. package/src/fontawesome/svgs/regular/window-close.svg +1 -0
  726. package/src/fontawesome/svgs/regular/window-maximize.svg +1 -0
  727. package/src/fontawesome/svgs/regular/window-minimize.svg +1 -0
  728. package/src/fontawesome/svgs/regular/window-restore.svg +1 -0
  729. package/src/fontawesome/svgs/solid/ad.svg +1 -0
  730. package/src/fontawesome/svgs/solid/address-book.svg +1 -0
  731. package/src/fontawesome/svgs/solid/address-card.svg +1 -0
  732. package/src/fontawesome/svgs/solid/adjust.svg +1 -0
  733. package/src/fontawesome/svgs/solid/air-freshener.svg +1 -0
  734. package/src/fontawesome/svgs/solid/align-center.svg +1 -0
  735. package/src/fontawesome/svgs/solid/align-justify.svg +1 -0
  736. package/src/fontawesome/svgs/solid/align-left.svg +1 -0
  737. package/src/fontawesome/svgs/solid/align-right.svg +1 -0
  738. package/src/fontawesome/svgs/solid/allergies.svg +1 -0
  739. package/src/fontawesome/svgs/solid/ambulance.svg +1 -0
  740. package/src/fontawesome/svgs/solid/american-sign-language-interpreting.svg +1 -0
  741. package/src/fontawesome/svgs/solid/anchor.svg +1 -0
  742. package/src/fontawesome/svgs/solid/angle-double-down.svg +1 -0
  743. package/src/fontawesome/svgs/solid/angle-double-left.svg +1 -0
  744. package/src/fontawesome/svgs/solid/angle-double-right.svg +1 -0
  745. package/src/fontawesome/svgs/solid/angle-double-up.svg +1 -0
  746. package/src/fontawesome/svgs/solid/angle-down.svg +1 -0
  747. package/src/fontawesome/svgs/solid/angle-left.svg +1 -0
  748. package/src/fontawesome/svgs/solid/angle-right.svg +1 -0
  749. package/src/fontawesome/svgs/solid/angle-up.svg +1 -0
  750. package/src/fontawesome/svgs/solid/angry.svg +1 -0
  751. package/src/fontawesome/svgs/solid/ankh.svg +1 -0
  752. package/src/fontawesome/svgs/solid/apple-alt.svg +1 -0
  753. package/src/fontawesome/svgs/solid/archive.svg +1 -0
  754. package/src/fontawesome/svgs/solid/archway.svg +1 -0
  755. package/src/fontawesome/svgs/solid/arrow-alt-circle-down.svg +1 -0
  756. package/src/fontawesome/svgs/solid/arrow-alt-circle-left.svg +1 -0
  757. package/src/fontawesome/svgs/solid/arrow-alt-circle-right.svg +1 -0
  758. package/src/fontawesome/svgs/solid/arrow-alt-circle-up.svg +1 -0
  759. package/src/fontawesome/svgs/solid/arrow-circle-down.svg +1 -0
  760. package/src/fontawesome/svgs/solid/arrow-circle-left.svg +1 -0
  761. package/src/fontawesome/svgs/solid/arrow-circle-right.svg +1 -0
  762. package/src/fontawesome/svgs/solid/arrow-circle-up.svg +1 -0
  763. package/src/fontawesome/svgs/solid/arrow-down.svg +1 -0
  764. package/src/fontawesome/svgs/solid/arrow-left.svg +1 -0
  765. package/src/fontawesome/svgs/solid/arrow-right.svg +1 -0
  766. package/src/fontawesome/svgs/solid/arrow-up.svg +1 -0
  767. package/src/fontawesome/svgs/solid/arrows-alt-h.svg +1 -0
  768. package/src/fontawesome/svgs/solid/arrows-alt-v.svg +1 -0
  769. package/src/fontawesome/svgs/solid/arrows-alt.svg +1 -0
  770. package/src/fontawesome/svgs/solid/assistive-listening-systems.svg +1 -0
  771. package/src/fontawesome/svgs/solid/asterisk.svg +1 -0
  772. package/src/fontawesome/svgs/solid/at.svg +1 -0
  773. package/src/fontawesome/svgs/solid/atlas.svg +1 -0
  774. package/src/fontawesome/svgs/solid/atom.svg +1 -0
  775. package/src/fontawesome/svgs/solid/audio-description.svg +1 -0
  776. package/src/fontawesome/svgs/solid/award.svg +1 -0
  777. package/src/fontawesome/svgs/solid/baby-carriage.svg +1 -0
  778. package/src/fontawesome/svgs/solid/baby.svg +1 -0
  779. package/src/fontawesome/svgs/solid/backspace.svg +1 -0
  780. package/src/fontawesome/svgs/solid/backward.svg +1 -0
  781. package/src/fontawesome/svgs/solid/bacon.svg +1 -0
  782. package/src/fontawesome/svgs/solid/bacteria.svg +1 -0
  783. package/src/fontawesome/svgs/solid/bacterium.svg +1 -0
  784. package/src/fontawesome/svgs/solid/bahai.svg +1 -0
  785. package/src/fontawesome/svgs/solid/balance-scale-left.svg +1 -0
  786. package/src/fontawesome/svgs/solid/balance-scale-right.svg +1 -0
  787. package/src/fontawesome/svgs/solid/balance-scale.svg +1 -0
  788. package/src/fontawesome/svgs/solid/ban.svg +1 -0
  789. package/src/fontawesome/svgs/solid/band-aid.svg +1 -0
  790. package/src/fontawesome/svgs/solid/barcode.svg +1 -0
  791. package/src/fontawesome/svgs/solid/bars.svg +1 -0
  792. package/src/fontawesome/svgs/solid/baseball-ball.svg +1 -0
  793. package/src/fontawesome/svgs/solid/basketball-ball.svg +1 -0
  794. package/src/fontawesome/svgs/solid/bath.svg +1 -0
  795. package/src/fontawesome/svgs/solid/battery-empty.svg +1 -0
  796. package/src/fontawesome/svgs/solid/battery-full.svg +1 -0
  797. package/src/fontawesome/svgs/solid/battery-half.svg +1 -0
  798. package/src/fontawesome/svgs/solid/battery-quarter.svg +1 -0
  799. package/src/fontawesome/svgs/solid/battery-three-quarters.svg +1 -0
  800. package/src/fontawesome/svgs/solid/bed.svg +1 -0
  801. package/src/fontawesome/svgs/solid/beer.svg +1 -0
  802. package/src/fontawesome/svgs/solid/bell-slash.svg +1 -0
  803. package/src/fontawesome/svgs/solid/bell.svg +1 -0
  804. package/src/fontawesome/svgs/solid/bezier-curve.svg +1 -0
  805. package/src/fontawesome/svgs/solid/bible.svg +1 -0
  806. package/src/fontawesome/svgs/solid/bicycle.svg +1 -0
  807. package/src/fontawesome/svgs/solid/biking.svg +1 -0
  808. package/src/fontawesome/svgs/solid/binoculars.svg +1 -0
  809. package/src/fontawesome/svgs/solid/biohazard.svg +1 -0
  810. package/src/fontawesome/svgs/solid/birthday-cake.svg +1 -0
  811. package/src/fontawesome/svgs/solid/blender-phone.svg +1 -0
  812. package/src/fontawesome/svgs/solid/blender.svg +1 -0
  813. package/src/fontawesome/svgs/solid/blind.svg +1 -0
  814. package/src/fontawesome/svgs/solid/blog.svg +1 -0
  815. package/src/fontawesome/svgs/solid/bold.svg +1 -0
  816. package/src/fontawesome/svgs/solid/bolt.svg +1 -0
  817. package/src/fontawesome/svgs/solid/bomb.svg +1 -0
  818. package/src/fontawesome/svgs/solid/bone.svg +1 -0
  819. package/src/fontawesome/svgs/solid/bong.svg +1 -0
  820. package/src/fontawesome/svgs/solid/book-dead.svg +1 -0
  821. package/src/fontawesome/svgs/solid/book-medical.svg +1 -0
  822. package/src/fontawesome/svgs/solid/book-open.svg +1 -0
  823. package/src/fontawesome/svgs/solid/book-reader.svg +1 -0
  824. package/src/fontawesome/svgs/solid/book.svg +1 -0
  825. package/src/fontawesome/svgs/solid/bookmark.svg +1 -0
  826. package/src/fontawesome/svgs/solid/border-all.svg +1 -0
  827. package/src/fontawesome/svgs/solid/border-none.svg +1 -0
  828. package/src/fontawesome/svgs/solid/border-style.svg +1 -0
  829. package/src/fontawesome/svgs/solid/bowling-ball.svg +1 -0
  830. package/src/fontawesome/svgs/solid/box-open.svg +1 -0
  831. package/src/fontawesome/svgs/solid/box-tissue.svg +1 -0
  832. package/src/fontawesome/svgs/solid/box.svg +1 -0
  833. package/src/fontawesome/svgs/solid/boxes.svg +1 -0
  834. package/src/fontawesome/svgs/solid/braille.svg +1 -0
  835. package/src/fontawesome/svgs/solid/brain.svg +1 -0
  836. package/src/fontawesome/svgs/solid/bread-slice.svg +1 -0
  837. package/src/fontawesome/svgs/solid/briefcase-medical.svg +1 -0
  838. package/src/fontawesome/svgs/solid/briefcase.svg +1 -0
  839. package/src/fontawesome/svgs/solid/broadcast-tower.svg +1 -0
  840. package/src/fontawesome/svgs/solid/broom.svg +1 -0
  841. package/src/fontawesome/svgs/solid/brush.svg +1 -0
  842. package/src/fontawesome/svgs/solid/bug.svg +1 -0
  843. package/src/fontawesome/svgs/solid/building.svg +1 -0
  844. package/src/fontawesome/svgs/solid/bullhorn.svg +1 -0
  845. package/src/fontawesome/svgs/solid/bullseye.svg +1 -0
  846. package/src/fontawesome/svgs/solid/burn.svg +1 -0
  847. package/src/fontawesome/svgs/solid/bus-alt.svg +1 -0
  848. package/src/fontawesome/svgs/solid/bus.svg +1 -0
  849. package/src/fontawesome/svgs/solid/business-time.svg +1 -0
  850. package/src/fontawesome/svgs/solid/calculator.svg +1 -0
  851. package/src/fontawesome/svgs/solid/calendar-alt.svg +1 -0
  852. package/src/fontawesome/svgs/solid/calendar-check.svg +1 -0
  853. package/src/fontawesome/svgs/solid/calendar-day.svg +1 -0
  854. package/src/fontawesome/svgs/solid/calendar-minus.svg +1 -0
  855. package/src/fontawesome/svgs/solid/calendar-plus.svg +1 -0
  856. package/src/fontawesome/svgs/solid/calendar-times.svg +1 -0
  857. package/src/fontawesome/svgs/solid/calendar-week.svg +1 -0
  858. package/src/fontawesome/svgs/solid/calendar.svg +1 -0
  859. package/src/fontawesome/svgs/solid/camera-retro.svg +1 -0
  860. package/src/fontawesome/svgs/solid/camera.svg +1 -0
  861. package/src/fontawesome/svgs/solid/campground.svg +1 -0
  862. package/src/fontawesome/svgs/solid/candy-cane.svg +1 -0
  863. package/src/fontawesome/svgs/solid/cannabis.svg +1 -0
  864. package/src/fontawesome/svgs/solid/capsules.svg +1 -0
  865. package/src/fontawesome/svgs/solid/car-alt.svg +1 -0
  866. package/src/fontawesome/svgs/solid/car-battery.svg +1 -0
  867. package/src/fontawesome/svgs/solid/car-crash.svg +1 -0
  868. package/src/fontawesome/svgs/solid/car-side.svg +1 -0
  869. package/src/fontawesome/svgs/solid/car.svg +1 -0
  870. package/src/fontawesome/svgs/solid/caravan.svg +1 -0
  871. package/src/fontawesome/svgs/solid/caret-down.svg +1 -0
  872. package/src/fontawesome/svgs/solid/caret-left.svg +1 -0
  873. package/src/fontawesome/svgs/solid/caret-right.svg +1 -0
  874. package/src/fontawesome/svgs/solid/caret-square-down.svg +1 -0
  875. package/src/fontawesome/svgs/solid/caret-square-left.svg +1 -0
  876. package/src/fontawesome/svgs/solid/caret-square-right.svg +1 -0
  877. package/src/fontawesome/svgs/solid/caret-square-up.svg +1 -0
  878. package/src/fontawesome/svgs/solid/caret-up.svg +1 -0
  879. package/src/fontawesome/svgs/solid/carrot.svg +1 -0
  880. package/src/fontawesome/svgs/solid/cart-arrow-down.svg +1 -0
  881. package/src/fontawesome/svgs/solid/cart-plus.svg +1 -0
  882. package/src/fontawesome/svgs/solid/cash-register.svg +1 -0
  883. package/src/fontawesome/svgs/solid/cat.svg +1 -0
  884. package/src/fontawesome/svgs/solid/certificate.svg +1 -0
  885. package/src/fontawesome/svgs/solid/chair.svg +1 -0
  886. package/src/fontawesome/svgs/solid/chalkboard-teacher.svg +1 -0
  887. package/src/fontawesome/svgs/solid/chalkboard.svg +1 -0
  888. package/src/fontawesome/svgs/solid/charging-station.svg +1 -0
  889. package/src/fontawesome/svgs/solid/chart-area.svg +1 -0
  890. package/src/fontawesome/svgs/solid/chart-bar.svg +1 -0
  891. package/src/fontawesome/svgs/solid/chart-line.svg +1 -0
  892. package/src/fontawesome/svgs/solid/chart-pie.svg +1 -0
  893. package/src/fontawesome/svgs/solid/check-circle.svg +1 -0
  894. package/src/fontawesome/svgs/solid/check-double.svg +1 -0
  895. package/src/fontawesome/svgs/solid/check-square.svg +1 -0
  896. package/src/fontawesome/svgs/solid/check.svg +1 -0
  897. package/src/fontawesome/svgs/solid/cheese.svg +1 -0
  898. package/src/fontawesome/svgs/solid/chess-bishop.svg +1 -0
  899. package/src/fontawesome/svgs/solid/chess-board.svg +1 -0
  900. package/src/fontawesome/svgs/solid/chess-king.svg +1 -0
  901. package/src/fontawesome/svgs/solid/chess-knight.svg +1 -0
  902. package/src/fontawesome/svgs/solid/chess-pawn.svg +1 -0
  903. package/src/fontawesome/svgs/solid/chess-queen.svg +1 -0
  904. package/src/fontawesome/svgs/solid/chess-rook.svg +1 -0
  905. package/src/fontawesome/svgs/solid/chess.svg +1 -0
  906. package/src/fontawesome/svgs/solid/chevron-circle-down.svg +1 -0
  907. package/src/fontawesome/svgs/solid/chevron-circle-left.svg +1 -0
  908. package/src/fontawesome/svgs/solid/chevron-circle-right.svg +1 -0
  909. package/src/fontawesome/svgs/solid/chevron-circle-up.svg +1 -0
  910. package/src/fontawesome/svgs/solid/chevron-down.svg +1 -0
  911. package/src/fontawesome/svgs/solid/chevron-left.svg +1 -0
  912. package/src/fontawesome/svgs/solid/chevron-right.svg +1 -0
  913. package/src/fontawesome/svgs/solid/chevron-up.svg +1 -0
  914. package/src/fontawesome/svgs/solid/child.svg +1 -0
  915. package/src/fontawesome/svgs/solid/church.svg +1 -0
  916. package/src/fontawesome/svgs/solid/circle-notch.svg +1 -0
  917. package/src/fontawesome/svgs/solid/circle.svg +1 -0
  918. package/src/fontawesome/svgs/solid/city.svg +1 -0
  919. package/src/fontawesome/svgs/solid/clinic-medical.svg +1 -0
  920. package/src/fontawesome/svgs/solid/clipboard-check.svg +1 -0
  921. package/src/fontawesome/svgs/solid/clipboard-list.svg +1 -0
  922. package/src/fontawesome/svgs/solid/clipboard.svg +1 -0
  923. package/src/fontawesome/svgs/solid/clock.svg +1 -0
  924. package/src/fontawesome/svgs/solid/clone.svg +1 -0
  925. package/src/fontawesome/svgs/solid/closed-captioning.svg +1 -0
  926. package/src/fontawesome/svgs/solid/cloud-download-alt.svg +1 -0
  927. package/src/fontawesome/svgs/solid/cloud-meatball.svg +1 -0
  928. package/src/fontawesome/svgs/solid/cloud-moon-rain.svg +1 -0
  929. package/src/fontawesome/svgs/solid/cloud-moon.svg +1 -0
  930. package/src/fontawesome/svgs/solid/cloud-rain.svg +1 -0
  931. package/src/fontawesome/svgs/solid/cloud-showers-heavy.svg +1 -0
  932. package/src/fontawesome/svgs/solid/cloud-sun-rain.svg +1 -0
  933. package/src/fontawesome/svgs/solid/cloud-sun.svg +1 -0
  934. package/src/fontawesome/svgs/solid/cloud-upload-alt.svg +1 -0
  935. package/src/fontawesome/svgs/solid/cloud.svg +1 -0
  936. package/src/fontawesome/svgs/solid/cocktail.svg +1 -0
  937. package/src/fontawesome/svgs/solid/code-branch.svg +1 -0
  938. package/src/fontawesome/svgs/solid/code.svg +1 -0
  939. package/src/fontawesome/svgs/solid/coffee.svg +1 -0
  940. package/src/fontawesome/svgs/solid/cog.svg +1 -0
  941. package/src/fontawesome/svgs/solid/cogs.svg +1 -0
  942. package/src/fontawesome/svgs/solid/coins.svg +1 -0
  943. package/src/fontawesome/svgs/solid/columns.svg +1 -0
  944. package/src/fontawesome/svgs/solid/comment-alt.svg +1 -0
  945. package/src/fontawesome/svgs/solid/comment-dollar.svg +1 -0
  946. package/src/fontawesome/svgs/solid/comment-dots.svg +1 -0
  947. package/src/fontawesome/svgs/solid/comment-medical.svg +1 -0
  948. package/src/fontawesome/svgs/solid/comment-slash.svg +1 -0
  949. package/src/fontawesome/svgs/solid/comment.svg +1 -0
  950. package/src/fontawesome/svgs/solid/comments-dollar.svg +1 -0
  951. package/src/fontawesome/svgs/solid/comments.svg +1 -0
  952. package/src/fontawesome/svgs/solid/compact-disc.svg +1 -0
  953. package/src/fontawesome/svgs/solid/compass.svg +1 -0
  954. package/src/fontawesome/svgs/solid/compress-alt.svg +1 -0
  955. package/src/fontawesome/svgs/solid/compress-arrows-alt.svg +1 -0
  956. package/src/fontawesome/svgs/solid/compress.svg +1 -0
  957. package/src/fontawesome/svgs/solid/concierge-bell.svg +1 -0
  958. package/src/fontawesome/svgs/solid/cookie-bite.svg +1 -0
  959. package/src/fontawesome/svgs/solid/cookie.svg +1 -0
  960. package/src/fontawesome/svgs/solid/copy.svg +1 -0
  961. package/src/fontawesome/svgs/solid/copyright.svg +1 -0
  962. package/src/fontawesome/svgs/solid/couch.svg +1 -0
  963. package/src/fontawesome/svgs/solid/credit-card.svg +1 -0
  964. package/src/fontawesome/svgs/solid/crop-alt.svg +1 -0
  965. package/src/fontawesome/svgs/solid/crop.svg +1 -0
  966. package/src/fontawesome/svgs/solid/cross.svg +1 -0
  967. package/src/fontawesome/svgs/solid/crosshairs.svg +1 -0
  968. package/src/fontawesome/svgs/solid/crow.svg +1 -0
  969. package/src/fontawesome/svgs/solid/crown.svg +1 -0
  970. package/src/fontawesome/svgs/solid/crutch.svg +1 -0
  971. package/src/fontawesome/svgs/solid/cube.svg +1 -0
  972. package/src/fontawesome/svgs/solid/cubes.svg +1 -0
  973. package/src/fontawesome/svgs/solid/cut.svg +1 -0
  974. package/src/fontawesome/svgs/solid/database.svg +1 -0
  975. package/src/fontawesome/svgs/solid/deaf.svg +1 -0
  976. package/src/fontawesome/svgs/solid/democrat.svg +1 -0
  977. package/src/fontawesome/svgs/solid/desktop.svg +1 -0
  978. package/src/fontawesome/svgs/solid/dharmachakra.svg +1 -0
  979. package/src/fontawesome/svgs/solid/diagnoses.svg +1 -0
  980. package/src/fontawesome/svgs/solid/dice-d20.svg +1 -0
  981. package/src/fontawesome/svgs/solid/dice-d6.svg +1 -0
  982. package/src/fontawesome/svgs/solid/dice-five.svg +1 -0
  983. package/src/fontawesome/svgs/solid/dice-four.svg +1 -0
  984. package/src/fontawesome/svgs/solid/dice-one.svg +1 -0
  985. package/src/fontawesome/svgs/solid/dice-six.svg +1 -0
  986. package/src/fontawesome/svgs/solid/dice-three.svg +1 -0
  987. package/src/fontawesome/svgs/solid/dice-two.svg +1 -0
  988. package/src/fontawesome/svgs/solid/dice.svg +1 -0
  989. package/src/fontawesome/svgs/solid/digital-tachograph.svg +1 -0
  990. package/src/fontawesome/svgs/solid/directions.svg +1 -0
  991. package/src/fontawesome/svgs/solid/disease.svg +1 -0
  992. package/src/fontawesome/svgs/solid/divide.svg +1 -0
  993. package/src/fontawesome/svgs/solid/dizzy.svg +1 -0
  994. package/src/fontawesome/svgs/solid/dna.svg +1 -0
  995. package/src/fontawesome/svgs/solid/dog.svg +1 -0
  996. package/src/fontawesome/svgs/solid/dollar-sign.svg +1 -0
  997. package/src/fontawesome/svgs/solid/dolly-flatbed.svg +1 -0
  998. package/src/fontawesome/svgs/solid/dolly.svg +1 -0
  999. package/src/fontawesome/svgs/solid/donate.svg +1 -0
  1000. package/src/fontawesome/svgs/solid/door-closed.svg +1 -0
  1001. package/src/fontawesome/svgs/solid/door-open.svg +1 -0
  1002. package/src/fontawesome/svgs/solid/dot-circle.svg +1 -0
  1003. package/src/fontawesome/svgs/solid/dove.svg +1 -0
  1004. package/src/fontawesome/svgs/solid/download.svg +1 -0
  1005. package/src/fontawesome/svgs/solid/drafting-compass.svg +1 -0
  1006. package/src/fontawesome/svgs/solid/dragon.svg +1 -0
  1007. package/src/fontawesome/svgs/solid/draw-polygon.svg +1 -0
  1008. package/src/fontawesome/svgs/solid/drum-steelpan.svg +1 -0
  1009. package/src/fontawesome/svgs/solid/drum.svg +1 -0
  1010. package/src/fontawesome/svgs/solid/drumstick-bite.svg +1 -0
  1011. package/src/fontawesome/svgs/solid/dumbbell.svg +1 -0
  1012. package/src/fontawesome/svgs/solid/dumpster-fire.svg +1 -0
  1013. package/src/fontawesome/svgs/solid/dumpster.svg +1 -0
  1014. package/src/fontawesome/svgs/solid/dungeon.svg +1 -0
  1015. package/src/fontawesome/svgs/solid/edit.svg +1 -0
  1016. package/src/fontawesome/svgs/solid/egg.svg +1 -0
  1017. package/src/fontawesome/svgs/solid/eject.svg +1 -0
  1018. package/src/fontawesome/svgs/solid/ellipsis-h.svg +1 -0
  1019. package/src/fontawesome/svgs/solid/ellipsis-v.svg +1 -0
  1020. package/src/fontawesome/svgs/solid/envelope-open-text.svg +1 -0
  1021. package/src/fontawesome/svgs/solid/envelope-open.svg +1 -0
  1022. package/src/fontawesome/svgs/solid/envelope-square.svg +1 -0
  1023. package/src/fontawesome/svgs/solid/envelope.svg +1 -0
  1024. package/src/fontawesome/svgs/solid/equals.svg +1 -0
  1025. package/src/fontawesome/svgs/solid/eraser.svg +1 -0
  1026. package/src/fontawesome/svgs/solid/ethernet.svg +1 -0
  1027. package/src/fontawesome/svgs/solid/euro-sign.svg +1 -0
  1028. package/src/fontawesome/svgs/solid/exchange-alt.svg +1 -0
  1029. package/src/fontawesome/svgs/solid/exclamation-circle.svg +1 -0
  1030. package/src/fontawesome/svgs/solid/exclamation-triangle.svg +1 -0
  1031. package/src/fontawesome/svgs/solid/exclamation.svg +1 -0
  1032. package/src/fontawesome/svgs/solid/expand-alt.svg +1 -0
  1033. package/src/fontawesome/svgs/solid/expand-arrows-alt.svg +1 -0
  1034. package/src/fontawesome/svgs/solid/expand.svg +1 -0
  1035. package/src/fontawesome/svgs/solid/external-link-alt.svg +1 -0
  1036. package/src/fontawesome/svgs/solid/external-link-square-alt.svg +1 -0
  1037. package/src/fontawesome/svgs/solid/eye-dropper.svg +1 -0
  1038. package/src/fontawesome/svgs/solid/eye-slash.svg +1 -0
  1039. package/src/fontawesome/svgs/solid/eye.svg +1 -0
  1040. package/src/fontawesome/svgs/solid/fan.svg +1 -0
  1041. package/src/fontawesome/svgs/solid/fast-backward.svg +1 -0
  1042. package/src/fontawesome/svgs/solid/fast-forward.svg +1 -0
  1043. package/src/fontawesome/svgs/solid/faucet.svg +1 -0
  1044. package/src/fontawesome/svgs/solid/fax.svg +1 -0
  1045. package/src/fontawesome/svgs/solid/feather-alt.svg +1 -0
  1046. package/src/fontawesome/svgs/solid/feather.svg +1 -0
  1047. package/src/fontawesome/svgs/solid/female.svg +1 -0
  1048. package/src/fontawesome/svgs/solid/fighter-jet.svg +1 -0
  1049. package/src/fontawesome/svgs/solid/file-alt.svg +1 -0
  1050. package/src/fontawesome/svgs/solid/file-archive.svg +1 -0
  1051. package/src/fontawesome/svgs/solid/file-audio.svg +1 -0
  1052. package/src/fontawesome/svgs/solid/file-code.svg +1 -0
  1053. package/src/fontawesome/svgs/solid/file-contract.svg +1 -0
  1054. package/src/fontawesome/svgs/solid/file-csv.svg +1 -0
  1055. package/src/fontawesome/svgs/solid/file-download.svg +1 -0
  1056. package/src/fontawesome/svgs/solid/file-excel.svg +1 -0
  1057. package/src/fontawesome/svgs/solid/file-export.svg +1 -0
  1058. package/src/fontawesome/svgs/solid/file-image.svg +1 -0
  1059. package/src/fontawesome/svgs/solid/file-import.svg +1 -0
  1060. package/src/fontawesome/svgs/solid/file-invoice-dollar.svg +1 -0
  1061. package/src/fontawesome/svgs/solid/file-invoice.svg +1 -0
  1062. package/src/fontawesome/svgs/solid/file-medical-alt.svg +1 -0
  1063. package/src/fontawesome/svgs/solid/file-medical.svg +1 -0
  1064. package/src/fontawesome/svgs/solid/file-pdf.svg +1 -0
  1065. package/src/fontawesome/svgs/solid/file-powerpoint.svg +1 -0
  1066. package/src/fontawesome/svgs/solid/file-prescription.svg +1 -0
  1067. package/src/fontawesome/svgs/solid/file-signature.svg +1 -0
  1068. package/src/fontawesome/svgs/solid/file-upload.svg +1 -0
  1069. package/src/fontawesome/svgs/solid/file-video.svg +1 -0
  1070. package/src/fontawesome/svgs/solid/file-word.svg +1 -0
  1071. package/src/fontawesome/svgs/solid/file.svg +1 -0
  1072. package/src/fontawesome/svgs/solid/fill-drip.svg +1 -0
  1073. package/src/fontawesome/svgs/solid/fill.svg +1 -0
  1074. package/src/fontawesome/svgs/solid/film.svg +1 -0
  1075. package/src/fontawesome/svgs/solid/filter.svg +1 -0
  1076. package/src/fontawesome/svgs/solid/fingerprint.svg +1 -0
  1077. package/src/fontawesome/svgs/solid/fire-alt.svg +1 -0
  1078. package/src/fontawesome/svgs/solid/fire-extinguisher.svg +1 -0
  1079. package/src/fontawesome/svgs/solid/fire.svg +1 -0
  1080. package/src/fontawesome/svgs/solid/first-aid.svg +1 -0
  1081. package/src/fontawesome/svgs/solid/fish.svg +1 -0
  1082. package/src/fontawesome/svgs/solid/fist-raised.svg +1 -0
  1083. package/src/fontawesome/svgs/solid/flag-checkered.svg +1 -0
  1084. package/src/fontawesome/svgs/solid/flag-usa.svg +1 -0
  1085. package/src/fontawesome/svgs/solid/flag.svg +1 -0
  1086. package/src/fontawesome/svgs/solid/flask.svg +1 -0
  1087. package/src/fontawesome/svgs/solid/flushed.svg +1 -0
  1088. package/src/fontawesome/svgs/solid/folder-minus.svg +1 -0
  1089. package/src/fontawesome/svgs/solid/folder-open.svg +1 -0
  1090. package/src/fontawesome/svgs/solid/folder-plus.svg +1 -0
  1091. package/src/fontawesome/svgs/solid/folder.svg +1 -0
  1092. package/src/fontawesome/svgs/solid/font-awesome-logo-full.svg +1 -0
  1093. package/src/fontawesome/svgs/solid/font.svg +1 -0
  1094. package/src/fontawesome/svgs/solid/football-ball.svg +1 -0
  1095. package/src/fontawesome/svgs/solid/forward.svg +1 -0
  1096. package/src/fontawesome/svgs/solid/frog.svg +1 -0
  1097. package/src/fontawesome/svgs/solid/frown-open.svg +1 -0
  1098. package/src/fontawesome/svgs/solid/frown.svg +1 -0
  1099. package/src/fontawesome/svgs/solid/funnel-dollar.svg +1 -0
  1100. package/src/fontawesome/svgs/solid/futbol.svg +1 -0
  1101. package/src/fontawesome/svgs/solid/gamepad.svg +1 -0
  1102. package/src/fontawesome/svgs/solid/gas-pump.svg +1 -0
  1103. package/src/fontawesome/svgs/solid/gavel.svg +1 -0
  1104. package/src/fontawesome/svgs/solid/gem.svg +1 -0
  1105. package/src/fontawesome/svgs/solid/genderless.svg +1 -0
  1106. package/src/fontawesome/svgs/solid/ghost.svg +1 -0
  1107. package/src/fontawesome/svgs/solid/gift.svg +1 -0
  1108. package/src/fontawesome/svgs/solid/gifts.svg +1 -0
  1109. package/src/fontawesome/svgs/solid/glass-cheers.svg +1 -0
  1110. package/src/fontawesome/svgs/solid/glass-martini-alt.svg +1 -0
  1111. package/src/fontawesome/svgs/solid/glass-martini.svg +1 -0
  1112. package/src/fontawesome/svgs/solid/glass-whiskey.svg +1 -0
  1113. package/src/fontawesome/svgs/solid/glasses.svg +1 -0
  1114. package/src/fontawesome/svgs/solid/globe-africa.svg +1 -0
  1115. package/src/fontawesome/svgs/solid/globe-americas.svg +1 -0
  1116. package/src/fontawesome/svgs/solid/globe-asia.svg +1 -0
  1117. package/src/fontawesome/svgs/solid/globe-europe.svg +1 -0
  1118. package/src/fontawesome/svgs/solid/globe.svg +1 -0
  1119. package/src/fontawesome/svgs/solid/golf-ball.svg +1 -0
  1120. package/src/fontawesome/svgs/solid/gopuram.svg +1 -0
  1121. package/src/fontawesome/svgs/solid/graduation-cap.svg +1 -0
  1122. package/src/fontawesome/svgs/solid/greater-than-equal.svg +1 -0
  1123. package/src/fontawesome/svgs/solid/greater-than.svg +1 -0
  1124. package/src/fontawesome/svgs/solid/grimace.svg +1 -0
  1125. package/src/fontawesome/svgs/solid/grin-alt.svg +1 -0
  1126. package/src/fontawesome/svgs/solid/grin-beam-sweat.svg +1 -0
  1127. package/src/fontawesome/svgs/solid/grin-beam.svg +1 -0
  1128. package/src/fontawesome/svgs/solid/grin-hearts.svg +1 -0
  1129. package/src/fontawesome/svgs/solid/grin-squint-tears.svg +1 -0
  1130. package/src/fontawesome/svgs/solid/grin-squint.svg +1 -0
  1131. package/src/fontawesome/svgs/solid/grin-stars.svg +1 -0
  1132. package/src/fontawesome/svgs/solid/grin-tears.svg +1 -0
  1133. package/src/fontawesome/svgs/solid/grin-tongue-squint.svg +1 -0
  1134. package/src/fontawesome/svgs/solid/grin-tongue-wink.svg +1 -0
  1135. package/src/fontawesome/svgs/solid/grin-tongue.svg +1 -0
  1136. package/src/fontawesome/svgs/solid/grin-wink.svg +1 -0
  1137. package/src/fontawesome/svgs/solid/grin.svg +1 -0
  1138. package/src/fontawesome/svgs/solid/grip-horizontal.svg +1 -0
  1139. package/src/fontawesome/svgs/solid/grip-lines-vertical.svg +1 -0
  1140. package/src/fontawesome/svgs/solid/grip-lines.svg +1 -0
  1141. package/src/fontawesome/svgs/solid/grip-vertical.svg +1 -0
  1142. package/src/fontawesome/svgs/solid/guitar.svg +1 -0
  1143. package/src/fontawesome/svgs/solid/h-square.svg +1 -0
  1144. package/src/fontawesome/svgs/solid/hamburger.svg +1 -0
  1145. package/src/fontawesome/svgs/solid/hammer.svg +1 -0
  1146. package/src/fontawesome/svgs/solid/hamsa.svg +1 -0
  1147. package/src/fontawesome/svgs/solid/hand-holding-heart.svg +1 -0
  1148. package/src/fontawesome/svgs/solid/hand-holding-medical.svg +1 -0
  1149. package/src/fontawesome/svgs/solid/hand-holding-usd.svg +1 -0
  1150. package/src/fontawesome/svgs/solid/hand-holding-water.svg +1 -0
  1151. package/src/fontawesome/svgs/solid/hand-holding.svg +1 -0
  1152. package/src/fontawesome/svgs/solid/hand-lizard.svg +1 -0
  1153. package/src/fontawesome/svgs/solid/hand-middle-finger.svg +1 -0
  1154. package/src/fontawesome/svgs/solid/hand-paper.svg +1 -0
  1155. package/src/fontawesome/svgs/solid/hand-peace.svg +1 -0
  1156. package/src/fontawesome/svgs/solid/hand-point-down.svg +1 -0
  1157. package/src/fontawesome/svgs/solid/hand-point-left.svg +1 -0
  1158. package/src/fontawesome/svgs/solid/hand-point-right.svg +1 -0
  1159. package/src/fontawesome/svgs/solid/hand-point-up.svg +1 -0
  1160. package/src/fontawesome/svgs/solid/hand-pointer.svg +1 -0
  1161. package/src/fontawesome/svgs/solid/hand-rock.svg +1 -0
  1162. package/src/fontawesome/svgs/solid/hand-scissors.svg +1 -0
  1163. package/src/fontawesome/svgs/solid/hand-sparkles.svg +1 -0
  1164. package/src/fontawesome/svgs/solid/hand-spock.svg +1 -0
  1165. package/src/fontawesome/svgs/solid/hands-helping.svg +1 -0
  1166. package/src/fontawesome/svgs/solid/hands-wash.svg +1 -0
  1167. package/src/fontawesome/svgs/solid/hands.svg +1 -0
  1168. package/src/fontawesome/svgs/solid/handshake-alt-slash.svg +1 -0
  1169. package/src/fontawesome/svgs/solid/handshake-slash.svg +1 -0
  1170. package/src/fontawesome/svgs/solid/handshake.svg +1 -0
  1171. package/src/fontawesome/svgs/solid/hanukiah.svg +1 -0
  1172. package/src/fontawesome/svgs/solid/hard-hat.svg +1 -0
  1173. package/src/fontawesome/svgs/solid/hashtag.svg +1 -0
  1174. package/src/fontawesome/svgs/solid/hat-cowboy-side.svg +1 -0
  1175. package/src/fontawesome/svgs/solid/hat-cowboy.svg +1 -0
  1176. package/src/fontawesome/svgs/solid/hat-wizard.svg +1 -0
  1177. package/src/fontawesome/svgs/solid/hdd.svg +1 -0
  1178. package/src/fontawesome/svgs/solid/head-side-cough-slash.svg +1 -0
  1179. package/src/fontawesome/svgs/solid/head-side-cough.svg +1 -0
  1180. package/src/fontawesome/svgs/solid/head-side-mask.svg +1 -0
  1181. package/src/fontawesome/svgs/solid/head-side-virus.svg +1 -0
  1182. package/src/fontawesome/svgs/solid/heading.svg +1 -0
  1183. package/src/fontawesome/svgs/solid/headphones-alt.svg +1 -0
  1184. package/src/fontawesome/svgs/solid/headphones.svg +1 -0
  1185. package/src/fontawesome/svgs/solid/headset.svg +1 -0
  1186. package/src/fontawesome/svgs/solid/heart-broken.svg +1 -0
  1187. package/src/fontawesome/svgs/solid/heart.svg +1 -0
  1188. package/src/fontawesome/svgs/solid/heartbeat.svg +1 -0
  1189. package/src/fontawesome/svgs/solid/helicopter.svg +1 -0
  1190. package/src/fontawesome/svgs/solid/highlighter.svg +1 -0
  1191. package/src/fontawesome/svgs/solid/hiking.svg +1 -0
  1192. package/src/fontawesome/svgs/solid/hippo.svg +1 -0
  1193. package/src/fontawesome/svgs/solid/history.svg +1 -0
  1194. package/src/fontawesome/svgs/solid/hockey-puck.svg +1 -0
  1195. package/src/fontawesome/svgs/solid/holly-berry.svg +1 -0
  1196. package/src/fontawesome/svgs/solid/home.svg +1 -0
  1197. package/src/fontawesome/svgs/solid/horse-head.svg +1 -0
  1198. package/src/fontawesome/svgs/solid/horse.svg +1 -0
  1199. package/src/fontawesome/svgs/solid/hospital-alt.svg +1 -0
  1200. package/src/fontawesome/svgs/solid/hospital-symbol.svg +1 -0
  1201. package/src/fontawesome/svgs/solid/hospital-user.svg +1 -0
  1202. package/src/fontawesome/svgs/solid/hospital.svg +1 -0
  1203. package/src/fontawesome/svgs/solid/hot-tub.svg +1 -0
  1204. package/src/fontawesome/svgs/solid/hotdog.svg +1 -0
  1205. package/src/fontawesome/svgs/solid/hotel.svg +1 -0
  1206. package/src/fontawesome/svgs/solid/hourglass-end.svg +1 -0
  1207. package/src/fontawesome/svgs/solid/hourglass-half.svg +1 -0
  1208. package/src/fontawesome/svgs/solid/hourglass-start.svg +1 -0
  1209. package/src/fontawesome/svgs/solid/hourglass.svg +1 -0
  1210. package/src/fontawesome/svgs/solid/house-damage.svg +1 -0
  1211. package/src/fontawesome/svgs/solid/house-user.svg +1 -0
  1212. package/src/fontawesome/svgs/solid/hryvnia.svg +1 -0
  1213. package/src/fontawesome/svgs/solid/i-cursor.svg +1 -0
  1214. package/src/fontawesome/svgs/solid/ice-cream.svg +1 -0
  1215. package/src/fontawesome/svgs/solid/icicles.svg +1 -0
  1216. package/src/fontawesome/svgs/solid/icons.svg +1 -0
  1217. package/src/fontawesome/svgs/solid/id-badge.svg +1 -0
  1218. package/src/fontawesome/svgs/solid/id-card-alt.svg +1 -0
  1219. package/src/fontawesome/svgs/solid/id-card.svg +1 -0
  1220. package/src/fontawesome/svgs/solid/igloo.svg +1 -0
  1221. package/src/fontawesome/svgs/solid/image.svg +1 -0
  1222. package/src/fontawesome/svgs/solid/images.svg +1 -0
  1223. package/src/fontawesome/svgs/solid/inbox.svg +1 -0
  1224. package/src/fontawesome/svgs/solid/indent.svg +1 -0
  1225. package/src/fontawesome/svgs/solid/industry.svg +1 -0
  1226. package/src/fontawesome/svgs/solid/infinity.svg +1 -0
  1227. package/src/fontawesome/svgs/solid/info-circle.svg +1 -0
  1228. package/src/fontawesome/svgs/solid/info.svg +1 -0
  1229. package/src/fontawesome/svgs/solid/italic.svg +1 -0
  1230. package/src/fontawesome/svgs/solid/jedi.svg +1 -0
  1231. package/src/fontawesome/svgs/solid/joint.svg +1 -0
  1232. package/src/fontawesome/svgs/solid/journal-whills.svg +1 -0
  1233. package/src/fontawesome/svgs/solid/kaaba.svg +1 -0
  1234. package/src/fontawesome/svgs/solid/key.svg +1 -0
  1235. package/src/fontawesome/svgs/solid/keyboard.svg +1 -0
  1236. package/src/fontawesome/svgs/solid/khanda.svg +1 -0
  1237. package/src/fontawesome/svgs/solid/kiss-beam.svg +1 -0
  1238. package/src/fontawesome/svgs/solid/kiss-wink-heart.svg +1 -0
  1239. package/src/fontawesome/svgs/solid/kiss.svg +1 -0
  1240. package/src/fontawesome/svgs/solid/kiwi-bird.svg +1 -0
  1241. package/src/fontawesome/svgs/solid/landmark.svg +1 -0
  1242. package/src/fontawesome/svgs/solid/language.svg +1 -0
  1243. package/src/fontawesome/svgs/solid/laptop-code.svg +1 -0
  1244. package/src/fontawesome/svgs/solid/laptop-house.svg +1 -0
  1245. package/src/fontawesome/svgs/solid/laptop-medical.svg +1 -0
  1246. package/src/fontawesome/svgs/solid/laptop.svg +1 -0
  1247. package/src/fontawesome/svgs/solid/laugh-beam.svg +1 -0
  1248. package/src/fontawesome/svgs/solid/laugh-squint.svg +1 -0
  1249. package/src/fontawesome/svgs/solid/laugh-wink.svg +1 -0
  1250. package/src/fontawesome/svgs/solid/laugh.svg +1 -0
  1251. package/src/fontawesome/svgs/solid/layer-group.svg +1 -0
  1252. package/src/fontawesome/svgs/solid/leaf.svg +1 -0
  1253. package/src/fontawesome/svgs/solid/lemon.svg +1 -0
  1254. package/src/fontawesome/svgs/solid/less-than-equal.svg +1 -0
  1255. package/src/fontawesome/svgs/solid/less-than.svg +1 -0
  1256. package/src/fontawesome/svgs/solid/level-down-alt.svg +1 -0
  1257. package/src/fontawesome/svgs/solid/level-up-alt.svg +1 -0
  1258. package/src/fontawesome/svgs/solid/life-ring.svg +1 -0
  1259. package/src/fontawesome/svgs/solid/lightbulb.svg +1 -0
  1260. package/src/fontawesome/svgs/solid/link.svg +1 -0
  1261. package/src/fontawesome/svgs/solid/lira-sign.svg +1 -0
  1262. package/src/fontawesome/svgs/solid/list-alt.svg +1 -0
  1263. package/src/fontawesome/svgs/solid/list-ol.svg +1 -0
  1264. package/src/fontawesome/svgs/solid/list-ul.svg +1 -0
  1265. package/src/fontawesome/svgs/solid/list.svg +1 -0
  1266. package/src/fontawesome/svgs/solid/location-arrow.svg +1 -0
  1267. package/src/fontawesome/svgs/solid/lock-open.svg +1 -0
  1268. package/src/fontawesome/svgs/solid/lock.svg +1 -0
  1269. package/src/fontawesome/svgs/solid/long-arrow-alt-down.svg +1 -0
  1270. package/src/fontawesome/svgs/solid/long-arrow-alt-left.svg +1 -0
  1271. package/src/fontawesome/svgs/solid/long-arrow-alt-right.svg +1 -0
  1272. package/src/fontawesome/svgs/solid/long-arrow-alt-up.svg +1 -0
  1273. package/src/fontawesome/svgs/solid/low-vision.svg +1 -0
  1274. package/src/fontawesome/svgs/solid/luggage-cart.svg +1 -0
  1275. package/src/fontawesome/svgs/solid/lungs-virus.svg +1 -0
  1276. package/src/fontawesome/svgs/solid/lungs.svg +1 -0
  1277. package/src/fontawesome/svgs/solid/magic.svg +1 -0
  1278. package/src/fontawesome/svgs/solid/magnet.svg +1 -0
  1279. package/src/fontawesome/svgs/solid/mail-bulk.svg +1 -0
  1280. package/src/fontawesome/svgs/solid/male.svg +1 -0
  1281. package/src/fontawesome/svgs/solid/map-marked-alt.svg +1 -0
  1282. package/src/fontawesome/svgs/solid/map-marked.svg +1 -0
  1283. package/src/fontawesome/svgs/solid/map-marker-alt.svg +1 -0
  1284. package/src/fontawesome/svgs/solid/map-marker.svg +1 -0
  1285. package/src/fontawesome/svgs/solid/map-pin.svg +1 -0
  1286. package/src/fontawesome/svgs/solid/map-signs.svg +1 -0
  1287. package/src/fontawesome/svgs/solid/map.svg +1 -0
  1288. package/src/fontawesome/svgs/solid/marker.svg +1 -0
  1289. package/src/fontawesome/svgs/solid/mars-double.svg +1 -0
  1290. package/src/fontawesome/svgs/solid/mars-stroke-h.svg +1 -0
  1291. package/src/fontawesome/svgs/solid/mars-stroke-v.svg +1 -0
  1292. package/src/fontawesome/svgs/solid/mars-stroke.svg +1 -0
  1293. package/src/fontawesome/svgs/solid/mars.svg +1 -0
  1294. package/src/fontawesome/svgs/solid/mask.svg +1 -0
  1295. package/src/fontawesome/svgs/solid/medal.svg +1 -0
  1296. package/src/fontawesome/svgs/solid/medkit.svg +1 -0
  1297. package/src/fontawesome/svgs/solid/meh-blank.svg +1 -0
  1298. package/src/fontawesome/svgs/solid/meh-rolling-eyes.svg +1 -0
  1299. package/src/fontawesome/svgs/solid/meh.svg +1 -0
  1300. package/src/fontawesome/svgs/solid/memory.svg +1 -0
  1301. package/src/fontawesome/svgs/solid/menorah.svg +1 -0
  1302. package/src/fontawesome/svgs/solid/mercury.svg +1 -0
  1303. package/src/fontawesome/svgs/solid/meteor.svg +1 -0
  1304. package/src/fontawesome/svgs/solid/microchip.svg +1 -0
  1305. package/src/fontawesome/svgs/solid/microphone-alt-slash.svg +1 -0
  1306. package/src/fontawesome/svgs/solid/microphone-alt.svg +1 -0
  1307. package/src/fontawesome/svgs/solid/microphone-slash.svg +1 -0
  1308. package/src/fontawesome/svgs/solid/microphone.svg +1 -0
  1309. package/src/fontawesome/svgs/solid/microscope.svg +1 -0
  1310. package/src/fontawesome/svgs/solid/minus-circle.svg +1 -0
  1311. package/src/fontawesome/svgs/solid/minus-square.svg +1 -0
  1312. package/src/fontawesome/svgs/solid/minus.svg +1 -0
  1313. package/src/fontawesome/svgs/solid/mitten.svg +1 -0
  1314. package/src/fontawesome/svgs/solid/mobile-alt.svg +1 -0
  1315. package/src/fontawesome/svgs/solid/mobile.svg +1 -0
  1316. package/src/fontawesome/svgs/solid/money-bill-alt.svg +1 -0
  1317. package/src/fontawesome/svgs/solid/money-bill-wave-alt.svg +1 -0
  1318. package/src/fontawesome/svgs/solid/money-bill-wave.svg +1 -0
  1319. package/src/fontawesome/svgs/solid/money-bill.svg +1 -0
  1320. package/src/fontawesome/svgs/solid/money-check-alt.svg +1 -0
  1321. package/src/fontawesome/svgs/solid/money-check.svg +1 -0
  1322. package/src/fontawesome/svgs/solid/monument.svg +1 -0
  1323. package/src/fontawesome/svgs/solid/moon.svg +1 -0
  1324. package/src/fontawesome/svgs/solid/mortar-pestle.svg +1 -0
  1325. package/src/fontawesome/svgs/solid/mosque.svg +1 -0
  1326. package/src/fontawesome/svgs/solid/motorcycle.svg +1 -0
  1327. package/src/fontawesome/svgs/solid/mountain.svg +1 -0
  1328. package/src/fontawesome/svgs/solid/mouse-pointer.svg +1 -0
  1329. package/src/fontawesome/svgs/solid/mouse.svg +1 -0
  1330. package/src/fontawesome/svgs/solid/mug-hot.svg +1 -0
  1331. package/src/fontawesome/svgs/solid/music.svg +1 -0
  1332. package/src/fontawesome/svgs/solid/network-wired.svg +1 -0
  1333. package/src/fontawesome/svgs/solid/neuter.svg +1 -0
  1334. package/src/fontawesome/svgs/solid/newspaper.svg +1 -0
  1335. package/src/fontawesome/svgs/solid/not-equal.svg +1 -0
  1336. package/src/fontawesome/svgs/solid/notes-medical.svg +1 -0
  1337. package/src/fontawesome/svgs/solid/object-group.svg +1 -0
  1338. package/src/fontawesome/svgs/solid/object-ungroup.svg +1 -0
  1339. package/src/fontawesome/svgs/solid/oil-can.svg +1 -0
  1340. package/src/fontawesome/svgs/solid/om.svg +1 -0
  1341. package/src/fontawesome/svgs/solid/otter.svg +1 -0
  1342. package/src/fontawesome/svgs/solid/outdent.svg +1 -0
  1343. package/src/fontawesome/svgs/solid/pager.svg +1 -0
  1344. package/src/fontawesome/svgs/solid/paint-brush.svg +1 -0
  1345. package/src/fontawesome/svgs/solid/paint-roller.svg +1 -0
  1346. package/src/fontawesome/svgs/solid/palette.svg +1 -0
  1347. package/src/fontawesome/svgs/solid/pallet.svg +1 -0
  1348. package/src/fontawesome/svgs/solid/paper-plane.svg +1 -0
  1349. package/src/fontawesome/svgs/solid/paperclip.svg +1 -0
  1350. package/src/fontawesome/svgs/solid/parachute-box.svg +1 -0
  1351. package/src/fontawesome/svgs/solid/paragraph.svg +1 -0
  1352. package/src/fontawesome/svgs/solid/parking.svg +1 -0
  1353. package/src/fontawesome/svgs/solid/passport.svg +1 -0
  1354. package/src/fontawesome/svgs/solid/pastafarianism.svg +1 -0
  1355. package/src/fontawesome/svgs/solid/paste.svg +1 -0
  1356. package/src/fontawesome/svgs/solid/pause-circle.svg +1 -0
  1357. package/src/fontawesome/svgs/solid/pause.svg +1 -0
  1358. package/src/fontawesome/svgs/solid/paw.svg +1 -0
  1359. package/src/fontawesome/svgs/solid/peace.svg +1 -0
  1360. package/src/fontawesome/svgs/solid/pen-alt.svg +1 -0
  1361. package/src/fontawesome/svgs/solid/pen-fancy.svg +1 -0
  1362. package/src/fontawesome/svgs/solid/pen-nib.svg +1 -0
  1363. package/src/fontawesome/svgs/solid/pen-square.svg +1 -0
  1364. package/src/fontawesome/svgs/solid/pen.svg +1 -0
  1365. package/src/fontawesome/svgs/solid/pencil-alt.svg +1 -0
  1366. package/src/fontawesome/svgs/solid/pencil-ruler.svg +1 -0
  1367. package/src/fontawesome/svgs/solid/people-arrows.svg +1 -0
  1368. package/src/fontawesome/svgs/solid/people-carry.svg +1 -0
  1369. package/src/fontawesome/svgs/solid/pepper-hot.svg +1 -0
  1370. package/src/fontawesome/svgs/solid/percent.svg +1 -0
  1371. package/src/fontawesome/svgs/solid/percentage.svg +1 -0
  1372. package/src/fontawesome/svgs/solid/person-booth.svg +1 -0
  1373. package/src/fontawesome/svgs/solid/phone-alt.svg +1 -0
  1374. package/src/fontawesome/svgs/solid/phone-slash.svg +1 -0
  1375. package/src/fontawesome/svgs/solid/phone-square-alt.svg +1 -0
  1376. package/src/fontawesome/svgs/solid/phone-square.svg +1 -0
  1377. package/src/fontawesome/svgs/solid/phone-volume.svg +1 -0
  1378. package/src/fontawesome/svgs/solid/phone.svg +1 -0
  1379. package/src/fontawesome/svgs/solid/photo-video.svg +1 -0
  1380. package/src/fontawesome/svgs/solid/piggy-bank.svg +1 -0
  1381. package/src/fontawesome/svgs/solid/pills.svg +1 -0
  1382. package/src/fontawesome/svgs/solid/pizza-slice.svg +1 -0
  1383. package/src/fontawesome/svgs/solid/place-of-worship.svg +1 -0
  1384. package/src/fontawesome/svgs/solid/plane-arrival.svg +1 -0
  1385. package/src/fontawesome/svgs/solid/plane-departure.svg +1 -0
  1386. package/src/fontawesome/svgs/solid/plane-slash.svg +1 -0
  1387. package/src/fontawesome/svgs/solid/plane.svg +1 -0
  1388. package/src/fontawesome/svgs/solid/play-circle.svg +1 -0
  1389. package/src/fontawesome/svgs/solid/play.svg +1 -0
  1390. package/src/fontawesome/svgs/solid/plug.svg +1 -0
  1391. package/src/fontawesome/svgs/solid/plus-circle.svg +1 -0
  1392. package/src/fontawesome/svgs/solid/plus-square.svg +1 -0
  1393. package/src/fontawesome/svgs/solid/plus.svg +1 -0
  1394. package/src/fontawesome/svgs/solid/podcast.svg +1 -0
  1395. package/src/fontawesome/svgs/solid/poll-h.svg +1 -0
  1396. package/src/fontawesome/svgs/solid/poll.svg +1 -0
  1397. package/src/fontawesome/svgs/solid/poo-storm.svg +1 -0
  1398. package/src/fontawesome/svgs/solid/poo.svg +1 -0
  1399. package/src/fontawesome/svgs/solid/poop.svg +1 -0
  1400. package/src/fontawesome/svgs/solid/portrait.svg +1 -0
  1401. package/src/fontawesome/svgs/solid/pound-sign.svg +1 -0
  1402. package/src/fontawesome/svgs/solid/power-off.svg +1 -0
  1403. package/src/fontawesome/svgs/solid/pray.svg +1 -0
  1404. package/src/fontawesome/svgs/solid/praying-hands.svg +1 -0
  1405. package/src/fontawesome/svgs/solid/prescription-bottle-alt.svg +1 -0
  1406. package/src/fontawesome/svgs/solid/prescription-bottle.svg +1 -0
  1407. package/src/fontawesome/svgs/solid/prescription.svg +1 -0
  1408. package/src/fontawesome/svgs/solid/print.svg +1 -0
  1409. package/src/fontawesome/svgs/solid/procedures.svg +1 -0
  1410. package/src/fontawesome/svgs/solid/project-diagram.svg +1 -0
  1411. package/src/fontawesome/svgs/solid/pump-medical.svg +1 -0
  1412. package/src/fontawesome/svgs/solid/pump-soap.svg +1 -0
  1413. package/src/fontawesome/svgs/solid/puzzle-piece.svg +1 -0
  1414. package/src/fontawesome/svgs/solid/qrcode.svg +1 -0
  1415. package/src/fontawesome/svgs/solid/question-circle.svg +1 -0
  1416. package/src/fontawesome/svgs/solid/question.svg +1 -0
  1417. package/src/fontawesome/svgs/solid/quidditch.svg +1 -0
  1418. package/src/fontawesome/svgs/solid/quote-left.svg +1 -0
  1419. package/src/fontawesome/svgs/solid/quote-right.svg +1 -0
  1420. package/src/fontawesome/svgs/solid/quran.svg +1 -0
  1421. package/src/fontawesome/svgs/solid/radiation-alt.svg +1 -0
  1422. package/src/fontawesome/svgs/solid/radiation.svg +1 -0
  1423. package/src/fontawesome/svgs/solid/rainbow.svg +1 -0
  1424. package/src/fontawesome/svgs/solid/random.svg +1 -0
  1425. package/src/fontawesome/svgs/solid/receipt.svg +1 -0
  1426. package/src/fontawesome/svgs/solid/record-vinyl.svg +1 -0
  1427. package/src/fontawesome/svgs/solid/recycle.svg +1 -0
  1428. package/src/fontawesome/svgs/solid/redo-alt.svg +1 -0
  1429. package/src/fontawesome/svgs/solid/redo.svg +1 -0
  1430. package/src/fontawesome/svgs/solid/registered.svg +1 -0
  1431. package/src/fontawesome/svgs/solid/remove-format.svg +1 -0
  1432. package/src/fontawesome/svgs/solid/reply-all.svg +1 -0
  1433. package/src/fontawesome/svgs/solid/reply.svg +1 -0
  1434. package/src/fontawesome/svgs/solid/republican.svg +1 -0
  1435. package/src/fontawesome/svgs/solid/restroom.svg +1 -0
  1436. package/src/fontawesome/svgs/solid/retweet.svg +1 -0
  1437. package/src/fontawesome/svgs/solid/ribbon.svg +1 -0
  1438. package/src/fontawesome/svgs/solid/ring.svg +1 -0
  1439. package/src/fontawesome/svgs/solid/road.svg +1 -0
  1440. package/src/fontawesome/svgs/solid/robot.svg +1 -0
  1441. package/src/fontawesome/svgs/solid/rocket.svg +1 -0
  1442. package/src/fontawesome/svgs/solid/route.svg +1 -0
  1443. package/src/fontawesome/svgs/solid/rss-square.svg +1 -0
  1444. package/src/fontawesome/svgs/solid/rss.svg +1 -0
  1445. package/src/fontawesome/svgs/solid/ruble-sign.svg +1 -0
  1446. package/src/fontawesome/svgs/solid/ruler-combined.svg +1 -0
  1447. package/src/fontawesome/svgs/solid/ruler-horizontal.svg +1 -0
  1448. package/src/fontawesome/svgs/solid/ruler-vertical.svg +1 -0
  1449. package/src/fontawesome/svgs/solid/ruler.svg +1 -0
  1450. package/src/fontawesome/svgs/solid/running.svg +1 -0
  1451. package/src/fontawesome/svgs/solid/rupee-sign.svg +1 -0
  1452. package/src/fontawesome/svgs/solid/sad-cry.svg +1 -0
  1453. package/src/fontawesome/svgs/solid/sad-tear.svg +1 -0
  1454. package/src/fontawesome/svgs/solid/satellite-dish.svg +1 -0
  1455. package/src/fontawesome/svgs/solid/satellite.svg +1 -0
  1456. package/src/fontawesome/svgs/solid/save.svg +1 -0
  1457. package/src/fontawesome/svgs/solid/school.svg +1 -0
  1458. package/src/fontawesome/svgs/solid/screwdriver.svg +1 -0
  1459. package/src/fontawesome/svgs/solid/scroll.svg +1 -0
  1460. package/src/fontawesome/svgs/solid/sd-card.svg +1 -0
  1461. package/src/fontawesome/svgs/solid/search-dollar.svg +1 -0
  1462. package/src/fontawesome/svgs/solid/search-location.svg +1 -0
  1463. package/src/fontawesome/svgs/solid/search-minus.svg +1 -0
  1464. package/src/fontawesome/svgs/solid/search-plus.svg +1 -0
  1465. package/src/fontawesome/svgs/solid/search.svg +1 -0
  1466. package/src/fontawesome/svgs/solid/seedling.svg +1 -0
  1467. package/src/fontawesome/svgs/solid/server.svg +1 -0
  1468. package/src/fontawesome/svgs/solid/shapes.svg +1 -0
  1469. package/src/fontawesome/svgs/solid/share-alt-square.svg +1 -0
  1470. package/src/fontawesome/svgs/solid/share-alt.svg +1 -0
  1471. package/src/fontawesome/svgs/solid/share-square.svg +1 -0
  1472. package/src/fontawesome/svgs/solid/share.svg +1 -0
  1473. package/src/fontawesome/svgs/solid/shekel-sign.svg +1 -0
  1474. package/src/fontawesome/svgs/solid/shield-alt.svg +1 -0
  1475. package/src/fontawesome/svgs/solid/shield-virus.svg +1 -0
  1476. package/src/fontawesome/svgs/solid/ship.svg +1 -0
  1477. package/src/fontawesome/svgs/solid/shipping-fast.svg +1 -0
  1478. package/src/fontawesome/svgs/solid/shoe-prints.svg +1 -0
  1479. package/src/fontawesome/svgs/solid/shopping-bag.svg +1 -0
  1480. package/src/fontawesome/svgs/solid/shopping-basket.svg +1 -0
  1481. package/src/fontawesome/svgs/solid/shopping-cart.svg +1 -0
  1482. package/src/fontawesome/svgs/solid/shower.svg +1 -0
  1483. package/src/fontawesome/svgs/solid/shuttle-van.svg +1 -0
  1484. package/src/fontawesome/svgs/solid/sign-in-alt.svg +1 -0
  1485. package/src/fontawesome/svgs/solid/sign-language.svg +1 -0
  1486. package/src/fontawesome/svgs/solid/sign-out-alt.svg +1 -0
  1487. package/src/fontawesome/svgs/solid/sign.svg +1 -0
  1488. package/src/fontawesome/svgs/solid/signal.svg +1 -0
  1489. package/src/fontawesome/svgs/solid/signature.svg +1 -0
  1490. package/src/fontawesome/svgs/solid/sim-card.svg +1 -0
  1491. package/src/fontawesome/svgs/solid/sink.svg +1 -0
  1492. package/src/fontawesome/svgs/solid/sitemap.svg +1 -0
  1493. package/src/fontawesome/svgs/solid/skating.svg +1 -0
  1494. package/src/fontawesome/svgs/solid/skiing-nordic.svg +1 -0
  1495. package/src/fontawesome/svgs/solid/skiing.svg +1 -0
  1496. package/src/fontawesome/svgs/solid/skull-crossbones.svg +1 -0
  1497. package/src/fontawesome/svgs/solid/skull.svg +1 -0
  1498. package/src/fontawesome/svgs/solid/slash.svg +1 -0
  1499. package/src/fontawesome/svgs/solid/sleigh.svg +1 -0
  1500. package/src/fontawesome/svgs/solid/sliders-h.svg +1 -0
  1501. package/src/fontawesome/svgs/solid/smile-beam.svg +1 -0
  1502. package/src/fontawesome/svgs/solid/smile-wink.svg +1 -0
  1503. package/src/fontawesome/svgs/solid/smile.svg +1 -0
  1504. package/src/fontawesome/svgs/solid/smog.svg +1 -0
  1505. package/src/fontawesome/svgs/solid/smoking-ban.svg +1 -0
  1506. package/src/fontawesome/svgs/solid/smoking.svg +1 -0
  1507. package/src/fontawesome/svgs/solid/sms.svg +1 -0
  1508. package/src/fontawesome/svgs/solid/snowboarding.svg +1 -0
  1509. package/src/fontawesome/svgs/solid/snowflake.svg +1 -0
  1510. package/src/fontawesome/svgs/solid/snowman.svg +1 -0
  1511. package/src/fontawesome/svgs/solid/snowplow.svg +1 -0
  1512. package/src/fontawesome/svgs/solid/soap.svg +1 -0
  1513. package/src/fontawesome/svgs/solid/socks.svg +1 -0
  1514. package/src/fontawesome/svgs/solid/solar-panel.svg +1 -0
  1515. package/src/fontawesome/svgs/solid/sort-alpha-down-alt.svg +1 -0
  1516. package/src/fontawesome/svgs/solid/sort-alpha-down.svg +1 -0
  1517. package/src/fontawesome/svgs/solid/sort-alpha-up-alt.svg +1 -0
  1518. package/src/fontawesome/svgs/solid/sort-alpha-up.svg +1 -0
  1519. package/src/fontawesome/svgs/solid/sort-amount-down-alt.svg +1 -0
  1520. package/src/fontawesome/svgs/solid/sort-amount-down.svg +1 -0
  1521. package/src/fontawesome/svgs/solid/sort-amount-up-alt.svg +1 -0
  1522. package/src/fontawesome/svgs/solid/sort-amount-up.svg +1 -0
  1523. package/src/fontawesome/svgs/solid/sort-down.svg +1 -0
  1524. package/src/fontawesome/svgs/solid/sort-numeric-down-alt.svg +1 -0
  1525. package/src/fontawesome/svgs/solid/sort-numeric-down.svg +1 -0
  1526. package/src/fontawesome/svgs/solid/sort-numeric-up-alt.svg +1 -0
  1527. package/src/fontawesome/svgs/solid/sort-numeric-up.svg +1 -0
  1528. package/src/fontawesome/svgs/solid/sort-up.svg +1 -0
  1529. package/src/fontawesome/svgs/solid/sort.svg +1 -0
  1530. package/src/fontawesome/svgs/solid/spa.svg +1 -0
  1531. package/src/fontawesome/svgs/solid/space-shuttle.svg +1 -0
  1532. package/src/fontawesome/svgs/solid/spell-check.svg +1 -0
  1533. package/src/fontawesome/svgs/solid/spider.svg +1 -0
  1534. package/src/fontawesome/svgs/solid/spinner.svg +1 -0
  1535. package/src/fontawesome/svgs/solid/splotch.svg +1 -0
  1536. package/src/fontawesome/svgs/solid/spray-can.svg +1 -0
  1537. package/src/fontawesome/svgs/solid/square-full.svg +1 -0
  1538. package/src/fontawesome/svgs/solid/square-root-alt.svg +1 -0
  1539. package/src/fontawesome/svgs/solid/square.svg +1 -0
  1540. package/src/fontawesome/svgs/solid/stamp.svg +1 -0
  1541. package/src/fontawesome/svgs/solid/star-and-crescent.svg +1 -0
  1542. package/src/fontawesome/svgs/solid/star-half-alt.svg +1 -0
  1543. package/src/fontawesome/svgs/solid/star-half.svg +1 -0
  1544. package/src/fontawesome/svgs/solid/star-of-david.svg +1 -0
  1545. package/src/fontawesome/svgs/solid/star-of-life.svg +1 -0
  1546. package/src/fontawesome/svgs/solid/star.svg +1 -0
  1547. package/src/fontawesome/svgs/solid/step-backward.svg +1 -0
  1548. package/src/fontawesome/svgs/solid/step-forward.svg +1 -0
  1549. package/src/fontawesome/svgs/solid/stethoscope.svg +1 -0
  1550. package/src/fontawesome/svgs/solid/sticky-note.svg +1 -0
  1551. package/src/fontawesome/svgs/solid/stop-circle.svg +1 -0
  1552. package/src/fontawesome/svgs/solid/stop.svg +1 -0
  1553. package/src/fontawesome/svgs/solid/stopwatch-20.svg +1 -0
  1554. package/src/fontawesome/svgs/solid/stopwatch.svg +1 -0
  1555. package/src/fontawesome/svgs/solid/store-alt-slash.svg +1 -0
  1556. package/src/fontawesome/svgs/solid/store-alt.svg +1 -0
  1557. package/src/fontawesome/svgs/solid/store-slash.svg +1 -0
  1558. package/src/fontawesome/svgs/solid/store.svg +1 -0
  1559. package/src/fontawesome/svgs/solid/stream.svg +1 -0
  1560. package/src/fontawesome/svgs/solid/street-view.svg +1 -0
  1561. package/src/fontawesome/svgs/solid/strikethrough.svg +1 -0
  1562. package/src/fontawesome/svgs/solid/stroopwafel.svg +1 -0
  1563. package/src/fontawesome/svgs/solid/subscript.svg +1 -0
  1564. package/src/fontawesome/svgs/solid/subway.svg +1 -0
  1565. package/src/fontawesome/svgs/solid/suitcase-rolling.svg +1 -0
  1566. package/src/fontawesome/svgs/solid/suitcase.svg +1 -0
  1567. package/src/fontawesome/svgs/solid/sun.svg +1 -0
  1568. package/src/fontawesome/svgs/solid/superscript.svg +1 -0
  1569. package/src/fontawesome/svgs/solid/surprise.svg +1 -0
  1570. package/src/fontawesome/svgs/solid/swatchbook.svg +1 -0
  1571. package/src/fontawesome/svgs/solid/swimmer.svg +1 -0
  1572. package/src/fontawesome/svgs/solid/swimming-pool.svg +1 -0
  1573. package/src/fontawesome/svgs/solid/synagogue.svg +1 -0
  1574. package/src/fontawesome/svgs/solid/sync-alt.svg +1 -0
  1575. package/src/fontawesome/svgs/solid/sync.svg +1 -0
  1576. package/src/fontawesome/svgs/solid/syringe.svg +1 -0
  1577. package/src/fontawesome/svgs/solid/table-tennis.svg +1 -0
  1578. package/src/fontawesome/svgs/solid/table.svg +1 -0
  1579. package/src/fontawesome/svgs/solid/tablet-alt.svg +1 -0
  1580. package/src/fontawesome/svgs/solid/tablet.svg +1 -0
  1581. package/src/fontawesome/svgs/solid/tablets.svg +1 -0
  1582. package/src/fontawesome/svgs/solid/tachometer-alt.svg +1 -0
  1583. package/src/fontawesome/svgs/solid/tag.svg +1 -0
  1584. package/src/fontawesome/svgs/solid/tags.svg +1 -0
  1585. package/src/fontawesome/svgs/solid/tape.svg +1 -0
  1586. package/src/fontawesome/svgs/solid/tasks.svg +1 -0
  1587. package/src/fontawesome/svgs/solid/taxi.svg +1 -0
  1588. package/src/fontawesome/svgs/solid/teeth-open.svg +1 -0
  1589. package/src/fontawesome/svgs/solid/teeth.svg +1 -0
  1590. package/src/fontawesome/svgs/solid/temperature-high.svg +1 -0
  1591. package/src/fontawesome/svgs/solid/temperature-low.svg +1 -0
  1592. package/src/fontawesome/svgs/solid/tenge.svg +1 -0
  1593. package/src/fontawesome/svgs/solid/terminal.svg +1 -0
  1594. package/src/fontawesome/svgs/solid/text-height.svg +1 -0
  1595. package/src/fontawesome/svgs/solid/text-width.svg +1 -0
  1596. package/src/fontawesome/svgs/solid/th-large.svg +1 -0
  1597. package/src/fontawesome/svgs/solid/th-list.svg +1 -0
  1598. package/src/fontawesome/svgs/solid/th.svg +1 -0
  1599. package/src/fontawesome/svgs/solid/theater-masks.svg +1 -0
  1600. package/src/fontawesome/svgs/solid/thermometer-empty.svg +1 -0
  1601. package/src/fontawesome/svgs/solid/thermometer-full.svg +1 -0
  1602. package/src/fontawesome/svgs/solid/thermometer-half.svg +1 -0
  1603. package/src/fontawesome/svgs/solid/thermometer-quarter.svg +1 -0
  1604. package/src/fontawesome/svgs/solid/thermometer-three-quarters.svg +1 -0
  1605. package/src/fontawesome/svgs/solid/thermometer.svg +1 -0
  1606. package/src/fontawesome/svgs/solid/thumbs-down.svg +1 -0
  1607. package/src/fontawesome/svgs/solid/thumbs-up.svg +1 -0
  1608. package/src/fontawesome/svgs/solid/thumbtack.svg +1 -0
  1609. package/src/fontawesome/svgs/solid/ticket-alt.svg +1 -0
  1610. package/src/fontawesome/svgs/solid/times-circle.svg +1 -0
  1611. package/src/fontawesome/svgs/solid/times.svg +1 -0
  1612. package/src/fontawesome/svgs/solid/tint-slash.svg +1 -0
  1613. package/src/fontawesome/svgs/solid/tint.svg +1 -0
  1614. package/src/fontawesome/svgs/solid/tired.svg +1 -0
  1615. package/src/fontawesome/svgs/solid/toggle-off.svg +1 -0
  1616. package/src/fontawesome/svgs/solid/toggle-on.svg +1 -0
  1617. package/src/fontawesome/svgs/solid/toilet-paper-slash.svg +1 -0
  1618. package/src/fontawesome/svgs/solid/toilet-paper.svg +1 -0
  1619. package/src/fontawesome/svgs/solid/toilet.svg +1 -0
  1620. package/src/fontawesome/svgs/solid/toolbox.svg +1 -0
  1621. package/src/fontawesome/svgs/solid/tools.svg +1 -0
  1622. package/src/fontawesome/svgs/solid/tooth.svg +1 -0
  1623. package/src/fontawesome/svgs/solid/torah.svg +1 -0
  1624. package/src/fontawesome/svgs/solid/torii-gate.svg +1 -0
  1625. package/src/fontawesome/svgs/solid/tractor.svg +1 -0
  1626. package/src/fontawesome/svgs/solid/trademark.svg +1 -0
  1627. package/src/fontawesome/svgs/solid/traffic-light.svg +1 -0
  1628. package/src/fontawesome/svgs/solid/trailer.svg +1 -0
  1629. package/src/fontawesome/svgs/solid/train.svg +1 -0
  1630. package/src/fontawesome/svgs/solid/tram.svg +1 -0
  1631. package/src/fontawesome/svgs/solid/transgender-alt.svg +1 -0
  1632. package/src/fontawesome/svgs/solid/transgender.svg +1 -0
  1633. package/src/fontawesome/svgs/solid/trash-alt.svg +1 -0
  1634. package/src/fontawesome/svgs/solid/trash-restore-alt.svg +1 -0
  1635. package/src/fontawesome/svgs/solid/trash-restore.svg +1 -0
  1636. package/src/fontawesome/svgs/solid/trash.svg +1 -0
  1637. package/src/fontawesome/svgs/solid/tree.svg +1 -0
  1638. package/src/fontawesome/svgs/solid/trophy.svg +1 -0
  1639. package/src/fontawesome/svgs/solid/truck-loading.svg +1 -0
  1640. package/src/fontawesome/svgs/solid/truck-monster.svg +1 -0
  1641. package/src/fontawesome/svgs/solid/truck-moving.svg +1 -0
  1642. package/src/fontawesome/svgs/solid/truck-pickup.svg +1 -0
  1643. package/src/fontawesome/svgs/solid/truck.svg +1 -0
  1644. package/src/fontawesome/svgs/solid/tshirt.svg +1 -0
  1645. package/src/fontawesome/svgs/solid/tty.svg +1 -0
  1646. package/src/fontawesome/svgs/solid/tv.svg +1 -0
  1647. package/src/fontawesome/svgs/solid/umbrella-beach.svg +1 -0
  1648. package/src/fontawesome/svgs/solid/umbrella.svg +1 -0
  1649. package/src/fontawesome/svgs/solid/underline.svg +1 -0
  1650. package/src/fontawesome/svgs/solid/undo-alt.svg +1 -0
  1651. package/src/fontawesome/svgs/solid/undo.svg +1 -0
  1652. package/src/fontawesome/svgs/solid/universal-access.svg +1 -0
  1653. package/src/fontawesome/svgs/solid/university.svg +1 -0
  1654. package/src/fontawesome/svgs/solid/unlink.svg +1 -0
  1655. package/src/fontawesome/svgs/solid/unlock-alt.svg +1 -0
  1656. package/src/fontawesome/svgs/solid/unlock.svg +1 -0
  1657. package/src/fontawesome/svgs/solid/upload.svg +1 -0
  1658. package/src/fontawesome/svgs/solid/user-alt-slash.svg +1 -0
  1659. package/src/fontawesome/svgs/solid/user-alt.svg +1 -0
  1660. package/src/fontawesome/svgs/solid/user-astronaut.svg +1 -0
  1661. package/src/fontawesome/svgs/solid/user-check.svg +1 -0
  1662. package/src/fontawesome/svgs/solid/user-circle.svg +1 -0
  1663. package/src/fontawesome/svgs/solid/user-clock.svg +1 -0
  1664. package/src/fontawesome/svgs/solid/user-cog.svg +1 -0
  1665. package/src/fontawesome/svgs/solid/user-edit.svg +1 -0
  1666. package/src/fontawesome/svgs/solid/user-friends.svg +1 -0
  1667. package/src/fontawesome/svgs/solid/user-graduate.svg +1 -0
  1668. package/src/fontawesome/svgs/solid/user-injured.svg +1 -0
  1669. package/src/fontawesome/svgs/solid/user-lock.svg +1 -0
  1670. package/src/fontawesome/svgs/solid/user-md.svg +1 -0
  1671. package/src/fontawesome/svgs/solid/user-minus.svg +1 -0
  1672. package/src/fontawesome/svgs/solid/user-ninja.svg +1 -0
  1673. package/src/fontawesome/svgs/solid/user-nurse.svg +1 -0
  1674. package/src/fontawesome/svgs/solid/user-plus.svg +1 -0
  1675. package/src/fontawesome/svgs/solid/user-secret.svg +1 -0
  1676. package/src/fontawesome/svgs/solid/user-shield.svg +1 -0
  1677. package/src/fontawesome/svgs/solid/user-slash.svg +1 -0
  1678. package/src/fontawesome/svgs/solid/user-tag.svg +1 -0
  1679. package/src/fontawesome/svgs/solid/user-tie.svg +1 -0
  1680. package/src/fontawesome/svgs/solid/user-times.svg +1 -0
  1681. package/src/fontawesome/svgs/solid/user.svg +1 -0
  1682. package/src/fontawesome/svgs/solid/users-cog.svg +1 -0
  1683. package/src/fontawesome/svgs/solid/users-slash.svg +1 -0
  1684. package/src/fontawesome/svgs/solid/users.svg +1 -0
  1685. package/src/fontawesome/svgs/solid/utensil-spoon.svg +1 -0
  1686. package/src/fontawesome/svgs/solid/utensils.svg +1 -0
  1687. package/src/fontawesome/svgs/solid/vector-square.svg +1 -0
  1688. package/src/fontawesome/svgs/solid/venus-double.svg +1 -0
  1689. package/src/fontawesome/svgs/solid/venus-mars.svg +1 -0
  1690. package/src/fontawesome/svgs/solid/venus.svg +1 -0
  1691. package/src/fontawesome/svgs/solid/vest-patches.svg +1 -0
  1692. package/src/fontawesome/svgs/solid/vest.svg +1 -0
  1693. package/src/fontawesome/svgs/solid/vial.svg +1 -0
  1694. package/src/fontawesome/svgs/solid/vials.svg +1 -0
  1695. package/src/fontawesome/svgs/solid/video-slash.svg +1 -0
  1696. package/src/fontawesome/svgs/solid/video.svg +1 -0
  1697. package/src/fontawesome/svgs/solid/vihara.svg +1 -0
  1698. package/src/fontawesome/svgs/solid/virus-slash.svg +1 -0
  1699. package/src/fontawesome/svgs/solid/virus.svg +1 -0
  1700. package/src/fontawesome/svgs/solid/viruses.svg +1 -0
  1701. package/src/fontawesome/svgs/solid/voicemail.svg +1 -0
  1702. package/src/fontawesome/svgs/solid/volleyball-ball.svg +1 -0
  1703. package/src/fontawesome/svgs/solid/volume-down.svg +1 -0
  1704. package/src/fontawesome/svgs/solid/volume-mute.svg +1 -0
  1705. package/src/fontawesome/svgs/solid/volume-off.svg +1 -0
  1706. package/src/fontawesome/svgs/solid/volume-up.svg +1 -0
  1707. package/src/fontawesome/svgs/solid/vote-yea.svg +1 -0
  1708. package/src/fontawesome/svgs/solid/vr-cardboard.svg +1 -0
  1709. package/src/fontawesome/svgs/solid/walking.svg +1 -0
  1710. package/src/fontawesome/svgs/solid/wallet.svg +1 -0
  1711. package/src/fontawesome/svgs/solid/warehouse.svg +1 -0
  1712. package/src/fontawesome/svgs/solid/water.svg +1 -0
  1713. package/src/fontawesome/svgs/solid/wave-square.svg +1 -0
  1714. package/src/fontawesome/svgs/solid/weight-hanging.svg +1 -0
  1715. package/src/fontawesome/svgs/solid/weight.svg +1 -0
  1716. package/src/fontawesome/svgs/solid/wheelchair.svg +1 -0
  1717. package/src/fontawesome/svgs/solid/wifi.svg +1 -0
  1718. package/src/fontawesome/svgs/solid/wind.svg +1 -0
  1719. package/src/fontawesome/svgs/solid/window-close.svg +1 -0
  1720. package/src/fontawesome/svgs/solid/window-maximize.svg +1 -0
  1721. package/src/fontawesome/svgs/solid/window-minimize.svg +1 -0
  1722. package/src/fontawesome/svgs/solid/window-restore.svg +1 -0
  1723. package/src/fontawesome/svgs/solid/wine-bottle.svg +1 -0
  1724. package/src/fontawesome/svgs/solid/wine-glass-alt.svg +1 -0
  1725. package/src/fontawesome/svgs/solid/wine-glass.svg +1 -0
  1726. package/src/fontawesome/svgs/solid/won-sign.svg +1 -0
  1727. package/src/fontawesome/svgs/solid/wrench.svg +1 -0
  1728. package/src/fontawesome/svgs/solid/x-ray.svg +1 -0
  1729. package/src/fontawesome/svgs/solid/yen-sign.svg +1 -0
  1730. package/src/fontawesome/svgs/solid/yin-yang.svg +1 -0
  1731. package/src/fontawesome/webfonts/fa-brands-400.eot +0 -0
  1732. package/src/fontawesome/webfonts/fa-brands-400.svg +3717 -0
  1733. package/src/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  1734. package/src/fontawesome/webfonts/fa-brands-400.woff +0 -0
  1735. package/src/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  1736. package/src/fontawesome/webfonts/fa-regular-400.eot +0 -0
  1737. package/src/fontawesome/webfonts/fa-regular-400.svg +801 -0
  1738. package/src/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  1739. package/src/fontawesome/webfonts/fa-regular-400.woff +0 -0
  1740. package/src/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  1741. package/src/fontawesome/webfonts/fa-solid-900.eot +0 -0
  1742. package/src/fontawesome/webfonts/fa-solid-900.svg +5034 -0
  1743. package/src/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  1744. package/src/fontawesome/webfonts/fa-solid-900.woff +0 -0
  1745. package/src/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  1746. package/src/index.js +41 -0
  1747. package/src/interface.css +403 -0
  1748. package/src/interface.js +1934 -0
  1749. package/src/keyboardManager.js +66 -0
  1750. package/src/model.js +724 -0
  1751. package/src/progress-wizard.min.css +189 -0
  1752. package/src/raw_html/modal_tree_manager.html +84 -0
  1753. package/src/style.css +76 -0
  1754. package/src/utils.js +406 -0
  1755. package/src/viewer.js +2103 -0
  1756. package/webpack.config.js +34 -0
package/src/viewer.js ADDED
@@ -0,0 +1,2103 @@
1
+ import * as d3 from 'd3';
2
+ import Interface from './interface.js'
3
+ import { tip as d3tip } from "d3-v6-tip";
4
+
5
+ d3.selection.prototype.moveToFront = function() {
6
+ return this.each(function() {
7
+ this.parentNode.appendChild(this);
8
+ });
9
+ };
10
+
11
+ var uid_viewer = 0 // unique id generator is bound to a single Viewer()
12
+ const collapse_ratio_vertical = 0.2 // how much a triangle is vertically narrow
13
+
14
+ // D3 viewer that render any model tree
15
+ export default class Viewer {
16
+
17
+ constructor(container) {
18
+
19
+ // General
20
+ this.container_object = container // related Container()
21
+ this.uid = uid_viewer ++; // unique viewer() id
22
+ this.data; // current model.data used
23
+ this.model = false; // current model
24
+
25
+ // D3
26
+ this.d3 = d3 // d3.js instance that contain information about zoom, etc..
27
+ this.hierarchy; // converted model data into d3 comptabile data format
28
+ this.d3_cluster; // d3 layout to compute 2D position for d3 hierarchy object
29
+ this.d3_cluster_data; // d3 layout fed with d3 hierarchy data
30
+ this.zoom;
31
+ this.id_gen = 0; // unique id generator for d3 id
32
+ this.max_length;
33
+ this.scale_branch_length; // scale between branch length and x pos
34
+
35
+ // DOM
36
+ this.svg;
37
+ this.svg_d3;
38
+ this.G;
39
+ this.G_d3;
40
+ this.container = document.getElementById(this.container_object.div_id);
41
+ this.container_d3 = d3.select(this.container);
42
+ this.container_d3.style('font-family', 'monospace !important' )
43
+
44
+ this.interface;
45
+
46
+ // Settings
47
+ this.settings = {
48
+ 'duration' : 500,
49
+ 'max_visible_leaves' : 30,
50
+ 'style': {
51
+ 'margin' : {top: 16, right: 16, bottom: 16, left: 96},
52
+
53
+ },
54
+ 'stack':{
55
+ 'labels' : ["Retained", "Duplicated", "Gained", "Lost", "Duplications", "Gains", "Losses"],
56
+ 'colors' : ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#ff7f0e", "#2ca02c", "#d62728"],
57
+ 'colorMap' : {},
58
+ }
59
+
60
+ }
61
+
62
+ this.width = parseFloat(window.getComputedStyle(this.container).width) - this.settings.style.margin.left - 2*this.settings.style.margin.right;
63
+ this.height = parseFloat(window.getComputedStyle(this.container).height) - 2*this.settings.style.margin.top - this.settings.style.margin.bottom;
64
+
65
+ this.colorScale;
66
+ this.set_color_scale()
67
+
68
+ // ZOOM
69
+ this.zoom = d3.zoom().on("zoom", (d, i) => { return this.zoomed(d,i)} )
70
+
71
+ // SVG
72
+ this.svg = this.container_d3.append("svg")
73
+ .attr("id", "svg" + this.uid)
74
+ .attr("width", this.width + this.settings.style.margin.left + this.settings.style.margin.right )
75
+ .attr("height", this.height + this.settings.style.margin.top + this.settings.style.margin.bottom)
76
+ .call(this.zoom)
77
+ .on("dblclick.zoom", null)
78
+ .call(this.zoom.transform, d3.zoomIdentity.translate(this.settings.style.margin.left, (this.height/2 + this.settings.style.margin.top) ))
79
+
80
+
81
+ this.svg_d3 = d3.select(this.svg)
82
+
83
+ // G element for zoom/transform
84
+ //this.G = this.svg.append("g")
85
+ // .attr("id", "master_g" + this.uid)
86
+ // .attr("transform", "translate("+ this.settings.style.margin.left + "," + (this.height/2 + this.settings.style.margin.top) + ")")
87
+ //this.G_d3 = d3.select(this.G);
88
+
89
+ this.build_master_g()
90
+
91
+ // D3 TREE LAYOUT
92
+ this.d3_cluster = d3.cluster()
93
+ .separation((a,b) => {return this.separate(a,b)})
94
+
95
+ // MISC.
96
+ this.settings.stack.colorMap = this.compute_color_map_stack()
97
+
98
+
99
+ }
100
+
101
+ // DATA
102
+ set_data(model, refresh_interface = true){
103
+
104
+
105
+ this.data = model.data;
106
+ this.model = model;
107
+
108
+
109
+ this.d3_cluster.nodeSize([this.model.settings.tree.node_vertical_size,this.model.settings.tree.node_horizontal_size])
110
+
111
+ this.build_d3_data();
112
+
113
+ this.set_color_scale()
114
+
115
+ if (refresh_interface){
116
+ this.interface = new Interface(this, this.container_object)
117
+ }
118
+
119
+
120
+ }
121
+
122
+ remove_data(){
123
+
124
+ this.data = null;
125
+ this.model = null;
126
+ this.destroy_master_g()
127
+ this.build_master_g()
128
+
129
+ }
130
+
131
+ destroy_master_g(){
132
+ this.svg.select("#master_g" + this.uid).remove()
133
+ this.G = null
134
+ this.G_d3 = null
135
+ }
136
+
137
+ build_master_g(){
138
+ this.G = this.svg.append("g")
139
+ .attr("id", "master_g" + this.uid)
140
+ .attr("transform", "translate("+ this.settings.style.margin.left + "," + (this.height/2 + this.settings.style.margin.top) + ")")
141
+ this.G_d3 = d3.select(this.G);
142
+ }
143
+
144
+ build_d3_data(){
145
+
146
+ // Build d3 hierarchy
147
+ this.hierarchy = d3.hierarchy(this.data, d => d.children );
148
+ this.hierarchy.x0 = this.height / 2;
149
+ this.hierarchy.y0 = 0;
150
+
151
+ // Transfer "collapse" information from model data to d3 data
152
+ this.hierarchy.each(d => {
153
+
154
+ d.ID = null;
155
+
156
+ if (d.data.collapse) {
157
+ d._children = d.children;
158
+ d.children = null;
159
+ }
160
+ else {
161
+ d._children = null;
162
+ }
163
+ })
164
+
165
+ this.build_d3_cluster()
166
+
167
+
168
+
169
+ }
170
+
171
+ build_d3_cluster(){
172
+
173
+ // Build d3 layout
174
+ this.d3_cluster_data = this.d3_cluster(this.hierarchy);
175
+
176
+ // compute the branch length from the root till each nodes (d.branch_size)
177
+ this.max_length = 0
178
+ this.max_depth = 0
179
+ this.hierarchy.eachBefore(d => {
180
+ if (d.parent) {
181
+ d.branch_size = d.parent.branch_size + d.data.branch_length
182
+ if (d.branch_size > this.max_length) {
183
+ this.max_length = d.branch_size
184
+ }
185
+ if (d.depth > this.max_depth) {
186
+ this.max_depth = d.depth
187
+ }
188
+
189
+ } else {
190
+ d.branch_size = 0
191
+ }
192
+ })
193
+
194
+ this.compute_stack_data()
195
+
196
+ this.build_scale_branch_length() // todo dont build scale on collapse
197
+
198
+ //this.interface = new Interface(this, this.container_object)
199
+
200
+
201
+
202
+ }
203
+
204
+ compute_stack_data(){
205
+ // store required data for stack on node
206
+ if (this.model.settings.has_histogram_data){
207
+ this.hierarchy.eachBefore((d, i, node) => {
208
+
209
+ if( d.data.evolutionaryEvents) {
210
+
211
+ let stackData = []
212
+ stackData['genes'] = this.barStack(d, 'genes');
213
+ stackData['events'] = this.barStack(d, 'events');
214
+
215
+ d.stackData = stackData
216
+ }
217
+ else {
218
+ //console.log("No data for stack in ", d)
219
+ }
220
+ })
221
+ }
222
+ }
223
+
224
+ build_scale_branch_length(){
225
+
226
+ var max_y = 0;
227
+ this.d3_cluster_data.descendants().forEach(d => {
228
+ if (d.y > max_y) {
229
+ max_y = d.y
230
+ }
231
+ })
232
+
233
+
234
+
235
+
236
+ this.scale_branch_length = d3.scaleLinear().domain([0, this.max_length]).range([this.d3_cluster_data.y, max_y])
237
+ this.scale_branch_depth = d3.scaleLinear().domain([0, this.max_depth]).range([this.d3_cluster_data.y, max_y])
238
+ }
239
+
240
+ // RENDERING
241
+ render(source){
242
+
243
+ d3.selectAll("#menu-node").remove()
244
+
245
+
246
+ this.render_tooltip()
247
+
248
+ // Get the nodes and edges
249
+ this.nodes = this.d3_cluster_data.descendants();
250
+ this.nodes = this.nodes.sort((a,b) => {return a.x - b.x})
251
+
252
+ this.links = this.d3_cluster_data.descendants().slice(1);
253
+
254
+
255
+ // And render them
256
+ this.render_nodes(source)
257
+ this.render_edges(source)
258
+
259
+
260
+ if (this.model.settings.first_time_render) {
261
+ this.model.settings.first_time_render = false
262
+
263
+ if (phylo.settings.phylostratigraphy){
264
+
265
+
266
+ source.children.forEach(element =>
267
+ this.container_object.trigger_("collapseAll", element.data, element));
268
+
269
+ this.maximise_zoom()
270
+ this.svg.call(this.zoom.scaleBy, 0.5)
271
+ this.container_object.history_actions = []
272
+
273
+ }
274
+
275
+ else{
276
+ this.fit_to_viewer_height()
277
+
278
+ }
279
+
280
+ }
281
+
282
+
283
+ }
284
+
285
+ render_tooltip(){
286
+
287
+ var idd = "tooltip" + this.uid
288
+
289
+ d3.selectAll(".tooltip").remove()
290
+
291
+ this.tooltip = this.d3.select('body').append("div")
292
+ .style("opacity", 0)
293
+ .style("position", 'absolute')
294
+ .attr("class", "tooltip")
295
+ .attr("id", idd)
296
+ .style("background-color", "white")
297
+ .style("border", "solid")
298
+ .style("border-width", "1px")
299
+ .style("border-radius", "5px")
300
+ .style("padding", "10px")
301
+
302
+
303
+ }
304
+
305
+ set_tooltip_text(node){
306
+
307
+ var html = "";
308
+
309
+ if (phylo.settings.phylostratigraphy){
310
+
311
+ var datum = node.data.evolutionaryEvents
312
+
313
+ html += `<b># Events</b> <br>`
314
+ html += `Gains: ${datum.gained} <br>`
315
+ html += `Duplications: ${datum.duplications} <br>`
316
+ html += `Losses: ${datum.lost} <br> <br>`
317
+
318
+ html += `<b># Genes</b> <br>`
319
+ html += `Gained: ${datum.gained} <br>`
320
+ html += `Duplicated: ${datum.duplicated} <br>`
321
+ html += `Retained: ${datum.retained} <br>`
322
+ html += `Lost: ${datum.lost} <br>`
323
+ }
324
+
325
+ else {
326
+ for (var [key, value] of Object.entries(node.data.extended_informations)) {
327
+
328
+ if ((/^-?[\d]*(\.[\d]+)?$/g).test(value)) {
329
+
330
+ if (value % 1 === 0) {
331
+ html += `${key}: ${value} <br>`
332
+ }
333
+
334
+ else{
335
+ //console.log(value)
336
+ html += `${key}: ${parseFloat(value).toFixed(3)} <br>`
337
+ }
338
+ }
339
+ else{
340
+ html += `${key}: ${value} <br>`
341
+ }
342
+
343
+
344
+ }
345
+ }
346
+
347
+ this.tooltip.html(html);
348
+ }
349
+
350
+ render_nodes(source){
351
+
352
+ var self_render = this;
353
+ var on_screen_text_size = this.compute_node_font_size()
354
+ var subsampling_index = -1
355
+ var subsampling_module = 1 + Math.floor((on_screen_text_size)/this.model.settings.tree.node_vertical_size)
356
+ var real_node_radius = this.compute_node_radius()
357
+ var show_duplications = this.model.settings.display_duplication
358
+ var mirror_factor = this.model.settings.mirror ? -1 : 1
359
+ var deepest_tip = 0;
360
+
361
+ // update x pos with branch length
362
+ this.nodes.forEach(d => {
363
+ if (this.model.settings.has_branch_lenght && this.model.settings.use_branch_lenght) {
364
+ d.y = this.scale_branch_length(d.branch_size)
365
+ }
366
+ else{
367
+ d.y = this.scale_branch_depth(d.depth)
368
+ }
369
+
370
+ if (!this.model.settings.display_leaves){
371
+ d.subsampled = false;
372
+ return
373
+ }
374
+
375
+
376
+ if (!this.model.settings.subsample_label){
377
+ d.subsampled = true;
378
+ return
379
+ }
380
+
381
+ if (!d.children ) {
382
+
383
+ if (d.data.collapse && d.data.triangle_height >= on_screen_text_size){
384
+ d.subsampled = true
385
+ return
386
+ }
387
+
388
+ subsampling_index += 1;
389
+ d.subsampled = (subsampling_index % subsampling_module === 0) ;
390
+ }
391
+
392
+ })
393
+
394
+ // Update the nodes...
395
+ var node = this.G.selectAll('g.node')
396
+ .data(this.nodes, d => { return d.ID || (d.ID = ++this.id_gen); })
397
+
398
+ // Enter any new modes at the parent's previous position.
399
+ var nodeEnter = node.enter().append('g')
400
+ .attr('class', 'node')
401
+ .attr("id", d => {return this.uid + "_" + d.ID})
402
+ .attr("transform", function(d) {
403
+ return "translate(" + mirror_factor*source.y0 + "," + source.x0 + ")";
404
+ })
405
+ .on('click', (d, i) => {
406
+ if (i.children || i._children) {this.click_nodes(d,i)}
407
+ })
408
+ .on('mouseover', (d, i) => {
409
+ if (this.model.settings.show_tooltips){
410
+
411
+ var target = d.target || d.srcElement;
412
+
413
+ if (phylo.settings.phylostratigraphy && target.nodeName != 'rect' ) {
414
+ return
415
+ }
416
+
417
+ this.tooltip.transition().duration(50)
418
+ .style('display', 'block')
419
+ .style('opacity', 0.9)
420
+ .style('left', (d.pageX + 12) + 'px')
421
+ .style('top', d.pageY + 'px');
422
+
423
+ this.set_tooltip_text(i);
424
+
425
+
426
+ }
427
+
428
+ })
429
+ .on('mousemove', d => {
430
+ if (this.model.settings.show_tooltips) {
431
+ this.tooltip
432
+ .style('left', (d.pageX + 12) + 'px')
433
+ .style('top', d.pageY + 'px');
434
+ }
435
+ })
436
+ .on('mouseout', () => {
437
+ if (this.model.settings.show_tooltips) {
438
+ this.tooltip
439
+ .style('display', 'none');
440
+ }
441
+ });
442
+
443
+
444
+ // Add Circle for the nodes
445
+ nodeEnter.append('circle')
446
+ .attr('class', 'node')
447
+ .attr('r', 1e-6)
448
+ .style("stroke", "transparent" )
449
+ .style("stroke-width", "6px" )
450
+ .style("fill", function(d) {
451
+ return d.data.duplication && show_duplications ? 'red' : d._children ? "lightsteelblue" : "#fff";
452
+ });
453
+
454
+
455
+ this.node_face_enter(nodeEnter)
456
+
457
+ // create null triangle
458
+ nodeEnter.append("path")
459
+ .attr("class", "triangle")
460
+ .style("fill", "#666")
461
+ .attr("d", function (d) {
462
+ return "M" + 0 + "," + 0 + "L" + 0 + "," + 0 + "L" + 0 + "," + 0 + "L" + 0 + "," + 0;
463
+ })
464
+
465
+ if (this.model.settings.has_histogram_data && this.model.settings.show_histogram) {
466
+ // create null stack
467
+ nodeEnter.append("g")
468
+ .attr("class", "stackGroup")
469
+ }
470
+
471
+ this.nodeUpdate = nodeEnter.merge(node);
472
+
473
+ // Transition to the proper position for the node
474
+ this.nodeUpdate.transition()
475
+ .duration(this.settings.duration)
476
+ .attr("transform", (d) => {
477
+ return "translate(" + mirror_factor*d.y + "," + d.x + ")";
478
+ });
479
+
480
+
481
+ // Update the node attributes and style
482
+
483
+ this.nodeUpdate.select('circle.node')
484
+ .attr('r', d => d._children || (!this.model.rooted && d.data.root ) ? 1e-6 : real_node_radius )
485
+ .style("fill", function(d) {
486
+ return d.data.duplication && show_duplications ? 'red' : d._children ? "lightsteelblue" : "#666";
487
+ })
488
+ .attr('cursor', 'pointer');
489
+
490
+ this.node_face_update(this.nodeUpdate)
491
+
492
+ // Remove any exiting nodes
493
+ var nodeExit = node.exit().transition()
494
+ .duration(this.settings.duration)
495
+ .attr("transform", function(d) {
496
+ return "translate(" + source.y + "," + source.x + ")";
497
+ })
498
+ .remove();
499
+
500
+
501
+ // nullify the triangle
502
+ nodeExit.select("path")
503
+ .attr("d", function (d) {
504
+ return "M" + 0 + "," + 0 + "L" + 0 + "," + 0 + "L" + 0 + "," + 0 + "L" + 0 + "," + 0;
505
+ });
506
+
507
+ if (this.model.settings.has_histogram_data && this.model.settings.show_histogram) {
508
+ // create null stack
509
+ nodeEnter.selectAll("g .stackGroup").remove()
510
+ }
511
+
512
+
513
+ // On exit reduce the node circles size to 0
514
+ nodeExit.select('circle')
515
+ .attr('r', 1e-6);
516
+
517
+ this.node_face_exit(nodeExit)
518
+
519
+ // Add collapsed triangle
520
+ this.nodeUpdate.each((d,i,nodes) => {
521
+
522
+ if (d._children) {
523
+
524
+ d3.select(nodes[i]).select("path").transition().duration(self_render.settings.duration)
525
+ .attr("d", (d) => {
526
+
527
+ const average = arr => arr.reduce( ( p, c ) => p + c.data.distance_to_root, 0 ) / arr.length;
528
+
529
+ var y = average(self_render.getChildLeaves(d)) -d.data.distance_to_root
530
+
531
+ var y_length = self_render.scale_branch_length(average(self_render.getChildLeaves(d))-d.data.distance_to_root)
532
+ var x_length = self_render.model.settings.tree.node_vertical_size * Math.sqrt(self_render.getChildLeaves(d).length) * collapse_ratio_vertical
533
+
534
+
535
+ d.data.triangle_height = 2*x_length
536
+ d.data.triangle_width = y_length
537
+
538
+ this.node_face_update(d3.select(nodes[i]) )
539
+
540
+
541
+
542
+
543
+ return "M" + 0 + "," + 0 + "L" + mirror_factor*y_length + "," + (-x_length) + "L" + mirror_factor*y_length + "," + (x_length) + "L" + 0 + "," + 0;
544
+ })
545
+
546
+ }
547
+ if (d.children) {
548
+ d3.select(nodes[i]).select("path").transition().duration(self_render.settings.duration)
549
+ .attr("d", function (d) {
550
+ d.data.triangle_height = 0
551
+ return "M" + 0 + "," + 0 + "L" + 0 + "," + 0 + "L" + 0 + "," + 0 + "L" + 0 + "," + 0;
552
+ });
553
+ }
554
+ })
555
+
556
+ // align to tip
557
+
558
+ if (this.model.settings.align_tip){
559
+
560
+ if (this.model.settings.has_branch_lenght && this.model.settings.use_branch_lenght) {
561
+
562
+ // update y pos with branch length
563
+ this.nodes.forEach(d => {
564
+
565
+ var distance_root_to_tip = this.scale_branch_length(d.data.distance_to_root) + (d.data.triangle_width ? d.data.triangle_width : 0)
566
+
567
+ if (deepest_tip <distance_root_to_tip ){
568
+ deepest_tip = distance_root_to_tip
569
+ }
570
+ })
571
+
572
+ // Transition to the proper position for the node
573
+ this.nodeUpdate.transition()
574
+ .duration(this.settings.duration)
575
+ .attr("transform", (d) => {
576
+
577
+ if (d.children ){
578
+ return "translate(" + (mirror_factor*d.y) + "," + d.x + ")";
579
+ }
580
+
581
+ else if (d._children) {
582
+ d.off_set_to_tip = deepest_tip - this.scale_branch_length(d.data.distance_to_root) - d.data.triangle_width
583
+ return "translate(" + (mirror_factor*(d.y + d.off_set_to_tip)) + "," + d.x + ")";
584
+ }
585
+
586
+ else {
587
+ d.off_set_to_tip = deepest_tip - this.scale_branch_length(d.data.distance_to_root)
588
+ return "translate(" + (mirror_factor* (d.y + d.off_set_to_tip)) + "," + d.x + ")";
589
+ }
590
+
591
+
592
+
593
+
594
+ });
595
+ }
596
+ else{
597
+
598
+ // update y pos with branch length
599
+ this.nodes.forEach(d => {
600
+
601
+ var distance_root_to_tip = this.scale_branch_depth(d.data.depth) + (d.data.triangle_width ? d.data.triangle_width : 0)
602
+
603
+ if (deepest_tip <distance_root_to_tip ){
604
+ deepest_tip = distance_root_to_tip
605
+ }
606
+ })
607
+
608
+ // Transition to the proper position for the node
609
+ this.nodeUpdate.transition()
610
+ .duration(this.settings.duration)
611
+ .attr("transform", (d) => {
612
+
613
+ if (d.children ){
614
+ return "translate(" + (mirror_factor*d.y) + "," + d.x + ")";
615
+ }
616
+
617
+ else if (d._children) {
618
+ d.off_set_to_tip = deepest_tip - this.scale_branch_depth(d.data.depth) - d.data.triangle_width
619
+ return "translate(" + (mirror_factor*(d.y + d.off_set_to_tip)) + "," + d.x + ")";
620
+ }
621
+
622
+ else {
623
+ d.off_set_to_tip = deepest_tip - this.scale_branch_depth(d.data.depth)
624
+ return "translate(" + (mirror_factor* (d.y + d.off_set_to_tip)) + "," + d.x + ")";
625
+ }
626
+
627
+
628
+
629
+
630
+ });
631
+ }
632
+
633
+
634
+
635
+
636
+ }
637
+
638
+
639
+ // Add Stack
640
+ if (this.model.settings.has_histogram_data && this.model.settings.show_histogram){
641
+
642
+ this.nodeUpdate.filter(function(d){
643
+ return d.stackData && d.data.depth > 0
644
+ }).each((d, i, nodes) => {this.render_stack(nodes[i],d)});
645
+
646
+ }
647
+
648
+
649
+ // Store the old positions for transition.
650
+ this.nodes.forEach(function(d){
651
+ d.x0 = d.x;
652
+ d.y0 = mirror_factor * d.y;
653
+ });
654
+
655
+
656
+
657
+
658
+
659
+
660
+ }
661
+
662
+ render_edges(source){
663
+
664
+ var self_render = this;
665
+ var mirror_factor = this.model.settings.mirror ? -1 : 1
666
+ var real_edges_width = this.compute_edge_width()
667
+
668
+ // Update the links...
669
+ var link = this.G.selectAll('path.link')
670
+ .data(this.links, d => { return d.ID || (d.ID = ++this.id_gen); });
671
+
672
+ // Enter any new links at the parent's previous position.
673
+ var linkEnter = link.enter().insert('path', "g")
674
+ .attr("class", "link")
675
+ .style("cursor","pointer")
676
+ .style("fill","none")
677
+ .style('stroke-width', real_edges_width + 'px' )
678
+ .attr('d', d => this.square_edges(
679
+ {x: source.x0, y: source.y0},{x: source.x0, y: source.y0}))
680
+
681
+ var linkUpdate = linkEnter.merge(link);
682
+
683
+ // Transition back to the parent element position
684
+ linkUpdate.transition()
685
+ .duration(this.settings.duration)
686
+ .style('stroke', (d) => {return this.color_edge(d);})
687
+ .style('stroke-width', real_edges_width + 'px' )
688
+ .attr('d', d => this.square_edges(d, d.parent))
689
+
690
+ linkUpdate.on('click', (d,i) => {
691
+ if (phylo.settings.phylostratigraphy){return}
692
+ this.click_edges(d,i)})
693
+
694
+ // Remove any exiting links
695
+ var linkExit = link.exit().transition()
696
+ .duration(this.settings.duration)
697
+ .attr('d', d => this.square_edges({x: source.x, y: source.y}, {x: source.x, y: source.y}))
698
+ .remove();
699
+
700
+ }
701
+
702
+ color_edge(edge){
703
+
704
+ if (edge.data.search_path){ return '#FF0000'}
705
+
706
+ else if (this.model.settings.style.color_accessor !== null){
707
+
708
+ var v = edge.data.extended_informations[this.model.settings.style.color_accessor];
709
+ if (typeof v == "undefined" ) {return "#555"}
710
+ else {return this.colorScale(v)}
711
+
712
+ }
713
+
714
+ else if (edge.data.elementS) {
715
+ return this.colorScale(edge.data.elementS)
716
+ }
717
+
718
+ else {
719
+ return "#555"
720
+ }
721
+
722
+ }
723
+
724
+ set_color_scale(){
725
+
726
+ var colorScaleDomain = false;
727
+ var colorScaleRange;
728
+ this.intercolor;
729
+ var number;
730
+
731
+ if (typeof this.model != "undefined" && this.model) {
732
+
733
+ number = this.model.settings.style.number_domain
734
+
735
+
736
+ if (this.model.settings.style.color_accessor != null ) {
737
+
738
+ var ms = this.model.settings.style
739
+ var ca = ms.color_accessor;
740
+ if (ms.color_extent_max[ca] == ms.color_extent_min[ca]){
741
+ this.intercolor = d3.interpolate( ms.color_extent_max[ca], ms.color_extent_max[ca]-1)
742
+ }else{
743
+ this.intercolor = d3.interpolate( ms.color_extent_max[ca], ms.color_extent_min[ca])
744
+ }
745
+
746
+ colorScaleRange = this.model.settings.style.color_domain;
747
+
748
+ }
749
+
750
+ else {
751
+ this.intercolor = d3.interpolate(1,0)
752
+ colorScaleRange = this.model.settings.style.color_domain;
753
+ }
754
+
755
+
756
+ }
757
+ else {
758
+ number = '5';
759
+ colorScaleRange = ['#253494', '#2C7FB8', '#41B6C4', '#C7E9B4', '#FFFFCC']
760
+ this.intercolor = d3.interpolate(1, 0);
761
+ }
762
+
763
+
764
+
765
+ switch (number) {
766
+ case '2':
767
+ colorScaleDomain = [this.intercolor(0), this.intercolor(1)]
768
+ break;
769
+ case '3':
770
+ colorScaleDomain = [this.intercolor(0), this.intercolor(0.5) , this.intercolor(1)]
771
+ break;
772
+ case '4':
773
+ colorScaleDomain = [this.intercolor(0), this.intercolor(0.33), this.intercolor(0.66) , this.intercolor(1)]
774
+ break;
775
+ case '5':
776
+ colorScaleDomain = [this.intercolor(0), this.intercolor(0.25) ,this.intercolor(0.5) ,this.intercolor(0.75) , this.intercolor(1)]
777
+
778
+ }
779
+
780
+
781
+ this.colorScale = d3.scaleLinear()
782
+ .domain(colorScaleDomain)
783
+ .range(colorScaleRange);
784
+
785
+
786
+
787
+ }
788
+
789
+ separate(a, b) {
790
+
791
+ var spacer = 1;
792
+
793
+ spacer += a._children ? Math.sqrt(this.getChildLeaves(a).length) * collapse_ratio_vertical : 0
794
+ spacer += b._children ? Math.sqrt(this.getChildLeaves(b).length) * collapse_ratio_vertical : 0
795
+
796
+ return spacer;
797
+ }
798
+
799
+ zoomed({transform}) {
800
+
801
+
802
+ d3.select("#master_g" + this.uid).attr("transform", transform);
803
+
804
+ if (this.interface && this.model.settings.use_branch_lenght) {
805
+ this.interface.update_scale_value(transform.k);
806
+ }
807
+
808
+ if (typeof this.G != "undefined" && this.model != false ){
809
+
810
+ var on_screen_text_size = this.compute_node_font_size()
811
+ var subsampling_index = -1
812
+ var subsampling_module = 1 + Math.floor((on_screen_text_size)/this.model.settings.tree.node_vertical_size)
813
+
814
+ // update x pos with branch length
815
+ this.nodes.forEach(d => {
816
+
817
+
818
+ if (!this.model.settings.display_leaves ){
819
+ d.subsampled = false;
820
+ return
821
+ }
822
+
823
+ if (!this.model.settings.subsample_label){
824
+ d.subsampled = true;
825
+ return
826
+ }
827
+
828
+
829
+
830
+ if (!d.children ) {
831
+
832
+ if (d.data.collapse && d.data.triangle_height >= on_screen_text_size){
833
+ d.subsampled = true
834
+ return
835
+ }
836
+
837
+ subsampling_index += 1;
838
+ d.subsampled = (subsampling_index % subsampling_module === 0) ;
839
+ }
840
+
841
+
842
+ })
843
+
844
+
845
+ var real_node_radius = this.compute_node_radius()
846
+ this.G.selectAll('g.node').selectAll('circle').attr('r', (d) => {
847
+
848
+ return d.data.collapse || (!this.model.rooted && d.data.root) ? 1e-6 : real_node_radius }
849
+ )
850
+
851
+ this.node_face_update(this.G.selectAll('g.node'))
852
+
853
+ this.model.store_zoomTransform(transform)
854
+
855
+ var real_edges_width = this.compute_edge_width()
856
+ this.G.selectAll('path.link').style('stroke-width', real_edges_width + 'px')
857
+
858
+
859
+ // if lock zoom activate
860
+ if (phylo.settings.compareMode && phylo.settings.sync_zoom && !phylo.settings.syncing_zoom){
861
+
862
+ phylo.settings.syncing_zoom = true
863
+
864
+ var other_container = phylo.bound_container[0] === this.container_object ? phylo.bound_container[1] : phylo.bound_container[0]
865
+
866
+ if (other_container.models.length > 0 && other_container.viewer.model != false){
867
+ var t = other_container.viewer.d3.zoomTransform(other_container.viewer.svg.node())
868
+
869
+ var ratio = this.max_length / other_container.viewer.max_length
870
+
871
+
872
+ other_container.viewer.set_zoom(transform.k/ratio,t.x,t.y)
873
+
874
+ }
875
+ phylo.settings.syncing_zoom = false
876
+
877
+
878
+
879
+ }
880
+
881
+
882
+
883
+
884
+ }
885
+
886
+
887
+ }
888
+
889
+ square_edges(s, d) {
890
+
891
+ var mirror_factor = this.model.settings.mirror ? -1 : 1
892
+
893
+
894
+ if (!this.model.settings.align_tip || isNaN(s.off_set_to_tip) ){
895
+ return "M" + mirror_factor*s.y + "," + s.x + "L" + mirror_factor*d.y + "," + s.x + "L" + mirror_factor*d.y + "," + d.x;
896
+
897
+ }
898
+ else {
899
+ return "M" + (mirror_factor * (s.y + s.off_set_to_tip)) + "," + s.x + "L" + mirror_factor * d.y + "," + s.x + "L" + mirror_factor * d.y + "," + d.x;
900
+ }
901
+ }
902
+
903
+ click_nodes(event, node) {
904
+
905
+ if (node.parent != null){
906
+
907
+ var menu = [
908
+ {
909
+ title: node.data.collapse ? 'Expand' : 'Collapse' ,
910
+ action: () => {this.container_object.trigger_("collapse", node.data, node)}
911
+ },
912
+ {
913
+ title: 'Collapse All' ,
914
+ action: () => {this.container_object.trigger_("collapseAll", node.data, node)}
915
+ },
916
+ {
917
+ title: 'Expand All' ,
918
+ action: () => {this.container_object.trigger_("expandAll", node.data, node)}
919
+ },
920
+ {
921
+ title: 'Swap subtrees' ,
922
+ action: () => {this.container_object.trigger_("swap", node.data, node)}
923
+ },
924
+ {
925
+ title: 'Close' ,
926
+ action: () => {
927
+ d3.select("#menu-node").remove()
928
+ }
929
+ }
930
+ ]
931
+ }
932
+ else { // root
933
+ var menu = [
934
+ {
935
+ title: 'Expand All' ,
936
+ action: () => {this.container_object.trigger_("expandAll", node.data, node)}
937
+ },
938
+ {
939
+ title: 'Swap subtrees' ,
940
+ action: () => {this.container_object.trigger_("swap", node.data, node)}
941
+ },
942
+ {
943
+ title: 'Close' ,
944
+ action: () => {
945
+ d3.select("#menu-node").remove()
946
+ }
947
+ }
948
+ ]
949
+ }
950
+
951
+ var t = this.d3.zoomTransform(this.svg.node())
952
+
953
+ let div_i = this.container_object.div_id;
954
+
955
+ let py = document.getElementById(div_i).offsetTop
956
+ let px = document.getElementById(div_i).offsetLeft
957
+
958
+ var xy = t.invert([event.pageX-px,event.pageY-py]);
959
+
960
+ if(this.model.settings.mirror){
961
+ var x= -xy[0]
962
+ var y = xy[1]
963
+ }
964
+ else{
965
+ var x= xy[0]
966
+ var y = xy[1]
967
+ }
968
+
969
+ this.create_menu_click(menu, x,y,event,node)
970
+
971
+ }
972
+
973
+ click_edges(event,edge) {
974
+
975
+ var t = this.d3.zoomTransform(this.svg.node())
976
+
977
+ let div_i = this.container_object.div_id;
978
+
979
+ let py = document.getElementById(div_i).offsetTop
980
+ let px = document.getElementById(div_i).offsetLeft
981
+
982
+ var xy = t.invert([event.pageX-px,event.pageY-py]);
983
+
984
+ // because Chrome returns a MouseEvent for d3.event while Firefox returns a click. \o/
985
+ var node_from_event = event.path ? event.path[0].__data__ : event.target.__data__
986
+
987
+
988
+
989
+ var menu = [{
990
+ title: 'Reroot' ,
991
+ action: () => {
992
+ this.container_object.trigger_("reroot", node_from_event.data)
993
+ }
994
+ }, {
995
+ title: 'Trim subtree' ,
996
+ action: () => {
997
+ this.container_object.trigger_("trim", node_from_event)
998
+ }
999
+ },{
1000
+ title: 'Open as new tree' ,
1001
+ action: () => {
1002
+ this.container_object.create_model_from_hierarchy_node(node_from_event)
1003
+
1004
+ }
1005
+ },
1006
+ {
1007
+ title: 'Close' ,
1008
+ action: () => {
1009
+ d3.select("#menu-node").remove()
1010
+ }
1011
+ }]
1012
+
1013
+ if(this.model.settings.mirror){
1014
+ var x= -xy[0]
1015
+ var y = xy[1]
1016
+ }
1017
+ else{
1018
+ var x= xy[0]
1019
+ var y = xy[1]
1020
+ }
1021
+
1022
+ this.create_menu_click(menu,x,y, event, edge)
1023
+ }
1024
+
1025
+ create_menu_click(menu, x ,y, event, e){
1026
+
1027
+ if (this.model.settings.mirror){
1028
+ x=-x;
1029
+ }
1030
+
1031
+ d3.select("#menu-node").remove()
1032
+
1033
+ /* build context menu */
1034
+ var m = this.G.append("g")
1035
+ m.style('display', 'none');
1036
+ m.attr('id', 'menu-node');
1037
+
1038
+
1039
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
1040
+
1041
+ var fs = 20/k // scaled font size
1042
+ var vps = 12/k // scaled vertical margin
1043
+ var hps = 10/k // scaled horizontal margin
1044
+ var rs = 8/k // scaled radius size
1045
+
1046
+ var r = m.append('rect')
1047
+ .attr('height', menu.length * (fs+vps) + vps + 'px')
1048
+ .style('fill', "#eee")
1049
+ .attr('rx', rs)
1050
+ .attr('ry', rs)
1051
+
1052
+ var gg = m.selectAll('menu_item')
1053
+ .data(menu)
1054
+ .enter()
1055
+ .append('g')
1056
+ gg.attr('cursor', 'pointer')
1057
+ .attr('transform', function(d, i) {
1058
+ return 'translate(' + hps + ',' + ((i + 1) * (fs+vps)) + ')';
1059
+ })
1060
+ .on('mouseover', function(d){
1061
+ d3.select(this).style('fill', 'steelblue');
1062
+ })
1063
+ .on('mouseout', function(d){
1064
+ d3.select(this).style('fill', 'black');
1065
+ })
1066
+ .on('click', function(d,i){
1067
+ i.action(d);
1068
+ })
1069
+
1070
+ var close = null
1071
+
1072
+ var t = gg.append('text')
1073
+ .attr('cursor', 'pointer')
1074
+ .attr("font-weight", (d) => {
1075
+ return d.title === "Close" ? 900 : 400
1076
+ })
1077
+ .style('font-size', d => {
1078
+ return fs + 'px';
1079
+ })
1080
+ .text(function(d) {
1081
+ return d.title;
1082
+ })
1083
+
1084
+
1085
+ r.attr('width', 20 );
1086
+ m.attr('transform', 'translate(' + x + ',' + y + ')');
1087
+ m.style('display', 'block');
1088
+ m.datum(event);
1089
+
1090
+
1091
+
1092
+ setTimeout(function(){
1093
+
1094
+ var w = 0;
1095
+ var w_close = 0
1096
+
1097
+ t.each(function(d){
1098
+
1099
+ var l = d3.select(this).node().getComputedTextLength();
1100
+ if (l > w) w = l;
1101
+
1102
+ if (d.title == "Close"){
1103
+ w_close = l;
1104
+ }
1105
+
1106
+ })
1107
+
1108
+ var w_menu = w + 2*hps
1109
+ r.attr('width', w_menu );
1110
+
1111
+ t.each(function(d){
1112
+ if (d.title == "Close"){
1113
+ d3.select(this).attr('transform', 'translate(' + (w - w_close)/2 + ',' + 0 + ')');
1114
+ }
1115
+ })
1116
+
1117
+
1118
+ }, 50)
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+ }
1125
+
1126
+ apply_collapse_from_data_to_d3(data, d){
1127
+ if (data.collapse && d.children != null ) {
1128
+ d._children = d.children;
1129
+ d.children = null;
1130
+ }
1131
+ else if (data.collapse == false && d._children != null) {
1132
+ d.children = d._children;
1133
+ d._children = null;
1134
+
1135
+ }
1136
+
1137
+ }
1138
+
1139
+ apply_collapseAll_from_data_to_d3(data, root_node){
1140
+
1141
+ var node = root_node , nodes = [node], children, i, index = -1;
1142
+
1143
+ while (node = nodes.pop()) {
1144
+
1145
+
1146
+ this.apply_collapse_from_data_to_d3(node.data, node)
1147
+
1148
+
1149
+ if (children = node.children) {
1150
+ for (i = children.length - 1; i >= 0; --i) {
1151
+ nodes.push(children[i]);
1152
+ }
1153
+ }
1154
+
1155
+ if (children = node._children) {
1156
+ for (i = children.length - 1; i >= 0; --i) {
1157
+ nodes.push(children[i]);
1158
+ }
1159
+ }
1160
+
1161
+ }
1162
+
1163
+ }
1164
+
1165
+ apply_expandAll_from_data_to_d3(data, root_node){
1166
+
1167
+ var node = root_node , nodes = [node], children, i, index = -1;
1168
+
1169
+ while (node = nodes.pop()) {
1170
+
1171
+ this.apply_collapse_from_data_to_d3(node.data, node)
1172
+
1173
+ if (children = node.children) {
1174
+ for (i = children.length - 1; i >= 0; --i) {
1175
+ nodes.push(children[i]);
1176
+ }
1177
+ }
1178
+
1179
+ if (children = node._children) {
1180
+ for (i = children.length - 1; i >= 0; --i) {
1181
+ nodes.push(children[i]);
1182
+ }
1183
+ }
1184
+
1185
+ }
1186
+
1187
+ }
1188
+
1189
+ apply_swap_from_data_to_d3(data, d){
1190
+
1191
+ var e = d.children.pop()
1192
+ d.children.unshift(e)
1193
+
1194
+ }
1195
+
1196
+ apply_unswap_from_data_to_d3(data, d){
1197
+
1198
+ var e = d.children.shift()
1199
+ d.children.push(e)
1200
+
1201
+ }
1202
+
1203
+ set_zoom(k,x,y) {
1204
+
1205
+ var x = this.model.settings.mirror ? this.width - x: x
1206
+
1207
+ d3.select('#svg' + this.uid )
1208
+ .call(this.zoom.transform, d3.zoomIdentity.translate(x,y).scale(k) );
1209
+ }
1210
+
1211
+ get_height_hierarchy(){
1212
+
1213
+
1214
+ var max_x = 0;
1215
+ var min_x = 9999999999;
1216
+
1217
+ this.hierarchy.each(d => {
1218
+
1219
+ if(d.x > max_x){max_x= d.x}
1220
+ if(d.x < min_x){min_x= d.x}
1221
+ }
1222
+ );
1223
+
1224
+
1225
+ return {
1226
+ 'h':max_x - min_x,
1227
+ 'max_x':max_x ,
1228
+ 'min_x': min_x,
1229
+ }
1230
+
1231
+ }
1232
+
1233
+ get_number_visible_tree_tips_at_depth(depth){
1234
+
1235
+ var tips = 0;
1236
+
1237
+ this.model.traverse(this.model.data, function(node,children){
1238
+
1239
+ if (node.depth > depth) {return}
1240
+
1241
+ if (children == null || node.collapse == true) {
1242
+ tips+=1
1243
+ }
1244
+ } )
1245
+
1246
+ return tips
1247
+
1248
+ }
1249
+
1250
+ maximise_zoom(){
1251
+
1252
+ var old_zoom = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node())
1253
+ this.container_object.add_action('Stretch tree', this, this.render_with_settings, [old_zoom.k, old_zoom.x,old_zoom.y,this.model.settings.tree.node_horizontal_size, []] )
1254
+ // Adjust Zoom-y to fit height
1255
+ var r = this.get_height_hierarchy()
1256
+ var vh = this.height - 80 // viewer
1257
+ var th = (Math.abs(r.min_x)+Math.abs(r.max_x))
1258
+ var h_scale = vh/th // ratio
1259
+
1260
+ var x_tr = - this.hierarchy.x + 40
1261
+
1262
+ var off_rooting = (Math.abs(r.min_x)-Math.abs(r.max_x))/2
1263
+ var y_tr = -this.hierarchy.y + this.height/2 + off_rooting*h_scale
1264
+ this.set_zoom(h_scale, x_tr, y_tr)
1265
+
1266
+
1267
+ var w = 0
1268
+
1269
+ this.hierarchy.leaves().forEach((e) => {
1270
+ let posy = e.y
1271
+ if (e.data.collapse){
1272
+ posy += e.data.triangle_width
1273
+ }
1274
+ w = posy > w ? posy : w
1275
+ })
1276
+
1277
+ var ns = this.model.settings.tree.node_horizontal_size
1278
+ var w_scale = (this.width - 80)/(w*h_scale)
1279
+
1280
+ this.modify_node_size('horizontal', (ns * w_scale) - ns )
1281
+
1282
+ var real_edges_width = this.compute_edge_width()
1283
+ this.G.selectAll('path.link').style('stroke-width', real_edges_width + 'px')
1284
+
1285
+ }
1286
+
1287
+ fit_to_viewer_height(){
1288
+
1289
+ var collapsed = this.model.get_all_collapse(this.model.data)
1290
+ var old_zoom = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node())
1291
+ this.container_object.add_action('Compact tree', this, this.render_with_settings, [old_zoom.k, old_zoom.x,old_zoom.y,this.model.settings.tree.node_horizontal_size, collapsed] )
1292
+
1293
+
1294
+ // Increment Collapsed Depth until "Visible leaf" > "Max visible leaves"
1295
+ var depth;
1296
+ for (depth = 1; depth < this.model.settings.tree.max_depth; depth++) {
1297
+
1298
+ var X = this.get_number_visible_tree_tips_at_depth(depth)
1299
+ if (X > this.settings.max_visible_leaves) {
1300
+ break
1301
+ }
1302
+ }
1303
+ this.model.settings.collapse_level = depth
1304
+ this.container_object.collapse_depth(this.model.settings.collapse_level, this.model.data)
1305
+ this.set_data(this.model)
1306
+ this.render(this.hierarchy)
1307
+
1308
+ var r = this.get_height_hierarchy()
1309
+ var estimated_height = r.h
1310
+
1311
+ // Adjust Zoom-y to fit height
1312
+ var vh = this.height - 80 // MARGIN
1313
+ var th = (Math.abs(r.min_x)+Math.abs(r.max_x))
1314
+ //var th = estimated_height // this.G.node().getBBox().height
1315
+ var h_scale = vh/th
1316
+
1317
+
1318
+
1319
+ var x_tr = - this.hierarchy.x + 40
1320
+ var off_rooting = (Math.abs(r.min_x)-Math.abs(r.max_x))/2
1321
+ var y_tr = -this.hierarchy.y + this.height/2 + off_rooting*h_scale
1322
+ //var y_tr = (this.height/2) - this.hierarchy.y - (r.min_x + (r.max_x - r.min_x)/2)/2
1323
+
1324
+ this.set_zoom(h_scale, x_tr, y_tr)
1325
+
1326
+
1327
+ var w = 0
1328
+
1329
+
1330
+ this.hierarchy.leaves().forEach((e) => {
1331
+
1332
+ let posy = e.y
1333
+
1334
+ if (e.data.collapse){
1335
+ posy += e.data.triangle_width
1336
+ }
1337
+
1338
+ w = posy > w ? posy : w
1339
+ })
1340
+
1341
+
1342
+ var ns = this.model.settings.tree.node_horizontal_size
1343
+ var w_scale = (this.width - 80)/(w*h_scale)
1344
+
1345
+ this.modify_node_size('horizontal', (ns * w_scale) - ns )
1346
+
1347
+ var real_edges_width = this.compute_edge_width()
1348
+ this.G.selectAll('path.link').style('stroke-width', real_edges_width + 'px')
1349
+
1350
+
1351
+
1352
+
1353
+
1354
+ }
1355
+
1356
+ render_with_settings(scale, x,y,node_size, collapsed){
1357
+
1358
+ if (collapsed.length > 0){
1359
+ this.model.apply_collapse_to_list(collapsed)
1360
+ this.set_data(this.model)
1361
+ this.render(this.hierarchy)
1362
+ }
1363
+
1364
+ this.set_zoom(scale, x, y)
1365
+
1366
+ var delta_node_size = -(this.model.settings.tree.node_horizontal_size - node_size)
1367
+
1368
+ if (delta_node_size!=0){
1369
+ this.modify_node_size('horizontal', -(this.model.settings.tree.node_horizontal_size - node_size) )
1370
+ }
1371
+
1372
+ var real_edges_width = this.compute_edge_width()
1373
+ this.G.selectAll('path.link').style('stroke-width', real_edges_width + 'px')
1374
+
1375
+ }
1376
+
1377
+ // TUNNING todo should be in Controller
1378
+ modify_node_size(axis, variation){
1379
+
1380
+ if (axis === 'vertical') {
1381
+ if ((this.model.settings.tree.node_vertical_size + variation) <= 0){return}
1382
+ this.model.settings.tree.node_vertical_size += variation
1383
+ this.interface.update_slider(this.interface.slider_v, this.model.settings.tree.node_vertical_size)
1384
+ }
1385
+ else if (axis === 'horizontal') {
1386
+ if ((this.model.settings.tree.node_horizontal_size + variation) <= 0){return}
1387
+ this.model.settings.tree.node_horizontal_size += variation
1388
+ this.interface.update_slider(this.interface.slider_h, this.model.settings.tree.node_horizontal_size)
1389
+ }
1390
+
1391
+ this.d3_cluster.nodeSize([ this.model.settings.tree.node_vertical_size,this.model.settings.tree.node_horizontal_size])
1392
+ this.build_d3_cluster()
1393
+ this.render(this.hierarchy)
1394
+
1395
+
1396
+ if (this.interface && this.model.settings.use_branch_lenght) {
1397
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
1398
+ this.interface.update_scale_value(k);
1399
+ }
1400
+
1401
+ }
1402
+
1403
+ toggle_use_length(){
1404
+ this.model.settings.use_branch_lenght = !this.model.settings.use_branch_lenght
1405
+
1406
+ if (!this.model.settings.use_branch_lenght){this.interface.remove_scale()}
1407
+ else{this.interface.add_scale()}
1408
+
1409
+ this.build_d3_data()
1410
+ this.render(this.hierarchy)
1411
+
1412
+ this.maximise_zoom()
1413
+ }
1414
+
1415
+ toggle_align_tip(){
1416
+ this.model.settings.align_tip = !this.model.settings.align_tip
1417
+
1418
+ this.render(this.hierarchy)
1419
+ }
1420
+
1421
+ toggle_mirror(){
1422
+ this.model.settings.mirror = !this.model.settings.mirror
1423
+
1424
+ this.build_d3_data()
1425
+ this.render(this.hierarchy)
1426
+
1427
+ if (this.model.settings.mirror){
1428
+ var zoom = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node())
1429
+ this.set_zoom(zoom.k,zoom.x,zoom.y)
1430
+ }
1431
+ else{
1432
+ var zoom = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node())
1433
+ this.set_zoom(zoom.k,this.width- zoom.x,zoom.y)
1434
+ }
1435
+
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+ }
1445
+
1446
+ toggle_internal_label(){
1447
+
1448
+ this.model.settings.display_internal_label = !this.model.settings.display_internal_label
1449
+ this.render(this.hierarchy)
1450
+ }
1451
+
1452
+ toggle_duplication(){
1453
+ this.model.settings.display_duplication = !this.model.settings.display_duplication
1454
+ this.render(this.hierarchy)
1455
+
1456
+ }
1457
+
1458
+ toggle_leaves(){
1459
+ this.model.settings.display_leaves = !this.model.settings.display_leaves
1460
+ this.render(this.hierarchy)
1461
+
1462
+ }
1463
+
1464
+ toggle_tooltips(){
1465
+ this.model.settings.show_tooltips = !this.model.settings.show_tooltips
1466
+ this.render(this.hierarchy)
1467
+
1468
+ }
1469
+
1470
+ toggle_subsample(){
1471
+ this.model.settings.subsample_label = !this.model.settings.subsample_label
1472
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
1473
+
1474
+ if(this.model.settings.subsample_label){
1475
+ this.model.settings.tree.font_size = this.model.settings.tree.font_size*k
1476
+ }
1477
+ else{
1478
+ this.model.settings.tree.font_size = this.model.settings.tree.font_size/k
1479
+ }
1480
+
1481
+ this.render(this.hierarchy)
1482
+
1483
+ this.interface.update_slider(this.interface.slider_t, this.model.settings.tree.font_size)
1484
+
1485
+ }
1486
+
1487
+ toggle_multiple_search(){
1488
+ this.model.settings.multiple_search = !this.model.settings.multiple_search
1489
+ }
1490
+
1491
+ // stack
1492
+
1493
+ toggle_show_stack_number(){
1494
+ if (this.model.settings.stack.showHistogramValues){
1495
+ this.model.settings.stack.showHistogramValues = false
1496
+ }
1497
+ else{
1498
+ this.model.settings.stack.showHistogramValues = true
1499
+ }
1500
+
1501
+
1502
+ this.build_d3_data()
1503
+ this.render(this.hierarchy)
1504
+ }
1505
+
1506
+ toggle_height_max_ratio(){
1507
+ if (this.model.settings.stack.maxStackHeight === 'max'){
1508
+ this.model.settings.stack.maxStackHeight = 'ratio'
1509
+ }
1510
+ else{
1511
+ this.model.settings.stack.maxStackHeight = 'max'
1512
+ }
1513
+
1514
+
1515
+ this.build_d3_data()
1516
+ this.render(this.hierarchy)
1517
+
1518
+ }
1519
+
1520
+ update_stack_height(val){
1521
+ this.model.settings.stack.stackHeight = val
1522
+ this.build_d3_data()
1523
+ this.render(this.hierarchy)
1524
+ }
1525
+
1526
+ update_stack_width(val){
1527
+ this.model.settings.stack.stackWidth = val
1528
+ this.build_d3_data()
1529
+ this.render(this.hierarchy)
1530
+ }
1531
+
1532
+ update_stack_font(val){
1533
+ this.model.settings.stack.legendTxtSize = val
1534
+ this.build_d3_data()
1535
+ this.render(this.hierarchy)
1536
+ }
1537
+
1538
+ update_stack_type(val){
1539
+ this.model.settings.stack.type = val
1540
+ this.build_d3_data()
1541
+ this.render(this.hierarchy)
1542
+ }
1543
+
1544
+ update_node_radius(val){
1545
+ this.model.settings.tree.node_radius = val
1546
+ this.render(this.hierarchy)
1547
+ }
1548
+
1549
+ update_line_width(val){
1550
+ this.model.settings.tree.line_width = val
1551
+ this.render(this.hierarchy)
1552
+ }
1553
+
1554
+ update_collapse_level(val, refresh_interface){
1555
+
1556
+ var refresh_interface = (typeof refresh_interface !== 'undefined') ? refresh_interface : true;
1557
+
1558
+
1559
+ this.model.settings.collapse_level = val
1560
+ this.container_object.collapse_depth(this.model.settings.collapse_level, this.model.data)
1561
+ //this.set_data(this.model, refresh_interface)
1562
+ this.build_d3_cluster()
1563
+ this.render(this.hierarchy)
1564
+
1565
+ if (refresh_interface){
1566
+ this.interface = new Interface(this, this.container_object)
1567
+ }
1568
+ else{
1569
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
1570
+ if (this.interface && this.model.settings.use_branch_lenght){
1571
+ this.interface.update_scale_value(k);
1572
+ }
1573
+
1574
+ }
1575
+
1576
+
1577
+
1578
+ }
1579
+
1580
+ update_font_size(val){
1581
+ this.model.settings.tree.font_size = val
1582
+ this.render(this.hierarchy)
1583
+ }
1584
+
1585
+ update_font_size_node(val){
1586
+ this.model.settings.style.font_size_internal = val
1587
+ this.render(this.hierarchy)
1588
+ }
1589
+
1590
+ toggle_dessimode(){
1591
+ this.model.settings.dessimode = !this.model.settings.dessimode
1592
+
1593
+ if (this.model.settings.dessimode) {
1594
+
1595
+ var r= Math.floor(Math.random() * 101);
1596
+
1597
+ if (r > 50) {alert("[Common] If I may just give a little feedback... [ following 1200 lines truncated]")}
1598
+ else if (r > 10) {alert("[Rare] If I may just give a little feedback... [ following 1200 lines truncated]")}
1599
+ else{alert("[Lengendary] Have you heard about banana ?")}
1600
+
1601
+
1602
+ }
1603
+ }
1604
+
1605
+ // HELPER
1606
+ getChildren(d) {
1607
+ return d._children ? d._children : (d.children ? d.children : []);
1608
+ }
1609
+
1610
+ getChildLeaves(d) {
1611
+
1612
+ if (d.children || d._children) {
1613
+ var leaves = [];
1614
+ var children = this.getChildren(d);
1615
+ for (var i = 0; i < children.length; i++) {
1616
+ leaves = leaves.concat(this.getChildLeaves(children[i]));
1617
+ }
1618
+ return leaves;
1619
+ } else {
1620
+ return [d];
1621
+ }
1622
+ }
1623
+
1624
+ get_random_node(){
1625
+ var ns = []
1626
+ this.hierarchy.each(d => ns.push(d));
1627
+ return ns[Math.floor(Math.random() * ns.length)];
1628
+ }
1629
+
1630
+ // UTILS
1631
+ centerNode(source) {
1632
+
1633
+ //this.svg.transition().call(this.zoom.translateTo, source.y0,source.x0)
1634
+ this.svg.transition().call(this.zoom.transform, d3.zoomIdentity.translate(this.width/2-source.y0,this.height/2-source.x0).scale(1) )
1635
+
1636
+ }
1637
+
1638
+ zoom_in(){
1639
+ this.svg.transition().call(this.zoom.scaleBy, 2)
1640
+ }
1641
+
1642
+ zoom_out(){
1643
+ this.svg.transition().call(this.zoom.scaleBy, 0.5)
1644
+ }
1645
+
1646
+ zoom_by(val){
1647
+ this.svg.transition().call(this.zoom.scaleBy, val)
1648
+ }
1649
+
1650
+ // STACK
1651
+ render_stack(d,e){
1652
+
1653
+
1654
+
1655
+ var ms = this.model.settings.stack
1656
+ var data = e.stackData[ms.type];
1657
+ var stackGroup = this.d3.select(d);
1658
+
1659
+
1660
+
1661
+ var xDistanceFromNode = parseInt(ms.xInitialRightMargin) + parseInt(ms.stackWidth)
1662
+ var txtDistanceFromBar = parseInt(ms.stackWidth) + parseInt(ms.margin)
1663
+
1664
+ if (ms.showHistogramValues) {
1665
+
1666
+ var legends = stackGroup.selectAll(".legendtxt")
1667
+ .data(data)
1668
+ .enter()
1669
+ .append("text")
1670
+ .classed("legendtxt", true)
1671
+ .text(function (d) {
1672
+ return d[0].realsize !== 0 ? d[0].realsize : "";
1673
+ }).attr("x", function () {
1674
+ return (0 - xDistanceFromNode) + txtDistanceFromBar;
1675
+ }).attr("y", function (d) {
1676
+ // TODO adjust based on feedback
1677
+ if(d[0].y0 < 0){
1678
+ // legend below zero line
1679
+ return parseInt(ms.legendTxtSize)+2;
1680
+ }
1681
+
1682
+ // if bar height smaller than text size, put text on bottom
1683
+ if(d[0].y < parseInt(ms.legendTxtSize) && d[0].y0 > 0) {
1684
+ return -(d[0].y0 - d[0].y);
1685
+ }
1686
+
1687
+ // center legend text vertically with some extra padding
1688
+ return -(d[0].y0 - ((d[0].y + parseInt(ms.legendTxtSize))/2));
1689
+ }).attr("font-size", parseInt(ms.legendTxtSize)).attr("stroke", "black")
1690
+
1691
+ }
1692
+ if (ms.showHistogramValues) { // todo shulld be showHistogramSummaryValue
1693
+
1694
+ var summaryLegend = stackGroup.selectAll(".stackGroup")
1695
+ .data(function (d) {
1696
+ return [d];
1697
+ })
1698
+ .enter()
1699
+ .append("text")
1700
+ .classed("legendsummarytxt", true)
1701
+ .text(function (d) {
1702
+ var summary_number = ms.type === "genes" ? d.data.nr_hogs : d.numberEvents; // todo add nr_proteins and numberEvents
1703
+ return summary_number > 0 && typeof summary_number == 'number' ? summary_number : "";
1704
+ }).attr("x", function () {
1705
+ return 0 - (xDistanceFromNode + 30)
1706
+ }).attr("y", function (d) {
1707
+ return 0 - ms.margin;
1708
+ }).attr("font-size", parseInt(ms.legendTxtSize)).attr("stroke", "black")
1709
+
1710
+ }
1711
+
1712
+ var stackSlices = stackGroup.selectAll("rect")
1713
+ .data(data)
1714
+ .enter()
1715
+ .append("rect");
1716
+
1717
+ var slices = stackSlices
1718
+ .style("fill", (d,i,node) => { return this.settings.stack.colorMap[d[0].sizelbl]
1719
+ })
1720
+ .style("opacity", 0.8)
1721
+ .attr("y", function (d) {
1722
+ return 0 - d[0].y0 - 0.5;
1723
+ })
1724
+ .attr("x", function (d) {
1725
+ return 0 - xDistanceFromNode;
1726
+ })
1727
+ .attr("height", function (d) {
1728
+ return d[0].size
1729
+ })
1730
+ .attr("width", ms.stackWidth)
1731
+
1732
+ d3.selectAll(".stackGroup").moveToFront();
1733
+
1734
+
1735
+
1736
+ }
1737
+
1738
+ compute_color_map_stack(){
1739
+
1740
+ var l = this.settings.stack.labels
1741
+ var c = this.settings.stack.colors
1742
+
1743
+ var colMap = c.reduce(function(colMap, col, index) {
1744
+
1745
+ colMap[l[index]] = col;
1746
+ return colMap;
1747
+ }, {})
1748
+
1749
+ return colMap
1750
+
1751
+ }
1752
+
1753
+ getStackNormalizer(d, type){
1754
+
1755
+ var ms = this.model.settings.stack
1756
+
1757
+
1758
+ if(type === 'genes' || !type){
1759
+
1760
+ if(ms.maxStackHeight === "max" && this.model.largestGenome > 0){
1761
+ var normalizer = ms.stackHeight / this.model.largestGenome;
1762
+ } else if(Number.isInteger(ms.maxStackHeight)){
1763
+ var normalizer = ms.maxStackHeight / (d.retained + d.duplicated + d.gained + Math.abs(d.lost));
1764
+ } else {
1765
+ var normalizer = ms.stackHeight / (d.retained + d.duplicated + d.gained + Math.abs(d.lost));
1766
+ }
1767
+
1768
+ } else {
1769
+
1770
+ if(ms.maxStackHeight === "max" && this.model.largestEvents > 0){
1771
+ var normalizer = ms.stackHeight / this.model.largestEvents;
1772
+ } else if(Number.isInteger(ms.maxStackHeight)){
1773
+ var normalizer = m.maxStackHeight / (d.duplications + d.gained + Math.abs(d.lost));
1774
+ } else {
1775
+ var normalizer = ms.stackHeight / (d.duplications + d.gained + Math.abs(d.lost));
1776
+ }
1777
+
1778
+ }
1779
+
1780
+ return normalizer;
1781
+
1782
+ }
1783
+
1784
+ barStack(seriesDataAll, type) {
1785
+
1786
+ var data;
1787
+
1788
+ if(type === 'genes' || !type) {
1789
+ data = [[{}], [{}], [{}], [{}]];
1790
+ } else {
1791
+ data = [[{}], [{}], [{}]];
1792
+ }
1793
+
1794
+ var size = 0;
1795
+ var d = seriesDataAll.data.evolutionaryEvents;
1796
+ var posBase = 0; // positive base
1797
+ var stackIndex = 0;
1798
+ var seriesIndex = 0;
1799
+
1800
+ var normalizer = this.getStackNormalizer(d, type);
1801
+
1802
+ /* in case there's no eveolutionary events */
1803
+ normalizer = !isFinite(normalizer) ? 1 : normalizer;
1804
+
1805
+
1806
+ var realSize;
1807
+ var StackSizeretained = (d.retained) ? stackScale(d.retained, normalizer) : 0;
1808
+ var StackSizeDuplicated = (d.duplicated) ? stackScale(d.duplicated, normalizer) : 0;
1809
+ var StackSizeDuplication = (d.duplications) ? stackScale(d.duplications, normalizer) : 0;
1810
+ var StackSizeGained = (d.gained) ? stackScale(d.gained, normalizer) : 0;
1811
+ var StackSizeLost = (d.lost) ? stackScale(d.lost, normalizer) : 0;
1812
+ var posStackSize = StackSizeGained + StackSizeDuplicated + StackSizeretained;
1813
+
1814
+ if(type === 'genes' || !type){
1815
+
1816
+ realSize = Math.abs(d.retained) > 0 ? Math.abs(d.retained) : 0;
1817
+ var posBase = posBase + StackSizeretained;
1818
+ data[stackIndex][seriesIndex] = new seriesElement('Retained', realSize, StackSizeretained, posBase, posStackSize)
1819
+ stackIndex++;
1820
+
1821
+ realSize = Math.abs(d.duplicated);
1822
+ var posBase = posBase + StackSizeDuplicated
1823
+ data[stackIndex][seriesIndex] = new seriesElement('Duplicated', realSize, StackSizeDuplicated, posBase, posStackSize)
1824
+ stackIndex++;
1825
+ } else {
1826
+
1827
+ realSize = Math.abs(d.duplications);
1828
+ var posBase = posBase + StackSizeDuplication
1829
+ data[stackIndex][seriesIndex] = new seriesElement('Duplications', realSize, StackSizeDuplication, posBase, posStackSize)
1830
+ stackIndex++;
1831
+ }
1832
+
1833
+ realSize = Math.abs(d.gained);
1834
+ var posBase = posBase + StackSizeGained
1835
+ data[stackIndex][seriesIndex] = new seriesElement('Gained', realSize, StackSizeGained, posBase, posStackSize)
1836
+ stackIndex++;
1837
+ realSize = Math.abs(d.lost);
1838
+ /* move lost down a little to make it easier to hover it and not the node line */
1839
+ data[stackIndex][seriesIndex] = new seriesElement('Lost', realSize, StackSizeLost, -1, posStackSize)
1840
+
1841
+ function seriesElement(sizeLbl, realSize, size, y0, posStackSize){
1842
+ this.sizelbl = sizeLbl
1843
+ this.realsize = realSize
1844
+ this.size = Math.abs(size)
1845
+ this.y = size
1846
+ this.y0 = y0
1847
+ this.posStackSize = posStackSize;
1848
+ }
1849
+
1850
+ function stackScale(val, normalizer){
1851
+ return val * normalizer;
1852
+ }
1853
+
1854
+ data.extent = d3.extent(
1855
+ d3.merge(
1856
+ d3.merge(
1857
+ data.map(function(e) {
1858
+ return e.map(function(f) {
1859
+ return [f.y0, f.y0 - f.size]
1860
+ })
1861
+ })
1862
+ )
1863
+ )
1864
+ )
1865
+
1866
+ return data;
1867
+ }
1868
+
1869
+ isOdd(num) { return num % 2;}
1870
+
1871
+ compute_node_font_size(){
1872
+
1873
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
1874
+
1875
+ if (!this.model.settings.subsample_label){
1876
+ k=1
1877
+ }
1878
+
1879
+ var fs = this.model.settings.tree.font_size/k ;
1880
+
1881
+ return fs
1882
+
1883
+ /*
1884
+ if (d._children && fs > d.data.triangle_height){
1885
+ fs = d.data.triangle_height
1886
+ }
1887
+
1888
+ var max_leave = this.model.settings.tree.node_vertical_size*k
1889
+
1890
+ if (!d.children && !d._children && fs > max_leave){
1891
+ fs = max_leave
1892
+ }
1893
+
1894
+ return fs+ "px"
1895
+
1896
+
1897
+ */
1898
+ }
1899
+
1900
+ compute_node_radius(){
1901
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
1902
+ var nr = this.model.settings.tree.node_radius/k ;
1903
+ return (nr > this.model.settings.tree.node_vertical_size/2) ? this.model.settings.tree.node_vertical_size/2 : nr
1904
+ }
1905
+
1906
+ compute_edge_width(){
1907
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
1908
+ var ew = this.model.settings.tree.line_width/k;
1909
+ return (ew > this.model.settings.tree.node_vertical_size/2) ? this.model.settings.tree.node_vertical_size/2 : ew
1910
+ }
1911
+
1912
+ get_label_extended_information(node, type){
1913
+
1914
+ return (type == 'Name') ? node.data.name : node.data.extended_informations[type]
1915
+
1916
+ }
1917
+
1918
+ node_face_enter(nodeEnter){
1919
+
1920
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
1921
+
1922
+ var on_screen_text_size = this.compute_node_font_size()
1923
+ var show_lt = this.model.settings.display_internal_label_left_top !== false
1924
+ var show_lb = this.model.settings.display_internal_label_left_bottom !== false
1925
+ var mirror_factor = this.model.settings.mirror ? true : false;
1926
+
1927
+ // Add labels for the nodes
1928
+ nodeEnter.append('text')
1929
+ .attr("class", "right")
1930
+ .attr("dy", ".35em")
1931
+ .style('font-size', d => {
1932
+
1933
+ var collapse_text = false
1934
+ if (d.data.collapse){
1935
+ collapse_text = d.data.triangle_height >= on_screen_text_size + 'px' ? true : false
1936
+ }
1937
+
1938
+ return d.subsampled || collapse_text ? on_screen_text_size : '0px' ;
1939
+ })
1940
+ .attr("font-weight", (d) => {
1941
+ return 400
1942
+ //return d.children || d._children ? 900 : 400
1943
+ })
1944
+ .attr("y", (d) => {
1945
+ if (d.parent == null){return 0}
1946
+ else if (d.children || d._children){
1947
+ if (d.children && this.isOdd(d.children.length)){
1948
+ return 13
1949
+ }
1950
+ if (d._children && this.isOdd(d._children.length)){
1951
+ return 13 // todo internal name offsetted if collapse
1952
+ }
1953
+ return 0
1954
+ }
1955
+ return 0
1956
+ })
1957
+ .attr("x", function(d) {
1958
+ var scale = (d.children || d._children) ? 1 : k
1959
+ return d.parent == null || mirror_factor ? -13/scale : 13/scale;
1960
+ })
1961
+ .attr("text-anchor", function(d) {
1962
+ return d.parent == null || mirror_factor ? "end" : "start"; // todo better deal with internal name
1963
+ })
1964
+ .text(function(d) { return d.data.name; });
1965
+
1966
+
1967
+ nodeEnter.filter(function(d) { return (d.children || d._children); })
1968
+ .append('text')
1969
+ .attr("class", "left_top")
1970
+ .attr("dy", ".35em")
1971
+ //.attr("alignment-baseline", "ideographic" )
1972
+ .style('font-size', d => {
1973
+ return show_lt ? this.model.settings.style.font_size_internal + 'px' : '0px' ;
1974
+ })
1975
+ .attr("font-weight", (d) => {
1976
+ return 400
1977
+ })
1978
+ .attr("y", (d) => {
1979
+ return -13
1980
+ })
1981
+ .attr("x", function(d) {
1982
+ return mirror_factor ? 8 : -8;
1983
+ })
1984
+ .attr("text-anchor", function(d) {
1985
+
1986
+ return mirror_factor ? "start" : "end"
1987
+ })
1988
+ .text( (d) => {
1989
+ return "";
1990
+ })
1991
+
1992
+ nodeEnter.filter(function(d) { return (d.children || d._children); })
1993
+ .append('text')
1994
+ .attr("class", "left_bottom")
1995
+ .attr("dy", ".35em")
1996
+ //.attr("alignment-baseline", "hanging" )
1997
+ .style('font-size', d => {
1998
+ return show_lb ? this.model.settings.style.font_size_internal + 'px': '0px' ;
1999
+ })
2000
+ .attr("font-weight", (d) => {
2001
+ return 400
2002
+ })
2003
+ .attr("y", (d) => {
2004
+ return 13
2005
+ })
2006
+ .attr("x", function (d) {
2007
+ return mirror_factor ? 8 : -8;
2008
+ })
2009
+ .attr("text-anchor", function (d) {
2010
+
2011
+ return mirror_factor ? "start" : "end"
2012
+ })
2013
+ .text( (d) => {
2014
+ return "";
2015
+ })
2016
+ }
2017
+
2018
+ node_face_update(nodes){
2019
+
2020
+ var on_screen_text_size = this.compute_node_font_size()
2021
+ var k = this.d3.zoomTransform(d3.select("#master_g" + this.uid).node()).k
2022
+ var show_r = this.model.settings.display_internal_label !== false
2023
+ var show_lt = this.model.settings.display_internal_label_left_top !== false
2024
+ var show_lb = this.model.settings.display_internal_label_left_bottom !== false
2025
+ var mirror_factor = this.model.settings.mirror;
2026
+
2027
+ nodes.select('text.right')
2028
+ .text((d) => {
2029
+ if (d.children || d._children){
2030
+
2031
+ if (d.data.collapse){
2032
+
2033
+ if (phylo.settings.phylostratigraphy){
2034
+ return d.data.name
2035
+ }
2036
+
2037
+ let l = d.data.leaves
2038
+
2039
+ if (l.length <= 0){
2040
+ d.data.leaves = this.model.get_leaves(d.data)
2041
+ }
2042
+
2043
+ return '[' + l[0].name + ' ... ' + l[l.length-1].name + ']'
2044
+ }
2045
+
2046
+ return show_r ? this.get_label_extended_information(d, this.model.settings.display_internal_label) : '';
2047
+ }
2048
+ return d.data.name;
2049
+ })
2050
+ .attr("x", function(d) {
2051
+ let y_offset = (typeof d.data.triangle_width !== 'undefined') ? d.data.triangle_width : 0;
2052
+
2053
+ var scale = (d.children || d._children) ? 1 : k
2054
+
2055
+ if (mirror_factor){
2056
+ return -(y_offset + 13/scale);
2057
+ }
2058
+
2059
+ return d.parent == null ? -13/scale : y_offset + 13/scale;
2060
+ })
2061
+ .attr("y", 0)
2062
+ .attr('fill', (d) => {
2063
+ let c = d.data.search_node ? "#FF0000" : "#212529";
2064
+ return c
2065
+ })
2066
+ .style('font-size', d => {
2067
+
2068
+ if (d.children){
2069
+ return show_r ? this.model.settings.style.font_size_internal + 'px' : '0px';
2070
+ }
2071
+
2072
+ return d.subsampled ? on_screen_text_size + 'px' : '0px' ;
2073
+
2074
+
2075
+ })
2076
+
2077
+ nodes.select('text.left_top')
2078
+ .style('font-size', d => {
2079
+ return show_lt ? this.model.settings.style.font_size_internal+ 'px' : '0px';
2080
+ })
2081
+ .text( (d) => {
2082
+ return show_lt ? this.get_label_extended_information(d, this.model.settings.display_internal_label_left_top) : '';
2083
+ })
2084
+
2085
+ nodes.select('text.left_bottom')
2086
+ .style('font-size', d => {
2087
+ return show_lb ? this.model.settings.style.font_size_internal + 'px' : '0px';
2088
+ })
2089
+ .text( (d) => {
2090
+ return show_lb ? this.get_label_extended_information(d, this.model.settings.display_internal_label_left_bottom): '';
2091
+ })
2092
+ }
2093
+
2094
+ node_face_exit(nodeExit){
2095
+
2096
+ // On exit reduce the opacity of text labels
2097
+ nodeExit.select('text')
2098
+ .style('fill-opacity', 1e-6);
2099
+ }
2100
+
2101
+ };
2102
+
2103
+