UNPKG

ngx-pluto

Version:
111 lines (110 loc) 4.53 kB
import { ElementRef } from '@angular/core'; import * as moment_ from 'moment'; import { OverlayPositionBuilder, OverlayRef, Overlay } from '@angular/cdk/overlay'; import { DatePickerLocale } from './public-api'; export declare class NpDatePickerService { private overlayPositionBuilder; private overlay; readonly locale: DatePickerLocale; constructor(overlayPositionBuilder: OverlayPositionBuilder, overlay: Overlay); /** * 根据传入的moment时间及传入的年份生成年份范围数组YearData。 * 例如:year = 2020, 年份范围value示例为 * * [ * * 2019, 2020, 2021, * * 2022, 2023, 2024, * * 2025, 2026, 2027, * * 2028, 2029, 2030 * * ] * @param date Moment时间 * @param year 年份YYYY, 例:2020 * @param selectedDate 当前选中的日期 */ buildYearsPanel(date: moment_.Moment, year: string, selectedDate: moment_.Moment): Array<YearData>; /** * 构建当前年份的全部月份 * @param selectedDate 当前选中的日期 */ buildMonthsPanel(date: moment_.Moment, selectedDate: moment_.Moment): Array<MonthData>; /** * 根据传入的日期构建当前显示日历面板(当前这个月的天数面板)。 * 例如:传入日期为2020/08/20,则返回一个DayDataPerMonth数组, * 其中的value示例如下: * * ['日', '一', '二', '三', '四', '五', '六', * * '26', '27', '28', '29', '30', '31', '1', * * '2', '3', '4', '5', '6', '7', '8', * * '9', '10', '11', '12', '13', '14', '15', * * '16', '17', '18', '19', '20', '21', '22', * * '23', '24', '25', '26', '27', '28', '29', * * '30', '31', '1', '2', '3', '4', '5'] * @param date 构建日期面板的日期 * @param selectedDate 当前选中的日期 * @param isRangePicker 是否是时间区间选择 * @param dates 当isRangePicker为true时,需要传入此时间区间字段,代表时间区间已选择的区间值 */ buildDaysPanel(date: moment_.Moment, selectedDate: moment_.Moment): Array<DayDataPerMonth>; sortDates(dates: Array<moment_.Moment>, asc?: boolean): moment_.Moment[]; buildStartAndEndDates(sDate: moment_.Moment, eDate: moment_.Moment): moment_.Moment[]; day(date: moment_.Moment): moment_.Moment; private getDayStatus; /** * 构建时间区间选择当鼠标hover面板时的状态,同buildDaysPanel的功能, * 增加对象DayDataPerMonth中对字段isWithinDateRangeHover的值的区分。 * * @param date 构建日期面板的日期 * @param selectedDate 当前选中的日期 * @param hoverDate 当前hover的时间moment值 * @param dates 需要传入此时间区间字段,代表时间区间已选择的区间值 */ buildDaysPanelForRangePicker(date: moment_.Moment, selectedDate: moment_.Moment, hoverDate: moment_.Moment, dates?: Array<moment_.Moment>): DayDataPerMonth[]; getWeekdaysMin(): string[]; getOverlayRef(elementRef: ElementRef): OverlayRef; /**获取calendar时间,例如今天,昨天,明天等 */ calendar(date: moment_.Moment, locale?: DatePickerLocale): string; isValid(date: moment_.Moment | string): boolean; } export interface DateData { /**是否可选 */ available: boolean; /**当前值 */ value: string; /**当前是否选中 */ isSelected: boolean; /**当前日期 */ date: moment_.Moment; } export interface DayDataPerMonth extends DateData { /**是否是第一行的周 */ isWeekDayMin: boolean; /**当datepickertype为date-range-picker的时候,鼠标hover后在候选时间区间的则为true,否则false */ hoverDateType?: DayStatusForRangePicker; } /** * 区间时间选择在所有日期天数面板的状态及对应样式 * * normal - 正常日期天数 无额外样式 * * within-hover - 在hover的时间区间里面 有虚线边框 * * within-selected - 在已选的时间区间里面 有背景色 * * within-selected-hover - 在已选的时间区间里面被hover 加深背景色 */ export declare type DayStatusForRangePicker = 'normal' | 'within-hover' | 'within-selected' | 'within-selected-hover'; export interface YearData extends DateData { } export interface MonthData extends DateData { }