annotate src/app/waveform/waves-ui-piper.d.ts @ 289:6a83df5029fe

Use our waves-ui fork.
author Lucas Thompson <dev@lucas.im>
date Fri, 05 May 2017 14:58:22 +0100
parents
children
rev   line source
dev@289 1 /// <reference path="../../../node_modules/@types/node/index.d.ts"/>
dev@289 2 declare const AmbientInstance: WavesUserInterface;
dev@289 3
dev@289 4 declare module 'waves-ui-piper' {
dev@289 5 export default AmbientInstance;
dev@289 6 }
dev@289 7
dev@289 8 interface WavesUserInterface {
dev@289 9 core: Core;
dev@289 10 helpers: any;
dev@289 11 states: any;
dev@289 12 utils: Utilities;
dev@289 13 shapes: any;
dev@289 14 }
dev@289 15
dev@289 16 interface MatrixEntity {
dev@289 17 getColumnCount(): number;
dev@289 18 getColumnHeight(): number;
dev@289 19 getColumn(n: number): Float32Array | number[];
dev@289 20 getStepDuration(): number;
dev@289 21 getStartTime(): number;
dev@289 22 dispose(): void;
dev@289 23 }
dev@289 24
dev@289 25 type TimeContext = any; // TODO
dev@289 26
dev@289 27 interface Area {
dev@289 28 top: number;
dev@289 29 left: number;
dev@289 30 width: number;
dev@289 31 height: number;
dev@289 32 }
dev@289 33
dev@289 34 interface Layer extends NodeJS.EventEmitter {
dev@289 35 start: number;
dev@289 36 offset: number;
dev@289 37 duration: number;
dev@289 38 stretchRatio: number;
dev@289 39 yDomain: number[];
dev@289 40 opacity: number;
dev@289 41 readonly timeToPixel: () => (time: number) => number;
dev@289 42 readonly valueToPixel: () => (value: number) => number;
dev@289 43 readonly items: Element[];
dev@289 44 readonly selectedItems: Element[];
dev@289 45 data: ArrayLike<any> | Object;
dev@289 46 destroy(): void;
dev@289 47 configureTimeContextBehaviour(ctor: ObjectConstructor): void;
dev@289 48 setTimeContext(context: TimeContext): void;
dev@289 49 configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
dev@289 50 accessors: Object,
dev@289 51 options: Object): void;
dev@289 52 configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/,
dev@289 53 accessors: Object,
dev@289 54 options: Object): void;
dev@289 55 setBehaviour(behaviour: Object /* TODO BaseBehavior */): void;
dev@289 56 select(...$items: Element[]);
dev@289 57 unselect(...$items: Element[]);
dev@289 58 toggleSelection(...$items: Element[]);
dev@289 59 edit($items: Element[], dx: number, dy: number, $target: Element): void;
dev@289 60 setContextEditable(bool: boolean): void;
dev@289 61 editContext(dx: number, dy: number, $target: Element): void;
dev@289 62 stretchContext(dx: number, dy: number, $target: Element): void;
dev@289 63 getItemFromDOMElement($el: Element): Element | null;
dev@289 64 getDatumFromItem($item: Element): Object | any[] | null;
dev@289 65 getDatumFromDOMElement($item: Element): Object | any[] | null;
dev@289 66 hasItem($item: Element): boolean;
dev@289 67 hasElement($el: Element): boolean;
dev@289 68 getItemsInArea(area: Area): Element[];
dev@289 69 render(): void;
dev@289 70 update(): void;
dev@289 71 updateContainer(): void;
dev@289 72 updateShapes(): void;
dev@289 73 }
dev@289 74
dev@289 75 interface LayerConstructor {
dev@289 76 new(dataType: 'entity' | 'collection',
dev@289 77 data: ArrayLike<any> | Object,
dev@289 78 options: Object): Layer;
dev@289 79 }
dev@289 80
dev@289 81 interface MatrixEntityConstructor {
dev@289 82 new(): MatrixEntity;
dev@289 83 }
dev@289 84
dev@289 85 interface PrefilledMatrixEntityConstructor {
dev@289 86 new(data: Float32Array[] | number[][],
dev@289 87 startTime: number,
dev@289 88 stepDuration: number): MatrixEntity;
dev@289 89 }
dev@289 90
dev@289 91 interface Utilities {
dev@289 92 MatrixEntity: MatrixEntityConstructor;
dev@289 93 PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
dev@289 94 scales: any;
dev@289 95 }
dev@289 96
dev@289 97 interface Core {
dev@289 98 Layer: LayerConstructor;
dev@289 99 LayerTimeContext: any; // TODO
dev@289 100 Timeline: any; // TODO
dev@289 101 TimelineTimeContext: TimelineTimeContextConstructor;
dev@289 102 }
dev@289 103
dev@289 104 type Timeline = any;
dev@289 105
dev@289 106 interface TimelineTimeContext {
dev@289 107 pixelsPerSecond: number;
dev@289 108 readonly computedPixelsPerSecond: number;
dev@289 109 offset: number;
dev@289 110 zoom: number;
dev@289 111 visibleWidth: number;
dev@289 112 readonly visibleDuration: number;
dev@289 113 maintainVisibleDuration: boolean;
dev@289 114 timeToPixel: (time: number) => number;
dev@289 115 }
dev@289 116
dev@289 117 interface TimelineTimeContextConstructor {
dev@289 118 new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext;
dev@289 119 }