@qispace/vue3-player 0.0.11 → 0.0.13

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.
Files changed (66) hide show
  1. package/dist/components/apartmentChooser/QiApartmentChooser.vue.d.ts +1 -471
  2. package/dist/components/apartmentChooser/QiApartmentChooserNavigation.vue.d.ts +6 -6
  3. package/dist/components/apartmentChooser/QiApartmentChooserRaster.vue.d.ts +1 -151
  4. package/dist/components/apartmentChooser/QiApartmentChooserRotator.vue.d.ts +5 -7
  5. package/dist/components/apartmentChooser/QiApartmentChooserSvg.vue.d.ts +1 -124
  6. package/dist/components/buildingPicker/QiBuildingChooser.vue.d.ts +8 -313
  7. package/dist/components/buildingPicker/QiBuildingChooserRaster.vue.d.ts +1 -154
  8. package/dist/components/buildingPicker/QiBuildingChooserRasterOverlay.vue.d.ts +5 -6
  9. package/dist/components/buildingPicker/QiBuildingChooserSceneImageStack.vue.d.ts +5 -6
  10. package/dist/components/buildingPicker/QiBuildingChooserSunSimControl.vue.d.ts +2 -2
  11. package/dist/components/buildingPicker/QiBuildingChooserSvg.vue.d.ts +1 -156
  12. package/dist/components/shared/QiZoomBox.vue.d.ts +2 -2
  13. package/dist/components/virtualTourV2/FloorLevel.vue.d.ts +2 -2
  14. package/dist/components/virtualTourV2/FullScreenButton.vue.d.ts +1 -1
  15. package/dist/components/virtualTourV2/InteriorSelector.vue.d.ts +1 -1
  16. package/dist/components/virtualTourV2/Player.vue.d.ts +12 -12
  17. package/dist/components/virtualTourV2/SettingsUI.vue.d.ts +7 -7
  18. package/dist/components/virtualTourV2/Tutorial.vue.d.ts +2 -2
  19. package/dist/components/virtualTourV2/ViewModeToggle.vue.d.ts +1 -1
  20. package/dist/components/virtualTourV2/VirtualTourV2.vue.d.ts +29 -31
  21. package/dist/components/virtualTourV2/index.d.ts +0 -16
  22. package/dist/components/virtualTourV2/minimapv2/MiniMapMap.vue.d.ts +1 -1
  23. package/dist/components/virtualTourV2/minimapv2/MiniMapV2.vue.d.ts +2 -2
  24. package/dist/components/virtualTourV2/minimapv2/Moveable.vue.d.ts +1 -1
  25. package/dist/components/virtualTourV2/minimapv2/SunsimulationSlider.vue.d.ts +1 -1
  26. package/dist/index.d.ts +448 -0
  27. package/dist/lib/index.d.ts +3 -0
  28. package/dist/style.css +1 -0
  29. package/dist/{vue3-player.mjs → vue3-player.js} +3257 -3629
  30. package/dist/vue3-player.umd.cjs +1 -0
  31. package/package.json +33 -16
  32. package/src/components/buildingPicker/QiBuildingChooser.vue +7 -7
  33. package/src/components/virtualTourV2/Player.vue +64 -64
  34. package/src/components/virtualTourV2/index.ts +20 -17
  35. package/dist/components/virtualTourV2/ManualSlideShow.vue.d.ts +0 -73
  36. package/dist/components/virtualTourV2/ManualSlideShowPlayer.vue.d.ts +0 -15
  37. package/dist/components/virtualTourV2/ScrollHelper.vue.d.ts +0 -16
  38. package/dist/entry.css +0 -1
  39. package/dist/vue3-player.umd.js +0 -2
  40. package/src/lib/apartmentChooser/BuildingViewerModel.js +0 -60
  41. package/src/lib/apartmentChooser/CircularSlideshow.js +0 -66
  42. package/src/lib/apartmentChooser/RotationStep.js +0 -31
  43. package/src/lib/apartmentChooser/SceneRotator.js +0 -25
  44. package/src/lib/apartmentChooser/index.js +0 -3
  45. package/src/lib/apartmentChooser/throttle.js +0 -15
  46. package/src/lib/buildingPicker/BuildingMap.js +0 -24
  47. package/src/lib/buildingPicker/BuildingPickerResourceProvider.js +0 -97
  48. package/src/lib/buildingPicker/CanvasRaster.js +0 -29
  49. package/src/lib/buildingPicker/DayOfYearSelector.js +0 -36
  50. package/src/lib/buildingPicker/SampleRaster.js +0 -14
  51. package/src/lib/buildingPicker/index.js +0 -5
  52. package/src/lib/index.js +0 -3
  53. package/src/lib/shared/BatchLoadTracker.js +0 -52
  54. package/src/lib/shared/I18N.js +0 -65
  55. package/src/lib/shared/ResourceLoader.js +0 -33
  56. package/src/lib/shared/index.js +0 -3
  57. package/src/lib/virtualTour/CameraSnapshot.js +0 -42
  58. package/src/lib/virtualTour/FullscreenModel.js +0 -69
  59. package/src/lib/virtualTour/textures/arrow.png +0 -0
  60. package/src/lib/virtualTour/textures/compass-bg.png +0 -0
  61. package/src/lib/virtualTour/textures/compass-needle.png +0 -0
  62. package/src/lib/virtualTour/textures/compass-north.png +0 -0
  63. package/src/lib/virtualTour/textures/floor-1.svg +0 -4
  64. package/src/lib/virtualTour/textures/floor-2.svg +0 -4
  65. package/src/lib/virtualTour/textures/marker.png +0 -0
  66. package/src/lib/virtualTour/textures/tod-sun.png +0 -0
