mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-26 10:46:35 +00:00
Fix area picker (#15566)
This commit is contained in:
parent
f69ae84cc6
commit
43541f9754
@ -142,95 +142,99 @@ export class HaAreaPicker extends LitElement {
|
|||||||
includeDomains ||
|
includeDomains ||
|
||||||
excludeDomains ||
|
excludeDomains ||
|
||||||
includeDeviceClasses ||
|
includeDeviceClasses ||
|
||||||
|
deviceFilter ||
|
||||||
entityFilter
|
entityFilter
|
||||||
) {
|
) {
|
||||||
deviceEntityLookup = getDeviceEntityDisplayLookup(entities);
|
deviceEntityLookup = getDeviceEntityDisplayLookup(entities);
|
||||||
}
|
inputDevices = devices;
|
||||||
inputDevices = devices;
|
inputEntities = entities.filter((entity) => entity.area_id);
|
||||||
inputEntities = entities.filter((entity) => entity.area_id);
|
|
||||||
|
|
||||||
if (includeDomains) {
|
if (includeDomains) {
|
||||||
inputDevices = inputDevices!.filter((device) => {
|
inputDevices = inputDevices!.filter((device) => {
|
||||||
const devEntities = deviceEntityLookup[device.id];
|
const devEntities = deviceEntityLookup[device.id];
|
||||||
if (!devEntities || !devEntities.length) {
|
if (!devEntities || !devEntities.length) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return deviceEntityLookup[device.id].some((entity) =>
|
return deviceEntityLookup[device.id].some((entity) =>
|
||||||
|
includeDomains.includes(computeDomain(entity.entity_id))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
inputEntities = inputEntities!.filter((entity) =>
|
||||||
includeDomains.includes(computeDomain(entity.entity_id))
|
includeDomains.includes(computeDomain(entity.entity_id))
|
||||||
);
|
);
|
||||||
});
|
}
|
||||||
inputEntities = inputEntities!.filter((entity) =>
|
|
||||||
includeDomains.includes(computeDomain(entity.entity_id))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (excludeDomains) {
|
if (excludeDomains) {
|
||||||
inputDevices = inputDevices!.filter((device) => {
|
inputDevices = inputDevices!.filter((device) => {
|
||||||
const devEntities = deviceEntityLookup[device.id];
|
const devEntities = deviceEntityLookup[device.id];
|
||||||
if (!devEntities || !devEntities.length) {
|
if (!devEntities || !devEntities.length) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return entities.every(
|
return entities.every(
|
||||||
|
(entity) =>
|
||||||
|
!excludeDomains.includes(computeDomain(entity.entity_id))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
inputEntities = inputEntities!.filter(
|
||||||
(entity) =>
|
(entity) =>
|
||||||
!excludeDomains.includes(computeDomain(entity.entity_id))
|
!excludeDomains.includes(computeDomain(entity.entity_id))
|
||||||
);
|
);
|
||||||
});
|
}
|
||||||
inputEntities = inputEntities!.filter(
|
|
||||||
(entity) => !excludeDomains.includes(computeDomain(entity.entity_id))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (includeDeviceClasses) {
|
if (includeDeviceClasses) {
|
||||||
inputDevices = inputDevices!.filter((device) => {
|
inputDevices = inputDevices!.filter((device) => {
|
||||||
const devEntities = deviceEntityLookup[device.id];
|
const devEntities = deviceEntityLookup[device.id];
|
||||||
if (!devEntities || !devEntities.length) {
|
if (!devEntities || !devEntities.length) {
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return deviceEntityLookup[device.id].some((entity) => {
|
|
||||||
const stateObj = this.hass.states[entity.entity_id];
|
|
||||||
if (!stateObj) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
return deviceEntityLookup[device.id].some((entity) => {
|
||||||
|
const stateObj = this.hass.states[entity.entity_id];
|
||||||
|
if (!stateObj) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
stateObj.attributes.device_class &&
|
||||||
|
includeDeviceClasses.includes(stateObj.attributes.device_class)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
inputEntities = inputEntities!.filter((entity) => {
|
||||||
|
const stateObj = this.hass.states[entity.entity_id];
|
||||||
return (
|
return (
|
||||||
stateObj.attributes.device_class &&
|
stateObj.attributes.device_class &&
|
||||||
includeDeviceClasses.includes(stateObj.attributes.device_class)
|
includeDeviceClasses.includes(stateObj.attributes.device_class)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
inputEntities = inputEntities!.filter((entity) => {
|
|
||||||
const stateObj = this.hass.states[entity.entity_id];
|
if (deviceFilter) {
|
||||||
return (
|
inputDevices = inputDevices!.filter((device) =>
|
||||||
stateObj.attributes.device_class &&
|
deviceFilter!(device)
|
||||||
includeDeviceClasses.includes(stateObj.attributes.device_class)
|
|
||||||
);
|
);
|
||||||
});
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (deviceFilter) {
|
if (entityFilter) {
|
||||||
inputDevices = inputDevices!.filter((device) => deviceFilter!(device));
|
inputDevices = inputDevices!.filter((device) => {
|
||||||
}
|
const devEntities = deviceEntityLookup[device.id];
|
||||||
|
if (!devEntities || !devEntities.length) {
|
||||||
if (entityFilter) {
|
return false;
|
||||||
inputDevices = inputDevices!.filter((device) => {
|
}
|
||||||
const devEntities = deviceEntityLookup[device.id];
|
return deviceEntityLookup[device.id].some((entity) => {
|
||||||
if (!devEntities || !devEntities.length) {
|
const stateObj = this.hass.states[entity.entity_id];
|
||||||
return false;
|
if (!stateObj) {
|
||||||
}
|
return false;
|
||||||
return deviceEntityLookup[device.id].some((entity) => {
|
}
|
||||||
|
return entityFilter(stateObj);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
inputEntities = inputEntities!.filter((entity) => {
|
||||||
const stateObj = this.hass.states[entity.entity_id];
|
const stateObj = this.hass.states[entity.entity_id];
|
||||||
if (!stateObj) {
|
if (!stateObj) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return entityFilter(stateObj);
|
return entityFilter!(stateObj);
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
inputEntities = inputEntities!.filter((entity) => {
|
|
||||||
const stateObj = this.hass.states[entity.entity_id];
|
|
||||||
if (!stateObj) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return entityFilter!(stateObj);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let outputAreas = areas;
|
let outputAreas = areas;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user