@danielmoncada/angular-datetime-picker
Version:
Angular Date Time Picker
168 lines (167 loc) • 6.76 kB
TypeScript
/**
* date-time-picker-input.directive
*/
import { AfterContentInit, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { AbstractControl, ControlValueAccessor, Validator } from '@angular/forms';
import { OwlDateTimeComponent } from './date-time-picker.component';
import { DateTimeAdapter } from './adapter/date-time-adapter.class';
import { OwlDateTimeFormats } from './adapter/date-time-format.class';
import { SelectMode } from './date-time.class';
import * as i0 from "@angular/core";
export declare const OWL_DATETIME_VALUE_ACCESSOR: any;
export declare const OWL_DATETIME_VALIDATORS: any;
export declare class OwlDateTimeInputDirective<T> implements OnInit, AfterContentInit, OnDestroy, ControlValueAccessor, Validator {
private elmRef;
private renderer;
private dateTimeAdapter;
private dateTimeFormats;
static ngAcceptInputType_disabled: boolean | '';
/**
* Required flag to be used for range of [null, null]
* */
private _required;
get required(): any;
set required(value: any);
/**
* The date time picker that this input is associated with.
* */
set owlDateTime(value: OwlDateTimeComponent<T>);
/**
* A function to filter date time
*/
set owlDateTimeFilter(filter: (date: T | null) => boolean);
private _dateTimeFilter;
get dateTimeFilter(): (date: T) => boolean;
/** Whether the date time picker's input is disabled. */
private _disabled;
get disabled(): boolean;
set disabled(value: boolean);
/** The minimum valid date. */
private _min;
get min(): T | null;
set min(value: T | null);
/** The maximum valid date. */
private _max;
get max(): T | null;
set max(value: T | null);
/**
* The picker's select mode
*/
private _selectMode;
get selectMode(): SelectMode;
set selectMode(mode: SelectMode);
/**
* The character to separate the 'from' and 'to' in input value
*/
rangeSeparator: string;
private _value;
get value(): T | null;
set value(value: T | null);
private _values;
get values(): T[];
set values(values: T[]);
/**
* Callback to invoke when `change` event is fired on this `<input>`
* */
dateTimeChange: EventEmitter<any>;
/**
* Callback to invoke when an `input` event is fired on this `<input>`.
* */
dateTimeInput: EventEmitter<any>;
get elementRef(): ElementRef;
get isInSingleMode(): boolean;
get isInRangeMode(): boolean;
/** The date-time-picker that this input is associated with. */
dtPicker: OwlDateTimeComponent<T>;
private dtPickerSub;
private localeSub;
private lastValueValid;
private onModelChange;
private onModelTouched;
private validatorOnChange;
/** The form control validator for whether the input parses. */
private parseValidator;
/** The form control validator for the min date. */
private minValidator;
/** The form control validator for the max date. */
private maxValidator;
/** The form control validator for the date filter. */
private filterValidator;
/**
* The form control validator for the range.
* Check whether the 'before' value is before the 'to' value
* */
private rangeValidator;
/**
* The form control validator for the range when required.
* Check whether the 'before' and 'to' values are present
* */
private requiredRangeValidator;
/** The combined form control validator for this input. */
private validator;
/** Emits when the value changes (either due to user input or programmatic change). */
valueChange: EventEmitter<T | T[]>;
/** Emits when the disabled state has changed */
disabledChange: EventEmitter<boolean>;
get owlDateTimeInputAriaHaspopup(): boolean;
get owlDateTimeInputAriaOwns(): string;
get minIso8601(): string;
get maxIso8601(): string;
get owlDateTimeInputDisabled(): boolean;
constructor(elmRef: ElementRef, renderer: Renderer2, dateTimeAdapter: DateTimeAdapter<T>, dateTimeFormats: OwlDateTimeFormats);
ngOnInit(): void;
ngAfterContentInit(): void;
ngOnDestroy(): void;
writeValue(value: any): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
setDisabledState(isDisabled: boolean): void;
validate(c: AbstractControl): {
[ ]: any;
};
registerOnValidatorChange(fn: () => void): void;
/**
* Open the picker when user hold alt + DOWN_ARROW
* */
handleKeydownOnHost(event: KeyboardEvent): void;
handleBlurOnHost(event: Event): void;
handleInputOnHost(event: any): void;
handleChangeOnHost(event: any): void;
/**
* Set the native input property 'value'
*/
formatNativeInputValue(): void;
/**
* Register the relationship between this input and its picker component
*/
private registerDateTimePicker;
/**
* Convert a given obj to a valid date object
*/
private getValidDate;
/**
* Convert a time string to a date-time string
* When pickerType is 'timer', the value in the picker's input is a time string.
* The dateTimeAdapter parse fn could not parse a time string to a Date Object.
* Therefore we need this fn to convert a time string to a date-time string.
*/
private convertTimeStringToDateTimeString;
/**
* Handle input change in single mode
*/
private changeInputInSingleMode;
/**
* Handle input change in rangeFrom or rangeTo mode
*/
private changeInputInRangeFromToMode;
/**
* Handle input change in range mode
*/
private changeInputInRangeMode;
/**
* Check if the two value is the same
*/
private isSameValue;
static ɵfac: i0.ɵɵFactoryDeclaration<OwlDateTimeInputDirective<any>, [null, null, { optional: true; }, { optional: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<OwlDateTimeInputDirective<any>, "input[owlDateTime]", ["owlDateTimeInput"], { "required": { "alias": "required"; "required": false; }; "owlDateTime": { "alias": "owlDateTime"; "required": false; }; "owlDateTimeFilter": { "alias": "owlDateTimeFilter"; "required": false; }; "_disabled": { "alias": "_disabled"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "selectMode": { "alias": "selectMode"; "required": false; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; }; "value": { "alias": "value"; "required": false; }; "values": { "alias": "values"; "required": false; }; }, { "dateTimeChange": "dateTimeChange"; "dateTimeInput": "dateTimeInput"; }, never, never, false, never>;
}