diff --git a/jquery-knob/jquery-knob-tests.ts b/jquery-knob/jquery-knob-tests.ts new file mode 100644 index 0000000000..a6c85e2c8b --- /dev/null +++ b/jquery-knob/jquery-knob-tests.ts @@ -0,0 +1,37 @@ +/// + +// create from html attrs +$('').knob(); + +// create with object +$('').knob({ + min: 0, + max: 100, + angleArc: 270 +}); + +// hooks +var hookKnob = $('').knob({ + release: function(value) { + console.log(value); + }, + change: function(value) { + console.log(value); + }, + draw: function() { + console.log(this); + }, + cancel: function() { + console.log(this); + }, + format: function(value) { + console.log(value); + } +}); + +// trigger +hookKnob.trigger('release'); +hookKnob.trigger('change'); +hookKnob.trigger('draw'); +hookKnob.trigger('cancel'); +hookKnob.trigger('format'); \ No newline at end of file diff --git a/jquery-knob/jquery-knob.d.ts b/jquery-knob/jquery-knob.d.ts new file mode 100644 index 0000000000..7d02fa34f5 --- /dev/null +++ b/jquery-knob/jquery-knob.d.ts @@ -0,0 +1,116 @@ +// Type definitions for jQuery Knob 1.2.11 +// Project: http://anthonyterrien.com/knob/ +// Definitions by: Iain Buchanan +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module JQueryKnob { + export interface JQueryKnobOptions { + /** + * min value | default=0 + */ + min?: number; + /** + * max value | default=100 + */ + max?: number; + /** + * step size | default=1 + */ + step?: number; + /** + * starting angle in degrees | default=0 + */ + angleOffset?: number; + /** + * arc size in degrees | default=360 + */ + angleArc?: number; + /** + * stop at min & max on keydown/mousewheel | default=true + */ + stopper?: boolean; + /** + * disable input and events | default=false + */ + readOnly?: boolean; + /** + * direction of progression | default=clockwise + */ + rotation?: string; + /** + * display mode "cursor", cursor size could be changed passing a + * numeric value to the option, default width is used when passing + * boolean value "true" | default=gauge + */ + cursor?: string | boolean; + /** + * gauge thickness + */ + thickness?: number; + /** + * gauge stroke endings | default=butt, round=rounded line endings + */ + lineCap?: string; + /** + * dial width + */ + width?: number; + /** + * default=true | false=hide input + */ + displayInput?: boolean; + /** + * default=false | true=displays the previous value with transparency + */ + displayPrevious?: boolean; + /** + * foreground color + */ + fgColor?: string; + /** + * input value (number) color + */ + inputColor?: string; + /** + * font family + */ + font?: string; + /** + * font weight + */ + fontWeight?: string; + /** + * background color + */ + bgColor?: string; + /** + * executed on release + */ + release?: (value: number) => void; + /** + * executed at each change of the value + */ + change?: (value: number) => void; + /** + * when drawing the canvas + */ + draw?: () => void; + /** + * triggered on [esc] keydown + */ + cancel?: () => void; + /** + * allows to format output (add unit %, ms...) + */ + format?: (value: number) => void; + } +} + +interface JQuery { + /** + * Create a knob for the given input field, with optional options + */ + knob(options?: JQueryKnob.JQueryKnobOptions): JQuery; +} \ No newline at end of file