annotate src/app/visualisations/waves-ui-piper.d.ts @ 509:041468f553e1 tip master

Merge pull request #57 from LucasThompson/fix/session-stack-max-call-stack Fix accidental recursion in PersistentStack
author Lucas Thompson <LucasThompson@users.noreply.github.com>
date Mon, 27 Nov 2017 11:04:30 +0000
parents 511fafd13873
children
rev   line source
dev@360 1 /// <reference path="../../../node_modules/@types/node/index.d.ts"/>
dev@360 2 declare const AmbientInstance: WavesUserInterface;
dev@360 3
dev@360 4 declare module 'waves-ui-piper' {
dev@360 5 export default AmbientInstance;
dev@360 6 }
dev@360 7
dev@360 8 interface WavesUserInterface {
dev@360 9 core: Core;
dev@360 10 helpers: any;
dev@360 11 states: any;
dev@360 12 utils: Utilities;
dev@360 13 shapes: any;
dev@360 14 }
dev@360 15
dev@360 16 interface MatrixEntity {
dev@360 17 getColumnCount(): number;
dev@360 18 getColumnHeight(): number;
dev@360 19 getColumn(n: number): Float32Array | number[];
dev@360 20 getStepDuration(): number;
dev@360 21 getStartTime(): number;
dev@360 22 dispose(): void;
dev@360 23 }
dev@360 24
dev@360 25 interface Area {
dev@360 26 top: number;
dev@360 27 left: number;
dev@360 28 width: number;
dev@360 29 height: number;
dev@360 30 }
dev@360 31
dev@360 32 interface Layer extends NodeJS.EventEmitter {
dev@360 33 start: number;
dev@360 34 offset: number;
dev@360 35 duration: number;
dev@360 36 stretchRatio: number;
dev@360 37 yDomain: number[];
dev@360 38 opacity: number;
dev@374 39 timeContext: LayerTimeContext;
dev@360 40 readonly timeToPixel: () => (time: number) => number;
dev@360 41 readonly valueToPixel: () => (value: number) => number;
dev@360 42 readonly items: Element[];
dev@360 43 readonly selectedItems: Element[];
dev@360 44 data: ArrayLike<any> | Object;
dev@360 45 destroy(): void;
dev@360 46 configureTimeContextBehaviour(ctor: ObjectConstructor): void;
dev@374 47 setTimeContext(context: LayerTimeContext): void;
dev@360 48 configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
dev@360 49 accessors: Object,
dev@360 50 options: Object): void;
dev@360 51 configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/,
dev@360 52 accessors: Object,
dev@360 53 options: Object): void;
dev@360 54 setBehaviour(behaviour: Object /* TODO BaseBehavior */): void;
dev@360 55 select(...$items: Element[]);
dev@360 56 unselect(...$items: Element[]);
dev@360 57 toggleSelection(...$items: Element[]);
dev@360 58 edit($items: Element[], dx: number, dy: number, $target: Element): void;
dev@360 59 setContextEditable(bool: boolean): void;
dev@360 60 editContext(dx: number, dy: number, $target: Element): void;
dev@360 61 stretchContext(dx: number, dy: number, $target: Element): void;
dev@360 62 getItemFromDOMElement($el: Element): Element | null;
dev@360 63 getDatumFromItem($item: Element): Object | any[] | null;
dev@360 64 getDatumFromDOMElement($item: Element): Object | any[] | null;
dev@360 65 hasItem($item: Element): boolean;
dev@360 66 hasElement($el: Element): boolean;
dev@360 67 getItemsInArea(area: Area): Element[];
dev@360 68 render(): void;
dev@360 69 update(): void;
dev@360 70 updateContainer(): void;
dev@360 71 updateShapes(): void;
dev@360 72 }
dev@360 73
dev@391 74 interface HighlightLayer extends Layer {
dev@391 75 currentPosition: number;
dev@391 76 }
dev@391 77
dev@360 78 interface LayerConstructor {
dev@360 79 new(dataType: 'entity' | 'collection',
dev@360 80 data: ArrayLike<any> | Object,
dev@360 81 options: Object): Layer;
dev@360 82 }
dev@360 83
dev@360 84 interface MatrixEntityConstructor {
dev@360 85 new(): MatrixEntity;
dev@360 86 }
dev@360 87
dev@360 88 interface PrefilledMatrixEntityConstructor {
dev@360 89 new(data: Float32Array[] | number[][],
dev@360 90 startTime: number,
dev@360 91 stepDuration: number): MatrixEntity;
dev@360 92 }
dev@360 93
dev@360 94 interface Utilities {
dev@360 95 MatrixEntity: MatrixEntityConstructor;
dev@360 96 PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
dev@374 97 scales: {
dev@375 98 linear: () => Scale;
dev@374 99 };
dev@360 100 }
dev@360 101
dev@360 102 type Timeline = any;
dev@360 103 type Track = any; // TODO
dev@360 104
dev@374 105 interface Scale {
dev@374 106 (value: number): number;
dev@374 107 invert(): (value: number) => number;
dev@374 108 domain(arr?: [number, number]): Scale;
dev@374 109 range(arr?: [number, number]): Scale;
dev@374 110 }
dev@374 111
dev@374 112 interface LayerTimeContext {
dev@374 113 start: number;
dev@374 114 duration: number;
dev@374 115 offset: number;
dev@374 116 stretchRatio: number;
dev@374 117 parent: TimelineTimeContext;
dev@374 118 timeToPixel(): Scale;
dev@374 119 pixelToTime(px: number): number;
dev@374 120 clone(): LayerTimeContext;
dev@374 121 }
dev@374 122
dev@374 123 interface LayerTimeContextConstructor {
dev@374 124 new(parent: TimelineTimeContext): LayerTimeContext;
dev@374 125 }
dev@374 126
dev@360 127 interface Core {
dev@360 128 Layer: LayerConstructor;
dev@374 129 LayerTimeContext: LayerTimeContextConstructor;
dev@360 130 Timeline: Timeline; // TODO
dev@360 131 TimelineTimeContext: TimelineTimeContextConstructor;
dev@360 132 }
dev@360 133
dev@360 134 interface TimelineTimeContext {
dev@360 135 pixelsPerSecond: number;
dev@360 136 readonly computedPixelsPerSecond: number;
dev@360 137 offset: number;
dev@360 138 zoom: number;
dev@360 139 visibleWidth: number;
dev@360 140 readonly visibleDuration: number;
dev@360 141 maintainVisibleDuration: boolean;
dev@374 142 timeToPixel: Scale;
dev@360 143 }
dev@360 144
dev@360 145 interface TimelineTimeContextConstructor {
dev@360 146 new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext;
dev@360 147 }