@clikvn/showroom-visualizer 0.4.1-dev-13 → 0.4.1-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 (39) hide show
  1. package/CLAUDE.md +145 -145
  2. package/DEVELOPMENT.md +120 -120
  3. package/EXAMPLES.md +967 -967
  4. package/README.md +489 -489
  5. package/SETUP_COMPLETE.md +149 -149
  6. package/base.json +21 -21
  7. package/dist/components/SkinLayer/Drawer/PoiHeader/index.d.ts +16 -0
  8. package/dist/components/SkinLayer/Drawer/PoiHeader/index.d.ts.map +1 -0
  9. package/dist/components/SkinLayer/Drawer/index.d.ts +29 -0
  10. package/dist/components/SkinLayer/Drawer/index.d.ts.map +1 -0
  11. package/dist/components/SkinLayer/PlayAll/index.d.ts +8 -0
  12. package/dist/components/SkinLayer/PlayAll/index.d.ts.map +1 -0
  13. package/dist/features/VirtualTourVisualizer/index.d.ts +20 -0
  14. package/dist/features/VirtualTourVisualizer/index.d.ts.map +1 -0
  15. package/dist/features/VirtualTourVisualizerUI/index.d.ts +17 -0
  16. package/dist/features/VirtualTourVisualizerUI/index.d.ts.map +1 -0
  17. package/dist/fonts/icomoon.svg +633 -633
  18. package/dist/index.html +36 -0
  19. package/dist/index.js +1 -1
  20. package/dist/web.d.ts.map +1 -1
  21. package/dist/web.js +1 -1
  22. package/example/CSS_HANDLING.md +141 -141
  23. package/example/FIXES_SUMMARY.md +121 -131
  24. package/example/PATH_ALIASES.md +103 -102
  25. package/example/README.md +64 -63
  26. package/example/index.html +13 -12
  27. package/example/package.json +25 -25
  28. package/example/postcss.config.cjs +6 -6
  29. package/example/tailwind.config.cjs +12 -12
  30. package/example/tsconfig.node.json +12 -11
  31. package/example/vite.config.ts +142 -142
  32. package/package.json +133 -133
  33. package/rollup.config.js +400 -400
  34. package/tailwind.config.cjs +151 -151
  35. package/.claude/settings.local.json +0 -19
  36. package/dist/components/SkinLayer/Floorplan/Minimap/test01.d.ts +0 -15
  37. package/dist/components/SkinLayer/Floorplan/Minimap/test01.d.ts.map +0 -1
  38. /package/dist/features/ShowroomVisualizer/{CssStyles.d.ts → cssStyles.d.ts} +0 -0
  39. /package/dist/features/ShowroomVisualizer/{CssStyles.d.ts.map → cssStyles.d.ts.map} +0 -0
