!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["btm-return-call"]={})}(this,(function(e){"use strict";function t(e,t,o,i){var n,r=arguments.length,s=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(r<3?n(s):r>3?n(t,o,s):n(t,o))||s);return r>3&&s&&Object.defineProperty(t,o,s),s}"function"==typeof SuppressedError&&SuppressedError;
/**
     * @license
     * Copyright 2019 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
const o=globalThis,i=o.ShadowRoot&&(void 0===o.ShadyCSS||o.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,n=Symbol(),r=new WeakMap;let s=class{constructor(e,t,o){if(this._$cssResult$=!0,o!==n)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(i&&void 0===e){const o=void 0!==t&&1===t.length;o&&(e=r.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&r.set(t,e))}return e}toString(){return this.cssText}};const a=e=>new s("string"==typeof e?e:e+"",void 0,n),l=(e,...t)=>{const o=1===e.length?e[0]:t.reduce(((t,o,i)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(o)+e[i+1]),e[0]);return new s(o,e,n)},c=i?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const o of e.cssRules)t+=o.cssText;return a(t)})(e):e
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */,{is:d,defineProperty:h,getOwnPropertyDescriptor:u,getOwnPropertyNames:p,getOwnPropertySymbols:g,getPrototypeOf:m}=Object,y=globalThis,C=y.trustedTypes,b=C?C.emptyScript:"",v=y.reactiveElementPolyfillSupport,f=(e,t)=>e,$={toAttribute(e,t){switch(t){case Boolean:e=e?b:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let o=e;switch(t){case Boolean:o=null!==e;break;case Number:o=null===e?null:Number(e);break;case Object:case Array:try{o=JSON.parse(e)}catch(e){o=null}}return o}},_=(e,t)=>!d(e,t),x={attribute:!0,type:String,converter:$,reflect:!1,hasChanged:_};Symbol.metadata??=Symbol("metadata"),y.litPropertyMetadata??=new WeakMap;class E extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=x){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const o=Symbol(),i=this.getPropertyDescriptor(e,o,t);void 0!==i&&h(this.prototype,e,i)}}static getPropertyDescriptor(e,t,o){const{get:i,set:n}=u(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return i?.call(this)},set(t){const r=i?.call(this);n.call(this,t),this.requestUpdate(e,r,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??x}static _$Ei(){if(this.hasOwnProperty(f("elementProperties")))return;const e=m(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(f("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(f("properties"))){const e=this.properties,t=[...p(e),...g(e)];for(const o of t)this.createProperty(o,e[o])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,o]of t)this.elementProperties.set(e,o)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const o=this._$Eu(e,t);void 0!==o&&this._$Eh.set(o,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const o=new Set(e.flat(1/0).reverse());for(const e of o)t.unshift(c(e))}else void 0!==e&&t.push(c(e));return t}static _$Eu(e,t){const o=t.attribute;return!1===o?void 0:"string"==typeof o?o:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(i)e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const i of t){const t=document.createElement("style"),n=o.litNonce;void 0!==n&&t.setAttribute("nonce",n),t.textContent=i.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$EC(e,t){const o=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,o);if(void 0!==i&&!0===o.reflect){const n=(void 0!==o.converter?.toAttribute?o.converter:$).toAttribute(t,o.type);this._$Em=e,null==n?this.removeAttribute(i):this.setAttribute(i,n),this._$Em=null}}_$AK(e,t){const o=this.constructor,i=o._$Eh.get(e);if(void 0!==i&&this._$Em!==i){const e=o.getPropertyOptions(i),n="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:$;this._$Em=i,this[i]=n.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,o){if(void 0!==e){if(o??=this.constructor.getPropertyOptions(e),!(o.hasChanged??_)(this[e],t))return;this.P(e,t,o)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,o){this._$AL.has(e)||this._$AL.set(e,t),!0===o.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,o]of e)!0!==o.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],o)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}E.elementStyles=[],E.shadowRootOptions={mode:"open"},E[f("elementProperties")]=new Map,E[f("finalized")]=new Map,v?.({ReactiveElement:E}),(y.reactiveElementVersions??=[]).push("2.0.4");
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
const A=globalThis,I=A.trustedTypes,S=I?I.createPolicy("lit-html",{createHTML:e=>e}):void 0,w="$lit$",k=`lit$${Math.random().toFixed(9).slice(2)}$`,T="?"+k,R=`<${T}>`,N=document,O=()=>N.createComment(""),z=e=>null===e||"object"!=typeof e&&"function"!=typeof e,P=Array.isArray,D="[ \t\n\f\r]",L=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,B=/-->/g,U=/>/g,M=RegExp(`>|${D}(?:([^\\s"'>=/]+)(${D}*=${D}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),H=/'/g,V=/"/g,F=/^(?:script|style|textarea|title)$/i,j=(e=>(t,...o)=>({_$litType$:e,strings:t,values:o}))(1),G=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),K=new WeakMap,Y=N.createTreeWalker(N,129);function Z(e,t){if(!P(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==S?S.createHTML(t):t}const q=(e,t)=>{const o=e.length-1,i=[];let n,r=2===t?"<svg>":3===t?"<math>":"",s=L;for(let t=0;t<o;t++){const o=e[t];let a,l,c=-1,d=0;for(;d<o.length&&(s.lastIndex=d,l=s.exec(o),null!==l);)d=s.lastIndex,s===L?"!--"===l[1]?s=B:void 0!==l[1]?s=U:void 0!==l[2]?(F.test(l[2])&&(n=RegExp("</"+l[2],"g")),s=M):void 0!==l[3]&&(s=M):s===M?">"===l[0]?(s=n??L,c=-1):void 0===l[1]?c=-2:(c=s.lastIndex-l[2].length,a=l[1],s=void 0===l[3]?M:'"'===l[3]?V:H):s===V||s===H?s=M:s===B||s===U?s=L:(s=M,n=void 0);const h=s===M&&e[t+1].startsWith("/>")?" ":"";r+=s===L?o+R:c>=0?(i.push(a),o.slice(0,c)+w+o.slice(c)+k+h):o+k+(-2===c?t:h)}return[Z(e,r+(e[o]||"<?>")+(2===t?"</svg>":3===t?"</math>":"")),i]};class J{constructor({strings:e,_$litType$:t},o){let i;this.parts=[];let n=0,r=0;const s=e.length-1,a=this.parts,[l,c]=q(e,t);if(this.el=J.createElement(l,o),Y.currentNode=this.el.content,2===t||3===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(i=Y.nextNode())&&a.length<s;){if(1===i.nodeType){if(i.hasAttributes())for(const e of i.getAttributeNames())if(e.endsWith(w)){const t=c[r++],o=i.getAttribute(e).split(k),s=/([.?@])?(.*)/.exec(t);a.push({type:1,index:n,name:s[2],strings:o,ctor:"."===s[1]?oe:"?"===s[1]?ie:"@"===s[1]?ne:te}),i.removeAttribute(e)}else e.startsWith(k)&&(a.push({type:6,index:n}),i.removeAttribute(e));if(F.test(i.tagName)){const e=i.textContent.split(k),t=e.length-1;if(t>0){i.textContent=I?I.emptyScript:"";for(let o=0;o<t;o++)i.append(e[o],O()),Y.nextNode(),a.push({type:2,index:++n});i.append(e[t],O())}}}else if(8===i.nodeType)if(i.data===T)a.push({type:2,index:n});else{let e=-1;for(;-1!==(e=i.data.indexOf(k,e+1));)a.push({type:7,index:n}),e+=k.length-1}n++}}static createElement(e,t){const o=N.createElement("template");return o.innerHTML=e,o}}function Q(e,t,o=e,i){if(t===G)return t;let n=void 0!==i?o._$Co?.[i]:o._$Cl;const r=z(t)?void 0:t._$litDirective$;return n?.constructor!==r&&(n?._$AO?.(!1),void 0===r?n=void 0:(n=new r(e),n._$AT(e,o,i)),void 0!==i?(o._$Co??=[])[i]=n:o._$Cl=n),void 0!==n&&(t=Q(e,n._$AS(e,t.values),n,i)),t}class X{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:t},parts:o}=this._$AD,i=(e?.creationScope??N).importNode(t,!0);Y.currentNode=i;let n=Y.nextNode(),r=0,s=0,a=o[0];for(;void 0!==a;){if(r===a.index){let t;2===a.type?t=new ee(n,n.nextSibling,this,e):1===a.type?t=new a.ctor(n,a.name,a.strings,this,e):6===a.type&&(t=new re(n,this,e)),this._$AV.push(t),a=o[++s]}r!==a?.index&&(n=Y.nextNode(),r++)}return Y.currentNode=N,i}p(e){let t=0;for(const o of this._$AV)void 0!==o&&(void 0!==o.strings?(o._$AI(e,o,t),t+=o.strings.length-2):o._$AI(e[t])),t++}}class ee{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,o,i){this.type=2,this._$AH=W,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=o,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e?.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=Q(this,e,t),z(e)?e===W||null==e||""===e?(this._$AH!==W&&this._$AR(),this._$AH=W):e!==this._$AH&&e!==G&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):(e=>P(e)||"function"==typeof e?.[Symbol.iterator])(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==W&&z(this._$AH)?this._$AA.nextSibling.data=e:this.T(N.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:o}=e,i="number"==typeof o?this._$AC(e):(void 0===o.el&&(o.el=J.createElement(Z(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===i)this._$AH.p(t);else{const e=new X(i,this),o=e.u(this.options);e.p(t),this.T(o),this._$AH=e}}_$AC(e){let t=K.get(e.strings);return void 0===t&&K.set(e.strings,t=new J(e)),t}k(e){P(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let o,i=0;for(const n of e)i===t.length?t.push(o=new ee(this.O(O()),this.O(O()),this,this.options)):o=t[i],o._$AI(n),i++;i<t.length&&(this._$AR(o&&o._$AB.nextSibling,i),t.length=i)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e&&e!==this._$AB;){const t=e.nextSibling;e.remove(),e=t}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}}class te{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,o,i,n){this.type=1,this._$AH=W,this._$AN=void 0,this.element=e,this.name=t,this._$AM=i,this.options=n,o.length>2||""!==o[0]||""!==o[1]?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=W}_$AI(e,t=this,o,i){const n=this.strings;let r=!1;if(void 0===n)e=Q(this,e,t,0),r=!z(e)||e!==this._$AH&&e!==G,r&&(this._$AH=e);else{const i=e;let s,a;for(e=n[0],s=0;s<n.length-1;s++)a=Q(this,i[o+s],t,s),a===G&&(a=this._$AH[s]),r||=!z(a)||a!==this._$AH[s],a===W?e=W:e!==W&&(e+=(a??"")+n[s+1]),this._$AH[s]=a}r&&!i&&this.j(e)}j(e){e===W?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class oe extends te{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===W?void 0:e}}class ie extends te{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==W)}}class ne extends te{constructor(e,t,o,i,n){super(e,t,o,i,n),this.type=5}_$AI(e,t=this){if((e=Q(this,e,t,0)??W)===G)return;const o=this._$AH,i=e===W&&o!==W||e.capture!==o.capture||e.once!==o.once||e.passive!==o.passive,n=e!==W&&(o===W||i);i&&this.element.removeEventListener(this.name,this,o),n&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}}class re{constructor(e,t,o){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(e){Q(this,e)}}const se=A.litHtmlPolyfillSupport;se?.(J,ee),(A.litHtmlVersions??=[]).push("3.2.1");
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
let ae=class extends E{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=((e,t,o)=>{const i=o?.renderBefore??t;let n=i._$litPart$;if(void 0===n){const e=o?.renderBefore??null;i._$litPart$=n=new ee(t.insertBefore(O(),e),e,void 0,o??{})}return n._$AI(e),n})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return G}};ae._$litElement$=!0,ae.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:ae});const le=globalThis.litElementPolyfillSupport;le?.({LitElement:ae}),(globalThis.litElementVersions??=[]).push("4.1.1");
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
const ce={attribute:!0,type:String,converter:$,reflect:!1,hasChanged:_},de=(e=ce,t,o)=>{const{kind:i,metadata:n}=o;let r=globalThis.litPropertyMetadata.get(n);if(void 0===r&&globalThis.litPropertyMetadata.set(n,r=new Map),r.set(o.name,e),"accessor"===i){const{name:i}=o;return{set(o){const n=t.get.call(this);t.set.call(this,o),this.requestUpdate(i,n,e)},init(t){return void 0!==t&&this.P(i,void 0,e),t}}}if("setter"===i){const{name:i}=o;return function(o){const n=this[i];t.call(this,o),this.requestUpdate(i,n,e)}}throw Error("Unsupported decorator location: "+i)};
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */function he(e){return(t,o)=>"object"==typeof o?de(e,t,o):((e,t,o)=>{const i=t.hasOwnProperty(o);return t.constructor.createProperty(o,i?{...e,wrapped:!0}:e),i?Object.getOwnPropertyDescriptor(t,o):void 0})(e,t,o)
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */}function ue(e){return he({...e,state:!0,attribute:!1})}
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const pe=(e,t,o)=>(o.configurable=!0,o.enumerable=!0,Reflect.decorate&&"object"!=typeof t&&Object.defineProperty(e,t,o),o)
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */;function ge(e,t){return(t,o,i)=>pe(t,o,{get(){return(t=>t.renderRoot?.querySelector(e)??null)(this)}})}
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */let me;function ye(e){return function(t){window.customElements.get(e)||(e=>(t,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)})(e)(t)}}const Ce=e=>/\S+@\S+\.\S+/.test(e),be=(e="")=>/(.|\s)*\S(.|\s)*/.test(e),ve=(e="")=>/^(\+\d{1,3}[- ]?)?.{6,20}$/.test(e),fe=[{icon:"clock_forenoon",title:"Vormittags",value:"FORENOON"},{icon:"clock_noon",title:"Mittags",value:"NOON"},{icon:"clock_afternoon",title:"Nachmittags",value:"AFTERNOON"},{icon:"clock_evening",title:"Abends",value:"EVENING"}],$e=()=>"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substr(2,9),_e=2;class xe{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,o){this._$Ct=e,this._$AM=t,this._$Ci=o}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */class Ee extends xe{constructor(e){if(super(e),this.it=W,e.type!==_e)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===W||null==e)return this._t=void 0,this.it=e;if(e===G)return e;if("string"!=typeof e)throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;const t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}}Ee.directiveName="unsafeHTML",Ee.resultType=1;const Ae=(e=>(...t)=>({_$litDirective$:e,values:t}))(Ee);var Ie;let Se=Ie=class extends ae{constructor(){super(...arguments),this.icon="",this.svgContent=""}connectedCallback(){super.connectedCallback(),this.fetchSvg(`${Ie.path}/icons/${this.icon}.svg`)}updated(e){e.has("icon")&&this.fetchSvg(`${Ie.path}/icons/${this.icon}.svg`)}async fetchSvg(e){try{const t=await fetch(e);if(!t.ok)return void console.error("Failed to fetch SVG:",t.statusText);const o=await t.text();if(!o.startsWith("<svg"))return void console.error("Invalid SVG: ",e);const i=document.createElement("div");i.innerHTML=o.trim();const n=i.querySelector("svg");if(n){if(n.setAttribute("xmlns","http://www.w3.org/2000/svg"),n.style.display="block",!n.hasAttribute("viewBox")){const e=n.getAttribute("width")||"24",t=n.getAttribute("height")||"24";n.setAttribute("viewBox",`0 0 ${e} ${t}`)}n.setAttribute("width","100%"),n.setAttribute("height","100%"),n.setAttribute("preserveAspectRatio","xMidYMid meet"),n.setAttribute("shape-rendering","geometricPrecision"),this.svgContent=n.outerHTML,this.requestUpdate()}}catch(e){console.error("Error fetching SVG:",e)}}render(){return j` <div class="icon-container">${Ae(this.svgContent)}</div>`}};Se.path="https://components.bottimmo.com",Se.styles=l`
    :host {
      --font-size-5: 2em;
      --width: 100px;
      --height: 100px;
      --color: black;
      --size: var(--font-size-5);
    }

    .icon-container {
      font-size: var(--size);
      color: var(--color);
      display: flex;
      justify-content: center;
      align-items: center;
      height: var(--height);
      width: var(--width);
    }
  `,t([he({type:String})],Se.prototype,"icon",void 0),t([ue()],Se.prototype,"svgContent",void 0),Se=Ie=t([ye("btm-icon")],Se);let we=class extends ae{constructor(){super(...arguments),this.loading=!1,this.disabled=!1,this.inputStyle="",this.variant="",this.ariaLabel="",this.type="button"}_onClick(){const e=new CustomEvent("on-click",{});this.dispatchEvent(e)}loadingComponent(){return j` <div class="loader">
      <div class="loader-icon">
        <btm-icon icon="loader"></btm-icon>
      </div>
    </div>`}render(){return j`
      <button
        @click=${this._onClick}
        class="btm-button ${this.variant}"
        style="${this.inputStyle}"
        .disabled=${this.disabled||this.loading}
        type="${this.type}"
        aria-label="${this.ariaLabel||void 0}"
        aria-busy="${this.loading?"true":"false"}"
      >
        ${this.loading?this.loadingComponent():j` <slot></slot>`}
      </button>
    `}};we.styles=l`
    :host {
      --shadow-strength: 1%;
      --shadow-color: 220 3% 15%;
      --shadow-2:
        0 3px 5px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 3%)),
        0 7px 14px -5px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 5%));

      --font-size-1: 1em;

      --radius-2: 5px;

      --size-1: 0.25em;
      --size-5: 1.5em;
      --size-7: 2em;
      --size-8: 3em;
    }

    .btm-button {
      border-radius: var(--radius-2);
      border: none;
      color: white;
      cursor: pointer;
      font-weight: bold;
      font-size: var(--font-size-1);
      font-family: inherit;
      height: var(--size-8);
      padding: var(--size-1);
      padding-left: var(--size-5);
      padding-right: var(--size-5);
    }

    .btm-button:focus-visible {
      outline: 3px solid var(--primary);
      outline-offset: 2px;
      z-index: 1;
    }

    btm-icon {
      --height: 40px;
      --width: 100px;
    }

    .btm-button:hover:enabled {
      box-shadow: var(--shadow-2);
    }

    .btm-button:disabled {
      cursor: default;
    }

    .primary {
      background-color: var(--primary);
    }
    .primary:disabled {
      background-color: rgb(from var(--primary) r g b / 0.4);
    }

    .loader {
      display: flex;
      justify-content: center;
      max-width: 100%;
    }
  `,t([he({type:Boolean})],we.prototype,"loading",void 0),t([he({type:Boolean})],we.prototype,"disabled",void 0),t([he({type:String})],we.prototype,"inputStyle",void 0),t([he({type:String})],we.prototype,"variant",void 0),t([he({type:String,attribute:"aria-label"})],we.prototype,"ariaLabel",void 0),t([he({type:String})],we.prototype,"type",void 0),we=t([ye("btm-button")],we);let ke=class extends ae{constructor(){super(...arguments),this.label="",this.isChecked=!1,this.name="",this.error="",this.center=!1,this.color="",this.bgColor="",this._autoId=`checkbox-${Math.random().toString(36).slice(2,9)}`}render(){const e=this.name?`checkbox-${this.name}`:this._autoId,t=`${e}-label`;return j`
      <style>
        .btm-checkbox {
          color: ${this.color||"var(--primary)"} !important;
          border: 0.15rem solid ${this.color||"var(--primary)"} !important;
        }
        .btm-checkbox:checked {
          background-color: ${this.bgColor||"var(--primary)"} !important;
        }
      </style>
      ${this.label?j`<div>
            <span class="label" id="${t}">${this.label}</span>
          </div>`:""}
      <label class="checkbox-label ${this.center?"center":""}">
        <input
          type="checkbox"
          id="${e}"
          name="checkbox"
          class="btm-checkbox ${this.error?"error":""}"
          @change=${e=>this._onChange(e)}
          .checked=${this.isChecked}
          aria-labelledby="${this.label?t:void 0}"
        />
        <slot></slot>
      </label>
    `}_onChange(e){const t=new CustomEvent("on-change",{detail:{key:this.name,value:e.target.checked}});this.dispatchEvent(t)}};ke.styles=l`
    :host {
      --red-6: #fa5252;

      --font-size-1: 1em;
      --font-lineheight-0: 1.1;

      --border-size-2: 2px;

      --radius-2: 5px;

      --size-1: 0.25em;
      --size-2: 0.5em;
      --size-4: 1.25em;
    }

    .checkbox-label {
      font-size: var(--font-size-1);
      line-height: var(--font-lineheight-0);
      display: flex;
      cursor: pointer;
    }

    .label {
      text-transform: uppercase;
      font-size: 12px;
      font-weight: 800;
    }

    .btm-checkbox {
      -webkit-appearance: none;
      appearance: none;
      background-color: inherit;
      margin: 0;
      font: inherit;
      color: var(--primary);
      min-width: var(--size-4);
      min-height: var(--size-4);
      width: var(--size-4);
      height: var(--size-4);
      border: var(--border-size-2) solid var(--primary);
      border-radius: var(--radius-2);
      display: grid;
      place-content: center;
      cursor: pointer;
      margin-right: var(--size-2);
      margin-top: var(--size-1);
    }

    .btm-checkbox:checked {
      background-color: var(--primary);
    }

    .btm-checkbox::before {
      content: '';
      width: var(--size-2);
      height: var(--size-2);
      transform: scale(0);
      transition: 120ms transform ease-in-out;
      box-shadow: inset 1rem 1rem white;
      transform-origin: bottom left;
      clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
    }

    .btm-checkbox:checked::before {
      transform: scale(1);
    }

    .error {
      border: var(--border-size-2) solid var(--red-6) !important;
    }

    .center {
      align-items: center;
    }
    .center .btm-checkbox {
      margin-top: 0;
    }
  `,t([he({type:String})],ke.prototype,"label",void 0),t([ue()],ke.prototype,"isChecked",void 0),t([he({type:String})],ke.prototype,"name",void 0),t([he({type:String})],ke.prototype,"error",void 0),t([he({type:Boolean})],ke.prototype,"center",void 0),t([he({type:String})],ke.prototype,"color",void 0),t([he({type:String})],ke.prototype,"bgColor",void 0),ke=t([ye("btm-checkbox")],ke);let Te=class extends ae{constructor(){super(...arguments),this.hasCheckBox=!1,this.error="",this.color="",this.bgColor="",this.icon=({})=>j``,this.title="",this.value="",this.isChecked=!1,this.focused=!1}updated(e){e.has("focused")&&this.focused&&this._itemElement.focus()}_handleFocus(){this.dispatchEvent(new CustomEvent("item-focused",{detail:{value:this.value},bubbles:!0,composed:!0}))}_handleKeyDown(e){let t;switch(e.key){case"ArrowLeft":case"ArrowUp":t="prev";break;case"ArrowRight":case"ArrowDown":t="next";break;case" ":case"Enter":return this.hasCheckBox?(e.preventDefault(),void this._onChange(this.value)):void 0;default:t=null}t&&(e.preventDefault(),this.dispatchEvent(new CustomEvent("focus-item",{detail:{value:t},bubbles:!0,composed:!0})))}_onChange(e){const t=new CustomEvent("on-change",{detail:{key:e,value:!this.isChecked}});this.dispatchEvent(t)}focus(){this._itemElement?.focus()}render(){return j`
      <div
        class="${this.hasCheckBox?"btm-checkbox-group-item-checkbox":"btm-checkbox-group-item"}
               ${this.hasCheckBox&&this.isChecked?"btm-checkbox-group-item-checkbox-checked":""} 
               ${this.error?"btm-checkbox-group-item-checked":""}"
        @click=${()=>this._onChange(this.value)}
        @focus=${this._handleFocus}
        @keydown=${this._handleKeyDown}
        tabindex="${this.focused?"0":"-1"}"
        role="checkbox"
        aria-checked="${this.isChecked}"
      >
        ${this.isChecked&&!this.hasCheckBox?j`<btm-icon icon="check-circle" class="check-icon"></btm-icon>`:j``}
        <slot></slot>
        <span
          class=" ${this.hasCheckBox?"btm-checkbox-group-item-label-checkbox":"btm-checkbox-group-item-label"} 
                ${this.isChecked?"btm-checkbox-group-item-label-checked":""}"
          >${this.title}</span
        >
        ${this.hasCheckBox?j` <btm-checkbox .isChecked=${this.isChecked}> </btm-checkbox> `:j``}
      </div>
    `}};Te.styles=l`
    :host {
      --red-6: #fa5252;

      --border-size-2: 2px;
      --radius-2: 5px;
      --size-1: 0.25em;
      --size-2: 0.5em;
      --size-4: 1.25em;
    }

    .btm-checkbox-group-item,
    .btm-checkbox-group-item-checkbox {
      -webkit-appearance: none;
      appearance: none;
      background-color: inherit;
      margin: 0;
      font: inherit;
      color: var(--primary);
      min-width: var(--size-4);
      min-height: var(--size-4);
      width: 130px;
      height: 130px;
      border: var(--border-size-2) solid grey;
      border-radius: var(--radius-2);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: var(--size-2);
      place-content: center;
      cursor: pointer;
      position: relative;
    }

    @media (max-width: 640px) {
      .btm-checkbox-group-item {
        width: 110px;
        height: 110px;
      }
      btm-icon {
        --width: 80px;
        --height: 80px;
      }
    }

    .btm-checkbox-group-item-checkbox {
      width: 100%;
      height: 8em;
      flex-direction: row;
      justify-content: space-around;
      margin-bottom: 1em;
    }

    .btm-checkbox-group-item:hover,
    .btm-checkbox-group-item-checkbox:hover {
      border: var(--border-size-2) solid var(--primary);
    }

    .btm-checkbox-group-item:focus-visible,
    .btm-checkbox-group-item-checkbox:focus-visible {
      outline: 3px solid var(--primary);
      outline-offset: 2px;
      z-index: 1;
    }

    .btm-checkbox-group-item-label,
    .btm-checkbox-group-item-label-checkbox {
      font-weight: bold;
      color: black;
    }

    .btm-checkbox-group-item-label-checked {
      color: var(--primary);
    }

    .error {
      padding: var(--size-1);
      border: var(--border-size-2) solid var(--red-6) !important;
    }

    .btm-checkbox-group-item-checkbox-checked {
      border: var(--border-size-2) solid var(--primary) !important;
    }

    .center {
      align-items: center;
    }
    .center .btm-checkbox-group-item {
      margin-top: 0;
    }

    .check-icon {
      position: absolute;
      top: 5px;
      right: 5px;
      --color: var(--primary);
      --width: 20px;
      --height: 20px;
    }
  `,t([he({type:Boolean})],Te.prototype,"hasCheckBox",void 0),t([he({type:String})],Te.prototype,"error",void 0),t([he({type:String})],Te.prototype,"color",void 0),t([he({type:String})],Te.prototype,"bgColor",void 0),t([he({attribute:!1})],Te.prototype,"icon",void 0),t([he({type:String})],Te.prototype,"title",void 0),t([he({type:String})],Te.prototype,"value",void 0),t([he({type:Boolean})],Te.prototype,"isChecked",void 0),t([he({type:Boolean,reflect:!0})],Te.prototype,"focused",void 0),t([ge('[role="checkbox"]')],Te.prototype,"_itemElement",void 0),Te=t([ye("btm-checkbox-group-item")],Te);let Re=class extends ae{constructor(){super(...arguments),this.name="",this.hasCheckBox=!1,this.error="",this.color="",this.label="",this.items=[],this.selectedItems=[],this.focusedItemIndex=-1,this._autoId=`checkbox-group-${Math.random().toString(36).slice(2,9)}`,this._isChecked=e=>this.selectedItems.indexOf(e)>-1}async _handleContainerFocus(){-1===this.focusedItemIndex&&this.items.length>0&&(this.focusedItemIndex=0,await this.updateComplete,this._itemElements?.[0]?.focus())}_handleContainerBlur(e){const t=e.relatedTarget;!!t&&this.shadowRoot?.contains(t)||(this.focusedItemIndex=-1)}_handleItemFocused(e){const{value:t}=e.detail,o=this.items.findIndex((e=>e.value===t));o>-1&&(this.focusedItemIndex=o)}async _focusItem(e){const{value:t}=e.detail;this.items.length&&("next"===t?-1===this.focusedItemIndex?this.focusedItemIndex=0:this.focusedItemIndex=(this.focusedItemIndex+1)%this.items.length:"prev"===t&&(-1===this.focusedItemIndex?this.focusedItemIndex=this.items.length-1:this.focusedItemIndex=(this.focusedItemIndex-1+this.items.length)%this.items.length),await this.updateComplete,this._itemElements?.[this.focusedItemIndex]?.focus())}_onChange(e){const t=this.selectedItems.indexOf(e.detail.key);t>-1?this.selectedItems.splice(t,1):this.selectedItems.push(e.detail.key),this.requestUpdate();const o=new CustomEvent("on-change",{detail:{key:this.name,value:this.selectedItems}});this.dispatchEvent(o)}focus(){-1===this.focusedItemIndex&&(this.focusedItemIndex=0),this._itemElements[this.focusedItemIndex]?.focus()}async _onKeyDown(e){switch(e.key){case"Enter":case" ":e.preventDefault(),this.focusedItemIndex>=0&&this.focusedItemIndex<this.items.length&&this._onChange({detail:{key:this.items[this.focusedItemIndex].value}})}}renderIcon(e){return e.icon?j`<btm-icon icon="${e.icon}" class="${this._isChecked(e.value)?"checked":""}"> </btm-icon>`:j``}render(){const e=`${this.name?`checkbox-group-${this.name}`:this._autoId}-label`;return j`
      ${this.label?j`<div class="label-container">
            <span class="label" id="${e}">${this.label}</span>
          </div>`:""}
      <div
        class="btm-checkbox-group-container 
           ${this.hasCheckBox?"btm-checkbox-group-container-checkbox":""}
           ${this.error?"error":""}"
        role="group"
        aria-labelledby="${this.label?e:void 0}"
        tabindex="${-1===this.focusedItemIndex?"0":"-1"}"
        @focus="${this._handleContainerFocus}"
        @blur="${this._handleContainerBlur}"
        @keydown="${this._onKeyDown}"
        @item-focused="${this._handleItemFocused}"
        @focus-item="${this._focusItem}"
      >
        ${this.items.map(((e,t)=>j`<btm-checkbox-group-item
              color="${this.color}"
              title="${e.title}"
              value="${e.value}"
              .hasCheckBox=${this.hasCheckBox}
              .isChecked=${this._isChecked(e.value)}
              .focused=${this.focusedItemIndex===t}
              @on-change=${e=>this._onChange(e)}
              >${this.renderIcon(e)}</btm-checkbox-group-item
            >`))}
      </div>
    `}};Re.styles=l`
    :host {
      --gap: var(--size-4);
      --red-6: #fa5252;
      --red-10: #fee2e2;
      --border-size-2: 2px;
      --radius-2: 5px;
      --size-1: 0.25em;
      --size-4: 1em;
    }

    .label-container {
      margin-top: 10px;
    }
    .label {
      text-transform: uppercase;
      font-size: 12px;
      font-weight: 800;
    }

    .btm-checkbox-group-container {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-evenly;
      gap: var(--gap);
      margin-top: var(--size-1);
      margin-bottom: var(--size-1);
    }

    .btm-checkbox-group-container-checkbox {
      display: contents;
    }

    .error {
      border: var(--border-size-2) solid var(--red-6) !important;
      border-radius: var(--radius-2);
      background-color: var(--red-10);
    }

    btm-icon {
      --height: 100px;
      --width: 100px;
    }

    @media (max-width: 640px) {
      btm-icon {
        --width: 80px;
        --height: 80px;
      }
    }

    btm-icon.checked {
      --color: var(--primary);
    }

    .btm-checkbox-group-container:focus-visible {
      outline: 3px solid var(--primary);
      outline-offset: 2px;
      border-radius: var(--radius-2);
    }
  `,t([he({type:String})],Re.prototype,"name",void 0),t([he({type:Boolean})],Re.prototype,"hasCheckBox",void 0),t([he({type:String})],Re.prototype,"error",void 0),t([he({type:String})],Re.prototype,"color",void 0),t([he({type:String})],Re.prototype,"label",void 0),t([he({type:Array})],Re.prototype,"items",void 0),t([ue()],Re.prototype,"selectedItems",void 0),t([ue()],Re.prototype,"focusedItemIndex",void 0),t([function(e){return(t,o)=>pe(t,o,{get(){return(this.renderRoot??(me??=document.createDocumentFragment())).querySelectorAll(e)}})}("btm-checkbox-group-item")],Re.prototype,"_itemElements",void 0),Re=t([ye("btm-checkbox-group")],Re);let Ne=class extends ae{constructor(){super(...arguments),this.header="",this.type="info",this.error=null}render(){const e={error:"info",success:"check-circle",info:"info"}[this.type],t=!!(this.error&&Object.keys(this.error).length>0),o=`message-${$e()}`,i=this.header?`header-${$e()}`:null;return"error"!==this.type||t?j`
          <div
            class="message ${this.type}"
            role="${"error"===this.type?"alert":(this.type,"status")}"
            aria-live="${"error"===this.type?"assertive":"polite"}"
            aria-labelledby="${i||o}"
            id="${o}"
          >
            <div class="center">
              <btm-icon icon="${e}" aria-hidden="true"></btm-icon>
              ${this.header?j`<p class="title" id="${i}">${this.header}</p>`:""}
            </div>

            <slot></slot>

            ${this.error?Object.values(this.error).map((e=>j`<p class="message-msg">${e}</p>`)):""}
          </div>
        `:""}};Ne.styles=l`
    :host {
      --red-1: #ffe3e3;
      --red-5: #ff6b6b;
      --red-6: #fa5252;
      --red-9: #7f1d1d;

      --gray-1: #f1f3f5;
      --gray-7: #495057;
      --gray-9: #343a40;

      --green-1: #d3f9d8;
      --green-6: #40c057;
      --green-9: #205c3b;

      --blue-1: #d3e5ff;
      --blue-6: #339af0;
      --blue-9: #003e85;

      --font-weight-7: 700;

      --border-size-2: 2px;
      --border-radius: var(--radius-2);

      --radius-2: 5px;

      --size-2: 0.5em;
      --size-3: 1em;
      --size-4: 1.25em;
      --size-5: 1.5em;
    }

    .message {
      border: var(--border-size-2) solid var(--gray-7);
      border-radius: var(--radius-2);
      background-color: var(--gray-1);
      padding: var(--size-3);
      margin-top: var(--size-5);
      color: var(--gray-9);
    }

    .error {
      border: var(--border-size-2) solid var(--red-6);
      background-color: var(--red-1);
      color: var(--red-9);

      btm-icon {
        --color: var(--red-5);
      }
    }

    .success {
      border: var(--border-size-2) solid var(--green-6);
      background-color: var(--green-1);
      color: var(--green-9);

      btm-icon {
        --color: var(--green-5);
      }
    }

    .info {
      border: var(--border-size-2) solid var(--blue-6);
      background-color: var(--blue-1);
      color: var(--blue-9);

      btm-icon {
        --color: var(--blue-5);
      }
    }

    .message-msg {
      margin-left: 1.7em;
      margin-top: 0.5em;
    }

    .center {
      display: flex;
      align-items: center;
      margin-bottom: var(--size-2);
    }

    .message .title {
      font-weight: var(--font-weight-7);
    }

    p {
      margin-top: 0px;
      margin-bottom: 0px;
    }

    btm-icon {
      --height: 20px;
      --width: 20px;
      margin-right: var(--size-2);
    }
  `,t([he({type:String})],Ne.prototype,"header",void 0),t([he({type:String})],Ne.prototype,"type",void 0),t([he({type:Object})],Ne.prototype,"error",void 0),Ne=t([ye("btm-message-box")],Ne);let Oe=class extends ae{constructor(){super(...arguments),this.value="",this.name="",this.error="",this.warning=!1,this.placeholder="",this.type="text",this.label="",this.inverted=!1,this.format=!1,this._autoId=`input-${Math.random().toString(36).slice(2,9)}`}get inputElement(){return this._inputElement}render(){const e=this.name?`input-${this.name}`:this._autoId,t=`${e}-label`;return j`
      ${this.label?j`<div>
            <label class="label" for="${e}" id="${t}">${this.label}</label>
          </div>`:""}
      <input
        id="${e}"
        class="btm-input ${this.inverted?"inv":""} ${this.error?"error":""} ${this.warning?"warning":""}"
        type="${this.type||"text"}"
        min="${this.min}"
        max="${this.max}"
        .value="${this.format?function({value:e,fractionDigits:t=0}){const{locale:o="de"}=Intl.DateTimeFormat().resolvedOptions();return new Intl.NumberFormat({de:"de-DE",at:"de-AT",ch:"de-CH"}[o],{minimumFractionDigits:t,maximumFractionDigits:t}).format(e)}({value:this.value}):this.value}"
        @input=${e=>this._onChange(e)}
        placeholder="${this.placeholder}"
        aria-labelledby="${this.label?t:void 0}"
        aria-invalid="${this.error?"true":"false"}"
        tabindex="${void 0!==this.tabindex?this.tabindex:0}"
      />
    `}_onChange(e){const t=new CustomEvent("on-change",{detail:{key:this.name,value:e.target.value}});this.dispatchEvent(t)}};Oe.styles=l`
    :host {
      --gray-5: #adb5bd;
      --red-6: #fa5252;
      --red-10: #fee2e2;
      --yellow-6: #f8e71c;
      --yellow-10: #fff9db;

      --font-size-1: 1em;
      --font-weight-4: 400;

      --radius-2: 5px;

      --size-1: 0.25em;
      --size-2: 0.5em;
      --size-5: 1.5em;
      --size-8: 3em;
    }

    .btm-input {
      width: 100%;
      max-width: 100%;
      outline: none;
      margin-top: var(--size-1);
      margin-bottom: var(--size-1);
      height: var(--size-8);
      border: var(--border-size-2) solid var(--gray-5);
      border-radius: var(--radius-2);
      background-color: transparent;
      color: black;
      padding-left: var(--size-2);
      padding-right: var(--size-2);
      font-weight: var(--font-weight-4);
      font-size: var(--font-size-1);
      font-family: inherit;
      box-sizing: border-box;
    }

    .btm-input:focus-visible {
      outline: 3px solid var(--primary);
      outline-offset: 2px;
      z-index: 1;
    }

    .label {
      font-size: 12px;
      font-weight: 800;
      text-transform: uppercase;
    }

    .inv {
      background-color: white;
      border-color: white;
      max-width: calc((100%) - var(--size-5));
    }

    .error {
      border: var(--border-size-2) solid var(--red-6);
      background-color: var(--red-10);
    }

    .warning {
      border: var(--border-size-2) solid var(--yellow-6);
      background-color: var(--yellow-10);
    }
  `,t([he({type:String})],Oe.prototype,"value",void 0),t([he({type:String})],Oe.prototype,"name",void 0),t([he({type:String})],Oe.prototype,"error",void 0),t([he({type:Boolean})],Oe.prototype,"warning",void 0),t([he({type:String})],Oe.prototype,"placeholder",void 0),t([he({type:String})],Oe.prototype,"type",void 0),t([he({type:String})],Oe.prototype,"label",void 0),t([he({type:Boolean})],Oe.prototype,"inverted",void 0),t([he({type:Boolean})],Oe.prototype,"format",void 0),t([he({type:Number})],Oe.prototype,"min",void 0),t([he({type:Number})],Oe.prototype,"max",void 0),t([he({type:Number})],Oe.prototype,"tabindex",void 0),t([ge("input")],Oe.prototype,"_inputElement",void 0),Oe=t([ye("btm-input")],Oe);const ze=[{callingCode:"+93",countryCode:"AF"},{callingCode:"+355",countryCode:"AL"},{callingCode:"+213",countryCode:"DZ"},{callingCode:"+1-684",countryCode:"AS"},{callingCode:"+376",countryCode:"AD"},{callingCode:"+244",countryCode:"AO"},{callingCode:"+1-264",countryCode:"AI"},{callingCode:"+672",countryCode:"AQ"},{callingCode:"+1-268",countryCode:"AG"},{callingCode:"+54",countryCode:"AR"},{callingCode:"+374",countryCode:"AM"},{callingCode:"+297",countryCode:"AW"},{callingCode:"+61",countryCode:"AU"},{callingCode:"+43",countryCode:"AT"},{callingCode:"+994",countryCode:"AZ"},{callingCode:"+1-242",countryCode:"BS"},{callingCode:"+973",countryCode:"BH"},{callingCode:"+880",countryCode:"BD"},{callingCode:"+1-246",countryCode:"BB"},{callingCode:"+375",countryCode:"BY"},{callingCode:"+32",countryCode:"BE"},{callingCode:"+501",countryCode:"BZ"},{callingCode:"+229",countryCode:"BJ"},{callingCode:"+1-441",countryCode:"BM"},{callingCode:"+975",countryCode:"BT"},{callingCode:"+591",countryCode:"BO"},{callingCode:"+387",countryCode:"BA"},{callingCode:"+267",countryCode:"BW"},{callingCode:"+55",countryCode:"BR"},{callingCode:"+246",countryCode:"IO"},{callingCode:"+1-284",countryCode:"VG"},{callingCode:"+673",countryCode:"BN"},{callingCode:"+359",countryCode:"BG"},{callingCode:"+226",countryCode:"BF"},{callingCode:"+257",countryCode:"BI"},{callingCode:"+855",countryCode:"KH"},{callingCode:"+237",countryCode:"CM"},{callingCode:"+1",countryCode:"CA"},{callingCode:"+238",countryCode:"CV"},{callingCode:"+1-345",countryCode:"KY"},{callingCode:"+236",countryCode:"CF"},{callingCode:"+235",countryCode:"TD"},{callingCode:"+56",countryCode:"CL"},{callingCode:"+86",countryCode:"CN"},{callingCode:"+61",countryCode:"CX"},{callingCode:"+61",countryCode:"CC"},{callingCode:"+57",countryCode:"CO"},{callingCode:"+269",countryCode:"KM"},{callingCode:"+682",countryCode:"CK"},{callingCode:"+506",countryCode:"CR"},{callingCode:"+385",countryCode:"HR"},{callingCode:"+53",countryCode:"CU"},{callingCode:"+599",countryCode:"CW"},{callingCode:"+357",countryCode:"CY"},{callingCode:"+420",countryCode:"CZ"},{callingCode:"+243",countryCode:"CD"},{callingCode:"+45",countryCode:"DK"},{callingCode:"+253",countryCode:"DJ"},{callingCode:"+1-767",countryCode:"DM"},{callingCode:"+1-809",countryCode:"DO"},{callingCode:"+670",countryCode:"TL"},{callingCode:"+593",countryCode:"EC"},{callingCode:"+20",countryCode:"EG"},{callingCode:"+503",countryCode:"SV"},{callingCode:"+240",countryCode:"GQ"},{callingCode:"+291",countryCode:"ER"},{callingCode:"+372",countryCode:"EE"},{callingCode:"+251",countryCode:"ET"},{callingCode:"+500",countryCode:"FK"},{callingCode:"+298",countryCode:"FO"},{callingCode:"+679",countryCode:"FJ"},{callingCode:"+358",countryCode:"FI"},{callingCode:"+33",countryCode:"FR"},{callingCode:"+689",countryCode:"PF"},{callingCode:"+241",countryCode:"GA"},{callingCode:"+220",countryCode:"GM"},{callingCode:"+995",countryCode:"GE"},{callingCode:"+49",countryCode:"DE"},{callingCode:"+233",countryCode:"GH"},{callingCode:"+350",countryCode:"GI"},{callingCode:"+30",countryCode:"GR"},{callingCode:"+299",countryCode:"GL"},{callingCode:"+1-473",countryCode:"GD"},{callingCode:"+1-671",countryCode:"GU"},{callingCode:"+502",countryCode:"GT"},{callingCode:"+44-1481",countryCode:"GG"},{callingCode:"+224",countryCode:"GN"},{callingCode:"+245",countryCode:"GW"},{callingCode:"+592",countryCode:"GY"},{callingCode:"+509",countryCode:"HT"},{callingCode:"+504",countryCode:"HN"},{callingCode:"+852",countryCode:"HK"},{callingCode:"+36",countryCode:"HU"},{callingCode:"+354",countryCode:"IS"},{callingCode:"+91",countryCode:"IN"},{callingCode:"+62",countryCode:"ID"},{callingCode:"+98",countryCode:"IR"},{callingCode:"+964",countryCode:"IQ"},{callingCode:"+353",countryCode:"IE"},{callingCode:"+44-1624",countryCode:"IM"},{callingCode:"+972",countryCode:"IL"},{callingCode:"+39",countryCode:"IT"},{callingCode:"+225",countryCode:"CI"},{callingCode:"+1-876",countryCode:"JM"},{callingCode:"+81",countryCode:"JP"},{callingCode:"+44-1534",countryCode:"JE"},{callingCode:"+962",countryCode:"JO"},{callingCode:"+7",countryCode:"KZ"},{callingCode:"+254",countryCode:"KE"},{callingCode:"+686",countryCode:"KI"},{callingCode:"+383",countryCode:"XK"},{callingCode:"+965",countryCode:"KW"},{callingCode:"+996",countryCode:"KG"},{callingCode:"+856",countryCode:"LA"},{callingCode:"+371",countryCode:"LV"},{callingCode:"+961",countryCode:"LB"},{callingCode:"+266",countryCode:"LS"},{callingCode:"+231",countryCode:"LR"},{callingCode:"+218",countryCode:"LY"},{callingCode:"+423",countryCode:"LI"},{callingCode:"+370",countryCode:"LT"},{callingCode:"+352",countryCode:"LU"},{callingCode:"+853",countryCode:"MO"},{callingCode:"+389",countryCode:"MK"},{callingCode:"+261",countryCode:"MG"},{callingCode:"+265",countryCode:"MW"},{callingCode:"+60",countryCode:"MY"},{callingCode:"+960",countryCode:"MV"},{callingCode:"+223",countryCode:"ML"},{callingCode:"+356",countryCode:"MT"},{callingCode:"+692",countryCode:"MH"},{callingCode:"+222",countryCode:"MR"},{callingCode:"+230",countryCode:"MU"},{callingCode:"+262",countryCode:"YT"},{callingCode:"+52",countryCode:"MX"},{callingCode:"+691",countryCode:"FM"},{callingCode:"+373",countryCode:"MD"},{callingCode:"+377",countryCode:"MC"},{callingCode:"+976",countryCode:"MN"},{callingCode:"+382",countryCode:"ME"},{callingCode:"+1-664",countryCode:"MS"},{callingCode:"+212",countryCode:"MA"},{callingCode:"+258",countryCode:"MZ"},{callingCode:"+95",countryCode:"MM"},{callingCode:"+264",countryCode:"NA"},{callingCode:"+674",countryCode:"NR"},{callingCode:"+977",countryCode:"NP"},{callingCode:"+31",countryCode:"NL"},{callingCode:"+599",countryCode:"AN"},{callingCode:"+687",countryCode:"NC"},{callingCode:"+64",countryCode:"NZ"},{callingCode:"+505",countryCode:"NI"},{callingCode:"+227",countryCode:"NE"},{callingCode:"+234",countryCode:"NG"},{callingCode:"+683",countryCode:"NU"},{callingCode:"+850",countryCode:"KP"},{callingCode:"+1-670",countryCode:"MP"},{callingCode:"+47",countryCode:"NO"},{callingCode:"+968",countryCode:"OM"},{callingCode:"+92",countryCode:"PK"},{callingCode:"+680",countryCode:"PW"},{callingCode:"+970",countryCode:"PS"},{callingCode:"+507",countryCode:"PA"},{callingCode:"+675",countryCode:"PG"},{callingCode:"+595",countryCode:"PY"},{callingCode:"+51",countryCode:"PE"},{callingCode:"+63",countryCode:"PH"},{callingCode:"+64",countryCode:"PN"},{callingCode:"+48",countryCode:"PL"},{callingCode:"+351",countryCode:"PT"},{callingCode:"+1-787",countryCode:"PR"},{callingCode:"+974",countryCode:"QA"},{callingCode:"+242",countryCode:"CG"},{callingCode:"+262",countryCode:"RE"},{callingCode:"+40",countryCode:"RO"},{callingCode:"+7",countryCode:"RU"},{callingCode:"+250",countryCode:"RW"},{callingCode:"+590",countryCode:"BL"},{callingCode:"+290",countryCode:"SH"},{callingCode:"+1-869",countryCode:"KN"},{callingCode:"+1-758",countryCode:"LC"},{callingCode:"+590",countryCode:"MF"},{callingCode:"+508",countryCode:"PM"},{callingCode:"+1-784",countryCode:"VC"},{callingCode:"+685",countryCode:"WS"},{callingCode:"+378",countryCode:"SM"},{callingCode:"+239",countryCode:"ST"},{callingCode:"+966",countryCode:"SA"},{callingCode:"+221",countryCode:"SN"},{callingCode:"+381",countryCode:"RS"},{callingCode:"+248",countryCode:"SC"},{callingCode:"+232",countryCode:"SL"},{callingCode:"+65",countryCode:"SG"},{callingCode:"+1-721",countryCode:"SX"},{callingCode:"+421",countryCode:"SK"},{callingCode:"+386",countryCode:"SI"},{callingCode:"+677",countryCode:"SB"},{callingCode:"+252",countryCode:"SO"},{callingCode:"+27",countryCode:"ZA"},{callingCode:"+82",countryCode:"KR"},{callingCode:"+211",countryCode:"SS"},{callingCode:"+34",countryCode:"ES"},{callingCode:"+94",countryCode:"LK"},{callingCode:"+249",countryCode:"SD"},{callingCode:"+597",countryCode:"SR"},{callingCode:"+47",countryCode:"SJ"},{callingCode:"+268",countryCode:"SZ"},{callingCode:"+46",countryCode:"SE"},{callingCode:"+41",countryCode:"CH"},{callingCode:"+963",countryCode:"SY"},{callingCode:"+886",countryCode:"TW"},{callingCode:"+992",countryCode:"TJ"},{callingCode:"+255",countryCode:"TZ"},{callingCode:"+66",countryCode:"TH"},{callingCode:"+228",countryCode:"TG"},{callingCode:"+690",countryCode:"TK"},{callingCode:"+676",countryCode:"TO"},{callingCode:"+1-868",countryCode:"TT"},{callingCode:"+216",countryCode:"TN"},{callingCode:"+90",countryCode:"TR"},{callingCode:"+993",countryCode:"TM"},{callingCode:"+1-649",countryCode:"TC"},{callingCode:"+688",countryCode:"TV"},{callingCode:"+1-340",countryCode:"VI"},{callingCode:"+256",countryCode:"UG"},{callingCode:"+380",countryCode:"UA"},{callingCode:"+971",countryCode:"AE"},{callingCode:"+44",countryCode:"GB"},{callingCode:"+1",countryCode:"US"},{callingCode:"+598",countryCode:"UY"},{callingCode:"+998",countryCode:"UZ"},{callingCode:"+678",countryCode:"VU"},{callingCode:"+379",countryCode:"VA"},{callingCode:"+58",countryCode:"VE"},{callingCode:"+84",countryCode:"VN"},{callingCode:"+681",countryCode:"WF"},{callingCode:"+212",countryCode:"EH"},{callingCode:"+967",countryCode:"YE"},{callingCode:"+260",countryCode:"ZM"},{callingCode:"+263",countryCode:"ZW"}];let Pe=class extends ae{constructor(){super(...arguments),this.name="",this._autoId=`select-${Math.random().toString(36).slice(2,9)}`,this.value="",this.options=[],this.label="",this.inverted=!1,this.selectTabIndex=""}async firstUpdated(){this._onChange()}_onChange(e=this.name||this._autoId){const t=this.shadowRoot?.getElementById(e)?.value;if(t){this.value=t;const e=new CustomEvent("on-change",{detail:{key:this.name,value:t}});this.dispatchEvent(e)}}_onKeyDown(e,t=this.name||this._autoId){"Enter"===e.key&&(e.preventDefault(),this.shadowRoot?.getElementById(t)?.focus(),this.shadowRoot?.getElementById(t)?.click())}render(){const e=this.name||this._autoId,t=`${e}-label`;return j`
      <div>
        ${this.label?j`<label class="label" for="${e}" id="${t}">${this.label}</label>`:j`<slot name="label"></slot>`}
      </div>
      <select
        class="btm-select ${this.inverted?"inv":""}"
        id="${e}"
        @change="${()=>this._onChange(e)}"
        @keydown="${t=>this._onKeyDown(t,e)}"
        aria-labelledby="${this.label?t:void 0}"
        aria-label="${this.getAttribute("aria-label")||void 0}"
        aria-describedby="${this.getAttribute("aria-describedby")||void 0}"
        tabindex="${this.selectTabIndex||void 0}"
      >
        ${this.options.map((e=>j`<option
              value="${e.value}"
              ?selected="${e.value===this.value}"
              ?disabled="${e.disabled}"
            >
              ${e.text}
            </option>`))}
      </select>
    `}};var De;Pe.styles=l`
    :host {
      --gray-5: #adb5bd;

      --font-size-1: 1em;
      --font-weight-4: 400;

      --radius-2: 5px;
      --border-size-2: 2px;

      --size-1: 0.25em;
      --size-2: 0.5em;
      --size-8: 3em;
    }

    .btm-select {
      width: 100%;
      margin-top: var(--size-1);
      margin-bottom: var(--size-1);
      height: var(--size-8);
      border: var(--border-size-2) solid var(--gray-5);
      border-radius: var(--radius-2);
      background-color: transparent;
      color: black;
      padding-left: var(--size-2);
      padding-right: var(--size-2);
      font-weight: var(--font-weight-4);
      font-size: var(--font-size-1);
      font-family: inherit;
      box-sizing: border-box;

      select {
        font-family: inherit;
      }
    }

    .btm-select:focus-visible {
      outline: 3px solid var(--primary);
      outline-offset: 2px;
      z-index: 1;
    }

    .label {
      text-transform: uppercase;
      font-size: 12px;
      font-weight: 800;
    }

    .inv {
      background-color: white;
      border: none;
      max-width: calc((100%) - var(--size-1));
    }
  `,t([he({type:String})],Pe.prototype,"name",void 0),t([he({type:String})],Pe.prototype,"value",void 0),t([he({type:Array})],Pe.prototype,"options",void 0),t([he({type:String})],Pe.prototype,"label",void 0),t([he({type:Boolean})],Pe.prototype,"inverted",void 0),t([he({type:String,attribute:"select-tabindex"})],Pe.prototype,"selectTabIndex",void 0),Pe=t([ye("btm-select")],Pe);let Le=De=class extends ae{constructor(){super(...arguments),this.name="",this.error="",this.placeholder="",this.type="",this.label="",this.isPhoneOptional=!1,this.countryCallingCode="",this.nationalNumber="",this.inverted=!1,this.phone=""}_countryCallingCodes(){const e=new Set([De.countryCode.toUpperCase(),"DE","AT","CH"]),t=[],o=ze.sort(((e,t)=>e.countryCode.localeCompare(t.countryCode)));let i;for(const n of o){const o={countryCode:n.countryCode,value:n.callingCode,text:`${n.callingCode} (${n.countryCode})`,disabled:!1};De.countryCode.toUpperCase()===n.countryCode?i=o:e.has(n.countryCode)?t.unshift(o):t.push(o)}i&&t.unshift(i);return t.splice(e.size,0,{countryCode:"-",value:"-",text:"────",disabled:!0}),t}_onChangeCountryCallingCode(e){this.countryCallingCode=e.detail.value,this.emit()}_onChangePhone(e){this.nationalNumber=e.target.value,this.emit()}emit(){this.phone=`${this.countryCallingCode}${this.nationalNumber}`;const e=new CustomEvent("on-change",{detail:{key:this.name,value:this.phone,countryCallingCode:this.countryCallingCode,nationalNumber:this.nationalNumber}});this.dispatchEvent(e)}render(){const e=this.name?`phone-${this.name}`:`phone-${$e()}`,t=this.error?`${e}-error`:null,o=!this.isPhoneOptional;return j`
      <div class="label-container">
        <label class="label" id="${e}-label" for="${e}"
          >${this.label} ${this.isPhoneOptional?j`<span class="optional">(optional)</span>`:""}
        </label>
      </div>
      <div class="phone-container" role="group" aria-labelledby="${e}-label" aria-describedby="${t||""}">
        <div class="country-calling-code-container">
          <btm-select
            value="${this.countryCallingCode}"
            class="country-calling-code-select"
            name="countryCallingCode"
            aria-label="L\u00E4ndervorwahl"
            aria-describedby="${t||""}"
            .options="${this._countryCallingCodes()}"
            @on-change=${e=>this._onChangeCountryCallingCode(e)}
          ></btm-select>
        </div>
        <div class="national-number">
          <input
            id="${e}"
            value="${this.nationalNumber}"
            class="btm-phone ${this.inverted?"inv":""} ${this.error?"error":""}"
            type="${this.type||"tel"}"
            name="${this.name}"
            aria-label="Telefonnummer"
            aria-required="${o}"
            aria-describedby="${t||""}"
            aria-invalid="${this.error?"true":"false"}"
            @input=${e=>this._onChangePhone(e)}
            placeholder="${this.placeholder}"
          />
        </div>
      </div>
    `}};var Be,Ue,Me;Le.countryCode="DE",Le.styles=l`
    :host {
      --red-6: #fa5252;
      --gray-5: #adb5bd;
      --red-10: #fee2e2;

      --font-size-1: 1em;
      --font-weight-4: 400;

      --border-size-2: 2px;

      --radius-2: 5px;

      --size-1: 0.25em;
      --size-2: 0.5em;
      --size-4: 1.25em;
      --size-8: 3em;
    }

    .label {
      text-transform: uppercase;
      font-size: 12px;
      font-weight: 800;
    }

    .optional {
      text-transform: none;
      font-weight: normal;
    }

    .phone-container {
      display: flex;
    }

    .country-calling-code-container {
      position: relative;
      min-width: 110px;
      margin-right: 0.5em;
      width: 30%;
    }

    .country-calling-code-select {
      margin-top: 0px;
      padding-top: 0px;
    }

    .btm-phone {
      width: 100%;
      max-width: 100%;
      outline: none;
      margin-top: var(--size-1);
      margin-bottom: var(--size-1);
      height: var(--size-8);
      border: var(--border-size-2) solid var(--gray-5);
      border-radius: var(--radius-2);
      background-color: transparent;
      color: black;
      padding-left: var(--size-2);
      padding-right: var(--size-2);
      font-weight: var(--font-weight-4);
      font-size: var(--font-size-1);
      font-family: inherit;
      box-sizing: border-box;
      flex: 1 1 0%;
    }

    .btm-phone:focus-visible {
      outline: 3px solid var(--primary);
      outline-offset: 2px;
      z-index: 1;
    }

    .national-number {
      width: 70%;
    }

    .inv {
      background-color: white;
      border-color: white;
      max-width: calc((100%) - var(--size-5));
    }

    .error {
      border: var(--border-size-2) solid var(--red-6);
      background-color: var(--red-10);
    }
  `,t([he({type:String})],Le.prototype,"name",void 0),t([he({type:String})],Le.prototype,"error",void 0),t([he({type:String})],Le.prototype,"placeholder",void 0),t([he({type:String})],Le.prototype,"type",void 0),t([he({type:String})],Le.prototype,"label",void 0),t([he({type:Boolean})],Le.prototype,"isPhoneOptional",void 0),t([he({type:String})],Le.prototype,"countryCallingCode",void 0),t([he({type:String})],Le.prototype,"nationalNumber",void 0),t([he({type:Boolean})],Le.prototype,"inverted",void 0),t([ue()],Le.prototype,"phone",void 0),Le=De=t([ye("btm-phone")],Le),function(e){e[e.IDLE=0]="IDLE",e[e.SUBMIT=1]="SUBMIT",e[e.SUBMITTED=2]="SUBMITTED",e[e.FAILED=3]="FAILED"}(Be||(Be={})),function(e){e[e.FORENOON=0]="FORENOON",e[e.NOON=1]="NOON",e[e.AFTERNOON=2]="AFTERNOON",e[e.EVENING=3]="EVENING"}(Ue||(Ue={})),function(e){e[e.INHERITANCE=0]="INHERITANCE",e[e.PRICING=1]="PRICING",e[e.DIVORCE=2]="DIVORCE",e[e.SALE=3]="SALE",e[e.RENT=4]="RENT",e[e.BUYING_INTEREST=5]="BUYING_INTEREST",e[e.CREDIT=6]="CREDIT",e[e.REPLACEMENT=7]="REPLACEMENT",e[e.LIFE_ANNUITY=8]="LIFE_ANNUITY",e[e.PARTIAL_SALE=9]="PARTIAL_SALE",e[e.PROPERTY_TAX=10]="PROPERTY_TAX",e[e.OTHER=11]="OTHER"}(Me||(Me={}));var He=l`
  :host {
    font-size: 16px;
    display: block;
    background-color: #ffffff;
    max-width: 700px;
    font-family: Barlow, sans-serif;
    color: black;
    border-radius: var(--radius-2);

    --card-shadow: var(--shadow-2);
    --card-padding: var(--size-7);

    --gray-7: #495057;
    --green-1: #d3f9d8;
    --green-6: #40c057;

    --radius-2: 5px;

    --size-2: 0.5em;
    --size-3: 1em;
    --size-4: 1.25em;
    --size-5: 1.5em;
    --size-7: 2em;

    --border-size-2: 2px;

    --font-weight-7: 700;

    --shadow-strength: 1%;
    --shadow-color: 220 3% 15%;
    --shadow-2:
      0 3px 5px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 3%)),
      0 7px 14px -5px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 5%));
  }

  #check-icon {
    --height: 15px;
    --width: 15px;
    margin-right: var(--size-2);
  }

  #phone-icon {
    --color: var(--primary);
    --height: 25px;
    --width: 25px;
  }

  .card {
    display: flex;
    flex-direction: column;
    background-color: var(--background);
    padding: var(--card-padding);
    max-width: 700px;
    box-shadow: var(--card-shadow);
  }

  p {
    margin: 0px;
  }

  btm-checkbox-group {
    margin-bottom: var(--size-3);
    .btm-checkbox-group-container {
      padding: var(--size-3);
    }
  }

  .header {
    display: flex;
    align-items: center;
    margin-bottom: var(--size-5);
    color: black;
  }

  .header-icon {
    width: 60px;
    height: 60px;
    min-width: 60px;
    min-height: 60px;
    background-color: rgb(from var(--primary) r g b / 0.4);
    border-radius: var(--radius-2);
    margin-right: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .header-text {
    display: flex;
    flex-direction: column;
  }
  .header-title {
    font-weight: 400;
    font-size: var(--size-4);
    margin-top: 5px;
  }
  .header-sub-title {
    font-weight: 300;
    font-size: 15px;
    color: var(--gray-7);
  }

  .confirmation {
    display: flex;
    flex-direction: column;
    gap: var(--size-2);
  }

  .icon-container {
    font-size: 30px;
    color: var(--primary);
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    filter: brightness(55%);
  }

  .font-bold {
    font-weight: bold;
  }

  a {
    color: var(--primary);
    text-decoration: underline;
    font-weight: bold;
  }

  @media only screen and (max-width: 500px) {
    :host {
      --card-padding: var(--size-3);
    }

    #return-call-button {
      margin-left: auto;
      margin-right: auto;
    }

    .two-col-row {
      display: flex;
      flex-direction: column;
      gap: 0px;
    }
  }

  @media only screen and (min-width: 501px) {
    .two-col-row {
      display: flex;
      gap: 15px;
    }
  }

  .col {
    flex: 1;
  }
