@matter-server/dashboard 0.2.2 → 0.2.4-alpha.0-20260116-d0b21f3
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/cluster-commands/base-cluster-commands.d.ts +25 -0
- package/dist/esm/pages/cluster-commands/base-cluster-commands.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/base-cluster-commands.js +129 -0
- package/dist/esm/pages/cluster-commands/base-cluster-commands.js.map +6 -0
- package/dist/esm/pages/cluster-commands/clusters/level-control-commands.d.ts +29 -0
- package/dist/esm/pages/cluster-commands/clusters/level-control-commands.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/clusters/level-control-commands.js +125 -0
- package/dist/esm/pages/cluster-commands/clusters/level-control-commands.js.map +6 -0
- package/dist/esm/pages/cluster-commands/clusters/on-off-commands.d.ts +25 -0
- package/dist/esm/pages/cluster-commands/clusters/on-off-commands.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/clusters/on-off-commands.js +52 -0
- package/dist/esm/pages/cluster-commands/clusters/on-off-commands.js.map +6 -0
- package/dist/esm/pages/cluster-commands/index.d.ts +14 -0
- package/dist/esm/pages/cluster-commands/index.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/index.js +16 -0
- package/dist/esm/pages/cluster-commands/index.js.map +6 -0
- package/dist/esm/pages/cluster-commands/registry.d.ts +24 -0
- package/dist/esm/pages/cluster-commands/registry.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/registry.js +21 -0
- package/dist/esm/pages/cluster-commands/registry.js.map +6 -0
- package/dist/esm/pages/matter-cluster-view.d.ts +2 -0
- package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-cluster-view.js +32 -1
- package/dist/esm/pages/matter-cluster-view.js.map +1 -1
- package/dist/web/js/{commission-node-dialog-BJsfA4IV.js → commission-node-dialog-B6EYNztD.js} +5 -5
- package/dist/web/js/{commission-node-existing-CzRtUgBm.js → commission-node-existing-CKKStTjd.js} +4 -4
- package/dist/web/js/{commission-node-thread-FcLFz84I.js → commission-node-thread-D_Hgo4-b.js} +4 -4
- package/dist/web/js/{commission-node-wifi-C8iGfy7c.js → commission-node-wifi-DQrWnfn9.js} +4 -4
- package/dist/web/js/{dialog-box-DN32sjfR.js → dialog-box-9i64nfcC.js} +2 -2
- package/dist/web/js/{fire_event-BlsbXpOL.js → fire_event-CGgNDbLy.js} +1 -1
- package/dist/web/js/main.js +1 -1
- package/dist/web/js/{matter-dashboard-app-5UjO1Ik8.js → matter-dashboard-app-DD29PeTW.js} +415 -80
- package/dist/web/js/{node-binding-dialog-2yitVn0R.js → node-binding-dialog-DnO2DL_u.js} +3 -3
- package/dist/web/js/{outlined-text-field-BMLYwwlc.js → outlined-text-field-tv3ZtxuK.js} +2 -2
- package/dist/web/js/{prevent_default-BsT53c0u.js → prevent_default-C72e35wq.js} +1 -1
- package/package.json +3 -3
- package/src/pages/cluster-commands/base-cluster-commands.ts +122 -0
- package/src/pages/cluster-commands/clusters/level-control-commands.ts +130 -0
- package/src/pages/cluster-commands/clusters/on-off-commands.ts +57 -0
- package/src/pages/cluster-commands/index.ts +20 -0
- package/src/pages/cluster-commands/registry.ts +40 -0
- package/src/pages/matter-cluster-view.ts +41 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { MatterClient, MatterNode } from "@matter-server/ws-client";
|
|
7
|
+
import { LitElement } from "lit";
|
|
8
|
+
/**
|
|
9
|
+
* Base class for cluster-specific command panels.
|
|
10
|
+
* Provides shared properties, styling, and helper methods for sending commands.
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class BaseClusterCommands extends LitElement {
|
|
13
|
+
client: MatterClient;
|
|
14
|
+
node: MatterNode;
|
|
15
|
+
endpoint: number;
|
|
16
|
+
cluster: number;
|
|
17
|
+
/**
|
|
18
|
+
* Send a command to the device.
|
|
19
|
+
* @param command - The command name (PascalCase, e.g., "On", "Off", "MoveToLevel")
|
|
20
|
+
* @param payload - Optional command payload
|
|
21
|
+
*/
|
|
22
|
+
protected sendCommand(command: string, payload?: Record<string, unknown>): Promise<void>;
|
|
23
|
+
static styles: import("lit").CSSResult;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=base-cluster-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-cluster-commands.d.ts","sourceRoot":"","sources":["../../../../src/pages/cluster-commands/base-cluster-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAO,MAAM,KAAK,CAAC;AAGtC;;;GAGG;AACH,8BAAsB,mBAAoB,SAAQ,UAAU;IAEjD,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,EAAG,UAAU,CAAC;IAGlB,QAAQ,EAAG,MAAM,CAAC;IAGlB,OAAO,EAAG,MAAM,CAAC;IAExB;;;;OAIG;cACa,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9F,OAAgB,MAAM,0BA+EpB;CACL"}
|
|
@@ -0,0 +1,129 @@
|
|
|
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 { LitElement, css } from "lit";
|
|
17
|
+
import { property } from "lit/decorators.js";
|
|
18
|
+
class BaseClusterCommands extends LitElement {
|
|
19
|
+
/**
|
|
20
|
+
* Send a command to the device.
|
|
21
|
+
* @param command - The command name (PascalCase, e.g., "On", "Off", "MoveToLevel")
|
|
22
|
+
* @param payload - Optional command payload
|
|
23
|
+
*/
|
|
24
|
+
async sendCommand(command, payload) {
|
|
25
|
+
try {
|
|
26
|
+
await this.client.deviceCommand(this.node.node_id, this.endpoint, this.cluster, command, payload ?? {});
|
|
27
|
+
} catch (error) {
|
|
28
|
+
console.error(`Failed to send command ${command}:`, error);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
static {
|
|
32
|
+
this.styles = css`
|
|
33
|
+
:host {
|
|
34
|
+
display: block;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
details.command-panel {
|
|
38
|
+
background-color: var(--md-sys-color-surface-container);
|
|
39
|
+
border-radius: 12px;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
details.command-panel summary {
|
|
44
|
+
padding: 16px;
|
|
45
|
+
font-weight: 500;
|
|
46
|
+
color: var(--md-sys-color-on-surface);
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
user-select: none;
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
gap: 8px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
details.command-panel summary:hover {
|
|
55
|
+
background-color: var(--md-sys-color-surface-container-high);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
details.command-panel summary::before {
|
|
59
|
+
content: "▶";
|
|
60
|
+
font-size: 12px;
|
|
61
|
+
transition: transform 0.2s ease;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
details.command-panel[open] summary::before {
|
|
65
|
+
transform: rotate(90deg);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
details.command-panel summary::-webkit-details-marker {
|
|
69
|
+
display: none;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.command-content {
|
|
73
|
+
padding: 0 16px 16px 16px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.command-row {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: 12px;
|
|
80
|
+
flex-wrap: wrap;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.command-row label {
|
|
84
|
+
font-size: 14px;
|
|
85
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
gap: 4px;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.command-row input[type="number"] {
|
|
92
|
+
width: 70px;
|
|
93
|
+
padding: 8px;
|
|
94
|
+
border: 1px solid var(--md-sys-color-outline);
|
|
95
|
+
border-radius: 4px;
|
|
96
|
+
background: var(--md-sys-color-surface);
|
|
97
|
+
color: var(--md-sys-color-on-surface);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.command-row input[type="checkbox"] {
|
|
101
|
+
width: 16px;
|
|
102
|
+
height: 16px;
|
|
103
|
+
margin: 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
md-filled-button,
|
|
107
|
+
md-outlined-button {
|
|
108
|
+
--md-filled-button-container-height: 36px;
|
|
109
|
+
--md-outlined-button-container-height: 36px;
|
|
110
|
+
}
|
|
111
|
+
`;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
__decorateClass([
|
|
115
|
+
property({ attribute: false })
|
|
116
|
+
], BaseClusterCommands.prototype, "client", 2);
|
|
117
|
+
__decorateClass([
|
|
118
|
+
property({ attribute: false })
|
|
119
|
+
], BaseClusterCommands.prototype, "node", 2);
|
|
120
|
+
__decorateClass([
|
|
121
|
+
property({ type: Number })
|
|
122
|
+
], BaseClusterCommands.prototype, "endpoint", 2);
|
|
123
|
+
__decorateClass([
|
|
124
|
+
property({ type: Number })
|
|
125
|
+
], BaseClusterCommands.prototype, "cluster", 2);
|
|
126
|
+
export {
|
|
127
|
+
BaseClusterCommands
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=base-cluster-commands.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/pages/cluster-commands/base-cluster-commands.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,YAAY,WAAW;AAChC,SAAS,gBAAgB;AAMlB,MAAe,4BAA4B,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBzD,MAAgB,YAAY,SAAiB,SAAkD;AAC3F,QAAI;AACA,YAAM,KAAK,OAAO,cAAc,KAAK,KAAK,SAAS,KAAK,UAAU,KAAK,SAAS,SAAS,WAAW,CAAC,CAAC;AAAA,IAC1G,SAAS,OAAO;AACZ,cAAQ,MAAM,0BAA0B,OAAO,KAAK,KAAK;AAAA,IAE7D;AAAA,EACJ;AAAA,EAEA;AAAA,SAAgB,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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgF7B;AAzGW;AAAA,EADN,SAAS,EAAE,WAAW,MAAM,CAAC;AAAA,GADZ,oBAEX;AAGA;AAAA,EADN,SAAS,EAAE,WAAW,MAAM,CAAC;AAAA,GAJZ,oBAKX;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAPR,oBAQX;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAVR,oBAWX;",
|
|
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/button/filled-button";
|
|
7
|
+
import { BaseClusterCommands } from "../base-cluster-commands.js";
|
|
8
|
+
/**
|
|
9
|
+
* Command panel for LevelControl cluster (ID: 8).
|
|
10
|
+
* Provides MoveToLevel command with configurable parameters.
|
|
11
|
+
*/
|
|
12
|
+
declare class LevelControlClusterCommands extends BaseClusterCommands {
|
|
13
|
+
private _targetLevel;
|
|
14
|
+
private _transitionTime;
|
|
15
|
+
private _executeIfOff;
|
|
16
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
17
|
+
private _handleTargetLevelChange;
|
|
18
|
+
private _handleTransitionTimeChange;
|
|
19
|
+
private _handleExecuteIfOffChange;
|
|
20
|
+
private _handleMoveToLevel;
|
|
21
|
+
private _handleMoveToLevelWithOnOff;
|
|
22
|
+
}
|
|
23
|
+
declare global {
|
|
24
|
+
interface HTMLElementTagNameMap {
|
|
25
|
+
"level-control-cluster-commands": LevelControlClusterCommands;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=level-control-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level-control-commands.d.ts","sourceRoot":"","sources":["../../../../../src/pages/cluster-commands/clusters/level-control-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,oCAAoC,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKlE;;;GAGG;AACH,cACM,2BAA4B,SAAQ,mBAAmB;IAEzD,OAAO,CAAC,YAAY,CAAO;IAG3B,OAAO,CAAC,eAAe,CAAK;IAG5B,OAAO,CAAC,aAAa,CAAS;IAErB,MAAM;IA2Cf,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,yBAAyB;YAKnB,kBAAkB;YAalB,2BAA2B;CAY5C;AAKD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,gCAAgC,EAAE,2BAA2B,CAAC;KACjE;CACJ"}
|
|
@@ -0,0 +1,125 @@
|
|
|
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 { html } from "lit";
|
|
18
|
+
import { customElement, state } from "lit/decorators.js";
|
|
19
|
+
import { BaseClusterCommands } from "../base-cluster-commands.js";
|
|
20
|
+
import { registerClusterCommands } from "../registry.js";
|
|
21
|
+
const CLUSTER_ID = 8;
|
|
22
|
+
let LevelControlClusterCommands = class extends BaseClusterCommands {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this._targetLevel = 128;
|
|
26
|
+
this._transitionTime = 0;
|
|
27
|
+
this._executeIfOff = false;
|
|
28
|
+
}
|
|
29
|
+
render() {
|
|
30
|
+
return html`
|
|
31
|
+
<details class="command-panel">
|
|
32
|
+
<summary>Level Control Commands</summary>
|
|
33
|
+
<div class="command-content">
|
|
34
|
+
<div class="command-row">
|
|
35
|
+
<label for="targetLevel">Level:</label>
|
|
36
|
+
<input
|
|
37
|
+
id="targetLevel"
|
|
38
|
+
type="number"
|
|
39
|
+
min="1"
|
|
40
|
+
max="254"
|
|
41
|
+
.value=${String(this._targetLevel)}
|
|
42
|
+
@input=${this._handleTargetLevelChange}
|
|
43
|
+
/>
|
|
44
|
+
<label for="transitionTime">Transition (0.1s):</label>
|
|
45
|
+
<input
|
|
46
|
+
id="transitionTime"
|
|
47
|
+
type="number"
|
|
48
|
+
min="0"
|
|
49
|
+
max="65535"
|
|
50
|
+
.value=${String(this._transitionTime)}
|
|
51
|
+
@input=${this._handleTransitionTimeChange}
|
|
52
|
+
/>
|
|
53
|
+
<label for="executeIfOff">
|
|
54
|
+
<input
|
|
55
|
+
id="executeIfOff"
|
|
56
|
+
type="checkbox"
|
|
57
|
+
.checked=${this._executeIfOff}
|
|
58
|
+
@change=${this._handleExecuteIfOffChange}
|
|
59
|
+
/>
|
|
60
|
+
Execute if Off
|
|
61
|
+
</label>
|
|
62
|
+
<md-outlined-button @click=${this._handleMoveToLevel}>MoveToLevel</md-outlined-button>
|
|
63
|
+
<md-outlined-button @click=${this._handleMoveToLevelWithOnOff}
|
|
64
|
+
>MoveToLevelWithOnOff</md-outlined-button
|
|
65
|
+
>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</details>
|
|
69
|
+
`;
|
|
70
|
+
}
|
|
71
|
+
_handleTargetLevelChange(e) {
|
|
72
|
+
const input = e.target;
|
|
73
|
+
let value = parseInt(input.value, 10);
|
|
74
|
+
if (isNaN(value)) value = 1;
|
|
75
|
+
if (value < 1) value = 1;
|
|
76
|
+
if (value > 254) value = 254;
|
|
77
|
+
this._targetLevel = value;
|
|
78
|
+
}
|
|
79
|
+
_handleTransitionTimeChange(e) {
|
|
80
|
+
const input = e.target;
|
|
81
|
+
let value = parseInt(input.value, 10);
|
|
82
|
+
if (isNaN(value)) value = 0;
|
|
83
|
+
if (value < 0) value = 0;
|
|
84
|
+
if (value > 65535) value = 65535;
|
|
85
|
+
this._transitionTime = value;
|
|
86
|
+
}
|
|
87
|
+
_handleExecuteIfOffChange(e) {
|
|
88
|
+
const input = e.target;
|
|
89
|
+
this._executeIfOff = input.checked;
|
|
90
|
+
}
|
|
91
|
+
async _handleMoveToLevel() {
|
|
92
|
+
const optionsMask = this._executeIfOff ? { executeIfOff: true } : {};
|
|
93
|
+
const optionsOverride = this._executeIfOff ? { executeIfOff: true } : {};
|
|
94
|
+
await this.sendCommand("MoveToLevel", {
|
|
95
|
+
level: this._targetLevel,
|
|
96
|
+
transitionTime: this._transitionTime,
|
|
97
|
+
optionsMask,
|
|
98
|
+
optionsOverride
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async _handleMoveToLevelWithOnOff() {
|
|
102
|
+
const optionsMask = this._executeIfOff ? { executeIfOff: true } : {};
|
|
103
|
+
const optionsOverride = this._executeIfOff ? { executeIfOff: true } : {};
|
|
104
|
+
await this.sendCommand("MoveToLevelWithOnOff", {
|
|
105
|
+
level: this._targetLevel,
|
|
106
|
+
transitionTime: this._transitionTime,
|
|
107
|
+
optionsMask,
|
|
108
|
+
optionsOverride
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
__decorateClass([
|
|
113
|
+
state()
|
|
114
|
+
], LevelControlClusterCommands.prototype, "_targetLevel", 2);
|
|
115
|
+
__decorateClass([
|
|
116
|
+
state()
|
|
117
|
+
], LevelControlClusterCommands.prototype, "_transitionTime", 2);
|
|
118
|
+
__decorateClass([
|
|
119
|
+
state()
|
|
120
|
+
], LevelControlClusterCommands.prototype, "_executeIfOff", 2);
|
|
121
|
+
LevelControlClusterCommands = __decorateClass([
|
|
122
|
+
customElement("level-control-cluster-commands")
|
|
123
|
+
], LevelControlClusterCommands);
|
|
124
|
+
registerClusterCommands(CLUSTER_ID, "level-control-cluster-commands");
|
|
125
|
+
//# sourceMappingURL=level-control-commands.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/pages/cluster-commands/clusters/level-control-commands.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,SAAS,YAAY;AACrB,SAAS,eAAe,aAAa;AACrC,SAAS,2BAA2B;AACpC,SAAS,+BAA+B;AAExC,MAAM,aAAa;AAOnB,IAAM,8BAAN,cAA0C,oBAAoB;AAAA,EAA9D;AAAA;AAEI,SAAQ,eAAe;AAGvB,SAAQ,kBAAkB;AAG1B,SAAQ,gBAAgB;AAAA;AAAA,EAEf,SAAS;AACd,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qCAWsB,OAAO,KAAK,YAAY,CAAC;AAAA,qCACzB,KAAK,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qCAQ7B,OAAO,KAAK,eAAe,CAAC;AAAA,qCAC5B,KAAK,2BAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2CAM1B,KAAK,aAAa;AAAA,0CACnB,KAAK,yBAAyB;AAAA;AAAA;AAAA;AAAA,qDAInB,KAAK,kBAAkB;AAAA,qDACvB,KAAK,2BAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjF;AAAA,EAEQ,yBAAyB,GAAU;AACvC,UAAM,QAAQ,EAAE;AAChB,QAAI,QAAQ,SAAS,MAAM,OAAO,EAAE;AACpC,QAAI,MAAM,KAAK,EAAG,SAAQ;AAC1B,QAAI,QAAQ,EAAG,SAAQ;AACvB,QAAI,QAAQ,IAAK,SAAQ;AACzB,SAAK,eAAe;AAAA,EACxB;AAAA,EAEQ,4BAA4B,GAAU;AAC1C,UAAM,QAAQ,EAAE;AAChB,QAAI,QAAQ,SAAS,MAAM,OAAO,EAAE;AACpC,QAAI,MAAM,KAAK,EAAG,SAAQ;AAC1B,QAAI,QAAQ,EAAG,SAAQ;AACvB,QAAI,QAAQ,MAAO,SAAQ;AAC3B,SAAK,kBAAkB;AAAA,EAC3B;AAAA,EAEQ,0BAA0B,GAAU;AACxC,UAAM,QAAQ,EAAE;AAChB,SAAK,gBAAgB,MAAM;AAAA,EAC/B;AAAA,EAEA,MAAc,qBAAqB;AAE/B,UAAM,cAAc,KAAK,gBAAgB,EAAE,cAAc,KAAK,IAAI,CAAC;AACnE,UAAM,kBAAkB,KAAK,gBAAgB,EAAE,cAAc,KAAK,IAAI,CAAC;AAEvE,UAAM,KAAK,YAAY,eAAe;AAAA,MAClC,OAAO,KAAK;AAAA,MACZ,gBAAgB,KAAK;AAAA,MACrB;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAc,8BAA8B;AAExC,UAAM,cAAc,KAAK,gBAAgB,EAAE,cAAc,KAAK,IAAI,CAAC;AACnE,UAAM,kBAAkB,KAAK,gBAAgB,EAAE,cAAc,KAAK,IAAI,CAAC;AAEvE,UAAM,KAAK,YAAY,wBAAwB;AAAA,MAC3C,OAAO,KAAK;AAAA,MACZ,gBAAgB,KAAK;AAAA,MACrB;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAnGY;AAAA,EADP,MAAM;AAAA,GADL,4BAEM;AAGA;AAAA,EADP,MAAM;AAAA,GAJL,4BAKM;AAGA;AAAA,EADP,MAAM;AAAA,GAPL,4BAQM;AARN,8BAAN;AAAA,EADC,cAAc,gCAAgC;AAAA,GACzC;AAwGN,wBAAwB,YAAY,gCAAgC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import "@material/web/button/filled-button";
|
|
7
|
+
import "@material/web/button/outlined-button";
|
|
8
|
+
import { BaseClusterCommands } from "../base-cluster-commands.js";
|
|
9
|
+
/**
|
|
10
|
+
* Command panel for OnOff cluster (ID: 6).
|
|
11
|
+
* Provides On, Off, and Toggle commands.
|
|
12
|
+
*/
|
|
13
|
+
declare class OnOffClusterCommands extends BaseClusterCommands {
|
|
14
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
15
|
+
private _handleOn;
|
|
16
|
+
private _handleOff;
|
|
17
|
+
private _handleToggle;
|
|
18
|
+
}
|
|
19
|
+
declare global {
|
|
20
|
+
interface HTMLElementTagNameMap {
|
|
21
|
+
"on-off-cluster-commands": OnOffClusterCommands;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=on-off-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on-off-commands.d.ts","sourceRoot":"","sources":["../../../../../src/pages/cluster-commands/clusters/on-off-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,oCAAoC,CAAC;AAC5C,OAAO,sCAAsC,CAAC;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKlE;;;GAGG;AACH,cACM,oBAAqB,SAAQ,mBAAmB;IACzC,MAAM;YAeD,SAAS;YAIT,UAAU;YAIV,aAAa;CAG9B;AAKD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,yBAAyB,EAAE,oBAAoB,CAAC;KACnD;CACJ"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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 { html } from "lit";
|
|
19
|
+
import { customElement } from "lit/decorators.js";
|
|
20
|
+
import { BaseClusterCommands } from "../base-cluster-commands.js";
|
|
21
|
+
import { registerClusterCommands } from "../registry.js";
|
|
22
|
+
const CLUSTER_ID = 6;
|
|
23
|
+
let OnOffClusterCommands = class extends BaseClusterCommands {
|
|
24
|
+
render() {
|
|
25
|
+
return html`
|
|
26
|
+
<details class="command-panel">
|
|
27
|
+
<summary>OnOff Commands</summary>
|
|
28
|
+
<div class="command-content">
|
|
29
|
+
<div class="command-row">
|
|
30
|
+
<md-outlined-button @click=${this._handleOn}>On</md-outlined-button>
|
|
31
|
+
<md-outlined-button @click=${this._handleOff}>Off</md-outlined-button>
|
|
32
|
+
<md-outlined-button @click=${this._handleToggle}>Toggle</md-outlined-button>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</details>
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
async _handleOn() {
|
|
39
|
+
await this.sendCommand("On");
|
|
40
|
+
}
|
|
41
|
+
async _handleOff() {
|
|
42
|
+
await this.sendCommand("Off");
|
|
43
|
+
}
|
|
44
|
+
async _handleToggle() {
|
|
45
|
+
await this.sendCommand("Toggle");
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
OnOffClusterCommands = __decorateClass([
|
|
49
|
+
customElement("on-off-cluster-commands")
|
|
50
|
+
], OnOffClusterCommands);
|
|
51
|
+
registerClusterCommands(CLUSTER_ID, "on-off-cluster-commands");
|
|
52
|
+
//# sourceMappingURL=on-off-commands.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/pages/cluster-commands/clusters/on-off-commands.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AACpC,SAAS,+BAA+B;AAExC,MAAM,aAAa;AAOnB,IAAM,uBAAN,cAAmC,oBAAoB;AAAA,EAC1C,SAAS;AACd,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,qDAKsC,KAAK,SAAS;AAAA,qDACd,KAAK,UAAU;AAAA,qDACf,KAAK,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnE;AAAA,EAEA,MAAc,YAAY;AACtB,UAAM,KAAK,YAAY,IAAI;AAAA,EAC/B;AAAA,EAEA,MAAc,aAAa;AACvB,UAAM,KAAK,YAAY,KAAK;AAAA,EAChC;AAAA,EAEA,MAAc,gBAAgB;AAC1B,UAAM,KAAK,YAAY,QAAQ;AAAA,EACnC;AACJ;AA3BM,uBAAN;AAAA,EADC,cAAc,yBAAyB;AAAA,GAClC;AA8BN,wBAAwB,YAAY,yBAAyB;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Cluster-specific command panels.
|
|
8
|
+
* Import this file to register all cluster command components.
|
|
9
|
+
*/
|
|
10
|
+
export { getClusterCommandsTag, hasClusterCommands, registerClusterCommands } from "./registry.js";
|
|
11
|
+
export { BaseClusterCommands } from "./base-cluster-commands.js";
|
|
12
|
+
import "./clusters/level-control-commands.js";
|
|
13
|
+
import "./clusters/on-off-commands.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pages/cluster-commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AAGH,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,sCAAsC,CAAC;AAC9C,OAAO,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { getClusterCommandsTag, hasClusterCommands, registerClusterCommands } from "./registry.js";
|
|
7
|
+
import { BaseClusterCommands } from "./base-cluster-commands.js";
|
|
8
|
+
import "./clusters/level-control-commands.js";
|
|
9
|
+
import "./clusters/on-off-commands.js";
|
|
10
|
+
export {
|
|
11
|
+
BaseClusterCommands,
|
|
12
|
+
getClusterCommandsTag,
|
|
13
|
+
hasClusterCommands,
|
|
14
|
+
registerClusterCommands
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Register a cluster command panel component.
|
|
8
|
+
* @param clusterId - The Matter cluster ID (e.g., 6 for OnOff, 8 for LevelControl)
|
|
9
|
+
* @param tagName - The custom element tag name (e.g., "on-off-cluster-commands")
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerClusterCommands(clusterId: number, tagName: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Get the registered component tag name for a cluster ID.
|
|
14
|
+
* @param clusterId - The Matter cluster ID
|
|
15
|
+
* @returns The custom element tag name, or undefined if not registered
|
|
16
|
+
*/
|
|
17
|
+
export declare function getClusterCommandsTag(clusterId: number): string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a cluster has a registered command panel.
|
|
20
|
+
* @param clusterId - The Matter cluster ID
|
|
21
|
+
* @returns true if a command panel is registered
|
|
22
|
+
*/
|
|
23
|
+
export declare function hasClusterCommands(clusterId: number): boolean;
|
|
24
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/pages/cluster-commands/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
const clusterCommandRegistry = /* @__PURE__ */ new Map();
|
|
7
|
+
function registerClusterCommands(clusterId, tagName) {
|
|
8
|
+
clusterCommandRegistry.set(clusterId, tagName);
|
|
9
|
+
}
|
|
10
|
+
function getClusterCommandsTag(clusterId) {
|
|
11
|
+
return clusterCommandRegistry.get(clusterId);
|
|
12
|
+
}
|
|
13
|
+
function hasClusterCommands(clusterId) {
|
|
14
|
+
return clusterCommandRegistry.has(clusterId);
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
getClusterCommandsTag,
|
|
18
|
+
hasClusterCommands,
|
|
19
|
+
registerClusterCommands
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/pages/cluster-commands/registry.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,MAAM,yBAAyB,oBAAI,IAAoB;AAOhD,SAAS,wBAAwB,WAAmB,SAAuB;AAC9E,yBAAuB,IAAI,WAAW,OAAO;AACjD;AAOO,SAAS,sBAAsB,WAAuC;AACzE,SAAO,uBAAuB,IAAI,SAAS;AAC/C;AAOO,SAAS,mBAAmB,WAA4B;AAC3D,SAAO,uBAAuB,IAAI,SAAS;AAC/C;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -23,6 +23,8 @@ declare class MatterClusterView extends LitElement {
|
|
|
23
23
|
cluster?: number;
|
|
24
24
|
render(): import("lit-html").TemplateResult<1>;
|
|
25
25
|
private _showAttributeValue;
|
|
26
|
+
private _renderClusterCommands;
|
|
27
|
+
updated(changedProperties: Map<string, unknown>): void;
|
|
26
28
|
private _goBack;
|
|
27
29
|
static styles: import("lit").CSSResult;
|
|
28
30
|
}
|
|
@@ -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;
|
|
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;AAK1C,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;YAkED,mBAAmB;IAOjC,OAAO,CAAC,sBAAsB;IAkBrB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAgBxD,OAAO,CAAC,OAAO;IAIf,OAAgB,MAAM,0BAoCpB;CACL"}
|
|
@@ -21,13 +21,15 @@ import "@material/web/list/list-item";
|
|
|
21
21
|
import { toBigIntAwareJson } from "@matter-server/ws-client";
|
|
22
22
|
import { LitElement, css, html } from "lit";
|
|
23
23
|
import { customElement, property } from "lit/decorators.js";
|
|
24
|
+
import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
|
24
25
|
import { clusters } from "../client/models/descriptions.js";
|
|
25
26
|
import { showAlertDialog } from "../components/dialog-box/show-dialog-box.js";
|
|
26
27
|
import "../components/ha-svg-icon";
|
|
27
28
|
import "../pages/components/node-details";
|
|
28
29
|
import { bindingContext } from "./components/context.js";
|
|
30
|
+
import { getClusterCommandsTag } from "./cluster-commands/index.js";
|
|
29
31
|
function clusterAttributes(attributes, endpoint, cluster) {
|
|
30
|
-
return Object.keys(attributes).filter((key) => key.startsWith(`${endpoint}/${cluster}
|
|
32
|
+
return Object.keys(attributes).filter((key) => key.startsWith(`${endpoint}/${cluster}/`)).map((key) => {
|
|
31
33
|
const attributeKey = Number(key.split("/")[2]);
|
|
32
34
|
return { key: attributeKey, value: attributes[key] };
|
|
33
35
|
}, []);
|
|
@@ -52,6 +54,9 @@ let MatterClusterView = class extends LitElement {
|
|
|
52
54
|
<node-details .node=${this.node} .client=${this.client}></node-details>
|
|
53
55
|
</div>
|
|
54
56
|
|
|
57
|
+
<!-- Cluster commands section (if available for this cluster) -->
|
|
58
|
+
${this._renderClusterCommands()}
|
|
59
|
+
|
|
55
60
|
<!-- Cluster attributes listing -->
|
|
56
61
|
<div class="container">
|
|
57
62
|
<md-list>
|
|
@@ -97,6 +102,32 @@ let MatterClusterView = class extends LitElement {
|
|
|
97
102
|
text: toBigIntAwareJson(value)
|
|
98
103
|
});
|
|
99
104
|
}
|
|
105
|
+
_renderClusterCommands() {
|
|
106
|
+
if (this.cluster === void 0) return html``;
|
|
107
|
+
if (!this.node?.available) return html``;
|
|
108
|
+
const tagName = getClusterCommandsTag(this.cluster);
|
|
109
|
+
if (!tagName) return html``;
|
|
110
|
+
const componentHtml = `<${tagName}></${tagName}>`;
|
|
111
|
+
const element = unsafeHTML(componentHtml);
|
|
112
|
+
return html`
|
|
113
|
+
<div class="container">
|
|
114
|
+
<div id="cluster-commands-container">${element}</div>
|
|
115
|
+
</div>
|
|
116
|
+
`;
|
|
117
|
+
}
|
|
118
|
+
updated(changedProperties) {
|
|
119
|
+
super.updated(changedProperties);
|
|
120
|
+
const container = this.shadowRoot?.getElementById("cluster-commands-container");
|
|
121
|
+
if (container) {
|
|
122
|
+
const commandsElement = container.firstElementChild;
|
|
123
|
+
if (commandsElement && this.node && this.client) {
|
|
124
|
+
commandsElement.client = this.client;
|
|
125
|
+
commandsElement.node = this.node;
|
|
126
|
+
commandsElement.endpoint = this.endpoint;
|
|
127
|
+
commandsElement.cluster = this.cluster;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
100
131
|
_goBack() {
|
|
101
132
|
history.back();
|
|
102
133
|
}
|
|
@@ -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,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,OAAO;AACP,OAAO;AACP,SAAS,sBAAsB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|