@@ -39,18 +39,18 @@
39
39
  </div>
40
40
  </template>
41
41
  <script>
42
- import { PlayerV2 } from "@qispace/player-core";
43
- import { isBrowser } from "browser-or-node";
42
+ import { PlayerV2 } from '@qispace/player-core'
43
+ import { isBrowser } from 'browser-or-node'
44
44
 
45
45
  export default {
46
- name: "Player",
46
+ name: 'Player',
47
47
  emits: [
48
- "new-camera-callback",
49
- "new-rotation-callback",
50
- "new-floor-callback",
51
- "new-fov-callback",
52
- "playerApi-callback",
53
- "new-size-callback",
48
+ 'new-camera-callback',
49
+ 'new-rotation-callback',
50
+ 'new-floor-callback',
51
+ 'new-fov-callback',
52
+ 'playerApi-callback',
53
+ 'new-size-callback',
54
54
  ],
55
55
  props: {
56
56
  fileLoader: {
@@ -72,141 +72,141 @@ export default {
72
72
  playerFoV: 0,
73
73
  playerWidth: 0,
74
74
  playerHeight: 0,
75
- };
75
+ }
76
76
  },
77
77
  watch: {
78
78
  async rootUrl(newValue) {
79
79
  if (this.playerAPI) {
80
- await this.playerAPI.loadInterior(newValue, this.playerCamera, false);
81
- this.setPlayerSize();
80
+ await this.playerAPI.loadInterior(newValue, this.playerCamera, false)
81
+ this.setPlayerSize()
82
82
  }
83
83
  },
84
84
  fileLoader: {
85
85
  async handler(newValue) {
86
86
  if (this.playerAPI) {
87
- await this.playerAPI.loadInterior(this.rootUrl, undefined, false);
88
- this.setPlayerSize();
87
+ await this.playerAPI.loadInterior(this.rootUrl, undefined, false)
88
+ this.setPlayerSize()
89
89
  }
90
90
  },
91
91
  deep: true,
92
92
  },
93
93
  currentCameraId(newCameraId) {
94
94
  if (this.playerAPI) {
95
- this.playerCamera = newCameraId;
96
- this.playerAPI.goToCamera(newCameraId, true);
95
+ this.playerCamera = newCameraId
96
+ this.playerAPI.goToCamera(newCameraId, true)
97
97
  }
98
98
  },
99
99
  playerAPI(playerAPI) {
100
- this.$emit("playerApi-callback", playerAPI);
101
- const firstCamera = playerAPI.getCurrentCamera();
100
+ this.$emit('playerApi-callback', playerAPI)
101
+ const firstCamera = playerAPI.getCurrentCamera()
102
102
  if (firstCamera) {
103
- this.playerCamera = firstCamera.id;
103
+ this.playerCamera = firstCamera.id
104
104
  }
105
105
  },
106
106
  },
107
107
  async mounted() {
108
- window.addEventListener("resize", this.setPlayerSize);
109
- this.setPlayerSize();
108
+ window.addEventListener('resize', this.setPlayerSize)
109
+ this.setPlayerSize()
110
110
 
111
111
  const newRotation = (newRotation) => {
112
- const rot = newRotation + 0;
112
+ const rot = newRotation + 0
113
113
 
114
- this.$emit("new-rotation-callback", rot);
115
- this.playerRotation = rot;
116
- };
114
+ this.$emit('new-rotation-callback', rot)
115
+ this.playerRotation = rot
116
+ }
117
117
 
118
118
  const newFOV = (newFov) => {
119
- this.$emit("new-fov-callback", newFov);
120
- this.playerFoV = newFov;
121
- };
119
+ this.$emit('new-fov-callback', newFov)
120
+ this.playerFoV = newFov
121
+ }
122
122
 
123
123
  const newCamera = (newCamera) => {
124
- this.$emit("new-camera-callback", newCamera.id);
125
- this.$emit("new-floor-callback", newCamera.floorLevel);
124
+ this.$emit('new-camera-callback', newCamera.id)
125
+ this.$emit('new-floor-callback', newCamera.floorLevel)
126
126
 
127
127
  if (this.playerAPI) {
128
- this.playerAPI.resetMarkerBehaviour(0);
128
+ this.playerAPI.resetMarkerBehaviour(0)
129
129
  }
130
130
 
131
- this.playerCamera = newCamera.id;
132
- };
131
+ this.playerCamera = newCamera.id
132
+ }
133
133
 
