{"version":3,"file":"dl-date-time-picker.component.d.ts","sources":["dl-date-time-picker.component.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA","sourcesContent":["/**\r\n * @license\r\n * Copyright 2013-present Dale Lotts All Rights Reserved.\r\n * http://www.dalelotts.com\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/dalelotts/angular-bootstrap-datetimepicker/blob/master/LICENSE\r\n */\r\nimport { ElementRef, EventEmitter, NgZone, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { DlDateAdapter } from '../core/dl-date-adapter';\r\nimport { DlDateTimePickerChange } from './dl-date-time-picker-change';\r\nimport { DateButton } from './dl-date-time-picker-date-button';\r\nimport { DlDateTimePickerModel } from './dl-date-time-picker-model';\r\nimport { DlDayModelProvider } from './dl-model-provider-day';\r\nimport { DlHourModelProvider } from './dl-model-provider-hour';\r\nimport { DlMinuteModelProvider } from './dl-model-provider-minute';\r\nimport { DlMonthModelProvider } from './dl-model-provider-month';\r\nimport { DlYearModelProvider } from './dl-model-provider-year';\r\n/**\r\n * Component that provides all of the user facing functionality of the date/time picker.\r\n */\r\nexport declare class DlDateTimePickerComponent<D> implements OnChanges, OnInit, ControlValueAccessor {\r\n    private _elementRef;\r\n    private _ngZone;\r\n    private _dateAdapter;\r\n    private yearModelComponent;\r\n    private monthModelComponent;\r\n    private dayModelComponent;\r\n    private hourModelComponent;\r\n    private minuteModelComponent;\r\n    /**\r\n     * Change listener callback functions registered\r\n     * via `registerOnChange`\r\n     * @internal\r\n     **/\r\n    private _changed;\r\n    /**\r\n     * Model for the current view.\r\n     *\r\n     * @internal\r\n     **/\r\n    _model: DlDateTimePickerModel;\r\n    /**\r\n     * Maps view name to the next view (the view for the next smallest increment of time).\r\n     * @internal\r\n     **/\r\n    private _nextView;\r\n    /**\r\n     * Maps view name to the previous view (the view for the next largest increment of time).\r\n     * @internal\r\n     **/\r\n    private _previousView;\r\n    /**\r\n     * Touch listener callback functions registered\r\n     * via `registerOnChange`\r\n     * @internal\r\n     **/\r\n    private _touched;\r\n    /**\r\n     * Stores the selected value for this picker.\r\n     * @internal\r\n     **/\r\n    private _value;\r\n    /**\r\n     * Maps view name to the model provider for that view.\r\n     * @internal\r\n     **/\r\n    private readonly _viewToModelProvider;\r\n    /**\r\n     * Emits when a `change` event when date/time is selected or\r\n     * the value of the date/time picker changes.\r\n     **/\r\n    readonly change: EventEmitter<DlDateTimePickerChange<D>>;\r\n    /**\r\n     * Specifies the classes used to display the left icon.\r\n     *\r\n     * This component uses OPENICONIC https://useiconic.com/open\r\n     * by default but any icon library may be used.\r\n     */\r\n    leftIconClass: string | string[] | Set<string> | {};\r\n    /**\r\n     * The highest view that the date/time picker can show.\r\n     * Setting this to a view less than year could make it more\r\n     * difficult for the end-user to navigate to certain dates.\r\n     */\r\n    maxView: 'year' | 'month' | 'day' | 'hour' | 'minute';\r\n    /**\r\n     * The view that will be used for date/time selection.\r\n     *\r\n     * The default of `minute  means that selection will not happen\r\n     * until the end-user clicks on a cell in the minute view.\r\n     *\r\n     * for example, if you want the end-user to select a only day (date),\r\n     * setting `minView` to `day` will cause selection to happen when the\r\n     * end-user selects a cell in the day view.\r\n     *\r\n     * NOTE: This must be set lower than or equal to `startView'\r\n     */\r\n    minView: 'year' | 'month' | 'day' | 'hour' | 'minute';\r\n    /**\r\n     * The number of minutes between each `.dl-abdtp-minute` button.\r\n     *\r\n     * Must be greater than `0` and less than `60`.\r\n     */\r\n    minuteStep: number;\r\n    /**\r\n     * Specifies the classes used to display the right icon.\r\n     *\r\n     * This component uses OPENICONIC https://useiconic.com/open\r\n     * by default but any icon library may be used.\r\n     */\r\n    rightIconClass: string[];\r\n    /**\r\n     *  Determine whether or not the `DateButton` is selectable by the end user.\r\n     */\r\n    selectFilter: (dateButton: DateButton, viewName: string) => boolean;\r\n    /**\r\n     *  Start at the view containing startDate when no value is selected.\r\n     */\r\n    startDate: number;\r\n    /**\r\n     * The initial view that the date/time picker will show.\r\n     * The picker will also return to this view after a date/time\r\n     * is selected.\r\n     *\r\n     * NOTE: This must be set lower than or equal to `maxView'\r\n     */\r\n    startView: 'year' | 'month' | 'day' | 'hour' | 'minute';\r\n    /**\r\n     * Specifies the classes used to display the up icon.\r\n     *\r\n     * This component uses OPENICONIC https://useiconic.com/open\r\n     * by default but any icon library may be used.\r\n     */\r\n    upIconClass: string[];\r\n    /**\r\n     * Used to construct a new instance of a date/time picker.\r\n     *\r\n     * @param _elementRef\r\n     *  reference to this element.\r\n     * @param _ngZone\r\n     *  reference to an NgZone instance used to select the active element outside of angular.\r\n     * @param _dateAdapter\r\n     *  date adapter for the date type in the model.\r\n     * @param yearModelComponent\r\n     *  provider for the year view model.\r\n     * @param monthModelComponent\r\n     *  provider for the month view model.\r\n     * @param dayModelComponent\r\n     *  provider for the day view model.\r\n     * @param hourModelComponent\r\n     *  provider for the hour view model.\r\n     * @param minuteModelComponent\r\n     *  provider for the minute view model.\r\n     */\r\n    constructor(_elementRef: ElementRef, _ngZone: NgZone, _dateAdapter: DlDateAdapter<D>, yearModelComponent: DlYearModelProvider, monthModelComponent: DlMonthModelProvider, dayModelComponent: DlDayModelProvider, hourModelComponent: DlHourModelProvider, minuteModelComponent: DlMinuteModelProvider);\r\n    /**\r\n     * Set's the model for the current view after applying the selection filter.\r\n     *\r\n     * @internal\r\n     **/\r\n    private set model(value);\r\n    /**\r\n     * Returns `D` value of the date/time picker or undefined/null if no value is set.\r\n     **/\r\n    get value(): D;\r\n    /**\r\n     * Sets value of the date/time picker and emits a change event if the\r\n     * new value is different from the previous value.\r\n     **/\r\n    set value(value: D);\r\n    /**\r\n     * Returns `milliseconds` value of the date/time picker or undefined/null if no value is set.\r\n     **/\r\n    get valueOf(): number | null;\r\n    /**\r\n     * Applies the `selectionFilter` by adding the `dl-abdtp-disabled`\r\n     * class to any `DateButton` where `selectFilter` returned false.\r\n     *\r\n     * @param model\r\n     *  the new model\r\n     *\r\n     * @returns\r\n     *  the supplied model with zero or more `DateButton`'s\r\n     *  having the `dl-abdtp-disabled` class set to `true` if the\r\n     *  selection for that date should be disabled.\r\n     *\r\n     * @internal\r\n     */\r\n    private applySelectFilter;\r\n    /**\r\n     * Focuses the `.dl-abdtp-active` cell after the microtask queue is empty.\r\n     * @internal\r\n     **/\r\n    private focusActiveCell;\r\n    /**\r\n     * Determines the start date for the picker.\r\n     * @internal\r\n     **/\r\n    private getStartDate;\r\n    /**\r\n     * Determine the start view for the picker\r\n     * @returns\r\n     *  the largest time increment view between the `minView` or `minute` view and the `startView` or `day` view.\r\n     */\r\n    private getStartView;\r\n    /**\r\n     * Calls all registered `touch` callback functions.\r\n     * @internal\r\n     **/\r\n    private onTouch;\r\n    /**\r\n     * Receives configuration changes detected by Angular and passes the changes on\r\n     * to the model providers so the provider is aware of any necessary configuration\r\n     * changes (i.e. minuteStep)\r\n     *\r\n     * @param changes\r\n     *  the input changes detected by Angular.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    /**\r\n     * Sets the initial model.\r\n     *\r\n     * @internal\r\n     **/\r\n    ngOnInit(): void;\r\n    /**\r\n     * Handles click (and enter & space key down) events on the date elements.\r\n     *\r\n     * If the current view is the minimum view then the date value is selected\r\n     * and the picker returns to the start view.\r\n     *\r\n     * Otherwise the picker displays the next view with the next\r\n     * smallest time increment.\r\n     *\r\n     * @internal\r\n     **/\r\n    _onDateClick(dateButton: DateButton): void;\r\n    /**\r\n     * Handles click (and enter & space key down) events on the left button.\r\n     *\r\n     * Changes the displayed time range of the picker to the previous time range.\r\n     * For example, in year view, the previous decade is displayed.\r\n     *\r\n     * @internal\r\n     **/\r\n    _onLeftClick(): void;\r\n    /**\r\n     * Handles click (and enter & space key down) events on the up button.\r\n     *\r\n     * Changes the view of the picker to the next largest time increment.\r\n     * For example, in day view, the next view displayed will be month view.\r\n     *\r\n     * @internal\r\n     **/\r\n    _onUpClick(): void;\r\n    /**\r\n     * Handles click (and enter & space key down) events on the right button.\r\n     *\r\n     * Changes the displayed time range of the picker to the next time range.\r\n     * For example, in year view, the next decade is displayed.\r\n     *\r\n     * @internal\r\n     **/\r\n    _onRightClick(): void;\r\n    /**\r\n     * Handles various key down events to move the `active date` around the calendar.\r\n     *\r\n     * @internal\r\n     **/\r\n    _handleKeyDown($event: KeyboardEvent): void;\r\n    /**\r\n     * Implements ControlValueAccessor.registerOnChange to register change listeners.\r\n     * @internal\r\n     **/\r\n    registerOnChange(fn: (value: D) => void): void;\r\n    /**\r\n     * Implements ControlValueAccessor.registerOnTouched to register touch listeners.\r\n     * @internal\r\n     **/\r\n    registerOnTouched(fn: () => void): void;\r\n    /**\r\n     * Implements ControlValueAccessor.writeValue to store the value from the model.\r\n     * @internal\r\n     **/\r\n    writeValue(value: D): void;\r\n}\r\n"]}