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.
- package/build/assets/css/app.css +1 -1
- package/build/assets/css/app.css.map +1 -1
- package/build/assets/sass/components/panorama.sass +38 -33
- package/build/assets/sass/components/tabs.sass +7 -6
- package/build/assets/sass/index.sass +2 -2
- package/build/components/PanoramaTab.js +142 -73
- package/build/components/RotationTab.js +6 -3
- package/build/enums/deviceOrientationStatuses.js +11 -0
- package/build/enums/deviceWidth.js +11 -0
- package/build/index.js +0 -2
- package/build/threesixty/events.js +3 -1
- package/build/utils/helpers.js +12 -0
- package/build/utils/panoramaHelpers.js +8 -8
- package/package.json +4 -1
- package/build/enums/deviceOrientationStatus.js +0 -11
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: 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,
|
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
|
-
|
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
|
-
|
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:
|
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
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
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
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
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 #{$
|
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:
|
35
|
+
margin-left: 0px
|
36
|
+
margin-top: 20px
|
35
37
|
@media #{$mobile}
|
36
|
-
margin-
|
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 #{$
|
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 #{$
|
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
|
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)(
|
249
|
+
var _useState = (0, _react.useState)(_deviceOrientationStatuses.deviceOrientationStatuses.DENIED),
|
246
250
|
_useState2 = _slicedToArray(_useState, 2),
|
247
|
-
|
248
|
-
|
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
|
-
|
253
|
-
|
256
|
+
showInstructions = _useState4[0],
|
257
|
+
setInstructionsState = _useState4[1];
|
254
258
|
|
255
|
-
var _useState5 = (0, _react.useState)(
|
259
|
+
var _useState5 = (0, _react.useState)(true),
|
256
260
|
_useState6 = _slicedToArray(_useState5, 2),
|
257
|
-
|
258
|
-
|
261
|
+
loadingState = _useState6[0],
|
262
|
+
setLoadingState = _useState6[1];
|
259
263
|
|
260
|
-
var _useState7 = (0, _react.useState)(
|
264
|
+
var _useState7 = (0, _react.useState)({
|
265
|
+
width: 0,
|
266
|
+
height: 0
|
267
|
+
}),
|
261
268
|
_useState8 = _slicedToArray(_useState7, 2),
|
262
|
-
|
263
|
-
|
269
|
+
windowSize = _useState8[0],
|
270
|
+
setWindowSize = _useState8[1];
|
264
271
|
|
265
272
|
var _useState9 = (0, _react.useState)({
|
266
|
-
|
267
|
-
|
273
|
+
width: '195px',
|
274
|
+
height: 'auto'
|
268
275
|
}),
|
269
276
|
_useState10 = _slicedToArray(_useState9, 2),
|
270
|
-
|
271
|
-
|
277
|
+
mapSize = _useState10[0],
|
278
|
+
setMapSize = _useState10[1];
|
272
279
|
|
273
|
-
var _useState11 = (0, _react.useState)(
|
280
|
+
var _useState11 = (0, _react.useState)({
|
281
|
+
X: 1,
|
282
|
+
Y: 1
|
283
|
+
}),
|
274
284
|
_useState12 = _slicedToArray(_useState11, 2),
|
275
|
-
|
276
|
-
|
285
|
+
planScale = _useState12[0],
|
286
|
+
setPlanScale = _useState12[1];
|
277
287
|
|
278
|
-
var _useState13 = (0, _react.useState)(
|
288
|
+
var _useState13 = (0, _react.useState)(true),
|
279
289
|
_useState14 = _slicedToArray(_useState13, 2),
|
280
|
-
|
281
|
-
|
290
|
+
isMapDisabled = _useState14[0],
|
291
|
+
setMapDisabledState = _useState14[1];
|
282
292
|
|
283
|
-
var _useState15 = (0, _react.useState)(
|
293
|
+
var _useState15 = (0, _react.useState)(false),
|
284
294
|
_useState16 = _slicedToArray(_useState15, 2),
|
285
|
-
|
286
|
-
|
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
|
-
|
291
|
-
|
300
|
+
cameraFov = _useState18[0],
|
301
|
+
setCameraFov = _useState18[1];
|
292
302
|
|
293
|
-
var _useState19 = (0, _react.useState)(
|
303
|
+
var _useState19 = (0, _react.useState)(0),
|
294
304
|
_useState20 = _slicedToArray(_useState19, 2),
|
295
|
-
|
296
|
-
|
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
|
-
|
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
|
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:
|
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,
|
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
|
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,
|
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
|
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
|
-
|
482
|
-
alt: "plan"
|
483
|
-
|
484
|
-
|
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(
|
92
|
-
return !
|
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;
|
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
|
-
|
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(
|
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 =
|
75
|
-
var deltaX =
|
76
|
-
var deltaY =
|
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 (
|
92
|
-
var 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.
|
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;
|