src/app/core/default-values/x-static/static-default-value.service.ts

Description

A simple default-value strategy that replaces placeholder strings with dynamic values, like the current date or user.

Extends

DefaultValueStrategy

Metadata

Relationships

Index

Properties
Methods

Methods

Async getAdminUI
getAdminUI()
Inherited from DefaultValueStrategy
setDefaultValue
setDefaultValue(targetFormControl: AbstractControl, fieldConfig: EntitySchemaField)
Inherited from DefaultValueStrategy
Parameters :
Name Type Optional
targetFormControl AbstractControl<any | any> No
fieldConfig EntitySchemaField No
Returns : void
getDefaultValueUiHint
getDefaultValueUiHint<T>(form: EntityForm<T>, field: FormFieldConfig)
Inherited from DefaultValueStrategy
Type parameters :
  • T

Get details about the status and context of a default value field to display to the user.

Parameters :
Name Type Optional
form EntityForm<T> No
field FormFieldConfig No
Async initEntityForm
initEntityForm<T>(form: EntityForm<T>)
Inherited from DefaultValueStrategy
Type parameters :
  • T
Parameters :
Name Type Optional
form EntityForm<T> No
Returns : Promise<void>
Async onFormValueChanges
onFormValueChanges<T>(form: EntityForm<T>)
Inherited from DefaultValueStrategy
Type parameters :
  • T
Parameters :
Name Type Optional
form EntityForm<T> No
Returns : Promise<void>

Properties

Readonly mode
Type : string
Default value : "static"
Inherited from DefaultValueStrategy
import { inject, Injectable } from "@angular/core";
import { AbstractControl } from "@angular/forms";
import { EntitySchemaField } from "../../entity/schema/entity-schema-field";
import {
  AdminDefaultValueContext,
  DefaultValueStrategy,
} from "../default-value-strategy.interface";
import { DefaultValueConfigStatic } from "./default-value-config-static";
import { EntitySchemaService } from "../../entity/schema/entity-schema.service";

/**
 * A simple default-value strategy that replaces placeholder strings with dynamic values, like the current date or user.
 */
@Injectable({
  providedIn: "root",
})
export class StaticDefaultValueService extends DefaultValueStrategy {
  override readonly mode = "static";

  private entitySchemaService = inject(EntitySchemaService);

  override async getAdminUI(): Promise<AdminDefaultValueContext> {
    const component =
      await import("./admin-default-value-static/admin-default-value-static.component").then(
        (c) => c.AdminDefaultValueStaticComponent,
      );

    return {
      mode: this.mode,
      component,
      icon: "circle",
      description: $localize`simple, fixed default value`,
    };
  }

  override setDefaultValue(
    targetFormControl: AbstractControl<any, any>,
    fieldConfig: EntitySchemaField,
  ) {
    const config: DefaultValueConfigStatic = fieldConfig.defaultValue.config;
    if (!config?.value) {
      return;
    }

    const transformedDefaultValue =
      this.entitySchemaService.valueToEntityFormat(config.value, fieldConfig);
    targetFormControl.setValue(transformedDefaultValue);
  }
}

results matching ""

    No results matching ""