@matter-server/dashboard 0.2.5 → 0.2.6
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/pages/components/node-details.d.ts.map +1 -1
- package/dist/esm/pages/components/node-details.js +27 -8
- package/dist/esm/pages/components/node-details.js.map +2 -2
- package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-cluster-view.js +3 -2
- package/dist/esm/pages/matter-cluster-view.js.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.js +2 -1
- package/dist/esm/pages/matter-endpoint-view.js.map +1 -1
- package/dist/esm/util/format_hex.d.ts +17 -0
- package/dist/esm/util/format_hex.d.ts.map +1 -0
- package/dist/esm/util/format_hex.js +18 -0
- package/dist/esm/util/format_hex.js.map +6 -0
- package/dist/web/js/{commission-node-dialog-30lGnJcb.js → commission-node-dialog--19-sX9D.js} +5 -5
- package/dist/web/js/{commission-node-existing-RgaziosB.js → commission-node-existing-DY6SnsHb.js} +4 -4
- package/dist/web/js/{commission-node-thread-CJn6OYQX.js → commission-node-thread-CXquVvK5.js} +4 -4
- package/dist/web/js/{commission-node-wifi-CCBBvBEh.js → commission-node-wifi-VQGVOrr7.js} +4 -4
- package/dist/web/js/{dialog-box-CFO9GMyG.js → dialog-box-qX-alVZJ.js} +2 -2
- package/dist/web/js/{fire_event-CdvT7FSP.js → fire_event-B13DcOc9.js} +1 -1
- package/dist/web/js/main.js +1 -1
- package/dist/web/js/{matter-dashboard-app-DwI2RvT1.js → matter-dashboard-app-CU3-L2nl.js} +45 -14
- package/dist/web/js/{node-binding-dialog-CmTgtqz1.js → node-binding-dialog-D4rr_G9I.js} +3 -3
- package/dist/web/js/{outlined-text-field-DeeCilzP.js → outlined-text-field-CtlEkpbk.js} +2 -2
- package/dist/web/js/{prevent_default--haJaAsZ.js → prevent_default-Dw7ifAL-.js} +1 -1
- package/package.json +3 -3
- package/src/pages/components/node-details.ts +33 -8
- package/src/pages/matter-cluster-view.ts +3 -2
- package/src/pages/matter-endpoint-view.ts +2 -1
- package/src/util/format_hex.ts +30 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-details.d.ts","sourceRoot":"","sources":["../../../../src/pages/components/node-details.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,oCAAoC,CAAC;AAC5C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AAItC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAKrD,OAAO,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"node-details.d.ts","sourceRoot":"","sources":["../../../../src/pages/components/node-details.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,oCAAoC,CAAC;AAC5C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AAItC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAKrD,OAAO,8BAA8B,CAAC;AAoCtC,qBACa,WAAY,SAAQ,UAAU;IAChC,MAAM,EAAG,YAAY,CAAC;IAEV,IAAI,CAAC,EAAE,UAAU,CAAC;IAGrC,OAAO,CAAC,gBAAgB,CAAkB;IAI1C,QAAQ,EAAG,MAAM,CAAC;cAEC,MAAM;YAwEX,YAAY;YAyBZ,OAAO;YAsBP,QAAQ;YAQR,aAAa;YAmCb,wBAAwB;IAwBtC,OAAgB,MAAM,0BAkBpB;CACL"}
|
|
@@ -29,6 +29,23 @@ import { showNodeBindingDialog } from "../../components/dialogs/binding/show-nod
|
|
|
29
29
|
import "../../components/ha-svg-icon";
|
|
30
30
|
import { getEndpointDeviceTypes } from "../matter-endpoint-view.js";
|
|
31
31
|
import { bindingContext } from "./context.js";
|
|
32
|
+
const UPDATE_STATE_LABELS = {
|
|
33
|
+
1: "Idle",
|
|
34
|
+
2: "Querying",
|
|
35
|
+
3: "Waiting (Querying)",
|
|
36
|
+
4: "Downloading",
|
|
37
|
+
5: "Applying",
|
|
38
|
+
6: "Waiting (Applying)",
|
|
39
|
+
7: "Rolling back",
|
|
40
|
+
8: "Waiting for consent"
|
|
41
|
+
};
|
|
42
|
+
function getUpdateStateLabel(state2, progress) {
|
|
43
|
+
const label = UPDATE_STATE_LABELS[state2] || `Unknown (${state2})`;
|
|
44
|
+
if (state2 === 4 && progress !== void 0) {
|
|
45
|
+
return `${label} (${progress}%)`;
|
|
46
|
+
}
|
|
47
|
+
return label;
|
|
48
|
+
}
|
|
32
49
|
function getNodeDeviceTypes(node) {
|
|
33
50
|
const uniqueEndpoints = new Set(Object.keys(node.attributes).map((key) => Number(key.split("/")[0])));
|
|
34
51
|
const allDeviceTypes = /* @__PURE__ */ new Set();
|
|
@@ -76,14 +93,16 @@ let NodeDetails = class extends LitElement {
|
|
|
76
93
|
<md-outlined-button @click=${this._reinterview}
|
|
77
94
|
>Interview<ha-svg-icon slot="icon" .path=${mdiChatProcessing}></ha-svg-icon
|
|
78
95
|
></md-outlined-button>
|
|
79
|
-
${this._updateInitiated
|
|
80
|
-
>
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
96
|
+
${this._updateInitiated ? html` <md-outlined-button disabled
|
|
97
|
+
>Checking for updates<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
98
|
+
></md-outlined-button>` : (this.node.updateState || 0) > 1 ? html` <md-outlined-button disabled
|
|
99
|
+
>${getUpdateStateLabel(
|
|
100
|
+
this.node.updateState,
|
|
101
|
+
this.node.updateStateProgress
|
|
102
|
+
)}<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
103
|
+
></md-outlined-button>` : html`<md-outlined-button @click=${this._searchUpdate}
|
|
104
|
+
>Update<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
105
|
+
></md-outlined-button>`}
|
|
87
106
|
${bindings ? html`
|
|
88
107
|
<md-outlined-button @click=${this._binding}>
|
|
89
108
|
Binding
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/pages/components/node-details.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,mBAAmB,SAAS,iBAAiB,aAAa,iBAAiB;AAEpF,SAAS,eAAe;AAExB,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,UAAU,aAAa;AAE/C,SAAS,iBAAiB,wBAAwB;AAClD,SAAS,6BAA6B;AACtC,OAAO;AACP,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,mBAAmB,SAAS,iBAAiB,aAAa,iBAAiB;AAEpF,SAAS,eAAe;AAExB,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,UAAU,aAAa;AAE/C,SAAS,iBAAiB,wBAAwB;AAClD,SAAS,6BAA6B;AACtC,OAAO;AACP,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;AAG/B,MAAM,sBAA8C;AAAA,EAChD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACP;AAEA,SAAS,oBAAoBA,QAAe,UAA2B;AACnE,QAAM,QAAQ,oBAAoBA,MAAK,KAAK,YAAYA,MAAK;AAE7D,MAAIA,WAAU,KAAK,aAAa,QAAW;AACvC,WAAO,GAAG,KAAK,KAAK,QAAQ;AAAA,EAChC;AACA,SAAO;AACX;AAEA,SAAS,mBAAmB,MAAgC;AACxD,QAAM,kBAAkB,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,IAAI,SAAO,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClG,QAAM,iBAAkC,oBAAI,IAAI;AAChD,kBAAgB,QAAQ,gBAAc;AAClC,2BAAuB,MAAM,UAAU,EAAE,QAAQ,gBAAc;AAC3D,qBAAe,IAAI,UAAU;AAAA,IACjC,CAAC;AAAA,EACL,CAAC;AACD,SAAO,MAAM,KAAK,cAAc;AACpC;AAGO,IAAM,cAAN,cAA0B,WAAW;AAAA,EAArC;AAAA;AAMH,SAAQ,mBAA4B;AAAA;AAAA,EAMjB,SAAS;AACxB,QAAI,CAAC,KAAK,KAAM,QAAO;AAEvB,UAAM,WAAW,KAAK,KAAK,WAAW,KAAK,WAAW,OAAO;AAE7D,WAAO;AAAA;AAAA;AAAA;AAAA,kCAImB,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS;AAAA,0BAChD,KAAK,KAAK,YAAY,UAAU,yCAAyC;AAAA;AAAA;AAAA;AAAA,wFAIX,KAAK,KAAK,UAAU;AAAA,yFACnB,KAAK,KAAK,WAAW;AAAA;AAAA,kEAE5C,KAAK,KAAK,iBAAiB;AAAA;AAAA;AAAA,sEAGvB,KAAK,KAAK,cAAc;AAAA;AAAA,uFAEP,KAAK,KAAK,SAAS;AAAA,0FAChB,KAAK,KAAK,YAAY;AAAA,sBAC1F,KAAK,KAAK,YACN,KACA;AAAA,4EACkD,mBAAmB,KAAK,IAAI,EACrE,IAAI,gBAAc;AACf,aAAO,WAAW;AAAA,IACtB,CAAC,EACA,KAAK,KAAK,CAAC;AAAA,iCACb;AAAA;AAAA;AAAA,iDAGgB,KAAK,YAAY;AAAA,mEACC,iBAAiB;AAAA;AAAA,sBAE9D,KAAK,mBACD;AAAA,oFAC0D,SAAS;AAAA,qDAElE,KAAK,KAAK,eAAe,KAAK,IAC7B;AAAA,mCACO;AAAA,MACC,KAAK,KAAK;AAAA,MACV,KAAK,KAAK;AAAA,IACd,CAAC,kCAAkC,SAAS;AAAA,sDAEhD,kCAAkC,KAAK,aAAa;AAAA,wEACR,SAAS;AAAA,mDAC9B;AAAA,sBAC7B,WACI;AAAA,2DACiC,KAAK,QAAQ;AAAA;AAAA,mEAEL,OAAO;AAAA;AAAA,8BAGhD,OAAO;AAAA;AAAA,iDAEgB,KAAK,wBAAwB;AAAA,+DACf,eAAe;AAAA;AAAA,iDAE7B,KAAK,OAAO;AAAA,gEACG,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvE;AAAA,EAEA,MAAc,eAAe;AACzB,QACI,CAAE,MAAM,iBAAiB;AAAA,MACrB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACjB,CAAC,GACH;AACE;AAAA,IACJ;AACA,QAAI;AACA,YAAM,KAAK,OAAO,cAAc,KAAK,KAAM,OAAO;AAClD,sBAAgB;AAAA,QACZ,OAAO;AAAA,QACP,MAAM;AAAA,MACV,CAAC;AACD,eAAS,OAAO;AAAA,IACpB,SAAS,KAAU;AACf,sBAAgB;AAAA,QACZ,OAAO;AAAA,QACP,MAAM,IAAI;AAAA,MACd,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEA,MAAc,UAAU;AACpB,QACI,CAAE,MAAM,iBAAiB;AAAA,MACrB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACjB,CAAC,GACH;AACE;AAAA,IACJ;AACA,QAAI;AACA,YAAM,KAAK,OAAO,WAAW,KAAK,KAAM,OAAO;AAE/C,eAAS,QAAQ,GAAG;AAAA,IACxB,SAAS,KAAU;AACf,sBAAgB;AAAA,QACZ,OAAO;AAAA,QACP,MAAM,IAAI;AAAA,MACd,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEA,MAAc,WAAW;AACrB,QAAI;AACA,4BAAsB,KAAK,QAAQ,KAAK,MAAO,KAAK,QAAQ;AAAA,IAChE,SAAS,KAAU;AACf,cAAQ,IAAI,GAAG;AAAA,IACnB;AAAA,EACJ;AAAA,EAEA,MAAc,gBAAgB;AAC1B,UAAM,aAAa,MAAM,KAAK,OAAO,gBAAgB,KAAK,KAAM,OAAO;AACvE,QAAI,CAAC,YAAY;AACb,sBAAgB;AAAA,QACZ,OAAO;AAAA,QACP,MAAM;AAAA,MACV,CAAC;AACD;AAAA,IACJ;AACA,QACI,CAAE,MAAM,iBAAiB;AAAA,MACrB,OAAO;AAAA,MACP,MAAM,4CAA4C,WAAW,aAAa;AAAA,uDACnC,WAAW,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAG7D,WAAW,oBAAoB;AAAA,MAC3C,aAAa;AAAA,IACjB,CAAC,GACH;AACE;AAAA,IACJ;AACA,QAAI;AACA,WAAK,mBAAmB;AACxB,YAAM,KAAK,OAAO,WAAW,KAAK,KAAM,SAAS,WAAW,gBAAgB;AAAA,IAChF,SAAS,KAAU;AACf,sBAAgB;AAAA,QACZ,OAAO;AAAA,QACP,MAAM,IAAI;AAAA,MACd,CAAC;AAAA,IACL,UAAE;AACE,WAAK,mBAAmB;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,MAAc,2BAA2B;AACrC,QACI,CAAE,MAAM,iBAAiB;AAAA,MACrB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACjB,CAAC,GACH;AACE;AAAA,IACJ;AACA,QAAI;AACA,YAAM,YAAY,MAAM,KAAK,OAAO,wBAAwB,KAAK,KAAM,OAAO;AAC9E,sBAAgB;AAAA,QACZ,OAAO;AAAA,QACP,MAAM,eAAe,UAAU,iBAAiB;AAAA,MACpD,CAAC;AAAA,IACL,SAAS,KAAU;AACf,sBAAgB;AAAA,QACZ,OAAO;AAAA,QACP,MAAM,IAAI;AAAA,MACd,CAAC;AAAA,IACL;AAAA,EACJ;AAqBJ;AAzNa,YAsMO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnMN;AAAA,EAAlB,SAAS;AAAA,GAHD,YAGU;AAGX;AAAA,EADP,MAAM;AAAA,GALE,YAMD;AAIR;AAAA,EAFC,QAAQ,EAAE,SAAS,eAAe,CAAC;AAAA,EACnC,SAAS,EAAE,WAAW,MAAM,CAAC;AAAA,GATrB,YAUT;AAVS,cAAN;AAAA,EADN,cAAc,cAAc;AAAA,GAChB;",
|
|
5
|
+
"names": ["state"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-cluster-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-cluster-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAqB,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"matter-cluster-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-cluster-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAqB,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAM1C,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,qBAAqB,EAAE,iBAAiB,CAAC;KAC5C;CACJ;AA+BD,cACM,iBAAkB,SAAQ,UAAU;IAC/B,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAIlB,QAAQ,EAAG,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM;YAkED,mBAAmB;IAOjC,OAAO,CAAC,sBAAsB;IAkBrB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAgBxD,OAAO,CAAC,OAAO;IAIf,OAAgB,MAAM,0BAwCpB;CACL"}
|
|
@@ -27,6 +27,7 @@ import { showAlertDialog } from "../components/dialog-box/show-dialog-box.js";
|
|
|
27
27
|
import "../components/ha-svg-icon";
|
|
28
28
|
import "../pages/components/node-details";
|
|
29
29
|
import { bindingContext } from "./components/context.js";
|
|
30
|
+
import { formatHex } from "../util/format_hex.js";
|
|
30
31
|
import { getClusterCommandsTag } from "./cluster-commands/index.js";
|
|
31
32
|
const GLOBAL_ATTRIBUTE_MIN = 65520;
|
|
32
33
|
const GLOBAL_ATTRIBUTE_MAX = 65535;
|
|
@@ -79,7 +80,7 @@ let MatterClusterView = class extends LitElement {
|
|
|
79
80
|
Endpoint ${this.endpoint}</b
|
|
80
81
|
>
|
|
81
82
|
</div>
|
|
82
|
-
<div slot="supporting-text">ClusterId ${this.cluster} (
|
|
83
|
+
<div slot="supporting-text">ClusterId ${this.cluster} (${formatHex(this.cluster)})</div>
|
|
83
84
|
</md-list-item>
|
|
84
85
|
<md-divider></md-divider>
|
|
85
86
|
${clusterAttributes(this.node.attributes, this.endpoint, this.cluster).map(
|
|
@@ -89,7 +90,7 @@ let MatterClusterView = class extends LitElement {
|
|
|
89
90
|
${clusters[this.cluster]?.attributes[attribute.key]?.label || "Custom/Unknown Attribute"}
|
|
90
91
|
</div>
|
|
91
92
|
<div slot="supporting-text">
|
|
92
|
-
AttributeId: ${attribute.key} (
|
|
93
|
+
AttributeId: ${attribute.key} (${formatHex(attribute.key)}) - Value type:
|
|
93
94
|
${clusters[this.cluster]?.attributes[attribute.key]?.type || "unknown"}
|
|
94
95
|
</div>
|
|
95
96
|
<div slot="end">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/pages/matter-cluster-view.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AACxB,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAmC,yBAAyB;AAC5D,SAAS,YAAY,KAAK,YAAY;AACtC,SAAS,eAAe,gBAAgB;AACxC,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,OAAO;AACP,OAAO;AACP,SAAS,sBAAsB;AAE/B,SAAS,6BAA6B;AAStC,MAAM,uBAAuB;AAC7B,MAAM,uBAAuB;AAE7B,SAAS,kBAAkB,IAAqB;AAC5C,SAAO,MAAM,wBAAwB,MAAM;AAC/C;AAEA,SAAS,kBAAkB,YAAoC,UAAkB,SAAiB;AAE9F,SAAO,OAAO,KAAK,UAAU,EACxB,OAAO,SAAO,IAAI,WAAW,GAAG,QAAQ,IAAI,OAAO,GAAG,CAAC,EACvD,IAAI,SAAO;AACR,UAAM,eAAe,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;AAC7C,WAAO,EAAE,KAAK,cAAc,OAAO,WAAW,GAAG,EAAE;AAAA,EACvD,CAAC,EACA,KAAK,CAAC,GAAG,MAAM;AACZ,UAAM,YAAY,kBAAkB,EAAE,GAAG;AACzC,UAAM,YAAY,kBAAkB,EAAE,GAAG;AAGzC,QAAI,cAAc,WAAW;AACzB,aAAO,YAAY,IAAI;AAAA,IAC3B;AAEA,WAAO,EAAE,MAAM,EAAE;AAAA,EACrB,CAAC;AACT;AAGA,IAAM,oBAAN,cAAgC,WAAW;AAAA,EAa9B,SAAS;AACd,QAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,UAAa,KAAK,WAAW,QAAW;AACvE,aAAO;AAAA;AAAA,iCAEc,KAAK,OAAO;AAAA;AAAA,IAErC;AAEA,WAAO;AAAA;AAAA,yBAEU,QAAQ,KAAK,KAAK,OAAO,iBAAiB,KAAK,QAAQ,gBAAgB,KAAK,OAAO,EAAE;AAAA,8BAChF,SAAS,KAAK,KAAK,OAAO,IAAI,KAAK,QAAQ,EAAE;AAAA,0BACjD,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,sCAKC,KAAK,IAAI,YAAY,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA,cAIxD,KAAK,uBAAuB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iDAQM,SAAS,KAAK,OAAO,GAAG,SAAS,wBAAwB;AAAA,2CAC/D,KAAK,QAAQ;AAAA;AAAA;AAAA,gEAGQ,KAAK,OAAO,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-endpoint-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-endpoint-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,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,UAAU,EAA0B,MAAM,kCAAkC,CAAC;AACtF,OAAO,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"matter-endpoint-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-endpoint-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,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,UAAU,EAA0B,MAAM,kCAAkC,CAAC;AACtF,OAAO,2BAA2B,CAAC;AAGnC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,sBAAsB,EAAE,kBAAkB,CAAC;KAC9C;CACJ;AAcD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAOvF;AAED,cACM,kBAAmB,SAAQ,UAAU;IAChC,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM;IAuDf,OAAO,CAAC,OAAO;IAIf,OAAgB,MAAM,0BAoCpB;CACL"}
|
|
@@ -23,6 +23,7 @@ import { customElement, property } from "lit/decorators.js";
|
|
|
23
23
|
import { guard } from "lit/directives/guard.js";
|
|
24
24
|
import { clusters, device_types } from "../client/models/descriptions.js";
|
|
25
25
|
import "../components/ha-svg-icon";
|
|
26
|
+
import { formatHex } from "../util/format_hex.js";
|
|
26
27
|
function getUniqueClusters(node, endpoint) {
|
|
27
28
|
return Array.from(
|
|
28
29
|
new Set(
|
|
@@ -83,7 +84,7 @@ let MatterEndpointView = class extends LitElement {
|
|
|
83
84
|
href=${`#node/${this.node.node_id}/${this.endpoint}/${cluster}`}
|
|
84
85
|
>
|
|
85
86
|
<div slot="headline">${clusters[cluster]?.label || "Custom/Unknown Cluster"}</div>
|
|
86
|
-
<div slot="supporting-text">ClusterId ${cluster} (
|
|
87
|
+
<div slot="supporting-text">ClusterId ${cluster} (${formatHex(cluster)})</div>
|
|
87
88
|
<ha-svg-icon slot="end" .path=${mdiChevronRight}></ha-svg-icon>
|
|
88
89
|
</md-list-item>
|
|
89
90
|
`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/pages/matter-endpoint-view.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,uBAAuB;AAChC,SAAS,YAAY,KAAK,YAAY;AACtC,SAAS,eAAe,gBAAgB;AACxC,SAAS,aAAa;AACtB,SAAqB,UAAU,oBAAoB;AACnD,OAAO;
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,uBAAuB;AAChC,SAAS,YAAY,KAAK,YAAY;AACtC,SAAS,eAAe,gBAAgB;AACxC,SAAS,aAAa;AACtB,SAAqB,UAAU,oBAAoB;AACnD,OAAO;AACP,SAAS,iBAAiB;AAQ1B,SAAS,kBAAkB,MAAkB,UAAkB;AAC3D,SAAO,MAAM;AAAA,IACT,IAAI;AAAA,MACA,OAAO,KAAK,KAAK,UAAU,EACtB,OAAO,SAAO,IAAI,WAAW,GAAG,SAAS,SAAS,CAAC,GAAG,CAAC,EACvD,IAAI,SAAO,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAAA,IAC7C;AAAA,EACJ,EAAE,KAAK,CAAC,GAAG,MAAM;AACb,WAAO,IAAI;AAAA,EACf,CAAC;AACL;AAEO,SAAS,uBAAuB,MAAkB,UAAgC;AACrF,QAAM,YAAY,KAAK,WAAW,GAAG,QAAQ,OAAO;AACpD,MAAI,CAAC,UAAW,QAAO,CAAC;AACxB,SAAO,UAAU,IAAI,cAAY;AAC7B,UAAM,KAAK,SAAS,GAAG,KAAK,SAAS,YAAY;AACjD,WAAO,aAAa,EAAE,KAAK,EAAE,IAAI,MAAM,IAAI,OAAO,wBAAwB,EAAE,KAAK,UAAU,CAAC,EAAE;AAAA,EAClG,CAAC;AACL;AAGA,IAAM,qBAAN,cAAiC,WAAW;AAAA,EAS/B,SAAS;AACd,QAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,QAAW;AAC1C,aAAO;AAAA;AAAA,iCAEc,KAAK,OAAO;AAAA;AAAA,IAErC;AAEA,WAAO;AAAA;AAAA,yBAEU,QAAQ,KAAK,KAAK,OAAO,iBAAiB,KAAK,QAAQ,EAAE;AAAA,8BACpD,SAAS,KAAK,KAAK,OAAO,EAAE;AAAA,0BAChC,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,sCAKC,KAAK,IAAI,YAAY,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sDAQhB,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,8BAIrC,uBAAuB,KAAK,MAAM,KAAK,QAAQ,EAC5C,IAAI,gBAAc;AACf,aAAO,WAAW;AAAA,IACtB,CAAC,EACA,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,sBAGtB;AAAA,MAAM,CAAC,KAAK,MAAM,WAAW,MAAM;AAAA,MAAG,MACpC,kBAAkB,KAAK,MAAO,KAAK,QAAS,EAAE,IAAI,aAAW;AACzD,eAAO;AAAA;AAAA;AAAA,2CAGQ,SAAS,KAAK,KAAM,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,EAAE;AAAA;AAAA,2DAEzC,SAAS,OAAO,GAAG,SAAS,wBAAwB;AAAA,4EACnC,OAAO,KAAK,UAAU,OAAO,CAAC;AAAA,oEACtC,eAAe;AAAA;AAAA;AAAA,MAG3D,CAAC;AAAA,IACL,CAAC;AAAA;AAAA;AAAA;AAAA,EAIjB;AAAA,EAEQ,UAAU;AACd,YAAQ,KAAK;AAAA,EACjB;AAuCJ;AAzGM,mBAoEc,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhElB;AAAA,EADN,SAAS;AAAA,GAHR,mBAIK;AAGA;AAAA,EADN,SAAS;AAAA,GANR,mBAOK;AAPL,qBAAN;AAAA,EADC,cAAc,sBAAsB;AAAA,GAC/B;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Format a number as a hex string with 0x prefix.
|
|
8
|
+
* Ensures even number of digits with a minimum of 4 digits.
|
|
9
|
+
*
|
|
10
|
+
* Examples:
|
|
11
|
+
* 0 -> "0x0000"
|
|
12
|
+
* 255 -> "0x00FF"
|
|
13
|
+
* 65535 -> "0xFFFF"
|
|
14
|
+
* 65536 -> "0x010000"
|
|
15
|
+
*/
|
|
16
|
+
export declare function formatHex(value: number): string;
|
|
17
|
+
//# sourceMappingURL=format_hex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format_hex.d.ts","sourceRoot":"","sources":["../../../src/util/format_hex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAa/C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
function formatHex(value) {
|
|
7
|
+
let hex = value.toString(16).toUpperCase();
|
|
8
|
+
if (hex.length < 4) {
|
|
9
|
+
hex = hex.padStart(4, "0");
|
|
10
|
+
} else if (hex.length % 2 !== 0) {
|
|
11
|
+
hex = "0" + hex;
|
|
12
|
+
}
|
|
13
|
+
return `0x${hex}`;
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
formatHex
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=format_hex.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/format_hex.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBO,SAAS,UAAU,OAAuB;AAC7C,MAAI,MAAM,MAAM,SAAS,EAAE,EAAE,YAAY;AAGzC,MAAI,IAAI,SAAS,GAAG;AAChB,UAAM,IAAI,SAAS,GAAG,GAAG;AAAA,EAC7B,WAES,IAAI,SAAS,MAAM,GAAG;AAC3B,UAAM,MAAM;AAAA,EAChB;AAEA,SAAO,KAAK,GAAG;AACnB;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/web/js/{commission-node-dialog-30lGnJcb.js → commission-node-dialog--19-sX9D.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r, n, t, i, b } from './matter-dashboard-app-
|
|
2
|
-
import { p as preventDefault } from './prevent_default
|
|
1
|
+
import { r, n, t, i, b } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
|
+
import { p as preventDefault } from './prevent_default-Dw7ifAL-.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -44,18 +44,18 @@ let ComissionNodeDialog = class extends i {
|
|
|
44
44
|
if (!this.client.serverInfo.bluetooth_enabled) {
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
|
-
import('./commission-node-wifi-
|
|
47
|
+
import('./commission-node-wifi-VQGVOrr7.js');
|
|
48
48
|
this._mode = "wifi";
|
|
49
49
|
}
|
|
50
50
|
_commissionThread() {
|
|
51
51
|
if (!this.client.serverInfo.bluetooth_enabled) {
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
import('./commission-node-thread-
|
|
54
|
+
import('./commission-node-thread-CXquVvK5.js');
|
|
55
55
|
this._mode = "thread";
|
|
56
56
|
}
|
|
57
57
|
_commissionExisting() {
|
|
58
|
-
import('./commission-node-existing-
|
|
58
|
+
import('./commission-node-existing-DY6SnsHb.js');
|
|
59
59
|
this._mode = "existing";
|
|
60
60
|
}
|
|
61
61
|
_nodeCommissioned(ev) {
|
package/dist/web/js/{commission-node-existing-RgaziosB.js → commission-node-existing-DY6SnsHb.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
3
|
-
import './outlined-text-field-
|
|
1
|
+
import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-B13DcOc9.js';
|
|
3
|
+
import './outlined-text-field-CtlEkpbk.js';
|
|
4
4
|
import './main.js';
|
|
5
|
-
import './prevent_default
|
|
5
|
+
import './prevent_default-Dw7ifAL-.js';
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
package/dist/web/js/{commission-node-thread-CJn6OYQX.js → commission-node-thread-CXquVvK5.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
3
|
-
import './outlined-text-field-
|
|
1
|
+
import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-B13DcOc9.js';
|
|
3
|
+
import './outlined-text-field-CtlEkpbk.js';
|
|
4
4
|
import './main.js';
|
|
5
|
-
import './prevent_default
|
|
5
|
+
import './prevent_default-Dw7ifAL-.js';
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
3
|
-
import './outlined-text-field-
|
|
1
|
+
import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-B13DcOc9.js';
|
|
3
|
+
import './outlined-text-field-CtlEkpbk.js';
|
|
4
4
|
import './main.js';
|
|
5
|
-
import './prevent_default
|
|
5
|
+
import './prevent_default-Dw7ifAL-.js';
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n, t, i, b } from './matter-dashboard-app-
|
|
2
|
-
import { p as preventDefault } from './prevent_default
|
|
1
|
+
import { n, t, i, b } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
|
+
import { p as preventDefault } from './prevent_default-Dw7ifAL-.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, f as e, A, b, a as i$1, t } from './matter-dashboard-app-
|
|
1
|
+
import { m as mixinDelegatesAria, i, _ as __decorate, n, f as e, A, b, a as i$1, t } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @license
|
package/dist/web/js/main.js
CHANGED
|
@@ -509,7 +509,7 @@ class MatterClient {
|
|
|
509
509
|
* SPDX-License-Identifier: Apache-2.0
|
|
510
510
|
*/
|
|
511
511
|
async function main() {
|
|
512
|
-
import('./matter-dashboard-app-
|
|
512
|
+
import('./matter-dashboard-app-CU3-L2nl.js').then(function (n) { return n.s; });
|
|
513
513
|
let url = "";
|
|
514
514
|
const isProductionServer = location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
|
|
515
515
|
if (!isProductionServer) {
|
|
@@ -14957,7 +14957,7 @@ const clusters = {
|
|
|
14957
14957
|
* SPDX-License-Identifier: Apache-2.0
|
|
14958
14958
|
*/
|
|
14959
14959
|
const showDialogBox = async (type, dialogParams) => {
|
|
14960
|
-
await import('./dialog-box-
|
|
14960
|
+
await import('./dialog-box-qX-alVZJ.js');
|
|
14961
14961
|
return new Promise(resolve => {
|
|
14962
14962
|
const dialog = document.createElement("dialox-box");
|
|
14963
14963
|
dialog.params = dialogParams;
|
|
@@ -15567,7 +15567,7 @@ var mdiArrowLeft="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L
|
|
|
15567
15567
|
*/
|
|
15568
15568
|
const showNodeBindingDialog = async (client, node, endpoint) => {
|
|
15569
15569
|
var _document$querySelect;
|
|
15570
|
-
await import('./node-binding-dialog-
|
|
15570
|
+
await import('./node-binding-dialog-D4rr_G9I.js');
|
|
15571
15571
|
const dialog = document.createElement("node-binding-dialog");
|
|
15572
15572
|
dialog.client = client;
|
|
15573
15573
|
dialog.node = node;
|
|
@@ -15596,6 +15596,21 @@ const e = {},
|
|
|
15596
15596
|
}
|
|
15597
15597
|
});
|
|
15598
15598
|
|
|
15599
|
+
/**
|
|
15600
|
+
* @license
|
|
15601
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
15602
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
15603
|
+
*/
|
|
15604
|
+
function formatHex(value) {
|
|
15605
|
+
let hex = value.toString(16).toUpperCase();
|
|
15606
|
+
if (hex.length < 4) {
|
|
15607
|
+
hex = hex.padStart(4, "0");
|
|
15608
|
+
} else if (hex.length % 2 !== 0) {
|
|
15609
|
+
hex = "0" + hex;
|
|
15610
|
+
}
|
|
15611
|
+
return `0x${hex}`;
|
|
15612
|
+
}
|
|
15613
|
+
|
|
15599
15614
|
var __defProp$8 = Object.defineProperty;
|
|
15600
15615
|
var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
|
|
15601
15616
|
var __decorateClass$b = (decorators, target, key, kind) => {
|
|
@@ -15664,7 +15679,7 @@ let MatterEndpointView = class extends i$3 {
|
|
|
15664
15679
|
href=${`#node/${this.node.node_id}/${this.endpoint}/${cluster}`}
|
|
15665
15680
|
>
|
|
15666
15681
|
<div slot="headline">${((_clusters$cluster = clusters[cluster]) === null || _clusters$cluster === void 0 ? void 0 : _clusters$cluster.label) || "Custom/Unknown Cluster"}</div>
|
|
15667
|
-
<div slot="supporting-text">ClusterId ${cluster} (
|
|
15682
|
+
<div slot="supporting-text">ClusterId ${cluster} (${formatHex(cluster)})</div>
|
|
15668
15683
|
<ha-svg-icon slot="end" .path=${mdiChevronRight}></ha-svg-icon>
|
|
15669
15684
|
</md-list-item>
|
|
15670
15685
|
`;
|
|
@@ -15733,6 +15748,23 @@ var __decorateClass$a = (decorators, target, key, kind) => {
|
|
|
15733
15748
|
if (kind && result) __defProp$7(target, key, result);
|
|
15734
15749
|
return result;
|
|
15735
15750
|
};
|
|
15751
|
+
const UPDATE_STATE_LABELS = {
|
|
15752
|
+
1: "Idle",
|
|
15753
|
+
2: "Querying",
|
|
15754
|
+
3: "Waiting (Querying)",
|
|
15755
|
+
4: "Downloading",
|
|
15756
|
+
5: "Applying",
|
|
15757
|
+
6: "Waiting (Applying)",
|
|
15758
|
+
7: "Rolling back",
|
|
15759
|
+
8: "Waiting for consent"
|
|
15760
|
+
};
|
|
15761
|
+
function getUpdateStateLabel(state2, progress) {
|
|
15762
|
+
const label = UPDATE_STATE_LABELS[state2] || `Unknown (${state2})`;
|
|
15763
|
+
if (state2 === 4 && progress !== void 0) {
|
|
15764
|
+
return `${label} (${progress}%)`;
|
|
15765
|
+
}
|
|
15766
|
+
return label;
|
|
15767
|
+
}
|
|
15736
15768
|
function getNodeDeviceTypes(node) {
|
|
15737
15769
|
const uniqueEndpoints = new Set(Object.keys(node.attributes).map(key => Number(key.split("/")[0])));
|
|
15738
15770
|
const allDeviceTypes = /* @__PURE__ */new Set();
|
|
@@ -15780,14 +15812,13 @@ let NodeDetails = class extends i$3 {
|
|
|
15780
15812
|
<md-outlined-button @click=${this._reinterview}
|
|
15781
15813
|
>Interview<ha-svg-icon slot="icon" .path=${mdiChatProcessing}></ha-svg-icon
|
|
15782
15814
|
></md-outlined-button>
|
|
15783
|
-
${this._updateInitiated
|
|
15784
|
-
>
|
|
15785
|
-
|
|
15786
|
-
|
|
15787
|
-
|
|
15788
|
-
|
|
15789
|
-
|
|
15790
|
-
></md-outlined-button>`}
|
|
15815
|
+
${this._updateInitiated ? b` <md-outlined-button disabled
|
|
15816
|
+
>Checking for updates<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
15817
|
+
></md-outlined-button>` : (this.node.updateState || 0) > 1 ? b` <md-outlined-button disabled
|
|
15818
|
+
>${getUpdateStateLabel(this.node.updateState, this.node.updateStateProgress)}<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
15819
|
+
></md-outlined-button>` : b`<md-outlined-button @click=${this._searchUpdate}
|
|
15820
|
+
>Update<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
15821
|
+
></md-outlined-button>`}
|
|
15791
15822
|
${bindings ? b`
|
|
15792
15823
|
<md-outlined-button @click=${this._binding}>
|
|
15793
15824
|
Binding
|
|
@@ -16275,7 +16306,7 @@ let MatterClusterView = class extends i$3 {
|
|
|
16275
16306
|
Endpoint ${this.endpoint}</b
|
|
16276
16307
|
>
|
|
16277
16308
|
</div>
|
|
16278
|
-
<div slot="supporting-text">ClusterId ${this.cluster} (
|
|
16309
|
+
<div slot="supporting-text">ClusterId ${this.cluster} (${formatHex(this.cluster)})</div>
|
|
16279
16310
|
</md-list-item>
|
|
16280
16311
|
<md-divider></md-divider>
|
|
16281
16312
|
${clusterAttributes(this.node.attributes, this.endpoint, this.cluster).map((attribute, index) => {
|
|
@@ -16286,7 +16317,7 @@ let MatterClusterView = class extends i$3 {
|
|
|
16286
16317
|
${((_clusters$this$cluste2 = clusters[this.cluster]) === null || _clusters$this$cluste2 === void 0 || (_clusters$this$cluste2 = _clusters$this$cluste2.attributes[attribute.key]) === null || _clusters$this$cluste2 === void 0 ? void 0 : _clusters$this$cluste2.label) || "Custom/Unknown Attribute"}
|
|
16287
16318
|
</div>
|
|
16288
16319
|
<div slot="supporting-text">
|
|
16289
|
-
AttributeId: ${attribute.key} (
|
|
16320
|
+
AttributeId: ${attribute.key} (${formatHex(attribute.key)}) - Value type:
|
|
16290
16321
|
${((_clusters$this$cluste3 = clusters[this.cluster]) === null || _clusters$this$cluste3 === void 0 || (_clusters$this$cluste3 = _clusters$this$cluste3.attributes[attribute.key]) === null || _clusters$this$cluste3 === void 0 ? void 0 : _clusters$this$cluste3.type) || "unknown"}
|
|
16291
16322
|
</div>
|
|
16292
16323
|
<div slot="end">
|
|
@@ -16597,7 +16628,7 @@ DashboardFooter = __decorateClass$3([t$1("dashboard-footer")], DashboardFooter);
|
|
|
16597
16628
|
*/
|
|
16598
16629
|
const showCommissionNodeDialog = async client => {
|
|
16599
16630
|
var _document$querySelect;
|
|
16600
|
-
await import('./commission-node-dialog-
|
|
16631
|
+
await import('./commission-node-dialog--19-sX9D.js');
|
|
16601
16632
|
const dialog = document.createElement("commission-node-dialog");
|
|
16602
16633
|
dialog.client = client;
|
|
16603
16634
|
(_document$querySelect = document.querySelector("matter-dashboard-app")) === null || _document$querySelect === void 0 || _document$querySelect.renderRoot.appendChild(dialog);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as i, c, n, d as clientContext, e, i as i$1, A, b, t } from './matter-dashboard-app-
|
|
2
|
-
import { p as preventDefault } from './prevent_default
|
|
3
|
-
import './outlined-text-field-
|
|
1
|
+
import { a as i, c, n, d as clientContext, e, i as i$1, A, b, t } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
|
+
import { p as preventDefault } from './prevent_default-Dw7ifAL-.js';
|
|
3
|
+
import './outlined-text-field-CtlEkpbk.js';
|
|
4
4
|
import './main.js';
|
|
5
5
|
|
|
6
6
|
var _staticBlock$1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _ as __decorate, n as n$1, o as o$1, r as r$1, e, i as i$1, f as e$1, A, b, D, E as EASING, a as i$2, t, g as e$2, h as i$3, j as t$1, k as E, l as internals, m as mixinDelegatesAria, p as mixinElementInternals, u, q as i$4 } from './matter-dashboard-app-
|
|
2
|
-
import { r as redispatchEvent } from './prevent_default
|
|
1
|
+
import { _ as __decorate, n as n$1, o as o$1, r as r$1, e, i as i$1, f as e$1, A, b, D, E as EASING, a as i$2, t, g as e$2, h as i$3, j as t$1, k as E, l as internals, m as mixinDelegatesAria, p as mixinElementInternals, u, q as i$4 } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
|
+
import { r as redispatchEvent } from './prevent_default-Dw7ifAL-.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @license
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EASING, m as mixinDelegatesAria, i, _ as __decorate, n, e, r, b, f as e$1, A, a as i$1, t } from './matter-dashboard-app-
|
|
1
|
+
import { E as EASING, m as mixinDelegatesAria, i, _ as __decorate, n, e, r, b, f as e$1, A, a as i$1, t } from './matter-dashboard-app-CU3-L2nl.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @license
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter-server/dashboard",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
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.2.
|
|
41
|
-
"@matter-server/custom-clusters": "0.2.
|
|
40
|
+
"@matter-server/ws-client": "0.2.6",
|
|
41
|
+
"@matter-server/custom-clusters": "0.2.6",
|
|
42
42
|
"@mdi/js": "^7.4.47",
|
|
43
43
|
"lit": "^3.3.1",
|
|
44
44
|
"tslib": "^2.8.1"
|
|
@@ -24,6 +24,27 @@ import "../../components/ha-svg-icon";
|
|
|
24
24
|
import { getEndpointDeviceTypes } from "../matter-endpoint-view.js";
|
|
25
25
|
import { bindingContext } from "./context.js";
|
|
26
26
|
|
|
27
|
+
/** Map updateState values to user-friendly labels */
|
|
28
|
+
const UPDATE_STATE_LABELS: Record<number, string> = {
|
|
29
|
+
1: "Idle",
|
|
30
|
+
2: "Querying",
|
|
31
|
+
3: "Waiting (Querying)",
|
|
32
|
+
4: "Downloading",
|
|
33
|
+
5: "Applying",
|
|
34
|
+
6: "Waiting (Applying)",
|
|
35
|
+
7: "Rolling back",
|
|
36
|
+
8: "Waiting for consent",
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
function getUpdateStateLabel(state: number, progress?: number): string {
|
|
40
|
+
const label = UPDATE_STATE_LABELS[state] || `Unknown (${state})`;
|
|
41
|
+
// Show progress only for downloading state
|
|
42
|
+
if (state === 4 && progress !== undefined) {
|
|
43
|
+
return `${label} (${progress}%)`;
|
|
44
|
+
}
|
|
45
|
+
return label;
|
|
46
|
+
}
|
|
47
|
+
|
|
27
48
|
function getNodeDeviceTypes(node: MatterNode): DeviceType[] {
|
|
28
49
|
const uniqueEndpoints = new Set(Object.keys(node.attributes).map(key => Number(key.split("/")[0])));
|
|
29
50
|
const allDeviceTypes: Set<DeviceType> = new Set();
|
|
@@ -86,16 +107,20 @@ export class NodeDetails extends LitElement {
|
|
|
86
107
|
<md-outlined-button @click=${this._reinterview}
|
|
87
108
|
>Interview<ha-svg-icon slot="icon" .path=${mdiChatProcessing}></ha-svg-icon
|
|
88
109
|
></md-outlined-button>
|
|
89
|
-
${this._updateInitiated
|
|
110
|
+
${this._updateInitiated
|
|
90
111
|
? html` <md-outlined-button disabled
|
|
91
|
-
>
|
|
92
|
-
slot="icon"
|
|
93
|
-
.path=${mdiUpdate}
|
|
94
|
-
></ha-svg-icon
|
|
112
|
+
>Checking for updates<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
95
113
|
></md-outlined-button>`
|
|
96
|
-
:
|
|
97
|
-
|
|
98
|
-
|
|
114
|
+
: (this.node.updateState || 0) > 1
|
|
115
|
+
? html` <md-outlined-button disabled
|
|
116
|
+
>${getUpdateStateLabel(
|
|
117
|
+
this.node.updateState!,
|
|
118
|
+
this.node.updateStateProgress,
|
|
119
|
+
)}<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
120
|
+
></md-outlined-button>`
|
|
121
|
+
: html`<md-outlined-button @click=${this._searchUpdate}
|
|
122
|
+
>Update<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
|
|
123
|
+
></md-outlined-button>`}
|
|
99
124
|
${bindings
|
|
100
125
|
? html`
|
|
101
126
|
<md-outlined-button @click=${this._binding}>
|
|
@@ -19,6 +19,7 @@ import "../components/ha-svg-icon";
|
|
|
19
19
|
import "../pages/components/node-details";
|
|
20
20
|
import { bindingContext } from "./components/context.js";
|
|
21
21
|
// Cluster command components (auto-register on import)
|
|
22
|
+
import { formatHex } from "../util/format_hex.js";
|
|
22
23
|
import { getClusterCommandsTag } from "./cluster-commands/index.js";
|
|
23
24
|
|
|
24
25
|
declare global {
|
|
@@ -103,7 +104,7 @@ class MatterClusterView extends LitElement {
|
|
|
103
104
|
Endpoint ${this.endpoint}</b
|
|
104
105
|
>
|
|
105
106
|
</div>
|
|
106
|
-
<div slot="supporting-text">ClusterId ${this.cluster} (
|
|
107
|
+
<div slot="supporting-text">ClusterId ${this.cluster} (${formatHex(this.cluster)})</div>
|
|
107
108
|
</md-list-item>
|
|
108
109
|
<md-divider></md-divider>
|
|
109
110
|
${clusterAttributes(this.node.attributes, this.endpoint, this.cluster).map(
|
|
@@ -114,7 +115,7 @@ class MatterClusterView extends LitElement {
|
|
|
114
115
|
"Custom/Unknown Attribute"}
|
|
115
116
|
</div>
|
|
116
117
|
<div slot="supporting-text">
|
|
117
|
-
AttributeId: ${attribute.key} (
|
|
118
|
+
AttributeId: ${attribute.key} (${formatHex(attribute.key)}) - Value type:
|
|
118
119
|
${clusters[this.cluster!]?.attributes[attribute.key]?.type || "unknown"}
|
|
119
120
|
</div>
|
|
120
121
|
<div slot="end">
|
|
@@ -15,6 +15,7 @@ import { customElement, property } from "lit/decorators.js";
|
|
|
15
15
|
import { guard } from "lit/directives/guard.js";
|
|
16
16
|
import { DeviceType, clusters, device_types } from "../client/models/descriptions.js";
|
|
17
17
|
import "../components/ha-svg-icon";
|
|
18
|
+
import { formatHex } from "../util/format_hex.js";
|
|
18
19
|
|
|
19
20
|
declare global {
|
|
20
21
|
interface HTMLElementTagNameMap {
|
|
@@ -97,7 +98,7 @@ class MatterEndpointView extends LitElement {
|
|
|
97
98
|
href=${`#node/${this.node!.node_id}/${this.endpoint}/${cluster}`}
|
|
98
99
|
>
|
|
99
100
|
<div slot="headline">${clusters[cluster]?.label || "Custom/Unknown Cluster"}</div>
|
|
100
|
-
<div slot="supporting-text">ClusterId ${cluster} (
|
|
101
|
+
<div slot="supporting-text">ClusterId ${cluster} (${formatHex(cluster)})</div>
|
|
101
102
|
<ha-svg-icon slot="end" .path=${mdiChevronRight}></ha-svg-icon>
|
|
102
103
|
</md-list-item>
|
|
103
104
|
`;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Format a number as a hex string with 0x prefix.
|
|
9
|
+
* Ensures even number of digits with a minimum of 4 digits.
|
|
10
|
+
*
|
|
11
|
+
* Examples:
|
|
12
|
+
* 0 -> "0x0000"
|
|
13
|
+
* 255 -> "0x00FF"
|
|
14
|
+
* 65535 -> "0xFFFF"
|
|
15
|
+
* 65536 -> "0x010000"
|
|
16
|
+
*/
|
|
17
|
+
export function formatHex(value: number): string {
|
|
18
|
+
let hex = value.toString(16).toUpperCase();
|
|
19
|
+
|
|
20
|
+
// Ensure minimum 4 digits
|
|
21
|
+
if (hex.length < 4) {
|
|
22
|
+
hex = hex.padStart(4, "0");
|
|
23
|
+
}
|
|
24
|
+
// Ensure even number of digits
|
|
25
|
+
else if (hex.length % 2 !== 0) {
|
|
26
|
+
hex = "0" + hex;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return `0x${hex}`;
|
|
30
|
+
}
|