@clikvn/showroom-visualizer 0.3.0-dev-08 → 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/useActionMiddleware.d.ts.map +1 -1
- package/dist/hooks/useConfiguration.d.ts +0 -1
- package/dist/hooks/useConfiguration.d.ts.map +1 -1
- 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
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(find:*)",
|
|
5
|
+
"Bash(npm run build:*)",
|
|
6
|
+
"Bash(grep:*)",
|
|
7
|
+
"Bash(rm:*)",
|
|
8
|
+
"Bash(ls:*)",
|
|
9
|
+
"Bash(sed:*)",
|
|
10
|
+
"Bash(yarn build)",
|
|
11
|
+
"Bash(yalc push:*)",
|
|
12
|
+
"Bash(yarn dev)",
|
|
13
|
+
"Bash(yarn list:*)",
|
|
14
|
+
"Bash(mv:*)",
|
|
15
|
+
"Bash(rg:*)"
|
|
16
|
+
],
|
|
17
|
+
"deny": []
|
|
18
|
+
}
|
|
19
|
+
}
|
package/DEVELOPMENT.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# 🛠️ Development Guide
|
|
2
|
+
|
|
3
|
+
Hướng dẫn phát triển thư viện `@clikvn/showroom-visualizer`.
|
|
4
|
+
|
|
5
|
+
## 📦 Cấu trúc Project
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
showroom-visualizer/
|
|
9
|
+
├── src/ # Source code của thư viện
|
|
10
|
+
├── dist/ # Build output (NPM package & Web Component)
|
|
11
|
+
├── example/ # Example app để test local (Vite + React)
|
|
12
|
+
├── rollup.config.js # Build configuration
|
|
13
|
+
└── package.json
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 🚀 Development Workflows
|
|
17
|
+
|
|
18
|
+
### Workflow 1: Test trong Example App (Khuyến nghị ⭐)
|
|
19
|
+
|
|
20
|
+
**Ưu điểm:**
|
|
21
|
+
- ✅ Import trực tiếp từ source (`src/`) - không cần build
|
|
22
|
+
- ✅ Hot reload cực nhanh
|
|
23
|
+
- ✅ Debug dễ dàng với source maps
|
|
24
|
+
- ✅ Test custom layout overrides và tất cả features
|
|
25
|
+
- ✅ Không cần publish hoặc yalc
|
|
26
|
+
|
|
27
|
+
**Cách dùng:**
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Bước 1: Cài đặt dependencies cho example (chỉ lần đầu)
|
|
31
|
+
cd example
|
|
32
|
+
yarn install
|
|
33
|
+
|
|
34
|
+
# Bước 2: Chạy example app
|
|
35
|
+
yarn dev
|
|
36
|
+
# hoặc từ root: yarn dev:demo
|
|
37
|
+
|
|
38
|
+
# App sẽ chạy tại: http://localhost:3001
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Modify và test:**
|
|
42
|
+
- Thay đổi code trong `src/` → Auto reload
|
|
43
|
+
- Thay đổi code trong `example/src/App.tsx` → Auto reload
|
|
44
|
+
- Test custom layout bằng checkbox trong UI
|
|
45
|
+
|
|
46
|
+
### Workflow 2: Build và Test Web Component
|
|
47
|
+
|
|
48
|
+
**Test Web Component:**
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Build
|
|
52
|
+
yarn build
|
|
53
|
+
|
|
54
|
+
# Serve dist folder
|
|
55
|
+
cd dist
|
|
56
|
+
npx serve
|
|
57
|
+
# hoặc: python3 -m http.server 8080
|
|
58
|
+
|
|
59
|
+
# Mở browser: http://localhost:8080
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Xem file `dist/index.html` để biết cách dùng Web Component.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 🏗️ Build Strategy
|
|
67
|
+
|
|
68
|
+
Thư viện này có **2 build outputs**:
|
|
69
|
+
|
|
70
|
+
### 1. NPM Package (`dist/index.js`)
|
|
71
|
+
- **Dùng cho:** React/Next.js apps
|
|
72
|
+
- **React:** External (dùng React của project)
|
|
73
|
+
- **Hỗ trợ:** Custom layout overrides, custom components
|
|
74
|
+
- **Import:**
|
|
75
|
+
```tsx
|
|
76
|
+
import { ShowroomVisualizer } from '@clikvn/showroom-visualizer';
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 2. Web Component (`dist/web.js`)
|
|
80
|
+
- **Dùng cho:** Vanilla HTML/JS
|
|
81
|
+
- **React:** Bundled (React 18 đã được bundle sẵn)
|
|
82
|
+
- **Không hỗ trợ:** Custom layout overrides
|
|
83
|
+
- **Import:**
|
|
84
|
+
```html
|
|
85
|
+
<script type="module" src="web.js"></script>
|
|
86
|
+
<showroom-visualizer api-url="..." showroom-id="..."></showroom-visualizer>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 📝 Common Tasks
|
|
92
|
+
|
|
93
|
+
### Thêm feature mới
|
|
94
|
+
|
|
95
|
+
1. Code trong `src/`
|
|
96
|
+
2. Test trong `example/` app
|
|
97
|
+
3. Build: `yarn build`
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
## 🐛 Troubleshooting
|
|
101
|
+
|
|
102
|
+
### Build errors
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Clean và rebuild
|
|
106
|
+
rm -rf dist
|
|
107
|
+
yarn build
|
|
108
|
+
```
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## ✨ Tips
|
|
112
|
+
|
|
113
|
+
1. **Luôn dùng Example app khi develop** - Nhanh và tiện nhất
|
|
114
|
+
2. **Commit example app vào git** để team members cùng dùng
|
|
115
|
+
3. **Không commit `dist/` vào git** - Chỉ build khi deploy
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
Happy coding! 🚀
|
|
120
|
+
|