{"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 {Injectable, 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@Injectable()\nexport class DateFnsAdapter extends DateAdapter<Date, Locale> {\n  constructor(...args: unknown[]);\n\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":["range","length","valueFunction","valuesArray","Array","i","MONTH_FORMATS","long","short","narrow","DAY_OF_WEEK_FORMATS","DateFnsAdapter","DateAdapter","constructor","matDateLocale","inject","MAT_DATE_LOCALE","optional","setLocale","getYear","date","getMonth","getDate","getDayOfWeek","getDay","getMonthNames","style","pattern","format","Date","getDateNames","dtf","Intl","DateTimeFormat","locale","code","day","timeZone","setUTCFullYear","setUTCHours","replace","getDayOfWeekNames","getYearName","getFirstDayOfWeek","options","weekStartsOn","getNumDaysInMonth","getDaysInMonth","clone","getTime","createDate","year","month","ngDevMode","Error","result","setFullYear","setHours","today","parse","value","parseFormat","_parse","displayFormat","isValid","addCalendarYears","years","addYears","addCalendarMonths","months","addMonths","addCalendarDays","days","addDays","toIso8601","formatISO","representation","deserialize","parseISO","isDateInstance","obj","isDate","invalid","NaN","setTime","target","hours","minutes","seconds","set","milliseconds","getHours","getMinutes","getSeconds","parseTime","addSeconds","amount","shouldTryParseIso","iso8601Date","formats","isArray","currentFormat","fromFormat","deps","i0","ɵɵFactoryTarget","Injectable","decorators","MAT_DATE_FNS_FORMATS","dateInput","timeInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","timeOptionLabel","DateFnsModule","NgModule","ɵinj","ɵɵngDeclareInjector","minVersion","version","ngImport","type","providers","provide","useClass","args","MatDateFnsModule","provideDateFnsAdapter","MAT_DATE_FORMATS","useValue"],"mappings":"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"}