@matter-server/dashboard 0.5.13 → 0.5.14-alpha.0-20260403-e9fca2c
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/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js +25 -3
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +1 -1
- package/dist/web/js/{commission-node-dialog-C3vakpfo.js → commission-node-dialog-ByflSEDK.js} +4 -4
- package/dist/web/js/{commission-node-existing-D3r5Plch.js → commission-node-existing-CD6-Epwb.js} +2 -2
- package/dist/web/js/{commission-node-thread-C9ECK9dL.js → commission-node-thread-CekKshVL.js} +2 -2
- package/dist/web/js/{commission-node-wifi-DlG5s0i_.js → commission-node-wifi-D_VKTWwF.js} +2 -2
- package/dist/web/js/{dialog-box-Bi0vD6U9.js → dialog-box-DdVdxz2_.js} +1 -1
- package/dist/web/js/{fire_event-Cy9Y-JEv.js → fire_event-uMluKQub.js} +1 -1
- package/dist/web/js/{log-level-dialog-B7jqYNxe.js → log-level-dialog-BO1OSL0z.js} +1 -1
- package/dist/web/js/main.js +1 -1
- package/dist/web/js/{matter-dashboard-app-BiNu4m8W.js → matter-dashboard-app-b1R3Pout.js} +5 -5
- package/dist/web/js/{node-binding-dialog-BmjRJ8c2.js → node-binding-dialog-rikORH9_.js} +25 -4
- package/package.json +3 -3
- package/src/components/dialogs/binding/node-binding-dialog.ts +34 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-binding-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kCAAkC,CAAC;AAC1C,OAAO,6BAA6B,CAAC;AAErC,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6CAA6C,CAAC;AAErD,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAqC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"node-binding-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kCAAkC,CAAC;AAC1C,OAAO,6BAA6B,CAAC;AAErC,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6CAA6C,CAAC;AAErD,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAqC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;AAcrD,qBACa,iBAAkB,SAAQ,UAAU;IAGtC,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAGzB,QAAQ,EAAG,MAAM,CAAC;IAGlB,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,eAAe,CAAuB;IAG9C,OAAO,CAAC,cAAc,CAAuB;IAE7C,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;YAUP,oBAAoB;YA4CpB,oBAAoB;IAgBlC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,oBAAoB;YAId,kBAAkB;IAgBhC,OAAO,CAAC,0BAA0B;YAKpB,cAAc;IAiC5B,kFAAkF;IAClF,OAAO,CAAC,eAAe;IASvB,6FAA6F;IAC7F,OAAO,CAAC,oBAAoB;YAcd,YAAY;IAyBpB,iBAAiB;IAkFvB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,QAAQ;cAmBG,MAAM;IAoFzB,OAAgB,MAAM,0BAsCpB;CACL;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,qBAAqB,EAAE,iBAAiB,CAAC;KAC5C;CACJ"}
|
|
@@ -26,6 +26,7 @@ import { clientContext } from "../../../client/client-context.js";
|
|
|
26
26
|
import { handleAsync } from "../../../util/async-handler.js";
|
|
27
27
|
import { analyzeBatchResults } from "../../../util/matter-status.js";
|
|
28
28
|
import { preventDefault } from "../../../util/prevent_default.js";
|
|
29
|
+
import { showAlertDialog, showPromptDialog } from "../../dialog-box/show-dialog-box.js";
|
|
29
30
|
import {
|
|
30
31
|
AccessControlEntryDataTransformer
|
|
31
32
|
} from "../acl/model.js";
|
|
@@ -49,9 +50,30 @@ let NodeBindingDialog = class extends LitElement {
|
|
|
49
50
|
const targetNodeId = rawBindings[index].node;
|
|
50
51
|
const endpoint = rawBindings[index].endpoint;
|
|
51
52
|
if (targetNodeId === void 0 || endpoint === void 0) return;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
let aclCleanedUp = false;
|
|
54
|
+
try {
|
|
55
|
+
await this.removeNodeAtACLEntry(this.node.node_id, endpoint, targetNodeId);
|
|
56
|
+
aclCleanedUp = true;
|
|
57
|
+
} catch (aclError) {
|
|
58
|
+
const errorMessage = aclError instanceof Error ? aclError.message : String(aclError);
|
|
59
|
+
const proceed = await showPromptDialog({
|
|
60
|
+
title: "ACL cleanup failed",
|
|
61
|
+
text: `Could not clean up ACL on target node ${targetNodeId}: ${errorMessage}. The target node may no longer exist or be unreachable. Do you want to remove the binding anyway? Note: The target device may retain an outdated ACL entry.`,
|
|
62
|
+
confirmText: "Remove binding"
|
|
63
|
+
});
|
|
64
|
+
if (!proceed) return;
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
const updatedBindings = this.removeBindingAtIndex(rawBindings, index);
|
|
68
|
+
await this.syncBindingUpdates(updatedBindings, index);
|
|
69
|
+
} catch (bindingError) {
|
|
70
|
+
const errorMessage = bindingError instanceof Error ? bindingError.message : String(bindingError);
|
|
71
|
+
await showAlertDialog({
|
|
72
|
+
title: "Binding removal failed",
|
|
73
|
+
text: `Failed to remove the binding: ${errorMessage}. ` + (aclCleanedUp ? "The ACL on the target device was already updated. The binding and ACL may now be out of sync." : "No changes were made.")
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
55
77
|
} catch (error) {
|
|
56
78
|
this.handleBindingDeletionError(error);
|
|
57
79
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,SAAS,eAAe;AACxB,OAAO;AACP,OAAO;AACP,OAAO;AAEP,OAAO;AAGP,SAAS,KAAK,MAAM,YAAY,eAAe;AAC/C,SAAS,eAAe,UAAU,aAAa;AAC/C,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,2BAAmD;AAC5D,SAAS,sBAAsB;AAC/B;AAAA,EACI;AAAA,OAGG;AACP,SAAS,mCAAkE;AAGpE,IAAM,oBAAN,cAAgC,WAAW;AAAA,EAoBtC,oBAA0C;AAC9C,UAAM,eAAe,KAAK,KAAM,WAAW,KAAK,WAAW,OAAO;AAClE,QAAI,CAAC,aAAc,QAAO,CAAC;AAC3B,WAAO,OAAO,OAAO,YAAY,EAAE,IAAI,WAAS,4BAA4B,UAAU,KAAK,CAAC;AAAA,EAChG;AAAA,EAEQ,cAAc,cAA2D;AAC7E,UAAM,kBAAkB,KAAK,OAAO,MAAM,OAAO,YAAY,CAAC,GAAG,WAAW,QAAQ;AAGpF,QAAI,CAAC,gBAAiB,QAAO,CAAC;AAC9B,WAAO,OAAO,OAAO,eAAe,EAAE;AAAA,MAAI,CAAC,UACvC,kCAAkC,UAAU,KAAK;AAAA,IACrD;AAAA,EACJ;AAAA,EAEA,MAAc,qBAAqB,OAA8B;AAC7D,UAAM,cAAc,KAAK,kBAAkB;AAC3C,QAAI;AACA,YAAM,eAAe,YAAY,KAAK,EAAE;AACxC,YAAM,WAAW,YAAY,KAAK,EAAE;AACpC,UAAI,iBAAiB,UAAa,aAAa,OAAW;AAC1D,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/web/js/{commission-node-dialog-C3vakpfo.js → commission-node-dialog-ByflSEDK.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r, n, t, i, j as b } from './matter-dashboard-app-
|
|
1
|
+
import { r, n, t, i, j as b } from './matter-dashboard-app-b1R3Pout.js';
|
|
2
2
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
@@ -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-D_VKTWwF.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-CekKshVL.js');
|
|
55
55
|
this._mode = "thread";
|
|
56
56
|
}
|
|
57
57
|
_commissionExisting() {
|
|
58
|
-
import('./commission-node-existing-
|
|
58
|
+
import('./commission-node-existing-CD6-Epwb.js');
|
|
59
59
|
this._mode = "existing";
|
|
60
60
|
}
|
|
61
61
|
_nodeCommissioned(ev) {
|
package/dist/web/js/{commission-node-existing-D3r5Plch.js → commission-node-existing-CD6-Epwb.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-b1R3Pout.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-uMluKQub.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
package/dist/web/js/{commission-node-thread-C9ECK9dL.js → commission-node-thread-CekKshVL.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-b1R3Pout.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-uMluKQub.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-
|
|
2
|
-
import { f as fireEvent } from './fire_event-
|
|
1
|
+
import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-b1R3Pout.js';
|
|
2
|
+
import { f as fireEvent } from './fire_event-uMluKQub.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-
|
|
1
|
+
import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-b1R3Pout.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @license
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as handleAsync } from './matter-dashboard-app-
|
|
1
|
+
import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as handleAsync } from './matter-dashboard-app-b1R3Pout.js';
|
|
2
2
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
package/dist/web/js/main.js
CHANGED
|
@@ -757,7 +757,7 @@ const ThemeService = new ThemeServiceImpl();
|
|
|
757
757
|
* SPDX-License-Identifier: Apache-2.0
|
|
758
758
|
*/
|
|
759
759
|
async function main() {
|
|
760
|
-
import('./matter-dashboard-app-
|
|
760
|
+
import('./matter-dashboard-app-b1R3Pout.js').then(function (n) { return n.K; });
|
|
761
761
|
let url = "";
|
|
762
762
|
const isProductionServer = window.__MATTERJS_PRODUCTION_MODE__ === true || location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
|
|
763
763
|
if (!isProductionServer) {
|
|
@@ -4026,7 +4026,7 @@ MdListItem = __decorate([t$1('md-list-item')], MdListItem);
|
|
|
4026
4026
|
*/
|
|
4027
4027
|
const showLogLevelDialog = async client => {
|
|
4028
4028
|
var _document$querySelect;
|
|
4029
|
-
await import('./log-level-dialog-
|
|
4029
|
+
await import('./log-level-dialog-BO1OSL0z.js');
|
|
4030
4030
|
const dialog = document.createElement("log-level-dialog");
|
|
4031
4031
|
dialog.client = client;
|
|
4032
4032
|
(_document$querySelect = document.querySelector("matter-dashboard-app")) === null || _document$querySelect === void 0 || _document$querySelect.renderRoot.appendChild(dialog);
|
|
@@ -15728,7 +15728,7 @@ const clusters = {
|
|
|
15728
15728
|
* SPDX-License-Identifier: Apache-2.0
|
|
15729
15729
|
*/
|
|
15730
15730
|
const showDialogBox = async (type, dialogParams) => {
|
|
15731
|
-
await import('./dialog-box-
|
|
15731
|
+
await import('./dialog-box-DdVdxz2_.js');
|
|
15732
15732
|
return new Promise(resolve => {
|
|
15733
15733
|
const dialog = document.createElement("dialog-box");
|
|
15734
15734
|
dialog.params = dialogParams;
|
|
@@ -15902,7 +15902,7 @@ MdTextButton = __decorate([t$1('md-text-button')], MdTextButton);
|
|
|
15902
15902
|
*/
|
|
15903
15903
|
const showNodeBindingDialog = async (client, node, endpoint) => {
|
|
15904
15904
|
var _document$querySelect;
|
|
15905
|
-
await import('./node-binding-dialog-
|
|
15905
|
+
await import('./node-binding-dialog-rikORH9_.js');
|
|
15906
15906
|
const dialog = document.createElement("node-binding-dialog");
|
|
15907
15907
|
dialog.client = client;
|
|
15908
15908
|
dialog.node = node;
|
|
@@ -31679,7 +31679,7 @@ MatterNodeView = __decorateClass$3([t$1("matter-node-view")], MatterNodeView);
|
|
|
31679
31679
|
*/
|
|
31680
31680
|
const showCommissionNodeDialog = async client => {
|
|
31681
31681
|
var _document$querySelect;
|
|
31682
|
-
await import('./commission-node-dialog-
|
|
31682
|
+
await import('./commission-node-dialog-ByflSEDK.js');
|
|
31683
31683
|
const dialog = document.createElement("commission-node-dialog");
|
|
31684
31684
|
dialog.client = client;
|
|
31685
31685
|
(_document$querySelect = document.querySelector("matter-dashboard-app")) === null || _document$querySelect === void 0 || _document$querySelect.renderRoot.appendChild(dialog);
|
|
@@ -32219,4 +32219,4 @@ var matterDashboardApp = /*#__PURE__*/Object.freeze({
|
|
|
32219
32219
|
__proto__: null
|
|
32220
32220
|
});
|
|
32221
32221
|
|
|
32222
|
-
export { A, i$2 as B, fireAndForget as C, D, EASING as E, handleAsync as F, c$4 as G, clientContext as H,
|
|
32222
|
+
export { A, i$2 as B, fireAndForget as C, D, EASING as E, handleAsync as F, c$4 as G, clientContext as H, showPromptDialog as I, showAlertDialog as J, matterDashboardApp as K, ListController as L, NavigableKeys as N, Validator$2 as V, __decorate as _, e$5 as a, getLastActivatableItem as b, createAnimationSignal as c, getFirstActivatableItem as d, e$6 as e, e$2 as f, getActiveItem as g, o as h, i$4 as i, b as j, i$7 as k, mixinOnReportValidity as l, mixinDelegatesAria as m, n$2 as n, o$3 as o, mixinConstraintValidation as p, mixinFormAssociated as q, r$2 as r, mixinElementInternals as s, t$1 as t, onReportValidity as u, u as v, redispatchEvent as w, getFormValue as x, createValidator as y, getValidityAnchor as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { k as i, G as c, H as clientContext, n, a as e, i as i$1, A, j as b, F as handleAsync, t } from './matter-dashboard-app-
|
|
1
|
+
import { k as i, G as c, H as clientContext, n, a as e, i as i$1, I as showPromptDialog, J as showAlertDialog, A, j as b, F as handleAsync, t } from './matter-dashboard-app-b1R3Pout.js';
|
|
2
2
|
import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
|
|
3
3
|
import './main.js';
|
|
4
4
|
|
|
@@ -239,9 +239,30 @@ let NodeBindingDialog = class extends i$1 {
|
|
|
239
239
|
const targetNodeId = rawBindings[index].node;
|
|
240
240
|
const endpoint = rawBindings[index].endpoint;
|
|
241
241
|
if (targetNodeId === void 0 || endpoint === void 0) return;
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
242
|
+
let aclCleanedUp = false;
|
|
243
|
+
try {
|
|
244
|
+
await this.removeNodeAtACLEntry(this.node.node_id, endpoint, targetNodeId);
|
|
245
|
+
aclCleanedUp = true;
|
|
246
|
+
} catch (aclError) {
|
|
247
|
+
const errorMessage = aclError instanceof Error ? aclError.message : String(aclError);
|
|
248
|
+
const proceed = await showPromptDialog({
|
|
249
|
+
title: "ACL cleanup failed",
|
|
250
|
+
text: `Could not clean up ACL on target node ${targetNodeId}: ${errorMessage}. The target node may no longer exist or be unreachable. Do you want to remove the binding anyway? Note: The target device may retain an outdated ACL entry.`,
|
|
251
|
+
confirmText: "Remove binding"
|
|
252
|
+
});
|
|
253
|
+
if (!proceed) return;
|
|
254
|
+
}
|
|
255
|
+
try {
|
|
256
|
+
const updatedBindings = this.removeBindingAtIndex(rawBindings, index);
|
|
257
|
+
await this.syncBindingUpdates(updatedBindings, index);
|
|
258
|
+
} catch (bindingError) {
|
|
259
|
+
const errorMessage = bindingError instanceof Error ? bindingError.message : String(bindingError);
|
|
260
|
+
await showAlertDialog({
|
|
261
|
+
title: "Binding removal failed",
|
|
262
|
+
text: `Failed to remove the binding: ${errorMessage}. ` + (aclCleanedUp ? "The ACL on the target device was already updated. The binding and ACL may now be out of sync." : "No changes were made.")
|
|
263
|
+
});
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
245
266
|
} catch (error) {
|
|
246
267
|
this.handleBindingDeletionError(error);
|
|
247
268
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter-server/dashboard",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.14-alpha.0-20260403-e9fca2c",
|
|
4
4
|
"description": "Dashboard for OHF Matter Server",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/matter-js/matterjs-server/issues"
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@lit/context": "^1.1.6",
|
|
39
39
|
"@material/web": "^2.4.1",
|
|
40
|
-
"@matter-server/ws-client": "0.5.
|
|
41
|
-
"@matter-server/custom-clusters": "0.5.
|
|
40
|
+
"@matter-server/ws-client": "0.5.14-alpha.0-20260403-e9fca2c",
|
|
41
|
+
"@matter-server/custom-clusters": "0.5.14-alpha.0-20260403-e9fca2c",
|
|
42
42
|
"@mdi/js": "^7.4.47",
|
|
43
43
|
"lit": "^3.3.2",
|
|
44
44
|
"tslib": "^2.8.1",
|
|
@@ -20,6 +20,7 @@ import { clientContext } from "../../../client/client-context.js";
|
|
|
20
20
|
import { handleAsync } from "../../../util/async-handler.js";
|
|
21
21
|
import { analyzeBatchResults, type MatterBatchResult } from "../../../util/matter-status.js";
|
|
22
22
|
import { preventDefault } from "../../../util/prevent_default.js";
|
|
23
|
+
import { showAlertDialog, showPromptDialog } from "../../dialog-box/show-dialog-box.js";
|
|
23
24
|
import {
|
|
24
25
|
AccessControlEntryDataTransformer,
|
|
25
26
|
AccessControlEntryStruct,
|
|
@@ -70,9 +71,39 @@ export class NodeBindingDialog extends LitElement {
|
|
|
70
71
|
const targetNodeId = rawBindings[index].node;
|
|
71
72
|
const endpoint = rawBindings[index].endpoint;
|
|
72
73
|
if (targetNodeId === undefined || endpoint === undefined) return;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
let aclCleanedUp = false;
|
|
75
|
+
try {
|
|
76
|
+
await this.removeNodeAtACLEntry(this.node!.node_id, endpoint, targetNodeId);
|
|
77
|
+
aclCleanedUp = true;
|
|
78
|
+
} catch (aclError) {
|
|
79
|
+
const errorMessage = aclError instanceof Error ? aclError.message : String(aclError);
|
|
80
|
+
const proceed = await showPromptDialog({
|
|
81
|
+
title: "ACL cleanup failed",
|
|
82
|
+
text:
|
|
83
|
+
`Could not clean up ACL on target node ${targetNodeId}: ${errorMessage}. ` +
|
|
84
|
+
"The target node may no longer exist or be unreachable. " +
|
|
85
|
+
"Do you want to remove the binding anyway? " +
|
|
86
|
+
"Note: The target device may retain an outdated ACL entry.",
|
|
87
|
+
confirmText: "Remove binding",
|
|
88
|
+
});
|
|
89
|
+
if (!proceed) return;
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const updatedBindings = this.removeBindingAtIndex(rawBindings, index);
|
|
93
|
+
await this.syncBindingUpdates(updatedBindings, index);
|
|
94
|
+
} catch (bindingError) {
|
|
95
|
+
const errorMessage = bindingError instanceof Error ? bindingError.message : String(bindingError);
|
|
96
|
+
await showAlertDialog({
|
|
97
|
+
title: "Binding removal failed",
|
|
98
|
+
text:
|
|
99
|
+
`Failed to remove the binding: ${errorMessage}. ` +
|
|
100
|
+
(aclCleanedUp
|
|
101
|
+
? "The ACL on the target device was already updated. " +
|
|
102
|
+
"The binding and ACL may now be out of sync."
|
|
103
|
+
: "No changes were made."),
|
|
104
|
+
});
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
76
107
|
} catch (error) {
|
|
77
108
|
this.handleBindingDeletionError(error);
|
|
78
109
|
}
|