UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

51 lines 85.5 kB
export const __rspack_esm_id=97816;export const __rspack_esm_ids=[97816];export const __webpack_modules__={380(t,e,i){i.d(e,{D:()=>s,P:()=>r});i(74423);var a=i(67932),o=i(46927),n=i(96029);const r=t=>t.first_weekday===o.zt.language?"weekInfo"in Intl.Locale.prototype?new Intl.Locale(t.language).weekInfo.firstDay%7:(0,a.S)(t.language)%7:n.Z.includes(t.first_weekday)?n.Z.indexOf(t.first_weekday):1,s=t=>{const e=r(t);return n.Z[e]}},95747(t,e,i){i.a(t,async function(t,a){try{i.d(e,{CL:()=>b,GH:()=>x,Rl:()=>g,ZS:()=>v,aQ:()=>f,r6:()=>d,yg:()=>w});var o=i(74487),n=i(22786),r=i(72487),s=i(30162),l=i(8480),h=i(69543),c=t([o,l,r,s]);[o,l,r,s]=c.then?(await c)():c;const d=(t,e,i)=>p(e,i.time_zone).format(t),p=(0,n.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"long",day:"numeric",hour:(0,h.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,h.J)(t)?"h12":"h23",timeZone:(0,l.wj)(t.time_zone,e)})),g=t=>u().format(t),u=(0,n.A)(()=>new Intl.DateTimeFormat(void 0,{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"})),f=(t,e,i)=>m(e,i.time_zone).format(t),m=(0,n.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"short",day:"numeric",hour:(0,h.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,h.J)(t)?"h12":"h23",timeZone:(0,l.wj)(t.time_zone,e)})),v=(t,e,i)=>y(e,i.time_zone).format(t),y=(0,n.A)((t,e)=>new Intl.DateTimeFormat(t.language,{month:"short",day:"numeric",hour:(0,h.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,h.J)(t)?"h12":"h23",timeZone:(0,l.wj)(t.time_zone,e)})),b=(t,e,i)=>(new Date).getFullYear()===t.getFullYear()?v(t,e,i):f(t,e,i),w=(t,e,i)=>_(e,i.time_zone).format(t),_=(0,n.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"long",day:"numeric",hour:(0,h.J)(t)?"numeric":"2-digit",minute:"2-digit",second:"2-digit",hourCycle:(0,h.J)(t)?"h12":"h23",timeZone:(0,l.wj)(t.time_zone,e)})),x=(t,e,i)=>`${(0,r.zB)(t,e,i)}, ${(0,s.fU)(t,e,i)}`;a()}catch(t){a(t)}})},98975(t,e,i){i.a(t,async function(t,a){try{i.d(e,{K:()=>h});var o=i(74487),n=i(22786),r=i(63927),s=t([o,r]);[o,r]=s.then?(await s)():s;const l=(0,n.A)(t=>new Intl.RelativeTimeFormat(t.language,{numeric:"auto"})),h=(t,e,i,a=!0)=>{const o=(0,r.x)(t,i,e);return a?l(e).format(o.value,o.unit):Intl.NumberFormat(e.language,{style:"unit",unit:o.unit,unitDisplay:"long"}).format(Math.abs(o.value))};a()}catch(t){a(t)}})},8480(t,e,i){i.a(t,async function(t,a){try{i.d(e,{fL:()=>c,n2:()=>d,wj:()=>p});var o=i(74487),n=i(29079),r=i(46927),s=t([o]);o=(s.then?(await s)():s)[0];const l=Intl.DateTimeFormat?.().resolvedOptions?.().timeZone,h=l&&("UTC"===l||"Etc/UTC"===l||l in n)?l:void 0,c=14881==i.j?void 0!==h:null,d=h??"UTC",p=(t,e)=>t===r.Wj.local&&h?d:e;a()}catch(t){a(t)}})},96029(t,e,i){i.d(e,{Tq:()=>r,Z:()=>o,ZV:()=>a,sj:()=>n});const a=["sun","mon","tue","wed","thu","fri","sat"],o=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],n={0:"sun",1:"mon",2:"tue",3:"wed",4:"thu",5:"fri",6:"sat"},r={sun:"sunday",mon:"monday",tue:"tuesday",wed:"wednesday",thu:"thursday",fri:"friday",sat:"saturday"}},93905(t,e,i){i.d(e,{I:()=>n});i(44114),i(18111),i(7588),i(69112),i(33110);class a{addFromStorage(t){if(!this._storage[t]){const e=this.storage.getItem(t);e&&(this._storage[t]=JSON.parse(e))}}subscribeChanges(t,e){return this._listeners[t]?this._listeners[t].push(e):this._listeners[t]=[e],()=>{this.unsubscribeChanges(t,e)}}unsubscribeChanges(t,e){if(!(t in this._listeners))return;const i=this._listeners[t].indexOf(e);-1!==i&&this._listeners[t].splice(i,1)}hasKey(t){return t in this._storage}getValue(t){return this._storage[t]}setValue(t,e){const i=this._storage[t];this._storage[t]=e;try{void 0===e?this.storage.removeItem(t):this.storage.setItem(t,JSON.stringify(e))}catch(t){}finally{this._listeners[t]&&this._listeners[t].forEach(t=>t(i,e))}}constructor(t=window.localStorage){this._storage={},this._listeners={},this.storage=t,this.storage===window.localStorage&&window.addEventListener("storage",t=>{t.key&&this.hasKey(t.key)&&(this._storage[t.key]=t.newValue?JSON.parse(t.newValue):t.newValue,this._listeners[t.key]&&this._listeners[t.key].forEach(e=>e(t.oldValue?JSON.parse(t.oldValue):t.oldValue,this._storage[t.key])))})}}const o={};function n(t){return(e,i)=>{if("object"==typeof i)throw new Error("This decorator does not support this compilation type.");const n=t.storage||"localStorage";let r;n&&n in o?r=o[n]:(r=new a(window[n]),o[n]=r);const s=t.key||String(i);r.addFromStorage(s);const l=!1!==t.subscribe?t=>r.subscribeChanges(s,(e,a)=>{t.requestUpdate(i,e)}):void 0,h=()=>r.hasKey(s)?t.deserializer?t.deserializer(r.getValue(s)):r.getValue(s):void 0,c=(e,a)=>{let o;t.state&&(o=h()),r.setValue(s,t.serializer?t.serializer(a):a),t.state&&e.requestUpdate(i,o)},d=e.performUpdate;if(e.performUpdate=function(){this.__initialized=!0,d.call(this)},t.subscribe){const t=e.connectedCallback,i=e.disconnectedCallback;e.connectedCallback=function(){t.call(this);const e=this;e.__unbsubLocalStorage||(e.__unbsubLocalStorage=l?.(this))},e.disconnectedCallback=function(){i.call(this);this.__unbsubLocalStorage?.(),this.__unbsubLocalStorage=void 0}}const p=Object.getOwnPropertyDescriptor(e,i);let g;if(void 0===p)g={get:()=>h(),set(t){(this.__initialized||void 0===h())&&c(this,t)},configurable:!0,enumerable:!0};else{const t=p.set;g={...p,get:()=>h(),set(e){(this.__initialized||void 0===h())&&c(this,e),t?.call(this,e)}}}Object.defineProperty(e,i,g)}}},68348(t,e,i){i.d(e,{u:()=>a});i(18111),i(13579);const a=t=>{if(t.some(t=>"tagName"in t&&("HA-MENU"===t.tagName||"HA-CODE-EDITOR"===t.tagName)))return!1;const e=t[0];if("TEXTAREA"===e.tagName||"HA-SELECT"===e.parentElement?.tagName||"HA-DROPDOWN"===e.parentElement?.tagName)return!1;if("INPUT"!==e.tagName)return!0;switch(e.type){case"button":case"checkbox":case"hidden":case"radio":case"range":return!0;default:return!1}}},76830(t,e,i){i.d(e,{d:()=>a});i(18111),i(20116);const a=(t,e=!0)=>{if(t.defaultPrevented||0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey)return;const i=t.composedPath().find(t=>"A"===t.tagName);if(!i||i.target||i.hasAttribute("download")||"external"===i.getAttribute("rel"))return;let a=i.href;if(!a||-1!==a.indexOf("mailto:"))return;const o=window.location,n=o.origin||o.protocol+"//"+o.host;return a.startsWith(n)&&(a=a.slice(n.length),"#"!==a)?(e&&t.preventDefault(),a):void 0}},57237(t,e,i){i.d(e,{d:()=>a});const a=t=>t.stopPropagation()},19459(t,e,i){i.d(e,{b:()=>a});i(45367),i(92731),i(69479),i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698);const a=(t,e,i)=>{if(t===e)return!0;if(t&&e&&"object"==typeof t&&"object"==typeof e){if(t.constructor!==e.constructor)return!1;let o,n;if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(o=n;0!==o--;)if(!a(t[o],e[o],i))return!1;return!0}if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(o of t.entries())if(!e.has(o[0]))return!1;for(o of t.entries())if(!a(o[1],e.get(o[0]),i))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(o of t.entries())if(!e.has(o[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(e)){if(n=t.length,n!==e.length)return!1;for(o=n;0!==o--;)if(t[o]!==e[o])return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();const r=Object.keys(t);if(n=r.length,n!==Object.keys(e).length)return!1;for(o=n;0!==o--;)if(!Object.prototype.hasOwnProperty.call(e,r[o]))return!1;for(o=n;0!==o--;){const n=r[o];if(!a(t[n],e[n],i))return!1}if(i?.compareSymbols){const o=Object.getOwnPropertySymbols(t),n=Object.getOwnPropertySymbols(e);if(o.length!==n.length)return!1;for(const n of o){if(!Object.prototype.hasOwnProperty.call(e,n))return!1;if(!a(t[n],e[n],i))return!1}}return!0}return t!=t&&e!=e}},63927(t,e,i){i.a(t,async function(t,a){try{i.d(e,{x:()=>d});var o=i(6946),n=i(52640),r=i(38684),s=i(380);const l=1e3,h=60,c=60*h;function d(t,e=Date.now(),i,a={}){const d={...p,...a||{}},g=(+t-+e)/l;if(Math.abs(g)<d.second)return{value:Math.round(g),unit:"second"};const u=g/h;if(Math.abs(u)<d.minute)return{value:Math.round(u),unit:"minute"};const f=g/c;if(Math.abs(f)<d.hour)return{value:Math.round(f),unit:"hour"};const m=new Date(t),v=new Date(e);m.setHours(0,0,0,0),v.setHours(0,0,0,0);const y=(0,o.c)(m,v);if(0===y)return{value:Math.round(f),unit:"hour"};if(Math.abs(y)<d.day)return{value:y,unit:"day"};const b=(0,s.P)(i),w=(0,n.k)(m,{weekStartsOn:b}),_=(0,n.k)(v,{weekStartsOn:b}),x=(0,r.I)(w,_);if(0===x)return{value:y,unit:"day"};if(Math.abs(x)<d.week)return{value:x,unit:"week"};const C=m.getFullYear()-v.getFullYear(),$=12*C+m.getMonth()-v.getMonth();return 0===$?{value:x,unit:"week"}:Math.abs($)<d.month||0===C?{value:$,unit:"month"}:{value:Math.round(C),unit:"year"}}const p={second:59,minute:59,hour:22,day:5,week:4,month:11};a()}catch(g){a(g)}})},64481(t,e,i){i.d(e,{D:()=>o,J:()=>r});i(64979);let a=!1;try{a="true"===window.localStorage.getItem("disableViewTransition")}catch{}const o=t=>{a=t},n=t=>{if(!(t=>(t instanceof DOMException||t instanceof Error)&&"AbortError"===t.name)(t))throw t},r=t=>{if(!document.startViewTransition||a)return t(!1),Promise.resolve();let e=!1;try{const i=document.startViewTransition(()=>{e=!0,t(!0)});return i.ready.catch(n),i.finished.catch(n)}catch(i){return console.warn("View transition failed, falling back to direct execution.",i),e?Promise.reject(i):(t(!1),Promise.resolve())}}},70947(t,e,i){var a=i(62826),o=i(50759),n=(i(38625),i(5124)),r=i(22441);i(67094);class s extends o.A{renderCheckboxIcon(){return n.qy` <ha-svg-icon id="check" part="checkmark" .path="${this.checked?"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z":"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z"}"></ha-svg-icon> `}static get styles(){return[o.A.styles,n.AH`:host{min-height:var(--ha-space-10)}#check{visibility:visible;flex-shrink:0}#icon ::slotted(*){color:var(--ha-color-on-neutral-normal)}:host([variant=danger]) #icon ::slotted(*){color:var(--ha-color-on-danger-quiet)}:host([selected]){font-weight:var(--ha-font-weight-medium);color:var(--primary-color);background-color:var(--ha-color-fill-primary-quiet-resting);--icon-primary-color:var(--primary-color)}:host([selected]:hover){background-color:var(--ha-color-fill-primary-quiet-hover)}`]}constructor(...t){super(...t),this.selected=!1}}(0,a.Cg)([(0,r.MZ)({type:Boolean,reflect:!0})],s.prototype,"selected",void 0),s=(0,a.Cg)([(0,r.EM)("ha-dropdown-item")],s)},29823(t,e,i){i.a(t,async function(t,e){try{var a=i(62826),o=i(52254),n=i(5124),r=i(22441),s=t([o]);o=(s.then?(await s)():s)[0];class l extends o.A{get anchorElement(){return this.popup?.anchor}set anchorElement(t){this.popup&&(this.popup.anchor&&"ha-icon-button"===this.popup.anchor.localName&&(this.popup.anchor.selected=!1),this.popup.anchor=t)}getTrigger(){return this.anchorElement?this.anchorElement:super.getTrigger()}async showMenu(){await super.showMenu();const t=this.getTrigger();t&&"ha-icon-button"===t.localName&&(t.selected=!0)}async hideMenu(){const t=this.getTrigger();t&&"ha-icon-button"===t.localName&&(t.selected=!1),await super.hideMenu()}static get styles(){return[o.A.styles,n.AH`:host{font-size:var(--ha-dropdown-font-size, var(--ha-font-size-m));--wa-color-surface-raised:var(
            --card-background-color,
            var(--ha-dialog-surface-background, var(--mdc-theme-surface, #fff)),
          )}#menu{padding:var(--ha-space-1)}wa-popup::part(popup){z-index:200}`]}constructor(...t){super(...t),this.dropdownTag="ha-dropdown",this.dropdownItemTag="ha-dropdown-item"}}(0,a.Cg)([(0,r.MZ)({attribute:!1})],l.prototype,"dropdownTag",void 0),(0,a.Cg)([(0,r.MZ)({attribute:!1})],l.prototype,"dropdownItemTag",void 0),l=(0,a.Cg)([(0,r.EM)("ha-dropdown")],l),e()}catch(t){e(t)}})},54276(t,e,i){var a=i(62826),o=i(76482),n=i(91382),r=i(96245),s=i(5124),l=i(22441);class h extends n.n{attach(t){super.attach(t),this.attachableTouchController.attach(t)}disconnectedCallback(){super.disconnectedCallback(),this.hovered=!1,this.pressed=!1}detach(){super.detach(),this.attachableTouchController.detach()}_onTouchControlChange(t,e){t?.removeEventListener("touchend",this._handleTouchEnd),e?.addEventListener("touchend",this._handleTouchEnd)}constructor(...t){super(...t),this.attachableTouchController=new o.i(this,this._onTouchControlChange.bind(this)),this._handleTouchEnd=()=>{this.disabled||super.endPressAnimation()}}}h.styles=[r.R,s.AH`:host{--md-ripple-hover-opacity:var(--ha-ripple-hover-opacity, 0.08);--md-ripple-pressed-opacity:var(--ha-ripple-pressed-opacity, 0.12);--md-ripple-hover-color:var(
          --ha-ripple-hover-color,
          var(--ha-ripple-color, var(--secondary-text-color))
        );--md-ripple-pressed-color:var(
          --ha-ripple-pressed-color,
          var(--ha-ripple-color, var(--secondary-text-color))
        )}`],h=(0,a.Cg)([(0,l.EM)("ha-ripple")],h)},34127(t,e,i){i.a(t,async function(t,e){try{var a=i(62826),o=i(52630),n=i(5124),r=i(22441),s=t([o]);o=(s.then?(await s)():s)[0];class l extends o.A{static get styles(){return[o.A.styles,n.AH`:host{--wa-tooltip-background-color:var(
            --ha-tooltip-background-color,
            var(--ha-color-surface-default)
          );--wa-tooltip-content-color:var(
            --ha-tooltip-text-color,
            var(--primary-text-color)
          );--wa-tooltip-font-family:var(
            --ha-tooltip-font-family,
            var(--ha-font-family-body)
          );--wa-tooltip-font-size:var(
            --ha-tooltip-font-size,
            var(--ha-font-size-m)
          );--wa-tooltip-font-weight:var(
            --ha-tooltip-font-weight,
            var(--ha-font-weight-medium)
          );--wa-tooltip-line-height:var(
            --ha-tooltip-line-height,
            var(--ha-line-height-condensed)
          );--wa-tooltip-padding:var(--ha-tooltip-padding, var(--ha-space-2));--wa-tooltip-border-radius:var(
            --ha-tooltip-border-radius,
            var(--ha-border-radius-md)
          );--wa-tooltip-arrow-size:var(--ha-tooltip-arrow-size, 0px);--wa-tooltip-border-width:0px;--wa-z-index-tooltip:1000}.tooltip::part(popup){animation-duration:var(--ha-tooltip-animation-duration, 0)}.body{box-shadow:var(--ha-tooltip-box-shadow,var(--ha-box-shadow-m))}`]}constructor(...t){super(...t),this.showDelay=350,this.hideDelay=150}}(0,a.Cg)([(0,r.MZ)({attribute:"show-delay",type:Number})],l.prototype,"showDelay",void 0),(0,a.Cg)([(0,r.MZ)({attribute:"hide-delay",type:Number})],l.prototype,"hideDelay",void 0),l=(0,a.Cg)([(0,r.EM)("ha-tooltip")],l),e()}catch(t){e(t)}})},91485(t,e,i){i.a(t,async function(t,a){try{i.d(e,{U:()=>_});var o=i(62826),n=(i(86137),i(30006)),r=i(92070),s=i(35211),l=i(5124),h=i(22441),c=i(6412),d=i(63672),p=i(57237),g=i(22792),u=i(26300),f=(i(67094),i(34127)),m=i(53305),v=t([n,u,f]);[n,u,f]=v.then?(await v)():v;const y="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",b="M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z",w="M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z";class _ extends((0,m.w)(l.WF)){get _formControl(){return this._input}showPicker(){this._input?.showPicker()}stepUp(){this._input?.stepUp()}stepDown(){this._input?.stepDown()}async firstUpdated(t){super.firstUpdated(t),this.insetLabel||(await(this._input?.updateComplete),this._syncStartSlotWidth())}render(){const t=!this.label&&this._hasSlotController.test("label"),e=!this.hint&&this._hasSlotController.test("hint"),i=this._hasSlotController.test("start");return l.qy` <wa-input .type="${this.type}" .value="${this.value??null}" .withClear="${this.withClear}" .placeholder="${this.placeholder}" .readonly="${this.readonly}" .passwordToggle="${this.passwordToggle}" .passwordVisible="${this.passwordVisible}" .withoutSpinButtons="${this.withoutSpinButtons}" .required="${this.required}" .pattern="${this.pattern}" .minlength="${this.minlength}" .maxlength="${this.maxlength}" .min="${this.min}" .max="${this.max}" .step="${this.step}" .autocapitalize="${this.autocapitalize||void 0}" .autocorrect="${this.autocorrect?"on":"off"}" .autocomplete="${this.autocomplete}" .autofocus="${this.autofocus}" .enterkeyhint="${this.enterkeyhint||void 0}" .spellcheck="${this.spellcheck}" .inputmode="${this.inputmode||void 0}" .name="${this.name}" .disabled="${this.disabled}" class="${(0,c.H)({input:!0,invalid:this.invalid||this._invalid,"label-raised":void 0!==this.value&&""!==this.value||this.label&&this.placeholder||i&&this.insetLabel,"no-label":!this.label,"hint-hidden":!(this.hint||e||this.required||this._invalid||this.invalid)})}" @input="${this._handleInput}" @change="${this._handleChange}" @blur="${this._handleBlur}" @wa-invalid="${this._handleInvalid}" exportparts="base:wa-base, hint:wa-hint, input:wa-input"> ${this.label||t?l.qy`<slot name="label" slot="label">${this.label?this._renderLabel(this.label,this.required):l.s6}</slot>`:l.s6} <slot name="start" slot="start" @slotchange="${this._syncStartSlotWidth}"> ${this.renderStartDefault()} </slot> <slot name="end" slot="end"> ${this.renderEndDefault()} </slot> <slot name="clear-button" slot="clear-button"> <ha-icon-button @click="${this._handleClearClick}" .label="${this.i18n?.localize?.("ui.components.input.clear")||"Clear"}" .path="${y}"></ha-icon-button> </slot> <slot name="password-toggle-button" slot="password-toggle-button"> <ha-icon-button @keydown="${p.d}" @click="${this._handlePasswordToggle}" .label="${this.i18n?.localize?.("ui.components.input."+(this.passwordVisible?"hide_password":"show_password"))||(this.passwordVisible?"Hide password":"Show password")}" .path="${this.passwordVisible?w:b}"></ha-icon-button> </slot> <div slot="hint" class="${(0,c.H)({error:this.invalid||this._invalid})}" role="${(0,d.J)(this.invalid||this._invalid?"alert":void 0)}" aria-live="polite"> ${this._invalid||this.invalid?this.validationMessage||this._input?.validationMessage:this.hint||(e?l.qy`<slot name="hint"></slot>`:l.s6)} </div> </wa-input> `}renderStartDefault(){return l.s6}renderEndDefault(){return l.s6}_handleClearClick(){this._input?.clear()}_handlePasswordToggle(){this.passwordVisible=!this.passwordVisible}constructor(...t){super(...t),this.appearance="material",this.type="text",this.withClear=!1,this.passwordToggle=!1,this.passwordVisible=!1,this.withoutSpinButtons=!1,this.autocorrect=!1,this.insetLabel=!1,this._hasSlotController=new r.X(this,"label","hint","input","start"),this._syncStartSlotWidth=()=>{const t=this._input?.shadowRoot?.querySelector('[part~="start"]'),e=t?.offsetWidth??0;e>0&&!this.insetLabel?(this.style.setProperty("--start-slot-width",`calc(${e}px + var(--ha-space-1))`),this.style.setProperty("--input-padding-inline-start","var(--ha-space-1)")):(this.style.removeProperty("--start-slot-width"),this.style.removeProperty("--input-padding-inline-start"))}}}_.styles=[m.N,l.AH`:host{display:flex;align-items:flex-start;padding-top:var(--ha-input-padding-top);padding-bottom:var(--ha-input-padding-bottom,var(--ha-space-2));text-align:var(--ha-input-text-align,start)}:host([appearance=outlined]){padding-bottom:var(--ha-input-padding-bottom)}wa-input::part(label){padding-inline-start:calc(var(--start-slot-width,0px) + var(--ha-space-4));padding-inline-end:var(--ha-space-4);padding-top:var(--ha-space-5)}:host([appearance=material]:focus-within) wa-input::part(label){color:var(--primary-color)}:host(:focus-within) wa-input::part(label),:host([type=date]) wa-input::part(label),wa-input.label-raised::part(label){padding-top:var(--ha-space-3);font-size:var(--ha-font-size-xs)}wa-input::part(base){height:56px;padding:0 var(--ha-space-4)}:host([appearance=outlined]) wa-input.no-label::part(base){height:32px;padding:0 var(--ha-space-2)}:host([appearance=outlined]) wa-input::part(base){border:1px solid var(--ha-color-border-neutral-quiet);background-color:var(--card-background-color);border-radius:var(--ha-border-radius-md);transition:border-color var(--wa-transition-normal) ease-in-out}:host([appearance=material]) ::part(base)::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--ha-color-border-neutral-loud);transition:height var(--wa-transition-normal) ease-in-out,background-color var(--wa-transition-normal) ease-in-out}:host([appearance=material]:focus-within) wa-input::part(base)::after{height:2px;background-color:var(--primary-color)}:host([appearance=material]) wa-input.invalid:not([disabled])::part(base)::after,:host([appearance=material]:focus-within) wa-input.invalid::part(base)::after{background-color:var(--ha-color-border-danger-normal)}wa-input::part(input){padding-top:var(--ha-space-3);padding-inline-start:var(--input-padding-inline-start,0)}wa-input.no-label::part(input){padding-top:0}:host([type=color]) wa-input::part(input){padding-top:var(--ha-space-6);padding-bottom:2px;cursor:pointer}:host([type=color]) wa-input.no-label::part(input){padding:var(--ha-space-2)}:host([type=color]) wa-input.no-label::part(base){padding:0}wa-input::part(input)::placeholder{color:var(--ha-color-neutral-60)}wa-input::part(base):hover{background-color:var(--ha-color-form-background-hover)}:host([appearance=outlined]) wa-input::part(base):hover{border-color:var(--ha-color-border-neutral-normal)}:host([appearance=outlined]:focus-within) wa-input::part(base){border-color:var(--primary-color)}wa-input:disabled::part(base){background-color:var(--ha-color-form-background-disabled)}wa-input:disabled::part(label){opacity:.5}wa-input::part(end){color:var(--ha-color-text-secondary)}ha-icon-button{display:flex;align-items:center;color:var(--ha-color-text-secondary)}:host([appearance=outlined]) wa-input.no-label{--ha-icon-button-size:24px;--mdc-icon-size:18px}`],(0,o.Cg)([(0,h.MZ)({reflect:!0})],_.prototype,"appearance",void 0),(0,o.Cg)([(0,h.MZ)({reflect:!0})],_.prototype,"type",void 0),(0,o.Cg)([(0,h.MZ)({type:Boolean,attribute:"with-clear"})],_.prototype,"withClear",void 0),(0,o.Cg)([(0,h.MZ)({type:Boolean,attribute:"password-toggle"})],_.prototype,"passwordToggle",void 0),(0,o.Cg)([(0,h.MZ)({type:Boolean,attribute:"password-visible"})],_.prototype,"passwordVisible",void 0),(0,o.Cg)([(0,h.MZ)({type:Boolean,attribute:"without-spin-buttons"})],_.prototype,"withoutSpinButtons",void 0),(0,o.Cg)([(0,h.MZ)()],_.prototype,"pattern",void 0),(0,o.Cg)([(0,h.MZ)()],_.prototype,"min",void 0),(0,o.Cg)([(0,h.MZ)()],_.prototype,"max",void 0),(0,o.Cg)([(0,h.MZ)()],_.prototype,"step",void 0),(0,o.Cg)([(0,h.MZ)({type:Boolean})],_.prototype,"autocorrect",void 0),(0,o.Cg)([(0,h.MZ)({type:Boolean,attribute:"inset-label"})],_.prototype,"insetLabel",void 0),(0,o.Cg)([(0,h.P)("wa-input")],_.prototype,"_input",void 0),(0,o.Cg)([(0,h.wk)(),(0,s.Fg)({context:g.D5,subscribe:!0})],_.prototype,"i18n",void 0),_=(0,o.Cg)([(0,h.EM)("ha-input")],_),a()}catch(t){a(t)}})},53305(t,e,i){i.d(e,{w:()=>l,N:()=>h});var a=i(62826),o=i(5124),n=i(22441),r=i(22786);i(74423);const s=Boolean(globalThis.ElementInternals)&&globalThis.HTMLElement?.prototype.attachInternals?.toString().includes("[native code]"),l=t=>{class e extends t{get _formControl(){throw new Error("_formControl getter must be implemented by subclass")}select(){this._formControl?.select()}setSelectionRange(t,e,i){this._formControl?.setSelectionRange(t,e,i)}setRangeText(t,e,i,a){this._formControl?.setRangeText(t,e,i,a)}checkValidity(){return!s||(this._formControl?.checkValidity()??!0)}reportValidity(){const t=this.checkValidity();return this._invalid=!t,t}_handleInput(){this.value=this._formControl?.value??void 0,this._invalid&&this._formControl?.checkValidity()&&(this._invalid=!1)}_handleChange(){this.value=this._formControl?.value??void 0}_handleBlur(){this.autoValidate&&(this._invalid=!this._formControl?.checkValidity())}_handleInvalid(){this._invalid=!0}constructor(...t){super(...t),this.label="",this.hint="",this.placeholder="",this.readonly=!1,this.required=!1,this.autocapitalize="",this.autofocus=!1,this.spellcheck=!0,this.inputmode="",this.enterkeyhint="",this.disabled=!1,this.validationMessage="",this.autoValidate=!1,this.invalid=!1,this._invalid=!1,this._requiredMarkerCSSVar="--ha-input-required-marker",this._renderLabel=(0,r.A)((t,e)=>{if(!e)return t;let i=getComputedStyle(this).getPropertyValue(this._requiredMarkerCSSVar);return i||(i="*"),i.startsWith('"')&&i.endsWith('"')&&(i=i.slice(1,-1)),i?`${t}${i}`:t})}}return e.shadowRootOptions={mode:"open",delegatesFocus:!0},(0,a.Cg)([(0,n.MZ)()],e.prototype,"value",void 0),(0,a.Cg)([(0,n.MZ)()],e.prototype,"label",void 0),(0,a.Cg)([(0,n.MZ)()],e.prototype,"hint",void 0),(0,a.Cg)([(0,n.MZ)()],e.prototype,"placeholder",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],e.prototype,"readonly",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],e.prototype,"required",void 0),(0,a.Cg)([(0,n.MZ)({type:Number})],e.prototype,"minlength",void 0),(0,a.Cg)([(0,n.MZ)({type:Number})],e.prototype,"maxlength",void 0),(0,a.Cg)([(0,n.MZ)()],e.prototype,"autocapitalize",void 0),(0,a.Cg)([(0,n.MZ)()],e.prototype,"autocomplete",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],e.prototype,"autofocus",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],e.prototype,"spellcheck",void 0),(0,a.Cg)([(0,n.MZ)()],e.prototype,"inputmode",void 0),(0,a.Cg)([(0,n.MZ)()],e.prototype,"enterkeyhint",void 0),(0,a.Cg)([(0,n.MZ)()],e.prototype,"name",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],e.prototype,"disabled",void 0),(0,a.Cg)([(0,n.MZ)({attribute:"validation-message"})],e.prototype,"validationMessage",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean,attribute:"auto-validate"})],e.prototype,"autoValidate",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],e.prototype,"invalid",void 0),(0,a.Cg)([(0,n.wk)()],e.prototype,"_invalid",void 0),e},h=o.AH`.input{flex:1;min-width:0;--wa-transition-fast:var(--wa-transition-normal);position:relative}.input::part(label){position:absolute;top:0;font-weight:var(--ha-font-weight-normal);font-family:var(--ha-font-family-body);transition:all var(--wa-transition-normal) ease-in-out;color:var(--secondary-text-color);line-height:var(--ha-line-height-condensed);z-index:1;pointer-events:none;font-size:var(--ha-font-size-m)}.input.invalid:not([disabled])::part(label),:host(:focus-within) .input.invalid::part(label){color:var(--ha-color-fill-danger-loud-resting)}.input::part(base){background-color:var(--ha-color-form-background);border-top-left-radius:var(--ha-border-radius-sm);border-top-right-radius:var(--ha-border-radius-sm);border-bottom-left-radius:var(--ha-border-radius-square);border-bottom-right-radius:var(--ha-border-radius-square);border:none;position:relative;transition:background-color var(--wa-transition-normal) ease-in-out}:host(:focus-within) .input::part(base){outline:0}.input::part(hint){min-height:var(--ha-space-5);margin-block-start:0;margin-inline-start:var(--ha-space-3);font-size:var(--ha-font-size-s);display:flex;align-items:center;color:var(--ha-color-text-secondary)}.input.hint-hidden::part(hint){height:0;min-height:0}.error{color:var(--ha-color-on-danger-quiet)}`},82e3(t,e,i){i.d(e,{D5:()=>a,Fy:()=>r,Gk:()=>h,Hg:()=>o,Y_:()=>c,ds:()=>l,e0:()=>n,ec:()=>s});i(74423),i(18111),i(61701),i(33110);const a=14881==i.j?`${location.protocol}//${location.host}`:null,o=t=>t.map(t=>{if("string"!==t.type)return t;switch(t.name){case"username":return{...t,autocomplete:"username",autofocus:!0};case"password":return{...t,autocomplete:"current-password"};case"code":return{...t,autocomplete:"one-time-code",autofocus:!0};default:return t}}),n=(t,e)=>t.callWS({type:"auth/sign_path",path:e}),r=async(t,e,i,a)=>t.callWS({type:"config/auth_provider/homeassistant/create",user_id:e,username:i,password:a}),s=(t,e,i)=>t.callWS({type:"config/auth_provider/homeassistant/change_password",current_password:e,new_password:i}),l=(t,e,i)=>t.callWS({type:"config/auth_provider/homeassistant/admin_change_password",user_id:e,password:i}),h=(t,e,i)=>t.callWS({type:"config/auth_provider/homeassistant/admin_change_username",user_id:e,username:i}),c=(t,e,i)=>t.callWS({type:"auth/delete_all_refresh_tokens",token_type:e,delete_current_token:i})},71606(t,e,i){i.d(e,{f:()=>o,o:()=>a});i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698);const a=new Set(["automation","script","scene","group"]),o=(t,e,i)=>t.callWS({type:"search/related",item_type:e,item_id:i})},42262(t,e,i){i.d(e,{$:()=>a,l:()=>o});const a=t=>t.callWS({type:"usb/scan"}),o=t=>t.callWS({type:"usb/list_serial_ports"})},81310(t,e,i){i.a(t,async function(t,e){try{var a=i(62826),o=i(5124),n=i(22441),r=i(6412),s=i(26218),l=i(91926),h=i(90248),c=i(2054),d=i(14503),p=t([h,c]);[h,c]=p.then?(await p)():p;class g extends o.WF{render(){return o.qy` <div class="toolbar ${(0,r.H)({narrow:this.narrow})}"> <div class="toolbar-content"> ${this.mainPage||history.state?.root?o.qy` <ha-menu-button .hass="${this.hass}" .narrow="${this.narrow}"></ha-menu-button> `:this.backPath?o.qy` <ha-icon-button-arrow-prev href="${this.backPath}" .hass="${this.hass}"></ha-icon-button-arrow-prev> `:o.qy` <ha-icon-button-arrow-prev .hass="${this.hass}" @click="${this._backTapped}"></ha-icon-button-arrow-prev> `} <div class="main-title"> <slot name="header">${this.header}</slot> </div> <slot name="toolbar-icon"></slot> </div> </div> <div class="${(0,r.H)({content:!0,"ha-scrollbar":this.scrollable,"not-scrollable":!this.scrollable})}" @scroll="${this._saveScrollPos}"> <slot></slot> </div> <div id="fab"> <slot name="fab"></slot> </div> `}_saveScrollPos(t){this._savedScrollPos=t.target.scrollTop}_backTapped(){this.backCallback?this.backCallback():(0,l.OE)()}static get styles(){return[d.dp,o.AH`:host{display:block;height:100%;background-color:var(--primary-background-color);overflow:hidden;position:relative}:host([narrow]){width:100%;position:fixed}.toolbar{background-color:var(--app-header-background-color);padding-top:var(--safe-area-inset-top);padding-right:var(--safe-area-inset-right)}:host([narrow]) .toolbar{padding-left:var(--safe-area-inset-left)}.toolbar-content{display:flex;align-items:center;font-size:var(--ha-font-size-xl);height:var(--header-height);font-weight:var(--ha-font-weight-normal);color:var(--app-header-text-color,#fff);border-bottom:var(--app-header-border-bottom,none);box-sizing:border-box;padding:8px 12px}.toolbar a{color:var(--sidebar-text-color);text-decoration:none}::slotted([slot=toolbar-icon]),ha-icon-button-arrow-prev,ha-menu-button{display:flex;align-items:center;pointer-events:auto;color:var(--sidebar-icon-color)}.main-title{margin-inline-start:var(--ha-space-6);line-height:var(--ha-line-height-normal);min-width:0;flex-grow:1;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.narrow .main-title{margin-inline-start:var(--ha-space-2)}.content{position:relative;width:calc(100% - var(--safe-area-inset-right,0px));height:calc(100% - 1px - var(--header-height,0px) - var(--safe-area-inset-top,0px) - var(--safe-area-inset-bottom,0px));padding-bottom:var(--safe-area-inset-bottom,0px);margin-right:var(--safe-area-inset-right);overflow-y:auto;overflow:auto;-webkit-overflow-scrolling:touch}.content.not-scrollable{overflow:hidden;display:flex;flex-direction:column}:host([narrow]) .content{width:calc(100% - var(--safe-area-inset-left,0px) - var(--safe-area-inset-right,0px));margin-left:var(--safe-area-inset-left)}#fab{position:absolute;right:calc(16px + var(--safe-area-inset-right,0px));inset-inline-end:calc(16px + var(--safe-area-inset-right,0px));inset-inline-start:initial;bottom:calc(16px + var(--safe-area-inset-bottom,0px));z-index:1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--ha-space-2);--ha-button-box-shadow:var(--ha-box-shadow-l)}:host([narrow]) #fab.tabs{bottom:calc(84px + var(--safe-area-inset-bottom,0px))}#fab[is-wide]{bottom:calc(24px + var(--safe-area-inset-bottom,0px));right:calc(24px + var(--safe-area-inset-right,0px));inset-inline-end:calc(24px + var(--safe-area-inset-right,0px));inset-inline-start:initial}`]}constructor(...t){super(...t),this.mainPage=!1,this.narrow=!1,this.scrollable=!0}}(0,a.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)()],g.prototype,"header",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean,attribute:"main-page"})],g.prototype,"mainPage",void 0),(0,a.Cg)([(0,n.MZ)({type:String,attribute:"back-path"})],g.prototype,"backPath",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"backCallback",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],g.prototype,"narrow",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],g.prototype,"scrollable",void 0),(0,a.Cg)([(0,s.a)(".content")],g.prototype,"_savedScrollPos",void 0),(0,a.Cg)([(0,n.Ls)({passive:!0})],g.prototype,"_saveScrollPos",null),g=(0,a.Cg)([(0,n.EM)("hass-subpage")],g),e()}catch(t){e(t)}})},56267(t,e,i){i.a(t,async function(t,e){try{i(74423);var a=i(62826),o=i(5124),n=i(22441),r=i(6412),s=i(1087),l=i(18350),h=i(29823),c=(i(70947),i(76944)),d=i(77423),p=i(26571),g=i(77763),u=i(65063),f=i(36918),m=(i(77540),t([l,h]));[l,h]=m.then?(await m)():m;const v="M9 3V18H12V3H9M12 5L16 18L19 17L15 4L12 5M5 5V18H8V5H5M3 19V21H21V19H3Z",y="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z",b="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z",w="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z",_="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z";class x extends o.WF{render(){const t=p.Al.includes(this.flow.context.source);return o.qy` <ha-integration-action-card class="${(0,r.H)({attention:t})}" .hass="${this.hass}" .manifest="${this.manifest}" .domain="${this.flow.handler}" .label="${this.flow.localized_title??""}"> ${p.KY.includes(this.flow.context.source)&&this.flow.context.unique_id?o.qy`<ha-button appearance="plain" @click="${this._ignoreFlow}">${this.hass.localize("ui.panel.config.integrations.ignore.ignore")}</ha-button>`:o.s6} <ha-button @click="${this._continueFlow}" variant="${t?"danger":"brand"}" appearance="filled"> ${this.hass.localize(t?"ui.panel.config.integrations.reconfigure":"ui.common.add")} </ha-button> ${this.flow.context.configuration_url||this.manifest||t?o.qy`<ha-dropdown slot="header-button" placement="bottom-end" @wa-select="${this._handleDropdownSelect}"> <ha-icon-button slot="trigger" .label="${this.hass.localize("ui.common.menu")}" .path="${w}"></ha-icon-button> ${this.flow.context.configuration_url?o.qy`<a href="${this.flow.context.configuration_url.replace(/^homeassistant:\/\//,"/")}" rel="noreferrer" target="${this.flow.context.configuration_url.startsWith("homeassistant://")?"_self":"_blank"}"> <ha-dropdown-item> ${this.hass.localize("ui.panel.config.integrations.config_entry.open_configuration_url")} <ha-svg-icon slot="icon" .path="${y}"></ha-svg-icon> <ha-svg-icon slot="details" .path="${_}"></ha-svg-icon> </ha-dropdown-item> </a>`:o.s6} ${this.manifest?o.qy`<a href="${this.manifest.is_built_in?(0,f.o)(this.hass,`/integrations/${this.manifest.domain}`):this.manifest.documentation}" rel="noreferrer" target="_blank"> <ha-dropdown-item> ${this.hass.localize("ui.panel.config.integrations.config_entry.documentation")} <ha-svg-icon slot="icon" .path="${v}"></ha-svg-icon> <ha-svg-icon slot="details" .path="${_}"></ha-svg-icon> </ha-dropdown-item> </a>`:o.s6} ${t?o.qy`<ha-dropdown-item variant="danger" value="delete"> <ha-svg-icon slot="icon" .path="${b}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.integrations.config_entry.delete")} </ha-dropdown-item>`:o.s6} </ha-dropdown>`:o.s6} </ha-integration-action-card> `}_continueFlow(){"external"!==this.flow.flow_id?(0,g.W)(this,{continueFlowId:this.flow.flow_id,navigateToResult:!0,dialogClosedCallback:()=>{this._handleFlowUpdated()}}):this.hass.auth.external.fireMessage({type:"improv/configure_device",payload:{name:this.flow.localized_title||this.flow.context.title_placeholders.name}})}async _ignoreFlow(){await(0,u.dk)(this,{title:this.hass.localize("ui.panel.config.integrations.ignore.confirm_ignore_title",{name:(0,p.m7)(this.hass.localize,this.flow)}),text:this.hass.localize("ui.panel.config.integrations.ignore.confirm_ignore"),confirmText:this.hass.localize("ui.panel.config.integrations.ignore.ignore")})&&(await(0,p.dG)(this.hass,this.flow.flow_id,(0,p.m7)(this.hass.localize,this.flow)),this._handleFlowUpdated())}_handleFlowUpdated(){(0,s.r)(this,"change",void 0,{bubbles:!1})}async _fetchApplicationCredentials(t){try{return(await(0,c.l3)(this.hass,t)).application_credentials_id}catch(t){return null}}async _removeApplicationCredential(t){if(await(0,u.dk)(this,{title:this.hass.localize("ui.panel.config.integrations.config_entry.application_credentials.delete_title"),text:o.qy`${this.hass.localize("ui.panel.config.integrations.config_entry.application_credentials.delete_prompt")}, <br> <br> ${this.hass.localize("ui.panel.config.integrations.config_entry.application_credentials.delete_detail")} <br> <br> <a href="https://www.home-assistant.io/integrations/application_credentials" target="_blank" rel="noreferrer"> ${this.hass.localize("ui.panel.config.integrations.config_entry.application_credentials.learn_more")} </a>`,confirmText:this.hass.localize("ui.common.delete"),dismissText:this.hass.localize("ui.common.cancel"),destructive:!0}))try{await(0,c.jJ)(this.hass,t)}catch(t){(0,u.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.integrations.config_entry.application_credentials.delete_error_title"),text:t.message})}}_handleDropdownSelect(t){const e=t.detail?.item?.value;"delete"===e&&this._handleDelete()}constructor(...t){super(...t),this._handleDelete=async()=>{const t=this.flow.context.entry_id;if(!t)return;const e=await this._fetchApplicationCredentials(t);if(!await(0,u.dk)(this,{title:this.hass.localize("ui.panel.config.integrations.config_entry.delete_confirm_title",{title:(0,p.m7)(this.hass.localize,this.flow)}),text:this.hass.localize("ui.panel.config.integrations.config_entry.delete_confirm_text"),confirmText:this.hass.localize("ui.common.delete"),dismissText:this.hass.localize("ui.common.cancel"),destructive:!0}))return;(await(0,d.eM)(this.hass,t)).require_restart&&(0,u.showAlertDialog)(this,{text:this.hass.localize("ui.panel.config.integrations.config_entry.restart_confirm")}),e&&this._removeApplicationCredential(e),this._handleFlowUpdated()}}}x.styles=o.AH`a{text-decoration:none;color:var(--primary-color)}ha-dropdown{color:var(--secondary-text-color)}ha-svg-icon[slot=meta]{width:18px;height:18px}.attention{--mdc-theme-primary:var(--error-color);--ha-card-border-color:var(--error-color)}`,(0,a.Cg)([(0,n.MZ)({attribute:!1})],x.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],x.prototype,"flow",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],x.prototype,"manifest",void 0),x=(0,a.Cg)([(0,n.EM)("ha-config-flow-card")],x),e()}catch(t){e(t)}})},53896(t,e,i){i.a(t,async function(t,e){try{i(74423),i(44114),i(18111),i(22489),i(20116),i(7588),i(61701),i(13579),i(45367),i(92731),i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698),i(14603),i(47566),i(98721);var a=i(62826),o=i(78648),n=i(5124),r=i(22441),s=i(63672),l=i(22786),h=i(36312),c=i(50248),d=i(89020),p=i(91926),g=i(52220),u=i(6030),f=i(12587),m=i(18350),v=i(29823),y=(i(70947),i(26300)),b=(i(67094),i(36866)),w=i(77423),_=i(96204),x=i(59241),C=i(6810),$=i(95350),M=i(95093),z=i(42262),k=i(77763),E=i(65063),L=i(23296),A=i(40511),S=i(79172),H=i(54706),Z=i(14503),I=i(25635),V=i(24367),D=i(56267),P=i(22523),q=i(64103),T=i(88653),F=i(5317),B=i(76559),O=i(73875),R=t([m,v,y,b,L,A,D,P,q,T,F]);[m,v,y,b,L,A,D,P,q,T,F]=R.then?(await R)():R;const j="M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z",W="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",U=t=>{const e=new Map;return t.forEach(t=>{e.has(t.domain)?e.get(t.domain).push(t):e.set(t.domain,[t])}),e},N=(t,e,i)=>t.localized_domain_name&&t.localized_domain_name!==t.domain?t.localized_domain_name:(0,$.p$)(i,t.domain,e[t.domain]),J=(t,e,i,a)=>t.sort((t,o)=>(0,g.SH)(N(t,e,i),N(o,e,i),a)||(0,g.SH)(t.title||t.domain,o.title||o.domain,a));class K extends((0,S.b)((0,H.E)(n.WF))){disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("improv-discovered-device",this._handleImprovDiscovered),window.removeEventListener("improv-device-setup-done",this._reScanImprovDevices)}hassSubscribe(){return[(0,x.Bz)(this.hass.connection,t=>{this._entityRegistryEntries=t}),(0,$.FP)(this.hass.connection,t=>{const e={};for(const i of t)e[i.domain]=i;this._logInfos=e})]}firstUpdated(t){super.firstUpdated(t),this._fetchManifests(),this._fetchEntitySources(),this._handleRouteChanged(),this._scanUSBDevices(),this._scanImprovDevices(),(0,h.x)(this.hass.config,"diagnostics")&&(0,_.Dh)(this.hass).then(t=>{const e={};for(const i of t)e[i.domain]=i.handlers.config_entry;this._diagnosticHandlers=e})}updated(t){if(super.updated(t),t.has("route")&&this._handleRouteChanged(),(this._hashParams.has("config_entry")||this._hashParams.has("domain"))&&t.has("configEntries")&&!t.get("configEntries")&&this.configEntries&&this._highlightEntry(),t.has("configEntriesInProgress")&&this.configEntriesInProgress&&this._fetchIntegrationManifests(this.configEntriesInProgress.map(t=>t.handler)),t.has("configEntries")&&this.configEntries&&this._fetchIntegrationManifests(this.configEntries.map(t=>t.domain)),this.configEntries&&this.configEntriesInProgress){const t=(0,c.n)();if(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||t?.isContentEditable)return;this._tabsSubpage?.focusContentScroller()}}render(){if(!this.configEntries||!this.configEntriesInProgress)return n.qy`<hass-loading-screen .hass="${this.hass}" .narrow="${this.narrow}"></hass-loading-screen>`;const[t,e,i]=this._filterConfigEntries(this.hass.config.components,this._manifests,this.configEntries,this._entityRegistryEntries,this.hass.localize,this._filter),a=this._filterConfigEntriesInProgress(this.configEntriesInProgress,this._improvDiscovered,this._filter),o=n.qy` <div slot="${(0,s.J)(this.narrow?"toolbar-icon":void 0)}"> <div class="menu-badge-container"> ${!this._showDisabled&&this.narrow&&i.length?n.qy`<span class="badge">${i.length}</span>`:""} <ha-dropdown multi @wa-select="${this._handleMenuAction}"> <ha-icon-button slot="trigger" .label="${this.hass.localize("ui.common.menu")}" .path="${j}"> </ha-icon-button> <ha-dropdown-item type="checkbox" .checked="${this._showIgnored}" value="show-ignored"> ${this.hass.localize("ui.panel.config.integrations.ignore.show_ignored")} </ha-dropdown-item> <ha-dropdown-item type="checkbox" .checked="${this._showDisabled}" value="show-disabled"> ${this.hass.localize("ui.panel.config.integrations.disable.show_disabled")} </ha-dropdown-item> </ha-dropdown> </div> ${this.narrow?n.qy` <ha-integration-overflow-menu .hass="${this.hass}" slot="toolbar-icon"></ha-integration-overflow-menu> `:""} </div> `;return n.qy` <hass-tabs-subpage .hass="${this.hass}" .narrow="${this.narrow}" .backPath="${this._searchParams.has("historyBack")?void 0:"/config"}" .route="${this.route}" .tabs="${I.configSections.devices}" has-fab> ${this.narrow?n.qy` <div slot="header" class="header"> <ha-input-search appearance="outlined" .value="${this._filter}" @input="${this._handleSearchChange}" .placeholder="${this.hass.localize("ui.panel.config.integrations.search")}"> </ha-input-search> </div> ${o} `:n.qy` <ha-integration-overflow-menu .hass="${this.hass}" slot="toolbar-icon"></ha-integration-overflow-menu> <div class="search"> <ha-input-search appearance="outlined" .value="${this._filter}" @input="${this._handleSearchChange}" .placeholder="${this.hass.localize("ui.panel.config.integrations.search")}"> </ha-input-search> <div class="filters"> ${!this._showDisabled&&i.length?n.qy`<div class="active-filters"> ${this.hass.localize("ui.panel.config.integrations.disable.disabled_integrations",{number:i.length})} <ha-button appearance="plain" size="small" @click="${this._toggleShowDisabled}"> ${this.hass.localize("ui.panel.config.integrations.disable.show")} </ha-button> </div>`:n.s6} ${o} </div> </div> `} ${this._showIgnored?n.qy`<h1> ${this.hass.localize("ui.panel.config.integrations.ignore.ignored")} </h1> <div class="container"> ${e.length>0?e.map(t=>n.qy` <ha-ignored-config-entry-card .hass="${this.hass}" .manifest="${this._manifests[t.domain]}" .entry="${t}" @change="${this._handleFlowUpdated}"></ha-ignored-config-entry-card> `):n.qy`${this.hass.localize("ui.panel.config.integrations.no_ignored_integrations")}`} </div>`:""} ${a.length?n.qy`<h1> ${this.hass.localize("ui.panel.config.integrations.discovered")} </h1> <div class="container"> ${a.map(t=>n.qy` <ha-config-flow-card .hass="${this.hass}" .manifest="${this._manifests[t.handler]}" .flow="${t}" @change="${this._handleFlowUpdated}"></ha-config-flow-card> `)} </div>`:""} ${this._showDisabled?n.qy`<h1> ${this.hass.localize("ui.panel.config.integrations.disabled")} </h1> <div class="container"> ${i.length>0?i.map(t=>n.qy` <ha-disabled-config-entry-card .hass="${this.hass}" .entry="${t}" .manifest="${this._manifests[t.domain]}" .entityRegistryEntries="${this._entityRegistryEntries}"></ha-disabled-config-entry-card> `):n.qy`${this.hass.localize("ui.panel.config.integrations.no_disabled_integrations")}`} </div>`:""} ${a.length||this._showDisabled||this._showIgnored?n.qy`<h1> ${this.hass.localize("ui.panel.config.integrations.configured")} </h1>`:""} <div class="container"> ${t.length?t.map(([t,e])=>n.qy`<ha-integration-card data-domain="${t}" .hass="${this.hass}" .domain="${t}" .items="${e}" .manifest="${this._manifests[t]}" .entityRegistryEntries="${this._entityRegistryEntries}" .domainEntities="${this._domainEntities[t]||[]}" .supportsDiagnostics="${!!this._diagnosticHandlers&&this._diagnosticHandlers[t]}" .logInfo="${this._logInfos?this._logInfos[t]:n.s6}"></ha-integration-card>`):this._filter&&!a.length&&!t.length&&this.configEntries.length?n.qy` <div class="empty-message"> <h1> ${this.hass.localize("ui.panel.config.integrations.none_found")} </h1> <p> ${this.hass.localize("ui.panel.config.integrations.none_found_detail")} </p> <ha-button @click="${this._createFlow}" appearance="filled" size="small"> <ha-svg-icon slot="start" .path="${W}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.integrations.add_integration")} </ha-button> </div> `:this._filter||this._showIgnored&&0!==e.length||this._showDisabled&&0!==i.length||0!==t.length?"":n.qy` <div class="empty-message"> <h1> ${this.hass.localize("ui.panel.config.integrations.none")} </h1> <p> ${this.hass.localize("ui.panel.config.integrations.no_integrations")} </p> <ha-button @click="${this._createFlow}" appearance="filled" size="small"> <ha-svg-icon slot="start" .path="${W}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.integrations.add_integration")} </ha-button> </div> `} </div> <ha-button slot="fab" size="large" @click="${this._createFlow}"> <ha-svg-icon slot="start" .path="${W}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.integrations.add_integration")} </ha-button> </hass-tabs-subpage> `}async _scanUSBDevices(){(0,h.x)(this.hass.config,"usb")&&await(0,z.$)(this.hass)}_scanImprovDevices(){this.hass.auth.external?.config.canSetupImprov&&(window.addEventListener("improv-discovered-device",this._handleImprovDiscovered),window.addEventListener("improv-device-setup-done",this._reScanImprovDevices),this.hass.auth.external.fireMessage({type:"improv/scan"}))}async _fetchEntitySources(){const t=await(0,C.c)(this.hass),e={};for(const[i,a]of Object.entries(t))a.domain in e||(e[a.domain]=[]),e[a.domain].push(i);this._domainEntities=e}async _fetchManifests(t){const e=await(0,$.fK)(this.hass,t),i={...this._manifests};for(const t of e)i[t.domain]=t;this._manifests=i}async _fetchIntegrationManifests(t){const e=[];for(const i of t)if(!(i in this._manifests)){if(this._extraFetchedManifests){if(this._extraFetchedManifests.has(i))continue}else this._extraFetchedManifests=new Set;this._extraFetchedManifests.add(i),e.push(i)}e.length&&await this._fetchManifests(e)}_handleFlowUpdated(){this._reScanImprovDevices(),this._fetchManifests()}_createFlow(){(0,B.X)(this,{initialFilter:this._filter,navigateToResult:!0})}_handleMenuAction(t){switch(t.detail.item.value){case"show-ignored":this._showIgnored=!this._showIgnored;break;case"show-disabled":this._toggleShowDisabled()}}_toggleShowDisabled(){this._showDisabled=!this._showDisabled}_handleSearchChange(t){this._filter=t.target.value??"",history.replaceState({filter:this._filter},"")}async _highlightEntry(){await(0,f.E)();const t=this._hashParams.get("config_entry");let e;if(t){const i=this.configEntries.find(e=>e.entry_id===t);if(!i)return;e=i.domain}else e=this._hashParams.get("domain");const i=this.shadowRoot.querySelector(`[data-domain=${e}]`);i&&(i.scrollIntoView({block:"center"}),i.classList.add("highlight"))}async _handleRouteChanged(){if("/add"!==this.route?.path)return;const t=(0,u.p9)("brand"),e=(0,u.p9)("domain");if((0,p.oo)("/config/integrations/dashboard/",{replace:!0}),t)return void(0,B.X)(this,{brand:t,navigateToResult:!0});if(!e)return;const i=await(0,M.O)(this.hass),a={...i.core.integration,...i.custom.integration},o=(0,M.s)(a,e);if(o?.config_flow){if(o.single_config_entry){if((await(0,w.VN)(this.hass,{domain:e})).length>0)return void(0,O.C)(this,{domain:e})}const t=await this.hass.loadBackendTranslation("title",e,!1);return void(await(0,E.dk)(this,{title:t("ui.panel.config.integrations.confirm_new",{integration:o.name||(0,$.p$)(t,e)})})&&(0,B.X)(this,{domain:e,navigateToResult:!0}))}if(o?.supported_by){const t=await this.hass.loadBackendTranslation("title",e,!1),i=(0,M.s)(a,o.supported_by);if(!i)return;return void(0,E.dk)(this,{text:this.hass.localize("ui.panel.config.integrations.config_flow.supported_brand_flow",{supported_brand:o.name||(0,$.p$)(t,e),flow_domain_name:i.name||(0,$.p$)(t,o.supported_by)}),confirm:async()=>{d.x.includes(o.supported_by)?(0,d.P)(this,this.hass,o.supported_by):(0,k.W)(this,{dialogClosedCallback:()=>{this._handleFlowUpdated()},startFlowHandler:o.supported_by,manifest:await(0,$.QC)(this.hass,o.supported_by)})}})}if((0,V.z)(e))return void(0,p.oo)(`/config/helpers/add?domain=${e}`,{replace:!0});const n={...i.core.helper,...i.custom.helper};(0,M.s)(n,e)?(0,p.oo)(`/config/helpers/add?domain=${e}`,{replace:!0}):(0,E.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.integrations.config_flow.error"),text:this.hass.localize("ui.panel.config.integrations.config_flow.no_config_flow")})}supportedShortcuts(){return{f:()=>this._searchInput.focus()}}static get styles(){return[Z.RF,n.AH`:host([narrow]) hass-tabs-subpage{--main-title-margin:0}ha-dropdown{margin-left:8px;margin-inline-start:8px;margin-inline-end:initial;direction:var(--direction)}.container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:8px 8px;padding:8px 16px 16px}.empty-message{margin:auto;text-align:center;grid-column-start:1;grid-column-end:-1}.empty-message h1{margin:0}ha-input-search{flex:1;min-width:0}.header{display:flex;min-width:0}.search{display:flex;justify-content:space-between;width:100%;align-items:center;height:56px;position:sticky;top:0;z-index:2;background-color:var(--primary-background-color);padding:0 16px;gap:var(--ha-space-4);box-sizing:border-box;border-bottom:1px solid var(--divider-color)}.filters{--mdc-text-field-fill-color:var(--input-fill-color);--mdc-text-field-idle-line-color:var(--input-idle-line-color);--mdc-shape-small:4px;--text-field-overflow:initial;display:flex;justify-content:flex-end;align-items:center;color:var(--primary-text-color)}.active-filters{color:var(--primary-text-color);display:flex;align-items:center;padding:2px 2px 2px 8px;line-height:1;padding-inline-start:8px;padding-inline-end:2px;font-size:var(--ha-font-size-m);width:max-content;cursor:initial;direction:var(--direction);height:32px;background-color:var(--ha-color-fill-primary-normal-resting);border-radius:var(--ha-border-radius-sm)}.active-filters ha-button{margin-left:8px;margin-inline-start:8px;margin-inline-end:initial;direction:var(--direction)}.badge{min-width:20px;min-height:20px;border-radius:var(--ha-border-radius-circle);font-weight:var(--ha-font-weight-normal);background-color:var(--primary-color);display:flex;align-items:center;justify-content:center;color:var(--text-primary-color);position:absolute;right:0px;top:4px;font-size:var(--ha-font-size-s)}.menu-badge-container{position:relative}h1{margin-top:8px;margin-left:16px;margin-inline-start:16px;margin-inline-end:initial}ha-dropdown ha-icon-button{color:var(--primary-text-color)}`]}constructor(...t){super(...t),this.narrow=!1,this.isWide=!1,this._improvDiscovered=new Map,this._entityRegistryEntries=[],this._manifests={},this._domainEntities={},this._showIgnored=!1,this._showDisabled=!1,this._hashParams=new URLSearchParams(window.location.hash.substring(1)),this._searchParams=new URLSearchParams(window.location.search),this._filter=history.state?.filter||"",this._filterConfigEntries=(0,l.A)((t,e,i,a,n,r)=>{const s=new Set(i.map(t=>t.domain)),l=new Set;for(const i of t){const t=i.split(".")[0];s.has(t)||!e[t]||e[t].config_flow||e[t].integration_type&&!["device","hub","service","integration"].includes(e[t].integration_type)||l.add(t)}const h=[...l].map(t=>({domain:t,localized_domain_name:(0,$.p$)(n,t,e[t]),title:t,source:"yaml",state:"loaded",supports_options:!1,supports_remove_device:!1,supports_unload:!1,supports_reconfigure:!1,supported_subentry_types:{},num_subentries:0,pref_disable_new_entities:!1,pref_disable_polling:!1,disabled_by:null,reason:null,error_reason_translation_key:null,error_reason_translation_placeholders:null})),c=[...i.filter(t=>t.supports_options||"hardware"!==this._manifests[t.domain]?.integration_type||a.some(e=>e.config_entry_id===t.entry_id)),...h];let d;const p=[],u=[],f=[];if(r){const t={keys:["domain","localized_domain_name","title"],isCaseSensitive:!1,minMatchCharLength:Math.min(r.length,2),threshold:.2};d=new o.A(c,t).search(r).map(t=>t.item)}else d=c;for(const t of d)"ignore"===t.source?p.push(t):null!==t.disabled_by?u.push(t):f.push(t);return[Array.from(U(f)).sort((t,e)=>(0,g.SH)(t[1][0].localized_domain_name||t[0],e[1][0].localized_domain_name||e[0],this.hass.locale.language)),J(p,this._manifests,this.hass.localize,this.hass.locale.language),J(u,this._manifests,this.hass.localize,this.hass.locale.language)]}),this._filterConfigEntriesInProgress=(0,l.A)((t,e,i)=>{let a=[...t];const n=Array.from(e.values());let r;if(n.length&&(a=a.filter(t=>!n.some(e=>e.name===t.localized_title)),e.forEach(t=>{a.push({flow_id:"external",handler:"improv_ble",context:{title_placeholders:{name:t.name}},step_id:"bluetooth_confirm",localized_title:t.name})})),i){const t={keys:["handler","localized_title"],isCaseSensitive:!1,minMatchCharLength:Math.min(i.length,2),threshold:.2,ignoreDiacritics:!0};r=new o.A(a,t).search(i).map(t=>t.item)}else r=a;return r.sort((t,e)=>(0,g.SH)(t.localized_title||t.handler,e.localized_title||e.handler,this.hass.locale.language))}),this._reScanImprovDevices=()=>{this.hass.auth.external?.config.canSetupImprov&&(this._improvDiscovered=new Map,this.hass.auth.external.fireMessage({type:"improv/scan"}))},this._handleImprovDiscovered=t=>{this._fetchManifests(["improv_ble"]),this._improvDiscovered.set(t.detail.name,t.detail),this._improvDiscovered=new Map(Array.from(this._improvDiscovered))}}}(0,a.Cg)([(0,r.MZ)({attribute:!1})],K.prototype,"hass",void 0),(0,a.Cg)([(0,r.MZ)({type:Boolean,reflect:!0})],K.prototype,"narrow",void 0),(0,a.Cg)([(0,r.MZ)({attribute:"is-wide",type:Boolean})],K.prototype,"isWide",void 0),(0,a.Cg)([(0,r.MZ)({attribute:!1})],K.prototype,"route",void 0),(0,a.Cg)([(0,r.MZ)({attribute:!1})],K.prototype,"configEntries",void 0),(0,a.Cg)([(0,r.MZ)({attribute:!1})],K.prototype,"configEntriesInProgress",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_improvDiscovered",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_entityRegistryEntries",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_manifests",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_domainEntities",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_showIgnored",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_showDisabled",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_hashParams",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_searchParams",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_filter",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_diagnosticHandlers",void 0),(0,a.Cg)([(0,r.wk)()],K.prototype,"_logInfos",void 0),(0,a.Cg)([(0,r.P)("ha-input-search")],K.prototype,"_searchInput",void 0),(0,a.Cg)([(0,r.P)("hass-tabs-subpage")],K.prototype,"_tabsSubpage",void 0),K=(0,a.Cg)([(0,r.EM)("ha-config-integrations-dashboard")],K),e()}catch(t){e(t)}})},81074(t,e,i){i.a(t,async function(t,a){try{i.r(e);i(44114),i(18111),i(22489),i(7588),i(61701),i(14603),i(47566),i(98721);var o=i(62826),n=i(22441),r=i(91926),s=i(77423),l=i(26571),h=i(95350),c=i(23296),d=i(324),p=i(54706),g=i(87599),u=i(53896),f=t([c,g,u]);[c,g,u]=f.then?(await f)():f;class m extends((0,p.E)(d.a)){hassSubscribe(){return[(0,s.TC)(this.hass,async t=>{if(0===t.length)return void(this._configEntries=[]);let e=void 0===this._configEntries;const i=[];await(this._loadTranslationsPromise?.then(()=>new Promise(t=>{window.setTimeout(t,0)}))),t.forEach(t=>{if(null===t.type||"added"===t.type)i.push({...t.entry,localized_domain_name:(0,h.p$)(this.hass.localize,t.entry.domain)}),null===t.type&&(e=!0);else if("removed"===t.type)this._configEntries=this._configEntries.filter(e=>e.entry_id!==t.entry.entry_id);else if("updated"===t.type){const e=t.entry;this._configEntries=this._configEntries.map(t=>t.entry_id===e.entry_id?{...e,localized_domain_name:t.localized_domain_name}:t)}});const a=e?[]:this._configEntries;this._configEntries=[...a,...i]},{type:["device","hub","service","hardware"]}),(0,l.x)(this.hass,async t=>{if(0===t.length)return void(this._configEntriesInProgress=[]);let e=void 0===this._configEntriesInProgress;const i=[];if(t.forEach(t=>{if("removed"!==t.type)null!==t.type&&"added"!==t.type||(null===t.type&&(e=!0),i.push(t.flow));else{if(!this._configEntriesInProgress)return;this._configEntriesInProgress=this._configEntriesInProgress.filter(e=>e.flow_id!==t.flow_id)}}),!i.length&&!e)return;const a=e?[]:this._configEntriesInProgress,o=i.filter(t=>t.context.title_placeholders).map(t=>t.handler),n=o.length?await this.hass.loadBackendTranslation("config",o):this.hass.localize;this._configEntriesInProgress=[...a,...i.map(t=>({...t,localized_title:(0,l.m7)(n,t)}))]})]}willUpdate(t){super.willUpdate(t),this.hasUpdated||(this._loadTranslationsPromise=this.hass.loadBackendTranslation("title",this.hass.config.components.map(t=>t.split(".")[0])))}updatePageEl(t){if(t.hass=this.hass,"integration"===this._currentPage)if(this.routeTail.path)t.domain=this.routeTail.path.substring(1);else if(window.location.search){const e=new URLSearchParams(window.location.search);if(e.has("domain")){const i=e.get("domain");t.domain=i,(0,r.oo)(`/config/integrations/integration/${i}`)}}t.route=this.routeTail,t.configEntries=this._configEntries,t.configEntriesInProgress=this._configEntriesInProgress,t.narrow=this.narrow,t.isWide=this.isWide}constructor(...t){super(...t),this.narrow=!1,this.isWide=!1,this.routerOptions={defaultPage:"dashboard",routes:{dashboard:{tag:"ha-config-integrations-dashboard",cache:!0},integration:{tag:"ha-config-integration-page"}}}}}(0,o.Cg)([(0,n.MZ)({attribute:!1})],m.prototype,"hass",void 0),(0,o.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],m.prototype,"narrow",void 0),(0,o.Cg)([(0,n.MZ)({attribute:"is-wide",type:Boolean})],m.prototype,"isWide",void 0),(0,o.Cg)([(0,n.wk)()],m.prototype,"_configEntries",void 0),(0,o.Cg)([(0,n.wk)()],m.prototype,"_configEntriesInProgress",void 0),m=(0,o.Cg)([(0,n.EM)("ha-config-integrations")],m),a()}catch(t){a(t)}})},22523(t,e,i){i.a(t,async function(t,e){try{var a=i(62826),o=i(5124),n=i(22441),r=i(18350),s=i(26300),l=i(77423),h=i(65063),c=(i(77540),t([r,s]));[r,s]=c.then?(await c)():c;const d="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z";class p extends o.WF{render(){return o.qy` <ha-integration-action-card .hass="${this.hass}" .manifest="${this.manifest}" .banner="${this.hass.localize("ui.panel.config.integrations.config_entry.disable.disabled_cause",{cause:this.hass.localize(`ui.panel.config.integrations.config_entry.disable.disabled_by.${this.entry.disabled_by}`)||this.entry.disabled_by})}" .domain="${this.entry.domain}" .localizedDomainName="${this.entry.localized_domain_name}" .label="${this.entry.title||this.entry.localized_domain_name}"> <ha-icon-button .path="${d}" href="${`/config/integrations/integration/${this.entry.domain}`}" slot="header-button"></ha-icon-button> <ha-button @click="${this._handleEnable}" appearance="filled"> ${this.hass.localize("ui.common.enable")} </ha-button> </ha-integration-action-card> `}async _handleEnable(){const t=this.entry.entry_id;let e;try{e=await(0,l.k3)(this.hass,t)}catch(t){return void(0,h.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.integrations.config_entry.disable_error"),text:t.message})}e.require_restart&&(0,h.showAlertDialog)(this,{text:this.hass.localize("ui.panel.config.integrations.config_entry.enable_restart_confirm")})}}p.styles=o.AH`:host{--state-color:var(--divider-color, #e0e0e0)}ha-button{--mdc-theme-primary:var(--primary-color)}ha-icon-button{color:var(--secondary-text-color)}`,(0,a.Cg)([(0,n.MZ)({attribute:!1})],p.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],p.prototype,"entry",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],p.prototype,"manifest",void 0),p=(0,a.Cg)([(0,n.EM)("ha-disabled-config-entry-card")],p),e()}catch(t){e(t)}})},64103(t,e,i){i.a(t,async function(t,e){try{var a=i(62826),o=i(5124),n=i(22441),r=i(1087),s=i(77423),l=i(65063),h=(i(77540),i(18350)),c=t([h]);h=(c.then?(await c)():c)[0];class d extends o.WF{render(){return o.qy` <ha-integration-action-card .hass="${this.hass}" .manifest="${this.manifest}" .banner="${this.hass.localize("ui.panel.config.integrations.ignore.ignored")}" .domain="${this.entry.domain}" .localizedDomainName="${this.entry.localized_domain_name}" .label="${"Ignored"===this.entry.title?this.entry.localized_domain_name:this.entry.title}"> <ha-button appearance="plain" @click="${this._removeIgnoredIntegration}"> ${this.hass.localize("ui.panel.config.integrations.ignore.stop_ignore")} </ha-button> </ha-integration-action-card> `}async _removeIgnoredIntegration(){(0,l.dk)(this,{title:this.hass.localize("ui.panel.config.integrations.ignore.confirm_delete_ignore_title",{name:this.hass.localize(`component.${this.entry.domain}.title`)}),text:this.hass.localize("ui.panel.config.integrations.ignore.confirm_delete_ignore"),confirmText:this.hass.localize("ui.panel.config.integrations.ignore.stop_ignore"),confirm:async()=>{(await(0,s.eM)(this.hass,this.entry.entry_id)).require_restart&&alert(this.hass.localize("ui.panel.config.integrations.config_entry.restart_confirm")),(0,r.r)(this,"change",void 0,{bubbles:!1})}})}}d.styles=o.AH`:host{--state-color:var(--divider-color, #e0e0e0)}ha-button{--mdc-theme-primary:var(--primary-color)}`,(0,a.Cg)([(0,n.MZ)({attribute:!1})],d.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],d.prototype,"entry",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],d.prototype,"manifest",void 0),d=(0,a.Cg)([(0,n.EM)("ha-ignored-config-entry-card")],d),e()}catch(t){e(t)}})},77540(t,e,i){var a=i(62826),o=i(5124),n=i(22441),r=i(95350),s=(i(13926),i(76776),i(44144)),l=i(14503);class h extends o.WF{render(){return o.qy` <ha-card outlined> <div class="card-content"> <img alt="" src="${(0,s.MR)({domain:this.domain,type:"icon",darkOptimized:this.hass.themes?.darkMode},this.hass.auth.data.hassUrl)}" crossorigin="anonymous" referrerpolicy="no-referrer" @error="${this._onImageError}" @load="${this._onImageLoad}"> <h2>${this.label}</h2> <h3> ${this.localizedDomainName&&this.localizedDomainName!==this.domain?this.localizedDomainName:(0,r.p$)(this.hass.localize,this.domain,this.manifest)} </h3> </div> <div class="filler"></div> <div class="card-actions"><slot></slot></div> <div class="header-button"><slot name="header-button"></slot></div> </ha-card> `}_onImageLoad(t){t.target.style.visibility="initial"}_onImageError(t){t.target.style.visibility="hidden"}}h.styles=[l.RF,o.AH`ha-card{display:flex;flex-direction:column;height:100%}img{width:40px;height:40px}h2{font-size:var(--ha-font-size-l);font-weight:var(--ha-font-weight-normal);margin-top:8px;margin-bottom:0;max-width:100%}h3{font-size:var(--ha-font-size-m);margin:0;max-width:100%;text-align:center}.header-button{position:absolute;top:8px;right:8px;inset-inline-end:8px;inset-inline-start:initial}.filler{flex:1}.attention{--state-color:var(--error-color);--text-on-state-color:var(--text-primary-color)}.card-content{display:flex;justify-content:center;flex-direction:column;align-items:center}.card-actions{border-top:none;padding-top:0;padding-bottom:16px;justify-content:center;display:flex}:host ::slotted(*){margin-right:8px;margin-inline-end:8px;margin-inline-start:initial}:host ::slotted(:last-child){margin-right:0;margin-inline-end:0;margin-inline-start:initial}`],(0,a.Cg)([(0,n.MZ)({attribute:!1})],h.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)()],h.prototype,"banner",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],h.prototype,"localizedDomainName",void 0),(0,a.Cg)([(0,n.MZ)()],h.prototype,"domain",void 0),(0,a.Cg)([(0,n.MZ)()],h.prototype,"label",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],h.prototype,"manifest",void 0),h=(0,a.Cg)([(0,n.EM)("ha-integration-action-card")],h)},88653(t,e,i){i.a(t,async function(t,e){try{i(74423),i(18111),i(81148),i(22489),i(20116),i(61701),i(13579),i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698);var a=i(62826),o=i(5124),n=i(22441),r=i(6412),s=i(22786),l=i(89020),h=i(15638),c=i(18350),d=(i(76776),i(54276),i(67094),i(34127)),p=i(77423),g=i(95350),u=i(14503),f=(i(13926),t([c,d]));[c,d]=f.then?(await f)():f;const m="M14 2H6C4.89 2 4 2.9 4 4V20C4 21.11 4.89 22 6 22H18C19.11 22 20 21.11 20 20V8L14 2M18 20H6V4H13V9H18V20M9.54 15.65L11.63 17.74L10.35 19L7 15.65L10.35 12.3L11.63 13.56L9.54 15.65M17 15.65L13.65 19L12.38 17.74L14.47 15.65L12.38 13.56L13.65 12.3L17 15.65Z",v="M2,10.96C1.5,10.68 1.35,10.07 1.63,9.59L3.13,7C3.24,6.8 3.41,6.66 3.6,6.58L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.66,6.72 20.82,6.88 20.91,7.08L22.36,9.6C22.64,10.08 22.47,10.69 22,10.96L21,11.54V16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V10.96C2.7,11.13 2.32,11.14 2,10.96M12,4.15V4.15L12,10.85V10.85L17.96,7.5L12,4.15M5,15.91L11,19.29V12.58L5,9.21V15.91M19,15.91V12.69L14,15.59C13.67,15.77 13.3,15.76 13,15.6V19.29L19,15.91M13.85,13.36L20.13,9.73L19.55,8.72L13.27,12.35L13.85,13.36Z",y="M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z";class b extends o.WF{render(){const t=this._getState(this.items),e=this.logInfo&&this.logInfo.level===g.S1.DEBUG;return o.qy` <ha-card outlined class="${(0,r.H)({"state-loaded":"loaded"===t,"state-not-loaded":"not_loaded"===t,"state-failed-unload":"failed_unload"===t,"state-setup":"setup_in_progress"===t,"state-error":p.m4.includes(t),"debug-logging":Boolean(e)})}"> <a href="${`/config/integrations/integration/${this.domain}`}" class="ripple-anchor"> <ha-ripple></ha-ripple> <ha-integration-header .hass="${this.hass}" .domain="${this.domain}" .localizedDomainName="${this.items[0].localized_domain_name}" .error="${p.m4.includes(t)?this.hass.localize(`ui.panel.config.integrations.config_entry.state.${t}`):void 0}" .warning="${"loaded"===t||p.m4.includes(t)?e?this.hass.localize("ui.panel.config.integrations.config_entry.debug_logging_enabled"):void 0:this.hass.localize(`ui.panel.config.integrations.config_entry.state.${t}`)}" .manifest="${this.manifest}"> </ha-integration-header> </a> ${this._renderSingleEntry()} </ha-card> `}_renderSingleEntry(){const t=this._getDevices(this.items,this.hass.devices),e=t.length?0:this._getEntityCount(this.items,this.entityRegistryEntries,this.domainEntities),i=!t.some(t=>"service"!==t.entry_type);return o.qy` <div class="card-actions"> ${t.length>0?o.qy`<ha-button appearance="plain" href="${1!==t.length||l.x.includes(this.domain)?`/config/devices/dashboard?historyBack=1&domain=${this.domain}`:`/config/devices/device/${t[0].id}`}"> ${this.hass.localize("ui.panel.config.integrations.config_entry."+(i?"services":"devices"),{count:t.length})} </ha-button>`:e>0?o.qy`<ha-button appearance="plain" href="${`/config/entities?historyBack=1&domain=${this.domain}`}"> ${this.hass.localize("ui.panel.config.integrations.config_entry.entities",{count:e})} </ha-button>`:this.items.find(t=>"yaml"!==t.source)?o.qy`<ha-button appearance="plain" href="${`/config/integrations/integration/${this.domain}`}"> ${this.hass.localize("ui.panel.config.integrations.config_entry.entries",{count:this.items.filter(t=>"yaml"!==t.source).length})} </ha-button>`:o.qy`<div class="spacer"></div>`} <div class="icons"> ${this.manifest&&!this.manifest.is_built_in?o.qy`<span class="icon ${this.manifest.overwrites_built_in?"overwrites":"custom"}"> <ha-svg-icon id="icon-custom" .path="${v}"></ha-svg-icon> <ha-tooltip for="icon-custom" .placement="${(0,h.qC)(this.hass.language,this.hass.translationMetadata.translations)?"right":"left"}"> ${this.hass.localize(this.manifest.overwrites_built_in?"ui.panel.config.integrations.config_entry.custom_overwrites_core":"ui.panel.config.integrations.config_entry.custom_integration")} </ha-tooltip> </span>`:o.s6} ${this.manifest&&this.manifest.iot_class?.startsWith("cloud_")?o.qy`<div class="icon cloud"> <ha-svg-icon id="icon-cloud" .path="${y}"></ha-svg-icon> <ha-tooltip for="icon-cloud" .placement="${(0,h.qC)(this.hass.language,this.hass.translationMetadata.translations)?"right":"left"}"> ${this.hass.localize("ui.panel.config.integrations.config_entry.depends_on_cloud")} </ha-tooltip> </div>`:o.s6} ${!this.manifest||this.manifest?.config_flow||this.items.every(t=>"system"===t.source)?o.s6:o.qy`<div class="icon yaml"> <ha-svg-icon id="icon-yaml" .path="${m}"></ha-svg-icon> <ha-tooltip for="icon-yaml" .placement="${(0,h.qC)(this.hass.language,this.hass.translationMetadata.translations)?"right":"left"}"> ${this.hass.localize("ui.panel.config.integrations.config_entry.no_config_flow")} </ha-tooltip> </div>`} </div> </div> `}static get styles(){return[u.RF,o.AH`ha-card{display:flex;flex-direction:column;justify-content:space-between;height:100%;overflow:hidden;--state-color:var(--divider-color, #e0e0e0);--state-message-color:var(--state-color)}.ripple-anchor{flex-grow:1;position:relative;outline:0}.ripple-anchor:focus-visible:before{position:absolute;display:block;content:"";inset:0;background-color:var(--secondary-text-color);opacity:.08}ha-integration-header{height:100%}.card-actions{display:flex;align-items:center;justify-content:space-between}.debug-logging{--state-color:var(--warning-color);--ha-card-border-color:var(--state-color);--text-on-state-color:var(--primary-text-color)}.state-error{--state-color:var(--error-color);--ha-card-border-color:var(--state-color);--text-on-state-color:var(--text-primary-color)}.state-failed-unload{--state-color:var(--warning-color);--ha-card-border-color:var(--state-color);--text-on-state-color:var(--primary-text-color)}.state-not-loaded{opacity:.8;--state-color:var(--warning-color);--ha-card-border-color:var(--state-color);--state-message-color:var(--primary-text-color)}.state-setup{opacity:.8;--state-message-color:var(--secondary-text-color)}:host(.highlight) ha-card{--state-color:var(--primary-color);--ha-card-border-color:var(--state-color);--text-on-state-color:var(--text-primary-color)}.content{flex:1;--mdc-list-side-padding-right:20px;--mdc-list-side-padding-left:24px;--mdc-list-item-graphic-margin:24px}a{text-decoration:none;color:var(--primary-text-color)}.icons{display:flex}.icon{color:var(--label-badge-grey);padding:4px;margin-left:8px;margin-inline-start:8px;margin-inline-end:initial}.icon.custom{color:var(--warning-color)}.icon.overwrites{color:var(--error-color)}.icon ha-svg-icon{width:24px;height:24px;display:block}.spacer{height:36px}`]}constructor(...t){super(...t),this.supportsDiagnostics=!1,this.domainEntities=[],this._getState=(0,s.A)(t=>{if(1===t.length)return t[0].state;let e;for(const i of t){if(p.m4.includes(i.state))return i.state;e=i.state}return e}),this._getEntityCount=(0,s.A)((t,e,i)=>{if(!e)return i.length;const a=t.map(t=>t.entry_id).filter(Boolean);if(!a.length)return i.length;const o=e.filter(t=>t.config_entry_id&&a.includes(t.config_entry_id));if(o.length===i.length)return i.length;const n=new Set(o.map(t=>t.entity_id));for(const t of i)n.add(t);return n.size}),this._getDevices=(0,s.A)((t,e)=>{if(!e)return[];const i=t.map(t=>t.entry_id);return Object.values(e).filter(t=>t.config_entries.some(t=>i.includes(t)))})}}(0,a.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)()],b.prototype,"domain",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"items",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"manifest",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"entityRegistryEntries",void 0),(0,a.Cg)([(0,n.MZ)({attribute:"supports-diagnostics",type:Boolean})],b.prototype,"supportsDiagnostics",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"logInfo",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"domainEntities",void 0),b=(0,a.Cg)([(0,n.EM)("ha-integration-card")],b),e()}catch(t){e(t)}})},13926(t,e,i){var a=i(62826),o=i(5124),n=i(22441),r=(i(43661),i(67094),i(95350)),s=i(44144);class l extends o.WF{render(){const t=this.localizedDomainName||(0,r.p$)(this.hass.localize,this.domain,this.manifest);return o.qy` <div class="header"> <img alt="" src="${(0,s.MR)({domain:this.domain,type:"icon",darkOptimized:this.hass.themes?.darkMode},this.hass.auth.data.hassUrl)}" crossorigin="anonymous" referrerpolicy="no-referrer" @error="${this._onImageError}" @load="${this._onImageLoad}"> <div class="info"> <div class="primary ${this.warning||this.error?"has-secondary":""}" role="heading" aria-level="1"> ${t} </div> ${this.error?o.qy` <div class="secondary error"> <ha-svg-icon .path="${"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"}"></ha-svg-icon> <span>${this.error}</span> </div> `:this.warning?o.qy` <div class="secondary warning"> <ha-svg-icon .path="${"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16"}"></ha-svg-icon> <span>${this.warning}</span> </div> `:o.s6} </div> <ha-icon-next class="header-button" .label="${this.hass.localize("ui.panel.config.integrations.config_entry.configure")}"></ha-icon-next> </div> `}_onImageLoad(t){t.target.style.visibility="initial"}_onImageError(t){t.target.style.visibility="hidden"}}l.styles=o.AH`.header{display:flex;align-items:center;position:relative;padding-top:16px;padding-bottom:16px;padding-inline-start:16px;padding-inline-end:8px;direction:var(--direction);box-sizing:border-box;min-width:0}.header img{margin-inline-start:initial;margin-inline-end:16px;width:40px;height:40px;direction:var(--direction)}.header .info{position:relative;display:flex;flex-direction:column;flex:1;align-self:center;min-width:0}ha-icon-next{color:var(--secondary-text-color)}.primary{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:var(--ha-font-size-l);font-weight:var(--ha-font-weight-normal);color:var(--primary-text-color)}.has-secondary{-webkit-line-clamp:1;font-size:var(--ha-font-size-m)}.secondary{min-width:0;--mdc-icon-size:20px;-webkit-line-clamp:1;font-size:var(--ha-font-size-s);display:flex;flex-direction:row}.secondary>span{position:relative;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.secondary>ha-svg-icon{margin-right:4px;margin-inline-end:4px;margin-inline-start:initial;flex-shrink:0}.error ha-svg-icon{color:var(--error-color)}.warning ha-svg-icon{color:var(--warning-color)}`,(0,a.Cg)([(0,n.MZ)({attribute:!1})],l.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)()],l.prototype,"error",void 0),(0,a.Cg)([(0,n.MZ)()],l.prototype,"warning",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],l.prototype,"localizedDomainName",void 0),(0,a.Cg)([(0,n.MZ)()],l.prototype,"domain",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],l.prototype,"manifest",void 0),l=(0,a.Cg)([(0,n.EM)("ha-integration-header")],l)},73875(t,e,i){i.d(e,{C:()=>o});var a=i(1087);const o=(t,e)=>(0,a.r)(t,"show-dialog",{dialogTag:"dialog-single-config-entry-warning",dialogParams:e,dialogImport:()=>i.e(38187).then(i.bind(i,53766))})},14503(t,e,i){i.d(e,{RF:()=>n,dp:()=>l,kO:()=>s,nA:()=>r,og:()=>o});var a=i(5124);const o=a.AH`button.link{background:0 0;color:inherit;border:none;padding:0;font:inherit;text-align:left;text-decoration:underline;cursor:pointer;outline:0}`,n=a.AH`:host{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-m);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-normal)}app-header div[sticky]{height:48px}app-toolbar [main-title]{margin-left:20px;margin-inline-start:20px;margin-inline-end:initial}.header{transition:box-shadow .2s linear,width var(--ha-animation-duration-normal) ease,padding-left var(--ha-animation-duration-normal) ease,padding-right var(--ha-animation-duration-normal) ease}@media (prefers-reduced-motion:reduce){.header{transition:box-shadow .2s linear}}h1{font-family:var(--ha-font-family-heading);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-2xl);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-condensed)}h2{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--ha-font-size-xl);font-weight:var(--ha-font-weight-medium);line-height:var(--ha-line-height-normal)}h3{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-l);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-normal)}a{color:var(--primary-color)}.secondary{color:var(--secondary-text-color)}.error{color:var(--error-color)}.warning{color:var(--error-color)}${o} .card-actions a{text-decoration:none}.card-actions .warning{--mdc-theme-primary:var(--error-color)}.layout.horizontal,.layout.vertical{display:flex}.layout.inline{display:inline-flex}.layout.horizontal{flex-direction:row}.layout.vertical{flex-direction:column}.layout.wrap{flex-wrap:wrap}.layout.no-wrap{flex-wrap:nowrap}.layout.center,.layout.center-center{align-items:center}.layout.bottom{align-items:flex-end}.layout.center-center,.layout.center-justified{justify-content:center}.flex{flex:1;flex-basis:0.000000001px}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.layout.justified{justify-content:space-between}`,r=a.AH`ha-adaptive-dialog,ha-dialog{--mdc-dialog-min-width:400px;--mdc-dialog-max-width:600px;--mdc-dialog-max-width:min(600px, 95vw);--justify-action-buttons:space-between;--dialog-container-padding:var(--safe-area-inset-top, 0) var(--safe-area-inset-right, 0) var(--safe-area-inset-bottom, 0) var(--safe-area-inset-left, 0);--dialog-surface-padding:0px}ha-adaptive-dialog .form,ha-dialog .form{color:var(--primary-text-color)}a{color:var(--primary-color)}@media all and (max-width:450px),all and (max-height:500px){ha-adaptive-dialog,ha-dialog{--mdc-dialog-min-width:100vw;--mdc-dialog-max-width:100vw;--mdc-dialog-min-height:100vh;--mdc-dialog-min-height:100svh;--mdc-dialog-max-height:100vh;--mdc-dialog-max-height:100svh;--dialog-container-padding:0px;--dialog-surface-padding:var(--safe-area-inset-top, 0) var(--safe-area-inset-right, 0) var(--safe-area-inset-bottom, 0) var(--safe-area-inset-left, 0);--vertical-align-dialog:flex-end}ha-dialog{--ha-dialog-border-radius:var(--ha-border-radius-square)}}.error{color:var(--error-color)}`,s=a.AH`ha-adaptive-dialog,ha-dialog{--vertical-align-dialog:flex-start;--dialog-surface-margin-top:var(--ha-space-10);--mdc-dialog-max-height:calc(
      100vh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var(
          --safe-area-inset-y,
          0px
        )
    );--mdc-dialog-max-height:calc(
      100svh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var(
          --safe-area-inset-y,
          0px
        )
    );--ha-dialog-max-height:calc(
      100vh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var(
          --safe-area-inset-y,
          0px
        )
    );--ha-dialog-max-height:calc(
      100svh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var(
          --safe-area-inset-y,
          0px
        )
    )}@media all and (max-width:450px),all and (max-height:500px){ha-adaptive-dialog,ha-dialog{--dialog-surface-margin-top:0px;--mdc-dialog-min-height:100vh;--mdc-dialog-min-height:100svh;--mdc-dialog-max-height:100vh;--mdc-dialog-max-height:100svh;--ha-dialog-max-height:100vh;--ha-dialog-max-height:100svh}}`,l=a.AH`.ha-scrollbar::-webkit-scrollbar{width:.4rem;height:.4rem}.ha-scrollbar::-webkit-scrollbar-thumb{border-radius:var(--ha-border-radius-sm);background:var(--scrollbar-thumb-color)}.ha-scrollbar{overflow-y:auto;scrollbar-color:var(--scrollbar-thumb-color) transparent;scrollbar-width:thin}`;a.AH`body{background-color:var(--primary-background-color);color:var(--primary-text-color);height:calc(100vh - 32px);width:100vw}`},89429(t){t.exports=function(){}}};