From 81fc354dffc4a723e8f5feca2bb13ac000cf53ee Mon Sep 17 00:00:00 2001 From: Daniel Tar Date: Sun, 20 Jan 2013 13:28:39 +0100 Subject: [PATCH] TypeScript definitions for jQRangeSlider --- jqrangeslider/jqrangeslider-tests.ts | 157 +++++++++++++++++++++++++++ jqrangeslider/jqrangeslider.d.ts | 74 +++++++++++++ 2 files changed, 231 insertions(+) create mode 100644 jqrangeslider/jqrangeslider-tests.ts create mode 100644 jqrangeslider/jqrangeslider.d.ts diff --git a/jqrangeslider/jqrangeslider-tests.ts b/jqrangeslider/jqrangeslider-tests.ts new file mode 100644 index 0000000000..37ffeb8eff --- /dev/null +++ b/jqrangeslider/jqrangeslider-tests.ts @@ -0,0 +1,157 @@ +/// +/// + +// 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)); + diff --git a/jqrangeslider/jqrangeslider.d.ts b/jqrangeslider/jqrangeslider.d.ts new file mode 100644 index 0000000000..21a00023f0 --- /dev/null +++ b/jqrangeslider/jqrangeslider.d.ts @@ -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 + +/// +/// + +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; + wheelSpeed?: number; + arrows?: bool; + valueLabels?: string; + durationIn?: number; + durationOut?: number; + delayOut?: number; + range?: JQRangeSliderRangeLength; +} + +interface JQNumericRangeSliderOptions extends JQRangeSliderOptions { + bounds?: JQRangeSliderNumericRange; + defaultValues?: JQRangeSliderNumericRange; + formatter?: (integer) => string; + step?: number; +} + +interface JQDateRangeSliderOptions extends JQRangeSliderOptions { + bounds?: JQRangeSliderDateRange; + defaultValues?: JQRangeSliderDateRange; + formatter?: (Date) => string; + step?: JQRangeSliderDateSteps; +} + +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; +}