annotate src/app/waveform/waves-ui.d.ts @ 221:f3ff5ee994a1

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