import { DatePicker as DatePickerDefinition } from "."; import { View, Property } from "../core/view"; export * from "../core/view"; export class DatePickerBase extends View implements DatePickerDefinition { public year: number; public month: number; public day: number; public maxDate: Date; public minDate: Date; public date: Date; } // DatePickerBase.prototype.recycleNativeView = true; export const yearProperty = new Property({ name: "year", valueConverter: (v) => parseInt(v) }); yearProperty.register(DatePickerBase); export const monthProperty = new Property({ name: "month", valueConverter: (v) => parseInt(v) }); monthProperty.register(DatePickerBase); export const dayProperty = new Property({ name: "day", valueConverter: (v) => parseInt(v) }); dayProperty.register(DatePickerBase); function dateComparer(x: Date, y: Date): boolean { return (x <= y && x >= y) ? true : false; } // TODO: Make CoercibleProperties export const maxDateProperty = new Property({ name: "maxDate", equalityComparer: dateComparer, valueConverter: (v) => new Date(v) }); maxDateProperty.register(DatePickerBase); export const minDateProperty = new Property({ name: "minDate", equalityComparer: dateComparer, valueConverter: (v) => new Date(v) }); minDateProperty.register(DatePickerBase); export const dateProperty = new Property({ name: "date", equalityComparer: dateComparer, valueConverter: (v) => new Date(v) }); dateProperty.register(DatePickerBase);