@clikvn/showroom-visualizer 0.3.0-dev-09 → 0.3.0-dev-10
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.
- package/.claude/settings.local.json +19 -0
- package/DEVELOPMENT.md +120 -0
- package/EXAMPLES.md +967 -0
- package/README.md +137 -3
- package/SETUP_COMPLETE.md +149 -0
- package/dist/commons/SkinLayer/components/Button/index.d.ts +4 -4
- package/dist/commons/SkinLayer/components/Button/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/DefaultLayout/index.d.ts +8 -0
- package/dist/components/SkinLayer/DefaultLayout/index.d.ts.map +1 -0
- package/dist/components/SkinLayer/Floorplan/Map.d.ts.map +1 -1
- package/dist/components/SkinLayer/Floorplan/Minimap/MiniMapMarker.d.ts.map +1 -1
- package/dist/components/SkinLayer/Floorplan/Minimap/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/HotspotCategorySlideIn/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/HotspotOverview/index.d.ts +1 -0
- package/dist/components/SkinLayer/HotspotOverview/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/Layout/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/PinActionButtons/index.d.ts +19 -0
- package/dist/components/SkinLayer/PinActionButtons/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/PlayBar/index.d.ts +19 -1
- package/dist/components/SkinLayer/PlayBar/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/PoiDetailSlideIn/Detail.d.ts +5 -0
- package/dist/components/SkinLayer/PoiDetailSlideIn/Detail.d.ts.map +1 -1
- package/dist/components/SkinLayer/PoiDetailSlideIn/TabsContent/index.d.ts +4 -0
- package/dist/components/SkinLayer/PoiDetailSlideIn/TabsContent/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/PoiDetailSlideIn/index.d.ts +23 -1
- package/dist/components/SkinLayer/PoiDetailSlideIn/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/DisplayActionPart/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/HelpActionPart.d.ts.map +1 -1
- package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/PoiInfoActionPart/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/PromotionPart/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/ScenariosPart/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/TourInfoActionPart.d.ts.map +1 -1
- package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/index.d.ts.map +1 -1
- package/dist/components/SkinLayer/index.d.ts +49 -0
- package/dist/components/SkinLayer/index.d.ts.map +1 -1
- package/dist/constants/SkinLayer/customLayoutPaths.d.ts +84 -0
- package/dist/constants/SkinLayer/customLayoutPaths.d.ts.map +1 -0
- package/dist/constants/SkinLayer/index.d.ts +1 -0
- package/dist/constants/SkinLayer/index.d.ts.map +1 -1
- package/dist/context/CustomLayoutContext.d.ts +20 -0
- package/dist/context/CustomLayoutContext.d.ts.map +1 -0
- package/dist/context/SwizzleContext.d.ts +21 -0
- package/dist/context/SwizzleContext.d.ts.map +1 -0
- package/dist/features/ShowroomVisualizer/VirtualTour.d.ts +5 -0
- package/dist/features/ShowroomVisualizer/VirtualTour.d.ts.map +1 -1
- package/dist/features/ShowroomVisualizer/VirtualTourContainer.d.ts +4 -3
- package/dist/features/ShowroomVisualizer/VirtualTourContainer.d.ts.map +1 -1
- package/dist/features/ShowroomVisualizer/index.d.ts +24 -3
- package/dist/features/ShowroomVisualizer/index.d.ts.map +1 -1
- package/dist/hooks/headless/index.d.ts +150 -0
- package/dist/hooks/headless/index.d.ts.map +1 -0
- package/dist/hooks/headless/useFloorplanControl.d.ts +18 -0
- package/dist/hooks/headless/useFloorplanControl.d.ts.map +1 -0
- package/dist/hooks/headless/usePOIInteraction.d.ts +23 -0
- package/dist/hooks/headless/usePOIInteraction.d.ts.map +1 -0
- package/dist/hooks/headless/useScenarioControl.d.ts +22 -0
- package/dist/hooks/headless/useScenarioControl.d.ts.map +1 -0
- package/dist/hooks/headless/useSceneNavigation.d.ts +26 -0
- package/dist/hooks/headless/useSceneNavigation.d.ts.map +1 -0
- package/dist/hooks/headless/useTourCore.d.ts +23 -0
- package/dist/hooks/headless/useTourCore.d.ts.map +1 -0
- package/dist/hooks/headless/useViewportControl.d.ts +22 -0
- package/dist/hooks/headless/useViewportControl.d.ts.map +1 -0
- package/dist/hooks/useToolConfig.d.ts.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.html +110 -0
- package/dist/index.js +1 -0
- package/dist/register.d.ts +3 -0
- package/dist/register.d.ts.map +1 -1
- package/dist/types/SkinLayer/tool.type.d.ts +6 -0
- package/dist/types/SkinLayer/tool.type.d.ts.map +1 -1
- package/dist/types/SkinLayer/visualizer.type.d.ts +3 -0
- package/dist/types/SkinLayer/visualizer.type.d.ts.map +1 -1
- package/dist/types/custom-layout.d.ts +167 -0
- package/dist/types/custom-layout.d.ts.map +1 -0
- package/dist/types/swizzle.d.ts +59 -0
- package/dist/types/swizzle.d.ts.map +1 -0
- package/dist/web.js +1 -1
- package/example/CSS_HANDLING.md +141 -0
- package/example/FIXES_SUMMARY.md +121 -0
- package/example/PATH_ALIASES.md +103 -0
- package/example/README.md +64 -0
- package/example/index.html +13 -0
- package/example/package.json +25 -0
- package/example/postcss.config.cjs +6 -0
- package/example/tailwind.config.cjs +12 -0
- package/example/tsconfig.node.json +12 -0
- package/example/vite.config.ts +126 -0
- package/package.json +9 -1
- package/rollup.config.js +334 -4
- package/dist/utils/middleware/listenerWrapper.d.ts +0 -31
- package/dist/utils/middleware/listenerWrapper.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SkinLayer/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SkinLayer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Layout Paths Constants
|
|
3
|
+
*
|
|
4
|
+
* Định nghĩa các paths cho custom layout components để tránh hardcode
|
|
5
|
+
* và dễ maintain khi cần thay đổi cấu trúc
|
|
6
|
+
*/
|
|
7
|
+
export declare const CUSTOM_LAYOUT_PATHS: {
|
|
8
|
+
readonly PinActions: {
|
|
9
|
+
readonly ROOT: readonly ["PinActions"];
|
|
10
|
+
readonly Button: readonly ["PinActions", "Button"];
|
|
11
|
+
readonly ButtonWithTooltip: readonly ["PinActions", "ButtonWithTooltip"];
|
|
12
|
+
};
|
|
13
|
+
readonly PlayBar: {
|
|
14
|
+
readonly ROOT: readonly ["PlayBar"];
|
|
15
|
+
readonly PlayList: readonly ["PlayBar", "PlayList"];
|
|
16
|
+
readonly Tooltip: readonly ["PlayBar", "Tooltip"];
|
|
17
|
+
readonly Button: readonly ["PlayBar", "Button"];
|
|
18
|
+
};
|
|
19
|
+
readonly PoiDetailSlideIn: {
|
|
20
|
+
readonly ROOT: readonly ["PoiDetailSlideIn"];
|
|
21
|
+
readonly Drawer: readonly ["PoiDetailSlideIn", "Drawer"];
|
|
22
|
+
readonly BottomSheet: readonly ["PoiDetailSlideIn", "BottomSheet"];
|
|
23
|
+
readonly ProductDetail: {
|
|
24
|
+
readonly ROOT: readonly ["PoiDetailSlideIn", "ProductDetail"];
|
|
25
|
+
readonly Header: readonly ["PoiDetailSlideIn", "ProductDetail", "Header"];
|
|
26
|
+
readonly GroupActionButton: readonly ["PoiDetailSlideIn", "ProductDetail", "GroupActionButton"];
|
|
27
|
+
readonly Tabs: readonly ["PoiDetailSlideIn", "ProductDetail", "Tabs"];
|
|
28
|
+
readonly TabsContent: {
|
|
29
|
+
readonly ROOT: readonly ["PoiDetailSlideIn", "ProductDetail", "TabsContent"];
|
|
30
|
+
readonly Info: readonly ["PoiDetailSlideIn", "ProductDetail", "TabsContent", "Info"];
|
|
31
|
+
readonly Gallery: readonly ["PoiDetailSlideIn", "ProductDetail", "TabsContent", "Gallery"];
|
|
32
|
+
readonly ArTab: readonly ["PoiDetailSlideIn", "ProductDetail", "TabsContent", "ArTab"];
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
readonly Floorplan: {
|
|
37
|
+
readonly ROOT: readonly ["Floorplan"];
|
|
38
|
+
readonly Minimap: {
|
|
39
|
+
readonly ROOT: readonly ["Floorplan", "Minimap"];
|
|
40
|
+
readonly Marker: readonly ["Floorplan", "Minimap", "Marker"];
|
|
41
|
+
readonly Polygon: readonly ["Floorplan", "Minimap", "Polygon"];
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
readonly HotspotCategorySlideIn: {
|
|
45
|
+
readonly ROOT: readonly ["HotspotCategorySlideIn"];
|
|
46
|
+
readonly ScenarioSlideIn: readonly ["HotspotCategorySlideIn", "ScenarioSlideIn"];
|
|
47
|
+
readonly SpaceAndSceneSlideIn: readonly ["HotspotCategorySlideIn", "SpaceAndSceneSlideIn"];
|
|
48
|
+
readonly FeatureSlideIn: readonly ["HotspotCategorySlideIn", "FeatureSlideIn"];
|
|
49
|
+
readonly ProductSlideIn: readonly ["HotspotCategorySlideIn", "ProductSlideIn"];
|
|
50
|
+
readonly PoiSlideIn: readonly ["HotspotCategorySlideIn", "PoiSlideIn"];
|
|
51
|
+
};
|
|
52
|
+
readonly SearchAndDiscoverySlideIn: {
|
|
53
|
+
readonly ROOT: readonly ["SearchAndDiscoverySlideIn"];
|
|
54
|
+
readonly TourInfoActionPart: {
|
|
55
|
+
readonly ROOT: readonly ["SearchAndDiscoverySlideIn", "TourInfoActionPart"];
|
|
56
|
+
readonly ContentItem: readonly ["SearchAndDiscoverySlideIn", "TourInfoActionPart", "ContentItem"];
|
|
57
|
+
};
|
|
58
|
+
readonly ScenarioPart: {
|
|
59
|
+
readonly ROOT: readonly ["SearchAndDiscoverySlideIn", "ScenarioPart"];
|
|
60
|
+
readonly ScenarioItem: readonly ["SearchAndDiscoverySlideIn", "ScenarioPart", "ScenarioItem"];
|
|
61
|
+
};
|
|
62
|
+
readonly PromotionPart: {
|
|
63
|
+
readonly ROOT: readonly ["SearchAndDiscoverySlideIn", "PromotionPart"];
|
|
64
|
+
readonly CardItem: readonly ["SearchAndDiscoverySlideIn", "PromotionPart", "CardItem"];
|
|
65
|
+
};
|
|
66
|
+
readonly PoiInfoActionPart: {
|
|
67
|
+
readonly ROOT: readonly ["SearchAndDiscoverySlideIn", "PoiInfoActionPart"];
|
|
68
|
+
readonly ContentItem: readonly ["SearchAndDiscoverySlideIn", "PoiInfoActionPart", "ContentItem"];
|
|
69
|
+
};
|
|
70
|
+
readonly DisplayActionPart: {
|
|
71
|
+
readonly ROOT: readonly ["SearchAndDiscoverySlideIn", "DisplayActionPart"];
|
|
72
|
+
readonly ContentItem: readonly ["SearchAndDiscoverySlideIn", "DisplayActionPart", "ContentItem"];
|
|
73
|
+
readonly ContentItemLanguage: readonly ["SearchAndDiscoverySlideIn", "DisplayActionPart", "ContentItemLanguage"];
|
|
74
|
+
};
|
|
75
|
+
readonly HelpActionPart: {
|
|
76
|
+
readonly ROOT: readonly ["SearchAndDiscoverySlideIn", "HelpActionPart"];
|
|
77
|
+
readonly ContentItem: readonly ["SearchAndDiscoverySlideIn", "HelpActionPart", "ContentItem"];
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
readonly HotspotOverview: {
|
|
81
|
+
readonly ROOT: readonly ["HotspotOverview"];
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=customLayoutPaths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customLayoutPaths.d.ts","sourceRoot":"","sources":["../../../src/constants/SkinLayer/customLayoutPaths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJtB,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { SlideInActionTypes, SlideInItemTypes } from 'types/SkinLayer/SlideInTyp
|
|
|
2
2
|
import { LanguageType } from '../../types/Visualizer';
|
|
3
3
|
export * from './actionButtons';
|
|
4
4
|
export * from './poiDetail';
|
|
5
|
+
export { CUSTOM_LAYOUT_PATHS } from './customLayoutPaths';
|
|
5
6
|
export declare const GALLERY_TYPE: {
|
|
6
7
|
VIDEO: string;
|
|
7
8
|
IMAGE: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/SkinLayer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/SkinLayer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;CAcpB,CAAC;AAEF,oBAAY,wBAAwB;IAClC,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,eAAO,MAAM,SAAS,yCAAyC,CAAC;AAChE,eAAO,MAAM,SAAS,EAAE;IACtB,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,CAAC;CAClB,GAAG;IACF,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;CAqChC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;CAQ7B,CAAC;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;CAOjD,CAAC;AAEF,eAAO,MAAM,gDAAgD,MAAM,CAAC;AAEpE,eAAO,MAAM,aAAa,EAAE,gBAqB3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,kBAmD9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,eAAO,MAAM,sCAAsC,yBAAyB,CAAC;AAE7E,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,kBAmDhC,CAAC;AAEF,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,eAAO,MAAM,WAAW,8EAAsD,CAAC;AAC/E,eAAO,MAAM,qBAAqB,iFAAyD,CAAC;AAE5F,eAAO,MAAM,UAAU;;;;;CAKtB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
import { CustomLayoutConfig } from '../types/custom-layout';
|
|
3
|
+
type CustomLayoutContextType = {
|
|
4
|
+
customLayout: CustomLayoutConfig;
|
|
5
|
+
getCustomComponent: <T = unknown>(path: string[], defaultComponent: ComponentType<T>) => ComponentType<T>;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Hook để access custom layout configuration
|
|
9
|
+
*/
|
|
10
|
+
export declare const useCustomLayout: () => CustomLayoutContextType;
|
|
11
|
+
type Props = {
|
|
12
|
+
customLayout?: CustomLayoutConfig;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* CustomLayoutProvider - Wrap app với provider này để enable component overrides
|
|
17
|
+
*/
|
|
18
|
+
export declare const CustomLayoutProvider: React.FC<Props>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=CustomLayoutContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomLayoutContext.d.ts","sourceRoot":"","sources":["../../src/context/CustomLayoutContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EAKV,MAAM,OAAO,CAAC;AACf,OAAO,EACL,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,KAAK,uBAAuB,GAAG;IAC7B,YAAY,EAAE,kBAAkB,CAAC;IACjC,kBAAkB,EAAE,CAAC,CAAC,GAAG,OAAO,EAC9B,IAAI,EAAE,MAAM,EAAE,EACd,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,KAC/B,aAAa,CAAC,CAAC,CAAC,CAAC;CACvB,CAAC;AAOF;;GAEG;AACH,eAAO,MAAM,eAAe,+BAAwC,CAAC;AAErE,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwChD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { ReactNode, ComponentType } from 'react';
|
|
2
|
+
import { SwizzleConfig, SwizzlePath } from '../types/swizzle';
|
|
3
|
+
type SwizzleContextType = {
|
|
4
|
+
swizzle: SwizzleConfig;
|
|
5
|
+
getSwizzledComponent: <T = unknown>(path: SwizzlePath, defaultComponent: ComponentType<T>) => ComponentType<T>;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Hook để access swizzle configuration
|
|
9
|
+
*/
|
|
10
|
+
export declare const useSwizzle: () => SwizzleContextType;
|
|
11
|
+
type Props = {
|
|
12
|
+
swizzle?: SwizzleConfig;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* SwizzleProvider - Wrap app với provider này để enable component swizzling
|
|
17
|
+
* Giống như Docusaurus swizzle pattern
|
|
18
|
+
*/
|
|
19
|
+
export declare const SwizzleProvider: React.FC<Props>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=SwizzleContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwizzleContext.d.ts","sourceRoot":"","sources":["../../src/context/SwizzleContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,aAAa,EAGd,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ9D,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,oBAAoB,EAAE,CAAC,CAAC,GAAG,OAAO,EAChC,IAAI,EAAE,WAAW,EACjB,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,KAC/B,aAAa,CAAC,CAAC,CAAC,CAAC;CACvB,CAAC;AAOF;;GAEG;AACH,eAAO,MAAM,UAAU,0BAAmC,CAAC;AAE3D,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkG3C,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
type Props = {
|
|
3
3
|
code: string;
|
|
4
|
+
/**
|
|
5
|
+
* Disable UI hoàn toàn, chỉ render Visualizer
|
|
6
|
+
* Hữu ích khi muốn build UI hoàn toàn từ đầu ở component cha
|
|
7
|
+
*/
|
|
8
|
+
disableDefaultUI?: boolean;
|
|
4
9
|
};
|
|
5
10
|
declare const VirtualTour: FC<Props>;
|
|
6
11
|
export default VirtualTour;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualTour.d.ts","sourceRoot":"","sources":["../../../src/features/ShowroomVisualizer/VirtualTour.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"VirtualTour.d.ts","sourceRoot":"","sources":["../../../src/features/ShowroomVisualizer/VirtualTour.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAM3B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,KAAK,CAqB1B,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
type Props = {
|
|
3
3
|
code: string;
|
|
4
|
+
disableDefaultUI?: boolean;
|
|
4
5
|
};
|
|
5
|
-
|
|
6
|
-
export
|
|
6
|
+
declare const _default: React.NamedExoticComponent<Props>;
|
|
7
|
+
export default _default;
|
|
7
8
|
//# sourceMappingURL=VirtualTourContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualTourContainer.d.ts","sourceRoot":"","sources":["../../../src/features/ShowroomVisualizer/VirtualTourContainer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VirtualTourContainer.d.ts","sourceRoot":"","sources":["../../../src/features/ShowroomVisualizer/VirtualTourContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;;AAcF,wBAAgD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CustomLayoutConfig } from '../../types/custom-layout';
|
|
2
3
|
import { ActionMiddleware, ProductType, VisualizerListenersType } from '../../types/SkinLayer';
|
|
3
4
|
type VirtualTourVisualizerProps = {
|
|
4
5
|
elementId?: string;
|
|
@@ -16,8 +17,28 @@ type VirtualTourVisualizerProps = {
|
|
|
16
17
|
};
|
|
17
18
|
listeners?: VisualizerListenersType;
|
|
18
19
|
products?: ProductType[];
|
|
20
|
+
/**
|
|
21
|
+
* Disable default UI hoàn toàn
|
|
22
|
+
* Chỉ render tour engine, không có UI
|
|
23
|
+
* Hữu ích khi muốn build UI từ đầu ở ngoài component này
|
|
24
|
+
*/
|
|
25
|
+
disableDefaultUI?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Custom layout config - Override components theo cấu trúc object
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* customLayout={{
|
|
31
|
+
* Floorplan: {
|
|
32
|
+
* Minimap: {
|
|
33
|
+
* Marker: MyCustomMarker,
|
|
34
|
+
* },
|
|
35
|
+
* },
|
|
36
|
+
* }}
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
customLayout?: CustomLayoutConfig;
|
|
19
40
|
middleware?: ActionMiddleware;
|
|
20
41
|
};
|
|
21
|
-
declare const
|
|
22
|
-
export default
|
|
42
|
+
declare const _default: React.NamedExoticComponent<VirtualTourVisualizerProps>;
|
|
43
|
+
export default _default;
|
|
23
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/ShowroomVisualizer/index.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/ShowroomVisualizer/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AAWf,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAO/B,KAAK,0BAA0B,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;;AAgSF,wBASG"}
|
|
@@ -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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolConfig.d.ts","sourceRoot":"","sources":["../../src/hooks/useToolConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useToolConfig.d.ts","sourceRoot":"","sources":["../../src/hooks/useToolConfig.ts"],"names":[],"mappings":"AAoBA,QAAA,MAAM,aAAa,YAkalB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
export { default as ShowroomVisualizer } from './features/ShowroomVisualizer';
|
|
2
|
+
export type { CustomLayoutConfig, CustomLayoutComponent, CustomLayoutNode, } from './types/custom-layout';
|
|
3
|
+
export { CUSTOM_LAYOUT_COMPONENTS, resolveCustomLayoutComponent, } from './types/custom-layout';
|
|
4
|
+
export { useCustomLayout, CustomLayoutProvider, } from './context/CustomLayoutContext';
|
|
5
|
+
export { useShowroomControls, useTourCore, useFloorplanControl, useSceneNavigation, useScenarioControl, usePOIInteraction, useViewportControl, } from './hooks/headless';
|
|
6
|
+
export type { ShowroomControls, TourCoreControls, FloorplanControls, SceneNavigationControls, ScenarioControls, POIControls, ViewportControls, } from './hooks/headless';
|
|
7
|
+
export { Layout, DefaultLayout, PinActions, ButtonWithTooltip, PinActionButtonDefault, PinActionButtonWithTooltipDefault, ActionsChangeScene, SceneCategories, Floorplan, ScenarioList, TourScenarios, AGTProgressBar, HotspotActive, HotspotOverview, HotspotCategorySlideIn, ScenarioSlideIn, SpaceAndSceneSlideIn, FeatureSlideIn, ProductSlideIn, PoiSlideIn, PoiDetailSlideIn, PoiMovingPreview, PoiTextureOptions, ModalPopupPoi, ModalPopupPromotion, ModalGuide, PlayBar, PlayListSlideIn, GalleryFullScreen, SearchAndDiscoverySlideIn, TourInfoActionPart, ScenarioPart, PromotionPart, PoiInfoActionPart, DisplayActionPart, HelpActionPart, ContentItem, ScenarioItem, ContentItemLanguage, CardItem, LogoAndTitle, Joystick, Guide, UnmuteButton, LoadingScreen, } from './components/SkinLayer';
|
|
8
|
+
export { default as FloorplanMapDefault } from './components/SkinLayer/Floorplan/Map';
|
|
9
|
+
export { default as FloorplanMinimapDefault } from './components/SkinLayer/Floorplan/Minimap';
|
|
10
|
+
export { default as MiniMapMarkerDefault } from './components/SkinLayer/Floorplan/Minimap/MiniMapMarker';
|
|
11
|
+
export { default as MiniMapPolygonsDefault } from './components/SkinLayer/Floorplan/Minimap/MiniMapPolygons';
|
|
1
12
|
export type { VirtualTourVisualizerType } from './types/SkinLayer/visualizer.type';
|
|
13
|
+
export type { PinActionButtonProps, PinActionButtonWithTooltipProps, } from './components/SkinLayer';
|
|
2
14
|
export type { ActionMiddleware, ActionEvent, } from './types/SkinLayer/middleware.type';
|
|
3
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,YAAY,EACV,gBAAgB,EAChB,WAAW,GACZ,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAG9E,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAEL,MAAM,EACN,aAAa,EAGb,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,iCAAiC,EAGjC,kBAAkB,EAClB,eAAe,EAGf,SAAS,EAGT,YAAY,EACZ,aAAa,EACb,cAAc,EAGd,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAGjB,aAAa,EACb,mBAAmB,EACnB,UAAU,EAGV,OAAO,EACP,eAAe,EAGf,iBAAiB,EAGjB,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EAGR,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,aAAa,GACd,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AAG7G,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,YAAY,EACV,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,gBAAgB,EAChB,WAAW,GACZ,MAAM,mCAAmC,CAAC"}
|