`;class Ve extends Error{constructor(e,t,o=[]){super(t),this.status=e,this.statusText=t,this.errors=o,this.name="ApiRequestError"}}const Fe=async(e,t)=>{const o=new URL(e,"https://api.bottimmo.com"),i=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),n=i.headers.get("content-type")?.includes("application/json")??!1?await i.json():{};if(!i.ok)throw new Ve(i.status,i.statusText,n.errors);return n};const je=async({impressionId:e,object:t,action:o,campaign:i,step:n,label:r,attributes:s})=>{if(e)try{await Fe("/analytics/events",{impressionId:e,object:t,action:o,campaign:i,step:n,label:r,attributes:s})}catch(e){console.error("Failed to track event:",e)}};var Ge,We,Ke,Ye;!function(e){e.STEP_COMPLETED="StepCompleted",e.STEP_BACK="StepBack",e.MILESTONE_REACHED="MilestoneReached",e.CONVERSION_ACHIEVED="ConversionAchieved",e.STARTED="Started"}(Ge||(Ge={})),function(e){e.PROPERTY_REQUEST="PropertyRequest",e.PARTIAL_SALE="PartialSale",e.QUIZZARD="Quizzard",e.PLOT_VALUATION="PlotValuation",e.VALUATION="Valuation",e.RETURN_CALL="ReturnCall",e.LIFE_ANNUITY="LifeAnnuity",e.DOWNLOAD="Download"}(We||(We={})),function(e){e.PROPERTY_REQUEST="PROPERTY_REQUEST",e.PARTIAL_SALE="PARTIAL_SALE",e.QUIZZARD="QUIZZARD",e.PLOT_VALUATION="PLOT_VALUATION",e.VALUATION="VALUATION",e.RETURN_CALL="RETURN_CALL",e.LIFE_ANNUITY="LIFE_ANNUITY",e.DOWNLOAD="DOWNLOAD"}(Ke||(Ke={})),function(e){e.PHONE_NUMBER_PROVIDED="PhoneNumberProvided",e.ADDRESS_PROVIDED="AddressProvided",e.EMAIL_PROVIDED="EmailProvided",e.QUIZZARD_COMPLETED="QuizzardCompleted",e.LAST_STEP="LastStepReached",e.PHONE_NUMBER_VERIFIED="PhoneNumberVerified",e.PRIMARY_DATA_PROVIDED="PrimaryDataProvided"}(Ye||(Ye={}));const Ze="BtmWidget";function qe(e,t,o={}){if(!window.dataLayer)return;const{detail:i,...n}=o;window.dataLayer.push({event:Je(e,t,i),...n}),window.dataLayer.push({event:Ze,widget:e,action:t,...o})}function Je(e,t,o){return[Ze,e,t,o].filter(Boolean).join("_")}function Qe(e,t,o){qe(e,Ge.MILESTONE_REACHED,{detail:t}),je({impressionId:o,object:"widget",action:Ge.MILESTONE_REACHED,campaign:e,attributes:{milestone:t}})}function Xe(e,t,o,i){const{previousIndex:n,currentIndex:r}=o.detail;r>n?(!function(e,t,o){qe(e,Ge.STEP_COMPLETED,{detail:t}),je({impressionId:o,object:"widget",action:Ge.STEP_COMPLETED,campaign:e,step:t})}(e,r,i),r===t&&Qe(e,Ye.LAST_STEP,i)):r<n&&function(e,t,o){qe(e,Ge.STEP_BACK,{detail:t}),je({impressionId:o,object:"widget",action:Ge.STEP_BACK,campaign:e,step:t})}(e,n,i)}function et(e,t,o,i,n){if(e.__trackingSetup)return;let r=!1;const s=()=>{r||(!function(e,t){qe(e,Ge.STARTED),je({impressionId:t,object:"widget",action:Ge.STARTED,campaign:e})}(t,i),r=!0)};e.addEventListener("click",s,{once:!0});const a=e=>{r||s();Xe(t,o,e,i)};e.addEventListener("wizard-step-changed",a),e.__trackingListeners={clickListener:s,stepChangedListener:a},e.__trackingSetup=!0}var tt;e.BtmReturnCall=tt=class extends ae{constructor(){super(...arguments),this.hideHeader=!1,this.hiddenFields=[],this.origin="STANDALONE",this.topic="",this.topicOther="",this.callbackTimeOfDay=[],this.preConversionId=new URLSearchParams(window.location.search).get("preconversion-id"),this.invitationId=new URLSearchParams(window.location.search).get("invitationId"),this.leadData={email:"",firstname:"",lastname:"",phone:"",hasAcceptPrivacy:!tt.doubleOptIn},this.errors={},this.isInsideOfWidget=!1,this.submitState=Be.IDLE,this.impressionId="",this.embedded=!0,this._topics=()=>{if(!tt.topicsString||tt.topicsString.length<=0)return this.topic="OTHER",[{value:"OTHER",text:"Sonstiges"}];try{const e=JSON.parse(tt.topicsString);return this.topic=this.topic||e[0].value,e}catch(e){return console.warn("Error parsing topics string",tt.topicsString),[{value:"OTHER",text:"Sonstiges"}]}}}async connectedCallback(){super.connectedCallback(),this.impressionId=await async function({companyId:e,landingpageType:t,landingpageSlug:o,landingpageId:i,embedded:n=!1}){try{return n?(await Fe("/analytics/impressions",{companyId:e,landingpageType:t,landingpageSlug:o,landingpageId:i,embedded:n,...document.referrer&&{referrer:new URL(document.referrer).hostname},queryString:document.location.search})).impression.id:""}catch(e){console.error("Failed to track impression:",e)}return""}({companyId:tt.companyId,landingpageType:Ke.RETURN_CALL,embedded:this.embedded}),et(this,We.RETURN_CALL,1,this.impressionId)}disconnectedCallback(){super.disconnectedCallback(),function(e){const t=e.__trackingListeners;t&&(e.removeEventListener("click",t.clickListener),e.removeEventListener("wizard-step-changed",t.stepChangedListener),delete e.__trackingListeners,delete e.__trackingSetup)}(this)}_setLeadData(e){const t=e.detail.key;this.leadData[t]=e.detail.value,("firstname"!==e.detail.key||be(e.detail.value))&&("lastname"!==e.detail.key||be(e.detail.value))&&("email"!==e.detail.key||Ce(e.detail.value))&&("phone"!==e.detail.key||ve(e.detail.value))&&this._clearError(e.detail.key)}_setConversionDetails(e){this[e.detail.key]=e.detail.value,this._clearError(e.detail.key)}_clearError(e){delete this.errors[e],this.errors={...this.errors}}_isTopicOther(){return"OTHER"===this.topic}_validateInput(){return this.errors={...this.callbackTimeOfDay.length<=0&&{callbackTimeOfDay:"Bitte wählen Sie mindestens eine Rückrufzeit aus."},..."OTHER"===this.topic&&!be(this.topicOther)&&{topicOther:"Bitte tragen Sie ein Anliegen ein"},...!be(this.leadData.firstname)&&{firstname:"Bitte tragen Sie Ihren Vornamen ein."},...!be(this.leadData.lastname)&&{lastname:"Bitte tragen Sie Ihren Nachnamen ein."},...!ve(this.leadData.phone)&&{phone:"Bitte tragen Sie eine valide Telefonnummer ein."},...!Ce(this.leadData.email)&&{email:"Bitte tragen Sie eine valide E-Mail Adresse ein."},...!this.leadData.hasAcceptPrivacy&&{hasAcceptPrivacy:"Bitte willigen Sie in die Kontaktaufnahme und Zusendung von Informationen gemäß unserer Datenschutzerklärung ein."}},e=this.errors,0===Object.keys(e).length&&e.constructor===Object;var e}renderIfNotHidden(e,t){return this.hiddenFields.includes(e)?"":t}handleSubmit(e,t){this.dispatchEvent(new CustomEvent("on-submit",{detail:{returnCallData:e,personalData:t}}))}async submit(){if(this._validateInput()){Qe(We.RETURN_CALL,Ye.PHONE_NUMBER_PROVIDED,this.impressionId),Qe(We.RETURN_CALL,Ye.EMAIL_PROVIDED,this.impressionId);const{hasAcceptPrivacy:e,...t}=this.leadData,o=this._topics().find((({value:e})=>e===this.topic)),i={callbackTimeOfDay:this.callbackTimeOfDay,topics:[this.topic],topicsOther:this.topicOther,...o.isCustom&&{topics:["OTHER"],topicsOther:o.text}};if(this.isInsideOfWidget)return void this.handleSubmit(i,t);const n={companyId:tt.companyId,origin:this.origin,...!!this.preConversionId&&{preConversionId:this.preConversionId},...!!this.invitationId&&{invitationId:this.invitationId},personalData:{...t},details:i,siteRequestQueryString:window.location.search,cookies:document.cookie.split("; ").filter((e=>/^_fb(c|p)=/.test(e))).reduce(((e,t)=>{const[o,i]=t.split("=");return e[o]=i,e}),{})};try{this.submitState=Be.SUBMIT;const e=await fetch("https://api.bottimmo.com/conversions/return-call",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!e.ok){throw(await e.json()).errors.includes("INVALID_PHONE_ERROR")&&(this.errors.phone="Bitte tragen Sie eine valide Telefonnummer ein."),new Error}{this.submitState=Be.SUBMITTED,this.errors={};const{conversion:{id:t,leadId:o}}=await e.json();!function(e,t,o,i){qe(e,Ge.CONVERSION_ACHIEVED,{conversionId:t,leadId:o}),je({impressionId:i,object:"widget",action:Ge.CONVERSION_ACHIEVED,campaign:e,attributes:{conversionId:t,leadId:o}})}(We.RETURN_CALL,t,o,this.impressionId)}}catch(e){this.submitState=Be.FAILED,this.errors.server="Etwas ist schief gelaufen"}}}confirmationComponent(){return j`
      <btm-message-box type="success" header="Vielen Dank f\u00FCr Ihr Interesse an einer telefonischen Beratung.">
        <div class="confirmation">
          <p>
            Wir haben Ihre Anfrage erhalten. Bitte \u00FCberpr\u00FCfen Sie Ihren
          Posteingang. Wir haben Ihnen einen E-Mail mit den Informationen zum
          gew\u00FCnschten R\u00FCckruf an folgende E-Mail-Adresse gesendet: ${this.leadData.email||""}
          </p>

          <p>
            <span class="font-bold">Wichtig:</span> \u00DCberpr\u00FCfen Sie auch Ihren Spam-Ordner nach Post von ${tt.fromEmail}.
          </p>

          <p>Ihr Team von <span class="font-bold">${tt.companyName}</span></p>
        </div>
      </btm-message-box>
    `}idleComponent(){return j` <!-- Time Select -->
      ${this.renderIfNotHidden("callbackTimeOfDay",j`
          <btm-checkbox-group
            label=${"Wann erreichen wir Sie am Besten?"}
            .items="${fe}"
            error=${this.errors.callbackTimeOfDay||""}
            name="callbackTimeOfDay"
            @on-change="${e=>this._setConversionDetails(e)}"
          ></btm-checkbox-group>
        `)}
      ${this.renderIfNotHidden("topic",j`
          <btm-select
            id="topic-select"
            name="topic"
            label=${"Worüber möchten Sie sprechen?"}
            .options="${this._topics()}"
            value=${this.topic}
            @on-change="${e=>this._setConversionDetails(e)}"
          ></btm-select>
        `)}
      ${this.renderIfNotHidden("topicOther",this._isTopicOther()?j`
              <btm-input
                id="topic-other-input"
                class="text-input"
                placeholder=${"Ihr Anliegen"}
                error=${this.errors.topicOther||""}
                name="topicOther"
                value=${this.topicOther||""}
                @on-change="${e=>this._setConversionDetails(e)}"
              ></btm-input>
            `:"")}

      <div class="two-col-row">
        ${this.renderIfNotHidden("firstname",j`
            <div class="col">
              <btm-input
                value=${this.leadData.firstname||""}
                id="firstname-input"
                class="text-input"
                label=${"Vorname"}
                placeholder=${"Ihr Vorname"}
                error=${this.errors.firstname||""}
                name="firstname"
                @on-change="${e=>this._setLeadData(e)}"
              ></btm-input>
            </div>
          `)}
        ${this.renderIfNotHidden("lastname",j`
            <div class="col">
              <btm-input
                value=${this.leadData.lastname||""}
                id="lastname-input"
                class="text-input"
                label=${"Nachname"}
                placeholder=${"Ihr Nachname"}
                error=${this.errors.lastname||""}
                name="lastname"
                @on-change="${e=>this._setLeadData(e)}"
              ></btm-input>
            </div>
          `)}
      </div>

      <div class="two-col-row">
        ${this.renderIfNotHidden("phone",j`
            <div class="col">
              <btm-phone
                nationalNumber=${this.leadData.nationalNumber||""}
                countryCallingCode=${this.leadData.countryCallingCode||""}
                id="phone-input"
                class="text-input"
                label=${"Telefonnummer"}
                placeholder=${"Ihre Telefonnummer"}
                error=${this.errors.phone||""}
                name="phone"
                @on-change="${e=>this._setLeadData(e)}"
              ></btm-phone>
            </div>
          `)}
        ${this.renderIfNotHidden("email",j`
            <div class="col">
              <btm-input
                value=${this.leadData.email||""}
                id="email-input"
                class="text-input"
                label=${"E-MAIL"}
                placeholder=${"Ihre E-Mail Adresse"}
                error=${this.errors.email||""}
                name="email"
                @on-change="${e=>this._setLeadData(e)}"
              ></btm-input>
            </div>
          `)}
      </div>

      <!-- Privacy Checkbox -->
      ${tt.doubleOptIn?j`
            <btm-checkbox
              style="margin-top: var(--size-5); padding-left: var(--size-2); padding-right: var(--size-2)"
              name="hasAcceptPrivacy"
              @on-change="${e=>this._setLeadData(e)}"
              error=${this.errors.hasAcceptPrivacy||""}
            >
              <span>
                Ich willige ein, zuk\u00FCnftig telefonisch und per E-Mail kontaktiert zu werden und Informationen
                    zugesendet zu bekommen. <br />Weitere Informationen, auch zu Ihrem Widerrufsrecht, finden Sie in
                    unserer <a href="${tt.privacyUrl}" target="_blank">Datenschutzerkl\u00E4rung</a>.
              </span>
            </btm-checkbox>
          `:j``}

      <!-- Validation Error Display -->
      <btm-message-box
        type="error"
        header="Bitte \u00FCberpr\u00FCfen Sie Ihre Eingaben:"
        .error="${{...this.errors}}"
      ></btm-message-box>

      <!-- Download Button -->
      <btm-button
        id="download-button"
        style="margin-top: var(--size-5)"
        inputStyle="width:100%"
        variant="primary"
        @on-click="${()=>this.submit()}"
        .loading="${this.submitState===Be.SUBMIT}"
      >
        <span>${this.isInsideOfWidget?"Abschicken":"Rückruf vereinbaren"}</span>
      </btm-button>`}render(){return j`
      <div class="card">
        <!-- Title and Icon -->
        ${this.hideHeader?"":j`<div class="header">
              <div class="header-icon">
                <btm-icon id="phone-icon" icon="phone"></btm-icon>
              </div>
              <div class="header-text">
                <p class="header-title">Telefonische Beratung</p>
                <p class="header-sub-title">Gerne sind wir pers\u00F6nlich f\u00FCr Sie da.</p>
              </div>
            </div>`}

        <slot></slot>

        ${this.submitState===Be.SUBMITTED?this.confirmationComponent():this.idleComponent()}
      </div>
    `}},e.BtmReturnCall.primary="#2DC3E8",e.BtmReturnCall.secondary="#474647",e.BtmReturnCall.doubleOptIn=JSON.parse("true"),e.BtmReturnCall.styles=[He,l`
      :host {
        --primary: ${a(tt.primary)};
        --secondary: ${a(tt.secondary)};
      }
    `],e.BtmReturnCall.companyName="Immobilien Seegerer",e.BtmReturnCall.companyId="6582fae3dbfbff5aef40b528",e.BtmReturnCall.fromEmail="info@immobilien-seegerer.de",e.BtmReturnCall.privacyUrl="https://www.immobilien-seegerer.de/datenschutzerklaerung",e.BtmReturnCall.topicsString="[{\"value\":\"PRICING\",\"text\":\"Preisfindung\",\"id\":\"69dc9dfd49cf430054b17673\"},{\"value\":\"CREDIT\",\"text\":\"Finanzierung\",\"id\":\"69dc9dfd49cf430054b17674\"},{\"value\":\"SALE\",\"text\":\"Verkauf\",\"id\":\"69dc9dfd49cf430054b17675\"},{\"value\":\"INHERITANCE\",\"text\":\"Erbschaft\",\"id\":\"69dc9dfd49cf430054b17676\"},{\"value\":\"DIVORCE\",\"text\":\"Scheidung\",\"id\":\"69dc9dfd49cf430054b17677\"},{\"value\":\"RENT\",\"text\":\"Vermietung\",\"id\":\"69dc9dfd49cf430054b17678\"},{\"value\":\"BUYING_INTEREST\",\"text\":\"Kaufinteresse\",\"id\":\"69dc9dfd49cf430054b17679\"},{\"value\":\"REPLACEMENT\",\"text\":\"Ersatzbeschaffung\",\"id\":\"69dc9dfd49cf430054b1767a\"},{\"value\":\"PARTIAL_SALE\",\"text\":\"Teilverkauf\",\"id\":\"69dc9dfd49cf430054b1767b\"},{\"value\":\"PROPERTY_TAX\",\"text\":\"Grundsteuer\",\"id\":\"69dc9dfd49cf430054b1767c\"},{\"value\":\"LIFE_ANNUITY\",\"text\":\"Leibrente\",\"id\":\"69dc9dfd49cf430054b1767d\"},{\"value\":\"OTHER\",\"text\":\"Sonstiges\",\"id\":\"69dc9dfd49cf430054b1767e\"}]",t([he({type:Boolean})],e.BtmReturnCall.prototype,"hideHeader",void 0),t([he({type:Array})],e.BtmReturnCall.prototype,"hiddenFields",void 0),t([he({type:String})],e.BtmReturnCall.prototype,"origin",void 0),t([he({type:String})],e.BtmReturnCall.prototype,"topic",void 0),t([he({type:String})],e.BtmReturnCall.prototype,"topicOther",void 0),t([he({type:Array})],e.BtmReturnCall.prototype,"callbackTimeOfDay",void 0),t([he({type:String})],e.BtmReturnCall.prototype,"preConversionId",void 0),t([he({type:String})],e.BtmReturnCall.prototype,"invitationId",void 0),t([he({type:Object})],e.BtmReturnCall.prototype,"leadData",void 0),t([he({type:Object})],e.BtmReturnCall.prototype,"errors",void 0),t([he({type:Boolean})],e.BtmReturnCall.prototype,"isInsideOfWidget",void 0),t([ue()],e.BtmReturnCall.prototype,"submitState",void 0),t([ue()],e.BtmReturnCall.prototype,"impressionId",void 0),t([he({type:Boolean})],e.BtmReturnCall.prototype,"embedded",void 0),e.BtmReturnCall=tt=t([ye("btm-return-call")],e.BtmReturnCall)}));
//# sourceMappingURL=btm-return-call.de-DE.umd.min.js.map
