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 { CalculatedFieldsService } from '@core/http/calculated-fields.service';
|
||||||
import { catchError, filter, switchMap, tap } from 'rxjs/operators';
|
import { catchError, filter, switchMap, tap } from 'rxjs/operators';
|
||||||
import {
|
import {
|
||||||
ArgumentType,
|
|
||||||
CalculatedField,
|
CalculatedField,
|
||||||
CalculatedFieldArgument,
|
|
||||||
CalculatedFieldEventArguments,
|
CalculatedFieldEventArguments,
|
||||||
CalculatedFieldDebugDialogData,
|
CalculatedFieldDebugDialogData,
|
||||||
CalculatedFieldDialogData,
|
CalculatedFieldDialogData,
|
||||||
CalculatedFieldRollingValueArgumentAutocomplete,
|
|
||||||
CalculatedFieldTestScriptDialogData,
|
CalculatedFieldTestScriptDialogData,
|
||||||
CalculatedFieldAttributeValueArgumentAutocomplete,
|
getCalculatedFieldArgumentsEditorCompleter,
|
||||||
CalculatedFieldLatestTelemetryArgumentAutocomplete,
|
|
||||||
} from '@shared/models/calculated-field.models';
|
} from '@shared/models/calculated-field.models';
|
||||||
import {
|
import {
|
||||||
CalculatedFieldDebugDialogComponent,
|
CalculatedFieldDebugDialogComponent,
|
||||||
@ -219,7 +215,6 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
|
|||||||
additionalDebugActionConfig: this.additionalDebugActionConfig,
|
additionalDebugActionConfig: this.additionalDebugActionConfig,
|
||||||
getTestScriptDialogFn: this.getTestScriptDialog.bind(this),
|
getTestScriptDialogFn: this.getTestScriptDialog.bind(this),
|
||||||
isDirty,
|
isDirty,
|
||||||
getArgumentsEditorCompleterFn: this.getArgumentsEditorCompleter,
|
|
||||||
},
|
},
|
||||||
enterAnimationDuration: isDirty ? 0 : null,
|
enterAnimationDuration: isDirty ? 0 : null,
|
||||||
})
|
})
|
||||||
@ -287,7 +282,7 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
|
|||||||
data: {
|
data: {
|
||||||
arguments: resultArguments,
|
arguments: resultArguments,
|
||||||
expression: calculatedField.configuration.expression,
|
expression: calculatedField.configuration.expression,
|
||||||
argumentsEditorCompleter: this.getArgumentsEditorCompleter(calculatedField.configuration.arguments),
|
argumentsEditorCompleter: getCalculatedFieldArgumentsEditorCompleter(calculatedField.configuration.arguments),
|
||||||
openCalculatedFieldEdit
|
openCalculatedFieldEdit
|
||||||
}
|
}
|
||||||
}).afterClosed()
|
}).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,
|
CalculatedFieldDialogData,
|
||||||
CalculatedFieldType,
|
CalculatedFieldType,
|
||||||
CalculatedFieldTypeTranslations,
|
CalculatedFieldTypeTranslations,
|
||||||
|
getCalculatedFieldArgumentsEditorCompleter,
|
||||||
OutputType,
|
OutputType,
|
||||||
OutputTypeTranslations
|
OutputTypeTranslations
|
||||||
} from '@shared/models/calculated-field.models';
|
} from '@shared/models/calculated-field.models';
|
||||||
@ -69,7 +70,7 @@ export class CalculatedFieldDialogComponent extends DialogComponent<CalculatedFi
|
|||||||
argumentsEditorCompleter$ = this.configFormGroup.get('arguments').valueChanges
|
argumentsEditorCompleter$ = this.configFormGroup.get('arguments').valueChanges
|
||||||
.pipe(
|
.pipe(
|
||||||
startWith(this.data.value?.configuration?.arguments ?? {}),
|
startWith(this.data.value?.configuration?.arguments ?? {}),
|
||||||
map(argumentsObj => this.data.getArgumentsEditorCompleterFn(argumentsObj))
|
map(argumentsObj => getCalculatedFieldArgumentsEditorCompleter(argumentsObj))
|
||||||
);
|
);
|
||||||
|
|
||||||
additionalDebugActionConfig = this.data.value?.id ? {
|
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 CalculatedFieldTestScriptFn = (calculatedField: CalculatedField, argumentsObj?: Record<string, unknown>, closeAllOnSave?: boolean) => Observable<string>;
|
||||||
|
|
||||||
export type CalculatedFieldArgumentsEditorCompleterFn = (argumentsObj: Record<string, CalculatedFieldArgument>) => TbEditorCompleter;
|
|
||||||
|
|
||||||
export interface CalculatedFieldDialogData {
|
export interface CalculatedFieldDialogData {
|
||||||
value?: CalculatedField;
|
value?: CalculatedField;
|
||||||
buttonTitle: string;
|
buttonTitle: string;
|
||||||
@ -142,7 +140,6 @@ export interface CalculatedFieldDialogData {
|
|||||||
additionalDebugActionConfig: AdditionalDebugActionConfig<(calculatedField: CalculatedField) => void>;
|
additionalDebugActionConfig: AdditionalDebugActionConfig<(calculatedField: CalculatedField) => void>;
|
||||||
getTestScriptDialogFn: CalculatedFieldTestScriptFn;
|
getTestScriptDialogFn: CalculatedFieldTestScriptFn;
|
||||||
isDirty?: boolean;
|
isDirty?: boolean;
|
||||||
getArgumentsEditorCompleterFn: CalculatedFieldArgumentsEditorCompleterFn;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CalculatedFieldDebugDialogData {
|
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