@clikvn/showroom-visualizer 0.2.2-dev-13 → 0.2.2-dev-14

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 (48) hide show
  1. package/.claude/settings.local.json +19 -0
  2. package/README.md +31 -31
  3. package/base.json +21 -21
  4. package/dist/components/SkinLayer/DefaultLayout/index.d.ts +8 -0
  5. package/dist/components/SkinLayer/DefaultLayout/index.d.ts.map +1 -0
  6. package/dist/components/SkinLayer/PoiMovingPreview/index.d.ts.map +1 -1
  7. package/dist/context/CustomLayoutContext.d.ts +20 -0
  8. package/dist/context/CustomLayoutContext.d.ts.map +1 -0
  9. package/dist/context/SwizzleContext.d.ts +21 -0
  10. package/dist/context/SwizzleContext.d.ts.map +1 -0
  11. package/dist/fonts/icomoon.svg +633 -633
  12. package/dist/hooks/headless/index.d.ts +150 -0
  13. package/dist/hooks/headless/index.d.ts.map +1 -0
  14. package/dist/hooks/headless/useFloorplanControl.d.ts +18 -0
  15. package/dist/hooks/headless/useFloorplanControl.d.ts.map +1 -0
  16. package/dist/hooks/headless/usePOIInteraction.d.ts +23 -0
  17. package/dist/hooks/headless/usePOIInteraction.d.ts.map +1 -0
  18. package/dist/hooks/headless/useScenarioControl.d.ts +22 -0
  19. package/dist/hooks/headless/useScenarioControl.d.ts.map +1 -0
  20. package/dist/hooks/headless/useSceneNavigation.d.ts +26 -0
  21. package/dist/hooks/headless/useSceneNavigation.d.ts.map +1 -0
  22. package/dist/hooks/headless/useTourCore.d.ts +23 -0
  23. package/dist/hooks/headless/useTourCore.d.ts.map +1 -0
  24. package/dist/hooks/headless/useViewportControl.d.ts +22 -0
  25. package/dist/hooks/headless/useViewportControl.d.ts.map +1 -0
  26. package/dist/index.html +85 -10
  27. package/dist/index.js +1 -0
  28. package/dist/types/custom-layout.d.ts +63 -0
  29. package/dist/types/custom-layout.d.ts.map +1 -0
  30. package/dist/types/swizzle.d.ts +59 -0
  31. package/dist/types/swizzle.d.ts.map +1 -0
  32. package/dist/web.d.ts.map +1 -1
  33. package/dist/web.js +1 -1
  34. package/package.json +124 -124
  35. package/rollup.config.js +97 -97
  36. package/tailwind.config.cjs +151 -151
  37. package/dist/components/SkinLayer/Drawer/PoiHeader/index.d.ts +0 -16
  38. package/dist/components/SkinLayer/Drawer/PoiHeader/index.d.ts.map +0 -1
  39. package/dist/components/SkinLayer/Drawer/index.d.ts +0 -29
  40. package/dist/components/SkinLayer/Drawer/index.d.ts.map +0 -1
  41. package/dist/components/SkinLayer/PlayAll/index.d.ts +0 -8
  42. package/dist/components/SkinLayer/PlayAll/index.d.ts.map +0 -1
  43. package/dist/features/VirtualTourVisualizer/index.d.ts +0 -20
  44. package/dist/features/VirtualTourVisualizer/index.d.ts.map +0 -1
  45. package/dist/features/VirtualTourVisualizerUI/index.d.ts +0 -17
  46. package/dist/features/VirtualTourVisualizerUI/index.d.ts.map +0 -1
  47. /package/dist/features/ShowroomVisualizer/{cssStyles.d.ts → CssStyles.d.ts} +0 -0
  48. /package/dist/features/ShowroomVisualizer/{cssStyles.d.ts.map → CssStyles.d.ts.map} +0 -0
