@qispace/vue3-player 0.0.5

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 (160) hide show
  1. package/README.md +18 -0
  2. package/dist/components/apartmentChooser/QiApartmentChooser.vue.d.ts +4 -0
  3. package/dist/components/apartmentChooser/QiApartmentChooser.vue.d.ts.map +1 -0
  4. package/dist/components/apartmentChooser/QiApartmentChooserNavigation.vue.d.ts +4 -0
  5. package/dist/components/apartmentChooser/QiApartmentChooserNavigation.vue.d.ts.map +1 -0
  6. package/dist/components/apartmentChooser/QiApartmentChooserRaster.vue.d.ts +4 -0
  7. package/dist/components/apartmentChooser/QiApartmentChooserRaster.vue.d.ts.map +1 -0
  8. package/dist/components/apartmentChooser/QiApartmentChooserRotator.vue.d.ts +4 -0
  9. package/dist/components/apartmentChooser/QiApartmentChooserRotator.vue.d.ts.map +1 -0
  10. package/dist/components/apartmentChooser/QiApartmentChooserSvg.vue.d.ts +4 -0
  11. package/dist/components/apartmentChooser/QiApartmentChooserSvg.vue.d.ts.map +1 -0
  12. package/dist/components/buildingPicker/QiBuildingChooser.vue.d.ts +3 -0
  13. package/dist/components/buildingPicker/QiBuildingChooser.vue.d.ts.map +1 -0
  14. package/dist/components/buildingPicker/QiBuildingChooserRaster.vue.d.ts +4 -0
  15. package/dist/components/buildingPicker/QiBuildingChooserRaster.vue.d.ts.map +1 -0
  16. package/dist/components/buildingPicker/QiBuildingChooserRasterOverlay.vue.d.ts +4 -0
  17. package/dist/components/buildingPicker/QiBuildingChooserRasterOverlay.vue.d.ts.map +1 -0
  18. package/dist/components/buildingPicker/QiBuildingChooserSceneImageStack.vue.d.ts +4 -0
  19. package/dist/components/buildingPicker/QiBuildingChooserSceneImageStack.vue.d.ts.map +1 -0
  20. package/dist/components/buildingPicker/QiBuildingChooserSunSimControl.vue.d.ts +5 -0
  21. package/dist/components/buildingPicker/QiBuildingChooserSunSimControl.vue.d.ts.map +1 -0
  22. package/dist/components/buildingPicker/QiBuildingChooserSvg.vue.d.ts +4 -0
  23. package/dist/components/buildingPicker/QiBuildingChooserSvg.vue.d.ts.map +1 -0
  24. package/dist/components/index.d.ts +4 -0
  25. package/dist/components/shared/QiFloatingCard.vue.d.ts +4 -0
  26. package/dist/components/shared/QiFloatingCard.vue.d.ts.map +1 -0
  27. package/dist/components/shared/QiHoverProbe.vue.d.ts +4 -0
  28. package/dist/components/shared/QiHoverProbe.vue.d.ts.map +1 -0
  29. package/dist/components/shared/QiNorthDirection.vue.d.ts +3 -0
  30. package/dist/components/shared/QiNorthDirection.vue.d.ts.map +1 -0
  31. package/dist/components/shared/QiZoomBox.vue.d.ts +4 -0
  32. package/dist/components/shared/QiZoomBox.vue.d.ts.map +1 -0
  33. package/dist/components/virtualTourV2/Disclaimer.vue.d.ts +4 -0
  34. package/dist/components/virtualTourV2/Disclaimer.vue.d.ts.map +1 -0
  35. package/dist/components/virtualTourV2/FullScreenButton.vue.d.ts +3 -0
  36. package/dist/components/virtualTourV2/FullScreenButton.vue.d.ts.map +1 -0
  37. package/dist/components/virtualTourV2/ManualSlideShow.vue.d.ts +4 -0
  38. package/dist/components/virtualTourV2/ManualSlideShow.vue.d.ts.map +1 -0
  39. package/dist/components/virtualTourV2/ManualSlideShowPlayer.vue.d.ts +4 -0
  40. package/dist/components/virtualTourV2/ManualSlideShowPlayer.vue.d.ts.map +1 -0
  41. package/dist/components/virtualTourV2/SingleImage.vue.d.ts +4 -0
  42. package/dist/components/virtualTourV2/SingleImage.vue.d.ts.map +1 -0
  43. package/dist/components/virtualTourV2/SocialShare.vue.d.ts +4 -0
  44. package/dist/components/virtualTourV2/SocialShare.vue.d.ts.map +1 -0
  45. package/dist/components/virtualTourV2/WaypointCarousel.vue.d.ts +4 -0
  46. package/dist/components/virtualTourV2/WaypointCarousel.vue.d.ts.map +1 -0
  47. package/dist/lib/virtualTour__/ApartmentConfig.d.ts +27 -0
  48. package/dist/lib/virtualTour__/ApartmentFiles.d.ts +7 -0
  49. package/dist/lib/virtualTour__/MinimapConfig.d.ts +23 -0
  50. package/dist/lib/virtualTour__/impl/HttpApartmentFiles.d.ts +19 -0
  51. package/dist/vue3-player.cjs.js +2 -0
  52. package/dist/vue3-player.esm.js +2992 -0
  53. package/dist/vue3-player.iife.js +3 -0
  54. package/dist/vue3-player.umd.js +3 -0
  55. package/package.json +65 -0
  56. package/src/components/apartmentChooser/QiApartmentChooser.vue +319 -0
  57. package/src/components/apartmentChooser/QiApartmentChooserNavigation.vue +88 -0
  58. package/src/components/apartmentChooser/QiApartmentChooserRaster.vue +408 -0
  59. package/src/components/apartmentChooser/QiApartmentChooserRotator.vue +202 -0
  60. package/src/components/apartmentChooser/QiApartmentChooserSvg.vue +257 -0
  61. package/src/components/apartmentChooser/index.js +5 -0
  62. package/src/components/buildingPicker/QiBuildingChooser.vue +61 -0
  63. package/src/components/buildingPicker/QiBuildingChooserRaster.vue +312 -0
  64. package/src/components/buildingPicker/QiBuildingChooserRasterOverlay.vue +96 -0
  65. package/src/components/buildingPicker/QiBuildingChooserSceneImageStack.vue +89 -0
  66. package/src/components/buildingPicker/QiBuildingChooserSunSimControl.vue +257 -0
  67. package/src/components/buildingPicker/QiBuildingChooserSvg.vue +414 -0
  68. package/src/components/buildingPicker/index.js +6 -0
  69. package/src/components/index.ts +4 -0
  70. package/src/components/shared/QiFloatingCard.vue +76 -0
  71. package/src/components/shared/QiHoverProbe.vue +22 -0
  72. package/src/components/shared/QiNorthDirection.vue +27 -0
  73. package/src/components/shared/QiZoomBox.vue +322 -0
  74. package/src/components/shared/index.js +4 -0
  75. package/src/components/virtualTourV2/Compass.vue +37 -0
  76. package/src/components/virtualTourV2/Disclaimer.vue +41 -0
  77. package/src/components/virtualTourV2/FloorLevel.vue +73 -0
  78. package/src/components/virtualTourV2/FullScreenButton.vue +23 -0
  79. package/src/components/virtualTourV2/InteriorSelector.vue +90 -0
  80. package/src/components/virtualTourV2/ManualSlideShow.vue +198 -0
  81. package/src/components/virtualTourV2/ManualSlideShowPlayer.vue +159 -0
  82. package/src/components/virtualTourV2/PlayerV2.vue +300 -0
  83. package/src/components/virtualTourV2/ScrollHelper.vue +74 -0
  84. package/src/components/virtualTourV2/SettingsUI.vue +355 -0
  85. package/src/components/virtualTourV2/SingleImage.vue +36 -0
  86. package/src/components/virtualTourV2/SocialShare.vue +163 -0
  87. package/src/components/virtualTourV2/TimeOfDay.vue +50 -0
  88. package/src/components/virtualTourV2/Tutorial.vue +690 -0
  89. package/src/components/virtualTourV2/ViewModeToggle.vue +24 -0
  90. package/src/components/virtualTourV2/VirtualTourV2.vue +876 -0
  91. package/src/components/virtualTourV2/WaypointCarousel.vue +162 -0
  92. package/src/components/virtualTourV2/index.js +1 -0
  93. package/src/components/virtualTourV2/minimapv2/MiniMapMap.vue +262 -0
  94. package/src/components/virtualTourV2/minimapv2/MiniMapV2.vue +110 -0
  95. package/src/components/virtualTourV2/minimapv2/MinimapCompass.vue +39 -0
  96. package/src/components/virtualTourV2/minimapv2/Moveable.vue +208 -0
  97. package/src/components/virtualTourV2/minimapv2/RotationMarkerV2.vue +79 -0
  98. package/src/components/virtualTourV2/minimapv2/SunsimulationSlider.vue +203 -0
  99. package/src/components/virtualTourV2/minimapv2/index.js +1 -0
  100. package/src/entry.esm.js +17 -0
  101. package/src/entry.js +13 -0
  102. package/src/entry.ts_ +17 -0
  103. package/src/lib/apartmentChooser/BuildingViewerModel.js +60 -0
  104. package/src/lib/apartmentChooser/CircularSlideshow.js +66 -0
  105. package/src/lib/apartmentChooser/RotationStep.js +31 -0
  106. package/src/lib/apartmentChooser/SceneRotator.js +25 -0
  107. package/src/lib/apartmentChooser/index.js +3 -0
  108. package/src/lib/apartmentChooser/throttle.js +15 -0
  109. package/src/lib/buildingPicker/BuildingMap.js +24 -0
  110. package/src/lib/buildingPicker/BuildingPickerResourceProvider.js +97 -0
  111. package/src/lib/buildingPicker/CanvasRaster.js +29 -0
  112. package/src/lib/buildingPicker/DayOfYearSelector.js +36 -0
  113. package/src/lib/buildingPicker/SampleRaster.js +14 -0
  114. package/src/lib/buildingPicker/index.js +5 -0
  115. package/src/lib/index.js +4 -0
  116. package/src/lib/shared/BatchLoadTracker.js +52 -0
  117. package/src/lib/shared/I18N.js +65 -0
  118. package/src/lib/shared/ResourceLoader.js +33 -0
  119. package/src/lib/shared/index.js +3 -0
  120. package/src/lib/virtualTour/CameraSnapshot.js +42 -0
  121. package/src/lib/virtualTour/FullscreenModel.js +69 -0
  122. package/src/lib/virtualTour/textures/arrow.png +0 -0
  123. package/src/lib/virtualTour/textures/compass-bg.png +0 -0
  124. package/src/lib/virtualTour/textures/compass-needle.png +0 -0
  125. package/src/lib/virtualTour/textures/compass-north.png +0 -0
  126. package/src/lib/virtualTour/textures/floor-1.svg +4 -0
  127. package/src/lib/virtualTour/textures/floor-2.svg +4 -0
  128. package/src/lib/virtualTour/textures/marker.png +0 -0
  129. package/src/lib/virtualTour/textures/tod-sun.png +0 -0
  130. package/src/lib/virtualTour__/ApartmentConfig.ts +80 -0
  131. package/src/lib/virtualTour__/ApartmentFiles.ts +8 -0
  132. package/src/lib/virtualTour__/CameraNavigator.js_ +74 -0
  133. package/src/lib/virtualTour__/CameraSnapshot.js +42 -0
  134. package/src/lib/virtualTour__/CoordConversions.js +43 -0
  135. package/src/lib/virtualTour__/FullscreenModel.js +69 -0
  136. package/src/lib/virtualTour__/MinimapConfig.ts +46 -0
  137. package/src/lib/virtualTour__/PlayerViewModel.js +423 -0
  138. package/src/lib/virtualTour__/config/ApartmentConfig.js +92 -0
  139. package/src/lib/virtualTour__/config/CameraConfig.js +97 -0
  140. package/src/lib/virtualTour__/config/Interaction.js +393 -0
  141. package/src/lib/virtualTour__/config/Panorama.js +78 -0
  142. package/src/lib/virtualTour__/config/PlayerConfig.js +812 -0
  143. package/src/lib/virtualTour__/config/rawinflate.export.js +833 -0
  144. package/src/lib/virtualTour__/config/shaders.js +24 -0
  145. package/src/lib/virtualTour__/impl/HttpApartmentFiles.ts +57 -0
  146. package/src/lib/virtualTour__/index.js +1 -0
  147. package/src/lib/virtualTour__/textures/arrow.png +0 -0
  148. package/src/lib/virtualTour__/textures/compass-bg.png +0 -0
  149. package/src/lib/virtualTour__/textures/compass-needle.png +0 -0
  150. package/src/lib/virtualTour__/textures/compass-north.png +0 -0
  151. package/src/lib/virtualTour__/textures/floor-1.svg +4 -0
  152. package/src/lib/virtualTour__/textures/floor-2.svg +4 -0
  153. package/src/lib/virtualTour__/textures/marker.png +0 -0
  154. package/src/lib/virtualTour__/textures/tod-sun.png +0 -0
  155. package/src/main.ts_ +24 -0
  156. package/src/shims-png.d.ts +4 -0
  157. package/src/shims-tsx.d.ts +11 -0
  158. package/src/shims-vue.d.ts +4 -0
  159. package/src/style.css +0 -0
  160. package/src/vite-env.d.ts +5 -0
