iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 3.6 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[57252],{98927:function(i,n,t){t.d(n,{LinkInstance:function(){return o}});t(18111),t(61701),t(45367),t(92731),t(3362),t(17642),t(58004),t(33853),t(45876),t(32475),t(15024),t(31698),t(62953);var e=t(61688);t(26910);function s(i,n){const t=(s=i.map(i=>i.id),[...s].sort((i,n)=>i-n).join("_"));var s;let o=n.get(t);return void 0===o&&(o=(0,e.G0i)(),n.set(t,o)),o}class o{drawParticle(i,n){var t,s;const{links:o,options:l}=n;if(null==o||!o.length||!l.links)return;const a=l.links,r=null!==(t=n.retina.linksWidth)&&void 0!==t?t:0,c=n.getPosition(),h=null===(s=n.options.twinkle)||void 0===s?void 0:s.links,d=a.triangles.enable,u=d?new Set(o.map(i=>i.destination.id)):null,g=i.globalAlpha;let k="",f=-1,p=-1,y=!1;const _=()=>{y&&(i.stroke(),y=!1)};for(const v of o){if(a.frequency<1&&this._getLinkFrequency(n,v.destination)>a.frequency)continue;const t=v.destination.getPosition();if(d&&!v.isWarped&&u&&(_(),this._drawTriangles(l,n,v,u,c,t,i)),v.opacity<=0||r<=0)continue;if(!a.enable)continue;let s=v.opacity,o=v.color;const g=null!=h&&h.enable&&(0,e.G0i)()<h.frequency?(0,e.BN0)(this._pluginManager,h.color):void 0;if(h&&g&&(o=g,s=(0,e.VGA)(h.opacity)),!o){const i=void 0!==a.id?this._container.particles.linksColors.get(a.id):this._container.particles.linksColor;o=(0,e._hh)(n,v.destination,i)}if(!o)continue;const x=this._getCachedStyle(o);if(x===k&&r===f&&s===p||(_(),i.strokeStyle=x,i.lineWidth=r,i.globalAlpha=s,k=x,f=r,p=s,i.beginPath(),y=!0),v.isWarped){const n=this._container.canvas.size,s=t.x-c.x,o=t.y-c.y;let l=e.boI.x,a=e.boI.y;Math.abs(s)>n.width*e.MXx&&(l=s>0?-n.width:n.width),Math.abs(o)>n.height*e.MXx&&(a=o>0?-n.height:n.height),i.moveTo(c.x,c.y),i.lineTo(t.x+l,t.y+a),i.moveTo(c.x-l,c.y-a),i.lineTo(t.x,t.y)}else i.moveTo(c.x,c.y),i.lineTo(t.x,t.y)}_(),i.globalAlpha=g}init(){return this._freqs.links.clear(),this._freqs.triangles.clear(),this._colorCache.clear(),Promise.resolve()}particleCreated(i){if(i.links=[],!i.options.links)return;i.linksDistance=i.options.links.distance,i.linksWidth=i.options.links.width;const n=this._container.retina.pixelRatio;i.retina.linksDistance=i.linksDistance*n,i.retina.linksWidth=i.linksWidth*n}particleDestroyed(i){i.links=[]}_drawTriangles(i,n,t,s,o,l,a){var r,c;const h=t.destination,d=null===(r=i.links)||void 0===r?void 0:r.triangles;if(null==d||!d.enable||null===(c=h.options.links)||void 0===c||!c.triangles.enable)return;const u=h.links;if(null!=u&&u.length)for(const y of u){var g,k,f,p;if(y.isWarped||this._getLinkFrequency(h,y.destination)>h.options.links.frequency||!s.has(y.destination.id))continue;const r=y.destination;if(this._getTriangleFrequency(n,h,r)>(null!==(g=null===(k=i.links)||void 0===k?void 0:k.triangles.frequency)&&void 0!==g?g:0))continue;const c=null!==(f=d.opacity)&&void 0!==f?f:(t.opacity+y.opacity)*e.MXx,u=null!==(p=(0,e.BN0)(this._pluginManager,d.color))&&void 0!==p?p:t.color;if(!u||c<=0)continue;const _=r.getPosition();a.save(),a.fillStyle=this._getCachedStyle(u),a.globalAlpha=c,a.beginPath(),a.moveTo(o.x,o.y),a.lineTo(l.x,l.y),a.lineTo(_.x,_.y),a.closePath(),a.fill(),a.restore()}}_getCachedStyle(i){const n=`${i.r},${i.g},${i.b}`;let t=this._colorCache.get(n);return t||(t=(0,e.xxz)(i,this._container.hdr),this._colorCache.set(n,t)),t}_getLinkFrequency(i,n){return s([i,n],this._freqs.links)}_getTriangleFrequency(i,n,t){return s([i,n,t],this._freqs.triangles)}constructor(i,n){this._colorCache=new Map,this._pluginManager=i,this._container=n,this._freqs={links:new Map,triangles:new Map}}}}}]);