58 lines
2.1 KiB
JavaScript
58 lines
2.1 KiB
JavaScript
customElements.whenDefined('card-tools').then(() => {
|
|
|
|
class SecondaryInfoEntityRow extends cardTools.LitElement {
|
|
version() { return "0.4"; }
|
|
|
|
render() {
|
|
return cardTools.LitHtml`
|
|
${this._wrappedElement}
|
|
`;
|
|
}
|
|
|
|
setConfig(config) {
|
|
cardTools.checkVersion(2.0);
|
|
this._config = config;
|
|
this._wrappedElement = this._createElement(config);
|
|
this.requestUpdate();
|
|
}
|
|
|
|
set hass(hass) {
|
|
this._hass = hass;
|
|
this._stateObj = this._config.entity in hass.states ? hass.states[this._config.entity] : null;
|
|
this._updateElement(this._wrappedElement, hass);
|
|
}
|
|
|
|
_createElement(config) {
|
|
// Override the custom row type in order to create the 'standard' row for this entity
|
|
let defaultRowConfig = Object.assign({}, config);
|
|
delete defaultRowConfig.type;
|
|
const element = cardTools.createEntityRow(defaultRowConfig);
|
|
return element;
|
|
}
|
|
|
|
async _updateElement(wrappedElement, hass) {
|
|
if (!wrappedElement) return;
|
|
|
|
this._wrappedElement.hass = hass;
|
|
await this._wrappedElement.updateComplete;
|
|
await this._wrappedElement.shadowRoot.querySelector("hui-generic-entity-row");
|
|
let secondaryInfoDiv = this._wrappedElement.shadowRoot.querySelector("hui-generic-entity-row").shadowRoot.querySelector(".secondary");
|
|
if (secondaryInfoDiv && this._config.secondary_info) {
|
|
let text = window.cardTools.parseTemplate(this._config.secondary_info, {entity: this._config.entity});
|
|
secondaryInfoDiv.innerHTML = text;
|
|
}
|
|
}
|
|
}
|
|
customElements.define('secondaryinfo-entity-row', SecondaryInfoEntityRow);
|
|
|
|
});
|
|
|
|
setTimeout(() => {
|
|
if (customElements.get('card-tools')) return;
|
|
customElements.define('secondaryinfo-entity-row', class extends HTMLElement {
|
|
setConfig() {
|
|
throw new Error("Can't find card-tools. See https://github.com/thomasloven/lovelace-card-tools");
|
|
}
|
|
});
|
|
}, 2000);
|