js-cloudimage-360-view 4.0.0-beta.2 → 4.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/js-cloudimage-360-view.min.css +1 -0
- package/dist/js-cloudimage-360-view.min.js +2111 -0
- package/js-cloudimage-360-view-4.0.0-beta.3.tgz +0 -0
- package/package.json +5 -9
- package/vite-npm.config.js +12 -0
- package/dist/assets/index-49ZK8EAw.js +0 -9
- package/dist/assets/index-CgRAm56E.css +0 -1
- package/dist/index.html +0 -697
- package/js-cloudimage-360-view-4.0.0-beta.1.tgz +0 -0
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "js-cloudimage-360-view",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
4
|
-
"main": "dist/
|
|
5
|
-
"
|
|
3
|
+
"version": "4.0.0-beta.4",
|
|
4
|
+
"main": "dist/js-cloudimage-360-view.umd.js",
|
|
5
|
+
"module": "dist/js-cloudimage-360-view.es.js",
|
|
6
6
|
"description": "",
|
|
7
7
|
"author": "scaleflex",
|
|
8
8
|
"license": "MIT",
|
|
@@ -28,14 +28,15 @@
|
|
|
28
28
|
"build:bundle": "npm run clean:build && vite build",
|
|
29
29
|
"deploy:bundle": "npm run build:bundle && node bin/deploy-bundle",
|
|
30
30
|
"clean:dist": "rm -rf dist",
|
|
31
|
-
"dist": "npm run clean:dist && babel src -d dist --copy-files",
|
|
32
31
|
"clean:demo": "rm -rf demo/dist",
|
|
32
|
+
"build:npm": "npm run clean:demo && vite --config vite-npm.config.js build",
|
|
33
33
|
"build:demo": "npm run clean:demo && vite --config vite-demo.config.js build",
|
|
34
34
|
"deploy:demo": "gh-pages -d dist",
|
|
35
35
|
"publish": "npm run build:demo && npm run deploy:demo"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@popperjs/core": "^2.11.2",
|
|
39
|
+
"js-cloudimage-360-view": "4.0.0-beta.3",
|
|
39
40
|
"lodash.debounce": "^4.0.8",
|
|
40
41
|
"lodash.throttle": "^4.1.1"
|
|
41
42
|
},
|
|
@@ -55,17 +56,12 @@
|
|
|
55
56
|
"dotenv": "^16.0.3",
|
|
56
57
|
"eslint": "^9.12.0",
|
|
57
58
|
"form-data": "^4.0.0",
|
|
58
|
-
"fs": "^0.0.1-security",
|
|
59
59
|
"gh-pages": "^2.0.1",
|
|
60
|
-
"globals": "^15.11.0",
|
|
61
60
|
"highlight.js": "^10.4.1",
|
|
62
|
-
"html-webpack-plugin": "^5.5.1",
|
|
63
|
-
"isomorphic-fetch": "^3.0.0",
|
|
64
61
|
"mini-css-extract-plugin": "^0.9.0",
|
|
65
62
|
"mobile-detect": "^1.4.3",
|
|
66
63
|
"prettier": "3.3.3",
|
|
67
64
|
"style-loader": "^3.3.2",
|
|
68
|
-
"svg-inline-loader": "^0.8.2",
|
|
69
65
|
"vite": "^5.4.10",
|
|
70
66
|
"vite-plugin-dts": "^4.3.0",
|
|
71
67
|
"vite-plugin-html": "^3.2.2",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
build: {
|
|
5
|
+
outDir: './dist',
|
|
6
|
+
lib: {
|
|
7
|
+
entry: './src/index.js',
|
|
8
|
+
name: 'JsCloudimage360View',
|
|
9
|
+
fileName: (format) => `js-cloudimage-360-view.${format}.js`, // output filename format
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
var qt=Object.defineProperty;var _t=(t,e,i)=>e in t?qt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i;var ot=(t,e,i)=>_t(t,typeof e!="symbol"?e+"":e,i);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function i(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=i(o);fetch(o.href,s)}})();var Re=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Jt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Tt="Expected a function",st=NaN,Qt="[object Symbol]",ei=/^\s+|\s+$/g,ti=/^[-+]0x[0-9a-f]+$/i,ii=/^0b[01]+$/i,ni=/^0o[0-7]+$/i,oi=parseInt,si=typeof Re=="object"&&Re&&Re.Object===Object&&Re,ri=typeof self=="object"&&self&&self.Object===Object&&self,ai=si||ri||Function("return this")(),li=Object.prototype,ci=li.toString,di=Math.max,ui=Math.min,Me=function(){return ai.Date.now()};function hi(t,e,i){var n,o,s,a,r,l,c=0,d=!1,h=!1,f=!0;if(typeof t!="function")throw new TypeError(Tt);e=rt(e)||0,Xe(i)&&(d=!!i.leading,h="maxWait"in i,s=h?di(rt(i.maxWait)||0,e):s,f="trailing"in i?!!i.trailing:f);function u(m){var I=n,E=o;return n=o=void 0,c=m,a=t.apply(E,I),a}function y(m){return c=m,r=setTimeout(x,e),d?u(m):a}function g(m){var I=m-l,E=m-c,S=e-I;return h?ui(S,s-E):S}function v(m){var I=m-l,E=m-c;return l===void 0||I>=e||I<0||h&&E>=s}function x(){var m=Me();if(v(m))return C(m);r=setTimeout(x,g(m))}function C(m){return r=void 0,f&&n?u(m):(n=o=void 0,a)}function O(){r!==void 0&&clearTimeout(r),c=0,n=l=o=r=void 0}function b(){return r===void 0?a:C(Me())}function w(){var m=Me(),I=v(m);if(n=arguments,o=this,l=m,I){if(r===void 0)return y(l);if(h)return r=setTimeout(x,e),u(l)}return r===void 0&&(r=setTimeout(x,e)),a}return w.cancel=O,w.flush=b,w}function pi(t,e,i){var n=!0,o=!0;if(typeof t!="function")throw new TypeError(Tt);return Xe(i)&&(n="leading"in i?!!i.leading:n,o="trailing"in i?!!i.trailing:o),hi(t,e,{leading:n,maxWait:e,trailing:o})}function Xe(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function fi(t){return!!t&&typeof t=="object"}function mi(t){return typeof t=="symbol"||fi(t)&&ci.call(t)==Qt}function rt(t){if(typeof t=="number")return t;if(mi(t))return st;if(Xe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Xe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(ei,"");var i=ii.test(t);return i||ni.test(t)?oi(t.slice(2),i?2:8):ti.test(t)?st:+t}var vi=pi;const at=Jt(vi),T={SPIN_X:"spin-x",SPIN_Y:"spin-y",SPIN_XY:"spin-xy",SPIN_YX:"spin-yx"},gi=[!1,0,null,void 0,"false","0","null","undefined"],k={X:"x-axis",Y:"y-axis",CENTER:"center"},yi=["folder","folderX","folderY","filenameX","filenameY","imageListX","imageListY","indexZeroBase","amountX","amountY"],bi=[37,39],wi=[38,40],lt=10,p={folder:"/",apiVersion:"v7",filenameX:"image-{index}.jpg",filenameY:null,imageListX:null,imageListY:null,indexZeroBase:0,amountX:0,amountY:0,speed:80,dragSpeed:150,draggable:!0,swipeable:!0,keys:!1,keysReverse:!1,autoplay:!1,autoplayBehavior:T.SPIN_X,playOnce:!1,autoplayReverse:!1,pointerZoom:0,fullscreen:!1,magnifier:null,bottomCircle:!0,bottomCircleOffset:5,ciToken:null,ciFilters:null,ciTransformation:null,lazyload:!0,dragReverse:!1,stopAtEdges:!1,imageInfo:!1,initialIconShown:!0,hotspots:null},xi=t=>({folder:Y(t,"folder",p.folder),apiVersion:Y(t,"api-version",p.apiVersion),filenameX:Y(t,"filename")||Y(t,"filename-x")||p.filenameX,filenameY:Y(t,"filename-y",p.filenameY),imageListX:Y(t,"image-list-x",p.imageListX),imageListY:Y(t,"image-list-y",p.imageListY),indexZeroBase:parseInt(Y(t,"index-zero-base",p.indexZeroBase),10),amountX:parseInt(Y(t,"amount-x",p.amountX),10),amountY:parseInt(Y(t,"amount-y",p.amountY),10),speed:parseInt(Y(t,"speed",p.speed),10),dragSpeed:parseInt(Y(t,"drag-speed",p.dragSpeed),10),draggable:W(t,"draggable",p.draggable),swipeable:W(t,"swipeable",p.swipeable),keys:W(t,"keys",p.keys),keysReverse:W(t,"keys-reverse",p.keysReverse),autoplay:W(t,"autoplay",p.autoplay),autoplayBehavior:Y(t,"autoplay-behavior",p.autoplayBehavior),playOnce:W(t,"play-once",p.playOnce),autoplayReverse:W(t,"autoplay-reverse",p.autoplayReverse),pointerZoom:parseFloat(Y(t,"pointer-zoom",p.pointerZoom),10),fullscreen:W(t,"fullscreen")||W(t,"full-screen",p.fullscreen),magnifier:parseFloat(Y(t,"magnifier",p.magnifier),10),bottomCircleOffset:parseInt(Y(t,"bottom-circle-offset",p.bottomCircleOffset),10),ciToken:Y(t,"responsive",p.ciToken),ciFilters:Y(t,"filters",p.ciFilters),ciTransformation:Y(t,"transformation",p.ciTransformation),lazyload:W(t,"lazyload",p.lazyload),dragReverse:W(t,"drag-reverse",p.dragReverse),stopAtEdges:W(t,"stop-at-edges",p.stopAtEdges),imageInfo:W(t,"info",p.imageInfo),initialIconShown:!ct(t,"initial-icon"),bottomCircle:!ct(t,"bottom-circle")}),Ii=t=>({folder:t.folder||p.folder,apiVersion:t.apiVersion||p.apiVersion,filenameX:t.filenameX||t.filename||p.filenameX,filenameY:t.filenameY||p.filenameY,imageListX:t.imageListX||p.imageListX,imageListY:t.imageListY||p.imageListY,indexZeroBase:parseInt(t.indexZeroBase??p.indexZeroBase,10),amountX:parseInt(t.amountX??p.amountX,10),amountY:parseInt(t.amountY??p.amountY,10),speed:parseInt(t.speed??p.speed,10),draggable:t.draggable??p.draggable,swipeable:t.swipeable??p.swipeable,dragSpeed:parseInt(t.dragSpeed??p.dragSpeed,10),keys:t.keys??p.keys,keysReverse:t.keysReverse??p.keysReverse,autoplay:t.autoplay??p.autoplay,autoplayBehavior:t.autoplayBehavior||p.autoplayBehavior,playOnce:t.playOnce??p.playOnce,autoplayReverse:t.autoplayReverse??p.autoplayReverse,pointerZoom:parseFloat(t.pointerZoom??p.pointerZoom,10),fullscreen:t.fullscreen??p.fullscreen,magnifier:parseFloat(t.magnifier??p.magnifier,10),bottomCircleOffset:parseInt(t.bottomCircleOffset??p.bottomCircleOffset,10),ciToken:t.ciToken||p.ciToken,ciFilters:t.ciFilters||p.ciFilters,ciTransformation:t.ciTransformation||p.ciTransformation,lazyload:t.lazyload??p.lazyload,dragReverse:t.dragReverse??p.dragReverse,stopAtEdges:t.stopAtEdges??p.stopAtEdges,imageInfo:t.imageInfo??p.imageInfo,initialIconShown:t.initialIconShown??p.initialIconShown,bottomCircle:t.bottomCircle??p.bottomCircle,hotspots:t.hotspots??p.hotspots}),Y=(t,e,i)=>t.getAttribute(e)||t.getAttribute(`data-${e}`)||i,W=(t,e,i)=>t.hasAttribute(e)||t.hasAttribute(`data-${e}`)||i,ct=(t,e)=>Y(t,e,null)==="false",Ci=(t,e,i=yi)=>i.some(n=>n in e&&e[n]!==t[n]),Oi=(t=1)=>{const e=Math.round(window.devicePixelRatio||1);return parseInt(t)*e},Ei=(t,e,i)=>new URL(t).origin.includes("cloudimg")?t:`https://${e}.cloudimg.io/${i}${t}`,Si=({ciTransformation:t,responsiveWidth:e,ciFilters:i})=>{const n=`width=${e}`,o=t||n,s=i?`&f=${i}`:"";return`${o}${s}`},be=(t,e)=>{const{folder:i,apiVersion:n,filename:o="",ciParams:s}=t,{ciToken:a,ciFilters:r,ciTransformation:l}=s||{},c=`${i}${o}`;if(!a)return c;const d=gi.includes(n)?null:n,h=d?`${d}/`:"",f=Oi(e),u=Ei(c,a,h),y=Si({ciTransformation:l,responsiveWidth:f,ciFilters:r});return`${u}${y?"?":""}${y}`},Ri=(t,e,i)=>{const[n,o]=t.split("?"),s=`${e}=${encodeURIComponent(i)}`;if(!o)return`${n}?${s}`;const a=new URLSearchParams(o);return a.set(e,i),`${n}?${a.toString()}`},Yi=(t,e)=>Ri(t,"width",e),kt=(t,e=0)=>(t+="",t.length>=e?t:new Array(e-t.length+1).join("0")+t),Li=(t,{amount:e=0,indexZeroBase:i=0}={})=>Array.from({length:e},(n,o)=>t.replace("{index}",kt(o+1,i))),Xi=({imagesUrls:t,onFirstImageLoad:e,onImageLoad:i,onAllImagesLoad:n,autoplayReverse:o})=>{let s=0;const a=t.length,r=[],l=(h,f)=>{const u=new Image;u.crossOrigin="anonymous",u.src=h,u.onload=async()=>{const y=await createImageBitmap(u),g={src:h,bitmapImage:y,naturalWidth:c.naturalWidth,naturalHeight:c.naturalHeight};s++,r[f]=g,i==null||i(g,f),s===a&&(n==null||n(r))},u.onerror=()=>{console.error(`Failed to load image: ${h}`),s++,s===a&&(n==null||n(r))}},c=new Image,d=t[o?t.length-1:0];c.crossOrigin="anonymous",c.src=d,c.onload=async()=>{const h=await createImageBitmap(c),f={src:d,bitmapImage:h,naturalWidth:c.naturalWidth,naturalHeight:c.naturalHeight};r[0]=f,s++,e==null||e(f),i==null||i(f,0);for(let u=1;u<t.length;u++)l(t[u],u)},c.onerror=()=>{console.error(`Failed to load first image: ${t[0]}`),s++;for(let h=1;h<t.length;h++)l(t[h],h)}},dt=({cdnPathX:t,cdnPathY:e,configX:i,configY:n,onFirstImageLoad:o,onImageLoad:s,onAllImagesLoad:a})=>{let r={x:!1,y:!1},l=[],c=[];const d=t||i.imageList.length,h=e||n.imageList.length,f=()=>{r.x&&r.y&&a(l,c)},u=({cdnPath:y,config:g,orientation:v,loadedImages:x,onFirstImageLoad:C})=>{const O=v===k.X,b=g.imageList.length?g.imageList:Li(y,g);Xi({imagesUrls:b,onFirstImageLoad:C,onImageLoad:(w,m)=>{s==null||s(w,m,v),x[m]=w},onAllImagesLoad:w=>{x=w,r[O?"x":"y"]=!0,f()},autoplayReverse:g.autoplayReverse})};d?u({cdnPath:t,config:i,orientation:k.X,loadedImages:l,onFirstImageLoad:o}):r.x=!0,h?u({cdnPath:e,config:n,orientation:k.Y,loadedImages:c,onFirstImageLoad:d?void 0:o}):r.y=!0},Pi=t=>{const e=new Image;return e.src="https://scaleflex.cloudimg.io/v7/plugins/js-cloudimage-360-view/assets/img/360.svg",e.style.bottom=`${t}%`,e.className="cloudimage-360-view-360-circle",e},Ti=()=>{const t=document.createElement("div");return t.className="cloudimage-initial-icon",t.innerText="360°",t},ki=(t,e)=>{const{width:i,height:n}=e,o=document.createElement("canvas");return o.width=i,o.height=n,o.style.width="100%",o.style.height="auto",t.appendChild(o),o},Ai="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%235f6368'%3e%3cpath%20d='m147-96-51-51%20261-261H192v-72h288v288h-72v-165L147-96Zm333-384v-288h72v165l261-261%2051%2051-261%20261h165v72H480Z'/%3e%3c/svg%3e",Bi=()=>{const t=document.createElement("div");return t.className="cloudimage-360-button cloudimage-360-close-icon",t.innerHTML=`<img alt="close icon" src=${Ai}>`,t},Mi="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%235f6368'%3e%3cpath%20d='M144-144v-192h72v120h120v72H144Zm480%200v-72h120v-120h72v192H624ZM144-624v-192h192v72H216v120h-72Zm600%200v-120H624v-72h192v192h-72Z'/%3e%3c/svg%3e",Hi=()=>{const t=document.createElement("div");return t.className="cloudimage-360-button cloudimage-360-fullscreen-button",t.innerHTML=`<img alt="fullscreen icon" src=${Mi}>`,t},ut=t=>{const e=document.createElement("div");return e.className="cloudimage-360-icons-container",t.appendChild(e),e},Wi=t=>{const e=document.createElement("div");return e.className="cloudimage-360-inner-box",t.appendChild(e),e},Zi="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%235f6368'%3e%3cpath%20d='M765-144%20526-383q-30%2022-65.79%2034.5-35.79%2012.5-76.18%2012.5Q284-336%20214-406t-70-170q0-100%2070-170t170-70q100%200%20170%2070t70%20170.03q0%2040.39-12.5%2076.18Q599-464%20577-434l239%20239-51%2051ZM384-408q70%200%20119-49t49-119q0-70-49-119t-119-49q-70%200-119%2049t-49%20119q0%2070%2049%20119t119%2049Z'/%3e%3c/svg%3e",Di=()=>{const t=document.createElement("div");return t.className="cloudimage-360-button cloudimage-360-magnifier-button",t.innerHTML=`<img alt="magnifier icon" src=${Zi}>`,t},Vi=t=>{const e=document.createElement("div");e.className="cloudimage-initial-icon";const i=document.createElement("span");return i.className="percentage",i.innerText="0%",e.appendChild(i),t.appendChild(e),e},Ni=t=>{const e=document.createElement("div");e.className="cloudimage-360-fullscreen-modal";const i=t.cloneNode();return i.style.height="100vh",i.style.maxHeight="100%",e.appendChild(i),window.document.body.appendChild(e),i},We=(t,e)=>{const i=t.querySelector(e);i&&i.parentNode.removeChild(i)},$i=()=>{const t=document.createElement("div");return t.className="cloudimage-loading-spinner",t},ji=()=>{const t=document.createElement("div");return t.className="cloudimage-360-transition-overlay",t},Fi=t=>{const e=document.createElement("div");return e.className="cloudimage-360-hotspot-container",t.appendChild(e),e},Gi=(t,e)=>{const[i,n]=t.split("?");if(!n)return t;const o=new RegExp(`^${e}=|&${e}=`),s=n.split("&").filter(a=>!o.test(a)).join("&");return s?`${i}?${s}`:i},Ui=t=>{const e=Gi(t,"width"),i=e.includes("?")?"&":"?";return`${e}${i}width=${150*devicePixelRatio}`},zi=t=>{const e={root:null,rootMargin:"0px",threshold:.1},i=o=>{const s=o.getAttribute("data-src");s&&(o.src=s)};new IntersectionObserver((o,s)=>{o.forEach(a=>{a.isIntersecting&&(i(a.target),s.unobserve(a.target))})},e).observe(t)},Ki=(t,e)=>{const i=kt(1,e);return t.replace("{index}",i)},qi=(t,e)=>{const[i]=t,n=/(https?):\/\//i.test(i);return be({...e,folder:n?"":e.folder,filename:i})},_i=(t,e)=>{const{imageList:i,indexZeroBase:n}=e;if(i.length)try{const o=JSON.parse(i);return qi(o,e)}catch(o){console.error(`Wrong format in image-list attribute: ${o.message}`)}return Ki(t,n)},ht=(t,e,i)=>{const n=new Image;return n.setAttribute(e?"data-src":"src",t),n.className=i,n.style.cssText=`
|
|
2
|
-
position: ${e?"absolute":"static"};
|
|
3
|
-
width: 100%;
|
|
4
|
-
inset: 0;
|
|
5
|
-
height: 100%;
|
|
6
|
-
object-fit: contain;
|
|
7
|
-
object-position: center;
|
|
8
|
-
filter: blur(10px);
|
|
9
|
-
`,n},pt=(t,e,i)=>{const{innerBox:n,imageList:o,lazyload:s}=e||{},[a]=o,r=a||_i(t,e),l=Ui(r),c=ht(l,s,"cloudimage-lazy"),d=ht(l,!1,"cloudimage-360-placeholder"),h=f=>{We(n,".cloudimage-lazy"),i&&i({event:f,width:c.width,height:c.height,naturalWidth:c.naturalWidth,naturalHeight:c.naturalHeight,src:l})};c.onload=h,n.appendChild(c),n.appendChild(d),zi(c)},Ji=(t,e)=>{const i=new Image;i.src=t,i.onload=n=>{e&&e({event:n,width:i.width,height:i.height,naturalWidth:i.naturalWidth,naturalHeight:i.naturalHeight,src:t})},i.onerror=function(){}},Qi=(t,e)=>{const i=e.getBoundingClientRect(),n=t.touches?t.touches[0].clientX:t.clientX,o=t.touches?t.touches[0].clientY:t.clientY;return{x:n-i.left,y:o-i.top}},He=(t,e,i)=>{const{container:n,w:o,h:s,zoom:a,bw:r,offsetX:l,offsetY:c}=e,d=Qi(t,n);let h=d.x,f=d.y;h=Math.max(o/a,Math.min(h,n.offsetWidth-o/a)),f=Math.max(s/a,Math.min(f,n.offsetHeight-s/a)),i.style.left=`${h-o}px`,i.style.top=`${f-s}px`;const u=(h-l)*a-o+r,y=(f-c)*a-s+r;i.style.backgroundPosition=`-${u}px -${y}px`},en=(t,e,i,n,o,s)=>{const{x:a=0,y:r=0}=i||{},l=(e.offsetWidth-a*2)*s,c=(e.offsetHeight-r*2)*s;if(!o)return;o.setAttribute("class","cloudimage-360-img-magnifier-glass"),e.prepend(o),o.style.backgroundImage=`url('${n.src}')`,o.style.backgroundSize=`${l}px ${c}px`;const d=3,h=o.offsetWidth/2,f=o.offsetHeight/2,u={container:e,w:h,h:f,zoom:s,bw:d,offsetX:a,offsetY:r};He(t,u,o);const y=v=>{He(v,u,o)},g=v=>{v.preventDefault(),He(v,u,o)};o.addEventListener("mousemove",y),e.addEventListener("mousemove",y),e.addEventListener("touchmove",g)},tn=(t,e,i)=>{const{clientX:n,clientY:o}=t,s=e.getBoundingClientRect(),a=e.width/(s.width*i),r=e.height/(s.height*i),l=(n-s.left)*a,c=(o-s.top)*r;return{offsetX:l,offsetY:c}},ft=(t,{bottom:e,top:i})=>{t?e():i()},mt=(t,{left:e,right:i})=>{t?e():i()},nn=({autoplayBehavior:t,spinY:e,reversed:i,loopTriggers:n})=>{switch(t){case T.SPIN_XY:case T.SPIN_YX:e?ft(i,n):mt(i,n);break;case T.SPIN_Y:ft(i,n);break;case T.SPIN_X:default:mt(i,n)}},on=({autoplayBehavior:t,activeImageX:e,activeImageY:i,amountX:n,amountY:o,autoplayReverse:s})=>{const a=(r,l)=>{const c=l-1;return s?r===0:r===c};switch(t){case T.SPIN_XY:case T.SPIN_Y:return a(i,o);case T.SPIN_X:case T.SPIN_YX:default:return a(e,n)}},sn=({autoplayBehavior:t,activeImageX:e,activeImageY:i,amountX:n,amountY:o,autoplayReverse:s,spinDirection:a})=>{const r=e===(s?0:n-1),l=i===(s?0:o-1);return t===T.SPIN_XY||t===T.SPIN_YX?a==="x"&&r||a==="y"&&l:!1},rn=(t,e,i)=>{if(!i)return"x";if(!e)return"y";switch(t){case T.SPIN_XY:return"x";case T.SPIN_YX:return"y";case T.SPIN_Y:return"y";case T.SPIN_X:default:return"x"}},an=t=>t==="x"?"y":"x",vt=(t,e)=>{const i=[...bi];return e?[...i,...wi].includes(t):i.includes(t)},ln=({deltaX:t,deltaY:e,reversed:i,allowSpinX:n,allowSpinY:o,threshold:s=1})=>{const a=Math.abs(t),r=Math.abs(e);return n&&a-s>r?i?t>0?"left":"right":t>0?"right":"left":o&&r-s>a?i?e>0?"up":"down":e>0?"down":"up":null},cn=()=>"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0,dn=(t,e=150)=>{let i;return function(...n){clearTimeout(i),i=setTimeout(()=>{t.apply(this,n)},e)}},At="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IHg9KGEsdCxlKT0+e2NvbnN0IHM9YS9lLG49dC9lO3JldHVybnt6b29tZWRXaWR0aDpzLHpvb21lZEhlaWdodDpufX0sTz0oe3BvaW50ZXJYOmEscG9pbnRlclk6dCxpbWFnZURhdGE6ZSx6b29tZWRXaWR0aDpzLHpvb21lZEhlaWdodDpuLGRyYXdXaWR0aDppLGRyYXdIZWlnaHQ6Y30pPT57Y29uc3R7bmF0dXJhbFdpZHRoOnIsbmF0dXJhbEhlaWdodDpsfT1lO2xldCBnPWEvaSpyLXMvMix1PXQvYypsLW4vMjtjb25zdCBwPU1hdGgubWF4KDAsci1zKSxJPU1hdGgubWF4KDAsbC1uKTtyZXR1cm4gZz1NYXRoLm1heCgwLE1hdGgubWluKGcscCkpLHU9TWF0aC5tYXgoMCxNYXRoLm1pbih1LEkpKSx7em9vbU9mZnNldFg6Zyx6b29tT2Zmc2V0WTp1fX07bGV0IG8sbSxmLGgsZCx3O3NlbGYub25tZXNzYWdlPWFzeW5jIGE9Pntjb25zdHthY3Rpb246dCxvZmZzY3JlZW46ZSxkZXZpY2VQaXhlbFJhdGlvOnMsaW1hZ2VEYXRhOm4sem9vbVNjYWxlOmkscG9pbnRlclg6Yyxwb2ludGVyWTpyLGltYWdlQXNwZWN0UmF0aW86bCxjb250YWluZXJXaWR0aDpnLGNvbnRhaW5lckhlaWdodDp1fT1hLmRhdGE7c3dpdGNoKHQpe2Nhc2UiaW5pdENhbnZhcyI6dihlLHMpO2JyZWFrO2Nhc2UiYWRhcHRDYW52YXNTaXplIjp6KGwsZyx1KTticmVhaztjYXNlImRyYXdJbWFnZU9uQ2FudmFzIjpDKG4saSxjLHIpO2JyZWFrfX07Y29uc3Qgdj0oYSx0KT0+e289YSxtPW8uZ2V0Q29udGV4dCgiMmQiKSxmPXR9LHo9KGEsdCxlKT0+e2NvbnN0IHM9dC9lO3c9YT5zLG8ud2lkdGg9dCpmLG8uaGVpZ2h0PWUqZixtLnNjYWxlKGYsZiksdz8oaD10LGQ9dC9hKTooZD1lLGg9ZSphKSxtLmltYWdlU21vb3RoaW5nRW5hYmxlZD0hMCxtLmltYWdlU21vb3RoaW5nUXVhbGl0eT0iaGlnaCJ9LEM9KGE9e30sdD0xLGU9MCxzPTApPT57Y29uc3R7Yml0bWFwSW1hZ2U6bn09YTtpZighb3x8IW4pcmV0dXJuO2xldCBpLGM7aWYodz8oaT0wLGM9KG8uaGVpZ2h0L2YtZCkvMik6KGk9KG8ud2lkdGgvZi1oKS8yLGM9MCksbS5jbGVhclJlY3QoMCwwLG8ud2lkdGgsby5oZWlnaHQpLHQhPT0xKXtjb25zdHt6b29tZWRXaWR0aDpyLHpvb21lZEhlaWdodDpsfT14KGgsZCx0KSx7em9vbU9mZnNldFg6Zyx6b29tT2Zmc2V0WTp1fT1PKHtwb2ludGVyWDplLHBvaW50ZXJZOnMsaW1hZ2VEYXRhOmEsem9vbWVkV2lkdGg6cix6b29tZWRIZWlnaHQ6bCxkcmF3V2lkdGg6aCxkcmF3SGVpZ2h0OmR9KTttLmRyYXdJbWFnZShuLGcsdSxyLGwsaSxjLGgsZCl9ZWxzZSBtLmRyYXdJbWFnZShuLGksYyxoLGQpfX0pKCk7Cg==",un=t=>Uint8Array.from(atob(t),e=>e.charCodeAt(0)),gt=typeof self<"u"&&self.Blob&&new Blob([un(At)],{type:"text/javascript;charset=utf-8"});function hn(t){let e;try{if(e=gt&&(self.URL||self.webkitURL).createObjectURL(gt),!e)throw"";const i=new Worker(e,{name:t==null?void 0:t.name});return i.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),i}catch{return new Worker("data:text/javascript;base64,"+At,{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}const pn=t=>t==="x"?k.X:k.Y,fn=(t,e,i)=>t.filter(n=>pn(n.orientation)===i&&e in n.positions),mn=t=>{const e=document.createElement("span");return e.id=t,e.className="cloudimage-360-hotspot",e.dataset.hotspotId=t,e},vn=t=>{const e=Object.entries(t).sort(([s],[a])=>Number(s)-Number(a));let i=null,n=null;const o={};for(const[s,a]of e)if(!a)o[s]={x:i,y:n};else{const{x:r,y:l}=a;r!=null&&(i=r),l!=null&&(n=l),o[s]={x:r||i,y:l||n}}return o},gn=t=>[{name:"offset",options:{offset:[0,10]}},{name:"preventOverflow",options:{boundary:t}}],yn=(t,e)=>{const i=document.createElement("div");return i.className="cloudimage-360-popper",i.id=`cloudimage-360-popper-${e}`,i.dataset.popperId=e,typeof t=="string"&&/<\/?[a-z][\s\S]*>/i.test(t)?i.innerHTML=t:i.textContent=t,document.body.appendChild(i),i},bn=t=>{const e=[...t];return e.forEach((i,n)=>{const o={...vn(i.positions)};e[n].initialPositions=o,e[n].positions=o}),e},wn=({newWidth:t,newHeight:e,initialContainerSize:i,imageAspectRatio:n,hotspotsConfig:o})=>{const[s,a]=i;let r=t,l=e,c=0,d=0;const h=t/e;n>h?(l=t/n,d=(e-l)/2):(r=e*n,c=(t-r)/2);const u=r/s,y=l/a;return o.map(g=>{const v={};return Object.entries(g.initialPositions).forEach(([x,C])=>{v[x]={x:C.x*u+c,y:C.y*y+d}}),{...g,positions:v}})};var A="top",V="bottom",N="right",B="left",Ne="auto",Oe=[A,V,N,B],de="start",Ie="end",xn="clippingParents",Bt="viewport",ye="popper",In="reference",yt=Oe.reduce(function(t,e){return t.concat([e+"-"+de,e+"-"+Ie])},[]),Mt=[].concat(Oe,[Ne]).reduce(function(t,e){return t.concat([e,e+"-"+de,e+"-"+Ie])},[]),Cn="beforeRead",On="read",En="afterRead",Sn="beforeMain",Rn="main",Yn="afterMain",Ln="beforeWrite",Xn="write",Pn="afterWrite",Tn=[Cn,On,En,Sn,Rn,Yn,Ln,Xn,Pn];function U(t){return t?(t.nodeName||"").toLowerCase():null}function Z(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function ae(t){var e=Z(t).Element;return t instanceof e||t instanceof Element}function D(t){var e=Z(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function $e(t){if(typeof ShadowRoot>"u")return!1;var e=Z(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function kn(t){var e=t.state;Object.keys(e.elements).forEach(function(i){var n=e.styles[i]||{},o=e.attributes[i]||{},s=e.elements[i];!D(s)||!U(s)||(Object.assign(s.style,n),Object.keys(o).forEach(function(a){var r=o[a];r===!1?s.removeAttribute(a):s.setAttribute(a,r===!0?"":r)}))})}function An(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach(function(n){var o=e.elements[n],s=e.attributes[n]||{},a=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:i[n]),r=a.reduce(function(l,c){return l[c]="",l},{});!D(o)||!U(o)||(Object.assign(o.style,r),Object.keys(s).forEach(function(l){o.removeAttribute(l)}))})}}const Bn={name:"applyStyles",enabled:!0,phase:"write",fn:kn,effect:An,requires:["computeStyles"]};function G(t){return t.split("-")[0]}var re=Math.max,Pe=Math.min,ue=Math.round;function Ze(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Ht(){return!/^((?!chrome|android).)*safari/i.test(Ze())}function he(t,e,i){e===void 0&&(e=!1),i===void 0&&(i=!1);var n=t.getBoundingClientRect(),o=1,s=1;e&&D(t)&&(o=t.offsetWidth>0&&ue(n.width)/t.offsetWidth||1,s=t.offsetHeight>0&&ue(n.height)/t.offsetHeight||1);var a=ae(t)?Z(t):window,r=a.visualViewport,l=!Ht()&&i,c=(n.left+(l&&r?r.offsetLeft:0))/o,d=(n.top+(l&&r?r.offsetTop:0))/s,h=n.width/o,f=n.height/s;return{width:h,height:f,top:d,right:c+h,bottom:d+f,left:c,x:c,y:d}}function je(t){var e=he(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Wt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&$e(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function J(t){return Z(t).getComputedStyle(t)}function Mn(t){return["table","td","th"].indexOf(U(t))>=0}function ie(t){return((ae(t)?t.ownerDocument:t.document)||window.document).documentElement}function ke(t){return U(t)==="html"?t:t.assignedSlot||t.parentNode||($e(t)?t.host:null)||ie(t)}function bt(t){return!D(t)||J(t).position==="fixed"?null:t.offsetParent}function Hn(t){var e=/firefox/i.test(Ze()),i=/Trident/i.test(Ze());if(i&&D(t)){var n=J(t);if(n.position==="fixed")return null}var o=ke(t);for($e(o)&&(o=o.host);D(o)&&["html","body"].indexOf(U(o))<0;){var s=J(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function Ee(t){for(var e=Z(t),i=bt(t);i&&Mn(i)&&J(i).position==="static";)i=bt(i);return i&&(U(i)==="html"||U(i)==="body"&&J(i).position==="static")?e:i||Hn(t)||e}function Fe(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function we(t,e,i){return re(t,Pe(e,i))}function Wn(t,e,i){var n=we(t,e,i);return n>i?i:n}function Zt(){return{top:0,right:0,bottom:0,left:0}}function Dt(t){return Object.assign({},Zt(),t)}function Vt(t,e){return e.reduce(function(i,n){return i[n]=t,i},{})}var Zn=function(e,i){return e=typeof e=="function"?e(Object.assign({},i.rects,{placement:i.placement})):e,Dt(typeof e!="number"?e:Vt(e,Oe))};function Dn(t){var e,i=t.state,n=t.name,o=t.options,s=i.elements.arrow,a=i.modifiersData.popperOffsets,r=G(i.placement),l=Fe(r),c=[B,N].indexOf(r)>=0,d=c?"height":"width";if(!(!s||!a)){var h=Zn(o.padding,i),f=je(s),u=l==="y"?A:B,y=l==="y"?V:N,g=i.rects.reference[d]+i.rects.reference[l]-a[l]-i.rects.popper[d],v=a[l]-i.rects.reference[l],x=Ee(s),C=x?l==="y"?x.clientHeight||0:x.clientWidth||0:0,O=g/2-v/2,b=h[u],w=C-f[d]-h[y],m=C/2-f[d]/2+O,I=we(b,m,w),E=l;i.modifiersData[n]=(e={},e[E]=I,e.centerOffset=I-m,e)}}function Vn(t){var e=t.state,i=t.options,n=i.element,o=n===void 0?"[data-popper-arrow]":n;o!=null&&(typeof o=="string"&&(o=e.elements.popper.querySelector(o),!o)||Wt(e.elements.popper,o)&&(e.elements.arrow=o))}const Nn={name:"arrow",enabled:!0,phase:"main",fn:Dn,effect:Vn,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function pe(t){return t.split("-")[1]}var $n={top:"auto",right:"auto",bottom:"auto",left:"auto"};function jn(t,e){var i=t.x,n=t.y,o=e.devicePixelRatio||1;return{x:ue(i*o)/o||0,y:ue(n*o)/o||0}}function wt(t){var e,i=t.popper,n=t.popperRect,o=t.placement,s=t.variation,a=t.offsets,r=t.position,l=t.gpuAcceleration,c=t.adaptive,d=t.roundOffsets,h=t.isFixed,f=a.x,u=f===void 0?0:f,y=a.y,g=y===void 0?0:y,v=typeof d=="function"?d({x:u,y:g}):{x:u,y:g};u=v.x,g=v.y;var x=a.hasOwnProperty("x"),C=a.hasOwnProperty("y"),O=B,b=A,w=window;if(c){var m=Ee(i),I="clientHeight",E="clientWidth";if(m===Z(i)&&(m=ie(i),J(m).position!=="static"&&r==="absolute"&&(I="scrollHeight",E="scrollWidth")),m=m,o===A||(o===B||o===N)&&s===Ie){b=V;var S=h&&m===w&&w.visualViewport?w.visualViewport.height:m[I];g-=S-n.height,g*=l?1:-1}if(o===B||(o===A||o===V)&&s===Ie){O=N;var R=h&&m===w&&w.visualViewport?w.visualViewport.width:m[E];u-=R-n.width,u*=l?1:-1}}var L=Object.assign({position:r},c&&$n),M=d===!0?jn({x:u,y:g},Z(i)):{x:u,y:g};if(u=M.x,g=M.y,l){var X;return Object.assign({},L,(X={},X[b]=C?"0":"",X[O]=x?"0":"",X.transform=(w.devicePixelRatio||1)<=1?"translate("+u+"px, "+g+"px)":"translate3d("+u+"px, "+g+"px, 0)",X))}return Object.assign({},L,(e={},e[b]=C?g+"px":"",e[O]=x?u+"px":"",e.transform="",e))}function Fn(t){var e=t.state,i=t.options,n=i.gpuAcceleration,o=n===void 0?!0:n,s=i.adaptive,a=s===void 0?!0:s,r=i.roundOffsets,l=r===void 0?!0:r,c={placement:G(e.placement),variation:pe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,wt(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,wt(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Gn={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Fn,data:{}};var Ye={passive:!0};function Un(t){var e=t.state,i=t.instance,n=t.options,o=n.scroll,s=o===void 0?!0:o,a=n.resize,r=a===void 0?!0:a,l=Z(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&c.forEach(function(d){d.addEventListener("scroll",i.update,Ye)}),r&&l.addEventListener("resize",i.update,Ye),function(){s&&c.forEach(function(d){d.removeEventListener("scroll",i.update,Ye)}),r&&l.removeEventListener("resize",i.update,Ye)}}const zn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Un,data:{}};var Kn={left:"right",right:"left",bottom:"top",top:"bottom"};function Le(t){return t.replace(/left|right|bottom|top/g,function(e){return Kn[e]})}var qn={start:"end",end:"start"};function xt(t){return t.replace(/start|end/g,function(e){return qn[e]})}function Ge(t){var e=Z(t),i=e.pageXOffset,n=e.pageYOffset;return{scrollLeft:i,scrollTop:n}}function Ue(t){return he(ie(t)).left+Ge(t).scrollLeft}function _n(t,e){var i=Z(t),n=ie(t),o=i.visualViewport,s=n.clientWidth,a=n.clientHeight,r=0,l=0;if(o){s=o.width,a=o.height;var c=Ht();(c||!c&&e==="fixed")&&(r=o.offsetLeft,l=o.offsetTop)}return{width:s,height:a,x:r+Ue(t),y:l}}function Jn(t){var e,i=ie(t),n=Ge(t),o=(e=t.ownerDocument)==null?void 0:e.body,s=re(i.scrollWidth,i.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=re(i.scrollHeight,i.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),r=-n.scrollLeft+Ue(t),l=-n.scrollTop;return J(o||i).direction==="rtl"&&(r+=re(i.clientWidth,o?o.clientWidth:0)-s),{width:s,height:a,x:r,y:l}}function ze(t){var e=J(t),i=e.overflow,n=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+o+n)}function Nt(t){return["html","body","#document"].indexOf(U(t))>=0?t.ownerDocument.body:D(t)&&ze(t)?t:Nt(ke(t))}function xe(t,e){var i;e===void 0&&(e=[]);var n=Nt(t),o=n===((i=t.ownerDocument)==null?void 0:i.body),s=Z(n),a=o?[s].concat(s.visualViewport||[],ze(n)?n:[]):n,r=e.concat(a);return o?r:r.concat(xe(ke(a)))}function De(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Qn(t,e){var i=he(t,!1,e==="fixed");return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}function It(t,e,i){return e===Bt?De(_n(t,i)):ae(e)?Qn(e,i):De(Jn(ie(t)))}function eo(t){var e=xe(ke(t)),i=["absolute","fixed"].indexOf(J(t).position)>=0,n=i&&D(t)?Ee(t):t;return ae(n)?e.filter(function(o){return ae(o)&&Wt(o,n)&&U(o)!=="body"}):[]}function to(t,e,i,n){var o=e==="clippingParents"?eo(t):[].concat(e),s=[].concat(o,[i]),a=s[0],r=s.reduce(function(l,c){var d=It(t,c,n);return l.top=re(d.top,l.top),l.right=Pe(d.right,l.right),l.bottom=Pe(d.bottom,l.bottom),l.left=re(d.left,l.left),l},It(t,a,n));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function $t(t){var e=t.reference,i=t.element,n=t.placement,o=n?G(n):null,s=n?pe(n):null,a=e.x+e.width/2-i.width/2,r=e.y+e.height/2-i.height/2,l;switch(o){case A:l={x:a,y:e.y-i.height};break;case V:l={x:a,y:e.y+e.height};break;case N:l={x:e.x+e.width,y:r};break;case B:l={x:e.x-i.width,y:r};break;default:l={x:e.x,y:e.y}}var c=o?Fe(o):null;if(c!=null){var d=c==="y"?"height":"width";switch(s){case de:l[c]=l[c]-(e[d]/2-i[d]/2);break;case Ie:l[c]=l[c]+(e[d]/2-i[d]/2);break}}return l}function Ce(t,e){e===void 0&&(e={});var i=e,n=i.placement,o=n===void 0?t.placement:n,s=i.strategy,a=s===void 0?t.strategy:s,r=i.boundary,l=r===void 0?xn:r,c=i.rootBoundary,d=c===void 0?Bt:c,h=i.elementContext,f=h===void 0?ye:h,u=i.altBoundary,y=u===void 0?!1:u,g=i.padding,v=g===void 0?0:g,x=Dt(typeof v!="number"?v:Vt(v,Oe)),C=f===ye?In:ye,O=t.rects.popper,b=t.elements[y?C:f],w=to(ae(b)?b:b.contextElement||ie(t.elements.popper),l,d,a),m=he(t.elements.reference),I=$t({reference:m,element:O,strategy:"absolute",placement:o}),E=De(Object.assign({},O,I)),S=f===ye?E:m,R={top:w.top-S.top+x.top,bottom:S.bottom-w.bottom+x.bottom,left:w.left-S.left+x.left,right:S.right-w.right+x.right},L=t.modifiersData.offset;if(f===ye&&L){var M=L[o];Object.keys(R).forEach(function(X){var K=[N,V].indexOf(X)>=0?1:-1,q=[A,V].indexOf(X)>=0?"y":"x";R[X]+=M[q]*K})}return R}function io(t,e){e===void 0&&(e={});var i=e,n=i.placement,o=i.boundary,s=i.rootBoundary,a=i.padding,r=i.flipVariations,l=i.allowedAutoPlacements,c=l===void 0?Mt:l,d=pe(n),h=d?r?yt:yt.filter(function(y){return pe(y)===d}):Oe,f=h.filter(function(y){return c.indexOf(y)>=0});f.length===0&&(f=h);var u=f.reduce(function(y,g){return y[g]=Ce(t,{placement:g,boundary:o,rootBoundary:s,padding:a})[G(g)],y},{});return Object.keys(u).sort(function(y,g){return u[y]-u[g]})}function no(t){if(G(t)===Ne)return[];var e=Le(t);return[xt(t),e,xt(e)]}function oo(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var o=i.mainAxis,s=o===void 0?!0:o,a=i.altAxis,r=a===void 0?!0:a,l=i.fallbackPlacements,c=i.padding,d=i.boundary,h=i.rootBoundary,f=i.altBoundary,u=i.flipVariations,y=u===void 0?!0:u,g=i.allowedAutoPlacements,v=e.options.placement,x=G(v),C=x===v,O=l||(C||!y?[Le(v)]:no(v)),b=[v].concat(O).reduce(function(j,$){return j.concat(G($)===Ne?io(e,{placement:$,boundary:d,rootBoundary:h,padding:c,flipVariations:y,allowedAutoPlacements:g}):$)},[]),w=e.rects.reference,m=e.rects.popper,I=new Map,E=!0,S=b[0],R=0;R<b.length;R++){var L=b[R],M=G(L),X=pe(L)===de,K=[A,V].indexOf(M)>=0,q=K?"width":"height",P=Ce(e,{placement:L,boundary:d,rootBoundary:h,altBoundary:f,padding:c}),H=K?X?N:B:X?V:A;w[q]>m[q]&&(H=Le(H));var le=Le(H),_=[];if(s&&_.push(P[M]<=0),r&&_.push(P[H]<=0,P[le]<=0),_.every(function(j){return j})){S=L,E=!1;break}I.set(L,_)}if(E)for(var ce=y?3:1,fe=function($){var te=b.find(function(oe){var F=I.get(oe);if(F)return F.slice(0,$).every(function(me){return me})});if(te)return S=te,"break"},Q=ce;Q>0;Q--){var ee=fe(Q);if(ee==="break")break}e.placement!==S&&(e.modifiersData[n]._skip=!0,e.placement=S,e.reset=!0)}}const so={name:"flip",enabled:!0,phase:"main",fn:oo,requiresIfExists:["offset"],data:{_skip:!1}};function Ct(t,e,i){return i===void 0&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Ot(t){return[A,N,V,B].some(function(e){return t[e]>=0})}function ro(t){var e=t.state,i=t.name,n=e.rects.reference,o=e.rects.popper,s=e.modifiersData.preventOverflow,a=Ce(e,{elementContext:"reference"}),r=Ce(e,{altBoundary:!0}),l=Ct(a,n),c=Ct(r,o,s),d=Ot(l),h=Ot(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":h})}const ao={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:ro};function lo(t,e,i){var n=G(t),o=[B,A].indexOf(n)>=0?-1:1,s=typeof i=="function"?i(Object.assign({},e,{placement:t})):i,a=s[0],r=s[1];return a=a||0,r=(r||0)*o,[B,N].indexOf(n)>=0?{x:r,y:a}:{x:a,y:r}}function co(t){var e=t.state,i=t.options,n=t.name,o=i.offset,s=o===void 0?[0,0]:o,a=Mt.reduce(function(d,h){return d[h]=lo(h,e.rects,s),d},{}),r=a[e.placement],l=r.x,c=r.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=a}const uo={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:co};function ho(t){var e=t.state,i=t.name;e.modifiersData[i]=$t({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const po={name:"popperOffsets",enabled:!0,phase:"read",fn:ho,data:{}};function fo(t){return t==="x"?"y":"x"}function mo(t){var e=t.state,i=t.options,n=t.name,o=i.mainAxis,s=o===void 0?!0:o,a=i.altAxis,r=a===void 0?!1:a,l=i.boundary,c=i.rootBoundary,d=i.altBoundary,h=i.padding,f=i.tether,u=f===void 0?!0:f,y=i.tetherOffset,g=y===void 0?0:y,v=Ce(e,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),x=G(e.placement),C=pe(e.placement),O=!C,b=Fe(x),w=fo(b),m=e.modifiersData.popperOffsets,I=e.rects.reference,E=e.rects.popper,S=typeof g=="function"?g(Object.assign({},e.rects,{placement:e.placement})):g,R=typeof S=="number"?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),L=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,M={x:0,y:0};if(m){if(s){var X,K=b==="y"?A:B,q=b==="y"?V:N,P=b==="y"?"height":"width",H=m[b],le=H+v[K],_=H-v[q],ce=u?-E[P]/2:0,fe=C===de?I[P]:E[P],Q=C===de?-E[P]:-I[P],ee=e.elements.arrow,j=u&&ee?je(ee):{width:0,height:0},$=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Zt(),te=$[K],oe=$[q],F=we(0,I[P],j[P]),me=O?I[P]/2-ce-F-te-R.mainAxis:fe-F-te-R.mainAxis,ve=O?-I[P]/2+ce+F+oe+R.mainAxis:Q+F+oe+R.mainAxis,ge=e.elements.arrow&&Ee(e.elements.arrow),Ae=ge?b==="y"?ge.clientTop||0:ge.clientLeft||0:0,Ke=(X=L==null?void 0:L[b])!=null?X:0,Gt=H+me-Ke-Ae,Ut=H+ve-Ke,qe=we(u?Pe(le,Gt):le,H,u?re(_,Ut):_);m[b]=qe,M[b]=qe-H}if(r){var _e,zt=b==="x"?A:B,Kt=b==="x"?V:N,se=m[w],Se=w==="y"?"height":"width",Je=se+v[zt],Qe=se-v[Kt],Be=[A,B].indexOf(x)!==-1,et=(_e=L==null?void 0:L[w])!=null?_e:0,tt=Be?Je:se-I[Se]-E[Se]-et+R.altAxis,it=Be?se+I[Se]+E[Se]-et-R.altAxis:Qe,nt=u&&Be?Wn(tt,se,it):we(u?tt:Je,se,u?it:Qe);m[w]=nt,M[w]=nt-se}e.modifiersData[n]=M}}const vo={name:"preventOverflow",enabled:!0,phase:"main",fn:mo,requiresIfExists:["offset"]};function go(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function yo(t){return t===Z(t)||!D(t)?Ge(t):go(t)}function bo(t){var e=t.getBoundingClientRect(),i=ue(e.width)/t.offsetWidth||1,n=ue(e.height)/t.offsetHeight||1;return i!==1||n!==1}function wo(t,e,i){i===void 0&&(i=!1);var n=D(e),o=D(e)&&bo(e),s=ie(e),a=he(t,o,i),r={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!i)&&((U(e)!=="body"||ze(s))&&(r=yo(e)),D(e)?(l=he(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=Ue(s))),{x:a.left+r.scrollLeft-l.x,y:a.top+r.scrollTop-l.y,width:a.width,height:a.height}}function xo(t){var e=new Map,i=new Set,n=[];t.forEach(function(s){e.set(s.name,s)});function o(s){i.add(s.name);var a=[].concat(s.requires||[],s.requiresIfExists||[]);a.forEach(function(r){if(!i.has(r)){var l=e.get(r);l&&o(l)}}),n.push(s)}return t.forEach(function(s){i.has(s.name)||o(s)}),n}function Io(t){var e=xo(t);return Tn.reduce(function(i,n){return i.concat(e.filter(function(o){return o.phase===n}))},[])}function Co(t){var e;return function(){return e||(e=new Promise(function(i){Promise.resolve().then(function(){e=void 0,i(t())})})),e}}function Oo(t){var e=t.reduce(function(i,n){var o=i[n.name];return i[n.name]=o?Object.assign({},o,n,{options:Object.assign({},o.options,n.options),data:Object.assign({},o.data,n.data)}):n,i},{});return Object.keys(e).map(function(i){return e[i]})}var Et={placement:"bottom",modifiers:[],strategy:"absolute"};function St(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some(function(n){return!(n&&typeof n.getBoundingClientRect=="function")})}function Eo(t){t===void 0&&(t={});var e=t,i=e.defaultModifiers,n=i===void 0?[]:i,o=e.defaultOptions,s=o===void 0?Et:o;return function(r,l,c){c===void 0&&(c=s);var d={placement:"bottom",orderedModifiers:[],options:Object.assign({},Et,s),modifiersData:{},elements:{reference:r,popper:l},attributes:{},styles:{}},h=[],f=!1,u={state:d,setOptions:function(x){var C=typeof x=="function"?x(d.options):x;g(),d.options=Object.assign({},s,d.options,C),d.scrollParents={reference:ae(r)?xe(r):r.contextElement?xe(r.contextElement):[],popper:xe(l)};var O=Io(Oo([].concat(n,d.options.modifiers)));return d.orderedModifiers=O.filter(function(b){return b.enabled}),y(),u.update()},forceUpdate:function(){if(!f){var x=d.elements,C=x.reference,O=x.popper;if(St(C,O)){d.rects={reference:wo(C,Ee(O),d.options.strategy==="fixed"),popper:je(O)},d.reset=!1,d.placement=d.options.placement,d.orderedModifiers.forEach(function(R){return d.modifiersData[R.name]=Object.assign({},R.data)});for(var b=0;b<d.orderedModifiers.length;b++){if(d.reset===!0){d.reset=!1,b=-1;continue}var w=d.orderedModifiers[b],m=w.fn,I=w.options,E=I===void 0?{}:I,S=w.name;typeof m=="function"&&(d=m({state:d,options:E,name:S,instance:u})||d)}}}},update:Co(function(){return new Promise(function(v){u.forceUpdate(),v(d)})}),destroy:function(){g(),f=!0}};if(!St(r,l))return u;u.setOptions(c).then(function(v){!f&&c.onFirstUpdate&&c.onFirstUpdate(v)});function y(){d.orderedModifiers.forEach(function(v){var x=v.name,C=v.options,O=C===void 0?{}:C,b=v.effect;if(typeof b=="function"){var w=b({state:d,name:x,instance:u,options:O}),m=function(){};h.push(w||m)}})}function g(){h.forEach(function(v){return v()}),h=[]}return u}}var So=[zn,po,Gn,Bn,uo,so,vo,Nn,ao],Ro=Eo({defaultModifiers:So});class Yo{constructor(e,i,n){ot(this,"updateHotspotPosition",(e,i)=>{this.currentActiveIndex=e,this.currentOrientation=i;const n=fn(this.hotspotsConfig,e,i);this.hideHotspots(),n.forEach(o=>this.updateAndShowHotspot(o,e))});this.container=i,this.popper=null,this.popperInstance=null,this.hotspotsContainer=Fi(this.container),this.hotspotsConfig=bn(e),this.shouldHidePopper=!0,this.hidePopper=this.hidePopper.bind(this),this.imageAspectRatio=n;const{containerSize:o}=e[0];this.initialContainerSize=o||[i.offsetWidth,i.offsetHeight],this.initHotspots(),this.observeContainerResize()}observeContainerResize(){this.resizeObserver=new ResizeObserver(()=>{const e=this.container.offsetWidth,i=this.container.offsetHeight;this.updateHotspotsForResize(e,i)}),this.resizeObserver.observe(this.container)}updateHotspotsForResize(e,i){this.hotspotsConfig=wn({newWidth:e,newHeight:i,initialContainerSize:this.initialContainerSize,imageAspectRatio:this.imageAspectRatio,hotspotsConfig:this.hotspotsConfig}),this.updateHotspotPosition(this.currentActiveIndex,this.currentOrientation)}showPopper({hotspotElement:e,content:i,id:n,keepOpen:o}){this.popperInstance&&this.popperInstance.instanceId!==n&&this.hidePopper();const s={placement:"top",modifiers:gn(this.container)};this.popper=yn(i,n),this.popper.setAttribute("data-show",""),this.popper.addEventListener("mouseenter",()=>{this.shouldHidePopper=!1}),this.popper.addEventListener("mouseleave",()=>{this.shouldHidePopper=!0,this.checkAndHidePopper()}),e.addEventListener("mouseleave",()=>{this.shouldHidePopper=!0,this.checkAndHidePopper()}),e.addEventListener("mouseenter",()=>{this.shouldHidePopper=!1,this.hidePopperTimeout&&clearTimeout(this.hidePopperTimeout)}),this.popperInstance={...Ro(e,this.popper,s),keepOpen:o,instanceId:n}}checkAndHidePopper(){var e;this.shouldHidePopper&&!((e=this.popperInstance)!=null&&e.keepOpen)&&(this.hidePopperTimeout=setTimeout(()=>{this.shouldHidePopper&&this.hidePopper()},150))}hidePopper(){this.popperInstance&&(this.popperInstance.destroy(),this.popperInstance=null),this.popper&&(this.popper.removeAttribute("data-show"),setTimeout(()=>{this.popper&&this.popper.remove(),this.popper=null},200))}createHotspot(e){const{id:i,content:n,keepOpen:o,onClick:s}=e,a=mn(i);s&&(a.style.cursor="pointer"),a.onclick=r=>{r.stopPropagation(),s==null||s(r,this.popperInstance,i)},n&&a.addEventListener("mouseenter",()=>this.showPopper({hotspotElement:a,content:n,id:i,keepOpen:o})),this.hotspotsContainer.appendChild(a)}hideHotspots(){this.hotspotsContainer.querySelectorAll(".cloudimage-360-hotspot").forEach(e=>{e.style.opacity=0,e.style.pointerEvents="none"})}updateAndShowHotspot(e,i){const{positions:n,id:o}=e,{x:s,y:a}=n[i]??{},r=this.hotspotsContainer.querySelector(`[data-hotspot-id="${o}"]`);r&&(r.style.translate=`${s}px ${a}px`,r.style.opacity=1,r.style.pointerEvents="all")}createAllHotspots(){this.hotspotsConfig.forEach(e=>this.createHotspot(e))}initHotspots(){this.createAllHotspots()}destroy(){this.resizeObserver.disconnect(),this.hidePopper(),this.hotspotsContainer.innerHTML=""}}class Te{constructor(e,i,n){this.container=e,this.isClicked=!1,this.fullscreenView=!!n,this.imagesX=[],this.imagesY=[],this.devicePixelRatio=Math.round(window.devicePixelRatio||1),this.id=e.id,this.movementStart={x:0,y:0},this.draggingDirection=null,this.isReady=!1,this.currentZoomScale=1,this.touchDevice=cn(),this.canvasWorker=new hn,this.onMoveHandler=this.onMoveHandler.bind(this),this.destroy=this.destroy.bind(this),this.init(this.container,i)}mouseDown(e){if(!this.isReady||this.glass)return;const{pageX:i,pageY:n}=e;(this.autoplay||this.loopTimeoutId)&&(this.stopAutoplay(),this.autoplay=!1),this.movementStart={x:i,y:n},this.isClicked=!0,this.isDragging=!1}mouseUp(){this.isReady&&(this.isZoomed||this.showAllIcons(),this.movementStart={x:0,y:0},this.isClicked=!1,this.innerBox.style.cursor="grab")}drag(e,i){if(!this.isReady||!this.isClicked)return;const n=e-this.movementStart.x,o=i-this.movementStart.y;this.draggingDirection=ln({deltaX:n,deltaY:o,reversed:this.dragReverse,allowSpinX:this.allowSpinX,allowSpinY:this.allowSpinY})||this.draggingDirection;const s=this.fullscreenView?document.body:this.container,a=this.dragSpeed/50,r=a*(this.amountX/s.offsetWidth),l=a*(this.amountY/s.offsetHeight),c=this.allowSpinX?Math.abs(Math.round(n*r)):0,d=this.allowSpinY?Math.abs(Math.round(o*l)):0;(this.allowSpinX&&c!==0||this.allowSpinY&&d!==0)&&(this.hideHotspotPopper(),this.onMoveHandler(this.draggingDirection,c,d),this.movementStart={x:e,y:i},setTimeout(()=>{this.isDragging=!0},150))}mouseMove(e){!this.isReady||!this.isClicked&&!this.isZoomed||this.glass||(this.hideAllIcons(),this.drag(e.pageX,e.pageY),this.isZoomed&&this.applyZoom(e))}mouseClick(e){if(!(!this.isReady||this.isDragging)){if(this.glass&&this.magnified){this.removeGlass();return}this.pointerZoom&&!this.glass&&!this.touchDevice&&this.toggleZoom(e)}}loadHigherQualityImages(e,i){const n=be(this.srcXConfig,e),o=this.allowSpinY?be(this.srcYConfig,e):null;dt({cdnPathX:n,cdnPathY:o,configX:this.srcXConfig,configY:this.srcYConfig,onAllImagesLoad:(s,a)=>{this.imagesX=s,this.imagesY=a,i()}})}hideHotspots(){this.hotspotsInstance&&this.hotspotsInstance.hideHotspots()}hideHotspotPopper(){this.hotspotsInstance&&this.hotspotsInstance.hidePopper()}toggleZoom(e){if(this.isZoomed)this.showTransitionOverlay(),setTimeout(()=>{this.removeZoom()},800);else{let i=(this.fullscreenView||this.pointerZoom?document.body:this.container).offsetWidth;this.hideHotspots(),this.showLoadingSpinner(),this.loadHigherQualityImages(i,()=>{this.showTransitionOverlay(),setTimeout(()=>{this.applyZoom(e)},800)})}}removeZoom(){this.isZoomed=!1,this.updateView(),this.showAllIcons(),this.hideTransitionOverlay()}applyZoom(e){const{offsetX:i,offsetY:n}=tn(e,this.canvas,this.devicePixelRatio);this.isZoomed=!0,this.hideAllIcons(),this.hideLoadingSpinner(),this.hideTransitionOverlay(),this.updateView(this.pointerZoom,i,n)}touchOutside(e){if(!this.glass)return;!this.canvas.contains(e.target)&&this.removeGlass()}touchStart(e){if(!this.isReady||e.touches.length>1||this.glass)return;const{pageX:i,pageY:n}=e.touches[0];(this.autoplay||this.loopTimeoutId)&&(this.stopAutoplay(),this.autoplay=!1),this.hideAllIcons(),this.movementStart={x:i,y:n},this.isClicked=!0}touchEnd(){this.isReady&&(this.showAllIcons(),this.movementStart={x:0,y:0},this.isClicked=!1)}touchMove(e){if(!this.isReady||!this.isClicked||this.glass)return;const{pageX:i,pageY:n}=e.touches[0];e.preventDefault(),this.drag(i,n)}keyDown(e){if(!this.isReady)return;const{keyCode:i}=e,n=this.keysReverse;switch(vt(i,this.allowSpinY)&&this.hideAllIcons(),i){case 37:n?this.moveLeft():this.moveRight();break;case 39:n?this.moveRight():this.moveLeft();break;case 38:this.allowSpinY&&(e.preventDefault(),n?this.moveTop():this.moveBottom());break;case 40:this.allowSpinY&&(e.preventDefault(),n?this.moveBottom():this.moveTop());break}}keyUp(e){const{keyCode:i}=e;vt(i,this.allowSpinY)&&this.showAllIcons()}moveActiveXIndexUp(e){this.orientation=k.X,this.activeImageX=(this.activeImageX+e)%this.amountX}moveActiveXIndexDown(e){this.orientation=k.X,this.activeImageX=(this.activeImageX-e+this.amountX)%this.amountX}moveActiveYIndexUp(e){this.orientation=k.Y,this.activeImageY=(this.activeImageY+e)%this.amountY}moveActiveYIndexDown(e){this.orientation=k.Y,this.activeImageY=(this.activeImageY-e+this.amountY)%this.amountY}moveRight(e,i=1){e&&this.activeImageX>=this.imagesX.length-1||(this.moveActiveXIndexUp(i),this.isZoomed||this.updateView())}moveLeft(e,i=1){e&&this.activeImageX<=0||(this.moveActiveXIndexDown(i),this.isZoomed||this.updateView())}moveTop(e,i=1){e&&this.activeImageY>=this.imagesY.length-1||(this.moveActiveYIndexUp(i),this.isZoomed||this.updateView())}moveBottom(e,i=1){e&&this.activeImageY<=0||(this.moveActiveYIndexDown(i),this.isZoomed||this.updateView())}onMoveHandler(e,i=1,n=1){e==="right"?this.moveRight(this.stopAtEdges,i):e==="left"?this.moveLeft(this.stopAtEdges,i):e==="up"?this.moveTop(this.stopAtEdges,n):e==="down"&&this.moveBottom(this.stopAtEdges,n)}updateView(e,i,n){const o=this.orientation===k.X?this.activeImageX:this.activeImageY,s=this.orientation===k.X?this.imagesX[this.activeImageX]:this.imagesY[this.activeImageY];this.hotspotsInstance&&!this.isZoomed&&!this.autoplay&&this.hotspotsInstance.updateHotspotPosition(o,this.orientation),this.drawImageOnCanvas(s,e,i,n)}updatePercentageInLoader(e=0){this.loader&&(this.loader.innerText=e+"%")}adaptCanvasSize(e){const{naturalWidth:i,naturalHeight:n}=e;this.imageAspectRatio=i/n;const o=this.fullscreenView?window.innerWidth:this.canvas.clientWidth,s=this.fullscreenView?window.innerHeight:this.canvas.clientHeight;this.canvasWorker.postMessage({action:"adaptCanvasSize",devicePixelRatio:this.devicePixelRatio,imageAspectRatio:this.imageAspectRatio,containerWidth:o,containerHeight:s})}drawImageOnCanvas(e,i=1,n=0,o=0){this.canvasWorker.postMessage({action:"drawImageOnCanvas",imageData:e,zoomScale:i,pointerX:n,pointerY:o})}pushImageToSet(e,i,n){n===k.X?this.imagesX[i]=e:this.imagesY[i]=e}calculatePercentage(){const e=this.amountX+this.amountY,i=this.imagesX.length+this.imagesY.length;return Math.round(i/e*100)}onImageLoad(e,i,n){this.pushImageToSet(e,i,n),this.updatePercentageInLoader(this.calculatePercentage())}onFirstImageLoaded(e,i){this.createContainers(e),this.adaptCanvasSize(i),this.drawImageOnCanvas(i)}onAllImagesLoaded(){this.addAllIcons(),this.hotspots&&(this.hotspotsInstance=new Yo(this.hotspots,this.innerBox,this.imageAspectRatio)),this.isReady=!0,this.amountX=this.imagesX.length,this.amountY=this.imagesY.length,this.activeImageX=this.autoplayReverse?this.amountX-1:0,this.activeImageY=this.autoplayReverse?this.amountY-1:0,this.autoplay&&(this.hideAllIcons(),dn(this.play.bind(this))())}magnify(e){e.stopPropagation();const{src:i}=this.orientation===k.Y?this.imagesY[this.activeImageY]:this.imagesX[this.activeImageX],o=(this.fullscreenView?document.body:this.container).offsetWidth*this.magnifier,s=Yi(i,o);this.showLoadingSpinner(),this.createGlass(),Ji(s,r=>{this.hideLoadingSpinner(),this.magnified=!0,en(e,this.innerBox,this.offset,r,this.glass,this.magnifier)})}openFullscreenModal(e){e.stopPropagation();const i=Ni(this.container);new Te(i,this.viewerConfig,!0)}closeFullscreenModal(e){e.stopPropagation(),document.body.removeChild(this.container.parentNode),window.document.body.style.overflow="visible"}play(){if(this.isClicked)return;this.hide360ViewCircleIcon();const e=this.speed*36/(this.amountX+this.amountY),i={left:this.moveLeft.bind(this),right:this.moveRight.bind(this),top:this.moveTop.bind(this),bottom:this.moveBottom.bind(this)};this.loopTimeoutId=window.setInterval(()=>{if(this.playOnce&&on({autoplayBehavior:this.autoplayBehavior,activeImageX:this.activeImageX,activeImageY:this.activeImageY,amountX:this.amountX,amountY:this.amountY,autoplayReverse:this.autoplayReverse})){this.stopAutoplay();return}sn({autoplayBehavior:this.autoplayBehavior,activeImageX:this.activeImageX,activeImageY:this.activeImageY,amountX:this.amountX,amountY:this.amountY,autoplayReverse:this.autoplayReverse,spinDirection:this.spinDirection})&&(this.spinDirection=an(this.spinDirection));const s=this.spinDirection==="y";nn({autoplayBehavior:this.autoplayBehavior,spinY:s,reversed:this.autoplayReverse,loopTriggers:i})},e)}stopAutoplay(){this.showAllIcons(),this.autoplay=!1,window.clearTimeout(this.loopTimeoutId)}destroy(){this.stopAutoplay(),this.hotspotsInstance&&this.hotspotsInstance.destroy();const e=this.container,i=e.cloneNode(!0),n=i.querySelector(".cloudimage-360-inner-box");i.removeChild(n),e.parentNode.replaceChild(i,e)}addInitialIcon(){this.initialIcon||(this.initialIcon=Ti(),this.innerBox.appendChild(this.initialIcon))}showInitialIcon(){this.initialIcon&&(this.initialIcon.style.opacity=1)}hideInitialIcon(){this.initialIcon&&(this.initialIcon.style.opacity=0)}createGlass(){this.hideAllIcons(),this.glass=document.createElement("div"),this.innerBox.appendChild(this.glass),this.innerBox.style.cursor="default"}removeGlass(){this.showAllIcons(),this.innerBox.removeChild(this.glass),this.glass=null,this.magnified=!1}addMagnifierIcon(){this.magnifier&&(this.magnifierIcon=Di(),this.magnifierIcon.onclick=this.magnify.bind(this),this.iconsContainer.appendChild(this.magnifierIcon))}showMagnifierIcon(){this.magnifierIcon&&(this.magnifierIcon.style.visibility="visible",this.magnifierIcon.style.opacity=1)}hideMagnifierIcon(){this.magnifierIcon&&(this.magnifierIcon.style.visibility="hidden",this.magnifierIcon.style.opacity=0)}addFullscreenIcon(){this.fullscreen&&(this.fullscreenIcon=Hi(),this.fullscreenIcon.onclick=this.openFullscreenModal.bind(this),this.iconsContainer.appendChild(this.fullscreenIcon))}addCloseFullscreenIcon(){this.fullscreenCloseIcon=Bi(),this.fullscreenCloseIcon.onclick=this.closeFullscreenModal.bind(this),this.iconsContainer.appendChild(this.fullscreenCloseIcon)}showFullscreenIcon(){this.fullscreenIcon&&(this.fullscreenIcon.style.opacity=1)}hideFullscreenIcon(){this.fullscreenIcon&&(this.fullscreenIcon.style.opacity=0)}add360ViewCircleIcon(){this.view360CircleIcon||(this.view360CircleIcon=Pi(this.bottomCircleOffset),this.innerBox.appendChild(this.view360CircleIcon))}show360ViewCircleIcon(){this.view360CircleIcon&&(this.view360CircleIcon.style.opacity=1)}hide360ViewCircleIcon(){this.view360CircleIcon&&(this.view360CircleIcon.style.opacity=0)}addLoadingSpinner(){this.loadingSpinner=$i(),this.innerBox.appendChild(this.loadingSpinner)}showLoadingSpinner(){this.loadingSpinner&&(this.hideAllIcons(),this.loadingSpinner.style.opacity=1)}createTransitionOverlay(){this.transitionOverlay=ji(),this.innerBox.appendChild(this.transitionOverlay)}showTransitionOverlay(){this.transitionOverlay&&(this.hideAllIcons(),this.transitionOverlay.style.opacity=1)}hideTransitionOverlay(){this.transitionOverlay&&(this.transitionOverlay.style.opacity=0)}hideLoadingSpinner(){this.loadingSpinner&&(this.loadingSpinner.style.opacity=0)}remove360ViewCircleIcon(){this.view360CircleIcon&&(this.innerBox.removeChild(this.view360CircleIcon),this.view360CircleIcon=null)}addAllIcons(){this.removeLoader(),this.innerBox.style.cursor="grab",this.pointerZoom&&(this.createTransitionOverlay(),this.addLoadingSpinner()),!this.fullscreenView&&!this.touchDevice&&this.addMagnifierIcon(),this.fullscreenView||this.addFullscreenIcon(),this.initialIconShown&&this.addInitialIcon(),this.bottomCircle||this.add360ViewCircleIcon()}showAllIcons(){this.showInitialIcon(),this.show360ViewCircleIcon(),this.showMagnifierIcon(),this.showFullscreenIcon()}hideAllIcons(){this.hideInitialIcon(),this.hide360ViewCircleIcon(),this.hideMagnifierIcon(),this.hideFullscreenIcon()}removeLoader(){this.loader&&(this.innerBox.removeChild(this.loader),this.loader=null)}attachEvents(e,i,n){e&&this.addMouseEvents(),i&&this.addTouchEvents(),n&&this.addKeyboardEvents()}removeEvents(){this.removeMouseEvents(),this.removeTouchEvents(),this.removeKeyboardEvents()}addMouseEvents(){this.boundMouseClick=this.mouseClick.bind(this),this.boundMouseDown=this.mouseDown.bind(this),this.boundMouseMove=at(this.mouseMove.bind(this),lt),this.boundMouseUp=this.mouseUp.bind(this),this.innerBox.addEventListener("click",this.boundMouseClick),this.innerBox.addEventListener("mousedown",this.boundMouseDown),document.addEventListener("mousemove",this.boundMouseMove),document.addEventListener("mouseup",this.boundMouseUp)}addTouchEvents(){this.boundTouchOutside=this.touchOutside.bind(this),this.boundTouchStart=this.touchStart.bind(this),this.boundTouchEnd=this.touchEnd.bind(this),this.boundTouchMove=at(this.touchMove.bind(this),lt),document.addEventListener("touchstart",this.boundTouchOutside),this.container.addEventListener("touchstart",this.boundTouchStart),this.container.addEventListener("touchend",this.boundTouchEnd),this.container.addEventListener("touchmove",this.boundTouchMove)}addKeyboardEvents(){this.boundKeyDown=this.keyDown.bind(this),this.boundKeyUp=this.keyUp.bind(this),document.addEventListener("keydown",this.boundKeyDown),document.addEventListener("keyup",this.boundKeyUp)}removeMouseEvents(){this.innerBox.removeEventListener("click",this.boundMouseClick),this.innerBox.removeEventListener("mousedown",this.boundMouseDown),document.removeEventListener("mousemove",this.boundMouseMove),document.removeEventListener("mouseup",this.boundMouseUp)}removeTouchEvents(){document.removeEventListener("touchstart",this.boundTouchOutside),this.container.removeEventListener("touchstart",this.boundTouchStart),this.container.removeEventListener("touchend",this.boundTouchEnd),this.container.removeEventListener("touchmove",this.boundTouchMove)}removeKeyboardEvents(){document.removeEventListener("keydown",this.boundKeyDown),document.removeEventListener("keyup",this.boundKeyUp)}createContainers(e){this.iconsContainer=ut(this.innerBox),this.canvas=ki(this.innerBox,e),this.loader=Vi(this.innerBox);const i=this.canvas.transferControlToOffscreen();this.canvasWorker.postMessage({action:"initCanvas",offscreen:i,devicePixelRatio:this.devicePixelRatio},[i]),this.fullscreenView&&this.addCloseFullscreenIcon(),We(this.innerBox,".cloudimage-360-placeholder")}update(e){this.isReady&&(this.stopAutoplay(),We(this.innerBox,".cloudimage-360-icons-container"),this.init(this.container,e,!0),this.iconsContainer=ut(this.innerBox),this.onAllImagesLoaded())}init(e,i,n){const o=i?Ii(i):xi(e),{folder:s,apiVersion:a,filenameX:r,filenameY:l,imageListX:c,imageListY:d,indexZeroBase:h,amountX:f,amountY:u,draggable:y=!0,swipeable:g=!0,keys:v,keysReverse:x,bottomCircleOffset:C,autoplay:O,autoplayBehavior:b,playOnce:w,speed:m,autoplayReverse:I,fullscreen:E,magnifier:S,ciToken:R,ciFilters:L,ciTransformation:M,lazyload:X,dragSpeed:K,stopAtEdges:q,pointerZoom:P,imageInfo:H="black",initialIconShown:le,bottomCircle:_,hotspots:ce,dragReverse:fe}=o,Q={ciToken:R,ciFilters:L,ciTransformation:M},ee=c?JSON.parse(c):[],j=d?JSON.parse(d):[];if(this.viewerConfig=o,this.amountX=ee.length||f,this.amountY=j.length||u,this.allowSpinX=!!this.amountX,this.allowSpinY=!!this.amountY,this.activeImageX=I?this.amountX-1:0,this.activeImageY=I?this.amountY-1:0,this.bottomCircleOffset=C,this.autoplay=O,this.autoplayBehavior=b,this.playOnce=w,this.speed=m,this.autoplayReverse=I,this.fullscreen=E,this.magnifier=S>1?Math.min(S,5):0,this.dragSpeed=Math.max(K,50),this.stopAtEdges=q,this.ciParams=Q,this.apiVersion=a,this.pointerZoom=P>1?Math.min(P,5):null,this.keysReverse=x,this.info=H,this.keys=v,this.innerBox=this.innerBox??Wi(this.container),this.initialIconShown=le,this.bottomCircle=_,this.spinDirection=rn(this.autoplayBehavior,this.allowSpinX,this.allowSpinY),this.dragReverse=fe,this.hotspots=ce,this.srcXConfig={folder:s,filename:r,imageList:ee,container:e,innerBox:this.innerBox,apiVersion:a,ciParams:Q,lazyload:X,amount:this.amountX,indexZeroBase:h,autoplayReverse:I},this.srcYConfig={...this.srcXConfig,filename:l,imageList:j,orientation:k.Y,amount:this.amountY},n&&this.removeEvents(),this.attachEvents(y,g,v),n)return;const $=(this.fullscreenView?document.body:this.container).offsetWidth,te=this.allowSpinX&&!ee.length?be(this.srcXConfig,$):null,oe=this.allowSpinY&&!j.length?be(this.srcYConfig,$):null,F=me=>{dt({cdnPathX:te,cdnPathY:oe,configX:this.srcXConfig,configY:this.srcYConfig,onImageLoad:(ve,ge,Ae)=>this.onImageLoad(ve,ge,Ae),onFirstImageLoad:ve=>this.onFirstImageLoaded(me,ve),onAllImagesLoad:this.onAllImagesLoaded.bind(this)})};this.allowSpinX?pt(te,this.srcXConfig,F):this.allowSpinY&&pt(oe,this.srcYConfig,F)}}class jt{constructor(){this.views=new Map,this.initAll=this.initAll.bind(this),this.getViews=this.getViews.bind(this)}generateId(){return`ci360-${Math.random().toString(36).slice(2,11)}`}init(e,i,n){if(!e)return;const o=e.id||this.generateId();e.id||(e.id=o);const s=new Te(e,i,n);return this.views.set(o,s),s}initAll(e="cloudimage-360"){[...document.querySelectorAll(`.${e}`)].filter(Boolean).forEach(n=>{const o=n.id||this.generateId();n.id||(n.id=o);const s=new Te(n);this.views.set(o,s)})}destroy(e){const i=this.getViewById(e);i&&(i.destroy(),this.views.delete(e))}destroyAll(){this.views.forEach(e=>{e.destroy()}),this.views.clear()}getViewById(e){return this.views.get(e)}getViews(){return Array.from(this.views.values())}updateView(e,i){const n=this.getViewById(e),o={...n.viewerConfig,...i};if(Ci(n.viewerConfig,i)){n.destroy();const a=document.getElementById(e);this.init(a,o)}else n.update(o);return n}}window.CI360=jt;const Lo=[{id:"hotspot-1",orientation:"x",containerSize:[1170,663],positions:{0:{x:527,y:319},1:{x:527,y:319},2:{x:527,y:null},3:{x:498,y:null},4:{x:470,y:null},5:{x:441,y:null},73:{x:555,y:null},72:{x:586,y:null},71:{x:614,y:null},70:{x:641,y:null},69:{x:668,y:null},68:{x:692,y:null},67:{x:715,y:null},66:{x:736,y:null},65:{x:756,y:null},64:{x:773,y:null},63:{x:787,y:null}},content:'<div class="tooltip">Info about Hotspot 1</div>'},{id:"hotspot-2",orientation:"x",containerSize:[1220,680],positions:{73:{x:355,y:474},74:{x:355,y:null},72:{x:341,y:479},71:{x:336,y:null},70:{x:332,y:null},69:{x:327,y:null},68:{x:326,y:null},67:{x:327,y:null},66:{x:331,y:null},65:{x:334,y:null},64:{x:336,y:null},63:{x:347,y:474}},content:'<div class="tooltip">Info about Hotspot 2</div>'},{id:"hotspot-3",orientation:"x",containerSize:[1220,680],positions:{11:{x:683,y:151},12:{x:683,y:null},13:{x:683,y:null},14:{x:683,y:null},15:{x:683,y:null},16:{x:683,y:null},17:{x:681,y:152},18:{x:677,y:156},19:{x:671,y:159},20:{x:665,y:163},21:{x:656,y:168},22:{x:650,y:171},23:{x:643,y:176},24:{x:635,y:178},25:{x:628,y:181},26:{x:621,y:null},27:{x:610,y:null},28:{x:598,y:null},29:{x:588,y:null},30:{x:578,y:null},31:{x:570,y:176},32:{x:560,y:173}},content:'<div class="tooltip">Info about Hotspot 3</div>'},{id:"hotspot-4",orientation:"x",containerSize:[1220,680],positions:{6:{x:607,y:246},7:{x:619,y:null},8:{x:630,y:null},9:{x:637,y:null},10:{x:642,y:null}},content:'<div class="tooltip">Info about Hotspot 4</div>'}],Xo={folder:"https://scaleflex.cloudimg.io/v7/demo/360-nike/",filenameX:"nike-{index}.jpg",filenameY:"nike-y-{index}.jpg",amountX:"35",amountY:"36",autoplayBehavior:"spin-xy"},Po={folder:"https://scaleflex.cloudimg.io/v7/demo/earbuds/",filenameX:"{index}.jpg",amountX:"233",amountY:void 0,filenameY:void 0},Rt={folder:{label:"data-folder",value:"https://scaleflex.cloudimg.io/v7/demo/earbuds/",isRequired:!0,isUrl:!0},filenameX:{label:"data-filename-x",value:"{index}.jpg"},filenameY:{label:"data-filename-y"},amountY:{label:"data-amount-y",isRequired:!1},amountX:{label:"data-amount-x",value:233,isRequired:!0},speed:{label:"data-speed",value:100,isRequired:!1},dragSpeed:{label:"data-drag-speed",value:120,isRequired:!1},autoplay:{label:"data-autoplay",isRequired:!1},pointerZoom:{label:"data-pointer-zoom",value:1.5,isRequired:!1},autoplayBehavior:{label:"data-autoplay-behavior",value:"spin-xy",isRequired:!1},magnifier:{label:"data-magnifier",value:1.5,isRequired:!1},autoplayReverse:{label:"data-autoplay-reverse",isRequired:!1},playOnce:{label:"data-play-once",isRequired:!1},keys:{label:"data-keys",isRequired:!1},keysReverse:{label:"data-keys-reverse",isRequired:!1},draggable:{label:"data-draggable",isRequired:!1},swipeable:{label:"data-swipeable",isRequired:!1},fullscreen:{label:"data-fullscreen",isRequired:!1}},Yt={NAME:"#7B9200",URL:"#2D88CB"},To=["folder","class"],ko=document.getElementById("spin-directions"),Lt=document.getElementById("copy-text"),Xt=document.getElementById("code-block"),Pt=document.getElementById("code-wrapper"),Ve=document.getElementById("pointer-zoom-selector"),Ao=document.querySelector(".copy-button"),Bo=document.querySelector(".output-code"),Mo=document.getElementById("pointer-checkbox"),Ho=document.querySelectorAll(".plugin-option"),Ft=document.getElementById("x-images-selector"),Wo=document.getElementById("images-y"),Zo=document.getElementById("spin-speed"),Do=document.getElementById("drag-speed"),z=new jt;function Vo(t){const i=t.target.value==="Y",n=i?Xo:Po,o=z.updateView("demo-generator",n);Ft.value=i?35:233,Wo.style.display=i?"block":"none",ne(o.viewerConfig)}function No(t){const{value:e}=t.target,i=z.updateView("demo-generator",{dragSpeed:parseInt(e,10)});ne(i.viewerConfig)}function $o(t){const{value:e}=t.target,i=z.updateView("demo-generator",{speed:parseInt(e,10)});ne(i.viewerConfig)}function jo(){navigator.clipboard.writeText(Bo.innerText),Lt.innerHTML="Copied",setTimeout(()=>{Lt.innerHTML="Copy"},500)}function Fo(t){const{value:e}=t.target,i=z.updateView("demo-generator",{amountX:parseInt(e,10)});ne(i.viewerConfig)}function Go(t){const e=t.target.checked,i=parseFloat(Ve.value,10),n=z.updateView("demo-generator",{pointerZoom:e?i:!1});Ve.disabled=!e,ne(n.viewerConfig)}function Uo(t){const{value:e}=t.target,i=z.updateView("demo-generator",{pointerZoom:parseFloat(e,10)});ne(i.viewerConfig)}function zo(t){const e=t.target.checked,i=t.target.getAttribute("data-plugin-property"),n=t.target.getAttribute("data-plugin-value");let o=e;n&&(o=e?JSON.parse(n):void 0);const s=z.updateView("demo-generator",{[i]:o});ne(s.viewerConfig)}function ne(t){Xt.innerText="",Object.keys(t).filter(n=>Rt[n]&&!!t[n]).forEach(n=>{const{label:o}=Rt[n],s=document.createElement("div"),a=document.createElement("span"),r=document.createElement("span");a.innerText=o,a.style.color=Yt.NAME,To.includes(n)&&(r.style.color=Yt.URL),s.appendChild(a),r.innerText=`"${t[n]}"`,s.innerHTML+="=",s.appendChild(r),Xt.appendChild(s),Pt.scrollTop=Pt.scrollHeight})}Do.addEventListener("change",No);Zo.addEventListener("change",$o);Mo.addEventListener("change",Go);Ft.addEventListener("change",Fo);Ve.addEventListener("change",Uo);ko.addEventListener("change",Vo);Ao.addEventListener("click",jo);Ho.forEach(t=>{t.addEventListener("change",zo)});const Ko=document.getElementById("gurkha-suv"),qo={folder:"https://scaleflex.cloudimg.io/v7/demo/suv-orange-car-360/",filenameX:"orange-{index}.jpg",amountX:73,lazyload:!0,speed:120,pointerZoom:2,responsive:"scaleflex",autoplay:!0,fullscreen:!0,magnifier:3,playOnce:!0,hotspots:Lo};z.init(Ko,qo);z.initAll();const _o=z.getViewById("demo-generator");ne(_o.viewerConfig);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter;overflow-x:hidden}#images-y{display:none}.cloudimage-360 canvas,#demo-generator canvas,#gurkha-suv canvas{overflow:hidden;border-radius:6px}.container-fluid{max-width:1170px;margin:0 auto}.content-wrapper .header{display:flex;justify-content:space-between;padding:23.5px 24.5px 0}.content-wrapper .header .header-logo{display:flex;align-items:center;column-gap:16px}.content-wrapper .header-logo .cloud-img-title{padding-left:16px;border-left:1px solid #b8c4d0;text-decoration:none;font-size:20px;line-height:32px;font-weight:500;color:#203254}.content-wrapper .header .navbar{display:flex;align-items:center;column-gap:8px}.content-wrapper .header .navbar a{text-decoration:none;font-size:14px;line-height:16.94px;color:#5d6d7e}.content-wrapper .navbar .stars-button{display:flex;align-items:center;border:1px solid #5d6d7e;padding:9.5px 16px;border-radius:4px}.content-wrapper .navbar .github-icons{padding-right:4px}.content-wrapper .navbar .git-button{display:flex;align-items:center;border:1px solid #5d6d7e;padding:11px 14px;border-radius:4px}.content-wrapper .content{display:flex;flex-direction:column;align-items:center;margin-top:57.5px;padding:0 25px;box-sizing:content-box;position:relative}.content-wrapper .content h1{font-size:48px;line-height:58px;font-weight:700;color:#203254;text-align:center;max-width:971px}.content-wrapper .content h1 span{color:#3daba4}.content-wrapper .content .content-text{font-size:20px;line-height:30px;font-weight:400;color:#4d5c74;margin-top:8px;max-width:775px;text-align:center}.content-wrapper .content .github-sandbox-buttons-wrapper{display:flex;flex-wrap:wrap;gap:16px;margin-top:24px}.content-wrapper .github-sandbox-buttons-wrapper .github-button{display:flex;align-items:center;height:48px;padding:8px 24.4px;background-color:#3daba4;border-radius:4px;border:none;text-decoration:none;font-size:16px;line-height:32px;color:#fff;font-weight:700;text-align:center;white-space:nowrap}.content-wrapper .github-sandbox-buttons-wrapper .code-sand-box-button{display:flex;align-items:center;height:48px;padding:8px 23.4px;border-radius:4px;border:1px solid #3daba4;background-color:#fff;cursor:pointer;text-decoration:none;color:#3daba4;font-weight:700;font-size:16px;text-align:center}.content-wrapper .content .car-image{margin-top:32px;width:100%}.content-wrapper .content .car-image .content-text{margin:16px auto 0;text-align:center;font-size:16px;line-height:24px;max-width:715px;color:#4d5c74}.cloudimage-360-modal-more-details{color:#fff7f4;background-color:#db5e2e}.cloudimage-360-modal-more-details:hover{background-color:#a53e16;color:#fff7f4}.cloudimage-360-modal-description{font-size:11px}.popup-link a{font-size:11px;line-height:16px;color:#0c6dc7;font-weight:700}.cloudimage-360-carousel-dot.active-dot{background-color:#db5e2e}.content-wrapper .content .customer-logos{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));align-items:center;grid-gap:60px;margin-top:118.27px}.content-wrapper .content .cyan-blur-circle{position:absolute;width:255px;height:255px;right:0;top:30px;background:#aadbff;filter:blur(120px);z-index:-1}.content-wrapper .content .blue-blur-circle{position:absolute;width:418px;height:254px;left:-283px;top:546px;background:#90eee7;filter:blur(150px);z-index:-1}.content-wrapper .customer-logos img{max-width:100%;margin:0 auto}.content-wrapper .customer-logos .vivo-logo{width:152px}.content-wrapper .customer-logos .jawa-logo{width:124.3px}.content-wrapper .customer-logos .sennheiser-logo{width:222.57px}.content-wrapper .customer-logos .geelly-logo{width:111px}.content-wrapper .customer-logos .yamaha-logo{width:183.74px}.content-wrapper .customer-logos .force-logo-wrapper{display:flex;flex-direction:column;row-gap:3.85px;align-items:center}.content-wrapper .customer-logos .force-logo{width:101.16px}.gallery-section{display:flex;flex-direction:column;align-items:center;margin-top:127px}.gallery-section .gallery-title{text-align:center}.gallery-section .gallery-title h2{font-size:40px;line-height:54px;font-weight:600;color:#203254}.gallery-section .gallery-title p{font-size:20px;line-height:30px;font-weight:400;color:#4d5c74}.gallery-section .gallery-content{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));width:100%;align-items:center;margin-top:32px;gap:29px;justify-items:center}.gallery-section .gallery-content p{font-size:20px;line-height:30px;color:#4d5c74;font-weight:500}.gallery-section .gallery-content .motorcycle{display:flex;flex-direction:column;width:447.5px;align-items:center}.gallery-section .gallery-content .vivo-mobile{display:flex;flex-direction:column;align-items:center;width:261.5px}.gallery-section .gallery-content .geely-car{display:flex;flex-direction:column;align-items:center;width:403px}.demo-usage{background-color:#f2f7fa;margin-top:73px;padding:60px 25px 91px}.demo-usage .usage-title{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:773px;margin:0 auto}.demo-usage .usage-title h2{font-size:40px;line-height:54px;font-weight:600;color:#203254}.demo-usage .usage-title p{font-size:20px;line-height:30px;font-weight:400;color:#4d5c74}.demo-usage .demo-usage-wrapper .demo-usage-content{display:grid;grid-template-columns:repeat(2,1fr);justify-content:center;margin-top:32px;column-gap:30px;flex-wrap:wrap}.demo-usage .demo-usage-wrapper .earbuds{margin-top:32px;width:569.89px}.demo-usage .demo-usage-wrapper .control-buttons{visibility:hidden}.demo-usage .earbuds .copy-button-wrapper{position:relative}.demo-usage .earbuds .copy-button{position:absolute;display:flex;column-gap:4px;right:32px;top:59px;align-items:center;cursor:pointer}.demo-usage .earbuds .copy-button p{font-size:14px;line-height:17px;color:#3daba4;font-weight:400}.demo-usage .demo-usage-wrapper .output-code-wrapper{margin-top:30px;background:#fff;box-shadow:0 2px 41px 10px #2d88cb0d;border-radius:4px;padding:32px 93.21px 32px 32px;white-space:nowrap;overflow:scroll;max-height:270px}.demo-usage .demo-usage-wrapper .output-code-wrapper::-webkit-scrollbar{width:8px}.demo-usage .demo-usage-wrapper .output-code-wrapper::-webkit-scrollbar-thumb{background:#dbdddf}.demo-usage .output-code-wrapper .output-code{font-size:14px;line-height:21px;color:#203254;font-weight:500}.demo-usage .output-code-wrapper .code{padding-left:10px}.demo-usage .demo-usage-content .plugin-options-wrapper{display:flex;column-gap:30px}.demo-usage .demo-usage-content .image-source{display:flex;flex-direction:column;padding-top:28px;row-gap:20px}.demo-usage .image-source .image-source-options{display:flex;flex-direction:column;row-gap:20px}.demo-usage .image-source .image-name-option,.x-amount-option,.y-amount-option{display:flex;flex-direction:column;row-gap:6px}.demo-usage .image-source .y-amount-option{display:none}.demo-usage .image-source .image-source-options h3{font-size:16px;line-height:21px;font-weight:700;color:#4d5c74}.demo-usage .image-source .input-title{font-size:14px;line-height:21px;color:#4d5c74;font-weight:400}.demo-usage .image-source .plugin-options{border:1px solid #e2e7f1;border-radius:4px;width:270px;height:44px;padding-left:10px;font-size:16px;line-height:24px;font-weight:500;color:#203254;cursor:pointer;background-color:#fff}.demo-usage .image-source .plugin-options:nth-child(3){display:none}.demo-usage .plugin-selector{background:url(https://scaleflex.cloudimg.io/v7/demo/360-assets/icons/input-arrow.svg);background-repeat:no-repeat;background-position-x:calc(100% - 20px);background-position-y:17.12px}.demo-usage-wrapper .demo-usage-content .customize{display:flex;flex-direction:column;row-gap:20.5px;max-width:270px;max-height:600px;min-width:fit-content}.demo-usage-wrapper .demo-usage-content .customize-wrapper{display:flex;flex-direction:column;row-gap:20.5px;max-width:270px;max-height:600px;overflow-y:scroll;min-width:fit-content}.demo-usage-wrapper .demo-usage-content .customize-wrapper::-webkit-scrollbar{width:8px}.demo-usage-wrapper .demo-usage-content .customize-wrapper::-webkit-scrollbar-thumb{background:#dbdddf}.demo-usage-wrapper .demo-usage-content .customize h3{font-size:16px;line-height:21px;font-weight:700;color:#4d5c74}.demo-usage-wrapper .customize .customize-options{display:flex;flex-direction:column}.demo-usage-wrapper .customize .customize-checkboxs{display:flex;align-items:center;column-gap:8px}.demo-usage-wrapper .customize .customize-inputs{width:20px;height:20px;border:1px solid #dfe1ec}.demo-usage-wrapper .customize .customize-selectors-wrappers{display:flex;flex-direction:column;row-gap:6px}.demo-usage-wrapper .customize .selectors-wrappers-text{font-size:14px;line-height:21px;font-weight:400;color:#4d5c74;margin-top:8.5px}.demo-usage-wrapper .customize .customize-selectors{width:272px;height:44px;border:1px solid #e2e7f1;border-radius:4px;padding-left:12px;font-size:16px;line-height:24px;font-weight:500;background-color:#fff}.demo-usage-wrapper .customize .customize-selectors::-webkit-inner-spin-button{display:none}.demo-usage-wrapper .customize .checkbox-group{display:flex;flex-direction:column;row-gap:9px}.checkbox-container{display:block;position:relative;padding-left:29px;cursor:pointer;font-size:16px;line-height:19.36px;font-weight:500;color:#203254;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pointer-checkbox{margin-bottom:4px}.checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;top:0;left:0;height:20px;width:20px;background-color:#fff;border:1px solid #dfe1ec}.checkbox-container input:checked~.checkmark{background-color:#fff}.checkmark:after{content:"";position:absolute;display:none}.checkbox-container input:checked~.checkmark:after{display:block}.checkbox-container .checkmark:after{left:2px;top:4px;width:19px;height:13px;background-image:url(https://scaleflex.cloudimg.io/v7/demo/360-assets/icons/check-icon.svg);background-repeat:no-repeat}.questions{position:relative;padding:60px 25px;box-sizing:content-box;display:flex;flex-direction:column;align-items:center}.questions h2{margin-bottom:12px;font-weight:600;font-size:40px;line-height:54px;color:#203254}.questions p{position:relative;margin-bottom:32px;font-weight:400;font-size:20px;line-height:30px;color:#203254}.questions span{font-weight:700;font-size:20px;line-height:30px;color:#203254}.questions .issue-button-wrapper{display:flex;justify-content:center;width:100%}.questions .issue-button-wrapper .issue-button{display:flex;align-items:center;padding:8px 39px;height:48px;background-color:#3daba4;border-radius:4px;color:#fff;font-size:16px;line-height:32px;border:none;cursor:pointer;font-weight:700;text-decoration:none}.questions button a{color:#fff;font-size:16px;line-height:32px;text-decoration:none;font-weight:700}.questions .cyan-blur-circle{position:absolute;width:202px;height:202px;left:-149px;top:0;background:#83cbff;filter:blur(150px);z-index:-1}.questions .green-blur-circle{position:absolute;width:255px;height:255px;right:0;top:0;background:#aadbff;filter:blur(150px);z-index:-1}.footer{position:relative;padding:60px 25px;box-sizing:content-box;display:flex;justify-content:space-between}.footer .accordion-wrapper{display:flex;flex-direction:column;row-gap:26px;display:none}.footer button{display:flex;font-size:18px;line-height:24px;width:100%;font-weight:700;border:none;background-color:#fff;color:#000228;height:24px;cursor:pointer}.footer .filerobot-accordion{display:flex;align-items:center;justify-content:start}.footer .accordion-content{margin-bottom:10px;margin-top:10px;display:none}.footer .filerobot-accordion img{width:14px;height:8px;cursor:pointer;margin-left:17px}.footer .input-with-submit-button{position:relative}.footer .navbar{display:flex;align-items:center;margin-bottom:65px;display:none;margin-top:16px}.footer .navbar .stars{border:1px solid #5d6d7e;border-radius:4px;display:flex;align-items:center;justify-content:center;padding:8px 16px;cursor:pointer;height:41px;width:246px}.footer .navbar .stars img{margin-right:4px}.footer .navbar .stars .star{width:16px;height:16px}.footer .navbar .stars span{background-color:#f1f8ff;margin-left:.375em}.footer .navbar .github{border:1px solid #5d6d7e;border-radius:4px;display:flex;align-items:center;justify-content:center;padding:8px 16px;font-size:.875em;margin-left:8px;text-decoration:none;cursor:pointer;color:#5d6d7e;width:246px;height:41px}.footer .navbar .github img{width:14.53px;height:16px;margin-right:4px}.footer .footer-logo{display:flex;flex-direction:column;max-width:550px;width:35.9vw;row-gap:24px;color:#4d5c74;cursor:pointer}.footer .footer-logo img{width:170px;height:42.26px}.footer .footer-logo p{font-size:16px;line-height:24px}.footer .footer-logo a{text-decoration:none;color:#3daba4}.footer .footer-wrapper{display:flex;column-gap:5.22vw}.footer .footer-info{display:flex;flex-direction:column}.footer .footer-info h4{margin-bottom:24px;font-weight:600;font-size:18px;line-height:22px;color:#203254}.footer .footer-info-content{display:flex;flex-direction:column;row-gap:16px;color:#4d5c74;font-size:16px;line-height:19.36px}.footer .footer-info-content a{text-decoration:none;color:#4d5c74;font-size:16px;line-height:19.36px}.footer .footer-filerobot h4{font-weight:600;font-size:18px;line-height:21.78px;color:#203254;margin-bottom:24px}.footer .footer-filerobot-content{display:flex;flex-direction:column;row-gap:16px}.footer .footer-filerobot-content a{text-decoration:none;font-size:16px;line-height:19.36px;color:#4d5c74}.transition-outline-button{transition:all .3s ease-in-out}.transition-outline-button:hover{background-color:#3daba4;color:#fff!important}.transition-filled-button{transition:all .3s ease-in-out}.transition-filled-button:hover{background-color:#35918a!important}@media (max-width: 1224px){.demo-usage .demo-usage-wrapper .demo-usage-content{display:grid;grid-template-columns:repeat(2,.5fr);justify-content:center;margin-top:32px;column-gap:30px;flex-wrap:wrap}.demo-usage .demo-usage-content .plugin-options-wrapper{display:flex;flex-direction:column;row-gap:30px;overflow-y:scroll;min-width:fit-content;max-height:621px}.demo-usage .demo-usage-content .plugin-options-wrapper::-webkit-scrollbar{width:8px}.demo-usage .demo-usage-content .plugin-options-wrapper::-webkit-scrollbar-thumb{background:#dbdddf}.demo-usage-wrapper .demo-usage-content .customize-wrapper{margin-top:0;max-height:unset;min-height:unset;overflow-y:unset;grid-column:2;padding-top:0}}@media (max-width: 930px){.demo-usage .demo-usage-wrapper .earbuds{width:80.5%}.demo-usage .demo-usage-wrapper .earbuds .output-code{width:100%}.demo-usage .demo-usage-wrapper .demo-usage-content{display:flex;justify-content:center;margin-top:32px;column-gap:30px;flex-wrap:wrap}.demo-usage .demo-usage-content .image-source{width:50%;padding-top:0}.demo-usage .image-source .plugin-options{width:100%}.demo-usage .demo-usage-content .plugin-options-wrapper{display:flex;flex-direction:row;width:80.2%;margin-top:30px;overflow-y:unset}.demo-usage-wrapper .demo-usage-content .customize{width:50%;max-width:unset;max-height:600px;padding-top:0}.demo-usage-wrapper .demo-usage-content .customize-wrapper{width:100%;max-width:unset;max-height:600px;overflow-y:scroll}.demo-usage-wrapper .customize .customize-selectors{width:100%}}@media (max-width: 777px){.content-wrapper .header .navbar{display:none}}@media (max-width: 768px){.content-wrapper .header{display:flex;padding:23.5px 16px 0}.content-wrapper .content{align-items:flex-start}.content-wrapper .content h1,.content-wrapper .content .content-text{text-align:left}.content-wrapper .content .customer-logos{justify-content:space-between}.content-wrapper .content{padding:0 16px}.content-wrapper .content .car-image .content-text{text-align:left}.gallery-section{padding:0 16px}.demo-usage{padding:60px 16px 91px}.demo-usage .usage-title{align-items:flex-start;text-align:left}.demo-usage .demo-usage-wrapper .earbuds{width:100%}.content-wrapper .github-sandbox-buttons-wrapper .github-button{padding:8px 11.6px}.content-wrapper .github-sandbox-buttons-wrapper .github-button a{white-space:nowrap}.demo-usage .demo-usage-content .image-source{width:100%}.demo-usage-wrapper .demo-usage-content .customize{width:100%;max-width:unset}.demo-usage .demo-usage-content .plugin-options-wrapper{width:100%}.questions{padding:60px 16px;align-items:flex-start}.questions .issue-button-wrapper{justify-content:flex-start}}@media (max-width: 650px){.content-wrapper .header .navbar{display:none}.demo-usage .demo-usage-content .plugin-options-wrapper{display:flex;flex-direction:column;overflow-y:scroll}.demo-usage-wrapper .demo-usage-content .customize-wrapper{overflow-y:unset}.gallery-section .gallery-content .motorcycle,.gallery-section .gallery-content .geely-car{width:380px}.footer{display:flex;flex-direction:column}.footer .footer-logo{width:fit-content}.footer .footer-wrapper{justify-content:space-between}}@media (max-width: 512px){.content-wrapper .header .navbar{display:none}.content-wrapper .header{display:flex;justify-content:space-between;padding:23.5px 16px 0}.content-wrapper .content h1{font-size:9.4vw;line-height:11.3vw;text-align:left}.content-wrapper .content .content-text{text-align:left}.content-wrapper .header .header-logo{height:40px;font-size:4.4vw;line-height:6.9vw}.content-wrapper .header .header-logo img{height:35px;width:140.79px}.content-wrapper .content .customer-logos{justify-content:space-between}.content-wrapper .content{padding:0 16px}.content-wrapper .content .car-image .content-text{text-align:left}.gallery-section{padding:0 16px}.demo-usage{padding:60px 16px 91px}.demo-usage .usage-title{align-items:flex-start;text-align:left}.demo-usage .demo-usage-wrapper .earbuds{width:100%}.content-wrapper .github-sandbox-buttons-wrapper .github-button{padding:8px 11.6px}.content-wrapper .github-sandbox-buttons-wrapper .github-button a{white-space:nowrap}.demo-usage .demo-usage-content .image-source{width:100%}.demo-usage-wrapper .demo-usage-content .customize{width:100%;max-width:unset}.questions{padding:60px 16px;align-items:flex-start}.footer{display:block;padding:60px 16px}.footer .accordion-wrapper,.footer .email-input-wrapper{display:flex}.footer .footer-logo{width:100%;row-gap:12px}.footer .footer-logo p{font-size:15px;line-height:29px}.footer .footer-filerobot-content{margin-bottom:29px}.footer .footer-wrapper{display:none}.footer .navbar{display:flex}.hide-in-mobile{display:none}}.cloudimage-360 .cloudimage-360-left,.cloudimage-360 .cloudimage-360-right{padding:8px;background:#f4f4f4;border:none;border-radius:4px}.cloudimage-360 .cloudimage-360-left:focus,.cloudimage-360 .cloudimage-360-right:focus{outline:none}.cloudimage-360 .cloudimage-360-left{display:none;position:absolute;z-index:100;top:calc(50% - 15px);left:20px}.cloudimage-360 .cloudimage-360-right{display:none;position:absolute;z-index:100;top:calc(50% - 15px);right:20px}.cloudimage-360 .cloudimage-360-left:before,.cloudimage-360 .cloudimage-360-right:before{content:"";display:block;width:30px;height:30px;background:50% 50% / cover no-repeat}.cloudimage-360 .cloudimage-360-left:before{background-image:url(https://cdn.scaleflex.it/plugins/js-cloudimage-360-view/assets/img/arrow-left.svg)}.cloudimage-360 .cloudimage-360-right:before{background-image:url(https://cdn.scaleflex.it/plugins/js-cloudimage-360-view/assets/img/arrow-right.svg)}.cloudimage-360 .cloudimage-360-left.not-active,.cloudimage-360 .cloudimage-360-right.not-active{opacity:.4;cursor:default;pointer-events:none}.cloudimage-360 .cloudimage-360-top,.cloudimage-360 .cloudimage-360-bottom{padding:8px;background:#f4f4f4;border:none;border-radius:4px}.cloudimage-360 .cloudimage-360-top:focus,.cloudimage-360 .cloudimage-360-bottom:focus{outline:none}.cloudimage-360 .cloudimage-360-top{display:none;position:absolute;z-index:100;left:calc(50% - 15px);top:20px;transform:rotate(90deg)}.cloudimage-360 .cloudimage-360-bottom{display:none;position:absolute;z-index:100;left:calc(50% - 15px);bottom:20px;transform:rotate(90deg)}.cloudimage-360 .cloudimage-360-top:before,.cloudimage-360 .cloudimage-360-bottom:before{content:"";display:block;width:30px;height:30px;background:50% 50% / cover no-repeat}.cloudimage-360 .cloudimage-360-top:before{background-image:url(https://cdn.scaleflex.it/plugins/js-cloudimage-360-view/assets/img/arrow-left.svg)}.cloudimage-360 .cloudimage-360-bottom:before{background-image:url(https://cdn.scaleflex.it/plugins/js-cloudimage-360-view/assets/img/arrow-right.svg)}.cloudimage-360 .cloudimage-360-top.not-active,.cloudimage-360 .cloudimage-360-bottom.not-active{opacity:.4;cursor:default}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cloudimage-360{width:100%;position:relative}.cloudimage-360-inner-box{width:100%;height:100%;position:relative}.cloudimage-360-icons-container{position:absolute;display:flex;top:15px;right:10px;height:100%;flex-direction:column;align-items:center;z-index:100;gap:8px}.cloudimage-360-transition-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fff;opacity:0;transition:all 1s ease-out;z-index:10}.cloudimage-360-button{width:30px;height:30px;cursor:pointer;transition:transform .15s ease-out,background-color .15s ease-out;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#f0f0f0;color:#4a4a4a;box-shadow:0 2px 4px #0000001a;padding:6px}.cloudimage-360-button:hover{transform:scale(1.05);background-color:#e7e6e6}.cloudimage-360-button svg{width:18px;height:18px;fill:#4a4a4a;transition:fill .15s ease-out}.cloudimage-360-button:hover svg{fill:#2c2c2c}.cloudimage-initial-icon{position:absolute;top:0;bottom:0;left:0;right:0;width:100px;height:100px;margin:auto;background:linear-gradient(135deg,#ffffff80,#c8c8c880);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;border:1px solid rgba(255,255,255,.5);box-shadow:0 8px 12px #0003,0 4px 6px #0000001a;transition:.2s all,transform .2s;color:#4b4b4b;text-align:center;z-index:2;line-height:100px;-webkit-user-select:none;user-select:none}.cloudimage-initial-icon:hover{background-color:#c8c8c833}.cloudimage-loading-spinner{width:30px;height:30px;transform:translate(-50%,-50%);border:3px solid #fff;position:absolute;top:15px;left:15px;border-bottom-color:#a3a3a3;border-radius:50%;display:inline-block;box-sizing:border-box;opacity:0;animation:rotation .7s linear infinite}.cloudimage-360-view-360-circle{position:absolute;left:0;bottom:0;width:100%;height:auto;margin:auto;pointer-events:none;-webkit-user-select:none;user-select:none;transition:.2s all;z-index:2}.cloudimage-360-fullscreen-modal{position:fixed;top:0;bottom:0;left:0;right:0;width:100%;height:100%;z-index:999;background-color:#fff}.cloudimage-360-img-magnifier-glass{background-color:#fff;background-image:radial-gradient(circle at center,#fffc,#f0f0f0e6);background-repeat:no-repeat;position:absolute;border:2px solid rgba(0,0,0,.3);border-radius:50%;line-height:200px;text-align:center;z-index:1000;width:250px;height:250px;top:-75px;right:-85px;box-shadow:0 8px 16px #0006,0 4px 8px #0003;transition:box-shadow .2s ease;overflow:hidden;pointer-events:none}.cloudimage-360-hotspot-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:20}.cloudimage-360-popper{opacity:1;transition:opacity .2s ease-in-out}.cloudimage-360-hotspot{display:inline-block;position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-50%,-50%);background:#0af;border:1px solid #fff;border-radius:50%;height:18px;width:18px;box-shadow:0 0 #0af9,0 2px 6px #0003;opacity:0;animation:pulse 2s infinite;transition:transform .2s ease,box-shadow .2s ease}.cloudimage-360-hotspot.visible{opacity:1}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #0af9,0 0 0 10px #0af6,0 0 0 20px #0af3}50%{transform:scale(1.1);box-shadow:0 0 0 10px #0af0,0 0 0 20px #00aaff1a,0 0 0 30px #0af0}to{transform:scale(1);box-shadow:0 0 #0af0,0 0 0 10px #0af0,0 0 0 20px #0af0}}.cloudimage-360-hotspot:hover{transform:scale(1.2);box-shadow:0 0 0 5px #00aaff80,0 4px 12px #0000004d}.cloudimage-360-popper{background-color:#ffffffe6;color:#333;padding:10px 15px;border-radius:6px;box-shadow:0 4px 16px #0003;font-size:14px;max-width:220px;z-index:9999;text-align:center;transition:opacity .2s ease,translate .2s ease;opacity:0;translate:0 -10px}.cloudimage-360-popper[data-show]{opacity:1;translate:0}
|