ng-material-date-range-picker
Version:
This library provides the date range selection with two views.
127 lines (126 loc) • 5.85 kB
TypeScript
/**
* @(#)ng-date-picker.component.ts Sept 05, 2023
*
* @author Aakash Kumar
*/
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
import { DateRange } from '@angular/material/datepicker';
import { ISelectDateOption } from './model/select-date-option';
import { SelectedDateEvent } from '../public-api';
import * as i0 from "@angular/core";
export declare class NgDatePickerComponent implements OnInit, AfterViewInit {
private cdref;
private el;
isDateOptionList: boolean;
isCustomRange: boolean;
inputLabel: string;
staticOptionId: string;
dynamicOptionId: string;
calendarId: string;
enableDefaultOptions: boolean;
selectedDates: DateRange<Date> | null;
dateFormat: string;
isShowStaticDefaultOptions: boolean;
hideDefaultOptions: boolean;
cdkConnectedOverlayOffsetX: number;
cdkConnectedOverlayOffsetY: number;
listCdkConnectedOverlayOffsetY: number;
listCdkConnectedOverlayOffsetX: number;
selectedOptionIndex: number;
displaySelectedLabel: boolean;
cdkConnectedOverlayPush: boolean;
cdkConnectedOverlayPositions: never[];
minDate: Date;
maxDate: Date;
onDateSelectionChanged: EventEmitter<SelectedDateEvent>;
dateListOptions: EventEmitter<ISelectDateOption[]>;
private _dateDropDownOptions;
constructor(cdref: ChangeDetectorRef, el: ElementRef);
set dateDropDownOptions(defaultDateList: ISelectDateOption[]);
get dateDropDownOptions(): ISelectDateOption[];
ngOnInit(): void;
ngAfterViewInit(): void;
/**
* This method toggles the visibility of default date option's List.
*/
toggleDateOptionSelectionList(event?: MouseEvent): void;
/**
* This method updates the date range on button click.
*
* @param input HTMLInputElement
* @param selectedDates DateRange<Date>
*/
updateCustomRange(input: HTMLInputElement, selectedDates: DateRange<Date> | null): void;
/**
* This method update the date on specified option.
*
* @param option ISelectDateOption
* @param input HTMLInputElement
*/
updateSelection(option: ISelectDateOption, input: HTMLInputElement): void;
selectCustomOption(): void;
/**
* This method toggles the custom date range selection view.
*/
toggleCustomDateRangeView(): void;
/**
* Clears the selected dates and resets date-related properties.
*
* @param event - The mouse event that triggered the clear action.
*/
clearSelection(event: MouseEvent): void;
/**
* This method sets clicked element as selected.
* @param option ISelectDateOption
*/
private resetOptionSelection;
/**
* Updates the selected dates based on the given option and input element.
*
* @param option - The date option selected by the user.
* @param input - The HTML input element to update.
*/
private updateDateOnOptionSelect;
/**
* This method updates dates on selection.
*
* @param input HTMLInputElement
* @param startDate Date
* @param endDate Date
*/
private updateSelectedDates;
/**
* This method converts the given date into specified string format.
*
* @param date Date
* @returns formatted date.
*/
private getDateString;
/**
* This method return the number of days in moth on specified date.
*
* @param date Date
* @returns number
*/
private getDaysInMonth;
/**
* This method clone the data.
*
* @param data T
* @returns T
*/
private getClone;
/**
* This method update the default date values on init.
*/
private updateDefaultDatesValues;
/**
* This method updates the date values based on default option selection.
*
* @param selectedOption ISelectDateOption
* @param input HTMLInputElement
*/
private updatedFromListValueSelection;
static ɵfac: i0.ɵɵFactoryDeclaration<NgDatePickerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgDatePickerComponent, "ng-date-range-picker", never, { "inputLabel": { "alias": "inputLabel"; "required": false; }; "staticOptionId": { "alias": "staticOptionId"; "required": false; }; "dynamicOptionId": { "alias": "dynamicOptionId"; "required": false; }; "calendarId": { "alias": "calendarId"; "required": false; }; "enableDefaultOptions": { "alias": "enableDefaultOptions"; "required": false; }; "selectedDates": { "alias": "selectedDates"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "isShowStaticDefaultOptions": { "alias": "isShowStaticDefaultOptions"; "required": false; }; "hideDefaultOptions": { "alias": "hideDefaultOptions"; "required": false; }; "cdkConnectedOverlayOffsetX": { "alias": "cdkConnectedOverlayOffsetX"; "required": false; }; "cdkConnectedOverlayOffsetY": { "alias": "cdkConnectedOverlayOffsetY"; "required": false; }; "listCdkConnectedOverlayOffsetY": { "alias": "listCdkConnectedOverlayOffsetY"; "required": false; }; "listCdkConnectedOverlayOffsetX": { "alias": "listCdkConnectedOverlayOffsetX"; "required": false; }; "selectedOptionIndex": { "alias": "selectedOptionIndex"; "required": false; }; "displaySelectedLabel": { "alias": "displaySelectedLabel"; "required": false; }; "cdkConnectedOverlayPush": { "alias": "cdkConnectedOverlayPush"; "required": false; }; "cdkConnectedOverlayPositions": { "alias": "cdkConnectedOverlayPositions"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "dateDropDownOptions": { "alias": "dateDropDownOptions"; "required": false; }; }, { "onDateSelectionChanged": "onDateSelectionChanged"; "dateListOptions": "dateListOptions"; }, never, never, false, never>;
}