From 51b9de46c8f513aaec5806d1bcb7e8a8fa50d148 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sun, 20 Jan 2013 23:24:53 +0200 Subject: [PATCH 1/6] Add Viewporter definitions and tests --- README.md | 1 + viewporter/viewporter-tests.ts | 175 +++++++++++++++++++++++++++++++++ viewporter/viewporter.d.ts | 20 ++++ 3 files changed, 196 insertions(+) create mode 100644 viewporter/viewporter-tests.ts create mode 100644 viewporter/viewporter.d.ts diff --git a/README.md b/README.md index 26acb6348d..9d27edfb9a 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ List of Definitions * [Ubuntu Unity Web API](https://launchpad.net/libunity-webapps) (by [John Vrbanac](https://github.com/jmvrbanac)) * [Underscore.js](http://underscorejs.org/) (by [Boris Yankov](https://github.com/borisyankov)) * [Underscore.js (Typed)](http://underscorejs.org/) (by [Josh Baldwin](https://github.com/jbaldwin/)) +* [Viewporter](https://github.com/zynga/viewporter) (by [Boris Yankov](https://github.com/borisyankov)) * [Vimeo](http://developer.vimeo.com/player/js-api) (by [Daz Wilkin](https://github.com/DazWilkin/)) * [WebRTC](http://dev.w3.org/2011/webrtc/editor/webrtc.html) (by [Ken Smith](https://github.com/smithkl42)) * [YouTube](https://developers.google.com/youtube/) (by [Daz Wilkin](https://github.com/DazWilkin/)) diff --git a/viewporter/viewporter-tests.ts b/viewporter/viewporter-tests.ts new file mode 100644 index 0000000000..5c6c32cae2 --- /dev/null +++ b/viewporter/viewporter-tests.ts @@ -0,0 +1,175 @@ +/// +/// +/// + +function test_map() { + viewporter.preventPageScroll = true; + var eventName = viewporter.ACTIVE ? 'viewportready' : "load"; + google.maps.event.addDomListener(window, eventName, function () { + var map = new google.maps.Map(document.getElementById("map"), { + zoom: 2, + center: new google.maps.LatLng(10, 0), + mapTypeId: google.maps.MapTypeId.ROADMAP + }); + window.addEventListener("resize", viewporter.refresh); + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition(function (position) { + map.setCenter(new google.maps.LatLng( + position.coords.latitude, + position.coords.longitude + )); + map.setZoom(14); + }); + } + }); +} + +function test_resize() { + viewporter.preventPageScroll = true; + document.addEventListener('DOMContentLoaded', function () { + // listen for "resize" events and trigger "refresh" method. + window.addEventListener("resize", function () { + viewporter.refresh(); + document.getElementById("events").innerHTML += "resize
"; + }); + if (navigator.geolocation) { + function success(position) { + var coords = [position.coords.latitude, position.coords.longitude] + document.getElementById("coords").innerHTML = coords.join(", "); + } + navigator.geolocation.getCurrentPosition(success); + } + }); +} + +function test_swipey() { + function rainbow(numOfSteps, step) { + var r, g, b, h = step / numOfSteps, i = ~~(h * 6), f = h * 6 - i, q = 1 - f; + switch (i % 6) { + case 0: r = 1, g = f, b = 0; break; + case 1: r = q, g = 1, b = 0; break; + case 2: r = 0, g = 1, b = f; break; + case 3: r = 0, g = q, b = 1; break; + case 4: r = f, g = 0, b = 1; break; + case 5: r = 1, g = 0, b = q; break; + } + return [((~ ~(r * 255))), (~ ~(g * 255)), (~ ~(b * 255))]; + } + + function drawingPointer(context, color) { + var clickX = []; + var clickY = []; + var clickDrag = []; + + this.painting = false; + var timestamp = null; + + this.addPoint = function (x, y, dragging) { + clickX.push(x); + clickY.push(y); + clickDrag.push(dragging); + }; + this.start = function () { + this.clear(); + this.painting = true; + }; + this.clear = function () { + clickX = []; + clickY = []; + clickDrag = []; + timestamp = null; + }; + this.stop = function () { + this.painting = false; + timestamp = Date.now(); + }; + this.redraw = function () { + var opacity = timestamp ? (300 - (Date.now() - timestamp)) / 300 : 1; + if (opacity <= 0) { + this.clear(); + return; + } + context.strokeStyle = "rgba(" + color[0] + "," + color[1] + "," + color[2] + "," + opacity + ")"; + context.lineJoin = "round"; + context.lineWidth = (window.devicePixelRatio || 1) * 5; + for (var i = 0; i < clickX.length; i++) { + context.beginPath(); + if (clickDrag[i] && i) { + context.moveTo(clickX[i - 1], clickY[i - 1]); + } else { + context.moveTo(clickX[i] - 1, clickY[i]); + } + context.lineTo(clickX[i], clickY[i]); + context.closePath(); + context.stroke(); + } + }; + }; + + $(window).bind(viewporter.ACTIVE ? 'viewportready' : 'load', function () { + var canvas = $('canvas')[0]; + var context = canvas.getContext('2d'); + var iOS = (/iphone|ipad/i).test(navigator.userAgent); + var pointers = {}; + // handle resizing / rotating of the viewport + var width, height; + $(window).bind(viewporter.ACTIVE ? 'viewportchange' : 'resize', function () { + width = canvas.width = window.innerWidth; + height = canvas.height = window.innerHeight + }).trigger(viewporter.ACTIVE ? 'viewportchange' : 'resize'); + $('canvas').bind(iOS ? 'touchstart' : 'mousedown', function (e) { + e.preventDefault(); + var touches = iOS ? e.originalEvent.changedTouches : [e.originalEvent]; + var identifier; + for (var i = 0; i < touches.length; i++) { + identifier = touches[i].identifier || 'mouse'; + // if no pointer has been created for this finger yet, do it + if (!pointers[identifier]) { + pointers[identifier] = new drawingPointer(context, rainbow(8, Object.keys(pointers).length)); + } + pointers[identifier].start(); + pointers[identifier].addPoint(touches[i].pageX, touches[i].pageY); + } + }); + + $('canvas').bind(iOS ? 'touchmove' : 'mousemove', function (e) { + var touches = iOS ? e.originalEvent.changedTouches : [e.originalEvent]; + var identifier; + for (var i = 0; i < touches.length; i++) { + identifier = touches[i].identifier || 'mouse'; + if (pointers[identifier] && pointers[identifier].painting) { + pointers[identifier].addPoint(touches[i].pageX, touches[i].pageY, true); + } + } + }); + + $('canvas').bind(iOS ? 'touchend' : 'mouseup', function (e) { + var touches = iOS ? e.originalEvent.changedTouches : [e.originalEvent]; + var identifier; + for (var i = 0; i < touches.length; i++) { + identifier = touches[i].identifier || 'mouse'; + if (pointers[identifier]) { + pointers[identifier].stop(); + (function (identifier) { + setTimeout(function () { + delete pointers[identifier]; + }, 300); + })(identifier); + } + } + }); + + window.setInterval(function () { + context.clearRect(0, 0, width, height); + var counter = 0, ratio = window.devicePixelRatio || 1; + for (var identifier in pointers) { + pointers[identifier].redraw(); + counter++; + } + context.font = (10 * ratio) + 'pt Arial'; + context.fillText(counter + ' active pointers', 15 * ratio, 25 * ratio); + + }, 16); + + }); +} \ No newline at end of file diff --git a/viewporter/viewporter.d.ts b/viewporter/viewporter.d.ts new file mode 100644 index 0000000000..758e642d1c --- /dev/null +++ b/viewporter/viewporter.d.ts @@ -0,0 +1,20 @@ +// Type definitions for Zynga Viewporter v2.1 +// Project: https://github.com/zynga/viewporter +// Definitions by: Boris Yankov https://github.com/borisyankov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +interface Viewporter { + preventPageScroll: bool; + forceDetection: bool; + ACTIVE: bool; + READY: bool; + + isLandscape(): bool; + ready(callback: EventListener): void; + change(callback: EventListener): void; + refresh(): void; +} + +declare var viewporter: Viewporter; \ No newline at end of file From 81a120c3925c12adc587b39c0f4b6b0ec7e723e2 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sun, 20 Jan 2013 23:45:19 +0200 Subject: [PATCH 2/6] Remove jQuery dependency from viewporter --- viewporter/viewporter.d.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/viewporter/viewporter.d.ts b/viewporter/viewporter.d.ts index 758e642d1c..2fb263e2f4 100644 --- a/viewporter/viewporter.d.ts +++ b/viewporter/viewporter.d.ts @@ -3,8 +3,6 @@ // Definitions by: Boris Yankov https://github.com/borisyankov // Definitions: https://github.com/borisyankov/DefinitelyTyped -/// - interface Viewporter { preventPageScroll: bool; forceDetection: bool; From 0cb497c41affc61f0a21050067ff17b2bde854d1 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Mon, 21 Jan 2013 02:44:04 +0200 Subject: [PATCH 3/6] Add Zynga Scroller definitions and tests --- README.md | 1 + scroller/easyscroller.d.ts | 15 +++ scroller/scroller-tests.ts | 254 +++++++++++++++++++++++++++++++++++++ scroller/scroller.d.ts | 50 ++++++++ 4 files changed, 320 insertions(+) create mode 100644 scroller/easyscroller.d.ts create mode 100644 scroller/scroller-tests.ts create mode 100644 scroller/scroller.d.ts diff --git a/README.md b/README.md index 9d27edfb9a..ea97bba146 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,7 @@ List of Definitions * [Vimeo](http://developer.vimeo.com/player/js-api) (by [Daz Wilkin](https://github.com/DazWilkin/)) * [WebRTC](http://dev.w3.org/2011/webrtc/editor/webrtc.html) (by [Ken Smith](https://github.com/smithkl42)) * [YouTube](https://developers.google.com/youtube/) (by [Daz Wilkin](https://github.com/DazWilkin/)) +* [Zynga Scroller](https://github.com/zynga/scroller) (by [Boris Yankov](https://github.com/borisyankov)) Requested Definitions --------------------- diff --git a/scroller/easyscroller.d.ts b/scroller/easyscroller.d.ts new file mode 100644 index 0000000000..5b6477fe5f --- /dev/null +++ b/scroller/easyscroller.d.ts @@ -0,0 +1,15 @@ +// Type definitions for Zynga EasyScroller +// Project: https://github.com/zynga/scroller +// Definitions by: Boris Yankov https://github.com/borisyankov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +/// + +class EasyScroller { + constructor (content: any, options: ScrollerOptions); + + render(): void; + reflow(): void; + bindEvents(): void; +} \ No newline at end of file diff --git a/scroller/scroller-tests.ts b/scroller/scroller-tests.ts new file mode 100644 index 0000000000..9daaab4983 --- /dev/null +++ b/scroller/scroller-tests.ts @@ -0,0 +1,254 @@ +/// + +function test_basic() { + var scrollerObj = new Scroller(function (left, top, zoom) { + }, { + scrollingY: false + }); + scrollerObj.setDimensions(1000, 1000, 3000, 3000); +} + +function test_canvas() { + var contentWidth = 2000; + var contentHeight = 2000; + var cellWidth = 100; + var cellHeight = 100; + var content = document.getElementById('content'); + var context = content.getContext('2d'); + var tiling = new Tiling(); + var render = function (left, top, zoom) { + content.width = clientWidth; + content.height = clientHeight; + context.clearRect(0, 0, clientWidth, clientHeight); + tiling.setup(clientWidth, clientHeight, contentWidth, contentHeight, cellWidth, cellHeight); + tiling.render(left, top, zoom, paint); + }; + var paint = function (row, col, left, top, width, height, zoom) { + context.fillStyle = row % 2 + col % 2 > 0 ? "#ddd" : "#fff"; + context.fillRect(left, top, width, height); + context.fillStyle = "black"; + context.font = (14 * zoom).toFixed(2) + 'px "Helvetica Neue", Helvetica, Arial, sans-serif'; + context.fillText(row + "," + col, left + (6 * zoom), top + (18 * zoom)); + }; +} + +function test_domlist() { + var container = document.getElementById("container"); + var content = document.getElementById("content"); + var refreshElem = content.getElementsByTagName("div")[0]; + var scroller = new Scroller(render, { + scrollingX: false + }); + scroller.activatePullToRefresh(50, function () { + refreshElem.className += " active"; + refreshElem.innerHTML = "Release to Refresh"; + }, function () { + refreshElem.className = refreshElem.className.replace(" active", ""); + refreshElem.innerHTML = "Pull to Refresh"; + }, function () { + refreshElem.className += " running"; + refreshElem.innerHTML = "Refreshing..."; + setTimeout(function () { + refreshElem.className = refreshElem.className.replace(" running", ""); + insertItems(); + scroller.finishPullToRefresh(); + }, 2000); + }); + var rect = container.getBoundingClientRect(); + scroller.setPosition(rect.left + container.clientLeft, rect.top + container.clientTop); + var insertItems = function () { + for (var i = 0; i < 15; i++) { + var row = document.createElement("div"); + row.className = "row"; + row.style.backgroundColor = i % 2 > 0 ? "#ddd" : ""; + row.innerHTML = Math.random(); + if (content.firstChild == content.lastChild) { + content.appendChild(row); + } else { + content.insertBefore(row, content.childNodes[1]) + } + } + scroller.setDimensions(container.clientWidth, container.clientHeight, content.offsetWidth, content.offsetHeight - 50); + }; + insertItems(); + if ('ontouchstart' in window) { + container.addEventListener("touchstart", function (e) { + // Don't react if initial down happens on a form element + if (e.target.tagName.match(/input|textarea|select/i)) { + return; + } + scroller.doTouchStart(e.touches, e.timeStamp); + e.preventDefault(); + }, false); + document.addEventListener("touchmove", function (e) { + scroller.doTouchMove(e.touches, e.timeStamp); + }, false); + document.addEventListener("touchend", function (e) { + scroller.doTouchEnd(e.timeStamp); + }, false); + } else { + var mousedown = false; + container.addEventListener("mousedown", function (e) { + if (e.target.tagName.match(/input|textarea|select/i)) { + return; + } + scroller.doTouchStart([{ + pageX: e.pageX, + pageY: e.pageY + }], e.timeStamp); + mousedown = true; + }, false); + document.addEventListener("mousemove", function (e) { + if (!mousedown) { + return; + } + scroller.doTouchMove([{ + pageX: e.pageX, + pageY: e.pageY + }], e.timeStamp); + mousedown = true; + }, false); + document.addEventListener("mouseup", function (e) { + if (!mousedown) { + return; + } + scroller.doTouchEnd(e.timeStamp); + mousedown = false; + }, false); + } +} + +function test_dompaging() { + var container = document.getElementById("container"); + var content = document.getElementById("content"); + var size = 400; + var frag = document.createDocumentFragment(); + for (var cell = 0, cl = content.clientWidth / size; cell < cl; cell++) { + elem = document.createElement("div"); + elem.className = "cell"; + elem.style.backgroundColor = cell % 2 > 0 ? "#ddd" : ""; + elem.innerHTML = cell; + frag.appendChild(elem); + } + content.appendChild(frag); + var scroller = new Scroller(render, { + scrollingY: false, + paging: true + }); + var rect = container.getBoundingClientRect(); + scroller.setPosition(rect.left + container.clientLeft, rect.top + container.clientTop); + scroller.setDimensions(container.clientWidth, container.clientHeight, content.offsetWidth, content.offsetHeight); + if ('ontouchstart' in window) { + container.addEventListener("touchstart", function (e) { + if (e.target.tagName.match(/input|textarea|select/i)) { + return; + } + scroller.doTouchStart(e.touches, e.timeStamp); + e.preventDefault(); + }, false); + document.addEventListener("touchmove", function (e) { + scroller.doTouchMove(e.touches, e.timeStamp); + }, false); + document.addEventListener("touchend", function (e) { + scroller.doTouchEnd(e.timeStamp); + }, false); + } else { + var mousedown = false; + container.addEventListener("mousedown", function (e) { + if (e.target.tagName.match(/input|textarea|select/i)) { + return; + } + scroller.doTouchStart([{ + pageX: e.pageX, + pageY: e.pageY + }], e.timeStamp); + mousedown = true; + }, false); + document.addEventListener("mousemove", function (e) { + if (!mousedown) { + return; + } + scroller.doTouchMove([{ + pageX: e.pageX, + pageY: e.pageY + }], e.timeStamp); + mousedown = true; + }, false); + + document.addEventListener("mouseup", function (e) { + if (!mousedown) { + return; + } + scroller.doTouchEnd(e.timeStamp); + mousedown = false; + }, false); + } +} + +function test_domsnapping() { + var container = document.getElementById("container"); + var content = document.getElementById("content"); + var size = 100; + var frag = document.createDocumentFragment(); + for (var row = 0, rl = content.clientHeight / size; row < rl; row++) { + for (var cell = 0, cl = content.clientWidth / size; cell < cl; cell++) { + elem = document.createElement("div"); + elem.className = "cell"; + elem.style.backgroundColor = row % 2 + cell % 2 > 0 ? "#ddd" : ""; + elem.innerHTML = row + "," + cell; + frag.appendChild(elem); + } + } + content.appendChild(frag); + var scroller = new Scroller(render, { + snapping: true + }); + var rect = container.getBoundingClientRect(); + scroller.setPosition(rect.left + container.clientLeft, rect.top + container.clientTop); + scroller.setDimensions(container.clientWidth, container.clientHeight, content.offsetWidth, content.offsetHeight); + scroller.setSnapSize(100, 100); + if ('ontouchstart' in window) { + container.addEventListener("touchstart", function (e) { + if (e.target.tagName.match(/input|textarea|select/i)) { + return; + } + scroller.doTouchStart(e.touches, e.timeStamp); + e.preventDefault(); + }, false); + document.addEventListener("touchmove", function (e) { + scroller.doTouchMove(e.touches, e.timeStamp); + }, false); + document.addEventListener("touchend", function (e) { + scroller.doTouchEnd(e.timeStamp); + }, false); + } else { + var mousedown = false; + container.addEventListener("mousedown", function (e) { + if (e.target.tagName.match(/input|textarea|select/i)) { + return; + } + scroller.doTouchStart([{ + pageX: e.pageX, + pageY: e.pageY + }], e.timeStamp); + mousedown = true; + }, false); + document.addEventListener("mousemove", function (e) { + if (!mousedown) { + return; + } + scroller.doTouchMove([{ + pageX: e.pageX, + pageY: e.pageY + }], e.timeStamp); + mousedown = true; + }, false); + document.addEventListener("mouseup", function (e) { + if (!mousedown) { + return; + } + scroller.doTouchEnd(e.timeStamp); + mousedown = false; + }, false); + } +} \ No newline at end of file diff --git a/scroller/scroller.d.ts b/scroller/scroller.d.ts new file mode 100644 index 0000000000..72bf30d2fa --- /dev/null +++ b/scroller/scroller.d.ts @@ -0,0 +1,50 @@ +// Type definitions for Zynga Scroller +// Project: https://github.com/zynga/scroller +// Definitions by: Boris Yankov https://github.com/borisyankov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +interface ScrollerOptions { + scrollingX?: bool; + scrollingY?: bool; + animating?: bool; + animationDuration?: number; + bouncing?: bool; + locking?: bool; + paging?: bool; + snapping?: bool; + zooming?: bool; + minZoom?: number; + maxZoom?: number; + speedMultiplier?: number; +} + +interface ScrollValues { + left: number; + top: number; +} + +interface ScrollValuesWithZoom extends ScrollValues { + zoom: number; +} + +class Scroller { + constructor (callback: (left: number, top: number, zoom: number) => void , options: ScrollerOptions); + + setDimensions(clientWidth: number, clientHeight: number, contentWidth: number, contentHeight: number): void; + setPosition(left: number, top: number): void; + setSnapSize(width: number, height: number): void; + activatePullToRefresh(height: number, activateCallback: Function, deactivateCallback: Function, startCallback: Function): void; + finishPullToRefresh(): void; + getValues(): ScrollValuesWithZoom; + getScrollMax(): ScrollValues; + zoomTo(level: number, animate?: bool, originLeft?: bool, originTop?: bool): void; + zoomBy(factor: number, animate?: bool, originLeft?: bool, originTop?: bool): void; + scrollTo(left?: number, top?: number, animate?: number, zoom?: number): void; + scrollBy(left?: number, top?: number, animate?: number): void; + + doMouseZoom(wheelDelta: number, timeStamp: number, pageX: number, pageY: number): void; + doTouchStart(touches: any[], timeStamp: number): void; + doTouchMove(touches: any[], timeStamp: number, scale?: number): void; + doTouchEnd(timeStamp: number): void; +} \ No newline at end of file From 0c557131066f7140735ae6946b448cff4d237b30 Mon Sep 17 00:00:00 2001 From: Vassily Ivanov Date: Mon, 21 Jan 2013 11:26:42 +0400 Subject: [PATCH 4/6] Fixed definitions for jQuery UI Datepicker parseDate, formatDate. --- jqueryui/jqueryui.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jqueryui/jqueryui.d.ts b/jqueryui/jqueryui.d.ts index 4ae5d7a3d2..e64acce210 100644 --- a/jqueryui/jqueryui.d.ts +++ b/jqueryui/jqueryui.d.ts @@ -154,8 +154,8 @@ interface DatepickerFormatDateOptions { interface Datepicker extends Widget, DatepickerOptions { regional: { [languageCod3: string]: any; }; setDefaults(defaults: DatepickerOptions); - formatDate(format: string, date: Date, settings?: DatepickerFormatDateOptions): void; - parseDate(format: string, date: Date, settings?: DatepickerFormatDateOptions): void; + formatDate(format: string, date: Date, settings?: DatepickerFormatDateOptions): string; + parseDate(format: string, date: string, settings?: DatepickerFormatDateOptions): Date; iso8601Week(date: Date): void; noWeekends(): void; } From f42c0ecf54de708ac3c12f7f125ea4a22e9d4521 Mon Sep 17 00:00:00 2001 From: Christian Hoffmeister Date: Mon, 21 Jan 2013 17:16:45 +0100 Subject: [PATCH 5/6] properly returing JQueryPromise instead of JQueryDeferred --- jquery/jquery.d.ts | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/jquery/jquery.d.ts b/jquery/jquery.d.ts index 307c5a924f..e5b0c4187d 100644 --- a/jquery/jquery.d.ts +++ b/jquery/jquery.d.ts @@ -82,13 +82,13 @@ interface JQueryCallback { Interface for the JQuery promise, part of callbacks */ interface JQueryPromise { - always(...alwaysCallbacks: any[]): JQueryDeferred; - done(...doneCallbacks: any[]): JQueryDeferred; - fail(...failCallbacks: any[]): JQueryDeferred; - progress(...progressCallbacks: any[]): JQueryDeferred; + always(...alwaysCallbacks: any[]): JQueryPromise; + done(...doneCallbacks: any[]): JQueryPromise; + fail(...failCallbacks: any[]): JQueryPromise; + progress(...progressCallbacks: any[]): JQueryPromise; state(): string; pipe(doneFilter?: (x: any) => any, failFilter?: (x: any) => any, progressFilter?: (x: any) => any): JQueryPromise; - then(doneCallbacks: any, failCallbacks: any, progressCallbacks?: any): JQueryDeferred; + then(doneCallbacks: any, failCallbacks: any, progressCallbacks?: any): JQueryPromise; } /* @@ -98,15 +98,11 @@ interface JQueryDeferred extends JQueryPromise { notify(...args: any[]): JQueryDeferred; notifyWith(context: any, ...args: any[]): JQueryDeferred; - pipe(doneFilter?: any, failFilter?: any, progressFilter?: any): JQueryPromise; - progress(...progressCallbacks: any[]): JQueryDeferred; - promise(target? ): JQueryDeferred; + promise(target? ): JQueryPromise; reject(...args: any[]): JQueryDeferred; rejectWith(context:any, ...args: any[]): JQueryDeferred; resolve(...args: any[]): JQueryDeferred; resolveWith(context:any, ...args: any[]): JQueryDeferred; - state(): string; - then(doneCallbacks: any, failCallbacks: any, progressCallbacks?: any): JQueryDeferred; } /* From 50b13cbb8e1a6f603c097c66743cb1848b660f91 Mon Sep 17 00:00:00 2001 From: Vincent Bortone Date: Wed, 23 Jan 2013 23:53:21 -0500 Subject: [PATCH 6/6] Remove NumeralJSStatic interface. --- numeraljs/numeraljs.d.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/numeraljs/numeraljs.d.ts b/numeraljs/numeraljs.d.ts index 4733530046..25e540677b 100644 --- a/numeraljs/numeraljs.d.ts +++ b/numeraljs/numeraljs.d.ts @@ -3,10 +3,6 @@ // Definitions by: Vincent Bortone // Definitions: https://github.com/borisyankov/DefinitelyTyped -interface NumeralJSStatic { - (value?: any): Numeral; -} - interface NumeralJSLanguage { delimiters: { thousands: string;