@clikvn/showroom-visualizer 0.4.1-dev-02 → 0.4.1-dev-04
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 +1 -1
- package/DEVELOPMENT.md +6 -3
- package/EXAMPLES.md +193 -153
- package/README.md +7 -6
- package/SETUP_COMPLETE.md +10 -8
- package/dist/components/SkinLayer/HotspotCategorySlideIn/ProductSlideIn/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/ScenariosPart/index.d.ts.map +1 -1
- package/dist/constants/SkinLayer/customLayoutPaths.d.ts.map +1 -1
- package/dist/hooks/SkinLayer/useProductShake.d.ts +15 -0
- package/dist/hooks/SkinLayer/useProductShake.d.ts.map +1 -0
- package/dist/hooks/headless/useScenarioControl.d.ts.map +1 -1
- package/dist/hooks/useToolConfig.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/models/Visualizer/Tour.d.ts +7 -0
- package/dist/models/Visualizer/Tour.d.ts.map +1 -1
- package/dist/models/Visualizer/TourScenario/TourScenarioPlayer.d.ts.map +1 -1
- package/dist/types/SkinLayer/tool.type.d.ts +4 -0
- package/dist/types/SkinLayer/tool.type.d.ts.map +1 -1
- package/dist/types/custom-layout.d.ts.map +1 -1
- package/dist/web.js +1 -1
- package/example/CSS_HANDLING.md +4 -4
- package/example/FIXES_SUMMARY.md +18 -8
- package/example/PATH_ALIASES.md +13 -14
- package/example/README.md +0 -1
- package/example/index.html +0 -1
- package/example/postcss.config.cjs +1 -1
- package/example/tsconfig.node.json +0 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,13 +41,13 @@ import { ShowroomVisualizer, useShowroomControls } from 'showroom-visualizer';
|
|
|
41
41
|
|
|
42
42
|
function CustomUI() {
|
|
43
43
|
const controls = useShowroomControls();
|
|
44
|
-
|
|
44
|
+
|
|
45
45
|
return (
|
|
46
46
|
<div>
|
|
47
47
|
<h1>{controls.activeScene?.name}</h1>
|
|
48
48
|
<button onClick={controls.goToNextScene}>Next →</button>
|
|
49
49
|
<button onClick={controls.toggleFloorplan}>Toggle Map</button>
|
|
50
|
-
</div>
|
|
50
|
+
</div>
|
|
51
51
|
);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -90,7 +90,7 @@ function App() {
|
|
|
90
90
|
|
|
91
91
|
- `useShowroomControls()` - Main hook với tất cả controls
|
|
92
92
|
- `useTourCore()` - Tour engine state (read-only)
|
|
93
|
-
- `useSceneNavigation()` - Scene navigation controls
|
|
93
|
+
- `useSceneNavigation()` - Scene navigation controls
|
|
94
94
|
- `useFloorplanControl()` - Floorplan/minimap controls
|
|
95
95
|
- `useScenarioControl()` - Scenario auto-play controls
|
|
96
96
|
- `usePOIInteraction()` - POI interaction controls
|
|
@@ -108,6 +108,7 @@ Xem [HEADLESS_API.md](./HEADLESS_API.md) để biết chi tiết.
|
|
|
108
108
|
## 🎓 Examples
|
|
109
109
|
|
|
110
110
|
Xem [EXAMPLES.md](./EXAMPLES.md) để xem 9+ examples:
|
|
111
|
+
|
|
111
112
|
- Simple Custom Header
|
|
112
113
|
- Scene Grid Selector
|
|
113
114
|
- Sidebar Navigation
|
|
@@ -131,13 +132,13 @@ yarn dev
|
|
|
131
132
|
yarn build
|
|
132
133
|
|
|
133
134
|
# Serve built files
|
|
134
|
-
serve dist --cors
|
|
135
|
+
serve dist --cors
|
|
135
136
|
```
|
|
136
137
|
|
|
137
138
|
## 📝 License
|
|
138
139
|
|
|
139
|
-
MIT
|
|
140
|
-
|
|
140
|
+
# MIT
|
|
141
|
+
|
|
141
142
|
## Installation
|
|
142
143
|
|
|
143
144
|
```bash
|
package/SETUP_COMPLETE.md
CHANGED
|
@@ -45,7 +45,7 @@ yarn dev
|
|
|
45
45
|
✅ **Hot reload siêu nhanh** - Thay đổi code → Tự động reload
|
|
46
46
|
✅ **Test custom layout dễ dàng** - Bật/tắt bằng checkbox
|
|
47
47
|
✅ **Debug source code** - Có source maps đầy đủ
|
|
48
|
-
✅ **Không cần yalc** - Độc lập hoàn toàn
|
|
48
|
+
✅ **Không cần yalc** - Độc lập hoàn toàn
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
@@ -82,6 +82,7 @@ yarn dev
|
|
|
82
82
|
### 2. **Test Integration → Dùng yalc với Next.js**
|
|
83
83
|
|
|
84
84
|
Chỉ khi cần:
|
|
85
|
+
|
|
85
86
|
- Test build output thật
|
|
86
87
|
- Test với Next.js SSR/RSC
|
|
87
88
|
- Test production build
|
|
@@ -98,12 +99,12 @@ npx serve
|
|
|
98
99
|
|
|
99
100
|
## 🎯 Các files quan trọng:
|
|
100
101
|
|
|
101
|
-
| File
|
|
102
|
-
|
|
103
|
-
| `DEVELOPMENT.md`
|
|
104
|
-
| `example/README.md`
|
|
105
|
-
| `example/src/App.tsx` | Demo app với custom layout
|
|
106
|
-
| `package.json`
|
|
102
|
+
| File | Mô tả |
|
|
103
|
+
| --------------------- | ------------------------------ |
|
|
104
|
+
| `DEVELOPMENT.md` | Hướng dẫn development chi tiết |
|
|
105
|
+
| `example/README.md` | Hướng dẫn example app |
|
|
106
|
+
| `example/src/App.tsx` | Demo app với custom layout |
|
|
107
|
+
| `package.json` | Đã thêm `dev:demo` script |
|
|
107
108
|
|
|
108
109
|
---
|
|
109
110
|
|
|
@@ -119,6 +120,7 @@ npx serve
|
|
|
119
120
|
## 🐛 Fix lỗi yalc trước đó:
|
|
120
121
|
|
|
121
122
|
**Vấn đề cũ:**
|
|
123
|
+
|
|
122
124
|
```
|
|
123
125
|
ReactDOM__default.ReactDOM__default.findDOMNode
|
|
124
126
|
```
|
|
@@ -127,6 +129,7 @@ ReactDOM__default.ReactDOM__default.findDOMNode
|
|
|
127
129
|
➡️ Dùng Example app thay vì yalc để tránh hoàn toàn vấn đề này!
|
|
128
130
|
|
|
129
131
|
Example app import trực tiếp từ source nên:
|
|
132
|
+
|
|
130
133
|
- ✅ Không có build issues
|
|
131
134
|
- ✅ Không có double prefix
|
|
132
135
|
- ✅ Không cần fix Rollup plugins
|
|
@@ -146,4 +149,3 @@ yarn dev
|
|
|
146
149
|
---
|
|
147
150
|
|
|
148
151
|
Happy Coding! 🎉
|
|
149
|
-
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SkinLayer/HotspotCategorySlideIn/ProductSlideIn/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SkinLayer/HotspotCategorySlideIn/ProductSlideIn/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAM3B,QAAA,MAAM,cAAc,EAAE,EA+HrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpActionPart.d.ts","sourceRoot":"","sources":["../../../../src/components/SkinLayer/SearchAndDiscoverySlideIn/HelpActionPart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAWjF,KAAK,mBAAmB,GAAG;IACzB,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAS,CAAC;CAC1D,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"HelpActionPart.d.ts","sourceRoot":"","sources":["../../../../src/components/SkinLayer/SearchAndDiscoverySlideIn/HelpActionPart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAWjF,KAAK,mBAAmB,GAAG;IACzB,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAS,CAAC;CAC1D,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAwE3C,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/PoiInfoActionPart/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SkinLayer/SearchAndDiscoverySlideIn/PoiInfoActionPart/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,EAEF,SAAS,EAIV,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAejF,oBAAY,OAAO;IACjB,MAAM,IAAA;IACN,MAAM,IAAA;CACP;AAED,KAAK,sBAAsB,GAAG;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAS,CAAC;CAC1D,CAAC;AAEF,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SkinLayer/SearchAndDiscoverySlideIn/PoiInfoActionPart/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,EAEF,SAAS,EAIV,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAejF,oBAAY,OAAO;IACjB,MAAM,IAAA;IACN,MAAM,IAAA;CACP;AAED,KAAK,sBAAsB,GAAG;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAS,CAAC;CAC1D,CAAC;AAEF,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAmLjD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SkinLayer/SearchAndDiscoverySlideIn/ScenariosPart/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAejF,KAAK,iBAAiB,GAAG;IACvB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAS,CAAC;CAC1D,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SkinLayer/SearchAndDiscoverySlideIn/ScenariosPart/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAejF,KAAK,iBAAiB,GAAG;IACvB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAS,CAAC;CAC1D,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA0FvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customLayoutPaths.d.ts","sourceRoot":"","sources":["../../../src/constants/SkinLayer/customLayoutPaths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"customLayoutPaths.d.ts","sourceRoot":"","sources":["../../../src/constants/SkinLayer/customLayoutPaths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ItB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ProductShakeOptions = {
|
|
2
|
+
shakeDuration?: number;
|
|
3
|
+
playAGT?: boolean;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Custom hook for product shake animation
|
|
7
|
+
* Returns success flag after shake + AGT completed
|
|
8
|
+
*/
|
|
9
|
+
export declare const useProductShake: () => {
|
|
10
|
+
shakeProduct: (productCode: string, options?: ProductShakeOptions) => Promise<boolean>;
|
|
11
|
+
isShaking: boolean;
|
|
12
|
+
shakingProductCode: string | null;
|
|
13
|
+
};
|
|
14
|
+
export default useProductShake;
|
|
15
|
+
//# sourceMappingURL=useProductShake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProductShake.d.ts","sourceRoot":"","sources":["../../../src/hooks/SkinLayer/useProductShake.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe;gCA+CX,MAAM,YACV,mBAAmB,KAC3B,OAAO,CAAC,OAAO,CAAC;;;CAiEpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +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;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useScenarioControl.d.ts","sourceRoot":"","sources":["../../../src/hooks/headless/useScenarioControl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,eAAO,MAAM,kBAAkB;;;;;;iCA8BN,MAAM;;;;;;;;CA6E9B,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":"AAqBA,QAAA,MAAM,aAAa,YAoalB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|