base/test/lib/bootstrap.js

7286 lines
917 KiB
JavaScript
Raw Permalink Normal View History

(function() {
"use strict";
try {
if (typeof document != "undefined") {
var elementStyle = document.createElement("style");
elementStyle.appendChild(document.createTextNode(`@charset "UTF-8";/*!
* Bootstrap v5.3.8 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5
/*# sourceMappingURL=bootstrap.min.css.map *//*!
* Bootstrap Icons v1.13.1 (https://icons.getbootstrap.com/)
* Copyright 2019-2024 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE)
*/
@font-face {
font-display: block;
font-family: "bootstrap-icons";
src: url("data:font/woff2;base64,d09GMgABAAAAAgucAAsAAAAHavgAAgtIAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACB5gYKmOkQk+c0ATYCJAPAdAvAeAAEIAWEageB/Btb4Ai2Cnrukd1lk2JvbRGh4P0t0imyJHrPXAFo2Y35j4QKcbd+SDewcUijLhehsX/1GercXysC5bbBDDfIdip09v////////////+3kfxHzO3/l/T9pEnTbm7d4cY2hwLChgoihyiHgoeihajqlOrcFEnS1qqTMAioDURhCN8AqiANoB51Yy+hOr2iDNVEU6ZOwX0GR3TvxnogJjYfNHWTKvhWFsDmpRSVs0OLWZ2UUuqW6sD/ymNKCayru4mrOG1Vjd9h+t/C/rB0pcymknCDienvjUzA+2G37brpXFL1PhyhftFO2laGcoyL/xP8UX9Up6fWtodhuV1Ao/MZ4WSCa5i2FKoTqh0lmGGjonBvRgpJCkm1pjK9ENr5p30vn3v5oiifGO0d1fuI55CEJIzmvoPz+XipTpNE/0uc4UXIbdLTS76tde2xhl/pfEV1QZX5relnvWphIiTxFO4NB3hFuKHzkt6uMfGNIug80FtD52+EmZW5db8z2LMyc/egTTce6VzT+bsQJQd6L3S+Jwxs+knRvfeWOMEfQtSsSjnaS5Jr7xs6fw2wsDJDB8ILwsDKLOj8kzCwMmM6nxEGB3q/dyC8F6IDB3p/oPPVTOxWP7gYpAO9Z3j7qI81VQ2If/DEofi51k96/ayof9lvZcrw00sgX3USepov0KOZPJqRmCSBEfHG4BUj9R/ZhbB7zVnyky5NoMFgumEI26AiJQTTkSjSzJRRWnmOMQ6LKjULSGJSpn0dIQlbgp+SxFRWlzbkdqMbGKP9ReMgURN80ISvU5MIl5AeFihPV8fncifzen2z605lGdPkMMvD8+UgszY5kwMLQhlky7YJyvLMggQ9oFru2a+aoF5lBdYvcg562ctIZx3Vi8mRGovV+gvFnAfKqpIUnfNoM7urVYf/VSf/QcUKGMr36gQXAyv5/BuNCP/LviITgMKxmQNFAVCsCmnQOtQMusy4cD8omhcDIwfux8n9D0+6+e/u3o1cLrmVycxmKWQwgjMJCSNxMBKWgAwFN0GZalWGFedXFJxVcYMdarW1QltttVP8dtqh/WrH9ttqx3SI1tbsZeztXQPXHJEHLXhFHYLAUQYIAgcIvkSrRIkKKsIBFgoWYqINVmOi/+r7+GAmH5jXllmqyviOTOnyXaklHAd8AZaHvct8hEyEjI2QGR+DaKqtbudu5yRZdzrLKdhpZEcyJVHOVLlsCqlgDitIvrDdsuwUHXSVIrsIbgqITpFcfAwA4oF7d6+NH6S5KIsTK462WFs50IzSUQorCRC41brXT1/Oc+/z+0NHG2Ri1gYbYFlkd475ZukHKgo7IQDrWirp7Cehnj+TIqolLZQL+Vfyjt0Z2u/dpQ2xk2cm/2O2ISbNOyWQrTRS4mBdzck1XQj5S/iQdZAX8kAhctRsd6r6e6ESmYBs6cTqQc+LyHBoquDO9f33Z/Zu3EmTzhPiQU+AWU/KyVv2QtNardTa/wdogVsqyi2qrA4OwSDw1l8QaBOXeh7igAU4Ady72wq4BUpJ9ddaVJCmgPz8wLj+zT/mv620pQKdyUccjIFrCf7CC6ADGXiJFY31MuKzAAQm7n2GCQaeRm+O+eddlgWcLd5EaZfmXSHQ8gI5AAfG6UwdDi0KmBkDsOk+QSsIeL79+j2WMzOr/yTYmmApWbREL0XmSf7MQoiiqEQBgh6YoPNHAxgcJIwDq9beT+yd7TmoigR2WD5CUvk49852V3YD7sFMAMB/QFThfsoIpYHA8717WflJZl6k5iDRGrZqQRV+S1Osuqi4dcoKFIGjikaicvi37B2edPNfLpdxl5BL7sIOyB1JnBAwURLtyHiPkbgg7zlaEwcK0kWwKGKdBEtt7VKI3/TXMXP3+90dv9Ax/Uvs79JuoFPt4Ct/249970xh3O1CB3fWjEuhhGJwCIHPL5xS065brn2PcyoVezsT0a6jaL2wSWvSOPEHemr+cbo6+x1rWbasrP9e0bLM/i1TCGIBD3gQ++Ad+AcPeBAb+AcvYkE14EW3IFbOA57THbnzQiiuLOtKMUUFBN79AIHhIVp7feMiLSobIwhkhE+BLACokCribcvXX9wC7WDIFn4HXKekjIa4hR94O+w/4N08abEBuC0QHkSMBrhvrxPSbFoMoUABOIWNL1Pzfyl1GVJ9l7KNQjTnhK3whMEZBoc2irqYAfHyE3LpvhYM+AAdsz4YNTCfBPP0TV9gALAM6omgtbL/pnf2HgBD7KISY2UN20ZUrzXV7021/063YBJVrAtdgAmkQImyZVmO3S+Gn/uHtJoQ8nZmmQLE4153+TKpbFF7STxV+JeGMRXGnkZ3TAdH/dT6quRWFd8kPcMMm2QKDQV4COykYXa1+8kfLtdX1+5rV5UsZeeTbQU+EfxfrbT/iONdxHm7CwVqwbiouyWjwOYhw7A8jsyYmXzvUy+02WZuM7cBBQ32uIoFhka1JPv7AD8U/G/N/E86fyfN7CSVoem92ByEhsAj6HSrSu8fD2UysNnaW3t7oezqTj4UuO3AQNIZQPgpp/nSVb7OvJfYLcdR4APBlZz4E5wu1lW6PpCllgXWTDYuBNDZ3SxiO+WWQQttXJAX4y6q1Ruw8xOxqiEt1N9HBYno4ScaWfm/nOl4I2smbP2fpHLCsv8sKew+KWE5LLVsFz0qu6+nVYF8CoG3bPe9xaOpfLT32lt3iyQfeyM8llnvv4y1sAhtXrpnOxxJ8u05XjCUZWIE/KJkt6cOEExyVp21UWDsZ3kt1NL6EyqtaHHM8KVq9VeAasmkZLsld8+M3f2De6K9sWfD3Xa748z8kNMJL1QVX72qgqoKBbIQSAEgJYEgZRVASgIp2oVCAQSKIA2AYJTsVrC9stvdX9Koe+1OS5CULYoOomS3LWtmV+4w0+4J+Yfo1HFStyekng0xqv2T50fNnPrfZv8phdP/xxSulz3u3vb4z3v6x385xsPp9oOGSoSSVKQFRpoGRVpgJPxn+77pYRFqQCikxLnOzWGpVEqT/oueXX1f1bP1ez/4WYTCIxxBKCT/Zyv/TbWoD6zzHDEHmTQCM0aOffLtLtLsdHW/3ZnRWFoS7eqB9Ij0fd6tW7equ6t7WqsVrx7oE+sBRwbkkztIkcJ0zJIRQgeZ/9f3VVe5UUorZRhJptJbMtnenKltmQjgXkDvAXhQ+Z88FovqpwtNqrYL0MPF/YwPmUnyJGmyNsmTk009vWyLx3hMpmQb4z+NuWxSi1jMsxt4JGSVevL+v5lDpBFKJcd3G55InRAKeYgww4ARN8QAeFc3CTIIaJq9c8UAElbd9DW1x33bwBIOmsZDOLxs3/btEoug6ZCzYJcMn4oEaUUkPEHEZSy4MZkeD5D9yJy9LyFqtdbIyyAMSZApUu28ujtvtfenOtHv78/RW6tvhRKCCUYII4wpVJjWVPIRck9cOcH6xU9sq98HuleBQitMFUOL9t2PY+iqxzPrXu/2UEMJIQwwiVt1m94PMlc2OG54o1f/X6miIoSZkASUMRNIGO2fv2aTxHW6AuVrq5D3cihW8LjxRAKSIMwOMef7PdT+ZnVlvzggrJsMAYUgKvtm8js82/z/exBjbi4eKhaSpwiBlVVUnfn/fMzZ99CU7bmyuzHfmIjUoYqCYEGhT6l4N8icVbS2t5brTpwJBBCVTkdYI5uh/28z/tGG8Q1ODccRR0REhIiEiET8Yf55CNQo3MbKvgcVrHfZ1GYXp4EJrysGlZUjanFEtftXBSAAoFkFQm3qVjo7p4ceaHbOYMR0BPhuixwGSLpz8lbBDkEObQgie7/5m610ALz0BiCxPeNbQ6bbQeHlKx5W/j4b7vwrduTGASAyOVxeZxJEgWujGAAS3RDgP3OMu8mNjGuUPgui2L14qN8fO5CfsKJn//8FeAMghSt3ah48efHmTyslKyevoKikrKKqpq6hqaWto6unb2BoZGxi
url("data:font/woff;base64,d09GRgABAAAAAsBAAAsAAAAHavgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAQQAAAGA+ClNLY21hcAAAAYgAADSJAABzBhgqt6FnbHlmAAA2FAACP/gABjSQUHSfOGhlYWQAAnYMAAAAMgAAADZYrKBAaGhlYQACdkAAAAAeAAAAJAJwCS1obXR4AAJ2YAAAAYIAACB0gdj+VmxvY2EAAnfkAAAVMgAAIHgZI2IUbWF4cAACjRgAAAAfAAAAIAlUAWtuYW1lAAKNOAAAAT0AAAJqdjSTuXBvc3QAAo54AAAxxgAAfhucQQEWeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGHUYZzAwMrAwLCP4RKQ1ILSExj4GHwZGJgYWJkZsIKANNcUhgMfGX/KMeoAudKM7gyyQJoRRRETACmUCd8AAAB4nO3dh//OZdsH8HOfl723pL1LRiktyiqElAjZM7Rs2jKT1c7IqtCQmdFQ2iUR0VZURuX6Xusn5Tk+Pvef8Tyv+32fz82v6/f9nud5fI5DQ0opr5Sy4nzhlCo3TWn5/1TZifKj+sSPW1X8xI+7sl1OfI3DjxfVOn5cqSMa/y3/W/5IdZGqo+qqeqq+aqAuUZeqRqqxaqKaqmaquWqhWqrr1Q2qlWqt2qgbVVvVTrVXN6kO6mZ1i+qoblWdVGd1m+qiuqpu6nbVXfVQPVUv1Vv1UX1VP9VfDVAD1SB1hxqshqih6k51l7pXDVPD1Qg1Uo1So9UYNVaNU/ep+9UD6kH1kHpYPaLGqwlqkpqspqhp6nE1Xc1QM9UsNVvNUXPVPDVfvaAWqIVqkVqslqgX1UvqZbVULVPL1SvqVbVCvaFWqlVqtVqj1qp16k21Xm1QG9Um9Y56V21W76n31Vb1pdqmvlLb1Q71tdqpdqlv1G61R32rvlM/qL1qn9qvflO/qwPqoDqkDqsjKq0SlVFZlVN5VVBF6qj6Rx1T/6r/1HGttNZGW+101CldTBfXJXRJXUqX1mV0WV1Ol9cVdEVdSVfWVXRVXU1X1zV0TX2SrqVP1rX1KfpUfZo+XZ+hz9Rn6XP1ebqurqfr6wb6En2pbqgv05frRvoKfaW+Wl+jm+pmurluoVvq63V33UsP0UP1nfoufbe+R9+rh+nheoQeqcfosXqcvk/frx/QD+qH9MP6ET1eP6on6Il6kp6sp+ip+jE9TT+up+tZerZ+Qj+pn9JP62f0s/o5/byeo+fqeXq+fkEv0Av1Ir1YL9Ev6pf0y3qpXqaX61f0q/o1/bpeod/QK/UqvVqv0Rv0Rr1Jv6Xf1u/od/Vm/Z5+X2/RH+gP9Uf6Y/2J/lR/pj/XX+it+ku9TX+lt+sd+mu9U+/S3+jdeo/+Vn+nf9A/6r36N/27/kMf0of1n/qITutEZ3RW53ReF3SRPqr/1f/p40YZbYyxxploUqaYKW5KmJKmlCltypiyppypYCqaSqayqWKqmmqmuqlhapqTTC1zsqltTjGnmtPM6eYMc6Y5y5xtzjHnmvPM+eYCc6G5yNQxF5v65hLTyFxprjGNTXtzk+lgbja3mI7mVtPJdDa3mS6mq+lmbjfdTQ/T0/QyvU0fdZnpa/qZ/magGWTuMIPNEDPU3GnuMnebe8y9ZpgZbkaYkWaUGW3GmLFmnLnP3G8eMA+ah8zD5hEz3jxqJpiJZpKZYqaax8w087iZbmaYmWaWmW2eME+aZ8yz5jnzvJlj5pp5Zr55wSw2L5mXzQrzhllpVpnVZo1ZZ940680Gs9PsMt+Y3WaP+dZ8Z743P5gfzU/mZ7PX/GJ+NfvMfvOb+d38YQ6Yg+aQOWz+NkdM2iQmY7ImZ/LmmPnX/Getddbb4raELWlL2dK2jC1rK9iKtpKtbKvYqvYkW8ueYk+1p9nT7Rn2THuWPdueY8+1F9k69kp7jb3WtrE32ra2o73VdrKdbRfb1Xazt9vutoftaXvZfra/HWAH2kH2DjvYjrAj7Sg72o6xY+04e5+93z5gH7QP2YftI3a8fdROsBPtJDvZTrFT7WN2mn3cTrcz7Ew7y862T9gn7VP2afuMfdY+Z5+3c+xcO8/Oty/YBXahXWQX2yX2RfuSfdkut6/YV+1r9nW7wr5hV9pVdrVdY9fadfZNu95usBvtJvuWfdu+Y9+1m+179n27xX5gP7Qf2Y/tJ/ZT+5n93H5ht9ov7Tb7ld1ud9iv7U67y35jd9vv7Pf2B/uj/cn+bPfaX+yvdp/db3+zv9s/7AF70B6yh+2f9i/7tz1i0zaxGZu1OZu3BXeuO8+d7y5wF7qLXB13savvGrir3NXuGtfYNXHXuutcU9fMNXctXEt3vbvBtXZt3I2ug7vZ3eI6ultdJ9fZ3ea6uJ6ul+vt+ri+rp8b4O5x97rhbpQb48a6ce4+d797wD3oHnIPu0fcePeom+CmusfcNPe4m+5muJlulpvtnnBPuqfc0+4Z96x7zj3v5ri5bp5b4Ba5Je5Ft9S96l5zr7sV7g230q1zb7r1boPb7N5zH7mv3Tdut/vWfee+dz+4H91P7me31+13v7k/3AF30B1yh92f7i93xKVd4jIu63Iu7wquyB11/7hj7l/3nzvuldfeeOud9z746FO+mC/uS/iSvpQv7cv4sr6cL+8r+Iq+kq/sq/iqvpqv7mv4mv4kX8uf4k/1p/nT/Rn+TH+WP9uf48/z5/sL/IX+Yl/X1/P1fQN/ib/UN/SN/bX+Ot/UN/PNfUvfxt/o2/n2/ibfwd/sb/Ed/a3+Nt/Fd/XdfA/f0/fxfX0/398P8EP8UH+nv8vf7e/x9/phfrgf4Uf6UX6MH+vH+fv8A/5BP94/6if4qf4xP9PP8rP9E/5J/5R/3s/xc/08P9+/4Bf4hX6RX+yX+Bf9S/5lv9Qv86v8ar/Gr/Xr/Jt+vd/gN/pN/i3/tn/Hv++3+A/8h/4j/7H/xH/qv/Hf+R/8j/4X/5f/2x/xaZ/xWZ/zeV/wRf6o/9f/548HE1zwIYQYUqFYKB5KhFKhdCgbyoXyoVKoHKqEquGUcHo4I5wdzgnnhwvCheGicHGoG+qF+qFBuCpcHa4JjUOTcG24LjQNzULz0CK0DNeHG0Kr0DrcFDqEm8MtoXfoE/qGQeGOMDgMCUPDXWF4GBEmh6nhsTAtPB6mhxlhZpgVZocnwpPhqfB0eCY8G54Lz4c5YW6YF+aHF8KCsDB8Gj4Ln4cvwtbwZdgWdoSdYVf4JuwOe8K34bvwffgh/Bh+Cj+HveGX8GvYF/aH38Lv4Y9wIBwMh8Lh8Ff4OxwJSciEbMiFovBPOBb+Df+F41FFHU200UUfQ4wxFYvF4rFkLBVLxzKxbCwfK8SKsXKsEqvGarF6rBlPirXiybF2PCWeGk+Lp8cz4pnxrHh2PEfNjhfGi2KdeHGsG+vF+rFBvEI3ilfGq+LV8ZrYOF4br4tNY7PYPLaILeP18YbYKraObWO72D7eFDvEm+MtsWO8NXaKneNtsUvsGrvFHrFP7Bv7xf5xQBwYB8XBcUgcGu+Md8W74z3x3jgsjoyj4sPxkTg+PhonxIlxUpwcZ8XZ8Yn4ZHwmPhufj3Pi3Dgvzo8vxAVxcVwSX4ovx6VxeXwlvhpfi6/HVXF1XBPXxvVxQ9wYN8W34tvx3bglfhA/jp/ET+O38bv4ffwp/hx/jfvi/vhb/D3+EQ/Eg/FQPBz/jH/Fv+ORmI65mI+FWBSPxmPxeMqkQqpkqlSqdKpMqmyqfKpCqmKqUqpyqnqqRqqm+lx9oX5Rv+rvTXkz2Sw1y8xy84p51bxu1trb7FK7zO6x37qurpu73fVwC93v/nrfyf/jjwUVdKgQ6oQ24cbQLwwIA8Pd4Z7wZ0jHGalyob+6Tv3su6eiOerP9a398mDDJ+FoLBcrxXNTqfijOtcGG23KFrNDXF030o12e/yV/mf/hz/gD/o/w5UxiZlUNZmAP1Wfqb/U3zroOqZgiqy2Rl1uL7UN1RX2Mnu5etQ2
}
.bi::before,
[class^="bi-"]::before,
[class*=" bi-"]::before {
display: inline-block;
font-family: bootstrap-icons !important;
font-style: normal;
font-weight: normal !important;
font-variant: normal;
text-transform: none;
line-height: 1;
vertical-align: -.125em;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.bi-123::before { content: "\\f67f"; }
.bi-alarm-fill::before { content: "\\f101"; }
.bi-alarm::before { content: "\\f102"; }
.bi-align-bottom::before { content: "\\f103"; }
.bi-align-center::before { content: "\\f104"; }
.bi-align-end::before { content: "\\f105"; }
.bi-align-middle::before { content: "\\f106"; }
.bi-align-start::before { content: "\\f107"; }
.bi-align-top::before { content: "\\f108"; }
.bi-alt::before { content: "\\f109"; }
.bi-app-indicator::before { content: "\\f10a"; }
.bi-app::before { content: "\\f10b"; }
.bi-archive-fill::before { content: "\\f10c"; }
.bi-archive::before { content: "\\f10d"; }
.bi-arrow-90deg-down::before { content: "\\f10e"; }
.bi-arrow-90deg-left::before { content: "\\f10f"; }
.bi-arrow-90deg-right::before { content: "\\f110"; }
.bi-arrow-90deg-up::before { content: "\\f111"; }
.bi-arrow-bar-down::before { content: "\\f112"; }
.bi-arrow-bar-left::before { content: "\\f113"; }
.bi-arrow-bar-right::before { content: "\\f114"; }
.bi-arrow-bar-up::before { content: "\\f115"; }
.bi-arrow-clockwise::before { content: "\\f116"; }
.bi-arrow-counterclockwise::before { content: "\\f117"; }
.bi-arrow-down-circle-fill::before { content: "\\f118"; }
.bi-arrow-down-circle::before { content: "\\f119"; }
.bi-arrow-down-left-circle-fill::before { content: "\\f11a"; }
.bi-arrow-down-left-circle::before { content: "\\f11b"; }
.bi-arrow-down-left-square-fill::before { content: "\\f11c"; }
.bi-arrow-down-left-square::before { content: "\\f11d"; }
.bi-arrow-down-left::before { content: "\\f11e"; }
.bi-arrow-down-right-circle-fill::before { content: "\\f11f"; }
.bi-arrow-down-right-circle::before { content: "\\f120"; }
.bi-arrow-down-right-square-fill::before { content: "\\f121"; }
.bi-arrow-down-right-square::before { content: "\\f122"; }
.bi-arrow-down-right::before { content: "\\f123"; }
.bi-arrow-down-short::before { content: "\\f124"; }
.bi-arrow-down-square-fill::before { content: "\\f125"; }
.bi-arrow-down-square::before { content: "\\f126"; }
.bi-arrow-down-up::before { content: "\\f127"; }
.bi-arrow-down::before { content: "\\f128"; }
.bi-arrow-left-circle-fill::before { content: "\\f129"; }
.bi-arrow-left-circle::before { content: "\\f12a"; }
.bi-arrow-left-right::before { content: "\\f12b"; }
.bi-arrow-left-short::before { content: "\\f12c"; }
.bi-arrow-left-square-fill::before { content: "\\f12d"; }
.bi-arrow-left-square::before { content: "\\f12e"; }
.bi-arrow-left::before { content: "\\f12f"; }
.bi-arrow-repeat::before { content: "\\f130"; }
.bi-arrow-return-left::before { content: "\\f131"; }
.bi-arrow-return-right::before { content: "\\f132"; }
.bi-arrow-right-circle-fill::before { content: "\\f133"; }
.bi-arrow-right-circle::before { content: "\\f134"; }
.bi-arrow-right-short::before { content: "\\f135"; }
.bi-arrow-right-square-fill::before { content: "\\f136"; }
.bi-arrow-right-square::before { content: "\\f137"; }
.bi-arrow-right::before { content: "\\f138"; }
.bi-arrow-up-circle-fill::before { content: "\\f139"; }
.bi-arrow-up-circle::before { content: "\\f13a"; }
.bi-arrow-up-left-circle-fill::before { content: "\\f13b"; }
.bi-arrow-up-left-circle::before { content: "\\f13c"; }
.bi-arrow-up-left-square-fill::before { content: "\\f13d"; }
.bi-arrow-up-left-square::before { content: "\\f13e"; }
.bi-arrow-up-left::before { content: "\\f13f"; }
.bi-arrow-up-right-circle-fill::before { content: "\\f140"; }
.bi-arrow-up-right-circle::before { content: "\\f141"; }
.bi-arrow-up-right-square-fill::before { content: "\\f142"; }
.bi-arrow-up-right-square::before { content: "\\f143"; }
.bi-arrow-up-right::before { content: "\\f144"; }
.bi-arrow-up-short::before { content: "\\f145"; }
.bi-arrow-up-square-fill::before { content: "\\f146"; }
.bi-arrow-up-square::before { content: "\\f147"; }
.bi-arrow-up::before { content: "\\f148"; }
.bi-arrows-angle-contract::before { content: "\\f149"; }
.bi-arrows-angle-expand::before { content: "\\f14a"; }
.bi-arrows-collapse::before { content: "\\f14b"; }
.bi-arrows-expand::before { content: "\\f14c"; }
.bi-arrows-fullscreen::before { content: "\\f14d"; }
.bi-arrows-move::before { content: "\\f14e"; }
.bi-aspect-ratio-fill::before { content: "\\f14f"; }
.bi-aspect-ratio::before { content: "\\f150"; }
.bi-asterisk::before { content: "\\f151"; }
.bi-at::before { content: "\\f152"; }
.bi-award-fill::before { content: "\\f153"; }
.bi-award::before { content: "\\f154"; }
.bi-back::before { content: "\\f155"; }
.bi-backspace-fill::before { content: "\\f156"; }
.bi-backspace-reverse-fill::before { content: "\\f157"; }
.bi-backspace-reverse::before { content: "\\f158"; }
.bi-backspace::before { content: "\\f159"; }
.bi-badge-3d-fill::before { content: "\\f15a"; }
.bi-badge-3d::before { content: "\\f15b"; }
.bi-badge-4k-fill::before { content: "\\f15c"; }
.bi-badge-4k::before { content: "\\f15d"; }
.bi-badge-8k-fill::before { content: "\\f15e"; }
.bi-badge-8k::before { content: "\\f15f"; }
.bi-badge-ad-fill::before { content: "\\f160"; }
.bi-badge-ad::before { content: "\\f161"; }
.bi-badge-ar-fill::before { content: "\\f162"; }
.bi-badge-ar::before { content: "\\f163"; }
.bi-badge-cc-fill::before { content: "\\f164"; }
.bi-badge-cc::before { content: "\\f165"; }
.bi-badge-hd-fill::before { content: "\\f166"; }
.bi-badge-hd::before { content: "\\f167"; }
.bi-badge-tm-fill::before { content: "\\f168"; }
.bi-badge-tm::before { content: "\\f169"; }
.bi-badge-vo-fill::before { content: "\\f16a"; }
.bi-badge-vo::before { content: "\\f16b"; }
.bi-badge-vr-fill::before { content: "\\f16c"; }
.bi-badge-vr::before { content: "\\f16d"; }
.bi-badge-wc-fill::before { content: "\\f16e"; }
.bi-badge-wc::before { content: "\\f16f"; }
.bi-bag-check-fill::before { content: "\\f170"; }
.bi-bag-check::before { content: "\\f171"; }
.bi-bag-dash-fill::before { content: "\\f172"; }
.bi-bag-dash::before { content: "\\f173"; }
.bi-bag-fill::before { content: "\\f174"; }
.bi-bag-plus-fill::before { content: "\\f175"; }
.bi-bag-plus::before { content: "\\f176"; }
.bi-bag-x-fill::before { content: "\\f177"; }
.bi-bag-x::before { content: "\\f178"; }
.bi-bag::before { content: "\\f179"; }
.bi-bar-chart-fill::before { content: "\\f17a"; }
.bi-bar-chart-line-fill::before { content: "\\f17b"; }
.bi-bar-chart-line::before { content: "\\f17c"; }
.bi-bar-chart-steps::before { content: "\\f17d"; }
.bi-bar-chart::before { content: "\\f17e"; }
.bi-basket-fill::before { content: "\\f17f"; }
.bi-basket::before { content: "\\f180"; }
.bi-basket2-fill::before { content: "\\f181"; }
.bi-basket2::before { content: "\\f182"; }
.bi-basket3-fill::before { content: "\\f183"; }
.bi-basket3::before { content: "\\f184"; }
.bi-battery-charging::before { content: "\\f185"; }
.bi-battery-full::before { content: "\\f186"; }
.bi-battery-half::before { content: "\\f187"; }
.bi-battery::before { content: "\\f188"; }
.bi-bell-fill::before { content: "\\f189"; }
.bi-bell::before { content: "\\f18a"; }
.bi-bezier::before { content: "\\f18b"; }
.bi-bezier2::before { content: "\\f18c"; }
.bi-bicycle::before { content: "\\f18d"; }
.bi-binoculars-fill::before { content: "\\f18e"; }
.bi-binoculars::before { content: "\\f18f"; }
.bi-blockquote-left::before { content: "\\f190"; }
.bi-blockquote-right::before { content: "\\f191"; }
.bi-book-fill::before { content: "\\f192"; }
.bi-book-half::before { content: "\\f193"; }
.bi-book::before { content: "\\f194"; }
.bi-bookmark-check-fill::before { content: "\\f195"; }
.bi-bookmark-check::before { content: "\\f196"; }
.bi-bookmark-dash-fill::before { content: "\\f197"; }
.bi-bookmark-dash::before { content: "\\f198"; }
.bi-bookmark-fill::before { content: "\\f199"; }
.bi-bookmark-heart-fill::before { content: "\\f19a"; }
.bi-bookmark-heart::before { content: "\\f19b"; }
.bi-bookmark-plus-fill::before { content: "\\f19c"; }
.bi-bookmark-plus::before { content: "\\f19d"; }
.bi-bookmark-star-fill::before { content: "\\f19e"; }
.bi-bookmark-star::before { content: "\\f19f"; }
.bi-bookmark-x-fill::before { content: "\\f1a0"; }
.bi-bookmark-x::before { content: "\\f1a1"; }
.bi-bookmark::before { content: "\\f1a2"; }
.bi-bookmarks-fill::before { content: "\\f1a3"; }
.bi-bookmarks::before { content: "\\f1a4"; }
.bi-bookshelf::before { content: "\\f1a5"; }
.bi-bootstrap-fill::before { content: "\\f1a6"; }
.bi-bootstrap-reboot::before { content: "\\f1a7"; }
.bi-bootstrap::before { content: "\\f1a8"; }
.bi-border-all::before { content: "\\f1a9"; }
.bi-border-bottom::before { content: "\\f1aa"; }
.bi-border-center::before { content: "\\f1ab"; }
.bi-border-inner::before { content: "\\f1ac"; }
.bi-border-left::before { content: "\\f1ad"; }
.bi-border-middle::before { content: "\\f1ae"; }
.bi-border-outer::before { content: "\\f1af"; }
.bi-border-right::before { content: "\\f1b0"; }
.bi-border-style::before { content: "\\f1b1"; }
.bi-border-top::before { content: "\\f1b2"; }
.bi-border-width::before { content: "\\f1b3"; }
.bi-border::before { content: "\\f1b4"; }
.bi-bounding-box-circles::before { content: "\\f1b5"; }
.bi-bounding-box::before { content: "\\f1b6"; }
.bi-box-arrow-down-left::before { content: "\\f1b7"; }
.bi-box-arrow-down-right::before { content: "\\f1b8"; }
.bi-box-arrow-down::before { content: "\\f1b9"; }
.bi-box-arrow-in-down-left::before { content: "\\f1ba"; }
.bi-box-arrow-in-down-right::before { content: "\\f1bb"; }
.bi-box-arrow-in-down::before { content: "\\f1bc"; }
.bi-box-arrow-in-left::before { content: "\\f1bd"; }
.bi-box-arrow-in-right::before { content: "\\f1be"; }
.bi-box-arrow-in-up-left::before { content: "\\f1bf"; }
.bi-box-arrow-in-up-right::before { content: "\\f1c0"; }
.bi-box-arrow-in-up::before { content: "\\f1c1"; }
.bi-box-arrow-left::before { content: "\\f1c2"; }
.bi-box-arrow-right::before { content: "\\f1c3"; }
.bi-box-arrow-up-left::before { content: "\\f1c4"; }
.bi-box-arrow-up-right::before { content: "\\f1c5"; }
.bi-box-arrow-up::before { content: "\\f1c6"; }
.bi-box-seam::before { content: "\\f1c7"; }
.bi-box::before { content: "\\f1c8"; }
.bi-braces::before { content: "\\f1c9"; }
.bi-bricks::before { content: "\\f1ca"; }
.bi-briefcase-fill::before { content: "\\f1cb"; }
.bi-briefcase::before { content: "\\f1cc"; }
.bi-brightness-alt-high-fill::before { content: "\\f1cd"; }
.bi-brightness-alt-high::before { content: "\\f1ce"; }
.bi-brightness-alt-low-fill::before { content: "\\f1cf"; }
.bi-brightness-alt-low::before { content: "\\f1d0"; }
.bi-brightness-high-fill::before { content: "\\f1d1"; }
.bi-brightness-high::before { content: "\\f1d2"; }
.bi-brightness-low-fill::before { content: "\\f1d3"; }
.bi-brightness-low::before { content: "\\f1d4"; }
.bi-broadcast-pin::before { content: "\\f1d5"; }
.bi-broadcast::before { content: "\\f1d6"; }
.bi-brush-fill::before { content: "\\f1d7"; }
.bi-brush::before { content: "\\f1d8"; }
.bi-bucket-fill::before { content: "\\f1d9"; }
.bi-bucket::before { content: "\\f1da"; }
.bi-bug-fill::before { content: "\\f1db"; }
.bi-bug::before { content: "\\f1dc"; }
.bi-building::before { content: "\\f1dd"; }
.bi-bullseye::before { content: "\\f1de"; }
.bi-calculator-fill::before { content: "\\f1df"; }
.bi-calculator::before { content: "\\f1e0"; }
.bi-calendar-check-fill::before { content: "\\f1e1"; }
.bi-calendar-check::before { content: "\\f1e2"; }
.bi-calendar-date-fill::before { content: "\\f1e3"; }
.bi-calendar-date::before { content: "\\f1e4"; }
.bi-calendar-day-fill::before { content: "\\f1e5"; }
.bi-calendar-day::before { content: "\\f1e6"; }
.bi-calendar-event-fill::before { content: "\\f1e7"; }
.bi-calendar-event::before { content: "\\f1e8"; }
.bi-calendar-fill::before { content: "\\f1e9"; }
.bi-calendar-minus-fill::before { content: "\\f1ea"; }
.bi-calendar-minus::before { content: "\\f1eb"; }
.bi-calendar-month-fill::before { content: "\\f1ec"; }
.bi-calendar-month::before { content: "\\f1ed"; }
.bi-calendar-plus-fill::before { content: "\\f1ee"; }
.bi-calendar-plus::before { content: "\\f1ef"; }
.bi-calendar-range-fill::before { content: "\\f1f0"; }
.bi-calendar-range::before { content: "\\f1f1"; }
.bi-calendar-week-fill::before { content: "\\f1f2"; }
.bi-calendar-week::before { content: "\\f1f3"; }
.bi-calendar-x-fill::before { content: "\\f1f4"; }
.bi-calendar-x::before { content: "\\f1f5"; }
.bi-calendar::before { content: "\\f1f6"; }
.bi-calendar2-check-fill::before { content: "\\f1f7"; }
.bi-calendar2-check::before { content: "\\f1f8"; }
.bi-calendar2-date-fill::before { content: "\\f1f9"; }
.bi-calendar2-date::before { content: "\\f1fa"; }
.bi-calendar2-day-fill::before { content: "\\f1fb"; }
.bi-calendar2-day::before { content: "\\f1fc"; }
.bi-calendar2-event-fill::before { content: "\\f1fd"; }
.bi-calendar2-event::before { content: "\\f1fe"; }
.bi-calendar2-fill::before { content: "\\f1ff"; }
.bi-calendar2-minus-fill::before { content: "\\f200"; }
.bi-calendar2-minus::before { content: "\\f201"; }
.bi-calendar2-month-fill::before { content: "\\f202"; }
.bi-calendar2-month::before { content: "\\f203"; }
.bi-calendar2-plus-fill::before { content: "\\f204"; }
.bi-calendar2-plus::before { content: "\\f205"; }
.bi-calendar2-range-fill::before { content: "\\f206"; }
.bi-calendar2-range::before { content: "\\f207"; }
.bi-calendar2-week-fill::before { content: "\\f208"; }
.bi-calendar2-week::before { content: "\\f209"; }
.bi-calendar2-x-fill::before { content: "\\f20a"; }
.bi-calendar2-x::before { content: "\\f20b"; }
.bi-calendar2::before { content: "\\f20c"; }
.bi-calendar3-event-fill::before { content: "\\f20d"; }
.bi-calendar3-event::before { content: "\\f20e"; }
.bi-calendar3-fill::before { content: "\\f20f"; }
.bi-calendar3-range-fill::before { content: "\\f210"; }
.bi-calendar3-range::before { content: "\\f211"; }
.bi-calendar3-week-fill::before { content: "\\f212"; }
.bi-calendar3-week::before { content: "\\f213"; }
.bi-calendar3::before { content: "\\f214"; }
.bi-calendar4-event::before { content: "\\f215"; }
.bi-calendar4-range::before { content: "\\f216"; }
.bi-calendar4-week::before { content: "\\f217"; }
.bi-calendar4::before { content: "\\f218"; }
.bi-camera-fill::before { content: "\\f219"; }
.bi-camera-reels-fill::before { content: "\\f21a"; }
.bi-camera-reels::before { content: "\\f21b"; }
.bi-camera-video-fill::before { content: "\\f21c"; }
.bi-camera-video-off-fill::before { content: "\\f21d"; }
.bi-camera-video-off::before { content: "\\f21e"; }
.bi-camera-video::before { content: "\\f21f"; }
.bi-camera::before { content: "\\f220"; }
.bi-camera2::before { content: "\\f221"; }
.bi-capslock-fill::before { content: "\\f222"; }
.bi-capslock::before { content: "\\f223"; }
.bi-card-checklist::before { content: "\\f224"; }
.bi-card-heading::before { content: "\\f225"; }
.bi-card-image::before { content: "\\f226"; }
.bi-card-list::before { content: "\\f227"; }
.bi-card-text::before { content: "\\f228"; }
.bi-caret-down-fill::before { content: "\\f229"; }
.bi-caret-down-square-fill::before { content: "\\f22a"; }
.bi-caret-down-square::before { content: "\\f22b"; }
.bi-caret-down::before { content: "\\f22c"; }
.bi-caret-left-fill::before { content: "\\f22d"; }
.bi-caret-left-square-fill::before { content: "\\f22e"; }
.bi-caret-left-square::before { content: "\\f22f"; }
.bi-caret-left::before { content: "\\f230"; }
.bi-caret-right-fill::before { content: "\\f231"; }
.bi-caret-right-square-fill::before { content: "\\f232"; }
.bi-caret-right-square::before { content: "\\f233"; }
.bi-caret-right::before { content: "\\f234"; }
.bi-caret-up-fill::before { content: "\\f235"; }
.bi-caret-up-square-fill::before { content: "\\f236"; }
.bi-caret-up-square::before { content: "\\f237"; }
.bi-caret-up::before { content: "\\f238"; }
.bi-cart-check-fill::before { content: "\\f239"; }
.bi-cart-check::before { content: "\\f23a"; }
.bi-cart-dash-fill::before { content: "\\f23b"; }
.bi-cart-dash::before { content: "\\f23c"; }
.bi-cart-fill::before { content: "\\f23d"; }
.bi-cart-plus-fill::before { content: "\\f23e"; }
.bi-cart-plus::before { content: "\\f23f"; }
.bi-cart-x-fill::before { content: "\\f240"; }
.bi-cart-x::before { content: "\\f241"; }
.bi-cart::before { content: "\\f242"; }
.bi-cart2::before { content: "\\f243"; }
.bi-cart3::before { content: "\\f244"; }
.bi-cart4::before { content: "\\f245"; }
.bi-cash-stack::before { content: "\\f246"; }
.bi-cash::before { content: "\\f247"; }
.bi-cast::before { content: "\\f248"; }
.bi-chat-dots-fill::before { content: "\\f249"; }
.bi-chat-dots::before { content: "\\f24a"; }
.bi-chat-fill::before { content: "\\f24b"; }
.bi-chat-left-dots-fill::before { content: "\\f24c"; }
.bi-chat-left-dots::before { content: "\\f24d"; }
.bi-chat-left-fill::before { content: "\\f24e"; }
.bi-chat-left-quote-fill::before { content: "\\f24f"; }
.bi-chat-left-quote::before { content: "\\f250"; }
.bi-chat-left-text-fill::before { content: "\\f251"; }
.bi-chat-left-text::before { content: "\\f252"; }
.bi-chat-left::before { content: "\\f253"; }
.bi-chat-quote-fill::before { content: "\\f254"; }
.bi-chat-quote::before { content: "\\f255"; }
.bi-chat-right-dots-fill::before { content: "\\f256"; }
.bi-chat-right-dots::before { content: "\\f257"; }
.bi-chat-right-fill::before { content: "\\f258"; }
.bi-chat-right-quote-fill::before { content: "\\f259"; }
.bi-chat-right-quote::before { content: "\\f25a"; }
.bi-chat-right-text-fill::before { content: "\\f25b"; }
.bi-chat-right-text::before { content: "\\f25c"; }
.bi-chat-right::before { content: "\\f25d"; }
.bi-chat-square-dots-fill::before { content: "\\f25e"; }
.bi-chat-square-dots::before { content: "\\f25f"; }
.bi-chat-square-fill::before { content: "\\f260"; }
.bi-chat-square-quote-fill::before { content: "\\f261"; }
.bi-chat-square-quote::before { content: "\\f262"; }
.bi-chat-square-text-fill::before { content: "\\f263"; }
.bi-chat-square-text::before { content: "\\f264"; }
.bi-chat-square::before { content: "\\f265"; }
.bi-chat-text-fill::before { content: "\\f266"; }
.bi-chat-text::before { content: "\\f267"; }
.bi-chat::before { content: "\\f268"; }
.bi-check-all::before { content: "\\f269"; }
.bi-check-circle-fill::before { content: "\\f26a"; }
.bi-check-circle::before { content: "\\f26b"; }
.bi-check-square-fill::before { content: "\\f26c"; }
.bi-check-square::before { content: "\\f26d"; }
.bi-check::before { content: "\\f26e"; }
.bi-check2-all::before { content: "\\f26f"; }
.bi-check2-circle::before { content: "\\f270"; }
.bi-check2-square::before { content: "\\f271"; }
.bi-check2::before { content: "\\f272"; }
.bi-chevron-bar-contract::before { content: "\\f273"; }
.bi-chevron-bar-down::before { content: "\\f274"; }
.bi-chevron-bar-expand::before { content: "\\f275"; }
.bi-chevron-bar-left::before { content: "\\f276"; }
.bi-chevron-bar-right::before { content: "\\f277"; }
.bi-chevron-bar-up::before { content: "\\f278"; }
.bi-chevron-compact-down::before { content: "\\f279"; }
.bi-chevron-compact-left::before { content: "\\f27a"; }
.bi-chevron-compact-right::before { content: "\\f27b"; }
.bi-chevron-compact-up::before { content: "\\f27c"; }
.bi-chevron-contract::before { content: "\\f27d"; }
.bi-chevron-double-down::before { content: "\\f27e"; }
.bi-chevron-double-left::before { content: "\\f27f"; }
.bi-chevron-double-right::before { content: "\\f280"; }
.bi-chevron-double-up::before { content: "\\f281"; }
.bi-chevron-down::before { content: "\\f282"; }
.bi-chevron-expand::before { content: "\\f283"; }
.bi-chevron-left::before { content: "\\f284"; }
.bi-chevron-right::before { content: "\\f285"; }
.bi-chevron-up::before { content: "\\f286"; }
.bi-circle-fill::before { content: "\\f287"; }
.bi-circle-half::before { content: "\\f288"; }
.bi-circle-square::before { content: "\\f289"; }
.bi-circle::before { content: "\\f28a"; }
.bi-clipboard-check::before { content: "\\f28b"; }
.bi-clipboard-data::before { content: "\\f28c"; }
.bi-clipboard-minus::before { content: "\\f28d"; }
.bi-clipboard-plus::before { content: "\\f28e"; }
.bi-clipboard-x::before { content: "\\f28f"; }
.bi-clipboard::before { content: "\\f290"; }
.bi-clock-fill::before { content: "\\f291"; }
.bi-clock-history::before { content: "\\f292"; }
.bi-clock::before { content: "\\f293"; }
.bi-cloud-arrow-down-fill::before { content: "\\f294"; }
.bi-cloud-arrow-down::before { content: "\\f295"; }
.bi-cloud-arrow-up-fill::before { content: "\\f296"; }
.bi-cloud-arrow-up::before { content: "\\f297"; }
.bi-cloud-check-fill::before { content: "\\f298"; }
.bi-cloud-check::before { content: "\\f299"; }
.bi-cloud-download-fill::before { content: "\\f29a"; }
.bi-cloud-download::before { content: "\\f29b"; }
.bi-cloud-drizzle-fill::before { content: "\\f29c"; }
.bi-cloud-drizzle::before { content: "\\f29d"; }
.bi-cloud-fill::before { content: "\\f29e"; }
.bi-cloud-fog-fill::before { content: "\\f29f"; }
.bi-cloud-fog::before { content: "\\f2a0"; }
.bi-cloud-fog2-fill::before { content: "\\f2a1"; }
.bi-cloud-fog2::before { content: "\\f2a2"; }
.bi-cloud-hail-fill::before { content: "\\f2a3"; }
.bi-cloud-hail::before { content: "\\f2a4"; }
.bi-cloud-haze-fill::before { content: "\\f2a6"; }
.bi-cloud-haze::before { content: "\\f2a7"; }
.bi-cloud-haze2-fill::before { content: "\\f2a8"; }
.bi-cloud-lightning-fill::before { content: "\\f2a9"; }
.bi-cloud-lightning-rain-fill::before { content: "\\f2aa"; }
.bi-cloud-lightning-rain::before { content: "\\f2ab"; }
.bi-cloud-lightning::before { content: "\\f2ac"; }
.bi-cloud-minus-fill::before { content: "\\f2ad"; }
.bi-cloud-minus::before { content: "\\f2ae"; }
.bi-cloud-moon-fill::before { content: "\\f2af"; }
.bi-cloud-moon::before { content: "\\f2b0"; }
.bi-cloud-plus-fill::before { content: "\\f2b1"; }
.bi-cloud-plus::before { content: "\\f2b2"; }
.bi-cloud-rain-fill::before { content: "\\f2b3"; }
.bi-cloud-rain-heavy-fill::before { content: "\\f2b4"; }
.bi-cloud-rain-heavy::before { content: "\\f2b5"; }
.bi-cloud-rain::before { content: "\\f2b6"; }
.bi-cloud-slash-fill::before { content: "\\f2b7"; }
.bi-cloud-slash::before { content: "\\f2b8"; }
.bi-cloud-sleet-fill::before { content: "\\f2b9"; }
.bi-cloud-sleet::before { content: "\\f2ba"; }
.bi-cloud-snow-fill::before { content: "\\f2bb"; }
.bi-cloud-snow::before { content: "\\f2bc"; }
.bi-cloud-sun-fill::before { content: "\\f2bd"; }
.bi-cloud-sun::before { content: "\\f2be"; }
.bi-cloud-upload-fill::before { content: "\\f2bf"; }
.bi-cloud-upload::before { content: "\\f2c0"; }
.bi-cloud::before { content: "\\f2c1"; }
.bi-clouds-fill::before { content: "\\f2c2"; }
.bi-clouds::before { content: "\\f2c3"; }
.bi-cloudy-fill::before { content: "\\f2c4"; }
.bi-cloudy::before { content: "\\f2c5"; }
.bi-code-slash::before { content: "\\f2c6"; }
.bi-code-square::before { content: "\\f2c7"; }
.bi-code::before { content: "\\f2c8"; }
.bi-collection-fill::before { content: "\\f2c9"; }
.bi-collection-play-fill::before { content: "\\f2ca"; }
.bi-collection-play::before { content: "\\f2cb"; }
.bi-collection::before { content: "\\f2cc"; }
.bi-columns-gap::before { content: "\\f2cd"; }
.bi-columns::before { content: "\\f2ce"; }
.bi-command::before { content: "\\f2cf"; }
.bi-compass-fill::before { content: "\\f2d0"; }
.bi-compass::before { content: "\\f2d1"; }
.bi-cone-striped::before { content: "\\f2d2"; }
.bi-cone::before { content: "\\f2d3"; }
.bi-controller::before { content: "\\f2d4"; }
.bi-cpu-fill::before { content: "\\f2d5"; }
.bi-cpu::before { content: "\\f2d6"; }
.bi-credit-card-2-back-fill::before { content: "\\f2d7"; }
.bi-credit-card-2-back::before { content: "\\f2d8"; }
.bi-credit-card-2-front-fill::before { content: "\\f2d9"; }
.bi-credit-card-2-front::before { content: "\\f2da"; }
.bi-credit-card-fill::before { content: "\\f2db"; }
.bi-credit-card::before { content: "\\f2dc"; }
.bi-crop::before { content: "\\f2dd"; }
.bi-cup-fill::before { content: "\\f2de"; }
.bi-cup-straw::before { content: "\\f2df"; }
.bi-cup::before { content: "\\f2e0"; }
.bi-cursor-fill::before { content: "\\f2e1"; }
.bi-cursor-text::before { content: "\\f2e2"; }
.bi-cursor::before { content: "\\f2e3"; }
.bi-dash-circle-dotted::before { content: "\\f2e4"; }
.bi-dash-circle-fill::before { content: "\\f2e5"; }
.bi-dash-circle::before { content: "\\f2e6"; }
.bi-dash-square-dotted::before { content: "\\f2e7"; }
.bi-dash-square-fill::before { content: "\\f2e8"; }
.bi-dash-square::before { content: "\\f2e9"; }
.bi-dash::before { content: "\\f2ea"; }
.bi-diagram-2-fill::before { content: "\\f2eb"; }
.bi-diagram-2::before { content: "\\f2ec"; }
.bi-diagram-3-fill::before { content: "\\f2ed"; }
.bi-diagram-3::before { content: "\\f2ee"; }
.bi-diamond-fill::before { content: "\\f2ef"; }
.bi-diamond-half::before { content: "\\f2f0"; }
.bi-diamond::before { content: "\\f2f1"; }
.bi-dice-1-fill::before { content: "\\f2f2"; }
.bi-dice-1::before { content: "\\f2f3"; }
.bi-dice-2-fill::before { content: "\\f2f4"; }
.bi-dice-2::before { content: "\\f2f5"; }
.bi-dice-3-fill::before { content: "\\f2f6"; }
.bi-dice-3::before { content: "\\f2f7"; }
.bi-dice-4-fill::before { content: "\\f2f8"; }
.bi-dice-4::before { content: "\\f2f9"; }
.bi-dice-5-fill::before { content: "\\f2fa"; }
.bi-dice-5::before { content: "\\f2fb"; }
.bi-dice-6-fill::before { content: "\\f2fc"; }
.bi-dice-6::before { content: "\\f2fd"; }
.bi-disc-fill::before { content: "\\f2fe"; }
.bi-disc::before { content: "\\f2ff"; }
.bi-discord::before { content: "\\f300"; }
.bi-display-fill::before { content: "\\f301"; }
.bi-display::before { content: "\\f302"; }
.bi-distribute-horizontal::before { content: "\\f303"; }
.bi-distribute-vertical::before { content: "\\f304"; }
.bi-door-closed-fill::before { content: "\\f305"; }
.bi-door-closed::before { content: "\\f306"; }
.bi-door-open-fill::before { content: "\\f307"; }
.bi-door-open::before { content: "\\f308"; }
.bi-dot::before { content: "\\f309"; }
.bi-download::before { content: "\\f30a"; }
.bi-droplet-fill::before { content: "\\f30b"; }
.bi-droplet-half::before { content: "\\f30c"; }
.bi-droplet::before { content: "\\f30d"; }
.bi-earbuds::before { content: "\\f30e"; }
.bi-easel-fill::before { content: "\\f30f"; }
.bi-easel::before { content: "\\f310"; }
.bi-egg-fill::before { content: "\\f311"; }
.bi-egg-fried::before { content: "\\f312"; }
.bi-egg::before { content: "\\f313"; }
.bi-eject-fill::before { content: "\\f314"; }
.bi-eject::before { content: "\\f315"; }
.bi-emoji-angry-fill::before { content: "\\f316"; }
.bi-emoji-angry::before { content: "\\f317"; }
.bi-emoji-dizzy-fill::before { content: "\\f318"; }
.bi-emoji-dizzy::before { content: "\\f319"; }
.bi-emoji-expressionless-fill::before { content: "\\f31a"; }
.bi-emoji-expressionless::before { content: "\\f31b"; }
.bi-emoji-frown-fill::before { content: "\\f31c"; }
.bi-emoji-frown::before { content: "\\f31d"; }
.bi-emoji-heart-eyes-fill::before { content: "\\f31e"; }
.bi-emoji-heart-eyes::before { content: "\\f31f"; }
.bi-emoji-laughing-fill::before { content: "\\f320"; }
.bi-emoji-laughing::before { content: "\\f321"; }
.bi-emoji-neutral-fill::before { content: "\\f322"; }
.bi-emoji-neutral::before { content: "\\f323"; }
.bi-emoji-smile-fill::before { content: "\\f324"; }
.bi-emoji-smile-upside-down-fill::before { content: "\\f325"; }
.bi-emoji-smile-upside-down::before { content: "\\f326"; }
.bi-emoji-smile::before { content: "\\f327"; }
.bi-emoji-sunglasses-fill::before { content: "\\f328"; }
.bi-emoji-sunglasses::before { content: "\\f329"; }
.bi-emoji-wink-fill::before { content: "\\f32a"; }
.bi-emoji-wink::before { content: "\\f32b"; }
.bi-envelope-fill::before { content: "\\f32c"; }
.bi-envelope-open-fill::before { content: "\\f32d"; }
.bi-envelope-open::before { content: "\\f32e"; }
.bi-envelope::before { content: "\\f32f"; }
.bi-eraser-fill::before { content: "\\f330"; }
.bi-eraser::before { content: "\\f331"; }
.bi-exclamation-circle-fill::before { content: "\\f332"; }
.bi-exclamation-circle::before { content: "\\f333"; }
.bi-exclamation-diamond-fill::before { content: "\\f334"; }
.bi-exclamation-diamond::before { content: "\\f335"; }
.bi-exclamation-octagon-fill::before { content: "\\f336"; }
.bi-exclamation-octagon::before { content: "\\f337"; }
.bi-exclamation-square-fill::before { content: "\\f338"; }
.bi-exclamation-square::before { content: "\\f339"; }
.bi-exclamation-triangle-fill::before { content: "\\f33a"; }
.bi-exclamation-triangle::before { content: "\\f33b"; }
.bi-exclamation::before { content: "\\f33c"; }
.bi-exclude::before { content: "\\f33d"; }
.bi-eye-fill::before { content: "\\f33e"; }
.bi-eye-slash-fill::before { content: "\\f33f"; }
.bi-eye-slash::before { content: "\\f340"; }
.bi-eye::before { content: "\\f341"; }
.bi-eyedropper::before { content: "\\f342"; }
.bi-eyeglasses::before { content: "\\f343"; }
.bi-facebook::before { content: "\\f344"; }
.bi-file-arrow-down-fill::before { content: "\\f345"; }
.bi-file-arrow-down::before { content: "\\f346"; }
.bi-file-arrow-up-fill::before { content: "\\f347"; }
.bi-file-arrow-up::before { content: "\\f348"; }
.bi-file-bar-graph-fill::before { content: "\\f349"; }
.bi-file-bar-graph::before { content: "\\f34a"; }
.bi-file-binary-fill::before { content: "\\f34b"; }
.bi-file-binary::before { content: "\\f34c"; }
.bi-file-break-fill::before { content: "\\f34d"; }
.bi-file-break::before { content: "\\f34e"; }
.bi-file-check-fill::before { content: "\\f34f"; }
.bi-file-check::before { content: "\\f350"; }
.bi-file-code-fill::before { content: "\\f351"; }
.bi-file-code::before { content: "\\f352"; }
.bi-file-diff-fill::before { content: "\\f353"; }
.bi-file-diff::before { content: "\\f354"; }
.bi-file-earmark-arrow-down-fill::before { content: "\\f355"; }
.bi-file-earmark-arrow-down::before { content: "\\f356"; }
.bi-file-earmark-arrow-up-fill::before { content: "\\f357"; }
.bi-file-earmark-arrow-up::before { content: "\\f358"; }
.bi-file-earmark-bar-graph-fill::before { content: "\\f359"; }
.bi-file-earmark-bar-graph::before { content: "\\f35a"; }
.bi-file-earmark-binary-fill::before { content: "\\f35b"; }
.bi-file-earmark-binary::before { content: "\\f35c"; }
.bi-file-earmark-break-fill::before { content: "\\f35d"; }
.bi-file-earmark-break::before { content: "\\f35e"; }
.bi-file-earmark-check-fill::before { content: "\\f35f"; }
.bi-file-earmark-check::before { content: "\\f360"; }
.bi-file-earmark-code-fill::before { content: "\\f361"; }
.bi-file-earmark-code::before { content: "\\f362"; }
.bi-file-earmark-diff-fill::before { content: "\\f363"; }
.bi-file-earmark-diff::before { content: "\\f364"; }
.bi-file-earmark-easel-fill::before { content: "\\f365"; }
.bi-file-earmark-easel::before { content: "\\f366"; }
.bi-file-earmark-excel-fill::before { content: "\\f367"; }
.bi-file-earmark-excel::before { content: "\\f368"; }
.bi-file-earmark-fill::before { content: "\\f369"; }
.bi-file-earmark-font-fill::before { content: "\\f36a"; }
.bi-file-earmark-font::before { content: "\\f36b"; }
.bi-file-earmark-image-fill::before { content: "\\f36c"; }
.bi-file-earmark-image::before { content: "\\f36d"; }
.bi-file-earmark-lock-fill::before { content: "\\f36e"; }
.bi-file-earmark-lock::before { content: "\\f36f"; }
.bi-file-earmark-lock2-fill::before { content: "\\f370"; }
.bi-file-earmark-lock2::before { content: "\\f371"; }
.bi-file-earmark-medical-fill::before { content: "\\f372"; }
.bi-file-earmark-medical::before { content: "\\f373"; }
.bi-file-earmark-minus-fill::before { content: "\\f374"; }
.bi-file-earmark-minus::before { content: "\\f375"; }
.bi-file-earmark-music-fill::before { content: "\\f376"; }
.bi-file-earmark-music::before { content: "\\f377"; }
.bi-file-earmark-person-fill::before { content: "\\f378"; }
.bi-file-earmark-person::before { content: "\\f379"; }
.bi-file-earmark-play-fill::before { content: "\\f37a"; }
.bi-file-earmark-play::before { content: "\\f37b"; }
.bi-file-earmark-plus-fill::before { content: "\\f37c"; }
.bi-file-earmark-plus::before { content: "\\f37d"; }
.bi-file-earmark-post-fill::before { content: "\\f37e"; }
.bi-file-earmark-post::before { content: "\\f37f"; }
.bi-file-earmark-ppt-fill::before { content: "\\f380"; }
.bi-file-earmark-ppt::before { content: "\\f381"; }
.bi-file-earmark-richtext-fill::before { content: "\\f382"; }
.bi-file-earmark-richtext::before { content: "\\f383"; }
.bi-file-earmark-ruled-fill::before { content: "\\f384"; }
.bi-file-earmark-ruled::before { content: "\\f385"; }
.bi-file-earmark-slides-fill::before { content: "\\f386"; }
.bi-file-earmark-slides::before { content: "\\f387"; }
.bi-file-earmark-spreadsheet-fill::before { content: "\\f388"; }
.bi-file-earmark-spreadsheet::before { content: "\\f389"; }
.bi-file-earmark-text-fill::before { content: "\\f38a"; }
.bi-file-earmark-text::before { content: "\\f38b"; }
.bi-file-earmark-word-fill::before { content: "\\f38c"; }
.bi-file-earmark-word::before { content: "\\f38d"; }
.bi-file-earmark-x-fill::before { content: "\\f38e"; }
.bi-file-earmark-x::before { content: "\\f38f"; }
.bi-file-earmark-zip-fill::before { content: "\\f390"; }
.bi-file-earmark-zip::before { content: "\\f391"; }
.bi-file-earmark::before { content: "\\f392"; }
.bi-file-easel-fill::before { content: "\\f393"; }
.bi-file-easel::before { content: "\\f394"; }
.bi-file-excel-fill::before { content: "\\f395"; }
.bi-file-excel::before { content: "\\f396"; }
.bi-file-fill::before { content: "\\f397"; }
.bi-file-font-fill::before { content: "\\f398"; }
.bi-file-font::before { content: "\\f399"; }
.bi-file-image-fill::before { content: "\\f39a"; }
.bi-file-image::before { content: "\\f39b"; }
.bi-file-lock-fill::before { content: "\\f39c"; }
.bi-file-lock::before { content: "\\f39d"; }
.bi-file-lock2-fill::before { content: "\\f39e"; }
.bi-file-lock2::before { content: "\\f39f"; }
.bi-file-medical-fill::before { content: "\\f3a0"; }
.bi-file-medical::before { content: "\\f3a1"; }
.bi-file-minus-fill::before { content: "\\f3a2"; }
.bi-file-minus::before { content: "\\f3a3"; }
.bi-file-music-fill::before { content: "\\f3a4"; }
.bi-file-music::before { content: "\\f3a5"; }
.bi-file-person-fill::before { content: "\\f3a6"; }
.bi-file-person::before { content: "\\f3a7"; }
.bi-file-play-fill::before { content: "\\f3a8"; }
.bi-file-play::before { content: "\\f3a9"; }
.bi-file-plus-fill::before { content: "\\f3aa"; }
.bi-file-plus::before { content: "\\f3ab"; }
.bi-file-post-fill::before { content: "\\f3ac"; }
.bi-file-post::before { content: "\\f3ad"; }
.bi-file-ppt-fill::before { content: "\\f3ae"; }
.bi-file-ppt::before { content: "\\f3af"; }
.bi-file-richtext-fill::before { content: "\\f3b0"; }
.bi-file-richtext::before { content: "\\f3b1"; }
.bi-file-ruled-fill::before { content: "\\f3b2"; }
.bi-file-ruled::before { content: "\\f3b3"; }
.bi-file-slides-fill::before { content: "\\f3b4"; }
.bi-file-slides::before { content: "\\f3b5"; }
.bi-file-spreadsheet-fill::before { content: "\\f3b6"; }
.bi-file-spreadsheet::before { content: "\\f3b7"; }
.bi-file-text-fill::before { content: "\\f3b8"; }
.bi-file-text::before { content: "\\f3b9"; }
.bi-file-word-fill::before { content: "\\f3ba"; }
.bi-file-word::before { content: "\\f3bb"; }
.bi-file-x-fill::before { content: "\\f3bc"; }
.bi-file-x::before { content: "\\f3bd"; }
.bi-file-zip-fill::before { content: "\\f3be"; }
.bi-file-zip::before { content: "\\f3bf"; }
.bi-file::before { content: "\\f3c0"; }
.bi-files-alt::before { content: "\\f3c1"; }
.bi-files::before { content: "\\f3c2"; }
.bi-film::before { content: "\\f3c3"; }
.bi-filter-circle-fill::before { content: "\\f3c4"; }
.bi-filter-circle::before { content: "\\f3c5"; }
.bi-filter-left::before { content: "\\f3c6"; }
.bi-filter-right::before { content: "\\f3c7"; }
.bi-filter-square-fill::before { content: "\\f3c8"; }
.bi-filter-square::before { content: "\\f3c9"; }
.bi-filter::before { content: "\\f3ca"; }
.bi-flag-fill::before { content: "\\f3cb"; }
.bi-flag::before { content: "\\f3cc"; }
.bi-flower1::before { content: "\\f3cd"; }
.bi-flower2::before { content: "\\f3ce"; }
.bi-flower3::before { content: "\\f3cf"; }
.bi-folder-check::before { content: "\\f3d0"; }
.bi-folder-fill::before { content: "\\f3d1"; }
.bi-folder-minus::before { content: "\\f3d2"; }
.bi-folder-plus::before { content: "\\f3d3"; }
.bi-folder-symlink-fill::before { content: "\\f3d4"; }
.bi-folder-symlink::before { content: "\\f3d5"; }
.bi-folder-x::before { content: "\\f3d6"; }
.bi-folder::before { content: "\\f3d7"; }
.bi-folder2-open::before { content: "\\f3d8"; }
.bi-folder2::before { content: "\\f3d9"; }
.bi-fonts::before { content: "\\f3da"; }
.bi-forward-fill::before { content: "\\f3db"; }
.bi-forward::before { content: "\\f3dc"; }
.bi-front::before { content: "\\f3dd"; }
.bi-fullscreen-exit::before { content: "\\f3de"; }
.bi-fullscreen::before { content: "\\f3df"; }
.bi-funnel-fill::before { content: "\\f3e0"; }
.bi-funnel::before { content: "\\f3e1"; }
.bi-gear-fill::before { content: "\\f3e2"; }
.bi-gear-wide-connected::before { content: "\\f3e3"; }
.bi-gear-wide::before { content: "\\f3e4"; }
.bi-gear::before { content: "\\f3e5"; }
.bi-gem::before { content: "\\f3e6"; }
.bi-geo-alt-fill::before { content: "\\f3e7"; }
.bi-geo-alt::before { content: "\\f3e8"; }
.bi-geo-fill::before { content: "\\f3e9"; }
.bi-geo::before { content: "\\f3ea"; }
.bi-gift-fill::before { content: "\\f3eb"; }
.bi-gift::before { content: "\\f3ec"; }
.bi-github::before { content: "\\f3ed"; }
.bi-globe::before { content: "\\f3ee"; }
.bi-globe2::before { content: "\\f3ef"; }
.bi-google::before { content: "\\f3f0"; }
.bi-graph-down::before { content: "\\f3f1"; }
.bi-graph-up::before { content: "\\f3f2"; }
.bi-grid-1x2-fill::before { content: "\\f3f3"; }
.bi-grid-1x2::before { content: "\\f3f4"; }
.bi-grid-3x2-gap-fill::before { content: "\\f3f5"; }
.bi-grid-3x2-gap::before { content: "\\f3f6"; }
.bi-grid-3x2::before { content: "\\f3f7"; }
.bi-grid-3x3-gap-fill::before { content: "\\f3f8"; }
.bi-grid-3x3-gap::before { content: "\\f3f9"; }
.bi-grid-3x3::before { content: "\\f3fa"; }
.bi-grid-fill::before { content: "\\f3fb"; }
.bi-grid::before { content: "\\f3fc"; }
.bi-grip-horizontal::before { content: "\\f3fd"; }
.bi-grip-vertical::before { content: "\\f3fe"; }
.bi-hammer::before { content: "\\f3ff"; }
.bi-hand-index-fill::before { content: "\\f400"; }
.bi-hand-index-thumb-fill::before { content: "\\f401"; }
.bi-hand-index-thumb::before { content: "\\f402"; }
.bi-hand-index::before { content: "\\f403"; }
.bi-hand-thumbs-down-fill::before { content: "\\f404"; }
.bi-hand-thumbs-down::before { content: "\\f405"; }
.bi-hand-thumbs-up-fill::before { content: "\\f406"; }
.bi-hand-thumbs-up::before { content: "\\f407"; }
.bi-handbag-fill::before { content: "\\f408"; }
.bi-handbag::before { content: "\\f409"; }
.bi-hash::before { content: "\\f40a"; }
.bi-hdd-fill::before { content: "\\f40b"; }
.bi-hdd-network-fill::before { content: "\\f40c"; }
.bi-hdd-network::before { content: "\\f40d"; }
.bi-hdd-rack-fill::before { content: "\\f40e"; }
.bi-hdd-rack::before { content: "\\f40f"; }
.bi-hdd-stack-fill::before { content: "\\f410"; }
.bi-hdd-stack::before { content: "\\f411"; }
.bi-hdd::before { content: "\\f412"; }
.bi-headphones::before { content: "\\f413"; }
.bi-headset::before { content: "\\f414"; }
.bi-heart-fill::before { content: "\\f415"; }
.bi-heart-half::before { content: "\\f416"; }
.bi-heart::before { content: "\\f417"; }
.bi-heptagon-fill::before { content: "\\f418"; }
.bi-heptagon-half::before { content: "\\f419"; }
.bi-heptagon::before { content: "\\f41a"; }
.bi-hexagon-fill::before { content: "\\f41b"; }
.bi-hexagon-half::before { content: "\\f41c"; }
.bi-hexagon::before { content: "\\f41d"; }
.bi-hourglass-bottom::before { content: "\\f41e"; }
.bi-hourglass-split::before { content: "\\f41f"; }
.bi-hourglass-top::before { content: "\\f420"; }
.bi-hourglass::before { content: "\\f421"; }
.bi-house-door-fill::before { content: "\\f422"; }
.bi-house-door::before { content: "\\f423"; }
.bi-house-fill::before { content: "\\f424"; }
.bi-house::before { content: "\\f425"; }
.bi-hr::before { content: "\\f426"; }
.bi-hurricane::before { content: "\\f427"; }
.bi-image-alt::before { content: "\\f428"; }
.bi-image-fill::before { content: "\\f429"; }
.bi-image::before { content: "\\f42a"; }
.bi-images::before { content: "\\f42b"; }
.bi-inbox-fill::before { content: "\\f42c"; }
.bi-inbox::before { content: "\\f42d"; }
.bi-inboxes-fill::before { content: "\\f42e"; }
.bi-inboxes::before { content: "\\f42f"; }
.bi-info-circle-fill::before { content: "\\f430"; }
.bi-info-circle::before { content: "\\f431"; }
.bi-info-square-fill::before { content: "\\f432"; }
.bi-info-square::before { content: "\\f433"; }
.bi-info::before { content: "\\f434"; }
.bi-input-cursor-text::before { content: "\\f435"; }
.bi-input-cursor::before { content: "\\f436"; }
.bi-instagram::before { content: "\\f437"; }
.bi-intersect::before { content: "\\f438"; }
.bi-journal-album::before { content: "\\f439"; }
.bi-journal-arrow-down::before { content: "\\f43a"; }
.bi-journal-arrow-up::before { content: "\\f43b"; }
.bi-journal-bookmark-fill::before { content: "\\f43c"; }
.bi-journal-bookmark::before { content: "\\f43d"; }
.bi-journal-check::before { content: "\\f43e"; }
.bi-journal-code::before { content: "\\f43f"; }
.bi-journal-medical::before { content: "\\f440"; }
.bi-journal-minus::before { content: "\\f441"; }
.bi-journal-plus::before { content: "\\f442"; }
.bi-journal-richtext::before { content: "\\f443"; }
.bi-journal-text::before { content: "\\f444"; }
.bi-journal-x::before { content: "\\f445"; }
.bi-journal::before { content: "\\f446"; }
.bi-journals::before { content: "\\f447"; }
.bi-joystick::before { content: "\\f448"; }
.bi-justify-left::before { content: "\\f449"; }
.bi-justify-right::before { content: "\\f44a"; }
.bi-justify::before { content: "\\f44b"; }
.bi-kanban-fill::before { content: "\\f44c"; }
.bi-kanban::before { content: "\\f44d"; }
.bi-key-fill::before { content: "\\f44e"; }
.bi-key::before { content: "\\f44f"; }
.bi-keyboard-fill::before { content: "\\f450"; }
.bi-keyboard::before { content: "\\f451"; }
.bi-ladder::before { content: "\\f452"; }
.bi-lamp-fill::before { content: "\\f453"; }
.bi-lamp::before { content: "\\f454"; }
.bi-laptop-fill::before { content: "\\f455"; }
.bi-laptop::before { content: "\\f456"; }
.bi-layer-backward::before { content: "\\f457"; }
.bi-layer-forward::before { content: "\\f458"; }
.bi-layers-fill::before { content: "\\f459"; }
.bi-layers-half::before { content: "\\f45a"; }
.bi-layers::before { content: "\\f45b"; }
.bi-layout-sidebar-inset-reverse::before { content: "\\f45c"; }
.bi-layout-sidebar-inset::before { content: "\\f45d"; }
.bi-layout-sidebar-reverse::before { content: "\\f45e"; }
.bi-layout-sidebar::before { content: "\\f45f"; }
.bi-layout-split::before { content: "\\f460"; }
.bi-layout-text-sidebar-reverse::before { content: "\\f461"; }
.bi-layout-text-sidebar::before { content: "\\f462"; }
.bi-layout-text-window-reverse::before { content: "\\f463"; }
.bi-layout-text-window::before { content: "\\f464"; }
.bi-layout-three-columns::before { content: "\\f465"; }
.bi-layout-wtf::before { content: "\\f466"; }
.bi-life-preserver::before { content: "\\f467"; }
.bi-lightbulb-fill::before { content: "\\f468"; }
.bi-lightbulb-off-fill::before { content: "\\f469"; }
.bi-lightbulb-off::before { content: "\\f46a"; }
.bi-lightbulb::before { content: "\\f46b"; }
.bi-lightning-charge-fill::before { content: "\\f46c"; }
.bi-lightning-charge::before { content: "\\f46d"; }
.bi-lightning-fill::before { content: "\\f46e"; }
.bi-lightning::before { content: "\\f46f"; }
.bi-link-45deg::before { content: "\\f470"; }
.bi-link::before { content: "\\f471"; }
.bi-linkedin::before { content: "\\f472"; }
.bi-list-check::before { content: "\\f473"; }
.bi-list-nested::before { content: "\\f474"; }
.bi-list-ol::before { content: "\\f475"; }
.bi-list-stars::before { content: "\\f476"; }
.bi-list-task::before { content: "\\f477"; }
.bi-list-ul::before { content: "\\f478"; }
.bi-list::before { content: "\\f479"; }
.bi-lock-fill::before { content: "\\f47a"; }
.bi-lock::before { content: "\\f47b"; }
.bi-mailbox::before { content: "\\f47c"; }
.bi-mailbox2::before { content: "\\f47d"; }
.bi-map-fill::before { content: "\\f47e"; }
.bi-map::before { content: "\\f47f"; }
.bi-markdown-fill::before { content: "\\f480"; }
.bi-markdown::before { content: "\\f481"; }
.bi-mask::before { content: "\\f482"; }
.bi-megaphone-fill::before { content: "\\f483"; }
.bi-megaphone::before { content: "\\f484"; }
.bi-menu-app-fill::before { content: "\\f485"; }
.bi-menu-app::before { content: "\\f486"; }
.bi-menu-button-fill::before { content: "\\f487"; }
.bi-menu-button-wide-fill::before { content: "\\f488"; }
.bi-menu-button-wide::before { content: "\\f489"; }
.bi-menu-button::before { content: "\\f48a"; }
.bi-menu-down::before { content: "\\f48b"; }
.bi-menu-up::before { content: "\\f48c"; }
.bi-mic-fill::before { content: "\\f48d"; }
.bi-mic-mute-fill::before { content: "\\f48e"; }
.bi-mic-mute::before { content: "\\f48f"; }
.bi-mic::before { content: "\\f490"; }
.bi-minecart-loaded::before { content: "\\f491"; }
.bi-minecart::before { content: "\\f492"; }
.bi-moisture::before { content: "\\f493"; }
.bi-moon-fill::before { content: "\\f494"; }
.bi-moon-stars-fill::before { content: "\\f495"; }
.bi-moon-stars::before { content: "\\f496"; }
.bi-moon::before { content: "\\f497"; }
.bi-mouse-fill::before { content: "\\f498"; }
.bi-mouse::before { content: "\\f499"; }
.bi-mouse2-fill::before { content: "\\f49a"; }
.bi-mouse2::before { content: "\\f49b"; }
.bi-mouse3-fill::before { content: "\\f49c"; }
.bi-mouse3::before { content: "\\f49d"; }
.bi-music-note-beamed::before { content: "\\f49e"; }
.bi-music-note-list::before { content: "\\f49f"; }
.bi-music-note::before { content: "\\f4a0"; }
.bi-music-player-fill::before { content: "\\f4a1"; }
.bi-music-player::before { content: "\\f4a2"; }
.bi-newspaper::before { content: "\\f4a3"; }
.bi-node-minus-fill::before { content: "\\f4a4"; }
.bi-node-minus::before { content: "\\f4a5"; }
.bi-node-plus-fill::before { content: "\\f4a6"; }
.bi-node-plus::before { content: "\\f4a7"; }
.bi-nut-fill::before { content: "\\f4a8"; }
.bi-nut::before { content: "\\f4a9"; }
.bi-octagon-fill::before { content: "\\f4aa"; }
.bi-octagon-half::before { content: "\\f4ab"; }
.bi-octagon::before { content: "\\f4ac"; }
.bi-option::before { content: "\\f4ad"; }
.bi-outlet::before { content: "\\f4ae"; }
.bi-paint-bucket::before { content: "\\f4af"; }
.bi-palette-fill::before { content: "\\f4b0"; }
.bi-palette::before { content: "\\f4b1"; }
.bi-palette2::before { content: "\\f4b2"; }
.bi-paperclip::before { content: "\\f4b3"; }
.bi-paragraph::before { content: "\\f4b4"; }
.bi-patch-check-fill::before { content: "\\f4b5"; }
.bi-patch-check::before { content: "\\f4b6"; }
.bi-patch-exclamation-fill::before { content: "\\f4b7"; }
.bi-patch-exclamation::before { content: "\\f4b8"; }
.bi-patch-minus-fill::before { content: "\\f4b9"; }
.bi-patch-minus::before { content: "\\f4ba"; }
.bi-patch-plus-fill::before { content: "\\f4bb"; }
.bi-patch-plus::before { content: "\\f4bc"; }
.bi-patch-question-fill::before { content: "\\f4bd"; }
.bi-patch-question::before { content: "\\f4be"; }
.bi-pause-btn-fill::before { content: "\\f4bf"; }
.bi-pause-btn::before { content: "\\f4c0"; }
.bi-pause-circle-fill::before { content: "\\f4c1"; }
.bi-pause-circle::before { content: "\\f4c2"; }
.bi-pause-fill::before { content: "\\f4c3"; }
.bi-pause::before { content: "\\f4c4"; }
.bi-peace-fill::before { content: "\\f4c5"; }
.bi-peace::before { content: "\\f4c6"; }
.bi-pen-fill::before { content: "\\f4c7"; }
.bi-pen::before { content: "\\f4c8"; }
.bi-pencil-fill::before { content: "\\f4c9"; }
.bi-pencil-square::before { content: "\\f4ca"; }
.bi-pencil::before { content: "\\f4cb"; }
.bi-pentagon-fill::before { content: "\\f4cc"; }
.bi-pentagon-half::before { content: "\\f4cd"; }
.bi-pentagon::before { content: "\\f4ce"; }
.bi-people-fill::before { content: "\\f4cf"; }
.bi-people::before { content: "\\f4d0"; }
.bi-percent::before { content: "\\f4d1"; }
.bi-person-badge-fill::before { content: "\\f4d2"; }
.bi-person-badge::before { content: "\\f4d3"; }
.bi-person-bounding-box::before { content: "\\f4d4"; }
.bi-person-check-fill::before { content: "\\f4d5"; }
.bi-person-check::before { content: "\\f4d6"; }
.bi-person-circle::before { content: "\\f4d7"; }
.bi-person-dash-fill::before { content: "\\f4d8"; }
.bi-person-dash::before { content: "\\f4d9"; }
.bi-person-fill::before { content: "\\f4da"; }
.bi-person-lines-fill::before { content: "\\f4db"; }
.bi-person-plus-fill::before { content: "\\f4dc"; }
.bi-person-plus::before { content: "\\f4dd"; }
.bi-person-square::before { content: "\\f4de"; }
.bi-person-x-fill::before { content: "\\f4df"; }
.bi-person-x::before { content: "\\f4e0"; }
.bi-person::before { content: "\\f4e1"; }
.bi-phone-fill::before { content: "\\f4e2"; }
.bi-phone-landscape-fill::before { content: "\\f4e3"; }
.bi-phone-landscape::before { content: "\\f4e4"; }
.bi-phone-vibrate-fill::before { content: "\\f4e5"; }
.bi-phone-vibrate::before { content: "\\f4e6"; }
.bi-phone::before { content: "\\f4e7"; }
.bi-pie-chart-fill::before { content: "\\f4e8"; }
.bi-pie-chart::before { content: "\\f4e9"; }
.bi-pin-angle-fill::before { content: "\\f4ea"; }
.bi-pin-angle::before { content: "\\f4eb"; }
.bi-pin-fill::before { content: "\\f4ec"; }
.bi-pin::before { content: "\\f4ed"; }
.bi-pip-fill::before { content: "\\f4ee"; }
.bi-pip::before { content: "\\f4ef"; }
.bi-play-btn-fill::before { content: "\\f4f0"; }
.bi-play-btn::before { content: "\\f4f1"; }
.bi-play-circle-fill::before { content: "\\f4f2"; }
.bi-play-circle::before { content: "\\f4f3"; }
.bi-play-fill::before { content: "\\f4f4"; }
.bi-play::before { content: "\\f4f5"; }
.bi-plug-fill::before { content: "\\f4f6"; }
.bi-plug::before { content: "\\f4f7"; }
.bi-plus-circle-dotted::before { content: "\\f4f8"; }
.bi-plus-circle-fill::before { content: "\\f4f9"; }
.bi-plus-circle::before { content: "\\f4fa"; }
.bi-plus-square-dotted::before { content: "\\f4fb"; }
.bi-plus-square-fill::before { content: "\\f4fc"; }
.bi-plus-square::before { content: "\\f4fd"; }
.bi-plus::before { content: "\\f4fe"; }
.bi-power::before { content: "\\f4ff"; }
.bi-printer-fill::before { content: "\\f500"; }
.bi-printer::before { content: "\\f501"; }
.bi-puzzle-fill::before { content: "\\f502"; }
.bi-puzzle::before { content: "\\f503"; }
.bi-question-circle-fill::before { content: "\\f504"; }
.bi-question-circle::before { content: "\\f505"; }
.bi-question-diamond-fill::before { content: "\\f506"; }
.bi-question-diamond::before { content: "\\f507"; }
.bi-question-octagon-fill::before { content: "\\f508"; }
.bi-question-octagon::before { content: "\\f509"; }
.bi-question-square-fill::before { content: "\\f50a"; }
.bi-question-square::before { content: "\\f50b"; }
.bi-question::before { content: "\\f50c"; }
.bi-rainbow::before { content: "\\f50d"; }
.bi-receipt-cutoff::before { content: "\\f50e"; }
.bi-receipt::before { content: "\\f50f"; }
.bi-reception-0::before { content: "\\f510"; }
.bi-reception-1::before { content: "\\f511"; }
.bi-reception-2::before { content: "\\f512"; }
.bi-reception-3::before { content: "\\f513"; }
.bi-reception-4::before { content: "\\f514"; }
.bi-record-btn-fill::before { content: "\\f515"; }
.bi-record-btn::before { content: "\\f516"; }
.bi-record-circle-fill::before { content: "\\f517"; }
.bi-record-circle::before { content: "\\f518"; }
.bi-record-fill::before { content: "\\f519"; }
.bi-record::before { content: "\\f51a"; }
.bi-record2-fill::before { content: "\\f51b"; }
.bi-record2::before { content: "\\f51c"; }
.bi-reply-all-fill::before { content: "\\f51d"; }
.bi-reply-all::before { content: "\\f51e"; }
.bi-reply-fill::before { content: "\\f51f"; }
.bi-reply::before { content: "\\f520"; }
.bi-rss-fill::before { content: "\\f521"; }
.bi-rss::before { content: "\\f522"; }
.bi-rulers::before { content: "\\f523"; }
.bi-save-fill::before { content: "\\f524"; }
.bi-save::before { content: "\\f525"; }
.bi-save2-fill::before { content: "\\f526"; }
.bi-save2::before { content: "\\f527"; }
.bi-scissors::before { content: "\\f528"; }
.bi-screwdriver::before { content: "\\f529"; }
.bi-search::before { content: "\\f52a"; }
.bi-segmented-nav::before { content: "\\f52b"; }
.bi-server::before { content: "\\f52c"; }
.bi-share-fill::before { content: "\\f52d"; }
.bi-share::before { content: "\\f52e"; }
.bi-shield-check::before { content: "\\f52f"; }
.bi-shield-exclamation::before { content: "\\f530"; }
.bi-shield-fill-check::before { content: "\\f531"; }
.bi-shield-fill-exclamation::before { content: "\\f532"; }
.bi-shield-fill-minus::before { content: "\\f533"; }
.bi-shield-fill-plus::before { content: "\\f534"; }
.bi-shield-fill-x::before { content: "\\f535"; }
.bi-shield-fill::before { content: "\\f536"; }
.bi-shield-lock-fill::before { content: "\\f537"; }
.bi-shield-lock::before { content: "\\f538"; }
.bi-shield-minus::before { content: "\\f539"; }
.bi-shield-plus::before { content: "\\f53a"; }
.bi-shield-shaded::before { content: "\\f53b"; }
.bi-shield-slash-fill::before { content: "\\f53c"; }
.bi-shield-slash::before { content: "\\f53d"; }
.bi-shield-x::before { content: "\\f53e"; }
.bi-shield::before { content: "\\f53f"; }
.bi-shift-fill::before { content: "\\f540"; }
.bi-shift::before { content: "\\f541"; }
.bi-shop-window::before { content: "\\f542"; }
.bi-shop::before { content: "\\f543"; }
.bi-shuffle::before { content: "\\f544"; }
.bi-signpost-2-fill::before { content: "\\f545"; }
.bi-signpost-2::before { content: "\\f546"; }
.bi-signpost-fill::before { content: "\\f547"; }
.bi-signpost-split-fill::before { content: "\\f548"; }
.bi-signpost-split::before { content: "\\f549"; }
.bi-signpost::before { content: "\\f54a"; }
.bi-sim-fill::before { content: "\\f54b"; }
.bi-sim::before { content: "\\f54c"; }
.bi-skip-backward-btn-fill::before { content: "\\f54d"; }
.bi-skip-backward-btn::before { content: "\\f54e"; }
.bi-skip-backward-circle-fill::before { content: "\\f54f"; }
.bi-skip-backward-circle::before { content: "\\f550"; }
.bi-skip-backward-fill::before { content: "\\f551"; }
.bi-skip-backward::before { content: "\\f552"; }
.bi-skip-end-btn-fill::before { content: "\\f553"; }
.bi-skip-end-btn::before { content: "\\f554"; }
.bi-skip-end-circle-fill::before { content: "\\f555"; }
.bi-skip-end-circle::before { content: "\\f556"; }
.bi-skip-end-fill::before { content: "\\f557"; }
.bi-skip-end::before { content: "\\f558"; }
.bi-skip-forward-btn-fill::before { content: "\\f559"; }
.bi-skip-forward-btn::before { content: "\\f55a"; }
.bi-skip-forward-circle-fill::before { content: "\\f55b"; }
.bi-skip-forward-circle::before { content: "\\f55c"; }
.bi-skip-forward-fill::before { content: "\\f55d"; }
.bi-skip-forward::before { content: "\\f55e"; }
.bi-skip-start-btn-fill::before { content: "\\f55f"; }
.bi-skip-start-btn::before { content: "\\f560"; }
.bi-skip-start-circle-fill::before { content: "\\f561"; }
.bi-skip-start-circle::before { content: "\\f562"; }
.bi-skip-start-fill::before { content: "\\f563"; }
.bi-skip-start::before { content: "\\f564"; }
.bi-slack::before { content: "\\f565"; }
.bi-slash-circle-fill::before { content: "\\f566"; }
.bi-slash-circle::before { content: "\\f567"; }
.bi-slash-square-fill::before { content: "\\f568"; }
.bi-slash-square::before { content: "\\f569"; }
.bi-slash::before { content: "\\f56a"; }
.bi-sliders::before { content: "\\f56b"; }
.bi-smartwatch::before { content: "\\f56c"; }
.bi-snow::before { content: "\\f56d"; }
.bi-snow2::before { content: "\\f56e"; }
.bi-snow3::before { content: "\\f56f"; }
.bi-sort-alpha-down-alt::before { content: "\\f570"; }
.bi-sort-alpha-down::before { content: "\\f571"; }
.bi-sort-alpha-up-alt::before { content: "\\f572"; }
.bi-sort-alpha-up::before { content: "\\f573"; }
.bi-sort-down-alt::before { content: "\\f574"; }
.bi-sort-down::before { content: "\\f575"; }
.bi-sort-numeric-down-alt::before { content: "\\f576"; }
.bi-sort-numeric-down::before { content: "\\f577"; }
.bi-sort-numeric-up-alt::before { content: "\\f578"; }
.bi-sort-numeric-up::before { content: "\\f579"; }
.bi-sort-up-alt::before { content: "\\f57a"; }
.bi-sort-up::before { content: "\\f57b"; }
.bi-soundwave::before { content: "\\f57c"; }
.bi-speaker-fill::before { content: "\\f57d"; }
.bi-speaker::before { content: "\\f57e"; }
.bi-speedometer::before { content: "\\f57f"; }
.bi-speedometer2::before { content: "\\f580"; }
.bi-spellcheck::before { content: "\\f581"; }
.bi-square-fill::before { content: "\\f582"; }
.bi-square-half::before { content: "\\f583"; }
.bi-square::before { content: "\\f584"; }
.bi-stack::before { content: "\\f585"; }
.bi-star-fill::before { content: "\\f586"; }
.bi-star-half::before { content: "\\f587"; }
.bi-star::before { content: "\\f588"; }
.bi-stars::before { content: "\\f589"; }
.bi-stickies-fill::before { content: "\\f58a"; }
.bi-stickies::before { content: "\\f58b"; }
.bi-sticky-fill::before { content: "\\f58c"; }
.bi-sticky::before { content: "\\f58d"; }
.bi-stop-btn-fill::before { content: "\\f58e"; }
.bi-stop-btn::before { content: "\\f58f"; }
.bi-stop-circle-fill::before { content: "\\f590"; }
.bi-stop-circle::before { content: "\\f591"; }
.bi-stop-fill::before { content: "\\f592"; }
.bi-stop::before { content: "\\f593"; }
.bi-stoplights-fill::before { content: "\\f594"; }
.bi-stoplights::before { content: "\\f595"; }
.bi-stopwatch-fill::before { content: "\\f596"; }
.bi-stopwatch::before { content: "\\f597"; }
.bi-subtract::before { content: "\\f598"; }
.bi-suit-club-fill::before { content: "\\f599"; }
.bi-suit-club::before { content: "\\f59a"; }
.bi-suit-diamond-fill::before { content: "\\f59b"; }
.bi-suit-diamond::before { content: "\\f59c"; }
.bi-suit-heart-fill::before { content: "\\f59d"; }
.bi-suit-heart::before { content: "\\f59e"; }
.bi-suit-spade-fill::before { content: "\\f59f"; }
.bi-suit-spade::before { content: "\\f5a0"; }
.bi-sun-fill::before { content: "\\f5a1"; }
.bi-sun::before { content: "\\f5a2"; }
.bi-sunglasses::before { content: "\\f5a3"; }
.bi-sunrise-fill::before { content: "\\f5a4"; }
.bi-sunrise::before { content: "\\f5a5"; }
.bi-sunset-fill::before { content: "\\f5a6"; }
.bi-sunset::before { content: "\\f5a7"; }
.bi-symmetry-horizontal::before { content: "\\f5a8"; }
.bi-symmetry-vertical::before { content: "\\f5a9"; }
.bi-table::before { content: "\\f5aa"; }
.bi-tablet-fill::before { content: "\\f5ab"; }
.bi-tablet-landscape-fill::before { content: "\\f5ac"; }
.bi-tablet-landscape::before { content: "\\f5ad"; }
.bi-tablet::before { content: "\\f5ae"; }
.bi-tag-fill::before { content: "\\f5af"; }
.bi-tag::before { content: "\\f5b0"; }
.bi-tags-fill::before { content: "\\f5b1"; }
.bi-tags::before { content: "\\f5b2"; }
.bi-telegram::before { content: "\\f5b3"; }
.bi-telephone-fill::before { content: "\\f5b4"; }
.bi-telephone-forward-fill::before { content: "\\f5b5"; }
.bi-telephone-forward::before { content: "\\f5b6"; }
.bi-telephone-inbound-fill::before { content: "\\f5b7"; }
.bi-telephone-inbound::before { content: "\\f5b8"; }
.bi-telephone-minus-fill::before { content: "\\f5b9"; }
.bi-telephone-minus::before { content: "\\f5ba"; }
.bi-telephone-outbound-fill::before { content: "\\f5bb"; }
.bi-telephone-outbound::before { content: "\\f5bc"; }
.bi-telephone-plus-fill::before { content: "\\f5bd"; }
.bi-telephone-plus::before { content: "\\f5be"; }
.bi-telephone-x-fill::before { content: "\\f5bf"; }
.bi-telephone-x::before { content: "\\f5c0"; }
.bi-telephone::before { content: "\\f5c1"; }
.bi-terminal-fill::before { content: "\\f5c2"; }
.bi-terminal::before { content: "\\f5c3"; }
.bi-text-center::before { content: "\\f5c4"; }
.bi-text-indent-left::before { content: "\\f5c5"; }
.bi-text-indent-right::before { content: "\\f5c6"; }
.bi-text-left::before { content: "\\f5c7"; }
.bi-text-paragraph::before { content: "\\f5c8"; }
.bi-text-right::before { content: "\\f5c9"; }
.bi-textarea-resize::before { content: "\\f5ca"; }
.bi-textarea-t::before { content: "\\f5cb"; }
.bi-textarea::before { content: "\\f5cc"; }
.bi-thermometer-half::before { content: "\\f5cd"; }
.bi-thermometer-high::before { content: "\\f5ce"; }
.bi-thermometer-low::before { content: "\\f5cf"; }
.bi-thermometer-snow::before { content: "\\f5d0"; }
.bi-thermometer-sun::before { content: "\\f5d1"; }
.bi-thermometer::before { content: "\\f5d2"; }
.bi-three-dots-vertical::before { content: "\\f5d3"; }
.bi-three-dots::before { content: "\\f5d4"; }
.bi-toggle-off::before { content: "\\f5d5"; }
.bi-toggle-on::before { content: "\\f5d6"; }
.bi-toggle2-off::before { content: "\\f5d7"; }
.bi-toggle2-on::before { content: "\\f5d8"; }
.bi-toggles::before { content: "\\f5d9"; }
.bi-toggles2::before { content: "\\f5da"; }
.bi-tools::before { content: "\\f5db"; }
.bi-tornado::before { content: "\\f5dc"; }
.bi-trash-fill::before { content: "\\f5dd"; }
.bi-trash::before { content: "\\f5de"; }
.bi-trash2-fill::before { content: "\\f5df"; }
.bi-trash2::before { content: "\\f5e0"; }
.bi-tree-fill::before { content: "\\f5e1"; }
.bi-tree::before { content: "\\f5e2"; }
.bi-triangle-fill::before { content: "\\f5e3"; }
.bi-triangle-half::before { content: "\\f5e4"; }
.bi-triangle::before { content: "\\f5e5"; }
.bi-trophy-fill::before { content: "\\f5e6"; }
.bi-trophy::before { content: "\\f5e7"; }
.bi-tropical-storm::before { content: "\\f5e8"; }
.bi-truck-flatbed::before { content: "\\f5e9"; }
.bi-truck::before { content: "\\f5ea"; }
.bi-tsunami::before { content: "\\f5eb"; }
.bi-tv-fill::before { content: "\\f5ec"; }
.bi-tv::before { content: "\\f5ed"; }
.bi-twitch::before { content: "\\f5ee"; }
.bi-twitter::before { content: "\\f5ef"; }
.bi-type-bold::before { content: "\\f5f0"; }
.bi-type-h1::before { content: "\\f5f1"; }
.bi-type-h2::before { content: "\\f5f2"; }
.bi-type-h3::before { content: "\\f5f3"; }
.bi-type-italic::before { content: "\\f5f4"; }
.bi-type-strikethrough::before { content: "\\f5f5"; }
.bi-type-underline::before { content: "\\f5f6"; }
.bi-type::before { content: "\\f5f7"; }
.bi-ui-checks-grid::before { content: "\\f5f8"; }
.bi-ui-checks::before { content: "\\f5f9"; }
.bi-ui-radios-grid::before { content: "\\f5fa"; }
.bi-ui-radios::before { content: "\\f5fb"; }
.bi-umbrella-fill::before { content: "\\f5fc"; }
.bi-umbrella::before { content: "\\f5fd"; }
.bi-union::before { content: "\\f5fe"; }
.bi-unlock-fill::before { content: "\\f5ff"; }
.bi-unlock::before { content: "\\f600"; }
.bi-upc-scan::before { content: "\\f601"; }
.bi-upc::before { content: "\\f602"; }
.bi-upload::before { content: "\\f603"; }
.bi-vector-pen::before { content: "\\f604"; }
.bi-view-list::before { content: "\\f605"; }
.bi-view-stacked::before { content: "\\f606"; }
.bi-vinyl-fill::before { content: "\\f607"; }
.bi-vinyl::before { content: "\\f608"; }
.bi-voicemail::before { content: "\\f609"; }
.bi-volume-down-fill::before { content: "\\f60a"; }
.bi-volume-down::before { content: "\\f60b"; }
.bi-volume-mute-fill::before { content: "\\f60c"; }
.bi-volume-mute::before { content: "\\f60d"; }
.bi-volume-off-fill::before { content: "\\f60e"; }
.bi-volume-off::before { content: "\\f60f"; }
.bi-volume-up-fill::before { content: "\\f610"; }
.bi-volume-up::before { content: "\\f611"; }
.bi-vr::before { content: "\\f612"; }
.bi-wallet-fill::before { content: "\\f613"; }
.bi-wallet::before { content: "\\f614"; }
.bi-wallet2::before { content: "\\f615"; }
.bi-watch::before { content: "\\f616"; }
.bi-water::before { content: "\\f617"; }
.bi-whatsapp::before { content: "\\f618"; }
.bi-wifi-1::before { content: "\\f619"; }
.bi-wifi-2::before { content: "\\f61a"; }
.bi-wifi-off::before { content: "\\f61b"; }
.bi-wifi::before { content: "\\f61c"; }
.bi-wind::before { content: "\\f61d"; }
.bi-window-dock::before { content: "\\f61e"; }
.bi-window-sidebar::before { content: "\\f61f"; }
.bi-window::before { content: "\\f620"; }
.bi-wrench::before { content: "\\f621"; }
.bi-x-circle-fill::before { content: "\\f622"; }
.bi-x-circle::before { content: "\\f623"; }
.bi-x-diamond-fill::before { content: "\\f624"; }
.bi-x-diamond::before { content: "\\f625"; }
.bi-x-octagon-fill::before { content: "\\f626"; }
.bi-x-octagon::before { content: "\\f627"; }
.bi-x-square-fill::before { content: "\\f628"; }
.bi-x-square::before { content: "\\f629"; }
.bi-x::before { content: "\\f62a"; }
.bi-youtube::before { content: "\\f62b"; }
.bi-zoom-in::before { content: "\\f62c"; }
.bi-zoom-out::before { content: "\\f62d"; }
.bi-bank::before { content: "\\f62e"; }
.bi-bank2::before { content: "\\f62f"; }
.bi-bell-slash-fill::before { content: "\\f630"; }
.bi-bell-slash::before { content: "\\f631"; }
.bi-cash-coin::before { content: "\\f632"; }
.bi-check-lg::before { content: "\\f633"; }
.bi-coin::before { content: "\\f634"; }
.bi-currency-bitcoin::before { content: "\\f635"; }
.bi-currency-dollar::before { content: "\\f636"; }
.bi-currency-euro::before { content: "\\f637"; }
.bi-currency-exchange::before { content: "\\f638"; }
.bi-currency-pound::before { content: "\\f639"; }
.bi-currency-yen::before { content: "\\f63a"; }
.bi-dash-lg::before { content: "\\f63b"; }
.bi-exclamation-lg::before { content: "\\f63c"; }
.bi-file-earmark-pdf-fill::before { content: "\\f63d"; }
.bi-file-earmark-pdf::before { content: "\\f63e"; }
.bi-file-pdf-fill::before { content: "\\f63f"; }
.bi-file-pdf::before { content: "\\f640"; }
.bi-gender-ambiguous::before { content: "\\f641"; }
.bi-gender-female::before { content: "\\f642"; }
.bi-gender-male::before { content: "\\f643"; }
.bi-gender-trans::before { content: "\\f644"; }
.bi-headset-vr::before { content: "\\f645"; }
.bi-info-lg::before { content: "\\f646"; }
.bi-mastodon::before { content: "\\f647"; }
.bi-messenger::before { content: "\\f648"; }
.bi-piggy-bank-fill::before { content: "\\f649"; }
.bi-piggy-bank::before { content: "\\f64a"; }
.bi-pin-map-fill::before { content: "\\f64b"; }
.bi-pin-map::before { content: "\\f64c"; }
.bi-plus-lg::before { content: "\\f64d"; }
.bi-question-lg::before { content: "\\f64e"; }
.bi-recycle::before { content: "\\f64f"; }
.bi-reddit::before { content: "\\f650"; }
.bi-safe-fill::before { content: "\\f651"; }
.bi-safe2-fill::before { content: "\\f652"; }
.bi-safe2::before { content: "\\f653"; }
.bi-sd-card-fill::before { content: "\\f654"; }
.bi-sd-card::before { content: "\\f655"; }
.bi-skype::before { content: "\\f656"; }
.bi-slash-lg::before { content: "\\f657"; }
.bi-translate::before { content: "\\f658"; }
.bi-x-lg::before { content: "\\f659"; }
.bi-safe::before { content: "\\f65a"; }
.bi-apple::before { content: "\\f65b"; }
.bi-microsoft::before { content: "\\f65d"; }
.bi-windows::before { content: "\\f65e"; }
.bi-behance::before { content: "\\f65c"; }
.bi-dribbble::before { content: "\\f65f"; }
.bi-line::before { content: "\\f660"; }
.bi-medium::before { content: "\\f661"; }
.bi-paypal::before { content: "\\f662"; }
.bi-pinterest::before { content: "\\f663"; }
.bi-signal::before { content: "\\f664"; }
.bi-snapchat::before { content: "\\f665"; }
.bi-spotify::before { content: "\\f666"; }
.bi-stack-overflow::before { content: "\\f667"; }
.bi-strava::before { content: "\\f668"; }
.bi-wordpress::before { content: "\\f669"; }
.bi-vimeo::before { content: "\\f66a"; }
.bi-activity::before { content: "\\f66b"; }
.bi-easel2-fill::before { content: "\\f66c"; }
.bi-easel2::before { content: "\\f66d"; }
.bi-easel3-fill::before { content: "\\f66e"; }
.bi-easel3::before { content: "\\f66f"; }
.bi-fan::before { content: "\\f670"; }
.bi-fingerprint::before { content: "\\f671"; }
.bi-graph-down-arrow::before { content: "\\f672"; }
.bi-graph-up-arrow::before { content: "\\f673"; }
.bi-hypnotize::before { content: "\\f674"; }
.bi-magic::before { content: "\\f675"; }
.bi-person-rolodex::before { content: "\\f676"; }
.bi-person-video::before { content: "\\f677"; }
.bi-person-video2::before { content: "\\f678"; }
.bi-person-video3::before { content: "\\f679"; }
.bi-person-workspace::before { content: "\\f67a"; }
.bi-radioactive::before { content: "\\f67b"; }
.bi-webcam-fill::before { content: "\\f67c"; }
.bi-webcam::before { content: "\\f67d"; }
.bi-yin-yang::before { content: "\\f67e"; }
.bi-bandaid-fill::before { content: "\\f680"; }
.bi-bandaid::before { content: "\\f681"; }
.bi-bluetooth::before { content: "\\f682"; }
.bi-body-text::before { content: "\\f683"; }
.bi-boombox::before { content: "\\f684"; }
.bi-boxes::before { content: "\\f685"; }
.bi-dpad-fill::before { content: "\\f686"; }
.bi-dpad::before { content: "\\f687"; }
.bi-ear-fill::before { content: "\\f688"; }
.bi-ear::before { content: "\\f689"; }
.bi-envelope-check-fill::before { content: "\\f68b"; }
.bi-envelope-check::before { content: "\\f68c"; }
.bi-envelope-dash-fill::before { content: "\\f68e"; }
.bi-envelope-dash::before { content: "\\f68f"; }
.bi-envelope-exclamation-fill::before { content: "\\f691"; }
.bi-envelope-exclamation::before { content: "\\f692"; }
.bi-envelope-plus-fill::before { content: "\\f693"; }
.bi-envelope-plus::before { content: "\\f694"; }
.bi-envelope-slash-fill::before { content: "\\f696"; }
.bi-envelope-slash::before { content: "\\f697"; }
.bi-envelope-x-fill::before { content: "\\f699"; }
.bi-envelope-x::before { content: "\\f69a"; }
.bi-explicit-fill::before { content: "\\f69b"; }
.bi-explicit::before { content: "\\f69c"; }
.bi-git::before { content: "\\f69d"; }
.bi-infinity::before { content: "\\f69e"; }
.bi-list-columns-reverse::before { content: "\\f69f"; }
.bi-list-columns::before { content: "\\f6a0"; }
.bi-meta::before { content: "\\f6a1"; }
.bi-nintendo-switch::before { content: "\\f6a4"; }
.bi-pc-display-horizontal::before { content: "\\f6a5"; }
.bi-pc-display::before { content: "\\f6a6"; }
.bi-pc-horizontal::before { content: "\\f6a7"; }
.bi-pc::before { content: "\\f6a8"; }
.bi-playstation::before { content: "\\f6a9"; }
.bi-plus-slash-minus::before { content: "\\f6aa"; }
.bi-projector-fill::before { content: "\\f6ab"; }
.bi-projector::before { content: "\\f6ac"; }
.bi-qr-code-scan::before { content: "\\f6ad"; }
.bi-qr-code::before { content: "\\f6ae"; }
.bi-quora::before { content: "\\f6af"; }
.bi-quote::before { content: "\\f6b0"; }
.bi-robot::before { content: "\\f6b1"; }
.bi-send-check-fill::before { content: "\\f6b2"; }
.bi-send-check::before { content: "\\f6b3"; }
.bi-send-dash-fill::before { content: "\\f6b4"; }
.bi-send-dash::before { content: "\\f6b5"; }
.bi-send-exclamation-fill::before { content: "\\f6b7"; }
.bi-send-exclamation::before { content: "\\f6b8"; }
.bi-send-fill::before { content: "\\f6b9"; }
.bi-send-plus-fill::before { content: "\\f6ba"; }
.bi-send-plus::before { content: "\\f6bb"; }
.bi-send-slash-fill::before { content: "\\f6bc"; }
.bi-send-slash::before { content: "\\f6bd"; }
.bi-send-x-fill::before { content: "\\f6be"; }
.bi-send-x::before { content: "\\f6bf"; }
.bi-send::before { content: "\\f6c0"; }
.bi-steam::before { content: "\\f6c1"; }
.bi-terminal-dash::before { content: "\\f6c3"; }
.bi-terminal-plus::before { content: "\\f6c4"; }
.bi-terminal-split::before { content: "\\f6c5"; }
.bi-ticket-detailed-fill::before { content: "\\f6c6"; }
.bi-ticket-detailed::before { content: "\\f6c7"; }
.bi-ticket-fill::before { content: "\\f6c8"; }
.bi-ticket-perforated-fill::before { content: "\\f6c9"; }
.bi-ticket-perforated::before { content: "\\f6ca"; }
.bi-ticket::before { content: "\\f6cb"; }
.bi-tiktok::before { content: "\\f6cc"; }
.bi-window-dash::before { content: "\\f6cd"; }
.bi-window-desktop::before { content: "\\f6ce"; }
.bi-window-fullscreen::before { content: "\\f6cf"; }
.bi-window-plus::before { content: "\\f6d0"; }
.bi-window-split::before { content: "\\f6d1"; }
.bi-window-stack::before { content: "\\f6d2"; }
.bi-window-x::before { content: "\\f6d3"; }
.bi-xbox::before { content: "\\f6d4"; }
.bi-ethernet::before { content: "\\f6d5"; }
.bi-hdmi-fill::before { content: "\\f6d6"; }
.bi-hdmi::before { content: "\\f6d7"; }
.bi-usb-c-fill::before { content: "\\f6d8"; }
.bi-usb-c::before { content: "\\f6d9"; }
.bi-usb-fill::before { content: "\\f6da"; }
.bi-usb-plug-fill::before { content: "\\f6db"; }
.bi-usb-plug::before { content: "\\f6dc"; }
.bi-usb-symbol::before { content: "\\f6dd"; }
.bi-usb::before { content: "\\f6de"; }
.bi-boombox-fill::before { content: "\\f6df"; }
.bi-displayport::before { content: "\\f6e1"; }
.bi-gpu-card::before { content: "\\f6e2"; }
.bi-memory::before { content: "\\f6e3"; }
.bi-modem-fill::before { content: "\\f6e4"; }
.bi-modem::before { content: "\\f6e5"; }
.bi-motherboard-fill::before { content: "\\f6e6"; }
.bi-motherboard::before { content: "\\f6e7"; }
.bi-optical-audio-fill::before { content: "\\f6e8"; }
.bi-optical-audio::before { content: "\\f6e9"; }
.bi-pci-card::before { content: "\\f6ea"; }
.bi-router-fill::before { content: "\\f6eb"; }
.bi-router::before { content: "\\f6ec"; }
.bi-thunderbolt-fill::before { content: "\\f6ef"; }
.bi-thunderbolt::before { content: "\\f6f0"; }
.bi-usb-drive-fill::before { content: "\\f6f1"; }
.bi-usb-drive::before { content: "\\f6f2"; }
.bi-usb-micro-fill::before { content: "\\f6f3"; }
.bi-usb-micro::before { content: "\\f6f4"; }
.bi-usb-mini-fill::before { content: "\\f6f5"; }
.bi-usb-mini::before { content: "\\f6f6"; }
.bi-cloud-haze2::before { content: "\\f6f7"; }
.bi-device-hdd-fill::before { content: "\\f6f8"; }
.bi-device-hdd::before { content: "\\f6f9"; }
.bi-device-ssd-fill::before { content: "\\f6fa"; }
.bi-device-ssd::before { content: "\\f6fb"; }
.bi-displayport-fill::before { content: "\\f6fc"; }
.bi-mortarboard-fill::before { content: "\\f6fd"; }
.bi-mortarboard::before { content: "\\f6fe"; }
.bi-terminal-x::before { content: "\\f6ff"; }
.bi-arrow-through-heart-fill::before { content: "\\f700"; }
.bi-arrow-through-heart::before { content: "\\f701"; }
.bi-badge-sd-fill::before { content: "\\f702"; }
.bi-badge-sd::before { content: "\\f703"; }
.bi-bag-heart-fill::before { content: "\\f704"; }
.bi-bag-heart::before { content: "\\f705"; }
.bi-balloon-fill::before { content: "\\f706"; }
.bi-balloon-heart-fill::before { content: "\\f707"; }
.bi-balloon-heart::before { content: "\\f708"; }
.bi-balloon::before { content: "\\f709"; }
.bi-box2-fill::before { content: "\\f70a"; }
.bi-box2-heart-fill::before { content: "\\f70b"; }
.bi-box2-heart::before { content: "\\f70c"; }
.bi-box2::before { content: "\\f70d"; }
.bi-braces-asterisk::before { content: "\\f70e"; }
.bi-calendar-heart-fill::before { content: "\\f70f"; }
.bi-calendar-heart::before { content: "\\f710"; }
.bi-calendar2-heart-fill::before { content: "\\f711"; }
.bi-calendar2-heart::before { content: "\\f712"; }
.bi-chat-heart-fill::before { content: "\\f713"; }
.bi-chat-heart::before { content: "\\f714"; }
.bi-chat-left-heart-fill::before { content: "\\f715"; }
.bi-chat-left-heart::before { content: "\\f716"; }
.bi-chat-right-heart-fill::before { content: "\\f717"; }
.bi-chat-right-heart::before { content: "\\f718"; }
.bi-chat-square-heart-fill::before { content: "\\f719"; }
.bi-chat-square-heart::before { content: "\\f71a"; }
.bi-clipboard-check-fill::before { content: "\\f71b"; }
.bi-clipboard-data-fill::before { content: "\\f71c"; }
.bi-clipboard-fill::before { content: "\\f71d"; }
.bi-clipboard-heart-fill::before { content: "\\f71e"; }
.bi-clipboard-heart::before { content: "\\f71f"; }
.bi-clipboard-minus-fill::before { content: "\\f720"; }
.bi-clipboard-plus-fill::before { content: "\\f721"; }
.bi-clipboard-pulse::before { content: "\\f722"; }
.bi-clipboard-x-fill::before { content: "\\f723"; }
.bi-clipboard2-check-fill::before { content: "\\f724"; }
.bi-clipboard2-check::before { content: "\\f725"; }
.bi-clipboard2-data-fill::before { content: "\\f726"; }
.bi-clipboard2-data::before { content: "\\f727"; }
.bi-clipboard2-fill::before { content: "\\f728"; }
.bi-clipboard2-heart-fill::before { content: "\\f729"; }
.bi-clipboard2-heart::before { content: "\\f72a"; }
.bi-clipboard2-minus-fill::before { content: "\\f72b"; }
.bi-clipboard2-minus::before { content: "\\f72c"; }
.bi-clipboard2-plus-fill::before { content: "\\f72d"; }
.bi-clipboard2-plus::before { content: "\\f72e"; }
.bi-clipboard2-pulse-fill::before { content: "\\f72f"; }
.bi-clipboard2-pulse::before { content: "\\f730"; }
.bi-clipboard2-x-fill::before { content: "\\f731"; }
.bi-clipboard2-x::before { content: "\\f732"; }
.bi-clipboard2::before { content: "\\f733"; }
.bi-emoji-kiss-fill::before { content: "\\f734"; }
.bi-emoji-kiss::before { content: "\\f735"; }
.bi-envelope-heart-fill::before { content: "\\f736"; }
.bi-envelope-heart::before { content: "\\f737"; }
.bi-envelope-open-heart-fill::before { content: "\\f738"; }
.bi-envelope-open-heart::before { content: "\\f739"; }
.bi-envelope-paper-fill::before { content: "\\f73a"; }
.bi-envelope-paper-heart-fill::before { content: "\\f73b"; }
.bi-envelope-paper-heart::before { content: "\\f73c"; }
.bi-envelope-paper::before { content: "\\f73d"; }
.bi-filetype-aac::before { content: "\\f73e"; }
.bi-filetype-ai::before { content: "\\f73f"; }
.bi-filetype-bmp::before { content: "\\f740"; }
.bi-filetype-cs::before { content: "\\f741"; }
.bi-filetype-css::before { content: "\\f742"; }
.bi-filetype-csv::before { content: "\\f743"; }
.bi-filetype-doc::before { content: "\\f744"; }
.bi-filetype-docx::before { content: "\\f745"; }
.bi-filetype-exe::before { content: "\\f746"; }
.bi-filetype-gif::before { content: "\\f747"; }
.bi-filetype-heic::before { content: "\\f748"; }
.bi-filetype-html::before { content: "\\f749"; }
.bi-filetype-java::before { content: "\\f74a"; }
.bi-filetype-jpg::before { content: "\\f74b"; }
.bi-filetype-js::before { content: "\\f74c"; }
.bi-filetype-jsx::before { content: "\\f74d"; }
.bi-filetype-key::before { content: "\\f74e"; }
.bi-filetype-m4p::before { content: "\\f74f"; }
.bi-filetype-md::before { content: "\\f750"; }
.bi-filetype-mdx::before { content: "\\f751"; }
.bi-filetype-mov::before { content: "\\f752"; }
.bi-filetype-mp3::before { content: "\\f753"; }
.bi-filetype-mp4::before { content: "\\f754"; }
.bi-filetype-otf::before { content: "\\f755"; }
.bi-filetype-pdf::before { content: "\\f756"; }
.bi-filetype-php::before { content: "\\f757"; }
.bi-filetype-png::before { content: "\\f758"; }
.bi-filetype-ppt::before { content: "\\f75a"; }
.bi-filetype-psd::before { content: "\\f75b"; }
.bi-filetype-py::before { content: "\\f75c"; }
.bi-filetype-raw::before { content: "\\f75d"; }
.bi-filetype-rb::before { content: "\\f75e"; }
.bi-filetype-sass::before { content: "\\f75f"; }
.bi-filetype-scss::before { content: "\\f760"; }
.bi-filetype-sh::before { content: "\\f761"; }
.bi-filetype-svg::before { content: "\\f762"; }
.bi-filetype-tiff::before { content: "\\f763"; }
.bi-filetype-tsx::before { content: "\\f764"; }
.bi-filetype-ttf::before { content: "\\f765"; }
.bi-filetype-txt::before { content: "\\f766"; }
.bi-filetype-wav::before { content: "\\f767"; }
.bi-filetype-woff::before { content: "\\f768"; }
.bi-filetype-xls::before { content: "\\f76a"; }
.bi-filetype-xml::before { content: "\\f76b"; }
.bi-filetype-yml::before { content: "\\f76c"; }
.bi-heart-arrow::before { content: "\\f76d"; }
.bi-heart-pulse-fill::before { content: "\\f76e"; }
.bi-heart-pulse::before { content: "\\f76f"; }
.bi-heartbreak-fill::before { content: "\\f770"; }
.bi-heartbreak::before { content: "\\f771"; }
.bi-hearts::before { content: "\\f772"; }
.bi-hospital-fill::before { content: "\\f773"; }
.bi-hospital::before { content: "\\f774"; }
.bi-house-heart-fill::before { content: "\\f775"; }
.bi-house-heart::before { content: "\\f776"; }
.bi-incognito::before { content: "\\f777"; }
.bi-magnet-fill::before { content: "\\f778"; }
.bi-magnet::before { content: "\\f779"; }
.bi-person-heart::before { content: "\\f77a"; }
.bi-person-hearts::before { content: "\\f77b"; }
.bi-phone-flip::before { content: "\\f77c"; }
.bi-plugin::before { content: "\\f77d"; }
.bi-postage-fill::before { content: "\\f77e"; }
.bi-postage-heart-fill::before { content: "\\f77f"; }
.bi-postage-heart::before { content: "\\f780"; }
.bi-postage::before { content: "\\f781"; }
.bi-postcard-fill::before { content: "\\f782"; }
.bi-postcard-heart-fill::before { content: "\\f783"; }
.bi-postcard-heart::before { content: "\\f784"; }
.bi-postcard::before { content: "\\f785"; }
.bi-search-heart-fill::before { content: "\\f786"; }
.bi-search-heart::before { content: "\\f787"; }
.bi-sliders2-vertical::before { content: "\\f788"; }
.bi-sliders2::before { content: "\\f789"; }
.bi-trash3-fill::before { content: "\\f78a"; }
.bi-trash3::before { content: "\\f78b"; }
.bi-valentine::before { content: "\\f78c"; }
.bi-valentine2::before { content: "\\f78d"; }
.bi-wrench-adjustable-circle-fill::before { content: "\\f78e"; }
.bi-wrench-adjustable-circle::before { content: "\\f78f"; }
.bi-wrench-adjustable::before { content: "\\f790"; }
.bi-filetype-json::before { content: "\\f791"; }
.bi-filetype-pptx::before { content: "\\f792"; }
.bi-filetype-xlsx::before { content: "\\f793"; }
.bi-1-circle-fill::before { content: "\\f796"; }
.bi-1-circle::before { content: "\\f797"; }
.bi-1-square-fill::before { content: "\\f798"; }
.bi-1-square::before { content: "\\f799"; }
.bi-2-circle-fill::before { content: "\\f79c"; }
.bi-2-circle::before { content: "\\f79d"; }
.bi-2-square-fill::before { content: "\\f79e"; }
.bi-2-square::before { content: "\\f79f"; }
.bi-3-circle-fill::before { content: "\\f7a2"; }
.bi-3-circle::before { content: "\\f7a3"; }
.bi-3-square-fill::before { content: "\\f7a4"; }
.bi-3-square::before { content: "\\f7a5"; }
.bi-4-circle-fill::before { content: "\\f7a8"; }
.bi-4-circle::before { content: "\\f7a9"; }
.bi-4-square-fill::before { content: "\\f7aa"; }
.bi-4-square::before { content: "\\f7ab"; }
.bi-5-circle-fill::before { content: "\\f7ae"; }
.bi-5-circle::before { content: "\\f7af"; }
.bi-5-square-fill::before { content: "\\f7b0"; }
.bi-5-square::before { content: "\\f7b1"; }
.bi-6-circle-fill::before { content: "\\f7b4"; }
.bi-6-circle::before { content: "\\f7b5"; }
.bi-6-square-fill::before { content: "\\f7b6"; }
.bi-6-square::before { content: "\\f7b7"; }
.bi-7-circle-fill::before { content: "\\f7ba"; }
.bi-7-circle::before { content: "\\f7bb"; }
.bi-7-square-fill::before { content: "\\f7bc"; }
.bi-7-square::before { content: "\\f7bd"; }
.bi-8-circle-fill::before { content: "\\f7c0"; }
.bi-8-circle::before { content: "\\f7c1"; }
.bi-8-square-fill::before { content: "\\f7c2"; }
.bi-8-square::before { content: "\\f7c3"; }
.bi-9-circle-fill::before { content: "\\f7c6"; }
.bi-9-circle::before { content: "\\f7c7"; }
.bi-9-square-fill::before { content: "\\f7c8"; }
.bi-9-square::before { content: "\\f7c9"; }
.bi-airplane-engines-fill::before { content: "\\f7ca"; }
.bi-airplane-engines::before { content: "\\f7cb"; }
.bi-airplane-fill::before { content: "\\f7cc"; }
.bi-airplane::before { content: "\\f7cd"; }
.bi-alexa::before { content: "\\f7ce"; }
.bi-alipay::before { content: "\\f7cf"; }
.bi-android::before { content: "\\f7d0"; }
.bi-android2::before { content: "\\f7d1"; }
.bi-box-fill::before { content: "\\f7d2"; }
.bi-box-seam-fill::before { content: "\\f7d3"; }
.bi-browser-chrome::before { content: "\\f7d4"; }
.bi-browser-edge::before { content: "\\f7d5"; }
.bi-browser-firefox::before { content: "\\f7d6"; }
.bi-browser-safari::before { content: "\\f7d7"; }
.bi-c-circle-fill::before { content: "\\f7da"; }
.bi-c-circle::before { content: "\\f7db"; }
.bi-c-square-fill::before { content: "\\f7dc"; }
.bi-c-square::before { content: "\\f7dd"; }
.bi-capsule-pill::before { content: "\\f7de"; }
.bi-capsule::before { content: "\\f7df"; }
.bi-car-front-fill::before { content: "\\f7e0"; }
.bi-car-front::before { content: "\\f7e1"; }
.bi-cassette-fill::before { content: "\\f7e2"; }
.bi-cassette::before { content: "\\f7e3"; }
.bi-cc-circle-fill::before { content: "\\f7e6"; }
.bi-cc-circle::before { content: "\\f7e7"; }
.bi-cc-square-fill::before { content: "\\f7e8"; }
.bi-cc-square::before { content: "\\f7e9"; }
.bi-cup-hot-fill::before { content: "\\f7ea"; }
.bi-cup-hot::before { content: "\\f7eb"; }
.bi-currency-rupee::before { content: "\\f7ec"; }
.bi-dropbox::before { content: "\\f7ed"; }
.bi-escape::before { content: "\\f7ee"; }
.bi-fast-forward-btn-fill::before { content: "\\f7ef"; }
.bi-fast-forward-btn::before { content: "\\f7f0"; }
.bi-fast-forward-circle-fill::before { content: "\\f7f1"; }
.bi-fast-forward-circle::before { content: "\\f7f2"; }
.bi-fast-forward-fill::before { content: "\\f7f3"; }
.bi-fast-forward::before { content: "\\f7f4"; }
.bi-filetype-sql::before { content: "\\f7f5"; }
.bi-fire::before { content: "\\f7f6"; }
.bi-google-play::before { content: "\\f7f7"; }
.bi-h-circle-fill::before { content: "\\f7fa"; }
.bi-h-circle::before { content: "\\f7fb"; }
.bi-h-square-fill::before { content: "\\f7fc"; }
.bi-h-square::before { content: "\\f7fd"; }
.bi-indent::before { content: "\\f7fe"; }
.bi-lungs-fill::before { content: "\\f7ff"; }
.bi-lungs::before { content: "\\f800"; }
.bi-microsoft-teams::before { content: "\\f801"; }
.bi-p-circle-fill::before { content: "\\f804"; }
.bi-p-circle::before { content: "\\f805"; }
.bi-p-square-fill::before { content: "\\f806"; }
.bi-p-square::before { content: "\\f807"; }
.bi-pass-fill::before { content: "\\f808"; }
.bi-pass::before { content: "\\f809"; }
.bi-prescription::before { content: "\\f80a"; }
.bi-prescription2::before { content: "\\f80b"; }
.bi-r-circle-fill::before { content: "\\f80e"; }
.bi-r-circle::before { content: "\\f80f"; }
.bi-r-square-fill::before { content: "\\f810"; }
.bi-r-square::before { content: "\\f811"; }
.bi-repeat-1::before { content: "\\f812"; }
.bi-repeat::before { content: "\\f813"; }
.bi-rewind-btn-fill::before { content: "\\f814"; }
.bi-rewind-btn::before { content: "\\f815"; }
.bi-rewind-circle-fill::before { content: "\\f816"; }
.bi-rewind-circle::before { content: "\\f817"; }
.bi-rewind-fill::before { content: "\\f818"; }
.bi-rewind::before { content: "\\f819"; }
.bi-train-freight-front-fill::before { content: "\\f81a"; }
.bi-train-freight-front::before { content: "\\f81b"; }
.bi-train-front-fill::before { content: "\\f81c"; }
.bi-train-front::before { content: "\\f81d"; }
.bi-train-lightrail-front-fill::before { content: "\\f81e"; }
.bi-train-lightrail-front::before { content: "\\f81f"; }
.bi-truck-front-fill::before { content: "\\f820"; }
.bi-truck-front::before { content: "\\f821"; }
.bi-ubuntu::before { content: "\\f822"; }
.bi-unindent::before { content: "\\f823"; }
.bi-unity::before { content: "\\f824"; }
.bi-universal-access-circle::before { content: "\\f825"; }
.bi-universal-access::before { content: "\\f826"; }
.bi-virus::before { content: "\\f827"; }
.bi-virus2::before { content: "\\f828"; }
.bi-wechat::before { content: "\\f829"; }
.bi-yelp::before { content: "\\f82a"; }
.bi-sign-stop-fill::before { content: "\\f82b"; }
.bi-sign-stop-lights-fill::before { content: "\\f82c"; }
.bi-sign-stop-lights::before { content: "\\f82d"; }
.bi-sign-stop::before { content: "\\f82e"; }
.bi-sign-turn-left-fill::before { content: "\\f82f"; }
.bi-sign-turn-left::before { content: "\\f830"; }
.bi-sign-turn-right-fill::before { content: "\\f831"; }
.bi-sign-turn-right::before { content: "\\f832"; }
.bi-sign-turn-slight-left-fill::before { content: "\\f833"; }
.bi-sign-turn-slight-left::before { content: "\\f834"; }
.bi-sign-turn-slight-right-fill::before { content: "\\f835"; }
.bi-sign-turn-slight-right::before { content: "\\f836"; }
.bi-sign-yield-fill::before { content: "\\f837"; }
.bi-sign-yield::before { content: "\\f838"; }
.bi-ev-station-fill::before { content: "\\f839"; }
.bi-ev-station::before { content: "\\f83a"; }
.bi-fuel-pump-diesel-fill::before { content: "\\f83b"; }
.bi-fuel-pump-diesel::before { content: "\\f83c"; }
.bi-fuel-pump-fill::before { content: "\\f83d"; }
.bi-fuel-pump::before { content: "\\f83e"; }
.bi-0-circle-fill::before { content: "\\f83f"; }
.bi-0-circle::before { content: "\\f840"; }
.bi-0-square-fill::before { content: "\\f841"; }
.bi-0-square::before { content: "\\f842"; }
.bi-rocket-fill::before { content: "\\f843"; }
.bi-rocket-takeoff-fill::before { content: "\\f844"; }
.bi-rocket-takeoff::before { content: "\\f845"; }
.bi-rocket::before { content: "\\f846"; }
.bi-stripe::before { content: "\\f847"; }
.bi-subscript::before { content: "\\f848"; }
.bi-superscript::before { content: "\\f849"; }
.bi-trello::before { content: "\\f84a"; }
.bi-envelope-at-fill::before { content: "\\f84b"; }
.bi-envelope-at::before { content: "\\f84c"; }
.bi-regex::before { content: "\\f84d"; }
.bi-text-wrap::before { content: "\\f84e"; }
.bi-sign-dead-end-fill::before { content: "\\f84f"; }
.bi-sign-dead-end::before { content: "\\f850"; }
.bi-sign-do-not-enter-fill::before { content: "\\f851"; }
.bi-sign-do-not-enter::before { content: "\\f852"; }
.bi-sign-intersection-fill::before { content: "\\f853"; }
.bi-sign-intersection-side-fill::before { content: "\\f854"; }
.bi-sign-intersection-side::before { content: "\\f855"; }
.bi-sign-intersection-t-fill::before { content: "\\f856"; }
.bi-sign-intersection-t::before { content: "\\f857"; }
.bi-sign-intersection-y-fill::before { content: "\\f858"; }
.bi-sign-intersection-y::before { content: "\\f859"; }
.bi-sign-intersection::before { content: "\\f85a"; }
.bi-sign-merge-left-fill::before { content: "\\f85b"; }
.bi-sign-merge-left::before { content: "\\f85c"; }
.bi-sign-merge-right-fill::before { content: "\\f85d"; }
.bi-sign-merge-right::before { content: "\\f85e"; }
.bi-sign-no-left-turn-fill::before { content: "\\f85f"; }
.bi-sign-no-left-turn::before { content: "\\f860"; }
.bi-sign-no-parking-fill::before { content: "\\f861"; }
.bi-sign-no-parking::before { content: "\\f862"; }
.bi-sign-no-right-turn-fill::before { content: "\\f863"; }
.bi-sign-no-right-turn::before { content: "\\f864"; }
.bi-sign-railroad-fill::before { content: "\\f865"; }
.bi-sign-railroad::before { content: "\\f866"; }
.bi-building-add::before { content: "\\f867"; }
.bi-building-check::before { content: "\\f868"; }
.bi-building-dash::before { content: "\\f869"; }
.bi-building-down::before { content: "\\f86a"; }
.bi-building-exclamation::before { content: "\\f86b"; }
.bi-building-fill-add::before { content: "\\f86c"; }
.bi-building-fill-check::before { content: "\\f86d"; }
.bi-building-fill-dash::before { content: "\\f86e"; }
.bi-building-fill-down::before { content: "\\f86f"; }
.bi-building-fill-exclamation::before { content: "\\f870"; }
.bi-building-fill-gear::before { content: "\\f871"; }
.bi-building-fill-lock::before { content: "\\f872"; }
.bi-building-fill-slash::before { content: "\\f873"; }
.bi-building-fill-up::before { content: "\\f874"; }
.bi-building-fill-x::before { content: "\\f875"; }
.bi-building-fill::before { content: "\\f876"; }
.bi-building-gear::before { content: "\\f877"; }
.bi-building-lock::before { content: "\\f878"; }
.bi-building-slash::before { content: "\\f879"; }
.bi-building-up::before { content: "\\f87a"; }
.bi-building-x::before { content: "\\f87b"; }
.bi-buildings-fill::before { content: "\\f87c"; }
.bi-buildings::before { content: "\\f87d"; }
.bi-bus-front-fill::before { content: "\\f87e"; }
.bi-bus-front::before { content: "\\f87f"; }
.bi-ev-front-fill::before { content: "\\f880"; }
.bi-ev-front::before { content: "\\f881"; }
.bi-globe-americas::before { content: "\\f882"; }
.bi-globe-asia-australia::before { content: "\\f883"; }
.bi-globe-central-south-asia::before { content: "\\f884"; }
.bi-globe-europe-africa::before { content: "\\f885"; }
.bi-house-add-fill::before { content: "\\f886"; }
.bi-house-add::before { content: "\\f887"; }
.bi-house-check-fill::before { content: "\\f888"; }
.bi-house-check::before { content: "\\f889"; }
.bi-house-dash-fill::before { content: "\\f88a"; }
.bi-house-dash::before { content: "\\f88b"; }
.bi-house-down-fill::before { content: "\\f88c"; }
.bi-house-down::before { content: "\\f88d"; }
.bi-house-exclamation-fill::before { content: "\\f88e"; }
.bi-house-exclamation::before { content: "\\f88f"; }
.bi-house-gear-fill::before { content: "\\f890"; }
.bi-house-gear::before { content: "\\f891"; }
.bi-house-lock-fill::before { content: "\\f892"; }
.bi-house-lock::before { content: "\\f893"; }
.bi-house-slash-fill::before { content: "\\f894"; }
.bi-house-slash::before { content: "\\f895"; }
.bi-house-up-fill::before { content: "\\f896"; }
.bi-house-up::before { content: "\\f897"; }
.bi-house-x-fill::before { content: "\\f898"; }
.bi-house-x::before { content: "\\f899"; }
.bi-person-add::before { content: "\\f89a"; }
.bi-person-down::before { content: "\\f89b"; }
.bi-person-exclamation::before { content: "\\f89c"; }
.bi-person-fill-add::before { content: "\\f89d"; }
.bi-person-fill-check::before { content: "\\f89e"; }
.bi-person-fill-dash::before { content: "\\f89f"; }
.bi-person-fill-down::before { content: "\\f8a0"; }
.bi-person-fill-exclamation::before { content: "\\f8a1"; }
.bi-person-fill-gear::before { content: "\\f8a2"; }
.bi-person-fill-lock::before { content: "\\f8a3"; }
.bi-person-fill-slash::before { content: "\\f8a4"; }
.bi-person-fill-up::before { content: "\\f8a5"; }
.bi-person-fill-x::before { content: "\\f8a6"; }
.bi-person-gear::before { content: "\\f8a7"; }
.bi-person-lock::before { content: "\\f8a8"; }
.bi-person-slash::before { content: "\\f8a9"; }
.bi-person-up::before { content: "\\f8aa"; }
.bi-scooter::before { content: "\\f8ab"; }
.bi-taxi-front-fill::before { content: "\\f8ac"; }
.bi-taxi-front::before { content: "\\f8ad"; }
.bi-amd::before { content: "\\f8ae"; }
.bi-database-add::before { content: "\\f8af"; }
.bi-database-check::before { content: "\\f8b0"; }
.bi-database-dash::before { content: "\\f8b1"; }
.bi-database-down::before { content: "\\f8b2"; }
.bi-database-exclamation::before { content: "\\f8b3"; }
.bi-database-fill-add::before { content: "\\f8b4"; }
.bi-database-fill-check::before { content: "\\f8b5"; }
.bi-database-fill-dash::before { content: "\\f8b6"; }
.bi-database-fill-down::before { content: "\\f8b7"; }
.bi-database-fill-exclamation::before { content: "\\f8b8"; }
.bi-database-fill-gear::before { content: "\\f8b9"; }
.bi-database-fill-lock::before { content: "\\f8ba"; }
.bi-database-fill-slash::before { content: "\\f8bb"; }
.bi-database-fill-up::before { content: "\\f8bc"; }
.bi-database-fill-x::before { content: "\\f8bd"; }
.bi-database-fill::before { content: "\\f8be"; }
.bi-database-gear::before { content: "\\f8bf"; }
.bi-database-lock::before { content: "\\f8c0"; }
.bi-database-slash::before { content: "\\f8c1"; }
.bi-database-up::before { content: "\\f8c2"; }
.bi-database-x::before { content: "\\f8c3"; }
.bi-database::before { content: "\\f8c4"; }
.bi-houses-fill::before { content: "\\f8c5"; }
.bi-houses::before { content: "\\f8c6"; }
.bi-nvidia::before { content: "\\f8c7"; }
.bi-person-vcard-fill::before { content: "\\f8c8"; }
.bi-person-vcard::before { content: "\\f8c9"; }
.bi-sina-weibo::before { content: "\\f8ca"; }
.bi-tencent-qq::before { content: "\\f8cb"; }
.bi-wikipedia::before { content: "\\f8cc"; }
.bi-alphabet-uppercase::before { content: "\\f2a5"; }
.bi-alphabet::before { content: "\\f68a"; }
.bi-amazon::before { content: "\\f68d"; }
.bi-arrows-collapse-vertical::before { content: "\\f690"; }
.bi-arrows-expand-vertical::before { content: "\\f695"; }
.bi-arrows-vertical::before { content: "\\f698"; }
.bi-arrows::before { content: "\\f6a2"; }
.bi-ban-fill::before { content: "\\f6a3"; }
.bi-ban::before { content: "\\f6b6"; }
.bi-bing::before { content: "\\f6c2"; }
.bi-cake::before { content: "\\f6e0"; }
.bi-cake2::before { content: "\\f6ed"; }
.bi-cookie::before { content: "\\f6ee"; }
.bi-copy::before { content: "\\f759"; }
.bi-crosshair::before { content: "\\f769"; }
.bi-crosshair2::before { content: "\\f794"; }
.bi-emoji-astonished-fill::before { content: "\\f795"; }
.bi-emoji-astonished::before { content: "\\f79a"; }
.bi-emoji-grimace-fill::before { content: "\\f79b"; }
.bi-emoji-grimace::before { content: "\\f7a0"; }
.bi-emoji-grin-fill::before { content: "\\f7a1"; }
.bi-emoji-grin::before { content: "\\f7a6"; }
.bi-emoji-surprise-fill::before { content: "\\f7a7"; }
.bi-emoji-surprise::before { content: "\\f7ac"; }
.bi-emoji-tear-fill::before { content: "\\f7ad"; }
.bi-emoji-tear::before { content: "\\f7b2"; }
.bi-envelope-arrow-down-fill::before { content: "\\f7b3"; }
.bi-envelope-arrow-down::before { content: "\\f7b8"; }
.bi-envelope-arrow-up-fill::before { content: "\\f7b9"; }
.bi-envelope-arrow-up::before { content: "\\f7be"; }
.bi-feather::before { content: "\\f7bf"; }
.bi-feather2::before { content: "\\f7c4"; }
.bi-floppy-fill::before { content: "\\f7c5"; }
.bi-floppy::before { content: "\\f7d8"; }
.bi-floppy2-fill::before { content: "\\f7d9"; }
.bi-floppy2::before { content: "\\f7e4"; }
.bi-gitlab::before { content: "\\f7e5"; }
.bi-highlighter::before { content: "\\f7f8"; }
.bi-marker-tip::before { content: "\\f802"; }
.bi-nvme-fill::before { content: "\\f803"; }
.bi-nvme::before { content: "\\f80c"; }
.bi-opencollective::before { content: "\\f80d"; }
.bi-pci-card-network::before { content: "\\f8cd"; }
.bi-pci-card-sound::before { content: "\\f8ce"; }
.bi-radar::before { content: "\\f8cf"; }
.bi-send-arrow-down-fill::before { content: "\\f8d0"; }
.bi-send-arrow-down::before { content: "\\f8d1"; }
.bi-send-arrow-up-fill::before { content: "\\f8d2"; }
.bi-send-arrow-up::before { content: "\\f8d3"; }
.bi-sim-slash-fill::before { content: "\\f8d4"; }
.bi-sim-slash::before { content: "\\f8d5"; }
.bi-sourceforge::before { content: "\\f8d6"; }
.bi-substack::before { content: "\\f8d7"; }
.bi-threads-fill::before { content: "\\f8d8"; }
.bi-threads::before { content: "\\f8d9"; }
.bi-transparency::before { content: "\\f8da"; }
.bi-twitter-x::before { content: "\\f8db"; }
.bi-type-h4::before { content: "\\f8dc"; }
.bi-type-h5::before { content: "\\f8dd"; }
.bi-type-h6::before { content: "\\f8de"; }
.bi-backpack-fill::before { content: "\\f8df"; }
.bi-backpack::before { content: "\\f8e0"; }
.bi-backpack2-fill::before { content: "\\f8e1"; }
.bi-backpack2::before { content: "\\f8e2"; }
.bi-backpack3-fill::before { content: "\\f8e3"; }
.bi-backpack3::before { content: "\\f8e4"; }
.bi-backpack4-fill::before { content: "\\f8e5"; }
.bi-backpack4::before { content: "\\f8e6"; }
.bi-brilliance::before { content: "\\f8e7"; }
.bi-cake-fill::before { content: "\\f8e8"; }
.bi-cake2-fill::before { content: "\\f8e9"; }
.bi-duffle-fill::before { content: "\\f8ea"; }
.bi-duffle::before { content: "\\f8eb"; }
.bi-exposure::before { content: "\\f8ec"; }
.bi-gender-neuter::before { content: "\\f8ed"; }
.bi-highlights::before { content: "\\f8ee"; }
.bi-luggage-fill::before { content: "\\f8ef"; }
.bi-luggage::before { content: "\\f8f0"; }
.bi-mailbox-flag::before { content: "\\f8f1"; }
.bi-mailbox2-flag::before { content: "\\f8f2"; }
.bi-noise-reduction::before { content: "\\f8f3"; }
.bi-passport-fill::before { content: "\\f8f4"; }
.bi-passport::before { content: "\\f8f5"; }
.bi-person-arms-up::before { content: "\\f8f6"; }
.bi-person-raised-hand::before { content: "\\f8f7"; }
.bi-person-standing-dress::before { content: "\\f8f8"; }
.bi-person-standing::before { content: "\\f8f9"; }
.bi-person-walking::before { content: "\\f8fa"; }
.bi-person-wheelchair::before { content: "\\f8fb"; }
.bi-shadows::before { content: "\\f8fc"; }
.bi-suitcase-fill::before { content: "\\f8fd"; }
.bi-suitcase-lg-fill::before { content: "\\f8fe"; }
.bi-suitcase-lg::before { content: "\\f8ff"; }
.bi-suitcase::before { content: "\\f900"; }
.bi-suitcase2-fill::before { content: "\\f901"; }
.bi-suitcase2::before { content: "\\f902"; }
.bi-vignette::before { content: "\\f903"; }
.bi-bluesky::before { content: "\\f7f9"; }
.bi-tux::before { content: "\\f904"; }
.bi-beaker-fill::before { content: "\\f905"; }
.bi-beaker::before { content: "\\f906"; }
.bi-flask-fill::before { content: "\\f907"; }
.bi-flask-florence-fill::before { content: "\\f908"; }
.bi-flask-florence::before { content: "\\f909"; }
.bi-flask::before { content: "\\f90a"; }
.bi-leaf-fill::before { content: "\\f90b"; }
.bi-leaf::before { content: "\\f90c"; }
.bi-measuring-cup-fill::before { content: "\\f90d"; }
.bi-measuring-cup::before { content: "\\f90e"; }
.bi-unlock2-fill::before { content: "\\f90f"; }
.bi-unlock2::before { content: "\\f910"; }
.bi-battery-low::before { content: "\\f911"; }
.bi-anthropic::before { content: "\\f912"; }
.bi-apple-music::before { content: "\\f913"; }
.bi-claude::before { content: "\\f914"; }
.bi-openai::before { content: "\\f915"; }
.bi-perplexity::before { content: "\\f916"; }
.bi-css::before { content: "\\f917"; }
.bi-javascript::before { content: "\\f918"; }
.bi-typescript::before { content: "\\f919"; }
.bi-fork-knife::before { content: "\\f91a"; }
.bi-globe-americas-fill::before { content: "\\f91b"; }
.bi-globe-asia-australia-fill::before { content: "\\f91c"; }
.bi-globe-central-south-asia-fill::before { content: "\\f91d"; }
.bi-globe-europe-africa-fill::before { content: "\\f91e"; }`));
document.head.appendChild(elementStyle);
}
} catch (e) {
console.error("vite-plugin-css-injected-by-js", e);
}
})();
(function(global, factory) {
typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@apigo.cc/state")) : typeof define === "function" && define.amd ? define(["exports", "@apigo.cc/state"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.ApigoBootstrap = {}));
})(this, function(exports2) {
"use strict";
var top = "top";
var bottom = "bottom";
var right = "right";
var left = "left";
var auto = "auto";
var basePlacements = [top, bottom, right, left];
var start = "start";
var end = "end";
var clippingParents = "clippingParents";
var viewport = "viewport";
var popper = "popper";
var reference = "reference";
var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) {
return acc.concat([placement + "-" + start, placement + "-" + end]);
}, []);
var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
}, []);
var beforeRead = "beforeRead";
var read = "read";
var afterRead = "afterRead";
var beforeMain = "beforeMain";
var main = "main";
var afterMain = "afterMain";
var beforeWrite = "beforeWrite";
var write = "write";
var afterWrite = "afterWrite";
var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
function getNodeName(element) {
return element ? (element.nodeName || "").toLowerCase() : null;
}
function getWindow(node) {
if (node == null) {
return window;
}
if (node.toString() !== "[object Window]") {
var ownerDocument = node.ownerDocument;
return ownerDocument ? ownerDocument.defaultView || window : window;
}
return node;
}
function isElement$1(node) {
var OwnElement = getWindow(node).Element;
return node instanceof OwnElement || node instanceof Element;
}
function isHTMLElement(node) {
var OwnElement = getWindow(node).HTMLElement;
return node instanceof OwnElement || node instanceof HTMLElement;
}
function isShadowRoot(node) {
if (typeof ShadowRoot === "undefined") {
return false;
}
var OwnElement = getWindow(node).ShadowRoot;
return node instanceof OwnElement || node instanceof ShadowRoot;
}
function applyStyles(_ref) {
var state = _ref.state;
Object.keys(state.elements).forEach(function(name) {
var style = state.styles[name] || {};
var attributes = state.attributes[name] || {};
var element = state.elements[name];
if (!isHTMLElement(element) || !getNodeName(element)) {
return;
}
Object.assign(element.style, style);
Object.keys(attributes).forEach(function(name2) {
var value = attributes[name2];
if (value === false) {
element.removeAttribute(name2);
} else {
element.setAttribute(name2, value === true ? "" : value);
}
});
});
}
function effect$2(_ref2) {
var state = _ref2.state;
var initialStyles = {
popper: {
position: state.options.strategy,
left: "0",
top: "0",
margin: "0"
},
arrow: {
position: "absolute"
},
reference: {}
};
Object.assign(state.elements.popper.style, initialStyles.popper);
state.styles = initialStyles;
if (state.elements.arrow) {
Object.assign(state.elements.arrow.style, initialStyles.arrow);
}
return function() {
Object.keys(state.elements).forEach(function(name) {
var element = state.elements[name];
var attributes = state.attributes[name] || {};
var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);
var style = styleProperties.reduce(function(style2, property) {
style2[property] = "";
return style2;
}, {});
if (!isHTMLElement(element) || !getNodeName(element)) {
return;
}
Object.assign(element.style, style);
Object.keys(attributes).forEach(function(attribute) {
element.removeAttribute(attribute);
});
});
};
}
const applyStyles$1 = {
name: "applyStyles",
enabled: true,
phase: "write",
fn: applyStyles,
effect: effect$2,
requires: ["computeStyles"]
};
function getBasePlacement(placement) {
return placement.split("-")[0];
}
var max = Math.max;
var min = Math.min;
var round = Math.round;
function getUAString() {
var uaData = navigator.userAgentData;
if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
return uaData.brands.map(function(item) {
return item.brand + "/" + item.version;
}).join(" ");
}
return navigator.userAgent;
}
function isLayoutViewport() {
return !/^((?!chrome|android).)*safari/i.test(getUAString());
}
function getBoundingClientRect(element, includeScale, isFixedStrategy) {
if (includeScale === void 0) {
includeScale = false;
}
if (isFixedStrategy === void 0) {
isFixedStrategy = false;
}
var clientRect = element.getBoundingClientRect();
var scaleX = 1;
var scaleY = 1;
if (includeScale && isHTMLElement(element)) {
scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
}
var _ref = isElement$1(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;
var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
var width = clientRect.width / scaleX;
var height = clientRect.height / scaleY;
return {
width,
height,
top: y,
right: x + width,
bottom: y + height,
left: x,
x,
y
};
}
function getLayoutRect(element) {
var clientRect = getBoundingClientRect(element);
var width = element.offsetWidth;
var height = element.offsetHeight;
if (Math.abs(clientRect.width - width) <= 1) {
width = clientRect.width;
}
if (Math.abs(clientRect.height - height) <= 1) {
height = clientRect.height;
}
return {
x: element.offsetLeft,
y: element.offsetTop,
width,
height
};
}
function contains(parent, child) {
var rootNode = child.getRootNode && child.getRootNode();
if (parent.contains(child)) {
return true;
} else if (rootNode && isShadowRoot(rootNode)) {
var next = child;
do {
if (next && parent.isSameNode(next)) {
return true;
}
next = next.parentNode || next.host;
} while (next);
}
return false;
}
function getComputedStyle$1(element) {
return getWindow(element).getComputedStyle(element);
}
function isTableElement(element) {
return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
}
function getDocumentElement(element) {
return ((isElement$1(element) ? element.ownerDocument : (
// $FlowFixMe[prop-missing]
element.document
)) || window.document).documentElement;
}
function getParentNode(element) {
if (getNodeName(element) === "html") {
return element;
}
return (
// this is a quicker (but less type safe) way to save quite some bytes from the bundle
// $FlowFixMe[incompatible-return]
// $FlowFixMe[prop-missing]
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
(isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
// $FlowFixMe[incompatible-call]: HTMLElement is a Node
getDocumentElement(element)
);
}
function getTrueOffsetParent(element) {
if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
getComputedStyle$1(element).position === "fixed") {
return null;
}
return element.offsetParent;
}
function getContainingBlock(element) {
var isFirefox = /firefox/i.test(getUAString());
var isIE = /Trident/i.test(getUAString());
if (isIE && isHTMLElement(element)) {
var elementCss = getComputedStyle$1(element);
if (elementCss.position === "fixed") {
return null;
}
}
var currentNode = getParentNode(element);
if (isShadowRoot(currentNode)) {
currentNode = currentNode.host;
}
while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
var css = getComputedStyle$1(currentNode);
if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") {
return currentNode;
} else {
currentNode = currentNode.parentNode;
}
}
return null;
}
function getOffsetParent(element) {
var window2 = getWindow(element);
var offsetParent = getTrueOffsetParent(element);
while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === "static") {
offsetParent = getTrueOffsetParent(offsetParent);
}
if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle$1(offsetParent).position === "static")) {
return window2;
}
return offsetParent || getContainingBlock(element) || window2;
}
function getMainAxisFromPlacement(placement) {
return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
}
function within(min$1, value, max$1) {
return max(min$1, min(value, max$1));
}
function withinMaxClamp(min2, value, max2) {
var v = within(min2, value, max2);
return v > max2 ? max2 : v;
}
function getFreshSideObject() {
return {
top: 0,
right: 0,
bottom: 0,
left: 0
};
}
function mergePaddingObject(paddingObject) {
return Object.assign({}, getFreshSideObject(), paddingObject);
}
function expandToHashMap(value, keys) {
return keys.reduce(function(hashMap, key) {
hashMap[key] = value;
return hashMap;
}, {});
}
var toPaddingObject = function toPaddingObject2(padding, state) {
padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, {
placement: state.placement
})) : padding;
return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
};
function arrow(_ref) {
var _state$modifiersData$;
var state = _ref.state, name = _ref.name, options = _ref.options;
var arrowElement = state.elements.arrow;
var popperOffsets2 = state.modifiersData.popperOffsets;
var basePlacement = getBasePlacement(state.placement);
var axis = getMainAxisFromPlacement(basePlacement);
var isVertical = [left, right].indexOf(basePlacement) >= 0;
var len = isVertical ? "height" : "width";
if (!arrowElement || !popperOffsets2) {
return;
}
var paddingObject = toPaddingObject(options.padding, state);
var arrowRect = getLayoutRect(arrowElement);
var minProp = axis === "y" ? top : left;
var maxProp = axis === "y" ? bottom : right;
var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len];
var startDiff = popperOffsets2[axis] - state.rects.reference[axis];
var arrowOffsetParent = getOffsetParent(arrowElement);
var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
var centerToReference = endDiff / 2 - startDiff / 2;
var min2 = paddingObject[minProp];
var max2 = clientSize - arrowRect[len] - paddingObject[maxProp];
var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
var offset2 = within(min2, center, max2);
var axisProp = axis;
state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$);
}
function effect$1(_ref2) {
var state = _ref2.state, options = _ref2.options;
var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element;
if (arrowElement == null) {
return;
}
if (typeof arrowElement === "string") {
arrowElement = state.elements.popper.querySelector(arrowElement);
if (!arrowElement) {
return;
}
}
if (!contains(state.elements.popper, arrowElement)) {
return;
}
state.elements.arrow = arrowElement;
}
const arrow$1 = {
name: "arrow",
enabled: true,
phase: "main",
fn: arrow,
effect: effect$1,
requires: ["popperOffsets"],
requiresIfExists: ["preventOverflow"]
};
function getVariation(placement) {
return placement.split("-")[1];
}
var unsetSides = {
top: "auto",
right: "auto",
bottom: "auto",
left: "auto"
};
function roundOffsetsByDPR(_ref, win) {
var x = _ref.x, y = _ref.y;
var dpr = win.devicePixelRatio || 1;
return {
x: round(x * dpr) / dpr || 0,
y: round(y * dpr) / dpr || 0
};
}
function mapToStyles(_ref2) {
var _Object$assign2;
var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;
var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
x,
y
}) : {
x,
y
};
x = _ref3.x;
y = _ref3.y;
var hasX = offsets.hasOwnProperty("x");
var hasY = offsets.hasOwnProperty("y");
var sideX = left;
var sideY = top;
var win = window;
if (adaptive) {
var offsetParent = getOffsetParent(popper2);
var heightProp = "clientHeight";
var widthProp = "clientWidth";
if (offsetParent === getWindow(popper2)) {
offsetParent = getDocumentElement(popper2);
if (getComputedStyle$1(offsetParent).position !== "static" && position === "absolute") {
heightProp = "scrollHeight";
widthProp = "scrollWidth";
}
}
offsetParent = offsetParent;
if (placement === top || (placement === left || placement === right) && variation === end) {
sideY = bottom;
var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : (
// $FlowFixMe[prop-missing]
offsetParent[heightProp]
);
y -= offsetY - popperRect.height;
y *= gpuAcceleration ? 1 : -1;
}
if (placement === left || (placement === top || placement === bottom) && variation === end) {
sideX = right;
var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : (
// $FlowFixMe[prop-missing]
offsetParent[widthProp]
);
x -= offsetX - popperRect.width;
x *= gpuAcceleration ? 1 : -1;
}
}
var commonStyles = Object.assign({
position
}, adaptive && unsetSides);
var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
x,
y
}, getWindow(popper2)) : {
x,
y
};
x = _ref4.x;
y = _ref4.y;
if (gpuAcceleration) {
var _Object$assign;
return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
}
return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2));
}
function computeStyles(_ref5) {
var state = _ref5.state, options = _ref5.options;
var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
var commonStyles = {
placement: getBasePlacement(state.placement),
variation: getVariation(state.placement),
popper: state.elements.popper,
popperRect: state.rects.popper,
gpuAcceleration,
isFixed: state.options.strategy === "fixed"
};
if (state.modifiersData.popperOffsets != null) {
state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive,
roundOffsets
})));
}
if (state.modifiersData.arrow != null) {
state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.arrow,
position: "absolute",
adaptive: false,
roundOffsets
})));
}
state.attributes.popper = Object.assign({}, state.attributes.popper, {
"data-popper-placement": state.placement
});
}
const computeStyles$1 = {
name: "computeStyles",
enabled: true,
phase: "beforeWrite",
fn: computeStyles,
data: {}
};
var passive = {
passive: true
};
function effect(_ref) {
var state = _ref.state, instance = _ref.instance, options = _ref.options;
var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
var window2 = getWindow(state.elements.popper);
var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
if (scroll) {
scrollParents.forEach(function(scrollParent) {
scrollParent.addEventListener("scroll", instance.update, passive);
});
}
if (resize) {
window2.addEventListener("resize", instance.update, passive);
}
return function() {
if (scroll) {
scrollParents.forEach(function(scrollParent) {
scrollParent.removeEventListener("scroll", instance.update, passive);
});
}
if (resize) {
window2.removeEventListener("resize", instance.update, passive);
}
};
}
const eventListeners = {
name: "eventListeners",
enabled: true,
phase: "write",
fn: function fn() {
},
effect,
data: {}
};
var hash$1 = {
left: "right",
right: "left",
bottom: "top",
top: "bottom"
};
function getOppositePlacement(placement) {
return placement.replace(/left|right|bottom|top/g, function(matched) {
return hash$1[matched];
});
}
var hash = {
start: "end",
end: "start"
};
function getOppositeVariationPlacement(placement) {
return placement.replace(/start|end/g, function(matched) {
return hash[matched];
});
}
function getWindowScroll(node) {
var win = getWindow(node);
var scrollLeft = win.pageXOffset;
var scrollTop = win.pageYOffset;
return {
scrollLeft,
scrollTop
};
}
function getWindowScrollBarX(element) {
return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
}
function getViewportRect(element, strategy) {
var win = getWindow(element);
var html = getDocumentElement(element);
var visualViewport = win.visualViewport;
var width = html.clientWidth;
var height = html.clientHeight;
var x = 0;
var y = 0;
if (visualViewport) {
width = visualViewport.width;
height = visualViewport.height;
var layoutViewport = isLayoutViewport();
if (layoutViewport || !layoutViewport && strategy === "fixed") {
x = visualViewport.offsetLeft;
y = visualViewport.offsetTop;
}
}
return {
width,
height,
x: x + getWindowScrollBarX(element),
y
};
}
function getDocumentRect(element) {
var _element$ownerDocumen;
var html = getDocumentElement(element);
var winScroll = getWindowScroll(element);
var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
var y = -winScroll.scrollTop;
if (getComputedStyle$1(body || html).direction === "rtl") {
x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
}
return {
width,
height,
x,
y
};
}
function isScrollParent(element) {
var _getComputedStyle = getComputedStyle$1(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;
return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
}
function getScrollParent(node) {
if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
return node.ownerDocument.body;
}
if (isHTMLElement(node) && isScrollParent(node)) {
return node;
}
return getScrollParent(getParentNode(node));
}
function listScrollParents(element, list) {
var _element$ownerDocumen;
if (list === void 0) {
list = [];
}
var scrollParent = getScrollParent(element);
var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : (
// $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)))
);
}
function rectToClientRect(rect) {
return Object.assign({}, rect, {
left: rect.x,
top: rect.y,
right: rect.x + rect.width,
bottom: rect.y + rect.height
});
}
function getInnerBoundingClientRect(element, strategy) {
var rect = getBoundingClientRect(element, false, strategy === "fixed");
rect.top = rect.top + element.clientTop;
rect.left = rect.left + element.clientLeft;
rect.bottom = rect.top + element.clientHeight;
rect.right = rect.left + element.clientWidth;
rect.width = element.clientWidth;
rect.height = element.clientHeight;
rect.x = rect.left;
rect.y = rect.top;
return rect;
}
function getClientRectFromMixedType(element, clippingParent, strategy) {
return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement$1(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
}
function getClippingParents(element) {
var clippingParents2 = listScrollParents(getParentNode(element));
var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle$1(element).position) >= 0;
var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
if (!isElement$1(clipperElement)) {
return [];
}
return clippingParents2.filter(function(clippingParent) {
return isElement$1(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body";
});
}
function getClippingRect(element, boundary, rootBoundary, strategy) {
var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary);
var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]);
var firstClippingParent = clippingParents2[0];
var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) {
var rect = getClientRectFromMixedType(element, clippingParent, strategy);
accRect.top = max(rect.top, accRect.top);
accRect.right = min(rect.right, accRect.right);
accRect.bottom = min(rect.bottom, accRect.bottom);
accRect.left = max(rect.left, accRect.left);
return accRect;
}, getClientRectFromMixedType(element, firstClippingParent, strategy));
clippingRect.width = clippingRect.right - clippingRect.left;
clippingRect.height = clippingRect.bottom - clippingRect.top;
clippingRect.x = clippingRect.left;
clippingRect.y = clippingRect.top;
return clippingRect;
}
function computeOffsets(_ref) {
var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement;
var basePlacement = placement ? getBasePlacement(placement) : null;
var variation = placement ? getVariation(placement) : null;
var commonX = reference2.x + reference2.width / 2 - element.width / 2;
var commonY = reference2.y + reference2.height / 2 - element.height / 2;
var offsets;
switch (basePlacement) {
case top:
offsets = {
x: commonX,
y: reference2.y - element.height
};
break;
case bottom:
offsets = {
x: commonX,
y: reference2.y + reference2.height
};
break;
case right:
offsets = {
x: reference2.x + reference2.width,
y: commonY
};
break;
case left:
offsets = {
x: reference2.x - element.width,
y: commonY
};
break;
default:
offsets = {
x: reference2.x,
y: reference2.y
};
}
var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
if (mainAxis != null) {
var len = mainAxis === "y" ? "height" : "width";
switch (variation) {
case start:
offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2);
break;
case end:
offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2);
break;
}
}
return offsets;
}
function detectOverflow(state, options) {
if (options === void 0) {
options = {};
}
var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding;
var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
var altContext = elementContext === popper ? reference : popper;
var popperRect = state.rects.popper;
var element = state.elements[altBoundary ? altContext : elementContext];
var clippingClientRect = getClippingRect(isElement$1(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
var referenceClientRect = getBoundingClientRect(state.elements.reference);
var popperOffsets2 = computeOffsets({
reference: referenceClientRect,
element: popperRect,
placement
});
var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2));
var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;
var overflowOffsets = {
top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
right: elementClientRect.right - clippingClientRect.right + paddingObject.right
};
var offsetData = state.modifiersData.offset;
if (elementContext === popper && offsetData) {
var offset2 = offsetData[placement];
Object.keys(overflowOffsets).forEach(function(key) {
var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x";
overflowOffsets[key] += offset2[axis] * multiply;
});
}
return overflowOffsets;
}
function computeAutoPlacement(state, options) {
if (options === void 0) {
options = {};
}
var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
var variation = getVariation(placement);
var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) {
return getVariation(placement2) === variation;
}) : basePlacements;
var allowedPlacements = placements$1.filter(function(placement2) {
return allowedAutoPlacements.indexOf(placement2) >= 0;
});
if (allowedPlacements.length === 0) {
allowedPlacements = placements$1;
}
var overflows = allowedPlacements.reduce(function(acc, placement2) {
acc[placement2] = detectOverflow(state, {
placement: placement2,
boundary,
rootBoundary,
padding
})[getBasePlacement(placement2)];
return acc;
}, {});
return Object.keys(overflows).sort(function(a, b) {
return overflows[a] - overflows[b];
});
}
function getExpandedFallbackPlacements(placement) {
if (getBasePlacement(placement) === auto) {
return [];
}
var oppositePlacement = getOppositePlacement(placement);
return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
}
function flip(_ref) {
var state = _ref.state, options = _ref.options, name = _ref.name;
if (state.modifiersData[name]._skip) {
return;
}
var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements;
var preferredPlacement = state.options.placement;
var basePlacement = getBasePlacement(preferredPlacement);
var isBasePlacement = basePlacement === preferredPlacement;
var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) {
return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, {
placement: placement2,
boundary,
rootBoundary,
padding,
flipVariations,
allowedAutoPlacements
}) : placement2);
}, []);
var referenceRect = state.rects.reference;
var popperRect = state.rects.popper;
var checksMap = /* @__PURE__ */ new Map();
var makeFallbackChecks = true;
var firstFittingPlacement = placements2[0];
for (var i = 0; i < placements2.length; i++) {
var placement = placements2[i];
var _basePlacement = getBasePlacement(placement);
var isStartVariation = getVariation(placement) === start;
var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
var len = isVertical ? "width" : "height";
var overflow = detectOverflow(state, {
placement,
boundary,
rootBoundary,
altBoundary,
padding
});
var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
if (referenceRect[len] > popperRect[len]) {
mainVariationSide = getOppositePlacement(mainVariationSide);
}
var altVariationSide = getOppositePlacement(mainVariationSide);
var checks = [];
if (checkMainAxis) {
checks.push(overflow[_basePlacement] <= 0);
}
if (checkAltAxis) {
checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
}
if (checks.every(function(check) {
return check;
})) {
firstFittingPlacement = placement;
makeFallbackChecks = false;
break;
}
checksMap.set(placement, checks);
}
if (makeFallbackChecks) {
var numberOfChecks = flipVariations ? 3 : 1;
var _loop = function _loop2(_i2) {
var fittingPlacement = placements2.find(function(placement2) {
var checks2 = checksMap.get(placement2);
if (checks2) {
return checks2.slice(0, _i2).every(function(check) {
return check;
});
}
});
if (fittingPlacement) {
firstFittingPlacement = fittingPlacement;
return "break";
}
};
for (var _i = numberOfChecks; _i > 0; _i--) {
var _ret = _loop(_i);
if (_ret === "break") break;
}
}
if (state.placement !== firstFittingPlacement) {
state.modifiersData[name]._skip = true;
state.placement = firstFittingPlacement;
state.reset = true;
}
}
const flip$1 = {
name: "flip",
enabled: true,
phase: "main",
fn: flip,
requiresIfExists: ["offset"],
data: {
_skip: false
}
};
function getSideOffsets(overflow, rect, preventedOffsets) {
if (preventedOffsets === void 0) {
preventedOffsets = {
x: 0,
y: 0
};
}
return {
top: overflow.top - rect.height - preventedOffsets.y,
right: overflow.right - rect.width + preventedOffsets.x,
bottom: overflow.bottom - rect.height + preventedOffsets.y,
left: overflow.left - rect.width - preventedOffsets.x
};
}
function isAnySideFullyClipped(overflow) {
return [top, right, bottom, left].some(function(side) {
return overflow[side] >= 0;
});
}
function hide(_ref) {
var state = _ref.state, name = _ref.name;
var referenceRect = state.rects.reference;
var popperRect = state.rects.popper;
var preventedOffsets = state.modifiersData.preventOverflow;
var referenceOverflow = detectOverflow(state, {
elementContext: "reference"
});
var popperAltOverflow = detectOverflow(state, {
altBoundary: true
});
var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
state.modifiersData[name] = {
referenceClippingOffsets,
popperEscapeOffsets,
isReferenceHidden,
hasPopperEscaped
};
state.attributes.popper = Object.assign({}, state.attributes.popper, {
"data-popper-reference-hidden": isReferenceHidden,
"data-popper-escaped": hasPopperEscaped
});
}
const hide$1 = {
name: "hide",
enabled: true,
phase: "main",
requiresIfExists: ["preventOverflow"],
fn: hide
};
function distanceAndSkiddingToXY(placement, rects, offset2) {
var basePlacement = getBasePlacement(placement);
var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
placement
})) : offset2, skidding = _ref[0], distance = _ref[1];
skidding = skidding || 0;
distance = (distance || 0) * invertDistance;
return [left, right].indexOf(basePlacement) >= 0 ? {
x: distance,
y: skidding
} : {
x: skidding,
y: distance
};
}
function offset(_ref2) {
var state = _ref2.state, options = _ref2.options, name = _ref2.name;
var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
var data = placements.reduce(function(acc, placement) {
acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
return acc;
}, {});
var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;
if (state.modifiersData.popperOffsets != null) {
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
}
state.modifiersData[name] = data;
}
const offset$1 = {
name: "offset",
enabled: true,
phase: "main",
requires: ["popperOffsets"],
fn: offset
};
function popperOffsets(_ref) {
var state = _ref.state, name = _ref.name;
state.modifiersData[name] = computeOffsets({
reference: state.rects.reference,
element: state.rects.popper,
placement: state.placement
});
}
const popperOffsets$1 = {
name: "popperOffsets",
enabled: true,
phase: "read",
fn: popperOffsets,
data: {}
};
function getAltAxis(axis) {
return axis === "x" ? "y" : "x";
}
function preventOverflow(_ref) {
var state = _ref.state, options = _ref.options, name = _ref.name;
var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
var overflow = detectOverflow(state, {
boundary,
rootBoundary,
padding,
altBoundary
});
var basePlacement = getBasePlacement(state.placement);
var variation = getVariation(state.placement);
var isBasePlacement = !variation;
var mainAxis = getMainAxisFromPlacement(basePlacement);
var altAxis = getAltAxis(mainAxis);
var popperOffsets2 = state.modifiersData.popperOffsets;
var referenceRect = state.rects.reference;
var popperRect = state.rects.popper;
var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, {
placement: state.placement
})) : tetherOffset;
var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? {
mainAxis: tetherOffsetValue,
altAxis: tetherOffsetValue
} : Object.assign({
mainAxis: 0,
altAxis: 0
}, tetherOffsetValue);
var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
var data = {
x: 0,
y: 0
};
if (!popperOffsets2) {
return;
}
if (checkMainAxis) {
var _offsetModifierState$;
var mainSide = mainAxis === "y" ? top : left;
var altSide = mainAxis === "y" ? bottom : right;
var len = mainAxis === "y" ? "height" : "width";
var offset2 = popperOffsets2[mainAxis];
var min$1 = offset2 + overflow[mainSide];
var max$1 = offset2 - overflow[altSide];
var additive = tether ? -popperRect[len] / 2 : 0;
var minLen = variation === start ? referenceRect[len] : popperRect[len];
var maxLen = variation === start ? -popperRect[len] : -referenceRect[len];
var arrowElement = state.elements.arrow;
var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
width: 0,
height: 0
};
var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject();
var arrowPaddingMin = arrowPaddingObject[mainSide];
var arrowPaddingMax = arrowPaddingObject[altSide];
var arrowLen = within(0, referenceRect[len], arrowRect[len]);
var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset;
var tetherMax = offset2 + maxOffset - offsetModifierValue;
var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset2, tether ? max(max$1, tetherMax) : max$1);
popperOffsets2[mainAxis] = preventedOffset;
data[mainAxis] = preventedOffset - offset2;
}
if (checkAltAxis) {
var _offsetModifierState$2;
var _mainSide = mainAxis === "x" ? top : left;
var _altSide = mainAxis === "x" ? bottom : right;
var _offset = popperOffsets2[altAxis];
var _len = altAxis === "y" ? "height" : "width";
var _min = _offset + overflow[_mainSide];
var _max = _offset - overflow[_altSide];
var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
popperOffsets2[altAxis] = _preventedOffset;
data[altAxis] = _preventedOffset - _offset;
}
state.modifiersData[name] = data;
}
const preventOverflow$1 = {
name: "preventOverflow",
enabled: true,
phase: "main",
fn: preventOverflow,
requiresIfExists: ["offset"]
};
function getHTMLElementScroll(element) {
return {
scrollLeft: element.scrollLeft,
scrollTop: element.scrollTop
};
}
function getNodeScroll(node) {
if (node === getWindow(node) || !isHTMLElement(node)) {
return getWindowScroll(node);
} else {
return getHTMLElementScroll(node);
}
}
function isElementScaled(element) {
var rect = element.getBoundingClientRect();
var scaleX = round(rect.width) / element.offsetWidth || 1;
var scaleY = round(rect.height) / element.offsetHeight || 1;
return scaleX !== 1 || scaleY !== 1;
}
function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
if (isFixed === void 0) {
isFixed = false;
}
var isOffsetParentAnElement = isHTMLElement(offsetParent);
var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
var documentElement = getDocumentElement(offsetParent);
var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
var scroll = {
scrollLeft: 0,
scrollTop: 0
};
var offsets = {
x: 0,
y: 0
};
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
if (getNodeName(offsetParent) !== "body" || // https://github.com/popperjs/popper-core/issues/1078
isScrollParent(documentElement)) {
scroll = getNodeScroll(offsetParent);
}
if (isHTMLElement(offsetParent)) {
offsets = getBoundingClientRect(offsetParent, true);
offsets.x += offsetParent.clientLeft;
offsets.y += offsetParent.clientTop;
} else if (documentElement) {
offsets.x = getWindowScrollBarX(documentElement);
}
}
return {
x: rect.left + scroll.scrollLeft - offsets.x,
y: rect.top + scroll.scrollTop - offsets.y,
width: rect.width,
height: rect.height
};
}
function order(modifiers) {
var map = /* @__PURE__ */ new Map();
var visited = /* @__PURE__ */ new Set();
var result = [];
modifiers.forEach(function(modifier) {
map.set(modifier.name, modifier);
});
function sort(modifier) {
visited.add(modifier.name);
var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
requires.forEach(function(dep) {
if (!visited.has(dep)) {
var depModifier = map.get(dep);
if (depModifier) {
sort(depModifier);
}
}
});
result.push(modifier);
}
modifiers.forEach(function(modifier) {
if (!visited.has(modifier.name)) {
sort(modifier);
}
});
return result;
}
function orderModifiers(modifiers) {
var orderedModifiers = order(modifiers);
return modifierPhases.reduce(function(acc, phase) {
return acc.concat(orderedModifiers.filter(function(modifier) {
return modifier.phase === phase;
}));
}, []);
}
function debounce(fn) {
var pending;
return function() {
if (!pending) {
pending = new Promise(function(resolve) {
Promise.resolve().then(function() {
pending = void 0;
resolve(fn());
});
});
}
return pending;
};
}
function mergeByName(modifiers) {
var merged = modifiers.reduce(function(merged2, current) {
var existing = merged2[current.name];
merged2[current.name] = existing ? Object.assign({}, existing, current, {
options: Object.assign({}, existing.options, current.options),
data: Object.assign({}, existing.data, current.data)
}) : current;
return merged2;
}, {});
return Object.keys(merged).map(function(key) {
return merged[key];
});
}
var DEFAULT_OPTIONS = {
placement: "bottom",
modifiers: [],
strategy: "absolute"
};
function areValidElements() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return !args.some(function(element) {
return !(element && typeof element.getBoundingClientRect === "function");
});
}
function popperGenerator(generatorOptions) {
if (generatorOptions === void 0) {
generatorOptions = {};
}
var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
return function createPopper2(reference2, popper2, options) {
if (options === void 0) {
options = defaultOptions;
}
var state = {
placement: "bottom",
orderedModifiers: [],
options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
modifiersData: {},
elements: {
reference: reference2,
popper: popper2
},
attributes: {},
styles: {}
};
var effectCleanupFns = [];
var isDestroyed = false;
var instance = {
state,
setOptions: function setOptions(setOptionsAction) {
var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
cleanupModifierEffects();
state.options = Object.assign({}, defaultOptions, state.options, options2);
state.scrollParents = {
reference: isElement$1(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [],
popper: listScrollParents(popper2)
};
var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));
state.orderedModifiers = orderedModifiers.filter(function(m) {
return m.enabled;
});
runModifierEffects();
return instance.update();
},
// Sync update it will always be executed, even if not necessary. This
// is useful for low frequency updates where sync behavior simplifies the
// logic.
// For high frequency updates (e.g. `resize` and `scroll` events), always
// prefer the async Popper#update method
forceUpdate: function forceUpdate() {
if (isDestroyed) {
return;
}
var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper;
if (!areValidElements(reference3, popper3)) {
return;
}
state.rects = {
reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"),
popper: getLayoutRect(popper3)
};
state.reset = false;
state.placement = state.options.placement;
state.orderedModifiers.forEach(function(modifier) {
return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
});
for (var index = 0; index < state.orderedModifiers.length; index++) {
if (state.reset === true) {
state.reset = false;
index = -1;
continue;
}
var _state$orderedModifie = state.orderedModifiers[index], fn = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;
if (typeof fn === "function") {
state = fn({
state,
options: _options,
name,
instance
}) || state;
}
}
},
// Async and optimistically optimized update it will not be executed if
// not necessary (debounced to run at most once-per-tick)
update: debounce(function() {
return new Promise(function(resolve) {
instance.forceUpdate();
resolve(state);
});
}),
destroy: function destroy() {
cleanupModifierEffects();
isDestroyed = true;
}
};
if (!areValidElements(reference2, popper2)) {
return instance;
}
instance.setOptions(options).then(function(state2) {
if (!isDestroyed && options.onFirstUpdate) {
options.onFirstUpdate(state2);
}
});
function runModifierEffects() {
state.orderedModifiers.forEach(function(_ref) {
var name = _ref.name, _ref$options = _ref.options, options2 = _ref$options === void 0 ? {} : _ref$options, effect2 = _ref.effect;
if (typeof effect2 === "function") {
var cleanupFn = effect2({
state,
name,
instance,
options: options2
});
var noopFn = function noopFn2() {
};
effectCleanupFns.push(cleanupFn || noopFn);
}
});
}
function cleanupModifierEffects() {
effectCleanupFns.forEach(function(fn) {
return fn();
});
effectCleanupFns = [];
}
return instance;
};
}
var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
var createPopper = /* @__PURE__ */ popperGenerator({
defaultModifiers
});
const Popper = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
afterMain,
afterRead,
afterWrite,
applyStyles: applyStyles$1,
arrow: arrow$1,
auto,
basePlacements,
beforeMain,
beforeRead,
beforeWrite,
bottom,
clippingParents,
computeStyles: computeStyles$1,
createPopper,
detectOverflow,
end,
eventListeners,
flip: flip$1,
hide: hide$1,
left,
main,
modifierPhases,
offset: offset$1,
placements,
popper,
popperGenerator,
popperOffsets: popperOffsets$1,
preventOverflow: preventOverflow$1,
read,
reference,
right,
start,
top,
variationPlacements,
viewport,
write
}, Symbol.toStringTag, { value: "Module" }));
/*!
* Bootstrap v5.3.8 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
const elementMap = /* @__PURE__ */ new Map();
const Data = {
set(element, key, instance) {
if (!elementMap.has(element)) {
elementMap.set(element, /* @__PURE__ */ new Map());
}
const instanceMap = elementMap.get(element);
if (!instanceMap.has(key) && instanceMap.size !== 0) {
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
return;
}
instanceMap.set(key, instance);
},
get(element, key) {
if (elementMap.has(element)) {
return elementMap.get(element).get(key) || null;
}
return null;
},
remove(element, key) {
if (!elementMap.has(element)) {
return;
}
const instanceMap = elementMap.get(element);
instanceMap.delete(key);
if (instanceMap.size === 0) {
elementMap.delete(element);
}
}
};
const MAX_UID = 1e6;
const MILLISECONDS_MULTIPLIER = 1e3;
const TRANSITION_END = "transitionend";
const parseSelector = (selector) => {
if (selector && window.CSS && window.CSS.escape) {
selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`);
}
return selector;
};
const toType = (object) => {
if (object === null || object === void 0) {
return `${object}`;
}
return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
};
const getUID = (prefix) => {
do {
prefix += Math.floor(Math.random() * MAX_UID);
} while (document.getElementById(prefix));
return prefix;
};
const getTransitionDurationFromElement = (element) => {
if (!element) {
return 0;
}
let {
transitionDuration,
transitionDelay
} = window.getComputedStyle(element);
const floatTransitionDuration = Number.parseFloat(transitionDuration);
const floatTransitionDelay = Number.parseFloat(transitionDelay);
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
}
transitionDuration = transitionDuration.split(",")[0];
transitionDelay = transitionDelay.split(",")[0];
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
const triggerTransitionEnd = (element) => {
element.dispatchEvent(new Event(TRANSITION_END));
};
const isElement = (object) => {
if (!object || typeof object !== "object") {
return false;
}
if (typeof object.jquery !== "undefined") {
object = object[0];
}
return typeof object.nodeType !== "undefined";
};
const getElement = (object) => {
if (isElement(object)) {
return object.jquery ? object[0] : object;
}
if (typeof object === "string" && object.length > 0) {
return document.querySelector(parseSelector(object));
}
return null;
};
const isVisible = (element) => {
if (!isElement(element) || element.getClientRects().length === 0) {
return false;
}
const elementIsVisible = getComputedStyle(element).getPropertyValue("visibility") === "visible";
const closedDetails = element.closest("details:not([open])");
if (!closedDetails) {
return elementIsVisible;
}
if (closedDetails !== element) {
const summary = element.closest("summary");
if (summary && summary.parentNode !== closedDetails) {
return false;
}
if (summary === null) {
return false;
}
}
return elementIsVisible;
};
const isDisabled = (element) => {
if (!element || element.nodeType !== Node.ELEMENT_NODE) {
return true;
}
if (element.classList.contains("disabled")) {
return true;
}
if (typeof element.disabled !== "undefined") {
return element.disabled;
}
return element.hasAttribute("disabled") && element.getAttribute("disabled") !== "false";
};
const findShadowRoot = (element) => {
if (!document.documentElement.attachShadow) {
return null;
}
if (typeof element.getRootNode === "function") {
const root = element.getRootNode();
return root instanceof ShadowRoot ? root : null;
}
if (element instanceof ShadowRoot) {
return element;
}
if (!element.parentNode) {
return null;
}
return findShadowRoot(element.parentNode);
};
const noop = () => {
};
const reflow = (element) => {
element.offsetHeight;
};
const getjQuery = () => {
if (window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")) {
return window.jQuery;
}
return null;
};
const DOMContentLoadedCallbacks = [];
const onDOMContentLoaded = (callback) => {
if (document.readyState === "loading") {
if (!DOMContentLoadedCallbacks.length) {
document.addEventListener("DOMContentLoaded", () => {
for (const callback2 of DOMContentLoadedCallbacks) {
callback2();
}
});
}
DOMContentLoadedCallbacks.push(callback);
} else {
callback();
}
};
const isRTL = () => document.documentElement.dir === "rtl";
const defineJQueryPlugin = (plugin) => {
onDOMContentLoaded(() => {
const $ = getjQuery();
if ($) {
const name = plugin.NAME;
const JQUERY_NO_CONFLICT = $.fn[name];
$.fn[name] = plugin.jQueryInterface;
$.fn[name].Constructor = plugin;
$.fn[name].noConflict = () => {
$.fn[name] = JQUERY_NO_CONFLICT;
return plugin.jQueryInterface;
};
}
});
};
const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
return typeof possibleCallback === "function" ? possibleCallback.call(...args) : defaultValue;
};
const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
if (!waitForTransition) {
execute(callback);
return;
}
const durationPadding = 5;
const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
let called = false;
const handler = ({
target
}) => {
if (target !== transitionElement) {
return;
}
called = true;
transitionElement.removeEventListener(TRANSITION_END, handler);
execute(callback);
};
transitionElement.addEventListener(TRANSITION_END, handler);
setTimeout(() => {
if (!called) {
triggerTransitionEnd(transitionElement);
}
}, emulatedDuration);
};
const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
const listLength = list.length;
let index = list.indexOf(activeElement);
if (index === -1) {
return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
}
index += shouldGetNext ? 1 : -1;
if (isCycleAllowed) {
index = (index + listLength) % listLength;
}
return list[Math.max(0, Math.min(index, listLength - 1))];
};
const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
const stripNameRegex = /\..*/;
const stripUidRegex = /::\d+$/;
const eventRegistry = {};
let uidEvent = 1;
const customEvents = {
mouseenter: "mouseover",
mouseleave: "mouseout"
};
const nativeEvents = /* @__PURE__ */ new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]);
function makeEventUid(element, uid) {
return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
}
function getElementEvents(element) {
const uid = makeEventUid(element);
element.uidEvent = uid;
eventRegistry[uid] = eventRegistry[uid] || {};
return eventRegistry[uid];
}
function bootstrapHandler(element, fn) {
return function handler(event) {
hydrateObj(event, {
delegateTarget: element
});
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
return fn.apply(element, [event]);
};
}
function bootstrapDelegationHandler(element, selector, fn) {
return function handler(event) {
const domElements = element.querySelectorAll(selector);
for (let {
target
} = event; target && target !== this; target = target.parentNode) {
for (const domElement of domElements) {
if (domElement !== target) {
continue;
}
hydrateObj(event, {
delegateTarget: target
});
if (handler.oneOff) {
EventHandler.off(element, event.type, selector, fn);
}
return fn.apply(target, [event]);
}
}
};
}
function findHandler(events, callable, delegationSelector = null) {
return Object.values(events).find((event) => event.callable === callable && event.delegationSelector === delegationSelector);
}
function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
const isDelegated = typeof handler === "string";
const callable = isDelegated ? delegationFunction : handler || delegationFunction;
let typeEvent = getTypeEvent(originalTypeEvent);
if (!nativeEvents.has(typeEvent)) {
typeEvent = originalTypeEvent;
}
return [isDelegated, callable, typeEvent];
}
function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
if (typeof originalTypeEvent !== "string" || !element) {
return;
}
let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
if (originalTypeEvent in customEvents) {
const wrapFunction = (fn2) => {
return function(event) {
if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
return fn2.call(this, event);
}
};
};
callable = wrapFunction(callable);
}
const events = getElementEvents(element);
const handlers = events[typeEvent] || (events[typeEvent] = {});
const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
if (previousFunction) {
previousFunction.oneOff = previousFunction.oneOff && oneOff;
return;
}
const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ""));
const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
fn.delegationSelector = isDelegated ? handler : null;
fn.callable = callable;
fn.oneOff = oneOff;
fn.uidEvent = uid;
handlers[uid] = fn;
element.addEventListener(typeEvent, fn, isDelegated);
}
function removeHandler(element, events, typeEvent, handler, delegationSelector) {
const fn = findHandler(events[typeEvent], handler, delegationSelector);
if (!fn) {
return;
}
element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
delete events[typeEvent][fn.uidEvent];
}
function removeNamespacedHandlers(element, events, typeEvent, namespace) {
const storeElementEvent = events[typeEvent] || {};
for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
if (handlerKey.includes(namespace)) {
removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
}
}
}
function getTypeEvent(event) {
event = event.replace(stripNameRegex, "");
return customEvents[event] || event;
}
const EventHandler = {
on(element, event, handler, delegationFunction) {
addHandler(element, event, handler, delegationFunction, false);
},
one(element, event, handler, delegationFunction) {
addHandler(element, event, handler, delegationFunction, true);
},
off(element, originalTypeEvent, handler, delegationFunction) {
if (typeof originalTypeEvent !== "string" || !element) {
return;
}
const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
const inNamespace = typeEvent !== originalTypeEvent;
const events = getElementEvents(element);
const storeElementEvent = events[typeEvent] || {};
const isNamespace = originalTypeEvent.startsWith(".");
if (typeof callable !== "undefined") {
if (!Object.keys(storeElementEvent).length) {
return;
}
removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
return;
}
if (isNamespace) {
for (const elementEvent of Object.keys(events)) {
removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
}
}
for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
const handlerKey = keyHandlers.replace(stripUidRegex, "");
if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
}
}
},
trigger(element, event, args) {
if (typeof event !== "string" || !element) {
return null;
}
const $ = getjQuery();
const typeEvent = getTypeEvent(event);
const inNamespace = event !== typeEvent;
let jQueryEvent = null;
let bubbles = true;
let nativeDispatch = true;
let defaultPrevented = false;
if (inNamespace && $) {
jQueryEvent = $.Event(event, args);
$(element).trigger(jQueryEvent);
bubbles = !jQueryEvent.isPropagationStopped();
nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
defaultPrevented = jQueryEvent.isDefaultPrevented();
}
const evt = hydrateObj(new Event(event, {
bubbles,
cancelable: true
}), args);
if (defaultPrevented) {
evt.preventDefault();
}
if (nativeDispatch) {
element.dispatchEvent(evt);
}
if (evt.defaultPrevented && jQueryEvent) {
jQueryEvent.preventDefault();
}
return evt;
}
};
function hydrateObj(obj, meta = {}) {
for (const [key, value] of Object.entries(meta)) {
try {
obj[key] = value;
} catch (_unused) {
Object.defineProperty(obj, key, {
configurable: true,
get() {
return value;
}
});
}
}
return obj;
}
function normalizeData(value) {
if (value === "true") {
return true;
}
if (value === "false") {
return false;
}
if (value === Number(value).toString()) {
return Number(value);
}
if (value === "" || value === "null") {
return null;
}
if (typeof value !== "string") {
return value;
}
try {
return JSON.parse(decodeURIComponent(value));
} catch (_unused) {
return value;
}
}
function normalizeDataKey(key) {
return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);
}
const Manipulator = {
setDataAttribute(element, key, value) {
element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
},
removeDataAttribute(element, key) {
element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
},
getDataAttributes(element) {
if (!element) {
return {};
}
const attributes = {};
const bsKeys = Object.keys(element.dataset).filter((key) => key.startsWith("bs") && !key.startsWith("bsConfig"));
for (const key of bsKeys) {
let pureKey = key.replace(/^bs/, "");
pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1);
attributes[pureKey] = normalizeData(element.dataset[key]);
}
return attributes;
},
getDataAttribute(element, key) {
return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
}
};
class Config {
// Getters
static get Default() {
return {};
}
static get DefaultType() {
return {};
}
static get NAME() {
throw new Error('You have to implement the static method "NAME", for each component!');
}
_getConfig(config) {
config = this._mergeConfigObj(config);
config = this._configAfterMerge(config);
this._typeCheckConfig(config);
return config;
}
_configAfterMerge(config) {
return config;
}
_mergeConfigObj(config, element) {
const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, "config") : {};
return {
...this.constructor.Default,
...typeof jsonConfig === "object" ? jsonConfig : {},
...isElement(element) ? Manipulator.getDataAttributes(element) : {},
...typeof config === "object" ? config : {}
};
}
_typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
for (const [property, expectedTypes] of Object.entries(configTypes)) {
const value = config[property];
const valueType = isElement(value) ? "element" : toType(value);
if (!new RegExp(expectedTypes).test(valueType)) {
throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
}
}
}
}
const VERSION = "5.3.8";
class BaseComponent extends Config {
constructor(element, config) {
super();
element = getElement(element);
if (!element) {
return;
}
this._element = element;
this._config = this._getConfig(config);
Data.set(this._element, this.constructor.DATA_KEY, this);
}
// Public
dispose() {
Data.remove(this._element, this.constructor.DATA_KEY);
EventHandler.off(this._element, this.constructor.EVENT_KEY);
for (const propertyName of Object.getOwnPropertyNames(this)) {
this[propertyName] = null;
}
}
// Private
_queueCallback(callback, element, isAnimated = true) {
executeAfterTransition(callback, element, isAnimated);
}
_getConfig(config) {
config = this._mergeConfigObj(config, this._element);
config = this._configAfterMerge(config);
this._typeCheckConfig(config);
return config;
}
// Static
static getInstance(element) {
return Data.get(getElement(element), this.DATA_KEY);
}
static getOrCreateInstance(element, config = {}) {
return this.getInstance(element) || new this(element, typeof config === "object" ? config : null);
}
static get VERSION() {
return VERSION;
}
static get DATA_KEY() {
return `bs.${this.NAME}`;
}
static get EVENT_KEY() {
return `.${this.DATA_KEY}`;
}
static eventName(name) {
return `${name}${this.EVENT_KEY}`;
}
}
const getSelector = (element) => {
let selector = element.getAttribute("data-bs-target");
if (!selector || selector === "#") {
let hrefAttribute = element.getAttribute("href");
if (!hrefAttribute || !hrefAttribute.includes("#") && !hrefAttribute.startsWith(".")) {
return null;
}
if (hrefAttribute.includes("#") && !hrefAttribute.startsWith("#")) {
hrefAttribute = `#${hrefAttribute.split("#")[1]}`;
}
selector = hrefAttribute && hrefAttribute !== "#" ? hrefAttribute.trim() : null;
}
return selector ? selector.split(",").map((sel) => parseSelector(sel)).join(",") : null;
};
const SelectorEngine = {
find(selector, element = document.documentElement) {
return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
},
findOne(selector, element = document.documentElement) {
return Element.prototype.querySelector.call(element, selector);
},
children(element, selector) {
return [].concat(...element.children).filter((child) => child.matches(selector));
},
parents(element, selector) {
const parents = [];
let ancestor = element.parentNode.closest(selector);
while (ancestor) {
parents.push(ancestor);
ancestor = ancestor.parentNode.closest(selector);
}
return parents;
},
prev(element, selector) {
let previous = element.previousElementSibling;
while (previous) {
if (previous.matches(selector)) {
return [previous];
}
previous = previous.previousElementSibling;
}
return [];
},
// TODO: this is now unused; remove later along with prev()
next(element, selector) {
let next = element.nextElementSibling;
while (next) {
if (next.matches(selector)) {
return [next];
}
next = next.nextElementSibling;
}
return [];
},
focusableChildren(element) {
const focusables = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((selector) => `${selector}:not([tabindex^="-"])`).join(",");
return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el));
},
getSelectorFromElement(element) {
const selector = getSelector(element);
if (selector) {
return SelectorEngine.findOne(selector) ? selector : null;
}
return null;
},
getElementFromSelector(element) {
const selector = getSelector(element);
return selector ? SelectorEngine.findOne(selector) : null;
},
getMultipleElementsFromSelector(element) {
const selector = getSelector(element);
return selector ? SelectorEngine.find(selector) : [];
}
};
const enableDismissTrigger = (component, method = "hide") => {
const clickEvent = `click.dismiss${component.EVENT_KEY}`;
const name = component.NAME;
EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function(event) {
if (["A", "AREA"].includes(this.tagName)) {
event.preventDefault();
}
if (isDisabled(this)) {
return;
}
const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);
const instance = component.getOrCreateInstance(target);
instance[method]();
});
};
const NAME$f = "alert";
const DATA_KEY$a = "bs.alert";
const EVENT_KEY$b = `.${DATA_KEY$a}`;
const EVENT_CLOSE = `close${EVENT_KEY$b}`;
const EVENT_CLOSED = `closed${EVENT_KEY$b}`;
const CLASS_NAME_FADE$5 = "fade";
const CLASS_NAME_SHOW$8 = "show";
class Alert extends BaseComponent {
// Getters
static get NAME() {
return NAME$f;
}
// Public
close() {
const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
if (closeEvent.defaultPrevented) {
return;
}
this._element.classList.remove(CLASS_NAME_SHOW$8);
const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);
this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
}
// Private
_destroyElement() {
this._element.remove();
EventHandler.trigger(this._element, EVENT_CLOSED);
this.dispose();
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Alert.getOrCreateInstance(this);
if (typeof config !== "string") {
return;
}
if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
throw new TypeError(`No method named "${config}"`);
}
data[config](this);
});
}
}
enableDismissTrigger(Alert, "close");
defineJQueryPlugin(Alert);
const NAME$e = "button";
const DATA_KEY$9 = "bs.button";
const EVENT_KEY$a = `.${DATA_KEY$9}`;
const DATA_API_KEY$6 = ".data-api";
const CLASS_NAME_ACTIVE$3 = "active";
const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]';
const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
class Button extends BaseComponent {
// Getters
static get NAME() {
return NAME$e;
}
// Public
toggle() {
this._element.setAttribute("aria-pressed", this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Button.getOrCreateInstance(this);
if (config === "toggle") {
data[config]();
}
});
}
}
EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, (event) => {
event.preventDefault();
const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);
const data = Button.getOrCreateInstance(button);
data.toggle();
});
defineJQueryPlugin(Button);
const NAME$d = "swipe";
const EVENT_KEY$9 = ".bs.swipe";
const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;
const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;
const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;
const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;
const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;
const POINTER_TYPE_TOUCH = "touch";
const POINTER_TYPE_PEN = "pen";
const CLASS_NAME_POINTER_EVENT = "pointer-event";
const SWIPE_THRESHOLD = 40;
const Default$c = {
endCallback: null,
leftCallback: null,
rightCallback: null
};
const DefaultType$c = {
endCallback: "(function|null)",
leftCallback: "(function|null)",
rightCallback: "(function|null)"
};
class Swipe extends Config {
constructor(element, config) {
super();
this._element = element;
if (!element || !Swipe.isSupported()) {
return;
}
this._config = this._getConfig(config);
this._deltaX = 0;
this._supportPointerEvents = Boolean(window.PointerEvent);
this._initEvents();
}
// Getters
static get Default() {
return Default$c;
}
static get DefaultType() {
return DefaultType$c;
}
static get NAME() {
return NAME$d;
}
// Public
dispose() {
EventHandler.off(this._element, EVENT_KEY$9);
}
// Private
_start(event) {
if (!this._supportPointerEvents) {
this._deltaX = event.touches[0].clientX;
return;
}
if (this._eventIsPointerPenTouch(event)) {
this._deltaX = event.clientX;
}
}
_end(event) {
if (this._eventIsPointerPenTouch(event)) {
this._deltaX = event.clientX - this._deltaX;
}
this._handleSwipe();
execute(this._config.endCallback);
}
_move(event) {
this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
}
_handleSwipe() {
const absDeltaX = Math.abs(this._deltaX);
if (absDeltaX <= SWIPE_THRESHOLD) {
return;
}
const direction = absDeltaX / this._deltaX;
this._deltaX = 0;
if (!direction) {
return;
}
execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
}
_initEvents() {
if (this._supportPointerEvents) {
EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event));
EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event));
this._element.classList.add(CLASS_NAME_POINTER_EVENT);
} else {
EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event));
EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event));
EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event));
}
}
_eventIsPointerPenTouch(event) {
return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
}
// Static
static isSupported() {
return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0;
}
}
const NAME$c = "carousel";
const DATA_KEY$8 = "bs.carousel";
const EVENT_KEY$8 = `.${DATA_KEY$8}`;
const DATA_API_KEY$5 = ".data-api";
const ARROW_LEFT_KEY$1 = "ArrowLeft";
const ARROW_RIGHT_KEY$1 = "ArrowRight";
const TOUCHEVENT_COMPAT_WAIT = 500;
const ORDER_NEXT = "next";
const ORDER_PREV = "prev";
const DIRECTION_LEFT = "left";
const DIRECTION_RIGHT = "right";
const EVENT_SLIDE = `slide${EVENT_KEY$8}`;
const EVENT_SLID = `slid${EVENT_KEY$8}`;
const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;
const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;
const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;
const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;
const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;
const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
const CLASS_NAME_CAROUSEL = "carousel";
const CLASS_NAME_ACTIVE$2 = "active";
const CLASS_NAME_SLIDE = "slide";
const CLASS_NAME_END = "carousel-item-end";
const CLASS_NAME_START = "carousel-item-start";
const CLASS_NAME_NEXT = "carousel-item-next";
const CLASS_NAME_PREV = "carousel-item-prev";
const SELECTOR_ACTIVE = ".active";
const SELECTOR_ITEM = ".carousel-item";
const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
const SELECTOR_ITEM_IMG = ".carousel-item img";
const SELECTOR_INDICATORS = ".carousel-indicators";
const SELECTOR_DATA_SLIDE = "[data-bs-slide], [data-bs-slide-to]";
const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
const KEY_TO_DIRECTION = {
[ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
[ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
};
const Default$b = {
interval: 5e3,
keyboard: true,
pause: "hover",
ride: false,
touch: true,
wrap: true
};
const DefaultType$b = {
interval: "(number|boolean)",
// TODO:v6 remove boolean support
keyboard: "boolean",
pause: "(string|boolean)",
ride: "(boolean|string)",
touch: "boolean",
wrap: "boolean"
};
class Carousel extends BaseComponent {
constructor(element, config) {
super(element, config);
this._interval = null;
this._activeElement = null;
this._isSliding = false;
this.touchTimeout = null;
this._swipeHelper = null;
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
this._addEventListeners();
if (this._config.ride === CLASS_NAME_CAROUSEL) {
this.cycle();
}
}
// Getters
static get Default() {
return Default$b;
}
static get DefaultType() {
return DefaultType$b;
}
static get NAME() {
return NAME$c;
}
// Public
next() {
this._slide(ORDER_NEXT);
}
nextWhenVisible() {
if (!document.hidden && isVisible(this._element)) {
this.next();
}
}
prev() {
this._slide(ORDER_PREV);
}
pause() {
if (this._isSliding) {
triggerTransitionEnd(this._element);
}
this._clearInterval();
}
cycle() {
this._clearInterval();
this._updateInterval();
this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
}
_maybeEnableCycle() {
if (!this._config.ride) {
return;
}
if (this._isSliding) {
EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
return;
}
this.cycle();
}
to(index) {
const items = this._getItems();
if (index > items.length - 1 || index < 0) {
return;
}
if (this._isSliding) {
EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
return;
}
const activeIndex = this._getItemIndex(this._getActive());
if (activeIndex === index) {
return;
}
const order2 = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
this._slide(order2, items[index]);
}
dispose() {
if (this._swipeHelper) {
this._swipeHelper.dispose();
}
super.dispose();
}
// Private
_configAfterMerge(config) {
config.defaultInterval = config.interval;
return config;
}
_addEventListeners() {
if (this._config.keyboard) {
EventHandler.on(this._element, EVENT_KEYDOWN$1, (event) => this._keydown(event));
}
if (this._config.pause === "hover") {
EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());
EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
}
if (this._config.touch && Swipe.isSupported()) {
this._addTouchEventListeners();
}
}
_addTouchEventListeners() {
for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault());
}
const endCallBack = () => {
if (this._config.pause !== "hover") {
return;
}
this.pause();
if (this.touchTimeout) {
clearTimeout(this.touchTimeout);
}
this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
};
const swipeConfig = {
leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
endCallback: endCallBack
};
this._swipeHelper = new Swipe(this._element, swipeConfig);
}
_keydown(event) {
if (/input|textarea/i.test(event.target.tagName)) {
return;
}
const direction = KEY_TO_DIRECTION[event.key];
if (direction) {
event.preventDefault();
this._slide(this._directionToOrder(direction));
}
}
_getItemIndex(element) {
return this._getItems().indexOf(element);
}
_setActiveIndicatorElement(index) {
if (!this._indicatorsElement) {
return;
}
const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
activeIndicator.removeAttribute("aria-current");
const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
if (newActiveIndicator) {
newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);
newActiveIndicator.setAttribute("aria-current", "true");
}
}
_updateInterval() {
const element = this._activeElement || this._getActive();
if (!element) {
return;
}
const elementInterval = Number.parseInt(element.getAttribute("data-bs-interval"), 10);
this._config.interval = elementInterval || this._config.defaultInterval;
}
_slide(order2, element = null) {
if (this._isSliding) {
return;
}
const activeElement = this._getActive();
const isNext = order2 === ORDER_NEXT;
const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
if (nextElement === activeElement) {
return;
}
const nextElementIndex = this._getItemIndex(nextElement);
const triggerEvent = (eventName) => {
return EventHandler.trigger(this._element, eventName, {
relatedTarget: nextElement,
direction: this._orderToDirection(order2),
from: this._getItemIndex(activeElement),
to: nextElementIndex
});
};
const slideEvent = triggerEvent(EVENT_SLIDE);
if (slideEvent.defaultPrevented) {
return;
}
if (!activeElement || !nextElement) {
return;
}
const isCycling = Boolean(this._interval);
this.pause();
this._isSliding = true;
this._setActiveIndicatorElement(nextElementIndex);
this._activeElement = nextElement;
const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
nextElement.classList.add(orderClassName);
reflow(nextElement);
activeElement.classList.add(directionalClassName);
nextElement.classList.add(directionalClassName);
const completeCallBack = () => {
nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE$2);
activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
this._isSliding = false;
triggerEvent(EVENT_SLID);
};
this._queueCallback(completeCallBack, activeElement, this._isAnimated());
if (isCycling) {
this.cycle();
}
}
_isAnimated() {
return this._element.classList.contains(CLASS_NAME_SLIDE);
}
_getActive() {
return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
}
_getItems() {
return SelectorEngine.find(SELECTOR_ITEM, this._element);
}
_clearInterval() {
if (this._interval) {
clearInterval(this._interval);
this._interval = null;
}
}
_directionToOrder(direction) {
if (isRTL()) {
return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
}
return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
}
_orderToDirection(order2) {
if (isRTL()) {
return order2 === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
}
return order2 === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Carousel.getOrCreateInstance(this, config);
if (typeof config === "number") {
data.to(config);
return;
}
if (typeof config === "string") {
if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
throw new TypeError(`No method named "${config}"`);
}
data[config]();
}
});
}
}
EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function(event) {
const target = SelectorEngine.getElementFromSelector(this);
if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
return;
}
event.preventDefault();
const carousel = Carousel.getOrCreateInstance(target);
const slideIndex = this.getAttribute("data-bs-slide-to");
if (slideIndex) {
carousel.to(slideIndex);
carousel._maybeEnableCycle();
return;
}
if (Manipulator.getDataAttribute(this, "slide") === "next") {
carousel.next();
carousel._maybeEnableCycle();
return;
}
carousel.prev();
carousel._maybeEnableCycle();
});
EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
for (const carousel of carousels) {
Carousel.getOrCreateInstance(carousel);
}
});
defineJQueryPlugin(Carousel);
const NAME$b = "collapse";
const DATA_KEY$7 = "bs.collapse";
const EVENT_KEY$7 = `.${DATA_KEY$7}`;
const DATA_API_KEY$4 = ".data-api";
const EVENT_SHOW$6 = `show${EVENT_KEY$7}`;
const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;
const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;
const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;
const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
const CLASS_NAME_SHOW$7 = "show";
const CLASS_NAME_COLLAPSE = "collapse";
const CLASS_NAME_COLLAPSING = "collapsing";
const CLASS_NAME_COLLAPSED = "collapsed";
const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
const CLASS_NAME_HORIZONTAL = "collapse-horizontal";
const WIDTH = "width";
const HEIGHT = "height";
const SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing";
const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
const Default$a = {
parent: null,
toggle: true
};
const DefaultType$a = {
parent: "(null|element)",
toggle: "boolean"
};
class Collapse extends BaseComponent {
constructor(element, config) {
super(element, config);
this._isTransitioning = false;
this._triggerArray = [];
const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
for (const elem of toggleList) {
const selector = SelectorEngine.getSelectorFromElement(elem);
const filterElement = SelectorEngine.find(selector).filter((foundElement) => foundElement === this._element);
if (selector !== null && filterElement.length) {
this._triggerArray.push(elem);
}
}
this._initializeChildren();
if (!this._config.parent) {
this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
}
if (this._config.toggle) {
this.toggle();
}
}
// Getters
static get Default() {
return Default$a;
}
static get DefaultType() {
return DefaultType$a;
}
static get NAME() {
return NAME$b;
}
// Public
toggle() {
if (this._isShown()) {
this.hide();
} else {
this.show();
}
}
show() {
if (this._isTransitioning || this._isShown()) {
return;
}
let activeChildren = [];
if (this._config.parent) {
activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter((element) => element !== this._element).map((element) => Collapse.getOrCreateInstance(element, {
toggle: false
}));
}
if (activeChildren.length && activeChildren[0]._isTransitioning) {
return;
}
const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);
if (startEvent.defaultPrevented) {
return;
}
for (const activeInstance of activeChildren) {
activeInstance.hide();
}
const dimension = this._getDimension();
this._element.classList.remove(CLASS_NAME_COLLAPSE);
this._element.classList.add(CLASS_NAME_COLLAPSING);
this._element.style[dimension] = 0;
this._addAriaAndCollapsedClass(this._triggerArray, true);
this._isTransitioning = true;
const complete = () => {
this._isTransitioning = false;
this._element.classList.remove(CLASS_NAME_COLLAPSING);
this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
this._element.style[dimension] = "";
EventHandler.trigger(this._element, EVENT_SHOWN$6);
};
const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
const scrollSize = `scroll${capitalizedDimension}`;
this._queueCallback(complete, this._element, true);
this._element.style[dimension] = `${this._element[scrollSize]}px`;
}
hide() {
if (this._isTransitioning || !this._isShown()) {
return;
}
const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);
if (startEvent.defaultPrevented) {
return;
}
const dimension = this._getDimension();
this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
reflow(this._element);
this._element.classList.add(CLASS_NAME_COLLAPSING);
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
for (const trigger of this._triggerArray) {
const element = SelectorEngine.getElementFromSelector(trigger);
if (element && !this._isShown(element)) {
this._addAriaAndCollapsedClass([trigger], false);
}
}
this._isTransitioning = true;
const complete = () => {
this._isTransitioning = false;
this._element.classList.remove(CLASS_NAME_COLLAPSING);
this._element.classList.add(CLASS_NAME_COLLAPSE);
EventHandler.trigger(this._element, EVENT_HIDDEN$6);
};
this._element.style[dimension] = "";
this._queueCallback(complete, this._element, true);
}
// Private
_isShown(element = this._element) {
return element.classList.contains(CLASS_NAME_SHOW$7);
}
_configAfterMerge(config) {
config.toggle = Boolean(config.toggle);
config.parent = getElement(config.parent);
return config;
}
_getDimension() {
return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
}
_initializeChildren() {
if (!this._config.parent) {
return;
}
const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);
for (const element of children) {
const selected = SelectorEngine.getElementFromSelector(element);
if (selected) {
this._addAriaAndCollapsedClass([element], this._isShown(selected));
}
}
}
_getFirstLevelChildren(selector) {
const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
return SelectorEngine.find(selector, this._config.parent).filter((element) => !children.includes(element));
}
_addAriaAndCollapsedClass(triggerArray, isOpen) {
if (!triggerArray.length) {
return;
}
for (const element of triggerArray) {
element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
element.setAttribute("aria-expanded", isOpen);
}
}
// Static
static jQueryInterface(config) {
const _config = {};
if (typeof config === "string" && /show|hide/.test(config)) {
_config.toggle = false;
}
return this.each(function() {
const data = Collapse.getOrCreateInstance(this, _config);
if (typeof config === "string") {
if (typeof data[config] === "undefined") {
throw new TypeError(`No method named "${config}"`);
}
data[config]();
}
});
}
}
EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function(event) {
if (event.target.tagName === "A" || event.delegateTarget && event.delegateTarget.tagName === "A") {
event.preventDefault();
}
for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
Collapse.getOrCreateInstance(element, {
toggle: false
}).toggle();
}
});
defineJQueryPlugin(Collapse);
const NAME$a = "dropdown";
const DATA_KEY$6 = "bs.dropdown";
const EVENT_KEY$6 = `.${DATA_KEY$6}`;
const DATA_API_KEY$3 = ".data-api";
const ESCAPE_KEY$2 = "Escape";
const TAB_KEY$1 = "Tab";
const ARROW_UP_KEY$1 = "ArrowUp";
const ARROW_DOWN_KEY$1 = "ArrowDown";
const RIGHT_MOUSE_BUTTON = 2;
const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;
const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;
const CLASS_NAME_SHOW$6 = "show";
const CLASS_NAME_DROPUP = "dropup";
const CLASS_NAME_DROPEND = "dropend";
const CLASS_NAME_DROPSTART = "dropstart";
const CLASS_NAME_DROPUP_CENTER = "dropup-center";
const CLASS_NAME_DROPDOWN_CENTER = "dropdown-center";
const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;
const SELECTOR_MENU = ".dropdown-menu";
const SELECTOR_NAVBAR = ".navbar";
const SELECTOR_NAVBAR_NAV = ".navbar-nav";
const SELECTOR_VISIBLE_ITEMS = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)";
const PLACEMENT_TOP = isRTL() ? "top-end" : "top-start";
const PLACEMENT_TOPEND = isRTL() ? "top-start" : "top-end";
const PLACEMENT_BOTTOM = isRTL() ? "bottom-end" : "bottom-start";
const PLACEMENT_BOTTOMEND = isRTL() ? "bottom-start" : "bottom-end";
const PLACEMENT_RIGHT = isRTL() ? "left-start" : "right-start";
const PLACEMENT_LEFT = isRTL() ? "right-start" : "left-start";
const PLACEMENT_TOPCENTER = "top";
const PLACEMENT_BOTTOMCENTER = "bottom";
const Default$9 = {
autoClose: true,
boundary: "clippingParents",
display: "dynamic",
offset: [0, 2],
popperConfig: null,
reference: "toggle"
};
const DefaultType$9 = {
autoClose: "(boolean|string)",
boundary: "(string|element)",
display: "string",
offset: "(array|string|function)",
popperConfig: "(null|object|function)",
reference: "(string|element|object)"
};
class Dropdown extends BaseComponent {
constructor(element, config) {
super(element, config);
this._popper = null;
this._parent = this._element.parentNode;
this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
this._inNavbar = this._detectNavbar();
}
// Getters
static get Default() {
return Default$9;
}
static get DefaultType() {
return DefaultType$9;
}
static get NAME() {
return NAME$a;
}
// Public
toggle() {
return this._isShown() ? this.hide() : this.show();
}
show() {
if (isDisabled(this._element) || this._isShown()) {
return;
}
const relatedTarget = {
relatedTarget: this._element
};
const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);
if (showEvent.defaultPrevented) {
return;
}
this._createPopper();
if ("ontouchstart" in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
for (const element of [].concat(...document.body.children)) {
EventHandler.on(element, "mouseover", noop);
}
}
this._element.focus();
this._element.setAttribute("aria-expanded", true);
this._menu.classList.add(CLASS_NAME_SHOW$6);
this._element.classList.add(CLASS_NAME_SHOW$6);
EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);
}
hide() {
if (isDisabled(this._element) || !this._isShown()) {
return;
}
const relatedTarget = {
relatedTarget: this._element
};
this._completeHide(relatedTarget);
}
dispose() {
if (this._popper) {
this._popper.destroy();
}
super.dispose();
}
update() {
this._inNavbar = this._detectNavbar();
if (this._popper) {
this._popper.update();
}
}
// Private
_completeHide(relatedTarget) {
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);
if (hideEvent.defaultPrevented) {
return;
}
if ("ontouchstart" in document.documentElement) {
for (const element of [].concat(...document.body.children)) {
EventHandler.off(element, "mouseover", noop);
}
}
if (this._popper) {
this._popper.destroy();
}
this._menu.classList.remove(CLASS_NAME_SHOW$6);
this._element.classList.remove(CLASS_NAME_SHOW$6);
this._element.setAttribute("aria-expanded", "false");
Manipulator.removeDataAttribute(this._menu, "popper");
EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
}
_getConfig(config) {
config = super._getConfig(config);
if (typeof config.reference === "object" && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== "function") {
throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
}
return config;
}
_createPopper() {
if (typeof Popper === "undefined") {
throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)");
}
let referenceElement = this._element;
if (this._config.reference === "parent") {
referenceElement = this._parent;
} else if (isElement(this._config.reference)) {
referenceElement = getElement(this._config.reference);
} else if (typeof this._config.reference === "object") {
referenceElement = this._config.reference;
}
const popperConfig = this._getPopperConfig();
this._popper = createPopper(referenceElement, this._menu, popperConfig);
}
_isShown() {
return this._menu.classList.contains(CLASS_NAME_SHOW$6);
}
_getPlacement() {
const parentDropdown = this._parent;
if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
return PLACEMENT_RIGHT;
}
if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
return PLACEMENT_LEFT;
}
if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
return PLACEMENT_TOPCENTER;
}
if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
return PLACEMENT_BOTTOMCENTER;
}
const isEnd = getComputedStyle(this._menu).getPropertyValue("--bs-position").trim() === "end";
if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
}
return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
}
_detectNavbar() {
return this._element.closest(SELECTOR_NAVBAR) !== null;
}
_getOffset() {
const {
offset: offset2
} = this._config;
if (typeof offset2 === "string") {
return offset2.split(",").map((value) => Number.parseInt(value, 10));
}
if (typeof offset2 === "function") {
return (popperData) => offset2(popperData, this._element);
}
return offset2;
}
_getPopperConfig() {
const defaultBsPopperConfig = {
placement: this._getPlacement(),
modifiers: [{
name: "preventOverflow",
options: {
boundary: this._config.boundary
}
}, {
name: "offset",
options: {
offset: this._getOffset()
}
}]
};
if (this._inNavbar || this._config.display === "static") {
Manipulator.setDataAttribute(this._menu, "popper", "static");
defaultBsPopperConfig.modifiers = [{
name: "applyStyles",
enabled: false
}];
}
return {
...defaultBsPopperConfig,
...execute(this._config.popperConfig, [void 0, defaultBsPopperConfig])
};
}
_selectMenuItem({
key,
target
}) {
const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter((element) => isVisible(element));
if (!items.length) {
return;
}
getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Dropdown.getOrCreateInstance(this, config);
if (typeof config !== "string") {
return;
}
if (typeof data[config] === "undefined") {
throw new TypeError(`No method named "${config}"`);
}
data[config]();
});
}
static clearMenus(event) {
if (event.button === RIGHT_MOUSE_BUTTON || event.type === "keyup" && event.key !== TAB_KEY$1) {
return;
}
const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);
for (const toggle of openToggles) {
const context = Dropdown.getInstance(toggle);
if (!context || context._config.autoClose === false) {
continue;
}
const composedPath = event.composedPath();
const isMenuTarget = composedPath.includes(context._menu);
if (composedPath.includes(context._element) || context._config.autoClose === "inside" && !isMenuTarget || context._config.autoClose === "outside" && isMenuTarget) {
continue;
}
if (context._menu.contains(event.target) && (event.type === "keyup" && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {
continue;
}
const relatedTarget = {
relatedTarget: context._element
};
if (event.type === "click") {
relatedTarget.clickEvent = event;
}
context._completeHide(relatedTarget);
}
}
static dataApiKeydownHandler(event) {
const isInput = /input|textarea/i.test(event.target.tagName);
const isEscapeEvent = event.key === ESCAPE_KEY$2;
const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);
if (!isUpOrDownEvent && !isEscapeEvent) {
return;
}
if (isInput && !isEscapeEvent) {
return;
}
event.preventDefault();
const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const instance = Dropdown.getOrCreateInstance(getToggleButton);
if (isUpOrDownEvent) {
event.stopPropagation();
instance.show();
instance._selectMenuItem(event);
return;
}
if (instance._isShown()) {
event.stopPropagation();
instance.hide();
getToggleButton.focus();
}
}
}
EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function(event) {
event.preventDefault();
Dropdown.getOrCreateInstance(this).toggle();
});
defineJQueryPlugin(Dropdown);
const NAME$9 = "backdrop";
const CLASS_NAME_FADE$4 = "fade";
const CLASS_NAME_SHOW$5 = "show";
const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;
const Default$8 = {
className: "modal-backdrop",
clickCallback: null,
isAnimated: false,
isVisible: true,
// if false, we use the backdrop helper without adding any element to the dom
rootElement: "body"
// give the choice to place backdrop under different elements
};
const DefaultType$8 = {
className: "string",
clickCallback: "(function|null)",
isAnimated: "boolean",
isVisible: "boolean",
rootElement: "(element|string)"
};
class Backdrop extends Config {
constructor(config) {
super();
this._config = this._getConfig(config);
this._isAppended = false;
this._element = null;
}
// Getters
static get Default() {
return Default$8;
}
static get DefaultType() {
return DefaultType$8;
}
static get NAME() {
return NAME$9;
}
// Public
show(callback) {
if (!this._config.isVisible) {
execute(callback);
return;
}
this._append();
const element = this._getElement();
if (this._config.isAnimated) {
reflow(element);
}
element.classList.add(CLASS_NAME_SHOW$5);
this._emulateAnimation(() => {
execute(callback);
});
}
hide(callback) {
if (!this._config.isVisible) {
execute(callback);
return;
}
this._getElement().classList.remove(CLASS_NAME_SHOW$5);
this._emulateAnimation(() => {
this.dispose();
execute(callback);
});
}
dispose() {
if (!this._isAppended) {
return;
}
EventHandler.off(this._element, EVENT_MOUSEDOWN);
this._element.remove();
this._isAppended = false;
}
// Private
_getElement() {
if (!this._element) {
const backdrop = document.createElement("div");
backdrop.className = this._config.className;
if (this._config.isAnimated) {
backdrop.classList.add(CLASS_NAME_FADE$4);
}
this._element = backdrop;
}
return this._element;
}
_configAfterMerge(config) {
config.rootElement = getElement(config.rootElement);
return config;
}
_append() {
if (this._isAppended) {
return;
}
const element = this._getElement();
this._config.rootElement.append(element);
EventHandler.on(element, EVENT_MOUSEDOWN, () => {
execute(this._config.clickCallback);
});
this._isAppended = true;
}
_emulateAnimation(callback) {
executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
}
}
const NAME$8 = "focustrap";
const DATA_KEY$5 = "bs.focustrap";
const EVENT_KEY$5 = `.${DATA_KEY$5}`;
const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;
const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;
const TAB_KEY = "Tab";
const TAB_NAV_FORWARD = "forward";
const TAB_NAV_BACKWARD = "backward";
const Default$7 = {
autofocus: true,
trapElement: null
// The element to trap focus inside of
};
const DefaultType$7 = {
autofocus: "boolean",
trapElement: "element"
};
class FocusTrap extends Config {
constructor(config) {
super();
this._config = this._getConfig(config);
this._isActive = false;
this._lastTabNavDirection = null;
}
// Getters
static get Default() {
return Default$7;
}
static get DefaultType() {
return DefaultType$7;
}
static get NAME() {
return NAME$8;
}
// Public
activate() {
if (this._isActive) {
return;
}
if (this._config.autofocus) {
this._config.trapElement.focus();
}
EventHandler.off(document, EVENT_KEY$5);
EventHandler.on(document, EVENT_FOCUSIN$2, (event) => this._handleFocusin(event));
EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));
this._isActive = true;
}
deactivate() {
if (!this._isActive) {
return;
}
this._isActive = false;
EventHandler.off(document, EVENT_KEY$5);
}
// Private
_handleFocusin(event) {
const {
trapElement
} = this._config;
if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
return;
}
const elements = SelectorEngine.focusableChildren(trapElement);
if (elements.length === 0) {
trapElement.focus();
} else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
elements[elements.length - 1].focus();
} else {
elements[0].focus();
}
}
_handleKeydown(event) {
if (event.key !== TAB_KEY) {
return;
}
this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
}
}
const SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top";
const SELECTOR_STICKY_CONTENT = ".sticky-top";
const PROPERTY_PADDING = "padding-right";
const PROPERTY_MARGIN = "margin-right";
class ScrollBarHelper {
constructor() {
this._element = document.body;
}
// Public
getWidth() {
const documentWidth = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
}
hide() {
const width = this.getWidth();
this._disableOverFlow();
this._setElementAttributes(this._element, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, (calculatedValue) => calculatedValue - width);
}
reset() {
this._resetElementAttributes(this._element, "overflow");
this._resetElementAttributes(this._element, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
}
isOverflowing() {
return this.getWidth() > 0;
}
// Private
_disableOverFlow() {
this._saveInitialAttribute(this._element, "overflow");
this._element.style.overflow = "hidden";
}
_setElementAttributes(selector, styleProperty, callback) {
const scrollbarWidth = this.getWidth();
const manipulationCallBack = (element) => {
if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
return;
}
this._saveInitialAttribute(element, styleProperty);
const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_saveInitialAttribute(element, styleProperty) {
const actualValue = element.style.getPropertyValue(styleProperty);
if (actualValue) {
Manipulator.setDataAttribute(element, styleProperty, actualValue);
}
}
_resetElementAttributes(selector, styleProperty) {
const manipulationCallBack = (element) => {
const value = Manipulator.getDataAttribute(element, styleProperty);
if (value === null) {
element.style.removeProperty(styleProperty);
return;
}
Manipulator.removeDataAttribute(element, styleProperty);
element.style.setProperty(styleProperty, value);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_applyManipulationCallback(selector, callBack) {
if (isElement(selector)) {
callBack(selector);
return;
}
for (const sel of SelectorEngine.find(selector, this._element)) {
callBack(sel);
}
}
}
const NAME$7 = "modal";
const DATA_KEY$4 = "bs.modal";
const EVENT_KEY$4 = `.${DATA_KEY$4}`;
const DATA_API_KEY$2 = ".data-api";
const ESCAPE_KEY$1 = "Escape";
const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;
const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
const CLASS_NAME_OPEN = "modal-open";
const CLASS_NAME_FADE$3 = "fade";
const CLASS_NAME_SHOW$4 = "show";
const CLASS_NAME_STATIC = "modal-static";
const OPEN_SELECTOR$1 = ".modal.show";
const SELECTOR_DIALOG = ".modal-dialog";
const SELECTOR_MODAL_BODY = ".modal-body";
const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
const Default$6 = {
backdrop: true,
focus: true,
keyboard: true
};
const DefaultType$6 = {
backdrop: "(boolean|string)",
focus: "boolean",
keyboard: "boolean"
};
class Modal extends BaseComponent {
constructor(element, config) {
super(element, config);
this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
this._backdrop = this._initializeBackDrop();
this._focustrap = this._initializeFocusTrap();
this._isShown = false;
this._isTransitioning = false;
this._scrollBar = new ScrollBarHelper();
this._addEventListeners();
}
// Getters
static get Default() {
return Default$6;
}
static get DefaultType() {
return DefaultType$6;
}
static get NAME() {
return NAME$7;
}
// Public
toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget);
}
show(relatedTarget) {
if (this._isShown || this._isTransitioning) {
return;
}
const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {
relatedTarget
});
if (showEvent.defaultPrevented) {
return;
}
this._isShown = true;
this._isTransitioning = true;
this._scrollBar.hide();
document.body.classList.add(CLASS_NAME_OPEN);
this._adjustDialog();
this._backdrop.show(() => this._showElement(relatedTarget));
}
hide() {
if (!this._isShown || this._isTransitioning) {
return;
}
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
if (hideEvent.defaultPrevented) {
return;
}
this._isShown = false;
this._isTransitioning = true;
this._focustrap.deactivate();
this._element.classList.remove(CLASS_NAME_SHOW$4);
this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
}
dispose() {
EventHandler.off(window, EVENT_KEY$4);
EventHandler.off(this._dialog, EVENT_KEY$4);
this._backdrop.dispose();
this._focustrap.deactivate();
super.dispose();
}
handleUpdate() {
this._adjustDialog();
}
// Private
_initializeBackDrop() {
return new Backdrop({
isVisible: Boolean(this._config.backdrop),
// 'static' option will be translated to true, and booleans will keep their value,
isAnimated: this._isAnimated()
});
}
_initializeFocusTrap() {
return new FocusTrap({
trapElement: this._element
});
}
_showElement(relatedTarget) {
if (!document.body.contains(this._element)) {
document.body.append(this._element);
}
this._element.style.display = "block";
this._element.removeAttribute("aria-hidden");
this._element.setAttribute("aria-modal", true);
this._element.setAttribute("role", "dialog");
this._element.scrollTop = 0;
const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
if (modalBody) {
modalBody.scrollTop = 0;
}
reflow(this._element);
this._element.classList.add(CLASS_NAME_SHOW$4);
const transitionComplete = () => {
if (this._config.focus) {
this._focustrap.activate();
}
this._isTransitioning = false;
EventHandler.trigger(this._element, EVENT_SHOWN$4, {
relatedTarget
});
};
this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
}
_addEventListeners() {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (event) => {
if (event.key !== ESCAPE_KEY$1) {
return;
}
if (this._config.keyboard) {
this.hide();
return;
}
this._triggerBackdropTransition();
});
EventHandler.on(window, EVENT_RESIZE$1, () => {
if (this._isShown && !this._isTransitioning) {
this._adjustDialog();
}
});
EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => {
EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => {
if (this._element !== event.target || this._element !== event2.target) {
return;
}
if (this._config.backdrop === "static") {
this._triggerBackdropTransition();
return;
}
if (this._config.backdrop) {
this.hide();
}
});
});
}
_hideModal() {
this._element.style.display = "none";
this._element.setAttribute("aria-hidden", true);
this._element.removeAttribute("aria-modal");
this._element.removeAttribute("role");
this._isTransitioning = false;
this._backdrop.hide(() => {
document.body.classList.remove(CLASS_NAME_OPEN);
this._resetAdjustments();
this._scrollBar.reset();
EventHandler.trigger(this._element, EVENT_HIDDEN$4);
});
}
_isAnimated() {
return this._element.classList.contains(CLASS_NAME_FADE$3);
}
_triggerBackdropTransition() {
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);
if (hideEvent.defaultPrevented) {
return;
}
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
const initialOverflowY = this._element.style.overflowY;
if (initialOverflowY === "hidden" || this._element.classList.contains(CLASS_NAME_STATIC)) {
return;
}
if (!isModalOverflowing) {
this._element.style.overflowY = "hidden";
}
this._element.classList.add(CLASS_NAME_STATIC);
this._queueCallback(() => {
this._element.classList.remove(CLASS_NAME_STATIC);
this._queueCallback(() => {
this._element.style.overflowY = initialOverflowY;
}, this._dialog);
}, this._dialog);
this._element.focus();
}
/**
* The following methods are used to handle overflowing modals
*/
_adjustDialog() {
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
const scrollbarWidth = this._scrollBar.getWidth();
const isBodyOverflowing = scrollbarWidth > 0;
if (isBodyOverflowing && !isModalOverflowing) {
const property = isRTL() ? "paddingLeft" : "paddingRight";
this._element.style[property] = `${scrollbarWidth}px`;
}
if (!isBodyOverflowing && isModalOverflowing) {
const property = isRTL() ? "paddingRight" : "paddingLeft";
this._element.style[property] = `${scrollbarWidth}px`;
}
}
_resetAdjustments() {
this._element.style.paddingLeft = "";
this._element.style.paddingRight = "";
}
// Static
static jQueryInterface(config, relatedTarget) {
return this.each(function() {
const data = Modal.getOrCreateInstance(this, config);
if (typeof config !== "string") {
return;
}
if (typeof data[config] === "undefined") {
throw new TypeError(`No method named "${config}"`);
}
data[config](relatedTarget);
});
}
}
EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function(event) {
const target = SelectorEngine.getElementFromSelector(this);
if (["A", "AREA"].includes(this.tagName)) {
event.preventDefault();
}
EventHandler.one(target, EVENT_SHOW$4, (showEvent) => {
if (showEvent.defaultPrevented) {
return;
}
EventHandler.one(target, EVENT_HIDDEN$4, () => {
if (isVisible(this)) {
this.focus();
}
});
});
const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
if (alreadyOpen) {
Modal.getInstance(alreadyOpen).hide();
}
const data = Modal.getOrCreateInstance(target);
data.toggle(this);
});
enableDismissTrigger(Modal);
defineJQueryPlugin(Modal);
const NAME$6 = "offcanvas";
const DATA_KEY$3 = "bs.offcanvas";
const EVENT_KEY$3 = `.${DATA_KEY$3}`;
const DATA_API_KEY$1 = ".data-api";
const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
const ESCAPE_KEY = "Escape";
const CLASS_NAME_SHOW$3 = "show";
const CLASS_NAME_SHOWING$1 = "showing";
const CLASS_NAME_HIDING = "hiding";
const CLASS_NAME_BACKDROP = "offcanvas-backdrop";
const OPEN_SELECTOR = ".offcanvas.show";
const EVENT_SHOW$3 = `show${EVENT_KEY$3}`;
const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;
const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;
const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;
const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;
const EVENT_RESIZE = `resize${EVENT_KEY$3}`;
const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;
const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
const Default$5 = {
backdrop: true,
keyboard: true,
scroll: false
};
const DefaultType$5 = {
backdrop: "(boolean|string)",
keyboard: "boolean",
scroll: "boolean"
};
class Offcanvas extends BaseComponent {
constructor(element, config) {
super(element, config);
this._isShown = false;
this._backdrop = this._initializeBackDrop();
this._focustrap = this._initializeFocusTrap();
this._addEventListeners();
}
// Getters
static get Default() {
return Default$5;
}
static get DefaultType() {
return DefaultType$5;
}
static get NAME() {
return NAME$6;
}
// Public
toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget);
}
show(relatedTarget) {
if (this._isShown) {
return;
}
const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
relatedTarget
});
if (showEvent.defaultPrevented) {
return;
}
this._isShown = true;
this._backdrop.show();
if (!this._config.scroll) {
new ScrollBarHelper().hide();
}
this._element.setAttribute("aria-modal", true);
this._element.setAttribute("role", "dialog");
this._element.classList.add(CLASS_NAME_SHOWING$1);
const completeCallBack = () => {
if (!this._config.scroll || this._config.backdrop) {
this._focustrap.activate();
}
this._element.classList.add(CLASS_NAME_SHOW$3);
this._element.classList.remove(CLASS_NAME_SHOWING$1);
EventHandler.trigger(this._element, EVENT_SHOWN$3, {
relatedTarget
});
};
this._queueCallback(completeCallBack, this._element, true);
}
hide() {
if (!this._isShown) {
return;
}
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);
if (hideEvent.defaultPrevented) {
return;
}
this._focustrap.deactivate();
this._element.blur();
this._isShown = false;
this._element.classList.add(CLASS_NAME_HIDING);
this._backdrop.hide();
const completeCallback = () => {
this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);
this._element.removeAttribute("aria-modal");
this._element.removeAttribute("role");
if (!this._config.scroll) {
new ScrollBarHelper().reset();
}
EventHandler.trigger(this._element, EVENT_HIDDEN$3);
};
this._queueCallback(completeCallback, this._element, true);
}
dispose() {
this._backdrop.dispose();
this._focustrap.deactivate();
super.dispose();
}
// Private
_initializeBackDrop() {
const clickCallback = () => {
if (this._config.backdrop === "static") {
EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
return;
}
this.hide();
};
const isVisible2 = Boolean(this._config.backdrop);
return new Backdrop({
className: CLASS_NAME_BACKDROP,
isVisible: isVisible2,
isAnimated: true,
rootElement: this._element.parentNode,
clickCallback: isVisible2 ? clickCallback : null
});
}
_initializeFocusTrap() {
return new FocusTrap({
trapElement: this._element
});
}
_addEventListeners() {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {
if (event.key !== ESCAPE_KEY) {
return;
}
if (this._config.keyboard) {
this.hide();
return;
}
EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
});
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Offcanvas.getOrCreateInstance(this, config);
if (typeof config !== "string") {
return;
}
if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
throw new TypeError(`No method named "${config}"`);
}
data[config](this);
});
}
}
EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function(event) {
const target = SelectorEngine.getElementFromSelector(this);
if (["A", "AREA"].includes(this.tagName)) {
event.preventDefault();
}
if (isDisabled(this)) {
return;
}
EventHandler.one(target, EVENT_HIDDEN$3, () => {
if (isVisible(this)) {
this.focus();
}
});
const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
if (alreadyOpen && alreadyOpen !== target) {
Offcanvas.getInstance(alreadyOpen).hide();
}
const data = Offcanvas.getOrCreateInstance(target);
data.toggle(this);
});
EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
Offcanvas.getOrCreateInstance(selector).show();
}
});
EventHandler.on(window, EVENT_RESIZE, () => {
for (const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]")) {
if (getComputedStyle(element).position !== "fixed") {
Offcanvas.getOrCreateInstance(element).hide();
}
}
});
enableDismissTrigger(Offcanvas);
defineJQueryPlugin(Offcanvas);
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
const DefaultAllowlist = {
// Global attributes allowed on any supplied element below.
"*": ["class", "dir", "id", "lang", "role", ARIA_ATTRIBUTE_PATTERN],
a: ["target", "href", "title", "rel"],
area: [],
b: [],
br: [],
col: [],
code: [],
dd: [],
div: [],
dl: [],
dt: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ["src", "srcset", "alt", "title", "width", "height"],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
};
const uriAttributes = /* @__PURE__ */ new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]);
const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
const allowedAttribute = (attribute, allowedAttributeList) => {
const attributeName = attribute.nodeName.toLowerCase();
if (allowedAttributeList.includes(attributeName)) {
if (uriAttributes.has(attributeName)) {
return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
}
return true;
}
return allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp).some((regex) => regex.test(attributeName));
};
function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
if (!unsafeHtml.length) {
return unsafeHtml;
}
if (sanitizeFunction && typeof sanitizeFunction === "function") {
return sanitizeFunction(unsafeHtml);
}
const domParser = new window.DOMParser();
const createdDocument = domParser.parseFromString(unsafeHtml, "text/html");
const elements = [].concat(...createdDocument.body.querySelectorAll("*"));
for (const element of elements) {
const elementName = element.nodeName.toLowerCase();
if (!Object.keys(allowList).includes(elementName)) {
element.remove();
continue;
}
const attributeList = [].concat(...element.attributes);
const allowedAttributes = [].concat(allowList["*"] || [], allowList[elementName] || []);
for (const attribute of attributeList) {
if (!allowedAttribute(attribute, allowedAttributes)) {
element.removeAttribute(attribute.nodeName);
}
}
}
return createdDocument.body.innerHTML;
}
const NAME$5 = "TemplateFactory";
const Default$4 = {
allowList: DefaultAllowlist,
content: {},
// { selector : text , selector2 : text2 , }
extraClass: "",
html: false,
sanitize: true,
sanitizeFn: null,
template: "<div></div>"
};
const DefaultType$4 = {
allowList: "object",
content: "object",
extraClass: "(string|function)",
html: "boolean",
sanitize: "boolean",
sanitizeFn: "(null|function)",
template: "string"
};
const DefaultContentType = {
entry: "(string|element|function|null)",
selector: "(string|element)"
};
class TemplateFactory extends Config {
constructor(config) {
super();
this._config = this._getConfig(config);
}
// Getters
static get Default() {
return Default$4;
}
static get DefaultType() {
return DefaultType$4;
}
static get NAME() {
return NAME$5;
}
// Public
getContent() {
return Object.values(this._config.content).map((config) => this._resolvePossibleFunction(config)).filter(Boolean);
}
hasContent() {
return this.getContent().length > 0;
}
changeContent(content) {
this._checkContent(content);
this._config.content = {
...this._config.content,
...content
};
return this;
}
toHtml() {
const templateWrapper = document.createElement("div");
templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
for (const [selector, text] of Object.entries(this._config.content)) {
this._setContent(templateWrapper, text, selector);
}
const template = templateWrapper.children[0];
const extraClass = this._resolvePossibleFunction(this._config.extraClass);
if (extraClass) {
template.classList.add(...extraClass.split(" "));
}
return template;
}
// Private
_typeCheckConfig(config) {
super._typeCheckConfig(config);
this._checkContent(config.content);
}
_checkContent(arg) {
for (const [selector, content] of Object.entries(arg)) {
super._typeCheckConfig({
selector,
entry: content
}, DefaultContentType);
}
}
_setContent(template, content, selector) {
const templateElement = SelectorEngine.findOne(selector, template);
if (!templateElement) {
return;
}
content = this._resolvePossibleFunction(content);
if (!content) {
templateElement.remove();
return;
}
if (isElement(content)) {
this._putElementInTemplate(getElement(content), templateElement);
return;
}
if (this._config.html) {
templateElement.innerHTML = this._maybeSanitize(content);
return;
}
templateElement.textContent = content;
}
_maybeSanitize(arg) {
return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
}
_resolvePossibleFunction(arg) {
return execute(arg, [void 0, this]);
}
_putElementInTemplate(element, templateElement) {
if (this._config.html) {
templateElement.innerHTML = "";
templateElement.append(element);
return;
}
templateElement.textContent = element.textContent;
}
}
const NAME$4 = "tooltip";
const DISALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["sanitize", "allowList", "sanitizeFn"]);
const CLASS_NAME_FADE$2 = "fade";
const CLASS_NAME_MODAL = "modal";
const CLASS_NAME_SHOW$2 = "show";
const SELECTOR_TOOLTIP_INNER = ".tooltip-inner";
const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
const EVENT_MODAL_HIDE = "hide.bs.modal";
const TRIGGER_HOVER = "hover";
const TRIGGER_FOCUS = "focus";
const TRIGGER_CLICK = "click";
const TRIGGER_MANUAL = "manual";
const EVENT_HIDE$2 = "hide";
const EVENT_HIDDEN$2 = "hidden";
const EVENT_SHOW$2 = "show";
const EVENT_SHOWN$2 = "shown";
const EVENT_INSERTED = "inserted";
const EVENT_CLICK$1 = "click";
const EVENT_FOCUSIN$1 = "focusin";
const EVENT_FOCUSOUT$1 = "focusout";
const EVENT_MOUSEENTER = "mouseenter";
const EVENT_MOUSELEAVE = "mouseleave";
const AttachmentMap = {
AUTO: "auto",
TOP: "top",
RIGHT: isRTL() ? "left" : "right",
BOTTOM: "bottom",
LEFT: isRTL() ? "right" : "left"
};
const Default$3 = {
allowList: DefaultAllowlist,
animation: true,
boundary: "clippingParents",
container: false,
customClass: "",
delay: 0,
fallbackPlacements: ["top", "right", "bottom", "left"],
html: false,
offset: [0, 6],
placement: "top",
popperConfig: null,
sanitize: true,
sanitizeFn: null,
selector: false,
template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
title: "",
trigger: "hover focus"
};
const DefaultType$3 = {
allowList: "object",
animation: "boolean",
boundary: "(string|element)",
container: "(string|element|boolean)",
customClass: "(string|function)",
delay: "(number|object)",
fallbackPlacements: "array",
html: "boolean",
offset: "(array|string|function)",
placement: "(string|function)",
popperConfig: "(null|object|function)",
sanitize: "boolean",
sanitizeFn: "(null|function)",
selector: "(string|boolean)",
template: "string",
title: "(string|element|function)",
trigger: "string"
};
class Tooltip extends BaseComponent {
constructor(element, config) {
if (typeof Popper === "undefined") {
throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");
}
super(element, config);
this._isEnabled = true;
this._timeout = 0;
this._isHovered = null;
this._activeTrigger = {};
this._popper = null;
this._templateFactory = null;
this._newContent = null;
this.tip = null;
this._setListeners();
if (!this._config.selector) {
this._fixTitle();
}
}
// Getters
static get Default() {
return Default$3;
}
static get DefaultType() {
return DefaultType$3;
}
static get NAME() {
return NAME$4;
}
// Public
enable() {
this._isEnabled = true;
}
disable() {
this._isEnabled = false;
}
toggleEnabled() {
this._isEnabled = !this._isEnabled;
}
toggle() {
if (!this._isEnabled) {
return;
}
if (this._isShown()) {
this._leave();
return;
}
this._enter();
}
dispose() {
clearTimeout(this._timeout);
EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if (this._element.getAttribute("data-bs-original-title")) {
this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title"));
}
this._disposePopper();
super.dispose();
}
show() {
if (this._element.style.display === "none") {
throw new Error("Please use show on visible elements");
}
if (!(this._isWithContent() && this._isEnabled)) {
return;
}
const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));
const shadowRoot = findShadowRoot(this._element);
const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);
if (showEvent.defaultPrevented || !isInTheDom) {
return;
}
this._disposePopper();
const tip = this._getTipElement();
this._element.setAttribute("aria-describedby", tip.getAttribute("id"));
const {
container
} = this._config;
if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
container.append(tip);
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
}
this._popper = this._createPopper(tip);
tip.classList.add(CLASS_NAME_SHOW$2);
if ("ontouchstart" in document.documentElement) {
for (const element of [].concat(...document.body.children)) {
EventHandler.on(element, "mouseover", noop);
}
}
const complete = () => {
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
if (this._isHovered === false) {
this._leave();
}
this._isHovered = false;
};
this._queueCallback(complete, this.tip, this._isAnimated());
}
hide() {
if (!this._isShown()) {
return;
}
const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));
if (hideEvent.defaultPrevented) {
return;
}
const tip = this._getTipElement();
tip.classList.remove(CLASS_NAME_SHOW$2);
if ("ontouchstart" in document.documentElement) {
for (const element of [].concat(...document.body.children)) {
EventHandler.off(element, "mouseover", noop);
}
}
this._activeTrigger[TRIGGER_CLICK] = false;
this._activeTrigger[TRIGGER_FOCUS] = false;
this._activeTrigger[TRIGGER_HOVER] = false;
this._isHovered = null;
const complete = () => {
if (this._isWithActiveTrigger()) {
return;
}
if (!this._isHovered) {
this._disposePopper();
}
this._element.removeAttribute("aria-describedby");
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
};
this._queueCallback(complete, this.tip, this._isAnimated());
}
update() {
if (this._popper) {
this._popper.update();
}
}
// Protected
_isWithContent() {
return Boolean(this._getTitle());
}
_getTipElement() {
if (!this.tip) {
this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());
}
return this.tip;
}
_createTipElement(content) {
const tip = this._getTemplateFactory(content).toHtml();
if (!tip) {
return null;
}
tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
tip.classList.add(`bs-${this.constructor.NAME}-auto`);
const tipId = getUID(this.constructor.NAME).toString();
tip.setAttribute("id", tipId);
if (this._isAnimated()) {
tip.classList.add(CLASS_NAME_FADE$2);
}
return tip;
}
setContent(content) {
this._newContent = content;
if (this._isShown()) {
this._disposePopper();
this.show();
}
}
_getTemplateFactory(content) {
if (this._templateFactory) {
this._templateFactory.changeContent(content);
} else {
this._templateFactory = new TemplateFactory({
...this._config,
// the `content` var has to be after `this._config`
// to override config.content in case of popover
content,
extraClass: this._resolvePossibleFunction(this._config.customClass)
});
}
return this._templateFactory;
}
_getContentForTemplate() {
return {
[SELECTOR_TOOLTIP_INNER]: this._getTitle()
};
}
_getTitle() {
return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title");
}
// Private
_initializeOnDelegatedTarget(event) {
return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
}
_isAnimated() {
return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);
}
_isShown() {
return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);
}
_createPopper(tip) {
const placement = execute(this._config.placement, [this, tip, this._element]);
const attachment = AttachmentMap[placement.toUpperCase()];
return createPopper(this._element, tip, this._getPopperConfig(attachment));
}
_getOffset() {
const {
offset: offset2
} = this._config;
if (typeof offset2 === "string") {
return offset2.split(",").map((value) => Number.parseInt(value, 10));
}
if (typeof offset2 === "function") {
return (popperData) => offset2(popperData, this._element);
}
return offset2;
}
_resolvePossibleFunction(arg) {
return execute(arg, [this._element, this._element]);
}
_getPopperConfig(attachment) {
const defaultBsPopperConfig = {
placement: attachment,
modifiers: [{
name: "flip",
options: {
fallbackPlacements: this._config.fallbackPlacements
}
}, {
name: "offset",
options: {
offset: this._getOffset()
}
}, {
name: "preventOverflow",
options: {
boundary: this._config.boundary
}
}, {
name: "arrow",
options: {
element: `.${this.constructor.NAME}-arrow`
}
}, {
name: "preSetPlacement",
enabled: true,
phase: "beforeMain",
fn: (data) => {
this._getTipElement().setAttribute("data-popper-placement", data.state.placement);
}
}]
};
return {
...defaultBsPopperConfig,
...execute(this._config.popperConfig, [void 0, defaultBsPopperConfig])
};
}
_setListeners() {
const triggers = this._config.trigger.split(" ");
for (const trigger of triggers) {
if (trigger === "click") {
EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, (event) => {
const context = this._initializeOnDelegatedTarget(event);
context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK]);
context.toggle();
});
} else if (trigger !== TRIGGER_MANUAL) {
const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
EventHandler.on(this._element, eventIn, this._config.selector, (event) => {
const context = this._initializeOnDelegatedTarget(event);
context._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
context._enter();
});
EventHandler.on(this._element, eventOut, this._config.selector, (event) => {
const context = this._initializeOnDelegatedTarget(event);
context._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);
context._leave();
});
}
}
this._hideModalHandler = () => {
if (this._element) {
this.hide();
}
};
EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
}
_fixTitle() {
const title = this._element.getAttribute("title");
if (!title) {
return;
}
if (!this._element.getAttribute("aria-label") && !this._element.textContent.trim()) {
this._element.setAttribute("aria-label", title);
}
this._element.setAttribute("data-bs-original-title", title);
this._element.removeAttribute("title");
}
_enter() {
if (this._isShown() || this._isHovered) {
this._isHovered = true;
return;
}
this._isHovered = true;
this._setTimeout(() => {
if (this._isHovered) {
this.show();
}
}, this._config.delay.show);
}
_leave() {
if (this._isWithActiveTrigger()) {
return;
}
this._isHovered = false;
this._setTimeout(() => {
if (!this._isHovered) {
this.hide();
}
}, this._config.delay.hide);
}
_setTimeout(handler, timeout) {
clearTimeout(this._timeout);
this._timeout = setTimeout(handler, timeout);
}
_isWithActiveTrigger() {
return Object.values(this._activeTrigger).includes(true);
}
_getConfig(config) {
const dataAttributes = Manipulator.getDataAttributes(this._element);
for (const dataAttribute of Object.keys(dataAttributes)) {
if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {
delete dataAttributes[dataAttribute];
}
}
config = {
...dataAttributes,
...typeof config === "object" && config ? config : {}
};
config = this._mergeConfigObj(config);
config = this._configAfterMerge(config);
this._typeCheckConfig(config);
return config;
}
_configAfterMerge(config) {
config.container = config.container === false ? document.body : getElement(config.container);
if (typeof config.delay === "number") {
config.delay = {
show: config.delay,
hide: config.delay
};
}
if (typeof config.title === "number") {
config.title = config.title.toString();
}
if (typeof config.content === "number") {
config.content = config.content.toString();
}
return config;
}
_getDelegateConfig() {
const config = {};
for (const [key, value] of Object.entries(this._config)) {
if (this.constructor.Default[key] !== value) {
config[key] = value;
}
}
config.selector = false;
config.trigger = "manual";
return config;
}
_disposePopper() {
if (this._popper) {
this._popper.destroy();
this._popper = null;
}
if (this.tip) {
this.tip.remove();
this.tip = null;
}
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Tooltip.getOrCreateInstance(this, config);
if (typeof config !== "string") {
return;
}
if (typeof data[config] === "undefined") {
throw new TypeError(`No method named "${config}"`);
}
data[config]();
});
}
}
defineJQueryPlugin(Tooltip);
const NAME$3 = "popover";
const SELECTOR_TITLE = ".popover-header";
const SELECTOR_CONTENT = ".popover-body";
const Default$2 = {
...Tooltip.Default,
content: "",
offset: [0, 8],
placement: "right",
template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
trigger: "click"
};
const DefaultType$2 = {
...Tooltip.DefaultType,
content: "(null|string|element|function)"
};
class Popover extends Tooltip {
// Getters
static get Default() {
return Default$2;
}
static get DefaultType() {
return DefaultType$2;
}
static get NAME() {
return NAME$3;
}
// Overrides
_isWithContent() {
return this._getTitle() || this._getContent();
}
// Private
_getContentForTemplate() {
return {
[SELECTOR_TITLE]: this._getTitle(),
[SELECTOR_CONTENT]: this._getContent()
};
}
_getContent() {
return this._resolvePossibleFunction(this._config.content);
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Popover.getOrCreateInstance(this, config);
if (typeof config !== "string") {
return;
}
if (typeof data[config] === "undefined") {
throw new TypeError(`No method named "${config}"`);
}
data[config]();
});
}
}
defineJQueryPlugin(Popover);
const NAME$2 = "scrollspy";
const DATA_KEY$2 = "bs.scrollspy";
const EVENT_KEY$2 = `.${DATA_KEY$2}`;
const DATA_API_KEY = ".data-api";
const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;
const EVENT_CLICK = `click${EVENT_KEY$2}`;
const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;
const CLASS_NAME_DROPDOWN_ITEM = "dropdown-item";
const CLASS_NAME_ACTIVE$1 = "active";
const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
const SELECTOR_TARGET_LINKS = "[href]";
const SELECTOR_NAV_LIST_GROUP = ".nav, .list-group";
const SELECTOR_NAV_LINKS = ".nav-link";
const SELECTOR_NAV_ITEMS = ".nav-item";
const SELECTOR_LIST_ITEMS = ".list-group-item";
const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
const SELECTOR_DROPDOWN = ".dropdown";
const SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle";
const Default$1 = {
offset: null,
// TODO: v6 @deprecated, keep it for backwards compatibility reasons
rootMargin: "0px 0px -25%",
smoothScroll: false,
target: null,
threshold: [0.1, 0.5, 1]
};
const DefaultType$1 = {
offset: "(number|null)",
// TODO v6 @deprecated, keep it for backwards compatibility reasons
rootMargin: "string",
smoothScroll: "boolean",
target: "element",
threshold: "array"
};
class ScrollSpy extends BaseComponent {
constructor(element, config) {
super(element, config);
this._targetLinks = /* @__PURE__ */ new Map();
this._observableSections = /* @__PURE__ */ new Map();
this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element;
this._activeTarget = null;
this._observer = null;
this._previousScrollData = {
visibleEntryTop: 0,
parentScrollTop: 0
};
this.refresh();
}
// Getters
static get Default() {
return Default$1;
}
static get DefaultType() {
return DefaultType$1;
}
static get NAME() {
return NAME$2;
}
// Public
refresh() {
this._initializeTargetsAndObservables();
this._maybeEnableSmoothScroll();
if (this._observer) {
this._observer.disconnect();
} else {
this._observer = this._getNewObserver();
}
for (const section of this._observableSections.values()) {
this._observer.observe(section);
}
}
dispose() {
this._observer.disconnect();
super.dispose();
}
// Private
_configAfterMerge(config) {
config.target = getElement(config.target) || document.body;
config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
if (typeof config.threshold === "string") {
config.threshold = config.threshold.split(",").map((value) => Number.parseFloat(value));
}
return config;
}
_maybeEnableSmoothScroll() {
if (!this._config.smoothScroll) {
return;
}
EventHandler.off(this._config.target, EVENT_CLICK);
EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => {
const observableSection = this._observableSections.get(event.target.hash);
if (observableSection) {
event.preventDefault();
const root = this._rootElement || window;
const height = observableSection.offsetTop - this._element.offsetTop;
if (root.scrollTo) {
root.scrollTo({
top: height,
behavior: "smooth"
});
return;
}
root.scrollTop = height;
}
});
}
_getNewObserver() {
const options = {
root: this._rootElement,
threshold: this._config.threshold,
rootMargin: this._config.rootMargin
};
return new IntersectionObserver((entries) => this._observerCallback(entries), options);
}
// The logic of selection
_observerCallback(entries) {
const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`);
const activate = (entry) => {
this._previousScrollData.visibleEntryTop = entry.target.offsetTop;
this._process(targetElement(entry));
};
const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;
const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;
this._previousScrollData.parentScrollTop = parentScrollTop;
for (const entry of entries) {
if (!entry.isIntersecting) {
this._activeTarget = null;
this._clearActiveClass(targetElement(entry));
continue;
}
const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;
if (userScrollsDown && entryIsLowerThanPrevious) {
activate(entry);
if (!parentScrollTop) {
return;
}
continue;
}
if (!userScrollsDown && !entryIsLowerThanPrevious) {
activate(entry);
}
}
}
_initializeTargetsAndObservables() {
this._targetLinks = /* @__PURE__ */ new Map();
this._observableSections = /* @__PURE__ */ new Map();
const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);
for (const anchor of targetLinks) {
if (!anchor.hash || isDisabled(anchor)) {
continue;
}
const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
if (isVisible(observableSection)) {
this._targetLinks.set(decodeURI(anchor.hash), anchor);
this._observableSections.set(anchor.hash, observableSection);
}
}
}
_process(target) {
if (this._activeTarget === target) {
return;
}
this._clearActiveClass(this._config.target);
this._activeTarget = target;
target.classList.add(CLASS_NAME_ACTIVE$1);
this._activateParents(target);
EventHandler.trigger(this._element, EVENT_ACTIVATE, {
relatedTarget: target
});
}
_activateParents(target) {
if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
return;
}
for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
item.classList.add(CLASS_NAME_ACTIVE$1);
}
}
}
_clearActiveClass(parent) {
parent.classList.remove(CLASS_NAME_ACTIVE$1);
const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
for (const node of activeNodes) {
node.classList.remove(CLASS_NAME_ACTIVE$1);
}
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = ScrollSpy.getOrCreateInstance(this, config);
if (typeof config !== "string") {
return;
}
if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
throw new TypeError(`No method named "${config}"`);
}
data[config]();
});
}
}
EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {
for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {
ScrollSpy.getOrCreateInstance(spy);
}
});
defineJQueryPlugin(ScrollSpy);
const NAME$1 = "tab";
const DATA_KEY$1 = "bs.tab";
const EVENT_KEY$1 = `.${DATA_KEY$1}`;
const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;
const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;
const EVENT_SHOW$1 = `show${EVENT_KEY$1}`;
const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;
const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;
const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;
const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;
const ARROW_LEFT_KEY = "ArrowLeft";
const ARROW_RIGHT_KEY = "ArrowRight";
const ARROW_UP_KEY = "ArrowUp";
const ARROW_DOWN_KEY = "ArrowDown";
const HOME_KEY = "Home";
const END_KEY = "End";
const CLASS_NAME_ACTIVE = "active";
const CLASS_NAME_FADE$1 = "fade";
const CLASS_NAME_SHOW$1 = "show";
const CLASS_DROPDOWN = "dropdown";
const SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle";
const SELECTOR_DROPDOWN_MENU = ".dropdown-menu";
const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`;
const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
const SELECTOR_OUTER = ".nav-item, .list-group-item";
const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
class Tab extends BaseComponent {
constructor(element) {
super(element);
this._parent = this._element.closest(SELECTOR_TAB_PANEL);
if (!this._parent) {
return;
}
this._setInitialAttributes(this._parent, this._getChildren());
EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event));
}
// Getters
static get NAME() {
return NAME$1;
}
// Public
show() {
const innerElem = this._element;
if (this._elemIsActive(innerElem)) {
return;
}
const active = this._getActiveElem();
const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {
relatedTarget: innerElem
}) : null;
const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {
relatedTarget: active
});
if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
return;
}
this._deactivate(active, innerElem);
this._activate(innerElem, active);
}
// Private
_activate(element, relatedElem) {
if (!element) {
return;
}
element.classList.add(CLASS_NAME_ACTIVE);
this._activate(SelectorEngine.getElementFromSelector(element));
const complete = () => {
if (element.getAttribute("role") !== "tab") {
element.classList.add(CLASS_NAME_SHOW$1);
return;
}
element.removeAttribute("tabindex");
element.setAttribute("aria-selected", true);
this._toggleDropDown(element, true);
EventHandler.trigger(element, EVENT_SHOWN$1, {
relatedTarget: relatedElem
});
};
this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
}
_deactivate(element, relatedElem) {
if (!element) {
return;
}
element.classList.remove(CLASS_NAME_ACTIVE);
element.blur();
this._deactivate(SelectorEngine.getElementFromSelector(element));
const complete = () => {
if (element.getAttribute("role") !== "tab") {
element.classList.remove(CLASS_NAME_SHOW$1);
return;
}
element.setAttribute("aria-selected", false);
element.setAttribute("tabindex", "-1");
this._toggleDropDown(element, false);
EventHandler.trigger(element, EVENT_HIDDEN$1, {
relatedTarget: relatedElem
});
};
this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
}
_keydown(event) {
if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
return;
}
event.stopPropagation();
event.preventDefault();
const children = this._getChildren().filter((element) => !isDisabled(element));
let nextActiveElement;
if ([HOME_KEY, END_KEY].includes(event.key)) {
nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
} else {
const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
}
if (nextActiveElement) {
nextActiveElement.focus({
preventScroll: true
});
Tab.getOrCreateInstance(nextActiveElement).show();
}
}
_getChildren() {
return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
}
_getActiveElem() {
return this._getChildren().find((child) => this._elemIsActive(child)) || null;
}
_setInitialAttributes(parent, children) {
this._setAttributeIfNotExists(parent, "role", "tablist");
for (const child of children) {
this._setInitialAttributesOnChild(child);
}
}
_setInitialAttributesOnChild(child) {
child = this._getInnerElement(child);
const isActive = this._elemIsActive(child);
const outerElem = this._getOuterElement(child);
child.setAttribute("aria-selected", isActive);
if (outerElem !== child) {
this._setAttributeIfNotExists(outerElem, "role", "presentation");
}
if (!isActive) {
child.setAttribute("tabindex", "-1");
}
this._setAttributeIfNotExists(child, "role", "tab");
this._setInitialAttributesOnTargetPanel(child);
}
_setInitialAttributesOnTargetPanel(child) {
const target = SelectorEngine.getElementFromSelector(child);
if (!target) {
return;
}
this._setAttributeIfNotExists(target, "role", "tabpanel");
if (child.id) {
this._setAttributeIfNotExists(target, "aria-labelledby", `${child.id}`);
}
}
_toggleDropDown(element, open) {
const outerElem = this._getOuterElement(element);
if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
return;
}
const toggle = (selector, className) => {
const element2 = SelectorEngine.findOne(selector, outerElem);
if (element2) {
element2.classList.toggle(className, open);
}
};
toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
outerElem.setAttribute("aria-expanded", open);
}
_setAttributeIfNotExists(element, attribute, value) {
if (!element.hasAttribute(attribute)) {
element.setAttribute(attribute, value);
}
}
_elemIsActive(elem) {
return elem.classList.contains(CLASS_NAME_ACTIVE);
}
// Try to get the inner element (usually the .nav-link)
_getInnerElement(elem) {
return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
}
// Try to get the outer element (usually the .nav-item)
_getOuterElement(elem) {
return elem.closest(SELECTOR_OUTER) || elem;
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Tab.getOrCreateInstance(this);
if (typeof config !== "string") {
return;
}
if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
throw new TypeError(`No method named "${config}"`);
}
data[config]();
});
}
}
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) {
if (["A", "AREA"].includes(this.tagName)) {
event.preventDefault();
}
if (isDisabled(this)) {
return;
}
Tab.getOrCreateInstance(this).show();
});
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
Tab.getOrCreateInstance(element);
}
});
defineJQueryPlugin(Tab);
const NAME = "toast";
const DATA_KEY = "bs.toast";
const EVENT_KEY = `.${DATA_KEY}`;
const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;
const EVENT_HIDE = `hide${EVENT_KEY}`;
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
const EVENT_SHOW = `show${EVENT_KEY}`;
const EVENT_SHOWN = `shown${EVENT_KEY}`;
const CLASS_NAME_FADE = "fade";
const CLASS_NAME_HIDE = "hide";
const CLASS_NAME_SHOW = "show";
const CLASS_NAME_SHOWING = "showing";
const DefaultType = {
animation: "boolean",
autohide: "boolean",
delay: "number"
};
const Default = {
animation: true,
autohide: true,
delay: 5e3
};
class Toast extends BaseComponent {
constructor(element, config) {
super(element, config);
this._timeout = null;
this._hasMouseInteraction = false;
this._hasKeyboardInteraction = false;
this._setListeners();
}
// Getters
static get Default() {
return Default;
}
static get DefaultType() {
return DefaultType;
}
static get NAME() {
return NAME;
}
// Public
show() {
const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
if (showEvent.defaultPrevented) {
return;
}
this._clearTimeout();
if (this._config.animation) {
this._element.classList.add(CLASS_NAME_FADE);
}
const complete = () => {
this._element.classList.remove(CLASS_NAME_SHOWING);
EventHandler.trigger(this._element, EVENT_SHOWN);
this._maybeScheduleHide();
};
this._element.classList.remove(CLASS_NAME_HIDE);
reflow(this._element);
this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
this._queueCallback(complete, this._element, this._config.animation);
}
hide() {
if (!this.isShown()) {
return;
}
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
if (hideEvent.defaultPrevented) {
return;
}
const complete = () => {
this._element.classList.add(CLASS_NAME_HIDE);
this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
EventHandler.trigger(this._element, EVENT_HIDDEN);
};
this._element.classList.add(CLASS_NAME_SHOWING);
this._queueCallback(complete, this._element, this._config.animation);
}
dispose() {
this._clearTimeout();
if (this.isShown()) {
this._element.classList.remove(CLASS_NAME_SHOW);
}
super.dispose();
}
isShown() {
return this._element.classList.contains(CLASS_NAME_SHOW);
}
// Private
_maybeScheduleHide() {
if (!this._config.autohide) {
return;
}
if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
return;
}
this._timeout = setTimeout(() => {
this.hide();
}, this._config.delay);
}
_onInteraction(event, isInteracting) {
switch (event.type) {
case "mouseover":
case "mouseout": {
this._hasMouseInteraction = isInteracting;
break;
}
case "focusin":
case "focusout": {
this._hasKeyboardInteraction = isInteracting;
break;
}
}
if (isInteracting) {
this._clearTimeout();
return;
}
const nextElement = event.relatedTarget;
if (this._element === nextElement || this._element.contains(nextElement)) {
return;
}
this._maybeScheduleHide();
}
_setListeners() {
EventHandler.on(this._element, EVENT_MOUSEOVER, (event) => this._onInteraction(event, true));
EventHandler.on(this._element, EVENT_MOUSEOUT, (event) => this._onInteraction(event, false));
EventHandler.on(this._element, EVENT_FOCUSIN, (event) => this._onInteraction(event, true));
EventHandler.on(this._element, EVENT_FOCUSOUT, (event) => this._onInteraction(event, false));
}
_clearTimeout() {
clearTimeout(this._timeout);
this._timeout = null;
}
// Static
static jQueryInterface(config) {
return this.each(function() {
const data = Toast.getOrCreateInstance(this, config);
if (typeof config === "string") {
if (typeof data[config] === "undefined") {
throw new TypeError(`No method named "${config}"`);
}
data[config](this);
}
});
}
}
enableDismissTrigger(Toast);
defineJQueryPlugin(Toast);
const bootstrap = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
Alert,
Button,
Carousel,
Collapse,
Dropdown,
Modal,
Offcanvas,
Popover,
ScrollSpy,
Tab,
Toast,
Tooltip
}, Symbol.toStringTag, { value: "Module" }));
const Bootstrap = {
config: (options = {}) => {
if (typeof document === "undefined") return;
const root = document.documentElement;
const colors = ["primary", "secondary", "success", "info", "warning", "danger", "light", "dark"];
let cssPatch = "";
colors.forEach((name) => {
const hex = options[name];
if (hex) {
root.style.setProperty(`--bs-${name}`, hex);
const rgb = Bootstrap._hexToRgb(hex);
if (rgb) {
const rgbStr = `${rgb.r}, ${rgb.g}, ${rgb.b}`;
root.style.setProperty(`--bs-${name}-rgb`, rgbStr);
cssPatch += `
.btn-${name} {
--bs-btn-bg: var(--bs-${name}) !important;
--bs-btn-border-color: var(--bs-${name}) !important;
--bs-btn-hover-bg: var(--bs-${name}) !important;
--bs-btn-hover-border-color: var(--bs-${name}) !important;
--bs-btn-active-bg: var(--bs-${name}) !important;
--bs-btn-active-border-color: var(--bs-${name}) !important;
--bs-btn-disabled-bg: var(--bs-${name}) !important;
--bs-btn-disabled-border-color: var(--bs-${name}) !important;
}
.bg-${name} { background-color: var(--bs-${name}) !important; }
.text-${name} { color: var(--bs-${name}) !important; }
.border-${name} { border-color: var(--bs-${name}) !important; }
.badge.bg-${name} { background-color: var(--bs-${name}) !important; }
/* 表单控件补丁 (Form Controls) */
.form-check-input:checked {
background-color: var(--bs-primary) !important;
border-color: var(--bs-primary) !important;
}
.form-check-input:focus {
border-color: var(--bs-primary) !important;
box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25) !important;
}
.form-switch .form-check-input:checked {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
}
.form-range::-webkit-slider-thumb { background: var(--bs-primary) !important; }
.form-range::-moz-range-thumb { background: var(--bs-primary) !important; }
.form-range::-webkit-slider-thumb:active { background-color: rgba(var(--bs-primary-rgb), 0.5) !important; }
/* 进度条与分页 (Progress & Pagination) */
.progress-bar { background-color: var(--bs-primary) !important; }
.page-link { color: var(--bs-primary); }
.active > .page-link, .page-link.active {
background-color: var(--bs-primary) !important;
border-color: var(--bs-primary) !important;
}
/* 列表组 (List Group) */
.list-group-item.active {
background-color: var(--bs-primary) !important;
border-color: var(--bs-primary) !important;
}
`;
}
}
});
if (cssPatch) {
let styleEl = document.getElementById("bs-config-patch");
if (!styleEl) {
styleEl = document.createElement("style");
styleEl.id = "bs-config-patch";
document.head.appendChild(styleEl);
}
styleEl.innerHTML = cssPatch;
}
let { bindDarkMode, darkMode } = options;
const updateTheme = (val) => {
root.setAttribute("data-bs-theme", val ? "dark" : "light");
};
if (Array.isArray(bindDarkMode)) {
bindDarkMode = { state: bindDarkMode[0], key: bindDarkMode[1] };
}
if (bindDarkMode && bindDarkMode.state && bindDarkMode.key) {
const { state, key } = bindDarkMode;
if (state.__watch) {
state.__watch(key, updateTheme);
updateTheme(state[key]);
}
} else if (darkMode !== void 0) {
updateTheme(darkMode);
}
},
_hexToRgb: (hex) => {
let shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b);
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null;
}
};
if (typeof globalThis !== "undefined") {
globalThis.bootstrap = bootstrap;
globalThis.Bootstrap = Bootstrap;
}
exports2.Bootstrap = Bootstrap;
exports2.default = Bootstrap;
Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
});