134
134
  const callbacks = {
135
135
  initialized: () => {
136
- this.playerAPI = PlayerV2.Main.getPlayerAPI();
137
- const firstCamera = this.playerAPI.getCurrentCamera();
138
- if (firstCamera) this.playerCamera = firstCamera.id;
139
- this.$emit("new-camera-callback", this.playerCamera);
136
+ this.playerAPI = PlayerV2.Main.getPlayerAPI()
137
+ const firstCamera = this.playerAPI.getCurrentCamera()
138
+ if (firstCamera) this.playerCamera = firstCamera.id
139
+ this.$emit('new-camera-callback', this.playerCamera)
140
140
  },
141
141
  newCamera,
142
142
  newFOV,
143
143
  newRotation,
144
- };
144
+ }
145
145
 
146
146
  // constructor(public rootUrl: string, public target:string = 'qiplayerCanvas', events:EventManager, apartmentJson: string = undefined, startCameraId:string=undefined, fileLoader: LocalFileLoader | undefined) {
147
- if (!isBrowser) return;
147
+ if (!isBrowser) return
148
148
 
149
149
  const mainScene = await new PlayerV2.Main(
150
150
  this.rootUrl,
151
- "qpc",
151
+ 'qpc',
152
152
  callbacks,
153
153
  undefined,
154
154
  this.currentCameraId,
155
155
  this.fileLoader
156
- );
156
+ )
157
157
 
158
158
  if (mainScene) {
159
- mainScene.handleWindowResize();
159
+ mainScene.handleWindowResize()
160
160
  window.addEventListener(
161
- "resize",
161
+ 'resize',
162
162
  mainScene.handleWindowResize.bind(mainScene)
163
- );
164
- mainScene.animate();
163
+ )
164
+ mainScene.animate()
165
165
 
166
- this.playerAPI = PlayerV2.Main.getPlayerAPI();
166
+ this.playerAPI = PlayerV2.Main.getPlayerAPI()
167
167
 
168
168
  if (this.playerAPI)
169
- this.playerAPI.setLookSensitivity(this.mouseSensitivity);
169
+ this.playerAPI.setLookSensitivity(this.mouseSensitivity)
170
170
  }
171
171
  },
172
172
  beforeUnmount() {
173
173
  if (this.playerAPI) {
174
- this.playerAPI.destroy();
174
+ this.playerAPI.destroy()
175
175
  }
176
176
  },
177
177
  methods: {
178
178
  findClosestAncestor(element, className) {
179
- let el = element;
180
- let returnElement = element;
179
+ let el = element
180
+ let returnElement = element
181
181
  while ((el = el.parentNode) && el.className.indexOf(className) < 0);
182
- returnElement = el;
182
+ returnElement = el
183
183
 
184
- return returnElement;
184
+ return returnElement
185
185
  },
186
186
  setPlayerSize() {
187
- let AR = 16 / 9;
188
- let element = document.querySelector("#player-sizer");
189
- if (!element) return;
187
+ let AR = 16 / 9
188
+ let element = document.querySelector('#player-sizer')
189
+ if (!element) return
190
190
 
191
- let width = element.offsetWidth;
192
- let height = width * (1 / AR);
191
+ let width = element.offsetWidth
192
+ let height = width * (1 / AR)
193
193
 
194
194
  if (window.innerWidth <= 600 || width <= 600) {
195
- height = window.innerHeight * 0.75;
195
+ height = window.innerHeight * 0.75
196
196
 
197
197
  if (this.isInIframe) {
198
- height = screen.height * 0.65;
198
+ height = screen.height * 0.65
199
199
  }
200
200
 
201
- width = height * (1 / AR);
201
+ width = height * (1 / AR)
202
202
  }
203
203
 
204
- element.style.height = height + "px";
205
- element.style.width = width + "px";
206
- this.$emit("new-size-callback", width, height);
204
+ element.style.height = height + 'px'
205
+ element.style.width = width + 'px'
206
+ this.$emit('new-size-callback', width, height)
207
207
  },
208
208
  },
209
- };
209
+ }
210
210
  </script>
211
211
  <style scoped>
212
212
  #player-wrapper {
