c.35c1b222.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import{_ as e,e as i,y as t,J as a,d as r,n as s,j as d,t as l,a5 as o}from"./main-ec7846c8.js";import{g as n,d as c}from"./c.84dcc549.js";import{f as u,a as h,b as v}from"./c.6f18200a.js";import{S as k}from"./c.79c8c092.js";import"./c.15aadbf5.js";import"./c.6eb9fcd4.js";import"./c.1024e243.js";import"./c.0e3055bd.js";import"./c.8e28b461.js";import"./c.eea05cf6.js";import"./c.874c8cfd.js";import"./c.fa0ef026.js";import"./c.d2f13ac1.js";import"./c.cb96fbc8.js";import"./c.227858d9.js";e([s("ha-areas-picker")],(function(e,s){return{F:class extends s{constructor(...i){super(...i),e(this)}},d:[{kind:"field",decorators:[i({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[i()],key:"label",value:void 0},{kind:"field",decorators:[i()],key:"value",value:void 0},{kind:"field",decorators:[i()],key:"helper",value:void 0},{kind:"field",decorators:[i()],key:"placeholder",value:void 0},{kind:"field",decorators:[i({type:Boolean,attribute:"no-add"})],key:"noAdd",value:void 0},{kind:"field",decorators:[i({type:Array,attribute:"include-domains"})],key:"includeDomains",value:void 0},{kind:"field",decorators:[i({type:Array,attribute:"exclude-domains"})],key:"excludeDomains",value:void 0},{kind:"field",decorators:[i({type:Array,attribute:"include-device-classes"})],key:"includeDeviceClasses",value:void 0},{kind:"field",decorators:[i()],key:"deviceFilter",value:void 0},{kind:"field",decorators:[i()],key:"entityFilter",value:void 0},{kind:"field",decorators:[i({attribute:"picked-area-label"})],key:"pickedAreaLabel",value:void 0},{kind:"field",decorators:[i({attribute:"pick-area-label"})],key:"pickAreaLabel",value:void 0},{kind:"field",decorators:[i({type:Boolean})],key:"disabled",value:void 0},{kind:"field",decorators:[i({type:Boolean})],key:"required",value:void 0},{kind:"method",key:"render",value:function(){if(!this.hass)return t``;const e=this._currentAreas;return t`
  2. ${e.map((e=>t`
  3. <div>
  4. <ha-area-picker
  5. .curValue=${e}
  6. .noAdd=${this.noAdd}
  7. .hass=${this.hass}
  8. .value=${e}
  9. .label=${this.pickedAreaLabel}
  10. .includeDomains=${this.includeDomains}
  11. .excludeDomains=${this.excludeDomains}
  12. .includeDeviceClasses=${this.includeDeviceClasses}
  13. .deviceFilter=${this.deviceFilter}
  14. .entityFilter=${this.entityFilter}
  15. .disabled=${this.disabled}
  16. @value-changed=${this._areaChanged}
  17. ></ha-area-picker>
  18. </div>
  19. `))}
  20. <div>
  21. <ha-area-picker
  22. .noAdd=${this.noAdd}
  23. .hass=${this.hass}
  24. .label=${this.pickAreaLabel}
  25. .helper=${this.helper}
  26. .includeDomains=${this.includeDomains}
  27. .excludeDomains=${this.excludeDomains}
  28. .includeDeviceClasses=${this.includeDeviceClasses}
  29. .deviceFilter=${this.deviceFilter}
  30. .entityFilter=${this.entityFilter}
  31. .disabled=${this.disabled}
  32. .placeholder=${this.placeholder}
  33. .required=${this.required&&!e.length}
  34. @value-changed=${this._addArea}
  35. ></ha-area-picker>
  36. </div>
  37. `}},{kind:"get",key:"_currentAreas",value:function(){return this.value||[]}},{kind:"method",key:"_updateAreas",value:async function(e){this.value=e,a(this,"value-changed",{value:e})}},{kind:"method",key:"_areaChanged",value:function(e){e.stopPropagation();const i=e.currentTarget.curValue,t=e.detail.value;if(t===i)return;const a=this._currentAreas;t&&!a.includes(t)?this._updateAreas(a.map((e=>e===i?t:e))):this._updateAreas(a.filter((e=>e!==i)))}},{kind:"method",key:"_addArea",value:function(e){e.stopPropagation();const i=e.detail.value;if(!i)return;e.currentTarget.value="";const t=this._currentAreas;t.includes(i)||this._updateAreas([...t,i])}},{kind:"field",static:!0,key:"styles",value:()=>r`
  38. div {
  39. margin-top: 8px;
  40. }
  41. `}]}}),k(d));let p=e([s("ha-selector-area")],(function(e,a){return{F:class extends a{constructor(...i){super(...i),e(this)}},d:[{kind:"field",decorators:[i()],key:"hass",value:void 0},{kind:"field",decorators:[i()],key:"selector",value:void 0},{kind:"field",decorators:[i()],key:"value",value:void 0},{kind:"field",decorators:[i()],key:"label",value:void 0},{kind:"field",decorators:[i()],key:"helper",value:void 0},{kind:"field",decorators:[i({type:Boolean})],key:"disabled",value:()=>!1},{kind:"field",decorators:[i({type:Boolean})],key:"required",value:()=>!0},{kind:"field",decorators:[l()],key:"_entitySources",value:void 0},{kind:"field",decorators:[l()],key:"_entities",value:void 0},{kind:"field",key:"_deviceIntegrationLookup",value:()=>o(n)},{kind:"method",key:"hassSubscribe",value:function(){return[c(this.hass.connection,(e=>{this._entities=e.filter((e=>null!==e.device_id))}))]}},{kind:"method",key:"updated",value:function(e){var i,t;e.has("selector")&&(null!==(i=this.selector.area.device)&&void 0!==i&&i.integration||null!==(t=this.selector.area.entity)&&void 0!==t&&t.integration)&&!this._entitySources&&u(this.hass).then((e=>{this._entitySources=e}))}},{kind:"method",key:"render",value:function(){var e,i;return(null!==(e=this.selector.area.device)&&void 0!==e&&e.integration||null!==(i=this.selector.area.entity)&&void 0!==i&&i.integration)&&!this._entitySources?t``:this.selector.area.multiple?t`
  42. <ha-areas-picker
  43. .hass=${this.hass}
  44. .value=${this.value}
  45. .helper=${this.helper}
  46. .pickAreaLabel=${this.label}
  47. no-add
  48. .deviceFilter=${this._filterDevices}
  49. .entityFilter=${this._filterEntities}
  50. .disabled=${this.disabled}
  51. .required=${this.required}
  52. ></ha-areas-picker>
  53. `:t`
  54. <ha-area-picker
  55. .hass=${this.hass}
  56. .value=${this.value}
  57. .label=${this.label}
  58. .helper=${this.helper}
  59. no-add
  60. .deviceFilter=${this._filterDevices}
  61. .entityFilter=${this._filterEntities}
  62. .disabled=${this.disabled}
  63. .required=${this.required}
  64. ></ha-area-picker>
  65. `}},{kind:"field",key:"_filterEntities",value(){return e=>!this.selector.area.entity||h(this.selector.area.entity,e,this._entitySources)}},{kind:"field",key:"_filterDevices",value(){return e=>{if(!this.selector.area.device)return!0;const i=this._entitySources&&this._entities?this._deviceIntegrationLookup(this._entitySources,this._entities):void 0;return v(this.selector.area.device,e,i)}}}]}}),k(d));export{p as HaAreaSelector};