@wemap/viewer 14.8.0-beta.5 → 14.8.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { Coordinates } from '@wemap/geo';
2
2
  import { ClickMode } from './graph/PanoramaPointer';
3
- import { ViewerNode, ViewerOptions, OpenOptions, LocatedPoint, Measurement, VisionGeojsonGraph, ViewerPolygon, ViewerClick } from './types';
3
+ import { ViewerNode, ViewerOptions, OpenOptions, LocatedPoint, Measurement, VisionGeojsonGraph, ViewerPolygon, ViewerLabel, ViewerClick } from './types';
4
4
  /** Events a {@link WemapViewer} emits. Subscribe with `viewer.on(...)`. */
5
5
  export interface ViewerEvents {
6
6
  /** Fired as soon as a move to a node starts, and again with the node still on screen if its image fails. */
@@ -13,8 +13,10 @@ export interface ViewerEvents {
13
13
  locate: LocatedPoint;
14
14
  /** Fired with the distance between two clicks, in `measure` click mode. */
15
15
  measure: Measurement;
16
- /** A click that walks nowhere, in `navigate` mode: above the horizon, or on the floor with no node there. */
16
+ /** A click that walks nowhere, in `navigate` mode: above the horizon, on the floor with no node there, or claimed. */
17
17
  click: ViewerClick;
18
+ /** Where the mouse points on the panorama, in `navigate` mode; null once it leaves it. */
19
+ hover: ViewerClick | null;
18
20
  }
19
21
  /**
20
22
  * Framework-agnostic 360° panorama viewer. Renders the Wemap image graph as an
@@ -43,6 +45,7 @@ export declare class WemapViewer {
43
45
  private pointer;
44
46
  private measureOverlay;
45
47
  private polygonOverlay;
48
+ private labelOverlay;
46
49
  /** First point of a measurement in progress (pixel of the shown image). */
47
50
  private measureStart;
48
51
  /** Bumped on every reset, so a late answer for a cleared measurement is dropped. */
@@ -76,6 +79,8 @@ export declare class WemapViewer {
76
79
  * with `open()`; a failed fetch is retried by the next call.
77
80
  */
78
81
  loadGraph(): Promise<ViewerNode[]>;
82
+ /** Set the vertical field of view, within the zoom range: instantly before anything is on screen, animated after. */
83
+ private zoomTo;
79
84
  /** Look at a heading: instantly before anything is on screen, animated after. */
80
85
  private face;
81
86
  /** The nodes of the image graph (empty until `loadGraph()` or the first `open()` has fetched it). */
@@ -121,6 +126,12 @@ export declare class WemapViewer {
121
126
  * still shows.
122
127
  */
123
128
  setPolygons(polygons: ViewerPolygon[]): void;
129
+ /**
130
+ * Write these labels over the panorama, replacing the ones written before; an
131
+ * empty list clears them. Anchored in the world like the polygons, at a constant
132
+ * size on screen; no depth either.
133
+ */
134
+ setLabels(labels: ViewerLabel[]): void;
124
135
  /** Turn to a compass heading and pitch (degrees), animated the short way round. */
125
136
  lookAt(heading: number, pitch?: number): void;
126
137
  resize(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"WemapViewer.d.ts","sourceRoot":"","sources":["../../src/WemapViewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WemapViewer.d.ts","sourceRoot":"","sources":["../../src/WemapViewer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Scene } from 'three';
2
+ import { ViewerLabel, ViewerNode } from '../types';
3
+ /**
4
+ * Text anchored in the real world, over the panorama, at a constant size on screen.
5
+ * Placed again in the frame of each node shown, like the polygons. No depth: a
6
+ * label behind a wall still shows.
7
+ */
8
+ export declare class LabelOverlay {
9
+ private readonly scene;
10
+ private readonly group;
11
+ private labels;
12
+ private origin;
13
+ constructor(scene: Scene);
14
+ set(labels: ViewerLabel[]): void;
15
+ /** Show or hide them all, e.g. while the camera travels between two nodes. */
16
+ setVisible(visible: boolean): void;
17
+ placeAt(node: ViewerNode | null): void;
18
+ private build;
19
+ private clear;
20
+ dispose(): void;
21
+ }
22
+ //# sourceMappingURL=LabelOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabelOverlay.d.ts","sourceRoot":"","sources":["../../../src/graph/LabelOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8D,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAE/F,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAiCxD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,KAAK,EAAE,KAAK;IAKxB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI;IAKhC,8EAA8E;IAC9E,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAQtC,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,KAAK;IAUb,OAAO,IAAI,IAAI;CAIhB"}
@@ -14,6 +14,10 @@ export interface PanoramaPointerCallbacks {
14
14
  pick: (direction: Vector3) => void;
15
15
  /** `navigate` mode: a click that walks nowhere (above the horizon, or no node there), in this view direction. */
16
16
  miss: (direction: Vector3) => void;
17
+ /** `navigate` mode: whether the host takes a click in this view direction, which then walks nowhere. */
18
+ claims: (direction: Vector3) => boolean;
19
+ /** `navigate` mode: the mouse points in this view direction, or nowhere (null) once it leaves the panorama. */
20
+ hover: (direction: Vector3 | null) => void;
17
21
  }
18
22
  /**
19
23
  * Pointer interaction on the panorama. A drag that looks around is never a click.
@@ -1 +1 @@
1
- {"version":3,"file":"PanoramaPointer.d.ts","sourceRoot":"","sources":["../../../src/graph/PanoramaPointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACX,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA8B3C,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IACjC,6DAA6D;IAC7D,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,UAAU,GAAG,IAAI,CAAC;IAChD,sEAAsE;IACtE,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,+FAA+F;IAC/F,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,iHAAiH;IACjH,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,yBAAyB;IACzB,IAAI,EAAE,SAAS,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,MAAM,CAA2B;gBAGvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,wBAAwB,EACnC,IAAI,UAAO;IA6Bb,iFAAiF;IACjF,IAAI,IAAI,IAAI;IAOZ,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAwB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,+DAA+D;IAC/D,OAAO,CAAC,GAAG;IASX,sFAAsF;IACtF,OAAO,CAAC,MAAM;CAoCf"}
1
+ {"version":3,"file":"PanoramaPointer.d.ts","sourceRoot":"","sources":["../../../src/graph/PanoramaPointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACX,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA8B3C,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IACjC,6DAA6D;IAC7D,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,UAAU,GAAG,IAAI,CAAC;IAChD,sEAAsE;IACtE,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,+FAA+F;IAC/F,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,iHAAiH;IACjH,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,wGAAwG;IACxG,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC;IACxC,+GAA+G;IAC/G,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,yBAAyB;IACzB,IAAI,EAAE,SAAS,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,MAAM,CAA2B;gBAGvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,wBAAwB,EACnC,IAAI,UAAO;IA6Bb,iFAAiF;IACjF,IAAI,IAAI,IAAI;IAOZ,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAwB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG7B;IAEF,+DAA+D;IAC/D,OAAO,CAAC,GAAG;IASX,sFAAsF;IACtF,OAAO,CAAC,MAAM;CA6Cf"}
@@ -13,6 +13,8 @@ export declare class PolygonOverlay {
13
13
  private origin;
14
14
  constructor(scene: Scene);
15
15
  set(polygons: ViewerPolygon[]): void;
16
+ /** Show or hide them all, e.g. while the camera travels between two nodes. */
17
+ setVisible(visible: boolean): void;
16
18
  /** Place the polygons in the frame of `node`; nothing to do if it already is the origin. */
17
19
  placeAt(node: ViewerNode | null): void;
18
20
  private build;
@@ -1 +1 @@
1
- {"version":3,"file":"PolygonOverlay.d.ts","sourceRoot":"","sources":["../../../src/graph/PolygonOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,KAAK,EACX,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAyB1D;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,KAAK,EAAE,KAAK;IAKxB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAKpC,4FAA4F;IAC5F,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAQtC,OAAO,CAAC,KAAK;IAsCb,OAAO,CAAC,KAAK;IAUb,OAAO,IAAI,IAAI;CAIhB"}
1
+ {"version":3,"file":"PolygonOverlay.d.ts","sourceRoot":"","sources":["../../../src/graph/PolygonOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,KAAK,EACX,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAyB1D;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,KAAK,EAAE,KAAK;IAKxB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAKpC,8EAA8E;IAC9E,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,4FAA4F;IAC5F,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAQtC,OAAO,CAAC,KAAK;IAsCb,OAAO,CAAC,KAAK;IAUb,OAAO,IAAI,IAAI;CAIhB"}
@@ -29,6 +29,16 @@ export interface ViewerOptions {
29
29
  * cross on the nearest node; clicking walks there. Defaults to true.
30
30
  */
31
31
  navigation?: boolean;
32
+ /**
33
+ * Whether walking from one node to another is possible, e.g. false when a wall
34
+ * stands between them: the floor pointer then targets the nearest walkable node.
35
+ */
36
+ walkable?: (from: ViewerNode, to: ViewerNode) => boolean;
37
+ /**
38
+ * Whether a click in this direction is the host's, e.g. on something it draws:
39
+ * it then walks nowhere and is reported as a `click`, and the floor pointer hides.
40
+ */
41
+ claimClick?: (click: ViewerClick) => boolean;
32
42
  /**
33
43
  * Fired as soon as a move to a node starts (programmatically or by click), and
34
44
  * again with the node still on screen if the new image fails to load.
@@ -88,12 +98,24 @@ export interface ViewerPolygon {
88
98
  /** Outline colour (CSS). Defaults to `color`. */
89
99
  outlineColor?: string;
90
100
  }
101
+ /** Text anchored in the real world, drawn over the panorama. See {@link WemapViewer.setLabels}. */
102
+ export interface ViewerLabel {
103
+ /** Where the text is centred. Needs an altitude, in the same reference as the graph nodes'. */
104
+ coordinates: Coordinates;
105
+ text: string;
106
+ /** Text colour (CSS). Defaults to a near-black ink. */
107
+ color?: string;
108
+ /** Halo colour around the text (CSS). Defaults to white. */
109
+ haloColor?: string;
110
+ }
91
111
  /** Where {@link WemapViewer.open} makes the user look, in degrees. */
92
112
  export interface OpenOptions {
93
113
  /** Look heading, 0 = north, 90 = east. Omit to keep the current look direction. */
94
114
  heading?: number;
95
115
  /** Look pitch, positive up. Defaults to 0 when `heading` is given. */
96
116
  pitch?: number;
117
+ /** Vertical field of view, degrees, within the zoom range. Omit to keep the current one. */
118
+ fov?: number;
97
119
  }
98
120
  export interface VisionGraph {
99
121
  images: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,yEAAyE;IACzE,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,uFAAuF;IACvF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,sFAAsF;IACtF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,8FAA8F;AAC9F,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,WAAW,EAAE,WAAW,CAAC;IACzB,wCAAwC;IACxC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,wGAAwG;IACxG,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;QACzE,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,KAAK,EAAE,KAAK,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC1B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAC5D;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;IACF,QAAQ,EAAE;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC;CACrF;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;CACzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wemap/viewer",
3
- "version": "14.8.0-beta.5",
3
+ "version": "14.8.0-beta.7",
4
4
  "description": "Framework-agnostic 360° panorama viewer for Wemap livemaps, with image-graph navigation.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Wemap SAS",
@@ -43,8 +43,8 @@
43
43
  ],
44
44
  "dependencies": {
45
45
  "@tweenjs/tween.js": "^18.6.4",
46
- "@wemap/core": "14.8.0-beta.5",
47
- "@wemap/geo": "14.8.0-beta.5",
46
+ "@wemap/core": "14.8.0-beta.7",
47
+ "@wemap/geo": "14.8.0-beta.7",
48
48
  "three": "^0.159.0"
49
49
  },
50
50
  "devDependencies": {