@clikvn/showroom-visualizer 0.5.1 → 0.5.2

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 (28) hide show
  1. package/dist/components/SkinLayer/HotspotOverview/index.d.ts.map +1 -1
  2. package/dist/features/ShowroomVisualizer/index.d.ts +1 -0
  3. package/dist/features/ShowroomVisualizer/index.d.ts.map +1 -1
  4. package/dist/hooks/SkinLayer/useAutoPlayer.d.ts.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/models/Visualizer/Poi/PoiListMoving.d.ts.map +1 -1
  7. package/dist/web.js +1 -1
  8. package/example/src/App.tsx +195 -0
  9. package/example/src/components/ControlPanel.tsx +736 -0
  10. package/example/src/components/CustomComponents/FloorplanComponents.tsx +37 -0
  11. package/example/src/components/CustomComponents/HotspotCategoryComponents.tsx +106 -0
  12. package/example/src/components/CustomComponents/PinActionsComponents.tsx +45 -0
  13. package/example/src/components/CustomComponents/PlayBarComponents.tsx +41 -0
  14. package/example/src/components/CustomComponents/PoiDetailComponents.tsx +296 -0
  15. package/example/src/components/CustomComponents/SearchAndDiscoveryComponents.tsx +207 -0
  16. package/example/src/components/CustomComponents/index.tsx +7 -0
  17. package/example/src/css-modules.d.ts +4 -0
  18. package/example/src/hooks/useCustomLayout.ts +328 -0
  19. package/example/src/index.css +31 -0
  20. package/example/src/main.tsx +11 -0
  21. package/package.json +1 -1
  22. package/.idea/inspectionProfiles/Project_Default.xml +0 -36
  23. package/.idea/jsLinters/eslint.xml +0 -7
  24. package/.idea/misc.xml +0 -9
  25. package/.idea/modules.xml +0 -8
  26. package/.idea/prettier.xml +0 -8
  27. package/.idea/showroom-visualizer.iml +0 -9
  28. package/.idea/vcs.xml +0 -6
