@@ -4,6 +4,17 @@ import styles from './editor.styles';
4
4
export class WeekPlannerCardEditor extends LitElement {
5
5
static styles = styles ;
6
6
7
+ connectedCallback ( ) {
8
+ super . connectedCallback ( ) ;
9
+ this . loadCustomElements ( ) ;
10
+ }
11
+
12
+ async loadCustomElements ( ) {
13
+ if ( ! customElements . get ( "ha-entity-picker" ) ) {
14
+ await customElements . get ( "hui-entities-card" ) . getConfigElement ( ) ;
15
+ }
16
+ }
17
+
7
18
static get properties ( ) {
8
19
return {
9
20
hass : { } ,
@@ -31,10 +42,10 @@ export class WeekPlannerCardEditor extends LitElement {
31
42
${ this . addExpansionPanel (
32
43
`Calendar: ${ calendar . name ?? calendar . entity } ` ,
33
44
html `
34
- ${ this . addTextField ( 'calendars.' + index + '.entity' , 'Entity' ) }
45
+ ${ this . addEntityPickerField ( 'calendars.' + index + '.entity' , 'Entity' , [ 'calendar' ] ) }
35
46
${ this . addTextField ( 'calendars.' + index + '.name' , 'Name' ) }
36
47
${ this . addTextField ( 'calendars.' + index + '.color' , 'Color' ) }
37
- ${ this . addTextField ( 'calendars.' + index + '.icon' , 'Icon' ) }
48
+ ${ this . addIconPickerField ( 'calendars.' + index + '.icon' , 'Icon' ) }
38
49
${ this . addTextField ( 'calendars.' + index + '.filter' , 'Filter events (regex)' ) }
39
50
${ this . addTextField ( 'calendars.' + index + '.filterText' , 'Filter event text (regex)' ) }
40
51
${ this . addBooleanField ( 'calendars.' + index + '.hideInLegend' , 'Hide in legend' ) }
@@ -125,7 +136,7 @@ export class WeekPlannerCardEditor extends LitElement {
125
136
${ this . addExpansionPanel (
126
137
'Weather' ,
127
138
html `
128
- ${ this . addTextField ( 'weather.entity' , 'Weather entity' ) }
139
+ ${ this . addEntityPickerField ( 'weather.entity' , 'Weather entity' , [ 'weather' ] ) }
129
140
${ this . addBooleanField ( 'weather.showCondition' , 'Show condition icon' ) }
130
141
${ this . addBooleanField ( 'weather.showTemperature' , 'Show temperature' ) }
131
142
${ this . addBooleanField ( 'weather.showLowTemperature' , 'Show low temperature' ) }
@@ -181,6 +192,31 @@ export class WeekPlannerCardEditor extends LitElement {
181
192
` ;
182
193
}
183
194
195
+ addEntityPickerField ( name , label , includeDomains ) {
196
+ return html `
197
+ < ha-entity-picker
198
+ .hass ="${ this . hass } "
199
+ name ="${ name } "
200
+ label ="${ label ?? name } "
201
+ value ="${ this . getConfigValue ( name ) } "
202
+ .includeDomains ="${ includeDomains } "
203
+ @change ="${ this . _valueChanged } "
204
+ />
205
+ ` ;
206
+ }
207
+
208
+ addIconPickerField ( name , label ) {
209
+ return html `
210
+ < ha-icon-picker
211
+ .hass ="${ this . hass } "
212
+ name ="${ name } "
213
+ label ="${ label ?? name } "
214
+ value ="${ this . getConfigValue ( name ) } "
215
+ @change ="${ this . _valueChanged } "
216
+ />
217
+ ` ;
218
+ }
219
+
184
220
addSelectField ( name , label , options , clearable ) {
185
221
return html `
186
222
< ha-select
0 commit comments