@micrio/client 7.1.2 → 7.1.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/micrio.core.min.js +2 -2
- package/micrio.min.js +3 -3
- package/package.json +1 -1
package/micrio.core.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Micrio Client 7.1.
|
|
1
|
+
/* Micrio Client 7.1.4
|
|
2
2
|
* Copyright (C) 2015 - present, Q42 Internet B.V. <https://q42.com>, Micrio <https://micr.io>
|
|
3
3
|
*
|
|
4
4
|
* GitHub: https://github.com/Q42/Micrio.Client
|
|
@@ -24,4 +24,4 @@
|
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
const _style=document.createElement('style');_style.className='micrio-interface';_style.textContent=`html{--micrio-color:#fff;--micrio-color-hover:#45a4e4;--micrio-border-radius:4px;--micrio-background:#292929bf;--micrio-background-filter:blur(8px);--micrio-popover-background:#292929bf;--micrio-scrubber-background:#ffffff40;--micrio-icon-size:18px;--micrio-text-align:left;--micrio-line-height:1.5em;--micrio-border-margin:16px;--micrio-button-size:48px;--micrio-button-shadow:0 4px 8px #00000054;--micrio-marker-size:16px;--micrio-marker-text-color:#fff;--micrio-marker-text-shadow:0px 2px 4px #0009;--micrio-marker-highlight:#00d4ee;--micrio-marker-color:#fff;--micrio-marker-border-radius:100%;--micrio-marker-border-color:#fff3;--micrio-marker-border-size:8px;--micrio-marker-icon:none;--micrio-marker-transition:background-color .25s ease,opacity .15s ease,border-width .15s ease,width .15s ease,height .15s ease;--micrio-popup-shadow:0 8px 16px #00000054;--micrio-popup-padding:16px;--micrio-progress-bar-background:#ffffff40;--micrio-progress-bar-height:4px;--micrio-waypoint-size:120px}micr-io[data-light-mode]{--micrio-color:#000;--micrio-color-hover:#196da6;--micrio-background:#ffffffa8;--micrio-progress-bar-background:#00000040;--micrio-popover-background:#d3d3d3bf;--micrio-scrubber-background:#ffffff80}@media (prefers-color-scheme:light){micr-io[data-auto-scheme]{--micrio-color:#000;--micrio-color-hover:#196da6;--micrio-background:#ffffffa8;--micrio-progress-bar-background:#00000040;--micrio-popover-background:#d3d3d3bf}}@media (width<=500px){html{--micrio-border-margin:5px;--micrio-button-size:48px}}micr-io{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;backface-visibility:hidden;width:100%;height:100%;min-height:200px;font-family:var(--micrio-font-family,inherit);font-size:var(--micrio-font-size,inherit);background-position:50%;background-repeat:no-repeat;background-size:contain;background-color:var(--micrio-background-color,transparent);display:block;position:relative;overflow:hidden;container-type:size}micr-io[dir=rtl]{--micrio-text-align:right}canvas.micrio{backface-visibility:hidden;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block;position:absolute;top:0;left:0;width:100%!important;height:100%!important}micr-io:not([static]){overscroll-behavior:none}micr-io[data-hooked]:not([data-panning])>canvas.micrio{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:-ms-grab;cursor:grab;-ms-content-zooming:none;-ms-touch-action:none;touch-action:none}micr-io[data-panning]{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-ms-grabbing;cursor:grabbing}micr-io[data-hooked][data-can-pan]>canvas.micrio{-ms-touch-action:pan-y;touch-action:pan-y;overscroll-behavior:initial}micrio-error{z-index:10;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}micrio-error>div{background:var(--micrio-background);color:var(--micrio-color);border:1px solid var(--micrio-color);border-radius:var(--micrio-border-radius);text-align:center;white-space:pre-wrap;-webkit-user-select:text;user-select:text;padding:10px;line-height:24px}micrio-error micrio-icon>svg{vertical-align:middle;width:24px;height:24px;fill:var(--micrio-color);margin-right:10px}@media (width<=520px){micrio-error>div{box-sizing:border-box;width:90%}}micrio-minimap{display:contents}micrio-minimap canvas{bottom:var(--micrio-border-margin);right:var(--micrio-border-margin);transform-origin:100% 100%;cursor:grab;-ms-content-zooming:none;-ms-touch-action:none;touch-action:none;border-radius:var(--micrio-border-radius);background-size:100%;transition:opacity .2s;display:block;position:absolute}micrio-main:has(>micrio-controls)>micrio-minimap>canvas{right:calc(2 * var(--micrio-border-margin) + var(--micrio-button-size))}micr-io:not([data-zoomed]) micrio-minimap canvas:not(.fixed),micrio-minimap.hidden canvas:not(:hover){opacity:0;pointer-events:none}@media (width<=800px){micrio-minimap canvas{pointer-events:none;transform:scale(.5)!important}}micrio-main.is3d{perspective:50cqh}`;document.head.insertBefore(_style,document.head.firstChild);
|
|
27
|
-
!function(){function t(i,s,h={}){if(!i||"object"!=typeof i)return s;const e=s;for(const r of Object.keys(i)){if("__proto__"===r||"constructor"===r||"prototype"===r)continue;const s=i[r];s&&"object"==typeof s&&Object.getPrototypeOf(s)===Object.prototype?(e[r]&&"object"==typeof e[r]||(e[r]={}),t(s,e[r],h)):h.noOverwrite&&r in e||(e[r]=s)}return s}var i,s="E001",h="E002",e="E003",r="E004",o="E005",n="E100",a="E101",c="E102",l="E103",u="E200",d="E201",f="E202",m="E203",p="E300",g="E301",M="E302",_="E303",w="E999",v={[s]:"You appear to be offline. Please check your internet connection and try again.",[h]:"The connection timed out. Please try again.",[e]:"Unable to load content due to security restrictions.",[r]:"The requested image or content could not be found.",[o]:"The server encountered an error. Please try again later.",[n]:"Your browser does not support WebGL, which is required to view this content.",[a]:"The graphics context was lost. The page will attempt to recover.",[c]:"There was a problem initializing the graphics. Please try refreshing the page.",[l]:"Your device is low on memory. Try closing other browser tabs or applications.",[u]:"The image data appears to be invalid or corrupted.",[d]:"The requested content could not be loaded.",[f]:"There was a problem processing the image information.",[m]:"This image uses an unsupported format version.",[p]:"Failed to load the image viewer engine. Please try refreshing the page.",[g]:"An error occurred in the image viewer. Please try refreshing the page.",[M]:"Failed to load the image. Please try again.",[_]:"Failed to load the tour. Some features may be unavailable.",[w]:"An unexpected error occurred. Please try refreshing the page."},y=class t extends Error{displayMessage;cause;code;statusCode;constructor(i,s){super(i),this.name="MicrioError",this.code=s?.code??w,this.displayMessage=s?.displayMessage??v[this.code],this.cause=s?.cause,this.statusCode=s?.statusCode,"captureStackTrace"in Error&&"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}static fromResponse(i,e){const n=i.status;let a=w;return 404===n?a=r:n>=500&&600>n?a=o:0===n?a=s:408!==n&&504!==n||(a=h),new t(`${e?e+": ":""}HTTP ${n}`,{code:a,statusCode:n})}static fromError(i,r){const o=i.message.toLowerCase();let a=w;return o.includes("network")||o.includes("internet")||o.includes("offline")?a=s:o.includes("timeout")?a=h:o.includes("cors")||o.includes("cross-origin")?a=e:o.includes("webgl")||o.includes("webglcontext")?a=n:o.includes("memory")||o.includes("out of memory")?a=l:(o.includes("wasm")||o.includes("webassembly"))&&(a=p),new t(`${r?r+": ":""}${i.message}`,{code:a,cause:i})}},b=new Map,k=new Map,x=async(t,i)=>{if(!i&&b.has(t))return structuredClone(b.get(t));if(k.has(t))return k.get(t);const s=fetch(t+(i?(t.includes("?")?"&":"?")+Math.random():"")).then(async i=>{if(200==i.status)return i.json();throw y.fromResponse(i,`fetchJson(${t})`)}).then(s=>(i||b.set(t,s),k.delete(t),structuredClone(s))).catch(i=>{throw k.delete(t),i});return k.set(t,s),s},T=t=>{let i=t.charCodeAt(0),s=91>i;return(i-=s?65:97)-(i>7?1:0)+(s?24:i>10?-1:0)},S=t=>6==t.length||7==t.length,E="7.1.2",C=`https://viewer.${(()=>{try{const t=location.hostname;if(t.endsWith("micrio.dev"))return"micrio.dev";if(t.endsWith("micrio.net"))return"micrio.net"}catch{}return"micr.io"})()}/`,I="micrio-muted",L={camspeed:1,view:[0,0,1,1],restrict:[0,0,1,1],focus:[.5,.5],zoomLimit:1,fullscreen:1,hookEvents:1,hookScroll:1,hookPinch:1,hookDrag:1,minimap:1,doTourJumps:1,audio:1,startVolume:1,mutedVolume:0,_markers:{showTitles:0,zoomOutAfterClose:1},ui:{controls:{cultureSwitch:1}},_360:{}},P={id:{r:1},lang:{r:1},"data-path":{r:1},"data-inittype":{f:"initType"},"data-start":{f:"gallery.startId"},"data-gallery-sort":{f:"gallery.sort"},"data-gallery-type":{f:"gallery.type"}},A={"data-static":{},muted:{f:"audio",n:1},"data-no-externals":{f:"noExternals"},"data-skipmeta":{f:"skipMeta"},"data-keeprendering":{f:"keepRendering"},"data-coverlimit":{f:"limitToCoverScale"},"data-events":{f:"hookEvents"},"data-keys":{f:"hookKeys"},"data-zooming":{f:"noZoom",n:1},"data-scroll-zoom":{f:"hookScroll"},"data-pinch-zoom":{f:"hookPinch"},"data-dragging":{f:"hookDrag"},"data-two-finger-pan":{f:"twoFingerPan"},"data-control-zoom":{f:"controlZoom"},"data-ui":{f:"noUI",n:1},"data-controls":{f:"noControls",n:1},"data-logo":{f:"noLogo",n:1},"data-logo-org":{f:"noOrgLogo",n:1},"data-toolbar":{f:"noToolbar",n:1},"data-show-info":{f:"showInfo"},"data-social":{},"data-fullscreen":{},"data-minimap":{},"data-minimap-hide":{f:"alwaysShowMinimap",n:1},"data-normalize-dpr":{f:"zoomLimitDPRFix"},"data-freemove":{f:"freeMove"}},O={"data-version":{r:1},height:{r:1},width:{r:1},volume:{f:"startVolume"},"data-camspeed":{},"data-zoomlimit":{f:"zoomLimit"},"data-minimap-height":{f:"minimapHeight"},"data-minimap-width":{f:"minimapWidth"},"data-mutedvolume":{f:"mutedVolume"},lazyload:{dN:0},"data-elasticity":{f:"dragElasticity"},"data-skip-base-levels":{f:"skipBaseLevels"},"data-watermark-opacity":{f:"watermarkOpacity"}},D={"data-focus":{},"data-view":{}},F=new Map,z=new Map,$=new Map,V=new Map,Y=new Map,X={async t(t){return(await this.i(t))?.data},o:t=>F.get(t),l:t=>(F.get(t.micrioId)?.data)?.markers?.find(i=>i.id===t.markerId),u:t=>z.get(t),m:()=>i,p:t=>$.get(t),M:t=>V.get(t),async i(t){if(t)return await(async t=>{if(!t||t.startsWith("http")||F.has(t))return;if(Y.has(t))return Y.get(t);const s=(async t=>{const s=await x(`${C}${t}/bundle.json?v=${E}`);if(s?.images){for(const t of s.images)t?.id&&(F.set(t.id,t),s.tours&&V.set(t.id,s.tours));t.startsWith("external/")&&s.images[0]?.id&&(F.set(t,s.images[0]),s.tours&&V.set(t,s.tours))}if(s?.organisation&&(i=s.organisation),s?.spaces)for(const i of s.spaces)i?.id&&i?.data&&z.set(i.id,i.data);s?.album?.id&&$.set(s.album.id,s.album)})(t);Y.set(t,s);try{await s}catch{}finally{Y.delete(t)}})(t),F.get(t)}};function R(t){const i=new Set;return{subscribe:(s,h)=>(i.add(s),s(t),()=>i.delete(s)),set(s){t=s,i.forEach(t=>t(s))},update(i){this.set(i(t))}}}function B(t){let i;return t.subscribe(t=>{i=t})(),i}function N(){return Promise.resolve()}var W=self,H=0,Z=0,j=new Set;function G(){H||(H=W.requestAnimationFrame(U))}function U(t){H=0,Z++;const i=[...j];j.clear();for(let h=0;h<i.length;h++)try{i[h](t)}catch(s){console.error("[Micrio] frame callback error",s)}j.size&&G()}var q={get id(){return Z},request(t){j.add(t),G()},cancel(t){j.delete(t),!j.size&&H&&(W.cancelAnimationFrame(H),H=0)},after:()=>new Promise(t=>q.request(()=>t())),afterPaint:()=>new Promise(t=>q.request(()=>q.request(()=>t()))),_(t){W!==t&&(H&&W.cancelAnimationFrame(H),W=t,H=0,j.size&&G())}},J=(t,i=1)=>(t%i+i)%i,K=t=>J(t),Q=t=>J(t,2*Math.PI),tt=t=>2**t,it=t=>({centerX:t[0]+t[2]/2,centerY:t[1]+t[3]/2,width:t[2],height:t[3]}),st=(t,i)=>1e-6>Math.abs(t-i);function ht(t,i){const s=K(t),h=K(i)-s,e=h>0?h-1:h+1;return Math.abs(h)>Math.abs(e)?e:h}var et,rt,ot=class{#t;#i;#s;#h;#e;#r;#o;constructor(t,i,s,h){this.#o=t===i&&s===h&&0===t&&1===s;const e=3*t,r=3*(s-t)-e;this.#t=e,this.#i=r,this.#s=1-e-r;const o=3*i,n=3*(h-i)-o;this.#h=o,this.#e=n,this.#r=1-o-n}#n(t){return t*(this.#t+t*(this.#i+t*this.#s))}#a(t){return t*(this.#h+t*(this.#e+t*this.#r))}#c(t){return this.#t+t*(2*this.#i+3*this.#s*t)}#l(t){let i=t,s=0,h=0,e=0;for(;5>s&&(h=this.#n(i)-t,e=this.#c(i),0!==e);)i-=h/e,s++;return i}get(t){return this.#o?t:this.#a(this.#l(t))}},nt=new ot(.42,0,.58,1),at=new ot(.42,0,1,1),ct=new ot(0,0,.58,1),lt=new ot(0,0,1,1),ut={ease:nt,"ease-in":at,"ease-out":ct,linear:lt},dt=t=>ut[t??"ease"]??nt,ft=class{rotationY=0;#u;v;k;T=[];S;C;I;L;#d;get image(){return this.#d}constructor(t){if(this.#d=t,!t.P){const i=t.state.$view;i&&t.$info?.width&&N().then(()=>this.setView(i))}}A(t){this.#u=t}getView=()=>{const t=this.#u?.view.arr;return t?[t[0]-t[2]/2,t[1]-t[3]/2,t[2],t[3]]:[0,0,1,1]};getViewRaw=()=>this.#u?.view.arr??new Float64Array(4);setView(t,i={}){if(!this.#u)return;let{centerX:s,centerY:h,width:e,height:r}=it(t);if(this.#d.opts.useParentCamera){const t=this.#d.opts.area;t&&(s=t[0]+s*t[2],h=t[1]+h*t[3],e*=t[2],r*=t[3])}this.#u.O(s,h,e,r,!!i.noLimit,0,i.correctNorth),i.noRender||this.#d.engine.render()}getCoo(t,i,s=0,h=0){return this.#f(t,i,s,h).slice(0).map(t=>Math.round(1e6*t)/1e6)}#f(t,i,s=0,h=0){const e=this.#u;if(!e)return new Float64Array(5);if(s){const s=this.#d.engine.micrio.getBoundingClientRect();t-=s.left,i-=s.top}return(e.is360?e.F.D(t,i):e.camera.D(t,i,!!s,!!h)).arr}getXY(t,i,s=0,h,e,r){return this.$(t,i,{abs:s,radius:h,rotation:e,noTrueNorth:r}).slice(0)}$(t,i,s={}){if(this.I)return this.I(t,i);const h=this.#u;if(!h)return new Float64Array(5);const e=this.#d.P&&!s.noTrueNorth?-this.rotationY/(2*Math.PI):0;return h.is360?h.F.V(t-e,i).arr:void 0===s.rotation||isNaN(s.rotation)?h.X.Y(t-e,i,!!s.abs).arr:h.X.R(t-e,i,s.radius??0,s.rotation,!!s.abs).arr}setCoo(t,i,s){this.#u&&(this.#u.camera.setCoo(t,i,s??this.getScale()),this.#d.engine.render())}getScale=()=>this.getCoo(0,0)[2]||1;getCoverScale=()=>this.#u?.camera.B??1;getMinScale=()=>this.#u?.camera.N??.1;setMinScale(t){this.#u?.W(t)}setMinScreenSize(t){!this.#d.album&&this.#u&&(this.#u.camera.H=Math.max(0,Math.min(1,t)))}isZoomedIn=()=>!!(this.C?this.C():this.#u?.Z());isZoomedOut=(t=0)=>!!(this.C?!this.C():this.#u?.j(t));getDirection=()=>this.#u?.F.G??0;getPitch=()=>this.#u?.F.U??0;setDirection(t,i){this.#u&&(this.#u.q(t,i??this.#u.F.U),this.#d.engine.render())}setLimit(t){if(!this.#u)return;const i=it(t);this.#u.view.J(i.centerX,i.centerY,i.width,i.height),this.#d.engine.render()}setCoverLimit(t){this.#u&&(this.#u.K=!!t,this.#u.tt())}getCoverLimit=()=>!!this.#u?.K;set360RangeLimit(t=0,i=0){this.#u&&(this.#u.F.it(t,i),this.#d.engine.render())}stop(){this.#u?.st()}pause(){this.#u?.ht()}resume(){this.#u?.et(),this.#d.engine.render()}getMatrix(t,i,s,h,e,r,o,n,a,c,l){return this.L?this.L(t,i,s||1,e,r,o,a,c,h):this.#u?.rt(t,i,s??1,h??10,e||0,r||0,o||0,n??0,a??1,c??1,!!l)??new Float32Array(16)}setArea(t,i={}){if(this.#u){if(this.#d.opts.area=t,this.#d.opts.isEmbed&&this.#d.ot){for(const i of this.#u.images)if(i.nt>0)return void i.ct(t[0],t[1],t[0]+t[2],t[1]+t[3])}else this.#u.ct(t[0],t[1],t[0]+t[2],t[1]+t[3],!!i.direct,!!i.noDispatch);i.noRender||this.#d.engine.render()}}setRotation(t=0,i=0,s=0){if(this.#d.opts.isEmbed&&this.#u&&this.#d.engine.ready){for(const h of this.#u.images)if(h.nt>0){h.lt=t,h.ut=i,h.dt=s;break}this.#d.engine.render()}}getOmniRotation(){const t=this.#d.$settings.omni;return t&&this.#u?(this.#d.omni?.currentIndex??0)/((t.frames??1)/(t.layers?.length??1))*Math.PI*2:0}ft(t){const i=this.#d.$settings.omni;if(i&&null!=t)return Math.floor(t/(2*Math.PI)*(i.frames/(i.layers?.length??1)))}getOmniXY(t,i,s){return this.#u?.X.gt(t,i,s).arr??new Float64Array(5)}Mt(){if(!this.#u)return;const t=this.#u.view.arr;this.#d.state.view.set([t[0]-t[2]/2,t[1]-t[3]/2,t[2],t[3]])}#m(t,i){this.v=t,this.k=i}flyToView(t,i={}){return new Promise((s,h)=>{if(!this.#u)return h(new Error("engine not ready"));let{centerX:e,centerY:r,width:o,height:n}=it(t);if(2==i.margin?.length&&(e+=i.margin[0],r+=i.margin[1],o-=2*i.margin[0],n-=2*i.margin[1]),this.#d.opts.useParentCamera){const t=this.#d.opts.area;t&&(e=t[0]+e*t[2],r=t[1]+r*t[3],o*=t[2],n*=t[3])}if(i.prevView){const t=it(i.prevView);this.#u.wt._t(t.centerX,t.centerY,t.width,t.height)}const a=this.#d.$settings.omni;if(a?.frames){const s=a.layers?.length??1,h=a.frames/s;if(null==i.omniIndex){const s=t[4]||(Array.isArray(t)&&void 0!==t[5]?t[5]:void 0);void 0!==s&&(i.omniIndex=Math.round(J(s/(2*Math.PI))*h))}null!=i.omniIndex&&(i.omniIndex=J(i.omniIndex,h))}const c=this.#u.camera.vt(e,r,o,n,i.duration??-1,i.speed??-1,i.progress??0,!!i.isJump,!!i.limit,!!i.limitZoom,i.omniIndex??0,dt(i.timingFunction));this.#d.engine.render(),0==c?s():this.#m(s,h)})}flyToFullView(t={}){return this.flyToCoo([.5,.5,this.getMinScale()],t)}flyToCoverView(t={}){const i=this.#d.$settings.focus??[.5,.5],s=[i[0],i[1]];return s[2]=this.getCoverScale(),this.flyToCoo(s,t)}flyToCoo(t,i={}){return new Promise((s,h)=>{if(!this.#u)return h(new Error("engine not ready"));const e=dt(i.timingFunction);i.duration=this.#u.camera.setCoo(t[0],t[1],t[2]??this.getScale(),i.duration??-1,i.speed??-1,i.limit??0,e),this.#d.engine.render(),0==i.duration?s():this.#m(s,h)})}zoom(t,i=0,s,h,e=1,r=0){return new Promise((e,o)=>{if(this.S)this.S(t);else if(this.#u){const o=this.#u.view.arr,n=this.getXY(o[0],o[1]);if(null==s&&(s=n[0]),null==h&&(h=n[1]),this.#d.album&&!this.#d.album.hooked)return e();i=this.#u.camera.yt(t,s,h,i,r),this.#d.engine.render()}0==i?e():this.#m(e,o)})}async zoomIn(t=1,i=250,s=1){return this.zoom(200*-t,i,void 0,void 0,s).catch(()=>{})}async zoomOut(t=1,i=250,s=1){const h=this.#d.engine.micrio.canvas.viewport,e=h.width/h.height,r=this.#d.$info.width/this.#d.$info.height;return this.zoom(t*(400/Math.max(1,e/r/2)),i,void 0,void 0,s).catch(()=>{})}pan(t,i,s=0,h={}){this.#u&&(this.#u.camera.bt(t,i,s,!!h.noLimit),(s>0||h.render)&&this.#d.engine.render())}setScale(t){const i=this.#u?.view.arr;i&&this.setCoo(i[0],i[1],t)}};function mt(t,i={}){const s=i.ns?document.createElementNS(i.ns,t):document.createElement(t);if(i.className&&(s instanceof SVGElement?s.setAttribute("class",i.className):s.className=i.className),void 0!==i.textContent&&(s.textContent=i.textContent),void 0!==i.innerHTML&&(s.innerHTML=i.innerHTML),i.id&&(s.id=i.id),i.dataset)for(const[h,e]of Object.entries(i.dataset))s.dataset[h]=e;if(i.attrs)for(const[h,e]of Object.entries(i.attrs))null==e?s.removeAttribute(h):s.setAttribute(h,e);if(i.style&&("string"==typeof i.style?s.style.cssText=i.style:Object.assign(s.style,i.style)),i.props&&Object.assign(s,i.props),i.events)for(const[h,e]of Object.entries(i.events))s.addEventListener(h,e);if(i.children)for(const h of i.children)null!=h&&0!=h&&("string"==typeof h||"number"==typeof h?s.append(String(h)):s.append(h));return i.setProps&&s.kt?.(i.setProps),i.parent&&i.parent.appendChild(s),s}(rt=et||(et={})).Main=class{tour=R();#p;get $tour(){return this.#p}marker=R();markerHoverId=R();#g;get $marker(){return this.#g}popup=R();popover=R();mediaState=new Map;constructor(){this.tour.subscribe(t=>{"string"!=typeof t&&(this.#p=t)}),this.marker.subscribe(t=>{"string"!=typeof t&&(this.#g=t)})}},rt.Image=class{view=R(void 0);#M;get $view(){return this.#M}marker=R(void 0);#g;get $marker(){return this.#g}layer=R(0);constructor(t){const i=t.engine.micrio;let s,h,e,r,o,n;this.view.subscribe(a=>{if(this.#M=a,!a)return;const c=a[0],l=a[1],u=a[2],d=a[3];if(s===c&&h===l&&e===u&&r===d)return;const f={image:t,view:a};if(s=c,h=l,e=u,r=d,void 0===o||void 0===n||Math.abs(u-o+(d-n))>1e-5){for(const t of i.xt)t(f);i.events.Tt("zoom",{image:t,view:a}),o=u,n=d}for(const t of i.St)t(f)}),this.marker.subscribe(t=>{const s=this.#g;this.#g=t&&"string"!=typeof t?t:void 0,this.#g?i.state.marker.set(this.#g):t||i.state.$marker!=s||i.state.marker.set(void 0)})}};var pt=new Set,gt=[],Mt=class t{id;uuid=(()=>Math.random().toString())();#_;get $info(){return this.#_}Et=R({});get $settings(){return B(this.Et)}data=R(void 0);get $data(){return B(this.data)}state;camera;video=R(void 0);visible=R(0);album;omni;grid;Ct;It;Lt;error;ot=0;Pt=-1;P=0;At=0;Ot=0;Dt=1;#w=0;thumbSrc;#v;Ft=0;zt;$t=1;Vt=R();Yt=[];Xt;get engine(){return this.#y}get canvas(){return this.#y.Rt(this)}#y;opts;constructor(t,i,s={}){if(this.#y=t,this.opts=s,this.state=new et.Image(this),s.useParentCamera||(this.camera=new ft(this)),this.id=i.id.replace(C,""),this.id.startsWith("external/")){const t=this.id.indexOf("/",this.id.indexOf("/")+1);-1!==t&&(this.id=this.id.substring(0,t+1)+encodeURIComponent(this.id.substring(t+1)))}const h=i.info;this.#_=h,this.Lt=h.path||"https://r2.micr.io/",s.area||(s.area=[0,0,1,1]);const e=i.settings,r=this.#y.micrio;if(!h.isIIIF&&7==this.id.length){const t=T(this.id[1+T(this.id)%6]);h.is360=!!(t>>4&1)||!!h.is360,h.isWebP=!(3&t),h.isPng=2==(3&t),t>>3&1&&S(h.tilesId??this.id)&&(h.format="dz"),h.path||(h.path=`https://${t>>2&1?"eu":"r2"}.micr.io/`)}const o=6==this.id.length&&this.id.startsWith("i")&&!this.id.includes("/"),n=o&&!h.tileBasePath?.includes("micr.io");this.Xt=n?h.tileBasePath??"https://b.micr.io/":o?"https://b.micr.io/":h.tileBasePath??h.path??"https://r2.micr.io/";const a=X.m();if(a?.baseUrl&&!h.path?.includes(a.baseUrl)?(this.Lt=h.path=a.baseUrl,o||(this.Xt=this.Lt)):("https://eu.micr.io/"==h.path||h.path)&&(this.Lt=h.path),e?.omni&&(this.Ot=1),a?.branding&&!e?.noUI){const t=`https://${0>(a.logo?.src?.indexOf("/eu.")??-1)?"r2":"eu"}.micr.io/`;this.#b(t+"style/"+a.slug+".css").then(()=>{const t=getComputedStyle(this.#y.micrio).getPropertyValue("--micrio-font-family")?.replace(/^'([^']+)'.*$/,"$1");t&&document.fonts.ready.then(()=>{document.fonts.check("16px "+t)||this.#b(`https://fonts.googleapis.com/css2?family=${t}:ital,wght@0,300;0,400;0,500;0,600;0,800;1,300;1,400;1,500;1,600;1,800&display=swap`)})})}if(h.isIIIF&&h.id.includes("/")&&(h.id=("@id"in h?h["@id"]:h.id).replace(/^.*\//,"")),h.spacesId&&!r.spaceData&&(r.spaceData=X.u(h.spacesId),1==r.spaceData?.images.length&&delete r.spaceData),r.bundleTours||(r.bundleTours=X.M(this.id)),h.is360&&this.camera){const t=r.spaceData?.images.find(t=>t.id==this.id)?.rotationY;null!=t?this.camera.rotationY=t:null!=e?._360?.trueNorth&&(this.camera.rotationY=(e._360.trueNorth-.5)*Math.PI*2)}this.Ft=this.Ft||this.Ot||!h.id&&!h.tilesId,this.#v=h.tileExtension||h.isPng&&"png"||h.isWebP&&"webp"||"jpg","dz"==h.format&&(h.isDeepZoom=1),this.P=!!h.is360,this.At=!!h.isVideo;let c=B(r.Bt);if(h.revision){const t=Object.keys(h.revision);t.length&&!t.includes(c)&&(r.lang=t.includes("en")?"en":t[0])}if(e&&!e.noExternals&&(e.css&&this.#b(e.css.href),e.js)){const t=e.js.href.replace("$lang",c);l=t,new Promise((t,i)=>{if(pt.has(l))return t();const s=document.createElement("script");s.onload=()=>{pt.add(l),t()},s.onerror=()=>i?.(),s.async=1,s.defer=1,self.crossOriginIsolated&&(s.crossOrigin="anonymous"),s.src=l,document.head.appendChild(s)});const i=document.head.querySelector('script[src="'+t+'"]');i&&(i.micrioElement=this.#y.micrio)}var l;for(let m=h.tileSize??1024;m<Math.max(h.width,h.height);m*=2,this.Dt++);let u=Math.max(h.width,h.height);do{this.#w++}while((u/=2)>1);e?.gallery?.archive&&(this.Dt-=1-(e.gallery.archiveLayerOffset??0)),this.Ft||(this.thumbSrc=this.Nt(this.Dt,0,0)),r.events.Tt("pre-info",h),this.Ft&&!this.Ot||e?.skipMeta||!i.data||this.data.set(i.data),e&&this.Et.set(e),h.watermark&&this.#y.micrio.Ht.Wt(h.watermark,e?.watermarkOpacity),this.Ot&&this.state.layer.subscribe(t=>{this.ot&&this.#y.ready&&(this.canvas?.Zt(t),this.#y.render())});const d=this.#y.micrio;let f=B(this.visible);this.visible.subscribe(t=>{t!=f&&(f=t,d.jt.update(i=>{if(t)i.push(this);else{const t=i.indexOf(this);0>t||i.splice(t,1)}return i}),t&&d.$current==this&&d.Gt.set(0))}),this.video.subscribe(t=>this.It=t)}Nt(t,i,s,h){const e=this.#_;if(e.isDeepZoom&&(t=this.#w-t),e.isIIIF){const h=e.tileSize??1024,r=Math.pow(2,t)*h,o=Math.min(e.width,i*r),n=Math.min(e.height,s*r),a=Math.min(e.width-o,r),c=Math.min(e.height-n,r),l=Math.round(Math.min(h,a/r*h)),u=Math.round(Math.min(h,c/r*h)),d=e.isWebP||e.preferredFormats?.includes("webp")?"webp":e.preferredFormats?.[0]??"jpg";return`${e.path}/${e.id}/${[o,n,a,c].join(",")}/${[l,u].join(",")}/0/default.${d}`}if(this.$settings?._360?.video?.src)throw new Error("Video thumb");return`${this.Xt}${e.tilesId||e.id}/${void 0!==h?h+"/":""}${t}/${i}${e.isDeepZoom?"_":"-"}${s}.${this.#v}`}#b(t){return new Promise(i=>{gt.includes(t)||document.head.querySelector('link[href="'+t+'"]')?i():(gt.push(t),mt("link",{attrs:{type:"text/css",rel:"stylesheet",href:t},events:{load:i},parent:document.head}))})}addEmbed(i,s,h,e={}){const r=h.slice(0),o=new t(this.#y,{id:i.id??"",info:{...i,id:i.id??""},data:X.o(i.id??"")?.data,settings:s},{area:r,isEmbed:1,useParentCamera:e.asImage});if(o.camera||(o.camera=this.camera),this.Yt.push(o),void 0===e.opacity&&(e.opacity=1),"cover"==e.fit||"contain"==e.fit){const t=o.$info,i=this.P?2:1,s="cover"==e.fit,h=r[2],n=r[3],a=r[0]+h/2,c=r[1]+n/2,l=h/n*i,u=t.width/t.height;if(s&&l>u||!s&&u>=l){const t=h/u*i;r[1]=c-t/2,r[3]=t}else{const t=n*u/i;r[0]=a-t/2,r[2]=t}}return this.#y.Ut(o,this,e),this.#y.render(),o}#k=new Map;qt(t,i){i?this.#k.set(t,i):this.#k.delete(t)}getEmbedMediaElement(t){return this.#k.get(t)}},_t={db:new Map,async Jt(t){throw new Error("Archive loading is not available in the core build")}},wt=navigator.userAgent,vt={iOS:/ipad|iphone|ipod/i.test(wt),firefox:/firefox/i.test(wt),OSX:/macintosh/i.test(wt)&&/os\ x/i.test(wt),hasTouch:"TouchEvent"in self,safari:0};vt.safari=(vt.OSX||vt.iOS)&&(/safari/i.test(wt)||/instagram/i.test(wt))&&!/chrome/i.test(wt),vt.OSX&&vt.safari&&"TouchEvent"in self&&(vt.iOS=1,vt.OSX=0);var yt=URL.createObjectURL(new Blob(["let controller = null;\nself.addEventListener('message', e => {\n\tif(e.data == 'abort') return controller && controller.abort();\n\tcontroller = new AbortController();\n\tfetch(e.data.src, { signal: controller.signal })\n\t\t.then(r => r.blob())\n\t\t.then(blob => self.createImageBitmap(blob))\n\t\t.then(data => self.postMessage({ data, src: e.data.src }, [data]))\n\t\t.catch(err => self.postMessage({ error: e.data.src + ': ' + err.message, type: err.name }))\n})"],{type:"text/javascript"})),bt=Math.max(2,Math.min(6,(navigator.hardwareConcurrency||2)-1)),kt=Array(bt).fill(0),xt=0,Tt=[],St=0,Et=[],Ct=new Map;function It(){if(!Et.length)return;const t=kt.indexOf(0);if(0>t)return;kt[t]=1,xt++;const i=Et.shift();Ct.set(t,i),Tt[t].postMessage({src:i[0],type:"image/"+i[0].split(".").pop()})}function Lt(t,i,s,h){const e=Ct.get(t);e&&(Ct.delete(t),s?(e[2](s),"AbortError"!==h&&console.error(`[Micrio Texture] Error loading ${e[0]}: ${h} - ${s}`)):i?e[1](i):(e[2](`Worker ${t} sent invalid message.`),console.error(`[Micrio Texture] Worker ${t} sent invalid message for ${e[0]}`)),setTimeout(()=>{kt[t]=0,xt--,It()},50))}function Pt(){return xt}function At(t){let i=-1;for(const[s,h]of Ct.entries())if(h[0]===t){i=s;break}0>i||Tt[i]?.postMessage("abort")}var Ot=class{x0;y0;x1;y1;layer;x;y;image;constructor(t=0,i=0,s=0,h=0,e=0,r=0,o=0){this.x0=t,this.y0=i,this.x1=s,this.y1=h,this.layer=e,this.x=r,this.y=o}},Dt=class{Kt;Qt;width;height;ti;ii;si;hi;#x=new Float64Array([.5,.5,1,1]);#T=0;ei=0;ri=0;#u;constructor(t,i=.5,s=.5,h=1,e=1,r=.5,o=.5,n=1,a=1){this.Kt=i,this.Qt=s,this.width=h,this.height=e,this.ti=r,this.ii=o,this.si=n,this.hi=a,this.#u=t}get arr(){return this.#T&&(this.#x[0]=this.Kt,this.#x[1]=this.Qt,this.#x[2]=this.width,this.#x[3]=this.height,this.#T=0),this.#x}get x0(){let t=this.Kt;return this.#u.is360&&(t=K(t)),this.#u.is360?K(t-this.width/2):t-this.width/2}get y0(){return this.Qt-this.height/2}get x1(){let t=this.Kt;return this.#u.is360&&(t=K(t)),this.#u.is360?K(t+this.width/2):t+this.width/2}get y1(){return this.Qt+this.height/2}get lX0(){return this.ti-this.si/2}get lY0(){return this.ii-this.hi/2}get lX1(){return this.ti+this.si/2}get lY1(){return this.ii+this.hi/2}get aspect(){return this.width/this.height}set(t,i,s,h,e=0){if(e){const t=Math.min(1,this.width)/Math.min(1,this.height);s/h>1.5*t&&s<this.width&&(h=s/t)}this.Kt=t,this.Qt=i,this.width=s,this.height=h,this.#T=1,this.ei=1}ct(t,i,s,h){this.Kt=(t+s)/2,this.Qt=(i+h)/2,this.width=s-t,this.height=h-i,this.#T=1}J(t,i,s,h){this.ti=t,this.ii=i,this.si=s,this.hi=h,this.ei=1,this.ri=1}oi(t,i=0){this.Kt=t.Kt,this.Qt=t.Qt,this.width=t.width,this.height=t.height,i||(this.ti=t.ti,this.ii=t.ii,this.si=t.si,this.hi=t.hi),this.ei=1,this.#T=1}#S(){const t=this.#u;return 1/Math.max(this.width*t.width/t.el.width,this.height*t.height/t.el.height)}ni(t,i=0,s=0){const h=this.#u,e=h.X.H,r=this.#S();if(1>e&&r<h.X.N&&!i){const t=1/e,i=Math.min(t,this.width),s=Math.min(t,this.height);return this.Kt=.5,this.Qt=.5,this.width=i,this.height=s,void(this.#T=1)}const o=t?Math.max(1,r/h.X.ai):1,n=this.si,a=this.hi,c=Math.min(n,this.width*o),l=Math.min(a,this.height*o);if(t&&(o>1||i&&r<h.X.N)&&(this.width=c,this.height=l),(1>n||1>a)&&(this.width=Math.min(this.width,n),this.height=Math.min(this.height,a)),i)return void(this.#T=1);const u=Math.min(1,this.width)/2,d=this.si/2;this.#u.is360?this.Kt=K(this.Kt):s||(this.Kt=Math.max(this.ti-d+u,Math.min(this.Kt,this.ti+d-u)));const f=Math.min(1,this.height)/2,m=this.hi/2;s||(this.Qt=Math.max(this.ii-m+f,Math.min(this.Qt,this.ii+m-f))),this.#T=1}ci(){const t=this.#u;if(t.is360)return;const i=t.X.cpw/t.X.cph;this.width/this.height>i?this.height=this.width/i:this.width=this.height*i,this.#T=1}},Ft=class{x;y;scale;w;direction;arr=new Float64Array(5);constructor(t=.5,i=.5,s=1,h=0,e=0){this.x=t,this.y=i,this.scale=s,this.w=h,this.direction=e}li(t){return-1>this.w||3>this.w&&!(0>this.x||this.x>t.width||0>this.y||this.y>t.height)}di(){return this.arr[0]=this.x,this.arr[1]=this.y,this.arr[2]=this.scale,this.arr[3]=this.w,this.arr[4]=this.direction,this.arr}},zt=class{width;height;left;top;fi;mi;ratio;scale;pi;arr=new Int32Array(4);constructor(t=0,i=0,s=0,h=0,e=0,r=0,o=1,n=1,a=0){this.width=t,this.height=i,this.left=s,this.top=h,this.fi=e,this.mi=r,this.ratio=o,this.scale=n,this.pi=a}get gi(){return 0===this.width||0===this.height?1:this.width/this.height}set(t,i,s,h,e,r,o){return this.width===t*e&&this.height===i*e&&this.left===s&&this.top===h&&this.ratio===e&&this.scale===r&&this.pi===o?0:(this.width=t*e,this.height=i*e,this.left=s*e,this.top=h*e,this.ratio=e,this.scale=r,this.pi=o,1)}oi(t){this.width=t.width,this.height=t.height,this.left=t.left,this.top=t.top,this.ratio=t.ratio,this.scale=t.scale,this.pi=t.pi}},$t=class{#E=0;#C=0;#I=0;#L=0;#P=0;#A=0;#O=0;#D=0;started=0;#u;constructor(t){this.#u=t}addStep(t,i){const s=this.#u.main.now;if(this.#P)return;0===this.#I&&(this.#I=s);const h=s-this.#L,e=this.#L>0&&h>0?16.67/h:1;Math.sqrt(t*t+i*i)*e>20&&(this.#A=s);const r=this.#u.main.Mi;this.#E+=t*r,this.#C+=i*r,this.#L=s}start(){this.#u.camera._i()||(this.started=1)}stop(){this.started=0,this.#P=0,this.#I=0,this.#L=0,this.#A=0,this.#E=0,this.#C=0,this.#O=0,this.#D=0}step(){const t=this.#u.main.now,i=this.#u.F,s=this.#u.camera;if(!this.started||0===this.#I)return 1;if(0===this.#P){this.#P=t;const i=1-Math.min(1,(this.#P-this.#A)/250),s=this.#P-this.#I,h=s>0?4/s:0;this.#O=this.#E*h*i,this.#D=this.#C*h*i}else this.#O*=.94,this.#D*=.94;let h=Math.sqrt(this.#O*this.#O+this.#D*this.#D);return this.#u.is360?i.wi(this.#O,this.#D):s.bt(this.#O,this.#D,0,0,0,1),h>.01||(h=0,this.stop()),1-h}},Vt=class{#F=0;#z;#$;yi;#V=0;#Y=0;#X=0;#R=0;#B=0;#N=nt;#W=0;#H=0;#Z=0;ni=1;bi=0;ki=0;#j=0;#G=0;#U=0;#q=0;#J=0;#K=0;#Q=0;#tt=-1;#it=0;#u;constructor(t){this.#u=t,this.#z=new Dt(t),this.#$=new Dt(t),this.yi=new Dt(t)}pause(){this.#j>0||(this.#Z=0,this.#j=performance.now())}resume(){0!==this.#j&&0!==this.#W&&(this.#W+=performance.now()-this.#j,this.#j=0,this.#Z=1)}stop(){this.#Z&&this.#u.k(),this.#W=0,this.ni=1,this.bi=0,this.#Z=0,this.#F=0,this.#V=0,this.ki=0,this.#j=0}xi(){return this.#Z&&this.#F}Ti(t,i,s,h,e,r,o={}){const{speed:n=0,perc:a=0,isJump:c=0,limitViewport:l=0,omniIdx:u=-1,correct:d=0}=o;if(d&&this.ki)return this.Si(t,i,s,h,1),e;this.yi.set(t,i,s,h),this.#$.set(t,i,s,h);const f=this.#u,m=f.view,p=this.#$,g=this.#z;this.#Y=c,this.#N=r;const M=f.main.el;if(0!==M.mi){const t=h/(1-M.mi/M.height);t>0?h+=t:h-=t,M.mi=0}if(0!==M.fi){const t=s*(M.fi/M.width);t>0?s+=t:s-=t,M.fi=0}const _=m.Kt,w=m.Qt,v=m.width,y=m.height;g.set(_,w,v,y),f.is360&&(t=_+ht(_,t),p.set(t,i,s,h)),l&&(p.ci(),p.ni(0)),this.#G=0,this.#q=0,this.#U=0,this.#J=0;let b=1;if(this.#Y){if(!f.is360){const t=p.Kt,i=p.Qt;if(p.aspect>g.aspect){const s=p.width/g.aspect;p.set(t,i,p.width,s)}else{const s=p.height*g.aspect;p.set(t,i,s,p.height)}}const e=g.x0,r=g.x1,o=g.y0,n=g.y1,a=p.x0,c=p.x1,l=p.y0,u=p.y1,d=e>a,m=o>l,M=c>r,_=u>n;!(d||m||M||_)||d&&m&&M&&_?p.set(t,i,s,h):(this.#G=d?1:a>e?2:0,this.#q=M?1:r>c?2:0,this.#U=m?1:l>o?2:0,this.#J=_?1:n>u?2:0,b=1.5)}d&&p.ni(1,!l);const k=Math.max(1e4,Math.min(15e3,f.Ei/2));let x=Math.abs(_-t);f.is360&&(x=Math.min(x,1-x));const T=v>s&&y>h?.125:.25,S=(x+Math.abs(w-i)+Math.abs(v-s)*T+Math.abs(y-h)*T)/3;this.#K=Math.max(.5,.8-S*(f.is360?1:2)),this.#Q=Math.max(.05,Math.min(.9,S-(f.is360?.2:.1))),this.#H=0>e?S*k/f.Ci*b/(n>0?n:1):e;const E=f.images.length/f.Ii;return this.#tt=f.Li,this.#it=0,!isNaN(u)&&u>0&&u!==this.#tt&&(this.#it=u-this.#tt,this.#it<-E/2&&(this.#it+=E),this.#it>E/2&&(this.#it-=E),this.#H+=Math.abs(this.#it)/this.#u.images.length*6e3),this.stop(),0===this.#H?(f.O(p.Kt,p.Qt,p.width,p.height,0,1),this.#u.v(),this.#H):(this.#F=1,this.ni=0,this.bi=1,this.#V=0,d&&(this.ki=1),this.#W=performance.now()-a*this.#H,this.#Z=1,this.#H*(1-a))}Si(t,i,s,h,e=0){this.#$.set(t,i,s,h),e&&this.#$.ni(1)}zoom(t,i,s,h){this.stop(),this.#F=0,this.bi=0,this.#V=1,this.#B=h;const e=this.#u,r=e.F;return this.#X=r.Pi,this.#R=this.#X+t/(r.Ai*e.Ei/20),h||(this.#R=Math.min(r.Oi,Math.max(r.Di,this.#R))),this.#W=performance.now(),this.#Z=1,this.#H=0>i?1e3*Math.abs(this.#X-this.#R)/s:i,i}_t(t,i,s,h,e=0){this.#z.set(t,i,s,h,e),this.#$.set(t,i,s,h,e)}Fi(){const t=0===this.#W?1:Math.min(1,Math.max(0,(this.#u.main.now-this.#W)/this.#H)),i=this.#N.get(t);if(this.#Z){if(this.#F){const s=this.#z,h=this.#$,e=this.#Q,r=this.#N.get(Math.min(1,t/this.#K)),o=this.#N.get(Math.max(0,(t-e)/(1-e)));let n=0,a=s.Kt+(h.Kt-s.Kt)*((n=this.#G||this.#q)?1===n?r:o:i),c=s.Qt+(h.Qt-s.Qt)*((n=this.#U||this.#J)?1===n?r:o:i);const l=s.width+(h.width-s.width)*i,u=s.height+(h.height-s.height)*i;if(this.#u.is360){const t=ht(s.Kt,h.Kt);a=s.Kt+t*i}if(this.#u.O(a,c,l,u,0,1),this.#it){let i=this.#tt+Math.trunc(this.#it*this.#N.get(Math.min(1,1.5*t)));const s=this.#u.images.length/this.#u.Ii;0>i&&(i+=s),s>i||(i-=s),this.#u.zi(i,0)}}this.#V&&this.#u.F.$i(this.#X*(1-i)+this.#R*i,this.#B),1>t||(this.yi.oi(this.#u.view),this.#u.v(),this.stop())}return t}},Yt=class{arr;constructor(t=1,i=0,s=0,h=0,e=0,r=1,o=0,n=0,a=0,c=0,l=1,u=0,d=0,f=0,m=0,p=1){this.arr=new Float32Array([t,i,s,h,e,r,o,n,a,c,l,u,d,f,m,p])}Vi(){const t=this.arr;t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1}oi(t){this.arr.set(t.arr)}Yi(t){const i=this.arr,s=Math.sin(t),h=Math.cos(t),e=i[4],r=i[5],o=i[6],n=i[7],a=i[8],c=i[9],l=i[10],u=i[11];i[4]=e*h+a*s,i[5]=r*h+c*s,i[6]=o*h+l*s,i[7]=n*h+u*s,i[8]=a*h-e*s,i[9]=c*h-r*s,i[10]=l*h-o*s,i[11]=u*h-n*s}Xi(t){const i=this.arr,s=Math.sin(t),h=Math.cos(t),e=i[0],r=i[1],o=i[2],n=i[3],a=i[8],c=i[9],l=i[10],u=i[11];i[0]=e*h-a*s,i[1]=r*h-c*s,i[2]=o*h-l*s,i[3]=n*h-u*s,i[8]=e*s+a*h,i[9]=r*s+c*h,i[10]=o*s+l*h,i[11]=n*s+u*h}Ri(t){const i=this.arr,s=Math.sin(t),h=Math.cos(t),e=i[0],r=i[1],o=i[2],n=i[3],a=i[4],c=i[5],l=i[6],u=i[7];i[0]=e*h+a*s,i[1]=r*h+c*s,i[2]=o*h+l*s,i[3]=n*h+u*s,i[4]=a*h-e*s,i[5]=c*h-r*s,i[6]=l*h-o*s,i[7]=u*h-n*s}Bi(t){const i=this.arr;i[0]*=t,i[1]*=t,i[2]*=t,i[3]*=t,i[4]*=t,i[5]*=t,i[6]*=t,i[7]*=t}Ni(t,i,s){const h=this.arr;h[12]+=h[0]*t+h[4]*i+h[8]*s,h[13]+=h[1]*t+h[5]*i+h[9]*s,h[14]+=h[2]*t+h[6]*i+h[10]*s,h[15]+=h[3]*t+h[7]*i+h[11]*s}Pi(t,i,s,h){this.Vi();const e=this.arr,r=1/Math.tan(t/2),o=1/(s-h);e[0]=r/i,e[5]=r,e[10]=(h+s)*o,e[11]=-1,e[14]=2*h*s*o,e[15]=0}Wi(t){this.Vi();const i=this.arr,s=1/Math.tan(t/2);i[0]=s,i[5]=s}Hi(){const t=this.arr,i=t[0],s=t[1],h=t[2],e=t[3],r=t[4],o=t[5],n=t[6],a=t[7],c=t[8],l=t[9],u=t[10],d=t[11],f=t[12],m=t[13],p=t[14],g=t[15],M=i*o-s*r,_=i*n-h*r,w=i*a-e*r,v=s*n-h*o,y=s*a-e*o,b=h*a-e*n,k=c*m-l*f,x=c*p-u*f,T=c*g-d*f,S=l*p-u*m,E=l*g-d*m,C=u*g-d*p;let I=M*C-_*E+w*S+v*T-y*x+b*k;I&&(I=1/I,t[0]=(o*C-n*E+a*S)*I,t[1]=(h*E-s*C-e*S)*I,t[2]=(m*b-p*y+g*v)*I,t[3]=(u*y-l*b-d*v)*I,t[4]=(n*T-r*C-a*x)*I,t[5]=(i*C-h*T+e*x)*I,t[6]=(p*w-f*b-g*_)*I,t[7]=(c*b-u*w+d*_)*I,t[8]=(r*E-o*T+a*k)*I,t[9]=(s*T-i*E-e*k)*I,t[10]=(f*y-m*w+g*M)*I,t[11]=(l*w-c*y-d*M)*I,t[12]=(o*x-r*S-n*k)*I,t[13]=(i*S-s*x+h*k)*I,t[14]=(m*_-f*v-p*M)*I,t[15]=(c*v-l*_+u*M)*I)}Zi(t){const i=this.arr,s=t.arr;let h=i[0],e=i[1],r=i[2],o=i[3];i[0]=h*s[0]+e*s[4]+r*s[8]+o*s[12],i[1]=h*s[1]+e*s[5]+r*s[9]+o*s[13],i[2]=h*s[2]+e*s[6]+r*s[10]+o*s[14],i[3]=h*s[3]+e*s[7]+r*s[11]+o*s[15],h=i[4],e=i[5],r=i[6],o=i[7],i[4]=h*s[0]+e*s[4]+r*s[8]+o*s[12],i[5]=h*s[1]+e*s[5]+r*s[9]+o*s[13],i[6]=h*s[2]+e*s[6]+r*s[10]+o*s[14],i[7]=h*s[3]+e*s[7]+r*s[11]+o*s[15],h=i[8],e=i[9],r=i[10],o=i[11],i[8]=h*s[0]+e*s[4]+r*s[8]+o*s[12],i[9]=h*s[1]+e*s[5]+r*s[9]+o*s[13],i[10]=h*s[2]+e*s[6]+r*s[10]+o*s[14],i[11]=h*s[3]+e*s[7]+r*s[11]+o*s[15],h=i[12],e=i[13],r=i[14],o=i[15],i[12]=h*s[0]+e*s[4]+r*s[8]+o*s[12],i[13]=h*s[1]+e*s[5]+r*s[9]+o*s[13],i[14]=h*s[2]+e*s[6]+r*s[10]+o*s[14],i[15]=h*s[3]+e*s[7]+r*s[11]+o*s[15]}Ai(t,i,s=1){const h=this.arr;h[0]*=t,h[1]*=t,h[2]*=t,h[3]*=t,h[4]*=i,h[5]*=i,h[6]*=i,h[7]*=i,h[8]*=s,h[9]*=s,h[10]*=s,h[11]*=s}ji(t,i,s,h,e,r,o,n,a){const c=this.arr;let l=h-t,u=e-i,d=r-s;const f=Math.sqrt(l*l+u*u+d*d)||1;l/=f,u/=f,d/=f;let m=u*a-d*n,p=d*o-l*a,g=l*n-u*o;const M=Math.sqrt(m*m+p*p+g*g)||1;m/=M,p/=M,g/=M;const _=p*d-g*u,w=g*l-m*d,v=m*u-p*l;c[0]=m,c[1]=_,c[2]=-l,c[3]=0,c[4]=p,c[5]=w,c[6]=-u,c[7]=0,c[8]=g,c[9]=v,c[10]=-d,c[11]=0,c[12]=-(m*t+p*i+g*s),c[13]=-(_*t+w*i+v*s),c[14]=l*t+u*i+d*s,c[15]=1}},Xt=class{x;y;z;w;constructor(t=0,i=0,s=0,h=1){this.x=t,this.y=i,this.z=s,this.w=h}oi(t){this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w}Gi(t){const i=t.arr,s=this.x,h=this.y,e=this.z,r=i[3]*s+i[7]*h+i[11]*e+i[15]||1;this.x=(i[0]*s+i[4]*h+i[8]*e+i[12])/r,this.y=(i[1]*s+i[5]*h+i[9]*e+i[13])/r,this.z=(i[2]*s+i[6]*h+i[10]*e+i[14])/r,this.w=r}Ui(){let t=this.x*this.x+this.y*this.y+this.z*this.z;t>0&&(t=1/Math.sqrt(t)),this.x*=t,this.y*=t,this.z*=t}},Rt=class{canvas;#st=-1;#ht=-1;#et=-1;constructor(t){this.canvas=t}qi(t,i,s,h){const e=this.canvas,r=e.main.el,o=(Math.min(t,s)-r.left)/r.scale,n=(Math.min(i,h)-r.top)/r.scale,a=(Math.max(t,s)-r.left)/r.scale,c=(Math.max(i,h)-r.top)/r.scale,l=o+(a-o)/2,u=n+(c-n)/2,d=Math.max(a-o,c-n),f=this.#st-d;if(e.Ji.stop(),this.#ht>0){const t=this.#ht-l,i=this.#et-u;this.Ki(f,t,i,l,u,r,e)}else e.wt.stop();this.#ht=l,this.#et=u,this.#st=d}Qi(){}ts(){this.#rt()}#rt(){this.#st=-1,this.#ht=-1,this.#et=-1}vt(t,i,s,h,e,r,o,n,a,c,l,u){const d=this.canvas,f=d.wt;d.Ji.stop();const m=this.ss(t);return f.ni=0,e=f.Ti(m,i,s,h,e,u,{speed:r,perc:o,isJump:n,limitViewport:a,omniIdx:l,correct:c}),f.ni=0,f.bi=1,e}ss(t){return t}setCoo(t,i,s,h=0,e=0,r=0,o=nt){if(this.hs(t,i,s))return 0;const n=this.canvas;0===s&&(s=n.es()),s=this.rs(s),n.Ji.stop();const{w:a,h:c}=this.cs(s);return this.ls(t,i,a,c,h),h=n.wt.Ti(t,i,a,c,h,o,{speed:e}),n.wt.ni=0===h||r,n.wt.bi=h>0,h}hs(t,i,s){return 0}rs(t){return t}ls(t,i,s,h,e){}},Bt=class extends Rt{Ai=1;N=1;H=1;ai=1;#ot=1;B=1;#nt=new Ft;#at=new Ft;#ct=new Ft;#lt=0;#ut=0;#dt=0;#ft=new Yt;cpw=-1;cph=-1;#mt=1;constructor(t){super(t)}D(t,i,s,h){const e=this.canvas;(e.Ft||e.us)&&(h=1);const r=e.el,o=e.ds?e.parent.el.ratio:r.ratio,n=e.view,a=this.#at;s&&(t-=r.left,i-=r.top);const c=t/this.Ai*o/e.width+n.x0,l=i/this.Ai*o/e.height+n.y0;return a.x=h?c:Math.max(n.lX0,Math.min(n.lX1,c)),a.y=h?l:Math.max(n.lY0,Math.min(n.lY1,l)),a.scale=this.Ai,a.di(),this.#at}Y(t,i,s){const h=this.canvas,e=h.el,r=h.ds?h.parent.el.ratio:e.ratio,o=this.#nt;return o.x=(t-h.view.x0)*h.width*this.Ai/r+(s?e.left:0),o.y=(i-h.view.y0)*h.height*this.Ai/r+(s?e.top:0),o.scale=this.Ai/r,o.di(),o}R(t,i,s,h,e){return this.gt(t-.5,i-.5,s,h,e)}gt(t,i,s,h=0,e=0){const r=this.canvas,o=r.el,n=this.#ft,a=r.F.fs,c=r.ds?r.parent.el.ratio:o.ratio;a.x=t,a.y=i,a.z=s,a.w=1,n.Vi(),!e&&r.ps&&n.Pi(r.ps,r.aspect,1e-4,100),r.gs&&n.Ni(0,0,r.gs),r.Ms&&n.Ni(r.Ms,0,0),!e&&r._s&&n.Yi(r._s);const l=r.images.length/r.Ii,u=r.layer*l,d=r.images.length>0?-(r.Li+1-u)/l*2*Math.PI:0;n.Xi(h+d),a.Gi(n);const f=this.#nt;return f.x=(.5+a.x-r.view.x0)*r.width*this.Ai/c+(e?o.left:0),f.y=(.5+a.y-r.view.y0)*r.height*this.Ai/c+(e?o.top:0),f.w=-a.w-r.gs,f.di(),f}ws(){const t=this.canvas,i=t.el,s=i.width/t.width,h=i.height/t.height;if(!t.view.ri&&this.cpw===s&&this.cph===h)return void(t.K!==this.#mt&&this.tt());this.cpw=s,this.cph=h,this.#ot=Math.min(s,h),this.B=Math.max(s,h);const e=t.view.si/t.view.hi;if(t.view.ri=0,1>t.view.si||1>t.view.hi){const i=s/h;this.B/=i>e?t.view.si/i:t.view.hi*i}if(this.tt(),i.width&&i.height&&!this.canvas.wt.xi()&&(t.view.oi(t.wt.yi,1),!t.is360)){const i=t.wt.ni;t.wt.ni=0,this.vs(),t.wt.ni=i}}tt(t=0){const i=this.canvas;if(this.N=i.K?this.B:this.#ot,!t&&!i.main.ys&&(0===i.Li&&!i.K||i.Li>0&&!i.K)){const t=i.focus.width*i.width,s=i.focus.height*i.height,h=i.el.width,e=i.el.height;this.N=h/e>t/s?e/s:h/t}this.ai=this.N>1&&i.maxScale<this.N?this.N:Math.max(this.N,i.maxScale*i.bs/i.el.scale),this.#mt=i.K}_i(){return 1>this.H&&this.Ai<this.N}j(t=0){return st(this.Ai,this.N*(t?this.H:1))||this.Ai<=this.N*(t?this.H:1)}Z(){return st(this.Ai,this.ai)||this.Ai>=this.ai}vs(){if(-1===this.cpw)return 0;const t=this.canvas,i=this.canvas.view,s=!t.us&&t.wt.ni;!t.wt.ki&&(s||!t.wt.bi&&t.K)&&i.ni(0);const h=i.width,e=i.height,r=this.cpw,o=this.cph;this.Ai=Math.min(r/h,o/e),s&&!this.#lt&&this.Ai>=this.ai&&t.wt.bi&&(this.Ai=this.ai),(!t.wt.ki&&!this.#lt||t.K)&&(this.Ai=Math.max(this.N*this.H,this.Ai)),!this.#ut&&t.ks&&(this.Ai=this.B);const n=r/this.Ai-h,a=o/this.Ai-e;return i.set(i.Kt,i.Qt,i.width+n,i.height+a),!this.#ut&&t.ks&&this.canvas.wt.yi.oi(i),!t.wt.ki&&t.K&&i.ni(0),this.#ut=this.cpw>0,this.#dt?(this.#dt=0,this.setCoo(this.#ct.x,this.#ct.y,this.#ct.scale),0):1}xs(){const t=this.canvas.view;return!this.canvas.us&&((!st(t.x0,t.lX0)&&t.x0<t.lX0)!=(!st(t.x1,t.lX1)&&t.x1>t.lX1)||(!st(t.y0,t.lY0)&&t.y0<t.lY0)!=(!st(t.y1,t.lY1)&&t.y1>t.lY1)||!st(this.Ai,this.ai)&&this.Ai>this.ai)}bt(t,i,s=0,h=0,e=0,r=0){const o=this.canvas;if((this._i()||this.#lt)&&!e)return;this.canvas.us&&(h=1);const n=o.ds?o.parent.el.ratio:o.el.ratio,a=o.view,c=t/o.width/this.Ai*n,l=i/o.height/this.Ai*n,u=a.Kt+c,d=a.Qt+l,f=a.width,m=a.height;this.#lt?(o.view.set(u,d,f,m),o.O(u,d,f,m,h,0,0,0)):e||!this.xs()||r?(o.wt.stop(),0===s?(r||o.Ji.addStep(4*t,4*i),o.view.set(u,d,f,m),h||o.view.ni(0,0,o.us),o.O(u,d,f,m,h,0,0,r),o.view.ei=1):o.wt.Ti(u,d,f,m,s,nt)):o.wt.xi()?o.wt.Si(u,d,a.width,a.height,1):o.wt.Ti(u,d,f,m,150,nt,{limitViewport:!h&&!this.#lt,correct:!h})}yt(t,i,s,h=0,e){const r=this.canvas;if(r.Ji.stop(),!this.#lt&&this.Z()&&0>t)return 0;if(this.canvas.us&&(e=1),t>0&&this.j()&&this.H>=1&&(!this.#lt||r.K))return 0;const o=r.el,n=r.view,a=this.cpw/this.cph;let c=t*(o.width/512)/r.width/this.Ai,l=c/a;0>t&&-1>c&&(c=-.9999),0>t&&-1>l&&(l=-.9999);const u=!e&&!r.us&&r.wt.ni&&0===h,d=r.ds?r.parent.el.ratio:o.ratio;i-=o.left,s-=o.top;const f=this._i(),m=i>0&&!f?i/o.width*d:.5,p=s>0&&!f?s/o.height*d:.5,g=n.Kt+c*(.5-m),M=n.Qt+l*(.5-p),_=n.width+c,w=n.height+l;return r.wt.ni=u,h=r.wt.Ti(g,M,_,w,h,nt,{limitViewport:!e&&!this.#lt,correct:u}),r.wt.yi.oi(r.view),r.wt.ni=!e,h}Ki(t,i,s,h,e,r,o){!this.canvas.main.Ts&&this.Ai>this.N&&this.bt(i,s,0,0,1),this.yt(2*t*r.scale,h,e,0,!this.canvas.Ss),o.wt.ni=!!this.canvas.Ss}Qi(){this.#lt=1}ts(){this.#pt(),this.#lt=0,super.ts()}#pt(){if(this.canvas.us)return;const t=this.canvas.view,i=this.Ai>this.ai,s=i?this.cpw/this.ai:t.width,h=i?this.cph/this.ai:t.height,e=s/2,r=h/2,o=t.si/2,n=t.hi/2,a=o>e?Math.max(t.lX0+e,Math.min(t.Kt,t.lX1-e)):t.ti,c=n>r?Math.max(t.lY0+r,Math.min(t.Qt,t.lY1-r)):t.ii;this.canvas.wt.Ti(a,c,s,h,150,nt,{correct:1})}hs(t,i,s){if(!this.#ut){this.#dt=1;const h=this.#ct;return h.x=t,h.y=i,h.scale=s,this.vs(),1}return 0}rs(t){return Math.max(this.N,t)}cs(t){return{w:1/t*this.cpw,h:1/t*this.cph}}ls(t,i,s,h,e){0===e&&(t+s/2>1&&(t=1-s/2),0>t-s/2&&(t=s/2),i+h/2>1&&(i=1-h/2),0>i-h/2&&(i=h/2))}G=0;U=0;Es(){const t=this.canvas,i=t.view,s=t.F,h=s.Cs;h.Pi(s.Pi,t.el.gi,1e-4,100),h.Ni(-(i.Kt-.5)*t.aspect,i.Qt-.5,-i.height/2)}},Nt=class{Is;Ls;#d;Ps;As;Os;#gt;Ds;Fs;constructor(t,i,s,h,e,r,o){this.#d=t,this.Ps=i,this.As=s,this.Os=h,this.#gt=e,this.Ds=r,this.Fs=o,this.Is=e/t.width,this.Ls=e/t.height}zs(t,i){const s=t-this.As,h=s%this.Ds,e=Math.floor(s/this.Ds),r=this.#d;return i.x0=r.x0+h*this.#gt/r.width*r.$s,i.y0=r.y0+e*this.#gt/r.height*r.Vs,i.x1=r.x0+Math.min((h+1)*this.#gt/r.width,1)*r.$s,i.y1=r.y0+Math.min((e+1)*this.#gt/r.height,1)*r.Vs,i.image=r,i.layer=this.Ps,i.x=h,i.y=e,i}},Wt=(t,i)=>i-t,Ht=class t{static#Mt=[];static#_t=new Uint8Array(0);static#wt=0;#vt=new Xt;#yt=new Yt;#bt=0;Ys=[];#kt=0;Xs=0;x0=0;y0=0;x1=1;y1=1;$s=1;Vs=1;#xt=.5;#Tt=.5;#St=1;#Et=1;#Ct=0;#It=0;#Lt=-1;#Pt=0;#At=0;Rs=0;Bs;#Ot=0;#Dt=0;Ns=0;#Ft=0;Ws=0;static#zt=new Float64Array(200);static#$t=new Float64Array(200);static#Vt=new Float64Array(200);static#Yt=0;static#Xt=0;#u;Ps;nt;width;height;#gt;#Rt;At;#Bt;opacity;Hs;lt;ut;dt;#Nt;#Wt;constructor(t,i,s,h,e,r,o,n,a,c,l,u,d,f,m,p,g){this.#u=t,this.Ps=i,this.nt=s,this.width=h,this.height=e,this.#gt=r,this.#Rt=o,this.At=a,this.#Bt=c,this.opacity=l,this.Hs=u,this.lt=d,this.ut=f,this.dt=m,this.#Nt=p,this.#Wt=g;const M=h>e?h:e;this.#Ft=this.#u.is360&&this.nt>0,this.#kt=n&&!o?2:1;for(let w=r;w<M*t.main.Zs;w*=2)this.#kt++;(t.main.Gs||this.#Wt>0)&&(this.#kt-=3-t.main.Us),this.#Wt>0&&this.#kt--,this.#kt=Math.max(1,this.#kt);let _=c;for(let w=0;w<this.#kt;w++){const t=tt(w)*this.#gt,i=Math.ceil(h/t),s=Math.ceil(e/t);this.Ys.push(new Nt(this,this.Ys.length,_,this.Bs=_+=i*s,t,i,s))}}ct(t,i,s,h){this.x0=t,this.y0=i,this.x1=s,this.y1=h,this.#St=s+(t>s?1:0)-t,this.#Et=h-i,this.#xt=t+this.#St/2,this.#Tt=i+this.#Et/2,this.#u.is360&&(this.#xt=K(this.#xt)),this.$s=this.#St,this.Vs=this.#Et,this.#Ot=this.width/this.height,this.#bt=this.#Ot>this.#u.aspect?this.#u.width/this.width*this.$s:this.#u.height/this.height*this.Vs,this.#u.is360&&this.#Ht()}#Ht(){let t=2*(this.#xt-.5)*Math.PI;const i=(this.#Tt-.5)*Math.PI;t+=this.#u.F.qs,this.#Ct=Math.cos(i)*Math.sin(t),this.#It=Math.sin(i),this.#Lt=Math.cos(i)*Math.cos(t),this.#Pt=2*this.#St*Math.PI,this.#At=this.#Et*Math.PI}#Zt(){if(!this.#u.is360)return 0;const t=this.#u.F,i=this.#Ct*t.Js+this.#It*t.Ks+this.#Lt*t.Qs;return Math.acos(Math.max(-1,Math.min(1,i)))<t.th+Math.max(this.#Pt,this.#At)/2}#jt(){if(this.#Ft)return!this.#Zt();{const t=this.#u.view;return!(this.x1>t.x0&&this.x0<t.x1&&this.y1>t.y0&&this.y0<t.y1)}}ih(){return this.#Wt>0&&this.#Wt>this.#u.camera.Ai||(this.At||this.nt>0)&&0===this.opacity&&0===this.Hs?0:this.Ps===this.#u.Li||this.#u.is360&&0===this.nt?1:!this.#jt()}sh(t){const i=this.Hs;if(this.opacity===i)return 0;const s=1/(this.#u.main.hh*this.#u.main.eh);return this.opacity=Math.min(1,Math.max(0,t?i:i>this.opacity?Math.min(i,this.opacity+s):Math.max(i,this.opacity-s))),this.opacity!==i}rh(i){if(0>=this.opacity)return 0;this.#Dt=0;const s=t.#Mt;let h=t.#_t;if(this.#Ft){if(i=this.#Gt(i),!(this.Ns=i>0))return 0}else i=Math.max(i,this.#u.camera.N)*this.#bt;const e=this.Bs-this.#Bt;h.length<e?h=t.#_t=new Uint8Array(e):h.fill(0,0,e),t.#wt=this.#Bt;const r=this.Bs-1,o=r-this.#Bt;0===this.Rs?(s.push(r),h[o]=1,this.#u.main.oh(r,1,1)):this.#Ft&&(s.push(r),h[o]=1,this.#Dt++);const n=this.#Ut(i),a=this.#u;if(0===this.nt&&a.is360)this.#qt(this.Ys[n]);else if(this.#Ft)this.#Jt(n),this.#Dt++;else if(a.visible.x0<a.visible.x1&&a.visible.y0<a.visible.y1){const t=a.view;this.#Kt(n,Math.max(a.visible.x0,t.x0),Math.max(a.visible.y0,t.y0),Math.min(a.visible.x1,t.x1),Math.min(a.visible.y1,t.y1))}s.sort(Wt);for(const t of s)a.nh.push(t);return s.length=0,this.#Dt}#Ut(t){let i=this.#Rt||this.#u.ah?this.#kt:1+this.#u.main.uh;if(!this.#Rt&&!this.#u.ah)for(;i<this.#kt&&1>tt(i)*t;i++);return this.Xs=i-1}#Kt(t,i,s,h,e){if(this.#jt())return;const r=this.Ys[t],o=r.Is,n=r.Ls,a=this.$s,c=this.Vs,l=Math.min(r.Ds-1,Math.floor(Math.max(0,h-this.x0)/a/o)),u=Math.min(r.Fs-1,Math.floor(Math.max(0,e-this.y0)/c/n)),d=Math.floor(Math.max(0,i-this.x0)/a/o);let f=Math.floor(Math.max(0,s-this.y0)/c/n);for(;u>=f;f++)for(let t=d;l>=t;t++)this.#Qt(r,t,f)}#Jt(t){if(this.#jt())return;const i=this.Ys[t],s=this.#u,h=s.view.Qt,e=s.view.width+.1,r=s.view.height+.1,o=this.#xt,n=this.#Tt,a=this.#St,c=this.#Et,l=Math.max(h-r/2,n-c/2),u=Math.min(h+r/2,n+c/2);if(l>=u)return;const d=s.is360?K(s.view.Kt+s.F.dh):s.view.Kt;let f,m;if(s.is360){const t=K(d-e/2),i=K(d+e/2),s=K(o-a/2),h=K(o+a/2);if(i>t&&h>s){if(f=Math.max(t,s),m=Math.min(i,h),f>=m)return}else if(t>i&&h>s){if(s>i&&t>h)return;f=s,m=h}else if(i>t&&s>h){if(t>h&&s>i)return;f=t,m=i}else f=Math.max(t,s),m=Math.min(i,h);const r=o-a/2;o+a/2>1?(r>f&&(f+=1),r>m&&(m+=1)):f>o+.5?f-=1:m>o+.5&&(m-=1)}else if(f=Math.max(d-e/2,o-a/2),m=Math.min(d+e/2,o+a/2),f>=m)return;const p=o-a/2,g=n-c/2,M=i.Is,_=i.Ls,w=Math.floor(Math.max(0,Math.min(1,(f-p)/a))/M),v=Math.min(i.Ds-1,Math.floor(Math.max(0,Math.min(1,(m-p)/a))/M)),y=Math.floor(Math.max(0,Math.min(1,(l-g)/c))/_),b=Math.min(i.Fs-1,Math.floor(Math.max(0,Math.min(1,(u-g)/c))/_));for(let k=y;b>=k;k++)for(let t=w;v>=t;t++)this.#Qt(i,t,k)}#Qt(i,s,h){const e=t.#_t,r=t.#wt,o=Math.min(this.Bs-1,i.As+h*i.Ds+s),n=o-r;if(n<e.length){if(e[n])return;e[n]=1}t.#Mt.push(o),1>this.#u.main.oh(o,o===this.Bs-1,this.#u.$t)?this.#Rt||this.#u.ah||i.Ps>=this.#kt-1||this.#Qt(this.Ys[i.Ps+1],s>>1,h>>1):this.#Dt++}fh(t){const i=this.#u.main.mh,s=2*Math.PI*this.#u.F.ph,h=this.#vt,e=this.#yt,r=this.x0+this.$s/2,o=this.y0+this.Vs/2,n=this.#u.F.gh(r-this.#u.F.dh,o,1,5);e.Vi(),e.Ni(n.x,n.y,n.z),e.Xi(Math.atan2(n.x,n.z)+Math.PI+this.ut),e.Yi(-Math.sin((o-.5)*Math.PI)-this.lt),e.Ri(-this.dt),e.Bi(.5*this.#Nt);const a=(t.x0-r)*s,c=(t.x1-r)*s,l=.5*-(t.y0-o)*s,u=.5*-(t.y1-o)*s,d=(t,i)=>{h.x=0,h.y=0,h.z=0,e.Ni(t,i,0),h.Gi(e),e.Ni(-t,-i,0)};d(a,l),i[0]=h.x,i[1]=h.y,i[2]=h.z,d(a,u),i[3]=h.x,i[4]=h.y,i[5]=h.z,d(c,l),i[6]=h.x,i[7]=h.y,i[8]=h.z,d(c,u),i[12]=h.x,i[13]=h.y,i[14]=h.z,i[9]=i[3],i[10]=i[4],i[11]=i[5],i[15]=i[6],i[16]=i[7],i[17]=i[8]}#Gt(t){if(this.#Ft)return t*Math.max(2*this.#St,this.#Et)*(this.#u.width/this.width);const i=this.#St,s=this.#Et,h=this.#xt,e=this.#Tt,r=this.#u.el,o=this.#u.F,n=r.width,a=s/2.5;let c=0;const l=o.V(h-i/2,e-a);if(l.li(r)&&c++,o.V(h+i/2,e-a).li(r)&&c++,o.V(h-i/2,e+a).li(r)&&c++,o.V(h+i/2,e+a).li(r)&&c++,0===c)return 0;const u=l.w>0||0>l.x?0:Math.min(n,l.x),d=l.w>0||l.x>n?n:Math.max(0,l.x);return Math.min(1,(d-u)/this.width)}#qt(i){const s=this.#u,h=s.el.width,e=s.el.height,r=s.F.th>Math.PI/2?20:12,o=s.F.dh;t.#Yt=0;const n=(i,h)=>{const e=s.F.D(i,h),r=t.#Yt++;t.#zt[r]=e.x,t.#$t[r]=e.y};for(let t=0;r>=t;t++){const i=t/r;n(i*h,0),n((1-i)*h,e),n(h,i*e),n(0,(1-i)*e)}for(let t=1;3>=t;t++){const i=e*t/4;for(let t=1;3>=t;t++)n(h*t/4,i);n(h*t/4,e-1)}const a=t.#Yt;let c=1/0,l=-1/0;for(let b=0;a>b;b++){const i=t.#$t[b];c>i&&(c=i),i>l&&(l=i)}c=Math.max(0,c-.001),l=Math.min(1,l+.05);const u=t.#zt,d=t.#Vt;for(let t=0;a>t;t++)u[t]=K(u[t]-o);t.#Xt=0;for(let b=0;a>b;b++){const i=u[b];let s=0;for(let h=0;h<t.#Xt;h++)if(1e-8>Math.abs(d[h]-i)){s=1;break}s||(d[t.#Xt++]=i)}const f=t.#Xt;for(let t=1;f>t;t++){const i=d[t];let s=t-1;for(;s>=0&&d[s]>i;)d[s+1]=d[s],s--;d[s+1]=i}let m=0,p=1,g=0;if(2>f)g=1,c=0,l=1;else{let t=0,i=-1;for(let e=0;f-1>e;e++){const s=d[e+1]-d[e];s>t&&(t=s,i=e)}const s=d[0]+1-d[f-1],h=s>t;h&&(t=s,i=f-1),.999999>1-t?h?(m=d[0],p=d[f-1]):(m=d[(i+1)%f],p=d[i]+1):g=1}(.05>c||l>.95)&&(g=1);const M=i.Ls,_=i.Is;let w=Math.max(0,Math.floor((c-.001)/M)),v=Math.min(i.Fs-1,Math.max(0,Math.floor((l+M-1e-10)/M)));1e-5>c&&(w=0),l>.99999&&(v=i.Fs-1);const y=p>1;for(let t=w;v>=t;t++)if(g)for(let s=0;s<i.Ds;s++)this.#Qt(i,s,t);else{const s=Math.max(0,Math.floor((m-.001)/_)-1);if(y){for(let e=s;e<i.Ds;e++)this.#Qt(i,e,t);const h=Math.min(i.Ds-1,Math.ceil(K(p+.001)/_));for(let s=0;h>=s;s++)this.#Qt(i,s,t)}else{const h=Math.min(i.Ds-1,Math.ceil((p+.001)/_));for(let e=s;h>=e;e++)this.#Qt(i,e,t)}}}},Zt=class extends Rt{Cs=new Yt;#ti=new Yt;#ii=new Yt;#si=1;#hi=new Yt;#ei=new Xt;ph=10;Ai=0;#ri=1;#oi=0;dh=0;#ni=0;#ai=0;qs=0;G=0;U=0;Mh=Math.PI/2;Pi=Math.PI/2;Oi=Math.PI/2;Di=Math.PI/2;Js=0;Ks=0;Qs=-1;th=0;fs=new Xt;#at=new Ft;constructor(t){super(t),this.qs=-this.canvas._h,this.dh=this.qs/(2*Math.PI),this.#ri=this.canvas.height/(this.canvas.width/2),this.#oi=(1-this.#ri)/4,this.G=this.qs,this.wh()}it(t,i){this.#ni=t,this.#ai=i,this.Oi=Math.PI/2,i>0&&(this.Oi=Math.min(this.Oi,this.Oi*i*1.5)),this.$i(this.Pi,1)}wh(t=0){const i=this.canvas.el;t||this.Cs.Pi(this.Pi,i.gi,1e-4,20),this.#si=1;const s=this.Cs;this.U=Math.min(Math.PI/2,Math.max(-Math.PI/2,this.U)),s.Yi(this.U),s.Xi(this.G),s.Ni(this.#ei.x,this.#ei.y,this.#ei.z);const h=this.#hi;h.Wi(this.Pi),h.Ni(0,0,i.height/i.ratio/2),h.Yi(-this.U),h.Xi(this.G),this.#at.direction=(this.G/Math.PI*180%360+360)%360}wi(t,i,s=0){const h=this.canvas,e=h.el;this.G+=t*e.ratio/e.width*this.Pi*e.gi,this.U+=i*e.ratio/e.height*this.Pi*this.#ri,this.G=Q(this.G),(h.K||this.#ai>0)&&this.#ci(),this.#ni>0&&this.#li(),0===s&&h.Ji.addStep(2*t,2*i),this.wh(),this.yh(),this.#ui()}#ci(){const t=this.Pi/2,i=Math.PI*this.#ri/2*(this.#ai>0?this.#ai:1);this.U=this.U>0?Math.min(i,this.U+t)-t:Math.max(-i,this.U-t)+t}#li(){const t=this.Pi/2*this.canvas.el.gi,i=Math.PI*(this.#ni>0?this.#ni:1);let s=this.G;for(;s>=Math.PI;)s-=2*Math.PI;for(;s<-Math.PI;)s+=2*Math.PI;this.G=Q(Math.min(Math.max(i,t)-t,Math.max(Math.min(-i,-t)+t,s)))}#di(t,i,s,h=0,e=0,r=0){const o=this.canvas;if(t/=2,0!==i)i=o.wt.zoom(t,i,h,s);else{t/=this.Ai*o.Ei/20;const i=e>0&&r>0;let h=0,n=0;if(i){const t=this.D(e,r);h=t.x,n=t.y}if(this.$i(this.Pi+t,s),i){const t=this.D(e,r);let i=h-t.x;i>.5&&(i-=1),-.5>i&&(i+=1);const s=n-t.y;this.G+=i*Math.PI*2,this.U+=s*Math.PI*this.#ri,this.G=Q(this.G),(o.K||this.#ai>0)&&this.#ci(),this.#ni>0&&this.#li(),this.wh(),this.#fi(),this.yh(),this.#ui()}}return i}$i(t,i){const s=this.canvas;this.Pi=t,i&&!s.is360||(this.Pi=Math.min(this.Oi,Math.max(this.Di,this.Pi))),(s.K||this.#ai>0)&&this.#ci(),this.#ni>0&&this.#li(),this.Cs.Pi(this.Pi,s.el.gi,1e-4,20),this.#fi(),this.wh(1),this.yh(),this.#ui()}#fi(){const t=this.canvas.el,i=t.width/2,s=t.height/2,h=this.D(i,s).x,e=this.D(i+1,s+1).x;this.Ai=1/(e+(h>e?1:0)-h)/this.canvas.width}q(t,i,s=0){this.G=Q(t-this.qs),this.U=i,0!==s?this.$i(s,0):this.wh(),this.yh(),this.#ui()}O(t,i,s,h,e){if(null==t||null==i||null==h)return 0;const r=e?.noLimit??0,o=e?.correctNorth?t+this.dh:t;return this.G=(o-.5)*Math.PI*2,this.U=(i-.5)*Math.PI*this.#ri,this.$i(Math.min(this.Oi,h*Math.PI*this.#ri),r),this.yh(),this.#ui(),1}#ui(){const t=this.canvas,i=K(this.G/(2*Math.PI)+.5),s=this.U/this.#ri/Math.PI+.5,h=this.Pi/Math.PI/this.#ri,e=h*(0===t.el.width?1:.5*Math.sqrt(t.el.gi))/(t.aspect/2);t.view.set(i,s,e,h),t.view.ei=1}yh(){const t=this.G,i=this.U;this.Js=Math.cos(i)*Math.sin(t),this.Ks=Math.sin(i),this.Qs=Math.cos(i)*Math.cos(t);const s=2*Math.atan(1/this.Pi),h=this.canvas.el.width/this.canvas.el.height,e=s/2,r=Math.atan(Math.tan(e)*h);this.th=2*r}bh(t,i,s,h=0){const e=this.#ei,r=s*Math.PI*2+h;e.x=-t*Math.sin(r),e.y=i,e.z=t*Math.cos(r),this.canvas.view.ei=1,this.wh()}kh(){const t=this.canvas,i=t.el;this.Di=Math.min(.5,i.height/t.height)/t.maxScale*this.#ri*Math.PI/i.ratio*i.scale,this.$i(this.Pi,1)}#mi(){this.#si&&(this.#ii.oi(this.Cs),this.#ii.Hi(),this.#si=0)}D(t,i){const s=this.canvas.el,h=this.fs,e=this.#at;return h.x=t*s.ratio/s.width*2-1,h.y=-(i*s.ratio/s.height*2-1),h.z=1,h.w=1,this.#mi(),h.Gi(this.#ii),h.Ui(),e.x=Math.atan2(h.x,-h.z)/Math.PI/2+.5,e.y=.5-Math.asin(h.y)/Math.PI/this.#ri,e.scale=this.Ai,e.w=this.#ei.x+this.#ei.z,e.direction=this.G+this.qs,e.di(),e}V(t,i){const s=this.canvas.el,h=this.fs,e=this.#at;return this.gh(t+this.dh,i),e.x=(h.x+1)/2*s.width/s.ratio,e.y=(1-h.y)/2*s.height/s.ratio,e.scale=this.Ai,e.w=-h.w,e.di(),e}gh(t,i,s=0,h=this.ph){const e=this.fs;t*=2*-Math.PI,i-=.5,i*=-Math.PI,i*=this.#ri;const r=Math.cos(i);return e.x=r*Math.sin(t)*h,e.y=Math.sin(i)*h,e.z=r*Math.cos(t)*h,e.w=1,s||e.Gi(this.Cs),e}rt(t,i,s,h,e,r,o,n=0,a=1,c=1,l=0){isNaN(h)&&(h=this.ph);const u=this.#ti,d=this.fs,f=this.ph,m=this.#ei;u.Vi(),h*=this.ph*(100/(2*Math.PI)),t*=2*-Math.PI,i-=.5,i*=Math.PI*this.#ri;const p=Math.cos(i);return d.x=p*Math.sin(t),d.y=Math.sin(i),d.z=p*Math.cos(t),u.Ni(m.x*h/f,-m.y*h/f+n*f,m.z*h/f),u.Ni(d.x*h,d.y*h,d.z*h),u.Xi(Math.atan2(d.x,d.z)+Math.PI+r),u.Yi(d.y+e),u.Ri(o),u.Ai(a,c),u.Bi(s/Math.PI/f),u.Zi(this.#hi),u}xh(t,i,s,h){i*=this.#ri,i/=2,i-=.25,i+=this.#oi,h*=this.#ri,h/=2;const e=this.canvas.main.Th,r=this.ph,o=s/16,n=h/16,a=2*Math.PI;for(let c=0;16>c;c++)for(let s=0;16>s;s++){const h=18*(16*c+s),l=-K(t+o*s+this.dh)*a,u=-(i+n*c)*a,d=-K(t+o*(s+1)+this.dh)*a,f=-(i+n*(c+1))*a,m=Math.cos(l)*r||0,p=Math.sin(l)*r||0,g=Math.cos(d)*r||0,M=Math.sin(d)*r||0,_=Math.cos(u),w=Math.cos(f),v=Math.sin(u)*r,y=Math.sin(f)*r;e[h+0]=_*p,e[h+1]=v,e[h+2]=_*m,e[h+3]=e[h+9]=w*p,e[h+4]=e[h+10]=y,e[h+5]=e[h+11]=w*m,e[h+6]=e[h+15]=_*M,e[h+7]=e[h+16]=v,e[h+8]=e[h+17]=_*g,e[h+12]=w*M,e[h+13]=y,e[h+14]=w*g}}N=0;ai=0;B=0;H=1;tt(){}xs(){return 0}_i(){return 0}j(t=0){return this.Pi>=this.Oi}Z(){return this.Pi<=this.Di}bt(t,i,s=0,h=0,e=0,r=0){this.wi(t,i,s)}yt(t,i,s,h=0,e){return this.#di(t,h,e,0,i,s)}Ki(t,i,s){this.#di(2*t,0,0),this.wi(i,s)}ss(t){const i=this.canvas.view.Kt;return i+ht(i,t)}cs(t){const i=this.canvas.main.el;return{w:1/t*i.width,h:1/t*i.height}}},jt=class t{view;focus;wt;Ji;X;F;camera;#pi=new Ot;el=new zt;images=[];Ei=0;#gi=[];#Mi;#_i;#wi;visible;#vi;#yi=1;#bi=0;#ki=0;#xi=0;get zIndex(){return this.#ki}set zIndex(t){this.#ki!==t&&(this.#ki=t,this.parent&&(this.parent.#xi=1))}nh=[];aspect;#Ti=0;#Si=0;$t=0;#Ei=0;#Ci=0;Li=-1;ps=0;_s=0;gs=0;Ms=0;ah=0;layer=0;Sh;#gt;is360;Ft;#Ii;us;ks;maxScale;bs;Ci;_h;#Li;#Pi;isOmni;Ss;Ii;main;width;height;Eh;K;ds;constructor(t,i,s,h,e,r,o,n,a,c,l,u,d,f,m,p,g,M,_,w,v,y,b=0){this.main=t,this.width=i,this.height=s,this.Eh=h,this.K=e,this.ds=b,this.#gt=r,this.is360=o,this.Ft=n,this.#Ii=a,this.us=c,this.ks=e?1:l,this.maxScale=u,this.bs=d,this.Ci=f,this._h=m,this.#Li=p,this.#Pi=g,this.isOmni=M,this.Ss=_,this.Ii=w,this.#Ti=t.Ch.length,b||t.Ch.push(this),this.aspect=i/s,this.Ei=Math.sqrt(i*i+s*s),this.view=new Dt(this),this.focus=new Dt(this),this.wt=new Vt(this),this.Ji=new $t(this),this.X=new Bt(this),this.F=new Zt(this),this.camera=this.is360?this.F:this.X,this.#Mi=new Dt(this),this.#_i=new Dt(this),this.#wi=new Dt(this),this.visible=new Dt(this),this.#vi=new Dt(this),o&&this.view.set(.5,.5,1,.5),b||(this.el.oi(t.el),this.O(this.view.Kt,this.view.Qt,this.view.width,this.view.height,0,0),this.kh()),n?(this.main.Ih++,this.#Ei=1,this.$t=1,this.#Ci=1,y>0&&this.Zt(y)):this.Lh(0,0,1,1,i,s,r,v,a,0,h)}parent;#Ai(t){this.parent=t,this.#Ti+=t.#gi.length}Lh(t,i,s,h,e,r,o,n,a,c,l,u=0,d=0,f=0,m=1,p=0){const g=new Ht(this,this.main.Ih++,this.images.length,e,r,o,n,a,c,this.main.Ph,l,l,u,d,f,m,p);return g.ct(t,i,s,h),this.images.push(g),this.main.Ph=g.Bs,1===this.images.length&&this.zi(0),g}Ah(i,s,h,e,r,o,n={}){const a=n.coverLimit??1,c=n.coverStart??1,l=new t(this.main,r,o,1,a,this.#gt,0,0,this.main.Gs||this.#Ii,0,c,1,1,this.Ci,0,0,0,0,this.Ss,1,0,0,1);return l.#Ai(this),l.ct(i,s,h,e,1,1),this.#gi.push(l),l}#Oi(){const t=1/(0!==this.main.Oh||0!==this.main.Dh?this.main.Fh:1!==this.main.Ch.length||this.ds?this.main.zh:.25)/this.main.hh,i=this.Eh>0&&this.Eh>=this.$t;if(this.$t=i?Math.min(1,this.$t+t):Math.max(0,this.$t-t),this.#Ei=nt.get(this.$t),0!==this.main.Oh||0!==this.main.Dh){const t=0===this.$t?0:nt.get(1-this.$t)*(i?1:-1);this.F.bh(this.main.Oh*t*8,this.main.Dh*t*8,this.main.$h)}}#Di(t){this.Sh?.visible?.set(t),this.#Si=t}Vh(){this.Eh=0,this.zIndex=0}Yh(){if(this.#Ci=1,!this.ds&&1===this.#_i.width&&1===this.#_i.height)for(let t=0;t<this.main.Ch.length;t++)this.main.Ch[t]!==this&&this.main.Ch[t].Vh();this.Eh=1}Xh(){return!this.#bi&&1>this.#yi}#Fi(){return 0===this.Eh&&0===this.$t||0===this.#_i.width||0===this.#_i.height}Rh(){if(!this.Xh()&&this.#Fi())return void(this.#Si&&this.#Di(0));let t=1>this.wt.Fi()||1>this.Ji.step()||!this.#Ci;if(this.nh.length=0,this.#zi(0)&&(t=1),!(this.is360||this.Xh()||this.visible.width>0&&this.visible.height>0))return void(this.#Si&&this.#Di(0));this.#Si||1>this.$t||this.#Di(1),this.F.yh(),this.#Ci&&this.$t!==this.Eh&&(this.#Oi(),t=1);const i=(this.is360?this.F.Ai:this.X.Ai)*this.el.scale,s=this.main;for(let h=0;h<this.images.length;h++){const e=this.images[h];e.ih()?(h>0&&!e.Ns&&s.Bh(e,e.Ns=1),e.At&&e.Ws&&(t=1),e.sh(this.#Li||1>this.$t)&&(t=1),e.opacity>0&&(s.Nh+=e.rh(i))):e.Ns&&s.Bh(e,e.Ns=0)}s.Wh+=this.nh.length,s.Hh=0===s.Wh?1:s.Nh/s.Wh;for(let h=0;h<this.#gi.length;h++)this.#gi[h].Rh();t&&(s.Zh=1)}jh(){if(0===this.Eh&&0===this.$t)return;const t=this.main,i=t.micrio.Ht,s=this.el,h=this.view,e=this.wt.xi();if(i.gl.viewport(this.el.left,t.el.height-s.height-s.top,s.width,s.height),i.gl.uniformMatrix4fv(i.Gh,0,this.F.Cs.arr),this.#Pi)for(let o=0;o<this.images.length;o++){const t=this.images[o];t.x1>h.x0&&t.x0<h.x1&&t.y1>h.y0&&t.y0<h.y1&&(this.#$i(t.Bs-1),i.Uh(void 0,t.Hs))}const r=this.#pi;for(let o=0;o<this.nh.length;o++){const i=this.nh[o];this.#$i(i);const s=r.layer===r.image.Xs-1||!t.qh&&r.layer===r.image.Xs,h=i===r.image.Bs-1,n=t.Jh(i);(s||1===n||h)&&t.Uh(r.image.Ps,i,r.layer,r.x,r.y,n*this.#Ei*r.image.opacity,e,r.layer===r.image.Xs-1)&&h&&(r.image.Rs=t.now,this.#Ci||this.Yh())}this.#xi&&(this.#gi.sort((t,i)=>t.zIndex>i.zIndex?1:t.zIndex<i.zIndex?-1:0),this.#xi=0);for(let o=0;o<this.#gi.length;o++)this.#gi[o].jh();h.ei&&this.Sh?.camera?.Mt(),h.ei=0}#zi(t){const i=this.main.el,s=this.ds,h=s?this.parent.es():1/i.ratio,e=s?this.parent.width:i.width,r=s?this.parent.height:i.height,o=s?this.parent.view:this.#vi,n=this.view,a=this.#_i,c=this.#Mi,l=this.#wi,u=this.Xh();if(u){const t=1/this.main.Kh/this.main.hh;this.#yi=Math.min(1,this.#yi+t);const i=this.main.Qh.get(this.#yi),s=c.Kt+(l.Kt-c.Kt)*i,h=c.Qt+(l.Qt-c.Qt)*i,e=c.width+(l.width-c.width)*i,r=c.height+(l.height-c.height)*i;a.set(s,h,e,r),1===this.#yi&&(1===this.zIndex&&(this.zIndex=0),c.oi(l)),this.view.ei=1}let d=Math.max(n.x0,n.x0+(o.x0-a.x0)/a.width*n.width),f=Math.min(n.x1,n.x0+(1-(a.x1-Math.min(a.x1,o.x1))/a.width)*n.width);this.is360||(d=Math.max(0,d),f=Math.min(1,f));let m=Math.max(Math.max(0,n.y0),n.y0+(o.y0-a.y0)/a.height*n.height),p=Math.min(Math.min(1,n.y1),n.y0+(1-(a.y1-Math.min(a.y1,o.y1))/a.height)*n.height);m=Math.max(m,0),p=Math.min(p,1);const g=(d+f)/2,M=(m+p)/2,_=f-d,w=p-m;this.visible.set(g,M,_,w);const v=s?1:i.ratio;return this.Eh>=this.$t&&this.el.set(a.width*h*e,a.height*h*r,(a.x0-o.x0)*e*h,(a.y0-o.y0)*r*h,v,s?1:i.scale,s?0:i.pi)&&(t||this.te(),this.view.ei=1,this.kh(),this.is360||(this.X.ws(),this.X.Es())),u}ct(t,i,s,h,e,r){this.#bi=0,e?(this.#Mi.ct(t,i,s,h),this.#_i.ct(t,i,s,h)):(this.#Mi.oi(this.#_i),this.#yi=0,0===this.zIndex&&(this.zIndex=1),this.wt.ni=0),this.#wi.ct(t,i,s,h),this.#zi(r),this.te()}#$i(t){const i=this.#pi;if(this.#Vi(t),this.is360)0===i.image.nt?this.F.xh(i.x0,i.y0,i.x1-i.x0,i.y1-i.y0):i.image.fh(i);else{const t=this.main.mh,s=this.aspect;t[0]=t[3]=t[9]=(i.x0-.5)*s,t[1]=t[7]=t[16]=.5-i.y0,t[4]=t[10]=t[13]=.5-i.y1,t[6]=t[12]=t[15]=(i.x1-.5)*s,t[2]=t[5]=t[8]=t[11]=t[14]=t[17]=0}}te(){const t=this.main.el;this.Sh?.Vt?.set([this.el.left/t.ratio,this.el.top/t.ratio,this.el.width/t.ratio,this.el.height/t.ratio])}#Vi(t){let i=0;for(;i<this.images.length-1&&t>=this.images[i].Bs;)i++;const s=this.images[i];let h=0;for(;h<s.Ys.length-1&&t>=s.Ys[h].Os;)h++;const e=s.Ys[h];return e.zs(t,this.#pi),[i,e.Ps]}ie(t){if(this.is360)return 0;const i=this.#pi,s=this.view,[h,e]=this.#Vi(t);return e>this.images[h].Xs?!!(i.x1>s.x0&&i.x0<s.x1&&i.y1>s.y0&&i.y0<s.y1):0}kh(){if(this.#gi.length){const t=this.main.el;this.width=t.width,this.height=t.height,this.Ei=Math.sqrt(t.width*t.width+t.height*t.height)}this.ds||(this.is360?this.F.kh():(this.X.ws(),this.X.Es()))}se(){if(this.Ji.stop(),this.wt.stop(),this.images.length>0){const t=this.images[0];t.Rs=0,t.opacity=0}}he(){this.#Di(0),this.main.he(this)}Zt(t){this.layer=t,this.zi(this.Li),this.view.ei=1}zi(t,i=0){const s=this.layer*(this.images.length/this.Ii);for(let h=0;h<this.images.length;h++){const e=this.images[h],r=h-s-t;0!==r?e.Hs=0>r||r>i?0:1:(e.Hs=1,this.Li=t,this.view.ei=1)}this.X.tt()}O(t,i,s,h,e,r,o=0,n=0){const a=this.main.el;a.mi>0&&(h+=h/(1-a.mi/a.height),this.wt.ni=0,a.mi=0),a.fi>0&&(s+=s*(a.fi/a.width),this.wt.ni=0,a.fi=0),e&&(this.wt.ni=0),this.view.set(t,i,s,h),n&&!e&&this.view.ni(0,0,this.us),r||this.wt.yi.oi(this.view),this.width>0&&(this.is360?(this.F.O(t,i,s,h,{noLimit:e,correctNorth:o}),this.view.set(t,i,s,h)):this.X.vs()&&this.X.Es())}es(){return this.is360?this.F.Ai:this.X.Ai}Z(){const t=this.F;return this.is360?t.Pi<=t.Di:this.X.Z()}j(t=0){const i=this.F;return this.is360?i.Pi>=i.Oi:this.X.j(t)}tt(t){this.X.tt(t)}W(t){const i=this.X;i.N=t,i.tt(),i.vs(),this.F.wh()}q(t,i,s=0){isNaN(i)&&(i=this.F.U),this.F.q(t,i,s?this.F.Mh:0)}rt(t,i,s,h,e,r,o,n,a=1,c=1,l=0){const u=2e4/this.width;return this.F.rt(t,i,s*u,h,e,r,o,n,a,c,l).arr}ht(){this.#bi=1,this.wt.pause()}et(){this.#bi=0,this.wt.resume()}st(){this.wt.stop();for(let t=0;t<this.#gi.length;t++)this.#gi[t].st()}v(){const t=this.Sh?.camera;if(t){for(t.v&&t.v();t.T.length;)t.T.shift()?.();t.k=t.v=void 0}}k(){const t=this.Sh?.camera;t&&(t.k&&t.k(),t.T.length=0,t.k=t.v=void 0)}},Gt=class t{ready=0;el=new zt;mh=new Float32Array(18);Th=new Float32Array(4608);Ch=[];Ph=0;Ih=0;now=0;Zh=0;Hh=0;Wh=0;Nh=0;zh=.25;Kh=.5;Qh=nt;Fh=.5;eh=.5;Mi=1;ee=0;Gs=0;Us=0;Zs=4;uh=0;qh=0;ys=0;Ts=0;$h=0;Oh=0;Dh=0;hh=1/60;#Yi=[];#Xi=0;#Ri=new Set;#Bi=new Set;#Ni=new Set;#Wi=new Set;#Hi=new Map;#Zi=new Map;#ji;#Gi=[];#Ui=new Map;#qi=new Map;re=0;static oe=t.#Ji(1,1);static ne;#Ki=0;#Qi=0;#ts=null;#is=new Map;Rt(t){return this.#is.get(t)?.canvas}#ss(t){this.#is.set(t.micrioImage,t)}micrio;constructor(t){this.micrio=t,this.#ji=vt.iOS?5:B(this.micrio.canvas.isMobile)?30:90,this.render=this.render.bind(this),this.#Gi.push(t.current.subscribe(this.#hs.bind(this)))}static#Ji(t,i){const s=new Float32Array(12*t*i),h=1/t,e=1/i;for(let r=0,o=0;i>o;o++)for(let i=0;t>i;i++,r+=12)s[r+3]=s[r+7]=s[r+9]=(s[r+1]=s[r+5]=s[r+11]=o*e)+e,s[r+4]=s[r+8]=s[r+10]=(s[r+0]=s[r+2]=s[r+6]=i*h)+h;return s}ae(){this.ready||(t.ne=t.#Ji(16,16),this.ready=1,this.#Gi.push(this.micrio.barebone.subscribe(t=>{this.qh=t,this.#Xi=t})))}Uh=(t,i,s,h,e,r,o,n)=>{this.#Bi.add(i);const a=this.#es(i);a.ce=void 0;const c=Pt(),l=this.#Yi[t],u="camera"in l,d=u&&l.At,f=u&&l.P,m=u?l:l.image,p="le"in l?l.le:void 0,g=u&&l.$settings.noSmoothing;if(0===a.ue&&bt>c){if(this.#Xi?c>2&&o:n&&o&&c>0)return 0;if(d&&!f)a.ue=2,a.de=this.micrio.Ht.fe();else{a.ue=1;const t=m.Nt(s,h,e,p);if(!t)return a.ue=0,0;this.fe(i,t,o,{noSmoothing:g})}}else if(a.ue>=2){if(this.#Qi||this.#rs(),a.de){if(d){if(!m.It||!m.It.dataset.playing)return 0;this.micrio.Ht.me(a.de,m.It)}this.micrio.Ht.Uh(a.de,r,f)}return 2===a.ue&&(a.ue=3,a.pe=this.now),1}return 0};Jh=t=>this.#Hi.get(t)?.$t||0;oh=(t,i=0,s=1)=>{const h=this.#Hi.get(t);return h?(1>h.$t&&(h.$t=i?1:h.pe&&h.pe>0?Math.min(1,(this.now-h.pe)/250)*s:0),h.$t):0};Bh=(t,i)=>{const s=this.#Ui.get(t);s&&"visible"in s&&s.visible.set(i)};ge(){for(this.#os();this.#Gi.length;)this.#Gi.pop()?.();this.#Zi.forEach(t=>At(t)),this.#Zi.clear();for(const[t,i]of this.#Hi.entries())i.Me&&clearTimeout(i.Me),this.#ns(t);this.#Hi.clear(),this.#as()}#cs(t){if(this.ee)return;const i=t.$info;if(!i)return;if(t.error)return void this.micrio._e.set(0);if(!(t.Ft||i.width&&i.height))throw new Error("Invalid Micrio image size");const s=t.$settings;this.#Ki=!!this.micrio.gallery||t.Ot,s.gallery?.archive&&(this.Gs=1,this.Us=s.gallery.archiveLayerOffset??0),i.version&&3.1>=parseFloat(i.version)&&(this.Zs=8),i.is360&&(s.limitToCoverScale=0);const h=!!s.limitToCoverScale,e=h||"cover"==s.initType;t.Ft&&this.micrio._e.set(0);const r=[.5,.5],o=s.focus,n=!!i.spacesId;o&&(isNaN(o[0])||null===o[0]||(r[0]=o[0]),isNaN(o[1])||null===o[1]||(r[1]=o[1]));const a=s._360?.video,c=i.is360&&a&&(a.src||"video"in a&&a.video),l=!!this.#Ki&&"switch"==s.gallery?.type,u=Math.max(1,s.omni?.layers?.length??1);s.omni&&(s.omni.layerStartIndex=Math.min(u-1,s.omni?.layerStartIndex??0));const d=new jt(this,i.width,i.height,t.$t,h,i.tileSize??1024,i.is360??0,t.Ft,!!i.isDeepZoom,s.freeMove??0,e,s.zoomLimit||1,0!=s.zoomLimitDPRFix?this.micrio.canvas.getRatio(t.$settings):1,s.camspeed??1,t.camera.rotationY,l,!!s.gallery?.isSpreads&&"swipe"==s.gallery.type,t.Ot,s.pinchZoomOutLimit??0,u,!(!i.isSingle&&!c),s.omni?.layerStartIndex??0,0);t.ot=1,d.Sh=t,this.#ss({canvas:d,micrioImage:t,camera:t.camera}),this.#Yi.push(t),this.#ls(t),t.opts.area&&t.camera.setArea(t.opts.area,{direct:1,noDispatch:1,noRender:1}),s?.restrict&&t.camera.setLimit(s.restrict),s?.crossfadeDuration&&(this.zh=s.crossfadeDuration),s?.embedFadeDuration&&(this.eh=s.embedFadeDuration),void 0!==s?.dragElasticity&&(this.Mi=s.dragElasticity),s?.skipBaseLevels&&(this.uh=s.skipBaseLevels),s?.omni&&(d.gs=-(s.omni.distance??0),d.ps=s.omni.fieldOfView??0,d._s=s.omni.verticalAngle??0,d.Ms=s.omni.offsetX??0,t.state.view.set([0,0,1,1])),this.micrio.hasAttribute("data-limited")&&t.canvas&&(t.canvas.ah=1),d.te(),this.Ph>0&&this.#us(this.Ph-1);const f=B(t.state.view)||s.view;let m;!f||0==f[0]&&0==f[1]&&1==f[2]&&1==f[3]?!n&&i.is360||!r||"0.5,0.5"==r.toString()||(d.camera.setCoo(r[0],r[1],0),s.focus=void 0):d.O(f[0]+f[2]/2,f[1]+f[3]/2,f[2],f[3],0,0,0,0),this.#Gi.push(t.video.subscribe(t=>{m&&m.removeEventListener("play",this.render),m=t??void 0,m&&m.addEventListener("play",this.render)})),t.Ft&&t.visible.set(1),this.#hs(t)}#ls(t){const i=this.#is.get(t).canvas;t.camera.A(i)}#hs(t){if(t&&(!t.ot||t!==this.#ts?.micrioImage)&&!this.ee)if(t.ot){if(t!==this.#ts?.micrioImage){const i=this.#is.get(t);if(!i)return;if(i.canvas.ds)return;const s=t.P&&this.#ts?this.#ts.canvas.F.U:0;if(this.#ts=i,t.P&&!this.re){const h=(this.$h+.5)%1*Math.PI*2;i.canvas.q(h-t.camera.rotationY,s,1)}0===i.canvas.Eh&&i.canvas.Yh(),t.$settings.omni?.layerStartIndex&&t.state.layer.set(t.$settings.omni.layerStartIndex),this.re=0,this.ready=1,this.render()}}else{if(!B(this.micrio.current)||!t.$info.isIIIF&&t.$info.id!=B(this.micrio.current).id)return;this.#cs(t),t.Yt.length&&t.Yt.forEach(i=>this.Ut(i,t))}}we(t){t.ot||this.#cs(t)}ve(t){if(!t.ot)throw new Error("Canvas is not placed yet");const i=this.#is.get(t);i&&(i.canvas.he(),this.#is.delete(t),this.render())}render(){this.ee||q.request(this.#ds)}#ds=(t=performance.now())=>{if(this.micrio.isConnected&&this.micrio.$current&&!this.ee){this.#Qi=0,(this.Rh(t)||this.micrio.ye||this.micrio.events.isNavigating||0==this.micrio.$current?.It?.paused)&&this.render(),this.#Ki&&this.#rs(),this.#Bi.clear();for(let t=0;t<this.Ch.length;t++)this.Ch[t].jh();this.micrio.events.Tt("draw"),this.#fs(),this.micrio.Ht.be()}};Rh(t){this.hh=1e3/Math.min(33,t-this.now),this.now=t,this.Nh=0,this.Wh=0,this.Zh=0;for(let i=0;i<this.Ch.length;i++)this.Ch[i].Rh();return this.Zh||1>this.Hh}#os(){q.cancel(this.#ds)}#es(t){let i=this.#Hi.get(t);return i||(i={ue:0,$t:0},this.#Hi.set(t,i)),i}#us(t){this.#es(t).$t=1,this.#Ri.add(t)}#rs(){this.#Qi||(this.micrio.Ht.ke(),this.#Qi=1)}fe(t,i,s,h={}){if(this.#Hi.get(t)?.de||this.#Zi.has(t)||!h.force&&Pt()>=bt)return;const e=_t.db.has(i);e||this.micrio._e.set(1),this.#Zi.set(t,i),(e?_t.Jt(i):(t=>new Promise((i,s)=>{(()=>{if(!St){St=1;for(let t=0;bt>t;t++){const i=new Worker(yt);i.onmessage=i=>Lt(t,i.data.data,i.data.error,i.data.type),Tt.push(i)}URL.revokeObjectURL(yt)}})(),Et.push([t,i,s]),It()}))(i)).then(i=>this.#ms(t,i,s,h.noSmoothing)).catch(()=>this.#ps(t))}#ms(t,i,s,h){const e=this.#es(t);e.de=this.micrio.Ht.fe(i,e.de,h),void 0!==self.ImageBitmap&&i instanceof ImageBitmap&&i.close instanceof Function&&i.close(),e.ue=2,e.Me=setTimeout(()=>{this.#ps(t)},s?150:50)}#ps(t){this.#Zi.delete(t);const i=this.#Hi.get(t);i?.Me&&(clearTimeout(i.Me),i.Me=void 0),this.#Zi.size||this.micrio._e.set(0)}#ns(t){const i=this.#Hi.get(t);i&&(i.de&&(this.micrio.Ht.gl.deleteTexture(i.de),i.de=void 0),i.Me&&clearTimeout(i.Me),this.#Hi.delete(t))}#gs(t){for(let i=0;i<this.Ch.length;i++)if(this.Ch[i].ie(t))return 1;return 0}#fs(){const t=performance.now();for(const s of this.#Ni){if(this.#Bi.has(s))continue;if(this.#Ri.has(s))continue;const i=this.#Hi.get(s);if(i&&0!==i.ue)switch(i.$t=0,i.ue){case 1:const h=this.#Zi.get(s);h&&At(h),i.ue=0;break;case 2:this.#Zi.has(s)&&this.#ps(s),this.#ns(s);break;case 3:i.ce||(i.ce=t)}}const i=this.#Ni;this.#Ni=this.#Wi,this.#Wi=i,this.#Wi.clear();for(const s of this.#Bi)this.#Ni.add(s);for(const[s,h]of this.#Hi.entries())h.ce&&(t-h.ce)/1e3>this.#ji&&(this.#gs(s)?h.ce=t:this.#ns(s))}kh(t){this.el.set(t.width,t.height,t.left,t.top,t.ratio,t.scale,t.portrait);for(let i=0;i<this.Ch.length;i++)this.Ch[i].kh();this.ready&&(this.#os(),this.#ds())}#Ms=(t,i,s=0,h=1,e)=>{this.ee||(this.#Yi.push(t),this.#_s(t,i,s,h,e))};#_s=(t,i,s,h,e)=>{const r="$info"in t?t.$info:i.$info;if(!r)return;const o=t.opts.area??[0,0,1,1],n=t instanceof Mt?t.$settings._360??{}:{},a=this.#is.get(i);if(!a)return;let c;if(s){const i=a.canvas.Lh(o[0],o[1],o[0]+o[2],o[1]+o[3],r.width,r.height,r.tileSize??1024,r.isSingle??0,r.isDeepZoom??0,r.isVideo??0,h,n.rotX??0,n.rotY??0,n.rotZ??0,n.scale??1,e??0);return this.#Ui.set(i,t),this.#qi.set(t,i),t.ot=1,this.#ss({canvas:a.canvas,micrioImage:t}),t.Pt=this.Ph-1,void this.#us(t.Pt)}{if(!(t instanceof Mt))return;let s={};s=t.$settings.gallery?.archive||t.$settings.gallery?.type?{coverLimit:0,coverStart:0}:{coverLimit:!!t.$settings?.limitToCoverScale||!!i.$settings?.limitToCoverScale,coverStart:!(!t.$settings?.limitToCoverScale&&"cover"!=t.$settings?.initType&&"cover"!=i.$settings?.initType)},c=a.canvas.Ah(o[0],o[1],o[0]+o[2],o[1]+o[3],r.width,r.height,s),c.Sh=t}if(t.ot=1,this.#ss({canvas:c,micrioImage:t,camera:t.camera}),!s){this.#ls(t);const i=t.$settings.focus;i?c.camera.setCoo(i[0],i[1],0):c.ds&&c.O(c.view.Kt,c.view.Qt,c.view.width,c.view.height,0,0),c.te()}t.Pt=this.Ph-1,this.#us(t.Pt)};Ut(t,i,s={}){this.ee||t.ot||this.#Ms(t,i,1,s.opacity??1,"camera"in t&&s.asImage?void 0:s.fromScale)}Ah=(t,i)=>this.#Ms(t,i);xe(t,i,s=0){const h=this.#is.get(t),e=h?.canvas;if(e){if(h.camera)e.Eh=i;else{const t=e.images;for(let h=0;h<t.length;h++){const e=t[h];e.nt>0&&(e.Hs=i,s&&(e.opacity=i))}}this.render()}}Te(t,i){const s=this.#qi.get(t);s&&(s.Ws=i)}#as(){for(let t=0;t<this.Ch.length;t++)this.Ch[t].se()}he(t){for(let i=0;i<this.Ch.length;i++)if(this.Ch[i]===t)return void this.Ch.splice(i,1)}},Ut=class{Se=null;constructor(...t){}Ee(){}kh(){}Ce(){}},qt=256,Jt=class{gl;Ie=self;#ws;#vs;#ys;Gh;#bs=-1;#ks;#xs;#Ts;#Ss=null;#Es=null;#Cs=new Float32Array([-1,-1,0,1,-1,0,-1,1,0,-1,1,0,1,-1,0,1,1,0]);#Is=new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0]);#Ls=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);#Ps=.075;#As=-1;#Os=0;#Ds=-1;#Fs=-1;Le;#zs;constructor(t){this.#zs=t,q._(this.Ie)}Pe(){const t="WebGL2RenderingContext"in window,i=this.#zs.canvas.element.getContext(t?"webgl2":"webgl",{alpha:1,preserveDrawingBuffer:this.#zs.hasAttribute("data-preserve-drawing-buffer"),stencil:0,antialias:0,depth:0,desynchronized:0});if(t?!(i instanceof window.WebGL2RenderingContext):!(i instanceof window.WebGLRenderingContext))throw new y("WebGL context creation failed",{code:n});this.gl=i;const s=this.#zs.$current?.$settings.postProcessingFragmentShader;s&&(this.Le=new Ut(i,this.#zs,s),this.#zs.ye=1);const h=i.createProgram();if(!(h instanceof WebGLProgram))throw new y("Failed to create WebGL program",{code:c});if(this.#ws=h,this.Ae(this.#ws,i.VERTEX_SHADER,"uniform mat4 GLMatrix;attribute vec3 pos;attribute vec2 aTextureCoord;varying highp vec2 vTextureCoord;void main(){gl_Position=GLMatrix*vec4(pos,1.0);vTextureCoord=aTextureCoord;}"),this.Ae(this.#ws,i.FRAGMENT_SHADER,"precision mediump float;varying highp vec2 vTextureCoord;uniform sampler2D uSampler;uniform float opacity;uniform int noTexture;void main(){if(noTexture==1){gl_FragColor=vec4(.1,.1,.1,.1);}else{gl_FragColor=texture2D(uSampler,vTextureCoord)*opacity;}}"),i.linkProgram(this.#ws),!i.getProgramParameter(this.#ws,i.LINK_STATUS))throw new y("Shader link error: "+i.getProgramInfoLog(this.#ws),{code:c});i.useProgram(this.#ws),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.enable(i.BLEND),i.disable(i.DEPTH_TEST),i.clearColor(0,0,0,0);const e=i.getUniformLocation(this.#ws,"opacity");if(!e)throw new y("Failed to bind WebGL opacity uniform",{code:c});this.#vs=e;const r=i.getUniformLocation(this.#ws,"GLMatrix");if(!r)throw new y("Failed to bind WebGL matrix uniform",{code:c});this.Gh=r;const o=i.getUniformLocation(this.#ws,"noTexture");if(!o)throw new y("Failed to bind WebGL texture uniform",{code:c});this.#ys=o,this.#bs=i.getAttribLocation(this.#ws,"aTextureCoord");const a=i.createBuffer();if(!a)throw new y("Failed to create WebGL texture buffer",{code:l});this.#ks=a,i.bindBuffer(i.ARRAY_BUFFER,this.#ks),i.bufferData(i.ARRAY_BUFFER,Gt.oe,i.STATIC_DRAW);const u=i.createBuffer();if(!u)throw new y("Failed to create WebGL watermark buffer",{code:l});this.#Ts=u;const d=i.createBuffer();if(!d)throw new y("Failed to create WebGL geometry buffer",{code:l});this.#xs=d,this.#As=i.getAttribLocation(this.#ws,"pos"),this.#$s(),i.activeTexture(i.TEXTURE0),i.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}#$s(){const t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,this.#xs),t.bufferData(t.ARRAY_BUFFER,this.#zs.Oe.Th.byteLength,t.DYNAMIC_DRAW),t.enableVertexAttribArray(this.#bs),t.bindBuffer(t.ARRAY_BUFFER,this.#ks),t.vertexAttribPointer(this.#bs,2,t.FLOAT,0,0,0),t.enableVertexAttribArray(this.#As),t.bindBuffer(t.ARRAY_BUFFER,this.#xs),t.vertexAttribPointer(this.#As,3,t.FLOAT,0,0,0)}Ce(t=0){const i=this.gl;if(i){if(i.bindBuffer(i.ARRAY_BUFFER,null),i.bindTexture(i.TEXTURE_2D,null),i.deleteBuffer(this.#ks),i.deleteBuffer(this.#xs),i.deleteBuffer(this.#Ts),i.deleteProgram(this.#ws),this.Le?.Ce(),this.#Ss&&i.deleteTexture(this.#Ss),t){const t=i.getExtension("WEBGL_lose_context");t instanceof Object&&t.loseContext instanceof Function&&t.loseContext()}this.gl=null}}Ae(t,i,s){const h=this.gl.createShader(i);if(!h)throw new Error(`Could not create WebGL shader (type: ${i})`);if(this.gl.shaderSource(h,s),this.gl.compileShader(h),!this.gl.getShaderParameter(h,this.gl.COMPILE_STATUS))throw this.gl.deleteProgram(t),new y("Shader compilation failed: "+this.gl.getShaderInfoLog(h),{code:c});this.gl.attachShader(t,h),this.gl.deleteShader(h)}fe(t,i,s){const h=this.gl,e=i??h.createTexture();if(!e)throw new Error("Could not create WebGL texture");return h.bindTexture(h.TEXTURE_2D,e),t&&h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,t),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,h.LINEAR),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,s?h.NEAREST:h.LINEAR),e}me(t,i){const s=this.gl;s.bindTexture(s.TEXTURE_2D,t),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i),s.bindTexture(s.TEXTURE_2D,null)}ke(){const t=this.gl;this.Le&&t.bindFramebuffer(t.FRAMEBUFFER,this.Le.Se),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}be(){this.Le&&(this.Le.Ee(),this.gl.useProgram(this.#ws),this.#$s()),this.#Ss&&this.#Vs()}Uh(t,i=1,s=0){const h=this.gl,e=t?0:1;e!==this.#Ds&&(h.uniform1i(this.#ys,e),this.#Ds=e),i!==this.#Fs&&(h.uniform1f(this.#vs,i),this.#Fs=i),t&&h.bindTexture(h.TEXTURE_2D,t);const r=s?1536:6;s!=this.#Os&&(h.bindBuffer(h.ARRAY_BUFFER,this.#ks),h.bufferData(h.ARRAY_BUFFER,s?Gt.ne:Gt.oe,h.STATIC_DRAW),h.bindBuffer(h.ARRAY_BUFFER,this.#xs),this.#Os=s),h.bufferSubData(h.ARRAY_BUFFER,0,s?this.#zs.Oe.Th:this.#zs.Oe.mh),h.drawArrays(h.TRIANGLES,0,r)}Wt(t,i){if(!this.gl)return;if(t===this.#Es)return;this.#Es=t;const s=new Image;i&&(this.#Ps=i),s.crossOrigin="anonymous",s.src=t,s.onload=()=>{const t=mt("canvas",{props:{width:qt,height:qt}}),i=t.getContext("2d");if(!i)return;const h=Math.min(96/s.width,64/s.height),e=s.width*h,r=s.height*h;i.drawImage(s,(qt-e)/2,(qt-r)/2,e,r),this.#Ss&&this.gl.deleteTexture(this.#Ss),this.#Ss=this.fe(t);const o=this.gl;o.bindTexture(o.TEXTURE_2D,this.#Ss),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.REPEAT),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.REPEAT),o.bindTexture(o.TEXTURE_2D,null),this.#zs.Oe.render()}}#Vs(){const t=this.gl;if(!this.#Ss)return;t.useProgram(this.#ws),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.uniformMatrix4fv(this.Gh,0,this.#Ls),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.#Ss),t.uniform1i(this.#ys,0),t.uniform1f(this.#vs,this.#Ps),this.#Ds=0,this.#Fs=this.#Ps;const i=t.drawingBufferWidth/qt,s=t.drawingBufferHeight/qt,h=this.#Is;h[1]=s,h[2]=i,h[3]=s,h[8]=i,h[9]=s,h[10]=i,t.bindBuffer(t.ARRAY_BUFFER,this.#xs),t.bufferData(t.ARRAY_BUFFER,this.#Cs,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#As,3,t.FLOAT,0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this.#Ts),t.bufferData(t.ARRAY_BUFFER,this.#Is,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#bs,2,t.FLOAT,0,0,0),t.drawArrays(t.TRIANGLES,0,6),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.#$s(),this.#Os=0}},Kt=class{element=mt("canvas");#Ys;viewport={width:0,height:0,left:0,top:0,ratio:0,scale:0,portrait:0};isMobile=R(0);get $isMobile(){return B(this.isMobile)}#zs;constructor(t){this.#zs=t,this.element.className="micrio",this.onresize=this.onresize.bind(this),self.ResizeObserver&&(this.#Ys=new self.ResizeObserver(this.onresize))}place(){if(this.element.parentNode)return;const t=this.#zs.querySelector("img.preview");this.#zs.insertBefore(this.element,t?t.nextSibling:this.#zs.firstChild)}hook(){this.onresize(),this.#Ys?this.#Ys.observe(this.element):window.addEventListener("resize",this.onresize)}unhook(){this.#Ys?this.#Ys.unobserve(this.element):window.removeEventListener("resize",this.onresize)}onresize(){const t=this.element.getBoundingClientRect();let i=t.width,s=t.height;if(!i||!s)return;const h=self.getComputedStyle(this.element),e=parseFloat(h.width);isNaN(e)||(s=parseFloat(h.height)*i/Math.max(1,e));const r=this.#zs.offsetWidth,o=this.#zs.hasAttribute("data-static")||!r?1:Math.floor(i)/r;i/=o,s/=o;const n=1!=o?1:this.getRatio(),a=this.viewport;if(a.width==i&&a.height==s&&a.ratio==n&&a.scale==o)return;a.width=i,a.height=s,a.ratio=n,a.scale=o,a.top=t.top,a.left=t.left,a.portrait=window.matchMedia("(orientation: portrait)")?.matches??s>i,this.#zs.Ht.gl&&(this.element.width=i*n,this.element.height=s*n,this.#zs.Ht.gl.viewport(0,0,a.width*a.ratio,a.height*a.ratio),this.#zs.Ht.Le?.kh(),this.#zs.Oe.kh(a)),this.#zs.events.Tt("resize",t);const c=/mobile/i.test(navigator.userAgent);c!==this.$isMobile&&this.isMobile.set(c)}getRatio=(t=this.#zs.$current?.$settings??{})=>!vt.iOS&&!t?.noRetina&&self.devicePixelRatio&&Math.max(1,Math.min(2,self.devicePixelRatio))||1;setMargins(t,i){this.#zs.Oe.ready&&(this.#zs.Oe.el.fi=t,this.#zs.Oe.el.mi=i)}},Qt={passive:1},ti={passive:1,capture:1},ii={passive:0};function si(t){t.stopPropagation(),t.preventDefault()}var hi=class{#Xs=0;#Rs;constructor(t){this.#Rs=t}hook(){this.#Xs||(this.#Xs=1,this.#Rs.De.addEventListener("dragstart",si),this.#Rs.De.addEventListener("pointerdown",this.start,Qt),self.addEventListener("pointercancel",this.#Bs,Qt),this.#Rs.De.setAttribute("data-hooked",""))}unhook(){this.#Xs&&(this.#Xs=0,this.#Rs.De.removeEventListener("pointerdown",this.start,Qt),this.#Rs.De.removeEventListener("dragstart",si),self.removeEventListener("pointercancel",this.#Bs,Qt),this.#Rs.De.removeAttribute("data-hooked"))}start=(t,i=0,s=0)=>{if(0!=t.button||"touch"==t.pointerType&&this.#Rs.Fe)return;if(!(i||t.target==this.#Rs.ze||t.target instanceof Element&&t.target.closest("[data-scroll-through]")))return;if(this.#Rs.De.$current?.Ot&&t.shiftKey)return;if(this.#Rs.$e)return;if(this.#Rs.Ve)return void(t instanceof TouchEvent&&t.touches.length>1&&this.stop());const h=this.#Rs.Jt({x:t.clientX,y:t.clientY});h&&(this.#Rs.Ve=1,this.#Rs.Xe.Ye.As=[t.clientX,t.clientY,performance.now()],this.#Rs.Xe.Ye.Re=h,this.#Rs.De.addEventListener("pointermove",this.#Ns,Qt),this.#Rs.De.addEventListener("pointerup",this.stop,Qt),this.#Rs.De.setAttribute("data-panning",""),h.canvas?.Ji.stop(),s||h.camera.stop(),this.#Rs.De.Oe.render(),this.#Rs.Tt("panstart"))};#Ns=t=>{const i=t.clientX,s=t.clientY,h=Math.hypot(this.#Rs.Xe.Ye.As[0]-t.clientX,this.#Rs.Xe.Ye.As[1]-t.clientY);!this.#Rs.Be&&h>10&&(this.#Rs.Be=t.pointerId,this.#Rs.De.setPointerCapture(t.pointerId)),this.#Rs.Xe.Ye.Ne&&this.#Rs.Xe.Ye.Re?.camera.pan(this.#Rs.Xe.Ye.Ne[0]-i,this.#Rs.Xe.Ye.Ne[1]-s),this.#Rs.Xe.Ye.Ne=[i,s]};stop=(t,i=0,s=0)=>{if(this.#Rs.Ve){if(this.#Rs.Ve=0,this.#Rs.Xe.Ye.Ne=void 0,this.#Rs.De.removeEventListener("pointermove",this.#Ns,Qt),this.#Rs.De.removeEventListener("pointerup",this.stop,Qt),this.#Rs.Be&&this.#Rs.De.releasePointerCapture(this.#Rs.Be),this.#Rs.Be=void 0,this.#Rs.De.removeAttribute("data-panning"),t&&0==i){const i=this.#Rs.Xe.Ye.Re??this.#Rs.Jt({x:t.clientX,y:t.clientY});i&&(i.canvas?.Ji.start(),this.#Rs.De.Oe.render())}this.#Rs.Xe.Ye.Re=void 0,s||this.#Rs.Tt("panend",t?{duration:performance.now()-this.#Rs.Xe.Ye.As[2],movedX:t.clientX-this.#Rs.Xe.Ye.As[0],movedY:t.clientY-this.#Rs.Xe.Ye.As[1]}:void 0)}};#Bs=t=>{this.#Rs.Ve&&(void 0!==this.#Rs.Be&&t.pointerId!==this.#Rs.Be||this.stop(void 0,1,1))}};function ei(t,i){t.Xe.qi.We=t.Ve,i.stop(void 0,0,1),t.$e=1,t.De.setAttribute("data-pinching",""),t.He=void 0,t.Xe.qi.Re&&t.Xe.qi.Re.canvas?.camera.Qi(),t.De.Oe.render(),t.Tt("pinchstart"),t.Fe&&t.Tt("panstart")}function ri(t,i,s){const h=t.Xe.qi,e=h.Re;e&&(t.He=Math.hypot(i.x-s.x,i.y-s.y)/h.Ze,e.canvas?.camera.qi(i.x,i.y,s.x,s.y))}function oi(t,i,s){if(!t.$e)return;t.$e=0,self.removeEventListener("touchmove",s,{passive:1,capture:1}),self.removeEventListener("pointermove",s,{passive:1,capture:1}),t.De.removeAttribute("data-pinching");const h=t.Xe.qi.Re;h&&(h.canvas?.camera.ts(),t.De.Oe.render()),t.Xe.qi.Re=void 0,t.He=void 0,t.Tt("pinchend"),t.Fe&&!t.Xe.qi.We&&t.Tt("panend")}function ni(t,i,s){if(s instanceof TouchList?1===s.length:1===s.size){let h;if(s instanceof TouchList){const i=s[0];h={button:0,target:t.ze,clientX:i.clientX,clientY:i.clientY}}else{const[i,{x:e,y:r}]=s.entries().next().value;h={button:0,pointerType:"touch",target:t.ze,clientX:e,clientY:r,pointerId:i}}i.start(h,1,1)}}var ai=class{#Rs;#Ws;constructor(t,i){this.#Rs=t,this.#Ws=i}hook(){vt.iOS&&this.#Rs.je&&this.#Rs.De.addEventListener("touchstart",this.start,Qt)}unhook(){vt.iOS&&this.#Rs.je&&this.#Rs.De.removeEventListener("touchstart",this.start,Qt),self.removeEventListener("touchmove",this.#Ns,ti),self.removeEventListener("touchend",this.stop,ti)}start=t=>{if(!(vt.hasTouch&&t instanceof TouchEvent))return;if(this.#Rs.Fe&&2>t.touches.length)return;if(this.#Rs.$e||2!=t.touches.length)return void this.stop(t);t.stopPropagation();const i=t.touches;this.#Rs.Xe.qi.Re=this.#Rs.Jt({x:i[0].clientX,y:i[0].clientY}),this.#Rs.Xe.qi.Ze=Math.hypot(i[0].clientX-i[1].clientX,i[0].clientY-i[1].clientY),self.addEventListener("touchmove",this.#Ns,ti),self.addEventListener("touchend",this.stop,ti),ei(this.#Rs,this.#Ws)};#Ns=t=>{if(!(vt.hasTouch&&t instanceof TouchEvent))return;const i=t.touches;if(2>i?.length)return;const s={x:i[0].clientX,y:i[0].clientY},h={x:i[1].clientX,y:i[1].clientY};ri(this.#Rs,s,h)};stop=t=>{oi(this.#Rs,0,this.#Ns),t instanceof TouchEvent&&ni(this.#Rs,this.#Ws,t.touches)}},ci=class{#Rs;#Ws;constructor(t,i){this.#Rs=t,this.#Ws=i}hook(){this.#Rs.De.addEventListener("pointerdown",this.start,Qt),self.addEventListener("pointerup",this.end,Qt),self.addEventListener("pointercancel",this.end,Qt)}unhook(){this.#Rs.De.removeEventListener("pointerdown",this.start,Qt),self.removeEventListener("pointerup",this.end,Qt),self.removeEventListener("pointercancel",this.end,Qt),self.removeEventListener("pointermove",this.#Ns,ti),this.#Rs.Ge.clear()}start=t=>{if("touch"===t.pointerType&&t.target==this.#Rs.ze&&(this.#Rs.Ge.set(t.pointerId,{x:t.clientX,y:t.clientY}),2===this.#Rs.Ge.size&&!this.#Rs.$e)){const t=Array.from(this.#Rs.Ge.values()),i=t[0],s=t[1];this.#Rs.Xe.qi.Re=this.#Rs.Jt({x:i.x,y:i.y}),this.#Rs.Xe.qi.Ze=Math.hypot(i.x-s.x,i.y-s.y),self.addEventListener("pointermove",this.#Ns,ti),ei(this.#Rs,this.#Ws)}};#Ns=t=>{if("touch"!==t.pointerType)return;if(!this.#Rs.Ge.has(t.pointerId))return;if(this.#Rs.Ge.set(t.pointerId,{x:t.clientX,y:t.clientY}),!this.#Rs.$e||2!==this.#Rs.Ge.size)return;const i=Array.from(this.#Rs.Ge.values()),s={x:i[0].x,y:i[0].y},h={x:i[1].x,y:i[1].y};ri(this.#Rs,s,h)};end=t=>{"touch"===t.pointerType&&(this.#Rs.Ge.delete(t.pointerId),this.#Rs.$e&&2>this.#Rs.Ge.size&&(self.removeEventListener("pointermove",this.#Ns,ti),oi(this.#Rs,0,this.#Ns),ni(this.#Rs,this.#Ws,this.#Rs.Ge)))}},li=class{#Rs;constructor(t){this.#Rs=t}hook(){vt.OSX&&(this.#Rs.De.addEventListener("gesturestart",this.#Hs,ii),this.#Rs.De.addEventListener("gesturechange",this.#Hs,ii),this.#Rs.De.addEventListener("gestureend",this.#Hs,ii))}unhook(){vt.OSX&&(this.#Rs.De.removeEventListener("gesturestart",this.#Hs,ii),this.#Rs.De.removeEventListener("gesturechange",this.#Hs,ii),this.#Rs.De.removeEventListener("gestureend",this.#Hs,ii))}#Zs(t){if("scale"in t&&"number"==typeof t.scale){const i=t;return{scale:i.scale,clientX:i.clientX,clientY:i.clientY}}return null}#Hs=t=>{const i=this.#Zs(t);if(!i)return;if(1===i.scale)return void(this.#Rs.Ue=1);if(t.target instanceof Element&&t.target!=this.#Rs.ze)return;const s=this.#Rs.Ue-i.scale;this.#Rs.Ue=i.scale,t.stopPropagation(),t.preventDefault(),"gesturechange"==t.type&&this.#Rs.Jt({x:i.clientX,y:i.clientY})?.camera.zoom(s*this.#Rs.De.canvas.viewport.height,0,i.clientX,i.clientY)}},ui=class{hooked=0;#js=-1;#Rs;constructor(t){this.#Rs=t}hook(){this.hooked||(this.#Rs.De.addEventListener("wheel",this.handle,ii),this.hooked=1)}unhook(){this.#Rs.De.removeEventListener("wheel",this.handle,ii),this.hooked=0}handle=(t,i=0,s=0)=>{if(!(t instanceof WheelEvent))return;if(this.#Rs.qe&&!t.ctrlKey)return;if(!i&&t.target instanceof Element&&t.target!=this.#Rs.ze&&!t.target.classList.contains("marker")&&!t.target.closest("[data-scroll-through]"))return;let h=t.deltaY;t.ctrlKey&&(this.#Rs.Je=1);const e=this.#Rs.qe&&10*h%1==0,r=this.#Rs.Je&&!e,o=vt.firefox||t.ctrlKey||!r;if(this.#Rs.Fe&&this.#Rs.De.$current?.camera.isZoomedOut())return;t.stopPropagation(),t.preventDefault(),(vt.OSX||r)&&t.ctrlKey&&(h*=10);const n={x:t.clientX,y:t.clientY},a=this.#Rs.Jt(n);if(a){if(o){const t=this.#Rs.De.canvas.viewport;let i=0;const e=this.#Rs.De.getBoundingClientRect();a.camera.zoom(1*h/Math.sqrt(t.scale),0,n.x-s-e.left,n.y-e.top-i)}else a.camera.pan(t.deltaX,t.deltaY);this.#Rs.Ke=1,clearTimeout(this.#js),this.#js=setTimeout(this.#Gs,50)}};#Gs=()=>{this.#Rs.Ke=0}},di=class{static Qe=0;static tag="micrio-grid"},fi=class{#Rs;constructor(t){this.#Rs=t}hook(){document.addEventListener("keydown",this.#Hs)}unhook(){document.removeEventListener("keydown",this.#Hs)}#Hs=t=>{if(this.#Rs.Ve||this.#Rs.$e||!this.#Rs.De.$current?.camera)return;if(di.Qe&&(t.key.startsWith("Arrow")||"Enter"==t.key||" "==t.key||"Escape"==t.key))return;const i=this.#Rs.De.$current.camera,s=this.#Rs.De.offsetWidth/2,h=this.#Rs.De.offsetHeight/2;let e=0,r=0;switch(t.key){case"ArrowUp":r-=h;break;case"ArrowDown":r+=h;break;case"ArrowLeft":e-=s;break;case"ArrowRight":e+=s;break;case"+":case"=":i.zoom(-200,150).catch(()=>{});break;case"-":case"_":i.zoom(200,150).catch(()=>{});break;default:return}t.preventDefault(),t.stopPropagation(),0==e&&0==r||i.pan(e,r,150)}},mi=class{#Rs;constructor(t){this.#Rs=t}hookTap(){this.#Rs.ze.addEventListener("touchstart",this.#Us)}unhookTap(){this.#Rs.ze.removeEventListener("touchstart",this.#Us)}hookClick(){this.#Rs.ze.addEventListener("dblclick",this.#qs)}unhookClick(){this.#Rs.ze.removeEventListener("dblclick",this.#qs)}#Us=t=>{if(!(vt.hasTouch&&t instanceof TouchEvent))return;const i=performance.now();1==t.touches.length&&250>i-this.#Rs.Xe.ir.tr&&(t.stopPropagation(),t.preventDefault(),this.#qs(t)),this.#Rs.Xe.ir.tr=i};#qs=t=>{const i=t instanceof TouchEvent?t.touches[0]:t;this.#Rs.Jt({x:i.clientX,y:i.clientY})?.camera.zoom(-300,500,i.clientX,i.clientY,1,!this.#Rs.De.$current?.album).catch(()=>{})}},pi=class{ze;enabled=R(0);get $enabled(){return B(this.enabled)}#Xs=0;Ve=0;$e=0;Ke=0;qe=0;Fe=0;Ue=1;je=vt.hasTouch&&"ontouchstart"in self;Je=0;#Js;#Ks;Xe={Ye:{Ne:void 0,As:[0,0,0],Re:void 0},ir:{tr:0},qi:{Re:void 0,Ze:0,We:0}};He;Ge=new Map;Be;De;#Ws;#Qs;#th;#ih;#sh;#hh;#eh;constructor(t){this.De=t,this.ze=t.canvas.element,this.#Ws=new hi(this),this.#Qs=new ai(this,this.#Ws),this.#th=new ci(this,this.#Ws),this.#ih=new li(this),this.#sh=new ui(this),this.#hh=new fi(this),this.#eh=new mi(this),this.enabled.subscribe(t=>{t?this.hook():this.unhook()}),t.jt.subscribe(t=>this.#Ks=t),t.current.subscribe(t=>{t&&!this.#Js&&(this.#Js=t.$settings,!t.error&&this.#Js.hookEvents&&this.enabled.set(1))})}get isNavigating(){return this.Ve||this.$e||this.Ke}Tt(t,i){this.De.dispatchEvent(new CustomEvent(t,void 0!==i?{detail:i}:void 0))}Jt(t){if(!this.#Ks)return;const i=this.De.offsetWidth,s=this.De.offsetHeight,h=Math.max(0,Math.min(1,t.x/i)),e=Math.max(0,Math.min(1,t.y/s)),r=this.#Ks.filter(t=>!t.Ft&&!t.zt),o=this.De.Ch.find(t=>t.grid);if(o)return o.grid?.sr(t.x,t.y)??this.De.$current;const n=1==r.length?r[0]:r.find(({grid:t,opts:{area:i}})=>t?0:i?!(h<i[0]||h>i[0]+i[2]||e<i[1]||e>i[1]+i[3]):0);return n&&!n.grid?n:this.De.$current}hr(){return this.#Ks}hook(){if(this.#Xs)return;this.#Xs=1;const t=this.#Js;t&&(this.Fe=!!t.twoFingerPan,this.Fe?this.De.setAttribute("data-can-pan",""):this.De.removeAttribute("data-can-pan"),t?.hookKeys&&this.hookKeys(),t.hookDrag&&this.hookDrag(),t.noZoom||this.hookZoom())}unhook(){this.#Xs&&(this.#Xs=0,this.Ge.clear(),this.unhookDrag(),this.unhookZoom(),this.unhookKeys())}hookKeys(){this.#hh.hook()}unhookKeys(){this.#hh.unhook()}hookZoom(){const t=this.#Js;this.qe=!!t?.controlZoom,t&&!t.hookPinch||this.hookPinch(),(!t||t.hookScroll||this.qe)&&this.hookScroll(),this.De.canvas.$isMobile?this.#eh.hookTap():this.#eh.hookClick()}unhookZoom(){this.unhookPinch(),this.unhookScroll(),this.De.canvas.$isMobile?this.#eh.unhookTap():this.#eh.unhookClick()}get scrollHooked(){return this.#sh.hooked}hookScroll(){this.#sh.hook()}unhookScroll(){this.#sh.unhook()}hookPinch(){vt.iOS&&this.je?this.#Qs.hook():this.#th.hook(),this.#ih.hook()}unhookPinch(){vt.iOS&&this.je?this.#Qs.unhook():this.#th.unhook(),this.#ih.unhook()}hookDrag(){this.#Ws.hook()}unhookDrag(){this.#Ws.unhook()}},gi=class{static er(t,i){return null}static async rr(t,i,s){return null}async nr(t){}ar(t){}async gotoId(t){}},Mi=navigator?.language??"en-EN",_i=("Intl"in self&&Intl.DisplayNames&&new Intl.DisplayNames([Mi],{type:"language"}),["ar","dv","fa","he","iw","ku","ps","sd","syr","ug","ur","yi"]),wi={},vi=R(void 0),yi=Symbol("micrio-provides"),bi=class extends HTMLElement{static tag;static cr=new Map;#rh=[];#oh=null;lr={};connectedCallback(){this.ur?.(),this.Ee?.()}disconnectedCallback(){this.dr?.(),this.#fs()}kt(t){Object.assign(this.lr,t),this.isConnected&&this.Ee()}Ee(){}mr(t){this.#rh.push(t)}pr(t){return t===this.#oh?(this.gr?.(),0):(this.#oh=t,1)}Mr(t,i,s){let h=i;s?.skipFirst&&(h=(t=>{let i=1;return s=>{i?i=0:t(s)}})(h)),s?.defer&&(h=(t=>{let i,s=0;return h=>{i=h,s||(s=1,Promise.resolve().then(()=>{s=0,t(i)}))}})(h)),this.mr(t.subscribe(h))}_r(t,i){this.Mr(t,i,{skipFirst:1})}wr(t,i){this.Mr(t,i,{skipFirst:1,defer:1})}vr(t,i){this.mr(t.subscribe(i))}yr(t,i){let s=this[yi];s||(this[yi]=s=new Map),s.set(t,i)}br(t){let i=this;for(;i;){const s=i[yi];if(s?.has(t))return s.get(t);i=i.parentElement}}kr(){return this.br("micrio")}#fs(){for(const t of this.#rh)t();this.#rh=[]}},ki=new Map;function xi(t,i,s){const h=ki.get(i);if(!h)return;ki.delete(i),h.unsub?.(),h.unsubData?.();const e=t.canvas.viewport.portrait;h.secondary.camera.setArea(e?[0,1,1,0]:[1,0,0,1],{direct:1}),i.camera.setArea([0,0,1,1]),s?.keepSecondaryCanvas||setTimeout(()=>t.Oe.ve(h.secondary),400),t.events.Tt("splitscreen-stop",h.secondary)}var Ti=class extends bi{static get observedAttributes(){return["id","muted","data-limited","lang"]}static VERSION;static tag="micr-io";#nh=0;Ch=[];current=R();jt=R([]);#ah;get $current(){return this.#ah}get camera(){return this.#ah?.camera}canvas=new Kt(this);events=new pi(this);state=new et.Main;St=[];xt=[];barebone=R(0);Ht=new Jt(this);Oe=new Gt(this);Tr;defaultSettings;_e=R(1);Gt=R(0);Sr=R("1"==localStorage.getItem(I));Bt=R();spaceData;bundleTours;gallery;ye=0;#ch;#lh;#uh=0;attributeChangedCallback(t,i,s){switch(t){case"id":if(!this.isConnected||!s)return;this.#nh?this.open(s):this.#dh();break;case"muted":B(this.Sr)!==this.hasAttribute("muted")&&this.Sr.set(this.hasAttribute("muted"));break;case"data-limited":this.Oe?.mh&&this.$current?.canvas&&(this.$current.canvas.ah=!!s);break;case"lang":{let t=B(this.Bt);if(t!=s){this.Bt.set(s);const i=s.split("-")[0];vi.set(wi[s]??wi[i]??wi.en),s&&(h=s,_i.some(t=>h===t||h.startsWith(t+"-"))?this.setAttribute("dir","rtl"):this.removeAttribute("dir")),t&&this.events.Tt("lang-switch",s)}break}}var h}ur(){this.yr("micrio",this),this.canvas.place(),this.id&&!this.#nh&&this.#dh(),"muted"in this||(Object.defineProperty(this,"muted",{get(){return B(this.Sr)},set(t){t?this.setAttribute("muted",""):this.removeAttribute("muted")}}),this.Mr(this.Sr,t=>{this.muted=t,t?(localStorage.setItem(I,"1"),this.events.Tt("audio-mute")):(localStorage.removeItem(I),this.events.Tt("audio-unmute"))}));const t=()=>{const t=B(this.jt).filter(t=>t.id),i=this.Oe.ee?this.#ah:1===t.length?t[0]:this.#ah;this.toggleAttribute("data-zoomed",!!i?.camera&&!!i.ot&&!i.camera.isZoomedOut())};this.Mr(this.current,i=>{this.#ah=i,t()}),this.Mr(this.jt,()=>t());const i=()=>t();this.xt.push(i),this.mr(()=>{const t=this.xt.indexOf(i);0>t||this.xt.splice(t,1)});let s=0;const h=this._e.subscribe(t=>{if(t)return;h(),this.setAttribute("data-loaded",""),this.Mr(this.Gt,t=>{t?this.setAttribute("data-switching",""):(s||N().then(()=>this.events.Tt("show",this)),s=1,this.removeAttribute("data-switching"))});const i=this.querySelector("img.preview");i&&setTimeout(()=>i.remove(),500)})}addEventListener(t,i,s){super.addEventListener(t,i,s)}removeEventListener(t,i,s){super.removeEventListener(t,i,s)}destroy(){if(this.current.set(void 0),this.events.enabled.set(0),this.canvas.unhook(),this.Oe.ge(),this.Tr&&this.Tr.remove(),delete this.Tr,this.Ht.Ce(1),this.#ch?.destroy(),this.#lh){for(const t of["mousemove","pointerdown","wheel","focusin"])this.removeEventListener(t,this.#lh);window.removeEventListener("keydown",this.#lh),this.#lh=void 0}this.#nh=0}async#fh(t){const i=await x(t).catch(t=>{this.#mh(t)});if(!i)return;let s;try{s=gi.er(i,this.Oe)}catch(o){return void this.#mh(o)}if(s)return void s.nr(this);let h=i["@id"]||i.id||t.replace(/info.json$/,""),e=i.width,r=i.height;if("Manifest"===i.type){const t=i.items?.[0]?.items?.[0]?.items?.[0]?.body,s=t?.service?.[0];s?.id&&(h=s.id,e=t.width,r=t.height,i.preferredFormats=s.preferredFormats)}return{id:h,info:{id:h,path:h.replace(/\/[^/]*$/,""),width:e,height:r,version:E,isIIIF:1,is360:""==this.dataset.is360,tiles:i.tiles,preferredFormats:i.preferredFormats}}}async#dh(){if(this.#nh)return;this.#nh=1,await N();const i=this.#ph();if(i.settings||(i.settings={}),this.defaultSettings&&t(this.defaultSettings,i.settings),i.settings.noLogo||this.#gh(!!i.settings.noUI,0),i.id&&S(i.id)&&!this.hasAttribute("width")&&!this.hasAttribute("height")){const t=await X.i(i.id).catch(()=>{});if(t&&t.info?.albumId){const s=await gi.rr(t.info.albumId,this.Oe,{startId:i.id,onProgress:t=>this.Tr?.kt?.({loadingProgress:t})}).catch(()=>null);if(s)return void s.nr(this)}}if(i.id&&i.id.startsWith("http")){const t=await this.#fh(i.id);if(!t)return;return t.settings=i.settings,void this.open(t)}this.ye=!!i.settings.keepRendering,this.events.Tt("print",i);const s=()=>{i.id&&this.open(i.id)};if(void 0!==i.settings.lazyload&&"IntersectionObserver"in window){const t=new IntersectionObserver(i=>{i[0]&&i[0].isIntersecting&&(t.unobserve(this),s())},{rootMargin:100*i.settings.lazyload+"% 0px"});t.observe(this)}else i.id&&q.request(s)}#gh(t,i){this.Tr?this.Tr.kt?.({noHTML:t,noLogo:i}):this.Tr=mt("micrio-main",{setProps:{noHTML:t,noLogo:i},parent:this})}#mh(t){const i=(s=t??"An unknown error has occurred")instanceof y?s.displayMessage:(s instanceof Error?s.message:s)??"An unknown error has occurred";var s;console.error("Error:",i+(t instanceof y?` (${t.code}: ${t.message})`:"")),this.Tr||this.#gh(0,0),this.Tr?.kt?.({error:i}),this._e.set(0)}async open(i,s={}){this.#nh||await this.#dh();const h=this.#ph();let e;if("string"==typeof i&&i.startsWith("http")){const t=await this.#fh(i);if(!t)return this.$current;e=t}else if("string"==typeof i){if(this.gallery)return await this.gallery.gotoId(i)??this.$current;if(e=await X.i(i),!e)return this.#mh('Image with id "'+i+'" not found, published, or embeddable.'),this.$current}else e=i;if(e.settings||(e.settings={}),h.settings?.gallery?.archive&&!/\.\d+$/.test(h.settings.gallery.archive)&&delete h.settings.gallery.archive,"string"==typeof i&&t(h.settings,e.settings),this.defaultSettings&&t(this.defaultSettings,e.settings),e.settings?.gallery?.settings&&t(e.settings.gallery.settings,e.settings),t(L,e.settings,{noOverwrite:1}),this.$current&&e.id==this.$current?.id)return this.$current;this.$current&&!s.gridView&&(t=>{for(const i of[...ki.keys()])xi(t,i)})(this),!s.gridView&&this.$current&&this.Gt.set(1),this.#gh(!!e.settings.noUI,!!e.settings.noLogo);let r=this.Ch.find(t=>e.id&&t.id==e.id),o=0;const n=this.Ch[0]?.grid;if(!r&&n){const t=e.id?n.Er.find(t=>t.id==e.id):void 0;o=!!t,r=e.id?t:this.Ch[0],o&&!n.Cr()&&this.current.set(this.Ch[0])}if(!r){if(this.Ch.length){const t=this.Ch[0];e.info.path=t.Lt,e.info.lang=this.lang}this.Ch.push(r=new Mt(this.Oe,e))}if(s.gallery&&(s.gallery.ar(r),this.gallery=s.gallery),s.startView&&(r.state.view.set(e.settings.view=s.startView),r.ot&&r.engine.ready&&r.camera.setView(e.settings.view,{noRender:1})),this.lang||(this.lang="en"),!this.Oe.ee&&(this.Oe.ae(),!this.Ht.gl))try{this.Ht.Pe()}catch(a){return this.#mh(a),r}if(!this.#uh){switch(this.canvas.hook(),r.$settings?.theme){case"light":this.setAttribute("data-light-mode","");break;case"os":this.setAttribute("data-auto-scheme","")}this.#uh=1}N().then(()=>this.dispatchEvent(new CustomEvent("load",{detail:r})));const a=this.Oe;return a.$h=s.vector?.direction??0,a.Oh=s.vector?.distanceX??0,a.Dh=s.vector?.distanceY??0,a.re=!s.vector,!o||s.gridView&&n?.Ir.find(t=>t.id==e.id)?this.current.set(r):n?.gridFocus(r,{view:e.settings?.view}).then(()=>this.current.set(r)),r.Ft&&this._e.set(0),!r.$settings.micrioSplitLink||r.Ft||r.grid||N().then(()=>{this.$current===r&&(async(t,i,s,h)=>{if(ki.has(i))return;if(i.Ft||i.grid||(t=>{for(const i of ki.values())if(i.secondary===t)return 1;return 0})(i))return;const e=await X.i(s.micrioId);if(!e)return;const r=new Mt(t.Oe,e);t.Ch.push(r),t.Oe.we(r),r.$t=0,0!=h?.isPassive&&(r.zt=1);const o=t.canvas.viewport.portrait;i.camera.setArea(o?[0,0,1,.5]:[0,0,.5,1]),r.camera.setArea(o?[0,1,1,0]:[1,0,0,1],{direct:1}),r.camera.setArea(o?[0,.5,1,.5]:[.5,0,.5,1]);let n=null;0!=h?.isPassive&&(n=i.state.view.subscribe(t=>{t&&!r.camera.v&&r.camera.setView(t,{noLimit:1})}));let a=null;s.markerId&&(a=r.data.subscribe(t=>{if(!t)return;const i=t.markers?.find(t=>t.id===s.markerId);i?.view&&r.camera.flyToView(i.view,{isJump:1}),a?.()})),ki.set(i,{secondary:r,unsub:n,unsubData:a}),t.events.Tt("splitscreen-start",r)})(this,r,{micrioId:r.$settings.micrioSplitLink},{isPassive:!r.$settings.noFollow})}),r}close(t){this.Oe.ve(t)}#ph(){const t={gallery:{}},i={settings:t,id:this.id},s=(t,i,s)=>{const h=i.split(".");for(let e=0;e<h.length-1;e++)t=t[h[e]];t[h[h.length-1]]=s},h=(h,e)=>{for(const r of Object.keys(h)){const o=h[r],n=this.getAttribute(r),a=o.f||r.replace("data-",""),c=e(n,o);void 0!==c&&s(o.r?i:t,a,c)}};return h(P,t=>t||void 0),h(A,(t,i)=>{const s=null!=t&&(""===t||"true"===t);if(s||"false"===t)return i.n?!s:!!s}),h(O,(t,i)=>{if(void 0!==i.dN&&null==t&&(t=i.dN),null==t)return;const s=Number(t);return isNaN(s)?void 0:s}),h(D,t=>null!=t?t.split(",").map(Number):void 0),t.static&&(t.noUI=t.skipMeta=1,t.hookEvents=0),i}get lang(){return B(this.Bt)}set lang(t){this.setAttribute("lang",t)}},Si=class extends bi{static tag="micrio-error";Ee(){this.replaceChildren(),mt("div",{parent:this,children:[mt("span",{textContent:this.lr.message??"An unknown error has occurred"})]})}};customElements.define(Si.tag,Si);var Ei=class{constructor(...t){}destroy(){}},Ci=class extends bi{static tag="micrio-minimap";#Mh={image:null};#_h=null;#wh;#vh;#yh;#bh;#kh;ur(){this.#xh()}kt(t){void 0!==t.image&&t.image!==this.#Mh.image&&(this.#Mh.image=t.image,this.isConnected&&(this.#yh?.(),this.replaceChildren(),this.#_h=null,this.#xh()))}#xh(){const{image:t}=this.#Mh;if(!this.kr()||!t)return;const i=t.$info;if(!i)return;const s=t.camera,h=t.$settings,e=h.minimapWidth??200,r=h.minimapHeight??160,o=i.width/i.height,n=e/o>r?Math.round(r*o):e,a=e/o>r?r:Math.round(e/o),c=-s.rotationY/(2*Math.PI),l=self.crossOriginIsolated;let u=l?void 0:t.thumbSrc;const d=s=>{if(!s||!this.#_h)return;const h=this.#_h;h.clearRect(0,0,n,a),clearTimeout(this.#bh),this.classList.remove("hidden"),this.#bh=setTimeout(()=>this.classList.add("hidden"),2500);const e=!(!t.thumbSrc&&!u);if(i.is360){e&&(h.globalCompositeOperation="source-over",h.fillStyle="rgba(0,0,0,.45)",h.fillRect(0,0,n,a),h.globalCompositeOperation="destination-out");const t=K(s[0]+s[2]/2),i=Math.max(0,Math.min(1,s[1]+s[3]/2)),r=Math.round(t*n),o=Math.round(i*a),c=Math.max(1,Math.round(s[2]*n/2));h.fillStyle=e?"white":"rgba(255,255,255,.8)",h.fillRect(Math.round(r-c),0,2*c,a);const l=Math.max(1,Math.round(s[3]*a/2));h.fillRect(0,Math.round(o-l),n,2*l),h.beginPath(),h.arc(r,o,3,0,2*Math.PI),h.fill(),e&&(h.globalCompositeOperation="source-over")}else e?(h.globalCompositeOperation="source-over",h.fillStyle="rgba(0,0,0,.5)",h.fillRect(0,0,n,a),h.globalCompositeOperation="destination-out"):(h.fillStyle="rgba(0,0,0,.5)",h.fillRect(0,0,n,a)),h.beginPath(),h.fillStyle="white",h.rect(Math.floor(s[0]*n),Math.floor(s[1]*a),Math.ceil(s[2]*n),Math.ceil(s[3]*a)),e&&(h.fill(),h.globalCompositeOperation="source-over"),h.stroke()},f=t=>{if(!this.#vh)return;const i=Math.max(0,Math.min(1,(t.clientX-this.#vh.left)/this.#vh.width)),h=Math.max(0,Math.min(1,(t.clientY-this.#vh.top)/this.#vh.height));this.#wh?s.setView([i-this.#wh.width/2,h-this.#wh.height/2,this.#wh.width,this.#wh.height]):s.setCoo(i,h)},m=()=>{window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",m),this.#wh=void 0},p=mt("canvas",{props:{width:n,height:a},className:h.alwaysShowMinimap?"fixed":void 0,events:{mousedown:t=>{if(0!=t.button)return;window.addEventListener("mousemove",f),window.addEventListener("mouseup",m),this.#vh=p.getBoundingClientRect();const i=s.getView();i&&(this.#wh={width:i[2],height:i[3]}),f(t)}},parent:this});u&&(p.style.backgroundImage=`url('${u}')`,0!=c&&(p.style.backgroundPositionX=n*c+"px")),p.addEventListener("wheel",t=>{s.zoom(t.deltaY*(vt.firefox?50:1))},{passive:1}),this.#_h=p.getContext("2d"),this.#_h&&(this.#_h.lineWidth=1,this.#_h.strokeStyle="white"),l&&t.thumbSrc&&fetch(t.thumbSrc).then(t=>t.blob()).then(i=>{this.#kh&&URL.revokeObjectURL(this.#kh),this.#kh=URL.createObjectURL(i),u=this.#kh,p.style.backgroundImage=`url('${u}')`,d(B(t.state.view))}),this.#yh?.(),this.#yh=t.state.view.subscribe(d),this.mr(this.#yh)}dr(){clearTimeout(this.#bh),this.#kh&&URL.revokeObjectURL(this.#kh),this.#kh=void 0}};function Ii(t,i){if(i)for(let s,h=0;h<i.length;h++)if(i[h].id==t||(s=Ii(t,i[h].children)))return s??i[h]}customElements.define(Ci.tag,Ci);var Li=class extends bi{static tag="micrio-main";#Mh={};#_;#Js;#Th;#Sh=0;#Eh;#Ch;#Ih=new Map;#k=new Map;#Lh;#Ph(){this.#Lh?.destroy(),this.#Lh=void 0}#Ah=["audio","media","logo","orgLogo","details","toolbar","grid","gallery","controls","embeds","markers","popup","tour","popover","minimap","error","progress"];#Oh=new Map;#Dh(t){for(let i=this.#Ah.indexOf(t)+1;i<this.#Ah.length;i++){const t=this.#Oh.get(this.#Ah[i]);if(t?.isConnected)return t}return null}#Fh(t,i){if(i.isConnected)return;const s=this.#Dh(t);s?this.insertBefore(i,s):this.appendChild(i)}#zh(t){const i="string"==typeof t?t:t.localName;return!i.includes("-")||!!customElements.get(i)}#$h(t,i,s,h){const e=this.#Oh.get(t);if(i){if(e?.isConnected)return void h?.(e);e?.remove();const i=s();if(!this.#zh(i))return;this.#Oh.set(t,i),this.#Fh(t,i)}else e?.isConnected&&(e.remove(),this.#Oh.set(t,null))}ur(){const t=this.kr();if(!t)return;const i=R(B(t.Sr)?0:1);this.yr("volume",i),this.mr(t.Sr.subscribe(t=>i.set(t?0:1))),this.mr(()=>this.#Th?.()),this.yr("mediaPaused",R(0)),"markers"==t.getAttribute("data-ui")&&(this.#Mh.noHTML=1);const s=[];this.mr(t.current.subscribe(i=>{if(!i)return;this.#_=i.$info,this.#Js=void 0,this.#Sh=1,this.#Th?.(),this.#Js=i.Et,this.#Th=this.#Js?.subscribe(()=>this.#Vh()),!this.#Eh&&X.m()?.logo&&(this.#Eh=X.m()),this.#Vh(),this.isConnected&&this.#Yh();const h=i.$data;if(h&&0>s.indexOf(i.id)){s.push(i.id);const e=i.$settings.start;e&&N().then(N).then(()=>{if(!(B(t.state.popover)||B(t.state.marker)||B(t.state.tour)))switch(e.type){case"marker":i.state.marker.set(e.id);break;case"markerTour":{const i=h.markerTours?.find(t=>t.id==e.id);i&&t.state.tour.set(i);break}case"tour":{const i=h.tours?.find(t=>t.id==e.id);i&&t.state.tour.set(i);break}case"page":{const i=Ii(e.id,h.pages);i&&t.state.popover.set({contentPage:i,showLangSelect:1});break}}})}this.#Vh()})),this.mr(t.state.tour.subscribe(()=>{const i=this.#Oh.get("subtitles");i&&i.kt?.({raised:!!B(t.state.tour)})}));for(const h of[t.jt,t.state.popup,t.state.popover,t.state.tour,t.state.marker])this.mr(h.subscribe(()=>this.#Vh()));this.mr(t.Bt.subscribe(()=>this.#Vh())),this.#Vh()}kt(t){Object.assign(this.#Mh,t),this.isConnected&&this.#Vh()}#Xh=0;#Vh(){this.#Xh||(this.#Xh=1,q.request(()=>{this.#Xh=0,this.isConnected&&this.#Yh()}))}#Yh(){const t=this.kr();if(!t)return;const i=B(t.state.tour),s=B(t.state.marker),h=B(t.state.popup),e=B(t.state.popover),r=this.#_,o=this.#Js?B(this.#Js):void 0,n=t.$current?B(t.$current.data):void 0,a=this.#Mh.error,c=this.#Mh.loadingProgress??1,l=this.#Mh.noHTML??0,u=this.#Mh.noLogo??l,d=t.canvas.$isMobile,f=t.$current?.P,m=f?o._360.video:void 0,p=m?.src,g="book3d"==t.$current?.album?.info?.type;this.classList.toggle("is3d",f||g);const M=n?.markers?.filter(t=>!!t.positionalAudio),_=!!n?.music?.items.length||!!M?.length,w=i||s,v=!l||"markers"==t.getAttribute("data-ui"),y=!(u||r&&l||o?.noLogo||s||h),b=!l&&y&&!o?.noOrgLogo&&!!this.#Eh&&!e,k=!l&&!!r&&!o?.noControls,x=!l&&!w&&!!o?.showInfo,T=!l&&this.#Sh&&!o?.noToolbar,S=!(l||!r||0==o?.minimap||o?.noControls||!t.$current?.thumbSrc||h&&d);_&&n&&r&&t.$current?this.#Lh||(this.#Lh=new Ei(t,t.$current),this.mr(()=>this.#Ph())):this.#Ph(),this.#$h("media",!!p&&!!r,()=>mt("div")),this.#$h("logo",y,()=>mt("micrio-logo")),this.#$h("details",x&&!!n,()=>mt("micrio-details",{setProps:{info:this.#_,data:n}})),this.#$h("toolbar",T,()=>mt("micrio-toolbar"));const E=B(t.jt);this.#Rh(this.#Ih,"micrio-markers","markers",E,v,i=>!(i.opts?.isEmbed||!i.$data?.markers?.length&&!t.spaceData)),this.#Rh(this.#k,"micrio-image-embeds","embeds",E,"false"!=t.getAttribute("data-embeds"),t=>!!t.$data?.embeds?.length),this.#$h("controls",k,()=>mt("micrio-controls",{setProps:{hasAudio:_||!(!p||!m||m.muted)}})),this.#$h("orgLogo",b&&!!this.#Eh,()=>mt("micrio-logo-org",{setProps:{organisation:this.#Eh}}));const C=t.$current?.grid;C&&this.#Fh("grid",C),this.#$h("gallery",!!o?.omni||!("grid"===t.gallery?.Lr?.type||!t.gallery),()=>mt("micrio-gallery",{setProps:{controller:t.gallery}})),this.#$h("minimap",S,()=>mt("micrio-minimap",{setProps:{image:t.$current}}),i=>i.kt?.({image:t.$current}));const I=B(t.state.popup),L=null!=I&&"popover"!==I.popupType,P=this.#Oh.get("popup");if(L?(P?.isConnected&&(I.id!==this.#Ch||P.classList.contains("destroying"))&&(P.remove(),this.#Oh.set("popup",null)),this.#Ch=I.id,this.#Oh.get("popup")?.isConnected||this.#Oh.set("popup",mt("micrio-marker-popup",{setProps:{marker:I},parent:this}))):P?.isConnected||(this.#Oh.set("popup",null),this.#Ch=void 0),this.#$h("tour",!!i,()=>mt(i&&"steps"in i&&i.isSerialTour?"micrio-serial-tour":"micrio-tour",{setProps:{tour:i,noHTML:l}})),this.#$h("popover",!!e,()=>mt("micrio-popover",{setProps:{popover:e}})),this.#$h("error",!!a,()=>mt("micrio-error",{setProps:{message:a}})),this.#$h("progress",1>c,()=>mt("micrio-progress-circle",{setProps:{progress:c}})),1>c){const t=this.#Oh.get("progress");t?.isConnected&&t.kt?.({progress:c})}}#Rh(t,i,s,h,e,r){const o=h.filter(t=>r(t)),n=new Set(o.map(t=>t.id));for(const[a,c]of t)n.has(a)||(c.remove(),t.delete(a));if(e&&this.#zh(i))for(const a of o){if(t.has(a.id))continue;const h=mt(i,{setProps:{image:a}});t.set(a.id,h);const e=this.#Dh(s);e?this.insertBefore(h,e):this.appendChild(h)}else{for(const i of t.values())i.remove();t.clear()}this.#Oh.set(s,t.values().next().value??null)}};customElements.define(Li.tag,Li),Ti.VERSION=E,customElements.define("micr-io",Ti)}();
|
|
27
|
+
!function(){function t(i,s,h={}){if(!i||"object"!=typeof i)return s;const e=s;for(const r of Object.keys(i)){if("__proto__"===r||"constructor"===r||"prototype"===r)continue;const s=i[r];s&&"object"==typeof s&&Object.getPrototypeOf(s)===Object.prototype?(e[r]&&"object"==typeof e[r]||(e[r]={}),t(s,e[r],h)):h.noOverwrite&&r in e||(e[r]=s)}return s}var i,s="E001",h="E002",e="E003",r="E004",o="E005",n="E100",a="E101",c="E102",l="E103",u="E200",d="E201",f="E202",m="E203",p="E300",g="E301",M="E302",_="E303",w="E999",v={[s]:"You appear to be offline. Please check your internet connection and try again.",[h]:"The connection timed out. Please try again.",[e]:"Unable to load content due to security restrictions.",[r]:"The requested image or content could not be found.",[o]:"The server encountered an error. Please try again later.",[n]:"Your browser does not support WebGL, which is required to view this content.",[a]:"The graphics context was lost. The page will attempt to recover.",[c]:"There was a problem initializing the graphics. Please try refreshing the page.",[l]:"Your device is low on memory. Try closing other browser tabs or applications.",[u]:"The image data appears to be invalid or corrupted.",[d]:"The requested content could not be loaded.",[f]:"There was a problem processing the image information.",[m]:"This image uses an unsupported format version.",[p]:"Failed to load the image viewer engine. Please try refreshing the page.",[g]:"An error occurred in the image viewer. Please try refreshing the page.",[M]:"Failed to load the image. Please try again.",[_]:"Failed to load the tour. Some features may be unavailable.",[w]:"An unexpected error occurred. Please try refreshing the page."},y=class t extends Error{displayMessage;cause;code;statusCode;constructor(i,s){super(i),this.name="MicrioError",this.code=s?.code??w,this.displayMessage=s?.displayMessage??v[this.code],this.cause=s?.cause,this.statusCode=s?.statusCode,"captureStackTrace"in Error&&"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}static fromResponse(i,e){const n=i.status;let a=w;return 404===n?a=r:n>=500&&600>n?a=o:0===n?a=s:408!==n&&504!==n||(a=h),new t(`${e?e+": ":""}HTTP ${n}`,{code:a,statusCode:n})}static fromError(i,r){const o=i.message.toLowerCase();let a=w;return o.includes("network")||o.includes("internet")||o.includes("offline")?a=s:o.includes("timeout")?a=h:o.includes("cors")||o.includes("cross-origin")?a=e:o.includes("webgl")||o.includes("webglcontext")?a=n:o.includes("memory")||o.includes("out of memory")?a=l:(o.includes("wasm")||o.includes("webassembly"))&&(a=p),new t(`${r?r+": ":""}${i.message}`,{code:a,cause:i})}},b=new Map,k=new Map,x=async(t,i)=>{if(!i&&b.has(t))return structuredClone(b.get(t));if(k.has(t))return k.get(t);const s=fetch(t+(i?(t.includes("?")?"&":"?")+Math.random():"")).then(async i=>{if(200==i.status)return i.json();throw y.fromResponse(i,`fetchJson(${t})`)}).then(s=>(i||b.set(t,s),k.delete(t),structuredClone(s))).catch(i=>{throw k.delete(t),i});return k.set(t,s),s},T=t=>{let i=t.charCodeAt(0),s=91>i;return(i-=s?65:97)-(i>7?1:0)+(s?24:i>10?-1:0)},S=t=>6==t.length||7==t.length,E="7.1.4",C=`https://viewer.${(()=>{try{const t=location.hostname;if(t.endsWith("micrio.dev"))return"micrio.dev";if(t.endsWith("micrio.net"))return"micrio.net"}catch{}return"micr.io"})()}/`,I="micrio-muted",L={camspeed:1,view:[0,0,1,1],restrict:[0,0,1,1],focus:[.5,.5],zoomLimit:1,fullscreen:1,hookEvents:1,hookScroll:1,hookPinch:1,hookDrag:1,minimap:1,doTourJumps:1,audio:1,startVolume:1,mutedVolume:0,_markers:{showTitles:0,zoomOutAfterClose:1},ui:{controls:{cultureSwitch:1}},_360:{}},P={id:{r:1},lang:{r:1},"data-path":{r:1},"data-inittype":{f:"initType"},"data-start":{f:"gallery.startId"},"data-gallery-sort":{f:"gallery.sort"},"data-gallery-type":{f:"gallery.type"}},A={"data-static":{},muted:{f:"audio",n:1},"data-no-externals":{f:"noExternals"},"data-skipmeta":{f:"skipMeta"},"data-keeprendering":{f:"keepRendering"},"data-coverlimit":{f:"limitToCoverScale"},"data-events":{f:"hookEvents"},"data-keys":{f:"hookKeys"},"data-zooming":{f:"noZoom",n:1},"data-scroll-zoom":{f:"hookScroll"},"data-pinch-zoom":{f:"hookPinch"},"data-dragging":{f:"hookDrag"},"data-two-finger-pan":{f:"twoFingerPan"},"data-control-zoom":{f:"controlZoom"},"data-ui":{f:"noUI",n:1},"data-controls":{f:"noControls",n:1},"data-logo":{f:"noLogo",n:1},"data-logo-org":{f:"noOrgLogo",n:1},"data-toolbar":{f:"noToolbar",n:1},"data-show-info":{f:"showInfo"},"data-social":{},"data-fullscreen":{},"data-minimap":{},"data-minimap-hide":{f:"alwaysShowMinimap",n:1},"data-normalize-dpr":{f:"zoomLimitDPRFix"},"data-freemove":{f:"freeMove"}},O={"data-version":{r:1},height:{r:1},width:{r:1},volume:{f:"startVolume"},"data-camspeed":{},"data-zoomlimit":{f:"zoomLimit"},"data-minimap-height":{f:"minimapHeight"},"data-minimap-width":{f:"minimapWidth"},"data-mutedvolume":{f:"mutedVolume"},lazyload:{dN:0},"data-elasticity":{f:"dragElasticity"},"data-skip-base-levels":{f:"skipBaseLevels"},"data-watermark-opacity":{f:"watermarkOpacity"}},D={"data-focus":{},"data-view":{}},F=new Map,z=new Map,$=new Map,V=new Map,Y=new Map,X={async t(t){return(await this.i(t))?.data},o:t=>F.get(t),l:t=>(F.get(t.micrioId)?.data)?.markers?.find(i=>i.id===t.markerId),u:t=>z.get(t),m:()=>i,p:t=>$.get(t),M:t=>V.get(t),async i(t){if(t)return await(async t=>{if(!t||t.startsWith("http")||F.has(t))return;if(Y.has(t))return Y.get(t);const s=(async t=>{const s=await x(`${C}${t}/bundle.json?v=${E}`);if(s?.images){for(const t of s.images)t?.id&&(F.set(t.id,t),s.tours&&V.set(t.id,s.tours));t.startsWith("external/")&&s.images[0]?.id&&(F.set(t,s.images[0]),s.tours&&V.set(t,s.tours))}if(s?.organisation&&(i=s.organisation),s?.spaces)for(const i of s.spaces)i?.id&&i?.data&&z.set(i.id,i.data);s?.album?.id&&$.set(s.album.id,s.album)})(t);Y.set(t,s);try{await s}catch{}finally{Y.delete(t)}})(t),F.get(t)}};function R(t){const i=new Set;return{subscribe:(s,h)=>(i.add(s),s(t),()=>i.delete(s)),set(s){t=s,i.forEach(t=>t(s))},update(i){this.set(i(t))}}}function B(t){let i;return t.subscribe(t=>{i=t})(),i}function N(){return Promise.resolve()}var W=self,H=0,Z=0,j=new Set;function G(){H||(H=W.requestAnimationFrame(U))}function U(t){H=0,Z++;const i=[...j];j.clear();for(let h=0;h<i.length;h++)try{i[h](t)}catch(s){console.error("[Micrio] frame callback error",s)}j.size&&G()}var q={get id(){return Z},request(t){j.add(t),G()},cancel(t){j.delete(t),!j.size&&H&&(W.cancelAnimationFrame(H),H=0)},after:()=>new Promise(t=>q.request(()=>t())),afterPaint:()=>new Promise(t=>q.request(()=>q.request(()=>t()))),_(t){W!==t&&(H&&W.cancelAnimationFrame(H),W=t,H=0,j.size&&G())}},J=(t,i=1)=>(t%i+i)%i,K=t=>J(t),Q=t=>J(t,2*Math.PI),tt=t=>2**t,it=t=>({centerX:t[0]+t[2]/2,centerY:t[1]+t[3]/2,width:t[2],height:t[3]}),st=(t,i)=>1e-6>Math.abs(t-i);function ht(t,i){const s=K(t),h=K(i)-s,e=h>0?h-1:h+1;return Math.abs(h)>Math.abs(e)?e:h}var et,rt,ot=class{#t;#i;#s;#h;#e;#r;#o;constructor(t,i,s,h){this.#o=t===i&&s===h&&0===t&&1===s;const e=3*t,r=3*(s-t)-e;this.#t=e,this.#i=r,this.#s=1-e-r;const o=3*i,n=3*(h-i)-o;this.#h=o,this.#e=n,this.#r=1-o-n}#n(t){return t*(this.#t+t*(this.#i+t*this.#s))}#a(t){return t*(this.#h+t*(this.#e+t*this.#r))}#c(t){return this.#t+t*(2*this.#i+3*this.#s*t)}#l(t){let i=t,s=0,h=0,e=0;for(;5>s&&(h=this.#n(i)-t,e=this.#c(i),0!==e);)i-=h/e,s++;return i}get(t){return this.#o?t:this.#a(this.#l(t))}},nt=new ot(.42,0,.58,1),at=new ot(.42,0,1,1),ct=new ot(0,0,.58,1),lt=new ot(0,0,1,1),ut={ease:nt,"ease-in":at,"ease-out":ct,linear:lt},dt=t=>ut[t??"ease"]??nt,ft=class{rotationY=0;#u;v;k;T=[];S;C;I;L;#d;get image(){return this.#d}constructor(t){if(this.#d=t,!t.P){const i=t.state.$view;i&&t.$info?.width&&N().then(()=>this.setView(i))}}A(t){this.#u=t}getView=()=>{const t=this.#u?.view.arr;return t?[t[0]-t[2]/2,t[1]-t[3]/2,t[2],t[3]]:[0,0,1,1]};getViewRaw=()=>this.#u?.view.arr??new Float64Array(4);setView(t,i={}){if(!this.#u)return;let{centerX:s,centerY:h,width:e,height:r}=it(t);if(this.#d.opts.useParentCamera){const t=this.#d.opts.area;t&&(s=t[0]+s*t[2],h=t[1]+h*t[3],e*=t[2],r*=t[3])}this.#u.O(s,h,e,r,!!i.noLimit,0,i.correctNorth),i.noRender||this.#d.engine.render()}getCoo(t,i,s=0,h=0){return this.#f(t,i,s,h).slice(0).map(t=>Math.round(1e6*t)/1e6)}#f(t,i,s=0,h=0){const e=this.#u;if(!e)return new Float64Array(5);if(s){const s=this.#d.engine.micrio.getBoundingClientRect();t-=s.left,i-=s.top}return(e.is360?e.F.D(t,i):e.camera.D(t,i,!!s,!!h)).arr}getXY(t,i,s=0,h,e,r){return this.$(t,i,{abs:s,radius:h,rotation:e,noTrueNorth:r}).slice(0)}$(t,i,s={}){if(this.I)return this.I(t,i);const h=this.#u;if(!h)return new Float64Array(5);const e=this.#d.P&&!s.noTrueNorth?-this.rotationY/(2*Math.PI):0;return h.is360?h.F.V(t-e,i).arr:void 0===s.rotation||isNaN(s.rotation)?h.X.Y(t-e,i,!!s.abs).arr:h.X.R(t-e,i,s.radius??0,s.rotation,!!s.abs).arr}setCoo(t,i,s){this.#u&&(this.#u.camera.setCoo(t,i,s??this.getScale()),this.#d.engine.render())}getScale=()=>this.getCoo(0,0)[2]||1;getCoverScale=()=>this.#u?.camera.B??1;getMinScale=()=>this.#u?.camera.N??.1;setMinScale(t){this.#u?.W(t)}setMinScreenSize(t){!this.#d.album&&this.#u&&(this.#u.camera.H=Math.max(0,Math.min(1,t)))}isZoomedIn=()=>!!(this.C?this.C():this.#u?.Z());isZoomedOut=(t=0)=>!!(this.C?!this.C():this.#u?.j(t));getDirection=()=>this.#u?.F.G??0;getPitch=()=>this.#u?.F.U??0;setDirection(t,i){this.#u&&(this.#u.q(t,i??this.#u.F.U),this.#d.engine.render())}setLimit(t){if(!this.#u)return;const i=it(t);this.#u.view.J(i.centerX,i.centerY,i.width,i.height),this.#d.engine.render()}setCoverLimit(t){this.#u&&(this.#u.K=!!t,this.#u.tt())}getCoverLimit=()=>!!this.#u?.K;set360RangeLimit(t=0,i=0){this.#u&&(this.#u.F.it(t,i),this.#d.engine.render())}stop(){this.#u?.st()}pause(){this.#u?.ht()}resume(){this.#u?.et(),this.#d.engine.render()}getMatrix(t,i,s,h,e,r,o,n,a,c,l){return this.L?this.L(t,i,s||1,e,r,o,a,c,h):this.#u?.rt(t,i,s??1,h??10,e||0,r||0,o||0,n??0,a??1,c??1,!!l)??new Float32Array(16)}setArea(t,i={}){if(this.#u){if(this.#d.opts.area=t,this.#d.opts.isEmbed&&this.#d.ot){for(const i of this.#u.images)if(i.nt>0)return void i.ct(t[0],t[1],t[0]+t[2],t[1]+t[3])}else this.#u.ct(t[0],t[1],t[0]+t[2],t[1]+t[3],!!i.direct,!!i.noDispatch);i.noRender||this.#d.engine.render()}}setRotation(t=0,i=0,s=0){if(this.#d.opts.isEmbed&&this.#u&&this.#d.engine.ready){for(const h of this.#u.images)if(h.nt>0){h.lt=t,h.ut=i,h.dt=s;break}this.#d.engine.render()}}getOmniRotation(){const t=this.#d.$settings.omni;return t&&this.#u?(this.#d.omni?.currentIndex??0)/((t.frames??1)/(t.layers?.length??1))*Math.PI*2:0}ft(t){const i=this.#d.$settings.omni;if(i&&null!=t)return Math.floor(t/(2*Math.PI)*(i.frames/(i.layers?.length??1)))}getOmniXY(t,i,s){return this.#u?.X.gt(t,i,s).arr??new Float64Array(5)}Mt(){if(!this.#u)return;const t=this.#u.view.arr;this.#d.state.view.set([t[0]-t[2]/2,t[1]-t[3]/2,t[2],t[3]])}#m(t,i){this.v=t,this.k=i}flyToView(t,i={}){return new Promise((s,h)=>{if(!this.#u)return h(new Error("engine not ready"));let{centerX:e,centerY:r,width:o,height:n}=it(t);if(2==i.margin?.length&&(e+=i.margin[0],r+=i.margin[1],o-=2*i.margin[0],n-=2*i.margin[1]),this.#d.opts.useParentCamera){const t=this.#d.opts.area;t&&(e=t[0]+e*t[2],r=t[1]+r*t[3],o*=t[2],n*=t[3])}if(i.prevView){const t=it(i.prevView);this.#u.wt._t(t.centerX,t.centerY,t.width,t.height)}const a=this.#d.$settings.omni;if(a?.frames){const s=a.layers?.length??1,h=a.frames/s;if(null==i.omniIndex){const s=t[4]||(Array.isArray(t)&&void 0!==t[5]?t[5]:void 0);void 0!==s&&(i.omniIndex=Math.round(J(s/(2*Math.PI))*h))}null!=i.omniIndex&&(i.omniIndex=J(i.omniIndex,h))}const c=this.#u.camera.vt(e,r,o,n,i.duration??-1,i.speed??-1,i.progress??0,!!i.isJump,!!i.limit,!!i.limitZoom,i.omniIndex??0,dt(i.timingFunction));this.#d.engine.render(),0==c?s():this.#m(s,h)})}flyToFullView(t={}){return this.flyToCoo([.5,.5,this.getMinScale()],t)}flyToCoverView(t={}){const i=this.#d.$settings.focus??[.5,.5],s=[i[0],i[1]];return s[2]=this.getCoverScale(),this.flyToCoo(s,t)}flyToCoo(t,i={}){return new Promise((s,h)=>{if(!this.#u)return h(new Error("engine not ready"));const e=dt(i.timingFunction);i.duration=this.#u.camera.setCoo(t[0],t[1],t[2]??this.getScale(),i.duration??-1,i.speed??-1,i.limit??0,e),this.#d.engine.render(),0==i.duration?s():this.#m(s,h)})}zoom(t,i=0,s,h,e=1,r=0){return new Promise((e,o)=>{if(this.S)this.S(t);else if(this.#u){const o=this.#u.view.arr,n=this.getXY(o[0],o[1]);if(null==s&&(s=n[0]),null==h&&(h=n[1]),this.#d.album&&!this.#d.album.hooked)return e();i=this.#u.camera.yt(t,s,h,i,r),this.#d.engine.render()}0==i?e():this.#m(e,o)})}async zoomIn(t=1,i=250,s=1){return this.zoom(200*-t,i,void 0,void 0,s).catch(()=>{})}async zoomOut(t=1,i=250,s=1){const h=this.#d.engine.micrio.canvas.viewport,e=h.width/h.height,r=this.#d.$info.width/this.#d.$info.height;return this.zoom(t*(400/Math.max(1,e/r/2)),i,void 0,void 0,s).catch(()=>{})}pan(t,i,s=0,h={}){this.#u&&(this.#u.camera.bt(t,i,s,!!h.noLimit),(s>0||h.render)&&this.#d.engine.render())}setScale(t){const i=this.#u?.view.arr;i&&this.setCoo(i[0],i[1],t)}};function mt(t,i={}){const s=i.ns?document.createElementNS(i.ns,t):document.createElement(t);if(i.className&&(s instanceof SVGElement?s.setAttribute("class",i.className):s.className=i.className),void 0!==i.textContent&&(s.textContent=i.textContent),void 0!==i.innerHTML&&(s.innerHTML=i.innerHTML),i.id&&(s.id=i.id),i.dataset)for(const[h,e]of Object.entries(i.dataset))s.dataset[h]=e;if(i.attrs)for(const[h,e]of Object.entries(i.attrs))null==e?s.removeAttribute(h):s.setAttribute(h,e);if(i.style&&("string"==typeof i.style?s.style.cssText=i.style:Object.assign(s.style,i.style)),i.props&&Object.assign(s,i.props),i.events)for(const[h,e]of Object.entries(i.events))s.addEventListener(h,e);if(i.children)for(const h of i.children)null!=h&&0!=h&&("string"==typeof h||"number"==typeof h?s.append(String(h)):s.append(h));return i.setProps&&s.kt?.(i.setProps),i.parent&&i.parent.appendChild(s),s}(rt=et||(et={})).Main=class{tour=R();#p;get $tour(){return this.#p}marker=R();markerHoverId=R();#g;get $marker(){return this.#g}popup=R();popover=R();mediaState=new Map;constructor(){this.tour.subscribe(t=>{"string"!=typeof t&&(this.#p=t)}),this.marker.subscribe(t=>{"string"!=typeof t&&(this.#g=t)})}},rt.Image=class{view=R(void 0);#M;get $view(){return this.#M}marker=R(void 0);#g;get $marker(){return this.#g}layer=R(0);constructor(t){const i=t.engine.micrio;let s,h,e,r,o,n;this.view.subscribe(a=>{if(this.#M=a,!a)return;const c=a[0],l=a[1],u=a[2],d=a[3];if(s===c&&h===l&&e===u&&r===d)return;const f={image:t,view:a};if(s=c,h=l,e=u,r=d,void 0===o||void 0===n||Math.abs(u-o+(d-n))>1e-5){for(const t of i.xt)t(f);i.events.Tt("zoom",{image:t,view:a}),o=u,n=d}for(const t of i.St)t(f);i.events.Tt("move",{image:t,view:a})}),this.marker.subscribe(t=>{const s=this.#g;this.#g=t&&"string"!=typeof t?t:void 0,this.#g?i.state.marker.set(this.#g):t||i.state.$marker!=s||i.state.marker.set(void 0)})}};var pt=new Set,gt=[],Mt=class t{id;uuid=(()=>Math.random().toString())();#_;get $info(){return this.#_}Et=R({});get $settings(){return B(this.Et)}data=R(void 0);get $data(){return B(this.data)}state;camera;video=R(void 0);visible=R(0);album;omni;grid;Ct;It;Lt;error;ot=0;Pt=-1;P=0;At=0;Ot=0;Dt=1;#w=0;thumbSrc;#v;Ft=0;zt;$t=1;Vt=R();Yt=[];Xt;get engine(){return this.#y}get canvas(){return this.#y.Rt(this)}#y;opts;constructor(t,i,s={}){if(this.#y=t,this.opts=s,this.state=new et.Image(this),s.useParentCamera||(this.camera=new ft(this)),this.id=i.id.replace(C,""),this.id.startsWith("external/")){const t=this.id.indexOf("/",this.id.indexOf("/")+1);-1!==t&&(this.id=this.id.substring(0,t+1)+encodeURIComponent(this.id.substring(t+1)))}const h=i.info;this.#_=h,this.Lt=h.path||"https://r2.micr.io/",s.area||(s.area=[0,0,1,1]);const e=i.settings,r=this.#y.micrio;if(!h.isIIIF&&7==this.id.length){const t=T(this.id[1+T(this.id)%6]);h.is360=!!(t>>4&1)||!!h.is360,h.isWebP=!(3&t),h.isPng=2==(3&t),t>>3&1&&S(h.tilesId??this.id)&&(h.format="dz"),h.path||(h.path=`https://${t>>2&1?"eu":"r2"}.micr.io/`)}const o=6==this.id.length&&this.id.startsWith("i")&&!this.id.includes("/"),n=o&&!h.tileBasePath?.includes("micr.io");this.Xt=n?h.tileBasePath??"https://b.micr.io/":o?"https://b.micr.io/":h.tileBasePath??h.path??"https://r2.micr.io/";const a=X.m();if(a?.baseUrl&&!h.path?.includes(a.baseUrl)?(this.Lt=h.path=a.baseUrl,o||(this.Xt=this.Lt)):("https://eu.micr.io/"==h.path||h.path)&&(this.Lt=h.path),e?.omni&&(this.Ot=1),a?.branding&&!e?.noUI){const t=`https://${0>(a.logo?.src?.indexOf("/eu.")??-1)?"r2":"eu"}.micr.io/`;this.#b(t+"style/"+a.slug+".css").then(()=>{const t=getComputedStyle(this.#y.micrio).getPropertyValue("--micrio-font-family")?.replace(/^'([^']+)'.*$/,"$1");t&&document.fonts.ready.then(()=>{document.fonts.check("16px "+t)||this.#b(`https://fonts.googleapis.com/css2?family=${t}:ital,wght@0,300;0,400;0,500;0,600;0,800;1,300;1,400;1,500;1,600;1,800&display=swap`)})})}if(h.isIIIF&&h.id.includes("/")&&(h.id=("@id"in h?h["@id"]:h.id).replace(/^.*\//,"")),h.spacesId&&!r.spaceData&&(r.spaceData=X.u(h.spacesId),1==r.spaceData?.images.length&&delete r.spaceData),r.bundleTours||(r.bundleTours=X.M(this.id)),h.is360&&this.camera){const t=r.spaceData?.images.find(t=>t.id==this.id)?.rotationY;null!=t?this.camera.rotationY=t:null!=e?._360?.trueNorth&&(this.camera.rotationY=(e._360.trueNorth-.5)*Math.PI*2)}this.Ft=this.Ft||this.Ot||!h.id&&!h.tilesId,this.#v=h.tileExtension||h.isPng&&"png"||h.isWebP&&"webp"||"jpg","dz"==h.format&&(h.isDeepZoom=1),this.P=!!h.is360,this.At=!!h.isVideo;let c=B(r.Bt);if(h.revision){const t=Object.keys(h.revision);t.length&&!t.includes(c)&&(r.lang=t.includes("en")?"en":t[0])}if(e&&!e.noExternals&&(e.css&&this.#b(e.css.href),e.js)){const t=e.js.href.replace("$lang",c);l=t,new Promise((t,i)=>{if(pt.has(l))return t();const s=document.createElement("script");s.onload=()=>{pt.add(l),t()},s.onerror=()=>i?.(),s.async=1,s.defer=1,self.crossOriginIsolated&&(s.crossOrigin="anonymous"),s.src=l,document.head.appendChild(s)});const i=document.head.querySelector('script[src="'+t+'"]');i&&(i.micrioElement=this.#y.micrio)}var l;for(let m=h.tileSize??1024;m<Math.max(h.width,h.height);m*=2,this.Dt++);let u=Math.max(h.width,h.height);do{this.#w++}while((u/=2)>1);e?.gallery?.archive&&(this.Dt-=1-(e.gallery.archiveLayerOffset??0)),this.Ft||(this.thumbSrc=this.Nt(this.Dt,0,0)),r.events.Tt("pre-info",h),this.Ft&&!this.Ot||e?.skipMeta||!i.data||this.data.set(i.data),e&&this.Et.set(e),h.watermark&&this.#y.micrio.Ht.Wt(h.watermark,e?.watermarkOpacity),this.Ot&&this.state.layer.subscribe(t=>{this.ot&&this.#y.ready&&(this.canvas?.Zt(t),this.#y.render())});const d=this.#y.micrio;let f=B(this.visible);this.visible.subscribe(t=>{t!=f&&(f=t,d.jt.update(i=>{if(t)i.push(this);else{const t=i.indexOf(this);0>t||i.splice(t,1)}return i}),t&&d.$current==this&&d.Gt.set(0))}),this.video.subscribe(t=>this.It=t)}Nt(t,i,s,h){const e=this.#_;if(e.isDeepZoom&&(t=this.#w-t),e.isIIIF){const h=e.tileSize??1024,r=Math.pow(2,t)*h,o=Math.min(e.width,i*r),n=Math.min(e.height,s*r),a=Math.min(e.width-o,r),c=Math.min(e.height-n,r),l=Math.round(Math.min(h,a/r*h)),u=Math.round(Math.min(h,c/r*h)),d=e.isWebP||e.preferredFormats?.includes("webp")?"webp":e.preferredFormats?.[0]??"jpg";return`${e.path}/${e.id}/${[o,n,a,c].join(",")}/${[l,u].join(",")}/0/default.${d}`}if(this.$settings?._360?.video?.src)throw new Error("Video thumb");return`${this.Xt}${e.tilesId||e.id}/${void 0!==h?h+"/":""}${t}/${i}${e.isDeepZoom?"_":"-"}${s}.${this.#v}`}#b(t){return new Promise(i=>{gt.includes(t)||document.head.querySelector('link[href="'+t+'"]')?i():(gt.push(t),mt("link",{attrs:{type:"text/css",rel:"stylesheet",href:t},events:{load:i},parent:document.head}))})}addEmbed(i,s,h,e={}){const r=h.slice(0),o=new t(this.#y,{id:i.id??"",info:{...i,id:i.id??""},data:X.o(i.id??"")?.data,settings:s},{area:r,isEmbed:1,useParentCamera:e.asImage});if(o.camera||(o.camera=this.camera),this.Yt.push(o),void 0===e.opacity&&(e.opacity=1),"cover"==e.fit||"contain"==e.fit){const t=o.$info,i=this.P?2:1,s="cover"==e.fit,h=r[2],n=r[3],a=r[0]+h/2,c=r[1]+n/2,l=h/n*i,u=t.width/t.height;if(s&&l>u||!s&&u>=l){const t=h/u*i;r[1]=c-t/2,r[3]=t}else{const t=n*u/i;r[0]=a-t/2,r[2]=t}}return this.#y.Ut(o,this,e),this.#y.render(),o}#k=new Map;qt(t,i){i?this.#k.set(t,i):this.#k.delete(t)}getEmbedMediaElement(t){return this.#k.get(t)}},_t={db:new Map,async Jt(t){throw new Error("Archive loading is not available in the core build")}},wt=navigator.userAgent,vt={iOS:/ipad|iphone|ipod/i.test(wt),firefox:/firefox/i.test(wt),OSX:/macintosh/i.test(wt)&&/os\ x/i.test(wt),hasTouch:"TouchEvent"in self,safari:0};vt.safari=(vt.OSX||vt.iOS)&&(/safari/i.test(wt)||/instagram/i.test(wt))&&!/chrome/i.test(wt),vt.OSX&&vt.safari&&"TouchEvent"in self&&(vt.iOS=1,vt.OSX=0);var yt=URL.createObjectURL(new Blob(["let controller = null;\nself.addEventListener('message', e => {\n\tif(e.data == 'abort') return controller && controller.abort();\n\tcontroller = new AbortController();\n\tfetch(e.data.src, { signal: controller.signal })\n\t\t.then(r => r.blob())\n\t\t.then(blob => self.createImageBitmap(blob))\n\t\t.then(data => self.postMessage({ data, src: e.data.src }, [data]))\n\t\t.catch(err => self.postMessage({ error: e.data.src + ': ' + err.message, type: err.name }))\n})"],{type:"text/javascript"})),bt=Math.max(2,Math.min(6,(navigator.hardwareConcurrency||2)-1)),kt=Array(bt).fill(0),xt=0,Tt=[],St=0,Et=[],Ct=new Map;function It(){if(!Et.length)return;const t=kt.indexOf(0);if(0>t)return;kt[t]=1,xt++;const i=Et.shift();Ct.set(t,i),Tt[t].postMessage({src:i[0],type:"image/"+i[0].split(".").pop()})}function Lt(t,i,s,h){const e=Ct.get(t);e&&(Ct.delete(t),s?(e[2](s),"AbortError"!==h&&console.error(`[Micrio Texture] Error loading ${e[0]}: ${h} - ${s}`)):i?e[1](i):(e[2](`Worker ${t} sent invalid message.`),console.error(`[Micrio Texture] Worker ${t} sent invalid message for ${e[0]}`)),setTimeout(()=>{kt[t]=0,xt--,It()},50))}function Pt(){return xt}function At(t){let i=-1;for(const[s,h]of Ct.entries())if(h[0]===t){i=s;break}0>i||Tt[i]?.postMessage("abort")}var Ot=class{x0;y0;x1;y1;layer;x;y;image;constructor(t=0,i=0,s=0,h=0,e=0,r=0,o=0){this.x0=t,this.y0=i,this.x1=s,this.y1=h,this.layer=e,this.x=r,this.y=o}},Dt=class{Kt;Qt;width;height;ti;ii;si;hi;#x=new Float64Array([.5,.5,1,1]);#T=0;ei=0;ri=0;#u;constructor(t,i=.5,s=.5,h=1,e=1,r=.5,o=.5,n=1,a=1){this.Kt=i,this.Qt=s,this.width=h,this.height=e,this.ti=r,this.ii=o,this.si=n,this.hi=a,this.#u=t}get arr(){return this.#T&&(this.#x[0]=this.Kt,this.#x[1]=this.Qt,this.#x[2]=this.width,this.#x[3]=this.height,this.#T=0),this.#x}get x0(){let t=this.Kt;return this.#u.is360&&(t=K(t)),this.#u.is360?K(t-this.width/2):t-this.width/2}get y0(){return this.Qt-this.height/2}get x1(){let t=this.Kt;return this.#u.is360&&(t=K(t)),this.#u.is360?K(t+this.width/2):t+this.width/2}get y1(){return this.Qt+this.height/2}get lX0(){return this.ti-this.si/2}get lY0(){return this.ii-this.hi/2}get lX1(){return this.ti+this.si/2}get lY1(){return this.ii+this.hi/2}get aspect(){return this.width/this.height}set(t,i,s,h,e=0){if(e){const t=Math.min(1,this.width)/Math.min(1,this.height);s/h>1.5*t&&s<this.width&&(h=s/t)}this.Kt=t,this.Qt=i,this.width=s,this.height=h,this.#T=1,this.ei=1}ct(t,i,s,h){this.Kt=(t+s)/2,this.Qt=(i+h)/2,this.width=s-t,this.height=h-i,this.#T=1}J(t,i,s,h){this.ti=t,this.ii=i,this.si=s,this.hi=h,this.ei=1,this.ri=1}oi(t,i=0){this.Kt=t.Kt,this.Qt=t.Qt,this.width=t.width,this.height=t.height,i||(this.ti=t.ti,this.ii=t.ii,this.si=t.si,this.hi=t.hi),this.ei=1,this.#T=1}#S(){const t=this.#u;return 1/Math.max(this.width*t.width/t.el.width,this.height*t.height/t.el.height)}ni(t,i=0,s=0){const h=this.#u,e=h.X.H,r=this.#S();if(1>e&&r<h.X.N&&!i){const t=1/e,i=Math.min(t,this.width),s=Math.min(t,this.height);return this.Kt=.5,this.Qt=.5,this.width=i,this.height=s,void(this.#T=1)}const o=t?Math.max(1,r/h.X.ai):1,n=this.si,a=this.hi,c=Math.min(n,this.width*o),l=Math.min(a,this.height*o);if(t&&(o>1||i&&r<h.X.N)&&(this.width=c,this.height=l),(1>n||1>a)&&(this.width=Math.min(this.width,n),this.height=Math.min(this.height,a)),i)return void(this.#T=1);const u=Math.min(1,this.width)/2,d=this.si/2;this.#u.is360?this.Kt=K(this.Kt):s||(this.Kt=Math.max(this.ti-d+u,Math.min(this.Kt,this.ti+d-u)));const f=Math.min(1,this.height)/2,m=this.hi/2;s||(this.Qt=Math.max(this.ii-m+f,Math.min(this.Qt,this.ii+m-f))),this.#T=1}ci(){const t=this.#u;if(t.is360)return;const i=t.X.cpw/t.X.cph;this.width/this.height>i?this.height=this.width/i:this.width=this.height*i,this.#T=1}},Ft=class{x;y;scale;w;direction;arr=new Float64Array(5);constructor(t=.5,i=.5,s=1,h=0,e=0){this.x=t,this.y=i,this.scale=s,this.w=h,this.direction=e}li(t){return-1>this.w||3>this.w&&!(0>this.x||this.x>t.width||0>this.y||this.y>t.height)}di(){return this.arr[0]=this.x,this.arr[1]=this.y,this.arr[2]=this.scale,this.arr[3]=this.w,this.arr[4]=this.direction,this.arr}},zt=class{width;height;left;top;fi;mi;ratio;scale;pi;arr=new Int32Array(4);constructor(t=0,i=0,s=0,h=0,e=0,r=0,o=1,n=1,a=0){this.width=t,this.height=i,this.left=s,this.top=h,this.fi=e,this.mi=r,this.ratio=o,this.scale=n,this.pi=a}get gi(){return 0===this.width||0===this.height?1:this.width/this.height}set(t,i,s,h,e,r,o){return this.width===t*e&&this.height===i*e&&this.left===s&&this.top===h&&this.ratio===e&&this.scale===r&&this.pi===o?0:(this.width=t*e,this.height=i*e,this.left=s*e,this.top=h*e,this.ratio=e,this.scale=r,this.pi=o,1)}oi(t){this.width=t.width,this.height=t.height,this.left=t.left,this.top=t.top,this.ratio=t.ratio,this.scale=t.scale,this.pi=t.pi}},$t=class{#E=0;#C=0;#I=0;#L=0;#P=0;#A=0;#O=0;#D=0;started=0;#u;constructor(t){this.#u=t}addStep(t,i){const s=this.#u.main.now;if(this.#P)return;0===this.#I&&(this.#I=s);const h=s-this.#L,e=this.#L>0&&h>0?16.67/h:1;Math.sqrt(t*t+i*i)*e>20&&(this.#A=s);const r=this.#u.main.Mi;this.#E+=t*r,this.#C+=i*r,this.#L=s}start(){this.#u.camera._i()||(this.started=1)}stop(){this.started=0,this.#P=0,this.#I=0,this.#L=0,this.#A=0,this.#E=0,this.#C=0,this.#O=0,this.#D=0}step(){const t=this.#u.main.now,i=this.#u.F,s=this.#u.camera;if(!this.started||0===this.#I)return 1;if(0===this.#P){this.#P=t;const i=1-Math.min(1,(this.#P-this.#A)/250),s=this.#P-this.#I,h=s>0?4/s:0;this.#O=this.#E*h*i,this.#D=this.#C*h*i}else this.#O*=.94,this.#D*=.94;let h=Math.sqrt(this.#O*this.#O+this.#D*this.#D);return this.#u.is360?i.wi(this.#O,this.#D):s.bt(this.#O,this.#D,0,0,0,1),h>.01||(h=0,this.stop()),1-h}},Vt=class{#F=0;#z;#$;yi;#V=0;#Y=0;#X=0;#R=0;#B=0;#N=nt;#W=0;#H=0;#Z=0;ni=1;bi=0;ki=0;#j=0;#G=0;#U=0;#q=0;#J=0;#K=0;#Q=0;#tt=-1;#it=0;#u;constructor(t){this.#u=t,this.#z=new Dt(t),this.#$=new Dt(t),this.yi=new Dt(t)}pause(){this.#j>0||(this.#Z=0,this.#j=performance.now())}resume(){0!==this.#j&&0!==this.#W&&(this.#W+=performance.now()-this.#j,this.#j=0,this.#Z=1)}stop(){this.#Z&&this.#u.k(),this.#W=0,this.ni=1,this.bi=0,this.#Z=0,this.#F=0,this.#V=0,this.ki=0,this.#j=0}xi(){return this.#Z&&this.#F}Ti(t,i,s,h,e,r,o={}){const{speed:n=0,perc:a=0,isJump:c=0,limitViewport:l=0,omniIdx:u=-1,correct:d=0}=o;if(d&&this.ki)return this.Si(t,i,s,h,1),e;this.yi.set(t,i,s,h),this.#$.set(t,i,s,h);const f=this.#u,m=f.view,p=this.#$,g=this.#z;this.#Y=c,this.#N=r;const M=f.main.el;if(0!==M.mi){const t=h/(1-M.mi/M.height);t>0?h+=t:h-=t,M.mi=0}if(0!==M.fi){const t=s*(M.fi/M.width);t>0?s+=t:s-=t,M.fi=0}const _=m.Kt,w=m.Qt,v=m.width,y=m.height;g.set(_,w,v,y),f.is360&&(t=_+ht(_,t),p.set(t,i,s,h)),l&&(p.ci(),p.ni(0)),this.#G=0,this.#q=0,this.#U=0,this.#J=0;let b=1;if(this.#Y){if(!f.is360){const t=p.Kt,i=p.Qt;if(p.aspect>g.aspect){const s=p.width/g.aspect;p.set(t,i,p.width,s)}else{const s=p.height*g.aspect;p.set(t,i,s,p.height)}}const e=g.x0,r=g.x1,o=g.y0,n=g.y1,a=p.x0,c=p.x1,l=p.y0,u=p.y1,d=e>a,m=o>l,M=c>r,_=u>n;!(d||m||M||_)||d&&m&&M&&_?p.set(t,i,s,h):(this.#G=d?1:a>e?2:0,this.#q=M?1:r>c?2:0,this.#U=m?1:l>o?2:0,this.#J=_?1:n>u?2:0,b=1.5)}d&&p.ni(1,!l);const k=Math.max(1e4,Math.min(15e3,f.Ei/2));let x=Math.abs(_-t);f.is360&&(x=Math.min(x,1-x));const T=v>s&&y>h?.125:.25,S=(x+Math.abs(w-i)+Math.abs(v-s)*T+Math.abs(y-h)*T)/3;this.#K=Math.max(.5,.8-S*(f.is360?1:2)),this.#Q=Math.max(.05,Math.min(.9,S-(f.is360?.2:.1))),this.#H=0>e?S*k/f.Ci*b/(n>0?n:1):e;const E=f.images.length/f.Ii;return this.#tt=f.Li,this.#it=0,!isNaN(u)&&u>0&&u!==this.#tt&&(this.#it=u-this.#tt,this.#it<-E/2&&(this.#it+=E),this.#it>E/2&&(this.#it-=E),this.#H+=Math.abs(this.#it)/this.#u.images.length*6e3),this.stop(),0===this.#H?(f.O(p.Kt,p.Qt,p.width,p.height,0,1),this.#u.v(),this.#H):(this.#F=1,this.ni=0,this.bi=1,this.#V=0,d&&(this.ki=1),this.#W=performance.now()-a*this.#H,this.#Z=1,this.#H*(1-a))}Si(t,i,s,h,e=0){this.#$.set(t,i,s,h),e&&this.#$.ni(1)}zoom(t,i,s,h){this.stop(),this.#F=0,this.bi=0,this.#V=1,this.#B=h;const e=this.#u,r=e.F;return this.#X=r.Pi,this.#R=this.#X+t/(r.Ai*e.Ei/20),h||(this.#R=Math.min(r.Oi,Math.max(r.Di,this.#R))),this.#W=performance.now(),this.#Z=1,this.#H=0>i?1e3*Math.abs(this.#X-this.#R)/s:i,i}_t(t,i,s,h,e=0){this.#z.set(t,i,s,h,e),this.#$.set(t,i,s,h,e)}Fi(){const t=0===this.#W?1:Math.min(1,Math.max(0,(this.#u.main.now-this.#W)/this.#H)),i=this.#N.get(t);if(this.#Z){if(this.#F){const s=this.#z,h=this.#$,e=this.#Q,r=this.#N.get(Math.min(1,t/this.#K)),o=this.#N.get(Math.max(0,(t-e)/(1-e)));let n=0,a=s.Kt+(h.Kt-s.Kt)*((n=this.#G||this.#q)?1===n?r:o:i),c=s.Qt+(h.Qt-s.Qt)*((n=this.#U||this.#J)?1===n?r:o:i);const l=s.width+(h.width-s.width)*i,u=s.height+(h.height-s.height)*i;if(this.#u.is360){const t=ht(s.Kt,h.Kt);a=s.Kt+t*i}if(this.#u.O(a,c,l,u,0,1),this.#it){let i=this.#tt+Math.trunc(this.#it*this.#N.get(Math.min(1,1.5*t)));const s=this.#u.images.length/this.#u.Ii;0>i&&(i+=s),s>i||(i-=s),this.#u.zi(i,0)}}this.#V&&this.#u.F.$i(this.#X*(1-i)+this.#R*i,this.#B),1>t||(this.yi.oi(this.#u.view),this.#u.v(),this.stop())}return t}},Yt=class{arr;constructor(t=1,i=0,s=0,h=0,e=0,r=1,o=0,n=0,a=0,c=0,l=1,u=0,d=0,f=0,m=0,p=1){this.arr=new Float32Array([t,i,s,h,e,r,o,n,a,c,l,u,d,f,m,p])}Vi(){const t=this.arr;t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1}oi(t){this.arr.set(t.arr)}Yi(t){const i=this.arr,s=Math.sin(t),h=Math.cos(t),e=i[4],r=i[5],o=i[6],n=i[7],a=i[8],c=i[9],l=i[10],u=i[11];i[4]=e*h+a*s,i[5]=r*h+c*s,i[6]=o*h+l*s,i[7]=n*h+u*s,i[8]=a*h-e*s,i[9]=c*h-r*s,i[10]=l*h-o*s,i[11]=u*h-n*s}Xi(t){const i=this.arr,s=Math.sin(t),h=Math.cos(t),e=i[0],r=i[1],o=i[2],n=i[3],a=i[8],c=i[9],l=i[10],u=i[11];i[0]=e*h-a*s,i[1]=r*h-c*s,i[2]=o*h-l*s,i[3]=n*h-u*s,i[8]=e*s+a*h,i[9]=r*s+c*h,i[10]=o*s+l*h,i[11]=n*s+u*h}Ri(t){const i=this.arr,s=Math.sin(t),h=Math.cos(t),e=i[0],r=i[1],o=i[2],n=i[3],a=i[4],c=i[5],l=i[6],u=i[7];i[0]=e*h+a*s,i[1]=r*h+c*s,i[2]=o*h+l*s,i[3]=n*h+u*s,i[4]=a*h-e*s,i[5]=c*h-r*s,i[6]=l*h-o*s,i[7]=u*h-n*s}Bi(t){const i=this.arr;i[0]*=t,i[1]*=t,i[2]*=t,i[3]*=t,i[4]*=t,i[5]*=t,i[6]*=t,i[7]*=t}Ni(t,i,s){const h=this.arr;h[12]+=h[0]*t+h[4]*i+h[8]*s,h[13]+=h[1]*t+h[5]*i+h[9]*s,h[14]+=h[2]*t+h[6]*i+h[10]*s,h[15]+=h[3]*t+h[7]*i+h[11]*s}Pi(t,i,s,h){this.Vi();const e=this.arr,r=1/Math.tan(t/2),o=1/(s-h);e[0]=r/i,e[5]=r,e[10]=(h+s)*o,e[11]=-1,e[14]=2*h*s*o,e[15]=0}Wi(t){this.Vi();const i=this.arr,s=1/Math.tan(t/2);i[0]=s,i[5]=s}Hi(){const t=this.arr,i=t[0],s=t[1],h=t[2],e=t[3],r=t[4],o=t[5],n=t[6],a=t[7],c=t[8],l=t[9],u=t[10],d=t[11],f=t[12],m=t[13],p=t[14],g=t[15],M=i*o-s*r,_=i*n-h*r,w=i*a-e*r,v=s*n-h*o,y=s*a-e*o,b=h*a-e*n,k=c*m-l*f,x=c*p-u*f,T=c*g-d*f,S=l*p-u*m,E=l*g-d*m,C=u*g-d*p;let I=M*C-_*E+w*S+v*T-y*x+b*k;I&&(I=1/I,t[0]=(o*C-n*E+a*S)*I,t[1]=(h*E-s*C-e*S)*I,t[2]=(m*b-p*y+g*v)*I,t[3]=(u*y-l*b-d*v)*I,t[4]=(n*T-r*C-a*x)*I,t[5]=(i*C-h*T+e*x)*I,t[6]=(p*w-f*b-g*_)*I,t[7]=(c*b-u*w+d*_)*I,t[8]=(r*E-o*T+a*k)*I,t[9]=(s*T-i*E-e*k)*I,t[10]=(f*y-m*w+g*M)*I,t[11]=(l*w-c*y-d*M)*I,t[12]=(o*x-r*S-n*k)*I,t[13]=(i*S-s*x+h*k)*I,t[14]=(m*_-f*v-p*M)*I,t[15]=(c*v-l*_+u*M)*I)}Zi(t){const i=this.arr,s=t.arr;let h=i[0],e=i[1],r=i[2],o=i[3];i[0]=h*s[0]+e*s[4]+r*s[8]+o*s[12],i[1]=h*s[1]+e*s[5]+r*s[9]+o*s[13],i[2]=h*s[2]+e*s[6]+r*s[10]+o*s[14],i[3]=h*s[3]+e*s[7]+r*s[11]+o*s[15],h=i[4],e=i[5],r=i[6],o=i[7],i[4]=h*s[0]+e*s[4]+r*s[8]+o*s[12],i[5]=h*s[1]+e*s[5]+r*s[9]+o*s[13],i[6]=h*s[2]+e*s[6]+r*s[10]+o*s[14],i[7]=h*s[3]+e*s[7]+r*s[11]+o*s[15],h=i[8],e=i[9],r=i[10],o=i[11],i[8]=h*s[0]+e*s[4]+r*s[8]+o*s[12],i[9]=h*s[1]+e*s[5]+r*s[9]+o*s[13],i[10]=h*s[2]+e*s[6]+r*s[10]+o*s[14],i[11]=h*s[3]+e*s[7]+r*s[11]+o*s[15],h=i[12],e=i[13],r=i[14],o=i[15],i[12]=h*s[0]+e*s[4]+r*s[8]+o*s[12],i[13]=h*s[1]+e*s[5]+r*s[9]+o*s[13],i[14]=h*s[2]+e*s[6]+r*s[10]+o*s[14],i[15]=h*s[3]+e*s[7]+r*s[11]+o*s[15]}Ai(t,i,s=1){const h=this.arr;h[0]*=t,h[1]*=t,h[2]*=t,h[3]*=t,h[4]*=i,h[5]*=i,h[6]*=i,h[7]*=i,h[8]*=s,h[9]*=s,h[10]*=s,h[11]*=s}ji(t,i,s,h,e,r,o,n,a){const c=this.arr;let l=h-t,u=e-i,d=r-s;const f=Math.sqrt(l*l+u*u+d*d)||1;l/=f,u/=f,d/=f;let m=u*a-d*n,p=d*o-l*a,g=l*n-u*o;const M=Math.sqrt(m*m+p*p+g*g)||1;m/=M,p/=M,g/=M;const _=p*d-g*u,w=g*l-m*d,v=m*u-p*l;c[0]=m,c[1]=_,c[2]=-l,c[3]=0,c[4]=p,c[5]=w,c[6]=-u,c[7]=0,c[8]=g,c[9]=v,c[10]=-d,c[11]=0,c[12]=-(m*t+p*i+g*s),c[13]=-(_*t+w*i+v*s),c[14]=l*t+u*i+d*s,c[15]=1}},Xt=class{x;y;z;w;constructor(t=0,i=0,s=0,h=1){this.x=t,this.y=i,this.z=s,this.w=h}oi(t){this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w}Gi(t){const i=t.arr,s=this.x,h=this.y,e=this.z,r=i[3]*s+i[7]*h+i[11]*e+i[15]||1;this.x=(i[0]*s+i[4]*h+i[8]*e+i[12])/r,this.y=(i[1]*s+i[5]*h+i[9]*e+i[13])/r,this.z=(i[2]*s+i[6]*h+i[10]*e+i[14])/r,this.w=r}Ui(){let t=this.x*this.x+this.y*this.y+this.z*this.z;t>0&&(t=1/Math.sqrt(t)),this.x*=t,this.y*=t,this.z*=t}},Rt=class{canvas;#st=-1;#ht=-1;#et=-1;constructor(t){this.canvas=t}qi(t,i,s,h){const e=this.canvas,r=e.main.el,o=(Math.min(t,s)-r.left)/r.scale,n=(Math.min(i,h)-r.top)/r.scale,a=(Math.max(t,s)-r.left)/r.scale,c=(Math.max(i,h)-r.top)/r.scale,l=o+(a-o)/2,u=n+(c-n)/2,d=Math.max(a-o,c-n),f=this.#st-d;if(e.Ji.stop(),this.#ht>0){const t=this.#ht-l,i=this.#et-u;this.Ki(f,t,i,l,u,r,e)}else e.wt.stop();this.#ht=l,this.#et=u,this.#st=d}Qi(){}ts(){this.#rt()}#rt(){this.#st=-1,this.#ht=-1,this.#et=-1}vt(t,i,s,h,e,r,o,n,a,c,l,u){const d=this.canvas,f=d.wt;d.Ji.stop();const m=this.ss(t);return f.ni=0,e=f.Ti(m,i,s,h,e,u,{speed:r,perc:o,isJump:n,limitViewport:a,omniIdx:l,correct:c}),f.ni=0,f.bi=1,e}ss(t){return t}setCoo(t,i,s,h=0,e=0,r=0,o=nt){if(this.hs(t,i,s))return 0;const n=this.canvas;0===s&&(s=n.es()),s=this.rs(s),n.Ji.stop();const{w:a,h:c}=this.cs(s);return this.ls(t,i,a,c,h),h=n.wt.Ti(t,i,a,c,h,o,{speed:e}),n.wt.ni=0===h||r,n.wt.bi=h>0,h}hs(t,i,s){return 0}rs(t){return t}ls(t,i,s,h,e){}},Bt=class extends Rt{Ai=1;N=1;H=1;ai=1;#ot=1;B=1;#nt=new Ft;#at=new Ft;#ct=new Ft;#lt=0;#ut=0;#dt=0;#ft=new Yt;cpw=-1;cph=-1;#mt=1;constructor(t){super(t)}D(t,i,s,h){const e=this.canvas;(e.Ft||e.us)&&(h=1);const r=e.el,o=e.ds?e.parent.el.ratio:r.ratio,n=e.view,a=this.#at;s&&(t-=r.left,i-=r.top);const c=t/this.Ai*o/e.width+n.x0,l=i/this.Ai*o/e.height+n.y0;return a.x=h?c:Math.max(n.lX0,Math.min(n.lX1,c)),a.y=h?l:Math.max(n.lY0,Math.min(n.lY1,l)),a.scale=this.Ai,a.di(),this.#at}Y(t,i,s){const h=this.canvas,e=h.el,r=h.ds?h.parent.el.ratio:e.ratio,o=this.#nt;return o.x=(t-h.view.x0)*h.width*this.Ai/r+(s?e.left:0),o.y=(i-h.view.y0)*h.height*this.Ai/r+(s?e.top:0),o.scale=this.Ai/r,o.di(),o}R(t,i,s,h,e){return this.gt(t-.5,i-.5,s,h,e)}gt(t,i,s,h=0,e=0){const r=this.canvas,o=r.el,n=this.#ft,a=r.F.fs,c=r.ds?r.parent.el.ratio:o.ratio;a.x=t,a.y=i,a.z=s,a.w=1,n.Vi(),!e&&r.ps&&n.Pi(r.ps,r.aspect,1e-4,100),r.gs&&n.Ni(0,0,r.gs),r.Ms&&n.Ni(r.Ms,0,0),!e&&r._s&&n.Yi(r._s);const l=r.images.length/r.Ii,u=r.layer*l,d=r.images.length>0?-(r.Li+1-u)/l*2*Math.PI:0;n.Xi(h+d),a.Gi(n);const f=this.#nt;return f.x=(.5+a.x-r.view.x0)*r.width*this.Ai/c+(e?o.left:0),f.y=(.5+a.y-r.view.y0)*r.height*this.Ai/c+(e?o.top:0),f.w=-a.w-r.gs,f.di(),f}ws(){const t=this.canvas,i=t.el,s=i.width/t.width,h=i.height/t.height;if(!t.view.ri&&this.cpw===s&&this.cph===h)return void(t.K!==this.#mt&&this.tt());this.cpw=s,this.cph=h,this.#ot=Math.min(s,h),this.B=Math.max(s,h);const e=t.view.si/t.view.hi;if(t.view.ri=0,1>t.view.si||1>t.view.hi){const i=s/h;this.B/=i>e?t.view.si/i:t.view.hi*i}if(this.tt(),i.width&&i.height&&!this.canvas.wt.xi()&&(t.view.oi(t.wt.yi,1),!t.is360)){const i=t.wt.ni;t.wt.ni=0,this.vs(),t.wt.ni=i}}tt(t=0){const i=this.canvas;if(this.N=i.K?this.B:this.#ot,!t&&!i.main.ys&&(0===i.Li&&!i.K||i.Li>0&&!i.K)){const t=i.focus.width*i.width,s=i.focus.height*i.height,h=i.el.width,e=i.el.height;this.N=h/e>t/s?e/s:h/t}this.ai=this.N>1&&i.maxScale<this.N?this.N:Math.max(this.N,i.maxScale*i.bs/i.el.scale),this.#mt=i.K}_i(){return 1>this.H&&this.Ai<this.N}j(t=0){return st(this.Ai,this.N*(t?this.H:1))||this.Ai<=this.N*(t?this.H:1)}Z(){return st(this.Ai,this.ai)||this.Ai>=this.ai}vs(){if(-1===this.cpw)return 0;const t=this.canvas,i=this.canvas.view,s=!t.us&&t.wt.ni;!t.wt.ki&&(s||!t.wt.bi&&t.K)&&i.ni(0);const h=i.width,e=i.height,r=this.cpw,o=this.cph;this.Ai=Math.min(r/h,o/e),s&&!this.#lt&&this.Ai>=this.ai&&t.wt.bi&&(this.Ai=this.ai),(!t.wt.ki&&!this.#lt||t.K)&&(this.Ai=Math.max(this.N*this.H,this.Ai)),!this.#ut&&t.ks&&(this.Ai=this.B);const n=r/this.Ai-h,a=o/this.Ai-e;return i.set(i.Kt,i.Qt,i.width+n,i.height+a),!this.#ut&&t.ks&&this.canvas.wt.yi.oi(i),!t.wt.ki&&t.K&&i.ni(0),this.#ut=this.cpw>0,this.#dt?(this.#dt=0,this.setCoo(this.#ct.x,this.#ct.y,this.#ct.scale),0):1}xs(){const t=this.canvas.view;return!this.canvas.us&&((!st(t.x0,t.lX0)&&t.x0<t.lX0)!=(!st(t.x1,t.lX1)&&t.x1>t.lX1)||(!st(t.y0,t.lY0)&&t.y0<t.lY0)!=(!st(t.y1,t.lY1)&&t.y1>t.lY1)||!st(this.Ai,this.ai)&&this.Ai>this.ai)}bt(t,i,s=0,h=0,e=0,r=0){const o=this.canvas;if((this._i()||this.#lt)&&!e)return;this.canvas.us&&(h=1);const n=o.ds?o.parent.el.ratio:o.el.ratio,a=o.view,c=t/o.width/this.Ai*n,l=i/o.height/this.Ai*n,u=a.Kt+c,d=a.Qt+l,f=a.width,m=a.height;this.#lt?(o.view.set(u,d,f,m),o.O(u,d,f,m,h,0,0,0)):e||!this.xs()||r?(o.wt.stop(),0===s?(r||o.Ji.addStep(4*t,4*i),o.view.set(u,d,f,m),h||o.view.ni(0,0,o.us),o.O(u,d,f,m,h,0,0,r),o.view.ei=1):o.wt.Ti(u,d,f,m,s,nt)):o.wt.xi()?o.wt.Si(u,d,a.width,a.height,1):o.wt.Ti(u,d,f,m,150,nt,{limitViewport:!h&&!this.#lt,correct:!h})}yt(t,i,s,h=0,e){const r=this.canvas;if(r.Ji.stop(),!this.#lt&&this.Z()&&0>t)return 0;if(this.canvas.us&&(e=1),t>0&&this.j()&&this.H>=1&&(!this.#lt||r.K))return 0;const o=r.el,n=r.view,a=this.cpw/this.cph;let c=t*(o.width/512)/r.width/this.Ai,l=c/a;0>t&&-1>c&&(c=-.9999),0>t&&-1>l&&(l=-.9999);const u=!e&&!r.us&&r.wt.ni&&0===h,d=r.ds?r.parent.el.ratio:o.ratio;i-=o.left,s-=o.top;const f=this._i(),m=i>0&&!f?i/o.width*d:.5,p=s>0&&!f?s/o.height*d:.5,g=n.Kt+c*(.5-m),M=n.Qt+l*(.5-p),_=n.width+c,w=n.height+l;return r.wt.ni=u,h=r.wt.Ti(g,M,_,w,h,nt,{limitViewport:!e&&!this.#lt,correct:u}),r.wt.yi.oi(r.view),r.wt.ni=!e,h}Ki(t,i,s,h,e,r,o){!this.canvas.main.Ts&&this.Ai>this.N&&this.bt(i,s,0,0,1),this.yt(2*t*r.scale,h,e,0,!this.canvas.Ss),o.wt.ni=!!this.canvas.Ss}Qi(){this.#lt=1}ts(){this.#pt(),this.#lt=0,super.ts()}#pt(){if(this.canvas.us)return;const t=this.canvas.view,i=this.Ai>this.ai,s=i?this.cpw/this.ai:t.width,h=i?this.cph/this.ai:t.height,e=s/2,r=h/2,o=t.si/2,n=t.hi/2,a=o>e?Math.max(t.lX0+e,Math.min(t.Kt,t.lX1-e)):t.ti,c=n>r?Math.max(t.lY0+r,Math.min(t.Qt,t.lY1-r)):t.ii;this.canvas.wt.Ti(a,c,s,h,150,nt,{correct:1})}hs(t,i,s){if(!this.#ut){this.#dt=1;const h=this.#ct;return h.x=t,h.y=i,h.scale=s,this.vs(),1}return 0}rs(t){return Math.max(this.N,t)}cs(t){return{w:1/t*this.cpw,h:1/t*this.cph}}ls(t,i,s,h,e){0===e&&(t+s/2>1&&(t=1-s/2),0>t-s/2&&(t=s/2),i+h/2>1&&(i=1-h/2),0>i-h/2&&(i=h/2))}G=0;U=0;Es(){const t=this.canvas,i=t.view,s=t.F,h=s.Cs;h.Pi(s.Pi,t.el.gi,1e-4,100),h.Ni(-(i.Kt-.5)*t.aspect,i.Qt-.5,-i.height/2)}},Nt=class{Is;Ls;#d;Ps;As;Os;#gt;Ds;Fs;constructor(t,i,s,h,e,r,o){this.#d=t,this.Ps=i,this.As=s,this.Os=h,this.#gt=e,this.Ds=r,this.Fs=o,this.Is=e/t.width,this.Ls=e/t.height}zs(t,i){const s=t-this.As,h=s%this.Ds,e=Math.floor(s/this.Ds),r=this.#d;return i.x0=r.x0+h*this.#gt/r.width*r.$s,i.y0=r.y0+e*this.#gt/r.height*r.Vs,i.x1=r.x0+Math.min((h+1)*this.#gt/r.width,1)*r.$s,i.y1=r.y0+Math.min((e+1)*this.#gt/r.height,1)*r.Vs,i.image=r,i.layer=this.Ps,i.x=h,i.y=e,i}},Wt=(t,i)=>i-t,Ht=class t{static#Mt=[];static#_t=new Uint8Array(0);static#wt=0;#vt=new Xt;#yt=new Yt;#bt=0;Ys=[];#kt=0;Xs=0;x0=0;y0=0;x1=1;y1=1;$s=1;Vs=1;#xt=.5;#Tt=.5;#St=1;#Et=1;#Ct=0;#It=0;#Lt=-1;#Pt=0;#At=0;Rs=0;Bs;#Ot=0;#Dt=0;Ns=0;#Ft=0;Ws=0;static#zt=new Float64Array(200);static#$t=new Float64Array(200);static#Vt=new Float64Array(200);static#Yt=0;static#Xt=0;#u;Ps;nt;width;height;#gt;#Rt;At;#Bt;opacity;Hs;lt;ut;dt;#Nt;#Wt;constructor(t,i,s,h,e,r,o,n,a,c,l,u,d,f,m,p,g){this.#u=t,this.Ps=i,this.nt=s,this.width=h,this.height=e,this.#gt=r,this.#Rt=o,this.At=a,this.#Bt=c,this.opacity=l,this.Hs=u,this.lt=d,this.ut=f,this.dt=m,this.#Nt=p,this.#Wt=g;const M=h>e?h:e;this.#Ft=this.#u.is360&&this.nt>0,this.#kt=n&&!o?2:1;for(let w=r;w<M*t.main.Zs;w*=2)this.#kt++;(t.main.Gs||this.#Wt>0)&&(this.#kt-=3-t.main.Us),this.#Wt>0&&this.#kt--,this.#kt=Math.max(1,this.#kt);let _=c;for(let w=0;w<this.#kt;w++){const t=tt(w)*this.#gt,i=Math.ceil(h/t),s=Math.ceil(e/t);this.Ys.push(new Nt(this,this.Ys.length,_,this.Bs=_+=i*s,t,i,s))}}ct(t,i,s,h){this.x0=t,this.y0=i,this.x1=s,this.y1=h,this.#St=s+(t>s?1:0)-t,this.#Et=h-i,this.#xt=t+this.#St/2,this.#Tt=i+this.#Et/2,this.#u.is360&&(this.#xt=K(this.#xt)),this.$s=this.#St,this.Vs=this.#Et,this.#Ot=this.width/this.height,this.#bt=this.#Ot>this.#u.aspect?this.#u.width/this.width*this.$s:this.#u.height/this.height*this.Vs,this.#u.is360&&this.#Ht()}#Ht(){let t=2*(this.#xt-.5)*Math.PI;const i=(this.#Tt-.5)*Math.PI;t+=this.#u.F.qs,this.#Ct=Math.cos(i)*Math.sin(t),this.#It=Math.sin(i),this.#Lt=Math.cos(i)*Math.cos(t),this.#Pt=2*this.#St*Math.PI,this.#At=this.#Et*Math.PI}#Zt(){if(!this.#u.is360)return 0;const t=this.#u.F,i=this.#Ct*t.Js+this.#It*t.Ks+this.#Lt*t.Qs;return Math.acos(Math.max(-1,Math.min(1,i)))<t.th+Math.max(this.#Pt,this.#At)/2}#jt(){if(this.#Ft)return!this.#Zt();{const t=this.#u.view;return!(this.x1>t.x0&&this.x0<t.x1&&this.y1>t.y0&&this.y0<t.y1)}}ih(){return this.#Wt>0&&this.#Wt>this.#u.camera.Ai||(this.At||this.nt>0)&&0===this.opacity&&0===this.Hs?0:this.Ps===this.#u.Li||this.#u.is360&&0===this.nt?1:!this.#jt()}sh(t){const i=this.Hs;if(this.opacity===i)return 0;const s=1/(this.#u.main.hh*this.#u.main.eh);return this.opacity=Math.min(1,Math.max(0,t?i:i>this.opacity?Math.min(i,this.opacity+s):Math.max(i,this.opacity-s))),this.opacity!==i}rh(i){if(0>=this.opacity)return 0;this.#Dt=0;const s=t.#Mt;let h=t.#_t;if(this.#Ft){if(i=this.#Gt(i),!(this.Ns=i>0))return 0}else i=Math.max(i,this.#u.camera.N)*this.#bt;const e=this.Bs-this.#Bt;h.length<e?h=t.#_t=new Uint8Array(e):h.fill(0,0,e),t.#wt=this.#Bt;const r=this.Bs-1,o=r-this.#Bt;0===this.Rs?(s.push(r),h[o]=1,this.#u.main.oh(r,1,1)):this.#Ft&&(s.push(r),h[o]=1,this.#Dt++);const n=this.#Ut(i),a=this.#u;if(0===this.nt&&a.is360)this.#qt(this.Ys[n]);else if(this.#Ft)this.#Jt(n),this.#Dt++;else if(a.visible.x0<a.visible.x1&&a.visible.y0<a.visible.y1){const t=a.view;this.#Kt(n,Math.max(a.visible.x0,t.x0),Math.max(a.visible.y0,t.y0),Math.min(a.visible.x1,t.x1),Math.min(a.visible.y1,t.y1))}s.sort(Wt);for(const t of s)a.nh.push(t);return s.length=0,this.#Dt}#Ut(t){let i=this.#Rt||this.#u.ah?this.#kt:1+this.#u.main.uh;if(!this.#Rt&&!this.#u.ah)for(;i<this.#kt&&1>tt(i)*t;i++);return this.Xs=i-1}#Kt(t,i,s,h,e){if(this.#jt())return;const r=this.Ys[t],o=r.Is,n=r.Ls,a=this.$s,c=this.Vs,l=Math.min(r.Ds-1,Math.floor(Math.max(0,h-this.x0)/a/o)),u=Math.min(r.Fs-1,Math.floor(Math.max(0,e-this.y0)/c/n)),d=Math.floor(Math.max(0,i-this.x0)/a/o);let f=Math.floor(Math.max(0,s-this.y0)/c/n);for(;u>=f;f++)for(let t=d;l>=t;t++)this.#Qt(r,t,f)}#Jt(t){if(this.#jt())return;const i=this.Ys[t],s=this.#u,h=s.view.Qt,e=s.view.width+.1,r=s.view.height+.1,o=this.#xt,n=this.#Tt,a=this.#St,c=this.#Et,l=Math.max(h-r/2,n-c/2),u=Math.min(h+r/2,n+c/2);if(l>=u)return;const d=s.is360?K(s.view.Kt+s.F.dh):s.view.Kt;let f,m;if(s.is360){const t=K(d-e/2),i=K(d+e/2),s=K(o-a/2),h=K(o+a/2);if(i>t&&h>s){if(f=Math.max(t,s),m=Math.min(i,h),f>=m)return}else if(t>i&&h>s){if(s>i&&t>h)return;f=s,m=h}else if(i>t&&s>h){if(t>h&&s>i)return;f=t,m=i}else f=Math.max(t,s),m=Math.min(i,h);const r=o-a/2;o+a/2>1?(r>f&&(f+=1),r>m&&(m+=1)):f>o+.5?f-=1:m>o+.5&&(m-=1)}else if(f=Math.max(d-e/2,o-a/2),m=Math.min(d+e/2,o+a/2),f>=m)return;const p=o-a/2,g=n-c/2,M=i.Is,_=i.Ls,w=Math.floor(Math.max(0,Math.min(1,(f-p)/a))/M),v=Math.min(i.Ds-1,Math.floor(Math.max(0,Math.min(1,(m-p)/a))/M)),y=Math.floor(Math.max(0,Math.min(1,(l-g)/c))/_),b=Math.min(i.Fs-1,Math.floor(Math.max(0,Math.min(1,(u-g)/c))/_));for(let k=y;b>=k;k++)for(let t=w;v>=t;t++)this.#Qt(i,t,k)}#Qt(i,s,h){const e=t.#_t,r=t.#wt,o=Math.min(this.Bs-1,i.As+h*i.Ds+s),n=o-r;if(n<e.length){if(e[n])return;e[n]=1}t.#Mt.push(o),1>this.#u.main.oh(o,o===this.Bs-1,this.#u.$t)?this.#Rt||this.#u.ah||i.Ps>=this.#kt-1||this.#Qt(this.Ys[i.Ps+1],s>>1,h>>1):this.#Dt++}fh(t){const i=this.#u.main.mh,s=2*Math.PI*this.#u.F.ph,h=this.#vt,e=this.#yt,r=this.x0+this.$s/2,o=this.y0+this.Vs/2,n=this.#u.F.gh(r-this.#u.F.dh,o,1,5);e.Vi(),e.Ni(n.x,n.y,n.z),e.Xi(Math.atan2(n.x,n.z)+Math.PI+this.ut),e.Yi(-Math.sin((o-.5)*Math.PI)-this.lt),e.Ri(-this.dt),e.Bi(.5*this.#Nt);const a=(t.x0-r)*s,c=(t.x1-r)*s,l=.5*-(t.y0-o)*s,u=.5*-(t.y1-o)*s,d=(t,i)=>{h.x=0,h.y=0,h.z=0,e.Ni(t,i,0),h.Gi(e),e.Ni(-t,-i,0)};d(a,l),i[0]=h.x,i[1]=h.y,i[2]=h.z,d(a,u),i[3]=h.x,i[4]=h.y,i[5]=h.z,d(c,l),i[6]=h.x,i[7]=h.y,i[8]=h.z,d(c,u),i[12]=h.x,i[13]=h.y,i[14]=h.z,i[9]=i[3],i[10]=i[4],i[11]=i[5],i[15]=i[6],i[16]=i[7],i[17]=i[8]}#Gt(t){if(this.#Ft)return t*Math.max(2*this.#St,this.#Et)*(this.#u.width/this.width);const i=this.#St,s=this.#Et,h=this.#xt,e=this.#Tt,r=this.#u.el,o=this.#u.F,n=r.width,a=s/2.5;let c=0;const l=o.V(h-i/2,e-a);if(l.li(r)&&c++,o.V(h+i/2,e-a).li(r)&&c++,o.V(h-i/2,e+a).li(r)&&c++,o.V(h+i/2,e+a).li(r)&&c++,0===c)return 0;const u=l.w>0||0>l.x?0:Math.min(n,l.x),d=l.w>0||l.x>n?n:Math.max(0,l.x);return Math.min(1,(d-u)/this.width)}#qt(i){const s=this.#u,h=s.el.width,e=s.el.height,r=s.F.th>Math.PI/2?20:12,o=s.F.dh;t.#Yt=0;const n=(i,h)=>{const e=s.F.D(i,h),r=t.#Yt++;t.#zt[r]=e.x,t.#$t[r]=e.y};for(let t=0;r>=t;t++){const i=t/r;n(i*h,0),n((1-i)*h,e),n(h,i*e),n(0,(1-i)*e)}for(let t=1;3>=t;t++){const i=e*t/4;for(let t=1;3>=t;t++)n(h*t/4,i);n(h*t/4,e-1)}const a=t.#Yt;let c=1/0,l=-1/0;for(let b=0;a>b;b++){const i=t.#$t[b];c>i&&(c=i),i>l&&(l=i)}c=Math.max(0,c-.001),l=Math.min(1,l+.05);const u=t.#zt,d=t.#Vt;for(let t=0;a>t;t++)u[t]=K(u[t]-o);t.#Xt=0;for(let b=0;a>b;b++){const i=u[b];let s=0;for(let h=0;h<t.#Xt;h++)if(1e-8>Math.abs(d[h]-i)){s=1;break}s||(d[t.#Xt++]=i)}const f=t.#Xt;for(let t=1;f>t;t++){const i=d[t];let s=t-1;for(;s>=0&&d[s]>i;)d[s+1]=d[s],s--;d[s+1]=i}let m=0,p=1,g=0;if(2>f)g=1,c=0,l=1;else{let t=0,i=-1;for(let e=0;f-1>e;e++){const s=d[e+1]-d[e];s>t&&(t=s,i=e)}const s=d[0]+1-d[f-1],h=s>t;h&&(t=s,i=f-1),.999999>1-t?h?(m=d[0],p=d[f-1]):(m=d[(i+1)%f],p=d[i]+1):g=1}(.05>c||l>.95)&&(g=1);const M=i.Ls,_=i.Is;let w=Math.max(0,Math.floor((c-.001)/M)),v=Math.min(i.Fs-1,Math.max(0,Math.floor((l+M-1e-10)/M)));1e-5>c&&(w=0),l>.99999&&(v=i.Fs-1);const y=p>1;for(let t=w;v>=t;t++)if(g)for(let s=0;s<i.Ds;s++)this.#Qt(i,s,t);else{const s=Math.max(0,Math.floor((m-.001)/_)-1);if(y){for(let e=s;e<i.Ds;e++)this.#Qt(i,e,t);const h=Math.min(i.Ds-1,Math.ceil(K(p+.001)/_));for(let s=0;h>=s;s++)this.#Qt(i,s,t)}else{const h=Math.min(i.Ds-1,Math.ceil((p+.001)/_));for(let e=s;h>=e;e++)this.#Qt(i,e,t)}}}},Zt=class extends Rt{Cs=new Yt;#ti=new Yt;#ii=new Yt;#si=1;#hi=new Yt;#ei=new Xt;ph=10;Ai=0;#ri=1;#oi=0;dh=0;#ni=0;#ai=0;qs=0;G=0;U=0;Mh=Math.PI/2;Pi=Math.PI/2;Oi=Math.PI/2;Di=Math.PI/2;Js=0;Ks=0;Qs=-1;th=0;fs=new Xt;#at=new Ft;constructor(t){super(t),this.qs=-this.canvas._h,this.dh=this.qs/(2*Math.PI),this.#ri=this.canvas.height/(this.canvas.width/2),this.#oi=(1-this.#ri)/4,this.G=this.qs,this.wh()}it(t,i){this.#ni=t,this.#ai=i,this.Oi=Math.PI/2,i>0&&(this.Oi=Math.min(this.Oi,this.Oi*i*1.5)),this.$i(this.Pi,1)}wh(t=0){const i=this.canvas.el;t||this.Cs.Pi(this.Pi,i.gi,1e-4,20),this.#si=1;const s=this.Cs;this.U=Math.min(Math.PI/2,Math.max(-Math.PI/2,this.U)),s.Yi(this.U),s.Xi(this.G),s.Ni(this.#ei.x,this.#ei.y,this.#ei.z);const h=this.#hi;h.Wi(this.Pi),h.Ni(0,0,i.height/i.ratio/2),h.Yi(-this.U),h.Xi(this.G),this.#at.direction=(this.G/Math.PI*180%360+360)%360}wi(t,i,s=0){const h=this.canvas,e=h.el;this.G+=t*e.ratio/e.width*this.Pi*e.gi,this.U+=i*e.ratio/e.height*this.Pi*this.#ri,this.G=Q(this.G),(h.K||this.#ai>0)&&this.#ci(),this.#ni>0&&this.#li(),0===s&&h.Ji.addStep(2*t,2*i),this.wh(),this.yh(),this.#ui()}#ci(){const t=this.Pi/2,i=Math.PI*this.#ri/2*(this.#ai>0?this.#ai:1);this.U=this.U>0?Math.min(i,this.U+t)-t:Math.max(-i,this.U-t)+t}#li(){const t=this.Pi/2*this.canvas.el.gi,i=Math.PI*(this.#ni>0?this.#ni:1);let s=this.G;for(;s>=Math.PI;)s-=2*Math.PI;for(;s<-Math.PI;)s+=2*Math.PI;this.G=Q(Math.min(Math.max(i,t)-t,Math.max(Math.min(-i,-t)+t,s)))}#di(t,i,s,h=0,e=0,r=0){const o=this.canvas;if(t/=2,0!==i)i=o.wt.zoom(t,i,h,s);else{t/=this.Ai*o.Ei/20;const i=e>0&&r>0;let h=0,n=0;if(i){const t=this.D(e,r);h=t.x,n=t.y}if(this.$i(this.Pi+t,s),i){const t=this.D(e,r);let i=h-t.x;i>.5&&(i-=1),-.5>i&&(i+=1);const s=n-t.y;this.G+=i*Math.PI*2,this.U+=s*Math.PI*this.#ri,this.G=Q(this.G),(o.K||this.#ai>0)&&this.#ci(),this.#ni>0&&this.#li(),this.wh(),this.#fi(),this.yh(),this.#ui()}}return i}$i(t,i){const s=this.canvas;this.Pi=t,i&&!s.is360||(this.Pi=Math.min(this.Oi,Math.max(this.Di,this.Pi))),(s.K||this.#ai>0)&&this.#ci(),this.#ni>0&&this.#li(),this.Cs.Pi(this.Pi,s.el.gi,1e-4,20),this.#fi(),this.wh(1),this.yh(),this.#ui()}#fi(){const t=this.canvas.el,i=t.width/2,s=t.height/2,h=this.D(i,s).x,e=this.D(i+1,s+1).x;this.Ai=1/(e+(h>e?1:0)-h)/this.canvas.width}q(t,i,s=0){this.G=Q(t-this.qs),this.U=i,0!==s?this.$i(s,0):this.wh(),this.yh(),this.#ui()}O(t,i,s,h,e){if(null==t||null==i||null==h)return 0;const r=e?.noLimit??0,o=e?.correctNorth?t+this.dh:t;return this.G=(o-.5)*Math.PI*2,this.U=(i-.5)*Math.PI*this.#ri,this.$i(Math.min(this.Oi,h*Math.PI*this.#ri),r),this.yh(),this.#ui(),1}#ui(){const t=this.canvas,i=K(this.G/(2*Math.PI)+.5),s=this.U/this.#ri/Math.PI+.5,h=this.Pi/Math.PI/this.#ri,e=h*(0===t.el.width?1:.5*Math.sqrt(t.el.gi))/(t.aspect/2);t.view.set(i,s,e,h),t.view.ei=1}yh(){const t=this.G,i=this.U;this.Js=Math.cos(i)*Math.sin(t),this.Ks=Math.sin(i),this.Qs=Math.cos(i)*Math.cos(t);const s=2*Math.atan(1/this.Pi),h=this.canvas.el.width/this.canvas.el.height,e=s/2,r=Math.atan(Math.tan(e)*h);this.th=2*r}bh(t,i,s,h=0){const e=this.#ei,r=s*Math.PI*2+h;e.x=-t*Math.sin(r),e.y=i,e.z=t*Math.cos(r),this.canvas.view.ei=1,this.wh()}kh(){const t=this.canvas,i=t.el;this.Di=Math.min(.5,i.height/t.height)/t.maxScale*this.#ri*Math.PI/i.ratio*i.scale,this.$i(this.Pi,1)}#mi(){this.#si&&(this.#ii.oi(this.Cs),this.#ii.Hi(),this.#si=0)}D(t,i){const s=this.canvas.el,h=this.fs,e=this.#at;return h.x=t*s.ratio/s.width*2-1,h.y=-(i*s.ratio/s.height*2-1),h.z=1,h.w=1,this.#mi(),h.Gi(this.#ii),h.Ui(),e.x=Math.atan2(h.x,-h.z)/Math.PI/2+.5,e.y=.5-Math.asin(h.y)/Math.PI/this.#ri,e.scale=this.Ai,e.w=this.#ei.x+this.#ei.z,e.direction=this.G+this.qs,e.di(),e}V(t,i){const s=this.canvas.el,h=this.fs,e=this.#at;return this.gh(t+this.dh,i),e.x=(h.x+1)/2*s.width/s.ratio,e.y=(1-h.y)/2*s.height/s.ratio,e.scale=this.Ai,e.w=-h.w,e.di(),e}gh(t,i,s=0,h=this.ph){const e=this.fs;t*=2*-Math.PI,i-=.5,i*=-Math.PI,i*=this.#ri;const r=Math.cos(i);return e.x=r*Math.sin(t)*h,e.y=Math.sin(i)*h,e.z=r*Math.cos(t)*h,e.w=1,s||e.Gi(this.Cs),e}rt(t,i,s,h,e,r,o,n=0,a=1,c=1,l=0){isNaN(h)&&(h=this.ph);const u=this.#ti,d=this.fs,f=this.ph,m=this.#ei;u.Vi(),h*=this.ph*(100/(2*Math.PI)),t*=2*-Math.PI,i-=.5,i*=Math.PI*this.#ri;const p=Math.cos(i);return d.x=p*Math.sin(t),d.y=Math.sin(i),d.z=p*Math.cos(t),u.Ni(m.x*h/f,-m.y*h/f+n*f,m.z*h/f),u.Ni(d.x*h,d.y*h,d.z*h),u.Xi(Math.atan2(d.x,d.z)+Math.PI+r),u.Yi(d.y+e),u.Ri(o),u.Ai(a,c),u.Bi(s/Math.PI/f),u.Zi(this.#hi),u}xh(t,i,s,h){i*=this.#ri,i/=2,i-=.25,i+=this.#oi,h*=this.#ri,h/=2;const e=this.canvas.main.Th,r=this.ph,o=s/16,n=h/16,a=2*Math.PI;for(let c=0;16>c;c++)for(let s=0;16>s;s++){const h=18*(16*c+s),l=-K(t+o*s+this.dh)*a,u=-(i+n*c)*a,d=-K(t+o*(s+1)+this.dh)*a,f=-(i+n*(c+1))*a,m=Math.cos(l)*r||0,p=Math.sin(l)*r||0,g=Math.cos(d)*r||0,M=Math.sin(d)*r||0,_=Math.cos(u),w=Math.cos(f),v=Math.sin(u)*r,y=Math.sin(f)*r;e[h+0]=_*p,e[h+1]=v,e[h+2]=_*m,e[h+3]=e[h+9]=w*p,e[h+4]=e[h+10]=y,e[h+5]=e[h+11]=w*m,e[h+6]=e[h+15]=_*M,e[h+7]=e[h+16]=v,e[h+8]=e[h+17]=_*g,e[h+12]=w*M,e[h+13]=y,e[h+14]=w*g}}N=0;ai=0;B=0;H=1;tt(){}xs(){return 0}_i(){return 0}j(t=0){return this.Pi>=this.Oi}Z(){return this.Pi<=this.Di}bt(t,i,s=0,h=0,e=0,r=0){this.wi(t,i,s)}yt(t,i,s,h=0,e){return this.#di(t,h,e,0,i,s)}Ki(t,i,s){this.#di(2*t,0,0),this.wi(i,s)}ss(t){const i=this.canvas.view.Kt;return i+ht(i,t)}cs(t){const i=this.canvas.main.el;return{w:1/t*i.width,h:1/t*i.height}}},jt=class t{view;focus;wt;Ji;X;F;camera;#pi=new Ot;el=new zt;images=[];Ei=0;#gi=[];#Mi;#_i;#wi;visible;#vi;#yi=1;#bi=0;#ki=0;#xi=0;get zIndex(){return this.#ki}set zIndex(t){this.#ki!==t&&(this.#ki=t,this.parent&&(this.parent.#xi=1))}nh=[];aspect;#Ti=0;#Si=0;$t=0;#Ei=0;#Ci=0;Li=-1;ps=0;_s=0;gs=0;Ms=0;ah=0;layer=0;Sh;#gt;is360;Ft;#Ii;us;ks;maxScale;bs;Ci;_h;#Li;#Pi;isOmni;Ss;Ii;main;width;height;Eh;K;ds;constructor(t,i,s,h,e,r,o,n,a,c,l,u,d,f,m,p,g,M,_,w,v,y,b=0){this.main=t,this.width=i,this.height=s,this.Eh=h,this.K=e,this.ds=b,this.#gt=r,this.is360=o,this.Ft=n,this.#Ii=a,this.us=c,this.ks=e?1:l,this.maxScale=u,this.bs=d,this.Ci=f,this._h=m,this.#Li=p,this.#Pi=g,this.isOmni=M,this.Ss=_,this.Ii=w,this.#Ti=t.Ch.length,b||t.Ch.push(this),this.aspect=i/s,this.Ei=Math.sqrt(i*i+s*s),this.view=new Dt(this),this.focus=new Dt(this),this.wt=new Vt(this),this.Ji=new $t(this),this.X=new Bt(this),this.F=new Zt(this),this.camera=this.is360?this.F:this.X,this.#Mi=new Dt(this),this.#_i=new Dt(this),this.#wi=new Dt(this),this.visible=new Dt(this),this.#vi=new Dt(this),o&&this.view.set(.5,.5,1,.5),b||(this.el.oi(t.el),this.O(this.view.Kt,this.view.Qt,this.view.width,this.view.height,0,0),this.kh()),n?(this.main.Ih++,this.#Ei=1,this.$t=1,this.#Ci=1,y>0&&this.Zt(y)):this.Lh(0,0,1,1,i,s,r,v,a,0,h)}parent;#Ai(t){this.parent=t,this.#Ti+=t.#gi.length}Lh(t,i,s,h,e,r,o,n,a,c,l,u=0,d=0,f=0,m=1,p=0){const g=new Ht(this,this.main.Ih++,this.images.length,e,r,o,n,a,c,this.main.Ph,l,l,u,d,f,m,p);return g.ct(t,i,s,h),this.images.push(g),this.main.Ph=g.Bs,1===this.images.length&&this.zi(0),g}Ah(i,s,h,e,r,o,n={}){const a=n.coverLimit??1,c=n.coverStart??1,l=new t(this.main,r,o,1,a,this.#gt,0,0,this.main.Gs||this.#Ii,0,c,1,1,this.Ci,0,0,0,0,this.Ss,1,0,0,1);return l.#Ai(this),l.ct(i,s,h,e,1,1),this.#gi.push(l),l}#Oi(){const t=1/(0!==this.main.Oh||0!==this.main.Dh?this.main.Fh:1!==this.main.Ch.length||this.ds?this.main.zh:.25)/this.main.hh,i=this.Eh>0&&this.Eh>=this.$t;if(this.$t=i?Math.min(1,this.$t+t):Math.max(0,this.$t-t),this.#Ei=nt.get(this.$t),0!==this.main.Oh||0!==this.main.Dh){const t=0===this.$t?0:nt.get(1-this.$t)*(i?1:-1);this.F.bh(this.main.Oh*t*8,this.main.Dh*t*8,this.main.$h)}}#Di(t){this.Sh?.visible?.set(t),this.#Si=t}Vh(){this.Eh=0,this.zIndex=0}Yh(){if(this.#Ci=1,!this.ds&&1===this.#_i.width&&1===this.#_i.height)for(let t=0;t<this.main.Ch.length;t++)this.main.Ch[t]!==this&&this.main.Ch[t].Vh();this.Eh=1}Xh(){return!this.#bi&&1>this.#yi}#Fi(){return 0===this.Eh&&0===this.$t||0===this.#_i.width||0===this.#_i.height}Rh(){if(!this.Xh()&&this.#Fi())return void(this.#Si&&this.#Di(0));let t=1>this.wt.Fi()||1>this.Ji.step()||!this.#Ci;if(this.nh.length=0,this.#zi(0)&&(t=1),!(this.is360||this.Xh()||this.visible.width>0&&this.visible.height>0))return void(this.#Si&&this.#Di(0));this.#Si||1>this.$t||this.#Di(1),this.F.yh(),this.#Ci&&this.$t!==this.Eh&&(this.#Oi(),t=1);const i=(this.is360?this.F.Ai:this.X.Ai)*this.el.scale,s=this.main;for(let h=0;h<this.images.length;h++){const e=this.images[h];e.ih()?(h>0&&!e.Ns&&s.Bh(e,e.Ns=1),e.At&&e.Ws&&(t=1),e.sh(this.#Li||1>this.$t)&&(t=1),e.opacity>0&&(s.Nh+=e.rh(i))):e.Ns&&s.Bh(e,e.Ns=0)}s.Wh+=this.nh.length,s.Hh=0===s.Wh?1:s.Nh/s.Wh;for(let h=0;h<this.#gi.length;h++)this.#gi[h].Rh();t&&(s.Zh=1)}jh(){if(0===this.Eh&&0===this.$t)return;const t=this.main,i=t.micrio.Ht,s=this.el,h=this.view,e=this.wt.xi();if(i.gl.viewport(this.el.left,t.el.height-s.height-s.top,s.width,s.height),i.gl.uniformMatrix4fv(i.Gh,0,this.F.Cs.arr),this.#Pi)for(let o=0;o<this.images.length;o++){const t=this.images[o];t.x1>h.x0&&t.x0<h.x1&&t.y1>h.y0&&t.y0<h.y1&&(this.#$i(t.Bs-1),i.Uh(void 0,t.Hs))}const r=this.#pi;for(let o=0;o<this.nh.length;o++){const i=this.nh[o];this.#$i(i);const s=r.layer===r.image.Xs-1||!t.qh&&r.layer===r.image.Xs,h=i===r.image.Bs-1,n=t.Jh(i);(s||1===n||h)&&t.Uh(r.image.Ps,i,r.layer,r.x,r.y,n*this.#Ei*r.image.opacity,e,r.layer===r.image.Xs-1)&&h&&(r.image.Rs=t.now,this.#Ci||this.Yh())}this.#xi&&(this.#gi.sort((t,i)=>t.zIndex>i.zIndex?1:t.zIndex<i.zIndex?-1:0),this.#xi=0);for(let o=0;o<this.#gi.length;o++)this.#gi[o].jh();h.ei&&this.Sh?.camera?.Mt(),h.ei=0}#zi(t){const i=this.main.el,s=this.ds,h=s?this.parent.es():1/i.ratio,e=s?this.parent.width:i.width,r=s?this.parent.height:i.height,o=s?this.parent.view:this.#vi,n=this.view,a=this.#_i,c=this.#Mi,l=this.#wi,u=this.Xh();if(u){const t=1/this.main.Kh/this.main.hh;this.#yi=Math.min(1,this.#yi+t);const i=this.main.Qh.get(this.#yi),s=c.Kt+(l.Kt-c.Kt)*i,h=c.Qt+(l.Qt-c.Qt)*i,e=c.width+(l.width-c.width)*i,r=c.height+(l.height-c.height)*i;a.set(s,h,e,r),1===this.#yi&&(1===this.zIndex&&(this.zIndex=0),c.oi(l)),this.view.ei=1}let d=Math.max(n.x0,n.x0+(o.x0-a.x0)/a.width*n.width),f=Math.min(n.x1,n.x0+(1-(a.x1-Math.min(a.x1,o.x1))/a.width)*n.width);this.is360||(d=Math.max(0,d),f=Math.min(1,f));let m=Math.max(Math.max(0,n.y0),n.y0+(o.y0-a.y0)/a.height*n.height),p=Math.min(Math.min(1,n.y1),n.y0+(1-(a.y1-Math.min(a.y1,o.y1))/a.height)*n.height);m=Math.max(m,0),p=Math.min(p,1);const g=(d+f)/2,M=(m+p)/2,_=f-d,w=p-m;this.visible.set(g,M,_,w);const v=s?1:i.ratio;return this.Eh>=this.$t&&this.el.set(a.width*h*e,a.height*h*r,(a.x0-o.x0)*e*h,(a.y0-o.y0)*r*h,v,s?1:i.scale,s?0:i.pi)&&(t||this.te(),this.view.ei=1,this.kh(),this.is360||(this.X.ws(),this.X.Es())),u}ct(t,i,s,h,e,r){this.#bi=0,e?(this.#Mi.ct(t,i,s,h),this.#_i.ct(t,i,s,h)):(this.#Mi.oi(this.#_i),this.#yi=0,0===this.zIndex&&(this.zIndex=1),this.wt.ni=0),this.#wi.ct(t,i,s,h),this.#zi(r),this.te()}#$i(t){const i=this.#pi;if(this.#Vi(t),this.is360)0===i.image.nt?this.F.xh(i.x0,i.y0,i.x1-i.x0,i.y1-i.y0):i.image.fh(i);else{const t=this.main.mh,s=this.aspect;t[0]=t[3]=t[9]=(i.x0-.5)*s,t[1]=t[7]=t[16]=.5-i.y0,t[4]=t[10]=t[13]=.5-i.y1,t[6]=t[12]=t[15]=(i.x1-.5)*s,t[2]=t[5]=t[8]=t[11]=t[14]=t[17]=0}}te(){const t=this.main.el;this.Sh?.Vt?.set([this.el.left/t.ratio,this.el.top/t.ratio,this.el.width/t.ratio,this.el.height/t.ratio])}#Vi(t){let i=0;for(;i<this.images.length-1&&t>=this.images[i].Bs;)i++;const s=this.images[i];let h=0;for(;h<s.Ys.length-1&&t>=s.Ys[h].Os;)h++;const e=s.Ys[h];return e.zs(t,this.#pi),[i,e.Ps]}ie(t){if(this.is360)return 0;const i=this.#pi,s=this.view,[h,e]=this.#Vi(t);return e>this.images[h].Xs?!!(i.x1>s.x0&&i.x0<s.x1&&i.y1>s.y0&&i.y0<s.y1):0}kh(){if(this.#gi.length){const t=this.main.el;this.width=t.width,this.height=t.height,this.Ei=Math.sqrt(t.width*t.width+t.height*t.height)}this.ds||(this.is360?this.F.kh():(this.X.ws(),this.X.Es()))}se(){if(this.Ji.stop(),this.wt.stop(),this.images.length>0){const t=this.images[0];t.Rs=0,t.opacity=0}}he(){this.#Di(0),this.main.he(this)}Zt(t){this.layer=t,this.zi(this.Li),this.view.ei=1}zi(t,i=0){const s=this.layer*(this.images.length/this.Ii);for(let h=0;h<this.images.length;h++){const e=this.images[h],r=h-s-t;0!==r?e.Hs=0>r||r>i?0:1:(e.Hs=1,this.Li=t,this.view.ei=1)}this.X.tt()}O(t,i,s,h,e,r,o=0,n=0){const a=this.main.el;a.mi>0&&(h+=h/(1-a.mi/a.height),this.wt.ni=0,a.mi=0),a.fi>0&&(s+=s*(a.fi/a.width),this.wt.ni=0,a.fi=0),e&&(this.wt.ni=0),this.view.set(t,i,s,h),n&&!e&&this.view.ni(0,0,this.us),r||this.wt.yi.oi(this.view),this.width>0&&(this.is360?(this.F.O(t,i,s,h,{noLimit:e,correctNorth:o}),this.view.set(t,i,s,h)):this.X.vs()&&this.X.Es())}es(){return this.is360?this.F.Ai:this.X.Ai}Z(){const t=this.F;return this.is360?t.Pi<=t.Di:this.X.Z()}j(t=0){const i=this.F;return this.is360?i.Pi>=i.Oi:this.X.j(t)}tt(t){this.X.tt(t)}W(t){const i=this.X;i.N=t,i.tt(),i.vs(),this.F.wh()}q(t,i,s=0){isNaN(i)&&(i=this.F.U),this.F.q(t,i,s?this.F.Mh:0)}rt(t,i,s,h,e,r,o,n,a=1,c=1,l=0){const u=2e4/this.width;return this.F.rt(t,i,s*u,h,e,r,o,n,a,c,l).arr}ht(){this.#bi=1,this.wt.pause()}et(){this.#bi=0,this.wt.resume()}st(){this.wt.stop();for(let t=0;t<this.#gi.length;t++)this.#gi[t].st()}v(){const t=this.Sh?.camera;if(t){for(t.v&&t.v();t.T.length;)t.T.shift()?.();t.k=t.v=void 0}}k(){const t=this.Sh?.camera;t&&(t.k&&t.k(),t.T.length=0,t.k=t.v=void 0)}},Gt=class t{ready=0;el=new zt;mh=new Float32Array(18);Th=new Float32Array(4608);Ch=[];Ph=0;Ih=0;now=0;Zh=0;Hh=0;Wh=0;Nh=0;zh=.25;Kh=.5;Qh=nt;Fh=.5;eh=.5;Mi=1;ee=0;Gs=0;Us=0;Zs=4;uh=0;qh=0;ys=0;Ts=0;$h=0;Oh=0;Dh=0;hh=1/60;#Yi=[];#Xi=0;#Ri=new Set;#Bi=new Set;#Ni=new Set;#Wi=new Set;#Hi=new Map;#Zi=new Map;#ji;#Gi=[];#Ui=new Map;#qi=new Map;re=0;static oe=t.#Ji(1,1);static ne;#Ki=0;#Qi=0;#ts=null;#is=new Map;Rt(t){return this.#is.get(t)?.canvas}#ss(t){this.#is.set(t.micrioImage,t)}micrio;constructor(t){this.micrio=t,this.#ji=vt.iOS?5:B(this.micrio.canvas.isMobile)?30:90,this.render=this.render.bind(this),this.#Gi.push(t.current.subscribe(this.#hs.bind(this)))}static#Ji(t,i){const s=new Float32Array(12*t*i),h=1/t,e=1/i;for(let r=0,o=0;i>o;o++)for(let i=0;t>i;i++,r+=12)s[r+3]=s[r+7]=s[r+9]=(s[r+1]=s[r+5]=s[r+11]=o*e)+e,s[r+4]=s[r+8]=s[r+10]=(s[r+0]=s[r+2]=s[r+6]=i*h)+h;return s}ae(){this.ready||(t.ne=t.#Ji(16,16),this.ready=1,this.#Gi.push(this.micrio.barebone.subscribe(t=>{this.qh=t,this.#Xi=t})))}Uh=(t,i,s,h,e,r,o,n)=>{this.#Bi.add(i);const a=this.#es(i);a.ce=void 0;const c=Pt(),l=this.#Yi[t],u="camera"in l,d=u&&l.At,f=u&&l.P,m=u?l:l.image,p="le"in l?l.le:void 0,g=u&&l.$settings.noSmoothing;if(0===a.ue&&bt>c){if(this.#Xi?c>2&&o:n&&o&&c>0)return 0;if(d&&!f)a.ue=2,a.de=this.micrio.Ht.fe();else{a.ue=1;const t=m.Nt(s,h,e,p);if(!t)return a.ue=0,0;this.fe(i,t,o,{noSmoothing:g})}}else if(a.ue>=2){if(this.#Qi||this.#rs(),a.de){if(d){if(!m.It||!m.It.dataset.playing)return 0;this.micrio.Ht.me(a.de,m.It)}this.micrio.Ht.Uh(a.de,r,f)}return 2===a.ue&&(a.ue=3,a.pe=this.now),1}return 0};Jh=t=>this.#Hi.get(t)?.$t||0;oh=(t,i=0,s=1)=>{const h=this.#Hi.get(t);return h?(1>h.$t&&(h.$t=i?1:h.pe&&h.pe>0?Math.min(1,(this.now-h.pe)/250)*s:0),h.$t):0};Bh=(t,i)=>{const s=this.#Ui.get(t);s&&"visible"in s&&s.visible.set(i)};ge(){for(this.#os();this.#Gi.length;)this.#Gi.pop()?.();this.#Zi.forEach(t=>At(t)),this.#Zi.clear();for(const[t,i]of this.#Hi.entries())i.Me&&clearTimeout(i.Me),this.#ns(t);this.#Hi.clear(),this.#as()}#cs(t){if(this.ee)return;const i=t.$info;if(!i)return;if(t.error)return void this.micrio._e.set(0);if(!(t.Ft||i.width&&i.height))throw new Error("Invalid Micrio image size");const s=t.$settings;this.#Ki=!!this.micrio.gallery||t.Ot,s.gallery?.archive&&(this.Gs=1,this.Us=s.gallery.archiveLayerOffset??0),i.version&&3.1>=parseFloat(i.version)&&(this.Zs=8),i.is360&&(s.limitToCoverScale=0);const h=!!s.limitToCoverScale,e=h||"cover"==s.initType;t.Ft&&this.micrio._e.set(0);const r=[.5,.5],o=s.focus,n=!!i.spacesId;o&&(isNaN(o[0])||null===o[0]||(r[0]=o[0]),isNaN(o[1])||null===o[1]||(r[1]=o[1]));const a=s._360?.video,c=i.is360&&a&&(a.src||"video"in a&&a.video),l=!!this.#Ki&&"switch"==s.gallery?.type,u=Math.max(1,s.omni?.layers?.length??1);s.omni&&(s.omni.layerStartIndex=Math.min(u-1,s.omni?.layerStartIndex??0));const d=new jt(this,i.width,i.height,t.$t,h,i.tileSize??1024,i.is360??0,t.Ft,!!i.isDeepZoom,s.freeMove??0,e,s.zoomLimit||1,0!=s.zoomLimitDPRFix?this.micrio.canvas.getRatio(t.$settings):1,s.camspeed??1,t.camera.rotationY,l,!!s.gallery?.isSpreads&&"swipe"==s.gallery.type,t.Ot,s.pinchZoomOutLimit??0,u,!(!i.isSingle&&!c),s.omni?.layerStartIndex??0,0);t.ot=1,d.Sh=t,this.#ss({canvas:d,micrioImage:t,camera:t.camera}),this.#Yi.push(t),this.#ls(t),t.opts.area&&t.camera.setArea(t.opts.area,{direct:1,noDispatch:1,noRender:1}),s?.restrict&&t.camera.setLimit(s.restrict),s?.crossfadeDuration&&(this.zh=s.crossfadeDuration),s?.embedFadeDuration&&(this.eh=s.embedFadeDuration),void 0!==s?.dragElasticity&&(this.Mi=s.dragElasticity),s?.skipBaseLevels&&(this.uh=s.skipBaseLevels),s?.omni&&(d.gs=-(s.omni.distance??0),d.ps=s.omni.fieldOfView??0,d._s=s.omni.verticalAngle??0,d.Ms=s.omni.offsetX??0,t.state.view.set([0,0,1,1])),this.micrio.hasAttribute("data-limited")&&t.canvas&&(t.canvas.ah=1),d.te(),this.Ph>0&&this.#us(this.Ph-1);const f=B(t.state.view)||s.view;let m;!f||0==f[0]&&0==f[1]&&1==f[2]&&1==f[3]?!n&&i.is360||!r||"0.5,0.5"==r.toString()||(d.camera.setCoo(r[0],r[1],0),s.focus=void 0):d.O(f[0]+f[2]/2,f[1]+f[3]/2,f[2],f[3],0,0,0,0),this.#Gi.push(t.video.subscribe(t=>{m&&m.removeEventListener("play",this.render),m=t??void 0,m&&m.addEventListener("play",this.render)})),t.Ft&&t.visible.set(1),this.#hs(t)}#ls(t){const i=this.#is.get(t).canvas;t.camera.A(i)}#hs(t){if(t&&(!t.ot||t!==this.#ts?.micrioImage)&&!this.ee)if(t.ot){if(t!==this.#ts?.micrioImage){const i=this.#is.get(t);if(!i)return;if(i.canvas.ds)return;const s=t.P&&this.#ts?this.#ts.canvas.F.U:0;if(this.#ts=i,t.P&&!this.re){const h=(this.$h+.5)%1*Math.PI*2;i.canvas.q(h-t.camera.rotationY,s,1)}0===i.canvas.Eh&&i.canvas.Yh(),t.$settings.omni?.layerStartIndex&&t.state.layer.set(t.$settings.omni.layerStartIndex),this.re=0,this.ready=1,this.render()}}else{if(!B(this.micrio.current)||!t.$info.isIIIF&&t.$info.id!=B(this.micrio.current).id)return;this.#cs(t),t.Yt.length&&t.Yt.forEach(i=>this.Ut(i,t))}}we(t){t.ot||this.#cs(t)}ve(t){if(!t.ot)throw new Error("Canvas is not placed yet");const i=this.#is.get(t);i&&(i.canvas.he(),this.#is.delete(t),this.render())}render(){this.ee||q.request(this.#ds)}#ds=(t=performance.now())=>{if(this.micrio.isConnected&&this.micrio.$current&&!this.ee){this.#Qi=0,(this.Rh(t)||this.micrio.ye||this.micrio.events.isNavigating||0==this.micrio.$current?.It?.paused)&&this.render(),this.#Ki&&this.#rs(),this.#Bi.clear();for(let t=0;t<this.Ch.length;t++)this.Ch[t].jh();this.micrio.events.Tt("draw"),this.#fs(),this.micrio.Ht.be()}};Rh(t){this.hh=1e3/Math.min(33,t-this.now),this.now=t,this.Nh=0,this.Wh=0,this.Zh=0;for(let i=0;i<this.Ch.length;i++)this.Ch[i].Rh();return this.Zh||1>this.Hh}#os(){q.cancel(this.#ds)}#es(t){let i=this.#Hi.get(t);return i||(i={ue:0,$t:0},this.#Hi.set(t,i)),i}#us(t){this.#es(t).$t=1,this.#Ri.add(t)}#rs(){this.#Qi||(this.micrio.Ht.ke(),this.#Qi=1)}fe(t,i,s,h={}){if(this.#Hi.get(t)?.de||this.#Zi.has(t)||!h.force&&Pt()>=bt)return;const e=_t.db.has(i);e||this.micrio._e.set(1),this.#Zi.set(t,i),(e?_t.Jt(i):(t=>new Promise((i,s)=>{(()=>{if(!St){St=1;for(let t=0;bt>t;t++){const i=new Worker(yt);i.onmessage=i=>Lt(t,i.data.data,i.data.error,i.data.type),Tt.push(i)}URL.revokeObjectURL(yt)}})(),Et.push([t,i,s]),It()}))(i)).then(i=>this.#ms(t,i,s,h.noSmoothing)).catch(()=>this.#ps(t))}#ms(t,i,s,h){const e=this.#es(t);e.de=this.micrio.Ht.fe(i,e.de,h),void 0!==self.ImageBitmap&&i instanceof ImageBitmap&&i.close instanceof Function&&i.close(),e.ue=2,e.Me=setTimeout(()=>{this.#ps(t)},s?150:50)}#ps(t){this.#Zi.delete(t);const i=this.#Hi.get(t);i?.Me&&(clearTimeout(i.Me),i.Me=void 0),this.#Zi.size||this.micrio._e.set(0)}#ns(t){const i=this.#Hi.get(t);i&&(i.de&&(this.micrio.Ht.gl.deleteTexture(i.de),i.de=void 0),i.Me&&clearTimeout(i.Me),this.#Hi.delete(t))}#gs(t){for(let i=0;i<this.Ch.length;i++)if(this.Ch[i].ie(t))return 1;return 0}#fs(){const t=performance.now();for(const s of this.#Ni){if(this.#Bi.has(s))continue;if(this.#Ri.has(s))continue;const i=this.#Hi.get(s);if(i&&0!==i.ue)switch(i.$t=0,i.ue){case 1:const h=this.#Zi.get(s);h&&At(h),i.ue=0;break;case 2:this.#Zi.has(s)&&this.#ps(s),this.#ns(s);break;case 3:i.ce||(i.ce=t)}}const i=this.#Ni;this.#Ni=this.#Wi,this.#Wi=i,this.#Wi.clear();for(const s of this.#Bi)this.#Ni.add(s);for(const[s,h]of this.#Hi.entries())h.ce&&(t-h.ce)/1e3>this.#ji&&(this.#gs(s)?h.ce=t:this.#ns(s))}kh(t){this.el.set(t.width,t.height,t.left,t.top,t.ratio,t.scale,t.portrait);for(let i=0;i<this.Ch.length;i++)this.Ch[i].kh();this.ready&&(this.#os(),this.#ds())}#Ms=(t,i,s=0,h=1,e)=>{this.ee||(this.#Yi.push(t),this.#_s(t,i,s,h,e))};#_s=(t,i,s,h,e)=>{const r="$info"in t?t.$info:i.$info;if(!r)return;const o=t.opts.area??[0,0,1,1],n=t instanceof Mt?t.$settings._360??{}:{},a=this.#is.get(i);if(!a)return;let c;if(s){const i=a.canvas.Lh(o[0],o[1],o[0]+o[2],o[1]+o[3],r.width,r.height,r.tileSize??1024,r.isSingle??0,r.isDeepZoom??0,r.isVideo??0,h,n.rotX??0,n.rotY??0,n.rotZ??0,n.scale??1,e??0);return this.#Ui.set(i,t),this.#qi.set(t,i),t.ot=1,this.#ss({canvas:a.canvas,micrioImage:t}),t.Pt=this.Ph-1,void this.#us(t.Pt)}{if(!(t instanceof Mt))return;let s={};s=t.$settings.gallery?.archive||t.$settings.gallery?.type?{coverLimit:0,coverStart:0}:{coverLimit:!!t.$settings?.limitToCoverScale||!!i.$settings?.limitToCoverScale,coverStart:!(!t.$settings?.limitToCoverScale&&"cover"!=t.$settings?.initType&&"cover"!=i.$settings?.initType)},c=a.canvas.Ah(o[0],o[1],o[0]+o[2],o[1]+o[3],r.width,r.height,s),c.Sh=t}if(t.ot=1,this.#ss({canvas:c,micrioImage:t,camera:t.camera}),!s){this.#ls(t);const i=t.$settings.focus;i?c.camera.setCoo(i[0],i[1],0):c.ds&&c.O(c.view.Kt,c.view.Qt,c.view.width,c.view.height,0,0),c.te()}t.Pt=this.Ph-1,this.#us(t.Pt)};Ut(t,i,s={}){this.ee||t.ot||this.#Ms(t,i,1,s.opacity??1,"camera"in t&&s.asImage?void 0:s.fromScale)}Ah=(t,i)=>this.#Ms(t,i);xe(t,i,s=0){const h=this.#is.get(t),e=h?.canvas;if(e){if(h.camera)e.Eh=i;else{const t=e.images;for(let h=0;h<t.length;h++){const e=t[h];e.nt>0&&(e.Hs=i,s&&(e.opacity=i))}}this.render()}}Te(t,i){const s=this.#qi.get(t);s&&(s.Ws=i)}#as(){for(let t=0;t<this.Ch.length;t++)this.Ch[t].se()}he(t){for(let i=0;i<this.Ch.length;i++)if(this.Ch[i]===t)return void this.Ch.splice(i,1)}},Ut=class{Se=null;constructor(...t){}Ee(){}kh(){}Ce(){}},qt=256,Jt=class{gl;Ie=self;#ws;#vs;#ys;Gh;#bs=-1;#ks;#xs;#Ts;#Ss=null;#Es=null;#Cs=new Float32Array([-1,-1,0,1,-1,0,-1,1,0,-1,1,0,1,-1,0,1,1,0]);#Is=new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0]);#Ls=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);#Ps=.075;#As=-1;#Os=0;#Ds=-1;#Fs=-1;Le;#zs;constructor(t){this.#zs=t,q._(this.Ie)}Pe(){const t="WebGL2RenderingContext"in window,i=this.#zs.canvas.element.getContext(t?"webgl2":"webgl",{alpha:1,preserveDrawingBuffer:this.#zs.hasAttribute("data-preserve-drawing-buffer"),stencil:0,antialias:0,depth:0,desynchronized:0});if(t?!(i instanceof window.WebGL2RenderingContext):!(i instanceof window.WebGLRenderingContext))throw new y("WebGL context creation failed",{code:n});this.gl=i;const s=this.#zs.$current?.$settings.postProcessingFragmentShader;s&&(this.Le=new Ut(i,this.#zs,s),this.#zs.ye=1);const h=i.createProgram();if(!(h instanceof WebGLProgram))throw new y("Failed to create WebGL program",{code:c});if(this.#ws=h,this.Ae(this.#ws,i.VERTEX_SHADER,"uniform mat4 GLMatrix;attribute vec3 pos;attribute vec2 aTextureCoord;varying highp vec2 vTextureCoord;void main(){gl_Position=GLMatrix*vec4(pos,1.0);vTextureCoord=aTextureCoord;}"),this.Ae(this.#ws,i.FRAGMENT_SHADER,"precision mediump float;varying highp vec2 vTextureCoord;uniform sampler2D uSampler;uniform float opacity;uniform int noTexture;void main(){if(noTexture==1){gl_FragColor=vec4(.1,.1,.1,.1);}else{gl_FragColor=texture2D(uSampler,vTextureCoord)*opacity;}}"),i.linkProgram(this.#ws),!i.getProgramParameter(this.#ws,i.LINK_STATUS))throw new y("Shader link error: "+i.getProgramInfoLog(this.#ws),{code:c});i.useProgram(this.#ws),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.enable(i.BLEND),i.disable(i.DEPTH_TEST),i.clearColor(0,0,0,0);const e=i.getUniformLocation(this.#ws,"opacity");if(!e)throw new y("Failed to bind WebGL opacity uniform",{code:c});this.#vs=e;const r=i.getUniformLocation(this.#ws,"GLMatrix");if(!r)throw new y("Failed to bind WebGL matrix uniform",{code:c});this.Gh=r;const o=i.getUniformLocation(this.#ws,"noTexture");if(!o)throw new y("Failed to bind WebGL texture uniform",{code:c});this.#ys=o,this.#bs=i.getAttribLocation(this.#ws,"aTextureCoord");const a=i.createBuffer();if(!a)throw new y("Failed to create WebGL texture buffer",{code:l});this.#ks=a,i.bindBuffer(i.ARRAY_BUFFER,this.#ks),i.bufferData(i.ARRAY_BUFFER,Gt.oe,i.STATIC_DRAW);const u=i.createBuffer();if(!u)throw new y("Failed to create WebGL watermark buffer",{code:l});this.#Ts=u;const d=i.createBuffer();if(!d)throw new y("Failed to create WebGL geometry buffer",{code:l});this.#xs=d,this.#As=i.getAttribLocation(this.#ws,"pos"),this.#$s(),i.activeTexture(i.TEXTURE0),i.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}#$s(){const t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,this.#xs),t.bufferData(t.ARRAY_BUFFER,this.#zs.Oe.Th.byteLength,t.DYNAMIC_DRAW),t.enableVertexAttribArray(this.#bs),t.bindBuffer(t.ARRAY_BUFFER,this.#ks),t.vertexAttribPointer(this.#bs,2,t.FLOAT,0,0,0),t.enableVertexAttribArray(this.#As),t.bindBuffer(t.ARRAY_BUFFER,this.#xs),t.vertexAttribPointer(this.#As,3,t.FLOAT,0,0,0)}Ce(t=0){const i=this.gl;if(i){if(i.bindBuffer(i.ARRAY_BUFFER,null),i.bindTexture(i.TEXTURE_2D,null),i.deleteBuffer(this.#ks),i.deleteBuffer(this.#xs),i.deleteBuffer(this.#Ts),i.deleteProgram(this.#ws),this.Le?.Ce(),this.#Ss&&i.deleteTexture(this.#Ss),t){const t=i.getExtension("WEBGL_lose_context");t instanceof Object&&t.loseContext instanceof Function&&t.loseContext()}this.gl=null}}Ae(t,i,s){const h=this.gl.createShader(i);if(!h)throw new Error(`Could not create WebGL shader (type: ${i})`);if(this.gl.shaderSource(h,s),this.gl.compileShader(h),!this.gl.getShaderParameter(h,this.gl.COMPILE_STATUS))throw this.gl.deleteProgram(t),new y("Shader compilation failed: "+this.gl.getShaderInfoLog(h),{code:c});this.gl.attachShader(t,h),this.gl.deleteShader(h)}fe(t,i,s){const h=this.gl,e=i??h.createTexture();if(!e)throw new Error("Could not create WebGL texture");return h.bindTexture(h.TEXTURE_2D,e),t&&h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,t),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,h.LINEAR),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,s?h.NEAREST:h.LINEAR),e}me(t,i){const s=this.gl;s.bindTexture(s.TEXTURE_2D,t),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i),s.bindTexture(s.TEXTURE_2D,null)}ke(){const t=this.gl;this.Le&&t.bindFramebuffer(t.FRAMEBUFFER,this.Le.Se),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}be(){this.Le&&(this.Le.Ee(),this.gl.useProgram(this.#ws),this.#$s()),this.#Ss&&this.#Vs()}Uh(t,i=1,s=0){const h=this.gl,e=t?0:1;e!==this.#Ds&&(h.uniform1i(this.#ys,e),this.#Ds=e),i!==this.#Fs&&(h.uniform1f(this.#vs,i),this.#Fs=i),t&&h.bindTexture(h.TEXTURE_2D,t);const r=s?1536:6;s!=this.#Os&&(h.bindBuffer(h.ARRAY_BUFFER,this.#ks),h.bufferData(h.ARRAY_BUFFER,s?Gt.ne:Gt.oe,h.STATIC_DRAW),h.bindBuffer(h.ARRAY_BUFFER,this.#xs),this.#Os=s),h.bufferSubData(h.ARRAY_BUFFER,0,s?this.#zs.Oe.Th:this.#zs.Oe.mh),h.drawArrays(h.TRIANGLES,0,r)}Wt(t,i){if(!this.gl)return;if(t===this.#Es)return;this.#Es=t;const s=new Image;i&&(this.#Ps=i),s.crossOrigin="anonymous",s.src=t,s.onload=()=>{const t=mt("canvas",{props:{width:qt,height:qt}}),i=t.getContext("2d");if(!i)return;const h=Math.min(96/s.width,64/s.height),e=s.width*h,r=s.height*h;i.drawImage(s,(qt-e)/2,(qt-r)/2,e,r),this.#Ss&&this.gl.deleteTexture(this.#Ss),this.#Ss=this.fe(t);const o=this.gl;o.bindTexture(o.TEXTURE_2D,this.#Ss),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.REPEAT),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.REPEAT),o.bindTexture(o.TEXTURE_2D,null),this.#zs.Oe.render()}}#Vs(){const t=this.gl;if(!this.#Ss)return;t.useProgram(this.#ws),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.uniformMatrix4fv(this.Gh,0,this.#Ls),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.#Ss),t.uniform1i(this.#ys,0),t.uniform1f(this.#vs,this.#Ps),this.#Ds=0,this.#Fs=this.#Ps;const i=t.drawingBufferWidth/qt,s=t.drawingBufferHeight/qt,h=this.#Is;h[1]=s,h[2]=i,h[3]=s,h[8]=i,h[9]=s,h[10]=i,t.bindBuffer(t.ARRAY_BUFFER,this.#xs),t.bufferData(t.ARRAY_BUFFER,this.#Cs,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#As,3,t.FLOAT,0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this.#Ts),t.bufferData(t.ARRAY_BUFFER,this.#Is,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#bs,2,t.FLOAT,0,0,0),t.drawArrays(t.TRIANGLES,0,6),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.#$s(),this.#Os=0}},Kt=class{element=mt("canvas");#Ys;viewport={width:0,height:0,left:0,top:0,ratio:0,scale:0,portrait:0};isMobile=R(0);get $isMobile(){return B(this.isMobile)}#zs;constructor(t){this.#zs=t,this.element.className="micrio",this.onresize=this.onresize.bind(this),self.ResizeObserver&&(this.#Ys=new self.ResizeObserver(this.onresize))}place(){if(this.element.parentNode)return;const t=this.#zs.querySelector("img.preview");this.#zs.insertBefore(this.element,t?t.nextSibling:this.#zs.firstChild)}hook(){this.onresize(),this.#Ys?this.#Ys.observe(this.element):window.addEventListener("resize",this.onresize)}unhook(){this.#Ys?this.#Ys.unobserve(this.element):window.removeEventListener("resize",this.onresize)}onresize(){const t=this.element.getBoundingClientRect();let i=t.width,s=t.height;if(!i||!s)return;const h=self.getComputedStyle(this.element),e=parseFloat(h.width);isNaN(e)||(s=parseFloat(h.height)*i/Math.max(1,e));const r=this.#zs.offsetWidth,o=this.#zs.hasAttribute("data-static")||!r?1:Math.floor(i)/r;i/=o,s/=o;const n=1!=o?1:this.getRatio(),a=this.viewport;if(a.width==i&&a.height==s&&a.ratio==n&&a.scale==o)return;a.width=i,a.height=s,a.ratio=n,a.scale=o,a.top=t.top,a.left=t.left,a.portrait=window.matchMedia("(orientation: portrait)")?.matches??s>i,this.#zs.Ht.gl&&(this.element.width=i*n,this.element.height=s*n,this.#zs.Ht.gl.viewport(0,0,a.width*a.ratio,a.height*a.ratio),this.#zs.Ht.Le?.kh(),this.#zs.Oe.kh(a)),this.#zs.events.Tt("resize",t);const c=/mobile/i.test(navigator.userAgent);c!==this.$isMobile&&this.isMobile.set(c)}getRatio=(t=this.#zs.$current?.$settings??{})=>!vt.iOS&&!t?.noRetina&&self.devicePixelRatio&&Math.max(1,Math.min(2,self.devicePixelRatio))||1;setMargins(t,i){this.#zs.Oe.ready&&(this.#zs.Oe.el.fi=t,this.#zs.Oe.el.mi=i)}},Qt={passive:1},ti={passive:1,capture:1},ii={passive:0};function si(t){t.stopPropagation(),t.preventDefault()}var hi=class{#Xs=0;#Rs;constructor(t){this.#Rs=t}hook(){this.#Xs||(this.#Xs=1,this.#Rs.De.addEventListener("dragstart",si),this.#Rs.De.addEventListener("pointerdown",this.start,Qt),self.addEventListener("pointercancel",this.#Bs,Qt),this.#Rs.De.setAttribute("data-hooked",""))}unhook(){this.#Xs&&(this.#Xs=0,this.#Rs.De.removeEventListener("pointerdown",this.start,Qt),this.#Rs.De.removeEventListener("dragstart",si),self.removeEventListener("pointercancel",this.#Bs,Qt),this.#Rs.De.removeAttribute("data-hooked"))}start=(t,i=0,s=0)=>{if(0!=t.button||"touch"==t.pointerType&&this.#Rs.Fe)return;if(!(i||t.target==this.#Rs.ze||t.target instanceof Element&&t.target.closest("[data-scroll-through]")))return;if(this.#Rs.De.$current?.Ot&&t.shiftKey)return;if(this.#Rs.$e)return;if(this.#Rs.Ve)return void(t instanceof TouchEvent&&t.touches.length>1&&this.stop());const h=this.#Rs.Jt({x:t.clientX,y:t.clientY});h&&(this.#Rs.Ve=1,this.#Rs.Xe.Ye.As=[t.clientX,t.clientY,performance.now()],this.#Rs.Xe.Ye.Re=h,this.#Rs.De.addEventListener("pointermove",this.#Ns,Qt),this.#Rs.De.addEventListener("pointerup",this.stop,Qt),this.#Rs.De.setAttribute("data-panning",""),h.canvas?.Ji.stop(),s||h.camera.stop(),this.#Rs.De.Oe.render(),this.#Rs.Tt("panstart"))};#Ns=t=>{const i=t.clientX,s=t.clientY,h=Math.hypot(this.#Rs.Xe.Ye.As[0]-t.clientX,this.#Rs.Xe.Ye.As[1]-t.clientY);!this.#Rs.Be&&h>10&&(this.#Rs.Be=t.pointerId,this.#Rs.De.setPointerCapture(t.pointerId)),this.#Rs.Xe.Ye.Ne&&this.#Rs.Xe.Ye.Re?.camera.pan(this.#Rs.Xe.Ye.Ne[0]-i,this.#Rs.Xe.Ye.Ne[1]-s),this.#Rs.Xe.Ye.Ne=[i,s]};stop=(t,i=0,s=0)=>{if(this.#Rs.Ve){if(this.#Rs.Ve=0,this.#Rs.Xe.Ye.Ne=void 0,this.#Rs.De.removeEventListener("pointermove",this.#Ns,Qt),this.#Rs.De.removeEventListener("pointerup",this.stop,Qt),this.#Rs.Be&&this.#Rs.De.releasePointerCapture(this.#Rs.Be),this.#Rs.Be=void 0,this.#Rs.De.removeAttribute("data-panning"),t&&0==i){const i=this.#Rs.Xe.Ye.Re??this.#Rs.Jt({x:t.clientX,y:t.clientY});i&&(i.canvas?.Ji.start(),this.#Rs.De.Oe.render())}this.#Rs.Xe.Ye.Re=void 0,s||this.#Rs.Tt("panend",t?{duration:performance.now()-this.#Rs.Xe.Ye.As[2],movedX:t.clientX-this.#Rs.Xe.Ye.As[0],movedY:t.clientY-this.#Rs.Xe.Ye.As[1]}:void 0)}};#Bs=t=>{this.#Rs.Ve&&(void 0!==this.#Rs.Be&&t.pointerId!==this.#Rs.Be||this.stop(void 0,1,1))}};function ei(t,i){t.Xe.qi.We=t.Ve,i.stop(void 0,0,1),t.$e=1,t.De.setAttribute("data-pinching",""),t.He=void 0,t.Xe.qi.Re&&t.Xe.qi.Re.canvas?.camera.Qi(),t.De.Oe.render(),t.Tt("pinchstart"),t.Fe&&t.Tt("panstart")}function ri(t,i,s){const h=t.Xe.qi,e=h.Re;e&&(t.He=Math.hypot(i.x-s.x,i.y-s.y)/h.Ze,e.canvas?.camera.qi(i.x,i.y,s.x,s.y))}function oi(t,i,s){if(!t.$e)return;t.$e=0,self.removeEventListener("touchmove",s,{passive:1,capture:1}),self.removeEventListener("pointermove",s,{passive:1,capture:1}),t.De.removeAttribute("data-pinching");const h=t.Xe.qi.Re;h&&(h.canvas?.camera.ts(),t.De.Oe.render()),t.Xe.qi.Re=void 0,t.He=void 0,t.Tt("pinchend"),t.Fe&&!t.Xe.qi.We&&t.Tt("panend")}function ni(t,i,s){if(s instanceof TouchList?1===s.length:1===s.size){let h;if(s instanceof TouchList){const i=s[0];h={button:0,target:t.ze,clientX:i.clientX,clientY:i.clientY}}else{const[i,{x:e,y:r}]=s.entries().next().value;h={button:0,pointerType:"touch",target:t.ze,clientX:e,clientY:r,pointerId:i}}i.start(h,1,1)}}var ai=class{#Rs;#Ws;constructor(t,i){this.#Rs=t,this.#Ws=i}hook(){vt.iOS&&this.#Rs.je&&this.#Rs.De.addEventListener("touchstart",this.start,Qt)}unhook(){vt.iOS&&this.#Rs.je&&this.#Rs.De.removeEventListener("touchstart",this.start,Qt),self.removeEventListener("touchmove",this.#Ns,ti),self.removeEventListener("touchend",this.stop,ti)}start=t=>{if(!(vt.hasTouch&&t instanceof TouchEvent))return;if(this.#Rs.Fe&&2>t.touches.length)return;if(this.#Rs.$e||2!=t.touches.length)return void this.stop(t);t.stopPropagation();const i=t.touches;this.#Rs.Xe.qi.Re=this.#Rs.Jt({x:i[0].clientX,y:i[0].clientY}),this.#Rs.Xe.qi.Ze=Math.hypot(i[0].clientX-i[1].clientX,i[0].clientY-i[1].clientY),self.addEventListener("touchmove",this.#Ns,ti),self.addEventListener("touchend",this.stop,ti),ei(this.#Rs,this.#Ws)};#Ns=t=>{if(!(vt.hasTouch&&t instanceof TouchEvent))return;const i=t.touches;if(2>i?.length)return;const s={x:i[0].clientX,y:i[0].clientY},h={x:i[1].clientX,y:i[1].clientY};ri(this.#Rs,s,h)};stop=t=>{oi(this.#Rs,0,this.#Ns),t instanceof TouchEvent&&ni(this.#Rs,this.#Ws,t.touches)}},ci=class{#Rs;#Ws;constructor(t,i){this.#Rs=t,this.#Ws=i}hook(){this.#Rs.De.addEventListener("pointerdown",this.start,Qt),self.addEventListener("pointerup",this.end,Qt),self.addEventListener("pointercancel",this.end,Qt)}unhook(){this.#Rs.De.removeEventListener("pointerdown",this.start,Qt),self.removeEventListener("pointerup",this.end,Qt),self.removeEventListener("pointercancel",this.end,Qt),self.removeEventListener("pointermove",this.#Ns,ti),this.#Rs.Ge.clear()}start=t=>{if("touch"===t.pointerType&&t.target==this.#Rs.ze&&(this.#Rs.Ge.set(t.pointerId,{x:t.clientX,y:t.clientY}),2===this.#Rs.Ge.size&&!this.#Rs.$e)){const t=Array.from(this.#Rs.Ge.values()),i=t[0],s=t[1];this.#Rs.Xe.qi.Re=this.#Rs.Jt({x:i.x,y:i.y}),this.#Rs.Xe.qi.Ze=Math.hypot(i.x-s.x,i.y-s.y),self.addEventListener("pointermove",this.#Ns,ti),ei(this.#Rs,this.#Ws)}};#Ns=t=>{if("touch"!==t.pointerType)return;if(!this.#Rs.Ge.has(t.pointerId))return;if(this.#Rs.Ge.set(t.pointerId,{x:t.clientX,y:t.clientY}),!this.#Rs.$e||2!==this.#Rs.Ge.size)return;const i=Array.from(this.#Rs.Ge.values()),s={x:i[0].x,y:i[0].y},h={x:i[1].x,y:i[1].y};ri(this.#Rs,s,h)};end=t=>{"touch"===t.pointerType&&(this.#Rs.Ge.delete(t.pointerId),this.#Rs.$e&&2>this.#Rs.Ge.size&&(self.removeEventListener("pointermove",this.#Ns,ti),oi(this.#Rs,0,this.#Ns),ni(this.#Rs,this.#Ws,this.#Rs.Ge)))}},li=class{#Rs;constructor(t){this.#Rs=t}hook(){vt.OSX&&(this.#Rs.De.addEventListener("gesturestart",this.#Hs,ii),this.#Rs.De.addEventListener("gesturechange",this.#Hs,ii),this.#Rs.De.addEventListener("gestureend",this.#Hs,ii))}unhook(){vt.OSX&&(this.#Rs.De.removeEventListener("gesturestart",this.#Hs,ii),this.#Rs.De.removeEventListener("gesturechange",this.#Hs,ii),this.#Rs.De.removeEventListener("gestureend",this.#Hs,ii))}#Zs(t){if("scale"in t&&"number"==typeof t.scale){const i=t;return{scale:i.scale,clientX:i.clientX,clientY:i.clientY}}return null}#Hs=t=>{const i=this.#Zs(t);if(!i)return;if(1===i.scale)return void(this.#Rs.Ue=1);if(t.target instanceof Element&&t.target!=this.#Rs.ze)return;const s=this.#Rs.Ue-i.scale;this.#Rs.Ue=i.scale,t.stopPropagation(),t.preventDefault(),"gesturechange"==t.type&&this.#Rs.Jt({x:i.clientX,y:i.clientY})?.camera.zoom(s*this.#Rs.De.canvas.viewport.height,0,i.clientX,i.clientY)}},ui=class{hooked=0;#js=-1;#Rs;constructor(t){this.#Rs=t}hook(){this.hooked||(this.#Rs.De.addEventListener("wheel",this.handle,ii),this.hooked=1)}unhook(){this.#Rs.De.removeEventListener("wheel",this.handle,ii),this.hooked=0}handle=(t,i=0,s=0)=>{if(!(t instanceof WheelEvent))return;if(this.#Rs.qe&&!t.ctrlKey)return;if(!i&&t.target instanceof Element&&t.target!=this.#Rs.ze&&!t.target.classList.contains("marker")&&!t.target.closest("[data-scroll-through]"))return;let h=t.deltaY;t.ctrlKey&&(this.#Rs.Je=1);const e=this.#Rs.qe&&10*h%1==0,r=this.#Rs.Je&&!e,o=vt.firefox||t.ctrlKey||!r;if(this.#Rs.Fe&&this.#Rs.De.$current?.camera.isZoomedOut())return;t.stopPropagation(),t.preventDefault(),(vt.OSX||r)&&t.ctrlKey&&(h*=10);const n={x:t.clientX,y:t.clientY},a=this.#Rs.Jt(n);if(a){if(o){const t=this.#Rs.De.canvas.viewport;let i=0;const e=this.#Rs.De.getBoundingClientRect();a.camera.zoom(1*h/Math.sqrt(t.scale),0,n.x-s-e.left,n.y-e.top-i)}else a.camera.pan(t.deltaX,t.deltaY);this.#Rs.Ke=1,clearTimeout(this.#js),this.#js=setTimeout(this.#Gs,50)}};#Gs=()=>{this.#Rs.Ke=0}},di=class{static Qe=0;static tag="micrio-grid"},fi=class{#Rs;constructor(t){this.#Rs=t}hook(){document.addEventListener("keydown",this.#Hs)}unhook(){document.removeEventListener("keydown",this.#Hs)}#Hs=t=>{if(this.#Rs.Ve||this.#Rs.$e||!this.#Rs.De.$current?.camera)return;if(di.Qe&&(t.key.startsWith("Arrow")||"Enter"==t.key||" "==t.key||"Escape"==t.key))return;const i=this.#Rs.De.$current.camera,s=this.#Rs.De.offsetWidth/2,h=this.#Rs.De.offsetHeight/2;let e=0,r=0;switch(t.key){case"ArrowUp":r-=h;break;case"ArrowDown":r+=h;break;case"ArrowLeft":e-=s;break;case"ArrowRight":e+=s;break;case"+":case"=":i.zoom(-200,150).catch(()=>{});break;case"-":case"_":i.zoom(200,150).catch(()=>{});break;default:return}t.preventDefault(),t.stopPropagation(),0==e&&0==r||i.pan(e,r,150)}},mi=class{#Rs;constructor(t){this.#Rs=t}hookTap(){this.#Rs.ze.addEventListener("touchstart",this.#Us)}unhookTap(){this.#Rs.ze.removeEventListener("touchstart",this.#Us)}hookClick(){this.#Rs.ze.addEventListener("dblclick",this.#qs)}unhookClick(){this.#Rs.ze.removeEventListener("dblclick",this.#qs)}#Us=t=>{if(!(vt.hasTouch&&t instanceof TouchEvent))return;const i=performance.now();1==t.touches.length&&250>i-this.#Rs.Xe.ir.tr&&(t.stopPropagation(),t.preventDefault(),this.#qs(t)),this.#Rs.Xe.ir.tr=i};#qs=t=>{const i=t instanceof TouchEvent?t.touches[0]:t;this.#Rs.Jt({x:i.clientX,y:i.clientY})?.camera.zoom(-300,500,i.clientX,i.clientY,1,!this.#Rs.De.$current?.album).catch(()=>{})}},pi=class{ze;enabled=R(0);get $enabled(){return B(this.enabled)}#Xs=0;Ve=0;$e=0;Ke=0;qe=0;Fe=0;Ue=1;je=vt.hasTouch&&"ontouchstart"in self;Je=0;#Js;#Ks;Xe={Ye:{Ne:void 0,As:[0,0,0],Re:void 0},ir:{tr:0},qi:{Re:void 0,Ze:0,We:0}};He;Ge=new Map;Be;De;#Ws;#Qs;#th;#ih;#sh;#hh;#eh;constructor(t){this.De=t,this.ze=t.canvas.element,this.#Ws=new hi(this),this.#Qs=new ai(this,this.#Ws),this.#th=new ci(this,this.#Ws),this.#ih=new li(this),this.#sh=new ui(this),this.#hh=new fi(this),this.#eh=new mi(this),this.enabled.subscribe(t=>{t?this.hook():this.unhook()}),t.jt.subscribe(t=>this.#Ks=t),t.current.subscribe(t=>{t&&!this.#Js&&(this.#Js=t.$settings,!t.error&&this.#Js.hookEvents&&this.enabled.set(1))})}get isNavigating(){return this.Ve||this.$e||this.Ke}Tt(t,i){this.De.dispatchEvent(new CustomEvent(t,void 0!==i?{detail:i}:void 0))}Jt(t){if(!this.#Ks)return;const i=this.De.offsetWidth,s=this.De.offsetHeight,h=Math.max(0,Math.min(1,t.x/i)),e=Math.max(0,Math.min(1,t.y/s)),r=this.#Ks.filter(t=>!t.Ft&&!t.zt),o=this.De.Ch.find(t=>t.grid);if(o)return o.grid?.sr(t.x,t.y)??this.De.$current;const n=1==r.length?r[0]:r.find(({grid:t,opts:{area:i}})=>t?0:i?!(h<i[0]||h>i[0]+i[2]||e<i[1]||e>i[1]+i[3]):0);return n&&!n.grid?n:this.De.$current}hr(){return this.#Ks}hook(){if(this.#Xs)return;this.#Xs=1;const t=this.#Js;t&&(this.Fe=!!t.twoFingerPan,this.Fe?this.De.setAttribute("data-can-pan",""):this.De.removeAttribute("data-can-pan"),t?.hookKeys&&this.hookKeys(),t.hookDrag&&this.hookDrag(),t.noZoom||this.hookZoom())}unhook(){this.#Xs&&(this.#Xs=0,this.Ge.clear(),this.unhookDrag(),this.unhookZoom(),this.unhookKeys())}hookKeys(){this.#hh.hook()}unhookKeys(){this.#hh.unhook()}hookZoom(){const t=this.#Js;this.qe=!!t?.controlZoom,t&&!t.hookPinch||this.hookPinch(),(!t||t.hookScroll||this.qe)&&this.hookScroll(),this.De.canvas.$isMobile?this.#eh.hookTap():this.#eh.hookClick()}unhookZoom(){this.unhookPinch(),this.unhookScroll(),this.De.canvas.$isMobile?this.#eh.unhookTap():this.#eh.unhookClick()}get scrollHooked(){return this.#sh.hooked}hookScroll(){this.#sh.hook()}unhookScroll(){this.#sh.unhook()}hookPinch(){vt.iOS&&this.je?this.#Qs.hook():this.#th.hook(),this.#ih.hook()}unhookPinch(){vt.iOS&&this.je?this.#Qs.unhook():this.#th.unhook(),this.#ih.unhook()}hookDrag(){this.#Ws.hook()}unhookDrag(){this.#Ws.unhook()}},gi=class{static er(t,i){return null}static async rr(t,i,s){return null}async nr(t){}ar(t){}async gotoId(t){}},Mi=navigator?.language??"en-EN",_i=("Intl"in self&&Intl.DisplayNames&&new Intl.DisplayNames([Mi],{type:"language"}),["ar","dv","fa","he","iw","ku","ps","sd","syr","ug","ur","yi"]),wi={},vi=R(void 0),yi=Symbol("micrio-provides"),bi=class extends HTMLElement{static tag;static cr=new Map;#rh=[];#oh=null;lr={};connectedCallback(){this.ur?.(),this.Ee?.()}disconnectedCallback(){this.dr?.(),this.#fs()}kt(t){Object.assign(this.lr,t),this.isConnected&&this.Ee()}Ee(){}mr(t){this.#rh.push(t)}pr(t){return t===this.#oh?(this.gr?.(),0):(this.#oh=t,1)}Mr(t,i,s){let h=i;s?.skipFirst&&(h=(t=>{let i=1;return s=>{i?i=0:t(s)}})(h)),s?.defer&&(h=(t=>{let i,s=0;return h=>{i=h,s||(s=1,Promise.resolve().then(()=>{s=0,t(i)}))}})(h)),this.mr(t.subscribe(h))}_r(t,i){this.Mr(t,i,{skipFirst:1})}wr(t,i){this.Mr(t,i,{skipFirst:1,defer:1})}vr(t,i){this.mr(t.subscribe(i))}yr(t,i){let s=this[yi];s||(this[yi]=s=new Map),s.set(t,i)}br(t){let i=this;for(;i;){const s=i[yi];if(s?.has(t))return s.get(t);i=i.parentElement}}kr(){return this.br("micrio")}#fs(){for(const t of this.#rh)t();this.#rh=[]}},ki=new Map;function xi(t,i,s){const h=ki.get(i);if(!h)return;ki.delete(i),h.unsub?.(),h.unsubData?.();const e=t.canvas.viewport.portrait;h.secondary.camera.setArea(e?[0,1,1,0]:[1,0,0,1],{direct:1}),i.camera.setArea([0,0,1,1]),s?.keepSecondaryCanvas||setTimeout(()=>t.Oe.ve(h.secondary),400),t.events.Tt("splitscreen-stop",h.secondary)}var Ti=class extends bi{static get observedAttributes(){return["id","muted","data-limited","lang"]}static VERSION;static tag="micr-io";#nh=0;Ch=[];current=R();jt=R([]);#ah;get $current(){return this.#ah}get camera(){return this.#ah?.camera}canvas=new Kt(this);events=new pi(this);state=new et.Main;St=[];xt=[];barebone=R(0);Ht=new Jt(this);Oe=new Gt(this);Tr;defaultSettings;_e=R(1);Gt=R(0);Sr=R("1"==localStorage.getItem(I));Bt=R();spaceData;bundleTours;gallery;ye=0;#ch;#lh;#uh=0;attributeChangedCallback(t,i,s){switch(t){case"id":if(!this.isConnected||!s)return;this.#nh?this.open(s):this.#dh();break;case"muted":B(this.Sr)!==this.hasAttribute("muted")&&this.Sr.set(this.hasAttribute("muted"));break;case"data-limited":this.Oe?.mh&&this.$current?.canvas&&(this.$current.canvas.ah=!!s);break;case"lang":{let t=B(this.Bt);if(t!=s){this.Bt.set(s);const i=s.split("-")[0];vi.set(wi[s]??wi[i]??wi.en),s&&(h=s,_i.some(t=>h===t||h.startsWith(t+"-"))?this.setAttribute("dir","rtl"):this.removeAttribute("dir")),t&&this.events.Tt("lang-switch",s)}break}}var h}ur(){this.yr("micrio",this),this.canvas.place(),this.id&&!this.#nh&&this.#dh(),"muted"in this||(Object.defineProperty(this,"muted",{get(){return B(this.Sr)},set(t){t?this.setAttribute("muted",""):this.removeAttribute("muted")}}),this.Mr(this.Sr,t=>{this.muted=t,t?(localStorage.setItem(I,"1"),this.events.Tt("audio-mute")):(localStorage.removeItem(I),this.events.Tt("audio-unmute"))}));const t=()=>{const t=B(this.jt).filter(t=>t.id),i=this.Oe.ee?this.#ah:1===t.length?t[0]:this.#ah;this.toggleAttribute("data-zoomed",!!i?.camera&&!!i.ot&&!i.camera.isZoomedOut())};this.Mr(this.current,i=>{this.#ah=i,t()}),this.Mr(this.jt,()=>t());const i=()=>t();this.xt.push(i),this.mr(()=>{const t=this.xt.indexOf(i);0>t||this.xt.splice(t,1)});let s=0;const h=this._e.subscribe(t=>{if(t)return;h(),this.setAttribute("data-loaded",""),this.Mr(this.Gt,t=>{t?this.setAttribute("data-switching",""):(s||N().then(()=>this.events.Tt("show",this)),s=1,this.removeAttribute("data-switching"))});const i=this.querySelector("img.preview");i&&setTimeout(()=>i.remove(),500)})}addEventListener(t,i,s){super.addEventListener(t,i,s)}removeEventListener(t,i,s){super.removeEventListener(t,i,s)}destroy(){if(this.current.set(void 0),this.events.enabled.set(0),this.canvas.unhook(),this.Oe.ge(),this.Tr&&this.Tr.remove(),delete this.Tr,this.Ht.Ce(1),this.#ch?.destroy(),this.#lh){for(const t of["mousemove","pointerdown","wheel","focusin"])this.removeEventListener(t,this.#lh);window.removeEventListener("keydown",this.#lh),this.#lh=void 0}this.#nh=0}async#fh(t){const i=await x(t).catch(t=>{this.#mh(t)});if(!i)return;let s;try{s=gi.er(i,this.Oe)}catch(o){return void this.#mh(o)}if(s)return void s.nr(this);let h=i["@id"]||i.id||t.replace(/info.json$/,""),e=i.width,r=i.height;if("Manifest"===i.type){const t=i.items?.[0]?.items?.[0]?.items?.[0]?.body,s=t?.service?.[0];s?.id&&(h=s.id,e=t.width,r=t.height,i.preferredFormats=s.preferredFormats)}return{id:h,info:{id:h,path:h.replace(/\/[^/]*$/,""),width:e,height:r,version:E,isIIIF:1,is360:""==this.dataset.is360,tiles:i.tiles,preferredFormats:i.preferredFormats}}}async#dh(){if(this.#nh)return;this.#nh=1,await N();const i=this.#ph();if(i.settings||(i.settings={}),this.defaultSettings&&t(this.defaultSettings,i.settings),i.settings.noLogo||this.#gh(!!i.settings.noUI,0),i.id&&S(i.id)&&!this.hasAttribute("width")&&!this.hasAttribute("height")){const t=await X.i(i.id).catch(()=>{});if(t&&t.info?.albumId){const s=await gi.rr(t.info.albumId,this.Oe,{startId:i.id,onProgress:t=>this.Tr?.kt?.({loadingProgress:t})}).catch(()=>null);if(s)return void s.nr(this)}}if(i.id&&i.id.startsWith("http")){const t=await this.#fh(i.id);if(!t)return;return t.settings=i.settings,void this.open(t)}this.ye=!!i.settings.keepRendering,this.events.Tt("print",i);const s=()=>{i.id&&this.open(i.id)};if(void 0!==i.settings.lazyload&&"IntersectionObserver"in window){const t=new IntersectionObserver(i=>{i[0]&&i[0].isIntersecting&&(t.unobserve(this),s())},{rootMargin:100*i.settings.lazyload+"% 0px"});t.observe(this)}else i.id&&q.request(s)}#gh(t,i){this.Tr?this.Tr.kt?.({noHTML:t,noLogo:i}):this.Tr=mt("micrio-main",{setProps:{noHTML:t,noLogo:i},parent:this})}#mh(t){const i=(s=t??"An unknown error has occurred")instanceof y?s.displayMessage:(s instanceof Error?s.message:s)??"An unknown error has occurred";var s;console.error("Error:",i+(t instanceof y?` (${t.code}: ${t.message})`:"")),this.Tr||this.#gh(0,0),this.Tr?.kt?.({error:i}),this._e.set(0)}async open(i,s={}){this.#nh||await this.#dh();const h=this.#ph();let e;if("string"==typeof i&&i.startsWith("http")){const t=await this.#fh(i);if(!t)return this.$current;e=t}else if("string"==typeof i){if(this.gallery)return await this.gallery.gotoId(i)??this.$current;if(e=await X.i(i),!e)return this.#mh('Image with id "'+i+'" not found, published, or embeddable.'),this.$current}else e=i;if(e.settings||(e.settings={}),h.settings?.gallery?.archive&&!/\.\d+$/.test(h.settings.gallery.archive)&&delete h.settings.gallery.archive,"string"==typeof i&&t(h.settings,e.settings),this.defaultSettings&&t(this.defaultSettings,e.settings),e.settings?.gallery?.settings&&t(e.settings.gallery.settings,e.settings),t(L,e.settings,{noOverwrite:1}),this.$current&&e.id==this.$current?.id)return this.$current;this.$current&&!s.gridView&&(t=>{for(const i of[...ki.keys()])xi(t,i)})(this),!s.gridView&&this.$current&&this.Gt.set(1),this.#gh(!!e.settings.noUI,!!e.settings.noLogo);let r=this.Ch.find(t=>e.id&&t.id==e.id),o=0;const n=this.Ch[0]?.grid;if(!r&&n){const t=e.id?n.Er.find(t=>t.id==e.id):void 0;o=!!t,r=e.id?t:this.Ch[0],o&&!n.Cr()&&this.current.set(this.Ch[0])}if(!r){if(this.Ch.length){const t=this.Ch[0];e.info.path=t.Lt,e.info.lang=this.lang}this.Ch.push(r=new Mt(this.Oe,e))}if(s.gallery&&(s.gallery.ar(r),this.gallery=s.gallery),s.startView&&(r.state.view.set(e.settings.view=s.startView),r.ot&&r.engine.ready&&r.camera.setView(e.settings.view,{noRender:1})),this.lang||(this.lang="en"),!this.Oe.ee&&(this.Oe.ae(),!this.Ht.gl))try{this.Ht.Pe()}catch(a){return this.#mh(a),r}if(!this.#uh){switch(this.canvas.hook(),r.$settings?.theme){case"light":this.setAttribute("data-light-mode","");break;case"os":this.setAttribute("data-auto-scheme","")}this.#uh=1}N().then(()=>this.dispatchEvent(new CustomEvent("load",{detail:r})));const a=this.Oe;return a.$h=s.vector?.direction??0,a.Oh=s.vector?.distanceX??0,a.Dh=s.vector?.distanceY??0,a.re=!s.vector,!o||s.gridView&&n?.Ir.find(t=>t.id==e.id)?this.current.set(r):n?.gridFocus(r,{view:e.settings?.view}).then(()=>this.current.set(r)),r.Ft&&this._e.set(0),!r.$settings.micrioSplitLink||r.Ft||r.grid||N().then(()=>{this.$current===r&&(async(t,i,s,h)=>{if(ki.has(i))return;if(i.Ft||i.grid||(t=>{for(const i of ki.values())if(i.secondary===t)return 1;return 0})(i))return;const e=await X.i(s.micrioId);if(!e)return;const r=new Mt(t.Oe,e);t.Ch.push(r),t.Oe.we(r),r.$t=0,0!=h?.isPassive&&(r.zt=1);const o=t.canvas.viewport.portrait;i.camera.setArea(o?[0,0,1,.5]:[0,0,.5,1]),r.camera.setArea(o?[0,1,1,0]:[1,0,0,1],{direct:1}),r.camera.setArea(o?[0,.5,1,.5]:[.5,0,.5,1]);let n=null;0!=h?.isPassive&&(n=i.state.view.subscribe(t=>{t&&!r.camera.v&&r.camera.setView(t,{noLimit:1})}));let a=null;s.markerId&&(a=r.data.subscribe(t=>{if(!t)return;const i=t.markers?.find(t=>t.id===s.markerId);i?.view&&r.camera.flyToView(i.view,{isJump:1}),a?.()})),ki.set(i,{secondary:r,unsub:n,unsubData:a}),t.events.Tt("splitscreen-start",r)})(this,r,{micrioId:r.$settings.micrioSplitLink},{isPassive:!r.$settings.noFollow})}),r}close(t){this.Oe.ve(t)}#ph(){const t={gallery:{}},i={settings:t,id:this.id},s=(t,i,s)=>{const h=i.split(".");for(let e=0;e<h.length-1;e++)t=t[h[e]];t[h[h.length-1]]=s},h=(h,e)=>{for(const r of Object.keys(h)){const o=h[r],n=this.getAttribute(r),a=o.f||r.replace("data-",""),c=e(n,o);void 0!==c&&s(o.r?i:t,a,c)}};return h(P,t=>t||void 0),h(A,(t,i)=>{const s=null!=t&&(""===t||"true"===t);if(s||"false"===t)return i.n?!s:!!s}),h(O,(t,i)=>{if(void 0!==i.dN&&null==t&&(t=i.dN),null==t)return;const s=Number(t);return isNaN(s)?void 0:s}),h(D,t=>null!=t?t.split(",").map(Number):void 0),t.static&&(t.noUI=t.skipMeta=1,t.hookEvents=0),i}get lang(){return B(this.Bt)}set lang(t){this.setAttribute("lang",t)}},Si=class extends bi{static tag="micrio-error";Ee(){this.replaceChildren(),mt("div",{parent:this,children:[mt("span",{textContent:this.lr.message??"An unknown error has occurred"})]})}};customElements.define(Si.tag,Si);var Ei=class{constructor(...t){}destroy(){}},Ci=class extends bi{static tag="micrio-minimap";#Mh={image:null};#_h=null;#wh;#vh;#yh;#bh;#kh;ur(){this.#xh()}kt(t){void 0!==t.image&&t.image!==this.#Mh.image&&(this.#Mh.image=t.image,this.isConnected&&(this.#yh?.(),this.replaceChildren(),this.#_h=null,this.#xh()))}#xh(){const{image:t}=this.#Mh;if(!this.kr()||!t)return;const i=t.$info;if(!i)return;const s=t.camera,h=t.$settings,e=h.minimapWidth??200,r=h.minimapHeight??160,o=i.width/i.height,n=e/o>r?Math.round(r*o):e,a=e/o>r?r:Math.round(e/o),c=-s.rotationY/(2*Math.PI),l=self.crossOriginIsolated;let u=l?void 0:t.thumbSrc;const d=s=>{if(!s||!this.#_h)return;const h=this.#_h;h.clearRect(0,0,n,a),clearTimeout(this.#bh),this.classList.remove("hidden"),this.#bh=setTimeout(()=>this.classList.add("hidden"),2500);const e=!(!t.thumbSrc&&!u);if(i.is360){e&&(h.globalCompositeOperation="source-over",h.fillStyle="rgba(0,0,0,.45)",h.fillRect(0,0,n,a),h.globalCompositeOperation="destination-out");const t=K(s[0]+s[2]/2),i=Math.max(0,Math.min(1,s[1]+s[3]/2)),r=Math.round(t*n),o=Math.round(i*a),c=Math.max(1,Math.round(s[2]*n/2));h.fillStyle=e?"white":"rgba(255,255,255,.8)",h.fillRect(Math.round(r-c),0,2*c,a);const l=Math.max(1,Math.round(s[3]*a/2));h.fillRect(0,Math.round(o-l),n,2*l),h.beginPath(),h.arc(r,o,3,0,2*Math.PI),h.fill(),e&&(h.globalCompositeOperation="source-over")}else e?(h.globalCompositeOperation="source-over",h.fillStyle="rgba(0,0,0,.5)",h.fillRect(0,0,n,a),h.globalCompositeOperation="destination-out"):(h.fillStyle="rgba(0,0,0,.5)",h.fillRect(0,0,n,a)),h.beginPath(),h.fillStyle="white",h.rect(Math.floor(s[0]*n),Math.floor(s[1]*a),Math.ceil(s[2]*n),Math.ceil(s[3]*a)),e&&(h.fill(),h.globalCompositeOperation="source-over"),h.stroke()},f=t=>{if(!this.#vh)return;const i=Math.max(0,Math.min(1,(t.clientX-this.#vh.left)/this.#vh.width)),h=Math.max(0,Math.min(1,(t.clientY-this.#vh.top)/this.#vh.height));this.#wh?s.setView([i-this.#wh.width/2,h-this.#wh.height/2,this.#wh.width,this.#wh.height]):s.setCoo(i,h)},m=()=>{window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",m),this.#wh=void 0},p=mt("canvas",{props:{width:n,height:a},className:h.alwaysShowMinimap?"fixed":void 0,events:{mousedown:t=>{if(0!=t.button)return;window.addEventListener("mousemove",f),window.addEventListener("mouseup",m),this.#vh=p.getBoundingClientRect();const i=s.getView();i&&(this.#wh={width:i[2],height:i[3]}),f(t)}},parent:this});u&&(p.style.backgroundImage=`url('${u}')`,0!=c&&(p.style.backgroundPositionX=n*c+"px")),p.addEventListener("wheel",t=>{s.zoom(t.deltaY*(vt.firefox?50:1))},{passive:1}),this.#_h=p.getContext("2d"),this.#_h&&(this.#_h.lineWidth=1,this.#_h.strokeStyle="white"),l&&t.thumbSrc&&fetch(t.thumbSrc).then(t=>t.blob()).then(i=>{this.#kh&&URL.revokeObjectURL(this.#kh),this.#kh=URL.createObjectURL(i),u=this.#kh,p.style.backgroundImage=`url('${u}')`,d(B(t.state.view))}),this.#yh?.(),this.#yh=t.state.view.subscribe(d),this.mr(this.#yh)}dr(){clearTimeout(this.#bh),this.#kh&&URL.revokeObjectURL(this.#kh),this.#kh=void 0}};function Ii(t,i){if(i)for(let s,h=0;h<i.length;h++)if(i[h].id==t||(s=Ii(t,i[h].children)))return s??i[h]}customElements.define(Ci.tag,Ci);var Li=class extends bi{static tag="micrio-main";#Mh={};#_;#Js;#Th;#Sh=0;#Eh;#Ch;#Ih=new Map;#k=new Map;#Lh;#Ph(){this.#Lh?.destroy(),this.#Lh=void 0}#Ah=["audio","media","logo","orgLogo","details","toolbar","grid","gallery","controls","embeds","markers","popup","tour","popover","minimap","error","progress"];#Oh=new Map;#Dh(t){for(let i=this.#Ah.indexOf(t)+1;i<this.#Ah.length;i++){const t=this.#Oh.get(this.#Ah[i]);if(t?.isConnected)return t}return null}#Fh(t,i){if(i.isConnected)return;const s=this.#Dh(t);s?this.insertBefore(i,s):this.appendChild(i)}#zh(t){const i="string"==typeof t?t:t.localName;return!i.includes("-")||!!customElements.get(i)}#$h(t,i,s,h){const e=this.#Oh.get(t);if(i){if(e?.isConnected)return void h?.(e);e?.remove();const i=s();if(!this.#zh(i))return;this.#Oh.set(t,i),this.#Fh(t,i)}else e?.isConnected&&(e.remove(),this.#Oh.set(t,null))}ur(){const t=this.kr();if(!t)return;const i=R(B(t.Sr)?0:1);this.yr("volume",i),this.mr(t.Sr.subscribe(t=>i.set(t?0:1))),this.mr(()=>this.#Th?.()),this.yr("mediaPaused",R(0)),"markers"==t.getAttribute("data-ui")&&(this.#Mh.noHTML=1);const s=[];this.mr(t.current.subscribe(i=>{if(!i)return;this.#_=i.$info,this.#Js=void 0,this.#Sh=1,this.#Th?.(),this.#Js=i.Et,this.#Th=this.#Js?.subscribe(()=>this.#Vh()),!this.#Eh&&X.m()?.logo&&(this.#Eh=X.m()),this.#Vh(),this.isConnected&&this.#Yh();const h=i.$data;if(h&&0>s.indexOf(i.id)){s.push(i.id);const e=i.$settings.start;e&&N().then(N).then(()=>{if(!(B(t.state.popover)||B(t.state.marker)||B(t.state.tour)))switch(e.type){case"marker":i.state.marker.set(e.id);break;case"markerTour":{const i=h.markerTours?.find(t=>t.id==e.id);i&&t.state.tour.set(i);break}case"tour":{const i=h.tours?.find(t=>t.id==e.id);i&&t.state.tour.set(i);break}case"page":{const i=Ii(e.id,h.pages);i&&t.state.popover.set({contentPage:i,showLangSelect:1});break}}})}this.#Vh()})),this.mr(t.state.tour.subscribe(()=>{const i=this.#Oh.get("subtitles");i&&i.kt?.({raised:!!B(t.state.tour)})}));for(const h of[t.jt,t.state.popup,t.state.popover,t.state.tour,t.state.marker])this.mr(h.subscribe(()=>this.#Vh()));this.mr(t.Bt.subscribe(()=>this.#Vh())),this.#Vh()}kt(t){Object.assign(this.#Mh,t),this.isConnected&&this.#Vh()}#Xh=0;#Vh(){this.#Xh||(this.#Xh=1,q.request(()=>{this.#Xh=0,this.isConnected&&this.#Yh()}))}#Yh(){const t=this.kr();if(!t)return;const i=B(t.state.tour),s=B(t.state.marker),h=B(t.state.popup),e=B(t.state.popover),r=this.#_,o=this.#Js?B(this.#Js):void 0,n=t.$current?B(t.$current.data):void 0,a=this.#Mh.error,c=this.#Mh.loadingProgress??1,l=this.#Mh.noHTML??0,u=this.#Mh.noLogo??l,d=t.canvas.$isMobile,f=t.$current?.P,m=f?o._360.video:void 0,p=m?.src,g="book3d"==t.$current?.album?.info?.type;this.classList.toggle("is3d",f||g);const M=n?.markers?.filter(t=>!!t.positionalAudio),_=!!n?.music?.items.length||!!M?.length,w=i||s,v=!l||"markers"==t.getAttribute("data-ui"),y=!(u||r&&l||o?.noLogo||s||h),b=!l&&y&&!o?.noOrgLogo&&!!this.#Eh&&!e,k=!l&&!!r&&!o?.noControls,x=!l&&!w&&!!o?.showInfo,T=!l&&this.#Sh&&!o?.noToolbar,S=!(l||!r||0==o?.minimap||o?.noControls||!t.$current?.thumbSrc||h&&d);_&&n&&r&&t.$current?this.#Lh||(this.#Lh=new Ei(t,t.$current),this.mr(()=>this.#Ph())):this.#Ph(),this.#$h("media",!!p&&!!r,()=>mt("div")),this.#$h("logo",y,()=>mt("micrio-logo")),this.#$h("details",x&&!!n,()=>mt("micrio-details",{setProps:{info:this.#_,data:n}})),this.#$h("toolbar",T,()=>mt("micrio-toolbar"));const E=B(t.jt);this.#Rh(this.#Ih,"micrio-markers","markers",E,v,i=>!(i.opts?.isEmbed||!i.$data?.markers?.length&&!t.spaceData)),this.#Rh(this.#k,"micrio-image-embeds","embeds",E,"false"!=t.getAttribute("data-embeds"),t=>!!t.$data?.embeds?.length),this.#$h("controls",k,()=>mt("micrio-controls",{setProps:{hasAudio:_||!(!p||!m||m.muted)}})),this.#$h("orgLogo",b&&!!this.#Eh,()=>mt("micrio-logo-org",{setProps:{organisation:this.#Eh}}));const C=t.$current?.grid;C&&this.#Fh("grid",C),this.#$h("gallery",!!o?.omni||!("grid"===t.gallery?.Lr?.type||!t.gallery),()=>mt("micrio-gallery",{setProps:{controller:t.gallery}})),this.#$h("minimap",S,()=>mt("micrio-minimap",{setProps:{image:t.$current}}),i=>i.kt?.({image:t.$current}));const I=B(t.state.popup),L=null!=I&&"popover"!==I.popupType,P=this.#Oh.get("popup");if(L?(P?.isConnected&&(I.id!==this.#Ch||P.classList.contains("destroying"))&&(P.remove(),this.#Oh.set("popup",null)),this.#Ch=I.id,this.#Oh.get("popup")?.isConnected||this.#Oh.set("popup",mt("micrio-marker-popup",{setProps:{marker:I},parent:this}))):P?.isConnected||(this.#Oh.set("popup",null),this.#Ch=void 0),this.#$h("tour",!!i,()=>mt(i&&"steps"in i&&i.isSerialTour?"micrio-serial-tour":"micrio-tour",{setProps:{tour:i,noHTML:l}})),this.#$h("popover",!!e,()=>mt("micrio-popover",{setProps:{popover:e}})),this.#$h("error",!!a,()=>mt("micrio-error",{setProps:{message:a}})),this.#$h("progress",1>c,()=>mt("micrio-progress-circle",{setProps:{progress:c}})),1>c){const t=this.#Oh.get("progress");t?.isConnected&&t.kt?.({progress:c})}}#Rh(t,i,s,h,e,r){const o=h.filter(t=>r(t)),n=new Set(o.map(t=>t.id));for(const[a,c]of t)n.has(a)||(c.remove(),t.delete(a));if(e&&this.#zh(i))for(const a of o){if(t.has(a.id))continue;const h=mt(i,{setProps:{image:a}});t.set(a.id,h);const e=this.#Dh(s);e?this.insertBefore(h,e):this.appendChild(h)}else{for(const i of t.values())i.remove();t.clear()}this.#Oh.set(s,t.values().next().value??null)}};customElements.define(Li.tag,Li),Ti.VERSION=E,customElements.define("micr-io",Ti)}();
|