@@ -0,0 +1,150 @@
1
+ import { useTourCore } from './useTourCore';
2
+ import { useFloorplanControl } from './useFloorplanControl';
3
+ import { useSceneNavigation } from './useSceneNavigation';
4
+ import { useScenarioControl } from './useScenarioControl';
5
+ import { usePOIInteraction } from './usePOIInteraction';
6
+ import { useViewportControl } from './useViewportControl';
7
+ export declare const useShowroomControls: () => {
8
+ tour: {
9
+ tourReady: boolean;
10
+ tourLoaded: boolean;
11
+ soundReady: boolean;
12
+ canInitVisualizer: boolean;
13
+ tourData: import("../../types/Visualizer").TourType | null;
14
+ activeScene: import("../../models/Visualizer/Scene").default | null;
15
+ scenes: import("../../types/Visualizer").SceneType[];
16
+ floorplans: import("../../types/Visualizer").FloorplanType[];
17
+ loadingScene: boolean;
18
+ tour: import("../../models/Visualizer/Tour").default | undefined;
19
+ isLoading: boolean;
20
+ hasScenes: boolean;
21
+ hasFloorplans: boolean;
22
+ totalScenes: number;
23
+ };
24
+ floorplan: {
25
+ showFloorplan: boolean;
26
+ activeFloorplan: import("../../types/Visualizer").FloorplanType | null;
27
+ floorplans: import("../../types/Visualizer").FloorplanType[];
28
+ toggleFloorplan: () => void;
29
+ openFloorplan: () => void;
30
+ closeFloorplan: () => void;
31
+ switchFloorplan: (floorplanId: string) => void;
32
+ hasFloorplans: boolean;
33
+ canShowFloorplan: boolean;
34
+ };
35
+ navigation: {
36
+ activeScene: import("../../models/Visualizer/Scene").default | null;
37
+ scenes: import("../../types/Visualizer").SceneType[];
38
+ sceneGroups: import("../../types/Visualizer").SceneGroupType[];
39
+ showSceneCategories: boolean;
40
+ currentSceneGroup: import("../../types/Visualizer").SceneGroupType | null;
41
+ scenesByGroup: {
42
+ [groupId: string]: import("../../models/Visualizer/Scene").default[];
43
+ };
44
+ goToScene: (code: string) => Promise<boolean>;
45
+ goToNextScene: () => Promise<boolean>;
46
+ goToPreviousScene: () => Promise<boolean>;
47
+ toggleSceneCategories: () => void;
48
+ switchSceneGroup: (groupCode: string) => Promise<boolean>;
49
+ hasNextScene: boolean;
50
+ hasPreviousScene: boolean;
51
+ totalScenes: number;
52
+ };
53
+ scenario: {
54
+ activeScenario: import("../../types/Visualizer").TourScenarioType | null;
55
+ autoPlaying: boolean;
56
+ scenarioCurrentStep: import("../../types/Visualizer").ScenarioCurrentStepType | null;
57
+ showScenarioList: boolean;
58
+ scenarios: import("../../types/Visualizer").TourScenarioType[];
59
+ playScenario: (scenarioCode: string) => Promise<boolean>;
60
+ pauseScenario: () => void;
61
+ resumeScenario: () => void;
62
+ stopScenario: () => void;
63
+ toggleScenarioList: () => void;
64
+ hasScenarios: boolean;
65
+ isPlaying: boolean;
66
+ totalScenarios: number;
67
+ };
68
+ poi: {
69
+ activePoi: any;
70
+ activePoiCode: string | undefined;
71
+ selectedPoi: any;
72
+ isViewPoiDetail: boolean;
73
+ labelVisible: boolean;
74
+ selectPoi: (poiCode: string) => void;
75
+ clearPoiSelection: () => void;
76
+ toggleLabels: () => void;
77
+ showLabels: () => void;
78
+ hideLabels: () => void;
79
+ openPoiDetail: (poiCode: string) => void;
80
+ closePoiDetail: () => void;
81
+ hasActivePoi: boolean;
82
+ hasSelectedPoi: boolean;
83
+ };
84
+ viewport: {
85
+ isFullscreen: boolean;
86
+ isGyroscope: boolean;
87
+ tourSoundPlaying: boolean;
88
+ navigationArrowsVisible: boolean;
89
+ toggleFullscreen: () => void;
90
+ enterFullscreen: () => void;
91
+ exitFullscreen: () => void;
92
+ toggleGyroscope: () => void;
93
+ toggleSound: () => void;
94
+ muteSound: () => void;
95
+ unmuteSound: () => void;
96
+ toggleNavigationArrows: () => void;
97
+ takeScreenshot: () => void;
98
+ };
99
+ tourReady: boolean;
100
+ isLoading: boolean;
101
+ activeScene: import("../../models/Visualizer/Scene").default | null;
102
+ goToScene: (code: string) => Promise<boolean>;
103
+ goToNextScene: () => Promise<boolean>;
104
+ goToPreviousScene: () => Promise<boolean>;
105
+ showFloorplan: boolean;
106
+ toggleFloorplan: () => void;
107
+ playScenario: (scenarioCode: string) => Promise<boolean>;
108
+ stopScenario: () => void;
109
+ isPlaying: boolean;
110
+ toggleFullscreen: () => void;
111
+ toggleSound: () => void;
112
+ };
113
+ /**
114
+ * Tour Core Hook
115
+ * @see useTourCore
116
+ */
117
+ export { useTourCore } from './useTourCore';
118
+ /**
119
+ * Floorplan Control Hook
120
+ * @see useFloorplanControl
121
+ */
122
+ export { useFloorplanControl } from './useFloorplanControl';
123
+ /**
124
+ * Scene Navigation Hook
125
+ * @see useSceneNavigation
126
+ */
127
+ export { useSceneNavigation } from './useSceneNavigation';
128
+ /**
129
+ * Scenario Control Hook
130
+ * @see useScenarioControl
131
+ */
132
+ export { useScenarioControl } from './useScenarioControl';
133
+ /**
134
+ * POI Interaction Hook
135
+ * @see usePOIInteraction
136
+ */
137
+ export { usePOIInteraction } from './usePOIInteraction';
138
+ /**
139
+ * Viewport Control Hook
140
+ * @see useViewportControl
141
+ */
142
+ export { useViewportControl } from './useViewportControl';
143
+ export type ShowroomControls = ReturnType<typeof useShowroomControls>;
144
+ export type TourCoreControls = ReturnType<typeof useTourCore>;
145
+ export type FloorplanControls = ReturnType<typeof useFloorplanControl>;
146
+ export type SceneNavigationControls = ReturnType<typeof useSceneNavigation>;
147
+ export type ScenarioControls = ReturnType<typeof useScenarioControl>;
148
+ export type POIControls = ReturnType<typeof usePOIInteraction>;
149
+ export type ViewportControls = ReturnType<typeof useViewportControl>;
150
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/headless/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC/B,CAAC;AAKF;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;GAGG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;GAGG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;GAGG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;GAGG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACvE,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * useFloorplanControl Hook
3
+ *
4
+ * Mục đích: Quản lý floorplan/minimap
5
+ * Cho phép người dùng control floorplan từ custom UI
6
+ */
7
+ export declare const useFloorplanControl: () => {
8
+ showFloorplan: boolean;
9
+ activeFloorplan: import("../../types/Visualizer").FloorplanType | null;
10
+ floorplans: import("../../types/Visualizer").FloorplanType[];
11
+ toggleFloorplan: () => void;
12
+ openFloorplan: () => void;
13
+ closeFloorplan: () => void;
14
+ switchFloorplan: (floorplanId: string) => void;
15
+ hasFloorplans: boolean;
16
+ canShowFloorplan: boolean;
17
+ };
18
+ //# sourceMappingURL=useFloorplanControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFloorplanControl.d.ts","sourceRoot":"","sources":["../../../src/hooks/headless/useFloorplanControl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,eAAO,MAAM,mBAAmB;;;;;;;mCAqBQ,MAAM;;;CAkC7C,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * usePOIInteraction Hook
3
+ *
4
+ * Mục đích: Quản lý tương tác với POI
5
+ * Handle POI click, hover, selection, detail view
6
+ */
7
+ export declare const usePOIInteraction: () => {
8
+ activePoi: any;
9
+ activePoiCode: string | undefined;
10
+ selectedPoi: any;
11
+ isViewPoiDetail: boolean;
12
+ labelVisible: boolean;
13
+ selectPoi: (poiCode: string) => void;
14
+ clearPoiSelection: () => void;
15
+ toggleLabels: () => void;
16
+ showLabels: () => void;
17
+ hideLabels: () => void;
18
+ openPoiDetail: (poiCode: string) => void;
19
+ closePoiDetail: () => void;
20
+ hasActivePoi: boolean;
21
+ hasSelectedPoi: boolean;
22
+ };
23
+ //# sourceMappingURL=usePOIInteraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePOIInteraction.d.ts","sourceRoot":"","sources":["../../../src/hooks/headless/usePOIInteraction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,eAAO,MAAM,iBAAiB;;;;;;yBAyBhB,MAAM;;;;;6BA2CN,MAAM;;;;CAmCnB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * useScenarioControl Hook
3
+ *
4
+ * Mục đích: Quản lý auto-play scenarios
5
+ * Control playback, pause, resume scenarios
6
+ */
7
+ export declare const useScenarioControl: () => {
8
+ activeScenario: import("../../types/Visualizer").TourScenarioType | null;
9
+ autoPlaying: boolean;
10
+ scenarioCurrentStep: import("../../types/Visualizer").ScenarioCurrentStepType | null;
11
+ showScenarioList: boolean;
12
+ scenarios: import("../../types/Visualizer").TourScenarioType[];
13
+ playScenario: (scenarioCode: string) => Promise<boolean>;
14
+ pauseScenario: () => void;
15
+ resumeScenario: () => void;
16
+ stopScenario: () => void;
17
+ toggleScenarioList: () => void;
18
+ hasScenarios: boolean;
19
+ isPlaying: boolean;
20
+ totalScenarios: number;
21
+ };
22
+ //# sourceMappingURL=useScenarioControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScenarioControl.d.ts","sourceRoot":"","sources":["../../../src/hooks/headless/useScenarioControl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,eAAO,MAAM,kBAAkB;;;;;;iCA8BN,MAAM;;;;;;;;CA2E9B,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * useSceneNavigation Hook
3
+ *
4
+ * Mục đích: Điều hướng giữa các scene
5
+ * Bao gồm scene groups, categories, navigation
6
+ */
7
+ import Scene from '../../models/Visualizer/Scene';
8
+ export declare const useSceneNavigation: () => {
9
+ activeScene: Scene | null;
10
+ scenes: import("../../types/Visualizer").SceneType[];
11
+ sceneGroups: import("../../types/Visualizer").SceneGroupType[];
12
+ showSceneCategories: boolean;
13
+ currentSceneGroup: import("../../types/Visualizer").SceneGroupType | null;
14
+ scenesByGroup: {
15
+ [groupId: string]: Scene[];
16
+ };
17
+ goToScene: (code: string) => Promise<boolean>;
18
+ goToNextScene: () => Promise<boolean>;
19
+ goToPreviousScene: () => Promise<boolean>;
20
+ toggleSceneCategories: () => void;
21
+ switchSceneGroup: (groupCode: string) => Promise<boolean>;
22
+ hasNextScene: boolean;
23
+ hasPreviousScene: boolean;
24
+ totalScenes: number;
25
+ };
26
+ //# sourceMappingURL=useSceneNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSceneNavigation.d.ts","sourceRoot":"","sources":["../../../src/hooks/headless/useSceneNavigation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,MAAM,+BAA+B,CAAC;AAElD,eAAO,MAAM,kBAAkB;;;;;;;;;sBAwCd,MAAM;;;;kCA4ED,MAAM;;;;CAqD3B,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * useTourCore Hook
3
+ *
4
+ * Mục đích: Expose tour engine core state (read-only)
5
+ * Cung cấp thông tin cơ bản về tour mà người dùng có thể query
6
+ */
7
+ export declare const useTourCore: () => {
8
+ tourReady: boolean;
9
+ tourLoaded: boolean;
10
+ soundReady: boolean;
11
+ canInitVisualizer: boolean;
12
+ tourData: import("../../types/Visualizer").TourType | null;
13
+ activeScene: import("../../models/Visualizer/Scene").default | null;
14
+ scenes: import("../../types/Visualizer").SceneType[];
15
+ floorplans: import("../../types/Visualizer").FloorplanType[];
16
+ loadingScene: boolean;
17
+ tour: import("../../models/Visualizer/Tour").default | undefined;
18
+ isLoading: boolean;
19
+ hasScenes: boolean;
20
+ hasFloorplans: boolean;
21
+ totalScenes: number;
22
+ };
23
+ //# sourceMappingURL=useTourCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTourCore.d.ts","sourceRoot":"","sources":["../../../src/hooks/headless/useTourCore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CA8CvB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * useViewportControl Hook
3
+ *
4
+ * Mục đích: Quản lý viewport/camera control
5
+ * Fullscreen, gyroscope, sound, navigation arrows
6
+ */
7
+ export declare const useViewportControl: () => {
8
+ isFullscreen: boolean;
9
+ isGyroscope: boolean;
10
+ tourSoundPlaying: boolean;
11
+ navigationArrowsVisible: boolean;
12
+ toggleFullscreen: () => void;
13
+ enterFullscreen: () => void;
14
+ exitFullscreen: () => void;
15
+ toggleGyroscope: () => void;
16
+ toggleSound: () => void;
17
+ muteSound: () => void;
18
+ unmuteSound: () => void;
19
+ toggleNavigationArrows: () => void;
20
+ takeScreenshot: () => void;
21
+ };
22
+ //# sourceMappingURL=useViewportControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useViewportControl.d.ts","sourceRoot":"","sources":["../../../src/hooks/headless/useViewportControl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAwG9B,CAAC"}
package/dist/index.html CHANGED
@@ -7,26 +7,101 @@
7
7
  content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"
