Update cookcli-card.js
This commit is contained in:
parent
c603a0d4ec
commit
e3935f5822
69
dist/cookcli-card.js
vendored
69
dist/cookcli-card.js
vendored
|
|
@ -183,18 +183,14 @@ class CookCliCard extends HTMLElement {
|
|||
}
|
||||
}
|
||||
|
||||
class CookCliCardEditor extends HTMLElement {
|
||||
class CookCliCardEditor extends LitElement {
|
||||
setConfig(config) {
|
||||
this._config = config || {};
|
||||
}
|
||||
|
||||
set hass(hass) {
|
||||
this._hass = hass;
|
||||
}
|
||||
|
||||
// Définit le schéma du formulaire (une entrée par champ configurable)
|
||||
get _schema() {
|
||||
return [
|
||||
static getConfigForm() {
|
||||
return {
|
||||
schema: [
|
||||
{
|
||||
name: "title",
|
||||
selector: { text: {} },
|
||||
|
|
@ -209,53 +205,32 @@ class CookCliCardEditor extends HTMLElement {
|
|||
selector: { text: {} },
|
||||
helper: "Optionnel — ID d'entrée si plusieurs serveurs CookCLI",
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
// Fournit les libellés des champs
|
||||
_computeLabel(schema) {
|
||||
],
|
||||
computeLabel: (schema) => {
|
||||
const labels = {
|
||||
title: "Titre",
|
||||
dashboard_path: "Chemin du dashboard",
|
||||
entry_id: "Entry ID",
|
||||
};
|
||||
return labels[schema.name] || schema.name;
|
||||
},
|
||||
computeHelper: (schema) => {
|
||||
switch (schema.name) {
|
||||
case "entity":
|
||||
return "This text describes the function of the entity selector";
|
||||
case "unit":
|
||||
return "The unit of measurement for this card";
|
||||
}
|
||||
return undefined;
|
||||
},
|
||||
assertConfig: (config) => {
|
||||
if (config.other_option) {
|
||||
throw new Error("'other_option' is unexpected.");
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
// Gère les changements dans le formulaire
|
||||
_valueChanged(ev) {
|
||||
if (!this._config || !this._hass) {
|
||||
return;
|
||||
}
|
||||
const newConfig = { ...this._config, ...ev.detail.value };
|
||||
|
||||
this._config = newConfig;
|
||||
|
||||
const event = new CustomEvent("config-changed", {
|
||||
detail: { config: newConfig },
|
||||
bubbles: true,
|
||||
composed: true,
|
||||
});
|
||||
this.dispatchEvent(event);
|
||||
}
|
||||
|
||||
render() {
|
||||
if (!this._hass) return;
|
||||
|
||||
this.innerHTML = `
|
||||
<ha-form
|
||||
.hass=${this._hass}
|
||||
.data=${this._config}
|
||||
.schema=${this._schema}
|
||||
.computeLabel=${this._computeLabel.bind(this)}
|
||||
@value-changed=${this._valueChanged.bind(this)}
|
||||
></ha-form>
|
||||
`;
|
||||
}
|
||||
|
||||
connectedCallback() {
|
||||
this.render();
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("cookcli-card", CookCliCard);
|
||||
|
|
|
|||
Reference in a new issue