import { FactoryProvider, InjectionToken } from '@angular/core'; import { SimDateAdapter } from '@ngx-simple/core/datetime'; import { DateRange } from './date-selection-model'; /** 用于自定义日期范围选择行为的分隔标记。输入处于错误状态 */ export declare const SIM_DATE_RANGE_SELECTION_STRATEGY: InjectionToken>; /** 以便自定义日期范围选择行为对象 */ export interface SimDateRangeSelectionStrategy { /** * 用户选择完一个值时调用 * @param date 选定的日期。如果用户清除选择,则为空。 * @param currentRange 当前在日历中显示的范围。 * @param event 触发选择的DOM事件。目前只对应一个“click”事件,但它可能会在未来得到扩展。 */ selectionFinished(date: D | null, currentRange: DateRange, event: Event): DateRange; /** * 当用户激活一个新的日期(例如,将鼠标悬停在它上面或移动焦点)并且日历试图显示一个日期范围时调用。 * * @param activeDate 用户已激活的日期。如果用户将焦点移到非日历单元格的元素,则为空。 * @param currentRange 当前日历中显示的范围。 * @param event 导致预览被更改的DOM事件。将会是'mouseenter'/'mouseleave'或'focus'/'blur',这取决于用户的导航方式。 */ createPreview(activeDate: D | null, currentRange: DateRange, event: Event): DateRange; } /** 提供默认的日期范围选择行为 */ export declare class DefaultSimCalendarRangeStrategy implements SimDateRangeSelectionStrategy { private _dateAdapter; constructor(_dateAdapter: SimDateAdapter); selectionFinished(date: D, currentRange: DateRange): DateRange; createPreview(activeDate: D | null, currentRange: DateRange): DateRange; } export declare function SIM_CALENDAR_RANGE_STRATEGY_PROVIDER_FACTORY(parent: SimDateRangeSelectionStrategy, adapter: SimDateAdapter): SimDateRangeSelectionStrategy; export declare const SIM_CALENDAR_RANGE_STRATEGY_PROVIDER: FactoryProvider;