| $localize | 
| Type : LocalizeFn | 
| INTERNAL_VALIDATOR_MESSAGES | 
| Type : InternalValidatorMessage[] | 
| Default value : [
  {
    validatorId: ValidatorId.nxDatefieldParse,
    validatorName: 'nxDatefieldParse',
    errorMessage: $localize`:@@validation.error.nxDatefieldParse:This field has an invalid format!`,
    ignoreValidators: ['required']
  },
  {
    validatorId: ValidatorId.nxDatefieldParseYears,
    validatorName: 'nxDatefieldParse',
    errorMessage: $localize`:@@validation.error.nxDatefieldParse.years:Please use the format YYYY using only numbers.`,
    ignoreValidators: ['required']
  }
] | 
| NDBX datefield adds a validation error  Eg. when  We can use  | 
| $localize | 
| Type : LocalizeFn | 
| $localize | 
| Type : LocalizeFn | 
| $localize | 
| Type : LocalizeFn | 
| BASE_VALIDATIONS | 
| Type : ValidationDefinitions | 
| Default value : {
  ...STATIC_VALIDATIONS,
  ...DYNAMIC_VALIDATIONS
} | 
| DYNAMIC_VALIDATIONS | 
| Type : ValidationDefinitions | 
| Default value : {
  DYNAMIC_MIN: (item: ValidationConfigItem) => {
    const minValue = item.min as Observable<number>;
    const errorMessage =
      item.errorMessage ||
      minValue.pipe(
        map((value) => TRANSLATIONS.min(value)),
        // this delay(0) avoids an ExpressionChangedAfterItHasBeenCheckedError
        // like a `setTimeout(..., 0)` would in a non-rxjs context
        delay(0)
      );
    const validator = (control: AbstractControl): Observable<ValidationErrors | null> => {
      return minValue.pipe(
        // take(1) is required here since the Angular asyncValidator only works with a complete observable.
        take(1),
        map((min) => {
          // Min values provided by user input come as strings, and Angular validators
          // internally convert them to numbers. However, we still need to handle the case
          // where the min value is '' (or any other falsy value except 0) because even if it
          // is a valid threshold for Angular, since it converts '' to 0, we don't want to
          // show validation errors in this case.
          if (!min && min !== 0) {
            return null;
          }
          return Validators.min(min)(control);
        })
      );
    };
    return {
      min: minValue,
      validator: validator,
      async: true,
      validatorName: 'min',
      errorMessage: errorMessage
    };
  },
  DYNAMIC_MAX: (item: ValidationConfigItem) => {
    const maxValue = item.max as Observable<number>;
    const errorMessage =
      item.errorMessage ||
      maxValue.pipe(
        map((value) => TRANSLATIONS.max(value)),
        // this delay(0) avoids an ExpressionChangedAfterItHasBeenCheckedError
        // like a `setTimeout(..., 0)` would in a non-rxjs context
        delay(0)
      );
    const validator = (control: AbstractControl): Observable<ValidationErrors | null> => {
      return maxValue.pipe(
        // take(1) is required here since the Angular asyncValidator only works with a complete observable.
        take(1),
        map((max) => {
          // Max values provided by user input come as strings, and Angular validators
          // internally convert them to numbers. However, we still need to handle the case
          // where the max value is '' (or any other falsy value except 0) because even if it
          // is a valid threshold for Angular, since it converts '' to 0, we don't want to
          // show validation errors in this case.
          if (!max && max !== 0) {
            return null;
          }
          return Validators.max(max)(control);
        })
      );
    };
    return {
      max: maxValue,
      validator: validator,
      async: true,
      validatorName: 'max',
      errorMessage: errorMessage
    };
  },
  DYNAMIC_MIN_DATE: (item: ValidationConfigItem) => {
    let currentMinDate: string | undefined;
    const minDate = (item.minDate as Observable<string>).pipe(
      map((minDateValue) => parseDateString(minDateValue)),
      tap((minDateValue) => (currentMinDate = minDateValue))
    );
    const validator = (control: AbstractControl): ValidationErrors | null => {
      if (!currentMinDate) return null;
      return minDateValidator(currentMinDate)(control);
    };
    return {
      minDate,
      validator,
      async: false,
      validatorName: 'mindate',
      errorMessage: item.errorMessage || TRANSLATIONS.minDate
    };
  },
  DYNAMIC_MAX_DATE: (item: ValidationConfigItem) => {
    let currentMaxDate: string | undefined;
    const maxDate = (item.maxDate as Observable<string>).pipe(
      map((maxDateValue) => parseDateString(maxDateValue)),
      tap((maxDateValue) => (currentMaxDate = maxDateValue))
    );
    const validator = (control: AbstractControl): ValidationErrors | null => {
      if (!currentMaxDate) return null;
      return maxDateValidator(currentMaxDate)(control);
    };
    return {
      maxDate,
      validator,
      async: false,
      validatorName: 'maxdate',
      errorMessage: item.errorMessage || TRANSLATIONS.maxDate
    };
  },
  DYNAMIC_MIN_LENGTH: (item: ValidationConfigItem) => {
    const minLength = item.minLength as Observable<number>;
    const errorMessage =
      item.errorMessage ||
      minLength.pipe(
        map((value) => TRANSLATIONS.minLength(value)),
        delay(0)
      );
    const validator = (control: AbstractControl): Observable<ValidationErrors | null> => {
      return minLength.pipe(
        take(1),
        map((min) => {
          // Min values provided by user input come as strings, and Angular validators
          // internally convert them to numbers. However, we still need to handle the case
          // where the min value is '' (or any other falsy value except 0) because even if it
          // is a valid threshold for Angular, since it converts '' to 0, we don't want to
          // show validation errors in this case.
          if (!min && min !== 0) {
            return null;
          }
          return Validators.minLength(min)(control);
        })
      );
    };
    return {
      minLength,
      validator: validator,
      async: true,
      validatorName: 'minlength',
      errorMessage: errorMessage
    };
  },
  DYNAMIC_MAX_LENGTH: (item: ValidationConfigItem) => {
    const maxLength = item.maxLength as Observable<number>;
    const errorMessage =
      item.errorMessage ||
      maxLength.pipe(
        map((value) => TRANSLATIONS.maxLength(value)),
        delay(0)
      );
    const validator = (control: AbstractControl): Observable<ValidationErrors | null> => {
      return maxLength.pipe(
        take(1),
        map((max) => {
          // Max values provided by user input come as strings, and Angular validators
          // internally convert them to numbers. However, we still need to handle the case
          // where the max value is '' (or any other falsy value except 0) because even if it
          // is a valid threshold for Angular, since it converts '' to 0, we don't want to
          // show validation errors in this case.
          if (!max && max !== 0) {
            return null;
          }
          return Validators.maxLength(max)(control);
        })
      );
    };
    return {
      maxLength,
      validator: validator,
      async: true,
      validatorName: 'maxlength',
      errorMessage: errorMessage
    };
  },
  DYNAMIC_PATTERN: (item: ValidationConfigItem) => {
    const pattern = item.pattern as Observable<string>;
    const validator = (control: AbstractControl): Observable<ValidationErrors | null> => {
      return pattern.pipe(
        take(1),
        map((patternValue) => Validators.pattern(patternValue)(control))
      );
    };
    return {
      pattern,
      validator: validator,
      async: true,
      validatorName: 'pattern',
      errorMessage: item.errorMessage || TRANSLATIONS.pattern
    };
  }
} | 
| STATIC_VALIDATIONS | 
| Type : ValidationDefinitions | 
| Default value : {
  REQUIRED: (item: ValidationConfigItem) => {
    return {
      validator: Validators.required,
      validatorName: 'required',
      errorMessage: item.errorMessage || TRANSLATIONS.required
    };
  },
  REQUIRED_TRUE: (item: ValidationConfigItem) => {
    return {
      validator: Validators.requiredTrue,
      validatorName: 'required',
      errorMessage: item.errorMessage || TRANSLATIONS.requiredTrue
    };
  },
  MIN: (item: ValidationConfigItem) => {
    const minValue = item.min as number;
    return {
      min: minValue,
      validator: Validators.min(minValue),
      validatorName: 'min',
      errorMessage: item.errorMessage || TRANSLATIONS.min(minValue)
    };
  },
  MAX: (item: ValidationConfigItem) => {
    const maxValue = item.max as number;
    return {
      max: maxValue,
      validator: Validators.max(maxValue),
      validatorName: 'max',
      errorMessage: item.errorMessage || TRANSLATIONS.max(maxValue)
    };
  },
  MIN_LENGTH: (item: ValidationConfigItem) => {
    const minLength = item.minLength as number;
    return {
      minLength,
      validator: Validators.minLength(minLength),
      validatorName: 'minlength',
      errorMessage: item.errorMessage || TRANSLATIONS.minLength(minLength)
    };
  },
  MAX_LENGTH: (item: ValidationConfigItem) => {
    const maxLength = item.maxLength as number;
    return {
      maxLength,
      validator: Validators.maxLength(maxLength),
      validatorName: 'maxlength',
      errorMessage: item.errorMessage || TRANSLATIONS.maxLength(maxLength)
    };
  },
  MIN_DATE: (item: ValidationConfigItem) => {
    const minDate = parseDateString(item.minDate as string);
    if (minDate === undefined) {
      throw createDateStringFormatError(item, 'minDate');
    }
    return {
      minDate,
      validator: minDateValidator(minDate),
      validatorName: 'mindate',
      errorMessage: item.errorMessage || TRANSLATIONS.minDate
    };
  },
  MAX_DATE: (item: ValidationConfigItem) => {
    const maxDate = parseDateString(item.maxDate as string);
    if (maxDate === undefined) {
      throw createDateStringFormatError(item, 'maxDate');
    }
    return {
      maxDate,
      validator: maxDateValidator(maxDate),
      validatorName: 'maxdate',
      errorMessage: item.errorMessage || TRANSLATIONS.maxDate
    };
  },
  EMAIL: (item: ValidationConfigItem) => {
    const topLevelDomainValidator = (control: AbstractControl) => {
      if (!control.value || !control.value.includes('@')) {
        return null;
      }
      const emailParts = (control.value as string).split('@');
      const domainPart = emailParts[emailParts.length - 1];
      if (domainPart.includes('.')) {
        return null;
      }
      return { email: true };
    };
    // Validators.compose() possibly returns null, but only if we provide an
    // empty array. In this case we definitely know that the array is not
    // empty so we can safely disable the no-non-null-assertion rule
    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
    const resultingValidator = Validators.compose([Validators.email, topLevelDomainValidator])!;
    return {
      validator: resultingValidator,
      validatorName: 'email',
      errorMessage: item.errorMessage || TRANSLATIONS.email
    };
  },
  PATTERN: (item: ValidationConfigItem) => {
    return {
      pattern: item.pattern,
      validator: Validators.pattern(item.pattern as string),
      validatorName: 'pattern',
      errorMessage: item.errorMessage || TRANSLATIONS.pattern
    };
  }
} | 
| TRANSLATIONS | 
| Type : object | 
| Default value : {
  required: $localize`:@@validation.error.required:This field is required!`,
  requiredTrue: $localize`:@@validation.error.requiredtrue:This field is required to be true!`,
  min: (min: number) =>
    // TODO: fix typo
    $localize`:@@validaton.error.min: This field needs to have a minimum value of ${min}:min:.`,
  max: (max: number) =>
    // TODO: fix typo
    $localize`:@@validaton.error.max: This field needs to have a maximum value of ${max}:max:.`,
  minLength: (minLength: number) =>
    $localize`:@@validation.error.minlength:This field can only have a min length of ${minLength}:minlength: characters.`,
  maxLength: (maxLength: number) =>
    $localize`:@@validation.error.maxlength:This field can only have a max length of ${maxLength}:maxlength: characters.`,
  minDate: $localize`:@@validation.error.mindate:This field requires a more recent date`,
  maxDate: $localize`:@@validation.error.maxdate:This field requires a older date`,
  email: $localize`:@@validation.error.email:This field requires a valid email`,
  pattern: $localize`:@@validation.error.pattern:This field has invalid format.`
} | 
| $localize | 
| Type : LocalizeFn | 
| $localize | 
| Type : LocalizeFn | 
| $localize | 
| Type : LocalizeFn | 
| $localize | 
| Type : LocalizeFn | 
| $localize | 
| Type : LocalizeFn | 
| ACL_DEFAULTS_HEADER | 
| Default value : `# ACL DEFAULTS - AUTO GENERATED BY TALY GENERATOR
# DO NOT EDIT MANUALLY` | 
| ACL_POLICY_CONTENT_TOKEN | 
| Default value : new InjectionToken('ACL Policy for Building Blocks') | 
| jest | 
| ACL_STORE_ADAPTER_TOKEN | 
| Type : InjectionToken<ExpressionStoreAdapter> | 
| Default value : new InjectionToken<ExpressionStoreAdapter>(
    'ACL_STORE_ADAPTER_TOKEN - Token to provide ExpressionStoreAdapter'
  ) | 
