UNPKG

iobroker.lovelace

Version:

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

1 lines 15.3 kB
export const __rspack_esm_id=94530;export const __rspack_esm_ids=[94530];export const __webpack_modules__={380(t,e,n){n.d(e,{D:()=>r,P:()=>a});n(74423);var i=n(67932),s=n(46927),o=n(96029);const a=t=>t.first_weekday===s.zt.language?"weekInfo"in Intl.Locale.prototype?new Intl.Locale(t.language).weekInfo.firstDay%7:(0,i.S)(t.language)%7:o.Z.includes(t.first_weekday)?o.Z.indexOf(t.first_weekday):1,r=t=>{const e=a(t);return o.Z[e]}},30162(t,e,n){n.a(t,async function(t,i){try{n.d(e,{LW:()=>g,Xs:()=>y,fU:()=>u,ie:()=>d});var s=n(74487),o=n(22786),a=n(8480),r=n(69543),c=t([s,a]);[s,a]=c.then?(await c)():c;const u=(t,e,n)=>l(e,n.time_zone).format(t),l=(0,o.A)((t,e)=>new Intl.DateTimeFormat(t.language,{hour:"numeric",minute:"2-digit",hourCycle:(0,r.J)(t)?"h12":"h23",timeZone:(0,a.wj)(t.time_zone,e)})),d=(t,e,n)=>m(e,n.time_zone).format(t),m=(0,o.A)((t,e)=>new Intl.DateTimeFormat(t.language,{hour:(0,r.J)(t)?"numeric":"2-digit",minute:"2-digit",second:"2-digit",hourCycle:(0,r.J)(t)?"h12":"h23",timeZone:(0,a.wj)(t.time_zone,e)})),y=(t,e,n)=>p(e,n.time_zone).format(t),p=(0,o.A)((t,e)=>new Intl.DateTimeFormat(t.language,{weekday:"long",hour:(0,r.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,r.J)(t)?"h12":"h23",timeZone:(0,a.wj)(t.time_zone,e)})),g=(t,e,n)=>_(e,n.time_zone).format(t),_=(0,o.A)((t,e)=>new Intl.DateTimeFormat("en-GB",{hour:"numeric",minute:"2-digit",hour12:!1,timeZone:(0,a.wj)(t.time_zone,e)}));i()}catch(t){i(t)}})},8480(t,e,n){n.a(t,async function(t,i){try{n.d(e,{fL:()=>l,n2:()=>d,wj:()=>m});var s=n(74487),o=n(29079),a=n(46927),r=t([s]);s=(r.then?(await r)():r)[0];const c=Intl.DateTimeFormat?.().resolvedOptions?.().timeZone,u=c&&("UTC"===c||"Etc/UTC"===c||c in o)?c:void 0,l=14881==n.j?void 0!==u:null,d=u??"UTC",m=(t,e)=>t===a.Wj.local&&u?d:e;i()}catch(t){i(t)}})},69543(t,e,n){n.d(e,{J:()=>o});n(74423);var i=n(22786),s=n(46927);const o=(0,i.A)(t=>{if(t.time_format===s.Hg.language||t.time_format===s.Hg.system){const e=t.time_format===s.Hg.language?t.language:void 0;return new Date("January 1, 2023 22:00:00").toLocaleString(e).includes("10")}return t.time_format===s.Hg.am_pm})},96029(t,e,n){n.d(e,{Tq:()=>a,Z:()=>s,ZV:()=>i,sj:()=>o});const i=["sun","mon","tue","wed","thu","fri","sat"],s=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],o={0:"sun",1:"mon",2:"tue",3:"wed",4:"thu",5:"fri",6:"sat"},a={sun:"sunday",mon:"monday",tue:"tuesday",wed:"wednesday",thu:"thursday",fri:"friday",sat:"saturday"}},69093(t,e,n){n.d(e,{t:()=>s});var i=n(71727);const s=t=>(0,i.m)(t.entity_id)},20058(t,e,n){n.a(t,async function(t,i){try{n.d(e,{QL:()=>d,ZQ:()=>m,ZV:()=>l,ty:()=>c,x:()=>r});var s=n(74487),o=(n(74423),n(18111),n(61701),n(46927)),a=t([s]);s=(a.then?(await a)():a)[0];const r=t=>c(t.attributes),c=(t,e)=>!!t.unit_of_measurement||!!t.state_class||(e||[]).includes(t.device_class||""),u=t=>{switch(t.number_format){case o.jG.comma_decimal:return["en-US","en"];case o.jG.decimal_comma:return["de","es","it"];case o.jG.space_comma:return["fr","sv","cs"];case o.jG.quote_decimal:return["de-CH"];case o.jG.system:return;default:return t.language}},l=(t,e,n)=>d(t,e,n).map(t=>t.value).join(""),d=(t,e,n)=>{const i=e?u(e):void 0;return e?.number_format===o.jG.none||Number.isNaN(Number(t))?Number.isNaN(Number(t))||""===t||e?.number_format!==o.jG.none?[{type:"literal",value:t}]:new Intl.NumberFormat("en-US",y(t,{...n,useGrouping:!1})).formatToParts(Number(t)):new Intl.NumberFormat(i,y(t,n)).formatToParts(Number(t))},m=(t,e)=>{const n=e?.display_precision;return null!=n?{maximumFractionDigits:n,minimumFractionDigits:n}:Number.isInteger(Number(t?.attributes?.step))&&Number.isInteger(Number(t?.state))?{maximumFractionDigits:0}:void 0},y=(t,e)=>{const n={maximumFractionDigits:2,...e};if("string"!=typeof t)return n;if(!e||void 0===e.minimumFractionDigits&&void 0===e.maximumFractionDigits){const e=t.indexOf(".")>-1?t.split(".")[1].length:0;n.minimumFractionDigits=e,n.maximumFractionDigits=e}return n};i()}catch(t){i(t)}})},95350(t,e,n){if(n.d(e,{$h:()=>m,FP:()=>_,Og:()=>o,QC:()=>d,QQ:()=>r,S1:()=>a,Ud:()=>f,fK:()=>u,l7:()=>l,nQ:()=>p,p$:()=>c}),66649!=n.j)var i=n(35518);if(66649!=n.j)var s=n(9899);const o=66649!=n.j?{bluetooth:"config/bluetooth",dhcp:"config/dhcp",matter:"config/matter",mqtt:"config/mqtt",ssdp:"config/ssdp",thread:"config/thread",zeroconf:"config/zeroconf",zha:"config/zha/dashboard",zwave_js:"config/zwave_js/dashboard"}:null;var a=66649!=n.j?function(t){return t[t.CRITICAL=50]="CRITICAL",t[t.ERROR=40]="ERROR",t[t.WARNING=30]="WARNING",t[t.INFO=20]="INFO",t[t.DEBUG=10]="DEBUG",t[t.NOTSET=0]="NOTSET",t}({}):null;const r=(t,e)=>e.issue_tracker||`https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+${t}%22`,c=(t,e,n)=>t(`component.${e}.title`)||n?.name||e,u=(t,e)=>{const n={type:"manifest/list"};return e&&(n.integrations=e),t.callWS(n)},l=async(t,e)=>{const n=await t.sendMessagePromise({type:"manifest/list"}),i={};for(const t of n)i[t.domain]=t;return e(i),()=>{}},d=(t,e)=>t.callWS({type:"manifest/get",integration:e}),m=t=>t.callWS({type:"integration/setup_info"}),y=t=>t.sendMessagePromise({type:"logger/log_info"}),p=(t,e,n,i)=>t.callWS({type:"logger/integration_log_level",integration:e,level:n,persistence:i}),g=(t,e)=>t.subscribeEvents((0,s.s)(()=>y(t).then(t=>e.setState(t,!0)),200,!0),"logging_changed"),_=(t,e)=>(0,i.N)("_integration_log_info",y,g,t,e),f=(t,e)=>t.callWS({type:"integration/wait",domain:e})},28669(t,e,n){n.d(e,{TK:()=>r,_2:()=>u,eR:()=>s,hG:()=>c,hU:()=>o,kg:()=>a,wj:()=>i,xg:()=>p});n(44114),n(18111),n(61701);const i="system-admin",s="system-users",o=async t=>t.callWS({type:"config/auth/list"}),a=async(t,e,n,i)=>t.callWS({type:"config/auth/create",name:e,group_ids:n,local_only:i}),r=async(t,e,n)=>t.callWS({...n,type:"config/auth/update",user_id:e}),c=async(t,e)=>t.callWS({type:"config/auth/delete",user_id:e}),u=t=>t?t.trim().split(" ").slice(0,3).map(t=>t.substring(0,1)).join(""):"?",l=66649!=n.j?"M12 2C6.47 2 2 6.5 2 12C2 17.5 6.5 22 12 22S22 17.5 22 12 17.5 2 12 2M12 20C7.58 20 4 16.42 4 12C4 7.58 7.58 4 12 4S20 7.58 20 12C20 16.42 16.42 20 12 20M8 14L7 8L10 10L12 7L14 10L17 8L16 14H8M8.56 16C8.22 16 8 15.78 8 15.44V15H16V15.44C16 15.78 15.78 16 15.44 16H8.56Z":null,d=66649!=n.j?"M11,7H15V9H11V11H13A2,2 0 0,1 15,13V15A2,2 0 0,1 13,17H9V15H13V13H11A2,2 0 0,1 9,11V9A2,2 0 0,1 11,7M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z":null,m=66649!=n.j?"M12 20C7.6 20 4 16.4 4 12S7.6 4 12 4 20 7.6 20 12 16.4 20 12 20M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M11 14H13V17H16V12H18L12 7L6 12H8V17H11V14":null,y=66649!=n.j?"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z":null,p=(t,e,n)=>{const i=[],s=e=>t.localize(`ui.panel.config.users.${e}`);return e.is_owner&&i.push([l,s("is_owner")]),n&&e.system_generated&&i.push([d,s("is_system")]),e.local_only&&i.push([m,s("is_local")]),e.is_active||i.push([y,s("is_not_active")]),i}},24367(t,e,n){n.d(e,{L:()=>s,z:()=>o});var i=n(23832);const s=["input_boolean","input_button","input_text","input_number","input_datetime","input_select","counter","timer","schedule"],o=(0,i.g)(s)},40747(t,e,n){n.d(e,{KT:()=>_,Bi:()=>g,ZI:()=>p,Yp:()=>f});n(74423),n(44114),n(18111),n(22489),n(20116),n(7588),n(61701),n(17642),n(58004),n(33853),n(45876),n(32475),n(15024),n(31698);var i=n(46190),s=n(71727),o=n(69093),a=n(28978);var r=n(79461),c=n(52220),u=n(95350),l=n(28669),d=n(24367);const m=new Set(["ai_task","automation","configurator","device_tracker","event","geo_location","notify","persistent_notification","script","sun","tag","todo","zone",...i.gt]),y=new Set(["backup","mobile_app"]),p=(t,e)=>({type:"grid",cards:t.map(t=>({type:"tile",entity:t,show_entity_picture:["camera","image","person"].includes((0,s.m)(t))||void 0})),...e}),g=(t,e,n,o=!0)=>{const u=[],l=t.states,d=[],m=n.title?n.title.toLowerCase():void 0,y=[];for(const t of e){const e=l[t],n=(0,s.m)(t);if("alarm_control_panel"===n){const e={type:"alarm-panel",entity:t};u.push(e)}else if("camera"===n){const e={type:"picture-entity",entity:t};u.push(e)}else if("image"===n){const e={type:"picture",image_entity:t};u.push(e)}else if("climate"===n){const e={type:"thermostat",entity:t,features:(l[t]?.attributes?.hvac_modes?.length??0)>1?[{type:"climate-hvac-modes",hvac_modes:l[t]?.attributes?.hvac_modes}]:void 0};u.push(e)}else if("humidifier"===n){const e={type:"humidifier",entity:t,features:[{type:"humidifier-toggle"}]};u.push(e)}else if("media_player"===n){const e={type:"media-control",entity:t};u.push(e)}else if("plant"===n){const e={type:"plant-status",entity:t};u.push(e)}else if("weather"===n){const e={type:"weather-forecast",entity:t,show_forecast:!1};u.push(e)}else if(!o||"scene"!==n&&"script"!==n){let n;const i=m&&e&&(n=(0,r.p)((0,a.u)(e),m))?{entity:t,name:n}:t;d.push(i)}else{const n={entity:t,show_icon:!0,show_name:!0};let i;m&&e&&(i=(0,r.p)((0,a.u)(e),m))&&(n.name=i),y.push(n)}}if(d.sort((e,n)=>{const o="string"==typeof e?e:e.entity,r="string"==typeof n?n:n.entity,u=i.JF.includes((0,s.m)(o))?"sensor":"control";return u!==(i.JF.includes((0,s.m)(r))?"sensor":"control")?"sensor"===u?1:-1:(0,c.xL)("string"==typeof e?l[e]?(0,a.u)(l[e]):"":l[e.entity]?t.formatEntityName(l[e.entity],e.name):"","string"==typeof n?l[n]?(0,a.u)(l[n]):"":l[n.entity]?t.formatEntityName(l[n.entity],n.name):"")}),0===d.length&&y.length>0)return g(t,e,n,!1);if(d.length>0||y.length>0){const t={type:"entities",entities:d,...n};y.length>0&&(t.footer={type:"buttons",entities:y}),u.unshift(t)}return u.length<2?u:[{type:"grid",square:!1,columns:1,cards:u}]},_=(t,e)=>{const n=[];for(const t of e){const e={type:"entity",entity:t};n.push(e)}return n},f=(t,e,n,i,r,p)=>{const _=t.states,f=t.areas,h=t.devices,v=t.entities,b=((t,e)=>{const n={},i=new Set(Object.values(e).filter(t=>t.entity_category||t.platform&&y.has(t.platform)||t.hidden).map(t=>t.entity_id));for(const e of Object.keys(t)){const s=t[e];m.has((0,o.t)(s))||i.has(s.entity_id)||(n[e]=t[e])}return n})(_,v),w={};for(const t of Object.keys(b)){const e=b[t];e.attributes.order&&(w[t]=e.attributes.order)}const j=((t,e,n,i)=>{const s={...i},o={},a={};for(const i of Object.values(n)){const n=i.area_id||i.device_id&&e[i.device_id]?.area_id;n&&n in t&&i.entity_id in s?(n in o||(o[n]=[]),o[n].push(s[i.entity_id]),delete s[i.entity_id]):i.device_id&&i.device_id in e&&i.entity_id in s&&(i.device_id in a||(a[i.device_id]=[]),a[i.device_id].push(s[i.entity_id]),delete s[i.entity_id])}for(const[t,e]of Object.entries(a))1===e.length&&(s[e[0].entity_id]=e[0],delete a[t]);return{areasWithEntities:o,devicesWithEntities:a,otherEntities:s}})(f,h,v,b);if(i?.hidden)for(const t of i.hidden)delete j.areasWithEntities[t];r&&(j.devicesWithEntities={},j.otherEntities={});const C=(t=>{const e=[],n={};return Object.keys(t).forEach(i=>{const o=t[i];"group"===(0,s.m)(i)?e.push(o):n[i]=o}),e.forEach(t=>t.attributes.entity_id.forEach(t=>{delete n[t]})),{groups:e,ungrouped:n}})(j.otherEntities);C.groups.sort((t,e)=>w[t.entity_id]-w[e.entity_id]);const E=[];for(const e of C.groups)E.push(...g(t,e.attributes.entity_id,{title:(0,a.u)(e),show_header_toggle:"hidden"!==e.attributes.control}));const x=((t,e,n,i,s,r)=>{const m={},{localize:y}=t;for(const t of Object.keys(r)){const e=r[t],n=(0,o.t)(e);n in m||(m[n]=[]),m[n].push(e.entity_id)}const p=[];if("person"in m){const t=[];if(1===m.person.length)p.push({type:"entities",entities:m.person});else{let e,n="";for(const i of m.person){const s=r[i];let o=s.attributes.entity_picture;if(!o){if(void 0===e){const t=getComputedStyle(document.body);e=encodeURIComponent(t.getPropertyValue("--light-primary-color").trim()),n=encodeURIComponent((t.getPropertyValue("--text-light-primary-color")||t.getPropertyValue("--primary-text-color")).trim())}o=`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50' width='50' height='50' style='background-color:${e}'%3E%3Cg%3E%3Ctext font-family='roboto' x='50%25' y='50%25' text-anchor='middle' stroke='${n}' font-size='1.3em' dy='.3em'%3E${(0,l._2)(s.attributes.friendly_name||"")}%3C/text%3E%3C/g%3E%3C/svg%3E`}t.push({type:"picture-entity",entity:i,aspect_ratio:"1",show_name:!1,image:o})}p.push({type:"grid",square:!0,columns:3,cards:t})}delete m.person}const _=[];for(const t of d.L)t in m&&(_.push(...m[t]),delete m[t]);const f={};for(const t of Object.keys(m))f[t]=(0,u.p$)(y,t);_.length&&(m._helpers=_,f._helpers=y("ui.panel.lovelace.strategy.original-states.helpers")),Object.keys(m).sort((t,e)=>(0,c.xL)(f[t],f[e])).forEach(e=>{p.push(...g(t,m[e].sort((t,e)=>(0,c.xL)((0,a.u)(r[t]),(0,a.u)(r[e]))),{title:f[e]}))});const h={path:e,title:n,cards:p};return i&&(h.icon=i),s&&(h.show_icon_and_title=s),h})(t,"default_view","Home",void 0,void 0,C.ungrouped),N=[],S=Object.keys(f);if(i?.order){const t=i.order;S.sort((0,c.u1)(t))}for(const e of S){if(!(e in j.areasWithEntities))continue;const n=j.areasWithEntities[e],i=f[e];N.push(...g(t,n.map(t=>t.entity_id),{title:i.name}))}const k=[],A=Object.entries(j.devicesWithEntities).sort((t,e)=>{const n=h[t[0]],i=h[e[0]];return(0,c.xL)(n.name_by_user||n.name||"",i.name_by_user||i.name||"")});for(const[n,i]of A){const s=h[n];k.push(...g(t,i.map(t=>t.entity_id),{title:s.name_by_user||s.name||e("ui.panel.config.devices.unnamed_device",{type:e(`ui.panel.config.devices.type.${s.entry_type||"device"}`)})}))}let L;if(n&&!p){const t=n.energy_sources.find(t=>"grid"===t.type);t&&t.stat_energy_from&&(L={title:e("ui.panel.lovelace.cards.energy.energy_distribution.title_today"),type:"energy-distribution",link_dashboard:!0})}return x.cards.unshift(...N,...E,...L?[L]:[]),x.cards.push(...k),x}},16330(t,e,n){n.a(t,async function(t,i){try{n.r(e),n.d(e,{OriginalStatesViewStrategy:()=>y});n(44114),n(18111),n(13579);var s=n(62826),o=n(58888),a=n(5124),r=n(22441),c=n(36312),u=n(38114),l=n(40747),d=n(71727),m=t([u]);u=(m.then?(await m)():m)[0];class y extends a.mN{static async generate(t,e){if(e.config.state===o.m2)return{cards:[{type:"starting"}]};if(e.config.recovery_mode)return{cards:[{type:"recovery-mode"}]};const[n,i]=await Promise.all([e.loadBackendTranslation("title"),(0,c.x)(e.config,"energy")?(0,u.bs)(e).catch(()=>{}):void 0]),s=(0,l.Yp)(e,n,i,t.areas,t.hide_entities_without_area,t.hide_energy);return Object.values(e.states).some(t=>"geo_location"===(0,d.m)(t.entity_id))&&s&&s.cards&&s.cards.push({type:"map",geo_location_sources:["all"]}),0===s.cards.length?{type:"panel",cards:[{type:"empty-state",icon:"mdi:home-assistant",icon_color:"primary",content_only:!0,title:e.localize("ui.panel.lovelace.strategy.original-states.empty_state_title"),content:e.localize("ui.panel.lovelace.strategy.original-states.empty_state_content"),...e.user?.is_admin?{buttons:[{text:e.localize("ui.panel.lovelace.strategy.original-states.empty_state_action"),appearance:"filled",variant:"brand",tap_action:{action:"navigate",navigation_path:"/config/integrations/dashboard"}}]}:{}}]}:s}}y=(0,s.Cg)([(0,r.EM)("original-states-view-strategy")],y),i()}catch(t){i(t)}})}};