{"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/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/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/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  get #nativeElement(): HTMLElement {\n    return this.#hostElement.nativeElement;\n  }\n\n  #toggleOverlay = 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  #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 { Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport {LoaderOverlayDirective} from '../loader/loader-overlay.directive';\n\n@Component({\n  selector: 'omni-auth-ui-mat-button',\n  standalone: true,\n  imports: [\n    CommonModule,\n    MatButton,\n    MatIconModule,\n    LoaderOverlayDirective,\n  ],\n  templateUrl: './button.component.html',\n  styleUrl: 'button.component.scss',\n})\nexport class ButtonComponent {\n  @Input() type?: 'primary' | 'secondary' = 'primary';\n  @Input() icon?: string;\n  @Input() iconOnly = false;\n  @HostBinding('class.disabled') @Input() disabled = false;\n  @Input() loading = 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>\n  @if (icon) {\n    <mat-icon>{{ icon }}</mat-icon>\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  constructor(private parentFormControl: FormControl) {}\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' | 'password'>('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: (_: any) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): 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, input} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatIconModule} from '@angular/material/icon';\n\nexport type MessageType = 'info' | 'warn';\n\n@Component({\n  selector: 'omni-auth-ui-mat-message',\n  standalone: true,\n  imports: [CommonModule, MatIconModule],\n  templateUrl: './message.component.html',\n  styleUrl: 'message.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageComponent {\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    <mat-icon class=\"icon\">{{ icon() ?? iconBasedOnType }}</mat-icon>\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  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  content =\n    input.required<\n      Pick<ContentConfig, 'confirmationSignUp' | 'common' | 'errors'>\n    >();\n\n  user: {\n    email: string | null;\n    code?: string;\n  } = {\n    email: null,\n    code: undefined,\n  };\n\n  emailPattern = this.#env.validation?.emailPattern || patterns.emailPattern;\n\n  readonly resending = signal(false);\n  readonly processing = signal(false);\n  disabledResend = false;\n\n  async resendCode() {\n    const email = this.user.email ?? this.authRoute.currentEmail();\n\n    if (!email) {\n      return;\n    }\n\n    this.resending.set(true);\n\n    const hasError = await this.#authService.resendSignUpCode({\n      email,\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 email = this.user.email ?? this.authRoute.currentEmail();\n    const code = this.user.code;\n\n    if (!email || !code) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.confirmSignUp({\n      email,\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        {{ content().confirmationSignUp.paragraph }}\n      </div>\n    </omni-auth-ui-mat-message>\n    <omni-auth-ui-mat-input\n      #email=\"ngModel\"\n      name=\"email\"\n      required\n      type=\"text\"\n      [label]=\"content().common.emailLabel\"\n      [ngModel]=\"authRoute.currentEmail()\"\n      [pattern]=\"emailPattern\"\n      [placeholder]=\"content().common.emailPlaceholder\"\n      (ngModelChange)=\"user.email = $event\"\n    >\n      @switch (true) {\n        @case (email.control.hasError(\"required\")) {\n          <ng-container>{{ content().common.emailErrorRequiredText }}</ng-container>\n        }\n        @case (email.control.hasError(\"pattern\")) {\n          <ng-container>{{ content().common.emailErrorPatternText }}</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    <omni-auth-ui-mat-print-error source=\"confirmSignUp\" [content]=\"content()\" />\n  </div>\n  <div class=\"auth-form-footer\">\n    <omni-auth-ui-mat-button\n      type=\"secondary\"\n      [disabled]=\"disabledResend\"\n      [loading]=\"resending()\"\n      (click)=\"resendCode()\"\n    >{{ content().confirmationSignUp.resendLabel }}\n    </omni-auth-ui-mat-button>\n    <omni-auth-ui-mat-button\n      type=\"primary\"\n      [disabled]=\"!!confirmForm.invalid\"\n      [loading]=\"processing()\"\n    >{{ content().confirmationSignUp.submitLabel }}\n    </omni-auth-ui-mat-button>\n  </div>\n</form>\n","import {ChangeDetectionStrategy, Component, inject, input, 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';\n\ntype AdditionalAttributeFieldConfig = {\n  key: string;\n  type: 'checkbox';\n  label: string;\n  isRequired: boolean\n};\n\nexport type SignUpComponentConfig = {\n  additionalAttributes?: AdditionalAttributeFieldConfig[]\n}\n\n@Component({\n  selector: 'omni-auth-ui-mat-signup',\n  standalone: true,\n  imports: [CommonModule, InputComponent, FormsModule, ButtonComponent, MatCheckbox, PrintErrorComponent],\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  authRoute = inject(AuthRouteService);\n  readonly processing = signal(false);\n  readonly content = input.required<Pick<ContentConfig, 'signUp' | 'common' | 'errors'>>();\n  readonly config = input<SignUpComponentConfig>();\n  readonly termsAndConditions = output();\n\n  emailPattern = this.#env.validation?.emailPattern || patterns.emailPattern;\n  passwordPattern = this.#env.validation?.passwordPattern || patterns.passwordPattern;\n  user: {\n    tos: boolean;\n    name: string | null;\n    email: string | null;\n    password: string | null;\n    attributes: Record<string, string | boolean>;\n  } = {\n    tos: false,\n    name: null,\n    email: null,\n    password: null,\n    attributes: {}\n  };\n\n  async onSubmit() {\n    const email = this.user.email ?? this.authRoute.currentEmail();\n    const password = this.user.password;\n    const name = this.user.name;\n    const attributes = this.user.attributes;\n\n    if (!name || !email || !password) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.signUp({\n      email,\n      password,\n      name,\n      attributes,\n    });\n\n    this.processing.set(false);\n  }\n\n  updateUserEmail($event: string) {\n    this.user.email = $event;\n    const emailParts = $event.split('@');\n\n    if (emailParts.length === 2) {\n      this.user.name = $event.split('@')[0];\n    }\n  }\n\n  updateUserAttribute(key: string, value: string | boolean) {\n    if (!this.user.attributes) {\n      this.user.attributes = {};\n    }\n\n    this.user.attributes[key] = value;\n  }\n}\n","<form #registerForm=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"onSubmit()\">\n  <div class=\"auth-form-body\">\n    <omni-auth-ui-mat-input\n      #email=\"ngModel\"\n      name=\"email\"\n      required\n      type=\"text\"\n      [label]=\"content().common.emailLabel\"\n      [ngModel]=\"authRoute.currentEmail()\"\n      [pattern]=\"emailPattern\"\n      [placeholder]=\"content().common.emailPlaceholder\"\n      (ngModelChange)=\"updateUserEmail($event)\"\n    >\n      <ng-container>\n        @switch (true) {\n          @case (email.control.hasError(\"required\")) {\n            <ng-container>{{ content().common.emailErrorRequiredText }}</ng-container>\n          }\n          @case (email.control.hasError(\"pattern\")) {\n            <ng-container>{{ content().common.emailErrorPatternText }}</ng-container>\n          }\n        }\n      </ng-container>\n    </omni-auth-ui-mat-input>\n    <omni-auth-ui-mat-input\n      #name=\"ngModel\"\n      minlength=\"2\"\n      name=\"name\"\n      required\n      type=\"text\"\n      [label]=\"content().common.nameLabel\"\n      [placeholder]=\"content().common.namePlaceholder\"\n      [(ngModel)]=\"user.name\"\n    >\n      @switch (true) {\n        @case (name.control.hasError(\"required\")) {\n          <ng-container>{{ content().common.nameErrorRequiredText }}</ng-container>\n        }\n        @case (name.control.hasError(\"minLength\")) {\n          <ng-container>{{ content().common.nameErrorMinLengthText }}</ng-container>\n        }\n      }\n    </omni-auth-ui-mat-input>\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()?.additionalAttributes; track attribute.key) {\n      <mat-checkbox\n        class=\"additional-attribute-checkbox\"\n        [name]=\"attribute.key\"\n        [ngModel]=\"user.attributes[attribute.key]\"\n        [required]=\"attribute.isRequired\"\n        (ngModelChange)=\"updateUserAttribute(attribute.key, $event)\">\n        {{ attribute.label }}\n      </mat-checkbox>\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      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';\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 Name of the social provider, e.g. 'Google', '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\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  ],\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.processing]=\"processing() === signInProvider.key\"\n              [disabled]=\"processing()\"\n              [loading]=\"processing() === signInProvider.key\"\n              (click)=\"onSocialButtonClick(signInProvider)\"\n      >\n\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      </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';\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\n  readonly content =\n    input.required<\n      Pick<ContentConfig, 'signIn' | 'socialButtons' | 'common' | 'errors'>\n    >();\n\n  readonly config = input<SignInComponentConfig>();\n\n  readonly processing = signal(false);\n\n  get currentEmail() {\n    return this.#authRoute.currentEmail;\n  }\n\n  user = {\n    email: null,\n    password: null,\n  };\n  emailPattern = this.#env.validation?.emailPattern || patterns.emailPattern;\n  passwordPattern =\n    this.#env.validation?.passwordPattern || patterns.passwordPattern;\n\n  async onSubmit() {\n    const email = this.user.email ?? this.#authRoute.currentEmail();\n    const password = this.user.password;\n\n    if (!email || !password) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.signIn({\n      email,\n      password,\n    });\n\n    this.processing.set(false);\n  }\n\n  navigateToReset() {\n    this.#authRoute.nextStep(\n      'reset_password',\n      this.user.email ? { email: this.user.email } : 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      #email=\"ngModel\"\n      name=\"email\"\n      required\n      type=\"text\"\n      [label]=\"content().common.emailLabel\"\n      [ngModel]=\"currentEmail()\"\n      [pattern]=\"emailPattern\"\n      [placeholder]=\"content().common.emailPlaceholder\"\n      (ngModelChange)=\"user.email = $event\"\n    >\n      @switch (true) {\n        @case (email.control.hasError(\"required\")) {\n          <ng-container>{{ content().common.emailErrorRequiredText }}</ng-container>\n        }\n        @case (email.control.hasError(\"pattern\")) {\n          <ng-container>{{ content().common.emailErrorPatternText }}</ng-container>\n        }\n      }\n    </omni-auth-ui-mat-input>\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    <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    <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      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\n  user: {\n    email: string | null;\n    code: string | null;\n    password: string | null;\n  } = {\n    email: null,\n    code: null,\n    password: null,\n  };\n\n  emailPattern = this.#env.validation?.emailPattern || patterns.emailPattern;\n  passwordPattern = this.#env.validation?.passwordPattern || patterns.passwordPattern;\n\n  readonly resending = signal(false);\n  readonly processing = signal(false);\n  codeSent = false;\n\n  async sendCode() {\n    const email = this.user.email ?? this.authRoute.currentEmail();\n\n    if (!email) {\n      return;\n    }\n\n    this.resending.set(true);\n\n    const hasError = await this.#authService.forgotPassword({\n      email,\n    });\n\n    this.resending.set(false);\n\n    if (!hasError) {\n      this.codeSent = true;\n    }\n  }\n\n  async onSubmit() {\n    const email = this.user.email ?? this.authRoute.currentEmail();\n    const newPassword = this.user.password;\n    const code = this.user.code;\n\n    if (!email || !newPassword || !code) {\n      return;\n    }\n\n    this.processing.set(true);\n    await this.#authService.confirmForgotPassword({\n      email,\n      code: String(code),\n      newPassword,\n    });\n\n    this.processing.set(false);\n  }\n}\n","@if (!codeSent) {\n  <form #sendCodeForm=\"ngForm\" class=\"auth-form\" (ngSubmit)=\"sendCode()\">\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        #email=\"ngModel\"\n        name=\"email\"\n        required\n        type=\"text\"\n        [label]=\"content().common.emailLabel\"\n        [ngModel]=\"authRoute.currentEmail()\"\n        [pattern]=\"emailPattern\"\n        [placeholder]=\"content().common.emailPlaceholder\"\n        (ngModelChange)=\"user.email = $event\"\n      >\n        @switch (true) {\n          @case (email.control.hasError(\"required\")) {\n            <ng-container>{{ content().common.emailErrorRequiredText }}</ng-container>\n          }\n          @case (email.control.hasError(\"pattern\")) {\n            <ng-container>{{ content().common.emailErrorPatternText }}</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 [disabled]=\"!!sendCodeForm.invalid\" [loading]=\"processing()\"\n      >{{ content().resetPassword.submitLabel }}\n      </omni-auth-ui-mat-button>\n    </div>\n  </form>\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        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","import {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})\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 {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, SignUpComponentConfig} from '../signup/signup.component';\nimport { SignInComponent, SignInComponentConfig } from '../signin/signin.component';\nimport {ResetPasswordComponent} from '../reset-password/reset-password.component';\nimport {\n  AuthRouteService,\n  ContentConfig,\n  defaultContent,\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 { SignInProvider } from '../social-buttons/social-buttons.component';\n\nexport type AuthComponentConfig = {\n  signUp?: SignUpComponentConfig,\n  signIn?: SignInComponentConfig;\n}\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  ],\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\n  content = input<ContentConfig>(defaultContent);\n\n  config = input<AuthComponentConfig>();\n}\n","<div class=\"auth-form-container\">\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        <omni-auth-ui-mat-authenticated [content]=\"content()\"/>\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 [config]=\"config()?.signIn\" [content]=\"content()\"/>\n                </ng-template>\n              </mat-tab>\n\n              <mat-tab [label]=\"content().signUp.title\">\n                <omni-auth-ui-mat-signup [config]=\"config()?.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 ([\"reset_password\", \"confirm_reset_password\"].includes(currentStep)) {\n            <omni-auth-ui-mat-reset-password [content]=\"content()\"/>\n          }\n        }\n      }\n    }\n  }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1"],"mappings":"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"}