hart-estate-widget 0.0.64 → 0.0.65

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 CHANGED
@@ -9,12 +9,13 @@
9
9
 
10
10
  ```js
11
11
  import React, { useEffect, useState } from 'react';
12
- import { Widget } from 'hart-estate-widget';
12
+ import { Widget, rotationModes } from 'hart-estate-widget';
13
13
 
14
14
  const WIDGET_OPTIONS = {
15
15
  tabs: ['planImage', 'rotation', 'panorama'],
16
16
  logo: '/path/to/logo.png',
17
17
  planImage: '/path/to/plan.jpg',
18
+ rotationMode: rotationModes.DEFAULY,
18
19
  rotationImages: [
19
20
  '/path/to/rotation_image_1.jpg',
20
21
  ...
@@ -95,8 +96,8 @@ tabs: [
95
96
  'panorama', // изображения 360°
96
97
  ],
97
98
  rotationMode: [
98
- 'default', // режим просмотра вида сверху (несколько ракурсов) и стилизованной планировки
99
- 'threesixty', // режим прокрутки изображений кругового просмотра
99
+ rotationModes.DEFAULT, // режим просмотра вида сверху (несколько ракурсов) и стилизованной планировки
100
+ rotationModes.THREESIXTY, // режим прокрутки изображений кругового просмотра
100
101
  ],
101
102
  locale: [
102
103
  'ru', // русский язык
@@ -1 +1 @@
1
- .widget-application{width:100%;height:100%;flex:none;overflow:hidden;position:relative;z-index:1;background-color:#fff;font-size:20px}.widget-application *,.widget-application *:before,.widget-application *:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:"Roboto Mono",sans-serif;text-decoration:none;font-weight:700;color:#413e3e;outline:none;padding:0;margin:0;box-sizing:border-box;-webkit-box-sizing:border-box}.widget-application .widget-logo{position:absolute;left:45px;top:30px;z-index:3}.widget-application--tablet.widget-application .widget-logo{left:20px;top:30px}.widget-application--smallMobile.widget-application .widget-logo{top:25px}.widget-application .widget-logo img{display:block;width:82px;height:82px;object-fit:contain;object-position:center}.widget-application--tablet.widget-application .widget-logo img{width:65px;height:65px}.widget-application--mobile.widget-application .widget-logo img{width:42px;height:42px}.widget-application--smallMobile.widget-application .widget-logo img{width:36px;height:36px}.widget-application .widget-tab__panorama-close-map{position:absolute;right:45px;top:36px;z-index:3;padding:10px;touch-action:none;ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer}.widget-application--tablet.widget-application .widget-tab__panorama-close-map{right:17px;top:35px}.widget-application--mobile.widget-application .widget-tab__panorama-close-map{padding:5px;right:20px}.widget-application--smallMobile.widget-application .widget-tab__panorama-close-map{top:25px}.widget-application .widget-tab__panorama-close-map img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}.widget-application--tablet.widget-application .widget-tab__panorama-close-map img{width:40px;height:40px}.widget-application--mobile.widget-application .widget-tab__panorama-close-map img{width:32px;height:32px}.widget-application--smallMobile.widget-application .widget-tab__panorama-close-map img{width:26px;height:26px}.widget-application .widget-enter-fullscreen{position:absolute;right:45px;top:36px;z-index:3;padding:10px;touch-action:none;ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer}.widget-application--tablet.widget-application .widget-enter-fullscreen{right:17px;top:35px}.widget-application--mobile.widget-application .widget-enter-fullscreen{padding:5px;right:20px}.widget-application--smallMobile.widget-application .widget-enter-fullscreen{top:25px}.widget-application .widget-enter-fullscreen img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}.widget-application--tablet.widget-application .widget-enter-fullscreen img{width:40px;height:40px}.widget-application--mobile.widget-application .widget-enter-fullscreen img{width:32px;height:32px}.widget-application--smallMobile.widget-application .widget-enter-fullscreen img{width:26px;height:26px}.widget-application .widget-exit-fullscreen{position:absolute;right:45px;top:36px;z-index:3;padding:10px;touch-action:none;ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer}.widget-application--tablet.widget-application .widget-exit-fullscreen{right:17px;top:35px}.widget-application--mobile.widget-application .widget-exit-fullscreen{padding:5px;right:20px}.widget-application--smallMobile.widget-application .widget-exit-fullscreen{top:25px}.widget-application .widget-exit-fullscreen img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}.widget-application--tablet.widget-application .widget-exit-fullscreen img{width:40px;height:40px}.widget-application--mobile.widget-application .widget-exit-fullscreen img{width:32px;height:32px}.widget-application--smallMobile.widget-application .widget-exit-fullscreen img{width:26px;height:26px}.widget-application .widget-tab-buttons{position:absolute;z-index:3;right:44px;bottom:35px;display:flex;align-items:center;justify-content:flex-end}.widget-application--tablet.widget-application .widget-tab-buttons{right:20px;bottom:35px}.widget-application--smallMobile.widget-application .widget-tab-buttons{bottom:30px}.widget-application .widget-tab-button{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);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}.widget-application--tablet.widget-application .widget-tab-button{margin-left:20px;width:60px;height:60px;font-size:22px}.widget-application--mobile.widget-application .widget-tab-button{margin-left:10px;font-size:17px;width:44px;height:44px}.widget-application--smallMobile.widget-application .widget-tab-button{width:36px;height:36px;font-size:14px}.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}.widget-application--smallMobile.widget-application .widget-tab{padding:60px 20px}.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:#413e3e;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--mobile.widget-application .widget-instructions__content{width:280px;padding:26px 20px 20px 20px}.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}.widget-application--tablet.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--mobile.widget-application .widget-instructions__step img{width:40px;height:60px}.widget-application--smallMobile.widget-application .widget-instructions__step img{width:35px}.widget-application .widget-instructions__step p{color:#413e3e;font-size:20px;font-weight:bold;text-align:center;margin-top:10px;max-width:130px}.widget-application--tablet.widget-application .widget-instructions__step p{font-size:18px;max-width:115px}.widget-application--mobile.widget-application .widget-instructions__step p{font-size:16px}.widget-application--smallMobile.widget-application .widget-instructions__step p{font-size:14px}.widget-application .widget-instructions button{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);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--tablet.widget-application .widget-instructions button{font-size:18px;height:40px}.widget-application--mobile.widget-application .widget-instructions button{font-size:16px;height:35px}.widget-application--smallMobile.widget-application .widget-instructions button{font-size:14px;height:26px;padding:0 25px}.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-overlay *{display:none !important}.widget-application .widget-tab__panorama-overlay canvas{display:block !important}.widget-application .widget-tab__panorama-controls{position:absolute;z-index:2;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)}.widget-application--mobile.widget-application .widget-tab__panorama-controls{padding:5px}.widget-application--smallMobile.widget-application .widget-tab__panorama-controls{bottom:30px}.widget-application .widget-tab__panorama-controls-button{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer;width:55px;height:55px;border-radius:50%;background-color:#fff;display:flex;align-items:center;justify-content:center;margin-right:18px}.widget-application--tablet.widget-application .widget-tab__panorama-controls-button{width:44px;height:44px}.widget-application--mobile.widget-application .widget-tab__panorama-controls-button{margin-right:10px;width:33px;height:33px}.widget-application--smallMobile.widget-application .widget-tab__panorama-controls-button{width:26px;height:26px}.widget-application .widget-tab__panorama-controls-button img{display:block}.widget-application--tablet.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.7)}.widget-application--mobile.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.52)}.widget-application--smallMobile.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.45)}.widget-application .widget-tab__panorama-controls-button:nth-last-child(1){margin-right:0}.widget-application .widget-tab__panorama-close-map{z-index:4}.widget-application .widget-tab__panorama-map{position:absolute;left:45px;bottom:35px;z-index:3;border-radius:10px;opacity:1;transition:opacity .5s;touch-action:none;-webkit-touch-action:none}.widget-application .widget-tab__panorama-map::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;transform:translate(-50%, -50%);width:calc(100% + 16px);height:calc(100% + 16px);border-radius:inherit;background-color:#fff}.widget-application--tablet.widget-application .widget-tab__panorama-map{left:20px;transform:scale(0.6);transform-origin:0% 100%}.widget-application--mobile.widget-application .widget-tab__panorama-map{transform:scale(0.4)}.widget-application--smallMobile.widget-application .widget-tab__panorama-map{bottom:30px;transform:scale(0.35)}.widget-application--tablet.widget-application .widget-tab__panorama-map--scaled{transform:scale(1.4) translate(-50%, 50%);left:50%;bottom:50%}.widget-application--tablet.widget-application .widget-tab__panorama-map--scaled::after{content:"";position:absolute;z-index:-2;left:50%;top:50%;transform:translate(-50%, -50%);width:100vw;height:100vh;background-color:rgba(196,196,196,.8)}.widget-application--tablet.widget-application .widget-tab__panorama-map--scaled svg polygon:active{opacity:.3 !important}.widget-application--mobile.widget-application .widget-tab__panorama-map--scaled{transform:scale(1) translate(-50%, 50%)}.widget-application .widget-tab__panorama-map--hidden{opacity:0;pointer-events:none}.widget-application .widget-tab__panorama-map img{width:200px;border-radius:none;display:block;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none;-webkit-backface-visibility:hidden;-ms-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0)}.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:200px;height:100%;z-index:3;display:block;border-radius:inherit}.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-left:30px solid rgba(250,198,45,0);border-right:30px solid rgba(250,198,45,0);border-bottom:30px solid rgba(250,198,45,0);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__fov::before{content:"";position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%, -50%) translateY(-5px);width:15px;height:15px;background-color:#fac62d;border-radius:50%;border:2px solid #fac62d;box-shadow:inset 0 0 0 2px #fff}.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:rgba(0,0,0,0);cursor:pointer;position:absolute;left:50%;bottom:35px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;padding:0 25px 0 10px;background-color:#eaeaea;border-radius:38px;height:72px;width:202px}.widget-application--tablet.widget-application .widget-tab__threesixty-start{height:60px;width:166px;padding:0 20px 0 8px;bottom:35px}.widget-application--mobile.widget-application .widget-tab__threesixty-start{height:44px;width:115px;padding:0 10px 0 6px}.widget-application--smallMobile.widget-application .widget-tab__threesixty-start{height:36px;width:85px;padding:0 8px 0 6px;bottom:30px}.widget-application .widget-tab__threesixty-start-icon{display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#fff;margin-right:18px;padding:10px}.widget-application--tablet.widget-application .widget-tab__threesixty-start-icon{padding:7px;margin-right:15px}.widget-application--mobile.widget-application .widget-tab__threesixty-start-icon{margin-right:7px}.widget-application--smallMobile.widget-application .widget-tab__threesixty-start-icon{padding:6px;margin-right:5px}.widget-application .widget-tab__threesixty-start-icon img{display:block;position:relative;top:2px;width:34px}.widget-application--tablet.widget-application .widget-tab__threesixty-start-icon img{width:30px;top:1px}.widget-application--mobile.widget-application .widget-tab__threesixty-start-icon img{width:19px;top:0}.widget-application--smallMobile.widget-application .widget-tab__threesixty-start-icon img{width:15px}.widget-application .widget-tab__threesixty-start span{font-size:24px;font-weight:bold;color:#413e3e;text-transform:uppercase;width:100%;display:block;text-align:center;position:relative;top:1px}.widget-application--tablet.widget-application .widget-tab__threesixty-start span{font-size:20px}.widget-application--mobile.widget-application .widget-tab__threesixty-start span{font-size:14px}.widget-application--smallMobile.widget-application .widget-tab__threesixty-start span{font-size:10px;top:0}.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;pointer-events:none;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-loader{display:block;position:relative;width:80px;height:80px}.widget-application .widget-loader--absolute{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}.widget-application .widget-loader--sm{transform:translate(-50%, -50%) scale(0.75)}.widget-application .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-application .widget-loader div:nth-child(1){left:8px;animation:widget-loader-1 .6s infinite}.widget-application .widget-loader div:nth-child(2){left:8px;animation:widget-loader-2 .6s infinite}.widget-application .widget-loader div:nth-child(3){left:32px;animation:widget-loader-2 .6s infinite}.widget-application .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}.widget-application--mobile.widget-application .widget-tab__model-joystick{left:50%;transform:translateX(-50%)}.widget-application .widget-tab__model-joystick--active{opacity:1;pointer-events:unset}/*# sourceMappingURL=app.css.map */
1
+ .widget-application{width:100%;height:100%;flex:none;overflow:hidden;position:relative;z-index:1;background-color:#fff;font-size:20px}.widget-application *,.widget-application *:before,.widget-application *:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:"Roboto Mono",sans-serif;text-decoration:none;font-weight:700;color:#413e3e;outline:none;padding:0;margin:0;box-sizing:border-box;-webkit-box-sizing:border-box}.widget-application .widget-logo{position:absolute;left:45px;top:30px;z-index:3}.widget-application--tablet.widget-application .widget-logo{left:20px;top:30px}.widget-application--smallMobile.widget-application .widget-logo{top:25px}.widget-application .widget-logo img{display:block;width:82px;height:82px;object-fit:contain;object-position:center}.widget-application--tablet.widget-application .widget-logo img{width:65px;height:65px}.widget-application--mobile.widget-application .widget-logo img{width:42px;height:42px}.widget-application--smallMobile.widget-application .widget-logo img{width:36px;height:36px}.widget-application .widget-tab__panorama-close-map{position:absolute;right:45px;top:36px;z-index:3;padding:10px;touch-action:none;ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer}.widget-application--tablet.widget-application .widget-tab__panorama-close-map{right:17px;top:35px}.widget-application--mobile.widget-application .widget-tab__panorama-close-map{padding:5px;right:20px}.widget-application--smallMobile.widget-application .widget-tab__panorama-close-map{top:25px}.widget-application .widget-tab__panorama-close-map img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}.widget-application--tablet.widget-application .widget-tab__panorama-close-map img{width:40px;height:40px}.widget-application--mobile.widget-application .widget-tab__panorama-close-map img{width:32px;height:32px}.widget-application--smallMobile.widget-application .widget-tab__panorama-close-map img{width:26px;height:26px}.widget-application .widget-enter-fullscreen{position:absolute;right:45px;top:36px;z-index:3;padding:10px;touch-action:none;ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer}.widget-application--tablet.widget-application .widget-enter-fullscreen{right:17px;top:35px}.widget-application--mobile.widget-application .widget-enter-fullscreen{padding:5px;right:20px}.widget-application--smallMobile.widget-application .widget-enter-fullscreen{top:25px}.widget-application .widget-enter-fullscreen img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}.widget-application--tablet.widget-application .widget-enter-fullscreen img{width:40px;height:40px}.widget-application--mobile.widget-application .widget-enter-fullscreen img{width:32px;height:32px}.widget-application--smallMobile.widget-application .widget-enter-fullscreen img{width:26px;height:26px}.widget-application .widget-exit-fullscreen{position:absolute;right:45px;top:36px;z-index:3;padding:10px;touch-action:none;ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer}.widget-application--tablet.widget-application .widget-exit-fullscreen{right:17px;top:35px}.widget-application--mobile.widget-application .widget-exit-fullscreen{padding:5px;right:20px}.widget-application--smallMobile.widget-application .widget-exit-fullscreen{top:25px}.widget-application .widget-exit-fullscreen img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}.widget-application--tablet.widget-application .widget-exit-fullscreen img{width:40px;height:40px}.widget-application--mobile.widget-application .widget-exit-fullscreen img{width:32px;height:32px}.widget-application--smallMobile.widget-application .widget-exit-fullscreen img{width:26px;height:26px}.widget-application .widget-tab-buttons{position:absolute;z-index:3;right:44px;bottom:35px;display:flex;align-items:center;justify-content:flex-end}.widget-application--tablet.widget-application .widget-tab-buttons{right:20px;bottom:35px}.widget-application--smallMobile.widget-application .widget-tab-buttons{bottom:30px}.widget-application .widget-tab-button{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);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}.widget-application--tablet.widget-application .widget-tab-button{margin-left:20px;width:60px;height:60px;font-size:22px}.widget-application--mobile.widget-application .widget-tab-button{margin-left:10px;font-size:17px;width:44px;height:44px}.widget-application--smallMobile.widget-application .widget-tab-button{width:36px;height:36px;font-size:14px}.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}.widget-application--smallMobile.widget-application .widget-tab{padding:60px 20px}.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:#413e3e;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--mobile.widget-application .widget-instructions__content{width:280px;padding:26px 20px 20px 20px}.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}.widget-application--tablet.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--mobile.widget-application .widget-instructions__step img{width:40px;height:60px}.widget-application--smallMobile.widget-application .widget-instructions__step img{width:35px}.widget-application .widget-instructions__step p{color:#413e3e;font-size:20px;font-weight:bold;text-align:center;margin-top:10px;max-width:130px}.widget-application--tablet.widget-application .widget-instructions__step p{font-size:18px;max-width:115px}.widget-application--mobile.widget-application .widget-instructions__step p{font-size:16px}.widget-application--smallMobile.widget-application .widget-instructions__step p{font-size:14px}.widget-application .widget-instructions button{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);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--tablet.widget-application .widget-instructions button{font-size:18px;height:40px}.widget-application--mobile.widget-application .widget-instructions button{font-size:16px;height:35px}.widget-application--smallMobile.widget-application .widget-instructions button{font-size:14px;height:26px;padding:0 25px}.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-overlay *{display:none !important}.widget-application .widget-tab__panorama-overlay canvas{display:block !important}.widget-application .widget-tab__panorama-controls{position:absolute;z-index:2;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)}.widget-application--mobile.widget-application .widget-tab__panorama-controls{padding:5px}.widget-application--smallMobile.widget-application .widget-tab__panorama-controls{bottom:30px}.widget-application .widget-tab__panorama-controls-button{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer;width:55px;height:55px;border-radius:50%;background-color:#fff;display:flex;align-items:center;justify-content:center;margin-right:18px}.widget-application--tablet.widget-application .widget-tab__panorama-controls-button{width:44px;height:44px}.widget-application--mobile.widget-application .widget-tab__panorama-controls-button{margin-right:10px;width:33px;height:33px}.widget-application--smallMobile.widget-application .widget-tab__panorama-controls-button{width:26px;height:26px}.widget-application .widget-tab__panorama-controls-button img{display:block}.widget-application--tablet.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.7)}.widget-application--mobile.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.52)}.widget-application--smallMobile.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.45)}.widget-application .widget-tab__panorama-controls-button:nth-last-child(1){margin-right:0}.widget-application .widget-tab__panorama-close-map{z-index:4}.widget-application .widget-tab__panorama-map{position:absolute;left:45px;bottom:35px;z-index:3;border-radius:10px;opacity:1;transition:opacity .5s;touch-action:none;-webkit-touch-action:none}.widget-application .widget-tab__panorama-map::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;transform:translate(-50%, -50%);width:calc(100% + 16px);height:calc(100% + 16px);border-radius:inherit;background-color:#fff}.widget-application--tablet.widget-application .widget-tab__panorama-map{left:20px;transform:scale(0.6);transform-origin:0% 100%}.widget-application--mobile.widget-application .widget-tab__panorama-map{transform:scale(0.4)}.widget-application--smallMobile.widget-application .widget-tab__panorama-map{bottom:30px;transform:scale(0.35)}.widget-application--tablet.widget-application .widget-tab__panorama-map--scaled{transform:scale(1.4) translate(-50%, 50%);left:50%;bottom:50%}.widget-application--tablet.widget-application .widget-tab__panorama-map--scaled::after{content:"";position:absolute;z-index:-2;left:50%;top:50%;transform:translate(-50%, -50%);width:100vw;height:100vh;background-color:rgba(196,196,196,.8)}.widget-application--tablet.widget-application .widget-tab__panorama-map--scaled svg polygon:active{opacity:.3 !important}.widget-application--mobile.widget-application .widget-tab__panorama-map--scaled{transform:scale(1) translate(-50%, 50%)}.widget-application .widget-tab__panorama-map--hidden{opacity:0;pointer-events:none}.widget-application .widget-tab__panorama-map img{width:200px;border-radius:none;display:block;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none;-webkit-backface-visibility:hidden;-ms-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0)}.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:200px;height:100%;z-index:3;display:block;border-radius:inherit}.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-left:30px solid rgba(250,198,45,0);border-right:30px solid rgba(250,198,45,0);border-bottom:30px solid rgba(250,198,45,0);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__fov::before{content:"";position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%, -50%) translateY(-5px);width:15px;height:15px;background-color:#fac62d;border-radius:50%;border:2px solid #fac62d;box-shadow:inset 0 0 0 2px #fff}.widget-application .widget-tab__rotation{width:100%;height:100%}.widget-application .widget-tab__rotation-start{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer;position:absolute;left:50%;bottom:35px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;padding:0 25px 0 10px;background-color:#eaeaea;border-radius:38px;height:72px;width:202px}.widget-application--tablet.widget-application .widget-tab__rotation-start{height:60px;width:166px;padding:0 20px 0 8px;bottom:35px}.widget-application--mobile.widget-application .widget-tab__rotation-start{height:44px;width:115px;padding:0 10px 0 6px}.widget-application--smallMobile.widget-application .widget-tab__rotation-start{height:36px;width:85px;padding:0 8px 0 6px;bottom:30px}.widget-application .widget-tab__rotation-start-icon{display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#fff;margin-right:18px;padding:10px}.widget-application--tablet.widget-application .widget-tab__rotation-start-icon{padding:7px;margin-right:15px}.widget-application--mobile.widget-application .widget-tab__rotation-start-icon{margin-right:7px}.widget-application--smallMobile.widget-application .widget-tab__rotation-start-icon{padding:6px;margin-right:5px}.widget-application .widget-tab__rotation-start-icon img{display:block;position:relative;top:2px;width:34px}.widget-application--tablet.widget-application .widget-tab__rotation-start-icon img{width:30px;top:1px}.widget-application--mobile.widget-application .widget-tab__rotation-start-icon img{width:19px;top:0}.widget-application--smallMobile.widget-application .widget-tab__rotation-start-icon img{width:15px}.widget-application .widget-tab__rotation-start span{font-size:24px;font-weight:bold;color:#413e3e;text-transform:uppercase;width:100%;display:block;text-align:center;position:relative;top:1px}.widget-application--tablet.widget-application .widget-tab__rotation-start span{font-size:20px}.widget-application--mobile.widget-application .widget-tab__rotation-start span{font-size:14px}.widget-application--smallMobile.widget-application .widget-tab__rotation-start span{font-size:10px;top:0}.widget-application .widget-tab__threesixty,.widget-application .widget-tab__isometry{width:100%;height:100%;touch-action:none;-webkit-touch-action:none}.widget-application .widget-tab__threesixty-container,.widget-application .widget-tab__isometry-container{width:100% !important;height:100% !important;position:relative;background-image:none !important}.widget-application .widget-tab__threesixty-container img,.widget-application .widget-tab__isometry-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;pointer-events:none;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab__threesixty-container img.active,.widget-application .widget-tab__isometry-container img.active{opacity:1}.widget-application .widget-tab__threesixty--active{cursor:move}.widget-application .widget-tab__isometry-arrows{position:absolute;z-index:3;left:50%;bottom:35px;transform:translateX(-50%);height:72px;display:flex;align-items:center;justify-content:center}.widget-application--tablet.widget-application .widget-tab__isometry-arrows{bottom:35px;height:60px}.widget-application--mobile.widget-application .widget-tab__isometry-arrows{height:44px}.widget-application--smallMobile.widget-application .widget-tab__isometry-arrows{bottom:30px;height:36px}.widget-application .widget-tab__isometry-arrows span{font-size:28px;font-weight:bold;display:block;margin:0 9px}.widget-application--tablet.widget-application .widget-tab__isometry-arrows span{font-size:22px}.widget-application--mobile.widget-application .widget-tab__isometry-arrows span{font-size:17px;margin:0 3px}.widget-application--smallMobile.widget-application .widget-tab__isometry-arrows span{font-size:14px;margin:0}.widget-application .widget-tab__isometry-arrow{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:5px}.widget-application .widget-tab__isometry-arrow img{width:32px}.widget-application--tablet.widget-application .widget-tab__isometry-arrow img{width:24px}.widget-application--mobile.widget-application .widget-tab__isometry-arrow img{width:18px}.widget-application--smallMobile.widget-application .widget-tab__isometry-arrow img{width:14px}.widget-application .widget-tab__isometry-buttons{position:absolute;z-index:3;left:44px;bottom:35px;display:flex;align-items:center;justify-content:flex-end}.widget-application--tablet.widget-application .widget-tab__isometry-buttons{left:20px;bottom:35px}.widget-application--smallMobile.widget-application .widget-tab__isometry-buttons{bottom:30px}.widget-application .widget-tab__isometry-button{ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer;width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-color:#eaeaea;margin-top:40px}.widget-application--tablet.widget-application .widget-tab__isometry-button{margin-top:20px;width:60px;height:60px}.widget-application--mobile.widget-application .widget-tab__isometry-button{margin-top:10px;width:44px;height:44px}.widget-application--smallMobile.widget-application .widget-tab__isometry-button{width:36px;height:36px}.widget-application .widget-tab__isometry-button img{display:block;width:50px}.widget-application--tablet.widget-application .widget-tab__isometry-button img{width:40px}.widget-application--mobile.widget-application .widget-tab__isometry-button img{width:30px}.widget-application--smallMobile.widget-application .widget-tab__isometry-button img{width:25px}.widget-application .widget-loader{display:block;position:relative;width:80px;height:80px}.widget-application .widget-loader--absolute{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}.widget-application .widget-loader--sm{transform:translate(-50%, -50%) scale(0.75)}.widget-application .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-application .widget-loader div:nth-child(1){left:8px;animation:widget-loader-1 .6s infinite}.widget-application .widget-loader div:nth-child(2){left:8px;animation:widget-loader-2 .6s infinite}.widget-application .widget-loader div:nth-child(3){left:32px;animation:widget-loader-2 .6s infinite}.widget-application .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}.widget-application--mobile.widget-application .widget-tab__model-joystick{left:50%;transform:translateX(-50%)}.widget-application .widget-tab__model-joystick--active{opacity:1;pointer-events:unset}/*# sourceMappingURL=app.css.map */
@@ -1 +1 @@
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/rotation.sass","../../../src/assets/sass/components/loader.sass","../../../src/assets/sass/components/model.sass"],"names":[],"mappings":"AAGA,oBACE,WACA,YACA,UACA,gBACA,kBACA,UACA,iBCLM,KDMN,eAEA,+EACE,mCACA,kCACA,qCACA,qBACA,gBACA,MCRQ,QDSR,aACA,UACA,SACA,sBACA,8BAEF,iCACE,kBACA,UACA,SACA,UEhBO,4DFkBL,UACA,SEnBK,iEFqBL,SACF,qCACE,cACA,WACA,YACA,mBACA,uBE3BK,gEF6BH,WACA,YE9BG,gEFgCH,WACA,YEjCG,qEFmCH,WACA,YAEN,oDElCA,kBACA,WACA,SACA,UACA,aACA,kBAtBA,YACA,YACA,gBACA,yBACA,eASS,+EAYP,WACA,SAbO,+EAeP,YACA,WAhBO,oFAkBP,SACF,wDACE,cACA,WACA,YACA,mBACA,uBAxBO,mFA0BL,WACA,YA3BK,mFA6BL,WACA,YA9BK,wFAgCL,WACA,YFOJ,6CEpCA,kBACA,WACA,SACA,UACA,aACA,kBAtBA,YACA,YACA,gBACA,yBACA,eASS,wEAYP,WACA,SAbO,wEAeP,YACA,WAhBO,6EAkBP,SACF,iDACE,cACA,WACA,YACA,mBACA,uBAxBO,4EA0BL,WACA,YA3BK,4EA6BL,WACA,YA9BK,iFAgCL,WACA,YFSJ,4CEtCA,kBACA,WACA,SACA,UACA,aACA,kBAtBA,YACA,YACA,gBACA,yBACA,eASS,uEAYP,WACA,SAbO,uEAeP,YACA,WAhBO,4EAkBP,SACF,gDACE,cACA,WACA,YACA,mBACA,uBAxBO,2EA0BL,WACA,YA3BK,2EA6BL,WACA,YA9BK,gFAgCL,WACA,YC3CJ,wCACE,kBACA,UACA,WACA,YACA,aACA,mBACA,yBDGO,mECDL,WACA,oFAEA,YACJ,uCDhBA,YACA,YACA,gBACA,yBACA,eCcE,WACA,YACA,kBACA,aACA,mBACA,uBACA,iBFlBG,QEmBH,MFfQ,QEgBR,eACA,iBACA,iBACA,iBDhBO,kECkBL,iBACA,WACA,YACA,eDrBK,kECuBL,iBACA,eACA,WACA,YD1BK,uEC4BL,WACA,YACA,eACF,+CACE,iBFrCM,QEuCV,gCACE,WACA,YACA,aACA,mBACA,uBACA,kBDxCO,gEC0CL,kBACF,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,MFvEE,QEwEF,iBF1EE,QE2EF,iBACA,mBACA,gBACA,YACA,eACA,mBACA,YF5ER,iBACA,yBACA,eACA,uBE2EQ,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,2BCpHZ,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,kCAIS,6EEiBH,YACA,4BACJ,gDACE,aACA,uBACA,uBACF,+CACE,aACA,sBACA,mBACA,2BACA,cF5BK,0EE8BH,cACF,mDACE,cACA,WACA,YACA,mBACA,uBFpCG,8EEsCD,WACA,YFvCC,mFEyCD,WACJ,iDACE,MH9CI,QG+CJ,eACA,iBACA,kBACA,gBACA,gBFhDG,4EEkDD,eACA,gBFnDC,4EEqDD,eFrDC,iFEuDD,eACN,gDFrEF,YACA,YACA,gBACA,yBACA,eEmEI,aACA,mBACA,uBACA,YACA,eACA,mBACA,iBHrEM,QGsEN,MHpEM,QGqEN,eACA,iBACA,yBACA,wBFrEK,2EEuEH,eACA,YFxEG,2EE0EH,eACA,YF3EG,gFE6EH,eACA,YACA,eCxFJ,0CACE,WACA,YACA,kBACA,OACA,MACA,UACA,kDACE,WACA,YACA,gBACA,2BACA,oDACE,wBACF,yDACE,yBACJ,mDACE,kBACA,UACA,SACA,YACA,aACA,mBACA,uBACA,YACA,mBACA,gCACA,2BHxBN,0BACA,+BACA,kCAIS,8EGqBD,YHrBC,mFGuBD,YACF,0DHrCN,YACA,YACA,gBACA,yBACA,eGmCQ,WACA,YACA,kBACA,iBJtCF,KIuCE,aACA,mBACA,uBACA,kBHjCC,qFGmCC,WACA,YHpCD,qFGsCC,kBACA,WACA,YHxCD,0FG0CC,WACA,YACF,8DACE,cH7CD,yFG+CG,qBH/CH,yFGiDG,sBHjDH,8FGmDG,sBACJ,4EACE,eACN,oDACE,UACF,8CACE,kBACA,UACA,YACA,UACA,mBACA,UACA,uBJzDN,kBACA,0BI0DM,sDACE,WACA,kBACA,WACA,SACA,QACA,gCACA,wBACA,yBACA,sBACA,iBJpFF,KCSG,yEG6ED,UACA,qBACA,yBH/EC,yEGiFD,qBHjFC,8EGmFD,YACA,sBHpFC,iFGuFC,0CACA,SACA,WACA,wFACE,WACA,kBACA,WACA,SACA,QACA,gCACA,YACA,aACA,sCAGE,oGACE,sBHvGP,iFGyGC,wCACJ,sDACE,UACA,oBACF,kDACE,YACA,mBACA,cJhHR,iBACA,yBACA,eACA,uBAOA,mCACA,4BACA,gCACA,wBIsGQ,wDACE,wCACJ,kDACE,kBACA,OACA,MACA,YACA,YACA,UACA,cACA,sBACA,0DACE,UACA,KJrIA,QIsIA,eACA,gEACE,WACN,mDACE,kBACA,OACA,MACA,UACA,WACA,kBACA,0CACA,2CACA,4CACA,0CACA,6CACA,yBACA,UACA,oBACA,2DACE,WACA,kBACA,UACA,SACA,QACA,iDACA,WACA,YACA,iBJjKA,QIkKA,kBACA,yBACA,gCCxKR,4CACE,WACA,YLaJ,kBACA,0BKZI,kDJRJ,YACA,YACA,gBACA,yBACA,eIMM,kBACA,SACA,YACA,2BACA,aACA,mBACA,uBACA,sBACA,iBLZD,QKaC,mBACA,YACA,YJRG,6EIUD,YACA,YACA,qBACA,YJbC,6EIeD,YACA,YACA,qBJjBC,kFImBD,YACA,WACA,oBACA,YACF,uDACE,aACA,mBACA,uBACA,kBACA,iBLrCF,KKsCE,kBACA,aJ9BC,kFIgCC,YACA,kBJjCD,kFImCC,iBJnCD,uFIqCC,YACA,iBACF,2DACE,cACA,kBACA,QACA,WJ3CD,sFI6CG,WACA,QJ9CH,sFIgDG,WACA,MJjDH,2FImDG,WACN,uDACE,eACA,iBACA,ML1DE,QK2DF,yBACA,WACA,cACA,kBACA,kBACA,QJ7DC,kFI+DC,eJ/DD,kFIiEC,eJjED,uFImEC,eACA,MACN,sDACE,sBACA,uBACA,kBACA,iCACA,0DACE,kBACA,SACA,QACA,gCACA,eACA,gBACA,YACA,aACA,mBACA,UACA,oBLrFR,iBACA,yBACA,eACA,uBKoFQ,iEACE,UAEJ,sFACE,YCtGR,mCACE,cACA,kBACA,WACA,YACA,6CACE,kBACA,SACA,QACA,gCACF,uCACE,4CACF,uCACE,kBACA,SACA,WACA,YACA,kBACA,WNZM,QMaN,mDACA,oDACE,SACA,uCACF,oDACE,SACA,uCACF,oDACE,UACA,uCACF,oDACE,UACA,uCAER,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,0BAEF,KACE,8BCjDA,uCACE,WACA,YACA,kBACA,OACA,MACA,UACA,6CACE,WACA,YACA,cACF,gDACE,kBACA,WACA,aACA,UACA,oBNNG,2EMQD,SACA,2BACF,wDACE,UACA","file":"app.css"}
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/rotation.sass","../../../src/assets/sass/components/loader.sass","../../../src/assets/sass/components/model.sass"],"names":[],"mappings":"AAGA,oBACE,WACA,YACA,UACA,gBACA,kBACA,UACA,iBCLM,KDMN,eAEA,+EACE,mCACA,kCACA,qCACA,qBACA,gBACA,MCRQ,QDSR,aACA,UACA,SACA,sBACA,8BAEF,iCACE,kBACA,UACA,SACA,UEhBO,4DFkBL,UACA,SEnBK,iEFqBL,SACF,qCACE,cACA,WACA,YACA,mBACA,uBE3BK,gEF6BH,WACA,YE9BG,gEFgCH,WACA,YEjCG,qEFmCH,WACA,YAEN,oDElCA,kBACA,WACA,SACA,UACA,aACA,kBAtBA,YACA,YACA,gBACA,yBACA,eASS,+EAYP,WACA,SAbO,+EAeP,YACA,WAhBO,oFAkBP,SACF,wDACE,cACA,WACA,YACA,mBACA,uBAxBO,mFA0BL,WACA,YA3BK,mFA6BL,WACA,YA9BK,wFAgCL,WACA,YFOJ,6CEpCA,kBACA,WACA,SACA,UACA,aACA,kBAtBA,YACA,YACA,gBACA,yBACA,eASS,wEAYP,WACA,SAbO,wEAeP,YACA,WAhBO,6EAkBP,SACF,iDACE,cACA,WACA,YACA,mBACA,uBAxBO,4EA0BL,WACA,YA3BK,4EA6BL,WACA,YA9BK,iFAgCL,WACA,YFSJ,4CEtCA,kBACA,WACA,SACA,UACA,aACA,kBAtBA,YACA,YACA,gBACA,yBACA,eASS,uEAYP,WACA,SAbO,uEAeP,YACA,WAhBO,4EAkBP,SACF,gDACE,cACA,WACA,YACA,mBACA,uBAxBO,2EA0BL,WACA,YA3BK,2EA6BL,WACA,YA9BK,gFAgCL,WACA,YC3CJ,wCACE,kBACA,UACA,WACA,YACA,aACA,mBACA,yBDGO,mECDL,WACA,oFAEA,YACJ,uCDhBA,YACA,YACA,gBACA,yBACA,eCcE,WACA,YACA,kBACA,aACA,mBACA,uBACA,iBFlBG,QEmBH,MFfQ,QEgBR,eACA,iBACA,iBACA,iBDhBO,kECkBL,iBACA,WACA,YACA,eDrBK,kECuBL,iBACA,eACA,WACA,YD1BK,uEC4BL,WACA,YACA,eACF,+CACE,iBFrCM,QEuCV,gCACE,WACA,YACA,aACA,mBACA,uBACA,kBDxCO,gEC0CL,kBACF,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,MFvEE,QEwEF,iBF1EE,QE2EF,iBACA,mBACA,gBACA,YACA,eACA,mBACA,YF5ER,iBACA,yBACA,eACA,uBE2EQ,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,2BCpHZ,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,kCAIS,6EEiBH,YACA,4BACJ,gDACE,aACA,uBACA,uBACF,+CACE,aACA,sBACA,mBACA,2BACA,cF5BK,0EE8BH,cACF,mDACE,cACA,WACA,YACA,mBACA,uBFpCG,8EEsCD,WACA,YFvCC,mFEyCD,WACJ,iDACE,MH9CI,QG+CJ,eACA,iBACA,kBACA,gBACA,gBFhDG,4EEkDD,eACA,gBFnDC,4EEqDD,eFrDC,iFEuDD,eACN,gDFrEF,YACA,YACA,gBACA,yBACA,eEmEI,aACA,mBACA,uBACA,YACA,eACA,mBACA,iBHrEM,QGsEN,MHpEM,QGqEN,eACA,iBACA,yBACA,wBFrEK,2EEuEH,eACA,YFxEG,2EE0EH,eACA,YF3EG,gFE6EH,eACA,YACA,eCxFJ,0CACE,WACA,YACA,kBACA,OACA,MACA,UACA,kDACE,WACA,YACA,gBACA,2BACA,oDACE,wBACF,yDACE,yBACJ,mDACE,kBACA,UACA,SACA,YACA,aACA,mBACA,uBACA,YACA,mBACA,gCACA,2BHxBN,0BACA,+BACA,kCAIS,8EGqBD,YHrBC,mFGuBD,YACF,0DHrCN,YACA,YACA,gBACA,yBACA,eGmCQ,WACA,YACA,kBACA,iBJtCF,KIuCE,aACA,mBACA,uBACA,kBHjCC,qFGmCC,WACA,YHpCD,qFGsCC,kBACA,WACA,YHxCD,0FG0CC,WACA,YACF,8DACE,cH7CD,yFG+CG,qBH/CH,yFGiDG,sBHjDH,8FGmDG,sBACJ,4EACE,eACN,oDACE,UACF,8CACE,kBACA,UACA,YACA,UACA,mBACA,UACA,uBJzDN,kBACA,0BI0DM,sDACE,WACA,kBACA,WACA,SACA,QACA,gCACA,wBACA,yBACA,sBACA,iBJpFF,KCSG,yEG6ED,UACA,qBACA,yBH/EC,yEGiFD,qBHjFC,8EGmFD,YACA,sBHpFC,iFGuFC,0CACA,SACA,WACA,wFACE,WACA,kBACA,WACA,SACA,QACA,gCACA,YACA,aACA,sCAGE,oGACE,sBHvGP,iFGyGC,wCACJ,sDACE,UACA,oBACF,kDACE,YACA,mBACA,cJhHR,iBACA,yBACA,eACA,uBAOA,mCACA,4BACA,gCACA,wBIsGQ,wDACE,wCACJ,kDACE,kBACA,OACA,MACA,YACA,YACA,UACA,cACA,sBACA,0DACE,UACA,KJrIA,QIsIA,eACA,gEACE,WACN,mDACE,kBACA,OACA,MACA,UACA,WACA,kBACA,0CACA,2CACA,4CACA,0CACA,6CACA,yBACA,UACA,oBACA,2DACE,WACA,kBACA,UACA,SACA,QACA,iDACA,WACA,YACA,iBJjKA,QIkKA,kBACA,yBACA,gCCxKR,0CACE,WACA,YACA,gDJPJ,YACA,YACA,gBACA,yBACA,eIKM,kBACA,SACA,YACA,2BACA,aACA,mBACA,uBACA,sBACA,iBLXD,QKYC,mBACA,YACA,YJPG,2EISD,YACA,YACA,qBACA,YJZC,2EIcD,YACA,YACA,qBJhBC,gFIkBD,YACA,WACA,oBACA,YACF,qDACE,aACA,mBACA,uBACA,kBACA,iBLpCF,KKqCE,kBACA,aJ7BC,gFI+BC,YACA,kBJhCD,gFIkCC,iBJlCD,qFIoCC,YACA,iBACF,yDACE,cACA,kBACA,QACA,WJ1CD,oFI4CG,WACA,QJ7CH,oFI+CG,WACA,MJhDH,yFIkDG,WACN,qDACE,eACA,iBACA,MLzDE,QK0DF,yBACA,WACA,cACA,kBACA,kBACA,QJ5DC,gFI8DC,eJ9DD,gFIgEC,eJhED,qFIkEC,eACA,MAER,sFAEE,WACA,YLlEJ,kBACA,0BKmEI,0GACE,sBACA,uBACA,kBACA,iCACA,kHACE,kBACA,SACA,QACA,gCACA,eACA,gBACA,YACA,aACA,mBACA,UACA,oBL1FR,iBACA,yBACA,eACA,uBKyFQ,gIACE,UAGN,oDACE,YAGF,iDACE,kBACA,UACA,SACA,YACA,2BACA,YACA,aACA,mBACA,uBJ7GG,4EI+GD,YACA,YJhHC,4EIkHD,YJlHC,iFIoHD,YACA,YACF,sDACE,eACA,iBACA,cACA,aJ1HC,iFI4HC,eJ5HD,iFI8HC,eACA,aJ/HD,sFIiIC,eACA,SACN,gDJhJJ,YACA,YACA,gBACA,yBACA,eI8IM,aACA,mBACA,uBACA,YACA,oDACE,WJ1IC,+EI4IC,WJ5ID,+EI8IC,WJ9ID,oFIgJC,WACN,kDACE,kBACA,UACA,UACA,YACA,aACA,mBACA,yBJxJG,6EI0JD,UACA,YJ3JC,kFI6JD,YACJ,iDJ3KJ,YACA,YACA,gBACA,yBACA,eIyKM,WACA,YACA,kBACA,aACA,mBACA,uBACA,iBL7KD,QK8KC,gBJvKG,4EIyKD,gBACA,WACA,YJ3KC,4EI6KD,gBACA,WACA,YJ/KC,iFIiLD,WACA,YACF,qDACE,cACA,WJrLC,gFIuLC,WJvLD,gFIyLC,WJzLD,qFI2LC,WCtMV,mCACE,cACA,kBACA,WACA,YACA,6CACE,kBACA,SACA,QACA,gCACF,uCACE,4CACF,uCACE,kBACA,SACA,WACA,YACA,kBACA,WNZM,QMaN,mDACA,oDACE,SACA,uCACF,oDACE,SACA,uCACF,oDACE,UACA,uCACF,oDACE,UACA,uCAER,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,0BAEF,KACE,8BCjDA,uCACE,WACA,YACA,kBACA,OACA,MACA,UACA,6CACE,WACA,YACA,cACF,gDACE,kBACA,WACA,aACA,UACA,oBNNG,2EMQD,SACA,2BACF,wDACE,UACA","file":"app.css"}
@@ -0,0 +1,4 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M27 16H5" stroke="#413E3E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M14 7L5 16L14 25" stroke="#413E3E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M5 16H27" stroke="#413E3E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M18 7L27 16L18 25" stroke="#413E3E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="50" height="49" viewBox="0 0 50 49" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M38.9972 38.8994H11.0036C10.7827 38.8994 10.6036 38.7203 10.6036 38.4994L10.6035 10.9989C10.6035 10.778 10.7826 10.5989 11.0035 10.5989H38.9972C39.2181 10.5989 39.3972 10.778 39.3972 10.9989V38.4994C39.3972 38.7203 39.2181 38.8994 38.9972 38.8994Z" stroke="#413E3E" stroke-width="3.15271"/>
3
+ <path d="M12.1699 19.1946H24.1341C24.3551 19.1946 24.5341 19.3737 24.5341 19.5946V37.3214" stroke="#413E3E" stroke-width="2"/>
4
+ <path d="M37.8206 20.5945H30.984C30.7631 20.5945 30.584 20.4154 30.584 20.1945V12.1687" stroke="#413E3E" stroke-width="2"/>
5
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.16992 35.8557L24.837 43.177L41.8497 35.8557" stroke="#413E3E" stroke-width="3.15271" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M26.3301 43.1946L8.83008 35.6946L25.8301 28.1946L42.8301 35.6946L26.3301 43.1946Z" fill="#C4C4C4"/>
4
+ <path d="M7.16992 35.8196V13.8557L24.837 6.53442L41.8497 13.8557V35.8196" stroke="#413E3E" stroke-width="3.15271" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M24.8359 6.69458V28.1585" stroke="#413E3E" stroke-width="3.15271" stroke-linecap="round" stroke-linejoin="round"/>
6
+ <path d="M7.16992 36.5159L24.837 29.1946L41.8497 36.5159L24.837 43.8372L7.16992 36.5159Z" stroke="#413E3E" stroke-width="3.15271" stroke-linecap="round" stroke-linejoin="round"/>
7
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M25.5147 39L7.5 31.5L16.25 27.75L20.625 25.875L25 27.75L29.375 25.875L33.75 27.75L42.5 31.5L25.5147 39Z" fill="#C4C4C4"/>
3
+ <path d="M30.1509 25.125L34.934 27.25L44.5 31.5L25.3679 40L5.5 31.5L15.434 27.25L20.4009 25.125" stroke="#413E3E" stroke-width="3.15271" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M5.5 18.5L25.3679 10L44.5 18.5L25.3679 27L5.5 18.5Z" stroke="#413E3E" stroke-width="3.15271" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -3,10 +3,9 @@
3
3
 
4
4
  .widget-application
5
5
  .widget-tab
6
- &__threesixty
6
+ &__rotation
7
7
  width: 100%
8
8
  height: 100%
9
- @include noTouch
10
9
  &-start
11
10
  @include customButton
12
11
  position: absolute
@@ -81,6 +80,12 @@
81
80
  @include media($smallMobile)
82
81
  font-size: 10px
83
82
  top: 0
83
+
84
+ &__threesixty,
85
+ &__isometry
86
+ width: 100%
87
+ height: 100%
88
+ @include noTouch
84
89
  &-container
85
90
  width: 100% !important
86
91
  height: 100% !important
@@ -101,6 +106,97 @@
101
106
  @include noSelect
102
107
  &.active
103
108
  opacity: 1
109
+
110
+ &__threesixty
104
111
  &--active
105
- .widget-tab__threesixty-container
106
- cursor: move
112
+ cursor: move
113
+
114
+ &__isometry
115
+ &-arrows
116
+ position: absolute
117
+ z-index: 3
118
+ left: 50%
119
+ bottom: 35px
120
+ transform: translateX(-50%)
121
+ height: 72px
122
+ display: flex
123
+ align-items: center
124
+ justify-content: center
125
+ @include media($tablet)
126
+ bottom: 35px
127
+ height: 60px
128
+ @include media($mobile)
129
+ height: 44px
130
+ @include media($smallMobile)
131
+ bottom: 30px
132
+ height: 36px
133
+ span
134
+ font-size: 28px
135
+ font-weight: bold
136
+ display: block
137
+ margin: 0 9px
138
+ @include media($tablet)
139
+ font-size: 22px
140
+ @include media($mobile)
141
+ font-size: 17px
142
+ margin: 0 3px
143
+ @include media($smallMobile)
144
+ font-size: 14px
145
+ margin: 0
146
+ &-arrow
147
+ @include customButton
148
+ display: flex
149
+ align-items: center
150
+ justify-content: center
151
+ padding: 5px
152
+ img
153
+ width: 32px
154
+ @include media($tablet)
155
+ width: 24px
156
+ @include media($mobile)
157
+ width: 18px
158
+ @include media($smallMobile)
159
+ width: 14px
160
+ &-buttons
161
+ position: absolute
162
+ z-index: 3
163
+ left: 44px
164
+ bottom: 35px
165
+ display: flex
166
+ align-items: center
167
+ justify-content: flex-end
168
+ @include media($tablet)
169
+ left: 20px
170
+ bottom: 35px
171
+ @include media($smallMobile)
172
+ bottom: 30px
173
+ &-button
174
+ @include customButton
175
+ width: 72px
176
+ height: 72px
177
+ border-radius: 50%
178
+ display: flex
179
+ align-items: center
180
+ justify-content: center
181
+ background-color: $gray
182
+ margin-top: 40px
183
+ @include media($tablet)
184
+ margin-top: 20px
185
+ width: 60px
186
+ height: 60px
187
+ @include media($mobile)
188
+ margin-top: 10px
189
+ width: 44px
190
+ height: 44px
191
+ @include media($smallMobile)
192
+ width: 36px
193
+ height: 36px
194
+ img
195
+ display: block
196
+ width: 50px
197
+ @include media($tablet)
198
+ width: 40px
199
+ @include media($mobile)
200
+ width: 30px
201
+ @include media($smallMobile)
202
+ width: 25px
@@ -59,18 +59,21 @@ var Application = (0, _mobxReactLite.observer)(function () {
59
59
 
60
60
  var tabsList = {
61
61
  'rotation': /*#__PURE__*/_react.default.createElement(_RotationTab.default, {
62
+ disabled: !config.rotationImages[0],
63
+ topViewImage: config.topViewImage,
62
64
  images: config.rotationImages,
63
- disabled: !config.rotationImages[0]
65
+ planImage: config.planImage,
66
+ mode: config.rotationMode
64
67
  }),
65
68
  'panorama': /*#__PURE__*/_react.default.createElement(_PanoramaTab.default, {
66
- json: config.json,
67
- planImage: config.planImage,
69
+ disabled: !config.panoramaImages.length,
68
70
  images: config.panoramaImages,
69
- disabled: !config.panoramaImages.length
71
+ planImage: config.planImage,
72
+ json: config.json
70
73
  }),
71
74
  'model': /*#__PURE__*/_react.default.createElement(_ModelTab.default, {
72
- json: config.json,
73
- disabled: !config.json
75
+ disabled: !config.json,
76
+ json: config.json
74
77
  })
75
78
  };
76
79
  var tabButtons = [{
@@ -0,0 +1,124 @@
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 _surface = _interopRequireDefault(require("../../assets/icons/surface.svg"));
11
+
12
+ var _render = _interopRequireDefault(require("../../assets/icons/render.svg"));
13
+
14
+ var _plan = _interopRequireDefault(require("../../assets/icons/plan.svg"));
15
+
16
+ var _arrowRight = _interopRequireDefault(require("../../assets/icons/arrow-right.svg"));
17
+
18
+ var _arrowLeft = _interopRequireDefault(require("../../assets/icons/arrow-left.svg"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ var DefaultView = function DefaultView(_ref) {
23
+ var topViewImage = _ref.topViewImage,
24
+ activeIndex = _ref.activeIndex,
25
+ currentStep = _ref.currentStep,
26
+ planImage = _ref.planImage,
27
+ images = _ref.images,
28
+ steps = _ref.steps,
29
+ setCurrentStep = _ref.setCurrentStep,
30
+ setActiveIndex = _ref.setActiveIndex;
31
+
32
+ var getCurrentButtonIcon = function getCurrentButtonIcon() {
33
+ switch (getNextStep()) {
34
+ case 'carousel':
35
+ return _render.default;
36
+
37
+ case 'plan':
38
+ return _surface.default;
39
+
40
+ case 'topView':
41
+ return _plan.default;
42
+
43
+ default:
44
+ return _plan.default;
45
+ }
46
+ };
47
+
48
+ var getNextStep = function getNextStep() {
49
+ var currentStepIndex = steps.findIndex(function (step) {
50
+ return step === currentStep;
51
+ });
52
+ return steps[currentStepIndex + 1] || steps[0];
53
+ };
54
+
55
+ var onNextArrowClick = function onNextArrowClick() {
56
+ var index = activeIndex + 1;
57
+
58
+ if (!images[index]) {
59
+ setActiveIndex(0);
60
+ return;
61
+ }
62
+
63
+ setActiveIndex(index);
64
+ };
65
+
66
+ var onPrevArrowClick = function onPrevArrowClick() {
67
+ var index = activeIndex - 1;
68
+
69
+ if (!images[index]) {
70
+ setActiveIndex(images.length - 1);
71
+ return;
72
+ }
73
+
74
+ setActiveIndex(index);
75
+ };
76
+
77
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
78
+ className: "widget-tab__isometry"
79
+ }, /*#__PURE__*/_react.default.createElement("div", {
80
+ className: "widget-tab__isometry-container"
81
+ }, /*#__PURE__*/_react.default.createElement("img", {
82
+ className: "widget-tab__isometry--plan ".concat(currentStep === 'plan' ? 'active' : ''),
83
+ src: planImage,
84
+ alt: "plan-view"
85
+ }), /*#__PURE__*/_react.default.createElement("img", {
86
+ className: "widget-tab__isometry--top-view ".concat(currentStep === 'topView' ? 'active' : ''),
87
+ src: topViewImage,
88
+ alt: "top-view"
89
+ }), images.map(function (img, index) {
90
+ return /*#__PURE__*/_react.default.createElement("img", {
91
+ className: currentStep === 'carousel' && activeIndex === index ? 'active' : '',
92
+ alt: "rotation-view-".concat(index),
93
+ key: index,
94
+ src: img
95
+ });
96
+ }))), currentStep === 'carousel' && /*#__PURE__*/_react.default.createElement("div", {
97
+ className: "widget-tab__isometry-arrows"
98
+ }, /*#__PURE__*/_react.default.createElement("button", {
99
+ className: "widget-tab__isometry-arrow widget-tab__isometry-arrow--prev",
100
+ onClick: onPrevArrowClick
101
+ }, /*#__PURE__*/_react.default.createElement("img", {
102
+ src: _arrowLeft.default,
103
+ alt: "arrow-left"
104
+ })), /*#__PURE__*/_react.default.createElement("span", null, activeIndex + 1, "/", images.length), /*#__PURE__*/_react.default.createElement("button", {
105
+ className: "widget-tab__isometry-arrow widget-tab__isometry-arrow--next",
106
+ onClick: onNextArrowClick
107
+ }, /*#__PURE__*/_react.default.createElement("img", {
108
+ src: _arrowRight.default,
109
+ alt: "arrow-right"
110
+ }))), /*#__PURE__*/_react.default.createElement("div", {
111
+ className: "widget-tab__isometry-buttons"
112
+ }, steps.length > 1 && /*#__PURE__*/_react.default.createElement("button", {
113
+ className: "widget-tab__isometry-button",
114
+ onClick: function onClick() {
115
+ return setCurrentStep(getNextStep());
116
+ }
117
+ }, /*#__PURE__*/_react.default.createElement("img", {
118
+ src: getCurrentButtonIcon(),
119
+ alt: "".concat(currentStep, "-icon")
120
+ }))));
121
+ };
122
+
123
+ var _default = DefaultView;
124
+ exports.default = _default;
@@ -0,0 +1,45 @@
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 _locale = _interopRequireDefault(require("../../locale"));
11
+
12
+ var _rotation = _interopRequireDefault(require("../../assets/icons/rotation.svg"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ var ThreesixtyView = function ThreesixtyView(_ref) {
17
+ var initialized = _ref.initialized,
18
+ showInstructions = _ref.showInstructions,
19
+ images = _ref.images,
20
+ activeIndex = _ref.activeIndex,
21
+ openInstructions = _ref.openInstructions;
22
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
23
+ className: "widget-tab__threesixty ".concat(initialized ? 'widget-tab__threesixty--active' : '')
24
+ }, /*#__PURE__*/_react.default.createElement("div", {
25
+ className: "widget-tab__threesixty-container"
26
+ }, images.map(function (img, index) {
27
+ return /*#__PURE__*/_react.default.createElement("img", {
28
+ className: activeIndex === index ? 'active' : '',
29
+ alt: "rotation-view-".concat(index),
30
+ key: index,
31
+ src: img
32
+ });
33
+ }))), !initialized && !showInstructions && /*#__PURE__*/_react.default.createElement("button", {
34
+ className: "widget-tab__rotation-start",
35
+ onClick: openInstructions
36
+ }, /*#__PURE__*/_react.default.createElement("div", {
37
+ className: "widget-tab__rotation-start-icon"
38
+ }, /*#__PURE__*/_react.default.createElement("img", {
39
+ src: _rotation.default,
40
+ alt: "start-icon"
41
+ })), /*#__PURE__*/_react.default.createElement("span", null, _locale.default.getLocaleText('rotate'))));
42
+ };
43
+
44
+ var _default = ThreesixtyView;
45
+ exports.default = _default;
@@ -11,17 +11,21 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _panzoom = _interopRequireDefault(require("panzoom"));
13
13
 
14
- var _threesixty = _interopRequireDefault(require("../threesixty"));
14
+ var _threesixty = _interopRequireDefault(require("../../threesixty"));
15
15
 
16
- var _helpers = require("../utils/helpers");
16
+ var _rotationModes = require("../../enums/rotationModes");
17
17
 
18
- var _locale = _interopRequireDefault(require("../locale"));
18
+ var _helpers = require("../../utils/helpers");
19
19
 
20
- var _Instructions = _interopRequireDefault(require("./Instructions"));
20
+ var _locale = _interopRequireDefault(require("../../locale"));
21
21
 
22
- var _handMove = _interopRequireDefault(require("../assets/icons/hand-move.svg"));
22
+ var _ThreesixtyView = _interopRequireDefault(require("./ThreesixtyView"));
23
23
 
24
- var _rotation = _interopRequireDefault(require("../assets/icons/rotation.svg"));
24
+ var _Instructions = _interopRequireDefault(require("../Instructions"));
25
+
26
+ var _DefaultView = _interopRequireDefault(require("./DefaultView"));
27
+
28
+ var _handMove = _interopRequireDefault(require("../../assets/icons/hand-move.svg"));
25
29
 
26
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
31
 
@@ -50,9 +54,21 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
50
54
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
51
55
 
52
56
  var RotationTab = function RotationTab(_ref) {
53
- var images = _ref.images,
57
+ var planImage = _ref.planImage,
58
+ topViewImage = _ref.topViewImage,
59
+ images = _ref.images,
60
+ mode = _ref.mode,
54
61
  _ref$disabled = _ref.disabled,
55
62
  disabled = _ref$disabled === void 0 ? false : _ref$disabled;
63
+
64
+ var getSteps = function getSteps() {
65
+ var availableSteps = [];
66
+ if (images && images.length > 0) availableSteps.push('carousel');
67
+ if (planImage) availableSteps.push('plan');
68
+ if (topViewImage) availableSteps.push('topView');
69
+ return availableSteps;
70
+ };
71
+
56
72
  var instructionSteps = [{
57
73
  icon: _handMove.default,
58
74
  text: _locale.default.getLocaleText('rotate-plan')
@@ -68,25 +84,43 @@ var RotationTab = function RotationTab(_ref) {
68
84
  initialized = _useState4[0],
69
85
  setInitState = _useState4[1];
70
86
 
71
- var _useState5 = (0, _react.useState)(0),
87
+ var _useState5 = (0, _react.useState)(null),
72
88
  _useState6 = _slicedToArray(_useState5, 2),
73
- activeIndex = _useState6[0],
74
- setActiveIndex = _useState6[1];
89
+ controller = _useState6[0],
90
+ setController = _useState6[1];
75
91
 
76
- var _useState7 = (0, _react.useState)(null),
92
+ var _useState7 = (0, _react.useState)(0),
77
93
  _useState8 = _slicedToArray(_useState7, 2),
78
- rotation = _useState8[0],
79
- setRotation = _useState8[1];
94
+ activeIndex = _useState8[0],
95
+ setActiveIndex = _useState8[1];
80
96
 
81
- var updateRotation = function updateRotation() {
82
- setActiveIndex(this.index);
97
+ var _useState9 = (0, _react.useState)(null),
98
+ _useState10 = _slicedToArray(_useState9, 2),
99
+ rotation = _useState10[0],
100
+ setRotation = _useState10[1];
101
+
102
+ var _useState11 = (0, _react.useState)(getSteps()),
103
+ _useState12 = _slicedToArray(_useState11, 1),
104
+ steps = _useState12[0];
105
+
106
+ var _useState13 = (0, _react.useState)(steps[0]),
107
+ _useState14 = _slicedToArray(_useState13, 2),
108
+ currentStep = _useState14[0],
109
+ setCurrentStep = _useState14[1];
110
+
111
+ var openInstructions = function openInstructions() {
112
+ return setInstructionsState(true);
83
113
  };
84
114
 
85
- var onStart = function onStart() {
115
+ function updateRotation() {
116
+ setActiveIndex(this.index);
117
+ }
118
+
119
+ var createThreesixty = function createThreesixty() {
86
120
  setInstructionsState(false);
87
121
  setInitState(true);
88
122
  var container = document.querySelector('.widget-tab__threesixty-container');
89
- var widgetTab = document.querySelector('.widget-tab');
123
+ var widgetTab = document.querySelector('.widget-tab__rotation');
90
124
  var newRotation = new _threesixty.default(container, {
91
125
  image: _toConsumableArray(images),
92
126
  parentElement: widgetTab,
@@ -95,56 +129,57 @@ var RotationTab = function RotationTab(_ref) {
95
129
  });
96
130
  newRotation._update = updateRotation;
97
131
  newRotation.play(true);
98
- var lastIndex = 0;
99
- var controller = (0, _panzoom.default)(container, {
100
- maxZoom: 3,
101
- minZoom: 0.5,
102
- beforeMouseDown: function beforeMouseDown(event) {
103
- return !event.shiftKey;
104
- }
105
- });
106
- newRotation.controller = controller;
107
132
  controller.on('panstart', function () {
108
- lastIndex = newRotation.index;
109
133
  newRotation.stop();
110
134
 
111
135
  newRotation._update = function () {};
112
136
  });
113
137
  controller.on('panend', function () {
114
- newRotation.goto(lastIndex);
138
+ newRotation.goto(newRotation.index);
115
139
  newRotation._update = updateRotation;
116
140
  });
117
141
  setRotation(newRotation);
118
142
  };
119
143
 
120
- var openInstructions = function openInstructions() {
121
- return setInstructionsState(true);
122
- };
123
-
124
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
125
- className: "widget-tab__threesixty ".concat(initialized ? 'widget-tab__threesixty--active' : '')
126
- }, /*#__PURE__*/_react.default.createElement("div", {
127
- className: "widget-tab__threesixty-container",
128
- onContextMenu: _helpers.preventRightClick
129
- }, images.map(function (img, index) {
130
- return /*#__PURE__*/_react.default.createElement("img", {
131
- src: img,
132
- key: index,
133
- alt: "rotation-view-".concat(index),
134
- className: activeIndex === index ? 'active' : ''
144
+ (0, _react.useEffect)(function () {
145
+ var threesixtyContainer = document.querySelector('.widget-tab__threesixty-container');
146
+ var defaultContainer = document.querySelector('.widget-tab__isometry-container');
147
+ var container = mode === _rotationModes.rotationModes.THREESIXTY ? threesixtyContainer : defaultContainer;
148
+ var controller = (0, _panzoom.default)(container, {
149
+ beforeMouseDown: function beforeMouseDown(event) {
150
+ return !event.shiftKey;
151
+ },
152
+ onDoubleClick: function onDoubleClick(e) {
153
+ console.log(e);
154
+ return true;
155
+ },
156
+ minZoom: 0.5,
157
+ maxZoom: 3
135
158
  });
136
- }))), !initialized && !showInstructions && /*#__PURE__*/_react.default.createElement("button", {
137
- className: "widget-tab__threesixty-start",
138
- onClick: openInstructions
139
- }, /*#__PURE__*/_react.default.createElement("div", {
140
- className: "widget-tab__threesixty-start-icon"
141
- }, /*#__PURE__*/_react.default.createElement("img", {
142
- src: _rotation.default,
143
- alt: "start-icon"
144
- })), /*#__PURE__*/_react.default.createElement("span", null, _locale.default.getLocaleText('rotate'))), showInstructions && /*#__PURE__*/_react.default.createElement(_Instructions.default, {
145
- disabled: disabled,
159
+ setController(controller);
160
+ }, []);
161
+ return /*#__PURE__*/_react.default.createElement("div", {
162
+ className: "widget-tab__rotation",
163
+ onContextMenu: _helpers.preventRightClick
164
+ }, mode === _rotationModes.rotationModes.THREESIXTY && /*#__PURE__*/_react.default.createElement(_ThreesixtyView.default, {
165
+ showInstructions: showInstructions,
166
+ openInstructions: openInstructions,
167
+ initialized: initialized,
168
+ activeIndex: activeIndex,
169
+ images: images
170
+ }), mode === _rotationModes.rotationModes.DEFAULT && /*#__PURE__*/_react.default.createElement(_DefaultView.default, {
171
+ setActiveIndex: setActiveIndex,
172
+ setCurrentStep: setCurrentStep,
173
+ topViewImage: topViewImage,
174
+ activeIndex: activeIndex,
175
+ currentStep: currentStep,
176
+ planImage: planImage,
177
+ images: images,
178
+ steps: steps
179
+ }), showInstructions && /*#__PURE__*/_react.default.createElement(_Instructions.default, {
180
+ onClick: createThreesixty,
146
181
  steps: instructionSteps,
147
- onClick: onStart
182
+ disabled: disabled
148
183
  }));
149
184
  };
150
185
 
@@ -25,14 +25,14 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
25
25
 
26
26
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
27
 
28
+ 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; }
29
+
28
30
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
31
 
30
32
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
31
33
 
32
34
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
33
35
 
34
- 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; }
35
-
36
36
  var Widget = /*#__PURE__*/function () {
37
37
  function Widget(container) {
38
38
  var _this = this;
@@ -41,8 +41,6 @@ var Widget = /*#__PURE__*/function () {
41
41
 
42
42
  _classCallCheck(this, Widget);
43
43
 
44
- _defineProperty(this, "requiredParams", ['tabs', 'width', 'height', 'locale', 'API_URL']);
45
-
46
44
  var config = _objectSpread(_objectSpread({}, _defaultConfig.default), options);
47
45
 
48
46
  var widgetContainer = document.querySelector(container);
@@ -76,24 +74,6 @@ var Widget = /*#__PURE__*/function () {
76
74
  get: function get() {
77
75
  return _store.default.config;
78
76
  }
79
- }, {
80
- key: "updateOptions",
81
- value: function updateOptions(config) {
82
- var _this2 = this;
83
-
84
- var newConfig = _objectSpread({}, config);
85
-
86
- this.requiredParams.forEach(function (param) {
87
- if (config[param]) return;
88
- newConfig[param] = _this2.options[param];
89
- });
90
-
91
- _modelStore.default.removeHouse();
92
-
93
- _store.default.setConfig(newConfig);
94
-
95
- _fullScreenStore.default.resize(newConfig);
96
- }
97
77
  }, {
98
78
  key: "updateSize",
99
79
  value: function updateSize(size) {
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
+ var _rotationModes = require("../enums/rotationModes");
11
+
10
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
13
 
12
14
  var defaultConfig = {
@@ -19,7 +21,7 @@ var defaultConfig = {
19
21
  height: 1080,
20
22
  planImage: null,
21
23
  topViewImage: null,
22
- rotationMode: 'default',
24
+ rotationMode: _rotationModes.rotationModes.default,
23
25
  rotationImages: [],
24
26
  panoramaImages: [],
25
27
  json: null,
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.rotationModes = void 0;
7
+ var rotationModes = {
8
+ DEFAULT: 0,
9
+ THREESIXTY: 1
10
+ };
11
+ exports.rotationModes = rotationModes;
package/build/index.js CHANGED
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "Widget", {
45
45
  return _Widget.default;
46
46
  }
47
47
  });
48
+ Object.defineProperty(exports, "rotationModes", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _rotationModes.rotationModes;
52
+ }
53
+ });
48
54
 
49
55
  var _react = _interopRequireDefault(require("react"));
50
56
 
@@ -64,4 +70,6 @@ var _RotationTab = _interopRequireDefault(require("./components/RotationTab"));
64
70
 
65
71
  var _Widget = _interopRequireDefault(require("./components/Widget"));
66
72
 
73
+ var _rotationModes = require("./enums/rotationModes");
74
+
67
75
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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.64",
6
+ "version": "0.0.65",
7
7
  "private": false,
8
8
  "main": "build/index.js",
9
9
  "module": "build/index.js",