PageSourceSearch

https://ross146.com/frontend_latest/24729.e3233446bddf2c64.js

js ross146.com collected 2026-09-28 01:54:54 UTC 13,751 bytes, 2 lines download raw bytes

1export const __webpack_ids__=["24729"];export const __webpack_modules__={10388:function(t,e,i){i.a(t,async function(t,s){try{i.d(e,{c:()=>m,computeStateDisplay:()=>f});var n=i(16230),o=i(38763),a=i(93836),r=i(40142),c=i(74266),u=i(45691),l=i(28598),h=i(27417),d=i(44272),_=t([a,l,r,u,c]);[a,l,r,u,c]=_.then?(await _)():_;const f=(t,e,i,s,n,o,a)=>{const r=o?.[e.entity_id];return m(t,i,s,n,r,e.entity_id,e.attributes,void 0!==a?a:e.state)},m=(t,e,i,s,_,f,m,p)=>{if(p===n.lz||p===n.nZ)return t(`state.default.${p}`);const b=(0,d.M)(f),y="counter"===b||"number"===b||"input_number"===b;if((0,l.sJ)(m,"sensor"===b?i:[])||y){if("duration"===m.device_class&&m.unit_of_measurement&&a.a_.includes(m.unit_of_measurement))try{return(0,a.LU)(e,p,m.unit_of_measurement,_?.display_precision)}catch(t){}if("monetary"===m.device_class)try{return(0,l.uf)(p,e,{style:"currency",currency:m.unit_of_measurement,minimumFractionDigits:2,...(0,l.l4)({state:p,attributes:m},_)})}catch(t){}const i=(0,l.uf)(p,e,(0,l.l4)({state:p,attributes:m},_)),s=_?.translation_key&&t(`component.${_.platform}.entity.${b}.${_.translation_key}.unit_of_measurement`)||m.unit_of_measurement;return s?`${i}${(0,h.L)(s,e)}${s}`:i}if(["date","input_datetime","time"].includes(b))try{const t=p.split(" ");if(2===t.length)return(0,c.o0)(new Date(t.join("T")),{...e,time_zone:o.c_.local},s);if(1===t.length){if(p.includes("-"))return(0,r.p6)(new Date(`${p}T00:00`),{...e,time_zone:o.c_.local},s);if(p.includes(":")){const t=new Date;return(0,u.mr)(new Date(`${t.toISOString().split("T")[0]}T${p}`),{...e,time_zone:o.c_.local},s)}}return p}catch(t){return p}if(["button","conversation","event","image","input_button","notify","scene","stt","tag","tts","wake_word","datetime"].includes(b)||"sensor"===b&&"timestamp"===m.device_class)try{return(0,c.o0)(new Date(p),e,s)}catch(t){return p}return _?.translation_key&&t(`component.${_.platform}.entity.${b}.${_.translation_key}.state.${p}`)||m.device_class&&t(`component.${b}.entity_component.${m.device_class}.state.${p}`)||t(`component.${b}.entity_component._.state.${p}`)||p};s()}catch(t){s(t)}})},9224:function(t,e,i){i.d(e,{H:()=>s});const s=5},89166:function(t,e,i){i.a(t,async function(t,s){try{i.d(e,{Nu:()=>H,V3:()=>j,Vk:()=>d,YA:()=>k,xS:()=>f,zP:()=>M});i(2394),i(81738),i(94814),i(29981),i(22960),i(6989),i(72489),i(67886),i(65451),i(46015),i(38334),i(94880),i(75643),i(29761);var n=i(44272),o=i(10388),a=i(15459),r=t([o]);o=(r.then?(await r)():r)[0];const c=["climate","humidifier","water_heater"],u=["climate","humidifier","input_datetime","water_heater","person","device_tracker"],l=["temperature","current_temperature","target_temp_low","target_temp_high","hvac_action","humidity","mode","action","current_humidity"],h=(t,e)=>!t.states[e]||u.includes((0,n.M)(e)),d=(t,e,i,s,n)=>{const o={type:"history/stream",entity_ids:n,start_time:i.toISOString(),end_time:s.toISOString(),minimal_response:!0,no_attributes:!n.some(e=>h(t,e))},a=new _(t);return t.connection.subscribeMessage(t=>e(a.processMessage(t)),o)};class _{processMessage(t){if(!this.combinedHistory||!Object.keys(this.combinedHistory).length)return this.combinedHistory=t.states,this.combinedHistory;if(!Object.keys(t.states).length)return this.combinedHistory;const e=this.hoursToShow?((new Date).getTime()-3600*this.hoursToShow*1e3)/1e3:void 0,i={};for(const t of Object.keys(this.combinedHistory))i[t]=[];for(const e of Object.keys(t.states))i[e]=[];for(const s of Object.keys(i)){if(s in this.combinedHistory&&s in t.states){const e=this.combinedHistory[s],n=e[e.length-1];i[s]=e.concat(t.states[s]),t.states[s][0].lu<n.lu&&(i[s]=i[s].sort((t,e)=>t.lu-e.lu))}else s in this.combinedHistory?i[s]=this.combinedHistory[s]:i[s]=t.states[s];if(e&&s in this.combinedHistory){const t=i[s].filter(t=>t.lu<e);if(!t.length)continue;if(i[s]=i[s].filter(t=>t.lu>=e),i[s].length&&i[s][0].lu===e)continue;const n=t[t.length-1];n.lu=e,i[s].unshift(n)}}return this.combinedHistory=i,this.combinedHistory}constructor(t,e){this.hass=t,this.hoursToShow=e,this.combinedHistory={}}}const f=(t,e,i,s,n,o=!0,a=!0)=>{const r={type:"history/stream",entity_ids:s,start_time:new Date((new Date).getTime()-3600*i*1e3).toISOString(),minimal_response:o,significant_changes_only:a,no_attributes:n??!s.some(e=>h(t,e))},c=new _(t,i);return t.connection.subscribeMessage(t=>e(c.processMessage(t)),r)},m=(t,e)=>t.state===e.state&&(!t.attributes||!e.attributes||l.every(i=>t.attributes[i]===e.attributes[i])),p=(t,e,i,s,n,r,c)=>{const u=[],l=r[0];for(const a of r){if(u.length>0&&a.s===u[u.length-1].state)continue;const r={};c?.attributes.device_class&&(r.device_class=c?.attributes.device_class),u.push({state_localize:(0,o.c)(t,e,[],i,s[n],n,{...a.a||l.a,...r},a.s),state:a.s,last_changed:1e3*(a.lc?a.lc:a.lu)})}return{name:(0,a.a)(n,c?.attributes||l.a),entity_id:n,data:u}},b=(t,e,i,s)=>{const o=[];
1return Object.keys(i).forEach(t=>{const e=i[t],r=e[0],u=(0,n.M)(t),h=[];for(const t of e){let e;if(c.includes(u)){e={state:t.s,last_changed:1e3*t.lu,attributes:{}};for(const i of l)i in t.a&&(e.attributes[i]=t.a[i])}else e={state:t.s,last_changed:1e3*(t.lc?t.lc:t.lu),attributes:{}};h.length>1&&m(e,h[h.length-1])&&m(e,h[h.length-2])||h.push(e)}const d=t in s?s[t].attributes:"friendly_name"in r.a?r.a:void 0;o.push({domain:u,name:(0,a.a)(t,d||{}),entity_id:t,states:h})}),{unit:t,device_class:e,identifier:Object.keys(i).join(""),data:o}},y=["counter","input_number","number"],g=t=>y.includes(t),v=t=>"unit_of_measurement"in t||"state_class"in t,w=(t,e)=>null!=t.attributes.device_class&&e.includes(t.attributes.device_class),$=" ",k=(t,e,i,s,n=!1)=>{const o={};i.forEach(t=>{t in e&&(o[t]=e[t])});const a={};Object.entries(o).forEach(([t,e])=>{const i=e.map(t=>({s:null!=t.mean?t.mean.toString():t.state.toString(),lc:t.start/1e3,a:{},lu:t.start/1e3}));a[t]=i});const r=H(t,a,[],t.localize,s,n,!0);return(r?.line||[]).forEach(t=>{t.data.forEach(t=>{t.statistics=t.states,t.states=[]})}),r},H=(t,e,i,s,o,a=!1,r=!1)=>{const c={},u=[],l={};if(new Set([...i,...Object.keys(e)]).forEach(i=>{i in e?l[i]=e[i]:t.states[i]&&(l[i]=[{s:t.states[i].state,a:t.states[i].attributes,lu:new Date(t.states[i].last_updated).getTime()/1e3}])}),!l)return{line:[],timeline:[]};Object.keys(l).forEach(e=>{const i=l[e];if(0===i.length)return;const h=(0,n.M)(e),d=e in t.states?t.states[e]:void 0,_=d||g(h)?void 0:i.find(t=>t.a&&v(t.a));let f;f=M(h,d,_,o,r)?d?.attributes.unit_of_measurement||_?.a.unit_of_measurement||$:{zone:s("ui.dialogs.more_info_control.zone.graph_unit"),climate:t.config.unit_system.temperature,humidifier:"%",water_heater:t.config.unit_system.temperature}[h];const m=S(f,{climate:"temperature",humidifier:"humidity",water_heater:"temperature"}[h]||(d?.attributes||_?.a)?.device_class,a);f?m&&m in c&&e in c[m]?c[m][e].push(...i):m&&(m in c||(c[m]={}),c[m][e]=i):u.push(p(s,t.locale,t.config,t.entities,e,i,d))});return{line:Object.keys(c).map(e=>{const i=e.split("_"),s=i[0],n=i[1]||void 0;return b(s,n,c[e],t.states)}),timeline:u}},S=(t,e,i)=>i?`${t}_${e||""}`:t,M=(t,e,i,s,n=!1)=>n||g(t)||null!=e&&v(e.attributes)||null!=e&&"sensor"===t&&w(e,s)||null!=i,j=(t,e,i=!0)=>{if(!e)return t;const s={...t,line:[]},n={};for(const e of t.line){const t=S(e.unit,e.device_class,i);t&&(n[t]={historyItem:e})}for(const s of e.line){s.unit===$&&(s.unit=t.line.find(t=>t.identifier===s.identifier)?.unit??$);const e=S(s.unit,s.device_class,i);e&&(e in n?n[e].ltsItem=s:n[e]={ltsItem:s})}for(const{historyItem:t,ltsItem:e}of Object.values(n)){if(!t||!e){s.line.push(t||e);continue}const i={...t,data:[]},n=new Set([...t.data.map(t=>t.entity_id),...e.data.map(t=>t.entity_id)]);for(const s of n){const n=t.data.find(t=>t.entity_id===s),o=e.data.find(t=>t.entity_id===s);if(!n||!o){i.data.push(n||o);continue}const a=n.states[0]?.last_changed||o.statistics[o.statistics.length-1].last_changed+1,r=[];for(const t of o.statistics){if(t.last_changed>=a)break;r.push(t)}i.data.push(0===r.length?n:{...n,statistics:r})}s.line.push(i)}return s};s()}catch(t){s(t)}})},13814:function(t,e,i){i.d(e,{g:()=>r});i(2394),i(81738),i(94814),i(22960),i(6989),i(93190);var s=i(9224);const n=t=>t.reduce((t,e)=>t+parseFloat(e.state),0)/t.length,o=t=>parseFloat(t[t.length-1].state)||0,a=(t,e,i,a,r)=>{t.forEach(t=>{t.state=Number(t.state)}),t=t.filter(t=>!Number.isNaN(t.state));const c=void 0!==r?.min?r.min:Math.min(...t.map(t=>t.state)),u=void 0!==r?.max?r.max:Math.max(...t.map(t=>t.state)),l=(new Date).getTime(),h=(t,i,s)=>{const n=l-new Date(i.last_changed).getTime();let o=Math.abs(n/36e5-e);return s?(o=60*(o-Math.floor(o)),o=Number((10*Math.round(o/10)).toString()[0])):o=Math.floor(o),t[o]||(t[o]=[]),t[o].push(i),t};if(t=t.reduce((t,e)=>h(t,e,!1),[]),a>1&&(t=t.map(t=>t.reduce((t,e)=>h(t,e,!0),[]))),t.length)return((t,e,i,a,r,c)=>{const u=[];let l=(c-r)/80;l=0!==l?l:80;let h=i/(e-(1===a?1:0));h=isFinite(h)?h:i;let d=t.filter(Boolean)[0];a>1&&(d=d.filter(Boolean)[0]);let _=[n(d),o(d)];const f=t=>80+s.H/2-(t-r)/l,m=(t,e,i=0,s=1)=>
1{if(s>1&&t)return t.forEach((t,i)=>m(t,e,i,s-1));const a=h*(e+i/6);t&&(_=[n(t),o(t)]);const r=f(t?_[0]:_[1]);return u.push([a,r])};for(let e=0;e<t.length;e+=1)m(t[e],e,0,a);return u.push([i,f(_[1])]),u})(t,e,i,a,c,u)},r=(t,e,i,s,n)=>{if(!t)return;const o=t.map(t=>({state:Number(t.s),last_changed:1e3*t.lu}));return a(o,e,i,s,n)}},88809:function(t,e,i){var s=i(73742),n=i(59048),o=i(26292),a=i(9224);i(81738),i(94814);const r=(t,e,i,s)=>[(t-i)/2+i,(e-s)/2+s];class c extends n.oi{render(){return n.dy` ${this._path?n.YP`<svg width="100%" height="100%" viewBox="0 0 500 100"> <g> <mask id="fill"> <path class="fill" fill="white" d="${this._path} L 500, 100 L 0, 100 z"/> </mask> <rect height="100%" width="100%" id="fill-rect" fill="var(--accent-color)" mask="url(#fill)"></rect> <mask id="line"> <path fill="none" stroke="var(--accent-color)" stroke-width="${a.H}" stroke-linecap="round" stroke-linejoin="round" d="${this._path}"></path> </mask> <rect height="100%" width="100%" id="rect" fill="var(--accent-color)" mask="url(#line)"></rect> </g> </svg>`:n.YP`<svg width="100%" height="100%" viewBox="0 0 500 100"></svg>`} `}willUpdate(t){this.coordinates&&t.has("coordinates")&&(this._path=(t=>{if(!t.length)return"";let e,i,s="",n=t.filter(Boolean)[0];s+=`M ${n[0]},${n[1]}`;for(const o of t)e=o,i=r(n[0],n[1],e[0],e[1]),s+=` ${i[0]},${i[1]}`,s+=` Q${e[0]},${e[1]}`,n=e;return s+=` ${e[0]},${e[1]}`,s})(this.coordinates))}}c.styles=n.iv`:host{display:flex;width:100%}.fill{opacity:.1}`,(0,s.__decorate)([(0,o.Cb)()],c.prototype,"coordinates",void 0),(0,s.__decorate)([(0,o.SB)()],c.prototype,"_path",void 0),c=(0,s.__decorate)([(0,o.Mo)("hui-graph-base")],c)},8833:function(t,e,i){i.a(t,async function(t,s){try{i.r(e),i.d(e,{HuiGraphHeaderFooter:()=>b});var n=i(73742),o=i(59048),a=i(26292),r=i(37528),c=i(44272),u=i(6514),l=i(89166),h=i(45063),d=i(13814),_=(i(88809),t([u,l]));[u,l]=_.then?(await _)():_;const f=6e4,m=60*f,p=["counter","input_number","number","sensor"];class b extends o.oi{static async getConfigElement(){return await Promise.all([i.e("73614"),i.e("22549"),i.e("15634"),i.e("26452"),i.e("89112"),i.e("19596"),i.e("88930")]).then(i.bind(i,65697)),document.createElement("hui-graph-footer-editor")}static getStubConfig(t,e,i){return{type:"graph",entity:(0,h.j)(t,1,e,i,p,t=>!isNaN(Number(t.state))&&!!t.attributes.unit_of_measurement)[0]||""}}getCardSize(){return 3}setConfig(t){if(!t?.entity||!p.includes((0,c.M)(t.entity)))throw new Error("Specify an entity from within the sensor domain");
1const e={detail:1,hours_to_show:24,...t};e.hours_to_show=Number(e.hours_to_show),e.detail=1===e.detail||2===e.detail?e.detail:1,this._config=e}render(){return this._config&&this.hass?this._error?o.dy`<div class="errors">${this._error}</div>`:this._coordinates?this._coordinates.length?o.dy` <hui-graph-base .coordinates="${this._coordinates}"></hui-graph-base> `:o.dy` <div class="container"> <div class="info">No state history found.</div> </div> `:o.dy` <div class="container"> <ha-spinner size="small"></ha-spinner> </div> `:o.Ld}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this._config&&this._subscribeHistory()}disconnectedCallback(){super.disconnectedCallback(),this._unsubscribeHistory()}_subscribeHistory(){(0,r.p)(this.hass,"history")&&!this._subscribed&&this._config&&(this._subscribed=(0,l.xS)(this.hass,t=>{this._subscribed&&this._config&&(this._coordinates=(0,d.g)(t[this._config.entity],this._config.hours_to_show,500,this._config.detail,this._config.limits)||[])},this._config.hours_to_show,[this._config.entity]).catch(t=>{this._subscribed=void 0,this._error=t}),this._setRedrawTimer())}_redrawGraph(){this._coordinates&&(this._coordinates=[...this._coordinates])}_setRedrawTimer(){clearInterval(this._interval),this._interval=window.setInterval(()=>this._redrawGraph(),this._config.hours_to_show>24?m:f)}_unsubscribeHistory(){clearInterval(this._interval),this._subscribed&&(this._subscribed.then(t=>t?.()),this._subscribed=void 0)}updated(t){if(!this._config||!this.hass||!t.has("_config"))return;const e=t.get("_config");e&&this._subscribed&&e.entity===this._config.entity||(this._unsubscribeHistory(),this._subscribeHistory())}}b.styles=o.iv`ha-spinner{position:absolute;top:calc(50% - 14px)}.container{display:flex;justify-content:center;position:relative;padding-bottom:20%}.info{position:absolute;top:calc(50% - 16px);color:var(--secondary-text-color)}`,(0,n.__decorate)([(0,a.Cb)({attribute:!1})],b.prototype,"hass",void 0),(0,n.__decorate)([(0,a.Cb)()],b.prototype,"type",void 0),(0,n.__decorate)([(0,a.SB)()],b.prototype,"_config",void 0),(0,n.__decorate)([(0,a.SB)()],b.prototype,"_coordinates",void 0),b=(0,n.__decorate)([(0,a.Mo)("hui-graph-header-footer")],b),s()}catch(t){s(t)}})}};
2//# sourceMappingURL=24729.e3233446bddf2c64.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.