@angular-material-components/moment-adapter
Version:
Angular Material Moment Adapter
1 lines • 19.5 kB
Source Map (JSON)
{"version":3,"file":"angular-material-components-moment-adapter.mjs","sources":["../../../../projects/moment-adapter/src/lib/moment-adapter.ts","../../../../projects/moment-adapter/src/lib/moment-formats.ts","../../../../projects/moment-adapter/src/lib/moment-adapter.module.ts","../../../../projects/moment-adapter/src/public-api.ts","../../../../projects/moment-adapter/src/angular-material-components-moment-adapter.ts"],"sourcesContent":["\r\n\r\nimport { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\n// Depending on whether rollup is used, moment needs to be imported differently.\r\n// Since Moment.js doesn't have a default export, we normally need to import using the `* as`\r\n// syntax. However, rollup creates a synthetic default module and we thus need to import it using\r\n// the `default as` syntax.\r\n// TODO(mmalerba): See if we can clean this up at some point.\r\nimport * as _moment from 'moment';\r\n// tslint:disable-next-line:no-duplicate-imports\r\nimport { default as _rollupMoment, Moment, MomentFormatSpecification, MomentInput } from 'moment';\r\nimport { NgxMatDateAdapter } from '@angular-material-components/datetime-picker';\r\n\r\nconst moment = _rollupMoment || _moment;\r\n\r\n/** Configurable options for {@see MomentDateAdapter}. */\r\nexport interface NgxMatMomentDateAdapterOptions {\r\n\r\n /**\r\n * When enabled, the dates have to match the format exactly.\r\n * See https://momentjs.com/guides/#/parsing/strict-mode/.\r\n */\r\n strict?: boolean;\r\n\r\n /**\r\n * Turns the use of utc dates on or off.\r\n * Changing this will change how Angular Material components like DatePicker output dates.\r\n * {@default false}\r\n */\r\n useUtc?: boolean;\r\n}\r\n\r\n/** InjectionToken for moment date adapter to configure options. */\r\nexport const NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS = new InjectionToken<NgxMatMomentDateAdapterOptions>(\r\n 'NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS', {\r\n providedIn: 'root',\r\n factory: NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY\r\n});\r\n\r\n\r\n/** @docs-private */\r\nexport function NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY(): NgxMatMomentDateAdapterOptions {\r\n return {\r\n useUtc: false\r\n };\r\n}\r\n\r\n\r\n/** Creates an array and fills it with values. */\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = Array(length);\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i);\r\n }\r\n return valuesArray;\r\n}\r\n\r\n\r\n/** Adapts Moment.js Dates for use with Angular Material. */\r\n@Injectable()\r\nexport class NgxMatMomentAdapter extends NgxMatDateAdapter<Moment> {\r\n\r\n // Note: all of the methods that accept a `Moment` input parameter immediately call `this.clone`\r\n // on it. This is to ensure that we're working with a `Moment` that has the correct locale setting\r\n // while avoiding mutating the original object passed to us. Just calling `.locale(...)` on the\r\n // input would mutate the object.\r\n\r\n private _localeData: {\r\n firstDayOfWeek: number,\r\n longMonths: string[],\r\n shortMonths: string[],\r\n dates: string[],\r\n longDaysOfWeek: string[],\r\n shortDaysOfWeek: string[],\r\n narrowDaysOfWeek: string[]\r\n };\r\n\r\n constructor(@Optional() @Inject(MAT_DATE_LOCALE) dateLocale: string,\r\n @Optional() @Inject(NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS)\r\n private _options?: NgxMatMomentDateAdapterOptions) {\r\n\r\n super();\r\n this.setLocale(dateLocale || moment.locale());\r\n }\r\n\r\n setLocale(locale: string) {\r\n super.setLocale(locale);\r\n\r\n let momentLocaleData = moment.localeData(locale);\r\n this._localeData = {\r\n firstDayOfWeek: momentLocaleData.firstDayOfWeek(),\r\n longMonths: momentLocaleData.months(),\r\n shortMonths: momentLocaleData.monthsShort(),\r\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\r\n longDaysOfWeek: momentLocaleData.weekdays(),\r\n shortDaysOfWeek: momentLocaleData.weekdaysShort(),\r\n narrowDaysOfWeek: momentLocaleData.weekdaysMin(),\r\n };\r\n }\r\n\r\n getYear(date: Moment): number {\r\n return this.clone(date).year();\r\n }\r\n\r\n getMonth(date: Moment): number {\r\n return this.clone(date).month();\r\n }\r\n\r\n getDate(date: Moment): number {\r\n return this.clone(date).date();\r\n }\r\n\r\n getDayOfWeek(date: Moment): number {\r\n return this.clone(date).day();\r\n }\r\n\r\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n // Moment.js doesn't support narrow month names, so we just use short if narrow is requested.\r\n return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\r\n }\r\n\r\n getDateNames(): string[] {\r\n return this._localeData.dates;\r\n }\r\n\r\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n if (style == 'long') {\r\n return this._localeData.longDaysOfWeek;\r\n }\r\n if (style == 'short') {\r\n return this._localeData.shortDaysOfWeek;\r\n }\r\n return this._localeData.narrowDaysOfWeek;\r\n }\r\n\r\n getYearName(date: Moment): string {\r\n return this.clone(date).format('YYYY');\r\n }\r\n\r\n getFirstDayOfWeek(): number {\r\n return this._localeData.firstDayOfWeek;\r\n }\r\n\r\n getNumDaysInMonth(date: Moment): number {\r\n return this.clone(date).daysInMonth();\r\n }\r\n\r\n clone(date: Moment): Moment {\r\n return date.clone().locale(this.locale);\r\n }\r\n\r\n createDate(year: number, month: number, date: number): Moment {\r\n // Moment.js will create an invalid date if any of the components are out of bounds, but we\r\n // explicitly check each case so we can throw more descriptive errors.\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n }\r\n\r\n const result = this._createMoment({ year, month, date }).locale(this.locale);\r\n\r\n // If the result isn't valid, the date must have been out of bounds for this month.\r\n if (!result.isValid()) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n today(): Moment {\r\n return this._createMoment().locale(this.locale);\r\n }\r\n\r\n parse(value: any, parseFormat: string | string[]): Moment | null {\r\n if (value && typeof value == 'string') {\r\n return this._createMoment(value, parseFormat, this.locale);\r\n }\r\n return value ? this._createMoment(value).locale(this.locale) : null;\r\n }\r\n\r\n format(date: Moment, displayFormat: string): string {\r\n date = this.clone(date);\r\n if (!this.isValid(date)) {\r\n throw Error('MomentDateAdapter: Cannot format invalid date.');\r\n }\r\n return date.format(displayFormat);\r\n }\r\n\r\n addCalendarYears(date: Moment, years: number): Moment {\r\n return this.clone(date).add({ years });\r\n }\r\n\r\n addCalendarMonths(date: Moment, months: number): Moment {\r\n return this.clone(date).add({ months });\r\n }\r\n\r\n addCalendarDays(date: Moment, days: number): Moment {\r\n return this.clone(date).add({ days });\r\n }\r\n\r\n toIso8601(date: Moment): string {\r\n return this.clone(date).format();\r\n }\r\n\r\n /**\r\n * Returns the given value if given a valid Moment or null. Deserializes valid ISO 8601 strings\r\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty\r\n * string into null. Returns an invalid date for all other values.\r\n */\r\n deserialize(value: any): Moment | null {\r\n let date;\r\n if (value instanceof Date) {\r\n date = this._createMoment(value).locale(this.locale);\r\n } else if (this.isDateInstance(value)) {\r\n // Note: assumes that cloning also sets the correct locale.\r\n return this.clone(value);\r\n }\r\n if (typeof value === 'string') {\r\n if (!value) {\r\n return null;\r\n }\r\n date = this._createMoment(value, moment.ISO_8601).locale(this.locale);\r\n }\r\n if (date && this.isValid(date)) {\r\n return this._createMoment(date).locale(this.locale);\r\n }\r\n return super.deserialize(value);\r\n }\r\n\r\n isDateInstance(obj: any): boolean {\r\n return moment.isMoment(obj);\r\n }\r\n\r\n isValid(date: Moment): boolean {\r\n return this.clone(date).isValid();\r\n }\r\n\r\n invalid(): Moment {\r\n return moment.invalid();\r\n }\r\n\r\n getHour(date: _moment.Moment): number {\r\n return date.hours();\r\n }\r\n getMinute(date: _moment.Moment): number {\r\n return date.minutes();\r\n }\r\n getSecond(date: _moment.Moment): number {\r\n return date.seconds();\r\n }\r\n setHour(date: _moment.Moment, value: number): void {\r\n date.hours(value);\r\n }\r\n setMinute(date: _moment.Moment, value: number): void {\r\n date.minutes(value)\r\n }\r\n setSecond(date: _moment.Moment, value: number): void {\r\n date.seconds(value);\r\n }\r\n\r\n /** Creates a Moment instance while respecting the current UTC settings. */\r\n private _createMoment(\r\n date?: MomentInput,\r\n format?: MomentFormatSpecification,\r\n locale?: string,\r\n ): Moment {\r\n const { strict, useUtc }: NgxMatMomentDateAdapterOptions = this._options || {};\r\n\r\n return useUtc\r\n ? moment.utc(date, format, locale, strict)\r\n : moment(date, format, locale, strict);\r\n }\r\n}\r\n","\r\n\r\nimport { NgxMatDateFormats } from '@angular-material-components/datetime-picker';\r\n\r\nconst DEFAULT_DATE_INPUT = 'l, LTS';\r\n\r\nexport const NGX_MAT_MOMENT_FORMATS: NgxMatDateFormats = {\r\n parse: {\r\n dateInput: DEFAULT_DATE_INPUT,\r\n },\r\n display: {\r\n dateInput: DEFAULT_DATE_INPUT,\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n","\r\n\r\nimport { NgxMatDateAdapter, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';\r\nimport { NgModule } from '@angular/core';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { NgxMatMomentAdapter, NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS } from './moment-adapter';\r\nimport { NGX_MAT_MOMENT_FORMATS } from './moment-formats';\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: NgxMatDateAdapter,\r\n useClass: NgxMatMomentAdapter,\r\n deps: [MAT_DATE_LOCALE, NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n }\r\n ],\r\n})\r\nexport class NgxMomentDateModule { }\r\n\r\n\r\n@NgModule({\r\n imports: [NgxMomentDateModule],\r\n providers: [{ provide: NGX_MAT_DATE_FORMATS, useValue: NGX_MAT_MOMENT_FORMATS }],\r\n})\r\nexport class NgxMatMomentModule { }\r\n","/*\r\n * Public API Surface of ngx-mat-moment-adapter\r\n */\r\n\r\nexport * from './lib/moment-adapter';\r\nexport * from './lib/moment-formats';\r\nexport * from './lib/moment-adapter.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_rollupMoment","_moment"],"mappings":"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"}