Browse Source

UI: Refactoring calculate fields models refactoring

pull/12811/head
Vladyslav_Prykhodko 2 years ago
parent
commit
78fc8445a7
  1. 15
      ui-ngx/src/app/modules/home/components/calculated-fields/calculated-fields-table-config.ts
  2. 16
      ui-ngx/src/app/modules/home/components/calculated-fields/components/dialog/calculated-field-dialog.component.ts
  3. 10
      ui-ngx/src/app/modules/home/components/calculated-fields/components/test-dialog/calculated-field-script-test-dialog.component.ts
  4. 20
      ui-ngx/src/app/shared/models/calculated-field.models.ts

15
ui-ngx/src/app/modules/home/components/calculated-fields/calculated-fields-table-config.ts

@ -39,28 +39,27 @@ import { catchError, filter, switchMap, tap } from 'rxjs/operators';
import { import {
ArgumentType, ArgumentType,
CalculatedField, CalculatedField,
CalculatedFieldEventArguments,
CalculatedFieldDebugDialogData, CalculatedFieldDebugDialogData,
CalculatedFieldDialogData, CalculatedFieldEventArguments,
CalculatedFieldTestScriptDialogData, CalculatedFieldType,
CalculatedFieldTypeTranslations,
getCalculatedFieldArgumentsEditorCompleter, getCalculatedFieldArgumentsEditorCompleter,
getCalculatedFieldArgumentsHighlights, getCalculatedFieldArgumentsHighlights,
CalculatedFieldTypeTranslations,
CalculatedFieldType,
} from '@shared/models/calculated-field.models'; } from '@shared/models/calculated-field.models';
import { import {
CalculatedFieldDebugDialogComponent, CalculatedFieldDebugDialogComponent,
CalculatedFieldDialogComponent, CalculatedFieldDialogComponent,
CalculatedFieldScriptTestDialogComponent CalculatedFieldDialogData,
CalculatedFieldScriptTestDialogComponent,
CalculatedFieldTestScriptDialogData
} from './components/public-api'; } from './components/public-api';
import { ImportExportService } from '@shared/import-export/import-export.service'; import { ImportExportService } from '@shared/import-export/import-export.service';
import { isObject } from '@core/utils'; import { isObject } from '@core/utils';
import { EntityDebugSettingsService } from '@home/components/entity/debug/entity-debug-settings.service'; import { EntityDebugSettingsService } from '@home/components/entity/debug/entity-debug-settings.service';
import { DatePipe } from '@angular/common'; import { DatePipe } from '@angular/common';
export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedField, PageLink> { export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedField> {
// TODO: [Calculated Fields] remove hardcode when BE variable implemented
readonly calculatedFieldsDebugPerTenantLimitsConfiguration = readonly calculatedFieldsDebugPerTenantLimitsConfiguration =
getCurrentAuthState(this.store)['calculatedFieldsDebugPerTenantLimitsConfiguration'] || '1:1'; getCurrentAuthState(this.store)['calculatedFieldsDebugPerTenantLimitsConfiguration'] || '1:1';
readonly maxDebugModeDuration = getCurrentAuthState(this.store).maxDebugModeDurationMinutes * MINUTE; readonly maxDebugModeDuration = getCurrentAuthState(this.store).maxDebugModeDurationMinutes * MINUTE;

16
ui-ngx/src/app/modules/home/components/calculated-fields/components/dialog/calculated-field-dialog.component.ts

@ -25,7 +25,7 @@ import {
CalculatedField, CalculatedField,
CalculatedFieldConfiguration, CalculatedFieldConfiguration,
calculatedFieldDefaultScript, calculatedFieldDefaultScript,
CalculatedFieldDialogData, CalculatedFieldTestScriptFn,
CalculatedFieldType, CalculatedFieldType,
CalculatedFieldTypeTranslations, CalculatedFieldTypeTranslations,
getCalculatedFieldArgumentsEditorCompleter, getCalculatedFieldArgumentsEditorCompleter,
@ -41,6 +41,20 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { ScriptLanguage } from '@shared/models/rule-node.models'; import { ScriptLanguage } from '@shared/models/rule-node.models';
import { CalculatedFieldsService } from '@core/http/calculated-fields.service'; import { CalculatedFieldsService } from '@core/http/calculated-fields.service';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { EntityId } from '@shared/models/id/entity-id';
import { AdditionalDebugActionConfig } from '@home/components/entity/debug/entity-debug-settings.model';
export interface CalculatedFieldDialogData {
value?: CalculatedField;
buttonTitle: string;
entityId: EntityId;
debugLimitsConfiguration: string;
tenantId: string;
entityName?: string;
additionalDebugActionConfig: AdditionalDebugActionConfig<(calculatedField: CalculatedField) => void>;
getTestScriptDialogFn: CalculatedFieldTestScriptFn;
isDirty?: boolean;
}
@Component({ @Component({
selector: 'tb-calculated-field-dialog', selector: 'tb-calculated-field-dialog',

10
ui-ngx/src/app/modules/home/components/calculated-fields/components/test-dialog/calculated-field-script-test-dialog.component.ts

@ -41,9 +41,17 @@ import { filter } from 'rxjs/operators';
import { import {
ArgumentType, ArgumentType,
CalculatedFieldEventArguments, CalculatedFieldEventArguments,
CalculatedFieldTestScriptDialogData, CalculatedFieldTestScriptInputParams,
TestArgumentTypeMap TestArgumentTypeMap
} from '@shared/models/calculated-field.models'; } from '@shared/models/calculated-field.models';
import { TbEditorCompleter } from '@shared/models/ace/completion.models';
import { AceHighlightRules } from '@shared/models/ace/ace.models';
export interface CalculatedFieldTestScriptDialogData extends CalculatedFieldTestScriptInputParams {
argumentsEditorCompleter: TbEditorCompleter;
argumentsHighlightRules: AceHighlightRules;
openCalculatedFieldEdit?: boolean;
}
@Component({ @Component({
selector: 'tb-calculated-field-script-test-dialog', selector: 'tb-calculated-field-script-test-dialog',

20
ui-ngx/src/app/shared/models/calculated-field.models.ts

@ -149,18 +149,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 interface CalculatedFieldDialogData {
value?: CalculatedField;
buttonTitle: string;
entityId: EntityId;
debugLimitsConfiguration: string;
tenantId: string;
entityName?: string;
additionalDebugActionConfig: AdditionalDebugActionConfig<(calculatedField: CalculatedField) => void>;
getTestScriptDialogFn: CalculatedFieldTestScriptFn;
isDirty?: boolean;
}
export interface CalculatedFieldDebugDialogData { export interface CalculatedFieldDebugDialogData {
tenantId: string; tenantId: string;
value: CalculatedField; value: CalculatedField;
@ -172,12 +160,6 @@ export interface CalculatedFieldTestScriptInputParams {
expression: string; expression: string;
} }
export interface CalculatedFieldTestScriptDialogData extends CalculatedFieldTestScriptInputParams {
argumentsEditorCompleter: TbEditorCompleter;
argumentsHighlightRules: AceHighlightRules;
openCalculatedFieldEdit?: boolean;
}
export interface ArgumentEntityTypeParams { export interface ArgumentEntityTypeParams {
title: string; title: string;
entityType: EntityType entityType: EntityType
@ -560,7 +542,7 @@ const calculatedFieldSingleArgumentValueHighlightRules: AceHighlightRules = {
} }
const calculatedFieldRollingArgumentValueFunctionsHighlightRules: Array<AceHighlightRule> = const calculatedFieldRollingArgumentValueFunctionsHighlightRules: Array<AceHighlightRule> =
['max', 'min', 'avg', 'mean', 'std', 'median', 'count', 'last', 'first', 'sum', 'merge', 'mergeAll'].map(funcName => ({ Object.keys(CalculatedFieldRollingValueArgumentFunctionsAutocomplete).map(funcName => ({
token: 'tb.calculated-field-func', token: 'tb.calculated-field-func',
regex: `\\b${funcName}\\b`, regex: `\\b${funcName}\\b`,
next: 'no_regex' next: 'no_regex'

Loading…
Cancel
Save