| ACL_TAG_NAME_ASYNC_TOKEN | 
| Default value : new InjectionToken<BehaviorSubject<string>>(
  'async acl tag name behaviour subject'
) | 
| ACL_TAG_TOKEN | 
| Default value : new InjectionToken<AclTag>('acl tag injection token') | 
| ACL_TAG_TRANSIENT | 
| Default value : new InjectionToken<BehaviorSubject<string>>(
  'acl transient behaviour subject'
) | 
| aclMock | 
| Default value : createAclMock() | 
| aclResetStates | 
| Default value : ['visible', 'editable'] as const | 
| aclResourceStates | 
| Default value : ['hidden', 'readonly', 'disabled'] as const | 
| aclRuleStates | 
| Default value : [...aclResetStates, ...aclResourceStates] as const | 
| ajv | 
| Default value : new Ajv() | 
| validateAclSchema | 
| Type : ValidateFunction | 
| Default value : ajv.compile(aclYamlSchema) | 
| ajv | 
| Default value : new Ajv({
  strict: false
}) | 
| validateApplicationJsonSchema | 
| Type : ValidateFunction | 
| Default value : ajv.compile(defaultApplicationJsonSchema) | 
| TALY_EXECUTORS | 
| Type : [] | 
| Default value : ['@allianz/taly-nx:generate', '@allianz/taly-nx:generate-and-serve'] | 
| ZONE_JS_SCRIPT_PATTERN | 
| Default value : /node_modules\/zone\.js\/fesm2015\/zone\.min\.js$/ | 
| ANGULAR_CORE_MODULE | 
| Type : string | 
| Default value : '@angular/core' | 
| TOKEN_NAME | 
| Type : string | 
| Default value : 'BFF_BASE_URL_TOKEN' | 
| WRITABLE_SIGNAL_TYPE | 
| Type : string | 
| Default value : 'WritableSignal<string>' | 
| TALY_EXECUTORS | 
| Type : [] | 
| Default value : ['@allianz/taly-nx:generate', '@allianz/taly-nx:generate-and-serve'] | 
| APP_ROOT_ELEMENT_REF | 
| Default value : new InjectionToken<AppRootElementRef>('APP_ROOT_ELEMENT_REF') | 
| BFF_BASE_URL_TOKEN | 
| Default value : new InjectionToken<WritableSignal<string>>('BFF_BASE_URL_TOKEN') | 
| BUILDING_BLOCK_META_DATA | 
| Default value : new InjectionToken('Building Block Meta Data') | 
| CHANNEL_TOKEN | 
| Default value : new InjectionToken<CHANNEL>('Channel (retail/expert)', {
  factory: () => CHANNEL.RETAIL
}) | 
| JOURNEY_USAGE_TARGET | 
| Default value : new InjectionToken<JourneyTarget>('JOURNEY_USAGE_TARGET') | 
| LOCALE_RUNTIME_TOKEN | 
| Default value : new InjectionToken<WritableSignal<string>>(
  'LOCALE_RUNTIME_TOKEN'
) | 
| NO_MARGIN | 
| Default value : new InjectionToken<boolean>('NO_MARGIN') | 
| PAGES_CONFIGURATION | 
| Default value : new InjectionToken('Pages Configuration') | 
| PLUGIN_VALIDATORS | 
| Default value : new InjectionToken<PluginValidatorUnion[]>('PLUGIN_VALIDATORS', {
  factory: () => []
}) | 
| TALY_APP_TITLE | 
| Default value : new InjectionToken<string>('TALY_APP_TITLE') | 
| USE_ENHANCED_VERTICAL_SPACING | 
| Default value : new InjectionToken<boolean>(
  'USE_ENHANCED_VERTICAL_SPACING',
  {
    factory: () => false
  }
) | 
| appsFolder | 
| Type : string | 
| Default value : 'apps' | 
| configFolder | 
| Type : string | 
| Default value : 'config' | 
| isLocalPath | 
| Default value : (path: string) => !path.startsWith('~') | 
| COLON | 
| Type : string | 
| Default value : ':' | 
| define | 
| Default value : (target: unknown, key: PropertyKey, value: any) =>
  Object.defineProperty(target, key, {
    value,
    writable: true,
    configurable: true
  }) | 
