divided ts and attr completers

This commit is contained in:
mpetrov 2025-02-14 18:50:34 +02:00
parent 4bd0833eed
commit 0004cdeaf9
3 changed files with 36 additions and 6 deletions

View File

@ -43,8 +43,9 @@ import {
CalculatedFieldDebugDialogData, CalculatedFieldDebugDialogData,
CalculatedFieldDialogData, CalculatedFieldDialogData,
CalculatedFieldRollingValueArgumentAutocomplete, CalculatedFieldRollingValueArgumentAutocomplete,
CalculatedFieldSingleValueArgumentAutocomplete,
CalculatedFieldTestScriptDialogData, CalculatedFieldTestScriptDialogData,
CalculatedFieldAttributeValueArgumentAutocomplete,
CalculatedFieldLatestTelemetryArgumentAutocomplete,
} from '@shared/models/calculated-field.models'; } from '@shared/models/calculated-field.models';
import { import {
CalculatedFieldDebugDialogComponent, CalculatedFieldDebugDialogComponent,
@ -302,9 +303,17 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
private getArgumentsEditorCompleter(argumentsObj: Record<string, CalculatedFieldArgument>): TbEditorCompleter { private getArgumentsEditorCompleter(argumentsObj: Record<string, CalculatedFieldArgument>): TbEditorCompleter {
return new TbEditorCompleter(Object.keys(argumentsObj).reduce((acc, key) => { return new TbEditorCompleter(Object.keys(argumentsObj).reduce((acc, key) => {
acc[key] = argumentsObj[key].refEntityKey.type === ArgumentType.Rolling switch (argumentsObj[key].refEntityKey.type) {
? CalculatedFieldRollingValueArgumentAutocomplete case ArgumentType.Attribute:
: CalculatedFieldSingleValueArgumentAutocomplete; acc[key] = CalculatedFieldAttributeValueArgumentAutocomplete;
break;
case ArgumentType.LatestTelemetry:
acc[key] = CalculatedFieldLatestTelemetryArgumentAutocomplete;
break;
case ArgumentType.Rolling:
acc[key] = CalculatedFieldRollingValueArgumentAutocomplete;
break;
}
return acc; return acc;
}, {})) }, {}))
} }

View File

@ -184,6 +184,9 @@ export class JsFuncComponent implements OnInit, OnChanges, OnDestroy, ControlVal
this.updateFunctionArgsString(); this.updateFunctionArgsString();
this.updateFunctionLabel(); this.updateFunctionLabel();
} }
if (changes.editorCompleter) {
this.updateCompleters();
}
} }
ngOnInit(): void { ngOnInit(): void {

View File

@ -213,10 +213,28 @@ export type CalculatedFieldArgumentEventValue<ValueType = unknown> = CalculatedF
export type CalculatedFieldEventArguments<ValueType = unknown> = Record<string, CalculatedFieldArgumentEventValue<ValueType>>; export type CalculatedFieldEventArguments<ValueType = unknown> = Record<string, CalculatedFieldArgumentEventValue<ValueType>>;
export const CalculatedFieldSingleValueArgumentAutocomplete = { export const CalculatedFieldLatestTelemetryArgumentAutocomplete = {
meta: 'object', meta: 'object',
type: '{ ts: number; value: any; }', type: '{ ts: number; value: any; }',
description: 'Calculated field single value argument.', description: 'Calculated field latest telemetry value argument.',
children: {
ts: {
meta: 'number',
type: 'number',
description: 'Time stamp',
},
value: {
meta: 'any',
type: 'any',
description: 'Value',
}
},
};
export const CalculatedFieldAttributeValueArgumentAutocomplete = {
meta: 'object',
type: '{ ts: number; value: any; }',
description: 'Calculated field attribute value argument.',
children: { children: {
ts: { ts: {
meta: 'number', meta: 'number',