From b25e2a556fd892e2a46908b859c5cf094057ddfa Mon Sep 17 00:00:00 2001 From: mpetrov Date: Thu, 4 Jul 2024 15:21:13 +0300 Subject: [PATCH] refactoring --- .../gateway/gateway-connectors.component.ts | 25 -- .../widget/widget-components.module.ts | 273 +++++++++--------- .../validators/form-array.validators.ts | 24 -- 3 files changed, 133 insertions(+), 189 deletions(-) delete mode 100644 ui-ngx/src/app/shared/validators/form-array.validators.ts diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts index 92c1b96625..e5fbfa4ab6 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts @@ -96,7 +96,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie @ViewChild('nameInput') nameInput: ElementRef; @ViewChild(MatSort, {static: false}) sort: MatSort; - @ViewChildren(MatTab) tabs: QueryList; pageLink: PageLink; @@ -120,8 +119,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie initialConnector: GatewayConnector; - private tabsCountSubject = new BehaviorSubject(0); - private inactiveConnectors: Array; private attributeDataSource: AttributeDatasource; @@ -273,8 +270,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie } }); } - this.observeModeChange(); - this.observeTabsChanges(); } ngOnDestroy(): void { @@ -713,26 +708,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie return of(true); } - private observeTabsChanges(): void { - this.tabs.changes - .pipe( - tap(() => this.tabsCountSubject.next(this.tabs.length)), - takeUntil(this.destroy$), - ) - .subscribe(); - } - - private observeModeChange(): void { - this.connectorForm.get('mode').valueChanges - .pipe( - distinctUntilChanged(), - filter(Boolean), - tap(mode => this.updateConnector({...this.initialConnector, basicConfig: this.initialConnector?.configurationJson || {}, mode })), - takeUntil(this.destroy$), - ) - .subscribe(); - } - private setFormValue(connector: GatewayConnector): void { if (this.connectorForm.disabled) { this.connectorForm.enable(); diff --git a/ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts b/ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts index 86fff8fa62..3123010b76 100644 --- a/ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts @@ -111,85 +111,78 @@ import { TypeValuePanelComponent, BrokerConfigControlComponent, WorkersConfigControlComponent, + GeneralConfigComponent, + MqttBasicConfigComponent, + OpcUaBasicConfigComponent, } from '@home/components/widget/lib/gateway/connectors-configuration/public-api'; -import { - GeneralConfigComponent -} from '@home/components/widget/lib/gateway/connectors-configuration/general-config/general-config.component'; -import { - MqttBasicConfigComponent -} from '@home/components/widget/lib/gateway/connectors-configuration/mqtt-basic-config/mqtt-basic-config.component'; -import { - OpcUaBasicConfigComponent -} from '@home/components/widget/lib/gateway/connectors-configuration/opc-ua-basic-config/opc-ua-basic-config.component'; @NgModule({ - declarations: - [ - DisplayColumnsPanelComponent, - EntitiesTableWidgetComponent, - AlarmsTableWidgetComponent, - TimeseriesTableWidgetComponent, - EntitiesHierarchyWidgetComponent, - EdgesOverviewWidgetComponent, - DateRangeNavigatorWidgetComponent, - DateRangeNavigatorPanelComponent, - JsonInputWidgetComponent, - MultipleInputWidgetComponent, - TripAnimationComponent, - PhotoCameraInputWidgetComponent, - GatewayFormComponent, - NavigationCardsWidgetComponent, - NavigationCardWidgetComponent, - QrCodeWidgetComponent, - MobileAppQrcodeWidgetComponent, - MarkdownWidgetComponent, - SelectEntityDialogComponent, - LegendComponent, - FlotWidgetComponent, - GatewayConnectorComponent, - AddConnectorDialogComponent, - MappingDialogComponent, - DeviceInfoTableComponent, - MappingDataKeysPanelComponent, - TypeValuePanelComponent, - GatewayLogsComponent, - GatewayStatisticsComponent, - GatewayServiceRPCComponent, - GatewayServiceRPCConnectorComponent, - GatewayServiceRPCConnectorTemplatesComponent, - DeviceGatewayCommandComponent, - GatewayConfigurationComponent, - GatewayRemoteConfigurationDialogComponent, - GatewayServiceRPCConnectorTemplateDialogComponent, - EllipsisChipListDirective, - ValueCardWidgetComponent, - AggregatedValueCardWidgetComponent, - CountWidgetComponent, - BatteryLevelWidgetComponent, - WindSpeedDirectionWidgetComponent, - SignalStrengthWidgetComponent, - ValueChartCardWidgetComponent, - ProgressBarWidgetComponent, - LiquidLevelWidgetComponent, - DoughnutWidgetComponent, - RangeChartWidgetComponent, - BarChartWithLabelsWidgetComponent, - SingleSwitchWidgetComponent, - ActionButtonWidgetComponent, - CommandButtonWidgetComponent, - PowerButtonWidgetComponent, - SliderWidgetComponent, - ToggleButtonWidgetComponent, - TimeSeriesChartWidgetComponent, - StatusWidgetComponent, - LatestChartComponent, - PieChartWidgetComponent, - BarChartWidgetComponent, - PolarAreaWidgetComponent, - RadarChartWidgetComponent, - LabelCardWidgetComponent, - LabelValueCardWidgetComponent - ], + declarations: [ + DisplayColumnsPanelComponent, + EntitiesTableWidgetComponent, + AlarmsTableWidgetComponent, + TimeseriesTableWidgetComponent, + EntitiesHierarchyWidgetComponent, + EdgesOverviewWidgetComponent, + DateRangeNavigatorWidgetComponent, + DateRangeNavigatorPanelComponent, + JsonInputWidgetComponent, + MultipleInputWidgetComponent, + TripAnimationComponent, + PhotoCameraInputWidgetComponent, + GatewayFormComponent, + NavigationCardsWidgetComponent, + NavigationCardWidgetComponent, + QrCodeWidgetComponent, + MobileAppQrcodeWidgetComponent, + MarkdownWidgetComponent, + SelectEntityDialogComponent, + LegendComponent, + FlotWidgetComponent, + GatewayConnectorComponent, + AddConnectorDialogComponent, + MappingDialogComponent, + DeviceInfoTableComponent, + MappingDataKeysPanelComponent, + TypeValuePanelComponent, + GatewayLogsComponent, + GatewayStatisticsComponent, + GatewayServiceRPCComponent, + GatewayServiceRPCConnectorComponent, + GatewayServiceRPCConnectorTemplatesComponent, + DeviceGatewayCommandComponent, + GatewayConfigurationComponent, + GatewayRemoteConfigurationDialogComponent, + GatewayServiceRPCConnectorTemplateDialogComponent, + EllipsisChipListDirective, + ValueCardWidgetComponent, + AggregatedValueCardWidgetComponent, + CountWidgetComponent, + BatteryLevelWidgetComponent, + WindSpeedDirectionWidgetComponent, + SignalStrengthWidgetComponent, + ValueChartCardWidgetComponent, + ProgressBarWidgetComponent, + LiquidLevelWidgetComponent, + DoughnutWidgetComponent, + RangeChartWidgetComponent, + BarChartWithLabelsWidgetComponent, + SingleSwitchWidgetComponent, + ActionButtonWidgetComponent, + CommandButtonWidgetComponent, + PowerButtonWidgetComponent, + SliderWidgetComponent, + ToggleButtonWidgetComponent, + TimeSeriesChartWidgetComponent, + StatusWidgetComponent, + LatestChartComponent, + PieChartWidgetComponent, + BarChartWidgetComponent, + PolarAreaWidgetComponent, + RadarChartWidgetComponent, + LabelCardWidgetComponent, + LabelValueCardWidgetComponent + ], imports: [ CommonModule, SharedModule, @@ -206,70 +199,70 @@ import { MappingTableComponent, OpcUaBasicConfigComponent, ], - exports: [ - EntitiesTableWidgetComponent, - AlarmsTableWidgetComponent, - TimeseriesTableWidgetComponent, - EntitiesHierarchyWidgetComponent, - EdgesOverviewWidgetComponent, - RpcWidgetsModule, - HomePageWidgetsModule, - DateRangeNavigatorWidgetComponent, - JsonInputWidgetComponent, - MultipleInputWidgetComponent, - TripAnimationComponent, - PhotoCameraInputWidgetComponent, - GatewayFormComponent, - NavigationCardsWidgetComponent, - NavigationCardWidgetComponent, - QrCodeWidgetComponent, - MobileAppQrcodeWidgetComponent, - MarkdownWidgetComponent, - LegendComponent, - FlotWidgetComponent, - GatewayConnectorComponent, - AddConnectorDialogComponent, - MappingDialogComponent, - DeviceInfoTableComponent, - MappingDataKeysPanelComponent, - TypeValuePanelComponent, - GatewayLogsComponent, - GatewayServiceRPCConnectorComponent, - GatewayServiceRPCConnectorTemplatesComponent, - EllipsisChipListDirective, - GatewayStatisticsComponent, - GatewayServiceRPCComponent, - DeviceGatewayCommandComponent, - GatewayConfigurationComponent, - GatewayRemoteConfigurationDialogComponent, - GatewayServiceRPCConnectorTemplateDialogComponent, - ValueCardWidgetComponent, - AggregatedValueCardWidgetComponent, - CountWidgetComponent, - BatteryLevelWidgetComponent, - WindSpeedDirectionWidgetComponent, - SignalStrengthWidgetComponent, - ValueChartCardWidgetComponent, - ProgressBarWidgetComponent, - LiquidLevelWidgetComponent, - DoughnutWidgetComponent, - RangeChartWidgetComponent, - BarChartWithLabelsWidgetComponent, - SingleSwitchWidgetComponent, - ActionButtonWidgetComponent, - CommandButtonWidgetComponent, - PowerButtonWidgetComponent, - SliderWidgetComponent, - ToggleButtonWidgetComponent, - TimeSeriesChartWidgetComponent, - StatusWidgetComponent, - PieChartWidgetComponent, - BarChartWidgetComponent, - PolarAreaWidgetComponent, - RadarChartWidgetComponent, - LabelCardWidgetComponent, - LabelValueCardWidgetComponent - ], + exports: [ + EntitiesTableWidgetComponent, + AlarmsTableWidgetComponent, + TimeseriesTableWidgetComponent, + EntitiesHierarchyWidgetComponent, + EdgesOverviewWidgetComponent, + RpcWidgetsModule, + HomePageWidgetsModule, + DateRangeNavigatorWidgetComponent, + JsonInputWidgetComponent, + MultipleInputWidgetComponent, + TripAnimationComponent, + PhotoCameraInputWidgetComponent, + GatewayFormComponent, + NavigationCardsWidgetComponent, + NavigationCardWidgetComponent, + QrCodeWidgetComponent, + MobileAppQrcodeWidgetComponent, + MarkdownWidgetComponent, + LegendComponent, + FlotWidgetComponent, + GatewayConnectorComponent, + AddConnectorDialogComponent, + MappingDialogComponent, + DeviceInfoTableComponent, + MappingDataKeysPanelComponent, + TypeValuePanelComponent, + GatewayLogsComponent, + GatewayServiceRPCConnectorComponent, + GatewayServiceRPCConnectorTemplatesComponent, + EllipsisChipListDirective, + GatewayStatisticsComponent, + GatewayServiceRPCComponent, + DeviceGatewayCommandComponent, + GatewayConfigurationComponent, + GatewayRemoteConfigurationDialogComponent, + GatewayServiceRPCConnectorTemplateDialogComponent, + ValueCardWidgetComponent, + AggregatedValueCardWidgetComponent, + CountWidgetComponent, + BatteryLevelWidgetComponent, + WindSpeedDirectionWidgetComponent, + SignalStrengthWidgetComponent, + ValueChartCardWidgetComponent, + ProgressBarWidgetComponent, + LiquidLevelWidgetComponent, + DoughnutWidgetComponent, + RangeChartWidgetComponent, + BarChartWithLabelsWidgetComponent, + SingleSwitchWidgetComponent, + ActionButtonWidgetComponent, + CommandButtonWidgetComponent, + PowerButtonWidgetComponent, + SliderWidgetComponent, + ToggleButtonWidgetComponent, + TimeSeriesChartWidgetComponent, + StatusWidgetComponent, + PieChartWidgetComponent, + BarChartWidgetComponent, + PolarAreaWidgetComponent, + RadarChartWidgetComponent, + LabelCardWidgetComponent, + LabelValueCardWidgetComponent + ], providers: [ {provide: WIDGET_COMPONENTS_MODULE_TOKEN, useValue: WidgetComponentsModule } ] diff --git a/ui-ngx/src/app/shared/validators/form-array.validators.ts b/ui-ngx/src/app/shared/validators/form-array.validators.ts deleted file mode 100644 index d7358d58d6..0000000000 --- a/ui-ngx/src/app/shared/validators/form-array.validators.ts +++ /dev/null @@ -1,24 +0,0 @@ -/// -/// Copyright © 2016-2024 The Thingsboard Authors -/// -/// Licensed under the Apache License, Version 2.0 (the "License"); -/// you may not use this file except in compliance with the License. -/// You may obtain a copy of the License at -/// -/// http://www.apache.org/licenses/LICENSE-2.0 -/// -/// Unless required by applicable law or agreed to in writing, software -/// distributed under the License is distributed on an "AS IS" BASIS, -/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -/// See the License for the specific language governing permissions and -/// limitations under the License. -/// - -import { UntypedFormArray, ValidatorFn } from '@angular/forms'; - -export function validateArrayIsNotEmpty(): ValidatorFn { - return (formArray: UntypedFormArray): { formArrayIsEmpty: boolean } => { - const length = formArray.length; - return length ? null : { formArrayIsEmpty: true }; - }; -}