{"version":3,"file":"ngx-flatpicker.mjs","sources":["../../../projects/ngx-flatpicker/src/lib/ngx-flatpicker.component.ts","../../../projects/ngx-flatpicker/src/lib/flatpicker.directive.ts","../../../projects/ngx-flatpicker/src/lib/ngx-flatpickr.module.ts","../../../projects/ngx-flatpicker/src/public-api.ts","../../../projects/ngx-flatpicker/src/ngx-flatpicker.ts"],"sourcesContent":["import {Component, ViewChild, AfterViewInit, forwardRef, Input, OnChanges, SimpleChanges} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {FlatpickrOptions} from './flatpicker-options.interface';\n\n\n@Component({\n    selector: 'ngx-flatpickr',\n    template: `\n        <div class=\"ngx-flatpickr-input-container\" #flatpickr>\n            <input *ngIf=\"!hideButton\" class=\"ngx-flatpickr-input {{ addClass }}\" [placeholder]=\"placeholder\"\n                   [tabindex]=\"tabindex\" type=\"text\" (focus)=\"onFocus($event)\" data-input>\n            <ng-content></ng-content>\n        </div>\n    `,\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => NgxFlatpickrComponent),\n            multi: true\n        }\n    ]\n})\nexport class NgxFlatpickrComponent implements AfterViewInit, ControlValueAccessor, OnChanges {\n\n    public flatpickr!: Object;\n    @ViewChild('flatpickr', {\n        static: true\n    })\n    flatpickrElement: any;\n    @Input()\n    config!: FlatpickrOptions;\n    @Input()\n    placeholder: string = \"\";\n    @Input()\n    addClass: string = \"\";\n    @Input()\n    setDate!: string | Date;\n    @Input()\n    hideButton = false;\n    private defaultFlatpickrOptions: FlatpickrOptions = {\n        wrap: true,\n        clickOpens: true,\n        onChange: (selectedDates: any) => {\n            this.writeValue(selectedDates);\n        }\n    };\n\n    private _tabindex = 0;\n\n    @Input()\n    get tabindex() {\n        return this._tabindex;\n    }\n\n    set tabindex(ti: number) {\n        this._tabindex = Number(ti);\n    }\n\n    onTouchedFn: Function = () => {\n    };\n\n    ///////////////////////////////////\n\n    writeValue(value: any) {\n        this.propagateChange(value);\n    }\n\n    registerOnChange(fn: any) {\n        this.propagateChange = fn;\n    }\n\n    registerOnTouched(fn: any): void {\n        this.onTouchedFn = fn;\n    }\n\n    propagateChange = (_: any) => {\n    };\n\n    ///////////////////////////////////\n\n    setDateFromInput(date: any) {\n        this.flatpickrElement.nativeElement._flatpickr.setDate(date, true);\n    }\n\n    setAltInputPlaceholder(placeholder: string) {\n        this.flatpickrElement.nativeElement._flatpickr.altInput.setAttribute('placeholder', placeholder);\n    }\n\n    ngAfterViewInit() {\n        if (this.config) {\n            Object.assign(this.defaultFlatpickrOptions, this.config);\n        }\n        if (this.flatpickrElement.nativeElement.flatpickr) {\n            this.flatpickr = this.flatpickrElement.nativeElement.flatpickr(this.defaultFlatpickrOptions);\n        }\n        if (this.setDate) {\n            this.setDateFromInput(this.setDate);\n        }\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        if (this.flatpickrElement.nativeElement\n            && this.flatpickrElement.nativeElement._flatpickr) {\n\n            if (changes.hasOwnProperty('setDate')\n                && changes['setDate'].currentValue) {\n                this.setDateFromInput(changes['setDate'].currentValue);\n            }\n\n            if (this.config.altInput\n                && changes.hasOwnProperty('placeholder')\n                && changes['placeholder'].currentValue) {\n                this.setAltInputPlaceholder(changes['placeholder'].currentValue);\n            }\n        }\n    }\n\n    onFocus(event: any) {\n        this.onTouchedFn();\n    }\n}","import {\n    AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Input,\n    OnDestroy, OnInit, Output, Renderer2, SimpleChanges, OnChanges\n} from '@angular/core';\nimport {ControlContainer, FormControl, NgControl} from '@angular/forms';\nimport {Subscription} from 'rxjs';\nimport {FlatpickrEvent} from './flatpicker-event.interface';\nimport {FlatpickrInstance} from './flatpicker-instance';\nimport {FlatpickrOptions} from './flatpicker-options.interface';\n\n@Directive({selector: '[flatpickr]', exportAs: 'ngx-flatpickr'})\nexport class NgxFlatpickrDirective implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n    /**\n     * The flatpickr configuration as a single object of values.\n     *\n     * See https://chmln.github.io/flatpickr/options/ for full list.\n     */\n    @Input('flatpickr') public flatpickrOptions!: FlatpickrOptions;\n\n    /**\n     * Placeholder for input field.\n     *\n     * Default:  null\n     */\n    @Input('placeholder') public placeholder!: string;\n\n    /**\n     * Exactly the same as date format, but for the altInput field.\n     *\n     * Default:  \"F j, Y\"\n     */\n    @Input('altFormat') public flatpickrAltFormat!: string;\n\n    /**\n     * Show the user a readable date (as per altFormat), but return something\n     * totally different to the server.\n     *\n     * Default:  false\n     */\n    @Input('altInput') public flatpickrAltInput!: boolean;\n\n    /**\n     * This class will be added to the input element created by the altInput\n     * option.\n     *\n     * Default:  \"\"\n     */\n    @Input('altInputClass') public flatpickrAltInputClass!: string;\n\n    /**\n     * Allows the user to enter a date directly input the input field. By\n     * default, direct entry is disabled.\n     *\n     * Default:  false\n     */\n    @Input('allowInput') public flatpickrAllowInput!: boolean;\n\n    /**\n     * Instead of body, appends the calendar to the specified node instead.\n     *\n     * Default:  null\n     */\n    @Input('appendTo') public flatpickrAppendTo: any; // HTMLElement\n\n    /**\n     * Whether clicking on the input should open the picker.\n     * You could disable this if you wish to open the calendar manually\n     * with.open().\n     *\n     * Default:  true\n     */\n    @Input('clickOpens') public flatpickrClickOpens!: boolean;\n\n    /**\n     * A string of characters which are used to define how the date will be\n     * displayed in the input box.\n     * See https://chmln.github.io/flatpickr/formatting/ for supported tokens.\n     *\n     * Default:  \"Y-m-d\"\n     */\n    @Input('dateFormat') public flatpickrDateFormat!: string;\n\n    /**\n     * Sets the initial selected date(s).\n     *\n     * If you're using {mode: \"multiple\"} or a range calendar supply an Array of\n     * Date objects or an Array of date strings which follow your dateFormat.\n     *\n     * Otherwise, you can supply a single Date object or a date string.\n     *\n     * Default:  null\n     */\n    @Input('defaultDate') public flatpickrDefaultDate!: string | Date;\n\n    /**\n     * Disable an array of specific dates, date ranges, or functions to disable\n     * dates. See https://chmln.github.io/flatpickr/examples/#disabling-specific-dates\n     *\n     * Default:  []\n     */\n    @Input('disable') public flatpickrDisable!: string[] | Date[];\n\n    /**\n     * Set disableMobile to true to always use the non-native picker. By\n     * default, Flatpickr utilizes native datetime widgets unless certain\n     * options (e.g. disable) are used.\n     *\n     * Default:  false\n     */\n    @Input('disableMobile') public flatpickrDisableMobile!: boolean;\n\n    /**\n     * Enable an array of specific dates, date ranges, or functions to enable\n     * dates. See https://chmln.github.io/flatpickr/examples/#disabling-all-dates-except-select-few\n     *\n     * Default:  []\n     */\n    @Input('enable') public flatpickrEnable!: string[] | Date[];\n\n    /**\n     * Enables time picker.\n     *\n     * Default:  false\n     */\n    @Input('enableTime') public flatpickrEnableTime!: boolean;\n\n    /**\n     * Enables seconds in the time picker.\n     *\n     * Default:  false\n     */\n    @Input('enableSeconds') public flatpickrEnableSeconds!: boolean;\n\n    /**\n     * Adjusts the step for the hour input (incl. scrolling).\n     *\n     * Default:  1\n     */\n    @Input('hourIncrement') public flatpickrHourIncrement!: number;\n\n    /**\n     * Displays the calendar inline.\n     *\n     * Default:  false\n     */\n    @Input('inline') public flatpickrInline!: boolean;\n\n    /**\n     * Use a specific locale for the flatpickr instance.\n     *\n     * Default:  null\n     */\n    @Input('locale') public flatpickrLocale!: Object;\n\n    /**\n     * The maximum date that a user can pick to (inclusive).\n     *\n     * Default:  null\n     */\n    @Input('maxDate') public flatpickrMaxDate!: string | Date;\n\n    /**\n     * The minimum date that a user can start picking from (inclusive).\n     *\n     * Default:  null\n     */\n    @Input('minDate') public flatpickrMinDate!: string | Date;\n\n    /**\n     * Adjusts the step for the minute input (incl. scrolling).\n     *\n     * Default:  5\n     */\n    @Input('minuteIncrement') public flatpickrMinuteIncrement!: number;\n\n    /**\n     * \"single\", \"multiple\", or \"range\"\n     *\n     * Default:  \"single\"\n     */\n    @Input('mode') public flatpickrMode!: string;\n\n    /**\n     * HTML for the arrow icon, used to switch months.\n     *\n     * Default:  \">\"\n     */\n    @Input('nextArrow') public flatpickrNextArrow!: string;\n\n    /**\n     * Hides the day selection in calendar. Use it along with enableTime to\n     * create a time picker.\n     *\n     * Default:  false\n     */\n    @Input('noCalendar') public flatpickrNoCalendar!: boolean;\n\n    /**\n     * Function that expects a date string and must return a Date object.\n     *\n     * Default:  false\n     */\n    @Input('parseDate') public flatpickrParseDate!: Function;\n\n    /**\n     * HTML for the left arrow icon.\n     *\n     * Default:  \"<\"\n     */\n    @Input('prevArrow') public flatpickrPrevArrow!: string;\n\n    /**\n     * Show the month using the shorthand version (ie, Sep instead of September).\n     *\n     * Default:  false\n     */\n    @Input('shorthandCurrentMonth') public flatpickrShorthandCurrentMonth!: boolean;\n\n    /**\n     * Position the calendar inside the wrapper and next to the input element\n     * (Leave false unless you know what you're doing).\n     *\n     * Default:  false\n     */\n    @Input('static') public flatpickrStatic!: boolean;\n\n    /**\n     * Displays time picker in 24 hour mode without AM/PM selection when enabled.\n     *\n     * Default:  false\n     */\n    @Input('time_24hr') public flatpickrTime_24hr!: boolean;\n\n    @Input('utc') public flatpickrUtc!: boolean;\n\n    /**\n     * Enables display of week numbers in calendar.\n     *\n     * Default:  false\n     */\n    @Input('weekNumbers') public flatpickrWeekNumbers!: boolean;\n\n    /**\n     * Custom elements and input groups.\n     *\n     * Default:  false\n     */\n    @Input('wrap') public flatpickrWrap!: boolean;\n\n    /**\n     * onChange gets triggered when the user selects a date, or changes the time on a selected date.\n     *\n     * Default:  null\n     */\n    @Output('onChange') public flatpickrOnChange: EventEmitter<FlatpickrEvent> = new EventEmitter();\n\n    /**\n     * onClose gets triggered when the calendar is closed.\n     *\n     * Default:  null\n     */\n    @Output('onClose') public flatpickrOnClose: EventEmitter<FlatpickrEvent> = new EventEmitter();\n\n    /**\n     * onOpen gets triggered when the calendar is opened.\n     *\n     * Default:  null\n     */\n    @Output('onOpen') public flatpickrOnOpen: EventEmitter<FlatpickrEvent> = new EventEmitter();\n\n    /**\n     * onReady gets triggered once the calendar is in a ready state.\n     *\n     * Default:  null\n     */\n    @Output('onReady') public flatpickrOnReady: EventEmitter<FlatpickrEvent> = new EventEmitter();\n    protected globalOnChange!: Function;\n    protected globalOnClose!: Function;\n    protected globalOnOpen!: Function;\n    protected globalOnReady!: Function;\n    protected flatpickr!: FlatpickrInstance;\n    protected formControlListener!: Subscription;\n\n    constructor(\n        protected parent: ControlContainer,\n        protected ngControl: NgControl,\n        protected element: ElementRef,\n        protected renderer: Renderer2\n    ) {\n    }\n\n    /** Allow access properties using index notation */\n    [key: string]: any;\n\n    get control(): FormControl {\n        // @ts-ignore\n        return this.parent ? this.parent.formDirective.getControl(this.ngControl) : null;\n    }\n\n    /** Allow double-clicking on the control to open/close it. */\n    @HostListener('dblclick')\n    public onClick() {\n        this.flatpickr.toggle();\n    }\n\n    ngAfterViewInit() {\n        /** We cannot initialize the flatpickr instance in ngOnInit(); it will\n         randomize the date when the form control initializes. */\n        let nativeElement = this.element.nativeElement;\n\n        if (typeof nativeElement === 'undefined' || nativeElement === null) {\n            throw 'Error: invalid input element specified';\n        }\n\n        if (this.flatpickrOptions.wrap) {\n            this.renderer.setAttribute(this.element.nativeElement, 'data-input', '');\n            nativeElement = nativeElement.parentNode;\n        }\n\n        this.flatpickr = <FlatpickrInstance>nativeElement.flatpickr(this.flatpickrOptions);\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        if (this.flatpickr\n            && this.flatpickrAltInput\n            && changes.hasOwnProperty('placeholder')\n            && changes['placeholder'].currentValue) {\n            this.flatpickr.altInput.setAttribute('placeholder', changes['placeholder'].currentValue);\n        }\n    }\n\n    ngOnDestroy() {\n        if (this.flatpickr) {\n            this.flatpickr.destroy();\n        }\n\n        if (this.formControlListener) {\n            this.formControlListener.unsubscribe();\n            // @ts-ignore\n            this.formControlListener = undefined;\n        }\n\n        // @ts-ignore\n        this.flatpickrOnChange = undefined;\n        // @ts-ignore\n        this.flatpickrOnClose = undefined;\n        // @ts-ignore\n        this.flatpickrOnOpen = undefined;\n        // @ts-ignore\n        this.flatpickrOnReady = undefined;\n    }\n\n    ngOnInit() {\n        // @ts-ignore\n        this.globalOnChange = this.flatpickrOptions.onChange;\n        // @ts-ignore\n        this.globalOnClose = this.flatpickrOptions.onClose;\n        // @ts-ignore\n        this.globalOnOpen = this.flatpickrOptions.onOpen;\n        // @ts-ignore\n        this.globalOnReady = this.flatpickrOptions.onReady;\n\n        this.flatpickrOptions = {\n            altFormat: this.getOption('altFormat'),\n            altInput: this.getOption('altInput'),\n            altInputClass: this.getOption('altInputClass'),\n            allowInput: this.getOption('allowInput'),\n            appendTo: this.getOption('appendTo'),\n            clickOpens: this.getOption('clickOpens', true),\n            dateFormat: this.getOption('dateFormat'),\n            defaultDate: this.getOption('defaultDate'),\n            disable: this.getOption('disable'),\n            disableMobile: this.getOption('disableMobile'),\n            enable: this.getOption('enable'),\n            enableTime: this.getOption('enableTime'),\n            enableSeconds: this.getOption('enableSeconds'),\n            hourIncrement: this.getOption('hourIncrement'),\n            inline: this.getOption('inline'),\n            locale: this.getOption('locale'),\n            maxDate: this.getOption('maxDate'),\n            minDate: this.getOption('minDate'),\n            minuteIncrement: this.getOption('minuteIncrement'),\n            mode: this.getOption('mode'),\n            nextArrow: this.getOption('nextArrow'),\n            noCalendar: this.getOption('noCalendar'),\n            onChange: this.eventOnChange.bind(this),\n            onClose: this.eventOnClose.bind(this),\n            onOpen: this.eventOnOpen.bind(this),\n            onReady: this.eventOnReady.bind(this),\n            parseDate: this.getOption('parseDate'),\n            prevArrow: this.getOption('prevArrow'),\n            shorthandCurrentMonth: this.getOption('shorthandCurrentMonth'),\n            static: this.getOption('static'),\n            time_24hr: this.getOption('time_24hr'),\n            utc: this.getOption('utc'),\n            weekNumbers: this.getOption('weekNumbers'),\n            wrap: this.getOption('wrap', true),\n        };\n\n        // Remove unset properties\n        Object.keys(this.flatpickrOptions).forEach((key: string) => {\n            (this.flatpickrOptions[key] === undefined) &&\n            delete this.flatpickrOptions[key];\n        });\n\n        if (this.control) {\n            this.formControlListener = this.control.valueChanges\n                .subscribe((value: any) => {\n                    if (!(value instanceof Date)) {\n                        // Quietly update the value of the form control to be a\n                        // Date object. This avoids any external subscribers\n                        // from being notified a second time (once for the user\n                        // initiated event, and once for our conversion to\n                        // Date()).\n                        this.control.setValue(new Date('' + value), {\n                            onlySelf: true,\n                            emitEvent: false,\n                            emitModelToViewChange: false,\n                            emitViewToModelChange: false\n                        });\n                    }\n                });\n        }\n    }\n\n    /**\n     * Fire off the event emitter for the directive element, and also for the\n     * global onChange callback, if defined.\n     */\n    protected eventOnChange(selectedDates: Date[], dateStr: string, instance: Object): void {\n        let event: FlatpickrEvent = {\n            selectedDates: selectedDates,\n            dateStr: dateStr,\n            instance: instance\n        };\n        if (this.flatpickrOnChange) {\n            this.flatpickrOnChange.emit(event);\n        }\n        if (this.globalOnChange) {\n            this.globalOnChange(event);\n        }\n    }\n\n    /**\n     * Fire off the event emitter for the directive element, and also for the\n     * global onClose callback, if defined.\n     */\n    protected eventOnClose(selectedDates: Date[], dateStr: string, instance: Object): void {\n        let event: FlatpickrEvent = {\n            selectedDates: selectedDates,\n            dateStr: dateStr,\n            instance: instance\n        };\n        if (this.flatpickrOnClose) {\n            this.flatpickrOnClose.emit(event);\n        }\n        if (this.globalOnClose) {\n            this.globalOnClose(event);\n        }\n    }\n\n    /**\n     * Fire off the event emitter for the directive element, and also for the\n     * global onOpen callback, if defined.\n     */\n    protected eventOnOpen(selectedDates: Date[], dateStr: string, instance: Object): void {\n        let event: FlatpickrEvent = {\n            selectedDates: selectedDates,\n            dateStr: dateStr,\n            instance: instance\n        };\n        if (this.flatpickrOnOpen) {\n            this.flatpickrOnOpen.emit(event);\n        }\n        if (this.globalOnOpen) {\n            this.globalOnOpen(event);\n        }\n    }\n\n    /**\n     * Fire off the event emitter for the directive element, and also for the\n     * global onReady callback, if defined.\n     */\n    protected eventOnReady(selectedDates: Date[], dateStr: string, instance: Object): void {\n        let event: FlatpickrEvent = {\n            selectedDates: selectedDates,\n            dateStr: dateStr,\n            instance: instance\n        };\n        if (this.flatpickrOnReady) {\n            this.flatpickrOnReady.emit(event);\n        }\n        if (this.globalOnReady) {\n            this.globalOnReady(event);\n        }\n    }\n\n    /**\n     * Return the configuration value for option {option}, or {defaultValue} if it\n     * doesn't exist.\n     */\n    protected getOption(option: string, defaultValue?: any): any {\n        let localName = 'flatpickr' + option.substring(0, 1).toUpperCase()\n            + option.substring(1);\n\n        if (typeof this[localName] !== 'undefined') {\n            return this[localName];\n        } else if (typeof this.flatpickrOptions[option] !== 'undefined') {\n            return this.flatpickrOptions[option];\n        } else {\n            return defaultValue;\n        }\n    }\n}","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport 'flatpickr';\nimport {NgxFlatpickrComponent} from \"./ngx-flatpicker.component\";\nimport {NgxFlatpickrDirective} from \"./flatpicker.directive\";\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [\n        NgxFlatpickrComponent,\n        NgxFlatpickrDirective\n    ],\n    exports: [\n        NgxFlatpickrComponent,\n        NgxFlatpickrDirective\n    ]\n})\nexport class NgxFlatpickrModule {\n}","/*\n * Public API Surface of ngx-flatpicker\n */\n\nexport {NgxFlatpickrComponent} from './lib/ngx-flatpicker.component';\nexport {NgxFlatpickrDirective} from './lib/flatpicker.directive';\nexport {FlatpickrEvent} from './lib/flatpicker-event.interface';\nexport {FlatpickrOptions} from './lib/flatpicker-options.interface';\nexport {NgxFlatpickrModule} from './lib/ngx-flatpickr.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}