@@ -5,33 +5,31 @@ import {
5
5
LitElement ,
6
6
property ,
7
7
query ,
8
- TemplateResult
9
- } from " lit-element" ;
10
- import { translate } from " lit-translate" ;
11
- import { nothing } from " lit-html" ;
8
+ TemplateResult ,
9
+ } from ' lit-element' ;
10
+ import { translate } from ' lit-translate' ;
11
+ import { nothing } from ' lit-html' ;
12
12
13
- import { IconButtonToggle } from " @material/mwc-icon-button-toggle" ;
13
+ import { IconButtonToggle } from ' @material/mwc-icon-button-toggle' ;
14
14
15
15
import '@material/mwc-icon' ;
16
16
import '@material/mwc-icon-button' ;
17
17
import '@material/mwc-icon-button-toggle' ;
18
18
import '@material/mwc-list' ;
19
19
import '@material/mwc-list/mwc-list-item' ;
20
20
21
- import { newWizardEvent } from " ../../foundation.js" ;
21
+ import { newWizardEvent } from ' ../../foundation.js' ;
22
22
23
23
import '../../action-pane.js' ;
24
24
25
25
import {
26
26
get104DetailsLine ,
27
27
getCdcValue ,
28
28
getFullPath ,
29
- PRIVATE_TYPE_104
30
- } from "./foundation/foundation.js" ;
31
- import { editAddressWizard } from "./wizards/address.js" ;
32
- import { showDOIInfoWizard } from "./wizards/doi.js" ;
33
- import { } from "./foundation/private.js" ;
34
-
29
+ PRIVATE_TYPE_104 ,
30
+ } from './foundation/foundation.js' ;
31
+ import { editAddressWizard } from './wizards/address.js' ;
32
+ import { showDOIInfoWizard } from './wizards/doi.js' ;
35
33
36
34
/**
37
35
* Container showing all the DAI Elements, related to the 104 Protocol, of the passed DOI Element in a list.
@@ -45,89 +43,112 @@ export class Doi104Container extends LitElement {
45
43
@query ( '#toggleButton' )
46
44
toggleButton ! : IconButtonToggle | undefined ;
47
45
48
- private getDaiElements ( ) : Element [ ] {
46
+ @property ( )
47
+ get daiElements ( ) : Element [ ] {
49
48
return Array . from ( this . element . querySelectorAll ( `DAI` ) )
50
- . filter ( daiElement => daiElement . querySelector ( `Private[type="${ PRIVATE_TYPE_104 } "]` ) !== null )
51
- . sort ( ( dai1 , dai2 ) => getFullPath ( dai1 , 'DOI' ) . localeCompare ( getFullPath ( dai2 , 'DOI' ) ) ) ;
49
+ . filter (
50
+ daiElement =>
51
+ daiElement . querySelector ( `Private[type="${ PRIVATE_TYPE_104 } "]` ) !==
52
+ null
53
+ )
54
+ . sort ( ( dai1 , dai2 ) =>
55
+ getFullPath ( dai1 , 'DOI' ) . localeCompare ( getFullPath ( dai2 , 'DOI' ) )
56
+ ) ;
52
57
}
53
58
54
59
private getAddressElements ( daiElement : Element ) : Element [ ] {
55
- return Array . from ( daiElement . querySelectorAll ( `Private[type="${ PRIVATE_TYPE_104 } "] > Address` ) )
56
- . sort ( ( addr1 , addr2 ) => ( addr1 . getAttribute ( 'ioa' ) ?? '' ) . localeCompare ( addr2 . getAttribute ( 'ioa' ) ?? '' ) ) ;
60
+ return Array . from (
61
+ daiElement . querySelectorAll (
62
+ `Private[type="${ PRIVATE_TYPE_104 } "] > Address`
63
+ )
64
+ ) . sort ( ( addr1 , addr2 ) =>
65
+ ( addr1 . getAttribute ( 'ioa' ) ?? '' ) . localeCompare (
66
+ addr2 . getAttribute ( 'ioa' ) ?? ''
67
+ )
68
+ ) ;
57
69
}
58
70
59
71
protected firstUpdated ( ) : void {
60
72
this . requestUpdate ( ) ;
61
73
}
62
74
63
- private openEditAddressWizard ( daiElement : Element , addressElement : Element ) : void {
64
- this . dispatchEvent ( newWizardEvent ( editAddressWizard ( daiElement , addressElement ) ) ) ;
75
+ private openEditAddressWizard (
76
+ daiElement : Element ,
77
+ addressElement : Element
78
+ ) : void {
79
+ this . dispatchEvent (
80
+ newWizardEvent ( editAddressWizard ( daiElement , addressElement ) )
81
+ ) ;
65
82
}
66
83
67
84
private openEditTiWizard ( ) : void {
68
85
this . dispatchEvent ( newWizardEvent ( showDOIInfoWizard ( this . element ) ) ) ;
69
86
}
70
87
71
- private header ( ) : TemplateResult {
72
- const fullPath = getFullPath ( this . element , 'IED' )
88
+ @property ( )
89
+ get header ( ) : TemplateResult {
90
+ const fullPath = getFullPath ( this . element , 'IED' ) ;
73
91
const cdc = getCdcValue ( this . element ) ;
74
92
75
93
return html `${ fullPath } ${ cdc ? html ` (${ cdc } )` : nothing } ` ;
76
94
}
77
95
78
96
private renderAddressList ( daiElement : Element ) : TemplateResult {
79
97
const addresses = this . getAddressElements ( daiElement ) ;
80
- return html `${ addresses . map ( addressElement => {
98
+ return html `${ addresses . map ( addressElement => {
81
99
return html `
82
- <mwc- lis t- item graphic= "icon" hasMeta >
83
- <span slot= "graphic" > & nbsp;</ span>
84
- <span> ${ get104DetailsLine ( addressElement ) } </ span>
85
- <span slot= "meta" >
86
- <mwc- icon- butto n
87
- icon= "edit"
88
- @click = ${ ( ) => this . openEditAddressWizard ( daiElement , addressElement ) } >
89
- </ mwc- icon- butto n>
90
- </ span>
91
- </ mwc- lis t- item>
92
- ` ;
100
+ <mwc- lis t- item graphic= "icon" hasMeta >
101
+ <span slot= "graphic" > & nbsp;</ span>
102
+ <span> ${ get104DetailsLine ( daiElement , addressElement ) } </ span>
103
+ <span slot= "meta" >
104
+ <mwc- icon- butto n
105
+ icon= "edit"
106
+ @click = ${ ( ) =>
107
+ this . openEditAddressWizard ( daiElement , addressElement ) }
108
+ >
109
+ </ mwc- icon- butto n>
110
+ </ span>
111
+ </ mwc- lis t- item>
112
+ ` ;
93
113
} ) } `;
94
114
}
95
115
96
116
private renderDaiList ( ) : TemplateResult {
97
- const daiElements = this . getDaiElements ( ) ;
98
- return html `${ daiElements . map ( daiElement => {
99
- return html `
100
- <mwc- lis t- item noninteractive>
101
- <span> ${ getFullPath ( daiElement , 'DOI' ) } </ span>
102
- </ mwc- lis t- item>
103
- ${ this . renderAddressList ( daiElement ) }
104
- ` ;
117
+ const daiElements = this . daiElements ;
118
+ return html `${ daiElements . map ( daiElement => {
119
+ return html `
120
+ <mwc- lis t- item noninteractive>
121
+ <span> ${ getFullPath ( daiElement , 'DOI' ) } </ span>
122
+ </ mwc- lis t- item>
123
+ ${ this . renderAddressList ( daiElement ) }
124
+ ` ;
105
125
} ) } `;
106
126
}
107
127
108
128
render ( ) : TemplateResult {
109
129
return html `
110
- <action- pane .label = "${ this . header ( ) } ">
130
+ <action- pane .label = "${ this . header } ">
111
131
<abbr slot= "action" title = "${ translate ( 'edit' ) } ">
112
132
<mwc- icon- butto n
113
133
icon= "info"
114
134
@click = ${ ( ) => this . openEditTiWizard ( ) }
115
135
> </ mwc- icon- butto n>
116
136
</ abbr>
117
- <abbr slot= "action" title = "${ translate ( 'protocol104.toggleChildElements' ) } ">
137
+ <abbr
138
+ slot= "action"
139
+ title = "${ translate ( 'protocol104.toggleChildElements' ) } "
140
+ >
118
141
<mwc- icon- butto n- to ggle
119
142
id= "toggleButton"
120
143
on
121
144
onIcon = "keyboard_arrow_up"
122
145
offIcon= "keyboard_arrow_down"
123
- @click = ${ ( ) => this . requestUpdate ( ) } >
146
+ @click = ${ ( ) => this . requestUpdate ( ) }
147
+ >
124
148
</ mwc- icon- butto n- to ggle>
125
149
</ abbr>
126
150
${ this . toggleButton ?. on
127
- ? html `
128
- <mwc- lis t id= "dailist" >
129
- ${ this . renderDaiList ( ) }
130
- </ mwc- lis t> `
151
+ ? html ` <mwc- lis t id= "dailist" > ${ this . renderDaiList ( ) } </ mwc- lis t> `
131
152
: nothing }
132
153
</ action- pane>
133
154
` ;
0 commit comments