changeset 374:2565f55f0ca7

Update waves-ui types with LayerTimeContext and linear scale
author Lucas Thompson <dev@lucas.im>
date Wed, 31 May 2017 12:35:35 +0100
parents 2df7b3722eb9
children 9f9d5731a941
files src/app/visualisations/waves-ui-piper.d.ts
diffstat 1 files changed, 29 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/app/visualisations/waves-ui-piper.d.ts	Wed May 31 02:44:14 2017 +0100
+++ b/src/app/visualisations/waves-ui-piper.d.ts	Wed May 31 12:35:35 2017 +0100
@@ -22,8 +22,6 @@
   dispose(): void;
 }
 
-type TimeContext = any; // TODO
-
 interface Area {
   top: number;
   left: number;
@@ -38,7 +36,7 @@
   stretchRatio: number;
   yDomain: number[];
   opacity: number;
-  timeContext: any; // TODO
+  timeContext: LayerTimeContext;
   readonly timeToPixel: () => (time: number) => number;
   readonly valueToPixel: () => (value: number) => number;
   readonly items: Element[];
@@ -46,7 +44,7 @@
   data: ArrayLike<any> | Object;
   destroy(): void;
   configureTimeContextBehaviour(ctor: ObjectConstructor): void;
-  setTimeContext(context: TimeContext): void;
+  setTimeContext(context: LayerTimeContext): void;
   configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
                  accessors: Object,
                  options: Object): void;
@@ -92,15 +90,39 @@
 interface Utilities {
   MatrixEntity: MatrixEntityConstructor;
   PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
-  scales: any;
+  scales: {
+    linear: Scale;
+  };
 }
 
 type Timeline = any;
 type Track = any; // TODO
 
+interface Scale {
+  (value: number): number;
+  invert(): (value: number) => number;
+  domain(arr?: [number, number]): Scale;
+  range(arr?: [number, number]): Scale;
+}
+
+interface LayerTimeContext {
+  start: number;
+  duration: number;
+  offset: number;
+  stretchRatio: number;
+  parent: TimelineTimeContext;
+  timeToPixel(): Scale;
+  pixelToTime(px: number): number;
+  clone(): LayerTimeContext;
+}
+
+interface LayerTimeContextConstructor {
+  new(parent: TimelineTimeContext): LayerTimeContext;
+}
+
 interface Core {
   Layer: LayerConstructor;
-  LayerTimeContext: any; // TODO
+  LayerTimeContext: LayerTimeContextConstructor;
   Timeline: Timeline; // TODO
   TimelineTimeContext: TimelineTimeContextConstructor;
 }
@@ -113,7 +135,7 @@
   visibleWidth: number;
   readonly visibleDuration: number;
   maintainVisibleDuration: boolean;
-  timeToPixel: (time: number) => number;
+  timeToPixel: Scale;
 }
 
 interface TimelineTimeContextConstructor {