{"version":3,"file":"material-date-fns-adapter.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-date-fns-adapter/adapter/date-fns-adapter.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-date-fns-adapter/adapter/date-fns-formats.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-date-fns-adapter/adapter/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {Service, inject} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {\n  Locale,\n  getMonth,\n  getYear,\n  getDate,\n  getDay,\n  getHours,\n  getMinutes,\n  getSeconds,\n  set,\n  getDaysInMonth,\n  formatISO,\n  addYears,\n  addMonths,\n  addDays,\n  addSeconds,\n  isValid,\n  isDate,\n  format,\n  parseISO,\n  parse,\n} from 'date-fns';\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n  const valuesArray = Array(length);\n  for (let i = 0; i < length; i++) {\n    valuesArray[i] = valueFunction(i);\n  }\n  return valuesArray;\n}\n\n// date-fns doesn't have a way to read/print month names or days of the week directly,\n// so we get them by formatting a date with a format that produces the desired month/day.\nconst MONTH_FORMATS = {\n  long: 'LLLL',\n  short: 'LLL',\n  narrow: 'LLLLL',\n};\n\nconst DAY_OF_WEEK_FORMATS = {\n  long: 'EEEE',\n  short: 'EEE',\n  narrow: 'EEEEE',\n};\n\n/** Adds date-fns support to Angular Material. */\n@Service({autoProvided: false})\nexport class DateFnsAdapter extends DateAdapter<Date, Locale> {\n  constructor() {\n    super();\n    const matDateLocale = inject(MAT_DATE_LOCALE, {optional: true});\n    this.setLocale(matDateLocale as Locale);\n  }\n\n  getYear(date: Date): number {\n    return getYear(date);\n  }\n\n  getMonth(date: Date): number {\n    return getMonth(date);\n  }\n\n  getDate(date: Date): number {\n    return getDate(date);\n  }\n\n  getDayOfWeek(date: Date): number {\n    return getDay(date);\n  }\n\n  getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n    const pattern = MONTH_FORMATS[style];\n    return range(12, i => this.format(new Date(2017, i, 1), pattern));\n  }\n\n  getDateNames(): string[] {\n    const dtf =\n      typeof Intl !== 'undefined'\n        ? new Intl.DateTimeFormat(this.locale.code, {\n            day: 'numeric',\n            timeZone: 'utc',\n          })\n        : null;\n\n    return range(31, i => {\n      if (dtf) {\n        // date-fns doesn't appear to support this functionality.\n        // Fall back to `Intl` on supported browsers.\n        const date = new Date();\n        date.setUTCFullYear(2017, 0, i + 1);\n        date.setUTCHours(0, 0, 0, 0);\n        return dtf.format(date).replace(/[\\u200e\\u200f]/g, '');\n      }\n\n      return i + '';\n    });\n  }\n\n  getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n    const pattern = DAY_OF_WEEK_FORMATS[style];\n    return range(7, i => this.format(new Date(2017, 0, i + 1), pattern));\n  }\n\n  getYearName(date: Date): string {\n    return this.format(date, 'y');\n  }\n\n  getFirstDayOfWeek(): number {\n    return this.locale.options?.weekStartsOn ?? 0;\n  }\n\n  getNumDaysInMonth(date: Date): number {\n    return getDaysInMonth(date);\n  }\n\n  clone(date: Date): Date {\n    return new Date(date.getTime());\n  }\n\n  createDate(year: number, month: number, date: number): Date {\n    if (typeof ngDevMode === 'undefined' || ngDevMode) {\n      // Check for invalid month and date (except upper bound on date which we have to check after\n      // creating the Date).\n      if (month < 0 || month > 11) {\n        throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n      }\n\n      if (date < 1) {\n        throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n      }\n    }\n\n    // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n    // To work around this we use `setFullYear` and `setHours` instead.\n    const result = new Date();\n    result.setFullYear(year, month, date);\n    result.setHours(0, 0, 0, 0);\n\n    // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n    if (result.getMonth() != month && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n    }\n\n    return result;\n  }\n\n  today(): Date {\n    return new Date();\n  }\n\n  parse(value: unknown, parseFormat: string | string[]): Date | null {\n    return this._parse(value, parseFormat);\n  }\n\n  format(date: Date, displayFormat: string): string {\n    if (!this.isValid(date)) {\n      throw Error('DateFnsAdapter: Cannot format invalid date.');\n    }\n\n    return format(date, displayFormat, {locale: this.locale});\n  }\n\n  addCalendarYears(date: Date, years: number): Date {\n    return addYears(date, years);\n  }\n\n  addCalendarMonths(date: Date, months: number): Date {\n    return addMonths(date, months);\n  }\n\n  addCalendarDays(date: Date, days: number): Date {\n    return addDays(date, days);\n  }\n\n  toIso8601(date: Date): string {\n    return formatISO(date, {representation: 'date'});\n  }\n\n  /**\n   * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings\n   * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an\n   * invalid date for all other values.\n   */\n  override deserialize(value: unknown): Date | null {\n    if (typeof value === 'string') {\n      if (!value) {\n        return null;\n      }\n      const date = parseISO(value);\n      if (this.isValid(date)) {\n        return date;\n      }\n    }\n    return super.deserialize(value);\n  }\n\n  isDateInstance(obj: unknown): obj is Date {\n    return isDate(obj);\n  }\n\n  isValid(date: Date): boolean {\n    return isValid(date);\n  }\n\n  invalid(): Date {\n    return new Date(NaN);\n  }\n\n  override setTime(target: Date, hours: number, minutes: number, seconds: number): Date {\n    if (typeof ngDevMode === 'undefined' || ngDevMode) {\n      if (hours < 0 || hours > 23) {\n        throw Error(`Invalid hours \"${hours}\". Hours value must be between 0 and 23.`);\n      }\n\n      if (minutes < 0 || minutes > 59) {\n        throw Error(`Invalid minutes \"${minutes}\". Minutes value must be between 0 and 59.`);\n      }\n\n      if (seconds < 0 || seconds > 59) {\n        throw Error(`Invalid seconds \"${seconds}\". Seconds value must be between 0 and 59.`);\n      }\n    }\n\n    return set(this.clone(target), {hours, minutes, seconds, milliseconds: 0});\n  }\n\n  override getHours(date: Date): number {\n    return getHours(date);\n  }\n\n  override getMinutes(date: Date): number {\n    return getMinutes(date);\n  }\n\n  override getSeconds(date: Date): number {\n    return getSeconds(date);\n  }\n\n  override parseTime(value: unknown, parseFormat: string | string[]): Date | null {\n    return this._parse(value, parseFormat, false);\n  }\n\n  override addSeconds(date: Date, amount: number): Date {\n    return addSeconds(date, amount);\n  }\n\n  private _parse(\n    value: unknown,\n    parseFormat: string | string[],\n    shouldTryParseIso = true,\n  ): Date | null {\n    if (typeof value == 'string' && value.length > 0) {\n      if (shouldTryParseIso) {\n        const iso8601Date = parseISO(value);\n\n        if (this.isValid(iso8601Date)) {\n          return iso8601Date;\n        }\n      }\n\n      const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];\n\n      if (!parseFormat.length) {\n        throw Error('Formats array must not be empty.');\n      }\n\n      for (const currentFormat of formats) {\n        const fromFormat = parse(value, currentFormat, new Date(), {locale: this.locale});\n\n        if (this.isValid(fromFormat)) {\n          return fromFormat;\n        }\n      }\n\n      return this.invalid();\n    } else if (typeof value === 'number') {\n      return new Date(value);\n    } else if (value instanceof Date) {\n      return this.clone(value);\n    }\n\n    return null;\n  }\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {MatDateFormats} from '@angular/material/core';\n\nexport const MAT_DATE_FNS_FORMATS: MatDateFormats = {\n  parse: {\n    dateInput: 'P',\n    timeInput: 'p',\n  },\n  display: {\n    dateInput: 'P',\n    timeInput: 'p',\n    monthYearLabel: 'LLL uuuu',\n    dateA11yLabel: 'PP',\n    monthYearA11yLabel: 'LLLL uuuu',\n    timeOptionLabel: 'p',\n  },\n};\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {NgModule, Provider} from '@angular/core';\nimport {DateAdapter, MAT_DATE_FORMATS, MatDateFormats} from '@angular/material/core';\nimport {DateFnsAdapter} from './date-fns-adapter';\nimport {MAT_DATE_FNS_FORMATS} from './date-fns-formats';\n\nexport * from './date-fns-adapter';\nexport * from './date-fns-formats';\n\n@NgModule({\n  providers: [\n    {\n      provide: DateAdapter,\n      useClass: DateFnsAdapter,\n    },\n  ],\n})\nexport class DateFnsModule {}\n\n@NgModule({\n  providers: [provideDateFnsAdapter()],\n})\nexport class MatDateFnsModule {}\n\nexport function provideDateFnsAdapter(formats: MatDateFormats = MAT_DATE_FNS_FORMATS): Provider[] {\n  return [\n    {\n      provide: DateAdapter,\n      useClass: DateFnsAdapter,\n    },\n    {provide: MAT_DATE_FORMATS, useValue: formats},\n  ];\n}\n"],"names":[],"mappings":"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"}