@matter-server/dashboard 0.3.7 → 0.3.8-alpha.0-20260216-643457e
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.
- package/dist/esm/client/models/descriptions.d.ts.map +1 -1
- package/dist/esm/client/models/descriptions.js +42 -0
- package/dist/esm/client/models/descriptions.js.map +1 -1
- package/dist/esm/pages/matter-node-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-node-view.js +10 -1
- package/dist/esm/pages/matter-node-view.js.map +1 -1
- package/dist/esm/util/device-icons.d.ts +5 -0
- package/dist/esm/util/device-icons.d.ts.map +1 -1
- package/dist/esm/util/device-icons.js +20 -0
- package/dist/esm/util/device-icons.js.map +1 -1
- package/dist/web/js/{commission-node-dialog-h9QTg0uL.js → commission-node-dialog-f01-yuK8.js} +4 -4
- package/dist/web/js/{commission-node-existing-TnFjP70Q.js → commission-node-existing-7MkbwKC8.js} +2 -2
- package/dist/web/js/{commission-node-thread-DumLBlyw.js → commission-node-thread-BYlj6zWm.js} +2 -2
- package/dist/web/js/{commission-node-wifi-CbT2wQDc.js → commission-node-wifi-CyVmjFUU.js} +2 -2
- package/dist/web/js/{dialog-box-DVtkVga3.js → dialog-box-Dt2qiFiq.js} +1 -1
- package/dist/web/js/{fire_event-D_gZK7cY.js → fire_event-D_kDkiQt.js} +1 -1
- package/dist/web/js/{log-level-dialog-ChcYXgfz.js → log-level-dialog-Dtg5a3Em.js} +1 -1
- package/dist/web/js/main.js +1 -1
- package/dist/web/js/{matter-dashboard-app-Dpr9EPlS.js → matter-dashboard-app-BFqsHXYm.js} +74 -4
- package/dist/web/js/{node-binding-dialog-BI9spkUK.js → node-binding-dialog-Bg_Q649-.js} +1 -1
- package/package.json +3 -3
- package/src/client/models/descriptions.ts +42 -0
- package/src/pages/matter-node-view.ts +10 -1
- package/src/util/device-icons.ts +30 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-node-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-node-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAgB,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAElF,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,2BAA2B,CAAC;AAGnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AAInC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,kBAAkB,EAAE,cAAc,CAAC;KACtC;CACJ;AASD,cACM,cAAe,SAAQ,UAAU;IAC5B,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAEhB,MAAM;
|
|
1
|
+
{"version":3,"file":"matter-node-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-node-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAgB,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAElF,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,2BAA2B,CAAC;AAGnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AAInC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,kBAAkB,EAAE,cAAc,CAAC;KACtC;CACJ;AASD,cACM,cAAe,SAAQ,UAAU;IAC5B,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAEhB,MAAM;IAsFf,OAAO,CAAC,OAAO;IAIf,OAAgB,MAAM,0BAkGpB;CACL"}
|
|
@@ -23,7 +23,7 @@ import { css, html, LitElement } from "lit";
|
|
|
23
23
|
import { customElement, property } from "lit/decorators.js";
|
|
24
24
|
import { guard } from "lit/directives/guard.js";
|
|
25
25
|
import "../components/ha-svg-icon";
|
|
26
|
-
import { getDeviceIcon } from "../util/device-icons.js";
|
|
26
|
+
import { getDeviceIcon, getEndpointIcon } from "../util/device-icons.js";
|
|
27
27
|
import { formatNodeAddress, getEffectiveFabricIndex } from "../util/format_hex.js";
|
|
28
28
|
import "./components/header";
|
|
29
29
|
import "./components/node-details";
|
|
@@ -86,6 +86,11 @@ let MatterNodeView = class extends LitElement {
|
|
|
86
86
|
() => getUniqueEndpoints(this.node).map((endPointId) => {
|
|
87
87
|
return html`
|
|
88
88
|
<md-list-item type="link" href=${`#node/${this.node.node_id}/${endPointId}`}>
|
|
89
|
+
<ha-svg-icon
|
|
90
|
+
slot="start"
|
|
91
|
+
class="endpoint-icon"
|
|
92
|
+
.path=${getEndpointIcon(this.node, endPointId)}
|
|
93
|
+
></ha-svg-icon>
|
|
89
94
|
<div slot="headline">Endpoint ${endPointId}</div>
|
|
90
95
|
<div slot="supporting-text">
|
|
91
96
|
Device Type(s):
|
|
@@ -148,6 +153,10 @@ MatterNodeView.styles = css`
|
|
|
148
153
|
--mdc-icon-size: 28px;
|
|
149
154
|
}
|
|
150
155
|
|
|
156
|
+
.endpoint-icon {
|
|
157
|
+
--icon-primary-color: var(--md-sys-color-on-surface-variant, #666);
|
|
158
|
+
}
|
|
159
|
+
|
|
151
160
|
.node-title-bar h2 {
|
|
152
161
|
margin: 0;
|
|
153
162
|
font-size: 1.25rem;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/pages/matter-node-view.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,oBAA8C;AACvD,SAAS,iBAAiB,uBAAuB;AACjD,SAAS,KAAK,MAAM,kBAAkB;AACtC,SAAS,eAAe,gBAAgB;AACxC,SAAS,aAAa;AACtB,OAAO;AACP,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -11,6 +11,11 @@ import type { MatterNode } from "@matter-server/ws-client";
|
|
|
11
11
|
* the first type found on any endpoint.
|
|
12
12
|
*/
|
|
13
13
|
export declare function getPrimaryDeviceType(node: MatterNode): number | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Gets the appropriate MDI icon path for a specific endpoint on a node.
|
|
16
|
+
* Prefers non-utility device types when present.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getEndpointIcon(node: MatterNode, endpoint: number): string;
|
|
14
19
|
/**
|
|
15
20
|
* Gets the appropriate MDI icon path for a node.
|
|
16
21
|
* Considers device type and Thread role.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-icons.d.ts","sourceRoot":"","sources":["../../../src/util/device-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAmU3D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAiCzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAW9D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,CAU5F;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,UAAU,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,OAAe,EAC3B,SAAS,GAAE,OAAe,GAC3B,MAAM,CAWR;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,GAAE,OAAe,EAAE,UAAU,GAAE,OAAe,GAAG,MAAM,CAI7G;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,GAAE,OAAe,GAAG,MAAM,CAG/E"}
|
|
1
|
+
{"version":3,"file":"device-icons.d.ts","sourceRoot":"","sources":["../../../src/util/device-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAmU3D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAiCzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAwB1E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAW9D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,CAU5F;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,UAAU,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,OAAe,EAC3B,SAAS,GAAE,OAAe,GAC3B,MAAM,CAWR;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,GAAE,OAAe,EAAE,UAAU,GAAE,OAAe,GAAG,MAAM,CAI7G;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,GAAE,OAAe,GAAG,MAAM,CAG/E"}
|
|
@@ -298,6 +298,25 @@ function getPrimaryDeviceType(node) {
|
|
|
298
298
|
}
|
|
299
299
|
return firstFound;
|
|
300
300
|
}
|
|
301
|
+
function getEndpointIcon(node, endpoint) {
|
|
302
|
+
const deviceTypeList = node.attributes[`${endpoint}/29/0`];
|
|
303
|
+
if (!deviceTypeList?.length) {
|
|
304
|
+
return mdiChip;
|
|
305
|
+
}
|
|
306
|
+
let firstFound;
|
|
307
|
+
for (const entry of deviceTypeList) {
|
|
308
|
+
const deviceType = extractDeviceType(entry);
|
|
309
|
+
if (deviceType === void 0) continue;
|
|
310
|
+
firstFound ??= deviceType;
|
|
311
|
+
if (deviceTypeToIcon[deviceType] && !UTILITY_TYPES.has(deviceType)) {
|
|
312
|
+
return deviceTypeToIcon[deviceType];
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
if (firstFound !== void 0 && deviceTypeToIcon[firstFound]) {
|
|
316
|
+
return deviceTypeToIcon[firstFound];
|
|
317
|
+
}
|
|
318
|
+
return mdiChip;
|
|
319
|
+
}
|
|
301
320
|
function getDeviceIcon(node, threadRole) {
|
|
302
321
|
if (threadRole !== void 0 && threadRoleToIcon[threadRole]) {
|
|
303
322
|
const deviceType2 = getPrimaryDeviceType(node);
|
|
@@ -362,6 +381,7 @@ export {
|
|
|
362
381
|
createUnknownDeviceIconDataUrl,
|
|
363
382
|
createWiFiRouterIconDataUrl,
|
|
364
383
|
getDeviceIcon,
|
|
384
|
+
getEndpointIcon,
|
|
365
385
|
getNetworkTypeIcon,
|
|
366
386
|
getPrimaryDeviceType
|
|
367
387
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/device-icons.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["deviceType"]
|
|
6
6
|
}
|
package/dist/web/js/{commission-node-dialog-h9QTg0uL.js → commission-node-dialog-f01-yuK8.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r, n, t, i, j as b } from './matter-dashboard-app-
|
|
1
|
+
import { r, n, t, i, j as b } from './matter-dashboard-app-BFqsHXYm.js';
|
|
2
2
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
@@ -50,18 +50,18 @@ let ComissionNodeDialog = class extends i {
|
|
|
50
50
|
if (!this.client.serverInfo.bluetooth_enabled) {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
|
-
import('./commission-node-wifi-
|
|
53
|
+
import('./commission-node-wifi-CyVmjFUU.js');
|
|
54
54
|
this._mode = "wifi";
|
|
55
55
|
}
|
|
56
56
|
_commissionThread() {
|
|
57
57
|
if (!this.client.serverInfo.bluetooth_enabled) {
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
|
-
import('./commission-node-thread-
|
|
60
|
+
import('./commission-node-thread-BYlj6zWm.js');
|
|
61
61
|
this._mode = "thread";
|
|
62
62
|
}
|
|
63
63
|
_commissionExisting() {
|
|
64
|
-
import('./commission-node-existing-
|
|
64
|
+
import('./commission-node-existing-7MkbwKC8.js');
|
|
65
65
|
this._mode = "existing";
|
|
66
66
|
}
|
|
67
67
|
_nodeCommissioned(ev) {
|
package/dist/web/js/{commission-node-existing-TnFjP70Q.js → commission-node-existing-7MkbwKC8.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-BFqsHXYm.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-D_kDkiQt.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
package/dist/web/js/{commission-node-thread-DumLBlyw.js → commission-node-thread-BYlj6zWm.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-BFqsHXYm.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-D_kDkiQt.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-BFqsHXYm.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-D_kDkiQt.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-
|
|
1
|
+
import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-BFqsHXYm.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @license
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as handleAsync } from './matter-dashboard-app-
|
|
1
|
+
import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as handleAsync } from './matter-dashboard-app-BFqsHXYm.js';
|
|
2
2
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
package/dist/web/js/main.js
CHANGED
|
@@ -748,7 +748,7 @@ const ThemeService = new ThemeServiceImpl();
|
|
|
748
748
|
* SPDX-License-Identifier: Apache-2.0
|
|
749
749
|
*/
|
|
750
750
|
async function main() {
|
|
751
|
-
import('./matter-dashboard-app-
|
|
751
|
+
import('./matter-dashboard-app-BFqsHXYm.js').then(function (n) { return n.I; });
|
|
752
752
|
let url = "";
|
|
753
753
|
const isProductionServer = window.__MATTERJS_PRODUCTION_MODE__ === true || location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
|
|
754
754
|
if (!isProductionServer) {
|
|
@@ -4020,7 +4020,7 @@ MdListItem = __decorate([t$1('md-list-item')], MdListItem);
|
|
|
4020
4020
|
*/
|
|
4021
4021
|
const showLogLevelDialog = async client => {
|
|
4022
4022
|
var _document$querySelect;
|
|
4023
|
-
await import('./log-level-dialog-
|
|
4023
|
+
await import('./log-level-dialog-Dtg5a3Em.js');
|
|
4024
4024
|
const dialog = document.createElement("log-level-dialog");
|
|
4025
4025
|
dialog.client = client;
|
|
4026
4026
|
(_document$querySelect = document.querySelector("matter-dashboard-app")) === null || _document$querySelect === void 0 || _document$querySelect.renderRoot.appendChild(dialog);
|
|
@@ -15526,12 +15526,42 @@ const clusters = {
|
|
|
15526
15526
|
"label": "ClusterRevision",
|
|
15527
15527
|
"type": "uint16"
|
|
15528
15528
|
},
|
|
15529
|
+
"319422464": {
|
|
15530
|
+
"id": 319422464,
|
|
15531
|
+
"cluster_id": 319486977,
|
|
15532
|
+
"label": "GetConfig",
|
|
15533
|
+
"type": "Optional[bytes]"
|
|
15534
|
+
},
|
|
15535
|
+
"319422465": {
|
|
15536
|
+
"id": 319422465,
|
|
15537
|
+
"cluster_id": 319486977,
|
|
15538
|
+
"label": "SetConfig",
|
|
15539
|
+
"type": "Optional[bytes]"
|
|
15540
|
+
},
|
|
15541
|
+
"319422466": {
|
|
15542
|
+
"id": 319422466,
|
|
15543
|
+
"cluster_id": 319486977,
|
|
15544
|
+
"label": "LoggingMetadata",
|
|
15545
|
+
"type": "Optional[bytes]"
|
|
15546
|
+
},
|
|
15547
|
+
"319422467": {
|
|
15548
|
+
"id": 319422467,
|
|
15549
|
+
"cluster_id": 319486977,
|
|
15550
|
+
"label": "LoggingData",
|
|
15551
|
+
"type": "Optional[bytes]"
|
|
15552
|
+
},
|
|
15529
15553
|
"319422470": {
|
|
15530
15554
|
"id": 319422470,
|
|
15531
15555
|
"cluster_id": 319486977,
|
|
15532
15556
|
"label": "TimesOpened",
|
|
15533
15557
|
"type": "Optional[unknown]"
|
|
15534
15558
|
},
|
|
15559
|
+
"319422471": {
|
|
15560
|
+
"id": 319422471,
|
|
15561
|
+
"cluster_id": 319486977,
|
|
15562
|
+
"label": "LastEventTime",
|
|
15563
|
+
"type": "Optional[uint32]"
|
|
15564
|
+
},
|
|
15535
15565
|
"319422472": {
|
|
15536
15566
|
"id": 319422472,
|
|
15537
15567
|
"cluster_id": 319486977,
|
|
@@ -15556,6 +15586,12 @@ const clusters = {
|
|
|
15556
15586
|
"label": "WattAccumulated",
|
|
15557
15587
|
"type": "Optional[unknown]"
|
|
15558
15588
|
},
|
|
15589
|
+
"319422476": {
|
|
15590
|
+
"id": 319422476,
|
|
15591
|
+
"cluster_id": 319486977,
|
|
15592
|
+
"label": "StatusFault",
|
|
15593
|
+
"type": "Optional[uint8]"
|
|
15594
|
+
},
|
|
15559
15595
|
"319422477": {
|
|
15560
15596
|
"id": 319422477,
|
|
15561
15597
|
"cluster_id": 319486977,
|
|
@@ -15580,6 +15616,12 @@ const clusters = {
|
|
|
15580
15616
|
"label": "ChildLock",
|
|
15581
15617
|
"type": "Optional[bool]"
|
|
15582
15618
|
},
|
|
15619
|
+
"319422482": {
|
|
15620
|
+
"id": 319422482,
|
|
15621
|
+
"cluster_id": 319486977,
|
|
15622
|
+
"label": "Rloc16",
|
|
15623
|
+
"type": "Optional[uint16]"
|
|
15624
|
+
},
|
|
15583
15625
|
"319422483": {
|
|
15584
15626
|
"id": 319422483,
|
|
15585
15627
|
"cluster_id": 319486977,
|
|
@@ -15680,7 +15722,7 @@ const clusters = {
|
|
|
15680
15722
|
* SPDX-License-Identifier: Apache-2.0
|
|
15681
15723
|
*/
|
|
15682
15724
|
const showDialogBox = async (type, dialogParams) => {
|
|
15683
|
-
await import('./dialog-box-
|
|
15725
|
+
await import('./dialog-box-Dt2qiFiq.js');
|
|
15684
15726
|
return new Promise(resolve => {
|
|
15685
15727
|
const dialog = document.createElement("dialog-box");
|
|
15686
15728
|
dialog.params = dialogParams;
|
|
@@ -15854,7 +15896,7 @@ MdTextButton = __decorate([t$1('md-text-button')], MdTextButton);
|
|
|
15854
15896
|
*/
|
|
15855
15897
|
const showNodeBindingDialog = async (client, node, endpoint) => {
|
|
15856
15898
|
var _document$querySelect;
|
|
15857
|
-
await import('./node-binding-dialog-
|
|
15899
|
+
await import('./node-binding-dialog-Bg_Q649-.js');
|
|
15858
15900
|
const dialog = document.createElement("node-binding-dialog");
|
|
15859
15901
|
dialog.client = client;
|
|
15860
15902
|
dialog.node = node;
|
|
@@ -16118,6 +16160,25 @@ function getPrimaryDeviceType(node) {
|
|
|
16118
16160
|
}
|
|
16119
16161
|
return firstFound;
|
|
16120
16162
|
}
|
|
16163
|
+
function getEndpointIcon(node, endpoint) {
|
|
16164
|
+
const deviceTypeList = node.attributes[`${endpoint}/29/0`];
|
|
16165
|
+
if (!(deviceTypeList !== null && deviceTypeList !== void 0 && deviceTypeList.length)) {
|
|
16166
|
+
return mdiChip;
|
|
16167
|
+
}
|
|
16168
|
+
let firstFound;
|
|
16169
|
+
for (const entry of deviceTypeList) {
|
|
16170
|
+
const deviceType = extractDeviceType(entry);
|
|
16171
|
+
if (deviceType === void 0) continue;
|
|
16172
|
+
firstFound ?? (firstFound = deviceType);
|
|
16173
|
+
if (deviceTypeToIcon[deviceType] && !UTILITY_TYPES.has(deviceType)) {
|
|
16174
|
+
return deviceTypeToIcon[deviceType];
|
|
16175
|
+
}
|
|
16176
|
+
}
|
|
16177
|
+
if (firstFound !== void 0 && deviceTypeToIcon[firstFound]) {
|
|
16178
|
+
return deviceTypeToIcon[firstFound];
|
|
16179
|
+
}
|
|
16180
|
+
return mdiChip;
|
|
16181
|
+
}
|
|
16121
16182
|
function getDeviceIcon(node, threadRole) {
|
|
16122
16183
|
if (threadRole !== void 0 && threadRoleToIcon[threadRole]) {
|
|
16123
16184
|
const deviceType2 = getPrimaryDeviceType(node);
|
|
@@ -31235,6 +31296,11 @@ let MatterNodeView = class extends i$4 {
|
|
|
31235
31296
|
${i$1([(_this$node = this.node) === null || _this$node === void 0 ? void 0 : _this$node.attributes.length], () => getUniqueEndpoints(this.node).map(endPointId => {
|
|
31236
31297
|
return b`
|
|
31237
31298
|
<md-list-item type="link" href=${`#node/${this.node.node_id}/${endPointId}`}>
|
|
31299
|
+
<ha-svg-icon
|
|
31300
|
+
slot="start"
|
|
31301
|
+
class="endpoint-icon"
|
|
31302
|
+
.path=${getEndpointIcon(this.node, endPointId)}
|
|
31303
|
+
></ha-svg-icon>
|
|
31238
31304
|
<div slot="headline">Endpoint ${endPointId}</div>
|
|
31239
31305
|
<div slot="supporting-text">
|
|
31240
31306
|
Device Type(s):
|
|
@@ -31296,6 +31362,10 @@ MatterNodeView.styles = i$7`
|
|
|
31296
31362
|
--mdc-icon-size: 28px;
|
|
31297
31363
|
}
|
|
31298
31364
|
|
|
31365
|
+
.endpoint-icon {
|
|
31366
|
+
--icon-primary-color: var(--md-sys-color-on-surface-variant, #666);
|
|
31367
|
+
}
|
|
31368
|
+
|
|
31299
31369
|
.node-title-bar h2 {
|
|
31300
31370
|
margin: 0;
|
|
31301
31371
|
font-size: 1.25rem;
|
|
@@ -31361,7 +31431,7 @@ MatterNodeView = __decorateClass$3([t$1("matter-node-view")], MatterNodeView);
|
|
|
31361
31431
|
*/
|
|
31362
31432
|
const showCommissionNodeDialog = async client => {
|
|
31363
31433
|
var _document$querySelect;
|
|
31364
|
-
await import('./commission-node-dialog-
|
|
31434
|
+
await import('./commission-node-dialog-f01-yuK8.js');
|
|
31365
31435
|
const dialog = document.createElement("commission-node-dialog");
|
|
31366
31436
|
dialog.client = client;
|
|
31367
31437
|
(_document$querySelect = document.querySelector("matter-dashboard-app")) === null || _document$querySelect === void 0 || _document$querySelect.renderRoot.appendChild(dialog);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { k as i, G as c, H as clientContext, n, a as e, i as i$1, A, j as b, F as handleAsync, t } from './matter-dashboard-app-
|
|
1
|
+
import { k as i, G as c, H as clientContext, n, a as e, i as i$1, A, j as b, F as handleAsync, t } from './matter-dashboard-app-BFqsHXYm.js';
|
|
2
2
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter-server/dashboard",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.8-alpha.0-20260216-643457e",
|
|
4
4
|
"description": "Dashboard for OHF Matter Server",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/matter-js/matterjs-server/issues"
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@lit/context": "^1.1.6",
|
|
39
39
|
"@material/web": "^2.4.1",
|
|
40
|
-
"@matter-server/ws-client": "0.3.
|
|
41
|
-
"@matter-server/custom-clusters": "0.3.
|
|
40
|
+
"@matter-server/ws-client": "0.3.8-alpha.0-20260216-643457e",
|
|
41
|
+
"@matter-server/custom-clusters": "0.3.8-alpha.0-20260216-643457e",
|
|
42
42
|
"@mdi/js": "^7.4.47",
|
|
43
43
|
"lit": "^3.3.2",
|
|
44
44
|
"tslib": "^2.8.1",
|
|
@@ -11291,12 +11291,42 @@ export const clusters: Record<number, ClusterDescription> = {
|
|
|
11291
11291
|
"label": "ClusterRevision",
|
|
11292
11292
|
"type": "uint16"
|
|
11293
11293
|
},
|
|
11294
|
+
"319422464": {
|
|
11295
|
+
"id": 319422464,
|
|
11296
|
+
"cluster_id": 319486977,
|
|
11297
|
+
"label": "GetConfig",
|
|
11298
|
+
"type": "Optional[bytes]"
|
|
11299
|
+
},
|
|
11300
|
+
"319422465": {
|
|
11301
|
+
"id": 319422465,
|
|
11302
|
+
"cluster_id": 319486977,
|
|
11303
|
+
"label": "SetConfig",
|
|
11304
|
+
"type": "Optional[bytes]"
|
|
11305
|
+
},
|
|
11306
|
+
"319422466": {
|
|
11307
|
+
"id": 319422466,
|
|
11308
|
+
"cluster_id": 319486977,
|
|
11309
|
+
"label": "LoggingMetadata",
|
|
11310
|
+
"type": "Optional[bytes]"
|
|
11311
|
+
},
|
|
11312
|
+
"319422467": {
|
|
11313
|
+
"id": 319422467,
|
|
11314
|
+
"cluster_id": 319486977,
|
|
11315
|
+
"label": "LoggingData",
|
|
11316
|
+
"type": "Optional[bytes]"
|
|
11317
|
+
},
|
|
11294
11318
|
"319422470": {
|
|
11295
11319
|
"id": 319422470,
|
|
11296
11320
|
"cluster_id": 319486977,
|
|
11297
11321
|
"label": "TimesOpened",
|
|
11298
11322
|
"type": "Optional[unknown]"
|
|
11299
11323
|
},
|
|
11324
|
+
"319422471": {
|
|
11325
|
+
"id": 319422471,
|
|
11326
|
+
"cluster_id": 319486977,
|
|
11327
|
+
"label": "LastEventTime",
|
|
11328
|
+
"type": "Optional[uint32]"
|
|
11329
|
+
},
|
|
11300
11330
|
"319422472": {
|
|
11301
11331
|
"id": 319422472,
|
|
11302
11332
|
"cluster_id": 319486977,
|
|
@@ -11321,6 +11351,12 @@ export const clusters: Record<number, ClusterDescription> = {
|
|
|
11321
11351
|
"label": "WattAccumulated",
|
|
11322
11352
|
"type": "Optional[unknown]"
|
|
11323
11353
|
},
|
|
11354
|
+
"319422476": {
|
|
11355
|
+
"id": 319422476,
|
|
11356
|
+
"cluster_id": 319486977,
|
|
11357
|
+
"label": "StatusFault",
|
|
11358
|
+
"type": "Optional[uint8]"
|
|
11359
|
+
},
|
|
11324
11360
|
"319422477": {
|
|
11325
11361
|
"id": 319422477,
|
|
11326
11362
|
"cluster_id": 319486977,
|
|
@@ -11345,6 +11381,12 @@ export const clusters: Record<number, ClusterDescription> = {
|
|
|
11345
11381
|
"label": "ChildLock",
|
|
11346
11382
|
"type": "Optional[bool]"
|
|
11347
11383
|
},
|
|
11384
|
+
"319422482": {
|
|
11385
|
+
"id": 319422482,
|
|
11386
|
+
"cluster_id": 319486977,
|
|
11387
|
+
"label": "Rloc16",
|
|
11388
|
+
"type": "Optional[uint16]"
|
|
11389
|
+
},
|
|
11348
11390
|
"319422483": {
|
|
11349
11391
|
"id": 319422483,
|
|
11350
11392
|
"cluster_id": 319486977,
|
|
@@ -14,7 +14,7 @@ import { css, html, LitElement } from "lit";
|
|
|
14
14
|
import { customElement, property } from "lit/decorators.js";
|
|
15
15
|
import { guard } from "lit/directives/guard.js";
|
|
16
16
|
import "../components/ha-svg-icon";
|
|
17
|
-
import { getDeviceIcon } from "../util/device-icons.js";
|
|
17
|
+
import { getDeviceIcon, getEndpointIcon } from "../util/device-icons.js";
|
|
18
18
|
import { formatNodeAddress, getEffectiveFabricIndex } from "../util/format_hex.js";
|
|
19
19
|
import "./components/header";
|
|
20
20
|
import "./components/node-details";
|
|
@@ -101,6 +101,11 @@ class MatterNodeView extends LitElement {
|
|
|
101
101
|
getUniqueEndpoints(this.node!).map(endPointId => {
|
|
102
102
|
return html`
|
|
103
103
|
<md-list-item type="link" href=${`#node/${this.node!.node_id}/${endPointId}`}>
|
|
104
|
+
<ha-svg-icon
|
|
105
|
+
slot="start"
|
|
106
|
+
class="endpoint-icon"
|
|
107
|
+
.path=${getEndpointIcon(this.node!, endPointId)}
|
|
108
|
+
></ha-svg-icon>
|
|
104
109
|
<div slot="headline">Endpoint ${endPointId}</div>
|
|
105
110
|
<div slot="supporting-text">
|
|
106
111
|
Device Type(s):
|
|
@@ -166,6 +171,10 @@ class MatterNodeView extends LitElement {
|
|
|
166
171
|
--mdc-icon-size: 28px;
|
|
167
172
|
}
|
|
168
173
|
|
|
174
|
+
.endpoint-icon {
|
|
175
|
+
--icon-primary-color: var(--md-sys-color-on-surface-variant, #666);
|
|
176
|
+
}
|
|
177
|
+
|
|
169
178
|
.node-title-bar h2 {
|
|
170
179
|
margin: 0;
|
|
171
180
|
font-size: 1.25rem;
|
package/src/util/device-icons.ts
CHANGED
|
@@ -368,6 +368,36 @@ export function getPrimaryDeviceType(node: MatterNode): number | undefined {
|
|
|
368
368
|
return firstFound;
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
+
/**
|
|
372
|
+
* Gets the appropriate MDI icon path for a specific endpoint on a node.
|
|
373
|
+
* Prefers non-utility device types when present.
|
|
374
|
+
*/
|
|
375
|
+
export function getEndpointIcon(node: MatterNode, endpoint: number): string {
|
|
376
|
+
const deviceTypeList = node.attributes[`${endpoint}/29/0`] as Array<Record<string, number>> | undefined;
|
|
377
|
+
if (!deviceTypeList?.length) {
|
|
378
|
+
return mdiChip;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
let firstFound: number | undefined;
|
|
382
|
+
|
|
383
|
+
for (const entry of deviceTypeList) {
|
|
384
|
+
const deviceType = extractDeviceType(entry);
|
|
385
|
+
if (deviceType === undefined) continue;
|
|
386
|
+
|
|
387
|
+
firstFound ??= deviceType;
|
|
388
|
+
|
|
389
|
+
if (deviceTypeToIcon[deviceType] && !UTILITY_TYPES.has(deviceType)) {
|
|
390
|
+
return deviceTypeToIcon[deviceType];
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
if (firstFound !== undefined && deviceTypeToIcon[firstFound]) {
|
|
395
|
+
return deviceTypeToIcon[firstFound];
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
return mdiChip;
|
|
399
|
+
}
|
|
400
|
+
|
|
371
401
|
/**
|
|
372
402
|
* Gets the appropriate MDI icon path for a node.
|
|
373
403
|
* Considers device type and Thread role.
|