@@ -0,0 +1,207 @@
1
+ import {
2
+ SearchAndDiscoverySlideIn as SearchAndDiscoverySlideInDefault,
3
+ TourInfoActionPart as TourInfoActionPartDefault,
4
+ ScenarioPart as ScenarioPartDefault,
5
+ PromotionPart as PromotionPartDefault,
6
+ PoiInfoActionPart as PoiInfoActionPartDefault,
7
+ DisplayActionPart as DisplayActionPartDefault,
8
+ HelpActionPart as HelpActionPartDefault,
9
+ } from '@clikvn/showroom-visualizer';
10
+
11
+ // 🔍 Custom SearchAndDiscoverySlideIn Component
12
+ export const CustomSearchAndDiscoverySlideIn = (props: any) => {
13
+ return <SearchAndDiscoverySlideInDefault {...props} />;
14
+ };
15
+
16
+ // 🏢 Custom TourInfoActionPart
17
+ export const CustomTourInfoActionPart = (props: any) => {
18
+ return (
19
+ <div
20
+ style={{
21
+ background: 'linear-gradient(45deg, #ff6b6b, #4ecdc4)',
22
+ padding: '15px',
23
+ borderRadius: '8px',
24
+ margin: '10px 0',
25
+ }}
26
+ >
27
+ <h4 style={{ color: 'white', margin: '0 0 10px 0' }}>
28
+ 🏢 Tour Information
29
+ </h4>
30
+ <div style={{ opacity: 0.9 }}>
31
+ <TourInfoActionPartDefault {...props} />
32
+ </div>
33
+ </div>
34
+ );
35
+ };
36
+
37
+ // 🎬 Custom ScenarioPart
38
+ export const CustomScenarioPart = (props: any) => {
39
+ return (
40
+ <div
41
+ style={{
42
+ background: 'linear-gradient(45deg, #f093fb, #f5576c)',
43
+ padding: '15px',
44
+ borderRadius: '8px',
45
+ margin: '10px 0',
46
+ }}
47
+ >
48
+ <h4 style={{ color: 'white', margin: '0 0 10px 0' }}>🎬 Scenarios</h4>
49
+ <div style={{ filter: 'brightness(1.1)' }}>
50
+ <ScenarioPartDefault {...props} />
51
+ </div>
52
+ </div>
53
+ );
54
+ };
55
+
56
+ // 🎁 Custom PromotionPart
57
+ export const CustomPromotionPart = (props: any) => {
58
+ return (
59
+ <div
60
+ style={{
61
+ background: 'linear-gradient(45deg, #fa709a, #fee140)',
62
+ padding: '15px',
63
+ borderRadius: '8px',
64
+ margin: '10px 0',
65
+ border: '2px dashed #fff',
66
+ }}
67
+ >
68
+ <h4 style={{ color: 'white', margin: '0 0 10px 0' }}>
69
+ 🎁 Special Promotions
70
+ </h4>
71
+ <PromotionPartDefault {...props} />
72
+ </div>
73
+ );
74
+ };
75
+
76
+ // 📍 Custom PoiInfoActionPart
77
+ export const CustomPoiInfoActionPart = (props: any) => {
78
+ return (
79
+ <div
80
+ style={{
81
+ background: 'linear-gradient(45deg, #a8edea, #fed6e3)',
82
+ padding: '15px',
83
+ borderRadius: '8px',
84
+ margin: '10px 0',
85
+ }}
86
+ >
87
+ <h4 style={{ color: '#333', margin: '0 0 10px 0' }}>
88
+ 📍 Points of Interest
89
+ </h4>
90
+ <PoiInfoActionPartDefault {...props} />
91
+ </div>
92
+ );
93
+ };
94
+
95
+ // 🎨 Custom DisplayActionPart
96
+ export const CustomDisplayActionPart = (props: any) => {
97
+ return (
98
+ <div
99
+ style={{
100
+ background: 'linear-gradient(45deg, #ffecd2, #fcb69f)',
101
+ padding: '15px',
102
+ borderRadius: '8px',
103
+ margin: '10px 0',
104
+ }}
105
+ >
106
+ <h4 style={{ color: '#333', margin: '0 0 10px 0' }}>
107
+ 🎨 Display Options
108
+ </h4>
109
+ <DisplayActionPartDefault {...props} />
110
+ </div>
111
+ );
112
+ };
113
+
114
+ // ❓ Custom HelpActionPart
115
+ export const CustomHelpActionPart = (props: any) => {
116
+ return (
117
+ <div
118
+ style={{
119
+ background: 'linear-gradient(45deg, #89f7fe, #66a6ff)',
120
+ padding: '15px',
121
+ borderRadius: '8px',
122
+ margin: '10px 0',
123
+ boxShadow: '0 3px 10px rgba(0,0,0,0.2)',
124
+ }}
125
+ >
126
+ <h4 style={{ color: 'white', margin: '0 0 10px 0' }}>
127
+ ❓ Help & Support
128
+ </h4>
129
+ <HelpActionPartDefault {...props} />
130
+ </div>
131
+ );
132
+ };
133
+
134
+ // 🎯 Custom ContentItem Component
135
+ export const CustomContentItem = (props: any) => {
136
+ const {
137
+ dataKey,
138
+ icon,
139
+ title,
140
+ onClick,
141
+ type,
142
+ itemRight,
143
+ handleTitleRenderer,
144
+ } = props;
145
+
146
+ const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {
147
+ e.preventDefault();
148
+ e.stopPropagation();
149
+ if (onClick) onClick(dataKey);
150
+ };
151
+
152
+ return (
153
+ <div
154
+ onClick={handleClick}
155
+ style={{
156
+ display: 'flex',
157
+ alignItems: 'center',
158
+ justifyContent: 'space-between',
159
+ padding: '12px 16px',
160
+ margin: '4px 0',
161
+ background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
162
+ borderRadius: '8px',
163
+ cursor: type === 'button' ? 'pointer' : 'default',
164
+ transition: 'all 0.3s ease',
165
+ boxShadow: '0 2px 8px rgba(0,0,0,0.1)',
166
+ }}
167
+ onMouseEnter={(e) => {
168
+ e.currentTarget.style.transform = 'translateX(5px)';
169
+ e.currentTarget.style.boxShadow = '0 4px 12px rgba(0,0,0,0.2)';
170
+ }}
171
+ onMouseLeave={(e) => {
172
+ e.currentTarget.style.transform = 'translateX(0)';
173
+ e.currentTarget.style.boxShadow = '0 2px 8px rgba(0,0,0,0.1)';
174
+ }}
175
+ >
176
+ <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
177
+ {icon && (
178
+ <div
179
+ style={{
180
+ width: '32px',
181
+ height: '32px',
182
+ borderRadius: '50%',
183
+ background: 'rgba(255,255,255,0.2)',
184
+ display: 'flex',
185
+ alignItems: 'center',
186
+ justifyContent: 'center',
187
+ }}
188
+ >
189
+ <i className={icon} style={{ color: 'white', fontSize: '16px' }} />
190
+ </div>
191
+ )}
192
+ <span style={{ color: 'white', fontWeight: '500', fontSize: '14px' }}>
193
+ {handleTitleRenderer ? handleTitleRenderer() : title}
194
+ </span>
195
+ </div>
196
+ {itemRight && <div style={{ color: 'white' }}>{itemRight}</div>}
197
+ </div>
198
+ );
199
+ };
200
+
201
+ export const CustomScenarioItem = (props: any) => {
202
+ return <div>test</div>;
203
+ };
204
+
205
+ export const CustomCardItem = (props: any) => {
206
+ return <div>test card item</div>;
207
+ };
@@ -0,0 +1,7 @@
1
+ // Export all custom components from a single entry point
2
+ export * from './FloorplanComponents';
3
+ export * from './PinActionsComponents';
4
+ export * from './SearchAndDiscoveryComponents';
5
+ export * from './HotspotCategoryComponents';
6
+ export * from './PlayBarComponents';
7
+ export * from './PoiDetailComponents';
@@ -0,0 +1,4 @@
1
+ declare module '*.css' {
2
+ const content: string;
3
+ export default content;
4
+ }
@@ -0,0 +1,328 @@
1
+ import {
2
+ CustomMarker,
3
+ FloorplanMinimapDefault,
4
+ CustomPinActions,
5
+ CustomPinActionButton,
6
+ CustomPinActionButtonWithTooltip,
7
+ CustomSearchAndDiscoverySlideIn,
8
+ CustomTourInfoActionPart,
9
+ CustomScenarioPart,
10
+ CustomPromotionPart,
11
+ CustomPoiInfoActionPart,
12
+ CustomDisplayActionPart,
13
+ CustomHelpActionPart,
14
+ CustomContentItem,
15
+ CustomScenarioItem,
16
+ CustomCardItem,
17
+ CustomHotspotCategorySlideIn,
18
+ CustomScenarioSlideIn,
19
+ CustomSpaceAndSceneSlideIn,
20
+ CustomFeatureSlideIn,
21
+ CustomProductSlideIn,
22
+ CustomPoiSlideIn,
23
+ CustomPlayBarTooltip,
24
+ CustomPlayBarButton,
25
+ CustomPoiDetailDrawer,
26
+ CustomPoiDetailBottomSheet,
27
+ CustomProductDetailHeader,
28
+ CustomGroupActionButton,
29
+ CustomTabs,
30
+ CustomTabsContent,
31
+ CustomInfo,
32
+ CustomGallery,
33
+ CustomArTab,
34
+ } from '../components/CustomComponents';
35
+
36
+ type CustomLayoutState = {
37
+ // General
38
+ enableCustomLayout: boolean;
39
+
40
+ // Floorplan/Minimap
41
+ customMinimap: boolean;
42
+ customMarker: boolean;
43
+
44
+ // PinActions
45
+ customPinActions: boolean;
46
+ customPinActionButton: boolean;
47
+ customPinActionButtonWithTooltip: boolean;
48
+
49
+ // SearchAndDiscoverySlideIn
50
+ customSearchAndDiscovery: boolean;
51
+ customTourInfoActionPart: boolean;
52
+ customScenarioPart: boolean;
53
+ customPromotionPart: boolean;
54
+ customPoiInfoActionPart: boolean;
55
+ customDisplayActionPart: boolean;
56
+ customHelpActionPart: boolean;
57
+ customContentItem: boolean;
58
+ customScenarioItem: boolean;
59
+ customCardItem: boolean;
60
+
61
+ // HotspotCategorySlideIn
62
+ customHotspotCategorySlideIn: boolean;
63
+ customScenarioSlideIn: boolean;
64
+ customSpaceAndSceneSlideIn: boolean;
65
+ customFeatureSlideIn: boolean;
66
+ customProductSlideIn: boolean;
67
+ customPoiSlideIn: boolean;
68
+
69
+ // PlayBar
70
+ customPlayBarTooltip: boolean;
71
+ customPlayBarButton: boolean;
72
+
73
+ // PoiDetailSlideIn
74
+ customPoiDetailDrawer: boolean;
75
+ customPoiDetailBottomSheet: boolean;
76
+ customProductDetailHeader: boolean;
77
+ customGroupActionButton: boolean;
78
+ customTabs: boolean;
79
+ customTabsContent: boolean;
80
+ customInfo: boolean;
81
+ customGallery: boolean;
82
+ customArTab: boolean;
83
+ };
84
+
85
+ export const useCustomLayout = (state: CustomLayoutState) => {
86
+ const buildCustomLayout = () => {
87
+ if (!state.enableCustomLayout) return {};
88
+
89
+ const layout: any = {};
90
+
91
+ // Floorplan/Minimap customizations
92
+ if (state.customMinimap || state.customMarker) {
93
+ layout.Floorplan = {};
94
+ if (state.customMinimap) {
95
+ layout.Floorplan.Minimap = {};
96
+ layout.Floorplan.Minimap.default = FloorplanMinimapDefault;
97
+ if (state.customMarker) {
98
+ layout.Floorplan.Minimap.Marker = CustomMarker;
99
+ }
100
+ }
101
+ }
102
+
103
+ // PinActions customizations
104
+ if (
105
+ state.customPinActions ||
106
+ state.customPinActionButton ||
107
+ state.customPinActionButtonWithTooltip
108
+ ) {
109
+ layout.PinActions = layout.PinActions || {};
110
+ if (state.customPinActions) {
111
+ layout.PinActions.default = CustomPinActions;
112
+ }
113
+ if (state.customPinActionButton) {
114
+ layout.PinActions.Button = CustomPinActionButton;
115
+ }
116
+ if (state.customPinActionButtonWithTooltip) {
117
+ layout.PinActions.ButtonWithTooltip = CustomPinActionButtonWithTooltip;
118
+ }
119
+ }
120
+
121
+ // SearchAndDiscoverySlideIn customizations
122
+ if (
123
+ state.customSearchAndDiscovery ||
124
+ state.customTourInfoActionPart ||
125
+ state.customScenarioPart ||
126
+ state.customPromotionPart ||
127
+ state.customPoiInfoActionPart ||
128
+ state.customDisplayActionPart ||
129
+ state.customHelpActionPart ||
130
+ state.customContentItem ||
131
+ state.customScenarioItem ||
132
+ state.customCardItem
133
+ ) {
134
+ layout.SearchAndDiscoverySlideIn = {};
135
+ if (state.customSearchAndDiscovery) {
136
+ layout.SearchAndDiscoverySlideIn.default =
137
+ CustomSearchAndDiscoverySlideIn;
138
+ }
139
+ if (state.customTourInfoActionPart || state.customContentItem) {
140
+ layout.SearchAndDiscoverySlideIn.TourInfoActionPart = {};
141
+ if (state.customTourInfoActionPart) {
142
+ layout.SearchAndDiscoverySlideIn.TourInfoActionPart.default =
143
+ CustomTourInfoActionPart;
144
+ }
145
+ if (state.customContentItem) {
146
+ layout.SearchAndDiscoverySlideIn.TourInfoActionPart.ContentItem =
147
+ CustomContentItem;
148
+ }
149
+ }
150
+ if (state.customScenarioPart || state.customScenarioItem) {
151
+ layout.SearchAndDiscoverySlideIn.ScenarioPart = {};
152
+ if (state.customScenarioPart) {
153
+ layout.SearchAndDiscoverySlideIn.ScenarioPart.default =
154
+ CustomScenarioPart;
155
+ }
156
+ if (state.customScenarioItem) {
157
+ layout.SearchAndDiscoverySlideIn.ScenarioPart.ScenarioItem =
158
+ CustomScenarioItem;
159
+ }
160
+ }
161
+ if (state.customPromotionPart || state.customCardItem) {
162
+ layout.SearchAndDiscoverySlideIn.PromotionPart = {};
163
+ if (state.customPromotionPart) {
164
+ layout.SearchAndDiscoverySlideIn.PromotionPart.default =
165
+ CustomPromotionPart;
166
+ }
167
+ if (state.customCardItem) {
168
+ layout.SearchAndDiscoverySlideIn.PromotionPart.CardItem =
169
+ CustomCardItem;
170
+ }
171
+ }
172
+ if (state.customPoiInfoActionPart || state.customContentItem) {
173
+ layout.SearchAndDiscoverySlideIn.PoiInfoActionPart =
174
+ layout.SearchAndDiscoverySlideIn.PoiInfoActionPart || {};
175
+ if (state.customPoiInfoActionPart) {
176
+ layout.SearchAndDiscoverySlideIn.PoiInfoActionPart.default =
177
+ CustomPoiInfoActionPart;
178
+ }
179
+ if (state.customContentItem) {
180
+ layout.SearchAndDiscoverySlideIn.PoiInfoActionPart.ContentItem =
181
+ CustomContentItem;
182
+ }
183
+ }
184
+ if (state.customDisplayActionPart || state.customContentItem) {
185
+ layout.SearchAndDiscoverySlideIn.DisplayActionPart =
186
+ layout.SearchAndDiscoverySlideIn.DisplayActionPart || {};
187
+ if (state.customDisplayActionPart) {
188
+ layout.SearchAndDiscoverySlideIn.DisplayActionPart.default =
189
+ CustomDisplayActionPart;
190
+ }
191
+ if (state.customContentItem) {
192
+ layout.SearchAndDiscoverySlideIn.DisplayActionPart.ContentItem =
193
+ CustomContentItem;
194
+ }
195
+ }
196
+ if (state.customHelpActionPart || state.customContentItem) {
197
+ layout.SearchAndDiscoverySlideIn.HelpActionPart =
198
+ layout.SearchAndDiscoverySlideIn.HelpActionPart || {};
199
+ if (state.customHelpActionPart) {
200
+ layout.SearchAndDiscoverySlideIn.HelpActionPart.default =
201
+ CustomHelpActionPart;
202
+ }
203
+ if (state.customContentItem) {
204
+ layout.SearchAndDiscoverySlideIn.HelpActionPart.ContentItem =
205
+ CustomContentItem;
206
+ }
207
+ }
208
+ }
209
+
210
+ // HotspotCategorySlideIn customizations
211
+ if (
212
+ state.customHotspotCategorySlideIn ||
213
+ state.customScenarioSlideIn ||
214
+ state.customSpaceAndSceneSlideIn ||
215
+ state.customFeatureSlideIn ||
216
+ state.customProductSlideIn ||
217
+ state.customPoiSlideIn
218
+ ) {
219
+ layout.HotspotCategorySlideIn = {};
220
+ if (state.customHotspotCategorySlideIn) {
221
+ layout.HotspotCategorySlideIn.default = CustomHotspotCategorySlideIn;
222
+ }
223
+ if (state.customScenarioSlideIn) {
224
+ layout.HotspotCategorySlideIn.ScenarioSlideIn = CustomScenarioSlideIn;
225
+ }
226
+ if (state.customSpaceAndSceneSlideIn) {
227
+ layout.HotspotCategorySlideIn.SpaceAndSceneSlideIn =
228
+ CustomSpaceAndSceneSlideIn;
229
+ }
230
+ if (state.customFeatureSlideIn) {
231
+ layout.HotspotCategorySlideIn.FeatureSlideIn = CustomFeatureSlideIn;
232
+ }
233
+ if (state.customProductSlideIn) {
234
+ layout.HotspotCategorySlideIn.ProductSlideIn = CustomProductSlideIn;
235
+ }
236
+ if (state.customPoiSlideIn) {
237
+ layout.HotspotCategorySlideIn.PoiSlideIn = CustomPoiSlideIn;
238
+ }
239
+ }
240
+
241
+ // PlayBar customizations
242
+ if (state.customPlayBarTooltip || state.customPlayBarButton) {
243
+ layout.PlayBar = {};
244
+ if (state.customPlayBarTooltip) {
245
+ layout.PlayBar.Tooltip = CustomPlayBarTooltip;
246
+ }
247
+ if (state.customPlayBarButton) {
248
+ layout.PlayBar.Button = CustomPlayBarButton;
249
+ }
250
+ }
251
+
252
+ // PoiDetailSlideIn customizations
253
+ if (
254
+ state.customPoiDetailDrawer ||
255
+ state.customPoiDetailBottomSheet ||
256
+ state.customProductDetailHeader ||
257
+ state.customGroupActionButton ||
258
+ state.customTabs ||
259
+ state.customTabsContent ||
260
+ state.customInfo ||
261
+ state.customGallery ||
262
+ state.customArTab
263
+ ) {
264
+ layout.PoiDetailSlideIn = {};
265
+
266
+ if (state.customPoiDetailDrawer) {
267
+ layout.PoiDetailSlideIn.Drawer = CustomPoiDetailDrawer;
268
+ }
269
+ if (state.customPoiDetailBottomSheet) {
270
+ layout.PoiDetailSlideIn.BottomSheet = CustomPoiDetailBottomSheet;
271
+ }
272
+
273
+ if (
274
+ state.customProductDetailHeader ||
275
+ state.customGroupActionButton ||
276
+ state.customTabs ||
277
+ state.customTabsContent ||
278
+ state.customInfo ||
279
+ state.customGallery ||
280
+ state.customArTab
281
+ ) {
282
+ layout.PoiDetailSlideIn.ProductDetail = {};
283
+
284
+ if (state.customProductDetailHeader) {
285
+ layout.PoiDetailSlideIn.ProductDetail.Header =
286
+ CustomProductDetailHeader;
287
+ }
288
+ if (state.customGroupActionButton) {
289
+ layout.PoiDetailSlideIn.ProductDetail.GroupActionButton =
290
+ CustomGroupActionButton;
291
+ }
292
+ if (state.customTabs) {
293
+ layout.PoiDetailSlideIn.ProductDetail.Tabs = CustomTabs;
294
+ }
295
+ if (state.customTabsContent) {
296
+ layout.PoiDetailSlideIn.ProductDetail.TabsContent = CustomTabsContent;
297
+ }
298
+
299
+ if (state.customInfo || state.customGallery || state.customArTab) {
300
+ layout.PoiDetailSlideIn.ProductDetail.TabsContent =
301
+ layout.PoiDetailSlideIn.ProductDetail.TabsContent || {};
302
+ if (
303
+ typeof layout.PoiDetailSlideIn.ProductDetail.TabsContent !==
304
+ 'object'
305
+ ) {
306
+ layout.PoiDetailSlideIn.ProductDetail.TabsContent = {};
307
+ }
308
+
309
+ if (state.customInfo) {
310
+ layout.PoiDetailSlideIn.ProductDetail.TabsContent.Info = CustomInfo;
311
+ }
312
+ if (state.customGallery) {
313
+ layout.PoiDetailSlideIn.ProductDetail.TabsContent.Gallery =
314
+ CustomGallery;
315
+ }
316
+ if (state.customArTab) {
317
+ layout.PoiDetailSlideIn.ProductDetail.TabsContent.ArTab =
318
+ CustomArTab;
319
+ }
320
+ }
321
+ }
322
+ }
323
+
324
+ return layout;
325
+ };
326
+
327
+ return { buildCustomLayout };
328
+ };
@@ -0,0 +1,31 @@
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ body {
8
+ font-family:
9
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu',
10
+ 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
11
+ -webkit-font-smoothing: antialiased;
12
+ -moz-osx-font-smoothing: grayscale;
13
+ }
14
+
15
+ code {
16
+ font-family:
17
+ source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
18
+ background: #f4f4f4;
19
+ padding: 2px 6px;
20
+ border-radius: 3px;
21
+ font-size: 13px;
22
+ }
23
+
24
+ #root {
25
+ height: 100vh;
26
+ width: 100vw;
27
+ }
28
+
29
+ .custom-minimap-marker .marker__content {
30
+ background-color: red !important;
31
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom/client';
3
+ import App from './App';
4
+ import './index.css';
5
+
6
+ ReactDOM.createRoot(document.getElementById('root')!).render(
7
+ <React.StrictMode>
8
+ <App />
9
+ </React.StrictMode>
10
+ );
11
+
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@clikvn/showroom-visualizer",
3
3
  "description": "Showroom Visualizer",
4
- "version": "0.5.1",
4
+ "version": "0.5.2",
5
5
  "author": "Clik JSC",
6
6
  "license": "ISC",
7
7
  "type": "module",
@@ -1,36 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="AngularAmbiguousComponentTag" enabled="false" level="ERROR" enabled_by_default="false" />
5
- <inspection_tool class="AngularCliAddDependency" enabled="false" level="WARNING" enabled_by_default="false" />
6
- <inspection_tool class="AngularInaccessibleComponentMemberInAotMode" enabled="false" level="WARNING" enabled_by_default="false" />
7
- <inspection_tool class="AngularIncorrectTemplateDefinition" enabled="false" level="ERROR" enabled_by_default="false" />
8
- <inspection_tool class="AngularInsecureBindingToEvent" enabled="false" level="WARNING" enabled_by_default="false" />
9
- <inspection_tool class="AngularInvalidAnimationTriggerAssignment" enabled="false" level="ERROR" enabled_by_default="false" />
10
- <inspection_tool class="AngularInvalidEntryComponent" enabled="false" level="ERROR" enabled_by_default="false" />
11
- <inspection_tool class="AngularInvalidI18nAttribute" enabled="false" level="WARNING" enabled_by_default="false" />
12
- <inspection_tool class="AngularInvalidImportedOrDeclaredSymbol" enabled="false" level="ERROR" enabled_by_default="false" />
13
- <inspection_tool class="AngularInvalidSelector" enabled="false" level="ERROR" enabled_by_default="false" />
14
- <inspection_tool class="AngularInvalidTemplateReferenceVariable" enabled="false" level="ERROR" enabled_by_default="false" />
15
- <inspection_tool class="AngularMissingEventHandler" enabled="false" level="ERROR" enabled_by_default="false" />
16
- <inspection_tool class="AngularMissingOrInvalidDeclarationInModule" enabled="false" level="ERROR" enabled_by_default="false" />
17
- <inspection_tool class="AngularMissingRequiredDirectiveInputBinding" enabled="false" level="ERROR" enabled_by_default="false" />
18
- <inspection_tool class="AngularMultipleStructuralDirectives" enabled="false" level="ERROR" enabled_by_default="false" />
19
- <inspection_tool class="AngularNgOptimizedImage" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
20
- <inspection_tool class="AngularNonEmptyNgContent" enabled="false" level="ERROR" enabled_by_default="false" />
21
- <inspection_tool class="AngularRecursiveModuleImportExport" enabled="false" level="ERROR" enabled_by_default="false" />
22
- <inspection_tool class="AngularUndefinedBinding" enabled="false" level="ERROR" enabled_by_default="false" />
23
- <inspection_tool class="AngularUndefinedModuleExport" enabled="false" level="ERROR" enabled_by_default="false" />
24
- <inspection_tool class="AngularUndefinedTag" enabled="false" level="ERROR" enabled_by_default="false" />
25
- <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
26
- <inspection_tool class="MicronautDataMethodInconsistency" enabled="false" level="ERROR" enabled_by_default="false" />
27
- <inspection_tool class="MicronautDataRepositoryMethodParameters" enabled="false" level="WARNING" enabled_by_default="false" />
28
- <inspection_tool class="MicronautDataRepositoryMethodReturnType" enabled="false" level="WARNING" enabled_by_default="false" />
29
- <inspection_tool class="MnCacheAnnotationParameters" enabled="false" level="ERROR" enabled_by_default="false" />
30
- <inspection_tool class="MnInjectionPoints" enabled="false" level="WARNING" enabled_by_default="false" />
31
- <inspection_tool class="MnPropertiesConfig" enabled="false" level="WARNING" enabled_by_default="false" />
32
- <inspection_tool class="MnUnresolvedPathVariable" enabled="false" level="WARNING" enabled_by_default="false" />
33
- <inspection_tool class="MnYamlConfig" enabled="false" level="WARNING" enabled_by_default="false" />
34
- <inspection_tool class="TsLint" enabled="true" level="WARNING" enabled_by_default="true" />
35
- </profile>
36
- </component>
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="EslintConfiguration">
4
- <custom-configuration-file used="true" path="$PROJECT_DIR$/.eslintrc" />
5
- <option name="fix-on-save" value="true" />
6
- </component>
7
- </project>
package/.idea/misc.xml DELETED
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ComposerSettings">
4
- <execution />
5
- </component>
6
- <component name="ProjectRootManager">
7
- <output url="file://$PROJECT_DIR$/out" />
8
- </component>
9
- </project>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/showroom-visualizer.iml" filepath="$PROJECT_DIR$/.idea/showroom-visualizer.iml" />
6
- </modules>
7
- </component>
8
- </project>
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="PrettierConfiguration">
4
- <option name="myConfigurationMode" value="MANUAL" />
5
- <option name="myRunOnSave" value="true" />
6
- <option name="myRunOnReformat" value="true" />
7
- </component>
8
- </project>