{"version":3,"file":"tapsellorg-angular-material-library-src-lib-input.mjs","sources":["../../projects/pegah-library/src/lib/input/input-type/input-type.directive.ts","../../projects/pegah-library/src/lib/input/constants.ts","../../projects/pegah-library/src/lib/input/configs.ts","../../projects/pegah-library/src/lib/input/field-error.directive.ts","../../projects/pegah-library/src/lib/input/mark-all-as-touched/mark-all-as-touched.directive.ts","../../projects/pegah-library/src/lib/input/persian-to-english/persian-numbers-to-english.directive.ts","../../projects/pegah-library/src/lib/input/financial-input/financial-input.directive.ts","../../projects/pegah-library/src/lib/input/number-to-words/words.constant.ts","../../projects/pegah-library/src/lib/input/number-to-words/number-to-words.service.ts","../../projects/pegah-library/src/lib/input/number-to-words/number-to-words.pipe.ts","../../projects/pegah-library/src/lib/input/money-to-words/money-to-words.pipe.ts","../../projects/pegah-library/src/lib/input/rial-to-toman/rial-to-toman.pipe.ts","../../projects/pegah-library/src/lib/input/input.module.ts","../../projects/pegah-library/src/lib/input/form-validators.ts","../../projects/pegah-library/src/lib/input/autofocus/autofocus.directive.ts","../../projects/pegah-library/src/lib/input/autofocus/autofocus.module.ts","../../projects/pegah-library/src/lib/input/file-validators.ts","../../projects/pegah-library/src/lib/input/tapsellorg-angular-material-library-src-lib-input.ts"],"sourcesContent":["import { Directive, ElementRef, input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n  selector: 'input[type]',\n  standalone: false,\n})\nexport class PghInputTypeDirective implements OnChanges {\n  type = input<'text' | 'email' | 'tel' | 'url' | 'number' | 'password' | string>('');\n  showPassword = input<boolean>(false, {\n    alias: 'pghShowPassword',\n  });\n\n  constructor(private elemRef: ElementRef<HTMLInputElement>) {}\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.type) {\n      this.handleTypeChange();\n    }\n    if (changes.showPassword) {\n      this.handleShowPasswordChange();\n    }\n  }\n\n  private handleTypeChange() {\n    if (!this.type()) return;\n\n    switch (this.type()) {\n      case 'email':\n        this.setInputMode('email');\n        break;\n      case 'tel':\n        this.setInputMode('tel');\n        break;\n      case 'url':\n        this.setInputMode('url');\n        break;\n      case 'number':\n        this.setInputMode('numeric');\n        // this.setType('text');\n        break;\n      case 'password':\n        this.handleShowPasswordChange();\n        break;\n      default:\n        this.setInputMode('text');\n    }\n  }\n\n  private setInputMode(inputMode: 'email' | 'tel' | 'url' | 'numeric' | 'text') {\n    this.elemRef.nativeElement.inputMode = inputMode;\n  }\n\n  private handleShowPasswordChange() {\n    if (this.type() !== 'password') return;\n\n    this.setType(this.showPassword() ? 'text' : 'password');\n  }\n\n  private setType(type: string) {\n    this.elemRef.nativeElement.type = type;\n  }\n}\n","export const PGH_DEFAULT_ERROR_MESSAGES = {\n  required: 'این قسمت را خالی نگذارید',\n  pattern: 'فرمت ورودی اشتباه است',\n  email: 'ایمیل اشتباه است',\n  password: 'پسورد اشتباه است',\n  url: 'یک URL مثل http://example.com وارد کنید',\n  entity: 'یک Entity مثل market://example',\n  phoneNumber: 'یک شماره تلفن مثل 09009990099 وارد کنید',\n  uppercase: 'کارکترهای Capital قابل قبول نیست',\n  postalCode: 'کد پستی وارد شده معتبر نیست.',\n  sheba: 'شماره‌ی شبای ۲۴ رقمی بدون IR وارد کنید',\n  shebaIr: 'شماره‌ی شبای ۲۴ رقمی با IR وارد کنید',\n  debitCard: 'یک شماره کارت مثلا 2222333344445555 وارد کنید',\n  nationalCode: 'کدملی وارد شده معتبر نیست',\n  unknownOption: 'مقدار وارد شده معتبر نیست',\n  forbiddenOption: 'این ورودی قابل قبول نیست',\n  forbiddenFileName: 'لطفا نامی کوتاه، انگلیسی و بدون فاصله برای فایل خود انتخاب کنید',\n  forbiddenFileType: 'فایل با این پسوند قابل انتخاب نیست',\n  illegalSize: 'حجم فایل انتخاب شده بیشتر از حد مجاز است',\n};\n","import { InjectionToken } from '@angular/core';\nimport { PghErrorMessages } from './models';\nimport { PGH_DEFAULT_ERROR_MESSAGES } from './constants';\n\nexport const PGH_FIELD_ERROR_MESSAGES = new InjectionToken<PghErrorMessages>('errorMessages', {\n  providedIn: 'root',\n  factory: () => PGH_DEFAULT_ERROR_MESSAGES,\n});\n","import {\n  AfterViewInit,\n  Directive,\n  Inject,\n  input,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Self,\n  SimpleChanges,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { AbstractControlDirective, NgControl } from '@angular/forms';\nimport { MAT_FORM_FIELD, MatFormField } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { PGH_FIELD_ERROR_MESSAGES } from './configs';\nimport { PghErrorMessages } from './models';\nimport { PGH_DEFAULT_ERROR_MESSAGES } from './constants';\n\n@Directive({\n  selector: '[pghFieldError]',\n  standalone: false,\n})\nexport class PghFieldErrorDirective implements OnChanges, OnDestroy, AfterViewInit {\n  private _destroyed = new Subject<void>();\n  _errorMessages = input<PghErrorMessages | string | null>('', {\n    alias: 'pghFieldError',\n  });\n  errorMessages: PghErrorMessages = {};\n\n  private get ngControl(): NgControl | AbstractControlDirective | undefined {\n    return this._formField?._control?.ngControl ?? this._ngControl;\n  }\n\n  constructor(\n    private template: TemplateRef<any>,\n    private containerRef: ViewContainerRef,\n    @Inject(PGH_FIELD_ERROR_MESSAGES) private DEFAULT_ERROR_MESSAGES: PghErrorMessages,\n    @Optional() @Inject(MAT_FORM_FIELD) private _formField?: MatFormField,\n    @Optional() @Self() private _ngControl?: NgControl,\n  ) {}\n\n  ngAfterViewInit() {\n    // this.ngControl?.valueChanges?.pipe()\n    this.setErrorMessages();\n    this.handleErrors();\n    this.ngControl?.statusChanges?.pipe(takeUntil(this._destroyed))?.subscribe?.({\n      next: value => {\n        if (this.ngControl?.valid) return;\n        this.handleErrors();\n      },\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes._errorMessages) {\n      this.setErrorMessages();\n      this.handleErrors();\n    }\n  }\n\n  private setErrorMessages() {\n    const errorMessagesObject = this._errorMessages();\n\n    this.errorMessages = {\n      ...PGH_DEFAULT_ERROR_MESSAGES,\n      ...this.DEFAULT_ERROR_MESSAGES,\n      ...(typeof errorMessagesObject === 'object' ? errorMessagesObject : {}),\n    };\n  }\n\n  private handleErrors() {\n    this.containerRef.clear();\n    if (!this.errorMessages || !this.ngControl) return;\n\n    Object.keys(this.ngControl.errors ?? {}).some(key => {\n      const message = this.errorMessages[key];\n      if (message) {\n        this.createErrorView(key);\n        return true;\n      }\n      return false;\n    });\n  }\n\n  private createErrorView(key: string) {\n    const message = this.errorMessages[key];\n\n    this.containerRef.createEmbeddedView(this.template, {\n      $implicit: message,\n      key: key,\n    });\n  }\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n}\n","import { Directive, HostListener, Self } from '@angular/core';\nimport { ControlContainer } from '@angular/forms';\n\n@Directive({\n  selector: 'form[formGroup]',\n  standalone: false,\n})\nexport class PghMarkAllAsTouchedDirective {\n  @HostListener('submit')\n  onSubmit(): void {\n    this.container.control?.markAllAsTouched();\n  }\n\n  constructor(@Self() private container: ControlContainer) {}\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { StringUtils } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n  selector: 'input[pghPersianNumbersToEnglish]',\n  standalone: false,\n})\nexport class PghPersianNumbersToEnglishDirective {\n  constructor(private el: ElementRef, private control: NgControl) {}\n\n  @HostListener('input') onInput() {\n    if (!this.control.control) return;\n    const convertedNumbers = StringUtils.convertPersianNumbersToEnglish(\n      this.el.nativeElement.value,\n    );\n    this.control.control.setValue(convertedNumbers);\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  forwardRef,\n  HostListener,\n  Inject,\n  input,\n  LOCALE_ID,\n} from '@angular/core';\nimport { formatNumber } from '@angular/common';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StringUtils } from '@tapsellorg/angular-material-library/src/lib/common';\n\n@Directive({\n  selector: 'input[pghFinancialInput]',\n  providers: [\n    { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: PghFinancialInputDirective },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PghFinancialInputDirective),\n      multi: true,\n    },\n  ],\n  standalone: false,\n})\nexport class PghFinancialInputDirective {\n  private _value: number | string | null = null;\n\n  constructor(\n    private elementRef: ElementRef<HTMLInputElement>,\n    @Inject(LOCALE_ID) private localeId: string,\n  ) {}\n\n  value = input('', {\n    transform: (value: number | string | null) => {\n      this._value = value;\n      this.formatValue(value);\n      return this._value;\n    },\n  });\n\n  private formatValue(value: number | string | null, bypassValueCheck: boolean = false) {\n    if (value !== null) {\n      if (bypassValueCheck || Number(value) < 1000) {\n        this.elementRef.nativeElement.value = formatNumber(Number(value), this.localeId);\n      } else {\n        this.elementRef.nativeElement.value = String(value);\n      }\n    } else {\n      this.elementRef.nativeElement.value = '';\n    }\n  }\n\n  @HostListener('input', ['$event.target.value'])\n  onInput(value: string) {\n    value = StringUtils.convertPersianNumbersToEnglish(value);\n    const parsedValue = parseFloat(value.replace(/[^\\d]/g, ''));\n    this._value = !isNaN(parsedValue) ? parsedValue : null;\n    this.formatValue(this._value, true);\n    this._onChange(this._value);\n  }\n\n  @HostListener('blur')\n  _onBlur() {\n    this.formatValue(this._value, true);\n    this._onTouched(this._value);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  _onChange(_: any): void {}\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  _onTouched(_: any): void {}\n\n  writeValue(value: any) {\n    this._value = value;\n    this.formatValue(this._value);\n  }\n\n  registerOnChange(fn: (value: any) => void) {\n    this._onChange = fn;\n  }\n\n  registerOnTouched(fn: (value: any) => void) {\n    this._onTouched = fn;\n  }\n}\n","export const ZERO: string = '';\nexport const DELIMITER: string = ' و ';\nexport const NEGATIVE: string = 'منفی ';\nexport const UNITS = [\n  '',\n  'یک',\n  'دو',\n  'سه',\n  'چهار',\n  'پنج',\n  'شش',\n  'هفت',\n  'هشت',\n  'نه',\n  'ده',\n  'یازده',\n  'دوازده',\n  'سیزده',\n  'چهارده',\n  'پانزده',\n  'شانزده',\n  'هفده',\n  'هجده',\n  'نوزده',\n  'بیست',\n];\nexport const TENS = ['', '', 'بیست', 'سی', 'چهل', 'پنجاه', 'شصت', 'هفتاد', 'هشتاد', 'نود'];\nexport const HUNDREDS = [\n  '',\n  'یکصد',\n  'دویست',\n  'سیصد',\n  'چهارصد',\n  'پانصد',\n  'ششصد',\n  'هفتصد',\n  'هشتصد',\n  'نهصد',\n];\nexport const SCALES = [\n  '',\n  ' هزار',\n  ' میلیون',\n  ' میلیارد',\n  ' بیلیون',\n  ' بیلیارد',\n  ' تریلیون',\n  ' تریلیارد',\n  ' کوآدریلیون',\n  ' کادریلیارد',\n  ' کوینتیلیون',\n  ' کوانتینیارد',\n  ' سکستیلیون',\n  ' سکستیلیارد',\n  ' سپتیلیون',\n  ' سپتیلیارد',\n  ' اکتیلیون',\n  ' اکتیلیارد',\n  ' نانیلیون',\n  ' نانیلیارد',\n  ' دسیلیون',\n  ' دسیلیارد',\n];\nexport const DECIMAL_SUFFIXES = [\n  '',\n  'دهم',\n  'صدم',\n  'هزارم',\n  'ده‌هزارم',\n  'صد‌هزارم',\n  'میلیونوم',\n  'ده‌میلیونوم',\n  'صدمیلیونوم',\n  'میلیاردم',\n  'ده‌میلیاردم',\n  'صد‌‌میلیاردم',\n];\n","import { Injectable } from '@angular/core';\nimport {\n  DECIMAL_SUFFIXES,\n  DELIMITER,\n  HUNDREDS,\n  NEGATIVE,\n  SCALES,\n  TENS,\n  UNITS,\n  ZERO,\n} from './words.constant';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PghNumberToWordsService {\n  constructor() {}\n\n  convertNumberToWords = (value: number) => {\n    let input = value.toString().replace(/[^0-9.-]/g, '');\n    let isNegative = false;\n    const floatParse = parseFloat(input);\n    if (isNaN(floatParse)) {\n      return ZERO;\n    }\n\n    if (floatParse < 0) {\n      isNegative = true;\n      input = input.replace(/-/g, '');\n    }\n\n    let decimalPart = '';\n    let integerPart = input;\n    const pointIndex = input.indexOf('.');\n    if (pointIndex > -1) {\n      integerPart = input.substring(0, pointIndex);\n      decimalPart = input.substring(pointIndex + 1, input.length);\n    }\n\n    if (integerPart.length > 66) {\n      return 'خارج از محدوده';\n    }\n\n    const slicedNumber = this.prepareNumber(integerPart);\n    const output = [];\n    for (let i = 0; i < slicedNumber.length; i += 1) {\n      const converted = this.integerToWords(slicedNumber[i]);\n      if (converted !== '') {\n        output.push(converted + SCALES[slicedNumber.length - (i + 1)]);\n      }\n    }\n    if (decimalPart.length > 0) {\n      decimalPart = this.convertDecimalPart(decimalPart);\n    }\n\n    return (isNegative ? NEGATIVE : '') + output.join(DELIMITER) + decimalPart;\n  };\n\n  prepareNumber = (num: any) => {\n    let output = num;\n    if (typeof output === 'number') {\n      output = output.toString();\n    }\n\n    if (output.length % 3 === 1) {\n      output = `00${output}`;\n    } else if (output.length % 3 === 2) {\n      output = `0${output}`;\n    }\n    return output.replace(/\\d{3}(?=\\d)/g, '$&*').split('*');\n  };\n\n  integerToWords = (num: any) => {\n    if (parseInt(num, 0) === 0) {\n      return '';\n    }\n    const parsedInt = parseInt(num, 0);\n    if (parsedInt <= 20) {\n      return UNITS[parsedInt];\n    }\n    if (parsedInt < 100) {\n      const ones = parsedInt % 10;\n      const tens = (parsedInt - ones) / 10;\n      if (ones > 0) {\n        return TENS[tens] + DELIMITER + UNITS[ones];\n      }\n      return TENS[tens];\n    }\n    const ones = parsedInt % 10;\n    const hundreds = (parsedInt - (parsedInt % 100)) / 100;\n    const tens = (parsedInt - (hundreds * 100 + ones)) / 10;\n\n    const output = [HUNDREDS[hundreds]];\n\n    const secondPart = tens * 10 + ones;\n    if (secondPart === 0) {\n      return output.join(DELIMITER);\n    }\n\n    if (secondPart <= 20) {\n      output.push(UNITS[secondPart]);\n    } else {\n      output.push(TENS[tens]);\n      if (ones > 0) {\n        output.push(UNITS[ones]);\n      }\n    }\n\n    return output.join(DELIMITER);\n  };\n\n  convertDecimalPart = (decimalPart: any) => {\n    decimalPart = decimalPart.replace(/0*$/, '');\n\n    if (decimalPart === '') {\n      return '';\n    }\n\n    const maxDecimalLength = DECIMAL_SUFFIXES.length - 1;\n    if (decimalPart.length > maxDecimalLength) {\n      decimalPart = decimalPart.substring(0, maxDecimalLength);\n    }\n    return (\n      ' ممیز ' + this.convertNumberToWords(decimalPart) + ' ' + DECIMAL_SUFFIXES[decimalPart.length]\n    );\n  };\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PghNumberToWordsService } from './number-to-words.service';\n\n@Pipe({\n  name: 'pghNumberToWords',\n  standalone: false,\n})\nexport class PghNumberToWordsPipe implements PipeTransform {\n  constructor(protected pghNumberToWordsService: PghNumberToWordsService) {}\n\n  transform(number: number): string {\n    return this.pghNumberToWordsService.convertNumberToWords(number);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PghNumberToWordsService } from '../number-to-words/number-to-words.service';\n\n@Pipe({\n  name: 'pghMoneyToWords',\n  standalone: false,\n})\nexport class PghMoneyToWordsPipe implements PipeTransform {\n  constructor(protected pghNumberToWordsService: PghNumberToWordsService) {}\n\n  transform(number: number): string {\n    if (Number(number) === 0) return '';\n    const value = isNaN(number) ? Number(number) : number;\n    const tomanPart =\n      value > 9\n        ? `${this.pghNumberToWordsService.convertNumberToWords(Math.floor(value / 10))} تومان`\n        : '';\n    const rialPart =\n      value % 10 > 0 ? `${this.pghNumberToWordsService.convertNumberToWords(value % 10)} ریال` : '';\n    return tomanPart && rialPart ? tomanPart + ' و ' + rialPart : tomanPart ? tomanPart : rialPart;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pghRialToToman',\n  standalone: false,\n})\nexport class PghRialToTomanPipe implements PipeTransform {\n  transform(number: number | null): number {\n    if (!number) return 0;\n    const value = isNaN(number) ? Number(number) : number;\n    return Math.floor(value / 10);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghInputTypeDirective } from './input-type/input-type.directive';\nimport { PghFieldErrorDirective } from './field-error.directive';\nimport { PghMarkAllAsTouchedDirective } from './mark-all-as-touched/mark-all-as-touched.directive';\nimport { PghPersianNumbersToEnglishDirective } from './persian-to-english/persian-numbers-to-english.directive';\nimport { PghFinancialInputDirective } from './financial-input/financial-input.directive';\nimport { PghNumberToWordsPipe } from './number-to-words/number-to-words.pipe';\nimport { PghMoneyToWordsPipe } from './money-to-words/money-to-words.pipe';\nimport { PghRialToTomanPipe } from './rial-to-toman/rial-to-toman.pipe';\n\n@NgModule({\n  declarations: [\n    PghInputTypeDirective,\n    PghFieldErrorDirective,\n    PghMarkAllAsTouchedDirective,\n    PghPersianNumbersToEnglishDirective,\n    PghFinancialInputDirective,\n    PghNumberToWordsPipe,\n    PghMoneyToWordsPipe,\n    PghRialToTomanPipe,\n  ],\n  imports: [CommonModule],\n  exports: [\n    PghInputTypeDirective,\n    PghFieldErrorDirective,\n    PghMarkAllAsTouchedDirective,\n    PghPersianNumbersToEnglishDirective,\n    PghFinancialInputDirective,\n    PghNumberToWordsPipe,\n    PghMoneyToWordsPipe,\n    PghRialToTomanPipe,\n  ],\n})\nexport class PghInputModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n// @dynamic\nexport class PghFormValidators {\n  private static readonly URL_REGEX = /^https?:\\/\\/.*\\..*$/i;\n  private static readonly ENTITY_REGEX = /^(.*)(:\\/\\/)(.*)$/i;\n  private static readonly PHONE_NUMBER_REGEX = /^\\+*\\(?\\d{1,4}\\)?[\\d ./-]*$/i;\n\n  /**\n   * FormGroup Validator\n   *\n   * ```typescript\n   * this.formBuilder.group({\n   *   password: [],\n   *   confirmPassword: [],\n   * }, {\n   *   validators: [PghFormValidators.matchPassword]\n   * })\n   * ```\n   *\n   * @param passwordField\n   * @param confirmField\n   */\n  static matchPassword(passwordField: string, confirmField: string) {\n    return (formGroup: AbstractControl) => {\n      const field1 = formGroup.get(passwordField);\n      const field2 = formGroup.get(confirmField);\n      const password = field1?.value;\n      const confirmPassword = field2?.value;\n      return password !== confirmPassword ? { mismatchPassword: true } : undefined;\n    };\n  }\n\n  static urlValidator(): ValidatorFn {\n    return PghFormValidators.pattern(PghFormValidators.URL_REGEX, 'url');\n  }\n\n  /**\n   * Validates an android entity. Example: any://any\n   */\n  static entityValidator(): ValidatorFn {\n    return PghFormValidators.pattern(PghFormValidators.ENTITY_REGEX, 'entity');\n  }\n\n  static phoneNumberValidator(): ValidatorFn {\n    return PghFormValidators.pattern(PghFormValidators.PHONE_NUMBER_REGEX, 'phoneNumber');\n  }\n\n  /**\n   * Uppercase letters aren't allowed\n   */\n  static noUppercase(): ValidatorFn {\n    return PghFormValidators.pattern(/^[^A-Z]*$/, 'uppercase');\n  }\n\n  static postalCode(): ValidatorFn {\n    return PghFormValidators.pattern(/^[0-9]{10}/, 'postalCode');\n  }\n\n  static shaba(includeIR = true): ValidatorFn {\n    return PghFormValidators.pattern(\n      includeIR ? /^IR\\d{24}$/ : /^\\d{24}$/,\n      includeIR ? 'shebaIr' : 'sheba',\n    );\n  }\n\n  static debitCard(): ValidatorFn {\n    return PghFormValidators.pattern(/^\\d{16}$/, 'debitCard');\n  }\n\n  /**\n   * Runs the validator only if the condition function returns true\n   * you can optionally include an elseValidator\n   * @param condition\n   * @param validator\n   * @param elseValidator\n   */\n  static conditionalValidator(\n    condition: () => boolean,\n    validator: ValidatorFn,\n    elseValidator?: ValidatorFn,\n  ): ValidatorFn {\n    return (control: AbstractControl): ValidatorRet => {\n      if (condition()) {\n        return validator(control);\n      }\n      return elseValidator ? elseValidator(control) : null;\n    };\n  }\n\n  /**\n   * Validates a given condition function is true. If it's not, It'll be invalid with the errorName provided\n   * @param condition\n   * @param errorName\n   */\n  static validateCondition(\n    condition: (control: AbstractControl) => boolean,\n    errorName: string,\n  ): ValidatorFn {\n    return (control: AbstractControl): ValidatorRet =>\n      condition(control) ? null : { [errorName]: { value: control.value } };\n  }\n\n  /**\n   * Validates the value is not any of the given options\n   * @param forbiddenValues\n   */\n  static forbiddenValues(forbiddenValues: any[]): ValidatorFn {\n    return (control: AbstractControl): ValidatorRet =>\n      forbiddenValues.includes(control.value)\n        ? { forbiddenOption: { value: control.value } }\n        : null;\n  }\n\n  /**\n   * Validates the value is one of the given options\n   * @param allowedValues\n   */\n  static allowedValues(allowedValues: any[]): ValidatorFn {\n    return (control: AbstractControl): ValidatorRet => {\n      if (!control.value) return null;\n\n      return allowedValues.includes(control.value)\n        ? null\n        : { unknownOption: { value: control.value } };\n    };\n  }\n\n  /**\n   * Same as the angular pattern validator but with a custom errorName.\n   * This is useful when you want to check multiple patterns against a control and\n   * display different error messages for each pattern\n   * @param regex Regex to check\n   * @param errorName a custom error name\n   */\n  static pattern(regex: RegExp, errorName: string): ValidatorFn {\n    return (control: AbstractControl): ValidatorRet => {\n      if (!control.value || typeof control.value !== 'string') return null;\n\n      return regex.exec(control.value) ? null : { [errorName]: { value: control.value } };\n    };\n  }\n\n  /**\n   * Opposite of the pattern validator\n   * @param regex Regex to check\n   * @param errorName a custom error name\n   */\n  static forbiddenPattern(regex: RegExp, errorName: string): ValidatorFn {\n    return (control: AbstractControl): ValidatorRet => {\n      if (!control.value || typeof control.value !== 'string') return null;\n\n      return regex.exec(control.value) ? { [errorName]: { value: control.value } } : null;\n    };\n  }\n\n  static iranianNationalCode(): ValidatorFn {\n    return PghFormValidators.pattern(/^(\\d{10}|\\d{12})$/, 'nationalCode');\n  }\n\n  static hasNumber() {\n    return PghFormValidators.pattern(/\\d/, 'hasNumber');\n  }\n\n  static hasCapitalCase() {\n    return PghFormValidators.pattern(/[A-Z]/, 'hasCapitalCase');\n  }\n\n  static hasSmallCase() {\n    return PghFormValidators.pattern(/[a-z]/, 'hasSmallCase');\n  }\n}\n\ntype ValidatorRet = ValidationErrors | null;\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n  selector: '[pghAutofocus]',\n  standalone: false,\n})\nexport class PghAutofocusDirective implements AfterViewInit {\n  constructor(private el: ElementRef) {}\n  ngAfterViewInit() {\n    setTimeout(() => {\n      this.el.nativeElement?.focus?.();\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghAutofocusDirective } from './autofocus.directive';\n\n@NgModule({\n  declarations: [PghAutofocusDirective],\n  imports: [CommonModule],\n  exports: [PghAutofocusDirective],\n})\nexport class PghAutofocusModule {}\n","import { PGH_DEFAULT_ERROR_MESSAGES } from './constants';\n\nexport class PghFileValidators {\n  private static readonly NAME_VALIDATOR_PATTERN =\n    /^[~`!@#$%^&*()_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9-]{1,60}$/i;\n  private static messages = PGH_DEFAULT_ERROR_MESSAGES;\n\n  static checkAllowedTypes(acceptableTypes: any[], fileType: string) {\n    const acceptedTypesWithStar = acceptableTypes\n      .filter(t => t.includes('*'))\n      .map(type => type.split('/')[0]);\n    const acceptedTypesWithoutStar = acceptableTypes.filter(t => !t.includes('*'));\n    const splitFileType = fileType.split('/')[0];\n\n    if (\n      !acceptedTypesWithoutStar.includes(fileType) &&\n      !acceptedTypesWithStar.includes(splitFileType)\n    ) {\n      return this.messages.forbiddenFileType;\n    }\n    return null;\n  }\n\n  static checkNameValidator(fileName: string) {\n    if (!PghFileValidators.NAME_VALIDATOR_PATTERN.test(fileName))\n      return this.messages.forbiddenFileName;\n    return null;\n  }\n\n  static checkSizeValidation(maxSize: number, fileSize: number) {\n    if (maxSize * 1024 < fileSize / 1024) return this.messages.illegalSize;\n    return null;\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PghNumberToWordsService"],"mappings":"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"}