diff --git a/dist/converse.css b/dist/converse.css index 66f7797..1c76ad7 100644 --- a/dist/converse.css +++ b/dist/converse.css @@ -4,27 +4,29 @@ * * Copyright (c) 2013-2021, JC Brand * Licensed under the Mozilla Public License - */@font-face{font-family:Baumans;font-style:normal;font-weight:400;src:local("Baumans Regular"),local("Baumans-Regular"),url(webfonts/baumans.ttf) format("truetype")}@font-face{font-family:Muli;font-style:normal;font-weight:400;src:local("Muli Regular"),local("Muli-Regular"),url(webfonts/muli.ttf) format("truetype")}@font-face{font-family:ConverseFontAwesomeBrands;font-style:normal;font-weight:400;src:url(webfonts/fa-brands-400.eot);src:url(webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(webfonts/fa-brands-400.woff2) format("woff2"),url(webfonts/fa-brands-400.woff) format("woff"),url(webfonts/fa-brands-400.ttf) format("truetype"),url(webfonts/fa-brands-400.svg#fontawesome) format("svg")}@font-face{font-family:ConverseFontAwesomeRegular;font-style:normal;font-weight:400;src:url(webfonts/fa-regular-400.eot);src:url(webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(webfonts/fa-regular-400.woff2) format("woff2"),url(webfonts/fa-regular-400.woff) format("woff"),url(webfonts/fa-regular-400.ttf) format("truetype"),url(webfonts/fa-regular-400.svg#fontawesome) format("svg");font-weight:400;font-style:normal}@font-face{font-family:ConverseFontAwesomeSolid;font-style:normal;font-weight:900;src:url(webfonts/fa-solid-900.eot);src:url(webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(webfonts/fa-solid-900.svg#fontawesome) format("svg"),url(webfonts/fa-solid-900.woff2) format("woff2"),url(webfonts/fa-solid-900.woff) format("woff"),url(webfonts/fa-solid-900.ttf) format("truetype")}.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.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-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes fa-spin{0%{transform:rotate(0)}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)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.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%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:""}.fa-accessible-icon:before{content:""}.fa-accusoft:before{content:""}.fa-acquisitions-incorporated:before{content:""}.fa-ad:before{content:""}.fa-address-book:before{content:""}.fa-address-card:before{content:""}.fa-adjust:before{content:""}.fa-adn:before{content:""}.fa-adobe:before{content:""}.fa-adversal:before{content:""}.fa-affiliatetheme:before{content:""}.fa-air-freshener:before{content:""}.fa-airbnb:before{content:""}.fa-algolia:before{content:""}.fa-align-center:before{content:""}.fa-align-justify:before{content:""}.fa-align-left:before{content:""}.fa-align-right:before{content:""}.fa-alipay:before{content:""}.fa-allergies:before{content:""}.fa-amazon:before{content:""}.fa-amazon-pay:before{content:""}.fa-ambulance:before{content:""}.fa-american-sign-language-interpreting:before{content:""}.fa-amilia:before{content:""}.fa-anchor:before{content:""}.fa-android:before{content:""}.fa-angellist:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angry:before{content:""}.fa-angrycreative:before{content:""}.fa-angular:before{content:""}.fa-ankh:before{content:""}.fa-app-store:before{content:""}.fa-app-store-ios:before{content:""}.fa-apper:before{content:""}.fa-apple:before{content:""}.fa-apple-alt:before{content:""}.fa-apple-pay:before{content:""}.fa-archive:before{content:""}.fa-archway:before{content:""}.fa-arrow-alt-circle-down:before{content:""}.fa-arrow-alt-circle-left:before{content:""}.fa-arrow-alt-circle-right:before{content:""}.fa-arrow-alt-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-down:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrows-alt:before{content:""}.fa-arrows-alt-h:before{content:""}.fa-arrows-alt-v:before{content:""}.fa-artstation:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asterisk:before{content:""}.fa-asymmetrik:before{content:""}.fa-at:before{content:""}.fa-atlas:before{content:""}.fa-atlassian:before{content:""}.fa-atom:before{content:""}.fa-audible:before{content:""}.fa-audio-description:before{content:""}.fa-autoprefixer:before{content:""}.fa-avianex:before{content:""}.fa-aviato:before{content:""}.fa-award:before{content:""}.fa-aws:before{content:""}.fa-baby:before{content:""}.fa-baby-carriage:before{content:""}.fa-backspace:before{content:""}.fa-backward:before{content:""}.fa-bacon:before{content:""}.fa-bacteria:before{content:""}.fa-bacterium:before{content:""}.fa-bahai:before{content:""}.fa-balance-scale:before{content:""}.fa-balance-scale-left:before{content:""}.fa-balance-scale-right:before{content:""}.fa-ban:before{content:""}.fa-band-aid:before{content:""}.fa-bandcamp:before{content:""}.fa-barcode:before{content:""}.fa-bars:before{content:""}.fa-baseball-ball:before{content:""}.fa-basketball-ball:before{content:""}.fa-bath:before{content:""}.fa-battery-empty:before{content:""}.fa-battery-full:before{content:""}.fa-battery-half:before{content:""}.fa-battery-quarter:before{content:""}.fa-battery-three-quarters:before{content:""}.fa-battle-net:before{content:""}.fa-bed:before{content:""}.fa-beer:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-bell:before{content:""}.fa-bell-slash:before{content:""}.fa-bezier-curve:before{content:""}.fa-bible:before{content:""}.fa-bicycle:before{content:""}.fa-biking:before{content:""}.fa-bimobject:before{content:""}.fa-binoculars:before{content:""}.fa-biohazard:before{content:""}.fa-birthday-cake:before{content:""}.fa-bitbucket:before{content:""}.fa-bitcoin:before{content:""}.fa-bity:before{content:""}.fa-black-tie:before{content:""}.fa-blackberry:before{content:""}.fa-blender:before{content:""}.fa-blender-phone:before{content:""}.fa-blind:before{content:""}.fa-blog:before{content:""}.fa-blogger:before{content:""}.fa-blogger-b:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-bold:before{content:""}.fa-bolt:before{content:""}.fa-bomb:before{content:""}.fa-bone:before{content:""}.fa-bong:before{content:""}.fa-book:before{content:""}.fa-book-dead:before{content:""}.fa-book-medical:before{content:""}.fa-book-open:before{content:""}.fa-book-reader:before{content:""}.fa-bookmark:before{content:""}.fa-bootstrap:before{content:""}.fa-border-all:before{content:""}.fa-border-none:before{content:""}.fa-border-style:before{content:""}.fa-bowling-ball:before{content:""}.fa-box:before{content:""}.fa-box-open:before{content:""}.fa-box-tissue:before{content:""}.fa-boxes:before{content:""}.fa-braille:before{content:""}.fa-brain:before{content:""}.fa-bread-slice:before{content:""}.fa-briefcase:before{content:""}.fa-briefcase-medical:before{content:""}.fa-broadcast-tower:before{content:""}.fa-broom:before{content:""}.fa-brush:before{content:""}.fa-btc:before{content:""}.fa-buffer:before{content:""}.fa-bug:before{content:""}.fa-building:before{content:""}.fa-bullhorn:before{content:""}.fa-bullseye:before{content:""}.fa-burn:before{content:""}.fa-buromobelexperte:before{content:""}.fa-bus:before{content:""}.fa-bus-alt:before{content:""}.fa-business-time:before{content:""}.fa-buy-n-large:before{content:""}.fa-buysellads:before{content:""}.fa-calculator:before{content:""}.fa-calendar:before{content:""}.fa-calendar-alt:before{content:""}.fa-calendar-check:before{content:""}.fa-calendar-day:before{content:""}.fa-calendar-minus:before{content:""}.fa-calendar-plus:before{content:""}.fa-calendar-times:before{content:""}.fa-calendar-week:before{content:""}.fa-camera:before{content:""}.fa-camera-retro:before{content:""}.fa-campground:before{content:""}.fa-canadian-maple-leaf:before{content:""}.fa-candy-cane:before{content:""}.fa-cannabis:before{content:""}.fa-capsules:before{content:""}.fa-car:before{content:""}.fa-car-alt:before{content:""}.fa-car-battery:before{content:""}.fa-car-crash:before{content:""}.fa-car-side:before{content:""}.fa-caravan:before{content:""}.fa-caret-down:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-caret-square-down:before{content:""}.fa-caret-square-left:before{content:""}.fa-caret-square-right:before{content:""}.fa-caret-square-up:before{content:""}.fa-caret-up:before{content:""}.fa-carrot:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-cart-plus:before{content:""}.fa-cash-register:before{content:""}.fa-cat:before{content:""}.fa-cc-amazon-pay:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-apple-pay:before{content:""}.fa-cc-diners-club:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-cc-visa:before{content:""}.fa-centercode:before{content:""}.fa-centos:before{content:""}.fa-certificate:before{content:""}.fa-chair:before{content:""}.fa-chalkboard:before{content:""}.fa-chalkboard-teacher:before{content:""}.fa-charging-station:before{content:""}.fa-chart-area:before{content:""}.fa-chart-bar:before{content:""}.fa-chart-line:before{content:""}.fa-chart-pie:before{content:""}.fa-check:before{content:""}.fa-check-circle:before{content:""}.fa-check-double:before{content:""}.fa-check-square:before{content:""}.fa-cheese:before{content:""}.fa-chess:before{content:""}.fa-chess-bishop:before{content:""}.fa-chess-board:before{content:""}.fa-chess-king:before{content:""}.fa-chess-knight:before{content:""}.fa-chess-pawn:before{content:""}.fa-chess-queen:before{content:""}.fa-chess-rook:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-down:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-chevron-up:before{content:""}.fa-child:before{content:""}.fa-chrome:before{content:""}.fa-chromecast:before{content:""}.fa-church:before{content:""}.fa-circle:before{content:""}.fa-circle-notch:before{content:""}.fa-city:before{content:""}.fa-clinic-medical:before{content:""}.fa-clipboard:before{content:""}.fa-clipboard-check:before{content:""}.fa-clipboard-list:before{content:""}.fa-clock:before{content:""}.fa-clone:before{content:""}.fa-closed-captioning:before{content:""}.fa-cloud:before{content:""}.fa-cloud-download-alt:before{content:""}.fa-cloud-meatball:before{content:""}.fa-cloud-moon:before{content:""}.fa-cloud-moon-rain:before{content:""}.fa-cloud-rain:before{content:""}.fa-cloud-showers-heavy:before{content:""}.fa-cloud-sun:before{content:""}.fa-cloud-sun-rain:before{content:""}.fa-cloud-upload-alt:before{content:""}.fa-cloudscale:before{content:""}.fa-cloudsmith:before{content:""}.fa-cloudversify:before{content:""}.fa-cocktail:before{content:""}.fa-code:before{content:""}.fa-code-branch:before{content:""}.fa-codepen:before{content:""}.fa-codiepie:before{content:""}.fa-coffee:before{content:""}.fa-cog:before{content:""}.fa-cogs:before{content:""}.fa-coins:before{content:""}.fa-columns:before{content:""}.fa-comment:before{content:""}.fa-comment-alt:before{content:""}.fa-comment-dollar:before{content:""}.fa-comment-dots:before{content:""}.fa-comment-medical:before{content:""}.fa-comment-slash:before{content:""}.fa-comments:before{content:""}.fa-comments-dollar:before{content:""}.fa-compact-disc:before{content:""}.fa-compass:before{content:""}.fa-compress:before{content:""}.fa-compress-alt:before{content:""}.fa-compress-arrows-alt:before{content:""}.fa-concierge-bell:before{content:""}.fa-confluence:before{content:""}.fa-connectdevelop:before{content:""}.fa-contao:before{content:""}.fa-cookie:before{content:""}.fa-cookie-bite:before{content:""}.fa-copy:before{content:""}.fa-copyright:before{content:""}.fa-cotton-bureau:before{content:""}.fa-couch:before{content:""}.fa-cpanel:before{content:""}.fa-creative-commons:before{content:""}.fa-creative-commons-by:before{content:""}.fa-creative-commons-nc:before{content:""}.fa-creative-commons-nc-eu:before{content:""}.fa-creative-commons-nc-jp:before{content:""}.fa-creative-commons-nd:before{content:""}.fa-creative-commons-pd:before{content:""}.fa-creative-commons-pd-alt:before{content:""}.fa-creative-commons-remix:before{content:""}.fa-creative-commons-sa:before{content:""}.fa-creative-commons-sampling:before{content:""}.fa-creative-commons-sampling-plus:before{content:""}.fa-creative-commons-share:before{content:""}.fa-creative-commons-zero:before{content:""}.fa-credit-card:before{content:""}.fa-critical-role:before{content:""}.fa-crop:before{content:""}.fa-crop-alt:before{content:""}.fa-cross:before{content:""}.fa-crosshairs:before{content:""}.fa-crow:before{content:""}.fa-crown:before{content:""}.fa-crutch:before{content:""}.fa-css3:before{content:""}.fa-css3-alt:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-cut:before{content:""}.fa-cuttlefish:before{content:""}.fa-d-and-d:before{content:""}.fa-d-and-d-beyond:before{content:""}.fa-dailymotion:before{content:""}.fa-dashcube:before{content:""}.fa-database:before{content:""}.fa-deaf:before{content:""}.fa-deezer:before{content:""}.fa-delicious:before{content:""}.fa-democrat:before{content:""}.fa-deploydog:before{content:""}.fa-deskpro:before{content:""}.fa-desktop:before{content:""}.fa-dev:before{content:""}.fa-deviantart:before{content:""}.fa-dharmachakra:before{content:""}.fa-dhl:before{content:""}.fa-diagnoses:before{content:""}.fa-diaspora:before{content:""}.fa-dice:before{content:""}.fa-dice-d20:before{content:""}.fa-dice-d6:before{content:""}.fa-dice-five:before{content:""}.fa-dice-four:before{content:""}.fa-dice-one:before{content:""}.fa-dice-six:before{content:""}.fa-dice-three:before{content:""}.fa-dice-two:before{content:""}.fa-digg:before{content:""}.fa-digital-ocean:before{content:""}.fa-digital-tachograph:before{content:""}.fa-directions:before{content:""}.fa-discord:before{content:""}.fa-discourse:before{content:""}.fa-disease:before{content:""}.fa-divide:before{content:""}.fa-dizzy:before{content:""}.fa-dna:before{content:""}.fa-dochub:before{content:""}.fa-docker:before{content:""}.fa-dog:before{content:""}.fa-dollar-sign:before{content:""}.fa-dolly:before{content:""}.fa-dolly-flatbed:before{content:""}.fa-donate:before{content:""}.fa-door-closed:before{content:""}.fa-door-open:before{content:""}.fa-dot-circle:before{content:""}.fa-dove:before{content:""}.fa-download:before{content:""}.fa-draft2digital:before{content:""}.fa-drafting-compass:before{content:""}.fa-dragon:before{content:""}.fa-draw-polygon:before{content:""}.fa-dribbble:before{content:""}.fa-dribbble-square:before{content:""}.fa-dropbox:before{content:""}.fa-drum:before{content:""}.fa-drum-steelpan:before{content:""}.fa-drumstick-bite:before{content:""}.fa-drupal:before{content:""}.fa-dumbbell:before{content:""}.fa-dumpster:before{content:""}.fa-dumpster-fire:before{content:""}.fa-dungeon:before{content:""}.fa-dyalog:before{content:""}.fa-earlybirds:before{content:""}.fa-ebay:before{content:""}.fa-edge:before{content:""}.fa-edge-legacy:before{content:""}.fa-edit:before{content:""}.fa-egg:before{content:""}.fa-eject:before{content:""}.fa-elementor:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-ello:before{content:""}.fa-ember:before{content:""}.fa-empire:before{content:""}.fa-envelope:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-text:before{content:""}.fa-envelope-square:before{content:""}.fa-envira:before{content:""}.fa-equals:before{content:""}.fa-eraser:before{content:""}.fa-erlang:before{content:""}.fa-ethereum:before{content:""}.fa-ethernet:before{content:""}.fa-etsy:before{content:""}.fa-euro-sign:before{content:""}.fa-evernote:before{content:""}.fa-exchange-alt:before{content:""}.fa-exclamation:before{content:""}.fa-exclamation-circle:before{content:""}.fa-exclamation-triangle:before{content:""}.fa-expand:before{content:""}.fa-expand-alt:before{content:""}.fa-expand-arrows-alt:before{content:""}.fa-expeditedssl:before{content:""}.fa-external-link-alt:before{content:""}.fa-external-link-square-alt:before{content:""}.fa-eye:before{content:""}.fa-eye-dropper:before{content:""}.fa-eye-slash:before{content:""}.fa-facebook:before{content:""}.fa-facebook-f:before{content:""}.fa-facebook-messenger:before{content:""}.fa-facebook-square:before{content:""}.fa-fan:before{content:""}.fa-fantasy-flight-games:before{content:""}.fa-fast-backward:before{content:""}.fa-fast-forward:before{content:""}.fa-faucet:before{content:""}.fa-fax:before{content:""}.fa-feather:before{content:""}.fa-feather-alt:before{content:""}.fa-fedex:before{content:""}.fa-fedora:before{content:""}.fa-female:before{content:""}.fa-fighter-jet:before{content:""}.fa-figma:before{content:""}.fa-file:before{content:""}.fa-file-alt:before{content:""}.fa-file-archive:before{content:""}.fa-file-audio:before{content:""}.fa-file-code:before{content:""}.fa-file-contract:before{content:""}.fa-file-csv:before{content:""}.fa-file-download:before{content:""}.fa-file-excel:before{content:""}.fa-file-export:before{content:""}.fa-file-image:before{content:""}.fa-file-import:before{content:""}.fa-file-invoice:before{content:""}.fa-file-invoice-dollar:before{content:""}.fa-file-medical:before{content:""}.fa-file-medical-alt:before{content:""}.fa-file-pdf:before{content:""}.fa-file-powerpoint:before{content:""}.fa-file-prescription:before{content:""}.fa-file-signature:before{content:""}.fa-file-upload:before{content:""}.fa-file-video:before{content:""}.fa-file-word:before{content:""}.fa-fill:before{content:""}.fa-fill-drip:before{content:""}.fa-film:before{content:""}.fa-filter:before{content:""}.fa-fingerprint:before{content:""}.fa-fire:before{content:""}.fa-fire-alt:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-firefox:before{content:""}.fa-firefox-browser:before{content:""}.fa-first-aid:before{content:""}.fa-first-order:before{content:""}.fa-first-order-alt:before{content:""}.fa-firstdraft:before{content:""}.fa-fish:before{content:""}.fa-fist-raised:before{content:""}.fa-flag:before{content:""}.fa-flag-checkered:before{content:""}.fa-flag-usa:before{content:""}.fa-flask:before{content:""}.fa-flickr:before{content:""}.fa-flipboard:before{content:""}.fa-flushed:before{content:""}.fa-fly:before{content:""}.fa-folder:before{content:""}.fa-folder-minus:before{content:""}.fa-folder-open:before{content:""}.fa-folder-plus:before{content:""}.fa-font:before{content:""}.fa-font-awesome:before{content:""}.fa-font-awesome-alt:before{content:""}.fa-font-awesome-flag:before{content:""}.fa-font-awesome-logo-full:before{content:""}.fa-fonticons:before{content:""}.fa-fonticons-fi:before{content:""}.fa-football-ball:before{content:""}.fa-fort-awesome:before{content:""}.fa-fort-awesome-alt:before{content:""}.fa-forumbee:before{content:""}.fa-forward:before{content:""}.fa-foursquare:before{content:""}.fa-free-code-camp:before{content:""}.fa-freebsd:before{content:""}.fa-frog:before{content:""}.fa-frown:before{content:""}.fa-frown-open:before{content:""}.fa-fulcrum:before{content:""}.fa-funnel-dollar:before{content:""}.fa-futbol:before{content:""}.fa-galactic-republic:before{content:""}.fa-galactic-senate:before{content:""}.fa-gamepad:before{content:""}.fa-gas-pump:before{content:""}.fa-gavel:before{content:""}.fa-gem:before{content:""}.fa-genderless:before{content:""}.fa-get-pocket:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-ghost:before{content:""}.fa-gift:before{content:""}.fa-gifts:before{content:""}.fa-git:before{content:""}.fa-git-alt:before{content:""}.fa-git-square:before{content:""}.fa-github:before{content:""}.fa-github-alt:before{content:""}.fa-github-square:before{content:""}.fa-gitkraken:before{content:""}.fa-gitlab:before{content:""}.fa-gitter:before{content:""}.fa-glass-cheers:before{content:""}.fa-glass-martini:before{content:""}.fa-glass-martini-alt:before{content:""}.fa-glass-whiskey:before{content:""}.fa-glasses:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-globe:before{content:""}.fa-globe-africa:before{content:""}.fa-globe-americas:before{content:""}.fa-globe-asia:before{content:""}.fa-globe-europe:before{content:""}.fa-gofore:before{content:""}.fa-golf-ball:before{content:""}.fa-goodreads:before{content:""}.fa-goodreads-g:before{content:""}.fa-google:before{content:""}.fa-google-drive:before{content:""}.fa-google-pay:before{content:""}.fa-google-play:before{content:""}.fa-google-plus:before{content:""}.fa-google-plus-g:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-wallet:before{content:""}.fa-gopuram:before{content:""}.fa-graduation-cap:before{content:""}.fa-gratipay:before{content:""}.fa-grav:before{content:""}.fa-greater-than:before{content:""}.fa-greater-than-equal:before{content:""}.fa-grimace:before{content:""}.fa-grin:before{content:""}.fa-grin-alt:before{content:""}.fa-grin-beam:before{content:""}.fa-grin-beam-sweat:before{content:""}.fa-grin-hearts:before{content:""}.fa-grin-squint:before{content:""}.fa-grin-squint-tears:before{content:""}.fa-grin-stars:before{content:""}.fa-grin-tears:before{content:""}.fa-grin-tongue:before{content:""}.fa-grin-tongue-squint:before{content:""}.fa-grin-tongue-wink:before{content:""}.fa-grin-wink:before{content:""}.fa-grip-horizontal:before{content:""}.fa-grip-lines:before{content:""}.fa-grip-lines-vertical:before{content:""}.fa-grip-vertical:before{content:""}.fa-gripfire:before{content:""}.fa-grunt:before{content:""}.fa-guitar:before{content:""}.fa-gulp:before{content:""}.fa-h-square:before{content:""}.fa-hacker-news:before{content:""}.fa-hacker-news-square:before{content:""}.fa-hackerrank:before{content:""}.fa-hamburger:before{content:""}.fa-hammer:before{content:""}.fa-hamsa:before{content:""}.fa-hand-holding:before{content:""}.fa-hand-holding-heart:before{content:""}.fa-hand-holding-medical:before{content:""}.fa-hand-holding-usd:before{content:""}.fa-hand-holding-water:before{content:""}.fa-hand-lizard:before{content:""}.fa-hand-middle-finger:before{content:""}.fa-hand-paper:before{content:""}.fa-hand-peace:before{content:""}.fa-hand-point-down:before{content:""}.fa-hand-point-left:before{content:""}.fa-hand-point-right:before{content:""}.fa-hand-point-up:before{content:""}.fa-hand-pointer:before{content:""}.fa-hand-rock:before{content:""}.fa-hand-scissors:before{content:""}.fa-hand-sparkles:before{content:""}.fa-hand-spock:before{content:""}.fa-hands:before{content:""}.fa-hands-helping:before{content:""}.fa-hands-wash:before{content:""}.fa-handshake:before{content:""}.fa-handshake-alt-slash:before{content:""}.fa-handshake-slash:before{content:""}.fa-hanukiah:before{content:""}.fa-hard-hat:before{content:""}.fa-hashtag:before{content:""}.fa-hat-cowboy:before{content:""}.fa-hat-cowboy-side:before{content:""}.fa-hat-wizard:before{content:""}.fa-hdd:before{content:""}.fa-head-side-cough:before{content:""}.fa-head-side-cough-slash:before{content:""}.fa-head-side-mask:before{content:""}.fa-head-side-virus:before{content:""}.fa-heading:before{content:""}.fa-headphones:before{content:""}.fa-headphones-alt:before{content:""}.fa-headset:before{content:""}.fa-heart:before{content:""}.fa-heart-broken:before{content:""}.fa-heartbeat:before{content:""}.fa-helicopter:before{content:""}.fa-highlighter:before{content:""}.fa-hiking:before{content:""}.fa-hippo:before{content:""}.fa-hips:before{content:""}.fa-hire-a-helper:before{content:""}.fa-history:before{content:""}.fa-hockey-puck:before{content:""}.fa-holly-berry:before{content:""}.fa-home:before{content:""}.fa-hooli:before{content:""}.fa-hornbill:before{content:""}.fa-horse:before{content:""}.fa-horse-head:before{content:""}.fa-hospital:before{content:""}.fa-hospital-alt:before{content:""}.fa-hospital-symbol:before{content:""}.fa-hospital-user:before{content:""}.fa-hot-tub:before{content:""}.fa-hotdog:before{content:""}.fa-hotel:before{content:""}.fa-hotjar:before{content:""}.fa-hourglass:before{content:""}.fa-hourglass-end:before{content:""}.fa-hourglass-half:before{content:""}.fa-hourglass-start:before{content:""}.fa-house-damage:before{content:""}.fa-house-user:before{content:""}.fa-houzz:before{content:""}.fa-hryvnia:before{content:""}.fa-html5:before{content:""}.fa-hubspot:before{content:""}.fa-i-cursor:before{content:""}.fa-ice-cream:before{content:""}.fa-icicles:before{content:""}.fa-icons:before{content:""}.fa-id-badge:before{content:""}.fa-id-card:before{content:""}.fa-id-card-alt:before{content:""}.fa-ideal:before{content:""}.fa-igloo:before{content:""}.fa-image:before{content:""}.fa-images:before{content:""}.fa-imdb:before{content:""}.fa-inbox:before{content:""}.fa-indent:before{content:""}.fa-industry:before{content:""}.fa-infinity:before{content:""}.fa-info:before{content:""}.fa-info-circle:before{content:""}.fa-instagram:before{content:""}.fa-instagram-square:before{content:""}.fa-intercom:before{content:""}.fa-internet-explorer:before{content:""}.fa-invision:before{content:""}.fa-ioxhost:before{content:""}.fa-italic:before{content:""}.fa-itch-io:before{content:""}.fa-itunes:before{content:""}.fa-itunes-note:before{content:""}.fa-java:before{content:""}.fa-jedi:before{content:""}.fa-jedi-order:before{content:""}.fa-jenkins:before{content:""}.fa-jira:before{content:""}.fa-joget:before{content:""}.fa-joint:before{content:""}.fa-joomla:before{content:""}.fa-journal-whills:before{content:""}.fa-js:before{content:""}.fa-js-square:before{content:""}.fa-jsfiddle:before{content:""}.fa-kaaba:before{content:""}.fa-kaggle:before{content:""}.fa-key:before{content:""}.fa-keybase:before{content:""}.fa-keyboard:before{content:""}.fa-keycdn:before{content:""}.fa-khanda:before{content:""}.fa-kickstarter:before{content:""}.fa-kickstarter-k:before{content:""}.fa-kiss:before{content:""}.fa-kiss-beam:before{content:""}.fa-kiss-wink-heart:before{content:""}.fa-kiwi-bird:before{content:""}.fa-korvue:before{content:""}.fa-landmark:before{content:""}.fa-language:before{content:""}.fa-laptop:before{content:""}.fa-laptop-code:before{content:""}.fa-laptop-house:before{content:""}.fa-laptop-medical:before{content:""}.fa-laravel:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-laugh:before{content:""}.fa-laugh-beam:before{content:""}.fa-laugh-squint:before{content:""}.fa-laugh-wink:before{content:""}.fa-layer-group:before{content:""}.fa-leaf:before{content:""}.fa-leanpub:before{content:""}.fa-lemon:before{content:""}.fa-less:before{content:""}.fa-less-than:before{content:""}.fa-less-than-equal:before{content:""}.fa-level-down-alt:before{content:""}.fa-level-up-alt:before{content:""}.fa-life-ring:before{content:""}.fa-lightbulb:before{content:""}.fa-line:before{content:""}.fa-link:before{content:""}.fa-linkedin:before{content:""}.fa-linkedin-in:before{content:""}.fa-linode:before{content:""}.fa-linux:before{content:""}.fa-lira-sign:before{content:""}.fa-list:before{content:""}.fa-list-alt:before{content:""}.fa-list-ol:before{content:""}.fa-list-ul:before{content:""}.fa-location-arrow:before{content:""}.fa-lock:before{content:""}.fa-lock-open:before{content:""}.fa-long-arrow-alt-down:before{content:""}.fa-long-arrow-alt-left:before{content:""}.fa-long-arrow-alt-right:before{content:""}.fa-long-arrow-alt-up:before{content:""}.fa-low-vision:before{content:""}.fa-luggage-cart:before{content:""}.fa-lungs:before{content:""}.fa-lungs-virus:before{content:""}.fa-lyft:before{content:""}.fa-magento:before{content:""}.fa-magic:before{content:""}.fa-magnet:before{content:""}.fa-mail-bulk:before{content:""}.fa-mailchimp:before{content:""}.fa-male:before{content:""}.fa-mandalorian:before{content:""}.fa-map:before{content:""}.fa-map-marked:before{content:""}.fa-map-marked-alt:before{content:""}.fa-map-marker:before{content:""}.fa-map-marker-alt:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-markdown:before{content:""}.fa-marker:before{content:""}.fa-mars:before{content:""}.fa-mars-double:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mask:before{content:""}.fa-mastodon:before{content:""}.fa-maxcdn:before{content:""}.fa-mdb:before{content:""}.fa-medal:before{content:""}.fa-medapps:before{content:""}.fa-medium:before{content:""}.fa-medium-m:before{content:""}.fa-medkit:before{content:""}.fa-medrt:before{content:""}.fa-meetup:before{content:""}.fa-megaport:before{content:""}.fa-meh:before{content:""}.fa-meh-blank:before{content:""}.fa-meh-rolling-eyes:before{content:""}.fa-memory:before{content:""}.fa-mendeley:before{content:""}.fa-menorah:before{content:""}.fa-mercury:before{content:""}.fa-meteor:before{content:""}.fa-microblog:before{content:""}.fa-microchip:before{content:""}.fa-microphone:before{content:""}.fa-microphone-alt:before{content:""}.fa-microphone-alt-slash:before{content:""}.fa-microphone-slash:before{content:""}.fa-microscope:before{content:""}.fa-microsoft:before{content:""}.fa-minus:before{content:""}.fa-minus-circle:before{content:""}.fa-minus-square:before{content:""}.fa-mitten:before{content:""}.fa-mix:before{content:""}.fa-mixcloud:before{content:""}.fa-mixer:before{content:""}.fa-mizuni:before{content:""}.fa-mobile:before{content:""}.fa-mobile-alt:before{content:""}.fa-modx:before{content:""}.fa-monero:before{content:""}.fa-money-bill:before{content:""}.fa-money-bill-alt:before{content:""}.fa-money-bill-wave:before{content:""}.fa-money-bill-wave-alt:before{content:""}.fa-money-check:before{content:""}.fa-money-check-alt:before{content:""}.fa-monument:before{content:""}.fa-moon:before{content:""}.fa-mortar-pestle:before{content:""}.fa-mosque:before{content:""}.fa-motorcycle:before{content:""}.fa-mountain:before{content:""}.fa-mouse:before{content:""}.fa-mouse-pointer:before{content:""}.fa-mug-hot:before{content:""}.fa-music:before{content:""}.fa-napster:before{content:""}.fa-neos:before{content:""}.fa-network-wired:before{content:""}.fa-neuter:before{content:""}.fa-newspaper:before{content:""}.fa-nimblr:before{content:""}.fa-node:before{content:""}.fa-node-js:before{content:""}.fa-not-equal:before{content:""}.fa-notes-medical:before{content:""}.fa-npm:before{content:""}.fa-ns8:before{content:""}.fa-nutritionix:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-oil-can:before{content:""}.fa-old-republic:before{content:""}.fa-om:before{content:""}.fa-opencart:before{content:""}.fa-openid:before{content:""}.fa-opera:before{content:""}.fa-optin-monster:before{content:""}.fa-orcid:before{content:""}.fa-osi:before{content:""}.fa-otter:before{content:""}.fa-outdent:before{content:""}.fa-page4:before{content:""}.fa-pagelines:before{content:""}.fa-pager:before{content:""}.fa-paint-brush:before{content:""}.fa-paint-roller:before{content:""}.fa-palette:before{content:""}.fa-palfed:before{content:""}.fa-pallet:before{content:""}.fa-paper-plane:before{content:""}.fa-paperclip:before{content:""}.fa-parachute-box:before{content:""}.fa-paragraph:before{content:""}.fa-parking:before{content:""}.fa-passport:before{content:""}.fa-pastafarianism:before{content:""}.fa-paste:before{content:""}.fa-patreon:before{content:""}.fa-pause:before{content:""}.fa-pause-circle:before{content:""}.fa-paw:before{content:""}.fa-paypal:before{content:""}.fa-peace:before{content:""}.fa-pen:before{content:""}.fa-pen-alt:before{content:""}.fa-pen-fancy:before{content:""}.fa-pen-nib:before{content:""}.fa-pen-square:before{content:""}.fa-pencil-alt:before{content:""}.fa-pencil-ruler:before{content:""}.fa-penny-arcade:before{content:""}.fa-people-arrows:before{content:""}.fa-people-carry:before{content:""}.fa-pepper-hot:before{content:""}.fa-percent:before{content:""}.fa-percentage:before{content:""}.fa-periscope:before{content:""}.fa-person-booth:before{content:""}.fa-phabricator:before{content:""}.fa-phoenix-framework:before{content:""}.fa-phoenix-squadron:before{content:""}.fa-phone:before{content:""}.fa-phone-alt:before{content:""}.fa-phone-slash:before{content:""}.fa-phone-square:before{content:""}.fa-phone-square-alt:before{content:""}.fa-phone-volume:before{content:""}.fa-photo-video:before{content:""}.fa-php:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-pied-piper-hat:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-square:before{content:""}.fa-piggy-bank:before{content:""}.fa-pills:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-p:before{content:""}.fa-pinterest-square:before{content:""}.fa-pizza-slice:before{content:""}.fa-place-of-worship:before{content:""}.fa-plane:before{content:""}.fa-plane-arrival:before{content:""}.fa-plane-departure:before{content:""}.fa-plane-slash:before{content:""}.fa-play:before{content:""}.fa-play-circle:before{content:""}.fa-playstation:before{content:""}.fa-plug:before{content:""}.fa-plus:before{content:""}.fa-plus-circle:before{content:""}.fa-plus-square:before{content:""}.fa-podcast:before{content:""}.fa-poll:before{content:""}.fa-poll-h:before{content:""}.fa-poo:before{content:""}.fa-poo-storm:before{content:""}.fa-poop:before{content:""}.fa-portrait:before{content:""}.fa-pound-sign:before{content:""}.fa-power-off:before{content:""}.fa-pray:before{content:""}.fa-praying-hands:before{content:""}.fa-prescription:before{content:""}.fa-prescription-bottle:before{content:""}.fa-prescription-bottle-alt:before{content:""}.fa-print:before{content:""}.fa-procedures:before{content:""}.fa-product-hunt:before{content:""}.fa-project-diagram:before{content:""}.fa-pump-medical:before{content:""}.fa-pump-soap:before{content:""}.fa-pushed:before{content:""}.fa-puzzle-piece:before{content:""}.fa-python:before{content:""}.fa-qq:before{content:""}.fa-qrcode:before{content:""}.fa-question:before{content:""}.fa-question-circle:before{content:""}.fa-quidditch:before{content:""}.fa-quinscape:before{content:""}.fa-quora:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-quran:before{content:""}.fa-r-project:before{content:""}.fa-radiation:before{content:""}.fa-radiation-alt:before{content:""}.fa-rainbow:before{content:""}.fa-random:before{content:""}.fa-raspberry-pi:before{content:""}.fa-ravelry:before{content:""}.fa-react:before{content:""}.fa-reacteurope:before{content:""}.fa-readme:before{content:""}.fa-rebel:before{content:""}.fa-receipt:before{content:""}.fa-record-vinyl:before{content:""}.fa-recycle:before{content:""}.fa-red-river:before{content:""}.fa-reddit:before{content:""}.fa-reddit-alien:before{content:""}.fa-reddit-square:before{content:""}.fa-redhat:before{content:""}.fa-redo:before{content:""}.fa-redo-alt:before{content:""}.fa-registered:before{content:""}.fa-remove-format:before{content:""}.fa-renren:before{content:""}.fa-reply:before{content:""}.fa-reply-all:before{content:""}.fa-replyd:before{content:""}.fa-republican:before{content:""}.fa-researchgate:before{content:""}.fa-resolving:before{content:""}.fa-restroom:before{content:""}.fa-retweet:before{content:""}.fa-rev:before{content:""}.fa-ribbon:before{content:""}.fa-ring:before{content:""}.fa-road:before{content:""}.fa-robot:before{content:""}.fa-rocket:before{content:""}.fa-rocketchat:before{content:""}.fa-rockrms:before{content:""}.fa-route:before{content:""}.fa-rss:before{content:""}.fa-rss-square:before{content:""}.fa-ruble-sign:before{content:""}.fa-ruler:before{content:""}.fa-ruler-combined:before{content:""}.fa-ruler-horizontal:before{content:""}.fa-ruler-vertical:before{content:""}.fa-running:before{content:""}.fa-rupee-sign:before{content:""}.fa-rust:before{content:""}.fa-sad-cry:before{content:""}.fa-sad-tear:before{content:""}.fa-safari:before{content:""}.fa-salesforce:before{content:""}.fa-sass:before{content:""}.fa-satellite:before{content:""}.fa-satellite-dish:before{content:""}.fa-save:before{content:""}.fa-schlix:before{content:""}.fa-school:before{content:""}.fa-screwdriver:before{content:""}.fa-scribd:before{content:""}.fa-scroll:before{content:""}.fa-sd-card:before{content:""}.fa-search:before{content:""}.fa-search-dollar:before{content:""}.fa-search-location:before{content:""}.fa-search-minus:before{content:""}.fa-search-plus:before{content:""}.fa-searchengin:before{content:""}.fa-seedling:before{content:""}.fa-sellcast:before{content:""}.fa-sellsy:before{content:""}.fa-server:before{content:""}.fa-servicestack:before{content:""}.fa-shapes:before{content:""}.fa-share:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-share-square:before{content:""}.fa-shekel-sign:before{content:""}.fa-shield-alt:before{content:""}.fa-shield-virus:before{content:""}.fa-ship:before{content:""}.fa-shipping-fast:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-shoe-prints:before{content:""}.fa-shopify:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-shopping-cart:before{content:""}.fa-shopware:before{content:""}.fa-shower:before{content:""}.fa-shuttle-van:before{content:""}.fa-sign:before{content:""}.fa-sign-in-alt:before{content:""}.fa-sign-language:before{content:""}.fa-sign-out-alt:before{content:""}.fa-signal:before{content:""}.fa-signature:before{content:""}.fa-sim-card:before{content:""}.fa-simplybuilt:before{content:""}.fa-sink:before{content:""}.fa-sistrix:before{content:""}.fa-sitemap:before{content:""}.fa-sith:before{content:""}.fa-skating:before{content:""}.fa-sketch:before{content:""}.fa-skiing:before{content:""}.fa-skiing-nordic:before{content:""}.fa-skull:before{content:""}.fa-skull-crossbones:before{content:""}.fa-skyatlas:before{content:""}.fa-skype:before{content:""}.fa-slack:before{content:""}.fa-slack-hash:before{content:""}.fa-slash:before{content:""}.fa-sleigh:before{content:""}.fa-sliders-h:before{content:""}.fa-slideshare:before{content:""}.fa-smile:before{content:""}.fa-smile-beam:before{content:""}.fa-smile-wink:before{content:""}.fa-smog:before{content:""}.fa-smoking:before{content:""}.fa-smoking-ban:before{content:""}.fa-sms:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-snowboarding:before{content:""}.fa-snowflake:before{content:""}.fa-snowman:before{content:""}.fa-snowplow:before{content:""}.fa-soap:before{content:""}.fa-socks:before{content:""}.fa-solar-panel:before{content:""}.fa-sort:before{content:""}.fa-sort-alpha-down:before{content:""}.fa-sort-alpha-down-alt:before{content:""}.fa-sort-alpha-up:before{content:""}.fa-sort-alpha-up-alt:before{content:""}.fa-sort-amount-down:before{content:""}.fa-sort-amount-down-alt:before{content:""}.fa-sort-amount-up:before{content:""}.fa-sort-amount-up-alt:before{content:""}.fa-sort-down:before{content:""}.fa-sort-numeric-down:before{content:""}.fa-sort-numeric-down-alt:before{content:""}.fa-sort-numeric-up:before{content:""}.fa-sort-numeric-up-alt:before{content:""}.fa-sort-up:before{content:""}.fa-soundcloud:before{content:""}.fa-sourcetree:before{content:""}.fa-spa:before{content:""}.fa-space-shuttle:before{content:""}.fa-speakap:before{content:""}.fa-speaker-deck:before{content:""}.fa-spell-check:before{content:""}.fa-spider:before{content:""}.fa-spinner:before{content:""}.fa-splotch:before{content:""}.fa-spotify:before{content:""}.fa-spray-can:before{content:""}.fa-square:before{content:""}.fa-square-full:before{content:""}.fa-square-root-alt:before{content:""}.fa-squarespace:before{content:""}.fa-stack-exchange:before{content:""}.fa-stack-overflow:before{content:""}.fa-stackpath:before{content:""}.fa-stamp:before{content:""}.fa-star:before{content:""}.fa-star-and-crescent:before{content:""}.fa-star-half:before{content:""}.fa-star-half-alt:before{content:""}.fa-star-of-david:before{content:""}.fa-star-of-life:before{content:""}.fa-staylinked:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-steam-symbol:before{content:""}.fa-step-backward:before{content:""}.fa-step-forward:before{content:""}.fa-stethoscope:before{content:""}.fa-sticker-mule:before{content:""}.fa-sticky-note:before{content:""}.fa-stop:before{content:""}.fa-stop-circle:before{content:""}.fa-stopwatch:before{content:""}.fa-stopwatch-20:before{content:""}.fa-store:before{content:""}.fa-store-alt:before{content:""}.fa-store-alt-slash:before{content:""}.fa-store-slash:before{content:""}.fa-strava:before{content:""}.fa-stream:before{content:""}.fa-street-view:before{content:""}.fa-strikethrough:before{content:""}.fa-stripe:before{content:""}.fa-stripe-s:before{content:""}.fa-stroopwafel:before{content:""}.fa-studiovinari:before{content:""}.fa-stumbleupon:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-subscript:before{content:""}.fa-subway:before{content:""}.fa-suitcase:before{content:""}.fa-suitcase-rolling:before{content:""}.fa-sun:before{content:""}.fa-superpowers:before{content:""}.fa-superscript:before{content:""}.fa-supple:before{content:""}.fa-surprise:before{content:""}.fa-suse:before{content:""}.fa-swatchbook:before{content:""}.fa-swift:before{content:""}.fa-swimmer:before{content:""}.fa-swimming-pool:before{content:""}.fa-symfony:before{content:""}.fa-synagogue:before{content:""}.fa-sync:before{content:""}.fa-sync-alt:before{content:""}.fa-syringe:before{content:""}.fa-table:before{content:""}.fa-table-tennis:before{content:""}.fa-tablet:before{content:""}.fa-tablet-alt:before{content:""}.fa-tablets:before{content:""}.fa-tachometer-alt:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-tape:before{content:""}.fa-tasks:before{content:""}.fa-taxi:before{content:""}.fa-teamspeak:before{content:""}.fa-teeth:before{content:""}.fa-teeth-open:before{content:""}.fa-telegram:before{content:""}.fa-telegram-plane:before{content:""}.fa-temperature-high:before{content:""}.fa-temperature-low:before{content:""}.fa-tencent-weibo:before{content:""}.fa-tenge:before{content:""}.fa-terminal:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-th:before{content:""}.fa-th-large:before{content:""}.fa-th-list:before{content:""}.fa-the-red-yeti:before{content:""}.fa-theater-masks:before{content:""}.fa-themeco:before{content:""}.fa-themeisle:before{content:""}.fa-thermometer:before{content:""}.fa-thermometer-empty:before{content:""}.fa-thermometer-full:before{content:""}.fa-thermometer-half:before{content:""}.fa-thermometer-quarter:before{content:""}.fa-thermometer-three-quarters:before{content:""}.fa-think-peaks:before{content:""}.fa-thumbs-down:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbtack:before{content:""}.fa-ticket-alt:before{content:""}.fa-tiktok:before{content:""}.fa-times:before{content:""}.fa-times-circle:before{content:""}.fa-tint:before{content:""}.fa-tint-slash:before{content:""}.fa-tired:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-toilet:before{content:""}.fa-toilet-paper:before{content:""}.fa-toilet-paper-slash:before{content:""}.fa-toolbox:before{content:""}.fa-tools:before{content:""}.fa-tooth:before{content:""}.fa-torah:before{content:""}.fa-torii-gate:before{content:""}.fa-tractor:before{content:""}.fa-trade-federation:before{content:""}.fa-trademark:before{content:""}.fa-traffic-light:before{content:""}.fa-trailer:before{content:""}.fa-train:before{content:""}.fa-tram:before{content:""}.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-trash:before{content:""}.fa-trash-alt:before{content:""}.fa-trash-restore:before{content:""}.fa-trash-restore-alt:before{content:""}.fa-tree:before{content:""}.fa-trello:before{content:""}.fa-tripadvisor:before{content:""}.fa-trophy:before{content:""}.fa-truck:before{content:""}.fa-truck-loading:before{content:""}.fa-truck-monster:before{content:""}.fa-truck-moving:before{content:""}.fa-truck-pickup:before{content:""}.fa-tshirt:before{content:""}.fa-tty:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-tv:before{content:""}.fa-twitch:before{content:""}.fa-twitter:before{content:""}.fa-twitter-square:before{content:""}.fa-typo3:before{content:""}.fa-uber:before{content:""}.fa-ubuntu:before{content:""}.fa-uikit:before{content:""}.fa-umbraco:before{content:""}.fa-umbrella:before{content:""}.fa-umbrella-beach:before{content:""}.fa-underline:before{content:""}.fa-undo:before{content:""}.fa-undo-alt:before{content:""}.fa-uniregistry:before{content:""}.fa-unity:before{content:""}.fa-universal-access:before{content:""}.fa-university:before{content:""}.fa-unlink:before{content:""}.fa-unlock:before{content:""}.fa-unlock-alt:before{content:""}.fa-unsplash:before{content:""}.fa-untappd:before{content:""}.fa-upload:before{content:""}.fa-ups:before{content:""}.fa-usb:before{content:""}.fa-user:before{content:""}.fa-user-alt:before{content:""}.fa-user-alt-slash:before{content:""}.fa-user-astronaut:before{content:""}.fa-user-check:before{content:""}.fa-user-circle:before{content:""}.fa-user-clock:before{content:""}.fa-user-cog:before{content:""}.fa-user-edit:before{content:""}.fa-user-friends:before{content:""}.fa-user-graduate:before{content:""}.fa-user-injured:before{content:""}.fa-user-lock:before{content:""}.fa-user-md:before{content:""}.fa-user-minus:before{content:""}.fa-user-ninja:before{content:""}.fa-user-nurse:before{content:""}.fa-user-plus:before{content:""}.fa-user-secret:before{content:""}.fa-user-shield:before{content:""}.fa-user-slash:before{content:""}.fa-user-tag:before{content:""}.fa-user-tie:before{content:""}.fa-user-times:before{content:""}.fa-users:before{content:""}.fa-users-cog:before{content:""}.fa-users-slash:before{content:""}.fa-usps:before{content:""}.fa-ussunnah:before{content:""}.fa-utensil-spoon:before{content:""}.fa-utensils:before{content:""}.fa-vaadin:before{content:""}.fa-vector-square:before{content:""}.fa-venus:before{content:""}.fa-venus-double:before{content:""}.fa-venus-mars:before{content:""}.fa-viacoin:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-vial:before{content:""}.fa-vials:before{content:""}.fa-viber:before{content:""}.fa-video:before{content:""}.fa-video-slash:before{content:""}.fa-vihara:before{content:""}.fa-vimeo:before{content:""}.fa-vimeo-square:before{content:""}.fa-vimeo-v:before{content:""}.fa-vine:before{content:""}.fa-virus:before{content:""}.fa-virus-slash:before{content:""}.fa-viruses:before{content:""}.fa-vk:before{content:""}.fa-vnv:before{content:""}.fa-voicemail:before{content:""}.fa-volleyball-ball:before{content:""}.fa-volume-down:before{content:""}.fa-volume-mute:before{content:""}.fa-volume-off:before{content:""}.fa-volume-up:before{content:""}.fa-vote-yea:before{content:""}.fa-vr-cardboard:before{content:""}.fa-vuejs:before{content:""}.fa-walking:before{content:""}.fa-wallet:before{content:""}.fa-warehouse:before{content:""}.fa-water:before{content:""}.fa-wave-square:before{content:""}.fa-waze:before{content:""}.fa-weebly:before{content:""}.fa-weibo:before{content:""}.fa-weight:before{content:""}.fa-weight-hanging:before{content:""}.fa-weixin:before{content:""}.fa-whatsapp:before{content:""}.fa-whatsapp-square:before{content:""}.fa-wheelchair:before{content:""}.fa-whmcs:before{content:""}.fa-wifi:before{content:""}.fa-wikipedia-w:before{content:""}.fa-wind:before{content:""}.fa-window-close:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-windows:before{content:""}.fa-wine-bottle:before{content:""}.fa-wine-glass:before{content:""}.fa-wine-glass-alt:before{content:""}.fa-wix:before{content:""}.fa-wizards-of-the-coast:before{content:""}.fa-wolf-pack-battalion:before{content:""}.fa-won-sign:before{content:""}.fa-wordpress:before{content:""}.fa-wordpress-simple:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpexplorer:before{content:""}.fa-wpforms:before{content:""}.fa-wpressr:before{content:""}.fa-wrench:before{content:""}.fa-x-ray:before{content:""}.fa-xbox:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-y-combinator:before{content:""}.fa-yahoo:before{content:""}.fa-yammer:before{content:""}.fa-yandex:before{content:""}.fa-yandex-international:before{content:""}.fa-yarn:before{content:""}.fa-yelp:before{content:""}.fa-yen-sign:before{content:""}.fa-yin-yang:before{content:""}.fa-yoast:before{content:""}.fa-youtube:before{content:""}.fa-youtube-square:before{content:""}.fa-zhihu:before{content:""}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.converse-website converse-icon:before,.conversejs converse-icon:before{content:none!important}.converse-website .far:not(converse-icon),.conversejs .far:not(converse-icon){font-family:ConverseFontAwesomeRegular!important;font-weight:400}.converse-website .fa:not(converse-icon),.converse-website .fas:not(converse-icon),.conversejs .fa:not(converse-icon),.conversejs .fas:not(converse-icon){font-family:ConverseFontAwesomeSolid!important;font-weight:900}.converse-website .fab:not(converse-icon),.conversejs .fab:not(converse-icon){font-family:ConverseFontAwesomeBrands}.converse-website .fa:not(converse-icon),.converse-website .fab:not(converse-icon),.converse-website .far:not(converse-icon),.converse-website .fas:not(converse-icon),.conversejs .fa:not(converse-icon),.conversejs .fab:not(converse-icon),.conversejs .far:not(converse-icon),.conversejs .fas:not(converse-icon){display:inline-block;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.converse-website .fa-info-circle,.conversejs .fa-info-circle{height:1em}.conversejs :root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.conversejs *,.conversejs ::after,.conversejs ::before{box-sizing:border-box}.conversejs html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.conversejs article,.conversejs aside,.conversejs figcaption,.conversejs figure,.conversejs footer,.conversejs header,.conversejs hgroup,.conversejs main,.conversejs nav,.conversejs section{display:block}.conversejs body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}.conversejs [tabindex="-1"]:focus:not(:focus-visible){outline:0!important}.conversejs hr{box-sizing:content-box;height:0;overflow:visible}.conversejs h1,.conversejs h2,.conversejs h3,.conversejs h4,.conversejs h5,.conversejs h6{margin-top:0;margin-bottom:.5rem}.conversejs p{margin-top:0;margin-bottom:1rem}.conversejs abbr[data-original-title],.conversejs abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.conversejs address{margin-bottom:1rem;font-style:normal;line-height:inherit}.conversejs dl,.conversejs ol,.conversejs ul{margin-top:0;margin-bottom:1rem}.conversejs ol ol,.conversejs ol ul,.conversejs ul ol,.conversejs ul ul{margin-bottom:0}.conversejs dt{font-weight:700}.conversejs dd{margin-bottom:.5rem;margin-left:0}.conversejs blockquote{margin:0 0 1rem}.conversejs b,.conversejs strong{font-weight:bolder}.conversejs small{font-size:80%}.conversejs sub,.conversejs sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.conversejs sub{bottom:-.25em}.conversejs sup{top:-.5em}.conversejs a{color:#007bff;text-decoration:none;background-color:transparent}.conversejs a:hover{color:#0056b3;text-decoration:underline}.conversejs a:not([href]):not([class]){color:inherit;text-decoration:none}.conversejs a:not([href]):not([class]):hover{color:inherit;text-decoration:none}.conversejs code,.conversejs kbd,.conversejs pre,.conversejs samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}.conversejs pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}.conversejs figure{margin:0 0 1rem}.conversejs img{vertical-align:middle;border-style:none}.conversejs svg{overflow:hidden;vertical-align:middle}.conversejs table{border-collapse:collapse}.conversejs caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}.conversejs th{text-align:inherit;text-align:-webkit-match-parent}.conversejs label{display:inline-block;margin-bottom:.5rem}.conversejs button{border-radius:0}.conversejs button:focus:not(:focus-visible){outline:0}.conversejs button,.conversejs input,.conversejs optgroup,.conversejs select,.conversejs textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.conversejs button,.conversejs input{overflow:visible}.conversejs button,.conversejs select{text-transform:none}.conversejs [role=button]{cursor:pointer}.conversejs select{word-wrap:normal}.conversejs [type=button],.conversejs [type=reset],.conversejs [type=submit],.conversejs button{-webkit-appearance:button}.conversejs [type=button]:not(:disabled),.conversejs [type=reset]:not(:disabled),.conversejs [type=submit]:not(:disabled),.conversejs button:not(:disabled){cursor:pointer}.conversejs [type=button]::-moz-focus-inner,.conversejs [type=reset]::-moz-focus-inner,.conversejs [type=submit]::-moz-focus-inner,.conversejs button::-moz-focus-inner{padding:0;border-style:none}.conversejs input[type=checkbox],.conversejs input[type=radio]{box-sizing:border-box;padding:0}.conversejs textarea{overflow:auto;resize:vertical}.conversejs fieldset{min-width:0;padding:0;margin:0;border:0}.conversejs legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}.conversejs progress{vertical-align:baseline}.conversejs [type=number]::-webkit-inner-spin-button,.conversejs [type=number]::-webkit-outer-spin-button{height:auto}.conversejs [type=search]{outline-offset:-2px;-webkit-appearance:none}.conversejs [type=search]::-webkit-search-decoration{-webkit-appearance:none}.conversejs ::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.conversejs output{display:inline-block}.conversejs summary{display:list-item;cursor:pointer}.conversejs template{display:none}.conversejs [hidden]{display:none!important}.conversejs .h1,.conversejs .h2,.conversejs .h3,.conversejs .h4,.conversejs .h5,.conversejs .h6,.conversejs h1,.conversejs h2,.conversejs h3,.conversejs h4,.conversejs h5,.conversejs h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.conversejs .h1,.conversejs h1{font-size:2.5rem}.conversejs .h2,.conversejs h2{font-size:2rem}.conversejs .h3,.conversejs h3{font-size:1.75rem}.conversejs .h4,.conversejs h4{font-size:1.5rem}.conversejs .h5,.conversejs h5{font-size:1.25rem}.conversejs .h6,.conversejs h6{font-size:1rem}.conversejs .lead{font-size:1.25rem;font-weight:300}.conversejs .display-1{font-size:6rem;font-weight:300;line-height:1.2}.conversejs .display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.conversejs .display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.conversejs .display-4{font-size:3.5rem;font-weight:300;line-height:1.2}.conversejs hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.conversejs .small,.conversejs small{font-size:80%;font-weight:400}.conversejs .mark,.conversejs mark{padding:.2em;background-color:#fcf8e3}.conversejs .list-unstyled{padding-left:0;list-style:none}.conversejs .list-inline{padding-left:0;list-style:none}.conversejs .list-inline-item{display:inline-block}.conversejs .list-inline-item:not(:last-child){margin-right:.5rem}.conversejs .initialism{font-size:90%;text-transform:uppercase}.conversejs .blockquote{margin-bottom:1rem;font-size:1.25rem}.conversejs .blockquote-footer{display:block;font-size:80%;color:#6c757d}.conversejs .blockquote-footer::before{content:"— "}.conversejs .img-fluid{max-width:100%;height:auto}.conversejs .img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.conversejs .figure{display:inline-block}.conversejs .figure-img{margin-bottom:.5rem;line-height:1}.conversejs .figure-caption{font-size:90%;color:#6c757d}.conversejs .container,.conversejs .container-fluid,.conversejs .container-lg,.conversejs .container-md,.conversejs .container-sm,.conversejs .container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width:576px){.conversejs .container,.conversejs .container-sm{max-width:540px}}@media(min-width:768px){.conversejs .container,.conversejs .container-md,.conversejs .container-sm{max-width:720px}}@media(min-width:992px){.conversejs .container,.conversejs .container-lg,.conversejs .container-md,.conversejs .container-sm{max-width:960px}}@media(min-width:1200px){.conversejs .container,.conversejs .container-lg,.conversejs .container-md,.conversejs .container-sm,.conversejs .container-xl{max-width:1140px}}.conversejs .row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.conversejs .no-gutters{margin-right:0;margin-left:0}.conversejs .no-gutters>.col,.conversejs .no-gutters>[class*=col-]{padding-right:0;padding-left:0}.conversejs .col,.conversejs .col-1,.conversejs .col-10,.conversejs .col-11,.conversejs .col-12,.conversejs .col-2,.conversejs .col-3,.conversejs .col-4,.conversejs .col-5,.conversejs .col-6,.conversejs .col-7,.conversejs .col-8,.conversejs .col-9,.conversejs .col-auto,.conversejs .col-lg,.conversejs .col-lg-1,.conversejs .col-lg-10,.conversejs .col-lg-11,.conversejs .col-lg-12,.conversejs .col-lg-2,.conversejs .col-lg-3,.conversejs .col-lg-4,.conversejs .col-lg-5,.conversejs .col-lg-6,.conversejs .col-lg-7,.conversejs .col-lg-8,.conversejs .col-lg-9,.conversejs .col-lg-auto,.conversejs .col-md,.conversejs .col-md-1,.conversejs .col-md-10,.conversejs .col-md-11,.conversejs .col-md-12,.conversejs .col-md-2,.conversejs .col-md-3,.conversejs .col-md-4,.conversejs .col-md-5,.conversejs .col-md-6,.conversejs .col-md-7,.conversejs .col-md-8,.conversejs .col-md-9,.conversejs .col-md-auto,.conversejs .col-sm,.conversejs .col-sm-1,.conversejs .col-sm-10,.conversejs .col-sm-11,.conversejs .col-sm-12,.conversejs .col-sm-2,.conversejs .col-sm-3,.conversejs .col-sm-4,.conversejs .col-sm-5,.conversejs .col-sm-6,.conversejs .col-sm-7,.conversejs .col-sm-8,.conversejs .col-sm-9,.conversejs .col-sm-auto,.conversejs .col-xl,.conversejs .col-xl-1,.conversejs .col-xl-10,.conversejs .col-xl-11,.conversejs .col-xl-12,.conversejs .col-xl-2,.conversejs .col-xl-3,.conversejs .col-xl-4,.conversejs .col-xl-5,.conversejs .col-xl-6,.conversejs .col-xl-7,.conversejs .col-xl-8,.conversejs .col-xl-9,.conversejs .col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.conversejs .col{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-3{flex:0 0 25%;max-width:25%}.conversejs .col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-6{flex:0 0 50%;max-width:50%}.conversejs .col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-9{flex:0 0 75%;max-width:75%}.conversejs .col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-12{flex:0 0 100%;max-width:100%}.conversejs .order-first{order:-1}.conversejs .order-last{order:13}.conversejs .order-0{order:0}.conversejs .order-1{order:1}.conversejs .order-2{order:2}.conversejs .order-3{order:3}.conversejs .order-4{order:4}.conversejs .order-5{order:5}.conversejs .order-6{order:6}.conversejs .order-7{order:7}.conversejs .order-8{order:8}.conversejs .order-9{order:9}.conversejs .order-10{order:10}.conversejs .order-11{order:11}.conversejs .order-12{order:12}.conversejs .offset-1{margin-left:8.3333333333%}.conversejs .offset-2{margin-left:16.6666666667%}.conversejs .offset-3{margin-left:25%}.conversejs .offset-4{margin-left:33.3333333333%}.conversejs .offset-5{margin-left:41.6666666667%}.conversejs .offset-6{margin-left:50%}.conversejs .offset-7{margin-left:58.3333333333%}.conversejs .offset-8{margin-left:66.6666666667%}.conversejs .offset-9{margin-left:75%}.conversejs .offset-10{margin-left:83.3333333333%}.conversejs .offset-11{margin-left:91.6666666667%}@media(min-width:576px){.conversejs .col-sm{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-sm-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-sm-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-sm-3{flex:0 0 25%;max-width:25%}.conversejs .col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-sm-6{flex:0 0 50%;max-width:50%}.conversejs .col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-sm-9{flex:0 0 75%;max-width:75%}.conversejs .col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-sm-12{flex:0 0 100%;max-width:100%}.conversejs .order-sm-first{order:-1}.conversejs .order-sm-last{order:13}.conversejs .order-sm-0{order:0}.conversejs .order-sm-1{order:1}.conversejs .order-sm-2{order:2}.conversejs .order-sm-3{order:3}.conversejs .order-sm-4{order:4}.conversejs .order-sm-5{order:5}.conversejs .order-sm-6{order:6}.conversejs .order-sm-7{order:7}.conversejs .order-sm-8{order:8}.conversejs .order-sm-9{order:9}.conversejs .order-sm-10{order:10}.conversejs .order-sm-11{order:11}.conversejs .order-sm-12{order:12}.conversejs .offset-sm-0{margin-left:0}.conversejs .offset-sm-1{margin-left:8.3333333333%}.conversejs .offset-sm-2{margin-left:16.6666666667%}.conversejs .offset-sm-3{margin-left:25%}.conversejs .offset-sm-4{margin-left:33.3333333333%}.conversejs .offset-sm-5{margin-left:41.6666666667%}.conversejs .offset-sm-6{margin-left:50%}.conversejs .offset-sm-7{margin-left:58.3333333333%}.conversejs .offset-sm-8{margin-left:66.6666666667%}.conversejs .offset-sm-9{margin-left:75%}.conversejs .offset-sm-10{margin-left:83.3333333333%}.conversejs .offset-sm-11{margin-left:91.6666666667%}}@media(min-width:768px){.conversejs .col-md{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-md-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-md-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-md-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-md-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-md-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-md-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-md-3{flex:0 0 25%;max-width:25%}.conversejs .col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-md-6{flex:0 0 50%;max-width:50%}.conversejs .col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-md-9{flex:0 0 75%;max-width:75%}.conversejs .col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-md-12{flex:0 0 100%;max-width:100%}.conversejs .order-md-first{order:-1}.conversejs .order-md-last{order:13}.conversejs .order-md-0{order:0}.conversejs .order-md-1{order:1}.conversejs .order-md-2{order:2}.conversejs .order-md-3{order:3}.conversejs .order-md-4{order:4}.conversejs .order-md-5{order:5}.conversejs .order-md-6{order:6}.conversejs .order-md-7{order:7}.conversejs .order-md-8{order:8}.conversejs .order-md-9{order:9}.conversejs .order-md-10{order:10}.conversejs .order-md-11{order:11}.conversejs .order-md-12{order:12}.conversejs .offset-md-0{margin-left:0}.conversejs .offset-md-1{margin-left:8.3333333333%}.conversejs .offset-md-2{margin-left:16.6666666667%}.conversejs .offset-md-3{margin-left:25%}.conversejs .offset-md-4{margin-left:33.3333333333%}.conversejs .offset-md-5{margin-left:41.6666666667%}.conversejs .offset-md-6{margin-left:50%}.conversejs .offset-md-7{margin-left:58.3333333333%}.conversejs .offset-md-8{margin-left:66.6666666667%}.conversejs .offset-md-9{margin-left:75%}.conversejs .offset-md-10{margin-left:83.3333333333%}.conversejs .offset-md-11{margin-left:91.6666666667%}}@media(min-width:992px){.conversejs .col-lg{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-lg-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-lg-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-lg-3{flex:0 0 25%;max-width:25%}.conversejs .col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-lg-6{flex:0 0 50%;max-width:50%}.conversejs .col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-lg-9{flex:0 0 75%;max-width:75%}.conversejs .col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-lg-12{flex:0 0 100%;max-width:100%}.conversejs .order-lg-first{order:-1}.conversejs .order-lg-last{order:13}.conversejs .order-lg-0{order:0}.conversejs .order-lg-1{order:1}.conversejs .order-lg-2{order:2}.conversejs .order-lg-3{order:3}.conversejs .order-lg-4{order:4}.conversejs .order-lg-5{order:5}.conversejs .order-lg-6{order:6}.conversejs .order-lg-7{order:7}.conversejs .order-lg-8{order:8}.conversejs .order-lg-9{order:9}.conversejs .order-lg-10{order:10}.conversejs .order-lg-11{order:11}.conversejs .order-lg-12{order:12}.conversejs .offset-lg-0{margin-left:0}.conversejs .offset-lg-1{margin-left:8.3333333333%}.conversejs .offset-lg-2{margin-left:16.6666666667%}.conversejs .offset-lg-3{margin-left:25%}.conversejs .offset-lg-4{margin-left:33.3333333333%}.conversejs .offset-lg-5{margin-left:41.6666666667%}.conversejs .offset-lg-6{margin-left:50%}.conversejs .offset-lg-7{margin-left:58.3333333333%}.conversejs .offset-lg-8{margin-left:66.6666666667%}.conversejs .offset-lg-9{margin-left:75%}.conversejs .offset-lg-10{margin-left:83.3333333333%}.conversejs .offset-lg-11{margin-left:91.6666666667%}}@media(min-width:1200px){.conversejs .col-xl{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-xl-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-xl-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-xl-3{flex:0 0 25%;max-width:25%}.conversejs .col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-xl-6{flex:0 0 50%;max-width:50%}.conversejs .col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-xl-9{flex:0 0 75%;max-width:75%}.conversejs .col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-xl-12{flex:0 0 100%;max-width:100%}.conversejs .order-xl-first{order:-1}.conversejs .order-xl-last{order:13}.conversejs .order-xl-0{order:0}.conversejs .order-xl-1{order:1}.conversejs .order-xl-2{order:2}.conversejs .order-xl-3{order:3}.conversejs .order-xl-4{order:4}.conversejs .order-xl-5{order:5}.conversejs .order-xl-6{order:6}.conversejs .order-xl-7{order:7}.conversejs .order-xl-8{order:8}.conversejs .order-xl-9{order:9}.conversejs .order-xl-10{order:10}.conversejs .order-xl-11{order:11}.conversejs .order-xl-12{order:12}.conversejs .offset-xl-0{margin-left:0}.conversejs .offset-xl-1{margin-left:8.3333333333%}.conversejs .offset-xl-2{margin-left:16.6666666667%}.conversejs .offset-xl-3{margin-left:25%}.conversejs .offset-xl-4{margin-left:33.3333333333%}.conversejs .offset-xl-5{margin-left:41.6666666667%}.conversejs .offset-xl-6{margin-left:50%}.conversejs .offset-xl-7{margin-left:58.3333333333%}.conversejs .offset-xl-8{margin-left:66.6666666667%}.conversejs .offset-xl-9{margin-left:75%}.conversejs .offset-xl-10{margin-left:83.3333333333%}.conversejs .offset-xl-11{margin-left:91.6666666667%}}.conversejs .fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.conversejs .fade{transition:none}}.conversejs .fade:not(.show){opacity:0}.conversejs .collapse:not(.show){display:none}.conversejs .collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){.conversejs .collapsing{transition:none}}.conversejs .dropdown,.conversejs .dropleft,.conversejs .dropright,.conversejs .dropup{position:relative}.conversejs .dropdown-toggle{white-space:nowrap}.conversejs .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.conversejs .dropdown-toggle:empty::after{margin-left:0}.conversejs .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.conversejs .dropdown-menu-left{right:auto;left:0}.conversejs .dropdown-menu-right{right:0;left:auto}@media(min-width:576px){.conversejs .dropdown-menu-sm-left{right:auto;left:0}.conversejs .dropdown-menu-sm-right{right:0;left:auto}}@media(min-width:768px){.conversejs .dropdown-menu-md-left{right:auto;left:0}.conversejs .dropdown-menu-md-right{right:0;left:auto}}@media(min-width:992px){.conversejs .dropdown-menu-lg-left{right:auto;left:0}.conversejs .dropdown-menu-lg-right{right:0;left:auto}}@media(min-width:1200px){.conversejs .dropdown-menu-xl-left{right:auto;left:0}.conversejs .dropdown-menu-xl-right{right:0;left:auto}}.conversejs .dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.conversejs .dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.conversejs .dropup .dropdown-toggle:empty::after{margin-left:0}.conversejs .dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.conversejs .dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.conversejs .dropright .dropdown-toggle:empty::after{margin-left:0}.conversejs .dropright .dropdown-toggle::after{vertical-align:0}.conversejs .dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.conversejs .dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.conversejs .dropleft .dropdown-toggle::after{display:none}.conversejs .dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.conversejs .dropleft .dropdown-toggle:empty::after{margin-left:0}.conversejs .dropleft .dropdown-toggle::before{vertical-align:0}.conversejs .dropdown-menu[x-placement^=bottom],.conversejs .dropdown-menu[x-placement^=left],.conversejs .dropdown-menu[x-placement^=right],.conversejs .dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.conversejs .dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.conversejs .dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.conversejs .dropdown-item:focus,.conversejs .dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.conversejs .dropdown-item.active,.conversejs .dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.conversejs .dropdown-item.disabled,.conversejs .dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.conversejs .dropdown-menu.show{display:block}.conversejs .dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.conversejs .dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.conversejs .nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.conversejs .nav-link{display:block;padding:.5rem 1rem}.conversejs .nav-link:focus,.conversejs .nav-link:hover{text-decoration:none}.conversejs .nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.conversejs .nav-tabs{border-bottom:1px solid #dee2e6}.conversejs .nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.conversejs .nav-tabs .nav-link:focus,.conversejs .nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.conversejs .nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.conversejs .nav-tabs .nav-item.show .nav-link,.conversejs .nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.conversejs .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.conversejs .nav-pills .nav-link{border-radius:.25rem}.conversejs .nav-pills .nav-link.active,.conversejs .nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.conversejs .nav-fill .nav-item,.conversejs .nav-fill>.nav-link{flex:1 1 auto;text-align:center}.conversejs .nav-justified .nav-item,.conversejs .nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.conversejs .tab-content>.tab-pane{display:none}.conversejs .tab-content>.active{display:block}.conversejs .alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.conversejs .alert-heading{color:inherit}.conversejs .alert-link{font-weight:700}.conversejs .alert-dismissible{padding-right:4rem}.conversejs .alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.conversejs .alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.conversejs .alert-primary hr{border-top-color:#9fcdff}.conversejs .alert-primary .alert-link{color:#002752}.conversejs .alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.conversejs .alert-secondary hr{border-top-color:#c8cbcf}.conversejs .alert-secondary .alert-link{color:#202326}.conversejs .alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.conversejs .alert-success hr{border-top-color:#b1dfbb}.conversejs .alert-success .alert-link{color:#0b2e13}.conversejs .alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.conversejs .alert-info hr{border-top-color:#abdde5}.conversejs .alert-info .alert-link{color:#062c33}.conversejs .alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.conversejs .alert-warning hr{border-top-color:#ffe8a1}.conversejs .alert-warning .alert-link{color:#533f03}.conversejs .alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.conversejs .alert-danger hr{border-top-color:#f1b0b7}.conversejs .alert-danger .alert-link{color:#491217}.conversejs .alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.conversejs .alert-light hr{border-top-color:#ececf6}.conversejs .alert-light .alert-link{color:#686868}.conversejs .alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.conversejs .alert-dark hr{border-top-color:#b9bbbe}.conversejs .alert-dark .alert-link{color:#040505}.conversejs .media{display:flex;align-items:flex-start}.conversejs .media-body{flex:1}.conversejs .close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.conversejs .close:hover{color:#000;text-decoration:none}.conversejs .close:not(:disabled):not(.disabled):focus,.conversejs .close:not(:disabled):not(.disabled):hover{opacity:.75}.conversejs button.close{padding:0;background-color:transparent;border:0}.conversejs a.close.disabled{pointer-events:none}.conversejs .popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.conversejs .popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.conversejs .popover .arrow::after,.conversejs .popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.conversejs .bs-popover-auto[x-placement^=top],.conversejs .bs-popover-top{margin-bottom:.5rem}.conversejs .bs-popover-auto[x-placement^=top]>.arrow,.conversejs .bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.conversejs .bs-popover-auto[x-placement^=top]>.arrow::before,.conversejs .bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.conversejs .bs-popover-auto[x-placement^=top]>.arrow::after,.conversejs .bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.conversejs .bs-popover-auto[x-placement^=right],.conversejs .bs-popover-right{margin-left:.5rem}.conversejs .bs-popover-auto[x-placement^=right]>.arrow,.conversejs .bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.conversejs .bs-popover-auto[x-placement^=right]>.arrow::before,.conversejs .bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.conversejs .bs-popover-auto[x-placement^=right]>.arrow::after,.conversejs .bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.conversejs .bs-popover-auto[x-placement^=bottom],.conversejs .bs-popover-bottom{margin-top:.5rem}.conversejs .bs-popover-auto[x-placement^=bottom]>.arrow,.conversejs .bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.conversejs .bs-popover-auto[x-placement^=bottom]>.arrow::before,.conversejs .bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.conversejs .bs-popover-auto[x-placement^=bottom]>.arrow::after,.conversejs .bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.conversejs .bs-popover-auto[x-placement^=bottom] .popover-header::before,.conversejs .bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.conversejs .bs-popover-auto[x-placement^=left],.conversejs .bs-popover-left{margin-right:.5rem}.conversejs .bs-popover-auto[x-placement^=left]>.arrow,.conversejs .bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.conversejs .bs-popover-auto[x-placement^=left]>.arrow::before,.conversejs .bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.conversejs .bs-popover-auto[x-placement^=left]>.arrow::after,.conversejs .bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.conversejs .popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.conversejs .popover-header:empty{display:none}.conversejs .popover-body{padding:.5rem .75rem;color:#212529}.conversejs .align-baseline{vertical-align:baseline!important}.conversejs .align-top{vertical-align:top!important}.conversejs .align-middle{vertical-align:middle!important}.conversejs .align-bottom{vertical-align:bottom!important}.conversejs .align-text-bottom{vertical-align:text-bottom!important}.conversejs .align-text-top{vertical-align:text-top!important}.conversejs .bg-primary{background-color:#007bff!important}.conversejs a.bg-primary:focus,.conversejs a.bg-primary:hover,.conversejs button.bg-primary:focus,.conversejs button.bg-primary:hover{background-color:#0062cc!important}.conversejs .bg-secondary{background-color:#6c757d!important}.conversejs a.bg-secondary:focus,.conversejs a.bg-secondary:hover,.conversejs button.bg-secondary:focus,.conversejs button.bg-secondary:hover{background-color:#545b62!important}.conversejs .bg-success{background-color:#28a745!important}.conversejs a.bg-success:focus,.conversejs a.bg-success:hover,.conversejs button.bg-success:focus,.conversejs button.bg-success:hover{background-color:#1e7e34!important}.conversejs .bg-info{background-color:#17a2b8!important}.conversejs a.bg-info:focus,.conversejs a.bg-info:hover,.conversejs button.bg-info:focus,.conversejs button.bg-info:hover{background-color:#117a8b!important}.conversejs .bg-warning{background-color:#ffc107!important}.conversejs a.bg-warning:focus,.conversejs a.bg-warning:hover,.conversejs button.bg-warning:focus,.conversejs button.bg-warning:hover{background-color:#d39e00!important}.conversejs .bg-danger{background-color:#dc3545!important}.conversejs a.bg-danger:focus,.conversejs a.bg-danger:hover,.conversejs button.bg-danger:focus,.conversejs button.bg-danger:hover{background-color:#bd2130!important}.conversejs .bg-light{background-color:#f8f9fa!important}.conversejs a.bg-light:focus,.conversejs a.bg-light:hover,.conversejs button.bg-light:focus,.conversejs button.bg-light:hover{background-color:#dae0e5!important}.conversejs .bg-dark{background-color:#343a40!important}.conversejs a.bg-dark:focus,.conversejs a.bg-dark:hover,.conversejs button.bg-dark:focus,.conversejs button.bg-dark:hover{background-color:#1d2124!important}.conversejs .bg-white{background-color:#fff!important}.conversejs .bg-transparent{background-color:transparent!important}.conversejs .border{border:1px solid #dee2e6!important}.conversejs .border-top{border-top:1px solid #dee2e6!important}.conversejs .border-right{border-right:1px solid #dee2e6!important}.conversejs .border-bottom{border-bottom:1px solid #dee2e6!important}.conversejs .border-left{border-left:1px solid #dee2e6!important}.conversejs .border-0{border:0!important}.conversejs .border-top-0{border-top:0!important}.conversejs .border-right-0{border-right:0!important}.conversejs .border-bottom-0{border-bottom:0!important}.conversejs .border-left-0{border-left:0!important}.conversejs .border-primary{border-color:#007bff!important}.conversejs .border-secondary{border-color:#6c757d!important}.conversejs .border-success{border-color:#28a745!important}.conversejs .border-info{border-color:#17a2b8!important}.conversejs .border-warning{border-color:#ffc107!important}.conversejs .border-danger{border-color:#dc3545!important}.conversejs .border-light{border-color:#f8f9fa!important}.conversejs .border-dark{border-color:#343a40!important}.conversejs .border-white{border-color:#fff!important}.conversejs .rounded-sm{border-radius:.2rem!important}.conversejs .rounded{border-radius:.25rem!important}.conversejs .rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.conversejs .rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.conversejs .rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.conversejs .rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.conversejs .rounded-lg{border-radius:.3rem!important}.conversejs .rounded-circle{border-radius:50%!important}.conversejs .rounded-pill{border-radius:50rem!important}.conversejs .rounded-0{border-radius:0!important}.conversejs .clearfix::after{display:block;clear:both;content:""}.conversejs .d-none{display:none!important}.conversejs .d-inline{display:inline!important}.conversejs .d-inline-block{display:inline-block!important}.conversejs .d-block{display:block!important}.conversejs .d-table{display:table!important}.conversejs .d-table-row{display:table-row!important}.conversejs .d-table-cell{display:table-cell!important}.conversejs .d-flex{display:flex!important}.conversejs .d-inline-flex{display:inline-flex!important}@media(min-width:576px){.conversejs .d-sm-none{display:none!important}.conversejs .d-sm-inline{display:inline!important}.conversejs .d-sm-inline-block{display:inline-block!important}.conversejs .d-sm-block{display:block!important}.conversejs .d-sm-table{display:table!important}.conversejs .d-sm-table-row{display:table-row!important}.conversejs .d-sm-table-cell{display:table-cell!important}.conversejs .d-sm-flex{display:flex!important}.conversejs .d-sm-inline-flex{display:inline-flex!important}}@media(min-width:768px){.conversejs .d-md-none{display:none!important}.conversejs .d-md-inline{display:inline!important}.conversejs .d-md-inline-block{display:inline-block!important}.conversejs .d-md-block{display:block!important}.conversejs .d-md-table{display:table!important}.conversejs .d-md-table-row{display:table-row!important}.conversejs .d-md-table-cell{display:table-cell!important}.conversejs .d-md-flex{display:flex!important}.conversejs .d-md-inline-flex{display:inline-flex!important}}@media(min-width:992px){.conversejs .d-lg-none{display:none!important}.conversejs .d-lg-inline{display:inline!important}.conversejs .d-lg-inline-block{display:inline-block!important}.conversejs .d-lg-block{display:block!important}.conversejs .d-lg-table{display:table!important}.conversejs .d-lg-table-row{display:table-row!important}.conversejs .d-lg-table-cell{display:table-cell!important}.conversejs .d-lg-flex{display:flex!important}.conversejs .d-lg-inline-flex{display:inline-flex!important}}@media(min-width:1200px){.conversejs .d-xl-none{display:none!important}.conversejs .d-xl-inline{display:inline!important}.conversejs .d-xl-inline-block{display:inline-block!important}.conversejs .d-xl-block{display:block!important}.conversejs .d-xl-table{display:table!important}.conversejs .d-xl-table-row{display:table-row!important}.conversejs .d-xl-table-cell{display:table-cell!important}.conversejs .d-xl-flex{display:flex!important}.conversejs .d-xl-inline-flex{display:inline-flex!important}}@media print{.conversejs .d-print-none{display:none!important}.conversejs .d-print-inline{display:inline!important}.conversejs .d-print-inline-block{display:inline-block!important}.conversejs .d-print-block{display:block!important}.conversejs .d-print-table{display:table!important}.conversejs .d-print-table-row{display:table-row!important}.conversejs .d-print-table-cell{display:table-cell!important}.conversejs .d-print-flex{display:flex!important}.conversejs .d-print-inline-flex{display:inline-flex!important}}.conversejs .embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.conversejs .embed-responsive::before{display:block;content:""}.conversejs .embed-responsive .embed-responsive-item,.conversejs .embed-responsive embed,.conversejs .embed-responsive iframe,.conversejs .embed-responsive object,.conversejs .embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.conversejs .embed-responsive-21by9::before{padding-top:42.8571428571%}.conversejs .embed-responsive-16by9::before{padding-top:56.25%}.conversejs .embed-responsive-4by3::before{padding-top:75%}.conversejs .embed-responsive-1by1::before{padding-top:100%}.conversejs .flex-row{flex-direction:row!important}.conversejs .flex-column{flex-direction:column!important}.conversejs .flex-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-wrap{flex-wrap:wrap!important}.conversejs .flex-nowrap{flex-wrap:nowrap!important}.conversejs .flex-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-fill{flex:1 1 auto!important}.conversejs .flex-grow-0{flex-grow:0!important}.conversejs .flex-grow-1{flex-grow:1!important}.conversejs .flex-shrink-0{flex-shrink:0!important}.conversejs .flex-shrink-1{flex-shrink:1!important}.conversejs .justify-content-start{justify-content:flex-start!important}.conversejs .justify-content-end{justify-content:flex-end!important}.conversejs .justify-content-center{justify-content:center!important}.conversejs .justify-content-between{justify-content:space-between!important}.conversejs .justify-content-around{justify-content:space-around!important}.conversejs .align-items-start{align-items:flex-start!important}.conversejs .align-items-end{align-items:flex-end!important}.conversejs .align-items-center{align-items:center!important}.conversejs .align-items-baseline{align-items:baseline!important}.conversejs .align-items-stretch{align-items:stretch!important}.conversejs .align-content-start{align-content:flex-start!important}.conversejs .align-content-end{align-content:flex-end!important}.conversejs .align-content-center{align-content:center!important}.conversejs .align-content-between{align-content:space-between!important}.conversejs .align-content-around{align-content:space-around!important}.conversejs .align-content-stretch{align-content:stretch!important}.conversejs .align-self-auto{align-self:auto!important}.conversejs .align-self-start{align-self:flex-start!important}.conversejs .align-self-end{align-self:flex-end!important}.conversejs .align-self-center{align-self:center!important}.conversejs .align-self-baseline{align-self:baseline!important}.conversejs .align-self-stretch{align-self:stretch!important}@media(min-width:576px){.conversejs .flex-sm-row{flex-direction:row!important}.conversejs .flex-sm-column{flex-direction:column!important}.conversejs .flex-sm-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-sm-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-sm-wrap{flex-wrap:wrap!important}.conversejs .flex-sm-nowrap{flex-wrap:nowrap!important}.conversejs .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-sm-fill{flex:1 1 auto!important}.conversejs .flex-sm-grow-0{flex-grow:0!important}.conversejs .flex-sm-grow-1{flex-grow:1!important}.conversejs .flex-sm-shrink-0{flex-shrink:0!important}.conversejs .flex-sm-shrink-1{flex-shrink:1!important}.conversejs .justify-content-sm-start{justify-content:flex-start!important}.conversejs .justify-content-sm-end{justify-content:flex-end!important}.conversejs .justify-content-sm-center{justify-content:center!important}.conversejs .justify-content-sm-between{justify-content:space-between!important}.conversejs .justify-content-sm-around{justify-content:space-around!important}.conversejs .align-items-sm-start{align-items:flex-start!important}.conversejs .align-items-sm-end{align-items:flex-end!important}.conversejs .align-items-sm-center{align-items:center!important}.conversejs .align-items-sm-baseline{align-items:baseline!important}.conversejs .align-items-sm-stretch{align-items:stretch!important}.conversejs .align-content-sm-start{align-content:flex-start!important}.conversejs .align-content-sm-end{align-content:flex-end!important}.conversejs .align-content-sm-center{align-content:center!important}.conversejs .align-content-sm-between{align-content:space-between!important}.conversejs .align-content-sm-around{align-content:space-around!important}.conversejs .align-content-sm-stretch{align-content:stretch!important}.conversejs .align-self-sm-auto{align-self:auto!important}.conversejs .align-self-sm-start{align-self:flex-start!important}.conversejs .align-self-sm-end{align-self:flex-end!important}.conversejs .align-self-sm-center{align-self:center!important}.conversejs .align-self-sm-baseline{align-self:baseline!important}.conversejs .align-self-sm-stretch{align-self:stretch!important}}@media(min-width:768px){.conversejs .flex-md-row{flex-direction:row!important}.conversejs .flex-md-column{flex-direction:column!important}.conversejs .flex-md-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-md-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-md-wrap{flex-wrap:wrap!important}.conversejs .flex-md-nowrap{flex-wrap:nowrap!important}.conversejs .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-md-fill{flex:1 1 auto!important}.conversejs .flex-md-grow-0{flex-grow:0!important}.conversejs .flex-md-grow-1{flex-grow:1!important}.conversejs .flex-md-shrink-0{flex-shrink:0!important}.conversejs .flex-md-shrink-1{flex-shrink:1!important}.conversejs .justify-content-md-start{justify-content:flex-start!important}.conversejs .justify-content-md-end{justify-content:flex-end!important}.conversejs .justify-content-md-center{justify-content:center!important}.conversejs .justify-content-md-between{justify-content:space-between!important}.conversejs .justify-content-md-around{justify-content:space-around!important}.conversejs .align-items-md-start{align-items:flex-start!important}.conversejs .align-items-md-end{align-items:flex-end!important}.conversejs .align-items-md-center{align-items:center!important}.conversejs .align-items-md-baseline{align-items:baseline!important}.conversejs .align-items-md-stretch{align-items:stretch!important}.conversejs .align-content-md-start{align-content:flex-start!important}.conversejs .align-content-md-end{align-content:flex-end!important}.conversejs .align-content-md-center{align-content:center!important}.conversejs .align-content-md-between{align-content:space-between!important}.conversejs .align-content-md-around{align-content:space-around!important}.conversejs .align-content-md-stretch{align-content:stretch!important}.conversejs .align-self-md-auto{align-self:auto!important}.conversejs .align-self-md-start{align-self:flex-start!important}.conversejs .align-self-md-end{align-self:flex-end!important}.conversejs .align-self-md-center{align-self:center!important}.conversejs .align-self-md-baseline{align-self:baseline!important}.conversejs .align-self-md-stretch{align-self:stretch!important}}@media(min-width:992px){.conversejs .flex-lg-row{flex-direction:row!important}.conversejs .flex-lg-column{flex-direction:column!important}.conversejs .flex-lg-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-lg-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-lg-wrap{flex-wrap:wrap!important}.conversejs .flex-lg-nowrap{flex-wrap:nowrap!important}.conversejs .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-lg-fill{flex:1 1 auto!important}.conversejs .flex-lg-grow-0{flex-grow:0!important}.conversejs .flex-lg-grow-1{flex-grow:1!important}.conversejs .flex-lg-shrink-0{flex-shrink:0!important}.conversejs .flex-lg-shrink-1{flex-shrink:1!important}.conversejs .justify-content-lg-start{justify-content:flex-start!important}.conversejs .justify-content-lg-end{justify-content:flex-end!important}.conversejs .justify-content-lg-center{justify-content:center!important}.conversejs .justify-content-lg-between{justify-content:space-between!important}.conversejs .justify-content-lg-around{justify-content:space-around!important}.conversejs .align-items-lg-start{align-items:flex-start!important}.conversejs .align-items-lg-end{align-items:flex-end!important}.conversejs .align-items-lg-center{align-items:center!important}.conversejs .align-items-lg-baseline{align-items:baseline!important}.conversejs .align-items-lg-stretch{align-items:stretch!important}.conversejs .align-content-lg-start{align-content:flex-start!important}.conversejs .align-content-lg-end{align-content:flex-end!important}.conversejs .align-content-lg-center{align-content:center!important}.conversejs .align-content-lg-between{align-content:space-between!important}.conversejs .align-content-lg-around{align-content:space-around!important}.conversejs .align-content-lg-stretch{align-content:stretch!important}.conversejs .align-self-lg-auto{align-self:auto!important}.conversejs .align-self-lg-start{align-self:flex-start!important}.conversejs .align-self-lg-end{align-self:flex-end!important}.conversejs .align-self-lg-center{align-self:center!important}.conversejs .align-self-lg-baseline{align-self:baseline!important}.conversejs .align-self-lg-stretch{align-self:stretch!important}}@media(min-width:1200px){.conversejs .flex-xl-row{flex-direction:row!important}.conversejs .flex-xl-column{flex-direction:column!important}.conversejs .flex-xl-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-xl-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-xl-wrap{flex-wrap:wrap!important}.conversejs .flex-xl-nowrap{flex-wrap:nowrap!important}.conversejs .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-xl-fill{flex:1 1 auto!important}.conversejs .flex-xl-grow-0{flex-grow:0!important}.conversejs .flex-xl-grow-1{flex-grow:1!important}.conversejs .flex-xl-shrink-0{flex-shrink:0!important}.conversejs .flex-xl-shrink-1{flex-shrink:1!important}.conversejs .justify-content-xl-start{justify-content:flex-start!important}.conversejs .justify-content-xl-end{justify-content:flex-end!important}.conversejs .justify-content-xl-center{justify-content:center!important}.conversejs .justify-content-xl-between{justify-content:space-between!important}.conversejs .justify-content-xl-around{justify-content:space-around!important}.conversejs .align-items-xl-start{align-items:flex-start!important}.conversejs .align-items-xl-end{align-items:flex-end!important}.conversejs .align-items-xl-center{align-items:center!important}.conversejs .align-items-xl-baseline{align-items:baseline!important}.conversejs .align-items-xl-stretch{align-items:stretch!important}.conversejs .align-content-xl-start{align-content:flex-start!important}.conversejs .align-content-xl-end{align-content:flex-end!important}.conversejs .align-content-xl-center{align-content:center!important}.conversejs .align-content-xl-between{align-content:space-between!important}.conversejs .align-content-xl-around{align-content:space-around!important}.conversejs .align-content-xl-stretch{align-content:stretch!important}.conversejs .align-self-xl-auto{align-self:auto!important}.conversejs .align-self-xl-start{align-self:flex-start!important}.conversejs .align-self-xl-end{align-self:flex-end!important}.conversejs .align-self-xl-center{align-self:center!important}.conversejs .align-self-xl-baseline{align-self:baseline!important}.conversejs .align-self-xl-stretch{align-self:stretch!important}}.conversejs .float-left{float:left!important}.conversejs .float-right{float:right!important}.conversejs .float-none{float:none!important}@media(min-width:576px){.conversejs .float-sm-left{float:left!important}.conversejs .float-sm-right{float:right!important}.conversejs .float-sm-none{float:none!important}}@media(min-width:768px){.conversejs .float-md-left{float:left!important}.conversejs .float-md-right{float:right!important}.conversejs .float-md-none{float:none!important}}@media(min-width:992px){.conversejs .float-lg-left{float:left!important}.conversejs .float-lg-right{float:right!important}.conversejs .float-lg-none{float:none!important}}@media(min-width:1200px){.conversejs .float-xl-left{float:left!important}.conversejs .float-xl-right{float:right!important}.conversejs .float-xl-none{float:none!important}}.conversejs .user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.conversejs .user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.conversejs .user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.conversejs .overflow-auto{overflow:auto!important}.conversejs .overflow-hidden{overflow:hidden!important}.conversejs .position-static{position:static!important}.conversejs .position-relative{position:relative!important}.conversejs .position-absolute{position:absolute!important}.conversejs .position-fixed{position:fixed!important}.conversejs .position-sticky{position:-webkit-sticky!important;position:sticky!important}.conversejs .fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.conversejs .fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports((position:-webkit-sticky) or (position:sticky)){.conversejs .sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.conversejs .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.conversejs .sr-only-focusable:active,.conversejs .sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.conversejs .shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.conversejs .shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.conversejs .shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.conversejs .shadow-none{box-shadow:none!important}.conversejs .w-25{width:25%!important}.conversejs .w-50{width:50%!important}.conversejs .w-75{width:75%!important}.conversejs .w-100{width:100%!important}.conversejs .w-auto{width:auto!important}.conversejs .h-25{height:25%!important}.conversejs .h-50{height:50%!important}.conversejs .h-75{height:75%!important}.conversejs .h-100{height:100%!important}.conversejs .h-auto{height:auto!important}.conversejs .mw-100{max-width:100%!important}.conversejs .mh-100{max-height:100%!important}.conversejs .min-vw-100{min-width:100vw!important}.conversejs .min-vh-100{min-height:100vh!important}.conversejs .vw-100{width:100vw!important}.conversejs .vh-100{height:100vh!important}.conversejs .m-0{margin:0!important}.conversejs .mt-0,.conversejs .my-0{margin-top:0!important}.conversejs .mr-0,.conversejs .mx-0{margin-right:0!important}.conversejs .mb-0,.conversejs .my-0{margin-bottom:0!important}.conversejs .ml-0,.conversejs .mx-0{margin-left:0!important}.conversejs .m-1{margin:.25rem!important}.conversejs .mt-1,.conversejs .my-1{margin-top:.25rem!important}.conversejs .mr-1,.conversejs .mx-1{margin-right:.25rem!important}.conversejs .mb-1,.conversejs .my-1{margin-bottom:.25rem!important}.conversejs .ml-1,.conversejs .mx-1{margin-left:.25rem!important}.conversejs .m-2{margin:.5rem!important}.conversejs .mt-2,.conversejs .my-2{margin-top:.5rem!important}.conversejs .mr-2,.conversejs .mx-2{margin-right:.5rem!important}.conversejs .mb-2,.conversejs .my-2{margin-bottom:.5rem!important}.conversejs .ml-2,.conversejs .mx-2{margin-left:.5rem!important}.conversejs .m-3{margin:1rem!important}.conversejs .mt-3,.conversejs .my-3{margin-top:1rem!important}.conversejs .mr-3,.conversejs .mx-3{margin-right:1rem!important}.conversejs .mb-3,.conversejs .my-3{margin-bottom:1rem!important}.conversejs .ml-3,.conversejs .mx-3{margin-left:1rem!important}.conversejs .m-4{margin:1.5rem!important}.conversejs .mt-4,.conversejs .my-4{margin-top:1.5rem!important}.conversejs .mr-4,.conversejs .mx-4{margin-right:1.5rem!important}.conversejs .mb-4,.conversejs .my-4{margin-bottom:1.5rem!important}.conversejs .ml-4,.conversejs .mx-4{margin-left:1.5rem!important}.conversejs .m-5{margin:3rem!important}.conversejs .mt-5,.conversejs .my-5{margin-top:3rem!important}.conversejs .mr-5,.conversejs .mx-5{margin-right:3rem!important}.conversejs .mb-5,.conversejs .my-5{margin-bottom:3rem!important}.conversejs .ml-5,.conversejs .mx-5{margin-left:3rem!important}.conversejs .p-0{padding:0!important}.conversejs .pt-0,.conversejs .py-0{padding-top:0!important}.conversejs .pr-0,.conversejs .px-0{padding-right:0!important}.conversejs .pb-0,.conversejs .py-0{padding-bottom:0!important}.conversejs .pl-0,.conversejs .px-0{padding-left:0!important}.conversejs .p-1{padding:.25rem!important}.conversejs .pt-1,.conversejs .py-1{padding-top:.25rem!important}.conversejs .pr-1,.conversejs .px-1{padding-right:.25rem!important}.conversejs .pb-1,.conversejs .py-1{padding-bottom:.25rem!important}.conversejs .pl-1,.conversejs .px-1{padding-left:.25rem!important}.conversejs .p-2{padding:.5rem!important}.conversejs .pt-2,.conversejs .py-2{padding-top:.5rem!important}.conversejs .pr-2,.conversejs .px-2{padding-right:.5rem!important}.conversejs .pb-2,.conversejs .py-2{padding-bottom:.5rem!important}.conversejs .pl-2,.conversejs .px-2{padding-left:.5rem!important}.conversejs .p-3{padding:1rem!important}.conversejs .pt-3,.conversejs .py-3{padding-top:1rem!important}.conversejs .pr-3,.conversejs .px-3{padding-right:1rem!important}.conversejs .pb-3,.conversejs .py-3{padding-bottom:1rem!important}.conversejs .pl-3,.conversejs .px-3{padding-left:1rem!important}.conversejs .p-4{padding:1.5rem!important}.conversejs .pt-4,.conversejs .py-4{padding-top:1.5rem!important}.conversejs .pr-4,.conversejs .px-4{padding-right:1.5rem!important}.conversejs .pb-4,.conversejs .py-4{padding-bottom:1.5rem!important}.conversejs .pl-4,.conversejs .px-4{padding-left:1.5rem!important}.conversejs .p-5{padding:3rem!important}.conversejs .pt-5,.conversejs .py-5{padding-top:3rem!important}.conversejs .pr-5,.conversejs .px-5{padding-right:3rem!important}.conversejs .pb-5,.conversejs .py-5{padding-bottom:3rem!important}.conversejs .pl-5,.conversejs .px-5{padding-left:3rem!important}.conversejs .m-n1{margin:-.25rem!important}.conversejs .mt-n1,.conversejs .my-n1{margin-top:-.25rem!important}.conversejs .mr-n1,.conversejs .mx-n1{margin-right:-.25rem!important}.conversejs .mb-n1,.conversejs .my-n1{margin-bottom:-.25rem!important}.conversejs .ml-n1,.conversejs .mx-n1{margin-left:-.25rem!important}.conversejs .m-n2{margin:-.5rem!important}.conversejs .mt-n2,.conversejs .my-n2{margin-top:-.5rem!important}.conversejs .mr-n2,.conversejs .mx-n2{margin-right:-.5rem!important}.conversejs .mb-n2,.conversejs .my-n2{margin-bottom:-.5rem!important}.conversejs .ml-n2,.conversejs .mx-n2{margin-left:-.5rem!important}.conversejs .m-n3{margin:-1rem!important}.conversejs .mt-n3,.conversejs .my-n3{margin-top:-1rem!important}.conversejs .mr-n3,.conversejs .mx-n3{margin-right:-1rem!important}.conversejs .mb-n3,.conversejs .my-n3{margin-bottom:-1rem!important}.conversejs .ml-n3,.conversejs .mx-n3{margin-left:-1rem!important}.conversejs .m-n4{margin:-1.5rem!important}.conversejs .mt-n4,.conversejs .my-n4{margin-top:-1.5rem!important}.conversejs .mr-n4,.conversejs .mx-n4{margin-right:-1.5rem!important}.conversejs .mb-n4,.conversejs .my-n4{margin-bottom:-1.5rem!important}.conversejs .ml-n4,.conversejs .mx-n4{margin-left:-1.5rem!important}.conversejs .m-n5{margin:-3rem!important}.conversejs .mt-n5,.conversejs .my-n5{margin-top:-3rem!important}.conversejs .mr-n5,.conversejs .mx-n5{margin-right:-3rem!important}.conversejs .mb-n5,.conversejs .my-n5{margin-bottom:-3rem!important}.conversejs .ml-n5,.conversejs .mx-n5{margin-left:-3rem!important}.conversejs .m-auto{margin:auto!important}.conversejs .mt-auto,.conversejs .my-auto{margin-top:auto!important}.conversejs .mr-auto,.conversejs .mx-auto{margin-right:auto!important}.conversejs .mb-auto,.conversejs .my-auto{margin-bottom:auto!important}.conversejs .ml-auto,.conversejs .mx-auto{margin-left:auto!important}@media(min-width:576px){.conversejs .m-sm-0{margin:0!important}.conversejs .mt-sm-0,.conversejs .my-sm-0{margin-top:0!important}.conversejs .mr-sm-0,.conversejs .mx-sm-0{margin-right:0!important}.conversejs .mb-sm-0,.conversejs .my-sm-0{margin-bottom:0!important}.conversejs .ml-sm-0,.conversejs .mx-sm-0{margin-left:0!important}.conversejs .m-sm-1{margin:.25rem!important}.conversejs .mt-sm-1,.conversejs .my-sm-1{margin-top:.25rem!important}.conversejs .mr-sm-1,.conversejs .mx-sm-1{margin-right:.25rem!important}.conversejs .mb-sm-1,.conversejs .my-sm-1{margin-bottom:.25rem!important}.conversejs .ml-sm-1,.conversejs .mx-sm-1{margin-left:.25rem!important}.conversejs .m-sm-2{margin:.5rem!important}.conversejs .mt-sm-2,.conversejs .my-sm-2{margin-top:.5rem!important}.conversejs .mr-sm-2,.conversejs .mx-sm-2{margin-right:.5rem!important}.conversejs .mb-sm-2,.conversejs .my-sm-2{margin-bottom:.5rem!important}.conversejs .ml-sm-2,.conversejs .mx-sm-2{margin-left:.5rem!important}.conversejs .m-sm-3{margin:1rem!important}.conversejs .mt-sm-3,.conversejs .my-sm-3{margin-top:1rem!important}.conversejs .mr-sm-3,.conversejs .mx-sm-3{margin-right:1rem!important}.conversejs .mb-sm-3,.conversejs .my-sm-3{margin-bottom:1rem!important}.conversejs .ml-sm-3,.conversejs .mx-sm-3{margin-left:1rem!important}.conversejs .m-sm-4{margin:1.5rem!important}.conversejs .mt-sm-4,.conversejs .my-sm-4{margin-top:1.5rem!important}.conversejs .mr-sm-4,.conversejs .mx-sm-4{margin-right:1.5rem!important}.conversejs .mb-sm-4,.conversejs .my-sm-4{margin-bottom:1.5rem!important}.conversejs .ml-sm-4,.conversejs .mx-sm-4{margin-left:1.5rem!important}.conversejs .m-sm-5{margin:3rem!important}.conversejs .mt-sm-5,.conversejs .my-sm-5{margin-top:3rem!important}.conversejs .mr-sm-5,.conversejs .mx-sm-5{margin-right:3rem!important}.conversejs .mb-sm-5,.conversejs .my-sm-5{margin-bottom:3rem!important}.conversejs .ml-sm-5,.conversejs .mx-sm-5{margin-left:3rem!important}.conversejs .p-sm-0{padding:0!important}.conversejs .pt-sm-0,.conversejs .py-sm-0{padding-top:0!important}.conversejs .pr-sm-0,.conversejs .px-sm-0{padding-right:0!important}.conversejs .pb-sm-0,.conversejs .py-sm-0{padding-bottom:0!important}.conversejs .pl-sm-0,.conversejs .px-sm-0{padding-left:0!important}.conversejs .p-sm-1{padding:.25rem!important}.conversejs .pt-sm-1,.conversejs .py-sm-1{padding-top:.25rem!important}.conversejs .pr-sm-1,.conversejs .px-sm-1{padding-right:.25rem!important}.conversejs .pb-sm-1,.conversejs .py-sm-1{padding-bottom:.25rem!important}.conversejs .pl-sm-1,.conversejs .px-sm-1{padding-left:.25rem!important}.conversejs .p-sm-2{padding:.5rem!important}.conversejs .pt-sm-2,.conversejs .py-sm-2{padding-top:.5rem!important}.conversejs .pr-sm-2,.conversejs .px-sm-2{padding-right:.5rem!important}.conversejs .pb-sm-2,.conversejs .py-sm-2{padding-bottom:.5rem!important}.conversejs .pl-sm-2,.conversejs .px-sm-2{padding-left:.5rem!important}.conversejs .p-sm-3{padding:1rem!important}.conversejs .pt-sm-3,.conversejs .py-sm-3{padding-top:1rem!important}.conversejs .pr-sm-3,.conversejs .px-sm-3{padding-right:1rem!important}.conversejs .pb-sm-3,.conversejs .py-sm-3{padding-bottom:1rem!important}.conversejs .pl-sm-3,.conversejs .px-sm-3{padding-left:1rem!important}.conversejs .p-sm-4{padding:1.5rem!important}.conversejs .pt-sm-4,.conversejs .py-sm-4{padding-top:1.5rem!important}.conversejs .pr-sm-4,.conversejs .px-sm-4{padding-right:1.5rem!important}.conversejs .pb-sm-4,.conversejs .py-sm-4{padding-bottom:1.5rem!important}.conversejs .pl-sm-4,.conversejs .px-sm-4{padding-left:1.5rem!important}.conversejs .p-sm-5{padding:3rem!important}.conversejs .pt-sm-5,.conversejs .py-sm-5{padding-top:3rem!important}.conversejs .pr-sm-5,.conversejs .px-sm-5{padding-right:3rem!important}.conversejs .pb-sm-5,.conversejs .py-sm-5{padding-bottom:3rem!important}.conversejs .pl-sm-5,.conversejs .px-sm-5{padding-left:3rem!important}.conversejs .m-sm-n1{margin:-.25rem!important}.conversejs .mt-sm-n1,.conversejs .my-sm-n1{margin-top:-.25rem!important}.conversejs .mr-sm-n1,.conversejs .mx-sm-n1{margin-right:-.25rem!important}.conversejs .mb-sm-n1,.conversejs .my-sm-n1{margin-bottom:-.25rem!important}.conversejs .ml-sm-n1,.conversejs .mx-sm-n1{margin-left:-.25rem!important}.conversejs .m-sm-n2{margin:-.5rem!important}.conversejs .mt-sm-n2,.conversejs .my-sm-n2{margin-top:-.5rem!important}.conversejs .mr-sm-n2,.conversejs .mx-sm-n2{margin-right:-.5rem!important}.conversejs .mb-sm-n2,.conversejs .my-sm-n2{margin-bottom:-.5rem!important}.conversejs .ml-sm-n2,.conversejs .mx-sm-n2{margin-left:-.5rem!important}.conversejs .m-sm-n3{margin:-1rem!important}.conversejs .mt-sm-n3,.conversejs .my-sm-n3{margin-top:-1rem!important}.conversejs .mr-sm-n3,.conversejs .mx-sm-n3{margin-right:-1rem!important}.conversejs .mb-sm-n3,.conversejs .my-sm-n3{margin-bottom:-1rem!important}.conversejs .ml-sm-n3,.conversejs .mx-sm-n3{margin-left:-1rem!important}.conversejs .m-sm-n4{margin:-1.5rem!important}.conversejs .mt-sm-n4,.conversejs .my-sm-n4{margin-top:-1.5rem!important}.conversejs .mr-sm-n4,.conversejs .mx-sm-n4{margin-right:-1.5rem!important}.conversejs .mb-sm-n4,.conversejs .my-sm-n4{margin-bottom:-1.5rem!important}.conversejs .ml-sm-n4,.conversejs .mx-sm-n4{margin-left:-1.5rem!important}.conversejs .m-sm-n5{margin:-3rem!important}.conversejs .mt-sm-n5,.conversejs .my-sm-n5{margin-top:-3rem!important}.conversejs .mr-sm-n5,.conversejs .mx-sm-n5{margin-right:-3rem!important}.conversejs .mb-sm-n5,.conversejs .my-sm-n5{margin-bottom:-3rem!important}.conversejs .ml-sm-n5,.conversejs .mx-sm-n5{margin-left:-3rem!important}.conversejs .m-sm-auto{margin:auto!important}.conversejs .mt-sm-auto,.conversejs .my-sm-auto{margin-top:auto!important}.conversejs .mr-sm-auto,.conversejs .mx-sm-auto{margin-right:auto!important}.conversejs .mb-sm-auto,.conversejs .my-sm-auto{margin-bottom:auto!important}.conversejs .ml-sm-auto,.conversejs .mx-sm-auto{margin-left:auto!important}}@media(min-width:768px){.conversejs .m-md-0{margin:0!important}.conversejs .mt-md-0,.conversejs .my-md-0{margin-top:0!important}.conversejs .mr-md-0,.conversejs .mx-md-0{margin-right:0!important}.conversejs .mb-md-0,.conversejs .my-md-0{margin-bottom:0!important}.conversejs .ml-md-0,.conversejs .mx-md-0{margin-left:0!important}.conversejs .m-md-1{margin:.25rem!important}.conversejs .mt-md-1,.conversejs .my-md-1{margin-top:.25rem!important}.conversejs .mr-md-1,.conversejs .mx-md-1{margin-right:.25rem!important}.conversejs .mb-md-1,.conversejs .my-md-1{margin-bottom:.25rem!important}.conversejs .ml-md-1,.conversejs .mx-md-1{margin-left:.25rem!important}.conversejs .m-md-2{margin:.5rem!important}.conversejs .mt-md-2,.conversejs .my-md-2{margin-top:.5rem!important}.conversejs .mr-md-2,.conversejs .mx-md-2{margin-right:.5rem!important}.conversejs .mb-md-2,.conversejs .my-md-2{margin-bottom:.5rem!important}.conversejs .ml-md-2,.conversejs .mx-md-2{margin-left:.5rem!important}.conversejs .m-md-3{margin:1rem!important}.conversejs .mt-md-3,.conversejs .my-md-3{margin-top:1rem!important}.conversejs .mr-md-3,.conversejs .mx-md-3{margin-right:1rem!important}.conversejs .mb-md-3,.conversejs .my-md-3{margin-bottom:1rem!important}.conversejs .ml-md-3,.conversejs .mx-md-3{margin-left:1rem!important}.conversejs .m-md-4{margin:1.5rem!important}.conversejs .mt-md-4,.conversejs .my-md-4{margin-top:1.5rem!important}.conversejs .mr-md-4,.conversejs .mx-md-4{margin-right:1.5rem!important}.conversejs .mb-md-4,.conversejs .my-md-4{margin-bottom:1.5rem!important}.conversejs .ml-md-4,.conversejs .mx-md-4{margin-left:1.5rem!important}.conversejs .m-md-5{margin:3rem!important}.conversejs .mt-md-5,.conversejs .my-md-5{margin-top:3rem!important}.conversejs .mr-md-5,.conversejs .mx-md-5{margin-right:3rem!important}.conversejs .mb-md-5,.conversejs .my-md-5{margin-bottom:3rem!important}.conversejs .ml-md-5,.conversejs .mx-md-5{margin-left:3rem!important}.conversejs .p-md-0{padding:0!important}.conversejs .pt-md-0,.conversejs .py-md-0{padding-top:0!important}.conversejs .pr-md-0,.conversejs .px-md-0{padding-right:0!important}.conversejs .pb-md-0,.conversejs .py-md-0{padding-bottom:0!important}.conversejs .pl-md-0,.conversejs .px-md-0{padding-left:0!important}.conversejs .p-md-1{padding:.25rem!important}.conversejs .pt-md-1,.conversejs .py-md-1{padding-top:.25rem!important}.conversejs .pr-md-1,.conversejs .px-md-1{padding-right:.25rem!important}.conversejs .pb-md-1,.conversejs .py-md-1{padding-bottom:.25rem!important}.conversejs .pl-md-1,.conversejs .px-md-1{padding-left:.25rem!important}.conversejs .p-md-2{padding:.5rem!important}.conversejs .pt-md-2,.conversejs .py-md-2{padding-top:.5rem!important}.conversejs .pr-md-2,.conversejs .px-md-2{padding-right:.5rem!important}.conversejs .pb-md-2,.conversejs .py-md-2{padding-bottom:.5rem!important}.conversejs .pl-md-2,.conversejs .px-md-2{padding-left:.5rem!important}.conversejs .p-md-3{padding:1rem!important}.conversejs .pt-md-3,.conversejs .py-md-3{padding-top:1rem!important}.conversejs .pr-md-3,.conversejs .px-md-3{padding-right:1rem!important}.conversejs .pb-md-3,.conversejs .py-md-3{padding-bottom:1rem!important}.conversejs .pl-md-3,.conversejs .px-md-3{padding-left:1rem!important}.conversejs .p-md-4{padding:1.5rem!important}.conversejs .pt-md-4,.conversejs .py-md-4{padding-top:1.5rem!important}.conversejs .pr-md-4,.conversejs .px-md-4{padding-right:1.5rem!important}.conversejs .pb-md-4,.conversejs .py-md-4{padding-bottom:1.5rem!important}.conversejs .pl-md-4,.conversejs .px-md-4{padding-left:1.5rem!important}.conversejs .p-md-5{padding:3rem!important}.conversejs .pt-md-5,.conversejs .py-md-5{padding-top:3rem!important}.conversejs .pr-md-5,.conversejs .px-md-5{padding-right:3rem!important}.conversejs .pb-md-5,.conversejs .py-md-5{padding-bottom:3rem!important}.conversejs .pl-md-5,.conversejs .px-md-5{padding-left:3rem!important}.conversejs .m-md-n1{margin:-.25rem!important}.conversejs .mt-md-n1,.conversejs .my-md-n1{margin-top:-.25rem!important}.conversejs .mr-md-n1,.conversejs .mx-md-n1{margin-right:-.25rem!important}.conversejs .mb-md-n1,.conversejs .my-md-n1{margin-bottom:-.25rem!important}.conversejs .ml-md-n1,.conversejs .mx-md-n1{margin-left:-.25rem!important}.conversejs .m-md-n2{margin:-.5rem!important}.conversejs .mt-md-n2,.conversejs .my-md-n2{margin-top:-.5rem!important}.conversejs .mr-md-n2,.conversejs .mx-md-n2{margin-right:-.5rem!important}.conversejs .mb-md-n2,.conversejs .my-md-n2{margin-bottom:-.5rem!important}.conversejs .ml-md-n2,.conversejs .mx-md-n2{margin-left:-.5rem!important}.conversejs .m-md-n3{margin:-1rem!important}.conversejs .mt-md-n3,.conversejs .my-md-n3{margin-top:-1rem!important}.conversejs .mr-md-n3,.conversejs .mx-md-n3{margin-right:-1rem!important}.conversejs .mb-md-n3,.conversejs .my-md-n3{margin-bottom:-1rem!important}.conversejs .ml-md-n3,.conversejs .mx-md-n3{margin-left:-1rem!important}.conversejs .m-md-n4{margin:-1.5rem!important}.conversejs .mt-md-n4,.conversejs .my-md-n4{margin-top:-1.5rem!important}.conversejs .mr-md-n4,.conversejs .mx-md-n4{margin-right:-1.5rem!important}.conversejs .mb-md-n4,.conversejs .my-md-n4{margin-bottom:-1.5rem!important}.conversejs .ml-md-n4,.conversejs .mx-md-n4{margin-left:-1.5rem!important}.conversejs .m-md-n5{margin:-3rem!important}.conversejs .mt-md-n5,.conversejs .my-md-n5{margin-top:-3rem!important}.conversejs .mr-md-n5,.conversejs .mx-md-n5{margin-right:-3rem!important}.conversejs .mb-md-n5,.conversejs .my-md-n5{margin-bottom:-3rem!important}.conversejs .ml-md-n5,.conversejs .mx-md-n5{margin-left:-3rem!important}.conversejs .m-md-auto{margin:auto!important}.conversejs .mt-md-auto,.conversejs .my-md-auto{margin-top:auto!important}.conversejs .mr-md-auto,.conversejs .mx-md-auto{margin-right:auto!important}.conversejs .mb-md-auto,.conversejs .my-md-auto{margin-bottom:auto!important}.conversejs .ml-md-auto,.conversejs .mx-md-auto{margin-left:auto!important}}@media(min-width:992px){.conversejs .m-lg-0{margin:0!important}.conversejs .mt-lg-0,.conversejs .my-lg-0{margin-top:0!important}.conversejs .mr-lg-0,.conversejs .mx-lg-0{margin-right:0!important}.conversejs .mb-lg-0,.conversejs .my-lg-0{margin-bottom:0!important}.conversejs .ml-lg-0,.conversejs .mx-lg-0{margin-left:0!important}.conversejs .m-lg-1{margin:.25rem!important}.conversejs .mt-lg-1,.conversejs .my-lg-1{margin-top:.25rem!important}.conversejs .mr-lg-1,.conversejs .mx-lg-1{margin-right:.25rem!important}.conversejs .mb-lg-1,.conversejs .my-lg-1{margin-bottom:.25rem!important}.conversejs .ml-lg-1,.conversejs .mx-lg-1{margin-left:.25rem!important}.conversejs .m-lg-2{margin:.5rem!important}.conversejs .mt-lg-2,.conversejs .my-lg-2{margin-top:.5rem!important}.conversejs .mr-lg-2,.conversejs .mx-lg-2{margin-right:.5rem!important}.conversejs .mb-lg-2,.conversejs .my-lg-2{margin-bottom:.5rem!important}.conversejs .ml-lg-2,.conversejs .mx-lg-2{margin-left:.5rem!important}.conversejs .m-lg-3{margin:1rem!important}.conversejs .mt-lg-3,.conversejs .my-lg-3{margin-top:1rem!important}.conversejs .mr-lg-3,.conversejs .mx-lg-3{margin-right:1rem!important}.conversejs .mb-lg-3,.conversejs .my-lg-3{margin-bottom:1rem!important}.conversejs .ml-lg-3,.conversejs .mx-lg-3{margin-left:1rem!important}.conversejs .m-lg-4{margin:1.5rem!important}.conversejs .mt-lg-4,.conversejs .my-lg-4{margin-top:1.5rem!important}.conversejs .mr-lg-4,.conversejs .mx-lg-4{margin-right:1.5rem!important}.conversejs .mb-lg-4,.conversejs .my-lg-4{margin-bottom:1.5rem!important}.conversejs .ml-lg-4,.conversejs .mx-lg-4{margin-left:1.5rem!important}.conversejs .m-lg-5{margin:3rem!important}.conversejs .mt-lg-5,.conversejs .my-lg-5{margin-top:3rem!important}.conversejs .mr-lg-5,.conversejs .mx-lg-5{margin-right:3rem!important}.conversejs .mb-lg-5,.conversejs .my-lg-5{margin-bottom:3rem!important}.conversejs .ml-lg-5,.conversejs .mx-lg-5{margin-left:3rem!important}.conversejs .p-lg-0{padding:0!important}.conversejs .pt-lg-0,.conversejs .py-lg-0{padding-top:0!important}.conversejs .pr-lg-0,.conversejs .px-lg-0{padding-right:0!important}.conversejs .pb-lg-0,.conversejs .py-lg-0{padding-bottom:0!important}.conversejs .pl-lg-0,.conversejs .px-lg-0{padding-left:0!important}.conversejs .p-lg-1{padding:.25rem!important}.conversejs .pt-lg-1,.conversejs .py-lg-1{padding-top:.25rem!important}.conversejs .pr-lg-1,.conversejs .px-lg-1{padding-right:.25rem!important}.conversejs .pb-lg-1,.conversejs .py-lg-1{padding-bottom:.25rem!important}.conversejs .pl-lg-1,.conversejs .px-lg-1{padding-left:.25rem!important}.conversejs .p-lg-2{padding:.5rem!important}.conversejs .pt-lg-2,.conversejs .py-lg-2{padding-top:.5rem!important}.conversejs .pr-lg-2,.conversejs .px-lg-2{padding-right:.5rem!important}.conversejs .pb-lg-2,.conversejs .py-lg-2{padding-bottom:.5rem!important}.conversejs .pl-lg-2,.conversejs .px-lg-2{padding-left:.5rem!important}.conversejs .p-lg-3{padding:1rem!important}.conversejs .pt-lg-3,.conversejs .py-lg-3{padding-top:1rem!important}.conversejs .pr-lg-3,.conversejs .px-lg-3{padding-right:1rem!important}.conversejs .pb-lg-3,.conversejs .py-lg-3{padding-bottom:1rem!important}.conversejs .pl-lg-3,.conversejs .px-lg-3{padding-left:1rem!important}.conversejs .p-lg-4{padding:1.5rem!important}.conversejs .pt-lg-4,.conversejs .py-lg-4{padding-top:1.5rem!important}.conversejs .pr-lg-4,.conversejs .px-lg-4{padding-right:1.5rem!important}.conversejs .pb-lg-4,.conversejs .py-lg-4{padding-bottom:1.5rem!important}.conversejs .pl-lg-4,.conversejs .px-lg-4{padding-left:1.5rem!important}.conversejs .p-lg-5{padding:3rem!important}.conversejs .pt-lg-5,.conversejs .py-lg-5{padding-top:3rem!important}.conversejs .pr-lg-5,.conversejs .px-lg-5{padding-right:3rem!important}.conversejs .pb-lg-5,.conversejs .py-lg-5{padding-bottom:3rem!important}.conversejs .pl-lg-5,.conversejs .px-lg-5{padding-left:3rem!important}.conversejs .m-lg-n1{margin:-.25rem!important}.conversejs .mt-lg-n1,.conversejs .my-lg-n1{margin-top:-.25rem!important}.conversejs .mr-lg-n1,.conversejs .mx-lg-n1{margin-right:-.25rem!important}.conversejs .mb-lg-n1,.conversejs .my-lg-n1{margin-bottom:-.25rem!important}.conversejs .ml-lg-n1,.conversejs .mx-lg-n1{margin-left:-.25rem!important}.conversejs .m-lg-n2{margin:-.5rem!important}.conversejs .mt-lg-n2,.conversejs .my-lg-n2{margin-top:-.5rem!important}.conversejs .mr-lg-n2,.conversejs .mx-lg-n2{margin-right:-.5rem!important}.conversejs .mb-lg-n2,.conversejs .my-lg-n2{margin-bottom:-.5rem!important}.conversejs .ml-lg-n2,.conversejs .mx-lg-n2{margin-left:-.5rem!important}.conversejs .m-lg-n3{margin:-1rem!important}.conversejs .mt-lg-n3,.conversejs .my-lg-n3{margin-top:-1rem!important}.conversejs .mr-lg-n3,.conversejs .mx-lg-n3{margin-right:-1rem!important}.conversejs .mb-lg-n3,.conversejs .my-lg-n3{margin-bottom:-1rem!important}.conversejs .ml-lg-n3,.conversejs .mx-lg-n3{margin-left:-1rem!important}.conversejs .m-lg-n4{margin:-1.5rem!important}.conversejs .mt-lg-n4,.conversejs .my-lg-n4{margin-top:-1.5rem!important}.conversejs .mr-lg-n4,.conversejs .mx-lg-n4{margin-right:-1.5rem!important}.conversejs .mb-lg-n4,.conversejs .my-lg-n4{margin-bottom:-1.5rem!important}.conversejs .ml-lg-n4,.conversejs .mx-lg-n4{margin-left:-1.5rem!important}.conversejs .m-lg-n5{margin:-3rem!important}.conversejs .mt-lg-n5,.conversejs .my-lg-n5{margin-top:-3rem!important}.conversejs .mr-lg-n5,.conversejs .mx-lg-n5{margin-right:-3rem!important}.conversejs .mb-lg-n5,.conversejs .my-lg-n5{margin-bottom:-3rem!important}.conversejs .ml-lg-n5,.conversejs .mx-lg-n5{margin-left:-3rem!important}.conversejs .m-lg-auto{margin:auto!important}.conversejs .mt-lg-auto,.conversejs .my-lg-auto{margin-top:auto!important}.conversejs .mr-lg-auto,.conversejs .mx-lg-auto{margin-right:auto!important}.conversejs .mb-lg-auto,.conversejs .my-lg-auto{margin-bottom:auto!important}.conversejs .ml-lg-auto,.conversejs .mx-lg-auto{margin-left:auto!important}}@media(min-width:1200px){.conversejs .m-xl-0{margin:0!important}.conversejs .mt-xl-0,.conversejs .my-xl-0{margin-top:0!important}.conversejs .mr-xl-0,.conversejs .mx-xl-0{margin-right:0!important}.conversejs .mb-xl-0,.conversejs .my-xl-0{margin-bottom:0!important}.conversejs .ml-xl-0,.conversejs .mx-xl-0{margin-left:0!important}.conversejs .m-xl-1{margin:.25rem!important}.conversejs .mt-xl-1,.conversejs .my-xl-1{margin-top:.25rem!important}.conversejs .mr-xl-1,.conversejs .mx-xl-1{margin-right:.25rem!important}.conversejs .mb-xl-1,.conversejs .my-xl-1{margin-bottom:.25rem!important}.conversejs .ml-xl-1,.conversejs .mx-xl-1{margin-left:.25rem!important}.conversejs .m-xl-2{margin:.5rem!important}.conversejs .mt-xl-2,.conversejs .my-xl-2{margin-top:.5rem!important}.conversejs .mr-xl-2,.conversejs .mx-xl-2{margin-right:.5rem!important}.conversejs .mb-xl-2,.conversejs .my-xl-2{margin-bottom:.5rem!important}.conversejs .ml-xl-2,.conversejs .mx-xl-2{margin-left:.5rem!important}.conversejs .m-xl-3{margin:1rem!important}.conversejs .mt-xl-3,.conversejs .my-xl-3{margin-top:1rem!important}.conversejs .mr-xl-3,.conversejs .mx-xl-3{margin-right:1rem!important}.conversejs .mb-xl-3,.conversejs .my-xl-3{margin-bottom:1rem!important}.conversejs .ml-xl-3,.conversejs .mx-xl-3{margin-left:1rem!important}.conversejs .m-xl-4{margin:1.5rem!important}.conversejs .mt-xl-4,.conversejs .my-xl-4{margin-top:1.5rem!important}.conversejs .mr-xl-4,.conversejs .mx-xl-4{margin-right:1.5rem!important}.conversejs .mb-xl-4,.conversejs .my-xl-4{margin-bottom:1.5rem!important}.conversejs .ml-xl-4,.conversejs .mx-xl-4{margin-left:1.5rem!important}.conversejs .m-xl-5{margin:3rem!important}.conversejs .mt-xl-5,.conversejs .my-xl-5{margin-top:3rem!important}.conversejs .mr-xl-5,.conversejs .mx-xl-5{margin-right:3rem!important}.conversejs .mb-xl-5,.conversejs .my-xl-5{margin-bottom:3rem!important}.conversejs .ml-xl-5,.conversejs .mx-xl-5{margin-left:3rem!important}.conversejs .p-xl-0{padding:0!important}.conversejs .pt-xl-0,.conversejs .py-xl-0{padding-top:0!important}.conversejs .pr-xl-0,.conversejs .px-xl-0{padding-right:0!important}.conversejs .pb-xl-0,.conversejs .py-xl-0{padding-bottom:0!important}.conversejs .pl-xl-0,.conversejs .px-xl-0{padding-left:0!important}.conversejs .p-xl-1{padding:.25rem!important}.conversejs .pt-xl-1,.conversejs .py-xl-1{padding-top:.25rem!important}.conversejs .pr-xl-1,.conversejs .px-xl-1{padding-right:.25rem!important}.conversejs .pb-xl-1,.conversejs .py-xl-1{padding-bottom:.25rem!important}.conversejs .pl-xl-1,.conversejs .px-xl-1{padding-left:.25rem!important}.conversejs .p-xl-2{padding:.5rem!important}.conversejs .pt-xl-2,.conversejs .py-xl-2{padding-top:.5rem!important}.conversejs .pr-xl-2,.conversejs .px-xl-2{padding-right:.5rem!important}.conversejs .pb-xl-2,.conversejs .py-xl-2{padding-bottom:.5rem!important}.conversejs .pl-xl-2,.conversejs .px-xl-2{padding-left:.5rem!important}.conversejs .p-xl-3{padding:1rem!important}.conversejs .pt-xl-3,.conversejs .py-xl-3{padding-top:1rem!important}.conversejs .pr-xl-3,.conversejs .px-xl-3{padding-right:1rem!important}.conversejs .pb-xl-3,.conversejs .py-xl-3{padding-bottom:1rem!important}.conversejs .pl-xl-3,.conversejs .px-xl-3{padding-left:1rem!important}.conversejs .p-xl-4{padding:1.5rem!important}.conversejs .pt-xl-4,.conversejs .py-xl-4{padding-top:1.5rem!important}.conversejs .pr-xl-4,.conversejs .px-xl-4{padding-right:1.5rem!important}.conversejs .pb-xl-4,.conversejs .py-xl-4{padding-bottom:1.5rem!important}.conversejs .pl-xl-4,.conversejs .px-xl-4{padding-left:1.5rem!important}.conversejs .p-xl-5{padding:3rem!important}.conversejs .pt-xl-5,.conversejs .py-xl-5{padding-top:3rem!important}.conversejs .pr-xl-5,.conversejs .px-xl-5{padding-right:3rem!important}.conversejs .pb-xl-5,.conversejs .py-xl-5{padding-bottom:3rem!important}.conversejs .pl-xl-5,.conversejs .px-xl-5{padding-left:3rem!important}.conversejs .m-xl-n1{margin:-.25rem!important}.conversejs .mt-xl-n1,.conversejs .my-xl-n1{margin-top:-.25rem!important}.conversejs .mr-xl-n1,.conversejs .mx-xl-n1{margin-right:-.25rem!important}.conversejs .mb-xl-n1,.conversejs .my-xl-n1{margin-bottom:-.25rem!important}.conversejs .ml-xl-n1,.conversejs .mx-xl-n1{margin-left:-.25rem!important}.conversejs .m-xl-n2{margin:-.5rem!important}.conversejs .mt-xl-n2,.conversejs .my-xl-n2{margin-top:-.5rem!important}.conversejs .mr-xl-n2,.conversejs .mx-xl-n2{margin-right:-.5rem!important}.conversejs .mb-xl-n2,.conversejs .my-xl-n2{margin-bottom:-.5rem!important}.conversejs .ml-xl-n2,.conversejs .mx-xl-n2{margin-left:-.5rem!important}.conversejs .m-xl-n3{margin:-1rem!important}.conversejs .mt-xl-n3,.conversejs .my-xl-n3{margin-top:-1rem!important}.conversejs .mr-xl-n3,.conversejs .mx-xl-n3{margin-right:-1rem!important}.conversejs .mb-xl-n3,.conversejs .my-xl-n3{margin-bottom:-1rem!important}.conversejs .ml-xl-n3,.conversejs .mx-xl-n3{margin-left:-1rem!important}.conversejs .m-xl-n4{margin:-1.5rem!important}.conversejs .mt-xl-n4,.conversejs .my-xl-n4{margin-top:-1.5rem!important}.conversejs .mr-xl-n4,.conversejs .mx-xl-n4{margin-right:-1.5rem!important}.conversejs .mb-xl-n4,.conversejs .my-xl-n4{margin-bottom:-1.5rem!important}.conversejs .ml-xl-n4,.conversejs .mx-xl-n4{margin-left:-1.5rem!important}.conversejs .m-xl-n5{margin:-3rem!important}.conversejs .mt-xl-n5,.conversejs .my-xl-n5{margin-top:-3rem!important}.conversejs .mr-xl-n5,.conversejs .mx-xl-n5{margin-right:-3rem!important}.conversejs .mb-xl-n5,.conversejs .my-xl-n5{margin-bottom:-3rem!important}.conversejs .ml-xl-n5,.conversejs .mx-xl-n5{margin-left:-3rem!important}.conversejs .m-xl-auto{margin:auto!important}.conversejs .mt-xl-auto,.conversejs .my-xl-auto{margin-top:auto!important}.conversejs .mr-xl-auto,.conversejs .mx-xl-auto{margin-right:auto!important}.conversejs .mb-xl-auto,.conversejs .my-xl-auto{margin-bottom:auto!important}.conversejs .ml-xl-auto,.conversejs .mx-xl-auto{margin-left:auto!important}}.conversejs .stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.conversejs .text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.conversejs .text-justify{text-align:justify!important}.conversejs .text-wrap{white-space:normal!important}.conversejs .text-nowrap{white-space:nowrap!important}.conversejs .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs .text-left{text-align:left!important}.conversejs .text-right{text-align:right!important}.conversejs .text-center{text-align:center!important}@media(min-width:576px){.conversejs .text-sm-left{text-align:left!important}.conversejs .text-sm-right{text-align:right!important}.conversejs .text-sm-center{text-align:center!important}}@media(min-width:768px){.conversejs .text-md-left{text-align:left!important}.conversejs .text-md-right{text-align:right!important}.conversejs .text-md-center{text-align:center!important}}@media(min-width:992px){.conversejs .text-lg-left{text-align:left!important}.conversejs .text-lg-right{text-align:right!important}.conversejs .text-lg-center{text-align:center!important}}@media(min-width:1200px){.conversejs .text-xl-left{text-align:left!important}.conversejs .text-xl-right{text-align:right!important}.conversejs .text-xl-center{text-align:center!important}}.conversejs .text-lowercase{text-transform:lowercase!important}.conversejs .text-uppercase{text-transform:uppercase!important}.conversejs .text-capitalize{text-transform:capitalize!important}.conversejs .font-weight-light{font-weight:300!important}.conversejs .font-weight-lighter{font-weight:lighter!important}.conversejs .font-weight-normal{font-weight:400!important}.conversejs .font-weight-bold{font-weight:700!important}.conversejs .font-weight-bolder{font-weight:bolder!important}.conversejs .font-italic{font-style:italic!important}.conversejs .text-white{color:#fff!important}.conversejs .text-primary{color:#007bff!important}.conversejs a.text-primary:focus,.conversejs a.text-primary:hover{color:#0056b3!important}.conversejs .text-secondary{color:#6c757d!important}.conversejs a.text-secondary:focus,.conversejs a.text-secondary:hover{color:#494f54!important}.conversejs .text-success{color:#28a745!important}.conversejs a.text-success:focus,.conversejs a.text-success:hover{color:#19692c!important}.conversejs .text-info{color:#17a2b8!important}.conversejs a.text-info:focus,.conversejs a.text-info:hover{color:#0f6674!important}.conversejs .text-warning{color:#ffc107!important}.conversejs a.text-warning:focus,.conversejs a.text-warning:hover{color:#ba8b00!important}.conversejs .text-danger{color:#dc3545!important}.conversejs a.text-danger:focus,.conversejs a.text-danger:hover{color:#a71d2a!important}.conversejs .text-light{color:#f8f9fa!important}.conversejs a.text-light:focus,.conversejs a.text-light:hover{color:#cbd3da!important}.conversejs .text-dark{color:#343a40!important}.conversejs a.text-dark:focus,.conversejs a.text-dark:hover{color:#121416!important}.conversejs .text-body{color:#212529!important}.conversejs .text-muted{color:#6c757d!important}.conversejs .text-black-50{color:rgba(0,0,0,.5)!important}.conversejs .text-white-50{color:rgba(255,255,255,.5)!important}.conversejs .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.conversejs .text-decoration-none{text-decoration:none!important}.conversejs .text-break{word-break:break-word!important;word-wrap:break-word!important}.conversejs .text-reset{color:inherit!important}.conversejs .visible{visibility:visible!important}.conversejs .invisible{visibility:hidden!important}.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs{bottom:0;height:100%;position:fixed;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);color:var(--text-color);font-family:var(--normal-font);font-size:var(--font-size);direction:ltr;z-index:1031}.conversejs textarea:disabled{background-color:#eee!important}.conversejs .subdued{opacity:.35}.conversejs .fit-content{width:-webkit-fit-content!important;width:-moz-fit-content!important;width:fit-content!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important}.conversejs .nopadding{padding:0!important}.conversejs .no-scrolling{overflow-x:none;overflow-y:none}.conversejs converse-brand-heading{text-align:center}.conversejs .brand-heading{display:inline-flex;flex-direction:row;align-items:flex-start;font-family:var(--branding-font);color:var(--link-color);margin-bottom:.75em}.conversejs .brand-heading .brand-name-wrapper{display:flex;white-space:nowrap;margin:auto}.conversejs .brand-heading .brand-name{color:var(--link-color);display:flex;flex-direction:column;align-items:center;margin-top:-.25em}.conversejs .brand-heading .brand-name .byline{font-family:var(--heading-font);font-size:.3em;margin-bottom:.75em;margin-left:-2.7em;opacity:.55;word-spacing:5px}.conversejs .brand-heading .brand-subtitle{color:var(--text-color)}.conversejs .brand-heading .brand-name__text{font-size:120%;vertical-align:text-bottom}.conversejs .brand-heading .converse-svg-logo{color:var(--link-color);height:1.5em;margin-right:.25em;margin-bottom:-.25em}.conversejs .brand-heading .converse-svg-logo .cls-1{isolation:isolate}.conversejs .brand-heading .converse-svg-logo .cls-2{opacity:.5;mix-blend-mode:multiply}.conversejs .brand-heading .converse-svg-logo .cls-3{fill:var(--link-color)}.conversejs .brand-heading .converse-svg-logo .cls-4{fill:var(--link-color)}.conversejs .brand-heading--inverse .converse-svg-logo{margin-bottom:0;margin-top:-.2em}.conversejs .brand-heading--inverse .byline{margin:0;font-family:var(--heading-font);font-size:.25em;opacity:.55;margin-left:-7em;word-spacing:5px}.conversejs .dropdown-item{padding:.5rem 1rem}.conversejs .dropdown-item .fa{width:1.25em;margin-right:.75rem}.conversejs .dropdown-item.selected,.conversejs .dropdown-item:active{color:#fff!important;background-color:var(--list-item-open-color)}.conversejs .dropdown-item.selected .fa,.conversejs .dropdown-item:active .fa{color:#fff!important}.conversejs .popover{position:fixed}.conversejs ::-moz-placeholder{color:var(--subdued-color)}.conversejs :-ms-input-placeholder{color:var(--subdued-color)}.conversejs ::placeholder{color:var(--subdued-color)}.conversejs ::-moz-selection{background-color:var(--highlight-color)}.conversejs ::selection{background-color:var(--highlight-color)}.conversejs ::-moz-selection{background-color:var(--highlight-color)}@media screen and (max-width:480px){.conversejs{margin:0;right:10px;left:10px;bottom:5px}}@media screen and (max-height:450px){.conversejs{margin:0;right:10px;left:10px;bottom:5px}}.conversejs ul li{height:auto}.conversejs a,.conversejs article,.conversejs aside,.conversejs audio,.conversejs blockquote,.conversejs caption,.conversejs dd,.conversejs details,.conversejs div,.conversejs dl,.conversejs dt,.conversejs em,.conversejs embed,.conversejs fieldset,.conversejs figcaption,.conversejs figure,.conversejs footer,.conversejs form,.conversejs h1,.conversejs h2,.conversejs h3,.conversejs h4,.conversejs h5,.conversejs h6,.conversejs header,.conversejs hgroup,.conversejs img,.conversejs legend,.conversejs li,.conversejs mark,.conversejs menu,.conversejs nav,.conversejs ol,.conversejs output,.conversejs p,.conversejs pre,.conversejs ruby,.conversejs section,.conversejs span,.conversejs strong,.conversejs summary,.conversejs table,.conversejs tbody,.conversejs td,.conversejs tfoot,.conversejs th,.conversejs thead,.conversejs time,.conversejs tr,.conversejs ul,.conversejs video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}.conversejs button,.conversejs input[type=button],.conversejs input[type=password],.conversejs input[type=submit],.conversejs input[type=text],.conversejs textarea{font-size:var(--font-size);min-height:0}.conversejs strong{font-weight:700}.conversejs em{font-style:italic}.conversejs ol,.conversejs ul{list-style:none}.conversejs li{height:10px}.conversejs dl,.conversejs ol,.conversejs ul{font:inherit;margin:0}.conversejs a{cursor:pointer}.conversejs a,.conversejs a:not([href]):not([tabindex]),.conversejs a:visited{text-decoration:none;color:var(--link-color);text-shadow:none;cursor:pointer}.conversejs a:hover,.conversejs a:not([href]):not([tabindex]):hover,.conversejs a:visited:hover{color:var(--link-hover-color);text-decoration:none;text-shadow:none}.conversejs a.fa,.conversejs a.far,.conversejs a.fas,.conversejs a:not([href]):not([tabindex]).fa,.conversejs a:not([href]):not([tabindex]).far,.conversejs a:not([href]):not([tabindex]).fas,.conversejs a:visited.fa,.conversejs a:visited.far,.conversejs a:visited.fas{color:var(--subdued-color)}.conversejs a.fa:hover,.conversejs a.far:hover,.conversejs a.fas:hover,.conversejs a:not([href]):not([tabindex]).fa:hover,.conversejs a:not([href]):not([tabindex]).far:hover,.conversejs a:not([href]):not([tabindex]).fas:hover,.conversejs a:visited.fa:hover,.conversejs a:visited.far:hover,.conversejs a:visited.fas:hover{color:var(--gray-color)}.conversejs svg{border-radius:var(--chatbox-border-radius)}.conversejs .fa,.conversejs .far,.conversejs .fas{color:var(--subdued-color)}.conversejs .fa:hover,.conversejs .far:hover,.conversejs .fas:hover{color:var(--gray-color)}.conversejs q{quotes:"“" "”" "‘" "’"}.conversejs q.reason{display:inline}.conversejs q:before{content:open-quote}.conversejs q:after{content:close-quote}.conversejs .helptext{font-size:var(--font-size-tiny);color:var(--text-color-lighten-15-percent)}.conversejs .selected{color:var(--link-color)!important}.conversejs .circle{border-radius:50%}.conversejs .no-text-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@keyframes colorchange-chatmessage{0%{background-color:#8dd8ae}25%{background-color:rgba(141,216,174,.75)}50%{background-color:rgba(141,216,174,.5)}75%{background-color:rgba(141,216,174,.25)}100%{background-color:transparent}}@-webkit-keyframes colorchange-chatmessage{0%{background-color:#8dd8ae}25%{background-color:rgba(141,216,174,.75)}50%{background-color:rgba(141,216,174,.5)}75%{background-color:rgba(141,216,174,.25)}100%{background-color:transparent}}@keyframes colorchange-chatmessage-muc{0%{background-color:#ffb5a2}25%{background-color:rgba(255,181,162,.75)}50%{background-color:rgba(255,181,162,.5)}75%{background-color:rgba(255,181,162,.25)}100%{background-color:transparent}}@-webkit-keyframes colorchange-chatmessage-muc{0%{background-color:#ffb5a2}25%{background-color:rgba(255,181,162,.75)}50%{background-color:rgba(255,181,162,.5)}75%{background-color:rgba(255,181,162,.25)}100%{background-color:transparent}}@keyframes fadein{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}@keyframes fadeOut{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}.conversejs .fade-in{opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease}.conversejs .visible{opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease}.conversejs .hidden{opacity:0!important;display:none!important}.conversejs .fade-out{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.conversejs .collapsed{height:0!important;overflow:hidden!important;padding:0!important}.conversejs .locked{padding-right:22px}@-webkit-keyframes spin{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(359deg)}}.conversejs .spinner{-webkit-animation:spin 2s infinite,linear;animation:spin 2s infinite,linear;width:1em;display:block;text-align:center;padding:.5em 0;font-size:24px}.conversejs .left{float:left}.conversejs .right{float:right}.conversejs .centered{text-align:center;display:block;margin:auto}.conversejs .hor_centered{width:100%;text-align:center;display:block;margin:0 auto;clear:both}.conversejs .error{color:var(--error-color)!important}.conversejs .info{color:var(--info-color)}.conversejs .reg-feedback{font-size:85%;margin-bottom:1em}.conversejs #converse-login .conn-feedback,.conversejs .reg-feedback{display:block;text-align:center;width:100%}.conversejs .avatar{border-radius:var(--avatar-border-radius);border:var(--avatar-border);background-color:var(--avatar-background-color)}.conversejs .avatar-autocomplete{margin-right:.5em;vertical-align:middle}.conversejs .activated{display:block!important}.conversejs .form-help{color:var(--subdued-color);font-size:90%}.conversejs .form-control--labeled{margin-top:.5em}.conversejs .nav-pills .nav-link.active,.conversejs .nav-pills .show>.nav-link{background-color:var(--primary-color)}@media screen and (max-width:575px){body .converse-brand{font-size:3.75em}.conversejs:not(.converse-embedded) .chatbox .chat-body{border-radius:var(--chatbox-border-radius)}.conversejs:not(.converse-embedded) .flyout{border-radius:var(--chatbox-border-radius)}}@media screen and (min-width:576px){.conversejs .offset-sm-2{margin-left:16.666667%}}@media screen and (min-width:768px){.conversejs .offset-md-2{margin-left:16.666667%}.conversejs .offset-md-3{margin-left:25%}}@media screen and (min-width:992px){.conversejs .offset-lg-2{margin-left:16.666667%}.conversejs .offset-lg-3{margin-left:25%}}@media screen and (min-width:1200px){.conversejs .offset-xl-2{margin-left:16.666667%}}@media screen and (max-height:450px){.conversejs{left:0}}.conversejs .btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .btn{transition:none}}.conversejs .btn:hover{color:#212529;text-decoration:none}.conversejs .btn.focus,.conversejs .btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .btn.disabled,.conversejs .btn:disabled{opacity:.65}.conversejs .btn:not(:disabled):not(.disabled){cursor:pointer}.conversejs a.btn.disabled,.conversejs fieldset:disabled a.btn{pointer-events:none}.conversejs .btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.conversejs .btn-primary.focus,.conversejs .btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.conversejs .btn-primary.disabled,.conversejs .btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .btn-primary:not(:disabled):not(.disabled).active,.conversejs .btn-primary:not(:disabled):not(.disabled):active,.show>.conversejs .btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.conversejs .btn-primary:not(:disabled):not(.disabled).active:focus,.conversejs .btn-primary:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.conversejs .btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.conversejs .btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.conversejs .btn-secondary.focus,.conversejs .btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.conversejs .btn-secondary.disabled,.conversejs .btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.conversejs .btn-secondary:not(:disabled):not(.disabled).active,.conversejs .btn-secondary:not(:disabled):not(.disabled):active,.show>.conversejs .btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.conversejs .btn-secondary:not(:disabled):not(.disabled).active:focus,.conversejs .btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.conversejs .btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.conversejs .btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.conversejs .btn-success.focus,.conversejs .btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.conversejs .btn-success.disabled,.conversejs .btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.conversejs .btn-success:not(:disabled):not(.disabled).active,.conversejs .btn-success:not(:disabled):not(.disabled):active,.show>.conversejs .btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.conversejs .btn-success:not(:disabled):not(.disabled).active:focus,.conversejs .btn-success:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.conversejs .btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.conversejs .btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.conversejs .btn-info.focus,.conversejs .btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.conversejs .btn-info.disabled,.conversejs .btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.conversejs .btn-info:not(:disabled):not(.disabled).active,.conversejs .btn-info:not(:disabled):not(.disabled):active,.show>.conversejs .btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.conversejs .btn-info:not(:disabled):not(.disabled).active:focus,.conversejs .btn-info:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.conversejs .btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.conversejs .btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.conversejs .btn-warning.focus,.conversejs .btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.conversejs .btn-warning.disabled,.conversejs .btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.conversejs .btn-warning:not(:disabled):not(.disabled).active,.conversejs .btn-warning:not(:disabled):not(.disabled):active,.show>.conversejs .btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.conversejs .btn-warning:not(:disabled):not(.disabled).active:focus,.conversejs .btn-warning:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.conversejs .btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.conversejs .btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.conversejs .btn-danger.focus,.conversejs .btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.conversejs .btn-danger.disabled,.conversejs .btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.conversejs .btn-danger:not(:disabled):not(.disabled).active,.conversejs .btn-danger:not(:disabled):not(.disabled):active,.show>.conversejs .btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.conversejs .btn-danger:not(:disabled):not(.disabled).active:focus,.conversejs .btn-danger:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.conversejs .btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.conversejs .btn-light.focus,.conversejs .btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.conversejs .btn-light.disabled,.conversejs .btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-light:not(:disabled):not(.disabled).active,.conversejs .btn-light:not(:disabled):not(.disabled):active,.show>.conversejs .btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.conversejs .btn-light:not(:disabled):not(.disabled).active:focus,.conversejs .btn-light:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.conversejs .btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.conversejs .btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.conversejs .btn-dark.focus,.conversejs .btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.conversejs .btn-dark.disabled,.conversejs .btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.conversejs .btn-dark:not(:disabled):not(.disabled).active,.conversejs .btn-dark:not(:disabled):not(.disabled):active,.show>.conversejs .btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.conversejs .btn-dark:not(:disabled):not(.disabled).active:focus,.conversejs .btn-dark:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.conversejs .btn-outline-primary{color:#007bff;border-color:#007bff}.conversejs .btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .btn-outline-primary.focus,.conversejs .btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.conversejs .btn-outline-primary.disabled,.conversejs .btn-outline-primary:disabled{color:#007bff;background-color:transparent}.conversejs .btn-outline-primary:not(:disabled):not(.disabled).active,.conversejs .btn-outline-primary:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .btn-outline-primary:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.conversejs .btn-outline-secondary{color:#6c757d;border-color:#6c757d}.conversejs .btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.conversejs .btn-outline-secondary.focus,.conversejs .btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.conversejs .btn-outline-secondary.disabled,.conversejs .btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.conversejs .btn-outline-secondary:not(:disabled):not(.disabled).active,.conversejs .btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.conversejs .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.conversejs .btn-outline-success{color:#28a745;border-color:#28a745}.conversejs .btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.conversejs .btn-outline-success.focus,.conversejs .btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.conversejs .btn-outline-success.disabled,.conversejs .btn-outline-success:disabled{color:#28a745;background-color:transparent}.conversejs .btn-outline-success:not(:disabled):not(.disabled).active,.conversejs .btn-outline-success:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.conversejs .btn-outline-success:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.conversejs .btn-outline-info{color:#17a2b8;border-color:#17a2b8}.conversejs .btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.conversejs .btn-outline-info.focus,.conversejs .btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.conversejs .btn-outline-info.disabled,.conversejs .btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.conversejs .btn-outline-info:not(:disabled):not(.disabled).active,.conversejs .btn-outline-info:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.conversejs .btn-outline-info:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.conversejs .btn-outline-warning{color:#ffc107;border-color:#ffc107}.conversejs .btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.conversejs .btn-outline-warning.focus,.conversejs .btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.conversejs .btn-outline-warning.disabled,.conversejs .btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.conversejs .btn-outline-warning:not(:disabled):not(.disabled).active,.conversejs .btn-outline-warning:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.conversejs .btn-outline-warning:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.conversejs .btn-outline-danger{color:#dc3545;border-color:#dc3545}.conversejs .btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.conversejs .btn-outline-danger.focus,.conversejs .btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.conversejs .btn-outline-danger.disabled,.conversejs .btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.conversejs .btn-outline-danger:not(:disabled):not(.disabled).active,.conversejs .btn-outline-danger:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.conversejs .btn-outline-danger:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.conversejs .btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-outline-light.focus,.conversejs .btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.conversejs .btn-outline-light.disabled,.conversejs .btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.conversejs .btn-outline-light:not(:disabled):not(.disabled).active,.conversejs .btn-outline-light:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-outline-light:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.conversejs .btn-outline-dark{color:#343a40;border-color:#343a40}.conversejs .btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.conversejs .btn-outline-dark.focus,.conversejs .btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.conversejs .btn-outline-dark.disabled,.conversejs .btn-outline-dark:disabled{color:#343a40;background-color:transparent}.conversejs .btn-outline-dark:not(:disabled):not(.disabled).active,.conversejs .btn-outline-dark:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.conversejs .btn-outline-dark:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.conversejs .btn-link{font-weight:400;color:#007bff;text-decoration:none}.conversejs .btn-link:hover{color:#0056b3;text-decoration:underline}.conversejs .btn-link.focus,.conversejs .btn-link:focus{text-decoration:underline}.conversejs .btn-link.disabled,.conversejs .btn-link:disabled{color:#6c757d;pointer-events:none}.conversejs .btn-group-lg>.btn,.conversejs .btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.conversejs .btn-group-sm>.btn,.conversejs .btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.conversejs .btn-block{display:block;width:100%}.conversejs .btn-block+.btn-block{margin-top:.5rem}.conversejs input[type=button].btn-block,.conversejs input[type=reset].btn-block,.conversejs input[type=submit].btn-block{width:100%}.conversejs .btn-group,.conversejs .btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.conversejs .btn-group-vertical>.btn,.conversejs .btn-group>.btn{position:relative;flex:1 1 auto}.conversejs .btn-group-vertical>.btn:hover,.conversejs .btn-group>.btn:hover{z-index:1}.conversejs .btn-group-vertical>.btn.active,.conversejs .btn-group-vertical>.btn:active,.conversejs .btn-group-vertical>.btn:focus,.conversejs .btn-group>.btn.active,.conversejs .btn-group>.btn:active,.conversejs .btn-group>.btn:focus{z-index:1}.conversejs .btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.conversejs .btn-toolbar .input-group{width:auto}.conversejs .btn-group>.btn-group:not(:first-child),.conversejs .btn-group>.btn:not(:first-child){margin-left:-1px}.conversejs .btn-group>.btn-group:not(:last-child)>.btn,.conversejs .btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .btn-group>.btn-group:not(:first-child)>.btn,.conversejs .btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.conversejs .dropdown-toggle-split::after,.dropright .conversejs .dropdown-toggle-split::after,.dropup .conversejs .dropdown-toggle-split::after{margin-left:0}.dropleft .conversejs .dropdown-toggle-split::before{margin-right:0}.conversejs .btn-group-sm>.btn+.dropdown-toggle-split,.conversejs .btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.conversejs .btn-group-lg>.btn+.dropdown-toggle-split,.conversejs .btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.conversejs .btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.conversejs .btn-group-vertical>.btn,.conversejs .btn-group-vertical>.btn-group{width:100%}.conversejs .btn-group-vertical>.btn-group:not(:first-child),.conversejs .btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.conversejs .btn-group-vertical>.btn-group:not(:last-child)>.btn,.conversejs .btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.conversejs .btn-group-vertical>.btn-group:not(:first-child)>.btn,.conversejs .btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.conversejs .btn-group-toggle>.btn,.conversejs .btn-group-toggle>.btn-group>.btn{margin-bottom:0}.conversejs .btn-group-toggle>.btn input[type=checkbox],.conversejs .btn-group-toggle>.btn input[type=radio],.conversejs .btn-group-toggle>.btn-group>.btn input[type=checkbox],.conversejs .btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.conversejs .btn{font-weight:400;color:#fff}.conversejs .btn .fa,.conversejs .btn .far,.conversejs .btn .fas{color:#fff;margin-right:.5em}.conversejs .btn .fa.only-icon,.conversejs .btn .far.only-icon,.conversejs .btn .fas.only-icon{margin-right:0}.conversejs .btn-primary{background-color:var(--primary-color);border-color:transparent}.conversejs .btn-primary:active,.conversejs .btn-primary:focus,.conversejs .btn-primary:hover{background-color:var(--primary-color-dark)!important;border-color:transparent!important}.conversejs .btn--transparent{background:0 0;border:none}.conversejs .btn-circle{width:30px;height:30px;text-align:center;padding:.5em 0;font-size:var(--font-size-small);line-height:1.428571429;border-radius:50%}.conversejs .btn.fa{color:#fff!important}.conversejs .badge-info,.conversejs .btn-info{background-color:var(--primary-color);border-color:var(--primary-color)}.conversejs .badge-info:hover,.conversejs .btn-info:hover{background-color:var(--primary-color-dark);border-color:var(--primary-color-dark)}.conversejs .badge-secondary,.conversejs .btn-secondary,.conversejs .button-cancel{color:#fff;background-color:var(--secondary-color);border-color:var(--secondary-color)}.conversejs .badge-secondary:hover,.conversejs .btn-secondary:hover,.conversejs .button-cancel:hover{background-color:var(--secondary-color-dark);border-color:var(--secondary-color-dark)}.conversejs .btn-warning{color:#fff;background-color:var(--warning-color);border-color:var(--warning-color)}.conversejs .btn-warning:hover{color:#fff;background-color:var(--warning-color-dark);border-color:var(--warning-color-dark)}.conversejs .btn-danger{color:#fff;background-color:var(--danger-color);border-color:var(--danger-color)!important}.conversejs .btn-danger:hover{background-color:var(--danger-color-dark);border-color:var(--danger-color-dark)}.conversejs .badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .badge{transition:none}}a.conversejs .badge:focus,a.conversejs .badge:hover{text-decoration:none}.conversejs .badge:empty{display:none}.conversejs .btn .badge{position:relative;top:-1px}.conversejs .badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.conversejs .badge-primary{color:#fff;background-color:#007bff}a.conversejs .badge-primary:focus,a.conversejs .badge-primary:hover{color:#fff;background-color:#0062cc}a.conversejs .badge-primary.focus,a.conversejs .badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.conversejs .badge-secondary{color:#fff;background-color:#6c757d}a.conversejs .badge-secondary:focus,a.conversejs .badge-secondary:hover{color:#fff;background-color:#545b62}a.conversejs .badge-secondary.focus,a.conversejs .badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.conversejs .badge-success{color:#fff;background-color:#28a745}a.conversejs .badge-success:focus,a.conversejs .badge-success:hover{color:#fff;background-color:#1e7e34}a.conversejs .badge-success.focus,a.conversejs .badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.conversejs .badge-info{color:#fff;background-color:#17a2b8}a.conversejs .badge-info:focus,a.conversejs .badge-info:hover{color:#fff;background-color:#117a8b}a.conversejs .badge-info.focus,a.conversejs .badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.conversejs .badge-warning{color:#212529;background-color:#ffc107}a.conversejs .badge-warning:focus,a.conversejs .badge-warning:hover{color:#212529;background-color:#d39e00}a.conversejs .badge-warning.focus,a.conversejs .badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.conversejs .badge-danger{color:#fff;background-color:#dc3545}a.conversejs .badge-danger:focus,a.conversejs .badge-danger:hover{color:#fff;background-color:#bd2130}a.conversejs .badge-danger.focus,a.conversejs .badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.conversejs .badge-light{color:#212529;background-color:#f8f9fa}a.conversejs .badge-light:focus,a.conversejs .badge-light:hover{color:#212529;background-color:#dae0e5}a.conversejs .badge-light.focus,a.conversejs .badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.conversejs .badge-dark{color:#fff;background-color:#343a40}a.conversejs .badge-dark:focus,a.conversejs .badge-dark:hover{color:#fff;background-color:#1d2124}a.conversejs .badge-dark.focus,a.conversejs .badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.conversejs .badge{color:#fff;font-size:90%;font-weight:400;line-height:1;text-shadow:none}.conversejs .badge-light{color:var(--text-color)}.conversejs .badge-primary{background-color:var(--primary-color);border-color:transparent}.conversejs .badge-primary:active,.conversejs .badge-primary:focus,.conversejs .badge-primary:hover{background-color:var(--primary-color-dark)!important;border-color:transparent!important}.conversejs .badge-info{background-color:var(--primary-color);border-color:var(--primary-color)}.conversejs .badge-info:hover{background-color:var(--primary-color-dark);border-color:var(--primary-color-dark)}.conversejs .badge-secondary{color:#fff;background-color:var(--secondary-color);border-color:var(--secondary-color)}.conversejs .badge-secondary:hover{background-color:var(--secondary-color-dark);border-color:var(--secondary-color-dark)}.conversejs .form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .form-control{transition:none}}.conversejs .form-control::-ms-expand{background-color:transparent;border:0}.conversejs .form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.conversejs .form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .form-control::-moz-placeholder{color:#6c757d;opacity:1}.conversejs .form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.conversejs .form-control::placeholder{color:#6c757d;opacity:1}.conversejs .form-control:disabled,.conversejs .form-control[readonly]{background-color:#e9ecef;opacity:1}.conversejs input[type=date].form-control,.conversejs input[type=datetime-local].form-control,.conversejs input[type=month].form-control,.conversejs input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}.conversejs select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.conversejs .form-control-file,.conversejs .form-control-range{display:block;width:100%}.conversejs .col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.conversejs .col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.conversejs .col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.conversejs .form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.conversejs .form-control-plaintext.form-control-lg,.conversejs .form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.conversejs .form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.conversejs .form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.conversejs select.form-control[multiple],.conversejs select.form-control[size]{height:auto}.conversejs textarea.form-control{height:auto}.conversejs .form-group{margin-bottom:1rem}.conversejs .form-text{display:block;margin-top:.25rem}.conversejs .form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.conversejs .form-row>.col,.conversejs .form-row>[class*=col-]{padding-right:5px;padding-left:5px}.conversejs .form-check{position:relative;display:block;padding-left:1.25rem}.conversejs .form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.conversejs .form-check-input:disabled~.form-check-label,.conversejs .form-check-input[disabled]~.form-check-label{color:#6c757d}.conversejs .form-check-label{margin-bottom:0}.conversejs .form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.conversejs .form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.conversejs .valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.conversejs .valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.conversejs .valid-tooltip,.form-row>[class*=col-]>.conversejs .valid-tooltip{left:5px}.conversejs.is-valid~.valid-feedback,.conversejs.is-valid~.valid-tooltip,.was-validated .conversejs:valid~.valid-feedback,.was-validated .conversejs:valid~.valid-tooltip{display:block}.conversejs .form-control.is-valid,.was-validated .conversejs .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.conversejs .form-control.is-valid:focus,.was-validated .conversejs .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.conversejs textarea.form-control.is-valid,.was-validated .conversejs textarea.form-control:valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.conversejs .custom-select.is-valid,.was-validated .conversejs .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.conversejs .custom-select.is-valid:focus,.was-validated .conversejs .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.conversejs .form-check-input.is-valid~.form-check-label,.was-validated .conversejs .form-check-input:valid~.form-check-label{color:#28a745}.conversejs .form-check-input.is-valid~.valid-feedback,.conversejs .form-check-input.is-valid~.valid-tooltip,.was-validated .conversejs .form-check-input:valid~.valid-feedback,.was-validated .conversejs .form-check-input:valid~.valid-tooltip{display:block}.conversejs .custom-control-input.is-valid~.custom-control-label,.was-validated .conversejs .custom-control-input:valid~.custom-control-label{color:#28a745}.conversejs .custom-control-input.is-valid~.custom-control-label::before,.was-validated .conversejs .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.conversejs .custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .conversejs .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.conversejs .custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .conversejs .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.conversejs .custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .conversejs .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.conversejs .custom-file-input.is-valid~.custom-file-label,.was-validated .conversejs .custom-file-input:valid~.custom-file-label{border-color:#28a745}.conversejs .custom-file-input.is-valid:focus~.custom-file-label,.was-validated .conversejs .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.conversejs .invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.conversejs .invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.conversejs .invalid-tooltip,.form-row>[class*=col-]>.conversejs .invalid-tooltip{left:5px}.conversejs.is-invalid~.invalid-feedback,.conversejs.is-invalid~.invalid-tooltip,.was-validated .conversejs:invalid~.invalid-feedback,.was-validated .conversejs:invalid~.invalid-tooltip{display:block}.conversejs .form-control.is-invalid,.was-validated .conversejs .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.conversejs .form-control.is-invalid:focus,.was-validated .conversejs .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.conversejs textarea.form-control.is-invalid,.was-validated .conversejs textarea.form-control:invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.conversejs .custom-select.is-invalid,.was-validated .conversejs .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.conversejs .custom-select.is-invalid:focus,.was-validated .conversejs .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.conversejs .form-check-input.is-invalid~.form-check-label,.was-validated .conversejs .form-check-input:invalid~.form-check-label{color:#dc3545}.conversejs .form-check-input.is-invalid~.invalid-feedback,.conversejs .form-check-input.is-invalid~.invalid-tooltip,.was-validated .conversejs .form-check-input:invalid~.invalid-feedback,.was-validated .conversejs .form-check-input:invalid~.invalid-tooltip{display:block}.conversejs .custom-control-input.is-invalid~.custom-control-label,.was-validated .conversejs .custom-control-input:invalid~.custom-control-label{color:#dc3545}.conversejs .custom-control-input.is-invalid~.custom-control-label::before,.was-validated .conversejs .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.conversejs .custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .conversejs .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.conversejs .custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .conversejs .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.conversejs .custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .conversejs .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.conversejs .custom-file-input.is-invalid~.custom-file-label,.was-validated .conversejs .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.conversejs .custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .conversejs .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.conversejs .form-inline{display:flex;flex-flow:row wrap;align-items:center}.conversejs .form-inline .form-check{width:100%}@media(min-width:576px){.conversejs .form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.conversejs .form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.conversejs .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.conversejs .form-inline .form-control-plaintext{display:inline-block}.conversejs .form-inline .custom-select,.conversejs .form-inline .input-group{width:auto}.conversejs .form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.conversejs .form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.conversejs .form-inline .custom-control{align-items:center;justify-content:center}.conversejs .form-inline .custom-control-label{margin-bottom:0}}.conversejs .input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.conversejs .input-group>.custom-file,.conversejs .input-group>.custom-select,.conversejs .input-group>.form-control,.conversejs .input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.conversejs .input-group>.custom-file+.custom-file,.conversejs .input-group>.custom-file+.custom-select,.conversejs .input-group>.custom-file+.form-control,.conversejs .input-group>.custom-select+.custom-file,.conversejs .input-group>.custom-select+.custom-select,.conversejs .input-group>.custom-select+.form-control,.conversejs .input-group>.form-control+.custom-file,.conversejs .input-group>.form-control+.custom-select,.conversejs .input-group>.form-control+.form-control,.conversejs .input-group>.form-control-plaintext+.custom-file,.conversejs .input-group>.form-control-plaintext+.custom-select,.conversejs .input-group>.form-control-plaintext+.form-control{margin-left:-1px}.conversejs .input-group>.custom-file .custom-file-input:focus~.custom-file-label,.conversejs .input-group>.custom-select:focus,.conversejs .input-group>.form-control:focus{z-index:3}.conversejs .input-group>.custom-file .custom-file-input:focus{z-index:4}.conversejs .input-group>.custom-select:not(:first-child),.conversejs .input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .input-group>.custom-file{display:flex;align-items:center}.conversejs .input-group>.custom-file:not(:first-child) .custom-file-label,.conversejs .input-group>.custom-file:not(:last-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.conversejs .input-group:not(.has-validation)>.custom-select:not(:last-child),.conversejs .input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.conversejs .input-group.has-validation>.custom-select:nth-last-child(n+3),.conversejs .input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .input-group-append,.conversejs .input-group-prepend{display:flex}.conversejs .input-group-append .btn,.conversejs .input-group-prepend .btn{position:relative;z-index:2}.conversejs .input-group-append .btn:focus,.conversejs .input-group-prepend .btn:focus{z-index:3}.conversejs .input-group-append .btn+.btn,.conversejs .input-group-append .btn+.input-group-text,.conversejs .input-group-append .input-group-text+.btn,.conversejs .input-group-append .input-group-text+.input-group-text,.conversejs .input-group-prepend .btn+.btn,.conversejs .input-group-prepend .btn+.input-group-text,.conversejs .input-group-prepend .input-group-text+.btn,.conversejs .input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.conversejs .input-group-prepend{margin-right:-1px}.conversejs .input-group-append{margin-left:-1px}.conversejs .input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.conversejs .input-group-text input[type=checkbox],.conversejs .input-group-text input[type=radio]{margin-top:0}.conversejs .input-group-lg>.custom-select,.conversejs .input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.conversejs .input-group-lg>.custom-select,.conversejs .input-group-lg>.form-control,.conversejs .input-group-lg>.input-group-append>.btn,.conversejs .input-group-lg>.input-group-append>.input-group-text,.conversejs .input-group-lg>.input-group-prepend>.btn,.conversejs .input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.conversejs .input-group-sm>.custom-select,.conversejs .input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.conversejs .input-group-sm>.custom-select,.conversejs .input-group-sm>.form-control,.conversejs .input-group-sm>.input-group-append>.btn,.conversejs .input-group-sm>.input-group-append>.input-group-text,.conversejs .input-group-sm>.input-group-prepend>.btn,.conversejs .input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.conversejs .input-group-lg>.custom-select,.conversejs .input-group-sm>.custom-select{padding-right:1.75rem}.conversejs .input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.conversejs .input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.conversejs .input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.conversejs .input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.conversejs .input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.conversejs .input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.conversejs .input-group>.input-group-prepend>.btn,.conversejs .input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .input-group>.input-group-append>.btn,.conversejs .input-group>.input-group-append>.input-group-text,.conversejs .input-group>.input-group-prepend:first-child>.btn:not(:first-child),.conversejs .input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.conversejs .input-group>.input-group-prepend:not(:first-child)>.btn,.conversejs .input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.conversejs .custom-control-inline{display:inline-flex;margin-right:1rem}.conversejs .custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.conversejs .custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.conversejs .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.conversejs .custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.conversejs .custom-control-input:disabled~.custom-control-label,.conversejs .custom-control-input[disabled]~.custom-control-label{color:#6c757d}.conversejs .custom-control-input:disabled~.custom-control-label::before,.conversejs .custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.conversejs .custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.conversejs .custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.conversejs .custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.conversejs .custom-checkbox .custom-control-label::before{border-radius:.25rem}.conversejs .custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.conversejs .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.conversejs .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.conversejs .custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.conversejs .custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.conversejs .custom-radio .custom-control-label::before{border-radius:50%}.conversejs .custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.conversejs .custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.conversejs .custom-switch{padding-left:2.25rem}.conversejs .custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.conversejs .custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .custom-switch .custom-control-label::after{transition:none}}.conversejs .custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.conversejs .custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.conversejs .custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.conversejs .custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-select:focus::-ms-value{color:#495057;background-color:#fff}.conversejs .custom-select[multiple],.conversejs .custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.conversejs .custom-select:disabled{color:#6c757d;background-color:#e9ecef}.conversejs .custom-select::-ms-expand{display:none}.conversejs .custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.conversejs .custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.conversejs .custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.conversejs .custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.conversejs .custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.conversejs .custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-file-input:disabled~.custom-file-label,.conversejs .custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.conversejs .custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.conversejs .custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.conversejs .custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.conversejs .custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.conversejs .custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.conversejs .custom-range:focus{outline:0}.conversejs .custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-range::-moz-focus-outer{border:0}.conversejs .custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media(prefers-reduced-motion:reduce){.conversejs .custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.conversejs .custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.conversejs .custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.conversejs .custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media(prefers-reduced-motion:reduce){.conversejs .custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.conversejs .custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.conversejs .custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.conversejs .custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion:reduce){.conversejs .custom-range::-ms-thumb{-ms-transition:none;transition:none}}.conversejs .custom-range::-ms-thumb:active{background-color:#b3d7ff}.conversejs .custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.conversejs .custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.conversejs .custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.conversejs .custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.conversejs .custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.conversejs .custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.conversejs .custom-range:disabled::-moz-range-track{cursor:default}.conversejs .custom-range:disabled::-ms-thumb{background-color:#adb5bd}.conversejs .custom-control-label::before,.conversejs .custom-file-label,.conversejs .custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .custom-control-label::before,.conversejs .custom-file-label,.conversejs .custom-select{transition:none}}.conversejs .btn--small{font-size:80%;font-weight:400}.conversejs form .hidden-username{opacity:0!important;height:0!important;padding:0!important}.conversejs form .error-feedback{margin-bottom:.5em}.conversejs form .form-check-label{margin-top:.3rem}.conversejs form .form-control::-moz-placeholder{color:var(--subdued-color)}.conversejs form .form-control:-ms-input-placeholder{color:var(--subdued-color)}.conversejs form .form-control::placeholder{color:var(--subdued-color)}.conversejs form .clear-input{margin-top:.5em;margin-bottom:.5em;position:absolute;right:.2em;cursor:pointer;font-size:var(--font-size)}.conversejs form#converse-login,.conversejs form#converse-register{background:var(--controlbox-pane-background-color)}.conversejs form#converse-login legend,.conversejs form#converse-register legend{width:100%;text-align:center;margin:0 auto .5em auto}.conversejs form#converse-login fieldset.buttons,.conversejs form#converse-register fieldset.buttons{text-align:center}.conversejs form#converse-login .login-anon,.conversejs form#converse-register .login-anon{height:auto;white-space:normal}.conversejs form#converse-login .save-submit,.conversejs form#converse-register .save-submit{color:var(--save-button-color)}.conversejs form#converse-login .form-url,.conversejs form#converse-register .form-url{display:block;font-weight:400;margin:1em 0}.conversejs form.converse-form{padding:1.2rem}.conversejs form.converse-form legend{color:var(--text-color);font-size:125%;margin-bottom:1.5em}.conversejs form.converse-form input[type=number],.conversejs form.converse-form input[type=password],.conversejs form.converse-form input[type=text],.conversejs form.converse-form select{min-width:50%}.conversejs form.converse-form input[type=button],.conversejs form.converse-form input[type=number],.conversejs form.converse-form input[type=password],.conversejs form.converse-form input[type=submit],.conversejs form.converse-form input[type=text]{padding:.5em}.conversejs form.converse-form input[type=button],.conversejs form.converse-form input[type=submit]{padding-left:1em;padding-right:1em;border:none}.conversejs form.converse-form input.error{border:1px solid var(--error-color);color:var(--text-color)}.conversejs form.converse-form .text-muted{color:var(--subdued-color)!important;font-size:85%;padding-top:.5em}.conversejs form.converse-form .text-muted a{color:var(--link-color-lighten-10-percent)}.conversejs form.converse-form .text-muted.error{color:var(--error-color)}.conversejs form.converse-form--modal{padding-bottom:0}.conversejs form.converse-form--spinner{height:100%}.conversejs form.converse-centered-form{min-height:66%;text-align:center}.conversejs form.converse-centered-form input{max-width:30em;margin:auto}.conversejs .list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.conversejs .list-group-item-action{width:100%;color:#495057;text-align:inherit}.conversejs .list-group-item-action:focus,.conversejs .list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.conversejs .list-group-item-action:active{color:#212529;background-color:#e9ecef}.conversejs .list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.conversejs .list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.conversejs .list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.conversejs .list-group-item.disabled,.conversejs .list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.conversejs .list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .list-group-item+.conversejs .list-group-item{border-top-width:0}.conversejs .list-group-item+.conversejs .list-group-item.active{margin-top:-1px;border-top-width:1px}.conversejs .list-group-horizontal{flex-direction:row}.conversejs .list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width:576px){.conversejs .list-group-horizontal-sm{flex-direction:row}.conversejs .list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal-sm>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:768px){.conversejs .list-group-horizontal-md{flex-direction:row}.conversejs .list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal-md>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:992px){.conversejs .list-group-horizontal-lg{flex-direction:row}.conversejs .list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal-lg>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:1200px){.conversejs .list-group-horizontal-xl{flex-direction:row}.conversejs .list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal-xl>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.conversejs .list-group-flush{border-radius:0}.conversejs .list-group-flush>.list-group-item{border-width:0 0 1px}.conversejs .list-group-flush>.list-group-item:last-child{border-bottom-width:0}.conversejs .list-group-item-primary{color:#004085;background-color:#b8daff}.conversejs .list-group-item-primary.list-group-item-action:focus,.conversejs .list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.conversejs .list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.conversejs .list-group-item-secondary{color:#383d41;background-color:#d6d8db}.conversejs .list-group-item-secondary.list-group-item-action:focus,.conversejs .list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.conversejs .list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.conversejs .list-group-item-success{color:#155724;background-color:#c3e6cb}.conversejs .list-group-item-success.list-group-item-action:focus,.conversejs .list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.conversejs .list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.conversejs .list-group-item-info{color:#0c5460;background-color:#bee5eb}.conversejs .list-group-item-info.list-group-item-action:focus,.conversejs .list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.conversejs .list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.conversejs .list-group-item-warning{color:#856404;background-color:#ffeeba}.conversejs .list-group-item-warning.list-group-item-action:focus,.conversejs .list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.conversejs .list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.conversejs .list-group-item-danger{color:#721c24;background-color:#f5c6cb}.conversejs .list-group-item-danger.list-group-item-action:focus,.conversejs .list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.conversejs .list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.conversejs .list-group-item-light{color:#818182;background-color:#fdfdfe}.conversejs .list-group-item-light.list-group-item-action:focus,.conversejs .list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.conversejs .list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.conversejs .list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.conversejs .list-group-item-dark.list-group-item-action:focus,.conversejs .list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.conversejs .list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.conversejs .list-group-item.active{background-color:var(--primary-color);border-color:var(--primary-color-dark)}.conversejs .list-container{text-align:left;padding:.3em 0}.conversejs .list-container .list-toggle{font-family:var(--heading-font);font-weight:var(--list-toggle-font-weight);display:block;color:var(--list-toggle-color);padding:0 0 .5rem 0}.conversejs .list-container .list-toggle:hover{color:var(--list-toggle-hover-color)}.conversejs .items-list{text-align:left}.conversejs .items-list .list-item{border:none;clear:both;color:var(--text-color);overflow:hidden;padding:.5em 0;text-shadow:0 1px 0 var(--text-shadow-color);word-wrap:break-word;height:2.5em}.conversejs .items-list .list-item.unread-msgs{font-weight:700}.conversejs .items-list .list-item .list-item-link{color:var(--list-item-link-color);margin:auto;font-size:var(--font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:baseline}.conversejs .items-list .list-item .list-item-link:hover{color:var(--list-item-link-hover-color)}.conversejs .items-list .list-item .list-item-badge{opacity:1;border-radius:25%;color:#fff;font-size:var(--font-size-small);line-height:var(--font-size-small)}.conversejs .items-list .list-item .list-item-action{opacity:0;font-size:var(--font-size-tiny);padding:.3em 0 0 0;margin:0 0 0 var(--inline-action-margin);width:2em;height:2em;color:var(--subdued-color)}.conversejs .items-list .list-item .list-item-action:before{font-size:var(--font-size)}.conversejs .items-list .list-item .list-item-action.button-on{color:var(--list-item-link-color)}.conversejs .items-list .list-item .list-item-action.button-on:hover{color:var(--list-item-link-hover-color)}.conversejs .items-list .list-item .list-item-action:hover{color:var(--list-toggle-hover-color);opacity:1}.conversejs .items-list .list-item .list-item-action--visible{opacity:1!important}.conversejs .items-list .list-item.open{background-color:var(--list-item-open-color)}.conversejs .items-list .list-item.open:hover{background-color:var(--list-item-open-hover-color)!important}.conversejs .items-list .list-item.open a{color:#fff}.conversejs .items-list .list-item.open .list-item-link:hover{color:#fff}.conversejs .items-list .list-item.open .list-item-action{color:var(--list-item-action-color)}.conversejs .items-list .list-item.open .list-item-action:hover{color:#fff}.conversejs .items-list .list-item:hover{background-color:var(--controlbox-pane-bg-hover-color)}.conversejs .items-list .list-item:hover .fa,.conversejs .items-list .list-item:hover .far,.conversejs .items-list .list-item:hover .fas{opacity:1}.conversejs .styling-directive{color:var(--subdued-color)}.conversejs .older-msg time{font-weight:700}.conversejs .message .show-msg-author-modal{color:var(--text-color)!important}.conversejs .message blockquote{margin-left:.5em;margin-bottom:.25em;padding-right:1em;color:var(--subdued-color);border-left:.3em solid var(--subdued-color);padding-left:.5em;display:inline-block}.conversejs .message code{font-family:monospace}.conversejs .message .mention{font-weight:700}.conversejs .message .mention--self{font-weight:400}.conversejs .message.date-separator,.conversejs .message.separator{height:2em;margin:0;position:relative;text-align:center;z-index:0}.conversejs .message.date-separator .separator,.conversejs .message.separator .separator{border-top:0;border-bottom:var(--chat-separator-border-bottom);margin:0 1em;position:relative;top:1em;z-index:5}.conversejs .message.date-separator .separator-text,.conversejs .message.separator .separator-text{background:#fff;bottom:1px;color:var(--separator-text-color);display:inline-block;line-height:2em;padding:0 1em;position:relative;z-index:5}.conversejs .message.chat-msg--retracted .chat-msg__message{color:var(--subdued-color)}.conversejs .message.chat-info{color:var(--chat-head-color);font-size:var(--message-font-size);line-height:var(--line-height-small);font-size:90%;padding:.17rem 1rem}.conversejs .message.chat-info.badge{color:var(--chat-head-text-color)}.conversejs .message.chat-info.chat-state-notification{font-style:italic}.conversejs .message.chat-info.chat-event{clear:left;font-style:italic}.conversejs .message.chat-info.chat-error{color:var(--error-color);font-weight:700}.conversejs .message.chat-info .q{font-style:italic}.conversejs .message .chat-image{height:auto;width:auto;max-height:15em;max-width:100%}.conversejs .message.chat-msg--action{font-style:italic}.conversejs .message.chat-msg--action .chat-msg__author{padding-right:.2em}.conversejs .message.chat-msg{display:inline-flex;width:100%;flex-direction:row;padding:.125rem 1rem}.conversejs .message.chat-msg.onload{animation:colorchange-chatmessage 1s;-webkit-animation:colorchange-chatmessage 1s}.conversejs .message.chat-msg:hover{background-color:var(--list-item-hover-color)}.conversejs .message.chat-msg.correcting.groupchat{background-color:var(--chatroom-correcting-color)}.conversejs .message.chat-msg.correcting:not(.groupchat){background-color:var(--chat-correcting-color)}.conversejs .message.chat-msg .spoiler{margin-top:.5em}.conversejs .message.chat-msg .spoiler-hint{margin-bottom:.5em}.conversejs .message.chat-msg .spoiler-toggle{color:#fff}.conversejs .message.chat-msg .spoiler-toggle i{color:#fff;padding-right:.5em}.conversejs .message.chat-msg .spoiler-toggle:before{padding-right:.25em;whitespace:nowrap}.conversejs .message.chat-msg .chat-msg__content{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;margin-left:.5rem;width:calc(100% - var(--message-avatar-width))}.conversejs .message.chat-msg .chat-msg__content:hover .btn--standalone{opacity:1}.conversejs .message.chat-msg .chat-msg__content--me .chat-msg__body--groupchat .chat-msg__text{color:var(--subdued-color)}.conversejs .message.chat-msg .chat-msg__content--me .chat-msg__body--groupchat.chat-msg__body--delayed .chat-msg__text,.conversejs .message.chat-msg .chat-msg__content--me .chat-msg__body--groupchat.chat-msg__body--received .chat-msg__text{color:var(--message-text-color)}.conversejs .message.chat-msg .chat-msg__content--action{width:100%;margin-left:0}.conversejs .message.chat-msg .chat-msg__body{display:flex;flex-direction:row;justify-content:space-between}.conversejs .message.chat-msg converse-chat-message-body{display:inline}.conversejs .message.chat-msg .chat-msg__message{line-height:1.5em;display:inline-flex;flex-direction:column;width:100%;overflow-wrap:break-word}.conversejs .message.chat-msg .chat-msg__edit-modal{cursor:pointer;padding-right:.5em}.conversejs .message.chat-msg .chat-msg__subject{font-weight:700;clear:right}.conversejs .message.chat-msg .chat-msg__text{color:var(--message-text-color);padding:0;white-space:pre-wrap;word-wrap:break-word;word-break:break-word}.conversejs .message.chat-msg .chat-msg__text a{word-wrap:break-word;word-break:break-all;display:inline}.conversejs .message.chat-msg .chat-msg__text a.chat-image__link{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;display:block}.conversejs .message.chat-msg .chat-msg__text img.emoji{height:1.5em;width:1.5em;margin:0 .05em 0 .1em;vertical-align:-.1em}.conversejs .message.chat-msg .chat-msg__text .emojione{margin-bottom:-6px}.conversejs .message.chat-msg .chat-msg__text--larger{font-size:1.6em;padding-top:.25em;padding-bottom:.25em}.conversejs .message.chat-msg .chat-msg__error{color:var(--error-color)}.conversejs .message.chat-msg .chat-msg__media{margin-top:.25rem;word-break:break-all}.conversejs .message.chat-msg .chat-msg__media a{word-wrap:break-word}.conversejs .message.chat-msg .chat-msg__media audio{width:100%}.conversejs .message.chat-msg converse-message-actions{margin-left:.5em}.conversejs .message.chat-msg .chat-msg__actions .dropdown-menu{min-width:5rem}.conversejs .message.chat-msg .chat-msg__actions i{color:var(--text-color-lighten-15-percent);font-size:70%}.conversejs .message.chat-msg .chat-msg__actions button{border:none;background:0 0;color:var(--text-color-lighten-15-percent);padding:0 .25em}.conversejs .message.chat-msg .chat-msg__actions .btn--standalone{opacity:0;margin-top:-.2em}.conversejs .message.chat-msg .chat-msg__actions .chat-msg__action{width:100%;padding:.5em 1em;text-align:left;white-space:nowrap}.conversejs .message.chat-msg .chat-msg__actions .chat-msg__action converse-icon{margin-right:.25em}.conversejs .message.chat-msg .chat-msg__actions .chat-msg__action:hover{color:var(--text-color);background-color:var(--list-item-hover-color)}.conversejs .message.chat-msg .chat-msg__avatar{margin-top:.5em;vertical-align:middle;height:var(--message-avatar-height);width:var(--message-avatar-width);min-height:var(--message-avatar-height);min-width:var(--message-avatar-width)}.conversejs .message.chat-msg .chat-msg__author{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--heading-font);font-size:115%;font-weight:700;padding-bottom:1px}.conversejs .message.chat-msg .chat-msg__heading{width:100%;margin-top:.5em;padding-right:.25rem;padding-bottom:.25rem}.conversejs .message.chat-msg .chat-msg__heading .badge{margin-left:.5em;font-family:var(--normal_font)}.conversejs .message.chat-msg .chat-msg__heading .chat-msg__time{padding-left:.25em;padding-right:.25em;color:var(--text-color-lighten-15-percent)}.conversejs .message.chat-msg.chat-msg--action .chat-msg__message{flex-direction:row}.conversejs .message.chat-msg.chat-msg--action .chat-msg__text{width:auto}.conversejs .message.chat-msg.chat-msg--action .chat-msg__heading{margin-top:0;padding-bottom:0;width:auto}.conversejs .message.chat-msg.chat-msg--action .chat-msg__heading .fa{margin-left:.5em}.conversejs .message.chat-msg.chat-msg--action .chat-msg__author{font-size:var(--message-font-size)}.conversejs .message.chat-msg.chat-msg--action .chat-msg__time{margin-left:0}.conversejs .message.chat-msg.chat-msg--followup .chat-msg__avatar,.conversejs .message.chat-msg.chat-msg--followup .chat-msg__heading{display:none}.conversejs .message.chat-msg.chat-msg--followup.chat-msg--with-avatar .chat-msg__content{margin-left:2.75rem;width:100%}.conversejs .message.chat-msg .chat-msg__receipt{margin-left:.5em;margin-right:.5em;color:var(--message-receipt-color)}.conversejs .chatroom-body .message.onload{animation:colorchange-chatmessage-muc 1s;-webkit-animation:colorchange-chatmessage-muc 1s}.conversejs .chatroom-body .message .separator{border-top:0;border-bottom:var(--chatroom-separator-border-bottom)}.conversejs converse-chats.converse-overlayed .message.chat-msg.chat-msg--followup .chat-msg__content{margin-left:0}@media screen and (max-width:767px){converse-chats:not(.converse-embedded) .message.chat-msg .chat-msg__author{white-space:normal}}#conversejs.theme-darkbeet{--green:#25DB77;--orange:#E19823;--light-blue:#4E9CFE;--pink:#BD23E1;--beet:#360101;--beet-green:rgb(25, 68, 71);--beet-light-green:#8EB726;--beet-orig:#50162D;--blue:#4E9CFE;--darkest-grey:#232323;--red:#d33b2b;--dark-link-color:#3a3a3a;--occupants-background-color:#333;--form-background:#3b3b3b;--global-background-color:var(--darkest-grey);--redder-orange:var(--beet);--primary-color:var(--beet-orig);--primary-color-dark:var(--beet);--highlight-color-darker:var(--beet-light-green);--highlight-color:var(--beet);--headline-head-color:var(--beet-green);--text-color:#c5c5c5;--text-color-lighten-15-percent:#e9e9e9;--message-text-color:var(--text-color);--text-controlbox-color:#d9d9d9;--message-receipt-color:var(--darkest-grey);--link-color:var(--beet-light-green);--error-color:var(--danger-color-dark);--chat-textarea-color:var(--font-hover-head-color);--chat-textarea-background-color:#2c2c2c;--chat-content-background-color:#2c2c2c;--controlbox-heading-top-margin:0.75em;--inline-action-margin:0.75em;--chat-head-color:var(--beet-green);--chat-head-color-dark:#b9b9ac;--chat-head-color-darker:#e8e8e3;--chat-correcting-color:var(--beet);--chatbox-border-radius:0px;--controlbox-head-color-lighten-45-percent:#0e0e0e;--controlbox-pane-background-color:var(--darkest-grey);--font-head-color:#777;--font-hover-head-color:#c5c5c5;--chatroom-width:100%;--chatroom-correcting-color:var(--beet);--font-size-tiny:10px;--font-size-small:12px;--font-size-occupants:100%;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--chat-separator-border-bottom:2px solid var(--beet);--chatroom-separator-border-bottom:2px solid var(--beet);--message-background-color:#303030;--message-input-border-top:4px solid var(--beet);--message-mention-color:#404040;--message-mention-self-color:#AB3131;--message-separator-background-color:#2E1520;--embedded-emoji-picker-height:200px;--avatar-border-radius:50%;--fullpage-emoji-picker-height:200px;--overlayed-emoji-picker-height:100px;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--list-item-action-color);--list-item-open-color:var(--chat-content-background-color);--list-item-open-hover-color:var(--beet);--list-dot-circle-color:#f6dec1;scrollbar-color:var(--list-item-action-color) var(--beet);scrollbar-width:thin}#conversejs.theme-darkbeet ::-webkit-scrollbar{width:5px;height:5px;background-color:var(--beet)}#conversejs.theme-darkbeet ::-webkit-scrollbar-track-piece{background-color:var(--beet)}#conversejs.theme-darkbeet ::-webkit-scrollbar-thumb:vertical{height:15px;background-color:var(--list-item-action-color)}#conversejs.theme-darkbeet .scroller{width:300px;height:100px;overflow-y:scroll;scrollbar-color:var(--list-item-action-color) var(--beet)}#conversejs.theme-darkbeet #controlbox .bookmarks-toggle,#conversejs.theme-darkbeet #controlbox .bookmarks-toggle .fa{color:var(--chatroom-head-bg-color-dark)!important}#conversejs.theme-darkbeet #controlbox .bookmarks-toggle .fa:hover,#conversejs.theme-darkbeet #controlbox .bookmarks-toggle:hover{color:var(--orange)!important}#conversejs.theme-darkbeet .chatbox .chatroom .sendXMPPMessage{background-color:var(--message-background-color)}#conversejs.theme-darkbeet .chatbox .new-msgs-indicator{position:relative;width:100%;cursor:pointer;padding:.5em;font-size:.9em;text-align:center;z-index:20;white-space:nowrap;margin-bottom:.25em}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea{color:var(--chat-textarea-color);background-color:var(--chat-textarea-background-color);resize:none;margin-top:1px;padding-left:7px}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea:active,#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea:focus{outline-color:unset!important;outline:unset!important}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea.spoiler{height:42px}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea.correcting{background-color:var(--chat-textarea-background-color)}#conversejs.theme-darkbeet .chatroom .sendXMPPMessage{background-color:var(--message-background-color)}#conversejs.theme-darkbeet .chatroom .chat-textarea{color:var(--chat-textarea-color);background-color:var(--chat-textarea-background-color);resize:none;margin-top:1px;padding-left:7px}#conversejs.theme-darkbeet .chatroom .chat-textarea.correcting{background-color:var(--chat-textarea-background-color);margin-bottom:-3px;border-width:2px;border-style:dotted;border-color:var(--red)}#conversejs.theme-darkbeet .chatroom .chat-textarea .chat-textarea:active,#conversejs.theme-darkbeet .chatroom .chat-textarea .chat-textarea:focus{outline-color:red!important}#conversejs.theme-darkbeet .chatroom .box-flyout .chatroom-body .chat-info{color:var(--red)}#conversejs.theme-darkbeet .chatroom .box-flyout .chatroom-body .occupants{border-left:unset}#conversejs.theme-darkbeet .chatroom .box-flyout .chatroom-body .chatroom-form-container{background-color:var(--dark-link-color)}#conversejs.theme-darkbeet .chatroom .box-flyout .chatroom-body .chatroom-form{background-color:var(--dark-link-color)}#conversejs.theme-darkbeet #controlbox .open-rooms-toggle,#conversejs.theme-darkbeet #controlbox .open-rooms-toggle .fa{color:var(--chatroom-head-bg-color-dark)!important}#conversejs.theme-darkbeet #controlbox .open-rooms-toggle .fa:hover,#conversejs.theme-darkbeet #controlbox .open-rooms-toggle:hover{color:var(--orange)!important}#conversejs.theme-darkbeet #controlbox .controlbox-section .controlbox-heading--groupchats{color:var(--orange)}#conversejs.theme-darkbeet #controlbox .controlbox-pane dd{background-color:var(--beet)}#conversejs.theme-darkbeet #controlbox .controlbox-panes{border-right:unset}#conversejs.theme-darkbeet .avatar{border-radius:var(--avatar-border-radius);border:none;background-color:unset}#conversejs.theme-darkbeet .dropdown-menu{color:var(--text-color);background-color:var(--darkest-grey)}#conversejs.theme-darkbeet .dropdown-menu.selected,#conversejs.theme-darkbeet .dropdown-menu:active{color:var(--text-color-lighten-15-percent)!important;background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .dropdown-item{color:var(--text-color)}#conversejs.theme-darkbeet .dropdown-item.selected,#conversejs.theme-darkbeet .dropdown-item:active{color:var(--text-color-lighten-15-percent)!important;background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .dropdown-item:hover{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet ::-webkit-scrollbar-thumb{background:var(--list-item-action-color);border-radius:10px}#conversejs.theme-darkbeet ::-webkit-scrollbar-track{background:var(--beet)}#conversejs.theme-darkbeet .chatbox img.emoji{height:1.2em;width:1.2em;margin:0 .05em 0 .1em;vertical-align:-.1em}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .toggle-smiley a.toggle-smiley{padding:0}#conversejs.theme-darkbeet .chatbox converse-emoji-dropdown{display:inline-block}#conversejs.theme-darkbeet .chatbox converse-emoji-dropdown .dropdown-menu{padding:0}#conversejs.theme-darkbeet .chatbox converse-emoji-picker{width:100%;padding-top:0;padding-bottom:0;background-color:var(--occupants-background-color);overflow-y:hidden;background:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__lists{height:8em;overflow-y:auto;display:flex;flex-direction:column}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__lists .emoji-category__heading{clear:both;color:var(--subdued-color);cursor:auto;display:block;font-size:var(--font-size);margin:0;padding:.75em 0 0 .5em}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__lists .emoji-lists__container{overflow-x:hidden}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__lists .emoji-picker li{float:left}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-skintone-picker{display:flex;padding:.5em 0;background-color:var(--occupants-background-color);width:auto;font-size:var(--font-size)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-skintone-picker label{margin:0;padding:0 .5em;white-space:nowrap;font-size:var(--font-size-small);color:var(--heading-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-skintone-picker ul{display:flex;flex-direction:row;flex-wrap:wrap}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-skintone-picker ul li{padding:0 .25em}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker{background-color:var(--occupants-background-color);padding:.5em 0 0 .5em}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker:last-child{padding-bottom:.5em}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li{display:inline-block;height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden;margin-left:0;list-style:none;position:relative}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji{padding:0 .2em;height:auto;width:auto;margin:0;display:block;text-align:center}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji.selected a{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji img{margin:0 auto;height:var(--font-size-huge);width:var(--font-size-huge);display:inline-block;vertical-align:baseline}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a{padding:3px;display:inline-block;font-size:var(--font-size-huge);line-height:calc(var(--font-size-huge) * 1.5);height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a:hover{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header{display:flex;flex-direction:column;padding:.1em 0;background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header .emoji-search{width:auto;margin:.25em;height:2em;font-size:var(--font-size-small)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul{display:flex;flex-direction:row;flex-wrap:wrap}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category{padding:.25em 0;font-size:var(--font-size-huge)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{background-color:var(--occupants-background-color);border:1px var(--chat-head-color) solid;border-bottom:none}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.selected a,#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category:hover a{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category a{padding:.25em;display:inline-block}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category img{height:var(--font-size-huge);width:var(--font-size-huge)}#conversejs.theme-darkbeet .chatroom converse-emoji-picker{background-color:var(--occupants-background-color);background:#fff}#conversejs.theme-darkbeet .chatroom converse-emoji-picker .emoji-skintone-picker{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatroom converse-emoji-picker .emoji-picker__header{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatroom converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{border:1px var(--chatroom-head-bg-color) solid;border-bottom:none}#conversejs.theme-darkbeet .items-list .list-item:hover{color:var(--text-color);background-color:var(--beet)}#conversejs.theme-darkbeet .items-list .list-item:hover .fa,#conversejs.theme-darkbeet .items-list .list-item:hover .far,#conversejs.theme-darkbeet .items-list .list-item:hover .fas{opacity:1}#conversejs.theme-darkbeet .items-list .list-item.open{border-left:4px solid var(--red);background-color:var(--list-item-open-color)}#conversejs.theme-darkbeet .items-list .list-item.open:hover{color:var(--text-color);background-color:var(--list-item-open-hover-color)!important}#conversejs.theme-darkbeet .items-list .list-item-badge{color:var(--text-color);float:right;text-align:center;width:22px;background-color:var(--red);border-radius:50%;padding:.5em;font-size:var(--font-size-small)}#conversejs.theme-darkbeet .message .mention{font-weight:700;border-width:0;border-radius:.25rem;background-color:var(--message-mention-color);color:var(--text-color-lighten-15-percent);padding:.25em}#conversejs.theme-darkbeet .message .mention--self{background:var(--message-mention-self-color)}#conversejs.theme-darkbeet .message.correcting.groupchat{background-color:unset;border-style:dotted;border-radius:1em;border-color:var(--red);border-width:.2em}#conversejs.theme-darkbeet .message.correcting:not(.groupchat){background-color:unset;border-style:solid;border-radius:1em;border-color:var(--red)}#conversejs.theme-darkbeet .message .chat-msg__heading .chat-msg__author{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--orange);font-family:var(--heading-font);font-size:115%;font-weight:700;padding-bottom:1px}#conversejs.theme-darkbeet .chat-msg__text{display:inline;color:var(--message-text-color);padding:10px;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;line-height:1.7em}#conversejs.theme-darkbeet .chat-msg__message{display:inline-flex;flex-direction:column;width:unset;overflow-wrap:break-word}#conversejs.theme-darkbeet .chat-msg__avatar{height:var(--message-avatar-height);width:var(--message-avatar-width);display:block;margin-left:auto;margin-right:auto;background-size:cover}#conversejs.theme-darkbeet .message .mention{font-weight:700}#conversejs.theme-darkbeet .message .mention--self{font-weight:400}#conversejs.theme-darkbeet .message.date-separator{height:2em;margin:0;position:relative;text-align:center;z-index:0}#conversejs.theme-darkbeet .message.date-separator .separator{border-top:0;border-bottom:var(--global-background-color);border-style:solid}#conversejs.theme-darkbeet .message.date-separator .separator-text{background:var(--global-background-color);bottom:1px;color:var(--chatbox-separator-text);display:inline-block;line-height:2em;padding:0 1em;position:relative;z-index:5;border-style:solid;border-radius:2em;border-width:0}#conversejs.theme-darkbeet .message.separator .separator-text{background:var(--beet);color:var(--chatroom-head-color);border-radius:2em}#conversejs.theme-darkbeet .chat-image{border-radius:2em;max-height:25em;transition:.5s;border:0;margin-left:5em;margin-top:2em}#conversejs.theme-darkbeet .chat-image:hover{filter:grayscale(1)}#conversejs.theme-darkbeet .img-thumbnail{background-color:unset}#conversejs.theme-darkbeet .message.chat-msg .chat-msg__media{margin-top:.25rem;word-break:break-all}#conversejs.theme-darkbeet .message.chat-msg .chat-msg__media a{word-wrap:break-word}#conversejs.theme-darkbeet .message.chat-msg .chat-msg__media audio{width:50%;background-color:unset;color:var(--beet)}#conversejs.theme-darkbeet #converse-modals .modal-header{background-color:var(--beet);border-bottom:none}#conversejs.theme-darkbeet #converse-modals .modal-header .close{color:#fff;background-color:var(--red)}#conversejs.theme-darkbeet #converse-modals .modal-body{background-color:var(--chat-content-background-color)}#conversejs.theme-darkbeet #converse-modals .form-control{color:#fff;background-color:var(--darkest-grey);border:1px solid var(--darkest-grey)}#conversejs.theme-darkbeet #converse-modals .modal-content{background-color:var(--darkest-grey)}#conversejs.theme-darkbeet #converse-modals .modal-footer{border-top:none}#conversejs.theme-darkbeet #converse-modals .list-group-item{background-color:var(--darkest-grey)}#conversejs.theme-darkbeet #converse-roster .roster-contacts .current-xmpp-contact .chat-status{vertical-align:middle;font-size:1em;margin-right:0;margin-left:-.8em;margin-bottom:-1.5em;border-radius:50%;border:2px solid var(--occupants-background-color)}#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group .group-toggle,#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group .group-toggle .fa{color:var(--beet-light-green)!important}#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group .group-toggle .fa:hover,#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group .group-toggle:hover{color:var(--beet-green)!important}#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group li .open-chat .msgs-indicator{float:right;color:#fff;text-align:center;width:22px;background-color:var(--red);border-radius:50%;padding:.5em;font-size:var(--font-size-small)}#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group li .open-chat:hover{background-color:var(--beet)}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar{background-color:var(--chat-content-background-color);box-sizing:border-box;color:var(--text-color);display:flex;justify-content:space-between;margin:0;width:100%}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fa,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fa:hover,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .far,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .far:hover,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fas,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fas:hover{color:var(--font-head-color);font-size:var(--font-size-huge)}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fa svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fa:hover svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .far svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .far:hover svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fas svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fas:hover svg{fill:var(--text-color)}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .unencrypted,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .unencrypted a{color:var(--text-color)}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .unencrypted .toolbar-menu a,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .unencrypted a .toolbar-menu a{color:var(--link-color)}#conversejs.theme-darkbeet .chat-toolbar .toolbar-buttons{width:100%;display:inline-block}#conversejs.theme-darkbeet .chat-toolbar .toolbar-buttons .message-limit{padding:.5em;font-weight:700}#conversejs.theme-darkbeet .chat-toolbar button{margin:.2em;padding-bottom:.25em;border:1px transparent solid;background-color:transparent}#conversejs.theme-darkbeet .chat-toolbar button:disabled .fa{color:gray}#conversejs.theme-darkbeet .chat-toolbar button:disabled .fa:hover{color:gray}#conversejs.theme-darkbeet .chat-toolbar button:disabled .fa svg,#conversejs.theme-darkbeet .chat-toolbar button:disabled .fa svg:hover{fill:gray}#conversejs.theme-darkbeet .chat-toolbar button.send-button{padding-top:.2em;padding-bottom:.2em;margin:0;margin-top:-1px}#conversejs.theme-darkbeet .chat-toolbar .unverified,#conversejs.theme-darkbeet .chat-toolbar .unverified a{color:#cf5300}#conversejs.theme-darkbeet .chat-toolbar .private,#conversejs.theme-darkbeet .chat-toolbar .private a{color:#4b7003}#conversejs.theme-darkbeet .chat-toolbar li{cursor:pointer;display:inline-block;list-style:none;padding:0 .5em}#conversejs.theme-darkbeet .chat-toolbar li:hover{cursor:pointer}#conversejs.theme-darkbeet .chat-toolbar li .toolbar-menu{background-color:var(--chat-content-background-color);bottom:1.7rem;box-shadow:-1px -1px 2px 0 rgba(0,0,0,.4);height:auto;margin-bottom:0;min-width:21rem;position:absolute;right:0;top:auto;z-index:1000}#conversejs.theme-darkbeet .chat-toolbar li .toolbar-menu.otr-menu{left:-6em;min-width:15rem}#conversejs.theme-darkbeet .chat-toolbar li .toolbar-menu.otr-menu.show{display:flex;flex-direction:column}#conversejs.theme-darkbeet .chat-toolbar li .toolbar-menu a{color:var(--link-color)}#conversejs.theme-darkbeet .chat-toolbar li.toggle-otr ul{z-index:99}#conversejs.theme-darkbeet .chat-toolbar li.toggle-otr ul li{display:block;padding:7px}#conversejs.theme-darkbeet .chat-toolbar li.toggle-otr ul li:hover{background-color:var(--highlight-color)}#conversejs.theme-darkbeet .chat-toolbar li.toggle-otr ul li a{display:block}#conversejs.theme-darkbeet .chatbox .new-msgs-indicator{color:var(--chatroom-head-color)}#conversejs.theme-darkbeet .chatbox converse-chat-toolbar{border-top:var(chatbox-message-input-border-top);color:var(--text-color);background-color:var(--chat-content-background-color)}#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .fa,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .fa:hover,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .far,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .far:hover,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .fas,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .fas:hover{color:var(--dark-link-color)}#conversejs.theme-darkbeet .chatbox converse-chat-toolbar button:focus{outline-color:unset!important;color:var(--red)}#conversejs.theme-darkbeet .chatroom converse-chat-toolbar{border-top:var(--chatroom-message-input-border-top);color:var(--text-color)}#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fa,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fa:hover,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .far,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .far:hover,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fas,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fas:hover{color:var(--dark-link-color);font-size:var(--font-size-huge)}#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fa svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fa:hover svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .far svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .far:hover svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fas svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fas:hover svg{fill:var(--text-color)}#conversejs.theme-darkbeet .chatroom converse-chat-toolbar button:focus{outline-color:unset!important}#conversejs.theme-darkbeet .suggestion-box{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .suggestion-box .suggestion-box__results,#conversejs.theme-darkbeet .suggestion-box>ul{position:absolute;left:0;right:0;z-index:2;min-width:100%;box-sizing:border-box;list-style:none;padding:0;border-radius:.3em;margin:.2em 0 0;background:rgba(37,36,36,.9);border:1px solid rgba(0,0,0,.3);box-shadow:.05em .2em .6em rgba(0,0,0,.1);text-shadow:none}#conversejs.theme-darkbeet .suggestion-box .suggestion-box__results:before,#conversejs.theme-darkbeet .suggestion-box>ul:before{content:"";position:absolute;top:-.43em;left:1em;width:0;height:0;padding:.4em;background:var(--red);border:inherit;border-right:0;border-bottom:0;transform:rotate(45deg);z-index:-1}#conversejs.theme-darkbeet .suggestion-box .suggestion-box__results>li,#conversejs.theme-darkbeet .suggestion-box>ul>li{text-overflow:ellipsis;overflow-x:hidden;position:relative;cursor:pointer;padding:1em} + */@font-face{font-family:Baumans;font-style:normal;font-weight:400;src:local("Baumans Regular"),local("Baumans-Regular"),url(webfonts/baumans.ttf) format("truetype")}@font-face{font-family:Muli;font-style:normal;font-weight:400;src:local("Muli Regular"),local("Muli-Regular"),url(webfonts/muli.ttf) format("truetype")}@font-face{font-family:ConverseFontAwesomeBrands;font-style:normal;font-weight:400;src:url(webfonts/fa-brands-400.eot);src:url(webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(webfonts/fa-brands-400.woff2) format("woff2"),url(webfonts/fa-brands-400.woff) format("woff"),url(webfonts/fa-brands-400.ttf) format("truetype"),url(webfonts/fa-brands-400.svg#fontawesome) format("svg")}@font-face{font-family:ConverseFontAwesomeRegular;font-style:normal;font-weight:400;src:url(webfonts/fa-regular-400.eot);src:url(webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(webfonts/fa-regular-400.woff2) format("woff2"),url(webfonts/fa-regular-400.woff) format("woff"),url(webfonts/fa-regular-400.ttf) format("truetype"),url(webfonts/fa-regular-400.svg#fontawesome) format("svg");font-weight:400;font-style:normal}@font-face{font-family:ConverseFontAwesomeSolid;font-style:normal;font-weight:900;src:url(webfonts/fa-solid-900.eot);src:url(webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(webfonts/fa-solid-900.svg#fontawesome) format("svg"),url(webfonts/fa-solid-900.woff2) format("woff2"),url(webfonts/fa-solid-900.woff) format("woff"),url(webfonts/fa-solid-900.ttf) format("truetype")}.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.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-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes fa-spin{0%{transform:rotate(0)}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)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.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%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:""}.fa-accessible-icon:before{content:""}.fa-accusoft:before{content:""}.fa-acquisitions-incorporated:before{content:""}.fa-ad:before{content:""}.fa-address-book:before{content:""}.fa-address-card:before{content:""}.fa-adjust:before{content:""}.fa-adn:before{content:""}.fa-adobe:before{content:""}.fa-adversal:before{content:""}.fa-affiliatetheme:before{content:""}.fa-air-freshener:before{content:""}.fa-airbnb:before{content:""}.fa-algolia:before{content:""}.fa-align-center:before{content:""}.fa-align-justify:before{content:""}.fa-align-left:before{content:""}.fa-align-right:before{content:""}.fa-alipay:before{content:""}.fa-allergies:before{content:""}.fa-amazon:before{content:""}.fa-amazon-pay:before{content:""}.fa-ambulance:before{content:""}.fa-american-sign-language-interpreting:before{content:""}.fa-amilia:before{content:""}.fa-anchor:before{content:""}.fa-android:before{content:""}.fa-angellist:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angry:before{content:""}.fa-angrycreative:before{content:""}.fa-angular:before{content:""}.fa-ankh:before{content:""}.fa-app-store:before{content:""}.fa-app-store-ios:before{content:""}.fa-apper:before{content:""}.fa-apple:before{content:""}.fa-apple-alt:before{content:""}.fa-apple-pay:before{content:""}.fa-archive:before{content:""}.fa-archway:before{content:""}.fa-arrow-alt-circle-down:before{content:""}.fa-arrow-alt-circle-left:before{content:""}.fa-arrow-alt-circle-right:before{content:""}.fa-arrow-alt-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-down:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrows-alt:before{content:""}.fa-arrows-alt-h:before{content:""}.fa-arrows-alt-v:before{content:""}.fa-artstation:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asterisk:before{content:""}.fa-asymmetrik:before{content:""}.fa-at:before{content:""}.fa-atlas:before{content:""}.fa-atlassian:before{content:""}.fa-atom:before{content:""}.fa-audible:before{content:""}.fa-audio-description:before{content:""}.fa-autoprefixer:before{content:""}.fa-avianex:before{content:""}.fa-aviato:before{content:""}.fa-award:before{content:""}.fa-aws:before{content:""}.fa-baby:before{content:""}.fa-baby-carriage:before{content:""}.fa-backspace:before{content:""}.fa-backward:before{content:""}.fa-bacon:before{content:""}.fa-bacteria:before{content:""}.fa-bacterium:before{content:""}.fa-bahai:before{content:""}.fa-balance-scale:before{content:""}.fa-balance-scale-left:before{content:""}.fa-balance-scale-right:before{content:""}.fa-ban:before{content:""}.fa-band-aid:before{content:""}.fa-bandcamp:before{content:""}.fa-barcode:before{content:""}.fa-bars:before{content:""}.fa-baseball-ball:before{content:""}.fa-basketball-ball:before{content:""}.fa-bath:before{content:""}.fa-battery-empty:before{content:""}.fa-battery-full:before{content:""}.fa-battery-half:before{content:""}.fa-battery-quarter:before{content:""}.fa-battery-three-quarters:before{content:""}.fa-battle-net:before{content:""}.fa-bed:before{content:""}.fa-beer:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-bell:before{content:""}.fa-bell-slash:before{content:""}.fa-bezier-curve:before{content:""}.fa-bible:before{content:""}.fa-bicycle:before{content:""}.fa-biking:before{content:""}.fa-bimobject:before{content:""}.fa-binoculars:before{content:""}.fa-biohazard:before{content:""}.fa-birthday-cake:before{content:""}.fa-bitbucket:before{content:""}.fa-bitcoin:before{content:""}.fa-bity:before{content:""}.fa-black-tie:before{content:""}.fa-blackberry:before{content:""}.fa-blender:before{content:""}.fa-blender-phone:before{content:""}.fa-blind:before{content:""}.fa-blog:before{content:""}.fa-blogger:before{content:""}.fa-blogger-b:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-bold:before{content:""}.fa-bolt:before{content:""}.fa-bomb:before{content:""}.fa-bone:before{content:""}.fa-bong:before{content:""}.fa-book:before{content:""}.fa-book-dead:before{content:""}.fa-book-medical:before{content:""}.fa-book-open:before{content:""}.fa-book-reader:before{content:""}.fa-bookmark:before{content:""}.fa-bootstrap:before{content:""}.fa-border-all:before{content:""}.fa-border-none:before{content:""}.fa-border-style:before{content:""}.fa-bowling-ball:before{content:""}.fa-box:before{content:""}.fa-box-open:before{content:""}.fa-box-tissue:before{content:""}.fa-boxes:before{content:""}.fa-braille:before{content:""}.fa-brain:before{content:""}.fa-bread-slice:before{content:""}.fa-briefcase:before{content:""}.fa-briefcase-medical:before{content:""}.fa-broadcast-tower:before{content:""}.fa-broom:before{content:""}.fa-brush:before{content:""}.fa-btc:before{content:""}.fa-buffer:before{content:""}.fa-bug:before{content:""}.fa-building:before{content:""}.fa-bullhorn:before{content:""}.fa-bullseye:before{content:""}.fa-burn:before{content:""}.fa-buromobelexperte:before{content:""}.fa-bus:before{content:""}.fa-bus-alt:before{content:""}.fa-business-time:before{content:""}.fa-buy-n-large:before{content:""}.fa-buysellads:before{content:""}.fa-calculator:before{content:""}.fa-calendar:before{content:""}.fa-calendar-alt:before{content:""}.fa-calendar-check:before{content:""}.fa-calendar-day:before{content:""}.fa-calendar-minus:before{content:""}.fa-calendar-plus:before{content:""}.fa-calendar-times:before{content:""}.fa-calendar-week:before{content:""}.fa-camera:before{content:""}.fa-camera-retro:before{content:""}.fa-campground:before{content:""}.fa-canadian-maple-leaf:before{content:""}.fa-candy-cane:before{content:""}.fa-cannabis:before{content:""}.fa-capsules:before{content:""}.fa-car:before{content:""}.fa-car-alt:before{content:""}.fa-car-battery:before{content:""}.fa-car-crash:before{content:""}.fa-car-side:before{content:""}.fa-caravan:before{content:""}.fa-caret-down:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-caret-square-down:before{content:""}.fa-caret-square-left:before{content:""}.fa-caret-square-right:before{content:""}.fa-caret-square-up:before{content:""}.fa-caret-up:before{content:""}.fa-carrot:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-cart-plus:before{content:""}.fa-cash-register:before{content:""}.fa-cat:before{content:""}.fa-cc-amazon-pay:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-apple-pay:before{content:""}.fa-cc-diners-club:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-cc-visa:before{content:""}.fa-centercode:before{content:""}.fa-centos:before{content:""}.fa-certificate:before{content:""}.fa-chair:before{content:""}.fa-chalkboard:before{content:""}.fa-chalkboard-teacher:before{content:""}.fa-charging-station:before{content:""}.fa-chart-area:before{content:""}.fa-chart-bar:before{content:""}.fa-chart-line:before{content:""}.fa-chart-pie:before{content:""}.fa-check:before{content:""}.fa-check-circle:before{content:""}.fa-check-double:before{content:""}.fa-check-square:before{content:""}.fa-cheese:before{content:""}.fa-chess:before{content:""}.fa-chess-bishop:before{content:""}.fa-chess-board:before{content:""}.fa-chess-king:before{content:""}.fa-chess-knight:before{content:""}.fa-chess-pawn:before{content:""}.fa-chess-queen:before{content:""}.fa-chess-rook:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-down:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-chevron-up:before{content:""}.fa-child:before{content:""}.fa-chrome:before{content:""}.fa-chromecast:before{content:""}.fa-church:before{content:""}.fa-circle:before{content:""}.fa-circle-notch:before{content:""}.fa-city:before{content:""}.fa-clinic-medical:before{content:""}.fa-clipboard:before{content:""}.fa-clipboard-check:before{content:""}.fa-clipboard-list:before{content:""}.fa-clock:before{content:""}.fa-clone:before{content:""}.fa-closed-captioning:before{content:""}.fa-cloud:before{content:""}.fa-cloud-download-alt:before{content:""}.fa-cloud-meatball:before{content:""}.fa-cloud-moon:before{content:""}.fa-cloud-moon-rain:before{content:""}.fa-cloud-rain:before{content:""}.fa-cloud-showers-heavy:before{content:""}.fa-cloud-sun:before{content:""}.fa-cloud-sun-rain:before{content:""}.fa-cloud-upload-alt:before{content:""}.fa-cloudscale:before{content:""}.fa-cloudsmith:before{content:""}.fa-cloudversify:before{content:""}.fa-cocktail:before{content:""}.fa-code:before{content:""}.fa-code-branch:before{content:""}.fa-codepen:before{content:""}.fa-codiepie:before{content:""}.fa-coffee:before{content:""}.fa-cog:before{content:""}.fa-cogs:before{content:""}.fa-coins:before{content:""}.fa-columns:before{content:""}.fa-comment:before{content:""}.fa-comment-alt:before{content:""}.fa-comment-dollar:before{content:""}.fa-comment-dots:before{content:""}.fa-comment-medical:before{content:""}.fa-comment-slash:before{content:""}.fa-comments:before{content:""}.fa-comments-dollar:before{content:""}.fa-compact-disc:before{content:""}.fa-compass:before{content:""}.fa-compress:before{content:""}.fa-compress-alt:before{content:""}.fa-compress-arrows-alt:before{content:""}.fa-concierge-bell:before{content:""}.fa-confluence:before{content:""}.fa-connectdevelop:before{content:""}.fa-contao:before{content:""}.fa-cookie:before{content:""}.fa-cookie-bite:before{content:""}.fa-copy:before{content:""}.fa-copyright:before{content:""}.fa-cotton-bureau:before{content:""}.fa-couch:before{content:""}.fa-cpanel:before{content:""}.fa-creative-commons:before{content:""}.fa-creative-commons-by:before{content:""}.fa-creative-commons-nc:before{content:""}.fa-creative-commons-nc-eu:before{content:""}.fa-creative-commons-nc-jp:before{content:""}.fa-creative-commons-nd:before{content:""}.fa-creative-commons-pd:before{content:""}.fa-creative-commons-pd-alt:before{content:""}.fa-creative-commons-remix:before{content:""}.fa-creative-commons-sa:before{content:""}.fa-creative-commons-sampling:before{content:""}.fa-creative-commons-sampling-plus:before{content:""}.fa-creative-commons-share:before{content:""}.fa-creative-commons-zero:before{content:""}.fa-credit-card:before{content:""}.fa-critical-role:before{content:""}.fa-crop:before{content:""}.fa-crop-alt:before{content:""}.fa-cross:before{content:""}.fa-crosshairs:before{content:""}.fa-crow:before{content:""}.fa-crown:before{content:""}.fa-crutch:before{content:""}.fa-css3:before{content:""}.fa-css3-alt:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-cut:before{content:""}.fa-cuttlefish:before{content:""}.fa-d-and-d:before{content:""}.fa-d-and-d-beyond:before{content:""}.fa-dailymotion:before{content:""}.fa-dashcube:before{content:""}.fa-database:before{content:""}.fa-deaf:before{content:""}.fa-deezer:before{content:""}.fa-delicious:before{content:""}.fa-democrat:before{content:""}.fa-deploydog:before{content:""}.fa-deskpro:before{content:""}.fa-desktop:before{content:""}.fa-dev:before{content:""}.fa-deviantart:before{content:""}.fa-dharmachakra:before{content:""}.fa-dhl:before{content:""}.fa-diagnoses:before{content:""}.fa-diaspora:before{content:""}.fa-dice:before{content:""}.fa-dice-d20:before{content:""}.fa-dice-d6:before{content:""}.fa-dice-five:before{content:""}.fa-dice-four:before{content:""}.fa-dice-one:before{content:""}.fa-dice-six:before{content:""}.fa-dice-three:before{content:""}.fa-dice-two:before{content:""}.fa-digg:before{content:""}.fa-digital-ocean:before{content:""}.fa-digital-tachograph:before{content:""}.fa-directions:before{content:""}.fa-discord:before{content:""}.fa-discourse:before{content:""}.fa-disease:before{content:""}.fa-divide:before{content:""}.fa-dizzy:before{content:""}.fa-dna:before{content:""}.fa-dochub:before{content:""}.fa-docker:before{content:""}.fa-dog:before{content:""}.fa-dollar-sign:before{content:""}.fa-dolly:before{content:""}.fa-dolly-flatbed:before{content:""}.fa-donate:before{content:""}.fa-door-closed:before{content:""}.fa-door-open:before{content:""}.fa-dot-circle:before{content:""}.fa-dove:before{content:""}.fa-download:before{content:""}.fa-draft2digital:before{content:""}.fa-drafting-compass:before{content:""}.fa-dragon:before{content:""}.fa-draw-polygon:before{content:""}.fa-dribbble:before{content:""}.fa-dribbble-square:before{content:""}.fa-dropbox:before{content:""}.fa-drum:before{content:""}.fa-drum-steelpan:before{content:""}.fa-drumstick-bite:before{content:""}.fa-drupal:before{content:""}.fa-dumbbell:before{content:""}.fa-dumpster:before{content:""}.fa-dumpster-fire:before{content:""}.fa-dungeon:before{content:""}.fa-dyalog:before{content:""}.fa-earlybirds:before{content:""}.fa-ebay:before{content:""}.fa-edge:before{content:""}.fa-edge-legacy:before{content:""}.fa-edit:before{content:""}.fa-egg:before{content:""}.fa-eject:before{content:""}.fa-elementor:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-ello:before{content:""}.fa-ember:before{content:""}.fa-empire:before{content:""}.fa-envelope:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-text:before{content:""}.fa-envelope-square:before{content:""}.fa-envira:before{content:""}.fa-equals:before{content:""}.fa-eraser:before{content:""}.fa-erlang:before{content:""}.fa-ethereum:before{content:""}.fa-ethernet:before{content:""}.fa-etsy:before{content:""}.fa-euro-sign:before{content:""}.fa-evernote:before{content:""}.fa-exchange-alt:before{content:""}.fa-exclamation:before{content:""}.fa-exclamation-circle:before{content:""}.fa-exclamation-triangle:before{content:""}.fa-expand:before{content:""}.fa-expand-alt:before{content:""}.fa-expand-arrows-alt:before{content:""}.fa-expeditedssl:before{content:""}.fa-external-link-alt:before{content:""}.fa-external-link-square-alt:before{content:""}.fa-eye:before{content:""}.fa-eye-dropper:before{content:""}.fa-eye-slash:before{content:""}.fa-facebook:before{content:""}.fa-facebook-f:before{content:""}.fa-facebook-messenger:before{content:""}.fa-facebook-square:before{content:""}.fa-fan:before{content:""}.fa-fantasy-flight-games:before{content:""}.fa-fast-backward:before{content:""}.fa-fast-forward:before{content:""}.fa-faucet:before{content:""}.fa-fax:before{content:""}.fa-feather:before{content:""}.fa-feather-alt:before{content:""}.fa-fedex:before{content:""}.fa-fedora:before{content:""}.fa-female:before{content:""}.fa-fighter-jet:before{content:""}.fa-figma:before{content:""}.fa-file:before{content:""}.fa-file-alt:before{content:""}.fa-file-archive:before{content:""}.fa-file-audio:before{content:""}.fa-file-code:before{content:""}.fa-file-contract:before{content:""}.fa-file-csv:before{content:""}.fa-file-download:before{content:""}.fa-file-excel:before{content:""}.fa-file-export:before{content:""}.fa-file-image:before{content:""}.fa-file-import:before{content:""}.fa-file-invoice:before{content:""}.fa-file-invoice-dollar:before{content:""}.fa-file-medical:before{content:""}.fa-file-medical-alt:before{content:""}.fa-file-pdf:before{content:""}.fa-file-powerpoint:before{content:""}.fa-file-prescription:before{content:""}.fa-file-signature:before{content:""}.fa-file-upload:before{content:""}.fa-file-video:before{content:""}.fa-file-word:before{content:""}.fa-fill:before{content:""}.fa-fill-drip:before{content:""}.fa-film:before{content:""}.fa-filter:before{content:""}.fa-fingerprint:before{content:""}.fa-fire:before{content:""}.fa-fire-alt:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-firefox:before{content:""}.fa-firefox-browser:before{content:""}.fa-first-aid:before{content:""}.fa-first-order:before{content:""}.fa-first-order-alt:before{content:""}.fa-firstdraft:before{content:""}.fa-fish:before{content:""}.fa-fist-raised:before{content:""}.fa-flag:before{content:""}.fa-flag-checkered:before{content:""}.fa-flag-usa:before{content:""}.fa-flask:before{content:""}.fa-flickr:before{content:""}.fa-flipboard:before{content:""}.fa-flushed:before{content:""}.fa-fly:before{content:""}.fa-folder:before{content:""}.fa-folder-minus:before{content:""}.fa-folder-open:before{content:""}.fa-folder-plus:before{content:""}.fa-font:before{content:""}.fa-font-awesome:before{content:""}.fa-font-awesome-alt:before{content:""}.fa-font-awesome-flag:before{content:""}.fa-font-awesome-logo-full:before{content:""}.fa-fonticons:before{content:""}.fa-fonticons-fi:before{content:""}.fa-football-ball:before{content:""}.fa-fort-awesome:before{content:""}.fa-fort-awesome-alt:before{content:""}.fa-forumbee:before{content:""}.fa-forward:before{content:""}.fa-foursquare:before{content:""}.fa-free-code-camp:before{content:""}.fa-freebsd:before{content:""}.fa-frog:before{content:""}.fa-frown:before{content:""}.fa-frown-open:before{content:""}.fa-fulcrum:before{content:""}.fa-funnel-dollar:before{content:""}.fa-futbol:before{content:""}.fa-galactic-republic:before{content:""}.fa-galactic-senate:before{content:""}.fa-gamepad:before{content:""}.fa-gas-pump:before{content:""}.fa-gavel:before{content:""}.fa-gem:before{content:""}.fa-genderless:before{content:""}.fa-get-pocket:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-ghost:before{content:""}.fa-gift:before{content:""}.fa-gifts:before{content:""}.fa-git:before{content:""}.fa-git-alt:before{content:""}.fa-git-square:before{content:""}.fa-github:before{content:""}.fa-github-alt:before{content:""}.fa-github-square:before{content:""}.fa-gitkraken:before{content:""}.fa-gitlab:before{content:""}.fa-gitter:before{content:""}.fa-glass-cheers:before{content:""}.fa-glass-martini:before{content:""}.fa-glass-martini-alt:before{content:""}.fa-glass-whiskey:before{content:""}.fa-glasses:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-globe:before{content:""}.fa-globe-africa:before{content:""}.fa-globe-americas:before{content:""}.fa-globe-asia:before{content:""}.fa-globe-europe:before{content:""}.fa-gofore:before{content:""}.fa-golf-ball:before{content:""}.fa-goodreads:before{content:""}.fa-goodreads-g:before{content:""}.fa-google:before{content:""}.fa-google-drive:before{content:""}.fa-google-pay:before{content:""}.fa-google-play:before{content:""}.fa-google-plus:before{content:""}.fa-google-plus-g:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-wallet:before{content:""}.fa-gopuram:before{content:""}.fa-graduation-cap:before{content:""}.fa-gratipay:before{content:""}.fa-grav:before{content:""}.fa-greater-than:before{content:""}.fa-greater-than-equal:before{content:""}.fa-grimace:before{content:""}.fa-grin:before{content:""}.fa-grin-alt:before{content:""}.fa-grin-beam:before{content:""}.fa-grin-beam-sweat:before{content:""}.fa-grin-hearts:before{content:""}.fa-grin-squint:before{content:""}.fa-grin-squint-tears:before{content:""}.fa-grin-stars:before{content:""}.fa-grin-tears:before{content:""}.fa-grin-tongue:before{content:""}.fa-grin-tongue-squint:before{content:""}.fa-grin-tongue-wink:before{content:""}.fa-grin-wink:before{content:""}.fa-grip-horizontal:before{content:""}.fa-grip-lines:before{content:""}.fa-grip-lines-vertical:before{content:""}.fa-grip-vertical:before{content:""}.fa-gripfire:before{content:""}.fa-grunt:before{content:""}.fa-guitar:before{content:""}.fa-gulp:before{content:""}.fa-h-square:before{content:""}.fa-hacker-news:before{content:""}.fa-hacker-news-square:before{content:""}.fa-hackerrank:before{content:""}.fa-hamburger:before{content:""}.fa-hammer:before{content:""}.fa-hamsa:before{content:""}.fa-hand-holding:before{content:""}.fa-hand-holding-heart:before{content:""}.fa-hand-holding-medical:before{content:""}.fa-hand-holding-usd:before{content:""}.fa-hand-holding-water:before{content:""}.fa-hand-lizard:before{content:""}.fa-hand-middle-finger:before{content:""}.fa-hand-paper:before{content:""}.fa-hand-peace:before{content:""}.fa-hand-point-down:before{content:""}.fa-hand-point-left:before{content:""}.fa-hand-point-right:before{content:""}.fa-hand-point-up:before{content:""}.fa-hand-pointer:before{content:""}.fa-hand-rock:before{content:""}.fa-hand-scissors:before{content:""}.fa-hand-sparkles:before{content:""}.fa-hand-spock:before{content:""}.fa-hands:before{content:""}.fa-hands-helping:before{content:""}.fa-hands-wash:before{content:""}.fa-handshake:before{content:""}.fa-handshake-alt-slash:before{content:""}.fa-handshake-slash:before{content:""}.fa-hanukiah:before{content:""}.fa-hard-hat:before{content:""}.fa-hashtag:before{content:""}.fa-hat-cowboy:before{content:""}.fa-hat-cowboy-side:before{content:""}.fa-hat-wizard:before{content:""}.fa-hdd:before{content:""}.fa-head-side-cough:before{content:""}.fa-head-side-cough-slash:before{content:""}.fa-head-side-mask:before{content:""}.fa-head-side-virus:before{content:""}.fa-heading:before{content:""}.fa-headphones:before{content:""}.fa-headphones-alt:before{content:""}.fa-headset:before{content:""}.fa-heart:before{content:""}.fa-heart-broken:before{content:""}.fa-heartbeat:before{content:""}.fa-helicopter:before{content:""}.fa-highlighter:before{content:""}.fa-hiking:before{content:""}.fa-hippo:before{content:""}.fa-hips:before{content:""}.fa-hire-a-helper:before{content:""}.fa-history:before{content:""}.fa-hockey-puck:before{content:""}.fa-holly-berry:before{content:""}.fa-home:before{content:""}.fa-hooli:before{content:""}.fa-hornbill:before{content:""}.fa-horse:before{content:""}.fa-horse-head:before{content:""}.fa-hospital:before{content:""}.fa-hospital-alt:before{content:""}.fa-hospital-symbol:before{content:""}.fa-hospital-user:before{content:""}.fa-hot-tub:before{content:""}.fa-hotdog:before{content:""}.fa-hotel:before{content:""}.fa-hotjar:before{content:""}.fa-hourglass:before{content:""}.fa-hourglass-end:before{content:""}.fa-hourglass-half:before{content:""}.fa-hourglass-start:before{content:""}.fa-house-damage:before{content:""}.fa-house-user:before{content:""}.fa-houzz:before{content:""}.fa-hryvnia:before{content:""}.fa-html5:before{content:""}.fa-hubspot:before{content:""}.fa-i-cursor:before{content:""}.fa-ice-cream:before{content:""}.fa-icicles:before{content:""}.fa-icons:before{content:""}.fa-id-badge:before{content:""}.fa-id-card:before{content:""}.fa-id-card-alt:before{content:""}.fa-ideal:before{content:""}.fa-igloo:before{content:""}.fa-image:before{content:""}.fa-images:before{content:""}.fa-imdb:before{content:""}.fa-inbox:before{content:""}.fa-indent:before{content:""}.fa-industry:before{content:""}.fa-infinity:before{content:""}.fa-info:before{content:""}.fa-info-circle:before{content:""}.fa-instagram:before{content:""}.fa-instagram-square:before{content:""}.fa-intercom:before{content:""}.fa-internet-explorer:before{content:""}.fa-invision:before{content:""}.fa-ioxhost:before{content:""}.fa-italic:before{content:""}.fa-itch-io:before{content:""}.fa-itunes:before{content:""}.fa-itunes-note:before{content:""}.fa-java:before{content:""}.fa-jedi:before{content:""}.fa-jedi-order:before{content:""}.fa-jenkins:before{content:""}.fa-jira:before{content:""}.fa-joget:before{content:""}.fa-joint:before{content:""}.fa-joomla:before{content:""}.fa-journal-whills:before{content:""}.fa-js:before{content:""}.fa-js-square:before{content:""}.fa-jsfiddle:before{content:""}.fa-kaaba:before{content:""}.fa-kaggle:before{content:""}.fa-key:before{content:""}.fa-keybase:before{content:""}.fa-keyboard:before{content:""}.fa-keycdn:before{content:""}.fa-khanda:before{content:""}.fa-kickstarter:before{content:""}.fa-kickstarter-k:before{content:""}.fa-kiss:before{content:""}.fa-kiss-beam:before{content:""}.fa-kiss-wink-heart:before{content:""}.fa-kiwi-bird:before{content:""}.fa-korvue:before{content:""}.fa-landmark:before{content:""}.fa-language:before{content:""}.fa-laptop:before{content:""}.fa-laptop-code:before{content:""}.fa-laptop-house:before{content:""}.fa-laptop-medical:before{content:""}.fa-laravel:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-laugh:before{content:""}.fa-laugh-beam:before{content:""}.fa-laugh-squint:before{content:""}.fa-laugh-wink:before{content:""}.fa-layer-group:before{content:""}.fa-leaf:before{content:""}.fa-leanpub:before{content:""}.fa-lemon:before{content:""}.fa-less:before{content:""}.fa-less-than:before{content:""}.fa-less-than-equal:before{content:""}.fa-level-down-alt:before{content:""}.fa-level-up-alt:before{content:""}.fa-life-ring:before{content:""}.fa-lightbulb:before{content:""}.fa-line:before{content:""}.fa-link:before{content:""}.fa-linkedin:before{content:""}.fa-linkedin-in:before{content:""}.fa-linode:before{content:""}.fa-linux:before{content:""}.fa-lira-sign:before{content:""}.fa-list:before{content:""}.fa-list-alt:before{content:""}.fa-list-ol:before{content:""}.fa-list-ul:before{content:""}.fa-location-arrow:before{content:""}.fa-lock:before{content:""}.fa-lock-open:before{content:""}.fa-long-arrow-alt-down:before{content:""}.fa-long-arrow-alt-left:before{content:""}.fa-long-arrow-alt-right:before{content:""}.fa-long-arrow-alt-up:before{content:""}.fa-low-vision:before{content:""}.fa-luggage-cart:before{content:""}.fa-lungs:before{content:""}.fa-lungs-virus:before{content:""}.fa-lyft:before{content:""}.fa-magento:before{content:""}.fa-magic:before{content:""}.fa-magnet:before{content:""}.fa-mail-bulk:before{content:""}.fa-mailchimp:before{content:""}.fa-male:before{content:""}.fa-mandalorian:before{content:""}.fa-map:before{content:""}.fa-map-marked:before{content:""}.fa-map-marked-alt:before{content:""}.fa-map-marker:before{content:""}.fa-map-marker-alt:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-markdown:before{content:""}.fa-marker:before{content:""}.fa-mars:before{content:""}.fa-mars-double:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mask:before{content:""}.fa-mastodon:before{content:""}.fa-maxcdn:before{content:""}.fa-mdb:before{content:""}.fa-medal:before{content:""}.fa-medapps:before{content:""}.fa-medium:before{content:""}.fa-medium-m:before{content:""}.fa-medkit:before{content:""}.fa-medrt:before{content:""}.fa-meetup:before{content:""}.fa-megaport:before{content:""}.fa-meh:before{content:""}.fa-meh-blank:before{content:""}.fa-meh-rolling-eyes:before{content:""}.fa-memory:before{content:""}.fa-mendeley:before{content:""}.fa-menorah:before{content:""}.fa-mercury:before{content:""}.fa-meteor:before{content:""}.fa-microblog:before{content:""}.fa-microchip:before{content:""}.fa-microphone:before{content:""}.fa-microphone-alt:before{content:""}.fa-microphone-alt-slash:before{content:""}.fa-microphone-slash:before{content:""}.fa-microscope:before{content:""}.fa-microsoft:before{content:""}.fa-minus:before{content:""}.fa-minus-circle:before{content:""}.fa-minus-square:before{content:""}.fa-mitten:before{content:""}.fa-mix:before{content:""}.fa-mixcloud:before{content:""}.fa-mixer:before{content:""}.fa-mizuni:before{content:""}.fa-mobile:before{content:""}.fa-mobile-alt:before{content:""}.fa-modx:before{content:""}.fa-monero:before{content:""}.fa-money-bill:before{content:""}.fa-money-bill-alt:before{content:""}.fa-money-bill-wave:before{content:""}.fa-money-bill-wave-alt:before{content:""}.fa-money-check:before{content:""}.fa-money-check-alt:before{content:""}.fa-monument:before{content:""}.fa-moon:before{content:""}.fa-mortar-pestle:before{content:""}.fa-mosque:before{content:""}.fa-motorcycle:before{content:""}.fa-mountain:before{content:""}.fa-mouse:before{content:""}.fa-mouse-pointer:before{content:""}.fa-mug-hot:before{content:""}.fa-music:before{content:""}.fa-napster:before{content:""}.fa-neos:before{content:""}.fa-network-wired:before{content:""}.fa-neuter:before{content:""}.fa-newspaper:before{content:""}.fa-nimblr:before{content:""}.fa-node:before{content:""}.fa-node-js:before{content:""}.fa-not-equal:before{content:""}.fa-notes-medical:before{content:""}.fa-npm:before{content:""}.fa-ns8:before{content:""}.fa-nutritionix:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-oil-can:before{content:""}.fa-old-republic:before{content:""}.fa-om:before{content:""}.fa-opencart:before{content:""}.fa-openid:before{content:""}.fa-opera:before{content:""}.fa-optin-monster:before{content:""}.fa-orcid:before{content:""}.fa-osi:before{content:""}.fa-otter:before{content:""}.fa-outdent:before{content:""}.fa-page4:before{content:""}.fa-pagelines:before{content:""}.fa-pager:before{content:""}.fa-paint-brush:before{content:""}.fa-paint-roller:before{content:""}.fa-palette:before{content:""}.fa-palfed:before{content:""}.fa-pallet:before{content:""}.fa-paper-plane:before{content:""}.fa-paperclip:before{content:""}.fa-parachute-box:before{content:""}.fa-paragraph:before{content:""}.fa-parking:before{content:""}.fa-passport:before{content:""}.fa-pastafarianism:before{content:""}.fa-paste:before{content:""}.fa-patreon:before{content:""}.fa-pause:before{content:""}.fa-pause-circle:before{content:""}.fa-paw:before{content:""}.fa-paypal:before{content:""}.fa-peace:before{content:""}.fa-pen:before{content:""}.fa-pen-alt:before{content:""}.fa-pen-fancy:before{content:""}.fa-pen-nib:before{content:""}.fa-pen-square:before{content:""}.fa-pencil-alt:before{content:""}.fa-pencil-ruler:before{content:""}.fa-penny-arcade:before{content:""}.fa-people-arrows:before{content:""}.fa-people-carry:before{content:""}.fa-pepper-hot:before{content:""}.fa-percent:before{content:""}.fa-percentage:before{content:""}.fa-periscope:before{content:""}.fa-person-booth:before{content:""}.fa-phabricator:before{content:""}.fa-phoenix-framework:before{content:""}.fa-phoenix-squadron:before{content:""}.fa-phone:before{content:""}.fa-phone-alt:before{content:""}.fa-phone-slash:before{content:""}.fa-phone-square:before{content:""}.fa-phone-square-alt:before{content:""}.fa-phone-volume:before{content:""}.fa-photo-video:before{content:""}.fa-php:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-pied-piper-hat:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-square:before{content:""}.fa-piggy-bank:before{content:""}.fa-pills:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-p:before{content:""}.fa-pinterest-square:before{content:""}.fa-pizza-slice:before{content:""}.fa-place-of-worship:before{content:""}.fa-plane:before{content:""}.fa-plane-arrival:before{content:""}.fa-plane-departure:before{content:""}.fa-plane-slash:before{content:""}.fa-play:before{content:""}.fa-play-circle:before{content:""}.fa-playstation:before{content:""}.fa-plug:before{content:""}.fa-plus:before{content:""}.fa-plus-circle:before{content:""}.fa-plus-square:before{content:""}.fa-podcast:before{content:""}.fa-poll:before{content:""}.fa-poll-h:before{content:""}.fa-poo:before{content:""}.fa-poo-storm:before{content:""}.fa-poop:before{content:""}.fa-portrait:before{content:""}.fa-pound-sign:before{content:""}.fa-power-off:before{content:""}.fa-pray:before{content:""}.fa-praying-hands:before{content:""}.fa-prescription:before{content:""}.fa-prescription-bottle:before{content:""}.fa-prescription-bottle-alt:before{content:""}.fa-print:before{content:""}.fa-procedures:before{content:""}.fa-product-hunt:before{content:""}.fa-project-diagram:before{content:""}.fa-pump-medical:before{content:""}.fa-pump-soap:before{content:""}.fa-pushed:before{content:""}.fa-puzzle-piece:before{content:""}.fa-python:before{content:""}.fa-qq:before{content:""}.fa-qrcode:before{content:""}.fa-question:before{content:""}.fa-question-circle:before{content:""}.fa-quidditch:before{content:""}.fa-quinscape:before{content:""}.fa-quora:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-quran:before{content:""}.fa-r-project:before{content:""}.fa-radiation:before{content:""}.fa-radiation-alt:before{content:""}.fa-rainbow:before{content:""}.fa-random:before{content:""}.fa-raspberry-pi:before{content:""}.fa-ravelry:before{content:""}.fa-react:before{content:""}.fa-reacteurope:before{content:""}.fa-readme:before{content:""}.fa-rebel:before{content:""}.fa-receipt:before{content:""}.fa-record-vinyl:before{content:""}.fa-recycle:before{content:""}.fa-red-river:before{content:""}.fa-reddit:before{content:""}.fa-reddit-alien:before{content:""}.fa-reddit-square:before{content:""}.fa-redhat:before{content:""}.fa-redo:before{content:""}.fa-redo-alt:before{content:""}.fa-registered:before{content:""}.fa-remove-format:before{content:""}.fa-renren:before{content:""}.fa-reply:before{content:""}.fa-reply-all:before{content:""}.fa-replyd:before{content:""}.fa-republican:before{content:""}.fa-researchgate:before{content:""}.fa-resolving:before{content:""}.fa-restroom:before{content:""}.fa-retweet:before{content:""}.fa-rev:before{content:""}.fa-ribbon:before{content:""}.fa-ring:before{content:""}.fa-road:before{content:""}.fa-robot:before{content:""}.fa-rocket:before{content:""}.fa-rocketchat:before{content:""}.fa-rockrms:before{content:""}.fa-route:before{content:""}.fa-rss:before{content:""}.fa-rss-square:before{content:""}.fa-ruble-sign:before{content:""}.fa-ruler:before{content:""}.fa-ruler-combined:before{content:""}.fa-ruler-horizontal:before{content:""}.fa-ruler-vertical:before{content:""}.fa-running:before{content:""}.fa-rupee-sign:before{content:""}.fa-rust:before{content:""}.fa-sad-cry:before{content:""}.fa-sad-tear:before{content:""}.fa-safari:before{content:""}.fa-salesforce:before{content:""}.fa-sass:before{content:""}.fa-satellite:before{content:""}.fa-satellite-dish:before{content:""}.fa-save:before{content:""}.fa-schlix:before{content:""}.fa-school:before{content:""}.fa-screwdriver:before{content:""}.fa-scribd:before{content:""}.fa-scroll:before{content:""}.fa-sd-card:before{content:""}.fa-search:before{content:""}.fa-search-dollar:before{content:""}.fa-search-location:before{content:""}.fa-search-minus:before{content:""}.fa-search-plus:before{content:""}.fa-searchengin:before{content:""}.fa-seedling:before{content:""}.fa-sellcast:before{content:""}.fa-sellsy:before{content:""}.fa-server:before{content:""}.fa-servicestack:before{content:""}.fa-shapes:before{content:""}.fa-share:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-share-square:before{content:""}.fa-shekel-sign:before{content:""}.fa-shield-alt:before{content:""}.fa-shield-virus:before{content:""}.fa-ship:before{content:""}.fa-shipping-fast:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-shoe-prints:before{content:""}.fa-shopify:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-shopping-cart:before{content:""}.fa-shopware:before{content:""}.fa-shower:before{content:""}.fa-shuttle-van:before{content:""}.fa-sign:before{content:""}.fa-sign-in-alt:before{content:""}.fa-sign-language:before{content:""}.fa-sign-out-alt:before{content:""}.fa-signal:before{content:""}.fa-signature:before{content:""}.fa-sim-card:before{content:""}.fa-simplybuilt:before{content:""}.fa-sink:before{content:""}.fa-sistrix:before{content:""}.fa-sitemap:before{content:""}.fa-sith:before{content:""}.fa-skating:before{content:""}.fa-sketch:before{content:""}.fa-skiing:before{content:""}.fa-skiing-nordic:before{content:""}.fa-skull:before{content:""}.fa-skull-crossbones:before{content:""}.fa-skyatlas:before{content:""}.fa-skype:before{content:""}.fa-slack:before{content:""}.fa-slack-hash:before{content:""}.fa-slash:before{content:""}.fa-sleigh:before{content:""}.fa-sliders-h:before{content:""}.fa-slideshare:before{content:""}.fa-smile:before{content:""}.fa-smile-beam:before{content:""}.fa-smile-wink:before{content:""}.fa-smog:before{content:""}.fa-smoking:before{content:""}.fa-smoking-ban:before{content:""}.fa-sms:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-snowboarding:before{content:""}.fa-snowflake:before{content:""}.fa-snowman:before{content:""}.fa-snowplow:before{content:""}.fa-soap:before{content:""}.fa-socks:before{content:""}.fa-solar-panel:before{content:""}.fa-sort:before{content:""}.fa-sort-alpha-down:before{content:""}.fa-sort-alpha-down-alt:before{content:""}.fa-sort-alpha-up:before{content:""}.fa-sort-alpha-up-alt:before{content:""}.fa-sort-amount-down:before{content:""}.fa-sort-amount-down-alt:before{content:""}.fa-sort-amount-up:before{content:""}.fa-sort-amount-up-alt:before{content:""}.fa-sort-down:before{content:""}.fa-sort-numeric-down:before{content:""}.fa-sort-numeric-down-alt:before{content:""}.fa-sort-numeric-up:before{content:""}.fa-sort-numeric-up-alt:before{content:""}.fa-sort-up:before{content:""}.fa-soundcloud:before{content:""}.fa-sourcetree:before{content:""}.fa-spa:before{content:""}.fa-space-shuttle:before{content:""}.fa-speakap:before{content:""}.fa-speaker-deck:before{content:""}.fa-spell-check:before{content:""}.fa-spider:before{content:""}.fa-spinner:before{content:""}.fa-splotch:before{content:""}.fa-spotify:before{content:""}.fa-spray-can:before{content:""}.fa-square:before{content:""}.fa-square-full:before{content:""}.fa-square-root-alt:before{content:""}.fa-squarespace:before{content:""}.fa-stack-exchange:before{content:""}.fa-stack-overflow:before{content:""}.fa-stackpath:before{content:""}.fa-stamp:before{content:""}.fa-star:before{content:""}.fa-star-and-crescent:before{content:""}.fa-star-half:before{content:""}.fa-star-half-alt:before{content:""}.fa-star-of-david:before{content:""}.fa-star-of-life:before{content:""}.fa-staylinked:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-steam-symbol:before{content:""}.fa-step-backward:before{content:""}.fa-step-forward:before{content:""}.fa-stethoscope:before{content:""}.fa-sticker-mule:before{content:""}.fa-sticky-note:before{content:""}.fa-stop:before{content:""}.fa-stop-circle:before{content:""}.fa-stopwatch:before{content:""}.fa-stopwatch-20:before{content:""}.fa-store:before{content:""}.fa-store-alt:before{content:""}.fa-store-alt-slash:before{content:""}.fa-store-slash:before{content:""}.fa-strava:before{content:""}.fa-stream:before{content:""}.fa-street-view:before{content:""}.fa-strikethrough:before{content:""}.fa-stripe:before{content:""}.fa-stripe-s:before{content:""}.fa-stroopwafel:before{content:""}.fa-studiovinari:before{content:""}.fa-stumbleupon:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-subscript:before{content:""}.fa-subway:before{content:""}.fa-suitcase:before{content:""}.fa-suitcase-rolling:before{content:""}.fa-sun:before{content:""}.fa-superpowers:before{content:""}.fa-superscript:before{content:""}.fa-supple:before{content:""}.fa-surprise:before{content:""}.fa-suse:before{content:""}.fa-swatchbook:before{content:""}.fa-swift:before{content:""}.fa-swimmer:before{content:""}.fa-swimming-pool:before{content:""}.fa-symfony:before{content:""}.fa-synagogue:before{content:""}.fa-sync:before{content:""}.fa-sync-alt:before{content:""}.fa-syringe:before{content:""}.fa-table:before{content:""}.fa-table-tennis:before{content:""}.fa-tablet:before{content:""}.fa-tablet-alt:before{content:""}.fa-tablets:before{content:""}.fa-tachometer-alt:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-tape:before{content:""}.fa-tasks:before{content:""}.fa-taxi:before{content:""}.fa-teamspeak:before{content:""}.fa-teeth:before{content:""}.fa-teeth-open:before{content:""}.fa-telegram:before{content:""}.fa-telegram-plane:before{content:""}.fa-temperature-high:before{content:""}.fa-temperature-low:before{content:""}.fa-tencent-weibo:before{content:""}.fa-tenge:before{content:""}.fa-terminal:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-th:before{content:""}.fa-th-large:before{content:""}.fa-th-list:before{content:""}.fa-the-red-yeti:before{content:""}.fa-theater-masks:before{content:""}.fa-themeco:before{content:""}.fa-themeisle:before{content:""}.fa-thermometer:before{content:""}.fa-thermometer-empty:before{content:""}.fa-thermometer-full:before{content:""}.fa-thermometer-half:before{content:""}.fa-thermometer-quarter:before{content:""}.fa-thermometer-three-quarters:before{content:""}.fa-think-peaks:before{content:""}.fa-thumbs-down:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbtack:before{content:""}.fa-ticket-alt:before{content:""}.fa-tiktok:before{content:""}.fa-times:before{content:""}.fa-times-circle:before{content:""}.fa-tint:before{content:""}.fa-tint-slash:before{content:""}.fa-tired:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-toilet:before{content:""}.fa-toilet-paper:before{content:""}.fa-toilet-paper-slash:before{content:""}.fa-toolbox:before{content:""}.fa-tools:before{content:""}.fa-tooth:before{content:""}.fa-torah:before{content:""}.fa-torii-gate:before{content:""}.fa-tractor:before{content:""}.fa-trade-federation:before{content:""}.fa-trademark:before{content:""}.fa-traffic-light:before{content:""}.fa-trailer:before{content:""}.fa-train:before{content:""}.fa-tram:before{content:""}.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-trash:before{content:""}.fa-trash-alt:before{content:""}.fa-trash-restore:before{content:""}.fa-trash-restore-alt:before{content:""}.fa-tree:before{content:""}.fa-trello:before{content:""}.fa-tripadvisor:before{content:""}.fa-trophy:before{content:""}.fa-truck:before{content:""}.fa-truck-loading:before{content:""}.fa-truck-monster:before{content:""}.fa-truck-moving:before{content:""}.fa-truck-pickup:before{content:""}.fa-tshirt:before{content:""}.fa-tty:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-tv:before{content:""}.fa-twitch:before{content:""}.fa-twitter:before{content:""}.fa-twitter-square:before{content:""}.fa-typo3:before{content:""}.fa-uber:before{content:""}.fa-ubuntu:before{content:""}.fa-uikit:before{content:""}.fa-umbraco:before{content:""}.fa-umbrella:before{content:""}.fa-umbrella-beach:before{content:""}.fa-underline:before{content:""}.fa-undo:before{content:""}.fa-undo-alt:before{content:""}.fa-uniregistry:before{content:""}.fa-unity:before{content:""}.fa-universal-access:before{content:""}.fa-university:before{content:""}.fa-unlink:before{content:""}.fa-unlock:before{content:""}.fa-unlock-alt:before{content:""}.fa-unsplash:before{content:""}.fa-untappd:before{content:""}.fa-upload:before{content:""}.fa-ups:before{content:""}.fa-usb:before{content:""}.fa-user:before{content:""}.fa-user-alt:before{content:""}.fa-user-alt-slash:before{content:""}.fa-user-astronaut:before{content:""}.fa-user-check:before{content:""}.fa-user-circle:before{content:""}.fa-user-clock:before{content:""}.fa-user-cog:before{content:""}.fa-user-edit:before{content:""}.fa-user-friends:before{content:""}.fa-user-graduate:before{content:""}.fa-user-injured:before{content:""}.fa-user-lock:before{content:""}.fa-user-md:before{content:""}.fa-user-minus:before{content:""}.fa-user-ninja:before{content:""}.fa-user-nurse:before{content:""}.fa-user-plus:before{content:""}.fa-user-secret:before{content:""}.fa-user-shield:before{content:""}.fa-user-slash:before{content:""}.fa-user-tag:before{content:""}.fa-user-tie:before{content:""}.fa-user-times:before{content:""}.fa-users:before{content:""}.fa-users-cog:before{content:""}.fa-users-slash:before{content:""}.fa-usps:before{content:""}.fa-ussunnah:before{content:""}.fa-utensil-spoon:before{content:""}.fa-utensils:before{content:""}.fa-vaadin:before{content:""}.fa-vector-square:before{content:""}.fa-venus:before{content:""}.fa-venus-double:before{content:""}.fa-venus-mars:before{content:""}.fa-viacoin:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-vial:before{content:""}.fa-vials:before{content:""}.fa-viber:before{content:""}.fa-video:before{content:""}.fa-video-slash:before{content:""}.fa-vihara:before{content:""}.fa-vimeo:before{content:""}.fa-vimeo-square:before{content:""}.fa-vimeo-v:before{content:""}.fa-vine:before{content:""}.fa-virus:before{content:""}.fa-virus-slash:before{content:""}.fa-viruses:before{content:""}.fa-vk:before{content:""}.fa-vnv:before{content:""}.fa-voicemail:before{content:""}.fa-volleyball-ball:before{content:""}.fa-volume-down:before{content:""}.fa-volume-mute:before{content:""}.fa-volume-off:before{content:""}.fa-volume-up:before{content:""}.fa-vote-yea:before{content:""}.fa-vr-cardboard:before{content:""}.fa-vuejs:before{content:""}.fa-walking:before{content:""}.fa-wallet:before{content:""}.fa-warehouse:before{content:""}.fa-water:before{content:""}.fa-wave-square:before{content:""}.fa-waze:before{content:""}.fa-weebly:before{content:""}.fa-weibo:before{content:""}.fa-weight:before{content:""}.fa-weight-hanging:before{content:""}.fa-weixin:before{content:""}.fa-whatsapp:before{content:""}.fa-whatsapp-square:before{content:""}.fa-wheelchair:before{content:""}.fa-whmcs:before{content:""}.fa-wifi:before{content:""}.fa-wikipedia-w:before{content:""}.fa-wind:before{content:""}.fa-window-close:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-windows:before{content:""}.fa-wine-bottle:before{content:""}.fa-wine-glass:before{content:""}.fa-wine-glass-alt:before{content:""}.fa-wix:before{content:""}.fa-wizards-of-the-coast:before{content:""}.fa-wolf-pack-battalion:before{content:""}.fa-won-sign:before{content:""}.fa-wordpress:before{content:""}.fa-wordpress-simple:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpexplorer:before{content:""}.fa-wpforms:before{content:""}.fa-wpressr:before{content:""}.fa-wrench:before{content:""}.fa-x-ray:before{content:""}.fa-xbox:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-y-combinator:before{content:""}.fa-yahoo:before{content:""}.fa-yammer:before{content:""}.fa-yandex:before{content:""}.fa-yandex-international:before{content:""}.fa-yarn:before{content:""}.fa-yelp:before{content:""}.fa-yen-sign:before{content:""}.fa-yin-yang:before{content:""}.fa-yoast:before{content:""}.fa-youtube:before{content:""}.fa-youtube-square:before{content:""}.fa-zhihu:before{content:""}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.converse-website converse-icon:before,.conversejs converse-icon:before{content:none!important}.converse-website .far:not(converse-icon),.conversejs .far:not(converse-icon){font-family:ConverseFontAwesomeRegular!important;font-weight:400}.converse-website .fa:not(converse-icon),.converse-website .fas:not(converse-icon),.conversejs .fa:not(converse-icon),.conversejs .fas:not(converse-icon){font-family:ConverseFontAwesomeSolid!important;font-weight:900}.converse-website .fab:not(converse-icon),.conversejs .fab:not(converse-icon){font-family:ConverseFontAwesomeBrands}.converse-website .fa:not(converse-icon),.converse-website .fab:not(converse-icon),.converse-website .far:not(converse-icon),.converse-website .fas:not(converse-icon),.conversejs .fa:not(converse-icon),.conversejs .fab:not(converse-icon),.conversejs .far:not(converse-icon),.conversejs .fas:not(converse-icon){display:inline-block;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.converse-website .fa-info-circle,.conversejs .fa-info-circle{height:1em}.conversejs :root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.conversejs *,.conversejs ::after,.conversejs ::before{box-sizing:border-box}.conversejs html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.conversejs article,.conversejs aside,.conversejs figcaption,.conversejs figure,.conversejs footer,.conversejs header,.conversejs hgroup,.conversejs main,.conversejs nav,.conversejs section{display:block}.conversejs body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}.conversejs [tabindex="-1"]:focus:not(:focus-visible){outline:0!important}.conversejs hr{box-sizing:content-box;height:0;overflow:visible}.conversejs h1,.conversejs h2,.conversejs h3,.conversejs h4,.conversejs h5,.conversejs h6{margin-top:0;margin-bottom:.5rem}.conversejs p{margin-top:0;margin-bottom:1rem}.conversejs abbr[data-original-title],.conversejs abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.conversejs address{margin-bottom:1rem;font-style:normal;line-height:inherit}.conversejs dl,.conversejs ol,.conversejs ul{margin-top:0;margin-bottom:1rem}.conversejs ol ol,.conversejs ol ul,.conversejs ul ol,.conversejs ul ul{margin-bottom:0}.conversejs dt{font-weight:700}.conversejs dd{margin-bottom:.5rem;margin-left:0}.conversejs blockquote{margin:0 0 1rem}.conversejs b,.conversejs strong{font-weight:bolder}.conversejs small{font-size:80%}.conversejs sub,.conversejs sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.conversejs sub{bottom:-.25em}.conversejs sup{top:-.5em}.conversejs a{color:#007bff;text-decoration:none;background-color:transparent}.conversejs a:hover{color:#0056b3;text-decoration:underline}.conversejs a:not([href]):not([class]){color:inherit;text-decoration:none}.conversejs a:not([href]):not([class]):hover{color:inherit;text-decoration:none}.conversejs code,.conversejs kbd,.conversejs pre,.conversejs samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}.conversejs pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}.conversejs figure{margin:0 0 1rem}.conversejs img{vertical-align:middle;border-style:none}.conversejs svg{overflow:hidden;vertical-align:middle}.conversejs table{border-collapse:collapse}.conversejs caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}.conversejs th{text-align:inherit;text-align:-webkit-match-parent}.conversejs label{display:inline-block;margin-bottom:.5rem}.conversejs button{border-radius:0}.conversejs button:focus:not(:focus-visible){outline:0}.conversejs button,.conversejs input,.conversejs optgroup,.conversejs select,.conversejs textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.conversejs button,.conversejs input{overflow:visible}.conversejs button,.conversejs select{text-transform:none}.conversejs [role=button]{cursor:pointer}.conversejs select{word-wrap:normal}.conversejs [type=button],.conversejs [type=reset],.conversejs [type=submit],.conversejs button{-webkit-appearance:button}.conversejs [type=button]:not(:disabled),.conversejs [type=reset]:not(:disabled),.conversejs [type=submit]:not(:disabled),.conversejs button:not(:disabled){cursor:pointer}.conversejs [type=button]::-moz-focus-inner,.conversejs [type=reset]::-moz-focus-inner,.conversejs [type=submit]::-moz-focus-inner,.conversejs button::-moz-focus-inner{padding:0;border-style:none}.conversejs input[type=checkbox],.conversejs input[type=radio]{box-sizing:border-box;padding:0}.conversejs textarea{overflow:auto;resize:vertical}.conversejs fieldset{min-width:0;padding:0;margin:0;border:0}.conversejs legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}.conversejs progress{vertical-align:baseline}.conversejs [type=number]::-webkit-inner-spin-button,.conversejs [type=number]::-webkit-outer-spin-button{height:auto}.conversejs [type=search]{outline-offset:-2px;-webkit-appearance:none}.conversejs [type=search]::-webkit-search-decoration{-webkit-appearance:none}.conversejs ::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.conversejs output{display:inline-block}.conversejs summary{display:list-item;cursor:pointer}.conversejs template{display:none}.conversejs [hidden]{display:none!important}.conversejs .h1,.conversejs .h2,.conversejs .h3,.conversejs .h4,.conversejs .h5,.conversejs .h6,.conversejs h1,.conversejs h2,.conversejs h3,.conversejs h4,.conversejs h5,.conversejs h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.conversejs .h1,.conversejs h1{font-size:2.5rem}.conversejs .h2,.conversejs h2{font-size:2rem}.conversejs .h3,.conversejs h3{font-size:1.75rem}.conversejs .h4,.conversejs h4{font-size:1.5rem}.conversejs .h5,.conversejs h5{font-size:1.25rem}.conversejs .h6,.conversejs h6{font-size:1rem}.conversejs .lead{font-size:1.25rem;font-weight:300}.conversejs .display-1{font-size:6rem;font-weight:300;line-height:1.2}.conversejs .display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.conversejs .display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.conversejs .display-4{font-size:3.5rem;font-weight:300;line-height:1.2}.conversejs hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.conversejs .small,.conversejs small{font-size:80%;font-weight:400}.conversejs .mark,.conversejs mark{padding:.2em;background-color:#fcf8e3}.conversejs .list-unstyled{padding-left:0;list-style:none}.conversejs .list-inline{padding-left:0;list-style:none}.conversejs .list-inline-item{display:inline-block}.conversejs .list-inline-item:not(:last-child){margin-right:.5rem}.conversejs .initialism{font-size:90%;text-transform:uppercase}.conversejs .blockquote{margin-bottom:1rem;font-size:1.25rem}.conversejs .blockquote-footer{display:block;font-size:80%;color:#6c757d}.conversejs .blockquote-footer::before{content:"— "}.conversejs .img-fluid{max-width:100%;height:auto}.conversejs .img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.conversejs .figure{display:inline-block}.conversejs .figure-img{margin-bottom:.5rem;line-height:1}.conversejs .figure-caption{font-size:90%;color:#6c757d}.conversejs .container,.conversejs .container-fluid,.conversejs .container-lg,.conversejs .container-md,.conversejs .container-sm,.conversejs .container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width:576px){.conversejs .container,.conversejs .container-sm{max-width:540px}}@media(min-width:768px){.conversejs .container,.conversejs .container-md,.conversejs .container-sm{max-width:720px}}@media(min-width:992px){.conversejs .container,.conversejs .container-lg,.conversejs .container-md,.conversejs .container-sm{max-width:960px}}@media(min-width:1200px){.conversejs .container,.conversejs .container-lg,.conversejs .container-md,.conversejs .container-sm,.conversejs .container-xl{max-width:1140px}}.conversejs .row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.conversejs .no-gutters{margin-right:0;margin-left:0}.conversejs .no-gutters>.col,.conversejs .no-gutters>[class*=col-]{padding-right:0;padding-left:0}.conversejs .col,.conversejs .col-1,.conversejs .col-10,.conversejs .col-11,.conversejs .col-12,.conversejs .col-2,.conversejs .col-3,.conversejs .col-4,.conversejs .col-5,.conversejs .col-6,.conversejs .col-7,.conversejs .col-8,.conversejs .col-9,.conversejs .col-auto,.conversejs .col-lg,.conversejs .col-lg-1,.conversejs .col-lg-10,.conversejs .col-lg-11,.conversejs .col-lg-12,.conversejs .col-lg-2,.conversejs .col-lg-3,.conversejs .col-lg-4,.conversejs .col-lg-5,.conversejs .col-lg-6,.conversejs .col-lg-7,.conversejs .col-lg-8,.conversejs .col-lg-9,.conversejs .col-lg-auto,.conversejs .col-md,.conversejs .col-md-1,.conversejs .col-md-10,.conversejs .col-md-11,.conversejs .col-md-12,.conversejs .col-md-2,.conversejs .col-md-3,.conversejs .col-md-4,.conversejs .col-md-5,.conversejs .col-md-6,.conversejs .col-md-7,.conversejs .col-md-8,.conversejs .col-md-9,.conversejs .col-md-auto,.conversejs .col-sm,.conversejs .col-sm-1,.conversejs .col-sm-10,.conversejs .col-sm-11,.conversejs .col-sm-12,.conversejs .col-sm-2,.conversejs .col-sm-3,.conversejs .col-sm-4,.conversejs .col-sm-5,.conversejs .col-sm-6,.conversejs .col-sm-7,.conversejs .col-sm-8,.conversejs .col-sm-9,.conversejs .col-sm-auto,.conversejs .col-xl,.conversejs .col-xl-1,.conversejs .col-xl-10,.conversejs .col-xl-11,.conversejs .col-xl-12,.conversejs .col-xl-2,.conversejs .col-xl-3,.conversejs .col-xl-4,.conversejs .col-xl-5,.conversejs .col-xl-6,.conversejs .col-xl-7,.conversejs .col-xl-8,.conversejs .col-xl-9,.conversejs .col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.conversejs .col{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-3{flex:0 0 25%;max-width:25%}.conversejs .col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-6{flex:0 0 50%;max-width:50%}.conversejs .col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-9{flex:0 0 75%;max-width:75%}.conversejs .col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-12{flex:0 0 100%;max-width:100%}.conversejs .order-first{order:-1}.conversejs .order-last{order:13}.conversejs .order-0{order:0}.conversejs .order-1{order:1}.conversejs .order-2{order:2}.conversejs .order-3{order:3}.conversejs .order-4{order:4}.conversejs .order-5{order:5}.conversejs .order-6{order:6}.conversejs .order-7{order:7}.conversejs .order-8{order:8}.conversejs .order-9{order:9}.conversejs .order-10{order:10}.conversejs .order-11{order:11}.conversejs .order-12{order:12}.conversejs .offset-1{margin-left:8.3333333333%}.conversejs .offset-2{margin-left:16.6666666667%}.conversejs .offset-3{margin-left:25%}.conversejs .offset-4{margin-left:33.3333333333%}.conversejs .offset-5{margin-left:41.6666666667%}.conversejs .offset-6{margin-left:50%}.conversejs .offset-7{margin-left:58.3333333333%}.conversejs .offset-8{margin-left:66.6666666667%}.conversejs .offset-9{margin-left:75%}.conversejs .offset-10{margin-left:83.3333333333%}.conversejs .offset-11{margin-left:91.6666666667%}@media(min-width:576px){.conversejs .col-sm{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-sm-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-sm-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-sm-3{flex:0 0 25%;max-width:25%}.conversejs .col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-sm-6{flex:0 0 50%;max-width:50%}.conversejs .col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-sm-9{flex:0 0 75%;max-width:75%}.conversejs .col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-sm-12{flex:0 0 100%;max-width:100%}.conversejs .order-sm-first{order:-1}.conversejs .order-sm-last{order:13}.conversejs .order-sm-0{order:0}.conversejs .order-sm-1{order:1}.conversejs .order-sm-2{order:2}.conversejs .order-sm-3{order:3}.conversejs .order-sm-4{order:4}.conversejs .order-sm-5{order:5}.conversejs .order-sm-6{order:6}.conversejs .order-sm-7{order:7}.conversejs .order-sm-8{order:8}.conversejs .order-sm-9{order:9}.conversejs .order-sm-10{order:10}.conversejs .order-sm-11{order:11}.conversejs .order-sm-12{order:12}.conversejs .offset-sm-0{margin-left:0}.conversejs .offset-sm-1{margin-left:8.3333333333%}.conversejs .offset-sm-2{margin-left:16.6666666667%}.conversejs .offset-sm-3{margin-left:25%}.conversejs .offset-sm-4{margin-left:33.3333333333%}.conversejs .offset-sm-5{margin-left:41.6666666667%}.conversejs .offset-sm-6{margin-left:50%}.conversejs .offset-sm-7{margin-left:58.3333333333%}.conversejs .offset-sm-8{margin-left:66.6666666667%}.conversejs .offset-sm-9{margin-left:75%}.conversejs .offset-sm-10{margin-left:83.3333333333%}.conversejs .offset-sm-11{margin-left:91.6666666667%}}@media(min-width:768px){.conversejs .col-md{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-md-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-md-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-md-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-md-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-md-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-md-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-md-3{flex:0 0 25%;max-width:25%}.conversejs .col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-md-6{flex:0 0 50%;max-width:50%}.conversejs .col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-md-9{flex:0 0 75%;max-width:75%}.conversejs .col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-md-12{flex:0 0 100%;max-width:100%}.conversejs .order-md-first{order:-1}.conversejs .order-md-last{order:13}.conversejs .order-md-0{order:0}.conversejs .order-md-1{order:1}.conversejs .order-md-2{order:2}.conversejs .order-md-3{order:3}.conversejs .order-md-4{order:4}.conversejs .order-md-5{order:5}.conversejs .order-md-6{order:6}.conversejs .order-md-7{order:7}.conversejs .order-md-8{order:8}.conversejs .order-md-9{order:9}.conversejs .order-md-10{order:10}.conversejs .order-md-11{order:11}.conversejs .order-md-12{order:12}.conversejs .offset-md-0{margin-left:0}.conversejs .offset-md-1{margin-left:8.3333333333%}.conversejs .offset-md-2{margin-left:16.6666666667%}.conversejs .offset-md-3{margin-left:25%}.conversejs .offset-md-4{margin-left:33.3333333333%}.conversejs .offset-md-5{margin-left:41.6666666667%}.conversejs .offset-md-6{margin-left:50%}.conversejs .offset-md-7{margin-left:58.3333333333%}.conversejs .offset-md-8{margin-left:66.6666666667%}.conversejs .offset-md-9{margin-left:75%}.conversejs .offset-md-10{margin-left:83.3333333333%}.conversejs .offset-md-11{margin-left:91.6666666667%}}@media(min-width:992px){.conversejs .col-lg{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-lg-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-lg-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-lg-3{flex:0 0 25%;max-width:25%}.conversejs .col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-lg-6{flex:0 0 50%;max-width:50%}.conversejs .col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-lg-9{flex:0 0 75%;max-width:75%}.conversejs .col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-lg-12{flex:0 0 100%;max-width:100%}.conversejs .order-lg-first{order:-1}.conversejs .order-lg-last{order:13}.conversejs .order-lg-0{order:0}.conversejs .order-lg-1{order:1}.conversejs .order-lg-2{order:2}.conversejs .order-lg-3{order:3}.conversejs .order-lg-4{order:4}.conversejs .order-lg-5{order:5}.conversejs .order-lg-6{order:6}.conversejs .order-lg-7{order:7}.conversejs .order-lg-8{order:8}.conversejs .order-lg-9{order:9}.conversejs .order-lg-10{order:10}.conversejs .order-lg-11{order:11}.conversejs .order-lg-12{order:12}.conversejs .offset-lg-0{margin-left:0}.conversejs .offset-lg-1{margin-left:8.3333333333%}.conversejs .offset-lg-2{margin-left:16.6666666667%}.conversejs .offset-lg-3{margin-left:25%}.conversejs .offset-lg-4{margin-left:33.3333333333%}.conversejs .offset-lg-5{margin-left:41.6666666667%}.conversejs .offset-lg-6{margin-left:50%}.conversejs .offset-lg-7{margin-left:58.3333333333%}.conversejs .offset-lg-8{margin-left:66.6666666667%}.conversejs .offset-lg-9{margin-left:75%}.conversejs .offset-lg-10{margin-left:83.3333333333%}.conversejs .offset-lg-11{margin-left:91.6666666667%}}@media(min-width:1200px){.conversejs .col-xl{flex-basis:0;flex-grow:1;max-width:100%}.conversejs .row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.conversejs .row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.conversejs .row-cols-xl-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.conversejs .row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.conversejs .row-cols-xl-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.conversejs .col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.conversejs .col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.conversejs .col-xl-3{flex:0 0 25%;max-width:25%}.conversejs .col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.conversejs .col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs .col-xl-6{flex:0 0 50%;max-width:50%}.conversejs .col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs .col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.conversejs .col-xl-9{flex:0 0 75%;max-width:75%}.conversejs .col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.conversejs .col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.conversejs .col-xl-12{flex:0 0 100%;max-width:100%}.conversejs .order-xl-first{order:-1}.conversejs .order-xl-last{order:13}.conversejs .order-xl-0{order:0}.conversejs .order-xl-1{order:1}.conversejs .order-xl-2{order:2}.conversejs .order-xl-3{order:3}.conversejs .order-xl-4{order:4}.conversejs .order-xl-5{order:5}.conversejs .order-xl-6{order:6}.conversejs .order-xl-7{order:7}.conversejs .order-xl-8{order:8}.conversejs .order-xl-9{order:9}.conversejs .order-xl-10{order:10}.conversejs .order-xl-11{order:11}.conversejs .order-xl-12{order:12}.conversejs .offset-xl-0{margin-left:0}.conversejs .offset-xl-1{margin-left:8.3333333333%}.conversejs .offset-xl-2{margin-left:16.6666666667%}.conversejs .offset-xl-3{margin-left:25%}.conversejs .offset-xl-4{margin-left:33.3333333333%}.conversejs .offset-xl-5{margin-left:41.6666666667%}.conversejs .offset-xl-6{margin-left:50%}.conversejs .offset-xl-7{margin-left:58.3333333333%}.conversejs .offset-xl-8{margin-left:66.6666666667%}.conversejs .offset-xl-9{margin-left:75%}.conversejs .offset-xl-10{margin-left:83.3333333333%}.conversejs .offset-xl-11{margin-left:91.6666666667%}}.conversejs .fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.conversejs .fade{transition:none}}.conversejs .fade:not(.show){opacity:0}.conversejs .collapse:not(.show){display:none}.conversejs .collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){.conversejs .collapsing{transition:none}}.conversejs .dropdown,.conversejs .dropleft,.conversejs .dropright,.conversejs .dropup{position:relative}.conversejs .dropdown-toggle{white-space:nowrap}.conversejs .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.conversejs .dropdown-toggle:empty::after{margin-left:0}.conversejs .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.conversejs .dropdown-menu-left{right:auto;left:0}.conversejs .dropdown-menu-right{right:0;left:auto}@media(min-width:576px){.conversejs .dropdown-menu-sm-left{right:auto;left:0}.conversejs .dropdown-menu-sm-right{right:0;left:auto}}@media(min-width:768px){.conversejs .dropdown-menu-md-left{right:auto;left:0}.conversejs .dropdown-menu-md-right{right:0;left:auto}}@media(min-width:992px){.conversejs .dropdown-menu-lg-left{right:auto;left:0}.conversejs .dropdown-menu-lg-right{right:0;left:auto}}@media(min-width:1200px){.conversejs .dropdown-menu-xl-left{right:auto;left:0}.conversejs .dropdown-menu-xl-right{right:0;left:auto}}.conversejs .dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.conversejs .dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.conversejs .dropup .dropdown-toggle:empty::after{margin-left:0}.conversejs .dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.conversejs .dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.conversejs .dropright .dropdown-toggle:empty::after{margin-left:0}.conversejs .dropright .dropdown-toggle::after{vertical-align:0}.conversejs .dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.conversejs .dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.conversejs .dropleft .dropdown-toggle::after{display:none}.conversejs .dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.conversejs .dropleft .dropdown-toggle:empty::after{margin-left:0}.conversejs .dropleft .dropdown-toggle::before{vertical-align:0}.conversejs .dropdown-menu[x-placement^=bottom],.conversejs .dropdown-menu[x-placement^=left],.conversejs .dropdown-menu[x-placement^=right],.conversejs .dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.conversejs .dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.conversejs .dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.conversejs .dropdown-item:focus,.conversejs .dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.conversejs .dropdown-item.active,.conversejs .dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.conversejs .dropdown-item.disabled,.conversejs .dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.conversejs .dropdown-menu.show{display:block}.conversejs .dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.conversejs .dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.conversejs .nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.conversejs .nav-link{display:block;padding:.5rem 1rem}.conversejs .nav-link:focus,.conversejs .nav-link:hover{text-decoration:none}.conversejs .nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.conversejs .nav-tabs{border-bottom:1px solid #dee2e6}.conversejs .nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.conversejs .nav-tabs .nav-link:focus,.conversejs .nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.conversejs .nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.conversejs .nav-tabs .nav-item.show .nav-link,.conversejs .nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.conversejs .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.conversejs .nav-pills .nav-link{border-radius:.25rem}.conversejs .nav-pills .nav-link.active,.conversejs .nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.conversejs .nav-fill .nav-item,.conversejs .nav-fill>.nav-link{flex:1 1 auto;text-align:center}.conversejs .nav-justified .nav-item,.conversejs .nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.conversejs .tab-content>.tab-pane{display:none}.conversejs .tab-content>.active{display:block}.conversejs .alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.conversejs .alert-heading{color:inherit}.conversejs .alert-link{font-weight:700}.conversejs .alert-dismissible{padding-right:4rem}.conversejs .alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.conversejs .alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.conversejs .alert-primary hr{border-top-color:#9fcdff}.conversejs .alert-primary .alert-link{color:#002752}.conversejs .alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.conversejs .alert-secondary hr{border-top-color:#c8cbcf}.conversejs .alert-secondary .alert-link{color:#202326}.conversejs .alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.conversejs .alert-success hr{border-top-color:#b1dfbb}.conversejs .alert-success .alert-link{color:#0b2e13}.conversejs .alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.conversejs .alert-info hr{border-top-color:#abdde5}.conversejs .alert-info .alert-link{color:#062c33}.conversejs .alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.conversejs .alert-warning hr{border-top-color:#ffe8a1}.conversejs .alert-warning .alert-link{color:#533f03}.conversejs .alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.conversejs .alert-danger hr{border-top-color:#f1b0b7}.conversejs .alert-danger .alert-link{color:#491217}.conversejs .alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.conversejs .alert-light hr{border-top-color:#ececf6}.conversejs .alert-light .alert-link{color:#686868}.conversejs .alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.conversejs .alert-dark hr{border-top-color:#b9bbbe}.conversejs .alert-dark .alert-link{color:#040505}.conversejs .media{display:flex;align-items:flex-start}.conversejs .media-body{flex:1}.conversejs .close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.conversejs .close:hover{color:#000;text-decoration:none}.conversejs .close:not(:disabled):not(.disabled):focus,.conversejs .close:not(:disabled):not(.disabled):hover{opacity:.75}.conversejs button.close{padding:0;background-color:transparent;border:0}.conversejs a.close.disabled{pointer-events:none}.conversejs .popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.conversejs .popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.conversejs .popover .arrow::after,.conversejs .popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.conversejs .bs-popover-auto[x-placement^=top],.conversejs .bs-popover-top{margin-bottom:.5rem}.conversejs .bs-popover-auto[x-placement^=top]>.arrow,.conversejs .bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.conversejs .bs-popover-auto[x-placement^=top]>.arrow::before,.conversejs .bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.conversejs .bs-popover-auto[x-placement^=top]>.arrow::after,.conversejs .bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.conversejs .bs-popover-auto[x-placement^=right],.conversejs .bs-popover-right{margin-left:.5rem}.conversejs .bs-popover-auto[x-placement^=right]>.arrow,.conversejs .bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.conversejs .bs-popover-auto[x-placement^=right]>.arrow::before,.conversejs .bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.conversejs .bs-popover-auto[x-placement^=right]>.arrow::after,.conversejs .bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.conversejs .bs-popover-auto[x-placement^=bottom],.conversejs .bs-popover-bottom{margin-top:.5rem}.conversejs .bs-popover-auto[x-placement^=bottom]>.arrow,.conversejs .bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.conversejs .bs-popover-auto[x-placement^=bottom]>.arrow::before,.conversejs .bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.conversejs .bs-popover-auto[x-placement^=bottom]>.arrow::after,.conversejs .bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.conversejs .bs-popover-auto[x-placement^=bottom] .popover-header::before,.conversejs .bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.conversejs .bs-popover-auto[x-placement^=left],.conversejs .bs-popover-left{margin-right:.5rem}.conversejs .bs-popover-auto[x-placement^=left]>.arrow,.conversejs .bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.conversejs .bs-popover-auto[x-placement^=left]>.arrow::before,.conversejs .bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.conversejs .bs-popover-auto[x-placement^=left]>.arrow::after,.conversejs .bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.conversejs .popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.conversejs .popover-header:empty{display:none}.conversejs .popover-body{padding:.5rem .75rem;color:#212529}.conversejs .align-baseline{vertical-align:baseline!important}.conversejs .align-top{vertical-align:top!important}.conversejs .align-middle{vertical-align:middle!important}.conversejs .align-bottom{vertical-align:bottom!important}.conversejs .align-text-bottom{vertical-align:text-bottom!important}.conversejs .align-text-top{vertical-align:text-top!important}.conversejs .bg-primary{background-color:#007bff!important}.conversejs a.bg-primary:focus,.conversejs a.bg-primary:hover,.conversejs button.bg-primary:focus,.conversejs button.bg-primary:hover{background-color:#0062cc!important}.conversejs .bg-secondary{background-color:#6c757d!important}.conversejs a.bg-secondary:focus,.conversejs a.bg-secondary:hover,.conversejs button.bg-secondary:focus,.conversejs button.bg-secondary:hover{background-color:#545b62!important}.conversejs .bg-success{background-color:#28a745!important}.conversejs a.bg-success:focus,.conversejs a.bg-success:hover,.conversejs button.bg-success:focus,.conversejs button.bg-success:hover{background-color:#1e7e34!important}.conversejs .bg-info{background-color:#17a2b8!important}.conversejs a.bg-info:focus,.conversejs a.bg-info:hover,.conversejs button.bg-info:focus,.conversejs button.bg-info:hover{background-color:#117a8b!important}.conversejs .bg-warning{background-color:#ffc107!important}.conversejs a.bg-warning:focus,.conversejs a.bg-warning:hover,.conversejs button.bg-warning:focus,.conversejs button.bg-warning:hover{background-color:#d39e00!important}.conversejs .bg-danger{background-color:#dc3545!important}.conversejs a.bg-danger:focus,.conversejs a.bg-danger:hover,.conversejs button.bg-danger:focus,.conversejs button.bg-danger:hover{background-color:#bd2130!important}.conversejs .bg-light{background-color:#f8f9fa!important}.conversejs a.bg-light:focus,.conversejs a.bg-light:hover,.conversejs button.bg-light:focus,.conversejs button.bg-light:hover{background-color:#dae0e5!important}.conversejs .bg-dark{background-color:#343a40!important}.conversejs a.bg-dark:focus,.conversejs a.bg-dark:hover,.conversejs button.bg-dark:focus,.conversejs button.bg-dark:hover{background-color:#1d2124!important}.conversejs .bg-white{background-color:#fff!important}.conversejs .bg-transparent{background-color:transparent!important}.conversejs .border{border:1px solid #dee2e6!important}.conversejs .border-top{border-top:1px solid #dee2e6!important}.conversejs .border-right{border-right:1px solid #dee2e6!important}.conversejs .border-bottom{border-bottom:1px solid #dee2e6!important}.conversejs .border-left{border-left:1px solid #dee2e6!important}.conversejs .border-0{border:0!important}.conversejs .border-top-0{border-top:0!important}.conversejs .border-right-0{border-right:0!important}.conversejs .border-bottom-0{border-bottom:0!important}.conversejs .border-left-0{border-left:0!important}.conversejs .border-primary{border-color:#007bff!important}.conversejs .border-secondary{border-color:#6c757d!important}.conversejs .border-success{border-color:#28a745!important}.conversejs .border-info{border-color:#17a2b8!important}.conversejs .border-warning{border-color:#ffc107!important}.conversejs .border-danger{border-color:#dc3545!important}.conversejs .border-light{border-color:#f8f9fa!important}.conversejs .border-dark{border-color:#343a40!important}.conversejs .border-white{border-color:#fff!important}.conversejs .rounded-sm{border-radius:.2rem!important}.conversejs .rounded{border-radius:.25rem!important}.conversejs .rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.conversejs .rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.conversejs .rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.conversejs .rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.conversejs .rounded-lg{border-radius:.3rem!important}.conversejs .rounded-circle{border-radius:50%!important}.conversejs .rounded-pill{border-radius:50rem!important}.conversejs .rounded-0{border-radius:0!important}.conversejs .clearfix::after{display:block;clear:both;content:""}.conversejs .d-none{display:none!important}.conversejs .d-inline{display:inline!important}.conversejs .d-inline-block{display:inline-block!important}.conversejs .d-block{display:block!important}.conversejs .d-table{display:table!important}.conversejs .d-table-row{display:table-row!important}.conversejs .d-table-cell{display:table-cell!important}.conversejs .d-flex{display:flex!important}.conversejs .d-inline-flex{display:inline-flex!important}@media(min-width:576px){.conversejs .d-sm-none{display:none!important}.conversejs .d-sm-inline{display:inline!important}.conversejs .d-sm-inline-block{display:inline-block!important}.conversejs .d-sm-block{display:block!important}.conversejs .d-sm-table{display:table!important}.conversejs .d-sm-table-row{display:table-row!important}.conversejs .d-sm-table-cell{display:table-cell!important}.conversejs .d-sm-flex{display:flex!important}.conversejs .d-sm-inline-flex{display:inline-flex!important}}@media(min-width:768px){.conversejs .d-md-none{display:none!important}.conversejs .d-md-inline{display:inline!important}.conversejs .d-md-inline-block{display:inline-block!important}.conversejs .d-md-block{display:block!important}.conversejs .d-md-table{display:table!important}.conversejs .d-md-table-row{display:table-row!important}.conversejs .d-md-table-cell{display:table-cell!important}.conversejs .d-md-flex{display:flex!important}.conversejs .d-md-inline-flex{display:inline-flex!important}}@media(min-width:992px){.conversejs .d-lg-none{display:none!important}.conversejs .d-lg-inline{display:inline!important}.conversejs .d-lg-inline-block{display:inline-block!important}.conversejs .d-lg-block{display:block!important}.conversejs .d-lg-table{display:table!important}.conversejs .d-lg-table-row{display:table-row!important}.conversejs .d-lg-table-cell{display:table-cell!important}.conversejs .d-lg-flex{display:flex!important}.conversejs .d-lg-inline-flex{display:inline-flex!important}}@media(min-width:1200px){.conversejs .d-xl-none{display:none!important}.conversejs .d-xl-inline{display:inline!important}.conversejs .d-xl-inline-block{display:inline-block!important}.conversejs .d-xl-block{display:block!important}.conversejs .d-xl-table{display:table!important}.conversejs .d-xl-table-row{display:table-row!important}.conversejs .d-xl-table-cell{display:table-cell!important}.conversejs .d-xl-flex{display:flex!important}.conversejs .d-xl-inline-flex{display:inline-flex!important}}@media print{.conversejs .d-print-none{display:none!important}.conversejs .d-print-inline{display:inline!important}.conversejs .d-print-inline-block{display:inline-block!important}.conversejs .d-print-block{display:block!important}.conversejs .d-print-table{display:table!important}.conversejs .d-print-table-row{display:table-row!important}.conversejs .d-print-table-cell{display:table-cell!important}.conversejs .d-print-flex{display:flex!important}.conversejs .d-print-inline-flex{display:inline-flex!important}}.conversejs .embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.conversejs .embed-responsive::before{display:block;content:""}.conversejs .embed-responsive .embed-responsive-item,.conversejs .embed-responsive embed,.conversejs .embed-responsive iframe,.conversejs .embed-responsive object,.conversejs .embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.conversejs .embed-responsive-21by9::before{padding-top:42.8571428571%}.conversejs .embed-responsive-16by9::before{padding-top:56.25%}.conversejs .embed-responsive-4by3::before{padding-top:75%}.conversejs .embed-responsive-1by1::before{padding-top:100%}.conversejs .flex-row{flex-direction:row!important}.conversejs .flex-column{flex-direction:column!important}.conversejs .flex-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-wrap{flex-wrap:wrap!important}.conversejs .flex-nowrap{flex-wrap:nowrap!important}.conversejs .flex-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-fill{flex:1 1 auto!important}.conversejs .flex-grow-0{flex-grow:0!important}.conversejs .flex-grow-1{flex-grow:1!important}.conversejs .flex-shrink-0{flex-shrink:0!important}.conversejs .flex-shrink-1{flex-shrink:1!important}.conversejs .justify-content-start{justify-content:flex-start!important}.conversejs .justify-content-end{justify-content:flex-end!important}.conversejs .justify-content-center{justify-content:center!important}.conversejs .justify-content-between{justify-content:space-between!important}.conversejs .justify-content-around{justify-content:space-around!important}.conversejs .align-items-start{align-items:flex-start!important}.conversejs .align-items-end{align-items:flex-end!important}.conversejs .align-items-center{align-items:center!important}.conversejs .align-items-baseline{align-items:baseline!important}.conversejs .align-items-stretch{align-items:stretch!important}.conversejs .align-content-start{align-content:flex-start!important}.conversejs .align-content-end{align-content:flex-end!important}.conversejs .align-content-center{align-content:center!important}.conversejs .align-content-between{align-content:space-between!important}.conversejs .align-content-around{align-content:space-around!important}.conversejs .align-content-stretch{align-content:stretch!important}.conversejs .align-self-auto{align-self:auto!important}.conversejs .align-self-start{align-self:flex-start!important}.conversejs .align-self-end{align-self:flex-end!important}.conversejs .align-self-center{align-self:center!important}.conversejs .align-self-baseline{align-self:baseline!important}.conversejs .align-self-stretch{align-self:stretch!important}@media(min-width:576px){.conversejs .flex-sm-row{flex-direction:row!important}.conversejs .flex-sm-column{flex-direction:column!important}.conversejs .flex-sm-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-sm-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-sm-wrap{flex-wrap:wrap!important}.conversejs .flex-sm-nowrap{flex-wrap:nowrap!important}.conversejs .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-sm-fill{flex:1 1 auto!important}.conversejs .flex-sm-grow-0{flex-grow:0!important}.conversejs .flex-sm-grow-1{flex-grow:1!important}.conversejs .flex-sm-shrink-0{flex-shrink:0!important}.conversejs .flex-sm-shrink-1{flex-shrink:1!important}.conversejs .justify-content-sm-start{justify-content:flex-start!important}.conversejs .justify-content-sm-end{justify-content:flex-end!important}.conversejs .justify-content-sm-center{justify-content:center!important}.conversejs .justify-content-sm-between{justify-content:space-between!important}.conversejs .justify-content-sm-around{justify-content:space-around!important}.conversejs .align-items-sm-start{align-items:flex-start!important}.conversejs .align-items-sm-end{align-items:flex-end!important}.conversejs .align-items-sm-center{align-items:center!important}.conversejs .align-items-sm-baseline{align-items:baseline!important}.conversejs .align-items-sm-stretch{align-items:stretch!important}.conversejs .align-content-sm-start{align-content:flex-start!important}.conversejs .align-content-sm-end{align-content:flex-end!important}.conversejs .align-content-sm-center{align-content:center!important}.conversejs .align-content-sm-between{align-content:space-between!important}.conversejs .align-content-sm-around{align-content:space-around!important}.conversejs .align-content-sm-stretch{align-content:stretch!important}.conversejs .align-self-sm-auto{align-self:auto!important}.conversejs .align-self-sm-start{align-self:flex-start!important}.conversejs .align-self-sm-end{align-self:flex-end!important}.conversejs .align-self-sm-center{align-self:center!important}.conversejs .align-self-sm-baseline{align-self:baseline!important}.conversejs .align-self-sm-stretch{align-self:stretch!important}}@media(min-width:768px){.conversejs .flex-md-row{flex-direction:row!important}.conversejs .flex-md-column{flex-direction:column!important}.conversejs .flex-md-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-md-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-md-wrap{flex-wrap:wrap!important}.conversejs .flex-md-nowrap{flex-wrap:nowrap!important}.conversejs .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-md-fill{flex:1 1 auto!important}.conversejs .flex-md-grow-0{flex-grow:0!important}.conversejs .flex-md-grow-1{flex-grow:1!important}.conversejs .flex-md-shrink-0{flex-shrink:0!important}.conversejs .flex-md-shrink-1{flex-shrink:1!important}.conversejs .justify-content-md-start{justify-content:flex-start!important}.conversejs .justify-content-md-end{justify-content:flex-end!important}.conversejs .justify-content-md-center{justify-content:center!important}.conversejs .justify-content-md-between{justify-content:space-between!important}.conversejs .justify-content-md-around{justify-content:space-around!important}.conversejs .align-items-md-start{align-items:flex-start!important}.conversejs .align-items-md-end{align-items:flex-end!important}.conversejs .align-items-md-center{align-items:center!important}.conversejs .align-items-md-baseline{align-items:baseline!important}.conversejs .align-items-md-stretch{align-items:stretch!important}.conversejs .align-content-md-start{align-content:flex-start!important}.conversejs .align-content-md-end{align-content:flex-end!important}.conversejs .align-content-md-center{align-content:center!important}.conversejs .align-content-md-between{align-content:space-between!important}.conversejs .align-content-md-around{align-content:space-around!important}.conversejs .align-content-md-stretch{align-content:stretch!important}.conversejs .align-self-md-auto{align-self:auto!important}.conversejs .align-self-md-start{align-self:flex-start!important}.conversejs .align-self-md-end{align-self:flex-end!important}.conversejs .align-self-md-center{align-self:center!important}.conversejs .align-self-md-baseline{align-self:baseline!important}.conversejs .align-self-md-stretch{align-self:stretch!important}}@media(min-width:992px){.conversejs .flex-lg-row{flex-direction:row!important}.conversejs .flex-lg-column{flex-direction:column!important}.conversejs .flex-lg-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-lg-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-lg-wrap{flex-wrap:wrap!important}.conversejs .flex-lg-nowrap{flex-wrap:nowrap!important}.conversejs .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-lg-fill{flex:1 1 auto!important}.conversejs .flex-lg-grow-0{flex-grow:0!important}.conversejs .flex-lg-grow-1{flex-grow:1!important}.conversejs .flex-lg-shrink-0{flex-shrink:0!important}.conversejs .flex-lg-shrink-1{flex-shrink:1!important}.conversejs .justify-content-lg-start{justify-content:flex-start!important}.conversejs .justify-content-lg-end{justify-content:flex-end!important}.conversejs .justify-content-lg-center{justify-content:center!important}.conversejs .justify-content-lg-between{justify-content:space-between!important}.conversejs .justify-content-lg-around{justify-content:space-around!important}.conversejs .align-items-lg-start{align-items:flex-start!important}.conversejs .align-items-lg-end{align-items:flex-end!important}.conversejs .align-items-lg-center{align-items:center!important}.conversejs .align-items-lg-baseline{align-items:baseline!important}.conversejs .align-items-lg-stretch{align-items:stretch!important}.conversejs .align-content-lg-start{align-content:flex-start!important}.conversejs .align-content-lg-end{align-content:flex-end!important}.conversejs .align-content-lg-center{align-content:center!important}.conversejs .align-content-lg-between{align-content:space-between!important}.conversejs .align-content-lg-around{align-content:space-around!important}.conversejs .align-content-lg-stretch{align-content:stretch!important}.conversejs .align-self-lg-auto{align-self:auto!important}.conversejs .align-self-lg-start{align-self:flex-start!important}.conversejs .align-self-lg-end{align-self:flex-end!important}.conversejs .align-self-lg-center{align-self:center!important}.conversejs .align-self-lg-baseline{align-self:baseline!important}.conversejs .align-self-lg-stretch{align-self:stretch!important}}@media(min-width:1200px){.conversejs .flex-xl-row{flex-direction:row!important}.conversejs .flex-xl-column{flex-direction:column!important}.conversejs .flex-xl-row-reverse{flex-direction:row-reverse!important}.conversejs .flex-xl-column-reverse{flex-direction:column-reverse!important}.conversejs .flex-xl-wrap{flex-wrap:wrap!important}.conversejs .flex-xl-nowrap{flex-wrap:nowrap!important}.conversejs .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.conversejs .flex-xl-fill{flex:1 1 auto!important}.conversejs .flex-xl-grow-0{flex-grow:0!important}.conversejs .flex-xl-grow-1{flex-grow:1!important}.conversejs .flex-xl-shrink-0{flex-shrink:0!important}.conversejs .flex-xl-shrink-1{flex-shrink:1!important}.conversejs .justify-content-xl-start{justify-content:flex-start!important}.conversejs .justify-content-xl-end{justify-content:flex-end!important}.conversejs .justify-content-xl-center{justify-content:center!important}.conversejs .justify-content-xl-between{justify-content:space-between!important}.conversejs .justify-content-xl-around{justify-content:space-around!important}.conversejs .align-items-xl-start{align-items:flex-start!important}.conversejs .align-items-xl-end{align-items:flex-end!important}.conversejs .align-items-xl-center{align-items:center!important}.conversejs .align-items-xl-baseline{align-items:baseline!important}.conversejs .align-items-xl-stretch{align-items:stretch!important}.conversejs .align-content-xl-start{align-content:flex-start!important}.conversejs .align-content-xl-end{align-content:flex-end!important}.conversejs .align-content-xl-center{align-content:center!important}.conversejs .align-content-xl-between{align-content:space-between!important}.conversejs .align-content-xl-around{align-content:space-around!important}.conversejs .align-content-xl-stretch{align-content:stretch!important}.conversejs .align-self-xl-auto{align-self:auto!important}.conversejs .align-self-xl-start{align-self:flex-start!important}.conversejs .align-self-xl-end{align-self:flex-end!important}.conversejs .align-self-xl-center{align-self:center!important}.conversejs .align-self-xl-baseline{align-self:baseline!important}.conversejs .align-self-xl-stretch{align-self:stretch!important}}.conversejs .float-left{float:left!important}.conversejs .float-right{float:right!important}.conversejs .float-none{float:none!important}@media(min-width:576px){.conversejs .float-sm-left{float:left!important}.conversejs .float-sm-right{float:right!important}.conversejs .float-sm-none{float:none!important}}@media(min-width:768px){.conversejs .float-md-left{float:left!important}.conversejs .float-md-right{float:right!important}.conversejs .float-md-none{float:none!important}}@media(min-width:992px){.conversejs .float-lg-left{float:left!important}.conversejs .float-lg-right{float:right!important}.conversejs .float-lg-none{float:none!important}}@media(min-width:1200px){.conversejs .float-xl-left{float:left!important}.conversejs .float-xl-right{float:right!important}.conversejs .float-xl-none{float:none!important}}.conversejs .user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.conversejs .user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.conversejs .user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.conversejs .overflow-auto{overflow:auto!important}.conversejs .overflow-hidden{overflow:hidden!important}.conversejs .position-static{position:static!important}.conversejs .position-relative{position:relative!important}.conversejs .position-absolute{position:absolute!important}.conversejs .position-fixed{position:fixed!important}.conversejs .position-sticky{position:sticky!important}.conversejs .fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.conversejs .fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports(position:sticky){.conversejs .sticky-top{position:sticky;top:0;z-index:1020}}.conversejs .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.conversejs .sr-only-focusable:active,.conversejs .sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.conversejs .shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.conversejs .shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.conversejs .shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.conversejs .shadow-none{box-shadow:none!important}.conversejs .w-25{width:25%!important}.conversejs .w-50{width:50%!important}.conversejs .w-75{width:75%!important}.conversejs .w-100{width:100%!important}.conversejs .w-auto{width:auto!important}.conversejs .h-25{height:25%!important}.conversejs .h-50{height:50%!important}.conversejs .h-75{height:75%!important}.conversejs .h-100{height:100%!important}.conversejs .h-auto{height:auto!important}.conversejs .mw-100{max-width:100%!important}.conversejs .mh-100{max-height:100%!important}.conversejs .min-vw-100{min-width:100vw!important}.conversejs .min-vh-100{min-height:100vh!important}.conversejs .vw-100{width:100vw!important}.conversejs .vh-100{height:100vh!important}.conversejs .m-0{margin:0!important}.conversejs .mt-0,.conversejs .my-0{margin-top:0!important}.conversejs .mr-0,.conversejs .mx-0{margin-right:0!important}.conversejs .mb-0,.conversejs .my-0{margin-bottom:0!important}.conversejs .ml-0,.conversejs .mx-0{margin-left:0!important}.conversejs .m-1{margin:.25rem!important}.conversejs .mt-1,.conversejs .my-1{margin-top:.25rem!important}.conversejs .mr-1,.conversejs .mx-1{margin-right:.25rem!important}.conversejs .mb-1,.conversejs .my-1{margin-bottom:.25rem!important}.conversejs .ml-1,.conversejs .mx-1{margin-left:.25rem!important}.conversejs .m-2{margin:.5rem!important}.conversejs .mt-2,.conversejs .my-2{margin-top:.5rem!important}.conversejs .mr-2,.conversejs .mx-2{margin-right:.5rem!important}.conversejs .mb-2,.conversejs .my-2{margin-bottom:.5rem!important}.conversejs .ml-2,.conversejs .mx-2{margin-left:.5rem!important}.conversejs .m-3{margin:1rem!important}.conversejs .mt-3,.conversejs .my-3{margin-top:1rem!important}.conversejs .mr-3,.conversejs .mx-3{margin-right:1rem!important}.conversejs .mb-3,.conversejs .my-3{margin-bottom:1rem!important}.conversejs .ml-3,.conversejs .mx-3{margin-left:1rem!important}.conversejs .m-4{margin:1.5rem!important}.conversejs .mt-4,.conversejs .my-4{margin-top:1.5rem!important}.conversejs .mr-4,.conversejs .mx-4{margin-right:1.5rem!important}.conversejs .mb-4,.conversejs .my-4{margin-bottom:1.5rem!important}.conversejs .ml-4,.conversejs .mx-4{margin-left:1.5rem!important}.conversejs .m-5{margin:3rem!important}.conversejs .mt-5,.conversejs .my-5{margin-top:3rem!important}.conversejs .mr-5,.conversejs .mx-5{margin-right:3rem!important}.conversejs .mb-5,.conversejs .my-5{margin-bottom:3rem!important}.conversejs .ml-5,.conversejs .mx-5{margin-left:3rem!important}.conversejs .p-0{padding:0!important}.conversejs .pt-0,.conversejs .py-0{padding-top:0!important}.conversejs .pr-0,.conversejs .px-0{padding-right:0!important}.conversejs .pb-0,.conversejs .py-0{padding-bottom:0!important}.conversejs .pl-0,.conversejs .px-0{padding-left:0!important}.conversejs .p-1{padding:.25rem!important}.conversejs .pt-1,.conversejs .py-1{padding-top:.25rem!important}.conversejs .pr-1,.conversejs .px-1{padding-right:.25rem!important}.conversejs .pb-1,.conversejs .py-1{padding-bottom:.25rem!important}.conversejs .pl-1,.conversejs .px-1{padding-left:.25rem!important}.conversejs .p-2{padding:.5rem!important}.conversejs .pt-2,.conversejs .py-2{padding-top:.5rem!important}.conversejs .pr-2,.conversejs .px-2{padding-right:.5rem!important}.conversejs .pb-2,.conversejs .py-2{padding-bottom:.5rem!important}.conversejs .pl-2,.conversejs .px-2{padding-left:.5rem!important}.conversejs .p-3{padding:1rem!important}.conversejs .pt-3,.conversejs .py-3{padding-top:1rem!important}.conversejs .pr-3,.conversejs .px-3{padding-right:1rem!important}.conversejs .pb-3,.conversejs .py-3{padding-bottom:1rem!important}.conversejs .pl-3,.conversejs .px-3{padding-left:1rem!important}.conversejs .p-4{padding:1.5rem!important}.conversejs .pt-4,.conversejs .py-4{padding-top:1.5rem!important}.conversejs .pr-4,.conversejs .px-4{padding-right:1.5rem!important}.conversejs .pb-4,.conversejs .py-4{padding-bottom:1.5rem!important}.conversejs .pl-4,.conversejs .px-4{padding-left:1.5rem!important}.conversejs .p-5{padding:3rem!important}.conversejs .pt-5,.conversejs .py-5{padding-top:3rem!important}.conversejs .pr-5,.conversejs .px-5{padding-right:3rem!important}.conversejs .pb-5,.conversejs .py-5{padding-bottom:3rem!important}.conversejs .pl-5,.conversejs .px-5{padding-left:3rem!important}.conversejs .m-n1{margin:-.25rem!important}.conversejs .mt-n1,.conversejs .my-n1{margin-top:-.25rem!important}.conversejs .mr-n1,.conversejs .mx-n1{margin-right:-.25rem!important}.conversejs .mb-n1,.conversejs .my-n1{margin-bottom:-.25rem!important}.conversejs .ml-n1,.conversejs .mx-n1{margin-left:-.25rem!important}.conversejs .m-n2{margin:-.5rem!important}.conversejs .mt-n2,.conversejs .my-n2{margin-top:-.5rem!important}.conversejs .mr-n2,.conversejs .mx-n2{margin-right:-.5rem!important}.conversejs .mb-n2,.conversejs .my-n2{margin-bottom:-.5rem!important}.conversejs .ml-n2,.conversejs .mx-n2{margin-left:-.5rem!important}.conversejs .m-n3{margin:-1rem!important}.conversejs .mt-n3,.conversejs .my-n3{margin-top:-1rem!important}.conversejs .mr-n3,.conversejs .mx-n3{margin-right:-1rem!important}.conversejs .mb-n3,.conversejs .my-n3{margin-bottom:-1rem!important}.conversejs .ml-n3,.conversejs .mx-n3{margin-left:-1rem!important}.conversejs .m-n4{margin:-1.5rem!important}.conversejs .mt-n4,.conversejs .my-n4{margin-top:-1.5rem!important}.conversejs .mr-n4,.conversejs .mx-n4{margin-right:-1.5rem!important}.conversejs .mb-n4,.conversejs .my-n4{margin-bottom:-1.5rem!important}.conversejs .ml-n4,.conversejs .mx-n4{margin-left:-1.5rem!important}.conversejs .m-n5{margin:-3rem!important}.conversejs .mt-n5,.conversejs .my-n5{margin-top:-3rem!important}.conversejs .mr-n5,.conversejs .mx-n5{margin-right:-3rem!important}.conversejs .mb-n5,.conversejs .my-n5{margin-bottom:-3rem!important}.conversejs .ml-n5,.conversejs .mx-n5{margin-left:-3rem!important}.conversejs .m-auto{margin:auto!important}.conversejs .mt-auto,.conversejs .my-auto{margin-top:auto!important}.conversejs .mr-auto,.conversejs .mx-auto{margin-right:auto!important}.conversejs .mb-auto,.conversejs .my-auto{margin-bottom:auto!important}.conversejs .ml-auto,.conversejs .mx-auto{margin-left:auto!important}@media(min-width:576px){.conversejs .m-sm-0{margin:0!important}.conversejs .mt-sm-0,.conversejs .my-sm-0{margin-top:0!important}.conversejs .mr-sm-0,.conversejs .mx-sm-0{margin-right:0!important}.conversejs .mb-sm-0,.conversejs .my-sm-0{margin-bottom:0!important}.conversejs .ml-sm-0,.conversejs .mx-sm-0{margin-left:0!important}.conversejs .m-sm-1{margin:.25rem!important}.conversejs .mt-sm-1,.conversejs .my-sm-1{margin-top:.25rem!important}.conversejs .mr-sm-1,.conversejs .mx-sm-1{margin-right:.25rem!important}.conversejs .mb-sm-1,.conversejs .my-sm-1{margin-bottom:.25rem!important}.conversejs .ml-sm-1,.conversejs .mx-sm-1{margin-left:.25rem!important}.conversejs .m-sm-2{margin:.5rem!important}.conversejs .mt-sm-2,.conversejs .my-sm-2{margin-top:.5rem!important}.conversejs .mr-sm-2,.conversejs .mx-sm-2{margin-right:.5rem!important}.conversejs .mb-sm-2,.conversejs .my-sm-2{margin-bottom:.5rem!important}.conversejs .ml-sm-2,.conversejs .mx-sm-2{margin-left:.5rem!important}.conversejs .m-sm-3{margin:1rem!important}.conversejs .mt-sm-3,.conversejs .my-sm-3{margin-top:1rem!important}.conversejs .mr-sm-3,.conversejs .mx-sm-3{margin-right:1rem!important}.conversejs .mb-sm-3,.conversejs .my-sm-3{margin-bottom:1rem!important}.conversejs .ml-sm-3,.conversejs .mx-sm-3{margin-left:1rem!important}.conversejs .m-sm-4{margin:1.5rem!important}.conversejs .mt-sm-4,.conversejs .my-sm-4{margin-top:1.5rem!important}.conversejs .mr-sm-4,.conversejs .mx-sm-4{margin-right:1.5rem!important}.conversejs .mb-sm-4,.conversejs .my-sm-4{margin-bottom:1.5rem!important}.conversejs .ml-sm-4,.conversejs .mx-sm-4{margin-left:1.5rem!important}.conversejs .m-sm-5{margin:3rem!important}.conversejs .mt-sm-5,.conversejs .my-sm-5{margin-top:3rem!important}.conversejs .mr-sm-5,.conversejs .mx-sm-5{margin-right:3rem!important}.conversejs .mb-sm-5,.conversejs .my-sm-5{margin-bottom:3rem!important}.conversejs .ml-sm-5,.conversejs .mx-sm-5{margin-left:3rem!important}.conversejs .p-sm-0{padding:0!important}.conversejs .pt-sm-0,.conversejs .py-sm-0{padding-top:0!important}.conversejs .pr-sm-0,.conversejs .px-sm-0{padding-right:0!important}.conversejs .pb-sm-0,.conversejs .py-sm-0{padding-bottom:0!important}.conversejs .pl-sm-0,.conversejs .px-sm-0{padding-left:0!important}.conversejs .p-sm-1{padding:.25rem!important}.conversejs .pt-sm-1,.conversejs .py-sm-1{padding-top:.25rem!important}.conversejs .pr-sm-1,.conversejs .px-sm-1{padding-right:.25rem!important}.conversejs .pb-sm-1,.conversejs .py-sm-1{padding-bottom:.25rem!important}.conversejs .pl-sm-1,.conversejs .px-sm-1{padding-left:.25rem!important}.conversejs .p-sm-2{padding:.5rem!important}.conversejs .pt-sm-2,.conversejs .py-sm-2{padding-top:.5rem!important}.conversejs .pr-sm-2,.conversejs .px-sm-2{padding-right:.5rem!important}.conversejs .pb-sm-2,.conversejs .py-sm-2{padding-bottom:.5rem!important}.conversejs .pl-sm-2,.conversejs .px-sm-2{padding-left:.5rem!important}.conversejs .p-sm-3{padding:1rem!important}.conversejs .pt-sm-3,.conversejs .py-sm-3{padding-top:1rem!important}.conversejs .pr-sm-3,.conversejs .px-sm-3{padding-right:1rem!important}.conversejs .pb-sm-3,.conversejs .py-sm-3{padding-bottom:1rem!important}.conversejs .pl-sm-3,.conversejs .px-sm-3{padding-left:1rem!important}.conversejs .p-sm-4{padding:1.5rem!important}.conversejs .pt-sm-4,.conversejs .py-sm-4{padding-top:1.5rem!important}.conversejs .pr-sm-4,.conversejs .px-sm-4{padding-right:1.5rem!important}.conversejs .pb-sm-4,.conversejs .py-sm-4{padding-bottom:1.5rem!important}.conversejs .pl-sm-4,.conversejs .px-sm-4{padding-left:1.5rem!important}.conversejs .p-sm-5{padding:3rem!important}.conversejs .pt-sm-5,.conversejs .py-sm-5{padding-top:3rem!important}.conversejs .pr-sm-5,.conversejs .px-sm-5{padding-right:3rem!important}.conversejs .pb-sm-5,.conversejs .py-sm-5{padding-bottom:3rem!important}.conversejs .pl-sm-5,.conversejs .px-sm-5{padding-left:3rem!important}.conversejs .m-sm-n1{margin:-.25rem!important}.conversejs .mt-sm-n1,.conversejs .my-sm-n1{margin-top:-.25rem!important}.conversejs .mr-sm-n1,.conversejs .mx-sm-n1{margin-right:-.25rem!important}.conversejs .mb-sm-n1,.conversejs .my-sm-n1{margin-bottom:-.25rem!important}.conversejs .ml-sm-n1,.conversejs .mx-sm-n1{margin-left:-.25rem!important}.conversejs .m-sm-n2{margin:-.5rem!important}.conversejs .mt-sm-n2,.conversejs .my-sm-n2{margin-top:-.5rem!important}.conversejs .mr-sm-n2,.conversejs .mx-sm-n2{margin-right:-.5rem!important}.conversejs .mb-sm-n2,.conversejs .my-sm-n2{margin-bottom:-.5rem!important}.conversejs .ml-sm-n2,.conversejs .mx-sm-n2{margin-left:-.5rem!important}.conversejs .m-sm-n3{margin:-1rem!important}.conversejs .mt-sm-n3,.conversejs .my-sm-n3{margin-top:-1rem!important}.conversejs .mr-sm-n3,.conversejs .mx-sm-n3{margin-right:-1rem!important}.conversejs .mb-sm-n3,.conversejs .my-sm-n3{margin-bottom:-1rem!important}.conversejs .ml-sm-n3,.conversejs .mx-sm-n3{margin-left:-1rem!important}.conversejs .m-sm-n4{margin:-1.5rem!important}.conversejs .mt-sm-n4,.conversejs .my-sm-n4{margin-top:-1.5rem!important}.conversejs .mr-sm-n4,.conversejs .mx-sm-n4{margin-right:-1.5rem!important}.conversejs .mb-sm-n4,.conversejs .my-sm-n4{margin-bottom:-1.5rem!important}.conversejs .ml-sm-n4,.conversejs .mx-sm-n4{margin-left:-1.5rem!important}.conversejs .m-sm-n5{margin:-3rem!important}.conversejs .mt-sm-n5,.conversejs .my-sm-n5{margin-top:-3rem!important}.conversejs .mr-sm-n5,.conversejs .mx-sm-n5{margin-right:-3rem!important}.conversejs .mb-sm-n5,.conversejs .my-sm-n5{margin-bottom:-3rem!important}.conversejs .ml-sm-n5,.conversejs .mx-sm-n5{margin-left:-3rem!important}.conversejs .m-sm-auto{margin:auto!important}.conversejs .mt-sm-auto,.conversejs .my-sm-auto{margin-top:auto!important}.conversejs .mr-sm-auto,.conversejs .mx-sm-auto{margin-right:auto!important}.conversejs .mb-sm-auto,.conversejs .my-sm-auto{margin-bottom:auto!important}.conversejs .ml-sm-auto,.conversejs .mx-sm-auto{margin-left:auto!important}}@media(min-width:768px){.conversejs .m-md-0{margin:0!important}.conversejs .mt-md-0,.conversejs .my-md-0{margin-top:0!important}.conversejs .mr-md-0,.conversejs .mx-md-0{margin-right:0!important}.conversejs .mb-md-0,.conversejs .my-md-0{margin-bottom:0!important}.conversejs .ml-md-0,.conversejs .mx-md-0{margin-left:0!important}.conversejs .m-md-1{margin:.25rem!important}.conversejs .mt-md-1,.conversejs .my-md-1{margin-top:.25rem!important}.conversejs .mr-md-1,.conversejs .mx-md-1{margin-right:.25rem!important}.conversejs .mb-md-1,.conversejs .my-md-1{margin-bottom:.25rem!important}.conversejs .ml-md-1,.conversejs .mx-md-1{margin-left:.25rem!important}.conversejs .m-md-2{margin:.5rem!important}.conversejs .mt-md-2,.conversejs .my-md-2{margin-top:.5rem!important}.conversejs .mr-md-2,.conversejs .mx-md-2{margin-right:.5rem!important}.conversejs .mb-md-2,.conversejs .my-md-2{margin-bottom:.5rem!important}.conversejs .ml-md-2,.conversejs .mx-md-2{margin-left:.5rem!important}.conversejs .m-md-3{margin:1rem!important}.conversejs .mt-md-3,.conversejs .my-md-3{margin-top:1rem!important}.conversejs .mr-md-3,.conversejs .mx-md-3{margin-right:1rem!important}.conversejs .mb-md-3,.conversejs .my-md-3{margin-bottom:1rem!important}.conversejs .ml-md-3,.conversejs .mx-md-3{margin-left:1rem!important}.conversejs .m-md-4{margin:1.5rem!important}.conversejs .mt-md-4,.conversejs .my-md-4{margin-top:1.5rem!important}.conversejs .mr-md-4,.conversejs .mx-md-4{margin-right:1.5rem!important}.conversejs .mb-md-4,.conversejs .my-md-4{margin-bottom:1.5rem!important}.conversejs .ml-md-4,.conversejs .mx-md-4{margin-left:1.5rem!important}.conversejs .m-md-5{margin:3rem!important}.conversejs .mt-md-5,.conversejs .my-md-5{margin-top:3rem!important}.conversejs .mr-md-5,.conversejs .mx-md-5{margin-right:3rem!important}.conversejs .mb-md-5,.conversejs .my-md-5{margin-bottom:3rem!important}.conversejs .ml-md-5,.conversejs .mx-md-5{margin-left:3rem!important}.conversejs .p-md-0{padding:0!important}.conversejs .pt-md-0,.conversejs .py-md-0{padding-top:0!important}.conversejs .pr-md-0,.conversejs .px-md-0{padding-right:0!important}.conversejs .pb-md-0,.conversejs .py-md-0{padding-bottom:0!important}.conversejs .pl-md-0,.conversejs .px-md-0{padding-left:0!important}.conversejs .p-md-1{padding:.25rem!important}.conversejs .pt-md-1,.conversejs .py-md-1{padding-top:.25rem!important}.conversejs .pr-md-1,.conversejs .px-md-1{padding-right:.25rem!important}.conversejs .pb-md-1,.conversejs .py-md-1{padding-bottom:.25rem!important}.conversejs .pl-md-1,.conversejs .px-md-1{padding-left:.25rem!important}.conversejs .p-md-2{padding:.5rem!important}.conversejs .pt-md-2,.conversejs .py-md-2{padding-top:.5rem!important}.conversejs .pr-md-2,.conversejs .px-md-2{padding-right:.5rem!important}.conversejs .pb-md-2,.conversejs .py-md-2{padding-bottom:.5rem!important}.conversejs .pl-md-2,.conversejs .px-md-2{padding-left:.5rem!important}.conversejs .p-md-3{padding:1rem!important}.conversejs .pt-md-3,.conversejs .py-md-3{padding-top:1rem!important}.conversejs .pr-md-3,.conversejs .px-md-3{padding-right:1rem!important}.conversejs .pb-md-3,.conversejs .py-md-3{padding-bottom:1rem!important}.conversejs .pl-md-3,.conversejs .px-md-3{padding-left:1rem!important}.conversejs .p-md-4{padding:1.5rem!important}.conversejs .pt-md-4,.conversejs .py-md-4{padding-top:1.5rem!important}.conversejs .pr-md-4,.conversejs .px-md-4{padding-right:1.5rem!important}.conversejs .pb-md-4,.conversejs .py-md-4{padding-bottom:1.5rem!important}.conversejs .pl-md-4,.conversejs .px-md-4{padding-left:1.5rem!important}.conversejs .p-md-5{padding:3rem!important}.conversejs .pt-md-5,.conversejs .py-md-5{padding-top:3rem!important}.conversejs .pr-md-5,.conversejs .px-md-5{padding-right:3rem!important}.conversejs .pb-md-5,.conversejs .py-md-5{padding-bottom:3rem!important}.conversejs .pl-md-5,.conversejs .px-md-5{padding-left:3rem!important}.conversejs .m-md-n1{margin:-.25rem!important}.conversejs .mt-md-n1,.conversejs .my-md-n1{margin-top:-.25rem!important}.conversejs .mr-md-n1,.conversejs .mx-md-n1{margin-right:-.25rem!important}.conversejs .mb-md-n1,.conversejs .my-md-n1{margin-bottom:-.25rem!important}.conversejs .ml-md-n1,.conversejs .mx-md-n1{margin-left:-.25rem!important}.conversejs .m-md-n2{margin:-.5rem!important}.conversejs .mt-md-n2,.conversejs .my-md-n2{margin-top:-.5rem!important}.conversejs .mr-md-n2,.conversejs .mx-md-n2{margin-right:-.5rem!important}.conversejs .mb-md-n2,.conversejs .my-md-n2{margin-bottom:-.5rem!important}.conversejs .ml-md-n2,.conversejs .mx-md-n2{margin-left:-.5rem!important}.conversejs .m-md-n3{margin:-1rem!important}.conversejs .mt-md-n3,.conversejs .my-md-n3{margin-top:-1rem!important}.conversejs .mr-md-n3,.conversejs .mx-md-n3{margin-right:-1rem!important}.conversejs .mb-md-n3,.conversejs .my-md-n3{margin-bottom:-1rem!important}.conversejs .ml-md-n3,.conversejs .mx-md-n3{margin-left:-1rem!important}.conversejs .m-md-n4{margin:-1.5rem!important}.conversejs .mt-md-n4,.conversejs .my-md-n4{margin-top:-1.5rem!important}.conversejs .mr-md-n4,.conversejs .mx-md-n4{margin-right:-1.5rem!important}.conversejs .mb-md-n4,.conversejs .my-md-n4{margin-bottom:-1.5rem!important}.conversejs .ml-md-n4,.conversejs .mx-md-n4{margin-left:-1.5rem!important}.conversejs .m-md-n5{margin:-3rem!important}.conversejs .mt-md-n5,.conversejs .my-md-n5{margin-top:-3rem!important}.conversejs .mr-md-n5,.conversejs .mx-md-n5{margin-right:-3rem!important}.conversejs .mb-md-n5,.conversejs .my-md-n5{margin-bottom:-3rem!important}.conversejs .ml-md-n5,.conversejs .mx-md-n5{margin-left:-3rem!important}.conversejs .m-md-auto{margin:auto!important}.conversejs .mt-md-auto,.conversejs .my-md-auto{margin-top:auto!important}.conversejs .mr-md-auto,.conversejs .mx-md-auto{margin-right:auto!important}.conversejs .mb-md-auto,.conversejs .my-md-auto{margin-bottom:auto!important}.conversejs .ml-md-auto,.conversejs .mx-md-auto{margin-left:auto!important}}@media(min-width:992px){.conversejs .m-lg-0{margin:0!important}.conversejs .mt-lg-0,.conversejs .my-lg-0{margin-top:0!important}.conversejs .mr-lg-0,.conversejs .mx-lg-0{margin-right:0!important}.conversejs .mb-lg-0,.conversejs .my-lg-0{margin-bottom:0!important}.conversejs .ml-lg-0,.conversejs .mx-lg-0{margin-left:0!important}.conversejs .m-lg-1{margin:.25rem!important}.conversejs .mt-lg-1,.conversejs .my-lg-1{margin-top:.25rem!important}.conversejs .mr-lg-1,.conversejs .mx-lg-1{margin-right:.25rem!important}.conversejs .mb-lg-1,.conversejs .my-lg-1{margin-bottom:.25rem!important}.conversejs .ml-lg-1,.conversejs .mx-lg-1{margin-left:.25rem!important}.conversejs .m-lg-2{margin:.5rem!important}.conversejs .mt-lg-2,.conversejs .my-lg-2{margin-top:.5rem!important}.conversejs .mr-lg-2,.conversejs .mx-lg-2{margin-right:.5rem!important}.conversejs .mb-lg-2,.conversejs .my-lg-2{margin-bottom:.5rem!important}.conversejs .ml-lg-2,.conversejs .mx-lg-2{margin-left:.5rem!important}.conversejs .m-lg-3{margin:1rem!important}.conversejs .mt-lg-3,.conversejs .my-lg-3{margin-top:1rem!important}.conversejs .mr-lg-3,.conversejs .mx-lg-3{margin-right:1rem!important}.conversejs .mb-lg-3,.conversejs .my-lg-3{margin-bottom:1rem!important}.conversejs .ml-lg-3,.conversejs .mx-lg-3{margin-left:1rem!important}.conversejs .m-lg-4{margin:1.5rem!important}.conversejs .mt-lg-4,.conversejs .my-lg-4{margin-top:1.5rem!important}.conversejs .mr-lg-4,.conversejs .mx-lg-4{margin-right:1.5rem!important}.conversejs .mb-lg-4,.conversejs .my-lg-4{margin-bottom:1.5rem!important}.conversejs .ml-lg-4,.conversejs .mx-lg-4{margin-left:1.5rem!important}.conversejs .m-lg-5{margin:3rem!important}.conversejs .mt-lg-5,.conversejs .my-lg-5{margin-top:3rem!important}.conversejs .mr-lg-5,.conversejs .mx-lg-5{margin-right:3rem!important}.conversejs .mb-lg-5,.conversejs .my-lg-5{margin-bottom:3rem!important}.conversejs .ml-lg-5,.conversejs .mx-lg-5{margin-left:3rem!important}.conversejs .p-lg-0{padding:0!important}.conversejs .pt-lg-0,.conversejs .py-lg-0{padding-top:0!important}.conversejs .pr-lg-0,.conversejs .px-lg-0{padding-right:0!important}.conversejs .pb-lg-0,.conversejs .py-lg-0{padding-bottom:0!important}.conversejs .pl-lg-0,.conversejs .px-lg-0{padding-left:0!important}.conversejs .p-lg-1{padding:.25rem!important}.conversejs .pt-lg-1,.conversejs .py-lg-1{padding-top:.25rem!important}.conversejs .pr-lg-1,.conversejs .px-lg-1{padding-right:.25rem!important}.conversejs .pb-lg-1,.conversejs .py-lg-1{padding-bottom:.25rem!important}.conversejs .pl-lg-1,.conversejs .px-lg-1{padding-left:.25rem!important}.conversejs .p-lg-2{padding:.5rem!important}.conversejs .pt-lg-2,.conversejs .py-lg-2{padding-top:.5rem!important}.conversejs .pr-lg-2,.conversejs .px-lg-2{padding-right:.5rem!important}.conversejs .pb-lg-2,.conversejs .py-lg-2{padding-bottom:.5rem!important}.conversejs .pl-lg-2,.conversejs .px-lg-2{padding-left:.5rem!important}.conversejs .p-lg-3{padding:1rem!important}.conversejs .pt-lg-3,.conversejs .py-lg-3{padding-top:1rem!important}.conversejs .pr-lg-3,.conversejs .px-lg-3{padding-right:1rem!important}.conversejs .pb-lg-3,.conversejs .py-lg-3{padding-bottom:1rem!important}.conversejs .pl-lg-3,.conversejs .px-lg-3{padding-left:1rem!important}.conversejs .p-lg-4{padding:1.5rem!important}.conversejs .pt-lg-4,.conversejs .py-lg-4{padding-top:1.5rem!important}.conversejs .pr-lg-4,.conversejs .px-lg-4{padding-right:1.5rem!important}.conversejs .pb-lg-4,.conversejs .py-lg-4{padding-bottom:1.5rem!important}.conversejs .pl-lg-4,.conversejs .px-lg-4{padding-left:1.5rem!important}.conversejs .p-lg-5{padding:3rem!important}.conversejs .pt-lg-5,.conversejs .py-lg-5{padding-top:3rem!important}.conversejs .pr-lg-5,.conversejs .px-lg-5{padding-right:3rem!important}.conversejs .pb-lg-5,.conversejs .py-lg-5{padding-bottom:3rem!important}.conversejs .pl-lg-5,.conversejs .px-lg-5{padding-left:3rem!important}.conversejs .m-lg-n1{margin:-.25rem!important}.conversejs .mt-lg-n1,.conversejs .my-lg-n1{margin-top:-.25rem!important}.conversejs .mr-lg-n1,.conversejs .mx-lg-n1{margin-right:-.25rem!important}.conversejs .mb-lg-n1,.conversejs .my-lg-n1{margin-bottom:-.25rem!important}.conversejs .ml-lg-n1,.conversejs .mx-lg-n1{margin-left:-.25rem!important}.conversejs .m-lg-n2{margin:-.5rem!important}.conversejs .mt-lg-n2,.conversejs .my-lg-n2{margin-top:-.5rem!important}.conversejs .mr-lg-n2,.conversejs .mx-lg-n2{margin-right:-.5rem!important}.conversejs .mb-lg-n2,.conversejs .my-lg-n2{margin-bottom:-.5rem!important}.conversejs .ml-lg-n2,.conversejs .mx-lg-n2{margin-left:-.5rem!important}.conversejs .m-lg-n3{margin:-1rem!important}.conversejs .mt-lg-n3,.conversejs .my-lg-n3{margin-top:-1rem!important}.conversejs .mr-lg-n3,.conversejs .mx-lg-n3{margin-right:-1rem!important}.conversejs .mb-lg-n3,.conversejs .my-lg-n3{margin-bottom:-1rem!important}.conversejs .ml-lg-n3,.conversejs .mx-lg-n3{margin-left:-1rem!important}.conversejs .m-lg-n4{margin:-1.5rem!important}.conversejs .mt-lg-n4,.conversejs .my-lg-n4{margin-top:-1.5rem!important}.conversejs .mr-lg-n4,.conversejs .mx-lg-n4{margin-right:-1.5rem!important}.conversejs .mb-lg-n4,.conversejs .my-lg-n4{margin-bottom:-1.5rem!important}.conversejs .ml-lg-n4,.conversejs .mx-lg-n4{margin-left:-1.5rem!important}.conversejs .m-lg-n5{margin:-3rem!important}.conversejs .mt-lg-n5,.conversejs .my-lg-n5{margin-top:-3rem!important}.conversejs .mr-lg-n5,.conversejs .mx-lg-n5{margin-right:-3rem!important}.conversejs .mb-lg-n5,.conversejs .my-lg-n5{margin-bottom:-3rem!important}.conversejs .ml-lg-n5,.conversejs .mx-lg-n5{margin-left:-3rem!important}.conversejs .m-lg-auto{margin:auto!important}.conversejs .mt-lg-auto,.conversejs .my-lg-auto{margin-top:auto!important}.conversejs .mr-lg-auto,.conversejs .mx-lg-auto{margin-right:auto!important}.conversejs .mb-lg-auto,.conversejs .my-lg-auto{margin-bottom:auto!important}.conversejs .ml-lg-auto,.conversejs .mx-lg-auto{margin-left:auto!important}}@media(min-width:1200px){.conversejs .m-xl-0{margin:0!important}.conversejs .mt-xl-0,.conversejs .my-xl-0{margin-top:0!important}.conversejs .mr-xl-0,.conversejs .mx-xl-0{margin-right:0!important}.conversejs .mb-xl-0,.conversejs .my-xl-0{margin-bottom:0!important}.conversejs .ml-xl-0,.conversejs .mx-xl-0{margin-left:0!important}.conversejs .m-xl-1{margin:.25rem!important}.conversejs .mt-xl-1,.conversejs .my-xl-1{margin-top:.25rem!important}.conversejs .mr-xl-1,.conversejs .mx-xl-1{margin-right:.25rem!important}.conversejs .mb-xl-1,.conversejs .my-xl-1{margin-bottom:.25rem!important}.conversejs .ml-xl-1,.conversejs .mx-xl-1{margin-left:.25rem!important}.conversejs .m-xl-2{margin:.5rem!important}.conversejs .mt-xl-2,.conversejs .my-xl-2{margin-top:.5rem!important}.conversejs .mr-xl-2,.conversejs .mx-xl-2{margin-right:.5rem!important}.conversejs .mb-xl-2,.conversejs .my-xl-2{margin-bottom:.5rem!important}.conversejs .ml-xl-2,.conversejs .mx-xl-2{margin-left:.5rem!important}.conversejs .m-xl-3{margin:1rem!important}.conversejs .mt-xl-3,.conversejs .my-xl-3{margin-top:1rem!important}.conversejs .mr-xl-3,.conversejs .mx-xl-3{margin-right:1rem!important}.conversejs .mb-xl-3,.conversejs .my-xl-3{margin-bottom:1rem!important}.conversejs .ml-xl-3,.conversejs .mx-xl-3{margin-left:1rem!important}.conversejs .m-xl-4{margin:1.5rem!important}.conversejs .mt-xl-4,.conversejs .my-xl-4{margin-top:1.5rem!important}.conversejs .mr-xl-4,.conversejs .mx-xl-4{margin-right:1.5rem!important}.conversejs .mb-xl-4,.conversejs .my-xl-4{margin-bottom:1.5rem!important}.conversejs .ml-xl-4,.conversejs .mx-xl-4{margin-left:1.5rem!important}.conversejs .m-xl-5{margin:3rem!important}.conversejs .mt-xl-5,.conversejs .my-xl-5{margin-top:3rem!important}.conversejs .mr-xl-5,.conversejs .mx-xl-5{margin-right:3rem!important}.conversejs .mb-xl-5,.conversejs .my-xl-5{margin-bottom:3rem!important}.conversejs .ml-xl-5,.conversejs .mx-xl-5{margin-left:3rem!important}.conversejs .p-xl-0{padding:0!important}.conversejs .pt-xl-0,.conversejs .py-xl-0{padding-top:0!important}.conversejs .pr-xl-0,.conversejs .px-xl-0{padding-right:0!important}.conversejs .pb-xl-0,.conversejs .py-xl-0{padding-bottom:0!important}.conversejs .pl-xl-0,.conversejs .px-xl-0{padding-left:0!important}.conversejs .p-xl-1{padding:.25rem!important}.conversejs .pt-xl-1,.conversejs .py-xl-1{padding-top:.25rem!important}.conversejs .pr-xl-1,.conversejs .px-xl-1{padding-right:.25rem!important}.conversejs .pb-xl-1,.conversejs .py-xl-1{padding-bottom:.25rem!important}.conversejs .pl-xl-1,.conversejs .px-xl-1{padding-left:.25rem!important}.conversejs .p-xl-2{padding:.5rem!important}.conversejs .pt-xl-2,.conversejs .py-xl-2{padding-top:.5rem!important}.conversejs .pr-xl-2,.conversejs .px-xl-2{padding-right:.5rem!important}.conversejs .pb-xl-2,.conversejs .py-xl-2{padding-bottom:.5rem!important}.conversejs .pl-xl-2,.conversejs .px-xl-2{padding-left:.5rem!important}.conversejs .p-xl-3{padding:1rem!important}.conversejs .pt-xl-3,.conversejs .py-xl-3{padding-top:1rem!important}.conversejs .pr-xl-3,.conversejs .px-xl-3{padding-right:1rem!important}.conversejs .pb-xl-3,.conversejs .py-xl-3{padding-bottom:1rem!important}.conversejs .pl-xl-3,.conversejs .px-xl-3{padding-left:1rem!important}.conversejs .p-xl-4{padding:1.5rem!important}.conversejs .pt-xl-4,.conversejs .py-xl-4{padding-top:1.5rem!important}.conversejs .pr-xl-4,.conversejs .px-xl-4{padding-right:1.5rem!important}.conversejs .pb-xl-4,.conversejs .py-xl-4{padding-bottom:1.5rem!important}.conversejs .pl-xl-4,.conversejs .px-xl-4{padding-left:1.5rem!important}.conversejs .p-xl-5{padding:3rem!important}.conversejs .pt-xl-5,.conversejs .py-xl-5{padding-top:3rem!important}.conversejs .pr-xl-5,.conversejs .px-xl-5{padding-right:3rem!important}.conversejs .pb-xl-5,.conversejs .py-xl-5{padding-bottom:3rem!important}.conversejs .pl-xl-5,.conversejs .px-xl-5{padding-left:3rem!important}.conversejs .m-xl-n1{margin:-.25rem!important}.conversejs .mt-xl-n1,.conversejs .my-xl-n1{margin-top:-.25rem!important}.conversejs .mr-xl-n1,.conversejs .mx-xl-n1{margin-right:-.25rem!important}.conversejs .mb-xl-n1,.conversejs .my-xl-n1{margin-bottom:-.25rem!important}.conversejs .ml-xl-n1,.conversejs .mx-xl-n1{margin-left:-.25rem!important}.conversejs .m-xl-n2{margin:-.5rem!important}.conversejs .mt-xl-n2,.conversejs .my-xl-n2{margin-top:-.5rem!important}.conversejs .mr-xl-n2,.conversejs .mx-xl-n2{margin-right:-.5rem!important}.conversejs .mb-xl-n2,.conversejs .my-xl-n2{margin-bottom:-.5rem!important}.conversejs .ml-xl-n2,.conversejs .mx-xl-n2{margin-left:-.5rem!important}.conversejs .m-xl-n3{margin:-1rem!important}.conversejs .mt-xl-n3,.conversejs .my-xl-n3{margin-top:-1rem!important}.conversejs .mr-xl-n3,.conversejs .mx-xl-n3{margin-right:-1rem!important}.conversejs .mb-xl-n3,.conversejs .my-xl-n3{margin-bottom:-1rem!important}.conversejs .ml-xl-n3,.conversejs .mx-xl-n3{margin-left:-1rem!important}.conversejs .m-xl-n4{margin:-1.5rem!important}.conversejs .mt-xl-n4,.conversejs .my-xl-n4{margin-top:-1.5rem!important}.conversejs .mr-xl-n4,.conversejs .mx-xl-n4{margin-right:-1.5rem!important}.conversejs .mb-xl-n4,.conversejs .my-xl-n4{margin-bottom:-1.5rem!important}.conversejs .ml-xl-n4,.conversejs .mx-xl-n4{margin-left:-1.5rem!important}.conversejs .m-xl-n5{margin:-3rem!important}.conversejs .mt-xl-n5,.conversejs .my-xl-n5{margin-top:-3rem!important}.conversejs .mr-xl-n5,.conversejs .mx-xl-n5{margin-right:-3rem!important}.conversejs .mb-xl-n5,.conversejs .my-xl-n5{margin-bottom:-3rem!important}.conversejs .ml-xl-n5,.conversejs .mx-xl-n5{margin-left:-3rem!important}.conversejs .m-xl-auto{margin:auto!important}.conversejs .mt-xl-auto,.conversejs .my-xl-auto{margin-top:auto!important}.conversejs .mr-xl-auto,.conversejs .mx-xl-auto{margin-right:auto!important}.conversejs .mb-xl-auto,.conversejs .my-xl-auto{margin-bottom:auto!important}.conversejs .ml-xl-auto,.conversejs .mx-xl-auto{margin-left:auto!important}}.conversejs .stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.conversejs .text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.conversejs .text-justify{text-align:justify!important}.conversejs .text-wrap{white-space:normal!important}.conversejs .text-nowrap{white-space:nowrap!important}.conversejs .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs .text-left{text-align:left!important}.conversejs .text-right{text-align:right!important}.conversejs .text-center{text-align:center!important}@media(min-width:576px){.conversejs .text-sm-left{text-align:left!important}.conversejs .text-sm-right{text-align:right!important}.conversejs .text-sm-center{text-align:center!important}}@media(min-width:768px){.conversejs .text-md-left{text-align:left!important}.conversejs .text-md-right{text-align:right!important}.conversejs .text-md-center{text-align:center!important}}@media(min-width:992px){.conversejs .text-lg-left{text-align:left!important}.conversejs .text-lg-right{text-align:right!important}.conversejs .text-lg-center{text-align:center!important}}@media(min-width:1200px){.conversejs .text-xl-left{text-align:left!important}.conversejs .text-xl-right{text-align:right!important}.conversejs .text-xl-center{text-align:center!important}}.conversejs .text-lowercase{text-transform:lowercase!important}.conversejs .text-uppercase{text-transform:uppercase!important}.conversejs .text-capitalize{text-transform:capitalize!important}.conversejs .font-weight-light{font-weight:300!important}.conversejs .font-weight-lighter{font-weight:lighter!important}.conversejs .font-weight-normal{font-weight:400!important}.conversejs .font-weight-bold{font-weight:700!important}.conversejs .font-weight-bolder{font-weight:bolder!important}.conversejs .font-italic{font-style:italic!important}.conversejs .text-white{color:#fff!important}.conversejs .text-primary{color:#007bff!important}.conversejs a.text-primary:focus,.conversejs a.text-primary:hover{color:#0056b3!important}.conversejs .text-secondary{color:#6c757d!important}.conversejs a.text-secondary:focus,.conversejs a.text-secondary:hover{color:#494f54!important}.conversejs .text-success{color:#28a745!important}.conversejs a.text-success:focus,.conversejs a.text-success:hover{color:#19692c!important}.conversejs .text-info{color:#17a2b8!important}.conversejs a.text-info:focus,.conversejs a.text-info:hover{color:#0f6674!important}.conversejs .text-warning{color:#ffc107!important}.conversejs a.text-warning:focus,.conversejs a.text-warning:hover{color:#ba8b00!important}.conversejs .text-danger{color:#dc3545!important}.conversejs a.text-danger:focus,.conversejs a.text-danger:hover{color:#a71d2a!important}.conversejs .text-light{color:#f8f9fa!important}.conversejs a.text-light:focus,.conversejs a.text-light:hover{color:#cbd3da!important}.conversejs .text-dark{color:#343a40!important}.conversejs a.text-dark:focus,.conversejs a.text-dark:hover{color:#121416!important}.conversejs .text-body{color:#212529!important}.conversejs .text-muted{color:#6c757d!important}.conversejs .text-black-50{color:rgba(0,0,0,.5)!important}.conversejs .text-white-50{color:rgba(255,255,255,.5)!important}.conversejs .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.conversejs .text-decoration-none{text-decoration:none!important}.conversejs .text-break{word-break:break-word!important;word-wrap:break-word!important}.conversejs .text-reset{color:inherit!important}.conversejs .visible{visibility:visible!important}.conversejs .invisible{visibility:hidden!important}.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs{bottom:0;height:100%;position:fixed;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);color:var(--text-color);font-family:var(--normal-font);font-size:var(--font-size);direction:ltr;z-index:1031}.conversejs .dropup.dropup--left .dropdown-menu{right:100%;left:auto}.conversejs textarea:disabled{background-color:#eee!important}.conversejs .subdued{opacity:.35}.conversejs .fit-content{width:-webkit-fit-content!important;width:-moz-fit-content!important;width:fit-content!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important}.conversejs .nopadding{padding:0!important}.conversejs .no-scrolling{overflow-x:none;overflow-y:none}.conversejs converse-brand-heading{text-align:center}.conversejs .brand-heading{display:inline-flex;flex-direction:row;align-items:flex-start;font-family:var(--branding-font);color:var(--link-color);margin-bottom:.75em}.conversejs .brand-heading .brand-name-wrapper{display:flex;white-space:nowrap;margin:auto}.conversejs .brand-heading .brand-name{color:var(--link-color);display:flex;flex-direction:column;align-items:center;margin-top:-.25em}.conversejs .brand-heading .brand-name .byline{font-family:var(--heading-font);font-size:.3em;margin-bottom:.75em;margin-left:-2.7em;opacity:.55;word-spacing:5px}.conversejs .brand-heading .brand-subtitle{color:var(--text-color)}.conversejs .brand-heading .brand-name__text{font-size:120%;vertical-align:text-bottom}.conversejs .brand-heading .converse-svg-logo{color:var(--link-color);height:1.5em;margin-right:.25em;margin-bottom:-.25em}.conversejs .brand-heading .converse-svg-logo .cls-1{isolation:isolate}.conversejs .brand-heading .converse-svg-logo .cls-2{opacity:.5;mix-blend-mode:multiply}.conversejs .brand-heading .converse-svg-logo .cls-3{fill:var(--link-color)}.conversejs .brand-heading .converse-svg-logo .cls-4{fill:var(--link-color)}.conversejs .brand-heading--inverse .converse-svg-logo{margin-bottom:0;margin-top:-.2em}.conversejs .brand-heading--inverse .byline{margin:0;font-family:var(--heading-font);font-size:.25em;opacity:.55;margin-left:-7em;word-spacing:5px}.conversejs .dropdown-item{padding:.5rem 1rem}.conversejs .dropdown-item .fa{width:1.25em;margin-right:.75rem}.conversejs .dropdown-item.selected,.conversejs .dropdown-item:active{color:#fff!important;background-color:var(--list-item-open-color)}.conversejs .dropdown-item.selected .fa,.conversejs .dropdown-item:active .fa{color:#fff!important}.conversejs .popover{position:fixed}.conversejs ::-moz-placeholder{color:var(--subdued-color)}.conversejs :-ms-input-placeholder{color:var(--subdued-color)}.conversejs ::placeholder{color:var(--subdued-color)}.conversejs ::-moz-selection{background-color:var(--highlight-color)}.conversejs ::selection{background-color:var(--highlight-color)}.conversejs ::-moz-selection{background-color:var(--highlight-color)}@media screen and (max-width:480px){.conversejs{margin:0;right:10px;left:10px;bottom:5px}}@media screen and (max-height:450px){.conversejs{margin:0;right:10px;left:10px;bottom:5px}}.conversejs ul li{height:auto}.conversejs a,.conversejs article,.conversejs aside,.conversejs audio,.conversejs blockquote,.conversejs caption,.conversejs dd,.conversejs details,.conversejs div,.conversejs dl,.conversejs dt,.conversejs em,.conversejs embed,.conversejs fieldset,.conversejs figcaption,.conversejs figure,.conversejs footer,.conversejs form,.conversejs h1,.conversejs h2,.conversejs h3,.conversejs h4,.conversejs h5,.conversejs h6,.conversejs header,.conversejs hgroup,.conversejs img,.conversejs legend,.conversejs li,.conversejs mark,.conversejs menu,.conversejs nav,.conversejs ol,.conversejs output,.conversejs p,.conversejs pre,.conversejs ruby,.conversejs section,.conversejs span,.conversejs strong,.conversejs summary,.conversejs table,.conversejs tbody,.conversejs td,.conversejs tfoot,.conversejs th,.conversejs thead,.conversejs time,.conversejs tr,.conversejs ul,.conversejs video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}.conversejs button,.conversejs input[type=button],.conversejs input[type=password],.conversejs input[type=submit],.conversejs input[type=text],.conversejs textarea{font-size:var(--font-size);min-height:0}.conversejs strong{font-weight:700}.conversejs em{font-style:italic}.conversejs ol,.conversejs ul{list-style:none}.conversejs li{height:10px}.conversejs dl,.conversejs ol,.conversejs ul{font:inherit;margin:0}.conversejs a{cursor:pointer}.conversejs a,.conversejs a:not([href]):not([tabindex]),.conversejs a:visited{text-decoration:none;color:var(--link-color);text-shadow:none;cursor:pointer}.conversejs a:hover,.conversejs a:not([href]):not([tabindex]):hover,.conversejs a:visited:hover{color:var(--link-hover-color);text-decoration:none;text-shadow:none}.conversejs a.fa,.conversejs a.far,.conversejs a.fas,.conversejs a:not([href]):not([tabindex]).fa,.conversejs a:not([href]):not([tabindex]).far,.conversejs a:not([href]):not([tabindex]).fas,.conversejs a:visited.fa,.conversejs a:visited.far,.conversejs a:visited.fas{color:var(--subdued-color)}.conversejs a.fa:hover,.conversejs a.far:hover,.conversejs a.fas:hover,.conversejs a:not([href]):not([tabindex]).fa:hover,.conversejs a:not([href]):not([tabindex]).far:hover,.conversejs a:not([href]):not([tabindex]).fas:hover,.conversejs a:visited.fa:hover,.conversejs a:visited.far:hover,.conversejs a:visited.fas:hover{color:var(--gray-color)}.conversejs svg{border-radius:var(--chatbox-border-radius)}.conversejs .fa,.conversejs .far,.conversejs .fas{color:var(--subdued-color)}.conversejs .fa:hover,.conversejs .far:hover,.conversejs .fas:hover{color:var(--gray-color)}.conversejs q{quotes:"“" "”" "‘" "’"}.conversejs q.reason{display:inline}.conversejs q:before{content:open-quote}.conversejs q:after{content:close-quote}.conversejs .helptext{font-size:var(--font-size-tiny);color:var(--text-color-lighten-15-percent)}.conversejs .selected{color:var(--link-color)!important}.conversejs .circle{border-radius:50%}.conversejs .no-text-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@keyframes colorchange-chatmessage{0%{background-color:#8dd8ae}25%{background-color:rgba(141,216,174,.75)}50%{background-color:rgba(141,216,174,.5)}75%{background-color:rgba(141,216,174,.25)}100%{background-color:transparent}}@-webkit-keyframes colorchange-chatmessage{0%{background-color:#8dd8ae}25%{background-color:rgba(141,216,174,.75)}50%{background-color:rgba(141,216,174,.5)}75%{background-color:rgba(141,216,174,.25)}100%{background-color:transparent}}@keyframes colorchange-chatmessage-muc{0%{background-color:#ffb5a2}25%{background-color:rgba(255,181,162,.75)}50%{background-color:rgba(255,181,162,.5)}75%{background-color:rgba(255,181,162,.25)}100%{background-color:transparent}}@-webkit-keyframes colorchange-chatmessage-muc{0%{background-color:#ffb5a2}25%{background-color:rgba(255,181,162,.75)}50%{background-color:rgba(255,181,162,.5)}75%{background-color:rgba(255,181,162,.25)}100%{background-color:transparent}}@keyframes fadein{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}@keyframes fadeOut{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}.conversejs .fade-in{opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease}.conversejs .visible{opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease}.conversejs .hidden{opacity:0!important;display:none!important}.conversejs .fade-out{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.conversejs .collapsed{height:0!important;overflow:hidden!important;padding:0!important}.conversejs .locked{padding-right:22px}@-webkit-keyframes spin{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(359deg)}}.conversejs .spinner__container{width:100%}.conversejs .spinner{-webkit-animation:spin 2s infinite,linear;animation:spin 2s infinite,linear;width:1em;display:block;text-align:center;padding:.5em 0;font-size:24px}.conversejs .left{float:left}.conversejs .right{float:right}.conversejs .centered{text-align:center;display:block;margin:auto}.conversejs .hor_centered{text-align:center;display:block!important;margin:0 auto;clear:both}.conversejs .error{color:var(--error-color)!important}.conversejs .info{color:var(--info-color)}.conversejs .reg-feedback{font-size:85%;margin-bottom:1em}.conversejs #converse-login .conn-feedback,.conversejs .reg-feedback{display:block;text-align:center;width:100%}.conversejs .avatar{border-radius:var(--avatar-border-radius);border:var(--avatar-border);background-color:var(--avatar-background-color)}.conversejs .avatar-autocomplete{margin-right:.5em;vertical-align:middle}.conversejs .activated{display:block!important}.conversejs .form-help{color:var(--subdued-color);font-size:90%}.conversejs .form-control--labeled{margin-top:.5em}.conversejs .nav-pills .nav-link.active,.conversejs .nav-pills .show>.nav-link{background-color:var(--primary-color)}@media screen and (max-width:575px){body .converse-brand{font-size:3.75em}.conversejs:not(.converse-embedded) .chatbox .chat-body{border-radius:var(--chatbox-border-radius)}.conversejs:not(.converse-embedded) .flyout{border-radius:var(--chatbox-border-radius)}}@media screen and (min-width:576px){.conversejs .offset-sm-2{margin-left:16.666667%}}@media screen and (min-width:768px){.conversejs .offset-md-2{margin-left:16.666667%}.conversejs .offset-md-3{margin-left:25%}}@media screen and (min-width:992px){.conversejs .offset-lg-2{margin-left:16.666667%}.conversejs .offset-lg-3{margin-left:25%}}@media screen and (min-width:1200px){.conversejs .offset-xl-2{margin-left:16.666667%}}@media screen and (max-height:450px){.conversejs{left:0}}.conversejs .btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .btn{transition:none}}.conversejs .btn:hover{color:#212529;text-decoration:none}.conversejs .btn.focus,.conversejs .btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .btn.disabled,.conversejs .btn:disabled{opacity:.65}.conversejs .btn:not(:disabled):not(.disabled){cursor:pointer}.conversejs a.btn.disabled,.conversejs fieldset:disabled a.btn{pointer-events:none}.conversejs .btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.conversejs .btn-primary.focus,.conversejs .btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.conversejs .btn-primary.disabled,.conversejs .btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .btn-primary:not(:disabled):not(.disabled).active,.conversejs .btn-primary:not(:disabled):not(.disabled):active,.show>.conversejs .btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.conversejs .btn-primary:not(:disabled):not(.disabled).active:focus,.conversejs .btn-primary:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.conversejs .btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.conversejs .btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.conversejs .btn-secondary.focus,.conversejs .btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.conversejs .btn-secondary.disabled,.conversejs .btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.conversejs .btn-secondary:not(:disabled):not(.disabled).active,.conversejs .btn-secondary:not(:disabled):not(.disabled):active,.show>.conversejs .btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.conversejs .btn-secondary:not(:disabled):not(.disabled).active:focus,.conversejs .btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.conversejs .btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.conversejs .btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.conversejs .btn-success.focus,.conversejs .btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.conversejs .btn-success.disabled,.conversejs .btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.conversejs .btn-success:not(:disabled):not(.disabled).active,.conversejs .btn-success:not(:disabled):not(.disabled):active,.show>.conversejs .btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.conversejs .btn-success:not(:disabled):not(.disabled).active:focus,.conversejs .btn-success:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.conversejs .btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.conversejs .btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.conversejs .btn-info.focus,.conversejs .btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.conversejs .btn-info.disabled,.conversejs .btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.conversejs .btn-info:not(:disabled):not(.disabled).active,.conversejs .btn-info:not(:disabled):not(.disabled):active,.show>.conversejs .btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.conversejs .btn-info:not(:disabled):not(.disabled).active:focus,.conversejs .btn-info:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.conversejs .btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.conversejs .btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.conversejs .btn-warning.focus,.conversejs .btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.conversejs .btn-warning.disabled,.conversejs .btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.conversejs .btn-warning:not(:disabled):not(.disabled).active,.conversejs .btn-warning:not(:disabled):not(.disabled):active,.show>.conversejs .btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.conversejs .btn-warning:not(:disabled):not(.disabled).active:focus,.conversejs .btn-warning:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.conversejs .btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.conversejs .btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.conversejs .btn-danger.focus,.conversejs .btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.conversejs .btn-danger.disabled,.conversejs .btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.conversejs .btn-danger:not(:disabled):not(.disabled).active,.conversejs .btn-danger:not(:disabled):not(.disabled):active,.show>.conversejs .btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.conversejs .btn-danger:not(:disabled):not(.disabled).active:focus,.conversejs .btn-danger:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.conversejs .btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.conversejs .btn-light.focus,.conversejs .btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.conversejs .btn-light.disabled,.conversejs .btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-light:not(:disabled):not(.disabled).active,.conversejs .btn-light:not(:disabled):not(.disabled):active,.show>.conversejs .btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.conversejs .btn-light:not(:disabled):not(.disabled).active:focus,.conversejs .btn-light:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.conversejs .btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.conversejs .btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.conversejs .btn-dark.focus,.conversejs .btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.conversejs .btn-dark.disabled,.conversejs .btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.conversejs .btn-dark:not(:disabled):not(.disabled).active,.conversejs .btn-dark:not(:disabled):not(.disabled):active,.show>.conversejs .btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.conversejs .btn-dark:not(:disabled):not(.disabled).active:focus,.conversejs .btn-dark:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.conversejs .btn-outline-primary{color:#007bff;border-color:#007bff}.conversejs .btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .btn-outline-primary.focus,.conversejs .btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.conversejs .btn-outline-primary.disabled,.conversejs .btn-outline-primary:disabled{color:#007bff;background-color:transparent}.conversejs .btn-outline-primary:not(:disabled):not(.disabled).active,.conversejs .btn-outline-primary:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .btn-outline-primary:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.conversejs .btn-outline-secondary{color:#6c757d;border-color:#6c757d}.conversejs .btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.conversejs .btn-outline-secondary.focus,.conversejs .btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.conversejs .btn-outline-secondary.disabled,.conversejs .btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.conversejs .btn-outline-secondary:not(:disabled):not(.disabled).active,.conversejs .btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.conversejs .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.conversejs .btn-outline-success{color:#28a745;border-color:#28a745}.conversejs .btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.conversejs .btn-outline-success.focus,.conversejs .btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.conversejs .btn-outline-success.disabled,.conversejs .btn-outline-success:disabled{color:#28a745;background-color:transparent}.conversejs .btn-outline-success:not(:disabled):not(.disabled).active,.conversejs .btn-outline-success:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.conversejs .btn-outline-success:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.conversejs .btn-outline-info{color:#17a2b8;border-color:#17a2b8}.conversejs .btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.conversejs .btn-outline-info.focus,.conversejs .btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.conversejs .btn-outline-info.disabled,.conversejs .btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.conversejs .btn-outline-info:not(:disabled):not(.disabled).active,.conversejs .btn-outline-info:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.conversejs .btn-outline-info:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.conversejs .btn-outline-warning{color:#ffc107;border-color:#ffc107}.conversejs .btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.conversejs .btn-outline-warning.focus,.conversejs .btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.conversejs .btn-outline-warning.disabled,.conversejs .btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.conversejs .btn-outline-warning:not(:disabled):not(.disabled).active,.conversejs .btn-outline-warning:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.conversejs .btn-outline-warning:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.conversejs .btn-outline-danger{color:#dc3545;border-color:#dc3545}.conversejs .btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.conversejs .btn-outline-danger.focus,.conversejs .btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.conversejs .btn-outline-danger.disabled,.conversejs .btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.conversejs .btn-outline-danger:not(:disabled):not(.disabled).active,.conversejs .btn-outline-danger:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.conversejs .btn-outline-danger:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.conversejs .btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-outline-light.focus,.conversejs .btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.conversejs .btn-outline-light.disabled,.conversejs .btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.conversejs .btn-outline-light:not(:disabled):not(.disabled).active,.conversejs .btn-outline-light:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.conversejs .btn-outline-light:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.conversejs .btn-outline-dark{color:#343a40;border-color:#343a40}.conversejs .btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.conversejs .btn-outline-dark.focus,.conversejs .btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.conversejs .btn-outline-dark.disabled,.conversejs .btn-outline-dark:disabled{color:#343a40;background-color:transparent}.conversejs .btn-outline-dark:not(:disabled):not(.disabled).active,.conversejs .btn-outline-dark:not(:disabled):not(.disabled):active,.show>.conversejs .btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.conversejs .btn-outline-dark:not(:disabled):not(.disabled).active:focus,.conversejs .btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.conversejs .btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.conversejs .btn-link{font-weight:400;color:#007bff;text-decoration:none}.conversejs .btn-link:hover{color:#0056b3;text-decoration:underline}.conversejs .btn-link.focus,.conversejs .btn-link:focus{text-decoration:underline}.conversejs .btn-link.disabled,.conversejs .btn-link:disabled{color:#6c757d;pointer-events:none}.conversejs .btn-group-lg>.btn,.conversejs .btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.conversejs .btn-group-sm>.btn,.conversejs .btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.conversejs .btn-block{display:block;width:100%}.conversejs .btn-block+.btn-block{margin-top:.5rem}.conversejs input[type=button].btn-block,.conversejs input[type=reset].btn-block,.conversejs input[type=submit].btn-block{width:100%}.conversejs .btn-group,.conversejs .btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.conversejs .btn-group-vertical>.btn,.conversejs .btn-group>.btn{position:relative;flex:1 1 auto}.conversejs .btn-group-vertical>.btn:hover,.conversejs .btn-group>.btn:hover{z-index:1}.conversejs .btn-group-vertical>.btn.active,.conversejs .btn-group-vertical>.btn:active,.conversejs .btn-group-vertical>.btn:focus,.conversejs .btn-group>.btn.active,.conversejs .btn-group>.btn:active,.conversejs .btn-group>.btn:focus{z-index:1}.conversejs .btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.conversejs .btn-toolbar .input-group{width:auto}.conversejs .btn-group>.btn-group:not(:first-child),.conversejs .btn-group>.btn:not(:first-child){margin-left:-1px}.conversejs .btn-group>.btn-group:not(:last-child)>.btn,.conversejs .btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .btn-group>.btn-group:not(:first-child)>.btn,.conversejs .btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.conversejs .dropdown-toggle-split::after,.dropright .conversejs .dropdown-toggle-split::after,.dropup .conversejs .dropdown-toggle-split::after{margin-left:0}.dropleft .conversejs .dropdown-toggle-split::before{margin-right:0}.conversejs .btn-group-sm>.btn+.dropdown-toggle-split,.conversejs .btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.conversejs .btn-group-lg>.btn+.dropdown-toggle-split,.conversejs .btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.conversejs .btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.conversejs .btn-group-vertical>.btn,.conversejs .btn-group-vertical>.btn-group{width:100%}.conversejs .btn-group-vertical>.btn-group:not(:first-child),.conversejs .btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.conversejs .btn-group-vertical>.btn-group:not(:last-child)>.btn,.conversejs .btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.conversejs .btn-group-vertical>.btn-group:not(:first-child)>.btn,.conversejs .btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.conversejs .btn-group-toggle>.btn,.conversejs .btn-group-toggle>.btn-group>.btn{margin-bottom:0}.conversejs .btn-group-toggle>.btn input[type=checkbox],.conversejs .btn-group-toggle>.btn input[type=radio],.conversejs .btn-group-toggle>.btn-group>.btn input[type=checkbox],.conversejs .btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.conversejs .btn{font-weight:400;color:#fff}.conversejs .btn .fa,.conversejs .btn .far,.conversejs .btn .fas{color:#fff;margin-right:.5em}.conversejs .btn .fa.only-icon,.conversejs .btn .far.only-icon,.conversejs .btn .fas.only-icon{margin-right:0}.conversejs .btn-primary{background-color:var(--primary-color);border-color:transparent}.conversejs .btn-primary:active,.conversejs .btn-primary:focus,.conversejs .btn-primary:hover{background-color:var(--primary-color-dark)!important;border-color:transparent!important}.conversejs .btn--transparent{background:0 0;border:none}.conversejs .btn-circle{width:30px;height:30px;text-align:center;padding:.5em 0;font-size:var(--font-size-small);line-height:1.428571429;border-radius:50%}.conversejs .btn.fa{color:#fff!important}.conversejs .badge-info,.conversejs .btn-info{background-color:var(--primary-color);border-color:var(--primary-color)}.conversejs .badge-info:hover,.conversejs .btn-info:hover{background-color:var(--primary-color-dark);border-color:var(--primary-color-dark)}.conversejs .badge-secondary,.conversejs .btn-secondary,.conversejs .button-cancel{color:#fff;background-color:var(--secondary-color);border-color:var(--secondary-color)}.conversejs .badge-secondary:hover,.conversejs .btn-secondary:hover,.conversejs .button-cancel:hover{background-color:var(--secondary-color-dark);border-color:var(--secondary-color-dark)}.conversejs .btn-warning{color:#fff;background-color:var(--warning-color);border-color:var(--warning-color)}.conversejs .btn-warning:hover{color:#fff;background-color:var(--warning-color-dark);border-color:var(--warning-color-dark)}.conversejs .btn-danger{color:#fff;background-color:var(--danger-color);border-color:var(--danger-color)!important}.conversejs .btn-danger:hover{background-color:var(--danger-color-dark);border-color:var(--danger-color-dark)}.conversejs .badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .badge{transition:none}}a.conversejs .badge:focus,a.conversejs .badge:hover{text-decoration:none}.conversejs .badge:empty{display:none}.conversejs .btn .badge{position:relative;top:-1px}.conversejs .badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.conversejs .badge-primary{color:#fff;background-color:#007bff}a.conversejs .badge-primary:focus,a.conversejs .badge-primary:hover{color:#fff;background-color:#0062cc}a.conversejs .badge-primary.focus,a.conversejs .badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.conversejs .badge-secondary{color:#fff;background-color:#6c757d}a.conversejs .badge-secondary:focus,a.conversejs .badge-secondary:hover{color:#fff;background-color:#545b62}a.conversejs .badge-secondary.focus,a.conversejs .badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.conversejs .badge-success{color:#fff;background-color:#28a745}a.conversejs .badge-success:focus,a.conversejs .badge-success:hover{color:#fff;background-color:#1e7e34}a.conversejs .badge-success.focus,a.conversejs .badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.conversejs .badge-info{color:#fff;background-color:#17a2b8}a.conversejs .badge-info:focus,a.conversejs .badge-info:hover{color:#fff;background-color:#117a8b}a.conversejs .badge-info.focus,a.conversejs .badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.conversejs .badge-warning{color:#212529;background-color:#ffc107}a.conversejs .badge-warning:focus,a.conversejs .badge-warning:hover{color:#212529;background-color:#d39e00}a.conversejs .badge-warning.focus,a.conversejs .badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.conversejs .badge-danger{color:#fff;background-color:#dc3545}a.conversejs .badge-danger:focus,a.conversejs .badge-danger:hover{color:#fff;background-color:#bd2130}a.conversejs .badge-danger.focus,a.conversejs .badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.conversejs .badge-light{color:#212529;background-color:#f8f9fa}a.conversejs .badge-light:focus,a.conversejs .badge-light:hover{color:#212529;background-color:#dae0e5}a.conversejs .badge-light.focus,a.conversejs .badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.conversejs .badge-dark{color:#fff;background-color:#343a40}a.conversejs .badge-dark:focus,a.conversejs .badge-dark:hover{color:#fff;background-color:#1d2124}a.conversejs .badge-dark.focus,a.conversejs .badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.conversejs .badge{color:#fff;font-size:90%;font-weight:400;line-height:1;text-shadow:none}.conversejs .badge-light{color:var(--text-color)}.conversejs .badge-primary{background-color:var(--primary-color);border-color:transparent}.conversejs .badge-primary:active,.conversejs .badge-primary:focus,.conversejs .badge-primary:hover{background-color:var(--primary-color-dark)!important;border-color:transparent!important}.conversejs .badge-info{background-color:var(--primary-color);border-color:var(--primary-color)}.conversejs .badge-info:hover{background-color:var(--primary-color-dark);border-color:var(--primary-color-dark)}.conversejs .badge-secondary{color:#fff;background-color:var(--secondary-color);border-color:var(--secondary-color)}.conversejs .badge-secondary:hover{background-color:var(--secondary-color-dark);border-color:var(--secondary-color-dark)}.conversejs .form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .form-control{transition:none}}.conversejs .form-control::-ms-expand{background-color:transparent;border:0}.conversejs .form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.conversejs .form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .form-control::-moz-placeholder{color:#6c757d;opacity:1}.conversejs .form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.conversejs .form-control::placeholder{color:#6c757d;opacity:1}.conversejs .form-control:disabled,.conversejs .form-control[readonly]{background-color:#e9ecef;opacity:1}.conversejs input[type=date].form-control,.conversejs input[type=datetime-local].form-control,.conversejs input[type=month].form-control,.conversejs input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}.conversejs select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.conversejs .form-control-file,.conversejs .form-control-range{display:block;width:100%}.conversejs .col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.conversejs .col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.conversejs .col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.conversejs .form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.conversejs .form-control-plaintext.form-control-lg,.conversejs .form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.conversejs .form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.conversejs .form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.conversejs select.form-control[multiple],.conversejs select.form-control[size]{height:auto}.conversejs textarea.form-control{height:auto}.conversejs .form-group{margin-bottom:1rem}.conversejs .form-text{display:block;margin-top:.25rem}.conversejs .form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.conversejs .form-row>.col,.conversejs .form-row>[class*=col-]{padding-right:5px;padding-left:5px}.conversejs .form-check{position:relative;display:block;padding-left:1.25rem}.conversejs .form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.conversejs .form-check-input:disabled~.form-check-label,.conversejs .form-check-input[disabled]~.form-check-label{color:#6c757d}.conversejs .form-check-label{margin-bottom:0}.conversejs .form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.conversejs .form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.conversejs .valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.conversejs .valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.conversejs .valid-tooltip,.form-row>[class*=col-]>.conversejs .valid-tooltip{left:5px}.conversejs.is-valid~.valid-feedback,.conversejs.is-valid~.valid-tooltip,.was-validated .conversejs:valid~.valid-feedback,.was-validated .conversejs:valid~.valid-tooltip{display:block}.conversejs .form-control.is-valid,.was-validated .conversejs .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.conversejs .form-control.is-valid:focus,.was-validated .conversejs .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.conversejs textarea.form-control.is-valid,.was-validated .conversejs textarea.form-control:valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.conversejs .custom-select.is-valid,.was-validated .conversejs .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.conversejs .custom-select.is-valid:focus,.was-validated .conversejs .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.conversejs .form-check-input.is-valid~.form-check-label,.was-validated .conversejs .form-check-input:valid~.form-check-label{color:#28a745}.conversejs .form-check-input.is-valid~.valid-feedback,.conversejs .form-check-input.is-valid~.valid-tooltip,.was-validated .conversejs .form-check-input:valid~.valid-feedback,.was-validated .conversejs .form-check-input:valid~.valid-tooltip{display:block}.conversejs .custom-control-input.is-valid~.custom-control-label,.was-validated .conversejs .custom-control-input:valid~.custom-control-label{color:#28a745}.conversejs .custom-control-input.is-valid~.custom-control-label::before,.was-validated .conversejs .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.conversejs .custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .conversejs .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.conversejs .custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .conversejs .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.conversejs .custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .conversejs .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.conversejs .custom-file-input.is-valid~.custom-file-label,.was-validated .conversejs .custom-file-input:valid~.custom-file-label{border-color:#28a745}.conversejs .custom-file-input.is-valid:focus~.custom-file-label,.was-validated .conversejs .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.conversejs .invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.conversejs .invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.conversejs .invalid-tooltip,.form-row>[class*=col-]>.conversejs .invalid-tooltip{left:5px}.conversejs.is-invalid~.invalid-feedback,.conversejs.is-invalid~.invalid-tooltip,.was-validated .conversejs:invalid~.invalid-feedback,.was-validated .conversejs:invalid~.invalid-tooltip{display:block}.conversejs .form-control.is-invalid,.was-validated .conversejs .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.conversejs .form-control.is-invalid:focus,.was-validated .conversejs .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.conversejs textarea.form-control.is-invalid,.was-validated .conversejs textarea.form-control:invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.conversejs .custom-select.is-invalid,.was-validated .conversejs .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.conversejs .custom-select.is-invalid:focus,.was-validated .conversejs .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.conversejs .form-check-input.is-invalid~.form-check-label,.was-validated .conversejs .form-check-input:invalid~.form-check-label{color:#dc3545}.conversejs .form-check-input.is-invalid~.invalid-feedback,.conversejs .form-check-input.is-invalid~.invalid-tooltip,.was-validated .conversejs .form-check-input:invalid~.invalid-feedback,.was-validated .conversejs .form-check-input:invalid~.invalid-tooltip{display:block}.conversejs .custom-control-input.is-invalid~.custom-control-label,.was-validated .conversejs .custom-control-input:invalid~.custom-control-label{color:#dc3545}.conversejs .custom-control-input.is-invalid~.custom-control-label::before,.was-validated .conversejs .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.conversejs .custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .conversejs .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.conversejs .custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .conversejs .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.conversejs .custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .conversejs .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.conversejs .custom-file-input.is-invalid~.custom-file-label,.was-validated .conversejs .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.conversejs .custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .conversejs .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.conversejs .form-inline{display:flex;flex-flow:row wrap;align-items:center}.conversejs .form-inline .form-check{width:100%}@media(min-width:576px){.conversejs .form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.conversejs .form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.conversejs .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.conversejs .form-inline .form-control-plaintext{display:inline-block}.conversejs .form-inline .custom-select,.conversejs .form-inline .input-group{width:auto}.conversejs .form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.conversejs .form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.conversejs .form-inline .custom-control{align-items:center;justify-content:center}.conversejs .form-inline .custom-control-label{margin-bottom:0}}.conversejs .input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.conversejs .input-group>.custom-file,.conversejs .input-group>.custom-select,.conversejs .input-group>.form-control,.conversejs .input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.conversejs .input-group>.custom-file+.custom-file,.conversejs .input-group>.custom-file+.custom-select,.conversejs .input-group>.custom-file+.form-control,.conversejs .input-group>.custom-select+.custom-file,.conversejs .input-group>.custom-select+.custom-select,.conversejs .input-group>.custom-select+.form-control,.conversejs .input-group>.form-control+.custom-file,.conversejs .input-group>.form-control+.custom-select,.conversejs .input-group>.form-control+.form-control,.conversejs .input-group>.form-control-plaintext+.custom-file,.conversejs .input-group>.form-control-plaintext+.custom-select,.conversejs .input-group>.form-control-plaintext+.form-control{margin-left:-1px}.conversejs .input-group>.custom-file .custom-file-input:focus~.custom-file-label,.conversejs .input-group>.custom-select:focus,.conversejs .input-group>.form-control:focus{z-index:3}.conversejs .input-group>.custom-file .custom-file-input:focus{z-index:4}.conversejs .input-group>.custom-select:not(:first-child),.conversejs .input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .input-group>.custom-file{display:flex;align-items:center}.conversejs .input-group>.custom-file:not(:first-child) .custom-file-label,.conversejs .input-group>.custom-file:not(:last-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.conversejs .input-group:not(.has-validation)>.custom-select:not(:last-child),.conversejs .input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.conversejs .input-group.has-validation>.custom-select:nth-last-child(n+3),.conversejs .input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .input-group-append,.conversejs .input-group-prepend{display:flex}.conversejs .input-group-append .btn,.conversejs .input-group-prepend .btn{position:relative;z-index:2}.conversejs .input-group-append .btn:focus,.conversejs .input-group-prepend .btn:focus{z-index:3}.conversejs .input-group-append .btn+.btn,.conversejs .input-group-append .btn+.input-group-text,.conversejs .input-group-append .input-group-text+.btn,.conversejs .input-group-append .input-group-text+.input-group-text,.conversejs .input-group-prepend .btn+.btn,.conversejs .input-group-prepend .btn+.input-group-text,.conversejs .input-group-prepend .input-group-text+.btn,.conversejs .input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.conversejs .input-group-prepend{margin-right:-1px}.conversejs .input-group-append{margin-left:-1px}.conversejs .input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.conversejs .input-group-text input[type=checkbox],.conversejs .input-group-text input[type=radio]{margin-top:0}.conversejs .input-group-lg>.custom-select,.conversejs .input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.conversejs .input-group-lg>.custom-select,.conversejs .input-group-lg>.form-control,.conversejs .input-group-lg>.input-group-append>.btn,.conversejs .input-group-lg>.input-group-append>.input-group-text,.conversejs .input-group-lg>.input-group-prepend>.btn,.conversejs .input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.conversejs .input-group-sm>.custom-select,.conversejs .input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.conversejs .input-group-sm>.custom-select,.conversejs .input-group-sm>.form-control,.conversejs .input-group-sm>.input-group-append>.btn,.conversejs .input-group-sm>.input-group-append>.input-group-text,.conversejs .input-group-sm>.input-group-prepend>.btn,.conversejs .input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.conversejs .input-group-lg>.custom-select,.conversejs .input-group-sm>.custom-select{padding-right:1.75rem}.conversejs .input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.conversejs .input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.conversejs .input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.conversejs .input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.conversejs .input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.conversejs .input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.conversejs .input-group>.input-group-prepend>.btn,.conversejs .input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .input-group>.input-group-append>.btn,.conversejs .input-group>.input-group-append>.input-group-text,.conversejs .input-group>.input-group-prepend:first-child>.btn:not(:first-child),.conversejs .input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.conversejs .input-group>.input-group-prepend:not(:first-child)>.btn,.conversejs .input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.conversejs .custom-control-inline{display:inline-flex;margin-right:1rem}.conversejs .custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.conversejs .custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.conversejs .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.conversejs .custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.conversejs .custom-control-input:disabled~.custom-control-label,.conversejs .custom-control-input[disabled]~.custom-control-label{color:#6c757d}.conversejs .custom-control-input:disabled~.custom-control-label::before,.conversejs .custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.conversejs .custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.conversejs .custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.conversejs .custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.conversejs .custom-checkbox .custom-control-label::before{border-radius:.25rem}.conversejs .custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.conversejs .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.conversejs .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.conversejs .custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.conversejs .custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.conversejs .custom-radio .custom-control-label::before{border-radius:50%}.conversejs .custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.conversejs .custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.conversejs .custom-switch{padding-left:2.25rem}.conversejs .custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.conversejs .custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .custom-switch .custom-control-label::after{transition:none}}.conversejs .custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.conversejs .custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.conversejs .custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.conversejs .custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-select:focus::-ms-value{color:#495057;background-color:#fff}.conversejs .custom-select[multiple],.conversejs .custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.conversejs .custom-select:disabled{color:#6c757d;background-color:#e9ecef}.conversejs .custom-select::-ms-expand{display:none}.conversejs .custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.conversejs .custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.conversejs .custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.conversejs .custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.conversejs .custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.conversejs .custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-file-input:disabled~.custom-file-label,.conversejs .custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.conversejs .custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.conversejs .custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.conversejs .custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.conversejs .custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.conversejs .custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.conversejs .custom-range:focus{outline:0}.conversejs .custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.conversejs .custom-range::-moz-focus-outer{border:0}.conversejs .custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media(prefers-reduced-motion:reduce){.conversejs .custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.conversejs .custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.conversejs .custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.conversejs .custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media(prefers-reduced-motion:reduce){.conversejs .custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.conversejs .custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.conversejs .custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.conversejs .custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion:reduce){.conversejs .custom-range::-ms-thumb{-ms-transition:none;transition:none}}.conversejs .custom-range::-ms-thumb:active{background-color:#b3d7ff}.conversejs .custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.conversejs .custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.conversejs .custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.conversejs .custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.conversejs .custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.conversejs .custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.conversejs .custom-range:disabled::-moz-range-track{cursor:default}.conversejs .custom-range:disabled::-ms-thumb{background-color:#adb5bd}.conversejs .custom-control-label::before,.conversejs .custom-file-label,.conversejs .custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.conversejs .custom-control-label::before,.conversejs .custom-file-label,.conversejs .custom-select{transition:none}}.conversejs .btn--small{font-size:80%;font-weight:400}.conversejs form .hidden-username{opacity:0!important;height:0!important;padding:0!important}.conversejs form .error-feedback{margin-bottom:.5em}.conversejs form .form-check-label{margin-top:.3rem}.conversejs form .form-control::-moz-placeholder{color:var(--subdued-color)}.conversejs form .form-control:-ms-input-placeholder{color:var(--subdued-color)}.conversejs form .form-control::placeholder{color:var(--subdued-color)}.conversejs form .clear-input{margin-top:.5em;margin-bottom:.5em;position:absolute;right:.2em;cursor:pointer;font-size:var(--font-size)}.conversejs form#converse-login,.conversejs form#converse-register{background:var(--controlbox-pane-background-color)}.conversejs form#converse-login legend,.conversejs form#converse-register legend{width:100%;text-align:center;margin:0 auto .5em auto}.conversejs form#converse-login fieldset.buttons,.conversejs form#converse-register fieldset.buttons{text-align:center}.conversejs form#converse-login .login-anon,.conversejs form#converse-register .login-anon{height:auto;white-space:normal}.conversejs form#converse-login .save-submit,.conversejs form#converse-register .save-submit{color:var(--save-button-color)}.conversejs form#converse-login .form-url,.conversejs form#converse-register .form-url{display:block;font-weight:400;margin:1em 0}.conversejs form.converse-form{padding:1.2rem}.conversejs form.converse-form legend{color:var(--text-color);font-size:125%;margin-bottom:1.5em}.conversejs form.converse-form input[type=number],.conversejs form.converse-form input[type=password],.conversejs form.converse-form input[type=text],.conversejs form.converse-form select{min-width:50%}.conversejs form.converse-form input[type=button],.conversejs form.converse-form input[type=number],.conversejs form.converse-form input[type=password],.conversejs form.converse-form input[type=submit],.conversejs form.converse-form input[type=text]{padding:.5em}.conversejs form.converse-form input[type=button],.conversejs form.converse-form input[type=submit]{padding-left:1em;padding-right:1em;border:none}.conversejs form.converse-form input.error{border:1px solid var(--error-color);color:var(--text-color)}.conversejs form.converse-form .text-muted{color:var(--subdued-color)!important;font-size:85%;padding-top:.5em}.conversejs form.converse-form .text-muted a{color:var(--link-color-lighten-10-percent)}.conversejs form.converse-form .text-muted.error{color:var(--error-color)}.conversejs form.converse-form--modal{padding-bottom:0}.conversejs form.converse-form--spinner{height:100%}.conversejs form.converse-centered-form{min-height:66%;text-align:center}.conversejs form.converse-centered-form input{max-width:30em;margin:auto}.conversejs .list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.conversejs .list-group-item-action{width:100%;color:#495057;text-align:inherit}.conversejs .list-group-item-action:focus,.conversejs .list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.conversejs .list-group-item-action:active{color:#212529;background-color:#e9ecef}.conversejs .list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.conversejs .list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.conversejs .list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.conversejs .list-group-item.disabled,.conversejs .list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.conversejs .list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.conversejs .list-group-item+.conversejs .list-group-item{border-top-width:0}.conversejs .list-group-item+.conversejs .list-group-item.active{margin-top:-1px;border-top-width:1px}.conversejs .list-group-horizontal{flex-direction:row}.conversejs .list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width:576px){.conversejs .list-group-horizontal-sm{flex-direction:row}.conversejs .list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal-sm>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:768px){.conversejs .list-group-horizontal-md{flex-direction:row}.conversejs .list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal-md>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:992px){.conversejs .list-group-horizontal-lg{flex-direction:row}.conversejs .list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal-lg>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width:1200px){.conversejs .list-group-horizontal-xl{flex-direction:row}.conversejs .list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.conversejs .list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.conversejs .list-group-horizontal-xl>.list-group-item.active{margin-top:0}.conversejs .list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.conversejs .list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.conversejs .list-group-flush{border-radius:0}.conversejs .list-group-flush>.list-group-item{border-width:0 0 1px}.conversejs .list-group-flush>.list-group-item:last-child{border-bottom-width:0}.conversejs .list-group-item-primary{color:#004085;background-color:#b8daff}.conversejs .list-group-item-primary.list-group-item-action:focus,.conversejs .list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.conversejs .list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.conversejs .list-group-item-secondary{color:#383d41;background-color:#d6d8db}.conversejs .list-group-item-secondary.list-group-item-action:focus,.conversejs .list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.conversejs .list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.conversejs .list-group-item-success{color:#155724;background-color:#c3e6cb}.conversejs .list-group-item-success.list-group-item-action:focus,.conversejs .list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.conversejs .list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.conversejs .list-group-item-info{color:#0c5460;background-color:#bee5eb}.conversejs .list-group-item-info.list-group-item-action:focus,.conversejs .list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.conversejs .list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.conversejs .list-group-item-warning{color:#856404;background-color:#ffeeba}.conversejs .list-group-item-warning.list-group-item-action:focus,.conversejs .list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.conversejs .list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.conversejs .list-group-item-danger{color:#721c24;background-color:#f5c6cb}.conversejs .list-group-item-danger.list-group-item-action:focus,.conversejs .list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.conversejs .list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.conversejs .list-group-item-light{color:#818182;background-color:#fdfdfe}.conversejs .list-group-item-light.list-group-item-action:focus,.conversejs .list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.conversejs .list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.conversejs .list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.conversejs .list-group-item-dark.list-group-item-action:focus,.conversejs .list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.conversejs .list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.conversejs .list-group-item.active{background-color:var(--primary-color);border-color:var(--primary-color-dark)}.conversejs .list-container{text-align:left;padding:.3em 0}.conversejs .list-container .list-toggle{font-family:var(--heading-font);font-weight:var(--list-toggle-font-weight);display:block;color:var(--list-toggle-color);padding:0 0 .5rem 0}.conversejs .list-container .list-toggle:hover{color:var(--list-toggle-hover-color)}.conversejs .items-list{text-align:left}.conversejs .items-list .list-item{border:none;clear:both;color:var(--text-color);overflow:hidden;padding:.5em 0;text-shadow:0 1px 0 var(--text-shadow-color);word-wrap:break-word;height:2.5em}.conversejs .items-list .list-item.unread-msgs{font-weight:700}.conversejs .items-list .list-item .list-item-link{color:var(--list-item-link-color);margin:auto;font-size:var(--font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:baseline}.conversejs .items-list .list-item .list-item-link:hover{color:var(--list-item-link-hover-color)}.conversejs .items-list .list-item .list-item-badge{opacity:1;border-radius:25%;color:#fff;font-size:var(--font-size-small);line-height:var(--font-size-small)}.conversejs .items-list .list-item .list-item-action{opacity:0;font-size:var(--font-size-tiny);padding:.3em 0 0 0;margin:0 0 0 var(--inline-action-margin);width:2em;height:2em;color:var(--subdued-color)}.conversejs .items-list .list-item .list-item-action:before{font-size:var(--font-size)}.conversejs .items-list .list-item .list-item-action.button-on{color:var(--list-item-link-color)}.conversejs .items-list .list-item .list-item-action.button-on:hover{color:var(--list-item-link-hover-color)}.conversejs .items-list .list-item .list-item-action:hover{color:var(--list-toggle-hover-color);opacity:1}.conversejs .items-list .list-item .list-item-action--visible{opacity:1!important}.conversejs .items-list .list-item.open{background-color:var(--list-item-open-color)}.conversejs .items-list .list-item.open:hover{background-color:var(--list-item-open-hover-color)!important}.conversejs .items-list .list-item.open a{color:#fff}.conversejs .items-list .list-item.open .list-item-link:hover{color:#fff}.conversejs .items-list .list-item.open .list-item-action{color:var(--list-item-action-color)}.conversejs .items-list .list-item.open .list-item-action:hover{color:#fff}.conversejs .items-list .list-item:hover{background-color:var(--controlbox-pane-bg-hover-color)}.conversejs .items-list .list-item:hover .fa,.conversejs .items-list .list-item:hover .far,.conversejs .items-list .list-item:hover .fas{opacity:1}.conversejs .styling-directive{color:var(--subdued-color)}.conversejs .older-msg time{font-weight:700}.conversejs .message .show-msg-author-modal{color:var(--text-color)!important}.conversejs .message blockquote{margin-left:.5em;margin-bottom:.25em;padding-right:1em;color:var(--subdued-color);border-left:.3em solid var(--subdued-color);padding-left:.5em;display:inline-block}.conversejs .message code{font-family:monospace}.conversejs .message .mention{font-weight:700}.conversejs .message .mention--self{font-weight:400}.conversejs .message.date-separator,.conversejs .message.separator{height:2em;margin:0;position:relative;text-align:center;z-index:0}.conversejs .message.date-separator .separator,.conversejs .message.separator .separator{border-top:0;border-bottom:var(--chat-separator-border-bottom);margin:0 1em;position:relative;top:1em;z-index:5}.conversejs .message.date-separator .separator-text,.conversejs .message.separator .separator-text{background:#fff;bottom:1px;color:var(--separator-text-color);display:inline-block;line-height:2em;padding:0 1em;position:relative;z-index:5}.conversejs .message.chat-msg--retracted .chat-msg__message{color:var(--subdued-color)}.conversejs .message.chat-info{color:var(--chat-head-color);font-size:var(--message-font-size);line-height:var(--line-height-small);font-size:90%;padding:.17rem 1rem}.conversejs .message.chat-info.badge{color:var(--chat-head-text-color)}.conversejs .message.chat-info.chat-state-notification{font-style:italic}.conversejs .message.chat-info.chat-event{clear:left;font-style:italic}.conversejs .message.chat-info.chat-error{color:var(--error-color);font-weight:700}.conversejs .message.chat-info .q{font-style:italic}.conversejs .message .chat-image{height:auto;width:auto;max-height:15em;max-width:100%}.conversejs .message.chat-msg--action{font-style:italic}.conversejs .message.chat-msg--action .chat-msg__author{padding-right:.2em}.conversejs .message.chat-msg{display:inline-flex;width:100%;flex-direction:row;padding:.125rem 1rem}.conversejs .message.chat-msg.onload{animation:colorchange-chatmessage 1s;-webkit-animation:colorchange-chatmessage 1s}.conversejs .message.chat-msg:hover{background-color:var(--list-item-hover-color)}.conversejs .message.chat-msg.correcting.groupchat{background-color:var(--chatroom-correcting-color)}.conversejs .message.chat-msg.correcting:not(.groupchat){background-color:var(--chat-correcting-color)}.conversejs .message.chat-msg .spoiler{margin-top:.5em}.conversejs .message.chat-msg .spoiler-hint{margin-bottom:.5em}.conversejs .message.chat-msg .spoiler-toggle{color:#fff}.conversejs .message.chat-msg .spoiler-toggle i{color:#fff;padding-right:.5em}.conversejs .message.chat-msg .spoiler-toggle:before{padding-right:.25em;whitespace:nowrap}.conversejs .message.chat-msg .chat-msg__content{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;margin-left:.5rem;width:calc(100% - var(--message-avatar-width))}.conversejs .message.chat-msg .chat-msg__content:hover .btn--standalone{opacity:1}.conversejs .message.chat-msg .chat-msg__content--me .chat-msg__body--groupchat .chat-msg__text{color:var(--subdued-color)}.conversejs .message.chat-msg .chat-msg__content--me .chat-msg__body--groupchat.chat-msg__body--delayed .chat-msg__text,.conversejs .message.chat-msg .chat-msg__content--me .chat-msg__body--groupchat.chat-msg__body--received .chat-msg__text{color:var(--message-text-color)}.conversejs .message.chat-msg .chat-msg__content--action{width:100%;margin-left:0}.conversejs .message.chat-msg .chat-msg__body{display:flex;flex-direction:row;justify-content:space-between}.conversejs .message.chat-msg converse-chat-message-body{display:inline}.conversejs .message.chat-msg .chat-msg__message{line-height:1.5em;display:inline-flex;flex-direction:column;width:100%;overflow-wrap:break-word}.conversejs .message.chat-msg .chat-msg__edit-modal{cursor:pointer;padding-right:.5em}.conversejs .message.chat-msg .chat-msg__subject{font-weight:700;clear:right}.conversejs .message.chat-msg .chat-msg__text{color:var(--message-text-color);padding:0;white-space:pre-wrap;word-wrap:break-word;word-break:break-word}.conversejs .message.chat-msg .chat-msg__text a{word-wrap:break-word;word-break:break-all;display:inline}.conversejs .message.chat-msg .chat-msg__text a.chat-image__link{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;display:block}.conversejs .message.chat-msg .chat-msg__text img.emoji{height:1.5em;width:1.5em;margin:0 .05em 0 .1em;vertical-align:-.1em}.conversejs .message.chat-msg .chat-msg__text .emojione{margin-bottom:-6px}.conversejs .message.chat-msg .chat-msg__text--larger{font-size:1.6em;padding-top:.25em;padding-bottom:.25em}.conversejs .message.chat-msg .chat-msg__error{color:var(--error-color)}.conversejs .message.chat-msg .chat-msg__media{margin-top:.25rem;word-break:break-all}.conversejs .message.chat-msg .chat-msg__media a{word-wrap:break-word}.conversejs .message.chat-msg .chat-msg__media audio{width:100%}.conversejs .message.chat-msg converse-message-actions{margin-left:.5em}.conversejs .message.chat-msg .chat-msg__actions .dropdown-menu{min-width:5rem}.conversejs .message.chat-msg .chat-msg__actions i{color:var(--text-color-lighten-15-percent);font-size:70%}.conversejs .message.chat-msg .chat-msg__actions button{border:none;background:0 0;color:var(--text-color-lighten-15-percent);padding:0 .25em}.conversejs .message.chat-msg .chat-msg__actions .btn--standalone{opacity:0;margin-top:-.2em}.conversejs .message.chat-msg .chat-msg__actions .chat-msg__action{width:100%;padding:.5em 1em;text-align:left;white-space:nowrap}.conversejs .message.chat-msg .chat-msg__actions .chat-msg__action converse-icon{margin-right:.25em}.conversejs .message.chat-msg .chat-msg__actions .chat-msg__action:hover{color:var(--text-color);background-color:var(--list-item-hover-color)}.conversejs .message.chat-msg .chat-msg__avatar{margin-top:.5em;vertical-align:middle;height:var(--message-avatar-height);width:var(--message-avatar-width);min-height:var(--message-avatar-height);min-width:var(--message-avatar-width)}.conversejs .message.chat-msg .chat-msg__author{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--heading-font);font-size:115%;font-weight:700;padding-bottom:1px}.conversejs .message.chat-msg .chat-msg__heading{width:100%;margin-top:.5em;padding-right:.25rem;padding-bottom:.25rem}.conversejs .message.chat-msg .chat-msg__heading .badge{margin-left:.5em;font-family:var(--normal_font)}.conversejs .message.chat-msg .chat-msg__heading .chat-msg__time{padding-left:.25em;padding-right:.25em;color:var(--text-color-lighten-15-percent)}.conversejs .message.chat-msg.chat-msg--action .chat-msg__message{flex-direction:row}.conversejs .message.chat-msg.chat-msg--action .chat-msg__text{width:auto}.conversejs .message.chat-msg.chat-msg--action .chat-msg__heading{margin-top:0;padding-bottom:0;width:auto}.conversejs .message.chat-msg.chat-msg--action .chat-msg__heading .fa{margin-left:.5em}.conversejs .message.chat-msg.chat-msg--action .chat-msg__author{font-size:var(--message-font-size)}.conversejs .message.chat-msg.chat-msg--action .chat-msg__time{margin-left:0}.conversejs .message.chat-msg.chat-msg--followup .chat-msg__avatar,.conversejs .message.chat-msg.chat-msg--followup .chat-msg__heading{display:none}.conversejs .message.chat-msg.chat-msg--followup.chat-msg--with-avatar .chat-msg__content{margin-left:2.75rem;width:100%}.conversejs .message.chat-msg .chat-msg__receipt{margin-left:.5em;margin-right:.5em;color:var(--message-receipt-color)}.conversejs .chatroom-body .message.onload{animation:colorchange-chatmessage-muc 1s;-webkit-animation:colorchange-chatmessage-muc 1s}.conversejs .chatroom-body .message .separator{border-top:0;border-bottom:var(--chatroom-separator-border-bottom)}.conversejs converse-chats.converse-overlayed .message.chat-msg.chat-msg--followup .chat-msg__content{margin-left:0}@media screen and (max-width:767px){converse-chats:not(.converse-embedded) .message.chat-msg .chat-msg__author{white-space:normal}}#conversejs.theme-darkbeet{--green:#25DB77;--orange:#E19823;--light-blue:#4E9CFE;--pink:#BD23E1;--beet:#360101;--beet-green:rgb(25, 68, 71);--beet-light-green:#8EB726;--beet-orig:#50162D;--blue:#4E9CFE;--darkest-grey:#232323;--red:#d33b2b;--dark-link-color:#3a3a3a;--occupants-background-color:#333;--form-background:#3b3b3b;--global-background-color:var(--darkest-grey);--redder-orange:var(--beet);--primary-color:var(--beet-orig);--primary-color-dark:var(--beet);--highlight-color-darker:var(--beet-light-green);--highlight-color:var(--beet);--headline-head-color:var(--beet-green);--text-color:#c5c5c5;--text-color-lighten-15-percent:#e9e9e9;--message-text-color:var(--text-color);--text-controlbox-color:#d9d9d9;--message-receipt-color:var(--darkest-grey);--link-color:var(--beet-light-green);--error-color:var(--danger-color-dark);--chat-textarea-color:var(--font-hover-head-color);--chat-textarea-background-color:#2c2c2c;--chat-content-background-color:#2c2c2c;--controlbox-heading-top-margin:0.75em;--inline-action-margin:0.75em;--chat-head-color:var(--beet-green);--chat-head-color-dark:#b9b9ac;--chat-head-color-darker:#e8e8e3;--chat-correcting-color:var(--beet);--chatbox-border-radius:0px;--controlbox-head-color-lighten-45-percent:#0e0e0e;--controlbox-pane-background-color:var(--darkest-grey);--font-head-color:#777;--font-hover-head-color:#c5c5c5;--chatroom-width:100%;--chatroom-correcting-color:var(--beet);--font-size-tiny:10px;--font-size-small:12px;--font-size-occupants:100%;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--chat-separator-border-bottom:2px solid var(--beet);--chatroom-separator-border-bottom:2px solid var(--beet);--message-background-color:#303030;--message-input-border-top:4px solid var(--beet);--message-mention-color:#404040;--message-mention-self-color:#AB3131;--message-separator-background-color:#2E1520;--embedded-emoji-picker-height:200px;--avatar-border-radius:50%;--fullpage-emoji-picker-height:200px;--overlayed-emoji-picker-height:100px;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--list-item-action-color);--list-item-open-color:var(--chat-content-background-color);--list-item-open-hover-color:var(--beet);--list-dot-circle-color:#f6dec1;scrollbar-color:var(--occupants-background-color) var(--darkest-grey);scrollbar-width:thin}#conversejs.theme-darkbeet ::-webkit-scrollbar{width:5px;height:5px;background-color:var(--darkest-grey)}#conversejs.theme-darkbeet ::-webkit-scrollbar-track-piece{background-color:var(--darkest-grey)}#conversejs.theme-darkbeet ::-webkit-scrollbar-thumb:vertical{height:15px;background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .scroller{width:300px;height:100px;overflow-y:scroll;scrollbar-color:var(--occupants-background-color) var(--darkest-grey)}#conversejs.theme-darkbeet #controlbox .bookmarks-toggle,#conversejs.theme-darkbeet #controlbox .bookmarks-toggle .fa{color:var(--chatroom-head-bg-color-dark)!important}#conversejs.theme-darkbeet #controlbox .bookmarks-toggle .fa:hover,#conversejs.theme-darkbeet #controlbox .bookmarks-toggle:hover{color:var(--orange)!important}#conversejs.theme-darkbeet .chatbox .chatroom .sendXMPPMessage{background-color:var(--message-background-color)}#conversejs.theme-darkbeet .chatbox .new-msgs-indicator{position:relative;width:100%;cursor:pointer;padding:.5em;font-size:.9em;text-align:center;z-index:20;white-space:nowrap;margin-bottom:.25em}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea{color:var(--chat-textarea-color);background-color:var(--chat-textarea-background-color);resize:none;margin-top:1px;padding-left:7px}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea:active,#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea:focus{outline-color:unset!important;outline:unset!important}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea.spoiler{height:42px}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .chat-textarea.correcting{background-color:var(--chat-textarea-background-color)}#conversejs.theme-darkbeet .chatroom .sendXMPPMessage{background-color:var(--message-background-color)}#conversejs.theme-darkbeet .chatroom .chat-textarea{color:var(--chat-textarea-color);background-color:var(--chat-textarea-background-color);resize:none;margin-top:1px;padding-left:7px}#conversejs.theme-darkbeet .chatroom .chat-textarea.correcting{background-color:var(--chat-textarea-background-color);margin-bottom:-3px;border-width:2px;border-style:dotted;border-color:var(--red)}#conversejs.theme-darkbeet .chatroom .chat-textarea .chat-textarea:active,#conversejs.theme-darkbeet .chatroom .chat-textarea .chat-textarea:focus{outline-color:red!important}#conversejs.theme-darkbeet .chatroom .box-flyout .chatroom-body .chat-info{color:var(--red)}#conversejs.theme-darkbeet .chatroom .box-flyout .chatroom-body .occupants{border-left:unset}#conversejs.theme-darkbeet .chatroom .box-flyout .chatroom-body .chatroom-form-container{background-color:var(--dark-link-color)}#conversejs.theme-darkbeet .chatroom .box-flyout .chatroom-body .chatroom-form{background-color:var(--dark-link-color)}#conversejs.theme-darkbeet .chatroom .box-flyout .occupants{flex:0 0 0}#conversejs.theme-darkbeet #controlbox .open-rooms-toggle,#conversejs.theme-darkbeet #controlbox .open-rooms-toggle .fa{color:var(--chatroom-head-bg-color-dark)!important}#conversejs.theme-darkbeet #controlbox .open-rooms-toggle .fa:hover,#conversejs.theme-darkbeet #controlbox .open-rooms-toggle:hover{color:var(--orange)!important}#conversejs.theme-darkbeet #controlbox .controlbox-section .controlbox-heading--groupchats{color:var(--orange)}#conversejs.theme-darkbeet #controlbox .controlbox-pane dd{background-color:var(--beet)}#conversejs.theme-darkbeet #controlbox .controlbox-panes{border-right:unset}#conversejs.theme-darkbeet .avatar{border-radius:var(--avatar-border-radius);border:none;background-color:unset}#conversejs.theme-darkbeet .dropdown-menu{color:var(--text-color);background-color:var(--darkest-grey)}#conversejs.theme-darkbeet .dropdown-menu.selected,#conversejs.theme-darkbeet .dropdown-menu:active{color:var(--text-color-lighten-15-percent)!important;background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .dropdown-item{color:var(--text-color)}#conversejs.theme-darkbeet .dropdown-item.selected,#conversejs.theme-darkbeet .dropdown-item:active{color:var(--text-color-lighten-15-percent)!important;background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .dropdown-item:hover{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet ::-webkit-scrollbar-thumb{background:var(--list-item-action-color);border-radius:10px}#conversejs.theme-darkbeet ::-webkit-scrollbar-track{background:var(--beet)}#conversejs.theme-darkbeet .chatbox img.emoji{height:1.2em;width:1.2em;margin:0 .05em 0 .1em;vertical-align:-.1em}#conversejs.theme-darkbeet .chatbox .sendXMPPMessage .toggle-smiley a.toggle-smiley{padding:0}#conversejs.theme-darkbeet .chatbox converse-emoji-dropdown{display:inline-block}#conversejs.theme-darkbeet .chatbox converse-emoji-dropdown .dropdown-menu{padding:0}#conversejs.theme-darkbeet .chatbox converse-emoji-picker{width:100%;padding-top:0;padding-bottom:0;background-color:var(--occupants-background-color);overflow-y:hidden;background:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__lists{height:8em;overflow-y:auto;display:flex;flex-direction:column}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__lists .emoji-category__heading{clear:both;color:var(--subdued-color);cursor:auto;display:block;font-size:var(--font-size);margin:0;padding:.75em 0 0 .5em}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__lists .emoji-lists__container{overflow-x:hidden}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__lists .emoji-picker li{float:left}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-skintone-picker{display:flex;padding:.5em 0;background-color:var(--occupants-background-color);width:auto;font-size:var(--font-size)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-skintone-picker label{margin:0;padding:0 .5em;white-space:nowrap;font-size:var(--font-size-small);color:var(--heading-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-skintone-picker ul{display:flex;flex-direction:row;flex-wrap:wrap}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-skintone-picker ul li{padding:0 .25em}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker{background-color:var(--occupants-background-color);padding:.5em 0 0 .5em}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker:last-child{padding-bottom:.5em}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li{display:inline-block;height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden;margin-left:0;list-style:none;position:relative}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji{padding:0 .2em;height:auto;width:auto;margin:0;display:block;text-align:center}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji.selected a{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji img{margin:0 auto;height:var(--font-size-huge);width:var(--font-size-huge);display:inline-block;vertical-align:baseline}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a{padding:3px;display:inline-block;font-size:var(--font-size-huge);line-height:calc(var(--font-size-huge) * 1.5);height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a:hover{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header{display:flex;flex-direction:column;padding:.1em 0;background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header .emoji-search{width:auto;margin:.25em;height:2em;font-size:var(--font-size-small)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul{display:flex;flex-direction:row;flex-wrap:wrap}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category{padding:.25em 0;font-size:var(--font-size-huge)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{background-color:var(--occupants-background-color);border:1px var(--chat-head-color) solid;border-bottom:none}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.selected a,#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category:hover a{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category a{padding:.25em;display:inline-block}#conversejs.theme-darkbeet .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category img{height:var(--font-size-huge);width:var(--font-size-huge)}#conversejs.theme-darkbeet .chatroom converse-emoji-picker{background-color:var(--occupants-background-color);background:#fff}#conversejs.theme-darkbeet .chatroom converse-emoji-picker .emoji-skintone-picker{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatroom converse-emoji-picker .emoji-picker__header{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .chatroom converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{border:1px var(--chatroom-head-bg-color) solid;border-bottom:none}#conversejs.theme-darkbeet .items-list .list-item:hover{color:var(--text-color);background-color:var(--beet)}#conversejs.theme-darkbeet .items-list .list-item:hover .fa,#conversejs.theme-darkbeet .items-list .list-item:hover .far,#conversejs.theme-darkbeet .items-list .list-item:hover .fas{opacity:1}#conversejs.theme-darkbeet .items-list .list-item.open{border-left:4px solid var(--red);background-color:var(--list-item-open-color)}#conversejs.theme-darkbeet .items-list .list-item.open:hover{color:var(--text-color);background-color:var(--list-item-open-hover-color)!important}#conversejs.theme-darkbeet .items-list .list-item-badge{color:var(--text-color);float:right;text-align:center;width:22px;background-color:var(--red);border-radius:50%;padding:.5em;font-size:var(--font-size-small)}#conversejs.theme-darkbeet .message .mention{font-weight:700;border-width:0;border-radius:.25rem;background-color:var(--message-mention-color);color:var(--text-color-lighten-15-percent);padding:.25em}#conversejs.theme-darkbeet .message .mention--self{background:var(--message-mention-self-color)}#conversejs.theme-darkbeet .message.correcting.groupchat{background-color:unset;border-style:dotted;border-radius:1em;border-color:var(--red);border-width:.2em}#conversejs.theme-darkbeet .message.correcting:not(.groupchat){background-color:unset;border-style:solid;border-radius:1em;border-color:var(--red)}#conversejs.theme-darkbeet .message .chat-msg__heading .chat-msg__author{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--orange);font-family:var(--heading-font);font-size:115%;font-weight:700;padding-bottom:1px}#conversejs.theme-darkbeet .message.chat-msg.chat-msg--followup.chat-msg--with-avatar .chat-msg__content{margin-left:1rem;margin-top:.5rem}#conversejs.theme-darkbeet .chat-msg__content{margin-left:1rem}#conversejs.theme-darkbeet .chat-msg__text{display:inline;color:var(--message-text-color);padding:unset;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;line-height:1em}#conversejs.theme-darkbeet .chat-msg__message{display:inline-flex;flex-direction:column;width:unset;overflow-wrap:break-word}#conversejs.theme-darkbeet .chat-msg__avatar{height:var(--message-avatar-height);width:var(--message-avatar-width);display:block;margin-left:auto;margin-right:auto;background-size:cover}#conversejs.theme-darkbeet .message .mention{font-weight:700}#conversejs.theme-darkbeet .message .mention--self{font-weight:400}#conversejs.theme-darkbeet .message.date-separator{height:2em;margin:0;position:relative;text-align:center;z-index:0}#conversejs.theme-darkbeet .message.date-separator .separator{border-top:0;border-bottom:var(--global-background-color);border-style:solid}#conversejs.theme-darkbeet .message.date-separator .separator-text{background:var(--global-background-color);bottom:1px;color:var(--chatbox-separator-text);display:inline-block;line-height:2em;padding:0 1em;position:relative;z-index:5;border-style:solid;border-radius:2em;border-width:0}#conversejs.theme-darkbeet .message.separator .separator-text{background:var(--beet);color:var(--chatroom-head-color);border-radius:2em}#conversejs.theme-darkbeet .chat-image{border-radius:2em;max-height:25em;transition:.5s;border:0;margin-left:5em;margin-top:2em}#conversejs.theme-darkbeet .chat-image:hover{filter:grayscale(1)}#conversejs.theme-darkbeet .img-thumbnail{background-color:unset}#conversejs.theme-darkbeet .message.chat-msg .chat-msg__media{margin-top:.25rem;word-break:break-all}#conversejs.theme-darkbeet .message.chat-msg .chat-msg__media a{word-wrap:break-word}#conversejs.theme-darkbeet .message.chat-msg .chat-msg__media audio{width:50%;background-color:unset;color:var(--beet)}#conversejs.theme-darkbeet #converse-modals .modal-header{background-color:var(--beet);border-bottom:none}#conversejs.theme-darkbeet #converse-modals .modal-header .close{color:#fff;background-color:var(--red)}#conversejs.theme-darkbeet #converse-modals .modal-body{background-color:var(--chat-content-background-color)}#conversejs.theme-darkbeet #converse-modals .form-control{color:#fff;background-color:var(--darkest-grey);border:1px solid var(--darkest-grey)}#conversejs.theme-darkbeet #converse-modals .modal-content{background-color:var(--darkest-grey)}#conversejs.theme-darkbeet #converse-modals .modal-footer{border-top:none}#conversejs.theme-darkbeet #converse-modals .list-group-item{background-color:var(--darkest-grey)}#conversejs.theme-darkbeet #converse-roster .roster-contacts .current-xmpp-contact .chat-status{vertical-align:middle;font-size:1em;margin-right:0;margin-left:-.8em;margin-bottom:-1.5em;border-radius:50%;border:2px solid var(--occupants-background-color)}#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group .group-toggle,#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group .group-toggle .fa{color:var(--beet-light-green)!important}#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group .group-toggle .fa:hover,#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group .group-toggle:hover{color:var(--beet-green)!important}#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group li .open-chat .msgs-indicator{float:right;color:#fff;text-align:center;width:22px;background-color:var(--red);border-radius:50%;padding:.5em;font-size:var(--font-size-small)}#conversejs.theme-darkbeet #converse-roster .roster-contacts .roster-group li .open-chat:hover{background-color:var(--beet)}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar{background-color:var(--chat-content-background-color);box-sizing:border-box;color:var(--text-color);display:flex;justify-content:space-between;margin:0;width:100%}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fa,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fa:hover,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .far,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .far:hover,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fas,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fas:hover{color:var(--font-head-color);font-size:var(--font-size-huge)}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fa svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fa:hover svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .far svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .far:hover svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fas svg,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .fas:hover svg{fill:var(--text-color)}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .unencrypted,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .unencrypted a{color:var(--text-color)}#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .unencrypted .toolbar-menu a,#conversejs.theme-darkbeet .chat-toolbar converse-chat-toolbar .unencrypted a .toolbar-menu a{color:var(--link-color)}#conversejs.theme-darkbeet .chat-toolbar .toolbar-buttons{width:100%;display:inline-block}#conversejs.theme-darkbeet .chat-toolbar .toolbar-buttons .message-limit{padding:.5em;font-weight:700}#conversejs.theme-darkbeet .chat-toolbar button{margin:.2em;padding-bottom:.25em;border:1px transparent solid;background-color:transparent}#conversejs.theme-darkbeet .chat-toolbar button:disabled .fa{color:gray}#conversejs.theme-darkbeet .chat-toolbar button:disabled .fa:hover{color:gray}#conversejs.theme-darkbeet .chat-toolbar button:disabled .fa svg,#conversejs.theme-darkbeet .chat-toolbar button:disabled .fa svg:hover{fill:gray}#conversejs.theme-darkbeet .chat-toolbar button.send-button{padding-top:.2em;padding-bottom:.2em;margin:0;margin-top:-1px}#conversejs.theme-darkbeet .chat-toolbar .unverified,#conversejs.theme-darkbeet .chat-toolbar .unverified a{color:#cf5300}#conversejs.theme-darkbeet .chat-toolbar .private,#conversejs.theme-darkbeet .chat-toolbar .private a{color:#4b7003}#conversejs.theme-darkbeet .chat-toolbar li{cursor:pointer;display:inline-block;list-style:none;padding:0 .5em}#conversejs.theme-darkbeet .chat-toolbar li:hover{cursor:pointer}#conversejs.theme-darkbeet .chat-toolbar li .toolbar-menu{background-color:var(--chat-content-background-color);bottom:1.7rem;box-shadow:-1px -1px 2px 0 rgba(0,0,0,.4);height:auto;margin-bottom:0;min-width:21rem;position:absolute;right:0;top:auto;z-index:1000}#conversejs.theme-darkbeet .chat-toolbar li .toolbar-menu.otr-menu{left:-6em;min-width:15rem}#conversejs.theme-darkbeet .chat-toolbar li .toolbar-menu.otr-menu.show{display:flex;flex-direction:column}#conversejs.theme-darkbeet .chat-toolbar li .toolbar-menu a{color:var(--link-color)}#conversejs.theme-darkbeet .chat-toolbar li.toggle-otr ul{z-index:99}#conversejs.theme-darkbeet .chat-toolbar li.toggle-otr ul li{display:block;padding:7px}#conversejs.theme-darkbeet .chat-toolbar li.toggle-otr ul li:hover{background-color:var(--highlight-color)}#conversejs.theme-darkbeet .chat-toolbar li.toggle-otr ul li a{display:block}#conversejs.theme-darkbeet .chatbox .new-msgs-indicator{color:var(--chatroom-head-color)}#conversejs.theme-darkbeet .chatbox converse-chat-toolbar{border-top:var(chatbox-message-input-border-top);color:var(--text-color);background-color:var(--chat-content-background-color)}#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .fa,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .fa:hover,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .far,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .far:hover,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .fas,#conversejs.theme-darkbeet .chatbox converse-chat-toolbar .fas:hover{color:var(--dark-link-color)}#conversejs.theme-darkbeet .chatbox converse-chat-toolbar button:focus{outline-color:unset!important;color:var(--red)}#conversejs.theme-darkbeet .chatroom converse-chat-toolbar{border-top:var(--chatroom-message-input-border-top);color:var(--text-color)}#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fa,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fa:hover,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .far,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .far:hover,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fas,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fas:hover{color:var(--dark-link-color);font-size:var(--font-size-huge)}#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fa svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fa:hover svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .far svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .far:hover svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fas svg,#conversejs.theme-darkbeet .chatroom converse-chat-toolbar .fas:hover svg{fill:var(--text-color)}#conversejs.theme-darkbeet .chatroom converse-chat-toolbar button:focus{outline-color:unset!important}#conversejs.theme-darkbeet .suggestion-box{background-color:var(--occupants-background-color)}#conversejs.theme-darkbeet .suggestion-box .suggestion-box__results,#conversejs.theme-darkbeet .suggestion-box>ul{position:absolute;left:0;right:0;z-index:2;min-width:100%;box-sizing:border-box;list-style:none;padding:0;border-radius:.3em;margin:.2em 0 0;background:rgba(37,36,36,.9);border:1px solid rgba(0,0,0,.3);box-shadow:.05em .2em .6em rgba(0,0,0,.1);text-shadow:none}#conversejs.theme-darkbeet .suggestion-box .suggestion-box__results:before,#conversejs.theme-darkbeet .suggestion-box>ul:before{content:"";position:absolute;top:-.43em;left:1em;width:0;height:0;padding:.4em;background:var(--red);border:inherit;border-right:0;border-bottom:0;transform:rotate(45deg);z-index:-1}#conversejs.theme-darkbeet .suggestion-box .suggestion-box__results>li,#conversejs.theme-darkbeet .suggestion-box>ul>li{text-overflow:ellipsis;overflow-x:hidden;position:relative;cursor:pointer;padding:1em} .conversejs #controlbox .bookmarks-toggle,.conversejs #controlbox .bookmarks-toggle .fa{color:var(--groupchats-header-color)!important}.conversejs #controlbox .bookmarks-toggle .fa:hover,.conversejs #controlbox .bookmarks-toggle:hover{color:var(--chatroom-head-bg-color-dark)!important}.conversejs.fullscreen #controlbox #chatrooms .bookmarks-list dl.rooms-list.bookmarks dd.available-chatroom a.open-room{width:80%} .conversejs converse-chats.converse-chatboxes{z-index:1031;position:fixed;bottom:0;right:0}.conversejs converse-chats.converse-overlayed{height:3em}.conversejs converse-chats.converse-overlayed>.row{flex-direction:row-reverse}.conversejs converse-chats.converse-fullscreen,.conversejs converse-chats.converse-mobile{flex-wrap:nowrap;width:100vw}.conversejs converse-chats.converse-embedded{box-sizing:border-box;bottom:auto;height:100%;position:relative;right:auto;width:100%}.conversejs converse-chats.converse-embedded *,.conversejs converse-chats.converse-embedded :after,.conversejs converse-chats.converse-embedded :before{box-sizing:border-box}.conversejs converse-chats.converse-embedded.converse-chatboxes{z-index:1031;position:inherit;flex-wrap:nowrap;bottom:auto;height:100%;width:100%;margin-left:-15px} .conversejs .modal-open{overflow:hidden}.conversejs .modal-open .modal{overflow-x:hidden;overflow-y:auto}.conversejs .modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.conversejs .modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .conversejs .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media(prefers-reduced-motion:reduce){.modal.fade .conversejs .modal-dialog{transition:none}}.modal.show .conversejs .modal-dialog{transform:none}.modal.modal-static .conversejs .modal-dialog{transform:scale(1.02)}.conversejs .modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.conversejs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.conversejs .modal-dialog-scrollable .modal-footer,.conversejs .modal-dialog-scrollable .modal-header{flex-shrink:0}.conversejs .modal-dialog-scrollable .modal-body{overflow-y:auto}.conversejs .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.conversejs .modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.conversejs .modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.conversejs .modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.conversejs .modal-dialog-centered.modal-dialog-scrollable::before{content:none}.conversejs .modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.conversejs .modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.conversejs .modal-backdrop.fade{opacity:0}.conversejs .modal-backdrop.show{opacity:.5}.conversejs .modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.conversejs .modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.conversejs .modal-title{margin-bottom:0;line-height:1.5}.conversejs .modal-body{position:relative;flex:1 1 auto;padding:1rem}.conversejs .modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.conversejs .modal-footer>*{margin:.25rem}.conversejs .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:576px){.conversejs .modal-dialog{max-width:500px;margin:1.75rem auto}.conversejs .modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.conversejs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.conversejs .modal-dialog-centered{min-height:calc(100% - 3.5rem)}.conversejs .modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.conversejs .modal-sm{max-width:300px}}@media(min-width:992px){.conversejs .modal-lg,.conversejs .modal-xl{max-width:800px}}@media(min-width:1200px){.conversejs .modal-xl{max-width:1140px}}.conversejs #converse-modals .modal{background-color:rgba(0,0,0,.4)}.conversejs #converse-modals .modal .modal-body{overflow-y:auto;max-height:75vh;margin-bottom:2em}.conversejs #converse-modals .modal .modal-body p{padding:.25rem 0}.conversejs #converse-modals .modal .modal-body .confirm .form-group p:first-child{font-size:110%;font-weight:700}.conversejs #converse-modals .modal .modal-body.fit-content{box-sizing:content-box}.conversejs #converse-modals .modal .modal-body.fit-content img{max-width:90vw}.conversejs #converse-modals .modal .modal-body--image .chat-image{max-height:99%;max-width:100%}.conversejs #converse-modals .modal .modal-footer{justify-content:flex-start}.conversejs #converse-modals .modal .roomid-policy-error{color:var(--error-color);font-size:var(--font-size-small);float:right}.conversejs #converse-modals .scrollable-container{max-height:45vh;overflow-y:auto}.conversejs #converse-modals .affiliation-form,.conversejs #converse-modals .role-form{padding:2em 0 1em 0}.conversejs #converse-modals .set-xmpp-status{margin:1em}.conversejs #converse-modals .set-xmpp-status .custom-control-label{padding-top:.25em}.conversejs #converse-modals #omemo-tabpanel{margin-top:1em}.conversejs #converse-modals .btn{font-weight:400}.conversejs #converse-modals #user-profile-modal .profile-form label{font-weight:700}.conversejs #converse-modals #user-profile-modal .fingerprint-removal label{display:flex;padding:.75rem 1.25rem}.conversejs #converse-modals #user-profile-modal .list-group-item{display:flex;justify-content:left;font-size:95%}.conversejs #converse-modals #user-profile-modal .list-group-item input[type=checkbox]{margin-right:1em}.conversejs #converse-modals .fingerprints{width:100%;margin-bottom:1em}.conversejs #converse-modals .fingerprint-trust{display:flex;justify-content:space-between;font-size:95%}.conversejs #converse-modals .fingerprint-trust .fingerprint{margin-left:1em} -.conversejs .card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.conversejs .card>hr{margin-right:0;margin-left:0}.conversejs .card>.list-group{border-top:inherit;border-bottom:inherit}.conversejs .card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.conversejs .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.conversejs .card>.card-header+.list-group,.conversejs .card>.list-group+.card-footer{border-top:0}.conversejs .card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.conversejs .card-title{margin-bottom:.75rem}.conversejs .card-subtitle{margin-top:-.375rem;margin-bottom:0}.conversejs .card-text:last-child{margin-bottom:0}.conversejs .card-link:hover{text-decoration:none}.conversejs .card-link+.card-link{margin-left:1.25rem}.conversejs .card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.conversejs .card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.conversejs .card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.conversejs .card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.conversejs .card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.conversejs .card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.conversejs .card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.conversejs .card-img,.conversejs .card-img-bottom,.conversejs .card-img-top{flex-shrink:0;width:100%}.conversejs .card-img,.conversejs .card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.conversejs .card-img,.conversejs .card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.conversejs .card-deck .card{margin-bottom:15px}@media(min-width:576px){.conversejs .card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.conversejs .card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.conversejs .card-group>.card{margin-bottom:15px}@media(min-width:576px){.conversejs .card-group{display:flex;flex-flow:row wrap}.conversejs .card-group>.card{flex:1 0 0%;margin-bottom:0}.conversejs .card-group>.card+.card{margin-left:0;border-left:0}.conversejs .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .card-group>.card:not(:last-child) .card-header,.conversejs .card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.conversejs .card-group>.card:not(:last-child) .card-footer,.conversejs .card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.conversejs .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .card-group>.card:not(:first-child) .card-header,.conversejs .card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.conversejs .card-group>.card:not(:first-child) .card-footer,.conversejs .card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.conversejs .card-columns .card{margin-bottom:.75rem}@media(min-width:576px){.conversejs .card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.conversejs .card-columns .card{display:inline-block;width:100%}}.conversejs .accordion{overflow-anchor:none}.conversejs .accordion>.card{overflow:hidden}.conversejs .accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.conversejs .accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.conversejs .accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.conversejs .message .card--unfurl{margin:1em 0}@media(max-width:767.98px){.conversejs .message .card--unfurl{max-width:95%}}@media(min-width:768px){.conversejs .message .card--unfurl{max-width:75%}}@media(min-width:992px){.conversejs .message .card--unfurl{max-width:66%}}@media(min-width:1200px){.conversejs .message .card--unfurl{max-width:50%}} +converse-chat-message-body audio{display:block}@media(max-width:767.98px){converse-chat-message-body audio{max-width:95%}}@media(min-width:768px){converse-chat-message-body audio{max-width:70%}}@media(min-width:992px){converse-chat-message-body audio{max-width:50%}}@media(min-width:1200px){converse-chat-message-body audio{max-width:40%}}converse-chat-message-body video{display:block;max-height:25em}@media(max-width:767.98px){converse-chat-message-body video{max-width:95%}}@media(min-width:768px){converse-chat-message-body video{max-width:70%}}@media(min-width:992px){converse-chat-message-body video{max-width:50%}}@media(min-width:1200px){converse-chat-message-body video{max-width:40%}}.converse-overlayed converse-chat-message-body audio{display:block;max-width:100%}.converse-overlayed converse-chat-message-body video{display:block;max-width:100%} +.conversejs .card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.conversejs .card>hr{margin-right:0;margin-left:0}.conversejs .card>.list-group{border-top:inherit;border-bottom:inherit}.conversejs .card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.conversejs .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.conversejs .card>.card-header+.list-group,.conversejs .card>.list-group+.card-footer{border-top:0}.conversejs .card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.conversejs .card-title{margin-bottom:.75rem}.conversejs .card-subtitle{margin-top:-.375rem;margin-bottom:0}.conversejs .card-text:last-child{margin-bottom:0}.conversejs .card-link:hover{text-decoration:none}.conversejs .card-link+.card-link{margin-left:1.25rem}.conversejs .card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.conversejs .card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.conversejs .card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.conversejs .card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.conversejs .card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.conversejs .card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.conversejs .card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.conversejs .card-img,.conversejs .card-img-bottom,.conversejs .card-img-top{flex-shrink:0;width:100%}.conversejs .card-img,.conversejs .card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.conversejs .card-img,.conversejs .card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.conversejs .card-deck .card{margin-bottom:15px}@media(min-width:576px){.conversejs .card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.conversejs .card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.conversejs .card-group>.card{margin-bottom:15px}@media(min-width:576px){.conversejs .card-group{display:flex;flex-flow:row wrap}.conversejs .card-group>.card{flex:1 0 0%;margin-bottom:0}.conversejs .card-group>.card+.card{margin-left:0;border-left:0}.conversejs .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .card-group>.card:not(:last-child) .card-header,.conversejs .card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.conversejs .card-group>.card:not(:last-child) .card-footer,.conversejs .card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.conversejs .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .card-group>.card:not(:first-child) .card-header,.conversejs .card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.conversejs .card-group>.card:not(:first-child) .card-footer,.conversejs .card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.conversejs .card-columns .card{margin-bottom:.75rem}@media(min-width:576px){.conversejs .card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.conversejs .card-columns .card{display:inline-block;width:100%}}.conversejs .accordion{overflow-anchor:none}.conversejs .accordion>.card{overflow:hidden}.conversejs .accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.conversejs .accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.conversejs .accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{margin:1em 0}@media(max-width:767.98px){.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{max-width:95%}}@media(min-width:768px){.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{max-width:75%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{max-width:66%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{max-width:50%}}.conversejs converse-chats.converse-mobile .message .card--unfurl,.conversejs converse-chats.converse-overlayed .message .card--unfurl{margin:1em 0;max-width:95%} converse-chat-content{display:flex;flex-direction:column-reverse;height:100%;justify-content:space-between;overflow:auto} .conversejs .media{display:flex;align-items:flex-start}.conversejs .media-body{flex:1}.conversejs .chatbox img.emoji{height:1.2em;width:1.2em;margin:0 .05em 0 .1em;vertical-align:-.1em}.conversejs .chatbox .sendXMPPMessage .toggle-smiley a.toggle-smiley{padding:0}.conversejs .chatbox converse-emoji-dropdown{display:inline-block}.conversejs .chatbox converse-emoji-dropdown .dropdown-menu{padding:0}.conversejs .chatbox converse-emoji-picker{width:100%;padding-top:0;padding-bottom:0;background-color:var(--chat-head-color);overflow-y:hidden;background:#fff}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists{height:8em;overflow-y:auto;display:flex;flex-direction:column}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-category__heading{clear:both;color:var(--subdued-color);cursor:auto;display:block;font-size:var(--font-size);margin:0;padding:.75em 0 0 .5em}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-lists__container{overflow-x:hidden}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-picker li{float:left}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker{display:flex;padding:.5em 0;background-color:var(--chat-head-color);width:100%;font-size:var(--font-size)}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker label{margin:0;padding:0 .5em;white-space:nowrap;font-size:var(--font-size-small);color:var(--heading-color)}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker ul{display:flex;flex-direction:row;flex-wrap:wrap}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker ul li{padding:0 .25em}.conversejs .chatbox converse-emoji-picker .emoji-picker{background-color:#fff;padding:.5em 0 0 .5em}.conversejs .chatbox converse-emoji-picker .emoji-picker:last-child{padding-bottom:.5em}.conversejs .chatbox converse-emoji-picker .emoji-picker li{display:inline-block;height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden;margin-left:0;list-style:none;position:relative}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji{padding:0 .2em;height:auto;width:auto;margin:0;display:block;text-align:center}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji.selected a{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji img{margin:0 auto;height:var(--font-size-huge);width:var(--font-size-huge);display:inline-block;vertical-align:baseline}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a{padding:3px;display:inline-block;font-size:var(--font-size-huge);line-height:calc(var(--font-size-huge) * 1.5);height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a:hover{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header{width:100%;display:flex;flex-direction:column;padding:.1em 0;background-color:var(--chat-head-color)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header .emoji-search{width:auto;margin:.25em;height:2em;font-size:var(--font-size-small)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul{display:flex;flex-direction:row;flex-wrap:wrap}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category{padding:.25em 0;font-size:var(--font-size-huge)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{background-color:#fff;border:1px var(--chat-head-color) solid;border-bottom:none}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.selected a,.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category:hover a{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category a{padding:.25em;display:inline-block}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category img{height:var(--font-size-huge);width:var(--font-size-huge)}.conversejs .chatroom converse-emoji-picker{background-color:var(--chatroom-head-bg-color);background:#fff}.conversejs .chatroom converse-emoji-picker .emoji-skintone-picker{background-color:var(--chatroom-head-bg-color)}.conversejs .chatroom converse-emoji-picker .emoji-picker__header{background-color:var(--chatroom-head-bg-color)}.conversejs .chatroom converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{border:1px var(--chatroom-head-bg-color) solid;border-bottom:none}.conversejs converse-chats.converse-overlayed converse-emoji-dropdown .dropdown-menu{min-width:18em}.conversejs converse-chats.converse-overlayed .chatbox .emoji-picker__header .emoji-category img{height:var(--font-size)!important;width:var(--font-size)!important}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker .insert-emoji a{font-size:var(--font-size);line-height:calc(var(--font-size) * 1.5);padding:0;height:calc(var(--font-size) * 1.5);width:calc(var(--font-size) * 1.5)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker .insert-emoji img{height:var(--font-size);width:var(--font-size)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-skintone-picker{font-size:var(--font-size-small)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker__header .emoji-category{font-size:var(--font-size-small)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker__lists{height:7em}.conversejs converse-chats.converse-embedded converse-emoji-dropdown .dropdown-menu{min-width:20em}.conversejs converse-chats.converse-fullscreen converse-emoji-dropdown .dropdown-menu{min-width:22em}.conversejs converse-chats.converse-fullscreen .chatbox converse-emoji-picker .emoji-picker__lists{height:12em}.conversejs .chatbox converse-emoji-picker{max-width:40em} .conversejs .send-button{border-radius:0;bottom:var(--send-button-bottom);color:var(--inverse-link-color)}.conversejs .chatbox .send-button{background-color:var(--chat-head-color)}.conversejs .chatroom .send-button{background-color:var(--muc-toolbar-btn-color)}.conversejs .chat-toolbar .toolbar-buttons{width:100%}.conversejs .chat-toolbar .toolbar-buttons .message-limit{padding:.5em;font-weight:700}.conversejs .chat-toolbar .toolbar-buttons *{float:left}.conversejs .chat-toolbar .toolbar-buttons .right{float:right}.conversejs .chat-toolbar .unverified,.conversejs .chat-toolbar .unverified a{color:#cf5300}.conversejs .chat-toolbar .private,.conversejs .chat-toolbar .private a{color:#4b7003}.conversejs .chat-toolbar li{cursor:pointer;display:inline-block;list-style:none;padding:0 .5em}.conversejs .chat-toolbar li:hover{cursor:pointer}.conversejs .chat-toolbar li .toolbar-menu{background-color:#fff;bottom:1.7rem;box-shadow:-1px -1px 2px 0 rgba(0,0,0,.4);height:auto;margin-bottom:0;min-width:21rem;position:absolute;right:0;top:auto;z-index:1000}.conversejs .chat-toolbar li .toolbar-menu.otr-menu{left:-6em;min-width:15rem}.conversejs .chat-toolbar li .toolbar-menu.otr-menu.show{display:flex;flex-direction:column}.conversejs .chat-toolbar li .toolbar-menu a{color:var(--link-color)}.conversejs .chat-toolbar li.toggle-otr ul{z-index:99}.conversejs .chat-toolbar li.toggle-otr ul li{display:block;padding:7px}.conversejs .chat-toolbar li.toggle-otr ul li:hover{background-color:var(--highlight-color)}.conversejs .chat-toolbar li.toggle-otr ul li a{display:block}.conversejs converse-chat-toolbar{background-color:#fff;box-sizing:border-box;display:flex;justify-content:space-between;margin:0;width:100%}.conversejs converse-chat-toolbar .fa,.conversejs converse-chat-toolbar .fa:hover,.conversejs converse-chat-toolbar .far,.conversejs converse-chat-toolbar .far:hover,.conversejs converse-chat-toolbar .fas,.conversejs converse-chat-toolbar .fas:hover{color:var(--chat-head-color);font-size:var(--font-size-large)}.conversejs converse-chat-toolbar .fa svg,.conversejs converse-chat-toolbar .fa:hover svg,.conversejs converse-chat-toolbar .far svg,.conversejs converse-chat-toolbar .far:hover svg,.conversejs converse-chat-toolbar .fas svg,.conversejs converse-chat-toolbar .fas:hover svg{fill:var(--chat-head-color)}.conversejs converse-chat-toolbar .unencrypted,.conversejs converse-chat-toolbar .unencrypted a{color:var(--text-color)}.conversejs converse-chat-toolbar .unencrypted .toolbar-menu a,.conversejs converse-chat-toolbar .unencrypted a .toolbar-menu a{color:var(--link-color)}.conversejs converse-chat-toolbar button{margin-top:.4em;border:1px transparent solid;background-color:transparent}.conversejs converse-chat-toolbar button.send-button{padding-top:.2em;padding-bottom:.2em;margin:0;margin-top:-1px}.conversejs .chatbox converse-chat-toolbar{border-top:var(--chatbox-message-input-border-top);color:var(--chat-toolbar-btn-color);background-color:#fff}.conversejs .chatbox converse-chat-toolbar .fa,.conversejs .chatbox converse-chat-toolbar .fa:hover,.conversejs .chatbox converse-chat-toolbar .far,.conversejs .chatbox converse-chat-toolbar .far:hover,.conversejs .chatbox converse-chat-toolbar .fas,.conversejs .chatbox converse-chat-toolbar .fas:hover{color:var(--chat-toolbar-btn-color)}.conversejs .chatbox converse-chat-toolbar button:focus{outline-color:var(--chat-toolbar-btn-color)!important}.conversejs .chatbox converse-chat-toolbar button:disabled .fa{color:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatbox converse-chat-toolbar button:disabled .fa:hover{color:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatbox converse-chat-toolbar button:disabled .fa svg,.conversejs .chatbox converse-chat-toolbar button:disabled .fa svg:hover{fill:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar{border-top:var(--chatroom-message-input-border-top);color:var(--muc-toolbar-btn-color)}.conversejs .chatroom converse-chat-toolbar .fa,.conversejs .chatroom converse-chat-toolbar .fa:hover,.conversejs .chatroom converse-chat-toolbar .far,.conversejs .chatroom converse-chat-toolbar .far:hover,.conversejs .chatroom converse-chat-toolbar .fas,.conversejs .chatroom converse-chat-toolbar .fas:hover{color:var(--muc-toolbar-btn-color);font-size:var(--font-size-large)}.conversejs .chatroom converse-chat-toolbar .fa svg,.conversejs .chatroom converse-chat-toolbar .fa:hover svg,.conversejs .chatroom converse-chat-toolbar .far svg,.conversejs .chatroom converse-chat-toolbar .far:hover svg,.conversejs .chatroom converse-chat-toolbar .fas svg,.conversejs .chatroom converse-chat-toolbar .fas:hover svg{fill:var(--muc-toolbar-btn-color)}.conversejs .chatroom converse-chat-toolbar button:focus{outline-color:var(--muc-toolbar-btn-color)!important}.conversejs .chatroom converse-chat-toolbar button:disabled .fa{color:var(--muc-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar button:disabled .fa:hover{color:var(--muc-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar button:disabled .fa svg,.conversejs .chatroom converse-chat-toolbar button:disabled .fa svg:hover{fill:var(--muc-toolbar-btn-disabled-color)}.conversejs converse-chats.converse-overlayed .chat-toolbar li .toolbar-menu{min-width:235px}.conversejs converse-chats.converse-overlayed .chatroom .chat-toolbar li .toolbar-menu{min-width:280px} .conversejs .chatbox .chat-head{display:flex;flex-direction:row;color:#fff;font-size:100%;margin:0;padding:0;position:relative}.conversejs .chatbox .chat-head.chat-head-chatbox{background-color:var(--chat-head-color)}.conversejs .chatbox .chat-head .avatar{margin-right:.5em}.conversejs .chatbox .chat-head .show-msg-author-modal{color:#fff!important}.conversejs .chatbox .chat-head .chat-head__desc{color:var(--chat-head-color-lighten-50-percent);font-size:var(--font-size-small);margin:0;overflow:hidden;padding:.5rem 1rem .5rem 1rem;text-overflow:ellipsis;width:100%;max-height:5em}.conversejs .chatbox .chat-head .chatbox-title{padding:.75rem 1rem 0 1rem;display:flex;flex-direction:row;justify-content:space-between;width:100%}.conversejs .chatbox .chat-head .chatbox-title--no-desc{padding:.75rem 1rem}.conversejs .chatbox .chat-head .chatbox-title--row{display:flex;flex-direction:row;overflow:hidden}.conversejs .chatbox .chat-head .chatbox-title__text{overflow:hidden;text-overflow:ellipsis}.conversejs .chatbox .chat-head .chatbox-title__buttons{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;padding:0}.conversejs .chatbox .chat-head a.chatbox-btn.fa,.conversejs .chatbox .chat-head a.chatbox-btn.far,.conversejs .chatbox .chat-head a.chatbox-btn.fas,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fa,.conversejs .chatbox .chat-head a:hover.chatbox-btn.far,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fas,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fa,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.far,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fas,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fa,.conversejs .chatbox .chat-head a:visited.chatbox-btn.far,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fas{color:#fff}.conversejs .chatbox .chat-head a.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a.chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fas.button-on:before{padding:.2em;background-color:var(--chat-head-text-color);color:var(--chat-head-color)}.conversejs .chatbox .chat-head .chatbox-btn{color:#fff}.conversejs .chatbox .chat-head .chatbox-btn.fa,.conversejs .chatbox .chat-head .chatbox-btn.far,.conversejs .chatbox .chat-head .chatbox-btn.fas{color:#fff}.conversejs .chatbox .chat-head .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .chat-head .chatbox-btn.button-on:before{border-radius:5%;background-color:var(--chat-head-text-color);color:var(--chat-head-color)} .conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .chatbox .bottom-panel .chat-content-sendbutton{height:calc(100% - (var(--chat-textarea-height) + var(--send-button-height) + 2 * var(--send-button-margin)))}.conversejs .chatbox .bottom-panel .sendXMPPMessage{-moz-background-clip:padding;-webkit-background-clip:padding-box;border-bottom-radius:var(--chatbox-border-radius);background-clip:padding-box;background-color:#fff;border:0;margin:0;padding:0}@media screen and (max-height:450px){.conversejs .chatbox .bottom-panel .sendXMPPMessage{width:100%}}@media screen and (max-width:480px){.conversejs .chatbox .bottom-panel .sendXMPPMessage{width:100%}}.conversejs .chatbox .bottom-panel .sendXMPPMessage .suggestion-box__results:after{display:none}.conversejs .chatbox .bottom-panel .sendXMPPMessage .spoiler-hint{width:100%}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea:active,.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea:focus,.conversejs .chatbox .bottom-panel .sendXMPPMessage input:active,.conversejs .chatbox .bottom-panel .sendXMPPMessage input:focus{outline-color:var(--chat-head-color)}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea.correcting,.conversejs .chatbox .bottom-panel .sendXMPPMessage input.correcting{background-color:var(--chat-correcting-color)}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea{color:var(--chat-textarea-color);background-color:var(--chat-textarea-background-color);border-top-left-radius:0;border-top-right-radius:0;border-bottom-radius:var(--chatbox-border-radius);padding-left:.5em;padding-right:4.5em;padding-top:.5em;padding-bottom:.5em;width:100%;border:none;min-height:var(--chat-textarea-height);margin-bottom:-4px;resize:none}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea.spoiler{height:42px} -.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.media{display:flex;align-items:flex-start}.media-body{flex:1}.conversejs .chatbox{text-align:left;margin:0 var(--chat-gutter)}@media screen and (max-height:450px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}.conversejs .chatbox converse-controlbox-navback{display:none}.conversejs .chatbox .flyout{position:absolute}@media screen and (max-height:450px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-height:450px){.conversejs .chatbox .flyout{bottom:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{bottom:0}}.conversejs .chatbox .chatbox-btn{border-radius:25%;border:none;cursor:pointer;font-size:var(--chatbox-button-size);margin:0 .2em;padding:0 0 0 .5em;text-decoration:none}.conversejs .chatbox .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .box-flyout{display:flex;flex-direction:column;justify-content:space-between;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);z-index:2;overflow:hidden;width:100%}@media screen and (max-height:450px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatbox .chat-title{display:var(--heading-display);font-family:var(--heading-font);color:var(--heading-color);display:block;line-height:var(--line-height-large);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs .chatbox .chat-title.groupchat{padding-right:var(--chatroom-head-title-padding-right)}.conversejs .chatbox .chat-title a{color:var(--chat-head-text-color);width:100%}.conversejs .chatbox .chat-body{display:flex;flex-direction:column;justify-content:space-between;background-color:var(--chat-textarea-background-color);border-bottom-left-radius:var(--chatbox-border-radius);border-bottom-right-radius:var(--chatbox-border-radius);border-top:0}@media screen and (max-height:450px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}.conversejs .chatbox .chat-body p{color:var(--text-color);font-size:var(--message-font-size);margin:0;padding:5px}.conversejs .chatbox .new-msgs-indicator{position:relative;width:100%;cursor:pointer;background-color:var(--chat-head-color);color:var(--light-background-color);padding:.5em;font-size:.9em;text-align:center;z-index:20;white-space:nowrap;margin-bottom:.25em}.conversejs .chatbox .chat-content{background-color:var(--chat-content-background-color);border:0;color:var(--text-color);font-size:var(--message-font-size);height:100%;line-height:1.3em;overflow:hidden;padding:0;display:flex;flex-direction:column;justify-content:space-between}.conversejs .chatbox .chat-content converse-chat-message .spinner{width:100%;overflow-y:hidden}.conversejs .chatbox .chat-content .chat-content__help{max-height:100%}.conversejs .chatbox .chat-content .chat-content__help converse-chat-help{border-top:1px solid var(--chat-head-color);display:block;height:100%;overflow-y:auto;padding:.5em 0}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help{float:right;padding-right:1em;cursor:pointer;color:var(--chat-content-background-color)}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help svg{fill:var(--chat-head-color)}.conversejs .chatbox .chat-content .chat-content__messages{overflow-x:hidden;overflow-y:auto;height:100%}.conversejs .chatbox .chat-content .chat-content__notifications{height:1.7em;white-space:pre;background-color:var(--chat-content-background-color);color:var(--subdued-color);font-size:90%;font-style:italic;line-height:var(--line-height-small);padding:0 1em .3em}.conversejs .chatbox .chat-content .chat-content__notifications:before{content:" "}.conversejs .chatbox .chat-content video{width:100%}.conversejs .chatbox .chat-content progress{margin:.5em 0;width:100%}.conversejs .chatbox .dropdown{background-color:var(--light-background-color)}.conversejs .chatbox .dropdown dd{margin:0;padding:0;position:relative}.conversejs .chatbox .dragresize{background:0 0;border:0;margin:0;position:absolute;top:0;z-index:20}.conversejs .chatbox .dragresize-top{cursor:n-resize;height:5px;width:100%}.conversejs .chatbox .dragresize-left,.conversejs .chatbox .dragresize-occupants-left{cursor:w-resize;width:5px;height:100%;left:0}.conversejs .chatbox .dragresize-topleft{cursor:nw-resize;width:15px;height:15px;top:0;left:0}.conversejs converse-chats.converse-embedded .controlbox-head,.conversejs converse-chats.converse-overlayed .controlbox-head{padding:.5em}.conversejs converse-chats.converse-embedded .chat-head,.conversejs converse-chats.converse-overlayed .chat-head{border-top-left-radius:0;border-top-right-radius:0}.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-overlayed .chatbox{min-width:var(--overlayed-chat-width)!important;width:var(--overlayed-chat-width)}.conversejs converse-chats.converse-embedded .chatbox .box-flyout,.conversejs converse-chats.converse-overlayed .chatbox .box-flyout{min-width:var(--overlayed-chat-width)!important;width:var(--overlayed-chat-width)}.conversejs converse-chats.converse-overlayed .box-flyout,.conversejs converse-chats.converse-overlayed .chat-head{border-top-left-radius:var(--chatbox-border-radius);border-top-right-radius:var(--chatbox-border-radius)}@media screen and (max-height:450px){.conversejs converse-chats.converse-overlayed .box-flyout,.conversejs converse-chats.converse-overlayed .chat-head{border-top-left-radius:0;border-top-right-radius:0}}@media screen and (max-width:480px){.conversejs converse-chats.converse-overlayed .box-flyout,.conversejs converse-chats.converse-overlayed .chat-head{border-top-left-radius:0;border-top-right-radius:0}}.conversejs converse-chats.converse-overlayed .flyout{bottom:var(--overlayed-chatbox-hover-height)}.conversejs converse-chats.converse-overlayed .box-flyout{height:var(--overlayed-chat-height);min-height:calc(var(--overlayed-chat-height)/ 2)}.conversejs converse-chats.converse-overlayed .chat-head{min-height:var(--overlayed-chat-head-height)}.conversejs converse-chats.converse-overlayed .minimized-chats-flyout .chat-head{cursor:default}.conversejs converse-chats.converse-overlayed .chat-textarea{max-height:var(--overlayed-max-chat-textarea-height)}.conversejs converse-chats.converse-overlayed .chatbox .chat-body{height:calc(100% - var(--overlayed-chat-head-height))}.conversejs converse-chats.converse-overlayed .chatbox .chatbox-title{padding:.5rem .75rem 0 .75rem}.conversejs converse-chats.converse-overlayed .chatbox .chatbox-title--no-desc{padding:.5rem .75rem}.conversejs converse-chats.converse-overlayed .chatbox converse-dropdown .btn--standalone{padding:0 .2em;margin:0 0 0 .5em}@media(max-width:767.98px){.conversejs.converse-overlayed>.row{flex-direction:column}.conversejs.converse-overlayed>.row.no-gutters{margin:-1em}}.conversejs converse-chats.converse-embedded .flyout,.conversejs converse-chats.converse-fullscreen .flyout{border-radius:0;border:none;bottom:0}.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-fullscreen .chatbox{margin:0;margin-left:15px}.conversejs converse-chats.converse-embedded .chatbox .box-flyout,.conversejs converse-chats.converse-fullscreen .chatbox .box-flyout{box-shadow:none;overflow:hidden}@media(min-width:768px){.conversejs converse-chats.converse-embedded .chatbox:not(#controlbox) .box-flyout,.conversejs converse-chats.converse-fullscreen .chatbox:not(#controlbox) .box-flyout{max-width:66.666667%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded .chatbox:not(#controlbox) .box-flyout,.conversejs converse-chats.converse-fullscreen .chatbox:not(#controlbox) .box-flyout{max-width:75%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded .chatbox:not(#controlbox) .box-flyout,.conversejs converse-chats.converse-fullscreen .chatbox:not(#controlbox) .box-flyout{max-width:83.333333%}}@media(min-width:768px){.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-fullscreen .chatbox{flex:0 0 66.6666666667%;max-width:66.6666666667%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-fullscreen .chatbox{flex:0 0 75%;max-width:75%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-fullscreen .chatbox{flex:0 0 83.3333333333%;max-width:83.3333333333%}}.conversejs converse-chats.converse-embedded.converse-singleton .flyout,.conversejs converse-chats.converse-fullscreen.converse-singleton .flyout{border:none!important}.conversejs converse-chats.converse-embedded.converse-singleton .chat-head,.conversejs converse-chats.converse-fullscreen.converse-singleton .chat-head{padding:.5em}.conversejs converse-chats.converse-embedded.converse-singleton .chatbox,.conversejs converse-chats.converse-fullscreen.converse-singleton .chatbox{margin:0;position:relative;width:100%;padding-right:15px;padding-left:15px}@media(min-width:768px){.conversejs converse-chats.converse-embedded.converse-singleton .chatbox,.conversejs converse-chats.converse-fullscreen.converse-singleton .chatbox{flex:0 0 100%;max-width:100%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded.converse-singleton .chatbox,.conversejs converse-chats.converse-fullscreen.converse-singleton .chatbox{flex:0 0 100%;max-width:100%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded.converse-singleton .chatbox,.conversejs converse-chats.converse-fullscreen.converse-singleton .chatbox{flex:0 0 100%;max-width:100%}}.conversejs converse-chats.converse-embedded .chat-head{font-size:var(--font-size-huge)}.conversejs converse-chats.converse-embedded .chatbox .box-flyout{bottom:0;height:100%;min-width:auto;width:100%}.conversejs converse-chats.converse-embedded .chat-textarea{max-height:var(--fullpage-max-chat-textarea-height)}.conversejs converse-chats.converse-fullscreen .chatbox-btn{font-size:var(--fullpage-chatbox-button-size);margin:0 .3em}.conversejs converse-chats.converse-fullscreen .chat-head{font-size:var(--font-size-huge)}.conversejs converse-chats.converse-fullscreen .chat-textarea{max-height:var(--fullpage-max-chat-textarea-height)}.conversejs converse-chats.converse-fullscreen .chatbox .box-flyout{box-shadow:none;height:var(--fullpage-chat-height);min-height:calc(var(--fullpage-chat-height)/ 2);width:var(--fullpage-chat-width);overflow:hidden}.conversejs converse-chats.converse-fullscreen .chatbox .chat-body{height:inherit;overflow:hidden;background-color:var(--chat-background-color)}.conversejs converse-chats.converse-fullscreen .chatbox .chat-title{font-size:var(--font-size-huge);line-height:var(--line-height-huge)}.conversejs converse-chats.converse-fullscreen .chatbox .sendXMPPMessage ul{width:100%}@media(max-width:767.98px){.conversejs converse-chats:not(.converse-embedded)>.row{flex-direction:row-reverse}.conversejs converse-chats:not(.converse-embedded) #converse-login-panel .converse-form{padding:3em 2em 3em}.conversejs converse-chats:not(.converse-embedded) .chatbox{width:calc(100% - 50px)}.conversejs converse-chats:not(.converse-embedded) .chatbox .row .box-flyout{left:50px;bottom:0;height:var(--fullpage-chat-height);box-shadow:none}.conversejs converse-chats.converse-fullscreen .chatbox .box-flyout converse-controlbox-navback,.conversejs converse-chats.converse-mobile .chatbox .box-flyout converse-controlbox-navback,.conversejs converse-chats.converse-overlayed .chatbox .box-flyout converse-controlbox-navback{margin:auto 0;margin-right:1em;display:flex}.conversejs converse-chats.converse-fullscreen .chatbox .box-flyout converse-controlbox-navback .fa-arrow-left:before,.conversejs converse-chats.converse-mobile .chatbox .box-flyout converse-controlbox-navback .fa-arrow-left:before,.conversejs converse-chats.converse-overlayed .chatbox .box-flyout converse-controlbox-navback .fa-arrow-left:before{color:var(--chat-head-text-color)}} +.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.media{display:flex;align-items:flex-start}.media-body{flex:1}.conversejs .chatbox{text-align:left;margin:0 var(--chat-gutter)}@media screen and (max-height:450px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}.conversejs .chatbox converse-controlbox-navback{display:none}.conversejs .chatbox .flyout{position:absolute}@media screen and (max-height:450px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-height:450px){.conversejs .chatbox .flyout{bottom:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{bottom:0}}.conversejs .chatbox .chatbox-btn{border-radius:25%;border:none;cursor:pointer;font-size:var(--chatbox-button-size);margin:0 .2em;padding:0 0 0 .5em;text-decoration:none}.conversejs .chatbox .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .box-flyout{display:flex;flex-direction:column;justify-content:space-between;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);z-index:2;overflow:hidden;width:100%}@media screen and (max-height:450px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatbox .chat-title{display:var(--heading-display);font-family:var(--heading-font);color:var(--heading-color);display:block;line-height:var(--line-height-large);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs .chatbox .chat-title.groupchat{padding-right:var(--chatroom-head-title-padding-right)}.conversejs .chatbox .chat-title a{color:var(--chat-head-text-color);width:100%}.conversejs .chatbox .chat-body{display:flex;flex-direction:column;justify-content:space-between;background-color:var(--chat-textarea-background-color);border-bottom-left-radius:var(--chatbox-border-radius);border-bottom-right-radius:var(--chatbox-border-radius);border-top:0}@media screen and (max-height:450px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}.conversejs .chatbox .chat-body p{color:var(--text-color);font-size:var(--message-font-size);margin:0;padding:5px}.conversejs .chatbox .new-msgs-indicator{position:relative;width:100%;cursor:pointer;background-color:var(--chat-head-color);color:var(--light-background-color);padding:.5em;font-size:.9em;text-align:center;z-index:20;white-space:nowrap;margin-bottom:.25em}.conversejs .chatbox .chat-content{background-color:var(--chat-content-background-color);border:0;color:var(--text-color);font-size:var(--message-font-size);height:100%;line-height:1.3em;overflow:hidden;padding:0;display:flex;flex-direction:column;justify-content:space-between}.conversejs .chatbox .chat-content converse-chat-message .spinner{width:100%;overflow-y:hidden}.conversejs .chatbox .chat-content .chat-content__help{max-height:100%}.conversejs .chatbox .chat-content .chat-content__help converse-chat-help{border-top:1px solid var(--chat-head-color);display:block;height:100%;overflow-y:auto;padding:.5em 0}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help{float:right;padding-right:1em;cursor:pointer;color:var(--chat-content-background-color)}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help svg{fill:var(--chat-head-color)}.conversejs .chatbox .chat-content .chat-content__messages{overflow-x:hidden;overflow-y:auto;height:100%}.conversejs .chatbox .chat-content .chat-content__notifications{height:1.7em;white-space:pre;background-color:var(--chat-content-background-color);color:var(--subdued-color);font-size:90%;font-style:italic;line-height:var(--line-height-small);padding:0 1em .3em}.conversejs .chatbox .chat-content .chat-content__notifications:before{content:" "}.conversejs .chatbox .chat-content progress{margin:.5em 0;width:100%}.conversejs .chatbox .dropdown{background-color:var(--light-background-color)}.conversejs .chatbox .dropdown dd{margin:0;padding:0;position:relative}.conversejs .chatbox .dragresize{background:0 0;border:0;margin:0;position:absolute;top:0;z-index:20}.conversejs .chatbox .dragresize-top{cursor:n-resize;height:5px;width:100%}.conversejs .chatbox .dragresize-left,.conversejs .chatbox .dragresize-occupants-left{cursor:w-resize;width:5px;height:100%;left:0}.conversejs .chatbox .dragresize-topleft{cursor:nw-resize;width:15px;height:15px;top:0;left:0}.conversejs converse-chats.converse-embedded .controlbox-head,.conversejs converse-chats.converse-overlayed .controlbox-head{padding:.5em}.conversejs converse-chats.converse-embedded .chat-head,.conversejs converse-chats.converse-overlayed .chat-head{border-top-left-radius:0;border-top-right-radius:0}.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-overlayed .chatbox{min-width:var(--overlayed-chat-width)!important;width:var(--overlayed-chat-width)}.conversejs converse-chats.converse-embedded .chatbox .box-flyout,.conversejs converse-chats.converse-overlayed .chatbox .box-flyout{min-width:var(--overlayed-chat-width)!important;width:var(--overlayed-chat-width)}.conversejs converse-chats.converse-overlayed .box-flyout,.conversejs converse-chats.converse-overlayed .chat-head{border-top-left-radius:var(--chatbox-border-radius);border-top-right-radius:var(--chatbox-border-radius)}@media screen and (max-height:450px){.conversejs converse-chats.converse-overlayed .box-flyout,.conversejs converse-chats.converse-overlayed .chat-head{border-top-left-radius:0;border-top-right-radius:0}}@media screen and (max-width:480px){.conversejs converse-chats.converse-overlayed .box-flyout,.conversejs converse-chats.converse-overlayed .chat-head{border-top-left-radius:0;border-top-right-radius:0}}.conversejs converse-chats.converse-overlayed .flyout{bottom:var(--overlayed-chatbox-hover-height)}.conversejs converse-chats.converse-overlayed .box-flyout{height:var(--overlayed-chat-height);min-height:calc(var(--overlayed-chat-height)/ 2)}.conversejs converse-chats.converse-overlayed .chat-head{min-height:var(--overlayed-chat-head-height)}.conversejs converse-chats.converse-overlayed .minimized-chats-flyout .chat-head{cursor:default}.conversejs converse-chats.converse-overlayed .chat-textarea{max-height:var(--overlayed-max-chat-textarea-height)}.conversejs converse-chats.converse-overlayed .chatbox .chat-body{height:calc(100% - var(--overlayed-chat-head-height))}.conversejs converse-chats.converse-overlayed .chatbox .chatbox-title{padding:.5rem .75rem 0 .75rem}.conversejs converse-chats.converse-overlayed .chatbox .chatbox-title--no-desc{padding:.5rem .75rem}.conversejs converse-chats.converse-overlayed .chatbox converse-dropdown .btn--standalone{padding:0 .2em;margin:0 0 0 .5em}@media(max-width:767.98px){.conversejs.converse-overlayed>.row{flex-direction:column}.conversejs.converse-overlayed>.row.no-gutters{margin:-1em}}.conversejs converse-chats.converse-embedded .flyout,.conversejs converse-chats.converse-fullscreen .flyout{border-radius:0;border:none;bottom:0}.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-fullscreen .chatbox{margin:0;margin-left:15px}.conversejs converse-chats.converse-embedded .chatbox .box-flyout,.conversejs converse-chats.converse-fullscreen .chatbox .box-flyout{box-shadow:none;overflow:hidden}@media(min-width:768px){.conversejs converse-chats.converse-embedded .chatbox:not(#controlbox) .box-flyout,.conversejs converse-chats.converse-fullscreen .chatbox:not(#controlbox) .box-flyout{max-width:66.666667%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded .chatbox:not(#controlbox) .box-flyout,.conversejs converse-chats.converse-fullscreen .chatbox:not(#controlbox) .box-flyout{max-width:75%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded .chatbox:not(#controlbox) .box-flyout,.conversejs converse-chats.converse-fullscreen .chatbox:not(#controlbox) .box-flyout{max-width:83.333333%}}@media(min-width:768px){.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-fullscreen .chatbox{flex:0 0 66.6666666667%;max-width:66.6666666667%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-fullscreen .chatbox{flex:0 0 75%;max-width:75%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded .chatbox,.conversejs converse-chats.converse-fullscreen .chatbox{flex:0 0 83.3333333333%;max-width:83.3333333333%}}.conversejs converse-chats.converse-embedded.converse-singleton .flyout,.conversejs converse-chats.converse-fullscreen.converse-singleton .flyout{border:none!important}.conversejs converse-chats.converse-embedded.converse-singleton .chat-head,.conversejs converse-chats.converse-fullscreen.converse-singleton .chat-head{padding:.5em}.conversejs converse-chats.converse-embedded.converse-singleton .chatbox,.conversejs converse-chats.converse-fullscreen.converse-singleton .chatbox{margin:0;position:relative;width:100%;padding-right:15px;padding-left:15px}@media(min-width:768px){.conversejs converse-chats.converse-embedded.converse-singleton .chatbox,.conversejs converse-chats.converse-fullscreen.converse-singleton .chatbox{flex:0 0 100%;max-width:100%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded.converse-singleton .chatbox,.conversejs converse-chats.converse-fullscreen.converse-singleton .chatbox{flex:0 0 100%;max-width:100%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded.converse-singleton .chatbox,.conversejs converse-chats.converse-fullscreen.converse-singleton .chatbox{flex:0 0 100%;max-width:100%}}.conversejs converse-chats.converse-embedded .chat-head{font-size:var(--font-size-huge)}.conversejs converse-chats.converse-embedded .chatbox .box-flyout{bottom:0;height:100%;min-width:auto;width:100%}.conversejs converse-chats.converse-embedded .chat-textarea{max-height:var(--fullpage-max-chat-textarea-height)}.conversejs converse-chats.converse-fullscreen .chatbox-btn{font-size:var(--fullpage-chatbox-button-size);margin:0 .3em}.conversejs converse-chats.converse-fullscreen .chat-head{font-size:var(--font-size-huge)}.conversejs converse-chats.converse-fullscreen .chat-textarea{max-height:var(--fullpage-max-chat-textarea-height)}.conversejs converse-chats.converse-fullscreen .chatbox .box-flyout{box-shadow:none;height:var(--fullpage-chat-height);min-height:calc(var(--fullpage-chat-height)/ 2);width:var(--fullpage-chat-width);overflow:hidden}.conversejs converse-chats.converse-fullscreen .chatbox .chat-body{height:inherit;overflow:hidden;background-color:var(--chat-background-color)}.conversejs converse-chats.converse-fullscreen .chatbox .chat-title{font-size:var(--font-size-huge);line-height:var(--line-height-huge)}.conversejs converse-chats.converse-fullscreen .chatbox .sendXMPPMessage ul{width:100%}@media(max-width:767.98px){.conversejs converse-chats:not(.converse-embedded)>.row{flex-direction:row-reverse}.conversejs converse-chats:not(.converse-embedded) #converse-login-panel .converse-form{padding:3em 2em 3em}.conversejs converse-chats:not(.converse-embedded) .chatbox{width:calc(100% - 50px)}.conversejs converse-chats:not(.converse-embedded) .chatbox .row .box-flyout{left:50px;bottom:0;height:var(--fullpage-chat-height);box-shadow:none}.conversejs converse-chats.converse-fullscreen .chatbox .box-flyout converse-controlbox-navback,.conversejs converse-chats.converse-mobile .chatbox .box-flyout converse-controlbox-navback,.conversejs converse-chats.converse-overlayed .chatbox .box-flyout converse-controlbox-navback{margin:auto 0;margin-right:1em;display:flex}.conversejs converse-chats.converse-fullscreen .chatbox .box-flyout converse-controlbox-navback .fa-arrow-left:before,.conversejs converse-chats.converse-mobile .chatbox .box-flyout converse-controlbox-navback .fa-arrow-left:before,.conversejs converse-chats.converse-overlayed .chatbox .box-flyout converse-controlbox-navback .fa-arrow-left:before{color:var(--chat-head-text-color)}} .conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .oauth-providers{text-align:center}.conversejs .oauth-providers .oauth-provider{margin:1em 0}.conversejs .oauth-providers .oauth-provider .oauth-login{margin-left:0;color:var(--link-color);font-size:var(--font-size-large)}.conversejs .oauth-providers .oauth-provider .oauth-login:hover{color:var(--link-hover-color)}.conversejs .oauth-providers .oauth-provider .oauth-login i{color:var(--link-color);font-size:var(--font-size-huge);margin-right:.5em}.conversejs .set-xmpp-status .chat-status--online,.conversejs .xmpp-status .chat-status--online{color:var(--chat-status-online)}.conversejs .set-xmpp-status .chat-status--busy,.conversejs .xmpp-status .chat-status--busy{color:var(--chat-status-busy)}.conversejs .set-xmpp-status .chat-status--away,.conversejs .xmpp-status .chat-status--away{color:var(--chat-status-away)}.conversejs .set-xmpp-status .fa-times-circle,.conversejs .set-xmpp-status .far.fa-circle,.conversejs .xmpp-status .fa-times-circle,.conversejs .xmpp-status .far.fa-circle{color:var(--subdued-color)}.conversejs .set-xmpp-status .chat-status{padding-right:.5em}.conversejs .room-info{font-size:var(--font-size-small);font-style:normal;font-weight:400}.conversejs .room-info li.room-info{display:block;margin-left:5px}.conversejs .room-info p.room-info{line-height:var(--line-height);margin:0;display:block;white-space:normal}.conversejs div.room-info{padding:.3em 0;clear:left;width:100%}.conversejs #controlbox{order:-1;color:var(--controlbox-text-color);margin-right:calc(3 * var(--chat-gutter))}.conversejs #controlbox converse-brand-logo{width:100%;display:block}.conversejs #controlbox converse-brand-heading{width:100%;display:block}.conversejs #controlbox .brand-name-wrapper{font-size:200%}.conversejs #controlbox .brand-name-wrapper--fullscreen{font-size:100%}.conversejs #controlbox .open-rooms-toggle,.conversejs #controlbox .open-rooms-toggle .fa{color:var(--groupchats-header-color)!important}.conversejs #controlbox .open-rooms-toggle .fa:hover,.conversejs #controlbox .open-rooms-toggle:hover{color:var(--chatroom-head-bg-color-dark)!important}.conversejs #controlbox .box-flyout{background-color:var(--controlbox-pane-background-color)}.conversejs #controlbox.logged-out .box-flyout .controlbox-pane{overflow-y:auto}.conversejs #controlbox form.search-xmpp-contact{margin:0;padding-left:5px;padding:0 0 5px 5px}.conversejs #controlbox form.search-xmpp-contact input{width:8em}.conversejs #controlbox .msgs-indicator{margin-right:.5em}.conversejs #controlbox a.subscribe-to-user{padding-left:2em;font-weight:700}.conversejs #controlbox #converse-register{opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease;background-color:var(--controlbox-pane-background-color)}.conversejs #controlbox #converse-register .title{font-weight:700}.conversejs #controlbox #converse-register .info{color:green;font-size:90%;margin:1.5em 0}.conversejs #controlbox #converse-register .form-errors{color:var(--error-color);margin:1em 0}.conversejs #controlbox #converse-register .provider-title{font-size:var(--font-size-huge);margin:0}.conversejs #controlbox #converse-register .provider-score{width:178px;margin-bottom:8px}.conversejs #controlbox #converse-register .form-help .url{font-weight:700;color:var(--link-color)}.conversejs #controlbox #converse-register .input-group{display:table;margin:auto;width:100%}.conversejs #controlbox #converse-register .input-group span{overflow-x:hidden;text-overflow:ellipsis;max-width:110px}.conversejs #controlbox #converse-register .input-group input[name=username],.conversejs #controlbox #converse-register .input-group span{display:table-cell;text-align:left}.conversejs #controlbox #converse-register .instructions{color:gray;font-size:85%}.conversejs #controlbox #converse-register .instructions:hover{color:var(--controlbox-text-color)}.conversejs #controlbox .conn-feedback{color:var(--controlbox-head-color)}.conversejs #controlbox .conn-feedback.error{color:var(--error-color)}.conversejs #controlbox .conn-feedback p{padding-bottom:1em}.conversejs #controlbox .conn-feedback p.feedback-subject.error{font-weight:700}.conversejs #controlbox #converse-login-panel,.conversejs #controlbox #converse-register-panel{padding-top:0;padding-bottom:0}.conversejs #controlbox #converse-login-panel{flex-direction:row}.conversejs #controlbox .toggle-register-login{font-weight:700}.conversejs #controlbox .controlbox-pane .userinfo{padding-bottom:1em}.conversejs #controlbox .controlbox-pane .userinfo .username{margin-left:.5em;overflow:hidden;text-overflow:ellipsis}.conversejs #controlbox .controlbox-pane .userinfo .profile{margin-bottom:.75em}.conversejs #controlbox #chatrooms{padding:0}.conversejs #controlbox #chatrooms .add-chatroom{margin:0;padding:0}.conversejs #controlbox #chatrooms .add-chatroom input[type=button],.conversejs #controlbox #chatrooms .add-chatroom input[type=submit],.conversejs #controlbox #chatrooms .add-chatroom input[type=text]{width:100%}.conversejs #controlbox .controlbox-section .controlbox-heading{font-family:var(--heading-font);color:var(--controlbox-heading-color);font-weight:var(--controlbox-heading-font-weight);padding:0;font-size:1.1em;line-height:1.1em;text-transform:uppercase}.conversejs #controlbox .controlbox-section .controlbox-heading--groupchats{color:var(--groupchats-header-color)}.conversejs #controlbox .controlbox-section .controlbox-heading--contacts{color:var(--chat-head-color-dark)}.conversejs #controlbox .controlbox-section .controlbox-heading--headline{color:var(--headline-head-color)}.conversejs #controlbox .controlbox-section .controlbox-heading__btn{cursor:pointer;font-size:1em;padding:0;margin:var(--controlbox-heading-top-margin) 0 var(--inline-action-margin) 0;min-width:25px;text-align:center}.conversejs #controlbox .controlbox-section .controlbox-heading__btn.fa-vcard{margin-top:1em}.conversejs #controlbox .dropdown a{width:143px;display:inline-block}.conversejs #controlbox .dropdown li{list-style:none;padding-left:0}.conversejs #controlbox .dropdown dd ul{padding:0;list-style:none;position:absolute;left:0;top:0;width:100%;z-index:21;background-color:var(--light-background-color)}.conversejs #controlbox .dropdown dd ul li:hover{background-color:var(--highlight-color)}.conversejs #controlbox .dropdown dd.search-xmpp{height:0}.conversejs #controlbox .dropdown dd.search-xmpp .contact-form-container{position:absolute;z-index:22}.conversejs #controlbox .dropdown dd.search-xmpp .contact-form-container form{box-shadow:1px 4px 10px 1px rgba(0,0,0,.4);background-color:#fff}.conversejs #controlbox .dropdown dd.search-xmpp li:hover{background-color:var(--light-background-color)}.conversejs #controlbox .dropdown dt a span{cursor:pointer;display:block;padding:4px 7px 0 5px}.conversejs #controlbox .controlbox-panes{background-color:var(--controlbox-pane-background-color);border-right:.2143rem solid var(--panel-divider-color);height:100%;overflow-y:auto}.conversejs #controlbox .controlbox-subtitle{font-size:90%;padding:.5em;text-align:right}.conversejs #controlbox .controlbox-pane{background-color:var(--controlbox-pane-background-color);border:0;font-size:var(--font-size);left:0;text-align:left;overflow-x:hidden;padding:0 0 1em 0}.conversejs #controlbox .controlbox-pane .controlbox-padded{padding-left:1em;padding-right:1em;align-items:center;line-height:normal}.conversejs #controlbox .controlbox-pane .controlbox-padded .change-status{min-width:25px;text-align:center}.conversejs #controlbox .controlbox-pane .add-converse-contact{margin:0 0 .75em 0}.conversejs #controlbox .controlbox-pane .chatbox-btn{margin:0}.conversejs #controlbox .controlbox-pane .switch-form{text-align:center;padding:2em 0}.conversejs #controlbox .controlbox-pane dd{margin-left:0;margin-bottom:0}.conversejs #controlbox .controlbox-pane dd.odd{background-color:#dceac5}.conversejs #controlbox .add-xmpp-contact{padding:1em .5em}.conversejs #controlbox .add-xmpp-contact input{margin:0 0 1rem;width:100%}.conversejs #controlbox .add-xmpp-contact button{width:100%}.conversejs converse-chats.converse-overlayed{display:flex;flex-direction:row-reverse}.conversejs converse-chats.converse-overlayed .toggle-controlbox{order:-2;text-align:center;background-color:var(--link-color);border-top-left-radius:var(--button-border-radius);border-top-right-radius:var(--button-border-radius);color:#0a0a0a;float:right;height:100%;margin:0 var(--chat-gutter);padding:1em}.conversejs converse-chats.converse-overlayed .toggle-controlbox span{color:var(--inverse-link-color)}.conversejs converse-chats.converse-overlayed #controlbox{order:-1;min-width:var(--controlbox-width)!important;width:var(--controlbox-width)}.conversejs converse-chats.converse-overlayed #controlbox .box-flyout{min-width:var(--controlbox-width)!important;width:var(--controlbox-width)}.conversejs converse-chats.converse-overlayed #controlbox .login-trusted{white-space:nowrap;font-size:90%}.conversejs converse-chats.converse-overlayed #controlbox #converse-login-trusted{margin-top:.5em}.conversejs converse-chats.converse-overlayed #controlbox:not(.logged-out) .controlbox-head{height:15px}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;min-height:0}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head .brand-heading{color:var(--controlbox-text-color);font-size:2em}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head .chatbox-btn{color:var(--controlbox-head-color);margin:0}.conversejs converse-chats.converse-overlayed #controlbox #converse-login,.conversejs converse-chats.converse-overlayed #controlbox #converse-register{flex:0 0 100%;max-width:100%;padding-bottom:0}.conversejs converse-chats.converse-overlayed #controlbox #converse-register .button-cancel{font-size:90%}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-panes{border-radius:var(--chatbox-border-radius)}.conversejs converse-chats.converse-embedded .toggle-controlbox,.conversejs converse-chats.converse-fullscreen .toggle-controlbox{display:none}.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{position:relative;width:100%;padding-right:15px;padding-left:15px;margin:0}@media(min-width:768px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 25%;max-width:25%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 16.6666666667%;max-width:16.6666666667%}}.conversejs converse-chats.converse-embedded #controlbox.logged-out,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out,.conversejs converse-chats.converse-mobile #controlbox.logged-out{flex:0 0 100%;max-width:100%}.conversejs converse-chats.converse-embedded #controlbox .flyout,.conversejs converse-chats.converse-fullscreen #controlbox .flyout,.conversejs converse-chats.converse-mobile #controlbox .flyout{border-radius:0}.conversejs converse-chats.converse-embedded #controlbox #converse-login-panel,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login-panel,.conversejs converse-chats.converse-mobile #controlbox #converse-login-panel{border-radius:0}.conversejs converse-chats.converse-embedded #controlbox #converse-login-panel .converse-form,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login-panel .converse-form,.conversejs converse-chats.converse-mobile #controlbox #converse-login-panel .converse-form{padding:3em 2em 3em}.conversejs converse-chats.converse-embedded #controlbox .toggle-register-login,.conversejs converse-chats.converse-fullscreen #controlbox .toggle-register-login,.conversejs converse-chats.converse-mobile #controlbox .toggle-register-login{line-height:var(--line-height-huge)}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo{flex:0 0 100%;max-width:100%;margin-top:5em;margin-bottom:1em}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-heading{width:100%;font-size:500%;padding:.7em 0 0 0;opacity:.8;color:var(--brand-heading-color)}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-subtitle,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-subtitle,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-subtitle{font-size:90%;padding:.5em}@media screen and (max-width:480px){.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-heading{font-size:300%}}.conversejs converse-chats.converse-embedded #controlbox.logged-out,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out,.conversejs converse-chats.converse-mobile #controlbox.logged-out{flex:0 0 100%;max-width:100%;opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease;width:100%}.conversejs converse-chats.converse-embedded #controlbox.logged-out .box-flyout,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out .box-flyout,.conversejs converse-chats.converse-mobile #controlbox.logged-out .box-flyout{width:100%}.conversejs converse-chats.converse-embedded #controlbox .box-flyout,.conversejs converse-chats.converse-fullscreen #controlbox .box-flyout,.conversejs converse-chats.converse-mobile #controlbox .box-flyout{border:0;width:100%;z-index:1;background-color:var(--controlbox-head-color)}.conversejs converse-chats.converse-embedded #controlbox .box-flyout .controlbox-head,.conversejs converse-chats.converse-fullscreen #controlbox .box-flyout .controlbox-head,.conversejs converse-chats.converse-mobile #controlbox .box-flyout .controlbox-head{display:none}.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{position:relative;width:100%;padding-right:15px;padding-left:15px;flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}@media(min-width:576px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}}@media(min-width:768px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 50%;max-width:50%;margin-left:25%}}.conversejs converse-chats.converse-embedded #controlbox #converse-login .instructions,.conversejs converse-chats.converse-embedded #controlbox #converse-login .title,.conversejs converse-chats.converse-embedded #controlbox #converse-register .instructions,.conversejs converse-chats.converse-embedded #controlbox #converse-register .title,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login .instructions,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login .title,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register .instructions,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register .title,.conversejs converse-chats.converse-mobile #controlbox #converse-login .instructions,.conversejs converse-chats.converse-mobile #controlbox #converse-login .title,.conversejs converse-chats.converse-mobile #controlbox #converse-register .instructions,.conversejs converse-chats.converse-mobile #controlbox #converse-register .title{margin:1em 0}.conversejs converse-chats.converse-embedded #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-embedded #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-embedded #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-embedded #controlbox #converse-register input[type=submit],.conversejs converse-chats.converse-fullscreen #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-fullscreen #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-fullscreen #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-fullscreen #controlbox #converse-register input[type=submit],.conversejs converse-chats.converse-mobile #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-mobile #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-mobile #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-mobile #controlbox #converse-register input[type=submit]{width:auto}.conversejs converse-chats.converse-fullscreen #controlbox{margin-left:-15px}.conversejs converse-chats.converse-fullscreen .controlbox-panes{padding-top:2em}.conversejs converse-chats.converse-overlayed .brand-heading{padding-top:.8rem;padding-left:.8rem;width:100%}.conversejs converse-chats.converse-overlayed .converse-svg-logo{height:1em}.conversejs converse-chats.converse-overlayed #controlbox #converse-login-panel{height:100%}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-panes{margin-top:.5em}@media(max-width:767.98px){.conversejs{left:0;right:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.conversejs .converse-chatboxes{margin:0!important;flex-direction:row!important;justify-content:space-between}.conversejs .converse-chatboxes .converse-chatroom{font-size:14px}.conversejs .converse-chatboxes .chatbox .box-flyout{margin-left:15px;left:0;bottom:0;border-radius:0;width:100vw!important;height:var(--fullpage-chat-height)}.conversejs .converse-chatboxes #controlbox{width:100vw!important}.conversejs .converse-chatboxes #controlbox .box-flyout{width:100vw!important;height:var(--fullpage-chat-height);margin-right:-15px}.conversejs .converse-chatboxes #controlbox .sidebar{display:block}.conversejs .converse-chatboxes.sidebar-open .chatbox:not(#controlbox){display:none}.conversejs .converse-chatboxes.sidebar-open #controlbox .controlbox-pane{display:block}} body.converse-fullscreen{margin:0;background-color:var(--global-background-color)} .conversejs-bg .subdued{opacity:.35}.conversejs-bg .converse-brand{display:flex;justify-content:space-between;margin-top:15vh;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:5s;animation-duration:5s;-webkit-animation-timing-function:ease;animation-timing-function:ease}.conversejs-bg .converse-brand__padding{position:relative;width:100%;padding-right:15px;padding-left:15px;padding:0}@media(min-width:768px){.conversejs-bg .converse-brand__padding{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media(min-width:992px){.conversejs-bg .converse-brand__padding{flex:0 0 25%;max-width:25%}}@media(min-width:1200px){.conversejs-bg .converse-brand__padding{flex:0 0 16.6666666667%;max-width:16.6666666667%}}.conversejs-bg .converse-brand__heading{position:relative;width:100%;padding-right:15px;padding-left:15px;padding:0;display:flex;justify-content:center;margin:auto}@media(min-width:768px){.conversejs-bg .converse-brand__heading{font-size:4em;flex:0 0 66.6666666667%;max-width:66.6666666667%}}@media(min-width:992px){.conversejs-bg .converse-brand__heading{font-size:5em;flex:0 0 75%;max-width:75%}}@media(min-width:1200px){.conversejs-bg .converse-brand__heading{font-size:6em;flex:0 0 83.3333333333%;max-width:83.3333333333%}}.conversejs-bg .converse-brand__heading svg{margin-top:.3em}.conversejs-bg .converse-brand__text{color:#fff;font-family:var(--branding-font);font-weight:400;text-align:center;font-size:140%;margin-left:.2em}.conversejs-bg .converse-brand__text .byline{margin:0;font-family:var(--heading-font);font-size:.3em;opacity:.55;margin-bottom:2em;margin-left:-2.7em;word-spacing:5px} .conversejs .chat-head-headline{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-head.chat-head-chatbox{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-body{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-body .chat-message{color:var(--headline-message-color)}.conversejs .chatbox.headlines .chat-content{height:100%}.conversejs .message.chat-msg.headline .chat-msg__body{margin-left:0}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .box-flyout{background-color:var(--headline-head-color)}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .chat-head.chat-head-chatbox{background-color:var(--headline-head-color)}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .flyout{border-color:var(--headline-head-color)} +converse-mam-placeholder .mam-placeholder{position:relative;height:2em;margin:.5em 0}converse-mam-placeholder .mam-placeholder:after,converse-mam-placeholder .mam-placeholder:before{content:"";display:block;position:absolute;left:0;right:0}converse-mam-placeholder .mam-placeholder:before{height:1em;top:1em;background:linear-gradient(-135deg,#d3d3d3 .5em,transparent 0) 0 .5em,linear-gradient(135deg,#d3d3d3 .5em,transparent 0) 0 .5em;background-position:top left;background-repeat:repeat-x;background-size:1em 1em}converse-mam-placeholder .mam-placeholder:after{height:1em;top:.75em;background:linear-gradient(-135deg,var(--chat-background-color) .5em,transparent 0) 0 .5em,linear-gradient(135deg,var(--chat-background-color) .5em,transparent 0) 0 .5em;background-position:top left;background-repeat:repeat-x;background-size:1em 1em} .conversejs converse-chats.converse-overlayed converse-minimized-chats{order:100}.conversejs converse-chats.converse-overlayed #minimized-chats{width:var(--minimized-chats-width);margin-bottom:0;border-top-left-radius:var(--chatbox-border-radius);border-top-right-radius:var(--chatbox-border-radius);color:var(--inverse-link-color);margin-right:var(--chat-gutter);padding:0}.conversejs converse-chats.converse-overlayed #minimized-chats .badge{bottom:8px;border:1px solid var(--overlayed-badge-color)}.conversejs converse-chats.converse-overlayed #minimized-chats #toggle-minimized-chats{border-top-left-radius:var(--chatbox-border-radius);border-top-right-radius:var(--chatbox-border-radius);background-color:var(--link-color);padding:1em 0 0 0;text-align:center;color:#fff;white-space:nowrap;overflow-y:hidden;text-overflow:ellipsis;display:block;height:45px;width:9em}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat{cursor:pointer;padding:1px 0 1px 5px;color:var(--chat-head-text-color);line-height:15px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat:hover{text-decoration:none}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat:visited{color:var(--chat-head-text-color)}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout{flex-direction:column-reverse;bottom:45px;width:var(--minimized-chats-width)}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout .chat-head{min-height:0;padding:.3em;border-radius:var(--chatbox-border-radius);height:35px;margin-bottom:.2em;width:100%;max-width:9em;flex-wrap:nowrap}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout.minimized{height:auto}.conversejs converse-chats.converse-overlayed #minimized-chats .unread-message-count{font-weight:700;background-color:#fff;border:1px solid;text-shadow:1px 1px 0 var(--text-shadow-color);color:var(--warning-color);border-radius:5px;padding:2px 4px;font-size:16px;text-align:center;position:absolute;right:116px;bottom:10px}.conversejs converse-chats.converse-overlayed #minimized-chats .chat-head-message-count-hidden,.conversejs converse-chats.converse-overlayed #minimized-chats .unread-message-count-hidden{display:none} .conversejs [hidden]{display:none}.conversejs .visually-hidden{position:absolute;clip:rect(0,0,0,0)}.conversejs .form-group .suggestion-box{width:100%}.conversejs .suggestion-box{position:relative}.conversejs .suggestion-box mark{background:var(--completion-light-color)}.conversejs .suggestion-box>input{display:block}.conversejs .suggestion-box .suggestion-box__results,.conversejs .suggestion-box>ul{border-radius:.3em;border:1px solid rgba(0,0,0,.3);box-shadow:.05em .2em .6em rgba(0,0,0,.1);box-sizing:border-box;left:0;list-style:none;margin:.2em 0 0;min-width:100%;padding:0;position:absolute;right:0;text-shadow:none;z-index:2}.conversejs .suggestion-box .suggestion-box__results:before,.conversejs .suggestion-box>ul:before{content:"";position:absolute;top:-.43em;left:1em;width:0;height:0;padding:.4em;background:#fff;border:inherit;border-right:0;border-bottom:0;transform:rotate(45deg);z-index:-1}.conversejs .suggestion-box .suggestion-box__results>li,.conversejs .suggestion-box>ul>li{background:rgba(255,255,255,.9);background:linear-gradient(to bottom right,#fff,rgba(255,255,255,.9));color:var(--text-color);cursor:pointer;display:flex;overflow-x:hidden;padding:1em;position:relative;text-overflow:ellipsis}.conversejs .suggestion-box .suggestion-box__results--below{top:2em}.conversejs .suggestion-box .suggestion-box__results--above{bottom:4.5em}.conversejs .suggestion-box .suggestion-box__results--above:before{display:none}.conversejs .suggestion-box .suggestion-box__results--above:after{z-index:-1;content:"";position:absolute;bottom:-.43em;left:1em;width:0;height:0;padding:.4em;background:#fff;border:inherit;border-left:0;border-top:0;transform:rotate(45deg)}.conversejs .suggestion-box>ul:empty,.conversejs .suggestion-box>ul[hidden]{display:none}@supports(transform:scale(0)){.conversejs .suggestion-box>ul{transition:.3s cubic-bezier(.4,.2,.5,1.4);transform-origin:1.43em -.43em}.conversejs .suggestion-box>ul:empty,.conversejs .suggestion-box>ul[hidden]{opacity:0;transform:scale(0);display:block;transition-timing-function:ease}}.conversejs .suggestion-box>ul>li[aria-selected=true]{background:var(--completion-dark-color);color:var(--inverse-link-color)}.conversejs .suggestion-box li:hover mark{background:var(--completion-light-color);color:var(--inverse-link-color)}.conversejs .suggestion-box li[aria-selected=true] mark{background:var(--completion-normal-color);color:inherit}.conversejs.converse-fullscreen .suggestion-box__results--above{bottom:4.5em}.conversejs.converse-overlayed .suggestion-box__results--above{bottom:3.5em} .conversejs converse-muc.chatroom converse-muc-bottom-panel{display:contents;height:3em;padding:.5em;text-align:center;font-size:var(--font-size-small);background-color:var(--chatroom-head-bg-color);color:#fff}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--muted{height:4em;width:100%}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--nickname{padding:0;height:16em}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--nickname .muc-form-container .chatroom-form{padding-top:2em;padding-bottom:0}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .suggestion-box__results--above{bottom:4.5em}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea:active,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea:focus,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input:active,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input:focus{outline-color:var(--chatroom-head-bg-color)!important}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea.correcting,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input.correcting{background-color:var(--chatroom-correcting-color)}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea{width:100%;border:none;border-bottom-right-radius:0} .conversejs converse-muc.chatroom .box-flyout .occupants{display:flex;flex-direction:column;justify-content:space-between;overflow-x:hidden;overflow-y:hidden;vertical-align:top;background-color:var(--occupants-background-color);border-left:var(--occupants-border-left);padding:.5em;max-width:75%;min-width:20%;flex:0 0 25%}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header{display:flex;flex-direction:column}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header .hide-occupants{align-self:flex-end;cursor:pointer;font-size:var(--font-size-small)}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header--title{margin-top:.5em;margin-bottom:.5em;display:flex;flex-direction:row}.conversejs converse-muc.chatroom .box-flyout .occupants .fa-user-plus{margin-right:.25em}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-heading{font-family:var(--heading-font);color:var(--groupchats-header-color-dark);padding-left:0;margin-right:1em}.conversejs converse-muc.chatroom .box-flyout .occupants .suggestion-box ul{padding:0}.conversejs converse-muc.chatroom .box-flyout .occupants .suggestion-box ul li{padding:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul{padding:0;margin-bottom:.5em;overflow-x:hidden;overflow-y:auto;list-style:none}.conversejs converse-muc.chatroom .box-flyout .occupants ul.occupant-list{overflow-y:auto;flex-basis:0;flex-grow:1}.conversejs converse-muc.chatroom .box-flyout .occupants ul li{cursor:default;display:block;font-size:var(--font-size-small);overflow:hidden;padding:.25em .25em .25em 0;text-overflow:ellipsis}.conversejs converse-muc.chatroom .box-flyout .occupants ul li .fa{margin-right:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.feature{font-size:var(--font-size-tiny)}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant{cursor:pointer}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge{display:flex;justify-content:space-between;flex-wrap:wrap}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge .occupant-badges{display:flex;justify-content:flex-end;flex-wrap:wrap;flex-direction:row}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge .occupant-badges span{margin-right:.25rem}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant div.row.no-gutters{flex-wrap:nowrap;min-height:1.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .badge{margin-bottom:.125rem}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status{display:inline-block;margin:0 .5em .125em 0;width:.5em;height:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-chat,.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-online{background-color:#1a9707}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-dnd{background-color:red}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-away{background-color:#ff8c00}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-xa{background-color:orange}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-offline{background-color:#a9a9a9} .conversejs converse-muc.chatroom .chat-head-chatroom{color:var(--chatroom-head-color);background-color:var(--chatroom-head-bg-color);border-bottom:var(--chatroom-head-border-bottom)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc{color:var(--chatroom-head-color);display:var(--chatroom-head-description-display)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc a{color:var(--chatroom-head-description-link-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc:hover button{display:inline-block}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title .btn--transparent i{color:var(--chatroom-head-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title .chatbox-title__text--bookmarked{margin-left:.5em;color:var(--chatroom-head-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__buttons{background-color:var(--chatroom-head-bg-color)}.conversejs converse-muc.chatroom .chat-head-chatroom a.chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:hover.chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:not([href]):not([tabindex]).chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:visited.chatbox-btn.fa{color:var(--chat-head-text-color)}.conversejs converse-muc.chatroom .chat-head-chatroom a.chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:hover.chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:not([href]):not([tabindex]).chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:visited.chatbox-btn.fa.button-on:before{color:var(--chatroom-head-button-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-btn.button-on:before{color:var(--chatroom-head-button-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__text{display:var(--heading-display);font-weight:var(--chatroom-head-title-font-weight);margin:auto 0;padding-right:var(--chatroom-head-title-padding-right);white-space:nowrap}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__text .chatroom-jid{font-size:var(--font-size-small)} -.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .chatbox{text-align:left;margin:0 var(--chat-gutter)}@media screen and (max-height:450px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}.conversejs .chatbox converse-controlbox-navback{display:none}.conversejs .chatbox .flyout{position:absolute}@media screen and (max-height:450px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-height:450px){.conversejs .chatbox .flyout{bottom:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{bottom:0}}.conversejs .chatbox .chatbox-btn{border-radius:25%;border:none;cursor:pointer;font-size:var(--chatbox-button-size);margin:0 .2em;padding:0 0 0 .5em;text-decoration:none}.conversejs .chatbox .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .box-flyout{display:flex;flex-direction:column;justify-content:space-between;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);z-index:2;overflow:hidden;width:100%}@media screen and (max-height:450px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatbox .chat-title{display:var(--heading-display);font-family:var(--heading-font);color:var(--heading-color);display:block;line-height:var(--line-height-large);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs .chatbox .chat-title.groupchat{padding-right:var(--chatroom-head-title-padding-right)}.conversejs .chatbox .chat-title a{color:var(--chat-head-text-color);width:100%}.conversejs .chatbox .chat-body{display:flex;flex-direction:column;justify-content:space-between;background-color:var(--chat-textarea-background-color);border-bottom-left-radius:var(--chatbox-border-radius);border-bottom-right-radius:var(--chatbox-border-radius);border-top:0}@media screen and (max-height:450px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}.conversejs .chatbox .chat-body p{color:var(--text-color);font-size:var(--message-font-size);margin:0;padding:5px}.conversejs .chatbox .new-msgs-indicator{position:relative;width:100%;cursor:pointer;background-color:var(--chat-head-color);color:var(--light-background-color);padding:.5em;font-size:.9em;text-align:center;z-index:20;white-space:nowrap;margin-bottom:.25em}.conversejs .chatbox .chat-content{background-color:var(--chat-content-background-color);border:0;color:var(--text-color);font-size:var(--message-font-size);height:100%;line-height:1.3em;overflow:hidden;padding:0;display:flex;flex-direction:column;justify-content:space-between}.conversejs .chatbox .chat-content converse-chat-message .spinner{width:100%;overflow-y:hidden}.conversejs .chatbox .chat-content .chat-content__help{max-height:100%}.conversejs .chatbox .chat-content .chat-content__help converse-chat-help{border-top:1px solid var(--chat-head-color);display:block;height:100%;overflow-y:auto;padding:.5em 0}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help{float:right;padding-right:1em;cursor:pointer;color:var(--chat-content-background-color)}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help svg{fill:var(--chat-head-color)}.conversejs .chatbox .chat-content .chat-content__messages{overflow-x:hidden;overflow-y:auto;height:100%}.conversejs .chatbox .chat-content .chat-content__notifications{height:1.7em;white-space:pre;background-color:var(--chat-content-background-color);color:var(--subdued-color);font-size:90%;font-style:italic;line-height:var(--line-height-small);padding:0 1em .3em}.conversejs .chatbox .chat-content .chat-content__notifications:before{content:" "}.conversejs .chatbox .chat-content video{width:100%}.conversejs .chatbox .chat-content progress{margin:.5em 0;width:100%}.conversejs .chatbox .dropdown{background-color:var(--light-background-color)}.conversejs .chatbox .dropdown dd{margin:0;padding:0;position:relative}.conversejs .chatbox .dragresize{background:0 0;border:0;margin:0;position:absolute;top:0;z-index:20}.conversejs .chatbox .dragresize-top{cursor:n-resize;height:5px;width:100%}.conversejs .chatbox .dragresize-left,.conversejs .chatbox .dragresize-occupants-left{cursor:w-resize;width:5px;height:100%;left:0}.conversejs .chatbox .dragresize-topleft{cursor:nw-resize;width:15px;height:15px;top:0;left:0}converse-muc-config-form{width:100%;overflow:auto}.conversejs .chatroom .box-flyout .muc-form-container{background-color:#fff;border:0;color:var(--text-color);font-size:var(--font-size);height:100%;width:100%;overflow-y:auto}.conversejs .chatroom .box-flyout .muc-form-container .validation-message{font-size:90%;color:var(--error-color)}.conversejs .chatroom .box-flyout .muc-form-container input[type=button],.conversejs .chatroom .box-flyout .muc-form-container input[type=submit]{margin:0 .5em}.conversejs .chatroom .box-flyout .muc-form-container .button-primary{background-color:var(--chatroom-head-button-color)}.conversejs .chatroom .box-flyout .chatroom-form{display:flex;flex-direction:column;justify-content:center;padding:2em}.conversejs .chatroom{width:var(--chatroom-width)}@media screen and (max-height:450px){.conversejs .chatroom{width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatroom{width:var(--mobile-chat-width)}}.conversejs .chatroom .box-flyout{background-color:var(--chatroom-head-bg-color);overflow-y:hidden;width:var(--chatroom-width)}@media screen and (max-height:450px){.conversejs .chatroom .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatroom .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatroom .box-flyout .empty-history-feedback{position:relative}.conversejs .chatroom .box-flyout .empty-history-feedback span{width:100%;text-align:center;position:absolute;margin-top:50%}.conversejs .chatroom .box-flyout .chatroom-body{flex-direction:row;flex-flow:nowrap;background-color:#fff;border-top:0;height:100%;width:100%;overflow:hidden}.conversejs .chatroom .box-flyout .chatroom-body converse-muc-chatarea{width:100%;display:flex;flex-direction:row;flex-flow:nowrap}.conversejs .chatroom .box-flyout .chatroom-body .row{flex-direction:row}.conversejs .chatroom .box-flyout .chatroom-body .chat-topic{font-weight:700;color:var(--chatroom-head-bg-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-info{color:var(--chat-info-color);line-height:normal}.conversejs .chatroom .box-flyout .chatroom-body .chat-info.badge{color:var(--chat-head-text-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-info.chat-msg--retracted{color:var(--subdued-color)}.conversejs .chatroom .box-flyout .chatroom-body .disconnect-container{margin:1em;width:100%}.conversejs .chatroom .box-flyout .chatroom-body .disconnect-container h3.disconnect-msg{padding-bottom:1em}.conversejs .chatroom .box-flyout .chatroom-body .chat-area{display:flex;flex-direction:column;flex:0 1 100%;justify-content:flex-end;min-width:25%;word-wrap:break-word}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .new-msgs-indicator{background-color:var(--chatroom-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content{height:100%}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content__help converse-chat-help{border-top:1px solid var(--chatroom-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content__help .close-chat-help svg{fill:var(--chatroom-color)}.conversejs .chatroom .room-invite .invited-contact{margin:-1px 0 0 -1px;width:100%;border:1px solid #999}#muc-details-modal .features-list{margin-left:1em}#muc-details-modal .chatroom-features{width:100%}#muc-details-modal .chatroom-features .features-list{padding-top:0}#muc-details-modal .chatroom-features .features-list .feature{width:100%;margin-right:.5em;padding-right:0;font-size:1em;cursor:help}#muc-details-modal .chatroom-features .features-list .feature .fa{margin-right:.5em;color:var(--text-color)}converse-muc-destroyed,converse-muc-disconnected{padding:2em;width:100%;height:100%}.conversejs .badge--muc,.conversejs.converse-embedded .badge--muc{background-color:var(--groupchats-header-color)}.conversejs .add-chatroom input[type=button],.conversejs .add-chatroom input[type=submit],.conversejs.converse-embedded .add-chatroom input[type=button],.conversejs.converse-embedded .add-chatroom input[type=submit]{margin:.3em 0}.conversejs converse-chats.converse-overlayed .chatbox.chatroom{min-width:var(--chatroom-width)!important;width:var(--chatroom-width)}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .box-flyout{min-width:var(--chatroom-width)!important;width:var(--chatroom-width)}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatbox-title__text{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatbox-title__buttons{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chat-head__desc{font-size:80%;margin-bottom:1em}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants .occupants-heading{padding:0}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants .occupant-list{border-bottom:none}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants ul .occupant .occupant-nick-badge .occupant-badges{display:none}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants ul .occupant .occupant-status{margin-top:6px}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .chat-area{min-width:var(--overlayed-chat-width)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout,.conversejs converse-chats.converse-mobile .chatroom .box-flyout{width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator{max-width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants{padding:var(--occupants-padding)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants .occupants-heading,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants .occupants-heading,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants .occupants-heading{font-size:var(--font-size-large)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li{font-size:var(--font-size-small)}.conversejs converse-chats.converse-embedded .chatroom .room-invite span .invited-contact,.conversejs converse-chats.converse-fullscreen .chatroom .room-invite span .invited-contact,.conversejs converse-chats.converse-mobile .chatroom .room-invite span .invited-contact{margin:0 0 .5em -1px}.conversejs converse-chats.converse-embedded .chatroom{margin:0;width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .occupants-heading{font-size:120%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chat-content .chat-message{margin:.5em;font-size:120%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .sendXMPPMessage .chat-textarea{padding:.5em;font-size:110%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body{height:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .muc-form-container{height:100%;position:relative}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .occupants .occupant-list{padding-left:.3em} +.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:"Helvetica","Arial",sans-serif;--heading-font:"Muli",normal;--branding-font:"Baumans",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .chatbox{text-align:left;margin:0 var(--chat-gutter)}@media screen and (max-height:450px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}.conversejs .chatbox converse-controlbox-navback{display:none}.conversejs .chatbox .flyout{position:absolute}@media screen and (max-height:450px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-height:450px){.conversejs .chatbox .flyout{bottom:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{bottom:0}}.conversejs .chatbox .chatbox-btn{border-radius:25%;border:none;cursor:pointer;font-size:var(--chatbox-button-size);margin:0 .2em;padding:0 0 0 .5em;text-decoration:none}.conversejs .chatbox .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .box-flyout{display:flex;flex-direction:column;justify-content:space-between;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);z-index:2;overflow:hidden;width:100%}@media screen and (max-height:450px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatbox .chat-title{display:var(--heading-display);font-family:var(--heading-font);color:var(--heading-color);display:block;line-height:var(--line-height-large);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs .chatbox .chat-title.groupchat{padding-right:var(--chatroom-head-title-padding-right)}.conversejs .chatbox .chat-title a{color:var(--chat-head-text-color);width:100%}.conversejs .chatbox .chat-body{display:flex;flex-direction:column;justify-content:space-between;background-color:var(--chat-textarea-background-color);border-bottom-left-radius:var(--chatbox-border-radius);border-bottom-right-radius:var(--chatbox-border-radius);border-top:0}@media screen and (max-height:450px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}.conversejs .chatbox .chat-body p{color:var(--text-color);font-size:var(--message-font-size);margin:0;padding:5px}.conversejs .chatbox .new-msgs-indicator{position:relative;width:100%;cursor:pointer;background-color:var(--chat-head-color);color:var(--light-background-color);padding:.5em;font-size:.9em;text-align:center;z-index:20;white-space:nowrap;margin-bottom:.25em}.conversejs .chatbox .chat-content{background-color:var(--chat-content-background-color);border:0;color:var(--text-color);font-size:var(--message-font-size);height:100%;line-height:1.3em;overflow:hidden;padding:0;display:flex;flex-direction:column;justify-content:space-between}.conversejs .chatbox .chat-content converse-chat-message .spinner{width:100%;overflow-y:hidden}.conversejs .chatbox .chat-content .chat-content__help{max-height:100%}.conversejs .chatbox .chat-content .chat-content__help converse-chat-help{border-top:1px solid var(--chat-head-color);display:block;height:100%;overflow-y:auto;padding:.5em 0}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help{float:right;padding-right:1em;cursor:pointer;color:var(--chat-content-background-color)}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help svg{fill:var(--chat-head-color)}.conversejs .chatbox .chat-content .chat-content__messages{overflow-x:hidden;overflow-y:auto;height:100%}.conversejs .chatbox .chat-content .chat-content__notifications{height:1.7em;white-space:pre;background-color:var(--chat-content-background-color);color:var(--subdued-color);font-size:90%;font-style:italic;line-height:var(--line-height-small);padding:0 1em .3em}.conversejs .chatbox .chat-content .chat-content__notifications:before{content:" "}.conversejs .chatbox .chat-content progress{margin:.5em 0;width:100%}.conversejs .chatbox .dropdown{background-color:var(--light-background-color)}.conversejs .chatbox .dropdown dd{margin:0;padding:0;position:relative}.conversejs .chatbox .dragresize{background:0 0;border:0;margin:0;position:absolute;top:0;z-index:20}.conversejs .chatbox .dragresize-top{cursor:n-resize;height:5px;width:100%}.conversejs .chatbox .dragresize-left,.conversejs .chatbox .dragresize-occupants-left{cursor:w-resize;width:5px;height:100%;left:0}.conversejs .chatbox .dragresize-topleft{cursor:nw-resize;width:15px;height:15px;top:0;left:0}converse-muc-config-form{width:100%;overflow:auto}.conversejs .chatroom .box-flyout .muc-form-container{background-color:#fff;border:0;color:var(--text-color);font-size:var(--font-size);height:100%;width:100%;overflow-y:auto}.conversejs .chatroom .box-flyout .muc-form-container .validation-message{font-size:90%;color:var(--error-color)}.conversejs .chatroom .box-flyout .muc-form-container input[type=button],.conversejs .chatroom .box-flyout .muc-form-container input[type=submit]{margin:0 .5em}.conversejs .chatroom .box-flyout .muc-form-container .button-primary{background-color:var(--chatroom-head-button-color)}.conversejs .chatroom .box-flyout .chatroom-form{display:flex;flex-direction:column;justify-content:center;padding:2em}.conversejs .chatroom{width:var(--chatroom-width)}@media screen and (max-height:450px){.conversejs .chatroom{width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatroom{width:var(--mobile-chat-width)}}.conversejs .chatroom .box-flyout{background-color:var(--chatroom-head-bg-color);overflow-y:hidden;width:var(--chatroom-width)}@media screen and (max-height:450px){.conversejs .chatroom .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatroom .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatroom .box-flyout .empty-history-feedback{position:relative}.conversejs .chatroom .box-flyout .empty-history-feedback span{width:100%;text-align:center;position:absolute;margin-top:50%}.conversejs .chatroom .box-flyout .chatroom-body{flex-direction:row;flex-flow:nowrap;background-color:#fff;border-top:0;height:100%;width:100%;overflow:hidden}.conversejs .chatroom .box-flyout .chatroom-body converse-muc-chatarea{width:100%;display:flex;flex-direction:row;flex-flow:nowrap}.conversejs .chatroom .box-flyout .chatroom-body .row{flex-direction:row}.conversejs .chatroom .box-flyout .chatroom-body .chat-topic{font-weight:700;color:var(--chatroom-head-bg-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-info{color:var(--chat-info-color);line-height:normal}.conversejs .chatroom .box-flyout .chatroom-body .chat-info.badge{color:var(--chat-head-text-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-info.chat-msg--retracted{color:var(--subdued-color)}.conversejs .chatroom .box-flyout .chatroom-body .disconnect-container{margin:1em;width:100%}.conversejs .chatroom .box-flyout .chatroom-body .disconnect-container h3.disconnect-msg{padding-bottom:1em}.conversejs .chatroom .box-flyout .chatroom-body .chat-area{display:flex;flex-direction:column;flex:0 1 100%;justify-content:flex-end;min-width:25%;word-wrap:break-word}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .new-msgs-indicator{background-color:var(--chatroom-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content{height:100%}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content__help converse-chat-help{border-top:1px solid var(--chatroom-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content__help .close-chat-help svg{fill:var(--chatroom-color)}.conversejs .chatroom .room-invite .invited-contact{margin:-1px 0 0 -1px;width:100%;border:1px solid #999}#muc-details-modal .features-list{margin-left:1em}#muc-details-modal .chatroom-features{width:100%}#muc-details-modal .chatroom-features .features-list{padding-top:0}#muc-details-modal .chatroom-features .features-list .feature{width:100%;margin-right:.5em;padding-right:0;font-size:1em;cursor:help}#muc-details-modal .chatroom-features .features-list .feature .fa{margin-right:.5em;color:var(--text-color)}converse-muc-destroyed,converse-muc-disconnected{padding:2em;width:100%;height:100%}.conversejs .badge--muc,.conversejs.converse-embedded .badge--muc{background-color:var(--groupchats-header-color)}.conversejs .add-chatroom input[type=button],.conversejs .add-chatroom input[type=submit],.conversejs.converse-embedded .add-chatroom input[type=button],.conversejs.converse-embedded .add-chatroom input[type=submit]{margin:.3em 0}.conversejs converse-chats.converse-overlayed .chatbox.chatroom{min-width:var(--chatroom-width)!important;width:var(--chatroom-width)}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .box-flyout{min-width:var(--chatroom-width)!important;width:var(--chatroom-width)}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatbox-title__text{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatbox-title__buttons{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chat-head__desc{font-size:80%;margin-bottom:1em}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants .occupants-heading{padding:0}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants .occupant-list{border-bottom:none}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants ul .occupant .occupant-nick-badge .occupant-badges{display:none}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants ul .occupant .occupant-status{margin-top:6px}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .chat-area{min-width:var(--overlayed-chat-width)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout,.conversejs converse-chats.converse-mobile .chatroom .box-flyout{width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator{max-width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants{padding:var(--occupants-padding)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants .occupants-heading,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants .occupants-heading,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants .occupants-heading{font-size:var(--font-size-large)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li{font-size:var(--font-size-small)}.conversejs converse-chats.converse-embedded .chatroom .room-invite span .invited-contact,.conversejs converse-chats.converse-fullscreen .chatroom .room-invite span .invited-contact,.conversejs converse-chats.converse-mobile .chatroom .room-invite span .invited-contact{margin:0 0 .5em -1px}.conversejs converse-chats.converse-embedded .chatroom{margin:0;width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .occupants-heading{font-size:120%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chat-content .chat-message{margin:.5em;font-size:120%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .sendXMPPMessage .chat-textarea{padding:.5em;font-size:110%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body{height:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .muc-form-container{height:100%;position:relative}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .occupants .occupant-list{padding-left:.3em} .conversejs #converse-roster{text-align:left;width:100%;position:relative;margin:0;height:var(--roster-height);padding:0;overflow:hidden;height:calc(100% - 70px)}.conversejs #converse-roster #online-count{display:none}.conversejs #converse-roster .search-xmpp ul li.chat-info{padding-left:10px}.conversejs #converse-roster .roster-filter-form{width:100%}.conversejs #converse-roster .roster-filter-form .button-group{padding:.2em}.conversejs #converse-roster .roster-filter-form span{padding:.3em;cursor:pointer;min-width:25px;text-align:center}.conversejs #converse-roster .roster-filter-form .roster-filter{width:100%;margin:.2em;font-size:calc(var(--font-size) - 2px)}.conversejs #converse-roster .roster-filter-form .state-type{font-size:calc(var(--font-size) - 2px);width:100%}.conversejs #converse-roster .roster-contacts{padding:0;margin:0 0 .2em 0;height:100%;overflow-x:hidden;overflow-y:auto;color:var(--text-color)}.conversejs #converse-roster .roster-contacts converse-roster-contact{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;justify-content:space-between}.conversejs #converse-roster .roster-contacts .group-toggle{font-family:var(--heading-font);display:block;width:100%;margin:.75em 0 .25em 0}.conversejs #converse-roster .roster-contacts .group-toggle,.conversejs #converse-roster .roster-contacts .group-toggle .fa{color:var(--chat-head-color-dark)!important}.conversejs #converse-roster .roster-contacts .group-toggle .fa:hover,.conversejs #converse-roster .roster-contacts .group-toggle:hover{color:var(--chat-head-color-darker)!important}.conversejs #converse-roster .roster-contacts .current-xmpp-contact{margin:.25em 0}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status{vertical-align:middle;font-size:.6em;margin-right:0;margin-left:-.7em;margin-bottom:-1.5em;border-radius:50%;border:2px solid var(--occupants-background-color)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--offline{margin-right:.8em}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--online{color:var(--chat-status-online)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--busy{color:var(--chat-status-busy)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--away{color:var(--chat-status-away)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--offline{display:none}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .fa-times-circle,.conversejs #converse-roster .roster-contacts .current-xmpp-contact .far.fa-circle{color:var(--subdued-color)}.conversejs #converse-roster .roster-contacts li.requesting-xmpp-contact a{line-height:var(--line-height)}.conversejs #converse-roster .roster-contacts li.requesting-xmpp-contact .req-contact-name{padding:0 .2em 0 0}.conversejs #converse-roster .roster-contacts li .open-chat{margin:0;padding:0}.conversejs #converse-roster .roster-contacts li .open-chat.unread-msgs{font-weight:700}.conversejs #converse-roster .roster-contacts li .open-chat.unread-msgs .contact-name{width:70%}.conversejs #converse-roster .roster-contacts li .open-chat .msgs-indicator{color:#fff;background-color:var(--chat-head-color);opacity:1;border-radius:10%;padding:.2em .4em;font-size:var(--font-size-small);margin-right:0}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name{padding:0;margin:0;max-width:85%;float:none;height:100%}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name.unread-msgs{max-width:60%}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name.contact-name--offline{margin-left:.25em}.conversejs #converse-roster .roster-contacts li.odd{background-color:#dceac5}.conversejs #converse-roster .roster-contacts li a,.conversejs #converse-roster .roster-contacts li span{white-space:nowrap;text-overflow:ellipsis}.conversejs #converse-roster .roster-contacts li .span{display:inline-block}.conversejs #converse-roster .roster-contacts li .decline-xmpp-request{margin-left:5px}.conversejs #converse-roster .roster-contacts li:hover{background-color:var(controlbox-pane-bg-hover-color)}.conversejs #converse-roster span.pending-contact-name{line-height:var(--line-height);width:100%} /*# sourceMappingURL=converse.css.map*/ \ No newline at end of file diff --git a/dist/converse.css.map b/dist/converse.css.map index 201fc13..1408654 100644 --- a/dist/converse.css.map +++ b/dist/converse.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://converse.js/index.scss","webpack://converse.js/bookmarks.scss","webpack://converse.js/chats.scss","webpack://converse.js/_modal.scss","webpack://converse.js/unfurl.scss","webpack://converse.js/chat-content.scss","webpack://converse.js/emoji.scss","webpack://converse.js/toolbar.scss","webpack://converse.js/chat-head.scss","webpack://converse.js/chat-bottom-panel.scss","webpack://converse.js/_controlbox.scss","webpack://converse.js/fullscreen.scss","webpack://converse.js/background.scss","webpack://converse.js/headlines.scss","webpack://converse.js/minimize.scss","webpack://converse.js/_autocomplete.scss","webpack://converse.js/muc-bottom-panel.scss","webpack://converse.js/muc-occupants.scss","webpack://converse.js/muc-head.scss","webpack://converse.js/roster.scss"],"names":[],"mappings":"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","file":"../dist/converse.css","sourcesContent":[".conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:\"Helvetica\",\"Arial\",sans-serif;--heading-font:\"Muli\",normal;--branding-font:\"Baumans\",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:\"Helvetica\",\"Arial\",sans-serif;--heading-font:\"Muli\",normal;--branding-font:\"Baumans\",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .chatbox{text-align:left;margin:0 var(--chat-gutter)}@media screen and (max-height:450px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}.conversejs .chatbox converse-controlbox-navback{display:none}.conversejs .chatbox .flyout{position:absolute}@media screen and (max-height:450px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-height:450px){.conversejs .chatbox .flyout{bottom:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{bottom:0}}.conversejs .chatbox .chatbox-btn{border-radius:25%;border:none;cursor:pointer;font-size:var(--chatbox-button-size);margin:0 .2em;padding:0 0 0 .5em;text-decoration:none}.conversejs .chatbox .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .box-flyout{display:flex;flex-direction:column;justify-content:space-between;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);z-index:2;overflow:hidden;width:100%}@media screen and (max-height:450px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatbox .chat-title{display:var(--heading-display);font-family:var(--heading-font);color:var(--heading-color);display:block;line-height:var(--line-height-large);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs .chatbox .chat-title.groupchat{padding-right:var(--chatroom-head-title-padding-right)}.conversejs .chatbox .chat-title a{color:var(--chat-head-text-color);width:100%}.conversejs .chatbox .chat-body{display:flex;flex-direction:column;justify-content:space-between;background-color:var(--chat-textarea-background-color);border-bottom-left-radius:var(--chatbox-border-radius);border-bottom-right-radius:var(--chatbox-border-radius);border-top:0}@media screen and (max-height:450px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}.conversejs .chatbox .chat-body p{color:var(--text-color);font-size:var(--message-font-size);margin:0;padding:5px}.conversejs .chatbox .new-msgs-indicator{position:relative;width:100%;cursor:pointer;background-color:var(--chat-head-color);color:var(--light-background-color);padding:.5em;font-size:.9em;text-align:center;z-index:20;white-space:nowrap;margin-bottom:.25em}.conversejs .chatbox .chat-content{background-color:var(--chat-content-background-color);border:0;color:var(--text-color);font-size:var(--message-font-size);height:100%;line-height:1.3em;overflow:hidden;padding:0;display:flex;flex-direction:column;justify-content:space-between}.conversejs .chatbox .chat-content converse-chat-message .spinner{width:100%;overflow-y:hidden}.conversejs .chatbox .chat-content .chat-content__help{max-height:100%}.conversejs .chatbox .chat-content .chat-content__help converse-chat-help{border-top:1px solid var(--chat-head-color);display:block;height:100%;overflow-y:auto;padding:.5em 0}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help{float:right;padding-right:1em;cursor:pointer;color:var(--chat-content-background-color)}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help svg{fill:var(--chat-head-color)}.conversejs .chatbox .chat-content .chat-content__messages{overflow-x:hidden;overflow-y:auto;height:100%}.conversejs .chatbox .chat-content .chat-content__notifications{height:1.7em;white-space:pre;background-color:var(--chat-content-background-color);color:var(--subdued-color);font-size:90%;font-style:italic;line-height:var(--line-height-small);padding:0 1em .3em}.conversejs .chatbox .chat-content .chat-content__notifications:before{content:\" \"}.conversejs .chatbox .chat-content video{width:100%}.conversejs .chatbox .chat-content progress{margin:.5em 0;width:100%}.conversejs .chatbox .dropdown{background-color:var(--light-background-color)}.conversejs .chatbox .dropdown dd{margin:0;padding:0;position:relative}.conversejs .chatbox .dragresize{background:0 0;border:0;margin:0;position:absolute;top:0;z-index:20}.conversejs .chatbox .dragresize-top{cursor:n-resize;height:5px;width:100%}.conversejs .chatbox .dragresize-left,.conversejs .chatbox .dragresize-occupants-left{cursor:w-resize;width:5px;height:100%;left:0}.conversejs .chatbox .dragresize-topleft{cursor:nw-resize;width:15px;height:15px;top:0;left:0}converse-muc-config-form{width:100%;overflow:auto}.conversejs .chatroom .box-flyout .muc-form-container{background-color:#fff;border:0;color:var(--text-color);font-size:var(--font-size);height:100%;width:100%;overflow-y:auto}.conversejs .chatroom .box-flyout .muc-form-container .validation-message{font-size:90%;color:var(--error-color)}.conversejs .chatroom .box-flyout .muc-form-container input[type=button],.conversejs .chatroom .box-flyout .muc-form-container input[type=submit]{margin:0 .5em}.conversejs .chatroom .box-flyout .muc-form-container .button-primary{background-color:var(--chatroom-head-button-color)}.conversejs .chatroom .box-flyout .chatroom-form{display:flex;flex-direction:column;justify-content:center;padding:2em}.conversejs .chatroom{width:var(--chatroom-width)}@media screen and (max-height:450px){.conversejs .chatroom{width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatroom{width:var(--mobile-chat-width)}}.conversejs .chatroom .box-flyout{background-color:var(--chatroom-head-bg-color);overflow-y:hidden;width:var(--chatroom-width)}@media screen and (max-height:450px){.conversejs .chatroom .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatroom .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatroom .box-flyout .empty-history-feedback{position:relative}.conversejs .chatroom .box-flyout .empty-history-feedback span{width:100%;text-align:center;position:absolute;margin-top:50%}.conversejs .chatroom .box-flyout .chatroom-body{flex-direction:row;flex-flow:nowrap;background-color:#fff;border-top:0;height:100%;width:100%;overflow:hidden}.conversejs .chatroom .box-flyout .chatroom-body converse-muc-chatarea{width:100%;display:flex;flex-direction:row;flex-flow:nowrap}.conversejs .chatroom .box-flyout .chatroom-body .row{flex-direction:row}.conversejs .chatroom .box-flyout .chatroom-body .chat-topic{font-weight:700;color:var(--chatroom-head-bg-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-info{color:var(--chat-info-color);line-height:normal}.conversejs .chatroom .box-flyout .chatroom-body .chat-info.badge{color:var(--chat-head-text-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-info.chat-msg--retracted{color:var(--subdued-color)}.conversejs .chatroom .box-flyout .chatroom-body .disconnect-container{margin:1em;width:100%}.conversejs .chatroom .box-flyout .chatroom-body .disconnect-container h3.disconnect-msg{padding-bottom:1em}.conversejs .chatroom .box-flyout .chatroom-body .chat-area{display:flex;flex-direction:column;flex:0 1 100%;justify-content:flex-end;min-width:25%;word-wrap:break-word}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .new-msgs-indicator{background-color:var(--chatroom-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content{height:100%}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content__help converse-chat-help{border-top:1px solid var(--chatroom-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content__help .close-chat-help svg{fill:var(--chatroom-color)}.conversejs .chatroom .room-invite .invited-contact{margin:-1px 0 0 -1px;width:100%;border:1px solid #999}#muc-details-modal .features-list{margin-left:1em}#muc-details-modal .chatroom-features{width:100%}#muc-details-modal .chatroom-features .features-list{padding-top:0}#muc-details-modal .chatroom-features .features-list .feature{width:100%;margin-right:.5em;padding-right:0;font-size:1em;cursor:help}#muc-details-modal .chatroom-features .features-list .feature .fa{margin-right:.5em;color:var(--text-color)}converse-muc-destroyed,converse-muc-disconnected{padding:2em;width:100%;height:100%}.conversejs .badge--muc,.conversejs.converse-embedded .badge--muc{background-color:var(--groupchats-header-color)}.conversejs .add-chatroom input[type=button],.conversejs .add-chatroom input[type=submit],.conversejs.converse-embedded .add-chatroom input[type=button],.conversejs.converse-embedded .add-chatroom input[type=submit]{margin:.3em 0}.conversejs converse-chats.converse-overlayed .chatbox.chatroom{min-width:var(--chatroom-width)!important;width:var(--chatroom-width)}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .box-flyout{min-width:var(--chatroom-width)!important;width:var(--chatroom-width)}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatbox-title__text{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatbox-title__buttons{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chat-head__desc{font-size:80%;margin-bottom:1em}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants .occupants-heading{padding:0}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants .occupant-list{border-bottom:none}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants ul .occupant .occupant-nick-badge .occupant-badges{display:none}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants ul .occupant .occupant-status{margin-top:6px}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .chat-area{min-width:var(--overlayed-chat-width)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout,.conversejs converse-chats.converse-mobile .chatroom .box-flyout{width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator{max-width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants{padding:var(--occupants-padding)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants .occupants-heading,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants .occupants-heading,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants .occupants-heading{font-size:var(--font-size-large)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li{font-size:var(--font-size-small)}.conversejs converse-chats.converse-embedded .chatroom .room-invite span .invited-contact,.conversejs converse-chats.converse-fullscreen .chatroom .room-invite span .invited-contact,.conversejs converse-chats.converse-mobile .chatroom .room-invite span .invited-contact{margin:0 0 .5em -1px}.conversejs converse-chats.converse-embedded .chatroom{margin:0;width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .occupants-heading{font-size:120%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chat-content .chat-message{margin:.5em;font-size:120%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .sendXMPPMessage .chat-textarea{padding:.5em;font-size:110%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body{height:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .muc-form-container{height:100%;position:relative}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .occupants .occupant-list{padding-left:.3em}",".conversejs #controlbox .bookmarks-toggle,.conversejs #controlbox .bookmarks-toggle .fa{color:var(--groupchats-header-color)!important}.conversejs #controlbox .bookmarks-toggle .fa:hover,.conversejs #controlbox .bookmarks-toggle:hover{color:var(--chatroom-head-bg-color-dark)!important}.conversejs.fullscreen #controlbox #chatrooms .bookmarks-list dl.rooms-list.bookmarks dd.available-chatroom a.open-room{width:80%}",".conversejs converse-chats.converse-chatboxes{z-index:1031;position:fixed;bottom:0;right:0}.conversejs converse-chats.converse-overlayed{height:3em}.conversejs converse-chats.converse-overlayed>.row{flex-direction:row-reverse}.conversejs converse-chats.converse-fullscreen,.conversejs converse-chats.converse-mobile{flex-wrap:nowrap;width:100vw}.conversejs converse-chats.converse-embedded{box-sizing:border-box;bottom:auto;height:100%;position:relative;right:auto;width:100%}.conversejs converse-chats.converse-embedded *,.conversejs converse-chats.converse-embedded :after,.conversejs converse-chats.converse-embedded :before{box-sizing:border-box}.conversejs converse-chats.converse-embedded.converse-chatboxes{z-index:1031;position:inherit;flex-wrap:nowrap;bottom:auto;height:100%;width:100%;margin-left:-15px}",".conversejs .modal-open{overflow:hidden}.conversejs .modal-open .modal{overflow-x:hidden;overflow-y:auto}.conversejs .modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.conversejs .modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .conversejs .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media(prefers-reduced-motion:reduce){.modal.fade .conversejs .modal-dialog{transition:none}}.modal.show .conversejs .modal-dialog{transform:none}.modal.modal-static .conversejs .modal-dialog{transform:scale(1.02)}.conversejs .modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.conversejs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.conversejs .modal-dialog-scrollable .modal-footer,.conversejs .modal-dialog-scrollable .modal-header{flex-shrink:0}.conversejs .modal-dialog-scrollable .modal-body{overflow-y:auto}.conversejs .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.conversejs .modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:\"\"}.conversejs .modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.conversejs .modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.conversejs .modal-dialog-centered.modal-dialog-scrollable::before{content:none}.conversejs .modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.conversejs .modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.conversejs .modal-backdrop.fade{opacity:0}.conversejs .modal-backdrop.show{opacity:.5}.conversejs .modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.conversejs .modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.conversejs .modal-title{margin-bottom:0;line-height:1.5}.conversejs .modal-body{position:relative;flex:1 1 auto;padding:1rem}.conversejs .modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.conversejs .modal-footer>*{margin:.25rem}.conversejs .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:576px){.conversejs .modal-dialog{max-width:500px;margin:1.75rem auto}.conversejs .modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.conversejs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.conversejs .modal-dialog-centered{min-height:calc(100% - 3.5rem)}.conversejs .modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.conversejs .modal-sm{max-width:300px}}@media(min-width:992px){.conversejs .modal-lg,.conversejs .modal-xl{max-width:800px}}@media(min-width:1200px){.conversejs .modal-xl{max-width:1140px}}.conversejs #converse-modals .modal{background-color:rgba(0,0,0,.4)}.conversejs #converse-modals .modal .modal-body{overflow-y:auto;max-height:75vh;margin-bottom:2em}.conversejs #converse-modals .modal .modal-body p{padding:.25rem 0}.conversejs #converse-modals .modal .modal-body .confirm .form-group p:first-child{font-size:110%;font-weight:700}.conversejs #converse-modals .modal .modal-body.fit-content{box-sizing:content-box}.conversejs #converse-modals .modal .modal-body.fit-content img{max-width:90vw}.conversejs #converse-modals .modal .modal-body--image .chat-image{max-height:99%;max-width:100%}.conversejs #converse-modals .modal .modal-footer{justify-content:flex-start}.conversejs #converse-modals .modal .roomid-policy-error{color:var(--error-color);font-size:var(--font-size-small);float:right}.conversejs #converse-modals .scrollable-container{max-height:45vh;overflow-y:auto}.conversejs #converse-modals .affiliation-form,.conversejs #converse-modals .role-form{padding:2em 0 1em 0}.conversejs #converse-modals .set-xmpp-status{margin:1em}.conversejs #converse-modals .set-xmpp-status .custom-control-label{padding-top:.25em}.conversejs #converse-modals #omemo-tabpanel{margin-top:1em}.conversejs #converse-modals .btn{font-weight:400}.conversejs #converse-modals #user-profile-modal .profile-form label{font-weight:700}.conversejs #converse-modals #user-profile-modal .fingerprint-removal label{display:flex;padding:.75rem 1.25rem}.conversejs #converse-modals #user-profile-modal .list-group-item{display:flex;justify-content:left;font-size:95%}.conversejs #converse-modals #user-profile-modal .list-group-item input[type=checkbox]{margin-right:1em}.conversejs #converse-modals .fingerprints{width:100%;margin-bottom:1em}.conversejs #converse-modals .fingerprint-trust{display:flex;justify-content:space-between;font-size:95%}.conversejs #converse-modals .fingerprint-trust .fingerprint{margin-left:1em}",".conversejs .card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.conversejs .card>hr{margin-right:0;margin-left:0}.conversejs .card>.list-group{border-top:inherit;border-bottom:inherit}.conversejs .card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.conversejs .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.conversejs .card>.card-header+.list-group,.conversejs .card>.list-group+.card-footer{border-top:0}.conversejs .card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.conversejs .card-title{margin-bottom:.75rem}.conversejs .card-subtitle{margin-top:-.375rem;margin-bottom:0}.conversejs .card-text:last-child{margin-bottom:0}.conversejs .card-link:hover{text-decoration:none}.conversejs .card-link+.card-link{margin-left:1.25rem}.conversejs .card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.conversejs .card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.conversejs .card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.conversejs .card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.conversejs .card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.conversejs .card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.conversejs .card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.conversejs .card-img,.conversejs .card-img-bottom,.conversejs .card-img-top{flex-shrink:0;width:100%}.conversejs .card-img,.conversejs .card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.conversejs .card-img,.conversejs .card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.conversejs .card-deck .card{margin-bottom:15px}@media(min-width:576px){.conversejs .card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.conversejs .card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.conversejs .card-group>.card{margin-bottom:15px}@media(min-width:576px){.conversejs .card-group{display:flex;flex-flow:row wrap}.conversejs .card-group>.card{flex:1 0 0%;margin-bottom:0}.conversejs .card-group>.card+.card{margin-left:0;border-left:0}.conversejs .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .card-group>.card:not(:last-child) .card-header,.conversejs .card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.conversejs .card-group>.card:not(:last-child) .card-footer,.conversejs .card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.conversejs .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .card-group>.card:not(:first-child) .card-header,.conversejs .card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.conversejs .card-group>.card:not(:first-child) .card-footer,.conversejs .card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.conversejs .card-columns .card{margin-bottom:.75rem}@media(min-width:576px){.conversejs .card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.conversejs .card-columns .card{display:inline-block;width:100%}}.conversejs .accordion{overflow-anchor:none}.conversejs .accordion>.card{overflow:hidden}.conversejs .accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.conversejs .accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.conversejs .accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.conversejs .message .card--unfurl{margin:1em 0}@media(max-width:767.98px){.conversejs .message .card--unfurl{max-width:95%}}@media(min-width:768px){.conversejs .message .card--unfurl{max-width:75%}}@media(min-width:992px){.conversejs .message .card--unfurl{max-width:66%}}@media(min-width:1200px){.conversejs .message .card--unfurl{max-width:50%}}","converse-chat-content{display:flex;flex-direction:column-reverse;height:100%;justify-content:space-between;overflow:auto}",".conversejs .media{display:flex;align-items:flex-start}.conversejs .media-body{flex:1}.conversejs .chatbox img.emoji{height:1.2em;width:1.2em;margin:0 .05em 0 .1em;vertical-align:-.1em}.conversejs .chatbox .sendXMPPMessage .toggle-smiley a.toggle-smiley{padding:0}.conversejs .chatbox converse-emoji-dropdown{display:inline-block}.conversejs .chatbox converse-emoji-dropdown .dropdown-menu{padding:0}.conversejs .chatbox converse-emoji-picker{width:100%;padding-top:0;padding-bottom:0;background-color:var(--chat-head-color);overflow-y:hidden;background:#fff}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists{height:8em;overflow-y:auto;display:flex;flex-direction:column}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-category__heading{clear:both;color:var(--subdued-color);cursor:auto;display:block;font-size:var(--font-size);margin:0;padding:.75em 0 0 .5em}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-lists__container{overflow-x:hidden}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-picker li{float:left}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker{display:flex;padding:.5em 0;background-color:var(--chat-head-color);width:100%;font-size:var(--font-size)}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker label{margin:0;padding:0 .5em;white-space:nowrap;font-size:var(--font-size-small);color:var(--heading-color)}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker ul{display:flex;flex-direction:row;flex-wrap:wrap}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker ul li{padding:0 .25em}.conversejs .chatbox converse-emoji-picker .emoji-picker{background-color:#fff;padding:.5em 0 0 .5em}.conversejs .chatbox converse-emoji-picker .emoji-picker:last-child{padding-bottom:.5em}.conversejs .chatbox converse-emoji-picker .emoji-picker li{display:inline-block;height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden;margin-left:0;list-style:none;position:relative}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji{padding:0 .2em;height:auto;width:auto;margin:0;display:block;text-align:center}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji.selected a{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji img{margin:0 auto;height:var(--font-size-huge);width:var(--font-size-huge);display:inline-block;vertical-align:baseline}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a{padding:3px;display:inline-block;font-size:var(--font-size-huge);line-height:calc(var(--font-size-huge) * 1.5);height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a:hover{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header{width:100%;display:flex;flex-direction:column;padding:.1em 0;background-color:var(--chat-head-color)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header .emoji-search{width:auto;margin:.25em;height:2em;font-size:var(--font-size-small)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul{display:flex;flex-direction:row;flex-wrap:wrap}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category{padding:.25em 0;font-size:var(--font-size-huge)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{background-color:#fff;border:1px var(--chat-head-color) solid;border-bottom:none}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.selected a,.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category:hover a{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category a{padding:.25em;display:inline-block}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category img{height:var(--font-size-huge);width:var(--font-size-huge)}.conversejs .chatroom converse-emoji-picker{background-color:var(--chatroom-head-bg-color);background:#fff}.conversejs .chatroom converse-emoji-picker .emoji-skintone-picker{background-color:var(--chatroom-head-bg-color)}.conversejs .chatroom converse-emoji-picker .emoji-picker__header{background-color:var(--chatroom-head-bg-color)}.conversejs .chatroom converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{border:1px var(--chatroom-head-bg-color) solid;border-bottom:none}.conversejs converse-chats.converse-overlayed converse-emoji-dropdown .dropdown-menu{min-width:18em}.conversejs converse-chats.converse-overlayed .chatbox .emoji-picker__header .emoji-category img{height:var(--font-size)!important;width:var(--font-size)!important}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker .insert-emoji a{font-size:var(--font-size);line-height:calc(var(--font-size) * 1.5);padding:0;height:calc(var(--font-size) * 1.5);width:calc(var(--font-size) * 1.5)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker .insert-emoji img{height:var(--font-size);width:var(--font-size)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-skintone-picker{font-size:var(--font-size-small)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker__header .emoji-category{font-size:var(--font-size-small)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker__lists{height:7em}.conversejs converse-chats.converse-embedded converse-emoji-dropdown .dropdown-menu{min-width:20em}.conversejs converse-chats.converse-fullscreen converse-emoji-dropdown .dropdown-menu{min-width:22em}.conversejs converse-chats.converse-fullscreen .chatbox converse-emoji-picker .emoji-picker__lists{height:12em}.conversejs .chatbox converse-emoji-picker{max-width:40em}",".conversejs .send-button{border-radius:0;bottom:var(--send-button-bottom);color:var(--inverse-link-color)}.conversejs .chatbox .send-button{background-color:var(--chat-head-color)}.conversejs .chatroom .send-button{background-color:var(--muc-toolbar-btn-color)}.conversejs .chat-toolbar .toolbar-buttons{width:100%}.conversejs .chat-toolbar .toolbar-buttons .message-limit{padding:.5em;font-weight:700}.conversejs .chat-toolbar .toolbar-buttons *{float:left}.conversejs .chat-toolbar .toolbar-buttons .right{float:right}.conversejs .chat-toolbar .unverified,.conversejs .chat-toolbar .unverified a{color:#cf5300}.conversejs .chat-toolbar .private,.conversejs .chat-toolbar .private a{color:#4b7003}.conversejs .chat-toolbar li{cursor:pointer;display:inline-block;list-style:none;padding:0 .5em}.conversejs .chat-toolbar li:hover{cursor:pointer}.conversejs .chat-toolbar li .toolbar-menu{background-color:#fff;bottom:1.7rem;box-shadow:-1px -1px 2px 0 rgba(0,0,0,.4);height:auto;margin-bottom:0;min-width:21rem;position:absolute;right:0;top:auto;z-index:1000}.conversejs .chat-toolbar li .toolbar-menu.otr-menu{left:-6em;min-width:15rem}.conversejs .chat-toolbar li .toolbar-menu.otr-menu.show{display:flex;flex-direction:column}.conversejs .chat-toolbar li .toolbar-menu a{color:var(--link-color)}.conversejs .chat-toolbar li.toggle-otr ul{z-index:99}.conversejs .chat-toolbar li.toggle-otr ul li{display:block;padding:7px}.conversejs .chat-toolbar li.toggle-otr ul li:hover{background-color:var(--highlight-color)}.conversejs .chat-toolbar li.toggle-otr ul li a{display:block}.conversejs converse-chat-toolbar{background-color:#fff;box-sizing:border-box;display:flex;justify-content:space-between;margin:0;width:100%}.conversejs converse-chat-toolbar .fa,.conversejs converse-chat-toolbar .fa:hover,.conversejs converse-chat-toolbar .far,.conversejs converse-chat-toolbar .far:hover,.conversejs converse-chat-toolbar .fas,.conversejs converse-chat-toolbar .fas:hover{color:var(--chat-head-color);font-size:var(--font-size-large)}.conversejs converse-chat-toolbar .fa svg,.conversejs converse-chat-toolbar .fa:hover svg,.conversejs converse-chat-toolbar .far svg,.conversejs converse-chat-toolbar .far:hover svg,.conversejs converse-chat-toolbar .fas svg,.conversejs converse-chat-toolbar .fas:hover svg{fill:var(--chat-head-color)}.conversejs converse-chat-toolbar .unencrypted,.conversejs converse-chat-toolbar .unencrypted a{color:var(--text-color)}.conversejs converse-chat-toolbar .unencrypted .toolbar-menu a,.conversejs converse-chat-toolbar .unencrypted a .toolbar-menu a{color:var(--link-color)}.conversejs converse-chat-toolbar button{margin-top:.4em;border:1px transparent solid;background-color:transparent}.conversejs converse-chat-toolbar button.send-button{padding-top:.2em;padding-bottom:.2em;margin:0;margin-top:-1px}.conversejs .chatbox converse-chat-toolbar{border-top:var(--chatbox-message-input-border-top);color:var(--chat-toolbar-btn-color);background-color:#fff}.conversejs .chatbox converse-chat-toolbar .fa,.conversejs .chatbox converse-chat-toolbar .fa:hover,.conversejs .chatbox converse-chat-toolbar .far,.conversejs .chatbox converse-chat-toolbar .far:hover,.conversejs .chatbox converse-chat-toolbar .fas,.conversejs .chatbox converse-chat-toolbar .fas:hover{color:var(--chat-toolbar-btn-color)}.conversejs .chatbox converse-chat-toolbar button:focus{outline-color:var(--chat-toolbar-btn-color)!important}.conversejs .chatbox converse-chat-toolbar button:disabled .fa{color:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatbox converse-chat-toolbar button:disabled .fa:hover{color:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatbox converse-chat-toolbar button:disabled .fa svg,.conversejs .chatbox converse-chat-toolbar button:disabled .fa svg:hover{fill:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar{border-top:var(--chatroom-message-input-border-top);color:var(--muc-toolbar-btn-color)}.conversejs .chatroom converse-chat-toolbar .fa,.conversejs .chatroom converse-chat-toolbar .fa:hover,.conversejs .chatroom converse-chat-toolbar .far,.conversejs .chatroom converse-chat-toolbar .far:hover,.conversejs .chatroom converse-chat-toolbar .fas,.conversejs .chatroom converse-chat-toolbar .fas:hover{color:var(--muc-toolbar-btn-color);font-size:var(--font-size-large)}.conversejs .chatroom converse-chat-toolbar .fa svg,.conversejs .chatroom converse-chat-toolbar .fa:hover svg,.conversejs .chatroom converse-chat-toolbar .far svg,.conversejs .chatroom converse-chat-toolbar .far:hover svg,.conversejs .chatroom converse-chat-toolbar .fas svg,.conversejs .chatroom converse-chat-toolbar .fas:hover svg{fill:var(--muc-toolbar-btn-color)}.conversejs .chatroom converse-chat-toolbar button:focus{outline-color:var(--muc-toolbar-btn-color)!important}.conversejs .chatroom converse-chat-toolbar button:disabled .fa{color:var(--muc-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar button:disabled .fa:hover{color:var(--muc-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar button:disabled .fa svg,.conversejs .chatroom converse-chat-toolbar button:disabled .fa svg:hover{fill:var(--muc-toolbar-btn-disabled-color)}.conversejs converse-chats.converse-overlayed .chat-toolbar li .toolbar-menu{min-width:235px}.conversejs converse-chats.converse-overlayed .chatroom .chat-toolbar li .toolbar-menu{min-width:280px}",".conversejs .chatbox .chat-head{display:flex;flex-direction:row;color:#fff;font-size:100%;margin:0;padding:0;position:relative}.conversejs .chatbox .chat-head.chat-head-chatbox{background-color:var(--chat-head-color)}.conversejs .chatbox .chat-head .avatar{margin-right:.5em}.conversejs .chatbox .chat-head .show-msg-author-modal{color:#fff!important}.conversejs .chatbox .chat-head .chat-head__desc{color:var(--chat-head-color-lighten-50-percent);font-size:var(--font-size-small);margin:0;overflow:hidden;padding:.5rem 1rem .5rem 1rem;text-overflow:ellipsis;width:100%;max-height:5em}.conversejs .chatbox .chat-head .chatbox-title{padding:.75rem 1rem 0 1rem;display:flex;flex-direction:row;justify-content:space-between;width:100%}.conversejs .chatbox .chat-head .chatbox-title--no-desc{padding:.75rem 1rem}.conversejs .chatbox .chat-head .chatbox-title--row{display:flex;flex-direction:row;overflow:hidden}.conversejs .chatbox .chat-head .chatbox-title__text{overflow:hidden;text-overflow:ellipsis}.conversejs .chatbox .chat-head .chatbox-title__buttons{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;padding:0}.conversejs .chatbox .chat-head a.chatbox-btn.fa,.conversejs .chatbox .chat-head a.chatbox-btn.far,.conversejs .chatbox .chat-head a.chatbox-btn.fas,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fa,.conversejs .chatbox .chat-head a:hover.chatbox-btn.far,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fas,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fa,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.far,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fas,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fa,.conversejs .chatbox .chat-head a:visited.chatbox-btn.far,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fas{color:#fff}.conversejs .chatbox .chat-head a.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a.chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fas.button-on:before{padding:.2em;background-color:var(--chat-head-text-color);color:var(--chat-head-color)}.conversejs .chatbox .chat-head .chatbox-btn{color:#fff}.conversejs .chatbox .chat-head .chatbox-btn.fa,.conversejs .chatbox .chat-head .chatbox-btn.far,.conversejs .chatbox .chat-head .chatbox-btn.fas{color:#fff}.conversejs .chatbox .chat-head .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .chat-head .chatbox-btn.button-on:before{border-radius:5%;background-color:var(--chat-head-text-color);color:var(--chat-head-color)}",".conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:\"Helvetica\",\"Arial\",sans-serif;--heading-font:\"Muli\",normal;--branding-font:\"Baumans\",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .chatbox .bottom-panel .chat-content-sendbutton{height:calc(100% - (var(--chat-textarea-height) + var(--send-button-height) + 2 * var(--send-button-margin)))}.conversejs .chatbox .bottom-panel .sendXMPPMessage{-moz-background-clip:padding;-webkit-background-clip:padding-box;border-bottom-radius:var(--chatbox-border-radius);background-clip:padding-box;background-color:#fff;border:0;margin:0;padding:0}@media screen and (max-height:450px){.conversejs .chatbox .bottom-panel .sendXMPPMessage{width:100%}}@media screen and (max-width:480px){.conversejs .chatbox .bottom-panel .sendXMPPMessage{width:100%}}.conversejs .chatbox .bottom-panel .sendXMPPMessage .suggestion-box__results:after{display:none}.conversejs .chatbox .bottom-panel .sendXMPPMessage .spoiler-hint{width:100%}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea:active,.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea:focus,.conversejs .chatbox .bottom-panel .sendXMPPMessage input:active,.conversejs .chatbox .bottom-panel .sendXMPPMessage input:focus{outline-color:var(--chat-head-color)}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea.correcting,.conversejs .chatbox .bottom-panel .sendXMPPMessage input.correcting{background-color:var(--chat-correcting-color)}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea{color:var(--chat-textarea-color);background-color:var(--chat-textarea-background-color);border-top-left-radius:0;border-top-right-radius:0;border-bottom-radius:var(--chatbox-border-radius);padding-left:.5em;padding-right:4.5em;padding-top:.5em;padding-bottom:.5em;width:100%;border:none;min-height:var(--chat-textarea-height);margin-bottom:-4px;resize:none}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea.spoiler{height:42px}",".conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:\"Helvetica\",\"Arial\",sans-serif;--heading-font:\"Muli\",normal;--branding-font:\"Baumans\",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .oauth-providers{text-align:center}.conversejs .oauth-providers .oauth-provider{margin:1em 0}.conversejs .oauth-providers .oauth-provider .oauth-login{margin-left:0;color:var(--link-color);font-size:var(--font-size-large)}.conversejs .oauth-providers .oauth-provider .oauth-login:hover{color:var(--link-hover-color)}.conversejs .oauth-providers .oauth-provider .oauth-login i{color:var(--link-color);font-size:var(--font-size-huge);margin-right:.5em}.conversejs .set-xmpp-status .chat-status--online,.conversejs .xmpp-status .chat-status--online{color:var(--chat-status-online)}.conversejs .set-xmpp-status .chat-status--busy,.conversejs .xmpp-status .chat-status--busy{color:var(--chat-status-busy)}.conversejs .set-xmpp-status .chat-status--away,.conversejs .xmpp-status .chat-status--away{color:var(--chat-status-away)}.conversejs .set-xmpp-status .fa-times-circle,.conversejs .set-xmpp-status .far.fa-circle,.conversejs .xmpp-status .fa-times-circle,.conversejs .xmpp-status .far.fa-circle{color:var(--subdued-color)}.conversejs .set-xmpp-status .chat-status{padding-right:.5em}.conversejs .room-info{font-size:var(--font-size-small);font-style:normal;font-weight:400}.conversejs .room-info li.room-info{display:block;margin-left:5px}.conversejs .room-info p.room-info{line-height:var(--line-height);margin:0;display:block;white-space:normal}.conversejs div.room-info{padding:.3em 0;clear:left;width:100%}.conversejs #controlbox{order:-1;color:var(--controlbox-text-color);margin-right:calc(3 * var(--chat-gutter))}.conversejs #controlbox converse-brand-logo{width:100%;display:block}.conversejs #controlbox converse-brand-heading{width:100%;display:block}.conversejs #controlbox .brand-name-wrapper{font-size:200%}.conversejs #controlbox .brand-name-wrapper--fullscreen{font-size:100%}.conversejs #controlbox .open-rooms-toggle,.conversejs #controlbox .open-rooms-toggle .fa{color:var(--groupchats-header-color)!important}.conversejs #controlbox .open-rooms-toggle .fa:hover,.conversejs #controlbox .open-rooms-toggle:hover{color:var(--chatroom-head-bg-color-dark)!important}.conversejs #controlbox .box-flyout{background-color:var(--controlbox-pane-background-color)}.conversejs #controlbox.logged-out .box-flyout .controlbox-pane{overflow-y:auto}.conversejs #controlbox form.search-xmpp-contact{margin:0;padding-left:5px;padding:0 0 5px 5px}.conversejs #controlbox form.search-xmpp-contact input{width:8em}.conversejs #controlbox .msgs-indicator{margin-right:.5em}.conversejs #controlbox a.subscribe-to-user{padding-left:2em;font-weight:700}.conversejs #controlbox #converse-register{opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease;background-color:var(--controlbox-pane-background-color)}.conversejs #controlbox #converse-register .title{font-weight:700}.conversejs #controlbox #converse-register .info{color:green;font-size:90%;margin:1.5em 0}.conversejs #controlbox #converse-register .form-errors{color:var(--error-color);margin:1em 0}.conversejs #controlbox #converse-register .provider-title{font-size:var(--font-size-huge);margin:0}.conversejs #controlbox #converse-register .provider-score{width:178px;margin-bottom:8px}.conversejs #controlbox #converse-register .form-help .url{font-weight:700;color:var(--link-color)}.conversejs #controlbox #converse-register .input-group{display:table;margin:auto;width:100%}.conversejs #controlbox #converse-register .input-group span{overflow-x:hidden;text-overflow:ellipsis;max-width:110px}.conversejs #controlbox #converse-register .input-group input[name=username],.conversejs #controlbox #converse-register .input-group span{display:table-cell;text-align:left}.conversejs #controlbox #converse-register .instructions{color:gray;font-size:85%}.conversejs #controlbox #converse-register .instructions:hover{color:var(--controlbox-text-color)}.conversejs #controlbox .conn-feedback{color:var(--controlbox-head-color)}.conversejs #controlbox .conn-feedback.error{color:var(--error-color)}.conversejs #controlbox .conn-feedback p{padding-bottom:1em}.conversejs #controlbox .conn-feedback p.feedback-subject.error{font-weight:700}.conversejs #controlbox #converse-login-panel,.conversejs #controlbox #converse-register-panel{padding-top:0;padding-bottom:0}.conversejs #controlbox #converse-login-panel{flex-direction:row}.conversejs #controlbox .toggle-register-login{font-weight:700}.conversejs #controlbox .controlbox-pane .userinfo{padding-bottom:1em}.conversejs #controlbox .controlbox-pane .userinfo .username{margin-left:.5em;overflow:hidden;text-overflow:ellipsis}.conversejs #controlbox .controlbox-pane .userinfo .profile{margin-bottom:.75em}.conversejs #controlbox #chatrooms{padding:0}.conversejs #controlbox #chatrooms .add-chatroom{margin:0;padding:0}.conversejs #controlbox #chatrooms .add-chatroom input[type=button],.conversejs #controlbox #chatrooms .add-chatroom input[type=submit],.conversejs #controlbox #chatrooms .add-chatroom input[type=text]{width:100%}.conversejs #controlbox .controlbox-section .controlbox-heading{font-family:var(--heading-font);color:var(--controlbox-heading-color);font-weight:var(--controlbox-heading-font-weight);padding:0;font-size:1.1em;line-height:1.1em;text-transform:uppercase}.conversejs #controlbox .controlbox-section .controlbox-heading--groupchats{color:var(--groupchats-header-color)}.conversejs #controlbox .controlbox-section .controlbox-heading--contacts{color:var(--chat-head-color-dark)}.conversejs #controlbox .controlbox-section .controlbox-heading--headline{color:var(--headline-head-color)}.conversejs #controlbox .controlbox-section .controlbox-heading__btn{cursor:pointer;font-size:1em;padding:0;margin:var(--controlbox-heading-top-margin) 0 var(--inline-action-margin) 0;min-width:25px;text-align:center}.conversejs #controlbox .controlbox-section .controlbox-heading__btn.fa-vcard{margin-top:1em}.conversejs #controlbox .dropdown a{width:143px;display:inline-block}.conversejs #controlbox .dropdown li{list-style:none;padding-left:0}.conversejs #controlbox .dropdown dd ul{padding:0;list-style:none;position:absolute;left:0;top:0;width:100%;z-index:21;background-color:var(--light-background-color)}.conversejs #controlbox .dropdown dd ul li:hover{background-color:var(--highlight-color)}.conversejs #controlbox .dropdown dd.search-xmpp{height:0}.conversejs #controlbox .dropdown dd.search-xmpp .contact-form-container{position:absolute;z-index:22}.conversejs #controlbox .dropdown dd.search-xmpp .contact-form-container form{box-shadow:1px 4px 10px 1px rgba(0,0,0,.4);background-color:#fff}.conversejs #controlbox .dropdown dd.search-xmpp li:hover{background-color:var(--light-background-color)}.conversejs #controlbox .dropdown dt a span{cursor:pointer;display:block;padding:4px 7px 0 5px}.conversejs #controlbox .controlbox-panes{background-color:var(--controlbox-pane-background-color);border-right:.2143rem solid var(--panel-divider-color);height:100%;overflow-y:auto}.conversejs #controlbox .controlbox-subtitle{font-size:90%;padding:.5em;text-align:right}.conversejs #controlbox .controlbox-pane{background-color:var(--controlbox-pane-background-color);border:0;font-size:var(--font-size);left:0;text-align:left;overflow-x:hidden;padding:0 0 1em 0}.conversejs #controlbox .controlbox-pane .controlbox-padded{padding-left:1em;padding-right:1em;align-items:center;line-height:normal}.conversejs #controlbox .controlbox-pane .controlbox-padded .change-status{min-width:25px;text-align:center}.conversejs #controlbox .controlbox-pane .add-converse-contact{margin:0 0 .75em 0}.conversejs #controlbox .controlbox-pane .chatbox-btn{margin:0}.conversejs #controlbox .controlbox-pane .switch-form{text-align:center;padding:2em 0}.conversejs #controlbox .controlbox-pane dd{margin-left:0;margin-bottom:0}.conversejs #controlbox .controlbox-pane dd.odd{background-color:#dceac5}.conversejs #controlbox .add-xmpp-contact{padding:1em .5em}.conversejs #controlbox .add-xmpp-contact input{margin:0 0 1rem;width:100%}.conversejs #controlbox .add-xmpp-contact button{width:100%}.conversejs converse-chats.converse-overlayed{display:flex;flex-direction:row-reverse}.conversejs converse-chats.converse-overlayed .toggle-controlbox{order:-2;text-align:center;background-color:var(--link-color);border-top-left-radius:var(--button-border-radius);border-top-right-radius:var(--button-border-radius);color:#0a0a0a;float:right;height:100%;margin:0 var(--chat-gutter);padding:1em}.conversejs converse-chats.converse-overlayed .toggle-controlbox span{color:var(--inverse-link-color)}.conversejs converse-chats.converse-overlayed #controlbox{order:-1;min-width:var(--controlbox-width)!important;width:var(--controlbox-width)}.conversejs converse-chats.converse-overlayed #controlbox .box-flyout{min-width:var(--controlbox-width)!important;width:var(--controlbox-width)}.conversejs converse-chats.converse-overlayed #controlbox .login-trusted{white-space:nowrap;font-size:90%}.conversejs converse-chats.converse-overlayed #controlbox #converse-login-trusted{margin-top:.5em}.conversejs converse-chats.converse-overlayed #controlbox:not(.logged-out) .controlbox-head{height:15px}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;min-height:0}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head .brand-heading{color:var(--controlbox-text-color);font-size:2em}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head .chatbox-btn{color:var(--controlbox-head-color);margin:0}.conversejs converse-chats.converse-overlayed #controlbox #converse-login,.conversejs converse-chats.converse-overlayed #controlbox #converse-register{flex:0 0 100%;max-width:100%;padding-bottom:0}.conversejs converse-chats.converse-overlayed #controlbox #converse-register .button-cancel{font-size:90%}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-panes{border-radius:var(--chatbox-border-radius)}.conversejs converse-chats.converse-embedded .toggle-controlbox,.conversejs converse-chats.converse-fullscreen .toggle-controlbox{display:none}.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{position:relative;width:100%;padding-right:15px;padding-left:15px;margin:0}@media(min-width:768px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 25%;max-width:25%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 16.6666666667%;max-width:16.6666666667%}}.conversejs converse-chats.converse-embedded #controlbox.logged-out,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out,.conversejs converse-chats.converse-mobile #controlbox.logged-out{flex:0 0 100%;max-width:100%}.conversejs converse-chats.converse-embedded #controlbox .flyout,.conversejs converse-chats.converse-fullscreen #controlbox .flyout,.conversejs converse-chats.converse-mobile #controlbox .flyout{border-radius:0}.conversejs converse-chats.converse-embedded #controlbox #converse-login-panel,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login-panel,.conversejs converse-chats.converse-mobile #controlbox #converse-login-panel{border-radius:0}.conversejs converse-chats.converse-embedded #controlbox #converse-login-panel .converse-form,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login-panel .converse-form,.conversejs converse-chats.converse-mobile #controlbox #converse-login-panel .converse-form{padding:3em 2em 3em}.conversejs converse-chats.converse-embedded #controlbox .toggle-register-login,.conversejs converse-chats.converse-fullscreen #controlbox .toggle-register-login,.conversejs converse-chats.converse-mobile #controlbox .toggle-register-login{line-height:var(--line-height-huge)}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo{flex:0 0 100%;max-width:100%;margin-top:5em;margin-bottom:1em}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-heading{width:100%;font-size:500%;padding:.7em 0 0 0;opacity:.8;color:var(--brand-heading-color)}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-subtitle,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-subtitle,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-subtitle{font-size:90%;padding:.5em}@media screen and (max-width:480px){.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-heading{font-size:300%}}.conversejs converse-chats.converse-embedded #controlbox.logged-out,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out,.conversejs converse-chats.converse-mobile #controlbox.logged-out{flex:0 0 100%;max-width:100%;opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease;width:100%}.conversejs converse-chats.converse-embedded #controlbox.logged-out .box-flyout,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out .box-flyout,.conversejs converse-chats.converse-mobile #controlbox.logged-out .box-flyout{width:100%}.conversejs converse-chats.converse-embedded #controlbox .box-flyout,.conversejs converse-chats.converse-fullscreen #controlbox .box-flyout,.conversejs converse-chats.converse-mobile #controlbox .box-flyout{border:0;width:100%;z-index:1;background-color:var(--controlbox-head-color)}.conversejs converse-chats.converse-embedded #controlbox .box-flyout .controlbox-head,.conversejs converse-chats.converse-fullscreen #controlbox .box-flyout .controlbox-head,.conversejs converse-chats.converse-mobile #controlbox .box-flyout .controlbox-head{display:none}.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{position:relative;width:100%;padding-right:15px;padding-left:15px;flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}@media(min-width:576px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}}@media(min-width:768px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 50%;max-width:50%;margin-left:25%}}.conversejs converse-chats.converse-embedded #controlbox #converse-login .instructions,.conversejs converse-chats.converse-embedded #controlbox #converse-login .title,.conversejs converse-chats.converse-embedded #controlbox #converse-register .instructions,.conversejs converse-chats.converse-embedded #controlbox #converse-register .title,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login .instructions,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login .title,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register .instructions,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register .title,.conversejs converse-chats.converse-mobile #controlbox #converse-login .instructions,.conversejs converse-chats.converse-mobile #controlbox #converse-login .title,.conversejs converse-chats.converse-mobile #controlbox #converse-register .instructions,.conversejs converse-chats.converse-mobile #controlbox #converse-register .title{margin:1em 0}.conversejs converse-chats.converse-embedded #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-embedded #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-embedded #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-embedded #controlbox #converse-register input[type=submit],.conversejs converse-chats.converse-fullscreen #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-fullscreen #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-fullscreen #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-fullscreen #controlbox #converse-register input[type=submit],.conversejs converse-chats.converse-mobile #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-mobile #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-mobile #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-mobile #controlbox #converse-register input[type=submit]{width:auto}.conversejs converse-chats.converse-fullscreen #controlbox{margin-left:-15px}.conversejs converse-chats.converse-fullscreen .controlbox-panes{padding-top:2em}.conversejs converse-chats.converse-overlayed .brand-heading{padding-top:.8rem;padding-left:.8rem;width:100%}.conversejs converse-chats.converse-overlayed .converse-svg-logo{height:1em}.conversejs converse-chats.converse-overlayed #controlbox #converse-login-panel{height:100%}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-panes{margin-top:.5em}@media(max-width:767.98px){.conversejs{left:0;right:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.conversejs .converse-chatboxes{margin:0!important;flex-direction:row!important;justify-content:space-between}.conversejs .converse-chatboxes .converse-chatroom{font-size:14px}.conversejs .converse-chatboxes .chatbox .box-flyout{margin-left:15px;left:0;bottom:0;border-radius:0;width:100vw!important;height:var(--fullpage-chat-height)}.conversejs .converse-chatboxes #controlbox{width:100vw!important}.conversejs .converse-chatboxes #controlbox .box-flyout{width:100vw!important;height:var(--fullpage-chat-height);margin-right:-15px}.conversejs .converse-chatboxes #controlbox .sidebar{display:block}.conversejs .converse-chatboxes.sidebar-open .chatbox:not(#controlbox){display:none}.conversejs .converse-chatboxes.sidebar-open #controlbox .controlbox-pane{display:block}}","body.converse-fullscreen{margin:0;background-color:var(--global-background-color)}",".conversejs-bg .subdued{opacity:.35}.conversejs-bg .converse-brand{display:flex;justify-content:space-between;margin-top:15vh;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:5s;animation-duration:5s;-webkit-animation-timing-function:ease;animation-timing-function:ease}.conversejs-bg .converse-brand__padding{position:relative;width:100%;padding-right:15px;padding-left:15px;padding:0}@media(min-width:768px){.conversejs-bg .converse-brand__padding{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media(min-width:992px){.conversejs-bg .converse-brand__padding{flex:0 0 25%;max-width:25%}}@media(min-width:1200px){.conversejs-bg .converse-brand__padding{flex:0 0 16.6666666667%;max-width:16.6666666667%}}.conversejs-bg .converse-brand__heading{position:relative;width:100%;padding-right:15px;padding-left:15px;padding:0;display:flex;justify-content:center;margin:auto}@media(min-width:768px){.conversejs-bg .converse-brand__heading{font-size:4em;flex:0 0 66.6666666667%;max-width:66.6666666667%}}@media(min-width:992px){.conversejs-bg .converse-brand__heading{font-size:5em;flex:0 0 75%;max-width:75%}}@media(min-width:1200px){.conversejs-bg .converse-brand__heading{font-size:6em;flex:0 0 83.3333333333%;max-width:83.3333333333%}}.conversejs-bg .converse-brand__heading svg{margin-top:.3em}.conversejs-bg .converse-brand__text{color:#fff;font-family:var(--branding-font);font-weight:400;text-align:center;font-size:140%;margin-left:.2em}.conversejs-bg .converse-brand__text .byline{margin:0;font-family:var(--heading-font);font-size:.3em;opacity:.55;margin-bottom:2em;margin-left:-2.7em;word-spacing:5px}",".conversejs .chat-head-headline{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-head.chat-head-chatbox{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-body{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-body .chat-message{color:var(--headline-message-color)}.conversejs .chatbox.headlines .chat-content{height:100%}.conversejs .message.chat-msg.headline .chat-msg__body{margin-left:0}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .box-flyout{background-color:var(--headline-head-color)}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .chat-head.chat-head-chatbox{background-color:var(--headline-head-color)}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .flyout{border-color:var(--headline-head-color)}",".conversejs converse-chats.converse-overlayed converse-minimized-chats{order:100}.conversejs converse-chats.converse-overlayed #minimized-chats{width:var(--minimized-chats-width);margin-bottom:0;border-top-left-radius:var(--chatbox-border-radius);border-top-right-radius:var(--chatbox-border-radius);color:var(--inverse-link-color);margin-right:var(--chat-gutter);padding:0}.conversejs converse-chats.converse-overlayed #minimized-chats .badge{bottom:8px;border:1px solid var(--overlayed-badge-color)}.conversejs converse-chats.converse-overlayed #minimized-chats #toggle-minimized-chats{border-top-left-radius:var(--chatbox-border-radius);border-top-right-radius:var(--chatbox-border-radius);background-color:var(--link-color);padding:1em 0 0 0;text-align:center;color:#fff;white-space:nowrap;overflow-y:hidden;text-overflow:ellipsis;display:block;height:45px;width:9em}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat{cursor:pointer;padding:1px 0 1px 5px;color:var(--chat-head-text-color);line-height:15px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat:hover{text-decoration:none}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat:visited{color:var(--chat-head-text-color)}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout{flex-direction:column-reverse;bottom:45px;width:var(--minimized-chats-width)}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout .chat-head{min-height:0;padding:.3em;border-radius:var(--chatbox-border-radius);height:35px;margin-bottom:.2em;width:100%;max-width:9em;flex-wrap:nowrap}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout.minimized{height:auto}.conversejs converse-chats.converse-overlayed #minimized-chats .unread-message-count{font-weight:700;background-color:#fff;border:1px solid;text-shadow:1px 1px 0 var(--text-shadow-color);color:var(--warning-color);border-radius:5px;padding:2px 4px;font-size:16px;text-align:center;position:absolute;right:116px;bottom:10px}.conversejs converse-chats.converse-overlayed #minimized-chats .chat-head-message-count-hidden,.conversejs converse-chats.converse-overlayed #minimized-chats .unread-message-count-hidden{display:none}",".conversejs [hidden]{display:none}.conversejs .visually-hidden{position:absolute;clip:rect(0,0,0,0)}.conversejs .form-group .suggestion-box{width:100%}.conversejs .suggestion-box{position:relative}.conversejs .suggestion-box mark{background:var(--completion-light-color)}.conversejs .suggestion-box>input{display:block}.conversejs .suggestion-box .suggestion-box__results,.conversejs .suggestion-box>ul{border-radius:.3em;border:1px solid rgba(0,0,0,.3);box-shadow:.05em .2em .6em rgba(0,0,0,.1);box-sizing:border-box;left:0;list-style:none;margin:.2em 0 0;min-width:100%;padding:0;position:absolute;right:0;text-shadow:none;z-index:2}.conversejs .suggestion-box .suggestion-box__results:before,.conversejs .suggestion-box>ul:before{content:\"\";position:absolute;top:-.43em;left:1em;width:0;height:0;padding:.4em;background:#fff;border:inherit;border-right:0;border-bottom:0;transform:rotate(45deg);z-index:-1}.conversejs .suggestion-box .suggestion-box__results>li,.conversejs .suggestion-box>ul>li{background:rgba(255,255,255,.9);background:linear-gradient(to bottom right,#fff,rgba(255,255,255,.9));color:var(--text-color);cursor:pointer;display:flex;overflow-x:hidden;padding:1em;position:relative;text-overflow:ellipsis}.conversejs .suggestion-box .suggestion-box__results--below{top:2em}.conversejs .suggestion-box .suggestion-box__results--above{bottom:4.5em}.conversejs .suggestion-box .suggestion-box__results--above:before{display:none}.conversejs .suggestion-box .suggestion-box__results--above:after{z-index:-1;content:\"\";position:absolute;bottom:-.43em;left:1em;width:0;height:0;padding:.4em;background:#fff;border:inherit;border-left:0;border-top:0;transform:rotate(45deg)}.conversejs .suggestion-box>ul:empty,.conversejs .suggestion-box>ul[hidden]{display:none}@supports(transform:scale(0)){.conversejs .suggestion-box>ul{transition:.3s cubic-bezier(.4,.2,.5,1.4);transform-origin:1.43em -.43em}.conversejs .suggestion-box>ul:empty,.conversejs .suggestion-box>ul[hidden]{opacity:0;transform:scale(0);display:block;transition-timing-function:ease}}.conversejs .suggestion-box>ul>li[aria-selected=true]{background:var(--completion-dark-color);color:var(--inverse-link-color)}.conversejs .suggestion-box li:hover mark{background:var(--completion-light-color);color:var(--inverse-link-color)}.conversejs .suggestion-box li[aria-selected=true] mark{background:var(--completion-normal-color);color:inherit}.conversejs.converse-fullscreen .suggestion-box__results--above{bottom:4.5em}.conversejs.converse-overlayed .suggestion-box__results--above{bottom:3.5em}",".conversejs converse-muc.chatroom converse-muc-bottom-panel{display:contents;height:3em;padding:.5em;text-align:center;font-size:var(--font-size-small);background-color:var(--chatroom-head-bg-color);color:#fff}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--muted{height:4em;width:100%}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--nickname{padding:0;height:16em}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--nickname .muc-form-container .chatroom-form{padding-top:2em;padding-bottom:0}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .suggestion-box__results--above{bottom:4.5em}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea:active,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea:focus,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input:active,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input:focus{outline-color:var(--chatroom-head-bg-color)!important}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea.correcting,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input.correcting{background-color:var(--chatroom-correcting-color)}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea{width:100%;border:none;border-bottom-right-radius:0}",".conversejs converse-muc.chatroom .box-flyout .occupants{display:flex;flex-direction:column;justify-content:space-between;overflow-x:hidden;overflow-y:hidden;vertical-align:top;background-color:var(--occupants-background-color);border-left:var(--occupants-border-left);padding:.5em;max-width:75%;min-width:20%;flex:0 0 25%}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header{display:flex;flex-direction:column}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header .hide-occupants{align-self:flex-end;cursor:pointer;font-size:var(--font-size-small)}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header--title{margin-top:.5em;margin-bottom:.5em;display:flex;flex-direction:row}.conversejs converse-muc.chatroom .box-flyout .occupants .fa-user-plus{margin-right:.25em}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-heading{font-family:var(--heading-font);color:var(--groupchats-header-color-dark);padding-left:0;margin-right:1em}.conversejs converse-muc.chatroom .box-flyout .occupants .suggestion-box ul{padding:0}.conversejs converse-muc.chatroom .box-flyout .occupants .suggestion-box ul li{padding:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul{padding:0;margin-bottom:.5em;overflow-x:hidden;overflow-y:auto;list-style:none}.conversejs converse-muc.chatroom .box-flyout .occupants ul.occupant-list{overflow-y:auto;flex-basis:0;flex-grow:1}.conversejs converse-muc.chatroom .box-flyout .occupants ul li{cursor:default;display:block;font-size:var(--font-size-small);overflow:hidden;padding:.25em .25em .25em 0;text-overflow:ellipsis}.conversejs converse-muc.chatroom .box-flyout .occupants ul li .fa{margin-right:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.feature{font-size:var(--font-size-tiny)}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant{cursor:pointer}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge{display:flex;justify-content:space-between;flex-wrap:wrap}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge .occupant-badges{display:flex;justify-content:flex-end;flex-wrap:wrap;flex-direction:row}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge .occupant-badges span{margin-right:.25rem}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant div.row.no-gutters{flex-wrap:nowrap;min-height:1.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .badge{margin-bottom:.125rem}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status{display:inline-block;margin:0 .5em .125em 0;width:.5em;height:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-chat,.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-online{background-color:#1a9707}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-dnd{background-color:red}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-away{background-color:#ff8c00}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-xa{background-color:orange}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-offline{background-color:#a9a9a9}",".conversejs converse-muc.chatroom .chat-head-chatroom{color:var(--chatroom-head-color);background-color:var(--chatroom-head-bg-color);border-bottom:var(--chatroom-head-border-bottom)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc{color:var(--chatroom-head-color);display:var(--chatroom-head-description-display)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc a{color:var(--chatroom-head-description-link-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc:hover button{display:inline-block}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title .btn--transparent i{color:var(--chatroom-head-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title .chatbox-title__text--bookmarked{margin-left:.5em;color:var(--chatroom-head-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__buttons{background-color:var(--chatroom-head-bg-color)}.conversejs converse-muc.chatroom .chat-head-chatroom a.chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:hover.chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:not([href]):not([tabindex]).chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:visited.chatbox-btn.fa{color:var(--chat-head-text-color)}.conversejs converse-muc.chatroom .chat-head-chatroom a.chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:hover.chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:not([href]):not([tabindex]).chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:visited.chatbox-btn.fa.button-on:before{color:var(--chatroom-head-button-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-btn.button-on:before{color:var(--chatroom-head-button-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__text{display:var(--heading-display);font-weight:var(--chatroom-head-title-font-weight);margin:auto 0;padding-right:var(--chatroom-head-title-padding-right);white-space:nowrap}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__text .chatroom-jid{font-size:var(--font-size-small)}",".conversejs #converse-roster{text-align:left;width:100%;position:relative;margin:0;height:var(--roster-height);padding:0;overflow:hidden;height:calc(100% - 70px)}.conversejs #converse-roster #online-count{display:none}.conversejs #converse-roster .search-xmpp ul li.chat-info{padding-left:10px}.conversejs #converse-roster .roster-filter-form{width:100%}.conversejs #converse-roster .roster-filter-form .button-group{padding:.2em}.conversejs #converse-roster .roster-filter-form span{padding:.3em;cursor:pointer;min-width:25px;text-align:center}.conversejs #converse-roster .roster-filter-form .roster-filter{width:100%;margin:.2em;font-size:calc(var(--font-size) - 2px)}.conversejs #converse-roster .roster-filter-form .state-type{font-size:calc(var(--font-size) - 2px);width:100%}.conversejs #converse-roster .roster-contacts{padding:0;margin:0 0 .2em 0;height:100%;overflow-x:hidden;overflow-y:auto;color:var(--text-color)}.conversejs #converse-roster .roster-contacts converse-roster-contact{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;justify-content:space-between}.conversejs #converse-roster .roster-contacts .group-toggle{font-family:var(--heading-font);display:block;width:100%;margin:.75em 0 .25em 0}.conversejs #converse-roster .roster-contacts .group-toggle,.conversejs #converse-roster .roster-contacts .group-toggle .fa{color:var(--chat-head-color-dark)!important}.conversejs #converse-roster .roster-contacts .group-toggle .fa:hover,.conversejs #converse-roster .roster-contacts .group-toggle:hover{color:var(--chat-head-color-darker)!important}.conversejs #converse-roster .roster-contacts .current-xmpp-contact{margin:.25em 0}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status{vertical-align:middle;font-size:.6em;margin-right:0;margin-left:-.7em;margin-bottom:-1.5em;border-radius:50%;border:2px solid var(--occupants-background-color)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--offline{margin-right:.8em}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--online{color:var(--chat-status-online)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--busy{color:var(--chat-status-busy)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--away{color:var(--chat-status-away)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--offline{display:none}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .fa-times-circle,.conversejs #converse-roster .roster-contacts .current-xmpp-contact .far.fa-circle{color:var(--subdued-color)}.conversejs #converse-roster .roster-contacts li.requesting-xmpp-contact a{line-height:var(--line-height)}.conversejs #converse-roster .roster-contacts li.requesting-xmpp-contact .req-contact-name{padding:0 .2em 0 0}.conversejs #converse-roster .roster-contacts li .open-chat{margin:0;padding:0}.conversejs #converse-roster .roster-contacts li .open-chat.unread-msgs{font-weight:700}.conversejs #converse-roster .roster-contacts li .open-chat.unread-msgs .contact-name{width:70%}.conversejs #converse-roster .roster-contacts li .open-chat .msgs-indicator{color:#fff;background-color:var(--chat-head-color);opacity:1;border-radius:10%;padding:.2em .4em;font-size:var(--font-size-small);margin-right:0}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name{padding:0;margin:0;max-width:85%;float:none;height:100%}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name.unread-msgs{max-width:60%}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name.contact-name--offline{margin-left:.25em}.conversejs #converse-roster .roster-contacts li.odd{background-color:#dceac5}.conversejs #converse-roster .roster-contacts li a,.conversejs #converse-roster .roster-contacts li span{white-space:nowrap;text-overflow:ellipsis}.conversejs #converse-roster .roster-contacts li .span{display:inline-block}.conversejs #converse-roster .roster-contacts li .decline-xmpp-request{margin-left:5px}.conversejs #converse-roster .roster-contacts li:hover{background-color:var(controlbox-pane-bg-hover-color)}.conversejs #converse-roster span.pending-contact-name{line-height:var(--line-height);width:100%}"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://converse.js/index.scss","webpack://converse.js/bookmarks.scss","webpack://converse.js/chats.scss","webpack://converse.js/_modal.scss","webpack://converse.js/message-body.scss","webpack://converse.js/unfurl.scss","webpack://converse.js/chat-content.scss","webpack://converse.js/emoji.scss","webpack://converse.js/toolbar.scss","webpack://converse.js/chat-head.scss","webpack://converse.js/chat-bottom-panel.scss","webpack://converse.js/_controlbox.scss","webpack://converse.js/fullscreen.scss","webpack://converse.js/background.scss","webpack://converse.js/headlines.scss","webpack://converse.js/placeholder.scss","webpack://converse.js/minimize.scss","webpack://converse.js/_autocomplete.scss","webpack://converse.js/muc-bottom-panel.scss","webpack://converse.js/muc-occupants.scss","webpack://converse.js/muc-head.scss","webpack://converse.js/roster.scss"],"names":[],"mappings":"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","file":"../dist/converse.css","sourcesContent":[".conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:\"Helvetica\",\"Arial\",sans-serif;--heading-font:\"Muli\",normal;--branding-font:\"Baumans\",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:\"Helvetica\",\"Arial\",sans-serif;--heading-font:\"Muli\",normal;--branding-font:\"Baumans\",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .chatbox{text-align:left;margin:0 var(--chat-gutter)}@media screen and (max-height:450px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatbox{margin:0;width:var(--mobile-chat-width)}}.conversejs .chatbox converse-controlbox-navback{display:none}.conversejs .chatbox .flyout{position:absolute}@media screen and (max-height:450px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{border-radius:0}}@media screen and (max-height:450px){.conversejs .chatbox .flyout{bottom:0}}@media screen and (max-width:480px){.conversejs .chatbox .flyout{bottom:0}}.conversejs .chatbox .chatbox-btn{border-radius:25%;border:none;cursor:pointer;font-size:var(--chatbox-button-size);margin:0 .2em;padding:0 0 0 .5em;text-decoration:none}.conversejs .chatbox .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .box-flyout{display:flex;flex-direction:column;justify-content:space-between;box-shadow:1px 3px 5px 3px rgba(0,0,0,.4);z-index:2;overflow:hidden;width:100%}@media screen and (max-height:450px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatbox .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatbox .chat-title{display:var(--heading-display);font-family:var(--heading-font);color:var(--heading-color);display:block;line-height:var(--line-height-large);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs .chatbox .chat-title.groupchat{padding-right:var(--chatroom-head-title-padding-right)}.conversejs .chatbox .chat-title a{color:var(--chat-head-text-color);width:100%}.conversejs .chatbox .chat-body{display:flex;flex-direction:column;justify-content:space-between;background-color:var(--chat-textarea-background-color);border-bottom-left-radius:var(--chatbox-border-radius);border-bottom-right-radius:var(--chatbox-border-radius);border-top:0}@media screen and (max-height:450px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}@media screen and (max-width:480px){.conversejs .chatbox .chat-body{border-bottom-left-radius:0;border-bottom-right-radius:0}}.conversejs .chatbox .chat-body p{color:var(--text-color);font-size:var(--message-font-size);margin:0;padding:5px}.conversejs .chatbox .new-msgs-indicator{position:relative;width:100%;cursor:pointer;background-color:var(--chat-head-color);color:var(--light-background-color);padding:.5em;font-size:.9em;text-align:center;z-index:20;white-space:nowrap;margin-bottom:.25em}.conversejs .chatbox .chat-content{background-color:var(--chat-content-background-color);border:0;color:var(--text-color);font-size:var(--message-font-size);height:100%;line-height:1.3em;overflow:hidden;padding:0;display:flex;flex-direction:column;justify-content:space-between}.conversejs .chatbox .chat-content converse-chat-message .spinner{width:100%;overflow-y:hidden}.conversejs .chatbox .chat-content .chat-content__help{max-height:100%}.conversejs .chatbox .chat-content .chat-content__help converse-chat-help{border-top:1px solid var(--chat-head-color);display:block;height:100%;overflow-y:auto;padding:.5em 0}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help{float:right;padding-right:1em;cursor:pointer;color:var(--chat-content-background-color)}.conversejs .chatbox .chat-content .chat-content__help .close-chat-help svg{fill:var(--chat-head-color)}.conversejs .chatbox .chat-content .chat-content__messages{overflow-x:hidden;overflow-y:auto;height:100%}.conversejs .chatbox .chat-content .chat-content__notifications{height:1.7em;white-space:pre;background-color:var(--chat-content-background-color);color:var(--subdued-color);font-size:90%;font-style:italic;line-height:var(--line-height-small);padding:0 1em .3em}.conversejs .chatbox .chat-content .chat-content__notifications:before{content:\" \"}.conversejs .chatbox .chat-content progress{margin:.5em 0;width:100%}.conversejs .chatbox .dropdown{background-color:var(--light-background-color)}.conversejs .chatbox .dropdown dd{margin:0;padding:0;position:relative}.conversejs .chatbox .dragresize{background:0 0;border:0;margin:0;position:absolute;top:0;z-index:20}.conversejs .chatbox .dragresize-top{cursor:n-resize;height:5px;width:100%}.conversejs .chatbox .dragresize-left,.conversejs .chatbox .dragresize-occupants-left{cursor:w-resize;width:5px;height:100%;left:0}.conversejs .chatbox .dragresize-topleft{cursor:nw-resize;width:15px;height:15px;top:0;left:0}converse-muc-config-form{width:100%;overflow:auto}.conversejs .chatroom .box-flyout .muc-form-container{background-color:#fff;border:0;color:var(--text-color);font-size:var(--font-size);height:100%;width:100%;overflow-y:auto}.conversejs .chatroom .box-flyout .muc-form-container .validation-message{font-size:90%;color:var(--error-color)}.conversejs .chatroom .box-flyout .muc-form-container input[type=button],.conversejs .chatroom .box-flyout .muc-form-container input[type=submit]{margin:0 .5em}.conversejs .chatroom .box-flyout .muc-form-container .button-primary{background-color:var(--chatroom-head-button-color)}.conversejs .chatroom .box-flyout .chatroom-form{display:flex;flex-direction:column;justify-content:center;padding:2em}.conversejs .chatroom{width:var(--chatroom-width)}@media screen and (max-height:450px){.conversejs .chatroom{width:var(--mobile-chat-width)}}@media screen and (max-width:480px){.conversejs .chatroom{width:var(--mobile-chat-width)}}.conversejs .chatroom .box-flyout{background-color:var(--chatroom-head-bg-color);overflow-y:hidden;width:var(--chatroom-width)}@media screen and (max-height:450px){.conversejs .chatroom .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}@media screen and (max-width:480px){.conversejs .chatroom .box-flyout{height:var(--mobile-chat-height);width:var(--mobile-chat-width);height:var(--fullpage-chat-height)}}.conversejs .chatroom .box-flyout .empty-history-feedback{position:relative}.conversejs .chatroom .box-flyout .empty-history-feedback span{width:100%;text-align:center;position:absolute;margin-top:50%}.conversejs .chatroom .box-flyout .chatroom-body{flex-direction:row;flex-flow:nowrap;background-color:#fff;border-top:0;height:100%;width:100%;overflow:hidden}.conversejs .chatroom .box-flyout .chatroom-body converse-muc-chatarea{width:100%;display:flex;flex-direction:row;flex-flow:nowrap}.conversejs .chatroom .box-flyout .chatroom-body .row{flex-direction:row}.conversejs .chatroom .box-flyout .chatroom-body .chat-topic{font-weight:700;color:var(--chatroom-head-bg-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-info{color:var(--chat-info-color);line-height:normal}.conversejs .chatroom .box-flyout .chatroom-body .chat-info.badge{color:var(--chat-head-text-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-info.chat-msg--retracted{color:var(--subdued-color)}.conversejs .chatroom .box-flyout .chatroom-body .disconnect-container{margin:1em;width:100%}.conversejs .chatroom .box-flyout .chatroom-body .disconnect-container h3.disconnect-msg{padding-bottom:1em}.conversejs .chatroom .box-flyout .chatroom-body .chat-area{display:flex;flex-direction:column;flex:0 1 100%;justify-content:flex-end;min-width:25%;word-wrap:break-word}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .new-msgs-indicator{background-color:var(--chatroom-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content{height:100%}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content__help converse-chat-help{border-top:1px solid var(--chatroom-color)}.conversejs .chatroom .box-flyout .chatroom-body .chat-area .chat-content__help .close-chat-help svg{fill:var(--chatroom-color)}.conversejs .chatroom .room-invite .invited-contact{margin:-1px 0 0 -1px;width:100%;border:1px solid #999}#muc-details-modal .features-list{margin-left:1em}#muc-details-modal .chatroom-features{width:100%}#muc-details-modal .chatroom-features .features-list{padding-top:0}#muc-details-modal .chatroom-features .features-list .feature{width:100%;margin-right:.5em;padding-right:0;font-size:1em;cursor:help}#muc-details-modal .chatroom-features .features-list .feature .fa{margin-right:.5em;color:var(--text-color)}converse-muc-destroyed,converse-muc-disconnected{padding:2em;width:100%;height:100%}.conversejs .badge--muc,.conversejs.converse-embedded .badge--muc{background-color:var(--groupchats-header-color)}.conversejs .add-chatroom input[type=button],.conversejs .add-chatroom input[type=submit],.conversejs.converse-embedded .add-chatroom input[type=button],.conversejs.converse-embedded .add-chatroom input[type=submit]{margin:.3em 0}.conversejs converse-chats.converse-overlayed .chatbox.chatroom{min-width:var(--chatroom-width)!important;width:var(--chatroom-width)}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .box-flyout{min-width:var(--chatroom-width)!important;width:var(--chatroom-width)}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatbox-title__text{flex:0 0 58.3333333333%;max-width:58.3333333333%}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatbox-title__buttons{flex:0 0 41.6666666667%;max-width:41.6666666667%}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chat-head__desc{font-size:80%;margin-bottom:1em}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants .occupants-heading{padding:0}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants .occupant-list{border-bottom:none}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants ul .occupant .occupant-nick-badge .occupant-badges{display:none}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .occupants ul .occupant .occupant-status{margin-top:6px}.conversejs converse-chats.converse-overlayed .chatbox.chatroom .chatroom-body .chat-area{min-width:var(--overlayed-chat-width)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout,.conversejs converse-chats.converse-mobile .chatroom .box-flyout{width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .chat-area.full .new-msgs-indicator{max-width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants{padding:var(--occupants-padding)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants .occupants-heading,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants .occupants-heading,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants .occupants-heading{font-size:var(--font-size-large)}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li,.conversejs converse-chats.converse-fullscreen .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li,.conversejs converse-chats.converse-mobile .chatroom .box-flyout .chatroom-body .occupants ul.occupant-list li{font-size:var(--font-size-small)}.conversejs converse-chats.converse-embedded .chatroom .room-invite span .invited-contact,.conversejs converse-chats.converse-fullscreen .chatroom .room-invite span .invited-contact,.conversejs converse-chats.converse-mobile .chatroom .room-invite span .invited-contact{margin:0 0 .5em -1px}.conversejs converse-chats.converse-embedded .chatroom{margin:0;width:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .occupants-heading{font-size:120%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chat-content .chat-message{margin:.5em;font-size:120%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .sendXMPPMessage .chat-textarea{padding:.5em;font-size:110%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body{height:100%}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .chatroom-body .muc-form-container{height:100%;position:relative}.conversejs converse-chats.converse-embedded .chatroom .box-flyout .occupants .occupant-list{padding-left:.3em}",".conversejs #controlbox .bookmarks-toggle,.conversejs #controlbox .bookmarks-toggle .fa{color:var(--groupchats-header-color)!important}.conversejs #controlbox .bookmarks-toggle .fa:hover,.conversejs #controlbox .bookmarks-toggle:hover{color:var(--chatroom-head-bg-color-dark)!important}.conversejs.fullscreen #controlbox #chatrooms .bookmarks-list dl.rooms-list.bookmarks dd.available-chatroom a.open-room{width:80%}",".conversejs converse-chats.converse-chatboxes{z-index:1031;position:fixed;bottom:0;right:0}.conversejs converse-chats.converse-overlayed{height:3em}.conversejs converse-chats.converse-overlayed>.row{flex-direction:row-reverse}.conversejs converse-chats.converse-fullscreen,.conversejs converse-chats.converse-mobile{flex-wrap:nowrap;width:100vw}.conversejs converse-chats.converse-embedded{box-sizing:border-box;bottom:auto;height:100%;position:relative;right:auto;width:100%}.conversejs converse-chats.converse-embedded *,.conversejs converse-chats.converse-embedded :after,.conversejs converse-chats.converse-embedded :before{box-sizing:border-box}.conversejs converse-chats.converse-embedded.converse-chatboxes{z-index:1031;position:inherit;flex-wrap:nowrap;bottom:auto;height:100%;width:100%;margin-left:-15px}",".conversejs .modal-open{overflow:hidden}.conversejs .modal-open .modal{overflow-x:hidden;overflow-y:auto}.conversejs .modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.conversejs .modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .conversejs .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media(prefers-reduced-motion:reduce){.modal.fade .conversejs .modal-dialog{transition:none}}.modal.show .conversejs .modal-dialog{transform:none}.modal.modal-static .conversejs .modal-dialog{transform:scale(1.02)}.conversejs .modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.conversejs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.conversejs .modal-dialog-scrollable .modal-footer,.conversejs .modal-dialog-scrollable .modal-header{flex-shrink:0}.conversejs .modal-dialog-scrollable .modal-body{overflow-y:auto}.conversejs .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.conversejs .modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:\"\"}.conversejs .modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.conversejs .modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.conversejs .modal-dialog-centered.modal-dialog-scrollable::before{content:none}.conversejs .modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.conversejs .modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.conversejs .modal-backdrop.fade{opacity:0}.conversejs .modal-backdrop.show{opacity:.5}.conversejs .modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.conversejs .modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.conversejs .modal-title{margin-bottom:0;line-height:1.5}.conversejs .modal-body{position:relative;flex:1 1 auto;padding:1rem}.conversejs .modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.conversejs .modal-footer>*{margin:.25rem}.conversejs .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:576px){.conversejs .modal-dialog{max-width:500px;margin:1.75rem auto}.conversejs .modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.conversejs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.conversejs .modal-dialog-centered{min-height:calc(100% - 3.5rem)}.conversejs .modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.conversejs .modal-sm{max-width:300px}}@media(min-width:992px){.conversejs .modal-lg,.conversejs .modal-xl{max-width:800px}}@media(min-width:1200px){.conversejs .modal-xl{max-width:1140px}}.conversejs #converse-modals .modal{background-color:rgba(0,0,0,.4)}.conversejs #converse-modals .modal .modal-body{overflow-y:auto;max-height:75vh;margin-bottom:2em}.conversejs #converse-modals .modal .modal-body p{padding:.25rem 0}.conversejs #converse-modals .modal .modal-body .confirm .form-group p:first-child{font-size:110%;font-weight:700}.conversejs #converse-modals .modal .modal-body.fit-content{box-sizing:content-box}.conversejs #converse-modals .modal .modal-body.fit-content img{max-width:90vw}.conversejs #converse-modals .modal .modal-body--image .chat-image{max-height:99%;max-width:100%}.conversejs #converse-modals .modal .modal-footer{justify-content:flex-start}.conversejs #converse-modals .modal .roomid-policy-error{color:var(--error-color);font-size:var(--font-size-small);float:right}.conversejs #converse-modals .scrollable-container{max-height:45vh;overflow-y:auto}.conversejs #converse-modals .affiliation-form,.conversejs #converse-modals .role-form{padding:2em 0 1em 0}.conversejs #converse-modals .set-xmpp-status{margin:1em}.conversejs #converse-modals .set-xmpp-status .custom-control-label{padding-top:.25em}.conversejs #converse-modals #omemo-tabpanel{margin-top:1em}.conversejs #converse-modals .btn{font-weight:400}.conversejs #converse-modals #user-profile-modal .profile-form label{font-weight:700}.conversejs #converse-modals #user-profile-modal .fingerprint-removal label{display:flex;padding:.75rem 1.25rem}.conversejs #converse-modals #user-profile-modal .list-group-item{display:flex;justify-content:left;font-size:95%}.conversejs #converse-modals #user-profile-modal .list-group-item input[type=checkbox]{margin-right:1em}.conversejs #converse-modals .fingerprints{width:100%;margin-bottom:1em}.conversejs #converse-modals .fingerprint-trust{display:flex;justify-content:space-between;font-size:95%}.conversejs #converse-modals .fingerprint-trust .fingerprint{margin-left:1em}","converse-chat-message-body audio{display:block}@media(max-width:767.98px){converse-chat-message-body audio{max-width:95%}}@media(min-width:768px){converse-chat-message-body audio{max-width:70%}}@media(min-width:992px){converse-chat-message-body audio{max-width:50%}}@media(min-width:1200px){converse-chat-message-body audio{max-width:40%}}converse-chat-message-body video{display:block;max-height:25em}@media(max-width:767.98px){converse-chat-message-body video{max-width:95%}}@media(min-width:768px){converse-chat-message-body video{max-width:70%}}@media(min-width:992px){converse-chat-message-body video{max-width:50%}}@media(min-width:1200px){converse-chat-message-body video{max-width:40%}}.converse-overlayed converse-chat-message-body audio{display:block;max-width:100%}.converse-overlayed converse-chat-message-body video{display:block;max-width:100%}",".conversejs .card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.conversejs .card>hr{margin-right:0;margin-left:0}.conversejs .card>.list-group{border-top:inherit;border-bottom:inherit}.conversejs .card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.conversejs .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.conversejs .card>.card-header+.list-group,.conversejs .card>.list-group+.card-footer{border-top:0}.conversejs .card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.conversejs .card-title{margin-bottom:.75rem}.conversejs .card-subtitle{margin-top:-.375rem;margin-bottom:0}.conversejs .card-text:last-child{margin-bottom:0}.conversejs .card-link:hover{text-decoration:none}.conversejs .card-link+.card-link{margin-left:1.25rem}.conversejs .card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.conversejs .card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.conversejs .card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.conversejs .card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.conversejs .card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.conversejs .card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.conversejs .card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.conversejs .card-img,.conversejs .card-img-bottom,.conversejs .card-img-top{flex-shrink:0;width:100%}.conversejs .card-img,.conversejs .card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.conversejs .card-img,.conversejs .card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.conversejs .card-deck .card{margin-bottom:15px}@media(min-width:576px){.conversejs .card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.conversejs .card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.conversejs .card-group>.card{margin-bottom:15px}@media(min-width:576px){.conversejs .card-group{display:flex;flex-flow:row wrap}.conversejs .card-group>.card{flex:1 0 0%;margin-bottom:0}.conversejs .card-group>.card+.card{margin-left:0;border-left:0}.conversejs .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.conversejs .card-group>.card:not(:last-child) .card-header,.conversejs .card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.conversejs .card-group>.card:not(:last-child) .card-footer,.conversejs .card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.conversejs .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.conversejs .card-group>.card:not(:first-child) .card-header,.conversejs .card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.conversejs .card-group>.card:not(:first-child) .card-footer,.conversejs .card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.conversejs .card-columns .card{margin-bottom:.75rem}@media(min-width:576px){.conversejs .card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.conversejs .card-columns .card{display:inline-block;width:100%}}.conversejs .accordion{overflow-anchor:none}.conversejs .accordion>.card{overflow:hidden}.conversejs .accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.conversejs .accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.conversejs .accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{margin:1em 0}@media(max-width:767.98px){.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{max-width:95%}}@media(min-width:768px){.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{max-width:75%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{max-width:66%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded .message .card--unfurl,.conversejs converse-chats.converse-fullscreen .message .card--unfurl{max-width:50%}}.conversejs converse-chats.converse-mobile .message .card--unfurl,.conversejs converse-chats.converse-overlayed .message .card--unfurl{margin:1em 0;max-width:95%}","converse-chat-content{display:flex;flex-direction:column-reverse;height:100%;justify-content:space-between;overflow:auto}",".conversejs .media{display:flex;align-items:flex-start}.conversejs .media-body{flex:1}.conversejs .chatbox img.emoji{height:1.2em;width:1.2em;margin:0 .05em 0 .1em;vertical-align:-.1em}.conversejs .chatbox .sendXMPPMessage .toggle-smiley a.toggle-smiley{padding:0}.conversejs .chatbox converse-emoji-dropdown{display:inline-block}.conversejs .chatbox converse-emoji-dropdown .dropdown-menu{padding:0}.conversejs .chatbox converse-emoji-picker{width:100%;padding-top:0;padding-bottom:0;background-color:var(--chat-head-color);overflow-y:hidden;background:#fff}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists{height:8em;overflow-y:auto;display:flex;flex-direction:column}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-category__heading{clear:both;color:var(--subdued-color);cursor:auto;display:block;font-size:var(--font-size);margin:0;padding:.75em 0 0 .5em}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-lists__container{overflow-x:hidden}.conversejs .chatbox converse-emoji-picker .emoji-picker__lists .emoji-picker li{float:left}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker{display:flex;padding:.5em 0;background-color:var(--chat-head-color);width:100%;font-size:var(--font-size)}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker label{margin:0;padding:0 .5em;white-space:nowrap;font-size:var(--font-size-small);color:var(--heading-color)}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker ul{display:flex;flex-direction:row;flex-wrap:wrap}.conversejs .chatbox converse-emoji-picker .emoji-skintone-picker ul li{padding:0 .25em}.conversejs .chatbox converse-emoji-picker .emoji-picker{background-color:#fff;padding:.5em 0 0 .5em}.conversejs .chatbox converse-emoji-picker .emoji-picker:last-child{padding-bottom:.5em}.conversejs .chatbox converse-emoji-picker .emoji-picker li{display:inline-block;height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden;margin-left:0;list-style:none;position:relative}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji{padding:0 .2em;height:auto;width:auto;margin:0;display:block;text-align:center}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji.selected a{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji img{margin:0 auto;height:var(--font-size-huge);width:var(--font-size-huge);display:inline-block;vertical-align:baseline}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a{padding:3px;display:inline-block;font-size:var(--font-size-huge);line-height:calc(var(--font-size-huge) * 1.5);height:calc(var(--font-size-huge) * 1.5);width:calc(var(--font-size-huge) * 1.5);overflow:hidden}.conversejs .chatbox converse-emoji-picker .emoji-picker li.insert-emoji a:hover{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header{width:100%;display:flex;flex-direction:column;padding:.1em 0;background-color:var(--chat-head-color)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header .emoji-search{width:auto;margin:.25em;height:2em;font-size:var(--font-size-small)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul{display:flex;flex-direction:row;flex-wrap:wrap}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category{padding:.25em 0;font-size:var(--font-size-huge)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{background-color:#fff;border:1px var(--chat-head-color) solid;border-bottom:none}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category.selected a,.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category:hover a{background-color:var(--highlight-color-darker)}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category a{padding:.25em;display:inline-block}.conversejs .chatbox converse-emoji-picker .emoji-picker__header ul .emoji-category img{height:var(--font-size-huge);width:var(--font-size-huge)}.conversejs .chatroom converse-emoji-picker{background-color:var(--chatroom-head-bg-color);background:#fff}.conversejs .chatroom converse-emoji-picker .emoji-skintone-picker{background-color:var(--chatroom-head-bg-color)}.conversejs .chatroom converse-emoji-picker .emoji-picker__header{background-color:var(--chatroom-head-bg-color)}.conversejs .chatroom converse-emoji-picker .emoji-picker__header ul .emoji-category.picked{border:1px var(--chatroom-head-bg-color) solid;border-bottom:none}.conversejs converse-chats.converse-overlayed converse-emoji-dropdown .dropdown-menu{min-width:18em}.conversejs converse-chats.converse-overlayed .chatbox .emoji-picker__header .emoji-category img{height:var(--font-size)!important;width:var(--font-size)!important}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker .insert-emoji a{font-size:var(--font-size);line-height:calc(var(--font-size) * 1.5);padding:0;height:calc(var(--font-size) * 1.5);width:calc(var(--font-size) * 1.5)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker .insert-emoji img{height:var(--font-size);width:var(--font-size)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-skintone-picker{font-size:var(--font-size-small)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker__header .emoji-category{font-size:var(--font-size-small)}.conversejs converse-chats.converse-overlayed .chatbox converse-emoji-picker .emoji-picker__lists{height:7em}.conversejs converse-chats.converse-embedded converse-emoji-dropdown .dropdown-menu{min-width:20em}.conversejs converse-chats.converse-fullscreen converse-emoji-dropdown .dropdown-menu{min-width:22em}.conversejs converse-chats.converse-fullscreen .chatbox converse-emoji-picker .emoji-picker__lists{height:12em}.conversejs .chatbox converse-emoji-picker{max-width:40em}",".conversejs .send-button{border-radius:0;bottom:var(--send-button-bottom);color:var(--inverse-link-color)}.conversejs .chatbox .send-button{background-color:var(--chat-head-color)}.conversejs .chatroom .send-button{background-color:var(--muc-toolbar-btn-color)}.conversejs .chat-toolbar .toolbar-buttons{width:100%}.conversejs .chat-toolbar .toolbar-buttons .message-limit{padding:.5em;font-weight:700}.conversejs .chat-toolbar .toolbar-buttons *{float:left}.conversejs .chat-toolbar .toolbar-buttons .right{float:right}.conversejs .chat-toolbar .unverified,.conversejs .chat-toolbar .unverified a{color:#cf5300}.conversejs .chat-toolbar .private,.conversejs .chat-toolbar .private a{color:#4b7003}.conversejs .chat-toolbar li{cursor:pointer;display:inline-block;list-style:none;padding:0 .5em}.conversejs .chat-toolbar li:hover{cursor:pointer}.conversejs .chat-toolbar li .toolbar-menu{background-color:#fff;bottom:1.7rem;box-shadow:-1px -1px 2px 0 rgba(0,0,0,.4);height:auto;margin-bottom:0;min-width:21rem;position:absolute;right:0;top:auto;z-index:1000}.conversejs .chat-toolbar li .toolbar-menu.otr-menu{left:-6em;min-width:15rem}.conversejs .chat-toolbar li .toolbar-menu.otr-menu.show{display:flex;flex-direction:column}.conversejs .chat-toolbar li .toolbar-menu a{color:var(--link-color)}.conversejs .chat-toolbar li.toggle-otr ul{z-index:99}.conversejs .chat-toolbar li.toggle-otr ul li{display:block;padding:7px}.conversejs .chat-toolbar li.toggle-otr ul li:hover{background-color:var(--highlight-color)}.conversejs .chat-toolbar li.toggle-otr ul li a{display:block}.conversejs converse-chat-toolbar{background-color:#fff;box-sizing:border-box;display:flex;justify-content:space-between;margin:0;width:100%}.conversejs converse-chat-toolbar .fa,.conversejs converse-chat-toolbar .fa:hover,.conversejs converse-chat-toolbar .far,.conversejs converse-chat-toolbar .far:hover,.conversejs converse-chat-toolbar .fas,.conversejs converse-chat-toolbar .fas:hover{color:var(--chat-head-color);font-size:var(--font-size-large)}.conversejs converse-chat-toolbar .fa svg,.conversejs converse-chat-toolbar .fa:hover svg,.conversejs converse-chat-toolbar .far svg,.conversejs converse-chat-toolbar .far:hover svg,.conversejs converse-chat-toolbar .fas svg,.conversejs converse-chat-toolbar .fas:hover svg{fill:var(--chat-head-color)}.conversejs converse-chat-toolbar .unencrypted,.conversejs converse-chat-toolbar .unencrypted a{color:var(--text-color)}.conversejs converse-chat-toolbar .unencrypted .toolbar-menu a,.conversejs converse-chat-toolbar .unencrypted a .toolbar-menu a{color:var(--link-color)}.conversejs converse-chat-toolbar button{margin-top:.4em;border:1px transparent solid;background-color:transparent}.conversejs converse-chat-toolbar button.send-button{padding-top:.2em;padding-bottom:.2em;margin:0;margin-top:-1px}.conversejs .chatbox converse-chat-toolbar{border-top:var(--chatbox-message-input-border-top);color:var(--chat-toolbar-btn-color);background-color:#fff}.conversejs .chatbox converse-chat-toolbar .fa,.conversejs .chatbox converse-chat-toolbar .fa:hover,.conversejs .chatbox converse-chat-toolbar .far,.conversejs .chatbox converse-chat-toolbar .far:hover,.conversejs .chatbox converse-chat-toolbar .fas,.conversejs .chatbox converse-chat-toolbar .fas:hover{color:var(--chat-toolbar-btn-color)}.conversejs .chatbox converse-chat-toolbar button:focus{outline-color:var(--chat-toolbar-btn-color)!important}.conversejs .chatbox converse-chat-toolbar button:disabled .fa{color:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatbox converse-chat-toolbar button:disabled .fa:hover{color:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatbox converse-chat-toolbar button:disabled .fa svg,.conversejs .chatbox converse-chat-toolbar button:disabled .fa svg:hover{fill:var(--chat-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar{border-top:var(--chatroom-message-input-border-top);color:var(--muc-toolbar-btn-color)}.conversejs .chatroom converse-chat-toolbar .fa,.conversejs .chatroom converse-chat-toolbar .fa:hover,.conversejs .chatroom converse-chat-toolbar .far,.conversejs .chatroom converse-chat-toolbar .far:hover,.conversejs .chatroom converse-chat-toolbar .fas,.conversejs .chatroom converse-chat-toolbar .fas:hover{color:var(--muc-toolbar-btn-color);font-size:var(--font-size-large)}.conversejs .chatroom converse-chat-toolbar .fa svg,.conversejs .chatroom converse-chat-toolbar .fa:hover svg,.conversejs .chatroom converse-chat-toolbar .far svg,.conversejs .chatroom converse-chat-toolbar .far:hover svg,.conversejs .chatroom converse-chat-toolbar .fas svg,.conversejs .chatroom converse-chat-toolbar .fas:hover svg{fill:var(--muc-toolbar-btn-color)}.conversejs .chatroom converse-chat-toolbar button:focus{outline-color:var(--muc-toolbar-btn-color)!important}.conversejs .chatroom converse-chat-toolbar button:disabled .fa{color:var(--muc-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar button:disabled .fa:hover{color:var(--muc-toolbar-btn-disabled-color)}.conversejs .chatroom converse-chat-toolbar button:disabled .fa svg,.conversejs .chatroom converse-chat-toolbar button:disabled .fa svg:hover{fill:var(--muc-toolbar-btn-disabled-color)}.conversejs converse-chats.converse-overlayed .chat-toolbar li .toolbar-menu{min-width:235px}.conversejs converse-chats.converse-overlayed .chatroom .chat-toolbar li .toolbar-menu{min-width:280px}",".conversejs .chatbox .chat-head{display:flex;flex-direction:row;color:#fff;font-size:100%;margin:0;padding:0;position:relative}.conversejs .chatbox .chat-head.chat-head-chatbox{background-color:var(--chat-head-color)}.conversejs .chatbox .chat-head .avatar{margin-right:.5em}.conversejs .chatbox .chat-head .show-msg-author-modal{color:#fff!important}.conversejs .chatbox .chat-head .chat-head__desc{color:var(--chat-head-color-lighten-50-percent);font-size:var(--font-size-small);margin:0;overflow:hidden;padding:.5rem 1rem .5rem 1rem;text-overflow:ellipsis;width:100%;max-height:5em}.conversejs .chatbox .chat-head .chatbox-title{padding:.75rem 1rem 0 1rem;display:flex;flex-direction:row;justify-content:space-between;width:100%}.conversejs .chatbox .chat-head .chatbox-title--no-desc{padding:.75rem 1rem}.conversejs .chatbox .chat-head .chatbox-title--row{display:flex;flex-direction:row;overflow:hidden}.conversejs .chatbox .chat-head .chatbox-title__text{overflow:hidden;text-overflow:ellipsis}.conversejs .chatbox .chat-head .chatbox-title__buttons{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;padding:0}.conversejs .chatbox .chat-head a.chatbox-btn.fa,.conversejs .chatbox .chat-head a.chatbox-btn.far,.conversejs .chatbox .chat-head a.chatbox-btn.fas,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fa,.conversejs .chatbox .chat-head a:hover.chatbox-btn.far,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fas,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fa,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.far,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fas,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fa,.conversejs .chatbox .chat-head a:visited.chatbox-btn.far,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fas{color:#fff}.conversejs .chatbox .chat-head a.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a.chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:hover.chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:not([href]):not([tabindex]).chatbox-btn.fas.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fa.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.far.button-on:before,.conversejs .chatbox .chat-head a:visited.chatbox-btn.fas.button-on:before{padding:.2em;background-color:var(--chat-head-text-color);color:var(--chat-head-color)}.conversejs .chatbox .chat-head .chatbox-btn{color:#fff}.conversejs .chatbox .chat-head .chatbox-btn.fa,.conversejs .chatbox .chat-head .chatbox-btn.far,.conversejs .chatbox .chat-head .chatbox-btn.fas{color:#fff}.conversejs .chatbox .chat-head .chatbox-btn:active{position:relative;top:1px}.conversejs .chatbox .chat-head .chatbox-btn.button-on:before{border-radius:5%;background-color:var(--chat-head-text-color);color:var(--chat-head-color)}",".conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:\"Helvetica\",\"Arial\",sans-serif;--heading-font:\"Muli\",normal;--branding-font:\"Baumans\",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .chatbox .bottom-panel .chat-content-sendbutton{height:calc(100% - (var(--chat-textarea-height) + var(--send-button-height) + 2 * var(--send-button-margin)))}.conversejs .chatbox .bottom-panel .sendXMPPMessage{-moz-background-clip:padding;-webkit-background-clip:padding-box;border-bottom-radius:var(--chatbox-border-radius);background-clip:padding-box;background-color:#fff;border:0;margin:0;padding:0}@media screen and (max-height:450px){.conversejs .chatbox .bottom-panel .sendXMPPMessage{width:100%}}@media screen and (max-width:480px){.conversejs .chatbox .bottom-panel .sendXMPPMessage{width:100%}}.conversejs .chatbox .bottom-panel .sendXMPPMessage .suggestion-box__results:after{display:none}.conversejs .chatbox .bottom-panel .sendXMPPMessage .spoiler-hint{width:100%}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea:active,.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea:focus,.conversejs .chatbox .bottom-panel .sendXMPPMessage input:active,.conversejs .chatbox .bottom-panel .sendXMPPMessage input:focus{outline-color:var(--chat-head-color)}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea.correcting,.conversejs .chatbox .bottom-panel .sendXMPPMessage input.correcting{background-color:var(--chat-correcting-color)}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea{color:var(--chat-textarea-color);background-color:var(--chat-textarea-background-color);border-top-left-radius:0;border-top-right-radius:0;border-bottom-radius:var(--chatbox-border-radius);padding-left:.5em;padding-right:4.5em;padding-top:.5em;padding-bottom:.5em;width:100%;border:none;min-height:var(--chat-textarea-height);margin-bottom:-4px;resize:none}.conversejs .chatbox .bottom-panel .sendXMPPMessage .chat-textarea.spoiler{height:42px}",".conversejs,.conversejs-bg,body.converse-fullscreen{--subdued-color:#A8ABA1;--green:#3AA569;--redder-orange:#E77051;--orange:#E7A151;--light-blue:#578EA9;--lighter-blue:#85B47B;--chat-status-online:var(--green);--chat-status-busy:var(--redder-orange);--chat-status-away:var(--orange);--brand-heading-color:#387592;--completion-light-color:#FFB9A7;--completion-normal-color:var(--redder-orange);--completion-dark-color:#D24E2B;--link-color:var(--light-blue);--link-hover-color:#345566;--link-color-lighten-10-percent:#79a5ba;--dark-link-color:#206485;--global-background-color:#397491;--inverse-link-color:white;--text-shadow-color:#FAFAFA;--text-color:#666;--controlbox-text-color:#666;--text-color-lighten-15-percent:#8c8c8c;--message-text-color:#555;--message-receipt-color:var(--green);--save-button-color:var(--green);--message-avatar-width:36px;--message-avatar-height:36px;--chat-background-color:white;--chat-textarea-color:#666;--chat-textarea-background-color:white;--chat-textarea-height:60px;--send-button-height:27px;--send-button-margin:3px;--inline-action-margin:0.75em;--roster-height:194px;--chat-correcting-color:var(--chat-head-color-lighten-50-percent);--chat-head-color-dark:#1E9652;--chat-head-color-darker:#0E763B;--chat-head-color-lighten-50-percent:#e7f7ee;--chat-head-color:var(--green);--chat-head-text-color:white;--chat-toolbar-btn-color:var(--green);--chat-toolbar-btn-disabled-color:gray;--chat-content-background-color:white;--chat-info-color:var(--chatroom-head-bg-color);--highlight-color:#DCF9F6;--highlight-color-darker:#B0E8E2;--primary-color:var(--light-blue);--primary-color-dark:#397491;--secondary-color:#818479;--secondary-color-dark:#585B51;--warning-color:var(--orange);--warning-color-dark:#D2842B;--danger-color:#D24E2B;--danger-color-dark:#A93415;--light-background-color:#FCFDFD;--error-color:#D24E2B;--info-color:#1E9652;--button-border-radius:5px;--chatbox-border-radius:4px;--groupchats-header-color:var(--chatroom-head-bg-color);--groupchats-header-color-dark:var(--chatroom-head-bg-color-dark);--controlbox-width:250px;--controlbox-head-color:var(--light-blue);--controlbox-heading-color:inherit;--controlbox-heading-font-weight:bold;--controlbox-heading-top-margin:0.75em;--controlbox-pane-background-color:white;--controlbox-pane-bg-hover-color:#eff4f7;--panel-divider-color:#e7e7e7;--chat-gutter:0.5em;--minimized-chats-width:130px;--mobile-chat-width:100%;--mobile-chat-height:400px;--normal-font:\"Helvetica\",\"Arial\",sans-serif;--heading-font:\"Muli\",normal;--branding-font:\"Baumans\",cursive;--heading-display:block;--heading-color:white;--chatroom-color:var(--redder-orange);--chatroom-badge-color:var(--chatroom-head-bg-color);--chatroom-badge-hover-color:var(--chatroom-head-bg-color-dark);--chatroom-correcting-color:#fadfd7;--chatroom-head-bg-color-dark:#D24E2B;--chatroom-head-bg-color:var(--redder-orange);--chatroom-head-border-bottom:0px;--chatroom-head-button-color:var(--chatroom-head-bg-color);--chatroom-head-color:white;--chatroom-head-description-display:block;--chatroom-head-description-link-color:white;--chatroom-head-title-font-weight:normal;--chatroom-head-title-padding-right:0px;--chatroom-width:500px;--muc-toolbar-btn-color:var(--redder-orange);--muc-toolbar-btn-disabled-color:gray;--headline-head-color:var(--orange);--headline-message-color:#D2842B;--chatbox-button-size:14px;--fullpage-chatbox-button-size:16px;--font-size-tiny:10px;--font-size-small:12px;--font-size:14px;--font-size-large:16px;--font-size-huge:20px;--message-font-size:var(--font-size);--separator-text-color:var(--message-text-color);--chat-separator-border-bottom:2px solid var(--chat-head-color);--chatroom-separator-border-bottom:2px solid var(--chatroom-head-bg-color);--chatbox-message-input-border-top:4px solid var(--chat-head-color);--chatroom-message-input-border-top:4px solid var(--chatroom-head-bg-color);--line-height-small:14px;--line-height:16px;--line-height-large:20px;--line-height-huge:27px;--occupants-padding:1em;--occupants-background-color:white;--occupants-border-left:0.2143rem solid var(--panel-divider-color);--occupants-border-bottom:1px solid lightgrey;--embedded-emoji-picker-height:300px;--avatar-border-radius:10%;--avatar-border:1px solid lightgrey;--avatar-background-color:white;--fullpage-chat-height:calc(var(--vh, 1vh) * 100);--fullpage-chat-width:100%;--fullpage-emoji-picker-height:300px;--fullpage-max-chat-textarea-height:15em;--overlayed-chat-head-height:55px;--overlayed-chat-height:450px;--overlayed-chat-width:300px;--overlayed-chatbox-hover-height:1em;--overlayed-emoji-picker-height:200px;--overlayed-max-chat-textarea-height:200px;--overlayed-badge-color:#818479;--list-toggle-color:#818479;--list-toggle-hover-color:#585B51;--list-toggle-font-weight:normal;--list-item-hover-color:rgba(0, 0, 0, 0.035);--list-item-action-color:#e3eef3;--list-item-link-color:inherit;--list-item-link-hover-color:var(--dark-link-color);--list-item-open-color:var(--controlbox-head-color);--list-item-open-hover-color:var(--controlbox-head-color);--list-dot-circle-color:#f6dec1}.conversejs.theme-concord{--avatar-border-radius:10%;--avatar-border:0px;--avatar-background-color:none;--controlbox-pane-background-color:#333;--panel-divider-color:#333;--controlbox-pane-bg-hover-color:#464646;--controlbox-heading-color:#777;--controlbox-heading-font-weight:bold;--groupchats-header-color:var(--redder-orange);--chat-textarea-background-color:#F6F6F6;--chat-correcting-color:#FFFFC0;--chat-head-text-color:#AAA;--controlbox-text-color:#DDD;--chat-info-color:var(--subdued-color);--chatbox-border-radius:0px;--heading-display:inline;--heading-color:#9B4D;--link-hover-color:var(--lighter-blue);--chatroom-badge-color:var(--redder-orange);--chatroom-badge-hover-color:#D24E2B;--chatroom-correcting-color:#FFFFC0;--chatroom-head-bg-color:white;--chatroom-head-border-bottom:1px solid #EEE;--chatroom-head-button-color:#999;--chatroom-head-color:#7E7E7E;--chatroom-head-description-border-left:1px solid #DDD;--chatroom-head-description-color:black;--chatroom-head-description-display:inline;--chatroom-head-description-link-color:#00b3f4;--chatroom-head-description-padding-left:12px;--chatroom-head-title-font-weight:bold;--chatroom-head-title-padding-right:12px;--muc-toolbar-btn-color:#7E7E7E;--muc-toolbar-btn-disabled-color:lightgray;--occupants-background-color:#F3F3F3;--occupants-border-left:0px;--occupants-border-bottom:0px;--separator-text-color:#AAA;--chat-separator-border-bottom:1px solid #AAA;--chatroom-separator-border-bottom:1px solid #AAA;--chatroom-message-input-border-top:1px solid #CCC;--chatbox-message-input-border-top:1px solid #CCC;--fullpage-chatbox-button-size:24px;--list-toggle-font-weight:bold;--list-item-link-color:#F1F1F1;--list-item-link-hover-color:#DDD;--list-item-open-color:#444;--list-item-open-hover-color:#444}.conversejs .oauth-providers{text-align:center}.conversejs .oauth-providers .oauth-provider{margin:1em 0}.conversejs .oauth-providers .oauth-provider .oauth-login{margin-left:0;color:var(--link-color);font-size:var(--font-size-large)}.conversejs .oauth-providers .oauth-provider .oauth-login:hover{color:var(--link-hover-color)}.conversejs .oauth-providers .oauth-provider .oauth-login i{color:var(--link-color);font-size:var(--font-size-huge);margin-right:.5em}.conversejs .set-xmpp-status .chat-status--online,.conversejs .xmpp-status .chat-status--online{color:var(--chat-status-online)}.conversejs .set-xmpp-status .chat-status--busy,.conversejs .xmpp-status .chat-status--busy{color:var(--chat-status-busy)}.conversejs .set-xmpp-status .chat-status--away,.conversejs .xmpp-status .chat-status--away{color:var(--chat-status-away)}.conversejs .set-xmpp-status .fa-times-circle,.conversejs .set-xmpp-status .far.fa-circle,.conversejs .xmpp-status .fa-times-circle,.conversejs .xmpp-status .far.fa-circle{color:var(--subdued-color)}.conversejs .set-xmpp-status .chat-status{padding-right:.5em}.conversejs .room-info{font-size:var(--font-size-small);font-style:normal;font-weight:400}.conversejs .room-info li.room-info{display:block;margin-left:5px}.conversejs .room-info p.room-info{line-height:var(--line-height);margin:0;display:block;white-space:normal}.conversejs div.room-info{padding:.3em 0;clear:left;width:100%}.conversejs #controlbox{order:-1;color:var(--controlbox-text-color);margin-right:calc(3 * var(--chat-gutter))}.conversejs #controlbox converse-brand-logo{width:100%;display:block}.conversejs #controlbox converse-brand-heading{width:100%;display:block}.conversejs #controlbox .brand-name-wrapper{font-size:200%}.conversejs #controlbox .brand-name-wrapper--fullscreen{font-size:100%}.conversejs #controlbox .open-rooms-toggle,.conversejs #controlbox .open-rooms-toggle .fa{color:var(--groupchats-header-color)!important}.conversejs #controlbox .open-rooms-toggle .fa:hover,.conversejs #controlbox .open-rooms-toggle:hover{color:var(--chatroom-head-bg-color-dark)!important}.conversejs #controlbox .box-flyout{background-color:var(--controlbox-pane-background-color)}.conversejs #controlbox.logged-out .box-flyout .controlbox-pane{overflow-y:auto}.conversejs #controlbox form.search-xmpp-contact{margin:0;padding-left:5px;padding:0 0 5px 5px}.conversejs #controlbox form.search-xmpp-contact input{width:8em}.conversejs #controlbox .msgs-indicator{margin-right:.5em}.conversejs #controlbox a.subscribe-to-user{padding-left:2em;font-weight:700}.conversejs #controlbox #converse-register{opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease;background-color:var(--controlbox-pane-background-color)}.conversejs #controlbox #converse-register .title{font-weight:700}.conversejs #controlbox #converse-register .info{color:green;font-size:90%;margin:1.5em 0}.conversejs #controlbox #converse-register .form-errors{color:var(--error-color);margin:1em 0}.conversejs #controlbox #converse-register .provider-title{font-size:var(--font-size-huge);margin:0}.conversejs #controlbox #converse-register .provider-score{width:178px;margin-bottom:8px}.conversejs #controlbox #converse-register .form-help .url{font-weight:700;color:var(--link-color)}.conversejs #controlbox #converse-register .input-group{display:table;margin:auto;width:100%}.conversejs #controlbox #converse-register .input-group span{overflow-x:hidden;text-overflow:ellipsis;max-width:110px}.conversejs #controlbox #converse-register .input-group input[name=username],.conversejs #controlbox #converse-register .input-group span{display:table-cell;text-align:left}.conversejs #controlbox #converse-register .instructions{color:gray;font-size:85%}.conversejs #controlbox #converse-register .instructions:hover{color:var(--controlbox-text-color)}.conversejs #controlbox .conn-feedback{color:var(--controlbox-head-color)}.conversejs #controlbox .conn-feedback.error{color:var(--error-color)}.conversejs #controlbox .conn-feedback p{padding-bottom:1em}.conversejs #controlbox .conn-feedback p.feedback-subject.error{font-weight:700}.conversejs #controlbox #converse-login-panel,.conversejs #controlbox #converse-register-panel{padding-top:0;padding-bottom:0}.conversejs #controlbox #converse-login-panel{flex-direction:row}.conversejs #controlbox .toggle-register-login{font-weight:700}.conversejs #controlbox .controlbox-pane .userinfo{padding-bottom:1em}.conversejs #controlbox .controlbox-pane .userinfo .username{margin-left:.5em;overflow:hidden;text-overflow:ellipsis}.conversejs #controlbox .controlbox-pane .userinfo .profile{margin-bottom:.75em}.conversejs #controlbox #chatrooms{padding:0}.conversejs #controlbox #chatrooms .add-chatroom{margin:0;padding:0}.conversejs #controlbox #chatrooms .add-chatroom input[type=button],.conversejs #controlbox #chatrooms .add-chatroom input[type=submit],.conversejs #controlbox #chatrooms .add-chatroom input[type=text]{width:100%}.conversejs #controlbox .controlbox-section .controlbox-heading{font-family:var(--heading-font);color:var(--controlbox-heading-color);font-weight:var(--controlbox-heading-font-weight);padding:0;font-size:1.1em;line-height:1.1em;text-transform:uppercase}.conversejs #controlbox .controlbox-section .controlbox-heading--groupchats{color:var(--groupchats-header-color)}.conversejs #controlbox .controlbox-section .controlbox-heading--contacts{color:var(--chat-head-color-dark)}.conversejs #controlbox .controlbox-section .controlbox-heading--headline{color:var(--headline-head-color)}.conversejs #controlbox .controlbox-section .controlbox-heading__btn{cursor:pointer;font-size:1em;padding:0;margin:var(--controlbox-heading-top-margin) 0 var(--inline-action-margin) 0;min-width:25px;text-align:center}.conversejs #controlbox .controlbox-section .controlbox-heading__btn.fa-vcard{margin-top:1em}.conversejs #controlbox .dropdown a{width:143px;display:inline-block}.conversejs #controlbox .dropdown li{list-style:none;padding-left:0}.conversejs #controlbox .dropdown dd ul{padding:0;list-style:none;position:absolute;left:0;top:0;width:100%;z-index:21;background-color:var(--light-background-color)}.conversejs #controlbox .dropdown dd ul li:hover{background-color:var(--highlight-color)}.conversejs #controlbox .dropdown dd.search-xmpp{height:0}.conversejs #controlbox .dropdown dd.search-xmpp .contact-form-container{position:absolute;z-index:22}.conversejs #controlbox .dropdown dd.search-xmpp .contact-form-container form{box-shadow:1px 4px 10px 1px rgba(0,0,0,.4);background-color:#fff}.conversejs #controlbox .dropdown dd.search-xmpp li:hover{background-color:var(--light-background-color)}.conversejs #controlbox .dropdown dt a span{cursor:pointer;display:block;padding:4px 7px 0 5px}.conversejs #controlbox .controlbox-panes{background-color:var(--controlbox-pane-background-color);border-right:.2143rem solid var(--panel-divider-color);height:100%;overflow-y:auto}.conversejs #controlbox .controlbox-subtitle{font-size:90%;padding:.5em;text-align:right}.conversejs #controlbox .controlbox-pane{background-color:var(--controlbox-pane-background-color);border:0;font-size:var(--font-size);left:0;text-align:left;overflow-x:hidden;padding:0 0 1em 0}.conversejs #controlbox .controlbox-pane .controlbox-padded{padding-left:1em;padding-right:1em;align-items:center;line-height:normal}.conversejs #controlbox .controlbox-pane .controlbox-padded .change-status{min-width:25px;text-align:center}.conversejs #controlbox .controlbox-pane .add-converse-contact{margin:0 0 .75em 0}.conversejs #controlbox .controlbox-pane .chatbox-btn{margin:0}.conversejs #controlbox .controlbox-pane .switch-form{text-align:center;padding:2em 0}.conversejs #controlbox .controlbox-pane dd{margin-left:0;margin-bottom:0}.conversejs #controlbox .controlbox-pane dd.odd{background-color:#dceac5}.conversejs #controlbox .add-xmpp-contact{padding:1em .5em}.conversejs #controlbox .add-xmpp-contact input{margin:0 0 1rem;width:100%}.conversejs #controlbox .add-xmpp-contact button{width:100%}.conversejs converse-chats.converse-overlayed{display:flex;flex-direction:row-reverse}.conversejs converse-chats.converse-overlayed .toggle-controlbox{order:-2;text-align:center;background-color:var(--link-color);border-top-left-radius:var(--button-border-radius);border-top-right-radius:var(--button-border-radius);color:#0a0a0a;float:right;height:100%;margin:0 var(--chat-gutter);padding:1em}.conversejs converse-chats.converse-overlayed .toggle-controlbox span{color:var(--inverse-link-color)}.conversejs converse-chats.converse-overlayed #controlbox{order:-1;min-width:var(--controlbox-width)!important;width:var(--controlbox-width)}.conversejs converse-chats.converse-overlayed #controlbox .box-flyout{min-width:var(--controlbox-width)!important;width:var(--controlbox-width)}.conversejs converse-chats.converse-overlayed #controlbox .login-trusted{white-space:nowrap;font-size:90%}.conversejs converse-chats.converse-overlayed #controlbox #converse-login-trusted{margin-top:.5em}.conversejs converse-chats.converse-overlayed #controlbox:not(.logged-out) .controlbox-head{height:15px}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;min-height:0}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head .brand-heading{color:var(--controlbox-text-color);font-size:2em}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-head .chatbox-btn{color:var(--controlbox-head-color);margin:0}.conversejs converse-chats.converse-overlayed #controlbox #converse-login,.conversejs converse-chats.converse-overlayed #controlbox #converse-register{flex:0 0 100%;max-width:100%;padding-bottom:0}.conversejs converse-chats.converse-overlayed #controlbox #converse-register .button-cancel{font-size:90%}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-panes{border-radius:var(--chatbox-border-radius)}.conversejs converse-chats.converse-embedded .toggle-controlbox,.conversejs converse-chats.converse-fullscreen .toggle-controlbox{display:none}.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{position:relative;width:100%;padding-right:15px;padding-left:15px;margin:0}@media(min-width:768px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 25%;max-width:25%}}@media(min-width:1200px){.conversejs converse-chats.converse-embedded #controlbox,.conversejs converse-chats.converse-fullscreen #controlbox,.conversejs converse-chats.converse-mobile #controlbox{flex:0 0 16.6666666667%;max-width:16.6666666667%}}.conversejs converse-chats.converse-embedded #controlbox.logged-out,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out,.conversejs converse-chats.converse-mobile #controlbox.logged-out{flex:0 0 100%;max-width:100%}.conversejs converse-chats.converse-embedded #controlbox .flyout,.conversejs converse-chats.converse-fullscreen #controlbox .flyout,.conversejs converse-chats.converse-mobile #controlbox .flyout{border-radius:0}.conversejs converse-chats.converse-embedded #controlbox #converse-login-panel,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login-panel,.conversejs converse-chats.converse-mobile #controlbox #converse-login-panel{border-radius:0}.conversejs converse-chats.converse-embedded #controlbox #converse-login-panel .converse-form,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login-panel .converse-form,.conversejs converse-chats.converse-mobile #controlbox #converse-login-panel .converse-form{padding:3em 2em 3em}.conversejs converse-chats.converse-embedded #controlbox .toggle-register-login,.conversejs converse-chats.converse-fullscreen #controlbox .toggle-register-login,.conversejs converse-chats.converse-mobile #controlbox .toggle-register-login{line-height:var(--line-height-huge)}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo{flex:0 0 100%;max-width:100%;margin-top:5em;margin-bottom:1em}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-heading{width:100%;font-size:500%;padding:.7em 0 0 0;opacity:.8;color:var(--brand-heading-color)}.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-subtitle,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-subtitle,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-subtitle{font-size:90%;padding:.5em}@media screen and (max-width:480px){.conversejs converse-chats.converse-embedded #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-fullscreen #controlbox converse-brand-logo .brand-heading,.conversejs converse-chats.converse-mobile #controlbox converse-brand-logo .brand-heading{font-size:300%}}.conversejs converse-chats.converse-embedded #controlbox.logged-out,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out,.conversejs converse-chats.converse-mobile #controlbox.logged-out{flex:0 0 100%;max-width:100%;opacity:0;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease;animation-timing-function:ease;width:100%}.conversejs converse-chats.converse-embedded #controlbox.logged-out .box-flyout,.conversejs converse-chats.converse-fullscreen #controlbox.logged-out .box-flyout,.conversejs converse-chats.converse-mobile #controlbox.logged-out .box-flyout{width:100%}.conversejs converse-chats.converse-embedded #controlbox .box-flyout,.conversejs converse-chats.converse-fullscreen #controlbox .box-flyout,.conversejs converse-chats.converse-mobile #controlbox .box-flyout{border:0;width:100%;z-index:1;background-color:var(--controlbox-head-color)}.conversejs converse-chats.converse-embedded #controlbox .box-flyout .controlbox-head,.conversejs converse-chats.converse-fullscreen #controlbox .box-flyout .controlbox-head,.conversejs converse-chats.converse-mobile #controlbox .box-flyout .controlbox-head{display:none}.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{position:relative;width:100%;padding-right:15px;padding-left:15px;flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}@media(min-width:576px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}}@media(min-width:768px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 66.6666666667%;max-width:66.6666666667%;margin-left:16.6666666667%}}@media(min-width:992px){.conversejs converse-chats.converse-embedded #controlbox #converse-login,.conversejs converse-chats.converse-embedded #controlbox #converse-register,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register,.conversejs converse-chats.converse-mobile #controlbox #converse-login,.conversejs converse-chats.converse-mobile #controlbox #converse-register{flex:0 0 50%;max-width:50%;margin-left:25%}}.conversejs converse-chats.converse-embedded #controlbox #converse-login .instructions,.conversejs converse-chats.converse-embedded #controlbox #converse-login .title,.conversejs converse-chats.converse-embedded #controlbox #converse-register .instructions,.conversejs converse-chats.converse-embedded #controlbox #converse-register .title,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login .instructions,.conversejs converse-chats.converse-fullscreen #controlbox #converse-login .title,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register .instructions,.conversejs converse-chats.converse-fullscreen #controlbox #converse-register .title,.conversejs converse-chats.converse-mobile #controlbox #converse-login .instructions,.conversejs converse-chats.converse-mobile #controlbox #converse-login .title,.conversejs converse-chats.converse-mobile #controlbox #converse-register .instructions,.conversejs converse-chats.converse-mobile #controlbox #converse-register .title{margin:1em 0}.conversejs converse-chats.converse-embedded #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-embedded #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-embedded #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-embedded #controlbox #converse-register input[type=submit],.conversejs converse-chats.converse-fullscreen #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-fullscreen #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-fullscreen #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-fullscreen #controlbox #converse-register input[type=submit],.conversejs converse-chats.converse-mobile #controlbox #converse-login input[type=button],.conversejs converse-chats.converse-mobile #controlbox #converse-login input[type=submit],.conversejs converse-chats.converse-mobile #controlbox #converse-register input[type=button],.conversejs converse-chats.converse-mobile #controlbox #converse-register input[type=submit]{width:auto}.conversejs converse-chats.converse-fullscreen #controlbox{margin-left:-15px}.conversejs converse-chats.converse-fullscreen .controlbox-panes{padding-top:2em}.conversejs converse-chats.converse-overlayed .brand-heading{padding-top:.8rem;padding-left:.8rem;width:100%}.conversejs converse-chats.converse-overlayed .converse-svg-logo{height:1em}.conversejs converse-chats.converse-overlayed #controlbox #converse-login-panel{height:100%}.conversejs converse-chats.converse-overlayed #controlbox .controlbox-panes{margin-top:.5em}@media(max-width:767.98px){.conversejs{left:0;right:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.conversejs .converse-chatboxes{margin:0!important;flex-direction:row!important;justify-content:space-between}.conversejs .converse-chatboxes .converse-chatroom{font-size:14px}.conversejs .converse-chatboxes .chatbox .box-flyout{margin-left:15px;left:0;bottom:0;border-radius:0;width:100vw!important;height:var(--fullpage-chat-height)}.conversejs .converse-chatboxes #controlbox{width:100vw!important}.conversejs .converse-chatboxes #controlbox .box-flyout{width:100vw!important;height:var(--fullpage-chat-height);margin-right:-15px}.conversejs .converse-chatboxes #controlbox .sidebar{display:block}.conversejs .converse-chatboxes.sidebar-open .chatbox:not(#controlbox){display:none}.conversejs .converse-chatboxes.sidebar-open #controlbox .controlbox-pane{display:block}}","body.converse-fullscreen{margin:0;background-color:var(--global-background-color)}",".conversejs-bg .subdued{opacity:.35}.conversejs-bg .converse-brand{display:flex;justify-content:space-between;margin-top:15vh;-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-duration:5s;animation-duration:5s;-webkit-animation-timing-function:ease;animation-timing-function:ease}.conversejs-bg .converse-brand__padding{position:relative;width:100%;padding-right:15px;padding-left:15px;padding:0}@media(min-width:768px){.conversejs-bg .converse-brand__padding{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media(min-width:992px){.conversejs-bg .converse-brand__padding{flex:0 0 25%;max-width:25%}}@media(min-width:1200px){.conversejs-bg .converse-brand__padding{flex:0 0 16.6666666667%;max-width:16.6666666667%}}.conversejs-bg .converse-brand__heading{position:relative;width:100%;padding-right:15px;padding-left:15px;padding:0;display:flex;justify-content:center;margin:auto}@media(min-width:768px){.conversejs-bg .converse-brand__heading{font-size:4em;flex:0 0 66.6666666667%;max-width:66.6666666667%}}@media(min-width:992px){.conversejs-bg .converse-brand__heading{font-size:5em;flex:0 0 75%;max-width:75%}}@media(min-width:1200px){.conversejs-bg .converse-brand__heading{font-size:6em;flex:0 0 83.3333333333%;max-width:83.3333333333%}}.conversejs-bg .converse-brand__heading svg{margin-top:.3em}.conversejs-bg .converse-brand__text{color:#fff;font-family:var(--branding-font);font-weight:400;text-align:center;font-size:140%;margin-left:.2em}.conversejs-bg .converse-brand__text .byline{margin:0;font-family:var(--heading-font);font-size:.3em;opacity:.55;margin-bottom:2em;margin-left:-2.7em;word-spacing:5px}",".conversejs .chat-head-headline{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-head.chat-head-chatbox{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-body{background-color:var(--headline-head-color)}.conversejs .chatbox.headlines .chat-body .chat-message{color:var(--headline-message-color)}.conversejs .chatbox.headlines .chat-content{height:100%}.conversejs .message.chat-msg.headline .chat-msg__body{margin-left:0}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .box-flyout{background-color:var(--headline-head-color)}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .chat-head.chat-head-chatbox{background-color:var(--headline-head-color)}.conversejs converse-chats.converse-fullscreen .chatbox.headlines .flyout{border-color:var(--headline-head-color)}","converse-mam-placeholder .mam-placeholder{position:relative;height:2em;margin:.5em 0}converse-mam-placeholder .mam-placeholder:after,converse-mam-placeholder .mam-placeholder:before{content:\"\";display:block;position:absolute;left:0;right:0}converse-mam-placeholder .mam-placeholder:before{height:1em;top:1em;background:linear-gradient(-135deg,#d3d3d3 .5em,transparent 0) 0 .5em,linear-gradient(135deg,#d3d3d3 .5em,transparent 0) 0 .5em;background-position:top left;background-repeat:repeat-x;background-size:1em 1em}converse-mam-placeholder .mam-placeholder:after{height:1em;top:.75em;background:linear-gradient(-135deg,var(--chat-background-color) .5em,transparent 0) 0 .5em,linear-gradient(135deg,var(--chat-background-color) .5em,transparent 0) 0 .5em;background-position:top left;background-repeat:repeat-x;background-size:1em 1em}",".conversejs converse-chats.converse-overlayed converse-minimized-chats{order:100}.conversejs converse-chats.converse-overlayed #minimized-chats{width:var(--minimized-chats-width);margin-bottom:0;border-top-left-radius:var(--chatbox-border-radius);border-top-right-radius:var(--chatbox-border-radius);color:var(--inverse-link-color);margin-right:var(--chat-gutter);padding:0}.conversejs converse-chats.converse-overlayed #minimized-chats .badge{bottom:8px;border:1px solid var(--overlayed-badge-color)}.conversejs converse-chats.converse-overlayed #minimized-chats #toggle-minimized-chats{border-top-left-radius:var(--chatbox-border-radius);border-top-right-radius:var(--chatbox-border-radius);background-color:var(--link-color);padding:1em 0 0 0;text-align:center;color:#fff;white-space:nowrap;overflow-y:hidden;text-overflow:ellipsis;display:block;height:45px;width:9em}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat{cursor:pointer;padding:1px 0 1px 5px;color:var(--chat-head-text-color);line-height:15px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat:hover{text-decoration:none}.conversejs converse-chats.converse-overlayed #minimized-chats a.restore-chat:visited{color:var(--chat-head-text-color)}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout{flex-direction:column-reverse;bottom:45px;width:var(--minimized-chats-width)}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout .chat-head{min-height:0;padding:.3em;border-radius:var(--chatbox-border-radius);height:35px;margin-bottom:.2em;width:100%;max-width:9em;flex-wrap:nowrap}.conversejs converse-chats.converse-overlayed #minimized-chats .minimized-chats-flyout.minimized{height:auto}.conversejs converse-chats.converse-overlayed #minimized-chats .unread-message-count{font-weight:700;background-color:#fff;border:1px solid;text-shadow:1px 1px 0 var(--text-shadow-color);color:var(--warning-color);border-radius:5px;padding:2px 4px;font-size:16px;text-align:center;position:absolute;right:116px;bottom:10px}.conversejs converse-chats.converse-overlayed #minimized-chats .chat-head-message-count-hidden,.conversejs converse-chats.converse-overlayed #minimized-chats .unread-message-count-hidden{display:none}",".conversejs [hidden]{display:none}.conversejs .visually-hidden{position:absolute;clip:rect(0,0,0,0)}.conversejs .form-group .suggestion-box{width:100%}.conversejs .suggestion-box{position:relative}.conversejs .suggestion-box mark{background:var(--completion-light-color)}.conversejs .suggestion-box>input{display:block}.conversejs .suggestion-box .suggestion-box__results,.conversejs .suggestion-box>ul{border-radius:.3em;border:1px solid rgba(0,0,0,.3);box-shadow:.05em .2em .6em rgba(0,0,0,.1);box-sizing:border-box;left:0;list-style:none;margin:.2em 0 0;min-width:100%;padding:0;position:absolute;right:0;text-shadow:none;z-index:2}.conversejs .suggestion-box .suggestion-box__results:before,.conversejs .suggestion-box>ul:before{content:\"\";position:absolute;top:-.43em;left:1em;width:0;height:0;padding:.4em;background:#fff;border:inherit;border-right:0;border-bottom:0;transform:rotate(45deg);z-index:-1}.conversejs .suggestion-box .suggestion-box__results>li,.conversejs .suggestion-box>ul>li{background:rgba(255,255,255,.9);background:linear-gradient(to bottom right,#fff,rgba(255,255,255,.9));color:var(--text-color);cursor:pointer;display:flex;overflow-x:hidden;padding:1em;position:relative;text-overflow:ellipsis}.conversejs .suggestion-box .suggestion-box__results--below{top:2em}.conversejs .suggestion-box .suggestion-box__results--above{bottom:4.5em}.conversejs .suggestion-box .suggestion-box__results--above:before{display:none}.conversejs .suggestion-box .suggestion-box__results--above:after{z-index:-1;content:\"\";position:absolute;bottom:-.43em;left:1em;width:0;height:0;padding:.4em;background:#fff;border:inherit;border-left:0;border-top:0;transform:rotate(45deg)}.conversejs .suggestion-box>ul:empty,.conversejs .suggestion-box>ul[hidden]{display:none}@supports(transform:scale(0)){.conversejs .suggestion-box>ul{transition:.3s cubic-bezier(.4,.2,.5,1.4);transform-origin:1.43em -.43em}.conversejs .suggestion-box>ul:empty,.conversejs .suggestion-box>ul[hidden]{opacity:0;transform:scale(0);display:block;transition-timing-function:ease}}.conversejs .suggestion-box>ul>li[aria-selected=true]{background:var(--completion-dark-color);color:var(--inverse-link-color)}.conversejs .suggestion-box li:hover mark{background:var(--completion-light-color);color:var(--inverse-link-color)}.conversejs .suggestion-box li[aria-selected=true] mark{background:var(--completion-normal-color);color:inherit}.conversejs.converse-fullscreen .suggestion-box__results--above{bottom:4.5em}.conversejs.converse-overlayed .suggestion-box__results--above{bottom:3.5em}",".conversejs converse-muc.chatroom converse-muc-bottom-panel{display:contents;height:3em;padding:.5em;text-align:center;font-size:var(--font-size-small);background-color:var(--chatroom-head-bg-color);color:#fff}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--muted{height:4em;width:100%}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--nickname{padding:0;height:16em}.conversejs converse-muc.chatroom converse-muc-bottom-panel.muc-bottom-panel--nickname .muc-form-container .chatroom-form{padding-top:2em;padding-bottom:0}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .suggestion-box__results--above{bottom:4.5em}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea:active,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea:focus,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input:active,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input:focus{outline-color:var(--chatroom-head-bg-color)!important}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea.correcting,.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage input.correcting{background-color:var(--chatroom-correcting-color)}.conversejs converse-muc.chatroom converse-muc-bottom-panel .sendXMPPMessage .chat-textarea{width:100%;border:none;border-bottom-right-radius:0}",".conversejs converse-muc.chatroom .box-flyout .occupants{display:flex;flex-direction:column;justify-content:space-between;overflow-x:hidden;overflow-y:hidden;vertical-align:top;background-color:var(--occupants-background-color);border-left:var(--occupants-border-left);padding:.5em;max-width:75%;min-width:20%;flex:0 0 25%}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header{display:flex;flex-direction:column}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header .hide-occupants{align-self:flex-end;cursor:pointer;font-size:var(--font-size-small)}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-header--title{margin-top:.5em;margin-bottom:.5em;display:flex;flex-direction:row}.conversejs converse-muc.chatroom .box-flyout .occupants .fa-user-plus{margin-right:.25em}.conversejs converse-muc.chatroom .box-flyout .occupants .occupants-heading{font-family:var(--heading-font);color:var(--groupchats-header-color-dark);padding-left:0;margin-right:1em}.conversejs converse-muc.chatroom .box-flyout .occupants .suggestion-box ul{padding:0}.conversejs converse-muc.chatroom .box-flyout .occupants .suggestion-box ul li{padding:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul{padding:0;margin-bottom:.5em;overflow-x:hidden;overflow-y:auto;list-style:none}.conversejs converse-muc.chatroom .box-flyout .occupants ul.occupant-list{overflow-y:auto;flex-basis:0;flex-grow:1}.conversejs converse-muc.chatroom .box-flyout .occupants ul li{cursor:default;display:block;font-size:var(--font-size-small);overflow:hidden;padding:.25em .25em .25em 0;text-overflow:ellipsis}.conversejs converse-muc.chatroom .box-flyout .occupants ul li .fa{margin-right:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.feature{font-size:var(--font-size-tiny)}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant{cursor:pointer}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge{display:flex;justify-content:space-between;flex-wrap:wrap}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge .occupant-badges{display:flex;justify-content:flex-end;flex-wrap:wrap;flex-direction:row}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-nick-badge .occupant-badges span{margin-right:.25rem}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant div.row.no-gutters{flex-wrap:nowrap;min-height:1.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .badge{margin-bottom:.125rem}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status{display:inline-block;margin:0 .5em .125em 0;width:.5em;height:.5em}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-chat,.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-online{background-color:#1a9707}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-dnd{background-color:red}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-away{background-color:#ff8c00}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-xa{background-color:orange}.conversejs converse-muc.chatroom .box-flyout .occupants ul li.occupant .occupant-status.occupant-offline{background-color:#a9a9a9}",".conversejs converse-muc.chatroom .chat-head-chatroom{color:var(--chatroom-head-color);background-color:var(--chatroom-head-bg-color);border-bottom:var(--chatroom-head-border-bottom)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc{color:var(--chatroom-head-color);display:var(--chatroom-head-description-display)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc a{color:var(--chatroom-head-description-link-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chat-head__desc:hover button{display:inline-block}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title .btn--transparent i{color:var(--chatroom-head-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title .chatbox-title__text--bookmarked{margin-left:.5em;color:var(--chatroom-head-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__buttons{background-color:var(--chatroom-head-bg-color)}.conversejs converse-muc.chatroom .chat-head-chatroom a.chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:hover.chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:not([href]):not([tabindex]).chatbox-btn.fa,.conversejs converse-muc.chatroom .chat-head-chatroom a:visited.chatbox-btn.fa{color:var(--chat-head-text-color)}.conversejs converse-muc.chatroom .chat-head-chatroom a.chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:hover.chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:not([href]):not([tabindex]).chatbox-btn.fa.button-on:before,.conversejs converse-muc.chatroom .chat-head-chatroom a:visited.chatbox-btn.fa.button-on:before{color:var(--chatroom-head-button-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-btn.button-on:before{color:var(--chatroom-head-button-color)}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__text{display:var(--heading-display);font-weight:var(--chatroom-head-title-font-weight);margin:auto 0;padding-right:var(--chatroom-head-title-padding-right);white-space:nowrap}.conversejs converse-muc.chatroom .chat-head-chatroom .chatbox-title__text .chatroom-jid{font-size:var(--font-size-small)}",".conversejs #converse-roster{text-align:left;width:100%;position:relative;margin:0;height:var(--roster-height);padding:0;overflow:hidden;height:calc(100% - 70px)}.conversejs #converse-roster #online-count{display:none}.conversejs #converse-roster .search-xmpp ul li.chat-info{padding-left:10px}.conversejs #converse-roster .roster-filter-form{width:100%}.conversejs #converse-roster .roster-filter-form .button-group{padding:.2em}.conversejs #converse-roster .roster-filter-form span{padding:.3em;cursor:pointer;min-width:25px;text-align:center}.conversejs #converse-roster .roster-filter-form .roster-filter{width:100%;margin:.2em;font-size:calc(var(--font-size) - 2px)}.conversejs #converse-roster .roster-filter-form .state-type{font-size:calc(var(--font-size) - 2px);width:100%}.conversejs #converse-roster .roster-contacts{padding:0;margin:0 0 .2em 0;height:100%;overflow-x:hidden;overflow-y:auto;color:var(--text-color)}.conversejs #converse-roster .roster-contacts converse-roster-contact{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;justify-content:space-between}.conversejs #converse-roster .roster-contacts .group-toggle{font-family:var(--heading-font);display:block;width:100%;margin:.75em 0 .25em 0}.conversejs #converse-roster .roster-contacts .group-toggle,.conversejs #converse-roster .roster-contacts .group-toggle .fa{color:var(--chat-head-color-dark)!important}.conversejs #converse-roster .roster-contacts .group-toggle .fa:hover,.conversejs #converse-roster .roster-contacts .group-toggle:hover{color:var(--chat-head-color-darker)!important}.conversejs #converse-roster .roster-contacts .current-xmpp-contact{margin:.25em 0}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status{vertical-align:middle;font-size:.6em;margin-right:0;margin-left:-.7em;margin-bottom:-1.5em;border-radius:50%;border:2px solid var(--occupants-background-color)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--offline{margin-right:.8em}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--online{color:var(--chat-status-online)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--busy{color:var(--chat-status-busy)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--away{color:var(--chat-status-away)}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .chat-status--offline{display:none}.conversejs #converse-roster .roster-contacts .current-xmpp-contact .fa-times-circle,.conversejs #converse-roster .roster-contacts .current-xmpp-contact .far.fa-circle{color:var(--subdued-color)}.conversejs #converse-roster .roster-contacts li.requesting-xmpp-contact a{line-height:var(--line-height)}.conversejs #converse-roster .roster-contacts li.requesting-xmpp-contact .req-contact-name{padding:0 .2em 0 0}.conversejs #converse-roster .roster-contacts li .open-chat{margin:0;padding:0}.conversejs #converse-roster .roster-contacts li .open-chat.unread-msgs{font-weight:700}.conversejs #converse-roster .roster-contacts li .open-chat.unread-msgs .contact-name{width:70%}.conversejs #converse-roster .roster-contacts li .open-chat .msgs-indicator{color:#fff;background-color:var(--chat-head-color);opacity:1;border-radius:10%;padding:.2em .4em;font-size:var(--font-size-small);margin-right:0}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name{padding:0;margin:0;max-width:85%;float:none;height:100%}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name.unread-msgs{max-width:60%}.conversejs #converse-roster .roster-contacts li .open-chat .contact-name.contact-name--offline{margin-left:.25em}.conversejs #converse-roster .roster-contacts li.odd{background-color:#dceac5}.conversejs #converse-roster .roster-contacts li a,.conversejs #converse-roster .roster-contacts li span{white-space:nowrap;text-overflow:ellipsis}.conversejs #converse-roster .roster-contacts li .span{display:inline-block}.conversejs #converse-roster .roster-contacts li .decline-xmpp-request{margin-left:5px}.conversejs #converse-roster .roster-contacts li:hover{background-color:var(controlbox-pane-bg-hover-color)}.conversejs #converse-roster span.pending-contact-name{line-height:var(--line-height);width:100%}"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/converse.js b/dist/converse.js index 9ad1cbc..9ce2dbb 100644 --- a/dist/converse.js +++ b/dist/converse.js @@ -3915,7 +3915,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.0 by @mathia /***/ }), -/***/ 9598: +/***/ 5528: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -6806,6 +6806,11 @@ const nativeMin = Math.min; * merging two arrays, the values in the 2nd arrray will replace the * corresponding values (i.e. those with the same indexes) in the first array. * When `concatArrays` is set to `true`, arrays will be concatenated instead. + * @param {boolean} [options.dedupeArrays=false] + * This option is similar to `concatArrays`, except that the concatenated + * array will also be deduplicated. Thus any entries that are concatenated to the + * existing array, which are already contained in the existing array, will + * first be removed. * @param {boolean} [options.promise=false] * By default, when calling a merge-debounced function that doesn't execute * immediately, you'll receive the result from its previous execution, or @@ -6832,7 +6837,7 @@ const nativeMin = Math.min; */ function mergebounce(func, wait, options = {}) { - let lastArgs = [], + let lastArgs, lastThis, maxWait, result, @@ -6856,8 +6861,7 @@ function mergebounce(func, wait, options = {}) { function invokeFunc(time) { const args = lastArgs; const thisArg = lastThis; - lastArgs = []; - lastThis = undefined; + lastArgs = lastThis = undefined; lastInvokeTime = time; result = func.apply(thisArg, args); @@ -6912,8 +6916,7 @@ function mergebounce(func, wait, options = {}) { return invokeFunc(time); } - lastArgs = []; - lastThis = undefined; + lastArgs = lastThis = undefined; return options.promise ? promise : result; } @@ -6923,8 +6926,7 @@ function mergebounce(func, wait, options = {}) { } lastInvokeTime = 0; - lastArgs = []; - lastCallTime = lastThis = timerId = undefined; + lastArgs = lastCallTime = lastThis = timerId = undefined; } function flush() { @@ -6933,25 +6935,29 @@ function mergebounce(func, wait, options = {}) { function concatArrays(objValue, srcValue) { if (Array.isArray(objValue) && Array.isArray(srcValue)) { - return objValue.concat(srcValue); + if (options !== null && options !== void 0 && options.dedupeArrays) { + return objValue.concat(srcValue.filter(i => objValue.indexOf(i) === -1)); + } else { + return objValue.concat(srcValue); + } } } function mergeArguments(args) { - if (lastArgs.length) { + var _lastArgs; + + if ((_lastArgs = lastArgs) !== null && _lastArgs !== void 0 && _lastArgs.length) { if (!args.length) { return lastArgs; } - if (options === null || options === void 0 ? void 0 : options.concatArrays) { + if (options !== null && options !== void 0 && options.concatArrays || options !== null && options !== void 0 && options.dedupeArrays) { return lodash_es_mergeWith(lastArgs, args, concatArrays); } else { return lodash_es_merge(lastArgs, args); } - } else if (args.length) { - return args; } else { - return []; + return args || []; } } @@ -6988,8 +6994,2484 @@ function mergebounce(func, wait, options = {}) { } /* harmony default export */ const mergebounce_mergebounce = (mergebounce); -// EXTERNAL MODULE: ./node_modules/localforage/dist/localforage.js -var localforage = __webpack_require__(9483); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/idb.js +function getIDB() { + /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */ + try { + if (typeof indexedDB !== 'undefined') { + return indexedDB; + } + + if (typeof webkitIndexedDB !== 'undefined') { + return webkitIndexedDB; + } + + if (typeof mozIndexedDB !== 'undefined') { + return mozIndexedDB; + } + + if (typeof OIndexedDB !== 'undefined') { + return OIndexedDB; + } + + if (typeof msIndexedDB !== 'undefined') { + return msIndexedDB; + } + } catch (e) { + return; + } +} + +var idb = getIDB(); +/* harmony default export */ const utils_idb = (idb); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isIndexedDBValid.js + + +function isIndexedDBValid() { + try { + // Initialize IndexedDB; fall back to vendor-prefixed versions + // if needed. + if (!utils_idb || !utils_idb.open) { + return false; + } // We mimic PouchDB here; + // + // We test for openDatabase because IE Mobile identifies itself + // as Safari. Oh the lulz... + + + var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform); + var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1; // Safari <10.1 does not meet our requirements for IDB support + // (see: https://github.com/pouchdb/pouchdb/issues/5572). + // Safari 10.1 shipped with fetch, we can use that to detect it. + // Note: this creates issues with `window.fetch` polyfills and + // overrides; see: + // https://github.com/localForage/localForage/issues/856 + + return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' && // some outdated implementations of IDB that appear on Samsung + // and HTC Android devices <4.4 are missing IDBKeyRange + // See: https://github.com/mozilla/localForage/issues/128 + // See: https://github.com/mozilla/localForage/issues/272 + typeof IDBKeyRange !== 'undefined'; + } catch (e) { + return false; + } +} + +/* harmony default export */ const utils_isIndexedDBValid = (isIndexedDBValid); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/createBlob.js +// Abstracts constructing a Blob object, so it also works in older +// browsers that don't support the native Blob constructor. (i.e. +// old QtWebKit versions, at least). +// Abstracts constructing a Blob object, so it also works in older +// browsers that don't support the native Blob constructor. (i.e. +// old QtWebKit versions, at least). +function createBlob(parts, properties) { + /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */ + parts = parts || []; + properties = properties || {}; + + try { + return new Blob(parts, properties); + } catch (e) { + if (e.name !== 'TypeError') { + throw e; + } + + var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder; + var builder = new Builder(); + + for (var i = 0; i < parts.length; i += 1) { + builder.append(parts[i]); + } + + return builder.getBlob(properties.type); + } +} + +/* harmony default export */ const utils_createBlob = (createBlob); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/promise.js +// This is CommonJS because lie is an external dependency, so Rollup +// can just ignore it. +if (typeof Promise === 'undefined') { + // In the "nopromises" build this will just throw if you don't have + // a global promise object, but it would throw anyway later. + __webpack_require__(9236); +} + +/* harmony default export */ const utils_promise = (Promise); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/executeCallback.js +function executeCallback(promise, callback) { + if (callback) { + promise.then(function (result) { + callback(null, result); + }, function (error) { + callback(error); + }); + } +} + +/* harmony default export */ const utils_executeCallback = (executeCallback); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/executeTwoCallbacks.js +function executeTwoCallbacks(promise, callback, errorCallback) { + if (typeof callback === 'function') { + promise.then(callback); + } + + if (typeof errorCallback === 'function') { + promise.catch(errorCallback); + } +} + +/* harmony default export */ const utils_executeTwoCallbacks = (executeTwoCallbacks); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/normalizeKey.js +function normalizeKey(key) { + // Cast the key to a string, as that's all we can set as a key. + if (typeof key !== 'string') { + console.warn(`${key} used as a key, but it is not a string.`); + key = String(key); + } + + return key; +} +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/getCallback.js +function getCallback() { + if (arguments.length && typeof arguments[arguments.length - 1] === 'function') { + return arguments[arguments.length - 1]; + } +} +;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/indexeddb.js + + + + + + + + // Some code originally from async_storage.js in +// [Gaia](https://github.com/mozilla-b2g/gaia). + +const DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support'; +let supportsBlobs; +const dbContexts = {}; +const indexeddb_toString = Object.prototype.toString; // Transaction Modes + +const READ_ONLY = 'readonly'; +const READ_WRITE = 'readwrite'; // Transform a binary string to an array buffer, because otherwise +// weird stuff happens when you try to work with the binary string directly. +// It is known. +// From http://stackoverflow.com/questions/14967647/ (continues on next line) +// encode-decode-image-with-base64-breaks-image (2013-04-21) + +function _binStringToArrayBuffer(bin) { + var length = bin.length; + var buf = new ArrayBuffer(length); + var arr = new Uint8Array(buf); + + for (var i = 0; i < length; i++) { + arr[i] = bin.charCodeAt(i); + } + + return buf; +} // +// Blobs are not supported in all versions of IndexedDB, notably +// Chrome <37 and Android <5. In those versions, storing a blob will throw. +// +// Various other blob bugs exist in Chrome v37-42 (inclusive). +// Detecting them is expensive and confusing to users, and Chrome 37-42 +// is at very low usage worldwide, so we do a hacky userAgent check instead. +// +// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120 +// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916 +// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836 +// +// Code borrowed from PouchDB. See: +// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js +// + + +function _checkBlobSupportWithoutCaching(idb) { + return new utils_promise(function (resolve) { + var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE); + var blob = utils_createBlob(['']); + txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key'); + + txn.onabort = function (e) { + // If the transaction aborts now its due to not being able to + // write to the database, likely due to the disk being full + e.preventDefault(); + e.stopPropagation(); + resolve(false); + }; + + txn.oncomplete = function () { + var matchedChrome = navigator.userAgent.match(/Chrome\/(\d+)/); + var matchedEdge = navigator.userAgent.match(/Edge\//); // MS Edge pretends to be Chrome 42: + // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx + + resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43); + }; + }).catch(function () { + return false; // error, so assume unsupported + }); +} + +function _checkBlobSupport(idb) { + if (typeof supportsBlobs === 'boolean') { + return utils_promise.resolve(supportsBlobs); + } + + return _checkBlobSupportWithoutCaching(idb).then(function (value) { + supportsBlobs = value; + return supportsBlobs; + }); +} + +function _deferReadiness(dbInfo) { + var dbContext = dbContexts[dbInfo.name]; // Create a deferred object representing the current database operation. + + var deferredOperation = {}; + deferredOperation.promise = new utils_promise(function (resolve, reject) { + deferredOperation.resolve = resolve; + deferredOperation.reject = reject; + }); // Enqueue the deferred operation. + + dbContext.deferredOperations.push(deferredOperation); // Chain its promise to the database readiness. + + if (!dbContext.dbReady) { + dbContext.dbReady = deferredOperation.promise; + } else { + dbContext.dbReady = dbContext.dbReady.then(function () { + return deferredOperation.promise; + }); + } +} + +function _advanceReadiness(dbInfo) { + var dbContext = dbContexts[dbInfo.name]; // Dequeue a deferred operation. + + var deferredOperation = dbContext.deferredOperations.pop(); // Resolve its promise (which is part of the database readiness + // chain of promises). + + if (deferredOperation) { + deferredOperation.resolve(); + return deferredOperation.promise; + } +} + +function _rejectReadiness(dbInfo, err) { + var dbContext = dbContexts[dbInfo.name]; // Dequeue a deferred operation. + + var deferredOperation = dbContext.deferredOperations.pop(); // Reject its promise (which is part of the database readiness + // chain of promises). + + if (deferredOperation) { + deferredOperation.reject(err); + return deferredOperation.promise; + } +} + +function _getConnection(dbInfo, upgradeNeeded) { + return new utils_promise(function (resolve, reject) { + dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext(); + + if (dbInfo.db) { + if (upgradeNeeded) { + _deferReadiness(dbInfo); + + dbInfo.db.close(); + } else { + return resolve(dbInfo.db); + } + } + + var dbArgs = [dbInfo.name]; + + if (upgradeNeeded) { + dbArgs.push(dbInfo.version); + } + + var openreq = utils_idb.open.apply(utils_idb, dbArgs); + + if (upgradeNeeded) { + openreq.onupgradeneeded = function (e) { + var db = openreq.result; + + try { + db.createObjectStore(dbInfo.storeName); + + if (e.oldVersion <= 1) { + // Added when support for blob shims was added + db.createObjectStore(DETECT_BLOB_SUPPORT_STORE); + } + } catch (ex) { + if (ex.name === 'ConstraintError') { + console.warn('The database "' + dbInfo.name + '"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage "' + dbInfo.storeName + '" already exists.'); + } else { + throw ex; + } + } + }; + } + + openreq.onerror = function (e) { + e.preventDefault(); + reject(openreq.error); + }; + + openreq.onsuccess = function () { + resolve(openreq.result); + + _advanceReadiness(dbInfo); + }; + }); +} + +function _getOriginalConnection(dbInfo) { + return _getConnection(dbInfo, false); +} + +function _getUpgradedConnection(dbInfo) { + return _getConnection(dbInfo, true); +} + +function _isUpgradeNeeded(dbInfo, defaultVersion) { + if (!dbInfo.db) { + return true; + } + + var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName); + var isDowngrade = dbInfo.version < dbInfo.db.version; + var isUpgrade = dbInfo.version > dbInfo.db.version; + + if (isDowngrade) { + // If the version is not the default one + // then warn for impossible downgrade. + if (dbInfo.version !== defaultVersion) { + console.warn('The database "' + dbInfo.name + '"' + " can't be downgraded from version " + dbInfo.db.version + ' to version ' + dbInfo.version + '.'); + } // Align the versions to prevent errors. + + + dbInfo.version = dbInfo.db.version; + } + + if (isUpgrade || isNewStore) { + // If the store is new then increment the version (if needed). + // This will trigger an "upgradeneeded" event which is required + // for creating a store. + if (isNewStore) { + var incVersion = dbInfo.db.version + 1; + + if (incVersion > dbInfo.version) { + dbInfo.version = incVersion; + } + } + + return true; + } + + return false; +} // encode a blob for indexeddb engines that don't support blobs + + +function _encodeBlob(blob) { + return new utils_promise(function (resolve, reject) { + var reader = new FileReader(); + reader.onerror = reject; + + reader.onloadend = function (e) { + var base64 = btoa(e.target.result || ''); + resolve({ + __local_forage_encoded_blob: true, + data: base64, + type: blob.type + }); + }; + + reader.readAsBinaryString(blob); + }); +} // decode an encoded blob + + +function _decodeBlob(encodedBlob) { + var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data)); + + return utils_createBlob([arrayBuff], { + type: encodedBlob.type + }); +} // is this one of our fancy encoded blobs? + + +function _isEncodedBlob(value) { + return value && value.__local_forage_encoded_blob; +} // Specialize the default `ready()` function by making it dependent +// on the current database operations. Thus, the driver will be actually +// ready when it's been initialized (default) *and* there are no pending +// operations on the database (initiated by some other instances). + + +function _fullyReady(callback) { + var self = this; + + var promise = self._initReady().then(function () { + var dbContext = dbContexts[self._dbInfo.name]; + + if (dbContext && dbContext.dbReady) { + return dbContext.dbReady; + } + }); + + utils_executeTwoCallbacks(promise, callback, callback); + return promise; +} // Try to establish a new db connection to replace the +// current one which is broken (i.e. experiencing +// InvalidStateError while creating a transaction). + + +function _tryReconnect(dbInfo) { + _deferReadiness(dbInfo); + + var dbContext = dbContexts[dbInfo.name]; + var forages = dbContext.forages; + + for (var i = 0; i < forages.length; i++) { + const forage = forages[i]; + + if (forage._dbInfo.db) { + forage._dbInfo.db.close(); + + forage._dbInfo.db = null; + } + } + + dbInfo.db = null; + return _getOriginalConnection(dbInfo).then(db => { + dbInfo.db = db; + + if (_isUpgradeNeeded(dbInfo)) { + // Reopen the database for upgrading. + return _getUpgradedConnection(dbInfo); + } + + return db; + }).then(db => { + // store the latest db reference + // in case the db was upgraded + dbInfo.db = dbContext.db = db; + + for (var i = 0; i < forages.length; i++) { + forages[i]._dbInfo.db = db; + } + }).catch(err => { + _rejectReadiness(dbInfo, err); + + throw err; + }); +} // FF doesn't like Promises (micro-tasks) and IDDB store operations, +// so we have to do it with callbacks + + +function createTransaction(dbInfo, mode, callback, retries) { + if (retries === undefined) { + retries = 1; + } + + try { + var tx = dbInfo.db.transaction(dbInfo.storeName, mode); + callback(null, tx); + } catch (err) { + if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) { + return utils_promise.resolve().then(() => { + if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) { + // increase the db version, to create the new ObjectStore + if (dbInfo.db) { + dbInfo.version = dbInfo.db.version + 1; + } // Reopen the database for upgrading. + + + return _getUpgradedConnection(dbInfo); + } + }).then(() => { + return _tryReconnect(dbInfo).then(function () { + createTransaction(dbInfo, mode, callback, retries - 1); + }); + }).catch(callback); + } + + callback(err); + } +} + +function createDbContext() { + return { + // Running localForages sharing a database. + forages: [], + // Shared database. + db: null, + // Database readiness (promise). + dbReady: null, + // Deferred operations on the database. + deferredOperations: [] + }; +} // Open the IndexedDB database (automatically creates one if one didn't +// previously exist), using any options set in the config. + + +function _initStorage(options) { + var self = this; + var dbInfo = { + db: null + }; + + if (options) { + for (var i in options) { + dbInfo[i] = options[i]; + } + } // Get the current context of the database; + + + var dbContext = dbContexts[dbInfo.name]; // ...or create a new context. + + if (!dbContext) { + dbContext = createDbContext(); // Register the new context in the global container. + + dbContexts[dbInfo.name] = dbContext; + } // Register itself as a running localForage in the current context. + + + dbContext.forages.push(self); // Replace the default `ready()` function with the specialized one. + + if (!self._initReady) { + self._initReady = self.ready; + self.ready = _fullyReady; + } // Create an array of initialization states of the related localForages. + + + var initPromises = []; + + function ignoreErrors() { + // Don't handle errors here, + // just makes sure related localForages aren't pending. + return utils_promise.resolve(); + } + + for (var j = 0; j < dbContext.forages.length; j++) { + var forage = dbContext.forages[j]; + + if (forage !== self) { + // Don't wait for itself... + initPromises.push(forage._initReady().catch(ignoreErrors)); + } + } // Take a snapshot of the related localForages. + + + var forages = dbContext.forages.slice(0); // Initialize the connection process only when + // all the related localForages aren't pending. + + return utils_promise.all(initPromises).then(function () { + dbInfo.db = dbContext.db; // Get the connection or open a new one without upgrade. + + return _getOriginalConnection(dbInfo); + }).then(function (db) { + dbInfo.db = db; + + if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) { + // Reopen the database for upgrading. + return _getUpgradedConnection(dbInfo); + } + + return db; + }).then(function (db) { + dbInfo.db = dbContext.db = db; + self._dbInfo = dbInfo; // Share the final connection amongst related localForages. + + for (var k = 0; k < forages.length; k++) { + var forage = forages[k]; + + if (forage !== self) { + // Self is already up-to-date. + forage._dbInfo.db = dbInfo.db; + forage._dbInfo.version = dbInfo.version; + } + } + }); +} + +function getItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.get(key); + + req.onsuccess = function () { + var value = req.result; + + if (value === undefined) { + value = null; + } + + if (_isEncodedBlob(value)) { + value = _decodeBlob(value); + } + + resolve(value); + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} // Iterate over all items stored in database. + + +function iterate(iterator, callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.openCursor(); + var iterationNumber = 1; + + req.onsuccess = function () { + var cursor = req.result; + + if (cursor) { + var value = cursor.value; + + if (_isEncodedBlob(value)) { + value = _decodeBlob(value); + } + + var result = iterator(value, cursor.key, iterationNumber++); // when the iterator callback returns any + // (non-`undefined`) value, then we stop + // the iteration immediately + + if (result !== void 0) { + resolve(result); + } else { + cursor.continue(); + } + } else { + resolve(); + } + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function setItem(key, value, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + var dbInfo; + self.ready().then(function () { + dbInfo = self._dbInfo; + + if (indexeddb_toString.call(value) === '[object Blob]') { + return _checkBlobSupport(dbInfo.db).then(function (blobSupport) { + if (blobSupport) { + return value; + } + + return _encodeBlob(value); + }); + } + + return value; + }).then(function (value) { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); // The reason we don't _save_ null is because IE 10 does + // not support saving the `null` type in IndexedDB. How + // ironic, given the bug below! + // See: https://github.com/mozilla/localForage/issues/161 + + if (value === null) { + value = undefined; + } + + var req = store.put(value, key); + + transaction.oncomplete = function () { + // Cast to undefined so the value passed to + // callback/promise is the same as what one would get out + // of `getItem()` later. This leads to some weirdness + // (setItem('foo', undefined) will return `null`), but + // it's not my fault localStorage is our baseline and that + // it's weird. + if (value === undefined) { + value = null; + } + + resolve(value); + }; + + transaction.onabort = transaction.onerror = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function removeItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); // We use a Grunt task to make this safe for IE and some + // versions of Android (including those used by Cordova). + // Normally IE won't like `.delete()` and will insist on + // using `['delete']()`, but we have a build step that + // fixes this for us now. + + var req = store.delete(key); + + transaction.oncomplete = function () { + resolve(); + }; + + transaction.onerror = function () { + reject(req.error); + }; // The request will be also be aborted if we've exceeded our storage + // space. + + + transaction.onabort = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function clear(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.clear(); + + transaction.oncomplete = function () { + resolve(); + }; + + transaction.onabort = transaction.onerror = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function indexeddb_length(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.count(); + + req.onsuccess = function () { + resolve(req.result); + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function key(n, callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + if (n < 0) { + resolve(null); + return; + } + + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var advanced = false; + var req = store.openKeyCursor(); + + req.onsuccess = function () { + var cursor = req.result; + + if (!cursor) { + // this means there weren't enough keys + resolve(null); + return; + } + + if (n === 0) { + // We have the first key, return it if that's what they + // wanted. + resolve(cursor.key); + } else { + if (!advanced) { + // Otherwise, ask the cursor to skip ahead n + // records. + advanced = true; + cursor.advance(n); + } else { + // When we get here, we've got the nth key. + resolve(cursor.key); + } + } + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function keys(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.openKeyCursor(); + var keys = []; + + req.onsuccess = function () { + var cursor = req.result; + + if (!cursor) { + resolve(keys); + return; + } + + keys.push(cursor.key); + cursor.continue(); + }; + + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function dropInstance(options, callback) { + callback = getCallback.apply(this, arguments); + var currentConfig = this.config(); + options = typeof options !== 'function' && options || {}; + + if (!options.name) { + options.name = options.name || currentConfig.name; + options.storeName = options.storeName || currentConfig.storeName; + } + + var self = this; + var promise; + + if (!options.name) { + promise = utils_promise.reject('Invalid arguments'); + } else { + const isCurrentDb = options.name === currentConfig.name && self._dbInfo.db; + const dbPromise = isCurrentDb ? utils_promise.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(db => { + const dbContext = dbContexts[options.name]; + const forages = dbContext.forages; + dbContext.db = db; + + for (var i = 0; i < forages.length; i++) { + forages[i]._dbInfo.db = db; + } + + return db; + }); + + if (!options.storeName) { + promise = dbPromise.then(db => { + _deferReadiness(options); + + const dbContext = dbContexts[options.name]; + const forages = dbContext.forages; + db.close(); + + for (var i = 0; i < forages.length; i++) { + const forage = forages[i]; + forage._dbInfo.db = null; + } + + const dropDBPromise = new utils_promise((resolve, reject) => { + var req = utils_idb.deleteDatabase(options.name); + + req.onerror = req.onblocked = err => { + const db = req.result; + + if (db) { + db.close(); + } + + reject(err); + }; + + req.onsuccess = () => { + const db = req.result; + + if (db) { + db.close(); + } + + resolve(db); + }; + }); + return dropDBPromise.then(db => { + dbContext.db = db; + + for (var i = 0; i < forages.length; i++) { + const forage = forages[i]; + + _advanceReadiness(forage._dbInfo); + } + }).catch(err => { + (_rejectReadiness(options, err) || utils_promise.resolve()).catch(() => {}); + throw err; + }); + }); + } else { + promise = dbPromise.then(db => { + if (!db.objectStoreNames.contains(options.storeName)) { + return; + } + + const newVersion = db.version + 1; + + _deferReadiness(options); + + const dbContext = dbContexts[options.name]; + const forages = dbContext.forages; + db.close(); + + for (let i = 0; i < forages.length; i++) { + const forage = forages[i]; + forage._dbInfo.db = null; + forage._dbInfo.version = newVersion; + } + + const dropObjectPromise = new utils_promise((resolve, reject) => { + const req = utils_idb.open(options.name, newVersion); + + req.onerror = err => { + const db = req.result; + db.close(); + reject(err); + }; + + req.onupgradeneeded = () => { + var db = req.result; + db.deleteObjectStore(options.storeName); + }; + + req.onsuccess = () => { + const db = req.result; + db.close(); + resolve(db); + }; + }); + return dropObjectPromise.then(db => { + dbContext.db = db; + + for (let j = 0; j < forages.length; j++) { + const forage = forages[j]; + forage._dbInfo.db = db; + + _advanceReadiness(forage._dbInfo); + } + }).catch(err => { + (_rejectReadiness(options, err) || utils_promise.resolve()).catch(() => {}); + throw err; + }); + }); + } + } + + utils_executeCallback(promise, callback); + return promise; +} + +var asyncStorage = { + _driver: 'asyncStorage', + _initStorage: _initStorage, + _support: utils_isIndexedDBValid(), + iterate: iterate, + getItem: getItem, + setItem: setItem, + removeItem: removeItem, + clear: clear, + length: indexeddb_length, + key: key, + keys: keys, + dropInstance: dropInstance +}; +/* harmony default export */ const indexeddb = (asyncStorage); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isWebSQLValid.js +function isWebSQLValid() { + return typeof openDatabase === 'function'; +} + +/* harmony default export */ const utils_isWebSQLValid = (isWebSQLValid); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/serializer.js +/* eslint-disable no-bitwise */ + // Sadly, the best way to save binary data in WebSQL/localStorage is serializing +// it to Base64, so this is how we store it to prevent very strange errors with less +// verbose ways of binary <-> string data storage. + +var BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +var BLOB_TYPE_PREFIX = '~~local_forage_type~'; +var BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/; +var SERIALIZED_MARKER = '__lfsc__:'; +var SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length; // OMG the serializations! + +var TYPE_ARRAYBUFFER = 'arbf'; +var TYPE_BLOB = 'blob'; +var TYPE_INT8ARRAY = 'si08'; +var TYPE_UINT8ARRAY = 'ui08'; +var TYPE_UINT8CLAMPEDARRAY = 'uic8'; +var TYPE_INT16ARRAY = 'si16'; +var TYPE_INT32ARRAY = 'si32'; +var TYPE_UINT16ARRAY = 'ur16'; +var TYPE_UINT32ARRAY = 'ui32'; +var TYPE_FLOAT32ARRAY = 'fl32'; +var TYPE_FLOAT64ARRAY = 'fl64'; +var TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length; +var serializer_toString = Object.prototype.toString; + +function stringToBuffer(serializedString) { + // Fill the string into a ArrayBuffer. + var bufferLength = serializedString.length * 0.75; + var len = serializedString.length; + var i; + var p = 0; + var encoded1, encoded2, encoded3, encoded4; + + if (serializedString[serializedString.length - 1] === '=') { + bufferLength--; + + if (serializedString[serializedString.length - 2] === '=') { + bufferLength--; + } + } + + var buffer = new ArrayBuffer(bufferLength); + var bytes = new Uint8Array(buffer); + + for (i = 0; i < len; i += 4) { + encoded1 = BASE_CHARS.indexOf(serializedString[i]); + encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]); + encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]); + encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]); + /*jslint bitwise: true */ + + bytes[p++] = encoded1 << 2 | encoded2 >> 4; + bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; + bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; + } + + return buffer; +} // Converts a buffer to a string to store, serialized, in the backend +// storage library. + + +function bufferToString(buffer) { + // base64-arraybuffer + var bytes = new Uint8Array(buffer); + var base64String = ''; + var i; + + for (i = 0; i < bytes.length; i += 3) { + /*jslint bitwise: true */ + base64String += BASE_CHARS[bytes[i] >> 2]; + base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4]; + base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6]; + base64String += BASE_CHARS[bytes[i + 2] & 63]; + } + + if (bytes.length % 3 === 2) { + base64String = base64String.substring(0, base64String.length - 1) + '='; + } else if (bytes.length % 3 === 1) { + base64String = base64String.substring(0, base64String.length - 2) + '=='; + } + + return base64String; +} // Serialize a value, afterwards executing a callback (which usually +// instructs the `setItem()` callback/promise to be executed). This is how +// we store binary data with localStorage. + + +function serialize(value, callback) { + var valueType = ''; + + if (value) { + valueType = serializer_toString.call(value); + } // Cannot use `value instanceof ArrayBuffer` or such here, as these + // checks fail when running the tests using casper.js... + // + // TODO: See why those tests fail and use a better solution. + + + if (value && (valueType === '[object ArrayBuffer]' || value.buffer && serializer_toString.call(value.buffer) === '[object ArrayBuffer]')) { + // Convert binary arrays to a string and prefix the string with + // a special marker. + var buffer; + var marker = SERIALIZED_MARKER; + + if (value instanceof ArrayBuffer) { + buffer = value; + marker += TYPE_ARRAYBUFFER; + } else { + buffer = value.buffer; + + if (valueType === '[object Int8Array]') { + marker += TYPE_INT8ARRAY; + } else if (valueType === '[object Uint8Array]') { + marker += TYPE_UINT8ARRAY; + } else if (valueType === '[object Uint8ClampedArray]') { + marker += TYPE_UINT8CLAMPEDARRAY; + } else if (valueType === '[object Int16Array]') { + marker += TYPE_INT16ARRAY; + } else if (valueType === '[object Uint16Array]') { + marker += TYPE_UINT16ARRAY; + } else if (valueType === '[object Int32Array]') { + marker += TYPE_INT32ARRAY; + } else if (valueType === '[object Uint32Array]') { + marker += TYPE_UINT32ARRAY; + } else if (valueType === '[object Float32Array]') { + marker += TYPE_FLOAT32ARRAY; + } else if (valueType === '[object Float64Array]') { + marker += TYPE_FLOAT64ARRAY; + } else { + callback(new Error('Failed to get type for BinaryArray')); + } + } + + callback(marker + bufferToString(buffer)); + } else if (valueType === '[object Blob]') { + // Conver the blob to a binaryArray and then to a string. + var fileReader = new FileReader(); + + fileReader.onload = function () { + // Backwards-compatible prefix for the blob type. + var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result); + callback(SERIALIZED_MARKER + TYPE_BLOB + str); + }; + + fileReader.readAsArrayBuffer(value); + } else { + try { + callback(JSON.stringify(value)); + } catch (e) { + console.error("Couldn't convert value into a JSON string: ", value); + callback(null, e); + } + } +} // Deserialize data we've inserted into a value column/field. We place +// special markers into our strings to mark them as encoded; this isn't +// as nice as a meta field, but it's the only sane thing we can do whilst +// keeping localStorage support intact. +// +// Oftentimes this will just deserialize JSON content, but if we have a +// special marker (SERIALIZED_MARKER, defined above), we will extract +// some kind of arraybuffer/binary data/typed array out of the string. + + +function deserialize(value) { + // If we haven't marked this string as being specially serialized (i.e. + // something other than serialized JSON), we can just return it and be + // done with it. + if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) { + return JSON.parse(value); + } // The following code deals with deserializing some kind of Blob or + // TypedArray. First we separate out the type of data we're dealing + // with from the data itself. + + + var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH); + var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH); + var blobType; // Backwards-compatible blob type serialization strategy. + // DBs created with older versions of localForage will simply not have the blob type. + + if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) { + var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX); + blobType = matcher[1]; + serializedString = serializedString.substring(matcher[0].length); + } + + var buffer = stringToBuffer(serializedString); // Return the right type based on the code/type set during + // serialization. + + switch (type) { + case TYPE_ARRAYBUFFER: + return buffer; + + case TYPE_BLOB: + return utils_createBlob([buffer], { + type: blobType + }); + + case TYPE_INT8ARRAY: + return new Int8Array(buffer); + + case TYPE_UINT8ARRAY: + return new Uint8Array(buffer); + + case TYPE_UINT8CLAMPEDARRAY: + return new Uint8ClampedArray(buffer); + + case TYPE_INT16ARRAY: + return new Int16Array(buffer); + + case TYPE_UINT16ARRAY: + return new Uint16Array(buffer); + + case TYPE_INT32ARRAY: + return new Int32Array(buffer); + + case TYPE_UINT32ARRAY: + return new Uint32Array(buffer); + + case TYPE_FLOAT32ARRAY: + return new Float32Array(buffer); + + case TYPE_FLOAT64ARRAY: + return new Float64Array(buffer); + + default: + throw new Error('Unkown type: ' + type); + } +} + +var localforageSerializer = { + serialize: serialize, + deserialize: deserialize, + stringToBuffer: stringToBuffer, + bufferToString: bufferToString +}; +/* harmony default export */ const serializer = (localforageSerializer); +;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/websql.js + + + + + + +/* + * Includes code from: + * + * base64-arraybuffer + * https://github.com/niklasvh/base64-arraybuffer + * + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + */ + +function createDbTable(t, dbInfo, callback, errorCallback) { + t.executeSql(`CREATE TABLE IF NOT EXISTS ${dbInfo.storeName} ` + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback); +} // Open the WebSQL database (automatically creates one if one didn't +// previously exist), using any options set in the config. + + +function websql_initStorage(options) { + var self = this; + var dbInfo = { + db: null + }; + + if (options) { + for (var i in options) { + dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i]; + } + } + + var dbInfoPromise = new utils_promise(function (resolve, reject) { + // Open the database; the openDatabase API will automatically + // create it for us if it doesn't exist. + try { + dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size); + } catch (e) { + return reject(e); + } // Create our key/value table if it doesn't exist. + + + dbInfo.db.transaction(function (t) { + createDbTable(t, dbInfo, function () { + self._dbInfo = dbInfo; + resolve(); + }, function (t, error) { + reject(error); + }); + }, reject); + }); + dbInfo.serializer = serializer; + return dbInfoPromise; +} + +function tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) { + t.executeSql(sqlStatement, args, callback, function (t, error) { + if (error.code === error.SYNTAX_ERR) { + t.executeSql('SELECT name FROM sqlite_master ' + "WHERE type='table' AND name = ?", [dbInfo.storeName], function (t, results) { + if (!results.rows.length) { + // if the table is missing (was deleted) + // re-create it table and retry + createDbTable(t, dbInfo, function () { + t.executeSql(sqlStatement, args, callback, errorCallback); + }, errorCallback); + } else { + errorCallback(t, error); + } + }, errorCallback); + } else { + errorCallback(t, error); + } + }, errorCallback); +} + +function websql_getItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, `SELECT * FROM ${dbInfo.storeName} WHERE key = ? LIMIT 1`, [key], function (t, results) { + var result = results.rows.length ? results.rows.item(0).value : null; // Check to see if this is serialized content we need to + // unpack. + + if (result) { + result = dbInfo.serializer.deserialize(result); + } + + resolve(result); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function websql_iterate(iterator, callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, `SELECT * FROM ${dbInfo.storeName}`, [], function (t, results) { + var rows = results.rows; + var length = rows.length; + + for (var i = 0; i < length; i++) { + var item = rows.item(i); + var result = item.value; // Check to see if this is serialized content + // we need to unpack. + + if (result) { + result = dbInfo.serializer.deserialize(result); + } + + result = iterator(result, item.key, i + 1); // void(0) prevents problems with redefinition + // of `undefined`. + + if (result !== void 0) { + resolve(result); + return; + } + } + + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function _setItem(key, value, callback, retriesLeft) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + // The localStorage API doesn't return undefined values in an + // "expected" way, so undefined is always cast to null in all + // drivers. See: https://github.com/mozilla/localForage/pull/42 + if (value === undefined) { + value = null; + } // Save the original value to pass to the callback. + + + var originalValue = value; + var dbInfo = self._dbInfo; + dbInfo.serializer.serialize(value, function (value, error) { + if (error) { + reject(error); + } else { + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, `INSERT OR REPLACE INTO ${dbInfo.storeName} ` + '(key, value) VALUES (?, ?)', [key, value], function () { + resolve(originalValue); + }, function (t, error) { + reject(error); + }); + }, function (sqlError) { + // The transaction failed; check + // to see if it's a quota error. + if (sqlError.code === sqlError.QUOTA_ERR) { + // We reject the callback outright for now, but + // it's worth trying to re-run the transaction. + // Even if the user accepts the prompt to use + // more storage on Safari, this error will + // be called. + // + // Try to re-run the transaction. + if (retriesLeft > 0) { + resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1])); + return; + } + + reject(sqlError); + } + }); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function websql_setItem(key, value, callback) { + return _setItem.apply(this, [key, value, callback, 1]); +} + +function websql_removeItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, `DELETE FROM ${dbInfo.storeName} WHERE key = ?`, [key], function () { + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} // Deletes every item in the table. +// TODO: Find out if this resets the AUTO_INCREMENT number. + + +function websql_clear(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, `DELETE FROM ${dbInfo.storeName}`, [], function () { + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} // Does a simple `COUNT(key)` to get the number of items stored in +// localForage. + + +function websql_length(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + // Ahhh, SQL makes this one soooooo easy. + tryExecuteSql(t, dbInfo, `SELECT COUNT(key) as c FROM ${dbInfo.storeName}`, [], function (t, results) { + var result = results.rows.item(0).c; + resolve(result); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} // Return the key located at key index X; essentially gets the key from a +// `WHERE id = ?`. This is the most efficient way I can think to implement +// this rarely-used (in my experience) part of the API, but it can seem +// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so +// the ID of each key will change every time it's updated. Perhaps a stored +// procedure for the `setItem()` SQL would solve this problem? +// TODO: Don't change ID on `setItem()`. + + +function websql_key(n, callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, `SELECT key FROM ${dbInfo.storeName} WHERE id = ? LIMIT 1`, [n + 1], function (t, results) { + var result = results.rows.length ? results.rows.item(0).key : null; + resolve(result); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function websql_keys(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, `SELECT key FROM ${dbInfo.storeName}`, [], function (t, results) { + var keys = []; + + for (var i = 0; i < results.rows.length; i++) { + keys.push(results.rows.item(i).key); + } + + resolve(keys); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} // https://www.w3.org/TR/webdatabase/#databases +// > There is no way to enumerate or delete the databases available for an origin from this API. + + +function getAllStoreNames(db) { + return new utils_promise(function (resolve, reject) { + db.transaction(function (t) { + t.executeSql('SELECT name FROM sqlite_master ' + "WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'", [], function (t, results) { + var storeNames = []; + + for (var i = 0; i < results.rows.length; i++) { + storeNames.push(results.rows.item(i).name); + } + + resolve({ + db, + storeNames + }); + }, function (t, error) { + reject(error); + }); + }, function (sqlError) { + reject(sqlError); + }); + }); +} + +function websql_dropInstance(options, callback) { + callback = getCallback.apply(this, arguments); + var currentConfig = this.config(); + options = typeof options !== 'function' && options || {}; + + if (!options.name) { + options.name = options.name || currentConfig.name; + options.storeName = options.storeName || currentConfig.storeName; + } + + var self = this; + var promise; + + if (!options.name) { + promise = utils_promise.reject('Invalid arguments'); + } else { + promise = new utils_promise(function (resolve) { + var db; + + if (options.name === currentConfig.name) { + // use the db reference of the current instance + db = self._dbInfo.db; + } else { + db = openDatabase(options.name, '', '', 0); + } + + if (!options.storeName) { + // drop all database tables + resolve(getAllStoreNames(db)); + } else { + resolve({ + db, + storeNames: [options.storeName] + }); + } + }).then(function (operationInfo) { + return new utils_promise(function (resolve, reject) { + operationInfo.db.transaction(function (t) { + function dropTable(storeName) { + return new utils_promise(function (resolve, reject) { + t.executeSql(`DROP TABLE IF EXISTS ${storeName}`, [], function () { + resolve(); + }, function (t, error) { + reject(error); + }); + }); + } + + var operations = []; + + for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) { + operations.push(dropTable(operationInfo.storeNames[i])); + } + + utils_promise.all(operations).then(function () { + resolve(); + }).catch(function (e) { + reject(e); + }); + }, function (sqlError) { + reject(sqlError); + }); + }); + }); + } + + utils_executeCallback(promise, callback); + return promise; +} + +var webSQLStorage = { + _driver: 'webSQLStorage', + _initStorage: websql_initStorage, + _support: utils_isWebSQLValid(), + iterate: websql_iterate, + getItem: websql_getItem, + setItem: websql_setItem, + removeItem: websql_removeItem, + clear: websql_clear, + length: websql_length, + key: websql_key, + keys: websql_keys, + dropInstance: websql_dropInstance +}; +/* harmony default export */ const websql = (webSQLStorage); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isLocalStorageValid.js +function isLocalStorageValid() { + try { + return typeof localStorage !== 'undefined' && 'setItem' in localStorage && // in IE8 typeof localStorage.setItem === 'object' + !!localStorage.setItem; + } catch (e) { + return false; + } +} + +/* harmony default export */ const utils_isLocalStorageValid = (isLocalStorageValid); +;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/localstorage.js +// If IndexedDB isn't available, we'll fall back to localStorage. +// Note that this will have considerable performance and storage +// side-effects (all data will be serialized on save and only data that +// can be converted to a string via `JSON.stringify()` will be saved). + + + + + + + +function _getKeyPrefix(options, defaultConfig) { + var keyPrefix = options.name + '/'; + + if (options.storeName !== defaultConfig.storeName) { + keyPrefix += options.storeName + '/'; + } + + return keyPrefix; +} // Check if localStorage throws when saving an item + + +function checkIfLocalStorageThrows() { + var localStorageTestKey = '_localforage_support_test'; + + try { + localStorage.setItem(localStorageTestKey, true); + localStorage.removeItem(localStorageTestKey); + return false; + } catch (e) { + return true; + } +} // Check if localStorage is usable and allows to save an item +// This method checks if localStorage is usable in Safari Private Browsing +// mode, or in any other case where the available quota for localStorage +// is 0 and there wasn't any saved items yet. + + +function _isLocalStorageUsable() { + return !checkIfLocalStorageThrows() || localStorage.length > 0; +} // Config the localStorage backend, using options set in the config. + + +function localstorage_initStorage(options) { + var self = this; + var dbInfo = {}; + + if (options) { + for (var i in options) { + dbInfo[i] = options[i]; + } + } + + dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig); + + if (!_isLocalStorageUsable()) { + return utils_promise.reject(); + } + + self._dbInfo = dbInfo; + dbInfo.serializer = serializer; + return utils_promise.resolve(); +} // Remove all keys from the datastore, effectively destroying all data in +// the app's key/value store! + + +function localstorage_clear(callback) { + var self = this; + var promise = self.ready().then(function () { + var keyPrefix = self._dbInfo.keyPrefix; + + for (var i = localStorage.length - 1; i >= 0; i--) { + var key = localStorage.key(i); + + if (key.indexOf(keyPrefix) === 0) { + localStorage.removeItem(key); + } + } + }); + utils_executeCallback(promise, callback); + return promise; +} // Retrieve an item from the store. Unlike the original async_storage +// library in Gaia, we don't modify return values at all. If a key's value +// is `undefined`, we pass that value to the callback function. + + +function localstorage_getItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var result = localStorage.getItem(dbInfo.keyPrefix + key); // If a result was found, parse it from the serialized + // string into a JS object. If result isn't truthy, the key + // is likely undefined and we'll pass it straight to the + // callback. + + if (result) { + result = dbInfo.serializer.deserialize(result); + } + + return result; + }); + utils_executeCallback(promise, callback); + return promise; +} // Iterate over all items in the store. + + +function localstorage_iterate(iterator, callback) { + var self = this; + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var keyPrefix = dbInfo.keyPrefix; + var keyPrefixLength = keyPrefix.length; + var length = localStorage.length; // We use a dedicated iterator instead of the `i` variable below + // so other keys we fetch in localStorage aren't counted in + // the `iterationNumber` argument passed to the `iterate()` + // callback. + // + // See: github.com/mozilla/localForage/pull/435#discussion_r38061530 + + var iterationNumber = 1; + + for (var i = 0; i < length; i++) { + var key = localStorage.key(i); + + if (key.indexOf(keyPrefix) !== 0) { + continue; + } + + var value = localStorage.getItem(key); // If a result was found, parse it from the serialized + // string into a JS object. If result isn't truthy, the + // key is likely undefined and we'll pass it straight + // to the iterator. + + if (value) { + value = dbInfo.serializer.deserialize(value); + } + + value = iterator(value, key.substring(keyPrefixLength), iterationNumber++); + + if (value !== void 0) { + return value; + } + } + }); + utils_executeCallback(promise, callback); + return promise; +} // Same as localStorage's key() method, except takes a callback. + + +function localstorage_key(n, callback) { + var self = this; + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var result; + + try { + result = localStorage.key(n); + } catch (error) { + result = null; + } // Remove the prefix from the key, if a key is found. + + + if (result) { + result = result.substring(dbInfo.keyPrefix.length); + } + + return result; + }); + utils_executeCallback(promise, callback); + return promise; +} + +function localstorage_keys(callback) { + var self = this; + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var length = localStorage.length; + var keys = []; + + for (var i = 0; i < length; i++) { + var itemKey = localStorage.key(i); + + if (itemKey.indexOf(dbInfo.keyPrefix) === 0) { + keys.push(itemKey.substring(dbInfo.keyPrefix.length)); + } + } + + return keys; + }); + utils_executeCallback(promise, callback); + return promise; +} // Supply the number of keys in the datastore to the callback function. + + +function localstorage_length(callback) { + var self = this; + var promise = self.keys().then(function (keys) { + return keys.length; + }); + utils_executeCallback(promise, callback); + return promise; +} // Remove an item from the store, nice and simple. + + +function localstorage_removeItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + localStorage.removeItem(dbInfo.keyPrefix + key); + }); + utils_executeCallback(promise, callback); + return promise; +} // Set a key's value and run an optional callback once the value is set. +// Unlike Gaia's implementation, the callback function is passed the value, +// in case you want to operate on that value only after you're sure it +// saved, or something like that. + + +function localstorage_setItem(key, value, callback) { + var self = this; + key = normalizeKey(key); + var promise = self.ready().then(function () { + // Convert undefined values to null. + // https://github.com/mozilla/localForage/pull/42 + if (value === undefined) { + value = null; + } // Save the original value to pass to the callback. + + + var originalValue = value; + return new utils_promise(function (resolve, reject) { + var dbInfo = self._dbInfo; + dbInfo.serializer.serialize(value, function (value, error) { + if (error) { + reject(error); + } else { + try { + localStorage.setItem(dbInfo.keyPrefix + key, value); + resolve(originalValue); + } catch (e) { + // localStorage capacity exceeded. + // TODO: Make this a specific error/event. + if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') { + reject(e); + } + + reject(e); + } + } + }); + }); + }); + utils_executeCallback(promise, callback); + return promise; +} + +function localstorage_dropInstance(options, callback) { + callback = getCallback.apply(this, arguments); + options = typeof options !== 'function' && options || {}; + + if (!options.name) { + var currentConfig = this.config(); + options.name = options.name || currentConfig.name; + options.storeName = options.storeName || currentConfig.storeName; + } + + var self = this; + var promise; + + if (!options.name) { + promise = utils_promise.reject('Invalid arguments'); + } else { + promise = new utils_promise(function (resolve) { + if (!options.storeName) { + resolve(`${options.name}/`); + } else { + resolve(_getKeyPrefix(options, self._defaultConfig)); + } + }).then(function (keyPrefix) { + for (var i = localStorage.length - 1; i >= 0; i--) { + var key = localStorage.key(i); + + if (key.indexOf(keyPrefix) === 0) { + localStorage.removeItem(key); + } + } + }); + } + + utils_executeCallback(promise, callback); + return promise; +} + +var localStorageWrapper = { + _driver: 'localStorageWrapper', + _initStorage: localstorage_initStorage, + _support: utils_isLocalStorageValid(), + iterate: localstorage_iterate, + getItem: localstorage_getItem, + setItem: localstorage_setItem, + removeItem: localstorage_removeItem, + clear: localstorage_clear, + length: localstorage_length, + key: localstorage_key, + keys: localstorage_keys, + dropInstance: localstorage_dropInstance +}; +/* harmony default export */ const localstorage = (localStorageWrapper); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/includes.js +const sameValue = (x, y) => x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y); + +const includes = (array, searchElement) => { + const len = array.length; + let i = 0; + + while (i < len) { + if (sameValue(array[i], searchElement)) { + return true; + } + + i++; + } + + return false; +}; + +/* harmony default export */ const utils_includes = (includes); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isArray.js +const isArray_isArray = Array.isArray || function (arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; +}; + +/* harmony default export */ const utils_isArray = (isArray_isArray); +;// CONCATENATED MODULE: ./node_modules/localforage/src/localforage.js + + + + + + + + + // Drivers are stored here when `defineDriver()` is called. +// They are shared across all instances of localForage. + +const DefinedDrivers = {}; +const DriverSupport = {}; +const DefaultDrivers = { + INDEXEDDB: indexeddb, + WEBSQL: websql, + LOCALSTORAGE: localstorage +}; +const DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver]; +const OptionalDriverMethods = ['dropInstance']; +const LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods); +const DefaultConfig = { + description: '', + driver: DefaultDriverOrder.slice(), + name: 'localforage', + // Default DB size is _JUST UNDER_ 5MB, as it's the highest size + // we can use without a prompt. + size: 4980736, + storeName: 'keyvaluepairs', + version: 1.0 +}; + +function callWhenReady(localForageInstance, libraryMethod) { + localForageInstance[libraryMethod] = function () { + const _args = arguments; + return localForageInstance.ready().then(function () { + return localForageInstance[libraryMethod].apply(localForageInstance, _args); + }); + }; +} + +function extend() { + for (let i = 1; i < arguments.length; i++) { + const arg = arguments[i]; + + if (arg) { + for (let key in arg) { + if (arg.hasOwnProperty(key)) { + if (utils_isArray(arg[key])) { + arguments[0][key] = arg[key].slice(); + } else { + arguments[0][key] = arg[key]; + } + } + } + } + } + + return arguments[0]; +} + +class LocalForage { + constructor(options) { + for (let driverTypeKey in DefaultDrivers) { + if (DefaultDrivers.hasOwnProperty(driverTypeKey)) { + const driver = DefaultDrivers[driverTypeKey]; + const driverName = driver._driver; + this[driverTypeKey] = driverName; + + if (!DefinedDrivers[driverName]) { + // we don't need to wait for the promise, + // since the default drivers can be defined + // in a blocking manner + this.defineDriver(driver); + } + } + } + + this._defaultConfig = extend({}, DefaultConfig); + this._config = extend({}, this._defaultConfig, options); + this._driverSet = null; + this._initDriver = null; + this._ready = false; + this._dbInfo = null; + + this._wrapLibraryMethodsWithReady(); + + this.setDriver(this._config.driver).catch(() => {}); + } // Set any config values for localForage; can be called anytime before + // the first API call (e.g. `getItem`, `setItem`). + // We loop through options so we don't overwrite existing config + // values. + + + config(options) { + // If the options argument is an object, we use it to set values. + // Otherwise, we return either a specified config value or all + // config values. + if (typeof options === 'object') { + // If localforage is ready and fully initialized, we can't set + // any new configuration values. Instead, we return an error. + if (this._ready) { + return new Error("Can't call config() after localforage " + 'has been used.'); + } + + for (let i in options) { + if (i === 'storeName') { + options[i] = options[i].replace(/\W/g, '_'); + } + + if (i === 'version' && typeof options[i] !== 'number') { + return new Error('Database version must be a number.'); + } + + this._config[i] = options[i]; + } // after all config options are set and + // the driver option is used, try setting it + + + if ('driver' in options && options.driver) { + return this.setDriver(this._config.driver); + } + + return true; + } else if (typeof options === 'string') { + return this._config[options]; + } else { + return this._config; + } + } // Used to define a custom driver, shared across all instances of + // localForage. + + + defineDriver(driverObject, callback, errorCallback) { + const promise = new utils_promise(function (resolve, reject) { + try { + const driverName = driverObject._driver; + const complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver'); // A driver name should be defined and not overlap with the + // library-defined, default drivers. + + if (!driverObject._driver) { + reject(complianceError); + return; + } + + const driverMethods = LibraryMethods.concat('_initStorage'); + + for (let i = 0, len = driverMethods.length; i < len; i++) { + const driverMethodName = driverMethods[i]; // when the property is there, + // it should be a method even when optional + + const isRequired = !utils_includes(OptionalDriverMethods, driverMethodName); + + if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') { + reject(complianceError); + return; + } + } + + const configureMissingMethods = function () { + const methodNotImplementedFactory = function (methodName) { + return function () { + const error = new Error(`Method ${methodName} is not implemented by the current driver`); + const promise = utils_promise.reject(error); + utils_executeCallback(promise, arguments[arguments.length - 1]); + return promise; + }; + }; + + for (let i = 0, len = OptionalDriverMethods.length; i < len; i++) { + const optionalDriverMethod = OptionalDriverMethods[i]; + + if (!driverObject[optionalDriverMethod]) { + driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod); + } + } + }; + + configureMissingMethods(); + + const setDriverSupport = function (support) { + if (DefinedDrivers[driverName]) { + console.info(`Redefining LocalForage driver: ${driverName}`); + } + + DefinedDrivers[driverName] = driverObject; + DriverSupport[driverName] = support; // don't use a then, so that we can define + // drivers that have simple _support methods + // in a blocking manner + + resolve(); + }; + + if ('_support' in driverObject) { + if (driverObject._support && typeof driverObject._support === 'function') { + driverObject._support().then(setDriverSupport, reject); + } else { + setDriverSupport(!!driverObject._support); + } + } else { + setDriverSupport(true); + } + } catch (e) { + reject(e); + } + }); + utils_executeTwoCallbacks(promise, callback, errorCallback); + return promise; + } + + driver() { + return this._driver || null; + } + + getDriver(driverName, callback, errorCallback) { + const getDriverPromise = DefinedDrivers[driverName] ? utils_promise.resolve(DefinedDrivers[driverName]) : utils_promise.reject(new Error('Driver not found.')); + utils_executeTwoCallbacks(getDriverPromise, callback, errorCallback); + return getDriverPromise; + } + + getSerializer(callback) { + const serializerPromise = utils_promise.resolve(serializer); + utils_executeTwoCallbacks(serializerPromise, callback); + return serializerPromise; + } + + ready(callback) { + const self = this; + + const promise = self._driverSet.then(() => { + if (self._ready === null) { + self._ready = self._initDriver(); + } + + return self._ready; + }); + + utils_executeTwoCallbacks(promise, callback, callback); + return promise; + } + + setDriver(drivers, callback, errorCallback) { + const self = this; + + if (!utils_isArray(drivers)) { + drivers = [drivers]; + } + + const supportedDrivers = this._getSupportedDrivers(drivers); + + function setDriverToConfig() { + self._config.driver = self.driver(); + } + + function extendSelfWithDriver(driver) { + self._extend(driver); + + setDriverToConfig(); + self._ready = self._initStorage(self._config); + return self._ready; + } + + function initDriver(supportedDrivers) { + return function () { + let currentDriverIndex = 0; + + function driverPromiseLoop() { + while (currentDriverIndex < supportedDrivers.length) { + let driverName = supportedDrivers[currentDriverIndex]; + currentDriverIndex++; + self._dbInfo = null; + self._ready = null; + return self.getDriver(driverName).then(extendSelfWithDriver).catch(driverPromiseLoop); + } + + setDriverToConfig(); + const error = new Error('No available storage method found.'); + self._driverSet = utils_promise.reject(error); + return self._driverSet; + } + + return driverPromiseLoop(); + }; + } // There might be a driver initialization in progress + // so wait for it to finish in order to avoid a possible + // race condition to set _dbInfo + + + const oldDriverSetDone = this._driverSet !== null ? this._driverSet.catch(() => utils_promise.resolve()) : utils_promise.resolve(); + this._driverSet = oldDriverSetDone.then(() => { + const driverName = supportedDrivers[0]; + self._dbInfo = null; + self._ready = null; + return self.getDriver(driverName).then(driver => { + self._driver = driver._driver; + setDriverToConfig(); + + self._wrapLibraryMethodsWithReady(); + + self._initDriver = initDriver(supportedDrivers); + }); + }).catch(() => { + setDriverToConfig(); + const error = new Error('No available storage method found.'); + self._driverSet = utils_promise.reject(error); + return self._driverSet; + }); + utils_executeTwoCallbacks(this._driverSet, callback, errorCallback); + return this._driverSet; + } + + supports(driverName) { + return !!DriverSupport[driverName]; + } + + _extend(libraryMethodsAndProperties) { + extend(this, libraryMethodsAndProperties); + } + + _getSupportedDrivers(drivers) { + const supportedDrivers = []; + + for (let i = 0, len = drivers.length; i < len; i++) { + const driverName = drivers[i]; + + if (this.supports(driverName)) { + supportedDrivers.push(driverName); + } + } + + return supportedDrivers; + } + + _wrapLibraryMethodsWithReady() { + // Add a stub for each driver API method that delays the call to the + // corresponding driver method until localForage is ready. These stubs + // will be replaced by the driver methods as soon as the driver is + // loaded, so there is no performance impact. + for (let i = 0, len = LibraryMethods.length; i < len; i++) { + callWhenReady(this, LibraryMethods[i]); + } + } + + createInstance(options) { + return new LocalForage(options); + } + +} // The actual localForage object that we expose as a module or via a +// global. It's extended by pulling in one of our other libraries. + + +/* harmony default export */ const localforage = (new LocalForage()); // EXTERNAL MODULE: ./node_modules/localforage-driver-memory/_bundle/umd.js var umd = __webpack_require__(3245); ;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayEach.js @@ -7089,11 +9571,11 @@ function baseKeys(object) { * _.keys('hi'); * // => ['0', '1'] */ -function keys(object) { +function keys_keys(object) { return lodash_es_isArrayLike(object) ? _arrayLikeKeys(object) : _baseKeys(object); } -/* harmony default export */ const lodash_es_keys = (keys); +/* harmony default export */ const lodash_es_keys = (keys_keys); ;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseAssign.js @@ -7950,302 +10432,6 @@ function isString(value) { /* harmony default export */ const lodash_es_isString = (isString); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/executeCallback.js -function executeCallback(promise, callback) { - if (callback) { - promise.then(function (result) { - callback(null, result); - }, function (error) { - callback(error); - }); - } -} - -/* harmony default export */ const utils_executeCallback = (executeCallback); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/getCallback.js -function getCallback() { - if (arguments.length && typeof arguments[arguments.length - 1] === 'function') { - return arguments[arguments.length - 1]; - } -} -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/normalizeKey.js -function normalizeKey(key) { - // Cast the key to a string, as that's all we can set as a key. - if (typeof key !== 'string') { - console.warn("".concat(key, " used as a key, but it is not a string.")); - key = String(key); - } - - return key; -} -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/createBlob.js -// Abstracts constructing a Blob object, so it also works in older -// browsers that don't support the native Blob constructor. (i.e. -// old QtWebKit versions, at least). -// Abstracts constructing a Blob object, so it also works in older -// browsers that don't support the native Blob constructor. (i.e. -// old QtWebKit versions, at least). -function createBlob(parts, properties) { - /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */ - parts = parts || []; - properties = properties || {}; - - try { - return new Blob(parts, properties); - } catch (e) { - if (e.name !== 'TypeError') { - throw e; - } - - var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder; - var builder = new Builder(); - - for (var i = 0; i < parts.length; i += 1) { - builder.append(parts[i]); - } - - return builder.getBlob(properties.type); - } -} - -/* harmony default export */ const utils_createBlob = (createBlob); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/serializer.js -/* eslint-disable no-bitwise */ - // Sadly, the best way to save binary data in WebSQL/localStorage is serializing -// it to Base64, so this is how we store it to prevent very strange errors with less -// verbose ways of binary <-> string data storage. - -var BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; -var BLOB_TYPE_PREFIX = '~~local_forage_type~'; -var BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/; -var SERIALIZED_MARKER = '__lfsc__:'; -var SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length; // OMG the serializations! - -var TYPE_ARRAYBUFFER = 'arbf'; -var TYPE_BLOB = 'blob'; -var TYPE_INT8ARRAY = 'si08'; -var TYPE_UINT8ARRAY = 'ui08'; -var TYPE_UINT8CLAMPEDARRAY = 'uic8'; -var TYPE_INT16ARRAY = 'si16'; -var TYPE_INT32ARRAY = 'si32'; -var TYPE_UINT16ARRAY = 'ur16'; -var TYPE_UINT32ARRAY = 'ui32'; -var TYPE_FLOAT32ARRAY = 'fl32'; -var TYPE_FLOAT64ARRAY = 'fl64'; -var TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length; -var serializer_toString = Object.prototype.toString; - -function stringToBuffer(serializedString) { - // Fill the string into a ArrayBuffer. - var bufferLength = serializedString.length * 0.75; - var len = serializedString.length; - var i; - var p = 0; - var encoded1, encoded2, encoded3, encoded4; - - if (serializedString[serializedString.length - 1] === '=') { - bufferLength--; - - if (serializedString[serializedString.length - 2] === '=') { - bufferLength--; - } - } - - var buffer = new ArrayBuffer(bufferLength); - var bytes = new Uint8Array(buffer); - - for (i = 0; i < len; i += 4) { - encoded1 = BASE_CHARS.indexOf(serializedString[i]); - encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]); - encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]); - encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]); - /*jslint bitwise: true */ - - bytes[p++] = encoded1 << 2 | encoded2 >> 4; - bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; - bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; - } - - return buffer; -} // Converts a buffer to a string to store, serialized, in the backend -// storage library. - - -function bufferToString(buffer) { - // base64-arraybuffer - var bytes = new Uint8Array(buffer); - var base64String = ''; - var i; - - for (i = 0; i < bytes.length; i += 3) { - /*jslint bitwise: true */ - base64String += BASE_CHARS[bytes[i] >> 2]; - base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4]; - base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6]; - base64String += BASE_CHARS[bytes[i + 2] & 63]; - } - - if (bytes.length % 3 === 2) { - base64String = base64String.substring(0, base64String.length - 1) + '='; - } else if (bytes.length % 3 === 1) { - base64String = base64String.substring(0, base64String.length - 2) + '=='; - } - - return base64String; -} // Serialize a value, afterwards executing a callback (which usually -// instructs the `setItem()` callback/promise to be executed). This is how -// we store binary data with localStorage. - - -function serialize(value, callback) { - var valueType = ''; - - if (value) { - valueType = serializer_toString.call(value); - } // Cannot use `value instanceof ArrayBuffer` or such here, as these - // checks fail when running the tests using casper.js... - // - // TODO: See why those tests fail and use a better solution. - - - if (value && (valueType === '[object ArrayBuffer]' || value.buffer && serializer_toString.call(value.buffer) === '[object ArrayBuffer]')) { - // Convert binary arrays to a string and prefix the string with - // a special marker. - var buffer; - var marker = SERIALIZED_MARKER; - - if (value instanceof ArrayBuffer) { - buffer = value; - marker += TYPE_ARRAYBUFFER; - } else { - buffer = value.buffer; - - if (valueType === '[object Int8Array]') { - marker += TYPE_INT8ARRAY; - } else if (valueType === '[object Uint8Array]') { - marker += TYPE_UINT8ARRAY; - } else if (valueType === '[object Uint8ClampedArray]') { - marker += TYPE_UINT8CLAMPEDARRAY; - } else if (valueType === '[object Int16Array]') { - marker += TYPE_INT16ARRAY; - } else if (valueType === '[object Uint16Array]') { - marker += TYPE_UINT16ARRAY; - } else if (valueType === '[object Int32Array]') { - marker += TYPE_INT32ARRAY; - } else if (valueType === '[object Uint32Array]') { - marker += TYPE_UINT32ARRAY; - } else if (valueType === '[object Float32Array]') { - marker += TYPE_FLOAT32ARRAY; - } else if (valueType === '[object Float64Array]') { - marker += TYPE_FLOAT64ARRAY; - } else { - callback(new Error('Failed to get type for BinaryArray')); - } - } - - callback(marker + bufferToString(buffer)); - } else if (valueType === '[object Blob]') { - // Conver the blob to a binaryArray and then to a string. - var fileReader = new FileReader(); - - fileReader.onload = function () { - // Backwards-compatible prefix for the blob type. - var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result); - callback(SERIALIZED_MARKER + TYPE_BLOB + str); - }; - - fileReader.readAsArrayBuffer(value); - } else { - try { - callback(JSON.stringify(value)); - } catch (e) { - console.error("Couldn't convert value into a JSON string: ", value); - callback(null, e); - } - } -} // Deserialize data we've inserted into a value column/field. We place -// special markers into our strings to mark them as encoded; this isn't -// as nice as a meta field, but it's the only sane thing we can do whilst -// keeping localStorage support intact. -// -// Oftentimes this will just deserialize JSON content, but if we have a -// special marker (SERIALIZED_MARKER, defined above), we will extract -// some kind of arraybuffer/binary data/typed array out of the string. - - -function deserialize(value) { - // If we haven't marked this string as being specially serialized (i.e. - // something other than serialized JSON), we can just return it and be - // done with it. - if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) { - return JSON.parse(value); - } // The following code deals with deserializing some kind of Blob or - // TypedArray. First we separate out the type of data we're dealing - // with from the data itself. - - - var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH); - var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH); - var blobType; // Backwards-compatible blob type serialization strategy. - // DBs created with older versions of localForage will simply not have the blob type. - - if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) { - var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX); - blobType = matcher[1]; - serializedString = serializedString.substring(matcher[0].length); - } - - var buffer = stringToBuffer(serializedString); // Return the right type based on the code/type set during - // serialization. - - switch (type) { - case TYPE_ARRAYBUFFER: - return buffer; - - case TYPE_BLOB: - return utils_createBlob([buffer], { - type: blobType - }); - - case TYPE_INT8ARRAY: - return new Int8Array(buffer); - - case TYPE_UINT8ARRAY: - return new Uint8Array(buffer); - - case TYPE_UINT8CLAMPEDARRAY: - return new Uint8ClampedArray(buffer); - - case TYPE_INT16ARRAY: - return new Int16Array(buffer); - - case TYPE_UINT16ARRAY: - return new Uint16Array(buffer); - - case TYPE_INT32ARRAY: - return new Int32Array(buffer); - - case TYPE_UINT32ARRAY: - return new Uint32Array(buffer); - - case TYPE_FLOAT32ARRAY: - return new Float32Array(buffer); - - case TYPE_FLOAT64ARRAY: - return new Float64Array(buffer); - - default: - throw new Error('Unkown type: ' + type); - } -} - -var localforageSerializer = { - serialize: serialize, - deserialize: deserialize, - stringToBuffer: stringToBuffer, - bufferToString: bufferToString -}; -/* harmony default export */ const serializer = (localforageSerializer); ;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/drivers/sessionStorage.js // Copyright 2014 Mozilla // Copyright 2015 Thodoris Greasidis @@ -8288,7 +10474,7 @@ function isSessionStorageValid() { return false; } -function _getKeyPrefix(options, defaultConfig) { +function sessionStorage_getKeyPrefix(options, defaultConfig) { let keyPrefix = options.name + '/'; if (options.storeName !== defaultConfig.storeName) { @@ -8305,8 +10491,8 @@ const dbInfo = { } }; -function _initStorage(options) { - dbInfo.keyPrefix = _getKeyPrefix(options, this._defaultConfig); +function sessionStorage_initStorage(options) { + dbInfo.keyPrefix = sessionStorage_getKeyPrefix(options, this._defaultConfig); if (options) { for (const i in options) { @@ -8318,7 +10504,7 @@ function _initStorage(options) { // the app's key/value store! -function clear(callback) { +function sessionStorage_clear(callback) { const promise = this.ready().then(function () { const keyPrefix = dbInfo.keyPrefix; @@ -8337,7 +10523,7 @@ function clear(callback) { // is `undefined`, we pass that value to the callback function. -function getItem(key, callback) { +function sessionStorage_getItem(key, callback) { key = normalizeKey(key); const promise = this.ready().then(function () { let result = sessionStorage.getItem(dbInfo.keyPrefix + key); // If a result was found, parse it from the serialized @@ -8356,7 +10542,7 @@ function getItem(key, callback) { } // Iterate over all items in the store. -function iterate(iterator, callback) { +function sessionStorage_iterate(iterator, callback) { const self = this; const promise = self.ready().then(function () { const keyPrefix = dbInfo.keyPrefix; @@ -8399,7 +10585,7 @@ function iterate(iterator, callback) { } // Same as sessionStorage's key() method, except takes a callback. -function key(n, callback) { +function sessionStorage_key(n, callback) { const self = this; const promise = self.ready().then(function () { let result; @@ -8452,7 +10638,7 @@ function sessionStorage_length(callback) { } // Remove an item from the store, nice and simple. -function removeItem(key, callback) { +function sessionStorage_removeItem(key, callback) { key = normalizeKey(key); const promise = this.ready().then(function () { sessionStorage.removeItem(dbInfo.keyPrefix + key); @@ -8465,7 +10651,7 @@ function removeItem(key, callback) { // saved, or something like that. -function setItem(key, value, callback) { +function sessionStorage_setItem(key, value, callback) { key = normalizeKey(key); const promise = this.ready().then(function () { // Convert undefined values to null. @@ -8501,7 +10687,7 @@ function setItem(key, value, callback) { return promise; } -function dropInstance(options, callback) { +function sessionStorage_dropInstance(options, callback) { callback = getCallback.apply(this, arguments); options = typeof options !== 'function' && options || {}; @@ -8519,9 +10705,9 @@ function dropInstance(options, callback) { } else { promise = new Promise(function (resolve) { if (!options.storeName) { - resolve("".concat(options.name, "/")); + resolve(`${options.name}/`); } else { - resolve(_getKeyPrefix(options, self._defaultConfig)); + resolve(sessionStorage_getKeyPrefix(options, self._defaultConfig)); } }).then(function (keyPrefix) { for (let i = sessionStorage.length - 1; i >= 0; i--) { @@ -8540,17 +10726,17 @@ function dropInstance(options, callback) { const sessionStorageWrapper = { _driver: 'sessionStorageWrapper', - _initStorage: _initStorage, + _initStorage: sessionStorage_initStorage, _support: isSessionStorageValid(), - iterate: iterate, - getItem: getItem, - setItem: setItem, - removeItem: removeItem, - clear: clear, + iterate: sessionStorage_iterate, + getItem: sessionStorage_getItem, + setItem: sessionStorage_setItem, + removeItem: sessionStorage_removeItem, + clear: sessionStorage_clear, length: sessionStorage_length, - key: key, + key: sessionStorage_key, keys: sessionStorage_keys, - dropInstance: dropInstance + dropInstance: sessionStorage_dropInstance }; /* harmony default export */ const drivers_sessionStorage = (sessionStorageWrapper); // EXTERNAL MODULE: ./node_modules/localforage-setitems/dist/localforage-setitems.js @@ -8637,7 +10823,7 @@ class Storage { async clear() { await this.store.removeItem(this.name).catch(e => console.error(e)); - const re = new RegExp("^".concat(this.name, "-")); + const re = new RegExp(`^${this.name}-`); const keys = await this.store.keys(); const removed_keys = keys.filter(k => re.test(k)); await Promise.all(removed_keys.map(k => this.store.removeItem(k).catch(e => console.error(e)))); @@ -8844,6 +11030,9 @@ class Storage { Storage.sessionStorageInitialized = localforage.defineDriver(drivers_sessionStorage); Storage.localForage = localforage; /* harmony default export */ const storage = (Storage); +// EXTERNAL MODULE: ./node_modules/urijs/src/URI.js +var URI = __webpack_require__(2369); +var URI_default = /*#__PURE__*/__webpack_require__.n(URI); // EXTERNAL MODULE: ./node_modules/sprintf-js/src/sprintf.js var sprintf = __webpack_require__(4457); ;// CONCATENATED MODULE: ./src/headless/shared/i18n.js @@ -8913,10 +11102,10 @@ const LEVELS = { 'fatal': 4 }; const logger = Object.assign({ - 'debug': ((_console = console) === null || _console === void 0 ? void 0 : _console.log) ? console.log.bind(console) : function noop() {}, - 'error': ((_console2 = console) === null || _console2 === void 0 ? void 0 : _console2.log) ? console.log.bind(console) : function noop() {}, - 'info': ((_console3 = console) === null || _console3 === void 0 ? void 0 : _console3.log) ? console.log.bind(console) : function noop() {}, - 'warn': ((_console4 = console) === null || _console4 === void 0 ? void 0 : _console4.log) ? console.log.bind(console) : function noop() {} + 'debug': (_console = console) !== null && _console !== void 0 && _console.log ? console.log.bind(console) : function noop() {}, + 'error': (_console2 = console) !== null && _console2 !== void 0 && _console2.log ? console.log.bind(console) : function noop() {}, + 'info': (_console3 = console) !== null && _console3 !== void 0 && _console3.log ? console.log.bind(console) : function noop() {}, + 'warn': (_console4 = console) !== null && _console4 !== void 0 && _console4.log ? console.log.bind(console) : function noop() {} }, console); /** * The log namespace @@ -8931,7 +11120,7 @@ const log = { */ setLogLevel(level) { if (!['debug', 'info', 'warn', 'error', 'fatal'].includes(level)) { - throw new Error("Invalid loglevel: ".concat(level)); + throw new Error(`Invalid loglevel: ${level}`); } this.loglevel = level; @@ -8967,15 +11156,15 @@ const log = { const prefix = style ? '%c' : ''; if (level === 'error') { - logger.error("".concat(prefix, " ERROR: ").concat(message), style); + logger.error(`${prefix} ERROR: ${message}`, style); } else if (level === 'warn') { - logger.warn("".concat(prefix, " ").concat(new Date().toISOString(), " WARNING: ").concat(message), style); + logger.warn(`${prefix} ${new Date().toISOString()} WARNING: ${message}`, style); } else if (level === 'fatal') { - logger.error("".concat(prefix, " FATAL: ").concat(message), style); + logger.error(`${prefix} FATAL: ${message}`, style); } else if (level === 'debug') { - logger.debug("".concat(prefix, " ").concat(new Date().toISOString(), " DEBUG: ").concat(message), style); + logger.debug(`${prefix} ${new Date().toISOString()} DEBUG: ${message}`, style); } else { - logger.info("".concat(prefix, " ").concat(new Date().toISOString(), " INFO: ").concat(message), style); + logger.info(`${prefix} ${new Date().toISOString()} INFO: ${message}`, style); } }, @@ -9661,7 +11850,7 @@ class SASLPlain extends SASLMechanism { // See: https://tools.ietf.org/html/rfc6120#section-6.3.8 - let auth_str = authzid !== "".concat(authcid, "@").concat(domain) ? authzid : ''; + let auth_str = authzid !== `${authcid}@${domain}` ? authzid : ''; auth_str = auth_str + "\u0000"; auth_str = auth_str + authcid; auth_str = auth_str + "\u0000"; @@ -9901,7 +12090,7 @@ class SASLSHA1 extends SASLMechanism { // eslint-disable-line class-methods-use-this let nonce, salt, iter, Hi, U, U_old, i, k; let responseText = "c=biws,"; - let authMessage = "".concat(connection._sasl_data["client-first-message-bare"], ",").concat(challenge, ","); + let authMessage = `${connection._sasl_data["client-first-message-bare"]},${challenge},`; const cnonce = connection._sasl_data.cnonce; const attribMatch = /([a-z]+)=([^,]+)(,|$)/; @@ -10878,7 +13067,7 @@ const Strophe = { const names = [...Array(elem.attributes.length).keys()].map(i => elem.attributes[i].nodeName); names.sort(); - let result = names.reduce((a, n) => "".concat(a, " ").concat(n, "=\"").concat(Strophe.xmlescape(elem.attributes.getNamedItem(n).value), "\""), "<".concat(elem.nodeName)); + let result = names.reduce((a, n) => `${a} ${n}="${Strophe.xmlescape(elem.attributes.getNamedItem(n).value)}"`, `<${elem.nodeName}`); if (elem.childNodes.length > 0) { result += ">"; @@ -12211,7 +14400,7 @@ Strophe.Connection = class Connection { errback(stanza); } } else { - const error = new Error("Got bad IQ type of ".concat(iqtype)); + const error = new Error(`Got bad IQ type of ${iqtype}`); error.name = "StropheError"; throw error; } @@ -12504,7 +14693,7 @@ Strophe.Connection = class Connection { try { plugin.statusChanged(status, condition); } catch (err) { - Strophe.error("".concat(k, " plugin caused an exception changing status: ").concat(err)); + Strophe.error(`${k} plugin caused an exception changing status: ${err}`); } } } @@ -12517,7 +14706,7 @@ Strophe.Connection = class Connection { } catch (e) { Strophe._handleError(e); - Strophe.error("User connection callback caused an exception: ".concat(e)); + Strophe.error(`User connection callback caused an exception: ${e}`); } } } @@ -13078,7 +15267,7 @@ Strophe.Connection = class Connection { bind() { if (!this.do_bind) { - Strophe.log(Strophe.LogLevel.INFO, "Strophe.Connection.prototype.bind called but \"do_bind\" is false"); + Strophe.log(Strophe.LogLevel.INFO, `Strophe.Connection.prototype.bind called but "do_bind" is false`); return; } @@ -13164,7 +15353,7 @@ Strophe.Connection = class Connection { _establishSession() { if (!this.do_session) { - throw new Error("Strophe.Connection.prototype._establishSession " + "called but apparently ".concat(Strophe.NS.SESSION, " wasn't advertised by the server")); + throw new Error(`Strophe.Connection.prototype._establishSession ` + `called but apparently ${Strophe.NS.SESSION} wasn't advertised by the server`); } this._addSysHandler(this._onSessionResultIQ.bind(this), null, null, null, "_session_auth_2"); @@ -14177,7 +16366,7 @@ Strophe.Bosh = class Bosh { if (primary_timeout || secondary_timeout || server_error) { if (secondary_timeout) { - Strophe.error("Request ".concat(this._requests[i].id, " timed out (secondary), restarting")); + Strophe.error(`Request ${this._requests[i].id} timed out (secondary), restarting`); } req.abort = true; @@ -15101,7 +17290,7 @@ Strophe.WorkerWebsocket = class WorkerWebsocket extends Strophe.Websocket { var _console; (_console = console) === null || _console === void 0 ? void 0 : _console.error(e); - Strophe.log(Strophe.LogLevel.ERROR, "Shared Worker Error: ".concat(e)); + Strophe.log(Strophe.LogLevel.ERROR, `Shared Worker Error: ${e}`); }; } @@ -15225,7 +17414,7 @@ Strophe.WorkerWebsocket = class WorkerWebsocket extends Strophe.Websocket { const msg = data[2]; Strophe.log(lmap[level], msg); } else { - Strophe.log(Strophe.LogLevel.ERROR, "Found unhandled service worker message: ".concat(data)); + Strophe.log(Strophe.LogLevel.ERROR, `Found unhandled service worker message: ${data}`); } } @@ -18113,21 +20302,26 @@ function getDefaultStore() { return 'session'; } } + +function storeUsesIndexedDB(store) { + return store === 'persistent' && api.settings.get('persistent_store') === 'IndexedDB'; +} + function createStore(id, store) { const name = store || getDefaultStore(); const s = shared_converse.storage[name]; if (typeof s === 'undefined') { - throw new TypeError("createStore: Could not find store for ".concat(id)); + throw new TypeError(`createStore: Could not find store for ${id}`); } - return new storage(id, s, api.settings.get('persistent_store') === 'IndexedDB'); + return new storage(id, s, storeUsesIndexedDB(store)); } function initStorage(model, id, type) { const store = type || getDefaultStore(); model.browserStorage = shared_converse.createStore(id, store); - if (store === 'persistent' && api.settings.get('persistent_store') === 'IndexedDB') { + if (storeUsesIndexedDB(store)) { const flush = () => model.browserStorage.flush(); window.addEventListener(shared_converse.unloadevent, flush); @@ -18139,7 +20333,7 @@ function replacePromise(name) { const existing_promise = shared_converse.promises[name]; if (!existing_promise) { - throw new Error("Tried to replace non-existing promise: ".concat(name)); + throw new Error(`Tried to replace non-existing promise: ${name}`); } if (existing_promise.replace) { @@ -18147,7 +20341,7 @@ function replacePromise(name) { promise.replace = existing_promise.replace; shared_converse.promises[name] = promise; } else { - headless_log.debug("Not replacing promise \"".concat(name, "\"")); + headless_log.debug(`Not replacing promise "${name}"`); } } const utils_element = document.createElement('div'); @@ -19475,7 +21669,7 @@ u.toStanza = function (string) { const node = parser.parseFromString(string, "text/xml"); if (node.getElementsByTagNameNS(parserErrorNS, 'parsererror').length) { - throw new Error("Parser Error: ".concat(string)); + throw new Error(`Parser Error: ${string}`); } return node.firstElementChild; @@ -19503,7 +21697,7 @@ u.prefixMentions = function (message) { */ let text = message.get('message'); (message.get('references') || []).sort((a, b) => b.begin - a.begin).forEach(ref => { - text = "".concat(text.slice(0, ref.begin), "@").concat(text.slice(ref.begin)); + text = `${text.slice(0, ref.begin)}@${text.slice(ref.begin)}`; }); return text; }; @@ -19541,7 +21735,7 @@ u.isNewMessage = function (message) { * message, i.e. not a MAM archived one. */ if (message instanceof Element) { - return !(sizzle_default()("result[xmlns=\"".concat(Strophe.NS.MAM, "\"]"), message).length && sizzle_default()("delay[xmlns=\"".concat(Strophe.NS.DELAY, "\"]"), message).length); + return !(sizzle_default()(`result[xmlns="${Strophe.NS.MAM}"]`, message).length && sizzle_default()(`delay[xmlns="${Strophe.NS.DELAY}"]`, message).length); } else if (message instanceof Model) { message = message.attributes; } @@ -19614,7 +21808,7 @@ u.isForbiddenError = function (stanza) { return false; } - return sizzle_default()("error[type=\"auth\"] forbidden[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), stanza).length > 0; + return sizzle_default()(`error[type="auth"] forbidden[xmlns="${Strophe.NS.STANZAS}"]`, stanza).length > 0; }; u.isServiceUnavailableError = function (stanza) { @@ -19622,7 +21816,7 @@ u.isServiceUnavailableError = function (stanza) { return false; } - return sizzle_default()("error[type=\"cancel\"] service-unavailable[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), stanza).length > 0; + return sizzle_default()(`error[type="cancel"] service-unavailable[xmlns="${Strophe.NS.STANZAS}"]`, stanza).length > 0; }; /** * Merge the second object into the first one. @@ -19835,14 +22029,14 @@ u.getCurrentWord = function (input, index, delineator) { return word; }; -u.isMentionBoundary = s => s !== '@' && RegExp("(\\p{Z}|\\p{P})", 'u').test(s); +u.isMentionBoundary = s => s !== '@' && RegExp(`(\\p{Z}|\\p{P})`, 'u').test(s); u.replaceCurrentWord = function (input, new_value) { const caret = input.selectionEnd || undefined; const current_word = lodash_es_last(input.value.slice(0, caret).split(/\s/)); const value = input.value; const mention_boundary = u.isMentionBoundary(current_word[0]) ? current_word[0] : ''; - input.value = value.slice(0, caret - current_word.length) + mention_boundary + "".concat(new_value, " ") + value.slice(caret); + input.value = value.slice(0, caret - current_word.length) + mention_boundary + `${new_value} ` + value.slice(caret); const selection_end = caret - current_word.length + new_value.length + 1; input.selectionEnd = mention_boundary ? selection_end + 1 : selection_end; }; @@ -19879,43 +22073,6 @@ u.formatFingerprint = function (fp) { return fp; }; -u.appendArrayBuffer = function (buffer1, buffer2) { - const tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength); - tmp.set(new Uint8Array(buffer1), 0); - tmp.set(new Uint8Array(buffer2), buffer1.byteLength); - return tmp.buffer; -}; - -u.arrayBufferToHex = function (ab) { - // https://stackoverflow.com/questions/40031688/javascript-arraybuffer-to-hex#40031979 - return Array.prototype.map.call(new Uint8Array(ab), x => ('00' + x.toString(16)).slice(-2)).join(''); -}; - -u.arrayBufferToString = function (ab) { - return new TextDecoder("utf-8").decode(ab); -}; - -u.stringToArrayBuffer = function (string) { - const bytes = new TextEncoder("utf-8").encode(string); - return bytes.buffer; -}; - -u.arrayBufferToBase64 = function (ab) { - return btoa(new Uint8Array(ab).reduce((data, byte) => data + String.fromCharCode(byte), '')); -}; - -u.base64ToArrayBuffer = function (b64) { - const binary_string = window.atob(b64), - len = binary_string.length, - bytes = new Uint8Array(len); - - for (let i = 0; i < len; i++) { - bytes[i] = binary_string.charCodeAt(i); - } - - return bytes.buffer; -}; - u.getRandomInt = function (max) { return Math.floor(Math.random() * Math.floor(max)); }; @@ -20015,7 +22172,7 @@ u.waitUntil = function (func, max_wait = 300, check_delay = 3) { function handler() { clearTimers(max_wait_timeout, interval); - const err_msg = "Wait until promise timed out: \n\n".concat(timeout_err.stack); + const err_msg = `Wait until promise timed out: \n\n${timeout_err.stack}`; console.trace(); headless_log.error(err_msg); promise.reject(new Error(err_msg)); @@ -20136,8 +22293,8 @@ function initUserSettings() { throw Error(msg); } - if (!((_user_settings = user_settings) === null || _user_settings === void 0 ? void 0 : _user_settings.fetched)) { - const id = "converse.user-settings.".concat(shared_converse.bare_jid); + if (!((_user_settings = user_settings) !== null && _user_settings !== void 0 && _user_settings.fetched)) { + const id = `converse.user-settings.${shared_converse.bare_jid}`; user_settings = new Model({ id }); @@ -20522,7 +22679,7 @@ var invoke = _baseRest(_baseInvoke); // EXTERNAL MODULE: ./node_modules/localforage-webextensionstorage-driver/local.js var local = __webpack_require__(7002); -;// CONCATENATED MODULE: ./src/headless/node_modules/pluggable.js/src/pluggable.js +;// CONCATENATED MODULE: ./node_modules/pluggable.js/src/pluggable.js /* ____ __ __ __ _ / __ \/ /_ __ ___ ___ ____ _/ /_ / /__ (_)____ @@ -20656,7 +22813,7 @@ class PluginSocket { if (dep) { var _dep$dependencies; - if ((_dep$dependencies = dep.dependencies) === null || _dep$dependencies === void 0 ? void 0 : _dep$dependencies.includes(plugin.__name__)) { + if ((_dep$dependencies = dep.dependencies) !== null && _dep$dependencies !== void 0 && _dep$dependencies.includes(plugin.__name__)) { /* FIXME: circular dependency checking is only one level deep. */ throw "Found a circular dependency between the plugins \"" + plugin.__name__ + "\" and \"" + name + "\""; } @@ -20689,7 +22846,7 @@ class PluginSocket { if (typeof override === "object") { if (typeof this.plugged[key] === 'undefined') { - this.throwUndefinedDependencyError("Plugin \"".concat(plugin.__name__, "\" tried to override \"").concat(key, "\" but it's not found.")); + this.throwUndefinedDependencyError(`Plugin "${plugin.__name__}" tried to override "${key}" but it's not found.`); } else { this._extendObject(this.plugged[key], override); } @@ -20716,7 +22873,7 @@ class PluginSocket { return; } - if (typeof plugin.enabled === 'boolean' && plugin.enabled || ((_plugin$enabled = plugin.enabled) === null || _plugin$enabled === void 0 ? void 0 : _plugin$enabled.call(plugin, this.plugged)) || plugin.enabled == null) { + if (typeof plugin.enabled === 'boolean' && plugin.enabled || (_plugin$enabled = plugin.enabled) !== null && _plugin$enabled !== void 0 && _plugin$enabled.call(plugin, this.plugged) || plugin.enabled == null) { // isNil Object.assign(plugin, this.properties); @@ -22526,7 +24683,7 @@ class Connection extends Strophe.Connection { } static generateResource() { - return "/converse.js-".concat(Math.floor(Math.random() * 139749528).toString()); + return `/converse.js-${Math.floor(Math.random() * 139749528).toString()}`; } async bind() { @@ -22549,8 +24706,8 @@ class Connection extends Strophe.Connection { return headless_log.warn("Could not discover XEP-0156 connection methods"); } - const bosh_links = sizzle_default()("Link[rel=\"urn:xmpp:alt-connections:xbosh\"]", xrd); - const ws_links = sizzle_default()("Link[rel=\"urn:xmpp:alt-connections:websocket\"]", xrd); + const bosh_links = sizzle_default()(`Link[rel="urn:xmpp:alt-connections:xbosh"]`, xrd); + const ws_links = sizzle_default()(`Link[rel="urn:xmpp:alt-connections:websocket"]`, xrd); const bosh_methods = bosh_links.map(el => el.getAttribute('href')); const ws_methods = ws_links.map(el => el.getAttribute('href')); @@ -22581,13 +24738,13 @@ class Connection extends Strophe.Connection { 'Accept': 'application/xrd+xml, text/xml' } }; - const url = "https://".concat(domain, "/.well-known/host-meta"); + const url = `https://${domain}/.well-known/host-meta`; let response; try { response = await fetch(url, options); } catch (e) { - headless_log.error("Failed to discover alternative connection methods at ".concat(url)); + headless_log.error(`Failed to discover alternative connection methods at ${url}`); headless_log.error(e); return; } @@ -22770,7 +24927,7 @@ class Connection extends Strophe.Connection { const { __ } = shared_converse; - headless_log.debug("Status changed to: ".concat(shared_converse.CONNECTION_STATUS[status])); + headless_log.debug(`Status changed to: ${shared_converse.CONNECTION_STATUS[status]}`); if (status === Strophe.Status.ATTACHFAIL) { var _this$worker_attach_p; @@ -22780,7 +24937,7 @@ class Connection extends Strophe.Connection { } else if (status === Strophe.Status.CONNECTED || status === Strophe.Status.ATTACHED) { var _this$worker_attach_p2, _this$worker_attach_p3; - if (((_this$worker_attach_p2 = this.worker_attach_promise) === null || _this$worker_attach_p2 === void 0 ? void 0 : _this$worker_attach_p2.isResolved) && this.status === Strophe.Status.ATTACHED) { + if ((_this$worker_attach_p2 = this.worker_attach_promise) !== null && _this$worker_attach_p2 !== void 0 && _this$worker_attach_p2.isResolved && this.status === Strophe.Status.ATTACHED) { // A different tab must have attached, so nothing to do for us here. return; } @@ -22830,7 +24987,7 @@ class Connection extends Strophe.Connection { let feedback = message; if (message === "host-unknown" || message == "remote-connection-failed") { - feedback = __("Sorry, we could not connect to the XMPP host with domain: %1$s", "\"".concat(Strophe.getDomainFromJid(this.jid), "\"")); + feedback = __("Sorry, we could not connect to the XMPP host with domain: %1$s", `\"${Strophe.getDomainFromJid(this.jid)}\"`); } else if (message !== undefined && message === (Strophe === null || Strophe === void 0 ? void 0 : (_Strophe$ErrorConditi = Strophe.ErrorCondition) === null || _Strophe$ErrorConditi === void 0 ? void 0 : _Strophe$ErrorConditi.NO_AUTH_MECH)) { feedback = __("The XMPP server did not offer a supported authentication mechanism"); } @@ -22853,7 +25010,7 @@ class Connection extends Strophe.Connection { hasResumed() { var _api$settings$get; - if (((_api$settings$get = api.settings.get("connection_options")) === null || _api$settings$get === void 0 ? void 0 : _api$settings$get.worker) || this.isType('bosh')) { + if ((_api$settings$get = api.settings.get("connection_options")) !== null && _api$settings$get !== void 0 && _api$settings$get.worker || this.isType('bosh')) { return shared_converse.connfeedback.get('connection_status') === Strophe.Status.ATTACHED; } else { // Not binding means that the session was resumed. @@ -22879,7 +25036,7 @@ class MockConnection extends Connection { this.sent_stanzas = []; this.IQ_stanzas = []; this.IQ_ids = []; - this.features = Strophe.xmlHtmlNode('' + '' + '' + '' + '' + '' + '' + "" + '' + '' + '' + '').firstChild; + this.features = Strophe.xmlHtmlNode('' + '' + '' + '' + '' + '' + '' + `` + '' + '' + '' + '').firstChild; this._proto._processRequest = () => {}; @@ -22933,26 +25090,44 @@ class MockConnection extends Connection { } } +;// CONCATENATED MODULE: ./node_modules/@lit/reactive-element/css-tag.js +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const css_tag_t=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,e=Symbol();class s{constructor(t,s){if(s!==e)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return css_tag_t&&void 0===this.t&&(this.t=new CSSStyleSheet,this.t.replaceSync(this.cssText)),this.t}toString(){return this.cssText}}const n=new Map,o=t=>{let o=n.get(t);return void 0===o&&n.set(t,o=new s(t,e)),o},r=t=>o("string"==typeof t?t:t+""),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,n,o)=>e+(t=>{if(t instanceof s)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+t[o+1]),t[0]);return o(n)},S=(e,s)=>{css_tag_t?e.adoptedStyleSheets=s.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):s.forEach((t=>{const s=document.createElement("style");s.textContent=t.cssText,e.appendChild(s)}))},css_tag_u=css_tag_t?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t; +//# sourceMappingURL=css-tag.js.map + +;// CONCATENATED MODULE: ./node_modules/@lit/reactive-element/reactive-element.js + +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */var reactive_element_s,reactive_element_e,h,reactive_element_r;const reactive_element_o={toAttribute(t,i){switch(i){case Boolean:t=t?"":null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},reactive_element_n=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:reactive_element_o,reflect:!1,hasChanged:reactive_element_n};class a extends HTMLElement{constructor(){super(),this.Πi=new Map,this.Πo=void 0,this.Πl=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this.Πh=null,this.u()}static addInitializer(t){var i;null!==(i=this.v)&&void 0!==i||(this.v=[]),this.v.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this.Πp(s,i);void 0!==e&&(this.Πm.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s="symbol"==typeof t?Symbol():"__"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const h=this[t];this[i]=e,this.requestUpdate(t,h,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this.Πm=new Map,this.hasOwnProperty("properties")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(css_tag_u(i))}else void 0!==i&&s.push(css_tag_u(i));return s}static Πp(t,i){const s=i.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this.Πg=new Promise((t=>this.enableUpdating=t)),this.L=new Map,this.Π_(),this.requestUpdate(),null===(t=this.constructor.v)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this.ΠU)&&void 0!==i?i:this.ΠU=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this.ΠU)||void 0===i||i.splice(this.ΠU.indexOf(t)>>>0,1)}Π_(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this.Πi.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return S(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this.ΠU)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)})),this.Πl&&(this.Πl(),this.Πo=this.Πl=void 0)}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this.ΠU)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)})),this.Πo=new Promise((t=>this.Πl=t))}attributeChangedCallback(t,i,s){this.K(t,s)}Πj(t,i,s=l){var e,h;const r=this.constructor.Πp(t,s);if(void 0!==r&&!0===s.reflect){const n=(null!==(h=null===(e=s.converter)||void 0===e?void 0:e.toAttribute)&&void 0!==h?h:reactive_element_o.toAttribute)(i,s.type);this.Πh=t,null==n?this.removeAttribute(r):this.setAttribute(r,n),this.Πh=null}}K(t,i){var s,e,h;const r=this.constructor,n=r.Πm.get(t);if(void 0!==n&&this.Πh!==n){const t=r.getPropertyOptions(n),l=t.converter,a=null!==(h=null!==(e=null===(s=l)||void 0===s?void 0:s.fromAttribute)&&void 0!==e?e:"function"==typeof l?l:null)&&void 0!==h?h:reactive_element_o.fromAttribute;this.Πh=n,this[n]=a(i,t.type),this.Πh=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||reactive_element_n)(this[t],i)?(this.L.has(t)||this.L.set(t,i),!0===s.reflect&&this.Πh!==t&&(void 0===this.Πk&&(this.Πk=new Map),this.Πk.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this.Πg=this.Πq())}async Πq(){this.isUpdatePending=!0;try{for(await this.Πg;this.Πo;)await this.Πo}catch(t){Promise.reject(t)}const t=this.performUpdate();return null!=t&&await t,!this.isUpdatePending}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this.Πi&&(this.Πi.forEach(((t,i)=>this[i]=t)),this.Πi=void 0);let i=!1;const s=this.L;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this.ΠU)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this.Π$()}catch(t){throw i=!1,this.Π$(),t}i&&this.E(s)}willUpdate(t){}E(t){var i;null===(i=this.ΠU)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}Π$(){this.L=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this.Πg}shouldUpdate(t){return!0}update(t){void 0!==this.Πk&&(this.Πk.forEach(((t,i)=>this.Πj(i,this[i],t))),this.Πk=void 0),this.Π$()}updated(t){}firstUpdated(t){}}a.finalized=!0,a.elementProperties=new Map,a.elementStyles=[],a.shadowRootOptions={mode:"open"},null===(reactive_element_e=(reactive_element_s=globalThis).reactiveElementPlatformSupport)||void 0===reactive_element_e||reactive_element_e.call(reactive_element_s,{ReactiveElement:a}),(null!==(h=(reactive_element_r=globalThis).reactiveElementVersions)&&void 0!==h?h:reactive_element_r.reactiveElementVersions=[]).push("1.0.0-rc.2"); +//# sourceMappingURL=reactive-element.js.map + ;// CONCATENATED MODULE: ./node_modules/lit-html/lit-html.js /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -var lit_html_t, i, s, e; +var lit_html_t, lit_html_i, lit_html_s, lit_html_e; -const o = globalThis.trustedTypes, - l = o ? o.createPolicy("lit-html", { +const lit_html_o = globalThis.trustedTypes, + lit_html_l = lit_html_o ? lit_html_o.createPolicy("lit-html", { createHTML: t => t }) : void 0, - n = "lit$".concat((Math.random() + "").slice(9), "$"), - h = "?" + n, - r = "<".concat(h, ">"), + lit_html_n = `lit$${(Math.random() + "").slice(9)}$`, + lit_html_h = "?" + lit_html_n, + lit_html_r = `<${lit_html_h}>`, lit_html_u = document, c = (t = "") => lit_html_u.createComment(t), d = t => null === t || "object" != typeof t && "function" != typeof t, v = Array.isArray, - a = t => { + lit_html_a = t => { var i; return v(t) || "function" == typeof (null === (i = t) || void 0 === i ? void 0 : i[Symbol.iterator]); }, @@ -23003,11 +25178,11 @@ const o = globalThis.trustedTypes, for (; v < s.length && (u.lastIndex = v, c = u.exec(s), null !== c);) v = u.lastIndex, u === f ? "!--" === c[1] ? u = _ : void 0 !== c[1] ? u = m : void 0 !== c[2] ? (y.test(c[2]) && (o = RegExp("" === c[0] ? (u = null != o ? o : f, d = -1) : void 0 === c[1] ? d = -2 : (d = u.lastIndex - c[2].length, l = c[1], u = void 0 === c[3] ? p : '"' === c[3] ? g : $) : u === g || u === $ ? u = p : u === _ || u === m ? u = f : (u = p, o = void 0); const a = u === p && t[i + 1].startsWith("/>") ? " " : ""; - h += u === f ? s + r : d >= 0 ? (e.push(l), s.slice(0, d) + "$lit$" + s.slice(d) + n + a) : s + n + (-2 === d ? (e.push(void 0), i) : a); + h += u === f ? s + lit_html_r : d >= 0 ? (e.push(l), s.slice(0, d) + "$lit$" + s.slice(d) + lit_html_n + a) : s + lit_html_n + (-2 === d ? (e.push(void 0), i) : a); } const c = h + (t[s] || "") + (2 === i ? "" : ""); - return [void 0 !== l ? l.createHTML(c) : c, e]; + return [void 0 !== lit_html_l ? lit_html_l.createHTML(c) : c, e]; }; class N { @@ -23034,11 +25209,11 @@ class N { if (e.hasAttributes()) { const t = []; - for (const i of e.getAttributeNames()) if (i.endsWith("$lit$") || i.startsWith(n)) { + for (const i of e.getAttributeNames()) if (i.endsWith("$lit$") || i.startsWith(lit_html_n)) { const s = a[r++]; if (t.push(i), void 0 !== s) { - const t = e.getAttribute(s.toLowerCase() + "$lit$").split(n), + const t = e.getAttribute(s.toLowerCase() + "$lit$").split(lit_html_n), i = /([.?@])?(.*)/.exec(s); d.push({ type: 1, @@ -23057,11 +25232,11 @@ class N { } if (y.test(e.tagName)) { - const t = e.textContent.split(n), + const t = e.textContent.split(lit_html_n), i = t.length - 1; if (i > 0) { - e.textContent = o ? o.emptyScript : ""; + e.textContent = lit_html_o ? lit_html_o.emptyScript : ""; for (let s = 0; s < i; s++) e.append(t[s], c()), E.nextNode(), d.push({ type: 2, @@ -23071,16 +25246,16 @@ class N { e.append(t[i], c()); } } - } else if (8 === e.nodeType) if (e.data === h) d.push({ + } else if (8 === e.nodeType) if (e.data === lit_html_h) d.push({ type: 2, index: l });else { let t = -1; - for (; -1 !== (t = e.data.indexOf(n, t + 1));) d.push({ + for (; -1 !== (t = e.data.indexOf(lit_html_n, t + 1));) d.push({ type: 7, index: l - }), t += n.length - 1; + }), t += lit_html_n.length - 1; } l++; @@ -23094,12 +25269,12 @@ class N { } -function S(t, i, s = t, e) { +function lit_html_S(t, i, s = t, e) { var o, l, n, h; if (i === lit_html_w) return i; let r = void 0 !== e ? null === (o = s.Σi) || void 0 === o ? void 0 : o[e] : s.Σo; const u = d(i) ? void 0 : i._$litDirective$; - return (null == r ? void 0 : r.constructor) !== u && (null === (l = null == r ? void 0 : r.O) || void 0 === l || l.call(r, !1), void 0 === u ? r = void 0 : (r = new u(t), r.T(t, s, e)), void 0 !== e ? (null !== (n = (h = s).Σi) && void 0 !== n ? n : h.Σi = [])[e] = r : s.Σo = r), void 0 !== r && (i = S(t, r.S(t, i.values), r, e)), i; + return (null == r ? void 0 : r.constructor) !== u && (null === (l = null == r ? void 0 : r.O) || void 0 === l || l.call(r, !1), void 0 === u ? r = void 0 : (r = new u(t), r.T(t, s, e)), void 0 !== e ? (null !== (n = (h = s).Σi) && void 0 !== n ? n : h.Σi = [])[e] = r : s.Σo = r), void 0 !== r && (i = lit_html_S(t, r.S(t, i.values), r, e)), i; } class k { @@ -23165,7 +25340,7 @@ class C { } I(t, i = this) { - t = S(this, t, i), d(t) ? t === A || null == t || "" === t ? (this.H !== A && this.R(), this.H = A) : t !== this.H && t !== lit_html_w && this.m(t) : void 0 !== t._$litType$ ? this._(t) : void 0 !== t.nodeType ? this.$(t) : a(t) ? this.g(t) : this.m(t); + t = lit_html_S(this, t, i), d(t) ? t === A || null == t || "" === t ? (this.H !== A && this.R(), this.H = A) : t !== this.H && t !== lit_html_w && this.m(t) : void 0 !== t._$litType$ ? this._(t) : void 0 !== t.nodeType ? this.$(t) : lit_html_a(t) ? this.g(t) : this.m(t); } k(t, i = this.B) { @@ -23234,11 +25409,11 @@ class H { I(t, i = this, s, e) { const o = this.strings; let l = !1; - if (void 0 === o) t = S(this, t, i, 0), l = !d(t) || t !== this.H && t !== lit_html_w, l && (this.H = t);else { + if (void 0 === o) t = lit_html_S(this, t, i, 0), l = !d(t) || t !== this.H && t !== lit_html_w, l && (this.H = t);else { const e = t; let n, h; - for (t = o[0], n = 0; n < o.length - 1; n++) h = S(this, e[s + n], i, n), h === lit_html_w && (h = this.H[n]), l || (l = !d(h) || h !== this.H[n]), h === A ? t = A : t !== A && (t += (null != h ? h : "") + o[n + 1]), this.H[n] = h; + for (t = o[0], n = 0; n < o.length - 1; n++) h = lit_html_S(this, e[s + n], i, n), h === lit_html_w && (h = this.H[n]), l || (l = !d(h) || h !== this.H[n]), h === A ? t = A : t !== A && (t += (null != h ? h : "") + o[n + 1]), this.H[n] = h; } l && !e && this.W(t); } @@ -23278,7 +25453,7 @@ class R extends H { I(t, i = this) { var s; - if ((t = null !== (s = S(this, t, i, 0)) && void 0 !== s ? s : A) === lit_html_w) return; + if ((t = null !== (s = lit_html_S(this, t, i, 0)) && void 0 !== s ? s : A) === lit_html_w) return; const e = this.H, o = t === A && e !== A || t.capture !== e.capture || t.once !== e.once || t.passive !== e.passive, l = t !== A && (e === A || o); @@ -23298,20 +25473,20 @@ class z { } I(t) { - S(this, t); + lit_html_S(this, t); } } const Z = { Z: "$lit$", - U: n, - Y: h, + U: lit_html_n, + Y: lit_html_h, q: 1, X: M, tt: k, - it: a, - st: S, + it: lit_html_a, + st: lit_html_S, et: C, ot: H, nt: L, @@ -23319,33 +25494,15 @@ const Z = { lt: I, ht: z }; -null === (i = (lit_html_t = globalThis).litHtmlPlatformSupport) || void 0 === i || i.call(lit_html_t, N, C), (null !== (s = (e = globalThis).litHtmlVersions) && void 0 !== s ? s : e.litHtmlVersions = []).push("2.0.0-rc.3"); +null === (lit_html_i = (lit_html_t = globalThis).litHtmlPlatformSupport) || void 0 === lit_html_i || lit_html_i.call(lit_html_t, N, C), (null !== (lit_html_s = (lit_html_e = globalThis).litHtmlVersions) && void 0 !== lit_html_s ? lit_html_s : lit_html_e.litHtmlVersions = []).push("2.0.0-rc.3"); -;// CONCATENATED MODULE: ./node_modules/@lit/reactive-element/css-tag.js -/** - * @license - * Copyright 2019 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */ -const css_tag_t=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,css_tag_e=Symbol();class css_tag_n{constructor(t,n){if(n!==css_tag_e)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return css_tag_t&&void 0===this.t&&(this.t=new CSSStyleSheet,this.t.replaceSync(this.cssText)),this.t}toString(){return this.cssText}}const css_tag_s=t=>new css_tag_n(t+"",css_tag_e),css_tag_o=new Map,css_tag_r=(t,...s)=>{const r=s.reduce(((e,s,o)=>e+(t=>{if(t instanceof css_tag_n)return t.cssText;if("number"==typeof t)return t;throw Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(s)+t[o+1]),t[0]);let i=css_tag_o.get(r);return void 0===i&&css_tag_o.set(r,i=new css_tag_n(r,css_tag_e)),i},css_tag_i=(e,n)=>{css_tag_t?e.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((t=>{const n=document.createElement("style");n.textContent=t.cssText,e.appendChild(n)}))},css_tag_S=css_tag_t?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const n of t.cssRules)e+=n.cssText;return css_tag_s(e)})(t):t; -//# sourceMappingURL=css-tag.js.map - -;// CONCATENATED MODULE: ./node_modules/@lit/reactive-element/reactive-element.js +;// CONCATENATED MODULE: ./node_modules/lit-element/lit-element.js /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause - */var reactive_element_s,reactive_element_e,reactive_element_h,reactive_element_r;const reactive_element_o={toAttribute(t,i){switch(i){case Boolean:t=t?"":null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},reactive_element_n=(t,i)=>i!==t&&(i==i||t==t),reactive_element_l={attribute:!0,type:String,converter:reactive_element_o,reflect:!1,hasChanged:reactive_element_n};class reactive_element_a extends HTMLElement{constructor(){super(),this.Πi=new Map,this.Πo=void 0,this.Πl=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this.Πh=null,this.u()}static addInitializer(t){var i;null!==(i=this.v)&&void 0!==i||(this.v=[]),this.v.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this.Πp(s,i);void 0!==e&&(this.Πm.set(e,s),t.push(e))})),t}static createProperty(t,i=reactive_element_l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s="symbol"==typeof t?Symbol():"__"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const h=this[t];this[i]=e,this.requestUpdate(t,h,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||reactive_element_l}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this.Πm=new Map,this.hasOwnProperty("properties")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(css_tag_S(i))}else void 0!==i&&s.push(css_tag_S(i));return s}static Πp(t,i){const s=i.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this.Πg=new Promise((t=>this.enableUpdating=t)),this.L=new Map,this.Π_(),this.requestUpdate(),null===(t=this.constructor.v)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this.ΠU)&&void 0!==i?i:this.ΠU=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this.ΠU)||void 0===i||i.splice(this.ΠU.indexOf(t)>>>0,1)}Π_(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this.Πi.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return css_tag_i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this.ΠU)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)})),this.Πl&&(this.Πl(),this.Πo=this.Πl=void 0)}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this.ΠU)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)})),this.Πo=new Promise((t=>this.Πl=t))}attributeChangedCallback(t,i,s){this.K(t,s)}Πj(t,i,s=reactive_element_l){var e,h;const r=this.constructor.Πp(t,s);if(void 0!==r&&!0===s.reflect){const n=(null!==(h=null===(e=s.converter)||void 0===e?void 0:e.toAttribute)&&void 0!==h?h:reactive_element_o.toAttribute)(i,s.type);this.Πh=t,null==n?this.removeAttribute(r):this.setAttribute(r,n),this.Πh=null}}K(t,i){var s,e,h;const r=this.constructor,n=r.Πm.get(t);if(void 0!==n&&this.Πh!==n){const t=r.getPropertyOptions(n),l=t.converter,a=null!==(h=null!==(e=null===(s=l)||void 0===s?void 0:s.fromAttribute)&&void 0!==e?e:"function"==typeof l?l:null)&&void 0!==h?h:reactive_element_o.fromAttribute;this.Πh=n,this[n]=a(i,t.type),this.Πh=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||reactive_element_n)(this[t],i)?(this.L.has(t)||this.L.set(t,i),!0===s.reflect&&this.Πh!==t&&(void 0===this.Πk&&(this.Πk=new Map),this.Πk.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this.Πg=this.Πq())}async Πq(){this.isUpdatePending=!0;try{for(await this.Πg;this.Πo;)await this.Πo}catch(t){Promise.reject(t)}const t=this.performUpdate();return null!=t&&await t,!this.isUpdatePending}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this.Πi&&(this.Πi.forEach(((t,i)=>this[i]=t)),this.Πi=void 0);let i=!1;const s=this.L;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this.ΠU)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this.Π$()}catch(t){throw i=!1,this.Π$(),t}i&&this.E(s)}willUpdate(t){}E(t){var i;null===(i=this.ΠU)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}Π$(){this.L=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this.Πg}shouldUpdate(t){return!0}update(t){void 0!==this.Πk&&(this.Πk.forEach(((t,i)=>this.Πj(i,this[i],t))),this.Πk=void 0),this.Π$()}updated(t){}firstUpdated(t){}}reactive_element_a.finalized=!0,reactive_element_a.shadowRootOptions={mode:"open"},null===(reactive_element_e=(reactive_element_s=globalThis).reactiveElementPlatformSupport)||void 0===reactive_element_e||reactive_element_e.call(reactive_element_s,{ReactiveElement:reactive_element_a}),(null!==(reactive_element_h=(reactive_element_r=globalThis).reactiveElementVersions)&&void 0!==reactive_element_h?reactive_element_h:reactive_element_r.reactiveElementVersions=[]).push("1.0.0-rc.1"); -//# sourceMappingURL=reactive-element.js.map - -;// CONCATENATED MODULE: ./node_modules/lit/node_modules/lit-element/lit-element.js - -/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var lit_element_i,lit_element_l,lit_element_o,lit_element_s,lit_element_n,lit_element_a;const lit_element_c=(/* unused pure expression or super */ null && (t));(null!==(lit_element_i=(lit_element_a=globalThis).litElementVersions)&&void 0!==lit_element_i?lit_element_i:lit_element_a.litElementVersions=[]).push("3.0.0-rc.1");class lit_element_h extends reactive_element_a{constructor(){super(...arguments),this.renderOptions={host:this},this.Φt=void 0}createRenderRoot(){var t,e;const r=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=r.firstChild),r}update(t){const r=this.render();super.update(t),this.Φt=V(r,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this.Φt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this.Φt)||void 0===t||t.setConnected(!1)}render(){return lit_html_w}}lit_element_h.finalized=!0,lit_element_h._$litElement$=!0,null===(lit_element_o=(lit_element_l=globalThis).litElementHydrateSupport)||void 0===lit_element_o||lit_element_o.call(lit_element_l,{LitElement:lit_element_h}),null===(lit_element_n=(lit_element_s=globalThis).litElementPlatformSupport)||void 0===lit_element_n||lit_element_n.call(lit_element_s,{LitElement:lit_element_h});const lit_element_u={K:(t,e,r)=>{t.K(e,r)},L:t=>t.L}; + */var lit_element_i,lit_element_l,lit_element_o,lit_element_s,lit_element_n,lit_element_a;const lit_element_c=(/* unused pure expression or super */ null && (t));(null!==(lit_element_i=(lit_element_a=globalThis).litElementVersions)&&void 0!==lit_element_i?lit_element_i:lit_element_a.litElementVersions=[]).push("3.0.0-rc.2");class lit_element_h extends a{constructor(){super(...arguments),this.renderOptions={host:this},this.Φt=void 0}createRenderRoot(){var t,e;const r=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=r.firstChild),r}update(t){const r=this.render();super.update(t),this.Φt=V(r,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this.Φt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this.Φt)||void 0===t||t.setConnected(!1)}render(){return lit_html_w}}lit_element_h.finalized=!0,lit_element_h._$litElement$=!0,null===(lit_element_o=(lit_element_l=globalThis).litElementHydrateSupport)||void 0===lit_element_o||lit_element_o.call(lit_element_l,{LitElement:lit_element_h}),null===(lit_element_n=(lit_element_s=globalThis).litElementPlatformSupport)||void 0===lit_element_n||lit_element_n.call(lit_element_s,{LitElement:lit_element_h});const lit_element_u={K:(t,e,r)=>{t.K(e,r)},L:t=>t.L}; //# sourceMappingURL=lit-element.js.map ;// CONCATENATED MODULE: ./node_modules/lit/index.js @@ -23384,6 +25541,7 @@ const css_tag_t=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.na + dayjs_min_default().extend((advancedFormat_default())); // Add Strophe Namespaces @@ -23392,6 +25550,7 @@ Strophe.addNamespace('CARBONS', 'urn:xmpp:carbons:2'); Strophe.addNamespace('CHATSTATES', 'http://jabber.org/protocol/chatstates'); Strophe.addNamespace('CSI', 'urn:xmpp:csi:0'); Strophe.addNamespace('DELAY', 'urn:xmpp:delay'); +Strophe.addNamespace('EME', 'urn:xmpp:eme:0'); Strophe.addNamespace('FASTEN', 'urn:xmpp:fasten:0'); Strophe.addNamespace('FORWARD', 'urn:xmpp:forward:0'); Strophe.addNamespace('HINTS', 'urn:xmpp:hints'); @@ -23529,7 +25688,7 @@ const api = shared_converse.api = { await shared_converse.setUserJID(api.settings.get("jid")); } - if ((_converse$connection2 = shared_converse.connection) === null || _converse$connection2 === void 0 ? void 0 : _converse$connection2.reconnecting) { + if ((_converse$connection2 = shared_converse.connection) !== null && _converse$connection2 !== void 0 && _converse$connection2.reconnecting) { shared_converse.connection.debouncedReconnect(); } else { return shared_converse.connection.reconnect(); @@ -23655,11 +25814,11 @@ const api = shared_converse.api = { jid = jid || shared_converse.jid; - if (!((_converse$connection3 = shared_converse.connection) === null || _converse$connection3 === void 0 ? void 0 : _converse$connection3.jid) || jid && !utils_core.isSameDomain(shared_converse.connection.jid, jid)) { + if (!((_converse$connection3 = shared_converse.connection) !== null && _converse$connection3 !== void 0 && _converse$connection3.jid) || jid && !utils_core.isSameDomain(shared_converse.connection.jid, jid)) { await shared_converse.initConnection(); } - if (((_api$settings$get = api.settings.get("connection_options")) === null || _api$settings$get === void 0 ? void 0 : _api$settings$get.worker) && (await shared_converse.connection.restoreWorkerSession())) { + if ((_api$settings$get = api.settings.get("connection_options")) !== null && _api$settings$get !== void 0 && _api$settings$get.worker && (await shared_converse.connection.restoreWorkerSession())) { return; } @@ -24033,7 +26192,7 @@ const api = shared_converse.api = { if (typeof stanza === 'string') { stanza = utils_core.toStanza(stanza); - } else if ((_stanza = stanza) === null || _stanza === void 0 ? void 0 : _stanza.nodeTree) { + } else if ((_stanza = stanza) !== null && _stanza !== void 0 && _stanza.nodeTree) { stanza = stanza.nodeTree; } @@ -24059,10 +26218,10 @@ const api = shared_converse.api = { * nothing to wait for, so an already resolved promise is returned. */ sendIQ(stanza, timeout = shared_converse.STANZA_TIMEOUT, reject = true) { - var _stanza$nodeTree, _stanza2; + var _stanza2; let promise; - stanza = (_stanza$nodeTree = (_stanza2 = stanza) === null || _stanza2 === void 0 ? void 0 : _stanza2.nodeTree) !== null && _stanza$nodeTree !== void 0 ? _stanza$nodeTree : stanza; + stanza = ((_stanza2 = stanza) === null || _stanza2 === void 0 ? void 0 : _stanza2.nodeTree) ?? stanza; if (['get', 'set'].includes(stanza.getAttribute('type'))) { timeout = timeout || shared_converse.STANZA_TIMEOUT; @@ -24071,7 +26230,7 @@ const api = shared_converse.api = { promise = new Promise((resolve, reject) => shared_converse.connection.sendIQ(stanza, resolve, reject, timeout)); promise.catch(e => { if (e === null) { - throw new TimeoutError("Timeout error after ".concat(timeout, "ms for the following IQ stanza: ").concat(Strophe.serialize(stanza))); + throw new TimeoutError(`Timeout error after ${timeout}ms for the following IQ stanza: ${Strophe.serialize(stanza)}`); } }); } else { @@ -24109,7 +26268,7 @@ async function initSessionStorage() { }; } -function initPersistentStorage() { +function initPersistentStorage(store_name) { if (api.settings.get('persistent_store') === 'sessionStorage') { return; } else if (shared_converse.api.settings.get("persistent_store") === 'BrowserExtLocal') { @@ -24124,7 +26283,7 @@ function initPersistentStorage() { const config = { 'name': shared_converse.isTestEnv() ? 'converse-test-persistent' : 'converse-persistent', - 'storeName': shared_converse.bare_jid + 'storeName': store_name }; if (shared_converse.api.settings.get("persistent_store") === 'localStorage') { @@ -24346,10 +26505,10 @@ async function initSession(jid) { const is_shared_session = api.settings.get('connection_options').worker; const bare_jid = Strophe.getBareJidFromJid(jid).toLowerCase(); - const id = "converse.session-".concat(bare_jid); + const id = `converse.session-${bare_jid}`; if (((_converse$session2 = shared_converse.session) === null || _converse$session2 === void 0 ? void 0 : _converse$session2.get('id')) !== id) { - initPersistentStorage(); + initPersistentStorage(bare_jid); shared_converse.session = new Model({ id }); @@ -24532,7 +26691,7 @@ function fetchLoginCredentials(wait = 0) { }); }); } else { - reject(new Error("".concat(xhr.status, ": ").concat(xhr.responseText))); + reject(new Error(`${xhr.status}: ${xhr.responseText}`)); } }; @@ -24774,7 +26933,7 @@ Object.assign(core_converse, { plugin.__name__ = name; if (shared_converse.pluggable.plugins[name] !== undefined) { - throw new TypeError("Error: plugin with name \"".concat(name, "\" has already been ") + 'registered!'); + throw new TypeError(`Error: plugin with name "${name}" has already been ` + 'registered!'); } else { shared_converse.pluggable.plugins[name] = plugin; } @@ -24809,6 +26968,7 @@ Object.assign(core_converse, { Model: Model, Promise, Strophe: Strophe, + URI: (URI_default()), dayjs: (dayjs_min_default()), html: T, log: headless_log, @@ -24835,7 +26995,7 @@ function rejectMessage(stanza, text) { }).up().c('text', { xmlns: 'urn:ietf:params:xml:ns:xmpp-stanzas' }).t(text)); - headless_log.warn("Rejecting message stanza with the following reason: ".concat(text)); + headless_log.warn(`Rejecting message stanza with the following reason: ${text}`); headless_log.warn(stanza); } /** @@ -24858,6 +27018,107 @@ function sendMarker(to_jid, id, type, msg_type) { }); api.send(stanza); } +;// CONCATENATED MODULE: ./src/headless/utils/url.js + + + + +function checkTLS(uri) { + return window.location.protocol === 'http:' || window.location.protocol === 'https:' && uri.protocol().toLowerCase() === 'https'; +} + +function getURI(url) { + try { + return url instanceof (URI_default()) ? url : new (URI_default())(url); + } catch (error) { + headless_log.debug(error); + return null; + } +} + +function checkFileTypes(types, url) { + const uri = getURI(url); + + if (uri === null || !checkTLS(uri)) { + return false; + } + + const filename = uri.filename().toLowerCase(); + return !!types.filter(ext => filename.endsWith(ext)).length; +} + +function isDomainAllowed(whitelist, url) { + const uri = getURI(url); + const subdomain = uri.subdomain(); + const domain = uri.domain(); + const fulldomain = `${subdomain ? `${subdomain}.` : ''}${domain}`; + return whitelist.includes(domain) || whitelist.includes(fulldomain); +} + +function filterQueryParamsFromURL(url) { + const paramsArray = api.settings.get('filter_url_query_params'); + if (!paramsArray) return url; + const parsed_uri = getURI(url); + return parsed_uri.removeQuery(paramsArray).toString(); +} +function isAudioDomainAllowed(url) { + const embed_audio = api.settings.get('embed_audio'); + + if (!Array.isArray(embed_audio)) { + return embed_audio; + } + + try { + return isDomainAllowed(embed_audio, url); + } catch (error) { + headless_log.debug(error); + return false; + } +} +function isVideoDomainAllowed(url) { + const embed_videos = api.settings.get('embed_videos'); + + if (!Array.isArray(embed_videos)) { + return embed_videos; + } + + try { + return isDomainAllowed(embed_videos, url); + } catch (error) { + headless_log.debug(error); + return false; + } +} +function isImageDomainAllowed(url) { + const show_images_inline = api.settings.get('show_images_inline'); + + if (!Array.isArray(show_images_inline)) { + return show_images_inline; + } + + try { + return isDomainAllowed(show_images_inline, url); + } catch (error) { + headless_log.debug(error); + return false; + } +} +function isURLWithImageExtension(url) { + return checkFileTypes(['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.svg'], url); +} +function isAudioURL(url) { + return checkFileTypes(['.ogg', '.mp3', '.m4a'], url); +} +function isVideoURL(url) { + return checkFileTypes(['.mp4', '.webm'], url); +} +function isImageURL(url) { + const regex = api.settings.get('image_urls_regex'); + return (regex === null || regex === void 0 ? void 0 : regex.test(url)) || isURLWithImageExtension(url); +} +function isEncryptedFileURL(url) { + return url.startsWith('aesgcm://'); +} ;// CONCATENATED MODULE: ./src/headless/shared/parsers.js @@ -24865,6 +27126,9 @@ function sendMarker(to_jid, id, type, msg_type) { + + + const { NS } = Strophe; @@ -24887,23 +27151,23 @@ class StanzaParseError extends Error { function getStanzaIDs(stanza, original_stanza) { const attrs = {}; // Store generic stanza ids - const sids = sizzle_default()("stanza-id[xmlns=\"".concat(Strophe.NS.SID, "\"]"), stanza); + const sids = sizzle_default()(`stanza-id[xmlns="${Strophe.NS.SID}"]`, stanza); const sid_attrs = sids.reduce((acc, s) => { - acc["stanza_id ".concat(s.getAttribute('by'))] = s.getAttribute('id'); + acc[`stanza_id ${s.getAttribute('by')}`] = s.getAttribute('id'); return acc; }, {}); Object.assign(attrs, sid_attrs); // Store the archive id - const result = sizzle_default()("message > result[xmlns=\"".concat(Strophe.NS.MAM, "\"]"), original_stanza).pop(); + const result = sizzle_default()(`message > result[xmlns="${Strophe.NS.MAM}"]`, original_stanza).pop(); if (result) { const by_jid = original_stanza.getAttribute('from') || shared_converse.bare_jid; - attrs["stanza_id ".concat(by_jid)] = result.getAttribute('id'); + attrs[`stanza_id ${by_jid}`] = result.getAttribute('id'); } // Store the origin id - const origin_id = sizzle_default()("origin-id[xmlns=\"".concat(Strophe.NS.SID, "\"]"), stanza).pop(); + const origin_id = sizzle_default()(`origin-id[xmlns="${Strophe.NS.SID}"]`, stanza).pop(); if (origin_id) { attrs['origin_id'] = origin_id.getAttribute('id'); @@ -24914,21 +27178,36 @@ function getStanzaIDs(stanza, original_stanza) { function getEncryptionAttributes(stanza, _converse) { var _converse$omemo_store; - const encrypted = sizzle_default()("encrypted[xmlns=\"".concat(Strophe.NS.OMEMO, "\"]"), stanza).pop(); - const attrs = { - 'is_encrypted': !!encrypted - }; + const eme_tag = sizzle_default()(`encryption[xmlns="${Strophe.NS.EME}"]`, stanza).pop(); + const namespace = eme_tag === null || eme_tag === void 0 ? void 0 : eme_tag.getAttribute('namespace'); + const attrs = {}; + + if (namespace) { + attrs.is_encrypted = true; + attrs.encryption_namespace = namespace; + + if (namespace !== Strophe.NS.OMEMO) { + // Found an encrypted message, but it's not OMEMO + return attrs; + } + } + + const encrypted = sizzle_default()(`encrypted[xmlns="${Strophe.NS.OMEMO}"]`, stanza).pop(); + + if (!eme_tag) { + attrs.is_encrypted = !!encrypted; + } if (!encrypted || api.settings.get('clear_cache_on_logout')) { return attrs; } const header = encrypted.querySelector('header'); - attrs['encrypted'] = { + attrs.encrypted = { 'device_id': header.getAttribute('sid') }; const device_id = (_converse$omemo_store = _converse.omemo_store) === null || _converse$omemo_store === void 0 ? void 0 : _converse$omemo_store.get('device_id'); - const key = device_id && sizzle_default()("key[rid=\"".concat(device_id, "\"]"), encrypted).pop(); + const key = device_id && sizzle_default()(`key[rid="${device_id}"]`, encrypted).pop(); if (key) { var _encrypted$querySelec; @@ -24952,14 +27231,14 @@ function getEncryptionAttributes(stanza, _converse) { */ function getRetractionAttributes(stanza, original_stanza) { - const fastening = sizzle_default()("> apply-to[xmlns=\"".concat(Strophe.NS.FASTEN, "\"]"), stanza).pop(); + const fastening = sizzle_default()(`> apply-to[xmlns="${Strophe.NS.FASTEN}"]`, stanza).pop(); if (fastening) { const applies_to_id = fastening.getAttribute('id'); - const retracted = sizzle_default()("> retract[xmlns=\"".concat(Strophe.NS.RETRACT, "\"]"), fastening).pop(); + const retracted = sizzle_default()(`> retract[xmlns="${Strophe.NS.RETRACT}"]`, fastening).pop(); if (retracted) { - const delay = sizzle_default()("delay[xmlns=\"".concat(Strophe.NS.DELAY, "\"]"), original_stanza).pop(); + const delay = sizzle_default()(`delay[xmlns="${Strophe.NS.DELAY}"]`, original_stanza).pop(); const time = delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : new Date().toISOString(); return { 'editable': false, @@ -24968,7 +27247,7 @@ function getRetractionAttributes(stanza, original_stanza) { }; } } else { - const tombstone = sizzle_default()("> retracted[xmlns=\"".concat(Strophe.NS.RETRACT, "\"]"), stanza).pop(); + const tombstone = sizzle_default()(`> retracted[xmlns="${Strophe.NS.RETRACT}"]`, stanza).pop(); if (tombstone) { return { @@ -24982,14 +27261,14 @@ function getRetractionAttributes(stanza, original_stanza) { return {}; } function getCorrectionAttributes(stanza, original_stanza) { - const el = sizzle_default()("replace[xmlns=\"".concat(Strophe.NS.MESSAGE_CORRECT, "\"]"), stanza).pop(); + const el = sizzle_default()(`replace[xmlns="${Strophe.NS.MESSAGE_CORRECT}"]`, stanza).pop(); if (el) { const replace_id = el.getAttribute('id'); const msgid = replace_id; if (replace_id) { - const delay = sizzle_default()("delay[xmlns=\"".concat(Strophe.NS.DELAY, "\"]"), original_stanza).pop(); + const delay = sizzle_default()(`delay[xmlns="${Strophe.NS.DELAY}"]`, original_stanza).pop(); const time = delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : new Date().toISOString(); return { msgid, @@ -25002,11 +27281,11 @@ function getCorrectionAttributes(stanza, original_stanza) { return {}; } function getOpenGraphMetadata(stanza) { - const fastening = sizzle_default()("> apply-to[xmlns=\"".concat(Strophe.NS.FASTEN, "\"]"), stanza).pop(); + const fastening = sizzle_default()(`> apply-to[xmlns="${Strophe.NS.FASTEN}"]`, stanza).pop(); if (fastening) { const applies_to_id = fastening.getAttribute('id'); - const meta = sizzle_default()("> meta[xmlns=\"".concat(Strophe.NS.XHTML, "\"]"), fastening); + const meta = sizzle_default()(`> meta[xmlns="${Strophe.NS.XHTML}"]`, fastening); if (meta.length) { const msg_limit = api.settings.get('message_limit'); @@ -25017,7 +27296,7 @@ function getOpenGraphMetadata(stanza) { let value = decodeHTMLEntities(el.getAttribute('content') || ''); if (msg_limit && property === 'og:description' && value.length >= msg_limit) { - value = "".concat(value.slice(0, msg_limit)).concat(decodeHTMLEntities('…')); + value = `${value.slice(0, msg_limit)}${decodeHTMLEntities('…')}`; } acc[property] = value; @@ -25036,15 +27315,49 @@ function getOpenGraphMetadata(stanza) { return {}; } +function getMediaURLs(text) { + const objs = []; + + if (!text) { + return {}; + } + + const parse_options = { + 'start': /\b(?:([a-z][a-z0-9.+-]*:\/\/)|xmpp:|mailto:|www\.)/gi + }; + + try { + URI_default().withinString(text, (url, start, end) => { + objs.push({ + url, + start, + end + }); + return url; + }, parse_options); + } catch (error) { + headless_log.debug(error); + } + + const media_urls = objs.filter(o => { + return isImageURL(o.url) && isImageDomainAllowed(o.url) || isVideoURL(o.url) && isVideoDomainAllowed(o.url) || isAudioURL(o.url) && isAudioDomainAllowed(o.url); + }).map(o => ({ + 'start': o.start, + 'end': o.end + })); + return media_urls.length ? { + media_urls + } : {}; +} function getSpoilerAttributes(stanza) { - const spoiler = sizzle_default()("spoiler[xmlns=\"".concat(Strophe.NS.SPOILER, "\"]"), stanza).pop(); + const spoiler = sizzle_default()(`spoiler[xmlns="${Strophe.NS.SPOILER}"]`, stanza).pop(); return { 'is_spoiler': !!spoiler, 'spoiler_hint': spoiler === null || spoiler === void 0 ? void 0 : spoiler.textContent }; } function getOutOfBandAttributes(stanza) { - const xform = sizzle_default()("x[xmlns=\"".concat(Strophe.NS.OUTOFBAND, "\"]"), stanza).pop(); + const xform = sizzle_default()(`x[xmlns="${Strophe.NS.OUTOFBAND}"]`, stanza).pop(); if (xform) { var _xform$querySelector, _xform$querySelector2; @@ -25066,7 +27379,7 @@ function getOutOfBandAttributes(stanza) { function getErrorAttributes(stanza) { if (stanza.getAttribute('type') === 'error') { const error = stanza.querySelector('error'); - const text = sizzle_default()("text[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).pop(); + const text = sizzle_default()(`text[xmlns="${Strophe.NS.STANZAS}"]`, error).pop(); return { 'is_error': true, 'error_text': text === null || text === void 0 ? void 0 : text.textContent, @@ -25081,7 +27394,7 @@ function getReferences(stanza) { var _stanza$querySelector; const text = (_stanza$querySelector = stanza.querySelector('body')) === null || _stanza$querySelector === void 0 ? void 0 : _stanza$querySelector.textContent; - return sizzle_default()("reference[xmlns=\"".concat(Strophe.NS.REFERENCE, "\"]"), stanza).map(ref => { + return sizzle_default()(`reference[xmlns="${Strophe.NS.REFERENCE}"]`, stanza).map(ref => { const begin = ref.getAttribute('begin'); const end = ref.getAttribute('end'); return { @@ -25094,7 +27407,7 @@ function getReferences(stanza) { }); } function getReceiptId(stanza) { - const receipt = sizzle_default()("received[xmlns=\"".concat(Strophe.NS.RECEIPTS, "\"]"), stanza).pop(); + const receipt = sizzle_default()(`received[xmlns="${Strophe.NS.RECEIPTS}"]`, stanza).pop(); return receipt === null || receipt === void 0 ? void 0 : receipt.getAttribute('id'); } /** @@ -25106,7 +27419,7 @@ function getReceiptId(stanza) { function isCarbon(stanza) { const xmlns = Strophe.NS.CARBONS; - return sizzle_default()("message > received[xmlns=\"".concat(xmlns, "\"]"), stanza).length > 0 || sizzle_default()("message > sent[xmlns=\"".concat(xmlns, "\"]"), stanza).length > 0; + return sizzle_default()(`message > received[xmlns="${xmlns}"]`, stanza).length > 0 || sizzle_default()(`message > sent[xmlns="${xmlns}"]`, stanza).length > 0; } /** * Returns the XEP-0085 chat state contained in a message stanza @@ -25117,18 +27430,23 @@ function isCarbon(stanza) { function getChatState(stanza) { var _sizzle$pop; - return (_sizzle$pop = sizzle_default()("\n composing[xmlns=\"".concat(NS.CHATSTATES, "\"],\n paused[xmlns=\"").concat(NS.CHATSTATES, "\"],\n inactive[xmlns=\"").concat(NS.CHATSTATES, "\"],\n active[xmlns=\"").concat(NS.CHATSTATES, "\"],\n gone[xmlns=\"").concat(NS.CHATSTATES, "\"]"), stanza).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.nodeName; + return (_sizzle$pop = sizzle_default()(` + composing[xmlns="${NS.CHATSTATES}"], + paused[xmlns="${NS.CHATSTATES}"], + inactive[xmlns="${NS.CHATSTATES}"], + active[xmlns="${NS.CHATSTATES}"], + gone[xmlns="${NS.CHATSTATES}"]`, stanza).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.nodeName; } function isValidReceiptRequest(stanza, attrs) { - return attrs.sender !== 'me' && !attrs.is_carbon && !attrs.is_archived && sizzle_default()("request[xmlns=\"".concat(Strophe.NS.RECEIPTS, "\"]"), stanza).length; + return attrs.sender !== 'me' && !attrs.is_carbon && !attrs.is_archived && sizzle_default()(`request[xmlns="${Strophe.NS.RECEIPTS}"]`, stanza).length; } function rejectUnencapsulatedForward(stanza) { - const bare_forward = sizzle_default()("message > forwarded[xmlns=\"".concat(Strophe.NS.FORWARD, "\"]"), stanza).length; + const bare_forward = sizzle_default()(`message > forwarded[xmlns="${Strophe.NS.FORWARD}"]`, stanza).length; if (bare_forward) { rejectMessage(stanza, 'Forwarded messages not part of an encapsulating protocol are not supported'); const from_jid = stanza.getAttribute('from'); - return new StanzaParseError("Ignoring unencapsulated forwarded message from ".concat(from_jid), stanza); + return new StanzaParseError(`Ignoring unencapsulated forwarded message from ${from_jid}`, stanza); } } /** @@ -25142,13 +27460,16 @@ function rejectUnencapsulatedForward(stanza) { function getChatMarker(stanza) { // If we receive more than one marker (which shouldn't happen), we take // the highest level of acknowledgement. - return sizzle_default()("\n acknowledged[xmlns=\"".concat(Strophe.NS.MARKERS, "\"],\n displayed[xmlns=\"").concat(Strophe.NS.MARKERS, "\"],\n received[xmlns=\"").concat(Strophe.NS.MARKERS, "\"]"), stanza).pop(); + return sizzle_default()(` + acknowledged[xmlns="${Strophe.NS.MARKERS}"], + displayed[xmlns="${Strophe.NS.MARKERS}"], + received[xmlns="${Strophe.NS.MARKERS}"]`, stanza).pop(); } function isHeadline(stanza) { return stanza.getAttribute('type') === 'headline'; } function isServerMessage(stanza) { - if (sizzle_default()("mentions[xmlns=\"".concat(Strophe.NS.MENTIONS, "\"]"), stanza).pop()) { + if (sizzle_default()(`mentions[xmlns="${Strophe.NS.MENTIONS}"]`, stanza).pop()) { return false; } @@ -25173,7 +27494,7 @@ function isServerMessage(stanza) { */ function isArchived(original_stanza) { - return !!sizzle_default()("message > result[xmlns=\"".concat(Strophe.NS.MAM, "\"]"), original_stanza).pop(); + return !!sizzle_default()(`message > result[xmlns="${Strophe.NS.MAM}"]`, original_stanza).pop(); } /** * Returns an object containing all attribute names and values for a particular element. @@ -25202,7 +27523,7 @@ let adhoc_converse, adhoc_api; adhoc_Strophe.addNamespace('ADHOC', 'http://jabber.org/protocol/commands'); function parseForCommands(stanza) { - const items = sizzle_default()("query[xmlns=\"".concat(adhoc_Strophe.NS.DISCO_ITEMS, "\"][node=\"").concat(adhoc_Strophe.NS.ADHOC, "\"] item"), stanza); + const items = sizzle_default()(`query[xmlns="${adhoc_Strophe.NS.DISCO_ITEMS}"][node="${adhoc_Strophe.NS.ADHOC}"] item`, stanza); return items.map(getAttributes); } @@ -25227,9 +27548,9 @@ const adhoc_adhoc_api = { commands = parseForCommands(await adhoc_api.disco.items(to_jid, adhoc_Strophe.NS.ADHOC)); } catch (e) { if (e === null) { - headless_log.error("Error: timeout while fetching ad-hoc commands for ".concat(to_jid)); + headless_log.error(`Error: timeout while fetching ad-hoc commands for ${to_jid}`); } else { - headless_log.error("Error while fetching ad-hoc commands for ".concat(to_jid)); + headless_log.error(`Error while fetching ad-hoc commands for ${to_jid}`); headless_log.error(e); } } @@ -25271,8 +27592,8 @@ const ModelWithContact = Model.extend({ }); /* harmony default export */ const model_with_contact = (ModelWithContact); -// EXTERNAL MODULE: ./src/headless/node_modules/filesize/lib/filesize.min.js -var filesize_min = __webpack_require__(4009); +// EXTERNAL MODULE: ./node_modules/filesize/lib/filesize.min.js +var filesize_min = __webpack_require__(6755); var filesize_min_default = /*#__PURE__*/__webpack_require__.n(filesize_min); ;// CONCATENATED MODULE: ./node_modules/lodash-es/isMatch.js @@ -25312,6 +27633,39 @@ function isMatch(object, source) { /* harmony default export */ const lodash_es_isMatch = (isMatch); +;// CONCATENATED MODULE: ./src/headless/shared/chat/utils.js + + +const { + u: utils_u +} = core_converse.env; +function pruneHistory(model) { + const max_history = api.settings.get('prune_messages_above'); + + if (max_history && typeof max_history === 'number') { + if (model.messages.length > max_history) { + const non_empty_messages = model.messages.filter(m => !utils_u.isEmptyMessage(m)); + + if (non_empty_messages.length > max_history) { + while (non_empty_messages.length > max_history) { + non_empty_messages.shift().destroy(); + } + /** + * Triggered once the message history has been pruned, i.e. + * once older messages have been removed to keep the + * number of messages below the value set in `prune_messages_above`. + * @event _converse#historyPruned + * @type { _converse.ChatBox | _converse.ChatRoom } + * @example _converse.api.listen.on('historyPruned', this => { ... }); + */ + + + api.trigger('historyPruned', model); + } + } + } +} +const debouncedPruneHistory = lodash_es_debounce(pruneHistory, 250); ;// CONCATENATED MODULE: ./src/headless/plugins/chat/parsers.js @@ -25344,7 +27698,7 @@ async function parseMessage(stanza, _converse) { const to_resource = parsers_Strophe.getResourceFromJid(to_jid); if (api.settings.get('filter_by_resource') && to_resource && to_resource !== _converse.resource) { - return new StanzaParseError("Ignoring incoming message intended for a different resource: ".concat(to_jid), stanza); + return new StanzaParseError(`Ignoring incoming message intended for a different resource: ${to_jid}`, stanza); } const original_stanza = stanza; @@ -25353,14 +27707,14 @@ async function parseMessage(stanza, _converse) { if (isCarbon(stanza)) { if (from_jid === _converse.bare_jid) { - const selector = "[xmlns=\"".concat(parsers_Strophe.NS.CARBONS, "\"] > forwarded[xmlns=\"").concat(parsers_Strophe.NS.FORWARD, "\"] > message"); + const selector = `[xmlns="${parsers_Strophe.NS.CARBONS}"] > forwarded[xmlns="${parsers_Strophe.NS.FORWARD}"] > message`; stanza = parsers_sizzle(selector, stanza).pop(); to_jid = stanza.getAttribute('to'); from_jid = stanza.getAttribute('from'); } else { // Prevent message forging via carbons: https://xmpp.org/extensions/xep-0280.html#security rejectMessage(stanza, 'Rejecting carbon from invalid JID'); - return new StanzaParseError("Rejecting carbon from invalid JID ".concat(to_jid), stanza); + return new StanzaParseError(`Rejecting carbon from invalid JID ${to_jid}`, stanza); } } @@ -25368,12 +27722,12 @@ async function parseMessage(stanza, _converse) { if (is_archived) { if (from_jid === _converse.bare_jid) { - const selector = "[xmlns=\"".concat(parsers_Strophe.NS.MAM, "\"] > forwarded[xmlns=\"").concat(parsers_Strophe.NS.FORWARD, "\"] > message"); + const selector = `[xmlns="${parsers_Strophe.NS.MAM}"] > forwarded[xmlns="${parsers_Strophe.NS.FORWARD}"] > message`; stanza = parsers_sizzle(selector, stanza).pop(); to_jid = stanza.getAttribute('to'); from_jid = stanza.getAttribute('from'); } else { - return new StanzaParseError("Invalid Stanza: alleged MAM message from ".concat(stanza.getAttribute('from')), stanza); + return new StanzaParseError(`Invalid Stanza: alleged MAM message from ${stanza.getAttribute('from')}`, stanza); } } @@ -25381,7 +27735,7 @@ async function parseMessage(stanza, _converse) { const is_me = from_bare_jid === _converse.bare_jid; if (is_me && to_jid === null) { - return new StanzaParseError("Don't know how to handle message stanza without 'to' attribute. ".concat(stanza.outerHTML), stanza); + return new StanzaParseError(`Don't know how to handle message stanza without 'to' attribute. ${stanza.outerHTML}`, stanza); } const is_headline = isHeadline(stanza); @@ -25394,7 +27748,7 @@ async function parseMessage(stanza, _converse) { if (contact === undefined && !api.settings.get('allow_non_roster_messaging')) { headless_log.error(stanza); - return new StanzaParseError("Blocking messaging with a JID not in our roster because allow_non_roster_messaging is false.", stanza); + return new StanzaParseError(`Blocking messaging with a JID not in our roster because allow_non_roster_messaging is false.`, stanza); } } /** @@ -25448,7 +27802,7 @@ async function parseMessage(stanza, _converse) { */ - const delay = parsers_sizzle("delay[xmlns=\"".concat(parsers_Strophe.NS.DELAY, "\"]"), original_stanza).pop(); + const delay = parsers_sizzle(`delay[xmlns="${parsers_Strophe.NS.DELAY}"]`, original_stanza).pop(); const marker = getChatMarker(stanza); const now = new Date().toISOString(); let attrs = Object.assign({ @@ -25461,9 +27815,9 @@ async function parseMessage(stanza, _converse) { 'from': parsers_Strophe.getBareJidFromJid(stanza.getAttribute('from')), 'is_carbon': isCarbon(original_stanza), 'is_delayed': !!delay, - 'is_markable': !!parsers_sizzle("markable[xmlns=\"".concat(parsers_Strophe.NS.MARKERS, "\"]"), stanza).length, + 'is_markable': !!parsers_sizzle(`markable[xmlns="${parsers_Strophe.NS.MARKERS}"]`, stanza).length, 'is_marker': !!marker, - 'is_unstyled': !!parsers_sizzle("unstyled[xmlns=\"".concat(parsers_Strophe.NS.STYLING, "\"]"), stanza).length, + 'is_unstyled': !!parsers_sizzle(`unstyled[xmlns="${parsers_Strophe.NS.STYLING}"]`, stanza).length, 'marker_id': marker && marker.getAttribute('id'), 'msgid': stanza.getAttribute('id') || original_stanza.getAttribute('id'), 'nick': (_contact = contact) === null || _contact === void 0 ? void 0 : (_contact$attributes = _contact.attributes) === null || _contact$attributes === void 0 ? void 0 : _contact$attributes.nickname, @@ -25482,7 +27836,7 @@ async function parseMessage(stanza, _converse) { const from = original_stanza.getAttribute('from'); if (from && from !== _converse.bare_jid) { - return new StanzaParseError("Invalid Stanza: Forged MAM message from ".concat(from), stanza); + return new StanzaParseError(`Invalid Stanza: Forged MAM message from ${from}`, stanza); } } @@ -25495,13 +27849,17 @@ async function parseMessage(stanza, _converse) { }, attrs); // We prefer to use one of the XEP-0359 unique and stable stanza IDs // as the Model id, to avoid duplicates. - attrs['id'] = attrs['origin_id'] || attrs["stanza_id ".concat(attrs.from)] || utils_core.getUniqueId(); + attrs['id'] = attrs['origin_id'] || attrs[`stanza_id ${attrs.from}`] || utils_core.getUniqueId(); /** * *Hook* which allows plugins to add additional parsing * @event _converse#parseMessage */ - return api.hook('parseMessage', stanza, attrs); + attrs = await api.hook('parseMessage', stanza, attrs); // We call this after the hook, to allow plugins to decrypt encrypted + // messages, since we need to parse the message text to determine whether + // there are media urls. + + return Object.assign(attrs, getMediaURLs(attrs.is_encrypted ? attrs.plaintext : attrs.body)); } ;// CONCATENATED MODULE: ./src/headless/plugins/chat/model.js @@ -25516,6 +27874,8 @@ async function parseMessage(stanza, _converse) { + + const { Strophe: model_Strophe, $msg: model_$msg @@ -25538,8 +27898,8 @@ const ChatBox = model_with_contact.extend({ 'message_type': 'chat', 'nickname': undefined, 'num_unread': 0, - 'time_sent': new Date(0).toISOString(), 'time_opened': this.get('time_opened') || new Date().getTime(), + 'time_sent': new Date(0).toISOString(), 'type': shared_converse.PRIVATE_CHAT_TYPE, 'url': '' }; @@ -25561,11 +27921,11 @@ const ChatBox = model_with_contact.extend({ } this.set({ - 'box_id': "box-".concat(jid) + 'box_id': `box-${jid}` }); this.initNotifications(); - this.initMessages(); this.initUI(); + this.initMessages(); if (this.get('type') === shared_converse.PRIVATE_CHAT_TYPE) { this.presence = shared_converse.presences.findWhere({ @@ -25578,7 +27938,7 @@ const ChatBox = model_with_contact.extend({ } this.on('change:chat_state', this.sendChatState, this); - this.on('change:scrolled', () => !this.get('scrolled') && this.clearUnreadMsgCounter()); + this.ui.on('change:scrolled', this.onScrolledChanged, this); await this.fetchMessages(); /** * Triggered once a {@link _converse.ChatBox} has been created and initialized. @@ -25598,13 +27958,14 @@ const ChatBox = model_with_contact.extend({ }, getMessagesCacheKey() { - return "converse.messages-".concat(this.get('jid'), "-").concat(shared_converse.bare_jid); + return `converse.messages-${this.get('jid')}-${shared_converse.bare_jid}`; }, initMessages() { this.messages = this.getMessagesCollection(); this.messages.fetched = getOpenPromise(); this.messages.fetched.then(() => { + this.pruneHistoryWhenScrolledDown(); /** * Triggered whenever a `_converse.ChatBox` instance has fetched its messages from * `sessionStorage` but **NOT** from the server. @@ -25612,15 +27973,13 @@ const ChatBox = model_with_contact.extend({ * @type {_converse.ChatBoxView | _converse.ChatRoomView} * @example _converse.api.listen.on('afterMessagesFetched', view => { ... }); */ + api.trigger('afterMessagesFetched', this); }); this.messages.chatbox = this; initStorage(this.messages, this.getMessagesCacheKey()); - this.listenTo(this.messages, 'change:upload', message => { - if (message.get('upload') === shared_converse.SUCCESS) { - api.send(this.createMessageStanza(message)); - } - }); + this.listenTo(this.messages, 'change:upload', this.onMessageUploadChanged, this); + this.listenTo(this.messages, 'add', this.onMessageAdded, this); }, initUI() { @@ -25664,7 +28023,7 @@ const ChatBox = model_with_contact.extend({ fetchMessages() { if (this.messages.fetched_flag) { - headless_log.info("Not re-fetching messages for ".concat(this.get('jid'))); + headless_log.info(`Not re-fetching messages for ${this.get('jid')}`); return; } @@ -25778,6 +28137,24 @@ const ChatBox = model_with_contact.extend({ } }, + async onMessageUploadChanged(message) { + if (message.get('upload') === shared_converse.SUCCESS) { + const attrs = { + 'body': message.get('message'), + 'spoiler_hint': message.get('spoiler_hint'), + 'oob_url': message.get('oob_url') + }; + await this.sendMessage(attrs); + message.destroy(); + } + }, + + onMessageAdded(message) { + if (api.settings.get('prune_messages_above') && (api.settings.get('pruning_behavior') === 'scrolled' || !this.ui.get('scrolled')) && !model_u.isEmptyMessage(message)) { + debouncedPruneHistory(this); + } + }, + async clearMessages() { try { await this.messages.clearStore(); @@ -25866,6 +28243,19 @@ const ChatBox = model_with_contact.extend({ }); }, + onScrolledChanged() { + if (!this.ui.get('scrolled')) { + this.clearUnreadMsgCounter(); + this.pruneHistoryWhenScrolledDown(); + } + }, + + pruneHistoryWhenScrolledDown() { + if (api.settings.get('prune_messages_above') && api.settings.get('pruning_behavior') === 'unscrolled' && !this.ui.get('scrolled')) { + pruneHistory(this); + } + }, + validate(attrs) { if (!attrs.jid) { return 'Ignored ChatBox without JID'; @@ -25875,7 +28265,7 @@ const ChatBox = model_with_contact.extend({ const auto_join = api.settings.get('auto_join_private_chats').concat(room_jids); if (api.settings.get("singleton") && !auto_join.includes(attrs.jid) && !api.settings.get('auto_join_on_invite')) { - const msg = "".concat(attrs.jid, " is not allowed because singleton is true and it's not being auto_joined"); + const msg = `${attrs.jid} is not allowed because singleton is true and it's not being auto_joined`; headless_log.warn(msg); return msg; } @@ -26206,7 +28596,7 @@ const ChatBox = model_with_contact.extend({ return keys.map(key => { const by_jid = key.replace(/^stanza_id /, ''); const query = {}; - query["stanza_id ".concat(by_jid)] = attrs[key]; + query[`stanza_id ${by_jid}`] = attrs[key]; return query; }); }, @@ -26298,7 +28688,7 @@ const ChatBox = model_with_contact.extend({ return; } - if ((msg === null || msg === void 0 ? void 0 : msg.get('is_markable')) || force) { + if (msg !== null && msg !== void 0 && msg.get('is_markable') || force) { const from_jid = model_Strophe.getBareJidFromJid(msg.get('from')); sendMarker(from_jid, msg.get('msgid'), type, msg.get('type')); } @@ -26321,7 +28711,7 @@ const ChatBox = model_with_contact.extend({ const message = this.messages.findWhere({ 'msgid': attrs.marker_id }); - const field_name = "marker_".concat(attrs.marker); + const field_name = `marker_${attrs.marker}`; if (message && !message.get(field_name)) { message.save({ @@ -26442,11 +28832,12 @@ const ChatBox = model_with_contact.extend({ return stanza; }, - getOutgoingMessageAttributes(text, spoiler_hint) { - const is_spoiler = this.get('composing_spoiler'); + getOutgoingMessageAttributes(attrs) { + const is_spoiler = !!this.get('composing_spoiler'); const origin_id = model_u.getUniqueId(); + const text = attrs === null || attrs === void 0 ? void 0 : attrs.body; const body = text ? model_u.httpToGeoUri(model_u.shortnamesToUnicode(text), shared_converse) : undefined; - return { + return Object.assign({}, attrs, { 'from': shared_converse.bare_jid, 'fullname': shared_converse.xmppstatus.get('fullname'), 'id': origin_id, @@ -26456,13 +28847,12 @@ const ChatBox = model_with_contact.extend({ 'msgid': origin_id, 'nickname': this.get('nickname'), 'sender': 'me', - 'spoiler_hint': is_spoiler ? spoiler_hint : undefined, 'time': new Date().toISOString(), 'type': this.get('message_type'), body, is_spoiler, origin_id - }; + }, getMediaURLs(text)); }, /** @@ -26520,15 +28910,14 @@ const ChatBox = model_with_contact.extend({ * @private * @method _converse.ChatBox#sendMessage * @memberOf _converse.ChatBox - * @param { String } text - The chat message text - * @param { String } spoiler_hint - An optional hint, if the message being sent is a spoiler + * @param { Object } [attrs] - A map of attributes to be saved on the message * @returns { _converse.Message } * @example - * const chat = api.chats.get('buddy1@example.com'); - * chat.sendMessage('hello world'); + * const chat = api.chats.get('buddy1@example.org'); + * chat.sendMessage({'body': 'hello world'}); */ - async sendMessage(text, spoiler_hint) { - const attrs = this.getOutgoingMessageAttributes(text, spoiler_hint); + async sendMessage(attrs) { + attrs = this.getOutgoingMessageAttributes(attrs); let message = this.messages.findWhere('correcting'); if (message) { @@ -26631,6 +29020,13 @@ const ChatBox = model_with_contact.extend({ } Array.from(files).forEach(async file => { + /** + * *Hook* which allows plugins to transform files before they'll be + * uploaded. The main use-case is to encrypt the files. + * @event _converse#beforeFileUpload + */ + file = await api.hook('beforeFileUpload', this, file); + if (!window.isNaN(max_file_size) && window.parseInt(file.size) > max_file_size) { return this.createMessage({ 'message': __('The size of your file, %1$s, exceeds the maximum allowed by your server, which is %2$s.', file.name, filesize_min_default()(max_file_size)), @@ -26701,7 +29097,7 @@ const ChatBox = model_with_contact.extend({ * @param {_converse.Message} message */ handleUnreadMessage(message) { - if (!(message === null || message === void 0 ? void 0 : message.get('body'))) { + if (!(message !== null && message !== void 0 && message.get('body'))) { return; } @@ -26711,8 +29107,8 @@ const ChatBox = model_with_contact.extend({ // gets scrolled down. We always want to scroll down // when the user writes a message as opposed to when a // message is received. - this.model.set('scrolled', false); - } else if (this.isHidden() || this.get('scrolled')) { + this.ui.set('scrolled', false); + } else if (this.isHidden() || this.ui.get('scrolled')) { const settings = { 'num_unread': this.get('num_unread') + 1 }; @@ -26739,7 +29135,7 @@ const ChatBox = model_with_contact.extend({ }, isScrolledUp() { - return this.get('scrolled'); + return this.ui.get('scrolled'); } }); @@ -26749,6 +29145,7 @@ const ChatBox = model_with_contact.extend({ + const message_u = core_converse.env.utils; const { Strophe: message_Strophe @@ -26856,10 +29253,50 @@ const MessageMixin = { } }, + /** + * Returns a boolean indicating whether this message is ephemeral, + * meaning it will get automatically removed after ten seconds. + * @returns { boolean } + */ isEphemeral() { return this.get('is_ephemeral'); }, + /** + * Returns a boolean indicating whether this message is a XEP-0245 /me command. + * @returns { boolean } + */ + isMeCommand() { + const text = this.getMessageText(); + + if (!text) { + return false; + } + + return text.startsWith('/me '); + }, + + /** + * Returns a boolean indicating whether this message is considered a followup + * message from the previous one. Followup messages are shown grouped together + * under one author heading. + * A message is considered a followup of it's predecessor when it's a chat + * message from the same author, within 10 minutes. + * @returns { boolean } + */ + isFollowup() { + const messages = this.collection.models; + const idx = messages.indexOf(this); + const prev_model = idx ? messages[idx - 1] : null; + + if (prev_model === null) { + return false; + } + + const date = dayjs_min_default()(this.get('time')); + return this.get('from') === prev_model.get('from') && !this.isMeCommand() && !prev_model.isMeCommand() && this.get('type') !== 'info' && prev_model.get('type') !== 'info' && date.isBefore(dayjs_min_default()(prev_model.get('time')).add(10, 'minutes')) && !!this.get('is_encrypted') === !!prev_model.get('is_encrypted'); + }, + getDisplayName() { if (this.get('type') === 'groupchat') { return this.get('nick'); @@ -26884,16 +29321,6 @@ const MessageMixin = { return this.get('message'); }, - isMeCommand() { - const text = this.getMessageText(); - - if (!text) { - return false; - } - - return text.startsWith('/me '); - }, - /** * Send out an IQ stanza to request a file upload slot. * https://xmpp.org/extensions/xep-0363.html#request @@ -26954,16 +29381,25 @@ const MessageMixin = { uploadFile() { const xhr = new XMLHttpRequest(); - xhr.onreadystatechange = () => { + xhr.onreadystatechange = async () => { if (xhr.readyState === XMLHttpRequest.DONE) { headless_log.info('Status: ' + xhr.status); if (xhr.status === 200 || xhr.status === 201) { - this.save({ + let attrs = { 'upload': shared_converse.SUCCESS, 'oob_url': this.get('get'), - 'message': this.get('get') - }); + 'message': this.get('get'), + 'body': this.get('get') + }; + /** + * *Hook* which allows plugins to change the attributes + * saved on the message once a file has been uploaded. + * @event _converse#afterFileUploaded + */ + + attrs = await api.hook('afterFileUploaded', this, attrs); + this.save(attrs); } else { xhr.onerror(); } @@ -27021,7 +29457,7 @@ const MessageMixin = { */ async create(jids, attrs) { if (typeof jids === 'string') { - if (attrs && !(attrs === null || attrs === void 0 ? void 0 : attrs.fullname)) { + if (attrs && !(attrs !== null && attrs !== void 0 && attrs.fullname)) { var _contact$attributes; const contact = await api.contacts.get(jids); @@ -27163,9 +29599,160 @@ const MessageMixin = { } }); +;// CONCATENATED MODULE: ./src/headless/plugins/chat/utils.js + + + + +const { + Strophe: utils_Strophe, + sizzle: utils_sizzle, + u: chat_utils_u +} = core_converse.env; +function openChat(jid) { + if (!chat_utils_u.isValidJID(jid)) { + return headless_log.warn(`Invalid JID "${jid}" provided in URL fragment`); + } + + api.chats.open(jid); +} +async function onClearSession() { + if (shared_converse.shouldClearCache()) { + await Promise.all(shared_converse.chatboxes.map(c => c.messages && c.messages.clearStore({ + 'silent': true + }))); + + const filter = o => o.get('type') !== shared_converse.CONTROLBOX_TYPE; + + shared_converse.chatboxes.clearStore({ + 'silent': true + }, filter); + } +} + +async function handleErrorMessage(stanza) { + const from_jid = utils_Strophe.getBareJidFromJid(stanza.getAttribute('from')); + + if (chat_utils_u.isSameBareJID(from_jid, shared_converse.bare_jid)) { + return; + } + + const chatbox = await api.chatboxes.get(from_jid); + chatbox === null || chatbox === void 0 ? void 0 : chatbox.handleErrorMessageStanza(stanza); +} + +function autoJoinChats() { + // Automatically join private chats, based on the + // "auto_join_private_chats" configuration setting. + api.settings.get('auto_join_private_chats').forEach(jid => { + if (shared_converse.chatboxes.where({ + 'jid': jid + }).length) { + return; + } + + if (typeof jid === 'string') { + api.chats.open(jid); + } else { + headless_log.error('Invalid jid criteria specified for "auto_join_private_chats"'); + } + }); + /** + * Triggered once any private chats have been automatically joined as + * specified by the `auto_join_private_chats` setting. + * See: https://conversejs.org/docs/html/configuration.html#auto-join-private-chats + * @event _converse#privateChatsAutoJoined + * @example _converse.api.listen.on('privateChatsAutoJoined', () => { ... }); + * @example _converse.api.waitUntil('privateChatsAutoJoined').then(() => { ... }); + */ + + api.trigger('privateChatsAutoJoined'); +} +function registerMessageHandlers() { + shared_converse.connection.addHandler(stanza => { + if (utils_sizzle(`message > result[xmlns="${utils_Strophe.NS.MAM}"]`, stanza).pop()) { + // MAM messages are handled in converse-mam. + // We shouldn't get MAM messages here because + // they shouldn't have a `type` attribute. + headless_log.warn(`Received a MAM message with type "chat".`); + return true; + } + + shared_converse.handleMessageStanza(stanza); + + return true; + }, null, 'message', 'chat'); + + shared_converse.connection.addHandler(stanza => { + // Message receipts are usually without the `type` attribute. See #1353 + if (stanza.getAttribute('type') !== null) { + // TODO: currently Strophe has no way to register a handler + // for stanzas without a `type` attribute. + // We could update it to accept null to mean no attribute, + // but that would be a backward-incompatible change + return true; // Gets handled above. + } + + shared_converse.handleMessageStanza(stanza); + + return true; + }, utils_Strophe.NS.RECEIPTS, 'message'); + + shared_converse.connection.addHandler(stanza => { + handleErrorMessage(stanza); + return true; + }, null, 'message', 'error'); +} +/** + * Handler method for all incoming single-user chat "message" stanzas. + * @private + * @param { MessageAttributes } attrs - The message attributes + */ + +async function handleMessageStanza(stanza) { + if (isServerMessage(stanza)) { + // Prosody sends headline messages with type `chat`, so we need to filter them out here. + const from = stanza.getAttribute('from'); + return headless_log.info(`handleMessageStanza: Ignoring incoming server message from JID: ${from}`); + } + + const attrs = await parseMessage(stanza, shared_converse); + + if (chat_utils_u.isErrorObject(attrs)) { + attrs.stanza && headless_log.error(attrs.stanza); + return headless_log.error(attrs.message); + } + + const has_body = !!utils_sizzle(`body, encrypted[xmlns="${utils_Strophe.NS.OMEMO}"]`, stanza).length; + const chatbox = await api.chats.get(attrs.contact_jid, { + 'nickname': attrs.nick + }, has_body); + await (chatbox === null || chatbox === void 0 ? void 0 : chatbox.queueMessage(attrs)); + /** + * @typedef { Object } MessageData + * An object containing the original message stanza, as well as the + * parsed attributes. + * @property { XMLElement } stanza + * @property { MessageAttributes } stanza + * @property { ChatBox } chatbox + */ + + const data = { + stanza, + attrs, + chatbox + }; + /** + * Triggered when a message stanza is been received and processed. + * @event _converse#message + * @type { object } + * @property { module:converse-chat~MessageData } data + */ + + api.trigger('message', data); +} ;// CONCATENATED MODULE: ./src/headless/plugins/chat/index.js /** - * @module converse-chat * @copyright 2020, the Converse.js contributors * @license Mozilla Public License (MPLv2) */ @@ -27176,26 +29763,6 @@ const MessageMixin = { - - -const { - Strophe: chat_Strophe, - sizzle: chat_sizzle, - utils: chat_utils -} = core_converse.env; -const chat_u = core_converse.env.utils; - -async function handleErrorMessage(stanza) { - const from_jid = chat_Strophe.getBareJidFromJid(stanza.getAttribute('from')); - - if (chat_utils.isSameBareJID(from_jid, shared_converse.bare_jid)) { - return; - } - - const chatbox = await api.chatboxes.get(from_jid); - chatbox === null || chatbox === void 0 ? void 0 : chatbox.handleErrorMessageStanza(stanza); -} - core_converse.plugins.add('converse-chat', { /* Optional dependencies are other plugins which might be * overridden or relied upon, and therefore need to be loaded before @@ -27212,14 +29779,10 @@ core_converse.plugins.add('converse-chat', { dependencies: ['converse-chatboxes', 'converse-disco'], initialize() { - /* The initialize function gets called as soon as the plugin is - * loaded by converse.js's plugin machinery. - */ - Object.assign(api, chat_api); // Configuration values for this plugin + // Configuration values for this plugin // ==================================== // Refer to docs/source/configuration.rst for explanations of these // configuration settings. - api.settings.extend({ 'allow_message_corrections': 'all', 'allow_message_retraction': 'all', @@ -27227,6 +29790,8 @@ core_converse.plugins.add('converse-chat', { 'auto_join_private_chats': [], 'clear_messages_on_reconnection': false, 'filter_by_resource': false, + 'prune_messages_above': undefined, + 'pruning_behavior': 'unscrolled', 'send_chat_markers': ["received", "displayed", "acknowledged"], 'send_chat_state_notifications': true }); @@ -27235,153 +29800,17 @@ core_converse.plugins.add('converse-chat', { model: shared_converse.Message, comparator: 'time' }); - shared_converse.ChatBox = model; - /** - * Handler method for all incoming single-user chat "message" stanzas. - * @private - * @method _converse#handleMessageStanza - * @param { MessageAttributes } attrs - The message attributes - */ - - shared_converse.handleMessageStanza = async function (stanza) { - if (isServerMessage(stanza)) { - // Prosody sends headline messages with type `chat`, so we need to filter them out here. - const from = stanza.getAttribute('from'); - return headless_log.info("handleMessageStanza: Ignoring incoming server message from JID: ".concat(from)); - } - - const attrs = await parseMessage(stanza, shared_converse); - - if (chat_u.isErrorObject(attrs)) { - attrs.stanza && headless_log.error(attrs.stanza); - return headless_log.error(attrs.message); - } - - const has_body = !!chat_sizzle("body, encrypted[xmlns=\"".concat(chat_Strophe.NS.OMEMO, "\"]"), stanza).length; - const chatbox = await api.chats.get(attrs.contact_jid, { - 'nickname': attrs.nick - }, has_body); - await (chatbox === null || chatbox === void 0 ? void 0 : chatbox.queueMessage(attrs)); - /** - * @typedef { Object } MessageData - * An object containing the original message stanza, as well as the - * parsed attributes. - * @property { XMLElement } stanza - * @property { MessageAttributes } stanza - * @property { ChatBox } chatbox - */ - - const data = { - stanza, - attrs, - chatbox - }; - /** - * Triggered when a message stanza is been received and processed. - * @event _converse#message - * @type { object } - * @property { module:converse-chat~MessageData } data - */ - - api.trigger('message', data); - }; - - function registerMessageHandlers() { - shared_converse.connection.addHandler(stanza => { - if (chat_sizzle("message > result[xmlns=\"".concat(chat_Strophe.NS.MAM, "\"]"), stanza).pop()) { - // MAM messages are handled in converse-mam. - // We shouldn't get MAM messages here because - // they shouldn't have a `type` attribute. - headless_log.warn("Received a MAM message with type \"chat\"."); - return true; - } - - shared_converse.handleMessageStanza(stanza); - - return true; - }, null, 'message', 'chat'); - - shared_converse.connection.addHandler(stanza => { - // Message receipts are usually without the `type` attribute. See #1353 - if (stanza.getAttribute('type') !== null) { - // TODO: currently Strophe has no way to register a handler - // for stanzas without a `type` attribute. - // We could update it to accept null to mean no attribute, - // but that would be a backward-incompatible change - return true; // Gets handled above. - } - - shared_converse.handleMessageStanza(stanza); - - return true; - }, chat_Strophe.NS.RECEIPTS, 'message'); - - shared_converse.connection.addHandler(stanza => { - handleErrorMessage(stanza); - return true; - }, null, 'message', 'error'); - } - - function autoJoinChats() { - // Automatically join private chats, based on the - // "auto_join_private_chats" configuration setting. - api.settings.get('auto_join_private_chats').forEach(jid => { - if (shared_converse.chatboxes.where({ - 'jid': jid - }).length) { - return; - } - - if (typeof jid === 'string') { - api.chats.open(jid); - } else { - headless_log.error('Invalid jid criteria specified for "auto_join_private_chats"'); - } - }); - /** - * Triggered once any private chats have been automatically joined as - * specified by the `auto_join_private_chats` setting. - * See: https://conversejs.org/docs/html/configuration.html#auto-join-private-chats - * @event _converse#privateChatsAutoJoined - * @example _converse.api.listen.on('privateChatsAutoJoined', () => { ... }); - * @example _converse.api.waitUntil('privateChatsAutoJoined').then(() => { ... }); - */ - - api.trigger('privateChatsAutoJoined'); - } - /************************ BEGIN Route Handlers ************************/ - - - function openChat(jid) { - if (!chat_utils.isValidJID(jid)) { - return headless_log.warn("Invalid JID \"".concat(jid, "\" provided in URL fragment")); - } - - api.chats.open(jid); - } + Object.assign(shared_converse, { + ChatBox: model, + handleMessageStanza: handleMessageStanza + }); + Object.assign(api, chat_api); shared_converse.router.route('converse/chat?jid=:jid', openChat); - /************************ END Route Handlers ************************/ - - /************************ BEGIN Event Handlers ************************/ - api.listen.on('chatBoxesFetched', autoJoinChats); api.listen.on('presencesInitialized', registerMessageHandlers); - api.listen.on('clearSession', async () => { - if (shared_converse.shouldClearCache()) { - await Promise.all(shared_converse.chatboxes.map(c => c.messages && c.messages.clearStore({ - 'silent': true - }))); - - const filter = o => o.get('type') !== shared_converse.CONTROLBOX_TYPE; - - shared_converse.chatboxes.clearStore({ - 'silent': true - }, filter); - } - }); - /************************ END Event Handlers ************************/ + api.listen.on('clearSession', onClearSession); } }); @@ -27411,22 +29840,22 @@ const DiscoEntity = Model.extend({ initialize(attrs, options) { this.waitUntilFeaturesDiscovered = getOpenPromise(); this.dataforms = new Collection(); - let id = "converse.dataforms-".concat(this.get('jid')); + let id = `converse.dataforms-${this.get('jid')}`; this.dataforms.browserStorage = shared_converse.createStore(id, 'session'); this.features = new Collection(); - id = "converse.features-".concat(this.get('jid')); + id = `converse.features-${this.get('jid')}`; this.features.browserStorage = shared_converse.createStore(id, 'session'); this.listenTo(this.features, 'add', this.onFeatureAdded); this.fields = new Collection(); - id = "converse.fields-".concat(this.get('jid')); + id = `converse.fields-${this.get('jid')}`; this.fields.browserStorage = shared_converse.createStore(id, 'session'); this.listenTo(this.fields, 'add', this.onFieldAdded); this.identities = new Collection(); - id = "converse.identities-".concat(this.get('jid')); + id = `converse.identities-${this.get('jid')}`; this.identities.browserStorage = shared_converse.createStore(id, 'session'); this.fetchFeatures(options); this.items = new shared_converse.DiscoEntities(); - id = "converse.disco-items-".concat(this.get('jid')); + id = `converse.disco-items-${this.get('jid')}`; this.items.browserStorage = shared_converse.createStore(id, 'session'); this.items.fetch(); }, @@ -27519,7 +29948,7 @@ const DiscoEntity = Model.extend({ try { stanza = await api.disco.info(this.get('jid'), null); } catch (iq) { - iq === null ? headless_log.error("Timeout for disco#info query for ".concat(this.get('jid'))) : headless_log.error(iq); + iq === null ? headless_log.error(`Timeout for disco#info query for ${this.get('jid')}`) : headless_log.error(iq); this.waitUntilFeaturesDiscovered.resolve(this); return; } @@ -27528,7 +29957,7 @@ const DiscoEntity = Model.extend({ }, onDiscoItems(stanza) { - sizzle_default()("query[xmlns=\"".concat(entity_Strophe.NS.DISCO_ITEMS, "\"] item"), stanza).forEach(item => { + sizzle_default()(`query[xmlns="${entity_Strophe.NS.DISCO_ITEMS}"] item`, stanza).forEach(item => { if (item.getAttribute("node")) { // XXX: Ignore nodes for now. // See: https://xmpp.org/extensions/xep-0030.html#items-nodes @@ -27572,7 +30001,7 @@ const DiscoEntity = Model.extend({ 'name': identity.getAttribute('name') }); }); - sizzle_default()("x[type=\"result\"][xmlns=\"".concat(entity_Strophe.NS.XFORM, "\"]"), stanza).forEach(form => { + sizzle_default()(`x[type="result"][xmlns="${entity_Strophe.NS.XFORM}"]`, stanza).forEach(form => { const data = {}; sizzle_default()('field', form).forEach(field => { var _field$querySelector; @@ -27585,7 +30014,7 @@ const DiscoEntity = Model.extend({ this.dataforms.create(data); }); - if (stanza.querySelector("feature[var=\"".concat(entity_Strophe.NS.DISCO_ITEMS, "\"]"))) { + if (stanza.querySelector(`feature[var="${entity_Strophe.NS.DISCO_ITEMS}"]`)) { this.queryForItems(); } @@ -27639,14 +30068,14 @@ const DiscoEntities = Collection.extend({ const { - Strophe: utils_Strophe, + Strophe: disco_utils_Strophe, $iq: utils_$iq } = core_converse.env; function onDiscoInfoRequest(stanza) { const node = stanza.getElementsByTagName('query')[0].getAttribute('node'); const attrs = { - xmlns: utils_Strophe.NS.DISCO_INFO + xmlns: disco_utils_Strophe.NS.DISCO_INFO }; if (node) { @@ -27695,12 +30124,12 @@ function onDiscoInfoRequest(stanza) { function addClientFeatures() { // See https://xmpp.org/registrar/disco-categories.html api.disco.own.identities.add('client', 'web', 'Converse'); - api.disco.own.features.add(utils_Strophe.NS.CHATSTATES); - api.disco.own.features.add(utils_Strophe.NS.DISCO_INFO); - api.disco.own.features.add(utils_Strophe.NS.ROSTERX); // Limited support + api.disco.own.features.add(disco_utils_Strophe.NS.CHATSTATES); + api.disco.own.features.add(disco_utils_Strophe.NS.DISCO_INFO); + api.disco.own.features.add(disco_utils_Strophe.NS.ROSTERX); // Limited support if (api.settings.get("message_carbons")) { - api.disco.own.features.add(utils_Strophe.NS.CARBONS); + api.disco.own.features.add(disco_utils_Strophe.NS.CARBONS); } /** * Triggered in converse-disco once the core disco features of @@ -27717,10 +30146,10 @@ function addClientFeatures() { async function initializeDisco() { addClientFeatures(); - shared_converse.connection.addHandler(stanza => onDiscoInfoRequest(stanza), utils_Strophe.NS.DISCO_INFO, 'iq', 'get', null, null); + shared_converse.connection.addHandler(stanza => onDiscoInfoRequest(stanza), disco_utils_Strophe.NS.DISCO_INFO, 'iq', 'get', null, null); shared_converse.disco_entities = new shared_converse.DiscoEntities(); - const id = "converse.disco-entities-".concat(shared_converse.bare_jid); + const id = `converse.disco-entities-${shared_converse.bare_jid}`; shared_converse.disco_entities.browserStorage = shared_converse.createStore(id, 'session'); const collection = await shared_converse.disco_entities.fetchEntities(); @@ -27749,8 +30178,8 @@ function initStreamFeatures() { // Otherwise the features will be created once we've received them // from the server (see populateStreamFeatures). if (!shared_converse.stream_features) { - const bare_jid = utils_Strophe.getBareJidFromJid(shared_converse.jid); - const id = "converse.stream-features-".concat(bare_jid); + const bare_jid = disco_utils_Strophe.getBareJidFromJid(shared_converse.jid); + const id = `converse.stream-features-${bare_jid}`; api.promises.add('streamFeaturesAdded'); shared_converse.stream_features = new Collection(); shared_converse.stream_features.browserStorage = shared_converse.createStore(id, "session"); @@ -27770,7 +30199,7 @@ function populateStreamFeatures() { // Strophe.js sets the element on the // Strophe.Connection instance (_converse.connection). // - // Once this is done, we populate the _converse.stream_features collection + // Once this is we populate the _converse.stream_features collection // and trigger streamFeaturesAdded. initStreamFeatures(); Array.from(shared_converse.connection.features.childNodes).forEach(feature => { @@ -27781,6 +30210,18 @@ function populateStreamFeatures() { }); notifyStreamFeaturesAdded(); } +function utils_clearSession() { + var _converse$disco_entit, _converse$disco_entit2, _converse$disco_entit3, _converse$disco_entit4; + + (_converse$disco_entit = shared_converse.disco_entities) === null || _converse$disco_entit === void 0 ? void 0 : _converse$disco_entit.forEach(e => e.features.clearStore()); + (_converse$disco_entit2 = shared_converse.disco_entities) === null || _converse$disco_entit2 === void 0 ? void 0 : _converse$disco_entit2.forEach(e => e.identities.clearStore()); + (_converse$disco_entit3 = shared_converse.disco_entities) === null || _converse$disco_entit3 === void 0 ? void 0 : _converse$disco_entit3.forEach(e => e.dataforms.clearStore()); + (_converse$disco_entit4 = shared_converse.disco_entities) === null || _converse$disco_entit4 === void 0 ? void 0 : _converse$disco_entit4.forEach(e => e.fields.clearStore()); + + shared_converse.disco_entities.clearStore(); + + delete shared_converse.disco_entities; +} ;// CONCATENATED MODULE: ./src/headless/plugins/disco/api.js @@ -27821,7 +30262,7 @@ const { if (shared_converse.stream_features === undefined && !api.connection.connected()) { // Happens during tests when disco lookups happen asynchronously after teardown. - const msg = "Tried to get feature ".concat(name, " ").concat(xmlns, " but _converse.stream_features has been torn down"); + const msg = `Tried to get feature ${name} ${xmlns} but _converse.stream_features has been torn down`; headless_log.warn(msg); return; } @@ -28006,7 +30447,7 @@ const { if (shared_converse.disco_entities === undefined && !api.connection.connected()) { // Happens during tests when disco lookups happen asynchronously after teardown. - const msg = "Tried to look up entity ".concat(jid, " but _converse.disco_entities has been torn down"); + const msg = `Tried to look up entity ${jid} but _converse.disco_entities has been torn down`; headless_log.warn(msg); return; } @@ -28075,7 +30516,7 @@ const { if (shared_converse.disco_entities === undefined && !api.connection.connected()) { // Happens during tests when disco lookups happen asynchronously after teardown. - const msg = "Tried to get feature ".concat(feature, " for ").concat(jid, " but _converse.disco_entities has been torn down"); + const msg = `Tried to get feature ${feature} for ${jid} but _converse.disco_entities has been torn down`; headless_log.warn(msg); return; } @@ -28107,7 +30548,7 @@ const { * } */ async supports(feature, jid) { - const features = await api.disco.features.get(feature, jid); + const features = (await api.disco.features.get(feature, jid)) || []; return features.length > 0; }, @@ -28234,7 +30675,7 @@ const { if (e === undefined && !api.connection.connected()) { // Happens during tests when disco lookups happen asynchronously after teardown. - const msg = "Tried to look up category ".concat(category, " for ").concat(jid, " but _converse.disco_entities has been torn down"); + const msg = `Tried to look up category ${category} for ${jid} but _converse.disco_entities has been torn down`; headless_log.warn(msg); return; } @@ -28291,19 +30732,12 @@ core_converse.plugins.add('converse-disco', { await shared_converse.stream_features.clearStore(); delete shared_converse.stream_features; } - }); - api.listen.on('clearSession', () => { - if (shared_converse.shouldClearCache() && shared_converse.disco_entities) { - Array.from(shared_converse.disco_entities.models).forEach(e => e.features.clearStore()); - Array.from(shared_converse.disco_entities.models).forEach(e => e.identities.clearStore()); - Array.from(shared_converse.disco_entities.models).forEach(e => e.dataforms.clearStore()); - Array.from(shared_converse.disco_entities.models).forEach(e => e.fields.clearStore()); + }); // All disco entities stored in sessionStorage and are refetched + // upon login or reconnection and then stored with new ids, so to + // avoid sessionStorage filling up, we remove them. - shared_converse.disco_entities.clearStore(); - - delete shared_converse.disco_entities; - } - }); + api.listen.on('will-reconnect', utils_clearSession); + api.listen.on('clearSession', utils_clearSession); } }); @@ -28312,38 +30746,6 @@ const ASCII_REGEX = '(\\*\\\\0\\/\\*|\\*\\\\O\\/\\*|\\-___\\-|\\:\'\\-\\)|\'\\:\ const ASCII_REPLACE_REGEX = new RegExp("]*>.*?<\/object>|]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)" + ASCII_REGEX + "(?=\\s|$|[!,.?]))", "gi"); const CODEPOINTS_REGEX = /(?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5\udeeb\udeec\udef4-\udefa\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd71\udd73-\udd76\udd7a-\udda2\udda5-\uddaa\uddae-\uddb4\uddb7\uddba\uddbc-\uddca\uddd0\uddde-\uddff\ude70-\ude73\ude78-\ude7a\ude80-\ude82\ude90-\ude95]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g; ;// CONCATENATED MODULE: ./src/headless/plugins/emoji/index.js -function _templateObject3() { - const data = _taggedTemplateLiteral(["\"","]); - - _templateObject3 = function () { - return data; - }; - - return data; -} - -function _templateObject2() { - const data = _taggedTemplateLiteral(["\"","]); - - _templateObject2 = function () { - return data; - }; - - return data; -} - -function _templateObject() { - const data = _taggedTemplateLiteral(["", ""]); - - _templateObject = function () { - return data; - }; - - return data; -} - -function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /** * @module converse-emoji * @copyright 2020, the Converse.js contributors @@ -28572,18 +30974,26 @@ function getEmojiMarkup(data, options = { return emoji; } else if (api.settings.get('use_system_emojis')) { if (options.add_title_wrapper) { - return shortname ? T(_templateObject(), shortname, emoji) : emoji; + return shortname ? T`${emoji}` : emoji; } else { return emoji; } } else { const path = api.settings.get('emoji_image_path'); - return T(_templateObject2(), shortname, emoji, path, data.cp); + return T`${emoji}`; } } else if (options.unicode_only) { return shortname; } else { - return T(_templateObject3(), shortname, shortname, core_converse.emojis.by_sn[shortname].url); + return T`${shortname}`; } } function getShortnameReferences(text) { @@ -28899,7 +31309,7 @@ const ChatRoomMessageMixin = { const chatbox = this === null || this === void 0 ? void 0 : (_this$collection = this.collection) === null || _this$collection === void 0 ? void 0 : _this$collection.chatbox; if (!chatbox) { - return headless_log.error("Could not get collection.chatbox for message: ".concat(JSON.stringify(this.toJSON()))); + return headless_log.error(`Could not get collection.chatbox for message: ${JSON.stringify(this.toJSON())}`); } this.listenTo(chatbox.occupants, 'add', this.onOccupantAdded); @@ -28915,7 +31325,7 @@ const ChatRoomMessageMixin = { const chatbox = this === null || this === void 0 ? void 0 : (_this$collection2 = this.collection) === null || _this$collection2 === void 0 ? void 0 : _this$collection2.chatbox; if (!chatbox) { - return headless_log.error("Could not get collection.chatbox for message: ".concat(JSON.stringify(this.toJSON()))); + return headless_log.error(`Could not get collection.chatbox for message: ${JSON.stringify(this.toJSON())}`); } this.stopListening(chatbox.occupants, 'add', this.onOccupantAdded); @@ -28932,7 +31342,7 @@ const ChatRoomMessageMixin = { const chatbox = this === null || this === void 0 ? void 0 : (_this$collection3 = this.collection) === null || _this$collection3 === void 0 ? void 0 : _this$collection3.chatbox; if (!chatbox) { - return headless_log.error("Could not get collection.chatbox for message: ".concat(JSON.stringify(this.toJSON()))); + return headless_log.error(`Could not get collection.chatbox for message: ${JSON.stringify(this.toJSON())}`); } const nick = Strophe.getResourceFromJid(this.get('from')); @@ -28945,7 +31355,7 @@ const ChatRoomMessageMixin = { nick, 'type': 'unavailable' }); - const jid = "".concat(chatbox.get('jid'), "/").concat(nick); + const jid = `${chatbox.get('jid')}/${nick}`; api.user.presence.send('probe', jid); } @@ -28997,7 +31407,7 @@ const reduceReferences = ([text, refs], ref, index) => { begin = begin - index; end = end - index - 1; // -1 to compensate for the removed @ - updated_text = "".concat(updated_text.slice(0, begin)).concat(value).concat(updated_text.slice(end + 1)); + updated_text = `${updated_text.slice(0, begin)}${value}${updated_text.slice(end + 1)}`; return [updated_text, [...refs, { ...ref, begin, end @@ -29040,7 +31450,10 @@ utils_core.webForm2xForm = function (field) { value = field.value; } - return utils_core.toStanza("\n \n ").concat(value.constructor === Array ? value.map(v => "".concat(v, "")) : "".concat(value, ""), "\n ")); + return utils_core.toStanza(` + + ${value.constructor === Array ? value.map(v => `${v}`) : `${value}`} + `); }; /* harmony default export */ const utils_form = (utils_core); @@ -29116,14 +31529,14 @@ const { */ function getModerationAttributes(stanza) { - const fastening = muc_parsers_sizzle("apply-to[xmlns=\"".concat(muc_parsers_Strophe.NS.FASTEN, "\"]"), stanza).pop(); + const fastening = muc_parsers_sizzle(`apply-to[xmlns="${muc_parsers_Strophe.NS.FASTEN}"]`, stanza).pop(); if (fastening) { const applies_to_id = fastening.getAttribute('id'); - const moderated = muc_parsers_sizzle("moderated[xmlns=\"".concat(muc_parsers_Strophe.NS.MODERATE, "\"]"), fastening).pop(); + const moderated = muc_parsers_sizzle(`moderated[xmlns="${muc_parsers_Strophe.NS.MODERATE}"]`, fastening).pop(); if (moderated) { - const retracted = muc_parsers_sizzle("retract[xmlns=\"".concat(muc_parsers_Strophe.NS.RETRACT, "\"]"), moderated).pop(); + const retracted = muc_parsers_sizzle(`retract[xmlns="${muc_parsers_Strophe.NS.RETRACT}"]`, moderated).pop(); if (retracted) { var _moderated$querySelec; @@ -29138,10 +31551,10 @@ function getModerationAttributes(stanza) { } } } else { - const tombstone = muc_parsers_sizzle("> moderated[xmlns=\"".concat(muc_parsers_Strophe.NS.MODERATE, "\"]"), stanza).pop(); + const tombstone = muc_parsers_sizzle(`> moderated[xmlns="${muc_parsers_Strophe.NS.MODERATE}"]`, stanza).pop(); if (tombstone) { - const retracted = muc_parsers_sizzle("retracted[xmlns=\"".concat(muc_parsers_Strophe.NS.RETRACT, "\"]"), tombstone).pop(); + const retracted = muc_parsers_sizzle(`retracted[xmlns="${muc_parsers_Strophe.NS.RETRACT}"]`, tombstone).pop(); if (retracted) { var _tombstone$querySelec; @@ -29179,15 +31592,15 @@ async function parseMUCMessage(stanza, chatbox, _converse) { return err; } - const selector = "[xmlns=\"".concat(parsers_NS.MAM, "\"] > forwarded[xmlns=\"").concat(parsers_NS.FORWARD, "\"] > message"); + const selector = `[xmlns="${parsers_NS.MAM}"] > forwarded[xmlns="${parsers_NS.FORWARD}"] > message`; const original_stanza = stanza; stanza = muc_parsers_sizzle(selector, stanza).pop() || stanza; - if (muc_parsers_sizzle("message > forwarded[xmlns=\"".concat(muc_parsers_Strophe.NS.FORWARD, "\"]"), stanza).length) { - return new StanzaParseError("Invalid Stanza: Forged MAM groupchat message from ".concat(stanza.getAttribute('from')), stanza); + if (muc_parsers_sizzle(`message > forwarded[xmlns="${muc_parsers_Strophe.NS.FORWARD}"]`, stanza).length) { + return new StanzaParseError(`Invalid Stanza: Forged MAM groupchat message from ${stanza.getAttribute('from')}`, stanza); } - const delay = muc_parsers_sizzle("delay[xmlns=\"".concat(muc_parsers_Strophe.NS.DELAY, "\"]"), original_stanza).pop(); + const delay = muc_parsers_sizzle(`delay[xmlns="${muc_parsers_Strophe.NS.DELAY}"]`, original_stanza).pop(); const from = stanza.getAttribute('from'); const nick = muc_parsers_Strophe.unescapeNode(muc_parsers_Strophe.getResourceFromJid(from)); const marker = getChatMarker(stanza); @@ -29260,9 +31673,9 @@ async function parseMUCMessage(stanza, chatbox, _converse) { 'is_carbon': isCarbon(original_stanza), 'is_delayed': !!delay, 'is_headline': isHeadline(stanza), - 'is_markable': !!muc_parsers_sizzle("markable[xmlns=\"".concat(muc_parsers_Strophe.NS.MARKERS, "\"]"), stanza).length, + 'is_markable': !!muc_parsers_sizzle(`markable[xmlns="${muc_parsers_Strophe.NS.MARKERS}"]`, stanza).length, 'is_marker': !!marker, - 'is_unstyled': !!muc_parsers_sizzle("unstyled[xmlns=\"".concat(muc_parsers_Strophe.NS.STYLING, "\"]"), stanza).length, + 'is_unstyled': !!muc_parsers_sizzle(`unstyled[xmlns="${muc_parsers_Strophe.NS.STYLING}"]`, stanza).length, 'marker_id': marker && marker.getAttribute('id'), 'msgid': stanza.getAttribute('id') || original_stanza.getAttribute('id'), 'receipt_id': getReceiptId(stanza), @@ -29284,21 +31697,25 @@ async function parseMUCMessage(stanza, chatbox, _converse) { }, attrs); if (attrs.is_archived && original_stanza.getAttribute('from') !== attrs.from_muc) { - return new StanzaParseError("Invalid Stanza: Forged MAM message from ".concat(original_stanza.getAttribute('from')), stanza); + return new StanzaParseError(`Invalid Stanza: Forged MAM message from ${original_stanza.getAttribute('from')}`, stanza); } else if (attrs.is_archived && original_stanza.getAttribute('from') !== chatbox.get('jid')) { - return new StanzaParseError("Invalid Stanza: Forged MAM groupchat message from ".concat(stanza.getAttribute('from')), stanza); + return new StanzaParseError(`Invalid Stanza: Forged MAM groupchat message from ${stanza.getAttribute('from')}`, stanza); } else if (attrs.is_carbon) { return new StanzaParseError('Invalid Stanza: MUC messages SHOULD NOT be XEP-0280 carbon copied', stanza); } // We prefer to use one of the XEP-0359 unique and stable stanza IDs as the Model id, to avoid duplicates. - attrs['id'] = attrs['origin_id'] || attrs["stanza_id ".concat(attrs.from_muc || attrs.from)] || parsers_u.getUniqueId(); + attrs['id'] = attrs['origin_id'] || attrs[`stanza_id ${attrs.from_muc || attrs.from}`] || parsers_u.getUniqueId(); /** * *Hook* which allows plugins to add additional parsing * @event _converse#parseMUCMessage */ - return api.hook('parseMUCMessage', stanza, attrs); + attrs = await api.hook('parseMUCMessage', stanza, attrs); // We call this after the hook, to allow plugins to decrypt encrypted + // messages, since we need to parse the message text to determine whether + // there are media urls. + + return Object.assign(attrs, getMediaURLs(attrs.is_encrypted ? attrs.plaintext : attrs.body)); } /** * Given an IQ stanza with a member list, create an array of objects containing @@ -29309,7 +31726,7 @@ async function parseMUCMessage(stanza, chatbox, _converse) { */ function parseMemberListIQ(iq) { - return muc_parsers_sizzle("query[xmlns=\"".concat(muc_parsers_Strophe.NS.MUC_ADMIN, "\"] item"), iq).map(item => { + return muc_parsers_sizzle(`query[xmlns="${muc_parsers_Strophe.NS.MUC_ADMIN}"] item`, iq).map(item => { /** * @typedef {Object} MemberListItem * Either the JID or the nickname (or both) will be available. @@ -29406,7 +31823,7 @@ function parseMUCPresence(stanza) { const { Strophe: affiliations_utils_Strophe, $iq: affiliations_utils_$iq, - u: utils_u + u: affiliations_utils_u } = core_converse.env; /** * Sends an IQ stanza to the server, asking it for the relevant affiliation list . @@ -29430,15 +31847,15 @@ async function getAffiliationList(affiliation, muc_jid) { const result = await api.sendIQ(iq, null, false); if (result === null) { - const err_msg = "Error: timeout while fetching ".concat(affiliation, " list for MUC ").concat(muc_jid); + const err_msg = `Error: timeout while fetching ${affiliation} list for MUC ${muc_jid}`; const err = new Error(err_msg); headless_log.warn(err_msg); headless_log.warn(result); return err; } - if (utils_u.isErrorStanza(result)) { - const err_msg = "Error: not allowed to fetch ".concat(affiliation, " list for MUC ").concat(muc_jid); + if (affiliations_utils_u.isErrorStanza(result)) { + const err_msg = `Error: not allowed to fetch ${affiliation} list for MUC ${muc_jid}`; const err = new Error(err_msg); headless_log.warn(err_msg); headless_log.warn(result); @@ -29637,7 +32054,7 @@ const ChatRoomMixin = { async initialize() { this.initialized = getOpenPromise(); this.debouncedRejoin = lodash_es_debounce(this.rejoin, 250); - this.set('box_id', "box-".concat(this.get('jid'))); + this.set('box_id', `box-${this.get('jid')}`); this.initNotifications(); this.initMessages(); this.initUI(); @@ -29647,8 +32064,8 @@ const ChatRoomMixin = { this.registerHandlers(); this.on('change:chat_state', this.sendChatState, this); this.on('change:hidden', this.onHiddenChange, this); - this.on('change:scrolled', () => !this.get('scrolled') && this.clearUnreadMsgCounter()); this.on('destroy', this.removeHandlers, this); + this.ui.on('change:scrolled', this.onScrolledChanged, this); await this.restoreSession(); this.session.on('change:connection_status', this.onConnectionStatusChanged, this); this.listenTo(this.occupants, 'add', this.onOccupantAdded); @@ -29692,7 +32109,8 @@ const ChatRoomMixin = { await this.fetchMessages().catch(e => headless_log.error(e)); return true; } else { - this.clearCache(); + this.session.save('connection_status', core_converse.ROOMSTATUS.DISCONNECTED); + this.clearOccupantsCache(); return false; } }, @@ -29754,14 +32172,13 @@ const ChatRoomMixin = { * @method _converse.ChatRoom#rejoin */ rejoin() { + this.session.save('connection_status', core_converse.ROOMSTATUS.DISCONNECTED); this.registerHandlers(); - this.clearCache(); + this.clearOccupantsCache(); return this.join(); }, - clearCache() { - this.session.save('connection_status', core_converse.ROOMSTATUS.DISCONNECTED); - + clearOccupantsCache() { if (this.occupants.length) { // Remove non-members when reconnecting this.occupants.filter(o => !o.isMember()).forEach(o => o.destroy()); @@ -29783,12 +32200,12 @@ const ChatRoomMixin = { return; } - if ((msg === null || msg === void 0 ? void 0 : msg.get('is_markable')) || force) { - const key = "stanza_id ".concat(this.get('jid')); + if (msg !== null && msg !== void 0 && msg.get('is_markable') || force) { + const key = `stanza_id ${this.get('jid')}`; const id = msg.get(key); if (!id) { - headless_log.error("Can't send marker for message without stanza ID: ".concat(key)); + headless_log.error(`Can't send marker for message without stanza ID: ${key}`); return; } @@ -29911,7 +32328,7 @@ const ChatRoomMixin = { }, restoreSession() { - const id = "muc.session-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); + const id = `muc.session-${shared_converse.bare_jid}-${this.get('jid')}`; this.session = new MUCSession({ id }); @@ -29923,13 +32340,13 @@ const ChatRoomMixin = { }, initDiscoModels() { - let id = "converse.muc-features-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); + let id = `converse.muc-features-${shared_converse.bare_jid}-${this.get('jid')}`; this.features = new Model(Object.assign({ id }, lodash_es_zipObject(core_converse.ROOM_FEATURES, core_converse.ROOM_FEATURES.map(() => false)))); this.features.browserStorage = shared_converse.createStore(id, 'session'); this.features.listenTo(shared_converse, 'beforeLogout', () => this.features.browserStorage.flush()); - id = "converse.muc-config-{_converse.bare_jid}-".concat(this.get('jid')); + id = `converse.muc-config-{_converse.bare_jid}-${this.get('jid')}`; this.config = new Model(); this.config.browserStorage = shared_converse.createStore(id, 'session'); this.config.listenTo(shared_converse, 'beforeLogout', () => this.config.browserStorage.flush()); @@ -29937,7 +32354,7 @@ const ChatRoomMixin = { initOccupants() { this.occupants = new shared_converse.ChatRoomOccupants(); - const id = "converse.occupants-".concat(shared_converse.bare_jid).concat(this.get('jid')); + const id = `converse.occupants-${shared_converse.bare_jid}${this.get('jid')}`; this.occupants.browserStorage = shared_converse.createStore(id, 'session'); this.occupants.chatroom = this; this.occupants.listenTo(shared_converse, 'beforeLogout', () => this.occupants.browserStorage.flush()); @@ -29956,7 +32373,7 @@ const ChatRoomMixin = { }, handleAffiliationChangedMessage(stanza) { - const item = sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"] item"), stanza).pop(); + const item = sizzle_default()(`x[xmlns="${Strophe.NS.MUC_USER}"] item`, stanza).pop(); if (item) { const from = stanza.getAttribute('from'); @@ -30008,7 +32425,9 @@ const ChatRoomMixin = { if (attrs.msgid === message.get('retraction_id')) { // The error message refers to a retraction + new_attrs.retracted = undefined; new_attrs.retraction_id = undefined; + new_attrs.retracted_id = undefined; if (!attrs.error) { if (attrs.error_condition === 'forbidden') { @@ -30049,7 +32468,7 @@ const ChatRoomMixin = { return; } - const rai = sizzle_default()("rai[xmlns=\"".concat(Strophe.NS.RAI, "\"]"), stanza).pop(); + const rai = sizzle_default()(`rai[xmlns="${Strophe.NS.RAI}"]`, stanza).pop(); const active_mucs = Array.from((rai === null || rai === void 0 ? void 0 : rai.querySelectorAll('activity')) || []).map(m => m.textContent); if (active_mucs.includes(this.get('jid'))) { @@ -30073,7 +32492,7 @@ const ChatRoomMixin = { return; } - const msgs = sizzle_default()("mentions[xmlns=\"".concat(Strophe.NS.MENTIONS, "\"] forwarded[xmlns=\"").concat(Strophe.NS.FORWARD, "\"] message[type=\"groupchat\"]"), stanza); + const msgs = sizzle_default()(`mentions[xmlns="${Strophe.NS.MENTIONS}"] forwarded[xmlns="${Strophe.NS.FORWARD}"] message[type="groupchat"]`, stanza); const muc_jid = this.get('jid'); const mentions = msgs.filter(m => Strophe.getBareJidFromJid(m.getAttribute('from')) === muc_jid); @@ -30108,7 +32527,7 @@ const ChatRoomMixin = { // MAM messages are handled in converse-mam. // We shouldn't get MAM messages here because // they shouldn't have a `type` attribute. - return headless_log.warn("Received a MAM message with type \"groupchat\""); + return headless_log.warn(`Received a MAM message with type "groupchat"`); } this.createInfoMessages(stanza); @@ -30214,8 +32633,7 @@ const ChatRoomMixin = { * @method _converse.ChatRoom#sendTimedMessage * @param { _converse.Message|XMLElement } message * @returns { Promise|Promise<_converse.TimeoutError> } Returns a promise - * which resolves with the reflected message stanza or rejects - * with an error stanza or with a {@link _converse.TimeoutError}. + * which resolves with the reflected message stanza or with an error stanza or {@link _converse.TimeoutError}. */ sendTimedMessage(el) { if (typeof el.tree === 'function') { @@ -30235,18 +32653,14 @@ const ChatRoomMixin = { const timeoutHandler = shared_converse.connection.addTimedHandler(shared_converse.STANZA_TIMEOUT, () => { shared_converse.connection.deleteHandler(handler); - promise.reject(new shared_converse.TimeoutError('Timeout Error: No response from server')); + const err = new shared_converse.TimeoutError('Timeout Error: No response from server'); + promise.resolve(err); return false; }); const handler = shared_converse.connection.addHandler(stanza => { timeoutHandler && shared_converse.connection.deleteTimedHandler(timeoutHandler); - - if (stanza.getAttribute('type') === 'groupchat') { - promise.resolve(stanza); - } else { - promise.reject(stanza); - } + promise.resolve(stanza); }, null, 'message', ['error', 'groupchat'], id); api.send(el); @@ -30287,18 +32701,20 @@ const ChatRoomMixin = { 'retraction_id': stanza.nodeTree.getAttribute('id'), 'editable': false }); + const result = await this.sendTimedMessage(stanza); - try { - await this.sendTimedMessage(stanza); - } catch (e) { + if (utils_form.isErrorStanza(result)) { + headless_log.error(result); + } else if (result instanceof shared_converse.TimeoutError) { + headless_log.error(result); message.save({ editable, 'error_type': 'timeout', 'error': __('A timeout happened while while trying to retract your message.'), 'retracted': undefined, - 'retracted_id': undefined + 'retracted_id': undefined, + 'retraction_id': undefined }); - throw e; } }, @@ -30351,7 +32767,7 @@ const ChatRoomMixin = { 'to': this.get('jid'), 'type': 'set' }).c('apply-to', { - 'id': message.get("stanza_id ".concat(this.get('jid'))), + 'id': message.get(`stanza_id ${this.get('jid')}`), 'xmlns': Strophe.NS.FASTEN }).c('moderate', { xmlns: Strophe.NS.MODERATE @@ -30470,7 +32886,7 @@ const ChatRoomMixin = { getAllKnownNicknamesRegex() { const longNickString = this.getAllKnownNicknames().map(n => parse_helpers.escapeRegexString(n)).join('|'); - return RegExp("(?:\\p{P}|\\p{Z}|^)@(".concat(longNickString, ")(?![\\w@-])"), 'uig'); + return RegExp(`(?:\\p{P}|\\p{Z}|^)@(${longNickString})(?![\\w@-])`, 'uig'); }, getOccupantByJID(jid) { @@ -30502,8 +32918,8 @@ const ChatRoomMixin = { const uriFromNickname = nickname => { const jid = this.get('jid'); const occupant = this.getOccupant(nickname) || this.getOccupant(jid); - const uri = this.features.get('nonanonymous') && (occupant === null || occupant === void 0 ? void 0 : occupant.get('jid')) || "".concat(jid, "/").concat(nickname); - return encodeURI("xmpp:".concat(uri)); + const uri = this.features.get('nonanonymous') && (occupant === null || occupant === void 0 ? void 0 : occupant.get('jid')) || `${jid}/${nickname}`; + return encodeURI(`xmpp:${uri}`); }; const matchToReference = match => { @@ -30535,27 +32951,32 @@ const ChatRoomMixin = { return [updated_message, updated_references]; }, - getOutgoingMessageAttributes(original_message, spoiler_hint) { + getOutgoingMessageAttributes(attrs) { const is_spoiler = this.get('composing_spoiler'); - const [text, references] = this.parseTextForReferences(original_message); + let text = '', + references; + + if (attrs !== null && attrs !== void 0 && attrs.body) { + [text, references] = this.parseTextForReferences(attrs.body); + } + const origin_id = utils_form.getUniqueId(); const body = text ? utils_form.httpToGeoUri(utils_form.shortnamesToUnicode(text), shared_converse) : undefined; - return { + return Object.assign({}, attrs, { body, is_spoiler, origin_id, references, 'id': origin_id, 'msgid': origin_id, - 'from': "".concat(this.get('jid'), "/").concat(this.get('nick')), + 'from': `${this.get('jid')}/${this.get('nick')}`, 'fullname': this.get('nick'), 'is_only_emojis': text ? utils_form.isOnlyEmojis(text) : false, 'message': body, 'nick': this.get('nick'), 'sender': 'me', - 'spoiler_hint': is_spoiler ? spoiler_hint : undefined, 'type': 'groupchat' - }; + }, getMediaURLs(text)); }, /** @@ -30568,7 +32989,7 @@ const ChatRoomMixin = { getRoomJIDAndNick() { const nick = this.get('nick'); const jid = Strophe.getBareJidFromJid(this.get('jid')); - return jid + (nick !== null ? "/".concat(nick) : ''); + return jid + (nick !== null ? `/${nick}` : ''); }, /** @@ -31216,8 +33637,16 @@ const ChatRoomMixin = { return identity_el ? identity_el.getAttribute('name') : null; }, + /** + * Send an IQ stanza to the MUC to register this user's nickname. + * This sets the user's affiliation to 'member' (if they weren't affiliated + * before) and reserves the nickname for this user, thereby preventing other + * users from using it in this MUC. + * See https://xmpp.org/extensions/xep-0045.html#register + * @private + * @method _converse.ChatRoom#registerNickname + */ async registerNickname() { - // See https://xmpp.org/extensions/xep-0045.html#register const { __ } = shared_converse; @@ -31233,9 +33662,9 @@ const ChatRoomMixin = { 'xmlns': Strophe.NS.MUC_REGISTER })); } catch (e) { - if (sizzle_default()("not-allowed[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), e).length) { + if (sizzle_default()(`not-allowed[xmlns="${Strophe.NS.STANZAS}"]`, e).length) { err_msg = __("You're not allowed to register yourself in this groupchat."); - } else if (sizzle_default()("registration-required[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), e).length) { + } else if (sizzle_default()(`registration-required[xmlns="${Strophe.NS.STANZAS}"]`, e).length) { err_msg = __("You're not allowed to register in this groupchat because it's members-only."); } @@ -31246,7 +33675,7 @@ const ChatRoomMixin = { const required_fields = sizzle_default()('field required', iq).map(f => f.parentElement); if (required_fields.length > 1 && required_fields[0].getAttribute('var') !== 'muc#register_roomnick') { - return headless_log.error("Can't register the user register in the groupchat ".concat(jid, " due to the required fields")); + return headless_log.error(`Can't register the user register in the groupchat ${jid} due to the required fields`); } try { @@ -31264,9 +33693,9 @@ const ChatRoomMixin = { 'var': 'muc#register_roomnick' }).c('value').t(nick)); } catch (e) { - if (sizzle_default()("service-unavailable[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), e).length) { + if (sizzle_default()(`service-unavailable[xmlns="${Strophe.NS.STANZAS}"]`, e).length) { err_msg = __("Can't register your nickname in this groupchat, it doesn't support registration."); - } else if (sizzle_default()("bad-request[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), e).length) { + } else if (sizzle_default()(`bad-request[xmlns="${Strophe.NS.STANZAS}"]`, e).length) { err_msg = __("Can't register your nickname in this groupchat, invalid data form supplied."); } @@ -31276,31 +33705,22 @@ const ChatRoomMixin = { } }, - async unregisterNickname() { - const jid = this.get('jid'); - let iq; - - try { - iq = await api.sendIQ($iq({ - 'to': jid, - 'type': 'set' - }).c('query', { - 'xmlns': Strophe.NS.MUC_REGISTER - })); - } catch (e) { - headless_log.error(e); - return e; - } - - if (sizzle_default()("query[xmlns=\"".concat(Strophe.NS.MUC_REGISTER, "\"] registered"), iq).pop()) { - const iq = $iq({ - 'to': jid, - 'type': 'set' - }).c('query', { - 'xmlns': Strophe.NS.MUC_REGISTER - }).c('remove'); - return api.sendIQ(iq).catch(e => headless_log.error(e)); - } + /** + * Send an IQ stanza to the MUC to unregister this user's nickname. + * If the user had a 'member' affiliation, it'll be removed and their + * nickname will no longer be reserved and can instead be used (and + * registered) by other users. + * @private + * @method _converse.ChatRoom#unregisterNickname + */ + unregisterNickname() { + const iq = $iq({ + 'to': this.get('jid'), + 'type': 'set' + }).c('query', { + 'xmlns': Strophe.NS.MUC_REGISTER + }).c('remove'); + return api.sendIQ(iq).catch(e => headless_log.error(e)); }, /** @@ -31530,7 +33950,7 @@ const ChatRoomMixin = { async isJoined() { const jid = this.get('jid'); const ping = $iq({ - 'to': "".concat(jid, "/").concat(this.get('nick')), + 'to': `${jid}/${this.get('nick')}`, 'type': 'get' }).c('ping', { 'xmlns': Strophe.NS.PING @@ -31540,9 +33960,9 @@ const ChatRoomMixin = { await api.sendIQ(ping); } catch (e) { if (e === null) { - headless_log.warn("isJoined: Timeout error while checking whether we're joined to MUC: ".concat(jid)); + headless_log.warn(`isJoined: Timeout error while checking whether we're joined to MUC: ${jid}`); } else { - headless_log.warn("isJoined: Apparently we're no longer connected to MUC: ".concat(jid)); + headless_log.warn(`isJoined: Apparently we're no longer connected to MUC: ${jid}`); } return false; @@ -31598,7 +34018,7 @@ const ChatRoomMixin = { if (this.messages.last().get('time') > attrs.time) { // Search from latest backwards const messages = Array.from(this.messages.models); - const stanza_id = attrs["stanza_id ".concat(this.get('jid'))]; + const stanza_id = attrs[`stanza_id ${this.get('jid')}`]; if (!stanza_id) { return null; @@ -31625,7 +34045,7 @@ const ChatRoomMixin = { if (attrs.moderated === 'retracted') { const query = {}; - const key = "stanza_id ".concat(this.get('jid')); + const key = `stanza_id ${this.get('jid')}`; query[key] = attrs.moderated_id; const message = this.messages.findWhere(query); @@ -31667,7 +34087,7 @@ const ChatRoomMixin = { return states.reduce((result, state) => { const existing_actors = actors_per_state[state]; - if (!(existing_actors === null || existing_actors === void 0 ? void 0 : existing_actors.length)) { + if (!(existing_actors !== null && existing_actors !== void 0 && existing_actors.length)) { return result; } @@ -31679,52 +34099,52 @@ const ChatRoomMixin = { if (actors.length === 1) { if (state === 'composing') { - return "".concat(result).concat(__('%1$s is typing', actors[0]), "\n"); + return `${result}${__('%1$s is typing', actors[0])}\n`; } else if (state === 'paused') { - return "".concat(result).concat(__('%1$s has stopped typing', actors[0]), "\n"); + return `${result}${__('%1$s has stopped typing', actors[0])}\n`; } else if (state === shared_converse.GONE) { - return "".concat(result).concat(__('%1$s has gone away', actors[0]), "\n"); + return `${result}${__('%1$s has gone away', actors[0])}\n`; } else if (state === 'entered') { - return "".concat(result).concat(__('%1$s has entered the groupchat', actors[0]), "\n"); + return `${result}${__('%1$s has entered the groupchat', actors[0])}\n`; } else if (state === 'exited') { - return "".concat(result).concat(__('%1$s has left the groupchat', actors[0]), "\n"); + return `${result}${__('%1$s has left the groupchat', actors[0])}\n`; } else if (state === 'op') { - return "".concat(result).concat(__('%1$s is now a moderator', actors[0]), "\n"); + return `${result}${__('%1$s is now a moderator', actors[0])}\n`; } else if (state === 'deop') { - return "".concat(result).concat(__('%1$s is no longer a moderator', actors[0]), "\n"); + return `${result}${__('%1$s is no longer a moderator', actors[0])}\n`; } else if (state === 'voice') { - return "".concat(result).concat(__('%1$s has been given a voice', actors[0]), "\n"); + return `${result}${__('%1$s has been given a voice', actors[0])}\n`; } else if (state === 'mute') { - return "".concat(result).concat(__('%1$s has been muted', actors[0]), "\n"); + return `${result}${__('%1$s has been muted', actors[0])}\n`; } } else if (actors.length > 1) { let actors_str; if (actors.length > 3) { - actors_str = "".concat(Array.from(actors).slice(0, 2).join(', '), " and others"); + actors_str = `${Array.from(actors).slice(0, 2).join(', ')} and others`; } else { const last_actor = actors.pop(); actors_str = __('%1$s and %2$s', actors.join(', '), last_actor); } if (state === 'composing') { - return "".concat(result).concat(__('%1$s are typing', actors_str), "\n"); + return `${result}${__('%1$s are typing', actors_str)}\n`; } else if (state === 'paused') { - return "".concat(result).concat(__('%1$s have stopped typing', actors_str), "\n"); + return `${result}${__('%1$s have stopped typing', actors_str)}\n`; } else if (state === shared_converse.GONE) { - return "".concat(result).concat(__('%1$s have gone away', actors_str), "\n"); + return `${result}${__('%1$s have gone away', actors_str)}\n`; } else if (state === 'entered') { - return "".concat(result).concat(__('%1$s have entered the groupchat', actors_str), "\n"); + return `${result}${__('%1$s have entered the groupchat', actors_str)}\n`; } else if (state === 'exited') { - return "".concat(result).concat(__('%1$s have left the groupchat', actors_str), "\n"); + return `${result}${__('%1$s have left the groupchat', actors_str)}\n`; } else if (state === 'op') { - return "".concat(result).concat(__('%1$s are now moderators', actors[0]), "\n"); + return `${result}${__('%1$s are now moderators', actors[0])}\n`; } else if (state === 'deop') { - return "".concat(result).concat(__('%1$s are no longer moderators', actors[0]), "\n"); + return `${result}${__('%1$s are no longer moderators', actors[0])}\n`; } else if (state === 'voice') { - return "".concat(result).concat(__('%1$s have been given voices', actors[0]), "\n"); + return `${result}${__('%1$s have been given voices', actors[0])}\n`; } else if (state === 'mute') { - return "".concat(result).concat(__('%1$s have been muted', actors[0]), "\n"); + return `${result}${__('%1$s have been muted', actors[0])}\n`; } } @@ -31888,7 +34308,7 @@ const ChatRoomMixin = { var _item$querySelector; const is_self = stanza.querySelector("status[code='110']") !== null; - const x = sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"]"), stanza).pop(); + const x = sizzle_default()(`x[xmlns="${Strophe.NS.MUC_USER}"]`, stanza).pop(); if (!x) { return; @@ -32034,7 +34454,7 @@ const ChatRoomMixin = { var _item$querySelector2, _item$querySelector3; const nick = Strophe.getResourceFromJid(stanza.getAttribute('from')); - const item = sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"] item"), stanza).pop(); + const item = sizzle_default()(`x[xmlns="${Strophe.NS.MUC_USER}"] item`, stanza).pop(); data.actor = item ? (_item$querySelector2 = item.querySelector('actor')) === null || _item$querySelector2 === void 0 ? void 0 : _item$querySelector2.getAttribute('nick') : undefined; data.reason = item ? (_item$querySelector3 = item.querySelector('reason')) === null || _item$querySelector3 === void 0 ? void 0 : _item$querySelector3.textContent : undefined; data.message = this.getActionInfoMessage(code, nick, data.actor); @@ -32045,7 +34465,7 @@ const ChatRoomMixin = { if (is_self && code === '210') { nick = Strophe.getResourceFromJid(stanza.getAttribute('from')); } else if (is_self && code === '303') { - nick = sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"] item"), stanza).pop().getAttribute('nick'); + nick = sizzle_default()(`x[xmlns="${Strophe.NS.MUC_USER}"] item`, stanza).pop().getAttribute('nick'); } this.save('nick', nick); @@ -32071,7 +34491,7 @@ const ChatRoomMixin = { * @param { XMLElement } stanza */ createInfoMessages(stanza) { - const codes = sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"] status"), stanza).map(s => s.getAttribute('code')); + const codes = sizzle_default()(`x[xmlns="${Strophe.NS.MUC_USER}"] status`, stanza).map(s => s.getAttribute('code')); if (codes.includes('333') && codes.includes('307')) { // See: https://github.com/xsf/xeps/pull/969/files#diff-ac5113766e59219806793c1f7d967f1bR4966 @@ -32136,12 +34556,12 @@ const ChatRoomMixin = { const __ = shared_converse.__; const error = stanza.querySelector('error'); const error_type = error.getAttribute('type'); - const reason = (_sizzle$pop = sizzle_default()("text[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.textContent; + const reason = (_sizzle$pop = sizzle_default()(`text[xmlns="${Strophe.NS.STANZAS}"]`, error).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.textContent; if (error_type === 'modify') { this.handleModifyError(stanza); } else if (error_type === 'auth') { - if (sizzle_default()("not-authorized[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).length) { + if (sizzle_default()(`not-authorized[xmlns="${Strophe.NS.STANZAS}"]`, error).length) { this.save({ 'password_validation_message': reason || __('Password incorrect') }); @@ -32166,10 +34586,10 @@ const ChatRoomMixin = { const message = __("Your nickname doesn't conform to this groupchat's policies."); this.setDisconnectionState(message, reason); - } else if (sizzle_default()("gone[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).length) { + } else if (sizzle_default()(`gone[xmlns="${Strophe.NS.STANZAS}"]`, error).length) { var _sizzle$pop2; - const moved_jid = (_sizzle$pop2 = sizzle_default()("gone[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).pop()) === null || _sizzle$pop2 === void 0 ? void 0 : _sizzle$pop2.textContent.replace(/^xmpp:/, '').replace(/\?join$/, ''); + const moved_jid = (_sizzle$pop2 = sizzle_default()(`gone[xmlns="${Strophe.NS.STANZAS}"]`, error).pop()) === null || _sizzle$pop2 === void 0 ? void 0 : _sizzle$pop2.textContent.replace(/^xmpp:/, '').replace(/\?join$/, ''); this.save({ moved_jid, 'destroyed_reason': reason @@ -32206,7 +34626,7 @@ const ChatRoomMixin = { if (stanza.getAttribute('type') === 'error') { const error = stanza.querySelector('error'); - if ((error === null || error === void 0 ? void 0 : error.getAttribute('type')) === 'wait' && (error === null || error === void 0 ? void 0 : error.querySelector('resource-constraint'))) { + if ((error === null || error === void 0 ? void 0 : error.getAttribute('type')) === 'wait' && error !== null && error !== void 0 && error.querySelector('resource-constraint')) { // If we get a error, we assume it's in context of XEP-0437 RAI. // We remove this MUC's host from the list of enabled domains and rejoin the MUC. if (this.session.get('connection_status') === core_converse.ROOMSTATUS.DISCONNECTED) { @@ -32323,7 +34743,7 @@ const ChatRoomMixin = { const mentions = message.get('references').filter(ref => ref.type === 'mention').map(ref => ref.value); return mentions.includes(nick); } else { - return new RegExp("\\b".concat(nick, "\\b")).test(message.get('message')); + return new RegExp(`\\b${nick}\\b`).test(message.get('message')); } }, @@ -32335,7 +34755,7 @@ const ChatRoomMixin = { * @param { XMLElement } - The stanza */ handleUnreadMessage(message) { - if (!(message === null || message === void 0 ? void 0 : message.get('body'))) { + if (!(message !== null && message !== void 0 && message.get('body'))) { return; } @@ -32345,8 +34765,8 @@ const ChatRoomMixin = { // gets scrolled down. We always want to scroll down // when the user writes a message as opposed to when a // message is received. - this.model.set('scrolled', false); - } else if (this.isHidden() || this.get('scrolled')) { + this.ui.set('scrolled', false); + } else if (this.isHidden() || this.ui.get('scrolled')) { const settings = { 'num_unread_general': this.get('num_unread_general') + 1 }; @@ -32890,7 +35310,7 @@ async function onWindowStateChanged(data) { async function routeToRoom(jid) { if (!utils_form.isValidMUCJID(jid)) { - return headless_log.warn("invalid jid \"".concat(jid, "\" provided in url fragment")); + return headless_log.warn(`invalid jid "${jid}" provided in url fragment`); } await api.waitUntil('roomsAutoJoined'); @@ -33255,7 +35675,9 @@ var jed_default = /*#__PURE__*/__webpack_require__.n(jed); - +const { + dayjs +} = core_converse.env; function detectLocale(library_check) { /* Determine which locale is supported by the user's system as well @@ -33340,9 +35762,9 @@ async function fetchTranslations(_converse) { const { default: data - } = await __webpack_require__(7521)("./".concat(locale, "/LC_MESSAGES/converse.po")); - await __webpack_require__(9434)("./".concat(dayjs_locale, ".js")); - dayjs_min_default().locale(getLocale(dayjs_locale, l => dayjs_min_default().locale(l))); + } = await __webpack_require__(7521)(`./${locale}/LC_MESSAGES/converse.po`); + await __webpack_require__(9434)(`./${dayjs_locale}.js`); + dayjs.locale(getLocale(dayjs_locale, l => dayjs.locale(l))); jed_instance = new (jed_default())(data); } @@ -33412,7 +35834,7 @@ const Bookmarks = { this.on('add', bm => this.openBookmarkedRoom(bm).then(bm => this.markRoomAsBookmarked(bm)).catch(e => headless_log.fatal(e))); this.on('remove', this.markRoomAsUnbookmarked, this); this.on('remove', this.sendBookmarkStanza, this); - const cache_key = "converse.room-bookmarks".concat(shared_converse.bare_jid); + const cache_key = `converse.room-bookmarks${shared_converse.bare_jid}`; this.fetched_flag = cache_key + 'fetched'; initStorage(this, cache_key); }, @@ -33522,7 +35944,7 @@ const Bookmarks = { createBookmarksFromStanza(stanza) { const xmlns = collection_Strophe.NS.BOOKMARKS; - const sel = "items[node=\"".concat(xmlns, "\"] item storage[xmlns=\"").concat(xmlns, "\"] conference"); + const sel = `items[node="${xmlns}"] item storage[xmlns="${xmlns}"] conference`; collection_sizzle(sel, stanza).forEach(el => { var _el$querySelector; @@ -33645,7 +36067,7 @@ const { bookmarks_Strophe.addNamespace('BOOKMARKS', 'storage:bookmarks'); function handleBookmarksPush(message) { - if (bookmarks_sizzle("event[xmlns=\"".concat(bookmarks_Strophe.NS.PUBSUB, "#event\"] items[node=\"").concat(bookmarks_Strophe.NS.BOOKMARKS, "\"]"), message).length) { + if (bookmarks_sizzle(`event[xmlns="${bookmarks_Strophe.NS.PUBSUB}#event"] items[node="${bookmarks_Strophe.NS.BOOKMARKS}"]`, message).length) { api.waitUntil('bookmarksInitialized').then(() => shared_converse.bookmarks.createBookmarksFromStanza(message)).catch(e => headless_log.fatal(e)); } @@ -33867,7 +36289,7 @@ core_converse.plugins.add('converse-bosh', { // model, to avoid trying to reconnect to a stale BOSH session const id = BOSH_SESSION_ID; sessionStorage.removeItem(id); - sessionStorage.removeItem("".concat(id, "-").concat(id)); + sessionStorage.removeItem(`${id}-${id}`); } else { shared_converse.bosh_session.destroy(); @@ -33943,13 +36365,9 @@ function generateVerificationString() { propertySort(identities, "lang"); } - let S = identities.reduce((result, id) => { - var _id$lang; - - return "".concat(result).concat(id.category, "/").concat(id.type, "/").concat((_id$lang = id === null || id === void 0 ? void 0 : id.lang) !== null && _id$lang !== void 0 ? _id$lang : '', "/").concat(id.name, "<"); - }, ""); + let S = identities.reduce((result, id) => `${result}${id.category}/${id.type}/${(id === null || id === void 0 ? void 0 : id.lang) ?? ''}/${id.name}<`, ""); features.sort(); - S = features.reduce((result, feature) => "".concat(result).concat(feature, "<"), S); + S = features.reduce((result, feature) => `${result}${feature}<`, S); return SHA1.b64_sha1(S); } @@ -34005,7 +36423,7 @@ function enableCarbons(reconnecting) { }); } - if (!api.settings.get("message_carbons") || ((_converse$session2 = shared_converse.session) === null || _converse$session2 === void 0 ? void 0 : _converse$session2.get('carbons_enabled'))) { + if (!api.settings.get("message_carbons") || (_converse$session2 = shared_converse.session) !== null && _converse$session2 !== void 0 && _converse$session2.get('carbons_enabled')) { return; } @@ -34075,7 +36493,7 @@ const ChatBoxes = Collection.extend({ return; } - initStorage(this, "converse.chatboxes-".concat(shared_converse.bare_jid)); + initStorage(this, `converse.chatboxes-${shared_converse.bare_jid}`); this.fetch({ 'add': true, 'success': c => this.onChatBoxesFetched(c) @@ -34273,8 +36691,9 @@ core_converse.plugins.add('converse-headlines', { async initialize() { this.set({ - 'box_id': "box-".concat(this.get('jid')) + 'box_id': `box-${this.get('jid')}` }); + this.initUI(); this.initMessages(); await this.fetchMessages(); /** @@ -34384,6 +36803,20 @@ core_converse.plugins.add('converse-headlines', { } }); +;// CONCATENATED MODULE: ./src/headless/plugins/mam/placeholder.js + + +const placeholder_u = core_converse.env.utils; +class MAMPlaceholderMessage extends Model { + defaults() { + // eslint-disable-line class-methods-use-this + return { + 'msgid': placeholder_u.getUniqueId(), + 'is_ephemeral': false + }; + } + +} ;// CONCATENATED MODULE: ./src/headless/shared/rsm.js /** * @module converse-rsm @@ -34515,7 +36948,7 @@ shared_converse.RSM = RSM; const { Strophe: mam_api_Strophe, $iq: mam_api_$iq, - dayjs + dayjs: api_dayjs } = core_converse.env; const { NS: api_NS @@ -34728,7 +37161,7 @@ const api_u = core_converse.env.utils; const supported = await api.disco.supports(api_NS.MAM, jid); if (!supported) { - headless_log.warn("Did not fetch MAM archive for ".concat(jid, " because it doesn't support ").concat(api_NS.MAM)); + headless_log.warn(`Did not fetch MAM archive for ${jid} because it doesn't support ${api_NS.MAM}`); return { 'messages': [] }; @@ -34757,14 +37190,14 @@ const api_u = core_converse.env.utils; ['start', 'end'].forEach(t => { if (options[t]) { - const date = dayjs(options[t]); + const date = api_dayjs(options[t]); if (date.isValid()) { stanza.c('field', { 'var': t }).c('value').t(date.toISOString()).up().up(); } else { - throw new TypeError("archive.query: invalid date provided for: ".concat(t)); + throw new TypeError(`archive.query: invalid date provided for: ${t}`); } } }); @@ -34779,7 +37212,7 @@ const api_u = core_converse.env.utils; const messages = []; const message_handler = shared_converse.connection.addHandler(stanza => { - const result = sizzle_default()("message > result[xmlns=\"".concat(api_NS.MAM, "\"]"), stanza).pop(); + const result = sizzle_default()(`message > result[xmlns="${api_NS.MAM}"]`, stanza).pop(); if (result === undefined || result.getAttribute('queryid') !== queryid) { return true; @@ -34789,11 +37222,11 @@ const api_u = core_converse.env.utils; if (options.groupchat) { if (from !== options['with']) { - headless_log.warn("Ignoring alleged groupchat MAM message from ".concat(stanza.getAttribute('from'))); + headless_log.warn(`Ignoring alleged groupchat MAM message from ${stanza.getAttribute('from')}`); return true; } } else if (from !== shared_converse.bare_jid) { - headless_log.warn("Ignoring alleged MAM message from ".concat(stanza.getAttribute('from'))); + headless_log.warn(`Ignoring alleged MAM message from ${stanza.getAttribute('from')}`); return true; } @@ -34836,9 +37269,9 @@ const api_u = core_converse.env.utils; shared_converse.connection.deleteHandler(message_handler); let rsm; - const fin = iq_result && sizzle_default()("fin[xmlns=\"".concat(api_NS.MAM, "\"]"), iq_result).pop(); + const fin = iq_result && sizzle_default()(`fin[xmlns="${api_NS.MAM}"]`, iq_result).pop(); const complete = (fin === null || fin === void 0 ? void 0 : fin.getAttribute('complete')) === 'true'; - const set = sizzle_default()("set[xmlns=\"".concat(api_NS.RSM, "\"]"), fin).pop(); + const set = sizzle_default()(`set[xmlns="${api_NS.RSM}"]`, fin).pop(); if (set) { rsm = new RSM({ ...options, @@ -34872,6 +37305,7 @@ const api_u = core_converse.env.utils; + const { Strophe: mam_utils_Strophe, $iq: mam_utils_$iq @@ -34881,10 +37315,10 @@ const { } = mam_utils_Strophe; const mam_utils_u = core_converse.env.utils; function onMAMError(iq) { - if (iq === null || iq === void 0 ? void 0 : iq.querySelectorAll('feature-not-implemented').length) { - headless_log.warn("Message Archive Management (XEP-0313) not supported by ".concat(iq.getAttribute('from'))); + if (iq !== null && iq !== void 0 && iq.querySelectorAll('feature-not-implemented').length) { + headless_log.warn(`Message Archive Management (XEP-0313) not supported by ${iq.getAttribute('from')}`); } else { - headless_log.error("Error while trying to set archiving preferences for ".concat(iq.getAttribute('from'), ".")); + headless_log.error(`Error while trying to set archiving preferences for ${iq.getAttribute('from')}.`); headless_log.error(iq); } } @@ -34901,7 +37335,7 @@ function onMAMError(iq) { */ function onMAMPreferences(iq, feature) { - const preference = sizzle_default()("prefs[xmlns=\"".concat(utils_NS.MAM, "\"]"), iq).pop(); + const preference = sizzle_default()(`prefs[xmlns="${utils_NS.MAM}"]`, iq).pop(); const default_pref = preference.getAttribute('default'); if (default_pref !== api.settings.get('message_archiving')) { @@ -34982,8 +37416,8 @@ async function handleMAMResult(model, result, query, options, should_page) { } } /** - * Fetch XEP-0313 archived messages based on the passed in criteria. - * @param { Object } options + * @typedef { Object } MAMOptions + * A map of MAM related options that may be passed to fetchArchivedMessages * @param { integer } [options.max] - The maximum number of items to return. * Defaults to "archived_messages_page_size" * @param { string } [options.after] - The XEP-0359 stanza ID of a message @@ -34997,8 +37431,15 @@ async function handleMAMResult(model, result, query, options, should_page) { * @param { string } [options.with] - The JID of the entity with * which messages were exchanged. * @param { boolean } [options.groupchat] - True if archive in groupchat. - * @param { ('forwards'|'backwards'|null)} [should_page=null] - Determines whether this function should - * recursively page through the entire result set if a limited number of results were returned. + */ + +/** + * Fetch XEP-0313 archived messages based on the passed in criteria. + * @param { _converse.ChatBox | _converse.ChatRoom } model + * @param { MAMOptions } [options] + * @param { ('forwards'|'backwards'|null)} [should_page=null] - Determines whether + * this function should recursively page through the entire result set if a limited + * number of results were returned. */ async function fetchArchivedMessages(model, options = {}, should_page = null) { @@ -35032,17 +37473,58 @@ async function fetchArchivedMessages(model, options = {}, should_page = null) { } return fetchArchivedMessages(model, options, should_page); - } else {// TODO: Add a special kind of message which will - // render as a link to fetch further messages, either - // to fetch older messages or to fill in a gap. + } else { + createPlaceholder(model, options, result); } } } +/** + * Create a placeholder message which is used to indicate gaps in the history. + * @param { _converse.ChatBox | _converse.ChatRoom } model + * @param { MAMOptions } options + * @param { object } result - The RSM result object + */ + +async function createPlaceholder(model, options, result) { + if (options.before == '' && (model.messages.length === 0 || !options.start)) { + // Fetching the latest MAM messages with an empty local cache + return; + } + + if (options.before && !options.start) { + // Infinite scrolling upward + return; + } + + if (options.before == null) { + // eslint-disable-line no-eq-null + // Adding placeholders when paging forwards is not supported yet, + // since currently with standard Converse, we only page forwards + // when fetching the entire history (i.e. no gaps should arise). + return; + } + + const msgs = await Promise.all(result.messages); + const { + rsm + } = result; + const key = `stanza_id ${model.get('jid')}`; + const adjacent_message = msgs.find(m => m[key] === rsm.result.first); + const msg_data = { + 'template_hook': 'getMessageTemplate', + 'time': new Date(new Date(adjacent_message['time']) - 1).toISOString(), + 'before': rsm.result.first, + 'start': options.start + }; + model.messages.add(new MAMPlaceholderMessage(msg_data)); +} /** * Fetches messages that might have been archived *after* * the last archived message in our local cache. + * @param { _converse.ChatBox | _converse.ChatRoom } */ + function fetchNewestMessages(model) { if (model.disable_mam) { return; @@ -35056,7 +37538,7 @@ function fetchNewestMessages(model) { const should_page = api.settings.get('mam_request_all_pages'); if (should_page) { - const stanza_id = most_recent_msg.get("stanza_id ".concat(model.get('jid'))); + const stanza_id = most_recent_msg.get(`stanza_id ${model.get('jid')}`); if (stanza_id) { fetchArchivedMessages(model, { @@ -35089,6 +37571,7 @@ function fetchNewestMessages(model) { + const { Strophe: mam_Strophe } = core_converse.env; @@ -35112,7 +37595,8 @@ core_converse.plugins.add('converse-mam', { Object.assign(shared_converse, { onMAMError: onMAMError, onMAMPreferences: onMAMPreferences, - handleMAMResult: handleMAMResult + handleMAMResult: handleMAMResult, + MAMPlaceholderMessage: MAMPlaceholderMessage }); /************************ Event Handlers ************************/ @@ -35255,13 +37739,13 @@ const { const result = await api.sendIQ(iq, timeout || 10000, false); if (result === null) { - headless_log.warn("Timeout while pinging ".concat(jid)); + headless_log.warn(`Timeout while pinging ${jid}`); if (jid === ping_api_Strophe.getDomainFromJid(shared_converse.bare_jid)) { api.connection.reconnect(); } } else if (ping_api_u.isErrorStanza(result)) { - headless_log.error("Error while pinging ".concat(jid)); + headless_log.error(`Error while pinging ${jid}`); headless_log.error(result); } @@ -35364,24 +37848,24 @@ core_converse.plugins.add('converse-pubsub', { }).c('field', { 'var': 'FORM_TYPE', 'type': 'hidden' - }).c('value').t("".concat(pubsub_Strophe.NS.PUBSUB, "#publish-options")).up().up(); + }).c('value').t(`${pubsub_Strophe.NS.PUBSUB}#publish-options`).up().up(); Object.keys(options).forEach(k => stanza.c('field', { 'var': k }).c('value').t(options[k]).up().up()); } else { - headless_log.warn("_converse.api.publish: ".concat(jid, " does not support #publish-options, ") + "so we didn't set them even though they were provided."); + headless_log.warn(`_converse.api.publish: ${jid} does not support #publish-options, ` + `so we didn't set them even though they were provided.`); } } try { await api.sendIQ(stanza); } catch (iq) { - if (iq instanceof Element && strict_options && iq.querySelector("precondition-not-met[xmlns=\"".concat(pubsub_Strophe.NS.PUBSUB_ERROR, "\"]"))) { + if (iq instanceof Element && strict_options && iq.querySelector(`precondition-not-met[xmlns="${pubsub_Strophe.NS.PUBSUB_ERROR}"]`)) { // The publish-options precondition couldn't be // met. We re-publish but without publish-options. const el = stanza.nodeTree; el.querySelector('publish-options').outerHTML = ''; - headless_log.warn("PubSub: Republishing without publish options. ".concat(el.outerHTML)); + headless_log.warn(`PubSub: Republishing without publish options. ${el.outerHTML}`); await api.sendIQ(el); } else { throw iq; @@ -35580,11 +38064,7 @@ const XMPPStatus = Model.extend({ child_nodes = [child_nodes]; } - child_nodes.map(c => { - var _c$tree; - - return (_c$tree = c === null || c === void 0 ? void 0 : c.tree()) !== null && _c$tree !== void 0 ? _c$tree : c; - }).forEach(c => presence.cnode(c).up()); + child_nodes.map(c => (c === null || c === void 0 ? void 0 : c.tree()) ?? c).forEach(c => presence.cnode(c).up()); } api.send(presence); @@ -35699,7 +38179,7 @@ function initStatus(reconnecting) { if (reconnecting) { onStatusInitialized(reconnecting); } else { - const id = "converse.xmppstatus-".concat(shared_converse.bare_jid); + const id = `converse.xmppstatus-${shared_converse.bare_jid}`; shared_converse.xmppstatus = new shared_converse.XMPPStatus({ id }); @@ -35720,7 +38200,7 @@ function onUserActivity() { shared_converse.idle_seconds = 0; } - if (!((_converse$connection = shared_converse.connection) === null || _converse$connection === void 0 ? void 0 : _converse$connection.authenticated)) { + if (!((_converse$connection = shared_converse.connection) !== null && _converse$connection !== void 0 && _converse$connection.authenticated)) { // We can't send out any stanzas when there's no authenticated connection. // This can happen when the connection reconnects. return; @@ -35748,7 +38228,7 @@ function utils_onEverySecond() { /* An interval handler running every second. * Used for CSI and the auto_away and auto_xa features. */ - if (!((_converse$connection2 = shared_converse.connection) === null || _converse$connection2 === void 0 ? void 0 : _converse$connection2.authenticated)) { + if (!((_converse$connection2 = shared_converse.connection) !== null && _converse$connection2 !== void 0 && _converse$connection2.authenticated)) { // We can't send out any stanzas when there's no authenticated connection. // This can happen when the connection reconnects. return; @@ -35865,10 +38345,265 @@ core_converse.plugins.add('converse-status', { } }); +;// CONCATENATED MODULE: ./src/headless/plugins/roster/utils.js + + + + +const { + $pres: utils_$pres +} = core_converse.env; + +async function initRoster() { + // Initialize the Bakcbone collections that represent the contats + // roster and the roster groups. + await api.waitUntil('VCardsInitialized'); + shared_converse.roster = new shared_converse.RosterContacts(); + let id = `converse.contacts-${shared_converse.bare_jid}`; + initStorage(shared_converse.roster, id); + shared_converse.roster.data = new Model(); + id = `converse-roster-model-${shared_converse.bare_jid}`; + shared_converse.roster.data.id = id; + initStorage(shared_converse.roster.data, id); + + shared_converse.roster.data.fetch(); + /** + * Triggered once the `_converse.RosterContacts` + * been created, but not yet populated with data. + * This event is useful when you want to create views for these collections. + * @event _converse#chatBoxMaximized + * @example _converse.api.listen.on('rosterInitialized', () => { ... }); + * @example _converse.api.waitUntil('rosterInitialized').then(() => { ... }); + */ + + + api.trigger('rosterInitialized'); +} +/** + * Fetch all the roster groups, and then the roster contacts. + * Emit an event after fetching is done in each case. + * @private + * @param { Bool } ignore_cache - If set to to true, the local cache + * will be ignored it's guaranteed that the XMPP server + * will be queried for the roster. + */ + + +async function populateRoster(ignore_cache = false) { + if (ignore_cache) { + shared_converse.send_initial_presence = true; + } + + try { + await shared_converse.roster.fetchRosterContacts(); + api.trigger('rosterContactsFetched'); + } catch (reason) { + headless_log.error(reason); + } finally { + shared_converse.send_initial_presence && api.user.presence.send(); + } +} + +function updateUnreadCounter(chatbox) { + var _converse$roster; + + const contact = (_converse$roster = shared_converse.roster) === null || _converse$roster === void 0 ? void 0 : _converse$roster.findWhere({ + 'jid': chatbox.get('jid') + }); + contact === null || contact === void 0 ? void 0 : contact.save({ + 'num_unread': chatbox.get('num_unread') + }); +} + +function registerPresenceHandler() { + unregisterPresenceHandler(); + shared_converse.presence_ref = shared_converse.connection.addHandler(presence => { + shared_converse.roster.presenceHandler(presence); + + return true; + }, null, 'presence', null); +} + +function unregisterPresenceHandler() { + if (shared_converse.presence_ref !== undefined) { + shared_converse.connection.deleteHandler(shared_converse.presence_ref); + + delete shared_converse.presence_ref; + } +} + +async function clearPresences() { + var _converse$presences; + + await ((_converse$presences = shared_converse.presences) === null || _converse$presences === void 0 ? void 0 : _converse$presences.clearStore()); +} +/** + * Roster specific event handler for the clearSession event + */ + + +async function utils_onClearSession() { + await clearPresences(); + + if (shared_converse.shouldClearCache()) { + if (shared_converse.rostergroups) { + await shared_converse.rostergroups.clearStore(); + delete shared_converse.rostergroups; + } + + if (shared_converse.roster) { + var _converse$roster$data; + + (_converse$roster$data = shared_converse.roster.data) === null || _converse$roster$data === void 0 ? void 0 : _converse$roster$data.destroy(); + await shared_converse.roster.clearStore(); + delete shared_converse.roster; + } + } +} +/** + * Roster specific event handler for the presencesInitialized event + * @param { Boolean } reconnecting + */ + +async function onPresencesInitialized(reconnecting) { + if (reconnecting) { + /** + * Similar to `rosterInitialized`, but instead pertaining to reconnection. + * This event indicates that the roster and its groups are now again + * available after Converse.js has reconnected. + * @event _converse#rosterReadyAfterReconnection + * @example _converse.api.listen.on('rosterReadyAfterReconnection', () => { ... }); + */ + api.trigger('rosterReadyAfterReconnection'); + } else { + await initRoster(); + } + + shared_converse.roster.onConnected(); + + registerPresenceHandler(); + populateRoster(!shared_converse.connection.restored); +} +/** + * Roster specific event handler for the statusInitialized event + * @param { Boolean } reconnecting + */ + +async function utils_onStatusInitialized(reconnecting) { + if (reconnecting) { + // When reconnecting and not resuming a previous session, + // we clear all cached presence data, since it might be stale + // and we'll receive new presence updates + !shared_converse.connection.hasResumed() && (await clearPresences()); + } else { + shared_converse.presences = new shared_converse.Presences(); + const id = `converse.presences-${shared_converse.bare_jid}`; + initStorage(shared_converse.presences, id, 'session'); // We might be continuing an existing session, so we fetch + // cached presence data. + + shared_converse.presences.fetch(); + } + /** + * Triggered once the _converse.Presences collection has been + * initialized and its cached data fetched. + * Returns a boolean indicating whether this event has fired due to + * Converse having reconnected. + * @event _converse#presencesInitialized + * @type { bool } + * @example _converse.api.listen.on('presencesInitialized', reconnecting => { ... }); + */ + + + api.trigger('presencesInitialized', reconnecting); +} +/** + * Roster specific event handler for the chatBoxesInitialized event + */ + +function onChatBoxesInitialized() { + shared_converse.chatboxes.on('change:num_unread', updateUnreadCounter); + + shared_converse.chatboxes.on('add', chatbox => { + if (chatbox.get('type') === shared_converse.PRIVATE_CHAT_TYPE) { + chatbox.setRosterContact(chatbox.get('jid')); + } + }); +} +/** + * Roster specific handler for the rosterContactsFetched promise + */ + +function onRosterContactsFetched() { + shared_converse.roster.on('add', contact => { + // When a new contact is added, check if we already have a + // chatbox open for it, and if so attach it to the chatbox. + const chatbox = shared_converse.chatboxes.findWhere({ + 'jid': contact.get('jid') + }); + + chatbox === null || chatbox === void 0 ? void 0 : chatbox.setRosterContact(contact.get('jid')); + }); +} +/** + * Reject or cancel another user's subscription to our presence updates. + * @function rejectPresenceSubscription + * @param { String } jid - The Jabber ID of the user whose subscription is being canceled + * @param { String } message - An optional message to the user + */ + +function rejectPresenceSubscription(jid, message) { + const pres = utils_$pres({ + to: jid, + type: "unsubscribed" + }); + + if (message && message !== "") { + pres.c("status").t(message); + } + + api.send(pres); +} +function contactsComparator(contact1, contact2) { + const status1 = contact1.presence.get('show') || 'offline'; + const status2 = contact2.presence.get('show') || 'offline'; + + if (shared_converse.STATUS_WEIGHTS[status1] === shared_converse.STATUS_WEIGHTS[status2]) { + const name1 = contact1.getDisplayName().toLowerCase(); + const name2 = contact2.getDisplayName().toLowerCase(); + return name1 < name2 ? -1 : name1 > name2 ? 1 : 0; + } else { + return shared_converse.STATUS_WEIGHTS[status1] < shared_converse.STATUS_WEIGHTS[status2] ? -1 : 1; + } +} +function groupsComparator(a, b) { + const HEADER_WEIGHTS = {}; + HEADER_WEIGHTS[shared_converse.HEADER_UNREAD] = 0; + HEADER_WEIGHTS[shared_converse.HEADER_REQUESTING_CONTACTS] = 1; + HEADER_WEIGHTS[shared_converse.HEADER_CURRENT_CONTACTS] = 2; + HEADER_WEIGHTS[shared_converse.HEADER_UNGROUPED] = 3; + HEADER_WEIGHTS[shared_converse.HEADER_PENDING_CONTACTS] = 4; + const WEIGHTS = HEADER_WEIGHTS; + const special_groups = Object.keys(HEADER_WEIGHTS); + const a_is_special = special_groups.includes(a); + const b_is_special = special_groups.includes(b); + + if (!a_is_special && !b_is_special) { + return a.toLowerCase() < b.toLowerCase() ? -1 : a.toLowerCase() > b.toLowerCase() ? 1 : 0; + } else if (a_is_special && b_is_special) { + return WEIGHTS[a] < WEIGHTS[b] ? -1 : WEIGHTS[a] > WEIGHTS[b] ? 1 : 0; + } else if (!a_is_special && b_is_special) { + const a_header = shared_converse.HEADER_CURRENT_CONTACTS; + return WEIGHTS[a_header] < WEIGHTS[b] ? -1 : WEIGHTS[a_header] > WEIGHTS[b] ? 1 : 0; + } else if (a_is_special && !b_is_special) { + const b_header = shared_converse.HEADER_CURRENT_CONTACTS; + return WEIGHTS[a] < WEIGHTS[b_header] ? -1 : WEIGHTS[a] > WEIGHTS[b_header] ? 1 : 0; + } +} ;// CONCATENATED MODULE: ./src/headless/plugins/roster/contact.js + const { Strophe: contact_Strophe, $iq: contact_$iq, @@ -35882,6 +38617,7 @@ const { const RosterContact = Model.extend({ defaults: { 'chat_state': undefined, + 'groups': [], 'image': shared_converse.DEFAULT_IMAGE, 'image_type': shared_converse.DEFAULT_IMAGE_TYPE, 'num_unread': 0, @@ -35897,7 +38633,6 @@ const RosterContact = Model.extend({ const bare_jid = contact_Strophe.getBareJidFromJid(jid).toLowerCase(); attributes.jid = bare_jid; this.set(Object.assign({ - 'groups': [], 'id': bare_jid, 'jid': bare_jid, 'user_id': contact_Strophe.getNodeFromJid(jid) @@ -35950,8 +38685,8 @@ const RosterContact = Model.extend({ const nick = this.get('nickname'); const jid = this.get('jid'); let criteria = this.getDisplayName(); - criteria = !criteria.includes(jid) ? criteria.concat(" ".concat(jid)) : criteria; - criteria = !criteria.includes(nick) ? criteria.concat(" ".concat(nick)) : criteria; + criteria = !criteria.includes(jid) ? criteria.concat(` ${jid}`) : criteria; + criteria = !criteria.includes(nick) ? criteria.concat(` ${nick}`) : criteria; return criteria.toLowerCase(); }, @@ -36041,8 +38776,7 @@ const RosterContact = Model.extend({ * @param { String } message - Optional message to send to the person being unauthorized */ unauthorize(message) { - shared_converse.rejectPresenceSubscription(this.get('jid'), message); - + rejectPresenceSubscription(this.get('jid'), message); return this; }, @@ -36147,17 +38881,18 @@ function sum(array) { + const { Strophe: contacts_Strophe, $iq: contacts_$iq, - sizzle: contacts_sizzle + sizzle: contacts_sizzle, + u: contacts_u } = core_converse.env; -const contacts_u = core_converse.env.utils; const RosterContacts = Collection.extend({ model: contact, initialize() { - const id = "roster.state-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); + const id = `roster.state-${shared_converse.bare_jid}-${this.get('jid')}`; this.state = new Model({ id, 'collapsed_groups': [] @@ -36339,7 +39074,7 @@ const RosterContacts = Collection.extend({ var _sizzle$pop; // Can happen when a subscription is retried or roster was deleted - const nickname = ((_sizzle$pop = contacts_sizzle("nick[xmlns=\"".concat(contacts_Strophe.NS.NICK, "\"]"), presence).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.textContent) || null; + const nickname = ((_sizzle$pop = contacts_sizzle(`nick[xmlns="${contacts_Strophe.NS.NICK}"]`, presence).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.textContent) || null; const contact = await this.addContactToRoster(bare_jid, nickname, [], { 'subscription': 'from' }); @@ -36373,7 +39108,7 @@ const RosterContacts = Collection.extend({ // attribute (i.e., implicitly from the bare JID of the user's // account) or it has a 'from' attribute whose value matches the // user's bare JID . - headless_log.warn("Ignoring roster illegitimate roster push message from ".concat(iq.getAttribute('from'))); + headless_log.warn(`Ignoring roster illegitimate roster push message from ${iq.getAttribute('from')}`); return; } @@ -36382,9 +39117,9 @@ const RosterContacts = Collection.extend({ id, from: shared_converse.connection.jid })); - const query = contacts_sizzle("query[xmlns=\"".concat(contacts_Strophe.NS.ROSTER, "\"]"), iq).pop(); + const query = contacts_sizzle(`query[xmlns="${contacts_Strophe.NS.ROSTER}"]`, iq).pop(); this.data.save('version', query.getAttribute('ver')); - const items = contacts_sizzle("item", query); + const items = contacts_sizzle(`item`, query); if (items.length > 1) { headless_log.error(iq); @@ -36436,10 +39171,10 @@ const RosterContacts = Collection.extend({ const iq = await api.sendIQ(stanza, null, false); if (iq.getAttribute('type') !== 'error') { - const query = contacts_sizzle("query[xmlns=\"".concat(contacts_Strophe.NS.ROSTER, "\"]"), iq).pop(); + const query = contacts_sizzle(`query[xmlns="${contacts_Strophe.NS.ROSTER}"]`, iq).pop(); if (query) { - const items = contacts_sizzle("item", query); + const items = contacts_sizzle(`item`, query); items.forEach(item => this.updateContact(item)); this.data.save('version', query.getAttribute('ver')); } @@ -36475,7 +39210,7 @@ const RosterContacts = Collection.extend({ const contact = this.get(jid); const subscription = item.getAttribute("subscription"); const ask = item.getAttribute("ask"); - const groups = Array.from(item.getElementsByTagName('group')).map(e => e.textContent); + const groups = [...new Set(contacts_sizzle('group', item).map(e => e.textContent))]; if (!contact) { if (subscription === "none" && ask === null || subscription === "remove") { @@ -36514,7 +39249,7 @@ const RosterContacts = Collection.extend({ var _sizzle$pop2; const bare_jid = contacts_Strophe.getBareJidFromJid(presence.getAttribute('from')); - const nickname = ((_sizzle$pop2 = contacts_sizzle("nick[xmlns=\"".concat(contacts_Strophe.NS.NICK, "\"]"), presence).pop()) === null || _sizzle$pop2 === void 0 ? void 0 : _sizzle$pop2.textContent) || null; + const nickname = ((_sizzle$pop2 = contacts_sizzle(`nick[xmlns="${contacts_Strophe.NS.NICK}"]`, presence).pop()) === null || _sizzle$pop2 === void 0 ? void 0 : _sizzle$pop2.textContent) || null; const user_data = { 'jid': bare_jid, 'subscription': 'none', @@ -36538,7 +39273,7 @@ const RosterContacts = Collection.extend({ contact = this.get(bare_jid); if (!api.settings.get('allow_contact_requests')) { - shared_converse.rejectPresenceSubscription(jid, __("This client does not allow presence subscriptions")); + rejectPresenceSubscription(jid, __("This client does not allow presence subscriptions")); } if (api.settings.get('auto_subscribe')) { @@ -36621,7 +39356,7 @@ const RosterContacts = Collection.extend({ if (this.isSelf(bare_jid)) { return this.handleOwnPresence(presence); - } else if (contacts_sizzle("query[xmlns=\"".concat(contacts_Strophe.NS.MUC, "\"]"), presence).length) { + } else if (contacts_sizzle(`query[xmlns="${contacts_Strophe.NS.MUC}"]`, presence).length) { return; // Ignore MUC } @@ -36757,7 +39492,7 @@ const Presence = Model.extend({ initialize() { this.resources = new Resources(); - const id = "converse.identities-".concat(this.get('jid')); + const id = `converse.identities-${this.get('jid')}`; initStorage(this.resources, id, 'session'); this.listenTo(this.resources, 'update', this.onResourcesChanged); this.listenTo(this.resources, 'change', this.onResourcesChanged); @@ -36782,7 +39517,7 @@ const Presence = Model.extend({ * @private */ getHighestPriorityResource() { - return this.resources.sortBy(r => "".concat(r.get('priority'), "-").concat(r.get('timestamp'))).reverse()[0]; + return this.resources.sortBy(r => `${r.get('priority')}-${r.get('timestamp')}`).reverse()[0]; }, /** @@ -36793,17 +39528,17 @@ const Presence = Model.extend({ * @param { XMLElement } presence: The presence stanza */ addResource(presence) { - var _presence$querySelect, _presence$querySelect2, _presence$querySelect3, _presence$querySelect4; + var _presence$querySelect, _presence$querySelect2; const jid = presence.getAttribute('from'), name = presence_Strophe.getResourceFromJid(jid), - delay = presence_sizzle("delay[xmlns=\"".concat(presence_Strophe.NS.DELAY, "\"]"), presence).pop(), - priority = (_presence$querySelect = (_presence$querySelect2 = presence.querySelector('priority')) === null || _presence$querySelect2 === void 0 ? void 0 : _presence$querySelect2.textContent) !== null && _presence$querySelect !== void 0 ? _presence$querySelect : 0, + delay = presence_sizzle(`delay[xmlns="${presence_Strophe.NS.DELAY}"]`, presence).pop(), + priority = ((_presence$querySelect = presence.querySelector('priority')) === null || _presence$querySelect === void 0 ? void 0 : _presence$querySelect.textContent) ?? 0, resource = this.resources.get(name), settings = { 'name': name, 'priority': lodash_es_isNaN(parseInt(priority, 10)) ? 0 : parseInt(priority, 10), - 'show': (_presence$querySelect3 = (_presence$querySelect4 = presence.querySelector('show')) === null || _presence$querySelect4 === void 0 ? void 0 : _presence$querySelect4.textContent) !== null && _presence$querySelect3 !== void 0 ? _presence$querySelect3 : 'online', + 'show': ((_presence$querySelect2 = presence.querySelector('show')) === null || _presence$querySelect2 === void 0 ? void 0 : _presence$querySelect2.textContent) ?? 'online', 'timestamp': delay ? presence_dayjs(delay.getAttribute('stamp')).toISOString() : new Date().toISOString() }; @@ -36833,87 +39568,6 @@ const Presence = Model.extend({ const Presences = Collection.extend({ 'model': Presence }); -;// CONCATENATED MODULE: ./src/headless/plugins/roster/utils.js - - - -async function initRoster() { - // Initialize the Bakcbone collections that represent the contats - // roster and the roster groups. - await api.waitUntil('VCardsInitialized'); - shared_converse.roster = new shared_converse.RosterContacts(); - let id = "converse.contacts-".concat(shared_converse.bare_jid); - initStorage(shared_converse.roster, id); - shared_converse.roster.data = new Model(); - id = "converse-roster-model-".concat(shared_converse.bare_jid); - shared_converse.roster.data.id = id; - initStorage(shared_converse.roster.data, id); - - shared_converse.roster.data.fetch(); - /** - * Triggered once the `_converse.RosterContacts` - * been created, but not yet populated with data. - * This event is useful when you want to create views for these collections. - * @event _converse#chatBoxMaximized - * @example _converse.api.listen.on('rosterInitialized', () => { ... }); - * @example _converse.api.waitUntil('rosterInitialized').then(() => { ... }); - */ - - - api.trigger('rosterInitialized'); -} -function updateUnreadCounter(chatbox) { - const contact = shared_converse.roster && shared_converse.roster.findWhere({ - 'jid': chatbox.get('jid') - }); - - if (contact !== undefined) { - contact.save({ - 'num_unread': chatbox.get('num_unread') - }); - } -} -async function clearPresences() { - var _converse$presences; - - await ((_converse$presences = shared_converse.presences) === null || _converse$presences === void 0 ? void 0 : _converse$presences.clearStore()); -} -function contactsComparator(contact1, contact2) { - const status1 = contact1.presence.get('show') || 'offline'; - const status2 = contact2.presence.get('show') || 'offline'; - - if (shared_converse.STATUS_WEIGHTS[status1] === shared_converse.STATUS_WEIGHTS[status2]) { - const name1 = contact1.getDisplayName().toLowerCase(); - const name2 = contact2.getDisplayName().toLowerCase(); - return name1 < name2 ? -1 : name1 > name2 ? 1 : 0; - } else { - return shared_converse.STATUS_WEIGHTS[status1] < shared_converse.STATUS_WEIGHTS[status2] ? -1 : 1; - } -} -function groupsComparator(a, b) { - const HEADER_WEIGHTS = {}; - HEADER_WEIGHTS[shared_converse.HEADER_UNREAD] = 0; - HEADER_WEIGHTS[shared_converse.HEADER_REQUESTING_CONTACTS] = 1; - HEADER_WEIGHTS[shared_converse.HEADER_CURRENT_CONTACTS] = 2; - HEADER_WEIGHTS[shared_converse.HEADER_UNGROUPED] = 3; - HEADER_WEIGHTS[shared_converse.HEADER_PENDING_CONTACTS] = 4; - const WEIGHTS = HEADER_WEIGHTS; - const special_groups = Object.keys(HEADER_WEIGHTS); - const a_is_special = special_groups.includes(a); - const b_is_special = special_groups.includes(b); - - if (!a_is_special && !b_is_special) { - return a.toLowerCase() < b.toLowerCase() ? -1 : a.toLowerCase() > b.toLowerCase() ? 1 : 0; - } else if (a_is_special && b_is_special) { - return WEIGHTS[a] < WEIGHTS[b] ? -1 : WEIGHTS[a] > WEIGHTS[b] ? 1 : 0; - } else if (!a_is_special && b_is_special) { - const a_header = shared_converse.HEADER_CURRENT_CONTACTS; - return WEIGHTS[a_header] < WEIGHTS[b] ? -1 : WEIGHTS[a_header] > WEIGHTS[b] ? 1 : 0; - } else if (a_is_special && !b_is_special) { - const b_header = shared_converse.HEADER_CURRENT_CONTACTS; - return WEIGHTS[a] < WEIGHTS[b_header] ? -1 : WEIGHTS[a] > WEIGHTS[b_header] ? 1 : 0; - } -} ;// CONCATENATED MODULE: ./src/headless/plugins/roster/index.js /** * @copyright The Converse.js contributors @@ -36927,19 +39581,10 @@ function groupsComparator(a, b) { - - - -const { - $pres: roster_$pres -} = core_converse.env; core_converse.plugins.add('converse-roster', { dependencies: ['converse-status'], initialize() { - /* The initialize function gets called as soon as the plugin is - * loaded by converse.js's plugin machinery. - */ api.settings.extend({ 'allow_contact_requests': true, 'auto_subscribe': false, @@ -36953,173 +39598,17 @@ core_converse.plugins.add('converse-roster', { shared_converse.HEADER_REQUESTING_CONTACTS = __('Contact requests'); shared_converse.HEADER_UNGROUPED = __('Ungrouped'); shared_converse.HEADER_UNREAD = __('New messages'); - - shared_converse.registerPresenceHandler = function () { - shared_converse.unregisterPresenceHandler(); - - shared_converse.presence_ref = shared_converse.connection.addHandler(presence => { - shared_converse.roster.presenceHandler(presence); - - return true; - }, null, 'presence', null); - }; - /** - * Reject or cancel another user's subscription to our presence updates. - * @method rejectPresenceSubscription - * @private - * @memberOf _converse - * @param { String } jid - The Jabber ID of the user whose subscription is being canceled - * @param { String } message - An optional message to the user - */ - - - shared_converse.rejectPresenceSubscription = function (jid, message) { - const pres = roster_$pres({ - to: jid, - type: "unsubscribed" - }); - - if (message && message !== "") { - pres.c("status").t(message); - } - - api.send(pres); - }; - - shared_converse.sendInitialPresence = function () { - if (shared_converse.send_initial_presence) { - api.user.presence.send(); - } - }; - /** - * Fetch all the roster groups, and then the roster contacts. - * Emit an event after fetching is done in each case. - * @private - * @method _converse.populateRoster - * @param { Bool } ignore_cache - If set to to true, the local cache - * will be ignored it's guaranteed that the XMPP server - * will be queried for the roster. - */ - - - shared_converse.populateRoster = async function (ignore_cache = false) { - if (ignore_cache) { - shared_converse.send_initial_presence = true; - } - - try { - await shared_converse.roster.fetchRosterContacts(); - api.trigger('rosterContactsFetched'); - } catch (reason) { - headless_log.error(reason); - } finally { - shared_converse.sendInitialPresence(); - } - }; - shared_converse.Presence = Presence; shared_converse.Presences = Presences; shared_converse.RosterContact = contact; shared_converse.RosterContacts = contacts; - - shared_converse.unregisterPresenceHandler = function () { - if (shared_converse.presence_ref !== undefined) { - shared_converse.connection.deleteHandler(shared_converse.presence_ref); - - delete shared_converse.presence_ref; - } - }; - /******************** Event Handlers ********************/ - - - api.listen.on('chatBoxesInitialized', () => { - shared_converse.chatboxes.on('change:num_unread', updateUnreadCounter); - - shared_converse.chatboxes.on('add', chatbox => { - if (chatbox.get('type') === shared_converse.PRIVATE_CHAT_TYPE) { - chatbox.setRosterContact(chatbox.get('jid')); - } - }); - }); - api.listen.on('beforeTearDown', () => shared_converse.unregisterPresenceHandler()); - api.waitUntil('rosterContactsFetched').then(() => { - shared_converse.roster.on('add', contact => { - /* When a new contact is added, check if we already have a - * chatbox open for it, and if so attach it to the chatbox. - */ - const chatbox = shared_converse.chatboxes.findWhere({ - 'jid': contact.get('jid') - }); - - if (chatbox) { - chatbox.setRosterContact(contact.get('jid')); - } - }); - }); + api.listen.on('beforeTearDown', () => unregisterPresenceHandler()); + api.listen.on('chatBoxesInitialized', onChatBoxesInitialized); + api.listen.on('clearSession', utils_onClearSession); + api.listen.on('presencesInitialized', onPresencesInitialized); + api.listen.on('statusInitialized', utils_onStatusInitialized); api.listen.on('streamResumptionFailed', () => shared_converse.session.set('roster_cached', false)); - api.listen.on('clearSession', async () => { - await clearPresences(); - - if (shared_converse.shouldClearCache()) { - if (shared_converse.rostergroups) { - await shared_converse.rostergroups.clearStore(); - delete shared_converse.rostergroups; - } - - if (shared_converse.roster) { - lodash_es_invoke(shared_converse, 'roster.data.destroy'); - await shared_converse.roster.clearStore(); - delete shared_converse.roster; - } - } - }); - api.listen.on('statusInitialized', async reconnecting => { - if (reconnecting) { - // When reconnecting and not resuming a previous session, - // we clear all cached presence data, since it might be stale - // and we'll receive new presence updates - !shared_converse.connection.hasResumed() && (await clearPresences()); - } else { - shared_converse.presences = new shared_converse.Presences(); - const id = "converse.presences-".concat(shared_converse.bare_jid); - initStorage(shared_converse.presences, id, 'session'); // We might be continuing an existing session, so we fetch - // cached presence data. - - shared_converse.presences.fetch(); - } - /** - * Triggered once the _converse.Presences collection has been - * initialized and its cached data fetched. - * Returns a boolean indicating whether this event has fired due to - * Converse having reconnected. - * @event _converse#presencesInitialized - * @type { bool } - * @example _converse.api.listen.on('presencesInitialized', reconnecting => { ... }); - */ - - - api.trigger('presencesInitialized', reconnecting); - }); - api.listen.on('presencesInitialized', async reconnecting => { - if (reconnecting) { - /** - * Similar to `rosterInitialized`, but instead pertaining to reconnection. - * This event indicates that the roster and its groups are now again - * available after Converse.js has reconnected. - * @event _converse#rosterReadyAfterReconnection - * @example _converse.api.listen.on('rosterReadyAfterReconnection', () => { ... }); - */ - api.trigger('rosterReadyAfterReconnection'); - } else { - await initRoster(); - } - - shared_converse.roster.onConnected(); - - shared_converse.registerPresenceHandler(); - - shared_converse.populateRoster(!shared_converse.connection.restored); - }); + api.waitUntil('rosterContactsFetched').then(onRosterContactsFetched); } }); @@ -37152,14 +39641,14 @@ function handleAck(el) { const delta = handled - last_known_handled; if (delta < 0) { - const err_msg = "New reported stanza count lower than previous. " + "New: ".concat(handled, " - Previous: ").concat(last_known_handled); + const err_msg = `New reported stanza count lower than previous. ` + `New: ${handled} - Previous: ${last_known_handled}`; headless_log.error(err_msg); } const unacked_stanzas = shared_converse.session.get('unacked_stanzas'); if (delta > unacked_stanzas.length) { - const err_msg = "Higher reported acknowledge count than unacknowledged stanzas. " + "Reported Acknowledged Count: ".concat(delta, " -") + "Unacknowledged Stanza Count: ".concat(unacked_stanzas.length, " -") + "New: ".concat(handled, " - Previous: ").concat(last_known_handled); + const err_msg = `Higher reported acknowledge count than unacknowledged stanzas. ` + `Reported Acknowledged Count: ${delta} -` + `Unacknowledged Stanza Count: ${unacked_stanzas.length} -` + `New: ${handled} - Previous: ${last_known_handled}`; headless_log.error(err_msg); } @@ -37176,7 +39665,7 @@ function sendAck() { if (shared_converse.session.get('smacks_enabled')) { const h = shared_converse.session.get('num_stanzas_handled'); - const stanza = smacks_utils_u.toStanza("")); + const stanza = smacks_utils_u.toStanza(``); api.send(stanza); } @@ -37302,7 +39791,7 @@ async function sendResumeStanza() { const h = shared_converse.session.get('num_stanzas_handled'); - const stanza = smacks_utils_u.toStanza("")); + const stanza = smacks_utils_u.toStanza(``); api.send(stanza); shared_converse.connection.flush(); @@ -37324,7 +39813,7 @@ async function sendEnableStanza() { const resume = api.connection.isType('websocket') || shared_converse.isTestEnv(); - const stanza = smacks_utils_u.toStanza("")); + const stanza = smacks_utils_u.toStanza(``); api.send(stanza); shared_converse.connection.flush(); @@ -37380,7 +39869,7 @@ function onStanzaSent(stanza) { if (num % max_unacked === 0) { // Request confirmation of sent stanzas - api.send(smacks_utils_u.toStanza(""))); + api.send(smacks_utils_u.toStanza(``)); } shared_converse.session.save({ @@ -37653,7 +40142,7 @@ core_converse.plugins.add('converse-vcard', { jid }); } else { - headless_log.error("Could not assign VCard for message because no JID found! msgid: ".concat(message.get('msgid'))); + headless_log.error(`Could not assign VCard for message because no JID found! msgid: ${message.get('msgid')}`); return; } } @@ -37671,7 +40160,7 @@ core_converse.plugins.add('converse-vcard', { shared_converse.initVCardCollection = async function () { shared_converse.vcards = new shared_converse.VCards(); - const id = "".concat(shared_converse.bare_jid, "-converse.vcards"); + const id = `${shared_converse.bare_jid}-converse.vcards`; initStorage(shared_converse.vcards, id); await new Promise(resolve => { shared_converse.vcards.fetch({ @@ -37762,7 +40251,18 @@ core_converse.plugins.add('converse-vcard', { } const div = document.createElement('div'); - const vcard_el = vcard_u.toStanza("\n \n ".concat(data.fn, "\n ").concat(data.nickname, "\n ").concat(data.url, "\n ").concat(data.role, "\n ").concat(data.email, "\n \n ").concat(data.image_type, "\n ").concat(data.image, "\n \n "), div); + const vcard_el = vcard_u.toStanza(` + + ${data.fn} + ${data.nickname} + ${data.url} + ${data.role} + ${data.email} + + ${data.image_type} + ${data.image} + + `, div); let result; try { @@ -37834,7 +40334,7 @@ core_converse.plugins.add('converse-vcard', { }) : model; if (!model) { - headless_log.error("Could not find a VCard model for ".concat(model)); + headless_log.error(`Could not find a VCard model for ${model}`); return; } @@ -37912,18 +40412,6 @@ api.elements = { // EXTERNAL MODULE: ./src/shared/styles/index.scss var styles = __webpack_require__(6353); ;// CONCATENATED MODULE: ./src/plugins/bookmark-views/templates/form.js -function form_templateObject() { - const data = form_taggedTemplateLiteral(["\n
\n ", "\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n "]); - - form_templateObject = function () { - return data; - }; - - return data; -} - -function form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const templates_form = (o => { @@ -37939,7 +40427,27 @@ function form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.sl const i18n_submit = __('Save'); - return T(form_templateObject(), o.onSubmit, i18n_heading, i18n_name, o.name, i18n_nick, o.nick || '', i18n_autojoin, i18n_submit, i18n_cancel, o.onCancel); + return T` +
+ ${i18n_heading} +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ `; }); ;// CONCATENATED MODULE: ./src/shared/components/element.js @@ -38111,18 +40619,6 @@ function openRoomViaEvent(ev) { api.rooms.open(jid, data, true); } ;// CONCATENATED MODULE: ./src/plugins/bookmark-views/templates/item.js -function item_templateObject() { - const data = item_taggedTemplateLiteral(["\n
\n ", "\n\n \n
\n "]); - - item_templateObject = function () { - return data; - }; - - return data; -} - -function item_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -38135,21 +40631,21 @@ function item_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.sl const open_title = __('Click to open this groupchat'); - return T(item_templateObject(), is_hidden ? 'hidden' : '', jid, jid, open_title, openRoomViaEvent, o.bm.getDisplayName(), o.bm.get('bookmarked') ? 'button-on' : '', jid, o.bm.getDisplayName(), info_remove_bookmark, removeBookmarkViaEvent); + return T` + + `; }); ;// CONCATENATED MODULE: ./src/plugins/bookmark-views/templates/list.js -function list_templateObject() { - const data = list_taggedTemplateLiteral(["\n
\n \n\n \n ", "\n
\n ", "\n
\n
\n "]); - - list_templateObject = function () { - return data; - }; - - return data; -} - -function list_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -38161,9 +40657,21 @@ function list_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.sl const label_bookmarks = __('Bookmarks'); - return T(list_templateObject(), !is_collapsed && 'hidden' || '', desc_bookmarks, o.toggleBookmarksList, o.toggle_state === shared_converse.OPENED ? 'fa-caret-down' : 'fa-caret-right', label_bookmarks, o.toggle_state !== shared_converse.OPENED ? 'hidden' : '', shared_converse.bookmarks.map(bm => item(Object.assign({ + return T` +
+ + + + ${label_bookmarks} +
+ ${shared_converse.bookmarks.map(bm => item(Object.assign({ bm - }, o)))); + }, o)))} +
+
+ `; }); ;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/element.js function element_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -38392,7 +40900,7 @@ class BookmarksView extends ElementView { this.listenTo(shared_converse.bookmarks, 'remove', this.render); this.listenTo(shared_converse.chatboxes, 'add', this.render); this.listenTo(shared_converse.chatboxes, 'remove', this.render); - const id = "converse.bookmarks-list-model-".concat(shared_converse.bare_jid); + const id = `converse.bookmarks-list-model-${shared_converse.bare_jid}`; this.model = new shared_converse.BookmarksList({ id }); @@ -38536,20 +41044,53 @@ core_converse.plugins.add('converse-bookmark-views', { }); ;// CONCATENATED MODULE: ./src/templates/background_logo.js -function background_logo_templateObject() { - const data = background_logo_taggedTemplateLiteral(["\n
\n
\n
\n \n Logo Converse\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n converse.js\n

messaging freedom

\n
\n
\n
"]); - background_logo_templateObject = function () { - return data; - }; - - return data; -} - -function background_logo_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const background_logo = (() => T(background_logo_templateObject())); +/* harmony default export */ const background_logo = (() => T` +
+
+
+ + Logo Converse + + + + + + + + + + + + + + + + + + + + + + + + + + + + converse.js + + +
+
`); ;// CONCATENATED MODULE: ./node_modules/lit-html/directive.js /** * @license @@ -38755,78 +41296,6 @@ const repeat_u = (e, s, t) => { //# sourceMappingURL=repeat.js.map ;// CONCATENATED MODULE: ./src/plugins/chatboxviews/templates/chats.js -function _templateObject7() { - const data = chats_taggedTemplateLiteral(["\n \n "]); - - _templateObject7 = function () { - return data; - }; - - return data; -} - -function _templateObject6() { - const data = chats_taggedTemplateLiteral(["\n \n "]); - - _templateObject6 = function () { - return data; - }; - - return data; -} - -function _templateObject5() { - const data = chats_taggedTemplateLiteral(["\n \n "]); - - _templateObject5 = function () { - return data; - }; - - return data; -} - -function _templateObject4() { - const data = chats_taggedTemplateLiteral([""]); - - _templateObject4 = function () { - return data; - }; - - return data; -} - -function chats_templateObject3() { - const data = chats_taggedTemplateLiteral(["\n ", "\n \n "]); - - chats_templateObject3 = function () { - return data; - }; - - return data; -} - -function chats_templateObject2() { - const data = chats_taggedTemplateLiteral([""]); - - chats_templateObject2 = function () { - return data; - }; - - return data; -} - -function chats_templateObject() { - const data = chats_taggedTemplateLiteral(["\n ", "\n ", "\n "]); - - chats_templateObject = function () { - return data; - }; - - return data; -} - -function chats_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -38847,18 +41316,33 @@ function shouldShowChat(c) { } = shared_converse; const view_mode = api.settings.get('view_mode'); const connection = shared_converse === null || shared_converse === void 0 ? void 0 : shared_converse.connection; - const logged_out = !(connection === null || connection === void 0 ? void 0 : connection.connected) || !(connection === null || connection === void 0 ? void 0 : connection.authenticated) || (connection === null || connection === void 0 ? void 0 : connection.disconnecting); - return T(chats_templateObject(), view_mode === 'overlayed' ? T(chats_templateObject2()) : '', repeat_c(chatboxes.filter(shouldShowChat), m => m.get('jid'), m => { + const logged_out = !(connection !== null && connection !== void 0 && connection.connected) || !(connection !== null && connection !== void 0 && connection.authenticated) || (connection === null || connection === void 0 ? void 0 : connection.disconnecting); + return T` + ${view_mode === 'overlayed' ? T`` : ''} + ${repeat_c(chatboxes.filter(shouldShowChat), m => m.get('jid'), m => { if (m.get('type') === CONTROLBOX_TYPE) { - return T(chats_templateObject3(), view_mode === 'overlayed' ? T(_templateObject4(), !m.get('closed') ? 'hidden' : '') : '', m.get('closed') ? 'hidden' : '', logged_out ? 'logged-out' : '', m.get('width') ? "width: ".concat(m.get('width')) : ''); + return T` + ${view_mode === 'overlayed' ? T`` : ''} + + `; } else if (m.get('type') === CHATROOMS_TYPE) { - return T(_templateObject5(), m.get('jid')); + return T` + + `; } else if (m.get('type') === HEADLINES_TYPE) { - return T(_templateObject6(), m.get('jid')); + return T` + + `; } else { - return T(_templateObject7(), m.get('jid')); + return T` + + `; } - })); + })} + `; }); ;// CONCATENATED MODULE: ./src/plugins/chatboxviews/view.js @@ -38888,7 +41372,7 @@ class ConverseChats extends ElementView { } const body = document.querySelector('body'); - body.classList.add("converse-".concat(api.settings.get('view_mode'))); + body.classList.add(`converse-${api.settings.get('view_mode')}`); this.render(); /** * Triggered once the _converse.ChatBoxViews view-colleciton has been initialized @@ -38954,27 +41438,18 @@ class ChatBoxViews { /* harmony default export */ const container = (ChatBoxViews); ;// CONCATENATED MODULE: ./src/shared/templates/avatar.js -function avatar_templateObject() { - const data = avatar_taggedTemplateLiteral(["\n \n \n "]); - - avatar_templateObject = function () { - return data; - }; - - return data; -} - -function avatar_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - const getImgHref = (image, image_type) => { - return image.startsWith('data:') ? image : "data:".concat(image_type, ";base64,").concat(image); + return image.startsWith('data:') ? image : `data:${image_type};base64,${image}`; }; /* harmony default export */ const avatar = (o => { if (o.image) { - return T(avatar_templateObject(), o.classes, o.width, o.height, o.width, o.height, getImgHref(o.image, o.image_type)); + return T` + + + `; } else { return ''; } @@ -39262,9 +41737,7 @@ Object.assign(View.prototype, Events, { const avatar_u = core_converse.env.utils; const AvatarMixin = { renderAvatar(el) { - var _this$el; - - el = el || ((_this$el = this === null || this === void 0 ? void 0 : this.el) !== null && _this$el !== void 0 ? _this$el : this); + el = el || ((this === null || this === void 0 ? void 0 : this.el) ?? this); const avatar_el = el.querySelector('canvas.avatar, svg.avatar'); if (avatar_el === null) { @@ -39294,7 +41767,7 @@ class ElementViewWithAvatar extends ElementView { ;// CONCATENATED MODULE: ./src/plugins/chatboxviews/utils.js function calculateViewportHeightUnit() { const vh = window.innerHeight * 0.01; - document.documentElement.style.setProperty('--vh', "".concat(vh, "px")); + document.documentElement.style.setProperty('--vh', `${vh}px`); } // EXTERNAL MODULE: ./src/plugins/chatboxviews/styles/chats.scss var styles_chats = __webpack_require__(4410); @@ -39361,7 +41834,6 @@ core_converse.plugins.add('converse-chatboxviews', { if (el && !container.contains(el)) { container.insertAdjacentElement('afterBegin', el); - api.chatviews.get().filter(v => v.model.get('id') !== 'controlbox').forEach(v => v.maintainScrollTop()); } else if (!el) { throw new Error('Cannot insert non-existing #conversejs element into the DOM'); } @@ -39375,20 +41847,8 @@ core_converse.plugins.add('converse-chatboxviews', { var bootstrap_native = __webpack_require__(2919); var bootstrap_native_default = /*#__PURE__*/__webpack_require__.n(bootstrap_native); ;// CONCATENATED MODULE: ./src/templates/alert.js -function alert_templateObject() { - const data = alert_taggedTemplateLiteral(["

", "

"]); - alert_templateObject = function () { - return data; - }; - - return data; -} - -function alert_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const templates_alert = (o => T(alert_templateObject(), o.type, o.message)); +/* harmony default export */ const templates_alert = (o => T``); // EXTERNAL MODULE: ./src/modals/styles/_modal.scss var _modal = __webpack_require__(552); ;// CONCATENATED MODULE: ./src/modals/base.js @@ -39465,7 +41925,7 @@ const BaseModal = View.extend({ V(templates_alert({ - 'type': "alert-".concat(type), + 'type': `alert-${type}`, 'message': message }), body); const el = body.firstElementChild; @@ -39488,58 +41948,27 @@ const BaseModal = View.extend({ }); /* harmony default export */ const base = (BaseModal); ;// CONCATENATED MODULE: ./src/modals/templates/buttons.js -function buttons_templateObject2() { - const data = buttons_taggedTemplateLiteral([""]); - - buttons_templateObject2 = function () { - return data; - }; - - return data; -} - -function buttons_templateObject() { - const data = buttons_taggedTemplateLiteral([""]); - - buttons_templateObject = function () { - return data; - }; - - return data; -} - -function buttons_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -const modal_close_button = T(buttons_templateObject(), __('Close')); -const modal_header_close_button = T(buttons_templateObject2(), __('Close')); +const modal_close_button = T``; +const modal_header_close_button = T``; ;// CONCATENATED MODULE: ./src/modals/templates/alert.js -function alert_templateObject2() { - const data = templates_alert_taggedTemplateLiteral(["

", "

"]); - - alert_templateObject2 = function () { - return data; - }; - - return data; -} - -function templates_alert_templateObject() { - const data = templates_alert_taggedTemplateLiteral(["\n
\n
\n
\n
", "
\n ", "\n
\n
\n \n ", "\n
\n
\n
\n"]); - - templates_alert_templateObject = function () { - return data; - }; - - return data; -} - -function templates_alert_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const modals_templates_alert = (o => T(templates_alert_templateObject(), o.level, o.title, modal_header_close_button, o.messages.map(message => T(alert_templateObject2(), message)))); +/* harmony default export */ const modals_templates_alert = (o => T` + +`); ;// CONCATENATED MODULE: ./src/modals/alert.js @@ -39561,44 +41990,47 @@ const Alert = base.extend({ }); /* harmony default export */ const modals_alert = (Alert); ;// CONCATENATED MODULE: ./src/modals/templates/prompt.js -function prompt_templateObject3() { - const data = prompt_taggedTemplateLiteral(["

", "

"]); - - prompt_templateObject3 = function () { - return data; - }; - - return data; -} - -function prompt_templateObject2() { - const data = prompt_taggedTemplateLiteral(["\n
\n
\n
\n
", "
\n \n
\n
\n \n
\n
\n ", "\n
\n ", "\n
\n \n \n
\n
\n
\n
\n
\n"]); - - prompt_templateObject2 = function () { - return data; - }; - - return data; -} - -function prompt_templateObject() { - const data = prompt_taggedTemplateLiteral(["\n
\n \n
\n"]); - - prompt_templateObject = function () { - return data; - }; - - return data; -} - -function prompt_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +const tpl_field = f => T` +
+ +
+`; -const tpl_field = f => T(prompt_templateObject(), f.label || '', f.name, f.challenge_failed ? 'error' : '', f.required, f.placeholder); - -/* harmony default export */ const templates_prompt = (o => T(prompt_templateObject2(), o.level || '', o.title, o.messages.map(message => T(prompt_templateObject3(), message)), o.fields.map(f => tpl_field(f)), __('OK'), __('Cancel'))); +/* harmony default export */ const templates_prompt = (o => T` + +`); ;// CONCATENATED MODULE: ./src/modals/confirm.js @@ -39936,7 +42368,7 @@ class async_directive_c extends directive_s { } S(i, t) { - if (!this.isConnected) throw Error("AsyncDirective ".concat(this.constructor.name, " was rendered while its tree was disconnected.")); + if (!this.isConnected) throw Error(`AsyncDirective ${this.constructor.name} was rendered while its tree was disconnected.`); return super.S(i, t); } @@ -40003,38 +42435,6 @@ const until_e = t => !directive_helpers_i(t) && "function" == typeof t.then, //# sourceMappingURL=until.js.map ;// CONCATENATED MODULE: ./src/shared/chat/message-actions.js -function message_actions_templateObject3() { - const data = message_actions_taggedTemplateLiteral(["\n \n "]); - - message_actions_templateObject3 = function () { - return data; - }; - - return data; -} - -function message_actions_templateObject2() { - const data = message_actions_taggedTemplateLiteral([""]); - - message_actions_templateObject2 = function () { - return data; - }; - - return data; -} - -function message_actions_templateObject() { - const data = message_actions_taggedTemplateLiteral(["", ""]); - - message_actions_templateObject = function () { - return data; - }; - - return data; -} - -function message_actions_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -40074,22 +42474,40 @@ class MessageActions extends CustomElement { } render() { - return T(message_actions_templateObject(), until_o(this.renderActions(), '')); + return T`${until_o(this.renderActions(), '')}`; } async renderActions() { + // We want to let the message actions menu drop upwards if we're at the + // bottom of the message history, and down otherwise. This is to avoid + // the menu disappearing behind the bottom panel (toolbar, textarea etc). + // That's difficult to know from state, so we're making an approximation here. + const should_drop_up = this.model.collection.length > 2 && this.model === this.model.collection.last(); const buttons = await this.getActionButtons(); const items = buttons.map(b => MessageActions.getActionsDropdownItem(b)); if (items.length) { - return T(message_actions_templateObject2(), items); + return T``; } else { return ''; } } static getActionsDropdownItem(o) { - return T(message_actions_templateObject3(), o.button_class, o.handler, o.icon_class, api.settings.get("assets_path"), o.i18n_text); + return T` + + `; } onMessageEditButtonClicked(ev) { @@ -40148,12 +42566,12 @@ class MessageActions extends CustomElement { const result = await chatbox.retractOtherMessage(this.model, reason); if (result === null) { - const err_msg = __("A timeout occurred while trying to retract the message"); + const err_msg = __(`A timeout occurred while trying to retract the message`); api.alert('error', __('Error'), err_msg); headless_log(err_msg, message_actions_Strophe.LogLevel.WARN); } else if (message_actions_u.isErrorStanza(result)) { - const err_msg = __("Sorry, you're not allowed to retract this message."); + const err_msg = __(`Sorry, you're not allowed to retract this message.`); api.alert('error', __('Error'), err_msg); headless_log(err_msg, message_actions_Strophe.LogLevel.WARN); @@ -40195,7 +42613,7 @@ class MessageActions extends CustomElement { reason !== false && this.retractOtherMessage(reason); } } else { - const err_msg = __("Sorry, you're not allowed to retract this message"); + const err_msg = __(`Sorry, you're not allowed to retract this message`); api.alert('error', __('Error'), err_msg); } @@ -40225,11 +42643,23 @@ class MessageActions extends CustomElement { 'url_preview_transition': 'fade-in' }); } else { - this.model.set('url_preview_transition', 'fade-out'); + const ogp_metadata = this.model.get('ogp_metadata') || []; + const unfurls_to_show = api.settings.get('muc_show_ogp_unfurls') && ogp_metadata.length; + + if (unfurls_to_show) { + this.model.set('url_preview_transition', 'fade-out'); + } else { + this.model.save({ + 'hide_url_previews': true, + 'url_preview_transition': 'fade-in' + }); + } } } async getActionButtons() { + var _this$model$get; + const buttons = []; if (this.editable) { @@ -40255,17 +42685,26 @@ class MessageActions extends CustomElement { }); } - const ogp_metadata = this.model.get('ogp_metadata') || []; - const chatbox = this.model.collection.chatbox; + if (!this.model.collection) { + // While we were awaiting, this model got removed from the + // collection (happens during tests) + return []; + } - if (chatbox.get('type') === shared_converse.CHATROOMS_TYPE && api.settings.get('muc_show_ogp_unfurls') && ogp_metadata.length) { + const ogp_metadata = this.model.get('ogp_metadata') || []; + const unfurls_to_show = api.settings.get('muc_show_ogp_unfurls') && ogp_metadata.length; + const media_to_show = (_this$model$get = this.model.get('media_urls')) === null || _this$model$get === void 0 ? void 0 : _this$model$get.length; + + if (unfurls_to_show || media_to_show) { let title; const hidden_preview = this.hide_url_previews; if (ogp_metadata.length > 1) { title = hidden_preview ? __('Show URL previews') : __('Hide URL previews'); - } else { + } else if (ogp_metadata.length === 1) { title = hidden_preview ? __('Show URL preview') : __('Hide URL preview'); + } else { + title = hidden_preview ? __('Show media') : __('Hide media'); } buttons.push({ @@ -40300,23 +42739,23 @@ class MessageActions extends CustomElement { api.elements.define('converse-message-actions', MessageActions); ;// CONCATENATED MODULE: ./src/modals/templates/image.js -function image_templateObject() { - const data = image_taggedTemplateLiteral(["\n
\n
\n
\n

", "", "

\n ", "\n
\n
\n \n
\n
", "
\n
\n
"]); - - image_templateObject = function () { - return data; - }; - - return data; -} - -function image_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const templates_image = (o => { - return T(image_templateObject(), __('Image: '), o.src, o.src, modal_header_close_button, o.src, o.onload, modal_close_button); + return T` + `; }); ;// CONCATENATED MODULE: ./src/modals/image.js @@ -40327,7 +42766,7 @@ function image_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.s toHTML() { return templates_image({ 'src': this.src, - 'onload': ev => ev.target.parentElement.style.height = "".concat(ev.target.height, "px") + 'onload': ev => ev.target.parentElement.style.height = `${ev.target.height}px` }); } @@ -40336,32 +42775,745 @@ function image_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.s //# sourceMappingURL=directive.js.map -// EXTERNAL MODULE: ./node_modules/urijs/src/URI.js -var URI = __webpack_require__(2369); -var URI_default = /*#__PURE__*/__webpack_require__.n(URI); +;// CONCATENATED MODULE: ./src/templates/audio.js + +/* harmony default export */ const audio = (url => { + return T`${url}`; +}); +;// CONCATENATED MODULE: ./node_modules/lit/async-directive.js + +//# sourceMappingURL=async-directive.js.map + +;// CONCATENATED MODULE: ./src/templates/file.js + + +/* harmony default export */ const file = ((url, name) => { + const i18n_download = __('Download file "%1$s"', name); + + return T`${i18n_download}`; +}); +;// CONCATENATED MODULE: ./src/templates/form_captcha.js + +/* harmony default export */ const form_captcha = (o => T` +
+ ${o.label ? T`` : ''} + + +
+`); +;// CONCATENATED MODULE: ./src/templates/form_checkbox.js + +/* harmony default export */ const form_checkbox = (o => T` +
+ + +
`); +;// CONCATENATED MODULE: ./src/templates/form_help.js + +/* harmony default export */ const form_help = (o => T`

${o.text}

`); +;// CONCATENATED MODULE: ./src/templates/form_input.js + +/* harmony default export */ const form_input = (o => T` +
+ ${o.type !== 'hidden' ? T`` : ''} + + + ${o.type === 'password' && o.fixed_username ? T` + + ` : ''} + + +
`); +;// CONCATENATED MODULE: ./src/templates/form_select.js + + +const tpl_option = o => T``; + +/* harmony default export */ const form_select = (o => { + var _o$options; + + return T` +
+ + +
`; +}); +;// CONCATENATED MODULE: ./src/templates/form_textarea.js + +/* harmony default export */ const form_textarea = (o => T` + + +`); +;// CONCATENATED MODULE: ./src/templates/form_url.js + +/* harmony default export */ const form_url = (o => T` + `); +;// CONCATENATED MODULE: ./src/templates/form_username.js + +/* harmony default export */ const form_username = (o => T` +
+ ${o.label ? T`` : ''} +
+
+ +
${o.domain}
+
+
+
`); +;// CONCATENATED MODULE: ./src/templates/hyperlink.js + + + +function onClickXMPPURI(ev) { + ev.preventDefault(); + api.rooms.open(ev.target.href); +} + +/* harmony default export */ const hyperlink = ((uri, url_text) => { + let normalized_url = uri.normalize()._string; + + const pretty_url = uri._parts.urn ? normalized_url : uri.readable(); + const visible_url = url_text || pretty_url; + + if (!uri._parts.protocol && !normalized_url.startsWith('http://') && !normalized_url.startsWith('https://')) { + normalized_url = 'http://' + normalized_url; + } + + if (uri._parts.protocol === 'xmpp' && uri._parts.query === 'join') { + return T` + ${visible_url}`; + } + + return T`${visible_url}`; +}); +;// CONCATENATED MODULE: ./src/templates/video.js + +/* harmony default export */ const video = (url => T`${url}`); +;// CONCATENATED MODULE: ./src/utils/html.js +/** + * @copyright 2020, the Converse.js contributors + * @license Mozilla Public License (MPLv2) + * @description This is the DOM/HTML utilities module. + */ + + + + + + + + + + + + + + + + + + +const { + sizzle: html_sizzle +} = core_converse.env; +const APPROVED_URL_PROTOCOLS = ['http', 'https', 'xmpp', 'mailto']; + +function getAutoCompleteProperty(name, options) { + return { + 'muc#roomconfig_lang': 'language', + 'muc#roomconfig_roomsecret': options !== null && options !== void 0 && options.new_password ? 'new-password' : 'current-password' + }[name]; +} + +const XFORM_TYPE_MAP = { + 'text-private': 'password', + 'text-single': 'text', + 'fixed': 'label', + 'boolean': 'checkbox', + 'hidden': 'hidden', + 'jid-multi': 'textarea', + 'list-single': 'dropdown', + 'list-multi': 'dropdown' +}; + +function slideOutWrapup(el) { + /* Wrapup function for slideOut. */ + el.removeAttribute('data-slider-marker'); + el.classList.remove('collapsed'); + el.style.overflow = ''; + el.style.height = ''; +} + +function getFileName(uri) { + try { + return decodeURI(uri.filename()); + } catch (error) { + headless_log.debug(error); + return uri.filename(); + } +} +/** + * Returns the markup for a URL that points to a downloadable asset + * (such as a video, image or audio file). + * @method u#getOOBURLMarkup + * @param { String } url + * @returns { String } + */ + + +function getOOBURLMarkup(url) { + const uri = getURI(url); + + if (uri === null) { + return url; + } + + if (isVideoURL(uri)) { + return video(url); + } else if (isAudioURL(uri)) { + return audio(url); + } else if (isImageURL(uri)) { + return file(uri.toString(), getFileName(uri)); + } else { + return file(uri.toString(), getFileName(uri)); + } +} +/** + * Return the height of the passed in DOM element, + * based on the heights of its children. + * @method u#calculateElementHeight + * @param {HTMLElement} el + * @returns {integer} + */ + +utils_core.calculateElementHeight = function (el) { + return Array.from(el.children).reduce((result, child) => result + child.offsetHeight, 0); +}; + +utils_core.getNextElement = function (el, selector = '*') { + let next_el = el.nextElementSibling; + + while (next_el !== null && !html_sizzle.matchesSelector(next_el, selector)) { + next_el = next_el.nextElementSibling; + } + + return next_el; +}; + +utils_core.getPreviousElement = function (el, selector = '*') { + let prev_el = el.previousElementSibling; + + while (prev_el !== null && !html_sizzle.matchesSelector(prev_el, selector)) { + prev_el = prev_el.previousElementSibling; + } + + return prev_el; +}; + +utils_core.getFirstChildElement = function (el, selector = '*') { + let first_el = el.firstElementChild; + + while (first_el !== null && !html_sizzle.matchesSelector(first_el, selector)) { + first_el = first_el.nextElementSibling; + } + + return first_el; +}; + +utils_core.getLastChildElement = function (el, selector = '*') { + let last_el = el.lastElementChild; + + while (last_el !== null && !html_sizzle.matchesSelector(last_el, selector)) { + last_el = last_el.previousElementSibling; + } + + return last_el; +}; + +utils_core.hasClass = function (className, el) { + return el instanceof Element && el.classList.contains(className); +}; + +utils_core.toggleClass = function (className, el) { + utils_core.hasClass(className, el) ? utils_core.removeClass(className, el) : utils_core.addClass(className, el); +}; +/** + * Add a class to an element. + * @method u#addClass + * @param {string} className + * @param {Element} el + */ + + +utils_core.addClass = function (className, el) { + el instanceof Element && el.classList.add(className); + return el; +}; +/** + * Remove a class from an element. + * @method u#removeClass + * @param {string} className + * @param {Element} el + */ + + +utils_core.removeClass = function (className, el) { + el instanceof Element && el.classList.remove(className); + return el; +}; + +utils_core.removeElement = function (el) { + el instanceof Element && el.parentNode && el.parentNode.removeChild(el); + return el; +}; + +utils_core.getElementFromTemplateResult = function (tr) { + const div = document.createElement('div'); + V(tr, div); + return div.firstElementChild; +}; + +utils_core.showElement = el => { + utils_core.removeClass('collapsed', el); + utils_core.removeClass('hidden', el); +}; + +utils_core.hideElement = function (el) { + el instanceof Element && el.classList.add('hidden'); + return el; +}; + +utils_core.ancestor = function (el, selector) { + let parent = el; + + while (parent !== null && !html_sizzle.matchesSelector(parent, selector)) { + parent = parent.parentElement; + } + + return parent; +}; +/** + * Return the element's siblings until one matches the selector. + * @private + * @method u#nextUntil + * @param { HTMLElement } el + * @param { String } selector + */ + + +utils_core.nextUntil = function (el, selector) { + const matches = []; + let sibling_el = el.nextElementSibling; + + while (sibling_el !== null && !sibling_el.matches(selector)) { + matches.push(sibling_el); + sibling_el = sibling_el.nextElementSibling; + } + + return matches; +}; +/** + * Helper method that replace HTML-escaped symbols with equivalent characters + * (e.g. transform occurrences of '&' to '&') + * @private + * @method u#unescapeHTML + * @param { String } string - a String containing the HTML-escaped symbols. + */ + + +utils_core.unescapeHTML = function (string) { + var div = document.createElement('div'); + div.innerHTML = string; + return div.innerText; +}; + +utils_core.escapeHTML = function (string) { + return string.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); +}; + +function isProtocolApproved(protocol, safeProtocolsList = APPROVED_URL_PROTOCOLS) { + return !!safeProtocolsList.includes(protocol); +} // Will return false if URL is malformed or contains disallowed characters + + +function isUrlValid(urlString) { + try { + const url = new URL(urlString); + return !!url; + } catch (error) { + return false; + } +} + +function getHyperlinkTemplate(url) { + const http_url = RegExp('^w{3}.', 'ig').test(url) ? `http://${url}` : url; + const uri = getURI(url); + + if (uri !== null && isUrlValid(http_url) && (isProtocolApproved(uri._parts.protocol) || !uri._parts.protocol)) { + return hyperlink(uri, url); + } + + return url; +} + +utils_core.slideInAllElements = function (elements, duration = 300) { + return Promise.all(Array.from(elements).map(e => utils_core.slideIn(e, duration))); +}; + +utils_core.slideToggleElement = function (el, duration) { + if (utils_core.hasClass('collapsed', el) || utils_core.hasClass('hidden', el)) { + return utils_core.slideOut(el, duration); + } else { + return utils_core.slideIn(el, duration); + } +}; +/** + * Shows/expands an element by sliding it out of itself + * @private + * @method u#slideOut + * @param { HTMLElement } el - The HTML string + * @param { Number } duration - The duration amount in milliseconds + */ + + +utils_core.slideOut = function (el, duration = 200) { + return new Promise((resolve, reject) => { + if (!el) { + const err = 'An element needs to be passed in to slideOut'; + headless_log.warn(err); + reject(new Error(err)); + return; + } + + const marker = el.getAttribute('data-slider-marker'); + + if (marker) { + el.removeAttribute('data-slider-marker'); + window.cancelAnimationFrame(marker); + } + + const end_height = utils_core.calculateElementHeight(el); + + if (window.converse_disable_effects) { + // Effects are disabled (for tests) + el.style.height = end_height + 'px'; + slideOutWrapup(el); + resolve(); + return; + } + + if (!utils_core.hasClass('collapsed', el) && !utils_core.hasClass('hidden', el)) { + resolve(); + return; + } + + const steps = duration / 17; // We assume 17ms per animation which is ~60FPS + + let height = 0; + + function draw() { + height += end_height / steps; + + if (height < end_height) { + el.style.height = height + 'px'; + el.setAttribute('data-slider-marker', window.requestAnimationFrame(draw)); + } else { + // We recalculate the height to work around an apparent + // browser bug where browsers don't know the correct + // offsetHeight beforehand. + el.removeAttribute('data-slider-marker'); + el.style.height = utils_core.calculateElementHeight(el) + 'px'; + el.style.overflow = ''; + el.style.height = ''; + resolve(); + } + } + + el.style.height = '0'; + el.style.overflow = 'hidden'; + el.classList.remove('hidden'); + el.classList.remove('collapsed'); + el.setAttribute('data-slider-marker', window.requestAnimationFrame(draw)); + }); +}; + +utils_core.slideIn = function (el, duration = 200) { + /* Hides/collapses an element by sliding it into itself. */ + return new Promise((resolve, reject) => { + if (!el) { + const err = 'An element needs to be passed in to slideIn'; + headless_log.warn(err); + return reject(new Error(err)); + } else if (utils_core.hasClass('collapsed', el)) { + return resolve(el); + } else if (window.converse_disable_effects) { + // Effects are disabled (for tests) + el.classList.add('collapsed'); + el.style.height = ''; + return resolve(el); + } + + const marker = el.getAttribute('data-slider-marker'); + + if (marker) { + el.removeAttribute('data-slider-marker'); + window.cancelAnimationFrame(marker); + } + + const original_height = el.offsetHeight, + steps = duration / 17; // We assume 17ms per animation which is ~60FPS + + let height = original_height; + el.style.overflow = 'hidden'; + + function draw() { + height -= original_height / steps; + + if (height > 0) { + el.style.height = height + 'px'; + el.setAttribute('data-slider-marker', window.requestAnimationFrame(draw)); + } else { + el.removeAttribute('data-slider-marker'); + el.classList.add('collapsed'); + el.style.height = ''; + resolve(el); + } + } + + el.setAttribute('data-slider-marker', window.requestAnimationFrame(draw)); + }); +}; + +function afterAnimationEnds(el, callback) { + el.classList.remove('visible'); + + if (lodash_es_isFunction(callback)) { + callback(); + } +} + +utils_core.isInDOM = function (el) { + return document.querySelector('body').contains(el); +}; + +utils_core.isVisible = function (el) { + if (el === null) { + return false; + } + + if (utils_core.hasClass('hidden', el)) { + return false; + } // XXX: Taken from jQuery's "visible" implementation + + + return el.offsetWidth > 0 || el.offsetHeight > 0 || el.getClientRects().length > 0; +}; + +utils_core.fadeIn = function (el, callback) { + if (!el) { + headless_log.warn('An element needs to be passed in to fadeIn'); + } + + if (window.converse_disable_effects) { + el.classList.remove('hidden'); + return afterAnimationEnds(el, callback); + } + + if (utils_core.hasClass('hidden', el)) { + el.classList.add('visible'); + el.classList.remove('hidden'); + el.addEventListener('webkitAnimationEnd', () => afterAnimationEnds(el, callback)); + el.addEventListener('animationend', () => afterAnimationEnds(el, callback)); + el.addEventListener('oanimationend', () => afterAnimationEnds(el, callback)); + } else { + afterAnimationEnds(el, callback); + } +}; +/** + * Takes an XML field in XMPP XForm (XEP-004: Data Forms) format returns a + * [TemplateResult](https://lit.polymer-project.org/api/classes/_lit_html_.templateresult.html). + * @method u#xForm2TemplateResult + * @param { XMLElement } field - the field to convert + * @param { XMLElement } stanza - the containing stanza + * @param { Object } options + * @returns { TemplateResult } + */ + + +utils_core.xForm2TemplateResult = function (field, stanza, options) { + if (field.getAttribute('type') === 'list-single' || field.getAttribute('type') === 'list-multi') { + const values = utils_core.queryChildren(field, 'value').map(el => el === null || el === void 0 ? void 0 : el.textContent); + const options = utils_core.queryChildren(field, 'option').map(option => { + var _option$querySelector; + + const value = (_option$querySelector = option.querySelector('value')) === null || _option$querySelector === void 0 ? void 0 : _option$querySelector.textContent; + return { + 'value': value, + 'label': option.getAttribute('label'), + 'selected': values.includes(value), + 'required': !!field.querySelector('required') + }; + }); + return form_select({ + options, + 'id': utils_core.getUniqueId(), + 'label': field.getAttribute('label'), + 'multiple': field.getAttribute('type') === 'list-multi', + 'name': field.getAttribute('var'), + 'required': !!field.querySelector('required') + }); + } else if (field.getAttribute('type') === 'fixed') { + var _field$querySelector; + + const text = (_field$querySelector = field.querySelector('value')) === null || _field$querySelector === void 0 ? void 0 : _field$querySelector.textContent; + return form_help({ + text + }); + } else if (field.getAttribute('type') === 'jid-multi') { + var _field$querySelector2; + + return form_textarea({ + 'name': field.getAttribute('var'), + 'label': field.getAttribute('label') || '', + 'value': (_field$querySelector2 = field.querySelector('value')) === null || _field$querySelector2 === void 0 ? void 0 : _field$querySelector2.textContent, + 'required': !!field.querySelector('required') + }); + } else if (field.getAttribute('type') === 'boolean') { + var _field$querySelector3; + + const value = (_field$querySelector3 = field.querySelector('value')) === null || _field$querySelector3 === void 0 ? void 0 : _field$querySelector3.textContent; + return form_checkbox({ + 'id': utils_core.getUniqueId(), + 'name': field.getAttribute('var'), + 'label': field.getAttribute('label') || '', + 'checked': (value === '1' || value === 'true') && 'checked="1"' || '', + 'required': !!field.querySelector('required') + }); + } else if (field.getAttribute('var') === 'url') { + var _field$querySelector4; + + return form_url({ + 'label': field.getAttribute('label') || '', + 'value': (_field$querySelector4 = field.querySelector('value')) === null || _field$querySelector4 === void 0 ? void 0 : _field$querySelector4.textContent + }); + } else if (field.getAttribute('var') === 'username') { + var _field$querySelector5; + + return form_username({ + 'domain': ' @' + options.domain, + 'name': field.getAttribute('var'), + 'type': XFORM_TYPE_MAP[field.getAttribute('type')], + 'label': field.getAttribute('label') || '', + 'value': (_field$querySelector5 = field.querySelector('value')) === null || _field$querySelector5 === void 0 ? void 0 : _field$querySelector5.textContent, + 'required': !!field.querySelector('required') + }); + } else if (field.getAttribute('var') === 'ocr') { + // Captcha + const uri = field.querySelector('uri'); + const el = html_sizzle('data[cid="' + uri.textContent.replace(/^cid:/, '') + '"]', stanza)[0]; + return form_captcha({ + 'label': field.getAttribute('label'), + 'name': field.getAttribute('var'), + 'data': el === null || el === void 0 ? void 0 : el.textContent, + 'type': uri.getAttribute('type'), + 'required': !!field.querySelector('required') + }); + } else { + var _field$querySelector6; + + const name = field.getAttribute('var'); + return form_input({ + 'id': utils_core.getUniqueId(), + 'label': field.getAttribute('label') || '', + 'name': name, + 'fixed_username': options === null || options === void 0 ? void 0 : options.fixed_username, + 'autocomplete': getAutoCompleteProperty(name, options), + 'placeholder': null, + 'required': !!field.querySelector('required'), + 'type': XFORM_TYPE_MAP[field.getAttribute('type')], + 'value': (_field$querySelector6 = field.querySelector('value')) === null || _field$querySelector6 === void 0 ? void 0 : _field$querySelector6.textContent + }); + } +}; + +Object.assign(utils_core, { + getOOBURLMarkup +}); +/* harmony default export */ const html = (utils_core); +;// CONCATENATED MODULE: ./src/shared/directives/image.js + + + + + + +const { + URI: image_URI +} = core_converse.env; + +class ImageDirective extends async_directive_c { + render(src, href, onLoad, onClick) { + return T` this.onError(src, href, onLoad, onClick)} + @load=${onLoad} + />`; + } + + onError(src, href, onLoad, onClick) { + if (isURLWithImageExtension(src)) { + this.setValue(getHyperlinkTemplate(href)); + } else { + // Before giving up and falling back to just rendering a hyperlink, + // we attach `.png` and try one more time. + // This works with some Imgur URLs + const uri = new image_URI(src); + const filename = uri.filename(); + uri.filename(`${filename}.png`); + this.setValue(renderImage(uri.toString(), href, onLoad, onClick)); + } + } + +} +/** + * lit directive which attempts to render an element from a URL. + * It will fall back to rendering an element if it can't. + * + * @param { String } src - The value that will be assigned to the `src` attribute of the `` element. + * @param { String } href - The value that will be assigned to the `href` attribute of the `` element. + * @param { Function } onLoad - A callback function to be called once the image has loaded. + * @param { Function } onClick - A callback function to be called once the image has been clicked. + */ + + +const renderImage = directive_i(ImageDirective); +;// CONCATENATED MODULE: ./src/templates/image.js + + +/* harmony default export */ const src_templates_image = (o => T`${renderImage(o.url, o.url, o.onLoad, o.onClick)}`); ;// CONCATENATED MODULE: ./src/shared/directives/styling.js -function styling_templateObject2() { - const data = styling_taggedTemplateLiteral(["", ""]); - - styling_templateObject2 = function () { - return data; - }; - - return data; -} - -function styling_templateObject() { - const data = styling_taggedTemplateLiteral(["", ""]); - - styling_templateObject = function () { - return data; - }; - - return data; -} - -function styling_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -40376,77 +43528,17 @@ class StylingDirective extends directive_s { render(txt, offset, mentions, options) { // eslint-disable-line class-methods-use-this const t = new RichText(txt, offset, mentions, Object.assign(options, { - 'show_images': false + 'show_images': false, + 'embed_videos': false, + 'embed_audio': false })); - return T(styling_templateObject(), until_o(transform(t), T(styling_templateObject2(), t))); + return T`${until_o(transform(t), T`${t}`)}`; } } const renderStylingDirectiveBody = directive_i(StylingDirective); ;// CONCATENATED MODULE: ./src/shared/styling.js -function styling_templateObject6() { - const data = shared_styling_taggedTemplateLiteral(["*", "*"]); - - styling_templateObject6 = function () { - return data; - }; - - return data; -} - -function styling_templateObject5() { - const data = shared_styling_taggedTemplateLiteral(["~", "~"]); - - styling_templateObject5 = function () { - return data; - }; - - return data; -} - -function styling_templateObject4() { - const data = shared_styling_taggedTemplateLiteral(["
", "
"]); - - styling_templateObject4 = function () { - return data; - }; - - return data; -} - -function styling_templateObject3() { - const data = shared_styling_taggedTemplateLiteral(["
```
", "
```
"], ["
\\`\\`\\`
", "
\\`\\`\\`
"]); - - styling_templateObject3 = function () { - return data; - }; - - return data; -} - -function shared_styling_templateObject2() { - const data = shared_styling_taggedTemplateLiteral(["`", "`"], ["\\`", "\\`"]); - - shared_styling_templateObject2 = function () { - return data; - }; - - return data; -} - -function shared_styling_templateObject() { - const data = shared_styling_taggedTemplateLiteral(["_", "_"]); - - shared_styling_templateObject = function () { - return data; - }; - - return data; -} - -function shared_styling_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /** * @copyright 2020, the Converse.js contributors * @license Mozilla Public License (MPLv2) @@ -40455,7 +43547,8 @@ function shared_styling_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = */ -const styling_directives = ['*', '_', '~', '`', '```', '>']; +const bracketing_directives = ['*', '_', '~', '`']; +const styling_directives = [...bracketing_directives, '```', '>']; const styling_map = { '*': { 'name': 'strong', @@ -40486,12 +43579,12 @@ const dont_escape = ['_', '>', '`', '~']; const styling_templates = { // m is the chatbox model // i is the offset of this directive relative to the start of the original message - 'emphasis': (txt, i, mentions, options) => T(shared_styling_templateObject(), renderStylingDirectiveBody(txt, i, mentions, options)), - 'preformatted': txt => T(shared_styling_templateObject2(), txt), - 'preformatted_block': txt => T(styling_templateObject3(), txt), - 'quote': (txt, i, mentions, options) => T(styling_templateObject4(), renderStylingDirectiveBody(txt, i, mentions, options)), - 'strike': (txt, i, mentions, options) => T(styling_templateObject5(), renderStylingDirectiveBody(txt, i, mentions, options)), - 'strong': (txt, i, mentions, options) => T(styling_templateObject6(), renderStylingDirectiveBody(txt, i, mentions, options)) + 'emphasis': (txt, i, mentions, options) => T`_${renderStylingDirectiveBody(txt, i, mentions, options)}_`, + 'preformatted': txt => T`\`${txt}\``, + 'preformatted_block': txt => T`
\`\`\`
${txt}
\`\`\`
`, + 'quote': (txt, i, mentions, options) => T`
${renderStylingDirectiveBody(txt, i, mentions, options)}
`, + 'strike': (txt, i, mentions, options) => T`~${renderStylingDirectiveBody(txt, i, mentions, options)}~`, + 'strong': (txt, i, mentions, options) => T`*${renderStylingDirectiveBody(txt, i, mentions, options)}*` }; /** * Checks whether a given character "d" at index "i" of "text" is a valid opening or closing directive. @@ -40505,7 +43598,7 @@ function isValidDirective(d, text, i, opening) { // Ignore directives that are parts of words // More info on the Regexes used here: https://javascript.info/regexp-unicode#unicode-properties-p if (opening) { - const regex = RegExp(dont_escape.includes(d) ? "^(\\p{L}|\\p{N})".concat(d) : "^(\\p{L}|\\p{N})\\".concat(d), 'u'); + const regex = RegExp(dont_escape.includes(d) ? `^(\\p{L}|\\p{N})${d}` : `^(\\p{L}|\\p{N})\\${d}`, 'u'); if (i > 1 && regex.test(text.slice(i - 1))) { return false; @@ -40516,16 +43609,21 @@ function isValidDirective(d, text, i, opening) { if (is_quote && i > 0 && text[i - 1] !== '\n') { // Quote directives must be on newlines return false; - } else if (!is_quote && d === text[i + 1]) { - // Immediately followed by another directive of the same type + } else if (bracketing_directives.includes(d) && text[i + 1] === d) { + // Don't consider empty bracketing directives as valid (e.g. **, `` etc.) return false; } } else { - const regex = RegExp(dont_escape.includes(d) ? "^".concat(d, "(\\p{L}|\\p{N})") : "^\\".concat(d, "(\\p{L}|\\p{N})"), 'u'); + const regex = RegExp(dont_escape.includes(d) ? `^${d}(\\p{L}|\\p{N})` : `^\\${d}(\\p{L}|\\p{N})`, 'u'); if (i < text.length - 1 && regex.test(text.slice(i))) { return false; } + + if (bracketing_directives.includes(d) && text[i - 1] === d) { + // Don't consider empty directives as valid (e.g. **, `` etc.) + return false; + } } return true; @@ -40553,20 +43651,6 @@ function getDirective(text, i, opening = true) { return d; } -/** - * Given an opening directive "d", an index "i" and the text, check whether - * we've found the closing directive. - * @param { String } d -The directive - * @param { Number } i - The directive index - * @param { String } text -The text in which the directive appears - */ - - -function isDirectiveEnd(d, i, text) { - const dtype = styling_map[d].type; // directive type - - return i === text.length || getDirective(text, i, false) === d || dtype === 'span' && text[i] === '\n'; -} /** * Given a directive "d", which occurs in "text" at index "i", check that it * has a valid closing directive and return the length from start to end of the @@ -40589,23 +43673,30 @@ function getDirectiveLength(d, text, i) { i += text.slice(i).split(/\n[^>]/).shift().length; return i - begin; } else if (styling_map[d].type === 'span') { - const line = text.slice(i + 1).split('\n').shift(); + const line = text.slice(i).split('\n').shift(); let j = 0; let idx = line.indexOf(d); while (idx !== -1) { - if (isDirectiveEnd(d, i + 1 + idx, text)) return idx + 1 + 2 * d.length; + if (getDirective(text, i + idx, false) === d) { + return idx + 2 * d.length; + } + idx = line.indexOf(d, j++); } return 0; } else { + // block directives const substring = text.slice(i + 1); let j = 0; let idx = substring.indexOf(d); while (idx !== -1) { - if (isDirectiveEnd(d, i + 1 + idx, text)) return idx + 1 + 2 * d.length; + if (getDirective(text, i + 1 + idx, false) === d) { + return idx + 1 + 2 * d.length; + } + idx = substring.indexOf(d, j++); } @@ -40642,27 +43733,6 @@ function containsDirectives(text) { } } ;// CONCATENATED MODULE: ./src/shared/rich-text.js -function rich_text_templateObject2() { - const data = rich_text_taggedTemplateLiteral(["", ""]); - - rich_text_templateObject2 = function () { - return data; - }; - - return data; -} - -function rich_text_templateObject() { - const data = rich_text_taggedTemplateLiteral(["", ""]); - - rich_text_templateObject = function () { - return data; - }; - - return data; -} - -function rich_text_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } @@ -40670,17 +43740,22 @@ function rich_text_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strin -const rich_text_u = core_converse.env.utils; + + + +const { + URI: rich_text_URI +} = core_converse.env; const rich_text_isString = s => typeof s === 'string'; // We don't render more than two line-breaks, replace extra line-breaks with // the zero-width whitespace character -const collapseLineBreaks = text => text.replace(/\n\n+/g, m => "\n".concat("\u200B".repeat(m.length - 2), "\n")); +const collapseLineBreaks = text => text.replace(/\n\n+/g, m => `\n${'\u200B'.repeat(m.length - 2)}\n`); -const tpl_mention_with_nick = o => T(rich_text_templateObject(), o.mention); +const tpl_mention_with_nick = o => T`${o.mention}`; -const tpl_mention = o => T(rich_text_templateObject2(), o.mention); +const tpl_mention = o => T`${o.mention}`; /** * @class RichText * A String subclass that is used to render rich text (i.e. text that contains @@ -40713,12 +43788,15 @@ class RichText extends String { * @param { String } options.nick - The current user's nickname (only relevant if the message is in a XEP-0045 MUC) * @param { Boolean } options.render_styling - Whether XEP-0393 message styling should be applied to the message * @param { Boolean } options.show_images - Whether image URLs should be rendered as tags. + * @param { Boolean } options.embed_videos - Whether video URLs should be rendered as
", "\n"]); - - audio_templateObject = function () { - return data; - }; - - return data; -} - -function audio_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const audio = (o => T(audio_templateObject(), o.url, o.url, o.label_download)); -;// CONCATENATED MODULE: ./src/templates/file.js -function file_templateObject() { - const data = file_taggedTemplateLiteral(["", ""]); - - file_templateObject = function () { - return data; - }; - - return data; -} - -function file_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const file = (o => T(file_templateObject(), o.url, o.label_download)); -;// CONCATENATED MODULE: ./src/templates/form_captcha.js -function form_captcha_templateObject2() { - const data = form_captcha_taggedTemplateLiteral([""]); - - form_captcha_templateObject2 = function () { - return data; - }; - - return data; -} - -function form_captcha_templateObject() { - const data = form_captcha_taggedTemplateLiteral(["\n
\n ", "\n \n \n
\n"]); - - form_captcha_templateObject = function () { - return data; - }; - - return data; -} - -function form_captcha_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const form_captcha = (o => T(form_captcha_templateObject(), o.label ? T(form_captcha_templateObject2(), o.label) : '', o.type, o.data, o.name, o.required)); -;// CONCATENATED MODULE: ./src/templates/form_checkbox.js -function form_checkbox_templateObject() { - const data = form_checkbox_taggedTemplateLiteral(["\n
\n \n \n
"]); - - form_checkbox_templateObject = function () { - return data; - }; - - return data; -} - -function form_checkbox_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const form_checkbox = (o => T(form_checkbox_templateObject(), o.id, o.name, o.checked, o.required, o.id, o.label)); -;// CONCATENATED MODULE: ./src/templates/form_help.js -function form_help_templateObject() { - const data = form_help_taggedTemplateLiteral(["

", "

"]); - - form_help_templateObject = function () { - return data; - }; - - return data; -} - -function form_help_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const form_help = (o => T(form_help_templateObject(), o.text)); -;// CONCATENATED MODULE: ./src/templates/form_input.js -function form_input_templateObject3() { - const data = form_input_taggedTemplateLiteral(["\n \n "]); - - form_input_templateObject3 = function () { - return data; - }; - - return data; -} - -function form_input_templateObject2() { - const data = form_input_taggedTemplateLiteral([""]); - - form_input_templateObject2 = function () { - return data; - }; - - return data; -} - -function form_input_templateObject() { - const data = form_input_taggedTemplateLiteral(["\n
\n ", "\n\n \n ", "\n\n \n
"]); - - form_input_templateObject = function () { - return data; - }; - - return data; -} - -function form_input_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const form_input = (o => T(form_input_templateObject(), o.type !== 'hidden' ? T(form_input_templateObject2(), o.id, o.label) : '', o.type === 'password' && o.fixed_username ? T(form_input_templateObject3(), o.fixed_username) : '', o.autocomplete || '', o.id, o.name, o.placeholder || '', o.type, o.value || '', o.required)); -;// CONCATENATED MODULE: ./src/templates/form_select.js -function form_select_templateObject2() { - const data = form_select_taggedTemplateLiteral(["\n
\n \n \n
"]); - - form_select_templateObject2 = function () { - return data; - }; - - return data; -} - -function form_select_templateObject() { - const data = form_select_taggedTemplateLiteral([""]); - - form_select_templateObject = function () { - return data; - }; - - return data; -} - -function form_select_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - - -const tpl_option = o => T(form_select_templateObject(), o.value, o.selected, o.label); - -/* harmony default export */ const form_select = (o => { - var _o$options; - - return T(form_select_templateObject2(), o.id, o.label, o.id, o.name, o.multiple, (_o$options = o.options) === null || _o$options === void 0 ? void 0 : _o$options.map(o => tpl_option(o))); -}); -;// CONCATENATED MODULE: ./src/templates/form_textarea.js -function form_textarea_templateObject() { - const data = form_textarea_taggedTemplateLiteral(["\n \n \n"]); - - form_textarea_templateObject = function () { - return data; - }; - - return data; -} - -function form_textarea_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const form_textarea = (o => T(form_textarea_templateObject(), o.label, o.name, o.value)); -;// CONCATENATED MODULE: ./src/templates/form_url.js -function form_url_templateObject() { - const data = form_url_taggedTemplateLiteral(["\n "]); - - form_url_templateObject = function () { - return data; - }; - - return data; -} - -function form_url_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const form_url = (o => T(form_url_templateObject(), o.label, o.value, o.value)); -;// CONCATENATED MODULE: ./src/templates/form_username.js -function form_username_templateObject2() { - const data = form_username_taggedTemplateLiteral([""]); - - form_username_templateObject2 = function () { - return data; - }; - - return data; -} - -function form_username_templateObject() { - const data = form_username_taggedTemplateLiteral(["\n
\n ", "\n
\n
\n \n
", "
\n
\n
\n
"]); - - form_username_templateObject = function () { - return data; - }; - - return data; -} - -function form_username_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const form_username = (o => T(form_username_templateObject(), o.label ? T(form_username_templateObject2(), o.label) : '', o.name, o.type, o.value || '', o.required, o.domain, o.domain)); -;// CONCATENATED MODULE: ./node_modules/lit/async-directive.js - -//# sourceMappingURL=async-directive.js.map - -;// CONCATENATED MODULE: ./src/shared/directives/image.js -function directives_image_templateObject() { - const data = directives_image_taggedTemplateLiteral([""]); - - directives_image_templateObject = function () { - return data; - }; - - return data; -} - -function directives_image_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - - - - - - -class ImageDirective extends async_directive_c { - render(src, href, onLoad, onClick) { - return T(directives_image_templateObject(), href, src, onClick, () => this.onError(src, href, onLoad, onClick), onLoad); - } - - onError(src, href, onLoad, onClick) { - const u = core_converse.env.utils; - - if (u.isURLWithImageExtension(src)) { - this.setValue(u.convertUrlToHyperlink(href)); - } else { - // Before giving up and falling back to just rendering a hyperlink, - // we attach `.png` and try one more time. - // This works with some Imgur URLs - const uri = new (URI_default())(src); - const filename = uri.filename(); - uri.filename("".concat(filename, ".png")); - this.setValue(renderImage(uri.toString(), href, onLoad, onClick)); - } - } - -} -/** - * lit directive which attempts to render an element from a URL. - * It will fall back to rendering an element if it can't. - * - * @param { String } src - The value that will be assigned to the `src` attribute of the `` element. - * @param { String } href - The value that will be assigned to the `href` attribute of the `` element. - * @param { Function } onLoad - A callback function to be called once the image has loaded. - * @param { Function } onClick - A callback function to be called once the image has been clicked. - */ - - -const renderImage = directive_i(ImageDirective); -;// CONCATENATED MODULE: ./src/templates/image.js -function templates_image_templateObject() { - const data = templates_image_taggedTemplateLiteral(["", ""]); - - templates_image_templateObject = function () { - return data; - }; - - return data; -} - -function templates_image_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - - -/* harmony default export */ const src_templates_image = (o => T(templates_image_templateObject(), renderImage(o.url, o.url, o.onLoad, o.onClick))); -;// CONCATENATED MODULE: ./src/templates/video.js -function video_templateObject() { - const data = video_taggedTemplateLiteral([""]); - - video_templateObject = function () { - return data; - }; - - return data; -} - -function video_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const video = (o => T(video_templateObject(), o.url)); -;// CONCATENATED MODULE: ./src/utils/html.js -function html_templateObject2() { - const data = html_taggedTemplateLiteral(["", ""]); - - html_templateObject2 = function () { - return data; - }; - - return data; -} - -function html_templateObject() { - const data = html_taggedTemplateLiteral(["\n ", ""]); - - html_templateObject = function () { - return data; - }; - - return data; -} - -function html_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/** - * @copyright 2020, the Converse.js contributors - * @license Mozilla Public License (MPLv2) - * @description This is the DOM/HTML utilities module. - */ - - - - - - - - - - - - - - - - - - -const { - sizzle: html_sizzle -} = core_converse.env; -const APPROVED_URL_PROTOCOLS = ['http', 'https', 'xmpp', 'mailto']; - -function getAutoCompleteProperty(name, options) { - return { - 'muc#roomconfig_lang': 'language', - 'muc#roomconfig_roomsecret': (options === null || options === void 0 ? void 0 : options.new_password) ? 'new-password' : 'current-password' - }[name]; -} - -const XFORM_TYPE_MAP = { - 'text-private': 'password', - 'text-single': 'text', - 'fixed': 'label', - 'boolean': 'checkbox', - 'hidden': 'hidden', - 'jid-multi': 'textarea', - 'list-single': 'dropdown', - 'list-multi': 'dropdown' -}; - -function slideOutWrapup(el) { - /* Wrapup function for slideOut. */ - el.removeAttribute('data-slider-marker'); - el.classList.remove('collapsed'); - el.style.overflow = ""; - el.style.height = ""; -} - -function getURI(url) { - try { - return url instanceof (URI_default()) ? url : new (URI_default())(url); - } catch (error) { - headless_log.debug(error); - return null; - } -} - -utils_core.getURI = getURI; - -function checkTLS(uri) { - return window.location.protocol === 'http:' || window.location.protocol === 'https:' && uri.protocol().toLowerCase() === "https"; -} - -function checkFileTypes(types, url) { - const uri = getURI(url); - - if (uri === null || !checkTLS(uri)) { - return false; - } - - const filename = uri.filename().toLowerCase(); - return !!types.filter(ext => filename.endsWith(ext)).length; -} - -utils_core.isAudioURL = url => checkFileTypes(['.ogg', '.mp3', '.m4a'], url); - -utils_core.isVideoURL = url => checkFileTypes(['.mp4', '.webm'], url); - -utils_core.isURLWithImageExtension = url => checkFileTypes(['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.svg'], url); - -utils_core.isImageURL = url => { - const regex = api.settings.get('image_urls_regex'); - return (regex === null || regex === void 0 ? void 0 : regex.test(url)) || utils_core.isURLWithImageExtension(url); -}; - -utils_core.isImageDomainAllowed = url => { - const show_images_inline = api.settings.get('show_images_inline'); - - if (!Array.isArray(show_images_inline)) { - return true; - } - - try { - const image_domain = getURI(url).domain(); - return show_images_inline.includes(image_domain); - } catch (error) { - headless_log.debug(error); - return true; - } -}; - -function getFileName(uri) { - try { - return decodeURI(uri.filename()); - } catch (error) { - headless_log.debug(error); - return uri.filename(); - } -} - -function renderAudioURL(_converse, uri) { - const { - __ - } = _converse; - return audio({ - 'url': uri.toString(), - 'label_download': __('Download audio file "%1$s"', getFileName(uri)) - }); -} - -function renderImageURL(_converse, uri) { - const { - __ - } = _converse; - return file({ - 'url': uri.toString(), - 'label_download': __('Download image file "%1$s"', getFileName(uri)) - }); -} - -function renderFileURL(_converse, uri) { - const { - __ - } = _converse; - return file({ - 'url': uri.toString(), - 'label_download': __('Download file "%1$s"', getFileName(uri)) - }); -} -/** - * Returns the markup for a URL that points to a downloadable asset - * (such as a video, image or audio file). - * @method u#getOOBURLMarkup - * @param { String } url - * @returns { String } - */ - - -utils_core.getOOBURLMarkup = function (_converse, url) { - const uri = getURI(url); - - if (uri === null) { - return url; - } - - if (utils_core.isVideoURL(uri)) { - return video({ - url - }); - } else if (utils_core.isAudioURL(uri)) { - return renderAudioURL(_converse, uri); - } else if (utils_core.isImageURL(uri)) { - return renderImageURL(_converse, uri); - } else { - return renderFileURL(_converse, uri); - } -}; -/** - * Return the height of the passed in DOM element, - * based on the heights of its children. - * @method u#calculateElementHeight - * @param {HTMLElement} el - * @returns {integer} - */ - - -utils_core.calculateElementHeight = function (el) { - return Array.from(el.children).reduce((result, child) => result + child.offsetHeight, 0); -}; - -utils_core.getNextElement = function (el, selector = '*') { - let next_el = el.nextElementSibling; - - while (next_el !== null && !html_sizzle.matchesSelector(next_el, selector)) { - next_el = next_el.nextElementSibling; - } - - return next_el; -}; - -utils_core.getPreviousElement = function (el, selector = '*') { - let prev_el = el.previousElementSibling; - - while (prev_el !== null && !html_sizzle.matchesSelector(prev_el, selector)) { - prev_el = prev_el.previousElementSibling; - } - - return prev_el; -}; - -utils_core.getFirstChildElement = function (el, selector = '*') { - let first_el = el.firstElementChild; - - while (first_el !== null && !html_sizzle.matchesSelector(first_el, selector)) { - first_el = first_el.nextElementSibling; - } - - return first_el; -}; - -utils_core.getLastChildElement = function (el, selector = '*') { - let last_el = el.lastElementChild; - - while (last_el !== null && !html_sizzle.matchesSelector(last_el, selector)) { - last_el = last_el.previousElementSibling; - } - - return last_el; -}; - -utils_core.hasClass = function (className, el) { - return el instanceof Element && el.classList.contains(className); -}; - -utils_core.toggleClass = function (className, el) { - utils_core.hasClass(className, el) ? utils_core.removeClass(className, el) : utils_core.addClass(className, el); -}; -/** - * Add a class to an element. - * @method u#addClass - * @param {string} className - * @param {Element} el - */ - - -utils_core.addClass = function (className, el) { - el instanceof Element && el.classList.add(className); - return el; -}; -/** - * Remove a class from an element. - * @method u#removeClass - * @param {string} className - * @param {Element} el - */ - - -utils_core.removeClass = function (className, el) { - el instanceof Element && el.classList.remove(className); - return el; -}; - -utils_core.removeElement = function (el) { - el instanceof Element && el.parentNode && el.parentNode.removeChild(el); - return el; -}; - -utils_core.getElementFromTemplateResult = function (tr) { - const div = document.createElement('div'); - V(tr, div); - return div.firstElementChild; -}; - -utils_core.showElement = el => { - utils_core.removeClass('collapsed', el); - utils_core.removeClass('hidden', el); -}; - -utils_core.hideElement = function (el) { - el instanceof Element && el.classList.add('hidden'); - return el; -}; - -utils_core.ancestor = function (el, selector) { - let parent = el; - - while (parent !== null && !html_sizzle.matchesSelector(parent, selector)) { - parent = parent.parentElement; - } - - return parent; -}; -/** - * Return the element's siblings until one matches the selector. - * @private - * @method u#nextUntil - * @param { HTMLElement } el - * @param { String } selector - */ - - -utils_core.nextUntil = function (el, selector) { - const matches = []; - let sibling_el = el.nextElementSibling; - - while (sibling_el !== null && !sibling_el.matches(selector)) { - matches.push(sibling_el); - sibling_el = sibling_el.nextElementSibling; - } - - return matches; -}; -/** - * Helper method that replace HTML-escaped symbols with equivalent characters - * (e.g. transform occurrences of '&' to '&') - * @private - * @method u#unescapeHTML - * @param { String } string - a String containing the HTML-escaped symbols. - */ - - -utils_core.unescapeHTML = function (string) { - var div = document.createElement('div'); - div.innerHTML = string; - return div.innerText; -}; - -utils_core.escapeHTML = function (string) { - return string.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """); -}; - -utils_core.convertToImageTag = function (url, onLoad, onClick) { - return src_templates_image({ - url, - onClick, - onLoad - }); -}; - -function onClickXMPPURI(ev) { - ev.preventDefault(); - api.rooms.open(ev.target.href); -} - -utils_core.convertURIoHyperlink = function (uri, urlAsTyped) { - let normalized_url = uri.normalize()._string; - - const pretty_url = uri._parts.urn ? normalized_url : uri.readable(); - const visible_url = urlAsTyped || pretty_url; - - if (!uri._parts.protocol && !normalized_url.startsWith('http://') && !normalized_url.startsWith('https://')) { - normalized_url = 'http://' + normalized_url; - } - - if (uri._parts.protocol === 'xmpp' && uri._parts.query === 'join') { - return T(html_templateObject(), onClickXMPPURI, normalized_url, visible_url); - } - - return T(html_templateObject2(), normalized_url, visible_url); -}; - -function isProtocolApproved(protocol, safeProtocolsList = APPROVED_URL_PROTOCOLS) { - return !!safeProtocolsList.includes(protocol); -} // Will return false if URL is malformed or contains disallowed characters - - -function isUrlValid(urlString) { - try { - const url = new URL(urlString); - return !!url; - } catch (error) { - return false; - } -} - -utils_core.convertUrlToHyperlink = function (url) { - const http_url = RegExp('^w{3}.', 'ig').test(url) ? "http://".concat(url) : url; - const uri = getURI(url); - - if (uri !== null && isUrlValid(http_url) && (isProtocolApproved(uri._parts.protocol) || !uri._parts.protocol)) { - return this.convertURIoHyperlink(uri, url); - } - - return url; -}; - -utils_core.filterQueryParamsFromURL = function (url) { - const paramsArray = api.settings.get("filter_url_query_params"); - if (!paramsArray) return url; - const parsed_uri = getURI(url); - return parsed_uri.removeQuery(paramsArray).toString(); -}; - -utils_core.slideInAllElements = function (elements, duration = 300) { - return Promise.all(Array.from(elements).map(e => utils_core.slideIn(e, duration))); -}; - -utils_core.slideToggleElement = function (el, duration) { - if (utils_core.hasClass('collapsed', el) || utils_core.hasClass('hidden', el)) { - return utils_core.slideOut(el, duration); - } else { - return utils_core.slideIn(el, duration); - } -}; -/** - * Shows/expands an element by sliding it out of itself - * @private - * @method u#slideOut - * @param { HTMLElement } el - The HTML string - * @param { Number } duration - The duration amount in milliseconds - */ - - -utils_core.slideOut = function (el, duration = 200) { - return new Promise((resolve, reject) => { - if (!el) { - const err = "An element needs to be passed in to slideOut"; - headless_log.warn(err); - reject(new Error(err)); - return; - } - - const marker = el.getAttribute('data-slider-marker'); - - if (marker) { - el.removeAttribute('data-slider-marker'); - window.cancelAnimationFrame(marker); - } - - const end_height = utils_core.calculateElementHeight(el); - - if (window.converse_disable_effects) { - // Effects are disabled (for tests) - el.style.height = end_height + 'px'; - slideOutWrapup(el); - resolve(); - return; - } - - if (!utils_core.hasClass('collapsed', el) && !utils_core.hasClass('hidden', el)) { - resolve(); - return; - } - - const steps = duration / 17; // We assume 17ms per animation which is ~60FPS - - let height = 0; - - function draw() { - height += end_height / steps; - - if (height < end_height) { - el.style.height = height + 'px'; - el.setAttribute('data-slider-marker', window.requestAnimationFrame(draw)); - } else { - // We recalculate the height to work around an apparent - // browser bug where browsers don't know the correct - // offsetHeight beforehand. - el.removeAttribute('data-slider-marker'); - el.style.height = utils_core.calculateElementHeight(el) + 'px'; - el.style.overflow = ""; - el.style.height = ""; - resolve(); - } - } - - el.style.height = '0'; - el.style.overflow = 'hidden'; - el.classList.remove('hidden'); - el.classList.remove('collapsed'); - el.setAttribute('data-slider-marker', window.requestAnimationFrame(draw)); - }); -}; - -utils_core.slideIn = function (el, duration = 200) { - /* Hides/collapses an element by sliding it into itself. */ - return new Promise((resolve, reject) => { - if (!el) { - const err = "An element needs to be passed in to slideIn"; - headless_log.warn(err); - return reject(new Error(err)); - } else if (utils_core.hasClass('collapsed', el)) { - return resolve(el); - } else if (window.converse_disable_effects) { - // Effects are disabled (for tests) - el.classList.add('collapsed'); - el.style.height = ""; - return resolve(el); - } - - const marker = el.getAttribute('data-slider-marker'); - - if (marker) { - el.removeAttribute('data-slider-marker'); - window.cancelAnimationFrame(marker); - } - - const original_height = el.offsetHeight, - steps = duration / 17; // We assume 17ms per animation which is ~60FPS - - let height = original_height; - el.style.overflow = 'hidden'; - - function draw() { - height -= original_height / steps; - - if (height > 0) { - el.style.height = height + 'px'; - el.setAttribute('data-slider-marker', window.requestAnimationFrame(draw)); - } else { - el.removeAttribute('data-slider-marker'); - el.classList.add('collapsed'); - el.style.height = ""; - resolve(el); - } - } - - el.setAttribute('data-slider-marker', window.requestAnimationFrame(draw)); - }); -}; - -function afterAnimationEnds(el, callback) { - el.classList.remove('visible'); - - if (lodash_es_isFunction(callback)) { - callback(); - } -} - -utils_core.isInDOM = function (el) { - return document.querySelector('body').contains(el); -}; - -utils_core.isVisible = function (el) { - if (el === null) { - return false; - } - - if (utils_core.hasClass('hidden', el)) { - return false; - } // XXX: Taken from jQuery's "visible" implementation - - - return el.offsetWidth > 0 || el.offsetHeight > 0 || el.getClientRects().length > 0; -}; - -utils_core.fadeIn = function (el, callback) { - if (!el) { - headless_log.warn("An element needs to be passed in to fadeIn"); - } - - if (window.converse_disable_effects) { - el.classList.remove('hidden'); - return afterAnimationEnds(el, callback); - } - - if (utils_core.hasClass('hidden', el)) { - el.classList.add('visible'); - el.classList.remove('hidden'); - el.addEventListener("webkitAnimationEnd", () => afterAnimationEnds(el, callback)); - el.addEventListener("animationend", () => afterAnimationEnds(el, callback)); - el.addEventListener("oanimationend", () => afterAnimationEnds(el, callback)); - } else { - afterAnimationEnds(el, callback); - } -}; -/** - * Takes an XML field in XMPP XForm (XEP-004: Data Forms) format returns a - * [TemplateResult](https://lit.polymer-project.org/api/classes/_lit_html_.templateresult.html). - * @method u#xForm2TemplateResult - * @param { XMLElement } field - the field to convert - * @param { XMLElement } stanza - the containing stanza - * @param { Object } options - * @returns { TemplateResult } - */ - - -utils_core.xForm2TemplateResult = function (field, stanza, options) { - if (field.getAttribute('type') === 'list-single' || field.getAttribute('type') === 'list-multi') { - const values = utils_core.queryChildren(field, 'value').map(el => el === null || el === void 0 ? void 0 : el.textContent); - const options = utils_core.queryChildren(field, 'option').map(option => { - var _option$querySelector; - - const value = (_option$querySelector = option.querySelector('value')) === null || _option$querySelector === void 0 ? void 0 : _option$querySelector.textContent; - return { - 'value': value, - 'label': option.getAttribute('label'), - 'selected': values.includes(value), - 'required': !!field.querySelector('required') - }; - }); - return form_select({ - options, - 'id': utils_core.getUniqueId(), - 'label': field.getAttribute('label'), - 'multiple': field.getAttribute('type') === 'list-multi', - 'name': field.getAttribute('var'), - 'required': !!field.querySelector('required') - }); - } else if (field.getAttribute('type') === 'fixed') { - var _field$querySelector; - - const text = (_field$querySelector = field.querySelector('value')) === null || _field$querySelector === void 0 ? void 0 : _field$querySelector.textContent; - return form_help({ - text - }); - } else if (field.getAttribute('type') === 'jid-multi') { - var _field$querySelector2; - - return form_textarea({ - 'name': field.getAttribute('var'), - 'label': field.getAttribute('label') || '', - 'value': (_field$querySelector2 = field.querySelector('value')) === null || _field$querySelector2 === void 0 ? void 0 : _field$querySelector2.textContent, - 'required': !!field.querySelector('required') - }); - } else if (field.getAttribute('type') === 'boolean') { - var _field$querySelector3; - - const value = (_field$querySelector3 = field.querySelector('value')) === null || _field$querySelector3 === void 0 ? void 0 : _field$querySelector3.textContent; - return form_checkbox({ - 'id': utils_core.getUniqueId(), - 'name': field.getAttribute('var'), - 'label': field.getAttribute('label') || '', - 'checked': (value === "1" || value === "true") && 'checked="1"' || '', - 'required': !!field.querySelector('required') - }); - } else if (field.getAttribute('var') === 'url') { - var _field$querySelector4; - - return form_url({ - 'label': field.getAttribute('label') || '', - 'value': (_field$querySelector4 = field.querySelector('value')) === null || _field$querySelector4 === void 0 ? void 0 : _field$querySelector4.textContent - }); - } else if (field.getAttribute('var') === 'username') { - var _field$querySelector5; - - return form_username({ - 'domain': ' @' + options.domain, - 'name': field.getAttribute('var'), - 'type': XFORM_TYPE_MAP[field.getAttribute('type')], - 'label': field.getAttribute('label') || '', - 'value': (_field$querySelector5 = field.querySelector('value')) === null || _field$querySelector5 === void 0 ? void 0 : _field$querySelector5.textContent, - 'required': !!field.querySelector('required') - }); - } else if (field.getAttribute('var') === 'ocr') { - // Captcha - const uri = field.querySelector('uri'); - const el = html_sizzle('data[cid="' + uri.textContent.replace(/^cid:/, '') + '"]', stanza)[0]; - return form_captcha({ - 'label': field.getAttribute('label'), - 'name': field.getAttribute('var'), - 'data': el === null || el === void 0 ? void 0 : el.textContent, - 'type': uri.getAttribute('type'), - 'required': !!field.querySelector('required') - }); - } else { - var _field$querySelector6; - - const name = field.getAttribute('var'); - return form_input({ - 'id': utils_core.getUniqueId(), - 'label': field.getAttribute('label') || '', - 'name': name, - 'fixed_username': options === null || options === void 0 ? void 0 : options.fixed_username, - 'autocomplete': getAutoCompleteProperty(name, options), - 'placeholder': null, - 'required': !!field.querySelector('required'), - 'type': XFORM_TYPE_MAP[field.getAttribute('type')], - 'value': (_field$querySelector6 = field.querySelector('value')) === null || _field$querySelector6 === void 0 ? void 0 : _field$querySelector6.textContent - }); - } -}; - -/* harmony default export */ const html = (utils_core); ;// CONCATENATED MODULE: ./src/shared/dom-navigator.js /** * @module dom-navigator @@ -42223,11 +44321,11 @@ class DOMNavigator { static get DEFAULTS() { return { - home: ["".concat(keycodes.SHIFT, "+").concat(keycodes.UP_ARROW)], - end: ["".concat(keycodes.SHIFT, "+").concat(keycodes.DOWN_ARROW)], + home: [`${keycodes.SHIFT}+${keycodes.UP_ARROW}`], + end: [`${keycodes.SHIFT}+${keycodes.DOWN_ARROW}`], up: [keycodes.UP_ARROW], down: [keycodes.DOWN_ARROW], - left: [keycodes.LEFT_ARROW, "".concat(keycodes.SHIFT, "+").concat(keycodes.TAB)], + left: [keycodes.LEFT_ARROW, `${keycodes.SHIFT}+${keycodes.TAB}`], right: [keycodes.RIGHT_ARROW, keycodes.TAB], getSelector: null, jump_to_picked: null, @@ -42567,7 +44665,7 @@ class DOMNavigator { handleKeydown(ev) { const keys = keycodes; - const direction = ev.shiftKey ? this.keys["".concat(keys.SHIFT, "+").concat(ev.which)] : this.keys[ev.which]; + const direction = ev.shiftKey ? this.keys[`${keys.SHIFT}+${ev.which}`] : this.keys[ev.which]; if (direction) { ev.preventDefault(); @@ -42580,52 +44678,53 @@ class DOMNavigator { } /* harmony default export */ const dom_navigator = (DOMNavigator); -;// CONCATENATED MODULE: ./src/shared/components/dropdown.js -function dropdown_templateObject() { - const data = dropdown_taggedTemplateLiteral(["\n
\n \n
\n ", "\n
\n
\n "]); - - dropdown_templateObject = function () { - return data; - }; - - return data; -} - -function dropdown_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +;// CONCATENATED MODULE: ./src/shared/components/dropdownbase.js +const dropdownbase_u = core_converse.env.utils; +class DropdownBase extends CustomElement { + connectedCallback() { + super.connectedCallback(); + this.registerEvents(); + } + registerEvents() { + this.clickOutside = ev => this._clickOutside(ev); + document.addEventListener('click', this.clickOutside); + } - -const dropdown_u = core_converse.env.utils; -class BaseDropdown extends CustomElement { firstUpdated() { + super.firstUpdated(); this.menu = this.querySelector('.dropdown-menu'); - this.dropdown = this.firstElementChild; - this.button = this.dropdown.querySelector('button'); - this.dropdown.addEventListener('click', ev => this.toggleMenu(ev)); - this.dropdown.addEventListener('keyup', ev => this.handleKeyUp(ev)); - document.addEventListener('click', ev => !this.contains(ev.composedPath()[0]) && this.hideMenu(ev)); + this.button = this.querySelector('button'); + this.addEventListener('click', ev => this.toggleMenu(ev)); + this.addEventListener('keyup', ev => this.handleKeyUp(ev)); + } + + _clickOutside(ev) { + if (!this.contains(ev.composedPath()[0])) { + this.hideMenu(ev); + } } hideMenu() { var _this$button, _this$button2; - dropdown_u.removeClass('show', this.menu); + dropdownbase_u.removeClass('show', this.menu); (_this$button = this.button) === null || _this$button === void 0 ? void 0 : _this$button.setAttribute('aria-expanded', false); (_this$button2 = this.button) === null || _this$button2 === void 0 ? void 0 : _this$button2.blur(); } showMenu() { - dropdown_u.addClass('show', this.menu); + dropdownbase_u.addClass('show', this.menu); this.button.setAttribute('aria-expanded', true); } toggleMenu(ev) { ev.preventDefault(); - if (dropdown_u.hasClass('show', this.menu)) { + if (dropdownbase_u.hasClass('show', this.menu)) { this.hideMenu(); } else { this.showMenu(); @@ -42635,13 +44734,22 @@ class BaseDropdown extends CustomElement { handleKeyUp(ev) { if (ev.keyCode === core_converse.keycodes.ESCAPE) { this.hideMenu(); - } else if (ev.keyCode === core_converse.keycodes.DOWN_ARROW && this.navigator && !this.navigator.enabled) { - this.enableArrowNavigation(ev); } } + disconnectedCallback() { + document.removeEventListener('click', this.clickOutside); + super.disconnectedCallback(); + } + } -class DropdownList extends BaseDropdown { +;// CONCATENATED MODULE: ./src/shared/components/dropdown.js + + + + + +class Dropdown extends DropdownBase { static get properties() { return { 'icon_classes': { @@ -42655,12 +44763,14 @@ class DropdownList extends BaseDropdown { render() { const icon_classes = this.icon_classes || "fa fa-bars"; - return T(dropdown_templateObject(), icon_classes, this.items.map(b => until_o(b, ''))); - } - - hideMenu() { - super.hideMenu(); - this.navigator.disable(); + return T` + + + `; } firstUpdated() { @@ -42668,6 +44778,13 @@ class DropdownList extends BaseDropdown { this.initArrowNavigation(); } + hideMenu() { + var _this$navigator; + + super.hideMenu(); + (_this$navigator = this.navigator) === null || _this$navigator === void 0 ? void 0 : _this$navigator.disable(); + } + initArrowNavigation() { if (!this.navigator) { const options = { @@ -42697,35 +44814,33 @@ class DropdownList extends BaseDropdown { } } -api.elements.define('converse-dropdown', DropdownList); +api.elements.define('converse-dropdown', Dropdown); ;// CONCATENATED MODULE: ./src/modals/templates/message-versions.js -function message_versions_templateObject2() { - const data = message_versions_taggedTemplateLiteral(["

: ", "

"]); - - message_versions_templateObject2 = function () { - return data; - }; - - return data; -} - -function message_versions_templateObject() { - const data = message_versions_taggedTemplateLiteral(["\n
\n
\n
\n

", "

\n ", "\n
\n
\n

Older versions

\n ", "\n
\n

Current version

\n

", "

\n
\n
", "
\n
\n
\n"]); - - message_versions_templateObject = function () { - return data; - }; - - return data; -} - -function message_versions_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const message_versions = (o => T(message_versions_templateObject(), __('Message versions'), modal_header_close_button, Object.keys(o.older_versions).map(k => T(message_versions_templateObject2(), dayjs_min_default()(k).format('MMM D, YYYY, HH:mm:ss'), o.older_versions[k])), o.message, modal_close_button)); +const { + dayjs: message_versions_dayjs +} = core_converse.env; +/* harmony default export */ const message_versions = (o => T` + +`); ;// CONCATENATED MODULE: ./src/modals/message-versions.js @@ -42745,7 +44860,7 @@ class AvatarDirective extends directive_s { render(o) { // eslint-disable-line class-methods-use-this const data = { - 'classes': o.classes ? "".concat(o.classes, " avatar") : 'avatar', + 'classes': o.classes ? `${o.classes} avatar` : 'avatar', 'height': o.width || 36, 'image': o.image, 'image_type': o.image_type, @@ -42758,23 +44873,26 @@ class AvatarDirective extends directive_s { const renderAvatar = directive_i(AvatarDirective); ;// CONCATENATED MODULE: ./src/modals/templates/occupant.js -function occupant_templateObject() { - const data = occupant_taggedTemplateLiteral(["\n
\n
\n
\n
", "
\n ", "\n
\n
\n ", "\n
\n
\n ", "\n
\n
\n
\n "]); - - occupant_templateObject = function () { - return data; - }; - - return data; -} - -function occupant_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const templates_occupant = (o => { - return T(occupant_templateObject(), o.display_name, modal_header_close_button, renderAvatar(o.avatar_data), modal_close_button); + return T` + + `; }); ;// CONCATENATED MODULE: ./src/modals/occupant.js @@ -42821,118 +44939,6 @@ const OccupantModal = base.extend({ shared_converse.OccupantModal = OccupantModal; /* harmony default export */ const modals_occupant = (OccupantModal); ;// CONCATENATED MODULE: ./src/modals/templates/user-details.js -function _templateObject11() { - const data = user_details_taggedTemplateLiteral(["

", "

"]); - - _templateObject11 = function () { - return data; - }; - - return data; -} - -function _templateObject10() { - const data = user_details_taggedTemplateLiteral(["

", "

"]); - - _templateObject10 = function () { - return data; - }; - - return data; -} - -function _templateObject9() { - const data = user_details_taggedTemplateLiteral(["

", "

"]); - - _templateObject9 = function () { - return data; - }; - - return data; -} - -function _templateObject8() { - const data = user_details_taggedTemplateLiteral(["

", "

"]); - - _templateObject8 = function () { - return data; - }; - - return data; -} - -function user_details_templateObject7() { - const data = user_details_taggedTemplateLiteral(["

", "

"]); - - user_details_templateObject7 = function () { - return data; - }; - - return data; -} - -function user_details_templateObject6() { - const data = user_details_taggedTemplateLiteral(["
", "
"]); - - user_details_templateObject6 = function () { - return data; - }; - - return data; -} - -function user_details_templateObject5() { - const data = user_details_taggedTemplateLiteral(["\n
\n
\n
\n
", "
\n ", "\n
\n
\n ", "\n ", "\n

", "

\n ", "\n ", "\n ", "\n ", "\n\n ", "\n
\n
\n ", "\n \n ", "\n\n
\n
\n
\n "]); - - user_details_templateObject5 = function () { - return data; - }; - - return data; -} - -function user_details_templateObject4() { - const data = user_details_taggedTemplateLiteral(["\n \n "]); - - user_details_templateObject4 = function () { - return data; - }; - - return data; -} - -function user_details_templateObject3() { - const data = user_details_taggedTemplateLiteral(["
  • ", "
  • "]); - - user_details_templateObject3 = function () { - return data; - }; - - return data; -} - -function user_details_templateObject2() { - const data = user_details_taggedTemplateLiteral(["\n
    \n
      \n
    • ", "
    • \n ", "\n
    \n "]); - - user_details_templateObject2 = function () { - return data; - }; - - return data; -} - -function user_details_templateObject() { - const data = user_details_taggedTemplateLiteral(["\n
  • \n
    \n
    \n \n \n
    \n ", "\n
    \n
  • \n "]); - - user_details_templateObject = function () { - return data; - }; - - return data; -} - -function user_details_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -42944,7 +44950,21 @@ const device_fingerprint = o => { const i18n_untrusted = __('Untrusted'); if (o.device.get('bundle') && o.device.get('bundle').fingerprint) { - return T(user_details_templateObject(), o.device.get('trusted') !== -1 ? 'btn-primary active' : 'btn-secondary', o.device.get('id'), o.device.get('trusted') !== -1, i18n_trusted, o.device.get('trusted') !== -1 ? 'btn-primary active' : 'btn-secondary', o.device.get('id'), o.device.get('trusted') === -1, i18n_untrusted, o.utils.formatFingerprint(o.device.get('bundle').fingerprint)); + return T` +
  • +
    +
    + + +
    + ${o.utils.formatFingerprint(o.device.get('bundle').fingerprint)} +
    +
  • + `; } else { return ''; } @@ -42956,15 +44976,25 @@ const fingerprints = o => { const i18n_no_devices = __("No OMEMO-enabled devices found"); const devices = o.view.devicelist.devices; - return T(user_details_templateObject2(), i18n_fingerprints, devices.length ? devices.map(device => device_fingerprint(Object.assign({ + return T` +
    +
      +
    • ${i18n_fingerprints}
    • + ${devices.length ? devices.map(device => device_fingerprint(Object.assign({ device - }, o))) : T(user_details_templateObject3(), i18n_no_devices)); + }, o))) : T`
    • ${i18n_no_devices}
    • `} +
    + `; }; const remove_button = o => { const i18n_remove_contact = __('Remove as contact'); - return T(user_details_templateObject4(), o.removeContact, i18n_remove_contact); + return T` + + `; }; /* harmony default export */ const user_details = (o => { @@ -42990,7 +45020,33 @@ const remove_button = o => { 'height': '120', 'width': '120' }; - return T(user_details_templateObject5(), o.display_name, modal_header_close_button, o.image ? T(user_details_templateObject6(), avatar(Object.assign(o, avatar_data))) : '', o.fullname ? T(user_details_templateObject7(), i18n_full_name, o.fullname) : '', i18n_address, o.jid, o.jid, o.nickname ? T(_templateObject8(), i18n_nickname, o.nickname) : '', o.url ? T(_templateObject9(), i18n_url, o.url, o.url) : '', o.email ? T(_templateObject10(), i18n_email, o.email, o.email) : '', o.role ? T(_templateObject11(), i18n_role, o.role) : '', o._converse.pluggable.plugins['converse-omemo'].enabled(o._converse) ? fingerprints(o) : '', modal_close_button, i18n_refresh, o.allow_contact_removal && o.is_roster_contact ? remove_button(o) : ''); + return T` + + `; }); ;// CONCATENATED MODULE: ./src/modals/user-details.js @@ -43098,37 +45154,40 @@ const UserDetailsModal = base.extend({ }); shared_converse.UserDetailsModal = UserDetailsModal; /* harmony default export */ const modals_user_details = (UserDetailsModal); -// EXTERNAL MODULE: ./node_modules/filesize/lib/filesize.min.js -var lib_filesize_min = __webpack_require__(6755); -var lib_filesize_min_default = /*#__PURE__*/__webpack_require__.n(lib_filesize_min); ;// CONCATENATED MODULE: ./src/shared/chat/templates/unfurl.js -function unfurl_templateObject2() { - const data = unfurl_taggedTemplateLiteral([""]); - unfurl_templateObject2 = function () { - return data; - }; - return data; + +function isValidURL(url) { + // We don't consider relative URLs as valid + return !!getURI(url).host(); } -function unfurl_templateObject() { - const data = unfurl_taggedTemplateLiteral(["
    \n ", "\n
    \n
    ", "
    \n

    \n

    ", "

    \n
    \n
    "]); - - unfurl_templateObject = function () { - return data; - }; - - return data; +function isValidImage(image) { + return image && isImageDomainAllowed(image) && isValidURL(image); } -function unfurl_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +const tpl_url_wrapper = (o, wrapped_template) => o.url && isValidURL(o.url) ? T`${wrapped_template(o)}` : wrapped_template(o); +const tpl_image = o => T``; - -const unfurl_u = core_converse.env.utils; /* harmony default export */ const unfurl = (o => { - return T(unfurl_templateObject(), o.image && unfurl_u.isImageDomainAllowed(o.image) ? T(unfurl_templateObject2(), o.url, o.image, o.onload) : '', o.url, o.title, o.description, o.url, unfurl_u.getURI(o.url).domain()); + const valid_image = isValidImage(o.image); + const has_body_info = o.title || o.description || o.url; + + if (valid_image || has_body_info) { + return T`
    + ${valid_image ? tpl_url_wrapper(o, tpl_image) : ''} + ${has_body_info ? T` +
    + ${o.title ? tpl_url_wrapper(o, o => T`
    ${o.title}
    `) : ''} + ${o.description ? T`

    ` : ''} + ${o.url ? T`

    ${getURI(o.url).domain()}

    ` : ''} +
    ` : ''} +
    `; + } else { + return ''; + } }); // EXTERNAL MODULE: ./src/shared/chat/styles/unfurl.scss var styles_unfurl = __webpack_require__(4867); @@ -43179,78 +45238,6 @@ class MessageUnfurl extends CustomElement { } api.elements.define('converse-message-unfurl', MessageUnfurl); ;// CONCATENATED MODULE: ./src/shared/chat/templates/message.js -function message_templateObject7() { - const data = message_taggedTemplateLiteral([""]); - - message_templateObject7 = function () { - return data; - }; - - return data; -} - -function message_templateObject6() { - const data = message_taggedTemplateLiteral(["\n  \n ", "", " "]); - - message_templateObject6 = function () { - return data; - }; - - return data; -} - -function message_templateObject5() { - const data = message_taggedTemplateLiteral([""]); - - message_templateObject5 = function () { - return data; - }; - - return data; -} - -function message_templateObject4() { - const data = message_taggedTemplateLiteral(["", ""]); - - message_templateObject4 = function () { - return data; - }; - - return data; -} - -function message_templateObject3() { - const data = message_taggedTemplateLiteral(["\n \n ", "\n ", "\n \n ", "\n "]); - - message_templateObject3 = function () { - return data; - }; - - return data; -} - -function message_templateObject2() { - const data = message_taggedTemplateLiteral(["

    ", "
    "]); - - message_templateObject2 = function () { - return data; - }; - - return data; -} - -function message_templateObject() { - const data = message_taggedTemplateLiteral(["\n ", "\n
    \n\n \n \n\n ", "\n
    \n\n ", "\n
    \n
    \n ", "\n ", "\n
    \n \n
    \n\n ", "\n
    \n
    "]); - - message_templateObject = function () { - return data; - }; - - return data; -} - -function message_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -43260,159 +45247,193 @@ function message_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings const i18n_new_messages = __('New messages'); - return T(message_templateObject(), o.is_first_unread ? T(message_templateObject2(), i18n_new_messages) : '', el.getExtraMessageClasses(), o.time, o.msgid, o.from, o.is_encrypted, o.msgid, el.showUserModal, o.should_show_avatar ? renderAvatar(el.getAvatarData()) : '', o.sender, o.is_me_message ? 'chat-msg__content--action' : '', !o.is_me_message ? T(message_templateObject3(), el.showUserModal, o.username, o.hats.map(h => T(message_templateObject4(), h.title)), el.model.get('edited') || el.model.get('time'), o.pretty_time, o.is_encrypted ? T(message_templateObject5()) : '') : '', o.message_type, o.received ? 'chat-msg__body--received' : '', o.is_delayed ? 'chat-msg__body--delayed' : '', o.is_me_message ? T(message_templateObject6(), o.edited || o.time, o.pretty_time, o.is_me_message ? '**' : '', o.username) : '', o.is_retracted ? el.renderRetraction() : el.renderMessageText(), el.model, o.correcting, o.editable, o.is_retracted, el.model.get('hide_url_previews'), (_el$model$get = el.model.get('ogp_metadata')) === null || _el$model$get === void 0 ? void 0 : _el$model$get.length, o.message_type, !el.model.get('hide_url_previews') ? (_el$model$get2 = el.model.get('ogp_metadata')) === null || _el$model$get2 === void 0 ? void 0 : _el$model$get2.map(m => { + return T` + ${o.is_first_unread ? T`

    ${i18n_new_messages}
    ` : ''} +
    + + + + + ${o.should_show_avatar ? renderAvatar(el.getAvatarData()) : ''} +
    + + ${!o.is_me_message ? T` + + ${o.username} + ${o.hats.map(h => T`${h.title}`)} + + ${o.is_encrypted ? T`` : ''} + ` : ''} +
    +
    + ${o.is_me_message ? T` +   + ${o.is_me_message ? '**' : ''}${o.username} ` : ''} + ${o.is_retracted ? el.renderRetraction() : el.renderMessageText()} +
    + +
    + + ${!el.model.get('hide_url_previews') ? (_el$model$get2 = el.model.get('ogp_metadata')) === null || _el$model$get2 === void 0 ? void 0 : _el$model$get2.map(m => { var _el$chatbox; - return T(message_templateObject7(), el.onUnfurlAnimationEnd, el.model.get('url_preview_transition'), (_el$chatbox = el.chatbox) === null || _el$chatbox === void 0 ? void 0 : _el$chatbox.get('jid'), m['og:description'] || '', m['og:title'] || '', m['og:image'] || '', m['og:url'] || ''); - }) : ''); + return T``; + }) : ''} +
    +
    `; }); ;// CONCATENATED MODULE: ./src/templates/spinner.js -function spinner_templateObject() { - const data = spinner_taggedTemplateLiteral([""]); - spinner_templateObject = function () { - return data; - }; +/* harmony default export */ const spinner = ((o = {}) => { + var _o$classes; - return data; + if ((_o$classes = o.classes) !== null && _o$classes !== void 0 && _o$classes.includes('hor_centered')) { + return T`
    `; + } else { + return T``; + } +}); +// EXTERNAL MODULE: ./node_modules/lodash/debounce.js +var lodash_debounce = __webpack_require__(3279); +var debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce); +;// CONCATENATED MODULE: ./src/shared/chat/templates/new-day.js + +/* harmony default export */ const new_day = (o => T` +
    +
    + +
    +`); +;// CONCATENATED MODULE: ./src/shared/chat/utils.js + + + +const { + dayjs: utils_dayjs +} = core_converse.env; +function onScrolledDown(model) { + if (!model.isHidden()) { + if (api.settings.get('allow_url_history_change')) { + // Clear location hash if set to one of the messages in our history + const hash = window.location.hash; + hash && model.messages.get(hash.slice(1)) && shared_converse.router.history.navigate(); + } + } +} +/** + * Called when the chat content is scrolled up or down. + * We want to record when the user has scrolled away from + * the bottom, so that we don't automatically scroll away + * from what the user is reading when new messages are received. + * + * Don't call this method directly, instead, call `markScrolled`, + * which debounces this method. + */ + +function _markScrolled(ev) { + const el = ev.target; + + if (el.nodeName.toLowerCase() !== 'converse-chat-content') { + return; + } + + let scrolled = true; + const is_at_bottom = Math.floor(el.scrollTop) === 0; + const is_at_top = Math.ceil(el.clientHeight - el.scrollTop) >= el.scrollHeight - Math.ceil(el.scrollHeight / 20); + + if (is_at_bottom) { + scrolled = false; + onScrolledDown(el.model); + } else if (is_at_top) { + /** + * Triggered once the chat's message area has been scrolled to the top + * @event _converse#chatBoxScrolledUp + * @property { _converse.ChatBoxView | _converse.ChatRoomView } view + * @example _converse.api.listen.on('chatBoxScrolledUp', obj => { ... }); + */ + api.trigger('chatBoxScrolledUp', el); + } + + if (el.model.get('scolled') !== scrolled) { + el.model.ui.set({ + scrolled + }); + } } -function spinner_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +const markScrolled = debounce_default()(ev => _markScrolled(ev), 50); +/** + * Given a message object, returns a TemplateResult indicating a new day if + * the passed in message is more than a day later than its predecessor. + * @param { _converse.Message } + */ +function getDayIndicator(message) { + var _message$collection; -/* harmony default export */ const spinner = ((o = {}) => T(spinner_templateObject(), o.classes || '')); + const messages = (_message$collection = message.collection) === null || _message$collection === void 0 ? void 0 : _message$collection.models; + + if (!messages) { + return; + } + + const idx = messages.indexOf(message); + const prev_message = messages[idx - 1]; + + if (!prev_message || utils_dayjs(message.get('time')).isAfter(utils_dayjs(prev_message.get('time')), 'day')) { + const day_date = utils_dayjs(message.get('time')).startOf('day'); + return new_day({ + 'type': 'date', + 'time': day_date.toISOString(), + 'datestring': day_date.format("dddd MMM Do YYYY") + }); + } +} +function getHats(message) { + if (message.get('type') === 'groupchat') { + var _message$occupant; + + const allowed_hats = api.settings.get('muc_hats').filter(hat => hat).map(hat => hat.toLowerCase()); + let vcard_roles = []; + + if (allowed_hats.includes('vcard_roles')) { + vcard_roles = message.vcard ? message.vcard.get('role') : null; + vcard_roles = vcard_roles ? vcard_roles.split(',').filter(hat => hat).map(hat => ({ + title: hat + })) : []; + } + + const muc_role = message.occupant ? [message.occupant.get('role')] : []; + const muc_affiliation = message.occupant ? [message.occupant.get('affiliation')] : []; + const affiliation_role_hats = [...muc_role, ...muc_affiliation].filter(hat => hat).filter(hat => allowed_hats.includes(hat.toLowerCase())).map(hat => ({ + title: hat + })); + const hats = allowed_hats.includes('xep317') ? ((_message$occupant = message.occupant) === null || _message$occupant === void 0 ? void 0 : _message$occupant.get('hats')) || [] : []; + return [...hats, ...vcard_roles, ...affiliation_role_hats]; + } + + return []; +} ;// CONCATENATED MODULE: ./src/shared/chat/message.js -function _templateObject13() { - const data = chat_message_taggedTemplateLiteral(["
    ", "
    "]); - _templateObject13 = function () { - return data; - }; - - return data; -} - -function _templateObject12() { - const data = chat_message_taggedTemplateLiteral([""]); - - _templateObject12 = function () { - return data; - }; - - return data; -} - -function message_templateObject11() { - const data = chat_message_taggedTemplateLiteral([""]); - - message_templateObject11 = function () { - return data; - }; - - return data; -} - -function message_templateObject10() { - const data = chat_message_taggedTemplateLiteral(["
    ", "
    "]); - - message_templateObject10 = function () { - return data; - }; - - return data; -} - -function message_templateObject9() { - const data = chat_message_taggedTemplateLiteral(["\n ", "\n ", "\n \n \n ", "\n ", "\n \n ", "\n
    ", "
    \n "]); - - message_templateObject9 = function () { - return data; - }; - - return data; -} - -function message_templateObject8() { - const data = chat_message_taggedTemplateLiteral(["\n
    \n ", "\n \n \n ", "\n \n
    \n "]); - - message_templateObject8 = function () { - return data; - }; - - return data; -} - -function chat_message_templateObject7() { - const data = chat_message_taggedTemplateLiteral(["", ""]); - - chat_message_templateObject7 = function () { - return data; - }; - - return data; -} - -function chat_message_templateObject6() { - const data = chat_message_taggedTemplateLiteral(["\n
    ", "
    \n ", "\n "]); - - chat_message_templateObject6 = function () { - return data; - }; - - return data; -} - -function chat_message_templateObject5() { - const data = chat_message_taggedTemplateLiteral(["\n
    \n ", "\n
    \n ", " ", ", ", "\n \n
    \n
    "]); - - chat_message_templateObject5 = function () { - return data; - }; - - return data; -} - -function chat_message_templateObject4() { - const data = chat_message_taggedTemplateLiteral(["", ""]); - - chat_message_templateObject4 = function () { - return data; - }; - - return data; -} - -function chat_message_templateObject3() { - const data = chat_message_taggedTemplateLiteral(["", ""]); - - chat_message_templateObject3 = function () { - return data; - }; - - return data; -} - -function chat_message_templateObject2() { - const data = chat_message_taggedTemplateLiteral(["", ""]); - - chat_message_templateObject2 = function () { - return data; - }; - - return data; -} - -function chat_message_templateObject() { - const data = chat_message_taggedTemplateLiteral(["\n
    \n\n
    \n ", "\n
    \n ", "\n ", "\n ", "\n
    "]); - - chat_message_templateObject = function () { - return data; - }; - - return data; -} - -function chat_message_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } @@ -43431,9 +45452,9 @@ function chat_message_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = st const { - Strophe: chat_message_Strophe + Strophe: chat_message_Strophe, + dayjs: message_dayjs } = core_converse.env; -const chat_message_u = core_converse.env.utils; class Message extends CustomElement { static get properties() { return { @@ -43446,22 +45467,20 @@ class Message extends CustomElement { }; } - render() { - if (this.show_spinner) { - return spinner(); - } else if (this.model.get('file') && !this.model.get('oob_url')) { - return this.renderFileProgress(); - } else if (['error', 'info'].includes(this.model.get('type'))) { - return this.renderInfoMessage(); - } else { - return this.renderChatMessage(); - } - } - connectedCallback() { super.connectedCallback(); - this.chatbox = shared_converse.chatboxes.get(this.jid); - this.model = this.chatbox.messages.get(this.mid); + this.initialize(); + } + + async initialize() { + await this.setModels(); + + if (!this.model) { + // Happen during tests due to a race condition + headless_log.error('Could not find module for converse-chat-message'); + return; + } + this.listenTo(this.chatbox, 'change:first_unread_id', this.requestUpdate); this.listenTo(this.model, 'change', this.requestUpdate); this.model.vcard && this.listenTo(this.model.vcard, 'change', this.requestUpdate); @@ -43477,24 +45496,70 @@ class Message extends CustomElement { } } + async setModels() { + this.chatbox = await api.chatboxes.get(this.jid); + await this.chatbox.initialized; + await this.chatbox.messages.fetched; + this.model = this.chatbox.messages.get(this.mid); + this.model && this.requestUpdate(); + } + + render() { + if (!this.model) { + return ''; + } else if (this.show_spinner) { + return spinner(); + } else if (this.model.get('file') && this.model.get('upload') !== shared_converse.SUCCESS) { + return this.renderFileProgress(); + } else if (['error', 'info'].includes(this.model.get('type'))) { + return this.renderInfoMessage(); + } else { + return this.renderChatMessage(); + } + } + getProps() { return Object.assign(this.model.toJSON(), this.getDerivedMessageProps()); } renderInfoMessage() { - const isodate = dayjs_min_default()(this.model.get('time')).toISOString(); + const isodate = message_dayjs(this.model.get('time')).toISOString(); const i18n_retry = __('Retry'); - return T(chat_message_templateObject(), this.model.get('type'), isodate, this.data_name, this.data_value, this.model.getMessageText(), this.model.get('reason') ? T(chat_message_templateObject2(), this.model.get('reason')) : "", this.model.get('error_text') ? T(chat_message_templateObject3(), this.model.get('error_text')) : "", this.model.get('retry_event_id') ? T(chat_message_templateObject4(), this.onRetryClicked, i18n_retry) : ''); + return T` +
    + +
    + ${this.model.getMessageText()} +
    + ${this.model.get('reason') ? T`${this.model.get('reason')}` : ``} + ${this.model.get('error_text') ? T`${this.model.get('error_text')}` : ``} + ${this.model.get('retry_event_id') ? T`${i18n_retry}` : ''} +
    `; } renderFileProgress() { + if (!this.model.file) { + // Can happen when file upload failed and page was reloaded + return ''; + } + const i18n_uploading = __('Uploading file:'); const filename = this.model.file.name; - const size = lib_filesize_min_default()(this.model.file.size); - return T(chat_message_templateObject5(), renderAvatar(this.getAvatarData()), i18n_uploading, filename, size, this.model.get('progress')); + const size = filesize_min_default()(this.model.file.size); + return T` +
    + ${renderAvatar(this.getAvatarData())} +
    + ${i18n_uploading} ${filename}, ${size} + +
    +
    `; } renderChatMessage() { @@ -43538,19 +45603,6 @@ class Message extends CustomElement { this.parentElement.removeChild(this); } - isFollowup() { - const messages = this.model.collection.models; - const idx = messages.indexOf(this.model); - const prev_model = idx ? messages[idx - 1] : null; - - if (prev_model === null) { - return false; - } - - const date = dayjs_min_default()(this.model.get('time')); - return this.model.get('from') === prev_model.get('from') && !this.model.isMeCommand() && !prev_model.isMeCommand() && this.model.get('type') !== 'info' && prev_model.get('type') !== 'info' && date.isBefore(dayjs_min_default()(prev_model.get('time')).add(10, 'minutes')) && !!this.model.get('is_encrypted') === !!prev_model.get('is_encrypted'); - } - isRetracted() { return this.model.get('retracted') || this.model.get('moderated') === 'retracted'; } @@ -43573,13 +45625,11 @@ class Message extends CustomElement { } getExtraMessageClasses() { - const extra_classes = [this.isFollowup() ? 'chat-msg--followup' : null, this.model.get('is_delayed') ? 'delayed' : null, this.model.isMeCommand() ? 'chat-msg--action' : null, this.isRetracted() ? 'chat-msg--retracted' : null, this.model.get('type'), this.shouldShowAvatar() ? 'chat-msg--with-avatar' : null].map(c => c); + const extra_classes = [this.model.isFollowup() ? 'chat-msg--followup' : null, this.model.get('is_delayed') ? 'delayed' : null, this.model.isMeCommand() ? 'chat-msg--action' : null, this.isRetracted() ? 'chat-msg--retracted' : null, this.model.get('type'), this.shouldShowAvatar() ? 'chat-msg--with-avatar' : null].map(c => c); if (this.model.get('type') === 'groupchat') { - var _this$getOccupantRole, _this$getOccupantAffi; - - extra_classes.push((_this$getOccupantRole = this.getOccupantRole()) !== null && _this$getOccupantRole !== void 0 ? _this$getOccupantRole : ''); - extra_classes.push((_this$getOccupantAffi = this.getOccupantAffiliation()) !== null && _this$getOccupantAffi !== void 0 ? _this$getOccupantAffi : ''); + extra_classes.push(this.getOccupantRole() ?? ''); + extra_classes.push(this.getOccupantAffiliation() ?? ''); if (this.model.get('sender') === 'them' && this.hasMentions()) { extra_classes.push('mentioned'); @@ -43593,9 +45643,9 @@ class Message extends CustomElement { getDerivedMessageProps() { const format = api.settings.get('time_format'); return { - 'pretty_time': dayjs_min_default()(this.model.get('edited') || this.model.get('time')).format(format), + 'pretty_time': message_dayjs(this.model.get('edited') || this.model.get('time')).format(format), 'has_mentions': this.hasMentions(), - 'hats': shared_converse.getHats(this.model), + 'hats': getHats(this.model), 'is_first_unread': this.chatbox.get('first_unread_id') === this.model.get('id'), 'is_me_message': this.model.isMeCommand(), 'is_retracted': this.isRetracted(), @@ -43626,7 +45676,10 @@ class Message extends CustomElement { renderRetraction() { const retraction_text = this.isRetracted() ? this.getRetractionText() : null; - return T(chat_message_templateObject6(), retraction_text, this.model.get('moderation_reason') ? T(chat_message_templateObject7(), this.model.get('moderation_reason')) : ''); + return T` +
    ${retraction_text}
    + ${this.model.get('moderation_reason') ? T`${this.model.get('moderation_reason')}` : ''} + `; } renderMessageText() { @@ -43638,10 +45691,36 @@ class Message extends CustomElement { const i18n_show_less = __('Show less'); - const tpl_spoiler_hint = T(message_templateObject8(), this.model.get('spoiler_hint'), this.toggleSpoilerMessage, this.model.get('is_spoiler_visible') ? 'fa-eye-slash' : 'fa-eye', this.model.get('is_spoiler_visible') ? i18n_show_less : i18n_show); - const spoiler_classes = this.model.get('is_spoiler') ? "spoiler ".concat(this.model.get('is_spoiler_visible') ? '' : 'hidden') : ''; + const tpl_spoiler_hint = T` + + `; + const spoiler_classes = this.model.get('is_spoiler') ? `spoiler ${this.model.get('is_spoiler_visible') ? '' : 'hidden'}` : ''; const text = this.model.getMessageText(); - return T(message_templateObject9(), this.model.get('is_spoiler') ? tpl_spoiler_hint : '', this.model.get('subject') ? T(message_templateObject10(), this.model.get('subject')) : '', this.model.get('is_only_emojis') ? 'chat-msg__text--larger' : '', spoiler_classes, this.model, this.model.isMeCommand(), api.settings.get('show_images_inline'), text, this.model.get('received') && !this.model.isMeCommand() && !is_groupchat_message ? T(message_templateObject11()) : '', this.model.get('edited') ? T(_templateObject12(), i18n_edited, this.showMessageVersionsModal) : '', this.model.get('oob_url') ? T(_templateObject13(), chat_message_u.getOOBURLMarkup(shared_converse, this.model.get('oob_url'))) : '', this.model.get('error_text') || this.model.get('error')); + return T` + ${this.model.get('is_spoiler') ? tpl_spoiler_hint : ''} + ${this.model.get('subject') ? T`
    ${this.model.get('subject')}
    ` : ''} + + + ${this.model.get('received') && !this.model.isMeCommand() && !is_groupchat_message ? T`` : ''} + ${this.model.get('edited') ? T`` : ''} + + ${this.model.get('oob_url') ? T`
    ${getOOBURLMarkup(this.model.get('oob_url'))}
    ` : ''} +
    ${this.model.get('error_text') || this.model.get('error')}
    + `; } showUserModal(ev) { @@ -43677,43 +45756,7 @@ class Message extends CustomElement { } api.elements.define('converse-chat-message', Message); -;// CONCATENATED MODULE: ./src/shared/chat/templates/new-day.js -function new_day_templateObject() { - const data = new_day_taggedTemplateLiteral(["\n
    \n
    \n \n
    \n"]); - - new_day_templateObject = function () { - return data; - }; - - return data; -} - -function new_day_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const new_day = (o => T(new_day_templateObject(), o.time, o.time, o.datestring)); ;// CONCATENATED MODULE: ./src/shared/chat/message-history.js -function message_history_templateObject2() { - const data = message_history_taggedTemplateLiteral([""]); - - message_history_templateObject2 = function () { - return data; - }; - - return data; -} - -function message_history_templateObject() { - const data = message_history_taggedTemplateLiteral(["", ""]); - - message_history_templateObject = function () { - return data; - }; - - return data; -} - -function message_history_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } @@ -43721,53 +45764,6 @@ function message_history_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = - // Return a TemplateResult indicating a new day if the passed in message is -// more than a day later than its predecessor. - -function getDayIndicator(model) { - const models = model.collection.models; - const idx = models.indexOf(model); - const prev_model = models[idx - 1]; - - if (!prev_model || dayjs_min_default()(model.get('time')).isAfter(dayjs_min_default()(prev_model.get('time')), 'day')) { - const day_date = dayjs_min_default()(model.get('time')).startOf('day'); - return new_day({ - 'type': 'date', - 'time': day_date.toISOString(), - 'datestring': day_date.format("dddd MMM Do YYYY") - }); - } -} // This is set to _converse so that it can be overriden. An attempt was made to use -// a hook instead, but hook returns a promise and it forces the asynchronicity up -// to the render method. - - -shared_converse.getHats = function (model) { - if (model.get('type') === 'groupchat') { - var _model$occupant; - - const allowed_hats = api.settings.get('muc_hats').filter(hat => hat).map(hat => hat.toLowerCase()); - let vcard_roles = []; - - if (allowed_hats.includes('vcard_roles')) { - vcard_roles = model.vcard ? model.vcard.get('role') : null; - vcard_roles = vcard_roles ? vcard_roles.split(',').filter(hat => hat).map(hat => ({ - title: hat - })) : []; - } - - const muc_role = model.occupant ? [model.occupant.get('role')] : []; - const muc_affiliation = model.occupant ? [model.occupant.get('affiliation')] : []; - const affiliation_role_hats = [...muc_role, ...muc_affiliation].filter(hat => hat).filter(hat => allowed_hats.includes(hat.toLowerCase())).map(hat => ({ - title: hat - })); - const hats = allowed_hats.includes('xep317') ? ((_model$occupant = model.occupant) === null || _model$occupant === void 0 ? void 0 : _model$occupant.get('hats')) || [] : []; - return [...hats, ...vcard_roles, ...affiliation_role_hats]; - } - - return []; -}; - class MessageHistory extends CustomElement { static get properties() { return { @@ -43782,7 +45778,12 @@ class MessageHistory extends CustomElement { render() { const msgs = this.messages; - return msgs.length ? T(message_history_templateObject(), repeat_c(msgs, m => m.get('id'), m => this.renderMessage(m))) : ''; + + if (msgs.length) { + return repeat_c(msgs, m => m.get('id'), m => T`${this.renderMessage(m)}`); + } else { + return ''; + } } renderMessage(model) { @@ -43790,55 +45791,25 @@ class MessageHistory extends CustomElement { return ''; } - const day = getDayIndicator(model); - const templates = day ? [day] : []; - const message = T(message_history_templateObject2(), this.model.get('jid'), model.get('id')); - return [...templates, message]; + const template_hook = model.get('template_hook'); + + if (typeof template_hook === 'string') { + const template_promise = api.hook(template_hook, model, ''); + return until_o(template_promise, ''); + } else { + const template = T``; + const day = getDayIndicator(model); + return day ? [day, template] : template; + } } } api.elements.define('converse-message-history', MessageHistory); -// EXTERNAL MODULE: ./node_modules/lodash/debounce.js -var lodash_debounce = __webpack_require__(3279); -var debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce); -;// CONCATENATED MODULE: ./src/shared/chat/utils.js - -function onScrolledDown(model) { - if (!model.isHidden()) { - if (api.settings.get('allow_url_history_change')) { - // Clear location hash if set to one of the messages in our history - const hash = window.location.hash; - hash && model.messages.get(hash.slice(1)) && shared_converse.router.history.navigate(); - } - } -} // EXTERNAL MODULE: ./src/shared/chat/styles/chat-content.scss var chat_content = __webpack_require__(9023); ;// CONCATENATED MODULE: ./src/shared/chat/chat-content.js -function chat_content_templateObject2() { - const data = chat_content_taggedTemplateLiteral([""]); - - chat_content_templateObject2 = function () { - return data; - }; - - return data; -} - -function chat_content_templateObject() { - const data = chat_content_taggedTemplateLiteral(["\n
    ", "
    \n \n \n ", "\n "]); - - chat_content_templateObject = function () { - return data; - }; - - return data; -} - -function chat_content_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - - @@ -43856,10 +45827,17 @@ class ChatContent extends CustomElement { connectedCallback() { super.connectedCallback(); - this.markScrolled = debounce_default()(this._markScrolled, 50); - this.model = shared_converse.chatboxes.get(this.jid); + this.initialize(); + } + + disconnectedCallback() { + super.disconnectedCallback(); + this.removeEventListener('scroll', markScrolled); + } + + async initialize() { + await this.setModels(); this.listenTo(this.model, 'change:hidden_occupants', this.requestUpdate); - this.listenTo(this.model, 'change:scrolled', this.scrollDown); this.listenTo(this.model.messages, 'add', this.requestUpdate); this.listenTo(this.model.messages, 'change', this.requestUpdate); this.listenTo(this.model.messages, 'remove', this.requestUpdate); @@ -43867,60 +45845,42 @@ class ChatContent extends CustomElement { this.listenTo(this.model.messages, 'reset', this.requestUpdate); this.listenTo(this.model.notifications, 'change', this.requestUpdate); this.listenTo(this.model.ui, 'change', this.requestUpdate); + this.listenTo(this.model.ui, 'change:scrolled', this.scrollDown); if (this.model.occupants) { this.listenTo(this.model.occupants, 'change', this.requestUpdate); } - this.addEventListener('scroll', () => this.markScrolled()); + this.addEventListener('scroll', markScrolled); + } + + async setModels() { + this.model = await api.chatboxes.get(this.jid); + await this.model.initialized; + this.requestUpdate(); } render() { var _this$model$ui; - // This element has "flex-direction: reverse", so elements here are + if (!this.model) { + return ''; + } // This element has "flex-direction: reverse", so elements here are // shown in reverse order. - return T(chat_content_templateObject(), this.model.getNotificationsText(), this.model, [...this.model.messages.models], ((_this$model$ui = this.model.ui) === null || _this$model$ui === void 0 ? void 0 : _this$model$ui.get('chat-content-spinner-top')) ? T(chat_content_templateObject2()) : ''); - } - /** - * Called when the chat content is scrolled up or down. - * We want to record when the user has scrolled away from - * the bottom, so that we don't automatically scroll away - * from what the user is reading when new messages are received. - * - * Don't call this method directly, instead, call `markScrolled`, - * which debounces this method by 100ms. - * @private - */ - _markScrolled() { - let scrolled = true; - const is_at_bottom = this.scrollTop === 0; - const is_at_top = Math.ceil(this.clientHeight - this.scrollTop) >= this.scrollHeight - Math.ceil(this.scrollHeight / 20); - - if (is_at_bottom) { - scrolled = false; - onScrolledDown(this.model); - } else if (is_at_top) { - /** - * Triggered once the chat's message area has been scrolled to the top - * @event _converse#chatBoxScrolledUp - * @property { _converse.ChatBoxView | _converse.ChatRoomView } view - * @example _converse.api.listen.on('chatBoxScrolledUp', obj => { ... }); - */ - api.trigger('chatBoxScrolledUp', this); - } - - if (this.model.get('scolled') !== scrolled) { - safeSave(this.model, { - scrolled - }); - } + return T` +
    ${this.model.getNotificationsText()}
    + + + ${(_this$model$ui = this.model.ui) !== null && _this$model$ui !== void 0 && _this$model$ui.get('chat-content-spinner-top') ? T`` : ''} + `; } scrollDown() { - if (this.model.get('scrolled')) { + if (this.model.ui.get('scrolled')) { return; } @@ -43950,30 +45910,7 @@ class ChatContent extends CustomElement { } api.elements.define('converse-chat-content', ChatContent); ;// CONCATENATED MODULE: ./src/shared/components/icons.js -function icons_templateObject2() { - const data = icons_taggedTemplateLiteral([" "]); - - icons_templateObject2 = function () { - return data; - }; - - return data; -} - -function icons_templateObject() { - const data = icons_taggedTemplateLiteral(["\n :host {\n display: inline-block;\n padding: 0;\n margin: 0;\n }\n "]); - - icons_templateObject = function () { - return data; - }; - - return data; -} - -function icons_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /** - * @module icons.js * @copyright Alfredo Medrano Sánchez and the Converse.js contributors * @description * Component inspired by the one from fa-icons @@ -43996,7 +45933,13 @@ class ConverseIcon extends CustomElement { } static get styles() { - return css_tag_r(icons_templateObject()); + return i` + :host { + display: inline-block; + padding: 0; + margin: 0; + } + `; } constructor() { @@ -44008,15 +45951,20 @@ class ConverseIcon extends CustomElement { } getSource() { - return "#icon-".concat(this.class_name.split(" ")[1].replace("fa-", "")); + return `#icon-${this.class_name.split(" ")[1].replace("fa-", "")}`; } getStyles() { - return "\n ".concat(this.size ? "width: ".concat(this.size, ";") : '', "\n ").concat(this.size ? "height: ".concat(this.size, ";") : '', "\n ").concat(this.color ? "fill: ".concat(this.color, ";") : '', "\n ").concat(this.style, "\n "); + return ` + ${this.size ? `width: ${this.size};` : ''} + ${this.size ? `height: ${this.size};` : ''} + ${this.color ? `fill: ${this.color};` : ''} + ${this.style} + `; } render() { - return T(icons_templateObject2(), this.getStyles(), this.getSource()); + return T` `; } } @@ -44060,28 +46008,6 @@ const unsafe_html_o = directive_i(unsafe_html_n); //# sourceMappingURL=unsafe-html.js.map ;// CONCATENATED MODULE: ./src/shared/chat/help-messages.js -function help_messages_templateObject2() { - const data = help_messages_taggedTemplateLiteral(["
    ", "
    "]); - - help_messages_templateObject2 = function () { - return data; - }; - - return data; -} - -function help_messages_templateObject() { - const data = help_messages_taggedTemplateLiteral([""]); - - help_messages_templateObject = function () { - return data; - }; - - return data; -} - -function help_messages_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -44108,7 +46034,10 @@ class ChatHelp extends CustomElement { render() { const isodate = new Date().toISOString(); - return [T(help_messages_templateObject(), this.close, api.settings.get("assets_path")), ...this.messages.map(m => this.renderHelpMessage({ + return [T``, ...this.messages.map(m => this.renderHelpMessage({ isodate, 'markup': xss.filterXSS(m, { 'whiteList': { @@ -44125,111 +46054,29 @@ class ChatHelp extends CustomElement { } renderHelpMessage(o) { - return T(help_messages_templateObject2(), this.type, o.isodate, unsafe_html_o(o.markup)); + return T`
    ${unsafe_html_o(o.markup)}
    `; } } api.elements.define('converse-chat-help', ChatHelp); ;// CONCATENATED MODULE: ./src/shared/chat/templates/emoji-picker.js -function emoji_picker_templateObject9() { - const data = emoji_picker_taggedTemplateLiteral([""]); - - emoji_picker_templateObject9 = function () { - return data; - }; - - return data; -} - -function emoji_picker_templateObject8() { - const data = emoji_picker_taggedTemplateLiteral(["\n
    \n \n ", "\n
    \n ", "\n\n
    \n \n
      ", "
    \n
    "]); - - emoji_picker_templateObject8 = function () { - return data; - }; - - return data; -} - -function emoji_picker_templateObject7() { - const data = emoji_picker_taggedTemplateLiteral(["\n
  • \n ", "\n
  • "]); - - emoji_picker_templateObject7 = function () { - return data; - }; - - return data; -} - -function emoji_picker_templateObject6() { - const data = emoji_picker_taggedTemplateLiteral(["\n \n ", "\n "]); - - emoji_picker_templateObject6 = function () { - return data; - }; - - return data; -} - -function emoji_picker_templateObject5() { - const data = emoji_picker_taggedTemplateLiteral(["\n ", "\n
      \n ", "\n
    "]); - - emoji_picker_templateObject5 = function () { - return data; - }; - - return data; -} - -function emoji_picker_templateObject4() { - const data = emoji_picker_taggedTemplateLiteral(["\n \n ", "\n
      \n ", "\n
    \n
    \n "]); - - emoji_picker_templateObject4 = function () { - return data; - }; - - return data; -} - -function emoji_picker_templateObject3() { - const data = emoji_picker_taggedTemplateLiteral(["\n
  • \n ", "\n
  • \n "]); - - emoji_picker_templateObject3 = function () { - return data; - }; - - return data; -} - -function emoji_picker_templateObject2() { - const data = emoji_picker_taggedTemplateLiteral(["
      ", "
    "]); - - emoji_picker_templateObject2 = function () { - return data; - }; - - return data; -} - -function emoji_picker_templateObject() { - const data = emoji_picker_taggedTemplateLiteral(["\n
  • \n\n ", " \n
  • \n "]); - - emoji_picker_templateObject = function () { - return data; - }; - - return data; -} - -function emoji_picker_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - const emoji_picker_u = core_converse.env.utils; const emoji_category = o => { - return T(emoji_picker_templateObject(), o.category, o.category, o.current_category === o.category ? 'picked' : '', __(api.settings.get('emoji_category_labels')[o.category]), o.onCategoryPicked, o.category, o.category, o.emoji); + return T` +
  • + + ${o.emoji} +
  • + `; }; const emoji_picker_header = o => { @@ -44240,59 +46087,87 @@ const emoji_picker_header = o => { 'emoji': o.sn2Emoji(cats[c]) }, o)) : ''; - return T(emoji_picker_templateObject2(), Object.keys(cats).map(transform)); + return T`
      ${Object.keys(cats).map(transform)}
    `; }; const emoji_item = o => { - return T(emoji_picker_templateObject3(), o.shouldBeHidden(o.emoji.sn) ? 'hidden' : '', o.emoji.sn, o.emoji.sn, o.insertEmoji, o.emoji.sn, emoji_picker_u.shortnamesToEmojis(o.emoji.sn)); + return T` +
  • + ${emoji_picker_u.shortnamesToEmojis(o.emoji.sn)} +
  • + `; }; const tpl_search_results = o => { const i18n_search_results = __('Search results'); - return T(emoji_picker_templateObject4(), !o.query, i18n_search_results, o.search_results.map(emoji => emoji_item(Object.assign({ + return T` + + ${i18n_search_results} +
      + ${o.search_results.map(emoji => emoji_item(Object.assign({ emoji - }, o)))); + }, o)))} +
    +
    + `; }; const emojis_for_category = o => { - return T(emoji_picker_templateObject5(), o.category, o.category, __(api.settings.get('emoji_category_labels')[o.category]), o.category, Object.values(core_converse.emojis.json[o.category]).map(emoji => emoji_item(Object.assign({ + return T` + ${__(api.settings.get('emoji_category_labels')[o.category])} +
      + ${Object.values(core_converse.emojis.json[o.category]).map(emoji => emoji_item(Object.assign({ emoji - }, o)))); + }, o)))} +
    `; }; const tpl_all_emojis = o => { const cats = api.settings.get('emoji_categories'); - return T(emoji_picker_templateObject6(), o.query, Object.keys(cats).map(c => cats[c] ? emojis_for_category(Object.assign({ + return T` + + ${Object.keys(cats).map(c => cats[c] ? emojis_for_category(Object.assign({ 'category': c - }, o)) : '')); + }, o)) : '')} + `; }; const skintone_emoji = o => { - return T(emoji_picker_templateObject7(), o.skintone, o.current_skintone === o.skintone ? 'picked' : '', o.skintone, o.onSkintonePicked, emoji_picker_u.shortnamesToEmojis(':' + o.skintone + ':')); + return T` +
  • + ${emoji_picker_u.shortnamesToEmojis(':' + o.skintone + ':')} +
  • `; }; const tpl_emoji_picker = o => { const i18n_search = __('Search'); const skintones = ['tone1', 'tone2', 'tone3', 'tone4', 'tone5']; - return T(emoji_picker_templateObject8(), i18n_search, o.query || '', o.onSearchInputKeyDown, o.onSearchInputBlurred, o.onSearchInputFocus, o.query ? '' : emoji_picker_header(o), o.render_emojis ? T(emoji_picker_templateObject9(), o.chatview, o.model, o.search_results, o.current_skintone, o.query) : '', skintones.map(skintone => skintone_emoji(Object.assign({ + return T` +
    + + ${o.query ? '' : emoji_picker_header(o)} +
    + ${o.render_emojis ? T`` : ''} + +
    + +
      ${skintones.map(skintone => skintone_emoji(Object.assign({ skintone - }, o)))); + }, o)))}
    +
    `; }; ;// CONCATENATED MODULE: ./src/shared/chat/emoji-picker-content.js -function emoji_picker_content_templateObject() { - const data = emoji_picker_content_taggedTemplateLiteral(["\n
    \n ", "\n ", "\n
    \n "]); - - emoji_picker_content_templateObject = function () { - return data; - }; - - return data; -} - -function emoji_picker_content_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -44329,7 +46204,12 @@ class EmojiPickerContent extends CustomElement { 'search_results': this.search_results, 'shouldBeHidden': shortname => this.shouldBeHidden(shortname) }; - return T(emoji_picker_content_templateObject(), tpl_search_results(props), tpl_all_emojis(props)); + return T` +
    + ${tpl_search_results(props)} + ${tpl_all_emojis(props)} +
    + `; } firstUpdated() { @@ -44411,35 +46291,120 @@ class EmojiPickerContent extends CustomElement { } api.elements.define('converse-emoji-picker-content', EmojiPickerContent); +;// CONCATENATED MODULE: ./src/shared/chat/emoji-dropdown.js + + + + + + +const emoji_dropdown_u = core_converse.env.utils; +class EmojiDropdown extends Dropdown { + static get properties() { + return { + chatview: { + type: Object + } + }; + } + + constructor() { + super(); // This is an optimization, we lazily render the emoji picker, otherwise tests slow to a crawl. + + this.render_emojis = false; + } + + initModel() { + if (!this.init_promise) { + this.init_promise = (async () => { + await api.emojis.initialize(); + const id = `converse.emoji-${shared_converse.bare_jid}-${this.chatview.model.get('jid')}`; + this.model = new shared_converse.EmojiPicker({ + 'id': id + }); + initStorage(this.model, id); + await new Promise(resolve => this.model.fetch({ + 'success': resolve, + 'error': resolve + })); // We never want still be in the autocompleting state upon page load + + this.model.set({ + 'autocompleting': null, + 'ac_position': null + }); + })(); + } + + return this.init_promise; + } + + render() { + return T` +
    + + +
    `; + } + + connectedCallback() { + super.connectedCallback(); + this.render_emojis = false; + } + + toggleMenu(ev) { + ev.stopPropagation(); + ev.preventDefault(); + + if (emoji_dropdown_u.hasClass('show', this.menu)) { + if (emoji_dropdown_u.ancestor(ev.target, '.toggle-emojis')) { + this.hideMenu(); + } + } else { + this.showMenu(); + } + } + + async showMenu() { + await this.initModel(); + + if (!this.render_emojis) { + // Trigger an update so that emojis are rendered + this.render_emojis = true; + await this.requestUpdate(); + } + + super.showMenu(); + setTimeout(() => { + var _this$querySelector; + + return (_this$querySelector = this.querySelector('.emoji-search')) === null || _this$querySelector === void 0 ? void 0 : _this$querySelector.focus(); + }); + } + +} +api.elements.define('converse-emoji-dropdown', EmojiDropdown); // EXTERNAL MODULE: ./src/shared/chat/styles/emoji.scss var emoji = __webpack_require__(3796); ;// CONCATENATED MODULE: ./src/shared/chat/emoji-picker.js -function chat_emoji_picker_templateObject2() { - const data = chat_emoji_picker_taggedTemplateLiteral(["\n "]); - - chat_emoji_picker_templateObject2 = function () { - return data; - }; - - return data; -} - -function chat_emoji_picker_templateObject() { - const data = chat_emoji_picker_taggedTemplateLiteral(["\n
    \n \n
    \n ", "\n
    \n
    "]); - - chat_emoji_picker_templateObject = function () { - return data; - }; - - return data; -} - -function chat_emoji_picker_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - - - - @@ -44478,6 +46443,7 @@ class EmojiPicker extends CustomElement { } firstUpdated() { + super.firstUpdated(); this.listenTo(this.model, 'change', o => this.onModelChanged(o.changed)); this.initArrowNavigation(); } @@ -44488,7 +46454,6 @@ class EmojiPicker extends CustomElement { this.debouncedFilter = lodash_es_debounce(input => this.model.set({ 'query': input.value }), 250); - this.registerEvents(); } get search_results() { @@ -44536,7 +46501,7 @@ class EmojiPicker extends CustomElement { } const el = this.querySelector('.emoji-lists__container--browse'); - const heading = this.querySelector("#emoji-picker-".concat(this.current_category)); + const heading = this.querySelector(`#emoji-picker-${this.current_category}`); if (heading) { // +4 due to 2px padding on list elements @@ -44698,7 +46663,7 @@ class EmojiPicker extends CustomElement { getTonedShortname(shortname) { if (core_converse.emojis.toned.includes(shortname) && this.current_skintone) { - return "".concat(shortname.slice(0, shortname.length - 1), "_").concat(this.current_skintone, ":"); + return `${shortname.slice(0, shortname.length - 1)}_${this.current_skintone}:`; } return shortname; @@ -44716,7 +46681,7 @@ class EmojiPicker extends CustomElement { 'getSelector': direction => { if (direction === dom_navigator.DIRECTION.down) { const c = this.navigator.selected && this.navigator.selected.getAttribute('data-category'); - return c ? "ul[data-category=\"".concat(c, "\"] li:not(.hidden):not(.emoji-skintone), .emoji-search") : default_selector; + return c ? `ul[data-category="${c}"] li:not(.hidden):not(.emoji-skintone), .emoji-search` : default_selector; } else { return default_selector; } @@ -44746,106 +46711,14 @@ class EmojiPicker extends CustomElement { } } -class EmojiDropdown extends BaseDropdown { - static get properties() { - return { - chatview: { - type: Object - } - }; - } - - constructor() { - super(); // This is an optimization, we lazily render the emoji picker, otherwise tests slow to a crawl. - - this.render_emojis = false; - } - - initModel() { - if (!this.init_promise) { - this.init_promise = (async () => { - await api.emojis.initialize(); - const id = "converse.emoji-".concat(shared_converse.bare_jid, "-").concat(this.chatview.model.get('jid')); - this.model = new shared_converse.EmojiPicker({ - 'id': id - }); - initStorage(this.model, id); - await new Promise(resolve => this.model.fetch({ - 'success': resolve, - 'error': resolve - })); // We never want still be in the autocompleting state upon page load - - this.model.set({ - 'autocompleting': null, - 'ac_position': null - }); - })(); - } - - return this.init_promise; - } - - render() { - return T(chat_emoji_picker_templateObject(), __('Insert emojis'), api.settings.get('assets_path'), until_o(this.initModel().then(() => T(chat_emoji_picker_templateObject2(), this.chatview, this.model, this.render_emojis, this.model.get('current_category') || '', this.model.get('current_skintone') || '', this.model.get('query') || '')), '')); - } - - connectedCallback() { - super.connectedCallback(); - this.render_emojis = false; - } - - toggleMenu(ev) { - ev.stopPropagation(); - ev.preventDefault(); - - if (chat_emoji_picker_u.hasClass('show', this.menu)) { - if (chat_emoji_picker_u.ancestor(ev.target, '.toggle-emojis')) { - this.hideMenu(); - } - } else { - this.showMenu(); - } - } - - async showMenu() { - await this.initModel(); - - if (!this.render_emojis) { - // Trigger an update so that emojis are rendered - this.render_emojis = true; - await this.requestUpdate(); - } - - super.showMenu(); - setTimeout(() => { - var _this$querySelector; - - return (_this$querySelector = this.querySelector('.emoji-search')) === null || _this$querySelector === void 0 ? void 0 : _this$querySelector.focus(); - }); - } - -} -api.elements.define('converse-emoji-dropdown', EmojiDropdown); api.elements.define('converse-emoji-picker', EmojiPicker); ;// CONCATENATED MODULE: ./src/shared/chat/templates/message-limit.js -function message_limit_templateObject() { - const data = message_limit_taggedTemplateLiteral(["", ""]); - - message_limit_templateObject = function () { - return data; - }; - - return data; -} - -function message_limit_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const message_limit = (counter => { const i18n_chars_remaining = __('Message characters remaining'); - return T(message_limit_templateObject(), counter < 1 ? 'error' : '', i18n_chars_remaining, counter); + return T`${counter}`; }); ;// CONCATENATED MODULE: ./src/shared/chat/message-limit.js @@ -44877,108 +46750,6 @@ api.elements.define('converse-message-limit-indicator', MessageLimitIndicator); // EXTERNAL MODULE: ./src/shared/chat/styles/toolbar.scss var toolbar = __webpack_require__(4837); ;// CONCATENATED MODULE: ./src/shared/chat/toolbar.js -function toolbar_templateObject10() { - const data = toolbar_taggedTemplateLiteral(["", ""]); - - toolbar_templateObject10 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject9() { - const data = toolbar_taggedTemplateLiteral(["\n "]); - - toolbar_templateObject9 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject8() { - const data = toolbar_taggedTemplateLiteral(["\n \n "]); - - toolbar_templateObject8 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject7() { - const data = toolbar_taggedTemplateLiteral(["\n "]); - - toolbar_templateObject7 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject6() { - const data = toolbar_taggedTemplateLiteral(["", ""]); - - toolbar_templateObject6 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject5() { - const data = toolbar_taggedTemplateLiteral(["\n \n "]); - - toolbar_templateObject5 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject4() { - const data = toolbar_taggedTemplateLiteral(["\n "]); - - toolbar_templateObject4 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject3() { - const data = toolbar_taggedTemplateLiteral([""]); - - toolbar_templateObject3 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject2() { - const data = toolbar_taggedTemplateLiteral([""]); - - toolbar_templateObject2 = function () { - return data; - }; - - return data; -} - -function toolbar_templateObject() { - const data = toolbar_taggedTemplateLiteral(["\n ", "\n ", "\n "]); - - toolbar_templateObject = function () { - return data; - }; - - return data; -} - -function toolbar_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -45012,9 +46783,6 @@ class ChatToolbar extends CustomElement { show_emoji_button: { type: Boolean }, - show_occupants_toggle: { - type: Boolean - }, show_send_button: { type: Boolean }, @@ -45032,7 +46800,10 @@ class ChatToolbar extends CustomElement { render() { const i18n_send_message = __('Send the message'); - return T(toolbar_templateObject(), until_o(this.getButtons(), ''), this.show_send_button ? T(toolbar_templateObject2(), i18n_send_message) : ''); + return T` + ${until_o(this.getButtons(), '')} + ${this.show_send_button ? T`` : ''} + `; } firstUpdated() { @@ -45046,24 +46817,31 @@ class ChatToolbar extends CustomElement { } getButtons() { + var _api$settings$get; + const buttons = []; if (this.show_emoji_button) { const chatview = shared_converse.chatboxviews.get(this.model.get('jid')); - buttons.push(T(toolbar_templateObject3(), chatview)); + buttons.push(T``); } if (this.show_call_button) { const i18n_start_call = __('Start a call'); - buttons.push(T(toolbar_templateObject4(), this.toggleCall, i18n_start_call)); + buttons.push(T` + `); } const message_limit = api.settings.get('message_limit'); if (message_limit) { - buttons.push(T(toolbar_templateObject5(), this.model)); + buttons.push(T` + + `); } if (this.show_spoiler_button) { @@ -45071,14 +46849,20 @@ class ChatToolbar extends CustomElement { } const http_upload_promise = api.disco.supports(toolbar_Strophe.NS.HTTPUPLOAD, shared_converse.domain); - buttons.push(T(toolbar_templateObject6(), until_o(http_upload_promise.then(is_supported => this.getHTTPUploadButton(is_supported)), ''))); + buttons.push(T`${until_o(http_upload_promise.then(is_supported => this.getHTTPUploadButton(is_supported)), '')}`); - if (this.show_occupants_toggle) { + if (this.is_groupchat && (_api$settings$get = api.settings.get('visible_toolbar_buttons')) !== null && _api$settings$get !== void 0 && _api$settings$get.toggle_occupants) { const i18n_hide_occupants = __('Hide participants'); const i18n_show_occupants = __('Show participants'); - buttons.push(T(toolbar_templateObject7(), this.hidden_occupants ? i18n_show_occupants : i18n_hide_occupants, this.toggleOccupants, this.hidden_occupants ? "fa-angle-double-left" : "fa-angle-double-right", api.settings.get('assets_path'))); + buttons.push(T` + `); } /** * *Hook* which allows plugins to add more buttons to a chat's toolbar @@ -45100,7 +46884,13 @@ class ChatToolbar extends CustomElement { if (is_supported) { const i18n_choose_file = __('Choose a file to send'); - return T(toolbar_templateObject8(), i18n_choose_file, this.toggleFileUpload, api.settings.get('assets_path'), this.onFileSelection); + return T` + + `; } else { return ''; } @@ -45111,7 +46901,7 @@ class ChatToolbar extends CustomElement { const model = this.model; - if (!this.is_groupchat && !((_model$presence = model.presence) === null || _model$presence === void 0 ? void 0 : _model$presence.resources.length)) { + if (!this.is_groupchat && !((_model$presence = model.presence) !== null && _model$presence !== void 0 && _model$presence.resources.length)) { return; } @@ -45123,14 +46913,21 @@ class ChatToolbar extends CustomElement { i18n_toggle_spoiler = __("Click to write your message as a spoiler"); } - const markup = T(toolbar_templateObject9(), i18n_toggle_spoiler, this.toggleComposeSpoilerMessage, this.composing_spoiler ? 'fa-eye-slash' : 'fa-eye', api.settings.get('assets_path')); + const markup = T` + `; if (this.is_groupchat) { return markup; } else { const contact_jid = model.get('jid'); - const spoilers_promise = Promise.all(model.presence.resources.map(r => api.disco.supports(toolbar_Strophe.NS.SPOILER, "".concat(contact_jid, "/").concat(r.get('name'))))).then(results => results.reduce((acc, val) => acc && val, true)); - return T(toolbar_templateObject10(), until_o(spoilers_promise.then(() => markup), '')); + const spoilers_promise = Promise.all(model.presence.resources.map(r => api.disco.supports(toolbar_Strophe.NS.SPOILER, `${contact_jid}/${r.get('name')}`))).then(results => results.reduce((acc, val) => acc && val, true)); + return T`${until_o(spoilers_promise.then(() => markup), '')}`; } } @@ -45186,122 +46983,33 @@ class ChatToolbar extends CustomElement { } window.customElements.define('converse-chat-toolbar', ChatToolbar); -;// CONCATENATED MODULE: ./src/plugins/chatview/templates/chat-head.js -function chat_head_templateObject7() { - const data = chat_head_taggedTemplateLiteral(["

    ", "

    "]); - - chat_head_templateObject7 = function () { - return data; - }; - - return data; -} - -function chat_head_templateObject6() { - const data = chat_head_taggedTemplateLiteral([""]); - - chat_head_templateObject6 = function () { - return data; - }; - - return data; -} - -function chat_head_templateObject5() { - const data = chat_head_taggedTemplateLiteral(["", ""]); - - chat_head_templateObject5 = function () { - return data; - }; - - return data; -} - -function chat_head_templateObject4() { - const data = chat_head_taggedTemplateLiteral(["", ""]); - - chat_head_templateObject4 = function () { - return data; - }; - - return data; -} - -function chat_head_templateObject3() { - const data = chat_head_taggedTemplateLiteral([""]); - - chat_head_templateObject3 = function () { - return data; - }; - - return data; -} - -function chat_head_templateObject2() { - const data = chat_head_taggedTemplateLiteral(["\n
    \n
    \n ", "\n ", "\n
    \n ", "\n
    \n
    \n
    \n ", "\n ", "\n
    \n
    \n ", "\n "]); - - chat_head_templateObject2 = function () { - return data; - }; - - return data; -} - -function chat_head_templateObject() { - const data = chat_head_taggedTemplateLiteral(["", ""]); - - chat_head_templateObject = function () { - return data; - }; - - return data; -} - -function chat_head_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - - - - -/* harmony default export */ const chat_head = (o => { - const tpl_standalone_btns = o => o.standalone_btns.reverse().map(b => until_o(b, '')); - - const avatar = T(chat_head_templateObject(), renderAvatar(o.avatar_data)); - return T(chat_head_templateObject2(), o.status ? '' : "chatbox-title--no-desc", !shared_converse.api.settings.get("singleton") ? T(chat_head_templateObject3(), o.jid) : '', o.type !== shared_converse.HEADLINES_TYPE ? T(chat_head_templateObject4(), o.showUserDetailsModal, avatar) : '', o.jid, o.type !== shared_converse.HEADLINES_TYPE ? T(chat_head_templateObject5(), o.showUserDetailsModal, o.display_name) : o.display_name, o.dropdown_btns.length ? T(chat_head_templateObject6(), o.dropdown_btns) : '', o.standalone_btns.length ? tpl_standalone_btns(o) : '', o.status ? T(chat_head_templateObject7(), o.status) : ''); -}); ;// CONCATENATED MODULE: ./src/plugins/chatview/utils.js -function utils_templateObject2() { - const data = utils_taggedTemplateLiteral(["\n \n "]); - utils_templateObject2 = function () { - return data; - }; - return data; + +function clearHistory(jid) { + if (shared_converse.router.history.getFragment() === `converse/chat?jid=${jid}`) { + shared_converse.router.navigate(''); + } } - -function utils_templateObject() { - const data = utils_taggedTemplateLiteral(["\n ", "\n "]); - - utils_templateObject = function () { - return data; - }; - - return data; -} - -function utils_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - - - async function getHeadingDropdownItem(promise_or_data) { const data = await promise_or_data; - return T(utils_templateObject(), data.a_class, data.handler, data.i18n_title, data.icon_class, data.i18n_text); + return T` + ${data.i18n_text} + `; } async function getHeadingStandaloneButton(promise_or_data) { const data = await promise_or_data; - return T(utils_templateObject2(), data.a_class, data.icon_class, data.handler, data.i18n_title); + return T` + + `; } async function clearMessages(chat) { const result = confirm(__('Are you sure you want to clear the messages from this conversation?')); @@ -45347,6 +47055,64 @@ function resetElementHeight(ev) { ev.target.style = ''; } } +;// CONCATENATED MODULE: ./src/plugins/chatview/templates/chat-head.js + + + + + + + +async function getStandaloneButtons(promise) { + const heading_btns = await promise; + const standalone_btns = heading_btns.filter(b => b.standalone); + return standalone_btns.map(b => getHeadingStandaloneButton(b)); +} + +async function getDropdownButtons(promise) { + const heading_btns = await promise; + const dropdown_btns = heading_btns.filter(b => !b.standalone); + return dropdown_btns.map(b => getHeadingDropdownItem(b)); +} + +/* harmony default export */ const chat_head = (o => { + var _o$model; + + const vcard = (_o$model = o.model) === null || _o$model === void 0 ? void 0 : _o$model.vcard; + const vcard_json = vcard ? vcard.toJSON() : {}; + + const i18n_profile = __("The User's Profile Image"); + + const avatar_data = Object.assign({ + 'alt_text': i18n_profile, + 'extra_classes': '', + 'height': 40, + 'width': 40 + }, vcard_json); + const avatar = T`${renderAvatar(avatar_data)}`; + const display_name = o.model.getDisplayName(); + + const tpl_dropdown_btns = () => getDropdownButtons(o.heading_buttons_promise).then(btns => btns.length ? T`` : ''); + + const tpl_standalone_btns = () => getStandaloneButtons(o.heading_buttons_promise).then(btns => btns.reverse().map(b => until_o(b, ''))); + + return T` +
    +
    + ${!shared_converse.api.settings.get("singleton") ? T`` : ''} + ${o.type !== shared_converse.HEADLINES_TYPE ? T`${avatar}` : ''} +
    + ${o.type !== shared_converse.HEADLINES_TYPE ? T`${display_name}` : display_name} +
    +
    +
    + ${until_o(tpl_dropdown_btns(), '')} + ${until_o(tpl_standalone_btns(), '')} +
    +
    + ${o.status ? T`

    ${o.status}

    ` : ''} + `; +}); // EXTERNAL MODULE: ./src/plugins/chatview/styles/chat-head.scss var styles_chat_head = __webpack_require__(4311); ;// CONCATENATED MODULE: ./src/plugins/chatview/heading.js @@ -45356,32 +47122,35 @@ var styles_chat_head = __webpack_require__(4311); - - - -class ChatHeading extends ElementView { - async render() { - const tpl = await this.generateHeadingTemplate(); - V(tpl, this); +class ChatHeading extends CustomElement { + connectedCallback() { + super.connectedCallback(); + this.initialize(); } - connectedCallback() { + initialize() { var _this$model$rosterCon; - super.connectedCallback(); this.model = shared_converse.chatboxes.get(this.getAttribute('jid')); - this.debouncedRender = lodash_es_debounce(this.render, 100); - this.listenTo(this.model, 'vcard:change', this.debouncedRender); + this.listenTo(this.model, 'change:status', this.requestUpdate); + this.listenTo(this.model, 'vcard:change', this.requestUpdate); if (this.model.contact) { - this.listenTo(this.model.contact, 'destroy', this.debouncedRender); + this.listenTo(this.model.contact, 'destroy', this.requestUpdate); } (_this$model$rosterCon = this.model.rosterContactAdded) === null || _this$model$rosterCon === void 0 ? void 0 : _this$model$rosterCon.then(() => { - this.listenTo(this.model.contact, 'change:nickname', this.debouncedRender); - this.debouncedRender(); + this.listenTo(this.model.contact, 'change:nickname', this.requestUpdate); + this.requestUpdate(); }); - this.render(); + } + + render() { + return chat_head(Object.assign(this.model.toJSON(), { + 'heading_buttons_promise': this.getHeadingButtons(), + 'model': this.model, + 'showUserDetailsModal': ev => this.showUserDetailsModal(ev) + })); } showUserDetailsModal(ev) { @@ -45391,10 +47160,9 @@ class ChatHeading extends ElementView { }, ev); } - close() { - var _converse$chatboxview; - - (_converse$chatboxview = shared_converse.chatboxviews.get(this.getAttribute('jid'))) === null || _converse$chatboxview === void 0 ? void 0 : _converse$chatboxview.close(); + close(ev) { + ev.preventDefault(); + this.model.close(); } /** * Returns a list of objects which represent buttons for the chat's header. @@ -45452,47 +47220,9 @@ class ChatHeading extends ElementView { } } - async generateHeadingTemplate() { - var _this$model; - - const vcard = (_this$model = this.model) === null || _this$model === void 0 ? void 0 : _this$model.vcard; - const vcard_json = vcard ? vcard.toJSON() : {}; - - const i18n_profile = __("The User's Profile Image"); - - const avatar_data = Object.assign({ - 'alt_text': i18n_profile, - 'extra_classes': '', - 'height': 40, - 'width': 40 - }, vcard_json); - const heading_btns = await this.getHeadingButtons(); - const standalone_btns = heading_btns.filter(b => b.standalone); - const dropdown_btns = heading_btns.filter(b => !b.standalone); - return chat_head(Object.assign(this.model.toJSON(), { - avatar_data, - 'display_name': this.model.getDisplayName(), - 'dropdown_btns': dropdown_btns.map(b => getHeadingDropdownItem(b)), - 'showUserDetailsModal': ev => this.showUserDetailsModal(ev), - 'standalone_btns': standalone_btns.map(b => getHeadingStandaloneButton(b)) - })); - } - } api.elements.define('converse-chat-heading', ChatHeading); ;// CONCATENATED MODULE: ./src/plugins/chatview/templates/message-form.js -function message_form_templateObject() { - const data = message_form_taggedTemplateLiteral(["\n
    \n \n ", "\n "]); - - message_form_templateObject = function () { - return data; - }; - - return data; -} - -function message_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -45503,7 +47233,23 @@ function message_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = st const label_spoiler_hint = __('Optional hint'); const show_send_button = api.settings.get('show_send_button'); - return T(message_form_templateObject(), label_spoiler_hint || '', o.hint_value || '', o.composing_spoiler ? '' : 'hidden', o.onDrop, resetElementHeight, o.onKeyDown, o.onKeyUp, o.onPaste, o.onChange, show_send_button ? 'chat-textarea-send-button' : '', o.composing_spoiler ? 'spoiler' : '', label_message, o.message_value || ''); + return T` +
    + + +
    `; }); ;// CONCATENATED MODULE: ./src/plugins/chatview/message-form.js @@ -45712,7 +47458,10 @@ class MessageForm extends ElementView { textarea.setAttribute('disabled', 'disabled'); (_this$querySelector3 = this.querySelector('converse-emoji-dropdown')) === null || _this$querySelector3 === void 0 ? void 0 : _this$querySelector3.hideMenu(); const is_command = this.parseMessageForCommands(message_text); - const message = is_command ? null : await this.model.sendMessage(message_text, spoiler_hint); + const message = is_command ? null : await this.model.sendMessage({ + 'body': message_text, + spoiler_hint + }); if (is_command || message) { hint_el.value = ''; @@ -45755,38 +47504,6 @@ class MessageForm extends ElementView { } api.elements.define('converse-message-form', MessageForm); ;// CONCATENATED MODULE: ./src/plugins/chatview/templates/bottom-panel.js -function bottom_panel_templateObject3() { - const data = bottom_panel_taggedTemplateLiteral(["\n "]); - - bottom_panel_templateObject3 = function () { - return data; - }; - - return data; -} - -function bottom_panel_templateObject2() { - const data = bottom_panel_taggedTemplateLiteral(["
    \u25BC ", " \u25BC
    "]); - - bottom_panel_templateObject2 = function () { - return data; - }; - - return data; -} - -function bottom_panel_templateObject() { - const data = bottom_panel_taggedTemplateLiteral(["\n ", "\n ", "\n \n "]); - - bottom_panel_templateObject = function () { - return data; - }; - - return data; -} - -function bottom_panel_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -45799,7 +47516,21 @@ function bottom_panel_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = st const show_send_button = api.settings.get('show_send_button'); const show_spoiler_button = api.settings.get('visible_toolbar_buttons').spoiler; const show_toolbar = api.settings.get('show_toolbar'); - return T(bottom_panel_templateObject(), o.model.get('scrolled') && o.model.get('num_unread') ? T(bottom_panel_templateObject2(), ev => o.viewUnreadMessages(ev), unread_msgs) : '', api.settings.get('show_toolbar') ? T(bottom_panel_templateObject3(), o.model, o.model.get('composing_spoiler'), show_call_button, show_emoji_button, show_send_button, show_spoiler_button, show_toolbar, message_limit) : '', o.model.get('jid')); + return T` + ${o.model.ui.get('scrolled') && o.model.get('num_unread') ? T`
    o.viewUnreadMessages(ev)}>▼ ${unread_msgs} ▼
    ` : ''} + ${api.settings.get('show_toolbar') ? T` + ` : ''} + + `; }); // EXTERNAL MODULE: ./src/plugins/chatview/styles/chat-bottom-panel.scss var chat_bottom_panel = __webpack_require__(6694); @@ -45815,25 +47546,31 @@ function bottom_panel_defineProperty(obj, key, value) { if (key in obj) { Object class ChatBottomPanel extends ElementView { - constructor(...args) { - super(...args); + constructor() { + super(); bottom_panel_defineProperty(this, "events", { 'click .send-button': 'sendButtonClicked', 'click .toggle-clear': 'clearMessages' }); + + this.debouncedRender = lodash_es_debounce(this.render, 100); } async connectedCallback() { super.connectedCallback(); - this.debouncedRender = lodash_es_debounce(this.render, 100); - this.model = shared_converse.chatboxes.get(this.getAttribute('jid')); + await this.initialize(); + this.render(); // don't call in initialize, since the MUCBottomPanel subclasses it + // and we want to render after it has finished as wel. + } + + async initialize() { + this.model = await api.chatboxes.get(this.getAttribute('jid')); await this.model.initialized; this.listenTo(this.model, 'change:num_unread', this.debouncedRender); this.listenTo(this.model, 'emoji-picker-autocomplete', this.autocompleteInPicker); this.addEventListener('focusin', ev => this.emitFocused(ev)); this.addEventListener('focusout', ev => this.emitBlurred(ev)); - this.render(); } render() { @@ -45853,7 +47590,7 @@ class ChatBottomPanel extends ElementView { var _ev$preventDefault; ev === null || ev === void 0 ? void 0 : (_ev$preventDefault = ev.preventDefault) === null || _ev$preventDefault === void 0 ? void 0 : _ev$preventDefault.call(ev); - this.model.save({ + this.model.ui.set({ 'scrolled': false }); } @@ -45870,11 +47607,6 @@ class ChatBottomPanel extends ElementView { (_converse$chatboxview2 = shared_converse.chatboxviews.get(this.getAttribute('jid'))) === null || _converse$chatboxview2 === void 0 ? void 0 : _converse$chatboxview2.emitBlurred(ev); } - getToolbarOptions() { - // eslint-disable-line class-methods-use-this - return {}; - } - onDrop(evt) { if (evt.dataTransfer.files.length == 0) { // There are no files to be dropped, so this isn’t a file @@ -45919,7 +47651,6 @@ api.elements.define('converse-chat-bottom-panel', ChatBottomPanel); -const baseview_u = core_converse.env.utils; class BaseChatView extends CustomElement { static get properties() { return { @@ -45938,12 +47669,22 @@ class BaseChatView extends CustomElement { updated() { if (this.model && this.jid !== this.model.get('jid')) { this.stopListening(); + + shared_converse.chatboxviews.remove(this.model.get('jid'), this); + delete this.model; this.requestUpdate(); this.initialize(); } } + close(ev) { + var _ev$preventDefault; + + ev === null || ev === void 0 ? void 0 : (_ev$preventDefault = ev.preventDefault) === null || _ev$preventDefault === void 0 ? void 0 : _ev$preventDefault.call(ev); + return this.model.close(ev); + } + maybeFocus() { api.settings.get('auto_focus') && this.focus(); } @@ -45990,23 +47731,6 @@ class BaseChatView extends CustomElement { api.trigger('chatBoxFocused', this, ev); } - onStatusMessageChanged(item) { - this.renderHeading(); - /** - * When a contact's custom status message has changed. - * @event _converse#contactStatusMessageChanged - * @type {object} - * @property { object } contact - The chat buddy - * @property { string } message - The message text - * @example _converse.api.listen.on('contactStatusMessageChanged', obj => { ... }); - */ - - api.trigger('contactStatusMessageChanged', { - 'contact': item.attributes, - 'message': item.get('status') - }); - } - getBottomPanel() { if (this.model.get('type') === shared_converse.CHATROOMS_TYPE) { return this.querySelector('converse-muc-bottom-panel'); @@ -46032,13 +47756,13 @@ class BaseChatView extends CustomElement { scrollDown(ev) { - var _ev$preventDefault, _ev$stopPropagation; + var _ev$preventDefault2, _ev$stopPropagation; - ev === null || ev === void 0 ? void 0 : (_ev$preventDefault = ev.preventDefault) === null || _ev$preventDefault === void 0 ? void 0 : _ev$preventDefault.call(ev); + ev === null || ev === void 0 ? void 0 : (_ev$preventDefault2 = ev.preventDefault) === null || _ev$preventDefault2 === void 0 ? void 0 : _ev$preventDefault2.call(ev); ev === null || ev === void 0 ? void 0 : (_ev$stopPropagation = ev.stopPropagation) === null || _ev$stopPropagation === void 0 ? void 0 : _ev$stopPropagation.call(ev); - if (this.model.get('scrolled')) { - baseview_u.safeSave(this.model, { + if (this.model.ui.get('scrolled')) { + this.model.ui.set({ 'scrolled': false }); } @@ -46061,43 +47785,35 @@ class BaseChatView extends CustomElement { } ;// CONCATENATED MODULE: ./src/plugins/chatview/templates/chat.js -function chat_templateObject3() { - const data = chat_taggedTemplateLiteral(["
    \n
    "]); - - chat_templateObject3 = function () { - return data; - }; - - return data; -} - -function chat_templateObject2() { - const data = chat_taggedTemplateLiteral(["\n \n
    \n
    \n \n\n ", "\n
    \n \n
    \n "]); - - chat_templateObject2 = function () { - return data; - }; - - return data; -} - -function chat_templateObject() { - const data = chat_taggedTemplateLiteral(["\n
    \n \n ", "\n
    \n"]); - - chat_templateObject = function () { - return data; - }; - - return data; -} - -function chat_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +/* harmony default export */ const chat = (o => T` +
    + + ${o.model ? T` + +
    +
    + -/* harmony default export */ const chat = (o => T(chat_templateObject(), o.model ? T(chat_templateObject2(), o.jid, o.show_send_button ? 'chat-content-sendbutton' : '', o.jid, o.show_help_messages ? T(chat_templateObject3(), o.model, o.help_messages, !o.show_help_messages, shared_converse.CHATROOMS_TYPE) : '', o.jid) : '')); -;// CONCATENATED MODULE: ./src/plugins/chatview/view.js -function view_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + ${o.show_help_messages ? T`
    +
    ` : ''} +
    + +
    + ` : ''} +
    +`); +;// CONCATENATED MODULE: ./src/plugins/chatview/chat.js +function chat_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -46116,7 +47832,7 @@ class ChatView extends BaseChatView { constructor(...args) { super(...args); - view_defineProperty(this, "length", 200); + chat_defineProperty(this, "length", 200); } connectedCallback() { @@ -46131,7 +47847,6 @@ class ChatView extends BaseChatView { this.listenTo(shared_converse, 'windowStateChanged', this.onWindowStateChanged); this.listenTo(this.model, 'change:hidden', () => !this.model.get('hidden') && this.afterShown()); this.listenTo(this.model, 'change:show_help_messages', this.requestUpdate); - this.listenTo(this.model, 'change:status', this.onStatusMessageChanged); await this.model.messages.fetched; !this.model.get('hidden') && this.afterShown(); /** @@ -46154,7 +47869,7 @@ class ChatView extends BaseChatView { getHelpMessages() { // eslint-disable-line class-methods-use-this - return ["/clear: ".concat(__('Remove messages')), "/close: ".concat(__('Close this chat')), "/me: ".concat(__('Write in the third person')), "/help: ".concat(__('Show this menu'))]; + return [`/clear: ${__('Remove messages')}`, `/close: ${__('Close this chat')}`, `/me: ${__('Write in the third person')}`, `/help: ${__('Show this menu')}`]; } showControlBox() { @@ -46164,74 +47879,19 @@ class ChatView extends BaseChatView { // Used in mobile view, to navigate back to the controlbox (_converse$chatboxview = shared_converse.chatboxviews.get('controlbox')) === null || _converse$chatboxview === void 0 ? void 0 : _converse$chatboxview.show(); } - /** - * Closes this chat - * @private - * @method _converse.ChatBoxView#close - */ - - - close(ev) { - var _ev$preventDefault; - - ev === null || ev === void 0 ? void 0 : (_ev$preventDefault = ev.preventDefault) === null || _ev$preventDefault === void 0 ? void 0 : _ev$preventDefault.call(ev); - - if (shared_converse.router.history.getFragment() === 'converse/chat?jid=' + this.model.get('jid')) { - shared_converse.router.navigate(''); - } - - return this.model.close(ev); - } afterShown() { this.model.setChatState(shared_converse.ACTIVE); + this.model.clearUnreadMsgCounter(); this.maybeFocus(); } } api.elements.define('converse-chat', ChatView); -;// CONCATENATED MODULE: ./src/plugins/chatview/api.js - -/* harmony default export */ const chatview_api = ({ - /** - * The "chatview" namespace groups methods pertaining to views - * for one-on-one chats. - * - * @namespace _converse.api.chatviews - * @memberOf _converse.api - */ - chatviews: { - /** - * Get the view of an already open chat. - * @method _converse.api.chatviews.get - * @param { Array.string | string } jids - * @returns { _converse.ChatBoxView|undefined } The chat should already be open, otherwise `undefined` will be returned. - * @example - * // To return a single view, provide the JID of the contact: - * _converse.api.chatviews.get('buddy@example.com') - * @example - * // To return an array of views, provide an array of JIDs: - * _converse.api.chatviews.get(['buddy1@example.com', 'buddy2@example.com']) - */ - get(jids) { - if (jids === undefined) { - return Object.values(shared_converse.chatboxviews.getAll()); - } - - if (typeof jids === 'string') { - return shared_converse.chatboxviews.get(jids); - } - - return jids.map(jid => shared_converse.chatboxviews.get(jid)); - } - - } -}); // EXTERNAL MODULE: ./src/plugins/chatview/styles/index.scss var chatview_styles = __webpack_require__(9475); ;// CONCATENATED MODULE: ./src/plugins/chatview/index.js /** - * @module converse-chatview * @copyright 2020, the Converse.js contributors * @license Mozilla Public License (MPLv2) */ @@ -46267,6 +47927,8 @@ core_converse.plugins.add('converse-chatview', { api.settings.extend({ 'auto_focus': true, 'debounced_content_rendering': true, + 'embed_videos': true, + 'embed_audio': true, 'filter_url_query_params': null, 'image_urls_regex': null, 'message_limit': 0, @@ -46285,35 +47947,13 @@ core_converse.plugins.add('converse-chatview', { 'spoiler': true } }); - Object.assign(api, chatview_api); shared_converse.ChatBoxView = ChatView; api.listen.on('connected', () => api.disco.own.features.add(chatview_Strophe.NS.SPOILER)); + api.listen.on('chatBoxClosed', model => clearHistory(model.get('jid'))); } }); ;// CONCATENATED MODULE: ./src/shared/components/brand-byline.js -function brand_byline_templateObject2() { - const data = brand_byline_taggedTemplateLiteral(["\n

    ", "

    \n

    \n Open Source XMPP chat client\n brought to you by Opkode\n

    \n

    \n Translate\n it into your own language\n

    \n "]); - - brand_byline_templateObject2 = function () { - return data; - }; - - return data; -} - -function brand_byline_templateObject() { - const data = brand_byline_taggedTemplateLiteral(["\n ", "\n "]); - - brand_byline_templateObject = function () { - return data; - }; - - return data; -} - -function brand_byline_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -46321,34 +47961,26 @@ class ConverseBrandByline extends CustomElement { render() { // eslint-disable-line class-methods-use-this const is_fullscreen = api.settings.get('view_mode') === 'fullscreen'; - return T(brand_byline_templateObject(), is_fullscreen ? T(brand_byline_templateObject2(), shared_converse.VERSION_NAME) : ''); + return T` + ${is_fullscreen ? T` +

    ${shared_converse.VERSION_NAME}

    +

    + Open Source XMPP chat client + brought to you by Opkode +

    +

    + Translate + it into your own language +

    + ` : ''} + `; } } api.elements.define('converse-brand-byline', ConverseBrandByline); ;// CONCATENATED MODULE: ./src/shared/components/brand-logo.js -function brand_logo_templateObject2() { - const data = brand_logo_taggedTemplateLiteral(["\n

    messaging freedom

    \n "]); - - brand_logo_templateObject2 = function () { - return data; - }; - - return data; -} - -function brand_logo_templateObject() { - const data = brand_logo_taggedTemplateLiteral(["\n \n \n \n\n Converse\n \n \n \n \n \n \n \n \n \n \n converse.js\n ", "\n \n \n \n "]); - - brand_logo_templateObject = function () { - return data; - }; - - return data; -} - -function brand_logo_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -46356,24 +47988,46 @@ class ConverseBrandLogo extends CustomElement { render() { // eslint-disable-line class-methods-use-this const is_fullscreen = api.settings.get('view_mode') === 'fullscreen'; - return T(brand_logo_templateObject(), is_fullscreen ? 'brand-name-wrapper--fullscreen' : '', is_fullscreen ? T(brand_logo_templateObject2()) : ''); + return T` + + + + + converse.js + ${is_fullscreen ? T` + + ` : ''} + + + + `; } } api.elements.define('converse-brand-logo', ConverseBrandLogo); ;// CONCATENATED MODULE: ./src/shared/components/brand-heading.js -function brand_heading_templateObject() { - const data = brand_heading_taggedTemplateLiteral(["\n \n \n "]); - - brand_heading_templateObject = function () { - return data; - }; - - return data; -} - -function brand_heading_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -46382,94 +48036,15 @@ function brand_heading_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = s class ConverseBrandHeading extends CustomElement { render() { // eslint-disable-line class-methods-use-this - return T(brand_heading_templateObject()); + return T` + + + `; } } api.elements.define('converse-brand-heading', ConverseBrandHeading); ;// CONCATENATED MODULE: ./src/plugins/controlbox/templates/loginpanel.js -function loginpanel_templateObject8() { - const data = loginpanel_taggedTemplateLiteral(["\n \n
    \n
    \n

    ", "

    \n

    ", "

    \n
    \n ", "\n
    \n"]); - - loginpanel_templateObject8 = function () { - return data; - }; - - return data; -} - -function loginpanel_templateObject7() { - const data = loginpanel_taggedTemplateLiteral(["

    ", "

    "]); - - loginpanel_templateObject7 = function () { - return data; - }; - - return data; -} - -function loginpanel_templateObject6() { - const data = loginpanel_taggedTemplateLiteral([""]); - - loginpanel_templateObject6 = function () { - return data; - }; - - return data; -} - -function loginpanel_templateObject5() { - const data = loginpanel_taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n "]); - - loginpanel_templateObject5 = function () { - return data; - }; - - return data; -} - -function loginpanel_templateObject4() { - const data = loginpanel_taggedTemplateLiteral(["\n
    \n \n \n
    \n ", "\n ", "\n
    \n \n
    \n ", "\n "]); - - loginpanel_templateObject4 = function () { - return data; - }; - - return data; -} - -function loginpanel_templateObject3() { - const data = loginpanel_taggedTemplateLiteral(["\n
    \n

    ", "

    \n

    \n
    \n "]); - - loginpanel_templateObject3 = function () { - return data; - }; - - return data; -} - -function loginpanel_templateObject2() { - const data = loginpanel_taggedTemplateLiteral(["\n
    \n \n \n
    \n "]); - - loginpanel_templateObject2 = function () { - return data; - }; - - return data; -} - -function loginpanel_templateObject() { - const data = loginpanel_taggedTemplateLiteral(["\n
    \n \n \n \n
    \n "]); - - loginpanel_templateObject = function () { - return data; - }; - - return data; -} - -function loginpanel_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -46481,13 +48056,26 @@ const trust_checkbox = checked => { const i18n_trusted = __('This is a trusted device'); - return T(loginpanel_templateObject(), checked, i18n_trusted, i18n_hint_trusted); + return T` + + `; }; const password_input = () => { const i18n_password = __('Password'); - return T(loginpanel_templateObject2(), i18n_password, i18n_password); + return T` +
    + + +
    + `; }; const register_link = () => { @@ -46495,7 +48083,12 @@ const register_link = () => { const i18n_hint_no_account = __("Don't have a chat account?"); - return T(loginpanel_templateObject3(), i18n_hint_no_account, i18n_create_account); + return T` +
    +

    ${i18n_hint_no_account}

    +

    +
    + `; }; const show_register_link = () => { @@ -46507,7 +48100,24 @@ const auth_fields = o => { const i18n_xmpp_address = __("XMPP Address"); - return T(loginpanel_templateObject4(), i18n_xmpp_address, api.settings.get('auto_focus') ? true : false, o.placeholder_username, o.authentication !== o.EXTERNAL ? password_input() : '', o.show_trust_checkbox ? trust_checkbox(o.show_trust_checkbox === 'off' ? false : true) : '', i18n_login, show_register_link() ? register_link(o) : ''); + return T` +
    + + +
    + ${o.authentication !== o.EXTERNAL ? password_input() : ''} + ${o.show_trust_checkbox ? trust_checkbox(o.show_trust_checkbox === 'off' ? false : true) : ''} +
    + +
    + ${show_register_link() ? register_link(o) : ''} + `; }; const form_fields = o => { @@ -46515,12 +48125,25 @@ const form_fields = o => { const i18n_anon_login = __('Click here to log in anonymously'); - return T(loginpanel_templateObject5(), o.authentication == o.LOGIN || o.authentication == o.EXTERNAL ? auth_fields(o) : '', o.authentication == o.ANONYMOUS ? T(loginpanel_templateObject6(), i18n_anon_login) : '', o.authentication == o.PREBIND ? T(loginpanel_templateObject7(), i18n_disconnected) : ''); + return T` + ${o.authentication == o.LOGIN || o.authentication == o.EXTERNAL ? auth_fields(o) : ''} + ${o.authentication == o.ANONYMOUS ? T`` : ''} + ${o.authentication == o.PREBIND ? T`

    ${i18n_disconnected}

    ` : ''} + `; }; -/* harmony default export */ const loginpanel = (o => T(loginpanel_templateObject8(), !o.conn_feedback_subject ? 'hidden' : o.conn_feedback_class, o.conn_feedback_subject, !o.conn_feedback_message ? 'hidden' : '', o.conn_feedback_message, shared_converse.CONNECTION_STATUS[o.connection_status] === 'CONNECTING' ? spinner({ +/* harmony default export */ const loginpanel = (o => T` + +
    +
    + + +
    + ${shared_converse.CONNECTION_STATUS[o.connection_status] === 'CONNECTING' ? spinner({ 'classes': 'hor_centered' -}) : form_fields(o))); +}) : form_fields(o)} +
    +`); ;// CONCATENATED MODULE: ./src/plugins/controlbox/loginpanel.js function loginpanel_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -46733,23 +48356,44 @@ function navigateToControlBox(jid) { 'hidden': true }); } -;// CONCATENATED MODULE: ./src/plugins/controlbox/templates/navback.js -function navback_templateObject() { - const data = navback_taggedTemplateLiteral([""]); +function disconnect() { + /* Upon disconnection, set connected to `false`, so that if + * we reconnect, "onConnected" will be called, + * to fetch the roster again and to send out a presence stanza. + */ + const view = shared_converse.chatboxviews.get('controlbox'); - navback_templateObject = function () { - return data; - }; - - return data; + view.model.set({ + 'connected': false + }); + return view; } +function controlbox_utils_clearSession() { + const chatboxviews = shared_converse === null || shared_converse === void 0 ? void 0 : shared_converse.chatboxviews; + const view = chatboxviews && chatboxviews.get('controlbox'); -function navback_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } + if (view) { + controlbox_utils_u.safeSave(view.model, { + 'connected': false + }); + if (view !== null && view !== void 0 && view.controlbox_pane) { + view.controlbox_pane.remove(); + delete view.controlbox_pane; + } + } +} +function onChatBoxesFetched() { + const controlbox = shared_converse.chatboxes.get('controlbox') || addControlBox(); + controlbox.save({ + 'connected': true + }); +} +;// CONCATENATED MODULE: ./src/plugins/controlbox/templates/navback.js /* harmony default export */ const navback = (jid => { - return T(navback_templateObject(), () => navigateToControlBox(jid)); + return T` navigateToControlBox(jid)}>`; }); ;// CONCATENATED MODULE: ./src/plugins/controlbox/navback.js @@ -46775,12 +48419,11 @@ api.elements.define('converse-controlbox-navback', ControlBoxNavback); /* harmony default export */ const controlbox_navback = ((/* unused pure expression or super */ null && (ControlBoxNavback))); ;// CONCATENATED MODULE: ./src/plugins/controlbox/model.js + const { dayjs: model_dayjs } = core_converse.env; /** - * Mixin which turns a ChatBox model into a ControlBox model. - * * The ControlBox is the section of the chat that contains the open groupchats, * bookmarks and roster. * @@ -46789,7 +48432,7 @@ const { * @mixin */ -const ControlBoxMixin = { +const ControlBox = Model.extend({ defaults() { return { 'bookmarked': false, @@ -46797,22 +48440,12 @@ const ControlBoxMixin = { 'chat_state': undefined, 'closed': !api.settings.get('show_controlbox_by_default'), 'num_unread': 0, - 'time_opened': this.get('time_opened') || new Date().getTime(), + 'time_opened': model_dayjs(0).valueOf(), 'type': shared_converse.CONTROLBOX_TYPE, 'url': '' }; }, - initialize() { - if (this.get('id') === 'controlbox') { - this.set({ - 'time_opened': model_dayjs(0).valueOf() - }); - } else { - shared_converse.ChatBox.prototype.initialize.apply(this, arguments); - } - }, - validate(attrs) { if (attrs.type === shared_converse.CONTROLBOX_TYPE) { if (api.settings.get('view_mode') === 'embedded' && api.settings.get('singleton')) { @@ -46838,27 +48471,15 @@ const ControlBoxMixin = { this.save('connected', true); } -}; -/* harmony default export */ const controlbox_model = (ControlBoxMixin); +}); +/* harmony default export */ const controlbox_model = (ControlBox); ;// CONCATENATED MODULE: ./src/plugins/controlbox/templates/toggle.js -function toggle_templateObject() { - const data = toggle_taggedTemplateLiteral(["", ""]); - - toggle_templateObject = function () { - return data; - }; - - return data; -} - -function toggle_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const toggle = (o => { const i18n_toggle = api.connection.connected() ? __('Chat Contacts') : __('Toggle chat'); - return T(toggle_templateObject(), o.hide ? 'hidden' : '', o.onClick, i18n_toggle); + return T`${i18n_toggle}`; }); ;// CONCATENATED MODULE: ./src/plugins/controlbox/toggle.js @@ -46880,7 +48501,7 @@ class ControlBoxToggle extends CustomElement { return toggle({ 'onClick': showControlBox, - 'hide': !((_this$model = this.model) === null || _this$model === void 0 ? void 0 : _this$model.get('closed')) + 'hide': !((_this$model = this.model) !== null && _this$model !== void 0 && _this$model.get('closed')) }); } @@ -46889,71 +48510,30 @@ class ControlBoxToggle extends CustomElement { api.elements.define('converse-controlbox-toggle', ControlBoxToggle); /* harmony default export */ const controlbox_toggle = (ControlBoxToggle); ;// CONCATENATED MODULE: ./src/plugins/controlbox/templates/controlbox.js -function controlbox_templateObject6() { - const data = controlbox_taggedTemplateLiteral([""]); - - controlbox_templateObject6 = function () { - return data; - }; - - return data; -} - -function controlbox_templateObject5() { - const data = controlbox_taggedTemplateLiteral([""]); - - controlbox_templateObject5 = function () { - return data; - }; - - return data; -} - -function controlbox_templateObject4() { - const data = controlbox_taggedTemplateLiteral(["
    "]); - - controlbox_templateObject4 = function () { - return data; - }; - - return data; -} - -function controlbox_templateObject3() { - const data = controlbox_taggedTemplateLiteral(["\n \n \n
    \n \n \n
    \n ", ""]); - - controlbox_templateObject3 = function () { - return data; - }; - - return data; -} - -function controlbox_templateObject2() { - const data = controlbox_taggedTemplateLiteral(["\n \n "]); - - controlbox_templateObject2 = function () { - return data; - }; - - return data; -} - -function controlbox_templateObject() { - const data = controlbox_taggedTemplateLiteral(["\n
    \n \n
    \n ", "\n
    \n
    \n
    \n ", "\n
    \n
    \n
    \n"]); - - controlbox_templateObject = function () { - return data; - }; - - return data; -} - -function controlbox_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const controlbox = (o => T(controlbox_templateObject(), o.sticky_controlbox ? '' : T(controlbox_templateObject2(), o.close), o.connected ? T(controlbox_templateObject3(), api.settings.get("authentication") === shared_converse.ANONYMOUS ? '' : T(controlbox_templateObject4())) : o['active-form'] === 'register' ? T(controlbox_templateObject5()) : T(controlbox_templateObject6()))); +/* harmony default export */ const controlbox = (o => T` +
    + +
    + ${o.sticky_controlbox ? '' : T` + + `} +
    +
    +
    + ${o.connected ? T` + + +
    + + +
    + ${api.settings.get("authentication") === shared_converse.ANONYMOUS ? '' : T`
    `}` : o['active-form'] === 'register' ? T`` : T``} +
    +
    +
    +`); ;// CONCATENATED MODULE: ./src/plugins/controlbox/controlbox.js @@ -46968,7 +48548,7 @@ const controlbox_u = core_converse.env.utils; * `view_mode` it's a left-aligned sidebar. */ -class ControlBox extends ElementView { +class controlbox_ControlBox extends ElementView { initialize() { this.setModel(); this.render(); @@ -47052,8 +48632,8 @@ class ControlBox extends ElementView { } -api.elements.define('converse-controlbox', ControlBox); -/* harmony default export */ const controlbox_controlbox = (ControlBox); +api.elements.define('converse-controlbox', controlbox_ControlBox); +/* harmony default export */ const controlbox_controlbox = (controlbox_ControlBox); ;// CONCATENATED MODULE: ./src/plugins/controlbox/api.js const { @@ -47098,7 +48678,6 @@ const { var _controlbox = __webpack_require__(9980); ;// CONCATENATED MODULE: ./src/plugins/controlbox/index.js /** - * @module converse-controlbox * @copyright 2020, the Converse.js contributors * @license Mozilla Public License (MPLv2) */ @@ -47114,44 +48693,6 @@ var _controlbox = __webpack_require__(9980); -const plugins_controlbox_u = core_converse.env.utils; - -function disconnect() { - /* Upon disconnection, set connected to `false`, so that if - * we reconnect, "onConnected" will be called, - * to fetch the roster again and to send out a presence stanza. - */ - const view = shared_converse.chatboxviews.get('controlbox'); - - view.model.set({ - 'connected': false - }); - return view; -} - -function controlbox_clearSession() { - const chatboxviews = shared_converse === null || shared_converse === void 0 ? void 0 : shared_converse.chatboxviews; - const view = chatboxviews && chatboxviews.get('controlbox'); - - if (view) { - plugins_controlbox_u.safeSave(view.model, { - 'connected': false - }); - - if (view === null || view === void 0 ? void 0 : view.controlbox_pane) { - view.controlbox_pane.remove(); - delete view.controlbox_pane; - } - } -} - -function onChatBoxesFetched() { - const controlbox = shared_converse.chatboxes.get('controlbox') || addControlBox(); - controlbox.save({ - 'connected': true - }); -} - core_converse.plugins.add('converse-controlbox', { /* Plugin dependencies are other plugins which might be * overridden or relied upon, and therefore need to be loaded before @@ -47177,12 +48718,8 @@ core_converse.plugins.add('converse-controlbox', { // New functions which don't exist yet can also be added. ChatBoxes: { model(attrs, options) { - const { - _converse - } = this.__super__; - if (attrs && attrs.id == 'controlbox') { - return new _converse.ControlBox(attrs, options); + return new controlbox_model(attrs, options); } else { return this.__super__.model.apply(this, arguments); } @@ -47203,13 +48740,13 @@ core_converse.plugins.add('converse-controlbox', { api.promises.add('controlBoxInitialized'); Object.assign(api, controlbox_api); shared_converse.ControlBoxView = controlbox_controlbox; - shared_converse.ControlBox = shared_converse.ChatBox.extend(controlbox_model); + shared_converse.ControlBox = controlbox_model; shared_converse.ControlBoxToggle = controlbox_toggle; /******************** Event Handlers ********************/ api.listen.on('chatBoxesFetched', onChatBoxesFetched); api.listen.on('cleanup', () => delete shared_converse.controlboxtoggle); - api.listen.on('clearSession', controlbox_clearSession); + api.listen.on('clearSession', controlbox_utils_clearSession); api.listen.on('will-reconnect', disconnect); api.waitUntil('chatBoxViewsInitialized').then(addControlBox).catch(e => headless_log.fatal(e)); } @@ -47346,21 +48883,13 @@ function onMouseUp(ev) { shared_converse.resizing = null; } ;// CONCATENATED MODULE: ./src/plugins/dragresize/templates/dragresize.js -function dragresize_templateObject() { - const data = dragresize_taggedTemplateLiteral(["\n
    \n
    \n
    \n"]); - - dragresize_templateObject = function () { - return data; - }; - - return data; -} - -function dragresize_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const dragresize = (() => T(dragresize_templateObject(), onStartVerticalResize, onStartDiagonalResize, onStartHorizontalResize)); +/* harmony default export */ const dragresize = (() => T` +
    +
    +
    +`); ;// CONCATENATED MODULE: ./src/plugins/dragresize/components/dragresize.js @@ -47408,7 +48937,7 @@ const DragResizableMixin = { this.prev_pageY = 0; this.prev_pageX = 0; - if ((_converse$connection = shared_converse.connection) === null || _converse$connection === void 0 ? void 0 : _converse$connection.connected) { + if ((_converse$connection = shared_converse.connection) !== null && _converse$connection !== void 0 && _converse$connection.connected) { this.height = this.model.get('height'); this.width = this.model.get('width'); } @@ -47643,55 +49172,25 @@ core_converse.plugins.add('converse-fullscreen', { }); ;// CONCATENATED MODULE: ./src/plugins/headlines-view/templates/chat-head.js -function templates_chat_head_templateObject4() { - const data = templates_chat_head_taggedTemplateLiteral(["

    ", "

    "]); - - templates_chat_head_templateObject4 = function () { - return data; - }; - - return data; -} - -function templates_chat_head_templateObject3() { - const data = templates_chat_head_taggedTemplateLiteral([""]); - - templates_chat_head_templateObject3 = function () { - return data; - }; - - return data; -} - -function templates_chat_head_templateObject2() { - const data = templates_chat_head_taggedTemplateLiteral([""]); - - templates_chat_head_templateObject2 = function () { - return data; - }; - - return data; -} - -function templates_chat_head_templateObject() { - const data = templates_chat_head_taggedTemplateLiteral(["\n
    \n
    \n ", "\n
    ", "
    \n
    \n
    \n ", "\n ", "\n
    \n
    \n ", "\n "]); - - templates_chat_head_templateObject = function () { - return data; - }; - - return data; -} - -function templates_chat_head_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const templates_chat_head = (o => { const tpl_standalone_btns = o => o.standalone_btns.reverse().map(b => until_o(b, '')); - return T(templates_chat_head_templateObject(), o.status ? '' : "chatbox-title--no-desc", !shared_converse.api.settings.get("singleton") ? T(templates_chat_head_templateObject2(), o.jid) : '', o.jid, o.display_name, o.dropdown_btns.length ? T(templates_chat_head_templateObject3(), o.dropdown_btns) : '', o.standalone_btns.length ? tpl_standalone_btns(o) : '', o.status ? T(templates_chat_head_templateObject4(), o.status) : ''); + return T` +
    +
    + ${!shared_converse.api.settings.get("singleton") ? T`` : ''} +
    ${o.display_name}
    +
    +
    + ${o.dropdown_btns.length ? T`` : ''} + ${o.standalone_btns.length ? tpl_standalone_btns(o) : ''} +
    +
    + ${o.status ? T`

    ${o.status}

    ` : ''} + `; }); ;// CONCATENATED MODULE: ./src/plugins/headlines-view/heading.js @@ -47699,7 +49198,8 @@ function templates_chat_head_taggedTemplateLiteral(strings, raw) { if (!raw) { r -class HeadlinesHeading extends ChatHeading { + +class HeadlinesHeading extends ElementView { async connectedCallback() { super.connectedCallback(); this.model = shared_converse.chatboxes.get(this.getAttribute('jid')); @@ -47707,6 +49207,11 @@ class HeadlinesHeading extends ChatHeading { this.render(); } + async render() { + const tpl = await this.generateHeadingTemplate(); + V(tpl, this); + } + async generateHeadingTemplate() { const heading_btns = await this.getHeadingButtons(); const standalone_btns = heading_btns.filter(b => b.standalone); @@ -47743,34 +49248,31 @@ class HeadlinesHeading extends ChatHeading { return shared_converse.api.hook('getHeadingButtons', this, buttons); } + close(ev) { + ev.preventDefault(); + this.model.close(); + } + } api.elements.define('converse-headlines-heading', HeadlinesHeading); ;// CONCATENATED MODULE: ./src/plugins/headlines-view/templates/headlines.js -function headlines_templateObject2() { - const data = headlines_taggedTemplateLiteral(["\n \n \n
    \n
    \n \n
    \n
    "]); - - headlines_templateObject2 = function () { - return data; - }; - - return data; -} - -function headlines_templateObject() { - const data = headlines_taggedTemplateLiteral(["\n
    \n \n ", "\n
    \n"]); - - headlines_templateObject = function () { - return data; - }; - - return data; -} - -function headlines_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const headlines = (model => T(headlines_templateObject(), model ? T(headlines_templateObject2(), model.get('jid'), model.get('jid')) : '')); +/* harmony default export */ const headlines = (model => T` +
    + + ${model ? T` + + +
    +
    + +
    +
    ` : ''} +
    +`); ;// CONCATENATED MODULE: ./src/plugins/headlines-view/view.js @@ -47791,7 +49293,6 @@ class HeadlinesView extends BaseChatView { this.listenTo(shared_converse, 'windowStateChanged', this.onWindowStateChanged); this.listenTo(this.model, 'change:hidden', () => this.afterShown()); this.listenTo(this.model, 'destroy', this.remove); - this.listenTo(this.model, 'show', this.show); this.listenTo(this.model.messages, 'add', this.requestUpdate); this.listenTo(this.model.messages, 'remove', this.requestUpdate); this.listenTo(this.model.messages, 'reset', this.requestUpdate); @@ -47821,7 +49322,6 @@ class HeadlinesView extends BaseChatView { } await this.model.close(ev); - api.trigger('chatBoxClosed', this); return this; } @@ -47833,59 +49333,44 @@ class HeadlinesView extends BaseChatView { } afterShown() { - // eslint-disable-line class-methods-use-this - return; + this.model.clearUnreadMsgCounter(); } } api.elements.define('converse-headlines', HeadlinesView); ;// CONCATENATED MODULE: ./src/templates/headline_list.js -function headline_list_templateObject2() { - const data = headline_list_taggedTemplateLiteral(["\n
    \n
    \n ", "\n
    \n
    \n"]); - - headline_list_templateObject2 = function () { - return data; - }; - - return data; -} - -function headline_list_templateObject() { - const data = headline_list_taggedTemplateLiteral(["\n
    \n ", "\n
    \n"]); - - headline_list_templateObject = function () { - return data; - }; - - return data; -} - -function headline_list_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +const tpl_headline_box = o => T` + +`; -const tpl_headline_box = o => T(headline_list_templateObject(), o.headlinebox.get('jid'), o.headlinebox.get('jid'), o.open_title, o.headlinebox.get('jid')); - -/* harmony default export */ const headline_list = (o => T(headline_list_templateObject2(), o.headlineboxes.length ? '' : 'hidden', o.headlineboxes.map(headlinebox => tpl_headline_box(Object.assign({ +/* harmony default export */ const headline_list = (o => T` +
    +
    + ${o.headlineboxes.map(headlinebox => tpl_headline_box(Object.assign({ headlinebox -}, o))))); +}, o)))} +
    +
    +`); ;// CONCATENATED MODULE: ./src/plugins/headlines-view/templates/panel.js -function panel_templateObject() { - const data = panel_taggedTemplateLiteral(["\n
    \n
    \n ", "\n
    \n
    \n ", "\n"]); - - panel_templateObject = function () { - return data; - }; - - return data; -} - -function panel_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const panel = (o => T(panel_templateObject(), o.headlineboxes.length ? '' : 'hidden', o.heading_headline, headline_list(o))); +/* harmony default export */ const panel = (o => T` +
    +
    + ${o.heading_headline} +
    +
    + ${headline_list(o)} +`); ;// CONCATENATED MODULE: ./src/plugins/headlines-view/panel.js function panel_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -47972,10 +49457,73 @@ core_converse.plugins.add('converse-headlines-view', { } }); +;// CONCATENATED MODULE: ./src/plugins/mam-views/templates/placeholder.js + + + +/* harmony default export */ const placeholder = (el => { + return el.model.get('fetching') ? spinner({ + 'classes': 'hor_centered' + }) : T` +
    +
    `; +}); +// EXTERNAL MODULE: ./src/plugins/mam-views/styles/placeholder.scss +var styles_placeholder = __webpack_require__(1286); +;// CONCATENATED MODULE: ./src/plugins/mam-views/placeholder.js + + + + + + +class Placeholder extends CustomElement { + static get properties() { + return { + 'model': { + type: Object + } + }; + } + + render() { + return placeholder(this); + } + + async fetchMissingMessages(ev) { + var _ev$preventDefault; + + ev === null || ev === void 0 ? void 0 : (_ev$preventDefault = ev.preventDefault) === null || _ev$preventDefault === void 0 ? void 0 : _ev$preventDefault.call(ev); + this.model.set('fetching', true); + const options = { + 'before': this.model.get('before'), + 'start': this.model.get('start') + }; + await fetchArchivedMessages(this.model.collection.chatbox, options); + this.model.destroy(); + } + +} + +api.elements.define('converse-mam-placeholder', Placeholder); ;// CONCATENATED MODULE: ./src/plugins/mam-views/utils.js + + + +function getPlaceholderTemplate(message, tpl) { + if (message instanceof MAMPlaceholderMessage) { + return T``; + } else { + return tpl; + } +} async function fetchMessagesOnScrollUp(view) { + if (view.model.ui.get('chat-content-spinner-top')) { + return; + } + if (view.model.messages.length) { const is_groupchat = view.model.get('type') === shared_converse.CHATROOMS_TYPE; @@ -47983,21 +49531,27 @@ async function fetchMessagesOnScrollUp(view) { if (oldest_message) { const by_jid = is_groupchat ? view.model.get('jid') : shared_converse.bare_jid; - const stanza_id = oldest_message && oldest_message.get("stanza_id ".concat(by_jid)); + const stanza_id = oldest_message && oldest_message.get(`stanza_id ${by_jid}`); view.model.ui.set('chat-content-spinner-top', true); - if (stanza_id) { - await fetchArchivedMessages(view.model, { - 'before': stanza_id - }); - } else { - await fetchArchivedMessages(view.model, { - 'end': oldest_message.get('time') - }); + try { + if (stanza_id) { + await fetchArchivedMessages(view.model, { + 'before': stanza_id + }); + } else { + await fetchArchivedMessages(view.model, { + 'end': oldest_message.get('time') + }); + } + } catch (e) { + headless_log.error(e); + view.model.ui.set('chat-content-spinner-top', false); + return; } if (api.settings.get('allow_url_history_change')) { - shared_converse.router.history.navigate("#".concat(oldest_message.get('msgid'))); + shared_converse.router.history.navigate(`#${oldest_message.get('msgid')}`); } setTimeout(() => view.model.ui.set('chat-content-spinner-top', false), 250); @@ -48012,43 +49566,30 @@ async function fetchMessagesOnScrollUp(view) { */ + core_converse.plugins.add('converse-mam-views', { dependencies: ['converse-mam', 'converse-chatview', 'converse-muc-views'], initialize() { api.listen.on('chatBoxScrolledUp', fetchMessagesOnScrollUp); + api.listen.on('getMessageTemplate', getPlaceholderTemplate); } }); ;// CONCATENATED MODULE: ./src/plugins/minimize/templates/trimmed_chat.js -function trimmed_chat_templateObject2() { - const data = trimmed_chat_taggedTemplateLiteral(["", ""]); - - trimmed_chat_templateObject2 = function () { - return data; - }; - - return data; -} - -function trimmed_chat_templateObject() { - const data = trimmed_chat_taggedTemplateLiteral(["\n "]); - - trimmed_chat_templateObject = function () { - return data; - }; - - return data; -} - -function trimmed_chat_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const trimmed_chat = (o => { const i18n_tooltip = __('Click to restore this chat'); - return T(trimmed_chat_templateObject(), o.type, i18n_tooltip, o.restore, o.num_unread ? T(trimmed_chat_templateObject2(), o.num_unread) : '', o.title, o.close); + return T` + `; }); ;// CONCATENATED MODULE: ./src/plugins/minimize/utils.js @@ -48197,7 +49738,7 @@ function addMinimizeButtonToMUC(view, buttons) { return idx > -1 ? [...buttons.slice(0, idx), data, ...buttons.slice(idx)] : [data, ...buttons]; } function maximize(ev, chatbox) { - if (ev === null || ev === void 0 ? void 0 : ev.preventDefault) { + if (ev !== null && ev !== void 0 && ev.preventDefault) { ev.preventDefault(); } else { chatbox = ev; @@ -48210,7 +49751,7 @@ function maximize(ev, chatbox) { }); } function minimize(ev, model) { - if (ev === null || ev === void 0 ? void 0 : ev.preventDefault) { + if (ev !== null && ev !== void 0 && ev.preventDefault) { ev.preventDefault(); } else { model = ev; @@ -48308,17 +49849,7 @@ class MinimizedChat extends CustomElement { close(ev) { ev === null || ev === void 0 ? void 0 : ev.preventDefault(); - - const view = shared_converse.chatboxviews.get(this.model.get('id')); - - if (view) { - // This will call model.destroy(), removing it from the - // collection and will also emit 'chatBoxClosed' - view.close(); - } else { - this.model.destroy(); - api.trigger('chatBoxClosed', this); - } + this.model.close(); } restore(ev) { @@ -48337,31 +49868,21 @@ const MinimizedChatsToggle = Model.extend({ }); /* harmony default export */ const minimize_toggle = (MinimizedChatsToggle); ;// CONCATENATED MODULE: ./src/plugins/minimize/templates/chats-panel.js -function chats_panel_templateObject2() { - const data = chats_panel_taggedTemplateLiteral([""]); - - chats_panel_templateObject2 = function () { - return data; - }; - - return data; -} - -function chats_panel_templateObject() { - const data = chats_panel_taggedTemplateLiteral(["
    \n \n ", " ", "\n ", "\n \n
    \n ", "\n
    \n
    "]); - - chats_panel_templateObject = function () { - return data; - }; - - return data; -} - -function chats_panel_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const chats_panel = (o => T(chats_panel_templateObject(), o.chats.length ? '' : 'hidden', o.toggle, o.num_minimized, __('Minimized'), !o.num_unread ? 'unread-message-count-hidden' : '', o.num_unread, o.collapsed ? 'hidden' : '', o.chats.map(chat => T(chats_panel_templateObject2(), chat, chat.getDisplayName(), chat.get('type'), chat.get('num_unread'))))); +/* harmony default export */ const chats_panel = (o => T``); ;// CONCATENATED MODULE: ./src/plugins/minimize/view.js @@ -48404,7 +49925,7 @@ class MinimizedChats extends ElementView { } async initToggle() { - const id = "converse.minchatstoggle-".concat(shared_converse.bare_jid); + const id = `converse.minchatstoggle-${shared_converse.bare_jid}`; this.minchats = new minimize_toggle({ id }); @@ -49017,18 +50538,6 @@ class AutoComplete { Object.assign(AutoComplete.prototype, Events); /* harmony default export */ const autocomplete = (AutoComplete); ;// CONCATENATED MODULE: ./src/shared/autocomplete/component.js -function component_templateObject() { - const data = component_taggedTemplateLiteral(["\n
    \n \n \n \n
    \n "]); - - component_templateObject = function () { - return data; - }; - - return data; -} - -function component_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -49085,7 +50594,26 @@ class AutoCompleteComponent extends CustomElement { } render() { - return T(component_templateObject(), this.name, this.onKeyDown, this.onKeyUp, this.placeholder); + return T` +
    + + + +
    + `; } firstUpdated() { @@ -49125,28 +50653,6 @@ shared_converse.FILTER_CONTAINS = FILTER_CONTAINS; shared_converse.FILTER_STARTSWITH = FILTER_STARTSWITH; shared_converse.AutoComplete = autocomplete; ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/ad-hoc-command-form.js -function ad_hoc_command_form_templateObject2() { - const data = ad_hoc_command_form_taggedTemplateLiteral(["
    ", "
    "]); - - ad_hoc_command_form_templateObject2 = function () { - return data; - }; - - return data; -} - -function ad_hoc_command_form_templateObject() { - const data = ad_hoc_command_form_taggedTemplateLiteral(["\n
    \n ", "\n
    \n \n \n\n

    ", "

    \n ", "\n
    \n
    \n \n \n
    \n
    \n "]); - - ad_hoc_command_form_templateObject = function () { - return data; - }; - - return data; -} - -function ad_hoc_command_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const ad_hoc_command_form = ((o, command) => { @@ -49154,237 +50660,41 @@ function ad_hoc_command_form_taggedTemplateLiteral(strings, raw) { if (!raw) { r const i18n_run = __('Execute'); - return T(ad_hoc_command_form_templateObject(), o.runCommand, command.alert ? T(ad_hoc_command_form_templateObject2(), command.alert_type, command.alert) : '', command.node, command.jid, command.instructions, command.fields, i18n_run, i18n_hide, o.hideCommandForm); + return T` +
    + ${command.alert ? T`` : ''} +
    + + + +

    ${command.instructions}

    + ${command.fields} +
    +
    + + +
    +
    + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/ad-hoc-command.js -function ad_hoc_command_templateObject() { - const data = ad_hoc_command_taggedTemplateLiteral(["\n
  • \n
    \n ", "\n
    \n ", "\n
  • \n"]); - - ad_hoc_command_templateObject = function () { - return data; - }; - - return data; -} - -function ad_hoc_command_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const ad_hoc_command = ((o, command) => T(ad_hoc_command_templateObject(), o.toggleCommandForm, command.node, command.jid, command.name, command.name, command.name || command.jid, command.node === o.showform ? ad_hoc_command_form(o, command) : '')); +/* harmony default export */ const ad_hoc_command = ((o, command) => T` +
  • + + ${command.node === o.showform ? ad_hoc_command_form(o, command) : ''} +
  • +`); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/moderator-tools.js -function _templateObject21() { - const data = moderator_tools_taggedTemplateLiteral(["
  • ", "
  • "]); - - _templateObject21 = function () { - return data; - }; - - return data; -} - -function _templateObject20() { - const data = moderator_tools_taggedTemplateLiteral(["
  • ", "
  • "]); - - _templateObject20 = function () { - return data; - }; - - return data; -} - -function _templateObject19() { - const data = moderator_tools_taggedTemplateLiteral(["

    ", "

    "]); - - _templateObject19 = function () { - return data; - }; - - return data; -} - -function _templateObject18() { - const data = moderator_tools_taggedTemplateLiteral([""]); - - _templateObject18 = function () { - return data; - }; - - return data; -} - -function _templateObject17() { - const data = moderator_tools_taggedTemplateLiteral(["
  • ", "
  • "]); - - _templateObject17 = function () { - return data; - }; - - return data; -} - -function _templateObject16() { - const data = moderator_tools_taggedTemplateLiteral(["
  • ", "
  • "]); - - _templateObject16 = function () { - return data; - }; - - return data; -} - -function _templateObject15() { - const data = moderator_tools_taggedTemplateLiteral(["
  • ", "
  • "]); - - _templateObject15 = function () { - return data; - }; - - return data; -} - -function _templateObject14() { - const data = moderator_tools_taggedTemplateLiteral(["

    ", "

    "]); - - _templateObject14 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject13() { - const data = moderator_tools_taggedTemplateLiteral([""]); - - moderator_tools_templateObject13 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject12() { - const data = moderator_tools_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n \n\n ", "\n\n
    \n
    \n
    \n

    ", "

    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n ", "\n
    \n
    \n\n ", "\n
    \n
    \n
    \n
      \n ", "\n ", "\n\n ", "\n
    \n
    \n
    \n\n
    \n
    \n

    ", "

    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n ", "\n
    \n
    \n\n ", "\n
    \n
    \n
    \n
      \n ", "\n ", "\n ", "\n
    \n
    \n
    \n
    \n
    \n
    \n
    "]); - - moderator_tools_templateObject12 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject11() { - const data = moderator_tools_taggedTemplateLiteral(["\n \n"]); - - moderator_tools_templateObject11 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject10() { - const data = moderator_tools_taggedTemplateLiteral([""]); - - moderator_tools_templateObject10 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject9() { - const data = moderator_tools_taggedTemplateLiteral(["\n
  • \n
      \n
    • \n
      JID: ", "
      \n
    • \n
    • \n
      Nickname: ", "
      \n
    • \n
    • \n
      Affiliation: ", " ", "
      \n ", "\n
    • \n
    \n
  • \n"]); - - moderator_tools_templateObject9 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject8() { - const data = moderator_tools_taggedTemplateLiteral([""]); - - moderator_tools_templateObject8 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject7() { - const data = moderator_tools_taggedTemplateLiteral(["\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n "]); - - moderator_tools_templateObject7 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject6() { - const data = moderator_tools_taggedTemplateLiteral([""]); - - moderator_tools_templateObject6 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject5() { - const data = moderator_tools_taggedTemplateLiteral(["\n
  • \n
      \n
    • \n
      JID: ", "
      \n
    • \n
    • \n
      Nickname: ", "
      \n
    • \n
    • \n
      Role: ", " ", "
      \n ", "\n
    • \n
    \n
  • \n"]); - - moderator_tools_templateObject5 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject4() { - const data = moderator_tools_taggedTemplateLiteral([""]); - - moderator_tools_templateObject4 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject3() { - const data = moderator_tools_taggedTemplateLiteral(["\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n "]); - - moderator_tools_templateObject3 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject2() { - const data = moderator_tools_taggedTemplateLiteral(["\n \n"]); - - moderator_tools_templateObject2 = function () { - return data; - }; - - return data; -} - -function moderator_tools_templateObject() { - const data = moderator_tools_taggedTemplateLiteral(["\n \n"]); - - moderator_tools_templateObject = function () { - return data; - }; - - return data; -} - -function moderator_tools_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -49410,9 +50720,17 @@ function getAffiliationHelpText(aff) { } } -const role_option = o => T(moderator_tools_templateObject(), o.item || '', o.item === o.role, getRoleHelpText(o.item), o.item); +const role_option = o => T` + +`; -const affiliation_option = o => T(moderator_tools_templateObject2(), o.item || '', o.item === o.affiliation, getAffiliationHelpText(o.item), o.item); +const affiliation_option = o => T` + +`; const tpl_set_role_form = o => { const i18n_change_role = __('Change role'); @@ -49421,10 +50739,47 @@ const tpl_set_role_form = o => { const i18n_reason = __('Reason'); - return T(moderator_tools_templateObject3(), o.assignRole, o.item.jid, o.item.nick, i18n_new_role, o.assignable_roles.map(role => T(moderator_tools_templateObject4(), role, role === o.item.role, role)), i18n_reason, i18n_change_role); + return T` + + `; }; -const role_list_item = o => T(moderator_tools_templateObject5(), o.item.nick, o.item.jid, o.item.nick, o.item.role, o.assignable_roles.length ? T(moderator_tools_templateObject6(), o.toggleForm) : '', o.assignable_roles.length ? tpl_set_role_form(o) : ''); +const role_list_item = o => T` +
  • +
      +
    • +
      JID: ${o.item.jid}
      +
    • +
    • +
      Nickname: ${o.item.nick}
      +
    • +
    • +
      Role: ${o.item.role} ${o.assignable_roles.length ? T`` : ''}
      + ${o.assignable_roles.length ? tpl_set_role_form(o) : ''} +
    • +
    +
  • +`; const tpl_set_affiliation_form = o => { const i18n_change_affiliation = __('Change affiliation'); @@ -49433,12 +50788,58 @@ const tpl_set_affiliation_form = o => { const i18n_reason = __('Reason'); - return T(moderator_tools_templateObject7(), o.assignAffiliation, o.item.jid, o.item.nick, i18n_new_affiliation, o.assignable_affiliations.map(aff => T(moderator_tools_templateObject8(), aff, aff === o.item.affiliation, aff)), i18n_reason, i18n_change_affiliation); + return T` + + `; }; -const affiliation_list_item = o => T(moderator_tools_templateObject9(), o.item.nick, o.item.jid, o.item.nick, o.item.affiliation, o.assignable_affiliations.length ? T(moderator_tools_templateObject10(), o.toggleForm) : '', o.assignable_affiliations.length ? tpl_set_affiliation_form(o) : ''); +const affiliation_list_item = o => T` +
  • +
      +
    • +
      JID: ${o.item.jid}
      +
    • +
    • +
      Nickname: ${o.item.nick}
      +
    • +
    • +
      Affiliation: ${o.item.affiliation} ${o.assignable_affiliations.length ? T`` : ''}
      + ${o.assignable_affiliations.length ? tpl_set_affiliation_form(o) : ''} +
    • +
    +
  • +`; -const tpl_navigation = o => T(moderator_tools_templateObject11(), o.switchTab, o.switchTab); +const tpl_navigation = o => T` + +`; /* harmony default export */ const moderator_tools = (o => { const i18n_affiliation = __('Affiliation'); @@ -49460,15 +50861,99 @@ const tpl_navigation = o => T(moderator_tools_templateObject11(), o.switchTab, o const i18n_helptext_affiliation = __("An affiliation is a long-lived entitlement which typically implies a certain role and which " + "grants privileges and responsibilities. For example admins and owners automatically have the " + "moderator role."); const show_both_tabs = o.queryable_roles.length && o.queryable_affiliations.length; - return T(moderator_tools_templateObject12(), i18n_moderator_tools, modal_header_close_button, show_both_tabs ? tpl_navigation(o) : '', o.queryable_affiliations.length ? 'active' : '', o.queryAffiliation, i18n_helptext_affiliation, i18n_affiliation, o.queryable_affiliations.map(item => affiliation_option(Object.assign({ + return T` + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/modals/moderator-tools.js @@ -49590,7 +51075,7 @@ const ModeratorToolsModal = base.extend({ ev.stopPropagation(); ev.preventDefault(); const form_class = ev.target.getAttribute('data-form'); - const form = moderator_tools_u.ancestor(ev.target, '.list-group-item').querySelector(".".concat(form_class)); + const form = moderator_tools_u.ancestor(ev.target, '.list-group-item').querySelector(`.${form_class}`); if (moderator_tools_u.hasClass('hidden', form)) { moderator_tools_u.removeClass('hidden', form); @@ -49656,7 +51141,7 @@ const ModeratorToolsModal = base.extend({ } catch (e) { if (e === null) { this.alert(__('Timeout error while trying to set the affiliation'), 'danger'); - } else if (moderator_tools_sizzle("not-allowed[xmlns=\"".concat(moderator_tools_Strophe.NS.STANZAS, "\"]"), e).length) { + } else if (moderator_tools_sizzle(`not-allowed[xmlns="${moderator_tools_Strophe.NS.STANZAS}"]`, e).length) { this.alert(__('Sorry, you\'re not allowed to make that change'), 'danger'); } else { this.alert(__('Sorry, something went wrong while trying to set the affiliation'), 'danger'); @@ -49697,7 +51182,7 @@ const ModeratorToolsModal = base.extend({ 'role': current_role }); }, e => { - if (moderator_tools_sizzle("not-allowed[xmlns=\"".concat(moderator_tools_Strophe.NS.STANZAS, "\"]"), e).length) { + if (moderator_tools_sizzle(`not-allowed[xmlns="${moderator_tools_Strophe.NS.STANZAS}"]`, e).length) { this.alert(__('You\'re not allowed to make that change'), 'danger'); } else { this.alert(__('Sorry, something went wrong while trying to set the role'), 'danger'); @@ -49712,108 +51197,6 @@ const ModeratorToolsModal = base.extend({ }); /* harmony default export */ const modals_moderator_tools = (ModeratorToolsModal); ;// CONCATENATED MODULE: ./src/plugins/muc-views/utils.js -function utils_templateObject10() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - utils_templateObject10 = function () { - return data; - }; - - return data; -} - -function utils_templateObject9() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - utils_templateObject9 = function () { - return data; - }; - - return data; -} - -function utils_templateObject8() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - utils_templateObject8 = function () { - return data; - }; - - return data; -} - -function utils_templateObject7() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - utils_templateObject7 = function () { - return data; - }; - - return data; -} - -function utils_templateObject6() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - utils_templateObject6 = function () { - return data; - }; - - return data; -} - -function utils_templateObject5() { - const data = muc_views_utils_taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n "]); - - utils_templateObject5 = function () { - return data; - }; - - return data; -} - -function utils_templateObject4() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - utils_templateObject4 = function () { - return data; - }; - - return data; -} - -function utils_templateObject3() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - utils_templateObject3 = function () { - return data; - }; - - return data; -} - -function muc_views_utils_templateObject2() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - muc_views_utils_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_views_utils_templateObject() { - const data = muc_views_utils_taggedTemplateLiteral([""]); - - muc_views_utils_templateObject = function () { - return data; - }; - - return data; -} - -function muc_views_utils_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -49825,9 +51208,9 @@ function muc_views_utils_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = const { Strophe: muc_views_utils_Strophe, - $pres: utils_$pres, + $pres: muc_views_utils_$pres, $iq: muc_views_utils_$iq, - sizzle: utils_sizzle, + sizzle: muc_views_utils_sizzle, u: muc_views_utils_u } = core_converse.env; const COMMAND_TO_AFFILIATION = { @@ -49844,6 +51227,40 @@ const COMMAND_TO_ROLE = { 'op': 'moderator', 'voice': 'participant' }; +function utils_clearHistory(jid) { + if (shared_converse.router.history.getFragment() === `converse/room?jid=${jid}`) { + shared_converse.router.navigate(''); + } +} +async function destroyMUC(model) { + const messages = [__('Are you sure you want to destroy this groupchat?')]; + let fields = [{ + 'name': 'challenge', + 'label': __('Please enter the XMPP address of this groupchat to confirm'), + 'challenge': model.get('jid'), + 'placeholder': __('name@example.org'), + 'required': true + }, { + 'name': 'reason', + 'label': __('Optional reason for destroying this groupchat'), + 'placeholder': __('Reason') + }, { + 'name': 'newjid', + 'label': __('Optional XMPP address for a new groupchat that replaces this one'), + 'placeholder': __('replacement@example.org') + }]; + + try { + var _fields$filter$pop, _fields$filter$pop2; + + fields = await api.confirm(__('Confirm'), messages, fields); + const reason = (_fields$filter$pop = fields.filter(f => f.name === 'reason').pop()) === null || _fields$filter$pop === void 0 ? void 0 : _fields$filter$pop.value; + const newjid = (_fields$filter$pop2 = fields.filter(f => f.name === 'newjid').pop()) === null || _fields$filter$pop2 === void 0 ? void 0 : _fields$filter$pop2.value; + return model.sendDestroyIQ(reason, newjid).then(() => model.close()); + } catch (e) { + headless_log.error(e); + } +} function setMUCDomain(domain, controlboxview) { controlboxview.querySelector('converse-rooms-list').model.save('muc_domain', muc_views_utils_Strophe.getDomainFromJid(domain)); @@ -49893,9 +51310,9 @@ function getNicknameRequiredTemplate(model) { const jid = model.get('jid'); if (api.settings.get('muc_show_logs_before_join')) { - return T(muc_views_utils_templateObject(), jid); + return T``; } else { - return T(muc_views_utils_templateObject2(), jid); + return T``; } } function getChatRoomBodyTemplate(o) { @@ -49905,11 +51322,19 @@ function getChatRoomBodyTemplate(o) { const conn_status = o.model.session.get('connection_status'); if (view === core_converse.MUC.VIEWS.CONFIG) { - return T(utils_templateObject3(), jid); + return T``; } else if (view === core_converse.MUC.VIEWS.BOOKMARK) { - return T(utils_templateObject4(), jid); + return T``; } else { - return T(utils_templateObject5(), conn_status == RS.PASSWORD_REQUIRED ? T(utils_templateObject6(), jid) : '', conn_status == RS.ENTERED ? T(utils_templateObject7(), jid) : '', conn_status == RS.CONNECTING ? spinner() : '', conn_status == RS.NICKNAME_REQUIRED ? getNicknameRequiredTemplate(o.model) : '', conn_status == RS.DISCONNECTED ? T(utils_templateObject8(), jid) : '', conn_status == RS.BANNED ? T(utils_templateObject9(), jid) : '', conn_status == RS.DESTROYED ? T(utils_templateObject10(), jid) : ''); + return T` + ${conn_status == RS.PASSWORD_REQUIRED ? T`` : ''} + ${conn_status == RS.ENTERED ? T`` : ''} + ${conn_status == RS.CONNECTING ? spinner() : ''} + ${conn_status == RS.NICKNAME_REQUIRED ? getNicknameRequiredTemplate(o.model) : ''} + ${conn_status == RS.DISCONNECTED ? T`` : ''} + ${conn_status == RS.BANNED ? T`` : ''} + ${conn_status == RS.DESTROYED ? T`` : ''} + `; } } function getAutoCompleteListItem(text, input) { @@ -49969,15 +51394,15 @@ async function fetchCommandForm(command) { var _sizzle$pop; const iq = await api.sendIQ(stanza); - const cmd_el = utils_sizzle("command[xmlns=\"".concat(muc_views_utils_Strophe.NS.ADHOC, "\"]"), iq).pop(); + const cmd_el = muc_views_utils_sizzle(`command[xmlns="${muc_views_utils_Strophe.NS.ADHOC}"]`, iq).pop(); command.sessionid = cmd_el.getAttribute('sessionid'); - command.instructions = (_sizzle$pop = utils_sizzle('x[type="form"][xmlns="jabber:x:data"] instructions', cmd_el).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.textContent; - command.fields = utils_sizzle('x[type="form"][xmlns="jabber:x:data"] field', cmd_el).map(f => muc_views_utils_u.xForm2TemplateResult(f, cmd_el)); + command.instructions = (_sizzle$pop = muc_views_utils_sizzle('x[type="form"][xmlns="jabber:x:data"] instructions', cmd_el).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.textContent; + command.fields = muc_views_utils_sizzle('x[type="form"][xmlns="jabber:x:data"] field', cmd_el).map(f => muc_views_utils_u.xForm2TemplateResult(f, cmd_el)); } catch (e) { if (e === null) { - headless_log.error("Error: timeout while trying to execute command for ".concat(jid)); + headless_log.error(`Error: timeout while trying to execute command for ${jid}`); } else { - headless_log.error("Error while trying to execute command for ".concat(jid)); + headless_log.error(`Error while trying to execute command for ${jid}`); headless_log.error(e); } @@ -49989,7 +51414,7 @@ function setRole(muc, command, args, required_affiliations = [], required_roles const role = COMMAND_TO_ROLE[command]; if (!role) { - throw Error("ChatRoomView#setRole called with invalid command: ".concat(command)); + throw Error(`ChatRoomView#setRole called with invalid command: ${command}`); } if (!muc.verifyAffiliations(required_affiliations) || !muc.verifyRoles(required_roles)) { @@ -50017,7 +51442,7 @@ function verifyAndSetAffiliation(muc, command, args, required_affiliations) { const affiliation = COMMAND_TO_AFFILIATION[command]; if (!affiliation) { - throw Error("verifyAffiliations called with invalid command: ".concat(command)); + throw Error(`verifyAffiliations called with invalid command: ${command}`); } if (!muc.verifyAffiliations(required_affiliations)) { @@ -50144,9 +51569,7 @@ function parseMessageForMUCCommands(muc, text) { break; } - const chatview = shared_converse.chatboxviews.get(muc.get('jid')); - - chatview.destroy().catch(e => muc.onCommandError(e)); + destroyMUC(muc).catch(e => muc.onCommandError(e)); break; } @@ -50195,9 +51618,9 @@ function parseMessageForMUCCommands(muc, text) { }); } else { const jid = muc_views_utils_Strophe.getBareJidFromJid(muc.get('jid')); - api.send(utils_$pres({ + api.send(muc_views_utils_$pres({ from: shared_converse.connection.jid, - to: "".concat(jid, "/").concat(args), + to: `${jid}/${args}`, id: muc_views_utils_u.getUniqueId() }).tree()); } @@ -50258,38 +51681,6 @@ function parseMessageForMUCCommands(muc, text) { return true; } ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/ad-hoc.js -function ad_hoc_templateObject3() { - const data = ad_hoc_taggedTemplateLiteral(["\n
    \n
      \n
    • ", ":
    • \n ", "\n
    \n
    "]); - - ad_hoc_templateObject3 = function () { - return data; - }; - - return data; -} - -function ad_hoc_templateObject2() { - const data = ad_hoc_taggedTemplateLiteral(["
    ", "
    "]); - - ad_hoc_templateObject2 = function () { - return data; - }; - - return data; -} - -function ad_hoc_templateObject() { - const data = ad_hoc_taggedTemplateLiteral(["\n ", "\n
    \n
    \n \n
    \n
    \n \n
    \n ", "\n\n
    \n "]); - - ad_hoc_templateObject = function () { - return data; - }; - - return data; -} - -function ad_hoc_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -50307,7 +51698,32 @@ function ad_hoc_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings. const i18n_no_commands_found = __('No commands found'); - return T(ad_hoc_templateObject(), o.alert ? T(ad_hoc_templateObject2(), o.alert_type, o.alert) : '', o.fetchCommands, i18n_choose_service, i18n_choose_service_instructions, getAutoCompleteList, i18n_jid_placeholder, i18n_fetch_commands, o.view === 'list-commands' ? T(ad_hoc_templateObject3(), o.commands.length ? i18n_commands_found : i18n_no_commands_found, o.commands.map(cmd => ad_hoc_command(o, cmd))) : ''); + return T` + ${o.alert ? T`` : ''} +
    +
    + +
    +
    + +
    + ${o.view === 'list-commands' ? T` +
    +
      +
    • ${o.commands.length ? i18n_commands_found : i18n_no_commands_found}:
    • + ${o.commands.map(cmd => ad_hoc_command(o, cmd))} +
    +
    ` : ''} + +
    + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/adhoc-commands.js @@ -50459,41 +51875,40 @@ class AdHocCommands extends CustomElement { } api.elements.define('converse-adhoc-commands', AdHocCommands); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/message-form.js -function message_form_templateObject2() { - const data = templates_message_form_taggedTemplateLiteral(["
    \u25BC ", " \u25BC
    "]); - - message_form_templateObject2 = function () { - return data; - }; - - return data; -} - -function templates_message_form_templateObject() { - const data = templates_message_form_taggedTemplateLiteral(["\n ", "\n
    \n \n
    \n
    \n \n
    \n \n ", "\n \n
    \n
    "]); - - templates_message_form_templateObject = function () { - return data; - }; - - return data; -} - -function templates_message_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const templates_message_form = (o => { - const unread_msgs = __('You have unread messages'); - const label_message = o.composing_spoiler ? __('Hidden message') : __('Message'); const label_spoiler_hint = __('Optional hint'); const show_send_button = api.settings.get('show_send_button'); - return T(templates_message_form_templateObject(), o.scrolled && o.num_unread ? T(message_form_templateObject2(), ev => o.viewUnreadMessages(ev), unread_msgs) : '', label_spoiler_hint || '', o.hint_value || '', o.composing_spoiler ? '' : 'hidden', o.onDrop, resetElementHeight, o.onKeyDown, o.onKeyUp, o.onPaste, o.onChange, show_send_button ? 'chat-textarea-send-button' : '', o.composing_spoiler ? 'spoiler' : '', label_message, o.message_value || ''); + return T` + +
    + +
    + + + +
    +
    `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/message-form.js @@ -50505,15 +51920,16 @@ class MUCMessageForm extends MessageForm { var _this$querySelector, _this$querySelector2; return templates_message_form(Object.assign(this.model.toJSON(), { - 'onDrop': ev => this.onDrop(ev), 'hint_value': (_this$querySelector = this.querySelector('.spoiler-hint')) === null || _this$querySelector === void 0 ? void 0 : _this$querySelector.value, 'message_value': (_this$querySelector2 = this.querySelector('.chat-textarea')) === null || _this$querySelector2 === void 0 ? void 0 : _this$querySelector2.value, 'onChange': ev => this.model.set({ 'draft': ev.target.value }), + 'onDrop': ev => this.onDrop(ev), 'onKeyDown': ev => this.onKeyDown(ev), 'onKeyUp': ev => this.onKeyUp(ev), 'onPaste': ev => this.onPaste(ev), + 'scrolled': this.model.ui.get('scrolled'), 'viewUnreadMessages': ev => this.viewUnreadMessages(ev) })); } @@ -50549,7 +51965,7 @@ class MUCMessageForm extends MessageForm { getAutoCompleteList() { return this.model.getAllKnownNicknames().map(nick => ({ 'label': nick, - 'value': "@".concat(nick) + 'value': `@${nick}` })); } @@ -50569,18 +51985,6 @@ class MUCMessageForm extends MessageForm { } api.elements.define('converse-muc-message-form', MUCMessageForm); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-nickname-form.js -function muc_nickname_form_templateObject() { - const data = muc_nickname_form_taggedTemplateLiteral(["\n
    \n
    \n
    \n \n

    ", "

    \n \n
    \n
    \n \n
    \n
    \n
    "]); - - muc_nickname_form_templateObject = function () { - return data; - }; - - return data; -} - -function muc_nickname_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -50598,71 +52002,27 @@ function submitNickname(ev, model) { const i18n_heading = api.settings.get('muc_show_logs_before_join') ? __('Choose a nickname to enter') : __('Please choose your nickname'); const validation_message = model.get('nickname_validation_message'); - return T(muc_nickname_form_templateObject(), ev => submitNickname(ev, model), i18n_heading, validation_message, model.get('nick') || '', validation_message ? 'error' : '', i18n_nickname, i18n_join); + return T` +
    submitNickname(ev, model)}> +
    +
    + +

    ${validation_message}

    + +
    +
    + +
    +
    +
    `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-bottom-panel.js -function muc_bottom_panel_templateObject6() { - const data = muc_bottom_panel_taggedTemplateLiteral(["", ""]); - - muc_bottom_panel_templateObject6 = function () { - return data; - }; - - return data; -} - -function muc_bottom_panel_templateObject5() { - const data = muc_bottom_panel_taggedTemplateLiteral(["", ""]); - - muc_bottom_panel_templateObject5 = function () { - return data; - }; - - return data; -} - -function muc_bottom_panel_templateObject4() { - const data = muc_bottom_panel_taggedTemplateLiteral(["
    \u25BC ", " \u25BC
    "]); - - muc_bottom_panel_templateObject4 = function () { - return data; - }; - - return data; -} - -function muc_bottom_panel_templateObject3() { - const data = muc_bottom_panel_taggedTemplateLiteral(["\n ", "\n ", ""]); - - muc_bottom_panel_templateObject3 = function () { - return data; - }; - - return data; -} - -function muc_bottom_panel_templateObject2() { - const data = muc_bottom_panel_taggedTemplateLiteral(["\n "]); - - muc_bottom_panel_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_bottom_panel_templateObject() { - const data = muc_bottom_panel_taggedTemplateLiteral(["\n ", "\n "]); - - muc_bottom_panel_templateObject = function () { - return data; - }; - - return data; -} - -function muc_bottom_panel_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -50671,13 +52031,30 @@ function muc_bottom_panel_taggedTemplateLiteral(strings, raw) { if (!raw) { raw const tpl_can_edit = o => { + const unread_msgs = __('You have unread messages'); + const message_limit = api.settings.get('message_limit'); const show_call_button = api.settings.get('visible_toolbar_buttons').call; const show_emoji_button = api.settings.get('visible_toolbar_buttons').emoji; const show_send_button = api.settings.get('show_send_button'); const show_spoiler_button = api.settings.get('visible_toolbar_buttons').spoiler; const show_toolbar = api.settings.get('show_toolbar'); - return T(muc_bottom_panel_templateObject(), show_toolbar ? T(muc_bottom_panel_templateObject2(), o.model, o.model.get('composing_spoiler'), o.model.get('hidden_occupants'), o.model.get('is_groupchat'), show_call_button, show_emoji_button, o.model.get('show_occupants_toggle'), show_send_button, show_spoiler_button, show_toolbar, message_limit) : '', o.model.get('jid')); + return T` + ${o.model.ui.get('scrolled') && o.model.get('num_unread') ? T`
    o.viewUnreadMessages(ev)}>▼ ${unread_msgs} ▼
    ` : ''} + ${show_toolbar ? T` + ` : ''} + `; }; /* harmony default export */ const muc_bottom_panel = (o => { @@ -50688,10 +52065,12 @@ const tpl_can_edit = o => { const i18n_not_allowed = __("You're not allowed to send messages in this room"); if (conn_status === core_converse.ROOMSTATUS.ENTERED) { - return T(muc_bottom_panel_templateObject3(), o.model.get('scrolled') && o.model.get('num_unread_general') ? T(muc_bottom_panel_templateObject4(), ev => o.viewUnreadMessages(ev), unread_msgs) : '', o.can_edit ? tpl_can_edit(o) : T(muc_bottom_panel_templateObject5(), i18n_not_allowed)); + return T` + ${o.model.ui.get('scrolled') && o.model.get('num_unread_general') ? T`
    o.viewUnreadMessages(ev)}>▼ ${unread_msgs} ▼
    ` : ''} + ${o.can_edit ? tpl_can_edit(o) : T`${i18n_not_allowed}`}`; } else if (conn_status == core_converse.ROOMSTATUS.NICKNAME_REQUIRED) { if (api.settings.get('muc_show_logs_before_join')) { - return T(muc_bottom_panel_templateObject6(), muc_nickname_form(o.model)); + return T`${muc_nickname_form(o.model)}`; } } else { return ''; @@ -50708,8 +52087,6 @@ function muc_views_bottom_panel_defineProperty(obj, key, value) { if (key in obj - - class MUCBottomPanel extends ChatBottomPanel { constructor(...args) { super(...args); @@ -50720,17 +52097,14 @@ class MUCBottomPanel extends ChatBottomPanel { }); } - async connectedCallback() { - // this.model gets set in the super method and we also wait there for this.model.initialized - await super.connectedCallback(); - this.debouncedRender = lodash_es_debounce(this.render, 100); + async initialize() { + await super.initialize(); this.listenTo(this.model, 'change:hidden_occupants', this.debouncedRender); this.listenTo(this.model, 'change:num_unread_general', this.debouncedRender); this.listenTo(this.model.features, 'change:moderated', this.debouncedRender); this.listenTo(this.model.occupants, 'add', this.renderIfOwnOccupant); this.listenTo(this.model.occupants, 'change:role', this.renderIfOwnOccupant); this.listenTo(this.model.session, 'change:connection_status', this.debouncedRender); - this.render(); } render() { @@ -50740,6 +52114,7 @@ class MUCBottomPanel extends ChatBottomPanel { can_edit, entered, 'model': this.model, + 'is_groupchat': true, 'viewUnreadMessages': ev => this.viewUnreadMessages(ev) }), this); } @@ -50754,14 +52129,6 @@ class MUCBottomPanel extends ChatBottomPanel { (_this$querySelector = this.querySelector('converse-message-form')) === null || _this$querySelector === void 0 ? void 0 : _this$querySelector.onFormSubmitted(ev); } - getToolbarOptions() { - return Object.assign(super.getToolbarOptions(), { - 'is_groupchat': true, - 'label_hide_occupants': __('Hide the list of participants'), - 'show_occupants_toggle': api.settings.get('visible_toolbar_buttons').toggle_occupants - }); - } - hideOccupants(ev) { var _ev$preventDefault, _ev$stopPropagation; @@ -50775,68 +52142,6 @@ class MUCBottomPanel extends ChatBottomPanel { } api.elements.define('converse-muc-bottom-panel', MUCBottomPanel); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/occupant.js -function occupant_templateObject6() { - const data = templates_occupant_taggedTemplateLiteral(["", ""]); - - occupant_templateObject6 = function () { - return data; - }; - - return data; -} - -function occupant_templateObject5() { - const data = templates_occupant_taggedTemplateLiteral(["", ""]); - - occupant_templateObject5 = function () { - return data; - }; - - return data; -} - -function occupant_templateObject4() { - const data = templates_occupant_taggedTemplateLiteral(["", ""]); - - occupant_templateObject4 = function () { - return data; - }; - - return data; -} - -function occupant_templateObject3() { - const data = templates_occupant_taggedTemplateLiteral(["", ""]); - - occupant_templateObject3 = function () { - return data; - }; - - return data; -} - -function occupant_templateObject2() { - const data = templates_occupant_taggedTemplateLiteral(["", ""]); - - occupant_templateObject2 = function () { - return data; - }; - - return data; -} - -function templates_occupant_templateObject() { - const data = templates_occupant_taggedTemplateLiteral(["\n
  • \n
    \n
    \n
    \n
    \n
    \n ", "\n \n ", "\n ", "\n ", "\n ", "\n ", "\n \n
    \n
    \n
  • \n "]); - - templates_occupant_templateObject = function () { - return data; - }; - - return data; -} - -function templates_occupant_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -50847,16 +52152,16 @@ const occupant_title = o => { const i18n_visitor_hint = __('This user can NOT send messages in this groupchat.'); - const spaced_jid = "".concat(o.jid, " ") || 0; + const spaced_jid = `${o.jid} ` || ''; if (o.role === "moderator") { - return "".concat(spaced_jid).concat(i18n_moderator_hint, " ").concat(o.hint_occupant); + return `${spaced_jid}${i18n_moderator_hint} ${o.hint_occupant}`; } else if (o.role === "participant") { - return "".concat(spaced_jid).concat(i18n_participant_hint, " ").concat(o.hint_occupant); + return `${spaced_jid}${i18n_participant_hint} ${o.hint_occupant}`; } else if (o.role === "visitor") { - return "".concat(spaced_jid).concat(i18n_visitor_hint, " ").concat(o.hint_occupant); + return `${spaced_jid}${i18n_visitor_hint} ${o.hint_occupant}`; } else if (!["visitor", "participant", "moderator"].includes(o.role)) { - return "".concat(spaced_jid).concat(o.hint_occupant); + return `${spaced_jid}${o.hint_occupant}`; } }; @@ -50871,21 +52176,27 @@ const occupant_title = o => { const i18n_visitor = __('Visitor'); - return T(templates_occupant_templateObject(), o.id, occupant_title(o), o.show, o.hint_show, o.onOccupantClicked, o.nick || o.jid, o.affiliation === "owner" ? T(occupant_templateObject2(), i18n_owner) : '', o.affiliation === "admin" ? T(occupant_templateObject3(), i18n_admin) : '', o.affiliation === "member" ? T(occupant_templateObject4(), i18n_member) : '', o.role === "moderator" ? T(occupant_templateObject5(), i18n_moderator) : '', o.role === "visitor" ? T(occupant_templateObject6(), i18n_visitor) : ''); + return T` +
  • +
    +
    +
    +
    +
    + ${o.nick || o.jid} + + ${o.affiliation === "owner" ? T`${i18n_owner}` : ''} + ${o.affiliation === "admin" ? T`${i18n_admin}` : ''} + ${o.affiliation === "member" ? T`${i18n_member}` : ''} + ${o.role === "moderator" ? T`${i18n_moderator}` : ''} + ${o.role === "visitor" ? T`${i18n_visitor}` : ''} + +
    +
    +
  • + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-sidebar.js -function muc_sidebar_templateObject() { - const data = muc_sidebar_taggedTemplateLiteral(["\n
    \n \n
    \n ", "\n
    \n
    \n
    \n
      ", "
    \n "]); - - muc_sidebar_templateObject = function () { - return data; - }; - - return data; -} - -function muc_sidebar_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -50911,7 +52222,16 @@ const PRETTY_CHAT_STATUS = { 'onOccupantClicked': o.onOccupantClicked }, occupant.toJSON())); }); - return T(muc_sidebar_templateObject(), o.closeSidebar, i18n_participants, occupant_tpls); + return T` +
    + +
    + ${i18n_participants} +
    +
    +
    +
      ${occupant_tpls}
    + `; }); // EXTERNAL MODULE: ./src/plugins/muc-views/styles/muc-occupants.scss var muc_occupants = __webpack_require__(5660); @@ -50968,41 +52288,47 @@ class MUCSidebar extends CustomElement { const chatview = shared_converse.chatboxviews.get(this.getAttribute('jid')); - chatview === null || chatview === void 0 ? void 0 : chatview.getBottomPanel().insertIntoTextArea("@".concat(ev.target.textContent)); + chatview === null || chatview === void 0 ? void 0 : chatview.getBottomPanel().insertIntoTextArea(`@${ev.target.textContent}`); } } api.elements.define('converse-muc-sidebar', MUCSidebar); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-chatarea.js -function muc_chatarea_templateObject2() { - const data = muc_chatarea_taggedTemplateLiteral(["
    \n
    "]); - - muc_chatarea_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_chatarea_templateObject() { - const data = muc_chatarea_taggedTemplateLiteral(["\n
    \n
    \n \n\n ", "\n
    \n \n
    \n
    \n \n"]); - - muc_chatarea_templateObject = function () { - return data; - }; - - return data; -} - -function muc_chatarea_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +/* harmony default export */ const muc_chatarea = (o => { + var _o$model; -/* harmony default export */ const muc_chatarea = (o => T(muc_chatarea_templateObject(), o.show_send_button ? 'chat-content-sendbutton' : '', o.jid, o.show_help_messages ? T(muc_chatarea_templateObject2(), o.model, o.help_messages, !o.show_help_messages, shared_converse.CHATROOMS_TYPE) : '', o.jid, o.show_sidebar ? '' : 'hidden', o.occupants_width, o.jid, o.onMousedown)); + return T` +
    +
    + + + ${(_o$model = o.model) !== null && _o$model !== void 0 && _o$model.get('show_help_messages') ? T`
    +
    ` : ''} +
    + +
    + + ${o.model ? T` + ` : ''} +`; +}); ;// CONCATENATED MODULE: ./src/plugins/muc-views/chatarea.js @@ -51028,26 +52354,28 @@ class MUCChatArea extends CustomElement { connectedCallback() { super.connectedCallback(); - this.model = shared_converse.chatboxes.get(this.jid); + this.initialize(); + } + + async initialize() { + this.model = await api.rooms.get(this.jid); this.listenTo(this.model, 'change:show_help_messages', () => this.requestUpdate()); this.listenTo(this.model, 'change:hidden_occupants', () => this.requestUpdate()); this.listenTo(this.model.session, 'change:connection_status', () => this.requestUpdate()); // Bind so that we can pass it to addEventListener and removeEventListener this.onMouseMove = this._onMouseMove.bind(this); this.onMouseUp = this._onMouseUp.bind(this); + this.requestUpdate(); // Make sure we render again after the model has been attached } render() { return muc_chatarea({ - 'help_messages': this.getHelpMessages(), + 'getHelpMessages': () => this.getHelpMessages(), 'jid': this.jid, 'model': this.model, - 'occupants': this.model.occupants, - 'occupants_width': this.model.get('occupants_width'), 'onMousedown': ev => this.onMousedown(ev), - 'show_help_messages': this.model.get('show_help_messages'), 'show_send_button': shared_converse.show_send_button, - 'show_sidebar': this.shouldShowSidebar(), + 'shouldShowSidebar': () => this.shouldShowSidebar(), 'type': this.type }); } @@ -51059,7 +52387,7 @@ class MUCChatArea extends CustomElement { getHelpMessages() { const setting = api.settings.get('muc_disable_slash_commands'); const disabled_commands = Array.isArray(setting) ? setting : []; - return ["/admin: ".concat(__("Change user's affiliation to admin")), "/ban: ".concat(__('Ban user by changing their affiliation to outcast')), "/clear: ".concat(__('Clear the chat area')), "/close: ".concat(__('Close this groupchat')), "/deop: ".concat(__('Change user role to participant')), "/destroy: ".concat(__('Remove this groupchat')), "/help: ".concat(__('Show this menu')), "/kick: ".concat(__('Kick user from groupchat')), "/me: ".concat(__('Write in 3rd person')), "/member: ".concat(__('Grant membership to a user')), "/modtools: ".concat(__('Opens up the moderator tools GUI')), "/mute: ".concat(__("Remove user's ability to post messages")), "/nick: ".concat(__('Change your nickname')), "/op: ".concat(__('Grant moderator role to user')), "/owner: ".concat(__('Grant ownership of this groupchat')), "/register: ".concat(__('Register your nickname')), "/revoke: ".concat(__("Revoke the user's current affiliation")), "/subject: ".concat(__('Set groupchat subject')), "/topic: ".concat(__('Set groupchat subject (alias for /subject)')), "/voice: ".concat(__('Allow muted user to post messages'))].filter(line => disabled_commands.every(c => !line.startsWith(c + '<', 9))).filter(line => this.model.getAllowedCommands().some(c => line.startsWith(c + '<', 9))); + return [`/admin: ${__("Change user's affiliation to admin")}`, `/ban: ${__('Ban user by changing their affiliation to outcast')}`, `/clear: ${__('Clear the chat area')}`, `/close: ${__('Close this groupchat')}`, `/deop: ${__('Change user role to participant')}`, `/destroy: ${__('Remove this groupchat')}`, `/help: ${__('Show this menu')}`, `/kick: ${__('Kick user from groupchat')}`, `/me: ${__('Write in 3rd person')}`, `/member: ${__('Grant membership to a user')}`, `/modtools: ${__('Opens up the moderator tools GUI')}`, `/mute: ${__("Remove user's ability to post messages")}`, `/nick: ${__('Change your nickname')}`, `/op: ${__('Grant moderator role to user')}`, `/owner: ${__('Grant ownership of this groupchat')}`, `/register: ${__('Register your nickname')}`, `/revoke: ${__("Revoke the user's current affiliation")}`, `/subject: ${__('Set groupchat subject')}`, `/topic: ${__('Set groupchat subject (alias for /subject)')}`, `/voice: ${__('Allow muted user to post messages')}`].filter(line => disabled_commands.every(c => !line.startsWith(c + '<', 9))).filter(line => this.model.getAllowedCommands().some(c => line.startsWith(c + '<', 9))); } onMousedown(ev) { @@ -51143,38 +52471,6 @@ class MUCChatArea extends CustomElement { } api.elements.define('converse-muc-chatarea', MUCChatArea); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-config-form.js -function muc_config_form_templateObject3() { - const data = muc_config_form_taggedTemplateLiteral(["\n
    \n \n \n
    "]); - - muc_config_form_templateObject3 = function () { - return data; - }; - - return data; -} - -function muc_config_form_templateObject2() { - const data = muc_config_form_taggedTemplateLiteral(["

    ", "

    "]); - - muc_config_form_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_config_form_templateObject() { - const data = muc_config_form_taggedTemplateLiteral(["\n
    \n\n
    \n ", "\n ", "\n ", "\n
    \n ", "\n
    \n "]); - - muc_config_form_templateObject = function () { - return data; - }; - - return data; -} - -function muc_config_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -51216,9 +52512,25 @@ const muc_config_form_u = core_converse.env.utils; const i18n_cancel = __('Cancel'); - return T(muc_config_form_templateObject(), fields.length ? '' : 'converse-form--spinner', o.submitConfigForm, title, title !== instructions ? T(muc_config_form_templateObject2(), instructions) : '', fields.length ? fields : spinner({ + return T` +
    + +
    + ${title} + ${title !== instructions ? T`

    ${instructions}

    ` : ''} + ${fields.length ? fields : spinner({ 'classes': 'hor_centered' - }), fields.length ? T(muc_config_form_templateObject3(), i18n_save, i18n_cancel, o.closeConfigForm) : ''); + })} +
    + ${fields.length ? T` +
    + + +
    ` : ''} +
    + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/config-form.js @@ -51292,45 +52604,17 @@ class MUCConfigForm extends CustomElement { api.elements.define('converse-muc-config-form', MUCConfigForm); /* harmony default export */ const config_form = ((/* unused pure expression or super */ null && (MUCConfigForm))); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-destroyed.js -function muc_destroyed_templateObject3() { - const data = muc_destroyed_taggedTemplateLiteral(["

    ", "

    "]); - - muc_destroyed_templateObject3 = function () { - return data; - }; - - return data; -} - -function muc_destroyed_templateObject2() { - const data = muc_destroyed_taggedTemplateLiteral(["\n
    \n

    ", "

    \n
    \n ", "\n ", "\n "]); - - muc_destroyed_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_destroyed_templateObject() { - const data = muc_destroyed_taggedTemplateLiteral(["\n

    ", "

    \n

    \n ", "\n

    "]); - - muc_destroyed_templateObject = function () { - return data; - }; - - return data; -} - -function muc_destroyed_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - const tpl_moved = o => { const i18n_moved = __('The conversation has moved to a new address. Click the link below to enter.'); - return T(muc_destroyed_templateObject(), i18n_moved, ev => o.onSwitch(ev), o.moved_jid); + return T` +

    ${i18n_moved}

    + `; }; /* harmony default export */ const muc_destroyed = (o => { @@ -51338,7 +52622,13 @@ const tpl_moved = o => { const i18n_reason = __('The following reason was given: "%1$s"', o.reason || ''); - return T(muc_destroyed_templateObject2(), i18n_non_existent, o.reason ? T(muc_destroyed_templateObject3(), i18n_reason) : '', o.moved_jid ? tpl_moved(o) : ''); + return T` +
    +

    ${i18n_non_existent}

    +
    + ${o.reason ? T`

    ${i18n_reason}

    ` : ''} + ${o.moved_jid ? tpl_moved(o) : ''} + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/destroyed.js @@ -51381,31 +52671,13 @@ class MUCDestroyed extends CustomElement { api.elements.define('converse-muc-destroyed', MUCDestroyed); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-disconnect.js -function muc_disconnect_templateObject2() { - const data = muc_disconnect_taggedTemplateLiteral(["

    ", "

    "]); - - muc_disconnect_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_disconnect_templateObject() { - const data = muc_disconnect_taggedTemplateLiteral(["\n
    \n

    ", "

    \n ", "\n
    "]); - - muc_disconnect_templateObject = function () { - return data; - }; - - return data; -} - -function muc_disconnect_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const muc_disconnect = (messages => { - return T(muc_disconnect_templateObject(), messages[0], messages.slice(1).map(m => T(muc_disconnect_templateObject2(), m))); + return T` +
    +

    ${messages[0]}

    + ${messages.slice(1).map(m => T`

    ${m}

    `)} +
    `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/disconnected.js @@ -51454,28 +52726,6 @@ class MUCDisconnected extends CustomElement { api.elements.define('converse-muc-disconnected', MUCDisconnected); ;// CONCATENATED MODULE: ./src/modals/templates/muc-invite.js -function muc_invite_templateObject2() { - const data = muc_invite_taggedTemplateLiteral(["
    ", "
    "]); - - muc_invite_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_invite_templateObject() { - const data = muc_invite_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n \n
    \n
    \n
    \n \n ", "\n \n \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n "]); - - muc_invite_templateObject = function () { - return data; - }; - - return data; -} - -function muc_invite_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -51492,7 +52742,42 @@ function muc_invite_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = stri const i18n_reason = __('Optional reason for the invitation'); - return T(muc_invite_templateObject(), i18n_invite_heading, modal_header_close_button, o.submitInviteForm, i18n_invite_label, o.invalid_invite_jid ? T(muc_invite_templateObject2(), i18n_error_message) : '', i18n_jid_placeholder, i18n_reason, i18n_invite); + return T` + + `; }); ;// CONCATENATED MODULE: ./src/modals/muc-invite.js @@ -51552,158 +52837,6 @@ const muc_invite_u = core_converse.env.utils; })); ;// CONCATENATED MODULE: ./src/modals/templates/muc-details.js -function muc_details_templateObject15() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject15 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject14() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject14 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject13() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject13 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject12() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject12 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject11() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject11 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject10() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject10 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject9() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject9 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject8() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject8 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject7() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject7 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject6() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject6 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject5() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject5 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject4() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject4 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject3() { - const data = muc_details_taggedTemplateLiteral(["
  • ", " - ", "
  • "]); - - muc_details_templateObject3 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject2() { - const data = muc_details_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n \n
    \n

    ", ": ", "

    \n

    ", ": ", "

    \n

    ", ": ", "

    \n ", "\n

    ", ": ", "

    \n

    ", ":\n

    \n
      \n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n
    \n
    \n

    \n
    \n
    \n
    ", "
    \n
    \n
    \n "]); - - muc_details_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_details_templateObject() { - const data = muc_details_taggedTemplateLiteral(["\n

    ", ": ", "

    \n

    ", ": ", "

    \n "]); - - muc_details_templateObject = function () { - return data; - }; - - return data; -} - -function muc_details_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -51715,13 +52848,16 @@ const subject = o => { const i18n_topic_author = __('Topic author'); - return T(muc_details_templateObject(), i18n_topic, unsafe_html_o(xss.filterXSS(o.subject.text, { + return T` +

    ${i18n_topic}: ${unsafe_html_o(xss.filterXSS(o.subject.text, { 'whiteList': {} - })), i18n_topic_author, o.subject && o.subject.author); + }))}

    +

    ${i18n_topic_author}: ${o.subject && o.subject.author}

    + `; }; /* harmony default export */ const muc_details = (o => { - const i18n_address = __('Groupchat address (JID)'); + const i18n_address = __('Groupchat XMPP address'); const i18n_archiving = __('Message archiving'); @@ -51781,7 +52917,46 @@ const subject = o => { const i18n_temporary_help = __('This groupchat will disappear once the last person leaves'); - return T(muc_details_templateObject2(), o.display_name, modal_header_close_button, i18n_name, o.name, i18n_address, o.jid, i18n_desc, o.config.description, o.subject ? subject(o) : '', i18n_online_users, o.num_occupants, i18n_features, o.features.passwordprotected ? T(muc_details_templateObject3(), i18n_password_protected, i18n_password_help) : '', o.features.unsecured ? T(muc_details_templateObject4(), i18n_no_password_required, i18n_no_pass_help) : '', o.features.hidden ? T(muc_details_templateObject5(), i18n_hidden, i18n_hidden_help) : '', o.features.public_room ? T(muc_details_templateObject6(), i18n_public, o.__('This groupchat is publicly searchable')) : '', o.features.membersonly ? T(muc_details_templateObject7(), i18n_members_only, i18n_members_help) : '', o.features.open ? T(muc_details_templateObject8(), i18n_open, i18n_open_help) : '', o.features.persistent ? T(muc_details_templateObject9(), i18n_persistent, i18n_persistent_help) : '', o.features.temporary ? T(muc_details_templateObject10(), i18n_temporary, i18n_temporary_help) : '', o.features.nonanonymous ? T(muc_details_templateObject11(), i18n_not_anonymous, i18n_not_anonymous_help) : '', o.features.semianonymous ? T(muc_details_templateObject12(), i18n_semi_anon, i18n_semi_anon_help) : '', o.features.moderated ? T(muc_details_templateObject13(), i18n_moderated, i18n_moderated_help) : '', o.features.unmoderated ? T(muc_details_templateObject14(), i18n_not_moderated, i18n_not_moderated_help) : '', o.features.mam_enabled ? T(muc_details_templateObject15(), i18n_archiving, i18n_archiving_help) : '', modal_close_button); + return T` + + `; }); ;// CONCATENATED MODULE: ./src/modals/muc-details.js @@ -51815,6 +52990,12 @@ const subject = o => { class rich_text_RichText extends CustomElement { static get properties() { return { + embed_audio: { + type: Boolean + }, + embed_videos: { + type: Boolean + }, mentions: { type: Array }, @@ -51847,8 +53028,10 @@ class rich_text_RichText extends CustomElement { constructor() { super(); - this.offset = 0; + this.embed_audio = false; + this.embed_videos = false; this.mentions = []; + this.offset = 0; this.render_styling = false; this.show_images = false; this.show_me_message = false; @@ -51856,6 +53039,8 @@ class rich_text_RichText extends CustomElement { render() { const options = { + embed_audio: this.embed_audio, + embed_videos: this.embed_videos, nick: this.nick, onImgClick: this.onImgClick, onImgLoad: this.onImgLoad, @@ -51869,58 +53054,6 @@ class rich_text_RichText extends CustomElement { } api.elements.define('converse-rich-text', rich_text_RichText); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-head.js -function muc_head_templateObject5() { - const data = muc_head_taggedTemplateLiteral(["

    \n \n

    "]); - - muc_head_templateObject5 = function () { - return data; - }; - - return data; -} - -function muc_head_templateObject4() { - const data = muc_head_taggedTemplateLiteral([""]); - - muc_head_templateObject4 = function () { - return data; - }; - - return data; -} - -function muc_head_templateObject3() { - const data = muc_head_taggedTemplateLiteral([""]); - - muc_head_templateObject3 = function () { - return data; - }; - - return data; -} - -function muc_head_templateObject2() { - const data = muc_head_taggedTemplateLiteral([""]); - - muc_head_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_head_templateObject() { - const data = muc_head_taggedTemplateLiteral(["\n
    \n ", "\n
    ", "\n ", "\n
    \n
    \n ", "\n ", "\n
    \n
    \n ", "\n "]); - - muc_head_templateObject = function () { - return data; - }; - - return data; -} - -function muc_head_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -51937,7 +53070,21 @@ const tpl_standalone_btns = o => o.standalone_btns.reverse().map(b => until_o(b, const subject = o.subject ? o.subject.text : ''; const show_subject = subject && !o.subject_hidden; - return T(muc_head_templateObject(), show_subject ? '' : "chatbox-title--no-desc", !shared_converse.api.settings.get("singleton") ? T(muc_head_templateObject2(), o.jid) : '', shared_converse.locked_muc_domain !== 'hidden' ? o.jid : '', o.title, o.bookmarked ? T(muc_head_templateObject3(), i18n_bookmarked) : '', o.standalone_btns.length ? tpl_standalone_btns(o) : '', o.dropdown_btns.length ? T(muc_head_templateObject4(), o.dropdown_btns) : '', show_subject ? T(muc_head_templateObject5(), i18n_hide_topic, subject) : ''); + return T` +
    + ${!shared_converse.api.settings.get("singleton") ? T`` : ''} +
    ${o.title} + ${o.bookmarked ? T`` : ''} +
    +
    + ${o.standalone_btns.length ? tpl_standalone_btns(o) : ''} + ${o.dropdown_btns.length ? T`` : ''} +
    +
    + ${show_subject ? T`

    + +

    ` : ''} + `; }); // EXTERNAL MODULE: ./src/plugins/muc-views/styles/muc-head.scss var styles_muc_head = __webpack_require__(5355); @@ -51953,7 +53100,8 @@ var styles_muc_head = __webpack_require__(5355); -class MUCHeading extends ChatHeading { + +class MUCHeading extends ElementView { async connectedCallback() { super.connectedCallback(); this.model = shared_converse.chatboxes.get(this.getAttribute('jid')); @@ -51969,6 +53117,11 @@ class MUCHeading extends ChatHeading { this.render(); } + async render() { + const tpl = await this.generateHeadingTemplate(); + V(tpl, this); + } + onOccupantAdded(occupant) { if (occupant.get('jid') === shared_converse.bare_jid) { this.debouncedRender(); @@ -52007,10 +53160,14 @@ class MUCHeading extends ChatHeading { this.model.session.set('view', core_converse.MUC.VIEWS.CONFIG); } - destroy() { - var _converse$chatboxview; + close(ev) { + ev.preventDefault(); + this.model.close(); + } - (_converse$chatboxview = shared_converse.chatboxviews.get(this.getAttribute('jid'))) === null || _converse$chatboxview === void 0 ? void 0 : _converse$chatboxview.destroy(); + destroy(ev) { + ev.preventDefault(); + destroyMUC(this.model); } /** * Returns a list of objects which represent buttons for the groupchat header. @@ -52166,18 +53323,6 @@ class MUCNicknameForm extends CustomElement { api.elements.define('converse-muc-nickname-form', MUCNicknameForm); /* harmony default export */ const nickname_form = ((/* unused pure expression or super */ null && (MUCNicknameForm))); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-password-form.js -function muc_password_form_templateObject() { - const data = muc_password_form_taggedTemplateLiteral(["\n
    \n
    \n \n

    ", "

    \n \n \n
    \n
    \n \n
    \n
    \n "]); - - muc_password_form_templateObject = function () { - return data; - }; - - return data; -} - -function muc_password_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const muc_password_form = (o => { @@ -52187,7 +53332,23 @@ function muc_password_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw const i18n_submit = __('Submit'); - return T(muc_password_form_templateObject(), o.submitPassword, i18n_heading, o.validation_message, o.jid, o.validation_message ? 'error' : '', i18n_password, i18n_submit); + return T` +
    +
    + +

    ${o.validation_message}

    + + +
    +
    + +
    +
    + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/password-form.js @@ -52230,28 +53391,6 @@ class MUCPasswordForm extends CustomElement { api.elements.define('converse-muc-password-form', MUCPasswordForm); /* harmony default export */ const password_form = ((/* unused pure expression or super */ null && (MUCPasswordForm))); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc.js -function muc_templateObject2() { - const data = muc_taggedTemplateLiteral(["\n \n \n
    ", "
    \n "]); - - muc_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_templateObject() { - const data = muc_taggedTemplateLiteral(["\n
    \n \n ", "\n
    "]); - - muc_templateObject = function () { - return data; - }; - - return data; -} - -function muc_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -52262,7 +53401,15 @@ function muc_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.sli /* harmony default export */ const templates_muc = (o => { - return T(muc_templateObject(), o.model ? T(muc_templateObject2(), o.model.get('jid'), getChatRoomBodyTemplate(o)) : ''); + return T` +
    + + ${o.model ? T` + + +
    ${getChatRoomBodyTemplate(o)}
    + ` : ''} +
    `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/muc.js function muc_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -52270,8 +53417,6 @@ function muc_defineProperty(obj, key, value) { if (key in obj) { Object.definePr - - class MUCView extends BaseChatView { constructor(...args) { super(...args); @@ -52294,10 +53439,9 @@ class MUCView extends BaseChatView { this.setAttribute('id', this.model.get('box_id')); this.listenTo(shared_converse, 'windowStateChanged', this.onWindowStateChanged); this.listenTo(this.model, 'change:composing_spoiler', this.requestUpdateMessageForm); - this.listenTo(this.model, 'show', this.show); - this.listenTo(this.model.session, 'change:connection_status', this.updateAfterTransition); + this.listenTo(this.model.session, 'change:connection_status', this.onConnectionStatusChanged); this.listenTo(this.model.session, 'change:view', this.requestUpdate); - this.updateAfterTransition(); + this.onConnectionStatusChanged(); this.model.maybeShow(); /** * Triggered once a { @link _converse.ChatRoomView } has been opened @@ -52314,56 +53458,8 @@ class MUCView extends BaseChatView { 'model': this.model }); } - /** - * Closes this chat, which implies leaving the MUC as well. - * @private - * @method _converse.ChatRoomView#close - */ - - close(ev) { - var _ev$preventDefault; - - ev === null || ev === void 0 ? void 0 : (_ev$preventDefault = ev.preventDefault) === null || _ev$preventDefault === void 0 ? void 0 : _ev$preventDefault.call(ev); - - if (shared_converse.router.history.getFragment() === 'converse/room?jid=' + this.model.get('jid')) { - shared_converse.router.navigate(''); - } - - return this.model.close(ev); - } - - async destroy() { - const messages = [__('Are you sure you want to destroy this groupchat?')]; - let fields = [{ - 'name': 'challenge', - 'label': __('Please enter the XMPP address of this groupchat to confirm'), - 'challenge': this.model.get('jid'), - 'placeholder': __('name@example.org'), - 'required': true - }, { - 'name': 'reason', - 'label': __('Optional reason for destroying this groupchat'), - 'placeholder': __('Reason') - }, { - 'name': 'newjid', - 'label': __('Optional XMPP address for a new groupchat that replaces this one'), - 'placeholder': __('replacement@example.org') - }]; - - try { - var _fields$filter$pop, _fields$filter$pop2; - - fields = await api.confirm(__('Confirm'), messages, fields); - const reason = (_fields$filter$pop = fields.filter(f => f.name === 'reason').pop()) === null || _fields$filter$pop === void 0 ? void 0 : _fields$filter$pop.value; - const newjid = (_fields$filter$pop2 = fields.filter(f => f.name === 'newjid').pop()) === null || _fields$filter$pop2 === void 0 ? void 0 : _fields$filter$pop2.value; - return this.model.sendDestroyIQ(reason, newjid).then(() => this.close()); - } catch (e) { - headless_log.error(e); - } - } - - updateAfterTransition() { + onConnectionStatusChanged() { const conn_status = this.model.session.get('connection_status'); if (conn_status === core_converse.ROOMSTATUS.CONNECTING) { @@ -52384,80 +53480,6 @@ class MUCView extends BaseChatView { } api.elements.define('converse-muc', MUCView); -;// CONCATENATED MODULE: ./src/plugins/muc-views/api.js - -/* harmony default export */ const muc_views_api = ({ - /** - * The "roomviews" namespace groups methods relevant to chatroom - * (aka groupchats) views. - * - * @namespace _converse.api.roomviews - * @memberOf _converse.api - */ - roomviews: { - /** - * Retrieves a groupchat (aka chatroom) view. The chat should already be open. - * - * @method _converse.api.roomviews.get - * @param {String|string[]} name - e.g. 'coven@conference.shakespeare.lit' or - * ['coven@conference.shakespeare.lit', 'cave@conference.shakespeare.lit'] - * @returns {View} View representing the groupchat - * - * @example - * // To return a single view, provide the JID of the groupchat - * const view = _converse.api.roomviews.get('coven@conference.shakespeare.lit'); - * - * @example - * // To return an array of views, provide an array of JIDs: - * const views = _converse.api.roomviews.get(['coven@conference.shakespeare.lit', 'cave@conference.shakespeare.lit']); - * - * @example - * // To return views of all open groupchats, call the method without any parameters:: - * const views = _converse.api.roomviews.get(); - * - */ - get(jids) { - if (Array.isArray(jids)) { - const views = api.chatviews.get(jids); - return views.filter(v => v.model.get('type') === shared_converse.CHATROOMS_TYPE); - } else { - const view = api.chatviews.get(jids); - - if (view.model.get('type') === shared_converse.CHATROOMS_TYPE) { - return view; - } else { - return null; - } - } - }, - - /** - * Lets you close open chatrooms. - * - * You can call this method without any arguments to close - * all open chatrooms, or you can specify a single JID or - * an array of JIDs. - * - * @method _converse.api.roomviews.close - * @param {(String[]|String)} jids The JID or array of JIDs of the chatroom(s) - * @returns { Promise } - Promise which resolves once the views have been closed. - */ - close(jids) { - let views; - - if (jids === undefined) { - views = shared_converse.chatboxviews; - } else if (typeof jids === 'string') { - views = [shared_converse.chatboxviews.get(jids)].filter(v => v); - } else if (Array.isArray(jids)) { - views = jids.map(jid => shared_converse.chatboxviews.get(jid)); - } - - return Promise.all(views.map(v => v.is_chatroom && v.model && v.close())); - } - - } -}); // EXTERNAL MODULE: ./src/plugins/muc-views/styles/index.scss var muc_views_styles = __webpack_require__(5498); ;// CONCATENATED MODULE: ./src/plugins/muc-views/index.js @@ -52473,7 +53495,6 @@ var muc_views_styles = __webpack_require__(5498); - core_converse.MUC.VIEWS = { CONFIG: 'config-form', BOOKMARK: 'bookmark-form' @@ -52520,7 +53541,6 @@ core_converse.plugins.add('converse-muc-views', { } }); _converse.ChatRoomView = MUCView; - Object.assign(_converse.api, muc_views_api); api.listen.on('clearsession', () => { const view = _converse.chatboxviews.get('controlbox'); @@ -52538,6 +53558,11 @@ core_converse.plugins.add('converse-muc-views', { fetchAndSetMUCDomain(view); view.model.on('change:connected', () => fetchAndSetMUCDomain(view)); }); + api.listen.on('chatBoxClosed', model => { + if (model.get('type') === _converse.CHATROOMS_TYPE) { + utils_clearHistory(model.get('jid')); + } + }); } }); @@ -52557,9 +53582,9 @@ const supports_html5_notification = ('Notification' in window); core_converse.env.Favico = (favico_default()); let favicon; function isMessageToHiddenChat(attrs) { - var _converse$chatboxes$g, _converse$chatboxes$g2; + var _converse$chatboxes$g; - return shared_converse.isTestEnv() || ((_converse$chatboxes$g = (_converse$chatboxes$g2 = shared_converse.chatboxes.get(attrs.from)) === null || _converse$chatboxes$g2 === void 0 ? void 0 : _converse$chatboxes$g2.isHidden()) !== null && _converse$chatboxes$g !== void 0 ? _converse$chatboxes$g : false); + return shared_converse.isTestEnv() || (((_converse$chatboxes$g = shared_converse.chatboxes.get(attrs.from)) === null || _converse$chatboxes$g === void 0 ? void 0 : _converse$chatboxes$g.isHidden()) ?? false); } function areDesktopNotificationsEnabled() { return shared_converse.isTestEnv() || supports_html5_notification && api.settings.get('show_desktop_notifications') && Notification.permission === 'granted'; @@ -52572,9 +53597,9 @@ function clearFavicon() { } function updateUnreadFavicon() { if (api.settings.get('show_tab_notifications')) { - var _favicon, _navigator$setAppBadg, _navigator2; + var _navigator$setAppBadg, _navigator2; - favicon = (_favicon = favicon) !== null && _favicon !== void 0 ? _favicon : new core_converse.env.Favico({ + favicon = favicon ?? new core_converse.env.Favico({ type: 'circle', animation: 'pop' }); @@ -52591,7 +53616,7 @@ function updateUnreadFavicon() { */ async function shouldNotifyOfGroupMessage(attrs) { - if (!(attrs === null || attrs === void 0 ? void 0 : attrs.body)) { + if (!(attrs !== null && attrs !== void 0 && attrs.body)) { return false; } @@ -52607,12 +53632,12 @@ async function shouldNotifyOfGroupMessage(attrs) { const nick = room.get('nick'); if (api.settings.get('notify_nicknames_without_references')) { - is_mentioned = new RegExp("\\b".concat(nick, "\\b")).test(attrs.body); + is_mentioned = new RegExp(`\\b${nick}\\b`).test(attrs.body); } const references_me = r => { const jid = r.uri.replace(/^xmpp:/, ''); - return jid == shared_converse.bare_jid || jid === "".concat(muc_jid, "/").concat(nick); + return jid == shared_converse.bare_jid || jid === `${muc_jid}/${nick}`; }; const is_referenced = attrs.references.reduce((acc, r) => acc || references_me(r), false); @@ -52914,28 +53939,6 @@ core_converse.plugins.add('converse-notification', { }); ;// CONCATENATED MODULE: ./src/modals/templates/user-settings.js -function user_settings_templateObject2() { - const data = user_settings_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n ", "\n\n
    \n
    \n\n \n
    \n
    \n
    Converse
    \n

    ", "

    \n

    ", "

    \n

    ", "

    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n"]); - - user_settings_templateObject2 = function () { - return data; - }; - - return data; -} - -function user_settings_templateObject() { - const data = user_settings_taggedTemplateLiteral(["\n \n "]); - - user_settings_templateObject = function () { - return data; - }; - - return data; -} - -function user_settings_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -52948,7 +53951,16 @@ const user_settings_tpl_navigation = o => { const i18n_commands = __('Commands'); - return T(user_settings_templateObject(), o.switchTab, i18n_about, o.switchTab, i18n_commands); + return T` + + `; }; /* harmony default export */ const templates_user_settings = (o => { @@ -52961,15 +53973,49 @@ const user_settings_tpl_navigation = o => { const show_client_info = api.settings.get('show_client_info'); const allow_adhoc_commands = api.settings.get('allow_adhoc_commands'); const show_both_tabs = show_client_info && allow_adhoc_commands; - return T(user_settings_templateObject2(), i18n_modal_title, modal_header_close_button, show_both_tabs ? user_settings_tpl_navigation(o) : '', show_client_info ? 'active' : '', o.version_name, unsafe_html_o(xss.filterXSS(first_subtitle, { + return T` + +`; }); ;// CONCATENATED MODULE: ./src/modals/user-settings.js @@ -52993,38 +54039,6 @@ let user_settings_converse; })); ;// CONCATENATED MODULE: ./src/plugins/profile/templates/profile.js -function profile_templateObject3() { - const data = profile_taggedTemplateLiteral([""]); - - profile_templateObject3 = function () { - return data; - }; - - return data; -} - -function profile_templateObject2() { - const data = profile_taggedTemplateLiteral([""]); - - profile_templateObject2 = function () { - return data; - }; - - return data; -} - -function profile_templateObject() { - const data = profile_taggedTemplateLiteral(["\n
    \n
    \n \n \n \n ", "\n ", "\n ", "\n
    \n \n
    \n"]); - - profile_templateObject = function () { - return data; - }; - - return data; -} - -function profile_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -53036,7 +54050,29 @@ function profile_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings const i18n_details = __('Show details about this chat client'); const show_settings_button = api.settings.get('show_client_info') || api.settings.get('allow_adhoc_commands'); - return T(profile_templateObject(), o.showProfileModal, o.fullname, show_settings_button ? T(profile_templateObject2(), i18n_details, o.showUserSettingsModal) : '', api.settings.get('allow_logout') ? T(profile_templateObject3(), i18n_logout, o.logout) : '', i18n_change_status, o.showStatusChangeModal, o.chat_status, o.chat_status, o.chat_status === 'online' && 'fa fa-circle chat-status chat-status--online', o.chat_status === 'dnd' && 'fa fa-minus-circle chat-status chat-status--busy', o.chat_status === 'away' && 'fa fa-circle chat-status chat-status--away', o.chat_status === 'xa' && 'far fa-circle chat-status chat-status--xa ', o.chat_status === 'offline' && 'fa fa-circle chat-status chat-status--offline', o.status_message); + return T` +
    +
    + + + + ${o.fullname} + ${show_settings_button ? T`` : ''} + ${api.settings.get('allow_logout') ? T`` : ''} +
    + +
    +`; }); ;// CONCATENATED MODULE: ./src/plugins/profile/statusview.js @@ -53121,21 +54157,57 @@ class ProfileView extends ElementViewWithAvatar { api.elements.define('converse-user-profile', ProfileView); ;// CONCATENATED MODULE: ./src/modals/templates/chat-status.js -function chat_status_templateObject() { - const data = chat_status_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n"]); - - chat_status_templateObject = function () { - return data; - }; - - return data; -} - -function chat_status_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -/* harmony default export */ const chat_status = (o => T(chat_status_templateObject(), o.modal_title, modal_header_close_button, o.status === 'online', o.label_online, o.status === 'busy', o.label_busy, o.status === 'away', o.label_away, o.status === 'xa', o.label_xa, o.status_message || '', o.placeholder_status_message, o.status_message ? '' : 'hidden', o.label_save)); +/* harmony default export */ const chat_status = (o => T` + +`); ;// CONCATENATED MODULE: ./src/modals/chat-status.js @@ -53195,25 +54267,13 @@ const ChatStatusModal = base.extend({ shared_converse.ChatStatusModal = ChatStatusModal; /* harmony default export */ const modals_chat_status = ((/* unused pure expression or super */ null && (ChatStatusModal))); ;// CONCATENATED MODULE: ./src/shared/components/image-picker.js -function image_picker_templateObject() { - const data = image_picker_taggedTemplateLiteral(["\n \n ", "\n \n \n "]); - - image_picker_templateObject = function () { - return data; - }; - - return data; -} - -function image_picker_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -const i18n_alt_avatar = __('Your avatar image'); +const i18n_profile_picture = __('Your profile picture'); class ImagePicker extends CustomElement { static get properties() { @@ -53236,7 +54296,12 @@ class ImagePicker extends CustomElement { 'image': this.image, 'width': this.width }; - return T(image_picker_templateObject(), this.openFileSelection, i18n_alt_avatar, renderAvatar(avatar_data), this.updateFilePreview); + return T` + + ${renderAvatar(avatar_data)} + + + `; } openFileSelection(ev) { @@ -53256,88 +54321,6 @@ class ImagePicker extends CustomElement { } api.elements.define('converse-image-picker', ImagePicker); ;// CONCATENATED MODULE: ./src/modals/templates/profile.js -function profile_templateObject8() { - const data = templates_profile_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n \n ", "\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    ", "
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n ", "\n
    \n
    \n
    \n \n
    \n
    \n
    \n ", "\n
    \n
    \n
    \n
    \n "]); - - profile_templateObject8 = function () { - return data; - }; - - return data; -} - -function profile_templateObject7() { - const data = templates_profile_taggedTemplateLiteral(["\n "]); - - profile_templateObject7 = function () { - return data; - }; - - return data; -} - -function profile_templateObject6() { - const data = templates_profile_taggedTemplateLiteral(["\n
    \n
    \n
      \n
    • ", "
    • \n
    • \n ", "\n
    • \n
    \n
    \n \n
    \n ", "\n
    \n
    "]); - - profile_templateObject6 = function () { - return data; - }; - - return data; -} - -function profile_templateObject5() { - const data = templates_profile_taggedTemplateLiteral(["\n
      \n
    • \n \n
    • \n ", "\n
    \n
    \n "]); - - profile_templateObject5 = function () { - return data; - }; - - return data; -} - -function profile_templateObject4() { - const data = templates_profile_taggedTemplateLiteral(["\n ", "\n"]); - - profile_templateObject4 = function () { - return data; - }; - - return data; -} - -function templates_profile_templateObject3() { - const data = templates_profile_taggedTemplateLiteral(["\n
  • \n \n
  • \n "]); - - templates_profile_templateObject3 = function () { - return data; - }; - - return data; -} - -function templates_profile_templateObject2() { - const data = templates_profile_taggedTemplateLiteral(["\n
  • \n \n
  • \n "]); - - templates_profile_templateObject2 = function () { - return data; - }; - - return data; -} - -function templates_profile_templateObject() { - const data = templates_profile_taggedTemplateLiteral(["\n ", ""]); - - templates_profile_templateObject = function () { - return data; - }; - - return data; -} - -function templates_profile_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -53346,12 +54329,21 @@ function templates_profile_taggedTemplateLiteral(strings, raw) { if (!raw) { raw const profile_u = core_converse.env.utils; -const fingerprint = o => T(templates_profile_templateObject(), profile_u.formatFingerprint(o.view.current_device.get('bundle').fingerprint)); +const fingerprint = o => T` + ${profile_u.formatFingerprint(o.view.current_device.get('bundle').fingerprint)}`; const device_with_fingerprint = o => { const i18n_fingerprint_checkbox_label = __('Checkbox for selecting the following fingerprint'); - return T(templates_profile_templateObject2(), o.device.get('id'), i18n_fingerprint_checkbox_label, profile_u.formatFingerprint(o.device.get('bundle').fingerprint)); + return T` +
  • + +
  • + `; }; const device_without_fingerprint = o => { @@ -53359,10 +54351,20 @@ const device_without_fingerprint = o => { const i18n_fingerprint_checkbox_label = __('Checkbox for selecting the following device'); - return T(templates_profile_templateObject3(), o.device.get('id'), i18n_fingerprint_checkbox_label, i18n_device_without_fingerprint); + return T` +
  • + +
  • + `; }; -const device_item = o => T(profile_templateObject4(), o.device.get('bundle') && o.device.get('bundle').fingerprint ? device_with_fingerprint(o) : device_without_fingerprint(o)); +const device_item = o => T` + ${o.device.get('bundle') && o.device.get('bundle').fingerprint ? device_with_fingerprint(o) : device_without_fingerprint(o)} +`; const device_list = o => { const i18n_other_devices = __('Other OMEMO-enabled devices'); @@ -53373,9 +54375,20 @@ const device_list = o => { const i18n_select_all = __('Select all'); - return T(profile_templateObject5(), i18n_select_all, i18n_other_devices_label, i18n_other_devices, o.view.other_devices.map(device => device_item(Object.assign({ + return T` +
      +
    • + +
    • + ${o.view.other_devices.map(device => device_item(Object.assign({ device - }, o))), i18n_remove_devices); + }, o)))} +
    +
    + `; }; // TODO: this needs to go as a component into the OMEMO plugin folder @@ -53384,7 +54397,21 @@ const omemo_page = o => { const i18n_generate = __('Generate new keys and fingerprint'); - return T(profile_templateObject6(), i18n_fingerprint, o.view.current_device && o.view.current_device.get('bundle') && o.view.current_device.get('bundle').fingerprint ? fingerprint(o) : spinner(), i18n_generate, o.view.other_devices.length ? device_list(o) : ''); + return T` +
    +
    +
      +
    • ${i18n_fingerprint}
    • +
    • + ${o.view.current_device && o.view.current_device.get('bundle') && o.view.current_device.get('bundle').fingerprint ? fingerprint(o) : spinner()} +
    • +
    +
    + +
    + ${o.view.other_devices.length ? device_list(o) : ''} +
    +
    `; }; /* harmony default export */ const templates_profile = (o => { @@ -53394,7 +54421,7 @@ const omemo_page = o => { const i18n_fullname = __('Full Name'); - const i18n_jid = __('XMPP Address (JID)'); + const i18n_jid = __('XMPP Address'); const i18n_nickname = __('Nickname'); @@ -53410,8 +54437,72 @@ const omemo_page = o => { const i18n_profile = __('Profile'); - const navigation = T(profile_templateObject7(), i18n_profile, i18n_omemo); - return T(profile_templateObject8(), heading_profile, modal_header_close_button, shared_converse.pluggable.plugins["converse-omemo"].enabled(shared_converse) && navigation || '', o.image, o.width, o.height, i18n_jid, o.jid, i18n_fullname, o.fullname || '', i18n_nickname, o.nickname || '', i18n_url, o.url || '', i18n_email, o.email || '', i18n_role, o.role || '', i18n_role_help, i18n_save, shared_converse.pluggable.plugins["converse-omemo"].enabled(shared_converse) && omemo_page(o) || ''); + const navigation = T` + `; + return T` + + `; }); ;// CONCATENATED MODULE: ./src/modals/profile.js @@ -53533,35 +54624,95 @@ core_converse.plugins.add('converse-profile', { } }); -;// CONCATENATED MODULE: ./src/plugins/omemo/overrides/chatbox.js - -const chatbox_ChatBox = { - async sendMessage(text, spoiler_hint) { - if (this.get('omemo_active') && text) { - const attrs = this.getOutgoingMessageAttributes(text, spoiler_hint); - attrs['is_encrypted'] = true; - attrs['plaintext'] = attrs.message; - let message, stanza; - - try { - const devices = await shared_converse.getBundlesAndBuildSessions(this); - message = await this.createMessage(attrs); - stanza = await shared_converse.createOMEMOMessageStanza(this, message, devices); - } catch (e) { - this.handleMessageSendError(e); - return null; - } - - shared_converse.api.send(stanza); - - return message; - } else { - return this.__super__.sendMessage.apply(this, arguments); - } - } - +;// CONCATENATED MODULE: ./src/utils/file.js +const MIMETYPES_MAP = { + 'aac': 'audio/aac', + 'abw': 'application/x-abiword', + 'arc': 'application/x-freearc', + 'avi': 'video/x-msvideo', + 'azw': 'application/vnd.amazon.ebook', + 'bin': 'application/octet-stream', + 'bmp': 'image/bmp', + 'bz': 'application/x-bzip', + 'bz2': 'application/x-bzip2', + 'cda': 'application/x-cdf', + 'csh': 'application/x-csh', + 'css': 'text/css', + 'csv': 'text/csv', + 'doc': 'application/msword', + 'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'eot': 'application/vnd.ms-fontobject', + 'epub': 'application/epub+zip', + 'gif': 'image/gif', + 'gz': 'application/gzip', + 'htm': 'text/html', + 'html': 'text/html', + 'ico': 'image/vnd.microsoft.icon', + 'ics': 'text/calendar', + 'jar': 'application/java-archive', + 'jpeg': 'image/jpeg', + 'jpg': 'image/jpeg', + 'js': 'text/javascript', + 'json': 'application/json', + 'jsonld': 'application/ld+json', + 'm4a': 'audio/mp4', + 'mid': 'audio/midi', + 'midi': 'audio/midi', + 'mjs': 'text/javascript', + 'mp3': 'audio/mpeg', + 'mp4': 'video/mp4', + 'mpeg': 'video/mpeg', + 'mpkg': 'application/vnd.apple.installer+xml', + 'odp': 'application/vnd.oasis.opendocument.presentation', + 'ods': 'application/vnd.oasis.opendocument.spreadsheet', + 'odt': 'application/vnd.oasis.opendocument.text', + 'oga': 'audio/ogg', + 'ogv': 'video/ogg', + 'ogx': 'application/ogg', + 'opus': 'audio/opus', + 'otf': 'font/otf', + 'png': 'image/png', + 'pdf': 'application/pdf', + 'php': 'application/x-httpd-php', + 'ppt': 'application/vnd.ms-powerpoint', + 'pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'rar': 'application/vnd.rar', + 'rtf': 'application/rtf', + 'sh': 'application/x-sh', + 'svg': 'image/svg+xml', + 'swf': 'application/x-shockwave-flash', + 'tar': 'application/x-tar', + 'tif': 'image/tiff', + 'tiff': 'image/tiff', + 'ts': 'video/mp2t', + 'ttf': 'font/ttf', + 'txt': 'text/plain', + 'vsd': 'application/vnd.visio', + 'wav': 'audio/wav', + 'weba': 'audio/webm', + 'webm': 'video/webm', + 'webp': 'image/webp', + 'woff': 'font/woff', + 'woff2': 'font/woff2', + 'xhtml': 'application/xhtml+xml', + 'xls': 'application/vnd.ms-excel', + 'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xml': 'text/xml', + 'xul': 'application/vnd.mozilla.xul+xml', + 'zip': 'application/zip', + '3gp': 'video/3gpp', + '3g2': 'video/3gpp2', + '7z': 'application/x-7z-compressed' +}; +;// CONCATENATED MODULE: ./src/plugins/omemo/consts.js +const UNDECIDED = 0; +const TRUSTED = 1; +const UNTRUSTED = -1; +const TAG_LENGTH = 128; +const KEY_ALGO = { + 'name': 'AES-GCM', + 'length': 128 }; -/* harmony default export */ const chatbox = (chatbox_ChatBox); ;// CONCATENATED MODULE: ./node_modules/lodash-es/concat.js @@ -53607,23 +54758,54 @@ function concat() { /* harmony default export */ const lodash_es_concat = (concat); -;// CONCATENATED MODULE: ./src/plugins/omemo/consts.js -const UNDECIDED = 0; -const TRUSTED = 1; -const UNTRUSTED = -1; -;// CONCATENATED MODULE: ./src/plugins/omemo/utils.js -function omemo_utils_templateObject() { - const data = omemo_utils_taggedTemplateLiteral(["\n \n "]); +;// CONCATENATED MODULE: ./src/headless/utils/arraybuffer.js - omemo_utils_templateObject = function () { - return data; - }; - - return data; +const { + u: arraybuffer_u +} = core_converse.env; +function appendArrayBuffer(buffer1, buffer2) { + const tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength); + tmp.set(new Uint8Array(buffer1), 0); + tmp.set(new Uint8Array(buffer2), buffer1.byteLength); + return tmp.buffer; } +function arrayBufferToHex(ab) { + // https://stackoverflow.com/questions/40031688/javascript-arraybuffer-to-hex#40031979 + return Array.prototype.map.call(new Uint8Array(ab), x => ('00' + x.toString(16)).slice(-2)).join(''); +} +function arrayBufferToString(ab) { + return new TextDecoder("utf-8").decode(ab); +} +function stringToArrayBuffer(string) { + const bytes = new TextEncoder("utf-8").encode(string); + return bytes.buffer; +} +function arrayBufferToBase64(ab) { + return btoa(new Uint8Array(ab).reduce((data, byte) => data + String.fromCharCode(byte), '')); +} +function base64ToArrayBuffer(b64) { + const binary_string = window.atob(b64), + len = binary_string.length, + bytes = new Uint8Array(len); -function omemo_utils_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } + for (let i = 0; i < len; i++) { + bytes[i] = binary_string.charCodeAt(i); + } + return bytes.buffer; +} +function hexToArrayBuffer(hex) { + const typedArray = new Uint8Array(hex.match(/[\da-f]{2}/gi).map(h => parseInt(h, 16))); + return typedArray.buffer; +} +Object.assign(arraybuffer_u, { + arrayBufferToHex, + arrayBufferToString, + stringToArrayBuffer, + arrayBufferToBase64, + base64ToArrayBuffer +}); +;// CONCATENATED MODULE: ./src/plugins/omemo/utils.js /* global libsignal */ @@ -53631,60 +54813,214 @@ function omemo_utils_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = str + + + + + + + + + + const { + $msg: utils_$msg, Strophe: omemo_utils_Strophe, + URI: utils_URI, sizzle: omemo_utils_sizzle, u: omemo_utils_u } = core_converse.env; -const TAG_LENGTH = 128; -const KEY_ALGO = { - 'name': 'AES-GCM', - 'length': 128 -}; -const omemo = { - async encryptMessage(plaintext) { - // The client MUST use fresh, randomly generated key/IV pairs - // with AES-128 in Galois/Counter Mode (GCM). - // For GCM a 12 byte IV is strongly suggested as other IV lengths - // will require additional calculations. In principle any IV size - // can be used as long as the IV doesn't ever repeat. NIST however - // suggests that only an IV size of 12 bytes needs to be supported - // by implementations. - // - // https://crypto.stackexchange.com/questions/26783/ciphertext-and-tag-size-and-iv-transmission-with-aes-in-gcm-mode - const iv = crypto.getRandomValues(new window.Uint8Array(12)), - key = await crypto.subtle.generateKey(KEY_ALGO, true, ['encrypt', 'decrypt']), - algo = { - 'name': 'AES-GCM', - 'iv': iv, - 'tagLength': TAG_LENGTH - }, - encrypted = await crypto.subtle.encrypt(algo, key, omemo_utils_u.stringToArrayBuffer(plaintext)), - length = encrypted.byteLength - (128 + 7 >> 3), - ciphertext = encrypted.slice(0, length), - tag = encrypted.slice(length), - exported_key = await crypto.subtle.exportKey('raw', key); - return { - 'key': exported_key, - 'tag': tag, - 'key_and_tag': omemo_utils_u.appendArrayBuffer(exported_key, tag), - 'payload': omemo_utils_u.arrayBufferToBase64(ciphertext), - 'iv': omemo_utils_u.arrayBufferToBase64(iv) - }; - }, - async decryptMessage(obj) { - const key_obj = await crypto.subtle.importKey('raw', obj.key, KEY_ALGO, true, ['encrypt', 'decrypt']); - const cipher = omemo_utils_u.appendArrayBuffer(omemo_utils_u.base64ToArrayBuffer(obj.payload), obj.tag); - const algo = { - 'name': 'AES-GCM', - 'iv': omemo_utils_u.base64ToArrayBuffer(obj.iv), - 'tagLength': TAG_LENGTH - }; - return omemo_utils_u.arrayBufferToString(await crypto.subtle.decrypt(algo, key_obj, cipher)); +async function encryptMessage(plaintext) { + // The client MUST use fresh, randomly generated key/IV pairs + // with AES-128 in Galois/Counter Mode (GCM). + // For GCM a 12 byte IV is strongly suggested as other IV lengths + // will require additional calculations. In principle any IV size + // can be used as long as the IV doesn't ever repeat. NIST however + // suggests that only an IV size of 12 bytes needs to be supported + // by implementations. + // + // https://crypto.stackexchange.com/questions/26783/ciphertext-and-tag-size-and-iv-transmission-with-aes-in-gcm-mode + const iv = crypto.getRandomValues(new window.Uint8Array(12)); + const key = await crypto.subtle.generateKey(KEY_ALGO, true, ['encrypt', 'decrypt']); + const algo = { + 'name': 'AES-GCM', + 'iv': iv, + 'tagLength': TAG_LENGTH + }; + const encrypted = await crypto.subtle.encrypt(algo, key, stringToArrayBuffer(plaintext)); + const length = encrypted.byteLength - (128 + 7 >> 3); + const ciphertext = encrypted.slice(0, length); + const tag = encrypted.slice(length); + const exported_key = await crypto.subtle.exportKey('raw', key); + return { + 'key': exported_key, + 'tag': tag, + 'key_and_tag': appendArrayBuffer(exported_key, tag), + 'payload': arrayBufferToBase64(ciphertext), + 'iv': arrayBufferToBase64(iv) + }; +} + +async function decryptMessage(obj) { + const key_obj = await crypto.subtle.importKey('raw', obj.key, KEY_ALGO, true, ['encrypt', 'decrypt']); + const cipher = appendArrayBuffer(base64ToArrayBuffer(obj.payload), obj.tag); + const algo = { + 'name': 'AES-GCM', + 'iv': base64ToArrayBuffer(obj.iv), + 'tagLength': TAG_LENGTH + }; + return arrayBufferToString(await crypto.subtle.decrypt(algo, key_obj, cipher)); +} + +const omemo = { + decryptMessage, + encryptMessage +}; +async function encryptFile(file) { + const iv = crypto.getRandomValues(new Uint8Array(12)); + const key = await crypto.subtle.generateKey({ + name: 'AES-GCM', + length: 256 + }, true, ['encrypt', 'decrypt']); + const encrypted = await crypto.subtle.encrypt({ + name: 'AES-GCM', + iv + }, key, await file.arrayBuffer()); + const exported_key = await window.crypto.subtle.exportKey('raw', key); + const encrypted_file = new File([encrypted], file.name, { + type: file.type, + lastModified: file.lastModified + }); + encrypted_file.xep454_ivkey = arrayBufferToHex(iv) + arrayBufferToHex(exported_key); + return encrypted_file; +} +function setEncryptedFileURL(message, attrs) { + const url = attrs.oob_url.replace(/^https?:/, 'aesgcm:') + '#' + message.file.xep454_ivkey; + return Object.assign(attrs, { + 'oob_url': null, + // Since only the body gets encrypted, we don't set the oob_url + 'message': url, + 'body': url + }); +} + +async function decryptFile(iv, key, cipher) { + const key_obj = await crypto.subtle.importKey('raw', hexToArrayBuffer(key), 'AES-GCM', false, ['decrypt']); + const algo = { + 'name': 'AES-GCM', + 'iv': hexToArrayBuffer(iv) + }; + return crypto.subtle.decrypt(algo, key_obj, cipher); +} + +async function downloadFile(url) { + let response; + + try { + response = await fetch(url); + } catch (e) { + headless_log.error(`Failed to download encrypted media: ${url}`); + headless_log.error(e); + return null; } -}; + if (response.status >= 200 && response.status < 400) { + return response.arrayBuffer(); + } +} + +async function getAndDecryptFile(uri) { + var _uri$filename; + + const hash = uri.hash().slice(1); + const protocol = window.location.hostname === 'localhost' ? 'http' : 'https'; + const http_url = uri.toString().replace(/^aesgcm/, protocol); + const cipher = await downloadFile(http_url); + const iv = hash.slice(0, 24); + const key = hash.slice(24); + let content; + + try { + content = await decryptFile(iv, key, cipher); + } catch (e) { + headless_log.error(`Could not decrypt file ${uri.toString()}`); + headless_log.error(e); + return null; + } + + const [filename, extension] = (_uri$filename = uri.filename()) === null || _uri$filename === void 0 ? void 0 : _uri$filename.split('.'); + const mimetype = MIMETYPES_MAP[extension]; + + try { + const file = new File([content], filename, { + 'type': mimetype + }); + return URL.createObjectURL(file); + } catch (e) { + headless_log.error(`Could not decrypt file ${uri.toString()}`); + headless_log.error(e); + return null; + } +} + +function getTemplateForObjectURL(uri, obj_url, richtext) { + const file_url = uri.toString(); + + if (obj_url === null) { + return file_url; + } + + if (isImageURL(file_url)) { + return src_templates_image({ + 'url': obj_url, + 'onClick': richtext.onImgClick, + 'onLoad': richtext.onImgLoad + }); + } else if (isAudioURL(file_url)) { + return audio(obj_url); + } else if (isVideoURL(file_url)) { + return video(obj_url); + } else { + return file(obj_url, uri.filename()); + } +} + +function addEncryptedFiles(text, offset, richtext) { + const objs = []; + + try { + const parse_options = { + 'start': /\b(aesgcm:\/\/)/gi + }; + utils_URI.withinString(text, (url, start, end) => { + objs.push({ + url, + start, + end + }); + return url; + }, parse_options); + } catch (error) { + headless_log.debug(error); + return; + } + + objs.forEach(o => { + const uri = getURI(text.slice(o.start, o.end)); + const promise = getAndDecryptFile(uri).then(obj_url => getTemplateForObjectURL(uri, obj_url, richtext)); + const template = T`${until_o(promise, '')}`; + richtext.addTemplateResult(o.start + offset, o.end + offset, template); + }); +} + +function handleEncryptedFiles(richtext) { + if (!shared_converse.config.get('trusted')) { + return; + } + + richtext.addAnnotations((text, offset) => addEncryptedFiles(text, offset, richtext)); +} function parseEncryptedMessage(stanza, attrs) { if (attrs.is_encrypted && attrs.encrypted.key) { // https://xmpp.org/extensions/xep-0384.html#usecases-receiving @@ -53697,7 +55033,7 @@ function parseEncryptedMessage(stanza, attrs) { return attrs; } } -function onChatBoxesInitialized() { +function utils_onChatBoxesInitialized() { shared_converse.chatboxes.on('add', chatbox => { checkOMEMOSupported(chatbox); @@ -53765,7 +55101,7 @@ async function handleDecryptedWhisperMessage(attrs, key_and_tag) { function getDecryptionErrorAttributes(e) { if (api.settings.get('loglevel') === 'debug') { return { - 'error_text': __('Sorry, could not decrypt a received OMEMO message due to an error.') + " ".concat(e.name, " ").concat(e.message), + 'error_text': __('Sorry, could not decrypt a received OMEMO message due to an error.') + ` ${e.name} ${e.message}`, 'error_type': 'Decryption', 'is_ephemeral': true, 'is_error': true, @@ -53778,7 +55114,7 @@ function getDecryptionErrorAttributes(e) { async function decryptPrekeyWhisperMessage(attrs) { const session_cipher = getSessionCipher(attrs.from, parseInt(attrs.encrypted.device_id, 10)); - const key = omemo_utils_u.base64ToArrayBuffer(attrs.encrypted.key); + const key = base64ToArrayBuffer(attrs.encrypted.key); let key_and_tag; try { @@ -53798,7 +55134,7 @@ async function decryptPrekeyWhisperMessage(attrs) { // sender this way, the invalid session of the original // sender will get overwritten with this newly created, // valid session. - headless_log.error("".concat(e.name, " ").concat(e.message)); + headless_log.error(`${e.name} ${e.message}`); return Object.assign(attrs, getDecryptionErrorAttributes(e)); } // TODO from the XEP: // When a client receives the first message for a given @@ -53825,7 +55161,7 @@ async function decryptPrekeyWhisperMessage(attrs) { }); } } catch (e) { - headless_log.error("".concat(e.name, " ").concat(e.message)); + headless_log.error(`${e.name} ${e.message}`); return Object.assign(attrs, getDecryptionErrorAttributes(e)); } } @@ -53835,7 +55171,7 @@ async function decryptWhisperMessage(attrs) { if (!from_jid) { Object.assign(attrs, { - 'error_text': __("Sorry, could not decrypt a received OMEMO because we don't have the JID for that user."), + 'error_text': __("Sorry, could not decrypt a received OMEMO message because we don't have the XMPP address for that user."), 'error_type': 'Decryption', 'is_ephemeral': false, 'is_error': true, @@ -53844,7 +55180,7 @@ async function decryptWhisperMessage(attrs) { } const session_cipher = getSessionCipher(from_jid, parseInt(attrs.encrypted.device_id, 10)); - const key = omemo_utils_u.base64ToArrayBuffer(attrs.encrypted.key); + const key = base64ToArrayBuffer(attrs.encrypted.key); try { const key_and_tag = await session_cipher.decryptWhisperMessage(key, 'binary'); @@ -53853,7 +55189,7 @@ async function decryptWhisperMessage(attrs) { 'plaintext': plaintext }); } catch (e) { - headless_log.error("".concat(e.name, " ").concat(e.message)); + headless_log.error(`${e.name} ${e.message}`); return Object.assign(attrs, getDecryptionErrorAttributes(e)); } } @@ -53892,7 +55228,7 @@ function addKeysToMessageStanza(stanza, dicts, iv) { function parseBundle(bundle_el) { const signed_prekey_public_el = bundle_el.querySelector('signedPreKeyPublic'); const signed_prekey_signature_el = bundle_el.querySelector('signedPreKeySignature'); - const prekeys = omemo_utils_sizzle("prekeys > preKeyPublic", bundle_el).map(el => ({ + const prekeys = omemo_utils_sizzle(`prekeys > preKeyPublic`, bundle_el).map(el => ({ 'id': parseInt(el.getAttribute('preKeyId'), 10), 'key': el.textContent })); @@ -53909,12 +55245,12 @@ function parseBundle(bundle_el) { async function generateFingerprint(device) { var _device$get; - if ((_device$get = device.get('bundle')) === null || _device$get === void 0 ? void 0 : _device$get.fingerprint) { + if ((_device$get = device.get('bundle')) !== null && _device$get !== void 0 && _device$get.fingerprint) { return; } const bundle = await device.getBundle(); - bundle['fingerprint'] = omemo_utils_u.arrayBufferToHex(omemo_utils_u.base64ToArrayBuffer(bundle['identity_key'])); + bundle['fingerprint'] = arrayBufferToHex(base64ToArrayBuffer(bundle['identity_key'])); device.save('bundle', bundle); device.trigger('change:bundle'); // Doesn't get triggered automatically due to pass-by-reference } @@ -53959,24 +55295,24 @@ async function buildSession(device) { const bundle = await device.getBundle(); return sessionBuilder.processPreKey({ 'registrationId': parseInt(device.get('id'), 10), - 'identityKey': omemo_utils_u.base64ToArrayBuffer(bundle.identity_key), + 'identityKey': base64ToArrayBuffer(bundle.identity_key), 'signedPreKey': { 'keyId': bundle.signed_prekey.id, // - 'publicKey': omemo_utils_u.base64ToArrayBuffer(bundle.signed_prekey.public_key), - 'signature': omemo_utils_u.base64ToArrayBuffer(bundle.signed_prekey.signature) + 'publicKey': base64ToArrayBuffer(bundle.signed_prekey.public_key), + 'signature': base64ToArrayBuffer(bundle.signed_prekey.signature) }, 'preKey': { 'keyId': prekey.id, // - 'publicKey': omemo_utils_u.base64ToArrayBuffer(prekey.key) + 'publicKey': base64ToArrayBuffer(prekey.key) } }); } async function getSession(device) { if (!device.get('bundle')) { - headless_log.error("Could not build an OMEMO session for device ".concat(device.get('id'), " because we don't have its bundle")); + headless_log.error(`Could not build an OMEMO session for device ${device.get('id')} because we don't have its bundle`); return null; } @@ -53990,7 +55326,7 @@ async function getSession(device) { const session = await buildSession(device); return session; } catch (e) { - headless_log.error("Could not build an OMEMO session for device ".concat(device.get('id'))); + headless_log.error(`Could not build an OMEMO session for device ${device.get('id')}`); headless_log.error(e); return null; } @@ -53998,7 +55334,7 @@ async function getSession(device) { } function updateBundleFromStanza(stanza) { - const items_el = omemo_utils_sizzle("items", stanza).pop(); + const items_el = omemo_utils_sizzle(`items`, stanza).pop(); if (!items_el || !items_el.getAttribute('node').startsWith(omemo_utils_Strophe.NS.OMEMO_BUNDLES)) { return; @@ -54006,7 +55342,7 @@ function updateBundleFromStanza(stanza) { const device_id = items_el.getAttribute('node').split(':')[1]; const jid = stanza.getAttribute('from'); - const bundle_el = omemo_utils_sizzle("item > bundle", items_el).pop(); + const bundle_el = omemo_utils_sizzle(`item > bundle`, items_el).pop(); const devicelist = shared_converse.devicelists.getDeviceList(jid); @@ -54020,13 +55356,13 @@ function updateBundleFromStanza(stanza) { } function updateDevicesFromStanza(stanza) { - const items_el = omemo_utils_sizzle("items[node=\"".concat(omemo_utils_Strophe.NS.OMEMO_DEVICELIST, "\"]"), stanza).pop(); + const items_el = omemo_utils_sizzle(`items[node="${omemo_utils_Strophe.NS.OMEMO_DEVICELIST}"]`, stanza).pop(); if (!items_el) { return; } - const device_selector = "item list[xmlns=\"".concat(omemo_utils_Strophe.NS.OMEMO, "\"] device"); + const device_selector = `item list[xmlns="${omemo_utils_Strophe.NS.OMEMO}"] device`; const device_ids = omemo_utils_sizzle(device_selector, items_el).map(d => d.getAttribute('id')); const jid = stanza.getAttribute('from'); @@ -54065,7 +55401,7 @@ function registerPEPPushHandler() { // Add a handler for devices pushed from other connected clients shared_converse.connection.addHandler(message => { try { - if (omemo_utils_sizzle("event[xmlns=\"".concat(omemo_utils_Strophe.NS.PUBSUB, "#event\"]"), message).length) { + if (omemo_utils_sizzle(`event[xmlns="${omemo_utils_Strophe.NS.PUBSUB}#event"]`, message).length) { updateDevicesFromStanza(message); updateBundleFromStanza(message); } @@ -54078,7 +55414,7 @@ function registerPEPPushHandler() { } function restoreOMEMOSession() { if (shared_converse.omemo_store === undefined) { - const id = "converse.omemosession-".concat(shared_converse.bare_jid); + const id = `converse.omemosession-${shared_converse.bare_jid}`; shared_converse.omemo_store = new shared_converse.OMEMOStore({ id }); @@ -54120,7 +55456,7 @@ async function initOMEMO() { } shared_converse.devicelists = new shared_converse.DeviceLists(); - const id = "converse.devicelists-".concat(shared_converse.bare_jid); + const id = `converse.devicelists-${shared_converse.bare_jid}`; initStorage(shared_converse.devicelists, id); try { @@ -54218,19 +55554,159 @@ function getOMEMOToolbarButton(toolbar_el, buttons) { title = __('This groupchat needs to be members-only and non-anonymous in ' + 'order to support OMEMO encrypted messages'); } - buttons.push(T(omemo_utils_templateObject(), title, !model.get('omemo_supported'), toggleOMEMO, model.get('omemo_active') ? "fa-lock" : "fa-unlock", api.settings.get('assets_path'), model.get('omemo_active') ? "var(--info-color)" : "var(--error-color)")); + let color; + + if (model.get('omemo_supported')) { + color = model.get('omemo_active') ? `var(--info-color)` : `var(--error-color)`; + } else { + color = `var(--muc-toolbar-btn-disabled-color)`; + } + + buttons.push(T` + + `); return buttons; } +async function getBundlesAndBuildSessions(chatbox) { + const no_devices_err = __('Sorry, no devices found to which we can send an OMEMO encrypted message.'); + + let devices; + + if (chatbox.get('type') === shared_converse.CHATROOMS_TYPE) { + const collections = await Promise.all(chatbox.occupants.map(o => getDevicesForContact(o.get('jid')))); + devices = collections.reduce((a, b) => lodash_es_concat(a, b.models), []); + } else if (chatbox.get('type') === shared_converse.PRIVATE_CHAT_TYPE) { + const their_devices = await getDevicesForContact(chatbox.get('jid')); + + if (their_devices.length === 0) { + const err = new Error(no_devices_err); + err.user_facing = true; + throw err; + } + + const own_devices = shared_converse.devicelists.get(shared_converse.bare_jid).devices; + + devices = [...own_devices.models, ...their_devices.models]; + } // Filter out our own device + + + const id = shared_converse.omemo_store.get('device_id'); + + devices = devices.filter(d => d.get('id') !== id); // Fetch bundles if necessary + + await Promise.all(devices.map(d => d.getBundle())); + const sessions = devices.filter(d => d).map(d => getSession(d)); + await Promise.all(sessions); + + if (sessions.includes(null)) { + // We couldn't build a session for certain devices. + devices = devices.filter(d => sessions[devices.indexOf(d)]); + + if (devices.length === 0) { + const err = new Error(no_devices_err); + err.user_facing = true; + throw err; + } + } + + return devices; +} +function createOMEMOMessageStanza(chatbox, message, devices) { + const body = __('This is an OMEMO encrypted message which your client doesn’t seem to support. ' + 'Find more information on https://conversations.im/omemo'); + + if (!message.get('message')) { + throw new Error('No message body to encrypt!'); + } + + const stanza = utils_$msg({ + 'from': shared_converse.connection.jid, + 'to': chatbox.get('jid'), + 'type': chatbox.get('message_type'), + 'id': message.get('msgid') + }).c('body').t(body).up(); + + if (message.get('type') === 'chat') { + stanza.c('request', { + 'xmlns': omemo_utils_Strophe.NS.RECEIPTS + }).up(); + } // An encrypted header is added to the message for + // each device that is supposed to receive it. + // These headers simply contain the key that the + // payload message is encrypted with, + // and they are separately encrypted using the + // session corresponding to the counterpart device. + + + stanza.c('encrypted', { + 'xmlns': omemo_utils_Strophe.NS.OMEMO + }).c('header', { + 'sid': shared_converse.omemo_store.get('device_id') + }); + return omemo.encryptMessage(message.get('message')).then(obj => { + // The 16 bytes key and the GCM authentication tag (The tag + // SHOULD have at least 128 bit) are concatenated and for each + // intended recipient device, i.e. both own devices as well as + // devices associated with the contact, the result of this + // concatenation is encrypted using the corresponding + // long-standing SignalProtocol session. + const promises = devices.filter(device => device.get('trusted') != UNTRUSTED && device.get('active')).map(device => chatbox.encryptKey(obj.key_and_tag, device)); + return Promise.all(promises).then(dicts => addKeysToMessageStanza(stanza, dicts, obj.iv)).then(stanza => { + stanza.c('payload').t(obj.payload).up().up(); + stanza.c('store', { + 'xmlns': omemo_utils_Strophe.NS.HINTS + }).up(); + stanza.c('encryption', { + 'xmlns': omemo_utils_Strophe.NS.EME, + namespace: omemo_utils_Strophe.NS.OMEMO + }); + return stanza; + }); + }); +} +;// CONCATENATED MODULE: ./src/plugins/omemo/overrides/chatbox.js + + +const chatbox_ChatBox = { + async sendMessage(attrs) { + var _attrs; + + if (this.get('omemo_active') && (_attrs = attrs) !== null && _attrs !== void 0 && _attrs.body) { + var _attrs2; + + const plaintext = (_attrs2 = attrs) === null || _attrs2 === void 0 ? void 0 : _attrs2.body; + attrs = this.getOutgoingMessageAttributes(attrs); + attrs['is_encrypted'] = true; + attrs['plaintext'] = plaintext; + let message, stanza; + + try { + const devices = await getBundlesAndBuildSessions(this); + message = await this.createMessage(attrs); + stanza = await createOMEMOMessageStanza(this, message, devices); + } catch (e) { + this.handleMessageSendError(e); + return null; + } + + shared_converse.api.send(stanza); + + return message; + } else { + return this.__super__.sendMessage.apply(this, arguments); + } + } + +}; +/* harmony default export */ const chatbox = (chatbox_ChatBox); ;// CONCATENATED MODULE: ./src/plugins/omemo/mixins/converse.js - - - - -const { - Strophe: converse_Strophe, - $msg: converse_$msg -} = core_converse.env; const ConverseMixins = { generateFingerprints: async function (jid) { const devices = await getDevicesForContact(jid); @@ -54243,98 +55719,6 @@ const ConverseMixins = { /* Checks whether the contact advertises any OMEMO-compatible devices. */ const devices = await getDevicesForContact(jid); return devices.length > 0; - }, - getBundlesAndBuildSessions: async function (chatbox) { - const no_devices_err = __('Sorry, no devices found to which we can send an OMEMO encrypted message.'); - - let devices; - - if (chatbox.get('type') === shared_converse.CHATROOMS_TYPE) { - const collections = await Promise.all(chatbox.occupants.map(o => getDevicesForContact(o.get('jid')))); - devices = collections.reduce((a, b) => lodash_es_concat(a, b.models), []); - } else if (chatbox.get('type') === shared_converse.PRIVATE_CHAT_TYPE) { - const their_devices = await getDevicesForContact(chatbox.get('jid')); - - if (their_devices.length === 0) { - const err = new Error(no_devices_err); - err.user_facing = true; - throw err; - } - - const own_devices = shared_converse.devicelists.get(shared_converse.bare_jid).devices; - - devices = [...own_devices.models, ...their_devices.models]; - } // Filter out our own device - - - const id = shared_converse.omemo_store.get('device_id'); - - devices = devices.filter(d => d.get('id') !== id); // Fetch bundles if necessary - - await Promise.all(devices.map(d => d.getBundle())); - const sessions = devices.filter(d => d).map(d => getSession(d)); - await Promise.all(sessions); - - if (sessions.includes(null)) { - // We couldn't build a session for certain devices. - devices = devices.filter(d => sessions[devices.indexOf(d)]); - - if (devices.length === 0) { - const err = new Error(no_devices_err); - err.user_facing = true; - throw err; - } - } - - return devices; - }, - createOMEMOMessageStanza: function (chatbox, message, devices) { - const body = __('This is an OMEMO encrypted message which your client doesn’t seem to support. ' + 'Find more information on https://conversations.im/omemo'); - - if (!message.get('message')) { - throw new Error('No message body to encrypt!'); - } - - const stanza = converse_$msg({ - 'from': shared_converse.connection.jid, - 'to': chatbox.get('jid'), - 'type': chatbox.get('message_type'), - 'id': message.get('msgid') - }).c('body').t(body).up(); - - if (message.get('type') === 'chat') { - stanza.c('request', { - 'xmlns': converse_Strophe.NS.RECEIPTS - }).up(); - } // An encrypted header is added to the message for - // each device that is supposed to receive it. - // These headers simply contain the key that the - // payload message is encrypted with, - // and they are separately encrypted using the - // session corresponding to the counterpart device. - - - stanza.c('encrypted', { - 'xmlns': converse_Strophe.NS.OMEMO - }).c('header', { - 'sid': shared_converse.omemo_store.get('device_id') - }); - return omemo.encryptMessage(message.get('message')).then(obj => { - // The 16 bytes key and the GCM authentication tag (The tag - // SHOULD have at least 128 bit) are concatenated and for each - // intended recipient device, i.e. both own devices as well as - // devices associated with the contact, the result of this - // concatenation is encrypted using the corresponding - // long-standing SignalProtocol session. - const promises = devices.filter(device => device.get('trusted') != UNTRUSTED && device.get('active')).map(device => chatbox.encryptKey(obj.key_and_tag, device)); - return Promise.all(promises).then(dicts => addKeysToMessageStanza(stanza, dicts, obj.iv)).then(stanza => { - stanza.c('payload').t(obj.payload).up().up(); - stanza.c('store', { - 'xmlns': converse_Strophe.NS.HINTS - }); - return stanza; - }); - }); } }; /* harmony default export */ const mixins_converse = (ConverseMixins); @@ -54386,14 +55770,14 @@ const Device = Model.extend({ }).c('pubsub', { 'xmlns': device_Strophe.NS.PUBSUB }).c('items', { - 'node': "".concat(device_Strophe.NS.OMEMO_BUNDLES, ":").concat(this.get('id')) + 'node': `${device_Strophe.NS.OMEMO_BUNDLES}:${this.get('id')}` }); let iq; try { iq = await api.sendIQ(stanza); } catch (iq) { - headless_log.error("Could not fetch bundle for device ".concat(this.get('id'), " from ").concat(this.get('jid'))); + headless_log.error(`Could not fetch bundle for device ${this.get('id')} from ${this.get('jid')}`); headless_log.error(iq); return null; } @@ -54402,8 +55786,8 @@ const Device = Model.extend({ throw new IQError('Could not fetch bundle', iq); } - const publish_el = device_sizzle("items[node=\"".concat(device_Strophe.NS.OMEMO_BUNDLES, ":").concat(this.get('id'), "\"]"), iq).pop(); - const bundle_el = device_sizzle("bundle[xmlns=\"".concat(device_Strophe.NS.OMEMO, "\"]"), publish_el).pop(); + const publish_el = device_sizzle(`items[node="${device_Strophe.NS.OMEMO_BUNDLES}:${this.get('id')}"]`, iq).pop(); + const bundle_el = device_sizzle(`bundle[xmlns="${device_Strophe.NS.OMEMO}"]`, publish_el).pop(); const bundle = parseBundle(bundle_el); this.save('bundle', bundle); return bundle; @@ -54451,7 +55835,7 @@ const DeviceList = Model.extend({ initDevices() { this.devices = new shared_converse.Devices(); - const id = "converse.devicelist-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); + const id = `converse.devicelist-${shared_converse.bare_jid}-${this.get('jid')}`; initStorage(this.devices, id); this.fetchDevices(); }, @@ -54464,9 +55848,9 @@ const DeviceList = Model.extend({ ids = await this.fetchDevicesFromServer(); } catch (e) { if (e === null) { - headless_log.error("Timeout error while fetching devices for ".concat(this.get('jid'))); + headless_log.error(`Timeout error while fetching devices for ${this.get('jid')}`); } else { - headless_log.error("Could not fetch devices for ".concat(this.get('jid'))); + headless_log.error(`Could not fetch devices for ${this.get('jid')}`); headless_log.error(e); } @@ -54547,7 +55931,7 @@ const DeviceList = Model.extend({ return []; } - const selector = "list[xmlns=\"".concat(devicelist_Strophe.NS.OMEMO, "\"] device"); + const selector = `list[xmlns="${devicelist_Strophe.NS.OMEMO}"] device`; const device_ids = devicelist_sizzle(selector, iq).map(d => d.getAttribute('id')); await Promise.all(device_ids.map(id => this.devices.create({ id, @@ -54911,7 +56295,7 @@ const OMEMOStore = Model.extend({ publishBundle() { const signed_prekey = this.get('signed_prekey'); - const node = "".concat(store_Strophe.NS.OMEMO_BUNDLES, ":").concat(this.get('device_id')); + const node = `${store_Strophe.NS.OMEMO_BUNDLES}:${this.get('device_id')}`; const item = store_$build('item').c('bundle', { 'xmlns': store_Strophe.NS.OMEMO }).c('signedPreKeyPublic', { @@ -55214,9 +56598,9 @@ const OMEMOEnabledChatBox = { this.save('omemo_supported', false); const err_msgs = []; - if (chatbox_sizzle("presence-subscription-required[xmlns=\"".concat(chatbox_Strophe.NS.PUBSUB_ERROR, "\"]"), e.iq).length) { + if (chatbox_sizzle(`presence-subscription-required[xmlns="${chatbox_Strophe.NS.PUBSUB_ERROR}"]`, e.iq).length) { err_msgs.push(__("Sorry, we're unable to send an encrypted message because %1$s " + 'requires you to be subscribed to their presence in order to see their OMEMO information', e.iq.getAttribute('from'))); - } else if (chatbox_sizzle("remote-server-not-found[xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\"]", e.iq).length) { + } else if (chatbox_sizzle(`remote-server-not-found[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]`, e.iq).length) { err_msgs.push(__("Sorry, we're unable to send an encrypted message because the remote server for %1$s could not be found", e.iq.getAttribute('from'))); } else { err_msgs.push(__('Unable to send an encrypted message due to an unexpected error.')); @@ -55293,7 +56677,9 @@ core_converse.plugins.add('converse-omemo', { shared_converse.DeviceLists = devicelists; /******************** Event Handlers ********************/ - api.waitUntil('chatBoxesInitialized').then(onChatBoxesInitialized); + api.waitUntil('chatBoxesInitialized').then(utils_onChatBoxesInitialized); + api.listen.on('afterFileUploaded', (msg, attrs) => msg.file.xep454_ivkey ? setEncryptedFileURL(msg, attrs) : attrs); + api.listen.on('beforeFileUpload', (chat, file) => chat.get('omemo_active') ? encryptFile(file) : file); api.listen.on('parseMessage', parseEncryptedMessage); api.listen.on('parseMUCMessage', parseEncryptedMessage); api.listen.on('chatBoxViewInitialized', onChatInitialized); @@ -55301,7 +56687,8 @@ core_converse.plugins.add('converse-omemo', { api.listen.on('connected', registerPEPPushHandler); api.listen.on('getToolbarButtons', getOMEMOToolbarButton); api.listen.on('statusInitialized', initOMEMO); - api.listen.on('addClientFeatures', () => api.disco.own.features.add("".concat(omemo_Strophe.NS.OMEMO_DEVICELIST, "+notify"))); + api.listen.on('addClientFeatures', () => api.disco.own.features.add(`${omemo_Strophe.NS.OMEMO_DEVICELIST}+notify`)); + api.listen.on('afterMessageBodyTransformed', handleEncryptedFiles); api.listen.on('userDetailsModalInitialized', contact => { const jid = contact.get('jid'); @@ -55353,7 +56740,7 @@ core_converse.plugins.add('converse-push', { } if (!(await api.disco.supports(push_Strophe.NS.PUSH, domain || shared_converse.bare_jid))) { - headless_log.warn("Not disabling push app server \"".concat(push_app_server.jid, "\", no disco support from your server.")); + headless_log.warn(`Not disabling push app server "${push_app_server.jid}", no disco support from your server.`); return; } @@ -55379,7 +56766,7 @@ core_converse.plugins.add('converse-push', { } api.sendIQ(stanza).catch(e => { - headless_log.error("Could not disable push app server for ".concat(push_app_server.jid)); + headless_log.error(`Could not disable push app server for ${push_app_server.jid}`); headless_log.error(e); }); } @@ -55392,13 +56779,13 @@ core_converse.plugins.add('converse-push', { const identity = await api.disco.getIdentity('pubsub', 'push', push_app_server.jid); if (!identity) { - return headless_log.warn("Not enabling push the service \"".concat(push_app_server.jid, "\", it doesn't have the right disco identtiy.")); + return headless_log.warn(`Not enabling push the service "${push_app_server.jid}", it doesn't have the right disco identtiy.`); } const result = await Promise.all([api.disco.supports(push_Strophe.NS.PUSH, push_app_server.jid), api.disco.supports(push_Strophe.NS.PUSH, domain)]); if (!result[0] && !result[1]) { - headless_log.warn("Not enabling push app server \"".concat(push_app_server.jid, "\", no disco support from your server.")); + headless_log.warn(`Not enabling push app server "${push_app_server.jid}", no disco support from your server.`); return; } @@ -55424,7 +56811,7 @@ core_converse.plugins.add('converse-push', { 'type': 'submit' }).c('field', { 'var': 'FORM_TYPE' - }).c('value').t("".concat(push_Strophe.NS.PUBSUB, "#publish-options")).up().up().c('field', { + }).c('value').t(`${push_Strophe.NS.PUBSUB}#publish-options`).up().up().c('field', { 'var': 'secret' }).c('value').t(push_app_server.secret); } @@ -55472,38 +56859,6 @@ core_converse.plugins.add('converse-push', { }); ;// CONCATENATED MODULE: ./src/plugins/register/templates/registration_form.js -function registration_form_templateObject3() { - const data = registration_form_taggedTemplateLiteral(["\n \n "]); - - registration_form_templateObject3 = function () { - return data; - }; - - return data; -} - -function registration_form_templateObject2() { - const data = registration_form_taggedTemplateLiteral(["\n \n "]); - - registration_form_templateObject2 = function () { - return data; - }; - - return data; -} - -function registration_form_templateObject() { - const data = registration_form_taggedTemplateLiteral(["\n
    \n ", " ", "\n

    ", "

    \n

    ", "

    \n
    \n ", "\n\n
    \n ", "\n ", "\n
    \n

    ", "

    \n

    ", "

    \n
    \n
    \n
    \n "]); - - registration_form_templateObject = function () { - return data; - }; - - return data; -} - -function registration_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -55519,71 +56874,34 @@ function registration_form_taggedTemplateLiteral(strings, raw) { if (!raw) { raw const i18n_register = __('Register'); const registration_domain = api.settings.get('registration_domain'); - return T(registration_form_templateObject(), i18n_legend, o.domain, o.title, o.instructions, o.form_fields, o.fields ? T(registration_form_templateObject2(), i18n_register) : '', registration_domain ? '' : T(registration_form_templateObject3(), i18n_choose_provider), i18n_has_account, i18n_login); + return T` +
    + ${i18n_legend} ${o.domain} +

    ${o.title}

    +

    ${o.instructions}

    + + ${o.form_fields} + +
    + ${o.fields ? T` + + ` : ''} + ${registration_domain ? '' : T` + + `} +
    +

    ${i18n_has_account}

    +

    +
    +
    +
    + `; }); ;// CONCATENATED MODULE: ./src/plugins/register/templates/register_panel.js -function register_panel_templateObject6() { - const data = register_panel_taggedTemplateLiteral(["\n \n ", "\n ", "\n ", "\n "]); - - register_panel_templateObject6 = function () { - return data; - }; - - return data; -} - -function register_panel_templateObject5() { - const data = register_panel_taggedTemplateLiteral(["\n
    \n ", "\n
    \n \n
    \n ", "\n
    \n ", "\n
    \n "]); - - register_panel_templateObject5 = function () { - return data; - }; - - return data; -} - -function register_panel_templateObject4() { - const data = register_panel_taggedTemplateLiteral(["\n
    \n \n
    \n
    \n

    ", "

    \n

    ", "

    \n
    \n "]); - - register_panel_templateObject4 = function () { - return data; - }; - - return data; -} - -function register_panel_templateObject3() { - const data = register_panel_taggedTemplateLiteral(["\n \n

    \n ", "\n ", ".\n

    \n "]); - - register_panel_templateObject3 = function () { - return data; - }; - - return data; -} - -function register_panel_templateObject2() { - const data = register_panel_taggedTemplateLiteral(["\n \n "]); - - register_panel_templateObject2 = function () { - return data; - }; - - return data; -} - -function register_panel_templateObject() { - const data = register_panel_taggedTemplateLiteral(["\n
    \n ", "\n

    ", "

    \n ", "\n
    \n "]); - - register_panel_templateObject = function () { - return data; - }; - - return data; -} - -function register_panel_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -55597,9 +56915,17 @@ const tpl_form_request = () => { const i18n_cancel = __('Cancel'); - return T(register_panel_templateObject(), spinner({ + return T` +
    + ${spinner({ 'classes': 'hor_centered' - }), i18n_fetch_form, default_domain ? '' : T(register_panel_templateObject2(), i18n_cancel)); + })} +

    ${i18n_fetch_form}

    + ${default_domain ? '' : T` + + `} +
    + `; }; const tpl_domain_input = () => { @@ -55610,7 +56936,13 @@ const tpl_domain_input = () => { const i18n_providers_link = __('here'); const href_providers = api.settings.get('providers_link'); - return T(register_panel_templateObject3(), domain_placeholder, i18n_providers, href_providers, i18n_providers_link); + return T` + +

    + ${i18n_providers} + ${i18n_providers_link}. +

    + `; }; const tpl_fetch_form_buttons = () => { @@ -55620,7 +56952,15 @@ const tpl_fetch_form_buttons = () => { const i18n_login = __('Log in here'); - return T(register_panel_templateObject4(), i18n_register, i18n_existing_account, i18n_login); + return T` +
    + +
    +
    +

    ${i18n_existing_account}

    +

    +
    + `; }; const tpl_choose_provider = () => { @@ -55630,14 +56970,29 @@ const tpl_choose_provider = () => { const i18n_choose_provider = __('Please enter the XMPP provider to register with:'); - return T(register_panel_templateObject5(), i18n_create_account, i18n_choose_provider, default_domain ? default_domain : tpl_domain_input(), default_domain ? '' : tpl_fetch_form_buttons()); + return T` +
    + ${i18n_create_account} +
    + + + ${default_domain ? default_domain : tpl_domain_input()} +
    + ${default_domain ? '' : tpl_fetch_form_buttons()} +
    + `; }; const CHOOSE_PROVIDER = 0; const FETCHING_FORM = 1; const REGISTRATION_FORM = 2; /* harmony default export */ const register_panel = (o => { - return T(register_panel_templateObject6(), o.model.get('registration_status') === CHOOSE_PROVIDER ? tpl_choose_provider() : '', o.model.get('registration_status') === FETCHING_FORM ? tpl_form_request(o) : '', o.model.get('registration_status') === REGISTRATION_FORM ? registration_form(o) : ''); + return T` + + ${o.model.get('registration_status') === CHOOSE_PROVIDER ? tpl_choose_provider() : ''} + ${o.model.get('registration_status') === FETCHING_FORM ? tpl_form_request(o) : ''} + ${o.model.get('registration_status') === REGISTRATION_FORM ? registration_form(o) : ''} + `; }); ;// CONCATENATED MODULE: ./src/plugins/register/panel.js function register_panel_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -55935,7 +57290,7 @@ class RegisterPanel extends ElementView { headless_log.debug('converse-register: onConnectStatusChanged'); if ([panel_Strophe.Status.DISCONNECTED, panel_Strophe.Status.CONNFAIL, panel_Strophe.Status.REGIFAIL, panel_Strophe.Status.NOTACCEPTABLE, panel_Strophe.Status.CONFLICT].includes(status_code)) { - headless_log.error("Problem during registration: Strophe.Status is ".concat(shared_converse.CONNECTION_STATUS[status_code])); + headless_log.error(`Problem during registration: Strophe.Status is ${shared_converse.CONNECTION_STATUS[status_code]}`); this.abortRegistration(); } else if (status_code === panel_Strophe.Status.REGISTERED) { headless_log.debug("Registered successfully."); @@ -55967,7 +57322,7 @@ class RegisterPanel extends ElementView { const input_fields = Object.keys(this.fields).map(key => { if (key === "username") { return form_username({ - 'domain': " @".concat(this.domain), + 'domain': ` @${this.domain}`, 'name': key, 'type': "text", 'label': key, @@ -56139,7 +57494,7 @@ class RegisterPanel extends ElementView { setFields(stanza) { const query = stanza.querySelector('query'); - const xform = panel_sizzle("x[xmlns=\"".concat(panel_Strophe.NS.XFORM, "\"]"), query); + const xform = panel_sizzle(`x[xmlns="${panel_Strophe.NS.XFORM}"]`, query); if (xform.length > 0) { this._setFieldsFromXForm(xform.pop()); @@ -56175,9 +57530,9 @@ class RegisterPanel extends ElementView { const _var = field.getAttribute('var'); if (_var) { - var _field$querySelector$, _field$querySelector; + var _field$querySelector; - this.fields[_var.toLowerCase()] = (_field$querySelector$ = (_field$querySelector = field.querySelector('value')) === null || _field$querySelector === void 0 ? void 0 : _field$querySelector.textContent) !== null && _field$querySelector$ !== void 0 ? _field$querySelector$ : ''; + this.fields[_var.toLowerCase()] = ((_field$querySelector = field.querySelector('value')) === null || _field$querySelector === void 0 ? void 0 : _field$querySelector.textContent) ?? ''; } else { // TODO: other option seems to be type="fixed" headless_log.warn("Found field we couldn't parse"); @@ -56293,48 +57648,6 @@ core_converse.plugins.add('converse-register', { }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/add-muc.js -function add_muc_templateObject4() { - const data = add_muc_taggedTemplateLiteral(["
    ", "
    "]); - - add_muc_templateObject4 = function () { - return data; - }; - - return data; -} - -function add_muc_templateObject3() { - const data = add_muc_taggedTemplateLiteral([""]); - - add_muc_templateObject3 = function () { - return data; - }; - - return data; -} - -function add_muc_templateObject2() { - const data = add_muc_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n \n
    \n
    \n \n ", "\n \n
    \n ", "\n ", "\n \n
    \n
    \n
    \n
    \n "]); - - add_muc_templateObject2 = function () { - return data; - }; - - return data; -} - -function add_muc_templateObject() { - const data = add_muc_taggedTemplateLiteral(["\n
    \n \n \n
    \n "]); - - add_muc_templateObject = function () { - return data; - }; - - return data; -} - -function add_muc_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -56346,7 +57659,12 @@ const nickname_input = o => { const i18n_required_field = __('This field is required'); - return T(add_muc_templateObject(), i18n_nickname, i18n_required_field, o.nick || ''); + return T` +
    + + +
    + `; }; /* harmony default export */ const add_muc = (o => { @@ -56354,13 +57672,35 @@ const nickname_input = o => { const i18n_enter = __('Enter a new Groupchat'); - return T(add_muc_templateObject2(), i18n_enter, modal_header_close_button, o.label_room_address, o.muc_roomid_policy_error_msg ? T(add_muc_templateObject3(), o.muc_roomid_policy_error_msg) : '', o.chatroom_placeholder, o.muc_roomid_policy_hint ? T(add_muc_templateObject4(), unsafe_html_o(xss.filterXSS(o.muc_roomid_policy_hint, { + return T` + + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/modals/add-muc.js @@ -56391,7 +57731,7 @@ const { if (!api.settings.get('locked_muc_domain')) { const muc_domain = this.model.get('muc_domain') || api.settings.get('muc_domain'); - placeholder = muc_domain ? "name@".concat(muc_domain) : __('name@conference.example.org'); + placeholder = muc_domain ? `name@${muc_domain}` : __('name@conference.example.org'); } return add_muc(Object.assign(this.model.toJSON(), { @@ -56442,7 +57782,7 @@ const { let jid; if (api.settings.get('locked_muc_domain') || api.settings.get('muc_domain') && !add_muc_u.isValidJID(data.jid)) { - jid = "".concat(add_muc_Strophe.escapeNode(data.jid), "@").concat(api.settings.get('muc_domain')); + jid = `${add_muc_Strophe.escapeNode(data.jid)}@${api.settings.get('muc_domain')}`; } else { jid = data.jid; this.model.setDomain(jid); @@ -56460,7 +57800,7 @@ const { let jid = this.el.querySelector('.roomjid-input').value; if (core_converse.locked_muc_domain || !add_muc_u.isValidJID(jid)) { - jid = "".concat(add_muc_Strophe.escapeNode(jid), "@").concat(api.settings.get('muc_domain')); + jid = `${add_muc_Strophe.escapeNode(jid)}@${api.settings.get('muc_domain')}`; } const roomid = add_muc_Strophe.getNodeFromJid(jid); @@ -56503,58 +57843,6 @@ function head(array) { /* harmony default export */ const lodash_es_head = (head); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-list.js -function muc_list_templateObject5() { - const data = muc_list_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_list_templateObject5 = function () { - return data; - }; - - return data; -} - -function muc_list_templateObject4() { - const data = muc_list_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_list_templateObject4 = function () { - return data; - }; - - return data; -} - -function muc_list_templateObject3() { - const data = muc_list_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n \n ", "\n
      \n ", "\n ", "\n ", "\n
    \n
    \n
    ", "
    \n
    \n
    \n "]); - - muc_list_templateObject3 = function () { - return data; - }; - - return data; -} - -function muc_list_templateObject2() { - const data = muc_list_taggedTemplateLiteral(["\n
  • \n
    \n ", "\n \n
    \n
  • \n "]); - - muc_list_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_list_templateObject() { - const data = muc_list_taggedTemplateLiteral(["\n
    \n
    \n \n \n
    \n \n
    \n "]); - - muc_list_templateObject = function () { - return data; - }; - - return data; -} - -function muc_list_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -56566,7 +57854,22 @@ const muc_list_form = o => { const i18n_server_address = __('Server address'); - return T(muc_list_templateObject(), o.submitForm, i18n_server_address, o.setDomainFromEvent, o.muc_domain || '', o.server_placeholder, i18n_query); + return T` +
    +
    + + +
    + +
    + `; }; const tpl_item = (o, item) => { @@ -56574,143 +57877,56 @@ const tpl_item = (o, item) => { const i18n_open_title = __('Click to open this groupchat'); - return T(muc_list_templateObject2(), o.openRoom, item.jid, item.name, i18n_open_title, item.name || item.jid, o.toggleRoomInfo, item.jid, i18n_info_title); + return T` +
  • + +
  • + `; }; /* harmony default export */ const muc_list = (o => { const i18n_list_chatrooms = __('Query for Groupchats'); - return T(muc_list_templateObject3(), i18n_list_chatrooms, modal_header_close_button, o.show_form ? muc_list_form(o) : '', o.loading_items ? T(muc_list_templateObject4(), spinner()) : '', o.feedback_text ? T(muc_list_templateObject5(), o.feedback_text) : '', repeat_c(o.items, item => item.jid, item => tpl_item(o, item)), modal_close_button); + return T` + + `; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/templates/muc-description.js -function muc_description_templateObject12() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject12 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject11() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject11 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject10() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject10 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject9() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject9 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject8() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject8 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject7() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject7 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject6() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject6 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject5() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject5 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject4() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject4 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject3() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject3 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject2() { - const data = muc_description_taggedTemplateLiteral(["
  • ", "
  • "]); - - muc_description_templateObject2 = function () { - return data; - }; - - return data; -} - -function muc_description_templateObject() { - const data = muc_description_taggedTemplateLiteral(["\n
    \n

    ", " ", "

    \n

    ", " ", "

    \n

    ", " ", "

    \n

    ", "\n

      \n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n
    \n

    \n
    \n"]); - - muc_description_templateObject = function () { - return data; - }; - - return data; -} - -function muc_description_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const muc_description = (o => { const i18n_desc = __('Description:'); - const i18n_jid = __('Groupchat Address (JID):'); + const i18n_jid = __('Groupchat XMPP Address:'); const i18n_occ = __('Participants:'); @@ -56738,7 +57954,28 @@ function muc_description_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = const i18n_unmoderated = __('Unmoderated'); - return T(muc_description_templateObject(), i18n_jid, o.jid, i18n_desc, o.desc, i18n_occ, o.occ, i18n_features, o.passwordprotected ? T(muc_description_templateObject2(), i18n_requires_auth) : '', o.hidden ? T(muc_description_templateObject3(), i18n_hidden) : '', o.membersonly ? T(muc_description_templateObject4(), i18n_requires_invite) : '', o.moderated ? T(muc_description_templateObject5(), i18n_moderated) : '', o.nonanonymous ? T(muc_description_templateObject6(), i18n_non_anon) : '', o.open ? T(muc_description_templateObject7(), i18n_open_room) : '', o.persistent ? T(muc_description_templateObject8(), i18n_permanent_room) : '', o.publicroom ? T(muc_description_templateObject9(), i18n_public) : '', o.semianonymous ? T(muc_description_templateObject10(), i18n_semi_anon) : '', o.temporary ? T(muc_description_templateObject11(), i18n_temp_room) : '', o.unmoderated ? T(muc_description_templateObject12(), i18n_unmoderated) : ''); + return T` +
    +

    ${i18n_jid} ${o.jid}

    +

    ${i18n_desc} ${o.desc}

    +

    ${i18n_occ} ${o.occ}

    +

    ${i18n_features} +

      + ${o.passwordprotected ? T`
    • ${i18n_requires_auth}
    • ` : ''} + ${o.hidden ? T`
    • ${i18n_hidden}
    • ` : ''} + ${o.membersonly ? T`
    • ${i18n_requires_invite}
    • ` : ''} + ${o.moderated ? T`
    • ${i18n_moderated}
    • ` : ''} + ${o.nonanonymous ? T`
    • ${i18n_non_anon}
    • ` : ''} + ${o.open ? T`
    • ${i18n_open_room}
    • ` : ''} + ${o.persistent ? T`
    • ${i18n_permanent_room}
    • ` : ''} + ${o.publicroom ? T`
    • ${i18n_public}
    • ` : ''} + ${o.semianonymous ? T`
    • ${i18n_semi_anon}
    • ` : ''} + ${o.temporary ? T`
    • ${i18n_temp_room}
    • ` : ''} + ${o.unmoderated ? T`
    • ${i18n_unmoderated}
    • ` : ''} +
    +

    +
    +`; }); ;// CONCATENATED MODULE: ./src/plugins/muc-views/modals/muc-list.js @@ -56923,68 +58160,6 @@ function toggleRoomInfo(ev) { })); ;// CONCATENATED MODULE: ./src/plugins/roomslist/templates/roomslist.js -function roomslist_templateObject6() { - const data = roomslist_taggedTemplateLiteral(["\n
    \n ", "\n \n \n
    \n\n
    \n \n ", "\n
    \n ", "\n
    \n
    "]); - - roomslist_templateObject6 = function () { - return data; - }; - - return data; -} - -function roomslist_templateObject5() { - const data = roomslist_taggedTemplateLiteral(["\n
    \n\n ", "\n\n ", "\n\n ", "\n\n \n\n \n
    "]); - - roomslist_templateObject5 = function () { - return data; - }; - - return data; -} - -function roomslist_templateObject4() { - const data = roomslist_taggedTemplateLiteral([""]); - - roomslist_templateObject4 = function () { - return data; - }; - - return data; -} - -function roomslist_templateObject3() { - const data = roomslist_taggedTemplateLiteral(["", ""]); - - roomslist_templateObject3 = function () { - return data; - }; - - return data; -} - -function roomslist_templateObject2() { - const data = roomslist_taggedTemplateLiteral(["\n "]); - - roomslist_templateObject2 = function () { - return data; - }; - - return data; -} - -function roomslist_templateObject() { - const data = roomslist_taggedTemplateLiteral(["\n "]); - - roomslist_templateObject = function () { - return data; - }; - - return data; -} - -function roomslist_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -56997,21 +58172,54 @@ const bookmark = o => { const i18n_remove_bookmark = __('Unbookmark this groupchat'); if (o.bookmarked) { - return T(roomslist_templateObject(), o.room.get('jid'), o.room.getDisplayName(), o.removeBookmark, o.bookmarked ? i18n_remove_bookmark : i18n_add_bookmark); + return T` + `; } else { - return T(roomslist_templateObject2(), o.room.get('jid'), o.room.getDisplayName(), o.addBookmark, o.bookmarked ? i18n_remove_bookmark : i18n_add_bookmark); + return T` + `; } }; -const unread_indicator = o => T(roomslist_templateObject3(), o.room.get('num_unread')); +const unread_indicator = o => T`${o.room.get('num_unread')}`; -const activity_indicator = () => T(roomslist_templateObject4()); +const activity_indicator = () => T``; const room_item = o => { const i18n_leave_room = __('Leave this groupchat'); const has_unread_msgs = o.room.get('num_unread_general') || o.room.get('has_activity'); - return T(roomslist_templateObject5(), o.currently_open(o.room) ? 'open' : '', has_unread_msgs ? 'unread-msgs' : '', o.room.get('jid'), o.room.get('num_unread') ? unread_indicator(o) : o.room.get('has_activity') ? activity_indicator(o) : '', o.room.get('jid'), __('Click to open this groupchat'), o.openRoom, o.room.getDisplayName(), o.allow_bookmarks ? bookmark(o) : '', o.room.get('jid'), __('Show more information on this groupchat'), o.showRoomDetailsModal, o.room.get('jid'), o.room.getDisplayName(), i18n_leave_room, o.closeRoom); + return T` +
    + + ${o.room.get('num_unread') ? unread_indicator(o) : o.room.get('has_activity') ? activity_indicator(o) : ''} + + ${o.room.getDisplayName()} + + ${o.allow_bookmarks ? bookmark(o) : ''} + + + + +
    `; }; /* harmony default export */ const roomslist = (o => { @@ -57023,13 +58231,30 @@ const room_item = o => { const i18n_title_new_room = __('Add a new groupchat'); - return T(roomslist_templateObject6(), i18n_heading_chatrooms, ev => api.modal.show(modals_muc_list, { + return T` + + +
    + + ${__('Open Groupchats')} +
    + ${o.rooms.map(room => room_item(Object.assign({ room - }, o)))); + }, o)))} +
    +
    `; }); ;// CONCATENATED MODULE: ./src/plugins/roomslist/view.js @@ -57062,7 +58287,7 @@ const RoomsListModel = Model.extend({ }); class RoomsList extends ElementView { initialize() { - const id = "converse.roomspanel".concat(shared_converse.bare_jid); + const id = `converse.roomspanel${shared_converse.bare_jid}`; this.model = new RoomsListModel({ id }); @@ -57205,20 +58430,229 @@ core_converse.plugins.add('converse-roomslist', { }); ;// CONCATENATED MODULE: ./src/shared/templates/icons.js -function templates_icons_templateObject() { - const data = templates_icons_taggedTemplateLiteral(["\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"]); - templates_icons_templateObject = function () { - return data; - }; - - return data; -} - -function templates_icons_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - - -/* harmony default export */ const icons = (() => T(templates_icons_templateObject())); +/* harmony default export */ const icons = (() => T` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`); ;// CONCATENATED MODULE: ./src/shared/components/font-awesome.js @@ -57231,25 +58665,17 @@ class FontAwesome extends CustomElement { } window.customElements.define('converse-fontawesome', FontAwesome); ;// CONCATENATED MODULE: ./src/plugins/rootview/templates/root.js -function root_templateObject() { - const data = root_taggedTemplateLiteral(["\n \n
    \n \n "]); - - root_templateObject = function () { - return data; - }; - - return data; -} - -function root_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const templates_root = (() => { let extra_classes = api.settings.get('singleton') ? 'converse-singleton' : ''; - extra_classes += "converse-".concat(api.settings.get('view_mode')); - return T(root_templateObject(), extra_classes); + extra_classes += `converse-${api.settings.get('view_mode')}`; + return T` + +
    + + `; }); ;// CONCATENATED MODULE: ./src/plugins/rootview/root.js @@ -57272,8 +58698,8 @@ class ConverseRoot extends CustomElement { connectedCallback() { super.connectedCallback(); this.classList.add('conversejs'); - this.classList.add("converse-".concat(api.settings.get('view_mode'))); - this.classList.add("theme-".concat(api.settings.get('theme'))); + this.classList.add(`converse-${api.settings.get('view_mode')}`); + this.classList.add(`theme-${api.settings.get('theme')}`); this.setAttribute('id', 'conversejs'); } @@ -57314,18 +58740,6 @@ core_converse.plugins.add('converse-rootview', { }); ;// CONCATENATED MODULE: ./src/modals/templates/add-contact.js -function add_contact_templateObject() { - const data = add_contact_taggedTemplateLiteral(["\n
    \n
    \n
    \n
    ", "
    \n ", "\n
    \n
    \n
    \n \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    ", "
    \n
    \n \n
    \n
    \n
    \n
    \n "]); - - add_contact_templateObject = function () { - return data; - }; - - return data; -} - -function add_contact_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -57342,7 +58756,46 @@ function add_contact_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = str const i18n_nickname = __('Nickname'); - return T(add_contact_templateObject(), i18n_new_contact, modal_header_close_button, i18n_xmpp_address, !o._converse.xhr_user_search_url, o.jid || '', i18n_contact_placeholder, i18n_nickname, o.nickname || '', i18n_nickname, i18n_error_message, i18n_add); + return T` + + `; }); ;// CONCATENATED MODULE: ./src/modals/add-contact.js @@ -57393,7 +58846,7 @@ const AddContactModal = base.extend({ const el = this.el.querySelector('.suggestion-box__jid').parentElement; this.jid_auto_complete = new shared_converse.AutoComplete(el, { - 'data': (text, input) => "".concat(input.slice(0, input.indexOf("@")), "@").concat(text), + 'data': (text, input) => `${input.slice(0, input.indexOf("@"))}@${text}`, 'filter': shared_converse.FILTER_STARTSWITH, 'list': [...new Set(shared_converse.roster.map(item => add_contact_Strophe.getDomainFromJid(item.get('jid'))))] }); @@ -57426,7 +58879,7 @@ const AddContactModal = base.extend({ const input_el = this.el.querySelector('input[name="name"]'); input_el.addEventListener('input', lodash_es_debounce(() => { - xhr.open("GET", "".concat(api.settings.get('xhr_user_search_url'), "q=").concat(encodeURIComponent(input_el.value)), true); + xhr.open("GET", `${api.settings.get('xhr_user_search_url')}q=${encodeURIComponent(input_el.value)}`, true); xhr.send(); }, 300)); this.name_auto_complete.on('suggestion-box-selectcomplete', ev => { @@ -57495,7 +58948,7 @@ const AddContactModal = base.extend({ if (!jid && typeof api.settings.get('xhr_user_search_url') === 'string') { const input_el = this.el.querySelector('input[name="name"]'); - this.xhr.open("GET", "".concat(api.settings.get('xhr_user_search_url'), "q=").concat(encodeURIComponent(input_el.value)), true); + this.xhr.open("GET", `${api.settings.get('xhr_user_search_url')}q=${encodeURIComponent(input_el.value)}`, true); this.xhr.send(); return; } @@ -57590,28 +59043,6 @@ function shouldShowGroup(group) { return true; } ;// CONCATENATED MODULE: ./src/plugins/rosterview/templates/group.js -function group_templateObject2() { - const data = group_taggedTemplateLiteral(["\n
    \n \n ", "\n \n
      \n ", "\n
    \n
    "]); - - group_templateObject2 = function () { - return data; - }; - - return data; -} - -function group_templateObject() { - const data = group_taggedTemplateLiteral(["\n
  • \n \n
  • "]); - - group_templateObject = function () { - return data; - }; - - return data; -} - -function group_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -57657,7 +59088,10 @@ function renderContact(contact) { extra_classes.push(contact.presence.get('show')); } - return T(group_templateObject(), extra_classes.join(' '), contact.presence.get('show'), contact); + return T` +
  • + +
  • `; } /* harmony default export */ const group = (o => { @@ -57665,31 +59099,17 @@ function renderContact(contact) { const collapsed = shared_converse.roster.state.get('collapsed_groups'); - return T(group_templateObject2(), o.name, i18n_title, ev => toggleGroup(ev, o.name), collapsed.includes(o.name) ? 'fa-caret-right' : 'fa-caret-down', o.name, collapsed.includes(o.name) ? 'collapsed' : '', o.name, o.contacts.map(renderContact)); + return T` +
    + toggleGroup(ev, o.name)}> + ${o.name} + +
      + ${o.contacts.map(renderContact)} +
    +
    `; }); ;// CONCATENATED MODULE: ./src/plugins/rosterview/templates/roster.js -function roster_templateObject2() { - const data = roster_taggedTemplateLiteral(["\n "]); - - roster_templateObject2 = function () { - return data; - }; - - return data; -} - -function roster_templateObject() { - const data = roster_taggedTemplateLiteral(["\n
    \n ", "\n \n ", "\n
    \n \n
    \n ", "\n
    \n "]); - - roster_templateObject = function () { - return data; - }; - - return data; -} - -function roster_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -57739,7 +59159,19 @@ function populateContactsMap(contacts_map, contact) { const contacts_map = roster.reduce((acc, contact) => populateContactsMap(acc, contact), {}); const groupnames = Object.keys(contacts_map).filter(shouldShowGroup); groupnames.sort(groupsComparator); - return T(roster_templateObject(), i18n_heading_contacts, i18n_title_sync_contacts, api.settings.get('allow_contact_requests') ? T(roster_templateObject2(), i18n_title_add_contact) : '', repeat_c(groupnames, n => n, name => { + return T` +
    + ${i18n_heading_contacts} + + ${api.settings.get('allow_contact_requests') ? T` + ` : ''} +
    + +
    + ${repeat_c(groupnames, n => n, name => { const contacts = contacts_map[name].filter(c => shouldShowContact(c, name)); contacts.sort(contactsComparator); @@ -57751,7 +59183,9 @@ function populateContactsMap(contacts_map, contact) { } else { return ''; } - })); + })} +
    + `; }); ;// CONCATENATED MODULE: ./src/plugins/rosterview/rosterview.js function rosterview_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -57842,121 +59276,34 @@ class RosterView extends ElementView { } api.elements.define('converse-roster', RosterView); ;// CONCATENATED MODULE: ./src/plugins/rosterview/templates/pending_contact.js -function pending_contact_templateObject3() { - const data = pending_contact_taggedTemplateLiteral(["", ""]); - - pending_contact_templateObject3 = function () { - return data; - }; - - return data; -} - -function pending_contact_templateObject2() { - const data = pending_contact_taggedTemplateLiteral(["\n ", "\n "]); - - pending_contact_templateObject2 = function () { - return data; - }; - - return data; -} - -function pending_contact_templateObject() { - const data = pending_contact_taggedTemplateLiteral(["", ""]); - - pending_contact_templateObject = function () { - return data; - }; - - return data; -} - -function pending_contact_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - -const tpl_pending_contact = o => T(pending_contact_templateObject(), o.jid, o.display_name); +const tpl_pending_contact = o => T`${o.display_name}`; /* harmony default export */ const pending_contact = (o => { const i18n_remove = __('Click to remove %1$s as a contact', o.display_name); - return T(pending_contact_templateObject2(), api.settings.get('allow_chat_pending_contacts') ? T(pending_contact_templateObject3(), o.openChat, tpl_pending_contact(o)) : tpl_pending_contact(o), o.removeContact, i18n_remove); + return T` + ${api.settings.get('allow_chat_pending_contacts') ? T`${tpl_pending_contact(o)}` : tpl_pending_contact(o)} + `; }); ;// CONCATENATED MODULE: ./src/plugins/rosterview/templates/requesting_contact.js -function requesting_contact_templateObject3() { - const data = requesting_contact_taggedTemplateLiteral(["", ""]); - - requesting_contact_templateObject3 = function () { - return data; - }; - - return data; -} - -function requesting_contact_templateObject2() { - const data = requesting_contact_taggedTemplateLiteral(["\n ", "\n \n "]); - - requesting_contact_templateObject2 = function () { - return data; - }; - - return data; -} - -function requesting_contact_templateObject() { - const data = requesting_contact_taggedTemplateLiteral(["", ""]); - - requesting_contact_templateObject = function () { - return data; - }; - - return data; -} - -function requesting_contact_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } +const tpl_requesting_contact = o => T`${o.display_name}`; -const tpl_requesting_contact = o => T(requesting_contact_templateObject(), o.jid, o.display_name); - -/* harmony default export */ const requesting_contact = (o => T(requesting_contact_templateObject2(), api.settings.get('allow_chat_pending_contacts') ? T(requesting_contact_templateObject3(), o.openChat, tpl_requesting_contact(o)) : tpl_requesting_contact(o), o.acceptRequest, o.desc_accept, o.desc_accept, o.declineRequest, o.desc_decline, o.desc_decline)); +/* harmony default export */ const requesting_contact = (o => T` + ${api.settings.get('allow_chat_pending_contacts') ? T`${tpl_requesting_contact(o)}` : tpl_requesting_contact(o)} + + `); ;// CONCATENATED MODULE: ./src/plugins/rosterview/templates/roster_item.js -function roster_item_templateObject3() { - const data = roster_item_taggedTemplateLiteral([""]); - - roster_item_templateObject3 = function () { - return data; - }; - - return data; -} - -function roster_item_templateObject2() { - const data = roster_item_taggedTemplateLiteral(["", ""]); - - roster_item_templateObject2 = function () { - return data; - }; - - return data; -} - -function roster_item_templateObject() { - const data = roster_item_taggedTemplateLiteral(["\n \n ", "\n \n ", "\n ", "\n \n ", ""]); - - roster_item_templateObject = function () { - return data; - }; - - return data; -} - -function roster_item_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - @@ -57966,7 +59313,14 @@ function roster_item_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = str const i18n_remove = __('Click to remove %1$s as a contact', o.display_name); - return T(roster_item_templateObject(), o.num_unread ? 'unread-msgs' : '', i18n_chat, o.openChat, renderAvatar(o.getAvatarData()), o.status_icon, o.desc_status, o.num_unread ? T(roster_item_templateObject2(), o.num_unread) : '', o.show, o.num_unread ? 'unread-msgs' : '', o.display_name, api.settings.get('allow_contact_removal') ? T(roster_item_templateObject3(), o.removeContact, i18n_remove) : ''); + return T` + + ${renderAvatar(o.getAvatarData())} + + ${o.num_unread ? T`${o.num_unread}` : ''} + ${o.display_name} + + ${api.settings.get('allow_contact_removal') ? T`` : ''}`; }); ;// CONCATENATED MODULE: ./src/plugins/rosterview/contactview.js @@ -58143,18 +59497,6 @@ class contactview_RosterContact extends CustomElement { } api.elements.define('converse-roster-contact', contactview_RosterContact); ;// CONCATENATED MODULE: ./src/plugins/rosterview/templates/roster_filter.js -function roster_filter_templateObject() { - const data = roster_filter_taggedTemplateLiteral(["\n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n \n
    \n
    "]); - - roster_filter_templateObject = function () { - return data; - }; - - return data; -} - -function roster_filter_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } - /* harmony default export */ const roster_filter = (o => { @@ -58182,7 +59524,37 @@ function roster_filter_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = s const label_offline = __('Offline'); - return T(roster_filter_templateObject(), !o.visible ? 'hidden' : 'fade-in', o.submitFilter, o.changeTypeFilter, o.filter_type === 'contacts' ? 'selected' : '', title_contact_filter, o.changeTypeFilter, o.filter_type === 'groups' ? 'selected' : '', title_group_filter, o.changeTypeFilter, o.filter_type === 'state' ? 'selected' : '', title_status_filter, o.filter_text || '', o.liveFilter, o.filter_type === 'state' ? 'hidden' : '', i18n_placeholder, !o.filter_text || o.filter_type === 'state' ? 'hidden' : '', o.clearFilter, o.filter_type !== 'state' ? 'hidden' : '', o.changeChatStateFilter, label_any, o.chat_state === 'unread_messages', label_unread_messages, o.chat_state === 'online', label_online, o.chat_state === 'chat', label_chatty, o.chat_state === 'dnd', label_busy, o.chat_state === 'away', label_away, o.chat_state === 'xa', label_xa, o.chat_state === 'offline', label_offline); + return T` +
    +
    +
    + + + +
    +
    + + + +
    + +
    +
    `; }); ;// CONCATENATED MODULE: ./src/plugins/rosterview/filterview.js function filterview_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -58213,7 +59585,7 @@ class RosterFilterView extends ElementView { initialize() { const model = new shared_converse.RosterFilter(); - model.id = "_converse.rosterfilter-".concat(shared_converse.bare_jid); + model.id = `_converse.rosterfilter-${shared_converse.bare_jid}`; initStorage(model, model.id); this.model = model; shared_converse.roster_filter = model; @@ -58413,71 +59785,6 @@ core_converse.initialize = function (settings, callback) { /***/ }), -/***/ 4009: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/* - 2020 Jason Mulligan - @version 6.1.0 -*/ - - -!function (e) { - var x = /^(b|B)$/, - M = { - iec: { - bits: ["b", "Kib", "Mib", "Gib", "Tib", "Pib", "Eib", "Zib", "Yib"], - bytes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"] - }, - jedec: { - bits: ["b", "Kb", "Mb", "Gb", "Tb", "Pb", "Eb", "Zb", "Yb"], - bytes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"] - } - }, - w = { - iec: ["", "kibi", "mebi", "gibi", "tebi", "pebi", "exbi", "zebi", "yobi"], - jedec: ["", "kilo", "mega", "giga", "tera", "peta", "exa", "zetta", "yotta"] - }; - - function t(e) { - var i, - t, - o, - n, - b, - r, - a, - l, - s, - d, - u, - c, - f, - p, - B, - y = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, - g = [], - v = 0, - m = void 0, - h = void 0; - if (isNaN(e)) throw new TypeError("Invalid number"); - return t = !0 === y.bits, u = !0 === y.unix, i = y.base || 2, d = void 0 !== y.round ? y.round : u ? 1 : 2, r = void 0 !== y.locale ? y.locale : "", a = y.localeOptions || {}, c = void 0 !== y.separator ? y.separator : "", f = void 0 !== y.spacer ? y.spacer : u ? "" : " ", B = y.symbols || {}, p = 2 === i && y.standard || "jedec", s = y.output || "string", n = !0 === y.fullform, b = y.fullforms instanceof Array ? y.fullforms : [], m = void 0 !== y.exponent ? y.exponent : -1, o = 2 < i ? 1e3 : 1024, (l = (h = Number(e)) < 0) && (h = -h), (-1 === m || isNaN(m)) && (m = Math.floor(Math.log(h) / Math.log(o))) < 0 && (m = 0), 8 < m && (m = 8), "exponent" === s ? m : (0 === h ? (g[0] = 0, g[1] = u ? "" : M[p][t ? "bits" : "bytes"][m]) : (v = h / (2 === i ? Math.pow(2, 10 * m) : Math.pow(1e3, m)), t && o <= (v *= 8) && m < 8 && (v /= o, m++), g[0] = Number(v.toFixed(0 < m ? d : 0)), g[0] === o && m < 8 && void 0 === y.exponent && (g[0] = 1, m++), g[1] = 10 === i && 1 === m ? t ? "kb" : "kB" : M[p][t ? "bits" : "bytes"][m], u && (g[1] = "jedec" === p ? g[1].charAt(0) : 0 < m ? g[1].replace(/B$/, "") : g[1], x.test(g[1]) && (g[0] = Math.floor(g[0]), g[1] = ""))), l && (g[0] = -g[0]), g[1] = B[g[1]] || g[1], !0 === r ? g[0] = g[0].toLocaleString() : 0 < r.length ? g[0] = g[0].toLocaleString(r, a) : 0 < c.length && (g[0] = g[0].toString().replace(".", c)), "array" === s ? g : (n && (g[1] = b[m] ? b[m] : w[p][m] + (t ? "bit" : "byte") + (1 === g[0] ? "" : "s")), "object" === s ? { - value: g[0], - symbol: g[1], - exponent: m - } : g.join(f))); - } - - t.partial = function (i) { - return function (e) { - return t(e, i); - }; - }, true ? module.exports = t : 0; -}("undefined" != typeof window ? window : __webpack_require__.g); - -/***/ }), - /***/ 2242: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { @@ -62652,6 +63959,20 @@ exports.push([module.id, "", "",{"version":3,"sources":[],"names":[],"mappings": module.exports = exports; +/***/ }), + +/***/ 708: +/***/ ((module, exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3645); +exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.id, "", "",{"version":3,"sources":[],"names":[],"mappings":"","file":"placeholder.scss"}]); +// Exports +module.exports = exports; + + /***/ }), /***/ 5078: @@ -62778,6 +64099,20 @@ exports.push([module.id, "", "",{"version":3,"sources":[],"names":[],"mappings": module.exports = exports; +/***/ }), + +/***/ 3379: +/***/ ((module, exports, __webpack_require__) => { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3645); +exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.id, "", "",{"version":3,"sources":[],"names":[],"mappings":"","file":"message-body.scss"}]); +// Exports +module.exports = exports; + + /***/ }), /***/ 9548: @@ -62926,8 +64261,7 @@ function toComment(sourceMap) { /***/ 7484: /***/ (function(module) { -!function(t,e){ true?module.exports=e():0}(this,function(){"use strict";var t="millisecond",e="second",n="minute",r="hour",i="day",s="week",u="month",a="quarter",o="year",f="date",h=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,c=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},$=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},l={s:$,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+$(r,2,"0")+":"+$(i,2,"0")},m:function t(e,n){if(e.date()=e?t:""+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date() { + +"use strict"; + +var Mutation = __webpack_require__.g.MutationObserver || __webpack_require__.g.WebKitMutationObserver; + +var scheduleDrain; + +{ + if (Mutation) { + var called = 0; + var observer = new Mutation(nextTick); + var element = __webpack_require__.g.document.createTextNode(''); + observer.observe(element, { + characterData: true + }); + scheduleDrain = function () { + element.data = (called = ++called % 2); + }; + } else if (!__webpack_require__.g.setImmediate && typeof __webpack_require__.g.MessageChannel !== 'undefined') { + var channel = new __webpack_require__.g.MessageChannel(); + channel.port1.onmessage = nextTick; + scheduleDrain = function () { + channel.port2.postMessage(0); + }; + } else if ('document' in __webpack_require__.g && 'onreadystatechange' in __webpack_require__.g.document.createElement('script')) { + scheduleDrain = function () { + + // Create a