`}_renderDebug(){var t;if(!this.config.debug)return;const e=this.hass.states[this.config.entity];let r,i="err",n="err",s=!1,o="err",a="err",l="";try{n=this.config.guess_mode?"guessed":"explicit",r="idle"!=this._mode()?Bt(this.hass,this.config,e,this._browserClockCorrection):void 0,s=!!r&&r>0&&"active"!=this._mode(),i=Xt(this.hass,this.config,this._browserClockCorrection)||"N/A",o=Gt(this.hass,this.config,this._browserClockCorrection)||"N/A",a=qt(this.hass,this.config,e)}catch(t){l="Error calculating duration:"+t}return R`
State: ${null!==(t=null==e?void 0:e.state)&&void 0!==t?t:"No entity specified"} (state mode = ${i})
Mode: ${this._mode()} (${n}; guess mode produces ${o})
Duration: ${a} second
Time remaining: ${r}
Counter: ${this._timeRemaining}
${s?R`Did you set active_state?`:""}
${l||""}
${e?R`Attr: ${JSON.stringify(e.attributes)}`:""}
`}_checkForSyncIssues(t){if(!t||!this.config.entity)return;const e=this.hass.states[this.config.entity];if(t.states[this.config.entity]==e)return;const r=Date.parse(e.last_changed)-Date.now();"show"==this.config.sync_issues&&Math.abs(r)>500?(Math.abs(r-this._previousClockCorrection)<500&&(this._warning=this._generateSyncWarning(r)),this._previousClockCorrection=r):"fix"==this.config.sync_issues&&Math.abs(r)<6e4&&(this._browserClockCorrection=r)}_generateSyncWarning(t){const e=t>0?"ahead of":"behind",r=Math.abs(t)/1e3;return R`${`Detected sync issues: Home Assistant clock is ${r}s ${e} app time.`}
Learn more.`}shouldUpdate(t){if(!this.config)return!1;if(t.has("_timeRemaining"))return!0;if(t.has("_currentMaxValue"))return!0;const e=t.get("hass");if(this._checkForSyncIssues(e),!e||!this.hass)return!0;return ee(te(this.config),e,this.hass)}updated(t){if(super.updated(t),t.has("hass")){const t=this.hass.states[this.config.entity];this._startInterval(t)}}_clearInterval(){this._interval&&(window.clearInterval(this._interval),this._interval=void 0)}_startInterval(t){this._clearInterval(),this._calculateRemaining(t),"active"!==this._mode()&&"countup"!==this._mode()||(this._interval=window.setInterval((()=>this._calculateRemaining(t)),1e3))}_calculateRemaining(t){try{if(this._timeRemaining="idle"!=this._mode()?Bt(this.hass,this.config,t,this._browserClockCorrection):void 0,this._error=void 0,this._isCountup&&"auto"===this.config.max_value&&this._timeRemaining){const t=this.config.auto_increment?Wt(this.config.auto_increment):3600;this._timeRemaining>=this._currentMaxValue-.1*t&&(this._currentMaxValue+=t)}}catch(t){console.error(t),this._error=t}}_barStyle(t,e){return ct({width:t,background:e,height:this.modConfig.bar_height,"border-radius":this.modConfig.bar_radius})}_textStyle(){return ct({width:this.modConfig.text_width,"flex-shrink":"0"})}_statusStyle(t){let e=this._bar_width;return t&&(e=`calc(${this._bar_width} + ${this.modConfig.text_width})`),ct({width:e,color:"var(--secondary-text-color, #eee)"})}static get styles(){return[o`
:host {
display: flex;
flex-direction: column;
justify-content: center;
}
.pointer { cursor: pointer; }
.flex { display: flex; height: 40px; align-items: center; justify-content: flex-end; }
.bar-container {
min-height: 1.5em;
display: flex;
flex-shrink: 0;
align-items: center;
}
.bar { margin-top: 2px; overflow: hidden; }
.status { line-height: 1.5em; flex-shrink: 0; }
.text-content { text-align: right; text-align: end; overflow: hidden; }
code {
display: block;
background-color: var(--secondary-background-color);
margin: 0.5em 0 0 0;
padding: 0.7rem;
font-size: 0.9em;
word-break: break-all;
}
`,ge]}get modConfig(){var t,e,r,i;if(!this.config.modifications)return this.config;const n=this.hass.states[this.config.entity],s=null!==(t="idle"!=this._mode()?Bt(this.hass,this.config,n,this._browserClockCorrection):void 0)&&void 0!==t?t:1/0;let o;o=this._isCountup?null!==(e=this._timeRemaining)&&void 0!==e?e:0:(null!==(r=qt(this.hass,this.config,n))&&void 0!==r?r:0)-s;const a=null!==(i=Ft(this.hass,this.config,n,this._browserClockCorrection,this._currentMaxValue))&&void 0!==i?i:0,l=100-a;let c=this.config;for(const t of this.config.modifications)void 0!==t.elapsed?"string"==typeof t.elapsed&&t.elapsed.endsWith("%")?a>=parseFloat(t.elapsed)&&(c=Object.assign(Object.assign({},c),t)):"number"==typeof t.elapsed&&o>=t.elapsed&&(c=Object.assign(Object.assign({},c),t)):void 0!==t.remaining&&("string"==typeof t.remaining&&t.remaining.endsWith("%")?l<=parseFloat(t.remaining)&&(c=Object.assign(Object.assign({},c),t)):"number"==typeof t.remaining&&s<=t.remaining&&(c=Object.assign(Object.assign({},c),t)));return c}}t([it()],Se.prototype,"hass",void 0),t([it()],Se.prototype,"config",void 0),t([nt()],Se.prototype,"_interval",void 0),t([nt()],Se.prototype,"_timeRemaining",void 0),t([nt()],Se.prototype,"_previousClockCorrection",void 0),t([nt()],Se.prototype,"_browserClockCorrection",void 0),t([nt()],Se.prototype,"_error",void 0),t([nt()],Se.prototype,"_warning",void 0),t([nt()],Se.prototype,"_isCountup",void 0),t([nt()],Se.prototype,"_currentMaxValue",void 0);const Ce=o`
--default-red: 244, 67, 54;
--default-pink: 233, 30, 99;
--default-purple: 156, 39, 176;
--default-deep-purple: 103, 58, 183;
--default-indigo: 63, 81, 181;
--default-blue: 33, 150, 243;
--default-light-blue: 3, 169, 244;
--default-cyan: 0, 188, 212;
--default-teal: 0, 150, 136;
--default-green: 76, 175, 80;
--default-light-green: 139, 195, 74;
--default-lime: 205, 220, 57;
--default-yellow: 255, 235, 59;
--default-amber: 255, 193, 7;
--default-orange: 255, 152, 0;
--default-deep-orange: 255, 87, 34;
--default-brown: 121, 85, 72;
--default-grey: 158, 158, 158;
--default-blue-grey: 96, 125, 139;
--default-black: 0, 0, 0;
--default-white: 255, 255, 255;
--default-disabled: 189, 189, 189;
`,Me=o`
--default-disabled: 111, 111, 111;
`,Ae=o`
--spacing: var(--mush-spacing, 10px);
/* Title */
--title-padding: var(--mush-title-padding, 24px 12px 8px);
--title-spacing: var(--mush-title-spacing, 8px);
--title-font-size: var(--mush-title-font-size, 24px);
--title-font-weight: var(--mush-title-font-weight, normal);
--title-line-height: var(--mush-title-line-height, 32px);
--title-color: var(--mush-title-color, var(--primary-text-color));
--title-letter-spacing: var(--mush-title-letter-spacing, -0.288px);
--subtitle-font-size: var(--mush-subtitle-font-size, 16px);
--subtitle-font-weight: var(--mush-subtitle-font-weight, normal);
--subtitle-line-height: var(--mush-subtitle-line-height, 24px);
--subtitle-color: var(--mush-subtitle-color, var(--secondary-text-color));
--subtitle-letter-spacing: var(--mush-subtitle-letter-spacing, 0px);
/* Card */
--card-primary-font-size: var(--mush-card-primary-font-size, 14px);
--card-secondary-font-size: var(--mush-card-secondary-font-size, 12px);
--card-primary-font-weight: var(--mush-card-primary-font-weight, 500);
--card-secondary-font-weight: var(--mush-card-secondary-font-weight, 400);
--card-primary-line-height: var(--mush-card-primary-line-height, 20px);
--card-secondary-line-height: var(--mush-card-secondary-line-height, 16px);
--card-primary-color: var(
--mush-card-primary-color,
var(--primary-text-color)
);
--card-secondary-color: var(
--mush-card-secondary-color,
var(--primary-text-color)
);
--card-primary-letter-spacing: var(--mush-card-primary-letter-spacing, 0.1px);
--card-secondary-letter-spacing: var(
--mush-card-secondary-letter-spacing,
0.4px
);
/* Chips */
--chip-spacing: var(--mush-chip-spacing, 8px);
--chip-padding: var(--mush-chip-padding, 0 0.25em);
--chip-height: var(--mush-chip-height, 36px);
--chip-border-radius: var(--mush-chip-border-radius, 19px);
--chip-border-width: var(
--mush-chip-border-width,
var(--ha-card-border-width, 1px)
);
--chip-border-color: var(
--mush-chip-border-color,
var(--ha-card-border-color, var(--divider-color))
);
--chip-box-shadow: var(
--mush-chip-box-shadow,
var(--ha-card-box-shadow, "none")
);
--chip-font-size: var(--mush-chip-font-size, 0.3em);
--chip-font-weight: var(--mush-chip-font-weight, bold);
--chip-icon-size: var(--mush-chip-icon-size, 0.5em);
--chip-avatar-padding: var(--mush-chip-avatar-padding, 0.1em);
--chip-avatar-border-radius: var(--mush-chip-avatar-border-radius, 50%);
--chip-background: var(
--mush-chip-background,
var(--ha-card-background, var(--card-background-color, white))
);
/* Controls */
--control-border-radius: var(--mush-control-border-radius, 12px);
--control-height: var(--mush-control-height, 42px);
--control-button-ratio: var(--mush-control-button-ratio, 1);
--control-icon-size: var(--mush-control-icon-size, 0.5em);
--control-spacing: var(--mush-control-spacing, 12px);
/* Slider */
--slider-threshold: var(--mush-slider-threshold);
/* Input Number */
--input-number-debounce: var(--mush-input-number-debounce);
/* Layout */
--layout-align: var(--mush-layout-align, center);
/* Badge */
--badge-size: var(--mush-badge-size, 16px);
--badge-icon-size: var(--mush-badge-icon-size, 0.75em);
--badge-border-radius: var(--mush-badge-border-radius, 50%);
/* Icon */
--icon-border-radius: var(--mush-icon-border-radius, 50%);
--icon-size: var(--mush-icon-size, 36px);
--icon-symbol-size: var(--mush-icon-symbol-size, 0.6em);
`,Ee=o`
/* RGB */
/* Standard colors */
--rgb-red: var(--mush-rgb-red, var(--default-red));
--rgb-pink: var(--mush-rgb-pink, var(--default-pink));
--rgb-purple: var(--mush-rgb-purple, var(--default-purple));
--rgb-deep-purple: var(--mush-rgb-deep-purple, var(--default-deep-purple));
--rgb-indigo: var(--mush-rgb-indigo, var(--default-indigo));
--rgb-blue: var(--mush-rgb-blue, var(--default-blue));
--rgb-light-blue: var(--mush-rgb-light-blue, var(--default-light-blue));
--rgb-cyan: var(--mush-rgb-cyan, var(--default-cyan));
--rgb-teal: var(--mush-rgb-teal, var(--default-teal));
--rgb-green: var(--mush-rgb-green, var(--default-green));
--rgb-light-green: var(--mush-rgb-light-green, var(--default-light-green));
--rgb-lime: var(--mush-rgb-lime, var(--default-lime));
--rgb-yellow: var(--mush-rgb-yellow, var(--default-yellow));
--rgb-amber: var(--mush-rgb-amber, var(--default-amber));
--rgb-orange: var(--mush-rgb-orange, var(--default-orange));
--rgb-deep-orange: var(--mush-rgb-deep-orange, var(--default-deep-orange));
--rgb-brown: var(--mush-rgb-brown, var(--default-brown));
--rgb-light-grey: var(--mush-rgb-light-grey, var(--default-light-grey));
--rgb-grey: var(--mush-rgb-grey, var(--default-grey));
--rgb-dark-grey: var(--mush-rgb-dark-grey, var(--default-dark-grey));
--rgb-blue-grey: var(--mush-rgb-blue-grey, var(--default-blue-grey));
--rgb-black: var(--mush-rgb-black, var(--default-black));
--rgb-white: var(--mush-rgb-white, var(--default-white));
--rgb-disabled: var(--mush-rgb-disabled, var(--default-disabled));
/* Action colors */
--rgb-info: var(--mush-rgb-info, var(--rgb-blue));
--rgb-success: var(--mush-rgb-success, var(--rgb-green));
--rgb-warning: var(--mush-rgb-warning, var(--rgb-orange));
--rgb-danger: var(--mush-rgb-danger, var(--rgb-red));
/* State colors */
--rgb-state-vacuum: var(--mush-rgb-state-vacuum, var(--rgb-teal));
--rgb-state-fan: var(--mush-rgb-state-fan, var(--rgb-green));
--rgb-state-light: var(--mush-rgb-state-light, var(--rgb-orange));
--rgb-state-entity: var(--mush-rgb-state-entity, var(--rgb-blue));
--rgb-state-media-player: var(
--mush-rgb-state-media-player,
var(--rgb-indigo)
);
--rgb-state-lock: var(--mush-rgb-state-lock, var(--rgb-blue));
--rgb-state-number: var(--mush-rgb-state-number, var(--rgb-blue));
--rgb-state-humidifier: var(--mush-rgb-state-humidifier, var(--rgb-purple));
/* State alarm colors */
--rgb-state-alarm-disarmed: var(
--mush-rgb-state-alarm-disarmed,
var(--rgb-info)
);
--rgb-state-alarm-armed: var(
--mush-rgb-state-alarm-armed,
var(--rgb-success)
);
--rgb-state-alarm-triggered: var(
--mush-rgb-state-alarm-triggered,
var(--rgb-danger)
);
/* State person colors */
--rgb-state-person-home: var(
--mush-rgb-state-person-home,
var(--rgb-success)
);
--rgb-state-person-not-home: var(
--mush-rgb-state-person-not-home,
var(--rgb-danger)
);
--rgb-state-person-zone: var(--mush-rgb-state-person-zone, var(--rgb-info));
--rgb-state-person-unknown: var(
--mush-rgb-state-person-unknown,
var(--rgb-grey)
);
/* State update colors */
--rgb-state-update-on: var(--mush-rgb-state-update-on, var(--rgb-orange));
--rgb-state-update-off: var(--mush-rgb-update-off, var(--rgb-green));
--rgb-state-update-installing: var(
--mush-rgb-update-installing,
var(--rgb-blue)
);
/* State lock colors */
--rgb-state-lock-locked: var(--mush-rgb-state-lock-locked, var(--rgb-green));
--rgb-state-lock-unlocked: var(
--mush-rgb-state-lock-unlocked,
var(--rgb-red)
);
--rgb-state-lock-pending: var(
--mush-rgb-state-lock-pending,
var(--rgb-orange)
);
/* State cover colors */
--rgb-state-cover-open: var(--mush-rgb-state-cover-open, var(--rgb-blue));
--rgb-state-cover-closed: var(
--mush-rgb-state-cover-closed,
var(--rgb-disabled)
);
/* State climate colors */
--rgb-state-climate-auto: var(
--mush-rgb-state-climate-auto,
var(--rgb-green)
);
--rgb-state-climate-cool: var(--mush-rgb-state-climate-cool, var(--rgb-blue));
--rgb-state-climate-dry: var(--mush-rgb-state-climate-dry, var(--rgb-orange));
--rgb-state-climate-fan-only: var(
--mush-rgb-state-climate-fan-only,
var(--rgb-teal)
);
--rgb-state-climate-heat: var(
--mush-rgb-state-climate-heat,
var(--rgb-deep-orange)
);
--rgb-state-climate-heat-cool: var(
--mush-rgb-state-climate-heat-cool,
var(--rgb-green)
);
--rgb-state-climate-idle: var(
--mush-rgb-state-climate-idle,
var(--rgb-disabled)
);
--rgb-state-climate-off: var(
--mush-rgb-state-climate-off,
var(--rgb-disabled)
);
`,ke=o`
ha-card {
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: var(--layout-align);
height: auto;
display: flex;
flex-direction: column;
}
ha-card.fill-container {
height: 100%;
}
:host([layout="grid"]) ha-card {
height: 100%;
}
.actions {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE 10+ */
padding: var(--control-spacing);
padding-top: 0;
box-sizing: border-box;
gap: var(--control-spacing);
}
.actions::-webkit-scrollbar {
background: transparent; /* Chrome/Safari/Webkit */
height: 0px;
}
.unavailable {
--main-color: rgb(var(--rgb-warning));
}
.not-found {
--main-color: rgb(var(--rgb-danger));
}
mushroom-state-item[disabled] {
cursor: initial;
}
`,De=["primary","accent","red","pink","purple","deep-purple","indigo","blue","light-blue","cyan","teal","green","light-green","lime","yellow","amber","orange","deep-orange","brown","grey","blue-grey","black","white","disabled"];function Oe(t){if("primary"===t||"accent"===t)return`var(--rgb-${t}-color)`;if(De.includes(t))return`var(--rgb-${t})`;if(t.startsWith("#")){const e=parseInt(t.substring(1),16);return isNaN(e)?"":[e>>16&255,e>>8&255,255&e].join(", ")}return t}const Ne=["button","input_button","scene"];function He(t,e,r,i,n){switch(t){case"name":return e;case"state":const t=i.entity_id.split(".")[0];return"timestamp"!==i.attributes.device_class&&!Ne.includes(t)||!function(t){return"unavailable"!==t.state}(i)||function(t){return"unknown"===t.state}(i)?r:R`
`;case"last-changed":return R`
`;case"last-updated":return R`
`;case"none":return}}const ze=t=>{return void 0===t.attributes.friendly_name?(e=t.entity_id,e.substring(e.indexOf(".")+1)).replace(/_/g," "):t.attributes.friendly_name||"";var e},Re=t=>t&&!!t.themes.darkMode;class Te extends Se{constructor(){super(...arguments),this.mushroom={}}updated(t){if(super.updated(t),t.has("hass")&&this.hass){const e=Re(t.get("hass")),r=Re(this.hass);e!==r&&this.toggleAttribute("dark-mode",r)}}_renderRow(t,e){var r;if(!this.hass)return R``;const i=this._warning?R`
${this._warning}`:"",n=function(t){var e=t.locale.language||"en";return t.translationMetadata.translations[e]&&t.translationMetadata.translations[e].isRTL||!1}(this.hass),s=this.hass.states[this.config.entity],o=null!==(r=t.name)&&void 0!==r?r:ze(s);"hide_name"===this.modConfig.layout&&(t=Object.assign(Object.assign({},t),{name:""}));const a=this.appearance(),l=He(a.primary_info,o,super._renderState(),s,this.hass);return R`
${i} ${this._renderIcon(s)} ${this._renderBadge(s)}
${l}
${e}
${this._renderDebug()}
`}_renderState(){var t;const e=this.hass.states[this.config.entity],r=null!==(t=this.config.name)&&void 0!==t?t:ze(e),i=this.appearance(),n=super._renderState();return He(i.secondary_info,r,n,e,this.hass)}_renderIcon(t){const e=this.config.icon,r="active"==this._mode();let i="";if(this.mushroom.icon_color||this.mushroom.color){const t=Oe(this.mushroom.color||this.mushroom.icon_color);i+=`--icon-color:rgb(${t});`,i+=`--shape-color:rgba(${t}, 0.2);`}return R`
`}_renderBadge(t){return"unavailable"===t.state?R`
`:P}appearance(){var t,e,r,i,n;return{layout:null!==(t=this.mushroom.layout)&&void 0!==t?t:"default",fill_container:null!==(e=this.mushroom.fill_container)&&void 0!==e&&e,primary_info:null!==(r=this.mushroom.primary_info)&&void 0!==r?r:"name",secondary_info:null!==(i=this.mushroom.secondary_info)&&void 0!==i?i:"state",icon_type:null!==(n=this.mushroom.icon_type)&&void 0!==n?n:"icon"}}localize(t,e,r){return super.localize(t,e,!1)}static get styles(){return[super.styles,o`
:host {
${Ce}
}
:host([dark-mode]) {
${Me}
}
:host {
${Ee}
${Ae}
}
`,ke,o`
:host([layout="grid"]) {
height: 100%;
}
mushroom-state-item {
cursor: pointer;
}
mushroom-shape-icon {
--icon-color: rgb(var(--rgb-state-entity));
--shape-color: rgba(var(--rgb-state-entity), 0.2);
}
.container {
min-width: 0;
flex: 1;
display: flex;
flex-direction: column;
}
.primary {
font-weight: var(--card-primary-font-weight);
font-size: var(--card-primary-font-size);
line-height: var(--card-primary-line-height);
color: var(--card-primary-color);
letter-spacing: var(--card-primary-letter-spacing);
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.secondary {
font-weight: var(--card-secondary-font-weight);
font-size: var(--card-secondary-font-size);
line-height: var(--card-secondary-line-height);
color: var(--card-secondary-color);
letter-spacing: var(--card-secondary-letter-spacing);
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
display: flex;
flex-direction: row-reverse;
justify-content: start;
align-items: center;
}
.secondary.vertical {
flex-direction: column-reverse;
justify-content: center;
}
.secondary.vertical > .text-content {
width: 100% !important;
text-align: center;
}
.bar {
margin-top: 0;
}
.bar-container {
flex-grow: 1;
}
.text-content {
text-align: start;
}
`]}}t([it()],Te.prototype,"mushroom",void 0),t([it({reflect:!0,type:String})],Te.prototype,"layout",void 0);window.customCards=window.customCards||[],window.customCards.push({type:"timer-bar-card",name:"Timer Bar Card",description:"Display timer-related information as a progress bar"}),window.customElements.define("timer-bar-entity-row",Se),window.customElements.define("timer-bar-mushroom-row",Te),console.info("%c TIMER-BAR-CARD %c Version 1.31.0 ","font-weight: bold; color: #000; background: #aeb","font-weight: bold; color: #000; background: #ddd");let Pe=class extends Q{static async getConfigElement(){return await Promise.resolve().then((function(){return Ue})),document.createElement("timer-bar-editor")}static getStubConfig(){return{}}setConfig(t){if(!t)throw new Error("Invalid configuration");"mushroom"in t&&t.mushroom?this.config=function(t,e){let r="var(--rgb-state-entity)";return e.icon_color&&(r=Oe(e.icon_color)),e.color&&(r=Oe(e.color)),Object.assign(Object.assign(Object.assign({},we(t)),{bar_background:`rgba(${r}, 0.2)`,bar_foreground:`rgb(${r})`,bar_radius:"2px",translations:t.translations}),t)}(t,t.mushroom):this.config=we(t),this.config.duration&&this.config.max_value&&console.warn("Both 'duration' and 'max_value' are set. 'duration' will take precedence.")}render(){var t,e;const r=this.config;if(r.entity&&r.entities)return R`
Both entity and entities cannot be defined`;if(r.entity)return"mushroom"in r?R`
`:R`
`;if(r.entities&&!this._filteredEntities().length){if(this.editMode||r.show_empty){const t=void 0===r.show_empty?"No entities match the filter. This card will disappear when you finish editing.":r.show_empty;return R`
${t}
`}return R``}return r.entities?R`
${r.name&&!r.header_entity?R``:""}
${r.header_entity?this._renderTitle():""}
${this._renderContent()}
`:R`
Neither entity nor entities are defined`}_hasEntityChanged(t,...e){for(const r of e)if(r)if("string"==typeof r){if(t.states[r]!==this.hass.states[r])return!0}else if("entity"in r){if(r.entity&&t.states[r.entity]!==this.hass.states[r.entity])return!0}else if("script"in r&&r.script&&t.states[r.script]!==this.hass.states[r.script])return!0;return!1}shouldUpdate(t){if(!this.config)return!1;if(t.has("config"))return!0;if(this.config.entity)return function(t,e,r){if(e.has("config")||r)return!0;if(t.config.entity){var i=e.get("hass");return!i||i.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}(this,t,!1);this.updateComplete.then((()=>this._patchFontSize()));const e=t.get("hass");if(!e||!this.hass)return!0;const r=te(this.config);this.config.header_entity&&r.push(this.config.header_entity);for(const t of this.config.entities)"string"==typeof t?r.push(t):r.push(...te(t));return ee(r,e,this.hass)}_configFor(t){let e=Object.assign({},this.config);return delete e.name,"string"==typeof t?e.entity=t:e=Object.assign(Object.assign({},e),t),e}_renderContent(){return this._filteredEntities().map((t=>{const e=this.config.compressed?{height:"36px"}:{};return R`
`}))}_renderTitle(){const t=this._filteredEntities().length>0?{"margin-bottom":"12px"}:{},e={entity:this.config.header_entity,secondary_info:this.config.header_secondary};return R`
`}_patchFontSize(){var t;const e=this.renderRoot.querySelector("hui-generic-entity-row"),r=null===(t=null==e?void 0:e.shadowRoot)||void 0===t?void 0:t.querySelector(".info");if(!r)return;const i=[...r.childNodes].filter((t=>t.nodeType===Node.TEXT_NODE&&t.textContent.trim()));if(i[0]){const t=document.createElement("span");t.style.fontSize="1.1em",r.insertBefore(t,i[0]),r.removeChild(i[0]),t.appendChild(i[0])}}_entitiesOfMode(t,e){return t.filter((t=>Qt(this.hass,this._configFor(t),0)===e))}_filteredEntities(){return this.config.filter&&this.hass?this._entitiesOfMode(this.config.entities,"active").concat(this._entitiesOfMode(this.config.entities,"pause")).concat(this._entitiesOfMode(this.config.entities,"waiting")):this.config.entities}async getCardSize(){if(this.config.entity)return 1;let t=0;return this.config.header_entity?t+=1:this.config.name&&(t+=2),t+this._filteredEntities().length}getGridOptions(){if(!("mushroom"in this.config))return;if(!this.config.mushroom)return{columns:6,rows:1};const t={min_rows:1,min_columns:4,columns:6,rows:0},e=this.config.mushroom;"collapsible_controls"in this.config&&Boolean(this.config.collapsible_controls);const r="none"!==e.primary_info||"none"!==e.secondary_info,i="none"!==e.icon_type;return"vertical"===e.layout&&(i&&(t.rows+=1),r&&(t.rows+=1),t.min_columns=2),"horizontal"===e.layout&&(t.rows=1,t.columns=12),"default"===e.layout&&(r||i)&&(t.rows+=1),r||(t.columns=3,t.rows=1,t.min_columns=2),t.rows=Math.max(t.rows,1),t.min_rows=t.rows,t}};Pe.styles=o`
.card-header {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
`,t([it()],Pe.prototype,"hass",void 0),t([it({attribute:!1})],Pe.prototype,"editMode",void 0),t([nt()],Pe.prototype,"config",void 0),t([it({reflect:!0,type:String})],Pe.prototype,"layout",void 0),Pe=t([et("timer-bar-card")],Pe);let je=class extends Q{constructor(){super(...arguments),this.yamlChange=!1}setConfig(t){var e;this.config=t,this.yamlChange||null===(e=this._yamlEditor)||void 0===e||e.setValue(t),this.yamlChange=!1}render(){return this.config?R`
`:R`loading...`}_ignoreKeydown(t){t.stopPropagation()}_handleYAMLChanged(t){t.stopPropagation();const e=t.detail.value;t.detail.isValid&&(this.yamlChange=!0,this.config=e,Ut(this,"config-changed",{config:this.config}))}};je.styles=o`
.instructions {
margin-bottom: 8px;
}
.instructions a {
color: var(--mdc-theme-primary,#6200ee);
}
`,t([it({attribute:!1})],je.prototype,"hass",void 0),t([nt()],je.prototype,"config",void 0),t([
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
function(t,e){return(({finisher:t,descriptor:e})=>(r,i)=>{var n;if(void 0===i){const i=null!==(n=r.originalKey)&&void 0!==n?n:r.key,s=null!=e?{kind:"method",placement:"prototype",key:i,descriptor:e(r.key)}:{...r,key:i};return null!=t&&(s.finisher=function(e){t(e,i)}),s}{const n=r.constructor;void 0!==e&&Object.defineProperty(r,i,e(i)),null==t||t(n,i)}})({descriptor:r=>{const i={get(){var e,r;return null!==(r=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t))&&void 0!==r?r:null},enumerable:!0,configurable:!0};if(e){const e="symbol"==typeof r?Symbol():"__"+r;i.get=function(){var r,i;return void 0===this[e]&&(this[e]=null!==(i=null===(r=this.renderRoot)||void 0===r?void 0:r.querySelector(t))&&void 0!==i?i:null),this[e]}}return i}})}("ha-yaml-editor")],je.prototype,"_yamlEditor",void 0),je=t([et("timer-bar-editor")],je);var Ue=Object.freeze({__proto__:null,get TimerBarEditor(){return je}});export{Pe as TimerBarCard};