{"version":3,"file":"dl-date-time-input.directive.d.ts","sources":["dl-date-time-input.directive.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","sourcesContent":["import { ElementRef, EventEmitter, Renderer2 } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';\r\nimport { DlDateAdapter } from '../core/dl-date-adapter';\r\nimport { DlDateTimeInputChange } from './dl-date-time-input-change';\r\n/**\r\n *  This directive allows the user to enter dates, using the keyboard, into an input box and\r\n *  angular will then store a date value in the model.\r\n *\r\n *  The input format(s), display format, and model format are independent and fully customizable.\r\n */\r\nexport declare class DlDateTimeInputDirective<D> implements ControlValueAccessor, Validator {\r\n    private _renderer;\r\n    private _elementRef;\r\n    private _dateAdapter;\r\n    private readonly _displayFormat;\r\n    private readonly _inputFormats;\r\n    private _filterValidator;\r\n    private _inputFilter;\r\n    private _isValid;\r\n    private _parseValidator;\r\n    private _changed;\r\n    private _touched;\r\n    private _validator;\r\n    private _validatorOnChange;\r\n    private _value;\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 dateChange: EventEmitter<DlDateTimeInputChange<D>>;\r\n    /**\r\n     * Constructs a new instance of this directive.\r\n     * @param _renderer\r\n     *  reference to the renderer.\r\n     * @param _elementRef\r\n     *  reference to this element.\r\n     * @param _dateAdapter\r\n     *  date adapter for the date type in the model.\r\n     * @param _displayFormat\r\n     *  from `DL_DATE_TIME_DISPLAY_FORMAT`, which defines the format to use for a valid date/time value.\r\n     * @param _inputFormats\r\n     *  from `DL_DATE_TIME_INPUT_FORMATS`, which defines the input formats that allowed as valid date/time values.\r\n     *  NB: moment is always in strict parse mode for this directive.\r\n     */\r\n    constructor(_renderer: Renderer2, _elementRef: ElementRef, _dateAdapter: DlDateAdapter<D>, _displayFormat: string, _inputFormats: string[]);\r\n    /**\r\n     * Set a function used to determine whether or not the `value` entered by the user is allowed.\r\n     * @param inputFilterFunction\r\n     *   a function that returns `true` if the `value` entered by the user is allowed, otherwise `false`.\r\n     */\r\n    set dlDateTimeInputFilter(inputFilterFunction: (value: D | null) => boolean);\r\n    /**\r\n     * Returns `D` value of the date/time input or `undefined` | `null` if no value is set.\r\n     **/\r\n    get value(): D;\r\n    /**\r\n     * Emit a `change` event when the value of the input changes.\r\n     */\r\n    _onChange(): void;\r\n    /**\r\n     * Format the input text using {@link DL_DATE_TIME_DISPLAY_FORMAT} and mark the control as touched.\r\n     */\r\n    _onBlur(): void;\r\n    /**\r\n     * Parse the user input into a possibly valid date.\r\n     * The model value is not set if the input is NOT one of the {@link DL_DATE_TIME_INPUT_FORMATS}.\r\n     * @param value\r\n     *   Value of the input control.\r\n     */\r\n    _onInput(value: string | null | undefined): void;\r\n    /**\r\n     * @internal\r\n     */\r\n    registerOnChange(onChange: (value: any) => void): void;\r\n    /**\r\n     * @internal\r\n     */\r\n    registerOnTouched(onTouched: () => void): void;\r\n    /**\r\n     * @internal\r\n     */\r\n    registerOnValidatorChange(validatorOnChange: () => void): void;\r\n    /**\r\n     * @internal\r\n     */\r\n    setDisabledState(isDisabled: boolean): void;\r\n    /**\r\n     * @internal\r\n     */\r\n    validate(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @internal\r\n     */\r\n    writeValue(value: D): void;\r\n}\r\n"]}