@matter-server/dashboard 0.5.10 → 0.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/esm/components/dialog-box/dialog-box.d.ts.map +1 -1
  2. package/dist/esm/components/dialog-box/dialog-box.js.map +1 -1
  3. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.d.ts.map +1 -1
  4. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js +1 -7
  5. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js.map +1 -1
  6. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.d.ts.map +1 -1
  7. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js +1 -3
  8. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js.map +1 -1
  9. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.d.ts.map +1 -1
  10. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js +7 -7
  11. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js.map +1 -1
  12. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.d.ts.map +1 -1
  13. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js +1 -3
  14. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js.map +1 -1
  15. package/dist/esm/components/dialogs/settings/log-level-dialog.d.ts.map +1 -1
  16. package/dist/esm/components/dialogs/settings/log-level-dialog.js +1 -3
  17. package/dist/esm/components/dialogs/settings/log-level-dialog.js.map +1 -1
  18. package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.d.ts.map +1 -1
  19. package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.js +1 -3
  20. package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.js.map +1 -1
  21. package/dist/esm/pages/components/footer.d.ts.map +1 -1
  22. package/dist/esm/pages/components/footer.js +3 -1
  23. package/dist/esm/pages/components/footer.js.map +1 -1
  24. package/dist/esm/pages/components/header.d.ts.map +1 -1
  25. package/dist/esm/pages/components/header.js.map +1 -1
  26. package/dist/esm/pages/components/node-details.d.ts.map +1 -1
  27. package/dist/esm/pages/components/node-details.js +10 -13
  28. package/dist/esm/pages/components/node-details.js.map +1 -1
  29. package/dist/esm/pages/components/server-details.d.ts.map +1 -1
  30. package/dist/esm/pages/components/server-details.js +1 -3
  31. package/dist/esm/pages/components/server-details.js.map +1 -1
  32. package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
  33. package/dist/esm/pages/matter-cluster-view.js.map +1 -1
  34. package/dist/esm/pages/matter-network-view.d.ts.map +1 -1
  35. package/dist/esm/pages/matter-network-view.js +2 -2
  36. package/dist/esm/pages/matter-network-view.js.map +1 -1
  37. package/dist/esm/pages/matter-node-view.d.ts.map +1 -1
  38. package/dist/esm/pages/matter-node-view.js.map +1 -1
  39. package/dist/esm/pages/matter-server-view.d.ts.map +1 -1
  40. package/dist/esm/pages/matter-server-view.js +1 -3
  41. package/dist/esm/pages/matter-server-view.js.map +1 -1
  42. package/dist/esm/pages/network/device-panel.d.ts.map +1 -1
  43. package/dist/esm/pages/network/device-panel.js.map +1 -1
  44. package/dist/esm/pages/network/network-details.d.ts.map +1 -1
  45. package/dist/esm/pages/network/network-details.js +73 -74
  46. package/dist/esm/pages/network/network-details.js.map +1 -1
  47. package/dist/esm/pages/network/thread-graph.d.ts.map +1 -1
  48. package/dist/esm/pages/network/thread-graph.js +1 -3
  49. package/dist/esm/pages/network/thread-graph.js.map +1 -1
  50. package/dist/esm/pages/network/update-connections-dialog.d.ts.map +1 -1
  51. package/dist/esm/pages/network/update-connections-dialog.js +2 -6
  52. package/dist/esm/pages/network/update-connections-dialog.js.map +1 -1
  53. package/dist/esm/pages/network/wifi-graph.d.ts.map +1 -1
  54. package/dist/esm/pages/network/wifi-graph.js +1 -3
  55. package/dist/esm/pages/network/wifi-graph.js.map +1 -1
  56. package/dist/web/js/{commission-node-dialog-B8btRo-u.js → commission-node-dialog-C3vakpfo.js} +5 -11
  57. package/dist/web/js/{commission-node-existing-DV3Mdryb.js → commission-node-existing-D3r5Plch.js} +3 -5
  58. package/dist/web/js/{commission-node-thread-CRmXG-l7.js → commission-node-thread-C9ECK9dL.js} +9 -9
  59. package/dist/web/js/{commission-node-wifi-B9czrkgM.js → commission-node-wifi-DlG5s0i_.js} +3 -5
  60. package/dist/web/js/{dialog-box-D1T172PR.js → dialog-box-Bi0vD6U9.js} +1 -1
  61. package/dist/web/js/{fire_event-CpzR8zJR.js → fire_event-Cy9Y-JEv.js} +1 -1
  62. package/dist/web/js/{log-level-dialog-Dlvacuei.js → log-level-dialog-B7jqYNxe.js} +2 -4
  63. package/dist/web/js/main.js +1 -1
  64. package/dist/web/js/{matter-dashboard-app-CJAvDfru.js → matter-dashboard-app-BiNu4m8W.js} +97 -115
  65. package/dist/web/js/{node-binding-dialog-CTsnRoFC.js → node-binding-dialog-BmjRJ8c2.js} +1 -1
  66. package/package.json +5 -5
  67. package/src/components/dialog-box/dialog-box.ts +9 -15
  68. package/src/components/dialogs/commission-node-dialog/commission-node-dialog.ts +7 -15
  69. package/src/components/dialogs/commission-node-dialog/commission-node-existing.ts +1 -7
  70. package/src/components/dialogs/commission-node-dialog/commission-node-thread.ts +7 -15
  71. package/src/components/dialogs/commission-node-dialog/commission-node-wifi.ts +4 -12
  72. package/src/components/dialogs/settings/log-level-dialog.ts +7 -13
  73. package/src/pages/cluster-commands/clusters/basic-information-commands.ts +3 -7
  74. package/src/pages/components/footer.ts +3 -1
  75. package/src/pages/components/header.ts +15 -25
  76. package/src/pages/components/node-details.ts +29 -46
  77. package/src/pages/components/server-details.ts +1 -7
  78. package/src/pages/matter-cluster-view.ts +5 -9
  79. package/src/pages/matter-network-view.ts +7 -11
  80. package/src/pages/matter-node-view.ts +3 -5
  81. package/src/pages/matter-server-view.ts +1 -7
  82. package/src/pages/network/device-panel.ts +3 -5
  83. package/src/pages/network/network-details.ts +146 -192
  84. package/src/pages/network/thread-graph.ts +1 -3
  85. package/src/pages/network/update-connections-dialog.ts +17 -31
  86. package/src/pages/network/wifi-graph.ts +1 -3
