{"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\nexport const REGEX = {\n  // =========================\n  // 🌍 Web & Network\n  // =========================\n\n  /** Matches HTTP and HTTPS URLs (e.g., https://example.com/path) */\n  URL: /^https?:\\/\\/.*\\..*$/i,\n\n  /** Matches entity URIs like `any://something` */\n  ENTITY: /^(.*)(:\\/\\/)(.*)$/i,\n\n  /** Matches valid domain names (e.g., example.com) */\n  DOMAIN: /^(?!-)(?:[a-zA-Z0-9\\-]{1,63}\\.)+[a-zA-Z]{2,63}$/,\n\n  /** Matches simple slug strings used in URLs (e.g., my-post-title) */\n  SLUG: /^[a-z0-9]+(?:-[a-z0-9]+)*$/,\n\n  // =========================\n  // 📱 Communication & Identity\n  // =========================\n\n  /** Matches various international phone number formats */\n  PHONE_NUMBER: /^\\+*\\(?\\d{1,4}\\)?[\\d ./-]*$/i,\n\n  /** Simplified but practical email validation */\n  EMAIL: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/,\n\n  /** Matches usernames (2–30 chars, letters/numbers/underscores) */\n  USERNAME: /^[A-Za-z0-9_]{2,30}$/,\n\n  /** Strong password: upper, lower, number, special char, 8–64 length */\n  PASSWORD_STRONG:\n    /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_\\-+=\\[\\]{};':\"\\\\|,.<>/?]).{8,64}$/,\n\n  // =========================\n  // 🔢 Numeric & Financial\n  // =========================\n\n  /** Integer numbers (e.g., 42, -5) */\n  INTEGER: /^-?\\d+$/,\n\n  /** Floating-point numbers (e.g., 3.14, -0.001) */\n  FLOAT: /^-?\\d+(\\.\\d+)?$/,\n\n  /** Currency-like values (e.g., 1,234.56 or $99.00) */\n  CURRENCY: /^\\$?\\d{1,3}(,\\d{3})*(\\.\\d{2})?$/,\n\n  /** Iranian Sheba number with \"IR\" prefix */\n  SHABA_WITH_IR: /^IR\\d{24}$/,\n\n  /** Iranian Sheba number without \"IR\" prefix */\n  SHABA_NO_IR: /^\\d{24}$/,\n\n  /** Debit card numbers (16 digits) */\n  DEBIT_CARD: /^\\d{16}$/,\n\n  // =========================\n  // 🧍 Personal / Localized (Iran-specific)\n  // =========================\n\n  /** Iranian national code (10 or 12 digits) */\n  NATIONAL_CODE: /^(\\d{10}|\\d{12})$/,\n\n  /** Iranian phone numbers (optional +98 or 0 prefix) */\n  IR_PHONE: /^(\\+98|0)?9\\d{9}$/,\n\n  // =========================\n  // 🧾 Text Formatting / Casing\n  // =========================\n\n  /** Disallows uppercase letters */\n  NO_UPPERCASE: /^[^A-Z]*$/,\n\n  /** Contains at least one digit */\n  HAS_NUMBER: /\\d/,\n\n  /** Contains at least one uppercase letter */\n  HAS_CAPITAL_CASE: /[A-Z]/,\n\n  /** Contains at least one lowercase letter */\n  HAS_SMALL_CASE: /[a-z]/,\n\n  /** Non-empty string without leading or trailing whitespace */\n  TRIMMED_STRING: /^\\S(?:.*\\S)?$/,\n\n  // =========================\n  // 🧱 Postal / Address\n  // =========================\n\n  /** 10-digit postal code (Iran format) */\n  POSTAL_CODE: /^[0-9]{10}$/,\n\n  // =========================\n  // 🎨 Frontend / CSS / HTML\n  // =========================\n\n  /** Valid CSS class name */\n  CSS_CLASS: /^[a-zA-Z_-][a-zA-Z0-9_-]*$/,\n\n  /** Valid CSS ID selector (starts with #) */\n  CSS_ID: /^#[a-zA-Z_-][a-zA-Z0-9_-]*$/,\n\n  /** Simple HTML tag pattern (e.g., <div>, </span>) */\n  HTML_TAG: /^<\\/?[a-z][\\s\\S]*>$/i,\n\n  // =========================\n  // 📅 Dates & Times\n  // =========================\n\n  /** ISO date format (YYYY-MM-DD) */\n  DATE_ISO: /^\\d{4}-\\d{2}-\\d{2}$/,\n\n  /** 24-hour time format (HH:mm or HH:mm:ss) */\n  TIME_24H: /^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$/,\n\n  /** ISO datetime format (YYYY-MM-DDTHH:mm:ssZ) */\n  DATETIME_ISO: /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z?$/,\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';\nimport { REGEX } from './constants';\n\n// @dynamic\nexport class PghFormValidators {\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(REGEX.URL, 'url');\n  }\n\n  /**\n   * Validates an android entity. Example: any://any\n   */\n  static entityValidator(): ValidatorFn {\n    return PghFormValidators.pattern(REGEX.ENTITY, 'entity');\n  }\n\n  static phoneNumberValidator(): ValidatorFn {\n    return PghFormValidators.pattern(REGEX.PHONE_NUMBER, 'phoneNumber');\n  }\n\n  /**\n   * Uppercase letters aren't allowed\n   */\n  static noUppercase(): ValidatorFn {\n    return PghFormValidators.pattern(REGEX.NO_UPPERCASE, 'uppercase');\n  }\n\n  static postalCode(): ValidatorFn {\n    return PghFormValidators.pattern(REGEX.POSTAL_CODE, 'postalCode');\n  }\n\n  static shaba(includeIR = true): ValidatorFn {\n    return PghFormValidators.pattern(\n      includeIR ? REGEX.SHABA_WITH_IR : REGEX.SHABA_NO_IR,\n      includeIR ? 'shebaIr' : 'sheba',\n    );\n  }\n\n  static debitCard(): ValidatorFn {\n    return PghFormValidators.pattern(REGEX.DEBIT_CARD, '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(REGEX.NATIONAL_CODE, 'nationalCode');\n  }\n\n  static hasNumber() {\n    return PghFormValidators.pattern(REGEX.HAS_NUMBER, 'hasNumber');\n  }\n\n  static hasCapitalCase() {\n    return PghFormValidators.pattern(REGEX.HAS_CAPITAL_CASE, 'hasCapitalCase');\n  }\n\n  static hasSmallCase() {\n    return PghFormValidators.pattern(REGEX.HAS_SMALL_CASE, '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\ntype PghDimension = { width: number; height: number };\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  static checkDimensionsValidation(\n    width: number,\n    height: number,\n    allowedDimensions: Array<PghDimension>,\n  ) {\n    const isValid = allowedDimensions.some(d => d.width === width && d.height === height);\n\n    if (isValid) return null;\n\n    const dimensionsText = allowedDimensions.map(d => `${d.width}×${d.height}`).join(' یا ');\n\n    return `ابعاد فایل انتخاب‌شده باید ${dimensionsText} پیکسل باشد`;\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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"}