@@ -1,102 +1,103 @@
1
- # 📁 Path Aliases Configuration
2
-
3
- ## Vấn đề
4
-
5
- Thư viện `showroom-visualizer` sử dụng `baseUrl: "./src"` trong `tsconfig.json`, cho phép import trực tiếp từ root của `src/`:
6
-
7
- ```typescript
8
- // Thay vì:
9
- import Drawer from '../../commons/SkinLayer/components/Drawer';
10
-
11
- // Có thể viết:
12
- import Drawer from 'commons/SkinLayer/components/Drawer';
13
- ```
14
-
15
- ## Giải pháp
16
-
17
- Example app cần cấu hình tương ứng để Vite và TypeScript có thể resolve các imports này.
18
-
19
- ### 1. Vite Config (`vite.config.ts`)
20
-
21
- ```typescript
22
- resolve: {
23
- alias: {
24
- '@clikvn/showroom-visualizer': path.resolve(__dirname, '../src'),
25
- 'commons': path.resolve(__dirname, '../src/commons'),
26
- 'components': path.resolve(__dirname, '../src/components'),
27
- 'constants': path.resolve(__dirname, '../src/constants'),
28
- 'context': path.resolve(__dirname, '../src/context'),
29
- 'features': path.resolve(__dirname, '../src/features'),
30
- 'hooks': path.resolve(__dirname, '../src/hooks'),
31
- 'models': path.resolve(__dirname, '../src/models'),
32
- 'services': path.resolve(__dirname, '../src/services'),
33
- 'types': path.resolve(__dirname, '../src/types'),
34
- 'utils': path.resolve(__dirname, '../src/utils'),
35
- },
36
- }
37
- ```
38
-
39
- ### 2. TypeScript Config (`tsconfig.json`)
40
-
41
- ```json
42
- {
43
- "compilerOptions": {
44
- "baseUrl": ".",
45
- "paths": {
46
- "commons": ["../src/commons"],
47
- "commons/*": ["../src/commons/*"],
48
- "components": ["../src/components"],
49
- "components/*": ["../src/components/*"]
50
- // ... các aliases khác
51
- }
52
- }
53
- }
54
- ```
55
-
56
- ## Các Aliases Được Hỗ Trợ
57
-
58
- | Alias | Trỏ đến | Ví dụ |
59
- | -------------- | --------------------- | --------------------------------------------------------------- |
60
- | `commons/*` | `../src/commons/*` | `import Drawer from 'commons/SkinLayer/components/Drawer'` |
61
- | `components/*` | `../src/components/*` | `import Layout from 'components/SkinLayer/Layout'` |
62
- | `constants/*` | `../src/constants/*` | `import { WIDTH_SLIDE_IN } from 'constants/SkinLayer'` |
63
- | `context/*` | `../src/context/*` | `import { useCustomLayout } from 'context/CustomLayoutContext'` |
64
- | `features/*` | `../src/features/*` | `import Visualizer from 'features/ShowroomVisualizer'` |
65
- | `hooks/*` | `../src/hooks/*` | `import { useStore } from 'hooks/useStore'` |
66
- | `models/*` | `../src/models/*` | `import PoiItemInfo from 'models/Visualizer/Poi/PoiItemInfo'` |
67
- | `services/*` | `../src/services/*` | `import ApiService from 'services/Visualizer/ApiService'` |
68
- | `types/*` | `../src/types/*` | `import { CustomLayoutConfig } from 'types/custom-layout'` |
69
- | `utils/*` | `../src/utils/*` | `import { formatDate } from 'utils/Visualizer/date'` |
70
-
71
- ## ⚠️ Lưu ý
72
-
73
- 1. **Restart dev server** sau khi thay đổi `vite.config.ts` hoặc `tsconfig.json`
74
- 2. **Không cần** thêm aliases này vào thư viện chính - chỉ cần trong example app
75
- 3. Nếu thêm folder mới trong `src/`, cần thêm alias tương ứng
76
-
77
- ## 🐛 Troubleshooting
78
-
79
- ### Lỗi: "Failed to resolve import"
80
-
81
- ```bash
82
- # Kiểm tra alias có đúng không
83
- cat example/vite.config.ts
84
-
85
- # Restart dev server
86
- cd example
87
- yarn dev
88
- ```
89
-
90
- ### TypeScript không tìm thấy types
91
-
92
- ```bash
93
- # Kiểm tra paths trong tsconfig.json
94
- cat example/tsconfig.json
95
-
96
- # Restart TypeScript server trong VSCode
97
- # Cmd/Ctrl + Shift + P → "TypeScript: Restart TS Server"
98
- ```
99
-
100
- ---
101
-
102
- ✅ Đã cấu hình xong! Example app giờ có thể import từ source code giống như thư viện chính.
1
+ # 📁 Path Aliases Configuration
2
+
3
+ ## Vấn đề
4
+
5
+ Thư viện `showroom-visualizer` sử dụng `baseUrl: "./src"` trong `tsconfig.json`, cho phép import trực tiếp từ root của `src/`:
6
+
7
+ ```typescript
8
+ // Thay vì:
9
+ import Drawer from '../../commons/SkinLayer/components/Drawer';
10
+
11
+ // Có thể viết:
12
+ import Drawer from 'commons/SkinLayer/components/Drawer';
13
+ ```
14
+
15
+ ## Giải pháp
16
+
17
+ Example app cần cấu hình tương ứng để Vite và TypeScript có thể resolve các imports này.
18
+
19
+ ### 1. Vite Config (`vite.config.ts`)
20
+
21
+ ```typescript
22
+ resolve: {
23
+ alias: {
24
+ '@clikvn/showroom-visualizer': path.resolve(__dirname, '../src'),
25
+ 'commons': path.resolve(__dirname, '../src/commons'),
26
+ 'components': path.resolve(__dirname, '../src/components'),
27
+ 'constants': path.resolve(__dirname, '../src/constants'),
28
+ 'context': path.resolve(__dirname, '../src/context'),
29
+ 'features': path.resolve(__dirname, '../src/features'),
30
+ 'hooks': path.resolve(__dirname, '../src/hooks'),
31
+ 'models': path.resolve(__dirname, '../src/models'),
32
+ 'services': path.resolve(__dirname, '../src/services'),
33
+ 'types': path.resolve(__dirname, '../src/types'),
34
+ 'utils': path.resolve(__dirname, '../src/utils'),
35
+ },
36
+ }
37
+ ```
38
+
39
+ ### 2. TypeScript Config (`tsconfig.json`)
40
+
41
+ ```json
42
+ {
43
+ "compilerOptions": {
44
+ "baseUrl": ".",
45
+ "paths": {
46
+ "commons": ["../src/commons"],
47
+ "commons/*": ["../src/commons/*"],
48
+ "components": ["../src/components"],
49
+ "components/*": ["../src/components/*"],
50
+ // ... các aliases khác
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ ## Các Aliases Được Hỗ Trợ
57
+
58
+ | Alias | Trỏ đến | Ví dụ |
59
+ |-------|---------|-------|
60
+ | `commons/*` | `../src/commons/*` | `import Drawer from 'commons/SkinLayer/components/Drawer'` |
61
+ | `components/*` | `../src/components/*` | `import Layout from 'components/SkinLayer/Layout'` |
62
+ | `constants/*` | `../src/constants/*` | `import { WIDTH_SLIDE_IN } from 'constants/SkinLayer'` |
63
+ | `context/*` | `../src/context/*` | `import { useCustomLayout } from 'context/CustomLayoutContext'` |
64
+ | `features/*` | `../src/features/*` | `import Visualizer from 'features/ShowroomVisualizer'` |
65
+ | `hooks/*` | `../src/hooks/*` | `import { useStore } from 'hooks/useStore'` |
66
+ | `models/*` | `../src/models/*` | `import PoiItemInfo from 'models/Visualizer/Poi/PoiItemInfo'` |
67
+ | `services/*` | `../src/services/*` | `import ApiService from 'services/Visualizer/ApiService'` |
68
+ | `types/*` | `../src/types/*` | `import { CustomLayoutConfig } from 'types/custom-layout'` |
69
+ | `utils/*` | `../src/utils/*` | `import { formatDate } from 'utils/Visualizer/date'` |
70
+
71
+ ## ⚠️ Lưu ý
72
+
73
+ 1. **Restart dev server** sau khi thay đổi `vite.config.ts` hoặc `tsconfig.json`
74
+ 2. **Không cần** thêm aliases này vào thư viện chính - chỉ cần trong example app
75
+ 3. Nếu thêm folder mới trong `src/`, cần thêm alias tương ứng
76
+
77
+ ## 🐛 Troubleshooting
78
+
79
+ ### Lỗi: "Failed to resolve import"
80
+
81
+ ```bash
82
+ # Kiểm tra alias có đúng không
83
+ cat example/vite.config.ts
84
+
85
+ # Restart dev server
86
+ cd example
87
+ yarn dev
88
+ ```
89
+
90
+ ### TypeScript không tìm thấy types
91
+
92
+ ```bash
93
+ # Kiểm tra paths trong tsconfig.json
94
+ cat example/tsconfig.json
95
+
96
+ # Restart TypeScript server trong VSCode
97
+ # Cmd/Ctrl + Shift + P → "TypeScript: Restart TS Server"
98
+ ```
99
+
100
+ ---
101
+
102
+ ✅ Đã cấu hình xong! Example app giờ có thể import từ source code giống như thư viện chính.
103
+
package/example/README.md CHANGED
@@ -1,63 +1,64 @@
1
- # Showroom Visualizer - Example App
2
-
3
- Đây là example app để test và develop thư viện `@clikvn/showroom-visualizer` trong môi trường local.
4
-
5
- ## 🚀 Cách sử dụng
6
-
7
- ### 1. Cài đặt dependencies
8
-
9
- ```bash
10
- cd example
11
- yarn install
12
- # hoặc
13
- npm install
14
- ```
15
-
16
- ### 2. Chạy dev server
17
-
18
- ```bash
19
- yarn dev
20
- # hoặc
21
- npm run dev
22
- ```
23
-
24
- App sẽ chạy tại: http://localhost:3001
25
-
26
- ### 3. Test thư viện
27
-
28
- - **Import trực tiếp từ source**: Example app sẽ import trực tiếp từ `../src/` thay vì build
29
- - **Hot reload**: Mọi thay đổi trong `../src/` hoặc `example/src/` đều tự động reload
30
- - **Test custom layout**: Bật/tắt custom components bằng checkbox trong UI
31
- - **Test props**: Thay đổi language, API URL, etc.
32
-
33
- ## 📝 Lưu ý
34
-
35
- 1. **Không cần build**: Example app import trực tiếp từ TypeScript source
36
- 2. **React version**: Đảm bảo cùng version (18.3.1) với thư viện chính
37
- 3. **Không publish**: Folder này chỉ dùng cho development, không publish lên npm
38
-
39
- ## 🎯 Use Cases
40
-
41
- - ✅ Test features mới
42
- - ✅ Debug issues
43
- - ✅ Test custom layout components
44
- - ✅ Kiểm tra performance
45
- - ✅ Preview trước khi publish
46
-
47
- ## 🔗 Import từ source
48
-
49
- Trong `vite.config.ts`, chúng ta đã setup alias:
50
-
51
- ```typescript
52
- resolve: {
53
- alias: {
54
- '@clikvn/showroom-visualizer': path.resolve(__dirname, '../src'),
55
- },
56
- }
57
- ```
58
-
59
- Nên bạn có thể import như thật:
60
-
61
- ```typescript
62
- import { ShowroomVisualizer } from '@clikvn/showroom-visualizer';
63
- ```
1
+ # Showroom Visualizer - Example App
2
+
3
+ Đây là example app để test và develop thư viện `@clikvn/showroom-visualizer` trong môi trường local.
4
+
5
+ ## 🚀 Cách sử dụng
6
+
7
+ ### 1. Cài đặt dependencies
8
+
9
+ ```bash
10
+ cd example
11
+ yarn install
12
+ # hoặc
13
+ npm install
14
+ ```
15
+
16
+ ### 2. Chạy dev server
17
+
18
+ ```bash
19
+ yarn dev
20
+ # hoặc
21
+ npm run dev
22
+ ```
23
+
24
+ App sẽ chạy tại: http://localhost:3001
25
+
26
+ ### 3. Test thư viện
27
+
28
+ - **Import trực tiếp từ source**: Example app sẽ import trực tiếp từ `../src/` thay vì build
29
+ - **Hot reload**: Mọi thay đổi trong `../src/` hoặc `example/src/` đều tự động reload
30
+ - **Test custom layout**: Bật/tắt custom components bằng checkbox trong UI
31
+ - **Test props**: Thay đổi language, API URL, etc.
32
+
33
+ ## 📝 Lưu ý
34
+
35
+ 1. **Không cần build**: Example app import trực tiếp từ TypeScript source
36
+ 2. **React version**: Đảm bảo cùng version (18.3.1) với thư viện chính
37
+ 3. **Không publish**: Folder này chỉ dùng cho development, không publish lên npm
38
+
39
+ ## 🎯 Use Cases
40
+
41
+ - ✅ Test features mới
42
+ - ✅ Debug issues
43
+ - ✅ Test custom layout components
44
+ - ✅ Kiểm tra performance
45
+ - ✅ Preview trước khi publish
46
+
47
+ ## 🔗 Import từ source
48
+
49
+ Trong `vite.config.ts`, chúng ta đã setup alias:
50
+
51
+ ```typescript
52
+ resolve: {
53
+ alias: {
54
+ '@clikvn/showroom-visualizer': path.resolve(__dirname, '../src'),
55
+ },
56
+ }
57
+ ```
58
+
59
+ Nên bạn có thể import như thật:
60
+
61
+ ```typescript
62
+ import { ShowroomVisualizer } from '@clikvn/showroom-visualizer';
63
+ ```
64
+
@@ -1,12 +1,13 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>Showroom Visualizer - Example</title>
7
- </head>
8
- <body>
9
- <div id="root"></div>
10
- <script type="module" src="/src/main.tsx"></script>
11
- </body>
12
- </html>
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Showroom Visualizer - Example</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/main.tsx"></script>
11
+ </body>
12
+ </html>
13
+
@@ -1,25 +1,25 @@
1
- {
2
- "name": "showroom-visualizer-example",
3
- "private": true,
4
- "version": "0.0.0",
5
- "type": "module",
6
- "scripts": {
7
- "dev": "vite",
8
- "build": "tsc && vite build",
9
- "preview": "vite preview"
10
- },
11
- "dependencies": {
12
- "react": "^19.1.0",
13
- "react-dom": "^19.1.0"
14
- },
15
- "devDependencies": {
16
- "@types/react": "^19.1.0",
17
- "@types/react-dom": "^19.1.0",
18
- "@vitejs/plugin-react": "^5.0.0",
19
- "autoprefixer": "^10.4.22",
20
- "postcss": "^8.5.6",
21
- "tailwindcss": "^3.4.0",
22
- "typescript": "^5.6.3",
23
- "vite": "^6.0.0"
24
- }
25
- }
1
+ {
2
+ "name": "showroom-visualizer-example",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "tsc && vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "react": "^19.1.0",
13
+ "react-dom": "^19.1.0"
14
+ },
15
+ "devDependencies": {
16
+ "@types/react": "^19.1.0",
17
+ "@types/react-dom": "^19.1.0",
18
+ "@vitejs/plugin-react": "^5.0.0",
19
+ "autoprefixer": "^10.4.22",
20
+ "postcss": "^8.5.6",
21
+ "tailwindcss": "^3.4.0",
22
+ "typescript": "^5.6.3",
23
+ "vite": "^6.0.0"
24
+ }
25
+ }
@@ -1,6 +1,6 @@
1
- module.exports = {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- };
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ };
@@ -1,12 +1,12 @@
1
- /** @type {import('tailwindcss').Config} */
2
- module.exports = {
3
- // Extend the parent tailwind config
4
- presets: [require('../tailwind.config.cjs')],
5
- content: [
6
- './index.html',
7
- './src/**/*.{js,ts,jsx,tsx}',
8
- // Include parent library source files
9
- '../src/**/*.{js,ts,jsx,tsx}',
10
- ],
11
- important: true,
12
- };
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ // Extend the parent tailwind config
4
+ presets: [require('../tailwind.config.cjs')],
5
+ content: [
6
+ './index.html',
7
+ './src/**/*.{js,ts,jsx,tsx}',
8
+ // Include parent library source files
9
+ '../src/**/*.{js,ts,jsx,tsx}',
10
+ ],
11
+ important: true,
12
+ };
@@ -1,11 +1,12 @@
1
- {
2
- "compilerOptions": {
3
- "composite": true,
4
- "skipLibCheck": true,
5
- "module": "ESNext",
6
- "moduleResolution": "bundler",
7
- "allowSyntheticDefaultImports": true,
8
- "strict": true
9
- },
10
- "include": ["vite.config.ts"]
11
- }
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "skipLibCheck": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "allowSyntheticDefaultImports": true,
8
+ "strict": true
9
+ },
10
+ "include": ["vite.config.ts"]
11
+ }
12
+