hart-estate-widget 0.0.8 → 0.0.9
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/README.md +67 -13
- package/build/assets/sass/components/loader.sass +51 -0
- package/build/assets/sass/components/panorama.sass +98 -0
- package/build/assets/sass/index.sass +2 -0
- package/build/components/Application.js +7 -1
- package/build/components/Loader.js +22 -0
- package/build/components/PanoramaTab.js +213 -0
- package/build/config/defaultConfig.js +4 -1
- package/build/config/defaultJSON.js +2432 -0
- package/build/index.js +16 -8
- package/build/utils/helpers.js +79 -0
- package/package.json +6 -2
package/README.md
CHANGED
@@ -3,24 +3,78 @@
|
|
3
3
|
|
4
4
|
## Способ установки с помощью NPM:
|
5
5
|
|
6
|
-
|
6
|
+
`npm install hart-estate-widget --save`
|
7
7
|
|
8
|
+
## Пример использования:
|
8
9
|
|
10
|
+
```js
|
11
|
+
import React, { useEffect, useState } from 'react';
|
12
|
+
import { Widget } from 'hart-estate-widget';
|
9
13
|
|
10
|
-
|
14
|
+
const WIDGET_OPTIONS = {
|
15
|
+
tabs: ['planImage', 'topView', 'topDownView', 'rotation',],
|
16
|
+
tabPanes: true,
|
17
|
+
planImage: '/path/to/plan.jpg',
|
18
|
+
topView: '/path/to/top_view.jpg',
|
19
|
+
topDownView: '/path/to/top_down_view.jpg',
|
20
|
+
rotationImages: [
|
21
|
+
'/path/to/rotation_image_1.jpg',
|
22
|
+
'/path/to/rotation_image_2.jpg',
|
23
|
+
'/path/to/rotation_image_3.jpg',
|
24
|
+
'/path/to/rotation_image_4.jpg',
|
25
|
+
'/path/to/rotation_image_5.jpg',
|
26
|
+
],
|
27
|
+
};
|
28
|
+
|
29
|
+
const App = () => {
|
30
|
+
const [widget, setWidget] = useState(null);
|
31
|
+
|
32
|
+
useEffect(() => {
|
33
|
+
const createdWidget = new Widget('#widget-container', WIDGET_OPTIONS);
|
34
|
+
|
35
|
+
setState(createdWidget);
|
36
|
+
}, []);
|
37
|
+
|
38
|
+
return (
|
39
|
+
<div>
|
40
|
+
<div id="#widget-container" />
|
41
|
+
</div>
|
42
|
+
);
|
43
|
+
}
|
44
|
+
|
45
|
+
export App;
|
46
|
+
|
47
|
+
```
|
48
|
+
|
49
|
+
|
50
|
+
## Параметры:
|
51
|
+
|
52
|
+
```js
|
53
|
+
{
|
54
|
+
// элементы
|
55
|
+
tabs: ['planImage', 'topView', 'topDownView', 'rotation'], // включенные элементы
|
56
|
+
tabPanes: true,
|
11
57
|
|
58
|
+
// ширина/высота
|
59
|
+
width: 500,
|
60
|
+
height: 750,
|
12
61
|
|
13
|
-
|
62
|
+
// значения
|
63
|
+
planImage: '', // путь к изображению планировки
|
64
|
+
topView: '', // путь к изображению вида сверху
|
65
|
+
topDownView: '', // путь к изображению вида сверху под углом
|
66
|
+
rotationImages: [], // пути к изображениям кругового просмотра (порядок обязателен)
|
67
|
+
}
|
14
68
|
|
69
|
+
```
|
15
70
|
|
16
|
-
##
|
71
|
+
## Типы элементов
|
72
|
+
```js
|
73
|
+
tabs: [
|
74
|
+
'planImage', // изображение планировки
|
75
|
+
'topView', // изображение вида сверху
|
76
|
+
'topDownView', // изображение вида сверху под углом
|
77
|
+
'rotation', // изображения кругового просмотра (порядок обязателен)
|
78
|
+
]
|
79
|
+
```
|
17
80
|
|
18
|
-
#### `tabs: ['planImage', 'topView', 'topDownView', 'rotation', 'panorama', 'model']` - Элементы, которые необходимо активировать
|
19
|
-
#### `tabPanes: true` - Показывать / Скрывать навигационную панель
|
20
|
-
#### `width: null` - Ширина компонента (по умолчанию 100%)
|
21
|
-
#### `height: null` - Высота компонента (по умолчанию 100vh)
|
22
|
-
#### `planImage: ''` - Путь к изображению планировки
|
23
|
-
#### `topView: ''` - Путь к изображению модели сверху
|
24
|
-
#### `topDownView: ''` - Путь к изображению модели сверху под углом
|
25
|
-
#### `rotationImages: []` - Массив изображений для 360 визуализатора
|
26
|
-
#### `panoramaImages: []` - Массив изображений сфер для виртуальной панорамы
|
@@ -0,0 +1,51 @@
|
|
1
|
+
@import '../vars'
|
2
|
+
|
3
|
+
.widget-loader
|
4
|
+
display: block
|
5
|
+
position: relative
|
6
|
+
width: 80px
|
7
|
+
height: 80px
|
8
|
+
&--absolute
|
9
|
+
position: absolute
|
10
|
+
left: 50%
|
11
|
+
top: 50%
|
12
|
+
transform: translate(-50%, -50%)
|
13
|
+
div
|
14
|
+
position: absolute
|
15
|
+
top: 33px
|
16
|
+
width: 13px
|
17
|
+
height: 13px
|
18
|
+
border-radius: 50%
|
19
|
+
background: $mainColor
|
20
|
+
animation-timing-function: cubic-bezier(0, 1, 1, 0)
|
21
|
+
&:nth-child(1)
|
22
|
+
left: 8px
|
23
|
+
animation: widget-loader-1 0.6s infinite
|
24
|
+
&:nth-child(2)
|
25
|
+
left: 8px
|
26
|
+
animation: widget-loader-2 0.6s infinite
|
27
|
+
&:nth-child(3)
|
28
|
+
left: 32px
|
29
|
+
animation: widget-loader-2 0.6s infinite
|
30
|
+
&:nth-child(4)
|
31
|
+
left: 56px
|
32
|
+
animation: widget-loader-3 0.6s infinite
|
33
|
+
|
34
|
+
@keyframes widget-loader-1
|
35
|
+
0%
|
36
|
+
transform: scale(0)
|
37
|
+
100%
|
38
|
+
transform: scale(1)
|
39
|
+
|
40
|
+
@keyframes widget-loader-3
|
41
|
+
0%
|
42
|
+
transform: scale(1)
|
43
|
+
100%
|
44
|
+
transform: scale(0)
|
45
|
+
|
46
|
+
@keyframes widget-loader-2
|
47
|
+
0%
|
48
|
+
transform: translate(0, 0)
|
49
|
+
|
50
|
+
100%
|
51
|
+
transform: translate(24px, 0)
|
@@ -0,0 +1,98 @@
|
|
1
|
+
@import '../vars'
|
2
|
+
|
3
|
+
.widget-application
|
4
|
+
.widget-tab
|
5
|
+
&__panorama
|
6
|
+
width: 100%
|
7
|
+
height: 100%
|
8
|
+
position: absolute
|
9
|
+
left: 0
|
10
|
+
top: 0
|
11
|
+
&-overlay
|
12
|
+
width: 100%
|
13
|
+
height: 100%
|
14
|
+
overflow: hidden
|
15
|
+
&-mode,
|
16
|
+
&-standart
|
17
|
+
position: absolute
|
18
|
+
right: 15px
|
19
|
+
bottom: 20px
|
20
|
+
color: $black
|
21
|
+
background-color: $mainColor
|
22
|
+
padding: 5px 15px
|
23
|
+
border-radius: 10px
|
24
|
+
font-size: 1rem
|
25
|
+
font-weight: bold
|
26
|
+
border: none
|
27
|
+
cursor: pointer
|
28
|
+
@include noSelect
|
29
|
+
&:hover
|
30
|
+
box-shadow: 1px 1px 10px rgba(0, 0, 0, .15)
|
31
|
+
&-standart
|
32
|
+
right: 100px
|
33
|
+
&-map
|
34
|
+
position: absolute
|
35
|
+
right: 15px
|
36
|
+
bottom: 70px
|
37
|
+
z-index: 10000
|
38
|
+
img
|
39
|
+
width: 100px
|
40
|
+
border-radius: 10px
|
41
|
+
&.active
|
42
|
+
width: 240px
|
43
|
+
&:hover
|
44
|
+
box-shadow: 1px 1px 10px rgba(0,0,0,0.15)
|
45
|
+
&__dot
|
46
|
+
position: absolute
|
47
|
+
left: 0
|
48
|
+
top: 0
|
49
|
+
transform: translate(-50%, -50%)
|
50
|
+
width: 5px
|
51
|
+
height: 5px
|
52
|
+
background-color: $mainColor
|
53
|
+
border-radius: 50%
|
54
|
+
cursor: pointer
|
55
|
+
z-index: 10
|
56
|
+
&--big
|
57
|
+
border: 2px solid $mainColor
|
58
|
+
box-shadow: inset 0 0 0 2px #ffffff
|
59
|
+
width: 15px
|
60
|
+
height: 15px
|
61
|
+
&--active
|
62
|
+
background-color: red
|
63
|
+
border: 2px solid red
|
64
|
+
&-menu
|
65
|
+
position: absolute
|
66
|
+
z-index: 3
|
67
|
+
left: 15px
|
68
|
+
top: 15px
|
69
|
+
max-height: 100%
|
70
|
+
overflow-y: auto
|
71
|
+
padding-bottom: 30px
|
72
|
+
ul
|
73
|
+
list-style-type: none
|
74
|
+
li
|
75
|
+
color: $black
|
76
|
+
background-color: $mainColor
|
77
|
+
padding: 5px 15px
|
78
|
+
border-radius: 10px
|
79
|
+
font-size: .8rem
|
80
|
+
border: none
|
81
|
+
cursor: pointer
|
82
|
+
margin-bottom: 15px
|
83
|
+
width: 150px
|
84
|
+
@include noSelect
|
85
|
+
&:hover
|
86
|
+
box-shadow: 1px 1px 10px rgba(0, 0, 0, .15)
|
87
|
+
&:nth-child(1)
|
88
|
+
position: relative
|
89
|
+
&::after
|
90
|
+
content: '|||'
|
91
|
+
transform: translateY(-50%) rotate(90deg)
|
92
|
+
font-size: 20px
|
93
|
+
line-height: 20px
|
94
|
+
margin-left: 10px
|
95
|
+
display: block
|
96
|
+
position: absolute
|
97
|
+
right: 10px
|
98
|
+
top: 50%
|
@@ -19,6 +19,8 @@ var _ImageTab = _interopRequireDefault(require("./ImageTab"));
|
|
19
19
|
|
20
20
|
var _RotationTab = _interopRequireDefault(require("./RotationTab"));
|
21
21
|
|
22
|
+
var _PanoramaTab = _interopRequireDefault(require("./PanoramaTab"));
|
23
|
+
|
22
24
|
var _TabWrapper = _interopRequireDefault(require("./TabWrapper"));
|
23
25
|
|
24
26
|
var _D = _interopRequireDefault(require("../assets/img/3D.jpg"));
|
@@ -69,7 +71,11 @@ const Application = (0, _mobxReactLite.observer)(_ref => {
|
|
69
71
|
title: "Panoramic tour",
|
70
72
|
text: ['Use mouse to rotate', 'To move through the rooms, click on the layout thumbnail'],
|
71
73
|
onStart: hideTabPanes
|
72
|
-
}, /*#__PURE__*/_react.default.createElement(
|
74
|
+
}, /*#__PURE__*/_react.default.createElement(_PanoramaTab.default, {
|
75
|
+
json: config.json,
|
76
|
+
planImage: config.planImage,
|
77
|
+
images: config.panoramaImages
|
78
|
+
})),
|
73
79
|
'model': /*#__PURE__*/_react.default.createElement(_TabWrapper.default, {
|
74
80
|
isActive: !isTabPanesVisible,
|
75
81
|
image: _D.default,
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
9
|
+
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
|
+
|
12
|
+
const Loader = _ref => {
|
13
|
+
let {
|
14
|
+
absolute
|
15
|
+
} = _ref;
|
16
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
17
|
+
className: "widget-loader ".concat(absolute ? 'widget-loader--absolute' : '')
|
18
|
+
}, /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null));
|
19
|
+
};
|
20
|
+
|
21
|
+
var _default = Loader;
|
22
|
+
exports.default = _default;
|
@@ -0,0 +1,213 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
|
8
|
+
require("core-js/modules/es.array.reduce.js");
|
9
|
+
|
10
|
+
require("core-js/modules/es.string.includes.js");
|
11
|
+
|
12
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
13
|
+
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
15
|
+
|
16
|
+
var THREE = _interopRequireWildcard(require("three"));
|
17
|
+
|
18
|
+
var PANOLENS = _interopRequireWildcard(require("panolens"));
|
19
|
+
|
20
|
+
var _threeDeviceOrientation = _interopRequireDefault(require("three-device-orientation"));
|
21
|
+
|
22
|
+
var _Loader = _interopRequireDefault(require("./Loader"));
|
23
|
+
|
24
|
+
var _helpers = require("../utils/helpers");
|
25
|
+
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
27
|
+
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
29
|
+
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
31
|
+
|
32
|
+
const {
|
33
|
+
DEVICEORIENTATION,
|
34
|
+
ORBIT
|
35
|
+
} = PANOLENS.CONTROLS;
|
36
|
+
const pathName = 'Panorama_0_0_';
|
37
|
+
|
38
|
+
const getPanoramas = (json, images, setLoadingState) => {
|
39
|
+
return json.Floors[0].Units[0].Rooms.reduce((acc, jsonRoom, index) => {
|
40
|
+
const image = images.find(img => img.includes(pathName + index));
|
41
|
+
if (!image) return acc;
|
42
|
+
const panorama = new PANOLENS.ImagePanorama(image);
|
43
|
+
panorama['panorama_id'] = index + 1;
|
44
|
+
panorama['room_id'] = jsonRoom.ID;
|
45
|
+
panorama.addEventListener('progress', event => {
|
46
|
+
setLoadingState(true);
|
47
|
+
|
48
|
+
if (event.progress.loaded / event.progress.total * 100 === 100) {
|
49
|
+
setLoadingState(false);
|
50
|
+
}
|
51
|
+
});
|
52
|
+
panorama.addEventListener('enter', () => setLoadingState(false));
|
53
|
+
acc.push(panorama);
|
54
|
+
return acc;
|
55
|
+
}, []);
|
56
|
+
};
|
57
|
+
|
58
|
+
const getPanoramaRooms = (json, panoramas) => {
|
59
|
+
const {
|
60
|
+
Vertices,
|
61
|
+
Floors
|
62
|
+
} = json;
|
63
|
+
const {
|
64
|
+
Walls
|
65
|
+
} = Floors[0];
|
66
|
+
return panoramas.map((panorama, index) => {
|
67
|
+
const currentRoom = Floors[0].Units[0].Rooms.find(room => room.ID === panorama['room_id']);
|
68
|
+
const {
|
69
|
+
left,
|
70
|
+
top
|
71
|
+
} = (0, _helpers.findRoomCenter)(currentRoom, Walls, Vertices);
|
72
|
+
return {
|
73
|
+
type: currentRoom.Type,
|
74
|
+
id: index,
|
75
|
+
panorama,
|
76
|
+
left,
|
77
|
+
top
|
78
|
+
};
|
79
|
+
}, []);
|
80
|
+
};
|
81
|
+
|
82
|
+
const initPanorama = () => {
|
83
|
+
let camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1100);
|
84
|
+
let controls = new _threeDeviceOrientation.default(camera);
|
85
|
+
window.addEventListener('resize', () => {
|
86
|
+
camera.aspect = window.innerWidth / window.innerHeight;
|
87
|
+
camera.updateProjectionMatrix();
|
88
|
+
});
|
89
|
+
|
90
|
+
const animate = () => {
|
91
|
+
window.requestAnimationFrame(animate);
|
92
|
+
controls.update();
|
93
|
+
};
|
94
|
+
|
95
|
+
if (DeviceOrientationEvent.requestPermission) {
|
96
|
+
DeviceOrientationEvent.requestPermission().catch(() => console.log('Device motion not allowed'));
|
97
|
+
}
|
98
|
+
|
99
|
+
return {
|
100
|
+
camera,
|
101
|
+
controls
|
102
|
+
};
|
103
|
+
};
|
104
|
+
|
105
|
+
const PanoramaTab = _ref => {
|
106
|
+
let {
|
107
|
+
json,
|
108
|
+
planImage,
|
109
|
+
images
|
110
|
+
} = _ref;
|
111
|
+
const [menuState, setMenuState] = (0, _react.useState)(false);
|
112
|
+
const [loadingState, setLoadingState] = (0, _react.useState)(true);
|
113
|
+
const [isMapActive, setMapState] = (0, _react.useState)(false);
|
114
|
+
const [currentRoomIndex, setCurrentRoomIndex] = (0, _react.useState)(0);
|
115
|
+
const [panoramas] = (0, _react.useState)(getPanoramas(json, images, setLoadingState));
|
116
|
+
const [panoramaRooms] = (0, _react.useState)(getPanoramaRooms(json, panoramas));
|
117
|
+
const [viewer, setViewer] = (0, _react.useState)(null);
|
118
|
+
const [planScale, setPlanScale] = (0, _react.useState)({
|
119
|
+
X: 1,
|
120
|
+
Y: 1
|
121
|
+
});
|
122
|
+
|
123
|
+
const changePanorama = (panorama, index) => {
|
124
|
+
setCurrentRoomIndex(index);
|
125
|
+
viewer.setPanorama(panorama);
|
126
|
+
};
|
127
|
+
|
128
|
+
const toggleVrMode = () => {
|
129
|
+
if (viewer.mode === 3) {
|
130
|
+
viewer.disableEffect();
|
131
|
+
return;
|
132
|
+
}
|
133
|
+
|
134
|
+
viewer.enableEffect(PANOLENS.MODES.STEREO);
|
135
|
+
};
|
136
|
+
|
137
|
+
const toggleOrientationMode = () => {
|
138
|
+
if (viewer.control.id === 'orbit') {
|
139
|
+
viewer.enableControl(DEVICEORIENTATION);
|
140
|
+
return;
|
141
|
+
}
|
142
|
+
|
143
|
+
viewer.enableControl(ORBIT);
|
144
|
+
};
|
145
|
+
|
146
|
+
const toggleMap = () => setMapState(!isMapActive);
|
147
|
+
|
148
|
+
const setScale = () => {
|
149
|
+
const image = document.querySelector('.widget-tab__panorama-map img');
|
150
|
+
setPlanScale((0, _helpers.getScale)(image, json));
|
151
|
+
};
|
152
|
+
|
153
|
+
const getDotClassName = index => {
|
154
|
+
let className = 'widget-tab__panorama-map__dot';
|
155
|
+
if (isMapActive) className += ' widget-tab__panorama-map__dot--big';
|
156
|
+
if (currentRoomIndex === index) className += ' widget-tab__panorama-map__dot--active';
|
157
|
+
return className;
|
158
|
+
};
|
159
|
+
|
160
|
+
(0, _react.useEffect)(() => {
|
161
|
+
const newViewer = new PANOLENS.Viewer({
|
162
|
+
container: document.querySelector('.widget-tab__panorama-overlay'),
|
163
|
+
autoHideInfospot: false,
|
164
|
+
controlButtons: [],
|
165
|
+
cameraFov: 90
|
166
|
+
});
|
167
|
+
panoramas.forEach(panorama => {
|
168
|
+
if (!panorama.panorama_id) return;
|
169
|
+
newViewer.add(panorama);
|
170
|
+
});
|
171
|
+
setViewer(newViewer);
|
172
|
+
initPanorama();
|
173
|
+
}, [panoramas]);
|
174
|
+
(0, _react.useEffect)(setScale, [json, isMapActive]);
|
175
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
176
|
+
className: "widget-tab__panorama"
|
177
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
178
|
+
className: "widget-tab__panorama-overlay"
|
179
|
+
}), loadingState && /*#__PURE__*/_react.default.createElement(_Loader.default, {
|
180
|
+
absolute: true
|
181
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
182
|
+
className: "widget-tab__panorama-menu"
|
183
|
+
}, /*#__PURE__*/_react.default.createElement("ul", null, /*#__PURE__*/_react.default.createElement("li", {
|
184
|
+
onClick: () => setMenuState(!menuState)
|
185
|
+
}, "Rooms"), menuState && panoramaRooms.map((room, index) => /*#__PURE__*/_react.default.createElement("li", {
|
186
|
+
key: index,
|
187
|
+
onClick: () => changePanorama(room.panorama, index)
|
188
|
+
}, currentRoomIndex === index && '• ', " ", room.type)))), /*#__PURE__*/_react.default.createElement("div", {
|
189
|
+
className: "widget-tab__panorama-map"
|
190
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
191
|
+
src: planImage,
|
192
|
+
className: isMapActive ? 'active' : '',
|
193
|
+
onClick: toggleMap,
|
194
|
+
alt: "plan"
|
195
|
+
}), panoramaRooms.map((room, index) => /*#__PURE__*/_react.default.createElement("div", {
|
196
|
+
key: index,
|
197
|
+
style: {
|
198
|
+
left: "".concat(room.left * planScale.X, "px"),
|
199
|
+
top: "".concat(room.top * planScale.Y, "px")
|
200
|
+
},
|
201
|
+
className: getDotClassName(index),
|
202
|
+
onClick: () => changePanorama(room.panorama, index)
|
203
|
+
}))), /*#__PURE__*/_react.default.createElement("button", {
|
204
|
+
className: "widget-tab__panorama-mode",
|
205
|
+
onClick: toggleVrMode
|
206
|
+
}, "VR"), /*#__PURE__*/_react.default.createElement("button", {
|
207
|
+
className: "widget-tab__panorama-standart",
|
208
|
+
onClick: toggleOrientationMode
|
209
|
+
}, "Standart"));
|
210
|
+
};
|
211
|
+
|
212
|
+
var _default = PanoramaTab;
|
213
|
+
exports.default = _default;
|
@@ -7,6 +7,8 @@ exports.default = void 0;
|
|
7
7
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
9
9
|
|
10
|
+
var _defaultJSON = _interopRequireDefault(require("./defaultJSON"));
|
11
|
+
|
10
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
13
|
|
12
14
|
const defaultConfig = {
|
@@ -18,7 +20,8 @@ const defaultConfig = {
|
|
18
20
|
topView: 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopView_0_0.png',
|
19
21
|
topDownView: 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/MiddleCut_0_0_0.png',
|
20
22
|
rotationImages: ['https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_0.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_1.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_2.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_3.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_4.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_5.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_6.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_7.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_8.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_9.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_10.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_11.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_12.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_13.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_14.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_15.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_16.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_17.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_18.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_19.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_20.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_21.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_22.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_23.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_24.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_25.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_26.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_27.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_28.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_29.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_30.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_31.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_32.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_33.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_34.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/TopDownView_0_0_35.png'],
|
21
|
-
panoramaImages: ['https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_0.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_1.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_2.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_3.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_4.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_5.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_6.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_7.png']
|
23
|
+
panoramaImages: ['https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_0.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_1.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_2.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_3.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_4.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_5.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_6.png', 'https://backend-stage.estate.myhart.ru/storage/projects/202112/a5768629-fa1a-48f4-87de-15fea894deed/unreal/Style_2/Panorama_0_0_7.png'],
|
24
|
+
json: _defaultJSON.default
|
22
25
|
};
|
23
26
|
var _default = defaultConfig;
|
24
27
|
exports.default = _default;
|