diff --git a/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts b/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts index f635d6232a..05e23fade9 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts @@ -59,6 +59,8 @@ export class ZHANetworkVisualizationPage extends LitElement { private _autoZoom = true; + private _enablePhysics = true; + protected firstUpdated(changedProperties: PropertyValues): void { super.firstUpdated(changedProperties); @@ -184,11 +186,21 @@ export class ZHANetworkVisualizationPage extends LitElement { )} > + + ${this.hass!.localize( "ui.panel.config.zha.visualization.refresh_topology" @@ -374,10 +386,28 @@ export class ZHANetworkVisualizationPage extends LitElement { return false; }; - private _handleCheckboxChange(ev: Event) { + private _handleAutoZoomCheckboxChange(ev: Event) { this._autoZoom = (ev.target as HaCheckbox).checked; } + private _handlePhysicsCheckboxChange(ev: Event) { + this._enablePhysics = (ev.target as HaCheckbox).checked; + + this._network!.setOptions( + this._enablePhysics + ? { + physics: { + barnesHut: { + springConstant: 0, + avoidOverlap: 10, + damping: 0.09, + }, + }, + } + : { physics: false } + ); + } + static get styles(): CSSResultGroup { return [ css` diff --git a/src/translations/en.json b/src/translations/en.json index c635f8529c..01d8f2400b 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -2762,6 +2762,7 @@ "highlight_label": "Highlight Devices", "zoom_label": "Zoom To Device", "auto_zoom": "Auto Zoom", + "enable_physics": "Enable Physics", "refresh_topology": "Refresh Topology" }, "group_binding": {