@@ -92,12 +92,9 @@ export class LogLevelDialog extends LitElement {
92
92
  <md-dialog open @cancel=${preventDefault} @closed=${this._handleClosed}>
93
93
  <div slot="headline">Server Log Settings</div>
94
94
  <div slot="content">
95
- ${
96
- this._loading
97
- ? html`
98
- <p class="loading">Loading...</p>
99
- `
100
- : html`
95
+ ${this._loading
96
+ ? html` <p class="loading">Loading...</p> `
97
+ : html`
101
98
  <p class="hint">Changes are temporary and will be reset on the next server restart.</p>
102
99
  <div class="form-field">
103
100
  <label>Console Log Level</label>
@@ -114,9 +111,8 @@ export class LogLevelDialog extends LitElement {
114
111
  )}
115
112
  </md-outlined-select>
116
113
  </div>
117
- ${
118
- this._fileLevel !== null
119
- ? html`
114
+ ${this._fileLevel !== null
115
+ ? html`
120
116
  <div class="form-field">
121
117
  <label>File Log Level</label>
122
118
  <md-outlined-select name="file" .value=${this._fileLevel}>
@@ -133,10 +129,8 @@ export class LogLevelDialog extends LitElement {
133
129
  </md-outlined-select>
134
130
  </div>
135
131
  `
136
- : nothing
137
- }
138
- `
139
- }
132
+ : nothing}
133
+ `}
140
134
  </div>
141
135
  <div slot="actions">
142
136
  <md-text-button @click=${this._close}>Cancel</md-text-button>
@@ -74,13 +74,9 @@ export class BasicInformationClusterCommands extends BaseClusterCommands {
74
74
  <details class="command-panel">
75
75
  <summary>Node Label</summary>
76
76
  <div class="command-content">
77
- ${
78
- !this._isNodeAvailable
79
- ? html`
80
- <div class="offline-warning">Node is offline - cannot edit label</div>
81
- `
82
- : nothing
83
- }
77
+ ${!this._isNodeAvailable
78
+ ? html` <div class="offline-warning">Node is offline - cannot edit label</div> `
79
+ : nothing}
84
80
  <div class="command-row">
85
81
  <md-outlined-text-field
86
82
  label="Node Label"
@@ -13,7 +13,9 @@ export class DashboardFooter extends LitElement {
13
13
  return html`
14
14
  <div class="footer">
15
15
  The OHF Matter Server is a project by the Open Home Foundation.
16
- <a href="https://www.openhomefoundation.org/structure/#support-our-work" target="_blank">Support development</a>
16
+ <a href="https://www.openhomefoundation.org/structure/#support-our-work" target="_blank"
17
+ >Support development</a
18
+ >
17
19
  </div>
18
20
  `;
19
21
  }
@@ -107,26 +107,22 @@ export class DashboardHeader extends LitElement {
107
107
  aria-current=${this.activeView === "nodes" ? "page" : nothing}
108
108
  >Nodes</a
109
109
  >
110
- ${
111
- showThreadTab
112
- ? html`<a
110
+ ${showThreadTab
111
+ ? html`<a
113
112
  href="#thread"
114
113
  class="nav-tab ${this.activeView === "thread" ? "active" : ""}"
115
114
  aria-current=${this.activeView === "thread" ? "page" : nothing}
116
115
  >Thread</a
117
116
  >`
118
- : nothing
119
- }
120
- ${
121
- showWifiTab
122
- ? html`<a
117
+ : nothing}
118
+ ${showWifiTab
119
+ ? html`<a
123
120
  href="#wifi"
124
121
  class="nav-tab ${this.activeView === "wifi" ? "active" : ""}"
125
122
  aria-current=${this.activeView === "wifi" ? "page" : nothing}
126
123
  >WiFi</a
127
124
  >`
128
- : nothing
129
- }
125
+ : nothing}
130
126
  </nav>
131
127
  `;
132
128
  }
@@ -135,15 +131,13 @@ export class DashboardHeader extends LitElement {
135
131
  return html`
136
132
  <div class="header">
137
133
  <!-- optional back button -->
138
- ${
139
- this.backButton
140
- ? html` <a .href=${this.backButton}>
134
+ ${this.backButton
135
+ ? html` <a .href=${this.backButton}>
141
136
  <md-icon-button>
142
137
  <ha-svg-icon .path=${mdiArrowLeft}></ha-svg-icon>
143
138
  </md-icon-button>
144
139
  </a>`
145
- : ""
146
- }
140
+ : ""}
147
141
 
148
142
  <div class="title">${this.title ?? ""}</div>
149
143
  ${this._renderNavTabs()}
@@ -156,29 +150,25 @@ export class DashboardHeader extends LitElement {
156
150
  `;
157
151
  })}
158
152
  <!-- settings button (only when connected) -->
159
- ${
160
- this.client
161
- ? html`
153
+ ${this.client
154
+ ? html`
162
155
  <md-icon-button @click=${this._openSettings} title="Server Settings">
163
156
  <ha-svg-icon .path=${mdiCog}></ha-svg-icon>
164
157
  </md-icon-button>
165
158
  `
166
- : nothing
167
- }
159
+ : nothing}
168
160
  <!-- theme toggle button -->
169
161
  <md-icon-button @click=${this._cycleTheme} .title=${this._getThemeTooltip()}>
170
162
  <ha-svg-icon .path=${this._getThemeIcon()}></ha-svg-icon>
171
163
  </md-icon-button>
172
164
  <!-- optional logout button (only when client exists and not in production) -->
173
- ${
174
- this.client && !this.client.isProduction
175
- ? html`
165
+ ${this.client && !this.client.isProduction
166
+ ? html`
176
167
  <md-icon-button @click=${this.client.disconnect}>
177
168
  <ha-svg-icon .path=${mdiLogout}></ha-svg-icon>
178
169
  </md-icon-button>
179
170
  `
180
- : nothing
181
- }
171
+ : nothing}
182
172
  </div>
183
173
  </div>
184
174
  `;
@@ -81,13 +81,7 @@ export class NodeDetails extends LitElement {
81
81
  <ha-svg-icon slot="start" class="device-icon" .path=${getDeviceIcon(this.node)}></ha-svg-icon>
82
82
  <div slot="headline">
83
83
  <b>${this.node.nodeLabel || "Node Info"}</b>
84
- ${
85
- this.node.available
86
- ? nothing
87
- : html`
88
- <span class="status">OFFLINE</span>
89
- `
90
- }
84
+ ${this.node.available ? nothing : html` <span class="status">OFFLINE</span> `}
91
85
  </div>
92
86
  </md-list-item>
93
87
  <md-list-item>
@@ -101,56 +95,48 @@ export class NodeDetails extends LitElement {
101
95
  </div>
102
96
  <div slot="supporting-text"><span class="left">Is bridge: </span>${this.node.is_bridge}</div>
103
97
  <div slot="supporting-text"><span class="left">Serialnumber: </span>${this.node.serialNumber}</div>
104
- ${
105
- this.node.matter_version
106
- ? html`<div slot="supporting-text">
98
+ ${this.node.matter_version
99
+ ? html`<div slot="supporting-text">
107
100
  <span class="left">Matter version: </span>${this.node.matter_version}
108
101
  </div>`
109
- : nothing
110
- }
111
- ${
112
- this.node.is_bridge
113
- ? ""
114
- : html` <div slot="supporting-text">
102
+ : nothing}
103
+ ${this.node.is_bridge
104
+ ? ""
105
+ : html` <div slot="supporting-text">
115
106
  <span class="left">All device types: </span>${getNodeDeviceTypes(this.node)
116
107
  .map(deviceType => {
117
108
  return deviceType.label;
118
109
  })
119
110
  .join(" / ")}
120
- </div>`
121
- }
111
+ </div>`}
122
112
  </md-list-item>
123
113
  <md-list-item>
124
114
  <div class="btn-row">
125
115
  <md-outlined-button @click=${handleAsync(() => this._reinterview())}
126
116
  >Interview<ha-svg-icon slot="icon" .path=${mdiChatProcessing}></ha-svg-icon
127
117
  ></md-outlined-button>
128
- ${
129
- this._updateInitiated
130
- ? html` <md-outlined-button disabled
118
+ ${this._updateInitiated
119
+ ? html` <md-outlined-button disabled
131
120
  >Checking for updates<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
132
121
  ></md-outlined-button>`
133
- : (this.node.updateState ?? 0) > 1
134
- ? html` <md-outlined-button disabled
122
+ : (this.node.updateState ?? 0) > 1
123
+ ? html` <md-outlined-button disabled
135
124
  >${getUpdateStateLabel(
136
125
  this.node.updateState!,
137
126
  this.node.updateStateProgress,
138
127
  )}<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
139
128
  ></md-outlined-button>`
140
- : html`<md-outlined-button @click=${handleAsync(() => this._searchUpdate())}
129
+ : html`<md-outlined-button @click=${handleAsync(() => this._searchUpdate())}
141
130
  >Update<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
142
- ></md-outlined-button>`
143
- }
144
- ${
145
- bindings
146
- ? html`
131
+ ></md-outlined-button>`}
132
+ ${bindings
133
+ ? html`
147
134
  <md-outlined-button @click=${handleAsync(() => this._binding())}>
148
135
  Binding
149
136
  <ha-svg-icon slot="icon" .path=${mdiLink}></ha-svg-icon>
150
137
  </md-outlined-button>
151
138
  `
152
- : nothing
153
- }
139
+ : nothing}
154
140
 
155
141
  <md-outlined-button @click=${handleAsync(() => this._openCommissioningWindow())}
156
142
  >Share<ha-svg-icon slot="icon" .path=${mdiShareVariant}></ha-svg-icon
@@ -232,27 +218,24 @@ export class NodeDetails extends LitElement {
232
218
  if (
233
219
  !(await showPromptDialog({
234
220
  title: "Firmware update available",
235
- text: html`Found a firmware update for this node on
236
- <b>${nodeUpdate.update_source}</b>.
237
- ${
238
- isUnverifiedSource
239
- ? html`
240
- <p
241
- style="
221
+ text: html`Found a firmware update for this node on <b>${nodeUpdate.update_source}</b>.
222
+ ${isUnverifiedSource
223
+ ? html`
224
+ <p
225
+ style="
242
226
  background: var(--md-sys-color-error, #b3261e);
243
227
  color: var(--md-sys-color-on-error, #fff);
244
228
  padding: 8px 12px;
245
229
  border-radius: 4px;
246
230
  font-weight: bold;
247
231
  "
248
- >
249
- Warning: This update was found on an unverified source. Updates from test-net or local sources have not been
250
- certified and may contain untested firmware that could result in non-functional devices. Applying these updates is
251
- entirely at your own risk.
252
- </p>
253
- `
254
- : nothing
255
- }
232
+ >
233
+ Warning: This update was found on an unverified source. Updates from test-net or local
234
+ sources have not been certified and may contain untested firmware that could result in
235
+ non-functional devices. Applying these updates is entirely at your own risk.
236
+ </p>
237
+ `
238
+ : nothing}
256
239
  <p>
257
240
  Do you want to update this node to version
258
241
  <b>${nodeUpdate.software_version_string}</b>?
@@ -32,13 +32,7 @@ export class ServerDetails extends LitElement {
32
32
  <md-list-item>
33
33
  <div slot="headline">
34
34
  <b>Open Home Foundation Matter Server ${this.client.isProduction ? "" : `(${this.client.serverBaseAddress})`}</b>
35
- ${
36
- this.client.connection.connected
37
- ? nothing
38
- : html`
39
- <span class="status">OFFLINE</span>
40
- `
41
- }
35
+ ${this.client.connection.connected ? nothing : html` <span class="status">OFFLINE</span> `}
42
36
  </div>
43
37
  </md-list-item>
44
38
  <md-list-item>
@@ -118,27 +118,23 @@ class MatterClusterView extends LitElement {
118
118
  (attribute, index) => html`
119
119
  <md-list-item class=${index % 2 === 1 ? "alternate-row" : ""}>
120
120
  <div slot="headline">
121
- ${
122
- clusters[this.cluster!]?.attributes[attribute.key]?.label ??
123
- "Custom/Unknown Attribute"
124
- }
121
+ ${clusters[this.cluster!]?.attributes[attribute.key]?.label ??
122
+ "Custom/Unknown Attribute"}
125
123
  </div>
126
124
  <div slot="supporting-text">
127
125
  AttributeId: ${attribute.key} (${formatHex(attribute.key)}) - Value type:
128
126
  ${clusters[this.cluster!]?.attributes[attribute.key]?.type ?? "unknown"}
129
127
  </div>
130
128
  <div slot="end">
131
- ${
132
- toBigIntAwareJson(attribute.value).length > 30
133
- ? html`<button
129
+ ${toBigIntAwareJson(attribute.value).length > 30
130
+ ? html`<button
134
131
  @click=${() => {
135
132
  this._showAttributeValue(attribute.value);
136
133
  }}
137
134
  >
138
135
  Show value
139
136
  </button>`
140
- : html`<code>${toBigIntAwareJson(attribute.value)}</code>`
141
- }
137
+ : html`<code>${toBigIntAwareJson(attribute.value)}</code>`}
142
138
  </div>
143
139
  </md-list-item>
144
140
  `,
@@ -240,17 +240,13 @@ class MatterNetworkView extends LitElement {
240
240
  </div>
241
241
  </div>
242
242
  </div>
243
- ${
244
- this._threadAddressSearchStatus === "idle"
245
- ? ""
246
- : html`<div class="thread-search-status ${this._threadAddressSearchStatus}">
247
- ${
248
- this._threadAddressSearchStatus === "found"
249
- ? "Node highlighted."
250
- : "No matching extended address found."
251
- }
252
- </div>`
253
- }
243
+ ${this._threadAddressSearchStatus === "idle"
244
+ ? ""
245
+ : html`<div class="thread-search-status ${this._threadAddressSearchStatus}">
246
+ ${this._threadAddressSearchStatus === "found"
247
+ ? "Node highlighted."
248
+ : "No matching extended address found."}
249
+ </div>`}
254
250
  <thread-graph
255
251
  .nodes=${this.nodes}
256
252
  @node-selected=${this._handleNodeSelected}
@@ -75,16 +75,14 @@ class MatterNodeView extends LitElement {
75
75
  <div class="node-title-bar">
76
76
  <ha-svg-icon class="node-icon" .path=${getDeviceIcon(this.node)}></ha-svg-icon>
77
77
  <h2>Node ${this.node.node_id} <span class="node-id-hex">${nodeHex}</span></h2>
78
- ${
79
- showGraphButton
80
- ? html`
78
+ ${showGraphButton
79
+ ? html`
81
80
  <a href=${graphUrl} class="show-in-graph-button" title="Show in ${graphViewType} graph">
82
81
  <ha-svg-icon .path=${mdiGraphOutline}></ha-svg-icon>
83
82
  <span class="button-text">Show in graph</span>
84
83
  </a>
85
84
  `
86
- : ""
87
- }
85
+ : ""}
88
86
  </div>
89
87
  <node-details .node=${this.node} .client=${this.client}></node-details>
90
88
  </div>
@@ -97,13 +97,7 @@ class MatterServerView extends LitElement {
97
97
  node.node_id,
98
98
  )})</span
99
99
  >
100
- ${
101
- node.available
102
- ? ""
103
- : html`
104
- <span class="status">OFFLINE</span>
105
- `
106
- }
100
+ ${node.available ? "" : html` <span class="status">OFFLINE</span> `}
107
101
  </div>
108
102
  <div slot="supporting-text">
109
103
  ${node.nodeLabel ? `${node.nodeLabel} | ` : nothing} ${node.vendorName} |
@@ -96,9 +96,8 @@ export class DevicePanel extends LitElement {
96
96
  class="expand-icon"
97
97
  ></ha-svg-icon>
98
98
  </div>
99
- ${
100
- this._isExpanded
101
- ? html`
99
+ ${this._isExpanded
100
+ ? html`
102
101
  <md-list class="device-list">
103
102
  ${this.nodeIds.map(nodeId => {
104
103
  const node = this.nodes[nodeId.toString()];
@@ -114,8 +113,7 @@ export class DevicePanel extends LitElement {
114
113
  })}
115
114
  </md-list>
116
115
  `
117
- : nothing
118
- }
116
+ : nothing}
119
117
  </div>
120
118
  `;
121
119
  }