1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};var n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="966b283f-5615-4a97-a45a-a0a49c5ee504",e._sentryDebugIdIdentifier="sentry-dbid-966b283f-5615-4a97-a45a-a0a49c5ee504");}catch(e){}}(); 2"use strict"; 3(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[5586],{ 4 5/***/ 82489: 6/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 7 8 9// EXPORTS 10__webpack_require__.d(__webpack_exports__, { 11 G: function() { return /* binding */ FontAwesomeIcon; } 12}); 13 14;// CONCATENATED MODULE: ./node_modules/@fortawesome/fontawesome-svg-core/index.mjs 15/*! 16 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 17 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 18 * Copyright 2024 Fonticons, Inc. 19 */ 20function _defineProperty(e, r, t) { 21 return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { 22 value: t, 23 enumerable: !0, 24 configurable: !0, 25 writable: !0 26 }) : e[r] = t, e; 27} 28function _inherits(t, e) { 29 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); 30 t.prototype = Object.create(e && e.prototype, { 31 constructor: { 32 value: t, 33 writable: !0, 34 configurable: !0 35 } 36 }), Object.defineProperty(t, "prototype", { 37 writable: !1 38 }), e && _setPrototypeOf(t, e); 39} 40function ownKeys(e, r) { 41 var t = Object.keys(e); 42 if (Object.getOwnPropertySymbols) { 43 var o = Object.getOwnPropertySymbols(e); 44 r && (o = o.filter(function (r) { 45 return Object.getOwnPropertyDescriptor(e, r).enumerable; 46 })), t.push.apply(t, o); 47 } 48 return t; 49} 50function _objectSpread2(e) { 51 for (var r = 1; r < arguments.length; r++) { 52 var t = null != arguments[r] ? arguments[r] : {}; 53 r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { 54 _defineProperty(e, r, t[r]); 55 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { 56 Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); 57 }); 58 } 59 return e; 60} 61function _setPrototypeOf(t, e) { 62 return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { 63 return t.__proto__ = e, t; 64 }, _setPrototypeOf(t, e); 65} 66function _toPrimitive(t, r) { 67 if ("object" != typeof t || !t) return t; 68 var e = t[Symbol.toPrimitive]; 69 if (void 0 !== e) { 70 var i = e.call(t, r || "default"); 71 if ("object" != typeof i) return i; 72 throw new TypeError("@@toPrimitive must return a primitive value."); 73 } 74 return ("string" === r ? String : Number)(t); 75} 76function _toPropertyKey(t) { 77 var i = _toPrimitive(t, "string"); 78 return "symbol" == typeof i ? i : i + ""; 79} 80function _wrapRegExp() { 81 _wrapRegExp = function (e, r) { 82 return new BabelRegExp(e, void 0, r); 83 }; 84 var e = RegExp.prototype, 85 r = new WeakMap(); 86 function BabelRegExp(e, t, p) { 87 var o = RegExp(e, t); 88 return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); 89 } 90 function buildGroups(e, t) { 91 var p = r.get(t); 92 return Object.keys(p).reduce(function (r, t) { 93 var o = p[t]; 94 if ("number" == typeof o) r[t] = e[o];else { 95 for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; 96 r[t] = e[o[i]]; 97 } 98 return r; 99 }, Object.create(null)); 100 } 101 return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { 102 var t = e.exec.call(this, r); 103 if (t) { 104 t.groups = buildGroups(t, this); 105 var p = t.indices; 106 p && (p.groups = buildGroups(p, this)); 107 } 108 return t; 109 }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { 110 if ("string" == typeof p) { 111 var o = r.get(this); 112 return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { 113 var t = o[r]; 114 return "$" + (Array.isArray(t) ? t.join("$") : t); 115 })); 116 } 117 if ("function" == typeof p) { 118 var i = this; 119 return e[Symbol.replace].call(this, t, function () { 120 var e = arguments; 121 return "object" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); 122 }); 123 } 124 return e[Symbol.replace].call(this, t, p); 125 }, _wrapRegExp.apply(this, arguments); 126} 127 128const noop = () => {}; 129let _WINDOW = {}; 130let _DOCUMENT = {}; 131let _MUTATION_OBSERVER = null; 132let _PERFORMANCE = { 133 mark: noop, 134 measure: noop 135}; 136try { 137 if (typeof window !== 'undefined') _WINDOW = window; 138 if (typeof document !== 'undefined') _DOCUMENT = document; 139 if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver; 140 if (typeof performance !== 'undefined') _PERFORMANCE = performance; 141} catch (e) {} 142const { 143 userAgent = '' 144} = _WINDOW.navigator || {}; 145const WINDOW = _WINDOW; 146const DOCUMENT = _DOCUMENT; 147const MUTATION_OBSERVER = _MUTATION_OBSERVER; 148const PERFORMANCE = _PERFORMANCE;
149const IS_BROWSER = !!WINDOW.document; 150const IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function'; 151const IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/'); 152 153var p = /fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/, 154 g = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i; 155var S = { 156 classic: { 157 fa: "solid", 158 fas: "solid", 159 "fa-solid": "solid", 160 far: "regular", 161 "fa-regular": "regular", 162 fal: "light", 163 "fa-light": "light", 164 fat: "thin", 165 "fa-thin": "thin", 166 fab: "brands", 167 "fa-brands": "brands" 168 }, 169 duotone: { 170 fa: "solid", 171 fad: "solid", 172 "fa-solid": "solid", 173 "fa-duotone": "solid", 174 fadr: "regular", 175 "fa-regular": "regular", 176 fadl: "light", 177 "fa-light": "light", 178 fadt: "thin", 179 "fa-thin": "thin" 180 }, 181 sharp: { 182 fa: "solid", 183 fass: "solid", 184 "fa-solid": "solid", 185 fasr: "regular", 186 "fa-regular": "regular", 187 fasl: "light", 188 "fa-light": "light", 189 fast: "thin", 190 "fa-thin": "thin" 191 }, 192 "sharp-duotone": { 193 fa: "solid", 194 fasds: "solid", 195 "fa-solid": "solid", 196 fasdr: "regular", 197 "fa-regular": "regular", 198 fasdl: "light", 199 "fa-light": "light", 200 fasdt: "thin", 201 "fa-thin": "thin" 202 } 203 }, 204 A = { 205 GROUP: "duotone-group", 206 SWAP_OPACITY: "swap-opacity", 207 PRIMARY: "primary", 208 SECONDARY: "secondary" 209 }, 210 P = ["fa-classic", "fa-duotone", "fa-sharp", "fa-sharp-duotone"]; 211var s = "classic", 212 t = "duotone", 213 r = "sharp", 214 o = "sharp-duotone", 215 L = [s, t, r, o]; 216var G = { 217 classic: { 218 900: "fas", 219 400: "far", 220 normal: "far", 221 300: "fal", 222 100: "fat" 223 }, 224 duotone: { 225 900: "fad", 226 400: "fadr", 227 300: "fadl", 228 100: "fadt" 229 }, 230 sharp: { 231 900: "fass", 232 400: "fasr", 233 300: "fasl", 234 100: "fast" 235 }, 236 "sharp-duotone": { 237 900: "fasds", 238 400: "fasdr", 239 300: "fasdl", 240 100: "fasdt" 241 } 242 }; 243var lt = { 244 "Font Awesome 6 Free": { 245 900: "fas", 246 400: "far" 247 }, 248 "Font Awesome 6 Pro": { 249 900: "fas", 250 400: "far", 251 normal: "far", 252 300: "fal", 253 100: "fat" 254 }, 255 "Font Awesome 6 Brands": { 256 400: "fab", 257 normal: "fab" 258 }, 259 "Font Awesome 6 Duotone": { 260 900: "fad", 261 400: "fadr", 262 normal: "fadr", 263 300: "fadl", 264 100: "fadt" 265 }, 266 "Font Awesome 6 Sharp": { 267 900: "fass", 268 400: "fasr", 269 normal: "fasr", 270 300: "fasl", 271 100: "fast" 272 }, 273 "Font Awesome 6 Sharp Duotone": { 274 900: "fasds", 275 400: "fasdr", 276 normal: "fasdr", 277 300: "fasdl", 278 100: "fasdt" 279 } 280 }; 281var pt = new Map([["classic", { 282 defaultShortPrefixId: "fas", 283 defaultStyleId: "solid", 284 styleIds: ["solid", "regular", "light", "thin", "brands"], 285 futureStyleIds: [], 286 defaultFontWeight: 900 287 }], ["sharp", { 288 defaultShortPrefixId: "fass", 289 defaultStyleId: "solid", 290 styleIds: ["solid", "regular", "light", "thin"], 291 futureStyleIds: [], 292 defaultFontWeight: 900 293 }], ["duotone", { 294 defaultShortPrefixId: "fad", 295 defaultStyleId: "solid", 296 styleIds: ["solid", "regular", "light", "thin"], 297 futureStyleIds: [], 298 defaultFontWeight: 900 299 }], ["sharp-duotone", { 300 defaultShortPrefixId: "fasds", 301 defaultStyleId: "solid", 302 styleIds: ["solid", "regular", "light", "thin"], 303 futureStyleIds: [], 304 defaultFontWeight: 900 305 }]]), 306 xt = { 307 classic: { 308 solid: "fas", 309 regular: "far", 310 light: "fal", 311 thin: "fat", 312 brands: "fab" 313 }, 314 duotone: { 315 solid: "fad", 316 regular: "fadr", 317 light: "fadl", 318 thin: "fadt" 319 }, 320 sharp: { 321 solid: "fass", 322 regular: "fasr", 323 light: "fasl", 324 thin: "fast" 325 }, 326 "sharp-duotone": { 327 solid: "fasds", 328 regular: "fasdr", 329 light: "fasdl", 330 thin: "fasdt" 331 } 332 }; 333var Ft = ["fak", "fa-kit", "fakd", "fa-kit-duotone"], 334 St = { 335 kit: { 336 fak: "kit", 337 "fa-kit": "kit" 338 }, 339 "kit-duotone": { 340 fakd: "kit-duotone", 341 "fa-kit-duotone": "kit-duotone" 342 } 343 }, 344 At = ["kit"]; 345var Ct = { 346 kit: { 347 "fa-kit": "fak" 348 }, 349 "kit-duotone": { 350 "fa-kit-duotone": "fakd" 351 } 352}; 353var Lt = ["fak", "fakd"], 354 Wt = { 355 kit: { 356 fak: "fa-kit" 357 }, 358 "kit-duotone": { 359 fakd: "fa-kit-duotone" 360 } 361 }; 362var Et = { 363 kit: { 364 kit: "fak" 365 }, 366 "kit-duotone": { 367 "kit-duotone": "fakd" 368 } 369 }; 370 371var t$1 = { 372 GROUP: "duotone-group", 373 SWAP_OPACITY: "swap-opacity", 374 PRIMARY: "primary", 375 SECONDARY: "secondary" 376 }, 377 r$1 = ["fa-classic", "fa-duotone", "fa-sharp", "fa-sharp-duotone"]; 378var bt$1 = ["fak", "fa-kit", "fakd", "fa-kit-duotone"]; 379var Yt = { 380 "Font Awesome Kit": { 381 400: "fak", 382 normal: "fak" 383 }, 384 "Font Awesome Kit Duotone": { 385 400: "fakd", 386 normal: "fakd" 387 } 388 }; 389var ua = { 390 classic: { 391 "fa-brands": "fab", 392 "fa-duotone": "fad", 393 "fa-light": "fal", 394 "fa-regular": "far", 395 "fa-solid": "fas", 396 "fa-thin": "fat" 397 }, 398 duotone: { 399 "fa-regular": "fadr", 400 "fa-light": "fadl", 401 "fa-thin": "fadt" 402 }, 403 sharp: { 404 "fa-solid": "fass", 405 "fa-regular": "fasr", 406 "fa-light": "fasl", 407 "fa-thin": "fast" 408 }, 409 "sharp-duotone": { 410 "fa-solid": "fasds", 411 "fa-regular": "fasdr", 412 "fa-light": "fasdl", 413 "fa-thin": "fasdt" 414 } 415 }, 416 I$1 = { 417 classic: ["fas", "far", "fal", "fat", "fad"], 418 duotone: ["fadr", "fadl", "fadt"], 419 sharp: ["fass", "fasr", "fasl", "fast"], 420 "sharp-duotone": ["fasds", "fasdr", "fasdl", "fasdt"] 421 }, 422 ga = { 423 classic: { 424 fab: "fa-brands", 425 fad: "fa-duotone", 426 fal: "fa-light", 427 far: "fa-regular", 428 fas: "fa-solid", 429 fat: "fa-thin" 430 }, 431 duotone: { 432 fadr: "fa-regular", 433 fadl: "fa-light", 434 fadt: "fa-thin" 435 }, 436 sharp: { 437 fass: "fa-solid", 438 fasr: "fa-regular", 439 fasl: "fa-light", 440 fast: "fa-thin" 441 }, 442 "sharp-duotone": { 443 fasds: "fa-solid", 444 fasdr: "fa-regular", 445 fasdl: "fa-light", 446 fasdt: "fa-thin" 447 } 448 }, 449 x = ["fa-solid", "fa-regular", "fa-light", "fa-thin", "fa-duotone", "fa-brands"], 450 Ia = ["fa", "fas", "far", "fal", "fat", "fad", "fadr", "fadl", "fadt", "fab", "fass", "fasr", "fasl", "fast", "fasds", "fasdr", "fasdl", "fasdt", ...r$1, ...x], 451 m$1 = ["solid", "regular", "light", "thin", "duotone", "brands"], 452 c$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 453 F$1 = c$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]), 454 ma = [...Object.keys(I$1), ...m$1, "2xs", "xs", "sm", "lg", "xl", "2xl", "beat", "border", "fade", "beat-fade", "bounce", "flip-both", "flip-horizontal", "flip-vert
454ical", "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", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(c$1.map(a => "".concat(a, "x"))).concat(F$1.map(a => "w-".concat(a))); 455var wa = { 456 "Font Awesome 5 Free": { 457 900: "fas", 458 400: "far" 459 }, 460 "Font Awesome 5 Pro": { 461 900: "fas", 462 400: "far", 463 normal: "far", 464 300: "fal" 465 }, 466 "Font Awesome 5 Brands": { 467 400: "fab", 468 normal: "fab" 469 }, 470 "Font Awesome 5 Duotone": { 471 900: "fad" 472 } 473 }; 474 475const NAMESPACE_IDENTIFIER = '___FONT_AWESOME___'; 476const UNITS_IN_GRID = 16; 477const DEFAULT_CSS_PREFIX = 'fa'; 478const DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa'; 479const DATA_FA_I2SVG = 'data-fa-i2svg'; 480const DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element'; 481const DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending'; 482const DATA_PREFIX = 'data-prefix'; 483const DATA_ICON = 'data-icon'; 484const HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg'; 485const MUTATION_APPROACH_ASYNC = 'async'; 486const TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT']; 487const PRODUCTION = (() => { 488 try { 489 return "production" === 'production'; 490 } catch (e$$1) { 491 return false; 492 } 493})(); 494function familyProxy(obj) { 495 // Defaults to the classic family if family is not available 496 return new Proxy(obj, { 497 get(target, prop) { 498 return prop in target ? target[prop] : target[s]; 499 } 500 }); 501} 502const _PREFIX_TO_STYLE = _objectSpread2({}, S); 503 504// We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, "classic" family does not have any 505// duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding 506// {'fa-duotone': 'duotone'} 507_PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { 508 'fa-duotone': 'duotone' 509}), S[s]), St['kit']), St['kit-duotone']); 510const PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE); 511const _STYLE_TO_PREFIX = _objectSpread2({}, xt); 512 513// We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, "classic" family does not have any 514// duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'} 515_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { 516 duotone: 'fad' 517}), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']); 518const STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX); 519const _PREFIX_TO_LONG_STYLE = _objectSpread2({}, ga); 520_PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']); 521const PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE); 522const _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ua); 523_LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']); 524const LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX); 525const ICON_SELECTION_SYNTAX_PATTERN = p; // eslint-disable-line no-useless-escape 526 527const LAYERS_TEXT_CLASSNAME = 'fa-layers-text'; 528const FONT_FAMILY_PATTERN = g; 529const _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G); 530const FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX); 531const ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask']; 532const DUOTONE_CLASSES = A; 533const RESERVED_CLASSES = [...At, ...ma]; 534 535const initial = WINDOW.FontAwesomeConfig || {}; 536function getAttrConfig(attr) { 537 var element = DOCUMENT.querySelector('script[' + attr + ']'); 538 if (element) { 539 return element.getAttribute(attr); 540 } 541} 542function coerce(val) { 543 // Getting an empty string will occur if the attribute is set on the HTML tag but without a value 544 // We'll assume that this is an indication that it should be toggled to true 545 if (val === '') return true; 546 if (val === 'false') return false; 547 if (val === 'true') return true; 548 return val; 549} 550if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') { 551 const 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']];
552 attrs.forEach(_ref => { 553 let [attr, key] = _ref; 554 const val = coerce(getAttrConfig(attr)); 555 if (val !== undefined && val !== null) { 556 initial[key] = val; 557 } 558 }); 559} 560const _default = { 561 styleDefault: 'solid', 562 familyDefault: s, 563 cssPrefix: DEFAULT_CSS_PREFIX, 564 replacementClass: DEFAULT_REPLACEMENT_CLASS, 565 autoReplaceSvg: true, 566 autoAddCss: true, 567 autoA11y: true, 568 searchPseudoElements: false, 569 observeMutations: true, 570 mutateApproach: 'async', 571 keepOriginalSource: true, 572 measurePerformance: false, 573 showMissingIcons: true 574}; 575 576// familyPrefix is deprecated but we must still support it if present 577if (initial.familyPrefix) { 578 initial.cssPrefix = initial.familyPrefix; 579} 580const _config = _objectSpread2(_objectSpread2({}, _default), initial); 581if (!_config.autoReplaceSvg) _config.observeMutations = false; 582const config = {}; 583Object.keys(_default).forEach(key => { 584 Object.defineProperty(config, key, { 585 enumerable: true, 586 set: function (val) { 587 _config[key] = val; 588 _onChangeCb.forEach(cb => cb(config)); 589 }, 590 get: function () { 591 return _config[key]; 592 } 593 }); 594}); 595 596// familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0 597Object.defineProperty(config, 'familyPrefix', { 598 enumerable: true, 599 set: function (val) { 600 _config.cssPrefix = val; 601 _onChangeCb.forEach(cb => cb(config)); 602 }, 603 get: function () { 604 return _config.cssPrefix; 605 } 606}); 607WINDOW.FontAwesomeConfig = config; 608const _onChangeCb = []; 609function onChange(cb) { 610 _onChangeCb.push(cb); 611 return () => { 612 _onChangeCb.splice(_onChangeCb.indexOf(cb), 1); 613 }; 614} 615 616const d$2 = UNITS_IN_GRID; 617const meaninglessTransform = { 618 size: 16, 619 x: 0, 620 y: 0, 621 rotate: 0, 622 flipX: false, 623 flipY: false 624}; 625function insertCss(css) { 626 if (!css || !IS_DOM) { 627 return; 628 } 629 const style = DOCUMENT.createElement('style'); 630 style.setAttribute('type', 'text/css'); 631 style.innerHTML = css; 632 const headChildren = DOCUMENT.head.childNodes; 633 let beforeChild = null; 634 for (let i = headChildren.length - 1; i > -1; i--) { 635 const child = headChildren[i]; 636 const tagName = (child.tagName || '').toUpperCase(); 637 if (['STYLE', 'LINK'].indexOf(tagName) > -1) { 638 beforeChild = child; 639 } 640 } 641 DOCUMENT.head.insertBefore(style, beforeChild); 642 return css; 643} 644const idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 645function nextUniqueId() { 646 let size = 12; 647 let id = ''; 648 while (size-- > 0) { 649 id += idPool[Math.random() * 62 | 0]; 650 } 651 return id; 652} 653function toArray(obj) { 654 const array = []; 655 for (let i = (obj || []).length >>> 0; i--;) { 656 array[i] = obj[i]; 657 } 658 return array; 659} 660function classArray(node) { 661 if (node.classList) { 662 return toArray(node.classList); 663 } else { 664 return (node.getAttribute('class') || '').split(' ').filter(i => i); 665 } 666} 667function htmlEscape(str) { 668 return "".concat(str).replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>'); 669} 670function joinAttributes(attributes) { 671 return Object.keys(attributes || {}).reduce((acc, attributeName) => { 672 return acc + "".concat(attributeName, "=\"").concat(htmlEscape(attributes[attributeName]), "\" "); 673 }, '').trim(); 674} 675function joinStyles(styles) { 676 return Object.keys(styles || {}).reduce((acc, styleName) => { 677 return acc + "".concat(styleName, ": ").concat(styles[styleName].trim(), ";"); 678 }, ''); 679} 680function transformIsMeaningful(transform) { 681 return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY; 682} 683function transformForSvg(_ref) { 684 let { 685 transform, 686 containerWidth, 687 iconWidth 688 } = _ref; 689 const outer = { 690 transform: "translate(".concat(containerWidth / 2, " 256)") 691 }; 692 const innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") "); 693 const innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") "); 694 const innerRotate = "rotate(".concat(transform.rotate, " 0 0)"); 695 const inner = { 696 transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) 697 }; 698 const path = { 699 transform: "translate(".concat(iconWidth / 2 * -1, " -256)") 700 }; 701 return { 702 outer, 703 inner, 704 path 705 }; 706} 707function transformForCss(_ref2) { 708 let { 709 transform,
vendor: 5,031 bytes, lines 710-727
710 width = UNITS_IN_GRID, 711 height = UNITS_IN_GRID, 712 startCentered = false 713 } = _ref2; 714 let val = ''; 715 if (startCentered && IS_IE) { 716 val += "translate(".concat(transform.x / d$2 - width / 2, "em, ").concat(transform.y / d$2 - height / 2, "em) "); 717 } else if (startCentered) { 718 val += "translate(calc(-50% + ".concat(transform.x / d$2, "em), calc(-50% + ").concat(transform.y / d$2, "em)) "); 719 } else { 720 val += "translate(".concat(transform.x / d$2, "em, ").concat(transform.y / d$2, "em) "); 721 } 722 val += "scale(".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), ") "); 723 val += "rotate(".concat(transform.rotate, "deg) "); 724 return val; 725} 726 727var baseStyles = ":root, :host {\n --fa-font-solid: normal 900 1em/1 \"Font Awesome 6 Free\";\n --fa-font-regular: normal 400 1em/1 \"Font Awesome 6 Free\";\n --fa-font-light: normal 300 1em/1 \"Font Awesome 6 Pro\";\n --fa-font-thin: normal 100 1em/1 \"Font Awesome 6 Pro\";\n --fa-font-duotone: normal 900 1em/1 \"Font Awesome 6 Duotone\";\n --fa-font-duotone-regular: normal 400 1em/1 \"Font Awesome 6 Duotone\";\n --fa-font-duotone-light: normal 300 1em/1 \"Font Awesome 6 Duotone\";\n --fa-font-duotone-thin: normal 100 1em/1 \"Font Awesome 6 Duotone\";\n --fa-font-brands: normal 400 1em/1 \"Font Awesome 6 Brands\";\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-sharp-duotone-solid: normal 900 1em/1 \"Font Awesome 6 Sharp Duotone\";\n --fa-font-sharp-duotone-regular: normal 400 1em/1 \"Font Awesome 6 Sharp Duotone\";\n --fa-font-sharp-duotone-light: normal 300 1em/1 \"Font Awesome 6 Sharp Duotone\";\n --fa-font-sharp-duotone-thin: normal 100 1em/1 \"Font Awesome 6 Sharp Duotone\";\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 transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\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 transform: scale(var(--fa-counter-scale, 0.25));\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 transform: scale(var(--fa-layers-scale, 0.25));\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 transform: scale(var(--fa-layers-scale, 0.25));\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 transform: scale(var(--fa-layers-scale, 0.25));\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 transform: scale(var(--fa-layers-scale, 0.25));\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;
727\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(-1 * var(--fa-li-width, 2em));\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 animation-name: fa-beat;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n animation-name: fa-bounce;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n animation-name: fa-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n animation-name: fa-beat-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n animation-name: fa-flip;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n animation-name: fa-shake;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n animation-name: fa-spin;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 2s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\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 animation-name: fa-spin;\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\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 animation-delay: -1ms;\n animation-duration: 1ms;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n transform: scale(1);\n }\n 45% {\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-bounce {\n 0% {\n transform: scale(1, 1) translateY(0);\n }\n 10% {\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 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 transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-flip {\n 50% {\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-shake {\n 0% {\n transform: rotate(-15deg);\n }\n 4% {\n transform: rotate(15deg);\n }\n 8%, 24% {\n transform: rotate(-18deg);\n }\n 12%, 28% {\n transform: rotate(18deg);\n }\n 16% {\n transform: rotate(-22deg);\n }\n 20% {\n transform: rotate(22deg);\n }\n 32% {\n transform: rotate(-12deg);\n }\n 36% {\n transform: rotate(12deg);\n }\n 40%, 100% {\n transform: rotate(0deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n transform: scale(-1, 1);\n}
727\n\n.fa-flip-vertical {\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n transform: rotate(var(--fa-rotate-angle, 0));\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}"; 728 729function css() { 730 const dcp = DEFAULT_CSS_PREFIX; 731 const drc = DEFAULT_REPLACEMENT_CLASS; 732 const fp = config.cssPrefix; 733 const rc = config.replacementClass; 734 let s = baseStyles; 735 if (fp !== dcp || rc !== drc) { 736 const dPatt = new RegExp("\\.".concat(dcp, "\\-"), 'g'); 737 const customPropPatt = new RegExp("\\--".concat(dcp, "\\-"), 'g'); 738 const rPatt = new RegExp("\\.".concat(drc), 'g'); 739 s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc)); 740 } 741 return s; 742} 743let _cssInserted = false; 744function ensureCss() { 745 if (config.autoAddCss && !_cssInserted) { 746 insertCss(css()); 747 _cssInserted = true; 748 } 749} 750var InjectCSS = { 751 mixout() { 752 return { 753 dom: { 754 css, 755 insertCss: ensureCss 756 } 757 }; 758 }, 759 hooks() { 760 return { 761 beforeDOMElementCreation() { 762 ensureCss(); 763 }, 764 beforeI2svg() { 765 ensureCss(); 766 } 767 }; 768 } 769}; 770 771const w = WINDOW || {}; 772if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {}; 773if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {}; 774if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {}; 775if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = []; 776var namespace = w[NAMESPACE_IDENTIFIER]; 777 778const functions = []; 779const listener = function () { 780 DOCUMENT.removeEventListener('DOMContentLoaded', listener); 781 loaded = 1; 782 functions.map(fn => fn()); 783}; 784let loaded = false; 785if (IS_DOM) { 786 loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState); 787 if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener); 788} 789function domready (fn) { 790 if (!IS_DOM) return; 791 loaded ? setTimeout(fn, 0) : functions.push(fn); 792} 793 794function toHtml(abstractNodes) { 795 const { 796 tag, 797 attributes = {}, 798 children = [] 799 } = abstractNodes; 800 if (typeof abstractNodes === 'string') { 801 return htmlEscape(abstractNodes); 802 } else { 803 return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(''), "</").concat(tag, ">"); 804 } 805} 806 807function iconFromMapping(mapping, prefix, iconName) { 808 if (mapping && mapping[prefix] && mapping[prefix][iconName]) { 809 return { 810 prefix, 811 iconName, 812 icon: mapping[prefix][iconName] 813 }; 814 } 815} 816 817/** 818 * Internal helper to bind a function known to have 4 arguments 819 * to a given context. 820 */ 821var bindInternal4 = function bindInternal4(func, thisContext) { 822 return function (a, b, c, d) { 823 return func.call(thisContext, a, b, c, d); 824 }; 825}; 826 827/** 828 * # Reduce 829 * 830 * A fast object `.reduce()` implementation. 831 * 832 * @param {Object} subject The object to reduce over. 833 * @param {Function} fn The reducer function. 834 * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0]. 835 * @param {Object} thisContext The context for the reducer. 836 * @return {mixed} The final result. 837 */ 838var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) { 839 var keys = Object.keys(subject), 840 length = keys.length, 841 iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn, 842 i, 843 key, 844 result; 845 if (initialValue === undefined) { 846 i = 1;
847 result = subject[keys[0]]; 848 } else { 849 i = 0; 850 result = initialValue; 851 } 852 for (; i < length; i++) { 853 key = keys[i]; 854 result = iterator(result, subject[key], key, subject); 855 } 856 return result; 857}; 858 859/** 860 * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT 861 * 862 * Copyright Mathias Bynens <https://mathiasbynens.be/> 863 864 * Permission is hereby granted, free of charge, to any person obtaining 865 * a copy of this software and associated documentation files (the 866 * "Software"), to deal in the Software without restriction, including 867 * without limitation the rights to use, copy, modify, merge, publish, 868 * distribute, sublicense, and/or sell copies of the Software, and to 869 * permit persons to whom the Software is furnished to do so, subject to 870 * the following conditions: 871 872 * The above copyright notice and this permission notice shall be 873 * included in all copies or substantial portions of the Software. 874 875 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 876 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 877 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 878 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 879 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 880 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 881 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 882 */ 883 884function ucs2decode(string) { 885 const output = []; 886 let counter = 0; 887 const length = string.length; 888 while (counter < length) { 889 const value = string.charCodeAt(counter++); 890 if (value >= 0xD800 && value <= 0xDBFF && counter < length) { 891 const extra = string.charCodeAt(counter++); 892 if ((extra & 0xFC00) == 0xDC00) { 893 // eslint-disable-line eqeqeq 894 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); 895 } else { 896 output.push(value); 897 counter--; 898 } 899 } else { 900 output.push(value); 901 } 902 } 903 return output; 904} 905function toHex(unicode) { 906 const decoded = ucs2decode(unicode); 907 return decoded.length === 1 ? decoded[0].toString(16) : null; 908} 909function codePointAt(string, index) { 910 const size = string.length; 911 let first = string.charCodeAt(index); 912 let second; 913 if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) { 914 second = string.charCodeAt(index + 1); 915 if (second >= 0xDC00 && second <= 0xDFFF) { 916 return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; 917 } 918 } 919 return first; 920} 921 922function normalizeIcons(icons) { 923 return Object.keys(icons).reduce((acc, iconName) => { 924 const icon = icons[iconName]; 925 const expanded = !!icon.icon; 926 if (expanded) { 927 acc[icon.iconName] = icon.icon; 928 } else { 929 acc[iconName] = icon; 930 } 931 return acc; 932 }, {}); 933} 934function defineIcons(prefix, icons) { 935 let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 936 const { 937 skipHooks = false 938 } = params; 939 const normalized = normalizeIcons(icons); 940 if (typeof namespace.hooks.addPack === 'function' && !skipHooks) { 941 namespace.hooks.addPack(prefix, normalizeIcons(icons)); 942 } else { 943 namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized); 944 } 945 946 /** 947 * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction 948 * of new styles we needed to differentiate between them. Prefix `fa` is now an alias 949 * for `fas` so we'll ease the upgrade process for our users by automatically defining 950 * this as well. 951 */ 952 if (prefix === 'fas') { 953 defineIcons('fa', icons); 954 } 955} 956
957const duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d="([^"]+)".*path d="([^"]+)"/, { 958 d1: 1, 959 d2: 2 960}), /*#__PURE__*/_wrapRegExp(/path class="([^"]+)".*d="([^"]+)".*path class="([^"]+)".*d="([^"]+)"/, { 961 cls1: 1, 962 d1: 2, 963 cls2: 3, 964 d2: 4 965}), /*#__PURE__*/_wrapRegExp(/path class="([^"]+)".*d="([^"]+)"/, { 966 cls1: 1, 967 d1: 2 968})]; 969 970const { 971 styles, 972 shims 973} = namespace; 974const FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE); 975const PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce((acc, familyId) => { 976 acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]); 977 return acc; 978}, {}); 979let _defaultUsablePrefix = null; 980let _byUnicode = {}; 981let _byLigature = {}; 982let _byOldName = {}; 983let _byOldUnicode = {}; 984let _byAlias = {}; 985function isReserved(name) { 986 return ~RESERVED_CLASSES.indexOf(name); 987} 988function getIconName(cssPrefix, cls) { 989 const parts = cls.split('-'); 990 const prefix = parts[0]; 991 const iconName = parts.slice(1).join('-'); 992 if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) { 993 return iconName; 994 } else { 995 return null; 996 } 997} 998const build = () => { 999 const lookup = reducer => { 1000 return reduce(styles, (o$$1, style, prefix) => { 1001 o$$1[prefix] = reduce(style, reducer, {}); 1002 return o$$1; 1003 }, {}); 1004 }; 1005 _byUnicode = lookup((acc, icon, iconName) => { 1006 if (icon[3]) { 1007 acc[icon[3]] = iconName; 1008 } 1009 if (icon[2]) { 1010 const aliases = icon[2].filter(a$$1 => { 1011 return typeof a$$1 === 'number'; 1012 }); 1013 aliases.forEach(alias => { 1014 acc[alias.toString(16)] = iconName; 1015 }); 1016 } 1017 return acc; 1018 }); 1019 _byLigature = lookup((acc, icon, iconName) => { 1020 acc[iconName] = iconName; 1021 if (icon[2]) { 1022 const aliases = icon[2].filter(a$$1 => { 1023 return typeof a$$1 === 'string'; 1024 }); 1025 aliases.forEach(alias => { 1026 acc[alias] = iconName; 1027 }); 1028 } 1029 return acc; 1030 }); 1031 _byAlias = lookup((acc, icon, iconName) => { 1032 const aliases = icon[2]; 1033 acc[iconName] = iconName; 1034 aliases.forEach(alias => { 1035 acc[alias] = iconName; 1036 }); 1037 return acc; 1038 }); 1039 1040 // If we have a Kit, we can't determine if regular is available since we 1041 // could be auto-fetching it. We'll have to assume that it is available. 1042 const hasRegular = 'far' in styles || config.autoFetchSvg; 1043 const shimLookups = reduce(shims, (acc, shim) => { 1044 const maybeNameMaybeUnicode = shim[0]; 1045 let prefix = shim[1]; 1046 const iconName = shim[2]; 1047 if (prefix === 'far' && !hasRegular) { 1048 prefix = 'fas'; 1049 } 1050 if (typeof maybeNameMaybeUnicode === 'string') { 1051 acc.names[maybeNameMaybeUnicode] = { 1052 prefix, 1053 iconName 1054 }; 1055 } 1056 if (typeof maybeNameMaybeUnicode === 'number') { 1057 acc.unicodes[maybeNameMaybeUnicode.toString(16)] = { 1058 prefix, 1059 iconName 1060 }; 1061 } 1062 return acc; 1063 }, { 1064 names: {}, 1065 unicodes: {} 1066 }); 1067 _byOldName = shimLookups.names; 1068 _byOldUnicode = shimLookups.unicodes; 1069 _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, { 1070 family: config.familyDefault 1071 }); 1072}; 1073onChange(c$$1 => { 1074 _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, { 1075 family: config.familyDefault 1076 }); 1077}); 1078build(); 1079function byUnicode(prefix, unicode) { 1080 return (_byUnicode[prefix] || {})[unicode]; 1081} 1082function byLigature(prefix, ligature) { 1083 return (_byLigature[prefix] || {})[ligature]; 1084} 1085function byAlias(prefix, alias) { 1086 return (_byAlias[prefix] || {})[alias]; 1087} 1088function byOldName(name) { 1089 return _byOldName[name] || { 1090 prefix: null, 1091 iconName: null 1092 }; 1093} 1094function byOldUnicode(unicode) { 1095 const oldUnicode = _byOldUnicode[unicode]; 1096 const newUnicode = byUnicode('fas', unicode); 1097 return oldUnicode || (newUnicode ? { 1098 prefix: 'fas', 1099 iconName: newUnicode 1100 } : null) || { 1101 prefix: null, 1102 iconName: null 1103 }; 1104} 1105function getDefaultUsablePrefix() { 1106 return _defaultUsablePrefix; 1107} 1108const emptyCanonicalIcon = () => { 1109 return { 1110 prefix: null, 1111 iconName: null, 1112 rest: [] 1113 }; 1114}; 1115function getFamilyId(values) { 1116 let family = s; 1117 const famProps = FAMILY_NAMES.reduce((acc, familyId) => { 1118 acc[familyId] = "".concat(config.cssPrefix, "-").concat(familyId); 1119 return acc; 1120 }, {});
1121 L.forEach(familyId => { 1122 if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) { 1123 family = familyId; 1124 } 1125 }); 1126 return family; 1127} 1128function getCanonicalPrefix(styleOrPrefix) { 1129 let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 1130 const { 1131 family = s 1132 } = params; 1133 const style = PREFIX_TO_STYLE[family][styleOrPrefix]; 1134 1135 // handles the exception of passing in only a family of 'duotone' with no style 1136 if (family === t && !styleOrPrefix) { 1137 return 'fad'; 1138 } 1139 const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style]; 1140 const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null; 1141 const result = prefix || defined || null; 1142 return result; 1143} 1144function moveNonFaClassesToRest(classNames) { 1145 let rest = []; 1146 let iconName = null; 1147 classNames.forEach(cls => { 1148 const result = getIconName(config.cssPrefix, cls); 1149 if (result) { 1150 iconName = result; 1151 } else if (cls) { 1152 rest.push(cls); 1153 } 1154 }); 1155 return { 1156 iconName, 1157 rest 1158 }; 1159} 1160function sortedUniqueValues(arr) { 1161 return arr.sort().filter((value, index, arr) => { 1162 return arr.indexOf(value) === index; 1163 }); 1164} 1165function getCanonicalIcon(values) { 1166 let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 1167 const { 1168 skipLookups = false 1169 } = params; 1170 let givenPrefix = null; 1171 const faCombinedClasses = Ia.concat(bt$1); 1172 const faStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => faCombinedClasses.includes(cls))); 1173 const nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => !Ia.includes(cls))); 1174 const faStyles = faStyleOrFamilyClasses.filter(cls => { 1175 givenPrefix = cls; 1176 return !P.includes(cls); 1177 }); 1178 const [styleFromValues = null] = faStyles; 1179 const family = getFamilyId(faStyleOrFamilyClasses); 1180 const canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, { 1181 prefix: getCanonicalPrefix(styleFromValues, { 1182 family 1183 }) 1184 }); 1185 return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({ 1186 values, 1187 family, 1188 styles, 1189 config, 1190 canonical, 1191 givenPrefix 1192 })), applyShimAndAlias(skipLookups, givenPrefix, canonical)); 1193} 1194function applyShimAndAlias(skipLookups, givenPrefix, canonical) { 1195 let { 1196 prefix, 1197 iconName 1198 } = canonical; 1199 if (skipLookups || !prefix || !iconName) { 1200 return { 1201 prefix, 1202 iconName 1203 }; 1204 } 1205 const shim = givenPrefix === 'fa' ? byOldName(iconName) : {}; 1206 const aliasIconName = byAlias(prefix, iconName); 1207 iconName = shim.iconName || aliasIconName || iconName; 1208 prefix = shim.prefix || prefix; 1209 if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) { 1210 // Allow a fallback from the regular style to solid if regular is not available 1211 // but only if we aren't auto-fetching SVGs 1212 prefix = 'fas'; 1213 } 1214 return { 1215 prefix, 1216 iconName 1217 }; 1218} 1219const newCanonicalFamilies = L.filter(familyId => { 1220 return familyId !== s || familyId !== t; 1221}); 1222const newCanonicalStyles = Object.keys(ga).filter(key => key !== s).map(key => Object.keys(ga[key])).flat(); 1223function getDefaultCanonicalPrefix(prefixOptions) { 1224 const { 1225 values, 1226 family, 1227 canonical, 1228 givenPrefix = '', 1229 styles = {}, 1230 config: config$$1 = {} 1231 } = prefixOptions; 1232 const isDuotoneFamily = family === t; 1233 const valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad'); 1234 const defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone'; 1235 const canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone'; 1236 if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) { 1237 canonical.prefix = 'fad'; 1238 } 1239 if (values.includes('fa-brands') || values.includes('fab')) { 1240 canonical.prefix = 'fab'; 1241 } 1242 if (!canonical.prefix && newCanonicalFamilies.includes(family)) { 1243 const validPrefix = Object.keys(styles).find(key => newCanonicalStyles.includes(key)); 1244 if (validPrefix || config$$1.autoFetchSvg) { 1245 const defaultPrefix = pt.get(family).defaultShortPrefixId; 1246 canonical.prefix = defaultPrefix; 1247 canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName; 1248 } 1249 } 1250 if (canonical.prefix === 'fa' || givenPrefix === 'fa') { 1251 // The fa prefix is not canonical. So if it has made it through until this point 1252 // we will shift it to the correct prefix. 1253 canonical.prefix = getDefaultUsablePrefix() || 'fas'; 1254 } 1255 return canonical; 1256} 1257 1258class Library { 1259 constructor() { 1260 this.definitions = {}; 1261 } 1262 add() { 1263 for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {
1264 definitions[_key] = arguments[_key]; 1265 } 1266 const additions = definitions.reduce(this._pullDefinitions, {}); 1267 Object.keys(additions).forEach(key => { 1268 this.definitions[key] = _objectSpread2(_objectSpread2({}, this.definitions[key] || {}), additions[key]); 1269 defineIcons(key, additions[key]); 1270 1271 // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change 1272 const longPrefix = PREFIX_TO_LONG_STYLE[s][key]; 1273 if (longPrefix) defineIcons(longPrefix, additions[key]); 1274 build(); 1275 }); 1276 } 1277 reset() { 1278 this.definitions = {}; 1279 } 1280 _pullDefinitions(additions, definition) { 1281 const normalized = definition.prefix && definition.iconName && definition.icon ? { 1282 0: definition 1283 } : definition; 1284 Object.keys(normalized).map(key => { 1285 const { 1286 prefix, 1287 iconName, 1288 icon 1289 } = normalized[key]; 1290 const aliases = icon[2]; 1291 if (!additions[prefix]) additions[prefix] = {}; 1292 if (aliases.length > 0) { 1293 aliases.forEach(alias => { 1294 if (typeof alias === 'string') { 1295 additions[prefix][alias] = icon; 1296 } 1297 }); 1298 } 1299 additions[prefix][iconName] = icon; 1300 }); 1301 return additions; 1302 } 1303} 1304 1305let _plugins = []; 1306let _hooks = {}; 1307const providers = {}; 1308const defaultProviderKeys = Object.keys(providers); 1309function registerPlugins(nextPlugins, _ref) { 1310 let { 1311 mixoutsTo: obj 1312 } = _ref; 1313 _plugins = nextPlugins; 1314 _hooks = {}; 1315 Object.keys(providers).forEach(k => { 1316 if (defaultProviderKeys.indexOf(k) === -1) { 1317 delete providers[k]; 1318 } 1319 }); 1320 _plugins.forEach(plugin => { 1321 const mixout = plugin.mixout ? plugin.mixout() : {}; 1322 Object.keys(mixout).forEach(tk => { 1323 if (typeof mixout[tk] === 'function') { 1324 obj[tk] = mixout[tk]; 1325 } 1326 if (typeof mixout[tk] === 'object') { 1327 Object.keys(mixout[tk]).forEach(sk => { 1328 if (!obj[tk]) { 1329 obj[tk] = {}; 1330 } 1331 obj[tk][sk] = mixout[tk][sk]; 1332 }); 1333 } 1334 }); 1335 if (plugin.hooks) { 1336 const hooks = plugin.hooks(); 1337 Object.keys(hooks).forEach(hook => { 1338 if (!_hooks[hook]) { 1339 _hooks[hook] = []; 1340 } 1341 _hooks[hook].push(hooks[hook]); 1342 }); 1343 } 1344 if (plugin.provides) { 1345 plugin.provides(providers); 1346 } 1347 }); 1348 return obj; 1349} 1350function chainHooks(hook, accumulator) { 1351 for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { 1352 args[_key - 2] = arguments[_key]; 1353 } 1354 const hookFns = _hooks[hook] || []; 1355 hookFns.forEach(hookFn => { 1356 accumulator = hookFn.apply(null, [accumulator, ...args]); // eslint-disable-line no-useless-call 1357 }); 1358 return accumulator; 1359} 1360function callHooks(hook) { 1361 for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { 1362 args[_key2 - 1] = arguments[_key2]; 1363 } 1364 const hookFns = _hooks[hook] || []; 1365 hookFns.forEach(hookFn => { 1366 hookFn.apply(null, args); 1367 }); 1368 return undefined; 1369} 1370function callProvided() { 1371 const hook = arguments[0]; 1372 const args = Array.prototype.slice.call(arguments, 1); 1373 return providers[hook] ? providers[hook].apply(null, args) : undefined; 1374} 1375 1376function findIconDefinition(iconLookup) { 1377 if (iconLookup.prefix === 'fa') { 1378 iconLookup.prefix = 'fas'; 1379 } 1380 let { 1381 iconName 1382 } = iconLookup; 1383 const prefix = iconLookup.prefix || getDefaultUsablePrefix(); 1384 if (!iconName) return; 1385 iconName = byAlias(prefix, iconName) || iconName; 1386 return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName); 1387} 1388const library = new Library(); 1389const noAuto = () => { 1390 config.autoReplaceSvg = false; 1391 config.observeMutations = false; 1392 callHooks('noAuto'); 1393}; 1394const dom = { 1395 i2svg: function () { 1396 let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 1397 if (IS_DOM) { 1398 callHooks('beforeI2svg', params); 1399 callProvided('pseudoElements2svg', params); 1400 return callProvided('i2svg', params); 1401 } else { 1402 return Promise.reject(new Error('Operation requires a DOM of some kind.')); 1403 } 1404 }, 1405 watch: function () { 1406 let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 1407 const { 1408 autoReplaceSvgRoot 1409 } = params; 1410 if (config.autoReplaceSvg === false) { 1411 config.autoReplaceSvg = true; 1412 } 1413 config.observeMutations = true; 1414 domready(() => { 1415 autoReplace({ 1416 autoReplaceSvgRoot 1417 }); 1418 callHooks('watch', params); 1419 }); 1420 } 1421}; 1422const parse = { 1423 icon: icon => { 1424 if (icon === null) { 1425 return null; 1426 } 1427 if (typeof icon === 'object' && icon.prefix && icon.iconName) { 1428 return { 1429 prefix: icon.prefix, 1430 iconName: byAlias(icon.prefix, icon.iconName) || icon.iconName 1431 }; 1432 } 1433 if (Array.isArray(icon) && icon.length === 2) { 1434 const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1]; 1435 const prefix = getCanonicalPrefix(icon[0]); 1436 return { 1437 prefix, 1438 iconName: byAlias(prefix, iconName) || iconName 1439 }; 1440 } 1441 if (typeof icon === 'string' && (icon.indexOf("".concat(config.cssPrefix, "-")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) { 1442 const canonicalIcon = getCanonicalIcon(icon.split(' '), { 1443 skipLookups: true 1444 }); 1445 return { 1446 prefix: canonicalIcon.prefix || getDefaultUsablePrefix(), 1447 iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName 1448 }; 1449 } 1450 if (typeof icon === 'string') { 1451 const prefix = getDefaultUsablePrefix(); 1452 return { 1453 prefix, 1454 iconName: byAlias(prefix, icon) || icon 1455 }; 1456 } 1457 } 1458}; 1459const api = { 1460 noAuto,
1461 config, 1462 dom, 1463 parse, 1464 library, 1465 findIconDefinition, 1466 toHtml 1467}; 1468const autoReplace = function () { 1469 let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 1470 const { 1471 autoReplaceSvgRoot = DOCUMENT 1472 } = params; 1473 if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ 1474 node: autoReplaceSvgRoot 1475 }); 1476}; 1477 1478function domVariants(val, abstractCreator) { 1479 Object.defineProperty(val, 'abstract', { 1480 get: abstractCreator 1481 }); 1482 Object.defineProperty(val, 'html', { 1483 get: function () { 1484 return val.abstract.map(a => toHtml(a)); 1485 } 1486 }); 1487 Object.defineProperty(val, 'node', { 1488 get: function () { 1489 if (!IS_DOM) return; 1490 const container = DOCUMENT.createElement('div'); 1491 container.innerHTML = val.html; 1492 return container.children; 1493 } 1494 }); 1495 return val; 1496} 1497 1498function asIcon (_ref) { 1499 let { 1500 children, 1501 main, 1502 mask, 1503 attributes, 1504 styles, 1505 transform 1506 } = _ref; 1507 if (transformIsMeaningful(transform) && main.found && !mask.found) { 1508 const { 1509 width, 1510 height 1511 } = main; 1512 const offset = { 1513 x: width / height / 2, 1514 y: 0.5 1515 }; 1516 attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, { 1517 'transform-origin': "".concat(offset.x + transform.x / 16, "em ").concat(offset.y + transform.y / 16, "em") 1518 })); 1519 } 1520 return [{ 1521 tag: 'svg', 1522 attributes, 1523 children 1524 }]; 1525} 1526 1527function asSymbol (_ref) { 1528 let { 1529 prefix, 1530 iconName, 1531 children, 1532 attributes, 1533 symbol 1534 } = _ref; 1535 const id = symbol === true ? "".concat(prefix, "-").concat(config.cssPrefix, "-").concat(iconName) : symbol; 1536 return [{ 1537 tag: 'svg', 1538 attributes: { 1539 style: 'display: none;' 1540 }, 1541 children: [{ 1542 tag: 'symbol', 1543 attributes: _objectSpread2(_objectSpread2({}, attributes), {}, { 1544 id 1545 }), 1546 children 1547 }] 1548 }]; 1549} 1550 1551function makeInlineSvgAbstract(params) { 1552 const { 1553 icons: { 1554 main, 1555 mask 1556 }, 1557 prefix, 1558 iconName, 1559 transform, 1560 symbol, 1561 title, 1562 maskId, 1563 titleId, 1564 extra, 1565 watchable = false 1566 } = params; 1567 const { 1568 width, 1569 height 1570 } = mask.found ? mask : main; 1571 const isUploadedIcon = Lt.includes(prefix); 1572 const attrClass = [config.replacementClass, iconName ? "".concat(config.cssPrefix, "-").concat(iconName) : ''].filter(c$$1 => extra.classes.indexOf(c$$1) === -1).filter(c$$1 => c$$1 !== '' || !!c$$1).concat(extra.classes).join(' '); 1573 let content = { 1574 children: [], 1575 attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, { 1576 'data-prefix': prefix, 1577 'data-icon': iconName, 1578 'class': attrClass, 1579 'role': extra.attributes.role || 'img', 1580 'xmlns': 'http://www.w3.org/2000/svg', 1581 'viewBox': "0 0 ".concat(width, " ").concat(height) 1582 }) 1583 }; 1584 const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? { 1585 width: "".concat(width / height * 16 * 0.0625, "em") 1586 } : {}; 1587 if (watchable) { 1588 content.attributes[DATA_FA_I2SVG] = ''; 1589 } 1590 if (title) { 1591 content.children.push({ 1592 tag: 'title', 1593 attributes: { 1594 id: content.attributes['aria-labelledby'] || "title-".concat(titleId || nextUniqueId()) 1595 }, 1596 children: [title] 1597 }); 1598 delete content.attributes.title; 1599 } 1600 const args = _objectSpread2(_objectSpread2({}, content), {}, { 1601 prefix, 1602 iconName, 1603 main, 1604 mask, 1605 maskId, 1606 transform, 1607 symbol, 1608 styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles) 1609 }); 1610 const { 1611 children, 1612 attributes 1613 } = mask.found && main.found ? callProvided('generateAbstractMask', args
1613) || { 1614 children: [], 1615 attributes: {} 1616 } : callProvided('generateAbstractIcon', args) || { 1617 children: [], 1618 attributes: {} 1619 }; 1620 args.children = children; 1621 args.attributes = attributes; 1622 if (symbol) { 1623 return asSymbol(args); 1624 } else { 1625 return asIcon(args); 1626 } 1627} 1628function makeLayersTextAbstract(params) { 1629 const { 1630 content, 1631 width, 1632 height, 1633 transform, 1634 title, 1635 extra, 1636 watchable = false 1637 } = params; 1638 const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? { 1639 'title': title 1640 } : {}), {}, { 1641 'class': extra.classes.join(' ') 1642 }); 1643 if (watchable) { 1644 attributes[DATA_FA_I2SVG] = ''; 1645 } 1646 const styles = _objectSpread2({}, extra.styles); 1647 if (transformIsMeaningful(transform)) { 1648 styles['transform'] = transformForCss({ 1649 transform, 1650 startCentered: true, 1651 width, 1652 height 1653 }); 1654 styles['-webkit-transform'] = styles['transform']; 1655 } 1656 const styleString = joinStyles(styles); 1657 if (styleString.length > 0) { 1658 attributes['style'] = styleString; 1659 } 1660 const val = []; 1661 val.push({ 1662 tag: 'span', 1663 attributes, 1664 children: [content] 1665 }); 1666 if (title) { 1667 val.push({ 1668 tag: 'span', 1669 attributes: { 1670 class: 'sr-only' 1671 }, 1672 children: [title] 1673 }); 1674 } 1675 return val; 1676} 1677function makeLayersCounterAbstract(params) { 1678 const { 1679 content, 1680 title, 1681 extra 1682 } = params; 1683 const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? { 1684 'title': title 1685 } : {}), {}, { 1686 'class': extra.classes.join(' ') 1687 }); 1688 const styleString = joinStyles(extra.styles); 1689 if (styleString.length > 0) { 1690 attributes['style'] = styleString; 1691 } 1692 const val = []; 1693 val.push({ 1694 tag: 'span', 1695 attributes, 1696 children: [content] 1697 }); 1698 if (title) { 1699 val.push({ 1700 tag: 'span', 1701 attributes: { 1702 class: 'sr-only' 1703 }, 1704 children: [title] 1705 }); 1706 } 1707 return val; 1708} 1709 1710const { 1711 styles: styles$1 1712} = namespace; 1713function asFoundIcon(icon) { 1714 const width = icon[0]; 1715 const height = icon[1]; 1716 const [vectorData] = icon.slice(4); 1717 let element = null; 1718 if (Array.isArray(vectorData)) { 1719 element = { 1720 tag: 'g', 1721 attributes: { 1722 class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.GROUP) 1723 }, 1724 children: [{ 1725 tag: 'path', 1726 attributes: { 1727 class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY), 1728 fill: 'currentColor', 1729 d: vectorData[0] 1730 } 1731 }, { 1732 tag: 'path', 1733 attributes: { 1734 class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY), 1735 fill: 'currentColor', 1736 d: vectorData[1] 1737 } 1738 }] 1739 }; 1740 } else { 1741 element = { 1742 tag: 'path', 1743 attributes: { 1744 fill: 'currentColor', 1745 d: vectorData 1746 } 1747 }; 1748 } 1749 return { 1750 found: true, 1751 width, 1752 height, 1753 icon: element 1754 }; 1755} 1756const missingIconResolutionMixin = { 1757 found: false, 1758 width: 512, 1759 height: 512 1760}; 1761function maybeNotifyMissing(iconName, prefix) { 1762 if (!PRODUCTION && !config.showMissingIcons && iconName) { 1763 console.error("Icon with name \"".concat(iconName, "\" and prefix \"").concat(prefix, "\" is missing.")); 1764 } 1765} 1766function findIcon(iconName, prefix) { 1767 let givenPrefix = prefix; 1768 if (prefix === 'fa' && config.styleDefault !== null) { 1769 prefix = getDefaultUsablePrefix(); 1770 } 1771 return new Promise((resolve, reject) => { 1772 if (givenPrefix === 'fa') { 1773 const shim = byOldName(iconName) || {}; 1774 iconName = shim.iconName || iconName; 1775 prefix = shim.prefix || prefix; 1776 } 1777 if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) { 1778 const icon = styles$1[prefix][iconName]; 1779 return resolve(asFoundIcon(icon)); 1780 } 1781 maybeNotifyMissing(iconName, prefix); 1782 resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, { 1783 icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {} 1784 })); 1785 }); 1786} 1787 1788const noop$1 = () => {}; 1789const p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { 1790 mark: noop$1, 1791 measure: noop$1 1792}; 1793const preamble = "FA \"6.7.2\""; 1794const begin = name => { 1795 p$2.mark("".concat(preamble, " ").concat(name, " begins")); 1796 return () => end(name); 1797};
1798const end = name => { 1799 p$2.mark("".concat(preamble, " ").concat(name, " ends")); 1800 p$2.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends")); 1801}; 1802var perf = { 1803 begin, 1804 end 1805}; 1806 1807const noop$2 = () => {}; 1808function isWatched(node) { 1809 const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null; 1810 return typeof i2svg === 'string'; 1811} 1812function hasPrefixAndIcon(node) { 1813 const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null; 1814 const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null; 1815 return prefix && icon; 1816} 1817function hasBeenReplaced(node) { 1818 return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass); 1819} 1820function getMutator() { 1821 if (config.autoReplaceSvg === true) { 1822 return mutators.replace; 1823 } 1824 const mutator = mutators[config.autoReplaceSvg]; 1825 return mutator || mutators.replace; 1826} 1827function createElementNS(tag) { 1828 return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag); 1829} 1830function createElement(tag) { 1831 return DOCUMENT.createElement(tag); 1832} 1833function convertSVG(abstractObj) { 1834 let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 1835 const { 1836 ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement 1837 } = params; 1838 if (typeof abstractObj === 'string') { 1839 return DOCUMENT.createTextNode(abstractObj); 1840 } 1841 const tag = ceFn(abstractObj.tag); 1842 Object.keys(abstractObj.attributes || []).forEach(function (key) { 1843 tag.setAttribute(key, abstractObj.attributes[key]); 1844 }); 1845 const children = abstractObj.children || []; 1846 children.forEach(function (child) { 1847 tag.appendChild(convertSVG(child, { 1848 ceFn 1849 })); 1850 }); 1851 return tag; 1852} 1853function nodeAsComment(node) { 1854 let comment = " ".concat(node.outerHTML, " "); 1855 /* BEGIN.ATTRIBUTION */ 1856 comment = "".concat(comment, "Font Awesome fontawesome.com "); 1857 /* END.ATTRIBUTION */ 1858 return comment; 1859} 1860const mutators = { 1861 replace: function (mutation) { 1862 const node = mutation[0]; 1863 if (node.parentNode) { 1864 mutation[1].forEach(abstract => { 1865 node.parentNode.insertBefore(convertSVG(abstract), node); 1866 }); 1867 if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) { 1868 let comment = DOCUMENT.createComment(nodeAsComment(node)); 1869 node.parentNode.replaceChild(comment, node); 1870 } else { 1871 node.remove(); 1872 } 1873 } 1874 }, 1875 nest: function (mutation) { 1876 const node = mutation[0]; 1877 const abstract = mutation[1]; 1878 1879 // If we already have a replaced node we do not want to continue nesting within it. 1880 // Short-circuit to the standard replacement 1881 if (~classArray(node).indexOf(config.replacementClass)) { 1882 return mutators.replace(mutation); 1883 } 1884 const forSvg = new RegExp("".concat(config.cssPrefix, "-.*")); 1885 delete abstract[0].attributes.id; 1886 if (abstract[0].attributes.class) { 1887 const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => { 1888 if (cls === config.replacementClass || cls.match(forSvg)) { 1889 acc.toSvg.push(cls); 1890 } else { 1891 acc.toNode.push(cls); 1892 } 1893 return acc; 1894 }, { 1895 toNode: [], 1896 toSvg: [] 1897 }); 1898 abstract[0].attributes.class = splitClasses.toSvg.join(' '); 1899 if (splitClasses.toNode.length === 0) { 1900 node.removeAttribute('class'); 1901 } else { 1902 node.setAttribute('class', splitClasses.toNode.join(' ')); 1903 } 1904 } 1905 const newInnerHTML = abstract.map(a => toHtml(a)).join('\n'); 1906 node.setAttribute(DATA_FA_I2SVG, ''); 1907 node.innerHTML = newInnerHTML; 1908 } 1909}; 1910function performOperationSync(op) { 1911 op(); 1912} 1913function perform(mutations, callback) { 1914 const callbackFunction = typeof callback === 'function' ? callback : noop$2; 1915 if (mutations.length === 0) { 1916 callbackFunction(); 1917 } else { 1918 let frame = performOperationSync; 1919 if (config.mutateApproach === MUTATION_APPROACH_ASYNC) { 1920 frame = WINDOW.requestAnimationFrame || performOperationSync; 1921 } 1922 frame(() => { 1923 const mutator = getMutator(); 1924 const mark = perf.begin('mutate'); 1925 mutations.map(mutator); 1926 mark(); 1927 callbackFunction(); 1928 }); 1929 } 1930} 1931let disabled = false;
1932function disableObservation() { 1933 disabled = true; 1934} 1935function enableObservation() { 1936 disabled = false; 1937} 1938let mo = null; 1939function observe(options) { 1940 if (!MUTATION_OBSERVER) { 1941 return; 1942 } 1943 if (!config.observeMutations) { 1944 return; 1945 } 1946 const { 1947 treeCallback = noop$2, 1948 nodeCallback = noop$2, 1949 pseudoElementsCallback = noop$2, 1950 observeMutationsRoot = DOCUMENT 1951 } = options; 1952 mo = new MUTATION_OBSERVER(objects => { 1953 if (disabled) return; 1954 const defaultPrefix = getDefaultUsablePrefix(); 1955 toArray(objects).forEach(mutationRecord => { 1956 if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) { 1957 if (config.searchPseudoElements) { 1958 pseudoElementsCallback(mutationRecord.target); 1959 } 1960 treeCallback(mutationRecord.target); 1961 } 1962 if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) { 1963 pseudoElementsCallback(mutationRecord.target.parentNode); 1964 } 1965 if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) { 1966 if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) { 1967 const { 1968 prefix, 1969 iconName 1970 } = getCanonicalIcon(classArray(mutationRecord.target)); 1971 mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix); 1972 if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName); 1973 } else if (hasBeenReplaced(mutationRecord.target)) { 1974 nodeCallback(mutationRecord.target); 1975 } 1976 } 1977 }); 1978 }); 1979 if (!IS_DOM) return; 1980 mo.observe(observeMutationsRoot, { 1981 childList: true, 1982 attributes: true, 1983 characterData: true, 1984 subtree: true 1985 }); 1986} 1987function disconnect() { 1988 if (!mo) return; 1989 mo.disconnect(); 1990} 1991 1992function styleParser (node) { 1993 const style = node.getAttribute('style'); 1994 let val = []; 1995 if (style) { 1996 val = style.split(';').reduce((acc, style) => { 1997 const styles = style.split(':'); 1998 const prop = styles[0]; 1999 const value = styles.slice(1); 2000 if (prop && value.length > 0) { 2001 acc[prop] = value.join(':').trim(); 2002 } 2003 return acc; 2004 }, {}); 2005 } 2006 return val; 2007} 2008 2009function classParser (node) { 2010 const existingPrefix = node.getAttribute('data-prefix'); 2011 const existingIconName = node.getAttribute('data-icon'); 2012 const innerText = node.innerText !== undefined ? node.innerText.trim() : ''; 2013 let val = getCanonicalIcon(classArray(node)); 2014 if (!val.prefix) { 2015 val.prefix = getDefaultUsablePrefix(); 2016 } 2017 if (existingPrefix && existingIconName) { 2018 val.prefix = existingPrefix; 2019 val.iconName = existingIconName; 2020 } 2021 if (val.iconName && val.prefix) { 2022 return val; 2023 } 2024 if (val.prefix && innerText.length > 0) { 2025 val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText)); 2026 } 2027 if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) { 2028 val.iconName = node.firstChild.data; 2029 } 2030 return val; 2031} 2032 2033function attributesParser (node) { 2034 const extraAttributes = toArray(node.attributes).reduce((acc, attr) => { 2035 if (acc.name !== 'class' && acc.name !== 'style') { 2036 acc[attr.name] = attr.value; 2037 } 2038 return acc; 2039 }, {}); 2040 const title = node.getAttribute('title'); 2041 const titleId = node.getAttribute('data-fa-title-id'); 2042 if (config.autoA11y) { 2043 if (title) { 2044 extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); 2045 } else { 2046 extraAttributes['aria-hidden'] = 'true'; 2047 extraAttributes['focusable'] = 'false'; 2048 } 2049 } 2050 return extraAttributes; 2051} 2052 2053function blankMeta() { 2054 return { 2055 iconName: null, 2056 title: null, 2057 titleId: null, 2058 prefix: null, 2059 transform: meaninglessTransform, 2060 symbol: false, 2061 mask: { 2062 iconName: null, 2063 prefix: null, 2064 rest: [] 2065 }, 2066 maskId: null, 2067 extra: { 2068 classes: [], 2069 styles: {}, 2070 attributes: {} 2071 } 2072 }; 2073} 2074function parseMeta(node) { 2075 let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 2076 styleParser: true 2077 }; 2078 const { 2079 iconName, 2080 prefix,
2081 rest: extraClasses 2082 } = classParser(node); 2083 const extraAttributes = attributesParser(node); 2084 const pluginMeta = chainHooks('parseNodeAttributes', {}, node); 2085 let extraStyles = parser.styleParser ? styleParser(node) : []; 2086 return _objectSpread2({ 2087 iconName, 2088 title: node.getAttribute('title'), 2089 titleId: node.getAttribute('data-fa-title-id'), 2090 prefix, 2091 transform: meaninglessTransform, 2092 mask: { 2093 iconName: null, 2094 prefix: null, 2095 rest: [] 2096 }, 2097 maskId: null, 2098 symbol: false, 2099 extra: { 2100 classes: extraClasses, 2101 styles: extraStyles, 2102 attributes: extraAttributes 2103 } 2104 }, pluginMeta); 2105} 2106 2107const { 2108 styles: styles$2 2109} = namespace; 2110function generateMutation(node) { 2111 const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, { 2112 styleParser: false 2113 }) : parseMeta(node); 2114 if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) { 2115 return callProvided('generateLayersText', node, nodeMeta); 2116 } else { 2117 return callProvided('generateSvgReplacementMutation', node, nodeMeta); 2118 } 2119} 2120function getKnownPrefixes() { 2121 return [...Ft, ...Ia]; 2122} 2123function onTree(root) { 2124 let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; 2125 if (!IS_DOM) return Promise.resolve(); 2126 const htmlClassList = DOCUMENT.documentElement.classList; 2127 const hclAdd = suffix => htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); 2128 const hclRemove = suffix => htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); 2129 const prefixes = config.autoFetchSvg ? getKnownPrefixes() : P.concat(Object.keys(styles$2)); 2130 if (!prefixes.includes('fa')) { 2131 prefixes.push('fa'); 2132 } 2133 const prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes.map(p$$1 => ".".concat(p$$1, ":not([").concat(DATA_FA_I2SVG, "])"))).join(', '); 2134 if (prefixesDomQuery.length === 0) { 2135 return Promise.resolve(); 2136 } 2137 let candidates = []; 2138 try { 2139 candidates = toArray(root.querySelectorAll(prefixesDomQuery)); 2140 } catch (e$$1) { 2141 // noop 2142 } 2143 if (candidates.length > 0) { 2144 hclAdd('pending'); 2145 hclRemove('complete'); 2146 } else { 2147 return Promise.resolve(); 2148 } 2149 const mark = perf.begin('onTree'); 2150 const mutations = candidates.reduce((acc, node) => { 2151 try { 2152 const mutation = generateMutation(node); 2153 if (mutation) { 2154 acc.push(mutation); 2155 } 2156 } catch (e$$1) { 2157 if (!PRODUCTION) { 2158 if (e$$1.name === 'MissingIcon') { 2159 console.error(e$$1); 2160 } 2161 } 2162 } 2163 return acc; 2164 }, []); 2165 return new Promise((resolve, reject) => { 2166 Promise.all(mutations).then(resolvedMutations => { 2167 perform(resolvedMutations, () => { 2168 hclAdd('active'); 2169 hclAdd('complete'); 2170 hclRemove('pending'); 2171 if (typeof callback === 'function') callback(); 2172 mark(); 2173 resolve(); 2174 }); 2175 }).catch(e$$1 => { 2176 mark(); 2177 reject(e$$1); 2178 }); 2179 }); 2180} 2181function onNode(node) { 2182 let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; 2183 generateMutation(node).then(mutation => { 2184 if (mutation) { 2185 perform([mutation], callback); 2186 } 2187 }); 2188} 2189function resolveIcons(next) { 2190 return function (maybeIconDefinition) { 2191 let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 2192 const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {}); 2193 let { 2194 mask 2195 } = params; 2196 if (mask) { 2197 mask = (mask || {}).icon ? mask : findIconDefinition(mask || {}); 2198 } 2199 return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, { 2200 mask 2201 })); 2202 }; 2203} 2204const render = function (iconDefinition) { 2205 let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 2206 const { 2207 transform = meaninglessTransform, 2208 symbol = false, 2209 mask = null, 2210 maskId = null, 2211 title = null, 2212 titleId = null, 2213 classes = [], 2214 attributes = {}, 2215 styles = {} 2216 } = params; 2217 if (!iconDefinition) return; 2218 const { 2219 prefix, 2220 iconName, 2221 icon 2222 } = iconDefinition;
2223 return domVariants(_objectSpread2({ 2224 type: 'icon' 2225 }, iconDefinition), () => { 2226 callHooks('beforeDOMElementCreation', { 2227 iconDefinition, 2228 params 2229 }); 2230 if (config.autoA11y) { 2231 if (title) { 2232 attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); 2233 } else { 2234 attributes['aria-hidden'] = 'true'; 2235 attributes['focusable'] = 'false'; 2236 } 2237 } 2238 return makeInlineSvgAbstract({ 2239 icons: { 2240 main: asFoundIcon(icon), 2241 mask: mask ? asFoundIcon(mask.icon) : { 2242 found: false, 2243 width: null, 2244 height: null, 2245 icon: {} 2246 } 2247 }, 2248 prefix, 2249 iconName, 2250 transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform), 2251 symbol, 2252 title, 2253 maskId, 2254 titleId, 2255 extra: { 2256 attributes, 2257 styles, 2258 classes 2259 } 2260 }); 2261 }); 2262}; 2263var ReplaceElements = { 2264 mixout() { 2265 return { 2266 icon: resolveIcons(render) 2267 }; 2268 }, 2269 hooks() { 2270 return { 2271 mutationObserverCallbacks(accumulator) { 2272 accumulator.treeCallback = onTree; 2273 accumulator.nodeCallback = onNode; 2274 return accumulator; 2275 } 2276 }; 2277 }, 2278 provides(providers$$1) { 2279 providers$$1.i2svg = function (params) { 2280 const { 2281 node = DOCUMENT, 2282 callback = () => {} 2283 } = params; 2284 return onTree(node, callback); 2285 }; 2286 providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) { 2287 const { 2288 iconName, 2289 title, 2290 titleId, 2291 prefix, 2292 transform, 2293 symbol, 2294 mask, 2295 maskId, 2296 extra 2297 } = nodeMeta; 2298 return new Promise((resolve, reject) => { 2299 Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({ 2300 found: false, 2301 width: 512, 2302 height: 512, 2303 icon: {} 2304 })]).then(_ref => { 2305 let [main, mask] = _ref; 2306 resolve([node, makeInlineSvgAbstract({ 2307 icons: { 2308 main, 2309 mask 2310 }, 2311 prefix, 2312 iconName, 2313 transform, 2314 symbol, 2315 maskId, 2316 title, 2317 titleId, 2318 extra, 2319 watchable: true 2320 })]); 2321 }).catch(reject); 2322 }); 2323 }; 2324 providers$$1.generateAbstractIcon = function (_ref2) { 2325 let { 2326 children, 2327 attributes, 2328 main, 2329 transform, 2330 styles 2331 } = _ref2; 2332 const styleString = joinStyles(styles); 2333 if (styleString.length > 0) { 2334 attributes['style'] = styleString; 2335 } 2336 let nextChild; 2337 if (transformIsMeaningful(transform)) { 2338 nextChild = callProvided('generateAbstractTransformGrouping', { 2339 main, 2340 transform, 2341 containerWidth: main.width, 2342 iconWidth: main.width 2343 }); 2344 } 2345 children.push(nextChild || main.icon); 2346 return { 2347 children, 2348 attributes 2349 }; 2350 }; 2351 } 2352}; 2353 2354var Layers = { 2355 mixout() { 2356 return { 2357 layer(assembler) { 2358 let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 2359 const { 2360 classes = [] 2361 } = params; 2362 return domVariants({ 2363 type: 'layer' 2364 }, () => { 2365 callHooks('beforeDOMElementCreation', { 2366 assembler, 2367 params 2368 }); 2369 let children = []; 2370 assembler(args => { 2371 Array.isArray(args) ? args.map(a => { 2372 children = children.concat(a.abstract); 2373 }) : children = children.concat(args.abstract); 2374 }); 2375 return [{ 2376 tag: 'span', 2377 attributes: { 2378 class: ["".concat(config.cssPrefix, "-layers"), ...classes].join(' ') 2379 }, 2380 children 2381 }]; 2382 }); 2383 } 2384 }; 2385 } 2386}; 2387 2388var LayersCounter = { 2389 mixout() { 2390 return { 2391 counter(content) { 2392 let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 2393 const { 2394 title = null, 2395 classes = [], 2396 attributes = {}, 2397 styles = {} 2398 } = params; 2399 return domVariants({ 2400 type: 'counter', 2401 content 2402 }, () => { 2403 callHooks('beforeDOMElementCreation', { 2404 content, 2405 params 2406 }); 2407 return makeLayersCounterAbstract({ 2408 content: content.toString(), 2409 title, 2410 extra: { 2411 attributes, 2412 styles, 2413 classes: ["".concat(config.cssPrefix, "-layers-counter"), ...classes] 2414 } 2415 }); 2416 }); 2417 } 2418 }; 2419 } 2420}; 2421 2422var LayersText = { 2423 mixout() { 2424 return { 2425 text(content) { 2426 let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 2427 const { 2428 transform = meaninglessTransform, 2429 title = null, 2430 classes = [], 2431 attributes = {}, 2432 styles = {} 2433 } = params; 2434 return domVariants({ 2435 type: 'text', 2436 content 2437 }, () => { 2438 callHooks('beforeDOMElementCreation', { 2439 content, 2440 params 2441 }); 2442 return makeLayersTextAbstract({ 2443 content,
2444 transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform), 2445 title, 2446 extra: { 2447 attributes, 2448 styles, 2449 classes: ["".concat(config.cssPrefix, "-layers-text"), ...classes] 2450 } 2451 }); 2452 }); 2453 } 2454 }; 2455 }, 2456 provides(providers$$1) { 2457 providers$$1.generateLayersText = function (node, nodeMeta) { 2458 const { 2459 title, 2460 transform, 2461 extra 2462 } = nodeMeta; 2463 let width = null; 2464 let height = null; 2465 if (IS_IE) { 2466 const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10); 2467 const boundingClientRect = node.getBoundingClientRect(); 2468 width = boundingClientRect.width / computedFontSize; 2469 height = boundingClientRect.height / computedFontSize; 2470 } 2471 if (config.autoA11y && !title) { 2472 extra.attributes['aria-hidden'] = 'true'; 2473 } 2474 return Promise.resolve([node, makeLayersTextAbstract({ 2475 content: node.innerHTML, 2476 width, 2477 height, 2478 transform, 2479 title, 2480 extra, 2481 watchable: true 2482 })]); 2483 }; 2484 } 2485}; 2486 2487const CLEAN_CONTENT_PATTERN = new RegExp('\u{22}', 'ug'); 2488const SECONDARY_UNICODE_RANGE = [1105920, 1112319]; 2489const _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { 2490 FontAwesome: { 2491 normal: 'fas', 2492 400: 'fas' 2493 } 2494}), lt), wa), Yt); 2495const FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => { 2496 acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key]; 2497 return acc; 2498}, {}); 2499const FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => { 2500 const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily]; 2501 acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1]; 2502 return acc; 2503}, {}); 2504function hexValueFromContent(content) { 2505 const cleaned = content.replace(CLEAN_CONTENT_PATTERN, ''); 2506 const codePoint = codePointAt(cleaned, 0); 2507 const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1]; 2508 const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false; 2509 return { 2510 value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned), 2511 isSecondary: isPrependTen || isDoubled 2512 }; 2513} 2514function getPrefix(fontFamily, fontWeight) { 2515 const fontFamilySanitized = fontFamily.replace(/^['"]|['"]$/g, '').toLowerCase(); 2516 const fontWeightInteger = parseInt(fontWeight); 2517 const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger; 2518 return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized]; 2519} 2520function replaceForPosition(node, position) { 2521 const pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-')); 2522 return new Promise((resolve, reject) => { 2523 if (node.getAttribute(pendingAttribute) !== null) { 2524 // This node is already being processed 2525 return resolve(); 2526 } 2527 const children = toArray(node.children); 2528 const alreadyProcessedPseudoElement = children.filter(c$$1 => c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0]; 2529 const styles = WINDOW.getComputedStyle(node, position); 2530 const fontFamily = styles.getPropertyValue('font-family'); 2531 const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN); 2532 const fontWeight = styles.getPropertyValue('font-weight'); 2533 const content = styles.getPropertyValue('content'); 2534 if (alreadyProcessedPseudoElement && !fontFamilyMatch) { 2535 // If we've already processed it but the current computed style does not result in a font-family, 2536 // that probably means that a class name that was previously present to make the icon has been 2537 // removed. So we now should delete the icon. 2538 node.removeChild(alreadyProcessedPseudoElement); 2539 return resolve(); 2540 } else if (fontFamilyMatch && content !== 'none' && content !== '') { 2541 const content = styles.getPropertyValue('content'); 2542 let prefix = getPrefix(fontFamily, fontWeight); 2543 const { 2544 value: hexValue, 2545 isSecondary 2546 } = hexValueFromContent(content); 2547 const isV4 = fontFamilyMatch[0].startsWith('FontAwesome'); 2548 let iconName = byUnicode(prefix, hexValue); 2549 let iconIdentifier = iconName; 2550 if (isV4) { 2551 const iconName4 = byOldUnicode(hexValue); 2552 if (iconName4.iconName && iconName4.prefix) { 2553 iconName = iconName4.iconName; 2554 prefix = iconName4.prefix; 2555 } 2556 } 2557 2558 // Only convert the pseudo element in this ::before/::after position into an icon if we haven't 2559 // already done so with the same prefix and iconName 2560 if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) { 2561 node.setAttribute(pendingAttribute, iconIdentifier); 2562 if (alreadyProcessedPseudoElement) { 2563 // Delete the old one, since we're replacing it with a new one 2564 node.removeChild(alreadyProcessedPseudoElement); 2565 } 2566 const meta = blankMeta(); 2567 const { 2568 extra 2569 } = meta; 2570 extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position; 2571 findIcon(iconName, prefix).then(main => {
2572 const abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, { 2573 icons: { 2574 main, 2575 mask: emptyCanonicalIcon() 2576 }, 2577 prefix, 2578 iconName: iconIdentifier, 2579 extra, 2580 watchable: true 2581 })); 2582 const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg'); 2583 if (position === '::before') { 2584 node.insertBefore(element, node.firstChild); 2585 } else { 2586 node.appendChild(element); 2587 } 2588 element.outerHTML = abstract.map(a$$1 => toHtml(a$$1)).join('\n'); 2589 node.removeAttribute(pendingAttribute); 2590 resolve(); 2591 }).catch(reject); 2592 } else { 2593 resolve(); 2594 } 2595 } else { 2596 resolve(); 2597 } 2598 }); 2599} 2600function replace(node) { 2601 return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]); 2602} 2603function processable(node) { 2604 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'); 2605} 2606function searchPseudoElements(root) { 2607 if (!IS_DOM) return; 2608 return new Promise((resolve, reject) => { 2609 const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace); 2610 const end = perf.begin('searchPseudoElements'); 2611 disableObservation(); 2612 Promise.all(operations).then(() => { 2613 end(); 2614 enableObservation(); 2615 resolve(); 2616 }).catch(() => { 2617 end(); 2618 enableObservation(); 2619 reject(); 2620 }); 2621 }); 2622} 2623var PseudoElements = { 2624 hooks() { 2625 return { 2626 mutationObserverCallbacks(accumulator) { 2627 accumulator.pseudoElementsCallback = searchPseudoElements; 2628 return accumulator; 2629 } 2630 }; 2631 }, 2632 provides(providers) { 2633 providers.pseudoElements2svg = function (params) { 2634 const { 2635 node = DOCUMENT 2636 } = params; 2637 if (config.searchPseudoElements) { 2638 searchPseudoElements(node); 2639 } 2640 }; 2641 } 2642}; 2643 2644let _unwatched = false; 2645var MutationObserver$1 = { 2646 mixout() { 2647 return { 2648 dom: { 2649 unwatch() { 2650 disableObservation(); 2651 _unwatched = true; 2652 } 2653 } 2654 }; 2655 }, 2656 hooks() { 2657 return { 2658 bootstrap() { 2659 observe(chainHooks('mutationObserverCallbacks', {})); 2660 }, 2661 noAuto() { 2662 disconnect(); 2663 }, 2664 watch(params) { 2665 const { 2666 observeMutationsRoot 2667 } = params; 2668 if (_unwatched) { 2669 enableObservation(); 2670 } else { 2671 observe(chainHooks('mutationObserverCallbacks', { 2672 observeMutationsRoot 2673 })); 2674 } 2675 } 2676 }; 2677 } 2678}; 2679 2680const parseTransformString = transformString => { 2681 let transform = { 2682 size: 16, 2683 x: 0, 2684 y: 0, 2685 flipX: false, 2686 flipY: false, 2687 rotate: 0 2688 }; 2689 return transformString.toLowerCase().split(' ').reduce((acc, n) => { 2690 const parts = n.toLowerCase().split('-'); 2691 const first = parts[0]; 2692 let rest = parts.slice(1).join('-'); 2693 if (first && rest === 'h') { 2694 acc.flipX = true; 2695 return acc; 2696 } 2697 if (first && rest === 'v') { 2698 acc.flipY = true; 2699 return acc; 2700 } 2701 rest = parseFloat(rest); 2702 if (isNaN(rest)) { 2703 return acc; 2704 } 2705 switch (first) { 2706 case 'grow': 2707 acc.size = acc.size + rest; 2708 break; 2709 case 'shrink': 2710 acc.size = acc.size - rest; 2711 break; 2712 case 'left': 2713 acc.x = acc.x - rest; 2714 break; 2715 case 'right': 2716 acc.x = acc.x + rest; 2717 break; 2718 case 'up': 2719 acc.y = acc.y - rest; 2720 break; 2721 case 'down': 2722 acc.y = acc.y + rest; 2723 break; 2724 case 'rotate': 2725 acc.rotate = acc.rotate + rest; 2726 break; 2727 } 2728 return acc; 2729 }, transform); 2730}; 2731var PowerTransforms = { 2732 mixout() { 2733 return { 2734 parse: { 2735 transform: transformString => { 2736 return parseTransformString(transformString); 2737 } 2738 } 2739 }; 2740 }, 2741 hooks() { 2742 return { 2743 parseNodeAttributes(accumulator, node) { 2744 const transformString = node.getAttribute('data-fa-transform'); 2745 if (transformString) { 2746 accumulator.transform = parseTransformString(transformString); 2747 } 2748 return accumulator; 2749 } 2750 }; 2751 }, 2752 provides(providers) { 2753 providers.generateAbstractTransformGrouping = function (_ref) { 2754 let { 2755 main, 2756 transform, 2757 containerWidth, 2758 iconWidth 2759 } = _ref; 2760 const outer = { 2761 transform: "translate(".concat(containerWidth / 2, " 256)") 2762 }; 2763 const innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") "); 2764 const innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") "); 2765 const innerRotate = "rotate(".concat(transform.rotate, " 0 0)"); 2766 const inner = { 2767 transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) 2768 }; 2769 const path = { 2770 transform: "translate(".concat(iconWidth / 2 * -1, " -256)") 2771 }; 2772 const operations = { 2773 outer, 2774 inner, 2775 path 2776 }; 2777 return { 2778 tag: 'g',
2779 attributes: _objectSpread2({}, operations.outer), 2780 children: [{ 2781 tag: 'g', 2782 attributes: _objectSpread2({}, operations.inner), 2783 children: [{ 2784 tag: main.icon.tag, 2785 children: main.icon.children, 2786 attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path) 2787 }] 2788 }] 2789 }; 2790 }; 2791 } 2792}; 2793 2794const ALL_SPACE = { 2795 x: 0, 2796 y: 0, 2797 width: '100%', 2798 height: '100%' 2799}; 2800function fillBlack(abstract) { 2801 let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 2802 if (abstract.attributes && (abstract.attributes.fill || force)) { 2803 abstract.attributes.fill = 'black'; 2804 } 2805 return abstract; 2806} 2807function deGroup(abstract) { 2808 if (abstract.tag === 'g') { 2809 return abstract.children; 2810 } else { 2811 return [abstract]; 2812 } 2813} 2814var Masks = { 2815 hooks() { 2816 return { 2817 parseNodeAttributes(accumulator, node) { 2818 const maskData = node.getAttribute('data-fa-mask'); 2819 const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim())); 2820 if (!mask.prefix) { 2821 mask.prefix = getDefaultUsablePrefix(); 2822 } 2823 accumulator.mask = mask; 2824 accumulator.maskId = node.getAttribute('data-fa-mask-id'); 2825 return accumulator; 2826 } 2827 }; 2828 }, 2829 provides(providers) { 2830 providers.generateAbstractMask = function (_ref) { 2831 let { 2832 children, 2833 attributes, 2834 main, 2835 mask, 2836 maskId: explicitMaskId, 2837 transform 2838 } = _ref; 2839 const { 2840 width: mainWidth, 2841 icon: mainPath 2842 } = main; 2843 const { 2844 width: maskWidth, 2845 icon: maskPath 2846 } = mask; 2847 const trans = transformForSvg({ 2848 transform, 2849 containerWidth: maskWidth, 2850 iconWidth: mainWidth 2851 }); 2852 const maskRect = { 2853 tag: 'rect', 2854 attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, { 2855 fill: 'white' 2856 }) 2857 }; 2858 const maskInnerGroupChildrenMixin = mainPath.children ? { 2859 children: mainPath.children.map(fillBlack) 2860 } : {}; 2861 const maskInnerGroup = { 2862 tag: 'g', 2863 attributes: _objectSpread2({}, trans.inner), 2864 children: [fillBlack(_objectSpread2({ 2865 tag: mainPath.tag, 2866 attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path) 2867 }, maskInnerGroupChildrenMixin))] 2868 }; 2869 const maskOuterGroup = { 2870 tag: 'g', 2871 attributes: _objectSpread2({}, trans.outer), 2872 children: [maskInnerGroup] 2873 }; 2874 const maskId = "mask-".concat(explicitMaskId || nextUniqueId()); 2875 const clipId = "clip-".concat(explicitMaskId || nextUniqueId()); 2876 const maskTag = { 2877 tag: 'mask', 2878 attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, { 2879 id: maskId, 2880 maskUnits: 'userSpaceOnUse', 2881 maskContentUnits: 'userSpaceOnUse' 2882 }), 2883 children: [maskRect, maskOuterGroup] 2884 }; 2885 const defs = { 2886 tag: 'defs', 2887 children: [{ 2888 tag: 'clipPath', 2889 attributes: { 2890 id: clipId 2891 }, 2892 children: deGroup(maskPath) 2893 }, maskTag] 2894 }; 2895 children.push(defs, { 2896 tag: 'rect', 2897 attributes: _objectSpread2({ 2898 fill: 'currentColor', 2899 'clip-path': "url(#".concat(clipId, ")"), 2900 mask: "url(#".concat(maskId, ")") 2901 }, ALL_SPACE) 2902 }); 2903 return { 2904 children, 2905 attributes 2906 }; 2907 }; 2908 } 2909}; 2910 2911var MissingIconIndicator = { 2912 provides(providers) { 2913 let reduceMotion = false; 2914 if (WINDOW.matchMedia) { 2915 reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches; 2916 } 2917 providers.missingIconAbstract = function () { 2918 const gChildren = []; 2919 const FILL = { 2920 fill: 'currentColor' 2921 }; 2922 const ANIMATION_BASE = { 2923 attributeType: 'XML', 2924 repeatCount: 'indefinite', 2925 dur: '2s' 2926 }; 2927 2928 // Ring 2929 gChildren.push({ 2930 tag: 'path',
vendor: 6,230 bytes, lines 2931-3084
2931 attributes: _objectSpread2(_objectSpread2({}, FILL), {}, { 2932 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' 2933 }) 2934 }); 2935 const OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, { 2936 attributeName: 'opacity' 2937 }); 2938 const dot = { 2939 tag: 'circle', 2940 attributes: _objectSpread2(_objectSpread2({}, FILL), {}, { 2941 cx: '256', 2942 cy: '364', 2943 r: '28' 2944 }), 2945 children: [] 2946 }; 2947 if (!reduceMotion) { 2948 dot.children.push({ 2949 tag: 'animate', 2950 attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, { 2951 attributeName: 'r', 2952 values: '28;14;28;28;14;28;' 2953 }) 2954 }, { 2955 tag: 'animate', 2956 attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, { 2957 values: '1;0;1;1;0;1;' 2958 }) 2959 }); 2960 } 2961 gChildren.push(dot); 2962 gChildren.push({ 2963 tag: 'path', 2964 attributes: _objectSpread2(_objectSpread2({}, FILL), {}, { 2965 opacity: '1', 2966 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' 2967 }), 2968 children: reduceMotion ? [] : [{ 2969 tag: 'animate', 2970 attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, { 2971 values: '1;0;0;0;0;1;' 2972 }) 2973 }] 2974 }); 2975 if (!reduceMotion) { 2976 // Exclamation 2977 gChildren.push({ 2978 tag: 'path', 2979 attributes: _objectSpread2(_objectSpread2({}, FILL), {}, { 2980 opacity: '0', 2981 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' 2982 }), 2983 children: [{ 2984 tag: 'animate', 2985 attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, { 2986 values: '0;0;1;1;0;0;' 2987 }) 2988 }] 2989 }); 2990 } 2991 return { 2992 tag: 'g', 2993 attributes: { 2994 'class': 'missing' 2995 }, 2996 children: gChildren 2997 }; 2998 }; 2999 } 3000}; 3001 3002var SvgSymbols = { 3003 hooks() { 3004 return { 3005 parseNodeAttributes(accumulator, node) { 3006 const symbolData = node.getAttribute('data-fa-symbol'); 3007 const symbol = symbolData === null ? false : symbolData === '' ? true : symbolData; 3008 accumulator['symbol'] = symbol; 3009 return accumulator; 3010 } 3011 }; 3012 } 3013}; 3014 3015var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols]; 3016 3017registerPlugins(plugins, { 3018 mixoutsTo: api 3019}); 3020const noAuto$1 = api.noAuto; 3021const config$1 = api.config; 3022const library$1 = api.library; 3023const dom$1 = api.dom; 3024const parse$1 = api.parse; 3025const findIconDefinition$1 = api.findIconDefinition; 3026const toHtml$1 = api.toHtml; 3027const icon = api.icon; 3028const fontawesome_svg_core_layer = api.layer; 3029const fontawesome_svg_core_text = api.text; 3030const counter = api.counter; 3031 3032 3033 3034// EXTERNAL MODULE: ./node_modules/prop-types/index.js 3035var prop_types = __webpack_require__(45697); 3036var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types); 3037// EXTERNAL MODULE: ./node_modules/react/index.js 3038var react = __webpack_require__(67294); 3039;// CONCATENATED MODULE: ./node_modules/@fortawesome/react-fontawesome/index.es.js 3040/* provided dependency */ var process = __webpack_require__(34155); 3041 3042 3043 3044 3045function _arrayLikeToArray(r, a) { 3046 (null == a || a > r.length) && (a = r.length); 3047 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; 3048 return n; 3049} 3050function _arrayWithHoles(r) { 3051 if (Array.isArray(r)) return r; 3052} 3053function _arrayWithoutHoles(r) { 3054 if (Array.isArray(r)) return _arrayLikeToArray(r); 3055} 3056function index_es_defineProperty(e, r, t) { 3057 return (r = index_es_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { 3058 value: t, 3059 enumerable: !0, 3060 configurable: !0, 3061 writable: !0 3062 }) : e[r] = t, e; 3063} 3064function _iterableToArray(r) { 3065 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); 3066} 3067function _iterableToArrayLimit(r, l) { 3068 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; 3069 if (null != t) { 3070 var e, 3071 n, 3072 i, 3073 u, 3074 a = [], 3075 f = !0, 3076 o = !1; 3077 try { 3078 if (i = (t = t.call(r)).next, 0 === l) { 3079 if (Object(t) !== t) return; 3080 f = !1; 3081 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); 3082 } catch (r) { 3083 o = !0, n = r; 3084 } finally {
vendor: 5,326 bytes, lines 3085-3234
3085 try { 3086 if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; 3087 } finally { 3088 if (o) throw n; 3089 } 3090 } 3091 return a; 3092 } 3093} 3094function _nonIterableRest() { 3095 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 3096} 3097function _nonIterableSpread() { 3098 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 3099} 3100function index_es_ownKeys(e, r) { 3101 var t = Object.keys(e); 3102 if (Object.getOwnPropertySymbols) { 3103 var o = Object.getOwnPropertySymbols(e); 3104 r && (o = o.filter(function (r) { 3105 return Object.getOwnPropertyDescriptor(e, r).enumerable; 3106 })), t.push.apply(t, o); 3107 } 3108 return t; 3109} 3110function index_es_objectSpread2(e) { 3111 for (var r = 1; r < arguments.length; r++) { 3112 var t = null != arguments[r] ? arguments[r] : {}; 3113 r % 2 ? index_es_ownKeys(Object(t), !0).forEach(function (r) { 3114 index_es_defineProperty(e, r, t[r]); 3115 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : index_es_ownKeys(Object(t)).forEach(function (r) { 3116 Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); 3117 }); 3118 } 3119 return e; 3120} 3121function _objectWithoutProperties(e, t) { 3122 if (null == e) return {}; 3123 var o, 3124 r, 3125 i = _objectWithoutPropertiesLoose(e, t); 3126 if (Object.getOwnPropertySymbols) { 3127 var n = Object.getOwnPropertySymbols(e); 3128 for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); 3129 } 3130 return i; 3131} 3132function _objectWithoutPropertiesLoose(r, e) { 3133 if (null == r) return {}; 3134 var t = {}; 3135 for (var n in r) if ({}.hasOwnProperty.call(r, n)) { 3136 if (-1 !== e.indexOf(n)) continue; 3137 t[n] = r[n]; 3138 } 3139 return t; 3140} 3141function _slicedToArray(r, e) { 3142 return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); 3143} 3144function _toConsumableArray(r) { 3145 return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); 3146} 3147function index_es_toPrimitive(t, r) { 3148 if ("object" != typeof t || !t) return t; 3149 var e = t[Symbol.toPrimitive]; 3150 if (void 0 !== e) { 3151 var i = e.call(t, r || "default"); 3152 if ("object" != typeof i) return i; 3153 throw new TypeError("@@toPrimitive must return a primitive value."); 3154 } 3155 return ("string" === r ? String : Number)(t); 3156} 3157function index_es_toPropertyKey(t) { 3158 var i = index_es_toPrimitive(t, "string"); 3159 return "symbol" == typeof i ? i : i + ""; 3160} 3161function _typeof(o) { 3162 "@babel/helpers - typeof"; 3163 3164 return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { 3165 return typeof o; 3166 } : function (o) { 3167 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; 3168 }, _typeof(o); 3169} 3170function _unsupportedIterableToArray(r, a) { 3171 if (r) { 3172 if ("string" == typeof r) return _arrayLikeToArray(r, a); 3173 var t = {}.toString.call(r).slice(8, -1); 3174 return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; 3175 } 3176} 3177 3178var ICON_PACKS_STARTING_VERSION = '7.0.0'; 3179 3180// Try to get version from installed package first, fallback to env var, then default 3181var SVG_CORE_VERSION; 3182try { 3183 var svgCorePackageJson = __webpack_require__(74533); 3184 SVG_CORE_VERSION = svgCorePackageJson.version; 3185} catch (e) { 3186 // If package.json can't be loaded, try environment variable 3187 SVG_CORE_VERSION = typeof process !== 'undefined' && process.env.FA_VERSION || '7.0.0'; 3188} 3189 3190// Get CSS class list from a props object 3191function classList(props) { 3192 var beat = props.beat, 3193 fade = props.fade, 3194 beatFade = props.beatFade, 3195 bounce = props.bounce, 3196 shake = props.shake, 3197 flash = props.flash, 3198 spin = props.spin, 3199 spinPulse = props.spinPulse, 3200 spinReverse = props.spinReverse, 3201 pulse = props.pulse, 3202 fixedWidth = props.fixedWidth, 3203 inverse = props.inverse, 3204 border = props.border, 3205 listItem = props.listItem, 3206 flip = props.flip, 3207 size = props.size, 3208 rotation = props.rotation, 3209 pull = props.pull, 3210 swapOpacity = props.swapOpacity, 3211 rotateBy = props.rotateBy, 3212 widthAuto = props.widthAuto; 3213 3214 // Check if we're using version 7 or later 3215 var isVersion7OrLater = versionCheckGte(SVG_CORE_VERSION, ICON_PACKS_STARTING_VERSION); 3216 3217 // map of CSS class names to properties 3218 var classes = index_es_defineProperty(index_es_defineProperty(index_es_defineProperty(index_es_defineProperty(index_es_defineProperty(index_es_defineProperty({ 3219 'fa-beat': beat, 3220 'fa-fade': fade, 3221 'fa-beat-fade': beatFade, 3222 'fa-bounce': bounce, 3223 'fa-shake': shake, 3224 'fa-flash': flash, 3225 'fa-spin': spin, 3226 'fa-spin-reverse': spinReverse, 3227 'fa-spin-pulse': spinPulse, 3228 'fa-pulse': pulse, 3229 'fa-fw': fixedWidth, 3230 'fa-inverse': inverse, 3231 'fa-border': border, 3232 'fa-li': listItem, 3233 'fa-flip': flip === true, 3234 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',
3235 'fa-flip-vertical': flip === 'vertical' || flip === 'both' 3236 }, "fa-".concat(size), typeof size !== 'undefined' && size !== null), "fa-rotate-".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), "fa-pull-".concat(pull), typeof pull !== 'undefined' && pull !== null), 'fa-swap-opacity', swapOpacity), 'fa-rotate-by', isVersion7OrLater && rotateBy), 'fa-width-auto', isVersion7OrLater && widthAuto); 3237 3238 // map over all the keys in the classes object 3239 // return an array of the keys where the value for the key is not null 3240 return Object.keys(classes).map(function (key) { 3241 return classes[key] ? key : null; 3242 }).filter(function (key) { 3243 return key; 3244 }); 3245} 3246 3247// check if verion1 is greater than or equal to version2 3248function versionCheckGte(version1, version2) { 3249 var _version1$split = version1.split('-'), 3250 _version1$split2 = _slicedToArray(_version1$split, 2), 3251 v1Base = _version1$split2[0], 3252 v1PreRelease = _version1$split2[1]; 3253 var _version2$split = version2.split('-'), 3254 _version2$split2 = _slicedToArray(_version2$split, 2), 3255 v2Base = _version2$split2[0], 3256 v2PreRelease = _version2$split2[1]; 3257 var v1Parts = v1Base.split('.'); 3258 var v2Parts = v2Base.split('.'); 3259 3260 // Compare version numbers first 3261 for (var i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) { 3262 var v1Part = v1Parts[i] || '0'; 3263 var v2Part = v2Parts[i] || '0'; 3264 3265 // Compare numeric values 3266 var v1Num = parseInt(v1Part, 10); 3267 var v2Num = parseInt(v2Part, 10); 3268 if (v1Num !== v2Num) { 3269 return v1Num > v2Num; 3270 } 3271 } 3272 3273 // If numeric values are equal, look for any remaining parts 3274 // that would make one version greater than the other 3275 for (var _i = 0; _i < Math.max(v1Parts.length, v2Parts.length); _i++) { 3276 var _v1Part = v1Parts[_i] || '0'; 3277 var _v2Part = v2Parts[_i] || '0'; 3278 if (_v1Part !== _v2Part) { 3279 // When numeric values are equal but strings differ, 3280 // the one without leading zeros is greater 3281 if (_v1Part.length !== _v2Part.length) { 3282 return _v1Part.length < _v2Part.length; 3283 } 3284 } 3285 } 3286 3287 // If version numbers are equal, compare pre-release identifiers 3288 // A version with a pre-release identifier is less than one without 3289 if (v1PreRelease && !v2PreRelease) return false; 3290 if (!v1PreRelease && v2PreRelease) return true; 3291 return true; 3292} 3293 3294// Camelize taken from humps 3295// humps is copyright © 2012+ Dom Christie 3296// Released under the MIT license. 3297 3298// Performant way to determine if object coerces to a number 3299function _isNumerical(obj) { 3300 obj = obj - 0; 3301 3302 // eslint-disable-next-line no-self-compare 3303 return obj === obj; 3304} 3305function camelize(string) { 3306 if (_isNumerical(string)) { 3307 return string; 3308 } 3309 3310 // eslint-disable-next-line no-useless-escape 3311 string = string.replace(/[\-_\s]+(.)?/g, function (match, chr) { 3312 return chr ? chr.toUpperCase() : ''; 3313 }); 3314 3315 // Ensure 1st char is always lowercase 3316 return string.substr(0, 1).toLowerCase() + string.substr(1); 3317} 3318 3319var _excluded = ["style"]; 3320function capitalize(val) { 3321 return val.charAt(0).toUpperCase() + val.slice(1); 3322} 3323function styleToObject(style) { 3324 return style.split(';').map(function (s) { 3325 return s.trim(); 3326 }).filter(function (s) { 3327 return s; 3328 }).reduce(function (acc, pair) { 3329 var i = pair.indexOf(':'); 3330 var prop = camelize(pair.slice(0, i)); 3331 var value = pair.slice(i + 1).trim(); 3332 prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value; 3333 return acc; 3334 }, {}); 3335} 3336function convert(createElement, element) { 3337 var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 3338 if (typeof element === 'string') { 3339 return element; 3340 } 3341 var children = (element.children || []).map(function (child) { 3342 return convert(createElement, child); 3343 }); 3344 3345 /* eslint-disable dot-notation */ 3346 var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) { 3347 var val = element.attributes[key]; 3348 switch (key) { 3349 case 'class': 3350 acc.attrs['className'] = val; 3351 delete element.attributes['class']; 3352 break; 3353 case 'style': 3354 acc.attrs['style'] = styleToObject(val); 3355 break; 3356 default: 3357 if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) { 3358 acc.attrs[key.toLowerCase()] = val; 3359 } else { 3360 acc.attrs[camelize(key)] = val; 3361 } 3362 } 3363 return acc; 3364 }, { 3365 attrs: {} 3366 }); 3367 var _extraProps$style = extraProps.style, 3368 existingStyle = _extraProps$style === void 0 ? {}
3368 : _extraProps$style, 3369 remaining = _objectWithoutProperties(extraProps, _excluded); 3370 mixins.attrs['style'] = index_es_objectSpread2(index_es_objectSpread2({}, mixins.attrs['style']), existingStyle); 3371 /* eslint-enable */ 3372 3373 return createElement.apply(void 0, [element.tag, index_es_objectSpread2(index_es_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children))); 3374} 3375 3376var index_es_PRODUCTION = false; 3377try { 3378 index_es_PRODUCTION = "production" === 'production'; 3379} catch (e) {} 3380function log () { 3381 if (!index_es_PRODUCTION && console && typeof console.error === 'function') { 3382 var _console; 3383 (_console = console).error.apply(_console, arguments); 3384 } 3385} 3386 3387// Normalize icon arguments 3388function normalizeIconArgs(icon) { 3389 // this has everything that it needs to be rendered which means it was probably imported 3390 // directly from an icon svg package 3391 if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) { 3392 return icon; 3393 } 3394 if (parse$1.icon) { 3395 return parse$1.icon(icon); 3396 } 3397 3398 // if the icon is null, there's nothing to do 3399 if (icon === null) { 3400 return null; 3401 } 3402 3403 // if the icon is an object and has a prefix and an icon name, return it 3404 if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) { 3405 return icon; 3406 } 3407 3408 // if it's an array with length of two 3409 if (Array.isArray(icon) && icon.length === 2) { 3410 // use the first item as prefix, second as icon name 3411 return { 3412 prefix: icon[0], 3413 iconName: icon[1] 3414 }; 3415 } 3416 3417 // if it's a string, use it as the icon name 3418 if (typeof icon === 'string') { 3419 return { 3420 prefix: 'fas', 3421 iconName: icon 3422 }; 3423 } 3424} 3425 3426// creates an object with a key of key 3427// and a value of value 3428// if certain conditions are met 3429function objectWithKey(key, value) { 3430 // if the value is a non-empty array 3431 // or it's not an array but it is truthy 3432 // then create the object with the key and the value 3433 // if not, return an empty array 3434 return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? index_es_defineProperty({}, key, value) : {}; 3435} 3436 3437var defaultProps = { 3438 border: false, 3439 className: '', 3440 mask: null, 3441 maskId: null, 3442 // the fixedWidth property has been deprecated as of version 7 3443 fixedWidth: false, 3444 inverse: false, 3445 flip: false, 3446 icon: null, 3447 listItem: false, 3448 pull: null, 3449 pulse: false, 3450 rotation: null, 3451 rotateBy: false, 3452 size: null, 3453 spin: false, 3454 spinPulse: false, 3455 spinReverse: false, 3456 beat: false, 3457 fade: false, 3458 beatFade: false, 3459 bounce: false, 3460 shake: false, 3461 symbol: false, 3462 title: '', 3463 titleId: null, 3464 transform: null, 3465 swapOpacity: false, 3466 widthAuto: false 3467}; 3468var FontAwesomeIcon = /*#__PURE__*/react.forwardRef(function (props, ref) { 3469 var allProps = index_es_objectSpread2(index_es_objectSpread2({}, defaultProps), props); 3470 var iconArgs = allProps.icon, 3471 maskArgs = allProps.mask, 3472 symbol = allProps.symbol, 3473 className = allProps.className, 3474 title = allProps.title, 3475 titleId = allProps.titleId, 3476 maskId = allProps.maskId; 3477 var iconLookup = normalizeIconArgs(iconArgs); 3478 var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' ')))); 3479 var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse$1.transform(allProps.transform) : allProps.transform); 3480 var mask = objectWithKey('mask', normalizeIconArgs(maskArgs)); 3481 var renderedIcon = icon(iconLookup, index_es_objectSpread2(index_es_objectSpread2(index_es_objectSpread2(index_es_objectSpread2({}, classes), transform), mask), {}, { 3482 symbol: symbol, 3483 title: title, 3484 titleId: titleId, 3485 maskId: maskId 3486 })); 3487 if (!renderedIcon) { 3488 log('Could not find icon', iconLookup); 3489 return null; 3490 } 3491 var abstract = renderedIcon.abstract; 3492 var extraProps = { 3493 ref: ref 3494 }; 3495 Object.keys(allProps).forEach(function (key) { 3496 // eslint-disable-next-line no-prototype-builtins 3497 if (!defaultProps.hasOwnProperty(key)) { 3498 extraProps[key] = allProps[key]; 3499 } 3500 }); 3501 return convertCurry(abstract[0], extraProps); 3502}); 3503FontAwesomeIcon.displayName = 'FontAwesomeIcon'; 3504FontAwesomeIcon.propTypes = { 3505 beat: (prop_types_default()).bool, 3506 border: (prop_types_default()).bool, 3507 beatFade: (prop_types_default()).bool, 3508 bounce: (prop_types_default()).bool,
3509 className: (prop_types_default()).string, 3510 fade: (prop_types_default()).bool, 3511 flash: (prop_types_default()).bool, 3512 mask: prop_types_default().oneOfType([(prop_types_default()).object, (prop_types_default()).array, (prop_types_default()).string]), 3513 maskId: (prop_types_default()).string, 3514 // the fixedWidth property has been deprecated as of version 7 3515 fixedWidth: (prop_types_default()).bool, 3516 inverse: (prop_types_default()).bool, 3517 flip: prop_types_default().oneOf([true, false, 'horizontal', 'vertical', 'both']), 3518 icon: prop_types_default().oneOfType([(prop_types_default()).object, (prop_types_default()).array, (prop_types_default()).string]), 3519 listItem: (prop_types_default()).bool, 3520 pull: prop_types_default().oneOf(['right', 'left']), 3521 pulse: (prop_types_default()).bool, 3522 rotation: prop_types_default().oneOf([0, 90, 180, 270]), 3523 rotateBy: (prop_types_default()).bool, 3524 shake: (prop_types_default()).bool, 3525 size: prop_types_default().oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']), 3526 spin: (prop_types_default()).bool, 3527 spinPulse: (prop_types_default()).bool, 3528 spinReverse: (prop_types_default()).bool, 3529 symbol: prop_types_default().oneOfType([(prop_types_default()).bool, (prop_types_default()).string]), 3530 title: (prop_types_default()).string, 3531 titleId: (prop_types_default()).string, 3532 transform: prop_types_default().oneOfType([(prop_types_default()).string, (prop_types_default()).object]), 3533 swapOpacity: (prop_types_default()).bool, 3534 widthAuto: (prop_types_default()).bool 3535}; 3536var convertCurry = convert.bind(null, react.createElement); 3537 3538 3539 3540 3541/***/ }), 3542 3543/***/ 60762: 3544/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3545 3546 3547// EXPORTS 3548__webpack_require__.d(__webpack_exports__, { 3549 Z: function() { return /* binding */ Card_Card; } 3550}); 3551 3552// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js 3553var esm_extends = __webpack_require__(87462); 3554// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js 3555var objectWithoutPropertiesLoose = __webpack_require__(63366); 3556// EXTERNAL MODULE: ./node_modules/react/index.js 3557var react = __webpack_require__(67294); 3558// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs 3559var clsx = __webpack_require__(90512); 3560// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/composeClasses/composeClasses.js 3561var composeClasses = __webpack_require__(94780); 3562// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js 3563var styled = __webpack_require__(77527); 3564// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js 3565var DefaultPropsProvider = __webpack_require__(44001); 3566// EXTERNAL MODULE: ./node_modules/@mui/material/Paper/Paper.js + 2 modules 3567var Paper = __webpack_require__(93454); 3568// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js 3569var generateUtilityClasses = __webpack_require__(1588); 3570// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js 3571var generateUtilityClass = __webpack_require__(34867); 3572;// CONCATENATED MODULE: ./node_modules/@mui/material/Card/cardClasses.js 3573 3574 3575function getCardUtilityClass(slot) { 3576 return (0,generateUtilityClass/* default */.ZP)("MuiCard", slot); 3577} 3578const cardClasses = (0,generateUtilityClasses/* default */.Z)("MuiCard", [ 3579 "root" 3580]); 3581/* harmony default export */ var Card_cardClasses = ((/* unused pure expression or super */ null && (cardClasses))); 3582 3583// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js 3584var jsx_runtime = __webpack_require__(85893); 3585;// CONCATENATED MODULE: ./node_modules/@mui/material/Card/Card.js 3586/* __next_internal_client_entry_do_not_use__ default auto */ 3587 3588const _excluded = [ 3589 "className", 3590 "raised" 3591]; 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602const useUtilityClasses = (ownerState)=>{ 3603 const { classes } = ownerState; 3604 const slots = { 3605 root: [ 3606 "root" 3607 ] 3608 }; 3609 return (0,composeClasses/* default */.Z)(slots, getCardUtilityClass, classes); 3610}; 3611const CardRoot = (0,styled/* default */.ZP)(Paper/* default */.Z, { 3612 name: "MuiCard", 3613 slot: "Root", 3614 overridesResolver: (props, styles)=>styles.root 3615})(()=>{ 3616 return { 3617 overflow: "hidden" 3618 }; 3619}); 3620const Card = /*#__PURE__*/ react.forwardRef(function Card(inProps, ref) { 3621 const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({ 3622 props: inProps, 3623 name: "MuiCard" 3624 }); 3625 const { className, raised = false } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded); 3626 const ownerState = (0,esm_extends/* default */.Z)({}, props, { 3627 raised 3628 }); 3629 const classes = useUtilityClasses(ownerState); 3630 return /*#__PURE__*/ (0,jsx_runtime.jsx)(CardRoot, (0,esm_extends/* default */.Z)({ 3631 className: (0,clsx/* default */.Z)(classes.root, className), 3632 elevation: raised ? 8 : undefined, 3633 ref: ref, 3634 ownerState: ownerState 3635 }, other)); 3636}); 3637 false ? 0 : void 0; 3638/* harmony default export */ var Card_Card = (Card); 3639 3640 3641/***/ }), 3642 3643/***/ 71919: 3644/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 3645 3646 3647// EXPORTS 3648__webpack_require__.d(__webpack_exports__, { 3649 Z: function() { return /* binding */ CardContent_CardContent; } 3650}); 3651 3652// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js 3653var esm_extends = __webpack_require__(87462); 3654// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js 3655var objectWithoutPropertiesLoose = __webpack_require__(63366); 3656// EXTERNAL MODULE: ./node_modules/react/index.js 3657var react = __webpack_require__(67294); 3658// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs 3659var clsx = __webpack_require__(90512); 3660// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/composeClasses/composeClasses.js 3661var composeClasses = __webpack_require__(94780); 3662// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js 3663var styled = __webpack_require__(77527); 3664// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js 3665var DefaultPropsProvider = __webpack_require__(44001); 3666// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js 3667var generateUtilityClasses = __webpack_require__(1588); 3668// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js 3669var generateUtilityClass = __webpack_require__(34867); 3670;// CONCATENATED MODULE: ./node_modules/@mui/material/CardContent/cardContentClasses.js 3671 3672 3673function getCardContentUtilityClass(slot) { 3674 return (0,generateUtilityClass/* default */.ZP)("MuiCardContent", slot); 3675} 3676const cardContentClasses = (0,generateUtilityClasses/* default */.Z)("MuiCardContent", [ 3677 "root" 3678]); 3679/* harmony default export */ var CardContent_cardContentClasses = ((/* unused pure expression or super */ null && (cardContentClasses))); 3680 3681// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js 3682var jsx_runtime = __webpack_require__(85893); 3683;// CONCATENATED MODULE: ./node_modules/@mui/material/CardContent/CardContent.js 3684/* __next_internal_client_entry_do_not_use__ default auto */ 3685 3686const _excluded = [ 3687 "className", 3688 "component" 3689]; 3690 3691 3692 3693 3694 3695 3696 3697 3698const useUtilityClasses = (ownerState)=>{ 3699 const { classes } = ownerState; 3700 const slots = { 3701 root: [ 3702 "root" 3703 ] 3704 }; 3705 return (0,composeClasses/* default */.Z)(slots, getCardContentUtilityClass, classes); 3706}; 3707const CardContentRoot = (0,styled/* default */.ZP)("div", { 3708 name: "MuiCardContent", 3709 slot: "Root", 3710 overridesResolver: (props, styles)=>styles.root 3711})(()=>{ 3712 return { 3713 padding: 16, 3714 "&:last-child": { 3715 paddingBottom: 24 3716 } 3717 }; 3718}); 3719const CardContent = /*#__PURE__*/ react.forwardRef(function CardContent(inProps, ref) { 3720 const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({ 3721 props: inProps, 3722 name: "MuiCardContent" 3723 }); 3724 const { className, component = "div" } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded); 3725 const ownerState = (0,esm_extends/* default */.Z)({}, props, { 3726 component 3727 }); 3728 const classes = useUtilityClasses(ownerState); 3729 return /*#__PURE__*/ (0,jsx_runtime.jsx)(CardContentRoot, (0,esm_extends/* default */.Z)({ 3730 as: component, 3731 className: (0,clsx/* default */.Z)(classes.root, className), 3732 ownerState: ownerState, 3733 ref: ref 3734 }, other)); 3735}); 3736 false ? 0 : void 0; 3737/* harmony default export */ var CardContent_CardContent = (CardContent); 3738 3739 3740/***/ }), 3741 3742/***/ 74533: 3743/***/ (function(module) { 3744 3745module.exports = /*#__PURE__*/JSON.parse('{"description":"The iconic font, CSS, and SVG framework","keywords":["font","awesome","fontawesome","icon","svg","bootstrap"],"homepage":"https://fontawesome.com","bugs":{"url":"https://github.com/FortAwesome/Font-Awesome/issues"},"author":"The Font Awesome Team (https://github.com/orgs/FortAwesome/people)","repository":{"type":"git","url":"https://github.com/FortAwesome/Font-Awesome"},"engines":{"node":">=6"}
3745,"dependencies":{"@fortawesome/fontawesome-common-types":"6.7.2"},"version":"6.7.2","name":"@fortawesome/fontawesome-svg-core","main":"index.js","module":"index.mjs","jsnext:main":"index.mjs","style":"styles.css","license":"MIT","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","module":"./index.mjs","import":"./index.mjs","require":"./index.js","style":"./styles.css","default":"./index.js"},"./index":{"types":"./index.d.ts","module":"./index.mjs","import":"./index.mjs","require":"./index.js","default":"./index.js"},"./index.js":{"types":"./index.d.ts","module":"./index.mjs","import":"./index.mjs","require":"./index.js","default":"./index.js"},"./plugins":{"types":"./index.d.ts","module":"./plugins.mjs","import":"./plugins.mjs","default":"./plugins.mjs"},"./import.macro":"./import.macro.js","./import.macro.js":"./import.macro.js","./styles":"./styles.css","./styles.css":"./styles.css","./package.json":"./package.json"},"sideEffects":["./index.js","./index.mjs","./styles.css"]}'); 3746 3747/***/ }) 3748 3749}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.