From c94dcde7911531813eaa068e928d95e4deb552a3 Mon Sep 17 00:00:00 2001 From: Christiaan Rakowski Date: Wed, 4 Dec 2013 08:58:49 +0100 Subject: [PATCH 1/4] straight up copy --- iscroll/iscroll-5-lite.d.ts | 48 +++++++++++++++++++++++ iscroll/iscroll-5-tests.ts | 31 +++++++++++++++ iscroll/iscroll-5.d.ts | 76 +++++++++++++++++++++++++++++++++++++ 3 files changed, 155 insertions(+) create mode 100644 iscroll/iscroll-5-lite.d.ts create mode 100644 iscroll/iscroll-5-tests.ts create mode 100644 iscroll/iscroll-5.d.ts diff --git a/iscroll/iscroll-5-lite.d.ts b/iscroll/iscroll-5-lite.d.ts new file mode 100644 index 000000000..1cd83b1dd --- /dev/null +++ b/iscroll/iscroll-5-lite.d.ts @@ -0,0 +1,48 @@ +// Type definitions for iScroll Lite 4.1 +// Project: http://cubiq.org/iscroll-4 +// Definitions by: Boris Yankov and Christiaan Rakowski +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +interface iScrollEvent { + (e: Event): void; +} + +interface iScrollOptions { + hScroll?: boolean; + vScroll?: boolean; + x?: number; + y?: number; + bounce?: boolean; + bounceLock?: boolean; + momentum?: boolean; + lockDirection?: boolean; + useTransform?: boolean; + useTransition?: boolean; + + // Events + onRefresh?: iScrollEvent; + onBeforeScrollStart?: iScrollEvent; + onScrollStart?: iScrollEvent; + onBeforeScrollMove?: iScrollEvent; + onScrollMove?: iScrollEvent; + onBeforeScrollEnd?: iScrollEvent; + onScrollEnd?: iScrollEvent; + onTouchEnd?: iScrollEvent; + onDestroy?: iScrollEvent; +} + +declare class iScroll { + + constructor (element: string, options?: iScrollOptions); + constructor (element: HTMLElement, options?: iScrollOptions); + + destroy(): void; + refresh(): void; + scrollTo(x: number, y: number, time?: number, relative?: boolean): void; + scrollToElement(element: string, time?: number): void; + scrollToElement(element: HTMLElement, time?: number): void; + disable(): void; + enable(): void; + stop(): void; +} diff --git a/iscroll/iscroll-5-tests.ts b/iscroll/iscroll-5-tests.ts new file mode 100644 index 000000000..773b62acf --- /dev/null +++ b/iscroll/iscroll-5-tests.ts @@ -0,0 +1,31 @@ +/// + +var myScroll1 = new iScroll('wrapper'); +var myScroll2 = new iScroll('wrapper', { hScrollbar: false, vScrollbar: false }); +var myScroll3= new iScroll('wrapper', { + snap: true, + momentum: false, + hScrollbar: false, + vScrollbar: false +}); +var myScroll4 = new iScroll('wrapper', { + snap: 'li', + momentum: false, + hScrollbar: false, + vScrollbar: false +}); +var myScroll6 = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' }); + +myScroll1.refresh(); +myScroll1.scrollTo(0, 100); +myScroll1.scrollTo(0, 100, 200); +myScroll1.scrollTo(0, 100, 200, true); + +myScroll1.scrollToElement('selectedElement'); +myScroll1.scrollToElement('selectedElement', 250); + +myScroll1.scrollToElement(document.getElementById('selectedElement')); +myScroll1.scrollToElement(document.getElementById('selectedElement'), 250); + +var myScroll7 = new iScroll(document.getElementById('wrapper')); +var myScroll8 = new iScroll(document.getElementById('wrapper'), { scrollbarClass: 'myScrollbar' }); \ No newline at end of file diff --git a/iscroll/iscroll-5.d.ts b/iscroll/iscroll-5.d.ts new file mode 100644 index 000000000..34234c00a --- /dev/null +++ b/iscroll/iscroll-5.d.ts @@ -0,0 +1,76 @@ +// Type definitions for iScroll 4.2 +// Project: http://cubiq.org/iscroll-4 +// Definitions by: Boris Yankov and Christiaan Rakowski +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +interface iScrollEvent { + (e: Event): void; +} + +interface iScrollOptions { + hScroll?: boolean; + vScroll?: boolean; + x?: number; + y?: number; + bounce?: boolean; + bounceLock?: boolean; + momentum?: boolean; + lockDirection?: boolean; + useTransform?: boolean; + useTransition?: boolean; + topOffset?: number; + checkDOMChanges?: boolean; + handleClick?: boolean; + + // Scrollbar + hScrollbar?: boolean; + vScrollbar?: boolean; + fixedScrollbar?: boolean; + hideScrollbar?: boolean; + fadeScrollbar?: boolean; + scrollbarClass?: string; + + // Zoom + zoom?: boolean; + zoomMin?: number; + zoomMax?: number; + doubleTapZoom?: number; + wheelAction?: string; + + // Snap + snap?: any; + snapThreshold?: number; + + // Events + onRefresh?: iScrollEvent; + onBeforeScrollStart?: iScrollEvent; + onScrollStart?: iScrollEvent; + onBeforeScrollMove?: iScrollEvent; + onScrollMove?: iScrollEvent; + onBeforeScrollEnd?: iScrollEvent; + onScrollEnd?: iScrollEvent; + onTouchEnd?: iScrollEvent; + onDestroy?: iScrollEvent; + onZoomStart?: iScrollEvent; + onZoom?: iScrollEvent; + onZoomEnd?: iScrollEvent; +} + +declare class iScroll { + + constructor (element: string, options?: iScrollOptions); + constructor (element: HTMLElement, options?: iScrollOptions); + + destroy(): void; + refresh(): void; + scrollTo(x: number, y: number, time?: number, relative?: boolean): void; + scrollToElement(element: string, time?: number): void; + scrollToElement(element: HTMLElement, time?: number): void; + scrollToPage(pageX: number, pageY: number, time?: number): void; + disable(): void; + enable(): void; + stop(): void; + zoom(x: number, y: number, scale: number, time?: number): void; + isReady(): boolean; +} From 93240145a84580ea88dce844ff9e477c9c287acc Mon Sep 17 00:00:00 2001 From: Christiaan Rakowski Date: Tue, 10 Dec 2013 11:14:44 +0100 Subject: [PATCH 2/4] changed iScroll to IScroll, removed old events from options and added the .on method --- iscroll/iscroll-5-lite.d.ts | 67 +++++++++----------- iscroll/iscroll-5-tests.ts | 21 ++++--- iscroll/iscroll-5.d.ts | 118 ++++++++++++++++-------------------- 3 files changed, 91 insertions(+), 115 deletions(-) diff --git a/iscroll/iscroll-5-lite.d.ts b/iscroll/iscroll-5-lite.d.ts index 1cd83b1dd..5324aecba 100644 --- a/iscroll/iscroll-5-lite.d.ts +++ b/iscroll/iscroll-5-lite.d.ts @@ -1,48 +1,35 @@ -// Type definitions for iScroll Lite 4.1 -// Project: http://cubiq.org/iscroll-4 -// Definitions by: Boris Yankov and Christiaan Rakowski +// Type definitions for iScroll Lite 5 +// Project: http://cubiq.org/iscroll-5-ready-for-beta-test +// Definitions by: Christiaan Rakowski // Definitions: https://github.com/borisyankov/DefinitelyTyped - -interface iScrollEvent { - (e: Event): void; -} - -interface iScrollOptions { - hScroll?: boolean; - vScroll?: boolean; - x?: number; - y?: number; - bounce?: boolean; - bounceLock?: boolean; - momentum?: boolean; - lockDirection?: boolean; - useTransform?: boolean; - useTransition?: boolean; - - // Events - onRefresh?: iScrollEvent; - onBeforeScrollStart?: iScrollEvent; - onScrollStart?: iScrollEvent; - onBeforeScrollMove?: iScrollEvent; - onScrollMove?: iScrollEvent; - onBeforeScrollEnd?: iScrollEvent; - onScrollEnd?: iScrollEvent; - onTouchEnd?: iScrollEvent; - onDestroy?: iScrollEvent; +interface IScrollOptions { + hScroll?: boolean; + vScroll?: boolean; + x?: number; + y?: number; + bounce?: boolean; + bounceLock?: boolean; + momentum?: boolean; + lockDirection?: boolean; + useTransform?: boolean; + useTransition?: boolean; } declare class iScroll { - constructor (element: string, options?: iScrollOptions); - constructor (element: HTMLElement, options?: iScrollOptions); + constructor (element: string, options?: IScrollOptions); + constructor (element: HTMLElement, options?: IScrollOptions); - destroy(): void; - refresh(): void; - scrollTo(x: number, y: number, time?: number, relative?: boolean): void; - scrollToElement(element: string, time?: number): void; - scrollToElement(element: HTMLElement, time?: number): void; - disable(): void; - enable(): void; - stop(): void; + destroy(): void; + refresh(): void; + scrollTo(x: number, y: number, time?: number, relative?: boolean): void; + scrollToElement(element: string, time?: number): void; + scrollToElement(element: HTMLElement, time?: number): void; + disable(): void; + enable(): void; + stop(): void; + + // Events + on: (type: string, fn: () => void) => void; } diff --git a/iscroll/iscroll-5-tests.ts b/iscroll/iscroll-5-tests.ts index 773b62acf..e05761e71 100644 --- a/iscroll/iscroll-5-tests.ts +++ b/iscroll/iscroll-5-tests.ts @@ -1,20 +1,23 @@ -/// +/// -var myScroll1 = new iScroll('wrapper'); -var myScroll2 = new iScroll('wrapper', { hScrollbar: false, vScrollbar: false }); -var myScroll3= new iScroll('wrapper', { +var myScroll1 = new IScroll('#wrapper'); +var myScroll2 = new IScroll('#wrapper', { hScrollbar: false, vScrollbar: false }); +var myScroll3 = new IScroll('#wrapper', { snap: true, momentum: false, hScrollbar: false, vScrollbar: false }); -var myScroll4 = new iScroll('wrapper', { +var myScroll4 = new IScroll('#wrapper', { snap: 'li', momentum: false, hScrollbar: false, vScrollbar: false }); -var myScroll6 = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' }); +var myScroll6 = new IScroll('#wrapper', { scrollbarClass: 'myScrollbar' }); +var myScroll7 = new IScroll('#wrapper', { bounceEasing: 'elastic', bounceTime: 1200 }); + +var myScroll8 = new IScroll('#wrapper', { eventPassthrough: true, scrollX: true, scrollY: false, preventDefault: false }); myScroll1.refresh(); myScroll1.scrollTo(0, 100); @@ -27,5 +30,7 @@ myScroll1.scrollToElement('selectedElement', 250); myScroll1.scrollToElement(document.getElementById('selectedElement')); myScroll1.scrollToElement(document.getElementById('selectedElement'), 250); -var myScroll7 = new iScroll(document.getElementById('wrapper')); -var myScroll8 = new iScroll(document.getElementById('wrapper'), { scrollbarClass: 'myScrollbar' }); \ No newline at end of file +myScroll2.on('scrollStart', function () { console.log('scroll started'); }); + +var myScroll9 = new IScroll(document.getElementById('wrapper')); +var myScroll10 = new IScroll(document.getElementById('wrapper'), { scrollbarClass: 'myScrollbar' }); \ No newline at end of file diff --git a/iscroll/iscroll-5.d.ts b/iscroll/iscroll-5.d.ts index 34234c00a..ded858ecb 100644 --- a/iscroll/iscroll-5.d.ts +++ b/iscroll/iscroll-5.d.ts @@ -1,76 +1,60 @@ -// Type definitions for iScroll 4.2 -// Project: http://cubiq.org/iscroll-4 -// Definitions by: Boris Yankov and Christiaan Rakowski +// Type definitions for iScroll 5 +// Project: http://cubiq.org/iscroll-5-ready-for-beta-test +// Definitions by: Christiaan Rakowski // Definitions: https://github.com/borisyankov/DefinitelyTyped +interface IScrollOptions { + hScroll?: boolean; + vScroll?: boolean; + x?: number; + y?: number; + bounce?: boolean; + bounceLock?: boolean; + momentum?: boolean; + lockDirection?: boolean; + useTransform?: boolean; + useTransition?: boolean; + topOffset?: number; + checkDOMChanges?: boolean; + handleClick?: boolean; -interface iScrollEvent { - (e: Event): void; + // Scrollbar + hScrollbar?: boolean; + vScrollbar?: boolean; + fixedScrollbar?: boolean; + hideScrollbar?: boolean; + fadeScrollbar?: boolean; + scrollbarClass?: string; + + // Zoom + zoom?: boolean; + zoomMin?: number; + zoomMax?: number; + doubleTapZoom?: number; + wheelAction?: string; + + // Snap + snap?: any; + snapThreshold?: number; } -interface iScrollOptions { - hScroll?: boolean; - vScroll?: boolean; - x?: number; - y?: number; - bounce?: boolean; - bounceLock?: boolean; - momentum?: boolean; - lockDirection?: boolean; - useTransform?: boolean; - useTransition?: boolean; - topOffset?: number; - checkDOMChanges?: boolean; - handleClick?: boolean; +declare class IScroll { - // Scrollbar - hScrollbar?: boolean; - vScrollbar?: boolean; - fixedScrollbar?: boolean; - hideScrollbar?: boolean; - fadeScrollbar?: boolean; - scrollbarClass?: string; + constructor (element: string, options?: IScrollOptions); + constructor (element: HTMLElement, options?: IScrollOptions); - // Zoom - zoom?: boolean; - zoomMin?: number; - zoomMax?: number; - doubleTapZoom?: number; - wheelAction?: string; + destroy(): void; + refresh(): void; + scrollTo(x: number, y: number, time?: number, relative?: boolean): void; + scrollToElement(element: string, time?: number): void; + scrollToElement(element: HTMLElement, time?: number): void; + scrollToPage(pageX: number, pageY: number, time?: number): void; + disable(): void; + enable(): void; + stop(): void; + zoom(x: number, y: number, scale: number, time?: number): void; + isReady(): boolean; - // Snap - snap?: any; - snapThreshold?: number; - - // Events - onRefresh?: iScrollEvent; - onBeforeScrollStart?: iScrollEvent; - onScrollStart?: iScrollEvent; - onBeforeScrollMove?: iScrollEvent; - onScrollMove?: iScrollEvent; - onBeforeScrollEnd?: iScrollEvent; - onScrollEnd?: iScrollEvent; - onTouchEnd?: iScrollEvent; - onDestroy?: iScrollEvent; - onZoomStart?: iScrollEvent; - onZoom?: iScrollEvent; - onZoomEnd?: iScrollEvent; -} - -declare class iScroll { - - constructor (element: string, options?: iScrollOptions); - constructor (element: HTMLElement, options?: iScrollOptions); - - destroy(): void; - refresh(): void; - scrollTo(x: number, y: number, time?: number, relative?: boolean): void; - scrollToElement(element: string, time?: number): void; - scrollToElement(element: HTMLElement, time?: number): void; - scrollToPage(pageX: number, pageY: number, time?: number): void; - disable(): void; - enable(): void; - stop(): void; - zoom(x: number, y: number, scale: number, time?: number): void; - isReady(): boolean; + // Events + on: (type: string, fn: () => void) => void; } From 62c6f39a5ac2d57fda00b9145530492952365024 Mon Sep 17 00:00:00 2001 From: Christiaan Rakowski Date: Tue, 10 Dec 2013 14:10:19 +0100 Subject: [PATCH 3/4] added some new options, needs verification --- iscroll/iscroll-5-lite.d.ts | 10 +++++++--- iscroll/iscroll-5.d.ts | 37 ++++++++++++++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/iscroll/iscroll-5-lite.d.ts b/iscroll/iscroll-5-lite.d.ts index 5324aecba..2aef0ce39 100644 --- a/iscroll/iscroll-5-lite.d.ts +++ b/iscroll/iscroll-5-lite.d.ts @@ -4,8 +4,12 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped interface IScrollOptions { - hScroll?: boolean; - vScroll?: boolean; + //hScroll?: boolean; + //vScroll?: boolean; + + scrollX?: boolean; + scrollY?: boolean; + x?: number; y?: number; bounce?: boolean; @@ -13,7 +17,7 @@ interface IScrollOptions { momentum?: boolean; lockDirection?: boolean; useTransform?: boolean; - useTransition?: boolean; + useTransition?: boolean; } declare class iScroll { diff --git a/iscroll/iscroll-5.d.ts b/iscroll/iscroll-5.d.ts index ded858ecb..abd793027 100644 --- a/iscroll/iscroll-5.d.ts +++ b/iscroll/iscroll-5.d.ts @@ -4,8 +4,8 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped interface IScrollOptions { - hScroll?: boolean; - vScroll?: boolean; + //hScroll?: boolean; + //vScroll?: boolean; x?: number; y?: number; bounce?: boolean; @@ -33,9 +33,40 @@ interface IScrollOptions { doubleTapZoom?: number; wheelAction?: string; - // Snap + + ///String or boolean snap?: any; snapThreshold?: number; + + //new in IScroll 5? + + resizeIndicator?: boolean; + mouseWheelSpeed?: number; + startX?: number; + startY?: number; + scrollX?: boolean; + scrollY?: boolean; + directionLockThreshold?: number; + + bounceTime?: number; + + ///String or function + bounceEasing?: any; + + preventDefault?: boolean; + preventDefaultException?: boolean; + + HWCompositing?: boolean; + + freeScroll?: boolean; + + resizePolling?: number; + tap?: boolean; + click?: boolean; + invertWheelDirection?: boolean; + + ///Boolean or string + eventPassthrough?: any; } declare class IScroll { From fe87c6bbae08f8edb2a12cc6876ea10615623d48 Mon Sep 17 00:00:00 2001 From: Christiaan Rakowski Date: Tue, 10 Dec 2013 20:33:09 +0100 Subject: [PATCH 4/4] changes iScroll to IScroll in lite.d.ts --- iscroll/iscroll-5-lite.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iscroll/iscroll-5-lite.d.ts b/iscroll/iscroll-5-lite.d.ts index 2aef0ce39..f22ae6f89 100644 --- a/iscroll/iscroll-5-lite.d.ts +++ b/iscroll/iscroll-5-lite.d.ts @@ -20,7 +20,7 @@ interface IScrollOptions { useTransition?: boolean; } -declare class iScroll { +declare class IScroll { constructor (element: string, options?: IScrollOptions); constructor (element: HTMLElement, options?: IScrollOptions);