@matter-server/dashboard 0.2.0-alpha.0-00000000-000000000
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/LICENSE +201 -0
- package/README.md +11 -0
- package/dist/esm/client/client-context.d.ts +10 -0
- package/dist/esm/client/client-context.d.ts.map +1 -0
- package/dist/esm/client/client-context.js +11 -0
- package/dist/esm/client/client-context.js.map +6 -0
- package/dist/esm/client/models/descriptions.d.ts +20 -0
- package/dist/esm/client/models/descriptions.d.ts.map +1 -0
- package/dist/esm/client/models/descriptions.js +10929 -0
- package/dist/esm/client/models/descriptions.js.map +6 -0
- package/dist/esm/components/dialog-box/dialog-box.d.ts +25 -0
- package/dist/esm/components/dialog-box/dialog-box.d.ts.map +1 -0
- package/dist/esm/components/dialog-box/dialog-box.js +66 -0
- package/dist/esm/components/dialog-box/dialog-box.js.map +6 -0
- package/dist/esm/components/dialog-box/show-dialog-box.d.ts +18 -0
- package/dist/esm/components/dialog-box/show-dialog-box.d.ts.map +1 -0
- package/dist/esm/components/dialog-box/show-dialog-box.js +22 -0
- package/dist/esm/components/dialog-box/show-dialog-box.js.map +6 -0
- package/dist/esm/components/dialogs/acl/model.d.ts +33 -0
- package/dist/esm/components/dialogs/acl/model.d.ts.map +1 -0
- package/dist/esm/components/dialogs/acl/model.js +79 -0
- package/dist/esm/components/dialogs/acl/model.js.map +6 -0
- package/dist/esm/components/dialogs/binding/model.d.ts +20 -0
- package/dist/esm/components/dialogs/binding/model.d.ts.map +1 -0
- package/dist/esm/components/dialogs/binding/model.js +45 -0
- package/dist/esm/components/dialogs/binding/model.js.map +6 -0
- package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts +49 -0
- package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -0
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js +357 -0
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +6 -0
- package/dist/esm/components/dialogs/binding/show-node-binding-dialog.d.ts +8 -0
- package/dist/esm/components/dialogs/binding/show-node-binding-dialog.d.ts.map +1 -0
- package/dist/esm/components/dialogs/binding/show-node-binding-dialog.js +17 -0
- package/dist/esm/components/dialogs/binding/show-node-binding-dialog.js.map +6 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.d.ts +31 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.d.ts.map +1 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js +94 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js.map +6 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.d.ts +17 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.d.ts.map +1 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js +64 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js.map +6 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.d.ts +19 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.d.ts.map +1 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js +91 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js.map +6 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.d.ts +20 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.d.ts.map +1 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js +106 -0
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js.map +6 -0
- package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.d.ts +8 -0
- package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.d.ts.map +1 -0
- package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.js +15 -0
- package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.js.map +6 -0
- package/dist/esm/components/ha-svg-icon.d.ts +19 -0
- package/dist/esm/components/ha-svg-icon.d.ts.map +1 -0
- package/dist/esm/components/ha-svg-icon.js +77 -0
- package/dist/esm/components/ha-svg-icon.js.map +6 -0
- package/dist/esm/entrypoint/main.d.ts +7 -0
- package/dist/esm/entrypoint/main.d.ts.map +1 -0
- package/dist/esm/entrypoint/main.js +45 -0
- package/dist/esm/entrypoint/main.js.map +6 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/pages/components/context.d.ts +9 -0
- package/dist/esm/pages/components/context.d.ts.map +1 -0
- package/dist/esm/pages/components/context.js +11 -0
- package/dist/esm/pages/components/context.js.map +6 -0
- package/dist/esm/pages/components/footer.d.ts +11 -0
- package/dist/esm/pages/components/footer.d.ts.map +1 -0
- package/dist/esm/pages/components/footer.js +52 -0
- package/dist/esm/pages/components/footer.js.map +6 -0
- package/dist/esm/pages/components/header.d.ts +27 -0
- package/dist/esm/pages/components/header.d.ts.map +1 -0
- package/dist/esm/pages/components/header.js +90 -0
- package/dist/esm/pages/components/header.js.map +6 -0
- package/dist/esm/pages/components/node-details.d.ts +29 -0
- package/dist/esm/pages/components/node-details.d.ts.map +1 -0
- package/dist/esm/pages/components/node-details.js +241 -0
- package/dist/esm/pages/components/node-details.js.map +6 -0
- package/dist/esm/pages/components/server-details.d.ts +24 -0
- package/dist/esm/pages/components/server-details.d.ts.map +1 -0
- package/dist/esm/pages/components/server-details.js +130 -0
- package/dist/esm/pages/components/server-details.js.map +6 -0
- package/dist/esm/pages/matter-cluster-view.d.ts +30 -0
- package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -0
- package/dist/esm/pages/matter-cluster-view.js +154 -0
- package/dist/esm/pages/matter-cluster-view.js.map +6 -0
- package/dist/esm/pages/matter-dashboard-app.d.ts +27 -0
- package/dist/esm/pages/matter-dashboard-app.d.ts.map +1 -0
- package/dist/esm/pages/matter-dashboard-app.js +122 -0
- package/dist/esm/pages/matter-dashboard-app.js.map +6 -0
- package/dist/esm/pages/matter-endpoint-view.d.ts +29 -0
- package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -0
- package/dist/esm/pages/matter-endpoint-view.js +149 -0
- package/dist/esm/pages/matter-endpoint-view.js.map +6 -0
- package/dist/esm/pages/matter-node-view.d.ts +28 -0
- package/dist/esm/pages/matter-node-view.d.ts.map +1 -0
- package/dist/esm/pages/matter-node-view.js +122 -0
- package/dist/esm/pages/matter-node-view.js.map +6 -0
- package/dist/esm/pages/matter-server-view.d.ts +31 -0
- package/dist/esm/pages/matter-server-view.d.ts.map +1 -0
- package/dist/esm/pages/matter-server-view.js +113 -0
- package/dist/esm/pages/matter-server-view.js.map +6 -0
- package/dist/esm/util/clone_class.d.ts +7 -0
- package/dist/esm/util/clone_class.d.ts.map +1 -0
- package/dist/esm/util/clone_class.js +10 -0
- package/dist/esm/util/clone_class.js.map +6 -0
- package/dist/esm/util/fire_event.d.ts +34 -0
- package/dist/esm/util/fire_event.d.ts.map +1 -0
- package/dist/esm/util/fire_event.js +21 -0
- package/dist/esm/util/fire_event.js.map +6 -0
- package/dist/esm/util/prevent_default.d.ts +7 -0
- package/dist/esm/util/prevent_default.d.ts.map +1 -0
- package/dist/esm/util/prevent_default.js +10 -0
- package/dist/esm/util/prevent_default.js.map +6 -0
- package/dist/esm/util/routing.d.ts +10 -0
- package/dist/esm/util/routing.d.ts.map +1 -0
- package/dist/esm/util/routing.js +6 -0
- package/dist/esm/util/routing.js.map +6 -0
- package/dist/web/index.html +40 -0
- package/dist/web/js/commission-node-dialog-BJsfA4IV.js +78 -0
- package/dist/web/js/commission-node-dialog-DEZ3EqYO.js +78 -0
- package/dist/web/js/commission-node-existing-CzRtUgBm.js +50 -0
- package/dist/web/js/commission-node-existing-OK1ybPFI.js +50 -0
- package/dist/web/js/commission-node-thread-DLmclivF.js +75 -0
- package/dist/web/js/commission-node-thread-FcLFz84I.js +75 -0
- package/dist/web/js/commission-node-wifi-C8ho-UYb.js +88 -0
- package/dist/web/js/commission-node-wifi-C8iGfy7c.js +88 -0
- package/dist/web/js/dialog-box-BPz-oO3d.js +52 -0
- package/dist/web/js/dialog-box-DN32sjfR.js +52 -0
- package/dist/web/js/fire_event-BERTqZpV.js +169 -0
- package/dist/web/js/fire_event-BlsbXpOL.js +169 -0
- package/dist/web/js/main.js +547 -0
- package/dist/web/js/matter-dashboard-app-5UjO1Ik8.js +16068 -0
- package/dist/web/js/matter-dashboard-app-BazvuIIi.js +16068 -0
- package/dist/web/js/node-binding-dialog-2yitVn0R.js +443 -0
- package/dist/web/js/node-binding-dialog-Cw6QEmL3.js +443 -0
- package/dist/web/js/outlined-text-field-BMLYwwlc.js +2086 -0
- package/dist/web/js/outlined-text-field-Sqd4JHxo.js +2086 -0
- package/dist/web/js/prevent_default-BsT53c0u.js +814 -0
- package/dist/web/js/prevent_default-D4GG_QeD.js +814 -0
- package/package.json +54 -0
- package/src/client/client-context.ts +10 -0
- package/src/client/models/descriptions.ts +10948 -0
- package/src/components/dialog-box/dialog-box.ts +62 -0
- package/src/components/dialog-box/show-dialog-box.ts +32 -0
- package/src/components/dialogs/acl/model.ts +105 -0
- package/src/components/dialogs/binding/model.ts +58 -0
- package/src/components/dialogs/binding/node-binding-dialog.ts +419 -0
- package/src/components/dialogs/binding/show-node-binding-dialog.ts +16 -0
- package/src/components/dialogs/commission-node-dialog/commission-node-dialog.ts +102 -0
- package/src/components/dialogs/commission-node-dialog/commission-node-existing.ts +49 -0
- package/src/components/dialogs/commission-node-dialog/commission-node-thread.ts +76 -0
- package/src/components/dialogs/commission-node-dialog/commission-node-wifi.ts +90 -0
- package/src/components/dialogs/commission-node-dialog/show-commission-node-dialog.ts +14 -0
- package/src/components/ha-svg-icon.ts +66 -0
- package/src/entrypoint/main.ts +60 -0
- package/src/pages/components/context.ts +10 -0
- package/src/pages/components/footer.ts +39 -0
- package/src/pages/components/header.ts +87 -0
- package/src/pages/components/node-details.ts +252 -0
- package/src/pages/components/server-details.ts +124 -0
- package/src/pages/matter-cluster-view.ts +162 -0
- package/src/pages/matter-dashboard-app.ts +125 -0
- package/src/pages/matter-endpoint-view.ts +152 -0
- package/src/pages/matter-node-view.ts +126 -0
- package/src/pages/matter-server-view.ts +117 -0
- package/src/tsconfig.json +16 -0
- package/src/util/clone_class.ts +7 -0
- package/src/util/fire_event.ts +83 -0
- package/src/util/prevent_default.ts +7 -0
- package/src/util/routing.ts +10 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @license
|
|
13
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
14
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
*/
|
|
16
|
+
import "@material/web/button/filled-button";
|
|
17
|
+
import "@material/web/button/outlined-button";
|
|
18
|
+
import "@material/web/button/text-button";
|
|
19
|
+
import "@material/web/divider/divider";
|
|
20
|
+
import "@material/web/iconbutton/icon-button";
|
|
21
|
+
import "@material/web/list/list";
|
|
22
|
+
import "@material/web/list/list-item";
|
|
23
|
+
import { mdiFile, mdiPlus } from "@mdi/js";
|
|
24
|
+
import { LitElement, css, html, nothing } from "lit";
|
|
25
|
+
import { customElement } from "lit/decorators.js";
|
|
26
|
+
import { showAlertDialog, showPromptDialog } from "../../components/dialog-box/show-dialog-box.js";
|
|
27
|
+
import { showCommissionNodeDialog } from "../../components/dialogs/commission-node-dialog/show-commission-node-dialog.js";
|
|
28
|
+
import "../../components/ha-svg-icon";
|
|
29
|
+
let ServerDetails = class extends LitElement {
|
|
30
|
+
constructor() {
|
|
31
|
+
super(...arguments);
|
|
32
|
+
this._onFileInput = (event) => {
|
|
33
|
+
const fileElem = event.target;
|
|
34
|
+
if (fileElem.files.length > 0) {
|
|
35
|
+
const selectedFile = fileElem.files[0];
|
|
36
|
+
const reader = new FileReader();
|
|
37
|
+
reader.readAsText(selectedFile, "UTF-8");
|
|
38
|
+
reader.onload = async () => {
|
|
39
|
+
try {
|
|
40
|
+
await this.client.importTestNode(reader.result?.toString() || "");
|
|
41
|
+
} catch (err) {
|
|
42
|
+
showAlertDialog({
|
|
43
|
+
title: "Failed to import test node",
|
|
44
|
+
text: err.message
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
render() {
|
|
53
|
+
if (!this.client) return html``;
|
|
54
|
+
return html`
|
|
55
|
+
<md-list>
|
|
56
|
+
<md-list-item>
|
|
57
|
+
<div slot="headline">
|
|
58
|
+
<b>Open Home Foundation Matter Server ${this.client.isProduction ? "" : `(${this.client.serverBaseAddress})`}</b>
|
|
59
|
+
${this.client.connection.connected ? nothing : html`<span class="status">OFFLINE</span>`}
|
|
60
|
+
</div>
|
|
61
|
+
</md-list-item>
|
|
62
|
+
<md-list-item>
|
|
63
|
+
<div slot="supporting-text">
|
|
64
|
+
<div class="left">FabricId: </div>${this.client.serverInfo.fabric_id}
|
|
65
|
+
</div>
|
|
66
|
+
<div slot="supporting-text">
|
|
67
|
+
<div class="left">Compressed FabricId: </div>${this.client.serverInfo.compressed_fabric_id}
|
|
68
|
+
</div>
|
|
69
|
+
<div slot="supporting-text">
|
|
70
|
+
<div class="left">SDK Wheels Version: </div>${this.client.serverInfo.sdk_version}
|
|
71
|
+
</div>
|
|
72
|
+
<div slot="supporting-text">
|
|
73
|
+
<div class="left">Schema Version: </div>${this.client.serverInfo.schema_version}
|
|
74
|
+
</div>
|
|
75
|
+
<div slot="supporting-text">
|
|
76
|
+
<div class="left">Node count: </div>${Object.keys(this.client.nodes).length}
|
|
77
|
+
</div>
|
|
78
|
+
</md-list-item>
|
|
79
|
+
<md-list-item class="btn">
|
|
80
|
+
<span>
|
|
81
|
+
<md-outlined-button @click=${this._commissionNode}>Commission node<ha-svg-icon slot="icon" .path=${mdiPlus}></ha-svg-icon></md-outlined-button>
|
|
82
|
+
<md-outlined-button @click=${this._uploadDiagnosticsDumpFile}>Import node<ha-svg-icon slot="icon" .path=${mdiFile}></ha-svg-icon></md-outlined-button>
|
|
83
|
+
</md-list-item>
|
|
84
|
+
</md-list>
|
|
85
|
+
<!-- hidden file element for the upload diagnostics -->
|
|
86
|
+
<input
|
|
87
|
+
@change=${this._onFileInput}
|
|
88
|
+
type="file"
|
|
89
|
+
id="fileElem"
|
|
90
|
+
accept=".json"
|
|
91
|
+
style="display:none" />
|
|
92
|
+
</div>
|
|
93
|
+
`;
|
|
94
|
+
}
|
|
95
|
+
_commissionNode() {
|
|
96
|
+
console.log(this.client);
|
|
97
|
+
showCommissionNodeDialog(this.client);
|
|
98
|
+
}
|
|
99
|
+
async _uploadDiagnosticsDumpFile() {
|
|
100
|
+
if (!await showPromptDialog({
|
|
101
|
+
title: "Add test node",
|
|
102
|
+
text: "Do you want to add a test node from a diagnostics dump ?",
|
|
103
|
+
confirmText: "Select file"
|
|
104
|
+
})) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const fileElem = this.renderRoot.getElementById("fileElem");
|
|
108
|
+
fileElem.click();
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
ServerDetails.styles = css`
|
|
112
|
+
.btn {
|
|
113
|
+
--md-outlined-button-container-shape: 0px;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.left {
|
|
117
|
+
width: 30%;
|
|
118
|
+
display: inline-table;
|
|
119
|
+
}
|
|
120
|
+
.whitespace {
|
|
121
|
+
height: 15px;
|
|
122
|
+
}
|
|
123
|
+
`;
|
|
124
|
+
ServerDetails = __decorateClass([
|
|
125
|
+
customElement("server-details")
|
|
126
|
+
], ServerDetails);
|
|
127
|
+
export {
|
|
128
|
+
ServerDetails
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=server-details.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/pages/components/server-details.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,SAAS,eAAe;AACjC,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB,wBAAwB;AAClD,SAAS,gCAAgC;AACzC,OAAO;AAGA,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAAvC;AAAA;AAoEH,SAAQ,eAAe,CAAC,UAAiB;AACrC,YAAM,WAAW,MAAM;AACvB,UAAI,SAAS,MAAO,SAAS,GAAG;AAC5B,cAAM,eAAe,SAAS,MAAO,CAAC;AACtC,cAAM,SAAS,IAAI,WAAW;AAC9B,eAAO,WAAW,cAAc,OAAO;AACvC,eAAO,SAAS,YAAY;AACxB,cAAI;AACA,kBAAM,KAAK,OAAQ,eAAe,OAAO,QAAQ,SAAS,KAAK,EAAE;AAAA,UACrE,SAAS,KAAU;AACf,4BAAgB;AAAA,cACZ,OAAO;AAAA,cACP,MAAM,IAAI;AAAA,YACd,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,MACJ;AACA,YAAM,eAAe;AAAA,IACzB;AAAA;AAAA,EAnFmB,SAAS;AACxB,QAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,WAAO;AAAA;AAAA;AAAA;AAAA,wDAIyC,KAAK,OAAO,eAAe,KAAK,IAAI,KAAK,OAAO,iBAAiB,GAAG;AAAA,kBAC1G,KAAK,OAAO,WAAW,YAAY,UAAU,yCAAyC;AAAA;AAAA;AAAA;AAAA;AAAA,gDAKxD,KAAK,OAAO,WAAW,SAAS;AAAA;AAAA;AAAA,2DAGrB,KAAK,OAAO,WAAW,oBAAoB;AAAA;AAAA;AAAA,0DAG5C,KAAK,OAAO,WAAW,WAAW;AAAA;AAAA;AAAA,sDAGtC,KAAK,OAAO,WAAW,cAAc;AAAA;AAAA;AAAA,kDAGzC,OAAO,KAAK,KAAK,OAAO,KAAK,EAAE,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,uCAKhD,KAAK,eAAe,kDAAkD,OAAO;AAAA,uCAC7E,KAAK,0BAA0B,8CAA8C,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,kBAKzG,KAAK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO/B;AAAA,EAEQ,kBAAkB;AACtB,YAAQ,IAAI,KAAK,MAAM;AACvB,6BAAyB,KAAK,MAAO;AAAA,EACzC;AAAA,EAEA,MAAc,6BAA6B;AACvC,QACI,CAAE,MAAM,iBAAiB;AAAA,MACrB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACjB,CAAC,GACH;AACE;AAAA,IACJ;AAEA,UAAM,WAAW,KAAK,WAAW,eAAe,UAAU;AAC1D,aAAS,MAAM;AAAA,EACnB;AAmCJ;AArGa,cAwFO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAxFhB,gBAAN;AAAA,EADN,cAAc,gBAAgB;AAAA,GAClB;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import "@material/web/divider/divider";
|
|
7
|
+
import "@material/web/iconbutton/icon-button";
|
|
8
|
+
import "@material/web/list/list";
|
|
9
|
+
import "@material/web/list/list-item";
|
|
10
|
+
import { MatterClient, MatterNode } from "@matter-server/ws-client";
|
|
11
|
+
import { LitElement } from "lit";
|
|
12
|
+
import "../components/ha-svg-icon";
|
|
13
|
+
import "../pages/components/node-details";
|
|
14
|
+
declare global {
|
|
15
|
+
interface HTMLElementTagNameMap {
|
|
16
|
+
"matter-cluster-view": MatterClusterView;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
declare class MatterClusterView extends LitElement {
|
|
20
|
+
client: MatterClient;
|
|
21
|
+
node?: MatterNode;
|
|
22
|
+
endpoint: number;
|
|
23
|
+
cluster?: number;
|
|
24
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
25
|
+
private _showAttributeValue;
|
|
26
|
+
private _goBack;
|
|
27
|
+
static styles: import("lit").CSSResult;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=matter-cluster-view.d.ts.map
|
|
@@ -0,0 +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;AAI5C,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAG1C,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,qBAAqB,EAAE,iBAAiB,CAAC;KAC5C;CACJ;AAYD,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;YA+DD,mBAAmB;IAOjC,OAAO,CAAC,OAAO;IAIf,OAAgB,MAAM,0BAoCpB;CACL"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @license
|
|
13
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
14
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
*/
|
|
16
|
+
import { provide } from "@lit/context";
|
|
17
|
+
import "@material/web/divider/divider";
|
|
18
|
+
import "@material/web/iconbutton/icon-button";
|
|
19
|
+
import "@material/web/list/list";
|
|
20
|
+
import "@material/web/list/list-item";
|
|
21
|
+
import { toBigIntAwareJson } from "@matter-server/ws-client";
|
|
22
|
+
import { LitElement, css, html } from "lit";
|
|
23
|
+
import { customElement, property } from "lit/decorators.js";
|
|
24
|
+
import { clusters } from "../client/models/descriptions.js";
|
|
25
|
+
import { showAlertDialog } from "../components/dialog-box/show-dialog-box.js";
|
|
26
|
+
import "../components/ha-svg-icon";
|
|
27
|
+
import "../pages/components/node-details";
|
|
28
|
+
import { bindingContext } from "./components/context.js";
|
|
29
|
+
function clusterAttributes(attributes, endpoint, cluster) {
|
|
30
|
+
return Object.keys(attributes).filter((key) => key.startsWith(`${endpoint}/${cluster}`)).map((key) => {
|
|
31
|
+
const attributeKey = Number(key.split("/")[2]);
|
|
32
|
+
return { key: attributeKey, value: attributes[key] };
|
|
33
|
+
}, []);
|
|
34
|
+
}
|
|
35
|
+
let MatterClusterView = class extends LitElement {
|
|
36
|
+
render() {
|
|
37
|
+
if (!this.node || this.endpoint == void 0 || this.cluster == void 0) {
|
|
38
|
+
return html`
|
|
39
|
+
<p>Node, endpoint or cluster not found!</p>
|
|
40
|
+
<button @click=${this._goBack}>Back</button>
|
|
41
|
+
`;
|
|
42
|
+
}
|
|
43
|
+
return html`
|
|
44
|
+
<dashboard-header
|
|
45
|
+
.title=${`Node ${this.node.node_id} | Endpoint ${this.endpoint} | Cluster ${this.cluster}`}
|
|
46
|
+
.backButton=${`#node/${this.node.node_id}/${this.endpoint}`}
|
|
47
|
+
.client=${this.client}
|
|
48
|
+
></dashboard-header>
|
|
49
|
+
|
|
50
|
+
<!-- node details section -->
|
|
51
|
+
<div class="container">
|
|
52
|
+
<node-details .node=${this.node} .client=${this.client}></node-details>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<!-- Cluster attributes listing -->
|
|
56
|
+
<div class="container">
|
|
57
|
+
<md-list>
|
|
58
|
+
<md-list-item>
|
|
59
|
+
<div slot="headline">
|
|
60
|
+
<b
|
|
61
|
+
>Attributes of ${clusters[this.cluster]?.label || "Custom/Unknown Cluster"} Cluster on
|
|
62
|
+
Endpoint ${this.endpoint}</b
|
|
63
|
+
>
|
|
64
|
+
</div>
|
|
65
|
+
<div slot="supporting-text">ClusterId ${this.cluster} (0x00${this.cluster.toString(16)})</div>
|
|
66
|
+
</md-list-item>
|
|
67
|
+
${clusterAttributes(this.node.attributes, this.endpoint, this.cluster).map((attribute) => {
|
|
68
|
+
return html`
|
|
69
|
+
<md-list-item>
|
|
70
|
+
<div slot="headline">
|
|
71
|
+
${clusters[this.cluster]?.attributes[attribute.key]?.label || "Custom/Unknown Attribute"}
|
|
72
|
+
</div>
|
|
73
|
+
<div slot="supporting-text">
|
|
74
|
+
AttributeId: ${attribute.key} (0x00${attribute.key.toString(16)}) - Value type:
|
|
75
|
+
${clusters[this.cluster]?.attributes[attribute.key]?.type || "unknown"}
|
|
76
|
+
</div>
|
|
77
|
+
<div slot="end">
|
|
78
|
+
${toBigIntAwareJson(attribute.value).length > 20 ? html`<button
|
|
79
|
+
@click=${() => {
|
|
80
|
+
this._showAttributeValue(attribute.value);
|
|
81
|
+
}}
|
|
82
|
+
>
|
|
83
|
+
Show value
|
|
84
|
+
</button>` : toBigIntAwareJson(attribute.value)}
|
|
85
|
+
</div>
|
|
86
|
+
</md-list-item>
|
|
87
|
+
<md-divider />
|
|
88
|
+
`;
|
|
89
|
+
})}
|
|
90
|
+
</md-list>
|
|
91
|
+
</div>
|
|
92
|
+
`;
|
|
93
|
+
}
|
|
94
|
+
async _showAttributeValue(value) {
|
|
95
|
+
showAlertDialog({
|
|
96
|
+
title: "Attribute value",
|
|
97
|
+
text: toBigIntAwareJson(value)
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
_goBack() {
|
|
101
|
+
history.back();
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
MatterClusterView.styles = css`
|
|
105
|
+
:host {
|
|
106
|
+
display: block;
|
|
107
|
+
background-color: var(--md-sys-color-background);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.header {
|
|
111
|
+
background-color: var(--md-sys-color-primary);
|
|
112
|
+
color: var(--md-sys-color-on-primary);
|
|
113
|
+
--icon-primary-color: var(--md-sys-color-on-primary);
|
|
114
|
+
font-weight: 400;
|
|
115
|
+
display: flex;
|
|
116
|
+
align-items: center;
|
|
117
|
+
padding-right: 8px;
|
|
118
|
+
height: 48px;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
md-icon-button {
|
|
122
|
+
margin-right: 8px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.flex {
|
|
126
|
+
flex: 1;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.container {
|
|
130
|
+
padding: 16px;
|
|
131
|
+
max-width: 95%;
|
|
132
|
+
margin: 0 auto;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.status {
|
|
136
|
+
color: var(--danger-color);
|
|
137
|
+
font-weight: bold;
|
|
138
|
+
font-size: 0.8em;
|
|
139
|
+
}
|
|
140
|
+
`;
|
|
141
|
+
__decorateClass([
|
|
142
|
+
property()
|
|
143
|
+
], MatterClusterView.prototype, "node", 2);
|
|
144
|
+
__decorateClass([
|
|
145
|
+
provide({ context: bindingContext }),
|
|
146
|
+
property()
|
|
147
|
+
], MatterClusterView.prototype, "endpoint", 2);
|
|
148
|
+
__decorateClass([
|
|
149
|
+
property()
|
|
150
|
+
], MatterClusterView.prototype, "cluster", 2);
|
|
151
|
+
MatterClusterView = __decorateClass([
|
|
152
|
+
customElement("matter-cluster-view")
|
|
153
|
+
], MatterClusterView);
|
|
154
|
+
//# sourceMappingURL=matter-cluster-view.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/pages/matter-cluster-view.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { MatterClient } from "@matter-server/ws-client";
|
|
7
|
+
import { LitElement, PropertyValueMap } from "lit";
|
|
8
|
+
import "./matter-cluster-view";
|
|
9
|
+
import "./matter-endpoint-view";
|
|
10
|
+
import "./matter-node-view";
|
|
11
|
+
import "./matter-server-view";
|
|
12
|
+
declare global {
|
|
13
|
+
interface HTMLElementTagNameMap {
|
|
14
|
+
"matter-dashboard-app": MatterDashboardApp;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
declare class MatterDashboardApp extends LitElement {
|
|
18
|
+
private _route;
|
|
19
|
+
client: MatterClient;
|
|
20
|
+
private _state;
|
|
21
|
+
private _error;
|
|
22
|
+
private provider;
|
|
23
|
+
protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
|
|
24
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=matter-dashboard-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matter-dashboard-app.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-dashboard-app.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAe,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAQ,MAAM,KAAK,CAAC;AAKzD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,wBAAwB,CAAC;AAChC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,sBAAsB,EAAE,kBAAkB,CAAC;KAC9C;CACJ;AAED,cACM,kBAAmB,SAAQ,UAAU;IAC9B,OAAO,CAAC,MAAM,CAGrB;IAEK,MAAM,EAAG,YAAY,CAAC;IAG7B,OAAO,CAAC,MAAM,CAAuE;IAErF,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,QAAQ,CAAoF;cAEjF,YAAY,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IAkCnG,MAAM;CAkDlB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @license
|
|
13
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
14
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
*/
|
|
16
|
+
import { ContextProvider } from "@lit/context";
|
|
17
|
+
import { LitElement, html } from "lit";
|
|
18
|
+
import { customElement, state } from "lit/decorators.js";
|
|
19
|
+
import { clientContext } from "../client/client-context.js";
|
|
20
|
+
import { clone } from "../util/clone_class.js";
|
|
21
|
+
import "./matter-cluster-view";
|
|
22
|
+
import "./matter-endpoint-view";
|
|
23
|
+
import "./matter-node-view";
|
|
24
|
+
import "./matter-server-view";
|
|
25
|
+
let MatterDashboardApp = class extends LitElement {
|
|
26
|
+
constructor() {
|
|
27
|
+
super(...arguments);
|
|
28
|
+
this._route = {
|
|
29
|
+
prefix: "",
|
|
30
|
+
path: []
|
|
31
|
+
};
|
|
32
|
+
this._state = "connecting";
|
|
33
|
+
this.provider = new ContextProvider(this, { context: clientContext, initialValue: this.client });
|
|
34
|
+
}
|
|
35
|
+
firstUpdated(_changedProperties) {
|
|
36
|
+
super.firstUpdated(_changedProperties);
|
|
37
|
+
this.client.startListening().then(
|
|
38
|
+
() => {
|
|
39
|
+
this._state = "connected";
|
|
40
|
+
this.client.addEventListener("nodes_changed", () => {
|
|
41
|
+
this.requestUpdate();
|
|
42
|
+
this.provider.setValue(clone(this.client));
|
|
43
|
+
});
|
|
44
|
+
this.client.addEventListener("server_info_updated", () => {
|
|
45
|
+
this.provider.setValue(clone(this.client));
|
|
46
|
+
});
|
|
47
|
+
this.client.addEventListener("connection_lost", () => {
|
|
48
|
+
this._state = "disconnected";
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
(err) => {
|
|
52
|
+
this._state = "error";
|
|
53
|
+
this._error = err.message;
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
const updateRoute = () => {
|
|
57
|
+
const pathParts = location.hash.substring(1).split("/");
|
|
58
|
+
this._route = {
|
|
59
|
+
prefix: pathParts.length == 1 ? "" : pathParts[0],
|
|
60
|
+
path: pathParts.length == 1 ? pathParts : pathParts.slice(1)
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
window.addEventListener("hashchange", updateRoute);
|
|
64
|
+
updateRoute();
|
|
65
|
+
}
|
|
66
|
+
render() {
|
|
67
|
+
if (this._state === "connecting") {
|
|
68
|
+
return html`<p>Connecting...</p>`;
|
|
69
|
+
}
|
|
70
|
+
if (this._state === "disconnected") {
|
|
71
|
+
return html`<p>Connection lost</p>`;
|
|
72
|
+
}
|
|
73
|
+
if (this._state === "error") {
|
|
74
|
+
return html`
|
|
75
|
+
<p>Error: ${this._error}</p>
|
|
76
|
+
<button @click=${this.client.disconnect}>Clear stored URL</button>
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
if (this._route.prefix === "node" && this._route.path.length == 3) {
|
|
80
|
+
return html`
|
|
81
|
+
<matter-cluster-view
|
|
82
|
+
.client=${this.client}
|
|
83
|
+
.node=${this.client.nodes[this._route.path[0]]}
|
|
84
|
+
.endpoint=${parseInt(this._route.path[1], 10)}
|
|
85
|
+
.cluster=${parseInt(this._route.path[2], 10)}
|
|
86
|
+
></matter-cluster-view>
|
|
87
|
+
`;
|
|
88
|
+
}
|
|
89
|
+
if (this._route.prefix === "node" && this._route.path.length == 2) {
|
|
90
|
+
return html`
|
|
91
|
+
<matter-endpoint-view
|
|
92
|
+
.client=${this.client}
|
|
93
|
+
.node=${this.client.nodes[this._route.path[0]]}
|
|
94
|
+
.endpoint=${parseInt(this._route.path[1], 10)}
|
|
95
|
+
></matter-endpoint-view>
|
|
96
|
+
`;
|
|
97
|
+
}
|
|
98
|
+
if (this._route.prefix === "node") {
|
|
99
|
+
return html`
|
|
100
|
+
<matter-node-view
|
|
101
|
+
.client=${this.client}
|
|
102
|
+
.node=${this.client.nodes[this._route.path[0]]}
|
|
103
|
+
></matter-node-view>
|
|
104
|
+
`;
|
|
105
|
+
}
|
|
106
|
+
return html`<matter-server-view
|
|
107
|
+
.client=${this.client}
|
|
108
|
+
.nodes=${this.client.nodes}
|
|
109
|
+
.route=${this._route}
|
|
110
|
+
></matter-server-view>`;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
__decorateClass([
|
|
114
|
+
state()
|
|
115
|
+
], MatterDashboardApp.prototype, "_route", 2);
|
|
116
|
+
__decorateClass([
|
|
117
|
+
state()
|
|
118
|
+
], MatterDashboardApp.prototype, "_state", 2);
|
|
119
|
+
MatterDashboardApp = __decorateClass([
|
|
120
|
+
customElement("matter-dashboard-app")
|
|
121
|
+
], MatterDashboardApp);
|
|
122
|
+
//# sourceMappingURL=matter-dashboard-app.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/pages/matter-dashboard-app.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import "@material/web/divider/divider";
|
|
7
|
+
import "@material/web/iconbutton/icon-button";
|
|
8
|
+
import "@material/web/list/list";
|
|
9
|
+
import "@material/web/list/list-item";
|
|
10
|
+
import { MatterClient, MatterNode } from "@matter-server/ws-client";
|
|
11
|
+
import { LitElement } from "lit";
|
|
12
|
+
import { DeviceType } from "../client/models/descriptions.js";
|
|
13
|
+
import "../components/ha-svg-icon";
|
|
14
|
+
declare global {
|
|
15
|
+
interface HTMLElementTagNameMap {
|
|
16
|
+
"matter-endpoint-view": MatterEndpointView;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export declare function getEndpointDeviceTypes(node: MatterNode, endpoint: number): DeviceType[];
|
|
20
|
+
declare class MatterEndpointView extends LitElement {
|
|
21
|
+
client: MatterClient;
|
|
22
|
+
node?: MatterNode;
|
|
23
|
+
endpoint?: number;
|
|
24
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
25
|
+
private _goBack;
|
|
26
|
+
static styles: import("lit").CSSResult;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=matter-endpoint-view.d.ts.map
|
|
@@ -0,0 +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;AAEnC,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"}
|