UNPKG

iobroker.lovelace

Version:

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

152 lines (146 loc) 19.3 kB
(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[6684],{81303:(e,t,i)=>{"use strict";i(8878);const r=customElements.get("paper-dropdown-menu");customElements.define("ha-paper-dropdown-menu",class extends r{ready(){super.ready(),setTimeout((()=>{"rtl"===window.getComputedStyle(this).direction&&(this.style.textAlign="right")}),100)}})},24734:(e,t,i)=>{"use strict";i.d(t,{B:()=>n});var r=i(47181);const n=(e,t)=>{(0,r.B)(e,"show-dialog",{dialogTag:"dialog-media-player-browse",dialogImport:()=>Promise.all([i.e(5009),i.e(4358),i.e(8161),i.e(1041),i.e(8374),i.e(6372),i.e(9119),i.e(2174),i.e(3238),i.e(9382),i.e(4535),i.e(5397),i.e(2509)]).then(i.bind(i,52809)),dialogParams:t})}},69371:(e,t,i)=>{"use strict";i.d(t,{MU:()=>n,xh:()=>o,X6:()=>s,y:()=>a,Y3:()=>l,Bp:()=>d,rv:()=>c,VJ:()=>u,WE:()=>p,B6:()=>h,Hy:()=>m,VH:()=>f,ep:()=>y,Dh:()=>v,pu:()=>_,ZI:()=>b,N8:()=>g,Fn:()=>k,zz:()=>w,b:()=>E,rs:()=>$,Mj:()=>C});var r=i(55317);const n=1,o=2,s=4,a=8,l=16,d=32,c=128,u=256,p=512,h=1024,m=2048,f=4096,y=16384,v=65536,_=131072,b=4.5,g="browser",k={album:{icon:r.eBO,layout:"grid"},app:{icon:r.Kpn,layout:"grid"},artist:{icon:r.HwD,layout:"grid",show_list_images:!0},channel:{icon:r.nTs,thumbnail_ratio:"portrait",layout:"grid"},composer:{icon:r.vmK,layout:"grid",show_list_images:!0},contributing_artist:{icon:r.HwD,layout:"grid",show_list_images:!0},directory:{icon:r.in3,layout:"grid",show_list_images:!0},episode:{icon:r.nTs,layout:"grid",thumbnail_ratio:"portrait"},game:{icon:r.qK8,layout:"grid",thumbnail_ratio:"portrait"},genre:{icon:r.vXW,layout:"grid",show_list_images:!0},image:{icon:r.TaT,layout:"grid"},movie:{icon:r.l1p,thumbnail_ratio:"portrait",layout:"grid"},music:{icon:r.MxT},playlist:{icon:r.MxF,layout:"grid",show_list_images:!0},podcast:{icon:r.wu9,layout:"grid"},season:{icon:r.nTs,layout:"grid",thumbnail_ratio:"portrait"},track:{icon:r.ZH0},tv_show:{icon:r.nTs,layout:"grid",thumbnail_ratio:"portrait"},url:{icon:r.m5Y},video:{icon:r.Jhp,layout:"grid"}},w=(e,t,i,r)=>e.callWS({type:"media_player/browse_media",entity_id:t,media_content_id:i,media_content_type:r}),E=(e,t)=>e.callWS({type:"media_source/browse_media",media_content_id:t}),$=e=>{let t=e.attributes.media_position;return"playing"!==e.state||(t+=(Date.now()-new Date(e.attributes.media_position_updated_at).getTime())/1e3),t},C=e=>{let t;switch(e.attributes.media_content_type){case"music":t=e.attributes.media_artist;break;case"playlist":t=e.attributes.media_playlist;break;case"tvshow":t=e.attributes.media_series_title,e.attributes.media_season&&(t+=" S"+e.attributes.media_season,e.attributes.media_episode&&(t+="E"+e.attributes.media_episode));break;default:t=e.attributes.app_name||""}return t}},46684:(e,t,i)=>{"use strict";i.r(t);i(53918),i(25230);var r=i(55317),n=(i(30879),i(53973),i(51095),i(15652)),o=i(7323),s=i(40095),a=i(87744),l=(i(16509),i(10983),i(81303),i(46998),i(52039),i(24734)),d=i(56007),c=i(69371);function u(){u=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(i){t.forEach((function(t){t.kind===i&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var i=e.prototype;["method","field"].forEach((function(r){t.forEach((function(t){var n=t.placement;if(t.kind===r&&("static"===n||"prototype"===n)){var o="static"===n?e:i;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var i=t.descriptor;if("field"===t.kind){var r=t.initializer;i={enumerable:i.enumerable,writable:i.writable,configurable:i.configurable,value:void 0===r?void 0:r.call(e)}}Object.defineProperty(e,t.key,i)},decorateClass:function(e,t){var i=[],r=[],n={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,n)}),this),e.forEach((function(e){if(!m(e))return i.push(e);var t=this.decorateElement(e,n);i.push(t.element),i.push.apply(i,t.extras),r.push.apply(r,t.finishers)}),this),!t)return{elements:i,finishers:r};var o=this.decorateConstructor(i,t);return r.push.apply(r,o.finishers),o.finishers=r,o},addElementPlacement:function(e,t,i){var r=t[e.placement];if(!i&&-1!==r.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");r.push(e.key)},decorateElement:function(e,t){for(var i=[],r=[],n=e.decorators,o=n.length-1;o>=0;o--){var s=t[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),l=this.toElementFinisherExtras((0,n[o])(a)||a);e=l.element,this.addElementPlacement(e,t),l.finisher&&r.push(l.finisher);var d=l.extras;if(d){for(var c=0;c<d.length;c++)this.addElementPlacement(d[c],t);i.push.apply(i,d)}}return{element:e,finishers:r,extras:i}},decorateConstructor:function(e,t){for(var i=[],r=t.length-1;r>=0;r--){var n=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[r])(n)||n);if(void 0!==o.finisher&&i.push(o.finisher),void 0!==o.elements){e=o.elements;for(var s=0;s<e.length-1;s++)for(var a=s+1;a<e.length;a++)if(e[s].key===e[a].key&&e[s].placement===e[a].placement)throw new TypeError("Duplicated element ("+e[s].key+")")}}return{elements:e,finishers:i}},fromElementDescriptor:function(e){var t={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(t.initializer=e.initializer),t},toElementDescriptors:function(e){var t;if(void 0!==e)return(t=e,function(e){if(Array.isArray(e))return e}(t)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return _(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?_(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(e){var t=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),t}),this)},toElementDescriptor:function(e){var t=String(e.kind);if("method"!==t&&"field"!==t)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+t+'"');var i=v(e.key),r=String(e.placement);if("static"!==r&&"prototype"!==r&&"own"!==r)throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+r+'"');var n=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var o={kind:t,key:i,placement:r,descriptor:Object.assign({},n)};return"field"!==t?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(n,"get","The property descriptor of a field descriptor"),this.disallowProperty(n,"set","The property descriptor of a field descriptor"),this.disallowProperty(n,"value","The property descriptor of a field descriptor"),o.initializer=e.initializer),o},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:y(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var t={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),t},toClassDescriptor:function(e){var t=String(e.kind);if("class"!==t)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+t+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var i=y(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:i}},runClassFinishers:function(e,t){for(var i=0;i<t.length;i++){var r=(0,t[i])(e);if(void 0!==r){if("function"!=typeof r)throw new TypeError("Finishers must return a constructor.");e=r}}return e},disallowProperty:function(e,t,i){if(void 0!==e[t])throw new TypeError(i+" can't have a ."+t+" property.")}};return e}function p(e){var t,i=v(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var r={kind:"field"===e.kind?"field":"method",key:i,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(r.decorators=e.decorators),"field"===e.kind&&(r.initializer=e.value),r}function h(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function m(e){return e.decorators&&e.decorators.length}function f(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function y(e,t){var i=e[t];if(void 0!==i&&"function"!=typeof i)throw new TypeError("Expected '"+t+"' to be a function");return i}function v(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var r=i.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,r=new Array(t);i<t;i++)r[i]=e[i];return r}!function(e,t,i,r){var n=u();if(r)for(var o=0;o<r.length;o++)n=r[o](n);var s=t((function(e){n.initializeInstanceElements(e,a.elements)}),i),a=n.decorateClass(function(e){for(var t=[],i=function(e){return"method"===e.kind&&e.key===o.key&&e.placement===o.placement},r=0;r<e.length;r++){var n,o=e[r];if("method"===o.kind&&(n=t.find(i)))if(f(o.descriptor)||f(n.descriptor)){if(m(o)||m(n))throw new ReferenceError("Duplicated methods ("+o.key+") can't be decorated.");n.descriptor=o.descriptor}else{if(m(o)){if(m(n))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+o.key+").");n.decorators=o.decorators}h(o,n)}else t.push(o)}return t}(s.d.map(p)),e);n.initializeClassElements(s.F,a.elements),n.runClassFinishers(s.F,a.finishers)}([(0,n.Mo)("more-info-media_player")],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[(0,n.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,n.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"field",decorators:[(0,n.IO)("#ttsInput")],key:"_ttsInput",value:void 0},{kind:"method",key:"render",value:function(){var e,t;if(!this.stateObj)return n.dy``;const i=this._getControls(),l=this.stateObj;return n.dy` ${i?n.dy` <div class="controls"> <div class="basic-controls"> ${i.map((e=>n.dy` <ha-icon-button action=${e.action} .icon=${e.icon} @click=${this._handleClick} ></ha-icon-button> `))} </div> ${(0,s.e)(l,c.pu)?n.dy` <mwc-icon-button .title=${this.hass.localize("ui.card.media_player.browse_media")} @click=${this._showBrowseMedia} ><ha-svg-icon .path=${r.hBf}></ha-svg-icon ></mwc-icon-button> `:""} </div> `:""} ${!(0,s.e)(l,c.X6)&&!(0,s.e)(l,c.B6)||[d.nZ,d.lz,"off"].includes(l.state)?"":n.dy` <div class="volume"> ${(0,s.e)(l,c.y)?n.dy` <ha-icon-button .icon=${l.attributes.is_volume_muted?"hass:volume-off":"hass:volume-high"} @click=${this._toggleMute} ></ha-icon-button> `:""} ${(0,s.e)(l,c.B6)?n.dy` <ha-icon-button action="volume_down" icon="hass:volume-minus" @click=${this._handleClick} ></ha-icon-button> <ha-icon-button action="volume_up" icon="hass:volume-plus" @click=${this._handleClick} ></ha-icon-button> `:""} ${(0,s.e)(l,c.X6)?n.dy` <ha-slider id="input" pin ignore-bar-touch .dir=${(0,a.Zu)(this.hass)} .value=${100*Number(l.attributes.volume_level)} @change=${this._selectedValueChanged} ></ha-slider> `:""} </div> `} ${![d.nZ,d.lz,"off"].includes(l.state)&&(0,s.e)(l,c.Hy)&&(null===(e=l.attributes.source_list)||void 0===e?void 0:e.length)?n.dy` <div class="source-input"> <ha-icon class="source-input" icon="hass:login-variant"></ha-icon> <ha-paper-dropdown-menu .label=${this.hass.localize("ui.card.media_player.source")} > <paper-listbox slot="dropdown-content" attr-for-selected="item-name" .selected=${l.attributes.source} @iron-select=${this._handleSourceChanged} > ${l.attributes.source_list.map((e=>n.dy` <paper-item .itemName=${e}>${e}</paper-item> `))} </paper-listbox> </ha-paper-dropdown-menu> </div> `:""} ${(0,s.e)(l,c.Dh)&&(null===(t=l.attributes.sound_mode_list)||void 0===t?void 0:t.length)?n.dy` <div class="sound-input"> <ha-icon icon="hass:music-note"></ha-icon> <ha-paper-dropdown-menu dynamic-align label-float .label=${this.hass.localize("ui.card.media_player.sound_mode")} > <paper-listbox slot="dropdown-content" attr-for-selected="item-name" .selected=${l.attributes.sound_mode} @iron-select=${this._handleSoundModeChanged} > ${l.attributes.sound_mode_list.map((e=>n.dy` <paper-item .itemName=${e}>${e}</paper-item> `))} </paper-listbox> </ha-paper-dropdown-menu> </div> `:""} ${(0,o.p)(this.hass,"tts")&&(0,s.e)(l,c.WE)?n.dy` <div class="tts"> <paper-input id="ttsInput" .disabled=${d.V_.includes(l.state)} .label=${this.hass.localize("ui.card.media_player.text_to_speak")} @keydown=${this._ttsCheckForEnter} ></paper-input> <ha-icon-button icon="hass:send" .disabled=${d.V_.includes(l.state)} @click=${this._sendTTS} ></ha-icon-button> </div> </div> `:""} `}},{kind:"get",static:!0,key:"styles",value:function(){return n.iv` ha-icon-button[action="turn_off"], ha-icon-button[action="turn_on"], ha-slider, #ttsInput { flex-grow: 1; } .controls { display: flex; align-items: center; } .basic-controls { flex-grow: 1; } .volume, .source-input, .sound-input, .tts { display: flex; align-items: center; justify-content: space-between; } .source-input ha-icon, .sound-input ha-icon { padding: 7px; margin-top: 24px; } .source-input ha-paper-dropdown-menu, .sound-input ha-paper-dropdown-menu { margin-left: 10px; flex-grow: 1; } paper-item { cursor: pointer; } `}},{kind:"method",key:"_getControls",value:function(){const e=this.stateObj;if(!e)return;const t=e.state;if(d.V_.includes(t))return;if("off"===t)return(0,s.e)(e,c.rv)?[{icon:"hass:power",action:"turn_on"}]:void 0;if("idle"===t)return(0,s.e)(e,c.ep)?[{icon:"hass:play",action:"media_play"}]:void 0;const i=[];return(0,s.e)(e,c.VJ)&&i.push({icon:"hass:power",action:"turn_off"}),(0,s.e)(e,c.Y3)&&i.push({icon:"hass:skip-previous",action:"media_previous_track"}),("playing"===t&&((0,s.e)(e,c.MU)||(0,s.e)(e,c.VH))||"paused"===t&&(0,s.e)(e,c.ep))&&i.push({icon:"playing"!==t?"hass:play":(0,s.e)(e,c.MU)?"hass:pause":"hass:stop",action:"media_play_pause"}),(0,s.e)(e,c.Bp)&&i.push({icon:"hass:skip-next",action:"media_next_track"}),i.length>0?i:void 0}},{kind:"method",key:"_handleClick",value:function(e){this.hass.callService("media_player",e.currentTarget.getAttribute("action"),{entity_id:this.stateObj.entity_id})}},{kind:"method",key:"_toggleMute",value:function(){this.hass.callService("media_player","volume_mute",{entity_id:this.stateObj.entity_id,is_volume_muted:!this.stateObj.attributes.is_volume_muted})}},{kind:"method",key:"_selectedValueChanged",value:function(e){this.hass.callService("media_player","volume_set",{entity_id:this.stateObj.entity_id,volume_level:Number(e.currentTarget.getAttribute("value"))/100})}},{kind:"method",key:"_handleSourceChanged",value:function(e){const t=e.detail.item.itemName;t&&this.stateObj.attributes.source!==t&&this.hass.callService("media_player","select_source",{entity_id:this.stateObj.entity_id,source:t})}},{kind:"method",key:"_handleSoundModeChanged",value:function(e){var t;const i=e.detail.item.itemName;i&&(null===(t=this.stateObj)||void 0===t?void 0:t.attributes.sound_mode)!==i&&this.hass.callService("media_player","select_sound_mode",{entity_id:this.stateObj.entity_id,sound_mode:i})}},{kind:"method",key:"_ttsCheckForEnter",value:function(e){13===e.keyCode&&this._sendTTS()}},{kind:"method",key:"_sendTTS",value:function(){const e=this._ttsInput;if(!e)return;const t=this.hass.services.tts,i=Object.keys(t).sort().find((e=>-1!==e.indexOf("_say")));i&&(this.hass.callService("tts",i,{entity_id:this.stateObj.entity_id,message:e.value}),e.value="")}},{kind:"method",key:"_showBrowseMedia",value:function(){(0,l.B)(this,{action:"play",entityId:this.stateObj.entity_id,mediaPickedCallback:e=>this._playMedia(e.item.media_content_id,e.item.media_content_type)})}},{kind:"method",key:"_playMedia",value:function(e,t){this.hass.callService("media_player","play_media",{entity_id:this.stateObj.entity_id,media_content_id:e,media_content_type:t})}}]}}),n.oi)}}]); //# sourceMappingURL=chunk.2b1b4554ac47e4e310f0.js.map