Merge pull request #13226 from vvlladd28/bug/widger-settings/mutation-default-settings
Fix mutation of default widget settings
This commit is contained in:
commit
221a68c719
@ -40,7 +40,7 @@ export class AlarmCountWidgetSettingsComponent extends WidgetSettingsComponent {
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...countDefaultSettings(true)};
|
||||
return countDefaultSettings(true);
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -56,7 +56,7 @@ export class ActionButtonWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...actionButtonDefaultSettings};
|
||||
return actionButtonDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -54,7 +54,7 @@ export class CommandButtonWidgetSettingsComponent extends WidgetSettingsComponen
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...commandButtonDefaultSettings};
|
||||
return commandButtonDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -61,7 +61,7 @@ export class PowerButtonWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...powerButtonDefaultSettings};
|
||||
return powerButtonDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -77,7 +77,7 @@ export class SegmentedButtonWidgetSettingsComponent extends WidgetSettingsCompon
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...segmentedButtonDefaultSettings};
|
||||
return segmentedButtonDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -55,7 +55,7 @@ export class ToggleButtonWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...toggleButtonDefaultSettings};
|
||||
return toggleButtonDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -24,7 +24,6 @@ import {
|
||||
AggregatedValueCardKeyPosition,
|
||||
aggregatedValueCardKeyPositionTranslations
|
||||
} from '@home/components/widget/lib/cards/aggregated-value-card.models';
|
||||
import { constantColor } from '@shared/models/widget-settings.models';
|
||||
|
||||
@Component({
|
||||
selector: 'tb-aggregated-value-card-key-settings',
|
||||
@ -50,7 +49,7 @@ export class AggregatedValueCardKeySettingsComponent extends WidgetSettingsCompo
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...aggregatedValueCardDefaultKeySettings};
|
||||
return aggregatedValueCardDefaultKeySettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -44,7 +44,7 @@ export class AggregatedValueCardWidgetSettingsComponent extends WidgetSettingsCo
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...aggregatedValueCardDefaultSettings};
|
||||
return aggregatedValueCardDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -40,7 +40,7 @@ export class LabelCardWidgetSettingsComponent extends WidgetSettingsComponent {
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...labelCardWidgetDefaultSettings};
|
||||
return labelCardWidgetDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -43,7 +43,7 @@ export class LabelValueCardWidgetSettingsComponent extends WidgetSettingsCompone
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...labelValueCardWidgetDefaultSettings};
|
||||
return labelValueCardWidgetDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
///
|
||||
|
||||
import { Component } from "@angular/core";
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
|
||||
import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
|
||||
import { WidgetSettings, WidgetSettingsComponent } from "@shared/models/widget.models";
|
||||
import { AppState } from '@core/core.state';
|
||||
import { Store } from "@ngrx/store";
|
||||
@ -43,7 +43,7 @@ export class MobileAppQrCodeWidgetSettingsComponent extends WidgetSettingsCompon
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...mobileAppQrCodeWidgetDefaultSettings};
|
||||
return mobileAppQrCodeWidgetDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -57,7 +57,7 @@ export class ProgressBarWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...progressBarDefaultSettings};
|
||||
return progressBarDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -42,7 +42,7 @@ export class UnreadNotificationWidgetSettingsComponent extends WidgetSettingsCom
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...unreadNotificationDefaultSettings};
|
||||
return unreadNotificationDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -54,7 +54,7 @@ export class ValueChartCardWidgetSettingsComponent extends WidgetSettingsCompone
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...valueChartCardDefaultSettings};
|
||||
return valueChartCardDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -25,10 +25,10 @@ import {
|
||||
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { AppState } from '@core/core.state';
|
||||
import { formatValue, mergeDeep } from '@core/utils';
|
||||
import { formatValue } from '@core/utils';
|
||||
import { DateFormatProcessor, DateFormatSettings } from '@shared/models/widget-settings.models';
|
||||
import {
|
||||
barChartWithLabelsDefaultSettings, BarChartWithLabelsWidgetSettings
|
||||
barChartWithLabelsDefaultSettings
|
||||
} from '@home/components/widget/lib/chart/bar-chart-with-labels-widget.models';
|
||||
|
||||
@Component({
|
||||
@ -68,7 +68,7 @@ export class BarChartWithLabelsWidgetSettingsComponent extends WidgetSettingsCom
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return mergeDeep<BarChartWithLabelsWidgetSettings>({} as BarChartWithLabelsWidgetSettings, barChartWithLabelsDefaultSettings);
|
||||
return barChartWithLabelsDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -29,9 +29,11 @@ import {
|
||||
} from '@shared/models/widget.models';
|
||||
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
||||
import {
|
||||
DoughnutLayout, doughnutLayoutImages,
|
||||
DoughnutLayout,
|
||||
doughnutLayoutImages,
|
||||
doughnutLayouts,
|
||||
doughnutLayoutTranslations, horizontalDoughnutLayoutImages
|
||||
doughnutLayoutTranslations,
|
||||
horizontalDoughnutLayoutImages
|
||||
} from '@home/components/widget/lib/chart/doughnut-widget.models';
|
||||
import {
|
||||
chartLabelPositions,
|
||||
@ -44,7 +46,7 @@ import {
|
||||
pieChartLabelPositionTranslations
|
||||
} from '@home/components/widget/lib/chart/chart.models';
|
||||
import { radarChartShapes, radarChartShapeTranslations } from '@home/components/widget/lib/chart/radar-chart.models';
|
||||
import { formatValue, isDefinedAndNotNull, mergeDeep } from '@core/utils';
|
||||
import { formatValue, isDefinedAndNotNull } from '@core/utils';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { AppState } from '@core/core.state';
|
||||
import { WidgetConfigComponentData } from '@home/models/widget-component.models';
|
||||
@ -116,7 +118,7 @@ export abstract class LatestChartWidgetSettingsComponent<S extends LatestChartWi
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return mergeDeep<S>({} as S, this.defaultLatestChartSettings());
|
||||
return this.defaultLatestChartSettings();
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -25,11 +25,8 @@ import {
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { AppState } from '@core/core.state';
|
||||
import { formatValue, mergeDeepIgnoreArray } from '@core/utils';
|
||||
import {
|
||||
rangeChartDefaultSettings,
|
||||
RangeChartWidgetSettings
|
||||
} from '@home/components/widget/lib/chart/range-chart-widget.models';
|
||||
import { formatValue } from '@core/utils';
|
||||
import { rangeChartDefaultSettings } from '@home/components/widget/lib/chart/range-chart-widget.models';
|
||||
import { DateFormatProcessor, DateFormatSettings } from '@shared/models/widget-settings.models';
|
||||
import {
|
||||
lineSeriesStepTypes,
|
||||
@ -99,7 +96,7 @@ export class RangeChartWidgetSettingsComponent extends WidgetSettingsComponent {
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return mergeDeepIgnoreArray<RangeChartWidgetSettings>({} as RangeChartWidgetSettings, rangeChartDefaultSettings);
|
||||
return rangeChartDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -19,13 +19,16 @@ import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.m
|
||||
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { AppState } from '@core/core.state';
|
||||
import { isDefinedAndNotNull, mergeDeep } from '@core/utils';
|
||||
import { isDefinedAndNotNull } from '@core/utils';
|
||||
import {
|
||||
timeSeriesChartKeyDefaultSettings,
|
||||
TimeSeriesChartKeySettings,
|
||||
TimeSeriesChartSeriesType,
|
||||
timeSeriesChartSeriesTypes,
|
||||
timeSeriesChartSeriesTypeTranslations, TimeSeriesChartType, timeSeriesChartTypeTranslations, TimeSeriesChartYAxisId
|
||||
timeSeriesChartSeriesTypeTranslations,
|
||||
TimeSeriesChartType,
|
||||
timeSeriesChartTypeTranslations,
|
||||
TimeSeriesChartYAxisId
|
||||
} from '@home/components/widget/lib/chart/time-series-chart.models';
|
||||
import { WidgetConfigComponentData } from '@home/models/widget-component.models';
|
||||
import { TimeSeriesChartWidgetSettings } from '@home/components/widget/lib/chart/time-series-chart-widget.models';
|
||||
@ -79,8 +82,7 @@ export class TimeSeriesChartKeySettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return mergeDeep<TimeSeriesChartKeySettings>({} as TimeSeriesChartKeySettings,
|
||||
timeSeriesChartKeyDefaultSettings);
|
||||
return timeSeriesChartKeyDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -26,11 +26,10 @@ import {
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { AppState } from '@core/core.state';
|
||||
import { formatValue, isDefinedAndNotNull, mergeDeep } from '@core/utils';
|
||||
import { formatValue, isDefinedAndNotNull } from '@core/utils';
|
||||
import { DateFormatProcessor, DateFormatSettings } from '@shared/models/widget-settings.models';
|
||||
import {
|
||||
timeSeriesChartWidgetDefaultSettings,
|
||||
TimeSeriesChartWidgetSettings
|
||||
timeSeriesChartWidgetDefaultSettings
|
||||
} from '@home/components/widget/lib/chart/time-series-chart-widget.models';
|
||||
import {
|
||||
TimeSeriesChartKeySettings,
|
||||
@ -120,7 +119,7 @@ export class TimeSeriesChartWidgetSettingsComponent extends WidgetSettingsCompon
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return mergeDeep<TimeSeriesChartWidgetSettings>({} as TimeSeriesChartWidgetSettings, timeSeriesChartWidgetDefaultSettings);
|
||||
return timeSeriesChartWidgetDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -61,7 +61,7 @@ export class SingleSwitchWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...singleSwitchDefaultSettings};
|
||||
return singleSwitchDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -67,7 +67,7 @@ export class SliderWidgetSettingsComponent extends WidgetSettingsComponent {
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...sliderWidgetDefaultSettings};
|
||||
return sliderWidgetDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -72,7 +72,7 @@ export class ValueStepperWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...valueStepperDefaultSettings};
|
||||
return valueStepperDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -40,7 +40,7 @@ export class EntityCountWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...countDefaultSettings(false)};
|
||||
return countDefaultSettings(false);
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -21,7 +21,8 @@ import { Store } from '@ngrx/store';
|
||||
import { AppState } from '@core/core.state';
|
||||
import { formatValue } from '@core/utils';
|
||||
import {
|
||||
batteryLevelDefaultSettings, BatteryLevelLayout,
|
||||
batteryLevelDefaultSettings,
|
||||
BatteryLevelLayout,
|
||||
batteryLevelLayoutImages,
|
||||
batteryLevelLayouts,
|
||||
batteryLevelLayoutTranslations
|
||||
@ -68,7 +69,7 @@ export class BatteryLevelWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...batteryLevelDefaultSettings};
|
||||
return batteryLevelDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -57,7 +57,7 @@ export class SignalStrengthWidgetSettingsComponent extends WidgetSettingsCompone
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...signalStrengthDefaultSettings};
|
||||
return signalStrengthDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -64,7 +64,7 @@ export class StatusWidgetSettingsComponent extends WidgetSettingsComponent {
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...statusWidgetDefaultSettings};
|
||||
return statusWidgetDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -40,9 +40,7 @@ export class MapWidgetSettingsLegacyComponent extends WidgetSettingsComponent {
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {
|
||||
...defaultMapSettings
|
||||
};
|
||||
return defaultMapSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -40,9 +40,7 @@ export class RouteMapWidgetSettingsComponent extends WidgetSettingsComponent {
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {
|
||||
...defaultMapSettings
|
||||
};
|
||||
return defaultMapSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -57,9 +57,7 @@ export class TripAnimationWidgetSettingsComponent extends WidgetSettingsComponen
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {
|
||||
...defaultTripAnimationSettings
|
||||
};
|
||||
return defaultTripAnimationSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -19,8 +19,8 @@ import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.m
|
||||
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { AppState } from '@core/core.state';
|
||||
import { isDefinedAndNotNull, mergeDeepIgnoreArray } from '@core/utils';
|
||||
import { mapWidgetDefaultSettings, MapWidgetSettings } from '@home/components/widget/lib/maps/map-widget.models';
|
||||
import { isDefinedAndNotNull } from '@core/utils';
|
||||
import { mapWidgetDefaultSettings } from '@home/components/widget/lib/maps/map-widget.models';
|
||||
import { WidgetConfigComponentData } from '@home/models/widget-component.models';
|
||||
|
||||
@Component({
|
||||
@ -53,7 +53,7 @@ export class MapWidgetSettingsComponent extends WidgetSettingsComponent {
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return mergeDeepIgnoreArray<MapWidgetSettings>({} as MapWidgetSettings, mapWidgetDefaultSettings);
|
||||
return mapWidgetDefaultSettings;
|
||||
}
|
||||
|
||||
protected prepareInputSettings(settings: WidgetSettings): WidgetSettings {
|
||||
|
||||
@ -48,7 +48,7 @@ export class ScadaSymbolWidgetSettingsComponent extends WidgetSettingsComponent
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...scadaSymbolWidgetDefaultSettings};
|
||||
return scadaSymbolWidgetDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -70,7 +70,7 @@ export class WindSpeedDirectionWidgetSettingsComponent extends WidgetSettingsCom
|
||||
}
|
||||
|
||||
protected defaultSettings(): WidgetSettings {
|
||||
return {...windSpeedDirectionDefaultSettings};
|
||||
return windSpeedDirectionDefaultSettings;
|
||||
}
|
||||
|
||||
protected onSettingsSet(settings: WidgetSettings) {
|
||||
|
||||
@ -37,17 +37,19 @@ import { AbstractControl, UntypedFormGroup } from '@angular/forms';
|
||||
import { Observable } from 'rxjs';
|
||||
import { Dashboard } from '@shared/models/dashboard.models';
|
||||
import { IAliasController } from '@core/api/widget-api.models';
|
||||
import { isNotEmptyStr, mergeDeepIgnoreArray } from '@core/utils';
|
||||
import { isNotEmptyStr, mergeDeep, mergeDeepIgnoreArray } from '@core/utils';
|
||||
import { WidgetConfigComponentData } from '@home/models/widget-component.models';
|
||||
import { ComponentStyle, Font, TimewindowStyle } from '@shared/models/widget-settings.models';
|
||||
import { NULL_UUID } from '@shared/models/id/has-uuid';
|
||||
import { EntityInfoData, HasTenantId, HasVersion } from '@shared/models/entity.models';
|
||||
import { DataKeysCallbacks, DataKeySettingsFunction } from '@home/components/widget/lib/settings/common/key/data-keys.component.models';
|
||||
import {
|
||||
DataKeysCallbacks,
|
||||
DataKeySettingsFunction
|
||||
} from '@home/components/widget/lib/settings/common/key/data-keys.component.models';
|
||||
import { WidgetConfigCallbacks } from '@home/components/widget/config/widget-config.component.models';
|
||||
import { TbFunction } from '@shared/models/js-function.models';
|
||||
import { FormProperty, jsonFormSchemaToFormProperties } from '@shared/models/dynamic-form.models';
|
||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
import { Device } from '@shared/models/device.models';
|
||||
|
||||
export enum widgetType {
|
||||
timeseries = 'timeseries',
|
||||
@ -1000,9 +1002,9 @@ export abstract class WidgetSettingsComponent extends PageComponent implements
|
||||
|
||||
set settings(value: WidgetSettings) {
|
||||
if (!value) {
|
||||
this.settingsValue = this.defaultSettings();
|
||||
this.settingsValue = mergeDeep({}, this.defaultSettings());
|
||||
} else {
|
||||
this.settingsValue = mergeDeepIgnoreArray(this.defaultSettings(), value);
|
||||
this.settingsValue = mergeDeepIgnoreArray({}, this.defaultSettings(), value);
|
||||
}
|
||||
if (!this.settingsSet) {
|
||||
this.settingsSet = true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user