mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-09 10:26:35 +00:00
Picture elements: add service-icon (#1439)
* Picture elements: add service-icon * Default for servie_data * Lint * Remove file
This commit is contained in:
parent
1b262f7cea
commit
6a35fc9eb5
@ -21,6 +21,7 @@ const VALID_TYPES = new Set([
|
|||||||
'image',
|
'image',
|
||||||
'navigation',
|
'navigation',
|
||||||
'service-button',
|
'service-button',
|
||||||
|
'service-icon',
|
||||||
'state-badge',
|
'state-badge',
|
||||||
'state-icon',
|
'state-icon',
|
||||||
'state-label',
|
'state-label',
|
||||||
@ -139,6 +140,13 @@ class HuiPictureElementsCard extends NavigateMixin(EventsMixin(LocalizeMixin(Pol
|
|||||||
el.innerText = element.title;
|
el.innerText = element.title;
|
||||||
el.hass = this.hass;
|
el.hass = this.hass;
|
||||||
break;
|
break;
|
||||||
|
case 'service-icon':
|
||||||
|
el = document.createElement('ha-icon');
|
||||||
|
el.icon = element.icon;
|
||||||
|
el.title = element.title || '';
|
||||||
|
el.addEventListener('click', () => this._handleClick(element));
|
||||||
|
el.classList.add('clickable');
|
||||||
|
break;
|
||||||
case 'state-badge':
|
case 'state-badge':
|
||||||
el = document.createElement('ha-state-label-badge');
|
el = document.createElement('ha-state-label-badge');
|
||||||
el.state = this.hass.states[entityId];
|
el.state = this.hass.states[entityId];
|
||||||
@ -232,16 +240,17 @@ class HuiPictureElementsCard extends NavigateMixin(EventsMixin(LocalizeMixin(Pol
|
|||||||
}
|
}
|
||||||
|
|
||||||
_handleClick(elementConfig) {
|
_handleClick(elementConfig) {
|
||||||
const tapAction = elementConfig.tap_action || 'more_info';
|
const tapAction = elementConfig.tap_action || (elementConfig.type === 'service-icon' ?
|
||||||
|
'call-service' : 'more-info');
|
||||||
|
|
||||||
switch (tapAction) {
|
switch (tapAction) {
|
||||||
case 'more_info':
|
case 'more-info':
|
||||||
this.fire('hass-more-info', { entityId: elementConfig.entity });
|
this.fire('hass-more-info', { entityId: elementConfig.entity });
|
||||||
break;
|
break;
|
||||||
case 'toggle':
|
case 'toggle':
|
||||||
toggleEntity(this.hass, elementConfig.entity);
|
toggleEntity(this.hass, elementConfig.entity);
|
||||||
break;
|
break;
|
||||||
case 'call_service': {
|
case 'call-service': {
|
||||||
const [domain, service] = elementConfig.service.split('.', 2);
|
const [domain, service] = elementConfig.service.split('.', 2);
|
||||||
const serviceData = Object.assign(
|
const serviceData = Object.assign(
|
||||||
{}, { entity_id: elementConfig.entity },
|
{}, { entity_id: elementConfig.entity },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user