node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 2.42 kB
JavaScript
;var S=Object.create;var a=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var C=(s,t)=>{for(var e in t)a(s,e,{get:t[e],enumerable:!0})},r=(s,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of y(t))!N.call(s,o)&&o!==e&&a(s,o,{get:()=>t[o],enumerable:!(n=x(t,o))||n.enumerable});return s};var b=(s,t,e)=>(e=s!=null?S(E(s)):{},r(t||!s||!s.__esModule?a(e,"default",{value:s,enumerable:!0}):e,s)),v=s=>r(a({},"__esModule",{value:!0}),s);var A={};C(A,{StatusColor:()=>g,StatusShape:()=>m,default:()=>c});module.exports=v(A);var d=require("../../globals"),p=require("../../helpers/date"),l=require("../../homeAssistant"),u=require("../errors/BaseError"),f=b(require("../events/ClientEvents")),h=require("./helpers"),g=(i=>(i.Blue="blue",i.Green="green",i.Grey="grey",i.Red="red",i.Yellow="yellow",i))(g||{}),m=(e=>(e.Dot="dot",e.Ring="ring",e))(m||{});class c{constructor(t){this.lastStatus={};this.config=t.config,this.exposeAsEntityConfigNode=t.exposeAsEntityConfigNode,this.node=t.node,this.exposeAsEntityConfigNode&&new f.default({node:this.node,emitter:this.exposeAsEntityConfigNode})?.addListener(l.HaEvent.StateChanged,this.onStateChange.bind(this))}onStateChange(){this.updateStatus(this.lastStatus)}get isExposeAsEnabled(){return this.exposeAsEntityConfigNode?.state.isEnabled()??!0}get dateString(){const t=this.config?.statusSeparator??"",e=(0,p.formatDate)({options:(0,h.getStatusOptions)(this.config)});return`${t}${e}`}translateText(t){const[e,n]=Array.isArray(t)?t:[t,void 0];return`${(0,u.isTranslationKey)(e)?d.RED._(e,n):e} ${this.dateString}`}updateStatus(t){this.isExposeAsEnabled===!1&&(t={fill:"grey",shape:"dot",text:"home-assistant.status.disabled"}),this.node.status(t)}set(t={}){this.isExposeAsEnabled&&(this.lastStatus=t),this.updateStatus(t)}setText(t=""){this.set({text:t})}setError(t="home-assistant.status.error"){this.set({fill:"red",shape:"ring",text:this.translateText(t)})}setFailed(t="home-assistant.status.failed"){this.set({fill:"red",shape:"ring",text:this.translateText(t)})}setSending(t="home-assistant.status.sending"){this.set({fill:"yellow",shape:"dot",text:this.translateText(t)})}setSuccess(t="home-assistant.status.success"){this.set({fill:"green",shape:"dot",text:this.translateText(t)})}}0&&(module.exports={StatusColor,StatusShape});