| NON_PROP_SYMBOL_KEYS | 
| Default value : [PREFIX_BEFORE, PREFIX_BEFORE_ALL, PREFIX_AFTER_ALL].map(Symbol.for) | 
| PREFIX_AFTER | 
| Type : string | 
| Default value : 'after' | 
| PREFIX_AFTER_ALL | 
| Type : string | 
| Default value : 'after-all' | 
| PREFIX_AFTER_COLON | 
| Type : string | 
| Default value : 'after-colon' | 
| PREFIX_AFTER_PROP | 
| Type : string | 
| Default value : 'after-prop' | 
| PREFIX_AFTER_VALUE | 
| Type : string | 
| Default value : 'after-value' | 
| PREFIX_BEFORE | 
| Type : string | 
| Default value : 'before' | 
| The following code is taken from the comment-json package: | 
| PREFIX_BEFORE_ALL | 
| Type : string | 
| Default value : 'before-all' | 
| symbol | 
| Default value : (prefix: unknown, key: string) => Symbol.for(prefix + COLON + key) | 
| SYMBOL_PREFIXES | 
| Type : [] | 
| Default value : [
  PREFIX_BEFORE,
  PREFIX_AFTER_PROP,
  PREFIX_AFTER_COLON,
  PREFIX_AFTER_VALUE,
  PREFIX_AFTER
] | 
| CC_FOOTNOTE_MODULE_NAME | 
| Type : string | 
| Default value : 'CcFootnoteModule' | 
| CC_VALIDATION_ERRORS_MODULE_NAME | 
| Type : string | 
| Default value : 'CcValidationErrorsModule' | 
| CheckboxLabelSize | 
| Default value : {
  Small: 'small',
  Large: 'large'
} as const | 
| DfCheckboxTypeName | 
| Type : string | 
| Default value : 'CHECKBOX' | 
| The value to use for the  | 
| cli | 
| Default value : new Command().name('npx taly').description(`CLI for the TALY SDK (v${version})`) | 
| COMMENT_MARKER | 
| Type : string | 
| Default value : '#' | 
| INACTIVE_MARKER | 
| Type : string | 
| Default value : '##' | 
| RULE_PART_SEPARATOR | 
| Default value : /,(?![^(]*\))/g | 
| conditionFunctionCache | 
| Default value : new Map<string, (obj: any) => any>() | 
| configWithAcrValues | 
| Type : OauthConfig | 
| Default value : {
  name: 'Mock config with acrValues',
  authorizeUrl: 'https://idp-non-default.com/authorize',
  clientId: 'ClientIdNonDefault',
  tokenUrl: 'https://token-non-default',
  appTokenUrl: 'https://my-app-non-default/token',
  scope: 'scope',
  bffBaseUrl: 'https://bff-non-default',
  refreshBeforeExpiryThreshold: 1000,
  acrValues: ['aus-xx-test', 'aus-xx-hotfix']
} | 
| configWithLogoutSupport | 
| Type : OauthConfig | 
| Default value : {
  default: false,
  name: 'Mock config with logout support',
  authorizeUrl: 'https://idp.com/authorize',
  clientId: 'ClientId',
  tokenUrl: 'https://token',
  appTokenUrl: 'https://my-app/token',
  scope: 'scope',
  bffBaseUrl: 'https://bff',
  refreshBeforeExpiryThreshold: 1000,
  revokeUrl: 'https://idp.com/revoke',
  endSessionUrl: 'https://idp.com/end_session'
} | 
| defaultMockConfig | 
| Type : OauthConfig | 
| Default value : {
  default: true,
  name: 'My Default Mock Config',
  authorizeUrl: 'https://idp.com/authorize',
  clientId: 'ClientId',
  tokenUrl: 'https://token',
  appTokenUrl: 'https://my-app/token',
  scope: 'scope',
  bffBaseUrl: 'https://bff',
  refreshBeforeExpiryThreshold: 1000
} | 
| mockConfigurations | 
| Type : OauthConfig[] | 
| Default value : [
  defaultMockConfig,
  namedNonDefaultMockConfig,
  configWithLogoutSupport,
  configWithAcrValues
] | 
| namedNonDefaultMockConfig | 
| Type : OauthConfig | 
| Default value : {
  name: 'My Non-Default Mock Config',
  authorizeUrl: 'https://idp-non-default.com/authorize',
  clientId: 'ClientIdNonDefault',
  tokenUrl: 'https://token-non-default',
  appTokenUrl: 'https://my-app-non-default/token',
  scope: 'scope',
  bffBaseUrl: 'https://bff-non-default',
  refreshBeforeExpiryThreshold: 1000
} | 
| ContainerLayout | 
| Default value : {
  SingleColumn: 'single-column',
  MultiColumn: 'multi-column',
  CustomColumn: 'custom-column'
} as const | 
| COPYRIGHT_HOLDER_KEY | 
| Type : string | 
| Default value : 'copyrightHolder' | 
| COPYRIGHT_KEY | 
| Type : string | 
| Default value : 'copyright' | 
| CORE_FORMS_BACKEND_INTEGRATION_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<
  Signal<CoreFormsBackendIntegrationPluginOptions>
