feat(eco-view-peripherals): encapsulate networkRanges as internal @state and add public getter/setter methods

This commit is contained in:
2026-01-12 12:04:13 +00:00
parent aa7dcf5339
commit 0e9a025d95
3 changed files with 24 additions and 2 deletions

View File

@@ -1,5 +1,13 @@
# Changelog # Changelog
## 2026-01-12 - 3.36.0 - feat(eco-view-peripherals)
encapsulate networkRanges as internal @state and add public getter/setter methods
- Replaced @property({ type: Array }) with @state() for networkRanges to treat it as internal reactive state.
- Added setNetworkRanges(ranges: INetworkRange[]) and getNetworkRanges(): INetworkRange[] to provide a controlled public API for updating and reading network ranges.
- Methods use array spread to return/copy arrays, preventing external mutation of internal state.
- Added JSDoc comments for the new methods.
## 2026-01-12 - 3.35.0 - feat(peripherals) ## 2026-01-12 - 3.35.0 - feat(peripherals)
Add peripherals settings panel with network range management, network scanning, and manual device probe; update peripheral types and adjust UI/styling; overhaul README with expanded docs, quick start, and updated company/contact information Add peripherals settings panel with network range management, network scanning, and manual device probe; update peripheral types and adjust UI/styling; overhaul README with expanded docs, quick start, and updated company/contact information

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@ecobridge.xyz/catalog', name: '@ecobridge.xyz/catalog',
version: '3.35.0', version: '3.36.0',
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.' description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
} }

View File

@@ -527,12 +527,26 @@ export class EcoViewPeripherals extends DeesElement {
@property({ type: String }) @property({ type: String })
accessor activeCategory: TPeripheralCategory = 'all'; accessor activeCategory: TPeripheralCategory = 'all';
@property({ type: Array }) @state()
accessor networkRanges: INetworkRange[] = []; accessor networkRanges: INetworkRange[] = [];
@state() @state()
accessor isScanning = false; accessor isScanning = false;
/**
* Set the initial network ranges (e.g., loaded from backend)
*/
public setNetworkRanges(ranges: INetworkRange[]): void {
this.networkRanges = [...ranges];
}
/**
* Get the current network ranges
*/
public getNetworkRanges(): INetworkRange[] {
return [...this.networkRanges];
}
@state() @state()
accessor newNetworkInput = ''; accessor newNetworkInput = '';