{"version":3,"file":"ngx-addons-omni-auth-ui-material.mjs","sources":["../../../projects/omni-auth-ui-material/src/ui/loader/loader-overlay.directive.ts","../../../projects/omni-auth-ui-material/src/ui/icon-template.token.ts","../../../projects/omni-auth-ui-material/src/ui/button/button.component.ts","../../../projects/omni-auth-ui-material/src/ui/button/button.component.html","../../../projects/omni-auth-ui-material/src/ui/error-state-matcher.ts","../../../projects/omni-auth-ui-material/src/ui/input/input.component.ts","../../../projects/omni-auth-ui-material/src/ui/input/input.component.html","../../../projects/omni-auth-ui-material/src/ui/message/message.component.ts","../../../projects/omni-auth-ui-material/src/ui/message/message.component.html","../../../projects/omni-auth-ui-material/src/print-error/print-error.component.ts","../../../projects/omni-auth-ui-material/src/print-error/print-error.component.html","../../../projects/omni-auth-ui-material/src/confirm-signup/confirm-signup.component.ts","../../../projects/omni-auth-ui-material/src/confirm-signup/confirm-signup.component.html","../../../projects/omni-auth-ui-material/src/ui/map-to-native-input-type.pipe.ts","../../../projects/omni-auth-ui-material/src/configure-auth-ui.ts","../../../projects/omni-auth-ui-material/src/signup/signup.component.ts","../../../projects/omni-auth-ui-material/src/signup/signup.component.html","../../../projects/omni-auth-ui-material/src/social-buttons/social-buttons.component.ts","../../../projects/omni-auth-ui-material/src/social-buttons/social-buttons.component.html","../../../projects/omni-auth-ui-material/src/signin/signin.component.ts","../../../projects/omni-auth-ui-material/src/signin/signin.component.html","../../../projects/omni-auth-ui-material/src/reset-password/reset-password.component.ts","../../../projects/omni-auth-ui-material/src/reset-password/reset-password.component.html","../../../projects/omni-auth-ui-material/src/ui/loader/loader.component.ts","../../../projects/omni-auth-ui-material/src/ui/loader/loader.component.html","../../../projects/omni-auth-ui-material/src/ui/replace.pipe.ts","../../../projects/omni-auth-ui-material/src/authenticated/authenticated.component.ts","../../../projects/omni-auth-ui-material/src/authenticated/authenticated.component.html","../../../projects/omni-auth-ui-material/src/confirm-signin/confirm-signin.component.ts","../../../projects/omni-auth-ui-material/src/confirm-signin/confirm-signin.component.html","../../../projects/omni-auth-ui-material/src/authenticated-change-password/authenticated-change-password.component.ts","../../../projects/omni-auth-ui-material/src/authenticated-change-password/authenticated-change-password.component.html","../../../projects/omni-auth-ui-material/src/auth/auth.component.ts","../../../projects/omni-auth-ui-material/src/auth/auth.component.html","../../../projects/omni-auth-ui-material/src/ngx-addons-omni-auth-ui-material.ts"],"sourcesContent":["import {\n  ComponentRef,\n  Directive, effect,\n  ElementRef, inject, input,\n  Renderer2,\n  ViewContainerRef,\n} from '@angular/core';\nimport {MatProgressSpinner} from '@angular/material/progress-spinner';\nimport {DOCUMENT} from '@angular/common';\n\n@Directive({\n  selector: `[omniAuthUiMatLoadingOverlay]`,\n  standalone: true,\n})\nexport class LoaderOverlayDirective {\n  #hostElement = inject(ElementRef<HTMLElement>);\n  #viewContainerRef = inject(ViewContainerRef);\n  #renderer = inject(Renderer2);\n  #document = inject(DOCUMENT);\n  readonly loading = input(false);\n  #spinner?: ComponentRef<MatProgressSpinner>;\n\n  constructor() {\n    effect(() => {\n      const isLoading = this.loading();\n\n      if (isLoading) {\n        this.#nativeElement.classList.add('mat-loading');\n        this.#createSpinner();\n      } else {\n        this.#nativeElement.classList.remove('mat-loading');\n        this.#destroySpinner();\n      }\n    });\n  }\n\n  get #nativeElement(): HTMLElement {\n    return this.#hostElement.nativeElement;\n  }\n\n  #createSpinner(): void {\n    if (this.#spinner) {\n      return;\n    }\n\n    const wrapper = this.#document.createElement('div');\n    wrapper.classList.add('loading-wrapper');\n\n    this.#spinner = this.#viewContainerRef.createComponent(MatProgressSpinner);\n    this.#spinner.instance.mode = 'indeterminate';\n    this.#spinner.instance.color = 'primary';\n    this.#spinner.instance.strokeWidth = 2;\n    this.#spinner.instance.diameter = 21;\n\n    wrapper.style = `\n      position: absolute;\n      z-index: 15;\n      top: 0;\n      left: 0;\n      display: flex;\n      align-items: start;\n      padding-top: 7px;\n      width: 100%;\n      height: 100%;\n      justify-content: center;\n    }`\n\n    wrapper.appendChild(this.#spinner.instance._elementRef.nativeElement);\n    this.#renderer.appendChild(this.#nativeElement, wrapper);\n  }\n\n  #destroySpinner(): void {\n    if (this.#spinner) {\n      this.#spinner.destroy();\n      this.#spinner = undefined;\n    }\n  }\n}\n","import { InjectionToken, Type } from '@angular/core';\n\nexport const OMNI_AUTH_ICON_COMPONENT = new InjectionToken<Type<unknown>>(\n  'OMNI_AUTH_ICON_COMPONENT'\n);\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  inject,\n  input,\n  Type,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButton } from '@angular/material/button';\nimport { LoaderOverlayDirective } from '../loader/loader-overlay.directive';\nimport { OMNI_AUTH_ICON_COMPONENT } from '../icon-template.token';\n\n@Component({\n  selector: 'omni-auth-ui-mat-button',\n  standalone: true,\n  imports: [CommonModule, MatButton, LoaderOverlayDirective],\n  templateUrl: './button.component.html',\n  styleUrl: 'button.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[class.disabled]': 'disabled()' },\n})\nexport class ButtonComponent {\n  readonly iconComponent = inject<Type<unknown>>(OMNI_AUTH_ICON_COMPONENT, { optional: true });\n  readonly buttonType = input<'submit' | 'reset' | 'button'>('button');\n  readonly type = input<'primary' | 'secondary'>('primary');\n  readonly icon = input<string>();\n  readonly iconOnly = input(false);\n  readonly loading = input(false);\n  readonly disabled = input(false);\n}\n","<button\n  class=\"button\"\n  mat-flat-button\n  omniAuthUiMatLoadingOverlay\n  [class.icon-only]=\"iconOnly()\"\n  [disabled]=\"disabled() || loading()\"\n  [loading]=\"loading()\"\n  [ngClass]=\"type()\"\n  [type]=\"buttonType()\"\n>\n  @if (icon(); as icon) {\n    @if (iconComponent) {\n      <ng-container *ngComponentOutlet=\"iconComponent; inputs: { icon }\"/>\n    } @else {\n      <span class=\"icon\">{{ icon }}</span>\n    }\n  }\n  <ng-content/>\n</button>\n","import { ErrorStateMatcher } from '@angular/material/core';\nimport { FormControl, NgControl } from '@angular/forms';\n\nexport class HostStateMatcher implements ErrorStateMatcher {\n  readonly #parentFormControl: FormControl;\n\n  constructor(parentFormControl: FormControl) {\n    this.#parentFormControl = parentFormControl;\n  }\n\n  isErrorState(): boolean {\n    return (\n      this.#parentFormControl &&\n      this.#parentFormControl.invalid &&\n      (this.#parentFormControl.dirty || this.#parentFormControl.touched)\n    );\n  }\n\n  static fromNgControl(control: NgControl): ErrorStateMatcher {\n    if (control.control instanceof FormControl) {\n      return new HostStateMatcher(control.control as FormControl);\n    }\n\n    return new ErrorStateMatcher();\n  }\n}\n","import {AfterViewInit, ChangeDetectionStrategy, Component, inject, Injector, input} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, NgControl} from '@angular/forms';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatInputModule} from '@angular/material/input';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {HostStateMatcher} from '../error-state-matcher';\n\ntype InputValue = string | number;\n\n@Component({\n  selector: 'omni-auth-ui-mat-input',\n  standalone: true,\n  imports: [\n    CommonModule,\n    MatFormFieldModule,\n    MatInputModule,\n    FormsModule,\n    MatAutocompleteModule,\n  ],\n  templateUrl: './input.component.html',\n  styleUrl: './input.component.scss',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: InputComponent,\n      multi: true,\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InputComponent\n  implements ControlValueAccessor, AfterViewInit {\n  injector = inject(Injector);\n\n  readonly type = input<'text' | 'email' | 'password' | 'tel' | 'url'>('text');\n  readonly placeholder = input<string>();\n  readonly label = input.required<string>();\n  readonly hint = input<string>();\n\n  value?: InputValue;\n  disabled = false;\n  errorStateMatcher = new ErrorStateMatcher();\n\n  onChangeLocalValue(value: InputValue) {\n    this.value = value;\n    this.onChange?.(value);\n  }\n\n  onChange?: (_: InputValue) => void;\n  onTouched?: () => void;\n\n  ngAfterViewInit() {\n    this.errorStateMatcher = HostStateMatcher.fromNgControl(\n      this.injector.get(NgControl),\n    );\n  }\n\n  writeValue(value: InputValue): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: (_: InputValue) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n}\n","<mat-form-field class=\"field\" subscriptSizing=\"dynamic\">\n  <mat-label>{{ label() }}</mat-label>\n\n  <input\n    matInput\n    [disabled]=\"disabled\"\n    [errorStateMatcher]=\"errorStateMatcher\"\n    [ngModel]=\"value\"\n    [placeholder]=\"placeholder() ?? ''\"\n    [type]=\"type()\"\n    (blur)=\"onTouched && onTouched()\"\n    (ngModelChange)=\"onChangeLocalValue($event)\"\n  />\n  @if (hint(); as hint) {\n    <mat-hint>{{ hint }}</mat-hint>\n  }\n  <mat-error><ng-content/></mat-error>\n</mat-form-field>\n","import {ChangeDetectionStrategy, Component, inject, input, Type} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {OMNI_AUTH_ICON_COMPONENT} from '../icon-template.token';\n\nexport type MessageType = 'info' | 'warn';\n\n@Component({\n  selector: 'omni-auth-ui-mat-message',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './message.component.html',\n  styleUrl: 'message.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageComponent {\n  readonly iconComponent = inject<Type<unknown>>(OMNI_AUTH_ICON_COMPONENT, { optional: true });\n  readonly icon = input<'info' | string>();\n  readonly type = input<MessageType>('info');\n\n  get iconBasedOnType() {\n    switch (this.type()) {\n      case 'info':\n        return 'info';\n      case 'warn':\n        return 'warning';\n    }\n  }\n}\n","<div class=\"message-outer\">\n  <div class=\"message-inner\" [ngClass]=\"type()\">\n    @if (iconComponent) {\n      <ng-container *ngComponentOutlet=\"iconComponent; inputs: { icon: icon() ?? iconBasedOnType }\"/>\n    } @else {\n      <span class=\"icon\">{{ icon() ?? iconBasedOnType }}</span>\n    }\n    <div class=\"message-content\">\n      <ng-content/>\n    </div>\n  </div>\n</div>\n","import {ChangeDetectionStrategy, Component, input} from '@angular/core';\nimport {ContentConfig, ErrorMessagePipe, FlowError} from '@ngx-addons/omni-auth-core';\nimport {MessageComponent} from '../ui/message/message.component';\n\n@Component({\n  selector: 'omni-auth-ui-mat-print-error',\n  standalone: true,\n  imports: [ErrorMessagePipe, MessageComponent],\n  templateUrl: './print-error.component.html',\n  styleUrl: 'print-error.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PrintErrorComponent {\n  readonly source = input.required<FlowError['source']>();\n  readonly content = input.required<Pick<ContentConfig, 'errors'>>();\n}\n","@if((source() | errorMessage : content().errors)(); as error) {\n  <omni-auth-ui-mat-message class=\"auth-form-error\" type=\"warn\">\n    {{ error }}\n  </omni-auth-ui-mat-message>\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  inject,\n  input,\n  signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '../ui/button/button.component';\nimport { InputComponent } from '../ui/input/input.component';\nimport { MessageComponent } from '../ui/message/message.component';\nimport {\n  AUTH_CONFIG,\n  AuthConfig,\n  AuthRouteService,\n  ContentConfig,\n  OmniAuthService,\n  patterns,\n} from '@ngx-addons/omni-auth-core';\nimport { PrintErrorComponent } from '../print-error/print-error.component';\n\n@Component({\n  selector: 'omni-auth-ui-mat-confirm-signup',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ButtonComponent,\n    FormsModule,\n    InputComponent,\n    MessageComponent,\n    InputComponent,\n    ButtonComponent,\n    PrintErrorComponent,\n  ],\n  templateUrl: './confirm-signup.component.html',\n  styleUrls: ['./confirm-signup.component.scss', '../auth-form.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConfirmSignUpComponent {\n  #authService = inject(OmniAuthService);\n  authRoute = inject(AuthRouteService);\n  #env = inject<AuthConfig>(AUTH_CONFIG);\n  readonly content =\n    input.required<\n      Pick<ContentConfig, 'confirmationSignUp' | 'common' | 'errors'>\n    >();\n\n  readonly isLinkMode = input<boolean>(false);\n\n  user: {\n    identifier: string | null;\n    code?: string;\n  } = {\n    identifier: null,\n    code: undefined,\n  };\n\n  #defaultIdentifierPattern = (this.#env.identifierType === 'email' ? patterns.emailPattern : patterns.usernamePattern);\n  identifierPattern = this.#env.validation?.identifierPattern || this.#defaultIdentifierPattern;\n  passwordPattern = this.#env.validation?.passwordPattern || patterns.passwordPattern;\n\n  readonly resending = signal(false);\n  readonly processing = signal(false);\n  disabledResend = false;\n\n  async resendCode() {\n    const identifier = this.user.identifier ?? this.authRoute.currentIdentifier();\n\n    if (!identifier) {\n      return;\n    }\n\n    this.resending.set(true);\n\n    const hasError = await this.#authService.resendSignUpCode({\n      identifier,\n    });\n\n    this.resending.set(false);\n\n    if (!hasError) {\n      this.disabledResend = true;\n      setTimeout(() => {\n        this.disabledResend = false;\n      }, 60000);\n    }\n  }\n\n  async onSubmit() {\n    const identifier = this.user.identifier ?? this.authRoute.currentIdentifier();\n    const code = this.user.code;\n\n    if (!identifier || !code) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.confirmSignUp({\n      identifier,\n      code: String(code),\n    });\n\n    this.processing.set(false);\n  }\n}\n","<form #confirmForm=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"onSubmit()\">\n  <div class=\"auth-form-body\">\n    <omni-auth-ui-mat-message class=\"auth-form-hint\" icon=\"email\">\n      <span class=\"title\">{{ content().confirmationSignUp.subTitle }}</span>\n      <div class=\"description\">\n        {{ isLinkMode() ? content().confirmationSignUp.linkParagraph : content().confirmationSignUp.paragraph }}\n      </div>\n    </omni-auth-ui-mat-message>\n    @if (!isLinkMode()) {\n      <omni-auth-ui-mat-input #identifier=\"ngModel\" name=\"identifier\" required type=\"text\"\n                              [label]=\"content().common.identifierLabel\" [ngModel]=\"authRoute.currentIdentifier()\"\n                              [pattern]=\"identifierPattern\"\n                              [placeholder]=\"content().common.identifierPlaceholder\"\n                              (ngModelChange)=\"user.identifier = $event\">\n        @switch (true) {\n          @case (identifier.control.hasError(\"required\")) {\n            <ng-container>{{ content().common.identifierErrorRequiredText }}</ng-container>\n          }\n          @case (identifier.control.hasError(\"pattern\")) {\n            <ng-container>{{ content().common.identifierErrorPatternText }}</ng-container>\n          }\n        }\n      </omni-auth-ui-mat-input>\n      <omni-auth-ui-mat-input #code=\"ngModel\" name=\"code\" required type=\"text\" [label]=\"content().common.codeLabel\"\n                              [placeholder]=\"content().common.codePlaceholder\" [(ngModel)]=\"user.code\">\n        @switch (true) {\n          @case (code.control.hasError(\"pattern\")) {\n            <ng-container>{{ content().common.codeErrorRequiredText }}</ng-container>\n          }\n        }\n      </omni-auth-ui-mat-input>\n    }\n    <omni-auth-ui-mat-print-error source=\"confirmSignUp\" [content]=\"content()\"/>\n  </div>\n  <div class=\"auth-form-footer\">\n    @if (isLinkMode()) {\n      <omni-auth-ui-mat-button type=\"secondary\" (click)=\"authRoute.nextStep('login')\">{{\n          content().common.backToSignInLabel\n        }}\n      </omni-auth-ui-mat-button>\n    } @else {\n      <omni-auth-ui-mat-button type=\"secondary\" [disabled]=\"disabledResend\" [loading]=\"resending()\"\n                               (click)=\"resendCode()\">{{ content().confirmationSignUp.resendLabel }}\n      </omni-auth-ui-mat-button>\n      <omni-auth-ui-mat-button buttonType=\"submit\" type=\"primary\" [disabled]=\"!!confirmForm.invalid\"\n                               [loading]=\"processing()\">{{ content().confirmationSignUp.submitLabel }}\n      </omni-auth-ui-mat-button>\n    }\n  </div>\n</form>\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'mapToNativeType', standalone: true})\nexport class MapToNativeInputTypePipe implements PipeTransform {\n  transform(value: string): 'text' | 'email' | 'password' | 'tel' | 'url' {\n    switch (value) {\n      case 'email':\n        return 'email';\n      case 'password':\n        return 'password';\n      case 'tel':\n      case 'phone':\n        return 'tel';\n      case 'url':\n      case 'link':\n        return 'url';\n      default:\n        return 'text';\n    }\n  }\n}\n","import { InjectionToken, Provider, Type } from '@angular/core';\nimport { OMNI_AUTH_ICON_COMPONENT } from './ui/icon-template.token';\nimport { SignUpComponentConfig } from './signup/signup.component';\nimport { SignInComponentConfig } from './signin/signin.component';\n\nexport type AuthUiConfig = {\n  /**\n   * Hide message when user is authenticated.\n   */\n  hideAuthenticatedContent?: boolean;\n\n  signUp?: SignUpComponentConfig;\n  signIn?: SignInComponentConfig;\n\n  /**\n   * Icon component to render icon names. The component must accept an `icon` input of type string.\n   * If not provided, icon names will be rendered as plain text.\n   */\n  iconComponent?: Type<unknown>;\n};\n\nexport const AUTH_UI_CONFIG = new InjectionToken<AuthUiConfig>('AUTH_UI_CONFIG');\n\nexport const configureAuthUi = (params: AuthUiConfig): Provider[] => {\n  const providers: Provider[] = [\n    {\n      provide: AUTH_UI_CONFIG,\n      useValue: params,\n    },\n  ];\n\n  if (params.iconComponent) {\n    providers.push({\n      provide: OMNI_AUTH_ICON_COMPONENT,\n      useValue: params.iconComponent,\n    });\n  }\n\n  return providers;\n};\n","import {ChangeDetectionStrategy, Component, inject, input, output, signal} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {InputComponent} from '../ui/input/input.component';\nimport {\n  AUTH_CONFIG,\n  AuthConfig,\n  AuthRouteService,\n  ContentConfig,\n  OmniAuthService,\n  patterns\n} from '@ngx-addons/omni-auth-core';\nimport {ButtonComponent} from '../ui/button/button.component';\nimport {MatCheckbox} from '@angular/material/checkbox';\nimport {PrintErrorComponent} from '../print-error/print-error.component';\nimport {MapToNativeInputTypePipe} from '../ui/map-to-native-input-type.pipe';\nimport {AUTH_UI_CONFIG, AuthUiConfig} from '../configure-auth-ui';\n\nexport type AttributesContent = {\n  label: string,\n  placeholder: string,\n  requiredText: string,\n  minLengthText?: string,\n  maxLengthText?: string,\n  patternText?: string,\n}\n\ntype AttributesValidation = {\n  minLength: number;\n  maxLength: number;\n  pattern: RegExp;\n  isRequired: boolean;\n}\n\ntype PhoneAttributeConfig = {\n  type: 'phone';\n  key: string;\n  validation: Partial<AttributesValidation> & { isRequired: boolean };\n  content: AttributesContent;\n}\n\ntype EmailAttributeConfig = {\n  type: 'email';\n  key: string;\n  validation: Partial<AttributesValidation> & { isRequired: boolean };\n  content: AttributesContent;\n}\n\ntype CheckboxAttributeConfig = {\n  type: 'checkbox';\n  key: string;\n  validation: Pick<AttributesValidation, 'isRequired'>;\n  content: Pick<AttributesContent, 'label' | 'requiredText'>;\n}\n\ntype TextAttributeConfig = {\n  type: 'text';\n  key: string;\n  validation: Partial<AttributesValidation> & { isRequired: boolean };\n  content: AttributesContent;\n}\n\nexport type AttributeFieldConfig =\n  TextAttributeConfig\n  | EmailAttributeConfig\n  | PhoneAttributeConfig\n  | CheckboxAttributeConfig;\n\nexport type SignUpComponentConfig = {\n  attributes?: AttributeFieldConfig[]\n}\n\n@Component({\n  selector: 'omni-auth-ui-mat-signup',\n  standalone: true,\n  imports: [CommonModule, InputComponent, FormsModule, ButtonComponent, MatCheckbox, PrintErrorComponent, MapToNativeInputTypePipe],\n  templateUrl: './signup.component.html',\n  styleUrls: ['./signup.component.scss', './../auth-form.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SignUpComponent {\n  #authService = inject<OmniAuthService>(OmniAuthService);\n  #env = inject<AuthConfig>(AUTH_CONFIG);\n  #uiConfig = inject<AuthUiConfig>(AUTH_UI_CONFIG, { optional: true });\n  env = inject<AuthConfig>(AUTH_CONFIG);\n  authRoute = inject(AuthRouteService);\n  readonly processing = signal(false);\n  readonly content = input.required<Pick<ContentConfig, 'signUp' | 'common' | 'errors'>>();\n\n  get config() {\n    return this.#uiConfig?.signUp;\n  }\n  readonly termsAndConditions = output();\n\n  #defaultIdentifierPattern = (this.#env.identifierType === 'email' ? patterns.emailPattern : patterns.usernamePattern);\n  identifierPattern = this.#env.validation?.identifierPattern || this.#defaultIdentifierPattern;\n  passwordPattern = this.#env.validation?.passwordPattern || patterns.passwordPattern;\n  emailPattern = patterns.emailPattern;\n  phonePattern = patterns.phonePattern;\n\n  user: {\n    identifier: string | null;\n    password: string | null;\n    customAttributes: Record<string, string | boolean>;\n  } = {\n    identifier: null,\n    password: null,\n    customAttributes: {}\n  };\n\n  async onSubmit() {\n    const identifier = this.user.identifier ?? this.authRoute.currentIdentifier();\n    const password = this.user.password;\n    const attributes = this.user.customAttributes;\n\n    if (!identifier || !password) {\n      return;\n    }\n\n    this.processing.set(true);\n\n    await this.#authService.signUp({\n      identifier,\n      password,\n      attributes: {\n        ...attributes\n      },\n    });\n\n    this.processing.set(false);\n  }\n\n  updateUserIdentifier($event: string) {\n    this.user.identifier = $event;\n\n    // if (!this.config()?.fullName?.enabled || !this.config()?.fullName?.enableAutoFill) {\n    //   return;\n    // }\n    //\n    // const nextIdentifier = emailToFullName($event) || $event;\n    // if (nextIdentifier) {\n    //   this.user.fullName = nextIdentifier\n    // }\n  }\n\n  updateUserAttribute(key: string, value: string | boolean) {\n    if (!this.user.customAttributes) {\n      this.user.customAttributes = {};\n    }\n\n    this.user.customAttributes[key] = value;\n  }\n}\n","<!-- eslint-disable @angular-eslint/template/cyclomatic-complexity -->\n<form #registerForm=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"onSubmit()\">\n  <div class=\"auth-form-body\">\n    <omni-auth-ui-mat-input\n      #identifier=\"ngModel\"\n      maxlength=\"255\"\n      minlength=\"3\"\n      name=\"identifier\"\n      required\n      type=\"text\"\n      [label]=\"content().common.identifierLabel\"\n      [ngModel]=\"authRoute.currentIdentifier()\"\n      [pattern]=\"identifierPattern\"\n      [placeholder]=\"content().common.identifierPlaceholder\"\n      (ngModelChange)=\"updateUserIdentifier($event)\"\n    >\n      <ng-container>\n        @switch (true) {\n          @case (identifier.control.hasError(\"required\")) {\n            <ng-container>{{ content().common.identifierErrorRequiredText }}</ng-container>\n          }\n          @case (identifier.control.hasError(\"pattern\")) {\n            <ng-container>{{ content().common.identifierErrorPatternText }}</ng-container>\n          }\n          @case (identifier.control.hasError(\"minlength\")) {\n            <ng-container>{{ content().common.identifierErrorMinLengthText }}</ng-container>\n          }\n          @case (identifier.control.hasError(\"maxlength\")) {\n            <ng-container>{{ content().common.identifierErrorMaxLengthText }}</ng-container>\n          }\n        }\n      </ng-container>\n    </omni-auth-ui-mat-input>\n\n    <omni-auth-ui-mat-input\n      #password=\"ngModel\"\n      name=\"password\"\n      required\n      type=\"password\"\n      [class.invalid-password]=\"password.control.hasError('pattern')\"\n      [label]=\"content().common.passwordLabel\"\n      [pattern]=\"passwordPattern\"\n      [placeholder]=\"content().common.passwordPlaceholder\"\n      [(ngModel)]=\"user.password\"\n    >\n      @switch (true) {\n        @case (password.control.hasError(\"required\")) {\n          <ng-container>{{ content().common.passwordErrorRequiredText }}</ng-container>\n        }\n        @case (password.control.hasError(\"pattern\")) {\n          <ng-container>{{ content().common.passwordPatternText }}</ng-container>\n        }\n      }\n    </omni-auth-ui-mat-input>\n\n    @for (attribute of config?.attributes; track attribute.key) {\n      @switch (true) {\n        @case (attribute.type === 'checkbox') {\n          <div>\n            <mat-checkbox\n              #attributeInput=\"ngModel\"\n              class=\"additional-attribute-checkbox\"\n              [name]=\"attribute.key\"\n              [ngModel]=\"user.customAttributes[attribute.key]\"\n              [required]=\"attribute.validation.isRequired\"\n              (ngModelChange)=\"updateUserAttribute(attribute.key, $event)\">\n              {{ attribute.content.label }}\n            </mat-checkbox>\n            @switch (true) {\n              @case (attributeInput.hasError(\"required\") && attributeInput.touched) {\n                <span class=\"auth-form-custom-error\">{{ attribute.content.requiredText }}</span>\n              }\n            }\n          </div>\n\n        }\n        @case (attribute.type === 'phone' || attribute.type === 'email') {\n          <omni-auth-ui-mat-input\n            #attributeInput=\"ngModel\"\n            [label]=\"attribute.content.label\"\n            [maxlength]=\"attribute.validation.maxLength ?? 255\"\n            [minlength]=\"attribute.validation.minLength ?? 0\"\n            [name]=\"attribute.key\"\n            [ngModel]=\"user.customAttributes[attribute.key]\"\n            [pattern]=\"attribute.validation.pattern ?? (attribute.type === 'phone' ? phonePattern : emailPattern)\"\n            [placeholder]=\"attribute.content.placeholder\"\n            [required]=\"attribute.validation.isRequired\"\n            [type]=\"attribute.type | mapToNativeType\"\n            (ngModelChange)=\"updateUserAttribute(attribute.key, $event)\"\n          >\n\n            @switch (true) {\n              @case (attributeInput.hasError(\"required\")) {\n                <ng-container>{{ attribute.content.requiredText }}</ng-container>\n              }\n              @case (attributeInput.hasError(\"minlength\")) {\n                <ng-container>{{ attribute.content.minLengthText }}</ng-container>\n              }\n              @case (attributeInput.hasError(\"maxlength\")) {\n                <ng-container>{{ attribute.content.maxLengthText }}</ng-container>\n              }\n              @case (attributeInput.hasError(\"pattern\")) {\n                <ng-container>{{ attribute.content.patternText }}</ng-container>\n              }\n            }\n          </omni-auth-ui-mat-input>\n        }\n        @case (attribute.type === 'text') {\n          <omni-auth-ui-mat-input\n            #attributeInput=\"ngModel\"\n            [label]=\"attribute.content.label\"\n            [maxlength]=\"attribute.validation.maxLength ?? 0\"\n            [minlength]=\"attribute.validation.minLength ?? 0\"\n            [name]=\"attribute.key\"\n            [ngModel]=\"user.customAttributes[attribute.key]\"\n            [pattern]=\"attribute.validation.pattern ?? ''\"\n            [placeholder]=\"attribute.content.placeholder\"\n            [required]=\"attribute.validation.isRequired\"\n            [type]=\"attribute.type | mapToNativeType\"\n            (ngModelChange)=\"updateUserAttribute(attribute.key, $event)\"\n          >\n            @switch (true) {\n              @case (attributeInput.hasError(\"required\")) {\n                <ng-container>{{ attribute.content.requiredText }}</ng-container>\n              }\n              @case (attributeInput.hasError(\"minlength\")) {\n                <ng-container>{{ attribute.content.minLengthText }}</ng-container>\n              }\n              @case (attributeInput.hasError(\"maxlength\")) {\n                <ng-container>{{ attribute.content.maxLengthText }}</ng-container>\n              }\n              @case (attributeInput.hasError(\"pattern\")) {\n                <ng-container>{{ attribute.content.patternText }}</ng-container>\n              }\n            }\n          </omni-auth-ui-mat-input>\n        }\n      }\n    }\n\n    <ng-content select=\"[sign-up-footer]\"/>\n    <omni-auth-ui-mat-print-error source=\"signUp\" [content]=\"content()\"/>\n  </div>\n  <div class=\"auth-form-footer\">\n    <omni-auth-ui-mat-button\n      buttonType=\"submit\"\n      type=\"primary\"\n      [disabled]=\"!!registerForm.invalid\"\n      [loading]=\"processing()\"\n    >{{ content().signUp.submitLabel }}\n    </omni-auth-ui-mat-button>\n  </div>\n</form>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  inject,\n  input,\n  signal,\n} from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {\n  ContentConfig,\n  CustomSignInProviderKey,\n  OmniAuthService,\n  SignInProviderKey,\n} from '@ngx-addons/omni-auth-core';\nimport { MatButton } from '@angular/material/button';\nimport { LoaderOverlayDirective } from '../ui/loader/loader-overlay.directive';\nimport { PrintErrorComponent } from '../print-error/print-error.component';\nimport {MatTooltipModule} from '@angular/material/tooltip';\n\nexport type SignInProvider = {\n  /**\n   *  @description Key used to identify the social provider in the OmniAuthService.\n   */\n  key: SignInProviderKey;\n\n  /**\n   *  @description Label on button, e.g. 'Continue with Google', 'Sign in with Facebook', etc.\n   */\n  label?: string;\n\n  /**\n   *  @description Tooltip text that appears when hovering over the button.\n   */\n  tooltip?: string;\n\n  /**\n   *  @description Icon configuration for the social provider button. Preferably, use SVG icons for better scalability.\n   */\n  icon?: {\n    src: string;\n    alt: string;\n  };\n\n  fullWidth?: boolean;\n};\n\n@Component({\n  selector: 'omni-auth-ui-mat-social-buttons',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    MatButton,\n    LoaderOverlayDirective,\n    PrintErrorComponent,\n    NgOptimizedImage,\n    MatTooltipModule,\n  ],\n  templateUrl: './social-buttons.component.html',\n  styleUrls: ['./social-buttons.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SocialButtonsComponent {\n  readonly content =\n    input.required<\n      Pick<ContentConfig, 'socialButtons' | 'common' | 'errors'>\n    >();\n  readonly error = signal<string | null>(null);\n  readonly processing = signal<CustomSignInProviderKey | null>(null);\n  #authService = inject(OmniAuthService);\n\n  readonly signInProviders = input.required<SignInProvider[]>();\n\n  onSocialButtonClick = async (provider: SignInProvider) => {\n    this.processing.set(provider.key);\n\n    this.error.set(null);\n\n    const response = await this.#authService.signInWithProvider(provider.key);\n\n    this.processing.set(null);\n\n    if (response) {\n      this.error.set(\n        this.content().errors[response.code] ?? this.content().errors.unknown,\n      );\n    }\n  };\n  protected readonly name = name;\n}\n","<div class=\"social-wrapper\">\n  <div class=\"social-divider\">\n    <hr aria-hidden=\"true\" class=\"social-divider-line\">\n    <span class=\"social-divider-text\">  {{ content().socialButtons.orLine }}</span>\n    <hr aria-hidden=\"true\" class=\"social-divider-line\">\n  </div>\n\n  <omni-auth-ui-mat-print-error source=\"signInWithProvider\" [content]=\"content()\"/>\n\n  <div class=\"social-list\">\n    @for (signInProvider of signInProviders(); track signInProvider.key) {\n      <button class=\"social-list-item\" mat-button omniAuthUiMatLoadingOverlay\n              type=\"button\"\n              [class.full-width]=\"signInProvider.fullWidth\"\n              [class.processing]=\"processing() === signInProvider.key\"\n              [disabled]=\"processing()\"\n              [loading]=\"processing() === signInProvider.key\"\n              [matTooltip]=\"signInProvider.tooltip\"\n              (click)=\"onSocialButtonClick(signInProvider)\"\n      >\n\n        <div class=\"social-list-item-content\">\n          @if (signInProvider.icon; as icon) {\n            <img height=\"24px\" width=\"24px\" [alt]=\"icon.alt\" [ngSrc]=\"icon.src\"/>\n          } @else {\n            @switch (signInProvider.key) {\n              @case ('google') {\n                <svg aria-hidden=\"true\" focusable=\"false\" height=\"24\"\n                     preserveAspectRatio=\"xMidYMid\"\n                     role=\"img\" viewBox=\"0 0 262 262\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    d=\"M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027\"\n                    fill=\"#4285F4\"/>\n                  <path\n                    d=\"M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1\"\n                    fill=\"#34A853\"/>\n                  <path\n                    d=\"M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782\"\n                    fill=\"#FBBC05\"/>\n                  <path\n                    d=\"M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251\"\n                    fill=\"#EB4335\"/>\n                </svg>\n              }\n              @case ('facebook') {\n                <svg aria-hidden=\"true\" fill=\"#4267b2\" focusable=\"false\" height=\"24\" role=\"img\"\n                     viewBox=\"0 0 24 24\" width=\"24\"\n                     xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    d=\"M22.675 0H1.325C.593 0 0 .593 0 1.325v21.351C0 23.407.593 24 1.325 24H12.82v-9.294H9.692v-3.622h3.128V8.413c0-3.1 1.893-4.788 4.659-4.788 1.325 0 2.463.099 2.795.143v3.24l-1.918.001c-1.504 0-1.795.715-1.795 1.763v2.313h3.587l-.467 3.622h-3.12V24h6.116c.73 0 1.323-.593 1.323-1.325V1.325C24 .593 23.407 0 22.675 0z\"/>\n                </svg>\n              }\n              @case ('apple') {\n                <svg aria-hidden=\"true\" focusable=\"false\" height=\"24\" role=\"img\" viewBox=\"0 0 170 170\"\n                     width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    d=\"M150.37 130.25c-2.45 5.66-5.35 10.87-8.71 15.66-4.58 6.53-8.33 11.05-11.22 13.56-4.48 4.12-9.28 6.23-14.42 6.35-3.69 0-8.14-1.05-13.32-3.18-5.197-2.12-9.973-3.17-14.34-3.17-4.58 0-9.492 1.05-14.746 3.17-5.262 2.13-9.501 3.24-12.742 3.35-4.929.21-9.842-1.96-14.746-6.52-3.13-2.73-7.045-7.41-11.735-14.04-5.032-7.08-9.169-15.29-12.41-24.65-3.471-10.11-5.211-19.9-5.211-29.378 0-10.857 2.346-20.221 7.045-28.068 3.693-6.303 8.606-11.275 14.755-14.925s12.793-5.51 19.948-5.629c3.915 0 9.049 1.211 15.429 3.591 6.362 2.388 10.447 3.599 12.238 3.599 1.339 0 5.877-1.416 13.57-4.239 7.275-2.618 13.415-3.702 18.445-3.275 13.63 1.1 23.87 6.473 30.68 16.153-12.19 7.386-18.22 17.731-18.1 31.002.11 10.337 3.86 18.939 11.23 25.769 3.34 3.17 7.07 5.62 11.22 7.36-.9 2.61-1.85 5.11-2.86 7.51zM119.11 7.24c0 8.102-2.96 15.667-8.86 22.669-7.12 8.324-15.732 13.134-25.071 12.375a25.222 25.222 0 0 1-.188-3.07c0-7.778 3.386-16.102 9.399-22.908 3.002-3.446 6.82-6.311 11.45-8.597 4.62-2.252 8.99-3.497 13.1-3.71.12 1.083.17 2.166.17 3.24z\"/>\n                </svg>\n              }\n              @case ('github') {\n                <svg height=\"24px\" role=\"img\" viewBox=\"0 0 24 24\" width=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <path\n                    d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"/>\n                </svg>\n              }\n              @case ('microsoft') {\n                <svg fill=\"none\" height=\"24px\" viewBox=\"0 0 32 32\" width=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <rect fill=\"#FEBA08\" height=\"10\" width=\"10\" x=\"17\" y=\"17\"/>\n                  <rect fill=\"#05A6F0\" height=\"10\" width=\"10\" x=\"5\" y=\"17\"/>\n                  <rect fill=\"#80BC06\" height=\"10\" width=\"10\" x=\"17\" y=\"5\"/>\n                  <rect fill=\"#F25325\" height=\"10\" width=\"10\" x=\"5\" y=\"5\"/>\n                </svg>\n              }\n              @default {\n                <svg fill=\"#000000\" height=\"24px\" viewBox=\"0 0 320 320\" width=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\n                  <g>\n                    <path d=\"M160,103.695c-18.802,0-36.461,5.146-51.731,14.14V64.523c0-24.551,18.025-44.523,40.183-44.523h23.098\n                    c22.157,0,40.183,19.973,40.183,44.523c0,5.522,4.478,10,10,10s10-4.478,10-10C231.731,28.945,204.733,0,171.549,0h-23.098\n                    c-33.185,0-60.183,28.945-60.183,64.523v68.591c-20.308,19.738-33.011,47.731-33.011,78.733C55.258,271.483,102.245,320,160,320\n                    s104.742-48.517,104.742-108.152S217.755,103.695,160,103.695z M160,300c-46.727,0-84.742-39.545-84.742-88.152\n                    s38.016-88.152,84.742-88.152s84.742,39.545,84.742,88.152S206.727,300,160,300z\"/>\n                    <path d=\"M189.504,195.563c0-16.273-13.235-29.513-29.505-29.513c-16.268,0-29.503,13.239-29.503,29.513\n                    c0,8.318,3.452,16.06,9.343,21.557l-7.075,31.729c-0.159,0.715-0.239,1.444-0.239,2.177c0,8.667,8.488,15.202,19.744,15.202h15.467\n                    c11.254,0,19.74-6.535,19.74-15.202c0-0.732-0.08-1.462-0.24-2.177l-7.076-31.729C186.051,211.622,189.504,203.881,189.504,195.563\n                    z M153.84,246.227l6.159-27.622l6.161,27.622H153.84z M164.36,204.014c-1.944,1.01-3.443,2.591-4.361,4.455\n                    c-0.918-1.864-2.417-3.445-4.361-4.455c-3.171-1.647-5.142-4.886-5.142-8.451c0-5.245,4.263-9.513,9.503-9.513\n                    c5.241,0,9.505,4.268,9.505,9.513C169.504,199.127,167.533,202.365,164.36,204.014z\"/>\n                  </g>\n                </svg>\n              }\n            }\n          }\n          {{ signInProvider.label }}\n        </div>\n      </button>\n\n    }\n  </div>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  inject,\n  input,\n  signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { InputComponent } from '../ui/input/input.component';\nimport {\n  AUTH_CONFIG,\n  AuthConfig,\n  AuthRouteService,\n  ContentConfig,\n  OmniAuthService,\n  patterns,\n} from '@ngx-addons/omni-auth-core';\nimport { ButtonComponent } from '../ui/button/button.component';\nimport {\n  SignInProvider,\n  SocialButtonsComponent,\n} from '../social-buttons/social-buttons.component';\nimport { PrintErrorComponent } from '../print-error/print-error.component';\nimport { AUTH_UI_CONFIG, AuthUiConfig } from '../configure-auth-ui';\n\nexport type SignInComponentConfig = {\n  signInProviders?: SignInProvider[];\n};\n\n@Component({\n  selector: 'omni-auth-ui-mat-signin',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    InputComponent,\n    ButtonComponent,\n    SocialButtonsComponent,\n    PrintErrorComponent,\n  ],\n  templateUrl: './signin.component.html',\n  styleUrls: ['./signin.component.scss', './../auth-form.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SignInComponent {\n  #authService = inject(OmniAuthService);\n  #authRoute = inject(AuthRouteService);\n  #env = inject<AuthConfig>(AUTH_CONFIG);\n  #uiConfig = inject<AuthUiConfig>(AUTH_UI_CONFIG, { optional: true });\n\n  readonly content =\n    input.required<\n      Pick<ContentConfig, 'signIn' | 'socialButtons' | 'common' | 'errors'>\n    >();\n\n  get config() {\n    return this.#uiConfig?.signIn;\n  }\n\n  readonly processing = signal(false);\n\n  get currentIdentifier() {\n    return this.#authRoute.currentIdentifier;\n  }\n\n  get isPasswordlessEnabled() {\n    return Boolean(this.#env.passwordlessEnabled);\n  }\n\n  user = {\n    identifier: null,\n    password: null,\n  };\n  #defaultIdentifierPattern = (this.#env.identifierType === 'email' ? patterns.emailPattern : patterns.usernamePattern);\n  identifierPattern = this.#env.validation?.identifierPattern || this.#defaultIdentifierPattern;\n  passwordPattern = this.#env.validation?.passwordPattern || patterns.passwordPattern;\n\n  async onSubmit() {\n    const identifier = this.user.identifier ?? this.#authRoute.currentIdentifier();\n    const password = this.user.password;\n\n    const isValidPassword = this.#env.passwordlessEnabled || Boolean(password);\n    if (!identifier || !isValidPassword) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.signIn({\n      identifier,\n      password: password ?? undefined,\n    });\n\n    this.processing.set(false);\n  }\n\n  navigateToReset() {\n    const state = this.#authService.connectorConfig.resetPasswordConfirmation === 'code' ? 'reset_password' : 'reset_password_link';\n    this.#authRoute.nextStep(\n      state,\n      this.user.identifier ? { identifier: this.user.identifier } : undefined,\n    );\n  }\n}\n","<form #registerForm=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"onSubmit()\">\n  <div class=\"auth-form-body\">\n    <omni-auth-ui-mat-input\n      #identifier=\"ngModel\"\n      name=\"identifier\"\n      required\n      type=\"text\"\n      [label]=\"content().common.identifierLabel\"\n      [ngModel]=\"currentIdentifier()\"\n      [pattern]=\"identifierPattern\"\n      [placeholder]=\"content().common.identifierPlaceholder\"\n      (ngModelChange)=\"user.identifier = $event\"\n    >\n      @switch (true) {\n        @case (identifier.control.hasError(\"required\")) {\n          <ng-container>{{ content().common.identifierErrorRequiredText }}</ng-container>\n        }\n        @case (identifier.control.hasError(\"pattern\")) {\n          <ng-container>{{ content().common.identifierErrorPatternText }}</ng-container>\n        }\n      }\n    </omni-auth-ui-mat-input>\n\n    @if(!isPasswordlessEnabled) {\n      <omni-auth-ui-mat-input\n        #password=\"ngModel\"\n        name=\"password\"\n        required\n        type=\"password\"\n        [class.invalid-password]=\"password.control.hasError('pattern')\"\n        [label]=\"content().common.passwordLabel\"\n        [pattern]=\"passwordPattern\"\n        [placeholder]=\"content().common.passwordPlaceholder\"\n        [(ngModel)]=\"user.password\"\n      >\n        @switch (true) {\n          @case (password.control.hasError(\"required\")) {\n            <ng-container>{{ content().common.passwordErrorRequiredText }}</ng-container>\n          }\n          @case (password.control.hasError(\"pattern\")) {\n            <ng-container>{{ content().common.passwordPatternText }}</ng-container>\n          }\n          @case (password.control.hasError(\"minlength\")) {\n            <ng-container>{{ content().common.passwordErrorMinLengthText }}</ng-container>\n          }\n        }\n      </omni-auth-ui-mat-input>\n    }\n    <p>\n      <a\n        class=\"link\"\n        tabindex=\"0\"\n        target=\"_blank\"\n        (click)=\"navigateToReset()\"\n        (keyup)=\"navigateToReset()\"\n      >\n        {{ content().signIn.forgetPassword }}\n      </a>\n    </p>\n    <ng-content select=\"[sign-in-footer]\"/>\n    <omni-auth-ui-mat-print-error source=\"signIn\" [content]=\"content()\"/>\n  </div>\n  <div class=\"auth-form-footer\">\n    <omni-auth-ui-mat-button\n      buttonType=\"submit\"\n      type=\"primary\"\n      [disabled]=\"!!registerForm.invalid\"\n      [loading]=\"processing()\"\n    >{{ content().signIn.submitLabel }}\n    </omni-auth-ui-mat-button>\n  </div>\n\n  @if (config?.signInProviders; as signInProviders) {\n    <div class=\"auth-form-social\">\n      <omni-auth-ui-mat-social-buttons\n        [content]=\"content()\"\n        [signInProviders]=\"signInProviders\"\n      />\n    </div>\n  }\n</form>\n","import {ChangeDetectionStrategy, Component, inject, input, signal} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MessageComponent} from '../ui/message/message.component';\nimport {InputComponent} from '../ui/input/input.component';\nimport {\n  AUTH_CONFIG,\n  AuthConfig,\n  AuthRouteService,\n  ContentConfig,\n  OmniAuthService,\n  patterns,\n} from '@ngx-addons/omni-auth-core';\nimport {FormsModule} from '@angular/forms';\nimport {ButtonComponent} from '../ui/button/button.component';\nimport {PrintErrorComponent} from '../print-error/print-error.component';\n\n@Component({\n  selector: 'omni-auth-ui-mat-reset-password',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    InputComponent,\n    MessageComponent,\n    MessageComponent,\n    ButtonComponent,\n    PrintErrorComponent,\n  ],\n  templateUrl: './reset-password.component.html',\n  styleUrls: ['./reset-password.component.scss', '../auth-form.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ResetPasswordComponent {\n  #authService = inject(OmniAuthService);\n  #env = inject<AuthConfig>(AUTH_CONFIG);\n  authRoute = inject(AuthRouteService);\n  readonly content = input.required<Pick<ContentConfig, 'resetPassword' | 'common' | 'errors'>>();\n  readonly isLinkMode = input<boolean>(false);\n\n  user: {\n    identifier: string | null;\n    code: string | null;\n    password: string | null;\n  } = {\n    identifier: null,\n    code: null,\n    password: null,\n  };\n\n  #defaultIdentifierPattern = (this.#env.identifierType === 'email' ? patterns.emailPattern : patterns.usernamePattern);\n  identifierPattern = this.#env.validation?.identifierPattern || this.#defaultIdentifierPattern;\n  passwordPattern = this.#env.validation?.passwordPattern || patterns.passwordPattern;\n\n  readonly resending = signal(false);\n  readonly processing = signal(false);\n  readonly emailSent = signal(false);\n\n  async sendEmail() {\n    const identifier = this.user.identifier ?? this.authRoute.currentIdentifier();\n\n    if (!identifier) {\n      return;\n    }\n\n    this.resending.set(true);\n\n    const hasError = await this.#authService.forgotPassword({\n      identifier,\n    });\n\n    this.resending.set(false);\n\n    if (!hasError) {\n      this.emailSent.set(true);\n    }\n  }\n\n  async onSubmit() {\n    const identifier = this.user.identifier ?? this.authRoute.currentIdentifier();\n    const newPassword = this.user.password;\n    const code = this.user.code;\n\n    if (!identifier || !newPassword || !code) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.confirmForgotPassword({\n      identifier,\n      code: String(code),\n      newPassword,\n    });\n\n    this.processing.set(false);\n  }\n}\n","@if (!emailSent()) {\n  <form #sendCodeForm=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"sendEmail()\">\n    <div class=\"auth-form-header\">\n      <omni-auth-ui-mat-button\n        type=\"secondary\"\n        [icon]=\"content().common.icons.back\"\n        (click)=\"authRoute.nextStep('login')\"\n      >\n        {{ content().common.backToSignInLabel }}\n      </omni-auth-ui-mat-button>\n    </div>\n\n    <div class=\"auth-form-body\">\n      <omni-auth-ui-mat-message class=\"auth-form-hint\" icon=\"email\">\n        @if (isLinkMode()) {\n          <span class=\"title\">{{ content().resetPassword.sendLinkMessage }}</span>\n        } @else {\n          <span class=\"title\">{{ content().resetPassword.sendCodeMessage }}</span>\n        }\n      </omni-auth-ui-mat-message>\n\n      <omni-auth-ui-mat-input\n        #identifier=\"ngModel\"\n        name=\"identifier\"\n        required\n        type=\"text\"\n        [label]=\"content().common.identifierLabel\"\n        [ngModel]=\"authRoute.currentIdentifier()\"\n        [pattern]=\"identifierPattern\"\n        [placeholder]=\"content().common.identifierPlaceholder\"\n        (ngModelChange)=\"user.identifier = $event\"\n      >\n        @switch (true) {\n          @case (identifier.control.hasError(\"required\")) {\n            <ng-container>{{ content().common.identifierErrorRequiredText }}</ng-container>\n          }\n          @case (identifier.control.hasError(\"pattern\")) {\n            <ng-container>{{ content().common.identifierErrorPatternText }}</ng-container>\n          }\n        }\n      </omni-auth-ui-mat-input>\n      <omni-auth-ui-mat-print-error source=\"forgotPassword\" [content]=\"content()\"/>\n    </div>\n\n    <div class=\"auth-form-footer\">\n      <omni-auth-ui-mat-button\n        buttonType=\"submit\"\n        [disabled]=\"!!sendCodeForm.invalid\"\n        [loading]=\"resending()\"\n      >{{ content().resetPassword.submitLabel }}\n      </omni-auth-ui-mat-button>\n    </div>\n  </form>\n} @else {\n  @if (isLinkMode()) {\n    <div class=\"auth-form\">\n      <div class=\"auth-form-header\">\n        <omni-auth-ui-mat-button\n          type=\"secondary\"\n          [icon]=\"content().common.icons.back\"\n          (click)=\"authRoute.nextStep('login')\"\n        >\n          {{ content().common.backToSignInLabel }}\n        </omni-auth-ui-mat-button>\n      </div>\n      <div class=\"auth-form-body\">\n        <omni-auth-ui-mat-message class=\"auth-form-hint\" icon=\"email\">\n          <span class=\"title\">{{ content().resetPassword.linkSentToEmail }}</span>\n        </omni-auth-ui-mat-message>\n      </div>\n    </div>\n  } @else {\n    <form #sendCode=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"onSubmit()\">\n      <div class=\"auth-form-header\">\n        <omni-auth-ui-mat-button\n          type=\"secondary\"\n          [icon]=\"content().common.icons.back\"\n          (click)=\"authRoute.nextStep('login')\"\n        >\n          {{ content().common.backToSignInLabel }}\n        </omni-auth-ui-mat-button>\n      </div>\n\n      <div class=\"auth-form-body\">\n        <omni-auth-ui-mat-message class=\"auth-form-hint\" icon=\"email\">\n          <span class=\"title\">{{ content().resetPassword.sendCodeMessage }}</span>\n        </omni-auth-ui-mat-message>\n\n        <omni-auth-ui-mat-input\n          #code=\"ngModel\"\n          name=\"code\"\n          required\n          type=\"text\"\n          [label]=\"content().common.codeLabel\"\n          [placeholder]=\"content().common.codePlaceholder\"\n          [(ngModel)]=\"user.code\"\n        >\n          <ng-container>\n            @switch (true) {\n              @case (code.control.hasError(\"required\")) {\n                <ng-container>{{ content().common.codeErrorRequiredText }}</ng-container>\n              }\n              @case (code.control.hasError(\"pattern\")) {\n                <ng-container>{{ content().common.codeErrorRequiredText }}</ng-container>\n              }\n            }\n          </ng-container>\n        </omni-auth-ui-mat-input>\n\n        <omni-auth-ui-mat-input\n          #password=\"ngModel\"\n          name=\"password\"\n          required\n          type=\"password\"\n          [class.invalid-password]=\"password.control.hasError('pattern')\"\n          [label]=\"content().common.passwordLabel\"\n          [pattern]=\"passwordPattern\"\n          [placeholder]=\"content().common.passwordPlaceholder\"\n          [(ngModel)]=\"user.password\"\n        >\n          @switch (true) {\n            @case (password.control.hasError(\"required\")) {\n              <ng-container>{{ content().common.passwordErrorRequiredText }}</ng-container>\n            }\n            @case (password.control.hasError(\"pattern\")) {\n              <ng-container>{{ content().common.passwordPatternText }}</ng-container>\n            }\n          }\n        </omni-auth-ui-mat-input>\n        <omni-auth-ui-mat-print-error source=\"confirmForgotPassword\" [content]=\"content()\"/>\n      </div>\n\n      <div class=\"auth-form-footer\">\n        <omni-auth-ui-mat-button\n          buttonType=\"submit\"\n          type=\"primary\"\n          [disabled]=\"!!sendCode.invalid\"\n          [loading]=\"processing()\"\n        >{{ content().resetPassword.submitLabel }}\n        </omni-auth-ui-mat-button>\n      </div>\n    </form>\n  }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\n\n@Component({\n  selector: 'omni-auth-ui-mat-loader',\n  standalone: true,\n  imports: [CommonModule, MatProgressSpinner],\n  templateUrl: './loader.component.html',\n  styleUrl: 'loader.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoaderComponent {\n  readonly verticalCenter = input(false);\n}\n","<div class=\"loader-container backdrop-blur\" [class.vertical-center]=\"verticalCenter()\">\n  <mat-spinner class=\"loader\" [diameter]=\"30\" />\n</div>\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'replace', standalone: true})\nexport class ReplacePipe implements PipeTransform {\n  transform(value: string, strToReplace: string, replacementStr: string): string {\n    if (!value || !strToReplace || !replacementStr) {\n      return value;\n    }\n\n    return value.replace(new RegExp(strToReplace, 'g'), replacementStr);\n  }\n}\n","import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {\n  ContentConfig,\n  OmniAuthService\n} from '@ngx-addons/omni-auth-core';\nimport {MessageComponent} from '../ui/message/message.component';\nimport {ButtonComponent} from '../ui/button/button.component';\nimport {ReplacePipe} from '../ui/replace.pipe';\nimport {PrintErrorComponent} from '../print-error/print-error.component';\n\n@Component({\n  selector: 'omni-auth-ui-mat-authenticated',\n  standalone: true,\n  imports: [\n    CommonModule,\n    MatTabsModule,\n    MessageComponent,\n    ButtonComponent,\n    ReplacePipe,\n    PrintErrorComponent,\n  ],\n  templateUrl: './authenticated.component.html',\n  styleUrls: ['./authenticated.component.scss', './../auth-form.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuthenticatedComponent {\n  authService = inject(OmniAuthService);\n  readonly content = input.required<Pick<ContentConfig, 'loggedIn' | 'errors'>>();\n}\n","@if (authService.currentUser(); as user) {\n  <div class=\"auth-form-body\">\n    <omni-auth-ui-mat-message type=\"info\">\n      @if (user?.displayName; as displayName) {\n        {{ content().loggedIn.welcomeMessage | replace: '{{displayName}}': displayName }}\n      } @else {\n        {{ content().loggedIn.welcomeMessageNoDisplayName }}\n      }\n    </omni-auth-ui-mat-message>\n    <omni-auth-ui-mat-print-error source=\"signOut\" [content]=\"content()\" />\n  </div>\n\n  <div class=\"auth-form-footer\">\n    <omni-auth-ui-mat-button type=\"primary\" (click)=\"authService.signOut()\">Logout</omni-auth-ui-mat-button>\n  </div>\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  inject,\n  input,\n  signal,\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {ButtonComponent} from '../ui/button/button.component';\nimport {MessageComponent} from '../ui/message/message.component';\nimport {\n  AUTH_CONFIG,\n  AuthConfig,\n  AuthRouteService,\n  ContentConfig, OmniAuthService,\n  patterns,\n} from '@ngx-addons/omni-auth-core';\nimport {PrintErrorComponent} from '../print-error/print-error.component';\nimport {InputComponent} from '../ui/input/input.component';\n\n@Component({\n  selector: 'omni-auth-ui-mat-confirm-signin',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ButtonComponent,\n    FormsModule,\n    MessageComponent,\n    ButtonComponent,\n    PrintErrorComponent,\n    InputComponent,\n  ],\n  templateUrl: './confirm-signin.component.html',\n  styleUrls: ['./confirm-signin.component.scss', '../auth-form.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConfirmSigninComponent {\n  authRoute = inject(AuthRouteService);\n  #authService = inject(OmniAuthService);\n  #env = inject<AuthConfig>(AUTH_CONFIG);\n  readonly content =\n    input.required<\n      Pick<ContentConfig, 'confirmationSignIn' | 'common' | 'errors'>\n    >();\n\n  user: {\n    identifier: string | null;\n    code?: string;\n  } = {\n    identifier: null,\n    code: undefined,\n  };\n\n  #defaultIdentifierPattern = (this.#env.identifierType === 'email' ? patterns.emailPattern : patterns.usernamePattern);\n  identifierPattern = this.#env.validation?.identifierPattern || this.#defaultIdentifierPattern;\n  passwordPattern = this.#env.validation?.passwordPattern || patterns.passwordPattern;\n\n  readonly processing = signal(false);\n\n  async onSubmit() {\n    const identifier = this.user.identifier ?? this.authRoute.currentIdentifier();\n    const code = this.user.code;\n\n    if (!identifier || !code) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.confirmSignIn({\n      identifier,\n      code: String(code),\n    });\n\n    this.processing.set(false);\n  }\n}\n","<form #confirmForm=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"onSubmit()\">\n  <div class=\"auth-form-body\">\n    <omni-auth-ui-mat-message class=\"auth-form-hint\" icon=\"email\">\n      <span class=\"title\">{{ content().confirmationSignIn.subTitleEmail }}</span>\n      <div class=\"description\">\n        {{ content().confirmationSignIn.linkSentToEmail }}\n      </div>\n    </omni-auth-ui-mat-message>\n    <omni-auth-ui-mat-input\n      #identifier=\"ngModel\"\n      name=\"identifier\"\n      required\n      type=\"text\"\n      [label]=\"content().common.identifierLabel\"\n      [ngModel]=\"authRoute.currentIdentifier()\"\n      [pattern]=\"identifierPattern\"\n      [placeholder]=\"content().common.identifierPlaceholder\"\n      (ngModelChange)=\"user.identifier = $event\"\n    >\n      @switch (true) {\n        @case (identifier.control.hasError(\"required\")) {\n          <ng-container>{{ content().common.identifierErrorRequiredText }}</ng-container>\n        }\n        @case (identifier.control.hasError(\"pattern\")) {\n          <ng-container>{{ content().common.identifierErrorPatternText }}</ng-container>\n        }\n      }\n    </omni-auth-ui-mat-input>\n    <omni-auth-ui-mat-input\n      #code=\"ngModel\"\n      name=\"code\"\n      required\n      type=\"text\"\n      [label]=\"content().common.codeLabel\"\n      [placeholder]=\"content().common.codePlaceholder\"\n      [(ngModel)]=\"user.code\"\n    >\n      @switch (true) {\n        @case (code.control.hasError(\"pattern\")) {\n          <ng-container>{{ content().common.codeErrorRequiredText }}</ng-container>\n        }\n      }\n    </omni-auth-ui-mat-input>\n\n    <omni-auth-ui-mat-print-error source=\"confirmSignIn\" [content]=\"content()\"/>\n  </div>\n  <div class=\"auth-form-footer\">\n    <omni-auth-ui-mat-button\n      type=\"secondary\"\n      (click)=\"authRoute.nextStep('login')\"\n    >{{ content().confirmationSignIn.backButton }}\n    </omni-auth-ui-mat-button>\n    <omni-auth-ui-mat-button\n      buttonType=\"submit\"\n      type=\"primary\"\n      [disabled]=\"!!confirmForm.invalid\"\n      [loading]=\"processing()\"\n    >{{ content().confirmationSignIn.submitLabel }}\n    </omni-auth-ui-mat-button>\n  </div>\n\n</form>\n","import {ChangeDetectionStrategy, Component, inject, input, signal} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MessageComponent} from '../ui/message/message.component';\nimport {InputComponent} from '../ui/input/input.component';\nimport {\n  AUTH_CONFIG,\n  AuthConfig,\n  AuthRouteService,\n  ContentConfig,\n  OmniAuthService,\n  patterns,\n} from '@ngx-addons/omni-auth-core';\nimport {FormsModule} from '@angular/forms';\nimport {ButtonComponent} from '../ui/button/button.component';\nimport {PrintErrorComponent} from '../print-error/print-error.component';\n\n@Component({\n  selector: 'omni-auth-ui-mat-authenticated-change-password',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    InputComponent,\n    MessageComponent,\n    MessageComponent,\n    ButtonComponent,\n    PrintErrorComponent,\n  ],\n  templateUrl: './authenticated-change-password.component.html',\n  styleUrls: ['./authenticated-change-password.component.scss', '../auth-form.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuthenticatedChangePasswordComponent {\n  #authService = inject(OmniAuthService);\n  #env = inject<AuthConfig>(AUTH_CONFIG);\n  authRoute = inject(AuthRouteService);\n  readonly content = input.required<Pick<ContentConfig, 'resetPassword' | 'common' | 'errors'>>();\n  readonly isLinkMode = input<boolean>(false);\n\n  user: {\n    password: string | null;\n  } = {\n    password: null,\n  };\n\n  #defaultIdentifierPattern = (this.#env.identifierType === 'email' ? patterns.emailPattern : patterns.usernamePattern);\n  identifierPattern = this.#env.validation?.identifierPattern || this.#defaultIdentifierPattern;\n  passwordPattern = this.#env.validation?.passwordPattern || patterns.passwordPattern;\n\n  readonly processing = signal(false);\n\n  async onSubmit() {\n    const newPassword = this.user.password;\n\n    if (!newPassword) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.changePassword({\n      newPassword,\n    });\n\n    this.processing.set(false);\n  }\n}\n","<form #sendCode=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"onSubmit()\">\n  <div class=\"auth-form-body\">\n    <omni-auth-ui-mat-message class=\"auth-form-hint\" icon=\"email\">\n      <span class=\"title\">{{ content().resetPassword.sendCodeMessage }}</span>\n    </omni-auth-ui-mat-message>\n\n    <omni-auth-ui-mat-input\n      #password=\"ngModel\"\n      name=\"password\"\n      required\n      type=\"password\"\n      [class.invalid-password]=\"password.control.hasError('pattern')\"\n      [label]=\"content().common.passwordLabel\"\n      [pattern]=\"passwordPattern\"\n      [placeholder]=\"content().common.passwordPlaceholder\"\n      [(ngModel)]=\"user.password\"\n    >\n      @switch (true) {\n        @case (password.control.hasError(\"required\")) {\n          <ng-container>{{ content().common.passwordErrorRequiredText }}</ng-container>\n        }\n        @case (password.control.hasError(\"pattern\")) {\n          <ng-container>{{ content().common.passwordPatternText }}</ng-container>\n        }\n      }\n    </omni-auth-ui-mat-input>\n    <omni-auth-ui-mat-print-error source=\"confirmForgotPassword\" [content]=\"content()\"/>\n  </div>\n\n  <div class=\"auth-form-footer\">\n    <omni-auth-ui-mat-button\n      buttonType=\"submit\"\n      type=\"primary\"\n      [disabled]=\"!!sendCode.invalid\"\n      [loading]=\"processing()\"\n    >{{ content().resetPassword.submitLabel }}\n    </omni-auth-ui-mat-button>\n  </div>\n</form>\n","import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {ConfirmSignUpComponent} from '../confirm-signup/confirm-signup.component';\nimport {SignUpComponent} from '../signup/signup.component';\nimport {SignInComponent} from '../signin/signin.component';\nimport {ResetPasswordComponent} from '../reset-password/reset-password.component';\nimport {\n  AUTH_CONFIG,\n  AuthRouteService,\n  ContentConfig,\n  defaultContentEmail, defaultContentUsername,\n  OmniAuthService\n} from '@ngx-addons/omni-auth-core';\nimport {MessageComponent} from '../ui/message/message.component';\nimport {ButtonComponent} from '../ui/button/button.component';\nimport {LoaderComponent} from '../ui/loader/loader.component';\nimport {AuthenticatedComponent} from '../authenticated/authenticated.component';\nimport {ConfirmSigninComponent} from '../confirm-signin/confirm-signin.component';\nimport {\n  AuthenticatedChangePasswordComponent\n} from '../authenticated-change-password/authenticated-change-password.component';\nimport {AUTH_UI_CONFIG, AuthUiConfig} from '../configure-auth-ui';\n\n@Component({\n  selector: 'omni-auth-ui-mat',\n  standalone: true,\n  imports: [\n    CommonModule,\n    MatTabsModule,\n    SignInComponent,\n    SignUpComponent,\n    ConfirmSignUpComponent,\n    ResetPasswordComponent,\n    MessageComponent,\n    ButtonComponent,\n    LoaderComponent,\n    AuthenticatedComponent,\n    ConfirmSigninComponent,\n    AuthenticatedChangePasswordComponent,\n  ],\n  templateUrl: './auth.component.html',\n  styleUrl: './auth.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuthComponent {\n  authService = inject(OmniAuthService);\n  authRouteService = inject(AuthRouteService);\n  #env = inject(AUTH_CONFIG);\n  uiConfig = inject<AuthUiConfig>(AUTH_UI_CONFIG, { optional: true });\n\n  readonly content = input<ContentConfig>(this.#env.identifierType === 'email' ? defaultContentEmail : defaultContentUsername);\n}\n","<div class=\"auth-form-container\">\n  <ng-content select=\"[auth-header]\"/>\n\n  @if (authService.authState.isLoading()) {\n    <omni-auth-ui-mat-loader [verticalCenter]=\"true\"/>\n  }\n\n  @if (authService.authState.value(); as user) {\n    @switch (user.state) {\n      @case ('authenticated') {\n        @if (uiConfig?.hideAuthenticatedContent !== true) {\n          <omni-auth-ui-mat-authenticated [content]=\"content()\"/>\n        }\n        <ng-content select=\"[auth-user-is-authenticated]\"/>\n        @if (authRouteService.currentStep(); as currentStep) {\n          @if ([\"change_password\"].includes(currentStep)) {\n            <omni-auth-ui-mat-authenticated-change-password [content]=\"content()\"/>\n          }\n        }\n      }\n\n      @case ('error') {\n        <omni-auth-ui-mat-message type=\"warn\">\n          {{ user.error?.getErrorMessage() ?? content().errors.unknown }}\n        </omni-auth-ui-mat-message>\n\n        <div class=\"message-footer\">\n          <omni-auth-ui-mat-button type=\"primary\" (click)=\"authService.signOut()\">Logout</omni-auth-ui-mat-button>\n        </div>\n      }\n      @case ('unauthenticated') {\n        @if (authRouteService.currentStep(); as currentStep) {\n          @if ([\"login\", \"register\"].includes(currentStep)) {\n            <mat-tab-group\n              selectedIndex=\"{{ currentStep === 'login' ? 0 : 1 }}\"\n            >\n              <mat-tab [label]=\"content().signIn.title\">\n                <ng-template matTabContent>\n                  <omni-auth-ui-mat-signin [content]=\"content()\">\n                    <ng-content sign-in-footer select=\"[sign-in-footer]\"/>\n                  </omni-auth-ui-mat-signin>\n                </ng-template>\n              </mat-tab>\n\n              <mat-tab [label]=\"content().signUp.title\">\n                <omni-auth-ui-mat-signup [content]=\"content()\">\n                  <ng-content sign-up-footer select=\"[sign-up-footer]\"/>\n                </omni-auth-ui-mat-signup>\n              </mat-tab>\n            </mat-tab-group>\n          }\n\n          @if (currentStep === \"confirm_sign_up\") {\n            <omni-auth-ui-mat-confirm-signup [content]=\"content()\"/>\n          }\n\n          @if (currentStep === \"confirm_sign_up_link\") {\n            <omni-auth-ui-mat-confirm-signup [content]=\"content()\" [isLinkMode]=\"true\"/>\n          }\n\n          @if (currentStep === \"confirm_sign_in\") {\n            <omni-auth-ui-mat-confirm-signin [content]=\"content()\"/>\n          }\n\n          @if ([\"reset_password\", \"confirm_reset_password\", \"reset_password_link\"].includes(currentStep)) {\n            <omni-auth-ui-mat-reset-password [content]=\"content()\"  [isLinkMode]=\"currentStep === 'reset_password_link'\"/>\n          }\n        }\n      }\n    }\n  }\n  <ng-content select=\"[auth-footer]\"/>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1"],"mappings":"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"}