>('CORE_FORMS_BACKEND_INTEGRATION_PLUGIN_OPTIONS') | 
| CUSTOM_COMPONENT_TYPE | 
| Type : string | 
| Default value : 'CUSTOM_COMPONENT' | 
| CUSTOM_DYNAMIC_FORM_COMPONENT | 
| Default value : new InjectionToken<DfComponentConfig[]>(
  'CUSTOM_DYNAMIC_FORM_COMPONENT'
) | 
| dateUnitAlias | 
| Type : object | 
| Default value : {
  d: 'd',
  day: 'd',
  days: 'd',
  w: 'w',
  week: 'w',
  weeks: 'w',
  m: 'm',
  month: 'm',
  months: 'm',
  y: 'y',
  year: 'y',
  years: 'y'
} | 
| DEBOUNCE_STORE_UPDATES_TIME | 
| Type : number | 
| Default value : 300 | 
| VERBOSE | 
| Default value : false | 
| DEFAULT_CONFIGURATION_NAME | 
| Type : string | 
| Default value : 'webcomponent' | 
| DEFAULT_INDEX | 
| Type : number | 
| Default value : 0 | 
| DEFAULT_OPTIONS | 
| Type : EscapedMaxLengthValidatorPluginOptions | 
| Default value : {
  escapedMaxLength: 30
} | 
| DEFAULT_TRANSLATION_FILE_FORMAT | 
| Type : string | 
| Default value : 'xlf' | 
| DEPLOY_URL | 
| Default value : new InjectionToken<string>('DEPLOY_URL') | 
| DEPLOY_URL | 
| Default value : new InjectionToken<string>('DEPLOY_URL') | 
| Df_DATE_PICKER_PARSE_FORMAT | 
| Type : InjectionToken<string> | 
| Default value : new InjectionToken<string>(
  'Df_DATE_PICKER_PARSE_FORMAT'
) | 
| ISO_STRING_FORMAT | 
| Type : string | 
| Default value : 'YYYY-MM-DD' | 
| Df_ISO_DATE_FORMAT | 
| Type : NxDateFormats | 
| Default value : {
  parse: {
    dateInput: 'L'
  },
  display: {
    dateInput: 'L',
    monthYearLabel: 'MMM YYYY',
    dateA11yLabel: 'LL',
    monthYearA11yLabel: 'MMMM YYYY'
  }
} | 
| DfCircleToggleGroupTypeName | 
| Type : string | 
| Default value : 'CIRCLE_TOGGLE_GROUP' | 
| Definition of the type - dynamic circle toggles | 
| DfDateDefaultValues | 
| Default value : {
  Yesterday: 'YESTERDAY',
  Today: 'TODAY',
  Tomorrow: 'TOMORROW'
} as const | 
| Default values for the DATE | 
| DfDateFullDateMode | 
| Type : string | 
| Default value : 'fullDate' | 
| DfDateMonthYearOnlyMode | 
| Type : string | 
| Default value : 'monthYearOnly' | 
| The value options to use for the  | 
| DfDateStartViewTypeMonthYearOnly | 
| Default value : {
  Year: 'year',
  MultiYear: 'multi-year'
} as const | 
| DfDateTypeName | 
| Type : string | 
| Default value : 'DATE' | 
| The value to use for the  | 
| DfDateYearOnlyMode | 
| Type : string | 
| Default value : 'yearOnly' | 
| DfDropdownTypeName | 
| Type : string | 
| Default value : 'DROPDOWN' | 
| The value to use for the  | 
| DfFormfieldSpacing | 
| Default value : {
  none: 'NONE',
  xs: 'XS',
  s: 'S',
  m: 'M',
  l: 'L',
  xl: 'XL',
  xxl: 'XXL'
} as const | 
| DfFormLayoutClassName | 
| Type : string | 
| Default value : {
  ONE_COLUMN: 'single-column',
  TWO_COLUMN: 'two-column-element',
  THREE_COLUMN: 'three-column-element',
  FOUR_COLUMN: 'four-column-element',
  CUSTOM_COLUMN: ''
} | 
| DfFormLayoutType | 
| Default value : {
  OneColumn: 'ONE_COLUMN',
  TwoColumn: 'TWO_COLUMN',
  ThreeColumn: 'THREE_COLUMN',
  FourColumn: 'FOUR_COLUMN',
  CustomColumn: 'CUSTOM_COLUMN'
} as const | 
| DfHeadlineTypeName | 
| Type : string | 
| Default value : 'HEADLINE' | 
| The value to use for the  | 
| HeaderType | 
| Default value : {
  h1: 'h1',
  h2: 'h2',
  h3: 'h3'
} as const | 
| DfInputTypeName | 
| Type : string | 
| Default value : 'INPUT' | 
| The value to use for the  | 
| DfLineBreakTypeName | 
| Type : string | 
| Default value : 'LINE_BREAK' | 
| The value to use for the  | 
| DfParagraphTypeName | 
| Type : string | 
| Default value : 'PARAGRAPH' | 
| The value to use for the  | 
| DfPhoneInputTypeName | 
| Type : string | 
| Default value : 'PHONE_INPUT' | 
| DfRadioTypeName | 
| Type : string | 
| Default value : 'RADIO' | 
| The value to use for the  | 
| DfRatingTypeName | 
| Type : string | 
| Default value : 'RATING' | 
| The value to use for the  | 
| DfSwitcherTypeName | 
| Type : string | 
| Default value : 'SWITCHER' | 
| The value to use for the  | 
| SwitcherLabelPosition | 
| Default value : {
  Left: 'left',
  Right: 'right'
} as const | 
| SwitcherSize | 
| Default value : {
  Small: 'small',
  Large: 'large'
} as const | 
| DfTextAreaTypeName | 
| Type : string | 
| Default value : 'TEXT_AREA' | 
| Definition of the type - dynamic text area | 
| dynamicFormBuildingBlockExampleData | 
| Type : BuildingBlockExampleData<DynamicFormBbState, DynamicFormBbResources> | 
| Default value : {
  default: {
    state: {},
    resources: {
      talyDynamicFormConfig: {
        layout: {
          type: 'ONE_COLUMN'
        },
        fields: [
          {
            id: 'myCheckbox',
            type: 'CHECKBOX',
            label: 'my checkbox'
          }
        ]
      }
    }
  }
} | 
| ELEMENT_BUILDER_PATH | 
| Type : string | 
| Default value : 'generated/tools/scripts/element-builder.js' | 
| ensurePosixPathSeparators | 
| Default value : (origPath: string) =>
  origPath.split(path.sep).join(path.posix.sep) | 
