{"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, Optional, InjectionToken } from '@angular/core';\nimport * as _moment from 'moment';\nimport { Moment } from 'moment';\nimport { DateTimeAdapter, OWL_DATE_TIME_LOCALE } from '@danielmoncada/angular-datetime-picker';\n\nconst moment = (_moment as any).default ? (_moment as any).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        providedIn: 'root',\n        factory: OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY\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\n@Injectable()\nexport class MomentDateTimeAdapter extends DateTimeAdapter<Moment> {\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( @Optional() @Inject(OWL_DATE_TIME_LOCALE) private owlDateTimeLocale: string,\n                 @Optional() @Inject(OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS) private options?: OwlMomentDateTimeAdapterOptions ) {\n        super();\n        this.setLocale(owlDateTimeLocale || moment.locale());\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(),\n            shortDaysOfWeek: momentLocaleData.weekdaysShort(),\n            narrowDaysOfWeek: momentLocaleData.weekdaysMin(),\n            dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n        };\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\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\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: any ): 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    public createDate( year: number, month: number, date: number, hours: number = 0, minutes: number = 0, seconds: number = 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: any ): 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: any, parseFormat: any ): 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    get parseStrict() {\n        return this.options && this.options.parseStrict;\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: any ): Moment | null {\n        let date;\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        return super.deserialize(value);\n    }\n\n    /** Creates a Moment instance while respecting the current UTC settings. */\n    private createMoment(...args: any[]): 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_LOCALE } from '@danielmoncada/angular-datetime-picker';\nimport { OWL_DATE_TIME_FORMATS } 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\n@NgModule({\n    imports: [MomentDateTimeModule],\n    providers: [{provide: OWL_DATE_TIME_FORMATS, useValue: OWL_MOMENT_DATE_TIME_FORMATS}],\n})\nexport class OwlMomentDateTimeModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}