getCalculatedFieldArgumentsEditorCompleter to models
This commit is contained in:
parent
0004cdeaf9
commit
3bc68e8e21
@ -36,16 +36,12 @@ import { EntityDebugSettingsPanelComponent } from '@home/components/entity/debug
|
||||
import { CalculatedFieldsService } from '@core/http/calculated-fields.service';
|
||||
import { catchError, filter, switchMap, tap } from 'rxjs/operators';
|
||||
import {
|
||||
ArgumentType,
|
||||
CalculatedField,
|
||||
CalculatedFieldArgument,
|
||||
CalculatedFieldEventArguments,
|
||||
CalculatedFieldDebugDialogData,
|
||||
CalculatedFieldDialogData,
|
||||
CalculatedFieldRollingValueArgumentAutocomplete,
|
||||
CalculatedFieldTestScriptDialogData,
|
||||
CalculatedFieldAttributeValueArgumentAutocomplete,
|
||||
CalculatedFieldLatestTelemetryArgumentAutocomplete,
|
||||
getCalculatedFieldArgumentsEditorCompleter,
|
||||
} from '@shared/models/calculated-field.models';
|
||||
import {
|
||||
CalculatedFieldDebugDialogComponent,
|
||||
@ -219,7 +215,6 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
|
||||
additionalDebugActionConfig: this.additionalDebugActionConfig,
|
||||
getTestScriptDialogFn: this.getTestScriptDialog.bind(this),
|
||||
isDirty,
|
||||
getArgumentsEditorCompleterFn: this.getArgumentsEditorCompleter,
|
||||
},
|
||||
enterAnimationDuration: isDirty ? 0 : null,
|
||||
})
|
||||
@ -287,7 +282,7 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
|
||||
data: {
|
||||
arguments: resultArguments,
|
||||
expression: calculatedField.configuration.expression,
|
||||
argumentsEditorCompleter: this.getArgumentsEditorCompleter(calculatedField.configuration.arguments),
|
||||
argumentsEditorCompleter: getCalculatedFieldArgumentsEditorCompleter(calculatedField.configuration.arguments),
|
||||
openCalculatedFieldEdit
|
||||
}
|
||||
}).afterClosed()
|
||||
@ -300,21 +295,4 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
private getArgumentsEditorCompleter(argumentsObj: Record<string, CalculatedFieldArgument>): TbEditorCompleter {
|
||||
return new TbEditorCompleter(Object.keys(argumentsObj).reduce((acc, key) => {
|
||||
switch (argumentsObj[key].refEntityKey.type) {
|
||||
case ArgumentType.Attribute:
|
||||
acc[key] = CalculatedFieldAttributeValueArgumentAutocomplete;
|
||||
break;
|
||||
case ArgumentType.LatestTelemetry:
|
||||
acc[key] = CalculatedFieldLatestTelemetryArgumentAutocomplete;
|
||||
break;
|
||||
case ArgumentType.Rolling:
|
||||
acc[key] = CalculatedFieldRollingValueArgumentAutocomplete;
|
||||
break;
|
||||
}
|
||||
return acc;
|
||||
}, {}))
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,6 +27,7 @@ import {
|
||||
CalculatedFieldDialogData,
|
||||
CalculatedFieldType,
|
||||
CalculatedFieldTypeTranslations,
|
||||
getCalculatedFieldArgumentsEditorCompleter,
|
||||
OutputType,
|
||||
OutputTypeTranslations
|
||||
} from '@shared/models/calculated-field.models';
|
||||
@ -69,7 +70,7 @@ export class CalculatedFieldDialogComponent extends DialogComponent<CalculatedFi
|
||||
argumentsEditorCompleter$ = this.configFormGroup.get('arguments').valueChanges
|
||||
.pipe(
|
||||
startWith(this.data.value?.configuration?.arguments ?? {}),
|
||||
map(argumentsObj => this.data.getArgumentsEditorCompleterFn(argumentsObj))
|
||||
map(argumentsObj => getCalculatedFieldArgumentsEditorCompleter(argumentsObj))
|
||||
);
|
||||
|
||||
additionalDebugActionConfig = this.data.value?.id ? {
|
||||
|
||||
@ -130,8 +130,6 @@ export interface CalculatedFieldArgumentValue extends CalculatedFieldArgument {
|
||||
|
||||
export type CalculatedFieldTestScriptFn = (calculatedField: CalculatedField, argumentsObj?: Record<string, unknown>, closeAllOnSave?: boolean) => Observable<string>;
|
||||
|
||||
export type CalculatedFieldArgumentsEditorCompleterFn = (argumentsObj: Record<string, CalculatedFieldArgument>) => TbEditorCompleter;
|
||||
|
||||
export interface CalculatedFieldDialogData {
|
||||
value?: CalculatedField;
|
||||
buttonTitle: string;
|
||||
@ -142,7 +140,6 @@ export interface CalculatedFieldDialogData {
|
||||
additionalDebugActionConfig: AdditionalDebugActionConfig<(calculatedField: CalculatedField) => void>;
|
||||
getTestScriptDialogFn: CalculatedFieldTestScriptFn;
|
||||
isDirty?: boolean;
|
||||
getArgumentsEditorCompleterFn: CalculatedFieldArgumentsEditorCompleterFn;
|
||||
}
|
||||
|
||||
export interface CalculatedFieldDebugDialogData {
|
||||
@ -283,3 +280,20 @@ export const CalculatedFieldRollingValueArgumentAutocomplete = {
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
export const getCalculatedFieldArgumentsEditorCompleter = (argumentsObj: Record<string, CalculatedFieldArgument>): TbEditorCompleter => {
|
||||
return new TbEditorCompleter(Object.keys(argumentsObj).reduce((acc, key) => {
|
||||
switch (argumentsObj[key].refEntityKey.type) {
|
||||
case ArgumentType.Attribute:
|
||||
acc[key] = CalculatedFieldAttributeValueArgumentAutocomplete;
|
||||
break;
|
||||
case ArgumentType.LatestTelemetry:
|
||||
acc[key] = CalculatedFieldLatestTelemetryArgumentAutocomplete;
|
||||
break;
|
||||
case ArgumentType.Rolling:
|
||||
acc[key] = CalculatedFieldRollingValueArgumentAutocomplete;
|
||||
break;
|
||||
}
|
||||
return acc;
|
||||
}, {}))
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user