hart-estate-widget 0.0.51 → 0.0.52

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.
@@ -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: 545px){.widget-application .widget-logo{left:20px;top:20px}}.widget-application .widget-logo img{display:block;width:82px;height:82px;object-fit:contain;object-position:center}@media only screen and (max-width: 900px){.widget-application .widget-logo img{width:65px;height:65px}}.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{position:absolute;right:45px;top:36px;z-index:3;ouline:none;border:none;box-shadow:none;background:rgba(0,0,0,0);cursor:pointer;padding:10px}@media only screen and (max-width: 545px){.widget-application .widget-enter-fullscreen,.widget-application .widget-exit-fullscreen{right:20px;top:20px}}.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}@media only screen and (max-width: 900px){.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{width:40px;height:40px}}.widget-application .widget-close{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3;right:15px;top:15px;color:#000;background-color:#fac62d;padding:5px 15px;border-radius:10px;font-size:.8rem;border:none;cursor:pointer}.widget-application .widget-close:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab-buttons{position:absolute;z-index:3;right:44px;bottom:35px;display:flex;align-items:center;justify-content:flex-end}@media only screen and (max-width: 545px){.widget-application .widget-tab-buttons{right:20px;bottom:20px}}.widget-application .widget-tab-button{ouline:none;border:none;box-shadow:none;background: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:20px}}@media only screen and (max-width: 545px){.widget-application .widget-tab-button{margin-left:10px}}.widget-application .widget-tab-button--active{background-color:#fac62d}.widget-application .widget-tab{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:60px 30px}@media(max-width: 630px){.widget-application .widget-tab{padding:60px 15px}}.widget-application .widget-tab__image{max-width:100%;max-height:100%;object-fit:contain;display:block}.widget-application .widget-tab__threesixty{width:100%;height:100%;touch-action:none;-webkit-touch-action:none}.widget-application .widget-tab__threesixty-start{ouline:none;border:none;box-shadow:none;background: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:45px;transform:none}}@media only screen and (max-width: 545px){.widget-application .widget-tab__threesixty-start{left:20px;bottom:20px}}.widget-application .widget-tab__threesixty-start img{display:block;margin-right:20px;position:relative;top:2px}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start img{width:30px;margin-right:0}}.widget-application .widget-tab__threesixty-start span{font-size:24px;font-weight:bold;color:#413e3e;text-transform:uppercase}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start span{display:none}}.widget-application .widget-tab__threesixty-container{width:100% !important;height:100% !important;position:relative;background-image:none !important}.widget-application .widget-tab__threesixty-container img{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);max-width:100%;max-height:100%;width:600px;height:600px;object-fit:contain;opacity:0;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab__threesixty-container img.active{opacity:1}.widget-application .widget-tab__threesixty--active .widget-tab__threesixty-container{cursor:move}.widget-application .widget-tab-menu{position:absolute;z-index:3;left:15px;top:15px;max-height:100%;overflow-y:auto;padding-bottom:30px}.widget-application .widget-tab-menu__wallpapers{display:flex;flex-wrap:wrap;align-items:flex-start;margin-top:10px;width:100%}.widget-application .widget-tab-menu__wallpapers img{width:30px;height:30px;display:block;object-fit:cover;cursor:pointer;margin-right:10px;margin-block-end:10px}.widget-application .widget-tab-menu ul{list-style-type:none}.widget-application .widget-tab-menu ul li{color:#000;background-color:#fac62d;padding:5px 15px;border-radius:10px;font-size:.7rem;border:none;cursor:pointer;margin-bottom:15px;width:200px;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab-menu ul li label{display:flex;cursor:inherit;width:100%}.widget-application .widget-tab-menu ul li input[type=color]{cursor:pointer;margin-left:auto;width:50px;height:20px;border:0;border-radius:5px}.widget-application .widget-tab-menu ul li input[type=color]::-webkit-color-swatch-wrapper{display:none !important}.widget-application .widget-tab-menu ul li input[type=file]{display:none}.widget-application .widget-tab-menu ul li:nth-child(1){position:relative}.widget-application .widget-tab-menu ul li:nth-child(1)::after{--bar-width: 2px;content:"";width:20px;height:15px;display:block;background:repeating-linear-gradient(180deg, #000000, #000000 var(--bar-width), rgba(0, 0, 0, 0) var(--bar-width), rgba(0, 0, 0, 0) calc(var(--bar-width) * 3));position:absolute;right:10px;top:50%;transform:translateY(-50%)}.widget-application .widget-instructions{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-position:center;background-repeat:no-repeat;background-size:cover}.widget-application .widget-instructions__content{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background-color:rgba(234,234,234,.85);border-radius:20px;overflow:hidden;width:400px;max-width:calc(100% - 60px);padding:36px 30px 30px 30px;backdrop-filter:blur(5px);-moz-backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.widget-application .widget-instructions__steps{display:flex;align-items:flex-start;justify-content:center}.widget-application .widget-instructions__step{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;margin:0 15px}@media only screen and (max-width: 900px){.widget-application .widget-instructions__step{margin:0 10px}}.widget-application .widget-instructions__step img{display:block;width:52px;height:80px;object-fit:contain;object-position:center}.widget-application .widget-instructions__step p{color:#413e3e;font-size:20px;font-weight:bold;text-align:center;margin-top:10px;max-width:135px}@media only screen and (max-width: 900px){.widget-application .widget-instructions__step p{font-size:18px}}.widget-application .widget-instructions button{ouline:none;border:none;box-shadow:none;background: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 .widget-tab__panorama{width:100%;height:100%;position:absolute;left:0;top:0;z-index:2}.widget-application .widget-tab__panorama-overlay{width:100%;height:100%;overflow:hidden;background:#fff !important}.widget-application .widget-tab__panorama-controls{position:absolute;left:50%;bottom:35px;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:38px;background-color:rgba(0,0,0,.2);transform:translateX(-50%);backdrop-filter:blur(5px);-moz-backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls{right:45px;left:unset;transform:none;bottom:120px}}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-controls{right:20px;bottom:100px}}.widget-application .widget-tab__panorama-controls-button{ouline:none;border:none;box-shadow:none;background: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}}.widget-application .widget-tab__panorama-controls-button img{display:block}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.7)}}.widget-application .widget-tab__panorama-controls-button:nth-last-child(1){margin-right:0}.widget-application .widget-tab__panorama-map{position:absolute;left:45px;bottom:35px;z-index:3;border-radius:10px;opacity:1;transition:opacity .5s;overflow:hidden}@media only screen and (max-width: 545px){.widget-application .widget-tab__panorama-map{left:20px;bottom:20px}}.widget-application .widget-tab__panorama-map--hidden{opacity:0;pointer-events:none}.widget-application .widget-tab__panorama-map img{width:195px;border-radius:inherit;display:block;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map img{width:150px}}.widget-application .widget-tab__panorama-map img:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab__panorama-map svg{position:absolute;left:0;top:0;width:195px;height:100%;z-index:3;display:block;border-radius:inherit}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-map svg{width:150px}}.widget-application .widget-tab__panorama-map svg polygon{opacity:0;fill:#fac62d;cursor:pointer}.widget-application .widget-tab__panorama-map svg polygon:hover{opacity:.3}.widget-application .widget-tab__panorama-map__fov{position:absolute;left:0;top:0;width:0px;height:0px;border-radius:50%;border:30px solid rgba(0,0,0,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__dot{position:absolute;left:0;top:0;transform:translate(-50%, -50%);width:5px;height:5px;background-color:#fac62d;border-radius:50%;z-index:5;visibility:hidden;pointer-events:none}.widget-application .widget-tab__panorama-map__dot--big{border:2px solid #fac62d;box-shadow:inset 0 0 0 2px #fff;width:15px;height:15px}.widget-application .widget-tab__panorama-map__dot--active{visibility:visible}.widget-loader{display:block;position:relative;width:80px;height:80px}.widget-loader--absolute{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}.widget-loader--sm{transform:translate(-50%, -50%) scale(0.75)}.widget-loader div{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:#fac62d;animation-timing-function:cubic-bezier(0, 1, 1, 0)}.widget-loader div:nth-child(1){left:8px;animation:widget-loader-1 .6s infinite}.widget-loader div:nth-child(2){left:8px;animation:widget-loader-2 .6s infinite}.widget-loader div:nth-child(3){left:32px;animation:widget-loader-2 .6s infinite}.widget-loader div:nth-child(4){left:56px;animation:widget-loader-3 .6s infinite}@keyframes widget-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes widget-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes widget-loader-2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}.widget-application .widget-tab__model{width:100%;height:100%;position:absolute;left:0;top:0;z-index:2}.widget-application .widget-tab__model-scene{width:100%;height:100%;display:block}.widget-application .widget-tab__model-joystick{position:absolute;left:100px;bottom:100px;opacity:0;pointer-events:none}@media only screen and (max-width: 545px){.widget-application .widget-tab__model-joystick{left:50%;transform:translateX(-50%)}}.widget-application .widget-tab__model-joystick--active{opacity:1;pointer-events:unset}/*# sourceMappingURL=app.css.map */
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}}.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:20px}}.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{display:block;width:50px;height:50px;object-fit:contain;object-position:center}@media only screen and (max-width: 900px){.widget-application .widget-enter-fullscreen img,.widget-application .widget-exit-fullscreen img{width:40px;height:40px}}.widget-application .widget-close{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3;right:15px;top:15px;color:#000;background-color:#fac62d;padding:5px 15px;border-radius:10px;font-size:.8rem;border:none;cursor:pointer}.widget-application .widget-close:hover{box-shadow:1px 1px 10px rgba(0,0,0,.15)}.widget-application .widget-tab-buttons{position:absolute;z-index:3;right:44px;bottom:35px;display:flex;align-items:center;justify-content:flex-end}@media only screen and (max-width: 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:10px}}.widget-application .widget-tab-button--active{background-color:#fac62d}.widget-application .widget-tab{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:60px 30px}@media(max-width: 630px){.widget-application .widget-tab{padding:60px 15px}}.widget-application .widget-tab__image{max-width:100%;max-height:100%;object-fit:contain;display:block}.widget-application .widget-tab__threesixty{width:100%;height:100%;touch-action:none;-webkit-touch-action:none}.widget-application .widget-tab__threesixty-start{ouline:none;border:none;box-shadow:none;background: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}}.widget-application .widget-tab__threesixty-start img{display:block;margin-right:20px;position:relative;top:2px}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start img{width:30px;margin-right:0}}.widget-application .widget-tab__threesixty-start span{font-size:24px;font-weight:bold;color:#413e3e;text-transform:uppercase}@media only screen and (max-width: 900px){.widget-application .widget-tab__threesixty-start span{display:none}}.widget-application .widget-tab__threesixty-container{width:100% !important;height:100% !important;position:relative;background-image:none !important}.widget-application .widget-tab__threesixty-container img{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);max-width:100%;max-height:100%;width:600px;height:600px;object-fit:contain;opacity:0;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:#000;background-color:#fac62d;padding:5px 15px;border-radius:10px;font-size:.7rem;border:none;cursor:pointer;margin-bottom:15px;width:200px;user-select:none;-webkit-user-select:none;user-drag:none;-webkit-user-drag:none}.widget-application .widget-tab-menu ul li label{display:flex;cursor:inherit;width:100%}.widget-application .widget-tab-menu ul li input[type=color]{cursor:pointer;margin-left:auto;width:50px;height:20px;border:0;border-radius:5px}.widget-application .widget-tab-menu ul li input[type=color]::-webkit-color-swatch-wrapper{display:none !important}.widget-application .widget-tab-menu ul li input[type=file]{display:none}.widget-application .widget-tab-menu ul li:nth-child(1){position:relative}.widget-application .widget-tab-menu ul li:nth-child(1)::after{--bar-width: 2px;content:"";width:20px;height:15px;display:block;background:repeating-linear-gradient(180deg, #000000, #000000 var(--bar-width), rgba(0, 0, 0, 0) var(--bar-width), rgba(0, 0, 0, 0) calc(var(--bar-width) * 3));position:absolute;right:10px;top:50%;transform:translateY(-50%)}.widget-application .widget-instructions{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-position:center;background-repeat:no-repeat;background-size:cover}.widget-application .widget-instructions__content{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background-color:rgba(234,234,234,.85);border-radius:20px;overflow:hidden;width:400px;max-width:calc(100% - 60px);padding:36px 30px 30px 30px;backdrop-filter:blur(5px);-moz-backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.widget-application .widget-instructions__steps{display:flex;align-items:flex-start;justify-content:center}.widget-application .widget-instructions__step{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;margin:0 15px}@media only screen and (max-width: 900px){.widget-application .widget-instructions__step{margin:0 10px}}.widget-application .widget-instructions__step img{display:block;width:52px;height:80px;object-fit:contain;object-position:center}.widget-application .widget-instructions__step p{color:#413e3e;font-size:20px;font-weight:bold;text-align:center;margin-top:10px;max-width:135px}@media only screen and (max-width: 900px){.widget-application .widget-instructions__step p{font-size:18px}}.widget-application .widget-instructions button{ouline:none;border:none;box-shadow:none;background: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 .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}}.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}}.widget-application .widget-tab__panorama-controls-button img{display:block}@media only screen and (max-width: 900px){.widget-application .widget-tab__panorama-controls-button img{transform:scale(0.7)}}.widget-application .widget-tab__panorama-controls-button:nth-last-child(1){margin-right:0}.widget-application .widget-tab__panorama-map{position:absolute;left:45px;bottom:35px;z-index:3;border-radius:10px;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}.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:30px solid rgba(0,0,0,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,mBACE,sBACA,8BACA,SACA,UAEF,UACE,eAEF,oBACE,YAEA,WACA,2BACA,gBACA,kBACA,UACA,iBCfM,KDiBN,+EACE,qCACA,mCACA,kCACA,aACA,gBACA,qBACA,MClBQ,QDoBV,iCACE,kBACA,UACA,SACA,UACA,0CALF,iCAMI,UACA,UACF,qCACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,qCAOI,WACA,aAEN,yFAEE,kBACA,WACA,SACA,UErDF,YACA,YACA,gBACA,yBACA,eFmDE,aACA,0CARF,yFASI,WACA,UACF,iGACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,iGAOI,WACA,aAEN,kCACE,kBACA,aACA,mBACA,uBACA,UACA,WACA,SACA,MCxEI,KDyEJ,iBCtEQ,QDuER,iBACA,mBACA,gBACA,YACA,eACA,wCACE,wCGlFJ,wCACE,kBACA,UACA,WACA,YACA,aACA,mBACA,yBACA,0CARF,wCASI,WACA,aACJ,uCDdA,YACA,YACA,gBACA,yBACA,eCYE,WACA,YACA,kBACA,aACA,mBACA,uBACA,iBFhBG,QEiBH,MFbQ,QEcR,eACA,iBACA,iBACA,iBACA,0CAdF,uCAeI,WACA,YACA,eACA,kBACF,0CAnBF,uCAoBI,kBACF,+CACE,iBF5BM,QE8BV,gCACE,WACA,YACA,aACA,mBACA,uBACA,kBACA,yBAPF,gCAQI,mBACF,uCACE,eACA,gBACA,mBACA,cACF,4CACE,WACA,YACA,kBACA,0BACA,kDDzDJ,YACA,YACA,gBACA,yBACA,eCuDM,kBACA,SACA,YACA,2BACA,aACA,mBACA,uBACA,sBACA,iBF7DD,QE8DC,mBACA,YACA,0CAbF,kDAcI,YACA,WACA,UACA,UACA,gBACF,0CAnBF,kDAoBI,UACA,aACF,sDACE,cACA,kBACA,kBACA,QACA,0CALF,sDAMI,WACA,gBACJ,uDACE,eACA,iBACA,MFhFE,QEiFF,yBACA,0CALF,uDAMI,cACN,sDACE,sBACA,uBACA,kBACA,iCACA,0DACE,kBACA,SACA,QACA,gCACA,eACA,gBACA,YACA,aACA,mBACA,UFhGR,iBACA,yBACA,eACA,uBE+FQ,iEACE,UAEJ,sFACE,YAEN,qCACE,kBACA,UACA,UACA,SACA,gBACA,gBACA,oBACA,iDACE,aACA,eACA,uBACA,gBACA,WACA,qDACE,WACA,YACA,cACA,iBACA,eACA,kBACA,sBACJ,wCACE,qBACA,2CACE,MFzIF,KE0IE,iBFvIE,QEwIF,iBACA,mBACA,gBACA,YACA,eACA,mBACA,YFzIR,iBACA,yBACA,eACA,uBEwIQ,iDACE,aACA,eACA,WAEA,6DACE,eACA,iBACA,WACA,YACA,SACA,kBACA,2FACE,wBACJ,4DACE,aACJ,wDACE,kBACA,+DACE,iBACA,WACA,WACA,YACA,cACA,gKACA,kBACA,WACA,QACA,2BCjLZ,yCACE,kBACA,UACA,OACA,MACA,WACA,YACA,aACA,mBACA,uBACA,2BACA,4BACA,sBAEA,kDACE,aACA,sBACA,mBACA,2BACA,uCACA,mBACA,gBACA,YACA,4BACA,4BFpBJ,0BACA,+BACA,kCEoBE,gDACE,aACA,uBACA,uBACF,+CACE,aACA,sBACA,mBACA,2BACA,cACA,0CANF,+CAOI,eACF,mDACE,cACA,WACA,YACA,mBACA,uBACF,iDACE,MHtCI,QGuCJ,eACA,iBACA,kBACA,gBACA,gBACA,0CAPF,iDAQI,gBACN,gDFxDF,YACA,YACA,gBACA,yBACA,eEsDI,aACA,mBACA,uBACA,YACA,eACA,mBACA,iBHxDM,QGyDN,MHvDM,QGwDN,eACA,iBACA,yBACA,wBCjEF,0CACE,WACA,YACA,kBACA,OACA,MACA,UACA,kDACE,WACA,YACA,gBACA,2BACF,mDACE,kBACA,SACA,YACA,aACA,mBACA,uBACA,YACA,mBACA,gCACA,2BHnBN,0BACA,+BACA,kCGmBM,0CAZF,mDAaI,WACA,WACA,eACA,cACF,0CAjBF,mDAkBI,WACA,cACF,0DHpCN,YACA,YACA,gBACA,yBACA,eGkCQ,WACA,YACA,kBACA,iBJrCF,KIsCE,aACA,mBACA,uBACA,kBACA,0CAVF,0DAWI,WACA,aACF,8DACE,cACA,0CAFF,8DAGI,sBACJ,4EACE,eACN,8CACE,kBACA,UACA,YACA,UACA,mBACA,UACA,uBACA,gBACA,0CATF,8CAUI,UACA,aACF,sDACE,UACA,oBACF,kDACE,YACA,sBACA,cJ5DR,iBACA,yBACA,eACA,uBI2DQ,0CALF,kDAMI,aACF,wDACE,wCACJ,kDACE,kBACA,OACA,MACA,YACA,YACA,UACA,cACA,sBACA,0CATF,kDAUI,aACF,0DACE,UACA,KJpFA,QIqFA,eACA,gEACE,WACN,mDACE,kBACA,OACA,MACA,UACA,WACA,kBACA,gCACA,0CACA,6CACA,yBACA,UACA,oBACF,mDACE,kBACA,OACA,MACA,gCACA,UACA,WACA,iBJ5GE,QI6GF,kBACA,UACA,kBACA,oBACA,wDACE,yBACA,gCACA,WACA,YACF,2DAGE,mBChIZ,eACE,cACA,kBACA,WACA,YACA,yBACE,kBACA,SACA,QACA,gCACF,mBACE,4CACF,mBACE,kBACA,SACA,WACA,YACA,kBACA,WLXQ,QKYR,mDACA,gCACE,SACA,uCACF,gCACE,SACA,uCACF,gCACE,UACA,uCACF,gCACE,UACA,uCAEN,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,0BAEF,KACE,8BChDA,uCACE,WACA,YACA,kBACA,OACA,MACA,UACA,6CACE,WACA,YACA,cACF,gDACE,kBACA,WACA,aACA,UACA,oBACA,0CANF,gDAOI,SACA,4BACF,wDACE,UACA","file":"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/loader.sass","../../../src/assets/sass/components/model.sass"],"names":[],"mappings":"AAGA,mBACE,sBACA,8BACA,SACA,UAEF,UACE,eAEF,oBACE,YAEA,WACA,2BACA,gBACA,kBACA,UACA,iBCfM,KDiBN,+EACE,qCACA,mCACA,kCACA,aACA,gBACA,qBACA,MClBQ,QDoBV,iCACE,kBACA,UACA,SACA,UACA,0CALF,iCAMI,UACA,UACF,qCACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,qCAOI,WACA,aAEN,yFAEE,kBACA,WACA,SACA,UErDF,YACA,YACA,gBACA,yBACA,eFmDE,aACA,0CARF,yFASI,WACA,UACF,iGACE,cACA,WACA,YACA,mBACA,uBACA,0CANF,iGAOI,WACA,aAEN,kCACE,kBACA,aACA,mBACA,uBACA,UACA,WACA,SACA,MCxEI,KDyEJ,iBCtEQ,QDuER,iBACA,mBACA,gBACA,YACA,eACA,wCACE,wCGlFJ,wCACE,kBACA,UACA,WACA,YACA,aACA,mBACA,yBACA,0CARF,wCASI,sBACA,WACA,aACJ,uCDfA,YACA,YACA,gBACA,yBACA,eCaE,WACA,YACA,kBACA,aACA,mBACA,uBACA,iBFjBG,QEkBH,MFdQ,QEeR,eACA,iBACA,iBACA,iBACA,0CAdF,uCAeI,WACA,YACA,eACA,gBACA,iBACF,0CApBF,uCAqBI,iBACF,+CACE,iBF9BM,QEgCV,gCACE,WACA,YACA,aACA,mBACA,uBACA,kBACA,yBAPF,gCAQI,mBACF,uCACE,eACA,gBACA,mBACA,cACF,4CACE,WACA,YACA,kBACA,0BACA,kDD3DJ,YACA,YACA,gBACA,yBACA,eCyDM,kBACA,SACA,YACA,2BACA,aACA,mBACA,uBACA,sBACA,iBF/DD,QEgEC,mBACA,YACA,0CAbF,kDAcI,YACA,WACA,UACA,UACA,YACA,gBACF,sDACE,cACA,kBACA,kBACA,QACA,0CALF,sDAMI,WACA,gBACJ,uDACE,eACA,iBACA,MFhFE,QEiFF,yBACA,0CALF,uDAMI,cACN,sDACE,sBACA,uBACA,kBACA,iCACA,0DACE,kBACA,SACA,QACA,gCACA,eACA,gBACA,YACA,aACA,mBACA,UACA,oBFjGR,iBACA,yBACA,eACA,uBEgGQ,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,MF1IF,KE2IE,iBFxIE,QEyIF,iBACA,mBACA,gBACA,YACA,eACA,mBACA,YF1IR,iBACA,yBACA,eACA,uBEyIQ,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,2BClLZ,yCACE,kBACA,UACA,OACA,MACA,WACA,YACA,aACA,mBACA,uBACA,2BACA,4BACA,sBAEA,kDACE,aACA,sBACA,mBACA,2BACA,uCACA,mBACA,gBACA,YACA,4BACA,4BFpBJ,0BACA,+BACA,kCEoBE,gDACE,aACA,uBACA,uBACF,+CACE,aACA,sBACA,mBACA,2BACA,cACA,0CANF,+CAOI,eACF,mDACE,cACA,WACA,YACA,mBACA,uBACF,iDACE,MHtCI,QGuCJ,eACA,iBACA,kBACA,gBACA,gBACA,0CAPF,iDAQI,gBACN,gDFxDF,YACA,YACA,gBACA,yBACA,eEsDI,aACA,mBACA,uBACA,YACA,eACA,mBACA,iBHxDM,QGyDN,MHvDM,QGwDN,eACA,iBACA,yBACA,wBCjEF,0CACE,WACA,YACA,kBACA,OACA,MACA,UACA,kDACE,WACA,YACA,gBACA,2BACA,oDACE,wBACF,yDACE,yBACJ,mDACE,kBACA,UACA,SACA,YACA,aACA,mBACA,uBACA,YACA,mBACA,gCACA,2BHxBN,0BACA,+BACA,kCGwBM,0CAbF,mDAcI,aACF,0DHnCN,YACA,YACA,gBACA,yBACA,eGiCQ,WACA,YACA,kBACA,iBJpCF,KIqCE,aACA,mBACA,uBACA,kBACA,0CAVF,0DAWI,WACA,aACF,0CAbF,0DAcI,mBACF,8DACE,cACA,0CAFF,8DAGI,sBACJ,4EACE,eACN,8CACE,kBACA,UACA,YACA,UACA,mBACA,sBACA,iBJ3DA,KI4DA,UACA,uBACA,0CAVF,8CAWI,UACA,YACA,qBACA,yBAEE,0DACE,UACJ,sDACE,8BAGI,yEACE,uBACV,0CAxBF,8CAyBI,sBACF,sDACE,UACA,oBACF,kDACE,YACA,mBACA,cJ3ER,iBACA,yBACA,eACA,uBI0EQ,wDACE,wCACJ,kDACE,kBACA,OACA,MACA,YACA,YACA,UACA,cACA,sBACA,0DACE,UACA,KJ/FA,QIgGA,eACA,gEACE,WACA,0CAFF,gEAGI,WACR,mDACE,kBACA,OACA,MACA,UACA,WACA,kBACA,gCACA,0CACA,6CACA,yBACA,UACA,oBACA,2DACE,WACA,kBACA,UACA,SACA,QACA,iDACA,WACA,YACA,iBJ3HA,QI4HA,kBACA,yBACA,gCCrIZ,eACE,cACA,kBACA,WACA,YACA,yBACE,kBACA,SACA,QACA,gCACF,mBACE,4CACF,mBACE,kBACA,SACA,WACA,YACA,kBACA,WLXQ,QKYR,mDACA,gCACE,SACA,uCACF,gCACE,SACA,uCACF,gCACE,UACA,uCACF,gCACE,UACA,uCAEN,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,mBACF,KACE,oBAEJ,2BACE,GACE,0BAEF,KACE,8BChDA,uCACE,WACA,YACA,kBACA,OACA,MACA,UACA,6CACE,WACA,YACA,cACF,gDACE,kBACA,WACA,aACA,UACA,oBACA,0CANF,gDAOI,SACA,4BACF,wDACE,UACA","file":"app.css"}
@@ -15,8 +15,13 @@
15
15
  height: 100%
16
16
  overflow: hidden
17
17
  background: $white !important
18
+ *
19
+ display: none !important
20
+ canvas
21
+ display: block !important
18
22
  &-controls
19
23
  position: absolute
24
+ z-index: 2
20
25
  left: 50%
21
26
  bottom: 35px
22
27
  display: flex
@@ -28,13 +33,7 @@
28
33
  transform: translateX(-50%)
29
34
  @include blurBackground(5px)
30
35
  @media #{$tablet}
31
- right: 45px
32
- left: unset
33
- transform: none
34
- bottom: 120px
35
- @media #{$mobile}
36
- right: 20px
37
- bottom: 100px
36
+ bottom: 20px
38
37
  &-button
39
38
  @include customButton
40
39
  width: 55px
@@ -48,6 +47,8 @@
48
47
  @media #{$tablet}
49
48
  width: 40px
50
49
  height: 40px
50
+ @media #{$mobile}
51
+ margin-right: 13px
51
52
  img
52
53
  display: block
53
54
  @media #{$tablet}
@@ -60,22 +61,34 @@
60
61
  bottom: 35px
61
62
  z-index: 3
62
63
  border-radius: 10px
64
+ border: 8px solid $white
65
+ background-color: $white
63
66
  opacity: 1
64
67
  transition: opacity .5s
65
- overflow: hidden
66
- @media #{$mobile}
68
+ @media #{$tablet}
67
69
  left: 20px
68
70
  bottom: 20px
71
+ transform: scale(.6)
72
+ transform-origin: 0% 100%
73
+ svg
74
+ polygon
75
+ opacity: 0
76
+ &--scaled
77
+ transform: scale(1) !important
78
+ svg
79
+ polygon
80
+ &:active
81
+ opacity: .3 !important
82
+ @media #{$mobile}
83
+ transform: scale(.4)
69
84
  &--hidden
70
85
  opacity: 0
71
86
  pointer-events: none
72
87
  img
73
88
  width: 195px
74
- border-radius: inherit
89
+ border-radius: none
75
90
  display: block
76
91
  @include noSelect
77
- @media #{$tablet}
78
- width: 150px
79
92
  &:hover
80
93
  box-shadow: 1px 1px 10px rgba(0,0,0,0.15)
81
94
  svg
@@ -87,14 +100,14 @@
87
100
  z-index: 3
88
101
  display: block
89
102
  border-radius: inherit
90
- @media #{$tablet}
91
- width: 150px
92
103
  polygon
93
104
  opacity: 0
94
105
  fill: $mainColor
95
106
  cursor: pointer
96
107
  &:hover
97
108
  opacity: .3
109
+ @media #{$tablet}
110
+ opacity: 0
98
111
  &__fov
99
112
  position: absolute
100
113
  left: 0
@@ -108,24 +121,16 @@
108
121
  transform-origin: 50% 50%
109
122
  z-index: 4
110
123
  pointer-events: none
111
- &__dot
112
- position: absolute
113
- left: 0
114
- top: 0
115
- transform: translate(-50%, -50%)
116
- width: 5px
117
- height: 5px
118
- background-color: $mainColor
119
- border-radius: 50%
120
- z-index: 5
121
- visibility: hidden
122
- pointer-events: none
123
- &--big
124
- border: 2px solid $mainColor
125
- box-shadow: inset 0 0 0 2px #ffffff
124
+ &::before
125
+ content: ''
126
+ position: absolute
127
+ z-index: 5
128
+ left: 50%
129
+ top: 50%
130
+ transform: translate(-50%, -50%) translateY(-5px)
126
131
  width: 15px
127
132
  height: 15px
128
- &--active
129
- // background-color: red
130
- // border: 2px solid red
131
- visibility: visible
133
+ background-color: $mainColor
134
+ border-radius: 50%
135
+ border: 2px solid $mainColor
136
+ box-shadow: inset 0 0 0 2px #ffffff
@@ -10,7 +10,8 @@
10
10
  display: flex
11
11
  align-items: center
12
12
  justify-content: flex-end
13
- @media #{$mobile}
13
+ @media #{$tablet}
14
+ flex-direction: column
14
15
  right: 20px
15
16
  bottom: 20px
16
17
  .widget-tab-button
@@ -31,9 +32,10 @@
31
32
  width: 60px
32
33
  height: 60px
33
34
  font-size: 24px
34
- margin-left: 20px
35
+ margin-left: 0px
36
+ margin-top: 20px
35
37
  @media #{$mobile}
36
- margin-left: 10px
38
+ margin-top: 10px
37
39
  &--active
38
40
  background-color: $mainColor
39
41
 
@@ -73,11 +75,9 @@
73
75
  height: 60px
74
76
  width: 60px
75
77
  padding: 0
76
- left: 45px
77
- transform: none
78
- @media #{$mobile}
79
78
  left: 20px
80
79
  bottom: 20px
80
+ transform: none
81
81
  img
82
82
  display: block
83
83
  margin-right: 20px
@@ -109,6 +109,7 @@
109
109
  height: 600px
110
110
  object-fit: contain
111
111
  opacity: 0
112
+ pointer-events: none
112
113
  @include noSelect
113
114
  &.active
114
115
  opacity: 1
@@ -34,7 +34,7 @@ html, body
34
34
  left: 45px
35
35
  top: 30px
36
36
  z-index: 3
37
- @media #{$mobile}
37
+ @media #{$tablet}
38
38
  left: 20px
39
39
  top: 20px
40
40
  img
@@ -55,7 +55,7 @@ html, body
55
55
  z-index: 3
56
56
  @include customButton
57
57
  padding: 10px
58
- @media #{$mobile}
58
+ @media #{$tablet}
59
59
  right: 20px
60
60
  top: 20px
61
61
  img
@@ -19,10 +19,14 @@ var _threeDeviceOrientation = _interopRequireDefault(require("three-device-orien
19
19
 
20
20
  var _geometric = require("geometric");
21
21
 
22
- var _deviceOrientationStatus = require("../enums/deviceOrientationStatus");
22
+ var _deviceOrientationStatuses = require("../enums/deviceOrientationStatuses");
23
+
24
+ var _deviceWidth = require("../enums/deviceWidth");
23
25
 
24
26
  var _imageExtentions = require("../enums/imageExtentions");
25
27
 
28
+ var _helpers = require("../utils/helpers");
29
+
26
30
  var _panoramaHelpers = require("../utils/panoramaHelpers");
27
31
 
28
32
  var _Loader = _interopRequireDefault(require("./Loader"));
@@ -242,58 +246,74 @@ var PanoramaTab = function PanoramaTab(_ref4) {
242
246
  images = _ref4.images,
243
247
  disabled = _ref4.disabled;
244
248
 
245
- var _useState = (0, _react.useState)(true),
249
+ var _useState = (0, _react.useState)(_deviceOrientationStatuses.deviceOrientationStatuses.DENIED),
246
250
  _useState2 = _slicedToArray(_useState, 2),
247
- showInstructions = _useState2[0],
248
- setInstructionsState = _useState2[1];
251
+ deviceOrientationStatus = _useState2[0],
252
+ setDeviceOrientationStatus = _useState2[1];
249
253
 
250
254
  var _useState3 = (0, _react.useState)(true),
251
255
  _useState4 = _slicedToArray(_useState3, 2),
252
- loadingState = _useState4[0],
253
- setLoadingState = _useState4[1];
256
+ showInstructions = _useState4[0],
257
+ setInstructionsState = _useState4[1];
254
258
 
255
- var _useState5 = (0, _react.useState)(0),
259
+ var _useState5 = (0, _react.useState)(true),
256
260
  _useState6 = _slicedToArray(_useState5, 2),
257
- windowWidth = _useState6[0],
258
- setWindowWidth = _useState6[1];
261
+ loadingState = _useState6[0],
262
+ setLoadingState = _useState6[1];
259
263
 
260
- var _useState7 = (0, _react.useState)(true),
264
+ var _useState7 = (0, _react.useState)({
265
+ width: 0,
266
+ height: 0
267
+ }),
261
268
  _useState8 = _slicedToArray(_useState7, 2),
262
- isMapDisabled = _useState8[0],
263
- setMapDisabledState = _useState8[1];
269
+ windowSize = _useState8[0],
270
+ setWindowSize = _useState8[1];
264
271
 
265
272
  var _useState9 = (0, _react.useState)({
266
- X: 1,
267
- Y: 1
273
+ width: '195px',
274
+ height: 'auto'
268
275
  }),
269
276
  _useState10 = _slicedToArray(_useState9, 2),
270
- planScale = _useState10[0],
271
- setPlanScale = _useState10[1];
277
+ mapSize = _useState10[0],
278
+ setMapSize = _useState10[1];
272
279
 
273
- var _useState11 = (0, _react.useState)(false),
280
+ var _useState11 = (0, _react.useState)({
281
+ X: 1,
282
+ Y: 1
283
+ }),
274
284
  _useState12 = _slicedToArray(_useState11, 2),
275
- autoplayEnabled = _useState12[0],
276
- setAutoplayState = _useState12[1];
285
+ planScale = _useState12[0],
286
+ setPlanScale = _useState12[1];
277
287
 
278
- var _useState13 = (0, _react.useState)(cameraFovValues.x1),
288
+ var _useState13 = (0, _react.useState)(true),
279
289
  _useState14 = _slicedToArray(_useState13, 2),
280
- cameraFov = _useState14[0],
281
- setCameraFov = _useState14[1];
290
+ isMapDisabled = _useState14[0],
291
+ setMapDisabledState = _useState14[1];
282
292
 
283
- var _useState15 = (0, _react.useState)(0),
293
+ var _useState15 = (0, _react.useState)(false),
284
294
  _useState16 = _slicedToArray(_useState15, 2),
285
- currentRoomIndex = _useState16[0],
286
- setCurrentRoomIndex = _useState16[1];
295
+ autoplayEnabled = _useState16[0],
296
+ setAutoplayState = _useState16[1];
287
297
 
288
- var _useState17 = (0, _react.useState)([]),
298
+ var _useState17 = (0, _react.useState)(cameraFovValues.x1),
289
299
  _useState18 = _slicedToArray(_useState17, 2),
290
- panoramas = _useState18[0],
291
- setPanoramas = _useState18[1];
300
+ cameraFov = _useState18[0],
301
+ setCameraFov = _useState18[1];
292
302
 
293
- var _useState19 = (0, _react.useState)(null),
303
+ var _useState19 = (0, _react.useState)(0),
294
304
  _useState20 = _slicedToArray(_useState19, 2),
295
- viewer = _useState20[0],
296
- setViewer = _useState20[1];
305
+ currentRoomIndex = _useState20[0],
306
+ setCurrentRoomIndex = _useState20[1];
307
+
308
+ var _useState21 = (0, _react.useState)([]),
309
+ _useState22 = _slicedToArray(_useState21, 2),
310
+ panoramas = _useState22[0],
311
+ setPanoramas = _useState22[1];
312
+
313
+ var _useState23 = (0, _react.useState)(null),
314
+ _useState24 = _slicedToArray(_useState23, 2),
315
+ viewer = _useState24[0],
316
+ setViewer = _useState24[1];
297
317
 
298
318
  var changePanorama = function changePanorama(panorama) {
299
319
  setCurrentRoomIndex(panorama['panorama_index']);
@@ -301,8 +321,33 @@ var PanoramaTab = function PanoramaTab(_ref4) {
301
321
  };
302
322
 
303
323
  var setScale = function setScale() {
324
+ if (!viewer) return;
304
325
  var image = document.querySelector('.widget-tab__panorama-map img');
305
- setPlanScale((0, _panoramaHelpers.getScale)(image, json));
326
+ var _viewer$container = viewer.container,
327
+ clientWidth = _viewer$container.clientWidth,
328
+ clientHeight = _viewer$container.clientHeight;
329
+ var imageWidth = image.naturalWidth;
330
+ var imageHeight = image.naturalHeight;
331
+ var imageDelta = imageWidth / imageHeight;
332
+ var maxWidth = 195;
333
+ var maxHeight = clientHeight - 200;
334
+ var width = maxWidth;
335
+ var height = width / imageDelta;
336
+
337
+ if (height >= maxHeight) {
338
+ height = maxHeight;
339
+ width = height * imageDelta;
340
+ }
341
+
342
+ setMapSize({
343
+ width: "".concat(width, "px"),
344
+ height: "".concat(height, "px")
345
+ });
346
+ setPlanScale((0, _panoramaHelpers.getScale)({
347
+ width: width,
348
+ height: height
349
+ }, json));
350
+ viewer.onWindowResize(clientWidth, clientHeight);
306
351
  };
307
352
 
308
353
  var onImageLoaded = function onImageLoaded() {
@@ -310,12 +355,6 @@ var PanoramaTab = function PanoramaTab(_ref4) {
310
355
  setMapDisabledState(!json);
311
356
  };
312
357
 
313
- var getDotClassName = function getDotClassName(index) {
314
- var className = 'widget-tab__panorama-map__dot widget-tab__panorama-map__dot--big';
315
- if (currentRoomIndex === index) className += ' widget-tab__panorama-map__dot--active';
316
- return className;
317
- };
318
-
319
358
  var getDotPosition = function getDotPosition(_ref5) {
320
359
  var left = _ref5.left,
321
360
  top = _ref5.top;
@@ -346,18 +385,37 @@ var PanoramaTab = function PanoramaTab(_ref4) {
346
385
 
347
386
  if (autoplayEnabled) {
348
387
  viewer.disableAutoRate();
388
+
389
+ if (deviceOrientationStatus === _deviceOrientationStatuses.deviceOrientationStatuses.GRANTED) {
390
+ viewer.enableControl(DEVICEORIENTATION);
391
+ }
392
+
349
393
  return;
350
394
  }
351
395
 
396
+ if (viewer.getControlId() !== 'orbit') {
397
+ viewer.enableControl(ORBIT);
398
+ }
399
+
352
400
  viewer.enableAutoRate();
353
401
  };
354
402
 
355
403
  var updateWindowWidth = function updateWindowWidth() {
356
- return setWindowWidth(window.innerWidth);
404
+ return setWindowSize({
405
+ width: window.innerWidth,
406
+ height: window.innerHeight
407
+ });
408
+ };
409
+
410
+ var rescaleMap = function rescaleMap() {
411
+ var map = document.querySelector('.widget-tab__panorama-map');
412
+ if (!map) return;
413
+ map.classList.remove('widget-tab__panorama-map--scaled');
357
414
  };
358
415
 
359
416
  (0, _react.useEffect)(function () {
360
417
  window.addEventListener('resize', updateWindowWidth);
418
+ updateWindowWidth();
361
419
  return function cleanup() {
362
420
  window.removeEventListener('resize', updateWindowWidth);
363
421
  };
@@ -366,11 +424,10 @@ var PanoramaTab = function PanoramaTab(_ref4) {
366
424
  if (!panoramas.length) return;
367
425
  var container = document.querySelector('.widget-tab__panorama-overlay');
368
426
  var newViewer = new PANOLENS.Viewer({
369
- autoRotateActivationDuration: 1,
427
+ autoRotateActivationDuration: 1000,
428
+ cameraFov: cameraFovValues.x1,
370
429
  autoHideInfospot: false,
371
430
  controlButtons: [],
372
- controlBar: false,
373
- cameraFov: cameraFovValues.x1,
374
431
  container: container
375
432
  });
376
433
 
@@ -394,45 +451,52 @@ var PanoramaTab = function PanoramaTab(_ref4) {
394
451
  newViewer.scene.rotation.y = Math.PI / 2;
395
452
  newViewer.camera.currentFov = cameraFovValues.x1;
396
453
  setViewer(newViewer);
397
- var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1000);
454
+ var camera = new THREE.PerspectiveCamera(75, container.clientWidth / container.clientHeight, 1, 1000);
398
455
  var orientationControls = new _threeDeviceOrientation.default(camera);
399
456
 
457
+ var getAngle = function getAngle(control) {
458
+ if (control.alpha) {
459
+ return control.alpha - THREE.MathUtils.degToRad(control.screenOrientation);
460
+ }
461
+
462
+ return control.getAzimuthalAngle();
463
+ };
464
+
400
465
  var animate = function animate() {
401
466
  window.requestAnimationFrame(animate);
402
- camera.aspect = window.innerWidth / window.innerHeight;
403
- camera.updateProjectionMatrix();
404
467
  orientationControls.update();
405
468
  var fovElement = document.querySelector('.widget-tab__panorama-map__fov');
406
469
  if (!fovElement) return;
407
- var control = newViewer.getControl();
408
- var angle = -(control.alpha || control.getAzimuthalAngle());
470
+ var angle = -getAngle(newViewer.getControl());
409
471
  fovElement.style.transform = "translate(-50%, -50%) rotate(".concat(angle, "rad)");
410
472
  };
411
473
 
412
474
  animate();
413
475
  }, [panoramas]);
414
- (0, _react.useEffect)(setScale, [json, windowWidth]);
476
+ (0, _react.useEffect)(setScale, [json, windowSize, viewer]);
415
477
  (0, _react.useEffect)(function () {
416
478
  return setPanoramas(getPanoramas(json, images, setLoadingState));
417
479
  }, [json, images]);
418
480
 
481
+ var requestDeviceOrientation = function requestDeviceOrientation() {
482
+ return DeviceOrientationEvent.requestPermission().then(function (status) {
483
+ setDeviceOrientationStatus(status);
484
+
485
+ if (status !== _deviceOrientationStatuses.deviceOrientationStatuses.GRANTED) {
486
+ viewer.enableControl(ORBIT);
487
+ return;
488
+ }
489
+
490
+ viewer.enableControl(DEVICEORIENTATION);
491
+ });
492
+ };
493
+
419
494
  var onStart = function onStart() {
420
495
  setInstructionsState(false);
421
496
 
422
497
  try {
423
498
  if (!DeviceOrientationEvent.requestPermission) return;
424
- return DeviceOrientationEvent.requestPermission().then(function (status) {
425
- if (status !== _deviceOrientationStatus.deviceOrientationStatus.GRANTED) {
426
- setTimeout(function () {
427
- return viewer.enableControl(ORBIT);
428
- }, 100);
429
- return;
430
- }
431
-
432
- setTimeout(function () {
433
- return viewer.enableControl(DEVICEORIENTATION);
434
- }, 100);
435
- });
499
+ return requestDeviceOrientation();
436
500
  } catch (error) {
437
501
  console.error(error.message);
438
502
  }
@@ -451,6 +515,17 @@ var PanoramaTab = function PanoramaTab(_ref4) {
451
515
  };
452
516
 
453
517
  var onMapClick = function onMapClick(event) {
518
+ if (loadingState) return;
519
+ var map = document.querySelector('.widget-tab__panorama-map');
520
+
521
+ if (windowSize.width <= _deviceWidth.deviceWidth.tablet) {
522
+ if (!map.classList.contains('widget-tab__panorama-map--scaled')) {
523
+ map.classList.add('widget-tab__panorama-map--scaled');
524
+ return;
525
+ }
526
+ }
527
+
528
+ rescaleMap();
454
529
  var image = document.querySelector('.widget-tab__panorama-map img');
455
530
  var clientX = event.clientX,
456
531
  clientY = event.clientY;
@@ -471,28 +546,22 @@ var PanoramaTab = function PanoramaTab(_ref4) {
471
546
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
472
547
  className: "widget-tab__panorama"
473
548
  }, /*#__PURE__*/_react.default.createElement("div", {
474
- className: "widget-tab__panorama-overlay"
549
+ className: "widget-tab__panorama-overlay",
550
+ onContextMenu: _helpers.preventRightClick
475
551
  }), loadingState && /*#__PURE__*/_react.default.createElement(_Loader.default, {
476
552
  absolute: true
477
553
  }), /*#__PURE__*/_react.default.createElement("div", {
478
554
  className: "widget-tab__panorama-map ".concat(isMapDisabled ? 'widget-tab__panorama-map--hidden' : '')
479
555
  }, /*#__PURE__*/_react.default.createElement("img", {
480
556
  src: planImage,
481
- onLoad: onImageLoaded,
482
- alt: "plan"
483
- }), !isMapDisabled && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, panoramas.map(function (panorama, index) {
484
- return /*#__PURE__*/_react.default.createElement("button", {
485
- key: index,
486
- className: getDotClassName(index),
487
- style: getDotPosition(panorama.userData),
488
- onClick: function onClick() {
489
- return changePanorama(panorama);
490
- }
491
- });
492
- }), /*#__PURE__*/_react.default.createElement("div", {
557
+ style: mapSize,
558
+ alt: "plan",
559
+ onLoad: onImageLoaded
560
+ }), !isMapDisabled && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
493
561
  className: "widget-tab__panorama-map__fov",
494
562
  style: getDotPosition(((_panoramas$currentRoo = panoramas[currentRoomIndex]) === null || _panoramas$currentRoo === void 0 ? void 0 : _panoramas$currentRoo.userData) || getDefaultUserData())
495
563
  }), /*#__PURE__*/_react.default.createElement("svg", {
564
+ width: mapSize.width,
496
565
  key: "X-".concat(planScale.X, "-Y-").concat(planScale.Y),
497
566
  onClick: onMapClick
498
567
  }, panoramas.map(function (_ref10, index) {
@@ -13,6 +13,8 @@ var _panzoom = _interopRequireDefault(require("panzoom"));
13
13
 
14
14
  var _threesixty = _interopRequireDefault(require("../threesixty"));
15
15
 
16
+ var _helpers = require("../utils/helpers");
17
+
16
18
  var _Instructions = _interopRequireDefault(require("./Instructions"));
17
19
 
18
20
  var _handMove = _interopRequireDefault(require("../assets/icons/hand-move.svg"));
@@ -88,8 +90,8 @@ var RotationTab = function RotationTab(_ref) {
88
90
  var controller = (0, _panzoom.default)(container, {
89
91
  maxZoom: 3,
90
92
  minZoom: 0.5,
91
- beforeMouseDown: function beforeMouseDown(e) {
92
- return !e.shiftKey;
93
+ beforeMouseDown: function beforeMouseDown(event) {
94
+ return !event.shiftKey;
93
95
  }
94
96
  });
95
97
  controller.on('panstart', function () {
@@ -114,7 +116,8 @@ var RotationTab = function RotationTab(_ref) {
114
116
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
115
117
  className: "widget-tab__threesixty ".concat(active ? 'widget-tab__threesixty--active' : '')
116
118
  }, /*#__PURE__*/_react.default.createElement("div", {
117
- className: "widget-tab__threesixty-container"
119
+ className: "widget-tab__threesixty-container",
120
+ onContextMenu: _helpers.preventRightClick
118
121
  }, images.map(function (img, index) {
119
122
  return /*#__PURE__*/_react.default.createElement("img", {
120
123
  src: img,
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deviceOrientationStatuses = void 0;
7
+ var deviceOrientationStatuses = {
8
+ GRANTED: 'granted',
9
+ DENIED: 'denied'
10
+ };
11
+ exports.deviceOrientationStatuses = deviceOrientationStatuses;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deviceWidth = void 0;
7
+ var deviceWidth = {
8
+ mobile: 545,
9
+ tablet: 900
10
+ };
11
+ exports.deviceWidth = deviceWidth;
package/build/index.js CHANGED
@@ -54,8 +54,6 @@ Object.defineProperty(exports, "Widget", {
54
54
 
55
55
  var _react = _interopRequireDefault(require("react"));
56
56
 
57
- require("./index.css");
58
-
59
57
  var _apiStore = _interopRequireDefault(require("./store/apiStore"));
60
58
 
61
59
  var _ImageTab = _interopRequireDefault(require("./components/ImageTab"));
@@ -61,7 +61,9 @@ var Events = /*#__PURE__*/function () {
61
61
  _classPrivateFieldSet(this, _eventHandlers, {
62
62
  container: {
63
63
  mousedown: function mousedown(e) {
64
- return _classPrivateFieldSet(_this, _dragOrigin, e.pageX);
64
+ if (e.button !== 0) return;
65
+
66
+ _classPrivateFieldSet(_this, _dragOrigin, e.pageX);
65
67
  },
66
68
  touchstart: function touchstart(e) {
67
69
  return _classPrivateFieldSet(_this, _dragOrigin, e.touches[0].clientX);
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.preventRightClick = void 0;
7
+
8
+ var preventRightClick = function preventRightClick(event) {
9
+ event.preventDefault();
10
+ };
11
+
12
+ exports.preventRightClick = preventRightClick;
@@ -63,17 +63,17 @@ var getRoomCoordinates = function getRoomCoordinates(room, walls, vertices) {
63
63
 
64
64
  exports.getRoomCoordinates = getRoomCoordinates;
65
65
 
66
- var getScale = function getScale(image, json) {
66
+ var getScale = function getScale(_ref, json) {
67
+ var width = _ref.width,
68
+ height = _ref.height;
67
69
  if (!json) return {
68
70
  X: 1,
69
71
  Y: 1
70
72
  };
71
- var imageWidth = image.width;
72
- var imageHeight = image.height;
73
73
  var baseImageWidth = 1024;
74
- var baseImageHeight = imageHeight * (baseImageWidth / imageWidth);
75
- var deltaX = imageWidth / baseImageWidth / json.Scale.X;
76
- var deltaY = imageHeight / baseImageHeight / json.Scale.X;
74
+ var baseImageHeight = height * (baseImageWidth / width);
75
+ var deltaX = width / baseImageWidth / json.Scale.X;
76
+ var deltaY = height / baseImageHeight / json.Scale.X;
77
77
  return {
78
78
  X: deltaX,
79
79
  Y: deltaY
@@ -88,8 +88,8 @@ var getCameraFromSrc = function getCameraFromSrc(json, src) {
88
88
  var cameraIdIndex = src.toLowerCase().indexOf(cameraIdBeginning);
89
89
  if (cameraIdIndex === -1) return null;
90
90
  var cameraId = (0, _imageExtentions.removeExtention)(src.substring(cameraIdIndex));
91
- return ((_json$Floors$0$Camera = json.Floors[0].CameraPoints) === null || _json$Floors$0$Camera === void 0 ? void 0 : _json$Floors$0$Camera.find(function (_ref) {
92
- var ID = _ref.ID;
91
+ return ((_json$Floors$0$Camera = json.Floors[0].CameraPoints) === null || _json$Floors$0$Camera === void 0 ? void 0 : _json$Floors$0$Camera.find(function (_ref2) {
92
+ var ID = _ref2.ID;
93
93
  return ID === cameraId;
94
94
  })) || null;
95
95
  };
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.51",
6
+ "version": "0.0.52",
7
7
  "private": false,
8
8
  "main": "build/index.js",
9
9
  "module": "build/index.js",
@@ -11,6 +11,9 @@
11
11
  "build",
12
12
  "README.md"
13
13
  ],
14
+ "engines": {
15
+ "node": "^16.0.0"
16
+ },
14
17
  "scripts": {
15
18
  "start": "npm run build:sass && babel src --watch -d build --copy-files",
16
19
  "start-example": "cd ./example && npm run start",
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.deviceOrientationStatus = void 0;
7
- var deviceOrientationStatus = {
8
- GRANTED: 'granted',
9
- DENIED: 'denied'
10
- };
11
- exports.deviceOrientationStatus = deviceOrientationStatus;