index.js 119 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109
  1. /*!
  2. * Font Awesome Free 6.5.0 by @fontawesome - https://fontawesome.com
  3. * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
  4. * Copyright 2023 Fonticons, Inc.
  5. */
  6. (function (global, factory) {
  7. typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
  8. typeof define === 'function' && define.amd ? define(['exports'], factory) :
  9. (factory((global['fontawesome-svg-core'] = {})));
  10. }(this, (function (exports) { 'use strict';
  11. function ownKeys(object, enumerableOnly) {
  12. var keys = Object.keys(object);
  13. if (Object.getOwnPropertySymbols) {
  14. var symbols = Object.getOwnPropertySymbols(object);
  15. enumerableOnly && (symbols = symbols.filter(function (sym) {
  16. return Object.getOwnPropertyDescriptor(object, sym).enumerable;
  17. })), keys.push.apply(keys, symbols);
  18. }
  19. return keys;
  20. }
  21. function _objectSpread2(target) {
  22. for (var i = 1; i < arguments.length; i++) {
  23. var source = null != arguments[i] ? arguments[i] : {};
  24. i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
  25. _defineProperty(target, key, source[key]);
  26. }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
  27. Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
  28. });
  29. }
  30. return target;
  31. }
  32. function _typeof(obj) {
  33. "@babel/helpers - typeof";
  34. return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
  35. return typeof obj;
  36. } : function (obj) {
  37. return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
  38. }, _typeof(obj);
  39. }
  40. function _wrapRegExp() {
  41. _wrapRegExp = function (re, groups) {
  42. return new BabelRegExp(re, void 0, groups);
  43. };
  44. var _super = RegExp.prototype,
  45. _groups = new WeakMap();
  46. function BabelRegExp(re, flags, groups) {
  47. var _this = new RegExp(re, flags);
  48. return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);
  49. }
  50. function buildGroups(result, re) {
  51. var g = _groups.get(re);
  52. return Object.keys(g).reduce(function (groups, name) {
  53. return groups[name] = result[g[name]], groups;
  54. }, Object.create(null));
  55. }
  56. return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {
  57. var result = _super.exec.call(this, str);
  58. return result && (result.groups = buildGroups(result, this)), result;
  59. }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {
  60. if ("string" == typeof substitution) {
  61. var groups = _groups.get(this);
  62. return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
  63. return "$" + groups[name];
  64. }));
  65. }
  66. if ("function" == typeof substitution) {
  67. var _this = this;
  68. return _super[Symbol.replace].call(this, str, function () {
  69. var args = arguments;
  70. return "object" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);
  71. });
  72. }
  73. return _super[Symbol.replace].call(this, str, substitution);
  74. }, _wrapRegExp.apply(this, arguments);
  75. }
  76. function _classCallCheck(instance, Constructor) {
  77. if (!(instance instanceof Constructor)) {
  78. throw new TypeError("Cannot call a class as a function");
  79. }
  80. }
  81. function _defineProperties(target, props) {
  82. for (var i = 0; i < props.length; i++) {
  83. var descriptor = props[i];
  84. descriptor.enumerable = descriptor.enumerable || false;
  85. descriptor.configurable = true;
  86. if ("value" in descriptor) descriptor.writable = true;
  87. Object.defineProperty(target, descriptor.key, descriptor);
  88. }
  89. }
  90. function _createClass(Constructor, protoProps, staticProps) {
  91. if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  92. if (staticProps) _defineProperties(Constructor, staticProps);
  93. Object.defineProperty(Constructor, "prototype", {
  94. writable: false
  95. });
  96. return Constructor;
  97. }
  98. function _defineProperty(obj, key, value) {
  99. if (key in obj) {
  100. Object.defineProperty(obj, key, {
  101. value: value,
  102. enumerable: true,
  103. configurable: true,
  104. writable: true
  105. });
  106. } else {
  107. obj[key] = value;
  108. }
  109. return obj;
  110. }
  111. function _inherits(subClass, superClass) {
  112. if (typeof superClass !== "function" && superClass !== null) {
  113. throw new TypeError("Super expression must either be null or a function");
  114. }
  115. subClass.prototype = Object.create(superClass && superClass.prototype, {
  116. constructor: {
  117. value: subClass,
  118. writable: true,
  119. configurable: true
  120. }
  121. });
  122. Object.defineProperty(subClass, "prototype", {
  123. writable: false
  124. });
  125. if (superClass) _setPrototypeOf(subClass, superClass);
  126. }
  127. function _setPrototypeOf(o, p) {
  128. _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
  129. o.__proto__ = p;
  130. return o;
  131. };
  132. return _setPrototypeOf(o, p);
  133. }
  134. function _slicedToArray(arr, i) {
  135. return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
  136. }
  137. function _toConsumableArray(arr) {
  138. return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
  139. }
  140. function _arrayWithoutHoles(arr) {
  141. if (Array.isArray(arr)) return _arrayLikeToArray(arr);
  142. }
  143. function _arrayWithHoles(arr) {
  144. if (Array.isArray(arr)) return arr;
  145. }
  146. function _iterableToArray(iter) {
  147. if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  148. }
  149. function _iterableToArrayLimit(arr, i) {
  150. var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
  151. if (_i == null) return;
  152. var _arr = [];
  153. var _n = true;
  154. var _d = false;
  155. var _s, _e;
  156. try {
  157. for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
  158. _arr.push(_s.value);
  159. if (i && _arr.length === i) break;
  160. }
  161. } catch (err) {
  162. _d = true;
  163. _e = err;
  164. } finally {
  165. try {
  166. if (!_n && _i["return"] != null) _i["return"]();
  167. } finally {
  168. if (_d) throw _e;
  169. }
  170. }
  171. return _arr;
  172. }
  173. function _unsupportedIterableToArray(o, minLen) {
  174. if (!o) return;
  175. if (typeof o === "string") return _arrayLikeToArray(o, minLen);
  176. var n = Object.prototype.toString.call(o).slice(8, -1);
  177. if (n === "Object" && o.constructor) n = o.constructor.name;
  178. if (n === "Map" || n === "Set") return Array.from(o);
  179. if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  180. }
  181. function _arrayLikeToArray(arr, len) {
  182. if (len == null || len > arr.length) len = arr.length;
  183. for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
  184. return arr2;
  185. }
  186. function _nonIterableSpread() {
  187. throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  188. }
  189. function _nonIterableRest() {
  190. throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  191. }
  192. var noop = function noop() {};
  193. var _WINDOW = {};
  194. var _DOCUMENT = {};
  195. var _MUTATION_OBSERVER = null;
  196. var _PERFORMANCE = {
  197. mark: noop,
  198. measure: noop
  199. };
  200. try {
  201. if (typeof window !== 'undefined') _WINDOW = window;
  202. if (typeof document !== 'undefined') _DOCUMENT = document;
  203. if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;
  204. if (typeof performance !== 'undefined') _PERFORMANCE = performance;
  205. } catch (e) {}
  206. var _ref = _WINDOW.navigator || {},
  207. _ref$userAgent = _ref.userAgent,
  208. userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;
  209. var WINDOW = _WINDOW;
  210. var DOCUMENT = _DOCUMENT;
  211. var MUTATION_OBSERVER = _MUTATION_OBSERVER;
  212. var PERFORMANCE = _PERFORMANCE;
  213. var IS_BROWSER = !!WINDOW.document;
  214. var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
  215. var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
  216. var _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;
  217. var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
  218. var UNITS_IN_GRID = 16;
  219. var DEFAULT_CSS_PREFIX = 'fa';
  220. var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';
  221. var DATA_FA_I2SVG = 'data-fa-i2svg';
  222. var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';
  223. var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';
  224. var DATA_PREFIX = 'data-prefix';
  225. var DATA_ICON = 'data-icon';
  226. var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';
  227. var MUTATION_APPROACH_ASYNC = 'async';
  228. var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];
  229. var PRODUCTION = function () {
  230. try {
  231. return process.env.NODE_ENV === 'production';
  232. } catch (e) {
  233. return false;
  234. }
  235. }();
  236. var FAMILY_CLASSIC = 'classic';
  237. var FAMILY_SHARP = 'sharp';
  238. var FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];
  239. function familyProxy(obj) {
  240. // Defaults to the classic family if family is not available
  241. return new Proxy(obj, {
  242. get: function get(target, prop) {
  243. return prop in target ? target[prop] : target[FAMILY_CLASSIC];
  244. }
  245. });
  246. }
  247. var PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {
  248. 'fa': 'solid',
  249. 'fas': 'solid',
  250. 'fa-solid': 'solid',
  251. 'far': 'regular',
  252. 'fa-regular': 'regular',
  253. 'fal': 'light',
  254. 'fa-light': 'light',
  255. 'fat': 'thin',
  256. 'fa-thin': 'thin',
  257. 'fad': 'duotone',
  258. 'fa-duotone': 'duotone',
  259. 'fab': 'brands',
  260. 'fa-brands': 'brands',
  261. 'fak': 'kit',
  262. 'fakd': 'kit',
  263. 'fa-kit': 'kit',
  264. 'fa-kit-duotone': 'kit'
  265. }), _defineProperty(_familyProxy, FAMILY_SHARP, {
  266. 'fa': 'solid',
  267. 'fass': 'solid',
  268. 'fa-solid': 'solid',
  269. 'fasr': 'regular',
  270. 'fa-regular': 'regular',
  271. 'fasl': 'light',
  272. 'fa-light': 'light',
  273. 'fast': 'thin',
  274. 'fa-thin': 'thin'
  275. }), _familyProxy));
  276. var STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {
  277. solid: 'fas',
  278. regular: 'far',
  279. light: 'fal',
  280. thin: 'fat',
  281. duotone: 'fad',
  282. brands: 'fab',
  283. kit: 'fak'
  284. }), _defineProperty(_familyProxy2, FAMILY_SHARP, {
  285. solid: 'fass',
  286. regular: 'fasr',
  287. light: 'fasl',
  288. thin: 'fast'
  289. }), _familyProxy2));
  290. var PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {
  291. fab: 'fa-brands',
  292. fad: 'fa-duotone',
  293. fak: 'fa-kit',
  294. fal: 'fa-light',
  295. far: 'fa-regular',
  296. fas: 'fa-solid',
  297. fat: 'fa-thin'
  298. }), _defineProperty(_familyProxy3, FAMILY_SHARP, {
  299. fass: 'fa-solid',
  300. fasr: 'fa-regular',
  301. fasl: 'fa-light',
  302. fast: 'fa-thin'
  303. }), _familyProxy3));
  304. var LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {
  305. 'fa-brands': 'fab',
  306. 'fa-duotone': 'fad',
  307. 'fa-kit': 'fak',
  308. 'fa-light': 'fal',
  309. 'fa-regular': 'far',
  310. 'fa-solid': 'fas',
  311. 'fa-thin': 'fat'
  312. }), _defineProperty(_familyProxy4, FAMILY_SHARP, {
  313. 'fa-solid': 'fass',
  314. 'fa-regular': 'fasr',
  315. 'fa-light': 'fasl',
  316. 'fa-thin': 'fast'
  317. }), _familyProxy4));
  318. var ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr|sl|st)?[\-\ ]/; // eslint-disable-line no-useless-escape
  319. var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';
  320. var FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i;
  321. var FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {
  322. 900: 'fas',
  323. 400: 'far',
  324. normal: 'far',
  325. 300: 'fal',
  326. 100: 'fat'
  327. }), _defineProperty(_familyProxy5, FAMILY_SHARP, {
  328. 900: 'fass',
  329. 400: 'fasr',
  330. 300: 'fasl',
  331. 100: 'fast'
  332. }), _familyProxy5));
  333. var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  334. var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
  335. var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];
  336. var DUOTONE_CLASSES = {
  337. GROUP: 'duotone-group',
  338. SWAP_OPACITY: 'swap-opacity',
  339. PRIMARY: 'primary',
  340. SECONDARY: 'secondary'
  341. };
  342. var prefixes = new Set();
  343. Object.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));
  344. Object.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));
  345. var RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {
  346. return "".concat(n, "x");
  347. })).concat(oneToTwenty.map(function (n) {
  348. return "w-".concat(n);
  349. }));
  350. var initial = WINDOW.FontAwesomeConfig || {};
  351. function getAttrConfig(attr) {
  352. var element = DOCUMENT.querySelector('script[' + attr + ']');
  353. if (element) {
  354. return element.getAttribute(attr);
  355. }
  356. }
  357. function coerce(val) {
  358. // Getting an empty string will occur if the attribute is set on the HTML tag but without a value
  359. // We'll assume that this is an indication that it should be toggled to true
  360. if (val === '') return true;
  361. if (val === 'false') return false;
  362. if (val === 'true') return true;
  363. return val;
  364. }
  365. if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {
  366. var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];
  367. attrs.forEach(function (_ref) {
  368. var _ref2 = _slicedToArray(_ref, 2),
  369. attr = _ref2[0],
  370. key = _ref2[1];
  371. var val = coerce(getAttrConfig(attr));
  372. if (val !== undefined && val !== null) {
  373. initial[key] = val;
  374. }
  375. });
  376. }
  377. var _default = {
  378. styleDefault: 'solid',
  379. familyDefault: 'classic',
  380. cssPrefix: DEFAULT_CSS_PREFIX,
  381. replacementClass: DEFAULT_REPLACEMENT_CLASS,
  382. autoReplaceSvg: true,
  383. autoAddCss: true,
  384. autoA11y: true,
  385. searchPseudoElements: false,
  386. observeMutations: true,
  387. mutateApproach: 'async',
  388. keepOriginalSource: true,
  389. measurePerformance: false,
  390. showMissingIcons: true
  391. }; // familyPrefix is deprecated but we must still support it if present
  392. if (initial.familyPrefix) {
  393. initial.cssPrefix = initial.familyPrefix;
  394. }
  395. var _config = _objectSpread2(_objectSpread2({}, _default), initial);
  396. if (!_config.autoReplaceSvg) _config.observeMutations = false;
  397. var config = {};
  398. Object.keys(_default).forEach(function (key) {
  399. Object.defineProperty(config, key, {
  400. enumerable: true,
  401. set: function set(val) {
  402. _config[key] = val;
  403. _onChangeCb.forEach(function (cb) {
  404. return cb(config);
  405. });
  406. },
  407. get: function get() {
  408. return _config[key];
  409. }
  410. });
  411. }); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0
  412. Object.defineProperty(config, 'familyPrefix', {
  413. enumerable: true,
  414. set: function set(val) {
  415. _config.cssPrefix = val;
  416. _onChangeCb.forEach(function (cb) {
  417. return cb(config);
  418. });
  419. },
  420. get: function get() {
  421. return _config.cssPrefix;
  422. }
  423. });
  424. WINDOW.FontAwesomeConfig = config;
  425. var _onChangeCb = [];
  426. function onChange(cb) {
  427. _onChangeCb.push(cb);
  428. return function () {
  429. _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);
  430. };
  431. }
  432. var d = UNITS_IN_GRID;
  433. var meaninglessTransform = {
  434. size: 16,
  435. x: 0,
  436. y: 0,
  437. rotate: 0,
  438. flipX: false,
  439. flipY: false
  440. };
  441. function insertCss(css) {
  442. if (!css || !IS_DOM) {
  443. return;
  444. }
  445. var style = DOCUMENT.createElement('style');
  446. style.setAttribute('type', 'text/css');
  447. style.innerHTML = css;
  448. var headChildren = DOCUMENT.head.childNodes;
  449. var beforeChild = null;
  450. for (var i = headChildren.length - 1; i > -1; i--) {
  451. var child = headChildren[i];
  452. var tagName = (child.tagName || '').toUpperCase();
  453. if (['STYLE', 'LINK'].indexOf(tagName) > -1) {
  454. beforeChild = child;
  455. }
  456. }
  457. DOCUMENT.head.insertBefore(style, beforeChild);
  458. return css;
  459. }
  460. var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  461. function nextUniqueId() {
  462. var size = 12;
  463. var id = '';
  464. while (size-- > 0) {
  465. id += idPool[Math.random() * 62 | 0];
  466. }
  467. return id;
  468. }
  469. function toArray(obj) {
  470. var array = [];
  471. for (var i = (obj || []).length >>> 0; i--;) {
  472. array[i] = obj[i];
  473. }
  474. return array;
  475. }
  476. function classArray(node) {
  477. if (node.classList) {
  478. return toArray(node.classList);
  479. } else {
  480. return (node.getAttribute('class') || '').split(' ').filter(function (i) {
  481. return i;
  482. });
  483. }
  484. }
  485. function htmlEscape(str) {
  486. return "".concat(str).replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
  487. }
  488. function joinAttributes(attributes) {
  489. return Object.keys(attributes || {}).reduce(function (acc, attributeName) {
  490. return acc + "".concat(attributeName, "=\"").concat(htmlEscape(attributes[attributeName]), "\" ");
  491. }, '').trim();
  492. }
  493. function joinStyles(styles) {
  494. return Object.keys(styles || {}).reduce(function (acc, styleName) {
  495. return acc + "".concat(styleName, ": ").concat(styles[styleName].trim(), ";");
  496. }, '');
  497. }
  498. function transformIsMeaningful(transform) {
  499. return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;
  500. }
  501. function transformForSvg(_ref) {
  502. var transform = _ref.transform,
  503. containerWidth = _ref.containerWidth,
  504. iconWidth = _ref.iconWidth;
  505. var outer = {
  506. transform: "translate(".concat(containerWidth / 2, " 256)")
  507. };
  508. var innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") ");
  509. var innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") ");
  510. var innerRotate = "rotate(".concat(transform.rotate, " 0 0)");
  511. var inner = {
  512. transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate)
  513. };
  514. var path = {
  515. transform: "translate(".concat(iconWidth / 2 * -1, " -256)")
  516. };
  517. return {
  518. outer: outer,
  519. inner: inner,
  520. path: path
  521. };
  522. }
  523. function transformForCss(_ref2) {
  524. var transform = _ref2.transform,
  525. _ref2$width = _ref2.width,
  526. width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,
  527. _ref2$height = _ref2.height,
  528. height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,
  529. _ref2$startCentered = _ref2.startCentered,
  530. startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;
  531. var val = '';
  532. if (startCentered && IS_IE) {
  533. val += "translate(".concat(transform.x / d - width / 2, "em, ").concat(transform.y / d - height / 2, "em) ");
  534. } else if (startCentered) {
  535. val += "translate(calc(-50% + ".concat(transform.x / d, "em), calc(-50% + ").concat(transform.y / d, "em)) ");
  536. } else {
  537. val += "translate(".concat(transform.x / d, "em, ").concat(transform.y / d, "em) ");
  538. }
  539. val += "scale(".concat(transform.size / d * (transform.flipX ? -1 : 1), ", ").concat(transform.size / d * (transform.flipY ? -1 : 1), ") ");
  540. val += "rotate(".concat(transform.rotate, "deg) ");
  541. return val;
  542. }
  543. var baseStyles = ":root, :host {\n --fa-font-solid: normal 900 1em/1 \"Font Awesome 6 Solid\";\n --fa-font-regular: normal 400 1em/1 \"Font Awesome 6 Regular\";\n --fa-font-light: normal 300 1em/1 \"Font Awesome 6 Light\";\n --fa-font-thin: normal 100 1em/1 \"Font Awesome 6 Thin\";\n --fa-font-duotone: normal 900 1em/1 \"Font Awesome 6 Duotone\";\n --fa-font-sharp-solid: normal 900 1em/1 \"Font Awesome 6 Sharp\";\n --fa-font-sharp-regular: normal 400 1em/1 \"Font Awesome 6 Sharp\";\n --fa-font-sharp-light: normal 300 1em/1 \"Font Awesome 6 Sharp\";\n --fa-font-sharp-thin: normal 100 1em/1 \"Font Awesome 6 Sharp\";\n --fa-font-brands: normal 400 1em/1 \"Font Awesome 6 Brands\";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}";
  544. function css() {
  545. var dcp = DEFAULT_CSS_PREFIX;
  546. var drc = DEFAULT_REPLACEMENT_CLASS;
  547. var fp = config.cssPrefix;
  548. var rc = config.replacementClass;
  549. var s = baseStyles;
  550. if (fp !== dcp || rc !== drc) {
  551. var dPatt = new RegExp("\\.".concat(dcp, "\\-"), 'g');
  552. var customPropPatt = new RegExp("\\--".concat(dcp, "\\-"), 'g');
  553. var rPatt = new RegExp("\\.".concat(drc), 'g');
  554. s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc));
  555. }
  556. return s;
  557. }
  558. var _cssInserted = false;
  559. function ensureCss() {
  560. if (config.autoAddCss && !_cssInserted) {
  561. insertCss(css());
  562. _cssInserted = true;
  563. }
  564. }
  565. var InjectCSS = {
  566. mixout: function mixout() {
  567. return {
  568. dom: {
  569. css: css,
  570. insertCss: ensureCss
  571. }
  572. };
  573. },
  574. hooks: function hooks() {
  575. return {
  576. beforeDOMElementCreation: function beforeDOMElementCreation() {
  577. ensureCss();
  578. },
  579. beforeI2svg: function beforeI2svg() {
  580. ensureCss();
  581. }
  582. };
  583. }
  584. };
  585. var w = WINDOW || {};
  586. if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
  587. if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
  588. if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
  589. if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
  590. var namespace = w[NAMESPACE_IDENTIFIER];
  591. var functions = [];
  592. var listener = function listener() {
  593. DOCUMENT.removeEventListener('DOMContentLoaded', listener);
  594. loaded = 1;
  595. functions.map(function (fn) {
  596. return fn();
  597. });
  598. };
  599. var loaded = false;
  600. if (IS_DOM) {
  601. loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
  602. if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
  603. }
  604. function domready (fn) {
  605. if (!IS_DOM) return;
  606. loaded ? setTimeout(fn, 0) : functions.push(fn);
  607. }
  608. function toHtml(abstractNodes) {
  609. var tag = abstractNodes.tag,
  610. _abstractNodes$attrib = abstractNodes.attributes,
  611. attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,
  612. _abstractNodes$childr = abstractNodes.children,
  613. children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;
  614. if (typeof abstractNodes === 'string') {
  615. return htmlEscape(abstractNodes);
  616. } else {
  617. return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(''), "</").concat(tag, ">");
  618. }
  619. }
  620. function iconFromMapping(mapping, prefix, iconName) {
  621. if (mapping && mapping[prefix] && mapping[prefix][iconName]) {
  622. return {
  623. prefix: prefix,
  624. iconName: iconName,
  625. icon: mapping[prefix][iconName]
  626. };
  627. }
  628. }
  629. /**
  630. * Internal helper to bind a function known to have 4 arguments
  631. * to a given context.
  632. */
  633. var bindInternal4 = function bindInternal4(func, thisContext) {
  634. return function (a, b, c, d) {
  635. return func.call(thisContext, a, b, c, d);
  636. };
  637. };
  638. /**
  639. * # Reduce
  640. *
  641. * A fast object `.reduce()` implementation.
  642. *
  643. * @param {Object} subject The object to reduce over.
  644. * @param {Function} fn The reducer function.
  645. * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].
  646. * @param {Object} thisContext The context for the reducer.
  647. * @return {mixed} The final result.
  648. */
  649. var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {
  650. var keys = Object.keys(subject),
  651. length = keys.length,
  652. iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,
  653. i,
  654. key,
  655. result;
  656. if (initialValue === undefined) {
  657. i = 1;
  658. result = subject[keys[0]];
  659. } else {
  660. i = 0;
  661. result = initialValue;
  662. }
  663. for (; i < length; i++) {
  664. key = keys[i];
  665. result = iterator(result, subject[key], key, subject);
  666. }
  667. return result;
  668. };
  669. /**
  670. * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT
  671. *
  672. * Copyright Mathias Bynens <https://mathiasbynens.be/>
  673. * Permission is hereby granted, free of charge, to any person obtaining
  674. * a copy of this software and associated documentation files (the
  675. * "Software"), to deal in the Software without restriction, including
  676. * without limitation the rights to use, copy, modify, merge, publish,
  677. * distribute, sublicense, and/or sell copies of the Software, and to
  678. * permit persons to whom the Software is furnished to do so, subject to
  679. * the following conditions:
  680. * The above copyright notice and this permission notice shall be
  681. * included in all copies or substantial portions of the Software.
  682. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  683. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  684. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  685. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  686. * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  687. * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  688. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  689. */
  690. function ucs2decode(string) {
  691. var output = [];
  692. var counter = 0;
  693. var length = string.length;
  694. while (counter < length) {
  695. var value = string.charCodeAt(counter++);
  696. if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
  697. var extra = string.charCodeAt(counter++);
  698. if ((extra & 0xFC00) == 0xDC00) {
  699. // eslint-disable-line eqeqeq
  700. output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
  701. } else {
  702. output.push(value);
  703. counter--;
  704. }
  705. } else {
  706. output.push(value);
  707. }
  708. }
  709. return output;
  710. }
  711. function toHex(unicode) {
  712. var decoded = ucs2decode(unicode);
  713. return decoded.length === 1 ? decoded[0].toString(16) : null;
  714. }
  715. function codePointAt(string, index) {
  716. var size = string.length;
  717. var first = string.charCodeAt(index);
  718. var second;
  719. if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {
  720. second = string.charCodeAt(index + 1);
  721. if (second >= 0xDC00 && second <= 0xDFFF) {
  722. return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
  723. }
  724. }
  725. return first;
  726. }
  727. function normalizeIcons(icons) {
  728. return Object.keys(icons).reduce(function (acc, iconName) {
  729. var icon = icons[iconName];
  730. var expanded = !!icon.icon;
  731. if (expanded) {
  732. acc[icon.iconName] = icon.icon;
  733. } else {
  734. acc[iconName] = icon;
  735. }
  736. return acc;
  737. }, {});
  738. }
  739. function defineIcons(prefix, icons) {
  740. var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  741. var _params$skipHooks = params.skipHooks,
  742. skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;
  743. var normalized = normalizeIcons(icons);
  744. if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {
  745. namespace.hooks.addPack(prefix, normalizeIcons(icons));
  746. } else {
  747. namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);
  748. }
  749. /**
  750. * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
  751. * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
  752. * for `fas` so we'll ease the upgrade process for our users by automatically defining
  753. * this as well.
  754. */
  755. if (prefix === 'fas') {
  756. defineIcons('fa', icons);
  757. }
  758. }
  759. var duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d="((?:(?!")[\s\S])+)".*path d="((?:(?!")[\s\S])+)"/, {
  760. d1: 1,
  761. d2: 2
  762. }), /*#__PURE__*/_wrapRegExp(/path class="((?:(?!")[\s\S])+)".*d="((?:(?!")[\s\S])+)".*path class="((?:(?!")[\s\S])+)".*d="((?:(?!")[\s\S])+)"/, {
  763. cls1: 1,
  764. d1: 2,
  765. cls2: 3,
  766. d2: 4
  767. }), /*#__PURE__*/_wrapRegExp(/path class="((?:(?!")[\s\S])+)".*d="((?:(?!")[\s\S])+)"/, {
  768. cls1: 1,
  769. d1: 2
  770. })];
  771. var _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;
  772. var styles = namespace.styles,
  773. shims = namespace.shims;
  774. var LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);
  775. var _defaultUsablePrefix = null;
  776. var _byUnicode = {};
  777. var _byLigature = {};
  778. var _byOldName = {};
  779. var _byOldUnicode = {};
  780. var _byAlias = {};
  781. var PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);
  782. function isReserved(name) {
  783. return ~RESERVED_CLASSES.indexOf(name);
  784. }
  785. function getIconName(cssPrefix, cls) {
  786. var parts = cls.split('-');
  787. var prefix = parts[0];
  788. var iconName = parts.slice(1).join('-');
  789. if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {
  790. return iconName;
  791. } else {
  792. return null;
  793. }
  794. }
  795. var build = function build() {
  796. var lookup = function lookup(reducer) {
  797. return reduce(styles, function (o, style, prefix) {
  798. o[prefix] = reduce(style, reducer, {});
  799. return o;
  800. }, {});
  801. };
  802. _byUnicode = lookup(function (acc, icon, iconName) {
  803. if (icon[3]) {
  804. acc[icon[3]] = iconName;
  805. }
  806. if (icon[2]) {
  807. var aliases = icon[2].filter(function (a) {
  808. return typeof a === 'number';
  809. });
  810. aliases.forEach(function (alias) {
  811. acc[alias.toString(16)] = iconName;
  812. });
  813. }
  814. return acc;
  815. });
  816. _byLigature = lookup(function (acc, icon, iconName) {
  817. acc[iconName] = iconName;
  818. if (icon[2]) {
  819. var aliases = icon[2].filter(function (a) {
  820. return typeof a === 'string';
  821. });
  822. aliases.forEach(function (alias) {
  823. acc[alias] = iconName;
  824. });
  825. }
  826. return acc;
  827. });
  828. _byAlias = lookup(function (acc, icon, iconName) {
  829. var aliases = icon[2];
  830. acc[iconName] = iconName;
  831. aliases.forEach(function (alias) {
  832. acc[alias] = iconName;
  833. });
  834. return acc;
  835. }); // If we have a Kit, we can't determine if regular is available since we
  836. // could be auto-fetching it. We'll have to assume that it is available.
  837. var hasRegular = 'far' in styles || config.autoFetchSvg;
  838. var shimLookups = reduce(shims, function (acc, shim) {
  839. var maybeNameMaybeUnicode = shim[0];
  840. var prefix = shim[1];
  841. var iconName = shim[2];
  842. if (prefix === 'far' && !hasRegular) {
  843. prefix = 'fas';
  844. }
  845. if (typeof maybeNameMaybeUnicode === 'string') {
  846. acc.names[maybeNameMaybeUnicode] = {
  847. prefix: prefix,
  848. iconName: iconName
  849. };
  850. }
  851. if (typeof maybeNameMaybeUnicode === 'number') {
  852. acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {
  853. prefix: prefix,
  854. iconName: iconName
  855. };
  856. }
  857. return acc;
  858. }, {
  859. names: {},
  860. unicodes: {}
  861. });
  862. _byOldName = shimLookups.names;
  863. _byOldUnicode = shimLookups.unicodes;
  864. _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {
  865. family: config.familyDefault
  866. });
  867. };
  868. onChange(function (c) {
  869. _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {
  870. family: config.familyDefault
  871. });
  872. });
  873. build();
  874. function byUnicode(prefix, unicode) {
  875. return (_byUnicode[prefix] || {})[unicode];
  876. }
  877. function byLigature(prefix, ligature) {
  878. return (_byLigature[prefix] || {})[ligature];
  879. }
  880. function byAlias(prefix, alias) {
  881. return (_byAlias[prefix] || {})[alias];
  882. }
  883. function byOldName(name) {
  884. return _byOldName[name] || {
  885. prefix: null,
  886. iconName: null
  887. };
  888. }
  889. function byOldUnicode(unicode) {
  890. var oldUnicode = _byOldUnicode[unicode];
  891. var newUnicode = byUnicode('fas', unicode);
  892. return oldUnicode || (newUnicode ? {
  893. prefix: 'fas',
  894. iconName: newUnicode
  895. } : null) || {
  896. prefix: null,
  897. iconName: null
  898. };
  899. }
  900. function getDefaultUsablePrefix() {
  901. return _defaultUsablePrefix;
  902. }
  903. var emptyCanonicalIcon = function emptyCanonicalIcon() {
  904. return {
  905. prefix: null,
  906. iconName: null,
  907. rest: []
  908. };
  909. };
  910. function getCanonicalPrefix(styleOrPrefix) {
  911. var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  912. var _params$family = params.family,
  913. family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;
  914. var style = PREFIX_TO_STYLE[family][styleOrPrefix];
  915. var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];
  916. var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;
  917. return prefix || defined || null;
  918. }
  919. var PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);
  920. function getCanonicalIcon(values) {
  921. var _famProps;
  922. var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  923. var _params$skipLookups = params.skipLookups,
  924. skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;
  925. var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, "".concat(config.cssPrefix, "-").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, "".concat(config.cssPrefix, "-").concat(FAMILY_SHARP)), _famProps);
  926. var givenPrefix = null;
  927. var family = FAMILY_CLASSIC;
  928. if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {
  929. return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);
  930. })) {
  931. family = FAMILY_CLASSIC;
  932. }
  933. if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {
  934. return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);
  935. })) {
  936. family = FAMILY_SHARP;
  937. }
  938. var canonical = values.reduce(function (acc, cls) {
  939. var iconName = getIconName(config.cssPrefix, cls);
  940. if (styles[cls]) {
  941. cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;
  942. givenPrefix = cls;
  943. acc.prefix = cls;
  944. } else if (PREFIXES[family].indexOf(cls) > -1) {
  945. givenPrefix = cls;
  946. acc.prefix = getCanonicalPrefix(cls, {
  947. family: family
  948. });
  949. } else if (iconName) {
  950. acc.iconName = iconName;
  951. } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {
  952. acc.rest.push(cls);
  953. }
  954. if (!skipLookups && acc.prefix && acc.iconName) {
  955. var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};
  956. var aliasIconName = byAlias(acc.prefix, acc.iconName);
  957. if (shim.prefix) {
  958. givenPrefix = null;
  959. }
  960. acc.iconName = shim.iconName || aliasIconName || acc.iconName;
  961. acc.prefix = shim.prefix || acc.prefix;
  962. if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {
  963. // Allow a fallback from the regular style to solid if regular is not available
  964. // but only if we aren't auto-fetching SVGs
  965. acc.prefix = 'fas';
  966. }
  967. }
  968. return acc;
  969. }, emptyCanonicalIcon());
  970. if (values.includes('fa-brands') || values.includes('fab')) {
  971. canonical.prefix = 'fab';
  972. }
  973. if (values.includes('fa-duotone') || values.includes('fad')) {
  974. canonical.prefix = 'fad';
  975. }
  976. if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {
  977. canonical.prefix = 'fass';
  978. canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;
  979. }
  980. if (canonical.prefix === 'fa' || givenPrefix === 'fa') {
  981. // The fa prefix is not canonical. So if it has made it through until this point
  982. // we will shift it to the correct prefix.
  983. canonical.prefix = getDefaultUsablePrefix() || 'fas';
  984. }
  985. return canonical;
  986. }
  987. var Library = /*#__PURE__*/function () {
  988. function Library() {
  989. _classCallCheck(this, Library);
  990. this.definitions = {};
  991. }
  992. _createClass(Library, [{
  993. key: "add",
  994. value: function add() {
  995. var _this = this;
  996. for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {
  997. definitions[_key] = arguments[_key];
  998. }
  999. var additions = definitions.reduce(this._pullDefinitions, {});
  1000. Object.keys(additions).forEach(function (key) {
  1001. _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);
  1002. defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change
  1003. var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];
  1004. if (longPrefix) defineIcons(longPrefix, additions[key]);
  1005. build();
  1006. });
  1007. }
  1008. }, {
  1009. key: "reset",
  1010. value: function reset() {
  1011. this.definitions = {};
  1012. }
  1013. }, {
  1014. key: "_pullDefinitions",
  1015. value: function _pullDefinitions(additions, definition) {
  1016. var normalized = definition.prefix && definition.iconName && definition.icon ? {
  1017. 0: definition
  1018. } : definition;
  1019. Object.keys(normalized).map(function (key) {
  1020. var _normalized$key = normalized[key],
  1021. prefix = _normalized$key.prefix,
  1022. iconName = _normalized$key.iconName,
  1023. icon = _normalized$key.icon;
  1024. var aliases = icon[2];
  1025. if (!additions[prefix]) additions[prefix] = {};
  1026. if (aliases.length > 0) {
  1027. aliases.forEach(function (alias) {
  1028. if (typeof alias === 'string') {
  1029. additions[prefix][alias] = icon;
  1030. }
  1031. });
  1032. }
  1033. additions[prefix][iconName] = icon;
  1034. });
  1035. return additions;
  1036. }
  1037. }]);
  1038. return Library;
  1039. }();
  1040. var _plugins = [];
  1041. var _hooks = {};
  1042. var providers = {};
  1043. var defaultProviderKeys = Object.keys(providers);
  1044. function registerPlugins(nextPlugins, _ref) {
  1045. var obj = _ref.mixoutsTo;
  1046. _plugins = nextPlugins;
  1047. _hooks = {};
  1048. Object.keys(providers).forEach(function (k) {
  1049. if (defaultProviderKeys.indexOf(k) === -1) {
  1050. delete providers[k];
  1051. }
  1052. });
  1053. _plugins.forEach(function (plugin) {
  1054. var mixout = plugin.mixout ? plugin.mixout() : {};
  1055. Object.keys(mixout).forEach(function (tk) {
  1056. if (typeof mixout[tk] === 'function') {
  1057. obj[tk] = mixout[tk];
  1058. }
  1059. if (_typeof(mixout[tk]) === 'object') {
  1060. Object.keys(mixout[tk]).forEach(function (sk) {
  1061. if (!obj[tk]) {
  1062. obj[tk] = {};
  1063. }
  1064. obj[tk][sk] = mixout[tk][sk];
  1065. });
  1066. }
  1067. });
  1068. if (plugin.hooks) {
  1069. var hooks = plugin.hooks();
  1070. Object.keys(hooks).forEach(function (hook) {
  1071. if (!_hooks[hook]) {
  1072. _hooks[hook] = [];
  1073. }
  1074. _hooks[hook].push(hooks[hook]);
  1075. });
  1076. }
  1077. if (plugin.provides) {
  1078. plugin.provides(providers);
  1079. }
  1080. });
  1081. return obj;
  1082. }
  1083. function chainHooks(hook, accumulator) {
  1084. for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
  1085. args[_key - 2] = arguments[_key];
  1086. }
  1087. var hookFns = _hooks[hook] || [];
  1088. hookFns.forEach(function (hookFn) {
  1089. accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call
  1090. });
  1091. return accumulator;
  1092. }
  1093. function callHooks(hook) {
  1094. for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
  1095. args[_key2 - 1] = arguments[_key2];
  1096. }
  1097. var hookFns = _hooks[hook] || [];
  1098. hookFns.forEach(function (hookFn) {
  1099. hookFn.apply(null, args);
  1100. });
  1101. return undefined;
  1102. }
  1103. function callProvided() {
  1104. var hook = arguments[0];
  1105. var args = Array.prototype.slice.call(arguments, 1);
  1106. return providers[hook] ? providers[hook].apply(null, args) : undefined;
  1107. }
  1108. function findIconDefinition(iconLookup) {
  1109. if (iconLookup.prefix === 'fa') {
  1110. iconLookup.prefix = 'fas';
  1111. }
  1112. var iconName = iconLookup.iconName;
  1113. var prefix = iconLookup.prefix || getDefaultUsablePrefix();
  1114. if (!iconName) return;
  1115. iconName = byAlias(prefix, iconName) || iconName;
  1116. return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);
  1117. }
  1118. var library = new Library();
  1119. var noAuto = function noAuto() {
  1120. config.autoReplaceSvg = false;
  1121. config.observeMutations = false;
  1122. callHooks('noAuto');
  1123. };
  1124. var dom = {
  1125. i2svg: function i2svg() {
  1126. var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  1127. if (IS_DOM) {
  1128. callHooks('beforeI2svg', params);
  1129. callProvided('pseudoElements2svg', params);
  1130. return callProvided('i2svg', params);
  1131. } else {
  1132. return Promise.reject('Operation requires a DOM of some kind.');
  1133. }
  1134. },
  1135. watch: function watch() {
  1136. var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  1137. var autoReplaceSvgRoot = params.autoReplaceSvgRoot;
  1138. if (config.autoReplaceSvg === false) {
  1139. config.autoReplaceSvg = true;
  1140. }
  1141. config.observeMutations = true;
  1142. domready(function () {
  1143. autoReplace({
  1144. autoReplaceSvgRoot: autoReplaceSvgRoot
  1145. });
  1146. callHooks('watch', params);
  1147. });
  1148. }
  1149. };
  1150. var parse = {
  1151. icon: function icon(_icon) {
  1152. if (_icon === null) {
  1153. return null;
  1154. }
  1155. if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {
  1156. return {
  1157. prefix: _icon.prefix,
  1158. iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName
  1159. };
  1160. }
  1161. if (Array.isArray(_icon) && _icon.length === 2) {
  1162. var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];
  1163. var prefix = getCanonicalPrefix(_icon[0]);
  1164. return {
  1165. prefix: prefix,
  1166. iconName: byAlias(prefix, iconName) || iconName
  1167. };
  1168. }
  1169. if (typeof _icon === 'string' && (_icon.indexOf("".concat(config.cssPrefix, "-")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {
  1170. var canonicalIcon = getCanonicalIcon(_icon.split(' '), {
  1171. skipLookups: true
  1172. });
  1173. return {
  1174. prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),
  1175. iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName
  1176. };
  1177. }
  1178. if (typeof _icon === 'string') {
  1179. var _prefix = getDefaultUsablePrefix();
  1180. return {
  1181. prefix: _prefix,
  1182. iconName: byAlias(_prefix, _icon) || _icon
  1183. };
  1184. }
  1185. }
  1186. };
  1187. var api = {
  1188. noAuto: noAuto,
  1189. config: config,
  1190. dom: dom,
  1191. parse: parse,
  1192. library: library,
  1193. findIconDefinition: findIconDefinition,
  1194. toHtml: toHtml
  1195. };
  1196. var autoReplace = function autoReplace() {
  1197. var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  1198. var _params$autoReplaceSv = params.autoReplaceSvgRoot,
  1199. autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;
  1200. if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({
  1201. node: autoReplaceSvgRoot
  1202. });
  1203. };
  1204. function domVariants(val, abstractCreator) {
  1205. Object.defineProperty(val, 'abstract', {
  1206. get: abstractCreator
  1207. });
  1208. Object.defineProperty(val, 'html', {
  1209. get: function get() {
  1210. return val.abstract.map(function (a) {
  1211. return toHtml(a);
  1212. });
  1213. }
  1214. });
  1215. Object.defineProperty(val, 'node', {
  1216. get: function get() {
  1217. if (!IS_DOM) return;
  1218. var container = DOCUMENT.createElement('div');
  1219. container.innerHTML = val.html;
  1220. return container.children;
  1221. }
  1222. });
  1223. return val;
  1224. }
  1225. function asIcon (_ref) {
  1226. var children = _ref.children,
  1227. main = _ref.main,
  1228. mask = _ref.mask,
  1229. attributes = _ref.attributes,
  1230. styles = _ref.styles,
  1231. transform = _ref.transform;
  1232. if (transformIsMeaningful(transform) && main.found && !mask.found) {
  1233. var width = main.width,
  1234. height = main.height;
  1235. var offset = {
  1236. x: width / height / 2,
  1237. y: 0.5
  1238. };
  1239. attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {
  1240. 'transform-origin': "".concat(offset.x + transform.x / 16, "em ").concat(offset.y + transform.y / 16, "em")
  1241. }));
  1242. }
  1243. return [{
  1244. tag: 'svg',
  1245. attributes: attributes,
  1246. children: children
  1247. }];
  1248. }
  1249. function asSymbol (_ref) {
  1250. var prefix = _ref.prefix,
  1251. iconName = _ref.iconName,
  1252. children = _ref.children,
  1253. attributes = _ref.attributes,
  1254. symbol = _ref.symbol;
  1255. var id = symbol === true ? "".concat(prefix, "-").concat(config.cssPrefix, "-").concat(iconName) : symbol;
  1256. return [{
  1257. tag: 'svg',
  1258. attributes: {
  1259. style: 'display: none;'
  1260. },
  1261. children: [{
  1262. tag: 'symbol',
  1263. attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {
  1264. id: id
  1265. }),
  1266. children: children
  1267. }]
  1268. }];
  1269. }
  1270. function makeInlineSvgAbstract(params) {
  1271. var _params$icons = params.icons,
  1272. main = _params$icons.main,
  1273. mask = _params$icons.mask,
  1274. prefix = params.prefix,
  1275. iconName = params.iconName,
  1276. transform = params.transform,
  1277. symbol = params.symbol,
  1278. title = params.title,
  1279. maskId = params.maskId,
  1280. titleId = params.titleId,
  1281. extra = params.extra,
  1282. _params$watchable = params.watchable,
  1283. watchable = _params$watchable === void 0 ? false : _params$watchable;
  1284. var _ref = mask.found ? mask : main,
  1285. width = _ref.width,
  1286. height = _ref.height;
  1287. var isUploadedIcon = prefix === 'fak';
  1288. var attrClass = [config.replacementClass, iconName ? "".concat(config.cssPrefix, "-").concat(iconName) : ''].filter(function (c) {
  1289. return extra.classes.indexOf(c) === -1;
  1290. }).filter(function (c) {
  1291. return c !== '' || !!c;
  1292. }).concat(extra.classes).join(' ');
  1293. var content = {
  1294. children: [],
  1295. attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {
  1296. 'data-prefix': prefix,
  1297. 'data-icon': iconName,
  1298. 'class': attrClass,
  1299. 'role': extra.attributes.role || 'img',
  1300. 'xmlns': 'http://www.w3.org/2000/svg',
  1301. 'viewBox': "0 0 ".concat(width, " ").concat(height)
  1302. })
  1303. };
  1304. var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {
  1305. width: "".concat(width / height * 16 * 0.0625, "em")
  1306. } : {};
  1307. if (watchable) {
  1308. content.attributes[DATA_FA_I2SVG] = '';
  1309. }
  1310. if (title) {
  1311. content.children.push({
  1312. tag: 'title',
  1313. attributes: {
  1314. id: content.attributes['aria-labelledby'] || "title-".concat(titleId || nextUniqueId())
  1315. },
  1316. children: [title]
  1317. });
  1318. delete content.attributes.title;
  1319. }
  1320. var args = _objectSpread2(_objectSpread2({}, content), {}, {
  1321. prefix: prefix,
  1322. iconName: iconName,
  1323. main: main,
  1324. mask: mask,
  1325. maskId: maskId,
  1326. transform: transform,
  1327. symbol: symbol,
  1328. styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)
  1329. });
  1330. var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {
  1331. children: [],
  1332. attributes: {}
  1333. } : callProvided('generateAbstractIcon', args) || {
  1334. children: [],
  1335. attributes: {}
  1336. },
  1337. children = _ref2.children,
  1338. attributes = _ref2.attributes;
  1339. args.children = children;
  1340. args.attributes = attributes;
  1341. if (symbol) {
  1342. return asSymbol(args);
  1343. } else {
  1344. return asIcon(args);
  1345. }
  1346. }
  1347. function makeLayersTextAbstract(params) {
  1348. var content = params.content,
  1349. width = params.width,
  1350. height = params.height,
  1351. transform = params.transform,
  1352. title = params.title,
  1353. extra = params.extra,
  1354. _params$watchable2 = params.watchable,
  1355. watchable = _params$watchable2 === void 0 ? false : _params$watchable2;
  1356. var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {
  1357. 'title': title
  1358. } : {}), {}, {
  1359. 'class': extra.classes.join(' ')
  1360. });
  1361. if (watchable) {
  1362. attributes[DATA_FA_I2SVG] = '';
  1363. }
  1364. var styles = _objectSpread2({}, extra.styles);
  1365. if (transformIsMeaningful(transform)) {
  1366. styles['transform'] = transformForCss({
  1367. transform: transform,
  1368. startCentered: true,
  1369. width: width,
  1370. height: height
  1371. });
  1372. styles['-webkit-transform'] = styles['transform'];
  1373. }
  1374. var styleString = joinStyles(styles);
  1375. if (styleString.length > 0) {
  1376. attributes['style'] = styleString;
  1377. }
  1378. var val = [];
  1379. val.push({
  1380. tag: 'span',
  1381. attributes: attributes,
  1382. children: [content]
  1383. });
  1384. if (title) {
  1385. val.push({
  1386. tag: 'span',
  1387. attributes: {
  1388. class: 'sr-only'
  1389. },
  1390. children: [title]
  1391. });
  1392. }
  1393. return val;
  1394. }
  1395. function makeLayersCounterAbstract(params) {
  1396. var content = params.content,
  1397. title = params.title,
  1398. extra = params.extra;
  1399. var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {
  1400. 'title': title
  1401. } : {}), {}, {
  1402. 'class': extra.classes.join(' ')
  1403. });
  1404. var styleString = joinStyles(extra.styles);
  1405. if (styleString.length > 0) {
  1406. attributes['style'] = styleString;
  1407. }
  1408. var val = [];
  1409. val.push({
  1410. tag: 'span',
  1411. attributes: attributes,
  1412. children: [content]
  1413. });
  1414. if (title) {
  1415. val.push({
  1416. tag: 'span',
  1417. attributes: {
  1418. class: 'sr-only'
  1419. },
  1420. children: [title]
  1421. });
  1422. }
  1423. return val;
  1424. }
  1425. var styles$1 = namespace.styles;
  1426. function asFoundIcon(icon) {
  1427. var width = icon[0];
  1428. var height = icon[1];
  1429. var _icon$slice = icon.slice(4),
  1430. _icon$slice2 = _slicedToArray(_icon$slice, 1),
  1431. vectorData = _icon$slice2[0];
  1432. var element = null;
  1433. if (Array.isArray(vectorData)) {
  1434. element = {
  1435. tag: 'g',
  1436. attributes: {
  1437. class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.GROUP)
  1438. },
  1439. children: [{
  1440. tag: 'path',
  1441. attributes: {
  1442. class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY),
  1443. fill: 'currentColor',
  1444. d: vectorData[0]
  1445. }
  1446. }, {
  1447. tag: 'path',
  1448. attributes: {
  1449. class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY),
  1450. fill: 'currentColor',
  1451. d: vectorData[1]
  1452. }
  1453. }]
  1454. };
  1455. } else {
  1456. element = {
  1457. tag: 'path',
  1458. attributes: {
  1459. fill: 'currentColor',
  1460. d: vectorData
  1461. }
  1462. };
  1463. }
  1464. return {
  1465. found: true,
  1466. width: width,
  1467. height: height,
  1468. icon: element
  1469. };
  1470. }
  1471. var missingIconResolutionMixin = {
  1472. found: false,
  1473. width: 512,
  1474. height: 512
  1475. };
  1476. function maybeNotifyMissing(iconName, prefix) {
  1477. if (!PRODUCTION && !config.showMissingIcons && iconName) {
  1478. console.error("Icon with name \"".concat(iconName, "\" and prefix \"").concat(prefix, "\" is missing."));
  1479. }
  1480. }
  1481. function findIcon(iconName, prefix) {
  1482. var givenPrefix = prefix;
  1483. if (prefix === 'fa' && config.styleDefault !== null) {
  1484. prefix = getDefaultUsablePrefix();
  1485. }
  1486. return new Promise(function (resolve, reject) {
  1487. var val = {
  1488. found: false,
  1489. width: 512,
  1490. height: 512,
  1491. icon: callProvided('missingIconAbstract') || {}
  1492. };
  1493. if (givenPrefix === 'fa') {
  1494. var shim = byOldName(iconName) || {};
  1495. iconName = shim.iconName || iconName;
  1496. prefix = shim.prefix || prefix;
  1497. }
  1498. if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {
  1499. var icon = styles$1[prefix][iconName];
  1500. return resolve(asFoundIcon(icon));
  1501. }
  1502. maybeNotifyMissing(iconName, prefix);
  1503. resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {
  1504. icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}
  1505. }));
  1506. });
  1507. }
  1508. var noop$1 = function noop() {};
  1509. var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {
  1510. mark: noop$1,
  1511. measure: noop$1
  1512. };
  1513. var preamble = "FA \"6.5.0\"";
  1514. var begin = function begin(name) {
  1515. p.mark("".concat(preamble, " ").concat(name, " begins"));
  1516. return function () {
  1517. return end(name);
  1518. };
  1519. };
  1520. var end = function end(name) {
  1521. p.mark("".concat(preamble, " ").concat(name, " ends"));
  1522. p.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends"));
  1523. };
  1524. var perf = {
  1525. begin: begin,
  1526. end: end
  1527. };
  1528. var noop$2 = function noop() {};
  1529. function isWatched(node) {
  1530. var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;
  1531. return typeof i2svg === 'string';
  1532. }
  1533. function hasPrefixAndIcon(node) {
  1534. var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;
  1535. var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;
  1536. return prefix && icon;
  1537. }
  1538. function hasBeenReplaced(node) {
  1539. return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);
  1540. }
  1541. function getMutator() {
  1542. if (config.autoReplaceSvg === true) {
  1543. return mutators.replace;
  1544. }
  1545. var mutator = mutators[config.autoReplaceSvg];
  1546. return mutator || mutators.replace;
  1547. }
  1548. function createElementNS(tag) {
  1549. return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);
  1550. }
  1551. function createElement(tag) {
  1552. return DOCUMENT.createElement(tag);
  1553. }
  1554. function convertSVG(abstractObj) {
  1555. var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  1556. var _params$ceFn = params.ceFn,
  1557. ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;
  1558. if (typeof abstractObj === 'string') {
  1559. return DOCUMENT.createTextNode(abstractObj);
  1560. }
  1561. var tag = ceFn(abstractObj.tag);
  1562. Object.keys(abstractObj.attributes || []).forEach(function (key) {
  1563. tag.setAttribute(key, abstractObj.attributes[key]);
  1564. });
  1565. var children = abstractObj.children || [];
  1566. children.forEach(function (child) {
  1567. tag.appendChild(convertSVG(child, {
  1568. ceFn: ceFn
  1569. }));
  1570. });
  1571. return tag;
  1572. }
  1573. function nodeAsComment(node) {
  1574. var comment = " ".concat(node.outerHTML, " ");
  1575. /* BEGIN.ATTRIBUTION */
  1576. comment = "".concat(comment, "Font Awesome fontawesome.com ");
  1577. /* END.ATTRIBUTION */
  1578. return comment;
  1579. }
  1580. var mutators = {
  1581. replace: function replace(mutation) {
  1582. var node = mutation[0];
  1583. if (node.parentNode) {
  1584. mutation[1].forEach(function (_abstract) {
  1585. node.parentNode.insertBefore(convertSVG(_abstract), node);
  1586. });
  1587. if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {
  1588. var comment = DOCUMENT.createComment(nodeAsComment(node));
  1589. node.parentNode.replaceChild(comment, node);
  1590. } else {
  1591. node.remove();
  1592. }
  1593. }
  1594. },
  1595. nest: function nest(mutation) {
  1596. var node = mutation[0];
  1597. var _abstract2 = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.
  1598. // Short-circuit to the standard replacement
  1599. if (~classArray(node).indexOf(config.replacementClass)) {
  1600. return mutators.replace(mutation);
  1601. }
  1602. var forSvg = new RegExp("".concat(config.cssPrefix, "-.*"));
  1603. delete _abstract2[0].attributes.id;
  1604. if (_abstract2[0].attributes.class) {
  1605. var splitClasses = _abstract2[0].attributes.class.split(' ').reduce(function (acc, cls) {
  1606. if (cls === config.replacementClass || cls.match(forSvg)) {
  1607. acc.toSvg.push(cls);
  1608. } else {
  1609. acc.toNode.push(cls);
  1610. }
  1611. return acc;
  1612. }, {
  1613. toNode: [],
  1614. toSvg: []
  1615. });
  1616. _abstract2[0].attributes.class = splitClasses.toSvg.join(' ');
  1617. if (splitClasses.toNode.length === 0) {
  1618. node.removeAttribute('class');
  1619. } else {
  1620. node.setAttribute('class', splitClasses.toNode.join(' '));
  1621. }
  1622. }
  1623. var newInnerHTML = _abstract2.map(function (a) {
  1624. return toHtml(a);
  1625. }).join('\n');
  1626. node.setAttribute(DATA_FA_I2SVG, '');
  1627. node.innerHTML = newInnerHTML;
  1628. }
  1629. };
  1630. function performOperationSync(op) {
  1631. op();
  1632. }
  1633. function perform(mutations, callback) {
  1634. var callbackFunction = typeof callback === 'function' ? callback : noop$2;
  1635. if (mutations.length === 0) {
  1636. callbackFunction();
  1637. } else {
  1638. var frame = performOperationSync;
  1639. if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {
  1640. frame = WINDOW.requestAnimationFrame || performOperationSync;
  1641. }
  1642. frame(function () {
  1643. var mutator = getMutator();
  1644. var mark = perf.begin('mutate');
  1645. mutations.map(mutator);
  1646. mark();
  1647. callbackFunction();
  1648. });
  1649. }
  1650. }
  1651. var disabled = false;
  1652. function disableObservation() {
  1653. disabled = true;
  1654. }
  1655. function enableObservation() {
  1656. disabled = false;
  1657. }
  1658. var mo = null;
  1659. function observe(options) {
  1660. if (!MUTATION_OBSERVER) {
  1661. return;
  1662. }
  1663. if (!config.observeMutations) {
  1664. return;
  1665. }
  1666. var _options$treeCallback = options.treeCallback,
  1667. treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,
  1668. _options$nodeCallback = options.nodeCallback,
  1669. nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,
  1670. _options$pseudoElemen = options.pseudoElementsCallback,
  1671. pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,
  1672. _options$observeMutat = options.observeMutationsRoot,
  1673. observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;
  1674. mo = new MUTATION_OBSERVER(function (objects) {
  1675. if (disabled) return;
  1676. var defaultPrefix = getDefaultUsablePrefix();
  1677. toArray(objects).forEach(function (mutationRecord) {
  1678. if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {
  1679. if (config.searchPseudoElements) {
  1680. pseudoElementsCallback(mutationRecord.target);
  1681. }
  1682. treeCallback(mutationRecord.target);
  1683. }
  1684. if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {
  1685. pseudoElementsCallback(mutationRecord.target.parentNode);
  1686. }
  1687. if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {
  1688. if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {
  1689. var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),
  1690. prefix = _getCanonicalIcon.prefix,
  1691. iconName = _getCanonicalIcon.iconName;
  1692. mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);
  1693. if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);
  1694. } else if (hasBeenReplaced(mutationRecord.target)) {
  1695. nodeCallback(mutationRecord.target);
  1696. }
  1697. }
  1698. });
  1699. });
  1700. if (!IS_DOM) return;
  1701. mo.observe(observeMutationsRoot, {
  1702. childList: true,
  1703. attributes: true,
  1704. characterData: true,
  1705. subtree: true
  1706. });
  1707. }
  1708. function disconnect() {
  1709. if (!mo) return;
  1710. mo.disconnect();
  1711. }
  1712. function styleParser (node) {
  1713. var style = node.getAttribute('style');
  1714. var val = [];
  1715. if (style) {
  1716. val = style.split(';').reduce(function (acc, style) {
  1717. var styles = style.split(':');
  1718. var prop = styles[0];
  1719. var value = styles.slice(1);
  1720. if (prop && value.length > 0) {
  1721. acc[prop] = value.join(':').trim();
  1722. }
  1723. return acc;
  1724. }, {});
  1725. }
  1726. return val;
  1727. }
  1728. function classParser (node) {
  1729. var existingPrefix = node.getAttribute('data-prefix');
  1730. var existingIconName = node.getAttribute('data-icon');
  1731. var innerText = node.innerText !== undefined ? node.innerText.trim() : '';
  1732. var val = getCanonicalIcon(classArray(node));
  1733. if (!val.prefix) {
  1734. val.prefix = getDefaultUsablePrefix();
  1735. }
  1736. if (existingPrefix && existingIconName) {
  1737. val.prefix = existingPrefix;
  1738. val.iconName = existingIconName;
  1739. }
  1740. if (val.iconName && val.prefix) {
  1741. return val;
  1742. }
  1743. if (val.prefix && innerText.length > 0) {
  1744. val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));
  1745. }
  1746. if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {
  1747. val.iconName = node.firstChild.data;
  1748. }
  1749. return val;
  1750. }
  1751. function attributesParser (node) {
  1752. var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {
  1753. if (acc.name !== 'class' && acc.name !== 'style') {
  1754. acc[attr.name] = attr.value;
  1755. }
  1756. return acc;
  1757. }, {});
  1758. var title = node.getAttribute('title');
  1759. var titleId = node.getAttribute('data-fa-title-id');
  1760. if (config.autoA11y) {
  1761. if (title) {
  1762. extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId());
  1763. } else {
  1764. extraAttributes['aria-hidden'] = 'true';
  1765. extraAttributes['focusable'] = 'false';
  1766. }
  1767. }
  1768. return extraAttributes;
  1769. }
  1770. function blankMeta() {
  1771. return {
  1772. iconName: null,
  1773. title: null,
  1774. titleId: null,
  1775. prefix: null,
  1776. transform: meaninglessTransform,
  1777. symbol: false,
  1778. mask: {
  1779. iconName: null,
  1780. prefix: null,
  1781. rest: []
  1782. },
  1783. maskId: null,
  1784. extra: {
  1785. classes: [],
  1786. styles: {},
  1787. attributes: {}
  1788. }
  1789. };
  1790. }
  1791. function parseMeta(node) {
  1792. var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
  1793. styleParser: true
  1794. };
  1795. var _classParser = classParser(node),
  1796. iconName = _classParser.iconName,
  1797. prefix = _classParser.prefix,
  1798. extraClasses = _classParser.rest;
  1799. var extraAttributes = attributesParser(node);
  1800. var pluginMeta = chainHooks('parseNodeAttributes', {}, node);
  1801. var extraStyles = parser.styleParser ? styleParser(node) : [];
  1802. return _objectSpread2({
  1803. iconName: iconName,
  1804. title: node.getAttribute('title'),
  1805. titleId: node.getAttribute('data-fa-title-id'),
  1806. prefix: prefix,
  1807. transform: meaninglessTransform,
  1808. mask: {
  1809. iconName: null,
  1810. prefix: null,
  1811. rest: []
  1812. },
  1813. maskId: null,
  1814. symbol: false,
  1815. extra: {
  1816. classes: extraClasses,
  1817. styles: extraStyles,
  1818. attributes: extraAttributes
  1819. }
  1820. }, pluginMeta);
  1821. }
  1822. var styles$2 = namespace.styles;
  1823. function generateMutation(node) {
  1824. var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {
  1825. styleParser: false
  1826. }) : parseMeta(node);
  1827. if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {
  1828. return callProvided('generateLayersText', node, nodeMeta);
  1829. } else {
  1830. return callProvided('generateSvgReplacementMutation', node, nodeMeta);
  1831. }
  1832. }
  1833. var knownPrefixes = new Set();
  1834. FAMILIES.map(function (family) {
  1835. knownPrefixes.add("fa-".concat(family));
  1836. });
  1837. Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));
  1838. Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));
  1839. knownPrefixes = _toConsumableArray(knownPrefixes);
  1840. function onTree(root) {
  1841. var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
  1842. if (!IS_DOM) return Promise.resolve();
  1843. var htmlClassList = DOCUMENT.documentElement.classList;
  1844. var hclAdd = function hclAdd(suffix) {
  1845. return htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix));
  1846. };
  1847. var hclRemove = function hclRemove(suffix) {
  1848. return htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix));
  1849. };
  1850. var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {
  1851. return "fa-".concat(f);
  1852. }).concat(Object.keys(styles$2));
  1853. if (!prefixes.includes('fa')) {
  1854. prefixes.push('fa');
  1855. }
  1856. var prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes.map(function (p) {
  1857. return ".".concat(p, ":not([").concat(DATA_FA_I2SVG, "])");
  1858. })).join(', ');
  1859. if (prefixesDomQuery.length === 0) {
  1860. return Promise.resolve();
  1861. }
  1862. var candidates = [];
  1863. try {
  1864. candidates = toArray(root.querySelectorAll(prefixesDomQuery));
  1865. } catch (e) {// noop
  1866. }
  1867. if (candidates.length > 0) {
  1868. hclAdd('pending');
  1869. hclRemove('complete');
  1870. } else {
  1871. return Promise.resolve();
  1872. }
  1873. var mark = perf.begin('onTree');
  1874. var mutations = candidates.reduce(function (acc, node) {
  1875. try {
  1876. var mutation = generateMutation(node);
  1877. if (mutation) {
  1878. acc.push(mutation);
  1879. }
  1880. } catch (e) {
  1881. if (!PRODUCTION) {
  1882. if (e.name === 'MissingIcon') {
  1883. console.error(e);
  1884. }
  1885. }
  1886. }
  1887. return acc;
  1888. }, []);
  1889. return new Promise(function (resolve, reject) {
  1890. Promise.all(mutations).then(function (resolvedMutations) {
  1891. perform(resolvedMutations, function () {
  1892. hclAdd('active');
  1893. hclAdd('complete');
  1894. hclRemove('pending');
  1895. if (typeof callback === 'function') callback();
  1896. mark();
  1897. resolve();
  1898. });
  1899. }).catch(function (e) {
  1900. mark();
  1901. reject(e);
  1902. });
  1903. });
  1904. }
  1905. function onNode(node) {
  1906. var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
  1907. generateMutation(node).then(function (mutation) {
  1908. if (mutation) {
  1909. perform([mutation], callback);
  1910. }
  1911. });
  1912. }
  1913. function resolveIcons(next) {
  1914. return function (maybeIconDefinition) {
  1915. var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  1916. var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});
  1917. var mask = params.mask;
  1918. if (mask) {
  1919. mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});
  1920. }
  1921. return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {
  1922. mask: mask
  1923. }));
  1924. };
  1925. }
  1926. var render = function render(iconDefinition) {
  1927. var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  1928. var _params$transform = params.transform,
  1929. transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,
  1930. _params$symbol = params.symbol,
  1931. symbol = _params$symbol === void 0 ? false : _params$symbol,
  1932. _params$mask = params.mask,
  1933. mask = _params$mask === void 0 ? null : _params$mask,
  1934. _params$maskId = params.maskId,
  1935. maskId = _params$maskId === void 0 ? null : _params$maskId,
  1936. _params$title = params.title,
  1937. title = _params$title === void 0 ? null : _params$title,
  1938. _params$titleId = params.titleId,
  1939. titleId = _params$titleId === void 0 ? null : _params$titleId,
  1940. _params$classes = params.classes,
  1941. classes = _params$classes === void 0 ? [] : _params$classes,
  1942. _params$attributes = params.attributes,
  1943. attributes = _params$attributes === void 0 ? {} : _params$attributes,
  1944. _params$styles = params.styles,
  1945. styles = _params$styles === void 0 ? {} : _params$styles;
  1946. if (!iconDefinition) return;
  1947. var prefix = iconDefinition.prefix,
  1948. iconName = iconDefinition.iconName,
  1949. icon = iconDefinition.icon;
  1950. return domVariants(_objectSpread2({
  1951. type: 'icon'
  1952. }, iconDefinition), function () {
  1953. callHooks('beforeDOMElementCreation', {
  1954. iconDefinition: iconDefinition,
  1955. params: params
  1956. });
  1957. if (config.autoA11y) {
  1958. if (title) {
  1959. attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId());
  1960. } else {
  1961. attributes['aria-hidden'] = 'true';
  1962. attributes['focusable'] = 'false';
  1963. }
  1964. }
  1965. return makeInlineSvgAbstract({
  1966. icons: {
  1967. main: asFoundIcon(icon),
  1968. mask: mask ? asFoundIcon(mask.icon) : {
  1969. found: false,
  1970. width: null,
  1971. height: null,
  1972. icon: {}
  1973. }
  1974. },
  1975. prefix: prefix,
  1976. iconName: iconName,
  1977. transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),
  1978. symbol: symbol,
  1979. title: title,
  1980. maskId: maskId,
  1981. titleId: titleId,
  1982. extra: {
  1983. attributes: attributes,
  1984. styles: styles,
  1985. classes: classes
  1986. }
  1987. });
  1988. });
  1989. };
  1990. var ReplaceElements = {
  1991. mixout: function mixout() {
  1992. return {
  1993. icon: resolveIcons(render)
  1994. };
  1995. },
  1996. hooks: function hooks() {
  1997. return {
  1998. mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {
  1999. accumulator.treeCallback = onTree;
  2000. accumulator.nodeCallback = onNode;
  2001. return accumulator;
  2002. }
  2003. };
  2004. },
  2005. provides: function provides(providers$$1) {
  2006. providers$$1.i2svg = function (params) {
  2007. var _params$node = params.node,
  2008. node = _params$node === void 0 ? DOCUMENT : _params$node,
  2009. _params$callback = params.callback,
  2010. callback = _params$callback === void 0 ? function () {} : _params$callback;
  2011. return onTree(node, callback);
  2012. };
  2013. providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {
  2014. var iconName = nodeMeta.iconName,
  2015. title = nodeMeta.title,
  2016. titleId = nodeMeta.titleId,
  2017. prefix = nodeMeta.prefix,
  2018. transform = nodeMeta.transform,
  2019. symbol = nodeMeta.symbol,
  2020. mask = nodeMeta.mask,
  2021. maskId = nodeMeta.maskId,
  2022. extra = nodeMeta.extra;
  2023. return new Promise(function (resolve, reject) {
  2024. Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({
  2025. found: false,
  2026. width: 512,
  2027. height: 512,
  2028. icon: {}
  2029. })]).then(function (_ref) {
  2030. var _ref2 = _slicedToArray(_ref, 2),
  2031. main = _ref2[0],
  2032. mask = _ref2[1];
  2033. resolve([node, makeInlineSvgAbstract({
  2034. icons: {
  2035. main: main,
  2036. mask: mask
  2037. },
  2038. prefix: prefix,
  2039. iconName: iconName,
  2040. transform: transform,
  2041. symbol: symbol,
  2042. maskId: maskId,
  2043. title: title,
  2044. titleId: titleId,
  2045. extra: extra,
  2046. watchable: true
  2047. })]);
  2048. }).catch(reject);
  2049. });
  2050. };
  2051. providers$$1.generateAbstractIcon = function (_ref3) {
  2052. var children = _ref3.children,
  2053. attributes = _ref3.attributes,
  2054. main = _ref3.main,
  2055. transform = _ref3.transform,
  2056. styles = _ref3.styles;
  2057. var styleString = joinStyles(styles);
  2058. if (styleString.length > 0) {
  2059. attributes['style'] = styleString;
  2060. }
  2061. var nextChild;
  2062. if (transformIsMeaningful(transform)) {
  2063. nextChild = callProvided('generateAbstractTransformGrouping', {
  2064. main: main,
  2065. transform: transform,
  2066. containerWidth: main.width,
  2067. iconWidth: main.width
  2068. });
  2069. }
  2070. children.push(nextChild || main.icon);
  2071. return {
  2072. children: children,
  2073. attributes: attributes
  2074. };
  2075. };
  2076. }
  2077. };
  2078. var Layers = {
  2079. mixout: function mixout() {
  2080. return {
  2081. layer: function layer(assembler) {
  2082. var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  2083. var _params$classes = params.classes,
  2084. classes = _params$classes === void 0 ? [] : _params$classes;
  2085. return domVariants({
  2086. type: 'layer'
  2087. }, function () {
  2088. callHooks('beforeDOMElementCreation', {
  2089. assembler: assembler,
  2090. params: params
  2091. });
  2092. var children = [];
  2093. assembler(function (args) {
  2094. Array.isArray(args) ? args.map(function (a) {
  2095. children = children.concat(a.abstract);
  2096. }) : children = children.concat(args.abstract);
  2097. });
  2098. return [{
  2099. tag: 'span',
  2100. attributes: {
  2101. class: ["".concat(config.cssPrefix, "-layers")].concat(_toConsumableArray(classes)).join(' ')
  2102. },
  2103. children: children
  2104. }];
  2105. });
  2106. }
  2107. };
  2108. }
  2109. };
  2110. var LayersCounter = {
  2111. mixout: function mixout() {
  2112. return {
  2113. counter: function counter(content) {
  2114. var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  2115. var _params$title = params.title,
  2116. title = _params$title === void 0 ? null : _params$title,
  2117. _params$classes = params.classes,
  2118. classes = _params$classes === void 0 ? [] : _params$classes,
  2119. _params$attributes = params.attributes,
  2120. attributes = _params$attributes === void 0 ? {} : _params$attributes,
  2121. _params$styles = params.styles,
  2122. styles = _params$styles === void 0 ? {} : _params$styles;
  2123. return domVariants({
  2124. type: 'counter',
  2125. content: content
  2126. }, function () {
  2127. callHooks('beforeDOMElementCreation', {
  2128. content: content,
  2129. params: params
  2130. });
  2131. return makeLayersCounterAbstract({
  2132. content: content.toString(),
  2133. title: title,
  2134. extra: {
  2135. attributes: attributes,
  2136. styles: styles,
  2137. classes: ["".concat(config.cssPrefix, "-layers-counter")].concat(_toConsumableArray(classes))
  2138. }
  2139. });
  2140. });
  2141. }
  2142. };
  2143. }
  2144. };
  2145. var LayersText = {
  2146. mixout: function mixout() {
  2147. return {
  2148. text: function text(content) {
  2149. var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  2150. var _params$transform = params.transform,
  2151. transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,
  2152. _params$title = params.title,
  2153. title = _params$title === void 0 ? null : _params$title,
  2154. _params$classes = params.classes,
  2155. classes = _params$classes === void 0 ? [] : _params$classes,
  2156. _params$attributes = params.attributes,
  2157. attributes = _params$attributes === void 0 ? {} : _params$attributes,
  2158. _params$styles = params.styles,
  2159. styles = _params$styles === void 0 ? {} : _params$styles;
  2160. return domVariants({
  2161. type: 'text',
  2162. content: content
  2163. }, function () {
  2164. callHooks('beforeDOMElementCreation', {
  2165. content: content,
  2166. params: params
  2167. });
  2168. return makeLayersTextAbstract({
  2169. content: content,
  2170. transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),
  2171. title: title,
  2172. extra: {
  2173. attributes: attributes,
  2174. styles: styles,
  2175. classes: ["".concat(config.cssPrefix, "-layers-text")].concat(_toConsumableArray(classes))
  2176. }
  2177. });
  2178. });
  2179. }
  2180. };
  2181. },
  2182. provides: function provides(providers$$1) {
  2183. providers$$1.generateLayersText = function (node, nodeMeta) {
  2184. var title = nodeMeta.title,
  2185. transform = nodeMeta.transform,
  2186. extra = nodeMeta.extra;
  2187. var width = null;
  2188. var height = null;
  2189. if (IS_IE) {
  2190. var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);
  2191. var boundingClientRect = node.getBoundingClientRect();
  2192. width = boundingClientRect.width / computedFontSize;
  2193. height = boundingClientRect.height / computedFontSize;
  2194. }
  2195. if (config.autoA11y && !title) {
  2196. extra.attributes['aria-hidden'] = 'true';
  2197. }
  2198. return Promise.resolve([node, makeLayersTextAbstract({
  2199. content: node.innerHTML,
  2200. width: width,
  2201. height: height,
  2202. transform: transform,
  2203. title: title,
  2204. extra: extra,
  2205. watchable: true
  2206. })]);
  2207. };
  2208. }
  2209. };
  2210. var CLEAN_CONTENT_PATTERN = new RegExp("\"", 'ug');
  2211. var SECONDARY_UNICODE_RANGE = [1105920, 1112319];
  2212. function hexValueFromContent(content) {
  2213. var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');
  2214. var codePoint = codePointAt(cleaned, 0);
  2215. var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];
  2216. var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;
  2217. return {
  2218. value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),
  2219. isSecondary: isPrependTen || isDoubled
  2220. };
  2221. }
  2222. function replaceForPosition(node, position) {
  2223. var pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));
  2224. return new Promise(function (resolve, reject) {
  2225. if (node.getAttribute(pendingAttribute) !== null) {
  2226. // This node is already being processed
  2227. return resolve();
  2228. }
  2229. var children = toArray(node.children);
  2230. var alreadyProcessedPseudoElement = children.filter(function (c) {
  2231. return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;
  2232. })[0];
  2233. var styles = WINDOW.getComputedStyle(node, position);
  2234. var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);
  2235. var fontWeight = styles.getPropertyValue('font-weight');
  2236. var content = styles.getPropertyValue('content');
  2237. if (alreadyProcessedPseudoElement && !fontFamily) {
  2238. // If we've already processed it but the current computed style does not result in a font-family,
  2239. // that probably means that a class name that was previously present to make the icon has been
  2240. // removed. So we now should delete the icon.
  2241. node.removeChild(alreadyProcessedPseudoElement);
  2242. return resolve();
  2243. } else if (fontFamily && content !== 'none' && content !== '') {
  2244. var _content = styles.getPropertyValue('content');
  2245. var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;
  2246. var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];
  2247. var _hexValueFromContent = hexValueFromContent(_content),
  2248. hexValue = _hexValueFromContent.value,
  2249. isSecondary = _hexValueFromContent.isSecondary;
  2250. var isV4 = fontFamily[0].startsWith('FontAwesome');
  2251. var iconName = byUnicode(prefix, hexValue);
  2252. var iconIdentifier = iconName;
  2253. if (isV4) {
  2254. var iconName4 = byOldUnicode(hexValue);
  2255. if (iconName4.iconName && iconName4.prefix) {
  2256. iconName = iconName4.iconName;
  2257. prefix = iconName4.prefix;
  2258. }
  2259. } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't
  2260. // already done so with the same prefix and iconName
  2261. if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {
  2262. node.setAttribute(pendingAttribute, iconIdentifier);
  2263. if (alreadyProcessedPseudoElement) {
  2264. // Delete the old one, since we're replacing it with a new one
  2265. node.removeChild(alreadyProcessedPseudoElement);
  2266. }
  2267. var meta = blankMeta();
  2268. var extra = meta.extra;
  2269. extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;
  2270. findIcon(iconName, prefix).then(function (main) {
  2271. var _abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {
  2272. icons: {
  2273. main: main,
  2274. mask: emptyCanonicalIcon()
  2275. },
  2276. prefix: prefix,
  2277. iconName: iconIdentifier,
  2278. extra: extra,
  2279. watchable: true
  2280. }));
  2281. var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');
  2282. if (position === '::before') {
  2283. node.insertBefore(element, node.firstChild);
  2284. } else {
  2285. node.appendChild(element);
  2286. }
  2287. element.outerHTML = _abstract.map(function (a) {
  2288. return toHtml(a);
  2289. }).join('\n');
  2290. node.removeAttribute(pendingAttribute);
  2291. resolve();
  2292. }).catch(reject);
  2293. } else {
  2294. resolve();
  2295. }
  2296. } else {
  2297. resolve();
  2298. }
  2299. });
  2300. }
  2301. function replace(node) {
  2302. return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);
  2303. }
  2304. function processable(node) {
  2305. return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');
  2306. }
  2307. function searchPseudoElements(root) {
  2308. if (!IS_DOM) return;
  2309. return new Promise(function (resolve, reject) {
  2310. var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);
  2311. var end = perf.begin('searchPseudoElements');
  2312. disableObservation();
  2313. Promise.all(operations).then(function () {
  2314. end();
  2315. enableObservation();
  2316. resolve();
  2317. }).catch(function () {
  2318. end();
  2319. enableObservation();
  2320. reject();
  2321. });
  2322. });
  2323. }
  2324. var PseudoElements = {
  2325. hooks: function hooks() {
  2326. return {
  2327. mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {
  2328. accumulator.pseudoElementsCallback = searchPseudoElements;
  2329. return accumulator;
  2330. }
  2331. };
  2332. },
  2333. provides: function provides(providers$$1) {
  2334. providers$$1.pseudoElements2svg = function (params) {
  2335. var _params$node = params.node,
  2336. node = _params$node === void 0 ? DOCUMENT : _params$node;
  2337. if (config.searchPseudoElements) {
  2338. searchPseudoElements(node);
  2339. }
  2340. };
  2341. }
  2342. };
  2343. var _unwatched = false;
  2344. var MutationObserver$1 = {
  2345. mixout: function mixout() {
  2346. return {
  2347. dom: {
  2348. unwatch: function unwatch() {
  2349. disableObservation();
  2350. _unwatched = true;
  2351. }
  2352. }
  2353. };
  2354. },
  2355. hooks: function hooks() {
  2356. return {
  2357. bootstrap: function bootstrap() {
  2358. observe(chainHooks('mutationObserverCallbacks', {}));
  2359. },
  2360. noAuto: function noAuto() {
  2361. disconnect();
  2362. },
  2363. watch: function watch(params) {
  2364. var observeMutationsRoot = params.observeMutationsRoot;
  2365. if (_unwatched) {
  2366. enableObservation();
  2367. } else {
  2368. observe(chainHooks('mutationObserverCallbacks', {
  2369. observeMutationsRoot: observeMutationsRoot
  2370. }));
  2371. }
  2372. }
  2373. };
  2374. }
  2375. };
  2376. var parseTransformString = function parseTransformString(transformString) {
  2377. var transform = {
  2378. size: 16,
  2379. x: 0,
  2380. y: 0,
  2381. flipX: false,
  2382. flipY: false,
  2383. rotate: 0
  2384. };
  2385. return transformString.toLowerCase().split(' ').reduce(function (acc, n) {
  2386. var parts = n.toLowerCase().split('-');
  2387. var first = parts[0];
  2388. var rest = parts.slice(1).join('-');
  2389. if (first && rest === 'h') {
  2390. acc.flipX = true;
  2391. return acc;
  2392. }
  2393. if (first && rest === 'v') {
  2394. acc.flipY = true;
  2395. return acc;
  2396. }
  2397. rest = parseFloat(rest);
  2398. if (isNaN(rest)) {
  2399. return acc;
  2400. }
  2401. switch (first) {
  2402. case 'grow':
  2403. acc.size = acc.size + rest;
  2404. break;
  2405. case 'shrink':
  2406. acc.size = acc.size - rest;
  2407. break;
  2408. case 'left':
  2409. acc.x = acc.x - rest;
  2410. break;
  2411. case 'right':
  2412. acc.x = acc.x + rest;
  2413. break;
  2414. case 'up':
  2415. acc.y = acc.y - rest;
  2416. break;
  2417. case 'down':
  2418. acc.y = acc.y + rest;
  2419. break;
  2420. case 'rotate':
  2421. acc.rotate = acc.rotate + rest;
  2422. break;
  2423. }
  2424. return acc;
  2425. }, transform);
  2426. };
  2427. var PowerTransforms = {
  2428. mixout: function mixout() {
  2429. return {
  2430. parse: {
  2431. transform: function transform(transformString) {
  2432. return parseTransformString(transformString);
  2433. }
  2434. }
  2435. };
  2436. },
  2437. hooks: function hooks() {
  2438. return {
  2439. parseNodeAttributes: function parseNodeAttributes(accumulator, node) {
  2440. var transformString = node.getAttribute('data-fa-transform');
  2441. if (transformString) {
  2442. accumulator.transform = parseTransformString(transformString);
  2443. }
  2444. return accumulator;
  2445. }
  2446. };
  2447. },
  2448. provides: function provides(providers) {
  2449. providers.generateAbstractTransformGrouping = function (_ref) {
  2450. var main = _ref.main,
  2451. transform = _ref.transform,
  2452. containerWidth = _ref.containerWidth,
  2453. iconWidth = _ref.iconWidth;
  2454. var outer = {
  2455. transform: "translate(".concat(containerWidth / 2, " 256)")
  2456. };
  2457. var innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") ");
  2458. var innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") ");
  2459. var innerRotate = "rotate(".concat(transform.rotate, " 0 0)");
  2460. var inner = {
  2461. transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate)
  2462. };
  2463. var path = {
  2464. transform: "translate(".concat(iconWidth / 2 * -1, " -256)")
  2465. };
  2466. var operations = {
  2467. outer: outer,
  2468. inner: inner,
  2469. path: path
  2470. };
  2471. return {
  2472. tag: 'g',
  2473. attributes: _objectSpread2({}, operations.outer),
  2474. children: [{
  2475. tag: 'g',
  2476. attributes: _objectSpread2({}, operations.inner),
  2477. children: [{
  2478. tag: main.icon.tag,
  2479. children: main.icon.children,
  2480. attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)
  2481. }]
  2482. }]
  2483. };
  2484. };
  2485. }
  2486. };
  2487. var ALL_SPACE = {
  2488. x: 0,
  2489. y: 0,
  2490. width: '100%',
  2491. height: '100%'
  2492. };
  2493. function fillBlack(_abstract) {
  2494. var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  2495. if (_abstract.attributes && (_abstract.attributes.fill || force)) {
  2496. _abstract.attributes.fill = 'black';
  2497. }
  2498. return _abstract;
  2499. }
  2500. function deGroup(_abstract2) {
  2501. if (_abstract2.tag === 'g') {
  2502. return _abstract2.children;
  2503. } else {
  2504. return [_abstract2];
  2505. }
  2506. }
  2507. var Masks = {
  2508. hooks: function hooks() {
  2509. return {
  2510. parseNodeAttributes: function parseNodeAttributes(accumulator, node) {
  2511. var maskData = node.getAttribute('data-fa-mask');
  2512. var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {
  2513. return i.trim();
  2514. }));
  2515. if (!mask.prefix) {
  2516. mask.prefix = getDefaultUsablePrefix();
  2517. }
  2518. accumulator.mask = mask;
  2519. accumulator.maskId = node.getAttribute('data-fa-mask-id');
  2520. return accumulator;
  2521. }
  2522. };
  2523. },
  2524. provides: function provides(providers) {
  2525. providers.generateAbstractMask = function (_ref) {
  2526. var children = _ref.children,
  2527. attributes = _ref.attributes,
  2528. main = _ref.main,
  2529. mask = _ref.mask,
  2530. explicitMaskId = _ref.maskId,
  2531. transform = _ref.transform;
  2532. var mainWidth = main.width,
  2533. mainPath = main.icon;
  2534. var maskWidth = mask.width,
  2535. maskPath = mask.icon;
  2536. var trans = transformForSvg({
  2537. transform: transform,
  2538. containerWidth: maskWidth,
  2539. iconWidth: mainWidth
  2540. });
  2541. var maskRect = {
  2542. tag: 'rect',
  2543. attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {
  2544. fill: 'white'
  2545. })
  2546. };
  2547. var maskInnerGroupChildrenMixin = mainPath.children ? {
  2548. children: mainPath.children.map(fillBlack)
  2549. } : {};
  2550. var maskInnerGroup = {
  2551. tag: 'g',
  2552. attributes: _objectSpread2({}, trans.inner),
  2553. children: [fillBlack(_objectSpread2({
  2554. tag: mainPath.tag,
  2555. attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)
  2556. }, maskInnerGroupChildrenMixin))]
  2557. };
  2558. var maskOuterGroup = {
  2559. tag: 'g',
  2560. attributes: _objectSpread2({}, trans.outer),
  2561. children: [maskInnerGroup]
  2562. };
  2563. var maskId = "mask-".concat(explicitMaskId || nextUniqueId());
  2564. var clipId = "clip-".concat(explicitMaskId || nextUniqueId());
  2565. var maskTag = {
  2566. tag: 'mask',
  2567. attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {
  2568. id: maskId,
  2569. maskUnits: 'userSpaceOnUse',
  2570. maskContentUnits: 'userSpaceOnUse'
  2571. }),
  2572. children: [maskRect, maskOuterGroup]
  2573. };
  2574. var defs = {
  2575. tag: 'defs',
  2576. children: [{
  2577. tag: 'clipPath',
  2578. attributes: {
  2579. id: clipId
  2580. },
  2581. children: deGroup(maskPath)
  2582. }, maskTag]
  2583. };
  2584. children.push(defs, {
  2585. tag: 'rect',
  2586. attributes: _objectSpread2({
  2587. fill: 'currentColor',
  2588. 'clip-path': "url(#".concat(clipId, ")"),
  2589. mask: "url(#".concat(maskId, ")")
  2590. }, ALL_SPACE)
  2591. });
  2592. return {
  2593. children: children,
  2594. attributes: attributes
  2595. };
  2596. };
  2597. }
  2598. };
  2599. var MissingIconIndicator = {
  2600. provides: function provides(providers) {
  2601. var reduceMotion = false;
  2602. if (WINDOW.matchMedia) {
  2603. reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;
  2604. }
  2605. providers.missingIconAbstract = function () {
  2606. var gChildren = [];
  2607. var FILL = {
  2608. fill: 'currentColor'
  2609. };
  2610. var ANIMATION_BASE = {
  2611. attributeType: 'XML',
  2612. repeatCount: 'indefinite',
  2613. dur: '2s'
  2614. }; // Ring
  2615. gChildren.push({
  2616. tag: 'path',
  2617. attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
  2618. d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'
  2619. })
  2620. });
  2621. var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {
  2622. attributeName: 'opacity'
  2623. });
  2624. var dot = {
  2625. tag: 'circle',
  2626. attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
  2627. cx: '256',
  2628. cy: '364',
  2629. r: '28'
  2630. }),
  2631. children: []
  2632. };
  2633. if (!reduceMotion) {
  2634. dot.children.push({
  2635. tag: 'animate',
  2636. attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {
  2637. attributeName: 'r',
  2638. values: '28;14;28;28;14;28;'
  2639. })
  2640. }, {
  2641. tag: 'animate',
  2642. attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
  2643. values: '1;0;1;1;0;1;'
  2644. })
  2645. });
  2646. }
  2647. gChildren.push(dot);
  2648. gChildren.push({
  2649. tag: 'path',
  2650. attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
  2651. opacity: '1',
  2652. d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'
  2653. }),
  2654. children: reduceMotion ? [] : [{
  2655. tag: 'animate',
  2656. attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
  2657. values: '1;0;0;0;0;1;'
  2658. })
  2659. }]
  2660. });
  2661. if (!reduceMotion) {
  2662. // Exclamation
  2663. gChildren.push({
  2664. tag: 'path',
  2665. attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
  2666. opacity: '0',
  2667. d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'
  2668. }),
  2669. children: [{
  2670. tag: 'animate',
  2671. attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
  2672. values: '0;0;1;1;0;0;'
  2673. })
  2674. }]
  2675. });
  2676. }
  2677. return {
  2678. tag: 'g',
  2679. attributes: {
  2680. 'class': 'missing'
  2681. },
  2682. children: gChildren
  2683. };
  2684. };
  2685. }
  2686. };
  2687. var SvgSymbols = {
  2688. hooks: function hooks() {
  2689. return {
  2690. parseNodeAttributes: function parseNodeAttributes(accumulator, node) {
  2691. var symbolData = node.getAttribute('data-fa-symbol');
  2692. var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;
  2693. accumulator['symbol'] = symbol;
  2694. return accumulator;
  2695. }
  2696. };
  2697. }
  2698. };
  2699. var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];
  2700. registerPlugins(plugins, {
  2701. mixoutsTo: api
  2702. });
  2703. var noAuto$1 = api.noAuto;
  2704. var config$1 = api.config;
  2705. var library$1 = api.library;
  2706. var dom$1 = api.dom;
  2707. var parse$1 = api.parse;
  2708. var findIconDefinition$1 = api.findIconDefinition;
  2709. var toHtml$1 = api.toHtml;
  2710. var icon = api.icon;
  2711. var layer = api.layer;
  2712. var text = api.text;
  2713. var counter = api.counter;
  2714. exports.noAuto = noAuto$1;
  2715. exports.config = config$1;
  2716. exports.library = library$1;
  2717. exports.dom = dom$1;
  2718. exports.parse = parse$1;
  2719. exports.findIconDefinition = findIconDefinition$1;
  2720. exports.toHtml = toHtml$1;
  2721. exports.icon = icon;
  2722. exports.layer = layer;
  2723. exports.text = text;
  2724. exports.counter = counter;
  2725. exports.api = api;
  2726. Object.defineProperty(exports, '__esModule', { value: true });
  2727. })));