diff --git a/src/plugins/datepicker.ts b/src/plugins/datepicker.ts index a0d1d24de..f48b52552 100644 --- a/src/plugins/datepicker.ts +++ b/src/plugins/datepicker.ts @@ -1,26 +1,91 @@ import {Plugin, Cordova} from './plugin'; +export interface datePickerOptions { + /** + * Platforms: iOS, Android, Windows + * The mode of the date picker + * Values: date | time | datetime + * Default: date + */ + mode?: string, + + /** + * Platforms: iOS, Android, Windows + * Selected date + * Default: new Date() + */ + date?: Date, + + /** + * Platforms: iOS, Android, Windows + * Minimum date + * Type: Date | empty String + * Default: empty String + */ + minDate?: Date, + + /** + * Platforms: iOS, Android, Windows + * Maximum date + * Type: Date | empty String + * Default: empty String + */ + maxDate?: Date, + + /** + * Platforms: Android + * Label for the dialog title. If empty, uses android default (Set date/Set time). + * Type: String + * Default: empty String + */ + titleText?: string, + + /** + * Platforms: Android + * Label of BUTTON_POSITIVE (done button) on Android + */ + okText?: string, + + // TODO complete documentation here, and copy params & docs to main plugin docs + cancelText?: string, + todayText?: string, + nowText?: string, + is24Hour?: boolean, + androidTheme?: number, + allowOldDate?: boolean, + allowFutureDates?: boolean, + doneButtonLabel?: string, + doneButtonColor?: string, + cancelButtonLabel?: string, + cancelButtonColor?: string, + x?: number, + y?: number, + minuteInterval?: number, + popoverArrowDirection?: string, + locale?: string +} + /** * The DatePicker plugin allows the user to fetch date or time using native dialogs. * * Platforms supported: iOS, Android, Windows * - * Requires Cordova plugin: `cordova-plugin-datepicker`. For more info, please see the [Datepicker plugin docs](https://github.com/VitaliiBlagodir/cordova-plugin-datepicker). + * Requires Cordova plugin: `cordova-plugin-datepicker`. For more info, please see the [DatePicker plugin docs](https://github.com/VitaliiBlagodir/cordova-plugin-datepicker). * * Install the plugin by running the following command: * ```shell - * ionic plugin add cordova-plugin-datepicker + * cordova plugin add https://github.com/VitaliiBlagodir/cordova-plugin-datepicker.git * ``` * * @usage * ```js - * DatePicker. + * DatePicker.show(); * ``` * */ @Plugin({ - plugin: 'cordova-plugin-datepicker', - pluginRef: 'plugins.datePicker' + plugin: 'https://github.com/VitaliiBlagodir/cordova-plugin-datepicker.git', + pluginRef: 'datePicker' }) export class DatePicker { @@ -30,30 +95,12 @@ export class DatePicker { * @returns {Promise} Returns a promise that resolves with the picked date and/or time, or rejects with an error. */ @Cordova() - static show(options?: { - mode?: string, - date?: Date, - minDate?: Date, - maxDate?: Date, - titleText?: string, - okText?: string, - cancelText?: string, - todayText?: string, - nowText?: string, - is24Hour?: boolean, - androidTheme?: number, - allowOldDate?: boolean, - allowFutureDates?: boolean, - doneButtonLabel?: string, - doneButtonColor?: string, - cancelButtonLabel?: string, - cancelButtonColor?: string, - x?: number, - y?: number, - minuteInterval?: number, - popoverArrowDirection?: string, - locale?: string - }): Promise { + static show(options?: datePickerOptions): Promise { + // This Promise is replaced by one from the @Cordova decorator that wraps + // the plugin's callbacks. We provide a dummy one here so TypeScript + // knows that the correct return type is Promise, because there's no way + // for it to know the return type from a decorator. + // See https://github.com/Microsoft/TypeScript/issues/4881 return new Promise((res, rej) => {}); }