{"version":3,"sources":["node_modules/@fortawesome/fontawesome-svg-core/index.mjs","node_modules/@fortawesome/angular-fontawesome/fesm2022/angular-fontawesome.mjs","node_modules/@angular/animations/fesm2022/animations.mjs","node_modules/ngx-toastr/fesm2020/ngx-toastr.mjs"],"sourcesContent":["const noop = () => {};\nlet _WINDOW = {};\nlet _DOCUMENT = {};\nlet _MUTATION_OBSERVER = null;\nlet _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\nconst {\n userAgent = ''\n} = _WINDOW.navigator || {};\nconst WINDOW = _WINDOW;\nconst DOCUMENT = _DOCUMENT;\nconst MUTATION_OBSERVER = _MUTATION_OBSERVER;\nconst PERFORMANCE = _PERFORMANCE;\nconst IS_BROWSER = !!WINDOW.document;\nconst IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nconst IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\nvar a = \"classic\",\n t = \"duotone\",\n r = \"sharp\",\n o = \"sharp-duotone\",\n c = [a, t, r, o];\nvar et$1 = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\"\n }\n};\nvar bt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ct = [\"kit\"];\nvar Dt = /fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\\-\\ ]/,\n Kt = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;\nvar ao = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n};\nvar eo = {\n \"Font Awesome 6 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 6 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 6 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 6 Duotone\": {\n 900: \"fad\"\n },\n \"Font Awesome 6 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 6 Sharp Duotone\": {\n 900: \"fasds\"\n }\n },\n lo = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\"\n }\n },\n y = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\"]\n },\n no = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\"\n }\n },\n fo = {\n classic: {\n solid: \"fas\",\n regular: \"far\",\n light: \"fal\",\n thin: \"fat\",\n duotone: \"fad\",\n brands: \"fab\"\n },\n sharp: {\n solid: \"fass\",\n regular: \"fasr\",\n light: \"fasl\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n solid: \"fasds\"\n }\n },\n ho = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fad: \"duotone\",\n \"fa-duotone\": \"duotone\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\"\n }\n },\n x$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\"],\n u$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n m$1 = u$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n t$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n yo = [...Object.keys(y), ...x$1, \"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\", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(u$1.map(o => \"\".concat(o, \"x\"))).concat(m$1.map(o => \"w-\".concat(o)));\nvar mo = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n },\n Io = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n },\n Fo = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n },\n So = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\nconst NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nconst UNITS_IN_GRID = 16;\nconst DEFAULT_CSS_PREFIX = 'fa';\nconst DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nconst DATA_FA_I2SVG = 'data-fa-i2svg';\nconst DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nconst DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nconst DATA_PREFIX = 'data-prefix';\nconst DATA_ICON = 'data-icon';\nconst HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nconst MUTATION_APPROACH_ASYNC = 'async';\nconst TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nconst PRODUCTION = (() => {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n})();\nconst FAMILIES = [a, r, o];\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get(target, prop) {\n return prop in target ? target[prop] : target[a];\n }\n });\n}\nconst _PREFIX_TO_STYLE = {\n ...ho\n};\n_PREFIX_TO_STYLE[a] = {\n ...ho[a],\n ...bt['kit'],\n ...bt['kit-duotone']\n};\nconst PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nconst _STYLE_TO_PREFIX = {\n ...fo\n};\n_STYLE_TO_PREFIX[a] = {\n ..._STYLE_TO_PREFIX[a],\n ...So['kit'],\n ...So['kit-duotone']\n};\nconst STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nconst _PREFIX_TO_LONG_STYLE = {\n ...no\n};\n_PREFIX_TO_LONG_STYLE[a] = {\n ..._PREFIX_TO_LONG_STYLE[a],\n ...Fo['kit']\n};\nconst PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nconst _LONG_STYLE_TO_PREFIX = {\n ...lo\n};\n_LONG_STYLE_TO_PREFIX[a] = {\n ..._LONG_STYLE_TO_PREFIX[a],\n ...Io['kit']\n};\nconst LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nconst ICON_SELECTION_SYNTAX_PATTERN = Dt; // eslint-disable-line no-useless-escape\n\nconst LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nconst FONT_FAMILY_PATTERN = Kt;\nconst _FONT_WEIGHT_TO_PREFIX = {\n ...et$1\n};\nconst FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nconst ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nconst DUOTONE_CLASSES = t$1;\nconst prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[a]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[r]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[o]).map(prefixes.add.bind(prefixes));\nconst RESERVED_CLASSES = [...Ct, ...yo];\nconst initial = WINDOW.FontAwesomeConfig || {};\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\n }\n}\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n 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']];\n attrs.forEach(_ref => {\n let [attr, key] = _ref;\n const val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\nconst _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\nconst _config = {\n ..._default,\n ...initial\n};\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nconst config = {};\nObject.keys(_default).forEach(key => {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function (val) {\n _config[key] = val;\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function (val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nconst _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n return () => {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\nconst d$2 = UNITS_IN_GRID;\nconst meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n const style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n const headChildren = DOCUMENT.head.childNodes;\n let beforeChild = null;\n for (let i = headChildren.length - 1; i > -1; i--) {\n const child = headChildren[i];\n const tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nconst idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n let size = 12;\n let id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n}\nfunction toArray(obj) {\n const array = [];\n for (let i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(i => i);\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce((acc, attributeName) => {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce((acc, styleName) => {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n let {\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer,\n inner,\n path\n };\n}\nfunction transformForCss(_ref2) {\n let {\n transform,\n width = UNITS_IN_GRID,\n height = UNITS_IN_GRID,\n startCentered = false\n } = _ref2;\n let val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\nvar 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-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}\\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;\\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}\\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}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\nfunction css() {\n const dcp = DEFAULT_CSS_PREFIX;\n const drc = DEFAULT_REPLACEMENT_CLASS;\n const fp = config.cssPrefix;\n const rc = config.replacementClass;\n let s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n const dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n const customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n const rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n}\nlet _cssInserted = false;\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\nvar InjectCSS = {\n mixout() {\n return {\n dom: {\n css,\n insertCss: ensureCss\n }\n };\n },\n hooks() {\n return {\n beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\nconst w$1 = WINDOW || {};\nif (!w$1[NAMESPACE_IDENTIFIER]) w$1[NAMESPACE_IDENTIFIER] = {};\nif (!w$1[NAMESPACE_IDENTIFIER].styles) w$1[NAMESPACE_IDENTIFIER].styles = {};\nif (!w$1[NAMESPACE_IDENTIFIER].hooks) w$1[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w$1[NAMESPACE_IDENTIFIER].shims) w$1[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w$1[NAMESPACE_IDENTIFIER];\nconst functions = [];\nconst listener = function () {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(fn => fn());\n};\nlet loaded = false;\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\nfunction domready(fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\nfunction toHtml(abstractNodes) {\n const {\n tag,\n attributes = {},\n children = []\n } = abstractNodes;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix,\n iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n const extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\nfunction toHex(unicode) {\n const decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n const size = string.length;\n let first = string.charCodeAt(index);\n let second;\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce((acc, iconName) => {\n const icon = icons[iconName];\n const expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n}\nfunction defineIcons(prefix, icons) {\n let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n skipHooks = false\n } = params;\n const normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = {\n ...(namespace.styles[prefix] || {}),\n ...normalized\n };\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\nconst {\n styles,\n shims\n} = namespace;\nconst LONG_STYLE = {\n [a]: Object.values(PREFIX_TO_LONG_STYLE[a]),\n [r]: Object.values(PREFIX_TO_LONG_STYLE[r]),\n [o]: Object.values(PREFIX_TO_LONG_STYLE[o])\n};\nlet _defaultUsablePrefix = null;\nlet _byUnicode = {};\nlet _byLigature = {};\nlet _byOldName = {};\nlet _byOldUnicode = {};\nlet _byAlias = {};\nconst PREFIXES = {\n [a]: Object.keys(PREFIX_TO_STYLE[a]),\n [r]: Object.keys(PREFIX_TO_STYLE[r]),\n [o]: Object.keys(PREFIX_TO_STYLE[o])\n};\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction getIconName(cssPrefix, cls) {\n const parts = cls.split('-');\n const prefix = parts[0];\n const iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nconst build = () => {\n const lookup = reducer => {\n return reduce(styles, (o$$1, style, prefix) => {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup((acc, icon, iconName) => {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(alias => {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup((acc, icon, iconName) => {\n acc[iconName] = iconName;\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup((acc, icon, iconName) => {\n const aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n const hasRegular = 'far' in styles || config.autoFetchSvg;\n const shimLookups = reduce(shims, (acc, shim) => {\n const maybeNameMaybeUnicode = shim[0];\n let prefix = shim[1];\n const iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix,\n iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix,\n iconName\n };\n }\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(c$$1 => {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n const oldUnicode = _byOldUnicode[unicode];\n const newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nconst emptyCanonicalIcon = () => {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n family = a\n } = params;\n const style = PREFIX_TO_STYLE[family][styleOrPrefix];\n const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n const result = prefix || defined || null;\n return result;\n}\nconst PREFIXES_FOR_FAMILY = {\n [a]: Object.keys(PREFIX_TO_LONG_STYLE[a]),\n [r]: Object.keys(PREFIX_TO_LONG_STYLE[r]),\n [o]: Object.keys(PREFIX_TO_LONG_STYLE[o])\n};\nfunction getCanonicalIcon(values) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n skipLookups = false\n } = params;\n const famProps = {\n [a]: \"\".concat(config.cssPrefix, \"-\").concat(a),\n [r]: \"\".concat(config.cssPrefix, \"-\").concat(r),\n [o]: \"\".concat(config.cssPrefix, \"-\").concat(o)\n };\n let givenPrefix = null;\n let family = a;\n const nonDuotoneFamilyIds = c.filter(familyId => familyId !== t);\n nonDuotoneFamilyIds.forEach(familyId => {\n if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) {\n family = familyId;\n }\n });\n const canonical = values.reduce((acc, cls) => {\n const iconName = getIconName(config.cssPrefix, cls);\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && !nonDuotoneFamilyIds.some(familyName => cls === famProps[familyName])) {\n acc.rest.push(cls);\n }\n if (!skipLookups && acc.prefix && acc.iconName) {\n const shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n const aliasIconName = byAlias(acc.prefix, acc.iconName);\n if (shim.prefix) {\n givenPrefix = null;\n }\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n return acc;\n }, emptyCanonicalIcon());\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n if (!canonical.prefix && family === r && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n if (!canonical.prefix && family === o && (styles['fasds'] || config.autoFetchSvg)) {\n canonical.prefix = 'fasds';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n return canonical;\n}\nclass Library {\n constructor() {\n this.definitions = {};\n }\n add() {\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n const additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(key => {\n this.definitions[key] = {\n ...(this.definitions[key] || {}),\n ...additions[key]\n };\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n const longPrefix = PREFIX_TO_LONG_STYLE[a][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n reset() {\n this.definitions = {};\n }\n _pullDefinitions(additions, definition) {\n const normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(key => {\n const {\n prefix,\n iconName,\n icon\n } = normalized[key];\n const aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(alias => {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n}\nlet _plugins = [];\nlet _hooks = {};\nconst providers = {};\nconst defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n let {\n mixoutsTo: obj\n } = _ref;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(k => {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(plugin => {\n const mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(tk => {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (typeof mixout[tk] === 'object') {\n Object.keys(mixout[tk]).forEach(sk => {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n const hooks = plugin.hooks();\n Object.keys(hooks).forEach(hook => {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n accumulator = hookFn.apply(null, [accumulator, ...args]); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n const hook = arguments[0];\n const args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n let {\n iconName\n } = iconLookup;\n const prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nconst library = new Library();\nconst noAuto = () => {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nconst dom = {\n i2svg: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot\n } = params;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(() => {\n autoReplace({\n autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nconst parse = {\n icon: icon => {\n if (icon === null) {\n return null;\n }\n if (typeof icon === 'object' && icon.prefix && icon.iconName) {\n return {\n prefix: icon.prefix,\n iconName: byAlias(icon.prefix, icon.iconName) || icon.iconName\n };\n }\n if (Array.isArray(icon) && icon.length === 2) {\n const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1];\n const prefix = getCanonicalPrefix(icon[0]);\n return {\n prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof icon === 'string' && (icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n const canonicalIcon = getCanonicalIcon(icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n if (typeof icon === 'string') {\n const prefix = getDefaultUsablePrefix();\n return {\n prefix,\n iconName: byAlias(prefix, icon) || icon\n };\n }\n }\n};\nconst api = {\n noAuto,\n config,\n dom,\n parse,\n library,\n findIconDefinition,\n toHtml\n};\nconst autoReplace = function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot = DOCUMENT\n } = params;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function () {\n return val.abstract.map(a => toHtml(a));\n }\n });\n Object.defineProperty(val, 'node', {\n get: function () {\n if (!IS_DOM) return;\n const container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\nfunction asIcon(_ref) {\n let {\n children,\n main,\n mask,\n attributes,\n styles,\n transform\n } = _ref;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n const {\n width,\n height\n } = main;\n const offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles({\n ...styles,\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n });\n }\n return [{\n tag: 'svg',\n attributes,\n children\n }];\n}\nfunction asSymbol(_ref) {\n let {\n prefix,\n iconName,\n children,\n attributes,\n symbol\n } = _ref;\n const id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: {\n ...attributes,\n id\n },\n children\n }]\n }];\n}\nfunction makeInlineSvgAbstract(params) {\n const {\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n title,\n maskId,\n titleId,\n extra,\n watchable = false\n } = params;\n const {\n width,\n height\n } = mask.found ? mask : main;\n const isUploadedIcon = prefix === 'fak';\n const attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(c => extra.classes.indexOf(c) === -1).filter(c => c !== '' || !!c).concat(extra.classes).join(' ');\n let content = {\n children: [],\n attributes: {\n ...extra.attributes,\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n }\n };\n const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n const args = {\n ...content,\n prefix,\n iconName,\n main,\n mask,\n maskId,\n transform,\n symbol,\n styles: {\n ...uploadedIconWidthStyle,\n ...extra.styles\n }\n };\n const {\n children,\n attributes\n } = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n };\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n const {\n content,\n width,\n height,\n transform,\n title,\n extra,\n watchable = false\n } = params;\n const attributes = {\n ...extra.attributes,\n ...(title ? {\n 'title': title\n } : {}),\n 'class': extra.classes.join(' ')\n };\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n const styles = {\n ...extra.styles\n };\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform,\n startCentered: true,\n width,\n height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n const styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n const {\n content,\n title,\n extra\n } = params;\n const attributes = {\n ...extra.attributes,\n ...(title ? {\n 'title': title\n } : {}),\n 'class': extra.classes.join(' ')\n };\n const styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n}\nconst {\n styles: styles$1\n} = namespace;\nfunction asFoundIcon(icon) {\n const width = icon[0];\n const height = icon[1];\n const [vectorData] = icon.slice(4);\n let element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width,\n height,\n icon: element\n };\n}\nconst missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\nfunction findIcon(iconName, prefix) {\n let givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise((resolve, reject) => {\n if (givenPrefix === 'fa') {\n const shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n const icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve({\n ...missingIconResolutionMixin,\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n });\n });\n}\nconst noop$1 = () => {};\nconst p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nconst preamble = \"FA \\\"6.6.0\\\"\";\nconst begin = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return () => end(name);\n};\nconst end = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\nvar perf = {\n begin,\n end\n};\nconst noop$2 = () => {};\nfunction isWatched(node) {\n const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\nfunction hasPrefixAndIcon(node) {\n const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n const mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\nfunction convertSVG(abstractObj) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement\n } = params;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n const tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n const children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn\n }));\n });\n return tag;\n}\nfunction nodeAsComment(node) {\n let comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\nconst mutators = {\n replace: function (mutation) {\n const node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(abstract => {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n let comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function (mutation) {\n const node = mutation[0];\n const abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n const forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n const newInnerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\nfunction performOperationSync(op) {\n op();\n}\nfunction perform(mutations, callback) {\n const callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n let frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(() => {\n const mutator = getMutator();\n const mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nlet disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nlet mo$1 = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n const {\n treeCallback = noop$2,\n nodeCallback = noop$2,\n pseudoElementsCallback = noop$2,\n observeMutationsRoot = DOCUMENT\n } = options;\n mo$1 = new MUTATION_OBSERVER(objects => {\n if (disabled) return;\n const defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(mutationRecord => {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n const {\n prefix,\n iconName\n } = getCanonicalIcon(classArray(mutationRecord.target));\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo$1.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo$1) return;\n mo$1.disconnect();\n}\nfunction styleParser(node) {\n const style = node.getAttribute('style');\n let val = [];\n if (style) {\n val = style.split(';').reduce((acc, style) => {\n const styles = style.split(':');\n const prop = styles[0];\n const value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n}\nfunction classParser(node) {\n const existingPrefix = node.getAttribute('data-prefix');\n const existingIconName = node.getAttribute('data-icon');\n const innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n let val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n}\nfunction attributesParser(node) {\n const extraAttributes = toArray(node.attributes).reduce((acc, attr) => {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n const title = node.getAttribute('title');\n const titleId = node.getAttribute('data-fa-title-id');\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n return extraAttributes;\n}\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n const {\n iconName,\n prefix,\n rest: extraClasses\n } = classParser(node);\n const extraAttributes = attributesParser(node);\n const pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n let extraStyles = parser.styleParser ? styleParser(node) : [];\n return {\n iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n },\n ...pluginMeta\n };\n}\nconst {\n styles: styles$2\n} = namespace;\nfunction generateMutation(node) {\n const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\nlet knownPrefixes = new Set();\nFAMILIES.map(family => {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[a]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[r]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[o]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = [...knownPrefixes];\nfunction onTree(root) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n const htmlClassList = DOCUMENT.documentElement.classList;\n const hclAdd = suffix => htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n const hclRemove = suffix => htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n const prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(f$$1 => \"fa-\".concat(f$$1)).concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n 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(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n let candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {// noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n const mark = perf.begin('onTree');\n const mutations = candidates.reduce((acc, node) => {\n try {\n const mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise((resolve, reject) => {\n Promise.all(mutations).then(resolvedMutations => {\n perform(resolvedMutations, () => {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(e$$1 => {\n mark();\n reject(e$$1);\n });\n });\n}\nfunction onNode(node) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(mutation => {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n let {\n mask\n } = params;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, {\n ...params,\n mask\n });\n };\n}\nconst render = function (iconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n symbol = false,\n mask = null,\n maskId = null,\n title = null,\n titleId = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n if (!iconDefinition) return;\n const {\n prefix,\n iconName,\n icon\n } = iconDefinition;\n return domVariants({\n type: 'icon',\n ...iconDefinition\n }, () => {\n callHooks('beforeDOMElementCreation', {\n iconDefinition,\n params\n });\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix,\n iconName,\n transform: {\n ...meaninglessTransform,\n ...transform\n },\n symbol,\n title,\n maskId,\n titleId,\n extra: {\n attributes,\n styles,\n classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n const {\n node = DOCUMENT,\n callback = () => {}\n } = params;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n const {\n iconName,\n title,\n titleId,\n prefix,\n transform,\n symbol,\n mask,\n maskId,\n extra\n } = nodeMeta;\n return new Promise((resolve, reject) => {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(_ref => {\n let [main, mask] = _ref;\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n maskId,\n title,\n titleId,\n extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref2) {\n let {\n children,\n attributes,\n main,\n transform,\n styles\n } = _ref2;\n const styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n let nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main,\n transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children,\n attributes\n };\n };\n }\n};\nvar Layers = {\n mixout() {\n return {\n layer(assembler) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n classes = []\n } = params;\n return domVariants({\n type: 'layer'\n }, () => {\n callHooks('beforeDOMElementCreation', {\n assembler,\n params\n });\n let children = [];\n assembler(args => {\n Array.isArray(args) ? args.map(a => {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\"), ...classes].join(' ')\n },\n children\n }];\n });\n }\n };\n }\n};\nvar LayersCounter = {\n mixout() {\n return {\n counter(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'counter',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\"), ...classes]\n }\n });\n });\n }\n };\n }\n};\nvar LayersText = {\n mixout() {\n return {\n text(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'text',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersTextAbstract({\n content,\n transform: {\n ...meaninglessTransform,\n ...transform\n },\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\"), ...classes]\n }\n });\n });\n }\n };\n },\n provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n const {\n title,\n transform,\n extra\n } = nodeMeta;\n let width = null;\n let height = null;\n if (IS_IE) {\n const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n const boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width,\n height,\n transform,\n title,\n extra,\n watchable: true\n })]);\n };\n }\n};\nconst CLEAN_CONTENT_PATTERN = new RegExp('\\u{22}', 'ug');\nconst SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nconst _FONT_FAMILY_WEIGHT_TO_PREFIX = {\n ...{\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n },\n ...eo,\n ...ao,\n ...mo\n};\nconst FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nconst FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => {\n const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1];\n return acc;\n}, {});\nfunction hexValueFromContent(content) {\n const cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n const codePoint = codePointAt(cleaned, 0);\n const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\nfunction getPrefix(fontFamily, fontWeight) {\n const fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n const fontWeightInteger = parseInt(fontWeight);\n const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\nfunction replaceForPosition(node, position) {\n const pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise((resolve, reject) => {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n const children = toArray(node.children);\n const alreadyProcessedPseudoElement = children.filter(c => c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0];\n const styles = WINDOW.getComputedStyle(node, position);\n const fontFamily = styles.getPropertyValue('font-family');\n const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n const fontWeight = styles.getPropertyValue('font-weight');\n const content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n const content = styles.getPropertyValue('content');\n let prefix = getPrefix(fontFamily, fontWeight);\n const {\n value: hexValue,\n isSecondary\n } = hexValueFromContent(content);\n const isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n let iconName = byUnicode(prefix, hexValue);\n let iconIdentifier = iconName;\n if (isV4) {\n const iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n const meta = blankMeta();\n const {\n extra\n } = meta;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(main => {\n const abstract = makeInlineSvgAbstract({\n ...meta,\n icons: {\n main,\n mask: emptyCanonicalIcon()\n },\n prefix,\n iconName: iconIdentifier,\n extra,\n watchable: true\n });\n const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\nfunction processable(node) {\n 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');\n}\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise((resolve, reject) => {\n const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n const end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(() => {\n end();\n enableObservation();\n resolve();\n }).catch(() => {\n end();\n enableObservation();\n reject();\n });\n });\n}\nvar PseudoElements = {\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.pseudoElements2svg = function (params) {\n const {\n node = DOCUMENT\n } = params;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\nlet _unwatched = false;\nvar MutationObserver$1 = {\n mixout() {\n return {\n dom: {\n unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks() {\n return {\n bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto() {\n disconnect();\n },\n watch(params) {\n const {\n observeMutationsRoot\n } = params;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot\n }));\n }\n }\n };\n }\n};\nconst parseTransformString = transformString => {\n let transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce((acc, n) => {\n const parts = n.toLowerCase().split('-');\n const first = parts[0];\n let rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout() {\n return {\n parse: {\n transform: transformString => {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n let {\n main,\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n const operations = {\n outer,\n inner,\n path\n };\n return {\n tag: 'g',\n attributes: {\n ...operations.outer\n },\n children: [{\n tag: 'g',\n attributes: {\n ...operations.inner\n },\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: {\n ...main.icon.attributes,\n ...operations.path\n }\n }]\n }]\n };\n };\n }\n};\nconst ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\nfunction fillBlack(abstract) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n}\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\nvar Masks = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const maskData = node.getAttribute('data-fa-mask');\n const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim()));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n let {\n children,\n attributes,\n main,\n mask,\n maskId: explicitMaskId,\n transform\n } = _ref;\n const {\n width: mainWidth,\n icon: mainPath\n } = main;\n const {\n width: maskWidth,\n icon: maskPath\n } = mask;\n const trans = transformForSvg({\n transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n const maskRect = {\n tag: 'rect',\n attributes: {\n ...ALL_SPACE,\n fill: 'white'\n }\n };\n const maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n const maskInnerGroup = {\n tag: 'g',\n attributes: {\n ...trans.inner\n },\n children: [fillBlack({\n tag: mainPath.tag,\n attributes: {\n ...mainPath.attributes,\n ...trans.path\n },\n ...maskInnerGroupChildrenMixin\n })]\n };\n const maskOuterGroup = {\n tag: 'g',\n attributes: {\n ...trans.outer\n },\n children: [maskInnerGroup]\n };\n const maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n const clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n const maskTag = {\n tag: 'mask',\n attributes: {\n ...ALL_SPACE,\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n },\n children: [maskRect, maskOuterGroup]\n };\n const defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: {\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\"),\n ...ALL_SPACE\n }\n });\n return {\n children,\n attributes\n };\n };\n }\n};\nvar MissingIconIndicator = {\n provides(providers) {\n let reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n const gChildren = [];\n const FILL = {\n fill: 'currentColor'\n };\n const ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: {\n ...FILL,\n 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'\n }\n });\n const OPACITY_ANIMATE = {\n ...ANIMATION_BASE,\n attributeName: 'opacity'\n };\n const dot = {\n tag: 'circle',\n attributes: {\n ...FILL,\n cx: '256',\n cy: '364',\n r: '28'\n },\n children: []\n };\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: {\n ...ANIMATION_BASE,\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n }\n }, {\n tag: 'animate',\n attributes: {\n ...OPACITY_ANIMATE,\n values: '1;0;1;1;0;1;'\n }\n });\n }\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: {\n ...FILL,\n opacity: '1',\n 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'\n },\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: {\n ...OPACITY_ANIMATE,\n values: '1;0;0;0;0;1;'\n }\n }]\n });\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: {\n ...FILL,\n opacity: '0',\n 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'\n },\n children: [{\n tag: 'animate',\n attributes: {\n ...OPACITY_ANIMATE,\n values: '0;0;1;1;0;0;'\n }\n }]\n });\n }\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\nvar SvgSymbols = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const symbolData = node.getAttribute('data-fa-symbol');\n const symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nconst noAuto$1 = api.noAuto;\nconst config$1 = api.config;\nconst library$1 = api.library;\nconst dom$1 = api.dom;\nconst parse$1 = api.parse;\nconst findIconDefinition$1 = api.findIconDefinition;\nconst toHtml$1 = api.toHtml;\nconst icon = api.icon;\nconst layer = api.layer;\nconst text = api.text;\nconst counter = api.counter;\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };","import * as i0 from '@angular/core';\nimport { Injectable, Directive, Input, Component, inject, Optional, HostBinding, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { dom, config, icon, parse, counter, text } from '@fortawesome/fontawesome-svg-core';\nimport * as i2 from '@angular/platform-browser';\nconst _c0 = [\"*\"];\nconst faWarnIfIconDefinitionMissing = iconSpec => {\n throw new Error(`Could not find icon with iconName=${iconSpec.iconName} and prefix=${iconSpec.prefix} in the icon library.`);\n};\nconst faWarnIfIconSpecMissing = () => {\n throw new Error('Property `icon` is required for `fa-icon`/`fa-duotone-icon` components.');\n};\n\n/**\n * Fontawesome class list.\n * Returns classes array by props.\n */\nconst faClassList = props => {\n const classes = {\n [`fa-${props.animation}`]: props.animation != null && !props.animation.startsWith('spin'),\n 'fa-spin': props.animation === 'spin' || props.animation === 'spin-reverse',\n 'fa-spin-pulse': props.animation === 'spin-pulse' || props.animation === 'spin-pulse-reverse',\n 'fa-spin-reverse': props.animation === 'spin-reverse' || props.animation === 'spin-pulse-reverse',\n // According to https://fontawesome.com/docs/web/style/animate#spin fa-pulse\n // class is deprecated, remove the below line when Font Awesome 5 support\n // is dropped.\n 'fa-pulse': props.animation === 'spin-pulse' || props.animation === 'spin-pulse-reverse',\n 'fa-fw': props.fixedWidth,\n 'fa-border': props.border,\n 'fa-inverse': props.inverse,\n 'fa-layers-counter': props.counter,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both',\n [`fa-${props.size}`]: props.size !== null,\n [`fa-rotate-${props.rotate}`]: props.rotate !== null,\n [`fa-pull-${props.pull}`]: props.pull !== null,\n [`fa-stack-${props.stackItemSize}`]: props.stackItemSize != null\n };\n return Object.keys(classes).map(key => classes[key] ? key : null).filter(key => key);\n};\nconst cssInserted = new WeakSet();\nconst autoCssId = 'fa-auto-css';\n/**\n * Ensure that Font Awesome CSS is inserted into the page.\n *\n * SVG Core has the same logic to insert the same styles into the page, however\n * it's not aware of Angular SSR and therefore styles won't be added in that\n * context leading to https://github.com/FortAwesome/angular-fontawesome/issues/48.\n * That's why the same logic is duplicated here.\n *\n * @param document - Document.\n * @param config - Font Awesome configuration.\n */\nfunction ensureCss(document, config) {\n if (!config.autoAddCss) {\n return;\n }\n if (cssInserted.has(document)) {\n return;\n }\n // Prevent adding the same styles again after hydration.\n if (document.getElementById(autoCssId) != null) {\n config.autoAddCss = false;\n cssInserted.add(document);\n return;\n }\n const style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n style.setAttribute('id', autoCssId);\n style.innerHTML = dom.css();\n const headChildren = document.head.childNodes;\n let beforeChild = null;\n for (let i = headChildren.length - 1; i > -1; i--) {\n const child = headChildren[i];\n const tagName = child.nodeName.toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n document.head.insertBefore(style, beforeChild);\n // Prevent SVG Core from adding the same styles.\n //\n // As the logic is present in two places and SVG Core is not aware about\n // this library, it may lead to styles being added twice. This can only\n // occur when icon is rendered by SVG Core before the Angular component\n // and should not have any significant negative impact. This is a rare\n // use case, and it's tricky to prevent, so we accept this behavior. Consumer\n // can choose to disable `FaConfig.autoAddCss` and add styles manually to\n // prevent this from happening.\n config.autoAddCss = false;\n cssInserted.add(document);\n}\n\n/**\n * Returns if is IconLookup or not.\n */\nconst isIconLookup = i => i.prefix !== undefined && i.iconName !== undefined;\n\n/**\n * Normalizing icon spec.\n */\nconst faNormalizeIconSpec = (iconSpec, defaultPrefix) => {\n if (isIconLookup(iconSpec)) {\n return iconSpec;\n }\n if (Array.isArray(iconSpec) && iconSpec.length === 2) {\n return {\n prefix: iconSpec[0],\n iconName: iconSpec[1]\n };\n }\n return {\n prefix: defaultPrefix,\n iconName: iconSpec\n };\n};\nlet FaConfig = /*#__PURE__*/(() => {\n class FaConfig {\n constructor() {\n /**\n * Default prefix to use, when one is not provided with the icon name.\n *\n * @default 'fas'\n */\n this.defaultPrefix = 'fas';\n /**\n * Provides a fallback icon to use whilst main icon is being loaded asynchronously.\n * When value is null, then fa-icon component will throw an error if icon input is missing.\n * When value is not null, then the provided icon will be used as a fallback icon if icon input is missing.\n *\n * @default null\n */\n this.fallbackIcon = null;\n this._autoAddCss = true;\n }\n /**\n * Automatically add Font Awesome styles to the document when icon is rendered.\n *\n * For the majority of the cases the automatically added CSS is sufficient,\n * please refer to the linked guide for more information on when to disable\n * this feature.\n *\n * @see {@link: https://github.com/FortAwesome/angular-fontawesome/blob/main/docs/guide/adding-css.md}\n * @default true\n */\n set autoAddCss(value) {\n config.autoAddCss = value;\n this._autoAddCss = value;\n }\n get autoAddCss() {\n return this._autoAddCss;\n }\n static {\n this.ɵfac = function FaConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FaConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FaConfig,\n factory: FaConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return FaConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FaIconLibrary = /*#__PURE__*/(() => {\n class FaIconLibrary {\n constructor() {\n this.definitions = {};\n }\n addIcons(...icons) {\n for (const icon of icons) {\n if (!(icon.prefix in this.definitions)) {\n this.definitions[icon.prefix] = {};\n }\n this.definitions[icon.prefix][icon.iconName] = icon;\n for (const alias of icon.icon[2]) {\n if (typeof alias === 'string') {\n this.definitions[icon.prefix][alias] = icon;\n }\n }\n }\n }\n addIconPacks(...packs) {\n for (const pack of packs) {\n const icons = Object.keys(pack).map(key => pack[key]);\n this.addIcons(...icons);\n }\n }\n getIconDefinition(prefix, name) {\n if (prefix in this.definitions && name in this.definitions[prefix]) {\n return this.definitions[prefix][name];\n }\n return null;\n }\n static {\n this.ɵfac = function FaIconLibrary_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FaIconLibrary)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FaIconLibrary,\n factory: FaIconLibrary.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return FaIconLibrary;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FaStackItemSizeDirective = /*#__PURE__*/(() => {\n class FaStackItemSizeDirective {\n constructor() {\n /**\n * Specify whether icon inside {@link FaStackComponent} should be rendered in\n * regular size (1x) or as a larger icon (2x).\n */\n this.stackItemSize = '1x';\n }\n ngOnChanges(changes) {\n if ('size' in changes) {\n throw new Error('fa-icon is not allowed to customize size when used inside fa-stack. ' + 'Set size on the enclosing fa-stack instead: ....');\n }\n }\n static {\n this.ɵfac = function FaStackItemSizeDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FaStackItemSizeDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FaStackItemSizeDirective,\n selectors: [[\"fa-icon\", \"stackItemSize\", \"\"], [\"fa-duotone-icon\", \"stackItemSize\", \"\"]],\n inputs: {\n stackItemSize: \"stackItemSize\",\n size: \"size\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return FaStackItemSizeDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FaStackComponent = /*#__PURE__*/(() => {\n class FaStackComponent {\n constructor(renderer, elementRef) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n }\n ngOnInit() {\n this.renderer.addClass(this.elementRef.nativeElement, 'fa-stack');\n }\n ngOnChanges(changes) {\n if ('size' in changes) {\n if (changes.size.currentValue != null) {\n this.renderer.addClass(this.elementRef.nativeElement, `fa-${changes.size.currentValue}`);\n }\n if (changes.size.previousValue != null) {\n this.renderer.removeClass(this.elementRef.nativeElement, `fa-${changes.size.previousValue}`);\n }\n }\n }\n static {\n this.ɵfac = function FaStackComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FaStackComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FaStackComponent,\n selectors: [[\"fa-stack\"]],\n inputs: {\n size: \"size\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function FaStackComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2\n });\n }\n }\n return FaStackComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FaIconComponent = /*#__PURE__*/(() => {\n class FaIconComponent {\n constructor(sanitizer, config, iconLibrary, stackItem, stack) {\n this.sanitizer = sanitizer;\n this.config = config;\n this.iconLibrary = iconLibrary;\n this.stackItem = stackItem;\n this.document = inject(DOCUMENT);\n if (stack != null && stackItem == null) {\n console.error('FontAwesome: fa-icon and fa-duotone-icon elements must specify stackItemSize attribute when wrapped into ' + 'fa-stack. Example: .');\n }\n }\n ngOnChanges(changes) {\n if (this.icon == null && this.config.fallbackIcon == null) {\n faWarnIfIconSpecMissing();\n return;\n }\n if (changes) {\n const iconDefinition = this.findIconDefinition(this.icon ?? this.config.fallbackIcon);\n if (iconDefinition != null) {\n const params = this.buildParams();\n ensureCss(this.document, this.config);\n const renderedIcon = icon(iconDefinition, params);\n this.renderedIconHTML = this.sanitizer.bypassSecurityTrustHtml(renderedIcon.html.join('\\n'));\n }\n }\n }\n /**\n * Programmatically trigger rendering of the icon.\n *\n * This method is useful, when creating {@link FaIconComponent} dynamically or\n * changing its inputs programmatically as in these cases icon won't be\n * re-rendered automatically.\n */\n render() {\n this.ngOnChanges({});\n }\n findIconDefinition(i) {\n const lookup = faNormalizeIconSpec(i, this.config.defaultPrefix);\n if ('icon' in lookup) {\n return lookup;\n }\n const definition = this.iconLibrary.getIconDefinition(lookup.prefix, lookup.iconName);\n if (definition != null) {\n return definition;\n }\n faWarnIfIconDefinitionMissing(lookup);\n return null;\n }\n buildParams() {\n const classOpts = {\n flip: this.flip,\n animation: this.animation,\n border: this.border,\n inverse: this.inverse,\n size: this.size || null,\n pull: this.pull || null,\n rotate: this.rotate || null,\n fixedWidth: typeof this.fixedWidth === 'boolean' ? this.fixedWidth : this.config.fixedWidth,\n stackItemSize: this.stackItem != null ? this.stackItem.stackItemSize : null\n };\n const parsedTransform = typeof this.transform === 'string' ? parse.transform(this.transform) : this.transform;\n return {\n title: this.title,\n transform: parsedTransform,\n classes: faClassList(classOpts),\n mask: this.mask != null ? this.findIconDefinition(this.mask) : null,\n symbol: this.symbol,\n attributes: {\n role: this.a11yRole\n }\n };\n }\n static {\n this.ɵfac = function FaIconComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FaIconComponent)(i0.ɵɵdirectiveInject(i2.DomSanitizer), i0.ɵɵdirectiveInject(FaConfig), i0.ɵɵdirectiveInject(FaIconLibrary), i0.ɵɵdirectiveInject(FaStackItemSizeDirective, 8), i0.ɵɵdirectiveInject(FaStackComponent, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FaIconComponent,\n selectors: [[\"fa-icon\"]],\n hostAttrs: [1, \"ng-fa-icon\"],\n hostVars: 2,\n hostBindings: function FaIconComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"innerHTML\", ctx.renderedIconHTML, i0.ɵɵsanitizeHtml);\n i0.ɵɵattribute(\"title\", ctx.title);\n }\n },\n inputs: {\n icon: \"icon\",\n title: \"title\",\n animation: \"animation\",\n mask: \"mask\",\n flip: \"flip\",\n size: \"size\",\n pull: \"pull\",\n border: \"border\",\n inverse: \"inverse\",\n symbol: \"symbol\",\n rotate: \"rotate\",\n fixedWidth: \"fixedWidth\",\n transform: \"transform\",\n a11yRole: \"a11yRole\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 0,\n vars: 0,\n template: function FaIconComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n }\n return FaIconComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FaDuotoneIconComponent = /*#__PURE__*/(() => {\n class FaDuotoneIconComponent extends FaIconComponent {\n findIconDefinition(i) {\n const definition = super.findIconDefinition(i);\n if (definition != null && !Array.isArray(definition.icon[4])) {\n throw new Error('The specified icon does not appear to be a Duotone icon. ' + 'Check that you specified the correct style: ' + ` ` + `or use: instead.`);\n }\n return definition;\n }\n buildParams() {\n const params = super.buildParams();\n if (this.swapOpacity === true || this.swapOpacity === 'true') {\n if (Array.isArray(params.classes)) {\n params.classes.push('fa-swap-opacity');\n } else if (typeof params.classes === 'string') {\n params.classes = [params.classes, 'fa-swap-opacity'];\n } else {\n params.classes = ['fa-swap-opacity'];\n }\n }\n if (params.styles == null) {\n params.styles = {};\n }\n if (this.primaryOpacity != null) {\n params.styles['--fa-primary-opacity'] = this.primaryOpacity.toString();\n }\n if (this.secondaryOpacity != null) {\n params.styles['--fa-secondary-opacity'] = this.secondaryOpacity.toString();\n }\n if (this.primaryColor != null) {\n params.styles['--fa-primary-color'] = this.primaryColor;\n }\n if (this.secondaryColor != null) {\n params.styles['--fa-secondary-color'] = this.secondaryColor;\n }\n return params;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵFaDuotoneIconComponent_BaseFactory;\n return function FaDuotoneIconComponent_Factory(__ngFactoryType__) {\n return (ɵFaDuotoneIconComponent_BaseFactory || (ɵFaDuotoneIconComponent_BaseFactory = i0.ɵɵgetInheritedFactory(FaDuotoneIconComponent)))(__ngFactoryType__ || FaDuotoneIconComponent);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FaDuotoneIconComponent,\n selectors: [[\"fa-duotone-icon\"]],\n inputs: {\n swapOpacity: \"swapOpacity\",\n primaryOpacity: \"primaryOpacity\",\n secondaryOpacity: \"secondaryOpacity\",\n primaryColor: \"primaryColor\",\n secondaryColor: \"secondaryColor\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 0,\n vars: 0,\n template: function FaDuotoneIconComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n }\n return FaDuotoneIconComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Warns if parent component not existing.\n */\nconst faWarnIfParentNotExist = (parent, parentName, childName) => {\n if (!parent) {\n throw new Error(`${childName} should be used as child of ${parentName} only.`);\n }\n};\n\n/**\n * Fontawesome layers.\n */\nlet FaLayersComponent = /*#__PURE__*/(() => {\n class FaLayersComponent {\n constructor(renderer, elementRef, config) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.config = config;\n this.document = inject(DOCUMENT);\n }\n ngOnInit() {\n this.renderer.addClass(this.elementRef.nativeElement, 'fa-layers');\n ensureCss(this.document, this.config);\n this.fixedWidth = typeof this.fixedWidth === 'boolean' ? this.fixedWidth : this.config.fixedWidth;\n }\n ngOnChanges(changes) {\n if ('size' in changes) {\n if (changes.size.currentValue != null) {\n this.renderer.addClass(this.elementRef.nativeElement, `fa-${changes.size.currentValue}`);\n }\n if (changes.size.previousValue != null) {\n this.renderer.removeClass(this.elementRef.nativeElement, `fa-${changes.size.previousValue}`);\n }\n }\n }\n static {\n this.ɵfac = function FaLayersComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FaLayersComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FaConfig));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FaLayersComponent,\n selectors: [[\"fa-layers\"]],\n hostVars: 2,\n hostBindings: function FaLayersComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"fa-fw\", ctx.fixedWidth);\n }\n },\n inputs: {\n size: \"size\",\n fixedWidth: \"fixedWidth\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function FaLayersComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2\n });\n }\n }\n return FaLayersComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FaLayersCounterComponent = /*#__PURE__*/(() => {\n class FaLayersCounterComponent {\n constructor(parent, sanitizer) {\n this.parent = parent;\n this.sanitizer = sanitizer;\n this.document = inject(DOCUMENT);\n this.config = inject(FaConfig);\n faWarnIfParentNotExist(this.parent, 'FaLayersComponent', this.constructor.name);\n }\n ngOnChanges(changes) {\n if (changes) {\n const params = this.buildParams();\n this.updateContent(params);\n }\n }\n buildParams() {\n return {\n title: this.title,\n classes: this.position != null ? [`fa-layers-${this.position}`] : undefined\n };\n }\n updateContent(params) {\n ensureCss(this.document, this.config);\n this.renderedHTML = this.sanitizer.bypassSecurityTrustHtml(counter(this.content || '', params).html.join(''));\n }\n static {\n this.ɵfac = function FaLayersCounterComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FaLayersCounterComponent)(i0.ɵɵdirectiveInject(FaLayersComponent, 8), i0.ɵɵdirectiveInject(i2.DomSanitizer));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FaLayersCounterComponent,\n selectors: [[\"fa-layers-counter\"]],\n hostAttrs: [1, \"ng-fa-layers-counter\"],\n hostVars: 1,\n hostBindings: function FaLayersCounterComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"innerHTML\", ctx.renderedHTML, i0.ɵɵsanitizeHtml);\n }\n },\n inputs: {\n content: \"content\",\n title: \"title\",\n position: \"position\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 0,\n vars: 0,\n template: function FaLayersCounterComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n }\n return FaLayersCounterComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FaLayersTextComponent = /*#__PURE__*/(() => {\n class FaLayersTextComponent {\n constructor(parent, sanitizer) {\n this.parent = parent;\n this.sanitizer = sanitizer;\n this.document = inject(DOCUMENT);\n this.config = inject(FaConfig);\n faWarnIfParentNotExist(this.parent, 'FaLayersComponent', this.constructor.name);\n }\n ngOnChanges(changes) {\n if (changes) {\n const params = this.buildParams();\n this.updateContent(params);\n }\n }\n /**\n * Updating params by component props.\n */\n buildParams() {\n const classOpts = {\n flip: this.flip,\n border: this.border,\n inverse: this.inverse,\n size: this.size || null,\n pull: this.pull || null,\n rotate: this.rotate || null,\n fixedWidth: this.fixedWidth\n };\n const parsedTransform = typeof this.transform === 'string' ? parse.transform(this.transform) : this.transform;\n return {\n transform: parsedTransform,\n classes: faClassList(classOpts),\n title: this.title\n };\n }\n updateContent(params) {\n ensureCss(this.document, this.config);\n this.renderedHTML = this.sanitizer.bypassSecurityTrustHtml(text(this.content || '', params).html.join('\\n'));\n }\n static {\n this.ɵfac = function FaLayersTextComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FaLayersTextComponent)(i0.ɵɵdirectiveInject(FaLayersComponent, 8), i0.ɵɵdirectiveInject(i2.DomSanitizer));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FaLayersTextComponent,\n selectors: [[\"fa-layers-text\"]],\n hostAttrs: [1, \"ng-fa-layers-text\"],\n hostVars: 1,\n hostBindings: function FaLayersTextComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"innerHTML\", ctx.renderedHTML, i0.ɵɵsanitizeHtml);\n }\n },\n inputs: {\n content: \"content\",\n title: \"title\",\n flip: \"flip\",\n size: \"size\",\n pull: \"pull\",\n border: \"border\",\n inverse: \"inverse\",\n rotate: \"rotate\",\n fixedWidth: \"fixedWidth\",\n transform: \"transform\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 0,\n vars: 0,\n template: function FaLayersTextComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n }\n return FaLayersTextComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FontAwesomeModule = /*#__PURE__*/(() => {\n class FontAwesomeModule {\n static {\n this.ɵfac = function FontAwesomeModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FontAwesomeModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FontAwesomeModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return FontAwesomeModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FaConfig, FaDuotoneIconComponent, FaIconComponent, FaIconLibrary, FaLayersComponent, FaLayersCounterComponent, FaLayersTextComponent, FaStackComponent, FaStackItemSizeDirective, FontAwesomeModule };\n","/**\n * @license Angular v19.1.3\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, Injectable, ANIMATION_MODULE_TYPE, ViewEncapsulation, ɵRuntimeError, Inject } from '@angular/core';\n\n/**\n * @description Constants for the categories of parameters that can be defined for animations.\n *\n * A corresponding function defines a set of parameters for each category, and\n * collects them into a corresponding `AnimationMetadata` object.\n *\n * @publicApi\n */\nvar AnimationMetadataType = /*#__PURE__*/function (AnimationMetadataType) {\n /**\n * Associates a named animation state with a set of CSS styles.\n * See [`state()`](api/animations/state)\n */\n AnimationMetadataType[AnimationMetadataType[\"State\"] = 0] = \"State\";\n /**\n * Data for a transition from one animation state to another.\n * See `transition()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Transition\"] = 1] = \"Transition\";\n /**\n * Contains a set of animation steps.\n * See `sequence()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Sequence\"] = 2] = \"Sequence\";\n /**\n * Contains a set of animation steps.\n * See `{@link animations/group group()}`\n */\n AnimationMetadataType[AnimationMetadataType[\"Group\"] = 3] = \"Group\";\n /**\n * Contains an animation step.\n * See `animate()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Animate\"] = 4] = \"Animate\";\n /**\n * Contains a set of animation steps.\n * See `keyframes()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Keyframes\"] = 5] = \"Keyframes\";\n /**\n * Contains a set of CSS property-value pairs into a named style.\n * See `style()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Style\"] = 6] = \"Style\";\n /**\n * Associates an animation with an entry trigger that can be attached to an element.\n * See `trigger()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Trigger\"] = 7] = \"Trigger\";\n /**\n * Contains a re-usable animation.\n * See `animation()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Reference\"] = 8] = \"Reference\";\n /**\n * Contains data to use in executing child animations returned by a query.\n * See `animateChild()`\n */\n AnimationMetadataType[AnimationMetadataType[\"AnimateChild\"] = 9] = \"AnimateChild\";\n /**\n * Contains animation parameters for a re-usable animation.\n * See `useAnimation()`\n */\n AnimationMetadataType[AnimationMetadataType[\"AnimateRef\"] = 10] = \"AnimateRef\";\n /**\n * Contains child-animation query data.\n * See `query()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Query\"] = 11] = \"Query\";\n /**\n * Contains data for staggering an animation sequence.\n * See `stagger()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Stagger\"] = 12] = \"Stagger\";\n return AnimationMetadataType;\n}(AnimationMetadataType || {});\n/**\n * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```ts\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```ts\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```angular-ts\n * @Component({\n * selector: 'my-component',\n * template: `\n *
\n *
\n *
\n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```ts\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return {\n type: AnimationMetadataType.Trigger,\n name,\n definitions,\n options: {}\n };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```ts\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```ts\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return {\n type: AnimationMetadataType.Animate,\n styles,\n timings\n };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```ts\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return {\n type: AnimationMetadataType.Group,\n steps,\n options\n };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```ts\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return {\n type: AnimationMetadataType.Sequence,\n steps,\n options\n };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```ts\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```ts\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return {\n type: AnimationMetadataType.Style,\n styles: tokens,\n offset: null\n };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return {\n type: AnimationMetadataType.State,\n name,\n styles,\n options\n };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```ts\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```ts\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return {\n type: AnimationMetadataType.Keyframes,\n steps\n };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```ts\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```ts\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```ts\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```ts\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```ts\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n *
\n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n *
\n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```html\n *
\n * ...\n *
\n * ```\n *\n * ```ts\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```html\n *
\n * ...\n *
\n * ```\n *\n * ```ts\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return {\n type: AnimationMetadataType.Transition,\n expr: stateChangeExpr,\n animation: steps,\n options\n };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```ts\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return {\n type: AnimationMetadataType.Reference,\n animation: steps,\n options\n };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return {\n type: AnimationMetadataType.AnimateChild,\n options\n };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation,\n options\n };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```ts\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n *
\n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n *
\n *\n *
\n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n *
\n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```angular-ts\n * @Component({\n * selector: 'inner',\n * template: `\n *
\n *

Title

\n *
\n * Blah blah blah\n *
\n *
\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return {\n type: AnimationMetadataType.Query,\n selector,\n animation,\n options\n };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
\n *
\n *
\n * {{ item }}\n *
\n *
\n * ```\n *\n * Here is the component code:\n *\n * ```ts\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```ts\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return {\n type: AnimationMetadataType.Stagger,\n timings,\n animation\n };\n}\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the [AnimationBuilder.build](api/animations/AnimationBuilder#build)() method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nlet AnimationBuilder = /*#__PURE__*/(() => {\n class AnimationBuilder {\n static ɵfac = function AnimationBuilder_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AnimationBuilder)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AnimationBuilder,\n factory: () => (() => inject(BrowserAnimationBuilder))(),\n providedIn: 'root'\n });\n }\n return AnimationBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {}\nlet BrowserAnimationBuilder = /*#__PURE__*/(() => {\n class BrowserAnimationBuilder extends AnimationBuilder {\n animationModuleType = inject(ANIMATION_MODULE_TYPE, {\n optional: true\n });\n _nextAnimationId = 0;\n _renderer;\n constructor(rootRenderer, doc) {\n super();\n const typeData = {\n id: '0',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {\n animation: []\n }\n };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) {\n // We only support AnimationRenderer & DynamicDelegationRenderer for this AnimationBuilder\n throw new ɵRuntimeError(3600 /* RuntimeErrorCode.BROWSER_ANIMATION_BUILDER_INJECTED_WITHOUT_ANIMATIONS */, (typeof ngDevMode === 'undefined' || ngDevMode) && 'Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. ' + 'Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function.');\n }\n }\n build(animation) {\n const id = this._nextAnimationId;\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n static ɵfac = function BrowserAnimationBuilder_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BrowserAnimationBuilder)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(DOCUMENT));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BrowserAnimationBuilder,\n factory: BrowserAnimationBuilder.ɵfac,\n providedIn: 'root'\n });\n }\n return BrowserAnimationBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass BrowserAnimationFactory extends AnimationFactory {\n _id;\n _renderer;\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n id;\n element;\n _renderer;\n parentPlayer = null;\n _started = false;\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0;\n }\n totalTime = 0;\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n/**\n * The following 2 methods cannot reference their correct types (AnimationRenderer &\n * DynamicDelegationRenderer) since this would introduce a import cycle.\n */\nfunction unwrapAnimationRenderer(renderer) {\n const type = renderer.ɵtype;\n if (type === 0 /* AnimationRendererType.Regular */) {\n return renderer;\n } else if (type === 1 /* AnimationRendererType.Delegated */) {\n return renderer.animationRenderer;\n }\n return null;\n}\nfunction isAnimationRenderer(renderer) {\n const type = renderer.ɵtype;\n return type === 0 /* AnimationRendererType.Regular */ || type === 1 /* AnimationRendererType.Delegated */;\n}\n\n/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see {@link animate}\n * @see {@link AnimationPlayer}\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n _onDoneFns = [];\n _onStartFns = [];\n _onDestroyFns = [];\n _originalOnDoneFns = [];\n _originalOnStartFns = [];\n _started = false;\n _destroyed = false;\n _finished = false;\n _position = 0;\n parentPlayer = null;\n totalTime;\n constructor(duration = 0, delay = 0) {\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() {}\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n queueMicrotask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() {}\n restart() {}\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see {@link AnimationPlayer}\n * @see {@link animations/group group}\n *\n */\nclass AnimationGroupPlayer {\n _onDoneFns = [];\n _onStartFns = [];\n _finished = false;\n _started = false;\n _destroyed = false;\n _onDestroyFns = [];\n parentPlayer = null;\n totalTime = 0;\n players;\n constructor(_players) {\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n queueMicrotask(() => this._onFinish());\n } else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\nconst ɵPRE_STYLE = '!';\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, AnimationMetadataType, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, ɵPRE_STYLE };\n","import * as i0 from '@angular/core';\nimport { Directive, InjectionToken, inject, Injectable, ComponentFactoryResolver, ApplicationRef, SecurityContext, Injector, Inject, Component, HostBinding, HostListener, makeEnvironmentProviders, NgModule } from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { DOCUMENT, NgIf } from '@angular/common';\nimport { Subject } from 'rxjs';\nimport * as i2 from '@angular/platform-browser';\nconst _c0 = [\"toast-component\", \"\"];\nfunction Toast_button_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 5);\n i0.ɵɵlistener(\"click\", function Toast_button_0_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.remove());\n });\n i0.ɵɵelementStart(1, \"span\", 6);\n i0.ɵɵtext(2, \"\\xD7\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction Toast_div_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"[\", ctx_r1.duplicatesCount + 1, \"]\");\n }\n}\nfunction Toast_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtext(1);\n i0.ɵɵtemplate(2, Toast_div_1_ng_container_2_Template, 2, 1, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.options.titleClass);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.title);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.title, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.duplicatesCount);\n }\n}\nfunction Toast_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.options.messageClass);\n i0.ɵɵproperty(\"innerHTML\", ctx_r1.message, i0.ɵɵsanitizeHtml);\n }\n}\nfunction Toast_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.options.messageClass);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.message);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.message, \" \");\n }\n}\nfunction Toast_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵelement(1, \"div\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx_r1.width + \"%\");\n }\n}\nfunction ToastNoAnimation_button_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 5);\n i0.ɵɵlistener(\"click\", function ToastNoAnimation_button_0_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.remove());\n });\n i0.ɵɵelementStart(1, \"span\", 6);\n i0.ɵɵtext(2, \"\\xD7\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction ToastNoAnimation_div_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"[\", ctx_r1.duplicatesCount + 1, \"]\");\n }\n}\nfunction ToastNoAnimation_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtext(1);\n i0.ɵɵtemplate(2, ToastNoAnimation_div_1_ng_container_2_Template, 2, 1, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.options.titleClass);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.title);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.title, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.duplicatesCount);\n }\n}\nfunction ToastNoAnimation_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.options.messageClass);\n i0.ɵɵproperty(\"innerHTML\", ctx_r1.message, i0.ɵɵsanitizeHtml);\n }\n}\nfunction ToastNoAnimation_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.options.messageClass);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.message);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.message, \" \");\n }\n}\nfunction ToastNoAnimation_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵelement(1, \"div\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx_r1.width + \"%\");\n }\n}\nlet ToastContainerDirective = /*#__PURE__*/(() => {\n class ToastContainerDirective {\n constructor(el) {\n this.el = el;\n }\n getContainerElement() {\n return this.el.nativeElement;\n }\n }\n ToastContainerDirective.ɵfac = function ToastContainerDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToastContainerDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n ToastContainerDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ToastContainerDirective,\n selectors: [[\"\", \"toastContainer\", \"\"]],\n exportAs: [\"toastContainer\"]\n });\n return ToastContainerDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal {\n constructor(component, injector) {\n this.component = component;\n this.injector = injector;\n }\n /** Attach this portal to a host. */\n attach(host, newestOnTop) {\n this._attachedHost = host;\n return host.attach(this, newestOnTop);\n }\n /** Detach this portal from its host */\n detach() {\n const host = this._attachedHost;\n if (host) {\n this._attachedHost = undefined;\n return host.detach();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\n * the PortalHost when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * Partial implementation of PortalHost that only deals with attaching a\n * ComponentPortal\n */\nclass BasePortalHost {\n attach(portal, newestOnTop) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal, newestOnTop);\n }\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost();\n }\n this._attachedPortal = undefined;\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = undefined;\n }\n }\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n}\n\n/**\n * Reference to a toast opened via the Toastr service.\n */\nclass ToastRef {\n constructor(_overlayRef) {\n this._overlayRef = _overlayRef;\n /** Count of duplicates of this toast */\n this.duplicatesCount = 0;\n /** Subject for notifying the user that the toast has finished closing. */\n this._afterClosed = new Subject();\n /** triggered when toast is activated */\n this._activate = new Subject();\n /** notifies the toast that it should close before the timeout */\n this._manualClose = new Subject();\n /** notifies the toast that it should reset the timeouts */\n this._resetTimeout = new Subject();\n /** notifies the toast that it should count a duplicate toast */\n this._countDuplicate = new Subject();\n }\n manualClose() {\n this._manualClose.next();\n this._manualClose.complete();\n }\n manualClosed() {\n return this._manualClose.asObservable();\n }\n timeoutReset() {\n return this._resetTimeout.asObservable();\n }\n countDuplicate() {\n return this._countDuplicate.asObservable();\n }\n /**\n * Close the toast.\n */\n close() {\n this._overlayRef.detach();\n this._afterClosed.next();\n this._manualClose.next();\n this._afterClosed.complete();\n this._manualClose.complete();\n this._activate.complete();\n this._resetTimeout.complete();\n this._countDuplicate.complete();\n }\n /** Gets an observable that is notified when the toast is finished closing. */\n afterClosed() {\n return this._afterClosed.asObservable();\n }\n isInactive() {\n return this._activate.isStopped;\n }\n activate() {\n this._activate.next();\n this._activate.complete();\n }\n /** Gets an observable that is notified when the toast has started opening. */\n afterActivate() {\n return this._activate.asObservable();\n }\n /** Reset the toast timouts and count duplicates */\n onDuplicate(resetTimeout, countDuplicate) {\n if (resetTimeout) {\n this._resetTimeout.next();\n }\n if (countDuplicate) {\n this._countDuplicate.next(++this.duplicatesCount);\n }\n }\n}\n\n/**\n * Everything a toast needs to launch\n */\nclass ToastPackage {\n constructor(toastId, config, message, title, toastType, toastRef) {\n this.toastId = toastId;\n this.config = config;\n this.message = message;\n this.title = title;\n this.toastType = toastType;\n this.toastRef = toastRef;\n this._onTap = new Subject();\n this._onAction = new Subject();\n this.toastRef.afterClosed().subscribe(() => {\n this._onAction.complete();\n this._onTap.complete();\n });\n }\n /** Fired on click */\n triggerTap() {\n this._onTap.next();\n if (this.config.tapToDismiss) {\n this._onTap.complete();\n }\n }\n onTap() {\n return this._onTap.asObservable();\n }\n /** available for use in custom toast */\n triggerAction(action) {\n this._onAction.next(action);\n }\n onAction() {\n return this._onAction.asObservable();\n }\n}\nconst DefaultNoComponentGlobalConfig = {\n maxOpened: 0,\n autoDismiss: false,\n newestOnTop: true,\n preventDuplicates: false,\n countDuplicates: false,\n resetTimeoutOnDuplicate: false,\n includeTitleDuplicates: false,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n // Individual\n closeButton: false,\n disableTimeOut: false,\n timeOut: 5000,\n extendedTimeOut: 1000,\n enableHtml: false,\n progressBar: false,\n toastClass: 'ngx-toastr',\n positionClass: 'toast-top-right',\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n easing: 'ease-in',\n easeTime: 300,\n tapToDismiss: true,\n onActivateTick: false,\n progressAnimation: 'decreasing'\n};\nconst TOAST_CONFIG = new InjectionToken('ToastConfig');\n\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nclass DomPortalHost extends BasePortalHost {\n constructor(_hostDomElement, _componentFactoryResolver, _appRef) {\n super();\n this._hostDomElement = _hostDomElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n */\n attachComponentPortal(portal, newestOnTop) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the ChangeDetector for that component to the application (which\n // happens automatically when using a ViewContainer).\n componentRef = componentFactory.create(portal.injector);\n // When creating a component outside of a ViewContainer, we need to manually register\n // its ChangeDetector with the application. This API is unfortunately not yet published\n // in Angular core. The change detector must also be deregistered when the component\n // is destroyed to prevent memory leaks.\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n if (newestOnTop) {\n this._hostDomElement.insertBefore(this._getComponentRootNode(componentRef), this._hostDomElement.firstChild);\n } else {\n this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));\n }\n return componentRef;\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n\n/** Container inside which all toasts will render. */\nlet OverlayContainer = /*#__PURE__*/(() => {\n class OverlayContainer {\n constructor() {\n this._document = inject(DOCUMENT);\n }\n ngOnDestroy() {\n if (this._containerElement && this._containerElement.parentNode) {\n this._containerElement.parentNode.removeChild(this._containerElement);\n }\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body\n * and 'aria-live=\"polite\"'\n */\n _createContainer() {\n const container = this._document.createElement('div');\n container.classList.add('overlay-container');\n container.setAttribute('aria-live', 'polite');\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n }\n OverlayContainer.ɵfac = function OverlayContainer_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || OverlayContainer)();\n };\n OverlayContainer.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayContainer,\n factory: OverlayContainer.ɵfac,\n providedIn: 'root'\n });\n return OverlayContainer;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalHost) {\n this._portalHost = _portalHost;\n }\n attach(portal, newestOnTop = true) {\n return this._portalHost.attach(portal, newestOnTop);\n }\n /**\n * Detaches an overlay from a portal.\n * @returns Resolves when the overlay has been detached.\n */\n detach() {\n return this._portalHost.detach();\n }\n}\n\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nlet Overlay = /*#__PURE__*/(() => {\n class Overlay {\n constructor() {\n this._overlayContainer = inject(OverlayContainer);\n this._componentFactoryResolver = inject(ComponentFactoryResolver);\n this._appRef = inject(ApplicationRef);\n this._document = inject(DOCUMENT);\n // Namespace panes by overlay container\n this._paneElements = new Map();\n }\n /**\n * Creates an overlay.\n * @returns A reference to the created overlay.\n */\n create(positionClass, overlayContainer) {\n // get existing pane if possible\n return this._createOverlayRef(this.getPaneElement(positionClass, overlayContainer));\n }\n getPaneElement(positionClass = '', overlayContainer) {\n if (!this._paneElements.get(overlayContainer)) {\n this._paneElements.set(overlayContainer, {});\n }\n if (!this._paneElements.get(overlayContainer)[positionClass]) {\n this._paneElements.get(overlayContainer)[positionClass] = this._createPaneElement(positionClass, overlayContainer);\n }\n return this._paneElements.get(overlayContainer)[positionClass];\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(positionClass, overlayContainer) {\n const pane = this._document.createElement('div');\n pane.id = 'toast-container';\n pane.classList.add(positionClass);\n pane.classList.add('toast-container');\n if (!overlayContainer) {\n this._overlayContainer.getContainerElement().appendChild(pane);\n } else {\n overlayContainer.getContainerElement().appendChild(pane);\n }\n return pane;\n }\n /**\n * Create a DomPortalHost into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal host.\n * @returns A portal host for the given DOM element.\n */\n _createPortalHost(pane) {\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef);\n }\n /**\n * Creates an OverlayRef for an overlay in the given DOM element.\n * @param pane DOM element for the overlay\n */\n _createOverlayRef(pane) {\n return new OverlayRef(this._createPortalHost(pane));\n }\n }\n Overlay.ɵfac = function Overlay_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Overlay)();\n };\n Overlay.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Overlay,\n factory: Overlay.ɵfac,\n providedIn: 'root'\n });\n return Overlay;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ToastrService = /*#__PURE__*/(() => {\n class ToastrService {\n constructor(token, overlay, _injector, sanitizer, ngZone) {\n this.overlay = overlay;\n this._injector = _injector;\n this.sanitizer = sanitizer;\n this.ngZone = ngZone;\n this.currentlyActive = 0;\n this.toasts = [];\n this.index = 0;\n this.toastrConfig = {\n ...token.default,\n ...token.config\n };\n if (token.config.iconClasses) {\n this.toastrConfig.iconClasses = {\n ...token.default.iconClasses,\n ...token.config.iconClasses\n };\n }\n }\n /** show toast */\n show(message, title, override = {}, type = '') {\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show successful toast */\n success(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.success || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show error toast */\n error(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.error || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show info toast */\n info(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.info || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show warning toast */\n warning(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.warning || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /**\n * Remove all or a single toast by id\n */\n clear(toastId) {\n // Call every toastRef manualClose function\n for (const toast of this.toasts) {\n if (toastId !== undefined) {\n if (toast.toastId === toastId) {\n toast.toastRef.manualClose();\n return;\n }\n } else {\n toast.toastRef.manualClose();\n }\n }\n }\n /**\n * Remove and destroy a single toast by id\n */\n remove(toastId) {\n const found = this._findToast(toastId);\n if (!found) {\n return false;\n }\n found.activeToast.toastRef.close();\n this.toasts.splice(found.index, 1);\n this.currentlyActive = this.currentlyActive - 1;\n if (!this.toastrConfig.maxOpened || !this.toasts.length) {\n return false;\n }\n if (this.currentlyActive < this.toastrConfig.maxOpened && this.toasts[this.currentlyActive]) {\n const p = this.toasts[this.currentlyActive].toastRef;\n if (!p.isInactive()) {\n this.currentlyActive = this.currentlyActive + 1;\n p.activate();\n }\n }\n return true;\n }\n /**\n * Determines if toast message is already shown\n */\n findDuplicate(title = '', message = '', resetOnDuplicate, countDuplicates) {\n const {\n includeTitleDuplicates\n } = this.toastrConfig;\n for (const toast of this.toasts) {\n const hasDuplicateTitle = includeTitleDuplicates && toast.title === title;\n if ((!includeTitleDuplicates || hasDuplicateTitle) && toast.message === message) {\n toast.toastRef.onDuplicate(resetOnDuplicate, countDuplicates);\n return toast;\n }\n }\n return null;\n }\n /** create a clone of global config and apply individual settings */\n applyConfig(override = {}) {\n return {\n ...this.toastrConfig,\n ...override\n };\n }\n /**\n * Find toast object by id\n */\n _findToast(toastId) {\n for (let i = 0; i < this.toasts.length; i++) {\n if (this.toasts[i].toastId === toastId) {\n return {\n index: i,\n activeToast: this.toasts[i]\n };\n }\n }\n return null;\n }\n /**\n * Determines the need to run inside angular's zone then builds the toast\n */\n _preBuildNotification(toastType, message, title, config) {\n if (config.onActivateTick) {\n return this.ngZone.run(() => this._buildNotification(toastType, message, title, config));\n }\n return this._buildNotification(toastType, message, title, config);\n }\n /**\n * Creates and attaches toast data to component\n * returns the active toast, or in case preventDuplicates is enabled the original/non-duplicate active toast.\n */\n _buildNotification(toastType, message, title, config) {\n if (!config.toastComponent) {\n throw new Error('toastComponent required');\n }\n // max opened and auto dismiss = true\n // if timeout = 0 resetting it would result in setting this.hideTime = Date.now(). Hence, we only want to reset timeout if there is\n // a timeout at all\n const duplicate = this.findDuplicate(title, message, this.toastrConfig.resetTimeoutOnDuplicate && config.timeOut > 0, this.toastrConfig.countDuplicates);\n if ((this.toastrConfig.includeTitleDuplicates && title || message) && this.toastrConfig.preventDuplicates && duplicate !== null) {\n return duplicate;\n }\n this.previousToastMessage = message;\n let keepInactive = false;\n if (this.toastrConfig.maxOpened && this.currentlyActive >= this.toastrConfig.maxOpened) {\n keepInactive = true;\n if (this.toastrConfig.autoDismiss) {\n this.clear(this.toasts[0].toastId);\n }\n }\n const overlayRef = this.overlay.create(config.positionClass, this.overlayContainer);\n this.index = this.index + 1;\n let sanitizedMessage = message;\n if (message && config.enableHtml) {\n sanitizedMessage = this.sanitizer.sanitize(SecurityContext.HTML, message);\n }\n const toastRef = new ToastRef(overlayRef);\n const toastPackage = new ToastPackage(this.index, config, sanitizedMessage, title, toastType, toastRef);\n /** New injector that contains an instance of `ToastPackage`. */\n const providers = [{\n provide: ToastPackage,\n useValue: toastPackage\n }];\n const toastInjector = Injector.create({\n providers,\n parent: this._injector\n });\n const component = new ComponentPortal(config.toastComponent, toastInjector);\n const portal = overlayRef.attach(component, config.newestOnTop);\n toastRef.componentInstance = portal.instance;\n const ins = {\n toastId: this.index,\n title: title || '',\n message: message || '',\n toastRef,\n onShown: toastRef.afterActivate(),\n onHidden: toastRef.afterClosed(),\n onTap: toastPackage.onTap(),\n onAction: toastPackage.onAction(),\n portal\n };\n if (!keepInactive) {\n this.currentlyActive = this.currentlyActive + 1;\n setTimeout(() => {\n ins.toastRef.activate();\n });\n }\n this.toasts.push(ins);\n return ins;\n }\n }\n ToastrService.ɵfac = function ToastrService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToastrService)(i0.ɵɵinject(TOAST_CONFIG), i0.ɵɵinject(Overlay), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i2.DomSanitizer), i0.ɵɵinject(i0.NgZone));\n };\n ToastrService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ToastrService,\n factory: ToastrService.ɵfac,\n providedIn: 'root'\n });\n return ToastrService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Toast = /*#__PURE__*/(() => {\n class Toast {\n /** hides component when waiting to be displayed */\n get displayStyle() {\n if (this.state.value === 'inactive') {\n return 'none';\n }\n return;\n }\n constructor(toastrService, toastPackage, ngZone) {\n this.toastrService = toastrService;\n this.toastPackage = toastPackage;\n this.ngZone = ngZone;\n /** width of progress bar */\n this.width = -1;\n /** a combination of toast type and options.toastClass */\n this.toastClasses = '';\n /** controls animation */\n this.state = {\n value: 'inactive',\n params: {\n easeTime: this.toastPackage.config.easeTime,\n easing: 'ease-in'\n }\n };\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${toastPackage.config.toastClass}`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = {\n ...this.state,\n value: 'active'\n };\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.outsideTimeout(() => this.remove(), this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = remaining / this.options.timeOut * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = {\n ...this.state,\n value: 'active'\n };\n this.outsideTimeout(() => this.remove(), this.originalTimeout);\n this.options.timeOut = this.originalTimeout;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state.value === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = {\n ...this.state,\n value: 'removed'\n };\n this.outsideTimeout(() => this.toastrService.remove(this.toastPackage.toastId), +this.toastPackage.config.easeTime);\n }\n tapToast() {\n if (this.state.value === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n stickAround() {\n if (this.state.value === 'removed') {\n return;\n }\n if (this.options.disableTimeOut !== 'extendedTimeOut') {\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n }\n delayedHideToast() {\n if (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut' || this.options.extendedTimeOut === 0 || this.state.value === 'removed') {\n return;\n }\n this.outsideTimeout(() => this.remove(), this.options.extendedTimeOut);\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n outsideTimeout(func, timeout) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(() => this.timeout = setTimeout(() => this.runInsideAngular(func), timeout));\n } else {\n this.timeout = setTimeout(() => func(), timeout);\n }\n }\n outsideInterval(func, timeout) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(() => this.intervalId = setInterval(() => this.runInsideAngular(func), timeout));\n } else {\n this.intervalId = setInterval(() => func(), timeout);\n }\n }\n runInsideAngular(func) {\n if (this.ngZone) {\n this.ngZone.run(() => func());\n } else {\n func();\n }\n }\n }\n Toast.ɵfac = function Toast_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Toast)(i0.ɵɵdirectiveInject(ToastrService), i0.ɵɵdirectiveInject(ToastPackage), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n Toast.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Toast,\n selectors: [[\"\", \"toast-component\", \"\"]],\n hostVars: 5,\n hostBindings: function Toast_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function Toast_click_HostBindingHandler() {\n return ctx.tapToast();\n })(\"mouseenter\", function Toast_mouseenter_HostBindingHandler() {\n return ctx.stickAround();\n })(\"mouseleave\", function Toast_mouseleave_HostBindingHandler() {\n return ctx.delayedHideToast();\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@flyInOut\", ctx.state);\n i0.ɵɵclassMap(ctx.toastClasses);\n i0.ɵɵstyleProp(\"display\", ctx.displayStyle);\n }\n },\n attrs: _c0,\n decls: 5,\n vars: 5,\n consts: [[\"type\", \"button\", \"class\", \"toast-close-button\", \"aria-label\", \"Close\", 3, \"click\", 4, \"ngIf\"], [3, \"class\", 4, \"ngIf\"], [\"role\", \"alert\", 3, \"class\", \"innerHTML\", 4, \"ngIf\"], [\"role\", \"alert\", 3, \"class\", 4, \"ngIf\"], [4, \"ngIf\"], [\"type\", \"button\", \"aria-label\", \"Close\", 1, \"toast-close-button\", 3, \"click\"], [\"aria-hidden\", \"true\"], [\"role\", \"alert\", 3, \"innerHTML\"], [\"role\", \"alert\"], [1, \"toast-progress\"]],\n template: function Toast_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Toast_button_0_Template, 3, 0, \"button\", 0)(1, Toast_div_1_Template, 3, 5, \"div\", 1)(2, Toast_div_2_Template, 1, 3, \"div\", 2)(3, Toast_div_3_Template, 2, 4, \"div\", 3)(4, Toast_div_4_Template, 2, 2, \"div\", 4);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.options.closeButton);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.title);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.message && ctx.options.enableHtml);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.message && !ctx.options.enableHtml);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.options.progressBar);\n }\n },\n dependencies: [NgIf],\n encapsulation: 2,\n data: {\n animation: [trigger('flyInOut', [state('inactive', style({\n opacity: 0\n })), state('active', style({\n opacity: 1\n })), state('removed', style({\n opacity: 0\n })), transition('inactive => active', animate('{{ easeTime }}ms {{ easing }}')), transition('active => removed', animate('{{ easeTime }}ms {{ easing }}'))])]\n }\n });\n return Toast;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst DefaultGlobalConfig = {\n ...DefaultNoComponentGlobalConfig,\n toastComponent: Toast\n};\n/**\n * @description\n * Provides the `TOAST_CONFIG` token with the given config.\n *\n * @param config The config to configure toastr.\n * @returns The environment providers.\n *\n * @example\n * ```ts\n * import { provideToastr } from 'ngx-toastr';\n *\n * bootstrap(AppComponent, {\n * providers: [\n * provideToastr({\n * timeOut: 2000,\n * positionClass: 'toast-top-right',\n * }),\n * ],\n * })\n */\nconst provideToastr = (config = {}) => {\n const providers = [{\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultGlobalConfig,\n config\n }\n }];\n return makeEnvironmentProviders(providers);\n};\nlet ToastrModule = /*#__PURE__*/(() => {\n class ToastrModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastrModule,\n providers: [provideToastr(config)]\n };\n }\n }\n ToastrModule.ɵfac = function ToastrModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToastrModule)();\n };\n ToastrModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ToastrModule\n });\n ToastrModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [Toast]\n });\n return ToastrModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ToastrComponentlessModule = /*#__PURE__*/(() => {\n class ToastrComponentlessModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastrModule,\n providers: [{\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoComponentGlobalConfig,\n config\n }\n }]\n };\n }\n }\n ToastrComponentlessModule.ɵfac = function ToastrComponentlessModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToastrComponentlessModule)();\n };\n ToastrComponentlessModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ToastrComponentlessModule\n });\n ToastrComponentlessModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n return ToastrComponentlessModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ToastNoAnimation = /*#__PURE__*/(() => {\n class ToastNoAnimation {\n /** hides component when waiting to be displayed */\n get displayStyle() {\n if (this.state === 'inactive') {\n return 'none';\n }\n }\n constructor(toastrService, toastPackage, appRef) {\n this.toastrService = toastrService;\n this.toastPackage = toastPackage;\n this.appRef = appRef;\n /** width of progress bar */\n this.width = -1;\n /** a combination of toast type and options.toastClass */\n this.toastClasses = '';\n /** controls animation */\n this.state = 'inactive';\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${toastPackage.config.toastClass}`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = 'active';\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.timeout = setTimeout(() => {\n this.remove();\n }, this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n if (this.options.onActivateTick) {\n this.appRef.tick();\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = remaining / this.options.timeOut * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = 'active';\n this.options.timeOut = this.originalTimeout;\n this.timeout = setTimeout(() => this.remove(), this.originalTimeout);\n this.hideTime = new Date().getTime() + (this.originalTimeout || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = 'removed';\n this.timeout = setTimeout(() => this.toastrService.remove(this.toastPackage.toastId));\n }\n tapToast() {\n if (this.state === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n stickAround() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n delayedHideToast() {\n if (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut' || this.options.extendedTimeOut === 0 || this.state === 'removed') {\n return;\n }\n this.timeout = setTimeout(() => this.remove(), this.options.extendedTimeOut);\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n }\n ToastNoAnimation.ɵfac = function ToastNoAnimation_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToastNoAnimation)(i0.ɵɵdirectiveInject(ToastrService), i0.ɵɵdirectiveInject(ToastPackage), i0.ɵɵdirectiveInject(i0.ApplicationRef));\n };\n ToastNoAnimation.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ToastNoAnimation,\n selectors: [[\"\", \"toast-component\", \"\"]],\n hostVars: 4,\n hostBindings: function ToastNoAnimation_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function ToastNoAnimation_click_HostBindingHandler() {\n return ctx.tapToast();\n })(\"mouseenter\", function ToastNoAnimation_mouseenter_HostBindingHandler() {\n return ctx.stickAround();\n })(\"mouseleave\", function ToastNoAnimation_mouseleave_HostBindingHandler() {\n return ctx.delayedHideToast();\n });\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.toastClasses);\n i0.ɵɵstyleProp(\"display\", ctx.displayStyle);\n }\n },\n attrs: _c0,\n decls: 5,\n vars: 5,\n consts: [[\"type\", \"button\", \"class\", \"toast-close-button\", \"aria-label\", \"Close\", 3, \"click\", 4, \"ngIf\"], [3, \"class\", 4, \"ngIf\"], [\"role\", \"alert\", 3, \"class\", \"innerHTML\", 4, \"ngIf\"], [\"role\", \"alert\", 3, \"class\", 4, \"ngIf\"], [4, \"ngIf\"], [\"type\", \"button\", \"aria-label\", \"Close\", 1, \"toast-close-button\", 3, \"click\"], [\"aria-hidden\", \"true\"], [\"role\", \"alert\", 3, \"innerHTML\"], [\"role\", \"alert\"], [1, \"toast-progress\"]],\n template: function ToastNoAnimation_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ToastNoAnimation_button_0_Template, 3, 0, \"button\", 0)(1, ToastNoAnimation_div_1_Template, 3, 5, \"div\", 1)(2, ToastNoAnimation_div_2_Template, 1, 3, \"div\", 2)(3, ToastNoAnimation_div_3_Template, 2, 4, \"div\", 3)(4, ToastNoAnimation_div_4_Template, 2, 2, \"div\", 4);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.options.closeButton);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.title);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.message && ctx.options.enableHtml);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.message && !ctx.options.enableHtml);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.options.progressBar);\n }\n },\n dependencies: [NgIf],\n encapsulation: 2\n });\n return ToastNoAnimation;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst DefaultNoAnimationsGlobalConfig = {\n ...DefaultNoComponentGlobalConfig,\n toastComponent: ToastNoAnimation\n};\nlet ToastNoAnimationModule = /*#__PURE__*/(() => {\n class ToastNoAnimationModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastNoAnimationModule,\n providers: [{\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoAnimationsGlobalConfig,\n config\n }\n }]\n };\n }\n }\n ToastNoAnimationModule.ɵfac = function ToastNoAnimationModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToastNoAnimationModule)();\n };\n ToastNoAnimationModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ToastNoAnimationModule\n });\n ToastNoAnimationModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ToastNoAnimation]\n });\n return ToastNoAnimationModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, ComponentPortal, DefaultGlobalConfig, DefaultNoAnimationsGlobalConfig, DefaultNoComponentGlobalConfig, Overlay, OverlayContainer, OverlayRef, TOAST_CONFIG, Toast, ToastContainerDirective, ToastNoAnimation, ToastNoAnimationModule, ToastPackage, ToastRef, ToastrComponentlessModule, ToastrModule, ToastrService, provideToastr };\n"],"mappings":"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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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","names":["noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_BROWSER","IS_DOM","IS_IE","a","t","r","o","c","et$1","bt","Ct","Dt","Kt","ao","eo","lo","y","no","fo","ho","x$1","u$1","m$1","t$1","yo","mo","Io","Fo","So","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_CSS_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_FA_PSEUDO_ELEMENT_PENDING","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","MUTATION_APPROACH_ASYNC","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILIES","familyProxy","obj","target","prop","_PREFIX_TO_STYLE","__spreadValues","PREFIX_TO_STYLE","_STYLE_TO_PREFIX","STYLE_TO_PREFIX","_PREFIX_TO_LONG_STYLE","PREFIX_TO_LONG_STYLE","_LONG_STYLE_TO_PREFIX","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","_FONT_WEIGHT_TO_PREFIX","FONT_WEIGHT_TO_PREFIX","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","prefixes","RESERVED_CLASSES","initial","getAttrConfig","attr","element","coerce","val","_ref","key","_default","_config","config","_onChangeCb","cb","onChange","d$2","meaninglessTransform","insertCss","css","style","headChildren","beforeChild","i","child","tagName","idPool","nextUniqueId","size","id","toArray","array","classArray","node","htmlEscape","str","joinAttributes","attributes","acc","attributeName","joinStyles","styles","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","transformForCss","_ref2","width","height","startCentered","baseStyles","dcp","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","InjectCSS","w$1","namespace","functions","listener","loaded","fn","domready","toHtml","abstractNodes","tag","children","iconFromMapping","mapping","prefix","iconName","bindInternal4","func","thisContext","b","d","reduce","subject","initialValue","keys","length","iterator","result","ucs2decode","string","output","counter","value","extra","toHex","unicode","decoded","codePointAt","index","first","second","normalizeIcons","icons","icon","defineIcons","params","skipHooks","normalized","shims","LONG_STYLE","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","isReserved","name","getIconName","cssPrefix","cls","parts","build","lookup","reducer","o$$1","a$$1","alias","aliases","hasRegular","shimLookups","shim","maybeNameMaybeUnicode","getCanonicalPrefix","c$$1","byUnicode","byLigature","ligature","byAlias","byOldName","byOldUnicode","oldUnicode","newUnicode","getDefaultUsablePrefix","emptyCanonicalIcon","styleOrPrefix","family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","values","skipLookups","famProps","givenPrefix","nonDuotoneFamilyIds","familyId","v$$1","canonical","familyName","aliasIconName","Library","_len","definitions","_key","additions","longPrefix","definition","_plugins","_hooks","providers","defaultProviderKeys","registerPlugins","nextPlugins","k","plugin","mixout","tk","sk","hooks","hook","chainHooks","accumulator","args","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","noAuto","dom","autoReplaceSvgRoot","autoReplace","parse","canonicalIcon","api","domVariants","abstractCreator","container","asIcon","main","mask","offset","__spreadProps","asSymbol","symbol","makeInlineSvgAbstract","title","maskId","titleId","watchable","isUploadedIcon","attrClass","content","uploadedIconWidthStyle","makeLayersTextAbstract","styleString","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","missingIconResolutionMixin","maybeNotifyMissing","findIcon","resolve","reject","noop$1","p$2","preamble","begin","end","perf","noop$2","isWatched","hasPrefixAndIcon","hasBeenReplaced","getMutator","mutators","createElementNS","createElement","convertSVG","abstractObj","ceFn","nodeAsComment","comment","mutation","abstract","forSvg","splitClasses","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","mutator","mark","disabled","disableObservation","enableObservation","mo$1","observe","options","treeCallback","nodeCallback","pseudoElementsCallback","observeMutationsRoot","objects","defaultPrefix","mutationRecord","disconnect","styleParser","classParser","existingPrefix","existingIconName","innerText","attributesParser","extraAttributes","blankMeta","parseMeta","parser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","f$$1","prefixesDomQuery","p$$1","candidates","e$$1","resolvedMutations","onNode","resolveIcons","next","maybeIconDefinition","iconDefinition","render","classes","ReplaceElements","providers$$1","nextChild","Layers","assembler","LayersCounter","LayersText","computedFontSize","boundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","_FONT_FAMILY_WEIGHT_TO_PREFIX","FONT_FAMILY_WEIGHT_TO_PREFIX","FONT_FAMILY_WEIGHT_FALLBACK","fontFamily","weights","hexValueFromContent","cleaned","codePoint","isPrependTen","isDoubled","getPrefix","fontWeight","fontFamilySanitized","fontWeightInteger","fontWeightSanitized","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","fontFamilyMatch","hexValue","isSecondary","isV4","iconIdentifier","iconName4","meta","replace","processable","searchPseudoElements","operations","PseudoElements","_unwatched","MutationObserver$1","parseTransformString","transformString","n","rest","PowerTransforms","ALL_SPACE","fillBlack","force","deGroup","Masks","maskData","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","defs","MissingIconIndicator","reduceMotion","gChildren","FILL","ANIMATION_BASE","OPACITY_ANIMATE","dot","SvgSymbols","symbolData","plugins","noAuto$1","config$1","library$1","dom$1","parse$1","findIconDefinition$1","toHtml$1","layer","text","_c0","faWarnIfIconDefinitionMissing","iconSpec","faWarnIfIconSpecMissing","faClassList","props","classes","key","cssInserted","autoCssId","ensureCss","document","config","style","dom$1","headChildren","beforeChild","i","child","tagName","isIconLookup","faNormalizeIconSpec","defaultPrefix","FaConfig","value","config$1","__ngFactoryType__","ɵɵdefineInjectable","FaIconLibrary","icons","icon","alias","packs","pack","prefix","name","FaStackItemSizeDirective","changes","ɵɵdefineDirective","ɵɵNgOnChangesFeature","FaStackComponent","renderer","elementRef","ɵɵdirectiveInject","Renderer2","ElementRef","ɵɵdefineComponent","rf","ctx","ɵɵprojectionDef","ɵɵprojection","FaIconComponent","sanitizer","iconLibrary","stackItem","stack","inject","DOCUMENT","iconDefinition","params","renderedIcon","lookup","definition","classOpts","parsedTransform","parse$1","DomSanitizer","ɵɵhostProperty","ɵɵsanitizeHtml","ɵɵattribute","FontAwesomeModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","AnimationMetadataType","AUTO_STYLE","trigger","name","definitions","animate","timings","styles","sequence","steps","options","AnimationMetadataType","style","tokens","state","name","styles","transition","stateChangeExpr","steps","options","AnimationMetadataType","NoopAnimationPlayer","duration","delay","fn","position","phaseName","methods","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","total","player","time","p","timeAtPosition","longestPlayer","longestSoFar","ɵPRE_STYLE","_c0","Toast_button_0_Template","rf","ctx","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","ctx_r1","ɵɵnextContext","ɵɵresetView","ɵɵtext","ɵɵelementEnd","Toast_div_1_ng_container_2_Template","ɵɵelementContainerStart","ɵɵelementContainerEnd","ɵɵadvance","ɵɵtextInterpolate1","Toast_div_1_Template","ɵɵtemplate","ɵɵclassMap","ɵɵattribute","ɵɵproperty","Toast_div_2_Template","ɵɵelement","ɵɵsanitizeHtml","Toast_div_3_Template","Toast_div_4_Template","ɵɵstyleProp","ToastNoAnimation_button_0_Template","ToastNoAnimation_div_1_ng_container_2_Template","ToastNoAnimation_div_1_Template","ToastNoAnimation_div_2_Template","ToastNoAnimation_div_3_Template","ToastNoAnimation_div_4_Template","ComponentPortal","component","injector","host","newestOnTop","BasePortalHost","portal","fn","ToastRef","_overlayRef","Subject","resetTimeout","countDuplicate","ToastPackage","toastId","config","message","title","toastType","toastRef","action","DefaultNoComponentGlobalConfig","TOAST_CONFIG","InjectionToken","DomPortalHost","_hostDomElement","_componentFactoryResolver","_appRef","componentFactory","componentRef","OverlayContainer","inject","DOCUMENT","container","__ngFactoryType__","ɵɵdefineInjectable","OverlayRef","_portalHost","Overlay","ComponentFactoryResolver$1","ApplicationRef","positionClass","overlayContainer","pane","ToastrService","token","overlay","_injector","sanitizer","ngZone","__spreadValues","override","type","toast","found","p","resetOnDuplicate","countDuplicates","includeTitleDuplicates","hasDuplicateTitle","duplicate","keepInactive","overlayRef","sanitizedMessage","SecurityContext","toastPackage","providers","toastInjector","Injector","ins","ɵɵinject","DomSanitizer","NgZone","Toast","toastrService","count","__spreadProps","now","remaining","func","timeout","ɵɵdirectiveInject","ɵɵdefineComponent","rf","ctx","ɵɵlistener","ɵɵsyntheticHostProperty","ɵɵclassMap","ɵɵstyleProp","_c0","ɵɵtemplate","Toast_button_0_Template","Toast_div_1_Template","Toast_div_2_Template","Toast_div_3_Template","Toast_div_4_Template","ɵɵproperty","ɵɵadvance","NgIf","trigger","state","style","transition","animate","DefaultGlobalConfig","provideToastr","makeEnvironmentProviders","ToastrModule","ɵɵdefineNgModule","ɵɵdefineInjector","ToastNoAnimation","toastrService","toastPackage","appRef","count","now","remaining","__ngFactoryType__","ɵɵdirectiveInject","ToastrService","ToastPackage","ApplicationRef","ɵɵdefineComponent","rf","ctx","ɵɵlistener","ɵɵclassMap","ɵɵstyleProp","_c0","ɵɵtemplate","ToastNoAnimation_button_0_Template","ToastNoAnimation_div_1_Template","ToastNoAnimation_div_2_Template","ToastNoAnimation_div_3_Template","ToastNoAnimation_div_4_Template","ɵɵproperty","ɵɵadvance","NgIf","DefaultNoAnimationsGlobalConfig","__spreadProps","__spreadValues","DefaultNoComponentGlobalConfig"],"x_google_ignoreList":[0,1,2,3]}