@wildebeest/scroll
Advanced tools
Comparing version 0.1.2 to 0.2.0
{ | ||
"name": "@wildebeest/scroll", | ||
"version": "0.1.2", | ||
"version": "0.2.0", | ||
"description": "Scroll element with custom scroll bar", | ||
@@ -8,3 +8,4 @@ "main": "dist/index.js", | ||
"scripts": { | ||
"build": "tsc --declaration" | ||
"build": "tsc --declaration", | ||
"test": "jest" | ||
}, | ||
@@ -16,7 +17,11 @@ "repository": { | ||
"dependencies": { | ||
"@wildebeest/common": "^0.1.0", | ||
"@wildebeest/touch": "^0.1.0", | ||
"@wildebeest/drag": "^0.1.0" | ||
"@wildebeest/common": "^0.2.0", | ||
"@wildebeest/drag": "^0.1.1", | ||
"@wildebeest/js-modules": "^0.1.0", | ||
"@wildebeest/touch": "^0.2.0" | ||
}, | ||
"devDependencies": { | ||
"@types/jest": "^24.0.11", | ||
"jest": "^24.7.1", | ||
"ts-jest": "^24.0.2", | ||
"typescript": "^3.4.3" | ||
@@ -23,0 +28,0 @@ }, |
@@ -25,3 +25,3 @@ import { ScrollMark } from "./ScrollMark"; | ||
this.scrollTo(percentage); | ||
}) | ||
}); | ||
} | ||
@@ -52,2 +52,6 @@ | ||
let height: number = this.element.offsetHeight; | ||
if (height == 0) { | ||
this.mark.setTop(0); | ||
return; | ||
} | ||
let position: number = this.mark.getTop(); | ||
@@ -54,0 +58,0 @@ this.mark.setTop(position + value / height * 100); |
@@ -29,3 +29,6 @@ import { EmitterService, DomService } from "@wildebeest/common"; | ||
this.domService.insert(scrollMark.getElement(), scrollBarElement); | ||
return new ScrollBar(scrollBarElement, scrollMark, this.emitterService.createEmitter()); | ||
if (!data.emitter) { | ||
data.emitter = this.emitterService.createEmitter(); | ||
} | ||
return new ScrollBar(scrollBarElement, scrollMark, data.emitter); | ||
} | ||
@@ -32,0 +35,0 @@ |
@@ -1,2 +0,2 @@ | ||
import { DomService, EmitterService } from "@wildebeest/common"; | ||
import { DomService, EmitterService, Emitter } from "@wildebeest/common"; | ||
import { TouchElement } from "@wildebeest/touch"; | ||
@@ -13,6 +13,8 @@ import { ScrollBar } from "./ScrollBar"; | ||
protected emitterService: EmitterService; | ||
protected emitter: Emitter; | ||
protected scrollBar: ScrollBar; | ||
protected touchElement: TouchElement; | ||
protected element: any; | ||
protected pane: any; | ||
protected element: HTMLElement; | ||
protected pane: HTMLElement; | ||
protected config: any; | ||
@@ -24,18 +26,21 @@ constructor(@inject(DomService) domService: DomService, @inject('Builder') @named('scroll-bar') scrollBarBuilder: ScrollBarBuilder, @inject(EmitterService) emitterService: EmitterService) | ||
this.emitterService = emitterService; | ||
this.emitter = this.emitterService.createEmitter(); | ||
} | ||
initialize(element: any): void | ||
initialize(element: HTMLElement, config: any = {}): void | ||
{ | ||
this.element = element; | ||
this.touchElement = new TouchElement(this.element, this.emitterService.createEmitter()); | ||
this.pane = this.element.firstElementChild; | ||
this.config = config; | ||
this.touchElement = new TouchElement(this.element, this.emitter); | ||
this.pane = this.element.firstElementChild as HTMLElement; | ||
if (this.element.children.length > 1) { | ||
console.log(this.element.childNodes); | ||
throw "Scroll Box cannot have more then 1 child element"; | ||
} | ||
this.scrollBar = this.scrollBarBuilder.build(); | ||
this.scrollBar = this.scrollBarBuilder.build({ | ||
emitter: this.emitter | ||
}); | ||
this.domService.insert(this.scrollBar.getElement(), this.element); | ||
this.element.addEventListener('mousewheel', (event: any) => { | ||
this.element.addEventListener('mousewheel', (event: WheelEvent) => { | ||
event.preventDefault(); | ||
@@ -57,3 +62,3 @@ this.scrollBar.scrollBy(event.deltaY); | ||
public scrollTo(interpolatePercentage: number): void | ||
protected scrollTo(interpolatePercentage: number): void | ||
{ | ||
@@ -71,2 +76,12 @@ this.pane.style.top = (this.pane.offsetHeight - this.element.offsetHeight) * -1 * interpolatePercentage + "px"; | ||
} | ||
public getBar(): ScrollBar | ||
{ | ||
return this.scrollBar; | ||
} | ||
public getPane(): HTMLElement | ||
{ | ||
return this.pane; | ||
} | ||
} |
@@ -16,3 +16,3 @@ import { Emitter, EmitterService } from "@wildebeest/common"; | ||
let dragable: DragableElement = new DragableElement(this.element, emitterService.createEmitter()); | ||
let dragable: DragableElement = new DragableElement(this.element, this.emitter); | ||
dragable.getEmitter().on('drag', (event: any) => { | ||
@@ -19,0 +19,0 @@ this.emitter.emit('drag', event); |
@@ -19,3 +19,3 @@ import { Module } from "@wildebeest/js-modules"; | ||
container.bind<interfaces.Factory<Builder>>('Factory<Builer>').toFactory<Builder>((context: interfaces.Context) => { | ||
container.bind<interfaces.Factory<Builder>>('Factory<Builder>').toFactory<Builder>((context: interfaces.Context) => { | ||
return (name: string) => { | ||
@@ -22,0 +22,0 @@ return context.container.getNamed('Builder', name); |
38579
38
673
4
4
+ Added@wildebeest/touch@0.2.1(transitive)
- Removed@wildebeest/common@0.1.1(transitive)
- Removed@wildebeest/touch@0.1.0(transitive)
Updated@wildebeest/common@^0.2.0
Updated@wildebeest/drag@^0.1.1
Updated@wildebeest/touch@^0.2.0