@matter-server/dashboard 0.3.2 → 0.3.4
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/README.md +76 -0
- package/dist/esm/pages/cluster-commands/base-cluster-commands.d.ts +2 -2
- package/dist/esm/pages/cluster-commands/base-cluster-commands.d.ts.map +1 -1
- package/dist/esm/pages/cluster-commands/base-cluster-commands.js.map +1 -1
- package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.d.ts +36 -0
- package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.js +159 -0
- package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.js.map +6 -0
- package/dist/esm/pages/cluster-commands/index.d.ts +1 -0
- package/dist/esm/pages/cluster-commands/index.d.ts.map +1 -1
- package/dist/esm/pages/cluster-commands/index.js +1 -0
- package/dist/esm/pages/cluster-commands/index.js.map +1 -1
- package/dist/esm/pages/components/footer.d.ts.map +1 -1
- package/dist/esm/pages/components/footer.js +4 -7
- package/dist/esm/pages/components/footer.js.map +1 -1
- package/dist/esm/pages/components/header.d.ts +5 -0
- package/dist/esm/pages/components/header.d.ts.map +1 -1
- package/dist/esm/pages/components/header.js +75 -0
- package/dist/esm/pages/components/header.js.map +1 -1
- package/dist/esm/pages/components/node-details.js +2 -2
- package/dist/esm/pages/components/node-details.js.map +1 -1
- package/dist/esm/pages/components/server-details.d.ts.map +1 -1
- package/dist/esm/pages/components/server-details.js +0 -1
- package/dist/esm/pages/components/server-details.js.map +1 -1
- package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-cluster-view.js +9 -4
- package/dist/esm/pages/matter-cluster-view.js.map +1 -1
- package/dist/esm/pages/matter-dashboard-app.d.ts +12 -0
- package/dist/esm/pages/matter-dashboard-app.d.ts.map +1 -1
- package/dist/esm/pages/matter-dashboard-app.js +84 -4
- package/dist/esm/pages/matter-dashboard-app.js.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.js +8 -2
- package/dist/esm/pages/matter-endpoint-view.js.map +1 -1
- package/dist/esm/pages/matter-network-view.d.ts +52 -0
- package/dist/esm/pages/matter-network-view.d.ts.map +1 -0
- package/dist/esm/pages/matter-network-view.js +309 -0
- package/dist/esm/pages/matter-network-view.js.map +6 -0
- package/dist/esm/pages/matter-node-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-node-view.js +86 -3
- package/dist/esm/pages/matter-node-view.js.map +1 -1
- package/dist/esm/pages/matter-server-view.d.ts +4 -0
- package/dist/esm/pages/matter-server-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-server-view.js +16 -1
- package/dist/esm/pages/matter-server-view.js.map +1 -1
- package/dist/esm/pages/network/base-network-graph.d.ts +74 -0
- package/dist/esm/pages/network/base-network-graph.d.ts.map +1 -0
- package/dist/esm/pages/network/base-network-graph.js +411 -0
- package/dist/esm/pages/network/base-network-graph.js.map +6 -0
- package/dist/esm/pages/network/device-icons.d.ts +52 -0
- package/dist/esm/pages/network/device-icons.d.ts.map +1 -0
- package/dist/esm/pages/network/device-icons.js +197 -0
- package/dist/esm/pages/network/device-icons.js.map +6 -0
- package/dist/esm/pages/network/device-panel.d.ts +31 -0
- package/dist/esm/pages/network/device-panel.d.ts.map +1 -0
- package/dist/esm/pages/network/device-panel.js +183 -0
- package/dist/esm/pages/network/device-panel.js.map +6 -0
- package/dist/esm/pages/network/network-details.d.ts +77 -0
- package/dist/esm/pages/network/network-details.d.ts.map +1 -0
- package/dist/esm/pages/network/network-details.js +904 -0
- package/dist/esm/pages/network/network-details.js.map +6 -0
- package/dist/esm/pages/network/network-types.d.ts +159 -0
- package/dist/esm/pages/network/network-types.d.ts.map +1 -0
- package/dist/esm/pages/network/network-types.js +19 -0
- package/dist/esm/pages/network/network-types.js.map +6 -0
- package/dist/esm/pages/network/network-utils.d.ts +196 -0
- package/dist/esm/pages/network/network-utils.d.ts.map +1 -0
- package/dist/esm/pages/network/network-utils.js +540 -0
- package/dist/esm/pages/network/network-utils.js.map +6 -0
- package/dist/esm/pages/network/thread-graph.d.ts +27 -0
- package/dist/esm/pages/network/thread-graph.d.ts.map +1 -0
- package/dist/esm/pages/network/thread-graph.js +137 -0
- package/dist/esm/pages/network/thread-graph.js.map +6 -0
- package/dist/esm/pages/network/update-connections-dialog.d.ts +55 -0
- package/dist/esm/pages/network/update-connections-dialog.d.ts.map +1 -0
- package/dist/esm/pages/network/update-connections-dialog.js +284 -0
- package/dist/esm/pages/network/update-connections-dialog.js.map +6 -0
- package/dist/esm/pages/network/wifi-graph.d.ts +27 -0
- package/dist/esm/pages/network/wifi-graph.d.ts.map +1 -0
- package/dist/esm/pages/network/wifi-graph.js +169 -0
- package/dist/esm/pages/network/wifi-graph.js.map +6 -0
- package/dist/esm/util/format_hex.d.ts +18 -0
- package/dist/esm/util/format_hex.d.ts.map +1 -1
- package/dist/esm/util/format_hex.js +21 -1
- package/dist/esm/util/format_hex.js.map +1 -1
- package/dist/web/js/{commission-node-dialog-CBSDiqRW.js → commission-node-dialog-CcMuttYO.js} +5 -5
- package/dist/web/js/{commission-node-existing-TP6s8Tez.js → commission-node-existing-CqTRDMAr.js} +2 -5
- package/dist/web/js/{commission-node-thread-DOB8pu6x.js → commission-node-thread-DgwtTVwK.js} +2 -5
- package/dist/web/js/{commission-node-wifi-tzavmk1j.js → commission-node-wifi-XaN2SEnE.js} +2 -5
- package/dist/web/js/{dialog-box-Dknil_Be.js → dialog-box-COpDD8i7.js} +2 -2
- package/dist/web/js/{fire_event-DRpOSjJR.js → fire_event-mDYWi2sw.js} +1 -1
- package/dist/web/js/{log-level-dialog-TXkma-7Z.js → log-level-dialog-Bc32kZVw.js} +2 -3
- package/dist/web/js/main.js +1 -1
- package/dist/web/js/matter-dashboard-app-CrBHT4fT.js +31606 -0
- package/dist/web/js/{node-binding-dialog-D52FCBFP.js → node-binding-dialog-C8fqOJiB.js} +2 -4
- package/dist/web/js/prevent_default-D-ohDGsN.js +8 -0
- package/package.json +6 -5
- package/src/pages/cluster-commands/base-cluster-commands.ts +2 -2
- package/src/pages/cluster-commands/clusters/basic-information-commands.ts +171 -0
- package/src/pages/cluster-commands/index.ts +1 -0
- package/src/pages/components/footer.ts +4 -7
- package/src/pages/components/header.ts +81 -0
- package/src/pages/components/node-details.ts +3 -3
- package/src/pages/components/server-details.ts +0 -1
- package/src/pages/matter-cluster-view.ts +11 -4
- package/src/pages/matter-dashboard-app.ts +105 -5
- package/src/pages/matter-endpoint-view.ts +10 -3
- package/src/pages/matter-network-view.ts +325 -0
- package/src/pages/matter-node-view.ts +93 -4
- package/src/pages/matter-server-view.ts +17 -1
- package/src/pages/network/base-network-graph.ts +477 -0
- package/src/pages/network/device-icons.ts +283 -0
- package/src/pages/network/device-panel.ts +180 -0
- package/src/pages/network/network-details.ts +1015 -0
- package/src/pages/network/network-types.ts +167 -0
- package/src/pages/network/network-utils.ts +861 -0
- package/src/pages/network/thread-graph.ts +170 -0
- package/src/pages/network/update-connections-dialog.ts +327 -0
- package/src/pages/network/wifi-graph.ts +193 -0
- package/src/util/format_hex.ts +39 -0
- package/dist/web/js/matter-dashboard-app-B7GUghkC.js +0 -17254
- package/dist/web/js/outlined-text-field-D1DyKQY-.js +0 -968
- package/dist/web/js/prevent_default-BPgSQsuY.js +0 -814
- package/dist/web/js/validator-C735j770.js +0 -1122
|
@@ -0,0 +1,169 @@
|
|
|
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 { html } from "lit";
|
|
17
|
+
import { customElement } from "lit/decorators.js";
|
|
18
|
+
import { BaseNetworkGraph } from "./base-network-graph.js";
|
|
19
|
+
import { createNodeIconDataUrl, createWiFiRouterIconDataUrl } from "./device-icons.js";
|
|
20
|
+
import {
|
|
21
|
+
categorizeDevices,
|
|
22
|
+
getDeviceName,
|
|
23
|
+
getNetworkType,
|
|
24
|
+
getSignalColorFromRssi,
|
|
25
|
+
getWiFiDiagnostics
|
|
26
|
+
} from "./network-utils.js";
|
|
27
|
+
let WiFiGraph = class extends BaseNetworkGraph {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
/** Cache of access points for the current render */
|
|
31
|
+
this._accessPoints = /* @__PURE__ */ new Map();
|
|
32
|
+
}
|
|
33
|
+
/** Get access points map for use by details panel */
|
|
34
|
+
get wifiAccessPointsMap() {
|
|
35
|
+
return this._accessPoints;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Override physics for WiFi star topology - needs stronger cluster separation.
|
|
39
|
+
*/
|
|
40
|
+
_getPhysicsOptions() {
|
|
41
|
+
return {
|
|
42
|
+
enabled: true,
|
|
43
|
+
solver: "forceAtlas2Based",
|
|
44
|
+
forceAtlas2Based: {
|
|
45
|
+
gravitationalConstant: -120,
|
|
46
|
+
// Stronger repulsion for star topology
|
|
47
|
+
centralGravity: 3e-3,
|
|
48
|
+
// Weaker central pull
|
|
49
|
+
springLength: 100,
|
|
50
|
+
// Shorter springs keep devices close to their AP
|
|
51
|
+
springConstant: 0.12,
|
|
52
|
+
// Stronger springs
|
|
53
|
+
damping: 0.4,
|
|
54
|
+
avoidOverlap: 0.8
|
|
55
|
+
},
|
|
56
|
+
stabilization: {
|
|
57
|
+
enabled: true,
|
|
58
|
+
iterations: 300,
|
|
59
|
+
updateInterval: 25
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
_updateGraph() {
|
|
64
|
+
if (!this._nodesDataSet || !this._edgesDataSet) return;
|
|
65
|
+
this._clearOriginalEdgeColors();
|
|
66
|
+
const categorized = categorizeDevices(this.nodes);
|
|
67
|
+
const wifiNodeIds = categorized.wifi;
|
|
68
|
+
if (wifiNodeIds.length === 0) {
|
|
69
|
+
this._nodesDataSet.clear();
|
|
70
|
+
this._edgesDataSet.clear();
|
|
71
|
+
this._accessPoints.clear();
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
this._accessPoints.clear();
|
|
75
|
+
for (const nodeId of wifiNodeIds) {
|
|
76
|
+
const node = this.nodes[nodeId];
|
|
77
|
+
if (!node) continue;
|
|
78
|
+
const wifiDiag = getWiFiDiagnostics(node);
|
|
79
|
+
if (wifiDiag.bssid) {
|
|
80
|
+
const apId = `ap_${wifiDiag.bssid.replace(/:/g, "")}`;
|
|
81
|
+
if (!this._accessPoints.has(apId)) {
|
|
82
|
+
this._accessPoints.set(apId, {
|
|
83
|
+
bssid: wifiDiag.bssid,
|
|
84
|
+
connectedNodes: []
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
this._accessPoints.get(apId).connectedNodes.push(nodeId);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const graphNodes = [];
|
|
91
|
+
const graphEdges = [];
|
|
92
|
+
for (const [apId, ap] of this._accessPoints) {
|
|
93
|
+
const bssid = ap.bssid;
|
|
94
|
+
const isSelected = String(apId) === String(this._selectedNodeId);
|
|
95
|
+
graphNodes.push({
|
|
96
|
+
id: apId,
|
|
97
|
+
label: `AP ${bssid.slice(-8)}`,
|
|
98
|
+
image: createWiFiRouterIconDataUrl(isSelected),
|
|
99
|
+
shape: "image",
|
|
100
|
+
networkType: "wifi",
|
|
101
|
+
isUnknown: true
|
|
102
|
+
// Mark as infrastructure
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
let edgeIndex = 0;
|
|
106
|
+
for (const nodeId of wifiNodeIds) {
|
|
107
|
+
const node = this.nodes[nodeId];
|
|
108
|
+
if (!node) continue;
|
|
109
|
+
const isSelected = nodeId === String(this._selectedNodeId);
|
|
110
|
+
const isOffline = node.available === false;
|
|
111
|
+
const networkType = getNetworkType(node);
|
|
112
|
+
const wifiDiag = getWiFiDiagnostics(node);
|
|
113
|
+
graphNodes.push({
|
|
114
|
+
id: nodeId,
|
|
115
|
+
label: getDeviceName(node),
|
|
116
|
+
image: createNodeIconDataUrl(node, void 0, isSelected, isOffline),
|
|
117
|
+
shape: "image",
|
|
118
|
+
networkType,
|
|
119
|
+
offline: isOffline
|
|
120
|
+
});
|
|
121
|
+
if (wifiDiag.bssid) {
|
|
122
|
+
const apId = `ap_${wifiDiag.bssid.replace(/:/g, "")}`;
|
|
123
|
+
const signalColor = getSignalColorFromRssi(wifiDiag.rssi);
|
|
124
|
+
graphEdges.push({
|
|
125
|
+
id: `edge_${edgeIndex++}`,
|
|
126
|
+
from: nodeId,
|
|
127
|
+
to: apId,
|
|
128
|
+
color: {
|
|
129
|
+
color: signalColor,
|
|
130
|
+
highlight: signalColor
|
|
131
|
+
},
|
|
132
|
+
width: 2,
|
|
133
|
+
title: wifiDiag.rssi !== null ? `RSSI: ${wifiDiag.rssi} dBm` : "RSSI: Unknown",
|
|
134
|
+
dashes: isOffline
|
|
135
|
+
// Dashed lines for offline devices
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const existingNodeIds = this._nodesDataSet.getIds();
|
|
140
|
+
const newNodeIds = new Set(graphNodes.map((n) => n.id));
|
|
141
|
+
const nodesToRemove = existingNodeIds.filter((id) => !newNodeIds.has(id));
|
|
142
|
+
if (nodesToRemove.length > 0) {
|
|
143
|
+
this._nodesDataSet.remove(nodesToRemove);
|
|
144
|
+
}
|
|
145
|
+
this._nodesDataSet.update(graphNodes);
|
|
146
|
+
this._edgesDataSet.clear();
|
|
147
|
+
this._edgesDataSet.add(graphEdges);
|
|
148
|
+
}
|
|
149
|
+
render() {
|
|
150
|
+
const categorized = categorizeDevices(this.nodes);
|
|
151
|
+
const wifiCount = categorized.wifi.length;
|
|
152
|
+
if (wifiCount === 0) {
|
|
153
|
+
return html`
|
|
154
|
+
<div class="empty-state">
|
|
155
|
+
<p>No WiFi devices found</p>
|
|
156
|
+
<p class="hint">WiFi devices will appear here once commissioned</p>
|
|
157
|
+
</div>
|
|
158
|
+
`;
|
|
159
|
+
}
|
|
160
|
+
return html`<div class="graph-container"></div>`;
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
WiFiGraph = __decorateClass([
|
|
164
|
+
customElement("wifi-graph")
|
|
165
|
+
], WiFiGraph);
|
|
166
|
+
export {
|
|
167
|
+
WiFiGraph
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=wifi-graph.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/pages/network/wifi-graph.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -25,4 +25,22 @@ export declare function formatHex(value: number | bigint): string;
|
|
|
25
25
|
* (undefined, 2) -> "@?:2"
|
|
26
26
|
*/
|
|
27
27
|
export declare function formatNodeAddress(fabricIndex: number | undefined, nodeId: number | bigint): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get the effective fabric index for formatting a node address.
|
|
30
|
+
* Returns undefined for test nodes or when fabric index is not available,
|
|
31
|
+
* which will result in "?" being displayed.
|
|
32
|
+
*
|
|
33
|
+
* @param serverFabricIndex - The fabric_index from client.serverInfo
|
|
34
|
+
* @param isTestNode - Whether this is a test node (from isTestNodeId())
|
|
35
|
+
*/
|
|
36
|
+
export declare function getEffectiveFabricIndex(serverFabricIndex: number | undefined, isTestNode: boolean): number | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Format a node address, handling string node IDs.
|
|
39
|
+
* Useful when node IDs come from various sources (string keys, numbers, bigints).
|
|
40
|
+
*
|
|
41
|
+
* @param fabricIndex - The fabric index (or undefined for "?")
|
|
42
|
+
* @param nodeId - The node ID as string, number, or bigint
|
|
43
|
+
* @returns Formatted address like "@1:7b" or empty string if nodeId is invalid
|
|
44
|
+
*/
|
|
45
|
+
export declare function formatNodeAddressFromAny(fabricIndex: number | undefined, nodeId: number | bigint | string): string;
|
|
28
46
|
//# sourceMappingURL=format_hex.d.ts.map
|
|
@@ -1 +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,GAAG,MAAM,CAaxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAGlG"}
|
|
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,GAAG,MAAM,CAaxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAGlG;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACnC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,UAAU,EAAE,OAAO,GACpB,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAclH"}
|
|
@@ -16,8 +16,28 @@ function formatNodeAddress(fabricIndex, nodeId) {
|
|
|
16
16
|
const fabricPart = fabricIndex !== void 0 ? fabricIndex : "?";
|
|
17
17
|
return `@${fabricPart}:${nodeId.toString(16)}`;
|
|
18
18
|
}
|
|
19
|
+
function getEffectiveFabricIndex(serverFabricIndex, isTestNode) {
|
|
20
|
+
return isTestNode || serverFabricIndex === void 0 ? void 0 : serverFabricIndex;
|
|
21
|
+
}
|
|
22
|
+
function formatNodeAddressFromAny(fabricIndex, nodeId) {
|
|
23
|
+
let numericId;
|
|
24
|
+
if (typeof nodeId === "bigint") {
|
|
25
|
+
numericId = nodeId;
|
|
26
|
+
} else if (typeof nodeId === "number") {
|
|
27
|
+
numericId = BigInt(nodeId);
|
|
28
|
+
} else {
|
|
29
|
+
try {
|
|
30
|
+
numericId = BigInt(nodeId);
|
|
31
|
+
} catch {
|
|
32
|
+
return "";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return formatNodeAddress(fabricIndex, numericId);
|
|
36
|
+
}
|
|
19
37
|
export {
|
|
20
38
|
formatHex,
|
|
21
|
-
formatNodeAddress
|
|
39
|
+
formatNodeAddress,
|
|
40
|
+
formatNodeAddressFromAny,
|
|
41
|
+
getEffectiveFabricIndex
|
|
22
42
|
};
|
|
23
43
|
//# sourceMappingURL=format_hex.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/format_hex.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBO,SAAS,UAAU,OAAgC;AACtD,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;AAYO,SAAS,kBAAkB,aAAiC,QAAiC;AAChG,QAAM,aAAa,gBAAgB,SAAY,cAAc;AAC7D,SAAO,IAAI,UAAU,IAAI,OAAO,SAAS,EAAE,CAAC;AAChD;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBO,SAAS,UAAU,OAAgC;AACtD,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;AAYO,SAAS,kBAAkB,aAAiC,QAAiC;AAChG,QAAM,aAAa,gBAAgB,SAAY,cAAc;AAC7D,SAAO,IAAI,UAAU,IAAI,OAAO,SAAS,EAAE,CAAC;AAChD;AAUO,SAAS,wBACZ,mBACA,YACkB;AAClB,SAAO,cAAc,sBAAsB,SAAY,SAAY;AACvE;AAUO,SAAS,yBAAyB,aAAiC,QAA0C;AAChH,MAAI;AACJ,MAAI,OAAO,WAAW,UAAU;AAC5B,gBAAY;AAAA,EAChB,WAAW,OAAO,WAAW,UAAU;AACnC,gBAAY,OAAO,MAAM;AAAA,EAC7B,OAAO;AACH,QAAI;AACA,kBAAY,OAAO,MAAM;AAAA,IAC7B,QAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO,kBAAkB,aAAa,SAAS;AACnD;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/web/js/{commission-node-dialog-CBSDiqRW.js → commission-node-dialog-CcMuttYO.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r, n, t, i,
|
|
2
|
-
import { p as preventDefault } from './prevent_default-
|
|
1
|
+
import { r, n, t, i, j as b } from './matter-dashboard-app-CrBHT4fT.js';
|
|
2
|
+
import { p as preventDefault } from './prevent_default-D-ohDGsN.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-XaN2SEnE.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-DgwtTVwK.js');
|
|
55
55
|
this._mode = "thread";
|
|
56
56
|
}
|
|
57
57
|
_commissionExisting() {
|
|
58
|
-
import('./commission-node-existing-
|
|
58
|
+
import('./commission-node-existing-CqTRDMAr.js');
|
|
59
59
|
this._mode = "existing";
|
|
60
60
|
}
|
|
61
61
|
_nodeCommissioned(ev) {
|
package/dist/web/js/{commission-node-existing-TP6s8Tez.js → commission-node-existing-CqTRDMAr.js}
RENAMED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { r,
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
3
|
-
import './outlined-text-field-D1DyKQY-.js';
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-CrBHT4fT.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-mDYWi2sw.js';
|
|
4
3
|
import './main.js';
|
|
5
|
-
import './validator-C735j770.js';
|
|
6
|
-
import './prevent_default-BPgSQsuY.js';
|
|
7
4
|
|
|
8
5
|
var __defProp = Object.defineProperty;
|
|
9
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
package/dist/web/js/{commission-node-thread-DOB8pu6x.js → commission-node-thread-DgwtTVwK.js}
RENAMED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { r,
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
3
|
-
import './outlined-text-field-D1DyKQY-.js';
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-CrBHT4fT.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-mDYWi2sw.js';
|
|
4
3
|
import './main.js';
|
|
5
|
-
import './validator-C735j770.js';
|
|
6
|
-
import './prevent_default-BPgSQsuY.js';
|
|
7
4
|
|
|
8
5
|
var __defProp = Object.defineProperty;
|
|
9
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { r,
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
3
|
-
import './outlined-text-field-D1DyKQY-.js';
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-CrBHT4fT.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-mDYWi2sw.js';
|
|
4
3
|
import './main.js';
|
|
5
|
-
import './validator-C735j770.js';
|
|
6
|
-
import './prevent_default-BPgSQsuY.js';
|
|
7
4
|
|
|
8
5
|
var __defProp = Object.defineProperty;
|
|
9
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n, t, i,
|
|
2
|
-
import { p as preventDefault } from './prevent_default-
|
|
1
|
+
import { n, t, i, j as b } from './matter-dashboard-app-CrBHT4fT.js';
|
|
2
|
+
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e,
|
|
1
|
+
import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-CrBHT4fT.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @license
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as b, E as EASING,
|
|
2
|
-
import {
|
|
3
|
-
import { o as o$1, V as Validator, m as mixinOnReportValidity, a as mixinConstraintValidation, b as mixinFormAssociated, c as onReportValidity, g as getFormValue, d as createValidator, e as getValidityAnchor } from './validator-C735j770.js';
|
|
1
|
+
import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as handleAsync } from './matter-dashboard-app-CrBHT4fT.js';
|
|
2
|
+
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
4
3
|
import './main.js';
|
|
5
4
|
|
|
6
5
|
/**
|
package/dist/web/js/main.js
CHANGED
|
@@ -748,7 +748,7 @@ const ThemeService = new ThemeServiceImpl();
|
|
|
748
748
|
* SPDX-License-Identifier: Apache-2.0
|
|
749
749
|
*/
|
|
750
750
|
async function main() {
|
|
751
|
-
import('./matter-dashboard-app-
|
|
751
|
+
import('./matter-dashboard-app-CrBHT4fT.js').then(function (n) { return n.I; });
|
|
752
752
|
let url = "";
|
|
753
753
|
const isProductionServer = location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
|
|
754
754
|
if (!isProductionServer) {
|