8
8
  />
9
9
  <title>Title</title>
10
+ </head>
11
+ <body>
12
+ <div class="flex h-screen w-screen">
13
+ <!-- <div class="h-full" style="width: 72px"></div>-->
14
+ <div class="h-full" style="width: /*calc(100% - 462px);*/ 100%">
15
+ <div class="h-full w-full relative">
16
+ <showroom-visualizer></showroom-visualizer>
17
+ </div>
18
+ </div>
19
+ <!-- <div class="h-full" style="width: 390px"></div>-->
20
+ </div>
10
21
  <script type="module">
22
+ // import ShowroomVisualizer from 'https://85f81d7dc992.ngrok-free.app/web.js';
11
23
  import ShowroomVisualizer from 'http://localhost:3000/web.js';
12
24
 
13
25
  ShowroomVisualizer.initVisualizer({
14
- apiHost: 'https://api.clik.vn/vt360',
15
- webRotateHost: 'https://ci-webrotate360-client.clik.vn',
26
+ apiHost: 'https://ci-api.clik.vn/vt360',
27
+ webRotateApiHost: 'https://ci-api.clik.vn/cms',
28
+ webRotateClientHost: 'https://ci-webrotate360-client.clik.vn',
16
29
  config: {
17
- tourCode: 'TOUR_96YHCYLYFG7F',
18
30
  language: 'VI',
31
+ // tourCode: 'TOUR_FXYCEN7ZZVW6',
32
+
33
+ // startScene: 'scene_kr3rgeezzvw6',
34
+ // hLookAt: -254,
35
+ // vLookAt: 1
36
+ // tourCode: 'TOUR_GEVEXLWNPT74',
37
+ // tourCode: 'TOUR_7YUL2ALGFL94',
38
+ tourCode: 'TOUR_KUFGDEPDTJA4',
39
+ hLookAt: 10,
40
+ vLookAt: 28,
41
+ // startScene: 'SCENE_KNLRAKUHFL94',
42
+ // hLookAt: -54.11884505373274,
43
+ // vLookAt: -9.111287009391969
44
+
45
+ // tourCode: 'tour_7a6hchjljga4'.toUpperCase(),
46
+
47
+ // tourCode: 'TOUR_ZJMHKMJEACAH',
48
+ // startScene: 'SCENE_LVN4DLUFACAH',
49
+ // hLookAt: -179.145,
50
+ // vLookAt: 11.597,
51
+
52
+ // tourCode: 'tour_7yul2algfl94'.toUpperCase(),
53
+ // startScene: 'scene_vrz9v2uhfl94'.toUpperCase(),
54
+ // hLookAt: -87,
55
+ // vLookAt: 9,
56
+ // hotspot: 'item27getn2d2m94'.toUpperCase(),
19
57
  },
20
- onLoaded: (tool) => {
21
- window.tool = tool;
58
+ listeners: {
59
+ onTourSwitchLoaded: (tool) => {
60
+ window.switchTour = tool.switchTour;
61
+ },
62
+ onSceneCompleted: (...args) => {
63
+ // console.log('onSceneCompleted', args);
64
+ },
65
+ onLoaded: (tool) => {
66
+ // console.log('TOOL_LOADED')
67
+ window.tool = tool;
68
+ },
69
+ onPoiClicked: (poi) => {
70
+ console.log('onPoiClicked', poi);
71
+ },
72
+ onPoiOut: () => {
73
+ // console.log('onPoiOut');
74
+ },
75
+ onPoiOver: (poi) => {
76
+ console.log('onPoiOver', poi);
77
+ },
78
+ onPoiInCenter: (poi) => {
79
+ // console.log('onPoiInCenter', poi);
80
+ },
81
+ onStartScenario: (code) => {
82
+ // console.log('onStartScenario', code);
83
+ },
84
+ onScenarioPaused: (code) => {
85
+ // console.log('onScenarioPaused', code);
86
+ },
87
+ onScenarioEnded: (code) => {
88
+ // console.log('onScenarioEnded', code);
89
+ },
90
+ onChanged: (args) => {
91
+ console.log('onChanged', args);
92
+ },
93
+ onStartLoadingTour: (code) => {
94
+ // console.log('onStartLoadingTour', code);
95
+ },
96
+ onFinishedLoadingTour: (code) => {
97
+ // console.log('onFinishedLoadingTour', code);
98
+ },
99
+ onStateChanged: (changes) => {
100
+ // console.log('changes', changes);
101
+ },
22
102
  },
23
103
  mobile: false,
24
104
  });
25
105
  </script>
26
- </head>
27
- <body>
28
- <div style="width: 100vw; height: 100vh; overflow: hidden">
29
- <showroom-visualizer></showroom-visualizer>
30
- </div>
31
106
  </body>
32
107
  </html>