{"version":3,"file":"tapsellorg-angular-material-library-src-lib-jalali-date-adapter.mjs","sources":["../../projects/pegah-library/src/lib/jalali-date-adapter/jalali-date.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/material-jalali-date.adapter.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/date-format.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/date.utils.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/jalali-date.pipe.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/jalali-date.module.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/locale-ir.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/material-paginator-intl.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/material-persian-global-options.ts","../../projects/pegah-library/src/lib/jalali-date-adapter/tapsellorg-angular-material-library-src-lib-jalali-date-adapter.ts"],"sourcesContent":["import { StringUtils } from '@tapsellorg/angular-material-library/src/lib/common';\n\nexport class JalaliDate {\n  constructor(public year: number, public month: number, public day: number) {}\n\n  static from(value: JalaliDate | Date | string | number): JalaliDate {\n    if (value instanceof JalaliDate) {\n      return value;\n    }\n    if (typeof value === 'string' && !isDateStringIso(value)) {\n      value = value.replace(/\\s/, 'T');\n      value = `${value}Z`;\n    }\n\n    const date = new Date(value);\n    if (Number.isNaN(date) || !(date instanceof Date)) {\n      throw new Error('JalaliDate: Invalid pipe argument');\n    }\n    return GregorianJalaliHelper.fromGregorian(date);\n  }\n  /**\n   * string type is the jalali form of date: 1399/01/30\n   */\n  static parse(value: string, parseFormat: string | string[]) {\n    const [year, month, day] = value.split('/');\n    return new JalaliDate(parseInt(year, 10), parseInt(month, 10), parseInt(day, 10));\n  }\n  clone(): JalaliDate {\n    return new JalaliDate(this.year, this.month, this.day);\n  }\n  isValid() {\n    return (\n      this.month > 0 &&\n      this.month < 13 &&\n      this.day > 0 &&\n      this.day <= GregorianJalaliHelper.getDaysPerMonth(this.month, this.year)\n    );\n  }\n  dayOfWeek() {\n    return GregorianJalaliHelper.toGregorian(this).getDay();\n  }\n  format(displayFormat: string = 'YYYY/MM/DD') {\n    return StringUtils.stringReplaceBulk(\n      displayFormat,\n      ['YYYY', 'MMMM', 'MM', 'DD'],\n      [this.year, LONG_MONTHS[this.month - 1], this.month, this.day],\n    );\n  }\n\n  addYears = (years: number) => {\n    this.year += years;\n    return this;\n  };\n\n  addMonths = (months: number) => {\n    const month = this.month + months;\n    return this.setJalaliMonth(month);\n  };\n\n  setJalaliMonth(month: number) {\n    this.year += Math.floor((month - 1) / 12);\n    this.month = Math.floor((((month - 1) % 12) + 12) % 12) + 1;\n    return this;\n  }\n\n  setJalaliDay(day: number) {\n    let mDays = GregorianJalaliHelper.getDaysPerMonth(this.month, this.year);\n    if (day <= 0) {\n      while (day <= 0) {\n        this.setJalaliMonth(this.month - 1);\n        mDays = GregorianJalaliHelper.getDaysPerMonth(this.month, this.year);\n        day += mDays;\n      }\n    } else if (day > mDays) {\n      while (day > mDays) {\n        day -= mDays;\n        this.setJalaliMonth(this.month + 1);\n        mDays = GregorianJalaliHelper.getDaysPerMonth(this.month, this.year);\n      }\n    }\n    this.day = day;\n    return this;\n  }\n\n  addDays = (days: number) => {\n    const day = this.day + days;\n    return this.setJalaliDay(day);\n  };\n}\n\nclass GregorianJalaliHelperClass {\n  /**\n   * Returns the equivalent jalali date value for a give input Gregorian date.\n   * `gdate` is a JS Date to be converted to jalali.\n   * utc to local\n   */\n  fromGregorian(gdate: Date): JalaliDate {\n    const g2d = this.gregorianToDay(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n    return this.dayToJalali(g2d);\n  }\n  /*\n   Converts a date of the Jalali calendar to the Julian Day number.\n   @param jy Jalali year (1 to 3100)\n   @param jm Jalali month (1 to 12)\n   @param jd Jalali day (1 to 29/31)\n   @return Julian Day number\n   */\n  gregorianToDay(gy: number, gm: number, gd: number) {\n    let day =\n      div((gy + div(gm - 8, 6) + 100100) * 1461, 4) +\n      div(153 * mod(gm + 9, 12) + 2, 5) +\n      gd -\n      34840408;\n    day = day - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\n    return day;\n  }\n  /*\n   Converts the Julian Day number to a date in the Jalali calendar.\n   @param jdn Julian Day number\n   @return\n   jy: Jalali year (1 to 3100)\n   jm: Jalali month (1 to 12)\n   jd: Jalali day (1 to 29/31)\n   */\n  dayToJalali(julianDayNumber: number) {\n    const gy = this.dayToGregorian(julianDayNumber).getFullYear(); // Calculate Gregorian year (gy).\n    let jalaliYear = gy - 621;\n    const r = this.jalCal(jalaliYear);\n    const gregorianDay = this.gregorianToDay(gy, 3, r.march);\n    let jalaliDay;\n    let jalaliMonth;\n    let numberOfDays;\n    // Find number of days that passed since 1 Farvardin.\n    numberOfDays = julianDayNumber - gregorianDay;\n    if (numberOfDays >= 0) {\n      if (numberOfDays <= 185) {\n        // The first 6 months.\n        jalaliMonth = 1 + div(numberOfDays, 31);\n        jalaliDay = mod(numberOfDays, 31) + 1;\n        return new JalaliDate(jalaliYear, jalaliMonth, jalaliDay);\n      }\n      // The remaining months.\n      numberOfDays -= 186;\n    } else {\n      // Previous Jalali year.\n      jalaliYear -= 1;\n      numberOfDays += 179;\n      if (r.leap === 1) {\n        numberOfDays += 1;\n      }\n    }\n    jalaliMonth = 7 + div(numberOfDays, 30);\n    jalaliDay = mod(numberOfDays, 30) + 1;\n    return new JalaliDate(jalaliYear, jalaliMonth, jalaliDay);\n  }\n  /**\n   * Returns the equivalent JS date value for a give input Jalali date.\n   * `jalaliDate` is an Jalali date to be converted to Gregorian.\n   */\n  toGregorian(jalaliDate: JalaliDate): Date {\n    const { year, month, day } = jalaliDate;\n    const jdn = this.jalaliToDay(year, month, day);\n    const date = this.dayToGregorian(jdn);\n    date.setHours(6, 30, 3, 200);\n    return date;\n  }\n  /*\n   Converts a date of the Jalali calendar to the Julian Day number.\n   @param jy Jalali year (1 to 3100)\n   @param jm Jalali month (1 to 12)\n   @param jd Jalali day (1 to 29/31)\n   @return Julian Day number\n   */\n  jalaliToDay(jYear: number, jMonth: number, jDay: number) {\n    const r = this.jalCal(jYear);\n    return (\n      this.gregorianToDay(r.gy, 3, r.march) +\n      (jMonth - 1) * 31 -\n      div(jMonth, 7) * (jMonth - 7) +\n      jDay -\n      1\n    );\n  }\n  /*\n   Calculates Gregorian and Julian calendar dates from the Julian Day number\n   (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n   calendars) to some millions years ahead of the present.\n   @param jdn Julian Day number\n   @return\n   gy: Calendar year (years BC numbered 0, -1, -2, ...)\n   gm: Calendar month (1 to 12)\n   gd: Calendar day of the month M (1 to 28/29/30/31)\n   */\n  dayToGregorian(julianDayNumber: number) {\n    let j;\n    j = 4 * julianDayNumber + 139361631;\n    j = j + div(div(4 * julianDayNumber + 183187720, 146097) * 3, 4) * 4 - 3908;\n    const i = div(mod(j, 1461), 4) * 5 + 308;\n    const gDay = div(mod(i, 153), 5) + 1;\n    const gMonth = mod(div(i, 153), 12) + 1;\n    const gYear = div(j, 1461) - 100100 + div(8 - gMonth, 6);\n    return new Date(gYear, gMonth - 1, gDay);\n  }\n  /*\n   This function determines if the Jalali (Persian) year is\n   leap (366-day long) or is the common year (365 days), and\n   finds the day in March (Gregorian calendar) of the first\n   day of the Jalali year (jy).\n   @param jy Jalali calendar year (-61 to 3177)\n   @return\n   leap: number of years since the last leap year (0 to 4)\n   gy: Gregorian year of the beginning of Jalali year\n   march: the March day of Farvardin the 1st (1st day of jy)\n   @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n   @see: http://www.fourmilab.ch/documents/calendar/\n   */\n  jalCal(jalaliYear: number) {\n    // Jalali years starting the 33-year rule.\n    const breaks = [\n      -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324,\n      2394, 2456, 3178,\n    ];\n    const breaksLength = breaks.length;\n    const gYear = jalaliYear + 621;\n    let leapJ = -14;\n    let jp = breaks[0];\n    let jm;\n    let jump: number | undefined;\n    let leap;\n    let n;\n    let i;\n    if (jalaliYear < jp || jalaliYear >= breaks[breaksLength - 1]) {\n      throw new Error(`Invalid Jalali year ${jalaliYear}`);\n    }\n    // Find the limiting years for the Jalali year jalaliYear.\n    for (i = 1; i < breaksLength; i += 1) {\n      jm = breaks[i];\n      jump = jm - jp;\n      if (jalaliYear < jm) {\n        break;\n      }\n      leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4);\n      jp = jm;\n    }\n    n = jalaliYear - jp;\n    // Find the number of leap years from AD 621 to the beginning\n    // of the current Jalali year in the Persian calendar.\n    leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4);\n    if (mod(jump!, 33) === 4 && jump! - n === 4) {\n      leapJ += 1;\n    }\n    // And the same in the Gregorian calendar (until the year gYear).\n    const leapG = div(gYear, 4) - div((div(gYear, 100) + 1) * 3, 4) - 150;\n    // Determine the Gregorian date of Farvardin the 1st.\n    const march = 20 + leapJ - leapG;\n    // Find how many years have passed since the last leap year.\n    if (jump! - n < 6) {\n      n = n - jump! + div(jump! + 4, 33) * 33;\n    }\n    leap = mod(mod(n + 1, 33) - 1, 4);\n    if (leap === -1) {\n      leap = 4;\n    }\n    return {\n      leap,\n      gy: gYear,\n      march,\n    };\n  }\n\n  getDaysPerMonth(month: number, year: number): number {\n    if (month <= 6) {\n      return 31;\n    }\n    if (month <= 11) {\n      return 30;\n    }\n    if (this.jalCal(year).leap === 0) {\n      return 30;\n    }\n    return 29;\n  }\n}\nfunction mod(a: number, b: number): number {\n  return a - b * Math.floor(a / b);\n}\nfunction div(a: number, b: number) {\n  return Math.trunc(a / b);\n}\nexport const GregorianJalaliHelper = new GregorianJalaliHelperClass();\n\nexport const LONG_MONTHS = [\n  'فروردین',\n  'اردیبهشت',\n  'خرداد',\n  'تیر',\n  'مرداد',\n  'شهریور',\n  'مهر',\n  'آبان',\n  'آذر',\n  'دی',\n  'بهمن',\n  'اسفند',\n];\n\nexport const ISO_DATE_REGEX =\n  /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d(:[0-5]\\d)?(\\.\\d+)?([+-][0-2]\\d:[0-5]\\d|Z)?/;\nexport function isDateStringIso(dateString: string): boolean {\n  return ISO_DATE_REGEX.test(dateString);\n}\n","import { DateAdapter } from '@angular/material/core';\nimport { GregorianJalaliHelper, JalaliDate, LONG_MONTHS } from './jalali-date';\n\nexport class MaterialJalaliDateAdapter extends DateAdapter<JalaliDate> {\n  private readonly dayNames: string[] = [...new Array(31)].map((_, i) => (i + 1).toString());\n\n  constructor() {\n    super();\n    super.setLocale('fa-IR');\n  }\n\n  getYear(date: JalaliDate): number {\n    return this.clone(date).year;\n  }\n\n  getMonth(date: JalaliDate): number {\n    return this.clone(date).month - 1;\n  }\n\n  getDate(date: JalaliDate): number {\n    return this.clone(date).day;\n  }\n\n  getDayOfWeek(date: JalaliDate): number {\n    return this.clone(date).dayOfWeek();\n  }\n\n  getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n    // Jalali month names have no abbreviation and should be in long format\n    // switch (style) {\n    //   case 'long':\n    //     return LONG_MONTHS;\n    //   case 'short':\n    //     return SHORT_MONTHS;\n    //   default:\n    //     // case 'narrow':\n    //     return NARROW_MONTHS;\n    // }\n    return LONG_MONTHS;\n  }\n\n  getDateNames(): string[] {\n    return this.dayNames;\n  }\n\n  getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n    switch (style) {\n      case 'long':\n        return ['یکشنبه', 'دوشنبه', 'سه\\u200Cشنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'];\n      case 'short':\n        return ['یک', 'دو', 'سه', 'چهار', 'پنج', 'جمعه', 'شنبه'];\n      default:\n        // case 'narrow':\n        return ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'];\n    }\n  }\n\n  getYearName(date: JalaliDate): string {\n    return this.clone(date).year.toString();\n  }\n\n  getFirstDayOfWeek(): number {\n    return 6;\n  }\n\n  getNumDaysInMonth(date: JalaliDate): number {\n    return GregorianJalaliHelper.getDaysPerMonth(date.month, date.year);\n  }\n\n  clone(date: JalaliDate): JalaliDate {\n    return date.clone();\n    // return date.clone().locale('fa-IR');\n  }\n\n  createDate(year: number, month: number, date: number): JalaliDate {\n    // console.log('#ee year', year, month, date);\n    if (month < 0 || month > 12) {\n      throw new Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n    }\n    if (date < 1) {\n      throw new Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n    }\n    const result = new JalaliDate(year, month + 1, date);\n\n    // if (this.getMonth(result) !== month) {\n    //   throw new Error(`Invalid date ${date} for month with index ${month}.`);\n    // }\n    if (!result.isValid()) {\n      throw new Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n    }\n    return result;\n  }\n\n  today(): JalaliDate {\n    return GregorianJalaliHelper.fromGregorian(new Date());\n  }\n\n  parse(value: any, parseFormat: string | string[]): JalaliDate | null {\n    if (typeof value === 'string') {\n      return JalaliDate.parse(value, parseFormat);\n    }\n    return null;\n  }\n\n  format(date: JalaliDate, displayFormat: string): string {\n    date = this.clone(date);\n    if (!this.isValid(date)) {\n      throw new Error('JalaliMomentDateAdapter: Cannot format invalid date.');\n    }\n    return date.format(displayFormat);\n  }\n\n  addCalendarYears(date: JalaliDate, years: number): JalaliDate {\n    return this.clone(date).addYears(years);\n  }\n\n  addCalendarMonths(date: JalaliDate, months: number): JalaliDate {\n    return this.clone(date).addMonths(months);\n  }\n\n  addCalendarDays(date: JalaliDate, days: number): JalaliDate {\n    return this.clone(date).addDays(days);\n  }\n\n  toIso8601(date: JalaliDate): string {\n    return this.clone(date).format('YYYY-MM-DD');\n  }\n\n  isDateInstance(obj: any): boolean {\n    return obj instanceof JalaliDate;\n  }\n\n  isValid(date: JalaliDate): boolean {\n    return this.clone(date).isValid();\n  }\n\n  isLeapYear(year: number) {\n    return year % 4 === 3;\n  }\n\n  invalid(): JalaliDate {\n    return new JalaliDate(-1, -1, -1);\n  }\n\n  deserialize(value: any): JalaliDate | null {\n    let date;\n    if (value instanceof Date) {\n      date = GregorianJalaliHelper.fromGregorian(value);\n    }\n\n    if (!value) {\n      return null;\n    }\n\n    if (date && this.isValid(date)) {\n      return date;\n    }\n    return super.deserialize(value);\n  }\n\n  sameDate(first: JalaliDate | null, second: JalaliDate | null): boolean {\n    if (!first || !second) return false;\n    return !this.compareDate(first, second);\n  }\n\n  compareDate(first: JalaliDate, second: JalaliDate): number {\n    if (!this.isValid(first) || !this.isValid(second)) return 0;\n    return first.year - second.year || first.month - second.month || first.day - second.day;\n  }\n}\n","import { MatDateFormats } from '@angular/material/core';\n\nexport const JALALI_SLASH_FORMATS: MatDateFormats = {\n  parse: {\n    // eslint-disable-next-line sonarjs/no-duplicate-string\n    dateInput: 'YYYY/MM/DD',\n  },\n  display: {\n    dateInput: 'YYYY/MM/DD',\n    monthYearLabel: 'YYYY MMMM',\n    dateA11yLabel: 'YYYY/MM/DD',\n    monthYearA11yLabel: 'YYYY MMMM',\n  },\n};\n\nexport const JALALI_NAME_MONTH_FORMATS: MatDateFormats = {\n  parse: {\n    // eslint-disable-next-line sonarjs/no-duplicate-string\n    dateInput: 'DD MMMM YYYY',\n  },\n  display: {\n    dateInput: 'DD MMMM YYYY',\n    monthYearLabel: 'MMMM YYYY',\n    dateA11yLabel: 'DD MMMM YYYY',\n    monthYearA11yLabel: 'MMMM YYYY',\n  },\n};\n","import { GregorianJalaliHelper, ISO_DATE_REGEX, JalaliDate } from './jalali-date';\nimport { StringUtils } from '@tapsellorg/angular-material-library/src/lib/common';\n\n// @dynamic\nexport class DateUtils {\n  static ISO_DATE_REGEX = ISO_DATE_REGEX;\n  static isDateStringIso(dateString: string): boolean {\n    return this.isDateStringIso(dateString);\n  }\n  static getTodayJalali(): JalaliDate {\n    return this.gregorianToJalali(new Date());\n  }\n  static jalaliToGregorian(date: JalaliDate): Date {\n    return GregorianJalaliHelper.toGregorian(date);\n  }\n  static gregorianToJalali(date: Date): JalaliDate {\n    return GregorianJalaliHelper.fromGregorian(date);\n  }\n\n  static isValidDate(date: any): date is Date {\n    return !Number.isNaN(date) && date instanceof Date;\n  }\n\n  static format(date: Date, format: string = 'YYYY/MM/DD') {\n    const hours = date.getHours();\n    const minutes = date.getMinutes();\n\n    return StringUtils.stringReplaceBulk(\n      format,\n      ['YYYY', 'MM', 'DD', 'HH', 'MM'],\n      [\n        date.getFullYear(),\n        date.getMonth() + 1,\n        date.getDay(),\n        StringUtils.convertToTwoCharactersNumber(hours),\n        StringUtils.convertToTwoCharactersNumber(minutes),\n      ],\n    );\n  }\n\n  /**\n   * @deprecated use DateUtils.milliSecsToMinSecsConverter(milliSecs)\n   * @param milliSecs\n   */\n  static miliSecsToMinSecsConverter(milliSecs: number) {\n    return DateUtils.milliSecsToMinSecsConverter(milliSecs);\n  }\n  static milliSecsToMinSecsConverter(milliSecs: number) {\n    const secs: number = Math.floor(milliSecs / 1000);\n    const seconds = secs % 60;\n    const minutes = Math.floor(secs / 60);\n    return { minutes, seconds };\n  }\n\n  static isDateToday(_date: Date | string) {\n    const date = new Date(_date);\n    return date.toDateString() === new Date().toDateString();\n  }\n\n  static daysBetween(_date1: string | Date, _date2: string | Date) {\n    const date1 = new Date(_date1);\n    const date2 = new Date(_date2);\n    return Math.abs(date1.getTime() - date2.getTime()) / 1000 / 3600 / 24;\n  }\n\n  static jalaliDaysBetween(_date1: JalaliDate, _date2: JalaliDate) {\n    const date1 = this.jalaliToGregorian(_date1);\n    const date2 = this.jalaliToGregorian(_date2);\n    return this.daysBetween(date1, date2);\n  }\n\n  static getHourAndMinuteDate(date: Date) {\n    return `${date.toLocaleTimeString(undefined, {\n      hour: '2-digit',\n      minute: '2-digit',\n    })}`;\n  }\n\n  static getOnlyDateISO(date: Date | string | number) {\n    const dateObj = new Date(date);\n    return !date || this.isValidDate(dateObj) ? dateObj.toISOString().slice(0, 10) : null;\n  }\n\n  static calculateFromAndToOfDateRange(dateRange: { length: number; to: number }): {\n    fromJalali: JalaliDate;\n    toJalali: JalaliDate;\n    fromDate: Date;\n    toDate: Date;\n  } {\n    const toJalali = DateUtils.getTodayJalali();\n    toJalali.addDays(dateRange.to);\n    if (!toJalali) {\n      throw new Error('Calculated to jalali is null');\n    }\n    const toDate = DateUtils.jalaliToGregorian(toJalali);\n    const fromDate = new Date(toDate);\n    fromDate.setDate(toDate.getDate() - (dateRange.length - 1));\n    const fromJalali = DateUtils.gregorianToJalali(fromDate);\n\n    return { fromJalali, toJalali, fromDate, toDate };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { JalaliDate } from './jalali-date';\nimport { DateUtils } from './date.utils';\n\n@Pipe({\n  name: 'pghJalaliDate',\n  pure: true,\n  standalone: false,\n})\nexport class PghJalaliDatePipe implements PipeTransform {\n  transform(\n    value: JalaliDate | Date | string | number | null | undefined,\n    time: boolean | string = false,\n    dateParser?: ((dateString: string) => Date) | null,\n  ): string {\n    if (!value) return '';\n\n    let jalaliDate;\n    try {\n      if (dateParser && typeof value === 'string') {\n        jalaliDate = JalaliDate.from(dateParser(value));\n      } else {\n        jalaliDate = JalaliDate.from(value);\n      }\n    } catch (error) {\n      throw new Error('PghJalaliDatePipe: Invalid pipe argument');\n    }\n\n    if (!time) {\n      return jalaliDate.format();\n    }\n\n    if (value instanceof JalaliDate) {\n      throw new Error(\n        \"pghJalaliDate Pipe: value type is JalaliDate and time format is required. JalaliDate doesn't have time data. Use a Date object instead\",\n      );\n    }\n\n    const timeFormat = typeof time === 'boolean' ? 'HH:MM' : time;\n    const date = new Date(value);\n    return `${jalaliDate.format()} ${DateUtils.format(date, timeFormat)}`;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghJalaliDatePipe } from './jalali-date.pipe';\n\n@NgModule({\n  declarations: [PghJalaliDatePipe],\n  imports: [CommonModule],\n  exports: [PghJalaliDatePipe],\n})\nexport class PghJalaliDateModule {}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// THIS CODE IS GENERATED - DO NOT MODIFY\n// See angular/tools/gulp-tasks/cldr/extract.js\nconst u = undefined;\n\nfunction plural(n: number): number {\n  const i = Math.floor(Math.abs(n));\n  if (i === 0 || n === 1) {\n    return 1;\n  }\n  return 5;\n}\n\nexport const localeIr = ({ isRial = false }) => [\n  'fa-IR',\n  [\n    ['ق', 'ب'],\n    ['ق.ظ.', 'ب.ظ.'],\n    ['قبل\\u200Cازظهر', 'بعدازظهر'],\n  ],\n  [['ق.ظ.', 'ب.ظ.'], u, ['قبل\\u200Cازظهر', 'بعدازظهر']],\n  [\n    ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],\n    ['یک', 'دو', 'سه', 'چهار', 'پنج', 'جمعه', 'شنبه'],\n    ['یکشنبه', 'دوشنبه', 'سه\\u200Cشنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],\n    ['۱ش', '۲ش', '۳ش', '۴ش', '۵ش', 'ج', 'ش'],\n  ],\n  u,\n  [\n    ['فر', 'ار', 'خر', 'تی', 'مر', 'شه', 'مه', 'آ', 'آذ', 'دی', 'به', 'اس'],\n    ['فرو', 'اردی', 'خرد', 'تیر', 'مرد', 'شهر', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسف'],\n    [\n      'فروردین',\n      'اردیبهشت',\n      'خرداد',\n      'تیر',\n      'مرداد',\n      'شهریور',\n      'مهر',\n      'آبان',\n      'آذر',\n      'دی',\n      'بهمن',\n      'اسفند',\n    ],\n  ],\n  [\n    ['ژ', 'ف', 'م', 'آ', 'م', 'ژ', 'ژ', 'ا', 'س', 'ا', 'ن', 'د'],\n    [\n      'ژانویه',\n      'فوریه',\n      'مارس',\n      'آوریل',\n      'مه',\n      'ژوئن',\n      'ژوئیه',\n      'اوت',\n      'سپتامبر',\n      'اکتبر',\n      'نوامبر',\n      'دسامبر',\n    ],\n    u,\n  ],\n  [\n    ['ق', 'م'],\n    ['ق.م.', 'م.'],\n    ['قبل از میلاد', 'میلادی'],\n  ],\n  6,\n  [5, 5],\n  ['y/M/d', 'd MMM y', 'd MMMM y', 'EEEE d MMMM y'],\n  ['H:mm', 'H:mm:ss', 'H:mm:ss (z)', 'H:mm:ss (zzzz)'],\n  ['{1}،\\u200F {0}', u, '{1}، ساعت {0}', u],\n  ['.', ',', ';', '%', '\\u200E+', '\\u200E−', 'E', '×', '‰', '∞', 'غیر عدد', ':'],\n  ['#,##0.###', '#,##0%', '#,##0.00 ¤', '#E0'],\n  'IRR',\n  isRial ? 'ریال' : 'تومان',\n  isRial ? 'ریال ایران' : 'تومان ایران',\n  {\n    IRR: isRial ? ['ریال', 'ریال', 'ریال'] : ['تومان', 'تومان', 'تومان'],\n  },\n  'rtl',\n  plural,\n];\n","import { Injectable } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\n\n@Injectable()\nexport class PghPersianMatPaginatorIntl extends MatPaginatorIntl {\n  itemsPerPageLabel = 'آیتم در هر صفحه';\n  nextPageLabel = 'صفحه‌ی بعد';\n  previousPageLabel = 'صفحه‌ی قبل';\n  firstPageLabel = 'صفحه اول';\n  lastPageLabel = 'صفحه آخر';\n\n  getRangeLabel = (page: number, pageSize: number, length: number): string => {\n    if (length === 0 || pageSize === 0) return `0 از ${length}`;\n    length = Math.max(length, 0);\n    const startIndex = page * pageSize;\n    const endIndex =\n      startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n    return `${startIndex + 1} - ${endIndex} از  ${length}`;\n  };\n}\n","import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { JALALI_SLASH_FORMATS } from './date-format';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\nimport { PghPersianMatPaginatorIntl } from './material-paginator-intl';\nimport { MaterialJalaliDateAdapter } from './material-jalali-date.adapter';\n\nexport const PGH_MAT_PERSIAN_GLOBAL_OPTIONS = [\n  { provide: DateAdapter, useClass: MaterialJalaliDateAdapter, deps: [MAT_DATE_LOCALE] },\n  { provide: MAT_DATE_FORMATS, useValue: JALALI_SLASH_FORMATS },\n  { provide: MatPaginatorIntl, useClass: PghPersianMatPaginatorIntl },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}