import { ComponentFactoryResolver, ComponentRef, OnChanges, ElementRef, EventEmitter, OnDestroy, Type, AfterViewInit, OnInit, SimpleChanges } from '@angular/core'; import { Observable, ReplaySubject, Subject } from 'rxjs'; import { ElOverlayRef } from '../cdk/overlay/mapping'; import { ElAdjustableConnectedPositionStrategy, ElPositionBuilderService } from '../cdk/overlay/overlay-position'; import { ElOverlayService } from '../cdk/overlay/overlay-service'; import { ElTriggerStrategy, ElTriggerStrategyBuilderService } from '../cdk/overlay/overlay-trigger'; import { ElDatepickerContainerComponent } from './datepicker-container.component'; import { ElCalendarRange, ElCalendarRangeComponent } from '../calendar/calendar-range.component'; import { ElCalendarComponent } from '../calendar/calendar.component'; import { ElCalendarCell, ElCalendarSize, ElCalendarViewMode } from '../calendar-kit/model'; import { ElDateService } from '../calendar-kit/services/date.service'; import { ElDatepicker, ElPickerValidatorConfig } from './datepicker.directive'; /** * The `ElBasePicker` component concentrates overlay manipulation logic. * */ export declare abstract class ElBasePicker extends ElDatepicker implements OnInit, OnChanges, AfterViewInit, OnDestroy { protected document: any; protected positionBuilder: ElPositionBuilderService; protected triggerStrategyBuilder: ElTriggerStrategyBuilderService; protected overlay: ElOverlayService; protected cfr: ComponentFactoryResolver; protected dateService: ElDateService; protected dateServiceOptions: any; /** * Datepicker date format. Can be used only with date adapters (moment, date-fns) since native date * object doesn't support formatting. * */ format: string; /** * Defines if we should render previous and next months * in the current month view. * */ boundingMonth: boolean; /** * Defines starting view for calendar. * */ startView: ElCalendarViewMode; /** * Minimum available date for selection. * */ min: T; /** * Maximum available date for selection. * */ max: T; /** * Predicate that decides which cells will be disabled. * */ filter: (T: any) => boolean; /** * Custom day cell component. Have to implement `ElCalendarCell` interface. * */ dayCellComponent: Type>; /** * Custom month cell component. Have to implement `ElCalendarCell` interface. * */ monthCellComponent: Type>; /** * Custom year cell component. Have to implement `ElCalendarCell` interface. * */ yearCellComponent: Type>; /** * Size of the calendar and entire components. * Can be 'medium' which is default or 'large'. * */ size: ElCalendarSize; /** * Depending on this date a particular month is selected in the calendar */ visibleDate: D; /** * Hide picker when a date or a range is selected, `true` by default * @type {boolean} */ hideOnSelect: boolean; /** * Determines should we show calendars header or not. * @type {boolean} */ showHeader: boolean; /** * Sets symbol used as a header for week numbers column * */ weekNumberSymbol: string; /** * Determines should we show week numbers column. * False by default. * */ showWeekNumber: boolean; protected _showWeekNumber: boolean; /** * Calendar component class that has to be instantiated inside overlay. * */ protected abstract pickerClass: Type

; /** * Overlay reference object. * */ protected ref: ElOverlayRef; /** * Datepicker container that contains instantiated picker. * */ protected container: ComponentRef; /** * Positioning strategy used by overlay. * */ protected positionStrategy: ElAdjustableConnectedPositionStrategy; /** * Trigger strategy used by overlay * */ protected triggerStrategy: ElTriggerStrategy; /** * HTML input reference to which datepicker connected. * */ protected hostRef: ElementRef; protected init$: ReplaySubject; /** * Stream of picker changes. Required to be the subject because picker hides and shows and picker * change stream becomes recreated. * */ protected onChange$: Subject; /** * Reference to the picker instance itself. * */ protected pickerRef: ComponentRef; protected alive: boolean; /** * Queue contains the last value that was applied to the picker when it was hidden. * This value will be passed to the picker as soon as it shown. * */ protected queue: T | undefined; protected blur$: Subject; constructor(document: any, positionBuilder: ElPositionBuilderService, triggerStrategyBuilder: ElTriggerStrategyBuilderService, overlay: ElOverlayService, cfr: ComponentFactoryResolver, dateService: ElDateService, dateServiceOptions: any); /** * Returns picker instance. * */ readonly picker: any; /** * Stream of picker value changes. * */ readonly valueChange: Observable; readonly isShown: boolean; readonly init: Observable; /** * Emits when datepicker looses focus. */ readonly blur: Observable; protected abstract readonly pickerValueChange: Observable; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngAfterViewInit(): void; ngOnDestroy(): void; /** * Datepicker knows nothing about host html input element. * So, attach method attaches datepicker to the host input element. * */ attach(hostRef: ElementRef): void; getValidatorConfig(): ElPickerValidatorConfig; show(): void; shouldHide(): boolean; hide(): void; protected abstract writeQueue(): any; protected createOverlay(): void; protected openDatepicker(): void; protected createPositionStrategy(): ElAdjustableConnectedPositionStrategy; protected subscribeOnPositionChange(): void; protected createTriggerStrategy(): ElTriggerStrategy; protected subscribeOnTriggers(): void; protected instantiatePicker(): void; /** * Subscribes on picker value changes and emit data through this.onChange$ subject. * */ protected subscribeOnValueChange(): void; protected patchWithInputs(): void; protected checkFormat(): void; } /** * The DatePicker components itself. * Provides a proxy to `ElCalendar` options as well as custom picker options. */ export declare class ElDatepickerComponent extends ElBasePicker> { protected pickerClass: Type>; /** * Date which will be rendered as selected. * */ date: D; /** * Emits date when selected. * */ readonly dateChange: EventEmitter; value: D | undefined; protected readonly pickerValueChange: Observable; protected writeQueue(): void; } /** * The RangeDatePicker components itself. * Provides a proxy to `ElCalendarRange` options as well as custom picker options. */ export declare class ElRangepickerComponent extends ElBasePicker, ElCalendarRangeComponent> { protected pickerClass: Type>; /** * Range which will be rendered as selected. * */ range: ElCalendarRange; /** * Emits range when start selected and emits again when end selected. * */ readonly rangeChange: EventEmitter>; value: ElCalendarRange | undefined; protected readonly pickerValueChange: Observable>; shouldHide(): boolean; protected writeQueue(): void; }