@danielmoncada/angular-datetime-picker-moment-adapter
Version:
Angular Date Time Picker (MomentJs Adapter)
1 lines • 20 kB
Source Map (JSON)
{"version":3,"file":"danielmoncada-angular-datetime-picker-moment-adapter.mjs","sources":["../../../projects/picker/src/lib/moment-adapter/moment-date-time-adapter.class.ts","../../../projects/picker/src/lib/moment-adapter/moment-date-time-format.class.ts","../../../projects/picker/src/lib/moment-adapter/moment-date-time.module.ts","../../../projects/picker/src/danielmoncada-angular-datetime-picker-moment-adapter.ts"],"sourcesContent":["/**\n * moment-date-time-adapter.class\n */\n\nimport { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport _moment, { Moment } from 'moment';\nimport { DateTimeAdapter, OWL_DATE_TIME_LOCALE } from '@danielmoncada/angular-datetime-picker';\n\nconst moment = (_moment as unknown)['default'] ? (_moment as unknown)['default'] : _moment;\n\n/** Configurable options for {@see MomentDateAdapter}. */\nexport interface OwlMomentDateTimeAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how the DateTimePicker output value.\n * {@default false}\n */\n useUtc: boolean;\n\n /**\n * Turns the use of strict string parsing in moment.\n * Changing this will change how the DateTimePicker interprets input.\n * {@default false}\n */\n parseStrict: boolean;\n}\n\n/** InjectionToken for moment date adapter to configure options. */\nexport const OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken<OwlMomentDateTimeAdapterOptions>(\n 'OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS',\n {\n providedIn: 'root',\n factory: OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY,\n },\n);\n\nexport function OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY(): OwlMomentDateTimeAdapterOptions {\n return {\n useUtc: false,\n parseStrict: false,\n };\n}\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@Injectable()\nexport class MomentDateTimeAdapter extends DateTimeAdapter<Moment> {\n public firstMonthOfTheYear: number = 0;\n public firstDayOfTheWeek: number = 0;\n\n private _localeData: {\n longMonths: string[];\n shortMonths: string[];\n longDaysOfWeek: string[];\n shortDaysOfWeek: string[];\n narrowDaysOfWeek: string[];\n dates: string[];\n };\n\n constructor(\n @Optional() @Inject(OWL_DATE_TIME_LOCALE) private owlDateTimeLocale: string,\n @Optional() @Inject(OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS) private options?: OwlMomentDateTimeAdapterOptions,\n ) {\n super();\n this.setLocale(owlDateTimeLocale || moment.locale());\n }\n\n get parseStrict() {\n return this.options && this.options.parseStrict;\n }\n\n public setLocale(locale: string) {\n super.setLocale(locale);\n\n const momentLocaleData = moment.localeData(locale);\n this._localeData = {\n longMonths: momentLocaleData.months(),\n shortMonths: momentLocaleData.monthsShort(),\n longDaysOfWeek: momentLocaleData.weekdays(true),\n shortDaysOfWeek: momentLocaleData.weekdaysShort(true),\n narrowDaysOfWeek: momentLocaleData.weekdaysMin(true),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n };\n }\n\n public getYear(date: Moment): number {\n return this.clone(date).year();\n }\n\n public getMonth(date: Moment): number {\n return this.clone(date).month();\n }\n\n public getDay(date: Moment): number {\n return this.clone(date).day();\n }\n\n public getDate(date: Moment): number {\n return this.clone(date).date();\n }\n\n public getHours(date: Moment): number {\n return this.clone(date).hours();\n }\n\n public getMinutes(date: Moment): number {\n return this.clone(date).minutes();\n }\n\n public getSeconds(date: Moment): number {\n return this.clone(date).seconds();\n }\n\n public getTime(date: Moment): number {\n return this.clone(date).valueOf();\n }\n\n public getNumDaysInMonth(date: Moment): number {\n return this.clone(date).daysInMonth();\n }\n\n public differenceInCalendarDays(dateLeft: Moment, dateRight: Moment): number {\n return this.clone(dateLeft).diff(dateRight, 'days');\n }\n\n public getYearName(date: Moment): string {\n return this.clone(date).format('YYYY');\n }\n\n public getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\n }\n\n public getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this._localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this._localeData.shortDaysOfWeek;\n }\n return this._localeData.narrowDaysOfWeek;\n }\n\n public getDateNames(): string[] {\n return this._localeData.dates;\n }\n\n public toIso8601(date: Moment): string {\n return this.clone(date).format();\n }\n\n public isEqual(dateLeft: Moment, dateRight: Moment): boolean {\n if (dateLeft && dateRight) {\n return this.clone(dateLeft).isSame(this.clone(dateRight));\n }\n\n return dateLeft === dateRight;\n }\n\n public isSameDay(dateLeft: Moment, dateRight: Moment): boolean {\n if (dateLeft && dateRight) {\n return this.clone(dateLeft).isSame(this.clone(dateRight), 'day');\n }\n\n return dateLeft === dateRight;\n }\n\n public isValid(date: Moment): boolean {\n return this.clone(date).isValid();\n }\n\n public invalid(): Moment {\n return moment.invalid();\n }\n\n public isDateInstance(obj: unknown): boolean {\n return moment.isMoment(obj);\n }\n\n public addCalendarYears(date: Moment, amount: number): Moment {\n return this.clone(date).add({ years: amount });\n }\n\n public addCalendarMonths(date: Moment, amount: number): Moment {\n return this.clone(date).add({ months: amount });\n }\n\n public addCalendarDays(date: Moment, amount: number): Moment {\n return this.clone(date).add({ days: amount });\n }\n\n public setHours(date: Moment, amount: number): Moment {\n return this.clone(date).hours(amount);\n }\n\n public setMinutes(date: Moment, amount: number): Moment {\n return this.clone(date).minutes(amount);\n }\n\n public setSeconds(date: Moment, amount: number): Moment {\n return this.clone(date).seconds(amount);\n }\n\n public createDate(year: number, month: number, date: number): Moment;\n\n public createDate(year: number, month: number, date: number, hours = 0, minutes = 0, seconds = 0): Moment {\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 if (hours < 0 || hours > 23) {\n throw Error(`Invalid hours \"${hours}\". Hours has to be between 0 and 23.`);\n }\n\n if (minutes < 0 || minutes > 59) {\n throw Error(`Invalid minutes \"${minutes}\". Minutes has to between 0 and 59.`);\n }\n\n if (seconds < 0 || seconds > 59) {\n throw Error(`Invalid seconds \"${seconds}\". Seconds has to be between 0 and 59.`);\n }\n\n const result = this.createMoment({ year, month, date, hours, minutes, seconds }).locale(this.getLocale());\n\n // If the result isn't valid, the date must have been out of bounds for this month.\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n\n public clone(date: Moment): Moment {\n return this.createMoment(date).clone().locale(this.getLocale());\n }\n\n public now(): Moment {\n return this.createMoment().locale(this.getLocale());\n }\n\n public format(date: Moment, displayFormat: string): string {\n date = this.clone(date);\n if (!this.isValid(date)) {\n throw Error('MomentDateTimeAdapter: Cannot format invalid date.');\n }\n return date.format(displayFormat);\n }\n\n public parse(value: unknown, parseFormat: unknown): Moment | null {\n if (value && typeof value === 'string') {\n return this.createMoment(value, parseFormat, this.getLocale(), this.parseStrict);\n }\n return value ? this.createMoment(value).locale(this.getLocale()) : null;\n }\n\n /**\n * Returns the given value if given a valid Moment or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty\n * string into null. Returns an invalid date for all other values.\n */\n deserialize(value: unknown): Moment | null {\n let date: _moment.Moment;\n\n if (value instanceof Date) {\n date = this.createMoment(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.createMoment(value, moment.ISO_8601, this.parseStrict).locale(this.getLocale());\n }\n if (date && this.isValid(date)) {\n return date;\n }\n\n return super.deserialize(value);\n }\n\n /** Creates a Moment instance while respecting the current UTC settings. */\n private createMoment(...args: unknown[]): Moment {\n return this.options && this.options.useUtc ? moment.utc(...args) : moment(...args);\n }\n}\n","/**\n * moment-date-time-format.class\n */\nimport { OwlDateTimeFormats } from '@danielmoncada/angular-datetime-picker';\n\nexport const OWL_MOMENT_DATE_TIME_FORMATS: OwlDateTimeFormats = {\n parseInput: 'l LT',\n fullPickerInput: 'l LT',\n datePickerInput: 'l',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n","/**\n * moment-date-time.module\n */\n\nimport { NgModule } from '@angular/core';\nimport { MomentDateTimeAdapter, OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS } from './moment-date-time-adapter.class';\nimport { OWL_MOMENT_DATE_TIME_FORMATS } from './moment-date-time-format.class';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from '@danielmoncada/angular-datetime-picker';\n\n@NgModule({\n providers: [\n {\n provide: DateTimeAdapter,\n useClass: MomentDateTimeAdapter,\n deps: [OWL_DATE_TIME_LOCALE, OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS],\n },\n ],\n})\nexport class MomentDateTimeModule {}\n\n@NgModule({\n imports: [MomentDateTimeModule],\n providers: [{ provide: OWL_DATE_TIME_FORMATS, useValue: OWL_MOMENT_DATE_TIME_FORMATS }],\n})\nexport class OwlMomentDateTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}