prozilla-os
Version:
a React component library written in TypeScript for building web-based operating systems, made by Prozilla.
1,988 lines (1,927 loc) • 120 kB
JavaScript
import { App as Un, AppsConfig as Rt, useVirtualRoot as Tr, useWindowsManager as Bn, useSystemManager as Lt, useHistory as kr, useAlert as Cr, useWindowedModal as Ir, useContextMenu as Kt, Actions as Jt, ClickAction as Ie, Vector2 as Ue, Divider as Nr, VirtualRoot as Qt, DialogBox as Zt, ModalsConfig as en, DirectoryList as Mr, CODE_EXTENSIONS as Rr, utilStyles as Ft, WindowedModal as Lr, ImagePreview as tn, StorageManager as nn, VirtualFile as Fr, IMAGE_EXTENSIONS as Wn } from "@prozilla-os/core";
export * from "@prozilla-os/core";
import { jsxs as W, jsx as b } from "react/jsx-runtime";
import Hn, { useState as nt, useCallback as jr, useEffect as ht } from "react";
export * from "@prozilla-os/terminal";
export * from "@prozilla-os/text-editor";
export * from "@prozilla-os/settings";
export * from "@prozilla-os/browser";
export * from "@prozilla-os/calculator";
export * from "@prozilla-os/app-center";
const rn = () => {
};
let jt = {}, Vn = {}, qn = null, Gn = {
mark: rn,
measure: rn
};
try {
typeof window < "u" && (jt = window), typeof document < "u" && (Vn = document), typeof MutationObserver < "u" && (qn = MutationObserver), typeof performance < "u" && (Gn = performance);
} catch {
}
const {
userAgent: an = ""
} = jt.navigator || {}, de = jt, U = Vn, on = qn, Be = Gn;
de.document;
const le = !!U.documentElement && !!U.head && typeof U.addEventListener == "function" && typeof U.createElement == "function", Xn = ~an.indexOf("MSIE") || ~an.indexOf("Trident/");
var B = "classic", Kn = "duotone", G = "sharp", X = "sharp-duotone", zr = [B, Kn, G, X], Dr = {
classic: {
900: "fas",
400: "far",
normal: "far",
300: "fal",
100: "fat"
},
sharp: {
900: "fass",
400: "fasr",
300: "fasl",
100: "fast"
},
"sharp-duotone": {
900: "fasds"
}
}, sn = {
kit: {
fak: "kit",
"fa-kit": "kit"
},
"kit-duotone": {
fakd: "kit-duotone",
"fa-kit-duotone": "kit-duotone"
}
}, Yr = ["kit"], $r = /fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\-\ ]/, Ur = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i, Br = {
"Font Awesome 5 Free": {
900: "fas",
400: "far"
},
"Font Awesome 5 Pro": {
900: "fas",
400: "far",
normal: "far",
300: "fal"
},
"Font Awesome 5 Brands": {
400: "fab",
normal: "fab"
},
"Font Awesome 5 Duotone": {
900: "fad"
}
}, Wr = {
"Font Awesome 6 Free": {
900: "fas",
400: "far"
},
"Font Awesome 6 Pro": {
900: "fas",
400: "far",
normal: "far",
300: "fal",
100: "fat"
},
"Font Awesome 6 Brands": {
400: "fab",
normal: "fab"
},
"Font Awesome 6 Duotone": {
900: "fad"
},
"Font Awesome 6 Sharp": {
900: "fass",
400: "fasr",
normal: "fasr",
300: "fasl",
100: "fast"
},
"Font Awesome 6 Sharp Duotone": {
900: "fasds"
}
}, Hr = {
classic: {
"fa-brands": "fab",
"fa-duotone": "fad",
"fa-light": "fal",
"fa-regular": "far",
"fa-solid": "fas",
"fa-thin": "fat"
},
sharp: {
"fa-solid": "fass",
"fa-regular": "fasr",
"fa-light": "fasl",
"fa-thin": "fast"
},
"sharp-duotone": {
"fa-solid": "fasds"
}
}, Vr = {
classic: ["fas", "far", "fal", "fat"],
sharp: ["fass", "fasr", "fasl", "fast"],
"sharp-duotone": ["fasds"]
}, qr = {
classic: {
fab: "fa-brands",
fad: "fa-duotone",
fal: "fa-light",
far: "fa-regular",
fas: "fa-solid",
fat: "fa-thin"
},
sharp: {
fass: "fa-solid",
fasr: "fa-regular",
fasl: "fa-light",
fast: "fa-thin"
},
"sharp-duotone": {
fasds: "fa-solid"
}
}, Gr = {
classic: {
solid: "fas",
regular: "far",
light: "fal",
thin: "fat",
duotone: "fad",
brands: "fab"
},
sharp: {
solid: "fass",
regular: "fasr",
light: "fasl",
thin: "fast"
},
"sharp-duotone": {
solid: "fasds"
}
}, Jn = {
classic: {
fa: "solid",
fas: "solid",
"fa-solid": "solid",
far: "regular",
"fa-regular": "regular",
fal: "light",
"fa-light": "light",
fat: "thin",
"fa-thin": "thin",
fad: "duotone",
"fa-duotone": "duotone",
fab: "brands",
"fa-brands": "brands"
},
sharp: {
fa: "solid",
fass: "solid",
"fa-solid": "solid",
fasr: "regular",
"fa-regular": "regular",
fasl: "light",
"fa-light": "light",
fast: "thin",
"fa-thin": "thin"
},
"sharp-duotone": {
fa: "solid",
fasds: "solid",
"fa-solid": "solid"
}
}, Xr = ["solid", "regular", "light", "thin", "duotone", "brands"], Qn = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], Kr = Qn.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]), Ne = {
GROUP: "duotone-group",
SWAP_OPACITY: "swap-opacity",
PRIMARY: "primary",
SECONDARY: "secondary"
}, Jr = [...Object.keys(Vr), ...Xr, "2xs", "xs", "sm", "lg", "xl", "2xl", "beat", "border", "fade", "beat-fade", "bounce", "flip-both", "flip-horizontal", "flip-vertical", "flip", "fw", "inverse", "layers-counter", "layers-text", "layers", "li", "pull-left", "pull-right", "pulse", "rotate-180", "rotate-270", "rotate-90", "rotate-by", "shake", "spin-pulse", "spin-reverse", "spin", "stack-1x", "stack-2x", "stack", "ul", Ne.GROUP, Ne.SWAP_OPACITY, Ne.PRIMARY, Ne.SECONDARY].concat(Qn.map((e) => "".concat(e, "x"))).concat(Kr.map((e) => "w-".concat(e))), Qr = {
"Font Awesome Kit": {
400: "fak",
normal: "fak"
},
"Font Awesome Kit Duotone": {
400: "fakd",
normal: "fakd"
}
}, Zr = {
kit: {
"fa-kit": "fak"
},
"kit-duotone": {
"fa-kit-duotone": "fakd"
}
}, ea = {
kit: {
fak: "fa-kit"
},
"kit-duotone": {
fakd: "fa-kit-duotone"
}
}, cn = {
kit: {
kit: "fak"
},
"kit-duotone": {
"kit-duotone": "fakd"
}
};
const se = "___FONT_AWESOME___", gt = 16, Zn = "fa", er = "svg-inline--fa", xe = "data-fa-i2svg", yt = "data-fa-pseudo-element", ta = "data-fa-pseudo-element-pending", zt = "data-prefix", Dt = "data-icon", ln = "fontawesome-i2svg", na = "async", ra = ["HTML", "HEAD", "STYLE", "SCRIPT"], tr = (() => {
try {
return process.env.NODE_ENV === "production";
} catch {
return !1;
}
})(), nr = [B, G, X];
function ze(e) {
return new Proxy(e, {
get(t, n) {
return n in t ? t[n] : t[B];
}
});
}
const rr = {
...Jn
};
rr[B] = {
...Jn[B],
...sn.kit,
...sn["kit-duotone"]
};
const be = ze(rr), bt = {
...Gr
};
bt[B] = {
...bt[B],
...cn.kit,
...cn["kit-duotone"]
};
const Fe = ze(bt), vt = {
...qr
};
vt[B] = {
...vt[B],
...ea.kit
};
const ve = ze(vt), xt = {
...Hr
};
xt[B] = {
...xt[B],
...Zr.kit
};
const aa = ze(xt), oa = $r, ar = "fa-layers-text", ia = Ur, sa = {
...Dr
};
ze(sa);
const ca = ["class", "data-prefix", "data-icon", "data-fa-transform", "data-fa-mask"], rt = Ne, Oe = /* @__PURE__ */ new Set();
Object.keys(Fe[B]).map(Oe.add.bind(Oe));
Object.keys(Fe[G]).map(Oe.add.bind(Oe));
Object.keys(Fe[X]).map(Oe.add.bind(Oe));
const la = [...Yr, ...Jr], Re = de.FontAwesomeConfig || {};
function fa(e) {
var t = U.querySelector("script[" + e + "]");
if (t)
return t.getAttribute(e);
}
function ua(e) {
return e === "" ? !0 : e === "false" ? !1 : e === "true" ? !0 : e;
}
U && typeof U.querySelector == "function" && [["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"]].forEach((t) => {
let [n, r] = t;
const a = ua(fa(n));
a != null && (Re[r] = a);
});
const or = {
styleDefault: "solid",
familyDefault: "classic",
cssPrefix: Zn,
replacementClass: er,
autoReplaceSvg: !0,
autoAddCss: !0,
autoA11y: !0,
searchPseudoElements: !1,
observeMutations: !0,
mutateApproach: "async",
keepOriginalSource: !0,
measurePerformance: !1,
showMissingIcons: !0
};
Re.familyPrefix && (Re.cssPrefix = Re.familyPrefix);
const Pe = {
...or,
...Re
};
Pe.autoReplaceSvg || (Pe.observeMutations = !1);
const g = {};
Object.keys(or).forEach((e) => {
Object.defineProperty(g, e, {
enumerable: !0,
set: function(t) {
Pe[e] = t, Le.forEach((n) => n(g));
},
get: function() {
return Pe[e];
}
});
});
Object.defineProperty(g, "familyPrefix", {
enumerable: !0,
set: function(e) {
Pe.cssPrefix = e, Le.forEach((t) => t(g));
},
get: function() {
return Pe.cssPrefix;
}
});
de.FontAwesomeConfig = g;
const Le = [];
function da(e) {
return Le.push(e), () => {
Le.splice(Le.indexOf(e), 1);
};
}
const fe = gt, ae = {
size: 16,
x: 0,
y: 0,
rotate: 0,
flipX: !1,
flipY: !1
};
function ma(e) {
if (!e || !le)
return;
const t = U.createElement("style");
t.setAttribute("type", "text/css"), t.innerHTML = e;
const n = U.head.childNodes;
let r = null;
for (let a = n.length - 1; a > -1; a--) {
const o = n[a], s = (o.tagName || "").toUpperCase();
["STYLE", "LINK"].indexOf(s) > -1 && (r = o);
}
return U.head.insertBefore(t, r), e;
}
const pa = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
function je() {
let e = 12, t = "";
for (; e-- > 0; )
t += pa[Math.random() * 62 | 0];
return t;
}
function Te(e) {
const t = [];
for (let n = (e || []).length >>> 0; n--; )
t[n] = e[n];
return t;
}
function Yt(e) {
return e.classList ? Te(e.classList) : (e.getAttribute("class") || "").split(" ").filter((t) => t);
}
function ir(e) {
return "".concat(e).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">");
}
function ha(e) {
return Object.keys(e || {}).reduce((t, n) => t + "".concat(n, '="').concat(ir(e[n]), '" '), "").trim();
}
function Je(e) {
return Object.keys(e || {}).reduce((t, n) => t + "".concat(n, ": ").concat(e[n].trim(), ";"), "");
}
function $t(e) {
return e.size !== ae.size || e.x !== ae.x || e.y !== ae.y || e.rotate !== ae.rotate || e.flipX || e.flipY;
}
function ga(e) {
let {
transform: t,
containerWidth: n,
iconWidth: r
} = e;
const a = {
transform: "translate(".concat(n / 2, " 256)")
}, o = "translate(".concat(t.x * 32, ", ").concat(t.y * 32, ") "), s = "scale(".concat(t.size / 16 * (t.flipX ? -1 : 1), ", ").concat(t.size / 16 * (t.flipY ? -1 : 1), ") "), i = "rotate(".concat(t.rotate, " 0 0)"), c = {
transform: "".concat(o, " ").concat(s, " ").concat(i)
}, l = {
transform: "translate(".concat(r / 2 * -1, " -256)")
};
return {
outer: a,
inner: c,
path: l
};
}
function ya(e) {
let {
transform: t,
width: n = gt,
height: r = gt,
startCentered: a = !1
} = e, o = "";
return a && Xn ? o += "translate(".concat(t.x / fe - n / 2, "em, ").concat(t.y / fe - r / 2, "em) ") : a ? o += "translate(calc(-50% + ".concat(t.x / fe, "em), calc(-50% + ").concat(t.y / fe, "em)) ") : o += "translate(".concat(t.x / fe, "em, ").concat(t.y / fe, "em) "), o += "scale(".concat(t.size / fe * (t.flipX ? -1 : 1), ", ").concat(t.size / fe * (t.flipY ? -1 : 1), ") "), o += "rotate(".concat(t.rotate, "deg) "), o;
}
var ba = `:root, :host {
--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
--fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
--fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro";
--fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro";
--fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";
--fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
--fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";
--fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";
--fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";
--fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp";
--fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone";
}
svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
overflow: visible;
box-sizing: content-box;
}
.svg-inline--fa {
display: var(--fa-display, inline-block);
height: 1em;
overflow: visible;
vertical-align: -0.125em;
}
.svg-inline--fa.fa-2xs {
vertical-align: 0.1em;
}
.svg-inline--fa.fa-xs {
vertical-align: 0em;
}
.svg-inline--fa.fa-sm {
vertical-align: -0.0714285705em;
}
.svg-inline--fa.fa-lg {
vertical-align: -0.2em;
}
.svg-inline--fa.fa-xl {
vertical-align: -0.25em;
}
.svg-inline--fa.fa-2xl {
vertical-align: -0.3125em;
}
.svg-inline--fa.fa-pull-left {
margin-right: var(--fa-pull-margin, 0.3em);
width: auto;
}
.svg-inline--fa.fa-pull-right {
margin-left: var(--fa-pull-margin, 0.3em);
width: auto;
}
.svg-inline--fa.fa-li {
width: var(--fa-li-width, 2em);
top: 0.25em;
}
.svg-inline--fa.fa-fw {
width: var(--fa-fw-width, 1.25em);
}
.fa-layers svg.svg-inline--fa {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0;
}
.fa-layers-counter, .fa-layers-text {
display: inline-block;
position: absolute;
text-align: center;
}
.fa-layers {
display: inline-block;
height: 1em;
position: relative;
text-align: center;
vertical-align: -0.125em;
width: 1em;
}
.fa-layers svg.svg-inline--fa {
transform-origin: center center;
}
.fa-layers-text {
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
transform-origin: center center;
}
.fa-layers-counter {
background-color: var(--fa-counter-background-color, #ff253a);
border-radius: var(--fa-counter-border-radius, 1em);
box-sizing: border-box;
color: var(--fa-inverse, #fff);
line-height: var(--fa-counter-line-height, 1);
max-width: var(--fa-counter-max-width, 5em);
min-width: var(--fa-counter-min-width, 1.5em);
overflow: hidden;
padding: var(--fa-counter-padding, 0.25em 0.5em);
right: var(--fa-right, 0);
text-overflow: ellipsis;
top: var(--fa-top, 0);
transform: scale(var(--fa-counter-scale, 0.25));
transform-origin: top right;
}
.fa-layers-bottom-right {
bottom: var(--fa-bottom, 0);
right: var(--fa-right, 0);
top: auto;
transform: scale(var(--fa-layers-scale, 0.25));
transform-origin: bottom right;
}
.fa-layers-bottom-left {
bottom: var(--fa-bottom, 0);
left: var(--fa-left, 0);
right: auto;
top: auto;
transform: scale(var(--fa-layers-scale, 0.25));
transform-origin: bottom left;
}
.fa-layers-top-right {
top: var(--fa-top, 0);
right: var(--fa-right, 0);
transform: scale(var(--fa-layers-scale, 0.25));
transform-origin: top right;
}
.fa-layers-top-left {
left: var(--fa-left, 0);
right: auto;
top: var(--fa-top, 0);
transform: scale(var(--fa-layers-scale, 0.25));
transform-origin: top left;
}
.fa-1x {
font-size: 1em;
}
.fa-2x {
font-size: 2em;
}
.fa-3x {
font-size: 3em;
}
.fa-4x {
font-size: 4em;
}
.fa-5x {
font-size: 5em;
}
.fa-6x {
font-size: 6em;
}
.fa-7x {
font-size: 7em;
}
.fa-8x {
font-size: 8em;
}
.fa-9x {
font-size: 9em;
}
.fa-10x {
font-size: 10em;
}
.fa-2xs {
font-size: 0.625em;
line-height: 0.1em;
vertical-align: 0.225em;
}
.fa-xs {
font-size: 0.75em;
line-height: 0.0833333337em;
vertical-align: 0.125em;
}
.fa-sm {
font-size: 0.875em;
line-height: 0.0714285718em;
vertical-align: 0.0535714295em;
}
.fa-lg {
font-size: 1.25em;
line-height: 0.05em;
vertical-align: -0.075em;
}
.fa-xl {
font-size: 1.5em;
line-height: 0.0416666682em;
vertical-align: -0.125em;
}
.fa-2xl {
font-size: 2em;
line-height: 0.03125em;
vertical-align: -0.1875em;
}
.fa-fw {
text-align: center;
width: 1.25em;
}
.fa-ul {
list-style-type: none;
margin-left: var(--fa-li-margin, 2.5em);
padding-left: 0;
}
.fa-ul > li {
position: relative;
}
.fa-li {
left: calc(-1 * var(--fa-li-width, 2em));
position: absolute;
text-align: center;
width: var(--fa-li-width, 2em);
line-height: inherit;
}
.fa-border {
border-color: var(--fa-border-color, #eee);
border-radius: var(--fa-border-radius, 0.1em);
border-style: var(--fa-border-style, solid);
border-width: var(--fa-border-width, 0.08em);
padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);
}
.fa-pull-left {
float: left;
margin-right: var(--fa-pull-margin, 0.3em);
}
.fa-pull-right {
float: right;
margin-left: var(--fa-pull-margin, 0.3em);
}
.fa-beat {
animation-name: fa-beat;
animation-delay: var(--fa-animation-delay, 0s);
animation-direction: var(--fa-animation-direction, normal);
animation-duration: var(--fa-animation-duration, 1s);
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
animation-timing-function: var(--fa-animation-timing, ease-in-out);
}
.fa-bounce {
animation-name: fa-bounce;
animation-delay: var(--fa-animation-delay, 0s);
animation-direction: var(--fa-animation-direction, normal);
animation-duration: var(--fa-animation-duration, 1s);
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
}
.fa-fade {
animation-name: fa-fade;
animation-delay: var(--fa-animation-delay, 0s);
animation-direction: var(--fa-animation-direction, normal);
animation-duration: var(--fa-animation-duration, 1s);
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
}
.fa-beat-fade {
animation-name: fa-beat-fade;
animation-delay: var(--fa-animation-delay, 0s);
animation-direction: var(--fa-animation-direction, normal);
animation-duration: var(--fa-animation-duration, 1s);
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
}
.fa-flip {
animation-name: fa-flip;
animation-delay: var(--fa-animation-delay, 0s);
animation-direction: var(--fa-animation-direction, normal);
animation-duration: var(--fa-animation-duration, 1s);
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
animation-timing-function: var(--fa-animation-timing, ease-in-out);
}
.fa-shake {
animation-name: fa-shake;
animation-delay: var(--fa-animation-delay, 0s);
animation-direction: var(--fa-animation-direction, normal);
animation-duration: var(--fa-animation-duration, 1s);
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
animation-timing-function: var(--fa-animation-timing, linear);
}
.fa-spin {
animation-name: fa-spin;
animation-delay: var(--fa-animation-delay, 0s);
animation-direction: var(--fa-animation-direction, normal);
animation-duration: var(--fa-animation-duration, 2s);
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
animation-timing-function: var(--fa-animation-timing, linear);
}
.fa-spin-reverse {
--fa-animation-direction: reverse;
}
.fa-pulse,
.fa-spin-pulse {
animation-name: fa-spin;
animation-direction: var(--fa-animation-direction, normal);
animation-duration: var(--fa-animation-duration, 1s);
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
animation-timing-function: var(--fa-animation-timing, steps(8));
}
@media (prefers-reduced-motion: reduce) {
.fa-beat,
.fa-bounce,
.fa-fade,
.fa-beat-fade,
.fa-flip,
.fa-pulse,
.fa-shake,
.fa-spin,
.fa-spin-pulse {
animation-delay: -1ms;
animation-duration: 1ms;
animation-iteration-count: 1;
transition-delay: 0s;
transition-duration: 0s;
}
}
@keyframes fa-beat {
0%, 90% {
transform: scale(1);
}
45% {
transform: scale(var(--fa-beat-scale, 1.25));
}
}
@keyframes fa-bounce {
0% {
transform: scale(1, 1) translateY(0);
}
10% {
transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
}
30% {
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));
}
50% {
transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
}
57% {
transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
}
64% {
transform: scale(1, 1) translateY(0);
}
100% {
transform: scale(1, 1) translateY(0);
}
}
@keyframes fa-fade {
50% {
opacity: var(--fa-fade-opacity, 0.4);
}
}
@keyframes fa-beat-fade {
0%, 100% {
opacity: var(--fa-beat-fade-opacity, 0.4);
transform: scale(1);
}
50% {
opacity: 1;
transform: scale(var(--fa-beat-fade-scale, 1.125));
}
}
@keyframes fa-flip {
50% {
transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
}
}
@keyframes fa-shake {
0% {
transform: rotate(-15deg);
}
4% {
transform: rotate(15deg);
}
8%, 24% {
transform: rotate(-18deg);
}
12%, 28% {
transform: rotate(18deg);
}
16% {
transform: rotate(-22deg);
}
20% {
transform: rotate(22deg);
}
32% {
transform: rotate(-12deg);
}
36% {
transform: rotate(12deg);
}
40%, 100% {
transform: rotate(0deg);
}
}
@keyframes fa-spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.fa-rotate-90 {
transform: rotate(90deg);
}
.fa-rotate-180 {
transform: rotate(180deg);
}
.fa-rotate-270 {
transform: rotate(270deg);
}
.fa-flip-horizontal {
transform: scale(-1, 1);
}
.fa-flip-vertical {
transform: scale(1, -1);
}
.fa-flip-both,
.fa-flip-horizontal.fa-flip-vertical {
transform: scale(-1, -1);
}
.fa-rotate-by {
transform: rotate(var(--fa-rotate-angle, 0));
}
.fa-stack {
display: inline-block;
vertical-align: middle;
height: 2em;
position: relative;
width: 2.5em;
}
.fa-stack-1x,
.fa-stack-2x {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0;
z-index: var(--fa-stack-z-index, auto);
}
.svg-inline--fa.fa-stack-1x {
height: 1em;
width: 1.25em;
}
.svg-inline--fa.fa-stack-2x {
height: 2em;
width: 2.5em;
}
.fa-inverse {
color: var(--fa-inverse, #fff);
}
.sr-only,
.fa-sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
.sr-only-focusable:not(:focus),
.fa-sr-only-focusable:not(:focus) {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
.svg-inline--fa .fa-primary {
fill: var(--fa-primary-color, currentColor);
opacity: var(--fa-primary-opacity, 1);
}
.svg-inline--fa .fa-secondary {
fill: var(--fa-secondary-color, currentColor);
opacity: var(--fa-secondary-opacity, 0.4);
}
.svg-inline--fa.fa-swap-opacity .fa-primary {
opacity: var(--fa-secondary-opacity, 0.4);
}
.svg-inline--fa.fa-swap-opacity .fa-secondary {
opacity: var(--fa-primary-opacity, 1);
}
.svg-inline--fa mask .fa-primary,
.svg-inline--fa mask .fa-secondary {
fill: black;
}
.fad.fa-inverse,
.fa-duotone.fa-inverse {
color: var(--fa-inverse, #fff);
}`;
function sr() {
const e = Zn, t = er, n = g.cssPrefix, r = g.replacementClass;
let a = ba;
if (n !== e || r !== t) {
const o = new RegExp("\\.".concat(e, "\\-"), "g"), s = new RegExp("\\--".concat(e, "\\-"), "g"), i = new RegExp("\\.".concat(t), "g");
a = a.replace(o, ".".concat(n, "-")).replace(s, "--".concat(n, "-")).replace(i, ".".concat(r));
}
return a;
}
let fn = !1;
function at() {
g.autoAddCss && !fn && (ma(sr()), fn = !0);
}
var va = {
mixout() {
return {
dom: {
css: sr,
insertCss: at
}
};
},
hooks() {
return {
beforeDOMElementCreation() {
at();
},
beforeI2svg() {
at();
}
};
}
};
const ce = de || {};
ce[se] || (ce[se] = {});
ce[se].styles || (ce[se].styles = {});
ce[se].hooks || (ce[se].hooks = {});
ce[se].shims || (ce[se].shims = []);
var oe = ce[se];
const cr = [], lr = function() {
U.removeEventListener("DOMContentLoaded", lr), Ge = 1, cr.map((e) => e());
};
let Ge = !1;
le && (Ge = (U.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(U.readyState), Ge || U.addEventListener("DOMContentLoaded", lr));
function xa(e) {
le && (Ge ? setTimeout(e, 0) : cr.push(e));
}
function De(e) {
const {
tag: t,
attributes: n = {},
children: r = []
} = e;
return typeof e == "string" ? ir(e) : "<".concat(t, " ").concat(ha(n), ">").concat(r.map(De).join(""), "</").concat(t, ">");
}
function un(e, t, n) {
if (e && e[t] && e[t][n])
return {
prefix: t,
iconName: n,
icon: e[t][n]
};
}
var ot = function(t, n, r, a) {
var o = Object.keys(t), s = o.length, i = n, c, l, f;
for (r === void 0 ? (c = 1, f = t[o[0]]) : (c = 0, f = r); c < s; c++)
l = o[c], f = i(f, t[l], l, t);
return f;
};
function _a(e) {
const t = [];
let n = 0;
const r = e.length;
for (; n < r; ) {
const a = e.charCodeAt(n++);
if (a >= 55296 && a <= 56319 && n < r) {
const o = e.charCodeAt(n++);
(o & 64512) == 56320 ? t.push(((a & 1023) << 10) + (o & 1023) + 65536) : (t.push(a), n--);
} else
t.push(a);
}
return t;
}
function _t(e) {
const t = _a(e);
return t.length === 1 ? t[0].toString(16) : null;
}
function Ea(e, t) {
const n = e.length;
let r = e.charCodeAt(t), a;
return r >= 55296 && r <= 56319 && n > t + 1 && (a = e.charCodeAt(t + 1), a >= 56320 && a <= 57343) ? (r - 55296) * 1024 + a - 56320 + 65536 : r;
}
function dn(e) {
return Object.keys(e).reduce((t, n) => {
const r = e[n];
return !!r.icon ? t[r.iconName] = r.icon : t[n] = r, t;
}, {});
}
function Et(e, t) {
let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
const {
skipHooks: r = !1
} = n, a = dn(t);
typeof oe.hooks.addPack == "function" && !r ? oe.hooks.addPack(e, dn(t)) : oe.styles[e] = {
...oe.styles[e] || {},
...a
}, e === "fas" && Et("fa", t);
}
const {
styles: ye,
shims: wa
} = oe, Aa = {
[B]: Object.values(ve[B]),
[G]: Object.values(ve[G]),
[X]: Object.values(ve[X])
};
let Ut = null, fr = {}, ur = {}, dr = {}, mr = {}, pr = {};
const Sa = {
[B]: Object.keys(be[B]),
[G]: Object.keys(be[G]),
[X]: Object.keys(be[X])
};
function Oa(e) {
return ~la.indexOf(e);
}
function Pa(e, t) {
const n = t.split("-"), r = n[0], a = n.slice(1).join("-");
return r === e && a !== "" && !Oa(a) ? a : null;
}
const hr = () => {
const e = (r) => ot(ye, (a, o, s) => (a[s] = ot(o, r, {}), a), {});
fr = e((r, a, o) => (a[3] && (r[a[3]] = o), a[2] && a[2].filter((i) => typeof i == "number").forEach((i) => {
r[i.toString(16)] = o;
}), r)), ur = e((r, a, o) => (r[o] = o, a[2] && a[2].filter((i) => typeof i == "string").forEach((i) => {
r[i] = o;
}), r)), pr = e((r, a, o) => {
const s = a[2];
return r[o] = o, s.forEach((i) => {
r[i] = o;
}), r;
});
const t = "far" in ye || g.autoFetchSvg, n = ot(wa, (r, a) => {
const o = a[0];
let s = a[1];
const i = a[2];
return s === "far" && !t && (s = "fas"), typeof o == "string" && (r.names[o] = {
prefix: s,
iconName: i
}), typeof o == "number" && (r.unicodes[o.toString(16)] = {
prefix: s,
iconName: i
}), r;
}, {
names: {},
unicodes: {}
});
dr = n.names, mr = n.unicodes, Ut = Qe(g.styleDefault, {
family: g.familyDefault
});
};
da((e) => {
Ut = Qe(e.styleDefault, {
family: g.familyDefault
});
});
hr();
function Bt(e, t) {
return (fr[e] || {})[t];
}
function Ta(e, t) {
return (ur[e] || {})[t];
}
function ue(e, t) {
return (pr[e] || {})[t];
}
function gr(e) {
return dr[e] || {
prefix: null,
iconName: null
};
}
function ka(e) {
const t = mr[e], n = Bt("fas", e);
return t || (n ? {
prefix: "fas",
iconName: n
} : null) || {
prefix: null,
iconName: null
};
}
function me() {
return Ut;
}
const Wt = () => ({
prefix: null,
iconName: null,
rest: []
});
function Qe(e) {
let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
const {
family: n = B
} = t, r = be[n][e], a = Fe[n][e] || Fe[n][r], o = e in oe.styles ? e : null;
return a || o || null;
}
const Ca = {
[B]: Object.keys(ve[B]),
[G]: Object.keys(ve[G]),
[X]: Object.keys(ve[X])
};
function Ze(e) {
let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
const {
skipLookups: n = !1
} = t, r = {
[B]: "".concat(g.cssPrefix, "-").concat(B),
[G]: "".concat(g.cssPrefix, "-").concat(G),
[X]: "".concat(g.cssPrefix, "-").concat(X)
};
let a = null, o = B;
const s = zr.filter((c) => c !== Kn);
s.forEach((c) => {
(e.includes(r[c]) || e.some((l) => Ca[c].includes(l))) && (o = c);
});
const i = e.reduce((c, l) => {
const f = Pa(g.cssPrefix, l);
if (ye[l] ? (l = Aa[o].includes(l) ? aa[o][l] : l, a = l, c.prefix = l) : Sa[o].indexOf(l) > -1 ? (a = l, c.prefix = Qe(l, {
family: o
})) : f ? c.iconName = f : l !== g.replacementClass && !s.some((p) => l === r[p]) && c.rest.push(l), !n && c.prefix && c.iconName) {
const p = a === "fa" ? gr(c.iconName) : {}, y = ue(c.prefix, c.iconName);
p.prefix && (a = null), c.iconName = p.iconName || y || c.iconName, c.prefix = p.prefix || c.prefix, c.prefix === "far" && !ye.far && ye.fas && !g.autoFetchSvg && (c.prefix = "fas");
}
return c;
}, Wt());
return (e.includes("fa-brands") || e.includes("fab")) && (i.prefix = "fab"), (e.includes("fa-duotone") || e.includes("fad")) && (i.prefix = "fad"), !i.prefix && o === G && (ye.fass || g.autoFetchSvg) && (i.prefix = "fass", i.iconName = ue(i.prefix, i.iconName) || i.iconName), !i.prefix && o === X && (ye.fasds || g.autoFetchSvg) && (i.prefix = "fasds", i.iconName = ue(i.prefix, i.iconName) || i.iconName), (i.prefix === "fa" || a === "fa") && (i.prefix = me() || "fas"), i;
}
class Ia {
constructor() {
this.definitions = {};
}
add() {
for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++)
n[r] = arguments[r];
const a = n.reduce(this._pullDefinitions, {});
Object.keys(a).forEach((o) => {
this.definitions[o] = {
...this.definitions[o] || {},
...a[o]
}, Et(o, a[o]);
const s = ve[B][o];
s && Et(s, a[o]), hr();
});
}
reset() {
this.definitions = {};
}
_pullDefinitions(t, n) {
const r = n.prefix && n.iconName && n.icon ? {
0: n
} : n;
return Object.keys(r).map((a) => {
const {
prefix: o,
iconName: s,
icon: i
} = r[a], c = i[2];
t[o] || (t[o] = {}), c.length > 0 && c.forEach((l) => {
typeof l == "string" && (t[o][l] = i);
}), t[o][s] = i;
}), t;
}
}
let mn = [], we = {};
const Se = {}, Na = Object.keys(Se);
function Ma(e, t) {
let {
mixoutsTo: n
} = t;
return mn = e, we = {}, Object.keys(Se).forEach((r) => {
Na.indexOf(r) === -1 && delete Se[r];
}), mn.forEach((r) => {
const a = r.mixout ? r.mixout() : {};
if (Object.keys(a).forEach((o) => {
typeof a[o] == "function" && (n[o] = a[o]), typeof a[o] == "object" && Object.keys(a[o]).forEach((s) => {
n[o] || (n[o] = {}), n[o][s] = a[o][s];
});
}), r.hooks) {
const o = r.hooks();
Object.keys(o).forEach((s) => {
we[s] || (we[s] = []), we[s].push(o[s]);
});
}
r.provides && r.provides(Se);
}), n;
}
function wt(e, t) {
for (var n = arguments.length, r = new Array(n > 2 ? n - 2 : 0), a = 2; a < n; a++)
r[a - 2] = arguments[a];
return (we[e] || []).forEach((s) => {
t = s.apply(null, [t, ...r]);
}), t;
}
function _e(e) {
for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++)
n[r - 1] = arguments[r];
(we[e] || []).forEach((o) => {
o.apply(null, n);
});
}
function pe() {
const e = arguments[0], t = Array.prototype.slice.call(arguments, 1);
return Se[e] ? Se[e].apply(null, t) : void 0;
}
function At(e) {
e.prefix === "fa" && (e.prefix = "fas");
let {
iconName: t
} = e;
const n = e.prefix || me();
if (t)
return t = ue(n, t) || t, un(yr.definitions, n, t) || un(oe.styles, n, t);
}
const yr = new Ia(), Ra = () => {
g.autoReplaceSvg = !1, g.observeMutations = !1, _e("noAuto");
}, La = {
i2svg: function() {
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
return le ? (_e("beforeI2svg", e), pe("pseudoElements2svg", e), pe("i2svg", e)) : Promise.reject(new Error("Operation requires a DOM of some kind."));
},
watch: function() {
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
const {
autoReplaceSvgRoot: t
} = e;
g.autoReplaceSvg === !1 && (g.autoReplaceSvg = !0), g.observeMutations = !0, xa(() => {
ja({
autoReplaceSvgRoot: t
}), _e("watch", e);
});
}
}, Fa = {
icon: (e) => {
if (e === null)
return null;
if (typeof e == "object" && e.prefix && e.iconName)
return {
prefix: e.prefix,
iconName: ue(e.prefix, e.iconName) || e.iconName
};
if (Array.isArray(e) && e.length === 2) {
const t = e[1].indexOf("fa-") === 0 ? e[1].slice(3) : e[1], n = Qe(e[0]);
return {
prefix: n,
iconName: ue(n, t) || t
};
}
if (typeof e == "string" && (e.indexOf("".concat(g.cssPrefix, "-")) > -1 || e.match(oa))) {
const t = Ze(e.split(" "), {
skipLookups: !0
});
return {
prefix: t.prefix || me(),
iconName: ue(t.prefix, t.iconName) || t.iconName
};
}
if (typeof e == "string") {
const t = me();
return {
prefix: t,
iconName: ue(t, e) || e
};
}
}
}, K = {
noAuto: Ra,
config: g,
dom: La,
parse: Fa,
library: yr,
findIconDefinition: At,
toHtml: De
}, ja = function() {
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
const {
autoReplaceSvgRoot: t = U
} = e;
(Object.keys(oe.styles).length > 0 || g.autoFetchSvg) && le && g.autoReplaceSvg && K.dom.i2svg({
node: t
});
};
function et(e, t) {
return Object.defineProperty(e, "abstract", {
get: t
}), Object.defineProperty(e, "html", {
get: function() {
return e.abstract.map((n) => De(n));
}
}), Object.defineProperty(e, "node", {
get: function() {
if (!le) return;
const n = U.createElement("div");
return n.innerHTML = e.html, n.children;
}
}), e;
}
function za(e) {
let {
children: t,
main: n,
mask: r,
attributes: a,
styles: o,
transform: s
} = e;
if ($t(s) && n.found && !r.found) {
const {
width: i,
height: c
} = n, l = {
x: i / c / 2,
y: 0.5
};
a.style = Je({
...o,
"transform-origin": "".concat(l.x + s.x / 16, "em ").concat(l.y + s.y / 16, "em")
});
}
return [{
tag: "svg",
attributes: a,
children: t
}];
}
function Da(e) {
let {
prefix: t,
iconName: n,
children: r,
attributes: a,
symbol: o
} = e;
const s = o === !0 ? "".concat(t, "-").concat(g.cssPrefix, "-").concat(n) : o;
return [{
tag: "svg",
attributes: {
style: "display: none;"
},
children: [{
tag: "symbol",
attributes: {
...a,
id: s
},
children: r
}]
}];
}
function Ht(e) {
const {
icons: {
main: t,
mask: n
},
prefix: r,
iconName: a,
transform: o,
symbol: s,
title: i,
maskId: c,
titleId: l,
extra: f,
watchable: p = !1
} = e, {
width: y,
height: v
} = n.found ? n : t, L = r === "fak", E = [g.replacementClass, a ? "".concat(g.cssPrefix, "-").concat(a) : ""].filter((d) => f.classes.indexOf(d) === -1).filter((d) => d !== "" || !!d).concat(f.classes).join(" ");
let x = {
children: [],
attributes: {
...f.attributes,
"data-prefix": r,
"data-icon": a,
class: E,
role: f.attributes.role || "img",
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 ".concat(y, " ").concat(v)
}
};
const C = L && !~f.classes.indexOf("fa-fw") ? {
width: "".concat(y / v * 16 * 0.0625, "em")
} : {};
p && (x.attributes[xe] = ""), i && (x.children.push({
tag: "title",
attributes: {
id: x.attributes["aria-labelledby"] || "title-".concat(l || je())
},
children: [i]
}), delete x.attributes.title);
const $ = {
...x,
prefix: r,
iconName: a,
main: t,
mask: n,
maskId: c,
transform: o,
symbol: s,
styles: {
...C,
...f.styles
}
}, {
children: T,
attributes: F
} = n.found && t.found ? pe("generateAbstractMask", $) || {
children: [],
attributes: {}
} : pe("generateAbstractIcon", $) || {
children: [],
attributes: {}
};
return $.children = T, $.attributes = F, s ? Da($) : za($);
}
function pn(e) {
const {
content: t,
width: n,
height: r,
transform: a,
title: o,
extra: s,
watchable: i = !1
} = e, c = {
...s.attributes,
...o ? {
title: o
} : {},
class: s.classes.join(" ")
};
i && (c[xe] = "");
const l = {
...s.styles
};
$t(a) && (l.transform = ya({
transform: a,
startCentered: !0,
width: n,
height: r
}), l["-webkit-transform"] = l.transform);
const f = Je(l);
f.length > 0 && (c.style = f);
const p = [];
return p.push({
tag: "span",
attributes: c,
children: [t]
}), o && p.push({
tag: "span",
attributes: {
class: "sr-only"
},
children: [o]
}), p;
}
function Ya(e) {
const {
content: t,
title: n,
extra: r
} = e, a = {
...r.attributes,
...n ? {
title: n
} : {},
class: r.classes.join(" ")
}, o = Je(r.styles);
o.length > 0 && (a.style = o);
const s = [];
return s.push({
tag: "span",
attributes: a,
children: [t]
}), n && s.push({
tag: "span",
attributes: {
class: "sr-only"
},
children: [n]
}), s;
}
const {
styles: it
} = oe;
function St(e) {
const t = e[0], n = e[1], [r] = e.slice(4);
let a = null;
return Array.isArray(r) ? a = {
tag: "g",
attributes: {
class: "".concat(g.cssPrefix, "-").concat(rt.GROUP)
},
children: [{
tag: "path",
attributes: {
class: "".concat(g.cssPrefix, "-").concat(rt.SECONDARY),
fill: "currentColor",
d: r[0]
}
}, {
tag: "path",
attributes: {
class: "".concat(g.cssPrefix, "-").concat(rt.PRIMARY),
fill: "currentColor",
d: r[1]
}
}]
} : a = {
tag: "path",
attributes: {
fill: "currentColor",
d: r
}
}, {
found: !0,
width: t,
height: n,
icon: a
};
}
const $a = {
found: !1,
width: 512,
height: 512
};
function Ua(e, t) {
!tr && !g.showMissingIcons && e && console.error('Icon with name "'.concat(e, '" and prefix "').concat(t, '" is missing.'));
}
function Ot(e, t) {
let n = t;
return t === "fa" && g.styleDefault !== null && (t = me()), new Promise((r, a) => {
if (n === "fa") {
const o = gr(e) || {};
e = o.iconName || e, t = o.prefix || t;
}
if (e && t && it[t] && it[t][e]) {
const o = it[t][e];
return r(St(o));
}
Ua(e, t), r({
...$a,
icon: g.showMissingIcons && e ? pe("missingIconAbstract") || {} : {}
});
});
}
const hn = () => {
}, Pt = g.measurePerformance && Be && Be.mark && Be.measure ? Be : {
mark: hn,
measure: hn
}, Me = 'FA "6.6.0"', Ba = (e) => (Pt.mark("".concat(Me, " ").concat(e, " begins")), () => br(e)), br = (e) => {
Pt.mark("".concat(Me, " ").concat(e, " ends")), Pt.measure("".concat(Me, " ").concat(e), "".concat(Me, " ").concat(e, " begins"), "".concat(Me, " ").concat(e, " ends"));
};
var Vt = {
begin: Ba,
end: br
};
const Ve = () => {
};
function gn(e) {
return typeof (e.getAttribute ? e.getAttribute(xe) : null) == "string";
}
function Wa(e) {
const t = e.getAttribute ? e.getAttribute(zt) : null, n = e.getAttribute ? e.getAttribute(Dt) : null;
return t && n;
}
function Ha(e) {
return e && e.classList && e.classList.contains && e.classList.contains(g.replacementClass);
}
function Va() {
return g.autoReplaceSvg === !0 ? qe.replace : qe[g.autoReplaceSvg] || qe.replace;
}
function qa(e) {
return U.createElementNS("http://www.w3.org/2000/svg", e);
}
function Ga(e) {
return U.createElement(e);
}
function vr(e) {
let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
const {
ceFn: n = e.tag === "svg" ? qa : Ga
} = t;
if (typeof e == "string")
return U.createTextNode(e);
const r = n(e.tag);
return Object.keys(e.attributes || []).forEach(function(o) {
r.setAttribute(o, e.attributes[o]);
}), (e.children || []).forEach(function(o) {
r.appendChild(vr(o, {
ceFn: n
}));
}), r;
}
function Xa(e) {
let t = " ".concat(e.outerHTML, " ");
return t = "".concat(t, "Font Awesome fontawesome.com "), t;
}
const qe = {
replace: function(e) {
const t = e[0];
if (t.parentNode)
if (e[1].forEach((n) => {
t.parentNode.insertBefore(vr(n), t);
}), t.getAttribute(xe) === null && g.keepOriginalSource) {
let n = U.createComment(Xa(t));
t.parentNode.replaceChild(n, t);
} else
t.remove();
},
nest: function(e) {
const t = e[0], n = e[1];
if (~Yt(t).indexOf(g.replacementClass))
return qe.replace(e);
const r = new RegExp("".concat(g.cssPrefix, "-.*"));
if (delete n[0].attributes.id, n[0].attributes.class) {
const o = n[0].attributes.class.split(" ").reduce((s, i) => (i === g.replacementClass || i.match(r) ? s.toSvg.push(i) : s.toNode.push(i), s), {
toNode: [],
toSvg: []
});
n[0].attributes.class = o.toSvg.join(" "), o.toNode.length === 0 ? t.removeAttribute("class") : t.setAttribute("class", o.toNode.join(" "));
}
const a = n.map((o) => De(o)).join(`
`);
t.setAttribute(xe, ""), t.innerHTML = a;
}
};
function yn(e) {
e();
}
function xr(e, t) {
const n = typeof t == "function" ? t : Ve;
if (e.length === 0)
n();
else {
let r = yn;
g.mutateApproach === na && (r = de.requestAnimationFrame || yn), r(() => {
const a = Va(), o = Vt.begin("mutate");
e.map(a), o(), n();
});
}
}
let qt = !1;
function _r() {
qt = !0;
}
function Tt() {
qt = !1;
}
let Xe = null;
function bn(e) {
if (!on || !g.observeMutations)
return;
const {
treeCallback: t = Ve,
nodeCallback: n = Ve,
pseudoElementsCallback: r = Ve,
observeMutationsRoot: a = U
} = e;
Xe = new on((o) => {
if (qt) return;
const s = me();
Te(o).forEach((i) => {
if (i.type === "childList" && i.addedNodes.length > 0 && !gn(i.addedNodes[0]) && (g.searchPseudoElements && r(i.target), t(i.target)), i.type === "attributes" && i.target.parentNode && g.searchPseudoElements && r(i.target.parentNode), i.type === "attributes" && gn(i.target) && ~ca.indexOf(i.attributeName))
if (i.attributeName === "class" && Wa(i.target)) {
const {
prefix: c,
iconName: l
} = Ze(Yt(i.target));
i.target.setAttribute(zt, c || s), l && i.target.setAttribute(Dt, l);
} else Ha(i.target) && n(i.target);
});
}), le && Xe.observe(a, {
childList: !0,
attributes: !0,
characterData: !0,
subtree: !0
});
}
function Ka() {
Xe && Xe.disconnect();
}
function Ja(e) {
const t = e.getAttribute("style");
let n = [];
return t && (n = t.split(";").reduce((r, a) => {
const o = a.split(":"), s = o[0], i = o.slice(1);
return s && i.length > 0 && (r[s] = i.join(":").trim()), r;
}, {})), n;
}
function Qa(e) {
const t = e.getAttribute("data-prefix"), n = e.getAttribute("data-icon"), r = e.innerText !== void 0 ? e.innerText.trim() : "";
let a = Ze(Yt(e));
return a.prefix || (a.prefix = me()), t && n && (a.prefix = t, a.iconName = n), a.iconName && a.prefix || (a.prefix && r.length > 0 && (a.iconName = Ta(a.prefix, e.innerText) || Bt(a.prefix, _t(e.innerText))), !a.iconName && g.autoFetchSvg && e.firstChild && e.firstChild.nodeType === Node.TEXT_NODE && (a.iconName = e.firstChild.data)), a;
}
function Za(e) {
const t = Te(e.attributes).reduce((a, o) => (a.name !== "class" && a.name !== "style" && (a[o.name] = o.value), a), {}), n = e.getAttribute("title"), r = e.getAttribute("data-fa-title-id");
return g.autoA11y && (n ? t["aria-labelledby"] = "".concat(g.replacementClass, "-title-").concat(r || je()) : (t["aria-hidden"] = "true", t.focusable = "false")), t;
}
function eo() {
return {
iconName: null,
title: null,
titleId: null,
prefix: null,
transform: ae,
symbol: !1,
mask: {
iconName: null,
prefix: null,
rest: []
},
maskId: null,
extra: {
classes: [],
styles: {},
attributes: {}
}
};
}
function vn(e) {
let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
styleParser: !0
};
const {
iconName: n,
prefix: r,
rest: a
} = Qa(e), o = Za(e), s = wt("parseNodeAttributes", {}, e);
let i = t.styleParser ? Ja(e) : [];
return {
iconName: n,
title: e.getAttribute("title"),
titleId: e.getAttribute("data-fa-title-id"),
prefix: r,
transform: ae,
mask: {
iconName: null,
prefix: null,
rest: []
},
maskId: null,
symbol: !1,
extra: {
classes: a,
styles: i,
attributes: o
},
...s
};
}
const {
styles: to
} = oe;
function Er(e) {
const t = g.autoReplaceSvg === "nest" ? vn(e, {
styleParser: !1
}) : vn(e);
return ~t.extra.classes.indexOf(ar) ? pe("generateLayersText", e, t) : pe("generateSvgReplacementMutation", e, t);
}
let ie = /* @__PURE__ */ new Set();
nr.map((e) => {
ie.add("fa-".concat(e));
});
Object.keys(be[B]).map(ie.add.bind(ie));
Object.keys(be[G]).map(ie.add.bind(ie));
Object.keys(be[X]).map(ie.add.bind(ie));
ie = [...ie];
function xn(e) {
let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
if (!le) return Promise.resolve();
const n = U.documentElement.classList, r = (f) => n.add("".concat(ln, "-").concat(f)), a = (f) => n.remove("".concat(ln, "-").concat(f)), o = g.autoFetchSvg ? ie : nr.map((f) => "fa-".concat(f)).concat(Object.keys(to));
o.includes("fa") || o.push("fa");
const s = [".".concat(ar, ":not([").concat(xe, "])")].concat(o.map((f) => ".".concat(f, ":not([").concat(xe, "])"))).join(", ");
if (s.length === 0)
return Promise.resolve();
let i = [];
try {
i = Te(e.querySelectorAll(s));
} catch {
}
if (i.length > 0)
r("pending"), a("complete");
else
return Promise.resolve();
const c = Vt.begin("onTree"), l = i.reduce((f, p) => {
try {
const y = Er(p);
y && f.push(y);
} catch (y) {
tr || y.name === "MissingIcon" && console.error(y);
}
return f;
}, []);
return new Promise((f, p) => {
Promise.all(l).then((y) => {
xr(y, () => {
r("active"), r("complete"), a("pending"), typeof t == "function" && t(), c(), f();
});
}).catch((y) => {
c(), p(y);
});
});
}
function no(e) {
let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
Er(e).then((n) => {
n && xr([n], t);
});
}
function ro(e) {
return function(t) {
let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
const r = (t || {}).icon ? t : At(t || {});
let {
mask: a
} = n;
return a && (a = (a || {}).icon ? a : At(a || {})), e(r, {
...n,
mask: a
});
};
}
const ao = function(e) {
let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
const {
transform: n = ae,
symbol: r = !1,
mask: a = null,
maskId: o = null,
title: s = null,
titleId: i = null,
classes: c = [],
attributes: l = {},
styles: f = {}
} = t;
if (!e) return;
const {
prefix: p,
iconName: y,
icon: v
} = e;
return et({
type: "icon",
...e
}, () => (_e("beforeDOMElementCreation", {
iconDefinition: e,
params: t
}), g.autoA11y && (s ? l["aria-labelledby"] = "".concat(g.replacementClass, "-title-").concat(i || je()) : (l["aria-hidden"] = "true", l.focusable = "false")), Ht({
icons: {
main: St(v),
mask: a ? St(a.icon) : {
found: !1,
width: null,
height: null,
icon: {}
}
},
prefix: p,
iconName: y,
transform: {
...ae,
...n
},
symbol: r,
title: s,
maskId: o,
titleId: i,
extra: {
attributes: l,
styles: f,
classes: c
}
})));
};
var oo = {
mixout() {
return {
icon: ro(ao)
};
},
hooks() {
return {
mutationObserverCallbacks(e) {
return e.treeCallback = xn, e.nodeCallback = no, e;
}
};
},
provides(e) {
e.i2svg = function(t) {
const {
node: n = U,
callback: r = () => {
}
} = t;
return xn(n, r);
}, e.generateSvgReplacementMutation = function(t, n) {
const {
iconName: r,
title: a,
titleId: o,
prefix: s,
transform: i,
symbol: c,
mask: l,
maskId: f,
extra: p
} = n;
return new Promise((y, v) => {
Promise.all([Ot(r, s), l.icon