package/README.md ADDED
@@ -0,0 +1,18 @@
1
+ # Vue 3 + TypeScript + Vite
2
+
3
+ This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
4
+
5
+ ## Recommended IDE Setup
6
+
7
+ - [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
8
+
9
+ ## Type Support For `.vue` Imports in TS
10
+
11
+ TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
12
+
13
+ If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
14
+
15
+ 1. Disable the built-in TypeScript Extension
16
+ 1. Run `Extensions: Show Built-in Extensions` from VSCode's command palette
17
+ 2. Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
18
+ 2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/apartmentChooser/QiApartmentChooser.vue?vue&type=style&index=0&scoped=3a1121f3&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiApartmentChooser.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiApartmentChooser.vue.d.ts","sourceRoot":"","sources":["../../../src/components/apartmentChooser/QiApartmentChooser.vue"],"names":[],"mappings":"AAkUA,OAAO,qJAAqJ,CAAA;;AAG5J,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/apartmentChooser/QiApartmentChooserNavigation.vue?vue&type=style&index=0&scoped=129ef905&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiApartmentChooserNavigation.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiApartmentChooserNavigation.vue.d.ts","sourceRoot":"","sources":["../../../src/components/apartmentChooser/QiApartmentChooserNavigation.vue"],"names":[],"mappings":"AAwFA,OAAO,+JAA+J,CAAA;;AAGtK,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/apartmentChooser/QiApartmentChooserRaster.vue?vue&type=style&index=0&scoped=3bbbc77b&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiApartmentChooserRaster.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiApartmentChooserRaster.vue.d.ts","sourceRoot":"","sources":["../../../src/components/apartmentChooser/QiApartmentChooserRaster.vue"],"names":[],"mappings":"AAyYA,OAAO,2JAA2J,CAAA;;AAGlK,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/apartmentChooser/QiApartmentChooserRotator.vue?vue&type=style&index=0&scoped=e6481f8e&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiApartmentChooserRotator.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiApartmentChooserRotator.vue.d.ts","sourceRoot":"","sources":["../../../src/components/apartmentChooser/QiApartmentChooserRotator.vue"],"names":[],"mappings":"AAyMA,OAAO,4JAA4J,CAAA;;AAGnK,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/apartmentChooser/QiApartmentChooserSvg.vue?vue&type=style&index=0&scoped=82a61864&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiApartmentChooserSvg.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiApartmentChooserSvg.vue.d.ts","sourceRoot":"","sources":["../../../src/components/apartmentChooser/QiApartmentChooserSvg.vue"],"names":[],"mappings":"AAwOA,OAAO,wJAAwJ,CAAA;;AAG/J,wBAA4G"}
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=QiBuildingChooser.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiBuildingChooser.vue.d.ts","sourceRoot":"","sources":["../../../src/components/buildingPicker/QiBuildingChooser.vue"],"names":[],"mappings":";AAiEA,wBAA4E"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/buildingPicker/QiBuildingChooserRaster.vue?vue&type=style&index=0&scoped=08f2ea1e&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiBuildingChooserRaster.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiBuildingChooserRaster.vue.d.ts","sourceRoot":"","sources":["../../../src/components/buildingPicker/QiBuildingChooserRaster.vue"],"names":[],"mappings":"AAmTA,OAAO,wJAAwJ,CAAA;;AAG/J,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/buildingPicker/QiBuildingChooserRasterOverlay.vue?vue&type=style&index=0&scoped=9a90fa2f&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiBuildingChooserRasterOverlay.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiBuildingChooserRasterOverlay.vue.d.ts","sourceRoot":"","sources":["../../../src/components/buildingPicker/QiBuildingChooserRasterOverlay.vue"],"names":[],"mappings":"AA2FA,OAAO,+JAA+J,CAAA;;AAGtK,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/buildingPicker/QiBuildingChooserSceneImageStack.vue?vue&type=style&index=0&scoped=fad48118&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiBuildingChooserSceneImageStack.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiBuildingChooserSceneImageStack.vue.d.ts","sourceRoot":"","sources":["../../../src/components/buildingPicker/QiBuildingChooserSceneImageStack.vue"],"names":[],"mappings":"AAqFA,OAAO,iKAAiK,CAAA;;AAGxK,wBAA4G"}
@@ -0,0 +1,5 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/buildingPicker/QiBuildingChooserSunSimControl.vue?vue&type=style&index=0&scoped=1fba3edd&lang.css";
2
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/buildingPicker/QiBuildingChooserSunSimControl.vue?vue&type=style&index=1&lang.css";
3
+ declare const _default: any;
4
+ export default _default;
5
+ //# sourceMappingURL=QiBuildingChooserSunSimControl.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiBuildingChooserSunSimControl.vue.d.ts","sourceRoot":"","sources":["../../../src/components/buildingPicker/QiBuildingChooserSunSimControl.vue"],"names":[],"mappings":"AA8IA,OAAO,+JAA+J,CAAA;AACtK,OAAO,+IAA+I,CAAA;;AAGtJ,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/buildingPicker/QiBuildingChooserSvg.vue?vue&type=style&index=0&scoped=0a2cec1f&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiBuildingChooserSvg.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiBuildingChooserSvg.vue.d.ts","sourceRoot":"","sources":["../../../src/components/buildingPicker/QiBuildingChooserSvg.vue"],"names":[],"mappings":"AA2XA,OAAO,qJAAqJ,CAAA;;AAG5J,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ export * from './apartmentChooser';
2
+ export * from './buildingPicker';
3
+ export * from './shared';
4
+ export * from './virtualTourV2';
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/shared/QiFloatingCard.vue?vue&type=style&index=0&scoped=b74de171&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiFloatingCard.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiFloatingCard.vue.d.ts","sourceRoot":"","sources":["../../../src/components/shared/QiFloatingCard.vue"],"names":[],"mappings":"AAkDA,OAAO,uIAAuI,CAAA;;AAG9I,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/shared/QiHoverProbe.vue?vue&type=style&index=0&scoped=e4729353&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiHoverProbe.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiHoverProbe.vue.d.ts","sourceRoot":"","sources":["../../../src/components/shared/QiHoverProbe.vue"],"names":[],"mappings":"AAsBA,OAAO,qIAAqI,CAAA;;AAG5I,wBAA4G"}
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=QiNorthDirection.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiNorthDirection.vue.d.ts","sourceRoot":"","sources":["../../../src/components/shared/QiNorthDirection.vue"],"names":[],"mappings":";AAoCA,wBAA4E"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/shared/QiZoomBox.vue?vue&type=style&index=0&scoped=83bfd28a&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=QiZoomBox.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QiZoomBox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/shared/QiZoomBox.vue"],"names":[],"mappings":"AAuTA,OAAO,kIAAkI,CAAA;;AAGzI,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/virtualTourV2/Disclaimer.vue?vue&type=style&index=0&scoped=6e4f02d6&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=Disclaimer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disclaimer.vue.d.ts","sourceRoot":"","sources":["../../../src/components/virtualTourV2/Disclaimer.vue"],"names":[],"mappings":"AAoCA,OAAO,0IAA0I,CAAA;;AAGjJ,wBAA4G"}
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=FullScreenButton.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FullScreenButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/virtualTourV2/FullScreenButton.vue"],"names":[],"mappings":";AAiCA,wBAA4E"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/virtualTourV2/ManualSlideShow.vue?vue&type=style&index=0&scoped=e2117d1e&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=ManualSlideShow.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManualSlideShow.vue.d.ts","sourceRoot":"","sources":["../../../src/components/virtualTourV2/ManualSlideShow.vue"],"names":[],"mappings":"AAmNA,OAAO,+IAA+I,CAAA;;AAGtJ,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/virtualTourV2/ManualSlideShowPlayer.vue?vue&type=style&index=0&scoped=1dab1ac3&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=ManualSlideShowPlayer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManualSlideShowPlayer.vue.d.ts","sourceRoot":"","sources":["../../../src/components/virtualTourV2/ManualSlideShowPlayer.vue"],"names":[],"mappings":"AAwHA,OAAO,qJAAqJ,CAAA;;AAG5J,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/virtualTourV2/SingleImage.vue?vue&type=style&index=0&scoped=b418cf51&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=SingleImage.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleImage.vue.d.ts","sourceRoot":"","sources":["../../../src/components/virtualTourV2/SingleImage.vue"],"names":[],"mappings":"AA4BA,OAAO,2IAA2I,CAAA;;AAGlJ,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/virtualTourV2/SocialShare.vue?vue&type=style&index=0&scoped=3560cd03&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=SocialShare.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SocialShare.vue.d.ts","sourceRoot":"","sources":["../../../src/components/virtualTourV2/SocialShare.vue"],"names":[],"mappings":"AAqMA,OAAO,2IAA2I,CAAA;;AAGlJ,wBAA4G"}
@@ -0,0 +1,4 @@
1
+ import "/Users/sujandevkota/Documents/qi/vue3-player/src/components/virtualTourV2/WaypointCarousel.vue?vue&type=style&index=0&scoped=f4e6ce2e&lang.css";
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=WaypointCarousel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaypointCarousel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/virtualTourV2/WaypointCarousel.vue"],"names":[],"mappings":"AAmKA,OAAO,gJAAgJ,CAAA;;AAGvJ,wBAA4G"}
@@ -0,0 +1,27 @@
1
+ import { ProjectFiles } from './ApartmentFiles';
2
+ type CameraConfig = object;
3
+ type TimeOfDay = {
4
+ hours: number;
5
+ minutes: number;
6
+ };
7
+ type ApartmentConfigJson = {
8
+ cameras: CameraConfig[];
9
+ timeInHours?: number;
10
+ };
11
+ type ThumbnailsConfigJson = {
12
+ cameras: CameraConfig[];
13
+ };
14
+ export declare class ApartmentConfig {
15
+ private readonly apartmentJson;
16
+ private readonly thumbnailsJson;
17
+ static load(files: ProjectFiles): Promise<ApartmentConfig>;
18
+ constructor(apartmentJson: ApartmentConfigJson, thumbnailsJson: ThumbnailsConfigJson);
19
+ get timeOfDay(): TimeOfDay | undefined;
20
+ get cameras(): CameraConfig[];
21
+ get thumbnailCameras(): CameraConfig[];
22
+ private parseTimeOfDay;
23
+ private static loadApartmentJson;
24
+ private static loadThumbnailsJson;
25
+ private static loadJson;
26
+ }
27
+ export {};
@@ -0,0 +1,7 @@
1
+ export interface ProjectFile {
2
+ readJson<T>(): Promise<T | undefined>;
3
+ toPath(): string;
4
+ }
5
+ export interface ProjectFiles {
6
+ makeFile(...parts: string[]): ProjectFile;
7
+ }
@@ -0,0 +1,23 @@
1
+ import { ProjectFiles } from './ApartmentFiles';
2
+ export interface Coordinate3D {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ }
7
+ export interface MinimapStorey {
8
+ sunsimFilesTimeStamps: string[];
9
+ sunsimFiles: string[];
10
+ fovY: number;
11
+ rotation: Coordinate3D;
12
+ position: Coordinate3D;
13
+ }
14
+ export interface MinimapMetadata {
15
+ storeys: MinimapStorey[];
16
+ }
17
+ export declare class MinimapConfig {
18
+ private readonly apartmentFiles;
19
+ constructor(apartmentFiles: ProjectFiles);
20
+ getMinimapData(): Promise<Object | undefined>;
21
+ private readMinimapMetadata;
22
+ private constructMinimapFile;
23
+ }
@@ -0,0 +1,19 @@
1
+ import { ProjectFiles, ProjectFile } from '../ApartmentFiles';
2
+ export declare class HttpFile implements ProjectFile {
3
+ private readonly url;
4
+ constructor(url: string);
5
+ readJson<T>(): Promise<T | undefined>;
6
+ toPath(): string;
7
+ private isFileNotFound;
8
+ private isJsonContent;
9
+ }
10
+ export interface FilenameResolver {
11
+ (filename: string): string | null;
12
+ }
13
+ export declare class HttpApartmentFiles implements ProjectFiles {
14
+ private readonly filenameResolver;
15
+ private readonly apartmentId;
16
+ private readonly interiorId;
17
+ constructor(filenameResolver: FilenameResolver, apartmentId: string, interiorId: string);
18
+ makeFile(...parts: string[]): ProjectFile;
19
+ }
@@ -0,0 +1,2 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode("@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}}.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}.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}#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}}")),document.head.appendChild(t)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
2
+ "use strict";const J=require("axios"),e=require("vue");function N(t,n,o,r){function i(s){return s instanceof o?s:new o(function(a){a(s)})}return new(o||(o=Promise))(function(s,a){function l(h){try{c(r.next(h))}catch(p){a(p)}}function d(h){try{c(r.throw(h))}catch(p){a(p)}}function c(h){h.done?s(h.value):i(h.value).then(l,d)}c((r=r.apply(t,n||[])).next())})}class y{async loadJson(n){return(await J.get(n)).data}async loadImage(n){return new Promise((o,r)=>{const i=new Image;i.crossOrigin="anonymous",i.onload=()=>{o(i)},i.onerror=r,i.src=n})}async loadImageData(n){const o=await this.loadImage(n),r=document.createElement("canvas");try{const i=r.getContext("2d");return r.width=o.width,r.height=o.height,i.drawImage(o,0,0),r.toDataURL("image/png")}finally{r.remove()}}}const v=(t,n)=>{const o=t.__vccOpts||t;for(const[r,i]of n)o[r]=i;return o},ee={name:"QiHoverProbe",computed:{isHoverEnabled(){return window.getComputedStyle(this.$refs.hoverCheck).display==="none"}}},te={ref:"hoverCheck",class:"hover-check"};function ne(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",te,null,512)}const k=v(ee,[["render",ne],["__scopeId","data-v-e4729353"]]),L={methods:{throttle(t,n){let o=!0;return function(...r){o&&(o=!1,t.apply(this,r),setTimeout(()=>o=!0,n))}}}},oe={name:"QiApartmentChooserRaster",components:{QiHoverProbe:k},mixins:[L],props:{cdnFileResolver:{type:Function,required:!0},viewModel:{type:Object,required:!0},selectedUnitId:{type:String,default:null},unitCallback:{type:Function,default:t=>t},canGoToUnitCallback:{type:Function,default:()=>!0},sceneData:{type:Array,default:[]},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},drawObserver:{type:[Object,Array,String,Number,Boolean],default:null}},emits:["select-unit","go-to-unit","hover-over","hover-out"],data(){return{pos:{x:0,y:0,width:0,height:0},canvas:null,canvasBg:null,canvasWidth:0,canvasHeight:0,context:null,contextBg:null,image:null,imageData:null,originalImageData:null,hoverApartmentIndex:-1,showApartmentCard:!1,cursorX:null,cursorY:null,rasterImages:{},vueCanvasCursor:"auto",timeout:null,windowListener:void 0,resourceLoader:new y,apartmentIndexRasterMap:{}}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled},rasterUrl(){return this.cdnFileResolver(`/scenedata${this.viewModel.currentScene}.png`)},rasterImage(){return this.rasterUrl in this.rasterImages?this.rasterImages[this.rasterUrl]:null},hoverApartment(){if(this.hoverApartmentIndex<0)return!1;const t=this.sceneData.find(n=>n.index===this.hoverApartmentIndex);return t?this.unitCallback?this.unitCallback(t.apartmentId):t.apartmentId:!1},canvasStyle(){return{width:this.canvasWidth+"px",height:this.canvasHeight+"px",cursor:this.vueCanvasCursor}},hoverBehaviourIdentifier(){return`hover-${this.showApartmentCard?"over":"out"}-${this.hoverApartment?typeof this.hoverApartment=="object"&&"unitId"in this.hoverApartment?this.hoverApartment.unitId:this.hoverApartment:""}`}},watch:{rasterUrl:{handler(){this.rasterImages[this.rasterUrl]||this.resourceLoader.loadImageData(this.rasterUrl).then(t=>{this.rasterImages=Object.assign(Object.assign({},this.rasterImages),{[this.rasterUrl]:t})})},immediate:!0},rasterImage(){this.rasterImage&&this.init()},"viewModel.currentScene":{handler(){this.draw()},immediate:!0},"viewModel.isRotating"(){this.draw()},drawObserver(){this.draw()},selectedUnitId(){this.draw()},hoverApartment(){this.draw(),this.hoverApartment?this.vueCanvasCursor="pointer":this.vueCanvasCursor="auto"},hoverBehaviourIdentifier(){this.$emit(this.showApartmentCard?"hover-over":"hover-out",{hoverApartment:this.hoverApartment,closeHandler:()=>this.closeDialog()})},pos(){this.$emit("pos",this.pos)}},mounted(){this.windowListener=()=>{clearTimeout(this.timeout),this.updateCanvasSize(),this.timeout=setTimeout(()=>{this.updateCanvasSize()},50)},window.addEventListener("resize",this.windowListener),this.updateCanvasSize()},beforeUnmount(){window.removeEventListener("resize",this.windowListener);for(const t in this.rasterImages)URL.revokeObjectURL(this.rasterImages[t])},methods:{init(){this.canvas=this.$refs.canvasMask,this.context=this.canvas.getContext("2d",{willReadFrequently:!0}),this.image=new Image,this.image.onload=()=>{this.setupDraw(),this.canvas.addEventListener("mousemove",this.throttle(this.handleMouseMove,50))},this.image.src=this.rasterImage},handleMouseMove(t){const n=this.getApartmentIndexByCursorPosition(t.offsetX,t.offsetY);this.showApartmentCard=n>=0,this.hoverApartmentIndex=n,this.pos={x:t.offsetX,y:t.offsetY,width:this.canvasWidth,height:this.canvasHeight}},clickCanvas(t){const n=this.getApartmentIndexByCursorPosition(t.offsetX,t.offsetY);n<0||this.isHoverable&&this.goToApartmentByIndex(n)},setImageData(){if(this.image&&this.image.width){this.canvas.width=this.image.width,this.canvas.height=this.image.height,this.context.drawImage(this.image,0,0,this.image.width,this.image.height),this.originalImageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);const t=this.originalImageData.data;this.apartmentIndexRasterMap={};for(let n=0;n<t.length;n+=4)this.apartmentIndexRasterMap[t[n]]=[];for(let n=3;n<t.length;n+=4)t[n]===255&&t[n-3]in this.apartmentIndexRasterMap&&this.apartmentIndexRasterMap[t[n-3]].push(n-3)}},getApartmentIndexByCursorPosition(t,n){this.cursorX=t,this.cursorY=n;const o=this.canvas.offsetWidth/this.canvas.width,r=this.canvas.offsetHeight/this.canvas.height,i=(t/o).toFixed(),a=(n/r).toFixed()*(this.canvas.width*4)+i*4,l=this.originalImageData.data[a];return this.originalImageData.data[a+3]>0?l:-1},getApartmentIndexById(t){const n=this.sceneData.find(o=>o.apartmentId===t);return n?n.index:-1},highlightApartments(){this.getApartmentsInRaster().forEach(n=>{if(n.index>=0){const o=this.getApartmentPixelsByIndex(n.index),r=this.getApartmentIdByIndex(n.index);let i="idle";!this.hoverApartment&&this.selectedUnitId&&r===this.selectedUnitId?i="selected":this.hoverApartment&&this.hoverApartmentIndex===n.index&&(i="hover");const s=this.unitCallback?this.unitCallback(r):r;if(s){const a=this.colorCallback(s,i);if(a)for(let l=0;l<o.length;l++)this.imageData.data[o[l]]=a.r,this.imageData.data[o[l]+1]=a.g,this.imageData.data[o[l]+2]=a.b,this.imageData.data[o[l]+3]=a.a}}})},getApartmentPixelsByIndex(t){return this.originalImageData?this.apartmentIndexRasterMap[t]:!1},getApartmentIdByIndex(t){const n=this.sceneData.find(o=>o.index===t);return n&&n.apartmentId},getApartmentsInRaster(){if(this.originalImageData){const t=Object.keys(this.apartmentIndexRasterMap).map(o=>parseInt(o));return this.sceneData.filter(o=>t.includes(o.index))}else return[]},goToApartmentByIndex(t){const n=this.getApartmentIdByIndex(t);this.goToApartmentById(n)},goToApartmentById(t){const n=this.unitCallback?this.unitCallback(t):t;this.$emit("select-unit",n),n&&this.canGoToUnitCallback(n)&&this.$emit("go-to-unit",n)},setAlpha(t=0){if(!this.imageData)return;const n=this.imageData.data;for(let o=3;o<n.length;o+=4)n[o]=t},updateCanvasSize(){if(!this.$el)return!1;this.canvasWidth=this.$el.offsetWidth,this.canvasHeight=this.$el.offsetHeight},setupDraw(){this.setImageData(),this.draw()},draw(){this.setAlpha(),this.highlightApartments(),this.context&&this.imageData&&this.context.putImageData(this.imageData,0,0)},closeDialog(){this.showApartmentCard=!1}}},ie={id:"canvas"};function se(t,n,o,r,i,s){const a=e.resolveComponent("qi-hover-probe");return e.openBlock(),e.createElementBlock("div",ie,[e.withDirectives(e.createElementVNode("canvas",{id:"canvas-mask",ref:"canvasMask",style:e.normalizeStyle(s.canvasStyle),onClick:n[0]||(n[0]=(...l)=>s.clickCanvas&&s.clickCanvas(...l))},null,4),[[e.vShow,!o.viewModel.isRotating]]),e.createVNode(a,{ref:"hoverProbe"},null,512)])}const D=v(oe,[["render",se],["__scopeId","data-v-3bbbc77b"]]),re={name:"QiApartmentChooserSvg",components:{QiHoverProbe:k},mixins:[L],props:{cdnFileResolver:{type:Function,required:!0},viewModel:{type:Object,required:!0},selectedUnitId:{type:String,default:null},unitCallback:{type:Function,default:t=>t},canGoToUnitCallback:{type:Function,default:()=>!0},sceneData:{type:Array,default:[]},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},drawObserver:{type:[Object,Array,String,Number,Boolean],default:null}},emits:["select-unit","go-to-unit","hover-over","hover-out"],data(){return{pos:{x:0,y:0,width:0,height:0},hoverApartmentIndex:-1,svgImages:{},currentSvgImage:null,resourceLoader:new y}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled}},watch:{"viewModel.currentScene":{handler(){this.viewModel.currentScene in this.svgImages&&(this.currentSvgImage=this.svgImages[this.viewModel.currentScene])},immediate:!0},svgImages:{handler(){this.viewModel.currentScene in this.svgImages&&(this.currentSvgImage=this.svgImages[this.viewModel.currentScene])},immediate:!0},pos(){this.$emit("pos",this.pos)},hoverApartmentIndex(t,n){if(t>=0){const o=this.getApartmentByIndex(t);this.$emit("hover-over",{hoverApartment:o,closeHandler:()=>{this.hoverApartmentIndex=-1}})}else{const o=this.getApartmentByIndex(n);this.$emit("hover-out",{hoverApartment:o,closeHandler:()=>{this.hoverApartmentIndex=-1}})}}},mounted(){for(let t=1;t<=4;t++){const n=this.cdnFileResolver(`/scenedata${t}.svg`),o={};this.resourceLoader.loadJson(n).then(r=>{o.markup=r;const s=new DOMParser().parseFromString(r,"image/svg+xml").getElementsByTagName("svg")[0];o.viewBox=s.getAttribute("viewBox"),o.svgObjects=Array.from(s.querySelectorAll("*[data-index]")).map(a=>({index:parseInt(a.getAttribute("data-index")),svg:a.innerHTML})),this.svgImages=Object.assign(Object.assign({},this.svgImages),{[t]:o})})}this.$refs.container.addEventListener("mousemove",this.throttle(this.handleMouseMove,50))},methods:{handleMouseMove(t){this.pos={x:t.offsetX,y:t.offsetY,width:this.$el.offsetWidth,height:this.$el.offsetHeight}},getApartmentIdByIndex(t){var n;return(n=this.sceneData.find(o=>o.index===parseInt(t)))===null||n===void 0?void 0:n.apartmentId},getApartmentByIndex(t){const n=this.getApartmentIdByIndex(t);return this.unitCallback?this.unitCallback(n):n},mouseEnter(t){this.isHoverable&&(this.hoverApartmentIndex=t)},mouseLeave(){this.isHoverable&&(this.hoverApartmentIndex=-1)},click(t){const n=this.getApartmentByIndex(t);this.$emit("select-unit",n),this.isHoverable&&n&&this.canGoToUnitCallback(n)?this.$emit("go-to-unit",n):this.hoverApartmentIndex=t},getGClass(t){const n=this.getApartmentIdByIndex(t),o=this.getApartmentByIndex(t);let r="idle";this.hoverApartmentIndex<0&&this.selectedUnitId&&n===this.selectedUnitId?r="selected":this.hoverApartmentIndex>=0&&this.hoverApartmentIndex===t&&(r="hover");const i=this.colorCallback(o,r);if(i){const{r:s,g:a,b:l,a:d,s:c}=i;return{strokeWidth:c!==void 0?c:2,stroke:`rgb(${s}, ${a}, ${l})`,strokeOpacity:1,fill:`rgb(${s}, ${a}, ${l})`,fillOpacity:d/255,cursor:`${this.canGoToUnitCallback(o)?"cursor":"default"} !important`}}else return{strokeWidth:0,stroke:"white",strokeOpacity:0,fill:"white",fillOpacity:0,cursor:"default !important"}}}},ae={id:"container",ref:"container"},le=["viewBox"],de=["innerHTML","onMouseenter","onMouseleave","onClick"];function ce(t,n,o,r,i,s){const a=e.resolveComponent("qi-hover-probe");return e.openBlock(),e.createElementBlock("div",ae,[e.withDirectives(e.createElementVNode("div",{class:"svg-container",style:e.normalizeStyle({opacity:!i.currentSvgImage||!i.currentSvgImage.svgObjects?0:1})},[i.currentSvgImage&&i.currentSvgImage.svgObjects?(e.openBlock(),e.createElementBlock("svg",{key:0,viewBox:i.currentSvgImage.viewBox},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.currentSvgImage.svgObjects,({index:l,svg:d})=>(e.openBlock(),e.createElementBlock("g",{key:l,innerHTML:d,style:e.normalizeStyle(s.getGClass(l)),onMouseenter:c=>s.mouseEnter(l),onMouseleave:c=>s.mouseLeave(l),onClick:c=>s.click(l)},null,44,de))),128))],8,le)):e.createCommentVNode("",!0)],4),[[e.vShow,!o.viewModel.isRotating]]),e.createVNode(a,{ref:"hoverProbe"},null,512)],512)}const E=v(re,[["render",ce],["__scopeId","data-v-82a61864"]]),ue={name:"QiApartmentChooserNavigation",inject:["i18n"],props:{canGoToUnitCallback:{type:Function,default:()=>!0},selectedUnit:{type:Object,default:null},prevUnit:{type:Object,default:null},nextUnit:{type:Object,default:null},viewModel:{type:Object,required:!0}},mounted(){window.addEventListener("keydown",this.keyNavigate)},beforeUnmount(){window.removeEventListener("keydown",this.keyNavigate)},methods:{keyNavigate(t){t.keyCode===37?this.prevUnit&&this.$emit("prev-unit"):t.keyCode===39&&this.nextUnit&&this.$emit("next-unit")}}},he={key:0,class:"d-none d-md-flex"};function me(t,n,o,r,i,s){const a=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(a,{elevation:"1",icon:"mdi-rotate-right",class:"black darken-1",onClick:n[0]||(n[0]=l=>o.viewModel.rotateClockwise())}),e.createVNode(a,{elevation:"1",plain:"",icon:"mdi-chevron-left",class:"mr-sm-4 ml-sm-8 mr-3 ml-3 black darken-1",disabled:!o.prevUnit,onClick:n[1]||(n[1]=l=>t.$emit("prev-unit"))},null,8,["disabled"]),e.createVNode(a,{color:"success darken-2",elevation:"1",rounded:"",plain:"",disabled:!o.selectedUnit||!o.canGoToUnitCallback(o.selectedUnit),onClick:n[2]||(n[2]=l=>t.$emit("go-to-unit",o.selectedUnit))},{default:e.withCtx(()=>[o.selectedUnit&&o.canGoToUnitCallback(o.selectedUnit)?(e.openBlock(),e.createElementBlock("span",he,e.toDisplayString(s.i18n.getLabel("see-apartment"))+"  ",1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(o.selectedUnit&&"title"in o.selectedUnit?o.selectedUnit.title:"-"),1)]),_:1},8,["disabled"]),e.createVNode(a,{elevation:"1",plain:"",icon:"mdi-chevron-right",class:"mr-sm-8 ml-sm-4 mr-3 ml-3 black darken-1",disabled:!o.nextUnit,onClick:n[3]||(n[3]=l=>t.$emit("next-unit"))},null,8,["disabled"]),e.createVNode(a,{elevation:"1",plain:"",icon:"mdi-rotate-left",class:"black darken-1",onClick:n[4]||(n[4]=l=>o.viewModel.rotateCounterClockwise())})])}const O=v(ue,[["render",me],["__scopeId","data-v-129ef905"]]);class A{constructor(n){this._numParts=n,this._loadedCount=0,this._isError=!1,this._finishedAction=()=>{},this._errorAction=()=>{},this._loadProgressAction=()=>{}}onLoadFinished(n){return this._finishedAction=n,this}onLoadError(n){return this._errorAction=n,this}onLoadProgress(n){return this._loadProgressAction=n,this}partLoaded(){this.isFinished||(this._loadedCount++,this._loadProgressAction(this.percentLoaded),this.isFinished&&this._finishedAction())}errorDetected(){this._isError||(this._isError=!0,this._errorAction())}get isFinished(){return this._loadedCount>=this._numParts}get isError(){return this._isError}get percentLoaded(){return Math.round(this._loadedCount*100/this._numParts)}}class U{constructor(n,o,r,i){this._rotator=n,this._direction=o,this._frameIndex=r,this._sceneCount=i}get atEnd(){return this._sceneCount===0}get frameIndex(){return this._frameIndex}nextFrame(){const n=this._rotator.clampFrameIndex(this._frameIndex+this._direction),o=this._rotator.isCardinalFrame(n)?this._sceneCount-1:this._sceneCount;return new U(this._rotator,this._direction,n,o)}}class Q{constructor(n,o){this._cardinalFrames=n,this._totalFrameCount=o}start(n,o,r){const i=this.startFrameIndexForScene(o);return new U(this,n,i,r)}isCardinalFrame(n){return this._cardinalFrames.includes(n)}clampFrameIndex(n){return(this._totalFrameCount+n)%this._totalFrameCount}startFrameIndexForScene(n){return this._cardinalFrames[n]}}const P=64,_=4,ge=120,ve={name:"QiApartmentChooserRotator",props:{viewModel:{type:Object,required:!0},build:{type:String,default:""},cdnFileResolver:{type:Function,required:!0},cardinalFrames:{type:Array,required:!0}},emits:["loaded","error","progress"],data(){const t=this.createFrames();return{loadTracker:new A(t.length).onLoadFinished(()=>this.$emit("loaded")).onLoadProgress(n=>this.$emit("progress",n)).onLoadError(()=>this.$emit("error")),sceneRotator:new Q(this.cardinalFrames,P),images:t,isPreloaded:!1}},computed:{activeFrame(){return this.images.find(t=>t.show)}},watch:{"viewModel.currentScene"(t,n){const o=this.getDirection(n,t),r=this.getSceneCountBetween(n,t);this.rotateInDirection(n,o,r)}},created(){this.rotateComplete()},methods:{rotateInDirection(t,n,o){this.viewModel.isRotating||(this.viewModel.isRotating=!0,this.rotationStep(this.sceneRotator.start(n,t%_,o)))},rotationStep(t){setTimeout(()=>{this.images[t.frameIndex].show=!1;const n=t.nextFrame();this.images[n.frameIndex].show=!0,n.atEnd?this.rotateComplete():window.requestAnimationFrame(()=>this.rotationStep(n))},1e3/ge)},rotateComplete(){const t=this.sceneRotator.startFrameIndexForScene(this.viewModel.currentScene%_);t in this.images&&(this.images[t].show=!0),this.viewModel.isRotating=!1},createFrames(){const t=[];for(let n=0;n<P;n++){const{sourceSet:o,defaultPath:r}=this.frameImageSource(n);t.push({index:n,sourceSet:o,defaultPath:r,show:!1})}return t},frameImageSource(t){const n=("0000"+(t+1)).slice(-4),o=this.build?`?v=${this.build}`:"",r=[`${this.cdnFileResolver(`/480/${n}.jpg${o}`)} 480w`,`${this.cdnFileResolver(`/960/${n}.jpg${o}`)} 960w`,`${this.cdnFileResolver(`/1280/${n}.jpg${o}`)} 1280w`].join(","),i=this.cdnFileResolver(`/480/${n}.jpg${o}`);return{sourceSet:r,defaultPath:i}},getSceneCountBetween(t,n){const o=_/2,r=Math.abs(t-n);return r>o?_-r:r},getDirection(t,n){if(t===n)return 0;const r=Math.abs(t-n)<_/2;return r&&t<n||!r&&t>n?1:-1}}},pe={key:0,class:"fill-parent d-flex justify-center align-center blue-grey lighten-5"},fe={key:1,class:"frame-container"},be={class:"frame-image"},ye=["srcset","type"],ke=["src"],we={key:2,id:"image-stack",class:"frame-container"},Ce=["alt"],_e=["srcset"],Be=["src"];function Ie(t,n,o,r,i,s){const a=e.resolveComponent("v-icon");return e.openBlock(),e.createElementBlock("div",null,[i.loadTracker.isError?(e.openBlock(),e.createElementBlock("div",pe,[e.createVNode(a,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):i.isPreloaded?(e.openBlock(),e.createElementBlock("div",we,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.images,l=>(e.openBlock(),e.createElementBlock("picture",{key:l.index,alt:l.index,class:e.normalizeClass({"frame-image":!0,show:l.show})},[e.createElementVNode("source",{srcset:l.sourceSet,type:"image/jpeg"},null,8,_e),e.createElementVNode("img",{src:l.defaultPath,alt:"Building image",onLoad:n[2]||(n[2]=d=>i.loadTracker.partLoaded()),onError:n[3]||(n[3]=d=>i.loadTracker.errorDetected())},null,40,Be)],10,Ce))),128))])):(e.openBlock(),e.createElementBlock("div",fe,[e.createElementVNode("picture",be,[e.createElementVNode("source",{srcset:s.activeFrame.sourceSet,type:s.activeFrame.type},null,8,ye),e.createElementVNode("img",{src:s.activeFrame.defaultPath,onLoad:n[0]||(n[0]=l=>i.isPreloaded=!0),onError:n[1]||(n[1]=l=>i.loadTracker.errorDetected())},null,40,ke)])]))])}const $=v(ve,[["render",Ie],["__scopeId","data-v-e6481f8e"]]),Se={name:"FloatingCard",props:{pos:{type:Object,required:!0},isHoverable:Boolean},computed:{q(){const t=this.pos.x<=this.pos.width/2?"left":"right";return`${this.pos.y<=this.pos.height/2?"top":"bottom"}-${t}`}}};function xe(t,n,o,r,i,s){const a=e.resolveComponent("v-dialog"),l=e.resolveComponent("v-fade-transition");return e.openBlock(),e.createBlock(l,{origin:s.q.replace("-"," ")+" "+o.pos.x+" "+o.pos.y},{default:e.withCtx(()=>[o.isHoverable?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["floating-card",s.q]),style:e.normalizeStyle({left:`${o.pos.x}px`,top:`${o.pos.y}px`,pointerEvents:"none"})},[e.renderSlot(t.$slots,"default",{isHoverable:o.isHoverable},void 0,!0)],6)):(e.openBlock(),e.createBlock(a,{key:1,value:!0,width:"auto","onClick:outside":n[0]||(n[0]=d=>t.$emit("outside",d))},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{isHoverable:o.isHoverable},void 0,!0)]),_:3}))]),_:3},8,["origin"])}const B=v(Se,[["render",xe],["__scopeId","data-v-b74de171"]]),De={name:"QiZoomBox",props:{desktop:{type:Boolean,default:!0},mobile:{type:Boolean,default:!0},maxScale:{type:Number,default:10},consumeMouseClickWhenMoved:{type:Boolean,default:!0},consumeMouseUpWhenMoved:{type:Boolean,default:!0}},data(){return{zoom:100,originX:0,originY:0,moving:!1,scaling:!1,lastEvent:void 0,moved:!1}},computed:{transform(){return`translateX(${this.originX}px) translateY(${this.originY}px) scale(${this.scale})`},scale(){return this.zoom/100},actualMaxScale(){return this.maxScale*100}},watch:{scale(){this.emitUpdate()},originX(){this.emitUpdate()},originY(){this.emitUpdate()},desktop(){this.desktop?this.addDesktopHandlers():this.removeDesktopHandlers()},mobile(){this.mobile?this.addMobileHandlers():this.removeMobileHandlers()}},mounted(){this.desktop&&this.addDesktopHandlers(),this.mobile&&this.addMobileHandlers()},beforeUnmount(){this.desktop&&this.removeDesktopHandlers(),this.mobile&&this.removeMobileHandlers()},methods:{addDesktopHandlers(){this.$refs.box.addEventListener("wheel",this.wheelHandler,{capture:!0}),this.$refs.box.addEventListener("mousedown",this.mouseDownHandler,{capture:!0}),this.$refs.box.addEventListener("mousemove",this.mouseMoveHandler,{capture:!0}),window.addEventListener("mouseup",this.mouseUpHandler,{capture:!0}),window.addEventListener("click",this.mouseClickHandler,{capture:!0})},addMobileHandlers(){this.$refs.box.addEventListener("touchstart",this.touchStartHandler,{capture:!0}),this.$refs.box.addEventListener("touchmove",this.touchMoveHandler,{capture:!0}),window.addEventListener("touchend",this.touchEndHandler,{capture:!0}),window.addEventListener("touchcancel",this.touchEndHandler,{capture:!0})},removeDesktopHandlers(){this.$refs.box.removeEventListener("wheel",this.wheelHandler,{capture:!0}),this.$refs.box.removeEventListener("mousedown",this.mouseDownHandler,{capture:!0}),this.$refs.box.removeEventListener("mousemove",this.mouseMoveHandler,{capture:!0}),window.removeEventListener("mouseup",this.mouseUpHandler,{capture:!0}),window.removeEventListener("click",this.mouseClickHandler,{capture:!0})},removeMobileHandlers(){this.$refs.box.removeEventListener("touchstart",this.touchStartHandler,{capture:!0}),this.$refs.box.removeEventListener("touchmove",this.touchMoveHandler,{capture:!0}),window.removeEventListener("touchend",this.touchEndHandler,{capture:!0}),window.removeEventListener("touchcancel",this.touchEndHandler,{capture:!0})},wheelHandler(t){const{x:n,y:o}=this.getOffsetCoordinates(t);this.adjustZoom(-t.deltaY/10,n,o),t.preventDefault()},mouseDownHandler(t){this.moving=!0,this.moved=!1,this.lastEvent=t},mouseMoveHandler(t){if(this.moving){const{x:n,y:o}=this.getOffsetCoordinates(t),{x:r,y:i}=this.getOffsetCoordinates(this.lastEvent),s={x:n-r,y:o-i};this.adjustTranslateX(s.x),this.adjustTranslateY(s.y),this.moved=!0,this.lastEvent=t}},mouseUpHandler(t){this.moving&&this.moved&&this.consumeMouseUpWhenMoved&&(t.preventDefault(),t.stopImmediatePropagation())},mouseClickHandler(t){this.moving&&(this.moved&&this.consumeMouseClickWhenMoved&&(t.preventDefault(),t.stopImmediatePropagation()),this.moving=!1)},touchStartHandler(t){this.moving=t.touches.length===1,this.scaling=t.touches.length===2,this.lastEvent=t},touchMoveHandler(t){if(this.moving){const{x:n,y:o}=this.getOffsetCoordinates(t.touches[0]),{x:r,y:i}=this.getOffsetCoordinates(this.lastEvent.touches[0]),s={x:n-r,y:o-i};this.adjustTranslateX(s.x),this.adjustTranslateY(s.y)}else if(this.scaling&&t.touches.length===2){const{x:n,y:o}=this.getOffsetCoordinates(t.touches[0]),{x:r,y:i}=this.getOffsetCoordinates(this.lastEvent.touches[0]),{x:s,y:a}=this.getOffsetCoordinates(t.touches[1]),{x:l,y:d}=this.getOffsetCoordinates(this.lastEvent.touches[1]),c=Math.hypot(r-l,i-d),h=Math.hypot(n-s,o-a),p=(s+n)/2,m=(a+o)/2;this.adjustZoom(h-c,p,m)}this.lastEvent=t},touchEndHandler(){this.moving=!1,this.scaling=!1},getOffsetCoordinates(t){const{left:n,top:o}=this.$refs.box.getBoundingClientRect();return{x:t.clientX-n,y:t.clientY-o}},adjustTranslateX(t){const n=this.$refs.box.clientWidth,o=n*this.scale;this.originX=Math.max(Math.min(0,this.originX+t),-(o-n))},adjustTranslateY(t){const n=this.$refs.box.clientHeight,o=n*this.scale;this.originY=Math.max(Math.min(0,this.originY+t),-(o-n))},adjustZoom(t,n,o){const r=this.$refs.box.clientWidth,i=this.$refs.box.clientHeight,s=r*this.scale,a=i*this.scale;this.zoom=Math.min(Math.max(100,this.zoom+t),this.actualMaxScale);const l=r*this.scale,d=i*this.scale,c=l-s,h=d-a;this.originX-=n/r*c,this.originY-=o/i*h,this.adjustTranslateX(0),this.adjustTranslateY(0)},emitUpdate(){this.$emit("update",{scale:this.scale,x:this.originX,y:this.originY,resolve:(t,n)=>{const o=this.$refs.box.clientWidth,r=this.$refs.box.clientHeight,i=this.originX/-this.scale,s=this.originY/-this.scale,a=i+o/this.scale,l=s+r/this.scale,d=t/o*(a-i)+i,c=n/r*(l-s)+s;return{x:d,y:c}}})}}},Ee={ref:"box",class:"zoom-box-container"};function Ae(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",Ee,[e.createElementVNode("div",{style:e.normalizeStyle({"transform-origin":"top left",transform:s.transform}),class:"zoom-box"},[e.renderSlot(t.$slots,"default",{},void 0,!0)],4)],512)}const I=v(De,[["render",Ae],["__scopeId","data-v-83bfd28a"]]),q=4;function G(t){return t<q?t+1:1}function Ve(t){return t>1?t-1:q}class X{constructor(n){this._state={isRotating:!1,currentScene:n}}get isRotating(){return this._state.isRotating}set isRotating(n){this._state.isRotating=n}get navigator(){return this._navigator}get sceneModel(){return this._sceneModel}unlessRotatingDo(n){this.isRotating||n()}get currentScene(){return this._state.currentScene}set currentScene(n){this._state.currentScene=n}rotateCounterClockwise(){this.unlessRotatingDo(()=>{this.currentScene=G(this.currentScene)})}rotateClockwise(){this.unlessRotatingDo(()=>{this.currentScene=Ve(this.currentScene)})}}const Me={interior:"Interiør","see-a-selection-of-the-options-in-the-project":"Se et utvalg av tilvalgsmulighetene i prosjektet.","floor-plan":"Planløsning","all-illustrations-are-indicative-deviations-may-occur":{nb:"Alle illustrasjoner er veiledende. Avvik kan forekomme.",en:"All illustrations are indicative. Discrepancies may exist."},"read-more-here":"Les mer her","i-understand":{nb:"Jeg forstår",en:"I understand"},share:"Share","share-to-facebook":"Share to Facebook","share-to-linkedin":"Share to Linkedin","share-to-twitter":"Share to Twitter","share-via-email":"Share via Email","copy-link":"Copy link","virtual-view":"Virtuell Visning","slide-show":"Slide Show",room:"Room",floor:"Floor","see-apartments":"See apartments","see-apartment":"See apartment","click-and-drag-to-look-around":{en:"Click and drag to look around",nb:"Klikk og dra for å se deg rundt"},"click-on-the-cricles-to-move-around":{en:"Click on the circles to move around",nb:"Klikk på sirkelene for å gå rundt"},"use-the-mouse-wheel-to-zoom":{en:"Use the mouse wheel to zoom",nb:"Bruk mushjulet for å zoome"},"you-can-also-use-the-arrow-keys-to-move-around":{en:"You can also use the arrow keys to move around",nb:"Du kan også bruke pilene på tastaturet for å gå rundt"},"tap-and-drag-to-look-around":{en:"Tap and drag to look around",nb:"Trykk og dra for å se deg rundt"},"tap-on-the-circles-to-move-around":{en:"Tap on the circles to move around",nb:"Trykk på sirkelene for å gå rundt"},"use-two-fingers-to-zoom":{en:"Use two fingers to zoom",nb:"Bruk to fingre for å zoome"},"dont-show-again":{en:"Don't Show Again",nb:"Ikke vis igjen"}};class f{constructor(n,o){this._labels={...Me,...n||{}},this._language=o||"en"}getLabel(n){return n in this._labels?this.get(this._labels[n]):n}get(n){if(typeof n=="string")return n;if(this._language in n&&n[this._language])return n[this._language];for(const o in n)if(n[o])return n[o];return""}}const Ne=4,Re=[0,16,32,48],Fe={name:"QiApartmentChooser",components:{QiApartmentChooserRaster:D,QiApartmentChooserSvg:E,QiApartmentChooserNavigation:O,QiApartmentChooserRotator:$,QiFloatingCard:B,QiHoverProbe:k,QiZoomBox:I},provide(){return{i18n:this.i18n?new f(this.i18n.labels,this.i18n.language):new f}},emits:["select-unit","go-to-unit","nav-unit","hover-over-unit","hover-out-unit","initialized"],props:{i18n:{type:Object,default:void 0},showCards:{type:Boolean,default:!0},build:{type:String,default:""},buildingSceneDataResolver:{type:Function,default:null},buildingScenesByApartmentResolver:{type:Function,default:null},cdnFileResolver:{type:Function,required:!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},unitCallback:{type:Function,default:t=>t},canGoToUnitCallback:{type:Function,default:()=>!0},selectedUnitId:{type:String,default:null},nextUnit:{type:Object,default:null},prevUnit:{type:Object,default:null},drawObserver:{type:[Object,Array,String,Number,Boolean],default:null},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},useSvg:{type:Boolean,default:!1}},data(){return{loadState:{isReady:!1,isError:!1,progress:void 0},scenesByApartment:null,sceneData:null,scenes:null,viewModel:void 0,resourceLoader:new y,pos:{x:0,y:0,width:0,height:0},closeHandler:void 0,hoverApartment:void 0}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled},selectedUnit(){return this.unitCallback?this.unitCallback(this.selectedUnitId):this.selectedUnitId},overlayComponent(){return this.useSvg?E:D}},watch:{selectedUnitId:{handler(){if(this.selectedUnitId&&this.viewModel){const t=this.scenesByApartment[this.selectedUnitId];t&&(this.viewModel.currentScene=t)}},immediate:!0}},mounted(){return N(this,void 0,void 0,function*(){let t=null;try{t=yield this.resourceLoader.loadJson(this.cdnFileResolver("/apartmentChooser.json"))}catch{console.info("apartmentChooser.json not found")}const n=t&&t.startScene!==void 0?t.startScene:Ne;this.scenes=t&&t.scenes!==void 0?t.scenes:Re,this.sceneData=t&&t.sceneData!==void 0?t.sceneData.map(i=>({apartmentId:i.apartmentID,index:i.index})):this.buildingSceneDataResolver?yield this.buildingSceneDataResolver():[],this.scenesByApartment=t&&t.sceneData!==void 0?t.sceneData.map(i=>{const s=i.bestScene===0?4:i.bestScene;return{unitId:i.apartmentID,scene:s}}).reduce((i,s)=>Object.assign(Object.assign({},i),{[s.unitId]:s.scene}),{}):this.buildingScenesByApartmentResolver?yield this.buildingScenesByApartmentResolver():[];const o=(i,s="unitId")=>{let a=n,l=[];for(let d=0;d<q;d++)l.push(a),a=G(a);return i.sort((d,c)=>{const h=l.findIndex(m=>m===this.scenesByApartment[d[s]]),p=l.findIndex(m=>m===this.scenesByApartment[c[s]]);return h<p?-1:h>p?1:0}),i},r=i=>{this.viewModel=new X(i)};this.$emit("initialized",{scene:n,scenes:this.scenes,sceneData:this.sceneData,scenesByApartment:this.scenesByApartment,unitsSceneSort:o,initialize:r})})},methods:{onPos(t){this.pos=t},hoverOver({hoverApartment:t,closeHandler:n}){this.hoverApartment=t,this.closeHandler=n,this.$emit("hover-over-unit",t)},hoverOut({hoverApartment:t,closeHandler:n}){this.hoverApartment=null,this.closeHandler=n,this.$emit("hover-out-unit",t)}}},Te={key:0},He={class:"interactive-viewer"},Le={class:"fill-parent"},Oe={key:0},Ue={key:1,class:"navigation"},$e={key:2};function qe(t,n,o,r,i,s){const a=e.resolveComponent("qi-apartment-chooser-rotator"),l=e.resolveComponent("qi-zoom-box"),d=e.resolveComponent("qi-floating-card"),c=e.resolveComponent("qi-apartment-chooser-navigation"),h=e.resolveComponent("v-progress-linear"),p=e.resolveComponent("qi-hover-probe");return i.viewModel?(e.openBlock(),e.createElementBlock("div",Te,[e.createElementVNode("div",He,[e.createElementVNode("div",Le,[e.createVNode(l,{desktop:i.loadState.isReady&&o.interactiveDesktop,mobile:i.loadState.isReady&&o.interactiveMobile},{default:e.withCtx(()=>[e.createVNode(a,{"cdn-file-resolver":o.cdnFileResolver,"view-model":i.viewModel,"cardinal-frames":i.scenes,build:o.build,onProgress:n[0]||(n[0]=m=>i.loadState.progress=m),onLoaded:n[1]||(n[1]=m=>i.loadState.isReady=!0),onError:n[2]||(n[2]=m=>i.loadState.isError=!0)},null,8,["cdn-file-resolver","view-model","cardinal-frames","build"]),i.loadState.isReady?(e.openBlock(),e.createElementBlock("div",Oe,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.overlayComponent),{"cdn-file-resolver":o.cdnFileResolver,"view-model":i.viewModel,"selected-unit-id":o.selectedUnitId,"scene-data":i.sceneData,"color-callback":o.colorCallback,"unit-callback":o.unitCallback,"can-go-to-unit-callback":o.canGoToUnitCallback,"draw-observer":o.drawObserver,onSelectUnit:n[3]||(n[3]=m=>t.$emit("select-unit",m)),onGoToUnit:n[4]||(n[4]=m=>t.$emit("go-to-unit",m)),onHoverOver:s.hoverOver,onHoverOut:s.hoverOut,onPos:s.onPos},{default:e.withCtx(m=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(m)),void 0,!0)]),_:3},40,["cdn-file-resolver","view-model","selected-unit-id","scene-data","color-callback","unit-callback","can-go-to-unit-callback","draw-observer","onHoverOver","onHoverOut","onPos"]))])):e.createCommentVNode("",!0)]),_:3},8,["desktop","mobile"]),i.hoverApartment&&o.showCards?(e.openBlock(),e.createBlock(d,{key:0,"is-hoverable":s.isHoverable,pos:i.pos,onOutside:i.closeHandler},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{unit:i.hoverApartment,canGoToUnit:o.canGoToUnitCallback(i.hoverApartment),goToUnit:()=>o.canGoToUnitCallback(i.hoverApartment)&&t.$emit("go-to-unit",i.hoverApartment),pos:i.pos,isHoverable:s.isHoverable,close:i.closeHandler},void 0,!0)]),_:3},8,["is-hoverable","pos","onOutside"])):e.createCommentVNode("",!0),i.loadState.isReady?(e.openBlock(),e.createElementBlock("div",Ue,[e.createVNode(c,{"can-go-to-unit-callback":o.canGoToUnitCallback,"selected-unit":s.selectedUnit,"prev-unit":o.prevUnit,"next-unit":o.nextUnit,"view-model":i.viewModel,onGoToUnit:n[5]||(n[5]=m=>t.$emit("go-to-unit",m)),onPrevUnit:n[6]||(n[6]=m=>t.$emit("nav-unit",o.prevUnit)),onNextUnit:n[7]||(n[7]=m=>t.$emit("nav-unit",o.nextUnit))},null,8,["can-go-to-unit-callback","selected-unit","prev-unit","next-unit","view-model"])])):i.loadState.isError?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",$e,[e.createVNode(h,{indeterminate:!i.loadState.progress,value:i.loadState.progress},null,8,["indeterminate","value"])]))])]),e.createVNode(p,{ref:"hoverProbe"},null,512)])):e.createCommentVNode("",!0)}const W=v(Fe,[["render",qe],["__scopeId","data-v-3a1121f3"]]),je="data:image/png;base64,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",ze={name:"QiNorthDirection",props:{longitude:{type:Number,default:()=>0}},data(){return{compassNeedle:je}},computed:{needleRotation(){return{transform:`rotate(${90-this.longitude}deg)`,transition:" transform 0.5s ease-in"}}}};function Ye(t,n,o,r,i,s){const a=e.resolveComponent("v-img");return e.openBlock(),e.createBlock(a,{src:i.compassNeedle,style:e.normalizeStyle(s.needleRotation)},null,8,["src","style"])}const R=v(ze,[["render",Ye]]);function H(t){return t.toLocaleString("en-no",{month:"short",day:"numeric"})}const Pe=e.defineComponent({setup(){},name:"QiBuildingChooserSunSimControl",props:{modelValue:{type:Number,required:!0},dateSelector:{type:Object,required:!0},isLoading:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{currentValue:this.modelValue,currentDate:null}},computed:{currentValueString(){const t=Math.floor(this.currentValue/2).toString().padStart(2,"0"),n=this.currentValue%2===0?"00":"30";return`${t}:${n}`},dates(){return this.dateSelector.dates.map(H)},selectedDate:{get(){return H(this.dateSelector.selectedDate)},set(t){this.dateSelector.selectIndex(this.dates.indexOf(t))}}},watch:{currentValue(t){this.$emit("update:modelValue",t)},modelValue(t){this.currentValue=Math.floor(t)},dates:{handler(t){this.currentDate=H(this.dateSelector.selectedDate)},immediate:!0},currentDate(t){this.dateSelector.selectIndex(this.dates.indexOf(t))}},methods:{}}),Qe={class:"sunsim-bar-wrapper"},Ge={class:"sunsim-date d-flex align-center pl-5 pr-5"},Xe={key:1,class:"text-center text-body-1"},We={class:"sunsim-wrapper d-flex align-center px-3"},Ke={class:"sunsim-time-label text-body-1 font-weight-normal ml-2"};function Ze(t,n,o,r,i,s){const a=e.resolveComponent("v-icon"),l=e.resolveComponent("v-select"),d=e.resolveComponent("v-progress-linear"),c=e.resolveComponent("v-slider");return e.openBlock(),e.createElementBlock("div",Qe,[e.createElementVNode("div",Ge,[e.createVNode(a,{color:"black",class:"mr-2",icon:"mdi-calendar-blank-outline"}),t.dateSelector.hasMultipleDates?(e.openBlock(),e.createBlock(l,{key:0,modelValue:t.currentDate,"onUpdate:modelValue":n[0]||(n[0]=h=>t.currentDate=h),items:t.dates,density:"compact",variant:"underlined","hide-details":"",class:"day-selector"},null,8,["modelValue","items"])):(e.openBlock(),e.createElementBlock("span",Xe,e.toDisplayString(t.selectedDate),1))]),e.createElementVNode("div",We,[e.createElementVNode("span",Ke,e.toDisplayString(t.currentValueString),1),e.createVNode(a,{medium:"",class:"ml-2 mr-2 icon"},{default:e.withCtx(()=>[e.createTextVNode("mdi-white-balance-sunny")]),_:1}),t.isLoading?(e.openBlock(),e.createBlock(d,{key:0,indeterminate:"",rounded:"",height:"6",color:"grey lighten-1",class:"mr-2"})):(e.openBlock(),e.createBlock(c,{key:1,modelValue:t.currentValue,"onUpdate:modelValue":n[1]||(n[1]=h=>t.currentValue=h),min:0,max:47,step:1,"thumb-label":!1,"hide-details":!0,"thumb-color":"white","thumb-size":"25","track-size":"7","track-fill-color":"transparent",class:"sunsim-slider mr-1"},null,8,["modelValue"]))])])}const F=v(Pe,[["render",Ze],["__scopeId","data-v-1fba3edd"]]),Je=e.defineComponent({setup(){},name:"QiBuildingChooserSceneImageStack",props:{imageUrls:{type:Array,required:!0},activeIndex:{type:Number,required:!0}},emits:["resize","ready","preloaded","reset"],data(){return{state:"init",activeStates:["preloaded","loaded"],loadTracker:new A(0)}},watch:{imageUrls(t){this.$emit("reset"),this.loadImages(t)}},mounted(){this.loadImages(this.imageUrls),new ResizeObserver(t=>{window.requestAnimationFrame(()=>{const n=t[0].contentRect.width,o=t[0].contentRect.height;this.$emit("resize",{width:n,height:o})})}).observe(this.$refs.baseImage)},methods:{onPreloaded(){this.state="preloaded",this.$emit("preloaded")},loadImages(t){this.state="init",this.$refs.baseImage.src=t[0],this.loadTracker=new A(t.length).onLoadFinished(()=>{this.state="loaded",this.$emit("ready")})}}}),et={key:0},tt=["src"];function nt(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("img",{ref:"baseImage",class:"image-instance zero",style:{opacity:1,borderRadius:50},onLoad:n[0]||(n[0]=(...a)=>t.onPreloaded&&t.onPreloaded(...a))},null,544),t.state==="preloaded"||t.state==="loaded"?e.withDirectives((e.openBlock(),e.createElementBlock("div",et,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.imageUrls,(a,l)=>(e.openBlock(),e.createElementBlock("img",{key:l,class:e.normalizeClass({"image-instance":!0,active:l===t.activeIndex}),src:a,onLoad:n[1]||(n[1]=d=>t.loadTracker.partLoaded())},null,42,tt))),128)),e.createTextVNode(" Here ")],512)),[[e.vShow,t.state==="loaded"]]):e.createCommentVNode("",!0)])}const T=v(Je,[["render",nt],["__scopeId","data-v-fad48118"]]),ot="buildingChooser.json",it=180;class j{constructor(n){this._cdnFileResolver=n,this._resourceLoader=new y}constructFileUrl(n){return this._cdnFileResolver?this._cdnFileResolver(`/${n}`):null}loadConfigFile(){const n=this.constructFileUrl(ot);return n?this._resourceLoader.loadJson(n):null}loadBuildingMapImage(n){const o=this.constructFileUrl(n.lookupFilename);return o?this._resourceLoader.loadImage(o):null}getViewLongitude(n){return n.cameraRotation&&n.cameraRotation.y+270}getBuildingData(n){const o=n?n.buildings:[],r=o.map(s=>s.id),i=o.map(s=>({id:s.id,url:this.constructFileUrl(s.overlayFilename)}));return{buildingIds:r,buildingOverlays:i}}getBackgroundImageData(n){return"days"in n?this.processMultipleDays(n.days):[this.processTimeSamples(it,n.timeSamples)]}processMultipleDays(n){return n.map(o=>this.processTimeSamples(o.dayOfYear,o.timeSamples))}processTimeSamples(n,o){return{urls:o.map(i=>this.constructFileUrl(i.filename)),referenceDate:this.makeReferenceDate(n)}}makeReferenceDate(n){const o=new Date(0);return o.setUTCDate(n),o}async loadBuildingChooser(){try{const n=await this.loadConfigFile();if(n){const o=await this.loadBuildingMapImage(n);if(o){const r=this.getViewLongitude(n),{buildingIds:i,buildingOverlays:s}=this.getBuildingData(n),a=this.getBackgroundImageData(n);return{mapImage:o,viewLongitude:r,buildingIds:i,buildingOverlays:s,backgrounds:a}}}return null}catch{return null}}}class w{static empty(){return new w([])}constructor(n){this._buildingIds=n}getBuildingId(n,o,r){const i=this._getBuildingIndex(n,o,r);if(i!==void 0)return this._buildingIds[i]}_getBuildingIndex(n,o,r){const[i,s,a,l]=n.getPixel(o,r);if(l===255&&i===s&&s===a)return i}}class C{static empty(){return new C(null)}constructor(n){this._mapImage=n,this._context=null}update(n){this._mapImage&&(this._context=n.getContext("2d",{willReadFrequently:!0}),this._context.drawImage(this._mapImage,0,0,n.width,n.height))}getPixel(n,o){try{return this._context?this._context.getImageData(n,o,1,1).data:[0,0,0,0]}catch{return[0,0,0,0]}}}const st=new Date(0);class S{static empty(){return new S([{referenceDate:st,urls:[]}])}constructor(n){this._imagesByDay=n,this._state={selectedIndex:0}}selectIndex(n){n<this._imagesByDay.length&&(this._state.selectedIndex=n)}get dates(){return this._imagesByDay.map(n=>n.referenceDate)}get hasMultipleDates(){return this._imagesByDay.length>1}get selectedIndex(){return this._state.selectedIndex}get selectedDate(){return this._imagesByDay[this.selectedIndex].referenceDate}get imageUrls(){return this._imagesByDay[this.selectedIndex].urls}}const rt=e.defineComponent({setup(){e.ref({})},name:"QiBuildingChooserSvg",components:{QiBuildingChooserSunSimControl:F,QiBuildingChooserSceneImageStack:T,QiNorthDirection:R,QiFloatingCard:B,QiHoverProbe:k,QiZoomBox:I},emits:["go-to-building","hover-over-building","hover-out-building"],provide(){return{i18n:this.i18n?new f(this.i18n.labels,this.i18n.language):new f}},props:{showCards:{type:Boolean,default:()=>!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:t=>t},canGoToBuildingCallback:{type:Function,default:()=>!0},buildingChooserTimeOfDay:{type:String,default:null},cdnFileResolver:{type:Function,required:!0},i18n:{type:Object,default:void 0},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},customOverlayContent:{type:String,default:""}},data(){return{sceneState:{preloaded:!1,ready:!1},canvasDimensions:{width:0,height:0},pos:{x:0,y:0,width:0,height:0},pickerData:void 0,hoverBuildingId:void 0,halfHourMark:new Date().getHours()*2+(new Date().getMinutes()<30?0:1),error:!1,resourceLoader:new y,svgObjects:void 0,svgViewBox:"0 0 0 0"}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled},hoverBuilding(){return this.getBuildingData(this.hoverBuildingId)}},watch:{buildingChooserTimeOfDay:{handler(){if(this.buildingChooserTimeOfDay){const[t,n,o]=/^(\d\d):(\d\d)$/.exec(this.buildingChooserTimeOfDay),r=parseInt(o);this.halfHourMark=parseInt(n)*2+(r<15?0:r>45?2:1)}},immediate:!0},hoverBuildingId(t,n){t?this.$emit("hover-over-building",this.getBuildingData(t)):this.$emit("hover-out-building",this.getBuildingData(n))}},mounted(){return N(this,void 0,void 0,function*(){const n=yield new j(this.cdnFileResolver).loadBuildingChooser();if(n){this.canvasRaster=new C(n.mapImage),this.buildingMap=new w(n.buildingIds),this.daysOfYear=new S(n.backgrounds),this.pickerData={buildingOverlays:n.buildingOverlays,sceneLongitude:n.viewLongitude};const o=[];for(let{id:r,url:i}of n.buildingOverlays)this.resourceLoader.loadJson(i.replace(".png",".svg")).then(s=>{const l=new DOMParser().parseFromString(s,"image/svg+xml").getElementsByTagName("svg")[0];this.svgViewBox=l.getAttribute("viewBox"),o.push({id:r,svg:l.innerHTML})});this.svgObjects=o}else this.error=!0})},methods:{resizeScene({width:t,height:n}){this.canvasDimensions.width=t,this.canvasDimensions.height=n},sceneReset(){this.sceneState={preloaded:!1,ready:!1}},getBuildingData(t){return this.buildingCallback?this.buildingCallback(t):t},getColor(t){return this.colorCallback(this.getBuildingData(t),t===this.hoverBuildingId?"hover":"idle")},getGClass(t){const n=this.getBuildingData(t),o=this.colorCallback(n,t===this.hoverBuildingId?"hover":"idle"),r=[];return t===this.hoverBuildingId?r.push("hover"):r.push("idle"),o&&this.canGoToBuildingCallback(n)?r.push("clickable"):r.push("restricted"),r.join(" ")},getGStyle(t){const n=this.getBuildingData(t),o=this.colorCallback(n,t===this.hoverBuildingId?"hover":"idle");if(o){const{r,g:i,b:s,a,s:l}=o;return{strokeWidth:l!==void 0?l:2,stroke:`rgb(${r}, ${i}, ${s})`,strokeOpacity:1,fill:`rgb(${r}, ${i}, ${s})`,fillOpacity:a/255,cursor:`${this.canGoToBuildingCallback(n)?"cursor":"default"} !important`}}else return{strokeWidth:0,stroke:"white",strokeOpacity:0,fill:"white",fillOpacity:0,cursor:"default !important"}},onBuildingMouseOver(t,n){this.isHoverable&&(this.pos={x:t.layerX,y:t.layerY,width:this.canvasDimensions.width,height:this.canvasDimensions.height},this.hoverBuildingId=n,this.$emit("hover-over-building",this.getBuildingData(n)))},onBuildingMouseOut(t,n){this.isHoverable&&(this.pos={x:t.layerX,y:t.layerY,width:this.canvasDimensions.width,height:this.canvasDimensions.height},this.hoverBuildingId=void 0,this.$emit("hover-out-building",this.getBuildingData(n)))},onBuildingMouseMove(t){this.isHoverable&&(this.pos={x:t.layerX,y:t.layerY,width:this.canvasDimensions.width,height:this.canvasDimensions.height})},onBuildingClick(t){this.hoverBuildingId=t,this.isHoverable&&this.hoverBuilding&&this.canGoToBuildingCallback(this.hoverBuilding)&&this.$emit("go-to-building",this.hoverBuilding)}}}),at={key:0,style:{height:"50vh"},class:"d-flex justify-center align-center blue-grey lighten-5"},lt={class:"image-instances"},dt={key:0},ct={class:"svg-container"},ut=["viewBox"],ht=["innerHTML","data-building-id","onMouseover","onMouseout","onMousemove","onClick"],mt=["innerHTML"];function gt(t,n,o,r,i,s){const a=e.resolveComponent("v-icon"),l=e.resolveComponent("qi-building-chooser-scene-image-stack"),d=e.resolveComponent("qi-zoom-box"),c=e.resolveComponent("qi-north-direction"),h=e.resolveComponent("qi-building-chooser-sun-sim-control"),p=e.resolveComponent("qi-floating-card"),m=e.resolveComponent("qi-hover-probe");return t.error?(e.openBlock(),e.createElementBlock("div",at,[e.createVNode(a,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):t.pickerData?(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle(`height: ${t.canvasDimensions.height}px; position: relative`),class:"image-container"},[e.createVNode(d,{desktop:t.interactiveDesktop,mobile:t.interactiveMobile},{default:e.withCtx(()=>[e.createElementVNode("div",lt,[e.createVNode(l,{"image-urls":t.daysOfYear.imageUrls,"active-index":t.halfHourMark,onResize:t.resizeScene,onPreloaded:n[0]||(n[0]=g=>t.sceneState.preloaded=!0),onReady:n[1]||(n[1]=g=>t.sceneState.ready=!0),onReset:t.sceneReset},null,8,["image-urls","active-index","onResize","onReset"]),t.svgObjects?e.withDirectives((e.openBlock(),e.createElementBlock("div",dt,[e.createElementVNode("div",ct,[(e.openBlock(),e.createElementBlock("svg",{viewBox:t.svgViewBox},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.svgObjects,({id:g,svg:u},x)=>(e.openBlock(),e.createElementBlock("g",{key:x,innerHTML:u,"data-building-id":g,class:e.normalizeClass(t.getGClass(g)),style:e.normalizeStyle(t.getGStyle(g)),onMouseover:b=>t.onBuildingMouseOver(b,g),onMouseout:b=>t.onBuildingMouseOut(b,g),onMousemove:b=>t.onBuildingMouseMove(b,g),onClick:b=>t.onBuildingClick(g)},null,46,ht))),128))],8,ut))])],512)),[[e.vShow,t.sceneState.preloaded]]):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("div",{class:"custom-overlay-layer",innerHTML:t.customOverlayContent},null,8,mt),[[e.vShow,t.sceneState.preloaded]])])]),_:1},8,["desktop","mobile"]),e.withDirectives(e.createElementVNode("div",null,[t.pickerData.sceneLongitude?(e.openBlock(),e.createBlock(c,{key:0,class:"north-indicator",longitude:t.pickerData.sceneLongitude},null,8,["longitude"])):e.createCommentVNode("",!0),e.createVNode(h,{modelValue:t.halfHourMark,"onUpdate:modelValue":n[2]||(n[2]=g=>t.halfHourMark=g),"date-selector":t.daysOfYear,"is-loading":!t.sceneState.ready},null,8,["modelValue","date-selector","is-loading"])],512),[[e.vShow,t.sceneState.preloaded]]),t.showCards&&t.hoverBuilding?(e.openBlock(),e.createBlock(p,{key:0,"is-hoverable":t.isHoverable,pos:t.pos,onOutside:n[3]||(n[3]=()=>t.hoverBuildingId=void 0)},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{building:t.hoverBuilding,canGoToBuilding:t.canGoToBuildingCallback(t.hoverBuilding),goToBuilding:()=>t.canGoToBuildingCallback(t.hoverBuilding)&&t.$emit("go-to-building",t.hoverBuilding),pos:t.pos,isHoverable:t.isHoverable,close:()=>t.hoverBuildingId=void 0},void 0,!0)]),_:3},8,["is-hoverable","pos"])):e.createCommentVNode("",!0),e.createVNode(m,{ref:"hoverProbe"},null,512)],4)):e.createCommentVNode("",!0)}const V=v(rt,[["render",gt],["__scopeId","data-v-0a2cec1f"]]),vt={name:"QiBuildingChooserRasterOverlay",props:{imageUrl:{type:String,required:!0},dimensions:{type:Object,required:!0},color:{type:Object,default:()=>({r:108,g:0,b:108,a:144,s:2})}},data(){return{isLoaded:!1,overlayImage:void 0,resourceLoader:new y,context:void 0,imageData:void 0,imageDataIndices:[]}},watch:{color(t,n){(t.r!==n.r||t.g!==n.g||t.b!==n.b||t.a!==n.a)&&this.draw()}},mounted(){return N(this,void 0,void 0,function*(){this.overlayImage=yield this.resourceLoader.loadImage(this.imageUrl),this.setupDraw()})},methods:{setupDraw(){if(!this.overlayImage||!this.$refs.canvas)return;const{width:t,height:n}=this.dimensions;if(!(t===0||n===0)){this.context=this.$refs.canvas.getContext("2d",{willReadFrequently:!0}),this.context.drawImage(this.overlayImage,0,0,t,n),this.imageData=this.context.getImageData(0,0,t,n);for(let o=3;o<this.imageData.data.length;o+=4)this.imageData.data[o]!==0&&this.imageDataIndices.push(o);this.draw(),this.isLoaded=!0}},draw(){this.context&&this.imageData&&(this.applyColor(),this.context.putImageData(this.imageData,0,0))},applyColor(){if(this.color)for(let t=0;t<this.imageDataIndices.length;t++)this.imageData.data[this.imageDataIndices[t]-3]=this.color.r,this.imageData.data[this.imageDataIndices[t]-2]=this.color.g,this.imageData.data[this.imageDataIndices[t]-1]=this.color.b,this.imageData.data[this.imageDataIndices[t]]=this.color.a}}};function pt(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("canvas",e.mergeProps({ref:"canvas",class:"overlay"},o.dimensions),null,16)}const z=v(vt,[["render",pt],["__scopeId","data-v-9a90fa2f"]]),ft=e.defineComponent({setup(){e.ref({})},name:"QiBuildingChooserRaster",components:{QiBuildingChooserRasterOverlay:z,QiBuildingChooserSunSimControl:F,QiBuildingChooserSceneImageStack:T,QiNorthDirection:R,QiFloatingCard:B,QiHoverProbe:k,QiZoomBox:I},emits:["go-to-building","hover-over-building","hover-out-building"],provide(){return{i18n:this.i18n?new f(this.i18n.labels,this.i18n.language):new f}},props:{showCards:{type:Boolean,default:()=>!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:t=>t},canGoToBuildingCallback:{type:Function,default:()=>!0},buildingChooserTimeOfDay:{type:String,default:null},cdnFileResolver:{type:Function,required:!0},i18n:{type:Object,default:void 0},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},customOverlayContent:{type:String,default:""}},data(){return{sceneState:{preloaded:!1,ready:!1},canvasDimensions:{width:0,height:0},pos:{x:0,y:0,width:0,height:0},pickerData:void 0,buildingMap:w.empty(),canvasRaster:C.empty(),selectedBuildingId:void 0,halfHourMark:new Date().getHours()*2+(new Date().getMinutes()<30?0:1),viewResolver:(t,n)=>({x:t,y:n}),error:!1}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled},selectedBuilding(){return this.getBuildingData(this.selectedBuildingId)}},watch:{buildingChooserTimeOfDay:{handler(){if(this.buildingChooserTimeOfDay){const[t,n,o]=/^(\d\d):(\d\d)$/.exec(this.buildingChooserTimeOfDay),r=parseInt(o);this.halfHourMark=parseInt(n)*2+(r<15?0:r>45?2:1)}},immediate:!0},selectedBuildingId(t,n){t?this.$emit("hover-over-building",this.getBuildingData(t)):this.$emit("hover-out-building",this.getBuildingData(n))}},mounted(){return N(this,void 0,void 0,function*(){const n=yield new j(this.cdnFileResolver).loadBuildingChooser();n?(this.canvasRaster=new C(n.mapImage),this.buildingMap=new w(n.buildingIds),this.daysOfYear=new S(n.backgrounds),this.pickerData={buildingOverlays:n.buildingOverlays,sceneLongitude:n.viewLongitude},this.resizeImages()):this.error=!0})},methods:{resizeScene({width:t,height:n}){this.canvasDimensions.width=t,this.canvasDimensions.height=n,this.$nextTick(this.resizeImages)},sceneReset(){this.sceneState={preloaded:!1,ready:!1}},getBuildingData(t){return this.buildingCallback?this.buildingCallback(t):t},getBuildingId(t){const{x:n,y:o}=this.viewResolver(t.layerX,t.layerY);return this.buildingMap.getBuildingId(this.canvasRaster,n,o)},resizeImages(){if(this.$refs.canvas&&(this.canvasRaster.update(this.$refs.canvas),this.$refs.overlays))for(const t of this.$refs.overlays)t.setupDraw()},onMove(t){this.isHoverable&&(this.selectedBuildingId=this.getBuildingId(t),this.selectedBuildingId!==void 0&&(this.pos={x:t.layerX,y:t.layerY,width:this.canvasDimensions.width,height:this.canvasDimensions.height}))},onClick(t){this.selectedBuildingId=this.getBuildingId(t),this.isHoverable&&this.selectedBuilding&&this.$emit("go-to-building",this.selectedBuilding)},getColor(t){return this.colorCallback(this.getBuildingData(t),t===this.selectedBuildingId?"hover":"idle")},updateView({resolve:t}){this.viewResolver=t}}}),bt={key:0,style:{height:"50vh"},class:"d-flex justify-center align-center blue-grey lighten-5"},yt={class:"image-instances"},kt=["innerHTML"];function wt(t,n,o,r,i,s){const a=e.resolveComponent("v-icon"),l=e.resolveComponent("qi-building-chooser-scene-image-stack"),d=e.resolveComponent("qi-building-chooser-raster-overlay"),c=e.resolveComponent("qi-zoom-box"),h=e.resolveComponent("qi-north-direction"),p=e.resolveComponent("qi-building-chooser-sun-sim-control"),m=e.resolveComponent("qi-floating-card"),g=e.resolveComponent("qi-hover-probe");return t.error?(e.openBlock(),e.createElementBlock("div",bt,[e.createVNode(a,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):t.pickerData?(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle(`cursor: ${t.selectedBuildingId?"pointer":"auto"};height: ${t.canvasDimensions.height}px; position: relative`),class:"image-container"},[e.createVNode(c,{desktop:t.interactiveDesktop,mobile:t.interactiveMobile,onUpdate:t.updateView},{default:e.withCtx(()=>[e.createElementVNode("div",yt,[e.createVNode(l,{"image-urls":t.daysOfYear.imageUrls,"active-index":t.halfHourMark,onResize:t.resizeScene,onPreloaded:n[0]||(n[0]=u=>t.sceneState.preloaded=!0),onReady:n[1]||(n[1]=u=>t.sceneState.ready=!0),onReset:t.sceneReset},null,8,["image-urls","active-index","onResize","onReset"]),e.withDirectives(e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pickerData.buildingOverlays,u=>(e.openBlock(),e.createBlock(d,{ref_for:!0,ref:"overlays",key:u.id,"image-url":u.url,dimensions:t.canvasDimensions,color:t.getColor(u.id)},null,8,["image-url","dimensions","color"]))),128))],512),[[e.vShow,t.sceneState.preloaded]])]),e.createElementVNode("canvas",e.mergeProps(t.canvasDimensions,{ref:"canvas",class:{hover:!!t.selectedBuildingId},onClick:n[2]||(n[2]=(...u)=>t.onClick&&t.onClick(...u)),onMousemove:n[3]||(n[3]=(...u)=>t.onMove&&t.onMove(...u))}),null,16),e.withDirectives(e.createElementVNode("div",{class:"custom-overlay-layer",innerHTML:t.customOverlayContent},null,8,kt),[[e.vShow,t.sceneState.preloaded]])]),_:1},8,["desktop","mobile","onUpdate"]),e.withDirectives(e.createElementVNode("div",null,[t.pickerData.sceneLongitude?(e.openBlock(),e.createBlock(h,{key:0,class:"north-indicator",longitude:t.pickerData.sceneLongitude},null,8,["longitude"])):e.createCommentVNode("",!0),e.createVNode(p,{modelValue:t.halfHourMark,"onUpdate:modelValue":n[4]||(n[4]=u=>t.halfHourMark=u),"date-selector":t.daysOfYear,"is-loading":!t.sceneState.ready},null,8,["modelValue","date-selector","is-loading"])],512),[[e.vShow,t.sceneState.preloaded]]),t.showCards&&t.selectedBuilding?(e.openBlock(),e.createBlock(m,{key:0,"is-hoverable":t.isHoverable,pos:t.pos,onOutside:n[5]||(n[5]=()=>t.selectedBuildingId=void 0)},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{building:t.selectedBuilding,canGoToBuilding:t.canGoToBuildingCallback(t.selectedBuilding),goToBuilding:()=>t.canGoToBuildingCallback(t.selectedBuilding)&&t.$emit("go-to-building",t.selectedBuilding),pos:t.pos,isHoverable:t.isHoverable,close:()=>t.selectedBuildingId=void 0},void 0,!0)]),_:3},8,["is-hoverable","pos"])):e.createCommentVNode("",!0),e.createVNode(g,{ref:"hoverProbe"},null,512)],4)):e.createCommentVNode("",!0)}const M=v(ft,[["render",wt],["__scopeId","data-v-08f2ea1e"]]),Ct={name:"QiBuildingChooser",components:{QiBuildingChooserSvg:V,QiBuildingChooserRaster:M},emits:["go-to-building","hover-over-building","hover-out-building"],props:{showCards:{type:Boolean,default:()=>!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:t=>t},cdnFileResolver:{type:Function,required:!0},i18n:{type:Object,default:void 0},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},useSvg:{type:Boolean,default:!1},buildingChooserTimeOfDay:{type:String,default:null},canGoToBuildingCallback:{type:Function,default:()=>!0},customOverlayContent:{type:String,default:""}},computed:{component(){return this.useSvg?V:M}}};function _t(t,n,o,r,i,s){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.component),{"show-cards":o.showCards,"color-callback":o.colorCallback,"building-callback":o.buildingCallback,"cdn-file-resolver":o.cdnFileResolver,i18n:o.i18n,"interactive-desktop":o.interactiveDesktop,"interactive-mobile":o.interactiveMobile,"building-chooser-time-of-day":o.buildingChooserTimeOfDay,"can-go-to-building-callback":o.canGoToBuildingCallback,"custom-overlay-content":o.customOverlayContent,onGoToBuilding:n[0]||(n[0]=a=>t.$emit("go-to-building",a)),onHoverOverBuilding:n[1]||(n[1]=a=>t.$emit("hover-over-building",a)),onHoverOutBuilding:n[2]||(n[2]=a=>t.$emit("hover-out-building",a))},e.createSlots({_:2},[e.renderList(Object.keys(t.$slots),a=>({name:a,fn:e.withCtx(l=>[e.renderSlot(t.$slots,a,e.normalizeProps(e.guardReactiveProps(l)))])}))]),1064,["show-cards","color-callback","building-callback","cdn-file-resolver","i18n","interactive-desktop","interactive-mobile","building-chooser-time-of-day","can-go-to-building-callback","custom-overlay-content"])}const K=v(Ct,[["render",_t]]),Bt=37,It=39,St={name:"WaypointCarousel",props:{thumbnails:{type:Array,required:!0},active:{type:Number,required:!0}},data(){return{activeThumb:0}},computed:{activeIndex:{get(){return this.active},set(t){this.activeThumb=t}},isMobile(){return/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(window.navigator.userAgent)}},mounted(){window.addEventListener("keydown",this.keyNavigate)},beforeUnmount(){window.removeEventListener("keydown",this.keyNavigate)},methods:{keyNavigate(t){switch(t.keyCode){case t.keyCode===Bt:this.$emit("previous");case t.keyCode===It:this.$emit("next");default:return}},goToCamera(t,n){n(),this.$emit("goto",t)}}},xt={class:"waypoint-carousel"};function Dt(t,n,o,r,i,s){const a=e.resolveComponent("v-icon"),l=e.resolveComponent("v-btn"),d=e.resolveComponent("v-hover"),c=e.resolveComponent("v-img"),h=e.resolveComponent("v-card"),p=e.resolveComponent("v-slide-group-item"),m=e.resolveComponent("v-slide-group");return e.openBlock(),e.createElementBlock("div",xt,[e.createVNode(m,{modelValue:s.activeIndex,"onUpdate:modelValue":n[2]||(n[2]=g=>s.activeIndex=g),"active-class":"active-apt","selected-class":"active-apt","show-arrows":"","center-active":"",mandatory:""},{prev:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(({hover:g})=>[e.createVNode(l,{elevation:"0",class:e.normalizeClass(["carousel-button",{mobile:s.isMobile}]),onClick:n[0]||(n[0]=u=>t.$emit("previous"))},{default:e.withCtx(()=>[e.createVNode(a,{color:g?"#999":"#d2d2d2","x-large":""},{default:e.withCtx(()=>[e.createTextVNode(" mdi-chevron-left ")]),_:2},1032,["color"])]),_:2},1032,["class"])]),_:1})]),next:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(({hover:g})=>[e.createVNode(l,{elevation:"0",class:e.normalizeClass(["carousel-button",{mobile:s.isMobile}]),onClick:n[1]||(n[1]=u=>t.$emit("next"))},{default:e.withCtx(()=>[e.createVNode(a,{color:g?"#999":"#d2d2d2","x-large":""},{default:e.withCtx(()=>[e.createTextVNode(" mdi-chevron-right ")]),_:2},1032,["color"])]),_:2},1032,["class"])]),_:1})]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.thumbnails,g=>(e.openBlock(),e.createBlock(p,{key:g.id},{default:e.withCtx(({toggle:u,selectedClass:x})=>[e.createVNode(h,{class:e.normalizeClass(["ma-2",x]),align:"center",justify:"center",height:s.isMobile?50:100,width:s.isMobile?80:160,elevation:"0",style:{overflow:"hidden"},onClick:b=>s.goToCamera(g.id,u)},{default:e.withCtx(()=>[e.createVNode(c,{"max-height":"100","max-width":"160",src:g.thumbnailUrl},null,8,["src"])]),_:2},1032,["class","height","width","onClick"])]),_:2},1024))),128))]),_:1},8,["modelValue"])])}const Et=v(St,[["render",Dt],["__scopeId","data-v-f4e6ce2e"]]),At={name:"QiVirtualTourSocialShare",inject:["i18n"],data(){return{showSocialShare:!1,currentURL:location.href}},methods:{shareToFacebook(){return window.open("https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(location.href),"facebook-share-dialog","width=626,height=436"),!1},shareToTwitter(){return window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(location.href),"twiter-share-dialog","width=626,height=436"),!1},shareToLinkedin(){return window.open("https://www.linkedin.com/sharing/share-offsite/?url="+encodeURIComponent(location.href),"linkedin-share-dialog","width=626,height=736"),!1},copyLink(){navigator.clipboard.writeText(location.href)}}},Vt={id:"share-btns-wrapper",class:"text-center"};function Mt(t,n,o,r,i,s){const a=e.resolveComponent("v-btn"),l=e.resolveComponent("v-tooltip"),d=e.resolveComponent("v-toolbar-title"),c=e.resolveComponent("v-spacer"),h=e.resolveComponent("v-toolbar"),p=e.resolveComponent("v-card-text"),m=e.resolveComponent("v-card"),g=e.resolveComponent("v-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(l,{elevation:"2",top:"",attach:""},{activator:e.withCtx(({on:u})=>[e.createVNode(a,e.mergeProps({density:"comfortable",elevation:"1",icon:"mdi-share-variant",onClick:n[0]||(n[0]=x=>i.showSocialShare=!i.showSocialShare)},e.toHandlers(Object.assign({},u))),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(s.i18n.getLabel("share")),1)]),_:1}),e.createVNode(g,{id:"share-box",width:"400",modelValue:i.showSocialShare,"onUpdate:modelValue":n[2]||(n[2]=u=>i.showSocialShare=u)},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(h,{elevation:"0"},{default:e.withCtx(()=>[e.createVNode(a,{size:"x-small",icon:"mdi-close",onClick:n[1]||(n[1]=u=>i.showSocialShare=!1)}),e.createVNode(d,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.i18n.getLabel("share")),1)]),_:1}),e.createVNode(c)]),_:1}),e.createVNode(p,{class:"mt-5"},{default:e.withCtx(()=>[e.createElementVNode("p",Vt,[e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-facebook"},u,{onClick:s.shareToFacebook}),null,16,["onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(s.i18n.getLabel("share-to-facebook")),1)]),_:1}),e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-linkedin"},u,{onClick:s.shareToLinkedin}),null,16,["onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(s.i18n.getLabel("share-to-linkedin")),1)]),_:1}),e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-twitter"},u,{onClick:s.shareToTwitter}),null,16,["onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(s.i18n.getLabel("share-to-twitter")),1)]),_:1}),e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-email",link:"",href:`mailto:?body=${i.currentURL}`},u),null,16,["href"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(s.i18n.getLabel("share-via-email")),1)]),_:1}),e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-content-copy",onClick:s.copyLink},u),null,16,["onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(s.i18n.getLabel("copy-link")),1)]),_:1}),e.createVNode(c)])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}const Nt=v(At,[["render",Mt],["__scopeId","data-v-3560cd03"]]);class Rt{constructor(n,o){this._doc=n,this._elemId=o,this._state={isActive:!1}}get isActive(){return this._state.isActive}setup(){const n=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","msfullscreenchange"],o=this._getElement();n.forEach(r=>{o.addEventListener(r,this._toggle.bind(this),!1)})}toggle(){this.isActive?this._exit():this._enter()}_enter(){const n=this._getElement(),o=n.requestFullscreen||n.webkitRequestFullscreen||n.mozRequestFullscreen||n.msRequestFullscreen;o&&o.apply(n)}_exit(){const n=this._doc.exitFullscreen||this._doc.webkitExitFullscreen||this._doc.mozExitFullscreen||this._doc.document.msExitFullscreen;n&&n.apply(document)}_getElement(){return this._doc.getElementById(this._elemId)}_toggle(){const n=!!(this._doc.fullscreenElement||this._doc.webkitFullscreenElement||this._doc.mozFullscreenElement||this._doc.msFullscreenElement);this._state.isActive=n}}const Ft={props:{isFullScreen:{type:Boolean,required:!0}},emits:["toggle-fullscreen"]},Tt={id:"btn-fullscreen",class:"btn-placeholder mr-2"};function Ht(t,n,o,r,i,s){const a=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",Tt,[e.createVNode(a,{density:"comfortable",elevation:"3",icon:o.isFullScreen?"mdi-fullscreen-exit":"mdi-fullscreen",onClick:n[0]||(n[0]=l=>t.$emit("toggle-fullscreen"))},null,8,["icon"])])}const Lt=v(Ft,[["render",Ht]]),Ot={name:"Disclaimer",inject:["i18n"],data(){return{isVisible:!0}}},Ut={key:0,class:"text-white disclaimer caption"};function $t(t,n,o,r,i,s){return e.openBlock(),e.createBlock(e.Transition,{name:"fade-transition"},{default:e.withCtx(()=>[i.isVisible?(e.openBlock(),e.createElementBlock("div",Ut,[e.createTextVNode(e.toDisplayString(s.i18n.getLabel("all-illustrations-are-indicative-deviations-may-occur"))+" ",1),e.createElementVNode("span",{onClick:n[0]||(n[0]=a=>i.isVisible=!1),class:"link-text text-decoration-underline"},e.toDisplayString(s.i18n.getLabel("i-understand")),1)])):e.createCommentVNode("",!0)]),_:1})}const qt=v(Ot,[["render",$t],["__scopeId","data-v-6e4f02d6"]]),jt={name:"ManualSlideShowImage",props:{isFullScreen:{type:Boolean,required:!0}},data(){return{}},watch:{},mounted(){window.addEventListener("resize",this.setPlayerSize),this.setPlayerSize()},methods:{findClosestAncestor(t,n){let o=t,r=t;for(;(o=o.parentNode)&&o.className.indexOf(n)<0;);return r=o,r},setPlayerSize(){let t=1.7777777777777777,n=document.querySelector("#player-sizer");if(!n)return;let o=n.offsetWidth,r=o*(1/t);(window.innerWidth<=600||o<=600)&&(r=window.innerHeight*.75,o=r*(1/t)),n.style.height=r+"px",n.style.width=o+"px",this.$emit("new-size-callback",o,r)}}},zt={id:"player-wrapper"},Yt={id:"player-sizer"},Pt={class:"player-control",id:"controls-top-left"},Qt={class:"player-control",id:"controls-top-center"},Gt={class:"player-control",id:"controls-top-right"},Xt={class:"player-control",id:"controls-center-left"},Wt={class:"player-control",id:"controls-center-center"},Kt={class:"player-control",id:"controls-center-right"},Zt={class:"player-control",id:"controls-bottom-left"},Jt={class:"player-control",id:"controls-bottom-center"},en={class:"player-control",id:"controls-bottom-right"};function tn(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("div",Yt,[e.renderSlot(t.$slots,"slideshow-image",{},void 0,!0),e.createElementVNode("div",Pt,[e.renderSlot(t.$slots,"top-left",{},void 0,!0)]),e.createElementVNode("div",Qt,[e.renderSlot(t.$slots,"top-center",{},void 0,!0)]),e.createElementVNode("div",Gt,[e.renderSlot(t.$slots,"top-right",{},void 0,!0)]),e.createElementVNode("div",Xt,[e.renderSlot(t.$slots,"center-left",{},void 0,!0)]),e.createElementVNode("div",Wt,[e.renderSlot(t.$slots,"center-center",{},void 0,!0)]),e.createElementVNode("div",Kt,[e.renderSlot(t.$slots,"center-right",{},void 0,!0)]),e.createElementVNode("div",Zt,[e.renderSlot(t.$slots,"bottom-left",{},void 0,!0)]),e.createElementVNode("div",Jt,[e.renderSlot(t.$slots,"bottom-center",{},void 0,!0)]),e.createElementVNode("div",en,[e.renderSlot(t.$slots,"bottom-right",{},void 0,!0)])])])}const nn=v(jt,[["render",tn],["__scopeId","data-v-1dab1ac3"]]),on={name:"StaticImage",props:{image:{type:String,required:!0},aspectRatio:{type:String,default:()=>"wide"}},computed:{style(){return{"background-image":`url("${encodeURI(this.image)}")`}}}},sn={class:"static-image-wrapper"};function rn(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",sn,[e.createElementVNode("div",{class:e.normalizeClass(["img-div",[o.aspectRatio]]),style:e.normalizeStyle(s.style)},null,6)])}const an=v(on,[["render",rn],["__scopeId","data-v-b418cf51"]]),ln={name:"ManualSlideShow",components:{WaypointCarousel:Et,SingleImage:an,SocialShare:Nt,FullScreenButton:Lt,Disclaimer:qt,ManualSlideShowPlayer:nn},provide(){return{i18n:this.i18n?new f(this.i18n.labels,this.i18n.language):new f}},props:{images:{type:Array,required:!0},websiteUrl:{type:String,default:()=>{}},i18n:{type:Object,default:void 0},showFullScreen:{type:Boolean,default:()=>!0},showShare:{type:Boolean,default:()=>!0},defaultWaypointIndex:{type:Number,default:()=>0}},data(){return{loading:!0,error:!1,currentIndex:0,currentImageId:void 0,fullScreen:new Rt(document,"player-wrapper")}},computed:{imagesWithThumbnails(){return this.images.map(t=>Object.assign(Object.assign({},t),{thumbnailUrl:t.url}))},currentImage(){return this.images[this.currentIndex].url}},mounted(){this.fullScreen.setup()},methods:{toggleFullscreen(){this.fullScreen.toggle(),window.scrollTo({top:150,behavior:"smooth"})},nextImage(){let t=this.currentIndex+1;t>=this.images.length&&(t=0),this.currentIndex=t},previousImage(){let t=this.currentIndex-1;t<0&&(t=this.images.length-1),this.currentIndex=t},goToImage(t,n=!0){let o=this.images.findIndex(r=>r.id===t);o!=-1&&(this.currentIndex=o)}}},dn={class:"virtual-tour-v2-wrapper"},cn={class:"player-and-components-wrapper"},un={key:1,class:"btn-placeholder"};function hn(t,n,o,r,i,s){const a=e.resolveComponent("single-image"),l=e.resolveComponent("disclaimer"),d=e.resolveComponent("v-icon"),c=e.resolveComponent("v-btn"),h=e.resolveComponent("full-screen-button"),p=e.resolveComponent("social-share"),m=e.resolveComponent("waypoint-carousel"),g=e.resolveComponent("manual-slide-show-player");return e.openBlock(),e.createElementBlock("div",dn,[e.createElementVNode("div",cn,[e.createElementVNode("div",null,[e.createVNode(g,{isFullScreen:i.fullScreen.isActive},{"slideshow-image":e.withCtx(()=>[e.createVNode(a,{image:s.currentImage},null,8,["image"])]),"top-left":e.withCtx(()=>[]),"top-center":e.withCtx(()=>[e.createVNode(l,{"return-url":o.websiteUrl},null,8,["return-url"])]),"top-right":e.withCtx(()=>[]),"center-left":e.withCtx(()=>[e.createVNode(e.Transition,{name:"slide-x-transition"},{default:e.withCtx(()=>[e.createVNode(c,{elevation:"1",rounded:"",plain:"",icon:"",onClick:s.previousImage},{default:e.withCtx(()=>[e.createVNode(d,{color:"black darken-1"},{default:e.withCtx(()=>[e.createTextVNode("mdi-chevron-left")]),_:1})]),_:1},8,["onClick"])]),_:1})]),"center-center":e.withCtx(()=>[]),"center-right":e.withCtx(()=>[e.createVNode(e.Transition,{name:"slide-x-reverse-transition"},{default:e.withCtx(()=>[e.createVNode(c,{elevation:"1",rounded:"",plain:"",icon:"",onClick:s.nextImage},{default:e.withCtx(()=>[e.createVNode(d,{color:"black darken-1"},{default:e.withCtx(()=>[e.createTextVNode("mdi-chevron-right")]),_:1})]),_:1},8,["onClick"])]),_:1})]),"bottom-left":e.withCtx(()=>[o.showFullScreen?(e.openBlock(),e.createBlock(h,{key:0,isFullScreen:i.fullScreen.isActive,class:"btn-fullscreen",onToggleFullscreen:s.toggleFullscreen},null,8,["isFullScreen","onToggleFullscreen"])):e.createCommentVNode("",!0),o.showShare?(e.openBlock(),e.createElementBlock("div",un,[e.createVNode(p)])):e.createCommentVNode("",!0)]),"bottom-center":e.withCtx(()=>[e.createElementVNode("div",null,[i.fullScreen.isActive?(e.openBlock(),e.createBlock(m,{key:0,class:e.normalizeClass([i.fullScreen.isActive?"full-screen":""]),thumbnails:s.imagesWithThumbnails,active:i.currentIndex,onNext:s.nextImage,onPrevious:s.previousImage,onGoto:s.goToImage},null,8,["class","thumbnails","active","onNext","onPrevious","onGoto"])):e.createCommentVNode("",!0)])]),"bottom-right":e.withCtx(()=>[]),_:1},8,["isFullScreen"]),e.createVNode(m,{thumbnails:s.imagesWithThumbnails,active:i.currentIndex,onNext:s.nextImage,onPrevious:s.previousImage,onGoto:s.goToImage},null,8,["thumbnails","active","onNext","onPrevious","onGoto"])])])])}const Z=v(ln,[["render",hn],["__scopeId","data-v-e2117d1e"]]),mn=Object.freeze(Object.defineProperty({__proto__:null,ManualSlideShow:Z,QiApartmentChooser:W,QiApartmentChooserNavigation:O,QiApartmentChooserRaster:D,QiApartmentChooserRotator:$,QiApartmentChooserSvg:E,QiBuildingChooser:K,QiBuildingChooserRaster:M,QiBuildingChooserRasterOverlay:z,QiBuildingChooserSceneImageStack:T,QiBuildingChooserSunSimControl:F,QiBuildingChooserSvg:V,QiFloatingCard:B,QiHoverProbe:k,QiNorthDirection:R,QiZoomBox:I},Symbol.toStringTag,{value:"Module"}));class gn{constructor(n){this._data=n}getPixel(n,o){const r=this._data[n][o];if(r!==" "){const i=Number.parseInt(r);return[i,i,i,255]}else return[0,0,0,0]}}const Y=function(n){Object.entries(mn).forEach(([o,r])=>{n.component(o,r)})},vn=Object.freeze(Object.defineProperty({__proto__:null,BatchLoadTracker:A,BuildingMap:w,BuildingPickerResourceProvider:j,BuildingViewerModel:X,CanvasRaster:C,DayOfYearSelector:S,I18N:f,ManualSlideShow:Z,QiApartmentChooser:W,QiApartmentChooserNavigation:O,QiApartmentChooserRaster:D,QiApartmentChooserRotator:$,QiApartmentChooserSvg:E,QiBuildingChooser:K,QiBuildingChooserRaster:M,QiBuildingChooserRasterOverlay:z,QiBuildingChooserSceneImageStack:T,QiBuildingChooserSunSimControl:F,QiBuildingChooserSvg:V,QiFloatingCard:B,QiHoverProbe:k,QiNorthDirection:R,QiZoomBox:I,ResourceLoader:y,SampleRaster:gn,SceneRotator:Q,default:Y,throttle:L},Symbol.toStringTag,{value:"Module"}));Object.entries(vn).forEach(([t,n])=>{t!=="default"&&(Y[t]=n)});module.exports=Y;