| Converts Windows paths that use \ as separator to / | 
| ensurePosixPathSeparators | 
| Default value : (origPath: string) =>
  origPath.split(path.sep).join(path.posix.sep) | 
| Converts Windows paths that use \ as separator to / | 
| ensurePosixPathSeparators | 
| Default value : (origPath: string) =>
  origPath.split(path.sep).join(path.posix.sep) | 
| Converts Windows paths that use \ as separator to / | 
| ENV_VAR_MARKER | 
| Type : string | 
| Default value : '@environment.' | 
| isEnvVarPlaceholder | 
| Default value : (value: unknown): value is string => {
  return typeof value === 'string' && value.startsWith(ENV_VAR_MARKER);
} | 
| ESCAPED_MAX_LENGTH_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<
  Signal<EscapedMaxLengthValidatorPluginOptions>
>('ESCAPED_MAX_LENGTH_PLUGIN_OPTIONS') | 
| ESCAPED_MAX_LENGTH_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<EscapedMaxLengthValidatorPluginOptions>('ESCAPED_MAX_LENGTH_PLUGIN_OPTIONS') | 
| execAsync | 
| Default value : promisify(exec) | 
| TALY_EXECUTORS | 
| Type : [] | 
| Default value : ['@allianz/taly-nx:generate', '@allianz/taly-nx:generate-and-serve'] | 
| formFieldConfigurations | 
| Type : DfComponentsConfigMap | 
| Default value : {
  CHECKBOX: {
    id: 'checkbox',
    type: 'CHECKBOX',
    label: 'Checkbox'
  },
  DATE: {
    id: 'datePicker',
    label: 'Date Picker',
    type: 'DATE',
    mode: 'fullDate'
  },
  INPUT: {
    id: 'inputField',
    type: 'INPUT',
    label: 'Input Field',
    inputType: 'text'
  },
  PHONE_INPUT: {
    id: 'phoneInput',
    type: 'PHONE_INPUT',
    label: 'Phone Input',
    countryCode: 'TH'
  },
  DROPDOWN: {
    id: 'dropdown',
    type: 'DROPDOWN',
    label: 'Dropdown',
    hint: 'This is a hint',
    options: [
      { label: 'The first option', value: '1' },
      { label: 'The second option', value: '2' }
    ]
  },
  SWITCHER: {
    id: 'switcher',
    type: 'SWITCHER',
    label: 'Switcher'
  },
  RADIO: {
    id: 'radioButtons',
    type: 'RADIO',
    label: 'Radio Buttons',
    options: [
      { label: 'First Option', value: 'first' },
      { label: 'Second Option', value: 'second' }
    ]
  },
  PARAGRAPH: {
    id: 'paragraph',
    type: 'PARAGRAPH',
    label: 'Paragraph'
  },
  HEADLINE: {
    id: 'headline',
    type: 'HEADLINE',
    label: 'Headline',
    headerType: 'h2'
  },
  TEXT_AREA: {
    id: 'textArea',
    type: 'TEXT_AREA',
    label: 'Text Area',
    hint: 'This is a hint'
  },
  CIRCLE_TOGGLE_GROUP: {
    id: 'circleToggles',
    type: 'CIRCLE_TOGGLE_GROUP',
    label: 'Circle Buttons',
    options: [
      { value: 'first', label: 'first', icon: 'product-car' },
      { value: 'second', label: 'second', icon: 'product-plane' }
    ]
  },
  RATING: {
    type: 'RATING',
    id: 'ratingStars',
    label: 'Rating Stars'
  },
  CUSTOM_COMPONENT: null,
  LINE_BREAK: null
} | 
| fullExampleConfig | 
| Type : DfBasicComponentsConfig[] | 
| Default value : [
  {
    id: 'headline',
    type: 'HEADLINE',
    label: 'The Following Form Shows All Currently Available Components',
    headerType: 'h2'
  },
  {
    id: 'paragraph',
    type: 'PARAGRAPH',
    label: 'This configuration can be changed in the editor below.'
  },
  {
    id: 'paragraph-live-value',
    type: 'PARAGRAPH',
    label:
      "This paragraph can show data from the state. For example the value of the field below: {$['my-dynamic-form']['input-{talyFieldId}']}"
  },
  {
    id: 'input',
    type: 'INPUT',
    inputType: 'text',
    label: 'Input Field',
    note: 'This is a note',
    hint: 'This is a hint',
    acl: [
      {
        state: 'hidden',
        condition: "s(\"$['my-dynamic-form']['mySwitcher-{talyFieldId}']\")"
      }
    ]
  },
  {
    id: 'mySwitcher',
    type: 'SWITCHER',
    label: 'Conditionally hide the input field above',
    labelPosition: 'right'
  },
  {
    id: 'checkbox',
    type: 'CHECKBOX',
    label: 'This is a checkbox with a validator',
    validators: [{ type: 'REQUIRED_TRUE' }]
  },
  {
    id: 'circleButtons',
    type: 'CIRCLE_TOGGLE_GROUP',
    label: 'Circle Buttons',
    options: [
      {
        value: 'first',
        label: 'first',
        icon: 'product-car'
      },
      {
        value: 'second',
        label: 'second',
        icon: 'product-plane'
      }
    ]
  },
  {
    id: 'date',
    type: 'DATE',
    label: 'Date',
    hint: 'This is a hint',
    mode: 'fullDate',
    infoIcon: {
      popoverText: 'The info icon supports **Markdown**'
    }
  },
  {
    id: 'dropdown',
    type: 'DROPDOWN',
    label: 'Dropdown',
    hint: 'This is a hint',
    options: [
      {
        label: 'The first option',
        value: '1'
      },
      {
        label: 'The second option',
        value: '2'
      }
    ]
  },
  {
    id: 'radio',
    type: 'RADIO',
    label: 'Radio',
    options: [
      {
        label: 'First Option',
        value: 'first'
      },
      {
        label: 'Second Option',
        value: 'second'
      }
    ]
  },
  {
    id: 'textArea',
    type: 'TEXT_AREA',
    label: 'Text Area',
    hint: 'This is a hint'
  },
  {
    id: 'phoneInput',
    type: 'PHONE_INPUT',
    label: 'Phone Input',
    countryCode: 'TH'
  },
  {
    type: 'RATING',
    id: 'ratingStars',
    label: 'Rating Stars'
  }
] | 
| STRING_CAMELIZE_REGEXP | 
| Default value : /(-|_|\.|\s)+(.)?/g | 
| getContent | 
| Default value : (errorMessage: string) => `
<div class="journey-generation-error">
  <h1>TALY: Journey Generation Error</h1>
  <pre class="error-stack">${errorMessage}</pre>
</div>
` | 
| getMissingAttributes | 
| Default value : (
  attrs: BbMarkdownAttributes
): (keyof BbMarkdownAttributes)[] => {
  return REQUIRED_MD_ATTRIBUTES.filter((key) => !attrs[key]);
} | 
| isValidChannel | 
| Default value : (channel: string) => {
  return VALID_CHANNELS.includes(channel);
} | 
| isValidLOB | 
| Default value : (lob: string) => {
  return VALID_LOBS.has(lob);
} | 
| REQUIRED_MD_ATTRIBUTES | 
| Type : [] | 
| Default value : ['title', 'channel', 'lob'] | 
| VALID_CHANNELS | 
| Type : [] | 
| Default value : ['expert', 'retail'] | 
| getMissingAttributes | 
| Default value : (attrs: MarkdownAttributes) => {
  return REQUIRED_MD_ATTRIBUTES.filter((key) => !attrs[key]);
} | 
| REQUIRED_MD_ATTRIBUTES | 
| Type : [] | 
| Default value : ['type', 'title', 'description'] | 
| globMatchCache | 
| Default value : new Map<string, boolean>() | 
| hasFlag | 
| Default value : (data: AnalyzedImport, flag: ImportState) => (data.state & flag) !== 0 | 
| Checks whether an analyzed import has the given import flag set. | 
| hasFlag | 
| Default value : (data: AnalyzedImport, flag: ImportState) => (data.state & flag) !== 0 | 
| Checks whether an analyzed import has the given import flag set. | 
| I18N_NOTIFICATION_CONTEXT | 
| Type : Record<NotificationContext, string> | 
| Default value : {
  info: $localize`:Context of an info notification:info`,
  success: $localize`:Context of a success notification:success`,
  warning: $localize`:Context of a warning notification:warning`,
  error: $localize`:Context of an error notification:error`
} | 
| NEW_IMPORT | 
| Type : string | 
| Default value : '@allianz/taly-core' | 
| OLD_IMPORT | 
| Type : string | 
| Default value : '@allianz/taly-core/schemas' | 
| INTERFACES | 
| Type : [] | 
| Default value : ['ValidationErrorsModule', 'ValidationErrorsComponent'] | 
| NEW_IMPORT | 
| Type : string | 
| Default value : '@allianz/taly-core/validation-errors' | 
| OLD_IMPORT | 
| Type : string | 
| Default value : '@allianz/taly-common/validation-errors' | 
| INTERNAL_LINK_PREFIX | 
| Type : string | 
| Default value : 'page://' | 
| ISO_REGEX | 
| Default value : /^([0-9]{4})(-?)(1[0-2]|0[1-9])\2(3[01]|0[1-9]|[12][0-9])$/ | 
| ISO_STRING_FORMAT | 
| Type : string | 
| Default value : 'YYYY-MM-DD' | 
| JOURNAL_FORMAT_VERSION | 
| Type : string | 
| Default value : '1' | 
| VALID_LOBS | 
| Default value : new Map([
  ['motor', 'KB'],
  ['household', 'HH'],
  ['life', 'LE'],
  ['health', 'KV'],
  ['commercial lines', 'GS'],
  ['any', 'ANY']
]) | 
| Available LOB values. | 
| LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<LanguageInterceptorPluginOptions>('LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS') | 
| LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<LanguageInterceptorPluginOptions>('LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS') | 
| LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<LanguageInterceptorPluginOptions>('LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS') | 
| LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<LanguageInterceptorPluginOptions>('LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS') | 
| LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<LanguageInterceptorPluginOptions>('LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS') | 
| LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS | 
| Default value : new InjectionToken<LanguageInterceptorPluginOptions>('LANGUAGE_INTERCEPTOR_PLUGIN_OPTIONS') | 
| lineBreakCounter | 
| Type : number | 
| Default value : 0 | 
| LOCATION | 
| Default value : new InjectionToken<Location>('LOCATION', {
  providedIn: 'root',
  factory: () => window.location
}) | 
| OAUTH_CONFIGURATIONS | 
| Default value : new InjectionToken<OauthConfig>('OAUTH_CONFIGURATIONS') | 
| STORAGE | 
| Default value : new InjectionToken<Storage>('STORAGE', {
  providedIn: 'root',
  factory: () => sessionStorage
}) | 
| MOCK_ANY_RESOURCE | 
| Type : string | 
| Default value : '*' | 
| monacoConfig | 
| Type : NgxMonacoEditorConfig | 
| Default value : {
  baseUrl: window.location.origin + '/assets/monaco/min/vs',
  defaultOptions: { scrollBeyondLastLine: false },
  onMonacoLoad: monacoLoaded
} | 
| nameRegex | 
| Default value : /^[a-z][0-9a-z]*([- ][0-9a-z]+)*$/i | 
| OauthAuthorizeActionType | 
| Type : string | 
| Default value : 'OAUTH_AUTHORIZE' | 
| OauthDecodeClientStateActionType | 
| Type : string | 
| Default value : 'OAUTH_DECODE_CLIENT_STATE' | 
| OauthGetTokenActionType | 
| Type : string | 
| Default value : 'OAUTH_GET_TOKEN' | 
| OauthLogoutActionType | 
| Type : string | 
| Default value : 'OAUTH_LOGOUT' | 
| PFE_FACADE_FACTORY | 
| Default value : new InjectionToken<PFEFacadeFactory>('PFE_FACADE_FACTORY') | 
| PFE_HISTORY_KEY | 
| Type : string | 
| Default value : 'pfeHistory' | 
| PFE_INITIAL_CONFIGURATION | 
| Default value : new InjectionToken<NgxPfeConfig>(
  'PFE Initial Configuration used in the TALY runtime mode'
) | 
| pfeDynamicPageRoute | 
| Type : object | 
| Default value : {
  loadChildren: () => PfeDynamicPageModule
} | 
| pgrModalBuildingBlockExampleData | 
| Type : BuildingBlockExampleData<undefined, undefined> | 
| Default value : {
  default: {}
} | 
| pgrPlaceholderExampleData | 
| Type : BuildingBlockExampleData<undefined, PgrPlaceholderResources> | 
| Default value : {
  default: {
    state: null,
    resources: {
      headline: 'Example headline',
      content: 'Example content'
    }
  }
} | 
| playgroundContactUsExampleData | 
| Type : BuildingBlockExampleData<undefined, ContactUsResources> | 
| Default value : {
  default: {
    resources: {
      label: 'Contact us'
    }
  }
} | 
| playgroundDynamicFormWithConfigEditorExampleData | 
| Type : BuildingBlockExampleData<PlaygroundDynamicFormWithConfigEditorState, PlaygroundDynamicFormWithConfigEditorResources> | 
| Default value : {
  default: {
    state: {},
    resources: {}
  }
} | 
| playgroundStateSummaryBuildingBlockExampleData | 
| Type : BuildingBlockExampleData<undefined, StateSummaryBuildingBlockResources> | 
| Default value : {
  default: {
    resources: {
      dynamicFormData: { 'my-dynamic-form-input': 'Monaco Franze', 'circleButtons-d025qp': null }
    }
  }
} | 
| PLUGIN_LIB_METADATA_FORMAT_VERSION | 
| Type : string | 
| Default value : '1' | 
| writeFile | 
| Default value : util.promisify(fs.writeFile) | 
| POLICY | 
| Default value : `# some custom rules here
path,, disabled` | 
| PRESETS | 
| Type : PolicyPreset[] | 
| Default value : [
  {
    name: 'Allow All',
    content: `
      *,,view,allow
      *,,edit,allow
    `
  },
  {
    name: 'Read Only',
    content: `
      *,,view,allow
      *,,edit,deny
    `
  },
  {
    name: 'Deny All',
    content: `
      *,,view,deny
      *,,edit,deny
    `
  }
] | 
| readFile | 
| Default value : util.promisify(fs.readFile) | 
| readFile | 
| Default value : util.promisify(fs.readFile) | 
| SAMPLE_PAGE | 
| Type : Page | 
| Default value : {
  pagesConfig: {
    blocks: [
      {
        id: 'some-building-block',
        module: 'SomeBuildingBlockModule',
        package: 'my-library',
        selector: 'bb-some-building-block'
      }
    ],
    id: 'my-test-page'
  },
  pfeConfig: {
    pageId: 'my-test-page'
  }
} | 
| SAMPLE_PAGE_INCOHERENT_ID | 
| Type : Page | 
| Default value : {
  ...SAMPLE_PAGE,
  pfeConfig: {
    pageId: SAMPLE_PAGE.pfeConfig.pageId + '-suffix'
  }
} | 
| SCHEMA_PATHS | 
| Type : object | 
| Default value : {
  GLOBAL_ACTION: 'schemas/global-actions-json.schema.json',
  GLOBAL_SERVICE_ACTIVATOR: 'schemas/global-service-activators-json.schema.json',
  PAGE: 'schemas/page-json.schema.json',
  NAVIGATION: 'schemas/navigation-json.schema.json',
  APPLICATION: 'schemas/application-json.schema.json'
} | 
| spinner | 
| Default value : ora() | 
| STRING_CAMELIZE_REGEXP | 
| Default value : /(-|_|\.|\s)+(.)?/g | 
| STRING_DASHERIZE_REGEXP | 
| Default value : /[ _]/g | 
| Cherry picked from Angular Sources to have a dasherize function at hands. | 
| STRING_DECAMELIZE_REGEXP | 
| Default value : /([a-z\d])([A-Z])/g | 
| STRING_DASHERIZE_REGEXP | 
| Default value : /[ _]/g | 
| Cherry picked from Angular Sources to have a dasherize function at hands. | 
| STRING_DECAMELIZE_REGEXP | 
| Default value : /([a-z\d])([A-Z])/g | 
| STRING_DASHERIZE_REGEXP | 
| Default value : /[ _.]/g | 
| dasherize & decamelize are cherry-picked from '@nx/devkit/src/utils/string-utils' to have a dasherize function at hands. | 
| STRING_DECAMELIZE_REGEXP | 
| Default value : /([a-z\d])([A-Z])/g | 
| TALY_FRAME_FOOTER_CONFIG | 
| Default value : new InjectionToken<FooterConfiguration>(
  `TALY_FRAME_FOOTER_CONFIG - Configuration for TALY Frame Footer`
) | 
| TALY_FRAME_NAVIGATION_CONFIG | 
| Default value : new InjectionToken<WritableSignal<NavigationConfig>>(
  `TALY_FRAME_NAVIGATION_CONFIG - Configuration for TALY Frame Navigation`
) | 
| TALY_FRAME_STAGE_CONFIG | 
| Default value : new InjectionToken<StageConfiguration>(
  `TALY_FRAME_STAGE_CONFIG - Configuration for TALY Frame Stage`
) | 
| THEME_STORE_FOLDER | 
| Type : string | 
| Default value : 'assets' | 
| VARIABLE_IDENTIFIER_SUFFIX | 
| Type : string | 
| Default value : 'ExampleState' | 
| WEB_COMPONENT_ID | 
| Default value : new InjectionToken<string>('WEB_COMPONENT_ID') | 
| WEB_COMPONENT_ROUTE_COMBINER | 
| Type : string | 
| Default value : ':' | 
| WEB_COMPONENT_ROUTE_REGEX | 
| Default value : /\((.*?)\)/ | 
| WEB_COMPONENT_ROUTE_SEPARATOR | 
| Type : string | 
| Default value : ',' | 
| writeFile | 
| Default value : util.promisify(fs.writeFile) | 
| writeFile | 
| Default value : util.promisify(fs.writeFile) |