Mercurial > hg > ugly-duckling
changeset 127:2b88e4d78ec6
First pass at Layer type definition.
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Wed, 15 Mar 2017 15:21:00 +0000 |
parents | b08058753a06 |
children | 576e7e0246cb |
files | src/app/waveform/waves-ui.d.ts |
diffstat | 1 files changed, 64 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/app/waveform/waves-ui.d.ts Wed Mar 15 14:29:11 2017 +0000 +++ b/src/app/waveform/waves-ui.d.ts Wed Mar 15 15:21:00 2017 +0000 @@ -1,3 +1,4 @@ +import EventEmitter = NodeJS.EventEmitter; /** * Created by lucas on 01/12/2016. */ @@ -8,7 +9,7 @@ } interface WavesUserInterface { - core: any; + core: Core; helpers: any; states: any; utils: Utilities; @@ -22,6 +23,62 @@ getStartTime(): number; } +type TimeContext = any; // TODO + +interface Area { + top: number; + left: number; + width: number; + height: number; +} + +interface Layer extends EventEmitter { + destroy(): void; + configureTimeContextBehaviour(ctor: ObjectConstructor): void; + start: number; + offset: number; + duration: number; + stretchRatio: number; + yDomain: number[]; + opacity: number; + readonly timeToPixel: () => (time: number) => number; + readonly valueToPixel: () => (value: number) => number; + readonly items: Element[]; + data: ArrayLike<any> | Object; + setTimeContext(context: TimeContext): void; + configureShape(ctor: ObjectConstructor /* TODO BaseShape*/, + accessors: Object, + options: Object): void; + configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/, + accessors: Object, + options: Object): void; + setBehaviour(behaviour: Object /* TODO BaseBehavior */): void; + readonly selectedItems: Element[]; + select(...$items: Element[]); + unselect(...$items: Element[]); + toggleSelection(...$items: Element[]); + edit($items: Element[], dx: number, dy: number, $target: Element): void; + setContextEditable(bool: boolean): void; + editContext(dx: number, dy: number, $target: Element): void; + stretchContext(dx: number, dy: number, $target: Element): void; + getItemFromDOMElement($el: Element): Element | null; + getDatumFromItem($item: Element): Object | any[] | null; + getDatumFromDOMElement($item: Element): Object | any[] | null; + hasItem($item: Element): boolean; + hasElement($el: Element): boolean; + getItemsInArea(area: Area): Element[]; + render(): void; + update(): void; + updateContainer(): void; + updateShapes(): void; +} + +interface LayerConstructor { + new(dataType: "entity" | "collection", + data: ArrayLike<any> | Object, + options: Object): Layer; +} + interface MatrixEntityConstructor { new(): MatrixEntity; } @@ -37,3 +94,9 @@ PrefilledMatrixEntity: PrefilledMatrixEntityConstructor; scales: any; } + +interface Core { + Layer: LayerConstructor; + LayerTimeContext: any; // TODO + Timeline: any; // TODO +}