Skip to content

Commit f564b37

Browse files
committed
exploring object selector in settings
1 parent e0c75a1 commit f564b37

File tree

3 files changed

+116
-22
lines changed

3 files changed

+116
-22
lines changed

dist/kobold-alarm-clock-card.js

Lines changed: 56 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/kobold-alarm-clock-card.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/kobold-alarm-clock-card.ts

Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ window.customCards.push({
4848
type: "kobold-alarm-clock-card",
4949
name: "Kobold",
5050
description: "A multi-alarm clock for Home Assistant",
51-
preview: true,
51+
// preview: true, // will need styling to accommodate narrow spaces
5252
documentationURL: "https://codeberg.org/entekadesign/kobold-alarm-clock-card#readme",
5353
});
5454

@@ -903,15 +903,16 @@ class KoboldAlarmClockCard extends LitElement {
903903
let tabNo = parseInt(event.target.id.slice(4));
904904
window.setMyEditMode();
905905

906+
this._clockQ.style.display = 'none';
906907
// Helpers.getLovelace().style.display = 'none';
907908
// Helpers.getLovelace().style.filter = 'blur(10px)';
908909
// dialogBackground styles
909-
if (Helpers.getLovelace()) {
910-
const dialogBackgroundStyle = 'hui-root { display: none; }';
910+
if (Helpers.getLovelace().shadowRoot) {
911+
const dialogBackgroundStyle = 'hui-view, div.header { opacity: 0; transition: opacity 250ms; }';
911912
const myStyle = document.createElement('style');
912913
myStyle.innerHTML = dialogBackgroundStyle;
913-
Helpers.getLovelace().appendChild(myStyle);
914-
// console.log('*** lovelace style: ', Helpers.getLovelace());
914+
// console.log('*** lovelace style: ', Helpers.getLovelace().shadowRoot.querySelector('div'));
915+
Helpers.getLovelace().shadowRoot.querySelector('div').appendChild(myStyle);
915916
}
916917

917918
let rounds = 0;
@@ -934,6 +935,7 @@ class KoboldAlarmClockCard extends LitElement {
934935
this._koboldEditor = undefined;
935936
}
936937
}
938+
this._clockQ.style.display = 'flex';
937939
}
938940
// end of kobold-alarm-clock-card
939941
}
@@ -975,7 +977,41 @@ class KoboldCardEditor extends LitElement {
975977
{
976978
name: "alarm_actions",
977979
label: "Alarm Actions",
978-
selector: { object: {} },
980+
selector: {
981+
object: {
982+
// label_field: "name",
983+
// description_field: "percentage",
984+
// multiple: true,
985+
// fields: [
986+
// {
987+
// name: {
988+
// label: "Name",
989+
// selector: { text: {} },
990+
// }
991+
// },
992+
// {
993+
// percentage: {
994+
// label: "Percentage",
995+
// selector: { number: { unit_of_measurement: "%" } },
996+
// },
997+
// },
998+
// ],
999+
label_field: "name",
1000+
description_field: "percentage",
1001+
multiple: true,
1002+
fields: {
1003+
name: {
1004+
label: "Name",
1005+
selector: { text: {} }
1006+
},
1007+
percentage: {
1008+
label: "Percentage",
1009+
// selector: { number: { unit_of_measurement: "%" } }
1010+
selector: { text: {} }
1011+
}
1012+
}
1013+
}
1014+
}
9791015
},
9801016
{
9811017
name: "debug",
@@ -1164,9 +1200,13 @@ class KoboldCardEditor extends LitElement {
11641200
button.addEventListener('click', (event) => {
11651201
// Helpers.getLovelace().style.display = 'inline';
11661202
// Helpers.getLovelace().style.filter = 'none';
1167-
if (Helpers.getLovelace()) {
1168-
const dialogBackgroundStyle = 'hui-root { display: block; }';
1169-
Helpers.getLovelace().querySelector('style').remove();
1203+
if (Helpers.getLovelace().shadowRoot) {
1204+
// const myStyle = Helpers.getLovelace().shadowRoot.querySelector('div.edit-mode style');
1205+
// console.log('*** myStyle: ', myStyle);
1206+
// const dialogBackgroundStyle = 'hui-view, div.header { opacity: 1; }';
1207+
// myStyle.innerHTML = dialogBackgroundStyle;
1208+
// console.log('*** div: ', Helpers.getLovelace().shadowRoot.querySelector('div > style'));
1209+
Helpers.getLovelace().shadowRoot.querySelector('div > style').remove();
11701210
}
11711211

11721212
if (index === 1) {
@@ -1216,12 +1256,22 @@ class KoboldCardEditor extends LitElement {
12161256
if (!this._config) return;
12171257
const configChanges = Helpers.deepCompareObj(this._oldConfig, event.detail.value);
12181258
if (!configChanges) return;
1259+
// console.log('*** valueChanged(); configChanges: ', configChanges);
1260+
// console.log('*** valueChanged(); oldConfig: ', this._oldConfig);
1261+
// console.log('*** valueChanged(); event value: ', event.detail.value);
12191262
this._config = Helpers.deepMerge(Helpers.defaultConfig, event.detail.value);
12201263
this._config.last_updated = dayjs().format('YYYY-MM-DD HH:mm:ss');
1264+
// console.log('*** valueChanged(); new config: ', this._config);
12211265
const momentTomorrow = dayjs().add(1, 'day');
12221266
const dayTomorrow = momentTomorrow.format('dd').toLowerCase();
1267+
12231268
Object.keys(configChanges).forEach(
12241269
(item) => {
1270+
// console.log('*** item: ', item);
1271+
if (!event.detail.value[item]) {
1272+
event.detail.value[item] = this._config[item];//this._oldConfig[item];
1273+
// console.log('*** undefined item: ' + item + '; new value: ' + JSON.stringify(this._oldConfig[item]));
1274+
}
12251275
// update nextAlarm
12261276
if (item === dayTomorrow || item === 'alarms_enabled' || item === 'next_alarm') {
12271277
// console.log('*** changed item: ', item);
@@ -1387,7 +1437,6 @@ class KoboldCardEditor extends LitElement {
13871437
</div>
13881438
</div>
13891439
</div>
1390-
13911440
</div>`;
13921441
}
13931442

0 commit comments

Comments
 (0)