Merge pull request #199 from qcz/master

New TypeScript definitions
This commit is contained in:
Boris Yankov
2013-01-20 07:32:54 -08:00
6 changed files with 453 additions and 0 deletions
+89
View File
@@ -0,0 +1,89 @@
/// <reference path="../jquery/jquery.d.ts"/>
/// <reference path="gldatepicker.d.ts"/>
$('input').glDatePicker();
$('#example2').glDatePicker(
{
showAlways: true,
allowMonthSelect: false,
allowYearSelect: false,
prevArrow: '',
nextArrow: '',
selectedDate: new Date(2013, 8, 5),
selectableDateRange: [
{
from: new Date(2013, 8, 1),
to: new Date(2013, 8, 10)
},
{
from: new Date(2013, 8, 19),
to: new Date(2013, 8, 22)
},
],
selectableDates: [
{ date: new Date(2013, 8, 24) },
{ date: new Date(2013, 8, 30) }
]
});
$('#example3').glDatePicker(
{
showAlways: true,
cssName: 'darkneon',
selectedDate: new Date(2013, 0, 5),
specialDates: [
{
date: new Date(2013, 0, 8),
data: { message: 'Meeting every day 8 of the month' },
repeatMonth: true
},
{
date: new Date(0, 0, 1),
data: { message: 'Happy New Year!' },
repeatYear: true
},
],
onClick: function (target, cell, date, data) {
target.val(date.getFullYear() + ' - ' +
date.getMonth() + ' - ' +
date.getDate());
if (data != null) {
alert(data.message + '\n' + date);
}
}
});
$('#example4').glDatePicker(
{
showAlways: true,
selectedDate: new Date(2013, 8, 5),
dowOffset: 3,
selectableYears: [2012, 2013, 2014],
selectableMonths: [8, 11],
selectableDOW: [1, 4, 6]
});
// Doing it in a single pass
var myDatePicker = $('#example1').glDatePicker(
{
showAlways: true,
selectableDOW: [0, 2, 3]
}).glDatePicker(true);
// Or you can do it with multiple calls
$('example1').glDatePicker(
{
showAlways: true,
selectableDOW: [0, 2, 3]
});
// This example updates some options (calling render will re-generate the calendar)
$.extend(myDatePicker.options,
{
cssName: 'darkneon',
allowMonthSelect: false,
allowYearSelect: false
});
myDatePicker.render();
myDatePicker.show();
+69
View File
@@ -0,0 +1,69 @@
// Type definitions for glDatePicker 2.0
// Project: http://glad.github.com/glDatePicker/
// Definitions by: Dániel Tar https://github.com/qcz
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts"/>
interface GlDatePickerOffset {
x: number;
y: number;
}
interface GlDatePickerDate {
date: Date;
repeatMonth?: bool;
repeatYear?: bool;
}
interface GlDatePickerDateRange {
from: Date;
to?: Date;
repeatYear?: bool;
}
interface GlDatePickerSpecialDate extends GlDatePickerDate {
data?: any;
cssClass?: string;
}
interface GlDatePickerOptions {
cssName?: string;
zIndex?: number;
borderSize?: number;
calendarOffset?: GlDatePickerOffset;
showAlways?: bool;
hideOnClick?: bool;
allowMonthSelect?: bool;
allowYearSelect?: bool;
todayDate?: Date;
selectedDate?: Date;
prevArrow?: string;
nextArrow?: string;
selectableDates?: GlDatePickerDate[];
selectableDateRange?: GlDatePickerDateRange[];
specialDates?: GlDatePickerSpecialDate[];
selectableMonths?: number[];
selectableYears?: number[];
selectableDOW?: number[];
monthNames?: string[];
dowNames?: string[];
dowOffset?: number;
onClick?: (inputElement: JQuery, cell: JQuery, date: Date, data: any) => void;
onHover?: (inputElement: JQuery, cell: JQuery, date: Date, data: any) => void;
onShow?: (calendar: JQuery) => void;
onHide?: (calendar: JQuery) => void;
}
interface GlDatePicker {
options: GlDatePickerOptions;
show(): void;
hide(): void;
render(renderCallback?: () => void): void;
}
interface JQuery {
glDatePicker(options?: GlDatePickerOptions): JQuery;
glDatePicker(ret: bool): GlDatePicker;
}
+157
View File
@@ -0,0 +1,157 @@
/// <reference path="../jquery/jquery.d.ts"/>
/// <reference path="jqrangeslider.d.ts"/>
// Arrows
$("#arrowsExample").rangeSlider({ arrows: false });
$("#arrowsExample").editRangeSlider({ arrows: false });
$("#arrowsExample").dateRangeSlider({ arrows: false });
// Bounds
$("#boundsExample").rangeSlider({ bounds: { min: 10, max: 90 } });
$("#boundsExample").editRangeSlider({ bounds: { min: 10, max: 90 } });
$("#boundsExample").dateRangeSlider({
bounds: {
min: new Date(2012, 0, 1),
max: new Date(2012, 11, 31)
}
});
// Default values
$("#defaultValuesExample").rangeSlider({ defaultValues: { min: 10, max: 90 } });
$("#defaultValuesExample").editRangeSlider({ defaultValues: { min: 10, max: 90 } });
$("#defaultValuesExample").dateRangeSlider({
defaultValues: {
min: new Date(2012, 0, 1),
max: new Date(2012, 11, 31)
}
});
// Delay out
$("#delayExample").rangeSlider({
valueLabels: "change",
delayOut: 4000
});
$("#delayExample").editRangeSlider({
valueLabels: "change",
delayOut: 4000
});
$("#delayExample").dateRangeSlider({
valueLabels: "change",
delayOut: 4000
});
// Duration in/out
$("#durationExample").rangeSlider({
valueLabels: "change",
durationIn: 1000,
durationOut: 1000
});
$("#defaultValuesExample").editRangeSlider({
valueLabels: "change",
durationIn: 1000,
durationOut: 1000
});
$("#defaultValuesExample").dateRangeSlider({
valueLabels: "change",
durationIn: 1000,
durationOut: 1000
});
// Formatter - JS-way
$("#formatterExample").rangeSlider({
formatter: function (val) {
var value = Math.round(val * 5) / 5,
decimal = value - Math.round(val);
return decimal == 0 ? value.toString() + ".0" : value.toString();
}
});
$("#formatterExample").editRangeSlider({
formatter: function (val) {
var value = Math.round(val * 5) / 5,
decimal = value - Math.round(val);
return decimal == 0 ? value.toString() + ".0" : value.toString();
}
});
$("#formatterExample").dateRangeSlider({
formatter: function (val) {
var days = val.getDay(),
month = val.getMonth() + 1,
year = val.getYear();
return days + "/" + month + "/" + year;
}
});
// Formatter - TS-way
$("#formatterExample").rangeSlider({
formatter: (val: number) => {
var value = Math.round(val * 5) / 5,
decimal = value - Math.round(val);
return decimal == 0 ? value.toString() + ".0" : value.toString();
}
});
$("#formatterExample").editRangeSlider({
formatter: (val: number) => {
var value = Math.round(val * 5) / 5,
decimal = value - Math.round(val);
return decimal == 0 ? value.toString() + ".0" : value.toString();
}
});
$("#formatterExample").dateRangeSlider({
formatter: (val: Date) => {
var days = val.getDay(),
month = val.getMonth() + 1,
year = val.getYear();
return days + "/" + month + "/" + year;
}
});
// Range
$("#rangeExample").rangeSlider({range: {min: 10, max: 40}});
$("#rangeExample").editRangeSlider({range: {min: 10, max: 40}});
$("#rangeExample").dateRangeSlider({
range: {
min: { days: 2 },
max: { days: 7 }
}
});
$("#rangeExample").rangeSlider({range: {min: 10}});
$("#rangeExample").rangeSlider({range: {min: 10, max: false}});
$("#rangeExample").rangeSlider({range: false});
$("#rangeExample").rangeSlider({range: {min: false, max: false}});
$("#rangeExample").rangeSlider({range: {min: false}});
// Step
$("#stepExample").rangeSlider({step: 10});
$("#rangeExample").dateRangeSlider({
step: {
days: 2
}
});
// Value labels
$("#valueLabelsExample").rangeSlider({valueLabels: "change"});
$("#valueLabelsExample").dateRangeSlider({valueLabels: "change"});
// Wheel mode
$("#wheelModeExample").rangeSlider({wheelMode: "zoom"});
$("#wheelModeExample").rangeSlider({wheelMode: null});
// Wheel speed
$("#wheelSpeedExample").rangeSlider({wheelMode: "scroll", wheelSpeed: 30});
$("#wheelSpeedExample").dateRangeSlider({wheelMode: "scroll", wheelSpeed: 30});
// Get bounds
var basicSliderBounds: JQRangeSliderNumericRange = $("#slider").rangeSlider("bounds");
console.log(basicSliderBounds.min + " " + basicSliderBounds.max);
var editSliderBounds: JQRangeSliderNumericRange = $("#editSlider").editRangeSlider("bounds");
console.log(editSliderBounds.min + " " + editSliderBounds.max);
var dateSliderBounds: JQRangeSliderDateRange = $("#dateSlider").dateRangeSlider("bounds");
console.log(dateSliderBounds.min.toString() + " " + dateSliderBounds.max.toString());
// Set bounds
$("#slider").rangeSlider("bounds", 10, 20);
$("#editSlider").editRangeSlider("bounds", 20, 100);
$("#dateSlider").dateRangeSlider("bounds", new Date(2012, 0, 1), new Date(2012, 0, 31));
// Get min/max
var basicSliderMin: number = $("#slider").rangeSlider("min");
console.log(basicSliderMin);
var editSliderMin: number = $("#editSlider").editRangeSlider("min");
console.log(editSliderMin);
var dateSliderMax: Date = $("#dateSlider").dateRangeSlider("max");
console.log(dateSliderMax.toString());
// Set min/max
$("#slider").rangeSlider("min", 10);
$("#editSlider").editRangeSlider("min", 20);
$("#dateSlider").dateRangeSlider("max", new Date(2012, 1, 1));
+74
View File
@@ -0,0 +1,74 @@
// Type definitions for jQRangeSlider 4.2.8
// Project: http://ghusse.github.com/jQRangeSlider
// Definitions by: Dániel Tar https://github.com/qcz
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts"/>
/// <reference path="../jqueryui/jqueryui.d.ts"/>
interface JQRangeSliderNumericRange {
min?: number;
max?: number;
}
interface JQRangeSliderDateRange {
min?: Date;
max?: Date;
}
interface JQRangeSliderRangeLength {
min?: any;
max?: any;
}
interface JQRangeSliderDateSteps {
years?: number;
months?: number;
weeks?: number;
days?: number;
hours?: number;
minutes?: number;
seconds?: number;
}
interface JQRangeSliderOptions {
wheelMode?: string; // function of the wheel, "zoom", "scroll" or null
wheelSpeed?: number; // speed of the wheel scrolling
arrows?: bool; // hide the arrows or not
valueLabels?: string; // when to show value labels: "show" (always), "hide" (never) and "change" (only if slider changed)
durationIn?: number; // fade in length when displaying value labels (only when valueLabels = "change")
durationOut?: number; // fade out length when displaying value labels (only when valueLabels = "change")
delayOut?: number; // duration labels are shown after the user changed its values (only when valueLabels = "change")
range?: JQRangeSliderRangeLength; // lets you specify minimum and/or maximum range length
}
interface JQNumericRangeSliderOptions extends JQRangeSliderOptions {
bounds?: JQRangeSliderNumericRange; // min and max values of the slider
defaultValues?: JQRangeSliderNumericRange; // values selected by default on construction
formatter?: (integer) => string; // customize displayed label text
step?: number; // allows to customize values rounding, and graphically render this rounding
}
interface JQDateRangeSliderOptions extends JQRangeSliderOptions {
bounds?: JQRangeSliderDateRange; // min and max values of the slider
defaultValues?: JQRangeSliderDateRange; // values selected by default on construction
formatter?: (Date) => string; // customize displayed label text
step?: JQRangeSliderDateSteps; // allows to customize values rounding, and graphically render this rounding
}
interface JQuery {
rangeSlider(options?: JQNumericRangeSliderOptions): JQuery;
rangeSlider(method: string): any;
rangeSlider(method: string, value: number): JQuery;
rangeSlider(method: string, min: number, max: number): JQuery;
editRangeSlider(options?: JQNumericRangeSliderOptions): JQuery;
editRangeSlider(method: string): any;
editRangeSlider(method: string, value: number): JQuery;
editRangeSlider(method: string, min: number, max: number): JQuery;
dateRangeSlider(options?: JQRangeSliderOptions): JQuery;
dateRangeSlider(method: string): any;
dateRangeSlider(method: string, value: Date): JQuery;
dateRangeSlider(method: string, min: Date, max: Date): JQuery;
}
+43
View File
@@ -0,0 +1,43 @@
/// <reference path="../jquery/jquery.d.ts"/>
/// <reference path="mousetrap.d.ts"/>
Mousetrap.bind('4', function() { console.log('4'); });
Mousetrap.bind("?", function() { console.log('show shortcuts!'); });
Mousetrap.bind('esc', function() { console.log('escape'); }, 'keyup');
// combinations
Mousetrap.bind('command+shift+K', function() { console.log('command shift k'); });
// map multiple combinations to the same callback
Mousetrap.bind(['command+k', 'ctrl+k'], function() {
console.log('command k or control k');
// return false to prevent default browser behavior
// and stop event from bubbling
return false;
});
// gmail style sequences
Mousetrap.bind('g i', function() { console.log('go to inbox'); });
Mousetrap.bind('* a', function() { console.log('select all'); });
// konami code!
Mousetrap.bind('up up down down left right left right b a enter', function() {
console.log('konami code');
});
Mousetrap.bind(['ctrl+s', 'meta+s'], (e, combo) => {
if (e.preventDefault) {
e.preventDefault();
} else {
// internet explorer
e.returnValue = false;
}
});
Mousetrap.unbind('?');
Mousetrap.trigger('esc');
Mousetrap.trigger('esc', 'keyup');
Mousetrap.reset();
+21
View File
@@ -0,0 +1,21 @@
// Type definitions for Mousetrap 1.2.2
// Project: http://craig.is/killing/mice
// Definitions by: Dániel Tar https://github.com/qcz
// Definitions: https://github.com/borisyankov/DefinitelyTyped
interface ExtendedKeyboardEvent extends KeyboardEvent {
returnValue: bool; // IE returnValue
}
interface MousetrapStatic {
stopCallback: (e: ExtendedKeyboardEvent, element: Element, combo: string) => bool;
bind(keys: string, callback: (e: ExtendedKeyboardEvent, combo: string) => any, action?: string): void;
bind(keyArray: string[], callback: (e: ExtendedKeyboardEvent, combo: string) => any, action?: string): void;
unbind(keys: string, action?: string): void;
unbind(keyArray: string[], action?: string): void;
trigger(keys: string, action?: string): void;
reset(): void;
}
var Mousetrap: MousetrapStatic;