hart-estate-widget 0.0.57 → 0.0.60
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 +3 -0
- package/build/assets/css/app.css +1 -1
- package/build/assets/css/app.css.map +1 -1
- package/build/assets/sass/components/instructions.sass +8 -0
- package/build/assets/sass/components/panorama.sass +51 -20
- package/build/assets/sass/components/tabs.sass +65 -30
- package/build/assets/sass/index.sass +29 -38
- package/build/assets/sass/vars.sass +5 -0
- package/build/components/Application.js +2 -1
- package/build/components/PanoramaTab.js +87 -44
- package/build/components/RotationTab.js +36 -27
- package/build/config/defaultConfig.js +1 -1
- package/build/locale/{en_US → en}/data.json +1 -0
- package/build/locale/index.js +6 -6
- package/build/locale/{ru_RU → ru}/data.json +2 -1
- package/build/store/deviceStore.js +60 -0
- package/build/store/index.js +12 -0
- package/package.json +6 -5
package/README.md
CHANGED
package/build/assets/css/app.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;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: 900px){.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}}@media only screen and (max-width: 545px){.widget-application .widget-logo img{width:40px;height:40px}}.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:rgba(0,0,0,0);cursor:pointer;padding:10px}@media only screen and (max-width: 900px){.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{right:20px;top:23px}}@media only screen and (max-width: 545px){.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{padding:5px}}.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}}@media only screen and (max-width: 545px){.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{width:30px;height:30px}}.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: 900px){.widget-application .widget-tab-buttons{flex-direction:column;right:20px;bottom:20px}}.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}@media only screen and (max-width: 900px){.widget-application .widget-tab-button{width:60px;height:60px;font-size:24px;margin-left:0px;margin-top:20px}}@media only screen and (max-width: 545px){.widget-application .widget-tab-button{margin-top:15px;font-size:18px;width:45px;height:45px}}.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: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 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:20px;bottom:20px;transform:none}}@media only screen and (max-width: 545px){.widget-application .widget-tab__threesixty-start{width:45px;height:45px}}.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{top:0;width:30px;margin-right:0}}@media only screen and (max-width: 545px){.widget-application .widget-tab__threesixty-start img{width:20px}}.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;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-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)}@media only screen and (max-width: 545px){.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}@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}@media only screen and (max-width: 545px){.widget-application .widget-instructions__step img{width:40px;height:60px}}.widget-application .widget-instructions__step p{color:#413e3e;font-size:20px;font-weight:bold;text-align:center;margin-top:10px;max-width:130px}@media only screen and (max-width: 900px){.widget-application .widget-instructions__step p{font-size:18px;max-width:115px}}@media only screen and (max-width: 545px){.widget-application .widget-instructions__step p{font-size:16px}}.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}@media only screen and (max-width: 900px){.widget-application .widget-instructions button{font-size:18px;height:40px}}@media only screen and (max-width: 545px){.widget-application .widget-instructions button{font-size:16px;height:35px}}.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)}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls{bottom:20px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-controls{padding:5px}}.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}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls-button{width:40px;height:40px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-controls-button{margin-right:13px;width:35px;height:35px}}.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)}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.55)}}.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;border:8px solid #fff;background-color:#fff;opacity:1;transition:opacity .5s}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map{left:20px;bottom:20px;transform:scale(0.6);transform-origin:0% 100%}.widget-application .widget-tab__panorama-map svg polygon{opacity:0}.widget-application .widget-tab__panorama-map--scaled{transform:scale(1) !important}.widget-application .widget-tab__panorama-map--scaled svg polygon:active{opacity:.3 !important}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-map{transform:scale(0.4)}}.widget-application .widget-tab__panorama-map--hidden{opacity:0;pointer-events:none}.widget-application .widget-tab__panorama-map img{width:195px;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:195px;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}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map svg polygon:hover{opacity:0}}.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-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=app.css.map */
|
1
|
+
.widget-application{--vh: 100vh;width:100%;height:calc(100*var(--vh));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}@media only screen and (max-width: 900px){.widget-application .widget-logo{left:20px;top:30px}}@media only screen and (max-width: 374px){.widget-application .widget-logo{top:25px}}.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}}@media only screen and (max-width: 545px){.widget-application .widget-logo img{width:42px;height:42px}}@media only screen and (max-width: 374px){.widget-application .widget-logo img{width:36px;height:36px}}.widget-application .widget-tab__panorama-close-map,.widget-application .widget-enter-fullscreen,.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}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-close-map,.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{right:17px;top:35px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-close-map,.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{padding:5px;right:20px}}@media only screen and (max-width: 374px){.widget-application .widget-tab__panorama-close-map,.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{top:25px}}.widget-application .widget-tab__panorama-close-map img,.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-tab__panorama-close-map img,.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{width:40px;height:40px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-close-map img,.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{width:32px;height:32px}}@media only screen and (max-width: 374px){.widget-application .widget-tab__panorama-close-map img,.widget-application .widget-enter-fullscreen img,.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}@media only screen and (max-width: 900px){.widget-application .widget-tab-buttons{right:20px;bottom:35px}}@media only screen and (max-width: 374px){.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}@media only screen and (max-width: 900px){.widget-application .widget-tab-button{margin-left:20px;width:60px;height:60px;font-size:22px}}@media only screen and (max-width: 545px){.widget-application .widget-tab-button{margin-left:10px;font-size:17px;width:44px;height:44px}}@media only screen and (max-width: 374px){.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}@media(max-width: 630px){.widget-application .widget-tab{padding:60px 20px}}.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: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}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start{height:60px;width:166px;padding:0 20px 0 8px;bottom:35px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__threesixty-start{height:44px;width:115px;padding:0 10px 0 6px}}@media only screen and (max-width: 374px){.widget-application .widget-tab__threesixty-start{height:36px;width:94px;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}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start-icon{padding:7px;margin-right:15px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__threesixty-start-icon{margin-right:7px}}@media only screen and (max-width: 374px){.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}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start-icon img{width:30px;top:1px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__threesixty-start-icon img{width:19px;top:0}}@media only screen and (max-width: 374px){.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}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start span{font-size:20px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__threesixty-start span{font-size:14px}}@media only screen and (max-width: 374px){.widget-application .widget-tab__threesixty-start span{font-size:12px}}.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-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)}@media only screen and (max-width: 545px){.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}@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}@media only screen and (max-width: 545px){.widget-application .widget-instructions__step img{width:40px;height:60px}}@media only screen and (max-width: 374px){.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}@media only screen and (max-width: 900px){.widget-application .widget-instructions__step p{font-size:18px;max-width:115px}}@media only screen and (max-width: 545px){.widget-application .widget-instructions__step p{font-size:16px}}@media only screen and (max-width: 374px){.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}@media only screen and (max-width: 900px){.widget-application .widget-instructions button{font-size:18px;height:40px}}@media only screen and (max-width: 545px){.widget-application .widget-instructions button{font-size:16px;height:35px}}@media only screen and (max-width: 374px){.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)}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-controls{padding:5px}}@media only screen and (max-width: 374px){.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}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls-button{width:44px;height:44px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-controls-button{margin-right:10px;width:33px;height:33px}}@media only screen and (max-width: 374px){.widget-application .widget-tab__panorama-controls-button{width:26px;height:26px}}.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)}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.52)}}@media only screen and (max-width: 374px){.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}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map{left:20px;transform:scale(0.6);transform-origin:0% 100%}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-map{transform:scale(0.4)}}@media only screen and (max-width: 374px){.widget-application .widget-tab__panorama-map{bottom:30px;transform:scale(0.35)}}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map--scaled{transform:scale(1.4) translate(-50%, 50%);left:50%;bottom:50%}.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:calc(100*var(--vh));background-color:rgba(196,196,196,.8)}.widget-application .widget-tab__panorama-map--scaled svg polygon:active{opacity:.3 !important}}@media only screen and (max-width: 545px){.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}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map svg polygon:hover{opacity:0}}.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-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=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/loader.sass","../../../src/assets/sass/components/model.sass"],"names":[],"mappings":"AAGA,
|
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":"AAGA,oBACE,YAEA,WACA,2BACA,gBACA,kBACA,UACA,iBCLM,KDMN,eAEA,+EACE,mCACA,kCACA,qCACA,qBACA,gBACA,MCRQ,QDSR,aACA,UACA,SACA,sBACA,8BAEF,iCACE,kBACA,UACA,SACA,UACA,0CALF,iCAMI,UACA,UACF,0CARF,iCASI,UACF,qCACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,qCAOI,WACA,aACF,0CATF,qCAUI,WACA,aACF,0CAZF,qCAaI,WACA,aAEN,6IAGE,kBACA,WACA,SACA,UACA,aACA,kBE5DF,YACA,YACA,gBACA,yBACA,eF0DE,0CAVF,6IAWI,WACA,UACF,0CAbF,6IAcI,YACA,YACF,0CAhBF,6IAiBI,UACF,yJACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,yJAOI,WACA,aACF,0CATF,yJAUI,WACA,aACF,0CAZF,yJAaI,WACA,aGjFN,wCACE,kBACA,UACA,WACA,YACA,aACA,mBACA,yBACA,0CARF,wCASI,WACA,aACF,0CAXF,wCAYI,aACJ,uCDhBA,YACA,YACA,gBACA,yBACA,eCcE,WACA,YACA,kBACA,aACA,mBACA,uBACA,iBFjBG,QEkBH,MFdQ,QEeR,eACA,iBACA,iBACA,iBACA,0CAdF,uCAeI,iBACA,WACA,YACA,gBACF,0CAnBF,uCAoBI,iBACA,eACA,WACA,aACF,0CAxBF,uCAyBI,WACA,YACA,gBACF,+CACE,iBFpCM,QEsCV,gCACE,WACA,YACA,aACA,mBACA,uBACA,kBACA,yBAPF,gCAQI,mBACF,uCACE,eACA,gBACA,mBACA,cACF,4CACE,WACA,YF3CJ,kBACA,0BE4CI,kDDjEJ,YACA,YACA,gBACA,yBACA,eC+DM,kBACA,SACA,YACA,2BACA,aACA,mBACA,uBACA,sBACA,iBFpED,QEqEC,mBACA,YACA,YACA,0CAdF,kDAeI,YACA,YACA,qBACA,aACF,0CAnBF,kDAoBI,YACA,YACA,sBACF,0CAvBF,kDAwBI,YACA,WACA,oBACA,aACF,uDACE,aACA,mBACA,uBACA,kBACA,iBF7FF,KE8FE,kBACA,aACA,0CARF,uDASI,YACA,mBACF,0CAXF,uDAYI,kBACF,0CAbF,uDAcI,YACA,kBACF,2DACE,cACA,kBACA,QACA,WACA,0CALF,2DAMI,WACA,SACF,0CARF,2DASI,WACA,OACF,0CAXF,2DAYI,YACN,uDACE,eACA,iBACA,MFlHE,QEmHF,yBACA,WACA,cACA,kBACA,kBACA,QACA,0CAVF,uDAWI,gBACF,0CAZF,uDAaI,gBACF,0CAdF,uDAeI,gBACN,sDACE,sBACA,uBACA,kBACA,iCACA,0DACE,kBACA,SACA,QACA,gCACA,eACA,gBACA,YACA,aACA,mBACA,UACA,oBF5IR,iBACA,yBACA,eACA,uBE2IQ,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,MFhLE,QEiLF,iBFnLE,QEoLF,iBACA,mBACA,gBACA,YACA,eACA,mBACA,YFrLR,iBACA,yBACA,eACA,uBEoLQ,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,2BC9NZ,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,kCEoBI,0CAZF,kDAaI,YACA,6BACJ,gDACE,aACA,uBACA,uBACF,+CACE,aACA,sBACA,mBACA,2BACA,cACA,0CANF,+CAOI,eACF,mDACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,mDAOI,WACA,aACF,0CATF,mDAUI,YACJ,iDACE,MH7CI,QG8CJ,eACA,iBACA,kBACA,gBACA,gBACA,0CAPF,iDAQI,eACA,iBACF,0CAVF,iDAWI,gBACF,0CAZF,iDAaI,gBACN,gDFrEF,YACA,YACA,gBACA,yBACA,eEmEI,aACA,mBACA,uBACA,YACA,eACA,mBACA,iBHpEM,QGqEN,MHnEM,QGoEN,eACA,iBACA,yBACA,wBACA,0CAdF,gDAeI,eACA,aACF,0CAjBF,gDAkBI,eACA,aACF,0CApBF,gDAqBI,eACA,YACA,gBCxFJ,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,kCGwBM,0CAbF,mDAcI,aACF,0CAfF,mDAgBI,aACF,0DHrCN,YACA,YACA,gBACA,yBACA,eGmCQ,WACA,YACA,kBACA,iBJrCF,KIsCE,aACA,mBACA,uBACA,kBACA,0CAVF,0DAWI,WACA,aACF,0CAbF,0DAcI,kBACA,WACA,aACF,0CAjBF,0DAkBI,WACA,aACF,8DACE,cACA,0CAFF,8DAGI,sBACF,0CAJF,8DAKI,uBACF,0CANF,8DAOI,uBACJ,4EACE,eACN,oDACE,UACF,8CACE,kBACA,UACA,YACA,UACA,mBACA,UACA,uBJxDN,kBACA,0BIyDM,sDACE,WACA,kBACA,WACA,SACA,QACA,gCACA,wBACA,yBACA,sBACA,iBJnFF,KIoFA,0CApBF,8CAqBI,UACA,qBACA,0BACF,0CAxBF,8CAyBI,sBACF,0CA1BF,8CA2BI,YACA,uBAEA,0CADF,sDAEI,0CACA,SACA,WACA,6DACE,WACA,kBACA,WACA,SACA,QACA,gCACA,YACA,2BACA,sCAGE,yEACE,uBACR,0CAnBF,sDAoBI,yCACJ,sDACE,UACA,oBACF,kDACE,YACA,mBACA,cJ/GR,iBACA,yBACA,eACA,uBAOA,mCACA,4BACA,gCACA,wBIqGQ,wDACE,wCACJ,kDACE,kBACA,OACA,MACA,YACA,YACA,UACA,cACA,sBACA,0DACE,UACA,KJpIA,QIqIA,eACA,gEACE,WACA,0CAFF,gEAGI,WACR,mDACE,kBACA,OACA,MACA,UACA,WACA,kBACA,0CACA,2CACA,4CACA,0CACA,6CACA,yBACA,UACA,oBACA,2DACE,WACA,kBACA,UACA,SACA,QACA,iDACA,WACA,YACA,iBJlKA,QImKA,kBACA,yBACA,gCC7KZ,eACE,cACA,kBACA,WACA,YACA,yBACE,kBACA,SACA,QACA,gCACF,mBACE,4CACF,mBACE,kBACA,SACA,WACA,YACA,kBACA,WLVQ,QKWR,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":"app.css"}
|
@@ -52,6 +52,8 @@
|
|
52
52
|
@media #{$mobile}
|
53
53
|
width: 40px
|
54
54
|
height: 60px
|
55
|
+
@media #{$w-374}
|
56
|
+
width: 35px
|
55
57
|
p
|
56
58
|
color: $text-dark
|
57
59
|
font-size: 20px
|
@@ -64,6 +66,8 @@
|
|
64
66
|
max-width: 115px
|
65
67
|
@media #{$mobile}
|
66
68
|
font-size: 16px
|
69
|
+
@media #{$w-374}
|
70
|
+
font-size: 14px
|
67
71
|
button
|
68
72
|
@include customButton
|
69
73
|
display: flex
|
@@ -84,3 +88,7 @@
|
|
84
88
|
@media #{$mobile}
|
85
89
|
font-size: 16px
|
86
90
|
height: 35px
|
91
|
+
@media #{$w-374}
|
92
|
+
font-size: 14px
|
93
|
+
height: 26px
|
94
|
+
padding: 0 25px
|
@@ -32,10 +32,10 @@
|
|
32
32
|
background-color: transparentize($black, .8)
|
33
33
|
transform: translateX(-50%)
|
34
34
|
@include blurBackground(5px)
|
35
|
-
@media #{$tablet}
|
36
|
-
bottom: 20px
|
37
35
|
@media #{$mobile}
|
38
36
|
padding: 5px
|
37
|
+
@media #{$w-374}
|
38
|
+
bottom: 30px
|
39
39
|
&-button
|
40
40
|
@include customButton
|
41
41
|
width: 55px
|
@@ -47,51 +47,82 @@
|
|
47
47
|
justify-content: center
|
48
48
|
margin-right: 18px
|
49
49
|
@media #{$tablet}
|
50
|
-
width:
|
51
|
-
height:
|
50
|
+
width: 44px
|
51
|
+
height: 44px
|
52
52
|
@media #{$mobile}
|
53
|
-
margin-right:
|
54
|
-
width:
|
55
|
-
height:
|
53
|
+
margin-right: 10px
|
54
|
+
width: 33px
|
55
|
+
height: 33px
|
56
|
+
@media #{$w-374}
|
57
|
+
width: 26px
|
58
|
+
height: 26px
|
56
59
|
img
|
57
60
|
display: block
|
58
61
|
@media #{$tablet}
|
59
62
|
transform: scale(.7)
|
60
63
|
@media #{$mobile}
|
61
|
-
transform: scale(.
|
64
|
+
transform: scale(.52)
|
65
|
+
@media #{$w-374}
|
66
|
+
transform: scale(.45)
|
62
67
|
&:nth-last-child(1)
|
63
68
|
margin-right: 0
|
69
|
+
&-close-map
|
70
|
+
z-index: 4
|
64
71
|
&-map
|
65
72
|
position: absolute
|
66
73
|
left: 45px
|
67
74
|
bottom: 35px
|
68
75
|
z-index: 3
|
69
76
|
border-radius: 10px
|
70
|
-
border: 8px solid $white
|
71
|
-
background-color: $white
|
72
77
|
opacity: 1
|
73
78
|
transition: opacity .5s
|
79
|
+
@include noTouch
|
80
|
+
&::before
|
81
|
+
content: ''
|
82
|
+
position: absolute
|
83
|
+
z-index: -1
|
84
|
+
left: 50%
|
85
|
+
top: 50%
|
86
|
+
transform: translate(-50%, -50%)
|
87
|
+
width: calc(100% + 16px)
|
88
|
+
height: calc(100% + 16px)
|
89
|
+
border-radius: inherit
|
90
|
+
background-color: $white
|
74
91
|
@media #{$tablet}
|
75
92
|
left: 20px
|
76
|
-
bottom: 20px
|
77
93
|
transform: scale(.6)
|
78
94
|
transform-origin: 0% 100%
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
95
|
+
@media #{$mobile}
|
96
|
+
transform: scale(.4)
|
97
|
+
@media #{$w-374}
|
98
|
+
bottom: 30px
|
99
|
+
transform: scale(.35)
|
100
|
+
&--scaled
|
101
|
+
@media #{$tablet}
|
102
|
+
transform: scale(1.4) translate(-50%, 50%)
|
103
|
+
left: 50%
|
104
|
+
bottom: 50%
|
105
|
+
&::after
|
106
|
+
content: ''
|
107
|
+
position: absolute
|
108
|
+
z-index: -2
|
109
|
+
left: 50%
|
110
|
+
top: 50%
|
111
|
+
transform: translate(-50%, -50%)
|
112
|
+
width: 100vw
|
113
|
+
height: calc(100 * var(--vh))
|
114
|
+
background-color: transparentize(#C4C4C4, .2)
|
84
115
|
svg
|
85
116
|
polygon
|
86
117
|
&:active
|
87
118
|
opacity: .3 !important
|
88
|
-
|
89
|
-
|
119
|
+
@media #{$mobile}
|
120
|
+
transform: scale(1) translate(-50%, 50%)
|
90
121
|
&--hidden
|
91
122
|
opacity: 0
|
92
123
|
pointer-events: none
|
93
124
|
img
|
94
|
-
width:
|
125
|
+
width: 200px
|
95
126
|
border-radius: none
|
96
127
|
display: block
|
97
128
|
@include noSelect
|
@@ -102,7 +133,7 @@
|
|
102
133
|
position: absolute
|
103
134
|
left: 0
|
104
135
|
top: 0
|
105
|
-
width:
|
136
|
+
width: 200px
|
106
137
|
height: 100%
|
107
138
|
z-index: 3
|
108
139
|
display: block
|
@@ -11,9 +11,10 @@
|
|
11
11
|
align-items: center
|
12
12
|
justify-content: flex-end
|
13
13
|
@media #{$tablet}
|
14
|
-
flex-direction: column
|
15
14
|
right: 20px
|
16
|
-
bottom:
|
15
|
+
bottom: 35px
|
16
|
+
@media #{$w-374}
|
17
|
+
bottom: 30px
|
17
18
|
.widget-tab-button
|
18
19
|
@include customButton
|
19
20
|
width: 72px
|
@@ -29,16 +30,19 @@
|
|
29
30
|
font-weight: bold
|
30
31
|
margin-left: 40px
|
31
32
|
@media #{$tablet}
|
33
|
+
margin-left: 20px
|
32
34
|
width: 60px
|
33
35
|
height: 60px
|
34
|
-
font-size:
|
35
|
-
margin-left: 0px
|
36
|
-
margin-top: 20px
|
36
|
+
font-size: 22px
|
37
37
|
@media #{$mobile}
|
38
|
-
margin-
|
39
|
-
font-size:
|
40
|
-
width:
|
41
|
-
height:
|
38
|
+
margin-left: 10px
|
39
|
+
font-size: 17px
|
40
|
+
width: 44px
|
41
|
+
height: 44px
|
42
|
+
@media #{$w-374}
|
43
|
+
width: 36px
|
44
|
+
height: 36px
|
45
|
+
font-size: 14px
|
42
46
|
&--active
|
43
47
|
background-color: $mainColor
|
44
48
|
|
@@ -50,7 +54,7 @@
|
|
50
54
|
justify-content: center
|
51
55
|
padding: 60px 30px
|
52
56
|
@media (max-width: 630px)
|
53
|
-
padding: 60px
|
57
|
+
padding: 60px 20px
|
54
58
|
&__image
|
55
59
|
max-width: 100%
|
56
60
|
max-height: 100%
|
@@ -59,8 +63,7 @@
|
|
59
63
|
&__threesixty
|
60
64
|
width: 100%
|
61
65
|
height: 100%
|
62
|
-
|
63
|
-
-webkit-touch-action: none
|
66
|
+
@include noTouch
|
64
67
|
&-start
|
65
68
|
@include customButton
|
66
69
|
position: absolute
|
@@ -70,38 +73,70 @@
|
|
70
73
|
display: flex
|
71
74
|
align-items: center
|
72
75
|
justify-content: center
|
73
|
-
padding: 0
|
76
|
+
padding: 0 25px 0 10px
|
74
77
|
background-color: $gray
|
75
78
|
border-radius: 38px
|
76
79
|
height: 72px
|
80
|
+
width: 202px
|
77
81
|
@media #{$tablet}
|
78
82
|
height: 60px
|
79
|
-
width:
|
80
|
-
padding: 0
|
81
|
-
|
82
|
-
bottom: 20px
|
83
|
-
transform: none
|
83
|
+
width: 166px
|
84
|
+
padding: 0 20px 0 8px
|
85
|
+
bottom: 35px
|
84
86
|
@media #{$mobile}
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
87
|
+
height: 44px
|
88
|
+
width: 115px
|
89
|
+
padding: 0 10px 0 6px
|
90
|
+
@media #{$w-374}
|
91
|
+
height: 36px
|
92
|
+
width: 94px
|
93
|
+
padding: 0 8px 0 6px
|
94
|
+
bottom: 30px
|
95
|
+
&-icon
|
96
|
+
display: flex
|
97
|
+
align-items: center
|
98
|
+
justify-content: center
|
99
|
+
border-radius: 50%
|
100
|
+
background-color: $white
|
101
|
+
margin-right: 18px
|
102
|
+
padding: 10px
|
92
103
|
@media #{$tablet}
|
93
|
-
|
94
|
-
|
95
|
-
margin-right: 0
|
104
|
+
padding: 7px
|
105
|
+
margin-right: 15px
|
96
106
|
@media #{$mobile}
|
97
|
-
|
107
|
+
margin-right: 7px
|
108
|
+
@media #{$w-374}
|
109
|
+
padding: 6px
|
110
|
+
margin-right: 5px
|
111
|
+
img
|
112
|
+
display: block
|
113
|
+
position: relative
|
114
|
+
top: 2px
|
115
|
+
width: 34px
|
116
|
+
@media #{$tablet}
|
117
|
+
width: 30px
|
118
|
+
top: 1px
|
119
|
+
@media #{$mobile}
|
120
|
+
width: 19px
|
121
|
+
top: 0
|
122
|
+
@media #{$w-374}
|
123
|
+
width: 15px
|
98
124
|
span
|
99
125
|
font-size: 24px
|
100
126
|
font-weight: bold
|
101
127
|
color: $text-dark
|
102
128
|
text-transform: uppercase
|
129
|
+
width: 100%
|
130
|
+
display: block
|
131
|
+
text-align: center
|
132
|
+
position: relative
|
133
|
+
top: 1px
|
103
134
|
@media #{$tablet}
|
104
|
-
|
135
|
+
font-size: 20px
|
136
|
+
@media #{$mobile}
|
137
|
+
font-size: 14px
|
138
|
+
@media #{$w-374}
|
139
|
+
font-size: 12px
|
105
140
|
&-container
|
106
141
|
width: 100% !important
|
107
142
|
height: 100% !important
|
@@ -1,15 +1,6 @@
|
|
1
1
|
@import './vars'
|
2
2
|
@import './mixin'
|
3
3
|
|
4
|
-
*, *:before, *:after
|
5
|
-
box-sizing: border-box
|
6
|
-
-webkit-box-sizing: border-box
|
7
|
-
margin: 0
|
8
|
-
padding: 0
|
9
|
-
|
10
|
-
html, body
|
11
|
-
font-size: 20px
|
12
|
-
|
13
4
|
.widget-application
|
14
5
|
--vh: 100vh
|
15
6
|
|
@@ -19,15 +10,20 @@ html, body
|
|
19
10
|
position: relative
|
20
11
|
z-index: 1
|
21
12
|
background-color: $white
|
13
|
+
font-size: 20px
|
22
14
|
|
23
15
|
*, *:before, *:after
|
24
|
-
font-family: 'Roboto Mono', sans-serif
|
25
16
|
-webkit-font-smoothing: antialiased
|
26
17
|
-moz-osx-font-smoothing: grayscale
|
27
|
-
|
28
|
-
font-weight: 700
|
18
|
+
font-family: 'Roboto Mono', sans-serif
|
29
19
|
text-decoration: none
|
20
|
+
font-weight: 700
|
30
21
|
color: $text-dark
|
22
|
+
outline: none
|
23
|
+
padding: 0
|
24
|
+
margin: 0
|
25
|
+
box-sizing: border-box
|
26
|
+
-webkit-box-sizing: border-box
|
31
27
|
|
32
28
|
.widget-logo
|
33
29
|
position: absolute
|
@@ -36,7 +32,9 @@ html, body
|
|
36
32
|
z-index: 3
|
37
33
|
@media #{$tablet}
|
38
34
|
left: 20px
|
39
|
-
top:
|
35
|
+
top: 30px
|
36
|
+
@media #{$w-374}
|
37
|
+
top: 25px
|
40
38
|
img
|
41
39
|
display: block
|
42
40
|
width: 82px
|
@@ -47,22 +45,30 @@ html, body
|
|
47
45
|
width: 65px
|
48
46
|
height: 65px
|
49
47
|
@media #{$mobile}
|
50
|
-
width:
|
51
|
-
height:
|
48
|
+
width: 42px
|
49
|
+
height: 42px
|
50
|
+
@media #{$w-374}
|
51
|
+
width: 36px
|
52
|
+
height: 36px
|
52
53
|
|
54
|
+
.widget-tab__panorama-close-map,
|
53
55
|
.widget-enter-fullscreen,
|
54
56
|
.widget-exit-fullscreen
|
55
57
|
position: absolute
|
56
58
|
right: 45px
|
57
59
|
top: 36px
|
58
60
|
z-index: 3
|
59
|
-
@include customButton
|
60
61
|
padding: 10px
|
62
|
+
touch-action: none
|
63
|
+
@include customButton
|
61
64
|
@media #{$tablet}
|
62
|
-
right:
|
63
|
-
top:
|
65
|
+
right: 17px
|
66
|
+
top: 35px
|
64
67
|
@media #{$mobile}
|
65
68
|
padding: 5px
|
69
|
+
right: 20px
|
70
|
+
@media #{$w-374}
|
71
|
+
top: 25px
|
66
72
|
img
|
67
73
|
display: block
|
68
74
|
width: 50px
|
@@ -73,26 +79,11 @@ html, body
|
|
73
79
|
width: 40px
|
74
80
|
height: 40px
|
75
81
|
@media #{$mobile}
|
76
|
-
width:
|
77
|
-
height:
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
display: flex
|
82
|
-
align-items: center
|
83
|
-
justify-content: center
|
84
|
-
z-index: 3
|
85
|
-
right: 15px
|
86
|
-
top: 15px
|
87
|
-
color: $black
|
88
|
-
background-color: $mainColor
|
89
|
-
padding: 5px 15px
|
90
|
-
border-radius: 10px
|
91
|
-
font-size: .8rem
|
92
|
-
border: none
|
93
|
-
cursor: pointer
|
94
|
-
&:hover
|
95
|
-
box-shadow: 1px 1px 10px rgba(0, 0, 0, .15)
|
82
|
+
width: 32px
|
83
|
+
height: 32px
|
84
|
+
@media #{$w-374}
|
85
|
+
width: 26px
|
86
|
+
height: 26px
|
96
87
|
|
97
88
|
@import './components/tabs'
|
98
89
|
@import './components/instructions'
|
@@ -1,3 +1,4 @@
|
|
1
|
+
$w-374: "only screen and (max-width: 374px)"
|
1
2
|
$mobile: "only screen and (max-width: 545px)"
|
2
3
|
$tablet: "only screen and (max-width: 900px)"
|
3
4
|
$laptop: "only screen and (max-width: 1440px)"
|
@@ -17,6 +18,10 @@ $text-dark: #413E3E
|
|
17
18
|
user-drag: none
|
18
19
|
-webkit-user-drag: none
|
19
20
|
|
21
|
+
@mixin noTouch
|
22
|
+
touch-action: none
|
23
|
+
-webkit-touch-action: none
|
24
|
+
|
20
25
|
@mixin highResolution
|
21
26
|
-webkit-backface-visibility: hidden
|
22
27
|
-ms-transform: translateZ(0)
|
@@ -100,6 +100,7 @@ var Application = (0, _mobxReactLite.observer)(function (_ref) {
|
|
100
100
|
|
101
101
|
var getTabButton = function getTabButton(button, index) {
|
102
102
|
if (!_store.default.isTabIncluded(button.tab) || _store.default.config.tabs.length < 2) return null;
|
103
|
+
if (!_store.default.controlsVisible) return null;
|
103
104
|
return /*#__PURE__*/_react.default.createElement(_TabButton.default, {
|
104
105
|
key: index,
|
105
106
|
text: button.text,
|
@@ -124,7 +125,7 @@ var Application = (0, _mobxReactLite.observer)(function (_ref) {
|
|
124
125
|
}, /*#__PURE__*/_react.default.createElement("img", {
|
125
126
|
src: config.logo,
|
126
127
|
alt: "logo"
|
127
|
-
})), /*#__PURE__*/_react.default.createElement(_FullScreenButton.default, null), /*#__PURE__*/_react.default.createElement("div", {
|
128
|
+
})), _store.default.controlsVisible && /*#__PURE__*/_react.default.createElement(_FullScreenButton.default, null), /*#__PURE__*/_react.default.createElement("div", {
|
128
129
|
className: "widget-tab-buttons"
|
129
130
|
}, tabButtons.map(getTabButton)));
|
130
131
|
});
|
@@ -9,6 +9,8 @@ exports.default = void 0;
|
|
9
9
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
11
11
|
|
12
|
+
var _deviceStore = _interopRequireDefault(require("../store/deviceStore"));
|
13
|
+
|
12
14
|
var _locale = _interopRequireDefault(require("../locale"));
|
13
15
|
|
14
16
|
var _store = _interopRequireDefault(require("../store"));
|
@@ -51,6 +53,8 @@ var _x = _interopRequireDefault(require("../assets/icons/1x.svg"));
|
|
51
53
|
|
52
54
|
var _x2 = _interopRequireDefault(require("../assets/icons/2x.svg"));
|
53
55
|
|
56
|
+
var _close = _interopRequireDefault(require("../assets/icons/close.svg"));
|
57
|
+
|
54
58
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
55
59
|
|
56
60
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
@@ -272,50 +276,55 @@ var PanoramaTab = function PanoramaTab(_ref4) {
|
|
272
276
|
setWindowSize = _useState8[1];
|
273
277
|
|
274
278
|
var _useState9 = (0, _react.useState)({
|
275
|
-
width: '
|
279
|
+
width: '200px',
|
276
280
|
height: 'auto'
|
277
281
|
}),
|
278
282
|
_useState10 = _slicedToArray(_useState9, 2),
|
279
283
|
mapSize = _useState10[0],
|
280
284
|
setMapSize = _useState10[1];
|
281
285
|
|
282
|
-
var _useState11 = (0, _react.useState)(
|
286
|
+
var _useState11 = (0, _react.useState)(false),
|
287
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
288
|
+
mapOpen = _useState12[0],
|
289
|
+
setMapState = _useState12[1];
|
290
|
+
|
291
|
+
var _useState13 = (0, _react.useState)({
|
283
292
|
X: 1,
|
284
293
|
Y: 1
|
285
294
|
}),
|
286
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
287
|
-
planScale = _useState12[0],
|
288
|
-
setPlanScale = _useState12[1];
|
289
|
-
|
290
|
-
var _useState13 = (0, _react.useState)(true),
|
291
295
|
_useState14 = _slicedToArray(_useState13, 2),
|
292
|
-
|
293
|
-
|
296
|
+
planScale = _useState14[0],
|
297
|
+
setPlanScale = _useState14[1];
|
294
298
|
|
295
|
-
var _useState15 = (0, _react.useState)(
|
299
|
+
var _useState15 = (0, _react.useState)(true),
|
296
300
|
_useState16 = _slicedToArray(_useState15, 2),
|
297
|
-
|
298
|
-
|
301
|
+
isMapDisabled = _useState16[0],
|
302
|
+
setMapDisabledState = _useState16[1];
|
299
303
|
|
300
|
-
var _useState17 = (0, _react.useState)(
|
304
|
+
var _useState17 = (0, _react.useState)(false),
|
301
305
|
_useState18 = _slicedToArray(_useState17, 2),
|
302
|
-
|
303
|
-
|
306
|
+
autoplayEnabled = _useState18[0],
|
307
|
+
setAutoplayState = _useState18[1];
|
304
308
|
|
305
|
-
var _useState19 = (0, _react.useState)(
|
309
|
+
var _useState19 = (0, _react.useState)(cameraFovValues.x1),
|
306
310
|
_useState20 = _slicedToArray(_useState19, 2),
|
307
|
-
|
308
|
-
|
311
|
+
cameraFov = _useState20[0],
|
312
|
+
setCameraFov = _useState20[1];
|
309
313
|
|
310
|
-
var _useState21 = (0, _react.useState)(
|
314
|
+
var _useState21 = (0, _react.useState)(0),
|
311
315
|
_useState22 = _slicedToArray(_useState21, 2),
|
312
|
-
|
313
|
-
|
316
|
+
currentRoomIndex = _useState22[0],
|
317
|
+
setCurrentRoomIndex = _useState22[1];
|
314
318
|
|
315
|
-
var _useState23 = (0, _react.useState)(
|
319
|
+
var _useState23 = (0, _react.useState)([]),
|
316
320
|
_useState24 = _slicedToArray(_useState23, 2),
|
317
|
-
|
318
|
-
|
321
|
+
panoramas = _useState24[0],
|
322
|
+
setPanoramas = _useState24[1];
|
323
|
+
|
324
|
+
var _useState25 = (0, _react.useState)(null),
|
325
|
+
_useState26 = _slicedToArray(_useState25, 2),
|
326
|
+
viewer = _useState26[0],
|
327
|
+
setViewer = _useState26[1];
|
319
328
|
|
320
329
|
var changePanorama = function changePanorama(panorama) {
|
321
330
|
setCurrentRoomIndex(panorama['panorama_index']);
|
@@ -331,7 +340,7 @@ var PanoramaTab = function PanoramaTab(_ref4) {
|
|
331
340
|
var imageWidth = image.naturalWidth;
|
332
341
|
var imageHeight = image.naturalHeight;
|
333
342
|
var imageDelta = imageWidth / imageHeight;
|
334
|
-
var maxWidth =
|
343
|
+
var maxWidth = 200;
|
335
344
|
var maxHeight = clientHeight - 200;
|
336
345
|
var width = maxWidth;
|
337
346
|
var height = width / imageDelta;
|
@@ -410,18 +419,19 @@ var PanoramaTab = function PanoramaTab(_ref4) {
|
|
410
419
|
viewer.enableAutoRate();
|
411
420
|
};
|
412
421
|
|
413
|
-
var updateWindowWidth = function updateWindowWidth() {
|
414
|
-
return setWindowSize({
|
415
|
-
width: window.innerWidth,
|
416
|
-
height: window.innerHeight
|
417
|
-
});
|
418
|
-
};
|
419
|
-
|
420
422
|
(0, _react.useEffect)(function () {
|
421
|
-
|
422
|
-
|
423
|
+
var onResize = function onResize() {
|
424
|
+
setWindowSize({
|
425
|
+
width: window.innerWidth,
|
426
|
+
height: window.innerHeight
|
427
|
+
});
|
428
|
+
closeMap();
|
429
|
+
};
|
430
|
+
|
431
|
+
onResize();
|
432
|
+
window.addEventListener('resize', onResize);
|
423
433
|
return function cleanup() {
|
424
|
-
window.removeEventListener('resize',
|
434
|
+
window.removeEventListener('resize', onResize);
|
425
435
|
};
|
426
436
|
}, []);
|
427
437
|
(0, _react.useEffect)(function () {
|
@@ -489,7 +499,7 @@ var PanoramaTab = function PanoramaTab(_ref4) {
|
|
489
499
|
|
490
500
|
var onStart = function onStart() {
|
491
501
|
setInstructionsState(false);
|
492
|
-
if (
|
502
|
+
if (!_deviceStore.default.isMobile && !_deviceStore.default.isTablet) return;
|
493
503
|
|
494
504
|
var allowDeviceOrientation = function allowDeviceOrientation() {
|
495
505
|
window.removeEventListener('deviceorientation', allowDeviceOrientation);
|
@@ -521,23 +531,36 @@ var PanoramaTab = function PanoramaTab(_ref4) {
|
|
521
531
|
}).toString();
|
522
532
|
};
|
523
533
|
|
534
|
+
var openMap = function openMap() {
|
535
|
+
_store.default.hideControls();
|
536
|
+
|
537
|
+
setMapState(true);
|
538
|
+
};
|
539
|
+
|
540
|
+
var closeMap = function closeMap() {
|
541
|
+
_store.default.showControls();
|
542
|
+
|
543
|
+
setMapState(false);
|
544
|
+
};
|
545
|
+
|
524
546
|
var onMapClick = function onMapClick(event) {
|
525
547
|
if (loadingState) return;
|
526
|
-
var map = document.querySelector('.widget-tab__panorama-map');
|
527
548
|
|
528
549
|
if (windowSize.width <= _deviceWidth.deviceWidth.tablet) {
|
529
|
-
if (!
|
530
|
-
|
550
|
+
if (!mapOpen) {
|
551
|
+
openMap();
|
531
552
|
return;
|
532
553
|
}
|
533
554
|
}
|
534
555
|
|
556
|
+
var map = document.querySelector('.widget-tab__panorama-map');
|
557
|
+
var mapScale = map.getBoundingClientRect().width / map.offsetWidth;
|
535
558
|
var image = document.querySelector('.widget-tab__panorama-map img');
|
536
559
|
var offset = image.getBoundingClientRect();
|
537
560
|
var clientX = event.clientX,
|
538
561
|
clientY = event.clientY;
|
539
|
-
var x = (clientX - offset.left) / planScale.X;
|
540
|
-
var y = (clientY - offset.top) / planScale.Y;
|
562
|
+
var x = (clientX - offset.left) / mapScale / planScale.X;
|
563
|
+
var y = (clientY - offset.top) / mapScale / planScale.Y;
|
541
564
|
var availablePanoramas = panoramas.filter(function (_ref9) {
|
542
565
|
var userData = _ref9.userData;
|
543
566
|
return (0, _geometric.pointInPolygon)([x, y], userData.points);
|
@@ -546,11 +569,25 @@ var PanoramaTab = function PanoramaTab(_ref4) {
|
|
546
569
|
var _getClosestPanorama2 = (0, _panoramaHelpers.getClosestPanorama)([x, y], availablePanoramas),
|
547
570
|
panorama = _getClosestPanorama2.panorama;
|
548
571
|
|
549
|
-
|
572
|
+
closeMap();
|
550
573
|
if (!panorama) return;
|
551
574
|
changePanorama(panorama);
|
552
575
|
};
|
553
576
|
|
577
|
+
var getMapClass = function getMapClass() {
|
578
|
+
var className = 'widget-tab__panorama-map';
|
579
|
+
|
580
|
+
if (isMapDisabled) {
|
581
|
+
className += ' widget-tab__panorama-map--hidden';
|
582
|
+
}
|
583
|
+
|
584
|
+
if (mapOpen) {
|
585
|
+
className += ' widget-tab__panorama-map--scaled';
|
586
|
+
}
|
587
|
+
|
588
|
+
return className;
|
589
|
+
};
|
590
|
+
|
554
591
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
555
592
|
className: "widget-tab__panorama"
|
556
593
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
@@ -558,8 +595,14 @@ var PanoramaTab = function PanoramaTab(_ref4) {
|
|
558
595
|
onContextMenu: _helpers.preventRightClick
|
559
596
|
}), loadingState && /*#__PURE__*/_react.default.createElement(_Loader.default, {
|
560
597
|
absolute: true
|
561
|
-
}), /*#__PURE__*/_react.default.createElement("div", {
|
562
|
-
className: "widget-tab__panorama-map
|
598
|
+
}), mapOpen && /*#__PURE__*/_react.default.createElement("div", {
|
599
|
+
className: "widget-tab__panorama-close-map",
|
600
|
+
onClick: closeMap
|
601
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
602
|
+
src: _close.default,
|
603
|
+
alt: "close-map"
|
604
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
605
|
+
className: getMapClass()
|
563
606
|
}, /*#__PURE__*/_react.default.createElement("img", {
|
564
607
|
src: planImage,
|
565
608
|
style: mapSize,
|
@@ -58,35 +58,41 @@ var RotationTab = function RotationTab(_ref) {
|
|
58
58
|
text: _locale.default.getLocaleText('rotate-plan')
|
59
59
|
}];
|
60
60
|
|
61
|
-
var _useState = (0, _react.useState)(
|
61
|
+
var _useState = (0, _react.useState)(true),
|
62
62
|
_useState2 = _slicedToArray(_useState, 2),
|
63
63
|
showInstructions = _useState2[0],
|
64
64
|
setInstructionsState = _useState2[1];
|
65
65
|
|
66
|
-
var _useState3 = (0, _react.useState)(
|
66
|
+
var _useState3 = (0, _react.useState)(false),
|
67
67
|
_useState4 = _slicedToArray(_useState3, 2),
|
68
|
-
|
69
|
-
|
68
|
+
autoplayEnabled = _useState4[0],
|
69
|
+
setAutoplayState = _useState4[1];
|
70
70
|
|
71
|
-
var _useState5 = (0, _react.useState)(
|
71
|
+
var _useState5 = (0, _react.useState)(0),
|
72
72
|
_useState6 = _slicedToArray(_useState5, 2),
|
73
|
-
|
74
|
-
|
73
|
+
activeIndex = _useState6[0],
|
74
|
+
setActiveIndex = _useState6[1];
|
75
|
+
|
76
|
+
var _useState7 = (0, _react.useState)(null),
|
77
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
78
|
+
rotation = _useState8[0],
|
79
|
+
setRotation = _useState8[1];
|
80
|
+
|
81
|
+
var updateRotation = function updateRotation() {
|
82
|
+
setActiveIndex(this.index);
|
83
|
+
setAutoplayState(this.looping);
|
84
|
+
};
|
75
85
|
|
76
86
|
var onStart = function onStart() {
|
77
87
|
setInstructionsState(false);
|
78
88
|
var container = document.querySelector('.widget-tab__threesixty-container');
|
79
89
|
var widgetTab = document.querySelector('.widget-tab');
|
80
|
-
var
|
90
|
+
var newRotation = new _threesixty.default(container, {
|
81
91
|
image: _toConsumableArray(images),
|
82
92
|
parentElement: widgetTab,
|
83
93
|
inverted: true
|
84
94
|
});
|
85
|
-
|
86
|
-
rotation._update = function () {
|
87
|
-
return setActiveIndex(rotation.index);
|
88
|
-
};
|
89
|
-
|
95
|
+
newRotation._update = updateRotation;
|
90
96
|
var lastIndex = 0;
|
91
97
|
var controller = (0, _panzoom.default)(container, {
|
92
98
|
maxZoom: 3,
|
@@ -96,26 +102,27 @@ var RotationTab = function RotationTab(_ref) {
|
|
96
102
|
}
|
97
103
|
});
|
98
104
|
controller.on('panstart', function () {
|
99
|
-
lastIndex =
|
105
|
+
lastIndex = newRotation.index;
|
106
|
+
newRotation.stop();
|
107
|
+
|
108
|
+
newRotation._update = function () {};
|
100
109
|
|
101
|
-
|
110
|
+
setAutoplayState(newRotation.looping);
|
102
111
|
});
|
103
112
|
controller.on('panend', function () {
|
104
|
-
|
105
|
-
|
106
|
-
rotation._update = function () {
|
107
|
-
return setActiveIndex(rotation.index);
|
108
|
-
};
|
113
|
+
newRotation.goto(lastIndex);
|
114
|
+
newRotation._update = updateRotation;
|
109
115
|
});
|
116
|
+
setRotation(newRotation);
|
110
117
|
};
|
111
118
|
|
112
|
-
var
|
113
|
-
|
114
|
-
|
119
|
+
var toggleAutoplay = function toggleAutoplay() {
|
120
|
+
rotation.toggle();
|
121
|
+
setAutoplayState(rotation.looping);
|
115
122
|
};
|
116
123
|
|
117
124
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
118
|
-
className: "widget-tab__threesixty ".concat(
|
125
|
+
className: "widget-tab__threesixty ".concat(!showInstructions ? 'widget-tab__threesixty--active' : '')
|
119
126
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
120
127
|
className: "widget-tab__threesixty-container",
|
121
128
|
onContextMenu: _helpers.preventRightClick
|
@@ -126,13 +133,15 @@ var RotationTab = function RotationTab(_ref) {
|
|
126
133
|
alt: "rotation-view-".concat(index),
|
127
134
|
className: activeIndex === index ? 'active' : ''
|
128
135
|
});
|
129
|
-
}))), !
|
136
|
+
}))), !showInstructions && /*#__PURE__*/_react.default.createElement("button", {
|
130
137
|
className: "widget-tab__threesixty-start",
|
131
|
-
onClick:
|
138
|
+
onClick: toggleAutoplay
|
139
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
140
|
+
className: "widget-tab__threesixty-start-icon"
|
132
141
|
}, /*#__PURE__*/_react.default.createElement("img", {
|
133
142
|
src: _rotation.default,
|
134
143
|
alt: "start-icon"
|
135
|
-
}), /*#__PURE__*/_react.default.createElement("span", null, _locale.default.getLocaleText('rotate'))), showInstructions && /*#__PURE__*/_react.default.createElement(_Instructions.default, {
|
144
|
+
})), /*#__PURE__*/_react.default.createElement("span", null, _locale.default.getLocaleText(autoplayEnabled ? 'stop' : 'rotate'))), showInstructions && /*#__PURE__*/_react.default.createElement(_Instructions.default, {
|
136
145
|
disabled: disabled,
|
137
146
|
steps: instructionSteps,
|
138
147
|
onClick: onStart
|
package/build/locale/index.js
CHANGED
@@ -9,9 +9,9 @@ var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
10
10
|
var _mobx = require("mobx");
|
11
11
|
|
12
|
-
var _data = _interopRequireDefault(require("./
|
12
|
+
var _data = _interopRequireDefault(require("./ru/data.json"));
|
13
13
|
|
14
|
-
var _data2 = _interopRequireDefault(require("./
|
14
|
+
var _data2 = _interopRequireDefault(require("./en/data.json"));
|
15
15
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
17
|
|
@@ -33,14 +33,14 @@ var LocaleStore = /*#__PURE__*/function () {
|
|
33
33
|
|
34
34
|
_classCallCheck(this, LocaleStore);
|
35
35
|
|
36
|
-
_defineProperty(this, "availableLocales", ['ru
|
36
|
+
_defineProperty(this, "availableLocales", ['ru', 'en']);
|
37
37
|
|
38
38
|
_defineProperty(this, "locales", {
|
39
|
-
'ru
|
40
|
-
'en
|
39
|
+
'ru': _data.default,
|
40
|
+
'en': _data2.default
|
41
41
|
});
|
42
42
|
|
43
|
-
_defineProperty(this, "currentLocale", 'en
|
43
|
+
_defineProperty(this, "currentLocale", 'en');
|
44
44
|
|
45
45
|
_defineProperty(this, "getLocaleText", function (key) {
|
46
46
|
return _this.localeData[key];
|
@@ -0,0 +1,60 @@
|
|
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 _mobx = require("mobx");
|
11
|
+
|
12
|
+
var _uaParserJs = _interopRequireDefault(require("ua-parser-js"));
|
13
|
+
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
+
|
16
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
17
|
+
|
18
|
+
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); } }
|
19
|
+
|
20
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
21
|
+
|
22
|
+
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; }
|
23
|
+
|
24
|
+
(0, _mobx.configure)({
|
25
|
+
useProxies: 'never'
|
26
|
+
});
|
27
|
+
|
28
|
+
var DeviceStore = /*#__PURE__*/function () {
|
29
|
+
function DeviceStore() {
|
30
|
+
_classCallCheck(this, DeviceStore);
|
31
|
+
|
32
|
+
_defineProperty(this, "parser", null);
|
33
|
+
|
34
|
+
(0, _mobx.makeAutoObservable)(this);
|
35
|
+
this.parser = new _uaParserJs.default();
|
36
|
+
}
|
37
|
+
|
38
|
+
_createClass(DeviceStore, [{
|
39
|
+
key: "device",
|
40
|
+
get: function get() {
|
41
|
+
return this.parser.getDevice();
|
42
|
+
}
|
43
|
+
}, {
|
44
|
+
key: "isMobile",
|
45
|
+
get: function get() {
|
46
|
+
return this.device.type === 'mobile';
|
47
|
+
}
|
48
|
+
}, {
|
49
|
+
key: "isTablet",
|
50
|
+
get: function get() {
|
51
|
+
return this.device.type === 'tablet';
|
52
|
+
}
|
53
|
+
}]);
|
54
|
+
|
55
|
+
return DeviceStore;
|
56
|
+
}();
|
57
|
+
|
58
|
+
var _default = new DeviceStore();
|
59
|
+
|
60
|
+
exports.default = _default;
|
package/build/store/index.js
CHANGED
@@ -44,6 +44,8 @@ var Store = /*#__PURE__*/function () {
|
|
44
44
|
|
45
45
|
_defineProperty(this, "listeners", {});
|
46
46
|
|
47
|
+
_defineProperty(this, "controlsVisible", true);
|
48
|
+
|
47
49
|
(0, _mobx.makeAutoObservable)(this);
|
48
50
|
}
|
49
51
|
|
@@ -76,6 +78,16 @@ var Store = /*#__PURE__*/function () {
|
|
76
78
|
value: function setConfig(config) {
|
77
79
|
this.config = config;
|
78
80
|
}
|
81
|
+
}, {
|
82
|
+
key: "hideControls",
|
83
|
+
value: function hideControls() {
|
84
|
+
this.controlsVisible = false;
|
85
|
+
}
|
86
|
+
}, {
|
87
|
+
key: "showControls",
|
88
|
+
value: function showControls() {
|
89
|
+
this.controlsVisible = true;
|
90
|
+
}
|
79
91
|
}, {
|
80
92
|
key: "addEventListener",
|
81
93
|
value: function addEventListener(event, callback) {
|
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.60",
|
7
7
|
"private": false,
|
8
8
|
"main": "build/index.js",
|
9
9
|
"module": "build/index.js",
|
@@ -11,9 +11,9 @@
|
|
11
11
|
"build",
|
12
12
|
"README.md"
|
13
13
|
],
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
"engines": {
|
15
|
+
"node": "^16.0.0"
|
16
|
+
},
|
17
17
|
"scripts": {
|
18
18
|
"start": "npm run build:sass && babel src --watch -d build --copy-files",
|
19
19
|
"start-example": "cd ./example && npm run start",
|
@@ -35,7 +35,8 @@
|
|
35
35
|
"react-dom": "^17.0.2",
|
36
36
|
"screenfull": "^6.0.1",
|
37
37
|
"three": "^0.137.5",
|
38
|
-
"three-device-orientation": "^1.0.3"
|
38
|
+
"three-device-orientation": "^1.0.3",
|
39
|
+
"ua-parser-js": "^1.0.2"
|
39
40
|
},
|
40
41
|
"devDependencies": {
|
41
42
|
"@babel/cli": "^7.17.0",
|