@@ -1,17 +1,20 @@
1
- export {default as Compass } from './Compass.vue'
2
- export {default as Disclaimer } from './Disclaimer.vue'
3
- export {default as FloorLevel } from './FloorLevel.vue'
4
- export {default as FullScreenButton } from './FullScreenButton.vue'
5
- export {default as InteriorSelector } from './InteriorSelector.vue'
6
- export {default as ManualSlideShow } from './ManualSlideShow.vue'
7
- export {default as ManualSlideShowPlayer } from './ManualSlideShowPlayer.vue'
8
- export {default as Player } from './Player.vue'
9
- export {default as ScrollHelper } from './ScrollHelper.vue'
10
- export {default as SettingsUI } from './SettingsUI.vue'
11
- export {default as SingleImage } from './SingleImage.vue'
12
- export {default as SocialShare } from './SocialShare.vue'
13
- export {default as TimeOfDay } from './TimeOfDay.vue'
14
- export {default as Tutorial } from './Tutorial.vue'
15
- export {default as ViewModeToggle } from './ViewModeToggle.vue'
16
- export {default as VirtualTourV2 } from './VirtualTourV2.vue'
17
- export {default as WaypointCarousel } from './WaypointCarousel.vue'
1
+ // // export {default as Compass } from './Compass.vue'
2
+ // export {default as Disclaimer } from './Disclaimer.vue'
3
+ // export {default as FloorLevel } from './FloorLevel.vue'
4
+ // export {default as FullScreenButton } from './FullScreenButton.vue'
5
+ // export {default as InteriorSelector } from './InteriorSelector.vue'
6
+ // export {default as ManualSlideShow } from './ManualSlideShow.vue'
7
+ // export {default as ManualSlideShowPlayer } from './ManualSlideShowPlayer.vue'
8
+ // export {default as Player } from './Player.vue'
9
+ // export {default as ScrollHelper } from './ScrollHelper.vue'
10
+ // export {default as SettingsUI } from './SettingsUI.vue'
11
+ // export {default as SingleImage } from './SingleImage.vue'
12
+ // export {default as SocialShare } from './SocialShare.vue'
13
+ // export {default as TimeOfDay } from './TimeOfDay.vue'
14
+ // export {default as Tutorial } from './Tutorial.vue'
15
+ // export {default as ViewModeToggle } from './ViewModeToggle.vue'
16
+
17
+ // export {default as WaypointCarousel } from './WaypointCarousel.vue'
18
+
19
+ export { default as VirtualTourV2 } from './VirtualTourV2.vue'
20
+ // export {default as ManualSlideShow } from './ManualSlideShow.vue'
@@ -1,73 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{
2
- images: {
3
- type: ArrayConstructor;
4
- required: true;
5
- };
6
- websiteUrl: {
7
- type: StringConstructor;
8
- default: () => undefined;
9
- };
10
- i18n: {
11
- type: ObjectConstructor;
12
- default: undefined;
13
- };
14
- showFullScreen: {
15
- type: BooleanConstructor;
16
- default: () => boolean;
17
- };
18
- showShare: {
19
- type: BooleanConstructor;
20
- default: () => boolean;
21
- };
22
- defaultWaypointIndex: {
23
- type: NumberConstructor;
24
- default: () => number;
25
- };
26
- }, any, {
27
- loading: boolean;
28
- error: boolean;
29
- currentIndex: number;
30
- currentImageId: undefined;
31
- fullScreen: FullscreenModel;
32
- }, {
33
- imagesWithThumbnails(): any;
34
- currentImage(): any;
35
- }, {
36
- toggleFullscreen(): void;
37
- nextImage(): void;
38
- previousImage(): void;
39
- goToImage(imageId: any, updatePlayerImage?: boolean): void;
40
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
41
- images: {
42
- type: ArrayConstructor;
43
- required: true;
44
- };
45
- websiteUrl: {
46
- type: StringConstructor;
47
- default: () => undefined;
48
- };
49
- i18n: {
50
- type: ObjectConstructor;
51
- default: undefined;
52
- };
53
- showFullScreen: {
54
- type: BooleanConstructor;
55
- default: () => boolean;
56
- };
57
- showShare: {
58
- type: BooleanConstructor;
59
- default: () => boolean;
60
- };
61
- defaultWaypointIndex: {
62
- type: NumberConstructor;
63
- default: () => number;
64
- };
65
- }>>, {
66
- i18n: Record<string, any>;
67
- websiteUrl: string;
68
- showFullScreen: boolean;
69
- showShare: boolean;
70
- defaultWaypointIndex: number;
71
- }, {}>;
72
- export default _default;
73
- import { FullscreenModel } from '../../lib/virtualTour/FullscreenModel';
@@ -1,15 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{
2
- isFullScreen: {
3
- type: BooleanConstructor;
4
- required: true;
5
- };
6
- }, any, {}, {}, {
7
- findClosestAncestor(element: any, className: any): any;
8
- setPlayerSize(): void;
9
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
10
- isFullScreen: {
11
- type: BooleanConstructor;
12
- required: true;
13
- };
14
- }>>, {}, {}>;
15
- export default _default;
@@ -1,16 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{
2
- scrollTo: {
3
- type: StringConstructor;
4
- default: () => string;
5
- };
6
- }, any, any, {}, {
7
- scroll(): void;
8
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
9
- scrollTo: {
10
- type: StringConstructor;
11
- default: () => string;
12
- };
13
- }>>, {
14
- scrollTo: string;
15
- }, {}>;
16
- export default _default;
package/dist/entry.css DELETED
@@ -1 +0,0 @@
1
- @media (hover: hover){.hover-check[data-v-e4729353]{display:none}}#canvas[data-v-3bbbc77b]{position:absolute;top:0;width:100%;-webkit-user-select:none;user-select:none;touch-action:none;padding-top:56.25%}#canvas-mask[data-v-3bbbc77b]{position:absolute;top:0;max-width:100%;z-index:4;-webkit-user-select:none;user-select:none}@media only screen and (min-width: 1280px){#canvas[data-v-3bbbc77b]{border-radius:10px}}#container[data-v-82a61864]{position:absolute;top:0;width:100%;-webkit-user-select:none;user-select:none;touch-action:none;padding-top:56.25%}.svg-container[data-v-82a61864]{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-in-out}.svg-container[data-v-82a61864],svg[data-v-82a61864]{position:absolute;left:0;top:0;width:100%;height:100%;z-index:10000}svg g[data-v-82a61864] path{cursor:pointer;stroke-width:inherit!important;stroke-opacity:inherit!important;stroke:inherit!important;fill:inherit!important;fill-opacity:inherit!important;transition-property:fill-opacity,fill;transition-duration:.25s;transition-timing-function:ease-in-out}@media only screen and (min-width: 1280px){#canvas[data-v-82a61864]{border-radius:10px}}.v-btn[data-v-129ef905]{background-color:#fff}.frame-container[data-v-e6481f8e]{position:relative;max-width:100%;top:0;left:0;bottom:185px;padding-top:56%;z-index:1;overflow:hidden}.frame-image[data-v-e6481f8e]{position:absolute;top:0;width:100%;height:100%}.frame-image img[data-v-e6481f8e]{min-width:100%;max-width:100%;z-index:0}#image-stack picture[data-v-e6481f8e]{visibility:hidden}#image-stack picture.show[data-v-e6481f8e]{visibility:visible}.fill-parent[data-v-e6481f8e]{position:absolute;top:0;bottom:0;left:0;right:0}.floating-card[data-v-b74de171]{position:absolute;left:0;top:0;z-index:10;display:flex}.is-not-hoverable[data-v-b74de171]{position:relative;width:100%}.top-left[data-v-b74de171]{transform-origin:top left;transform:translate(8px) translateY(8px) scale(.9)}.top-right[data-v-b74de171]{transform-origin:top right;transform:translate(-100%) translate(-8px) translateY(8px) scale(.9)}.bottom-left[data-v-b74de171]{transform-origin:bottom left;transform:translateY(-100%) translate(8px) translateY(-8px) scale(.9)}.bottom-right[data-v-b74de171]{transform-origin:bottom right;transform:translateY(-100%) translate(-100%) translate(-8px) translateY(-8px) scale(.9)}.v-dialog__content[data-v-b74de171]{align-items:flex-start}.zoom-box-container[data-v-83bfd28a]{position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none}.zoom-box[data-v-83bfd28a]{width:100%;height:100%;-webkit-user-select:none;user-select:none;touch-action:none}.interactive-viewer[data-v-3a1121f3]{padding-top:56.65%;position:relative}.fill-parent[data-v-3a1121f3]{position:absolute;top:0;bottom:0;left:0;right:0}.navigation[data-v-3a1121f3]{position:absolute;width:100%;bottom:32px;z-index:99;padding:0 20px;display:flex;justify-content:center}@media only screen and (max-width: 600px){.navigation[data-v-3a1121f3]{bottom:12px}}.sunsim-time-label[data-v-1fba3edd]{color:#000;vertical-align:top}.sunsim-date[data-v-1fba3edd]{background:#fff;border-radius:30px;min-height:36px;min-width:170px;display:flex;align-content:center;white-space:nowrap}.day-selector[data-v-1fba3edd]{margin-top:0}.day-selector[data-v-1fba3edd] .v-field__outline{display:none}.day-selector[data-v-1fba3edd] .v-field__input{padding-top:2px}.day-selector[data-v-1fba3edd] .v-field__append-inner{padding-top:5px!important}.day-selector.v-text-field[data-v-1fba3edd] .v-input__control>.v-input__slot:before{border-style:none}.day-selector.v-text-field[data-v-1fba3edd] .v-input__control>.v-input__slot:after{border-style:none}.sunsim-slider[data-v-1fba3edd] .v-slider-track__background{background:linear-gradient(270deg,#8183c2,#ffb9b9 20.01%,#b2dfff 40.1%,#b2dfff 59.85%,#ffba96 79.96%,#8183c2)!important}.sunsim-bar-wrapper{display:flex;position:absolute;width:60%;min-width:400px;top:12px;left:0;z-index:3;touch-action:none;pointer-events:none}.sunsim-wrapper{width:100%;background:#fff;border-radius:30px;padding:5px;min-height:16px;z-index:3}.sunsim-bar-wrapper .sunsim-date{margin-right:12px;margin-left:12px}.sunsim-wrapper,.sunsim-date{touch-action:auto;pointer-events:all}.sunsim-wrapper .mdi-white-balance-sunny{color:#ffab02;vertical-align:baseline;font-size:20px}@media only screen and (max-width: 980px) and (min-width: 500px){.sunsim-bar-wrapper{top:101%;width:100%}.sunsim-bar-wrapper .sunsim-date{margin-left:0}}@media only screen and (max-width: 980px) and (min-width: 500px) and (orientation: landscape){.sunsim-bar-wrapper{top:calc(100% + 8px);width:100%}.sunsim-bar-wrapper .sunsim-date{margin-left:0}.sunsim-bar-wrapper .sunsim-date,.sunsim-bar-wrapper .sunsim-wrapper{box-shadow:0 0 7px 1px #aaa}}@media only screen and (max-width: 500px){.sunsim-bar-wrapper{height:calc(100% + 84px);top:0;width:100%;flex-direction:column;justify-content:space-between;margin:-42px 0 0;padding:0;left:0;z-index:0;min-width:100%}.sunsim-bar-wrapper .sunsim-date{margin-right:0;margin-left:0}.sunsim-bar-wrapper .sunsim-date,.sunsim-bar-wrapper .sunsim-wrapper{width:100%;border-radius:0;left:0;margin-left:0!important;box-shadow:0 0 7px 1px #aaa}}.image-instance[data-v-fad48118]{position:absolute;width:100%;opacity:0}.image-instance.active[data-v-fad48118]{opacity:1}.north-indicator[data-v-0a2cec1f]{position:absolute;right:0;top:0;height:42px;width:42px;margin-top:12px;margin-right:8px}.image-container[data-v-0a2cec1f]{position:relative}.image-instances[data-v-0a2cec1f]{position:relative;width:100%;height:100%}canvas[data-v-0a2cec1f]{position:absolute;left:0;top:0;z-index:2;opacity:0}.fill-parent[data-v-0a2cec1f]{position:absolute;top:0;bottom:0;left:0;right:0}.svg-container[data-v-0a2cec1f]{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-in-out}.svg-container[data-v-0a2cec1f],svg[data-v-0a2cec1f]{position:absolute;left:0;top:0;width:100%;height:100%;z-index:10000}svg g[data-v-0a2cec1f] path{cursor:pointer;stroke-width:inherit!important;stroke-opacity:inherit!important;stroke:inherit!important;fill:inherit!important;fill-opacity:inherit!important;transition-property:fill-opacity,fill;transition-duration:.25s;transition-timing-function:ease-in-out}svg g.restricted[data-v-0a2cec1f] path{cursor:default!important}@media only screen and (max-width: 980px) and (min-width: 500px) and (orientation: landscape){div.image-container[data-v-0a2cec1f]{margin-top:44px}}@media only screen and (max-width: 500px){div.image-container[data-v-0a2cec1f]{margin-top:44px;margin-bottom:44px}}.overlay[data-v-9a90fa2f]{z-index:1!important;opacity:1;transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-in-out}.north-indicator[data-v-08f2ea1e]{position:absolute;right:0;top:0;height:42px;width:42px;margin-top:12px;margin-right:8px}.image-container[data-v-08f2ea1e]{position:relative}.image-instances[data-v-08f2ea1e]{position:relative;width:100%;height:100%}canvas[data-v-08f2ea1e]{position:absolute;left:0;top:0;z-index:2;opacity:0}.fill-parent[data-v-08f2ea1e]{position:absolute;top:0;bottom:0;left:0;right:0}@media only screen and (max-width: 980px) and (min-width: 500px) and (orientation: landscape){div.image-container[data-v-08f2ea1e]{margin-top:44px}}@media only screen and (max-width: 500px){div.image-container[data-v-08f2ea1e]{margin-top:44px;margin-bottom:44px}}.compass-needle{transition:transform .5s;transition-timing-function:ease-out}.disclaimer[data-v-6e4f02d6]{padding:4px 10px;text-align:center;background-color:#00000040;border-radius:5px;line-height:20px}.disclaimer span[data-v-6e4f02d6]{cursor:pointer;color:#fff;text-decoration:underline;pointer-events:all}.btn-placeholder[data-v-56a279a7]{width:36px;height:36px}.v-btn[data-v-56a279a7]{background-color:#fff;pointer-events:all;cursor:auto}.floor-level-label[data-v-56a279a7]{text-transform:capitalize}.v-image[data-v-fe12068f]{background-color:#aaa}.interior-selector-list[data-v-fe12068f]{box-shadow:none!important;padding:10px;background:transparent!important}.interior-selector-list-item[data-v-fe12068f]{padding:0;padding-inline-start:0!important;background-color:#fff;border:2px solid #fff;transition:transform .2s cubic-bezier(.17,.67,.83,.67);margin-top:10px}.interior-selector-list-item[data-v-fe12068f]:hover{transform:translate(-5px);border:2px solid #4caf50}.interior-selector-list-item .v-list-item-title[data-v-fe12068f]{word-break:break-word}.v-card[data-v-f4e6ce2e]{transition:box-shadow .3s ease-in-out;border:2px solid transparent}[data-v-f4e6ce2e] .v-slide-group__content{justify-content:center}[data-v-f4e6ce2e] .v-slide-group__next--disabled,[data-v-f4e6ce2e] .v-slide-group__prev--disabled{pointer-events:all!important}.carousel-button[data-v-f4e6ce2e]{height:108px!important;min-width:54px!important;padding:0!important;z-index:2;background-color:#fff!important;border:2px solid #d2d2d2;color:#d2d2d2!important}.carousel-button.mobile[data-v-f4e6ce2e]{height:58px!important;min-width:38px!important}.carousel-button[data-v-f4e6ce2e]:hover{border:2px solid #999!important;color:#999!important}.carousel-button[data-v-f4e6ce2e]:hover:before,.carousel-button[data-v-f4e6ce2e]:hover:after{background-color:#fff!important}.align-baseline[data-v-f4e6ce2e]{align-items:baseline}.active-apt[data-v-f4e6ce2e]{border:4px solid #4caf50!important}.v-image[data-v-f4e6ce2e]{border-radius:0!important}#share-btns-wrapper button[data-v-3560cd03]{margin:0 8px}.v-btn[data-v-3560cd03]{background-color:#fff;pointer-events:all}#player-wrapper[data-v-1dab1ac3]{position:relative;overflow:hidden}#player-sizer[data-v-1dab1ac3]{display:flex;justify-content:center;align-items:center;overflow:hidden}.player-control[data-v-1dab1ac3]{display:flex;position:absolute;z-index:3}#controls-top-left[data-v-1dab1ac3]{top:10px;left:10px}#controls-top-center[data-v-1dab1ac3]{top:10px;left:50%;transform:translate(-50%);z-index:4}#controls-top-right[data-v-1dab1ac3]{top:10px;right:10px;justify-content:flex-end;align-content:flex-end}#controls-center-left[data-v-1dab1ac3]{left:10px;top:50%;transform:translateY(-50%)}#controls-center-center[data-v-1dab1ac3]{top:50%;left:50%;transform:translate(-50%,-50%);align-items:center;justify-content:space-around;z-index:20}#controls-center-right[data-v-1dab1ac3]{top:50%;right:10px;transform:translateY(-50%);justify-content:flex-end;align-items:center}#controls-bottom-left[data-v-1dab1ac3]{bottom:10px;left:10px;z-index:5}#controls-bottom-center[data-v-1dab1ac3]{bottom:10px;left:50%;transform:translate(-50%);align-items:flex-end;justify-content:space-around;z-index:4}#controls-bottom-right[data-v-1dab1ac3]{bottom:10px;right:10px;justify-content:flex-end;align-content:flex-end;align-items:flex-end;z-index:5}.img-div[data-v-b418cf51]{position:absolute;display:block;height:100%;width:100%;background-size:cover;background-position:center center;z-index:2;left:0;top:0}.static-image-wrapper[data-v-b418cf51]{background:#fff}.compass-wrapper[data-v-e2117d1e]{width:50px}.player-and-components-wrapper[data-v-e2117d1e]{position:relative}.static-image[data-v-e2117d1e]{position:absolute;top:0;left:0;width:100%;height:auto}button.v-btn[data-v-e2117d1e]{background:#fff}.waypoint-carousel.full-screen[data-v-e2117d1e]{scale:.5}div#controls-bottom-center>div[data-v-e2117d1e]{display:flex;flex-direction:column;align-items:center}.player-error[data-v-e2117d1e]{min-height:400px;display:flex;align-items:center;justify-content:space-around;background:#ededed}@media only screen and (max-width: 600px){#btn-fullscreen[data-v-e2117d1e]{display:none}}@media all and (orientation: landscape) and (max-height: 499px){#btn-fullscreen[data-v-e2117d1e]{display:none}}#player-wrapper[data-v-d61b0474]{position:relative;overflow:hidden}#player-sizer[data-v-d61b0474]{display:flex;justify-content:center;align-items:center;overflow:hidden}div#main-canvas[data-v-d61b0474]{top:50%;left:50%;position:absolute;transform:translate(-50%,-50%)}.player-control[data-v-d61b0474]{display:flex;position:absolute;z-index:3}#controls-top-left[data-v-d61b0474]{top:10px;left:10px}#controls-top-center[data-v-d61b0474]{top:10px;left:50%;transform:translate(-50%);z-index:4;flex-direction:column}#controls-top-right[data-v-d61b0474]{top:10px;right:10px;justify-content:flex-end;align-content:flex-end}#controls-center-left[data-v-d61b0474]{left:10px;top:50%;transform:translateY(-50%)}#controls-center-center[data-v-d61b0474]{top:50%;left:50%;transform:translate(-50%,-50%);align-items:center;justify-content:space-around;z-index:20}#controls-center-right[data-v-d61b0474]{top:50%;right:10px;transform:translateY(-50%);justify-content:flex-end;align-items:center}#controls-bottom-left[data-v-d61b0474]{bottom:10px;left:10px;z-index:5}#controls-bottom-center[data-v-d61b0474]{bottom:10px;left:50%;transform:translate(-50%);align-items:flex-end;justify-content:space-around;z-index:4}#controls-bottom-right[data-v-d61b0474]{bottom:10px;right:10px;justify-content:flex-end;align-content:flex-end;align-items:flex-end;z-index:5}span#moving-arrow[data-v-68e88af1]{display:block;animation-name:tween-68e88af1;animation-duration:1s;animation-iteration-count:infinite;background-image:url('data:image/svg+xml,<svg focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%2370757a" d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></svg>');display:inline-block;height:24px;width:24px}@keyframes tween-68e88af1{0%{background-position:0px 0px}to{background-position:0px 4px}}.scroll-helper-wrapper[data-v-68e88af1]{padding:10px;display:flex;flex-direction:column;align-items:center;cursor:pointer;color:#fff;background:#000;background:linear-gradient(180deg,#0000 10%,#000 50%,#0000);text-align:center;visibility:hidden;position:fixed;bottom:0;right:0}@media only screen and (max-width: 600px){.scroll-helper-wrapper[data-v-68e88af1]{visibility:visible}}.settings-panel[data-v-c04f3195]{min-width:500px;height:500px;overflow-y:scroll}form#settings-ui-form[data-v-c04f3195]{background:#fff9;border-radius:5px;padding:10px}#settings-ui-form .form-inputs[data-v-c04f3195]{height:60vh;overflow-y:scroll;padding-bottom:50px;scrollbar-color:#0c0e4a transparent;scrollbar-width:thin;padding-right:20px}.clock-face[data-v-e440b0c9]{margin-left:10px;height:50px;width:50px;background-color:#fff;border-radius:50%}.clock-value[data-v-e440b0c9]{font-size:11px}.clock-icon[data-v-e440b0c9]{width:18px}.tutorial[data-v-d87b088a]{color:#000;padding:10px;text-align:center;background-color:#fff;border-radius:5px;line-height:20px}.tutorial-icon[data-v-d87b088a]{border:1.5px solid #e0e0e0;border-radius:5px;width:140px;height:75px}.text[data-v-d87b088a]{font-size:.8em;line-height:1}.box.col[data-v-d87b088a]{max-width:180px!important}.tablet-mobile-content[data-v-d87b088a]{min-width:240px}.box.horizontal[data-v-d87b088a]{display:flex;align-items:center}.tablet-mobile-content .tutorial-icon[data-v-d87b088a]{width:100px;height:65px}.tablet-mobile-content .text[data-v-d87b088a]{text-align:left}.tutorial-buttons .v-messages{display:none!important}.stop1{stop-color:#fff}.stop2{stop-color:#fff;stop-opacity:0}.stop3{stop-color:transparent}.minimap-container[data-v-341837d7]{position:relative}.web-minimap[data-v-341837d7]{position:relative;width:512px;height:385px;overflow:hidden;transition:transform .5s ease-in}@media (max-width: 650px){.web-minimap[data-v-341837d7]{scale:.7}}@media (max-width: 480px){.web-minimap[data-v-341837d7]{scale:.5}}.minimap-background-image[data-v-341837d7]{position:absolute;width:100%;height:100%}.single-camera-marker[data-v-341837d7]{position:absolute;width:7px;height:7px;background:#fff;border-radius:50%;z-index:2;transform:translate(-50%,-50%);border:0px}.rotation-marker-component[data-v-341837d7]{z-index:3;position:absolute;width:80px;height:80px;transform:translate(-50%,-50%)}.center-pivot[data-v-341837d7]{position:absolute;width:100%;height:100%}#moveableDiv[data-v-243baf73]{position:fixed;z-index:15;background-color:#fff;border:1px solid #d3d3d3}#moveableDivheader[data-v-243baf73]{cursor:move;z-index:10}.big[data-v-243baf73]{width:512px;height:440px;top:50%;left:50%;transform:translate(-50%,-50%)}.small[data-v-243baf73]{width:250px;height:300px;bottom:10px;right:10px;transform:translate(0)}.sizer[data-v-243baf73]{overflow:hidden;min-width:250px;min-height:300px;max-width:700px;max-height:531px}.resize-icon[data-v-243baf73]{position:absolute;top:5px;right:5px;z-index:11}.rotate-icon[data-v-243baf73]{position:absolute;top:5px;right:45px;z-index:12}.close-icon[data-v-243baf73]{position:absolute;top:5px;left:5px;z-index:11}.moveable-body[data-v-243baf73]{z-index:1}.moveable-footer[data-v-243baf73]{width:100%;height:50px;margin-bottom:10px;background:#fff;z-index:2}.filler-div[data-v-243baf73]{display:none}@media only screen and (max-width: 600px){.sizer[data-v-243baf73]{overflow:hidden;max-width:90%;max-height:80vh}}.minimap-compass[data-v-01730a31]{width:50px}.ss-wrapper[data-v-86183299]{display:flex;flex-direction:row;justify-content:space-between;margin:0 10px;position:relative;z-index:100}.sun-icon[data-v-86183299]{width:10%}.slider[data-v-86183299]{display:flex;flex-direction:column;flex:1 1 auto;padding:3px 0}i.v-icon.notranslate.mdi.mdi-white-balance-sunny.theme--light[data-v-86183299]{font-size:40px;color:#ffab02;padding:5px}.time-label[data-v-86183299]{padding:0;display:inline-block;margin-top:-10px;margin-left:50px}.minimap-compass[data-v-547d8112]{position:absolute;right:5px;top:50px;z-index:11}.compass-wrapper[data-v-5e036d71]{width:50px}.player-and-components-wrapper[data-v-5e036d71]{position:relative}.static-image[data-v-5e036d71]{position:absolute;top:0;left:0;width:100%;height:auto}button.v-btn[data-v-5e036d71]{background:#fff}.waypoint-carousel.full-screen[data-v-5e036d71]{scale:.5}div#controls-bottom-center>div[data-v-5e036d71]{display:flex;flex-direction:column;align-items:center}.player-error[data-v-5e036d71]{min-height:400px;display:flex;align-items:center;justify-content:space-around;background:#ededed}@media only screen and (max-width: 600px){#btn-fullscreen[data-v-5e036d71]{display:none}}@media all and (orientation: landscape) and (max-height: 499px){#btn-fullscreen[data-v-5e036d71]{display:none}}.settings-panel[data-v-5e036d71]{position:absolute;top:0;left:0;z-index:10;width:500px;transform:scale(.8);transform-origin:left}