hart-estate-widget 0.0.41 → 0.0.42
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 +16 -4
- package/build/assets/fonts/RobotoMono/RobotoMono-Bold.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Bold.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Bold.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Bold.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Italic.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Italic.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Italic.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Italic.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Light.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Light.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Light.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Light.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Medium.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Medium.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Medium.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Medium.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Regular.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Regular.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Regular.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Regular.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Thin.eot +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Thin.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Thin.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Thin.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono.css +108 -0
- package/build/assets/icons/1x.svg +4 -0
- package/build/assets/icons/2x.svg +4 -0
- package/build/assets/icons/bullet.png +0 -0
- package/build/assets/icons/close.svg +4 -0
- package/build/assets/icons/enter-fullscreen.svg +6 -0
- package/build/assets/icons/hand-move.svg +15 -0
- package/build/assets/icons/hand-research.svg +12 -0
- package/build/assets/icons/rotation-close.svg +6 -0
- package/build/assets/icons/rotation.svg +4 -0
- package/build/assets/img/logo.svg +11 -0
- package/build/assets/sass/components/instructions.sass +51 -33
- package/build/assets/sass/components/model.sass +1 -0
- package/build/assets/sass/components/panorama.sass +95 -31
- package/build/assets/sass/components/tabs.sass +90 -91
- package/build/assets/sass/index.sass +45 -2
- package/build/assets/sass/mixin.sass +12 -0
- package/build/assets/sass/vars.sass +4 -1
- package/build/components/Application.js +48 -71
- package/build/components/Buttons/FullScreenButton.js +46 -0
- package/build/components/Buttons/TabButton.js +26 -0
- package/build/components/Instructions.js +26 -15
- package/build/components/ModelTab.js +62 -39
- package/build/components/PanoramaTab.js +262 -161
- package/build/components/RotationTab.js +40 -10
- package/build/config/defaultConfig.js +5 -2
- package/build/enums/deviceOrientationStatus.js +11 -0
- package/build/enums/imageExtentions.js +21 -0
- package/build/index.css +1 -1
- package/build/index.css.map +1 -1
- package/build/index.js +4 -12
- package/build/store/fullScreenStore.js +54 -0
- package/build/store/index.js +17 -29
- package/build/utils/panoramaHelpers.js +45 -2
- package/package.json +4 -2
- package/build/components/TabPanes.js +0 -96
- package/build/components/TabWrapper.js +0 -42
@@ -7,11 +7,14 @@ exports.default = void 0;
|
|
7
7
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
9
9
|
|
10
|
+
var _logo = _interopRequireDefault(require("../assets/img/logo.svg"));
|
11
|
+
|
10
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
13
|
|
12
14
|
const defaultConfig = {
|
13
|
-
tabs: ['
|
14
|
-
|
15
|
+
tabs: ['rotation', 'panorama'],
|
16
|
+
logo: _logo.default,
|
17
|
+
logoUrl: null,
|
15
18
|
width: null,
|
16
19
|
height: null,
|
17
20
|
planImage: null,
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.deviceOrientationStatus = void 0;
|
7
|
+
const deviceOrientationStatus = {
|
8
|
+
GRANTED: 'granted',
|
9
|
+
DENIED: 'denied'
|
10
|
+
};
|
11
|
+
exports.deviceOrientationStatus = deviceOrientationStatus;
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.removeExtention = exports.imgExtentions = void 0;
|
7
|
+
|
8
|
+
require("core-js/modules/es.array.reduce.js");
|
9
|
+
|
10
|
+
require("core-js/modules/es.regexp.exec.js");
|
11
|
+
|
12
|
+
require("core-js/modules/es.string.replace.js");
|
13
|
+
|
14
|
+
const imgExtentions = ['.png', '.PNG', '.jpg', '.JPG'];
|
15
|
+
exports.imgExtentions = imgExtentions;
|
16
|
+
|
17
|
+
const removeExtention = str => imgExtentions.reduce((acc, extention) => {
|
18
|
+
return acc.replace(extention, '');
|
19
|
+
}, str);
|
20
|
+
|
21
|
+
exports.removeExtention = removeExtention;
|
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-menu{position:absolute;z-index:3;left:15px;top:15px;max-height:100%;overflow-y:auto;padding-bottom:30px}.widget-application .widget-tab-menu__wallpapers{display:flex;flex-wrap:wrap;align-items:flex-start;margin-top:10px;width:100%}.widget-application .widget-tab-menu__wallpapers img{width:30px;height:30px;display:block;object-fit:cover;cursor:pointer;margin-right:10px;margin-block-end:10px}.widget-application .widget-tab-menu ul{list-style-type:none}.widget-application .widget-tab-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:200px;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab-menu ul li label{display:flex;cursor:inherit;width:100%}.widget-application .widget-tab-menu ul li input[type=color]{cursor:pointer;margin-left:auto;width:50px;height:20px;border:0;border-radius:5px}.widget-application .widget-tab-menu ul li input[type=color]::-webkit-color-swatch-wrapper{display:none !important}.widget-application .widget-tab-menu ul li input[type=file]{display:none}.widget-application .widget-tab-menu ul li:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab-menu ul li:nth-child(1){position:relative}.widget-application .widget-tab-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-instructions__footer button:disabled{opacity:.75;cursor:not-allowed}.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;cursor:zoom-in}.widget-application .widget-tab__panorama-map img.active{width:240px;cursor:zoom-out}.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--sm{transform:translate(-50%, -50%) scale(0.75)}.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}.widget-application .widget-tab__model-joystick{position:absolute;left:100px;bottom:100px;opacity:0;pointer-events:none}@media only screen and (max-width: 545px){.widget-application .widget-tab__model-joystick{left:50%;transform:translateX(-50%)}}.widget-application .widget-tab__model-joystick--active{opacity:1;pointer-events:unset}/*# sourceMappingURL=index.css.map */
|
1
|
+
@import'../fonts/RobotoMono/RobotoMono.css';*,*: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;background-color:#fff}.widget-application *,.widget-application *:before,.widget-application *:after{font-family:"Roboto Mono",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;outline:none;font-weight:700;text-decoration:none;color:#413e3e}.widget-application .widget-logo{position:absolute;left:45px;top:30px;z-index:3}@media only screen and (max-width: 545px){.widget-application .widget-logo{left:20px;top:20px}}.widget-application .widget-logo img{display:block;width:82px;height:82px;object-fit:contain;object-position:center}@media only screen and (max-width: 900px){.widget-application .widget-logo img{width:65px;height:65px}}.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{position:absolute;right:45px;top:36px;z-index:3;ouline:none;border:none;box-shadow:none;background:transparent;cursor:pointer;padding:10px}@media only screen and (max-width: 545px){.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{right:20px;top:20px}}.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}@media only screen and (max-width: 900px){.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{width:40px;height:40px}}.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:#fac62d;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-buttons{position:absolute;z-index:3;right:44px;bottom:35px;display:flex;align-items:center;justify-content:flex-end}@media only screen and (max-width: 545px){.widget-application .widget-tab-buttons{right:20px;bottom:20px}}.widget-application .widget-tab-button{ouline:none;border:none;box-shadow:none;background:transparent;cursor:pointer;width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-color:#eaeaea;color:#413e3e;font-size:28px;line-height:120%;font-weight:bold;margin-left:40px}@media only screen and (max-width: 900px){.widget-application .widget-tab-button{width:60px;height:60px;font-size:24px;margin-left:20px}}@media only screen and (max-width: 545px){.widget-application .widget-tab-button{margin-left:10px}}.widget-application .widget-tab-button--active{background-color:#fac62d}.widget-application .widget-tab{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:60px 30px}@media(max-width: 630px){.widget-application .widget-tab{padding:60px 15px}}.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-start{ouline:none;border:none;box-shadow:none;background:transparent;cursor:pointer;position:absolute;left:50%;bottom:35px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;padding:0 30px 0 27px;background-color:#eaeaea;border-radius:38px;height:72px}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start{height:60px;width:60px;padding:0;left:45px;transform:none}}@media only screen and (max-width: 545px){.widget-application .widget-tab__threesixty-start{left:20px;bottom:20px}}.widget-application .widget-tab__threesixty-start img{display:block;margin-right:20px;position:relative;top:2px}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start img{width:30px;margin-right:0}}.widget-application .widget-tab__threesixty-start span{font-size:24px;font-weight:bold;color:#413e3e;text-transform:uppercase}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start span{display:none}}.widget-application .widget-tab__threesixty-container{width:100% !important;height:100% !important;position:relative;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%;width:600px;height:600px;object-fit:contain;opacity:0;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab__threesixty-container img.active{opacity:1}.widget-application .widget-tab__threesixty--active .widget-tab__threesixty-container{cursor:move}.widget-application .widget-tab-menu{position:absolute;z-index:3;left:15px;top:15px;max-height:100%;overflow-y:auto;padding-bottom:30px}.widget-application .widget-tab-menu__wallpapers{display:flex;flex-wrap:wrap;align-items:flex-start;margin-top:10px;width:100%}.widget-application .widget-tab-menu__wallpapers img{width:30px;height:30px;display:block;object-fit:cover;cursor:pointer;margin-right:10px;margin-block-end:10px}.widget-application .widget-tab-menu ul{list-style-type:none}.widget-application .widget-tab-menu ul li{color:#000;background-color:#fac62d;padding:5px 15px;border-radius:10px;font-size:.7rem;border:none;cursor:pointer;margin-bottom:15px;width:200px;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab-menu ul li label{display:flex;cursor:inherit;width:100%}.widget-application .widget-tab-menu ul li input[type=color]{cursor:pointer;margin-left:auto;width:50px;height:20px;border:0;border-radius:5px}.widget-application .widget-tab-menu ul li input[type=color]::-webkit-color-swatch-wrapper{display:none !important}.widget-application .widget-tab-menu ul li input[type=file]{display:none}.widget-application .widget-tab-menu ul li:nth-child(1){position:relative}.widget-application .widget-tab-menu ul li:nth-child(1)::after{--bar-width: 2px;content:"";width:20px;height:15px;display:block;background:repeating-linear-gradient(180deg, #000000, #000000 var(--bar-width), rgba(0, 0, 0, 0) var(--bar-width), rgba(0, 0, 0, 0) calc(var(--bar-width) * 3));position:absolute;right:10px;top:50%;transform:translateY(-50%)}.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-position:center;background-repeat:no-repeat;background-size:cover}.widget-application .widget-instructions__content{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background-color:rgba(234,234,234,.85);border-radius:20px;overflow:hidden;width:400px;max-width:calc(100% - 60px);padding:36px 30px 30px 30px;backdrop-filter:blur(5px);-moz-backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.widget-application .widget-instructions__steps{display:flex;align-items:flex-start;justify-content:center}.widget-application .widget-instructions__step{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;margin:0 15px}@media only screen and (max-width: 900px){.widget-application .widget-instructions__step{margin:0 10px}}.widget-application .widget-instructions__step img{display:block;width:52px;height:80px;object-fit:contain;object-position:center}.widget-application .widget-instructions__step p{color:#413e3e;font-size:20px;font-weight:bold;text-align:center;margin-top:10px;max-width:135px}@media only screen and (max-width: 900px){.widget-application .widget-instructions__step p{font-size:18px}}.widget-application .widget-instructions button{ouline:none;border:none;box-shadow:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;height:44px;padding:0 33px;border-radius:52px;background-color:#fac62d;color:#413e3e;font-size:24px;font-weight:bold;text-transform:uppercase;margin:25px auto 0 auto}.widget-application .widget-tab__panorama{width:100%;height:100%;position:absolute;left:0;top:0;z-index:2}.widget-application .widget-tab__panorama-overlay{width:100%;height:100%;overflow:hidden;background:#fff !important}.widget-application .widget-tab__panorama-controls{position:absolute;left:50%;bottom:35px;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:38px;background-color:rgba(0,0,0,.2);transform:translateX(-50%);backdrop-filter:blur(5px);-moz-backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls{right:45px;left:unset;transform:none;bottom:120px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-controls{right:20px;bottom:100px}}.widget-application .widget-tab__panorama-controls-button{ouline:none;border:none;box-shadow:none;background:transparent;cursor:pointer;width:55px;height:55px;border-radius:50%;background-color:#fff;display:flex;align-items:center;justify-content:center;margin-right:18px}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls-button{width:40px;height:40px}}.widget-application .widget-tab__panorama-controls-button img{display:block}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.7)}}.widget-application .widget-tab__panorama-controls-button:nth-last-child(1){margin-right:0}.widget-application .widget-tab__panorama-map{position:absolute;left:45px;bottom:35px;z-index:3;border-radius:10px;opacity:1;transition:opacity .5s;overflow:hidden}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-map{left:20px;bottom:20px}}.widget-application .widget-tab__panorama-map--hidden{opacity:0;pointer-events:none}.widget-application .widget-tab__panorama-map img{width:195px;border-radius:inherit;display:block;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map img{width:150px}}.widget-application .widget-tab__panorama-map img:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab__panorama-map svg{position:absolute;left:0;top:0;width:195px;height:100%;z-index:3;display:block;border-radius:inherit}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map svg{width:150px}}.widget-application .widget-tab__panorama-map svg polygon{opacity:0;fill:#fac62d;cursor:pointer}.widget-application .widget-tab__panorama-map svg polygon:hover{opacity:.3}.widget-application .widget-tab__panorama-map__fov{position:absolute;left:0;top:0;width:0px;height:0px;border-radius:50%;border:30px solid transparent;border-top:40px solid rgba(250,198,45,.4);transform:translate(-50%, -50%) rotate(0rad);transform-origin:50% 50%;z-index:4;pointer-events:none}.widget-application .widget-tab__panorama-map__dot{position:absolute;left:0;top:0;transform:translate(-50%, -50%);width:5px;height:5px;background-color:#fac62d;border-radius:50%;z-index:5;visibility:hidden;pointer-events:none}.widget-application .widget-tab__panorama-map__dot--big{border:2px solid #fac62d;box-shadow:inset 0 0 0 2px #fff;width:15px;height:15px}.widget-application .widget-tab__panorama-map__dot--active{visibility:visible}.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--sm{transform:translate(-50%, -50%) scale(0.75)}.widget-loader div{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:#fac62d;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;z-index:2}.widget-application .widget-tab__model-scene{width:100%;height:100%;display:block}.widget-application .widget-tab__model-joystick{position:absolute;left:100px;bottom:100px;opacity:0;pointer-events:none}@media only screen and (max-width: 545px){.widget-application .widget-tab__model-joystick{left:50%;transform:translateX(-50%)}}.widget-application .widget-tab__model-joystick--active{opacity:1;pointer-events:unset}/*# 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":"
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/assets/sass/index.sass","../src/assets/sass/vars.sass","../src/assets/sass/mixin.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":"AAAQ,4CAIR,mBACE,sBACA,8BACA,SACA,UAEF,UACE,eAEF,oBACE,YAEA,WACA,2BACA,gBACA,kBACA,UACA,iBChBM,KDkBN,+EACE,qCACA,mCACA,kCACA,aACA,gBACA,qBACA,MCnBQ,QDqBV,iCACE,kBACA,UACA,SACA,UACA,0CALF,iCAMI,UACA,UACF,qCACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,qCAOI,WACA,aAEN,yFAEE,kBACA,WACA,SACA,UEtDF,YACA,YACA,gBACA,uBACA,eFoDE,aACA,0CARF,yFASI,WACA,UACF,iGACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,iGAOI,WACA,aAEN,kCACE,kBACA,aACA,mBACA,uBACA,UACA,WACA,SACA,MCzEI,KD0EJ,iBCvEQ,QDwER,iBACA,mBACA,gBACA,YACA,eACA,wCACE,wCGnFJ,wCACE,kBACA,UACA,WACA,YACA,aACA,mBACA,yBACA,0CARF,wCASI,WACA,aACJ,uCDdA,YACA,YACA,gBACA,uBACA,eCYE,WACA,YACA,kBACA,aACA,mBACA,uBACA,iBFhBG,QEiBH,MFbQ,QEcR,eACA,iBACA,iBACA,iBACA,0CAdF,uCAeI,WACA,YACA,eACA,kBACF,0CAnBF,uCAoBI,kBACF,+CACE,iBF5BM,QE8BV,gCACE,WACA,YACA,aACA,mBACA,uBACA,kBACA,yBAPF,gCAQI,mBACF,uCACE,eACA,gBACA,mBACA,cACF,4CACE,WACA,YACA,kBACA,0BACA,kDDzDJ,YACA,YACA,gBACA,uBACA,eCuDM,kBACA,SACA,YACA,2BACA,aACA,mBACA,uBACA,sBACA,iBF7DD,QE8DC,mBACA,YACA,0CAbF,kDAcI,YACA,WACA,UACA,UACA,gBACF,0CAnBF,kDAoBI,UACA,aACF,sDACE,cACA,kBACA,kBACA,QACA,0CALF,sDAMI,WACA,gBACJ,uDACE,eACA,iBACA,MFhFE,QEiFF,yBACA,0CALF,uDAMI,cACN,sDACE,sBACA,uBACA,kBACA,iCACA,0DACE,kBACA,SACA,QACA,gCACA,eACA,gBACA,YACA,aACA,mBACA,UFhGR,iBACA,yBACA,eACA,uBE+FQ,iEACE,UAEJ,sFACE,YAEN,qCACE,kBACA,UACA,UACA,SACA,gBACA,gBACA,oBACA,iDACE,aACA,eACA,uBACA,gBACA,WACA,qDACE,WACA,YACA,cACA,iBACA,eACA,kBACA,sBACJ,wCACE,qBACA,2CACE,MFzIF,KE0IE,iBFvIE,QEwIF,iBACA,mBACA,gBACA,YACA,eACA,mBACA,YFzIR,iBACA,yBACA,eACA,uBEwIQ,iDACE,aACA,eACA,WAEA,6DACE,eACA,iBACA,WACA,YACA,SACA,kBACA,2FACE,wBACJ,4DACE,aACJ,wDACE,kBACA,+DACE,iBACA,WACA,WACA,YACA,cACA,gKACA,kBACA,WACA,QACA,2BCjLZ,yCACE,kBACA,UACA,OACA,MACA,WACA,YACA,aACA,mBACA,uBACA,2BACA,4BACA,sBAEA,kDACE,aACA,sBACA,mBACA,2BACA,uCACA,mBACA,gBACA,YACA,4BACA,4BFpBJ,0BACA,+BACA,kCEoBE,gDACE,aACA,uBACA,uBACF,+CACE,aACA,sBACA,mBACA,2BACA,cACA,0CANF,+CAOI,eACF,mDACE,cACA,WACA,YACA,mBACA,uBACF,iDACE,MHtCI,QGuCJ,eACA,iBACA,kBACA,gBACA,gBACA,0CAPF,iDAQI,gBACN,gDFxDF,YACA,YACA,gBACA,uBACA,eEsDI,aACA,mBACA,uBACA,YACA,eACA,mBACA,iBHxDM,QGyDN,MHvDM,QGwDN,eACA,iBACA,yBACA,wBCjEF,0CACE,WACA,YACA,kBACA,OACA,MACA,UACA,kDACE,WACA,YACA,gBACA,2BACF,mDACE,kBACA,SACA,YACA,aACA,mBACA,uBACA,YACA,mBACA,gCACA,2BHnBN,0BACA,+BACA,kCGmBM,0CAZF,mDAaI,WACA,WACA,eACA,cACF,0CAjBF,mDAkBI,WACA,cACF,0DHpCN,YACA,YACA,gBACA,uBACA,eGkCQ,WACA,YACA,kBACA,iBJrCF,KIsCE,aACA,mBACA,uBACA,kBACA,0CAVF,0DAWI,WACA,aACF,8DACE,cACA,0CAFF,8DAGI,sBACJ,4EACE,eACN,8CACE,kBACA,UACA,YACA,UACA,mBACA,UACA,uBACA,gBACA,0CATF,8CAUI,UACA,aACF,sDACE,UACA,oBACF,kDACE,YACA,sBACA,cJ5DR,iBACA,yBACA,eACA,uBI2DQ,0CALF,kDAMI,aACF,wDACE,wCACJ,kDACE,kBACA,OACA,MACA,YACA,YACA,UACA,cACA,sBACA,0CATF,kDAUI,aACF,0DACE,UACA,KJpFA,QIqFA,eACA,gEACE,WACN,mDACE,kBACA,OACA,MACA,UACA,WACA,kBACA,8BACA,0CACA,6CACA,yBACA,UACA,oBACF,mDACE,kBACA,OACA,MACA,gCACA,UACA,WACA,iBJ5GE,QI6GF,kBACA,UACA,kBACA,oBACA,wDACE,yBACA,gCACA,WACA,YACF,2DAGE,mBChIZ,eACE,cACA,kBACA,WACA,YACA,yBACE,kBACA,SACA,QACA,gCACF,mBACE,4CACF,mBACE,kBACA,SACA,WACA,YACA,kBACA,WLXQ,QKYR,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,8BChDA,uCACE,WACA,YACA,kBACA,OACA,MACA,UACA,6CACE,WACA,YACA,cACF,gDACE,kBACA,WACA,aACA,UACA,oBACA,0CANF,gDAOI,SACA,4BACF,wDACE,UACA","file":"index.css"}
|
package/build/index.js
CHANGED
@@ -45,12 +45,6 @@ Object.defineProperty(exports, "RotationTab", {
|
|
45
45
|
return _RotationTab.default;
|
46
46
|
}
|
47
47
|
});
|
48
|
-
Object.defineProperty(exports, "TabWrapper", {
|
49
|
-
enumerable: true,
|
50
|
-
get: function get() {
|
51
|
-
return _TabWrapper.default;
|
52
|
-
}
|
53
|
-
});
|
54
48
|
Object.defineProperty(exports, "Widget", {
|
55
49
|
enumerable: true,
|
56
50
|
get: function get() {
|
@@ -60,8 +54,12 @@ Object.defineProperty(exports, "Widget", {
|
|
60
54
|
|
61
55
|
var _react = _interopRequireDefault(require("react"));
|
62
56
|
|
57
|
+
var _apiStore = _interopRequireDefault(require("./store/apiStore"));
|
58
|
+
|
63
59
|
var _Widget = _interopRequireDefault(require("./components/Widget"));
|
64
60
|
|
61
|
+
var _Loader = _interopRequireDefault(require("./components/Loader"));
|
62
|
+
|
65
63
|
var _ImageTab = _interopRequireDefault(require("./components/ImageTab"));
|
66
64
|
|
67
65
|
var _Instructions = _interopRequireDefault(require("./components/Instructions"));
|
@@ -70,12 +68,6 @@ var _RotationTab = _interopRequireDefault(require("./components/RotationTab"));
|
|
70
68
|
|
71
69
|
var _PanoramaTab = _interopRequireDefault(require("./components/PanoramaTab"));
|
72
70
|
|
73
|
-
var _TabWrapper = _interopRequireDefault(require("./components/TabWrapper"));
|
74
|
-
|
75
71
|
var _ModelTab = _interopRequireDefault(require("./components/ModelTab"));
|
76
72
|
|
77
|
-
var _Loader = _interopRequireDefault(require("./components/Loader"));
|
78
|
-
|
79
|
-
var _apiStore = _interopRequireDefault(require("./store/apiStore"));
|
80
|
-
|
81
73
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -0,0 +1,54 @@
|
|
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.promise.js");
|
9
|
+
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
11
|
+
|
12
|
+
var _screenfull = _interopRequireDefault(require("screenfull"));
|
13
|
+
|
14
|
+
var _mobx = require("mobx");
|
15
|
+
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
|
+
|
18
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
19
|
+
|
20
|
+
(0, _mobx.configure)({
|
21
|
+
useProxies: 'never'
|
22
|
+
});
|
23
|
+
|
24
|
+
class FullscreenStore {
|
25
|
+
constructor() {
|
26
|
+
_defineProperty(this, "enabled", _screenfull.default.isEnabled);
|
27
|
+
|
28
|
+
_defineProperty(this, "active", false);
|
29
|
+
|
30
|
+
_defineProperty(this, "element", null);
|
31
|
+
|
32
|
+
(0, _mobx.makeAutoObservable)(this);
|
33
|
+
}
|
34
|
+
|
35
|
+
init() {
|
36
|
+
this.element = document.querySelector('#widget-application');
|
37
|
+
if (!this.enabled) return;
|
38
|
+
|
39
|
+
_screenfull.default.on('change', () => this.active = _screenfull.default.isFullscreen);
|
40
|
+
}
|
41
|
+
|
42
|
+
async enter() {
|
43
|
+
return await _screenfull.default.request(this.element);
|
44
|
+
}
|
45
|
+
|
46
|
+
async exit() {
|
47
|
+
return await _screenfull.default.exit();
|
48
|
+
}
|
49
|
+
|
50
|
+
}
|
51
|
+
|
52
|
+
var _default = new FullscreenStore();
|
53
|
+
|
54
|
+
exports.default = _default;
|
package/build/store/index.js
CHANGED
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
7
|
|
8
|
-
require("core-js/modules/es.
|
8
|
+
require("core-js/modules/es.array.sort.js");
|
9
|
+
|
10
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
9
11
|
|
10
12
|
var _react = _interopRequireDefault(require("react"));
|
11
13
|
|
@@ -18,51 +20,37 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
18
20
|
(0, _mobx.configure)({
|
19
21
|
useProxies: 'never'
|
20
22
|
});
|
23
|
+
const LivingRoomType = 'Living';
|
21
24
|
|
22
25
|
class Store {
|
23
26
|
constructor() {
|
24
27
|
_defineProperty(this, "config", null);
|
25
28
|
|
26
|
-
_defineProperty(this, "listeners", {
|
27
|
-
'enterComponent': [],
|
28
|
-
'exitComponent': []
|
29
|
-
});
|
29
|
+
_defineProperty(this, "listeners", {});
|
30
30
|
|
31
31
|
(0, _mobx.makeAutoObservable)(this);
|
32
32
|
}
|
33
33
|
|
34
|
-
get
|
34
|
+
get initialPanoramaRoomId() {
|
35
35
|
const {
|
36
36
|
json
|
37
37
|
} = this.config;
|
38
|
-
if (!json) return
|
39
|
-
const
|
40
|
-
|
41
|
-
}
|
42
|
-
const
|
43
|
-
const isSameDoor = door.Walls.some(doorWallId => doorWallId === exteriorWallWithDoor);
|
44
|
-
const isExterior = door.Walls.some(doorWallId => json.Floors[0].ExteriorWalls.some(exteriorWallId => exteriorWallId === doorWallId));
|
45
|
-
return isSameDoor && isExterior;
|
46
|
-
});
|
47
|
-
const wallWithExteriorDoor = exteriorDoor.Walls.find(wallId => wallId !== exteriorWallWithDoor);
|
48
|
-
const room = json.Floors[0].Units[0].Rooms.find(_ref => {
|
38
|
+
if (!json) return null;
|
39
|
+
const {
|
40
|
+
Rooms
|
41
|
+
} = json.Floors[0].Units[0];
|
42
|
+
const livingRoom = Rooms.find(_ref => {
|
49
43
|
let {
|
50
|
-
|
44
|
+
Type
|
51
45
|
} = _ref;
|
52
|
-
return
|
46
|
+
return Type === LivingRoomType;
|
53
47
|
});
|
54
|
-
|
48
|
+
const biggestRoom = [...Rooms].sort((a, b) => b.Area - a.Area)[0];
|
49
|
+
return (livingRoom === null || livingRoom === void 0 ? void 0 : livingRoom.ID) || (biggestRoom === null || biggestRoom === void 0 ? void 0 : biggestRoom.ID) || null;
|
55
50
|
}
|
56
51
|
|
57
|
-
|
58
|
-
|
59
|
-
json,
|
60
|
-
panoramaImages
|
61
|
-
} = this.config;
|
62
|
-
if (!json) return panoramaImages[0] || null;
|
63
|
-
const roomIndex = json.Floors[0].Units[0].Rooms.findIndex(room => room.ID === this.hallRoomId);
|
64
|
-
const image = panoramaImages.find(url => url.includes("".concat(roomIndex, ".png")));
|
65
|
-
return image || panoramaImages[0] || null;
|
52
|
+
isTabIncluded(value) {
|
53
|
+
return this.config.tabs.find(tab => tab === value);
|
66
54
|
}
|
67
55
|
|
68
56
|
setConfig(config) {
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.getScale = exports.getRoomCoordinates = exports.getArrayFromNumber = exports.findWallVertices = void 0;
|
6
|
+
exports.getScale = exports.getRoomCoordinates = exports.getClosestPanorama = exports.getCameraFromSrc = exports.getArrayFromNumber = exports.findWallVertices = exports.cameraIdBeginning = void 0;
|
7
7
|
|
8
8
|
require("core-js/modules/web.dom-collections.iterator.js");
|
9
9
|
|
@@ -11,8 +11,15 @@ require("core-js/modules/es.array.reduce.js");
|
|
11
11
|
|
12
12
|
var _react = _interopRequireDefault(require("react"));
|
13
13
|
|
14
|
+
var _geometric = require("geometric");
|
15
|
+
|
16
|
+
var _imageExtentions = require("../enums/imageExtentions");
|
17
|
+
|
14
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
19
|
|
20
|
+
const cameraIdBeginning = 'CameraId';
|
21
|
+
exports.cameraIdBeginning = cameraIdBeginning;
|
22
|
+
|
16
23
|
const getArrayFromNumber = num => [...Array(num).keys()];
|
17
24
|
|
18
25
|
exports.getArrayFromNumber = getArrayFromNumber;
|
@@ -55,4 +62,40 @@ const getScale = (image, json) => {
|
|
55
62
|
};
|
56
63
|
};
|
57
64
|
|
58
|
-
exports.getScale = getScale;
|
65
|
+
exports.getScale = getScale;
|
66
|
+
|
67
|
+
const getCameraFromSrc = (json, src) => {
|
68
|
+
var _json$Floors$0$Camera;
|
69
|
+
|
70
|
+
const cameraIdIndex = src.indexOf(cameraIdBeginning);
|
71
|
+
if (cameraIdIndex === -1) return null;
|
72
|
+
const cameraId = (0, _imageExtentions.removeExtention)(src.substring(cameraIdIndex));
|
73
|
+
return ((_json$Floors$0$Camera = json.Floors[0].CameraPoints) === null || _json$Floors$0$Camera === void 0 ? void 0 : _json$Floors$0$Camera.find(_ref => {
|
74
|
+
let {
|
75
|
+
ID
|
76
|
+
} = _ref;
|
77
|
+
return ID === cameraId;
|
78
|
+
})) || null;
|
79
|
+
};
|
80
|
+
|
81
|
+
exports.getCameraFromSrc = getCameraFromSrc;
|
82
|
+
|
83
|
+
const getClosestPanorama = (point, panoramas) => {
|
84
|
+
return panoramas.reduce((closest, current) => {
|
85
|
+
const length = (0, _geometric.lineLength)([point, [current.userData.left, current.userData.top]]);
|
86
|
+
|
87
|
+
if (length < closest.length) {
|
88
|
+
return {
|
89
|
+
panorama: current,
|
90
|
+
length
|
91
|
+
};
|
92
|
+
}
|
93
|
+
|
94
|
+
return closest;
|
95
|
+
}, {
|
96
|
+
length: Infinity,
|
97
|
+
panorama: null
|
98
|
+
});
|
99
|
+
};
|
100
|
+
|
101
|
+
exports.getClosestPanorama = getClosestPanorama;
|
package/package.json
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
"description": "HART Estate widget",
|
4
4
|
"author": "HART",
|
5
5
|
"keywords": [],
|
6
|
-
"version": "0.0.
|
6
|
+
"version": "0.0.42",
|
7
7
|
"private": false,
|
8
8
|
"main": "build/index.js",
|
9
9
|
"module": "build/index.js",
|
@@ -15,7 +15,8 @@
|
|
15
15
|
"start": "babel src --watch --out-dir build --copy-files",
|
16
16
|
"start-example": "cd ./example && npm run start",
|
17
17
|
"build": "rm -rf build && NODE_ENV=production babel src --out-dir build --copy-files && npm run build:sass",
|
18
|
-
"build:sass": "sass src/assets/sass/index.sass:build/index.css --style compressed"
|
18
|
+
"build:sass": "sass src/assets/sass/index.sass:build/index.css --style compressed",
|
19
|
+
"local-tunnel": "Lt --port 9000 --subdomain estate-widget --local-host localhost"
|
19
20
|
},
|
20
21
|
"dependencies": {
|
21
22
|
"camera-controls": "^1.34.1",
|
@@ -29,6 +30,7 @@
|
|
29
30
|
"panzoom": "^9.4.2",
|
30
31
|
"react": "^17.0.2",
|
31
32
|
"react-dom": "^17.0.2",
|
33
|
+
"screenfull": "^6.0.1",
|
32
34
|
"three": "^0.137.5",
|
33
35
|
"three-device-orientation": "^1.0.3"
|
34
36
|
},
|
@@ -1,96 +0,0 @@
|
|
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
|
-
var _mobxReactLite = require("mobx-react-lite");
|
11
|
-
|
12
|
-
var _store = _interopRequireDefault(require("../store"));
|
13
|
-
|
14
|
-
var _Loader = _interopRequireDefault(require("./Loader"));
|
15
|
-
|
16
|
-
var _refreshIcon = _interopRequireDefault(require("../assets/img/refresh-icon.svg"));
|
17
|
-
|
18
|
-
var _D = _interopRequireDefault(require("../assets/img/3D.jpg"));
|
19
|
-
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21
|
-
|
22
|
-
const TabPanes = (0, _mobxReactLite.observer)(_ref => {
|
23
|
-
let {
|
24
|
-
currentTab,
|
25
|
-
setCurrentTab
|
26
|
-
} = _ref;
|
27
|
-
const {
|
28
|
-
planImage,
|
29
|
-
topView,
|
30
|
-
topDownView,
|
31
|
-
rotationImages,
|
32
|
-
tabs
|
33
|
-
} = _store.default.config;
|
34
|
-
const images = {
|
35
|
-
'planImage': {
|
36
|
-
img: planImage,
|
37
|
-
icon: null
|
38
|
-
},
|
39
|
-
'topView': {
|
40
|
-
img: topView,
|
41
|
-
icon: null
|
42
|
-
},
|
43
|
-
'topDownView': {
|
44
|
-
img: topDownView,
|
45
|
-
icon: null
|
46
|
-
},
|
47
|
-
'panorama': {
|
48
|
-
img: _store.default.hallRoomImage,
|
49
|
-
icon: null
|
50
|
-
},
|
51
|
-
'rotation': {
|
52
|
-
img: rotationImages[0],
|
53
|
-
icon: _refreshIcon.default
|
54
|
-
},
|
55
|
-
'model': {
|
56
|
-
img: _D.default,
|
57
|
-
icon: null
|
58
|
-
}
|
59
|
-
};
|
60
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
61
|
-
className: "widget-tab-panes"
|
62
|
-
}, tabs.map((tab, index) => /*#__PURE__*/_react.default.createElement(TabPane, {
|
63
|
-
key: index,
|
64
|
-
icon: images[tab].icon,
|
65
|
-
image: images[tab].img,
|
66
|
-
active: currentTab === tab,
|
67
|
-
onClick: () => setCurrentTab(tab)
|
68
|
-
})));
|
69
|
-
});
|
70
|
-
|
71
|
-
const TabPane = _ref2 => {
|
72
|
-
let {
|
73
|
-
active,
|
74
|
-
icon,
|
75
|
-
image,
|
76
|
-
onClick
|
77
|
-
} = _ref2;
|
78
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
79
|
-
className: "widget-tab-pane ".concat(active ? 'widget-tab-pane--active' : ''),
|
80
|
-
onClick: onClick
|
81
|
-
}, !image && /*#__PURE__*/_react.default.createElement(_Loader.default, {
|
82
|
-
absolute: true,
|
83
|
-
size: "sm"
|
84
|
-
}), image && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
|
85
|
-
className: "widget-tab-pane__image",
|
86
|
-
src: image,
|
87
|
-
alt: "tab-pane"
|
88
|
-
}), icon && /*#__PURE__*/_react.default.createElement("img", {
|
89
|
-
className: "widget-tab-pane__icon",
|
90
|
-
src: icon,
|
91
|
-
alt: "tab-pane-icon"
|
92
|
-
})));
|
93
|
-
};
|
94
|
-
|
95
|
-
var _default = TabPanes;
|
96
|
-
exports.default = _default;
|
@@ -1,42 +0,0 @@
|
|
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
|
-
var _ImageTab = _interopRequireDefault(require("./ImageTab"));
|
11
|
-
|
12
|
-
var _Instructions = _interopRequireDefault(require("./Instructions"));
|
13
|
-
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
-
|
16
|
-
const TabWrapper = _ref => {
|
17
|
-
let {
|
18
|
-
isActive,
|
19
|
-
image,
|
20
|
-
title,
|
21
|
-
text,
|
22
|
-
disabled,
|
23
|
-
onStart,
|
24
|
-
children
|
25
|
-
} = _ref;
|
26
|
-
|
27
|
-
if (!isActive) {
|
28
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ImageTab.default, {
|
29
|
-
image: image
|
30
|
-
}), /*#__PURE__*/_react.default.createElement(_Instructions.default, {
|
31
|
-
disabled: disabled,
|
32
|
-
title: title,
|
33
|
-
text: text,
|
34
|
-
onClick: onStart
|
35
|
-
}));
|
36
|
-
}
|
37
|
-
|
38
|
-
return children;
|
39
|
-
};
|
40
|
-
|
41
|
-
var _default = TabWrapper;
|
42
|
-
exports.default = _default;
|