diff --git a/.htaccess b/.htaccess index 26b4ddb..c1aed50 100644 --- a/.htaccess +++ b/.htaccess @@ -96,9 +96,14 @@ RewriteRule ^mysyde/([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/$ /mysyde/admin/admin.ph # RewriteRule ^dc/([^/.]*)/([^/.]*)/([^/.]*)/$ /mysyde/admin/admin.php?site=$1&language=$2&level_1=$3&level_2=$4 [L,QSA] # RewriteRule ^dc/([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/$ /mysyde/admin/admin.php?site=$1&language=$2&level_1=$3&level_2=$4&level_3=$5 [L,QSA] -#RewriteCond %{REQUEST_FILENAME} !-d +# userdata immer ueber Session-Controller +RewriteRule ^userdata/?$ /mysyde/frontend/frontend_userdata_controller.php [L,QSA] +RewriteRule ^userdata/(.+)$ /mysyde/frontend/frontend_userdata_controller.php?file=$1 [L,B,QSA] + +# layout weiterhin direkt ausliefern RewriteCond %{REQUEST_FILENAME} !-f -RewriteRule ^(layout|userdata)($|/) - [L] +RewriteRule ^layout($|/) - [L] + RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^((?!dc).*)$ /mysyde/frontend/frontend.php [L,QSA] diff --git a/layout/admin/css/mysyde.css b/layout/admin/css/mysyde.css index f5a5340..4ef4d5a 100644 --- a/layout/admin/css/mysyde.css +++ b/layout/admin/css/mysyde.css @@ -5570,6 +5570,23 @@ li#user_menu ul { height: auto; } +.main_menu.main_navigation { + overflow-y: auto !important; + height: calc(100dvh - 160px - 70px) !important; + display: block !important; + width: calc(100% - 1px) !important; + padding-bottom: 40px !important; +} + +.main_menu:nth-child(2) { + position: fixed !important; + bottom: 0 !important; + left: 0 !important; + width: 286px !important; + z-index: 10 !important; + border-top: 1px solid var(--rahmen-toggle) !important; +} + /* * === Specific styles for structure nav (without gray background) ============= */ diff --git a/layout/frontend/b2c/dist/css/global.css b/layout/frontend/b2c/dist/css/global.css index 77d8cf1..97d422e 100644 --- a/layout/frontend/b2c/dist/css/global.css +++ b/layout/frontend/b2c/dist/css/global.css @@ -5617,6 +5617,8 @@ input#login-button:hover { width: 100%; height: 100%; z-index: -1; + background-image: url('/module/intranet/login_pic/Hamburg.jpg'); + } div#login-area { @@ -11386,7 +11388,7 @@ body.login_area .login_button a { padding: 12px 24px 12px 48px; border: 1px solid var(--fc-primary); border-radius: 4px; - background-image: url("/userdata/01_Basic/03_Icons/microsoft.svg"); + background-image: url("/module/intranet/login_pic/microsoft.svg"); background-repeat: no-repeat; background-size: 20px 20px; background-position: 10px center; diff --git a/layout/frontend/b2c/dist/fontawesome/css/brands.css b/layout/frontend/b2c/dist/fontawesome/css/brands.css new file mode 100644 index 0000000..30bbce4 --- /dev/null +++ b/layout/frontend/b2c/dist/fontawesome/css/brands.css @@ -0,0 +1,1609 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-brands: 'Font Awesome 6 Brands'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-weight: 400; } + +.fa-monero { + --fa: "\f3d0"; } + +.fa-hooli { + --fa: "\f427"; } + +.fa-yelp { + --fa: "\f1e9"; } + +.fa-cc-visa { + --fa: "\f1f0"; } + +.fa-lastfm { + --fa: "\f202"; } + +.fa-shopware { + --fa: "\f5b5"; } + +.fa-creative-commons-nc { + --fa: "\f4e8"; } + +.fa-aws { + --fa: "\f375"; } + +.fa-redhat { + --fa: "\f7bc"; } + +.fa-yoast { + --fa: "\f2b1"; } + +.fa-cloudflare { + --fa: "\e07d"; } + +.fa-ups { + --fa: "\f7e0"; } + +.fa-pixiv { + --fa: "\e640"; } + +.fa-wpexplorer { + --fa: "\f2de"; } + +.fa-dyalog { + --fa: "\f399"; } + +.fa-bity { + --fa: "\f37a"; } + +.fa-stackpath { + --fa: "\f842"; } + +.fa-buysellads { + --fa: "\f20d"; } + +.fa-first-order { + --fa: "\f2b0"; } + +.fa-modx { + --fa: "\f285"; } + +.fa-guilded { + --fa: "\e07e"; } + +.fa-vnv { + --fa: "\f40b"; } + +.fa-square-js { + --fa: "\f3b9"; } + +.fa-js-square { + --fa: "\f3b9"; } + +.fa-microsoft { + --fa: "\f3ca"; } + +.fa-qq { + --fa: "\f1d6"; } + +.fa-orcid { + --fa: "\f8d2"; } + +.fa-java { + --fa: "\f4e4"; } + +.fa-invision { + --fa: "\f7b0"; } + +.fa-creative-commons-pd-alt { + --fa: "\f4ed"; } + +.fa-centercode { + --fa: "\f380"; } + +.fa-glide-g { + --fa: "\f2a6"; } + +.fa-drupal { + --fa: "\f1a9"; } + +.fa-jxl { + --fa: "\e67b"; } + +.fa-dart-lang { + --fa: "\e693"; } + +.fa-hire-a-helper { + --fa: "\f3b0"; } + +.fa-creative-commons-by { + --fa: "\f4e7"; } + +.fa-unity { + --fa: "\e049"; } + +.fa-whmcs { + --fa: "\f40d"; } + +.fa-rocketchat { + --fa: "\f3e8"; } + +.fa-vk { + --fa: "\f189"; } + +.fa-untappd { + --fa: "\f405"; } + +.fa-mailchimp { + --fa: "\f59e"; } + +.fa-css3-alt { + --fa: "\f38b"; } + +.fa-square-reddit { + --fa: "\f1a2"; } + +.fa-reddit-square { + --fa: "\f1a2"; } + +.fa-vimeo-v { + --fa: "\f27d"; } + +.fa-contao { + --fa: "\f26d"; } + +.fa-square-font-awesome { + --fa: "\e5ad"; } + +.fa-deskpro { + --fa: "\f38f"; } + +.fa-brave { + --fa: "\e63c"; } + +.fa-sistrix { + --fa: "\f3ee"; } + +.fa-square-instagram { + --fa: "\e055"; } + +.fa-instagram-square { + --fa: "\e055"; } + +.fa-battle-net { + --fa: "\f835"; } + +.fa-the-red-yeti { + --fa: "\f69d"; } + +.fa-square-hacker-news { + --fa: "\f3af"; } + +.fa-hacker-news-square { + --fa: "\f3af"; } + +.fa-edge { + --fa: "\f282"; } + +.fa-threads { + --fa: "\e618"; } + +.fa-napster { + --fa: "\f3d2"; } + +.fa-square-snapchat { + --fa: "\f2ad"; } + +.fa-snapchat-square { + --fa: "\f2ad"; } + +.fa-google-plus-g { + --fa: "\f0d5"; } + +.fa-artstation { + --fa: "\f77a"; } + +.fa-markdown { + --fa: "\f60f"; } + +.fa-sourcetree { + --fa: "\f7d3"; } + +.fa-google-plus { + --fa: "\f2b3"; } + +.fa-diaspora { + --fa: "\f791"; } + +.fa-foursquare { + --fa: "\f180"; } + +.fa-stack-overflow { + --fa: "\f16c"; } + +.fa-github-alt { + --fa: "\f113"; } + +.fa-phoenix-squadron { + --fa: "\f511"; } + +.fa-pagelines { + --fa: "\f18c"; } + +.fa-algolia { + --fa: "\f36c"; } + +.fa-red-river { + --fa: "\f3e3"; } + +.fa-creative-commons-sa { + --fa: "\f4ef"; } + +.fa-safari { + --fa: "\f267"; } + +.fa-google { + --fa: "\f1a0"; } + +.fa-square-font-awesome-stroke { + --fa: "\f35c"; } + +.fa-font-awesome-alt { + --fa: "\f35c"; } + +.fa-atlassian { + --fa: "\f77b"; } + +.fa-linkedin-in { + --fa: "\f0e1"; } + +.fa-digital-ocean { + --fa: "\f391"; } + +.fa-nimblr { + --fa: "\f5a8"; } + +.fa-chromecast { + --fa: "\f838"; } + +.fa-evernote { + --fa: "\f839"; } + +.fa-hacker-news { + --fa: "\f1d4"; } + +.fa-creative-commons-sampling { + --fa: "\f4f0"; } + +.fa-adversal { + --fa: "\f36a"; } + +.fa-creative-commons { + --fa: "\f25e"; } + +.fa-watchman-monitoring { + --fa: "\e087"; } + +.fa-fonticons { + --fa: "\f280"; } + +.fa-weixin { + --fa: "\f1d7"; } + +.fa-shirtsinbulk { + --fa: "\f214"; } + +.fa-codepen { + --fa: "\f1cb"; } + +.fa-git-alt { + --fa: "\f841"; } + +.fa-lyft { + --fa: "\f3c3"; } + +.fa-rev { + --fa: "\f5b2"; } + +.fa-windows { + --fa: "\f17a"; } + +.fa-wizards-of-the-coast { + --fa: "\f730"; } + +.fa-square-viadeo { + --fa: "\f2aa"; } + +.fa-viadeo-square { + --fa: "\f2aa"; } + +.fa-meetup { + --fa: "\f2e0"; } + +.fa-centos { + --fa: "\f789"; } + +.fa-adn { + --fa: "\f170"; } + +.fa-cloudsmith { + --fa: "\f384"; } + +.fa-opensuse { + --fa: "\e62b"; } + +.fa-pied-piper-alt { + --fa: "\f1a8"; } + +.fa-square-dribbble { + --fa: "\f397"; } + +.fa-dribbble-square { + --fa: "\f397"; } + +.fa-codiepie { + --fa: "\f284"; } + +.fa-node { + --fa: "\f419"; } + +.fa-mix { + --fa: "\f3cb"; } + +.fa-steam { + --fa: "\f1b6"; } + +.fa-cc-apple-pay { + --fa: "\f416"; } + +.fa-scribd { + --fa: "\f28a"; } + +.fa-debian { + --fa: "\e60b"; } + +.fa-openid { + --fa: "\f19b"; } + +.fa-instalod { + --fa: "\e081"; } + +.fa-files-pinwheel { + --fa: "\e69f"; } + +.fa-expeditedssl { + --fa: "\f23e"; } + +.fa-sellcast { + --fa: "\f2da"; } + +.fa-square-twitter { + --fa: "\f081"; } + +.fa-twitter-square { + --fa: "\f081"; } + +.fa-r-project { + --fa: "\f4f7"; } + +.fa-delicious { + --fa: "\f1a5"; } + +.fa-freebsd { + --fa: "\f3a4"; } + +.fa-vuejs { + --fa: "\f41f"; } + +.fa-accusoft { + --fa: "\f369"; } + +.fa-ioxhost { + --fa: "\f208"; } + +.fa-fonticons-fi { + --fa: "\f3a2"; } + +.fa-app-store { + --fa: "\f36f"; } + +.fa-cc-mastercard { + --fa: "\f1f1"; } + +.fa-itunes-note { + --fa: "\f3b5"; } + +.fa-golang { + --fa: "\e40f"; } + +.fa-kickstarter { + --fa: "\f3bb"; } + +.fa-square-kickstarter { + --fa: "\f3bb"; } + +.fa-grav { + --fa: "\f2d6"; } + +.fa-weibo { + --fa: "\f18a"; } + +.fa-uncharted { + --fa: "\e084"; } + +.fa-firstdraft { + --fa: "\f3a1"; } + +.fa-square-youtube { + --fa: "\f431"; } + +.fa-youtube-square { + --fa: "\f431"; } + +.fa-wikipedia-w { + --fa: "\f266"; } + +.fa-wpressr { + --fa: "\f3e4"; } + +.fa-rendact { + --fa: "\f3e4"; } + +.fa-angellist { + --fa: "\f209"; } + +.fa-galactic-republic { + --fa: "\f50c"; } + +.fa-nfc-directional { + --fa: "\e530"; } + +.fa-skype { + --fa: "\f17e"; } + +.fa-joget { + --fa: "\f3b7"; } + +.fa-fedora { + --fa: "\f798"; } + +.fa-stripe-s { + --fa: "\f42a"; } + +.fa-meta { + --fa: "\e49b"; } + +.fa-laravel { + --fa: "\f3bd"; } + +.fa-hotjar { + --fa: "\f3b1"; } + +.fa-bluetooth-b { + --fa: "\f294"; } + +.fa-square-letterboxd { + --fa: "\e62e"; } + +.fa-sticker-mule { + --fa: "\f3f7"; } + +.fa-creative-commons-zero { + --fa: "\f4f3"; } + +.fa-hips { + --fa: "\f452"; } + +.fa-css { + --fa: "\e6a2"; } + +.fa-behance { + --fa: "\f1b4"; } + +.fa-reddit { + --fa: "\f1a1"; } + +.fa-discord { + --fa: "\f392"; } + +.fa-chrome { + --fa: "\f268"; } + +.fa-app-store-ios { + --fa: "\f370"; } + +.fa-cc-discover { + --fa: "\f1f2"; } + +.fa-wpbeginner { + --fa: "\f297"; } + +.fa-confluence { + --fa: "\f78d"; } + +.fa-shoelace { + --fa: "\e60c"; } + +.fa-mdb { + --fa: "\f8ca"; } + +.fa-dochub { + --fa: "\f394"; } + +.fa-accessible-icon { + --fa: "\f368"; } + +.fa-ebay { + --fa: "\f4f4"; } + +.fa-amazon { + --fa: "\f270"; } + +.fa-unsplash { + --fa: "\e07c"; } + +.fa-yarn { + --fa: "\f7e3"; } + +.fa-square-steam { + --fa: "\f1b7"; } + +.fa-steam-square { + --fa: "\f1b7"; } + +.fa-500px { + --fa: "\f26e"; } + +.fa-square-vimeo { + --fa: "\f194"; } + +.fa-vimeo-square { + --fa: "\f194"; } + +.fa-asymmetrik { + --fa: "\f372"; } + +.fa-font-awesome { + --fa: "\f2b4"; } + +.fa-font-awesome-flag { + --fa: "\f2b4"; } + +.fa-font-awesome-logo-full { + --fa: "\f2b4"; } + +.fa-gratipay { + --fa: "\f184"; } + +.fa-apple { + --fa: "\f179"; } + +.fa-hive { + --fa: "\e07f"; } + +.fa-gitkraken { + --fa: "\f3a6"; } + +.fa-keybase { + --fa: "\f4f5"; } + +.fa-apple-pay { + --fa: "\f415"; } + +.fa-padlet { + --fa: "\e4a0"; } + +.fa-amazon-pay { + --fa: "\f42c"; } + +.fa-square-github { + --fa: "\f092"; } + +.fa-github-square { + --fa: "\f092"; } + +.fa-stumbleupon { + --fa: "\f1a4"; } + +.fa-fedex { + --fa: "\f797"; } + +.fa-phoenix-framework { + --fa: "\f3dc"; } + +.fa-shopify { + --fa: "\e057"; } + +.fa-neos { + --fa: "\f612"; } + +.fa-square-threads { + --fa: "\e619"; } + +.fa-hackerrank { + --fa: "\f5f7"; } + +.fa-researchgate { + --fa: "\f4f8"; } + +.fa-swift { + --fa: "\f8e1"; } + +.fa-angular { + --fa: "\f420"; } + +.fa-speakap { + --fa: "\f3f3"; } + +.fa-angrycreative { + --fa: "\f36e"; } + +.fa-y-combinator { + --fa: "\f23b"; } + +.fa-empire { + --fa: "\f1d1"; } + +.fa-envira { + --fa: "\f299"; } + +.fa-google-scholar { + --fa: "\e63b"; } + +.fa-square-gitlab { + --fa: "\e5ae"; } + +.fa-gitlab-square { + --fa: "\e5ae"; } + +.fa-studiovinari { + --fa: "\f3f8"; } + +.fa-pied-piper { + --fa: "\f2ae"; } + +.fa-wordpress { + --fa: "\f19a"; } + +.fa-product-hunt { + --fa: "\f288"; } + +.fa-firefox { + --fa: "\f269"; } + +.fa-linode { + --fa: "\f2b8"; } + +.fa-goodreads { + --fa: "\f3a8"; } + +.fa-square-odnoklassniki { + --fa: "\f264"; } + +.fa-odnoklassniki-square { + --fa: "\f264"; } + +.fa-jsfiddle { + --fa: "\f1cc"; } + +.fa-sith { + --fa: "\f512"; } + +.fa-themeisle { + --fa: "\f2b2"; } + +.fa-page4 { + --fa: "\f3d7"; } + +.fa-hashnode { + --fa: "\e499"; } + +.fa-react { + --fa: "\f41b"; } + +.fa-cc-paypal { + --fa: "\f1f4"; } + +.fa-squarespace { + --fa: "\f5be"; } + +.fa-cc-stripe { + --fa: "\f1f5"; } + +.fa-creative-commons-share { + --fa: "\f4f2"; } + +.fa-bitcoin { + --fa: "\f379"; } + +.fa-keycdn { + --fa: "\f3ba"; } + +.fa-opera { + --fa: "\f26a"; } + +.fa-itch-io { + --fa: "\f83a"; } + +.fa-umbraco { + --fa: "\f8e8"; } + +.fa-galactic-senate { + --fa: "\f50d"; } + +.fa-ubuntu { + --fa: "\f7df"; } + +.fa-draft2digital { + --fa: "\f396"; } + +.fa-stripe { + --fa: "\f429"; } + +.fa-houzz { + --fa: "\f27c"; } + +.fa-gg { + --fa: "\f260"; } + +.fa-dhl { + --fa: "\f790"; } + +.fa-square-pinterest { + --fa: "\f0d3"; } + +.fa-pinterest-square { + --fa: "\f0d3"; } + +.fa-xing { + --fa: "\f168"; } + +.fa-blackberry { + --fa: "\f37b"; } + +.fa-creative-commons-pd { + --fa: "\f4ec"; } + +.fa-playstation { + --fa: "\f3df"; } + +.fa-quinscape { + --fa: "\f459"; } + +.fa-less { + --fa: "\f41d"; } + +.fa-blogger-b { + --fa: "\f37d"; } + +.fa-opencart { + --fa: "\f23d"; } + +.fa-vine { + --fa: "\f1ca"; } + +.fa-signal-messenger { + --fa: "\e663"; } + +.fa-paypal { + --fa: "\f1ed"; } + +.fa-gitlab { + --fa: "\f296"; } + +.fa-typo3 { + --fa: "\f42b"; } + +.fa-reddit-alien { + --fa: "\f281"; } + +.fa-yahoo { + --fa: "\f19e"; } + +.fa-dailymotion { + --fa: "\e052"; } + +.fa-affiliatetheme { + --fa: "\f36b"; } + +.fa-pied-piper-pp { + --fa: "\f1a7"; } + +.fa-bootstrap { + --fa: "\f836"; } + +.fa-odnoklassniki { + --fa: "\f263"; } + +.fa-nfc-symbol { + --fa: "\e531"; } + +.fa-mintbit { + --fa: "\e62f"; } + +.fa-ethereum { + --fa: "\f42e"; } + +.fa-speaker-deck { + --fa: "\f83c"; } + +.fa-creative-commons-nc-eu { + --fa: "\f4e9"; } + +.fa-patreon { + --fa: "\f3d9"; } + +.fa-avianex { + --fa: "\f374"; } + +.fa-ello { + --fa: "\f5f1"; } + +.fa-gofore { + --fa: "\f3a7"; } + +.fa-bimobject { + --fa: "\f378"; } + +.fa-brave-reverse { + --fa: "\e63d"; } + +.fa-facebook-f { + --fa: "\f39e"; } + +.fa-square-google-plus { + --fa: "\f0d4"; } + +.fa-google-plus-square { + --fa: "\f0d4"; } + +.fa-web-awesome { + --fa: "\e682"; } + +.fa-mandalorian { + --fa: "\f50f"; } + +.fa-first-order-alt { + --fa: "\f50a"; } + +.fa-osi { + --fa: "\f41a"; } + +.fa-google-wallet { + --fa: "\f1ee"; } + +.fa-d-and-d-beyond { + --fa: "\f6ca"; } + +.fa-periscope { + --fa: "\f3da"; } + +.fa-fulcrum { + --fa: "\f50b"; } + +.fa-cloudscale { + --fa: "\f383"; } + +.fa-forumbee { + --fa: "\f211"; } + +.fa-mizuni { + --fa: "\f3cc"; } + +.fa-schlix { + --fa: "\f3ea"; } + +.fa-square-xing { + --fa: "\f169"; } + +.fa-xing-square { + --fa: "\f169"; } + +.fa-bandcamp { + --fa: "\f2d5"; } + +.fa-wpforms { + --fa: "\f298"; } + +.fa-cloudversify { + --fa: "\f385"; } + +.fa-usps { + --fa: "\f7e1"; } + +.fa-megaport { + --fa: "\f5a3"; } + +.fa-magento { + --fa: "\f3c4"; } + +.fa-spotify { + --fa: "\f1bc"; } + +.fa-optin-monster { + --fa: "\f23c"; } + +.fa-fly { + --fa: "\f417"; } + +.fa-square-bluesky { + --fa: "\e6a3"; } + +.fa-aviato { + --fa: "\f421"; } + +.fa-itunes { + --fa: "\f3b4"; } + +.fa-cuttlefish { + --fa: "\f38c"; } + +.fa-blogger { + --fa: "\f37c"; } + +.fa-flickr { + --fa: "\f16e"; } + +.fa-viber { + --fa: "\f409"; } + +.fa-soundcloud { + --fa: "\f1be"; } + +.fa-digg { + --fa: "\f1a6"; } + +.fa-tencent-weibo { + --fa: "\f1d5"; } + +.fa-letterboxd { + --fa: "\e62d"; } + +.fa-symfony { + --fa: "\f83d"; } + +.fa-maxcdn { + --fa: "\f136"; } + +.fa-etsy { + --fa: "\f2d7"; } + +.fa-facebook-messenger { + --fa: "\f39f"; } + +.fa-audible { + --fa: "\f373"; } + +.fa-think-peaks { + --fa: "\f731"; } + +.fa-bilibili { + --fa: "\e3d9"; } + +.fa-erlang { + --fa: "\f39d"; } + +.fa-x-twitter { + --fa: "\e61b"; } + +.fa-cotton-bureau { + --fa: "\f89e"; } + +.fa-dashcube { + --fa: "\f210"; } + +.fa-42-group { + --fa: "\e080"; } + +.fa-innosoft { + --fa: "\e080"; } + +.fa-stack-exchange { + --fa: "\f18d"; } + +.fa-elementor { + --fa: "\f430"; } + +.fa-square-pied-piper { + --fa: "\e01e"; } + +.fa-pied-piper-square { + --fa: "\e01e"; } + +.fa-creative-commons-nd { + --fa: "\f4eb"; } + +.fa-palfed { + --fa: "\f3d8"; } + +.fa-superpowers { + --fa: "\f2dd"; } + +.fa-resolving { + --fa: "\f3e7"; } + +.fa-xbox { + --fa: "\f412"; } + +.fa-square-web-awesome-stroke { + --fa: "\e684"; } + +.fa-searchengin { + --fa: "\f3eb"; } + +.fa-tiktok { + --fa: "\e07b"; } + +.fa-square-facebook { + --fa: "\f082"; } + +.fa-facebook-square { + --fa: "\f082"; } + +.fa-renren { + --fa: "\f18b"; } + +.fa-linux { + --fa: "\f17c"; } + +.fa-glide { + --fa: "\f2a5"; } + +.fa-linkedin { + --fa: "\f08c"; } + +.fa-hubspot { + --fa: "\f3b2"; } + +.fa-deploydog { + --fa: "\f38e"; } + +.fa-twitch { + --fa: "\f1e8"; } + +.fa-flutter { + --fa: "\e694"; } + +.fa-ravelry { + --fa: "\f2d9"; } + +.fa-mixer { + --fa: "\e056"; } + +.fa-square-lastfm { + --fa: "\f203"; } + +.fa-lastfm-square { + --fa: "\f203"; } + +.fa-vimeo { + --fa: "\f40a"; } + +.fa-mendeley { + --fa: "\f7b3"; } + +.fa-uniregistry { + --fa: "\f404"; } + +.fa-figma { + --fa: "\f799"; } + +.fa-creative-commons-remix { + --fa: "\f4ee"; } + +.fa-cc-amazon-pay { + --fa: "\f42d"; } + +.fa-dropbox { + --fa: "\f16b"; } + +.fa-instagram { + --fa: "\f16d"; } + +.fa-cmplid { + --fa: "\e360"; } + +.fa-upwork { + --fa: "\e641"; } + +.fa-facebook { + --fa: "\f09a"; } + +.fa-gripfire { + --fa: "\f3ac"; } + +.fa-jedi-order { + --fa: "\f50e"; } + +.fa-uikit { + --fa: "\f403"; } + +.fa-fort-awesome-alt { + --fa: "\f3a3"; } + +.fa-phabricator { + --fa: "\f3db"; } + +.fa-ussunnah { + --fa: "\f407"; } + +.fa-earlybirds { + --fa: "\f39a"; } + +.fa-trade-federation { + --fa: "\f513"; } + +.fa-autoprefixer { + --fa: "\f41c"; } + +.fa-whatsapp { + --fa: "\f232"; } + +.fa-square-upwork { + --fa: "\e67c"; } + +.fa-slideshare { + --fa: "\f1e7"; } + +.fa-google-play { + --fa: "\f3ab"; } + +.fa-viadeo { + --fa: "\f2a9"; } + +.fa-line { + --fa: "\f3c0"; } + +.fa-google-drive { + --fa: "\f3aa"; } + +.fa-servicestack { + --fa: "\f3ec"; } + +.fa-simplybuilt { + --fa: "\f215"; } + +.fa-bitbucket { + --fa: "\f171"; } + +.fa-imdb { + --fa: "\f2d8"; } + +.fa-deezer { + --fa: "\e077"; } + +.fa-raspberry-pi { + --fa: "\f7bb"; } + +.fa-jira { + --fa: "\f7b1"; } + +.fa-docker { + --fa: "\f395"; } + +.fa-screenpal { + --fa: "\e570"; } + +.fa-bluetooth { + --fa: "\f293"; } + +.fa-gitter { + --fa: "\f426"; } + +.fa-d-and-d { + --fa: "\f38d"; } + +.fa-microblog { + --fa: "\e01a"; } + +.fa-cc-diners-club { + --fa: "\f24c"; } + +.fa-gg-circle { + --fa: "\f261"; } + +.fa-pied-piper-hat { + --fa: "\f4e5"; } + +.fa-kickstarter-k { + --fa: "\f3bc"; } + +.fa-yandex { + --fa: "\f413"; } + +.fa-readme { + --fa: "\f4d5"; } + +.fa-html5 { + --fa: "\f13b"; } + +.fa-sellsy { + --fa: "\f213"; } + +.fa-square-web-awesome { + --fa: "\e683"; } + +.fa-sass { + --fa: "\f41e"; } + +.fa-wirsindhandwerk { + --fa: "\e2d0"; } + +.fa-wsh { + --fa: "\e2d0"; } + +.fa-buromobelexperte { + --fa: "\f37f"; } + +.fa-salesforce { + --fa: "\f83b"; } + +.fa-octopus-deploy { + --fa: "\e082"; } + +.fa-medapps { + --fa: "\f3c6"; } + +.fa-ns8 { + --fa: "\f3d5"; } + +.fa-pinterest-p { + --fa: "\f231"; } + +.fa-apper { + --fa: "\f371"; } + +.fa-fort-awesome { + --fa: "\f286"; } + +.fa-waze { + --fa: "\f83f"; } + +.fa-bluesky { + --fa: "\e671"; } + +.fa-cc-jcb { + --fa: "\f24b"; } + +.fa-snapchat { + --fa: "\f2ab"; } + +.fa-snapchat-ghost { + --fa: "\f2ab"; } + +.fa-fantasy-flight-games { + --fa: "\f6dc"; } + +.fa-rust { + --fa: "\e07a"; } + +.fa-wix { + --fa: "\f5cf"; } + +.fa-square-behance { + --fa: "\f1b5"; } + +.fa-behance-square { + --fa: "\f1b5"; } + +.fa-supple { + --fa: "\f3f9"; } + +.fa-webflow { + --fa: "\e65c"; } + +.fa-rebel { + --fa: "\f1d0"; } + +.fa-css3 { + --fa: "\f13c"; } + +.fa-staylinked { + --fa: "\f3f5"; } + +.fa-kaggle { + --fa: "\f5fa"; } + +.fa-space-awesome { + --fa: "\e5ac"; } + +.fa-deviantart { + --fa: "\f1bd"; } + +.fa-cpanel { + --fa: "\f388"; } + +.fa-goodreads-g { + --fa: "\f3a9"; } + +.fa-square-git { + --fa: "\f1d2"; } + +.fa-git-square { + --fa: "\f1d2"; } + +.fa-square-tumblr { + --fa: "\f174"; } + +.fa-tumblr-square { + --fa: "\f174"; } + +.fa-trello { + --fa: "\f181"; } + +.fa-creative-commons-nc-jp { + --fa: "\f4ea"; } + +.fa-get-pocket { + --fa: "\f265"; } + +.fa-perbyte { + --fa: "\e083"; } + +.fa-grunt { + --fa: "\f3ad"; } + +.fa-weebly { + --fa: "\f5cc"; } + +.fa-connectdevelop { + --fa: "\f20e"; } + +.fa-leanpub { + --fa: "\f212"; } + +.fa-black-tie { + --fa: "\f27e"; } + +.fa-themeco { + --fa: "\f5c6"; } + +.fa-python { + --fa: "\f3e2"; } + +.fa-android { + --fa: "\f17b"; } + +.fa-bots { + --fa: "\e340"; } + +.fa-free-code-camp { + --fa: "\f2c5"; } + +.fa-hornbill { + --fa: "\f592"; } + +.fa-js { + --fa: "\f3b8"; } + +.fa-ideal { + --fa: "\e013"; } + +.fa-git { + --fa: "\f1d3"; } + +.fa-dev { + --fa: "\f6cc"; } + +.fa-sketch { + --fa: "\f7c6"; } + +.fa-yandex-international { + --fa: "\f414"; } + +.fa-cc-amex { + --fa: "\f1f3"; } + +.fa-uber { + --fa: "\f402"; } + +.fa-github { + --fa: "\f09b"; } + +.fa-php { + --fa: "\f457"; } + +.fa-alipay { + --fa: "\f642"; } + +.fa-youtube { + --fa: "\f167"; } + +.fa-skyatlas { + --fa: "\f216"; } + +.fa-firefox-browser { + --fa: "\e007"; } + +.fa-replyd { + --fa: "\f3e6"; } + +.fa-suse { + --fa: "\f7d6"; } + +.fa-jenkins { + --fa: "\f3b6"; } + +.fa-twitter { + --fa: "\f099"; } + +.fa-rockrms { + --fa: "\f3e9"; } + +.fa-pinterest { + --fa: "\f0d2"; } + +.fa-buffer { + --fa: "\f837"; } + +.fa-npm { + --fa: "\f3d4"; } + +.fa-yammer { + --fa: "\f840"; } + +.fa-btc { + --fa: "\f15a"; } + +.fa-dribbble { + --fa: "\f17d"; } + +.fa-stumbleupon-circle { + --fa: "\f1a3"; } + +.fa-internet-explorer { + --fa: "\f26b"; } + +.fa-stubber { + --fa: "\e5c7"; } + +.fa-telegram { + --fa: "\f2c6"; } + +.fa-telegram-plane { + --fa: "\f2c6"; } + +.fa-old-republic { + --fa: "\f510"; } + +.fa-odysee { + --fa: "\e5c6"; } + +.fa-square-whatsapp { + --fa: "\f40c"; } + +.fa-whatsapp-square { + --fa: "\f40c"; } + +.fa-node-js { + --fa: "\f3d3"; } + +.fa-edge-legacy { + --fa: "\e078"; } + +.fa-slack { + --fa: "\f198"; } + +.fa-slack-hash { + --fa: "\f198"; } + +.fa-medrt { + --fa: "\f3c8"; } + +.fa-usb { + --fa: "\f287"; } + +.fa-tumblr { + --fa: "\f173"; } + +.fa-vaadin { + --fa: "\f408"; } + +.fa-quora { + --fa: "\f2c4"; } + +.fa-square-x-twitter { + --fa: "\e61a"; } + +.fa-reacteurope { + --fa: "\f75d"; } + +.fa-medium { + --fa: "\f23a"; } + +.fa-medium-m { + --fa: "\f23a"; } + +.fa-amilia { + --fa: "\f36d"; } + +.fa-mixcloud { + --fa: "\f289"; } + +.fa-flipboard { + --fa: "\f44d"; } + +.fa-viacoin { + --fa: "\f237"; } + +.fa-critical-role { + --fa: "\f6c9"; } + +.fa-sitrox { + --fa: "\e44a"; } + +.fa-discourse { + --fa: "\f393"; } + +.fa-joomla { + --fa: "\f1aa"; } + +.fa-mastodon { + --fa: "\f4f6"; } + +.fa-airbnb { + --fa: "\f834"; } + +.fa-wolf-pack-battalion { + --fa: "\f514"; } + +.fa-buy-n-large { + --fa: "\f8a6"; } + +.fa-gulp { + --fa: "\f3ae"; } + +.fa-creative-commons-sampling-plus { + --fa: "\f4f1"; } + +.fa-strava { + --fa: "\f428"; } + +.fa-ember { + --fa: "\f423"; } + +.fa-canadian-maple-leaf { + --fa: "\f785"; } + +.fa-teamspeak { + --fa: "\f4f9"; } + +.fa-pushed { + --fa: "\f3e1"; } + +.fa-wordpress-simple { + --fa: "\f411"; } + +.fa-nutritionix { + --fa: "\f3d6"; } + +.fa-wodu { + --fa: "\e088"; } + +.fa-google-pay { + --fa: "\e079"; } + +.fa-intercom { + --fa: "\f7af"; } + +.fa-zhihu { + --fa: "\f63f"; } + +.fa-korvue { + --fa: "\f42f"; } + +.fa-pix { + --fa: "\e43a"; } + +.fa-steam-symbol { + --fa: "\f3f6"; } diff --git a/layout/frontend/b2c/dist/fontawesome/css/fontawesome.css b/layout/frontend/b2c/dist/fontawesome/css/fontawesome.css new file mode 100644 index 0000000..e091bf0 --- /dev/null +++ b/layout/frontend/b2c/dist/fontawesome/css/fontawesome.css @@ -0,0 +1,8205 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fas, +.far, +.fab, +.fa-solid, +.fa-regular, +.fa-brands, +.fa { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fas::before, +.far::before, +.fab::before, +.fa-solid::before, +.fa-regular::before, +.fa-brands::before, +.fa::before { + content: var(--fa); } + +.fa-classic, +.fas, +.fa-solid, +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; } + +.fa-brands, +.fab { + font-family: 'Font Awesome 6 Brands'; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + animation-delay: -1ms; + animation-duration: 1ms; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + transform: scale(1, 1) translateY(0); } + 100% { + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); } + 4% { + transform: rotate(15deg); } + 8%, 24% { + transform: rotate(-18deg); } + 12%, 28% { + transform: rotate(18deg); } + 16% { + transform: rotate(-22deg); } + 20% { + transform: rotate(22deg); } + 32% { + transform: rotate(-12deg); } + 36% { + transform: rotate(12deg); } + 40%, 100% { + transform: rotate(0deg); } } + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); } } + +.fa-rotate-90 { + transform: rotate(90deg); } + +.fa-rotate-180 { + transform: rotate(180deg); } + +.fa-rotate-270 { + transform: rotate(270deg); } + +.fa-flip-horizontal { + transform: scale(-1, 1); } + +.fa-flip-vertical { + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); } + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, 0)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.fa-0 { + --fa: "\30"; + --fa--fa: "\30\30"; } + +.fa-1 { + --fa: "\31"; + --fa--fa: "\31\31"; } + +.fa-2 { + --fa: "\32"; + --fa--fa: "\32\32"; } + +.fa-3 { + --fa: "\33"; + --fa--fa: "\33\33"; } + +.fa-4 { + --fa: "\34"; + --fa--fa: "\34\34"; } + +.fa-5 { + --fa: "\35"; + --fa--fa: "\35\35"; } + +.fa-6 { + --fa: "\36"; + --fa--fa: "\36\36"; } + +.fa-7 { + --fa: "\37"; + --fa--fa: "\37\37"; } + +.fa-8 { + --fa: "\38"; + --fa--fa: "\38\38"; } + +.fa-9 { + --fa: "\39"; + --fa--fa: "\39\39"; } + +.fa-fill-drip { + --fa: "\f576"; + --fa--fa: "\f576\f576"; } + +.fa-arrows-to-circle { + --fa: "\e4bd"; + --fa--fa: "\e4bd\e4bd"; } + +.fa-circle-chevron-right { + --fa: "\f138"; + --fa--fa: "\f138\f138"; } + +.fa-chevron-circle-right { + --fa: "\f138"; + --fa--fa: "\f138\f138"; } + +.fa-at { + --fa: "\40"; + --fa--fa: "\40\40"; } + +.fa-trash-can { + --fa: "\f2ed"; + --fa--fa: "\f2ed\f2ed"; } + +.fa-trash-alt { + --fa: "\f2ed"; + --fa--fa: "\f2ed\f2ed"; } + +.fa-text-height { + --fa: "\f034"; + --fa--fa: "\f034\f034"; } + +.fa-user-xmark { + --fa: "\f235"; + --fa--fa: "\f235\f235"; } + +.fa-user-times { + --fa: "\f235"; + --fa--fa: "\f235\f235"; } + +.fa-stethoscope { + --fa: "\f0f1"; + --fa--fa: "\f0f1\f0f1"; } + +.fa-message { + --fa: "\f27a"; + --fa--fa: "\f27a\f27a"; } + +.fa-comment-alt { + --fa: "\f27a"; + --fa--fa: "\f27a\f27a"; } + +.fa-info { + --fa: "\f129"; + --fa--fa: "\f129\f129"; } + +.fa-down-left-and-up-right-to-center { + --fa: "\f422"; + --fa--fa: "\f422\f422"; } + +.fa-compress-alt { + --fa: "\f422"; + --fa--fa: "\f422\f422"; } + +.fa-explosion { + --fa: "\e4e9"; + --fa--fa: "\e4e9\e4e9"; } + +.fa-file-lines { + --fa: "\f15c"; + --fa--fa: "\f15c\f15c"; } + +.fa-file-alt { + --fa: "\f15c"; + --fa--fa: "\f15c\f15c"; } + +.fa-file-text { + --fa: "\f15c"; + --fa--fa: "\f15c\f15c"; } + +.fa-wave-square { + --fa: "\f83e"; + --fa--fa: "\f83e\f83e"; } + +.fa-ring { + --fa: "\f70b"; + --fa--fa: "\f70b\f70b"; } + +.fa-building-un { + --fa: "\e4d9"; + --fa--fa: "\e4d9\e4d9"; } + +.fa-dice-three { + --fa: "\f527"; + --fa--fa: "\f527\f527"; } + +.fa-calendar-days { + --fa: "\f073"; + --fa--fa: "\f073\f073"; } + +.fa-calendar-alt { + --fa: "\f073"; + --fa--fa: "\f073\f073"; } + +.fa-anchor-circle-check { + --fa: "\e4aa"; + --fa--fa: "\e4aa\e4aa"; } + +.fa-building-circle-arrow-right { + --fa: "\e4d1"; + --fa--fa: "\e4d1\e4d1"; } + +.fa-volleyball { + --fa: "\f45f"; + --fa--fa: "\f45f\f45f"; } + +.fa-volleyball-ball { + --fa: "\f45f"; + --fa--fa: "\f45f\f45f"; } + +.fa-arrows-up-to-line { + --fa: "\e4c2"; + --fa--fa: "\e4c2\e4c2"; } + +.fa-sort-down { + --fa: "\f0dd"; + --fa--fa: "\f0dd\f0dd"; } + +.fa-sort-desc { + --fa: "\f0dd"; + --fa--fa: "\f0dd\f0dd"; } + +.fa-circle-minus { + --fa: "\f056"; + --fa--fa: "\f056\f056"; } + +.fa-minus-circle { + --fa: "\f056"; + --fa--fa: "\f056\f056"; } + +.fa-door-open { + --fa: "\f52b"; + --fa--fa: "\f52b\f52b"; } + +.fa-right-from-bracket { + --fa: "\f2f5"; + --fa--fa: "\f2f5\f2f5"; } + +.fa-sign-out-alt { + --fa: "\f2f5"; + --fa--fa: "\f2f5\f2f5"; } + +.fa-atom { + --fa: "\f5d2"; + --fa--fa: "\f5d2\f5d2"; } + +.fa-soap { + --fa: "\e06e"; + --fa--fa: "\e06e\e06e"; } + +.fa-icons { + --fa: "\f86d"; + --fa--fa: "\f86d\f86d"; } + +.fa-heart-music-camera-bolt { + --fa: "\f86d"; + --fa--fa: "\f86d\f86d"; } + +.fa-microphone-lines-slash { + --fa: "\f539"; + --fa--fa: "\f539\f539"; } + +.fa-microphone-alt-slash { + --fa: "\f539"; + --fa--fa: "\f539\f539"; } + +.fa-bridge-circle-check { + --fa: "\e4c9"; + --fa--fa: "\e4c9\e4c9"; } + +.fa-pump-medical { + --fa: "\e06a"; + --fa--fa: "\e06a\e06a"; } + +.fa-fingerprint { + --fa: "\f577"; + --fa--fa: "\f577\f577"; } + +.fa-hand-point-right { + --fa: "\f0a4"; + --fa--fa: "\f0a4\f0a4"; } + +.fa-magnifying-glass-location { + --fa: "\f689"; + --fa--fa: "\f689\f689"; } + +.fa-search-location { + --fa: "\f689"; + --fa--fa: "\f689\f689"; } + +.fa-forward-step { + --fa: "\f051"; + --fa--fa: "\f051\f051"; } + +.fa-step-forward { + --fa: "\f051"; + --fa--fa: "\f051\f051"; } + +.fa-face-smile-beam { + --fa: "\f5b8"; + --fa--fa: "\f5b8\f5b8"; } + +.fa-smile-beam { + --fa: "\f5b8"; + --fa--fa: "\f5b8\f5b8"; } + +.fa-flag-checkered { + --fa: "\f11e"; + --fa--fa: "\f11e\f11e"; } + +.fa-football { + --fa: "\f44e"; + --fa--fa: "\f44e\f44e"; } + +.fa-football-ball { + --fa: "\f44e"; + --fa--fa: "\f44e\f44e"; } + +.fa-school-circle-exclamation { + --fa: "\e56c"; + --fa--fa: "\e56c\e56c"; } + +.fa-crop { + --fa: "\f125"; + --fa--fa: "\f125\f125"; } + +.fa-angles-down { + --fa: "\f103"; + --fa--fa: "\f103\f103"; } + +.fa-angle-double-down { + --fa: "\f103"; + --fa--fa: "\f103\f103"; } + +.fa-users-rectangle { + --fa: "\e594"; + --fa--fa: "\e594\e594"; } + +.fa-people-roof { + --fa: "\e537"; + --fa--fa: "\e537\e537"; } + +.fa-people-line { + --fa: "\e534"; + --fa--fa: "\e534\e534"; } + +.fa-beer-mug-empty { + --fa: "\f0fc"; + --fa--fa: "\f0fc\f0fc"; } + +.fa-beer { + --fa: "\f0fc"; + --fa--fa: "\f0fc\f0fc"; } + +.fa-diagram-predecessor { + --fa: "\e477"; + --fa--fa: "\e477\e477"; } + +.fa-arrow-up-long { + --fa: "\f176"; + --fa--fa: "\f176\f176"; } + +.fa-long-arrow-up { + --fa: "\f176"; + --fa--fa: "\f176\f176"; } + +.fa-fire-flame-simple { + --fa: "\f46a"; + --fa--fa: "\f46a\f46a"; } + +.fa-burn { + --fa: "\f46a"; + --fa--fa: "\f46a\f46a"; } + +.fa-person { + --fa: "\f183"; + --fa--fa: "\f183\f183"; } + +.fa-male { + --fa: "\f183"; + --fa--fa: "\f183\f183"; } + +.fa-laptop { + --fa: "\f109"; + --fa--fa: "\f109\f109"; } + +.fa-file-csv { + --fa: "\f6dd"; + --fa--fa: "\f6dd\f6dd"; } + +.fa-menorah { + --fa: "\f676"; + --fa--fa: "\f676\f676"; } + +.fa-truck-plane { + --fa: "\e58f"; + --fa--fa: "\e58f\e58f"; } + +.fa-record-vinyl { + --fa: "\f8d9"; + --fa--fa: "\f8d9\f8d9"; } + +.fa-face-grin-stars { + --fa: "\f587"; + --fa--fa: "\f587\f587"; } + +.fa-grin-stars { + --fa: "\f587"; + --fa--fa: "\f587\f587"; } + +.fa-bong { + --fa: "\f55c"; + --fa--fa: "\f55c\f55c"; } + +.fa-spaghetti-monster-flying { + --fa: "\f67b"; + --fa--fa: "\f67b\f67b"; } + +.fa-pastafarianism { + --fa: "\f67b"; + --fa--fa: "\f67b\f67b"; } + +.fa-arrow-down-up-across-line { + --fa: "\e4af"; + --fa--fa: "\e4af\e4af"; } + +.fa-spoon { + --fa: "\f2e5"; + --fa--fa: "\f2e5\f2e5"; } + +.fa-utensil-spoon { + --fa: "\f2e5"; + --fa--fa: "\f2e5\f2e5"; } + +.fa-jar-wheat { + --fa: "\e517"; + --fa--fa: "\e517\e517"; } + +.fa-envelopes-bulk { + --fa: "\f674"; + --fa--fa: "\f674\f674"; } + +.fa-mail-bulk { + --fa: "\f674"; + --fa--fa: "\f674\f674"; } + +.fa-file-circle-exclamation { + --fa: "\e4eb"; + --fa--fa: "\e4eb\e4eb"; } + +.fa-circle-h { + --fa: "\f47e"; + --fa--fa: "\f47e\f47e"; } + +.fa-hospital-symbol { + --fa: "\f47e"; + --fa--fa: "\f47e\f47e"; } + +.fa-pager { + --fa: "\f815"; + --fa--fa: "\f815\f815"; } + +.fa-address-book { + --fa: "\f2b9"; + --fa--fa: "\f2b9\f2b9"; } + +.fa-contact-book { + --fa: "\f2b9"; + --fa--fa: "\f2b9\f2b9"; } + +.fa-strikethrough { + --fa: "\f0cc"; + --fa--fa: "\f0cc\f0cc"; } + +.fa-k { + --fa: "\4b"; + --fa--fa: "\4b\4b"; } + +.fa-landmark-flag { + --fa: "\e51c"; + --fa--fa: "\e51c\e51c"; } + +.fa-pencil { + --fa: "\f303"; + --fa--fa: "\f303\f303"; } + +.fa-pencil-alt { + --fa: "\f303"; + --fa--fa: "\f303\f303"; } + +.fa-backward { + --fa: "\f04a"; + --fa--fa: "\f04a\f04a"; } + +.fa-caret-right { + --fa: "\f0da"; + --fa--fa: "\f0da\f0da"; } + +.fa-comments { + --fa: "\f086"; + --fa--fa: "\f086\f086"; } + +.fa-paste { + --fa: "\f0ea"; + --fa--fa: "\f0ea\f0ea"; } + +.fa-file-clipboard { + --fa: "\f0ea"; + --fa--fa: "\f0ea\f0ea"; } + +.fa-code-pull-request { + --fa: "\e13c"; + --fa--fa: "\e13c\e13c"; } + +.fa-clipboard-list { + --fa: "\f46d"; + --fa--fa: "\f46d\f46d"; } + +.fa-truck-ramp-box { + --fa: "\f4de"; + --fa--fa: "\f4de\f4de"; } + +.fa-truck-loading { + --fa: "\f4de"; + --fa--fa: "\f4de\f4de"; } + +.fa-user-check { + --fa: "\f4fc"; + --fa--fa: "\f4fc\f4fc"; } + +.fa-vial-virus { + --fa: "\e597"; + --fa--fa: "\e597\e597"; } + +.fa-sheet-plastic { + --fa: "\e571"; + --fa--fa: "\e571\e571"; } + +.fa-blog { + --fa: "\f781"; + --fa--fa: "\f781\f781"; } + +.fa-user-ninja { + --fa: "\f504"; + --fa--fa: "\f504\f504"; } + +.fa-person-arrow-up-from-line { + --fa: "\e539"; + --fa--fa: "\e539\e539"; } + +.fa-scroll-torah { + --fa: "\f6a0"; + --fa--fa: "\f6a0\f6a0"; } + +.fa-torah { + --fa: "\f6a0"; + --fa--fa: "\f6a0\f6a0"; } + +.fa-broom-ball { + --fa: "\f458"; + --fa--fa: "\f458\f458"; } + +.fa-quidditch { + --fa: "\f458"; + --fa--fa: "\f458\f458"; } + +.fa-quidditch-broom-ball { + --fa: "\f458"; + --fa--fa: "\f458\f458"; } + +.fa-toggle-off { + --fa: "\f204"; + --fa--fa: "\f204\f204"; } + +.fa-box-archive { + --fa: "\f187"; + --fa--fa: "\f187\f187"; } + +.fa-archive { + --fa: "\f187"; + --fa--fa: "\f187\f187"; } + +.fa-person-drowning { + --fa: "\e545"; + --fa--fa: "\e545\e545"; } + +.fa-arrow-down-9-1 { + --fa: "\f886"; + --fa--fa: "\f886\f886"; } + +.fa-sort-numeric-desc { + --fa: "\f886"; + --fa--fa: "\f886\f886"; } + +.fa-sort-numeric-down-alt { + --fa: "\f886"; + --fa--fa: "\f886\f886"; } + +.fa-face-grin-tongue-squint { + --fa: "\f58a"; + --fa--fa: "\f58a\f58a"; } + +.fa-grin-tongue-squint { + --fa: "\f58a"; + --fa--fa: "\f58a\f58a"; } + +.fa-spray-can { + --fa: "\f5bd"; + --fa--fa: "\f5bd\f5bd"; } + +.fa-truck-monster { + --fa: "\f63b"; + --fa--fa: "\f63b\f63b"; } + +.fa-w { + --fa: "\57"; + --fa--fa: "\57\57"; } + +.fa-earth-africa { + --fa: "\f57c"; + --fa--fa: "\f57c\f57c"; } + +.fa-globe-africa { + --fa: "\f57c"; + --fa--fa: "\f57c\f57c"; } + +.fa-rainbow { + --fa: "\f75b"; + --fa--fa: "\f75b\f75b"; } + +.fa-circle-notch { + --fa: "\f1ce"; + --fa--fa: "\f1ce\f1ce"; } + +.fa-tablet-screen-button { + --fa: "\f3fa"; + --fa--fa: "\f3fa\f3fa"; } + +.fa-tablet-alt { + --fa: "\f3fa"; + --fa--fa: "\f3fa\f3fa"; } + +.fa-paw { + --fa: "\f1b0"; + --fa--fa: "\f1b0\f1b0"; } + +.fa-cloud { + --fa: "\f0c2"; + --fa--fa: "\f0c2\f0c2"; } + +.fa-trowel-bricks { + --fa: "\e58a"; + --fa--fa: "\e58a\e58a"; } + +.fa-face-flushed { + --fa: "\f579"; + --fa--fa: "\f579\f579"; } + +.fa-flushed { + --fa: "\f579"; + --fa--fa: "\f579\f579"; } + +.fa-hospital-user { + --fa: "\f80d"; + --fa--fa: "\f80d\f80d"; } + +.fa-tent-arrow-left-right { + --fa: "\e57f"; + --fa--fa: "\e57f\e57f"; } + +.fa-gavel { + --fa: "\f0e3"; + --fa--fa: "\f0e3\f0e3"; } + +.fa-legal { + --fa: "\f0e3"; + --fa--fa: "\f0e3\f0e3"; } + +.fa-binoculars { + --fa: "\f1e5"; + --fa--fa: "\f1e5\f1e5"; } + +.fa-microphone-slash { + --fa: "\f131"; + --fa--fa: "\f131\f131"; } + +.fa-box-tissue { + --fa: "\e05b"; + --fa--fa: "\e05b\e05b"; } + +.fa-motorcycle { + --fa: "\f21c"; + --fa--fa: "\f21c\f21c"; } + +.fa-bell-concierge { + --fa: "\f562"; + --fa--fa: "\f562\f562"; } + +.fa-concierge-bell { + --fa: "\f562"; + --fa--fa: "\f562\f562"; } + +.fa-pen-ruler { + --fa: "\f5ae"; + --fa--fa: "\f5ae\f5ae"; } + +.fa-pencil-ruler { + --fa: "\f5ae"; + --fa--fa: "\f5ae\f5ae"; } + +.fa-people-arrows { + --fa: "\e068"; + --fa--fa: "\e068\e068"; } + +.fa-people-arrows-left-right { + --fa: "\e068"; + --fa--fa: "\e068\e068"; } + +.fa-mars-and-venus-burst { + --fa: "\e523"; + --fa--fa: "\e523\e523"; } + +.fa-square-caret-right { + --fa: "\f152"; + --fa--fa: "\f152\f152"; } + +.fa-caret-square-right { + --fa: "\f152"; + --fa--fa: "\f152\f152"; } + +.fa-scissors { + --fa: "\f0c4"; + --fa--fa: "\f0c4\f0c4"; } + +.fa-cut { + --fa: "\f0c4"; + --fa--fa: "\f0c4\f0c4"; } + +.fa-sun-plant-wilt { + --fa: "\e57a"; + --fa--fa: "\e57a\e57a"; } + +.fa-toilets-portable { + --fa: "\e584"; + --fa--fa: "\e584\e584"; } + +.fa-hockey-puck { + --fa: "\f453"; + --fa--fa: "\f453\f453"; } + +.fa-table { + --fa: "\f0ce"; + --fa--fa: "\f0ce\f0ce"; } + +.fa-magnifying-glass-arrow-right { + --fa: "\e521"; + --fa--fa: "\e521\e521"; } + +.fa-tachograph-digital { + --fa: "\f566"; + --fa--fa: "\f566\f566"; } + +.fa-digital-tachograph { + --fa: "\f566"; + --fa--fa: "\f566\f566"; } + +.fa-users-slash { + --fa: "\e073"; + --fa--fa: "\e073\e073"; } + +.fa-clover { + --fa: "\e139"; + --fa--fa: "\e139\e139"; } + +.fa-reply { + --fa: "\f3e5"; + --fa--fa: "\f3e5\f3e5"; } + +.fa-mail-reply { + --fa: "\f3e5"; + --fa--fa: "\f3e5\f3e5"; } + +.fa-star-and-crescent { + --fa: "\f699"; + --fa--fa: "\f699\f699"; } + +.fa-house-fire { + --fa: "\e50c"; + --fa--fa: "\e50c\e50c"; } + +.fa-square-minus { + --fa: "\f146"; + --fa--fa: "\f146\f146"; } + +.fa-minus-square { + --fa: "\f146"; + --fa--fa: "\f146\f146"; } + +.fa-helicopter { + --fa: "\f533"; + --fa--fa: "\f533\f533"; } + +.fa-compass { + --fa: "\f14e"; + --fa--fa: "\f14e\f14e"; } + +.fa-square-caret-down { + --fa: "\f150"; + --fa--fa: "\f150\f150"; } + +.fa-caret-square-down { + --fa: "\f150"; + --fa--fa: "\f150\f150"; } + +.fa-file-circle-question { + --fa: "\e4ef"; + --fa--fa: "\e4ef\e4ef"; } + +.fa-laptop-code { + --fa: "\f5fc"; + --fa--fa: "\f5fc\f5fc"; } + +.fa-swatchbook { + --fa: "\f5c3"; + --fa--fa: "\f5c3\f5c3"; } + +.fa-prescription-bottle { + --fa: "\f485"; + --fa--fa: "\f485\f485"; } + +.fa-bars { + --fa: "\f0c9"; + --fa--fa: "\f0c9\f0c9"; } + +.fa-navicon { + --fa: "\f0c9"; + --fa--fa: "\f0c9\f0c9"; } + +.fa-people-group { + --fa: "\e533"; + --fa--fa: "\e533\e533"; } + +.fa-hourglass-end { + --fa: "\f253"; + --fa--fa: "\f253\f253"; } + +.fa-hourglass-3 { + --fa: "\f253"; + --fa--fa: "\f253\f253"; } + +.fa-heart-crack { + --fa: "\f7a9"; + --fa--fa: "\f7a9\f7a9"; } + +.fa-heart-broken { + --fa: "\f7a9"; + --fa--fa: "\f7a9\f7a9"; } + +.fa-square-up-right { + --fa: "\f360"; + --fa--fa: "\f360\f360"; } + +.fa-external-link-square-alt { + --fa: "\f360"; + --fa--fa: "\f360\f360"; } + +.fa-face-kiss-beam { + --fa: "\f597"; + --fa--fa: "\f597\f597"; } + +.fa-kiss-beam { + --fa: "\f597"; + --fa--fa: "\f597\f597"; } + +.fa-film { + --fa: "\f008"; + --fa--fa: "\f008\f008"; } + +.fa-ruler-horizontal { + --fa: "\f547"; + --fa--fa: "\f547\f547"; } + +.fa-people-robbery { + --fa: "\e536"; + --fa--fa: "\e536\e536"; } + +.fa-lightbulb { + --fa: "\f0eb"; + --fa--fa: "\f0eb\f0eb"; } + +.fa-caret-left { + --fa: "\f0d9"; + --fa--fa: "\f0d9\f0d9"; } + +.fa-circle-exclamation { + --fa: "\f06a"; + --fa--fa: "\f06a\f06a"; } + +.fa-exclamation-circle { + --fa: "\f06a"; + --fa--fa: "\f06a\f06a"; } + +.fa-school-circle-xmark { + --fa: "\e56d"; + --fa--fa: "\e56d\e56d"; } + +.fa-arrow-right-from-bracket { + --fa: "\f08b"; + --fa--fa: "\f08b\f08b"; } + +.fa-sign-out { + --fa: "\f08b"; + --fa--fa: "\f08b\f08b"; } + +.fa-circle-chevron-down { + --fa: "\f13a"; + --fa--fa: "\f13a\f13a"; } + +.fa-chevron-circle-down { + --fa: "\f13a"; + --fa--fa: "\f13a\f13a"; } + +.fa-unlock-keyhole { + --fa: "\f13e"; + --fa--fa: "\f13e\f13e"; } + +.fa-unlock-alt { + --fa: "\f13e"; + --fa--fa: "\f13e\f13e"; } + +.fa-cloud-showers-heavy { + --fa: "\f740"; + --fa--fa: "\f740\f740"; } + +.fa-headphones-simple { + --fa: "\f58f"; + --fa--fa: "\f58f\f58f"; } + +.fa-headphones-alt { + --fa: "\f58f"; + --fa--fa: "\f58f\f58f"; } + +.fa-sitemap { + --fa: "\f0e8"; + --fa--fa: "\f0e8\f0e8"; } + +.fa-circle-dollar-to-slot { + --fa: "\f4b9"; + --fa--fa: "\f4b9\f4b9"; } + +.fa-donate { + --fa: "\f4b9"; + --fa--fa: "\f4b9\f4b9"; } + +.fa-memory { + --fa: "\f538"; + --fa--fa: "\f538\f538"; } + +.fa-road-spikes { + --fa: "\e568"; + --fa--fa: "\e568\e568"; } + +.fa-fire-burner { + --fa: "\e4f1"; + --fa--fa: "\e4f1\e4f1"; } + +.fa-flag { + --fa: "\f024"; + --fa--fa: "\f024\f024"; } + +.fa-hanukiah { + --fa: "\f6e6"; + --fa--fa: "\f6e6\f6e6"; } + +.fa-feather { + --fa: "\f52d"; + --fa--fa: "\f52d\f52d"; } + +.fa-volume-low { + --fa: "\f027"; + --fa--fa: "\f027\f027"; } + +.fa-volume-down { + --fa: "\f027"; + --fa--fa: "\f027\f027"; } + +.fa-comment-slash { + --fa: "\f4b3"; + --fa--fa: "\f4b3\f4b3"; } + +.fa-cloud-sun-rain { + --fa: "\f743"; + --fa--fa: "\f743\f743"; } + +.fa-compress { + --fa: "\f066"; + --fa--fa: "\f066\f066"; } + +.fa-wheat-awn { + --fa: "\e2cd"; + --fa--fa: "\e2cd\e2cd"; } + +.fa-wheat-alt { + --fa: "\e2cd"; + --fa--fa: "\e2cd\e2cd"; } + +.fa-ankh { + --fa: "\f644"; + --fa--fa: "\f644\f644"; } + +.fa-hands-holding-child { + --fa: "\e4fa"; + --fa--fa: "\e4fa\e4fa"; } + +.fa-asterisk { + --fa: "\2a"; + --fa--fa: "\2a\2a"; } + +.fa-square-check { + --fa: "\f14a"; + --fa--fa: "\f14a\f14a"; } + +.fa-check-square { + --fa: "\f14a"; + --fa--fa: "\f14a\f14a"; } + +.fa-peseta-sign { + --fa: "\e221"; + --fa--fa: "\e221\e221"; } + +.fa-heading { + --fa: "\f1dc"; + --fa--fa: "\f1dc\f1dc"; } + +.fa-header { + --fa: "\f1dc"; + --fa--fa: "\f1dc\f1dc"; } + +.fa-ghost { + --fa: "\f6e2"; + --fa--fa: "\f6e2\f6e2"; } + +.fa-list { + --fa: "\f03a"; + --fa--fa: "\f03a\f03a"; } + +.fa-list-squares { + --fa: "\f03a"; + --fa--fa: "\f03a\f03a"; } + +.fa-square-phone-flip { + --fa: "\f87b"; + --fa--fa: "\f87b\f87b"; } + +.fa-phone-square-alt { + --fa: "\f87b"; + --fa--fa: "\f87b\f87b"; } + +.fa-cart-plus { + --fa: "\f217"; + --fa--fa: "\f217\f217"; } + +.fa-gamepad { + --fa: "\f11b"; + --fa--fa: "\f11b\f11b"; } + +.fa-circle-dot { + --fa: "\f192"; + --fa--fa: "\f192\f192"; } + +.fa-dot-circle { + --fa: "\f192"; + --fa--fa: "\f192\f192"; } + +.fa-face-dizzy { + --fa: "\f567"; + --fa--fa: "\f567\f567"; } + +.fa-dizzy { + --fa: "\f567"; + --fa--fa: "\f567\f567"; } + +.fa-egg { + --fa: "\f7fb"; + --fa--fa: "\f7fb\f7fb"; } + +.fa-house-medical-circle-xmark { + --fa: "\e513"; + --fa--fa: "\e513\e513"; } + +.fa-campground { + --fa: "\f6bb"; + --fa--fa: "\f6bb\f6bb"; } + +.fa-folder-plus { + --fa: "\f65e"; + --fa--fa: "\f65e\f65e"; } + +.fa-futbol { + --fa: "\f1e3"; + --fa--fa: "\f1e3\f1e3"; } + +.fa-futbol-ball { + --fa: "\f1e3"; + --fa--fa: "\f1e3\f1e3"; } + +.fa-soccer-ball { + --fa: "\f1e3"; + --fa--fa: "\f1e3\f1e3"; } + +.fa-paintbrush { + --fa: "\f1fc"; + --fa--fa: "\f1fc\f1fc"; } + +.fa-paint-brush { + --fa: "\f1fc"; + --fa--fa: "\f1fc\f1fc"; } + +.fa-lock { + --fa: "\f023"; + --fa--fa: "\f023\f023"; } + +.fa-gas-pump { + --fa: "\f52f"; + --fa--fa: "\f52f\f52f"; } + +.fa-hot-tub-person { + --fa: "\f593"; + --fa--fa: "\f593\f593"; } + +.fa-hot-tub { + --fa: "\f593"; + --fa--fa: "\f593\f593"; } + +.fa-map-location { + --fa: "\f59f"; + --fa--fa: "\f59f\f59f"; } + +.fa-map-marked { + --fa: "\f59f"; + --fa--fa: "\f59f\f59f"; } + +.fa-house-flood-water { + --fa: "\e50e"; + --fa--fa: "\e50e\e50e"; } + +.fa-tree { + --fa: "\f1bb"; + --fa--fa: "\f1bb\f1bb"; } + +.fa-bridge-lock { + --fa: "\e4cc"; + --fa--fa: "\e4cc\e4cc"; } + +.fa-sack-dollar { + --fa: "\f81d"; + --fa--fa: "\f81d\f81d"; } + +.fa-pen-to-square { + --fa: "\f044"; + --fa--fa: "\f044\f044"; } + +.fa-edit { + --fa: "\f044"; + --fa--fa: "\f044\f044"; } + +.fa-car-side { + --fa: "\f5e4"; + --fa--fa: "\f5e4\f5e4"; } + +.fa-share-nodes { + --fa: "\f1e0"; + --fa--fa: "\f1e0\f1e0"; } + +.fa-share-alt { + --fa: "\f1e0"; + --fa--fa: "\f1e0\f1e0"; } + +.fa-heart-circle-minus { + --fa: "\e4ff"; + --fa--fa: "\e4ff\e4ff"; } + +.fa-hourglass-half { + --fa: "\f252"; + --fa--fa: "\f252\f252"; } + +.fa-hourglass-2 { + --fa: "\f252"; + --fa--fa: "\f252\f252"; } + +.fa-microscope { + --fa: "\f610"; + --fa--fa: "\f610\f610"; } + +.fa-sink { + --fa: "\e06d"; + --fa--fa: "\e06d\e06d"; } + +.fa-bag-shopping { + --fa: "\f290"; + --fa--fa: "\f290\f290"; } + +.fa-shopping-bag { + --fa: "\f290"; + --fa--fa: "\f290\f290"; } + +.fa-arrow-down-z-a { + --fa: "\f881"; + --fa--fa: "\f881\f881"; } + +.fa-sort-alpha-desc { + --fa: "\f881"; + --fa--fa: "\f881\f881"; } + +.fa-sort-alpha-down-alt { + --fa: "\f881"; + --fa--fa: "\f881\f881"; } + +.fa-mitten { + --fa: "\f7b5"; + --fa--fa: "\f7b5\f7b5"; } + +.fa-person-rays { + --fa: "\e54d"; + --fa--fa: "\e54d\e54d"; } + +.fa-users { + --fa: "\f0c0"; + --fa--fa: "\f0c0\f0c0"; } + +.fa-eye-slash { + --fa: "\f070"; + --fa--fa: "\f070\f070"; } + +.fa-flask-vial { + --fa: "\e4f3"; + --fa--fa: "\e4f3\e4f3"; } + +.fa-hand { + --fa: "\f256"; + --fa--fa: "\f256\f256"; } + +.fa-hand-paper { + --fa: "\f256"; + --fa--fa: "\f256\f256"; } + +.fa-om { + --fa: "\f679"; + --fa--fa: "\f679\f679"; } + +.fa-worm { + --fa: "\e599"; + --fa--fa: "\e599\e599"; } + +.fa-house-circle-xmark { + --fa: "\e50b"; + --fa--fa: "\e50b\e50b"; } + +.fa-plug { + --fa: "\f1e6"; + --fa--fa: "\f1e6\f1e6"; } + +.fa-chevron-up { + --fa: "\f077"; + --fa--fa: "\f077\f077"; } + +.fa-hand-spock { + --fa: "\f259"; + --fa--fa: "\f259\f259"; } + +.fa-stopwatch { + --fa: "\f2f2"; + --fa--fa: "\f2f2\f2f2"; } + +.fa-face-kiss { + --fa: "\f596"; + --fa--fa: "\f596\f596"; } + +.fa-kiss { + --fa: "\f596"; + --fa--fa: "\f596\f596"; } + +.fa-bridge-circle-xmark { + --fa: "\e4cb"; + --fa--fa: "\e4cb\e4cb"; } + +.fa-face-grin-tongue { + --fa: "\f589"; + --fa--fa: "\f589\f589"; } + +.fa-grin-tongue { + --fa: "\f589"; + --fa--fa: "\f589\f589"; } + +.fa-chess-bishop { + --fa: "\f43a"; + --fa--fa: "\f43a\f43a"; } + +.fa-face-grin-wink { + --fa: "\f58c"; + --fa--fa: "\f58c\f58c"; } + +.fa-grin-wink { + --fa: "\f58c"; + --fa--fa: "\f58c\f58c"; } + +.fa-ear-deaf { + --fa: "\f2a4"; + --fa--fa: "\f2a4\f2a4"; } + +.fa-deaf { + --fa: "\f2a4"; + --fa--fa: "\f2a4\f2a4"; } + +.fa-deafness { + --fa: "\f2a4"; + --fa--fa: "\f2a4\f2a4"; } + +.fa-hard-of-hearing { + --fa: "\f2a4"; + --fa--fa: "\f2a4\f2a4"; } + +.fa-road-circle-check { + --fa: "\e564"; + --fa--fa: "\e564\e564"; } + +.fa-dice-five { + --fa: "\f523"; + --fa--fa: "\f523\f523"; } + +.fa-square-rss { + --fa: "\f143"; + --fa--fa: "\f143\f143"; } + +.fa-rss-square { + --fa: "\f143"; + --fa--fa: "\f143\f143"; } + +.fa-land-mine-on { + --fa: "\e51b"; + --fa--fa: "\e51b\e51b"; } + +.fa-i-cursor { + --fa: "\f246"; + --fa--fa: "\f246\f246"; } + +.fa-stamp { + --fa: "\f5bf"; + --fa--fa: "\f5bf\f5bf"; } + +.fa-stairs { + --fa: "\e289"; + --fa--fa: "\e289\e289"; } + +.fa-i { + --fa: "\49"; + --fa--fa: "\49\49"; } + +.fa-hryvnia-sign { + --fa: "\f6f2"; + --fa--fa: "\f6f2\f6f2"; } + +.fa-hryvnia { + --fa: "\f6f2"; + --fa--fa: "\f6f2\f6f2"; } + +.fa-pills { + --fa: "\f484"; + --fa--fa: "\f484\f484"; } + +.fa-face-grin-wide { + --fa: "\f581"; + --fa--fa: "\f581\f581"; } + +.fa-grin-alt { + --fa: "\f581"; + --fa--fa: "\f581\f581"; } + +.fa-tooth { + --fa: "\f5c9"; + --fa--fa: "\f5c9\f5c9"; } + +.fa-v { + --fa: "\56"; + --fa--fa: "\56\56"; } + +.fa-bangladeshi-taka-sign { + --fa: "\e2e6"; + --fa--fa: "\e2e6\e2e6"; } + +.fa-bicycle { + --fa: "\f206"; + --fa--fa: "\f206\f206"; } + +.fa-staff-snake { + --fa: "\e579"; + --fa--fa: "\e579\e579"; } + +.fa-rod-asclepius { + --fa: "\e579"; + --fa--fa: "\e579\e579"; } + +.fa-rod-snake { + --fa: "\e579"; + --fa--fa: "\e579\e579"; } + +.fa-staff-aesculapius { + --fa: "\e579"; + --fa--fa: "\e579\e579"; } + +.fa-head-side-cough-slash { + --fa: "\e062"; + --fa--fa: "\e062\e062"; } + +.fa-truck-medical { + --fa: "\f0f9"; + --fa--fa: "\f0f9\f0f9"; } + +.fa-ambulance { + --fa: "\f0f9"; + --fa--fa: "\f0f9\f0f9"; } + +.fa-wheat-awn-circle-exclamation { + --fa: "\e598"; + --fa--fa: "\e598\e598"; } + +.fa-snowman { + --fa: "\f7d0"; + --fa--fa: "\f7d0\f7d0"; } + +.fa-mortar-pestle { + --fa: "\f5a7"; + --fa--fa: "\f5a7\f5a7"; } + +.fa-road-barrier { + --fa: "\e562"; + --fa--fa: "\e562\e562"; } + +.fa-school { + --fa: "\f549"; + --fa--fa: "\f549\f549"; } + +.fa-igloo { + --fa: "\f7ae"; + --fa--fa: "\f7ae\f7ae"; } + +.fa-joint { + --fa: "\f595"; + --fa--fa: "\f595\f595"; } + +.fa-angle-right { + --fa: "\f105"; + --fa--fa: "\f105\f105"; } + +.fa-horse { + --fa: "\f6f0"; + --fa--fa: "\f6f0\f6f0"; } + +.fa-q { + --fa: "\51"; + --fa--fa: "\51\51"; } + +.fa-g { + --fa: "\47"; + --fa--fa: "\47\47"; } + +.fa-notes-medical { + --fa: "\f481"; + --fa--fa: "\f481\f481"; } + +.fa-temperature-half { + --fa: "\f2c9"; + --fa--fa: "\f2c9\f2c9"; } + +.fa-temperature-2 { + --fa: "\f2c9"; + --fa--fa: "\f2c9\f2c9"; } + +.fa-thermometer-2 { + --fa: "\f2c9"; + --fa--fa: "\f2c9\f2c9"; } + +.fa-thermometer-half { + --fa: "\f2c9"; + --fa--fa: "\f2c9\f2c9"; } + +.fa-dong-sign { + --fa: "\e169"; + --fa--fa: "\e169\e169"; } + +.fa-capsules { + --fa: "\f46b"; + --fa--fa: "\f46b\f46b"; } + +.fa-poo-storm { + --fa: "\f75a"; + --fa--fa: "\f75a\f75a"; } + +.fa-poo-bolt { + --fa: "\f75a"; + --fa--fa: "\f75a\f75a"; } + +.fa-face-frown-open { + --fa: "\f57a"; + --fa--fa: "\f57a\f57a"; } + +.fa-frown-open { + --fa: "\f57a"; + --fa--fa: "\f57a\f57a"; } + +.fa-hand-point-up { + --fa: "\f0a6"; + --fa--fa: "\f0a6\f0a6"; } + +.fa-money-bill { + --fa: "\f0d6"; + --fa--fa: "\f0d6\f0d6"; } + +.fa-bookmark { + --fa: "\f02e"; + --fa--fa: "\f02e\f02e"; } + +.fa-align-justify { + --fa: "\f039"; + --fa--fa: "\f039\f039"; } + +.fa-umbrella-beach { + --fa: "\f5ca"; + --fa--fa: "\f5ca\f5ca"; } + +.fa-helmet-un { + --fa: "\e503"; + --fa--fa: "\e503\e503"; } + +.fa-bullseye { + --fa: "\f140"; + --fa--fa: "\f140\f140"; } + +.fa-bacon { + --fa: "\f7e5"; + --fa--fa: "\f7e5\f7e5"; } + +.fa-hand-point-down { + --fa: "\f0a7"; + --fa--fa: "\f0a7\f0a7"; } + +.fa-arrow-up-from-bracket { + --fa: "\e09a"; + --fa--fa: "\e09a\e09a"; } + +.fa-folder { + --fa: "\f07b"; + --fa--fa: "\f07b\f07b"; } + +.fa-folder-blank { + --fa: "\f07b"; + --fa--fa: "\f07b\f07b"; } + +.fa-file-waveform { + --fa: "\f478"; + --fa--fa: "\f478\f478"; } + +.fa-file-medical-alt { + --fa: "\f478"; + --fa--fa: "\f478\f478"; } + +.fa-radiation { + --fa: "\f7b9"; + --fa--fa: "\f7b9\f7b9"; } + +.fa-chart-simple { + --fa: "\e473"; + --fa--fa: "\e473\e473"; } + +.fa-mars-stroke { + --fa: "\f229"; + --fa--fa: "\f229\f229"; } + +.fa-vial { + --fa: "\f492"; + --fa--fa: "\f492\f492"; } + +.fa-gauge { + --fa: "\f624"; + --fa--fa: "\f624\f624"; } + +.fa-dashboard { + --fa: "\f624"; + --fa--fa: "\f624\f624"; } + +.fa-gauge-med { + --fa: "\f624"; + --fa--fa: "\f624\f624"; } + +.fa-tachometer-alt-average { + --fa: "\f624"; + --fa--fa: "\f624\f624"; } + +.fa-wand-magic-sparkles { + --fa: "\e2ca"; + --fa--fa: "\e2ca\e2ca"; } + +.fa-magic-wand-sparkles { + --fa: "\e2ca"; + --fa--fa: "\e2ca\e2ca"; } + +.fa-e { + --fa: "\45"; + --fa--fa: "\45\45"; } + +.fa-pen-clip { + --fa: "\f305"; + --fa--fa: "\f305\f305"; } + +.fa-pen-alt { + --fa: "\f305"; + --fa--fa: "\f305\f305"; } + +.fa-bridge-circle-exclamation { + --fa: "\e4ca"; + --fa--fa: "\e4ca\e4ca"; } + +.fa-user { + --fa: "\f007"; + --fa--fa: "\f007\f007"; } + +.fa-school-circle-check { + --fa: "\e56b"; + --fa--fa: "\e56b\e56b"; } + +.fa-dumpster { + --fa: "\f793"; + --fa--fa: "\f793\f793"; } + +.fa-van-shuttle { + --fa: "\f5b6"; + --fa--fa: "\f5b6\f5b6"; } + +.fa-shuttle-van { + --fa: "\f5b6"; + --fa--fa: "\f5b6\f5b6"; } + +.fa-building-user { + --fa: "\e4da"; + --fa--fa: "\e4da\e4da"; } + +.fa-square-caret-left { + --fa: "\f191"; + --fa--fa: "\f191\f191"; } + +.fa-caret-square-left { + --fa: "\f191"; + --fa--fa: "\f191\f191"; } + +.fa-highlighter { + --fa: "\f591"; + --fa--fa: "\f591\f591"; } + +.fa-key { + --fa: "\f084"; + --fa--fa: "\f084\f084"; } + +.fa-bullhorn { + --fa: "\f0a1"; + --fa--fa: "\f0a1\f0a1"; } + +.fa-globe { + --fa: "\f0ac"; + --fa--fa: "\f0ac\f0ac"; } + +.fa-synagogue { + --fa: "\f69b"; + --fa--fa: "\f69b\f69b"; } + +.fa-person-half-dress { + --fa: "\e548"; + --fa--fa: "\e548\e548"; } + +.fa-road-bridge { + --fa: "\e563"; + --fa--fa: "\e563\e563"; } + +.fa-location-arrow { + --fa: "\f124"; + --fa--fa: "\f124\f124"; } + +.fa-c { + --fa: "\43"; + --fa--fa: "\43\43"; } + +.fa-tablet-button { + --fa: "\f10a"; + --fa--fa: "\f10a\f10a"; } + +.fa-building-lock { + --fa: "\e4d6"; + --fa--fa: "\e4d6\e4d6"; } + +.fa-pizza-slice { + --fa: "\f818"; + --fa--fa: "\f818\f818"; } + +.fa-money-bill-wave { + --fa: "\f53a"; + --fa--fa: "\f53a\f53a"; } + +.fa-chart-area { + --fa: "\f1fe"; + --fa--fa: "\f1fe\f1fe"; } + +.fa-area-chart { + --fa: "\f1fe"; + --fa--fa: "\f1fe\f1fe"; } + +.fa-house-flag { + --fa: "\e50d"; + --fa--fa: "\e50d\e50d"; } + +.fa-person-circle-minus { + --fa: "\e540"; + --fa--fa: "\e540\e540"; } + +.fa-ban { + --fa: "\f05e"; + --fa--fa: "\f05e\f05e"; } + +.fa-cancel { + --fa: "\f05e"; + --fa--fa: "\f05e\f05e"; } + +.fa-camera-rotate { + --fa: "\e0d8"; + --fa--fa: "\e0d8\e0d8"; } + +.fa-spray-can-sparkles { + --fa: "\f5d0"; + --fa--fa: "\f5d0\f5d0"; } + +.fa-air-freshener { + --fa: "\f5d0"; + --fa--fa: "\f5d0\f5d0"; } + +.fa-star { + --fa: "\f005"; + --fa--fa: "\f005\f005"; } + +.fa-repeat { + --fa: "\f363"; + --fa--fa: "\f363\f363"; } + +.fa-cross { + --fa: "\f654"; + --fa--fa: "\f654\f654"; } + +.fa-box { + --fa: "\f466"; + --fa--fa: "\f466\f466"; } + +.fa-venus-mars { + --fa: "\f228"; + --fa--fa: "\f228\f228"; } + +.fa-arrow-pointer { + --fa: "\f245"; + --fa--fa: "\f245\f245"; } + +.fa-mouse-pointer { + --fa: "\f245"; + --fa--fa: "\f245\f245"; } + +.fa-maximize { + --fa: "\f31e"; + --fa--fa: "\f31e\f31e"; } + +.fa-expand-arrows-alt { + --fa: "\f31e"; + --fa--fa: "\f31e\f31e"; } + +.fa-charging-station { + --fa: "\f5e7"; + --fa--fa: "\f5e7\f5e7"; } + +.fa-shapes { + --fa: "\f61f"; + --fa--fa: "\f61f\f61f"; } + +.fa-triangle-circle-square { + --fa: "\f61f"; + --fa--fa: "\f61f\f61f"; } + +.fa-shuffle { + --fa: "\f074"; + --fa--fa: "\f074\f074"; } + +.fa-random { + --fa: "\f074"; + --fa--fa: "\f074\f074"; } + +.fa-person-running { + --fa: "\f70c"; + --fa--fa: "\f70c\f70c"; } + +.fa-running { + --fa: "\f70c"; + --fa--fa: "\f70c\f70c"; } + +.fa-mobile-retro { + --fa: "\e527"; + --fa--fa: "\e527\e527"; } + +.fa-grip-lines-vertical { + --fa: "\f7a5"; + --fa--fa: "\f7a5\f7a5"; } + +.fa-spider { + --fa: "\f717"; + --fa--fa: "\f717\f717"; } + +.fa-hands-bound { + --fa: "\e4f9"; + --fa--fa: "\e4f9\e4f9"; } + +.fa-file-invoice-dollar { + --fa: "\f571"; + --fa--fa: "\f571\f571"; } + +.fa-plane-circle-exclamation { + --fa: "\e556"; + --fa--fa: "\e556\e556"; } + +.fa-x-ray { + --fa: "\f497"; + --fa--fa: "\f497\f497"; } + +.fa-spell-check { + --fa: "\f891"; + --fa--fa: "\f891\f891"; } + +.fa-slash { + --fa: "\f715"; + --fa--fa: "\f715\f715"; } + +.fa-computer-mouse { + --fa: "\f8cc"; + --fa--fa: "\f8cc\f8cc"; } + +.fa-mouse { + --fa: "\f8cc"; + --fa--fa: "\f8cc\f8cc"; } + +.fa-arrow-right-to-bracket { + --fa: "\f090"; + --fa--fa: "\f090\f090"; } + +.fa-sign-in { + --fa: "\f090"; + --fa--fa: "\f090\f090"; } + +.fa-shop-slash { + --fa: "\e070"; + --fa--fa: "\e070\e070"; } + +.fa-store-alt-slash { + --fa: "\e070"; + --fa--fa: "\e070\e070"; } + +.fa-server { + --fa: "\f233"; + --fa--fa: "\f233\f233"; } + +.fa-virus-covid-slash { + --fa: "\e4a9"; + --fa--fa: "\e4a9\e4a9"; } + +.fa-shop-lock { + --fa: "\e4a5"; + --fa--fa: "\e4a5\e4a5"; } + +.fa-hourglass-start { + --fa: "\f251"; + --fa--fa: "\f251\f251"; } + +.fa-hourglass-1 { + --fa: "\f251"; + --fa--fa: "\f251\f251"; } + +.fa-blender-phone { + --fa: "\f6b6"; + --fa--fa: "\f6b6\f6b6"; } + +.fa-building-wheat { + --fa: "\e4db"; + --fa--fa: "\e4db\e4db"; } + +.fa-person-breastfeeding { + --fa: "\e53a"; + --fa--fa: "\e53a\e53a"; } + +.fa-right-to-bracket { + --fa: "\f2f6"; + --fa--fa: "\f2f6\f2f6"; } + +.fa-sign-in-alt { + --fa: "\f2f6"; + --fa--fa: "\f2f6\f2f6"; } + +.fa-venus { + --fa: "\f221"; + --fa--fa: "\f221\f221"; } + +.fa-passport { + --fa: "\f5ab"; + --fa--fa: "\f5ab\f5ab"; } + +.fa-thumbtack-slash { + --fa: "\e68f"; + --fa--fa: "\e68f\e68f"; } + +.fa-thumb-tack-slash { + --fa: "\e68f"; + --fa--fa: "\e68f\e68f"; } + +.fa-heart-pulse { + --fa: "\f21e"; + --fa--fa: "\f21e\f21e"; } + +.fa-heartbeat { + --fa: "\f21e"; + --fa--fa: "\f21e\f21e"; } + +.fa-people-carry-box { + --fa: "\f4ce"; + --fa--fa: "\f4ce\f4ce"; } + +.fa-people-carry { + --fa: "\f4ce"; + --fa--fa: "\f4ce\f4ce"; } + +.fa-temperature-high { + --fa: "\f769"; + --fa--fa: "\f769\f769"; } + +.fa-microchip { + --fa: "\f2db"; + --fa--fa: "\f2db\f2db"; } + +.fa-crown { + --fa: "\f521"; + --fa--fa: "\f521\f521"; } + +.fa-weight-hanging { + --fa: "\f5cd"; + --fa--fa: "\f5cd\f5cd"; } + +.fa-xmarks-lines { + --fa: "\e59a"; + --fa--fa: "\e59a\e59a"; } + +.fa-file-prescription { + --fa: "\f572"; + --fa--fa: "\f572\f572"; } + +.fa-weight-scale { + --fa: "\f496"; + --fa--fa: "\f496\f496"; } + +.fa-weight { + --fa: "\f496"; + --fa--fa: "\f496\f496"; } + +.fa-user-group { + --fa: "\f500"; + --fa--fa: "\f500\f500"; } + +.fa-user-friends { + --fa: "\f500"; + --fa--fa: "\f500\f500"; } + +.fa-arrow-up-a-z { + --fa: "\f15e"; + --fa--fa: "\f15e\f15e"; } + +.fa-sort-alpha-up { + --fa: "\f15e"; + --fa--fa: "\f15e\f15e"; } + +.fa-chess-knight { + --fa: "\f441"; + --fa--fa: "\f441\f441"; } + +.fa-face-laugh-squint { + --fa: "\f59b"; + --fa--fa: "\f59b\f59b"; } + +.fa-laugh-squint { + --fa: "\f59b"; + --fa--fa: "\f59b\f59b"; } + +.fa-wheelchair { + --fa: "\f193"; + --fa--fa: "\f193\f193"; } + +.fa-circle-arrow-up { + --fa: "\f0aa"; + --fa--fa: "\f0aa\f0aa"; } + +.fa-arrow-circle-up { + --fa: "\f0aa"; + --fa--fa: "\f0aa\f0aa"; } + +.fa-toggle-on { + --fa: "\f205"; + --fa--fa: "\f205\f205"; } + +.fa-person-walking { + --fa: "\f554"; + --fa--fa: "\f554\f554"; } + +.fa-walking { + --fa: "\f554"; + --fa--fa: "\f554\f554"; } + +.fa-l { + --fa: "\4c"; + --fa--fa: "\4c\4c"; } + +.fa-fire { + --fa: "\f06d"; + --fa--fa: "\f06d\f06d"; } + +.fa-bed-pulse { + --fa: "\f487"; + --fa--fa: "\f487\f487"; } + +.fa-procedures { + --fa: "\f487"; + --fa--fa: "\f487\f487"; } + +.fa-shuttle-space { + --fa: "\f197"; + --fa--fa: "\f197\f197"; } + +.fa-space-shuttle { + --fa: "\f197"; + --fa--fa: "\f197\f197"; } + +.fa-face-laugh { + --fa: "\f599"; + --fa--fa: "\f599\f599"; } + +.fa-laugh { + --fa: "\f599"; + --fa--fa: "\f599\f599"; } + +.fa-folder-open { + --fa: "\f07c"; + --fa--fa: "\f07c\f07c"; } + +.fa-heart-circle-plus { + --fa: "\e500"; + --fa--fa: "\e500\e500"; } + +.fa-code-fork { + --fa: "\e13b"; + --fa--fa: "\e13b\e13b"; } + +.fa-city { + --fa: "\f64f"; + --fa--fa: "\f64f\f64f"; } + +.fa-microphone-lines { + --fa: "\f3c9"; + --fa--fa: "\f3c9\f3c9"; } + +.fa-microphone-alt { + --fa: "\f3c9"; + --fa--fa: "\f3c9\f3c9"; } + +.fa-pepper-hot { + --fa: "\f816"; + --fa--fa: "\f816\f816"; } + +.fa-unlock { + --fa: "\f09c"; + --fa--fa: "\f09c\f09c"; } + +.fa-colon-sign { + --fa: "\e140"; + --fa--fa: "\e140\e140"; } + +.fa-headset { + --fa: "\f590"; + --fa--fa: "\f590\f590"; } + +.fa-store-slash { + --fa: "\e071"; + --fa--fa: "\e071\e071"; } + +.fa-road-circle-xmark { + --fa: "\e566"; + --fa--fa: "\e566\e566"; } + +.fa-user-minus { + --fa: "\f503"; + --fa--fa: "\f503\f503"; } + +.fa-mars-stroke-up { + --fa: "\f22a"; + --fa--fa: "\f22a\f22a"; } + +.fa-mars-stroke-v { + --fa: "\f22a"; + --fa--fa: "\f22a\f22a"; } + +.fa-champagne-glasses { + --fa: "\f79f"; + --fa--fa: "\f79f\f79f"; } + +.fa-glass-cheers { + --fa: "\f79f"; + --fa--fa: "\f79f\f79f"; } + +.fa-clipboard { + --fa: "\f328"; + --fa--fa: "\f328\f328"; } + +.fa-house-circle-exclamation { + --fa: "\e50a"; + --fa--fa: "\e50a\e50a"; } + +.fa-file-arrow-up { + --fa: "\f574"; + --fa--fa: "\f574\f574"; } + +.fa-file-upload { + --fa: "\f574"; + --fa--fa: "\f574\f574"; } + +.fa-wifi { + --fa: "\f1eb"; + --fa--fa: "\f1eb\f1eb"; } + +.fa-wifi-3 { + --fa: "\f1eb"; + --fa--fa: "\f1eb\f1eb"; } + +.fa-wifi-strong { + --fa: "\f1eb"; + --fa--fa: "\f1eb\f1eb"; } + +.fa-bath { + --fa: "\f2cd"; + --fa--fa: "\f2cd\f2cd"; } + +.fa-bathtub { + --fa: "\f2cd"; + --fa--fa: "\f2cd\f2cd"; } + +.fa-underline { + --fa: "\f0cd"; + --fa--fa: "\f0cd\f0cd"; } + +.fa-user-pen { + --fa: "\f4ff"; + --fa--fa: "\f4ff\f4ff"; } + +.fa-user-edit { + --fa: "\f4ff"; + --fa--fa: "\f4ff\f4ff"; } + +.fa-signature { + --fa: "\f5b7"; + --fa--fa: "\f5b7\f5b7"; } + +.fa-stroopwafel { + --fa: "\f551"; + --fa--fa: "\f551\f551"; } + +.fa-bold { + --fa: "\f032"; + --fa--fa: "\f032\f032"; } + +.fa-anchor-lock { + --fa: "\e4ad"; + --fa--fa: "\e4ad\e4ad"; } + +.fa-building-ngo { + --fa: "\e4d7"; + --fa--fa: "\e4d7\e4d7"; } + +.fa-manat-sign { + --fa: "\e1d5"; + --fa--fa: "\e1d5\e1d5"; } + +.fa-not-equal { + --fa: "\f53e"; + --fa--fa: "\f53e\f53e"; } + +.fa-border-top-left { + --fa: "\f853"; + --fa--fa: "\f853\f853"; } + +.fa-border-style { + --fa: "\f853"; + --fa--fa: "\f853\f853"; } + +.fa-map-location-dot { + --fa: "\f5a0"; + --fa--fa: "\f5a0\f5a0"; } + +.fa-map-marked-alt { + --fa: "\f5a0"; + --fa--fa: "\f5a0\f5a0"; } + +.fa-jedi { + --fa: "\f669"; + --fa--fa: "\f669\f669"; } + +.fa-square-poll-vertical { + --fa: "\f681"; + --fa--fa: "\f681\f681"; } + +.fa-poll { + --fa: "\f681"; + --fa--fa: "\f681\f681"; } + +.fa-mug-hot { + --fa: "\f7b6"; + --fa--fa: "\f7b6\f7b6"; } + +.fa-car-battery { + --fa: "\f5df"; + --fa--fa: "\f5df\f5df"; } + +.fa-battery-car { + --fa: "\f5df"; + --fa--fa: "\f5df\f5df"; } + +.fa-gift { + --fa: "\f06b"; + --fa--fa: "\f06b\f06b"; } + +.fa-dice-two { + --fa: "\f528"; + --fa--fa: "\f528\f528"; } + +.fa-chess-queen { + --fa: "\f445"; + --fa--fa: "\f445\f445"; } + +.fa-glasses { + --fa: "\f530"; + --fa--fa: "\f530\f530"; } + +.fa-chess-board { + --fa: "\f43c"; + --fa--fa: "\f43c\f43c"; } + +.fa-building-circle-check { + --fa: "\e4d2"; + --fa--fa: "\e4d2\e4d2"; } + +.fa-person-chalkboard { + --fa: "\e53d"; + --fa--fa: "\e53d\e53d"; } + +.fa-mars-stroke-right { + --fa: "\f22b"; + --fa--fa: "\f22b\f22b"; } + +.fa-mars-stroke-h { + --fa: "\f22b"; + --fa--fa: "\f22b\f22b"; } + +.fa-hand-back-fist { + --fa: "\f255"; + --fa--fa: "\f255\f255"; } + +.fa-hand-rock { + --fa: "\f255"; + --fa--fa: "\f255\f255"; } + +.fa-square-caret-up { + --fa: "\f151"; + --fa--fa: "\f151\f151"; } + +.fa-caret-square-up { + --fa: "\f151"; + --fa--fa: "\f151\f151"; } + +.fa-cloud-showers-water { + --fa: "\e4e4"; + --fa--fa: "\e4e4\e4e4"; } + +.fa-chart-bar { + --fa: "\f080"; + --fa--fa: "\f080\f080"; } + +.fa-bar-chart { + --fa: "\f080"; + --fa--fa: "\f080\f080"; } + +.fa-hands-bubbles { + --fa: "\e05e"; + --fa--fa: "\e05e\e05e"; } + +.fa-hands-wash { + --fa: "\e05e"; + --fa--fa: "\e05e\e05e"; } + +.fa-less-than-equal { + --fa: "\f537"; + --fa--fa: "\f537\f537"; } + +.fa-train { + --fa: "\f238"; + --fa--fa: "\f238\f238"; } + +.fa-eye-low-vision { + --fa: "\f2a8"; + --fa--fa: "\f2a8\f2a8"; } + +.fa-low-vision { + --fa: "\f2a8"; + --fa--fa: "\f2a8\f2a8"; } + +.fa-crow { + --fa: "\f520"; + --fa--fa: "\f520\f520"; } + +.fa-sailboat { + --fa: "\e445"; + --fa--fa: "\e445\e445"; } + +.fa-window-restore { + --fa: "\f2d2"; + --fa--fa: "\f2d2\f2d2"; } + +.fa-square-plus { + --fa: "\f0fe"; + --fa--fa: "\f0fe\f0fe"; } + +.fa-plus-square { + --fa: "\f0fe"; + --fa--fa: "\f0fe\f0fe"; } + +.fa-torii-gate { + --fa: "\f6a1"; + --fa--fa: "\f6a1\f6a1"; } + +.fa-frog { + --fa: "\f52e"; + --fa--fa: "\f52e\f52e"; } + +.fa-bucket { + --fa: "\e4cf"; + --fa--fa: "\e4cf\e4cf"; } + +.fa-image { + --fa: "\f03e"; + --fa--fa: "\f03e\f03e"; } + +.fa-microphone { + --fa: "\f130"; + --fa--fa: "\f130\f130"; } + +.fa-cow { + --fa: "\f6c8"; + --fa--fa: "\f6c8\f6c8"; } + +.fa-caret-up { + --fa: "\f0d8"; + --fa--fa: "\f0d8\f0d8"; } + +.fa-screwdriver { + --fa: "\f54a"; + --fa--fa: "\f54a\f54a"; } + +.fa-folder-closed { + --fa: "\e185"; + --fa--fa: "\e185\e185"; } + +.fa-house-tsunami { + --fa: "\e515"; + --fa--fa: "\e515\e515"; } + +.fa-square-nfi { + --fa: "\e576"; + --fa--fa: "\e576\e576"; } + +.fa-arrow-up-from-ground-water { + --fa: "\e4b5"; + --fa--fa: "\e4b5\e4b5"; } + +.fa-martini-glass { + --fa: "\f57b"; + --fa--fa: "\f57b\f57b"; } + +.fa-glass-martini-alt { + --fa: "\f57b"; + --fa--fa: "\f57b\f57b"; } + +.fa-square-binary { + --fa: "\e69b"; + --fa--fa: "\e69b\e69b"; } + +.fa-rotate-left { + --fa: "\f2ea"; + --fa--fa: "\f2ea\f2ea"; } + +.fa-rotate-back { + --fa: "\f2ea"; + --fa--fa: "\f2ea\f2ea"; } + +.fa-rotate-backward { + --fa: "\f2ea"; + --fa--fa: "\f2ea\f2ea"; } + +.fa-undo-alt { + --fa: "\f2ea"; + --fa--fa: "\f2ea\f2ea"; } + +.fa-table-columns { + --fa: "\f0db"; + --fa--fa: "\f0db\f0db"; } + +.fa-columns { + --fa: "\f0db"; + --fa--fa: "\f0db\f0db"; } + +.fa-lemon { + --fa: "\f094"; + --fa--fa: "\f094\f094"; } + +.fa-head-side-mask { + --fa: "\e063"; + --fa--fa: "\e063\e063"; } + +.fa-handshake { + --fa: "\f2b5"; + --fa--fa: "\f2b5\f2b5"; } + +.fa-gem { + --fa: "\f3a5"; + --fa--fa: "\f3a5\f3a5"; } + +.fa-dolly { + --fa: "\f472"; + --fa--fa: "\f472\f472"; } + +.fa-dolly-box { + --fa: "\f472"; + --fa--fa: "\f472\f472"; } + +.fa-smoking { + --fa: "\f48d"; + --fa--fa: "\f48d\f48d"; } + +.fa-minimize { + --fa: "\f78c"; + --fa--fa: "\f78c\f78c"; } + +.fa-compress-arrows-alt { + --fa: "\f78c"; + --fa--fa: "\f78c\f78c"; } + +.fa-monument { + --fa: "\f5a6"; + --fa--fa: "\f5a6\f5a6"; } + +.fa-snowplow { + --fa: "\f7d2"; + --fa--fa: "\f7d2\f7d2"; } + +.fa-angles-right { + --fa: "\f101"; + --fa--fa: "\f101\f101"; } + +.fa-angle-double-right { + --fa: "\f101"; + --fa--fa: "\f101\f101"; } + +.fa-cannabis { + --fa: "\f55f"; + --fa--fa: "\f55f\f55f"; } + +.fa-circle-play { + --fa: "\f144"; + --fa--fa: "\f144\f144"; } + +.fa-play-circle { + --fa: "\f144"; + --fa--fa: "\f144\f144"; } + +.fa-tablets { + --fa: "\f490"; + --fa--fa: "\f490\f490"; } + +.fa-ethernet { + --fa: "\f796"; + --fa--fa: "\f796\f796"; } + +.fa-euro-sign { + --fa: "\f153"; + --fa--fa: "\f153\f153"; } + +.fa-eur { + --fa: "\f153"; + --fa--fa: "\f153\f153"; } + +.fa-euro { + --fa: "\f153"; + --fa--fa: "\f153\f153"; } + +.fa-chair { + --fa: "\f6c0"; + --fa--fa: "\f6c0\f6c0"; } + +.fa-circle-check { + --fa: "\f058"; + --fa--fa: "\f058\f058"; } + +.fa-check-circle { + --fa: "\f058"; + --fa--fa: "\f058\f058"; } + +.fa-circle-stop { + --fa: "\f28d"; + --fa--fa: "\f28d\f28d"; } + +.fa-stop-circle { + --fa: "\f28d"; + --fa--fa: "\f28d\f28d"; } + +.fa-compass-drafting { + --fa: "\f568"; + --fa--fa: "\f568\f568"; } + +.fa-drafting-compass { + --fa: "\f568"; + --fa--fa: "\f568\f568"; } + +.fa-plate-wheat { + --fa: "\e55a"; + --fa--fa: "\e55a\e55a"; } + +.fa-icicles { + --fa: "\f7ad"; + --fa--fa: "\f7ad\f7ad"; } + +.fa-person-shelter { + --fa: "\e54f"; + --fa--fa: "\e54f\e54f"; } + +.fa-neuter { + --fa: "\f22c"; + --fa--fa: "\f22c\f22c"; } + +.fa-id-badge { + --fa: "\f2c1"; + --fa--fa: "\f2c1\f2c1"; } + +.fa-marker { + --fa: "\f5a1"; + --fa--fa: "\f5a1\f5a1"; } + +.fa-face-laugh-beam { + --fa: "\f59a"; + --fa--fa: "\f59a\f59a"; } + +.fa-laugh-beam { + --fa: "\f59a"; + --fa--fa: "\f59a\f59a"; } + +.fa-helicopter-symbol { + --fa: "\e502"; + --fa--fa: "\e502\e502"; } + +.fa-universal-access { + --fa: "\f29a"; + --fa--fa: "\f29a\f29a"; } + +.fa-circle-chevron-up { + --fa: "\f139"; + --fa--fa: "\f139\f139"; } + +.fa-chevron-circle-up { + --fa: "\f139"; + --fa--fa: "\f139\f139"; } + +.fa-lari-sign { + --fa: "\e1c8"; + --fa--fa: "\e1c8\e1c8"; } + +.fa-volcano { + --fa: "\f770"; + --fa--fa: "\f770\f770"; } + +.fa-person-walking-dashed-line-arrow-right { + --fa: "\e553"; + --fa--fa: "\e553\e553"; } + +.fa-sterling-sign { + --fa: "\f154"; + --fa--fa: "\f154\f154"; } + +.fa-gbp { + --fa: "\f154"; + --fa--fa: "\f154\f154"; } + +.fa-pound-sign { + --fa: "\f154"; + --fa--fa: "\f154\f154"; } + +.fa-viruses { + --fa: "\e076"; + --fa--fa: "\e076\e076"; } + +.fa-square-person-confined { + --fa: "\e577"; + --fa--fa: "\e577\e577"; } + +.fa-user-tie { + --fa: "\f508"; + --fa--fa: "\f508\f508"; } + +.fa-arrow-down-long { + --fa: "\f175"; + --fa--fa: "\f175\f175"; } + +.fa-long-arrow-down { + --fa: "\f175"; + --fa--fa: "\f175\f175"; } + +.fa-tent-arrow-down-to-line { + --fa: "\e57e"; + --fa--fa: "\e57e\e57e"; } + +.fa-certificate { + --fa: "\f0a3"; + --fa--fa: "\f0a3\f0a3"; } + +.fa-reply-all { + --fa: "\f122"; + --fa--fa: "\f122\f122"; } + +.fa-mail-reply-all { + --fa: "\f122"; + --fa--fa: "\f122\f122"; } + +.fa-suitcase { + --fa: "\f0f2"; + --fa--fa: "\f0f2\f0f2"; } + +.fa-person-skating { + --fa: "\f7c5"; + --fa--fa: "\f7c5\f7c5"; } + +.fa-skating { + --fa: "\f7c5"; + --fa--fa: "\f7c5\f7c5"; } + +.fa-filter-circle-dollar { + --fa: "\f662"; + --fa--fa: "\f662\f662"; } + +.fa-funnel-dollar { + --fa: "\f662"; + --fa--fa: "\f662\f662"; } + +.fa-camera-retro { + --fa: "\f083"; + --fa--fa: "\f083\f083"; } + +.fa-circle-arrow-down { + --fa: "\f0ab"; + --fa--fa: "\f0ab\f0ab"; } + +.fa-arrow-circle-down { + --fa: "\f0ab"; + --fa--fa: "\f0ab\f0ab"; } + +.fa-file-import { + --fa: "\f56f"; + --fa--fa: "\f56f\f56f"; } + +.fa-arrow-right-to-file { + --fa: "\f56f"; + --fa--fa: "\f56f\f56f"; } + +.fa-square-arrow-up-right { + --fa: "\f14c"; + --fa--fa: "\f14c\f14c"; } + +.fa-external-link-square { + --fa: "\f14c"; + --fa--fa: "\f14c\f14c"; } + +.fa-box-open { + --fa: "\f49e"; + --fa--fa: "\f49e\f49e"; } + +.fa-scroll { + --fa: "\f70e"; + --fa--fa: "\f70e\f70e"; } + +.fa-spa { + --fa: "\f5bb"; + --fa--fa: "\f5bb\f5bb"; } + +.fa-location-pin-lock { + --fa: "\e51f"; + --fa--fa: "\e51f\e51f"; } + +.fa-pause { + --fa: "\f04c"; + --fa--fa: "\f04c\f04c"; } + +.fa-hill-avalanche { + --fa: "\e507"; + --fa--fa: "\e507\e507"; } + +.fa-temperature-empty { + --fa: "\f2cb"; + --fa--fa: "\f2cb\f2cb"; } + +.fa-temperature-0 { + --fa: "\f2cb"; + --fa--fa: "\f2cb\f2cb"; } + +.fa-thermometer-0 { + --fa: "\f2cb"; + --fa--fa: "\f2cb\f2cb"; } + +.fa-thermometer-empty { + --fa: "\f2cb"; + --fa--fa: "\f2cb\f2cb"; } + +.fa-bomb { + --fa: "\f1e2"; + --fa--fa: "\f1e2\f1e2"; } + +.fa-registered { + --fa: "\f25d"; + --fa--fa: "\f25d\f25d"; } + +.fa-address-card { + --fa: "\f2bb"; + --fa--fa: "\f2bb\f2bb"; } + +.fa-contact-card { + --fa: "\f2bb"; + --fa--fa: "\f2bb\f2bb"; } + +.fa-vcard { + --fa: "\f2bb"; + --fa--fa: "\f2bb\f2bb"; } + +.fa-scale-unbalanced-flip { + --fa: "\f516"; + --fa--fa: "\f516\f516"; } + +.fa-balance-scale-right { + --fa: "\f516"; + --fa--fa: "\f516\f516"; } + +.fa-subscript { + --fa: "\f12c"; + --fa--fa: "\f12c\f12c"; } + +.fa-diamond-turn-right { + --fa: "\f5eb"; + --fa--fa: "\f5eb\f5eb"; } + +.fa-directions { + --fa: "\f5eb"; + --fa--fa: "\f5eb\f5eb"; } + +.fa-burst { + --fa: "\e4dc"; + --fa--fa: "\e4dc\e4dc"; } + +.fa-house-laptop { + --fa: "\e066"; + --fa--fa: "\e066\e066"; } + +.fa-laptop-house { + --fa: "\e066"; + --fa--fa: "\e066\e066"; } + +.fa-face-tired { + --fa: "\f5c8"; + --fa--fa: "\f5c8\f5c8"; } + +.fa-tired { + --fa: "\f5c8"; + --fa--fa: "\f5c8\f5c8"; } + +.fa-money-bills { + --fa: "\e1f3"; + --fa--fa: "\e1f3\e1f3"; } + +.fa-smog { + --fa: "\f75f"; + --fa--fa: "\f75f\f75f"; } + +.fa-crutch { + --fa: "\f7f7"; + --fa--fa: "\f7f7\f7f7"; } + +.fa-cloud-arrow-up { + --fa: "\f0ee"; + --fa--fa: "\f0ee\f0ee"; } + +.fa-cloud-upload { + --fa: "\f0ee"; + --fa--fa: "\f0ee\f0ee"; } + +.fa-cloud-upload-alt { + --fa: "\f0ee"; + --fa--fa: "\f0ee\f0ee"; } + +.fa-palette { + --fa: "\f53f"; + --fa--fa: "\f53f\f53f"; } + +.fa-arrows-turn-right { + --fa: "\e4c0"; + --fa--fa: "\e4c0\e4c0"; } + +.fa-vest { + --fa: "\e085"; + --fa--fa: "\e085\e085"; } + +.fa-ferry { + --fa: "\e4ea"; + --fa--fa: "\e4ea\e4ea"; } + +.fa-arrows-down-to-people { + --fa: "\e4b9"; + --fa--fa: "\e4b9\e4b9"; } + +.fa-seedling { + --fa: "\f4d8"; + --fa--fa: "\f4d8\f4d8"; } + +.fa-sprout { + --fa: "\f4d8"; + --fa--fa: "\f4d8\f4d8"; } + +.fa-left-right { + --fa: "\f337"; + --fa--fa: "\f337\f337"; } + +.fa-arrows-alt-h { + --fa: "\f337"; + --fa--fa: "\f337\f337"; } + +.fa-boxes-packing { + --fa: "\e4c7"; + --fa--fa: "\e4c7\e4c7"; } + +.fa-circle-arrow-left { + --fa: "\f0a8"; + --fa--fa: "\f0a8\f0a8"; } + +.fa-arrow-circle-left { + --fa: "\f0a8"; + --fa--fa: "\f0a8\f0a8"; } + +.fa-group-arrows-rotate { + --fa: "\e4f6"; + --fa--fa: "\e4f6\e4f6"; } + +.fa-bowl-food { + --fa: "\e4c6"; + --fa--fa: "\e4c6\e4c6"; } + +.fa-candy-cane { + --fa: "\f786"; + --fa--fa: "\f786\f786"; } + +.fa-arrow-down-wide-short { + --fa: "\f160"; + --fa--fa: "\f160\f160"; } + +.fa-sort-amount-asc { + --fa: "\f160"; + --fa--fa: "\f160\f160"; } + +.fa-sort-amount-down { + --fa: "\f160"; + --fa--fa: "\f160\f160"; } + +.fa-cloud-bolt { + --fa: "\f76c"; + --fa--fa: "\f76c\f76c"; } + +.fa-thunderstorm { + --fa: "\f76c"; + --fa--fa: "\f76c\f76c"; } + +.fa-text-slash { + --fa: "\f87d"; + --fa--fa: "\f87d\f87d"; } + +.fa-remove-format { + --fa: "\f87d"; + --fa--fa: "\f87d\f87d"; } + +.fa-face-smile-wink { + --fa: "\f4da"; + --fa--fa: "\f4da\f4da"; } + +.fa-smile-wink { + --fa: "\f4da"; + --fa--fa: "\f4da\f4da"; } + +.fa-file-word { + --fa: "\f1c2"; + --fa--fa: "\f1c2\f1c2"; } + +.fa-file-powerpoint { + --fa: "\f1c4"; + --fa--fa: "\f1c4\f1c4"; } + +.fa-arrows-left-right { + --fa: "\f07e"; + --fa--fa: "\f07e\f07e"; } + +.fa-arrows-h { + --fa: "\f07e"; + --fa--fa: "\f07e\f07e"; } + +.fa-house-lock { + --fa: "\e510"; + --fa--fa: "\e510\e510"; } + +.fa-cloud-arrow-down { + --fa: "\f0ed"; + --fa--fa: "\f0ed\f0ed"; } + +.fa-cloud-download { + --fa: "\f0ed"; + --fa--fa: "\f0ed\f0ed"; } + +.fa-cloud-download-alt { + --fa: "\f0ed"; + --fa--fa: "\f0ed\f0ed"; } + +.fa-children { + --fa: "\e4e1"; + --fa--fa: "\e4e1\e4e1"; } + +.fa-chalkboard { + --fa: "\f51b"; + --fa--fa: "\f51b\f51b"; } + +.fa-blackboard { + --fa: "\f51b"; + --fa--fa: "\f51b\f51b"; } + +.fa-user-large-slash { + --fa: "\f4fa"; + --fa--fa: "\f4fa\f4fa"; } + +.fa-user-alt-slash { + --fa: "\f4fa"; + --fa--fa: "\f4fa\f4fa"; } + +.fa-envelope-open { + --fa: "\f2b6"; + --fa--fa: "\f2b6\f2b6"; } + +.fa-handshake-simple-slash { + --fa: "\e05f"; + --fa--fa: "\e05f\e05f"; } + +.fa-handshake-alt-slash { + --fa: "\e05f"; + --fa--fa: "\e05f\e05f"; } + +.fa-mattress-pillow { + --fa: "\e525"; + --fa--fa: "\e525\e525"; } + +.fa-guarani-sign { + --fa: "\e19a"; + --fa--fa: "\e19a\e19a"; } + +.fa-arrows-rotate { + --fa: "\f021"; + --fa--fa: "\f021\f021"; } + +.fa-refresh { + --fa: "\f021"; + --fa--fa: "\f021\f021"; } + +.fa-sync { + --fa: "\f021"; + --fa--fa: "\f021\f021"; } + +.fa-fire-extinguisher { + --fa: "\f134"; + --fa--fa: "\f134\f134"; } + +.fa-cruzeiro-sign { + --fa: "\e152"; + --fa--fa: "\e152\e152"; } + +.fa-greater-than-equal { + --fa: "\f532"; + --fa--fa: "\f532\f532"; } + +.fa-shield-halved { + --fa: "\f3ed"; + --fa--fa: "\f3ed\f3ed"; } + +.fa-shield-alt { + --fa: "\f3ed"; + --fa--fa: "\f3ed\f3ed"; } + +.fa-book-atlas { + --fa: "\f558"; + --fa--fa: "\f558\f558"; } + +.fa-atlas { + --fa: "\f558"; + --fa--fa: "\f558\f558"; } + +.fa-virus { + --fa: "\e074"; + --fa--fa: "\e074\e074"; } + +.fa-envelope-circle-check { + --fa: "\e4e8"; + --fa--fa: "\e4e8\e4e8"; } + +.fa-layer-group { + --fa: "\f5fd"; + --fa--fa: "\f5fd\f5fd"; } + +.fa-arrows-to-dot { + --fa: "\e4be"; + --fa--fa: "\e4be\e4be"; } + +.fa-archway { + --fa: "\f557"; + --fa--fa: "\f557\f557"; } + +.fa-heart-circle-check { + --fa: "\e4fd"; + --fa--fa: "\e4fd\e4fd"; } + +.fa-house-chimney-crack { + --fa: "\f6f1"; + --fa--fa: "\f6f1\f6f1"; } + +.fa-house-damage { + --fa: "\f6f1"; + --fa--fa: "\f6f1\f6f1"; } + +.fa-file-zipper { + --fa: "\f1c6"; + --fa--fa: "\f1c6\f1c6"; } + +.fa-file-archive { + --fa: "\f1c6"; + --fa--fa: "\f1c6\f1c6"; } + +.fa-square { + --fa: "\f0c8"; + --fa--fa: "\f0c8\f0c8"; } + +.fa-martini-glass-empty { + --fa: "\f000"; + --fa--fa: "\f000\f000"; } + +.fa-glass-martini { + --fa: "\f000"; + --fa--fa: "\f000\f000"; } + +.fa-couch { + --fa: "\f4b8"; + --fa--fa: "\f4b8\f4b8"; } + +.fa-cedi-sign { + --fa: "\e0df"; + --fa--fa: "\e0df\e0df"; } + +.fa-italic { + --fa: "\f033"; + --fa--fa: "\f033\f033"; } + +.fa-table-cells-column-lock { + --fa: "\e678"; + --fa--fa: "\e678\e678"; } + +.fa-church { + --fa: "\f51d"; + --fa--fa: "\f51d\f51d"; } + +.fa-comments-dollar { + --fa: "\f653"; + --fa--fa: "\f653\f653"; } + +.fa-democrat { + --fa: "\f747"; + --fa--fa: "\f747\f747"; } + +.fa-z { + --fa: "\5a"; + --fa--fa: "\5a\5a"; } + +.fa-person-skiing { + --fa: "\f7c9"; + --fa--fa: "\f7c9\f7c9"; } + +.fa-skiing { + --fa: "\f7c9"; + --fa--fa: "\f7c9\f7c9"; } + +.fa-road-lock { + --fa: "\e567"; + --fa--fa: "\e567\e567"; } + +.fa-a { + --fa: "\41"; + --fa--fa: "\41\41"; } + +.fa-temperature-arrow-down { + --fa: "\e03f"; + --fa--fa: "\e03f\e03f"; } + +.fa-temperature-down { + --fa: "\e03f"; + --fa--fa: "\e03f\e03f"; } + +.fa-feather-pointed { + --fa: "\f56b"; + --fa--fa: "\f56b\f56b"; } + +.fa-feather-alt { + --fa: "\f56b"; + --fa--fa: "\f56b\f56b"; } + +.fa-p { + --fa: "\50"; + --fa--fa: "\50\50"; } + +.fa-snowflake { + --fa: "\f2dc"; + --fa--fa: "\f2dc\f2dc"; } + +.fa-newspaper { + --fa: "\f1ea"; + --fa--fa: "\f1ea\f1ea"; } + +.fa-rectangle-ad { + --fa: "\f641"; + --fa--fa: "\f641\f641"; } + +.fa-ad { + --fa: "\f641"; + --fa--fa: "\f641\f641"; } + +.fa-circle-arrow-right { + --fa: "\f0a9"; + --fa--fa: "\f0a9\f0a9"; } + +.fa-arrow-circle-right { + --fa: "\f0a9"; + --fa--fa: "\f0a9\f0a9"; } + +.fa-filter-circle-xmark { + --fa: "\e17b"; + --fa--fa: "\e17b\e17b"; } + +.fa-locust { + --fa: "\e520"; + --fa--fa: "\e520\e520"; } + +.fa-sort { + --fa: "\f0dc"; + --fa--fa: "\f0dc\f0dc"; } + +.fa-unsorted { + --fa: "\f0dc"; + --fa--fa: "\f0dc\f0dc"; } + +.fa-list-ol { + --fa: "\f0cb"; + --fa--fa: "\f0cb\f0cb"; } + +.fa-list-1-2 { + --fa: "\f0cb"; + --fa--fa: "\f0cb\f0cb"; } + +.fa-list-numeric { + --fa: "\f0cb"; + --fa--fa: "\f0cb\f0cb"; } + +.fa-person-dress-burst { + --fa: "\e544"; + --fa--fa: "\e544\e544"; } + +.fa-money-check-dollar { + --fa: "\f53d"; + --fa--fa: "\f53d\f53d"; } + +.fa-money-check-alt { + --fa: "\f53d"; + --fa--fa: "\f53d\f53d"; } + +.fa-vector-square { + --fa: "\f5cb"; + --fa--fa: "\f5cb\f5cb"; } + +.fa-bread-slice { + --fa: "\f7ec"; + --fa--fa: "\f7ec\f7ec"; } + +.fa-language { + --fa: "\f1ab"; + --fa--fa: "\f1ab\f1ab"; } + +.fa-face-kiss-wink-heart { + --fa: "\f598"; + --fa--fa: "\f598\f598"; } + +.fa-kiss-wink-heart { + --fa: "\f598"; + --fa--fa: "\f598\f598"; } + +.fa-filter { + --fa: "\f0b0"; + --fa--fa: "\f0b0\f0b0"; } + +.fa-question { + --fa: "\3f"; + --fa--fa: "\3f\3f"; } + +.fa-file-signature { + --fa: "\f573"; + --fa--fa: "\f573\f573"; } + +.fa-up-down-left-right { + --fa: "\f0b2"; + --fa--fa: "\f0b2\f0b2"; } + +.fa-arrows-alt { + --fa: "\f0b2"; + --fa--fa: "\f0b2\f0b2"; } + +.fa-house-chimney-user { + --fa: "\e065"; + --fa--fa: "\e065\e065"; } + +.fa-hand-holding-heart { + --fa: "\f4be"; + --fa--fa: "\f4be\f4be"; } + +.fa-puzzle-piece { + --fa: "\f12e"; + --fa--fa: "\f12e\f12e"; } + +.fa-money-check { + --fa: "\f53c"; + --fa--fa: "\f53c\f53c"; } + +.fa-star-half-stroke { + --fa: "\f5c0"; + --fa--fa: "\f5c0\f5c0"; } + +.fa-star-half-alt { + --fa: "\f5c0"; + --fa--fa: "\f5c0\f5c0"; } + +.fa-code { + --fa: "\f121"; + --fa--fa: "\f121\f121"; } + +.fa-whiskey-glass { + --fa: "\f7a0"; + --fa--fa: "\f7a0\f7a0"; } + +.fa-glass-whiskey { + --fa: "\f7a0"; + --fa--fa: "\f7a0\f7a0"; } + +.fa-building-circle-exclamation { + --fa: "\e4d3"; + --fa--fa: "\e4d3\e4d3"; } + +.fa-magnifying-glass-chart { + --fa: "\e522"; + --fa--fa: "\e522\e522"; } + +.fa-arrow-up-right-from-square { + --fa: "\f08e"; + --fa--fa: "\f08e\f08e"; } + +.fa-external-link { + --fa: "\f08e"; + --fa--fa: "\f08e\f08e"; } + +.fa-cubes-stacked { + --fa: "\e4e6"; + --fa--fa: "\e4e6\e4e6"; } + +.fa-won-sign { + --fa: "\f159"; + --fa--fa: "\f159\f159"; } + +.fa-krw { + --fa: "\f159"; + --fa--fa: "\f159\f159"; } + +.fa-won { + --fa: "\f159"; + --fa--fa: "\f159\f159"; } + +.fa-virus-covid { + --fa: "\e4a8"; + --fa--fa: "\e4a8\e4a8"; } + +.fa-austral-sign { + --fa: "\e0a9"; + --fa--fa: "\e0a9\e0a9"; } + +.fa-f { + --fa: "\46"; + --fa--fa: "\46\46"; } + +.fa-leaf { + --fa: "\f06c"; + --fa--fa: "\f06c\f06c"; } + +.fa-road { + --fa: "\f018"; + --fa--fa: "\f018\f018"; } + +.fa-taxi { + --fa: "\f1ba"; + --fa--fa: "\f1ba\f1ba"; } + +.fa-cab { + --fa: "\f1ba"; + --fa--fa: "\f1ba\f1ba"; } + +.fa-person-circle-plus { + --fa: "\e541"; + --fa--fa: "\e541\e541"; } + +.fa-chart-pie { + --fa: "\f200"; + --fa--fa: "\f200\f200"; } + +.fa-pie-chart { + --fa: "\f200"; + --fa--fa: "\f200\f200"; } + +.fa-bolt-lightning { + --fa: "\e0b7"; + --fa--fa: "\e0b7\e0b7"; } + +.fa-sack-xmark { + --fa: "\e56a"; + --fa--fa: "\e56a\e56a"; } + +.fa-file-excel { + --fa: "\f1c3"; + --fa--fa: "\f1c3\f1c3"; } + +.fa-file-contract { + --fa: "\f56c"; + --fa--fa: "\f56c\f56c"; } + +.fa-fish-fins { + --fa: "\e4f2"; + --fa--fa: "\e4f2\e4f2"; } + +.fa-building-flag { + --fa: "\e4d5"; + --fa--fa: "\e4d5\e4d5"; } + +.fa-face-grin-beam { + --fa: "\f582"; + --fa--fa: "\f582\f582"; } + +.fa-grin-beam { + --fa: "\f582"; + --fa--fa: "\f582\f582"; } + +.fa-object-ungroup { + --fa: "\f248"; + --fa--fa: "\f248\f248"; } + +.fa-poop { + --fa: "\f619"; + --fa--fa: "\f619\f619"; } + +.fa-location-pin { + --fa: "\f041"; + --fa--fa: "\f041\f041"; } + +.fa-map-marker { + --fa: "\f041"; + --fa--fa: "\f041\f041"; } + +.fa-kaaba { + --fa: "\f66b"; + --fa--fa: "\f66b\f66b"; } + +.fa-toilet-paper { + --fa: "\f71e"; + --fa--fa: "\f71e\f71e"; } + +.fa-helmet-safety { + --fa: "\f807"; + --fa--fa: "\f807\f807"; } + +.fa-hard-hat { + --fa: "\f807"; + --fa--fa: "\f807\f807"; } + +.fa-hat-hard { + --fa: "\f807"; + --fa--fa: "\f807\f807"; } + +.fa-eject { + --fa: "\f052"; + --fa--fa: "\f052\f052"; } + +.fa-circle-right { + --fa: "\f35a"; + --fa--fa: "\f35a\f35a"; } + +.fa-arrow-alt-circle-right { + --fa: "\f35a"; + --fa--fa: "\f35a\f35a"; } + +.fa-plane-circle-check { + --fa: "\e555"; + --fa--fa: "\e555\e555"; } + +.fa-face-rolling-eyes { + --fa: "\f5a5"; + --fa--fa: "\f5a5\f5a5"; } + +.fa-meh-rolling-eyes { + --fa: "\f5a5"; + --fa--fa: "\f5a5\f5a5"; } + +.fa-object-group { + --fa: "\f247"; + --fa--fa: "\f247\f247"; } + +.fa-chart-line { + --fa: "\f201"; + --fa--fa: "\f201\f201"; } + +.fa-line-chart { + --fa: "\f201"; + --fa--fa: "\f201\f201"; } + +.fa-mask-ventilator { + --fa: "\e524"; + --fa--fa: "\e524\e524"; } + +.fa-arrow-right { + --fa: "\f061"; + --fa--fa: "\f061\f061"; } + +.fa-signs-post { + --fa: "\f277"; + --fa--fa: "\f277\f277"; } + +.fa-map-signs { + --fa: "\f277"; + --fa--fa: "\f277\f277"; } + +.fa-cash-register { + --fa: "\f788"; + --fa--fa: "\f788\f788"; } + +.fa-person-circle-question { + --fa: "\e542"; + --fa--fa: "\e542\e542"; } + +.fa-h { + --fa: "\48"; + --fa--fa: "\48\48"; } + +.fa-tarp { + --fa: "\e57b"; + --fa--fa: "\e57b\e57b"; } + +.fa-screwdriver-wrench { + --fa: "\f7d9"; + --fa--fa: "\f7d9\f7d9"; } + +.fa-tools { + --fa: "\f7d9"; + --fa--fa: "\f7d9\f7d9"; } + +.fa-arrows-to-eye { + --fa: "\e4bf"; + --fa--fa: "\e4bf\e4bf"; } + +.fa-plug-circle-bolt { + --fa: "\e55b"; + --fa--fa: "\e55b\e55b"; } + +.fa-heart { + --fa: "\f004"; + --fa--fa: "\f004\f004"; } + +.fa-mars-and-venus { + --fa: "\f224"; + --fa--fa: "\f224\f224"; } + +.fa-house-user { + --fa: "\e1b0"; + --fa--fa: "\e1b0\e1b0"; } + +.fa-home-user { + --fa: "\e1b0"; + --fa--fa: "\e1b0\e1b0"; } + +.fa-dumpster-fire { + --fa: "\f794"; + --fa--fa: "\f794\f794"; } + +.fa-house-crack { + --fa: "\e3b1"; + --fa--fa: "\e3b1\e3b1"; } + +.fa-martini-glass-citrus { + --fa: "\f561"; + --fa--fa: "\f561\f561"; } + +.fa-cocktail { + --fa: "\f561"; + --fa--fa: "\f561\f561"; } + +.fa-face-surprise { + --fa: "\f5c2"; + --fa--fa: "\f5c2\f5c2"; } + +.fa-surprise { + --fa: "\f5c2"; + --fa--fa: "\f5c2\f5c2"; } + +.fa-bottle-water { + --fa: "\e4c5"; + --fa--fa: "\e4c5\e4c5"; } + +.fa-circle-pause { + --fa: "\f28b"; + --fa--fa: "\f28b\f28b"; } + +.fa-pause-circle { + --fa: "\f28b"; + --fa--fa: "\f28b\f28b"; } + +.fa-toilet-paper-slash { + --fa: "\e072"; + --fa--fa: "\e072\e072"; } + +.fa-apple-whole { + --fa: "\f5d1"; + --fa--fa: "\f5d1\f5d1"; } + +.fa-apple-alt { + --fa: "\f5d1"; + --fa--fa: "\f5d1\f5d1"; } + +.fa-kitchen-set { + --fa: "\e51a"; + --fa--fa: "\e51a\e51a"; } + +.fa-r { + --fa: "\52"; + --fa--fa: "\52\52"; } + +.fa-temperature-quarter { + --fa: "\f2ca"; + --fa--fa: "\f2ca\f2ca"; } + +.fa-temperature-1 { + --fa: "\f2ca"; + --fa--fa: "\f2ca\f2ca"; } + +.fa-thermometer-1 { + --fa: "\f2ca"; + --fa--fa: "\f2ca\f2ca"; } + +.fa-thermometer-quarter { + --fa: "\f2ca"; + --fa--fa: "\f2ca\f2ca"; } + +.fa-cube { + --fa: "\f1b2"; + --fa--fa: "\f1b2\f1b2"; } + +.fa-bitcoin-sign { + --fa: "\e0b4"; + --fa--fa: "\e0b4\e0b4"; } + +.fa-shield-dog { + --fa: "\e573"; + --fa--fa: "\e573\e573"; } + +.fa-solar-panel { + --fa: "\f5ba"; + --fa--fa: "\f5ba\f5ba"; } + +.fa-lock-open { + --fa: "\f3c1"; + --fa--fa: "\f3c1\f3c1"; } + +.fa-elevator { + --fa: "\e16d"; + --fa--fa: "\e16d\e16d"; } + +.fa-money-bill-transfer { + --fa: "\e528"; + --fa--fa: "\e528\e528"; } + +.fa-money-bill-trend-up { + --fa: "\e529"; + --fa--fa: "\e529\e529"; } + +.fa-house-flood-water-circle-arrow-right { + --fa: "\e50f"; + --fa--fa: "\e50f\e50f"; } + +.fa-square-poll-horizontal { + --fa: "\f682"; + --fa--fa: "\f682\f682"; } + +.fa-poll-h { + --fa: "\f682"; + --fa--fa: "\f682\f682"; } + +.fa-circle { + --fa: "\f111"; + --fa--fa: "\f111\f111"; } + +.fa-backward-fast { + --fa: "\f049"; + --fa--fa: "\f049\f049"; } + +.fa-fast-backward { + --fa: "\f049"; + --fa--fa: "\f049\f049"; } + +.fa-recycle { + --fa: "\f1b8"; + --fa--fa: "\f1b8\f1b8"; } + +.fa-user-astronaut { + --fa: "\f4fb"; + --fa--fa: "\f4fb\f4fb"; } + +.fa-plane-slash { + --fa: "\e069"; + --fa--fa: "\e069\e069"; } + +.fa-trademark { + --fa: "\f25c"; + --fa--fa: "\f25c\f25c"; } + +.fa-basketball { + --fa: "\f434"; + --fa--fa: "\f434\f434"; } + +.fa-basketball-ball { + --fa: "\f434"; + --fa--fa: "\f434\f434"; } + +.fa-satellite-dish { + --fa: "\f7c0"; + --fa--fa: "\f7c0\f7c0"; } + +.fa-circle-up { + --fa: "\f35b"; + --fa--fa: "\f35b\f35b"; } + +.fa-arrow-alt-circle-up { + --fa: "\f35b"; + --fa--fa: "\f35b\f35b"; } + +.fa-mobile-screen-button { + --fa: "\f3cd"; + --fa--fa: "\f3cd\f3cd"; } + +.fa-mobile-alt { + --fa: "\f3cd"; + --fa--fa: "\f3cd\f3cd"; } + +.fa-volume-high { + --fa: "\f028"; + --fa--fa: "\f028\f028"; } + +.fa-volume-up { + --fa: "\f028"; + --fa--fa: "\f028\f028"; } + +.fa-users-rays { + --fa: "\e593"; + --fa--fa: "\e593\e593"; } + +.fa-wallet { + --fa: "\f555"; + --fa--fa: "\f555\f555"; } + +.fa-clipboard-check { + --fa: "\f46c"; + --fa--fa: "\f46c\f46c"; } + +.fa-file-audio { + --fa: "\f1c7"; + --fa--fa: "\f1c7\f1c7"; } + +.fa-burger { + --fa: "\f805"; + --fa--fa: "\f805\f805"; } + +.fa-hamburger { + --fa: "\f805"; + --fa--fa: "\f805\f805"; } + +.fa-wrench { + --fa: "\f0ad"; + --fa--fa: "\f0ad\f0ad"; } + +.fa-bugs { + --fa: "\e4d0"; + --fa--fa: "\e4d0\e4d0"; } + +.fa-rupee-sign { + --fa: "\f156"; + --fa--fa: "\f156\f156"; } + +.fa-rupee { + --fa: "\f156"; + --fa--fa: "\f156\f156"; } + +.fa-file-image { + --fa: "\f1c5"; + --fa--fa: "\f1c5\f1c5"; } + +.fa-circle-question { + --fa: "\f059"; + --fa--fa: "\f059\f059"; } + +.fa-question-circle { + --fa: "\f059"; + --fa--fa: "\f059\f059"; } + +.fa-plane-departure { + --fa: "\f5b0"; + --fa--fa: "\f5b0\f5b0"; } + +.fa-handshake-slash { + --fa: "\e060"; + --fa--fa: "\e060\e060"; } + +.fa-book-bookmark { + --fa: "\e0bb"; + --fa--fa: "\e0bb\e0bb"; } + +.fa-code-branch { + --fa: "\f126"; + --fa--fa: "\f126\f126"; } + +.fa-hat-cowboy { + --fa: "\f8c0"; + --fa--fa: "\f8c0\f8c0"; } + +.fa-bridge { + --fa: "\e4c8"; + --fa--fa: "\e4c8\e4c8"; } + +.fa-phone-flip { + --fa: "\f879"; + --fa--fa: "\f879\f879"; } + +.fa-phone-alt { + --fa: "\f879"; + --fa--fa: "\f879\f879"; } + +.fa-truck-front { + --fa: "\e2b7"; + --fa--fa: "\e2b7\e2b7"; } + +.fa-cat { + --fa: "\f6be"; + --fa--fa: "\f6be\f6be"; } + +.fa-anchor-circle-exclamation { + --fa: "\e4ab"; + --fa--fa: "\e4ab\e4ab"; } + +.fa-truck-field { + --fa: "\e58d"; + --fa--fa: "\e58d\e58d"; } + +.fa-route { + --fa: "\f4d7"; + --fa--fa: "\f4d7\f4d7"; } + +.fa-clipboard-question { + --fa: "\e4e3"; + --fa--fa: "\e4e3\e4e3"; } + +.fa-panorama { + --fa: "\e209"; + --fa--fa: "\e209\e209"; } + +.fa-comment-medical { + --fa: "\f7f5"; + --fa--fa: "\f7f5\f7f5"; } + +.fa-teeth-open { + --fa: "\f62f"; + --fa--fa: "\f62f\f62f"; } + +.fa-file-circle-minus { + --fa: "\e4ed"; + --fa--fa: "\e4ed\e4ed"; } + +.fa-tags { + --fa: "\f02c"; + --fa--fa: "\f02c\f02c"; } + +.fa-wine-glass { + --fa: "\f4e3"; + --fa--fa: "\f4e3\f4e3"; } + +.fa-forward-fast { + --fa: "\f050"; + --fa--fa: "\f050\f050"; } + +.fa-fast-forward { + --fa: "\f050"; + --fa--fa: "\f050\f050"; } + +.fa-face-meh-blank { + --fa: "\f5a4"; + --fa--fa: "\f5a4\f5a4"; } + +.fa-meh-blank { + --fa: "\f5a4"; + --fa--fa: "\f5a4\f5a4"; } + +.fa-square-parking { + --fa: "\f540"; + --fa--fa: "\f540\f540"; } + +.fa-parking { + --fa: "\f540"; + --fa--fa: "\f540\f540"; } + +.fa-house-signal { + --fa: "\e012"; + --fa--fa: "\e012\e012"; } + +.fa-bars-progress { + --fa: "\f828"; + --fa--fa: "\f828\f828"; } + +.fa-tasks-alt { + --fa: "\f828"; + --fa--fa: "\f828\f828"; } + +.fa-faucet-drip { + --fa: "\e006"; + --fa--fa: "\e006\e006"; } + +.fa-cart-flatbed { + --fa: "\f474"; + --fa--fa: "\f474\f474"; } + +.fa-dolly-flatbed { + --fa: "\f474"; + --fa--fa: "\f474\f474"; } + +.fa-ban-smoking { + --fa: "\f54d"; + --fa--fa: "\f54d\f54d"; } + +.fa-smoking-ban { + --fa: "\f54d"; + --fa--fa: "\f54d\f54d"; } + +.fa-terminal { + --fa: "\f120"; + --fa--fa: "\f120\f120"; } + +.fa-mobile-button { + --fa: "\f10b"; + --fa--fa: "\f10b\f10b"; } + +.fa-house-medical-flag { + --fa: "\e514"; + --fa--fa: "\e514\e514"; } + +.fa-basket-shopping { + --fa: "\f291"; + --fa--fa: "\f291\f291"; } + +.fa-shopping-basket { + --fa: "\f291"; + --fa--fa: "\f291\f291"; } + +.fa-tape { + --fa: "\f4db"; + --fa--fa: "\f4db\f4db"; } + +.fa-bus-simple { + --fa: "\f55e"; + --fa--fa: "\f55e\f55e"; } + +.fa-bus-alt { + --fa: "\f55e"; + --fa--fa: "\f55e\f55e"; } + +.fa-eye { + --fa: "\f06e"; + --fa--fa: "\f06e\f06e"; } + +.fa-face-sad-cry { + --fa: "\f5b3"; + --fa--fa: "\f5b3\f5b3"; } + +.fa-sad-cry { + --fa: "\f5b3"; + --fa--fa: "\f5b3\f5b3"; } + +.fa-audio-description { + --fa: "\f29e"; + --fa--fa: "\f29e\f29e"; } + +.fa-person-military-to-person { + --fa: "\e54c"; + --fa--fa: "\e54c\e54c"; } + +.fa-file-shield { + --fa: "\e4f0"; + --fa--fa: "\e4f0\e4f0"; } + +.fa-user-slash { + --fa: "\f506"; + --fa--fa: "\f506\f506"; } + +.fa-pen { + --fa: "\f304"; + --fa--fa: "\f304\f304"; } + +.fa-tower-observation { + --fa: "\e586"; + --fa--fa: "\e586\e586"; } + +.fa-file-code { + --fa: "\f1c9"; + --fa--fa: "\f1c9\f1c9"; } + +.fa-signal { + --fa: "\f012"; + --fa--fa: "\f012\f012"; } + +.fa-signal-5 { + --fa: "\f012"; + --fa--fa: "\f012\f012"; } + +.fa-signal-perfect { + --fa: "\f012"; + --fa--fa: "\f012\f012"; } + +.fa-bus { + --fa: "\f207"; + --fa--fa: "\f207\f207"; } + +.fa-heart-circle-xmark { + --fa: "\e501"; + --fa--fa: "\e501\e501"; } + +.fa-house-chimney { + --fa: "\e3af"; + --fa--fa: "\e3af\e3af"; } + +.fa-home-lg { + --fa: "\e3af"; + --fa--fa: "\e3af\e3af"; } + +.fa-window-maximize { + --fa: "\f2d0"; + --fa--fa: "\f2d0\f2d0"; } + +.fa-face-frown { + --fa: "\f119"; + --fa--fa: "\f119\f119"; } + +.fa-frown { + --fa: "\f119"; + --fa--fa: "\f119\f119"; } + +.fa-prescription { + --fa: "\f5b1"; + --fa--fa: "\f5b1\f5b1"; } + +.fa-shop { + --fa: "\f54f"; + --fa--fa: "\f54f\f54f"; } + +.fa-store-alt { + --fa: "\f54f"; + --fa--fa: "\f54f\f54f"; } + +.fa-floppy-disk { + --fa: "\f0c7"; + --fa--fa: "\f0c7\f0c7"; } + +.fa-save { + --fa: "\f0c7"; + --fa--fa: "\f0c7\f0c7"; } + +.fa-vihara { + --fa: "\f6a7"; + --fa--fa: "\f6a7\f6a7"; } + +.fa-scale-unbalanced { + --fa: "\f515"; + --fa--fa: "\f515\f515"; } + +.fa-balance-scale-left { + --fa: "\f515"; + --fa--fa: "\f515\f515"; } + +.fa-sort-up { + --fa: "\f0de"; + --fa--fa: "\f0de\f0de"; } + +.fa-sort-asc { + --fa: "\f0de"; + --fa--fa: "\f0de\f0de"; } + +.fa-comment-dots { + --fa: "\f4ad"; + --fa--fa: "\f4ad\f4ad"; } + +.fa-commenting { + --fa: "\f4ad"; + --fa--fa: "\f4ad\f4ad"; } + +.fa-plant-wilt { + --fa: "\e5aa"; + --fa--fa: "\e5aa\e5aa"; } + +.fa-diamond { + --fa: "\f219"; + --fa--fa: "\f219\f219"; } + +.fa-face-grin-squint { + --fa: "\f585"; + --fa--fa: "\f585\f585"; } + +.fa-grin-squint { + --fa: "\f585"; + --fa--fa: "\f585\f585"; } + +.fa-hand-holding-dollar { + --fa: "\f4c0"; + --fa--fa: "\f4c0\f4c0"; } + +.fa-hand-holding-usd { + --fa: "\f4c0"; + --fa--fa: "\f4c0\f4c0"; } + +.fa-chart-diagram { + --fa: "\e695"; + --fa--fa: "\e695\e695"; } + +.fa-bacterium { + --fa: "\e05a"; + --fa--fa: "\e05a\e05a"; } + +.fa-hand-pointer { + --fa: "\f25a"; + --fa--fa: "\f25a\f25a"; } + +.fa-drum-steelpan { + --fa: "\f56a"; + --fa--fa: "\f56a\f56a"; } + +.fa-hand-scissors { + --fa: "\f257"; + --fa--fa: "\f257\f257"; } + +.fa-hands-praying { + --fa: "\f684"; + --fa--fa: "\f684\f684"; } + +.fa-praying-hands { + --fa: "\f684"; + --fa--fa: "\f684\f684"; } + +.fa-arrow-rotate-right { + --fa: "\f01e"; + --fa--fa: "\f01e\f01e"; } + +.fa-arrow-right-rotate { + --fa: "\f01e"; + --fa--fa: "\f01e\f01e"; } + +.fa-arrow-rotate-forward { + --fa: "\f01e"; + --fa--fa: "\f01e\f01e"; } + +.fa-redo { + --fa: "\f01e"; + --fa--fa: "\f01e\f01e"; } + +.fa-biohazard { + --fa: "\f780"; + --fa--fa: "\f780\f780"; } + +.fa-location-crosshairs { + --fa: "\f601"; + --fa--fa: "\f601\f601"; } + +.fa-location { + --fa: "\f601"; + --fa--fa: "\f601\f601"; } + +.fa-mars-double { + --fa: "\f227"; + --fa--fa: "\f227\f227"; } + +.fa-child-dress { + --fa: "\e59c"; + --fa--fa: "\e59c\e59c"; } + +.fa-users-between-lines { + --fa: "\e591"; + --fa--fa: "\e591\e591"; } + +.fa-lungs-virus { + --fa: "\e067"; + --fa--fa: "\e067\e067"; } + +.fa-face-grin-tears { + --fa: "\f588"; + --fa--fa: "\f588\f588"; } + +.fa-grin-tears { + --fa: "\f588"; + --fa--fa: "\f588\f588"; } + +.fa-phone { + --fa: "\f095"; + --fa--fa: "\f095\f095"; } + +.fa-calendar-xmark { + --fa: "\f273"; + --fa--fa: "\f273\f273"; } + +.fa-calendar-times { + --fa: "\f273"; + --fa--fa: "\f273\f273"; } + +.fa-child-reaching { + --fa: "\e59d"; + --fa--fa: "\e59d\e59d"; } + +.fa-head-side-virus { + --fa: "\e064"; + --fa--fa: "\e064\e064"; } + +.fa-user-gear { + --fa: "\f4fe"; + --fa--fa: "\f4fe\f4fe"; } + +.fa-user-cog { + --fa: "\f4fe"; + --fa--fa: "\f4fe\f4fe"; } + +.fa-arrow-up-1-9 { + --fa: "\f163"; + --fa--fa: "\f163\f163"; } + +.fa-sort-numeric-up { + --fa: "\f163"; + --fa--fa: "\f163\f163"; } + +.fa-door-closed { + --fa: "\f52a"; + --fa--fa: "\f52a\f52a"; } + +.fa-shield-virus { + --fa: "\e06c"; + --fa--fa: "\e06c\e06c"; } + +.fa-dice-six { + --fa: "\f526"; + --fa--fa: "\f526\f526"; } + +.fa-mosquito-net { + --fa: "\e52c"; + --fa--fa: "\e52c\e52c"; } + +.fa-file-fragment { + --fa: "\e697"; + --fa--fa: "\e697\e697"; } + +.fa-bridge-water { + --fa: "\e4ce"; + --fa--fa: "\e4ce\e4ce"; } + +.fa-person-booth { + --fa: "\f756"; + --fa--fa: "\f756\f756"; } + +.fa-text-width { + --fa: "\f035"; + --fa--fa: "\f035\f035"; } + +.fa-hat-wizard { + --fa: "\f6e8"; + --fa--fa: "\f6e8\f6e8"; } + +.fa-pen-fancy { + --fa: "\f5ac"; + --fa--fa: "\f5ac\f5ac"; } + +.fa-person-digging { + --fa: "\f85e"; + --fa--fa: "\f85e\f85e"; } + +.fa-digging { + --fa: "\f85e"; + --fa--fa: "\f85e\f85e"; } + +.fa-trash { + --fa: "\f1f8"; + --fa--fa: "\f1f8\f1f8"; } + +.fa-gauge-simple { + --fa: "\f629"; + --fa--fa: "\f629\f629"; } + +.fa-gauge-simple-med { + --fa: "\f629"; + --fa--fa: "\f629\f629"; } + +.fa-tachometer-average { + --fa: "\f629"; + --fa--fa: "\f629\f629"; } + +.fa-book-medical { + --fa: "\f7e6"; + --fa--fa: "\f7e6\f7e6"; } + +.fa-poo { + --fa: "\f2fe"; + --fa--fa: "\f2fe\f2fe"; } + +.fa-quote-right { + --fa: "\f10e"; + --fa--fa: "\f10e\f10e"; } + +.fa-quote-right-alt { + --fa: "\f10e"; + --fa--fa: "\f10e\f10e"; } + +.fa-shirt { + --fa: "\f553"; + --fa--fa: "\f553\f553"; } + +.fa-t-shirt { + --fa: "\f553"; + --fa--fa: "\f553\f553"; } + +.fa-tshirt { + --fa: "\f553"; + --fa--fa: "\f553\f553"; } + +.fa-cubes { + --fa: "\f1b3"; + --fa--fa: "\f1b3\f1b3"; } + +.fa-divide { + --fa: "\f529"; + --fa--fa: "\f529\f529"; } + +.fa-tenge-sign { + --fa: "\f7d7"; + --fa--fa: "\f7d7\f7d7"; } + +.fa-tenge { + --fa: "\f7d7"; + --fa--fa: "\f7d7\f7d7"; } + +.fa-headphones { + --fa: "\f025"; + --fa--fa: "\f025\f025"; } + +.fa-hands-holding { + --fa: "\f4c2"; + --fa--fa: "\f4c2\f4c2"; } + +.fa-hands-clapping { + --fa: "\e1a8"; + --fa--fa: "\e1a8\e1a8"; } + +.fa-republican { + --fa: "\f75e"; + --fa--fa: "\f75e\f75e"; } + +.fa-arrow-left { + --fa: "\f060"; + --fa--fa: "\f060\f060"; } + +.fa-person-circle-xmark { + --fa: "\e543"; + --fa--fa: "\e543\e543"; } + +.fa-ruler { + --fa: "\f545"; + --fa--fa: "\f545\f545"; } + +.fa-align-left { + --fa: "\f036"; + --fa--fa: "\f036\f036"; } + +.fa-dice-d6 { + --fa: "\f6d1"; + --fa--fa: "\f6d1\f6d1"; } + +.fa-restroom { + --fa: "\f7bd"; + --fa--fa: "\f7bd\f7bd"; } + +.fa-j { + --fa: "\4a"; + --fa--fa: "\4a\4a"; } + +.fa-users-viewfinder { + --fa: "\e595"; + --fa--fa: "\e595\e595"; } + +.fa-file-video { + --fa: "\f1c8"; + --fa--fa: "\f1c8\f1c8"; } + +.fa-up-right-from-square { + --fa: "\f35d"; + --fa--fa: "\f35d\f35d"; } + +.fa-external-link-alt { + --fa: "\f35d"; + --fa--fa: "\f35d\f35d"; } + +.fa-table-cells { + --fa: "\f00a"; + --fa--fa: "\f00a\f00a"; } + +.fa-th { + --fa: "\f00a"; + --fa--fa: "\f00a\f00a"; } + +.fa-file-pdf { + --fa: "\f1c1"; + --fa--fa: "\f1c1\f1c1"; } + +.fa-book-bible { + --fa: "\f647"; + --fa--fa: "\f647\f647"; } + +.fa-bible { + --fa: "\f647"; + --fa--fa: "\f647\f647"; } + +.fa-o { + --fa: "\4f"; + --fa--fa: "\4f\4f"; } + +.fa-suitcase-medical { + --fa: "\f0fa"; + --fa--fa: "\f0fa\f0fa"; } + +.fa-medkit { + --fa: "\f0fa"; + --fa--fa: "\f0fa\f0fa"; } + +.fa-user-secret { + --fa: "\f21b"; + --fa--fa: "\f21b\f21b"; } + +.fa-otter { + --fa: "\f700"; + --fa--fa: "\f700\f700"; } + +.fa-person-dress { + --fa: "\f182"; + --fa--fa: "\f182\f182"; } + +.fa-female { + --fa: "\f182"; + --fa--fa: "\f182\f182"; } + +.fa-comment-dollar { + --fa: "\f651"; + --fa--fa: "\f651\f651"; } + +.fa-business-time { + --fa: "\f64a"; + --fa--fa: "\f64a\f64a"; } + +.fa-briefcase-clock { + --fa: "\f64a"; + --fa--fa: "\f64a\f64a"; } + +.fa-table-cells-large { + --fa: "\f009"; + --fa--fa: "\f009\f009"; } + +.fa-th-large { + --fa: "\f009"; + --fa--fa: "\f009\f009"; } + +.fa-book-tanakh { + --fa: "\f827"; + --fa--fa: "\f827\f827"; } + +.fa-tanakh { + --fa: "\f827"; + --fa--fa: "\f827\f827"; } + +.fa-phone-volume { + --fa: "\f2a0"; + --fa--fa: "\f2a0\f2a0"; } + +.fa-volume-control-phone { + --fa: "\f2a0"; + --fa--fa: "\f2a0\f2a0"; } + +.fa-hat-cowboy-side { + --fa: "\f8c1"; + --fa--fa: "\f8c1\f8c1"; } + +.fa-clipboard-user { + --fa: "\f7f3"; + --fa--fa: "\f7f3\f7f3"; } + +.fa-child { + --fa: "\f1ae"; + --fa--fa: "\f1ae\f1ae"; } + +.fa-lira-sign { + --fa: "\f195"; + --fa--fa: "\f195\f195"; } + +.fa-satellite { + --fa: "\f7bf"; + --fa--fa: "\f7bf\f7bf"; } + +.fa-plane-lock { + --fa: "\e558"; + --fa--fa: "\e558\e558"; } + +.fa-tag { + --fa: "\f02b"; + --fa--fa: "\f02b\f02b"; } + +.fa-comment { + --fa: "\f075"; + --fa--fa: "\f075\f075"; } + +.fa-cake-candles { + --fa: "\f1fd"; + --fa--fa: "\f1fd\f1fd"; } + +.fa-birthday-cake { + --fa: "\f1fd"; + --fa--fa: "\f1fd\f1fd"; } + +.fa-cake { + --fa: "\f1fd"; + --fa--fa: "\f1fd\f1fd"; } + +.fa-envelope { + --fa: "\f0e0"; + --fa--fa: "\f0e0\f0e0"; } + +.fa-angles-up { + --fa: "\f102"; + --fa--fa: "\f102\f102"; } + +.fa-angle-double-up { + --fa: "\f102"; + --fa--fa: "\f102\f102"; } + +.fa-paperclip { + --fa: "\f0c6"; + --fa--fa: "\f0c6\f0c6"; } + +.fa-arrow-right-to-city { + --fa: "\e4b3"; + --fa--fa: "\e4b3\e4b3"; } + +.fa-ribbon { + --fa: "\f4d6"; + --fa--fa: "\f4d6\f4d6"; } + +.fa-lungs { + --fa: "\f604"; + --fa--fa: "\f604\f604"; } + +.fa-arrow-up-9-1 { + --fa: "\f887"; + --fa--fa: "\f887\f887"; } + +.fa-sort-numeric-up-alt { + --fa: "\f887"; + --fa--fa: "\f887\f887"; } + +.fa-litecoin-sign { + --fa: "\e1d3"; + --fa--fa: "\e1d3\e1d3"; } + +.fa-border-none { + --fa: "\f850"; + --fa--fa: "\f850\f850"; } + +.fa-circle-nodes { + --fa: "\e4e2"; + --fa--fa: "\e4e2\e4e2"; } + +.fa-parachute-box { + --fa: "\f4cd"; + --fa--fa: "\f4cd\f4cd"; } + +.fa-indent { + --fa: "\f03c"; + --fa--fa: "\f03c\f03c"; } + +.fa-truck-field-un { + --fa: "\e58e"; + --fa--fa: "\e58e\e58e"; } + +.fa-hourglass { + --fa: "\f254"; + --fa--fa: "\f254\f254"; } + +.fa-hourglass-empty { + --fa: "\f254"; + --fa--fa: "\f254\f254"; } + +.fa-mountain { + --fa: "\f6fc"; + --fa--fa: "\f6fc\f6fc"; } + +.fa-user-doctor { + --fa: "\f0f0"; + --fa--fa: "\f0f0\f0f0"; } + +.fa-user-md { + --fa: "\f0f0"; + --fa--fa: "\f0f0\f0f0"; } + +.fa-circle-info { + --fa: "\f05a"; + --fa--fa: "\f05a\f05a"; } + +.fa-info-circle { + --fa: "\f05a"; + --fa--fa: "\f05a\f05a"; } + +.fa-cloud-meatball { + --fa: "\f73b"; + --fa--fa: "\f73b\f73b"; } + +.fa-camera { + --fa: "\f030"; + --fa--fa: "\f030\f030"; } + +.fa-camera-alt { + --fa: "\f030"; + --fa--fa: "\f030\f030"; } + +.fa-square-virus { + --fa: "\e578"; + --fa--fa: "\e578\e578"; } + +.fa-meteor { + --fa: "\f753"; + --fa--fa: "\f753\f753"; } + +.fa-car-on { + --fa: "\e4dd"; + --fa--fa: "\e4dd\e4dd"; } + +.fa-sleigh { + --fa: "\f7cc"; + --fa--fa: "\f7cc\f7cc"; } + +.fa-arrow-down-1-9 { + --fa: "\f162"; + --fa--fa: "\f162\f162"; } + +.fa-sort-numeric-asc { + --fa: "\f162"; + --fa--fa: "\f162\f162"; } + +.fa-sort-numeric-down { + --fa: "\f162"; + --fa--fa: "\f162\f162"; } + +.fa-hand-holding-droplet { + --fa: "\f4c1"; + --fa--fa: "\f4c1\f4c1"; } + +.fa-hand-holding-water { + --fa: "\f4c1"; + --fa--fa: "\f4c1\f4c1"; } + +.fa-water { + --fa: "\f773"; + --fa--fa: "\f773\f773"; } + +.fa-calendar-check { + --fa: "\f274"; + --fa--fa: "\f274\f274"; } + +.fa-braille { + --fa: "\f2a1"; + --fa--fa: "\f2a1\f2a1"; } + +.fa-prescription-bottle-medical { + --fa: "\f486"; + --fa--fa: "\f486\f486"; } + +.fa-prescription-bottle-alt { + --fa: "\f486"; + --fa--fa: "\f486\f486"; } + +.fa-landmark { + --fa: "\f66f"; + --fa--fa: "\f66f\f66f"; } + +.fa-truck { + --fa: "\f0d1"; + --fa--fa: "\f0d1\f0d1"; } + +.fa-crosshairs { + --fa: "\f05b"; + --fa--fa: "\f05b\f05b"; } + +.fa-person-cane { + --fa: "\e53c"; + --fa--fa: "\e53c\e53c"; } + +.fa-tent { + --fa: "\e57d"; + --fa--fa: "\e57d\e57d"; } + +.fa-vest-patches { + --fa: "\e086"; + --fa--fa: "\e086\e086"; } + +.fa-check-double { + --fa: "\f560"; + --fa--fa: "\f560\f560"; } + +.fa-arrow-down-a-z { + --fa: "\f15d"; + --fa--fa: "\f15d\f15d"; } + +.fa-sort-alpha-asc { + --fa: "\f15d"; + --fa--fa: "\f15d\f15d"; } + +.fa-sort-alpha-down { + --fa: "\f15d"; + --fa--fa: "\f15d\f15d"; } + +.fa-money-bill-wheat { + --fa: "\e52a"; + --fa--fa: "\e52a\e52a"; } + +.fa-cookie { + --fa: "\f563"; + --fa--fa: "\f563\f563"; } + +.fa-arrow-rotate-left { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-arrow-left-rotate { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-arrow-rotate-back { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-arrow-rotate-backward { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-undo { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-hard-drive { + --fa: "\f0a0"; + --fa--fa: "\f0a0\f0a0"; } + +.fa-hdd { + --fa: "\f0a0"; + --fa--fa: "\f0a0\f0a0"; } + +.fa-face-grin-squint-tears { + --fa: "\f586"; + --fa--fa: "\f586\f586"; } + +.fa-grin-squint-tears { + --fa: "\f586"; + --fa--fa: "\f586\f586"; } + +.fa-dumbbell { + --fa: "\f44b"; + --fa--fa: "\f44b\f44b"; } + +.fa-rectangle-list { + --fa: "\f022"; + --fa--fa: "\f022\f022"; } + +.fa-list-alt { + --fa: "\f022"; + --fa--fa: "\f022\f022"; } + +.fa-tarp-droplet { + --fa: "\e57c"; + --fa--fa: "\e57c\e57c"; } + +.fa-house-medical-circle-check { + --fa: "\e511"; + --fa--fa: "\e511\e511"; } + +.fa-person-skiing-nordic { + --fa: "\f7ca"; + --fa--fa: "\f7ca\f7ca"; } + +.fa-skiing-nordic { + --fa: "\f7ca"; + --fa--fa: "\f7ca\f7ca"; } + +.fa-calendar-plus { + --fa: "\f271"; + --fa--fa: "\f271\f271"; } + +.fa-plane-arrival { + --fa: "\f5af"; + --fa--fa: "\f5af\f5af"; } + +.fa-circle-left { + --fa: "\f359"; + --fa--fa: "\f359\f359"; } + +.fa-arrow-alt-circle-left { + --fa: "\f359"; + --fa--fa: "\f359\f359"; } + +.fa-train-subway { + --fa: "\f239"; + --fa--fa: "\f239\f239"; } + +.fa-subway { + --fa: "\f239"; + --fa--fa: "\f239\f239"; } + +.fa-chart-gantt { + --fa: "\e0e4"; + --fa--fa: "\e0e4\e0e4"; } + +.fa-indian-rupee-sign { + --fa: "\e1bc"; + --fa--fa: "\e1bc\e1bc"; } + +.fa-indian-rupee { + --fa: "\e1bc"; + --fa--fa: "\e1bc\e1bc"; } + +.fa-inr { + --fa: "\e1bc"; + --fa--fa: "\e1bc\e1bc"; } + +.fa-crop-simple { + --fa: "\f565"; + --fa--fa: "\f565\f565"; } + +.fa-crop-alt { + --fa: "\f565"; + --fa--fa: "\f565\f565"; } + +.fa-money-bill-1 { + --fa: "\f3d1"; + --fa--fa: "\f3d1\f3d1"; } + +.fa-money-bill-alt { + --fa: "\f3d1"; + --fa--fa: "\f3d1\f3d1"; } + +.fa-left-long { + --fa: "\f30a"; + --fa--fa: "\f30a\f30a"; } + +.fa-long-arrow-alt-left { + --fa: "\f30a"; + --fa--fa: "\f30a\f30a"; } + +.fa-dna { + --fa: "\f471"; + --fa--fa: "\f471\f471"; } + +.fa-virus-slash { + --fa: "\e075"; + --fa--fa: "\e075\e075"; } + +.fa-minus { + --fa: "\f068"; + --fa--fa: "\f068\f068"; } + +.fa-subtract { + --fa: "\f068"; + --fa--fa: "\f068\f068"; } + +.fa-chess { + --fa: "\f439"; + --fa--fa: "\f439\f439"; } + +.fa-arrow-left-long { + --fa: "\f177"; + --fa--fa: "\f177\f177"; } + +.fa-long-arrow-left { + --fa: "\f177"; + --fa--fa: "\f177\f177"; } + +.fa-plug-circle-check { + --fa: "\e55c"; + --fa--fa: "\e55c\e55c"; } + +.fa-street-view { + --fa: "\f21d"; + --fa--fa: "\f21d\f21d"; } + +.fa-franc-sign { + --fa: "\e18f"; + --fa--fa: "\e18f\e18f"; } + +.fa-volume-off { + --fa: "\f026"; + --fa--fa: "\f026\f026"; } + +.fa-hands-asl-interpreting { + --fa: "\f2a3"; + --fa--fa: "\f2a3\f2a3"; } + +.fa-american-sign-language-interpreting { + --fa: "\f2a3"; + --fa--fa: "\f2a3\f2a3"; } + +.fa-asl-interpreting { + --fa: "\f2a3"; + --fa--fa: "\f2a3\f2a3"; } + +.fa-hands-american-sign-language-interpreting { + --fa: "\f2a3"; + --fa--fa: "\f2a3\f2a3"; } + +.fa-gear { + --fa: "\f013"; + --fa--fa: "\f013\f013"; } + +.fa-cog { + --fa: "\f013"; + --fa--fa: "\f013\f013"; } + +.fa-droplet-slash { + --fa: "\f5c7"; + --fa--fa: "\f5c7\f5c7"; } + +.fa-tint-slash { + --fa: "\f5c7"; + --fa--fa: "\f5c7\f5c7"; } + +.fa-mosque { + --fa: "\f678"; + --fa--fa: "\f678\f678"; } + +.fa-mosquito { + --fa: "\e52b"; + --fa--fa: "\e52b\e52b"; } + +.fa-star-of-david { + --fa: "\f69a"; + --fa--fa: "\f69a\f69a"; } + +.fa-person-military-rifle { + --fa: "\e54b"; + --fa--fa: "\e54b\e54b"; } + +.fa-cart-shopping { + --fa: "\f07a"; + --fa--fa: "\f07a\f07a"; } + +.fa-shopping-cart { + --fa: "\f07a"; + --fa--fa: "\f07a\f07a"; } + +.fa-vials { + --fa: "\f493"; + --fa--fa: "\f493\f493"; } + +.fa-plug-circle-plus { + --fa: "\e55f"; + --fa--fa: "\e55f\e55f"; } + +.fa-place-of-worship { + --fa: "\f67f"; + --fa--fa: "\f67f\f67f"; } + +.fa-grip-vertical { + --fa: "\f58e"; + --fa--fa: "\f58e\f58e"; } + +.fa-hexagon-nodes { + --fa: "\e699"; + --fa--fa: "\e699\e699"; } + +.fa-arrow-turn-up { + --fa: "\f148"; + --fa--fa: "\f148\f148"; } + +.fa-level-up { + --fa: "\f148"; + --fa--fa: "\f148\f148"; } + +.fa-u { + --fa: "\55"; + --fa--fa: "\55\55"; } + +.fa-square-root-variable { + --fa: "\f698"; + --fa--fa: "\f698\f698"; } + +.fa-square-root-alt { + --fa: "\f698"; + --fa--fa: "\f698\f698"; } + +.fa-clock { + --fa: "\f017"; + --fa--fa: "\f017\f017"; } + +.fa-clock-four { + --fa: "\f017"; + --fa--fa: "\f017\f017"; } + +.fa-backward-step { + --fa: "\f048"; + --fa--fa: "\f048\f048"; } + +.fa-step-backward { + --fa: "\f048"; + --fa--fa: "\f048\f048"; } + +.fa-pallet { + --fa: "\f482"; + --fa--fa: "\f482\f482"; } + +.fa-faucet { + --fa: "\e005"; + --fa--fa: "\e005\e005"; } + +.fa-baseball-bat-ball { + --fa: "\f432"; + --fa--fa: "\f432\f432"; } + +.fa-s { + --fa: "\53"; + --fa--fa: "\53\53"; } + +.fa-timeline { + --fa: "\e29c"; + --fa--fa: "\e29c\e29c"; } + +.fa-keyboard { + --fa: "\f11c"; + --fa--fa: "\f11c\f11c"; } + +.fa-caret-down { + --fa: "\f0d7"; + --fa--fa: "\f0d7\f0d7"; } + +.fa-house-chimney-medical { + --fa: "\f7f2"; + --fa--fa: "\f7f2\f7f2"; } + +.fa-clinic-medical { + --fa: "\f7f2"; + --fa--fa: "\f7f2\f7f2"; } + +.fa-temperature-three-quarters { + --fa: "\f2c8"; + --fa--fa: "\f2c8\f2c8"; } + +.fa-temperature-3 { + --fa: "\f2c8"; + --fa--fa: "\f2c8\f2c8"; } + +.fa-thermometer-3 { + --fa: "\f2c8"; + --fa--fa: "\f2c8\f2c8"; } + +.fa-thermometer-three-quarters { + --fa: "\f2c8"; + --fa--fa: "\f2c8\f2c8"; } + +.fa-mobile-screen { + --fa: "\f3cf"; + --fa--fa: "\f3cf\f3cf"; } + +.fa-mobile-android-alt { + --fa: "\f3cf"; + --fa--fa: "\f3cf\f3cf"; } + +.fa-plane-up { + --fa: "\e22d"; + --fa--fa: "\e22d\e22d"; } + +.fa-piggy-bank { + --fa: "\f4d3"; + --fa--fa: "\f4d3\f4d3"; } + +.fa-battery-half { + --fa: "\f242"; + --fa--fa: "\f242\f242"; } + +.fa-battery-3 { + --fa: "\f242"; + --fa--fa: "\f242\f242"; } + +.fa-mountain-city { + --fa: "\e52e"; + --fa--fa: "\e52e\e52e"; } + +.fa-coins { + --fa: "\f51e"; + --fa--fa: "\f51e\f51e"; } + +.fa-khanda { + --fa: "\f66d"; + --fa--fa: "\f66d\f66d"; } + +.fa-sliders { + --fa: "\f1de"; + --fa--fa: "\f1de\f1de"; } + +.fa-sliders-h { + --fa: "\f1de"; + --fa--fa: "\f1de\f1de"; } + +.fa-folder-tree { + --fa: "\f802"; + --fa--fa: "\f802\f802"; } + +.fa-network-wired { + --fa: "\f6ff"; + --fa--fa: "\f6ff\f6ff"; } + +.fa-map-pin { + --fa: "\f276"; + --fa--fa: "\f276\f276"; } + +.fa-hamsa { + --fa: "\f665"; + --fa--fa: "\f665\f665"; } + +.fa-cent-sign { + --fa: "\e3f5"; + --fa--fa: "\e3f5\e3f5"; } + +.fa-flask { + --fa: "\f0c3"; + --fa--fa: "\f0c3\f0c3"; } + +.fa-person-pregnant { + --fa: "\e31e"; + --fa--fa: "\e31e\e31e"; } + +.fa-wand-sparkles { + --fa: "\f72b"; + --fa--fa: "\f72b\f72b"; } + +.fa-ellipsis-vertical { + --fa: "\f142"; + --fa--fa: "\f142\f142"; } + +.fa-ellipsis-v { + --fa: "\f142"; + --fa--fa: "\f142\f142"; } + +.fa-ticket { + --fa: "\f145"; + --fa--fa: "\f145\f145"; } + +.fa-power-off { + --fa: "\f011"; + --fa--fa: "\f011\f011"; } + +.fa-right-long { + --fa: "\f30b"; + --fa--fa: "\f30b\f30b"; } + +.fa-long-arrow-alt-right { + --fa: "\f30b"; + --fa--fa: "\f30b\f30b"; } + +.fa-flag-usa { + --fa: "\f74d"; + --fa--fa: "\f74d\f74d"; } + +.fa-laptop-file { + --fa: "\e51d"; + --fa--fa: "\e51d\e51d"; } + +.fa-tty { + --fa: "\f1e4"; + --fa--fa: "\f1e4\f1e4"; } + +.fa-teletype { + --fa: "\f1e4"; + --fa--fa: "\f1e4\f1e4"; } + +.fa-diagram-next { + --fa: "\e476"; + --fa--fa: "\e476\e476"; } + +.fa-person-rifle { + --fa: "\e54e"; + --fa--fa: "\e54e\e54e"; } + +.fa-house-medical-circle-exclamation { + --fa: "\e512"; + --fa--fa: "\e512\e512"; } + +.fa-closed-captioning { + --fa: "\f20a"; + --fa--fa: "\f20a\f20a"; } + +.fa-person-hiking { + --fa: "\f6ec"; + --fa--fa: "\f6ec\f6ec"; } + +.fa-hiking { + --fa: "\f6ec"; + --fa--fa: "\f6ec\f6ec"; } + +.fa-venus-double { + --fa: "\f226"; + --fa--fa: "\f226\f226"; } + +.fa-images { + --fa: "\f302"; + --fa--fa: "\f302\f302"; } + +.fa-calculator { + --fa: "\f1ec"; + --fa--fa: "\f1ec\f1ec"; } + +.fa-people-pulling { + --fa: "\e535"; + --fa--fa: "\e535\e535"; } + +.fa-n { + --fa: "\4e"; + --fa--fa: "\4e\4e"; } + +.fa-cable-car { + --fa: "\f7da"; + --fa--fa: "\f7da\f7da"; } + +.fa-tram { + --fa: "\f7da"; + --fa--fa: "\f7da\f7da"; } + +.fa-cloud-rain { + --fa: "\f73d"; + --fa--fa: "\f73d\f73d"; } + +.fa-building-circle-xmark { + --fa: "\e4d4"; + --fa--fa: "\e4d4\e4d4"; } + +.fa-ship { + --fa: "\f21a"; + --fa--fa: "\f21a\f21a"; } + +.fa-arrows-down-to-line { + --fa: "\e4b8"; + --fa--fa: "\e4b8\e4b8"; } + +.fa-download { + --fa: "\f019"; + --fa--fa: "\f019\f019"; } + +.fa-face-grin { + --fa: "\f580"; + --fa--fa: "\f580\f580"; } + +.fa-grin { + --fa: "\f580"; + --fa--fa: "\f580\f580"; } + +.fa-delete-left { + --fa: "\f55a"; + --fa--fa: "\f55a\f55a"; } + +.fa-backspace { + --fa: "\f55a"; + --fa--fa: "\f55a\f55a"; } + +.fa-eye-dropper { + --fa: "\f1fb"; + --fa--fa: "\f1fb\f1fb"; } + +.fa-eye-dropper-empty { + --fa: "\f1fb"; + --fa--fa: "\f1fb\f1fb"; } + +.fa-eyedropper { + --fa: "\f1fb"; + --fa--fa: "\f1fb\f1fb"; } + +.fa-file-circle-check { + --fa: "\e5a0"; + --fa--fa: "\e5a0\e5a0"; } + +.fa-forward { + --fa: "\f04e"; + --fa--fa: "\f04e\f04e"; } + +.fa-mobile { + --fa: "\f3ce"; + --fa--fa: "\f3ce\f3ce"; } + +.fa-mobile-android { + --fa: "\f3ce"; + --fa--fa: "\f3ce\f3ce"; } + +.fa-mobile-phone { + --fa: "\f3ce"; + --fa--fa: "\f3ce\f3ce"; } + +.fa-face-meh { + --fa: "\f11a"; + --fa--fa: "\f11a\f11a"; } + +.fa-meh { + --fa: "\f11a"; + --fa--fa: "\f11a\f11a"; } + +.fa-align-center { + --fa: "\f037"; + --fa--fa: "\f037\f037"; } + +.fa-book-skull { + --fa: "\f6b7"; + --fa--fa: "\f6b7\f6b7"; } + +.fa-book-dead { + --fa: "\f6b7"; + --fa--fa: "\f6b7\f6b7"; } + +.fa-id-card { + --fa: "\f2c2"; + --fa--fa: "\f2c2\f2c2"; } + +.fa-drivers-license { + --fa: "\f2c2"; + --fa--fa: "\f2c2\f2c2"; } + +.fa-outdent { + --fa: "\f03b"; + --fa--fa: "\f03b\f03b"; } + +.fa-dedent { + --fa: "\f03b"; + --fa--fa: "\f03b\f03b"; } + +.fa-heart-circle-exclamation { + --fa: "\e4fe"; + --fa--fa: "\e4fe\e4fe"; } + +.fa-house { + --fa: "\f015"; + --fa--fa: "\f015\f015"; } + +.fa-home { + --fa: "\f015"; + --fa--fa: "\f015\f015"; } + +.fa-home-alt { + --fa: "\f015"; + --fa--fa: "\f015\f015"; } + +.fa-home-lg-alt { + --fa: "\f015"; + --fa--fa: "\f015\f015"; } + +.fa-calendar-week { + --fa: "\f784"; + --fa--fa: "\f784\f784"; } + +.fa-laptop-medical { + --fa: "\f812"; + --fa--fa: "\f812\f812"; } + +.fa-b { + --fa: "\42"; + --fa--fa: "\42\42"; } + +.fa-file-medical { + --fa: "\f477"; + --fa--fa: "\f477\f477"; } + +.fa-dice-one { + --fa: "\f525"; + --fa--fa: "\f525\f525"; } + +.fa-kiwi-bird { + --fa: "\f535"; + --fa--fa: "\f535\f535"; } + +.fa-arrow-right-arrow-left { + --fa: "\f0ec"; + --fa--fa: "\f0ec\f0ec"; } + +.fa-exchange { + --fa: "\f0ec"; + --fa--fa: "\f0ec\f0ec"; } + +.fa-rotate-right { + --fa: "\f2f9"; + --fa--fa: "\f2f9\f2f9"; } + +.fa-redo-alt { + --fa: "\f2f9"; + --fa--fa: "\f2f9\f2f9"; } + +.fa-rotate-forward { + --fa: "\f2f9"; + --fa--fa: "\f2f9\f2f9"; } + +.fa-utensils { + --fa: "\f2e7"; + --fa--fa: "\f2e7\f2e7"; } + +.fa-cutlery { + --fa: "\f2e7"; + --fa--fa: "\f2e7\f2e7"; } + +.fa-arrow-up-wide-short { + --fa: "\f161"; + --fa--fa: "\f161\f161"; } + +.fa-sort-amount-up { + --fa: "\f161"; + --fa--fa: "\f161\f161"; } + +.fa-mill-sign { + --fa: "\e1ed"; + --fa--fa: "\e1ed\e1ed"; } + +.fa-bowl-rice { + --fa: "\e2eb"; + --fa--fa: "\e2eb\e2eb"; } + +.fa-skull { + --fa: "\f54c"; + --fa--fa: "\f54c\f54c"; } + +.fa-tower-broadcast { + --fa: "\f519"; + --fa--fa: "\f519\f519"; } + +.fa-broadcast-tower { + --fa: "\f519"; + --fa--fa: "\f519\f519"; } + +.fa-truck-pickup { + --fa: "\f63c"; + --fa--fa: "\f63c\f63c"; } + +.fa-up-long { + --fa: "\f30c"; + --fa--fa: "\f30c\f30c"; } + +.fa-long-arrow-alt-up { + --fa: "\f30c"; + --fa--fa: "\f30c\f30c"; } + +.fa-stop { + --fa: "\f04d"; + --fa--fa: "\f04d\f04d"; } + +.fa-code-merge { + --fa: "\f387"; + --fa--fa: "\f387\f387"; } + +.fa-upload { + --fa: "\f093"; + --fa--fa: "\f093\f093"; } + +.fa-hurricane { + --fa: "\f751"; + --fa--fa: "\f751\f751"; } + +.fa-mound { + --fa: "\e52d"; + --fa--fa: "\e52d\e52d"; } + +.fa-toilet-portable { + --fa: "\e583"; + --fa--fa: "\e583\e583"; } + +.fa-compact-disc { + --fa: "\f51f"; + --fa--fa: "\f51f\f51f"; } + +.fa-file-arrow-down { + --fa: "\f56d"; + --fa--fa: "\f56d\f56d"; } + +.fa-file-download { + --fa: "\f56d"; + --fa--fa: "\f56d\f56d"; } + +.fa-caravan { + --fa: "\f8ff"; + --fa--fa: "\f8ff\f8ff"; } + +.fa-shield-cat { + --fa: "\e572"; + --fa--fa: "\e572\e572"; } + +.fa-bolt { + --fa: "\f0e7"; + --fa--fa: "\f0e7\f0e7"; } + +.fa-zap { + --fa: "\f0e7"; + --fa--fa: "\f0e7\f0e7"; } + +.fa-glass-water { + --fa: "\e4f4"; + --fa--fa: "\e4f4\e4f4"; } + +.fa-oil-well { + --fa: "\e532"; + --fa--fa: "\e532\e532"; } + +.fa-vault { + --fa: "\e2c5"; + --fa--fa: "\e2c5\e2c5"; } + +.fa-mars { + --fa: "\f222"; + --fa--fa: "\f222\f222"; } + +.fa-toilet { + --fa: "\f7d8"; + --fa--fa: "\f7d8\f7d8"; } + +.fa-plane-circle-xmark { + --fa: "\e557"; + --fa--fa: "\e557\e557"; } + +.fa-yen-sign { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-cny { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-jpy { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-rmb { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-yen { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-ruble-sign { + --fa: "\f158"; + --fa--fa: "\f158\f158"; } + +.fa-rouble { + --fa: "\f158"; + --fa--fa: "\f158\f158"; } + +.fa-rub { + --fa: "\f158"; + --fa--fa: "\f158\f158"; } + +.fa-ruble { + --fa: "\f158"; + --fa--fa: "\f158\f158"; } + +.fa-sun { + --fa: "\f185"; + --fa--fa: "\f185\f185"; } + +.fa-guitar { + --fa: "\f7a6"; + --fa--fa: "\f7a6\f7a6"; } + +.fa-face-laugh-wink { + --fa: "\f59c"; + --fa--fa: "\f59c\f59c"; } + +.fa-laugh-wink { + --fa: "\f59c"; + --fa--fa: "\f59c\f59c"; } + +.fa-horse-head { + --fa: "\f7ab"; + --fa--fa: "\f7ab\f7ab"; } + +.fa-bore-hole { + --fa: "\e4c3"; + --fa--fa: "\e4c3\e4c3"; } + +.fa-industry { + --fa: "\f275"; + --fa--fa: "\f275\f275"; } + +.fa-circle-down { + --fa: "\f358"; + --fa--fa: "\f358\f358"; } + +.fa-arrow-alt-circle-down { + --fa: "\f358"; + --fa--fa: "\f358\f358"; } + +.fa-arrows-turn-to-dots { + --fa: "\e4c1"; + --fa--fa: "\e4c1\e4c1"; } + +.fa-florin-sign { + --fa: "\e184"; + --fa--fa: "\e184\e184"; } + +.fa-arrow-down-short-wide { + --fa: "\f884"; + --fa--fa: "\f884\f884"; } + +.fa-sort-amount-desc { + --fa: "\f884"; + --fa--fa: "\f884\f884"; } + +.fa-sort-amount-down-alt { + --fa: "\f884"; + --fa--fa: "\f884\f884"; } + +.fa-less-than { + --fa: "\3c"; + --fa--fa: "\3c\3c"; } + +.fa-angle-down { + --fa: "\f107"; + --fa--fa: "\f107\f107"; } + +.fa-car-tunnel { + --fa: "\e4de"; + --fa--fa: "\e4de\e4de"; } + +.fa-head-side-cough { + --fa: "\e061"; + --fa--fa: "\e061\e061"; } + +.fa-grip-lines { + --fa: "\f7a4"; + --fa--fa: "\f7a4\f7a4"; } + +.fa-thumbs-down { + --fa: "\f165"; + --fa--fa: "\f165\f165"; } + +.fa-user-lock { + --fa: "\f502"; + --fa--fa: "\f502\f502"; } + +.fa-arrow-right-long { + --fa: "\f178"; + --fa--fa: "\f178\f178"; } + +.fa-long-arrow-right { + --fa: "\f178"; + --fa--fa: "\f178\f178"; } + +.fa-anchor-circle-xmark { + --fa: "\e4ac"; + --fa--fa: "\e4ac\e4ac"; } + +.fa-ellipsis { + --fa: "\f141"; + --fa--fa: "\f141\f141"; } + +.fa-ellipsis-h { + --fa: "\f141"; + --fa--fa: "\f141\f141"; } + +.fa-chess-pawn { + --fa: "\f443"; + --fa--fa: "\f443\f443"; } + +.fa-kit-medical { + --fa: "\f479"; + --fa--fa: "\f479\f479"; } + +.fa-first-aid { + --fa: "\f479"; + --fa--fa: "\f479\f479"; } + +.fa-person-through-window { + --fa: "\e5a9"; + --fa--fa: "\e5a9\e5a9"; } + +.fa-toolbox { + --fa: "\f552"; + --fa--fa: "\f552\f552"; } + +.fa-hands-holding-circle { + --fa: "\e4fb"; + --fa--fa: "\e4fb\e4fb"; } + +.fa-bug { + --fa: "\f188"; + --fa--fa: "\f188\f188"; } + +.fa-credit-card { + --fa: "\f09d"; + --fa--fa: "\f09d\f09d"; } + +.fa-credit-card-alt { + --fa: "\f09d"; + --fa--fa: "\f09d\f09d"; } + +.fa-car { + --fa: "\f1b9"; + --fa--fa: "\f1b9\f1b9"; } + +.fa-automobile { + --fa: "\f1b9"; + --fa--fa: "\f1b9\f1b9"; } + +.fa-hand-holding-hand { + --fa: "\e4f7"; + --fa--fa: "\e4f7\e4f7"; } + +.fa-book-open-reader { + --fa: "\f5da"; + --fa--fa: "\f5da\f5da"; } + +.fa-book-reader { + --fa: "\f5da"; + --fa--fa: "\f5da\f5da"; } + +.fa-mountain-sun { + --fa: "\e52f"; + --fa--fa: "\e52f\e52f"; } + +.fa-arrows-left-right-to-line { + --fa: "\e4ba"; + --fa--fa: "\e4ba\e4ba"; } + +.fa-dice-d20 { + --fa: "\f6cf"; + --fa--fa: "\f6cf\f6cf"; } + +.fa-truck-droplet { + --fa: "\e58c"; + --fa--fa: "\e58c\e58c"; } + +.fa-file-circle-xmark { + --fa: "\e5a1"; + --fa--fa: "\e5a1\e5a1"; } + +.fa-temperature-arrow-up { + --fa: "\e040"; + --fa--fa: "\e040\e040"; } + +.fa-temperature-up { + --fa: "\e040"; + --fa--fa: "\e040\e040"; } + +.fa-medal { + --fa: "\f5a2"; + --fa--fa: "\f5a2\f5a2"; } + +.fa-bed { + --fa: "\f236"; + --fa--fa: "\f236\f236"; } + +.fa-square-h { + --fa: "\f0fd"; + --fa--fa: "\f0fd\f0fd"; } + +.fa-h-square { + --fa: "\f0fd"; + --fa--fa: "\f0fd\f0fd"; } + +.fa-podcast { + --fa: "\f2ce"; + --fa--fa: "\f2ce\f2ce"; } + +.fa-temperature-full { + --fa: "\f2c7"; + --fa--fa: "\f2c7\f2c7"; } + +.fa-temperature-4 { + --fa: "\f2c7"; + --fa--fa: "\f2c7\f2c7"; } + +.fa-thermometer-4 { + --fa: "\f2c7"; + --fa--fa: "\f2c7\f2c7"; } + +.fa-thermometer-full { + --fa: "\f2c7"; + --fa--fa: "\f2c7\f2c7"; } + +.fa-bell { + --fa: "\f0f3"; + --fa--fa: "\f0f3\f0f3"; } + +.fa-superscript { + --fa: "\f12b"; + --fa--fa: "\f12b\f12b"; } + +.fa-plug-circle-xmark { + --fa: "\e560"; + --fa--fa: "\e560\e560"; } + +.fa-star-of-life { + --fa: "\f621"; + --fa--fa: "\f621\f621"; } + +.fa-phone-slash { + --fa: "\f3dd"; + --fa--fa: "\f3dd\f3dd"; } + +.fa-paint-roller { + --fa: "\f5aa"; + --fa--fa: "\f5aa\f5aa"; } + +.fa-handshake-angle { + --fa: "\f4c4"; + --fa--fa: "\f4c4\f4c4"; } + +.fa-hands-helping { + --fa: "\f4c4"; + --fa--fa: "\f4c4\f4c4"; } + +.fa-location-dot { + --fa: "\f3c5"; + --fa--fa: "\f3c5\f3c5"; } + +.fa-map-marker-alt { + --fa: "\f3c5"; + --fa--fa: "\f3c5\f3c5"; } + +.fa-file { + --fa: "\f15b"; + --fa--fa: "\f15b\f15b"; } + +.fa-greater-than { + --fa: "\3e"; + --fa--fa: "\3e\3e"; } + +.fa-person-swimming { + --fa: "\f5c4"; + --fa--fa: "\f5c4\f5c4"; } + +.fa-swimmer { + --fa: "\f5c4"; + --fa--fa: "\f5c4\f5c4"; } + +.fa-arrow-down { + --fa: "\f063"; + --fa--fa: "\f063\f063"; } + +.fa-droplet { + --fa: "\f043"; + --fa--fa: "\f043\f043"; } + +.fa-tint { + --fa: "\f043"; + --fa--fa: "\f043\f043"; } + +.fa-eraser { + --fa: "\f12d"; + --fa--fa: "\f12d\f12d"; } + +.fa-earth-americas { + --fa: "\f57d"; + --fa--fa: "\f57d\f57d"; } + +.fa-earth { + --fa: "\f57d"; + --fa--fa: "\f57d\f57d"; } + +.fa-earth-america { + --fa: "\f57d"; + --fa--fa: "\f57d\f57d"; } + +.fa-globe-americas { + --fa: "\f57d"; + --fa--fa: "\f57d\f57d"; } + +.fa-person-burst { + --fa: "\e53b"; + --fa--fa: "\e53b\e53b"; } + +.fa-dove { + --fa: "\f4ba"; + --fa--fa: "\f4ba\f4ba"; } + +.fa-battery-empty { + --fa: "\f244"; + --fa--fa: "\f244\f244"; } + +.fa-battery-0 { + --fa: "\f244"; + --fa--fa: "\f244\f244"; } + +.fa-socks { + --fa: "\f696"; + --fa--fa: "\f696\f696"; } + +.fa-inbox { + --fa: "\f01c"; + --fa--fa: "\f01c\f01c"; } + +.fa-section { + --fa: "\e447"; + --fa--fa: "\e447\e447"; } + +.fa-gauge-high { + --fa: "\f625"; + --fa--fa: "\f625\f625"; } + +.fa-tachometer-alt { + --fa: "\f625"; + --fa--fa: "\f625\f625"; } + +.fa-tachometer-alt-fast { + --fa: "\f625"; + --fa--fa: "\f625\f625"; } + +.fa-envelope-open-text { + --fa: "\f658"; + --fa--fa: "\f658\f658"; } + +.fa-hospital { + --fa: "\f0f8"; + --fa--fa: "\f0f8\f0f8"; } + +.fa-hospital-alt { + --fa: "\f0f8"; + --fa--fa: "\f0f8\f0f8"; } + +.fa-hospital-wide { + --fa: "\f0f8"; + --fa--fa: "\f0f8\f0f8"; } + +.fa-wine-bottle { + --fa: "\f72f"; + --fa--fa: "\f72f\f72f"; } + +.fa-chess-rook { + --fa: "\f447"; + --fa--fa: "\f447\f447"; } + +.fa-bars-staggered { + --fa: "\f550"; + --fa--fa: "\f550\f550"; } + +.fa-reorder { + --fa: "\f550"; + --fa--fa: "\f550\f550"; } + +.fa-stream { + --fa: "\f550"; + --fa--fa: "\f550\f550"; } + +.fa-dharmachakra { + --fa: "\f655"; + --fa--fa: "\f655\f655"; } + +.fa-hotdog { + --fa: "\f80f"; + --fa--fa: "\f80f\f80f"; } + +.fa-person-walking-with-cane { + --fa: "\f29d"; + --fa--fa: "\f29d\f29d"; } + +.fa-blind { + --fa: "\f29d"; + --fa--fa: "\f29d\f29d"; } + +.fa-drum { + --fa: "\f569"; + --fa--fa: "\f569\f569"; } + +.fa-ice-cream { + --fa: "\f810"; + --fa--fa: "\f810\f810"; } + +.fa-heart-circle-bolt { + --fa: "\e4fc"; + --fa--fa: "\e4fc\e4fc"; } + +.fa-fax { + --fa: "\f1ac"; + --fa--fa: "\f1ac\f1ac"; } + +.fa-paragraph { + --fa: "\f1dd"; + --fa--fa: "\f1dd\f1dd"; } + +.fa-check-to-slot { + --fa: "\f772"; + --fa--fa: "\f772\f772"; } + +.fa-vote-yea { + --fa: "\f772"; + --fa--fa: "\f772\f772"; } + +.fa-star-half { + --fa: "\f089"; + --fa--fa: "\f089\f089"; } + +.fa-boxes-stacked { + --fa: "\f468"; + --fa--fa: "\f468\f468"; } + +.fa-boxes { + --fa: "\f468"; + --fa--fa: "\f468\f468"; } + +.fa-boxes-alt { + --fa: "\f468"; + --fa--fa: "\f468\f468"; } + +.fa-link { + --fa: "\f0c1"; + --fa--fa: "\f0c1\f0c1"; } + +.fa-chain { + --fa: "\f0c1"; + --fa--fa: "\f0c1\f0c1"; } + +.fa-ear-listen { + --fa: "\f2a2"; + --fa--fa: "\f2a2\f2a2"; } + +.fa-assistive-listening-systems { + --fa: "\f2a2"; + --fa--fa: "\f2a2\f2a2"; } + +.fa-tree-city { + --fa: "\e587"; + --fa--fa: "\e587\e587"; } + +.fa-play { + --fa: "\f04b"; + --fa--fa: "\f04b\f04b"; } + +.fa-font { + --fa: "\f031"; + --fa--fa: "\f031\f031"; } + +.fa-table-cells-row-lock { + --fa: "\e67a"; + --fa--fa: "\e67a\e67a"; } + +.fa-rupiah-sign { + --fa: "\e23d"; + --fa--fa: "\e23d\e23d"; } + +.fa-magnifying-glass { + --fa: "\f002"; + --fa--fa: "\f002\f002"; } + +.fa-search { + --fa: "\f002"; + --fa--fa: "\f002\f002"; } + +.fa-table-tennis-paddle-ball { + --fa: "\f45d"; + --fa--fa: "\f45d\f45d"; } + +.fa-ping-pong-paddle-ball { + --fa: "\f45d"; + --fa--fa: "\f45d\f45d"; } + +.fa-table-tennis { + --fa: "\f45d"; + --fa--fa: "\f45d\f45d"; } + +.fa-person-dots-from-line { + --fa: "\f470"; + --fa--fa: "\f470\f470"; } + +.fa-diagnoses { + --fa: "\f470"; + --fa--fa: "\f470\f470"; } + +.fa-trash-can-arrow-up { + --fa: "\f82a"; + --fa--fa: "\f82a\f82a"; } + +.fa-trash-restore-alt { + --fa: "\f82a"; + --fa--fa: "\f82a\f82a"; } + +.fa-naira-sign { + --fa: "\e1f6"; + --fa--fa: "\e1f6\e1f6"; } + +.fa-cart-arrow-down { + --fa: "\f218"; + --fa--fa: "\f218\f218"; } + +.fa-walkie-talkie { + --fa: "\f8ef"; + --fa--fa: "\f8ef\f8ef"; } + +.fa-file-pen { + --fa: "\f31c"; + --fa--fa: "\f31c\f31c"; } + +.fa-file-edit { + --fa: "\f31c"; + --fa--fa: "\f31c\f31c"; } + +.fa-receipt { + --fa: "\f543"; + --fa--fa: "\f543\f543"; } + +.fa-square-pen { + --fa: "\f14b"; + --fa--fa: "\f14b\f14b"; } + +.fa-pen-square { + --fa: "\f14b"; + --fa--fa: "\f14b\f14b"; } + +.fa-pencil-square { + --fa: "\f14b"; + --fa--fa: "\f14b\f14b"; } + +.fa-suitcase-rolling { + --fa: "\f5c1"; + --fa--fa: "\f5c1\f5c1"; } + +.fa-person-circle-exclamation { + --fa: "\e53f"; + --fa--fa: "\e53f\e53f"; } + +.fa-chevron-down { + --fa: "\f078"; + --fa--fa: "\f078\f078"; } + +.fa-battery-full { + --fa: "\f240"; + --fa--fa: "\f240\f240"; } + +.fa-battery { + --fa: "\f240"; + --fa--fa: "\f240\f240"; } + +.fa-battery-5 { + --fa: "\f240"; + --fa--fa: "\f240\f240"; } + +.fa-skull-crossbones { + --fa: "\f714"; + --fa--fa: "\f714\f714"; } + +.fa-code-compare { + --fa: "\e13a"; + --fa--fa: "\e13a\e13a"; } + +.fa-list-ul { + --fa: "\f0ca"; + --fa--fa: "\f0ca\f0ca"; } + +.fa-list-dots { + --fa: "\f0ca"; + --fa--fa: "\f0ca\f0ca"; } + +.fa-school-lock { + --fa: "\e56f"; + --fa--fa: "\e56f\e56f"; } + +.fa-tower-cell { + --fa: "\e585"; + --fa--fa: "\e585\e585"; } + +.fa-down-long { + --fa: "\f309"; + --fa--fa: "\f309\f309"; } + +.fa-long-arrow-alt-down { + --fa: "\f309"; + --fa--fa: "\f309\f309"; } + +.fa-ranking-star { + --fa: "\e561"; + --fa--fa: "\e561\e561"; } + +.fa-chess-king { + --fa: "\f43f"; + --fa--fa: "\f43f\f43f"; } + +.fa-person-harassing { + --fa: "\e549"; + --fa--fa: "\e549\e549"; } + +.fa-brazilian-real-sign { + --fa: "\e46c"; + --fa--fa: "\e46c\e46c"; } + +.fa-landmark-dome { + --fa: "\f752"; + --fa--fa: "\f752\f752"; } + +.fa-landmark-alt { + --fa: "\f752"; + --fa--fa: "\f752\f752"; } + +.fa-arrow-up { + --fa: "\f062"; + --fa--fa: "\f062\f062"; } + +.fa-tv { + --fa: "\f26c"; + --fa--fa: "\f26c\f26c"; } + +.fa-television { + --fa: "\f26c"; + --fa--fa: "\f26c\f26c"; } + +.fa-tv-alt { + --fa: "\f26c"; + --fa--fa: "\f26c\f26c"; } + +.fa-shrimp { + --fa: "\e448"; + --fa--fa: "\e448\e448"; } + +.fa-list-check { + --fa: "\f0ae"; + --fa--fa: "\f0ae\f0ae"; } + +.fa-tasks { + --fa: "\f0ae"; + --fa--fa: "\f0ae\f0ae"; } + +.fa-jug-detergent { + --fa: "\e519"; + --fa--fa: "\e519\e519"; } + +.fa-circle-user { + --fa: "\f2bd"; + --fa--fa: "\f2bd\f2bd"; } + +.fa-user-circle { + --fa: "\f2bd"; + --fa--fa: "\f2bd\f2bd"; } + +.fa-user-shield { + --fa: "\f505"; + --fa--fa: "\f505\f505"; } + +.fa-wind { + --fa: "\f72e"; + --fa--fa: "\f72e\f72e"; } + +.fa-car-burst { + --fa: "\f5e1"; + --fa--fa: "\f5e1\f5e1"; } + +.fa-car-crash { + --fa: "\f5e1"; + --fa--fa: "\f5e1\f5e1"; } + +.fa-y { + --fa: "\59"; + --fa--fa: "\59\59"; } + +.fa-person-snowboarding { + --fa: "\f7ce"; + --fa--fa: "\f7ce\f7ce"; } + +.fa-snowboarding { + --fa: "\f7ce"; + --fa--fa: "\f7ce\f7ce"; } + +.fa-truck-fast { + --fa: "\f48b"; + --fa--fa: "\f48b\f48b"; } + +.fa-shipping-fast { + --fa: "\f48b"; + --fa--fa: "\f48b\f48b"; } + +.fa-fish { + --fa: "\f578"; + --fa--fa: "\f578\f578"; } + +.fa-user-graduate { + --fa: "\f501"; + --fa--fa: "\f501\f501"; } + +.fa-circle-half-stroke { + --fa: "\f042"; + --fa--fa: "\f042\f042"; } + +.fa-adjust { + --fa: "\f042"; + --fa--fa: "\f042\f042"; } + +.fa-clapperboard { + --fa: "\e131"; + --fa--fa: "\e131\e131"; } + +.fa-circle-radiation { + --fa: "\f7ba"; + --fa--fa: "\f7ba\f7ba"; } + +.fa-radiation-alt { + --fa: "\f7ba"; + --fa--fa: "\f7ba\f7ba"; } + +.fa-baseball { + --fa: "\f433"; + --fa--fa: "\f433\f433"; } + +.fa-baseball-ball { + --fa: "\f433"; + --fa--fa: "\f433\f433"; } + +.fa-jet-fighter-up { + --fa: "\e518"; + --fa--fa: "\e518\e518"; } + +.fa-diagram-project { + --fa: "\f542"; + --fa--fa: "\f542\f542"; } + +.fa-project-diagram { + --fa: "\f542"; + --fa--fa: "\f542\f542"; } + +.fa-copy { + --fa: "\f0c5"; + --fa--fa: "\f0c5\f0c5"; } + +.fa-volume-xmark { + --fa: "\f6a9"; + --fa--fa: "\f6a9\f6a9"; } + +.fa-volume-mute { + --fa: "\f6a9"; + --fa--fa: "\f6a9\f6a9"; } + +.fa-volume-times { + --fa: "\f6a9"; + --fa--fa: "\f6a9\f6a9"; } + +.fa-hand-sparkles { + --fa: "\e05d"; + --fa--fa: "\e05d\e05d"; } + +.fa-grip { + --fa: "\f58d"; + --fa--fa: "\f58d\f58d"; } + +.fa-grip-horizontal { + --fa: "\f58d"; + --fa--fa: "\f58d\f58d"; } + +.fa-share-from-square { + --fa: "\f14d"; + --fa--fa: "\f14d\f14d"; } + +.fa-share-square { + --fa: "\f14d"; + --fa--fa: "\f14d\f14d"; } + +.fa-child-combatant { + --fa: "\e4e0"; + --fa--fa: "\e4e0\e4e0"; } + +.fa-child-rifle { + --fa: "\e4e0"; + --fa--fa: "\e4e0\e4e0"; } + +.fa-gun { + --fa: "\e19b"; + --fa--fa: "\e19b\e19b"; } + +.fa-square-phone { + --fa: "\f098"; + --fa--fa: "\f098\f098"; } + +.fa-phone-square { + --fa: "\f098"; + --fa--fa: "\f098\f098"; } + +.fa-plus { + --fa: "\2b"; + --fa--fa: "\2b\2b"; } + +.fa-add { + --fa: "\2b"; + --fa--fa: "\2b\2b"; } + +.fa-expand { + --fa: "\f065"; + --fa--fa: "\f065\f065"; } + +.fa-computer { + --fa: "\e4e5"; + --fa--fa: "\e4e5\e4e5"; } + +.fa-xmark { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-close { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-multiply { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-remove { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-times { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-arrows-up-down-left-right { + --fa: "\f047"; + --fa--fa: "\f047\f047"; } + +.fa-arrows { + --fa: "\f047"; + --fa--fa: "\f047\f047"; } + +.fa-chalkboard-user { + --fa: "\f51c"; + --fa--fa: "\f51c\f51c"; } + +.fa-chalkboard-teacher { + --fa: "\f51c"; + --fa--fa: "\f51c\f51c"; } + +.fa-peso-sign { + --fa: "\e222"; + --fa--fa: "\e222\e222"; } + +.fa-building-shield { + --fa: "\e4d8"; + --fa--fa: "\e4d8\e4d8"; } + +.fa-baby { + --fa: "\f77c"; + --fa--fa: "\f77c\f77c"; } + +.fa-users-line { + --fa: "\e592"; + --fa--fa: "\e592\e592"; } + +.fa-quote-left { + --fa: "\f10d"; + --fa--fa: "\f10d\f10d"; } + +.fa-quote-left-alt { + --fa: "\f10d"; + --fa--fa: "\f10d\f10d"; } + +.fa-tractor { + --fa: "\f722"; + --fa--fa: "\f722\f722"; } + +.fa-trash-arrow-up { + --fa: "\f829"; + --fa--fa: "\f829\f829"; } + +.fa-trash-restore { + --fa: "\f829"; + --fa--fa: "\f829\f829"; } + +.fa-arrow-down-up-lock { + --fa: "\e4b0"; + --fa--fa: "\e4b0\e4b0"; } + +.fa-lines-leaning { + --fa: "\e51e"; + --fa--fa: "\e51e\e51e"; } + +.fa-ruler-combined { + --fa: "\f546"; + --fa--fa: "\f546\f546"; } + +.fa-copyright { + --fa: "\f1f9"; + --fa--fa: "\f1f9\f1f9"; } + +.fa-equals { + --fa: "\3d"; + --fa--fa: "\3d\3d"; } + +.fa-blender { + --fa: "\f517"; + --fa--fa: "\f517\f517"; } + +.fa-teeth { + --fa: "\f62e"; + --fa--fa: "\f62e\f62e"; } + +.fa-shekel-sign { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-ils { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-shekel { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-sheqel { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-sheqel-sign { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-map { + --fa: "\f279"; + --fa--fa: "\f279\f279"; } + +.fa-rocket { + --fa: "\f135"; + --fa--fa: "\f135\f135"; } + +.fa-photo-film { + --fa: "\f87c"; + --fa--fa: "\f87c\f87c"; } + +.fa-photo-video { + --fa: "\f87c"; + --fa--fa: "\f87c\f87c"; } + +.fa-folder-minus { + --fa: "\f65d"; + --fa--fa: "\f65d\f65d"; } + +.fa-hexagon-nodes-bolt { + --fa: "\e69a"; + --fa--fa: "\e69a\e69a"; } + +.fa-store { + --fa: "\f54e"; + --fa--fa: "\f54e\f54e"; } + +.fa-arrow-trend-up { + --fa: "\e098"; + --fa--fa: "\e098\e098"; } + +.fa-plug-circle-minus { + --fa: "\e55e"; + --fa--fa: "\e55e\e55e"; } + +.fa-sign-hanging { + --fa: "\f4d9"; + --fa--fa: "\f4d9\f4d9"; } + +.fa-sign { + --fa: "\f4d9"; + --fa--fa: "\f4d9\f4d9"; } + +.fa-bezier-curve { + --fa: "\f55b"; + --fa--fa: "\f55b\f55b"; } + +.fa-bell-slash { + --fa: "\f1f6"; + --fa--fa: "\f1f6\f1f6"; } + +.fa-tablet { + --fa: "\f3fb"; + --fa--fa: "\f3fb\f3fb"; } + +.fa-tablet-android { + --fa: "\f3fb"; + --fa--fa: "\f3fb\f3fb"; } + +.fa-school-flag { + --fa: "\e56e"; + --fa--fa: "\e56e\e56e"; } + +.fa-fill { + --fa: "\f575"; + --fa--fa: "\f575\f575"; } + +.fa-angle-up { + --fa: "\f106"; + --fa--fa: "\f106\f106"; } + +.fa-drumstick-bite { + --fa: "\f6d7"; + --fa--fa: "\f6d7\f6d7"; } + +.fa-holly-berry { + --fa: "\f7aa"; + --fa--fa: "\f7aa\f7aa"; } + +.fa-chevron-left { + --fa: "\f053"; + --fa--fa: "\f053\f053"; } + +.fa-bacteria { + --fa: "\e059"; + --fa--fa: "\e059\e059"; } + +.fa-hand-lizard { + --fa: "\f258"; + --fa--fa: "\f258\f258"; } + +.fa-notdef { + --fa: "\e1fe"; + --fa--fa: "\e1fe\e1fe"; } + +.fa-disease { + --fa: "\f7fa"; + --fa--fa: "\f7fa\f7fa"; } + +.fa-briefcase-medical { + --fa: "\f469"; + --fa--fa: "\f469\f469"; } + +.fa-genderless { + --fa: "\f22d"; + --fa--fa: "\f22d\f22d"; } + +.fa-chevron-right { + --fa: "\f054"; + --fa--fa: "\f054\f054"; } + +.fa-retweet { + --fa: "\f079"; + --fa--fa: "\f079\f079"; } + +.fa-car-rear { + --fa: "\f5de"; + --fa--fa: "\f5de\f5de"; } + +.fa-car-alt { + --fa: "\f5de"; + --fa--fa: "\f5de\f5de"; } + +.fa-pump-soap { + --fa: "\e06b"; + --fa--fa: "\e06b\e06b"; } + +.fa-video-slash { + --fa: "\f4e2"; + --fa--fa: "\f4e2\f4e2"; } + +.fa-battery-quarter { + --fa: "\f243"; + --fa--fa: "\f243\f243"; } + +.fa-battery-2 { + --fa: "\f243"; + --fa--fa: "\f243\f243"; } + +.fa-radio { + --fa: "\f8d7"; + --fa--fa: "\f8d7\f8d7"; } + +.fa-baby-carriage { + --fa: "\f77d"; + --fa--fa: "\f77d\f77d"; } + +.fa-carriage-baby { + --fa: "\f77d"; + --fa--fa: "\f77d\f77d"; } + +.fa-traffic-light { + --fa: "\f637"; + --fa--fa: "\f637\f637"; } + +.fa-thermometer { + --fa: "\f491"; + --fa--fa: "\f491\f491"; } + +.fa-vr-cardboard { + --fa: "\f729"; + --fa--fa: "\f729\f729"; } + +.fa-hand-middle-finger { + --fa: "\f806"; + --fa--fa: "\f806\f806"; } + +.fa-percent { + --fa: "\25"; + --fa--fa: "\25\25"; } + +.fa-percentage { + --fa: "\25"; + --fa--fa: "\25\25"; } + +.fa-truck-moving { + --fa: "\f4df"; + --fa--fa: "\f4df\f4df"; } + +.fa-glass-water-droplet { + --fa: "\e4f5"; + --fa--fa: "\e4f5\e4f5"; } + +.fa-display { + --fa: "\e163"; + --fa--fa: "\e163\e163"; } + +.fa-face-smile { + --fa: "\f118"; + --fa--fa: "\f118\f118"; } + +.fa-smile { + --fa: "\f118"; + --fa--fa: "\f118\f118"; } + +.fa-thumbtack { + --fa: "\f08d"; + --fa--fa: "\f08d\f08d"; } + +.fa-thumb-tack { + --fa: "\f08d"; + --fa--fa: "\f08d\f08d"; } + +.fa-trophy { + --fa: "\f091"; + --fa--fa: "\f091\f091"; } + +.fa-person-praying { + --fa: "\f683"; + --fa--fa: "\f683\f683"; } + +.fa-pray { + --fa: "\f683"; + --fa--fa: "\f683\f683"; } + +.fa-hammer { + --fa: "\f6e3"; + --fa--fa: "\f6e3\f6e3"; } + +.fa-hand-peace { + --fa: "\f25b"; + --fa--fa: "\f25b\f25b"; } + +.fa-rotate { + --fa: "\f2f1"; + --fa--fa: "\f2f1\f2f1"; } + +.fa-sync-alt { + --fa: "\f2f1"; + --fa--fa: "\f2f1\f2f1"; } + +.fa-spinner { + --fa: "\f110"; + --fa--fa: "\f110\f110"; } + +.fa-robot { + --fa: "\f544"; + --fa--fa: "\f544\f544"; } + +.fa-peace { + --fa: "\f67c"; + --fa--fa: "\f67c\f67c"; } + +.fa-gears { + --fa: "\f085"; + --fa--fa: "\f085\f085"; } + +.fa-cogs { + --fa: "\f085"; + --fa--fa: "\f085\f085"; } + +.fa-warehouse { + --fa: "\f494"; + --fa--fa: "\f494\f494"; } + +.fa-arrow-up-right-dots { + --fa: "\e4b7"; + --fa--fa: "\e4b7\e4b7"; } + +.fa-splotch { + --fa: "\f5bc"; + --fa--fa: "\f5bc\f5bc"; } + +.fa-face-grin-hearts { + --fa: "\f584"; + --fa--fa: "\f584\f584"; } + +.fa-grin-hearts { + --fa: "\f584"; + --fa--fa: "\f584\f584"; } + +.fa-dice-four { + --fa: "\f524"; + --fa--fa: "\f524\f524"; } + +.fa-sim-card { + --fa: "\f7c4"; + --fa--fa: "\f7c4\f7c4"; } + +.fa-transgender { + --fa: "\f225"; + --fa--fa: "\f225\f225"; } + +.fa-transgender-alt { + --fa: "\f225"; + --fa--fa: "\f225\f225"; } + +.fa-mercury { + --fa: "\f223"; + --fa--fa: "\f223\f223"; } + +.fa-arrow-turn-down { + --fa: "\f149"; + --fa--fa: "\f149\f149"; } + +.fa-level-down { + --fa: "\f149"; + --fa--fa: "\f149\f149"; } + +.fa-person-falling-burst { + --fa: "\e547"; + --fa--fa: "\e547\e547"; } + +.fa-award { + --fa: "\f559"; + --fa--fa: "\f559\f559"; } + +.fa-ticket-simple { + --fa: "\f3ff"; + --fa--fa: "\f3ff\f3ff"; } + +.fa-ticket-alt { + --fa: "\f3ff"; + --fa--fa: "\f3ff\f3ff"; } + +.fa-building { + --fa: "\f1ad"; + --fa--fa: "\f1ad\f1ad"; } + +.fa-angles-left { + --fa: "\f100"; + --fa--fa: "\f100\f100"; } + +.fa-angle-double-left { + --fa: "\f100"; + --fa--fa: "\f100\f100"; } + +.fa-qrcode { + --fa: "\f029"; + --fa--fa: "\f029\f029"; } + +.fa-clock-rotate-left { + --fa: "\f1da"; + --fa--fa: "\f1da\f1da"; } + +.fa-history { + --fa: "\f1da"; + --fa--fa: "\f1da\f1da"; } + +.fa-face-grin-beam-sweat { + --fa: "\f583"; + --fa--fa: "\f583\f583"; } + +.fa-grin-beam-sweat { + --fa: "\f583"; + --fa--fa: "\f583\f583"; } + +.fa-file-export { + --fa: "\f56e"; + --fa--fa: "\f56e\f56e"; } + +.fa-arrow-right-from-file { + --fa: "\f56e"; + --fa--fa: "\f56e\f56e"; } + +.fa-shield { + --fa: "\f132"; + --fa--fa: "\f132\f132"; } + +.fa-shield-blank { + --fa: "\f132"; + --fa--fa: "\f132\f132"; } + +.fa-arrow-up-short-wide { + --fa: "\f885"; + --fa--fa: "\f885\f885"; } + +.fa-sort-amount-up-alt { + --fa: "\f885"; + --fa--fa: "\f885\f885"; } + +.fa-comment-nodes { + --fa: "\e696"; + --fa--fa: "\e696\e696"; } + +.fa-house-medical { + --fa: "\e3b2"; + --fa--fa: "\e3b2\e3b2"; } + +.fa-golf-ball-tee { + --fa: "\f450"; + --fa--fa: "\f450\f450"; } + +.fa-golf-ball { + --fa: "\f450"; + --fa--fa: "\f450\f450"; } + +.fa-circle-chevron-left { + --fa: "\f137"; + --fa--fa: "\f137\f137"; } + +.fa-chevron-circle-left { + --fa: "\f137"; + --fa--fa: "\f137\f137"; } + +.fa-house-chimney-window { + --fa: "\e00d"; + --fa--fa: "\e00d\e00d"; } + +.fa-pen-nib { + --fa: "\f5ad"; + --fa--fa: "\f5ad\f5ad"; } + +.fa-tent-arrow-turn-left { + --fa: "\e580"; + --fa--fa: "\e580\e580"; } + +.fa-tents { + --fa: "\e582"; + --fa--fa: "\e582\e582"; } + +.fa-wand-magic { + --fa: "\f0d0"; + --fa--fa: "\f0d0\f0d0"; } + +.fa-magic { + --fa: "\f0d0"; + --fa--fa: "\f0d0\f0d0"; } + +.fa-dog { + --fa: "\f6d3"; + --fa--fa: "\f6d3\f6d3"; } + +.fa-carrot { + --fa: "\f787"; + --fa--fa: "\f787\f787"; } + +.fa-moon { + --fa: "\f186"; + --fa--fa: "\f186\f186"; } + +.fa-wine-glass-empty { + --fa: "\f5ce"; + --fa--fa: "\f5ce\f5ce"; } + +.fa-wine-glass-alt { + --fa: "\f5ce"; + --fa--fa: "\f5ce\f5ce"; } + +.fa-cheese { + --fa: "\f7ef"; + --fa--fa: "\f7ef\f7ef"; } + +.fa-yin-yang { + --fa: "\f6ad"; + --fa--fa: "\f6ad\f6ad"; } + +.fa-music { + --fa: "\f001"; + --fa--fa: "\f001\f001"; } + +.fa-code-commit { + --fa: "\f386"; + --fa--fa: "\f386\f386"; } + +.fa-temperature-low { + --fa: "\f76b"; + --fa--fa: "\f76b\f76b"; } + +.fa-person-biking { + --fa: "\f84a"; + --fa--fa: "\f84a\f84a"; } + +.fa-biking { + --fa: "\f84a"; + --fa--fa: "\f84a\f84a"; } + +.fa-broom { + --fa: "\f51a"; + --fa--fa: "\f51a\f51a"; } + +.fa-shield-heart { + --fa: "\e574"; + --fa--fa: "\e574\e574"; } + +.fa-gopuram { + --fa: "\f664"; + --fa--fa: "\f664\f664"; } + +.fa-earth-oceania { + --fa: "\e47b"; + --fa--fa: "\e47b\e47b"; } + +.fa-globe-oceania { + --fa: "\e47b"; + --fa--fa: "\e47b\e47b"; } + +.fa-square-xmark { + --fa: "\f2d3"; + --fa--fa: "\f2d3\f2d3"; } + +.fa-times-square { + --fa: "\f2d3"; + --fa--fa: "\f2d3\f2d3"; } + +.fa-xmark-square { + --fa: "\f2d3"; + --fa--fa: "\f2d3\f2d3"; } + +.fa-hashtag { + --fa: "\23"; + --fa--fa: "\23\23"; } + +.fa-up-right-and-down-left-from-center { + --fa: "\f424"; + --fa--fa: "\f424\f424"; } + +.fa-expand-alt { + --fa: "\f424"; + --fa--fa: "\f424\f424"; } + +.fa-oil-can { + --fa: "\f613"; + --fa--fa: "\f613\f613"; } + +.fa-t { + --fa: "\54"; + --fa--fa: "\54\54"; } + +.fa-hippo { + --fa: "\f6ed"; + --fa--fa: "\f6ed\f6ed"; } + +.fa-chart-column { + --fa: "\e0e3"; + --fa--fa: "\e0e3\e0e3"; } + +.fa-infinity { + --fa: "\f534"; + --fa--fa: "\f534\f534"; } + +.fa-vial-circle-check { + --fa: "\e596"; + --fa--fa: "\e596\e596"; } + +.fa-person-arrow-down-to-line { + --fa: "\e538"; + --fa--fa: "\e538\e538"; } + +.fa-voicemail { + --fa: "\f897"; + --fa--fa: "\f897\f897"; } + +.fa-fan { + --fa: "\f863"; + --fa--fa: "\f863\f863"; } + +.fa-person-walking-luggage { + --fa: "\e554"; + --fa--fa: "\e554\e554"; } + +.fa-up-down { + --fa: "\f338"; + --fa--fa: "\f338\f338"; } + +.fa-arrows-alt-v { + --fa: "\f338"; + --fa--fa: "\f338\f338"; } + +.fa-cloud-moon-rain { + --fa: "\f73c"; + --fa--fa: "\f73c\f73c"; } + +.fa-calendar { + --fa: "\f133"; + --fa--fa: "\f133\f133"; } + +.fa-trailer { + --fa: "\e041"; + --fa--fa: "\e041\e041"; } + +.fa-bahai { + --fa: "\f666"; + --fa--fa: "\f666\f666"; } + +.fa-haykal { + --fa: "\f666"; + --fa--fa: "\f666\f666"; } + +.fa-sd-card { + --fa: "\f7c2"; + --fa--fa: "\f7c2\f7c2"; } + +.fa-dragon { + --fa: "\f6d5"; + --fa--fa: "\f6d5\f6d5"; } + +.fa-shoe-prints { + --fa: "\f54b"; + --fa--fa: "\f54b\f54b"; } + +.fa-circle-plus { + --fa: "\f055"; + --fa--fa: "\f055\f055"; } + +.fa-plus-circle { + --fa: "\f055"; + --fa--fa: "\f055\f055"; } + +.fa-face-grin-tongue-wink { + --fa: "\f58b"; + --fa--fa: "\f58b\f58b"; } + +.fa-grin-tongue-wink { + --fa: "\f58b"; + --fa--fa: "\f58b\f58b"; } + +.fa-hand-holding { + --fa: "\f4bd"; + --fa--fa: "\f4bd\f4bd"; } + +.fa-plug-circle-exclamation { + --fa: "\e55d"; + --fa--fa: "\e55d\e55d"; } + +.fa-link-slash { + --fa: "\f127"; + --fa--fa: "\f127\f127"; } + +.fa-chain-broken { + --fa: "\f127"; + --fa--fa: "\f127\f127"; } + +.fa-chain-slash { + --fa: "\f127"; + --fa--fa: "\f127\f127"; } + +.fa-unlink { + --fa: "\f127"; + --fa--fa: "\f127\f127"; } + +.fa-clone { + --fa: "\f24d"; + --fa--fa: "\f24d\f24d"; } + +.fa-person-walking-arrow-loop-left { + --fa: "\e551"; + --fa--fa: "\e551\e551"; } + +.fa-arrow-up-z-a { + --fa: "\f882"; + --fa--fa: "\f882\f882"; } + +.fa-sort-alpha-up-alt { + --fa: "\f882"; + --fa--fa: "\f882\f882"; } + +.fa-fire-flame-curved { + --fa: "\f7e4"; + --fa--fa: "\f7e4\f7e4"; } + +.fa-fire-alt { + --fa: "\f7e4"; + --fa--fa: "\f7e4\f7e4"; } + +.fa-tornado { + --fa: "\f76f"; + --fa--fa: "\f76f\f76f"; } + +.fa-file-circle-plus { + --fa: "\e494"; + --fa--fa: "\e494\e494"; } + +.fa-book-quran { + --fa: "\f687"; + --fa--fa: "\f687\f687"; } + +.fa-quran { + --fa: "\f687"; + --fa--fa: "\f687\f687"; } + +.fa-anchor { + --fa: "\f13d"; + --fa--fa: "\f13d\f13d"; } + +.fa-border-all { + --fa: "\f84c"; + --fa--fa: "\f84c\f84c"; } + +.fa-face-angry { + --fa: "\f556"; + --fa--fa: "\f556\f556"; } + +.fa-angry { + --fa: "\f556"; + --fa--fa: "\f556\f556"; } + +.fa-cookie-bite { + --fa: "\f564"; + --fa--fa: "\f564\f564"; } + +.fa-arrow-trend-down { + --fa: "\e097"; + --fa--fa: "\e097\e097"; } + +.fa-rss { + --fa: "\f09e"; + --fa--fa: "\f09e\f09e"; } + +.fa-feed { + --fa: "\f09e"; + --fa--fa: "\f09e\f09e"; } + +.fa-draw-polygon { + --fa: "\f5ee"; + --fa--fa: "\f5ee\f5ee"; } + +.fa-scale-balanced { + --fa: "\f24e"; + --fa--fa: "\f24e\f24e"; } + +.fa-balance-scale { + --fa: "\f24e"; + --fa--fa: "\f24e\f24e"; } + +.fa-gauge-simple-high { + --fa: "\f62a"; + --fa--fa: "\f62a\f62a"; } + +.fa-tachometer { + --fa: "\f62a"; + --fa--fa: "\f62a\f62a"; } + +.fa-tachometer-fast { + --fa: "\f62a"; + --fa--fa: "\f62a\f62a"; } + +.fa-shower { + --fa: "\f2cc"; + --fa--fa: "\f2cc\f2cc"; } + +.fa-desktop { + --fa: "\f390"; + --fa--fa: "\f390\f390"; } + +.fa-desktop-alt { + --fa: "\f390"; + --fa--fa: "\f390\f390"; } + +.fa-m { + --fa: "\4d"; + --fa--fa: "\4d\4d"; } + +.fa-table-list { + --fa: "\f00b"; + --fa--fa: "\f00b\f00b"; } + +.fa-th-list { + --fa: "\f00b"; + --fa--fa: "\f00b\f00b"; } + +.fa-comment-sms { + --fa: "\f7cd"; + --fa--fa: "\f7cd\f7cd"; } + +.fa-sms { + --fa: "\f7cd"; + --fa--fa: "\f7cd\f7cd"; } + +.fa-book { + --fa: "\f02d"; + --fa--fa: "\f02d\f02d"; } + +.fa-user-plus { + --fa: "\f234"; + --fa--fa: "\f234\f234"; } + +.fa-check { + --fa: "\f00c"; + --fa--fa: "\f00c\f00c"; } + +.fa-battery-three-quarters { + --fa: "\f241"; + --fa--fa: "\f241\f241"; } + +.fa-battery-4 { + --fa: "\f241"; + --fa--fa: "\f241\f241"; } + +.fa-house-circle-check { + --fa: "\e509"; + --fa--fa: "\e509\e509"; } + +.fa-angle-left { + --fa: "\f104"; + --fa--fa: "\f104\f104"; } + +.fa-diagram-successor { + --fa: "\e47a"; + --fa--fa: "\e47a\e47a"; } + +.fa-truck-arrow-right { + --fa: "\e58b"; + --fa--fa: "\e58b\e58b"; } + +.fa-arrows-split-up-and-left { + --fa: "\e4bc"; + --fa--fa: "\e4bc\e4bc"; } + +.fa-hand-fist { + --fa: "\f6de"; + --fa--fa: "\f6de\f6de"; } + +.fa-fist-raised { + --fa: "\f6de"; + --fa--fa: "\f6de\f6de"; } + +.fa-cloud-moon { + --fa: "\f6c3"; + --fa--fa: "\f6c3\f6c3"; } + +.fa-briefcase { + --fa: "\f0b1"; + --fa--fa: "\f0b1\f0b1"; } + +.fa-person-falling { + --fa: "\e546"; + --fa--fa: "\e546\e546"; } + +.fa-image-portrait { + --fa: "\f3e0"; + --fa--fa: "\f3e0\f3e0"; } + +.fa-portrait { + --fa: "\f3e0"; + --fa--fa: "\f3e0\f3e0"; } + +.fa-user-tag { + --fa: "\f507"; + --fa--fa: "\f507\f507"; } + +.fa-rug { + --fa: "\e569"; + --fa--fa: "\e569\e569"; } + +.fa-earth-europe { + --fa: "\f7a2"; + --fa--fa: "\f7a2\f7a2"; } + +.fa-globe-europe { + --fa: "\f7a2"; + --fa--fa: "\f7a2\f7a2"; } + +.fa-cart-flatbed-suitcase { + --fa: "\f59d"; + --fa--fa: "\f59d\f59d"; } + +.fa-luggage-cart { + --fa: "\f59d"; + --fa--fa: "\f59d\f59d"; } + +.fa-rectangle-xmark { + --fa: "\f410"; + --fa--fa: "\f410\f410"; } + +.fa-rectangle-times { + --fa: "\f410"; + --fa--fa: "\f410\f410"; } + +.fa-times-rectangle { + --fa: "\f410"; + --fa--fa: "\f410\f410"; } + +.fa-window-close { + --fa: "\f410"; + --fa--fa: "\f410\f410"; } + +.fa-baht-sign { + --fa: "\e0ac"; + --fa--fa: "\e0ac\e0ac"; } + +.fa-book-open { + --fa: "\f518"; + --fa--fa: "\f518\f518"; } + +.fa-book-journal-whills { + --fa: "\f66a"; + --fa--fa: "\f66a\f66a"; } + +.fa-journal-whills { + --fa: "\f66a"; + --fa--fa: "\f66a\f66a"; } + +.fa-handcuffs { + --fa: "\e4f8"; + --fa--fa: "\e4f8\e4f8"; } + +.fa-triangle-exclamation { + --fa: "\f071"; + --fa--fa: "\f071\f071"; } + +.fa-exclamation-triangle { + --fa: "\f071"; + --fa--fa: "\f071\f071"; } + +.fa-warning { + --fa: "\f071"; + --fa--fa: "\f071\f071"; } + +.fa-database { + --fa: "\f1c0"; + --fa--fa: "\f1c0\f1c0"; } + +.fa-share { + --fa: "\f064"; + --fa--fa: "\f064\f064"; } + +.fa-mail-forward { + --fa: "\f064"; + --fa--fa: "\f064\f064"; } + +.fa-bottle-droplet { + --fa: "\e4c4"; + --fa--fa: "\e4c4\e4c4"; } + +.fa-mask-face { + --fa: "\e1d7"; + --fa--fa: "\e1d7\e1d7"; } + +.fa-hill-rockslide { + --fa: "\e508"; + --fa--fa: "\e508\e508"; } + +.fa-right-left { + --fa: "\f362"; + --fa--fa: "\f362\f362"; } + +.fa-exchange-alt { + --fa: "\f362"; + --fa--fa: "\f362\f362"; } + +.fa-paper-plane { + --fa: "\f1d8"; + --fa--fa: "\f1d8\f1d8"; } + +.fa-road-circle-exclamation { + --fa: "\e565"; + --fa--fa: "\e565\e565"; } + +.fa-dungeon { + --fa: "\f6d9"; + --fa--fa: "\f6d9\f6d9"; } + +.fa-align-right { + --fa: "\f038"; + --fa--fa: "\f038\f038"; } + +.fa-money-bill-1-wave { + --fa: "\f53b"; + --fa--fa: "\f53b\f53b"; } + +.fa-money-bill-wave-alt { + --fa: "\f53b"; + --fa--fa: "\f53b\f53b"; } + +.fa-life-ring { + --fa: "\f1cd"; + --fa--fa: "\f1cd\f1cd"; } + +.fa-hands { + --fa: "\f2a7"; + --fa--fa: "\f2a7\f2a7"; } + +.fa-sign-language { + --fa: "\f2a7"; + --fa--fa: "\f2a7\f2a7"; } + +.fa-signing { + --fa: "\f2a7"; + --fa--fa: "\f2a7\f2a7"; } + +.fa-calendar-day { + --fa: "\f783"; + --fa--fa: "\f783\f783"; } + +.fa-water-ladder { + --fa: "\f5c5"; + --fa--fa: "\f5c5\f5c5"; } + +.fa-ladder-water { + --fa: "\f5c5"; + --fa--fa: "\f5c5\f5c5"; } + +.fa-swimming-pool { + --fa: "\f5c5"; + --fa--fa: "\f5c5\f5c5"; } + +.fa-arrows-up-down { + --fa: "\f07d"; + --fa--fa: "\f07d\f07d"; } + +.fa-arrows-v { + --fa: "\f07d"; + --fa--fa: "\f07d\f07d"; } + +.fa-face-grimace { + --fa: "\f57f"; + --fa--fa: "\f57f\f57f"; } + +.fa-grimace { + --fa: "\f57f"; + --fa--fa: "\f57f\f57f"; } + +.fa-wheelchair-move { + --fa: "\e2ce"; + --fa--fa: "\e2ce\e2ce"; } + +.fa-wheelchair-alt { + --fa: "\e2ce"; + --fa--fa: "\e2ce\e2ce"; } + +.fa-turn-down { + --fa: "\f3be"; + --fa--fa: "\f3be\f3be"; } + +.fa-level-down-alt { + --fa: "\f3be"; + --fa--fa: "\f3be\f3be"; } + +.fa-person-walking-arrow-right { + --fa: "\e552"; + --fa--fa: "\e552\e552"; } + +.fa-square-envelope { + --fa: "\f199"; + --fa--fa: "\f199\f199"; } + +.fa-envelope-square { + --fa: "\f199"; + --fa--fa: "\f199\f199"; } + +.fa-dice { + --fa: "\f522"; + --fa--fa: "\f522\f522"; } + +.fa-bowling-ball { + --fa: "\f436"; + --fa--fa: "\f436\f436"; } + +.fa-brain { + --fa: "\f5dc"; + --fa--fa: "\f5dc\f5dc"; } + +.fa-bandage { + --fa: "\f462"; + --fa--fa: "\f462\f462"; } + +.fa-band-aid { + --fa: "\f462"; + --fa--fa: "\f462\f462"; } + +.fa-calendar-minus { + --fa: "\f272"; + --fa--fa: "\f272\f272"; } + +.fa-circle-xmark { + --fa: "\f057"; + --fa--fa: "\f057\f057"; } + +.fa-times-circle { + --fa: "\f057"; + --fa--fa: "\f057\f057"; } + +.fa-xmark-circle { + --fa: "\f057"; + --fa--fa: "\f057\f057"; } + +.fa-gifts { + --fa: "\f79c"; + --fa--fa: "\f79c\f79c"; } + +.fa-hotel { + --fa: "\f594"; + --fa--fa: "\f594\f594"; } + +.fa-earth-asia { + --fa: "\f57e"; + --fa--fa: "\f57e\f57e"; } + +.fa-globe-asia { + --fa: "\f57e"; + --fa--fa: "\f57e\f57e"; } + +.fa-id-card-clip { + --fa: "\f47f"; + --fa--fa: "\f47f\f47f"; } + +.fa-id-card-alt { + --fa: "\f47f"; + --fa--fa: "\f47f\f47f"; } + +.fa-magnifying-glass-plus { + --fa: "\f00e"; + --fa--fa: "\f00e\f00e"; } + +.fa-search-plus { + --fa: "\f00e"; + --fa--fa: "\f00e\f00e"; } + +.fa-thumbs-up { + --fa: "\f164"; + --fa--fa: "\f164\f164"; } + +.fa-user-clock { + --fa: "\f4fd"; + --fa--fa: "\f4fd\f4fd"; } + +.fa-hand-dots { + --fa: "\f461"; + --fa--fa: "\f461\f461"; } + +.fa-allergies { + --fa: "\f461"; + --fa--fa: "\f461\f461"; } + +.fa-file-invoice { + --fa: "\f570"; + --fa--fa: "\f570\f570"; } + +.fa-window-minimize { + --fa: "\f2d1"; + --fa--fa: "\f2d1\f2d1"; } + +.fa-mug-saucer { + --fa: "\f0f4"; + --fa--fa: "\f0f4\f0f4"; } + +.fa-coffee { + --fa: "\f0f4"; + --fa--fa: "\f0f4\f0f4"; } + +.fa-brush { + --fa: "\f55d"; + --fa--fa: "\f55d\f55d"; } + +.fa-file-half-dashed { + --fa: "\e698"; + --fa--fa: "\e698\e698"; } + +.fa-mask { + --fa: "\f6fa"; + --fa--fa: "\f6fa\f6fa"; } + +.fa-magnifying-glass-minus { + --fa: "\f010"; + --fa--fa: "\f010\f010"; } + +.fa-search-minus { + --fa: "\f010"; + --fa--fa: "\f010\f010"; } + +.fa-ruler-vertical { + --fa: "\f548"; + --fa--fa: "\f548\f548"; } + +.fa-user-large { + --fa: "\f406"; + --fa--fa: "\f406\f406"; } + +.fa-user-alt { + --fa: "\f406"; + --fa--fa: "\f406\f406"; } + +.fa-train-tram { + --fa: "\e5b4"; + --fa--fa: "\e5b4\e5b4"; } + +.fa-user-nurse { + --fa: "\f82f"; + --fa--fa: "\f82f\f82f"; } + +.fa-syringe { + --fa: "\f48e"; + --fa--fa: "\f48e\f48e"; } + +.fa-cloud-sun { + --fa: "\f6c4"; + --fa--fa: "\f6c4\f6c4"; } + +.fa-stopwatch-20 { + --fa: "\e06f"; + --fa--fa: "\e06f\e06f"; } + +.fa-square-full { + --fa: "\f45c"; + --fa--fa: "\f45c\f45c"; } + +.fa-magnet { + --fa: "\f076"; + --fa--fa: "\f076\f076"; } + +.fa-jar { + --fa: "\e516"; + --fa--fa: "\e516\e516"; } + +.fa-note-sticky { + --fa: "\f249"; + --fa--fa: "\f249\f249"; } + +.fa-sticky-note { + --fa: "\f249"; + --fa--fa: "\f249\f249"; } + +.fa-bug-slash { + --fa: "\e490"; + --fa--fa: "\e490\e490"; } + +.fa-arrow-up-from-water-pump { + --fa: "\e4b6"; + --fa--fa: "\e4b6\e4b6"; } + +.fa-bone { + --fa: "\f5d7"; + --fa--fa: "\f5d7\f5d7"; } + +.fa-table-cells-row-unlock { + --fa: "\e691"; + --fa--fa: "\e691\e691"; } + +.fa-user-injured { + --fa: "\f728"; + --fa--fa: "\f728\f728"; } + +.fa-face-sad-tear { + --fa: "\f5b4"; + --fa--fa: "\f5b4\f5b4"; } + +.fa-sad-tear { + --fa: "\f5b4"; + --fa--fa: "\f5b4\f5b4"; } + +.fa-plane { + --fa: "\f072"; + --fa--fa: "\f072\f072"; } + +.fa-tent-arrows-down { + --fa: "\e581"; + --fa--fa: "\e581\e581"; } + +.fa-exclamation { + --fa: "\21"; + --fa--fa: "\21\21"; } + +.fa-arrows-spin { + --fa: "\e4bb"; + --fa--fa: "\e4bb\e4bb"; } + +.fa-print { + --fa: "\f02f"; + --fa--fa: "\f02f\f02f"; } + +.fa-turkish-lira-sign { + --fa: "\e2bb"; + --fa--fa: "\e2bb\e2bb"; } + +.fa-try { + --fa: "\e2bb"; + --fa--fa: "\e2bb\e2bb"; } + +.fa-turkish-lira { + --fa: "\e2bb"; + --fa--fa: "\e2bb\e2bb"; } + +.fa-dollar-sign { + --fa: "\24"; + --fa--fa: "\24\24"; } + +.fa-dollar { + --fa: "\24"; + --fa--fa: "\24\24"; } + +.fa-usd { + --fa: "\24"; + --fa--fa: "\24\24"; } + +.fa-x { + --fa: "\58"; + --fa--fa: "\58\58"; } + +.fa-magnifying-glass-dollar { + --fa: "\f688"; + --fa--fa: "\f688\f688"; } + +.fa-search-dollar { + --fa: "\f688"; + --fa--fa: "\f688\f688"; } + +.fa-users-gear { + --fa: "\f509"; + --fa--fa: "\f509\f509"; } + +.fa-users-cog { + --fa: "\f509"; + --fa--fa: "\f509\f509"; } + +.fa-person-military-pointing { + --fa: "\e54a"; + --fa--fa: "\e54a\e54a"; } + +.fa-building-columns { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-bank { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-institution { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-museum { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-university { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-umbrella { + --fa: "\f0e9"; + --fa--fa: "\f0e9\f0e9"; } + +.fa-trowel { + --fa: "\e589"; + --fa--fa: "\e589\e589"; } + +.fa-d { + --fa: "\44"; + --fa--fa: "\44\44"; } + +.fa-stapler { + --fa: "\e5af"; + --fa--fa: "\e5af\e5af"; } + +.fa-masks-theater { + --fa: "\f630"; + --fa--fa: "\f630\f630"; } + +.fa-theater-masks { + --fa: "\f630"; + --fa--fa: "\f630\f630"; } + +.fa-kip-sign { + --fa: "\e1c4"; + --fa--fa: "\e1c4\e1c4"; } + +.fa-hand-point-left { + --fa: "\f0a5"; + --fa--fa: "\f0a5\f0a5"; } + +.fa-handshake-simple { + --fa: "\f4c6"; + --fa--fa: "\f4c6\f4c6"; } + +.fa-handshake-alt { + --fa: "\f4c6"; + --fa--fa: "\f4c6\f4c6"; } + +.fa-jet-fighter { + --fa: "\f0fb"; + --fa--fa: "\f0fb\f0fb"; } + +.fa-fighter-jet { + --fa: "\f0fb"; + --fa--fa: "\f0fb\f0fb"; } + +.fa-square-share-nodes { + --fa: "\f1e1"; + --fa--fa: "\f1e1\f1e1"; } + +.fa-share-alt-square { + --fa: "\f1e1"; + --fa--fa: "\f1e1\f1e1"; } + +.fa-barcode { + --fa: "\f02a"; + --fa--fa: "\f02a\f02a"; } + +.fa-plus-minus { + --fa: "\e43c"; + --fa--fa: "\e43c\e43c"; } + +.fa-video { + --fa: "\f03d"; + --fa--fa: "\f03d\f03d"; } + +.fa-video-camera { + --fa: "\f03d"; + --fa--fa: "\f03d\f03d"; } + +.fa-graduation-cap { + --fa: "\f19d"; + --fa--fa: "\f19d\f19d"; } + +.fa-mortar-board { + --fa: "\f19d"; + --fa--fa: "\f19d\f19d"; } + +.fa-hand-holding-medical { + --fa: "\e05c"; + --fa--fa: "\e05c\e05c"; } + +.fa-person-circle-check { + --fa: "\e53e"; + --fa--fa: "\e53e\e53e"; } + +.fa-turn-up { + --fa: "\f3bf"; + --fa--fa: "\f3bf\f3bf"; } + +.fa-level-up-alt { + --fa: "\f3bf"; + --fa--fa: "\f3bf\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } diff --git a/layout/frontend/b2c/dist/fontawesome/css/solid.css b/layout/frontend/b2c/dist/fontawesome/css/solid.css new file mode 100644 index 0000000..65c265a --- /dev/null +++ b/layout/frontend/b2c/dist/fontawesome/css/solid.css @@ -0,0 +1,19 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } diff --git a/layout/frontend/b2c/dist/js/fonta.js b/layout/frontend/b2c/dist/js/fonta.js new file mode 100644 index 0000000..455a015 --- /dev/null +++ b/layout/frontend/b2c/dist/js/fonta.js @@ -0,0 +1,2 @@ +window.FontAwesomeKitConfig = {"id":10305418,"version":"6.7.2","token":"e89a33a132","method":"css","minify":{"enabled":true},"baseUrl":"https://ka-f.fontawesome.com","license":"free","asyncLoading":{"enabled":false},"autoA11y":{"enabled":true},"baseUrlKit":"https://kit.fontawesome.com","detectConflictsUntil":null,"iconUploads":{},"startupFilename":"free.min.css","v4FontFaceShim":{"enabled":true},"v4shim":{"enabled":true},"v5FontFaceShim":{"enabled":true}}; +!function(t){"function"==typeof define&&define.amd?define("kit-loader",t):t()}((function(){"use strict";function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function e(e){for(var n=1;nt.length)&&(e=t.length);for(var n=0,o=new Array(e);n-1}(t)&&("URLSearchParams"in window?(i=new URL(t)).searchParams.set("token",r):i=i+"?token="+encodeURIComponent(r)),i=i.toString(),new R((function(t,e){if("function"==typeof n)n(i,{mode:"cors",cache:"default"}).then((function(t){if(t.ok)return t.text();throw new Error("")})).then((function(e){t(e)})).catch(e);else if("function"==typeof o){var r=new o;r.addEventListener("loadend",(function(){this.responseText?t(this.responseText):e(new Error(""))}));["abort","error","timeout"].map((function(t){r.addEventListener(t,(function(){e(new Error(""))}))})),r.open("GET",i),r.send()}else{e(new Error(""))}}))}function H(t,e,n){var o=t;return[[/(url\("?)\.\.\/\.\.\/\.\./g,function(t,n){return"".concat(n).concat(e)}],[/(url\("?)\.\.\/webfonts/g,function(t,o){return"".concat(o).concat(e,"/releases/v").concat(n,"/webfonts")}],[/(url\("?)https:\/\/kit-free([^.])*\.fontawesome\.com/g,function(t,n){return"".concat(n).concat(e)}]].forEach((function(t){var e=r(t,2),n=e[0],i=e[1];o=o.replace(n,i)})),o}function q(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=n.document||r,i=A.bind(A,r,[].concat(v,h.map((function(t){return"fa-".concat(t)}))));t.autoA11y.enabled&&o(i);var a=t.subsetPath&&t.baseUrl+"/"+t.subsetPath,c=[];if(a?c.push({id:"fa-main",addOn:void 0,url:a}):c.push({id:"fa-main",addOn:void 0,url:j(t,{filename:t.startupFilename,minify:t.minify.enabled})}),t.v4shim&&t.v4shim.enabled&&c.push({id:"fa-v4-shims",addOn:"-v4-shims"}),t.v5FontFaceShim&&t.v5FontFaceShim.enabled&&c.push({id:"fa-v5-font-face",addOn:"-v5-font-face"}),t.v4FontFaceShim&&t.v4FontFaceShim.enabled&&c.push({id:"fa-v4-font-face",addOn:"-v4-font-face"}),!a&&t.customIconsCssPath){var l=t.customIconsCssPath.indexOf("kit-upload.css")>-1?t.baseUrlKit:t.baseUrl,f=l+"/"+t.customIconsCssPath;c.push({id:"fa-kit-upload",url:f})}var u=c.map((function(o){return new R((function(r,i){var a=o.url||j(t,{addOn:o.addOn,minify:t.minify.enabled}),c={id:o.id},l=t.subset?c:e(e(e({},n),c),{},{baseUrl:t.baseUrl,version:t.version,id:o.id,contentFilter:function(t,e){return H(t,e.baseUrl,e.version)}});J(a,n).then((function(t){r(G(t,l))})).catch(i)}))}));return R.all(u)}function G(t,e){var n=e.contentFilter||function(t,e){return t},o=document.createElement("style"),r=document.createTextNode(n(t,e));return o.appendChild(r),o.media="all",e.id&&o.setAttribute("id",e.id),e&&e.detectingConflicts&&e.detectionIgnoreAttr&&o.setAttributeNode(document.createAttribute(e.detectionIgnoreAttr)),o}function X(t,n){n.autoA11y=t.autoA11y.enabled,"pro"===t.license&&(n.autoFetchSvg=!0,n.fetchSvgFrom=t.baseUrl+"/releases/"+("latest"===t.version?"latest":"v".concat(t.version))+"/svgs",n.fetchUploadedSvgFrom=t.uploadsUrl);var o=[];return t.v4shim.enabled&&o.push(new R((function(o,r){J(j(t,{addOn:"-v4-shims",minify:t.minify.enabled}),n).then((function(t){o(B(t,e(e({},n),{},{id:"fa-v4-shims"})))})).catch(r)}))),o.push(new R((function(o,r){J(t.subsetPath&&t.baseUrl+"/"+t.subsetPath||j(t,{filename:t.startupFilename,minify:t.minify.enabled}),n).then((function(t){var r=B(t,e(e({},n),{},{id:"fa-main"}));o(function(t,e){var n=e&&void 0!==e.autoFetchSvg?e.autoFetchSvg:void 0,o=e&&void 0!==e.autoA11y?e.autoA11y:void 0;void 0!==o&&t.setAttribute("data-auto-a11y",o?"true":"false");n&&(t.setAttributeNode(document.createAttribute("data-auto-fetch-svg")),t.setAttribute("data-fetch-svg-from",e.fetchSvgFrom),t.setAttribute("data-fetch-uploaded-svg-from",e.fetchUploadedSvgFrom));return t}(r,n))})).catch(r)}))),R.all(o)}function B(t,e){var n=document.createElement("SCRIPT"),o=document.createTextNode(t);return n.appendChild(o),n.referrerPolicy="strict-origin",e.id&&n.setAttribute("id",e.id),e&&e.detectingConflicts&&e.detectionIgnoreAttr&&n.setAttributeNode(document.createAttribute(e.detectionIgnoreAttr)),n}function W(t){var e,n=[],o=document,r=o.documentElement.doScroll,i=(r?/^loaded|^c/:/^loaded|^i|^c/).test(o.readyState);i||o.addEventListener("DOMContentLoaded",e=function(){for(o.removeEventListener("DOMContentLoaded",e),i=1;e=n.shift();)e()}),i?setTimeout(t,0):n.push(t)}function Y(t){"undefined"!=typeof MutationObserver&&new MutationObserver(t).observe(document,{childList:!0,subtree:!0})}try{if(window.FontAwesomeKitConfig){var z=window.FontAwesomeKitConfig,$={detectingConflicts:z.detectConflictsUntil&&new Date<=new Date(z.detectConflictsUntil),detectionIgnoreAttr:"data-fa-detection-ignore",fetch:window.fetch,token:z.token,XMLHttpRequest:window.XMLHttpRequest,document:document},Q=document.currentScript,V=Q?Q.parentElement:document.head;(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"js"===t.method?X(t,e):"css"===t.method?q(t,e,(function(t){W(t),Y(t)})):void 0})(z,$).then((function(t){t.map((function(t){try{V.insertBefore(t,Q?Q.nextSibling:null)}catch(e){V.appendChild(t)}})),$.detectingConflicts&&Q&&W((function(){Q.setAttributeNode(document.createAttribute($.detectionIgnoreAttr));var t=function(t,e){var n=document.createElement("script");return e&&e.detectionIgnoreAttr&&n.setAttributeNode(document.createAttribute(e.detectionIgnoreAttr)),n.src=j(t,{baseFilename:"conflict-detection",fileSuffix:"js",subdir:"js",minify:t.minify.enabled}),n}(z,$);document.body.appendChild(t)}))})).catch((function(t){console.error("".concat("Font Awesome Kit:"," ").concat(t))}))}}catch(d){console.error("".concat("Font Awesome Kit:"," ").concat(d))}})); diff --git a/module/api/.htaccess b/module/api/.htaccess new file mode 100644 index 0000000..bef02fd --- /dev/null +++ b/module/api/.htaccess @@ -0,0 +1,4 @@ + + Order allow,deny + Deny from all + diff --git a/module/api/cronjob_send_custom_notif.php b/module/api/cronjob_send_custom_notif.php index 6780b70..12128af 100644 --- a/module/api/cronjob_send_custom_notif.php +++ b/module/api/cronjob_send_custom_notif.php @@ -2,34 +2,36 @@ error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR); ini_set('display_errors', 1); -function getAccessToken($jsonKeyPath) { +function getAccessToken($jsonKeyPath) +{ try { - - $jwt = generateJWT($jsonKeyPath); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ - 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', - 'assertion' => $jwt, - ])); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/x-www-form-urlencoded', - ]); + $jwt = generateJWT($jsonKeyPath); - $response = curl_exec($ch); - curl_close($ch); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', + 'assertion' => $jwt, + ])); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/x-www-form-urlencoded', + ]); - $jsonResponse = json_decode($response, true); + $response = curl_exec($ch); + curl_close($ch); + + $jsonResponse = json_decode($response, true); } catch (\Throwable $th) { echo $th; } return $jsonResponse['access_token']; } -function generateJWT($jsonKeyPath) { +function generateJWT($jsonKeyPath) +{ $jsonKey = json_decode(file_get_contents($jsonKeyPath), true); $header = base64_encode(json_encode([ @@ -55,8 +57,10 @@ function generateJWT($jsonKeyPath) { return $signatureInput . '.' . $signature; } -function send($token, $username, $message){ - $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; +function send($token, $username, $message) +{ + // $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; + $jsonKeyPath = 'secrets/notifications-c5c54-a9705bfea23c.json'; $accessToken = getAccessToken($jsonKeyPath); $json = json_encode([ @@ -73,18 +77,18 @@ function send($token, $username, $message){ "apns" => [ "payload" => [ "aps" => [ - "content-available" => 1 // Требуется для пробуждения приложения на iOS + "content-available" => 1 ] ] ] ] - ]); + ]); $url = "https://fcm.googleapis.com/v1/projects/notifications-c5c54/messages:send"; $ch = curl_init($url); - - + + $headers = [ 'Authorization: Bearer ' . $accessToken, 'Content-Type: application/json; charset=UTF-8', @@ -99,7 +103,7 @@ function send($token, $username, $message){ curl_close($ch); - + } @@ -111,7 +115,7 @@ $db_port = $env['MAIN_MYSQL_DB_PORT']; $db_user = $env['MAIN_MYSQL_DB_USER']; $db_pass = $env['MAIN_MYSQL_DB_PASS']; $db_schema = $env['MAIN_MYSQL_DB_SCHEMA']; - + $conn = new mysqli($db_host, $db_user, $db_pass, $db_schema, $db_port); @@ -130,16 +134,16 @@ if ($result_collections->num_rows > 0) { print_r($row["description"]); print_r($row["id"]); $article_name = $row["description"]; - + echo "
--------------------
"; $department_ids = []; $role_ids = []; - + $query_get_department = "SELECT * FROM intranet_teil_link WHERE content_type = 'collection' AND content_id = " . $row['id']; $result_department = $conn->query($query_get_department); - + while ($row_department = $result_department->fetch_assoc()) { $department_ids[] = $row_department['main_department_id']; var_dump($row_department); @@ -149,19 +153,19 @@ if ($result_collections->num_rows > 0) { $query_get_role = "SELECT * FROM intranet_role_link WHERE content_type = 'collection' AND content_id = " . $row['id']; $result_role = $conn->query($query_get_role); - + while ($row_role = $result_role->fetch_assoc()) { $role_ids[] = $row_role['main_role_id']; var_dump($row_role); } - + // Create comma-separated strings $abteilung = implode(',', $department_ids); $role = implode(',', $role_ids); - + $abteilungArray = explode(',', $abteilung); $roleArray = explode(',', $role); - + $mergedArray = []; foreach ($abteilungArray as $abteilung) { @@ -173,7 +177,7 @@ if ($result_collections->num_rows > 0) { } } - + $tokenArray = []; // print_r($mergedArray); // print_r($abteilungArray); @@ -181,12 +185,12 @@ if ($result_collections->num_rows > 0) { var_dump($mergedArray); foreach ($mergedArray as $element) { - if ( $element['abteilung'] == "" && $element['role'] == "") { - + if ($element['abteilung'] == "" && $element['role'] == "") { + $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1"; - } else if ( $element['abteilung'] == "") { + } else if ($element['abteilung'] == "") { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_role_id = " . $element['role']; - } else if ( $element['role'] == "") { + } else if ($element['role'] == "") { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung']; } else { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung'] . " and main_role_id = " . $element['role']; @@ -195,12 +199,12 @@ if ($result_collections->num_rows > 0) { var_dump($sql); $result = $conn->query($sql); if ($result->num_rows > 0) { - while($row = $result->fetch_assoc()) { - $query = "SELECT DISTINCT main_contact.id, main_contact.name, token_contact.token as 'token' FROM main_contact LEFT JOIN token_contact ON token_contact.contact_id = main_contact.id WHERE main_contact.id = '".$row['main_contact_id']."'"; + while ($row = $result->fetch_assoc()) { + $query = "SELECT DISTINCT main_contact.id, main_contact.name, token_contact.token as 'token' FROM main_contact LEFT JOIN token_contact ON token_contact.contact_id = main_contact.id WHERE main_contact.id = '" . $row['main_contact_id'] . "'"; // var_dump($query); $user_result = $conn->query($query); if ($user_result->num_rows > 0) { - while($contact = $user_result->fetch_assoc()) { + while ($contact = $user_result->fetch_assoc()) { if ($contact['token'] != null && $contact['token'] != "") { // send($contact['token'], "Intranet", "Neuer Beitrag im Intranet"); $contact_info = [ @@ -210,7 +214,7 @@ if ($result_collections->num_rows > 0) { ]; if (!in_array($contact_info, $tokenArray, true)) { $tokenArray[] = $contact_info; - + } else { // echo "Already in array"; } @@ -226,7 +230,7 @@ if ($result_collections->num_rows > 0) { // send($token['token'], "Neuer Beitrag im Intranet", $article_name); // } - + } } else { echo "No collections found for today."; diff --git a/module/api/send_custom_notif.inc.php b/module/api/send_custom_notif.inc.php index d457caa..425c98f 100644 --- a/module/api/send_custom_notif.inc.php +++ b/module/api/send_custom_notif.inc.php @@ -11,34 +11,36 @@ $domain = $_POST['domain']; $input_collection_id = $_POST['input_collection_id']; -function getAccessToken($jsonKeyPath) { +function getAccessToken($jsonKeyPath) +{ try { - - $jwt = generateJWT($jsonKeyPath); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ - 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', - 'assertion' => $jwt, - ])); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/x-www-form-urlencoded', - ]); + $jwt = generateJWT($jsonKeyPath); - $response = curl_exec($ch); - curl_close($ch); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', + 'assertion' => $jwt, + ])); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/x-www-form-urlencoded', + ]); - $jsonResponse = json_decode($response, true); + $response = curl_exec($ch); + curl_close($ch); + + $jsonResponse = json_decode($response, true); } catch (\Throwable $th) { echo $th; } return $jsonResponse['access_token']; } -function generateJWT($jsonKeyPath) { +function generateJWT($jsonKeyPath) +{ $jsonKey = json_decode(file_get_contents($jsonKeyPath), true); $header = base64_encode(json_encode([ @@ -64,13 +66,15 @@ function generateJWT($jsonKeyPath) { return $signatureInput . '.' . $signature; } -function send($token, $username, $message){ - $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; +function send($token, $username, $message) +{ + // $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; + $jsonKeyPath = 'secrets/notifications-c5c54-a9705bfea23c.json'; $accessToken = getAccessToken($jsonKeyPath); /* - + { "message": { "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJzaG9ydGN1dCI6ImVhIn0.mcO9WT0VV_lXJp48mu3XF9E9bKEdCitoKogAk067LwQ", @@ -83,7 +87,7 @@ function send($token, $username, $message){ } } } - + */ $json = json_encode([ @@ -100,12 +104,12 @@ function send($token, $username, $message){ "apns" => [ "payload" => [ "aps" => [ - "content-available" => 1 // Требуется для пробуждения приложения на iOS + "content-available" => 1 ] ] ] ] - ]); + ]); @@ -114,12 +118,12 @@ function send($token, $username, $message){ $ch = curl_init($url); - - - - + + + + $headers = [ 'Authorization: Bearer ' . $accessToken, 'Content-Type: application/json; charset=UTF-8', @@ -172,7 +176,7 @@ if ($result->num_rows > 0) { echo "collection not found"; die(); } - + $tokenArray = []; // print_r($mergedArray); // print_r($abteilungArray); @@ -180,24 +184,24 @@ $tokenArray = []; foreach ($mergedArray as $element) { // $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung'] . " and main_role_id = " . $element['role']; // var_dump($sql); - if ( $element['abteilung'] == "" && $element['role'] == "") { - + if ($element['abteilung'] == "" && $element['role'] == "") { + $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1"; - } else if ( $element['abteilung'] == "") { + } else if ($element['abteilung'] == "") { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_role_id = " . $element['role']; - } else if ( $element['role'] == "") { + } else if ($element['role'] == "") { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung']; } else { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung'] . " and main_role_id = " . $element['role']; } $result = $conn->query($sql); if ($result->num_rows > 0) { - while($row = $result->fetch_assoc()) { - $query = "SELECT DISTINCT main_contact.id, main_contact.name, token_contact.token as 'token' FROM main_contact LEFT JOIN token_contact ON token_contact.contact_id = main_contact.id WHERE main_contact.id = '".$row['main_contact_id']."'"; + while ($row = $result->fetch_assoc()) { + $query = "SELECT DISTINCT main_contact.id, main_contact.name, token_contact.token as 'token' FROM main_contact LEFT JOIN token_contact ON token_contact.contact_id = main_contact.id WHERE main_contact.id = '" . $row['main_contact_id'] . "'"; // var_dump($query); $user_result = $conn->query($query); if ($user_result->num_rows > 0) { - while($contact = $user_result->fetch_assoc()) { + while ($contact = $user_result->fetch_assoc()) { if ($contact['token'] != null && $contact['token'] != "") { // send($contact['token'], "Intranet", "Neuer Beitrag im Intranet"); $contact_info = [ diff --git a/module/api/send_notif.inc.php b/module/api/send_notif.inc.php index d745ac1..72e29bf 100644 --- a/module/api/send_notif.inc.php +++ b/module/api/send_notif.inc.php @@ -8,34 +8,36 @@ $domain = $_POST['domain']; $news_id = $_POST["news_id"]; -function getAccessToken($jsonKeyPath) { +function getAccessToken($jsonKeyPath) +{ try { - - $jwt = generateJWT($jsonKeyPath); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ - 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', - 'assertion' => $jwt, - ])); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/x-www-form-urlencoded', - ]); + $jwt = generateJWT($jsonKeyPath); - $response = curl_exec($ch); - curl_close($ch); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', + 'assertion' => $jwt, + ])); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/x-www-form-urlencoded', + ]); - $jsonResponse = json_decode($response, true); + $response = curl_exec($ch); + curl_close($ch); + + $jsonResponse = json_decode($response, true); } catch (\Throwable $th) { echo $th; } return $jsonResponse['access_token']; } -function generateJWT($jsonKeyPath) { +function generateJWT($jsonKeyPath) +{ $jsonKey = json_decode(file_get_contents($jsonKeyPath), true); $header = base64_encode(json_encode([ @@ -65,7 +67,8 @@ function generateJWT($jsonKeyPath) { -$jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; +// $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; +$jsonKeyPath = 'secrets/notifications-c5c54-a9705bfea23c.json'; $accessToken = getAccessToken($jsonKeyPath); @@ -75,7 +78,7 @@ $accessToken = getAccessToken($jsonKeyPath); $url = 'https://fcm.googleapis.com/v1/projects/notifications-c5c54/messages:send'; $host = $_SERVER['HTTP_HOST']; - + // HERE NEW LOGIC @@ -84,31 +87,31 @@ $mysql_con = new mysqli("localhost", "web4_intranet", "WewJedjuAbEynk3", "web4_i $allowed_contact_ids = []; -$all_mandants_query = "SELECT main_mandant_id FROM `main_collection_mandant_link` WHERE main_collection_id = ".(int)$news_id; +$all_mandants_query = "SELECT main_mandant_id FROM `main_collection_mandant_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_mandants = @mysqli_query($mysql_con, $all_mandants_query); while ($row = @mysqli_fetch_assoc($sql_all_mandants)) { $all_mandants[] = $row["main_mandant_id"]; } -$all_departments_query = "SELECT main_department_id FROM `main_collection_department_link` WHERE main_collection_id = ".(int)$news_id; +$all_departments_query = "SELECT main_department_id FROM `main_collection_department_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_departments = @mysqli_query($mysql_con, $all_departments_query); while ($row = @mysqli_fetch_assoc($sql_all_departments)) { $all_departments[] = $row["main_department_id"]; } -$all_fachbereich_query = "SELECT main_fachbereich_id FROM `main_collection_fachbereich_link` WHERE main_collection_id = ".(int)$news_id; +$all_fachbereich_query = "SELECT main_fachbereich_id FROM `main_collection_fachbereich_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_fachbereichs = @mysqli_query($mysql_con, $all_fachbereich_query); while ($row = @mysqli_fetch_assoc($sql_all_fachbereichs)) { $all_fachbereichs[] = $row["main_fachbereich_id"]; } -$all_einrichtungen_query = "SELECT main_einricht_id FROM `main_collection_einricht_link` WHERE main_collection_id = ".(int)$news_id; +$all_einrichtungen_query = "SELECT main_einricht_id FROM `main_collection_einricht_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_einrichtungen = @mysqli_query($mysql_con, $all_einrichtungen_query); while ($row = @mysqli_fetch_assoc($sql_all_einrichtungen)) { $all_einrichtungen[] = $row["main_einricht_id"]; } -$all_role_query = "SELECT main_role_id FROM `main_collection_role_link` WHERE main_collection_id = ".(int)$news_id; +$all_role_query = "SELECT main_role_id FROM `main_collection_role_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_rolles = @mysqli_query($mysql_con, $all_role_query); while ($row = @mysqli_fetch_assoc($sql_all_rolles)) { $all_rolles[] = $row["main_role_id"]; @@ -125,7 +128,7 @@ while ($row = mysqli_fetch_assoc($sql_get_all_contacts)) { $count++; // 1. Mandant if (!empty($all_mandants) && !in_array($row["main_mandant_id"], $all_mandants)) { - continue; + continue; } // 2. Department @@ -151,7 +154,7 @@ while ($row = mysqli_fetch_assoc($sql_get_all_contacts)) { $allowed_contact_ids = array_unique($allowed_contact_ids); foreach ($allowed_contact_ids as $cid) { - $query_contact_token = "SELECT * FROM token_contact WHERE contact_id = ".(int)$cid." AND in_system = 1 ORDER BY id DESC LIMIT 1"; + $query_contact_token = "SELECT * FROM token_contact WHERE contact_id = " . (int) $cid . " AND in_system = 1 ORDER BY id DESC LIMIT 1"; $sql_contactn_token = @mysqli_query($mysql_con, $query_contact_token); @@ -159,17 +162,19 @@ foreach ($allowed_contact_ids as $cid) { $contactId = trim($row_token['contact_id'] ?? ''); - $token = trim($row_token['token'] ?? ''); + $token = trim($row_token['token'] ?? ''); - if ($contactId === '' || $contactId === 'undefined' || - $token === '' || $token === 'undefined') { + if ( + $contactId === '' || $contactId === 'undefined' || + $token === '' || $token === 'undefined' + ) { continue; } $data = [ 'message' => [ - 'token' => $row_token["token"], + 'token' => $row_token["token"], 'notification' => [ 'title' => $title, 'body' => $body, diff --git a/module/certificate/old_show_certificate.inc.php b/module/certificate/old_show_certificate.inc.php index 5cbecfb..7979479 100644 --- a/module/certificate/old_show_certificate.inc.php +++ b/module/certificate/old_show_certificate.inc.php @@ -10,7 +10,7 @@ function get_certificate_contact_banner(){ $query = "SELECT * FROM main_contact LEFT JOIN main_contact_profile_content ON main_contact.id = main_contact_profile_content.main_contact_id WHERE main_contact_id = ".$GLOBALS['main_contact']['id']; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $main_contact = @mysqli_fetch_array($result); - $contact_image = "platzhalter-mann-compressor.jpg"; + $contact_image = "platzhalter.png"; if(isset($main_contact['image']) && $main_contact['image'] != ""){ $contact_image = $main_contact['image']; }?> diff --git a/module/certificate/show_certificate.inc.php b/module/certificate/show_certificate.inc.php index fb4952e..1f56d4f 100644 --- a/module/certificate/show_certificate.inc.php +++ b/module/certificate/show_certificate.inc.php @@ -10,7 +10,7 @@ function get_certificate_contact_banner(){ $query = "SELECT * FROM main_contact LEFT JOIN main_contact_profile_content ON main_contact.id = main_contact_profile_content.main_contact_id WHERE main_contact_id = ".$GLOBALS['main_contact']['id']; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $main_contact = @mysqli_fetch_array($result); - $contact_image = "platzhalter-mann-compressor.jpg"; + $contact_image = "platzhalter.png"; if(isset($main_contact['image']) && $main_contact['image'] != ""){ $contact_image = $main_contact['image']; }?> diff --git a/module/collection/edit_collection.inc.php b/module/collection/edit_collection.inc.php index 761f8a9..40439df 100644 --- a/module/collection/edit_collection.inc.php +++ b/module/collection/edit_collection.inc.php @@ -278,6 +278,7 @@ function save_collection($firstsave = FALSE) $input_registration = ($_POST["input_registration"] == "on") ? 1 : 0; $input_active = ($_POST["input_active"] == "on") ? 1 : 0; $input_readable = ($_POST["input_readable"] == "on") ? 1 : 0; + $input_is_archived = (isset($_POST["input_is_archived"]) && $_POST["input_is_archived"] == "on") ? 1 : 0; $registration_contactform_id = 0; if ($input_registration == 1) { @@ -312,7 +313,8 @@ function save_collection($firstsave = FALSE) modified_date = " . time() . ", modified_user = " . (int)$GLOBALS["admin_user"]['id'] . ", active = 1, - readable = " . $input_readable . " + readable = " . $input_readable . ", + is_archived = " . $input_is_archived . " WHERE id = '" . $_REQUEST["input_collection_id"] . "' LIMIT 1"; $inserted = FALSE; @@ -326,7 +328,7 @@ function save_collection($firstsave = FALSE) $sorting = ($sorting["newsorting"] <> "") ? $sorting = $sorting["newsorting"] : $sorting = 1; $insertquery = "INSERT INTO main_collection - (main_language_id, main_collection_setup_id, description, registration, registration_contactform_id, creation_date, modified_date, modified_user, validity_from, validity_to, sorting) + (main_language_id, main_collection_setup_id, description, registration, registration_contactform_id, creation_date, modified_date, modified_user, validity_from, validity_to, sorting, is_archived) VALUES ( " . $GLOBALS["language"]['id'] . ", '" . $collection_setup_id . "', @@ -338,7 +340,8 @@ function save_collection($firstsave = FALSE) " . (int)$GLOBALS["admin_user"]['id'] . ", " . $input_validity_from . ", " . $input_validity_to . ", - " . $sorting . " + " . $sorting . ", + " . $input_is_archived . " )"; $inserted = TRUE; } @@ -1343,7 +1346,7 @@ function create_collection_input_field($fieldSetup, $collectionData) { }else{ echo ''; $video_erweiterungen = array('mp4', 'avi', 'mkv', 'mov', 'wmv'); @@ -1937,6 +1940,56 @@ function copy_collection($addCopySuffix = TRUE) { @mysqli_query($GLOBALS['mysql_con'], $query); } } + + // Filegallery + if($lineRow['main_sitepart_id'] == 5) { + $query = "SELECT * FROM filegallery_header WHERE id = " . $lineRow['main_sitepart_header_id']; + $filegalleryHeader = @mysqli_query($GLOBALS['mysql_con'], $query); + if(@mysqli_num_rows($filegalleryHeader) > 0) { + if (!defined('PATH_ORIGINAL_FILEGALLERY')) { + require_once(MODULE_PATH . "filegallery/filegallery.config.inc.php"); + } + + $contentColumns = get_column_names_to_copy("filegallery_header"); + $query = "INSERT INTO filegallery_header + SELECT " . join(", ", $contentColumns) . " FROM filegallery_header + WHERE id = " . $lineRow['main_sitepart_header_id']; + @mysqli_query($GLOBALS['mysql_con'], $query); + $newContentID = mysqli_insert_id($GLOBALS['mysql_con']); + insert_copy_link($lineRow['main_sitepart_header_id'], $newContentID, "filegallery_header"); + + $query = "UPDATE main_collection_link SET main_sitepart_header_id = '" . $newContentID . "' WHERE id = " . $newLineId; + @mysqli_query($GLOBALS['mysql_con'], $query); + + $lineColumns = get_column_names_to_copy("filegallery_line"); + $query = "SELECT * FROM filegallery_line WHERE header_id = " . $lineRow['main_sitepart_header_id']; + $filegalleryLineResult = @mysqli_query($GLOBALS['mysql_con'], $query); + while($filegalleryLineRow = @mysqli_fetch_array($filegalleryLineResult)) { + $finalLineColumns = $lineColumns; + $finalLineColumns['header_id'] = $newContentID; + + $query = "INSERT INTO filegallery_line + SELECT " . join(", ", $finalLineColumns) . " FROM filegallery_line + WHERE id = " . $filegalleryLineRow['id']; + @mysqli_query($GLOBALS['mysql_con'], $query); + $newFilegalleryLineId = mysqli_insert_id($GLOBALS['mysql_con']); + insert_copy_link($filegalleryLineRow['id'], $newFilegalleryLineId, "filegallery_line"); + + if (!empty($filegalleryLineRow['filename'])) { + $filenameParts = explode('_', $filegalleryLineRow['filename'], 2); + $sourceFilename = $filegalleryLineRow['filename']; + $baseFilename = (count($filenameParts) === 2) ? $filenameParts[1] : $sourceFilename; + $targetFilename = $newFilegalleryLineId . "_" . $baseFilename; + + if (file_exists(PATH_ORIGINAL_FILEGALLERY . $sourceFilename)) { + copy(PATH_ORIGINAL_FILEGALLERY . $sourceFilename, PATH_ORIGINAL_FILEGALLERY . $targetFilename); + $query = "UPDATE filegallery_line SET filename = '" . mysqli_real_escape_string($GLOBALS['mysql_con'], $targetFilename) . "' WHERE id = " . $newFilegalleryLineId; + @mysqli_query($GLOBALS['mysql_con'], $query); + } + } + } + } + } // Youtube diff --git a/module/collection/edit_collection_cardform.inc.php b/module/collection/edit_collection_cardform.inc.php index 2abd8c4..67f5d99 100644 --- a/module/collection/edit_collection_cardform.inc.php +++ b/module/collection/edit_collection_cardform.inc.php @@ -59,7 +59,15 @@ $sorting_values = array( \ No newline at end of file diff --git a/module/image/show_image.inc.php b/module/image/show_image.inc.php index c10724f..bc60bda 100644 --- a/module/image/show_image.inc.php +++ b/module/image/show_image.inc.php @@ -2,9 +2,19 @@ $query = "SELECT * FROM image_header WHERE id = '" . $sitepart_id . "' LIMIT 1"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); + if (@mysqli_num_rows($result) == 1) { $image = @mysqli_fetch_array($result); + + // Use module path for intranet images + if (!empty($image["content"]) && strpos($image["content"], 'intranet') !== false) { + $imagePath = '/module/' . ltrim($image["content"], '/'); + } else { + $imagePath = '/userdata/' . ltrim($image["content"], '/'); + } + echo "\n
\n"; - echo ""; + echo ""; echo "
\n"; -} \ No newline at end of file +} +?> \ No newline at end of file diff --git a/module/intranet/intranet_functions.inc.php b/module/intranet/intranet_functions.inc.php index 1ed355d..40cca4c 100644 --- a/module/intranet/intranet_functions.inc.php +++ b/module/intranet/intranet_functions.inc.php @@ -3,6 +3,9 @@ support_login_listener(); if(isset($_SESSION['login_id']) && $_SESSION['login_id'] != 0){ + // if ($_SESSION['login_id'] == "827") { + // $_SESSION['login_id'] = "351"; + // } check_if_read_collection($_GET['collection_id']); update_contact_last_interaction($_SESSION['login_id']); }else{ @@ -49,12 +52,19 @@ function support_login_listener() { } } break; - case "change_mandant": - $current_mandant_id = $_GET['id']; - $query = "UPDATE main_contact SET current_mandant_id = $current_mandant_id WHERE id = ".$GLOBALS['main_contact']['id']; - @mysqli_query($GLOBALS['mysql_con'], $query); - header('location:' . $_SERVER['HTTP_REFERER']); - break; + case "change_mandant": + $current_mandant_id = (int)$_GET['id']; + if ($current_mandant_id <= 0) { + $current_mandant_id = (int)$GLOBALS['main_contact']['master_mandant_id']; + } + + $query = "UPDATE main_contact + SET current_mandant_id = {$current_mandant_id} + WHERE id = " . (int)$GLOBALS['main_contact']['id']; + mysqli_query($GLOBALS['mysql_con'], $query); + + header('location:' . $_SERVER['HTTP_REFERER']); + exit; case "intranet_register_finish": $password_hash = md5($_POST["input_password"]); $email = $_POST["input_email"]; diff --git a/module/intranet/intranet_login.php b/module/intranet/intranet_login.php index b7d51a9..0544ff5 100644 --- a/module/intranet/intranet_login.php +++ b/module/intranet/intranet_login.php @@ -7,6 +7,7 @@ require_once("../../mysyde/common/version_comment.inc.php"); require_once("intranet_functions.inc.php"); + if (isset($_POST["fgztiknxbhhk"])) { $_SESSION['login_id'] = $_POST["fgztiknxbhhk"]; header('location:/'); diff --git a/module/intranet/kontaktdaten.inc.php b/module/intranet/kontaktdaten.inc.php index 63e2b64..12129eb 100644 --- a/module/intranet/kontaktdaten.inc.php +++ b/module/intranet/kontaktdaten.inc.php @@ -263,7 +263,7 @@ function getList($current_mandant) { echo ''; echo ''; if ($value_users['image'] == "") { - echo ""; + echo ""; } else { echo ""; } @@ -276,7 +276,7 @@ function getList($current_mandant) { echo '
"; if($image == ""){ - echo "
"; + echo "
"; }else { echo "
"; } diff --git a/module/intranet/person_card.php b/module/intranet/person_card.php index 69077e1..5f3d710 100644 --- a/module/intranet/person_card.php +++ b/module/intranet/person_card.php @@ -27,7 +27,7 @@ WHERE
= 1) { @@ -55,7 +56,7 @@ try { } } - $query = "SELECT main_collection.* FROM main_collection WHERE id IN (" . join(",", $array) . ")"; + $query = "SELECT main_collection.* FROM main_collection WHERE (is_archived = 0 OR is_archived IS NULL) AND id IN (" . join(",", $array) . ")"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); if (@mysqli_num_rows($result) == 0) { echo "Keine Suchergebnisse gefunden."; @@ -90,7 +91,7 @@ try { function all_posts() { - $query = "SELECT DISTINCT main_collection.* FROM main_collection LEFT JOIN knowledgecenter_collection_link ON main_collection.id = knowledgecenter_collection_link.main_collection_id WHERE main_collection_setup_id = 3"; + $query = "SELECT DISTINCT main_collection.* FROM main_collection LEFT JOIN knowledgecenter_collection_link ON main_collection.id = knowledgecenter_collection_link.main_collection_id WHERE main_collection_setup_id = 3 AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL)"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $count = @mysqli_num_rows($result); ?> @@ -157,7 +158,7 @@ try { function marked_posts() { - $query = "SELECT COUNT(*) AS count FROM main_collection_mark WHERE main_contact_id = " . $GLOBALS['main_contact']['id']; + $query = "SELECT COUNT(*) AS count FROM main_collection_mark INNER JOIN main_collection ON main_collection.id = main_collection_mark.main_collection_id WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL)"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $count = @mysqli_fetch_array($result); ?>
@@ -191,7 +192,7 @@ try { function bookmarks() { - $query = "SELECT * FROM main_collection LEFT JOIN main_collection_mark ON main_collection.id = main_collection_mark.main_collection_id WHERE main_contact_id = " . $GLOBALS['main_contact']['id']; + $query = "SELECT * FROM main_collection LEFT JOIN main_collection_mark ON main_collection.id = main_collection_mark.main_collection_id WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL)"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); ?>
@@ -246,7 +247,7 @@ try { function count_posts($category_id) { - $query = "SELECT knowledgecenter_collection_link.* FROM knowledgecenter_collection_link LEFT JOIN main_collection_mandant_link ON knowledgecenter_collection_link.main_collection_id = main_collection_mandant_link.main_collection_id WHERE knowledgecenter_category_id = " . $category_id; + $query = "SELECT knowledgecenter_collection_link.* FROM knowledgecenter_collection_link INNER JOIN main_collection ON main_collection.id = knowledgecenter_collection_link.main_collection_id LEFT JOIN main_collection_mandant_link ON knowledgecenter_collection_link.main_collection_id = main_collection_mandant_link.main_collection_id WHERE knowledgecenter_category_id = " . $category_id . " AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL)"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); if (@mysqli_num_rows($result) == 0) { return; @@ -343,7 +344,7 @@ try { $left_joint_main_fachbereich = "LEFT JOIN main_collection_fachbereich_link ON main_collection.id = main_collection_fachbereich_link.main_collection_id"; $left_joint_main_einricht = "LEFT JOIN main_collection_einricht_link ON main_collection.id = main_collection_einricht_link.main_collection_id"; - $query = "SELECT DISTINCT main_collection.* FROM main_collection " . $left_joint_main_mandant . " " . $left_join_main_department . " " . $left_joint_main_fachbereich . " " . $left_joint_main_einricht . " " . $left_joint_main_role . " LEFT JOIN knowledgecenter_collection_link ON knowledgecenter_collection_link.main_collection_id = main_collection.id WHERE knowledgecenter_collection_link.knowledgecenter_category_id = $category_id AND knowledgecenter_category_id != 0 AND (main_collection_department_link.main_department_id IN(" . implode(",", $department) . ") OR main_collection_department_link.main_department_id IS NULL) AND (main_collection_mandant_link.main_mandant_id IN(" . implode(",", $mandants) . ") OR main_collection_mandant_link.main_mandant_id IS NULL) AND (main_collection_fachbereich_link.main_fachbereich_id IN(" . implode(",", $fachbereiches) . ") OR main_collection_fachbereich_link.main_fachbereich_id IS NULL) AND (main_collection_einricht_link.main_einricht_id IN(" . implode(",", $einrichts) . ") OR main_collection_einricht_link.main_einricht_id IS NULL) AND (main_collection_role_link.main_role_id IN(" . implode(",", $role) . ") OR main_collection_role_link.main_role_id IS NULL) ORDER BY main_collection.description ASC"; + $query = "SELECT DISTINCT main_collection.* FROM main_collection " . $left_joint_main_mandant . " " . $left_join_main_department . " " . $left_joint_main_fachbereich . " " . $left_joint_main_einricht . " " . $left_joint_main_role . " LEFT JOIN knowledgecenter_collection_link ON knowledgecenter_collection_link.main_collection_id = main_collection.id WHERE knowledgecenter_collection_link.knowledgecenter_category_id = $category_id AND knowledgecenter_category_id != 0 AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL) AND (main_collection_department_link.main_department_id IN(" . implode(",", $department) . ") OR main_collection_department_link.main_department_id IS NULL) AND (main_collection_mandant_link.main_mandant_id IN(" . implode(",", $mandants) . ") OR main_collection_mandant_link.main_mandant_id IS NULL) AND (main_collection_fachbereich_link.main_fachbereich_id IN(" . implode(",", $fachbereiches) . ") OR main_collection_fachbereich_link.main_fachbereich_id IS NULL) AND (main_collection_einricht_link.main_einricht_id IN(" . implode(",", $einrichts) . ") OR main_collection_einricht_link.main_einricht_id IS NULL) AND (main_collection_role_link.main_role_id IN(" . implode(",", $role) . ") OR main_collection_role_link.main_role_id IS NULL) ORDER BY main_collection.description ASC"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); if (@mysqli_num_rows($result) == 0) { return; diff --git a/module/learning/show_unit_contact.inc.php b/module/learning/show_unit_contact.inc.php index 38bc1db..5965064 100644 --- a/module/learning/show_unit_contact.inc.php +++ b/module/learning/show_unit_contact.inc.php @@ -10,7 +10,7 @@ function get_contact_banner(){ $query = "SELECT * FROM main_contact LEFT JOIN main_contact_profile_content ON main_contact.id = main_contact_profile_content.main_contact_id WHERE main_contact_id = ".$GLOBALS['main_contact']['id']; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $main_contact = @mysqli_fetch_array($result); - $contact_image = "platzhalter-mann-compressor.jpg"; + $contact_image = "platzhalter.png"; if(isset($main_contact['image']) && $main_contact['image'] != ""){ $contact_image = $main_contact['image']; }?> diff --git a/module/qm_updates/qm_updates.inc.php b/module/qm_updates/qm_updates.inc.php index 9a9d9f9..d7b767b 100644 --- a/module/qm_updates/qm_updates.inc.php +++ b/module/qm_updates/qm_updates.inc.php @@ -6,11 +6,11 @@ function get_all_knowledgebase_articles($period = "") { if ($period == "") { - $query = "SELECT * FROM `main_collection` where main_collection_setup_id = 3 and description != '' ORDER BY creation_date DESC LIMIT 30"; + $query = "SELECT * FROM `main_collection` WHERE main_collection_setup_id = 3 AND (is_archived = 0 OR is_archived IS NULL) AND description != '' ORDER BY creation_date DESC LIMIT 30"; } else { // Zeitraum in Tagen in Timestamp umwandeln $timestamp = time() - ($period * 24 * 60 * 60); - $query = "SELECT * FROM `main_collection` where main_collection_setup_id = 3 and creation_date >= $timestamp and description != '' ORDER BY creation_date DESC"; + $query = "SELECT * FROM `main_collection` WHERE main_collection_setup_id = 3 AND (is_archived = 0 OR is_archived IS NULL) AND creation_date >= $timestamp AND description != '' ORDER BY creation_date DESC"; } $result = mysqli_query($GLOBALS['mysql_con'], $query); diff --git a/module/ticketcenter/css/cardform.css b/module/ticketcenter/css/cardform.css new file mode 100644 index 0000000..3db9f69 --- /dev/null +++ b/module/ticketcenter/css/cardform.css @@ -0,0 +1,417 @@ +:root { + --main-nav-hight: 200px; + --ticket-nav-hight: 200px; + --cardform_header-height: 90px; +} + +@media (width < 1200px) { + :root { + --main-nav-hight: 260px; + } +} + +@media (width < 991px) { + :root { + --main-nav-hight: 0px; + } + + #hero_content { + display: none !important; + } + + .cardform_body_left { + display: none; + } +} + +body { + overflow: hidden; +} + +.ticket_edit { + .cardform_content .container { + padding: 0px; + } +} + +#area-2 { + padding: 0px; + + >.container { + padding-left: 0px !important; + padding-right: 0px !important; + } +} + +.tickets_cardform { + min-height: calc(100dvh - var(--main-nav-hight)); + max-height: calc(100dvh - var(--main-nav-hight)); + height: calc(100dvh - var(--main-nav-hight)); + background: var(--bg-white); + + .cardform_header { + padding: 20px 30px 20px 30px; + border-bottom: 1px solid var(--border); + display: flex; + justify-content: space-between; + + .cardform_header_left { + display: flex; + align-items: center; + gap: 10px; + + h2 { + margin-bottom: 0px; + } + } + + .cardform_header_right { + display: flex; + gap: 10px; + align-items: center; + + a { + display: block; + } + } + } + + .cardform_body { + display: flex; + max-height: calc(100% - var(--cardform_header-height)); + height: 100%; + + .cardform_body_left { + flex: 1 1 25%; + padding: 10px; + border-right: 1px solid var(--border); + + @media (width < 991px) { + display: none; + + } + + &.is-closed { + width: 40px; + flex: unset; + + .ticket_list { + display: none; + } + + h3 { + display: none; + } + + .body_left_line { + button { + i { + transform: rotate(180deg); + } + } + } + } + + .body_left_line { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + + button { + background: var(--blur); + color: var(--fc-dark); + font-size: var(--fs-500); + padding: 8px; + text-align: left; + font-size: var(--fs-500); + padding: 4px; + } + } + + .ticket_list { + height: calc(100% - 33px); + overflow-y: scroll; + display: flex; + flex-direction: column; + -ms-overflow-style: none; + /* IE and old Edge */ + scrollbar-width: none; + + /* Firefox */ + .ticket_card { + position: relative; + + a { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + } + + font-size: 14px; + border: 1px solid var(--border); + border-radius: 5px; + padding: 10px; + margin-bottom: 10px; + transition-duration: 200ms; + + &:hover { + border-color: var(--primary); + background-color: #FAFAFA; + transition-duration: 200ms; + } + + &.active { + background-color: #FAFAFA; + } + + .card_header { + display: flex; + + .ticket_status { + font-size: 12px; + padding: 2px 5px; + border-radius: 3px; + background-color: #000; + color: #fff; + } + } + + .card_body { + display: flex; + gap: 5px; + margin-top: 3px; + + .ticket_no { + font-weight: var(--fw-bold); + } + + .ticket_desc { + font-weight: var(--fw-bold); + } + } + + .card_footer { + color: gray; + } + } + } + } + + .cardform_body_middle { + flex: 1 1 45%; + /* padding-left: 20px; */ + /* padding-right: 20px; */ + background-color: #F6F5F8; + + .communication { + height: 100%; + + .messages_scroll_container { + min-height: calc(100% - 200px); + max-height: calc(100% - 200px); + overflow-y: auto; + display: flex; + flex-direction: column-reverse; + padding-left: 20px; + padding-right: 20px; + } + + .communication_toolbar { + max-height: 200px; + padding-left: 20px; + padding-right: 20px; + background: #fff; + height: 200px; + border-top: 1px solid var(--border); + + &.communication_toolbar--closed { + display: flex; + align-items: center; + justify-content: center; + + p { + margin: 0; + color: gray; + font-size: var(--fs-500); + } + } + } + } + } + + .cardform_body_right { + flex: 1 1 30%; + border-left: 1px solid var(--border); + padding: 16px; + overflow-y: scroll; + + @media (width < 991px) { + position: fixed; + top: 60px; + right: 0px; + width: 90dvw; + height: calc(100dvh - 60px); + z-index: 100; + background-color: #fff; + padding-bottom: 100px; + } + + &.is-closed { + width: 50px; + flex: unset; + + @media (width < 991px) { + position: static; + } + + h3 { + display: none; + } + + .ticketinfo_body { + display: none; + } + + .ticketinfo_header_status { + display: none; + } + } + + .ticketinfo_header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + + .ticketinfo_header_title { + display: flex; + gap: 10px; + align-items: center; + + h3 { + margin-bottom: 0px; + } + + button { + background: var(--blur); + color: var(--fc-dark); + font-size: var(--fs-500); + padding: 8px; + text-align: left; + font-size: var(--fs-500); + padding: 4px; + } + } + + .ticketinfo_header_status { + font-size: 12px; + padding: 4px 5px; + border-radius: 3px; + background-color: #000; + color: #fff; + } + } + + .ticketinfo_body { + h3 { + border-top: 1px solid var(--border); + padding-top: 12px; + margin-top: 12px; + } + + .ticketinfo_item { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 6px; + + .ticketinfo_item_links { + font-size: var(--fs-500); + color: gray; + width: 50%; + } + + .ticketinfo_item_right { + width: 50%; + font-weight: 700; + } + + } + } + } + + } + +} + +* { + scrollbar-color: unset; +} + + +@media (width < 768px) { + form#form_ticket_card { + padding-bottom: 85px; + } + + body { + overflow: auto; + } +} + +.close-ticket-modal { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + z-index: 1000; + + .close-ticket-modal-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background: white; + padding: 20px; + border-radius: 8px; + min-width: 300px; + border: 1px solid var(--border); + } + + .close-ticket-warning { + color: #d32f2f; + font-weight: bold; + } + + .close-ticket-modal-buttons { + text-align: right; + gap: 10px; + display: flex; + justify-content: flex-end; + margin-top: 20px; + + .btn-cancel { + background: #ededed; + text-align: center; + padding: 10px; + border-radius: var(--br); + color: black; + } + + .btn-confirm { + background: var(--clr-mandant); + color: var(--fc-white-8); + padding: 10px 15px; + border-radius: var(--br); + cursor: pointer; + border: none; + } + } + +} \ No newline at end of file diff --git a/module/ticketcenter/css/create_cardform.css b/module/ticketcenter/css/create_cardform.css new file mode 100644 index 0000000..018dd0a --- /dev/null +++ b/module/ticketcenter/css/create_cardform.css @@ -0,0 +1,55 @@ +:root { + --main-nav-width: 250px; + --ticket-nav-width: 200px; +} + +.ticket_edit { + .create_cardform_content .container { + padding: 0px; + } +} +#area-2 { + padding: 0px; + > .container { + padding-left: 0px !important; + padding-right: 0px !important; + } +} + +.tickets_create_cardform { + min-height: calc(100dvh - var(--ticket-nav-width)); + background: var(--bg-white); + .create_cardform_header { + padding: 20px 30px 20px 30px; + border-bottom: 1px solid var(--border); + display: flex; + justify-content: space-between; + .create_cardform_header_left { + display: flex; + align-items: center; + gap: 10px; + h2 { + margin-bottom: 0px; + } + } + .create_cardform_header_right { + a { + display: block; + } + } + } + .create_cardform_body { + .create_cardform_content { + display: flex; + gap: 30px; + .create_cardform_content_left { + width: 50%; + padding: 30px; + } + .create_cardform_content_right { + width: 50%; + } + } + } + +} \ No newline at end of file diff --git a/module/ticketcenter/css/listform.css b/module/ticketcenter/css/listform.css new file mode 100644 index 0000000..4eb5857 --- /dev/null +++ b/module/ticketcenter/css/listform.css @@ -0,0 +1,140 @@ +:root { + --main-nav-width: 250px; + --ticket-nav-width: 300px; +} + +#area-2 { + padding: 0px; + > .container { + padding: 0px; + } +} +#footer-header { + display: none; +} + +.listform_body { + display: flex; + .listform_navigation { + width: var(--ticket-nav-width); + display: flex; + flex-direction: column; + background: var(--bg-white); + border: 1px solid var(--border); + padding: 12px; + gap: 4px; + min-height: calc(100dvh - 200px); + /* min-height: calc(100% - 200px); */ + position: sticky; + top: 0px; + .listform_navigation_header { + display: flex; + flex-direction: column; + gap: 4px; + button { + background: var(--blur); + color: var(--fc-dark); + font-size: var(--fs-500); + padding: 8px; + text-align: left; + &.active { + background: var(--clr-mandant); + color: var(--fc-white-8); + } + } + a[role="button"] { + border-radius: var(--br); + background: var(--clr-mandant); + color: var(--fc-white-8); + font-size: var(--fs-500); + padding: 8px; + text-align: left; + margin-bottom: 10px; + + } + .listform_navigation_header_line { + display: flex; + justify-content: space-between; + align-items: center; + button { + padding: 4px; + } + } + } + &.is-closed { + overflow: hidden; + width: unset; + .to-hide-on-close { + display: none; + + } + i { + transform: rotate(180deg); + } + } + } + .listform_content { + flex: 1; + /* padding: 20px 20px 20px 20px; */ + padding-top: 20px; + background: var(--bg-white); + padding-bottom: 100px; + overflow-x: scroll; + #grid { + .gridjs-head { + padding-top: 0px; + } + } + } +} +#grid { + height: 100%; +} +.gridjs-container { + position: relative; + padding: 0px !important; + height: 100%; + .gridjs-head { + padding-left: 20px; + } + .gridjs-wrapper { + border: unset; + box-shadow: unset; + border-radius: 0px; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + .gridjs-thead { + tr.gridjs-tr { + th.gridjs-th { + padding: 6px 14px; + /* background-color: var(--bg-white); */ + /* border-bottom: 1px solid var(--border); */ + color: var(--fc-dark); + } + } + } + .gridjs-tbody { + cursor: pointer; + tr.gridjs-tr { + &:hover { + background-color: #f9fafb; + td { + background-color: #f9fafb; + } + } + td.gridjs-td { + padding: 6px 14px; + } + } + } + } + .gridjs-footer { + border: unset; + box-shadow: unset; + position: fixed; + bottom: 0px; + width: stretch; + background-color: var(--bg-white); + border-top: 1px solid var(--border); + } +} \ No newline at end of file diff --git a/module/ticketcenter/css/mermaid.min.css b/module/ticketcenter/css/mermaid.min.css new file mode 100644 index 0000000..24464c2 --- /dev/null +++ b/module/ticketcenter/css/mermaid.min.css @@ -0,0 +1 @@ +.gridjs-footer button,.gridjs-head button{background-color:transparent;background-image:none;border:none;cursor:pointer;margin:0;outline:none;padding:0}.gridjs-temp{position:relative}.gridjs-head{margin-bottom:5px;padding:5px 1px;width:100%}.gridjs-head:after{clear:both;content:"";display:block}.gridjs-head:empty{border:none;padding:0}.gridjs-container{color:#000;display:inline-block;overflow:hidden;padding:2px;position:relative;z-index:0}.gridjs-footer{background-color:#fff;border-bottom-width:1px;border-color:#e5e7eb;border-radius:0 0 8px 8px;border-top:1px solid #e5e7eb;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.26);display:block;padding:12px 24px;position:relative;width:100%;z-index:5}.gridjs-footer:empty{border:none;padding:0}input.gridjs-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #d2d6dc;border-radius:5px;font-size:14px;line-height:1.45;outline:none;padding:10px 13px}input.gridjs-input:focus{border-color:#9bc2f7;box-shadow:0 0 0 3px rgba(149,189,243,.5)}.gridjs-pagination{color:#3d4044}.gridjs-pagination:after{clear:both;content:"";display:block}.gridjs-pagination .gridjs-summary{float:left;margin-top:5px}.gridjs-pagination .gridjs-pages{float:right}.gridjs-pagination .gridjs-pages button{background-color:#fff;border:1px solid #d2d6dc;border-right:none;outline:none;padding:5px 14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gridjs-pagination .gridjs-pages button:focus{border-right:1px solid #d2d6dc;box-shadow:0 0 0 2px rgba(149,189,243,.5);margin-right:-1px;position:relative}.gridjs-pagination .gridjs-pages button:hover{background-color:#f7f7f7;color:#3c4257;outline:none}.gridjs-pagination .gridjs-pages button:disabled,.gridjs-pagination .gridjs-pages button:hover:disabled,.gridjs-pagination .gridjs-pages button[disabled]{background-color:#fff;color:#6b7280;cursor:default}.gridjs-pagination .gridjs-pages button.gridjs-spread{background-color:#fff;box-shadow:none;cursor:default}.gridjs-pagination .gridjs-pages button.gridjs-currentPage{background-color:#f7f7f7;font-weight:700}.gridjs-pagination .gridjs-pages button:last-child{border-bottom-right-radius:6px;border-right:1px solid #d2d6dc;border-top-right-radius:6px}.gridjs-pagination .gridjs-pages button:first-child{border-bottom-left-radius:6px;border-top-left-radius:6px}.gridjs-pagination .gridjs-pages button:last-child:focus{margin-right:0}button.gridjs-sort{background-color:transparent;background-position-x:center;background-repeat:no-repeat;background-size:contain;border:none;cursor:pointer;float:right;height:24px;margin:0;outline:none;padding:0;width:13px}button.gridjs-sort-neutral{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MDEuOTk4IiBoZWlnaHQ9IjQwMS45OTgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMS45OTggNDAxLjk5OCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTczLjA5MiAxNjQuNDUyaDI1NS44MTNjNC45NDkgMCA5LjIzMy0xLjgwNyAxMi44NDgtNS40MjQgMy42MTMtMy42MTYgNS40MjctNy44OTggNS40MjctMTIuODQ3cy0xLjgxMy05LjIyOS01LjQyNy0xMi44NUwyMTMuODQ2IDUuNDI0QzIxMC4yMzIgMS44MTIgMjA1Ljk1MSAwIDIwMC45OTkgMHMtOS4yMzMgMS44MTItMTIuODUgNS40MjRMNjAuMjQyIDEzMy4zMzFjLTMuNjE3IDMuNjE3LTUuNDI0IDcuOTAxLTUuNDI0IDEyLjg1IDAgNC45NDggMS44MDcgOS4yMzEgNS40MjQgMTIuODQ3IDMuNjIxIDMuNjE3IDcuOTAyIDUuNDI0IDEyLjg1IDUuNDI0ek0zMjguOTA1IDIzNy41NDlINzMuMDkyYy00Ljk1MiAwLTkuMjMzIDEuODA4LTEyLjg1IDUuNDIxLTMuNjE3IDMuNjE3LTUuNDI0IDcuODk4LTUuNDI0IDEyLjg0N3MxLjgwNyA5LjIzMyA1LjQyNCAxMi44NDhMMTg4LjE0OSAzOTYuNTdjMy42MjEgMy42MTcgNy45MDIgNS40MjggMTIuODUgNS40MjhzOS4yMzMtMS44MTEgMTIuODQ3LTUuNDI4bDEyNy45MDctMTI3LjkwNmMzLjYxMy0zLjYxNCA1LjQyNy03Ljg5OCA1LjQyNy0xMi44NDggMC00Ljk0OC0xLjgxMy05LjIyOS01LjQyNy0xMi44NDctMy42MTQtMy42MTYtNy44OTktNS40Mi0xMi44NDgtNS40MnoiLz48L3N2Zz4=");background-position-y:center;opacity:.3}button.gridjs-sort-asc{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuMzYyIiBoZWlnaHQ9IjI5Mi4zNjEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI5Mi4zNjIgMjkyLjM2MSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTI4Ni45MzUgMTk3LjI4NyAxNTkuMDI4IDY5LjM4MWMtMy42MTMtMy42MTctNy44OTUtNS40MjQtMTIuODQ3LTUuNDI0cy05LjIzMyAxLjgwNy0xMi44NSA1LjQyNEw1LjQyNCAxOTcuMjg3QzEuODA3IDIwMC45MDQgMCAyMDUuMTg2IDAgMjEwLjEzNHMxLjgwNyA5LjIzMyA1LjQyNCAxMi44NDdjMy42MjEgMy42MTcgNy45MDIgNS40MjUgMTIuODUgNS40MjVoMjU1LjgxM2M0Ljk0OSAwIDkuMjMzLTEuODA4IDEyLjg0OC01LjQyNSAzLjYxMy0zLjYxMyA1LjQyNy03Ljg5OCA1LjQyNy0xMi44NDdzLTEuODE0LTkuMjMtNS40MjctMTIuODQ3eiIvPjwvc3ZnPg==");background-position-y:35%;background-size:10px}button.gridjs-sort-desc{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuMzYyIiBoZWlnaHQ9IjI5Mi4zNjIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI5Mi4zNjIgMjkyLjM2MiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTI4Ni45MzUgNjkuMzc3Yy0zLjYxNC0zLjYxNy03Ljg5OC01LjQyNC0xMi44NDgtNS40MjRIMTguMjc0Yy00Ljk1MiAwLTkuMjMzIDEuODA3LTEyLjg1IDUuNDI0QzEuODA3IDcyLjk5OCAwIDc3LjI3OSAwIDgyLjIyOGMwIDQuOTQ4IDEuODA3IDkuMjI5IDUuNDI0IDEyLjg0N2wxMjcuOTA3IDEyNy45MDdjMy42MjEgMy42MTcgNy45MDIgNS40MjggMTIuODUgNS40MjhzOS4yMzMtMS44MTEgMTIuODQ3LTUuNDI4TDI4Ni45MzUgOTUuMDc0YzMuNjEzLTMuNjE3IDUuNDI3LTcuODk4IDUuNDI3LTEyLjg0NyAwLTQuOTQ4LTEuODE0LTkuMjI5LTUuNDI3LTEyLjg1eiIvPjwvc3ZnPg==");background-position-y:65%;background-size:10px}button.gridjs-sort:focus{outline:none}table.gridjs-table{border-collapse:collapse;display:table;margin:0;max-width:100%;overflow:auto;padding:0;table-layout:fixed;text-align:left;width:100%}.gridjs-tbody,td.gridjs-td{background-color:#fff}td.gridjs-td{border:1px solid #e5e7eb;box-sizing:content-box;padding:12px 24px}td.gridjs-td:first-child{border-left:none}td.gridjs-td:last-child{border-right:none}td.gridjs-message{text-align:center}th.gridjs-th{background-color:#f9fafb;border:1px solid #e5e7eb;border-top:none;box-sizing:border-box;color:#6b7280;outline:none;padding:14px 24px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}th.gridjs-th .gridjs-th-content{float:left;overflow:hidden;text-overflow:ellipsis;width:100%}th.gridjs-th-sort{cursor:pointer}th.gridjs-th-sort .gridjs-th-content{width:calc(100% - 15px)}th.gridjs-th-sort:focus,th.gridjs-th-sort:hover{background-color:#e5e7eb}th.gridjs-th-fixed{box-shadow:0 1px 0 0 #e5e7eb;position:sticky}@supports (-moz-appearance:none){th.gridjs-th-fixed{box-shadow:0 0 0 1px #e5e7eb}}th.gridjs-th:first-child{border-left:none}th.gridjs-th:last-child{border-right:none}.gridjs-tr{border:none}.gridjs-tr-selected td{background-color:#ebf5ff}.gridjs-tr:last-child td{border-bottom:0}.gridjs *,.gridjs :after,.gridjs :before{box-sizing:border-box}.gridjs-wrapper{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;border-color:#e5e7eb;border-radius:8px 8px 0 0;border-top-width:1px;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.26);display:block;overflow:auto;position:relative;width:100%;z-index:1}.gridjs-wrapper:nth-last-of-type(2){border-bottom-width:1px;border-radius:8px}.gridjs-search{float:left}.gridjs-search-input{width:250px}.gridjs-loading-bar{background-color:#fff;opacity:.5;z-index:10}.gridjs-loading-bar,.gridjs-loading-bar:after{bottom:0;left:0;position:absolute;right:0;top:0}.gridjs-loading-bar:after{animation:shimmer 2s infinite;background-image:linear-gradient(90deg,hsla(0,0%,80%,0),hsla(0,0%,80%,.2) 20%,hsla(0,0%,80%,.5) 60%,hsla(0,0%,80%,0));content:"";transform:translateX(-100%)}@keyframes shimmer{to{transform:translateX(100%)}}.gridjs-td .gridjs-checkbox{cursor:pointer;display:block;margin:auto}.gridjs-resizable{bottom:0;position:absolute;right:0;top:0;width:5px}.gridjs-resizable:hover{background-color:#9bc2f7;cursor:ew-resize} diff --git a/module/ticketcenter/css/repair.css b/module/ticketcenter/css/repair.css index 45a50f6..e127c7b 100644 --- a/module/ticketcenter/css/repair.css +++ b/module/ticketcenter/css/repair.css @@ -1,4 +1,3 @@ - /* Ticketcenter */ .ticketcenter { @@ -372,7 +371,7 @@ i.fa-solid.fa-circle-exclamation { .history { padding: 1rem; - border-left: 1px solid var(--border); + /* border-left: 1px solid var(--border); */ } table#service_item_create td { @@ -476,12 +475,6 @@ table#service_item_create td input { border: 1px solid var(--border); } -.messages_scroll_container { - overflow-y: scroll; - height: 500px; - display: flex; - flex-direction: column-reverse; -} p.date { font-size: 12px; @@ -663,8 +656,7 @@ a.button_send_message_button { .message.outbound { width: 100%; margin-left: auto; - background: var(--blue-accent); - color: white; + background: var(--bg-white); } .info_labels label div { @@ -679,7 +671,7 @@ a.button_send_message_button { padding-bottom: 0 !important; } -.card_header { +/* .card_header { display: flex; align-items: center; justify-content: space-between; @@ -687,7 +679,7 @@ a.button_send_message_button { padding: 0.5rem; padding-inline: 1rem; min-height: 57px; -} +} */ .card_title h3 { margin: 0; @@ -722,7 +714,7 @@ div.dt-container.ui.grid>div.row:first-child { .breadcrumb a { color: white; } - + body.wiki .subcategory { .pct_textcontent:after { content: ''; @@ -736,9 +728,11 @@ body.wiki .subcategory { left: 50%; transform: translateX(-50%); } - .pct_read{ - margin-bottom: 10px; + + .pct_read { + margin-bottom: 10px; } + .pct_status { height: 10px; background: #5a9c9d; @@ -747,6 +741,7 @@ body.wiki .subcategory { position: relative; } } + body.wiki .category { .pct_textcontent:after { content: ''; @@ -760,9 +755,11 @@ body.wiki .category { left: 50%; transform: translateX(-50%); } - .pct_read{ - margin-bottom: 10px; + + .pct_read { + margin-bottom: 10px; } + .pct_status { height: 10px; background: #5a9c9d; @@ -774,8 +771,8 @@ body.wiki .category { .unreaded { - border: 1px solid red !important; - } + border: 1px solid red !important; +} @@ -933,9 +930,9 @@ body.ticket_edit { position: unset; } - div#hero_content { + /* div#hero_content { height: unset; - } + } */ .modal.category_edit { max-width: 600px; @@ -960,7 +957,7 @@ body.ticket_edit { z-index: 999; } - + #category_edit { display: block; @@ -1008,26 +1005,34 @@ body.ticket_edit { /* Ticketcenter Ende */ -body.ticketcenter, body.servicecenter { - background-image: url(/userdata/01_Basis/Intranet_bg.webp) !important; +body.ticketcenter, +body.servicecenter { + background-image: url(/userdata/01_Basis/Intranet_bg.webp) !important; } .ticketcenter .right_toolbar a[role="button"].active { - border-bottom: 2px solid var(--clr-mandant); - } - - .ticketcenter .right_toolbar a[role="button"]:hover { - border-bottom: 2px solid var(--clr-mandant); - } - - .ticketcenter .right_toolbar { - border-bottom: 1px solid var(--border); - } + border-bottom: 2px solid var(--clr-mandant); +} - .ticketcenter .right_toolbar a[role="button"] { - background: transparent; - border: 0; - color: var(--fc-primary); - padding: 5px 10px; - border-radius: 0; - } \ No newline at end of file +.ticketcenter .right_toolbar a[role="button"]:hover { + border-bottom: 2px solid var(--clr-mandant); +} + +.ticketcenter .right_toolbar { + border-bottom: 1px solid var(--border); +} + +.ticketcenter .right_toolbar a[role="button"] { + background: transparent; + border: 0; + color: var(--fc-primary); + padding: 5px 10px; + border-radius: 0; +} + +.footer-header_1 { + display: none; +} +.footer-header_2 { + display: none; +} diff --git a/module/ticketcenter/js/deprecated.js b/module/ticketcenter/js/deprecated.js new file mode 100644 index 0000000..e1c26ea --- /dev/null +++ b/module/ticketcenter/js/deprecated.js @@ -0,0 +1,222 @@ + $(document).ready(function () { + // Hole die aktuelle URL + var currentUrl = window.location.href; + + // Überprüfen, ob ?action= in der URL vorhanden ist + if (currentUrl.indexOf("?action=") !== -1) { + // Entferne den Teil ab ?action=, inkl. allem, was danach kommt + var newUrl = currentUrl.split("?action=")[0]; + + // Aktualisiere die URL ohne Neuladen der Seite + window.history.replaceState(null, null, newUrl); + } + }); + + document.addEventListener("DOMContentLoaded", function () { + // Initial load of category data + const categorySelect = document.getElementById('input_category'); + if (categorySelect) { + let selectedId = categorySelect.value; + removeAjaxContent(); + + // Initial AJAX call + fetchCategoryData(selectedId); + + // Add change event listener to category select + categorySelect.addEventListener('change', function() { + selectedId = this.value; + removeAjaxContent(); + fetchCategoryData(selectedId); + getCategoryDescription(); + }); + + // Initial description load + getCategoryDescription(); + } + }); + + // Helper function to remove ajax content + function removeAjaxContent() { + const ajaxContents = document.querySelectorAll('.ajax-content'); + ajaxContents.forEach(content => content.remove()); + } + + // Helper function to remove ajax subcontent + function removeAjaxSubContent() { + const ajaxSubContents = document.querySelectorAll('.ajax-subcontent'); + ajaxSubContents.forEach(content => content.remove()); + } + + // Fetch category data via AJAX + function fetchCategoryData(categoryId) { + $.ajax({ + url: '/module/ticketcenter/views/ticketcenter/show_ticketcenter_ajax.php', + type: 'POST', + data: { category_id: categoryId }, + success: function (response) { + const categorySelect = document.getElementById('input_category'); + const parentDiv = categorySelect.parentNode; + + // Insert response after the parent div + const ajaxContent = document.createElement('div'); + ajaxContent.className = 'ajax-content'; + ajaxContent.innerHTML = response; + parentDiv.after(ajaxContent); + + // Add event listener to subcategory select if it exists + const subcategorySelect = document.getElementById('input_subcategory'); + if (subcategorySelect) { + subcategorySelect.addEventListener('change', function() { + getSubCategoryDescription(); + getSubSubCategory(); + }); + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + + function getCategoryDescription() { + const categorySelect = document.getElementById('input_category'); + const selectedId = categorySelect.value; + + // Remove existing description if it exists + const existingDesc = document.querySelector(".category_desc"); + if (existingDesc) { + existingDesc.remove(); + } + + $.ajax({ + url: '/module/ticketcenter/views/ticketcenter/show_ticketcenter_category_desc_ajax.php', + type: 'POST', + data: { category_id: selectedId }, + success: function (response) { + const instructionDiv = document.querySelector(".ticket-instruction"); + if (instructionDiv) { + const descDiv = document.createElement('div'); + descDiv.className = 'category_desc'; + descDiv.innerHTML = "
Kategoriebeschreibung
" + response; + instructionDiv.insertAdjacentElement("afterbegin", descDiv); + if (response.trim() === "") { + descDiv.style.display = 'none'; // Hide if no description + } else { + descDiv.style.display = 'block'; // Show if description exists + } + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + + function getSubCategoryDescription() { + const subcategorySelect = document.getElementById('input_subcategory'); + if (!subcategorySelect) return; + + const selectedId = subcategorySelect.value; + + // Remove existing description if it exists + const existingDesc = document.querySelector(".subcategory_desc"); + if (existingDesc) { + existingDesc.remove(); + } + + $.ajax({ + url: '/module/ticketcenter/views/ticketcenter/show_ticketcenter_category_desc_ajax.php', + type: 'POST', + data: { category_id: selectedId }, + success: function (response) { + const instructionDiv = document.querySelector(".ticket-instruction"); + if (instructionDiv) { + const descDiv = document.createElement('div'); + descDiv.className = 'subcategory_desc'; + descDiv.style.marginTop = '20px'; + descDiv.innerHTML = "
Unterkategoriebeschreibung
" + response; + instructionDiv.insertAdjacentElement("beforeend", descDiv); + if (response.trim() === "") { + descDiv.style.display = 'none'; // Hide if no description + } else { + descDiv.style.display = 'block'; // Show if description exists + } + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + + function getSubSubCategoryDescription() { + const subsubcategorySelect = document.getElementById('input_subsubcategory'); + if (!subsubcategorySelect) return; + + const selectedId = subsubcategorySelect.value; + + // Remove existing description if it exists + const existingDesc = document.querySelector(".subsubcategory_desc"); + if (existingDesc) { + existingDesc.remove(); + } + + $.ajax({ + url: '/module/ticketcenter/views/ticketcenter/show_ticketcenter_category_desc_ajax.php', + type: 'POST', + data: { category_id: selectedId }, + success: function (response) { + const instructionDiv = document.querySelector(".ticket-instruction"); + if (instructionDiv) { + const descDiv = document.createElement('div'); + descDiv.className = 'subsubcategory_desc'; + descDiv.style.marginTop = '20px'; + descDiv.innerHTML = "
Beschreibung
" + response; + instructionDiv.insertAdjacentElement("beforeend", descDiv); + if (response.trim() === "") { + descDiv.style.display = 'none'; // Hide if no description + } else { + descDiv.style.display = 'block'; // Show if description exists + } + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + + function getSubSubCategory() { + const subcategorySelect = document.getElementById('input_subcategory'); + if (!subcategorySelect) return; + + const selectedId = subcategorySelect.value; + removeAjaxSubContent(); + + $.ajax({ + url: '/module/ticketcenter/show_ticketcenter_subcategory_ajax.php', + type: 'POST', + data: { category_id: selectedId }, + success: function (response) { + const parentDiv = subcategorySelect.parentNode; + + // Insert response after the parent div + const ajaxSubContent = document.createElement('div'); + ajaxSubContent.className = 'ajax-subcontent'; + ajaxSubContent.innerHTML = response; + parentDiv.after(ajaxSubContent); + + // Add event listener to subsubcategory select if it exists + const subsubcategorySelect = document.getElementById('input_subsubcategory'); + if (subsubcategorySelect) { + subsubcategorySelect.addEventListener('change', function() { + getSubSubCategoryDescription(); + }); + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + diff --git a/module/ticketcenter/js/functions.js b/module/ticketcenter/js/functions.js new file mode 100644 index 0000000..9717ee4 --- /dev/null +++ b/module/ticketcenter/js/functions.js @@ -0,0 +1,3 @@ +function toggleSideboard(sideboard) { + document.querySelector(sideboard).classList.toggle('is-closed'); +} \ No newline at end of file diff --git a/module/ticketcenter/js/gridjs.umd.js b/module/ticketcenter/js/gridjs.umd.js new file mode 100644 index 0000000..31761d7 --- /dev/null +++ b/module/ticketcenter/js/gridjs.umd.js @@ -0,0 +1,2 @@ +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t||self).gridjs={})}(this,function(t){function n(t,n){for(var e=0;et.length)&&(n=t.length);for(var e=0,r=new Array(n);e=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l;!function(t){t[t.Init=0]="Init",t[t.Loading=1]="Loading",t[t.Loaded=2]="Loaded",t[t.Rendered=3]="Rendered",t[t.Error=4]="Error"}(l||(l={}));var c,f,p,d,h,_,m,v={},g=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function b(t,n){for(var e in n)t[e]=n[e];return t}function w(t){var n=t.parentNode;n&&n.removeChild(t)}function x(t,n,e){var r,o,i,u={};for(i in n)"key"==i?r=n[i]:"ref"==i?o=n[i]:u[i]=n[i];if(arguments.length>2&&(u.children=arguments.length>3?c.call(arguments,2):e),"function"==typeof t&&null!=t.defaultProps)for(i in t.defaultProps)void 0===u[i]&&(u[i]=t.defaultProps[i]);return k(t,u,r,o,null)}function k(t,n,e,r,o){var i={type:t,props:n,key:e,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++p:o};return null==o&&null!=f.vnode&&f.vnode(i),i}function P(t){return t.children}function S(t,n){this.props=t,this.context=n}function N(t,n){if(null==n)return t.__?N(t.__,t.__.__k.indexOf(t)+1):null;for(var e;n0?k(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=e,d.__b=e.__b+1,null===(p=y[c])||p&&d.key==p.key&&d.type===p.type)y[c]=void 0;else for(f=0;f0&&(this.callbacks[e].forEach(function(t){return t.apply(void 0,[].slice.call(n,1))}),!0)},t}();function Y(t,n){if(typeof t!=typeof n)return!1;if(null===t&&null===n)return!0;if("object"!=typeof t)return t===n;if(Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length)return!1;for(var e=0;e=e.__.length&&e.__.push({__V:ft}),e.__[t]}function gt(t){return lt=1,function(t,n,e){var r=vt(ot++,2);if(r.t=t,!r.__c&&(r.__=[Et(void 0,n),function(t){var n=r.__N?r.__N[0]:r.__[0],e=r.t(n,t);n!==e&&(r.__N=[e,r.__[1]],r.__c.setState({}))}],r.__c=it,!it.u)){it.u=!0;var o=it.shouldComponentUpdate;it.shouldComponentUpdate=function(t,n,e){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(t){return t.__c});if(i.every(function(t){return!t.__N}))return!o||o.call(this,t,n,e);var u=!1;return i.forEach(function(t){if(t.__N){var n=t.__[0];t.__=t.__N,t.__N=void 0,n!==t.__[0]&&(u=!0)}}),!(!u&&r.__c.props===t)&&(!o||o.call(this,t,n,e))}}return r.__N||r.__}(Et,t)}function yt(t,n){var e=vt(ot++,3);!f.__s&&Ct(e.__H,n)&&(e.__=t,e.i=n,it.__H.__h.push(e))}function bt(t){return lt=5,wt(function(){return{current:t}},[])}function wt(t,n){var e=vt(ot++,7);return Ct(e.__H,n)?(e.__V=t(),e.i=n,e.__h=t,e.__V):e.__}function xt(){for(var t;t=ct.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(St),t.__H.__h.forEach(Nt),t.__H.__h=[]}catch(n){t.__H.__h=[],f.__e(n,t.__v)}}f.__b=function(t){it=null,pt&&pt(t)},f.__r=function(t){dt&&dt(t),ot=0;var n=(it=t.__c).__H;n&&(ut===it?(n.__h=[],it.__h=[],n.__.forEach(function(t){t.__N&&(t.__=t.__N),t.__V=ft,t.__N=t.i=void 0})):(n.__h.forEach(St),n.__h.forEach(Nt),n.__h=[])),ut=it},f.diffed=function(t){ht&&ht(t);var n=t.__c;n&&n.__H&&(n.__H.__h.length&&(1!==ct.push(n)&&st===f.requestAnimationFrame||((st=f.requestAnimationFrame)||Pt)(xt)),n.__H.__.forEach(function(t){t.i&&(t.__H=t.i),t.__V!==ft&&(t.__=t.__V),t.i=void 0,t.__V=ft})),ut=it=null},f.__c=function(t,n){n.some(function(t){try{t.__h.forEach(St),t.__h=t.__h.filter(function(t){return!t.__||Nt(t)})}catch(e){n.some(function(t){t.__h&&(t.__h=[])}),n=[],f.__e(e,t.__v)}}),_t&&_t(t,n)},f.unmount=function(t){mt&&mt(t);var n,e=t.__c;e&&e.__H&&(e.__H.__.forEach(function(t){try{St(t)}catch(t){n=t}}),e.__H=void 0,n&&f.__e(n,e.__v))};var kt="function"==typeof requestAnimationFrame;function Pt(t){var n,e=function(){clearTimeout(r),kt&&cancelAnimationFrame(n),setTimeout(t)},r=setTimeout(e,100);kt&&(n=requestAnimationFrame(e))}function St(t){var n=it,e=t.__c;"function"==typeof e&&(t.__c=void 0,e()),it=n}function Nt(t){var n=it;t.__c=t.__(),it=n}function Ct(t,n){return!t||t.length!==n.length||n.some(function(n,e){return n!==t[e]})}function Et(t,n){return"function"==typeof n?n(t):n}function It(){return function(t){var n=it.context[t.__c],e=vt(ot++,9);return e.c=t,n?(null==e.__&&(e.__=!0,n.sub(it)),n.props.value):t.__}(fn)}var Tt={search:{placeholder:"Type a keyword..."},sort:{sortAsc:"Sort column ascending",sortDesc:"Sort column descending"},pagination:{previous:"Previous",next:"Next",navigate:function(t,n){return"Page "+t+" of "+n},page:function(t){return"Page "+t},showing:"Showing",of:"of",to:"to",results:"results"},loading:"Loading...",noRecordsFound:"No matching records found",error:"An error happened while fetching the data"},Lt=/*#__PURE__*/function(){function t(t){this._language=void 0,this._defaultLanguage=void 0,this._language=t,this._defaultLanguage=Tt}var n=t.prototype;return n.getString=function(t,n){if(!n||!t)return null;var e=t.split("."),r=e[0];if(n[r]){var o=n[r];return"string"==typeof o?function(){return o}:"function"==typeof o?o:this.getString(e.slice(1).join("."),o)}return null},n.translate=function(t){var n,e=this.getString(t,this._language);return(n=e||this.getString(t,this._defaultLanguage))?n.apply(void 0,[].slice.call(arguments,1)):t},t}();function At(){var t=It();return function(n){var e;return(e=t.translator).translate.apply(e,[n].concat([].slice.call(arguments,1)))}}var Ot=function(t){return function(n){return r({},n,{search:{keyword:t}})}};function jt(){return It().store}function Ht(t){var n=jt(),e=gt(t(n.getState())),r=e[0],o=e[1];return yt(function(){return n.subscribe(function(){var e=t(n.getState());r!==e&&o(e)})},[]),r}function Dt(){var t,n=gt(void 0),e=n[0],r=n[1],o=It(),i=o.search,u=At(),s=jt().dispatch,a=Ht(function(t){return t.search});yt(function(){e&&e.setProps({keyword:null==a?void 0:a.keyword})},[a,e]),yt(function(){r(i.server?new at({keyword:i.keyword,url:i.server.url,body:i.server.body}):new nt({keyword:i.keyword,columns:o.header&&o.header.columns,ignoreHiddenColumns:i.ignoreHiddenColumns||void 0===i.ignoreHiddenColumns,selector:i.selector})),i.keyword&&s(Ot(i.keyword))},[i]),yt(function(){if(e)return o.pipeline.register(e),function(){return o.pipeline.unregister(e)}},[o,e]);var l,c,f,p=function(t,n){return lt=8,wt(function(){return t},n)}((l=function(t){t.target instanceof HTMLInputElement&&s(Ot(t.target.value))},c=e instanceof at?i.debounceTimeout||250:0,function(){var t=arguments;return new Promise(function(n){f&&clearTimeout(f),f=setTimeout(function(){return n(l.apply(void 0,[].slice.call(t)))},c)})}),[i,e]);return x("div",{className:et(rt("search",null==(t=o.className)?void 0:t.search))},x("input",{type:"search",placeholder:u("search.placeholder"),"aria-label":u("search.placeholder"),onInput:p,className:rt(et("input"),et("search","input")),defaultValue:(null==a?void 0:a.keyword)||""}))}var Mt=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}o(n,t);var r=n.prototype;return r.validateProps=function(){if(isNaN(Number(this.props.limit))||isNaN(Number(this.props.page)))throw Error("Invalid parameters passed")},r._process=function(t){var n=this.props.page;return new J(t.rows.slice(n*this.props.limit,(n+1)*this.props.limit))},e(n,[{key:"type",get:function(){return K.Limit}}]),n}(tt),Rt=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(t){var n={};return this.props.url&&(n.url=this.props.url(t.url,this.props.page,this.props.limit)),this.props.body&&(n.body=this.props.body(t.body,this.props.page,this.props.limit)),r({},t,n)},e(n,[{key:"type",get:function(){return K.ServerLimit}}]),n}(tt);function Ft(){var t=It(),n=t.pagination,e=n.server,r=n.summary,o=void 0===r||r,i=n.nextButton,u=void 0===i||i,s=n.prevButton,a=void 0===s||s,l=n.buttonsCount,c=void 0===l?3:l,f=n.limit,p=void 0===f?10:f,d=n.page,h=void 0===d?0:d,_=n.resetPageOnUpdate,m=void 0===_||_,v=bt(null),g=gt(h),y=g[0],b=g[1],w=gt(0),k=w[0],S=w[1],N=At();yt(function(){return e?(v.current=new Rt({limit:p,page:y,url:e.url,body:e.body}),t.pipeline.register(v.current)):(v.current=new Mt({limit:p,page:y}),t.pipeline.register(v.current)),v.current instanceof Rt?t.pipeline.on("afterProcess",function(t){return S(t.length)}):v.current instanceof Mt&&v.current.on("beforeProcess",function(t){return S(t.length)}),t.pipeline.on("updated",C),t.pipeline.on("error",function(){S(0),b(0)}),function(){t.pipeline.unregister(v.current),t.pipeline.off("updated",C)}},[]);var C=function(t){m&&t!==v.current&&(b(0),0!==v.current.props.page&&v.current.setProps({page:0}))},E=function(){return Math.ceil(k/p)},I=function(t){if(t>=E()||t<0||t===y)return null;b(t),v.current.setProps({page:t})};return x("div",{className:rt(et("pagination"),t.className.pagination)},x(P,null,o&&k>0&&x("div",{role:"status","aria-live":"polite",className:rt(et("summary"),t.className.paginationSummary),title:N("pagination.navigate",y+1,E())},N("pagination.showing")," ",x("b",null,N(""+(y*p+1)))," ",N("pagination.to")," ",x("b",null,N(""+Math.min((y+1)*p,k)))," ",N("pagination.of")," ",x("b",null,N(""+k))," ",N("pagination.results"))),x("div",{className:et("pages")},a&&x("button",{tabIndex:0,role:"button",disabled:0===y,onClick:function(){return I(y-1)},title:N("pagination.previous"),"aria-label":N("pagination.previous"),className:rt(t.className.paginationButton,t.className.paginationButtonPrev)},N("pagination.previous")),function(){if(c<=0)return null;var n=Math.min(E(),c),e=Math.min(y,Math.floor(n/2));return y+Math.floor(n/2)>=E()&&(e=n-(E()-y)),x(P,null,E()>n&&y-e>0&&x(P,null,x("button",{tabIndex:0,role:"button",onClick:function(){return I(0)},title:N("pagination.firstPage"),"aria-label":N("pagination.firstPage"),className:t.className.paginationButton},N("1")),x("button",{tabIndex:-1,className:rt(et("spread"),t.className.paginationButton)},"...")),Array.from(Array(n).keys()).map(function(t){return y+(t-e)}).map(function(n){return x("button",{tabIndex:0,role:"button",onClick:function(){return I(n)},className:rt(y===n?rt(et("currentPage"),t.className.paginationButtonCurrent):null,t.className.paginationButton),title:N("pagination.page",n+1),"aria-label":N("pagination.page",n+1)},N(""+(n+1)))}),E()>n&&E()>y+e+1&&x(P,null,x("button",{tabIndex:-1,className:rt(et("spread"),t.className.paginationButton)},"..."),x("button",{tabIndex:0,role:"button",onClick:function(){return I(E()-1)},title:N("pagination.page",E()),"aria-label":N("pagination.page",E()),className:t.className.paginationButton},N(""+E()))))}(),u&&x("button",{tabIndex:0,role:"button",disabled:E()===y+1||0===E(),onClick:function(){return I(y+1)},title:N("pagination.next"),"aria-label":N("pagination.next"),className:rt(t.className.paginationButton,t.className.paginationButtonNext)},N("pagination.next"))))}function Ut(t,n){return"string"==typeof t?t.indexOf("%")>-1?n/100*parseInt(t,10):parseInt(t,10):t}function Wt(t){return t?Math.floor(t)+"px":""}function Bt(t){var n=t.tableRef.cloneNode(!0);return n.style.position="absolute",n.style.width="100%",n.style.zIndex="-2147483640",n.style.visibility="hidden",x("div",{ref:function(t){t&&t.appendChild(n)}})}function qt(t){if(!t)return"";var n=t.split(" ");return 1===n.length&&/([a-z][A-Z])+/g.test(t)?t:n.map(function(t,n){return 0==n?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}).join("")}var zt,Vt=new(/*#__PURE__*/function(){function t(){}var n=t.prototype;return n.format=function(t,n){return"[Grid.js] ["+n.toUpperCase()+"]: "+t},n.error=function(t,n){void 0===n&&(n=!1);var e=this.format(t,"error");if(n)throw Error(e);console.error(e)},n.warn=function(t){console.warn(this.format(t,"warn"))},n.info=function(t){console.info(this.format(t,"info"))},t}());t.PluginPosition=void 0,(zt=t.PluginPosition||(t.PluginPosition={}))[zt.Header=0]="Header",zt[zt.Footer=1]="Footer",zt[zt.Cell=2]="Cell";var $t=/*#__PURE__*/function(){function t(){this.plugins=void 0,this.plugins=[]}var n=t.prototype;return n.get=function(t){return this.plugins.find(function(n){return n.id===t})},n.add=function(t){return t.id?this.get(t.id)?(Vt.error("Duplicate plugin ID: "+t.id),this):(this.plugins.push(t),this):(Vt.error("Plugin ID cannot be empty"),this)},n.remove=function(t){var n=this.get(t);return n&&this.plugins.splice(this.plugins.indexOf(n),1),this},n.list=function(t){var n;return n=null!=t||null!=t?this.plugins.filter(function(n){return n.position===t}):this.plugins,n.sort(function(t,n){return t.order&&n.order?t.order-n.order:1})},t}();function Gt(t){var n=this,e=It();if(t.pluginId){var o=e.plugin.get(t.pluginId);return o?x(P,{},x(o.component,r({plugin:o},t.props))):null}return void 0!==t.position?x(P,{},e.plugin.list(t.position).map(function(t){return x(t.component,r({plugin:t},n.props.props))})):null}var Kt=/*#__PURE__*/function(n){function i(){var t;return(t=n.call(this)||this)._columns=void 0,t._columns=[],t}o(i,n);var u=i.prototype;return u.adjustWidth=function(t,n,e){var o=t.container,u=t.autoWidth;if(!o)return this;var s=o.clientWidth,l={};n.current&&u&&(q(x(Bt,{tableRef:n.current}),e.current),l=function(t){var n=t.querySelector("table");if(!n)return{};var e=n.className,o=n.style.cssText;n.className=e+" "+et("shadowTable"),n.style.tableLayout="auto",n.style.width="auto",n.style.padding="0",n.style.margin="0",n.style.border="none",n.style.outline="none";var i=Array.from(n.parentNode.querySelectorAll("thead th")).reduce(function(t,n){var e;return n.style.width=n.clientWidth+"px",r(((e={})[n.getAttribute("data-column-id")]={minWidth:n.clientWidth},e),t)},{});return n.className=e,n.style.cssText=o,n.style.tableLayout="auto",Array.from(n.parentNode.querySelectorAll("thead th")).reduce(function(t,n){return t[n.getAttribute("data-column-id")].width=n.clientWidth,t},i)}(e.current));for(var c,f=a(i.tabularFormat(this.columns).reduce(function(t,n){return t.concat(n)},[]));!(c=f()).done;){var p=c.value;p.columns&&p.columns.length>0||(!p.width&&u?p.id in l&&(p.width=Wt(l[p.id].width),p.minWidth=Wt(l[p.id].minWidth)):p.width=Wt(Ut(p.width,s)))}return n.current&&u&&q(null,e.current),this},u.setSort=function(t,n){for(var e,o=a(n||this.columns||[]);!(e=o()).done;){var i=e.value;i.columns&&i.columns.length>0?i.sort=void 0:void 0===i.sort&&t?i.sort={}:i.sort?"object"==typeof i.sort&&(i.sort=r({},i.sort)):i.sort=void 0,i.columns&&this.setSort(t,i.columns)}},u.setResizable=function(t,n){for(var e,r=a(n||this.columns||[]);!(e=r()).done;){var o=e.value;void 0===o.resizable&&(o.resizable=t),o.columns&&this.setResizable(t,o.columns)}},u.setID=function(t){for(var n,e=a(t||this.columns||[]);!(n=e()).done;){var r=n.value;r.id||"string"!=typeof r.name||(r.id=qt(r.name)),r.id||Vt.error('Could not find a valid ID for one of the columns. Make sure a valid "id" is set for all columns.'),r.columns&&this.setID(r.columns)}},u.populatePlugins=function(n,e){for(var o,i=a(e);!(o=i()).done;){var u=o.value;void 0!==u.plugin&&n.add(r({id:u.id},u.plugin,{position:t.PluginPosition.Cell}))}},i.fromColumns=function(t){for(var n,e=new i,r=a(t);!(n=r()).done;){var o=n.value;if("string"==typeof o||d(o))e.columns.push({name:o});else if("object"==typeof o){var u=o;u.columns&&(u.columns=i.fromColumns(u.columns).columns),"object"==typeof u.plugin&&void 0===u.data&&(u.data=null),e.columns.push(o)}}return e},i.createFromConfig=function(t){var n=new i;return t.from?n.columns=i.fromHTMLTable(t.from).columns:t.columns?n.columns=i.fromColumns(t.columns).columns:!t.data||"object"!=typeof t.data[0]||t.data[0]instanceof Array||(n.columns=Object.keys(t.data[0]).map(function(t){return{name:t}})),n.columns.length?(n.setID(),n.setSort(t.sort),n.setResizable(t.resizable),n.populatePlugins(t.plugin,n.columns),n):null},i.fromHTMLTable=function(t){for(var n,e=new i,r=a(t.querySelector("thead").querySelectorAll("th"));!(n=r()).done;){var o=n.value;e.columns.push({name:o.innerHTML,width:o.width})}return e},i.tabularFormat=function(t){var n=[],e=t||[],r=[];if(e&&e.length){n.push(e);for(var o,i=a(e);!(o=i()).done;){var u=o.value;u.columns&&u.columns.length&&(r=r.concat(u.columns))}r.length&&(n=n.concat(this.tabularFormat(r)))}return n},i.leafColumns=function(t){var n=[],e=t||[];if(e&&e.length)for(var r,o=a(e);!(r=o()).done;){var i=r.value;i.columns&&0!==i.columns.length||n.push(i),i.columns&&(n=n.concat(this.leafColumns(i.columns)))}return n},i.maximumDepth=function(t){return this.tabularFormat([t]).length-1},e(i,[{key:"columns",get:function(){return this._columns},set:function(t){this._columns=t}},{key:"visibleColumns",get:function(){return this._columns.filter(function(t){return!t.hidden})}}]),i}(V),Xt=function(){},Zt=/*#__PURE__*/function(t){function n(n){var e;return(e=t.call(this)||this).data=void 0,e.set(n),e}o(n,t);var e=n.prototype;return e.get=function(){try{return Promise.resolve(this.data()).then(function(t){return{data:t,total:t.length}})}catch(t){return Promise.reject(t)}},e.set=function(t){return t instanceof Array?this.data=function(){return t}:t instanceof Function&&(this.data=t),this},n}(Xt),Jt=/*#__PURE__*/function(t){function n(n){var e;return(e=t.call(this)||this).options=void 0,e.options=n,e}o(n,t);var e=n.prototype;return e.handler=function(t){return"function"==typeof this.options.handle?this.options.handle(t):t.ok?t.json():(Vt.error("Could not fetch data: "+t.status+" - "+t.statusText,!0),null)},e.get=function(t){var n=r({},this.options,t);return"function"==typeof n.data?n.data(n):fetch(n.url,n).then(this.handler.bind(this)).then(function(t){return{data:n.then(t),total:"function"==typeof n.total?n.total(t):void 0}})},n}(Xt),Qt=/*#__PURE__*/function(){function t(){}return t.createFromConfig=function(t){var n=null;return t.data&&(n=new Zt(t.data)),t.from&&(n=new Zt(this.tableElementToArray(t.from)),t.from.style.display="none"),t.server&&(n=new Jt(t.server)),n||Vt.error("Could not determine the storage type",!0),n},t.tableElementToArray=function(t){for(var n,e,r=[],o=a(t.querySelector("tbody").querySelectorAll("tr"));!(n=o()).done;){for(var i,u=[],s=a(n.value.querySelectorAll("td"));!(i=s()).done;){var l=i.value;1===l.childNodes.length&&l.childNodes[0].nodeType===Node.TEXT_NODE?u.push((e=l.innerHTML,(new DOMParser).parseFromString(e,"text/html").documentElement.textContent)):u.push(G(l.innerHTML))}r.push(u)}return r},t}(),Yt="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator")):"@@iterator";function tn(t,n,e){if(!t.s){if(e instanceof nn){if(!e.s)return void(e.o=tn.bind(null,t,n));1&n&&(n=e.s),e=e.v}if(e&&e.then)return void e.then(tn.bind(null,t,n),tn.bind(null,t,2));t.s=n,t.v=e;var r=t.o;r&&r(t)}}var nn=/*#__PURE__*/function(){function t(){}return t.prototype.then=function(n,e){var r=new t,o=this.s;if(o){var i=1&o?n:e;if(i){try{tn(r,1,i(this.v))}catch(t){tn(r,2,t)}return r}return this}return this.o=function(t){try{var o=t.v;1&t.s?tn(r,1,n?n(o):o):e?tn(r,1,e(o)):tn(r,2,o)}catch(t){tn(r,2,t)}},r},t}();function en(t){return t instanceof nn&&1&t.s}var rn=/*#__PURE__*/function(t){function n(n){var e;return(e=t.call(this)||this)._steps=new Map,e.cache=new Map,e.lastProcessorIndexUpdated=-1,n&&n.forEach(function(t){return e.register(t)}),e}o(n,t);var r=n.prototype;return r.clearCache=function(){this.cache=new Map,this.lastProcessorIndexUpdated=-1},r.register=function(t,n){if(void 0===n&&(n=null),!t)throw Error("Processor is not defined");if(null===t.type)throw Error("Processor type is not defined");if(this.findProcessorIndexByID(t.id)>-1)throw Error("Processor ID "+t.id+" is already defined");return t.on("propsUpdated",this.processorPropsUpdated.bind(this)),this.addProcessorByPriority(t,n),this.afterRegistered(t),t},r.tryRegister=function(t,n){void 0===n&&(n=null);try{return this.register(t,n)}catch(t){}},r.unregister=function(t){if(t&&-1!==this.findProcessorIndexByID(t.id)){var n=this._steps.get(t.type);n&&n.length&&(this._steps.set(t.type,n.filter(function(n){return n!=t})),this.emit("updated",t))}},r.addProcessorByPriority=function(t,n){var e=this._steps.get(t.type);if(!e){var r=[];this._steps.set(t.type,r),e=r}if(null===n||n<0)e.push(t);else if(e[n]){var o=e.slice(0,n-1),i=e.slice(n+1);this._steps.set(t.type,o.concat(t).concat(i))}else e[n]=t},r.getStepsByType=function(t){return this.steps.filter(function(n){return n.type===t})},r.getSortedProcessorTypes=function(){return Object.keys(K).filter(function(t){return!isNaN(Number(t))}).map(function(t){return Number(t)})},r.process=function(t){try{var n=function(t){return e.lastProcessorIndexUpdated=o.length,e.emit("afterProcess",i),i},e=this,r=e.lastProcessorIndexUpdated,o=e.steps,i=t,u=function(t,n){try{var u=function(t,n,e){if("function"==typeof t[Yt]){var r,o,i,u=t[Yt]();if(function t(e){try{for(;!(r=u.next()).done;)if((e=n(r.value))&&e.then){if(!en(e))return void e.then(t,i||(i=tn.bind(null,o=new nn,2)));e=e.v}o?tn(o,1,e):o=e}catch(t){tn(o||(o=new nn),2,t)}}(),u.return){var s=function(t){try{r.done||u.return()}catch(t){}return t};if(o&&o.then)return o.then(s,function(t){throw s(t)});s()}return o}if(!("length"in t))throw new TypeError("Object is not iterable");for(var a=[],l=0;l=r)return Promise.resolve(t.process(i)).then(function(n){e.cache.set(t.id,i=n)});i=e.cache.get(t.id)}();if(o&&o.then)return o.then(function(){})})}catch(t){return n(t)}return u&&u.then?u.then(void 0,n):u}(0,function(t){throw Vt.error(t),e.emit("error",i),t});return Promise.resolve(u&&u.then?u.then(n):n())}catch(t){return Promise.reject(t)}},r.findProcessorIndexByID=function(t){return this.steps.findIndex(function(n){return n.id==t})},r.setLastProcessorIndex=function(t){var n=this.findProcessorIndexByID(t.id);this.lastProcessorIndexUpdated>n&&(this.lastProcessorIndexUpdated=n)},r.processorPropsUpdated=function(t){this.setLastProcessorIndex(t),this.emit("propsUpdated"),this.emit("updated",t)},r.afterRegistered=function(t){this.setLastProcessorIndex(t),this.emit("afterRegister"),this.emit("updated",t)},e(n,[{key:"steps",get:function(){for(var t,n=[],e=a(this.getSortedProcessorTypes());!(t=e()).done;){var r=this._steps.get(t.value);r&&r.length&&(n=n.concat(r))}return n.filter(function(t){return t})}}]),n}(Q),on=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(t){try{return Promise.resolve(this.props.storage.get(t))}catch(t){return Promise.reject(t)}},e(n,[{key:"type",get:function(){return K.Extractor}}]),n}(tt),un=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(t){var n=J.fromArray(t.data);return n.length=t.total,n},e(n,[{key:"type",get:function(){return K.Transformer}}]),n}(tt),sn=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(){return Object.entries(this.props.serverStorageOptions).filter(function(t){return"function"!=typeof t[1]}).reduce(function(t,n){var e;return r({},t,((e={})[n[0]]=n[1],e))},{})},e(n,[{key:"type",get:function(){return K.Initiator}}]),n}(tt),an=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}o(n,t);var r=n.prototype;return r.castData=function(t){if(!t||!t.length)return[];if(!this.props.header||!this.props.header.columns)return t;var n=Kt.leafColumns(this.props.header.columns);return t[0]instanceof Array?t.map(function(t){var e=0;return n.map(function(n,r){return void 0!==n.data?(e++,"function"==typeof n.data?n.data(t):n.data):t[r-e]})}):"object"!=typeof t[0]||t[0]instanceof Array?[]:t.map(function(t){return n.map(function(n,e){return void 0!==n.data?"function"==typeof n.data?n.data(t):n.data:n.id?t[n.id]:(Vt.error("Could not find the correct cell for column at position "+e+".\n Make sure either 'id' or 'selector' is defined for all columns."),null)})})},r._process=function(t){return{data:this.castData(t.data),total:t.total}},e(n,[{key:"type",get:function(){return K.Transformer}}]),n}(tt),ln=/*#__PURE__*/function(){function t(){}return t.createFromConfig=function(t){var n=new rn;return t.storage instanceof Jt&&n.register(new sn({serverStorageOptions:t.server})),n.register(new on({storage:t.storage})),n.register(new an({header:t.header})),n.register(new un),n},t}(),cn=function(t){var n=this;this.state=void 0,this.listeners=[],this.isDispatching=!1,this.getState=function(){return n.state},this.getListeners=function(){return n.listeners},this.dispatch=function(t){if("function"!=typeof t)throw new Error("Reducer is not a function");if(n.isDispatching)throw new Error("Reducers may not dispatch actions");n.isDispatching=!0;var e=n.state;try{n.state=t(n.state)}finally{n.isDispatching=!1}for(var r,o=a(n.listeners);!(r=o()).done;)(0,r.value)(n.state,e);return n.state},this.subscribe=function(t){if("function"!=typeof t)throw new Error("Listener is not a function");return n.listeners=[].concat(n.listeners,[t]),function(){return n.listeners=n.listeners.filter(function(n){return n!==t})}},this.state=t},fn=function(t,n){var e={__c:n="__cC"+m++,__:null,Consumer:function(t,n){return t.children(n)},Provider:function(t){var e,r;return this.getChildContext||(e=[],(r={})[n]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(t){this.props.value!==t.value&&e.some(E)},this.sub=function(t){e.push(t);var n=t.componentWillUnmount;t.componentWillUnmount=function(){e.splice(e.indexOf(t),1),n&&n.call(t)}}),t.children}};return e.Provider.__=e.Consumer.contextType=e}(),pn=/*#__PURE__*/function(){function n(){Object.assign(this,n.defaultConfig())}var e=n.prototype;return e.assign=function(t){return Object.assign(this,t)},e.update=function(t){return t?(this.assign(n.fromPartialConfig(r({},this,t))),this):this},n.defaultConfig=function(){return{store:new cn({status:l.Init,header:void 0,data:null}),plugin:new $t,tableRef:{current:null},width:"100%",height:"auto",processingThrottleMs:100,autoWidth:!0,style:{},className:{}}},n.fromPartialConfig=function(e){var r=(new n).assign(e);return"boolean"==typeof e.sort&&e.sort&&r.assign({sort:{multiColumn:!0}}),r.assign({header:Kt.createFromConfig(r)}),r.assign({storage:Qt.createFromConfig(r)}),r.assign({pipeline:ln.createFromConfig(r)}),r.assign({translator:new Lt(r.language)}),r.plugin=new $t,r.search&&r.plugin.add({id:"search",position:t.PluginPosition.Header,component:Dt}),r.pagination&&r.plugin.add({id:"pagination",position:t.PluginPosition.Footer,component:Ft}),r.plugins&&r.plugins.forEach(function(t){return r.plugin.add(t)}),r},n}();function dn(t){var n,e=It();return x("td",r({role:t.role,colSpan:t.colSpan,"data-column-id":t.column&&t.column.id,className:rt(et("td"),t.className,e.className.td),style:r({},t.style,e.style.td),onClick:function(n){t.messageCell||e.eventEmitter.emit("cellClick",n,t.cell,t.column,t.row)}},(n=t.column)?"function"==typeof n.attributes?n.attributes(t.cell.data,t.row,t.column):n.attributes:{}),t.column&&"function"==typeof t.column.formatter?t.column.formatter(t.cell.data,t.row,t.column):t.column&&t.column.plugin?x(Gt,{pluginId:t.column.id,props:{column:t.column,cell:t.cell,row:t.row}}):t.cell.data)}function hn(t){var n=It(),e=Ht(function(t){return t.header});return x("tr",{className:rt(et("tr"),n.className.tr),onClick:function(e){t.messageRow||n.eventEmitter.emit("rowClick",e,t.row)}},t.children?t.children:t.row.cells.map(function(n,r){var o=function(t){if(e){var n=Kt.leafColumns(e.columns);if(n)return n[t]}return null}(r);return o&&o.hidden?null:x(dn,{key:n.id,cell:n,row:t.row,column:o})}))}function _n(t){return x(hn,{messageRow:!0},x(dn,{role:"alert",colSpan:t.colSpan,messageCell:!0,cell:new X(t.message),className:rt(et("message"),t.className?t.className:null)}))}function mn(){var t=It(),n=Ht(function(t){return t.data}),e=Ht(function(t){return t.status}),r=Ht(function(t){return t.header}),o=At(),i=function(){return r?r.visibleColumns.length:0};return x("tbody",{className:rt(et("tbody"),t.className.tbody)},n&&n.rows.map(function(t){return x(hn,{key:t.id,row:t})}),e===l.Loading&&(!n||0===n.length)&&x(_n,{message:o("loading"),colSpan:i(),className:rt(et("loading"),t.className.loading)}),e===l.Rendered&&n&&0===n.length&&x(_n,{message:o("noRecordsFound"),colSpan:i(),className:rt(et("notfound"),t.className.notfound)}),e===l.Error&&x(_n,{message:o("error"),colSpan:i(),className:rt(et("error"),t.className.error)}))}var vn=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}o(n,t);var r=n.prototype;return r.validateProps=function(){for(var t,n=a(this.props.columns);!(t=n()).done;){var e=t.value;void 0===e.direction&&(e.direction=1),1!==e.direction&&-1!==e.direction&&Vt.error("Invalid sort direction "+e.direction)}},r.compare=function(t,n){return t>n?1:t1&&(f=!0,c=!0):0===a?c=!0:a>0&&!e?(c=!0,f=!0):a>0&&e&&(c=!0),f&&(s=[]),c)s.push({index:t,direction:n,compare:o});else if(d){var h=s.indexOf(l);s[h].direction=n}else if(p){var _=s.indexOf(l);s.splice(_,1)}return r({},i,{sort:{columns:s}})}},yn=function(t,n,e){return function(o){var i=(o.sort?[].concat(o.sort.columns):[]).find(function(n){return n.index===t});return r({},o,i?gn(t,1===i.direction?-1:1,n,e)(o):gn(t,1,n,e)(o))}},bn=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(t){var n={};return this.props.url&&(n.url=this.props.url(t.url,this.props.columns)),this.props.body&&(n.body=this.props.body(t.body,this.props.columns)),r({},t,n)},e(n,[{key:"type",get:function(){return K.ServerSort}}]),n}(tt);function wn(t){var n=It(),e=jt().dispatch,o=At(),i=gt(0),u=i[0],s=i[1],a=n.sort,l=Ht(function(t){return t.sort}),c="object"==typeof(null==a?void 0:a.server)?K.ServerSort:K.Sort,f=function(){var t=n.pipeline.getStepsByType(c);if(t.length)return t[0]};return yt(function(){var t=f()||(c===K.ServerSort?new bn(r({columns:l?l.columns:[]},a.server)):new vn({columns:l?l.columns:[]}));return n.pipeline.tryRegister(t),function(){return n.pipeline.unregister(t)}},[n]),yt(function(){if(l){var n,e=l.columns.find(function(n){return n.index===t.index});e?(0===u&&(e.direction=null!=(n=t.direction)?n:1),s(e.direction)):s(0)}},[l]),yt(function(){var t=f();t&&l&&t.setProps({columns:l.columns})},[l]),x("button",{tabIndex:-1,"aria-label":o("sort.sort"+(1===u?"Desc":"Asc")),title:o("sort.sort"+(1===u?"Desc":"Asc")),className:rt(et("sort"),et("sort",function(t){return 1===t?"asc":-1===t?"desc":"neutral"}(u)),n.className.sort),onClick:function(n){n.preventDefault(),n.stopPropagation(),e(yn(t.index,!0===n.shiftKey&&a.multiColumn,t.compare))}})}var xn=function(t,n){var e;void 0===n&&(n=100);var r=Date.now(),o=function(){r=Date.now(),t.apply(void 0,[].slice.call(arguments))};return function(){var t=[].slice.call(arguments),i=Date.now(),u=i-r;u>=n?o.apply(void 0,t):(e&&clearTimeout(e),e=setTimeout(function(){o.apply(void 0,t),e=null},n-u))}};function kn(t){var n,e=function(t){return t instanceof MouseEvent?Math.floor(t.pageX):Math.floor(t.changedTouches[0].pageX)},r=function(r){r.stopPropagation();var u=parseInt(t.thRef.current.style.width,10)-e(r);n=xn(function(t){return o(t,u)},10),document.addEventListener("mouseup",i),document.addEventListener("touchend",i),document.addEventListener("mousemove",n),document.addEventListener("touchmove",n)},o=function(n,r){n.stopPropagation();var o=t.thRef.current;r+e(n)>=parseInt(o.style.minWidth,10)&&(o.style.width=r+e(n)+"px")},i=function t(e){e.stopPropagation(),document.removeEventListener("mouseup",t),document.removeEventListener("mousemove",n),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",t)};return x("div",{className:rt(et("th"),et("resizable")),onMouseDown:r,onTouchStart:r,onClick:function(t){return t.stopPropagation()}})}function Pn(t){var n=It(),e=bt(null),o=gt({}),i=o[0],u=o[1],s=jt().dispatch;yt(function(){if(n.fixedHeader&&e.current){var t=e.current.offsetTop;"number"==typeof t&&u({top:t})}},[e]);var a,l=function(){return null!=t.column.sort},c=function(e){e.stopPropagation(),l()&&s(yn(t.index,!0===e.shiftKey&&n.sort.multiColumn,t.column.sort.compare))};return x("th",r({ref:e,"data-column-id":t.column&&t.column.id,className:rt(et("th"),l()?et("th","sort"):null,n.fixedHeader?et("th","fixed"):null,n.className.th),onClick:c,style:r({},n.style.th,{minWidth:t.column.minWidth,width:t.column.width},i,t.style),onKeyDown:function(t){l()&&13===t.which&&c(t)},rowSpan:t.rowSpan>1?t.rowSpan:void 0,colSpan:t.colSpan>1?t.colSpan:void 0},(a=t.column)?"function"==typeof a.attributes?a.attributes(null,null,t.column):a.attributes:{},l()?{tabIndex:0}:{}),x("div",{className:et("th","content")},void 0!==t.column.name?t.column.name:void 0!==t.column.plugin?x(Gt,{pluginId:t.column.plugin.id,props:{column:t.column}}):null),l()&&x(wn,r({index:t.index},t.column.sort)),t.column.resizable&&t.index0?(Vt.error("The container element "+t+" is not empty. Make sure the container is empty and call render() again"),this):(this.config.container=t,q(this.createElement(),t),this)},n}(Q);t.Cell=X,t.Component=S,t.Config=pn,t.Grid=Ln,t.Row=Z,t.className=et,t.createElement=x,t.createRef=function(){return{current:null}},t.h=x,t.html=G,t.useConfig=It,t.useEffect=yt,t.useRef=bt,t.useSelector=Ht,t.useState=gt,t.useStore=jt,t.useTranslator=At}); +//# sourceMappingURL=gridjs.umd.js.map diff --git a/module/ticketcenter/services/ticketcenter.api.php b/module/ticketcenter/services/ticketcenter.api.php index 513bcc3..d5c87af 100644 --- a/module/ticketcenter/services/ticketcenter.api.php +++ b/module/ticketcenter/services/ticketcenter.api.php @@ -8,7 +8,7 @@ $currDir = __DIR__; $rootDir = dirname(dirname(dirname($currDir))); $mysydeDir = $rootDir . '/mysyde'; -require_once($rootDir . '/vendor/autoload.php'); +require_once($rootDir . '/vendor/autoload.php'); require_once($rootDir . "/mysyde/frontend/frontend_functions.inc.php"); $envDir = $rootDir . '/config'; @@ -17,28 +17,309 @@ if (is_dir($envDir) && file_exists($envFilePath) && is_file($envFilePath) && is_ $dotenv = new \Dotenv\Dotenv($envDir); $dotenv->load(); } -$common = $mysydeDir ."/common/common_functions.inc.php"; +$common = $mysydeDir . "/common/common_functions.inc.php"; require_once($common); -$connEnv = (local_environment()) ? $mysydeDir."/dc.config.php" : $mysydeDir."/dc-server.config.php"; +$connEnv = (local_environment()) ? $mysydeDir . "/dc.config.php" : $mysydeDir . "/dc-server.config.php"; require_once($connEnv); db_connect(); +function parse_ids_list(?string $csv): array +{ + if ($csv === null) + return []; + $csv = trim($csv); + if ($csv === '') + return []; -switch ($_POST['action']) { + $parts = explode(',', $csv); + $out = []; + foreach ($parts as $p) { + $p = trim($p); + if ($p === '') + continue; + if (ctype_digit($p)) + $out[] = (int) $p; + } + $out = array_values(array_unique($out)); + return $out; +} + +function build_user_pairs(array $contact_rows): array +{ + $pairs = []; + foreach ($contact_rows as $row) { + $m = $row['main_mandant_id'] ?? null; + $d = $row['main_department_id'] ?? null; + if ($m === null || $d === null) + continue; + if (!is_numeric($m) || !is_numeric($d)) + continue; + $pairs[((int) $m) . ':' . ((int) $d)] = true; + } + return $pairs; // associative set +} + +function user_can_see_ticket(int $contact_id, array $user_pairs, array $ticket): bool +{ + + $contact_ids = parse_ids_list($ticket['contact_ids'] ?? null); + $mandant_ids = parse_ids_list($ticket['mandant_ids'] ?? null); + $department_ids = parse_ids_list($ticket['department_ids'] ?? null); + + if (!empty($contact_ids) && in_array($contact_id, $contact_ids, true)) { + return true; + } + + $mandant_unrestricted = empty($mandant_ids); + $department_unrestricted = empty($department_ids); + + if ($mandant_unrestricted && $department_unrestricted) { + return true; + } + + if (!$mandant_unrestricted && $department_unrestricted) { + foreach ($user_pairs as $pairKey => $_) { + [$um, $ud] = array_map('intval', explode(':', $pairKey, 2)); + if (in_array($um, $mandant_ids, true)) + return true; + } + return false; + } + + if ($mandant_unrestricted && !$department_unrestricted) { + foreach ($user_pairs as $pairKey => $_) { + [$um, $ud] = array_map('intval', explode(':', $pairKey, 2)); + if (in_array($ud, $department_ids, true)) + return true; + } + return false; + } + + + foreach ($mandant_ids as $m) { + foreach ($department_ids as $d) { + if (isset($user_pairs[$m . ':' . $d])) { + return true; + } + } + } + + return false; +} + +function filter_tickets_for_user(int $contact_id, array $contact_rows, array $tickets): array +{ + $user_pairs = build_user_pairs($contact_rows); + + $out = []; + foreach ($tickets as $ticket) { + if (user_can_see_ticket($contact_id, $user_pairs, $ticket)) { + $out[] = $ticket; + } + } + return $out; +} + +$json = file_get_contents('php://input'); +$data = json_decode($json, true); + +switch ($data['action']) { case 'get_tickets': - get_tickets(); + get_tickets($data); + break; + case 'getSubCategories': + get_sub_categories($data); + break; + case 'getParendCategories': + get_parent_categories($data); + break; + case 'getCategorieInfo': + get_categorie_info($data); break; default: echo json_encode(['error' => 'Invalid action']); break; } -function get_tickets() { - $contact = $_SESSION['main_contact']; - $contact_json = json_encode($contact); +function get_categorie_info($data) +{ + $category_id = $data['category_id'] ?? ''; - return json_encode(['contact' => $contact_json]); -} \ No newline at end of file + $query = "SELECT id, description, text FROM main_tickets_category WHERE id = :category_id"; + $stmt = $GLOBALS['pdo_conn']->prepare($query); + $stmt->bindParam(':category_id', $category_id); + $stmt->execute(); + $category_info = $stmt->fetch(PDO::FETCH_ASSOC); + + echo json_encode($category_info); +} +function get_parent_categories($data) +{ + $query = "SELECT id, description, text FROM main_tickets_category WHERE parent_id IS NULL ORDER BY sorting"; + $stmt = $GLOBALS['pdo_conn']->prepare($query); + $stmt->execute(); + $parent_categories = $stmt->fetchAll(PDO::FETCH_ASSOC); + + echo json_encode($parent_categories); +} + +function get_sub_categories($data) +{ + $category_id = $data['category_id'] ?? ''; + + $query = "SELECT id, description, text FROM main_tickets_category WHERE parent_id = :category_id ORDER BY sorting"; + $stmt = $GLOBALS['pdo_conn']->prepare($query); + $stmt->bindParam(':category_id', $category_id); + $stmt->execute(); + $sub_categories = $stmt->fetchAll(PDO::FETCH_ASSOC); + + echo json_encode($sub_categories); +} + +function get_tickets($data) +{ + + $cue = $data['cue'] ?? ''; + $contact_id = $data['contactID'] ?? ''; + + $query = "SELECT + + main_contact.id AS contact_id, + main_contact_department.main_mandant_id, + main_contact_department.main_department_id, + main_contact_department.main_role_id, + main_contact_department.main_bereich_id, + main_contact_department.main_einricht_id + + FROM main_contact + + LEFT JOIN main_contact_department AS main_contact_department ON main_contact_department.main_contact_id = main_contact.id + + WHERE main_contact.id = :contact_id + "; + + $stmt = $GLOBALS['pdo_conn']->prepare($query); + $stmt->bindParam(':contact_id', $contact_id); + $stmt->execute(); + $contact_rows = $stmt->fetchAll(PDO::FETCH_ASSOC); + + switch ($cue) { + case '1000': + $where = "WHERE main_tickets.sender_id = :contact_id + AND current_state != 4"; + break; + case '2000': + $where = "WHERE main_tickets.receiver_id = :contact_id + AND current_state != 4"; + break; + case '3000': + $where = "WHERE current_state != 4"; + break; + case '4000': + $where = "WHERE main_tickets.current_state = 4"; + break; + case '6000': + $where = ""; + break; + case '7000': + $where = "WHERE main_tickets.receiver_id = 0"; + break; + case '8000': + $where = "WHERE main_tickets.insurance_claim = 1"; + break; + default: + $where = ""; + break; + } + + + $query = "SELECT + + main_tickets.id, + main_tickets.id AS 'ticket_no', + main_tickets.description, + main_tickets.creation_date, + receiver.name AS 'receiver', + sender.name AS 'sender', + main_tickets_category.description AS 'category_description', + individual_state.description AS 'individual_state_description', + + GROUP_CONCAT(DISTINCT main_tickets_category_mandant.main_mandant_id) AS mandant_ids, + GROUP_CONCAT(DISTINCT main_tickets_category_department.main_department_id) AS department_ids, + GROUP_CONCAT(DISTINCT main_tickets_category_contact.main_contact_id) AS contact_ids + + FROM main_tickets + LEFT JOIN main_contact AS receiver ON receiver.id = main_tickets.receiver_id + LEFT JOIN main_contact AS sender ON sender.id = main_tickets.sender_id + LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id + LEFT JOIN main_tickets_status AS individual_state ON individual_state.id = main_tickets.individual_state + + LEFT JOIN main_tickets_category_mandant AS main_tickets_category_mandant ON main_tickets_category_mandant.main_tickets_category_id = main_tickets.main_ticket_category_id + LEFT JOIN main_tickets_category_department AS main_tickets_category_department ON main_tickets_category_department.main_tickets_category_id = main_tickets.main_ticket_category_id + LEFT JOIN main_tickets_category_contact AS main_tickets_category_contact ON main_tickets_category_contact.main_tickets_category_id = main_tickets.main_ticket_category_id + + $where + + GROUP BY main_tickets.id + "; + + $stmt = $GLOBALS['pdo_conn']->prepare($query); + switch ($cue) { + case '1000': + $stmt->bindParam(':contact_id', $contact_id, PDO::PARAM_INT); + break; + case '2000': + $stmt->bindParam(':contact_id', $contact_id, PDO::PARAM_INT); + break; + case '3000': + break; + case '4000': + break; + case '5000': + break; + case '6000': + break; + case '7000': + break; + default: + + break; + } + + $stmt->execute(); + $tickets = $stmt->fetchAll(PDO::FETCH_ASSOC); + + $contact_id_int = (int) $contact_id; + + switch ($cue) { + case '1000': + break; + case '2000': + break; + case '3000': + $tickets = filter_tickets_for_user($contact_id_int, $contact_rows, $tickets); + break; + case '4000': + $tickets = filter_tickets_for_user($contact_id_int, $contact_rows, $tickets); + break; + case '5000': + break; + case '6000': + break; + case '7000': + break; + default: + + break; + } + + $tickets = array_map(function ($ticket) { + $ticket['id'] = encryptId($ticket['id']); + return $ticket; + }, $tickets); + + echo json_encode($tickets); +} diff --git a/module/ticketcenter/views/settings/settings.inc.php b/module/ticketcenter/views/settings/settings.inc.php new file mode 100644 index 0000000..04d07c1 --- /dev/null +++ b/module/ticketcenter/views/settings/settings.inc.php @@ -0,0 +1,105 @@ + '') { + $query = "UPDATE main_tickets_status SET + description = '" . mysqli_real_escape_string($GLOBALS['mysql_con'], $_REQUEST["input_description"]) . "' + WHERE id = '" . $_REQUEST["input_status_id"] . "' LIMIT 1"; + $inserted = TRUE; + } else { + $sorting = @mysqli_fetch_array(@mysqli_query($GLOBALS['mysql_con'], "SELECT MAX(sorting)+1 AS 'newsorting' FROM main_tickets_status")); + $sorting = ($sorting["newsorting"] <> "") ? $sorting = $sorting["newsorting"] : $sorting = 1; + $query = "INSERT INTO main_tickets_status (description) VALUES ( + '" . mysqli_real_escape_string($GLOBALS['mysql_con'], $_REQUEST["input_description"]) . "' + )"; + $inserted = TRUE; + } + + @mysqli_query($GLOBALS['mysql_con'], $query); + + if ($inserted == TRUE) { + $input_id = mysqli_insert_id($GLOBALS['mysql_con']); + $messages[] = '
' . $translation->get("msg_success") . '
'; + } else { + $messages[] = '
' . $translation->get("msg_error") . '
'; + } + + if ($_REQUEST['save_and_close'] == 1) { + require_once("status_listform.inc.php"); + } else { + edit_status($input_id); + } +} + +function selectContact($group_id) +{ + $translation = \DynCom\mysyde\common\classes\Registry::get("translation"); + + $query = "SELECT * FROM main_contact"; + $result_contact = @mysqli_query($GLOBALS['mysql_con'], $query); + + if (@mysqli_num_rows($result_contact) == 0) { + return; + } + + $preselect = array(); + + $query = "SELECT main_contact.* FROM main_contact INNER JOIN main_tickets_category_contact ON main_contact.id = main_tickets_category_contact.main_contact_id WHERE main_tickets_category_contact.main_tickets_category_id = '" . $group_id . "'"; + $result = @mysqli_query($GLOBALS['mysql_con'], $query); + + while ($row = @mysqli_fetch_array($result)) { + array_push($preselect, $row['name']); + } + $allselect = array(); + ?> +
Zusätzlicher Benutzer auswählen
+ +
+ + + + + + + +

+ +
+ +
+
+ + diff --git a/module/ticketcenter/views/status/status_listform.inc.php b/module/ticketcenter/views/status/status_listform.inc.php index 904d839..23051bf 100644 --- a/module/ticketcenter/views/status/status_listform.inc.php +++ b/module/ticketcenter/views/status/status_listform.inc.php @@ -17,7 +17,7 @@ $inputname = "input_status_id";
get("description") . "' FROM main_tickets_status WHERE id NOT IN (0, 1, 2, 3)"; + $query = "SELECT id, description AS '" . $translation->get("description") . "' FROM main_tickets_status WHERE id NOT IN (0, 1, 2, 3, 4)"; $format = array("option", "text"); if ($result = mysqli_query($GLOBALS['mysql_con'], $query)) { linklist($result, "form_status_list", $format); diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter.inc.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter.inc.php index 56845f6..87fdaa6 100644 --- a/module/ticketcenter/views/ticketcenter/show_ticketcenter.inc.php +++ b/module/ticketcenter/views/ticketcenter/show_ticketcenter.inc.php @@ -1,14 +1,15 @@ + - +
+
+ \ No newline at end of file diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter_create_cardform.inc.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter_create_cardform.inc.php new file mode 100644 index 0000000..2bb51dd --- /dev/null +++ b/module/ticketcenter/views/ticketcenter/show_ticketcenter_create_cardform.inc.php @@ -0,0 +1,153 @@ + + + + +
+
+
+ +

Neue Ticket erstellen

+
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc copy.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc copy.php deleted file mode 100644 index 7c09476..0000000 --- a/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc copy.php +++ /dev/null @@ -1,941 +0,0 @@ - -"; - // echo "User Department IDs: " . implode(', ', $department_ids) . "
"; - - // Store the result in contact_info for compatibility with existing code - $contact_info = [ - 'mandant_ids' => implode(', ', $mandant_ids), - 'department_ids' => implode(', ', $department_ids) - ]; - - $join = ""; - $additional_joins = ""; - $additional_where = ""; - if (isset($cue)) { - switch ($cue) { - case '1000': // Meine offenen und in bearbeitung Tickets - $where = " WHERE sender_id = " . $GLOBALS['main_contact']['id'] . " AND current_state != 4"; - break; - case '1500': // Meine offenen und in bearbeitung Tickets - $where = " WHERE receiver_id = " . $GLOBALS['main_contact']['id'] . " AND current_state != 4"; - break; - - case '2000': // Offene Tickets der Abteilung - // $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - // $where = " WHERE current_state != 4 AND (main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . ")"; - $where = " WHERE 1=1 and current_state != 4 and receiver_id = 0"; - // Only add these joins for case 2000 - // $additional_joins = " - // -- Category contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact cat_contact - // ON main_tickets.main_ticket_category_id = cat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department cat_dept - // ON main_tickets.main_ticket_category_id = cat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant cat_mandant - // ON main_tickets.main_ticket_category_id = cat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subcat_contact - // ON main_tickets.main_ticket_subcategory_id = subcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department subcat_dept - // ON main_tickets.main_ticket_subcategory_id = subcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant subcat_mandant - // ON main_tickets.main_ticket_subcategory_id = subcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subsubcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subsubcat_contact - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_department subsubcat_dept - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_mandant subsubcat_mandant - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // "; - - // Only add these conditions for case 2000 - // $additional_where = " - // OR current_state != 4 AND ( - // -- For tickets with a category but no subcategory and no subsubcategory - // main_tickets.main_ticket_subcategory_id = 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // cat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // cat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // cat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subcategory but no subsubcategory - // main_tickets.main_ticket_subcategory_id != 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // subcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subsubcategory (ignore category and subcategory) - // main_tickets.main_ticket_subsubcategory_id != 0 AND ( - // subsubcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subsubcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subsubcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) - // "; - break; - - case '2500': // Offene Tickets der Abteilung - // $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - // $where = " WHERE current_state != 4 AND (main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . ")"; - $where = " WHERE 1=1 and current_state != 4"; - // Only add these joins for case 2000 - // $additional_joins = " - // -- Category contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact cat_contact - // ON main_tickets.main_ticket_category_id = cat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department cat_dept - // ON main_tickets.main_ticket_category_id = cat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant cat_mandant - // ON main_tickets.main_ticket_category_id = cat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subcat_contact - // ON main_tickets.main_ticket_subcategory_id = subcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department subcat_dept - // ON main_tickets.main_ticket_subcategory_id = subcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant subcat_mandant - // ON main_tickets.main_ticket_subcategory_id = subcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subsubcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subsubcat_contact - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_department subsubcat_dept - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_mandant subsubcat_mandant - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // "; - - // Only add these conditions for case 2000 - // $additional_where = " - // OR current_state != 4 AND ( - // -- For tickets with a category but no subcategory and no subsubcategory - // main_tickets.main_ticket_subcategory_id = 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // cat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // cat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // cat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subcategory but no subsubcategory - // main_tickets.main_ticket_subcategory_id != 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // subcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subsubcategory (ignore category and subcategory) - // main_tickets.main_ticket_subsubcategory_id != 0 AND ( - // subsubcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subsubcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subsubcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) - // "; - break; - - case '3000': // Alle geschlossenen Tickets - $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - $where = " WHERE main_tickets.current_state = 4 AND ((main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_contact_department.main_mandant_id IS NULL) OR main_tickets.sender_id = " . $GLOBALS['main_contact']['id'] . " )"; - break; - case '4000': // Alle Tickets ungefiltert - // Fix for case 4000 - set a valid WHERE clause that's always true - $where = " WHERE 1=1"; - break; - case '5000': // Alle Tickets die Eskalieren (die zu lange offen/in Bearbeitung sind) - $where = " WHERE due_date <> '0000-00-00' AND due_date < CURDATE() AND current_state IN (2, 3)"; - break; - case '6000': // Alle Tickets die Eskalieren (die zu lange offen/in Bearbeitung sind) - $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - $where = " WHERE receiver_id = 0 "; - // $where = " WHERE receiver_id = 0 AND main_contact_department.main_mandant_id =".$GLOBALS['main_contact']['master_mandant_id']; - break; - - default: - break; - } - } else { - $where = " WHERE (receiver_id = " . $GLOBALS['main_contact']['id'] . " OR sender_id = " . $GLOBALS['main_contact']['id'] . " ) AND current_state != 4"; - } - - $query = "SELECT DISTINCT - main_tickets.*, - main_tickets_category.description AS 'category_description', - COALESCE(main_tickets_subsubcategory.escalation_state, main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) AS 'escalation_state', - individual_state.description AS 'individual_state_description', - main_tickets_subcategory.description AS 'subcategory_description', - main_tickets_subsubcategory.description AS 'subsubcategory_description', - receiver.name AS 'receiver', - sender.name AS 'sender', - - main_tickets_state.description AS 'state', - DATE_ADD(main_tickets.creation_date, INTERVAL COALESCE(main_tickets_subsubcategory.escalation_state, main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) DAY) AS 'escalation' - FROM - main_tickets - " . $join . " - LEFT JOIN main_contact AS receiver ON receiver.id = main_tickets.receiver_id - LEFT JOIN main_contact AS sender ON sender.id = main_tickets.sender_id - LEFT JOIN main_tickets_status AS individual_state ON individual_state.id = main_tickets.individual_state - LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id - LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id - LEFT JOIN main_tickets_category AS main_tickets_subsubcategory ON main_tickets.main_ticket_subsubcategory_id = main_tickets_subsubcategory.id - LEFT JOIN main_tickets_state ON main_tickets.current_state = main_tickets_state.id - " . $additional_joins . " - WHERE - (" . substr($where, 7) . ") - " . $additional_where . " - ORDER BY - ticket_no DESC;"; - // var_dump($query); - - $result = @mysqli_query($GLOBALS['mysql_con'], $query); - - while ($row = @mysqli_fetch_array($result)) { - // var_dump($row); - if ($cue == 2000) { - if (checkUserPermission($row, $contact_info) == false) { - continue; // Skip this row if the user doesn't have permission - } - } - // var_dump("-----"); - // print_r($row); - $unread = ""; - $query2 = "SELECT * FROM main_tickets_notification - WHERE main_ticket_id = " . $row['id'] . " AND main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND viewed = 0"; - // var_dump($query2); - $result2 = @mysqli_query($GLOBALS['mysql_con'], $query2); - $viewed = @mysqli_num_rows($result2); - if ($viewed != 0) { - $unread = ''; - } - $creation_date = new DateTime($row['creation_date']); - $last_action = new DateTime($row['last_action_date']); - $escalation = new DateTime($row['escalation']); - $now = new DateTime(); // Aktuelles Datum und Uhrzeit - $escalated = ""; - if ($escalation < $now && (isset($row['escalation_state']) && $row['escalation_state'] != "0")) { - $escalated = "escalated"; - } - ?> - - - - -
- - - - -
- - "?> - " : '' ?> - - - - - - - format('d.m.y H:i') ?> - format('d.m.y H:i') ?> - - $now) { - echo $due_date->format('d.m.y'); - } else { - echo '' . $due_date->format('d.m.y') . ''; - } - } else { - echo '--.--.--'; - } - ?> - - diff($creation); - - if ($interval->y > 0) { - echo $interval->y . ' Jahre, ' . $interval->m . ' Monate'; - } elseif ($interval->m > 0) { - echo $interval->m . ' Monate, ' . $interval->d . ' Tage'; - } elseif ($interval->d > 0) { - echo $interval->d . ' Tage, ' . $interval->h . ' Std'; - } elseif ($interval->h > 0) { - echo $interval->h . ' Std, ' . $interval->i . ' Min'; - } else { - echo $interval->i . ' Minuten'; - } - ?> - - - - - - format('d.m.y H:i'); - } - ?> - - - - - -
- ' . htmlspecialchars($supplier['description']) . ' '; - } - ?> -
- - - - - 0; - // $mandantMatch = !$hasMandants || count(array_intersect($userMandants, $mandants)) > 0; - // // Check if the user has access to the department and mandant - // if ($departmentMatch && $mandantMatch) { - // return true; - // } - - // 3. Check if the user has access to the department and mandant - // $array_dep_mand = []; - // foreach ($departments as $department) { - // foreach ($mandants as $mandant) { - // $dep_mand_bind = [ - // 'department' => $department, - // 'mandant' => $mandant - // ]; - // $array_dep_mand[] = $dep_mand_bind; - // } - // } - - - if (empty($departments) and empty($mandants)){ - return false; - } else if (empty($mandants)) { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " - AND main_department_id IN (" . implode(',', $departments) . ")"; - } else if (empty($departments)) { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " - AND main_department_id IN (" . implode(',', $departments) . ")"; - } else { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND main_mandant_id IN (" . implode(',', $mandants) . ") AND main_department_id IN (" . implode(',', $departments) . ")"; - } - - // var_dump($query); - - // var_dump($query); - $result = mysqli_query($GLOBALS['mysql_con'], $query); - - - - if (mysqli_num_rows($result) > 0) { - return true; - } - - return false; - // If we checked one level and didn't find a match - don't exit, continue to the next one - } - } - - return false; -} - - - - -// 1000: Meine offenen und in Bearbeitung Tickets -$query_count_1000 = "SELECT COUNT(*) FROM main_tickets WHERE (receiver_id = " . $GLOBALS['main_contact']['id'] . " OR sender_id = " . $GLOBALS['main_contact']['id'] . " ) AND current_state != 4"; -$result_1000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_1000))[0]; - -// 2000: Offene Tickets der Abteilung -$query_count_2000 = "SELECT COUNT(DISTINCT main_tickets.id) -FROM main_tickets -LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -WHERE current_state != 4 -AND ( - main_contact_department.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . " - OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . " -)"; -$result_2000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_2000))[0]; - -// 3000: Alle geschlossenen Tickets -$query_count_3000 = "SELECT COUNT(*) FROM main_tickets WHERE current_state = 4"; -$result_3000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_3000))[0]; - -// 4000: Alle Tickets ungefiltert -$query_count_4000 = "SELECT COUNT(*) FROM main_tickets"; -$result_4000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_4000))[0]; - -// 5000: Alle eskalierenden Tickets (zu lange offen/in Bearbeitung) -$query_count_5000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE DATE_ADD(main_tickets.creation_date, INTERVAL COALESCE(main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) DAY) < NOW() -AND main_tickets.current_state IN (2, 3)"; -$result_5000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_5000))[0]; - -// 6000: Alle nicht zugewiesenen Tickets -$query_count_6000 = "SELECT COUNT(*) FROM main_tickets WHERE receiver_id = 0"; -$result_6000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_6000))[0]; - -// 7000: // Alle Tickets die im Bereich Einkauf sind (holen wir über main_mandant_id aus main_tickets_category = 15) -$query_count_7000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE main_tickets_category.main_mandant_id = 15 - OR main_tickets_subcategory.main_mandant_id = 15 AND main_tickets.current_state != 4"; -$result_7000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_7000))[0]; - -// 8000: // Alle Tickets die im Bereich Einkauf sind (holen wir über main_mandant_id aus main_tickets_category = 15) -$query_count_8000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE main_tickets_category.main_mandant_id = 15 - OR main_tickets_subcategory.main_mandant_id = 15 AND main_tickets.current_state = 4"; -$result_8000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_8000))[0]; -?> - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
- -
-

-

-
- -
-

Ticketcenter

-
- - - -
- - - - - - -
-
-
-
-
Datumsfilter
-
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - \ No newline at end of file diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc.php index 8f55964..17ebae0 100644 --- a/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc.php +++ b/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc.php @@ -1,941 +1,200 @@ - "; - // echo "User Department IDs: " . implode(', ', $department_ids) . "
"; - - // Store the result in contact_info for compatibility with existing code - $contact_info = [ - 'mandant_ids' => implode(', ', $mandant_ids), - 'department_ids' => implode(', ', $department_ids) - ]; - - $join = ""; - $additional_joins = ""; - $additional_where = ""; - if (isset($cue)) { - switch ($cue) { - case '1000': // Meine offenen und in bearbeitung Tickets - $where = " WHERE sender_id = " . $GLOBALS['main_contact']['id'] . " AND current_state != 4"; - break; - case '1500': // Meine offenen und in bearbeitung Tickets - $where = " WHERE receiver_id = " . $GLOBALS['main_contact']['id'] . " AND current_state != 4"; - break; - - case '2000': // Offene Tickets der Abteilung - // $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - // $where = " WHERE current_state != 4 AND (main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . ")"; - $where = " WHERE 1=1 and current_state != 4 and receiver_id = 0"; - // Only add these joins for case 2000 - // $additional_joins = " - // -- Category contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact cat_contact - // ON main_tickets.main_ticket_category_id = cat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department cat_dept - // ON main_tickets.main_ticket_category_id = cat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant cat_mandant - // ON main_tickets.main_ticket_category_id = cat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subcat_contact - // ON main_tickets.main_ticket_subcategory_id = subcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department subcat_dept - // ON main_tickets.main_ticket_subcategory_id = subcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant subcat_mandant - // ON main_tickets.main_ticket_subcategory_id = subcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subsubcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subsubcat_contact - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_department subsubcat_dept - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_mandant subsubcat_mandant - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // "; - - // Only add these conditions for case 2000 - // $additional_where = " - // OR current_state != 4 AND ( - // -- For tickets with a category but no subcategory and no subsubcategory - // main_tickets.main_ticket_subcategory_id = 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // cat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // cat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // cat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subcategory but no subsubcategory - // main_tickets.main_ticket_subcategory_id != 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // subcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subsubcategory (ignore category and subcategory) - // main_tickets.main_ticket_subsubcategory_id != 0 AND ( - // subsubcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subsubcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subsubcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) - // "; - break; - - case '2500': // Offene Tickets der Abteilung - // $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - // $where = " WHERE current_state != 4 AND (main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . ")"; - $where = " WHERE 1=1 and current_state != 4"; - // Only add these joins for case 2000 - // $additional_joins = " - // -- Category contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact cat_contact - // ON main_tickets.main_ticket_category_id = cat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department cat_dept - // ON main_tickets.main_ticket_category_id = cat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant cat_mandant - // ON main_tickets.main_ticket_category_id = cat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subcat_contact - // ON main_tickets.main_ticket_subcategory_id = subcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department subcat_dept - // ON main_tickets.main_ticket_subcategory_id = subcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant subcat_mandant - // ON main_tickets.main_ticket_subcategory_id = subcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subsubcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subsubcat_contact - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_department subsubcat_dept - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_mandant subsubcat_mandant - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // "; - - // Only add these conditions for case 2000 - // $additional_where = " - // OR current_state != 4 AND ( - // -- For tickets with a category but no subcategory and no subsubcategory - // main_tickets.main_ticket_subcategory_id = 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // cat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // cat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // cat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subcategory but no subsubcategory - // main_tickets.main_ticket_subcategory_id != 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // subcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subsubcategory (ignore category and subcategory) - // main_tickets.main_ticket_subsubcategory_id != 0 AND ( - // subsubcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subsubcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subsubcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) - // "; - break; - - case '3000': // Alle geschlossenen Tickets - $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - $where = " WHERE main_tickets.current_state = 4 AND ((main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_contact_department.main_mandant_id IS NULL) OR main_tickets.sender_id = " . $GLOBALS['main_contact']['id'] . " )"; - break; - case '4000': // Alle Tickets ungefiltert - // Fix for case 4000 - set a valid WHERE clause that's always true - $where = " WHERE 1=1"; - break; - case '5000': // Alle Tickets die Eskalieren (die zu lange offen/in Bearbeitung sind) - $where = " WHERE due_date <> '0000-00-00' AND due_date < CURDATE() AND current_state IN (2, 3)"; - break; - case '6000': // Alle Tickets die Eskalieren (die zu lange offen/in Bearbeitung sind) - $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - $where = " WHERE receiver_id = 0 "; - // $where = " WHERE receiver_id = 0 AND main_contact_department.main_mandant_id =".$GLOBALS['main_contact']['master_mandant_id']; - break; - - default: - break; - } - } else { - $where = " WHERE (receiver_id = " . $GLOBALS['main_contact']['id'] . " OR sender_id = " . $GLOBALS['main_contact']['id'] . " ) AND current_state != 4"; - } - - $query = "SELECT DISTINCT - main_tickets.*, - main_tickets_category.description AS 'category_description', - COALESCE(main_tickets_subsubcategory.escalation_state, main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) AS 'escalation_state', - individual_state.description AS 'individual_state_description', - main_tickets_subcategory.description AS 'subcategory_description', - main_tickets_subsubcategory.description AS 'subsubcategory_description', - receiver.name AS 'receiver', - sender.name AS 'sender', - - main_tickets_state.description AS 'state', - DATE_ADD(main_tickets.creation_date, INTERVAL COALESCE(main_tickets_subsubcategory.escalation_state, main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) DAY) AS 'escalation' - FROM - main_tickets - " . $join . " - LEFT JOIN main_contact AS receiver ON receiver.id = main_tickets.receiver_id - LEFT JOIN main_contact AS sender ON sender.id = main_tickets.sender_id - LEFT JOIN main_tickets_status AS individual_state ON individual_state.id = main_tickets.individual_state - LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id - LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id - LEFT JOIN main_tickets_category AS main_tickets_subsubcategory ON main_tickets.main_ticket_subsubcategory_id = main_tickets_subsubcategory.id - LEFT JOIN main_tickets_state ON main_tickets.current_state = main_tickets_state.id - " . $additional_joins . " - WHERE - (" . substr($where, 7) . ") - " . $additional_where . " - ORDER BY - ticket_no DESC;"; - // var_dump($query); - - $result = @mysqli_query($GLOBALS['mysql_con'], $query); - - while ($row = @mysqli_fetch_array($result)) { - // var_dump($row); - if ($cue == 2000) { - if (checkUserPermission($row, $contact_info) == false) { - continue; // Skip this row if the user doesn't have permission - } - } - // var_dump("-----"); - // print_r($row); - $unread = ""; - $query2 = "SELECT * FROM main_tickets_notification - WHERE main_ticket_id = " . $row['id'] . " AND main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND viewed = 0"; - // var_dump($query2); - $result2 = @mysqli_query($GLOBALS['mysql_con'], $query2); - $viewed = @mysqli_num_rows($result2); - if ($viewed != 0) { - $unread = ''; - } - $creation_date = new DateTime($row['creation_date']); - $last_action = new DateTime($row['last_action_date']); - $escalation = new DateTime($row['escalation']); - $now = new DateTime(); // Aktuelles Datum und Uhrzeit - $escalated = ""; - if ($escalation < $now && (isset($row['escalation_state']) && $row['escalation_state'] != "0")) { - $escalated = "escalated"; - } - ?> - - - - -
- - - - -
- - "?> - " : '' ?> - - - - - - - format('d.m.y H:i') ?> - format('d.m.y H:i') ?> - - $now) { - echo $due_date->format('d.m.y'); - } else { - echo '' . $due_date->format('d.m.y') . ''; - } - } else { - echo '--.--.--'; - } - ?> - - diff($creation); - - if ($interval->y > 0) { - echo $interval->y . ' Jahre, ' . $interval->m . ' Monate'; - } elseif ($interval->m > 0) { - echo $interval->m . ' Monate, ' . $interval->d . ' Tage'; - } elseif ($interval->d > 0) { - echo $interval->d . ' Tage, ' . $interval->h . ' Std'; - } elseif ($interval->h > 0) { - echo $interval->h . ' Std, ' . $interval->i . ' Min'; - } else { - echo $interval->i . ' Minuten'; - } - ?> - - - - - - format('d.m.y H:i'); - } - ?> - - - - - -
- ' . htmlspecialchars($supplier['description']) . ' '; - } - ?> -
- - - - - 0; - // $mandantMatch = !$hasMandants || count(array_intersect($userMandants, $mandants)) > 0; - // // Check if the user has access to the department and mandant - // if ($departmentMatch && $mandantMatch) { - // return true; - // } - - // 3. Check if the user has access to the department and mandant - // $array_dep_mand = []; - // foreach ($departments as $department) { - // foreach ($mandants as $mandant) { - // $dep_mand_bind = [ - // 'department' => $department, - // 'mandant' => $mandant - // ]; - // $array_dep_mand[] = $dep_mand_bind; - // } - // } - - - if (empty($departments) and empty($mandants)){ - return false; - } else if (empty($mandants)) { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " - AND main_department_id IN (" . implode(',', $departments) . ")"; - } else if (empty($departments)) { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " - AND main_department_id IN (" . implode(',', $departments) . ")"; - } else { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND main_mandant_id IN (" . implode(',', $mandants) . ") AND main_department_id IN (" . implode(',', $departments) . ")"; - } - - // var_dump($query); - - // var_dump($query); - $result = mysqli_query($GLOBALS['mysql_con'], $query); - - - - if (mysqli_num_rows($result) > 0) { - return true; - } - - return false; - // If we checked one level and didn't find a match - don't exit, continue to the next one - } - } - - return false; -} - - - - -// 1000: Meine offenen und in Bearbeitung Tickets -$query_count_1000 = "SELECT COUNT(*) FROM main_tickets WHERE (receiver_id = " . $GLOBALS['main_contact']['id'] . " OR sender_id = " . $GLOBALS['main_contact']['id'] . " ) AND current_state != 4"; -$result_1000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_1000))[0]; - -// 2000: Offene Tickets der Abteilung -$query_count_2000 = "SELECT COUNT(DISTINCT main_tickets.id) -FROM main_tickets -LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -WHERE current_state != 4 -AND ( - main_contact_department.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . " - OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . " -)"; -$result_2000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_2000))[0]; - -// 3000: Alle geschlossenen Tickets -$query_count_3000 = "SELECT COUNT(*) FROM main_tickets WHERE current_state = 4"; -$result_3000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_3000))[0]; - -// 4000: Alle Tickets ungefiltert -$query_count_4000 = "SELECT COUNT(*) FROM main_tickets"; -$result_4000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_4000))[0]; - -// 5000: Alle eskalierenden Tickets (zu lange offen/in Bearbeitung) -$query_count_5000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE DATE_ADD(main_tickets.creation_date, INTERVAL COALESCE(main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) DAY) < NOW() -AND main_tickets.current_state IN (2, 3)"; -$result_5000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_5000))[0]; - -// 6000: Alle nicht zugewiesenen Tickets -$query_count_6000 = "SELECT COUNT(*) FROM main_tickets WHERE receiver_id = 0"; -$result_6000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_6000))[0]; - -// 7000: // Alle Tickets die im Bereich Einkauf sind (holen wir über main_mandant_id aus main_tickets_category = 15) -$query_count_7000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE main_tickets_category.main_mandant_id = 15 - OR main_tickets_subcategory.main_mandant_id = 15 AND main_tickets.current_state != 4"; -$result_7000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_7000))[0]; - -// 8000: // Alle Tickets die im Bereich Einkauf sind (holen wir über main_mandant_id aus main_tickets_category = 15) -$query_count_8000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE main_tickets_category.main_mandant_id = 15 - OR main_tickets_subcategory.main_mandant_id = 15 AND main_tickets.current_state = 4"; -$result_8000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_8000))[0]; ?> - -
- - - - - - +"> - - - - - - - - - - - - - - - - + + - -
- -
-
- -
- - Von mir erstellt - - - Zu bearbeitende Tickets - - - Ticket Pool - - - Ticket Übersicht - - - Archiv - - - - Alle Tickets - - - - - Eskalierte Tickets - - - - - - Nicht zugewiesene Tickets - +
+
+
+
+
+
+

Aktionen

+ +
+ Ticket erstellen +

Kategorien

+ + + + + + + + +
- +
+
+
-
-
-
- -
-

-

-
- -
-

Ticketcenter

-
- - - -
- - - - - - -
-
-
-
-
Datumsfilter
-
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - +
\ No newline at end of file diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter_subcategory_ajax.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter_subcategory_ajax.php deleted file mode 100644 index e9c210d..0000000 --- a/module/ticketcenter/views/ticketcenter/show_ticketcenter_subcategory_ajax.php +++ /dev/null @@ -1,42 +0,0 @@ -load(); -} -$common = $mysydeDir ."/common/common_functions.inc.php"; -require_once($common); - -$connEnv = (local_environment()) ? $mysydeDir."/dc.config.php" : $mysydeDir."/dc-server.config.php"; - -require_once($connEnv); - -db_connect(); - -if ($_SERVER["REQUEST_METHOD"] == "POST") { - $category_id = $_POST['category_id']; - - $query = "SELECT * FROM main_tickets_category WHERE parent_id = ".$category_id." ORDER BY sorting"; - $result = @mysqli_query($GLOBALS['mysql_con'], $query); - if (mysqli_num_rows($result) <= 0) { - return; - } - echo "
"; - echo "
"; - echo ""; - echo "
"; -} \ No newline at end of file diff --git a/mysyde/admin/admin.js b/mysyde/admin/admin.js index 02553dd..a2663fe 100644 --- a/mysyde/admin/admin.js +++ b/mysyde/admin/admin.js @@ -564,18 +564,24 @@ function getFormData(_form) { * @param _confirmtext * @returns {Boolean} */ -function sendRequest(_action, _load_without_check, _confirmtext) { +function sendRequest(_action, _load_without_check, _confirmtext, sub_get = "") { // variable zum pruefen ob in einer linkliste ein element markiert wurde var load_without_check = _load_without_check || false; if (load_without_check === false) { - var currentMarkedLinklistRow = jQuery('.linklist_active', jQuery('#' + dc.current_formname)); + var currentMarkedLinklistRow = jQuery( + ".linklist_active", + jQuery("#" + dc.current_formname) + ); if (dc.current_linklist === null || currentMarkedLinklistRow.length <= 0) { return; } - var input_id = currentMarkedLinklistRow.data('inputid'); - jQuery('input.selected_linklist_row', jQuery('#' + dc.current_formname)).val(input_id); + var input_id = currentMarkedLinklistRow.data("inputid"); + jQuery( + "input.selected_linklist_row", + jQuery("#" + dc.current_formname) + ).val(input_id); } var confirmtext = _confirmtext || false; @@ -585,14 +591,21 @@ function sendRequest(_action, _load_without_check, _confirmtext) { } } - if (dc.overlay_mode === true) { - jQuery('#overlayLoader').show(); - } else { - jQuery('#mainContent').find('.requestLoader').show(); + // Проверка обязательных полей + var form = document.getElementById(dc.current_formname); + if (!form.checkValidity()) { + form.reportValidity(); + return false; } - jQuery('#' + dc.current_formname).attr("action", "?action=" + _action); - jQuery('#' + dc.current_formname).submit(); + if (dc.overlay_mode === true) { + jQuery("#overlayLoader").show(); + } else { + jQuery("#mainContent").find(".requestLoader").show(); + } + + jQuery('#' + dc.current_formname).attr("action", "?action=" + _action + "&sub_get=" + sub_get); + jQuery("#" + dc.current_formname).submit(); } /** @@ -832,11 +845,16 @@ function myFunction(counter) { console.log("myDropdown" + counter); } -function openGallery(input_id, image_id, type){ +function openGallery(input_id, image_id, type, select_mode){ var currentDate = new Date(); var unixTimestamp = Math.floor(currentDate.getTime() / 1000); + var selectionMode = select_mode || ''; - var popupURL = '/components/files/filegallery_content.inc.php?input_id='+input_id+'&image_id='+image_id+'&type='+type+'&time='+unixTimestamp; + if (selectionMode !== 'single' && selectionMode !== 'multi') { + selectionMode = (type === 'filegallery') ? 'single' : 'multi'; + } + + var popupURL = '/components/files/filegallery_content.inc.php?input_id='+input_id+'&image_id='+image_id+'&type='+type+'&select_mode='+selectionMode+'&time='+unixTimestamp; var popup = window.open(popupURL, 'Popup-Fenster', 'width=1080,height=720'); } diff --git a/mysyde/admin/common_functions.inc.php b/mysyde/admin/common_functions.inc.php index a0616ae..1bf4ba9 100644 --- a/mysyde/admin/common_functions.inc.php +++ b/mysyde/admin/common_functions.inc.php @@ -46,6 +46,21 @@ function mysqli_result( $res, $row = 0, $col = 0 ) { return FALSE; } +function encryptId($id) +{ + $encryptedId = base64_encode($id . "EC1ibm38FI53cxmSnQUi"); + return $encryptedId; +} + +// Entschlüsselt eine zuvor verschlüsselte ID, um ihre ursprüngliche Form wiederherzustellen. +function decryptId($encryptedId) +{ + $decryptedId = base64_decode($encryptedId); + $id = str_replace("EC1ibm38FI53cxmSnQUi", "", $decryptedId); + return $id; +} + + // Verbindung mir der Datenbank herstellen function db_connect() { $servername = $GLOBALS['myservername']; @@ -57,6 +72,9 @@ function db_connect() { @mysqli_select_db($GLOBALS['mysql_con'], $db) or die (mysqli_error($GLOBALS['mysql_con']) . " - Keine Verbindung hergestellt!"); @mysqli_query($GLOBALS['mysql_con'], "set character set 'utf8';"); @mysqli_query($GLOBALS['mysql_con'], "set names 'utf8';"); + + $pdo = new PDO('mysql:host='.$servername.';dbname='.$db, $login, $pass); + $GLOBALS['pdo_conn'] = $pdo; } // Globales führen der Reihenfolge in der Felder angewählt werden diff --git a/mysyde/admin/dashboard_startpage.php b/mysyde/admin/dashboard_startpage.php index 8a8235d..7bc0a3a 100644 --- a/mysyde/admin/dashboard_startpage.php +++ b/mysyde/admin/dashboard_startpage.php @@ -59,7 +59,7 @@ function listUsers(){ } echo "
"; if($main_contact['image'] == ""){ - echo "
"; + echo "
"; }else{ echo "
"; } diff --git a/mysyde/admin/header.inc.php b/mysyde/admin/header.inc.php index df5f1ab..520b7b9 100644 --- a/mysyde/admin/header.inc.php +++ b/mysyde/admin/header.inc.php @@ -1,14 +1,15 @@ 0) { // Wenn mindestens ein Eintrag gefunden wurde, gibt die Funktion 1 zurück @@ -21,9 +22,10 @@ function check_if_betriebsrat_role($admin_user) { $is_betriebsrat = check_if_betriebsrat_role($admin_user['id']); - -function create_collections_menu($site, $language, $translation) { + +function create_collections_menu($site, $language, $translation) +{ // Greife auf die globale Variable $is_betriebsrat zu global $is_betriebsrat; @@ -31,17 +33,20 @@ function create_collections_menu($site, $language, $translation) { if ($is_betriebsrat == 1) { ?>
  • - " href="/mysyde/awo/de/collections/17/">Aktuelles - " href="/mysyde/awo/de/knowledge/category/">Wiki Kategorien - " href="/mysyde/awo/de/collections/3/">Wiki Beiträge - + " + href="/mysyde/awo/de/collections/17/">Aktuelles + " + href="/mysyde/awo/de/knowledge/category/">Wiki Kategorien + " + href="/mysyde/awo/de/collections/3/">Wiki Beiträge +
  • - " href=""> + " + href="">
  • - + if ($second_menu == TRUE) { ?>
  • - " href=""> + " + href="">
  • - +
  • - " href=""> + " + href="">
  • - +
  • - "> + "> + @@ -231,110 +260,125 @@ function create_module_menu($site, $language, $translation, $adminMenu){ d="M19.7,16.31V13.42a1.4,1.4,0,0,0-1.4-1.4H12.722V9.231h6.283a1.4,1.4,0,0,0,1.4-1.4V3.646a1.4,1.4,0,0,0-1.4-1.4H5.042a1.4,1.4,0,0,0-1.4,1.4V7.835a1.4,1.4,0,0,0,1.4,1.4h6.283v2.793H5.741a1.4,1.4,0,0,0-1.4,1.4v2.89a2.793,2.793,0,1,0,1.4,0V13.42h5.585v2.793H9.231V21.8h5.585V16.213H12.722V13.42h5.585v2.89a2.793,2.793,0,1,0,1.4,0Zm-13.265,2.7a1.4,1.4,0,1,1-1.4-1.4A1.4,1.4,0,0,1,6.439,19.005Zm6.981-1.4V20.4H10.627V17.609ZM5.042,7.835V3.646H19.005V7.835ZM19.005,20.4a1.4,1.4,0,1,1,1.4-1.4A1.4,1.4,0,0,1,19.005,20.4Z" transform="translate(-2143.25 -227.25)" fill="#fff" /> - - get("cms") ?> + + get("cms") ?> +
  • +
    -