forked from TheRealSimon42/simon42-dashboard-strategy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimon42-dashboard-strategy-views.1e09a51b.js
More file actions
1 lines (1 loc) · 22.5 KB
/
Copy pathsimon42-dashboard-strategy-views.1e09a51b.js
File metadata and controls
1 lines (1 loc) · 22.5 KB
1
"use strict";(self.webpackChunksimon42_dashboard_strategy=self.webpackChunksimon42_dashboard_strategy||[]).push([[475],{355(e,t,i){i.r(t);var s=i(120),n=i(727),o=i(13);function a(e,t,i){if(0===e.length)return null;const s="critical"===t?"red":"low"===t?"yellow":"green";return{type:"grid",cards:[{type:"heading",heading:`${"critical"===t?"🔴":"low"===t?"🟡":"🟢"} ${(0,n.localize)("batteries."+t)} (${i}) - ${e.length} ${(0,n.localize)(1===e.length?"batteries.battery_one":"batteries.battery_many")}`,heading_style:"title"},...e.map(e=>({type:"tile",entity:e,vertical:!1,state_content:["state","last_changed"],color:s}))]}}class c extends HTMLElement{static async generate(e,t){s.Registry.initialize(t,e.config||{});const i=(0,o.fS)(t,e.config),n=e.config||{},c=n.battery_critical_threshold??20,r=n.battery_low_threshold??50,l=[],p=[],d=[];for(const e of i){const i=t.states[e];if(e.startsWith("binary_sensor.")){("on"===i.state?l:d).push(e);continue}const s=parseFloat(i.state),n=i.attributes?.unit_of_measurement;n&&"%"!==n||(isNaN(s)||s<c?l.push(e):s<=r?p.push(e):d.push(e))}const u=(e,i)=>{const s=parseFloat(t.states[e]?.state),n=parseFloat(t.states[i]?.state);return isNaN(s)?-1:isNaN(n)?1:s-n};l.sort(u),p.sort(u),d.sort(u);const _=[],y=a(l,"critical",`< ${c}%`);y&&_.push(y);const h=a(p,"low",`${c}% - ${r}%`);h&&_.push(h);const g=a(d,"good",`> ${r}%`);return g&&_.push(g),{type:"sections",sections:_}}}customElements.define("ll-strategy-simon42-view-batteries",c)},197(e,t,i){i.r(t);var s=i(120),n=i(727);class o extends HTMLElement{static async generate(e,t){s.Registry.initialize(t,e.config||{});const i=s.Registry.getVisibleEntityIdsForDomain("climate").filter(e=>void 0!==t.states[e]),o=[],a=[],c=[],r=[];for(const e of i){const i=t.states[e],s=i.attributes?.hvac_action,n=i.state;"off"===n||"unavailable"===n||"unknown"===n?r.push(e):"heating"===s||!s&&"heat"===n?o.push(e):"cooling"===s||!s&&"cool"===n?a.push(e):c.push(e)}const l=[],p=(e,t,i)=>{0!==e.length&&l.push({type:"grid",cards:[{type:"heading",heading:`${t} (${e.length})`,heading_style:"title",icon:i},...e.map(e=>({type:"tile",entity:e,vertical:!1,features:[{type:"climate-hvac-modes"}],features_position:"inline",state_content:["hvac_action","current_temperature"]}))]})};return p(o,(0,n.localize)("climate.heating"),"mdi:fire"),p(a,(0,n.localize)("climate.cooling"),"mdi:snowflake"),p(c,(0,n.localize)("climate.idle"),"mdi:thermostat"),p(r,(0,n.localize)("climate.off"),"mdi:power-off"),{type:"sections",sections:l}}}customElements.define("ll-strategy-simon42-view-climate",o)},216(e,t,i){i.r(t);var s=i(727);class n extends HTMLElement{static async generate(e,t){const i=!0===(e.config||{}).show_partially_open_covers,n=e.device_classes||["awning","blind","curtain","shade","shutter","window"],o=n.filter(e=>"awning"!==e&&"window"!==e),a=n.includes("awning"),c=n.includes("window"),r={entities:e.entities,config:e.config},l=[{type:"custom:simon42-covers-group-card",...r,device_classes:o,group_type:"open",show_partially_open:i}];if(i&&l.push({type:"custom:simon42-covers-group-card",...r,device_classes:o,group_type:"partially_open",show_partially_open:!0}),l.push({type:"custom:simon42-covers-group-card",...r,device_classes:o,group_type:"closed",show_partially_open:i}),a){const e={...r,device_classes:["awning"],heading_open:(0,s.localize)("covers.awnings_open"),heading_closed:(0,s.localize)("covers.awnings_closed"),heading_partial:(0,s.localize)("covers.awnings_partial"),batch_open_text:(0,s.localize)("covers.awnings_open_all"),batch_close_text:(0,s.localize)("covers.awnings_close_all")};l.push({type:"custom:simon42-covers-group-card",...e,group_type:"open",show_partially_open:i}),i&&l.push({type:"custom:simon42-covers-group-card",...e,group_type:"partially_open",show_partially_open:!0}),l.push({type:"custom:simon42-covers-group-card",...e,group_type:"closed",show_partially_open:i})}if(c){const e={...r,device_classes:["window"],heading_open:(0,s.localize)("covers.windows_open"),heading_closed:(0,s.localize)("covers.windows_closed"),heading_partial:(0,s.localize)("covers.windows_partial"),batch_open_text:(0,s.localize)("covers.windows_open_all"),batch_close_text:(0,s.localize)("covers.windows_close_all")};l.push({type:"custom:simon42-covers-group-card",...e,group_type:"open",show_partially_open:i}),i&&l.push({type:"custom:simon42-covers-group-card",...e,group_type:"partially_open",show_partially_open:!0}),l.push({type:"custom:simon42-covers-group-card",...e,group_type:"closed",show_partially_open:i})}return{type:"sections",sections:[{type:"grid",cards:l}]}}}customElements.define("ll-strategy-simon42-view-covers",n)},965(e,t,i){i.r(t);class s extends HTMLElement{static async generate(e,t){const i=e.dashboardConfig||e.config||{},s=!0===i.group_lights_by_floors,n=!0===i.nested_light_groups;return{type:"sections",sections:[{type:"grid",cards:[{type:"custom:simon42-lights-group-card",entities:e.entities,config:e.config,group_type:"on",group_by_floors:s,nested_groups:n},{type:"custom:simon42-lights-group-card",entities:e.entities,config:e.config,group_type:"off",group_by_floors:s,nested_groups:n}]}]}}}customElements.define("ll-strategy-simon42-view-lights",s)},199(e,t,i){i.r(t);var s=i(222),n=i(120),o=i(278),a=i(727),c=i(286);function r(e){return!!(1&e.attributes?.supported_features)}const l=new Set(["duration","apparent_power","power","voltage"]),p=/(^|[._])(runtime|time_left|load_runtime)([._]|$)/,d=/(^|[._])load([._]|$)/,u=/(^|[._])(voltage|input_voltage|input)([._]|$)/,_=/(^|[._])(status|state)([._]|$)/,y=/(^|[._])(load|runtime|time_left|input_voltage|input)([._]|$)/;function h(e,t){const i=t.attributes?.device_class;return"duration"===i||p.test(e)?1:"power"===i||"apparent_power"===i||d.test(e)?2:"voltage"===i||u.test(e)?3:_.test(e)?4:5}function g(e,t){const i=[],s=[];function n(){0!==s.length&&i.push({type:"grid",cards:s.splice(0)})}for(const o of e){if((o.position||"bottom")!==t)continue;const e=o.mode||"yaml";if("section"===e){if(!o.parsed_config||o._yaml_error)continue;const e=(Array.isArray(o.parsed_config)?o.parsed_config:[o.parsed_config]).filter(e=>e&&"object"==typeof e&&Array.isArray(e.cards));if(0===e.length)continue;n(),e.forEach((e,t)=>{const s={...e};o.title&&0===t&&(s.cards=[{type:"heading",heading:o.title},...s.cards||[]]),i.push(s)});continue}if("tile"!==e){if(o.parsed_config&&!o._yaml_error&&"object"==typeof o.parsed_config){const e=Array.isArray(o.parsed_config)?o.parsed_config:[o.parsed_config];o.title&&s.push({type:"heading",heading:o.title}),s.push(...e)}}else{if(!o.entity)continue;o.title&&s.push({type:"heading",heading:o.title}),s.push({type:"tile",entity:o.entity})}}return n(),i}class m extends HTMLElement{static async generate(e,t){const i=e.area;(0,o.cY)(`room-generate-${i.area_id}: called at ${performance.now().toFixed(1)}ms after page load`),(0,o.sX)(`room-generate-${i.area_id}`);const p=e.dashboardConfig||{};n.Registry.initialize(t,p);const d=e.groups_options||{},u=e.custom_cards||[],_={lights:[],covers:[],covers_curtain:[],covers_window:[],scenes:[],climate:[],media_player:[],vacuum:[],fan:[],switches:[],locks:[],automations:[],scripts:[],cameras:[],ups:[]},m={temperature:[],humidity:[],pm25:[],pm10:[],co2:[],voc:[],motion:[],occupancy:[],illuminance:[],absolute_humidity:[],battery:[],window:[],door:[],smoke:[],gas:[]},f=n.Registry.getVisibleEntitiesForArea(i.area_id),w=!1!==p.show_ups_in_rooms,v=new Set,b=[];if(w){const e=new Map;for(const i of f){const s=i.entity_id.split(".")[0];if("sensor"!==s&&"binary_sensor"!==s)continue;if(!i.device_id)continue;const n=t.states[i.entity_id];if(!n)continue;const o={entityId:i.entity_id,state:n,platform:i.platform},a=e.get(i.device_id);a?a.push(o):e.set(i.device_id,[o])}for(const[t,i]of e){const e=i.find(e=>{const t=e.state.attributes;return"battery"===t?.device_class&&"%"===t?.unit_of_measurement}),s=e?.entityId;if(!s)continue;if(!i.some(e=>"nut"===e.platform)&&!i.some(e=>{if(e.entityId===s)return!1;const t=e.state.attributes?.device_class;return void 0!==t&&l.has(t)||y.test(e.entityId)}))continue;const o=n.Registry.getDevice(t),a=o?.name_by_user??o?.name??"UPS";for(const e of i)v.add(e.entityId);const c=i.filter(e=>e.entityId!==s).map(e=>({id:e.entityId,role:h(e.entityId,e.state)})).sort((e,t)=>e.role-t.role).map(e=>e.id);b.push({name:a,batteryId:s,sensorIds:c})}}for(const e of b)_.ups.push(e.batteryId);for(const e of f){const i=e.entity_id;if(v.has(i))continue;const s=t.states[i];if(!s)continue;const n=i.split(".")[0],o=s.attributes?.device_class,a=s.attributes?.unit_of_measurement;if("light"!==n)if("cover"!==n)if("scene"!==n)if("climate"!==n)if("media_player"!==n)if("vacuum"!==n)if("fan"!==n)if("switch"!==n)if("lock"===n&&p.show_locks_in_rooms)_.locks.push(i);else if("automation"===n&&p.show_automations_in_rooms)_.automations.push(i);else if("script"===n&&p.show_scripts_in_rooms)_.scripts.push(i);else if("camera"!==n){if("sensor"===n){if(i.includes("battery")||"battery"===o){const e=parseFloat(s.state);!isNaN(e)&&e<20&&m.battery.push(i);continue}if("temperature"===o||"°C"===a||"°F"===a)continue;if("humidity"===o||"%"===a)continue;if("g/m³"===a){m.absolute_humidity.push(i);continue}if("pm25"===o||i.includes("pm_2_5")||i.includes("pm25")){m.pm25.push(i);continue}if("pm10"===o||i.includes("pm_10")||i.includes("pm10")){m.pm10.push(i);continue}if("carbon_dioxide"===o||i.includes("co2")){m.co2.push(i);continue}if("volatile_organic_compounds"===o||i.includes("voc")){m.voc.push(i);continue}if("illuminance"===o||"lx"===a){m.illuminance.push(i);continue}}if("binary_sensor"===n){if("motion"===o){m.motion.push(i);continue}if("occupancy"===o||"presence"===o){m.occupancy.push(i);continue}if("window"===o){m.window.push(i);continue}if("door"===o){m.door.push(i);continue}if("smoke"===o){m.smoke.push(i);continue}if("gas"===o){m.gas.push(i);continue}}}else _.cameras.push(i);else _.switches.push(i);else _.fan.push(i);else _.vacuum.push(i);else _.media_player.push(i);else _.climate.push(i);else _.scenes.push(i);else"curtain"===o?_.covers_curtain.push(i):"window"===o||"door"===o||"gate"===o||"garage"===o?_.covers_window.push(i):_.covers.push(i);else _.lights.push(i)}const k=e=>{const t=d[e];if(!t)return _[e];let i=_[e];if(t.hidden?.length>0){const e=new Set(t.hidden);i=i.filter(t=>!e.has(t))}if(t.order?.length>0){const e=new Map(t.order.map((e,t)=>[e,t]));i.sort((t,i)=>(e.get(t)??9999)-(e.get(i)??9999))}return i};for(const e of Object.keys(_))_[e]=k(e);let z=null,E=null;i.temperature_entity_id&&t.states[i.temperature_entity_id]&&!n.Registry.isEntityExcluded(i.temperature_entity_id)&&(z=i.temperature_entity_id),i.humidity_entity_id&&t.states[i.humidity_entity_id]&&!n.Registry.isEntityExcluded(i.humidity_entity_id)&&(E=i.humidity_entity_id);const x=d.badges,T=!!x,$=[],R=(e,i,s)=>{const n=s||t.states[e]?.attributes?.device_class;$.push({entity:e,color:c.Db[i]||"grey",...(0,c.g7)(n)?{showName:!0}:{}})},I=[[m.pm25,"pm25"],[m.pm10,"pm10"],[m.co2,"carbon_dioxide"],[m.voc,"volatile_organic_compounds"],[m.illuminance,"illuminance"],[m.battery,"battery"],[m.motion,"motion"],[m.occupancy,"occupancy"],[m.absolute_humidity,"moisture"],[m.smoke,"smoke"],[m.gas,"gas"]];for(const[e,t]of I)e[0]&&R(e[0],t);for(const e of m.window)R(e,"window","window");for(const e of m.door)R(e,"door","door");let N=$;if(T){if(x.hidden?.length){const e=new Set(x.hidden);N=N.filter(t=>!e.has(t.entity))}if(x.additional?.length)for(const e of x.additional)t.states[e]&&!N.some(t=>t.entity===e)&&N.push({entity:e,color:(0,c.GX)(e,t)})}const F=T?new Set(x.names_visible||[]):null,W=T?new Set(x.names_hidden||[]):null,D=[];z&&D.push({type:"entity",entity:z,color:"red",tap_action:{action:"more-info"}}),E&&D.push({type:"entity",entity:E,color:"indigo",tap_action:{action:"more-info"}});for(const e of N){const t=(0,c.LN)(e.entity,!!e.showName,F,W);D.push({type:"entity",entity:e.entity,color:e.color,tap_action:{action:"more-info"},...t?{show_name:!0}:{}})}const L=[...g(u,"top")],M=(0,s.WZ)(p.areas_options?.[i.area_id]?.stacks_order),S=new Map;function A(e,t){const i=S.get(e)??[];i.push(t),S.set(e,i)}const C=new Set(_.ups),H=b.filter(e=>C.has(e.batteryId));if(H.length>0){const e="number"==typeof p.battery_critical_threshold?p.battery_critical_threshold:20,n="number"==typeof p.battery_low_threshold?p.battery_low_threshold:50;for(const o of H){const c=[{type:"heading",heading:o.name,heading_style:"title",icon:"mdi:power-plug-battery"},{type:"gauge",entity:o.batteryId,name:(0,a.localize)("ups.battery"),min:0,max:100,needle:!1,severity:{red:0,yellow:e,green:n},tap_action:{action:"more-info"}}];for(const e of o.sensorIds)c.push({type:"tile",entity:e,name:(0,s.To)(e,i,t),vertical:!1,tap_action:{action:"more-info"}});A("ups",{type:"grid",cards:c})}}if(_.cameras.length>0){const e=[];for(const o of _.cameras){if(!t.states[o])continue;const a=n.Registry.getEntity(o),c=a?.device_id;let r=!1,l=!1;if(c){const e=n.Registry.getDevice(c);if(e){const t=(e.manufacturer||"").toLowerCase(),i=(e.model||"").toLowerCase();r=t.includes("reolink")||i.includes("reolink"),l=t.includes("aqara")||i.includes("aqara")}}if((r||l)&&c){const a=n.Registry.getEntityIdsForDevice(c),p=a.find(e=>e.startsWith("light.")&&t.states[e]&&!n.Registry.isEntityExcluded(e)),d=a.find(e=>e.startsWith("binary_sensor.")&&"motion"===t.states[e]?.attributes?.device_class&&!n.Registry.isEntityExcluded(e)),u=a.find(e=>e.startsWith("siren.")&&t.states[e]&&!n.Registry.isEntityExcluded(e)),_=a.find(e=>e.startsWith("sensor.")&&"battery"===t.states[e]?.attributes?.device_class&&!n.Registry.isEntityExcluded(e)),y=a.find(e=>e.startsWith("event.")&&"doorbell"===t.states[e]?.attributes?.device_class&&!n.Registry.isEntityExcluded(e)),h=[];r&&(p&&h.push({entity:p}),d&&h.push({entity:d}),u&&h.push({entity:u})),l&&(_&&h.push({entity:_}),y&&h.push({entity:y})),e.push({type:"picture-glance",camera_image:o,camera_view:l?"live":"auto",fit_mode:"cover",title:(0,s.To)(o,i,t),entities:h})}else e.push({type:"picture-entity",entity:o,camera_image:o,camera_view:"auto",name:(0,s.To)(o,i,t),show_name:!0,show_state:!1})}e.length>0&&A("cameras",{type:"grid",cards:[{type:"heading",heading:(0,a.localize)("room.cameras"),heading_style:"title",icon:"mdi:cctv"},...e]})}d.lights?.order||_.lights.sort((e,i)=>(0,s.YN)(e,i,t));const j=(e,t,i,s,n)=>{0!==t.length&&A(e,{type:"grid",cards:[{type:"heading",heading:i,heading_style:"title",icon:s},...t.map(n)]})};_.lights.length>0&&A("lights",{type:"grid",cards:[{type:"custom:simon42-lights-group-card",entities:_.lights,group_type:"all",heading_label:(0,a.localize)("room.lighting"),heading_icon:"mdi:lightbulb",area:i,default_expanded:!0,nested_groups:!0===p.nested_light_groups}]}),j("locks",_.locks,(0,a.localize)("room.locks"),"mdi:lock",e=>({type:"tile",entity:e,name:(0,s.To)(e,i,t),features:[{type:"lock-commands"}],features_position:"inline",vertical:!1,state_content:"last_changed"})),j("climate",_.climate,(0,a.localize)("room.climate"),"mdi:thermostat",e=>({type:"tile",entity:e,name:(0,s.To)(e,i,t),features:[{type:"climate-hvac-modes"}],features_position:"inline",vertical:!1,state_content:["hvac_action","current_temperature"]})),j("covers",_.covers,(0,a.localize)("room.covers"),"mdi:window-shutter",e=>({type:"tile",entity:e,name:(0,s.To)(e,i,t),features:[{type:"cover-open-close"}],vertical:!1,features_position:"inline",state_content:["current_position","last_changed"]})),j("covers_curtain",_.covers_curtain,(0,a.localize)("room.curtains"),"mdi:curtains",e=>({type:"tile",entity:e,name:(0,s.To)(e,i,t),features:[{type:"cover-open-close"}],vertical:!1,features_position:"inline",state_content:["current_position","last_changed"]})),j("covers_window",_.covers_window,(0,a.localize)("room.windows"),"mdi:window-open-variant",e=>({type:"tile",entity:e,name:(0,s.To)(e,i,t),features:[{type:"cover-open-close"}],vertical:!1,features_position:"inline",state_content:["current_position","last_changed"]})),j("media",_.media_player,(0,a.localize)("room.media"),"mdi:speaker",e=>{const n=t.states[e],o=n&&function(e){return!!(20481&(e.attributes?.supported_features||0))}(n);return{type:"tile",entity:e,name:(0,s.To)(e,i,t),vertical:!1,...o?{features:[{type:"media-player-playback"}],features_position:"inline"}:{},state_content:["media_title","media_artist"]}}),j("scenes",_.scenes,(0,a.localize)("room.scenes"),"mdi:palette",e=>({type:"tile",entity:e,name:(0,s.To)(e,i,t),vertical:!1,state_content:"last_changed"}));const V=[];for(const e of _.vacuum)V.push({type:"tile",entity:e,name:(0,s.To)(e,i,t),features:[{type:"vacuum-commands"}],features_position:"inline",vertical:!1,state_content:"last_changed"});for(const e of _.fan){const n=t.states[e],o=n&&r(n);V.push({type:"tile",entity:e,name:(0,s.To)(e,i,t),...o?{features:[{type:"fan-speed"}],features_position:"inline"}:{},vertical:!1,state_content:"last_changed"})}for(const e of _.switches)V.push({type:"tile",entity:e,name:(0,s.To)(e,i,t),vertical:!1,state_content:"last_changed"});V.sort((e,i)=>{const s=t.states[e.entity],n=t.states[i.entity];return s&&n?new Date(n.last_changed).getTime()-new Date(s.last_changed).getTime():0}),V.length>0&&A("misc",{type:"grid",cards:[{type:"heading",heading:(0,a.localize)("room.misc"),heading_style:"title",icon:"mdi:dots-horizontal"},...V]}),j("automations",_.automations,(0,a.localize)("room.automations"),"mdi:robot",e=>({type:"tile",entity:e,name:(0,s.To)(e,i,t),vertical:!1,state_content:"last_changed"})),j("scripts",_.scripts,(0,a.localize)("room.scripts"),"mdi:script-text",e=>({type:"tile",entity:e,name:(0,s.To)(e,i,t),vertical:!1}));const Y=(p.room_pin_entities||[]).filter(e=>{const t=n.Registry.getEntity(e);if(!t)return!1;if(t.area_id===i.area_id)return!0;if(t.device_id){const e=n.Registry.getDevice(t.device_id);if(e?.area_id===i.area_id)return!0}return!1});Y.length>0&&A("room_pins",{type:"grid",cards:[{type:"heading",heading:(0,a.localize)("room.room_pins"),heading_style:"title",icon:"mdi:pin"},...Y.map(e=>{const n=[];return!0===p.room_pins_show_state&&n.push("state"),!0!==p.room_pins_hide_last_changed&&n.push("last_changed"),{type:"tile",entity:e,name:(0,s.To)(e,i,t),vertical:!1,...n.length>0?{state_content:n}:{}}})]});for(const e of M){const t=S.get(e);t&&L.push(...t)}return L.push(...g(u,"bottom")),(0,o.cY)(`Room ${i.area_id}: ${f.length} visible entities, ${L.length} sections, ${D.length} badges`),(0,o.PZ)(`room-generate-${i.area_id}`),{type:"sections",header:{badges_position:"bottom"},sections:L,badges:D}}}customElements.define("ll-strategy-simon42-view-room",m)},910(e,t,i){i.r(t);var s=i(120),n=i(727),o=i(13);class a extends HTMLElement{static async generate(e,t){s.Registry.initialize(t,e.config||{});const i=e=>s.Registry.getVisibleEntityIdsForDomain(e),a=[],c=[],r=[],l=[],p=[];for(const e of[...i("lock"),...i("cover"),...i("binary_sensor")]){if(!t.states[e])continue;const i=t.states[e],n=i.attributes?.device_class;if(e.startsWith("lock."))a.push(e);else if(e.startsWith("cover."))"garage"===n?r.push(e):"door"!==n&&"gate"!==n&&"window"!==n||c.push(e);else if(e.startsWith("binary_sensor.")){const t=s.Registry.getEntity(e);if(t?.platform&&o.ZI.has(t.platform))continue;n&&["door","window","garage_door","opening"].includes(n)?l.push(e):n&&["smoke","gas"].includes(n)&&p.push(e)}}const d=[];if(a.length>0){const e=a.filter(e=>"unlocked"===t.states[e]?.state),i=a.filter(e=>"locked"===t.states[e]?.state),s=[];e.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.locks_unlocked"),heading_style:"subtitle",icon:"mdi:lock-open",badges:[{type:"entity",entity:e[0],show_name:!1,show_state:!1,tap_action:{action:"perform-action",perform_action:"lock.lock",target:{entity_id:e}},icon:"mdi:lock"}]}),s.push(...e.map(e=>({type:"tile",entity:e,features:[{type:"lock-commands"}],state_content:"last_changed"})))),i.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.locks_locked"),heading_style:"subtitle",icon:"mdi:lock"}),s.push(...i.map(e=>({type:"tile",entity:e,features:[{type:"lock-commands"}],state_content:"last_changed"})))),s.length>0&&d.push({type:"grid",cards:s})}if(c.length>0){const e=c.filter(e=>"open"===t.states[e]?.state),i=c.filter(e=>"closed"===t.states[e]?.state),s=[];e.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.doors_open"),heading_style:"subtitle",icon:"mdi:door-open",badges:[{type:"entity",entity:e[0],show_name:!1,show_state:!1,tap_action:{action:"perform-action",perform_action:"cover.close_cover",target:{entity_id:e}},icon:"mdi:arrow-down"}]}),s.push(...e.map(e=>({type:"tile",entity:e,features:[{type:"cover-open-close"}],features_position:"inline",state_content:"last_changed"})))),i.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.doors_closed"),heading_style:"subtitle",icon:"mdi:door-closed"}),s.push(...i.map(e=>({type:"tile",entity:e,features:[{type:"cover-open-close"}],features_position:"inline",state_content:"last_changed"})))),s.length>0&&d.push({type:"grid",cards:s})}if(r.length>0){const e=r.filter(e=>"open"===t.states[e]?.state),i=r.filter(e=>"closed"===t.states[e]?.state),s=[];e.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.garages_open"),heading_style:"subtitle",icon:"mdi:garage-open",badges:[{type:"entity",entity:e[0],show_name:!1,show_state:!1,tap_action:{action:"perform-action",perform_action:"cover.close_cover",target:{entity_id:e}},icon:"mdi:arrow-down"}]}),s.push(...e.map(e=>({type:"tile",entity:e,features:[{type:"cover-open-close"}],features_position:"inline",state_content:"last_changed"})))),i.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.garages_closed"),heading_style:"subtitle",icon:"mdi:garage"}),s.push(...i.map(e=>({type:"tile",entity:e,features:[{type:"cover-open-close"}],features_position:"inline",state_content:"last_changed"})))),s.length>0&&d.push({type:"grid",cards:s})}if(l.length>0){const e=l.filter(e=>"on"===t.states[e]?.state),i=l.filter(e=>"off"===t.states[e]?.state),s=[];e.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.windows_open"),heading_style:"subtitle",icon:"mdi:window-open"}),s.push(...e.map(e=>({type:"tile",entity:e,state_content:"last_changed"})))),i.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.windows_closed"),heading_style:"subtitle",icon:"mdi:window-closed"}),s.push(...i.map(e=>({type:"tile",entity:e,state_content:"last_changed"})))),s.length>0&&d.push({type:"grid",cards:s})}if(p.length>0){const e=p.filter(e=>"on"===t.states[e]?.state),i=p.filter(e=>"off"===t.states[e]?.state),s=[];e.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.smoke_gas_active"),heading_style:"subtitle",icon:"mdi:smoke-detector-alert"}),s.push(...e.map(e=>({type:"tile",entity:e,state_content:"last_changed"})))),i.length>0&&(s.push({type:"heading",heading:(0,n.localize)("security.smoke_gas_inactive"),heading_style:"subtitle",icon:"mdi:smoke-detector"}),s.push(...i.map(e=>({type:"tile",entity:e,state_content:"last_changed"})))),s.length>0&&d.push({type:"grid",cards:s})}return{type:"sections",sections:d}}}customElements.define("ll-strategy-simon42-view-security",a)}}]);