Update pickadate.d.ts to expose only one top-level module

* Also update CONTRIBUTORS.md
* Add api method chaining to pickadate-tests.ts
This commit is contained in:
Adi Dahiya
2014-09-24 12:15:09 -04:00
parent 83188776d9
commit 648f460f30
3 changed files with 251 additions and 245 deletions

View File

@@ -300,6 +300,7 @@ All definitions files include a header with the author and editors, so at some p
* [PhantomJS](http://phantomjs.org) (by [Jed Hunsaker](https://github.com/jedhunsaker))
* [PhoneGap](http://phonegap.com) (by [Boris Yankov](https://github.com/borisyankov))
* [Physijs](http://chandlerprall.github.io/Physijs/) (by [gyoh_k](https://github.com/gyohk))
* [Pickadate.js](https://github.com/amsul/pickadate.js) (by [Adi Dahiya](https://github.com/adidahiya))
* [PixiJS](https://github.com/GoodBoyDigital/pixi.js) (by [Pedro Casaubon](https://github.com/xperiments))
* [Platform](https://github.com/bestiejs/platform.js) (by [Jake Hickman](https://github.com/JakeH))
* [PouchDB](http://pouchdb.com) (by [Bill Sears](https://github.com/MrBigDog2U/))

View File

@@ -1,7 +1,7 @@
/// <reference path="../jquery/jquery.d.ts" />
/// <reference path="pickadate.d.ts" />
function testApiMethods(api: PickadateApi) {
function testApiMethods(api: Pickadate.Api) {
api.clear();
api.close();
api.close(true);
@@ -24,6 +24,8 @@ function testApiMethods(api: PickadateApi) {
api.stop();
api.trigger('open');
api.start().open().close().stop();
var pickerInputElement = api.$node;
pickerInputElement.show();
@@ -148,7 +150,7 @@ datePickerInput.pickadate({
}
});
var datePickerApi = <PickadateApi> datePickerInput.pickadate('picker');
var datePickerApi = <Pickadate.Api> datePickerInput.pickadate('picker');
datePickerInput.pickadate('open');
datePickerInput.pickadate('get', 'value');
@@ -232,7 +234,7 @@ timePickerInput.pickatime({
}
});
var timePickerApi = <PickadateApi> timePickerInput.pickatime('picker');
var timePickerApi = <Pickadate.Api> timePickerInput.pickatime('picker');
timePickerInput.pickatime('open');
timePickerInput.pickatime('get', 'value');

View File

@@ -3,312 +3,315 @@
// Definitions by: Adi Dahiya <https://github.com/adidahiya>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
interface PickadateApi {
/**
* Clear the value in the picker's input element.
*/
clear(): PickadateApi;
declare module Pickadate {
/**
* Close the picker.
*
* @param keepFocus whether to retain focus on the input element (default: false)
*/
close(keepFocus?: boolean): PickadateApi;
export interface Api {
/**
* Clear the value in the picker's input element.
*/
clear(): Pickadate.Api;
/**
* Get the properties, objects, and states of the picker.
*
* @param field one of [ "value", "select", "highlight", "view", "min", "max", "open", "start", "id", "disable", "enable" ]
* @param format string formatter (available for certain fields)
*/
get(field: string, format?: string): any;
/**
* Close the picker.
*
* @param keepFocus whether to retain focus on the input element (default: false)
*/
close(keepFocus?: boolean): Pickadate.Api;
/**
* Unbind callbacks that are bound using the `on` method.
* @param methodName one of [ "open, "close", "render", "start", "stop", "set" ]
*/
off(methodName: string, ...moreMethodNames: string[]): PickadateApi;
/**
* Get the properties, objects, and states of the picker.
*
* @param field one of [ "value", "select", "highlight", "view", "min", "max", "open", "start", "id", "disable", "enable" ]
* @param format string formatter (available for certain fields)
*/
get(field: string, format?: string): any;
/**
* Attach an event handler for the picker. Only "set" events callbacks receive a "context" object.
*
* @param methodName event to attach handler to, one of [ "open", "close", "render", "start", "stop", or "set" ]
* @param callback event handler
*/
on(methodName: string, callback: (context?: any) => void): PickadateApi;
/**
* Unbind callbacks that are bound using the `on` method.
* @param methodName one of [ "open, "close", "render", "start", "stop", "set" ]
*/
off(methodName: string, ...moreMethodNames: string[]): Pickadate.Api;
/**
* Open the picker.
*
* @param keepFocus whether to focus the input element (default: true)
*/
open(keepFocus?: boolean): PickadateApi;
/**
* Attach an event handler for the picker. Only "set" events callbacks receive a "context" object.
*
* @param methodName event to attach handler to, one of [ "open", "close", "render", "start", "stop", or "set" ]
* @param callback event handler
*/
on(methodName: string, callback: (context?: any) => void): Pickadate.Api;
/**
* Refresh the picker after adding something to the holder.
* By default, only the “face” of the picker (i.e. the box element), has its contents re-rendered.
*
* @param fromRoot whether to render the entire picker from the root up (default: false)
*/
render(fromRoot?: boolean): PickadateApi;
/**
* Open the picker.
*
* @param keepFocus whether to focus the input element (default: true)
*/
open(keepFocus?: boolean): Pickadate.Api;
/**
* Set the properties, objects, and states of the picker.
*
* @param field one of [ "clear", "select", "highlight", "view", "min", "max", "disable", "enable", "interval" ]
* @param value the thing you want to set
*/
set(field: string, value: any, options?: {[key: string]: any}): PickadateApi;
/**
* Batch set picker options after initialization.
*/
set(values: {[field: string]: any}, options?: {[key: string]: any}): PickadateApi;
/**
* Refresh the picker after adding something to the holder.
* By default, only the “face” of the picker (i.e. the box element), has its contents re-rendered.
*
* @param fromRoot whether to render the entire picker from the root up (default: false)
*/
render(fromRoot?: boolean): Pickadate.Api;
/**
* Rebuild the picker.
*/
start(): PickadateApi;
/**
* Set the properties, objects, and states of the picker.
*
* @param field one of [ "clear", "select", "highlight", "view", "min", "max", "disable", "enable", "interval" ]
* @param value the thing you want to set
*/
set(field: string, value: any, options?: {[key: string]: any}): Pickadate.Api;
/**
* Batch set picker options after initialization.
*/
set(values: {[field: string]: any}, options?: {[key: string]: any}): Pickadate.Api;
/**
* Destroy the picker.
*/
stop(): PickadateApi;
/**
* Rebuild the picker.
*/
start(): Pickadate.Api;
/**
* Trigger a picker event.
* @param eventName the event to trigger
*/
trigger(eventName: string): PickadateApi;
/**
* Destroy the picker.
*/
stop(): Pickadate.Api;
/**
* The picker's relative <input> element.
*/
$node: JQuery;
/**
* Trigger a picker event.
* @param eventName the event to trigger
*/
trigger(eventName: string): Pickadate.Api;
/**
* The picker's relative root holder element.
*/
$root: JQuery;
/**
* The picker's relative <input> element.
*/
$node: JQuery;
/**
* The picker's relative hidden element, which is undefined if there's no formatSubmit option.
* This is meant to be mostly for internal use.
*/
_hidden: JQuery;
}
/**
* The picker's relative root holder element.
*/
$root: JQuery;
interface PickadateOptions {
// String and translations
monthsFull?: string[];
monthsShort?: string[];
weekdaysFull?: string[];
weekdaysShort?: string[]
showMonthsShort?: boolean;
showWeekdaysFull?: boolean;
/**
* The picker's relative hidden element, which is undefined if there's no formatSubmit option.
* This is meant to be mostly for internal use.
*/
_hidden: JQuery;
}
// Button labels (if falsy, the corresponding button is disabled)
today?: string;
clear?: string;
close?: string;
export interface DateOptions {
// String and translations
monthsFull?: string[];
monthsShort?: string[];
weekdaysFull?: string[];
weekdaysShort?: string[]
showMonthsShort?: boolean;
showWeekdaysFull?: boolean;
// Accessibility labels
labelMonthNext?: string;
labelMonthPrev?: string;
labelMonthSelect?: string;
labelYearSelect?: string;
// Button labels (if falsy, the corresponding button is disabled)
today?: string;
clear?: string;
close?: string;
// Formats
format?: string;
formatSubmit?: string;
hiddenPrefix?: string;
hiddenSuffix?: string;
hiddenName?: string;
// Accessibility labels
labelMonthNext?: string;
labelMonthPrev?: string;
labelMonthSelect?: string;
labelYearSelect?: string;
// Editable input
editable?: boolean;
// Formats
format?: string;
formatSubmit?: string;
hiddenPrefix?: string;
hiddenSuffix?: string;
hiddenName?: string;
// Number of months to show in the month selection dropdown OR a boolean
selectMonths?: any;
// Number of years to show in the month selection dropdown OR a boolean
selectYears?: any;
// Editable input
editable?: boolean;
// First day of the week
firstDay?: number
// Number of months to show in the month selection dropdown OR a boolean
selectMonths?: any;
// Number of years to show in the month selection dropdown OR a boolean
selectYears?: any;
// Disable dates (elements can be Dates, [YEAR, MONTH, DATE] arrays, or integers of the week)
disable?: any[];
// First day of the week
firstDay?: number
// Root container selector
container?: string
// Disable dates (elements can be Dates, [YEAR, MONTH, DATE] arrays, or integers of the week)
disable?: any[];
// Events
onStart?: () => void;
onRender?: () => void;
onOpen?: () => void;
onClose?: () => void;
onSet?: (context: {[key: string]: any}) => void;
onStop?: () => void;
// Root container selector
container?: string
// Classes
klass?: PickadateKlassOptions;
}
// Events
onStart?: () => void;
onRender?: () => void;
onOpen?: () => void;
onClose?: () => void;
onSet?: (context: {[key: string]: any}) => void;
onStop?: () => void;
interface PickadateKlassOptions {
// The element states
input?: string;
active?: string;
// Classes
klass?: DateKlassOptions;
}
// The root picker and states
picker?: string;
opened?: string;
focused?: string;
export interface DateKlassOptions {
// The element states
input?: string;
active?: string;
// The picker holder
holder?: string;
// The root picker and states
picker?: string;
opened?: string;
focused?: string;
// The picker frame, wrapper, and box
frame?: string;
wrap?: string;
box?: string;
// The picker holder
holder?: string;
// The picker header
header?: string;
// The picker frame, wrapper, and box
frame?: string;
wrap?: string;
box?: string;
// Month navigation
navPrev?: string;
navNext?: string;
navDisabled?: string;
// The picker header
header?: string;
// Month & year labels
month?: string;
year?: string;
// Month navigation
navPrev?: string;
navNext?: string;
navDisabled?: string;
// Month & year dropdowns
selectMonth?: string;
selectYear?: string;
// Month & year labels
month?: string;
year?: string;
// Table of dates
table?: string;
// Month & year dropdowns
selectMonth?: string;
selectYear?: string;
// Weekday labels
weekdays?: string;
// Table of dates
table?: string;
// Day states
day?: string;
disabled?: string;
selected?: string;
highlighted?: string;
now?: string;
infocus?: string;
outfocus?: string;
// Weekday labels
weekdays?: string;
// The picker footer
footer?: string;
// Day states
day?: string;
disabled?: string;
selected?: string;
highlighted?: string;
now?: string;
infocus?: string;
outfocus?: string;
// Today, clear, & close buttons
buttonClear?: string;
buttonClose?: string;
buttonToday?: string
}
// The picker footer
footer?: string;
interface PickatimeOptions {
// Translations and clear button
clear?: string;
// Today, clear, & close buttons
buttonClear?: string;
buttonClose?: string;
buttonToday?: string
}
// Formats
format?: string;
formatLabel?: string;
formatSubmit?: string;
hiddenPrefix?: string;
hiddenSuffix?: string;
export interface TimeOptions {
// Translations and clear button
clear?: string;
// Editable input
editable?: boolean;
// Formats
format?: string;
formatLabel?: string;
formatSubmit?: string;
hiddenPrefix?: string;
hiddenSuffix?: string;
// Time intervals
interval?: number;
// Editable input
editable?: boolean;
// Time limits (can be Dates, arrays formatted as [HOUR, MINUTE], integers, or booleans)
min?: any;
max?: any;
// Time intervals
interval?: number;
// Disable dates (elements can be Dates, [YEAR, MONTH, DATE] arrays, or integers of the week)
disable?: any[];
// Time limits (can be Dates, arrays formatted as [HOUR, MINUTE], integers, or booleans)
min?: any;
max?: any;
// Root container selector
container?: string
// Disable dates (elements can be Dates, [YEAR, MONTH, DATE] arrays, or integers of the week)
disable?: any[];
// Events
onStart?: () => void;
onRender?: () => void;
onOpen?: () => void;
onClose?: () => void;
onSet?: (context: {[key: string]: any}) => void;
onStop?: () => void;
// Root container selector
container?: string
// Classes
klass?: PickatimeKlassOptions;
}
// Events
onStart?: () => void;
onRender?: () => void;
onOpen?: () => void;
onClose?: () => void;
onSet?: (context: {[key: string]: any}) => void;
onStop?: () => void;
interface PickatimeKlassOptions {
// The element states
input?: string;
active?: string;
// Classes
klass?: TimeKlassOptions;
}
// The root picker and states
picker?: string;
opened?: string;
focused?: string;
export interface TimeKlassOptions {
// The element states
input?: string;
active?: string;
// The picker holder
holder?: string;
// The root picker and states
picker?: string;
opened?: string;
focused?: string;
// The picker frame, wrapper, and box
frame?: string;
wrap?: string;
box?: string;
// The picker holder
holder?: string;
// List of times
list?: string;
listItem?: string;
// The picker frame, wrapper, and box
frame?: string;
wrap?: string;
box?: string;
// Time states
disabled?: string;
selected?: string;
highlighted?: string;
viewset?: string;
now?: string;
// List of times
list?: string;
listItem?: string;
// Clear button
buttonClear?: string;
// Time states
disabled?: string;
selected?: string;
highlighted?: string;
viewset?: string;
now?: string;
// Clear button
buttonClear?: string;
}
}
interface JQuery {
/**
* Initialize a date picker.
*/
pickadate(options?: PickadateOptions): any;
* Initialize a date picker.
*/
pickadate(options?: Pickadate.DateOptions): any;
/**
* Access objects attached to the picker or invoke API methods after initialization.
* If keyword is "picker", this returns a PickadateApi.
* @param keyword "picker", an object name, or method name
* @param arguments any arguments to pass to the method
*/
* Access objects attached to the picker or invoke API methods after initialization.
* If keyword is "picker", this returns a PickadateApi.
* @param keyword "picker", an object name, or method name
* @param arguments any arguments to pass to the method
*/
pickadate(keyword: string, ...arguments: any[]): any;
/**
* Initialize a time picker.
*/
pickatime(options?: PickatimeOptions): any;
* Initialize a time picker.
*/
pickatime(options?: Pickadate.TimeOptions): any;
/**
* Access objects attached to the picker or invoke API methods after initialization.
* If keyword is "picker", this returns a PickadateApi.
* @param keyword "picker", an object name, or method name
* @param arguments any arguments to pass to the method
*/
* Access objects attached to the picker or invoke API methods after initialization.
* If keyword is "picker", this returns a PickadateApi.
* @param keyword "picker", an object name, or method name
* @param arguments any arguments to pass to the method
*/
pickatime(keyword: string, ...arguments: any[]): any;
}