hart-estate-widget 0.0.10 → 0.0.11
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/build/api/index.js +24 -0
- package/build/assets/img/bricks.jpeg +0 -0
- package/build/assets/img/door-texture.jpeg +0 -0
- package/build/assets/img/door.jpeg +0 -0
- package/build/assets/img/exterior-wall-texture.jpeg +0 -0
- package/build/assets/img/floor-bathroom.jpg +0 -0
- package/build/assets/img/floor-dark.png +0 -0
- package/build/assets/img/floor-white.png +0 -0
- package/build/assets/img/floor.jpg +0 -0
- package/build/assets/img/ground.svg +9 -0
- package/build/assets/img/wall-texture.jpg +0 -0
- package/build/assets/sass/animation.sass +5 -0
- package/build/assets/sass/components/panorama.sass +2 -35
- package/build/assets/sass/components/tabs.sass +66 -0
- package/build/components/ModelTab.js +90 -85
- package/build/components/PanoramaTab.js +2 -2
- package/build/index.css +1 -1
- package/build/index.css.map +1 -1
- package/build/store/houseStore.js +675 -0
- package/build/store/modelStore.js +196 -0
- package/build/utils/csg/csg-lib.js +387 -0
- package/build/utils/csg/csg-worker.js +94 -0
- package/build/utils/csg/three-csg.js +280 -0
- package/build/utils/modelHelpers.js +79 -35
- package/package.json +1 -1
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.loadFurnitureData = exports.STAGE_API_URL = exports.API_URL = void 0;
|
7
|
+
|
8
|
+
require("core-js/modules/es.promise.js");
|
9
|
+
|
10
|
+
require("core-js/modules/es.array.reduce.js");
|
11
|
+
|
12
|
+
const API_URL = 'https://backend.estate.myhart.ru';
|
13
|
+
exports.API_URL = API_URL;
|
14
|
+
const STAGE_API_URL = 'https://backend-stage.estate.myhart.ru';
|
15
|
+
exports.STAGE_API_URL = STAGE_API_URL;
|
16
|
+
|
17
|
+
const loadFurnitureData = async furniture => {
|
18
|
+
const furnitureQuery = furniture.reduce((acc, item, i) => acc += "".concat(i === 0 ? '' : ',').concat(item.Model), '');
|
19
|
+
const path = "".concat(API_URL, "/api/furniture?only=").concat(furnitureQuery);
|
20
|
+
const response = await fetch(path);
|
21
|
+
return await response.json();
|
22
|
+
};
|
23
|
+
|
24
|
+
exports.loadFurnitureData = loadFurnitureData;
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<svg width="250" height="250" viewBox="0 0 250 250" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<rect width="125" height="125" fill="white"/>
|
3
|
+
<rect x="125" y="125" width="125" height="125" fill="white"/>
|
4
|
+
<rect y="125" width="125" height="125" fill="black"/>
|
5
|
+
<rect x="125" width="125" height="125" fill="black"/>
|
6
|
+
<rect x="124" width="2" height="250" fill="#00A3FF"/>
|
7
|
+
<rect y="126" width="2" height="250" transform="rotate(-90 0 126)" fill="#00A3FF"/>
|
8
|
+
<rect x="0.5" y="0.5" width="249" height="249" stroke="#00A3FF"/>
|
9
|
+
</svg>
|
Binary file
|
@@ -35,6 +35,8 @@
|
|
35
35
|
right: 15px
|
36
36
|
bottom: 70px
|
37
37
|
z-index: 10000
|
38
|
+
&--hidden
|
39
|
+
display: none !important
|
38
40
|
img
|
39
41
|
width: 100px
|
40
42
|
border-radius: 10px
|
@@ -61,38 +63,3 @@
|
|
61
63
|
&--active
|
62
64
|
background-color: red
|
63
65
|
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%
|
@@ -48,6 +48,72 @@
|
|
48
48
|
height: 100%
|
49
49
|
object-fit: cover
|
50
50
|
|
51
|
+
&-menu
|
52
|
+
position: absolute
|
53
|
+
z-index: 3
|
54
|
+
left: 15px
|
55
|
+
top: 15px
|
56
|
+
max-height: 100%
|
57
|
+
overflow-y: auto
|
58
|
+
padding-bottom: 30px
|
59
|
+
&__wallpapers
|
60
|
+
display: flex
|
61
|
+
flex-wrap: wrap
|
62
|
+
align-items: flex-start
|
63
|
+
margin-top: 10px
|
64
|
+
width: 100%
|
65
|
+
img
|
66
|
+
width: 30px
|
67
|
+
height: 30px
|
68
|
+
display: block
|
69
|
+
object-fit: cover
|
70
|
+
cursor: pointer
|
71
|
+
margin-right: 10px
|
72
|
+
margin-block-end: 10px
|
73
|
+
ul
|
74
|
+
list-style-type: none
|
75
|
+
li
|
76
|
+
color: $black
|
77
|
+
background-color: $mainColor
|
78
|
+
padding: 5px 15px
|
79
|
+
border-radius: 10px
|
80
|
+
font-size: .8rem
|
81
|
+
border: none
|
82
|
+
cursor: pointer
|
83
|
+
margin-bottom: 15px
|
84
|
+
width: 200px
|
85
|
+
@include noSelect
|
86
|
+
label
|
87
|
+
display: flex
|
88
|
+
cursor: inherit
|
89
|
+
width: 100%
|
90
|
+
input
|
91
|
+
&[type=color]
|
92
|
+
cursor: pointer
|
93
|
+
margin-left: auto
|
94
|
+
width: 50px
|
95
|
+
height: 20px
|
96
|
+
border: 0
|
97
|
+
border-radius: 5px
|
98
|
+
&::-webkit-color-swatch-wrapper
|
99
|
+
display: none !important
|
100
|
+
&[type=file]
|
101
|
+
display: none
|
102
|
+
&:hover
|
103
|
+
box-shadow: 1px 1px 10px rgba(0, 0, 0, .15)
|
104
|
+
&:nth-child(1)
|
105
|
+
position: relative
|
106
|
+
&::after
|
107
|
+
content: '|||'
|
108
|
+
transform: translateY(-50%) rotate(90deg)
|
109
|
+
font-size: 20px
|
110
|
+
line-height: 20px
|
111
|
+
margin-left: 10px
|
112
|
+
display: block
|
113
|
+
position: absolute
|
114
|
+
right: 10px
|
115
|
+
top: 50%
|
116
|
+
|
51
117
|
.widget-tab-panes
|
52
118
|
position: absolute
|
53
119
|
z-index: 3
|
@@ -9,13 +9,9 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
9
9
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
11
11
|
|
12
|
-
var
|
12
|
+
var _mobxReactLite = require("mobx-react-lite");
|
13
13
|
|
14
|
-
var
|
15
|
-
|
16
|
-
var _modelHelpers = require("../utils/modelHelpers");
|
17
|
-
|
18
|
-
var _grass = _interopRequireDefault(require("../assets/img/grass.png"));
|
14
|
+
var _modelStore = _interopRequireDefault(require("../store/modelStore"));
|
19
15
|
|
20
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21
17
|
|
@@ -23,93 +19,102 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
23
19
|
|
24
20
|
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; }
|
25
21
|
|
26
|
-
|
27
|
-
THREE: THREE
|
28
|
-
});
|
29
|
-
|
30
|
-
const textureLoader = new THREE.TextureLoader();
|
31
|
-
|
32
|
-
const createScene = () => {
|
33
|
-
const scene = new THREE.Scene();
|
34
|
-
const light = new THREE.AmbientLight(0xffffff);
|
35
|
-
scene.background = new THREE.Color('#FAFAFA');
|
36
|
-
scene.add(light);
|
37
|
-
createGround(scene);
|
38
|
-
return scene;
|
39
|
-
};
|
40
|
-
|
41
|
-
const createCamera = renderer => {
|
42
|
-
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
43
|
-
camera.position.set(0, 0, 0);
|
44
|
-
window.addEventListener('resize', () => {
|
45
|
-
camera.aspect = window.innerWidth / window.innerHeight;
|
46
|
-
camera.updateProjectionMatrix();
|
47
|
-
renderer.setSize(window.innerWidth, window.innerHeight);
|
48
|
-
});
|
49
|
-
return camera;
|
50
|
-
};
|
51
|
-
|
52
|
-
const createRenderer = () => {
|
53
|
-
const renderer = new THREE.WebGLRenderer();
|
54
|
-
renderer.setPixelRatio(window.devicePixelRatio);
|
55
|
-
renderer.setSize(window.innerWidth, window.innerHeight);
|
56
|
-
renderer.localClippingEnabled = true;
|
57
|
-
return renderer;
|
58
|
-
};
|
59
|
-
|
60
|
-
const createControls = (clock, camera, scene, renderer) => {
|
61
|
-
const controls = new _cameraControls.default(camera, renderer.domElement);
|
62
|
-
controls.minDistance = 0.5;
|
63
|
-
controls.maxDistance = 180;
|
64
|
-
controls.maxPolarAngle = Math.PI / 2.1;
|
65
|
-
(0, _modelHelpers.setDefaultControls)(controls, Math.PI / 4);
|
66
|
-
controls.verticalDragToForward = true;
|
67
|
-
(0, _modelHelpers.addKeyboardControls)(controls);
|
68
|
-
|
69
|
-
const animate = () => {
|
70
|
-
controls.update(clock.getDelta());
|
71
|
-
window.requestAnimationFrame(animate);
|
72
|
-
renderer.render(scene, camera);
|
73
|
-
};
|
74
|
-
|
75
|
-
animate();
|
76
|
-
return controls;
|
77
|
-
};
|
78
|
-
|
79
|
-
const createGround = scene => {
|
80
|
-
textureLoader.load(_grass.default, grassTexture => {
|
81
|
-
grassTexture.wrapS = grassTexture.wrapT = THREE.RepeatWrapping;
|
82
|
-
grassTexture.repeat.set(70, 70);
|
83
|
-
let groundMaterial = new THREE.MeshBasicMaterial({
|
84
|
-
map: grassTexture,
|
85
|
-
color: 'rgb(255,255,255)'
|
86
|
-
});
|
87
|
-
let groundMesh = new THREE.Mesh(new THREE.PlaneBufferGeometry(500, 500), groundMaterial);
|
88
|
-
groundMesh.rotation.x = -Math.PI / 2;
|
89
|
-
scene.add(groundMesh);
|
90
|
-
});
|
91
|
-
};
|
92
|
-
|
93
|
-
const ModelTab = _ref => {
|
22
|
+
const ModelTab = (0, _mobxReactLite.observer)(_ref => {
|
94
23
|
let {
|
95
24
|
json
|
96
25
|
} = _ref;
|
97
|
-
const [
|
98
|
-
const
|
99
|
-
|
100
|
-
|
101
|
-
const [controls] = (0, _react.useState)(createControls(clock, camera, scene, renderer));
|
26
|
+
const [menuState, setMenuState] = (0, _react.useState)(false);
|
27
|
+
const {
|
28
|
+
houseStore
|
29
|
+
} = _modelStore.default;
|
102
30
|
(0, _react.useEffect)(() => {
|
103
31
|
const container = document.querySelector('.widget-tab__model-scene');
|
104
|
-
|
105
|
-
|
106
|
-
|
32
|
+
container.appendChild(_modelStore.default.renderer.domElement);
|
33
|
+
|
34
|
+
_modelStore.default.setCurrentControlsType('orbit');
|
35
|
+
|
36
|
+
if (_modelStore.default.initialized) {
|
37
|
+
_modelStore.default.houseStore.setDoorsVisibility(true);
|
38
|
+
|
39
|
+
_modelStore.default.houseStore.setFullBuildingVisibility(true);
|
40
|
+
|
41
|
+
_modelStore.default.houseStore.setCurrentWallsMaterialType('texture');
|
42
|
+
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
|
46
|
+
_modelStore.default.init(json);
|
47
|
+
}, [json]);
|
48
|
+
|
49
|
+
const getNextWallsMaterialType = () => {
|
50
|
+
if (houseStore.wallsMaterialType === 'texture') return 'color';
|
51
|
+
return 'texture';
|
52
|
+
};
|
53
|
+
|
54
|
+
const onImageUploaded = _ref2 => {
|
55
|
+
let {
|
56
|
+
target
|
57
|
+
} = _ref2;
|
58
|
+
if (!target.files.length) return;
|
59
|
+
const reader = new FileReader();
|
60
|
+
|
61
|
+
reader.onload = e => houseStore.addWallTexture(e.target.result);
|
62
|
+
|
63
|
+
reader.readAsDataURL(target.files[0]);
|
64
|
+
};
|
65
|
+
|
107
66
|
return /*#__PURE__*/_react.default.createElement("div", {
|
108
67
|
className: "widget-tab__model"
|
109
68
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
110
69
|
className: "widget-tab__model-scene"
|
111
|
-
})
|
112
|
-
|
113
|
-
|
70
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
71
|
+
className: "widget-tab-menu"
|
72
|
+
}, /*#__PURE__*/_react.default.createElement("ul", null, /*#__PURE__*/_react.default.createElement("li", {
|
73
|
+
onClick: () => setMenuState(!menuState)
|
74
|
+
}, "Menu"), menuState && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("li", {
|
75
|
+
onClick: () => _modelStore.default.setCurrentControlsType('wasd')
|
76
|
+
}, "WASD"), /*#__PURE__*/_react.default.createElement("li", {
|
77
|
+
onClick: () => _modelStore.default.setCurrentControlsType('plan')
|
78
|
+
}, "View from above"), /*#__PURE__*/_react.default.createElement("li", {
|
79
|
+
onClick: () => _modelStore.default.setCurrentControlsType('orbit')
|
80
|
+
}, "Free camera"), /*#__PURE__*/_react.default.createElement("li", {
|
81
|
+
onClick: () => houseStore.setPlanMode()
|
82
|
+
}, "Plan"), /*#__PURE__*/_react.default.createElement("li", {
|
83
|
+
onClick: () => houseStore.setFullBuildingVisibility(!houseStore.isFullBuildingVisible)
|
84
|
+
}, houseStore.isFullBuildingVisible ? 'Hide walls' : 'Show walls'), /*#__PURE__*/_react.default.createElement("li", {
|
85
|
+
onClick: () => houseStore.setDoorsVisibility(!houseStore.isDoorsVisible)
|
86
|
+
}, houseStore.isDoorsVisible ? 'Hide doors' : 'Show doors'), /*#__PURE__*/_react.default.createElement("li", {
|
87
|
+
onClick: () => houseStore.setCurrentWallsMaterialType(getNextWallsMaterialType())
|
88
|
+
}, "Material: ", houseStore.wallsMaterialType === 'texture' ? 'Texture' : 'Color'), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement("label", null, "Wall color:", /*#__PURE__*/_react.default.createElement("input", {
|
89
|
+
type: "color",
|
90
|
+
onChange: _ref3 => {
|
91
|
+
let {
|
92
|
+
target
|
93
|
+
} = _ref3;
|
94
|
+
return houseStore.setCurrentWallColor(target.value);
|
95
|
+
},
|
96
|
+
style: {
|
97
|
+
background: houseStore.wallsColor
|
98
|
+
},
|
99
|
+
value: houseStore.wallsColor
|
100
|
+
}))), /*#__PURE__*/_react.default.createElement("li", null, "Wall texture:", /*#__PURE__*/_react.default.createElement("div", {
|
101
|
+
className: "widget-tab-menu__wallpapers"
|
102
|
+
}, houseStore && houseStore.wallsTextures.map((_ref4, index) => {
|
103
|
+
let {
|
104
|
+
image,
|
105
|
+
texture
|
106
|
+
} = _ref4;
|
107
|
+
return /*#__PURE__*/_react.default.createElement("img", {
|
108
|
+
key: index,
|
109
|
+
src: image,
|
110
|
+
onClick: () => houseStore.setCurrentWallTexture(texture),
|
111
|
+
alt: "texture=".concat(index)
|
112
|
+
});
|
113
|
+
}))), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement("label", null, "Upload wall texture", /*#__PURE__*/_react.default.createElement("input", {
|
114
|
+
onChange: onImageUploaded,
|
115
|
+
type: "file",
|
116
|
+
accept: ".jpg, .jpeg, .png"
|
117
|
+
})))))));
|
118
|
+
});
|
114
119
|
var _default = ModelTab;
|
115
120
|
exports.default = _default;
|
@@ -181,14 +181,14 @@ const PanoramaTab = _ref => {
|
|
181
181
|
}), loadingState && /*#__PURE__*/_react.default.createElement(_Loader.default, {
|
182
182
|
absolute: true
|
183
183
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
184
|
-
className: "widget-
|
184
|
+
className: "widget-tab-menu"
|
185
185
|
}, /*#__PURE__*/_react.default.createElement("ul", null, /*#__PURE__*/_react.default.createElement("li", {
|
186
186
|
onClick: () => setMenuState(!menuState)
|
187
187
|
}, "Rooms"), menuState && panoramaRooms.map((room, index) => /*#__PURE__*/_react.default.createElement("li", {
|
188
188
|
key: index,
|
189
189
|
onClick: () => changePanorama(room.panorama, index)
|
190
190
|
}, currentRoomIndex === index && '• ', " ", room.type)))), /*#__PURE__*/_react.default.createElement("div", {
|
191
|
-
className: "widget-tab__panorama-map"
|
191
|
+
className: "widget-tab__panorama-map ".concat(planImage ? '' : 'widget-tab__panorama-map--hidden')
|
192
192
|
}, /*#__PURE__*/_react.default.createElement("img", {
|
193
193
|
src: planImage,
|
194
194
|
className: isMapActive ? 'active' : '',
|
package/build/index.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
*,*:before,*:after{box-sizing:border-box;-webkit-box-sizing:border-box;margin:0;padding:0}html,body{font-size:20px}.widget-application{--vh: 100vh;width:100%;height:calc(100*var(--vh));overflow:hidden;position:relative;z-index:1}.widget-application *,.widget-application *:before,.widget-application *:after{font-family:"Lato",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;outline:none;font-weight:400;text-decoration:none}.widget-application .widget-close{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3;right:15px;top:15px;color:#000;background-color:#fad436;padding:5px 15px;border-radius:10px;font-size:.8rem;border:none;cursor:pointer}.widget-application .widget-close:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:60px 30px 125px 30px}@media(max-width: 630px){.widget-application .widget-tab{padding:60px 15px 90px 15px}}.widget-application .widget-tab--panes-hidden{padding:60px 30px}.widget-application .widget-tab__image{max-width:100%;max-height:100%;object-fit:contain;display:block}.widget-application .widget-tab__threesixty{width:100%;height:100%;touch-action:none;-webkit-touch-action:none}.widget-application .widget-tab__threesixty-container{width:100% !important;height:100% !important;position:relative;cursor:move;background-image:none !important}.widget-application .widget-tab__threesixty-container img{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab--panorama .widget-tab__image,.widget-application .widget-tab--model .widget-tab__image{position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;object-fit:cover}.widget-application .widget-tab-panes{position:absolute;z-index:3;left:50%;bottom:5px;max-width:100%;padding:0 30px 15px 30px;transform:translateX(-50%);display:flex;align-items:center;justify-content:flex-start;overflow-x:auto}@media(max-width: 630px){.widget-application .widget-tab-panes{padding:0 15px 15px 15px}}.widget-application .widget-tab-panes .widget-tab-pane{width:85px;height:85px;border-radius:5px;margin:0 10px;background-color:#f4f7f7;cursor:pointer;border-width:3px;border-style:solid;border-color:#f4f7f7;overflow:hidden;display:flex;align-items:center;justify-content:center;flex:none;transition:border .3s ease;position:relative;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}@media(max-width: 630px){.widget-application .widget-tab-panes .widget-tab-pane{width:50px;height:50px;margin:0 5px}}.widget-application .widget-tab-panes .widget-tab-pane::before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;box-shadow:inset 1px 1px 10px rgba(0,0,0,.3)}.widget-application .widget-tab-panes .widget-tab-pane--active,.widget-application .widget-tab-panes .widget-tab-pane:hover{border-color:#fad436}.widget-application .widget-tab-panes .widget-tab-pane__image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.widget-application .widget-tab-panes .widget-tab-pane__icon{width:16px;height:16px;object-fit:contain;object-position:center;display:block;position:absolute;left:10px;bottom:8px}@media(max-width: 630px){.widget-application .widget-tab-panes .widget-tab-pane__icon{width:12px;height:12px;left:5px;bottom:3px}}.widget-application .widget-instructions{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.3)}.widget-application .widget-instructions__content{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:#fff;box-shadow:1px 1px 10px rgba(0,0,0,.5);border-radius:5px;overflow:hidden;width:350px}.widget-application .widget-instructions__head{width:100%;padding:10px;border-bottom:1px solid #d1d1d1;color:rgba(74,74,74,.7);text-align:center;font-size:.8rem}.widget-application .widget-instructions__body{width:100%;padding:10px;text-align:center;font-size:.7rem}.widget-application .widget-instructions__body p{margin:10px 0}.widget-application .widget-instructions__footer{width:100%}.widget-application .widget-instructions__footer button{width:100%;background-color:#fad436;font-size:.8rem;font-weight:500;text-align:center;color:#000;cursor:pointer;border:none;padding:10px 5px}.widget-application .widget-tab__panorama{width:100%;height:100%;position:absolute;left:0;top:0}.widget-application .widget-tab__panorama-overlay{width:100%;height:100%;overflow:hidden}.widget-application .widget-tab__panorama-mode,.widget-application .widget-tab__panorama-standart{position:absolute;right:15px;bottom:20px;color:#000;background-color:#fad436;padding:5px 15px;border-radius:10px;font-size:1rem;font-weight:bold;border:none;cursor:pointer;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab__panorama-mode:hover,.widget-application .widget-tab__panorama-standart:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab__panorama-standart{right:100px}.widget-application .widget-tab__panorama-map{position:absolute;right:15px;bottom:70px;z-index:10000}.widget-application .widget-tab__panorama-map img{width:100px;border-radius:10px}.widget-application .widget-tab__panorama-map img.active{width:240px}.widget-application .widget-tab__panorama-map img:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab__panorama-map__dot{position:absolute;left:0;top:0;transform:translate(-50%, -50%);width:5px;height:5px;background-color:#fad436;border-radius:50%;cursor:pointer;z-index:10}.widget-application .widget-tab__panorama-map__dot--big{border:2px solid #fad436;box-shadow:inset 0 0 0 2px #fff;width:15px;height:15px}.widget-application .widget-tab__panorama-map__dot--active{background-color:red;border:2px solid red}.widget-
|
1
|
+
*,*:before,*:after{box-sizing:border-box;-webkit-box-sizing:border-box;margin:0;padding:0}html,body{font-size:20px}.widget-application{--vh: 100vh;width:100%;height:calc(100*var(--vh));overflow:hidden;position:relative;z-index:1}.widget-application *,.widget-application *:before,.widget-application *:after{font-family:"Lato",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;outline:none;font-weight:400;text-decoration:none}.widget-application .widget-close{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3;right:15px;top:15px;color:#000;background-color:#fad436;padding:5px 15px;border-radius:10px;font-size:.8rem;border:none;cursor:pointer}.widget-application .widget-close:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:60px 30px 125px 30px}@media(max-width: 630px){.widget-application .widget-tab{padding:60px 15px 90px 15px}}.widget-application .widget-tab--panes-hidden{padding:60px 30px}.widget-application .widget-tab__image{max-width:100%;max-height:100%;object-fit:contain;display:block}.widget-application .widget-tab__threesixty{width:100%;height:100%;touch-action:none;-webkit-touch-action:none}.widget-application .widget-tab__threesixty-container{width:100% !important;height:100% !important;position:relative;cursor:move;background-image:none !important}.widget-application .widget-tab__threesixty-container img{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab--panorama .widget-tab__image,.widget-application .widget-tab--model .widget-tab__image{position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;object-fit:cover}.widget-application-menu{position:absolute;z-index:3;left:15px;top:15px;max-height:100%;overflow-y:auto;padding-bottom:30px}.widget-application-menu__wallpapers{display:flex;flex-wrap:wrap;align-items:flex-start;margin-top:10px;width:100%}.widget-application-menu__wallpapers img{width:30px;height:30px;display:block;object-fit:cover;cursor:pointer}.widget-application-menu ul{list-style-type:none}.widget-application-menu ul li{color:#000;background-color:#fad436;padding:5px 15px;border-radius:10px;font-size:.8rem;border:none;cursor:pointer;margin-bottom:15px;width:150px;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application-menu ul li:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application-menu ul li:nth-child(1){position:relative}.widget-application-menu ul li:nth-child(1)::after{content:"|||";transform:translateY(-50%) rotate(90deg);font-size:20px;line-height:20px;margin-left:10px;display:block;position:absolute;right:10px;top:50%}.widget-application .widget-tab-panes{position:absolute;z-index:3;left:50%;bottom:5px;max-width:100%;padding:0 30px 15px 30px;transform:translateX(-50%);display:flex;align-items:center;justify-content:flex-start;overflow-x:auto}@media(max-width: 630px){.widget-application .widget-tab-panes{padding:0 15px 15px 15px}}.widget-application .widget-tab-panes .widget-tab-pane{width:85px;height:85px;border-radius:5px;margin:0 10px;background-color:#f4f7f7;cursor:pointer;border-width:3px;border-style:solid;border-color:#f4f7f7;overflow:hidden;display:flex;align-items:center;justify-content:center;flex:none;transition:border .3s ease;position:relative;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}@media(max-width: 630px){.widget-application .widget-tab-panes .widget-tab-pane{width:50px;height:50px;margin:0 5px}}.widget-application .widget-tab-panes .widget-tab-pane::before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;box-shadow:inset 1px 1px 10px rgba(0,0,0,.3)}.widget-application .widget-tab-panes .widget-tab-pane--active,.widget-application .widget-tab-panes .widget-tab-pane:hover{border-color:#fad436}.widget-application .widget-tab-panes .widget-tab-pane__image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.widget-application .widget-tab-panes .widget-tab-pane__icon{width:16px;height:16px;object-fit:contain;object-position:center;display:block;position:absolute;left:10px;bottom:8px}@media(max-width: 630px){.widget-application .widget-tab-panes .widget-tab-pane__icon{width:12px;height:12px;left:5px;bottom:3px}}.widget-application .widget-instructions{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.3)}.widget-application .widget-instructions__content{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:#fff;box-shadow:1px 1px 10px rgba(0,0,0,.5);border-radius:5px;overflow:hidden;width:350px}.widget-application .widget-instructions__head{width:100%;padding:10px;border-bottom:1px solid #d1d1d1;color:rgba(74,74,74,.7);text-align:center;font-size:.8rem}.widget-application .widget-instructions__body{width:100%;padding:10px;text-align:center;font-size:.7rem}.widget-application .widget-instructions__body p{margin:10px 0}.widget-application .widget-instructions__footer{width:100%}.widget-application .widget-instructions__footer button{width:100%;background-color:#fad436;font-size:.8rem;font-weight:500;text-align:center;color:#000;cursor:pointer;border:none;padding:10px 5px}.widget-application .widget-tab__panorama{width:100%;height:100%;position:absolute;left:0;top:0}.widget-application .widget-tab__panorama-overlay{width:100%;height:100%;overflow:hidden}.widget-application .widget-tab__panorama-mode,.widget-application .widget-tab__panorama-standart{position:absolute;right:15px;bottom:20px;color:#000;background-color:#fad436;padding:5px 15px;border-radius:10px;font-size:1rem;font-weight:bold;border:none;cursor:pointer;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab__panorama-mode:hover,.widget-application .widget-tab__panorama-standart:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab__panorama-standart{right:100px}.widget-application .widget-tab__panorama-map{position:absolute;right:15px;bottom:70px;z-index:10000}.widget-application .widget-tab__panorama-map--hidden{display:none !important}.widget-application .widget-tab__panorama-map img{width:100px;border-radius:10px}.widget-application .widget-tab__panorama-map img.active{width:240px}.widget-application .widget-tab__panorama-map img:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab__panorama-map__dot{position:absolute;left:0;top:0;transform:translate(-50%, -50%);width:5px;height:5px;background-color:#fad436;border-radius:50%;cursor:pointer;z-index:10}.widget-application .widget-tab__panorama-map__dot--big{border:2px solid #fad436;box-shadow:inset 0 0 0 2px #fff;width:15px;height:15px}.widget-application .widget-tab__panorama-map__dot--active{background-color:red;border:2px solid red}.widget-loader{display:block;position:relative;width:80px;height:80px}.widget-loader--absolute{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}.widget-loader div{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:#fad436;animation-timing-function:cubic-bezier(0, 1, 1, 0)}.widget-loader div:nth-child(1){left:8px;animation:widget-loader-1 .6s infinite}.widget-loader div:nth-child(2){left:8px;animation:widget-loader-2 .6s infinite}.widget-loader div:nth-child(3){left:32px;animation:widget-loader-2 .6s infinite}.widget-loader div:nth-child(4){left:56px;animation:widget-loader-3 .6s infinite}@keyframes widget-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes widget-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes widget-loader-2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}.widget-application .widget-tab__model{width:100%;height:100%;position:absolute;left:0;top:0}.widget-application .widget-tab__model-scene{width:100%;height:100%;display:block}/*# sourceMappingURL=index.css.map */
|
package/build/index.css.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../src/assets/sass/index.sass","../src/assets/sass/vars.sass","../src/assets/sass/components/tabs.sass","../src/assets/sass/components/instructions.sass","../src/assets/sass/components/panorama.sass","../src/assets/sass/components/loader.sass","../src/assets/sass/components/model.sass"],"names":[],"mappings":"AAEA,mBACE,sBACA,8BACA,SACA,UAEF,UACE,eAEF,oBACE,YAEA,WACA,2BACA,gBACA,kBACA,UAEA,+EACE,8BACA,mCACA,kCACA,aACA,gBACA,qBAEF,kCACE,kBACA,aACA,mBACA,uBACA,UACA,WACA,SACA,MC9BI,KD+BJ,iBC7BQ,QD8BR,iBACA,mBACA,gBACA,YACA,eACA,wCACE,wCEzCJ,gCACE,WACA,YACA,aACA,mBACA,uBACA,6BACA,yBAPF,gCAQI,6BACF,8CACE,kBACF,uCACE,eACA,gBACA,mBACA,cACF,4CACE,WACA,YACA,kBACA,0BACA,sDACE,sBACA,uBACA,kBACA,YACA,iCACA,0DACE,kBACA,SACA,QACA,gCACA,eACA,gBACA,mBD1BR,iBACA,yBACA,eACA,uBC2BI,uHACE,kBACA,UACA,OACA,MACA,WACA,YACA,iBAEN,sCACE,kBACA,UACA,SACA,WACA,eACA,yBACA,2BACA,aACA,mBACA,2BACA,gBACA,yBAZF,sCAaI,0BACF,uDACE,WACA,YACA,kBACA,cACA,
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/assets/sass/index.sass","../src/assets/sass/vars.sass","../src/assets/sass/components/tabs.sass","../src/assets/sass/components/instructions.sass","../src/assets/sass/components/panorama.sass","../src/assets/sass/components/loader.sass","../src/assets/sass/components/model.sass"],"names":[],"mappings":"AAEA,mBACE,sBACA,8BACA,SACA,UAEF,UACE,eAEF,oBACE,YAEA,WACA,2BACA,gBACA,kBACA,UAEA,+EACE,8BACA,mCACA,kCACA,aACA,gBACA,qBAEF,kCACE,kBACA,aACA,mBACA,uBACA,UACA,WACA,SACA,MC9BI,KD+BJ,iBC7BQ,QD8BR,iBACA,mBACA,gBACA,YACA,eACA,wCACE,wCEzCJ,gCACE,WACA,YACA,aACA,mBACA,uBACA,6BACA,yBAPF,gCAQI,6BACF,8CACE,kBACF,uCACE,eACA,gBACA,mBACA,cACF,4CACE,WACA,YACA,kBACA,0BACA,sDACE,sBACA,uBACA,kBACA,YACA,iCACA,0DACE,kBACA,SACA,QACA,gCACA,eACA,gBACA,mBD1BR,iBACA,yBACA,eACA,uBC2BI,uHACE,kBACA,UACA,OACA,MACA,WACA,YACA,iBAEN,yBACE,kBACA,UACA,UACA,SACA,gBACA,gBACA,oBACA,qCACE,aACA,eACA,uBACA,gBACA,WACA,yCACE,WACA,YACA,cACA,iBACA,eACJ,4BACE,qBACA,+BACE,MDnEA,KCoEA,iBDlEI,QCmEJ,iBACA,mBACA,gBACA,YACA,eACA,mBACA,YDtEN,iBACA,yBACA,eACA,uBCqEM,qCACE,wCACF,4CACE,kBACA,mDACE,cACA,yCACA,eACA,iBACA,iBACA,cACA,kBACA,WACA,QAEV,sCACE,kBACA,UACA,SACA,WACA,eACA,yBACA,2BACA,aACA,mBACA,2BACA,gBACA,yBAZF,sCAaI,0BACF,uDACE,WACA,YACA,kBACA,cACA,iBD9GM,QC+GN,eACA,iBACA,mBACA,aDlHM,QCmHN,gBACA,aACA,mBACA,uBACA,UACA,2BACA,kBDrHJ,iBACA,yBACA,eACA,uBCoHI,yBAlBF,uDAmBI,WACA,YACA,cACF,+DACE,WACA,kBACA,OACA,MACA,WACA,YACA,6CACF,4HAEE,aDxII,QCyIN,8DACE,WACA,YACA,iBACA,uBACA,cACF,6DACE,WACA,YACA,mBACA,uBACA,cACA,kBACA,UACA,WACA,yBATF,6DAUI,WACA,YACA,SACA,YCjKR,yCACE,kBACA,UACA,OACA,MACA,WACA,YACA,aACA,mBACA,uBACA,gCACA,kDACE,aACA,sBACA,uBACA,2BACA,iBFdE,KEeF,uCACA,kBACA,gBACA,YACF,+CACE,WACA,aACA,gCACA,wBACA,kBACA,gBACF,+CACE,WACA,aACA,kBACA,gBACA,iDACE,cACJ,iDACE,WACA,wDACE,WACA,iBFlCI,QEmCJ,gBACA,gBACA,kBACA,WACA,eACA,YACA,iBC7CJ,0CACE,WACA,YACA,kBACA,OACA,MACA,kDACE,WACA,YACA,gBACF,kGAEE,kBACA,WACA,YACA,MHbA,KGcA,iBHZI,QGaJ,iBACA,mBACA,eACA,iBACA,YACA,eHfN,iBACA,yBACA,eACA,uBGcM,8GACE,wCACJ,mDACE,YACF,8CACE,kBACA,WACA,YACA,cACA,sDACE,wBACF,kDACE,YACA,mBACA,yDACE,YACF,wDACE,wCACJ,mDACE,kBACA,OACA,MACA,gCACA,UACA,WACA,iBH7CE,QG8CF,kBACA,eACA,WACA,wDACE,yBACA,gCACA,WACA,YACF,2DACE,qBACA,qBC9DZ,eACE,cACA,kBACA,WACA,YACA,yBACE,kBACA,SACA,QACA,gCACF,mBACE,kBACA,SACA,WACA,YACA,kBACA,WJVQ,QIWR,mDACA,gCACE,SACA,uCACF,gCACE,SACA,uCACF,gCACE,UACA,uCACF,gCACE,UACA,uCAEN,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,0BAEF,KACE,8BC9CA,uCACE,WACA,YACA,kBACA,OACA,MACA,6CACE,WACA,YACA","file":"index.css"}
|