@micrio/client 7.0.14 → 7.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -19,6 +19,21 @@ Since the Micrio Client is a passive binding for all HTML `<micr-io>` elements,
19
19
  import '@micrio/client'
20
20
  ```
21
21
 
22
+ ## Core build
23
+
24
+ If you only need tiled-image viewing (including IIIF) and none of the extended
25
+ viewer types, a smaller `micrio.core.min.js` is available alongside the full
26
+ build. It excludes the book, grid, audio, embed, media, markers, and tour
27
+ modules, as well as the toolbar, omni (3D object), logo, article, details,
28
+ menu, dial, and popover UI.
29
+
30
+ ```js
31
+ import '@micrio/client/micrio.core.min.js'
32
+ ```
33
+
34
+ Imagery whose data relies on an excluded feature will simply not render that
35
+ feature rather than erroring out.
36
+
22
37
  ## Typed
23
38
 
24
39
  To get typed access to a Micrio HTML element, you can use the `HTMLMicrioElement` as exported by this package:
@@ -0,0 +1,27 @@
1
+ /* Micrio Client 7.0.16
2
+ * Copyright (C) 2015 - present, Q42 Internet B.V. <https://q42.com>, Micrio <https://micr.io>
3
+ *
4
+ * GitHub: https://github.com/Q42/Micrio.Client
5
+ * npm: https://www.npmjs.com/package/@micrio/client
6
+ *
7
+ * Authored by Marcel Duin <marcel@micr.io>, 2015 - present
8
+ * Co-authored by AI (2025 - present)
9
+ *
10
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
11
+ * and associated documentation files (the "Software"), to deal in the Software without
12
+ * restriction, including without limitation the rights to use, copy, modify, merge, publish,
13
+ * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
14
+ * Software is furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be included in all copies or
17
+ * substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
20
+ * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ */
25
+
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}:where(micrio-main,micrio-toolbar,micrio-gallery,micrio-swipe-gallery,micrio-controls,micrio-popover,micrio-logo,micrio-logo-org,micrio-audio-controller,micrio-fullscreen,micrio-tour,micrio-serial-tour,micrio-embed,micrio-zoom-buttons,micrio-button,micrio-minimap){display:contents}:is(micrio-markers,micrio-image-embeds,micrio-marker,micrio-button-group):empty{display:none}:is(micrio-media-controls,micrio-marker-content)>*,micrio-tour .controls>micrio-button{--micrio-button-background:none;--micrio-background-filter:none;--micrio-button-shadow:none}:is(micrio-markers,micrio-image-embeds){pointer-events:none;will-change:width,height,top,left,opacity;width:100%;height:100%;perspective:inherit;position:absolute;top:0;left:0;overflow:hidden}:is(micrio-details details,micrio-marker-content,micrio-button-group),micrio-swipe-gallery>figcaption{color:var(--micrio-color);background:var(--micrio-background);-webkit-backdrop-filter:var(--micrio-background-filter);backdrop-filter:var(--micrio-background-filter);box-shadow:var(--micrio-popup-shadow);border-radius:var(--micrio-border-radius)}:is(micrio-media,micrio-media-controls){display:block}micr-io:is([data-video-tour-active],[data-marker-tour-active])[data-idle] :is(micrio-logo a,micrio-logo-org a,micrio-tour>aside),micr-io[data-idle] :is(micrio-grid .close,micrio-tour micrio-media figure,micrio-serial-tour :is(micrio-media figure,ol)),micr-io:is([data-switching],[data-video-tour-active]) :is(micrio-controls aside,micrio-minimap canvas),micr-io[data-marker-tour-active] micrio-controls aside :is(micrio-zoom-buttons),micr-io:not([data-zoomed]) micrio-minimap canvas:not(.fixed),micr-io:is([data-zoomed],[data-idle],[data-marker-tour-active]) micrio-gallery :is(ul,micrio-button>button),micr-io[data-zoomed] micrio-details details,micrio-gallery>micrio-button>button:disabled{opacity:0;pointer-events:none;transform:var(--micrio-hide,none)}micr-io[data-marker-tour-active] micrio-controls aside :is(micrio-zoom-buttons){--micrio-hide:none}micrio-icon{display:contents}micrio-icon>svg{height:var(--micrio-icon-size);width:var(--micrio-icon-size);display:inline-block}micrio-icon>svg.small{height:.75em}micrio-button>:is(button,a){cursor:pointer;box-sizing:border-box;font:inherit;touch-action:none;color:var(--micrio-color);background:var(--micrio-button-background,var(--micrio-background,none)) center center no-repeat;min-width:var(--micrio-button-size);height:var(--micrio-button-size);border-radius:var(--micrio-border-radius);box-shadow:var(--micrio-button-shadow);-webkit-backdrop-filter:var(--micrio-background-filter);backdrop-filter:var(--micrio-background-filter);background-size:24px;border:none;justify-content:center;align-items:center;margin:0;padding:0 8px;font-family:inherit;font-size:90%;text-decoration:none;transition:opacity .25s;display:flex;position:relative}micrio-button>:is(button,a):hover{outline:none}micrio-button>:is(button,a).transparent{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000}micrio-button>:is(button,a)>*{transition:opacity .25s}micrio-button>:is(button,a):disabled{pointer-events:none;cursor:default}micrio-button>:is(button,a):disabled svg{opacity:.4}micrio-button>:is(button,a).no-click{pointer-events:none}micrio-button>:is(button,a) img{pointer-events:none;max-width:100%;max-height:100%}micrio-button>:is(button,a).active{color:var(--micrio-color-hover)}micrio-button>:is(button,a).active svg{fill:var(--micrio-color-hover)}@media (hover:hover){micrio-button>:is(button,a):is(:hover,:focus){background-color:var(--micrio-button-background-hover,var(--micrio-button-background,var(--micrio-background)));color:var(--micrio-color-hover);z-index:1}micrio-button>:is(button,a):is(:hover,:focus) svg{fill:var(--micrio-color-hover);stroke:var(--micrio-color-hover)}micrio-button>:is(button,a):focus{outline:1px solid var(--micrio-color-hover)}}micrio-button-group{display:block}micrio-button-group micrio-button>:is(button,a){box-shadow:none;--micrio-button-background:transparent;--micrio-background-filter:none;border-radius:0}micrio-button-group>micrio-button:first-child>:is(button,a),micrio-button-group>:first-child>micrio-button:first-child>:is(button,a){border-radius:var(--micrio-border-radius) var(--micrio-border-radius) 0 0}micrio-button-group>micrio-button:last-child>:is(button,a),micrio-button-group>:last-child>micrio-button:last-child>:is(button,a){border-radius:0 0 var(--micrio-border-radius) var(--micrio-border-radius)}@media (width<=500px){micrio-button-group micrio-button>:is(button,a){height:calc(var(--micrio-button-size) - 4px)}}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-controls aside{right:var(--micrio-border-margin);bottom:var(--micrio-border-margin);z-index:2;--micrio-hide:translateX(100%);direction:rtl;margin:0;padding:0;transition:transform .25s,opacity .25s;position:absolute}micrio-controls menu{width:var(--micrio-button-size);min-height:var(--micrio-button-size);margin:8px 0;padding:0;position:relative}micrio-controls menu>div{background:var(--micrio-background);-webkit-backdrop-filter:var(--micrio-background-filter);backdrop-filter:var(--micrio-background-filter);border-radius:var(--micrio-border-radius);box-shadow:var(--micrio-button-shadow);white-space:nowrap;flex-direction:row;display:none;position:absolute;top:0;right:100%}micrio-controls menu:is(:hover,:focus-within)>div{display:flex}micrio-controls menu>div micrio-button{--micrio-button-shadow:none;--micrio-background-filter:none}micrio-controls menu>div micrio-button>*{padding:0}micrio-controls menu>div micrio-button>*>span{width:var(--micrio-button-size)}micrio-controls menu>div micrio-button>.active{background:var(--micrio-color-hover);color:var(--micrio-button-background,var(--micrio-background))}micrio-zoom-buttons:has(>micrio-button:first-child>button[disabled]):has(>micrio-button:last-child>button[disabled]){display:none}micrio-minimap canvas{bottom: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;right:5px}micrio-main:has(>micrio-controls)>micrio-minimap>canvas{right:calc(2 * var(--micrio-border-margin) + var(--micrio-button-size))}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-gallery>micrio-button>button{z-index:2;transition:transform .15s,opacity .15s;position:absolute;top:50%;transform:translateY(-50%)}micrio-gallery>micrio-button:is(.prev,.rotateLeft)>button{left:var(--micrio-border-margin);--micrio-hide:translate(-100%,-50%)}micrio-gallery>micrio-button:is(.next,.rotateRight)>button{right:var(--micrio-border-margin);--micrio-hide:translate(100%,-50%)}micrio-gallery>micrio-button:is(.rotateLeft,.rotateRight)>button{top:calc(50% + var(--micrio-button-size) * 1.15)}micrio-gallery ul{bottom:var(--micrio-border-margin);background:var(--micrio-button-background,var(--micrio-background,none));box-shadow:var(--micrio-button-shadow);-webkit-backdrop-filter:var(--micrio-background-filter);backdrop-filter:var(--micrio-background-filter);border-radius:var(--micrio-border-radius);height:var(--micrio-button-size);color:var(--micrio-color);touch-action:none;cursor:pointer;--micrio-hide:translate(-50%,100%);width:520px;max-width:calc(100cqw - 50px);margin:0;padding:0 16px;list-style-type:none;transition:transform .15s,opacity .15s;display:block;position:absolute;left:50%;transform:translate(-50%)}@media (width<=500px){micrio-gallery ul{left:var(--micrio-border-margin);right:calc(var(--micrio-button-size) + var(--micrio-border-margin) * 2);--micrio-hide:translateY(100%);width:auto;transform:none}}micrio-gallery ul>:first-child{background:var(--micrio-scrubber-background);pointer-events:none;border-radius:2px;height:2px;position:absolute;top:50%;left:16px;right:16px;overflow:hidden;transform:translateY(-50%)}micrio-gallery ul>:first-child>span{background:var(--micrio-color);opacity:.85;border-radius:2px;height:100%;transition:width .15s;display:block;position:absolute;top:0;left:0}micrio-gallery ul>:nth-child(2){pointer-events:none;position:absolute;inset:0 16px}micrio-gallery ul>:nth-child(2)>span{background:var(--micrio-color);opacity:.55;border-radius:50%;width:6px;height:6px;transition:opacity .2s,transform .2s,background-color .2s;position:absolute;top:50%;transform:translate(-50%,-50%)}micrio-gallery ul>:nth-child(2)>span[data-active]{opacity:1;background:var(--micrio-color-hover,var(--micrio-color));transform:translate(-50%,-50%)scale(1.6)}@media (hover:hover){micrio-gallery ul>:nth-child(2)>span[data-hover]{opacity:1;transform:translate(-50%,-50%)scale(1.4)}}micrio-gallery ul.dense>:nth-child(2)>span{opacity:.35;border-radius:1px;width:1.5px;height:8px;transform:translate(-50%,-50%)}micrio-gallery ul.dense>:nth-child(2)>span[data-major]{opacity:.6;height:12px}micrio-gallery ul.dense>:nth-child(2)>span[data-active]{opacity:1;background:var(--micrio-color-hover,var(--micrio-color));width:2px;height:14px;transform:translate(-50%,-50%)}@media (hover:hover){micrio-gallery ul.dense>:nth-child(2)>span[data-hover]{opacity:.9;transform:translate(-50%,-50%)}}micrio-gallery [data-part=hover-label]{font-variant-numeric:tabular-nums;color:var(--micrio-color);background:var(--micrio-popover-background);-webkit-backdrop-filter:var(--micrio-background-filter);backdrop-filter:var(--micrio-background-filter);box-shadow:var(--micrio-button-shadow);pointer-events:none;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.4;position:absolute;bottom:calc(100% + 6px);transform:translate(-50%)}micrio-gallery ul>button{box-sizing:border-box;background:var(--micrio-color);border:2px solid var(--micrio-color);cursor:ew-resize;touch-action:none;min-width:28px;height:28px;box-shadow:0 2px 8px #00000059,0 0 0 0 var(--micrio-color-hover);border-radius:999px;padding:0;transition:left .15s,height .15s,min-width .15s,background-color .2s,box-shadow .2s;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}micrio-gallery ul>button:hover{box-shadow:0 2px 8px #0006,0 0 0 4px #ffffff1f}micrio-gallery ul>button.dragging{cursor:grabbing;transition:none;box-shadow:0 2px 12px #00000080,0 0 0 6px #ffffff26}micrio-gallery ul>button+span{font-variant-numeric:tabular-nums;color:var(--micrio-color);background:var(--micrio-popover-background);-webkit-backdrop-filter:var(--micrio-background-filter);backdrop-filter:var(--micrio-background-filter);box-shadow:var(--micrio-button-shadow);pointer-events:none;white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.4;transition:left .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:0;transform:translate(-50%)}micrio-gallery ul>button+span.dragging{transition:none;transform:translate(-50%)scale(1.05)}micrio-gallery>micrio-button>button:is(:hover,:focus){position:absolute!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)){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",w="E302",M="E303",_="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. Please try a different browser.",[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.",[w]:"Failed to load the image. Please try again.",[M]:"Failed to load the tour. Some features may be unavailable.",[_]:"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??_,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=_;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=_;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=new Map,T=async(t,i)=>{if(!i&&b.has(t))return structuredClone(b.get(t));if(k.has(t))return k.get(t);if(x.has(t))throw x.get(t);const s=fetch(t+(i?(t.includes("?")?"&":"?")+Math.random():"")).then(async i=>{if(200==i.status)return i.json();{const s=y.fromResponse(i,`fetchJson(${t})`);throw x.set(t,s),s}}).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},S=t=>{let i=t.charCodeAt(0),s=91>i;return(i-=s?65:97)-(i>7?1:0)+(s?24:i>10?-1:0)},z=t=>6==t.length||7==t.length,L="7.0.16",P=`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",C={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,t:{showTitles:0,zoomOutAfterClose:1},ui:{controls:{cultureSwitch:1}},i:{}},E={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"}},D={"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"}},O={"data-focus":{},"data-view":{}},$=new Map,F=new Map,V=new Map,B=new Map,N=new Map,R={async l(t){return(await this.u(t))?.data},m:t=>$.get(t),p:t=>($.get(t.micrioId)?.data)?.markers?.find(i=>i.id===t.markerId),M:t=>F.get(t),_:()=>i,v:t=>V.get(t),k:t=>B.get(t),async u(t){if(t)return await(async t=>{if(!t||t.startsWith("http")||$.has(t))return;if(N.has(t))return N.get(t);const s=(async t=>{const s=await T(`${P}${t}/bundle.json?v=${L}`);if(s?.images){for(const t of s.images)t?.id&&($.set(t.id,t),s.tours&&B.set(t.id,s.tours));t.startsWith("external/")&&s.images[0]?.id&&($.set(t,s.images[0]),s.tours&&B.set(t,s.tours))}if(s?.organisation&&(i=s.organisation),s?.spaces)for(const i of s.spaces)i?.id&&i?.data&&F.set(i.id,i.data);s?.album&&V.set(s.album.id,s.album)})(t);N.set(t,s);try{await s}catch{}finally{N.delete(t)}})(t),$.get(t)}};function Y(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 X(t){let i;return t.subscribe(t=>{i=t})(),i}function W(){return Promise.resolve()}var G=(t,i=1)=>(t%i+i)%i,H=t=>G(t),Z=t=>G(t,2*Math.PI),j=t=>1<<t,U=t=>({centerX:t[0]+t[2]/2,centerY:t[1]+t[3]/2,width:t[2],height:t[3]}),q=(t,i)=>1e-6>Math.abs(t-i);function K(t,i){const s=H(t),h=H(i)-s,e=h>0?h-1:h+1;return Math.abs(h)>Math.abs(e)?e:h}var J,Q,tt=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))}},it=new tt(.42,0,.58,1),st=new tt(.42,0,1,1),ht=new tt(0,0,.58,1),et=new tt(0,0,1,1),rt={ease:it,"ease-in":st,"ease-out":ht,linear:et},ot=t=>rt[t??"ease"]??it,nt=class{rotationY=0;#u;T;S;L=[];P;I;C;A;#d;get image(){return this.#d}constructor(t){if(this.#d=t,!t.D){const i=t.state.$view;i&&t.$info?.width&&W().then(()=>this.setView(i))}}O(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}=U(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.$(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.V.F(t,i):e.camera.F(t,i,!!s,!!h)).arr}getXY(t,i,s=0,h,e,r){return this.B(t,i,{abs:s,radius:h,rotation:e,noTrueNorth:r}).slice(0)}B(t,i,s={}){if(this.C)return this.C(t,i);const h=this.#u;if(!h)return new Float64Array(5);const e=this.#d.D&&!s.noTrueNorth?-this.rotationY/(2*Math.PI):0;return h.is360?h.V.N(t-e,i).arr:void 0===s.rotation||isNaN(s.rotation)?h.Y.R(t-e,i,!!s.abs).arr:h.Y.X(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.W??1;getMinScale=()=>this.#u?.camera.G??.1;setMinScale(t){this.#u?.H(t)}setMinScreenSize(t){!this.#d.album&&this.#u&&(this.#u.camera.Z=Math.max(0,Math.min(1,t)))}isZoomedIn=()=>!!(this.I?this.I():this.#u?.j());isZoomedOut=(t=0)=>!!(this.I?!this.I():this.#u?.U(t));getDirection=()=>this.#u?.V.q??0;getPitch=()=>this.#u?.V.K??0;setDirection(t,i){this.#u&&(this.#u.J(t,i??this.#u.V.K),this.#d.engine.render())}setLimit(t){if(!this.#u)return;const i=U(t);this.#u.view.tt(i.centerX,i.centerY,i.width,i.height),this.#d.engine.render()}setCoverLimit(t){this.#u&&(this.#u.it=!!t,this.#u.st())}getCoverLimit=()=>!!this.#u?.it;set360RangeLimit(t=0,i=0){this.#u&&(this.#u.V.ht(t,i),this.#d.engine.render())}stop(){this.#u?.et()}pause(){this.#u?.rt()}resume(){this.#u?.ot(),this.#d.engine.render()}getMatrix(t,i,s,h,e,r,o,n,a,c,l){return this.A?this.A(t,i,s||1,e,r,o,a,c,h):this.#u?.nt(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.ct){for(const i of this.#u.images)if(i.lt>0)return void i.ut(t[0],t[1],t[0]+t[2],t[1]+t[3])}else this.#u.ut(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.lt>0){h.dt=t,h.ft=i,h.gt=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}wt(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?.Y.Mt(t,i,s).arr??new Float64Array(5)}_t(){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.T=t,this.S=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}=U(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=U(i.prevView);this.#u.yt.vt(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(G(s/(2*Math.PI))*h))}null!=i.omniIndex&&(i.omniIndex=G(i.omniIndex,h))}const c=this.#u.camera.bt(e,r,o,n,i.duration??-1,i.speed??-1,i.progress??0,!!i.isJump,!!i.limit,!!i.limitZoom,i.omniIndex??0,ot(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];return i[2]=this.getCoverScale(),this.flyToCoo(i,t)}flyToCoo(t,i={}){return new Promise((s,h)=>{if(!this.#u)return h(new Error("engine not ready"));const e=ot(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.P)this.P(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.kt(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.xt(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 at(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.Tt?.(i.setProps),i.parent&&i.parent.appendChild(s),s}function ct(t,i={}){return at(t,{...i,ns:"http://www.w3.org/2000/svg"})}(Q=J||(J={})).Main=class{tour=Y();#p;get $tour(){return this.#p}marker=Y();markerHoverId=Y();#g;get $marker(){return this.#g}popup=Y();popover=Y();mediaState=new Map;constructor(){this.tour.subscribe(t=>{"string"!=typeof t&&(this.#p=t)}),this.marker.subscribe(t=>{"string"!=typeof t&&(this.#g=t)})}},Q.Image=class{view=Y(void 0);#w;get $view(){return this.#w}marker=Y(void 0);#g;get $marker(){return this.#g}layer=Y(0);constructor(t){const i=t.engine.micrio;let s,h,e;this.view.subscribe(r=>{this.#w=r;const o=r?.toString();if(r&&o&&s!=o){const n={image:t,view:r};s=o;const a=r[2],c=r[3];if(!h||!e||Math.abs(a-h+(c-e))>1e-5){for(const t of i.St)t(n);i.events.zt("zoom",{image:t,view:r}),h=a,e=c}for(const t of i.Lt)t(n)}}),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 lt=new Set,ut=[],dt=class t{id;uuid=(()=>Math.random().toString())();#M;get $info(){return this.#M}Pt=Y({});get $settings(){return X(this.Pt)}data=Y(void 0);get $data(){return X(this.data)}state;camera;video=Y(void 0);visible=Y(0);album;omni;grid;It;Ct;Et;error;ct=0;At=-1;D=0;Dt=0;Ot=0;$t=1;#_=0;thumbSrc;#v;Ft=0;Vt;Bt=1;Nt=Y();Rt=[];Yt;get engine(){return this.#y}get canvas(){return this.#y.Xt(this)}#y;opts;constructor(t,i,s={}){if(this.#y=t,this.opts=s,this.state=new J.Image(this),s.useParentCamera||(this.camera=new nt(this)),this.id=i.id.replace(P,""),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.#M=h,this.Et=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=S(this.id[1+S(this.id)%6]);h.is360=!!(t>>4&1)||!!h.is360,h.isWebP=!(3&t),h.isPng=2==(3&t),t>>3&1&&z(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.Yt=n?h.tileBasePath??"https://b.micr.io/":o?"https://b.micr.io/":h.tileBasePath??h.path??"https://r2.micr.io/";const a=R._();if(a?.baseUrl&&!h.path.includes(a.baseUrl)?(this.Et=h.path=a.baseUrl,o||(this.Yt=this.Et)):("https://eu.micr.io/"==h.path||h.path)&&(this.Et=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=R.M(h.spacesId),1==r.spaceData?.images.length&&delete r.spaceData),r.bundleTours||(r.bundleTours=R.k(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?.i?.trueNorth&&(this.camera.rotationY=(e.i.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.D=!!h.is360,this.Dt=!!h.isVideo;let c=X(r.Wt);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(lt.has(l))return t();const s=document.createElement("script");s.onload=()=>{lt.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.$t++);let u=Math.max(h.width,h.height);do{this.#_++}while((u/=2)>1);e?.gallery?.archive&&(this.$t-=1-(e.gallery.archiveLayerOffset??0)),this.Ft||(this.thumbSrc=this.Gt(this.$t,0,0)),r.events.zt("pre-info",h),this.Ft&&!this.Ot||e?.skipMeta||!i.data||this.data.set(i.data),e&&this.Pt.set(e),h.watermark&&this.#y.micrio.Zt.Ht(h.watermark,e?.watermarkOpacity),this.Ot&&this.state.layer.subscribe(t=>{this.ct&&this.#y.ready&&(this.canvas?.jt(t),this.#y.render())});const d=this.#y.micrio;let f=X(this.visible);this.visible.subscribe(t=>{t!=f&&(f=t,d.Ut.update(i=>(t?i.push(this):i.splice(i.indexOf(this),1),i)),t&&d.$current==this&&d.qt.set(0))}),this.video.subscribe(t=>this.Ct=t)}Gt(t,i,s,h){const e=this.#M;if(e.isDeepZoom&&(t=this.#_-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.ceil(Math.min(h,a/r*h)),u=Math.ceil(Math.min(h,c/r*h)),d=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?.i?.video?.src)throw new Error("Video thumb");return`${this.Yt}${e.tilesId||e.id}/${void 0!==h?h+"/":""}${t}/${i}${e.isDeepZoom?"_":"-"}${s}.${this.#v}`}#b(t){return new Promise(i=>{ut.includes(t)||document.head.querySelector('link[href="'+t+'"]')?i():(ut.push(t),at("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:R.m(i.id??"")?.data,settings:s},{area:r,isEmbed:1,useParentCamera:e.asImage});if(o.camera||(o.camera=this.camera),this.Rt.push(o),void 0===e.opacity&&(e.opacity=1),"cover"==e.fit||"contain"==e.fit){const t=o.$info,i=this.D?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.Kt(o,this,e),this.#y.render(),o}#k=new Map;Jt(t,i){i?this.#k.set(t,i):this.#k.delete(t)}getEmbedMediaElement(t){return this.#k.get(t)}},ft=new class{#x=new Map;db=new Map;imageKeys=new Map;async load(t,i,s){if(this.#x.has(i))return;const h=i.replace(/^.*\//,"").split(".")[0],e=/\/base$/.test(i),r=e||z(h),o=new XMLHttpRequest,n=await new Promise((h,e)=>{let n=0;o.responseType="arraybuffer",o.onprogress=t=>{n||(n=Number(o.getResponseHeader("Content-Length"))),s?.(Math.min(1,t.loaded/n))},o.onload=()=>{4===o.readyState&&200===o.status?(s?.(1),h(o.response)):e()},o.onerror=e,o.open("GET",t+i+(r?".bin":".mdp")),o.send()});if(!n)return;this.#x.set(i,n);const a=e?i.split("/")[0]+"/":"";let c=0;for(;c<n.byteLength&&c+32<=n.byteLength;){const s=this.#T(new Uint8Array(n,c,32));if(s.name&&s.size>0){this.db.set(t+a+s.name.replace("./",""),[i,c+32,s.size]);const h=s.name.replace("./",""),e=t+a+h,r=h.indexOf("/");if(r>0){const t=h.substring(0,r);this.imageKeys.has(t)||this.imageKeys.set(t,e)}}else if(0===s.size&&!s.name)break;c+=32+s.size}}#T(t){const i=(new TextDecoder).decode(t),s=t=>i.slice(h,h+=t).replace(/\x00/g,"").trim();let h=0;return{name:s(20),size:parseInt(s(12),8)}}get=t=>new Promise((i,s)=>{const h=this.db.get(t);if(!h||!this.#x.has(h[0]))return s(new Error("Could not get blob: "+t));const e=new FileReader;e.onload=()=>i(JSON.parse(e.result)),e.readAsText(new Blob([new Uint8Array(this.#x.get(h[0]),h[1],h[2])]))});Qt=async t=>{const i=this.db.get(t);if(!i||!this.#x.has(i[0]))throw new Error("Could not get blob: "+t);const s=new Blob([new Uint8Array(this.#x.get(i[0]),i[1],i[2])]);return self.createImageBitmap(s)};ti=async t=>{const i=this.imageKeys.get(t);if(!i)throw new Error(`No image found in archive for ID: ${t}`);return this.Qt(i)}},mt=navigator.userAgent,pt={iOS:/ipad|iphone|ipod/i.test(mt),firefox:/firefox/i.test(mt),OSX:/macintosh/i.test(mt)&&/os\ x/i.test(mt),hasTouch:"TouchEvent"in self,safari:0};pt.safari=(pt.OSX||pt.iOS)&&(/safari/i.test(mt)||/instagram/i.test(mt))&&!/chrome/i.test(mt),pt.OSX&&pt.safari&&"TouchEvent"in self&&(pt.iOS=1,pt.OSX=0);var gt=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"})),wt=Math.max(2,Math.min(6,(navigator.hardwareConcurrency||2)-1)),Mt=Array(wt).fill(0),_t=0,vt=[],yt=[],bt=new Map;for(let Ri=0;wt>Ri;Ri++){const t=new Worker(gt);t.onmessage=t=>xt(Ri,t.data.data,t.data.error,t.data.type),vt.push(t)}function kt(){if(!yt.length)return;const t=Mt.indexOf(0);if(0>t)return;Mt[t]=1,_t++;const i=yt.shift();bt.set(t,i),vt[t].postMessage({src:i[0],type:"image/"+i[0].split(".").pop()})}function xt(t,i,s,h){const e=bt.get(t);e&&(bt.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(()=>{Mt[t]=0,_t--,kt()},50))}function Tt(){return _t}function St(t){let i=-1;for(const[s,h]of bt.entries())if(h[0]===t){i=s;break}0>i||vt[i]?.postMessage("abort")}var zt=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}},Lt=class{ii;si;width;height;hi;ei;ri;oi;#S=new Float64Array([.5,.5,1,1]);#z=0;ni=0;ai=0;#u;constructor(t,i=.5,s=.5,h=1,e=1,r=.5,o=.5,n=1,a=1){this.ii=i,this.si=s,this.width=h,this.height=e,this.hi=r,this.ei=o,this.ri=n,this.oi=a,this.#u=t}get arr(){return this.#z&&(this.#S[0]=this.ii,this.#S[1]=this.si,this.#S[2]=this.width,this.#S[3]=this.height,this.#z=0),this.#S}get x0(){let t=this.ii;return this.#u.is360&&(t=H(t)),this.#u.is360?H(t-this.width/2):t-this.width/2}get y0(){return this.si-this.height/2}get x1(){let t=this.ii;return this.#u.is360&&(t=H(t)),this.#u.is360?H(t+this.width/2):t+this.width/2}get y1(){return this.si+this.height/2}get lX0(){return this.hi-this.ri/2}get lY0(){return this.ei-this.oi/2}get lX1(){return this.hi+this.ri/2}get lY1(){return this.ei+this.oi/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.ii=t,this.si=i,this.width=s,this.height=h,this.#z=1,this.ni=1}ut(t,i,s,h){this.ii=(t+s)/2,this.si=(i+h)/2,this.width=s-t,this.height=h-i,this.#z=1}tt(t,i,s,h){this.hi=t,this.ei=i,this.ri=s,this.oi=h,this.ni=1,this.ai=1}ci(t,i=0){this.ii=t.ii,this.si=t.si,this.width=t.width,this.height=t.height,i||(this.hi=t.hi,this.ei=t.ei,this.ri=t.ri,this.oi=t.oi),this.ni=1,this.#z=1}#L(){const t=this.#u;return 1/Math.max(this.width*t.width/t.el.width,this.height*t.height/t.el.height)}li(t,i=0,s=0){const h=this.#u,e=h.Y.Z,r=this.#L();if(1>e&&r<h.Y.G&&!i){const t=1/e,i=Math.min(t,this.width),s=Math.min(t,this.height);return this.ii=.5,this.si=.5,this.width=i,this.height=s,void(this.#z=1)}const o=t?Math.max(1,r/Math.max(h.Y.G,h.maxScale/h.el.scale)):1,n=this.ri,a=this.oi,c=Math.min(n,this.width*o),l=Math.min(a,this.height*o);if(t&&(o>1||i&&r<h.Y.G)&&(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.#z=1);const u=Math.min(1,this.width)/2,d=this.ri/2;this.#u.is360?this.ii=H(this.ii):s||(this.ii=Math.max(this.hi-d+u,Math.min(this.ii,this.hi+d-u)));const f=Math.min(1,this.height)/2,m=this.oi/2;s||(this.si=Math.max(this.ei-m+f,Math.min(this.si,this.ei+m-f))),this.#z=1}di(){const t=this.#u;if(t.is360)return;const i=t.Y.cpw/t.Y.cph;this.width/this.height>i?this.height=this.width/i:this.width=this.height*i,this.#z=1}},Pt=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}fi(t){return-1>this.w||3>this.w&&!(0>this.x||this.x>t.width||0>this.y||this.y>t.height)}mi(){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}},It=class{width;height;left;top;pi;gi;ratio;scale;wi;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.pi=e,this.gi=r,this.ratio=o,this.scale=n,this.wi=a}get Mi(){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.wi===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.wi=o,1)}ci(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.wi=t.wi}},Ct=class{#P=0;#I=0;#C=0;#E=0;#A=0;#D=0;#O=0;#$=0;started=0;#u;constructor(t){this.#u=t}addStep(t,i){const s=this.#u.main.now;if(this.#A)return;0===this.#C&&(this.#C=s);const h=this.#E>0?16.67/(s-this.#E):1;Math.sqrt(t*t+i*i)*h>20&&(this.#D=s);const e=this.#u.main._i;this.#P+=t*e,this.#I+=i*e,this.#E=s}start(){this.#u.camera.yi()||(this.started=1)}stop(){this.started=0,this.#A=0,this.#C=0,this.#E=0,this.#D=0,this.#P=0,this.#I=0,this.#O=0,this.#$=0}step(){const t=this.#u.main.now,i=this.#u.V,s=this.#u.camera;if(!this.started||0===this.#C)return 1;if(0===this.#A){this.#A=t;const i=1-Math.min(1,(this.#A-this.#D)/250),s=this.#A-this.#C;this.#O=this.#P/(s/4)*i,this.#$=this.#I/(s/4)*i}else this.#O*=.94,this.#$*=.94;let h=Math.sqrt(this.#O*this.#O+this.#$*this.#$);return this.#u.is360?i.bi(this.#O,this.#$):s.xt(this.#O,this.#$,0,0,0,1),h>.01||(h=0,this.stop()),1-h}},Et=class{#F=0;#V;#B;ki;#N=0;#R=0;#Y=0;#X=0;#W=0;#G=it;#H=0;#Z=0;#j=0;li=1;xi=0;Ti=0;#U=0;#q=0;#K=0;#J=0;#Q=0;#tt=0;#it=0;#st=-1;#ht=0;#u;constructor(t){this.#u=t,this.#V=new Lt(t),this.#B=new Lt(t),this.ki=new Lt(t)}pause(){this.#U>0||(this.#j=0,this.#U=performance.now())}resume(){0!==this.#U&&0!==this.#H&&(this.#H+=performance.now()-this.#U,this.#U=0,this.#j=1)}stop(){this.#j&&this.#u.S(),this.#H=0,this.li=1,this.xi=0,this.#j=0,this.#F=0,this.#N=0,this.Ti=0,this.#U=0}Si(){return this.#j&&this.#F}zi(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.Ti)return this.Li(t,i,s,h,1),e;this.ki.set(t,i,s,h),this.#B.set(t,i,s,h);const f=this.#u,m=f.view,p=this.#B,g=this.#V;this.#R=c,this.#G=r;const w=f.main.el;if(0!==w.gi){const t=h/(1-w.gi/w.height);t>0?h+=t:h-=t,w.gi=0}if(0!==w.pi){const t=s*(w.pi/w.width);t>0?s+=t:s-=t,w.pi=0}const M=m.ii,_=m.si,v=m.width,y=m.height;g.set(M,_,v,y),f.is360&&(t=M+K(M,t),p.set(t,i,s,h)),l&&(p.di(),p.li(0)),this.#q=0,this.#J=0,this.#K=0,this.#Q=0;let b=1;if(this.#R){if(!f.is360){const t=p.ii,i=p.si;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,w=c>r,M=u>n;!(d||m||w||M)||d&&m&&w&&M?p.set(t,i,s,h):(this.#q=d?1:a>e?2:0,this.#J=w?1:r>c?2:0,this.#K=m?1:l>o?2:0,this.#Q=M?1:n>u?2:0,b=1.5)}d&&p.li(1,!l);const k=Math.max(1e4,Math.min(15e3,f.Pi/2));let x=Math.abs(M-t);f.is360&&(x=Math.min(x,1-x));const T=v>s&&y>h?.125:.25,S=(x+Math.abs(_-i)+Math.abs(v-s)*T+Math.abs(y-h)*T)/3;this.#tt=Math.max(.5,.8-S*(f.is360?1:2)),this.#it=Math.max(.05,Math.min(.9,S-(f.is360?.2:.1))),this.#Z=0>e?S*k/f.Ii*b/(n>0?n:1):e;const z=f.images.length/f.Ci;return this.#st=f.Ei,this.#ht=0,!isNaN(u)&&u>0&&u!==this.#st&&(this.#ht=u-this.#st,this.#ht<-z/2&&(this.#ht+=z),this.#ht>z/2&&(this.#ht-=z),this.#Z+=Math.abs(this.#ht)/this.#u.images.length*6e3),this.stop(),0===this.#Z?(f.$(p.ii,p.si,p.width,p.height,0,1),this.#u.T(),this.#Z):(this.#F=1,this.li=0,this.xi=1,this.#N=0,d&&(this.Ti=1),this.#H=performance.now()-a*this.#Z,this.#j=1,this.#Z*(1-a))}Li(t,i,s,h,e=0){this.#B.set(t,i,s,h),e&&this.#B.li(1)}zoom(t,i,s,h){this.stop(),this.#F=0,this.xi=0,this.#N=1,this.#W=h;const e=this.#u,r=e.V;return this.#Y=r.Ai,this.#X=this.#Y+t/(r.Di*e.Pi/20),h||(this.#X=Math.min(r.Oi,Math.max(r.$i,this.#X))),this.#H=performance.now(),this.#j=1,this.#Z=0>i?1e3*Math.abs(this.#Y-this.#X)/s:i,i}vt(t,i,s,h,e=0){this.#V.set(t,i,s,h,e),this.#B.set(t,i,s,h,e)}Fi(){const t=0===this.#H?1:Math.min(1,Math.max(0,(this.#u.main.now-this.#H)/this.#Z)),i=this.#G.get(t);if(this.#j){if(this.#F){const s=this.#V,h=this.#B,e=this.#it,r=this.#G.get(Math.min(1,t/this.#tt)),o=this.#G.get(Math.max(0,(t-e)/(1-e)));let n=0,a=s.ii+(h.ii-s.ii)*((n=this.#q||this.#J)?1===n?r:o:i),c=s.si+(h.si-s.si)*((n=this.#K||this.#Q)?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=K(s.ii,h.ii);a=s.ii+t*i}if(this.#u.$(a,c,l,u,0,1),this.#ht){let i=this.#st+Math.trunc(this.#ht*this.#G.get(Math.min(1,1.5*t)));const s=this.#u.images.length/this.#u.Ci;0>i&&(i+=s),s>i||(i-=s),this.#u.Vi(i,0)}}this.#N&&this.#u.V.Bi(this.#Y*(1-i)+this.#X*i,this.#W),1>t||(this.ki.ci(this.#u.view),this.#u.T(),this.stop())}return t}},At=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])}Ni(){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}ci(t){this.arr.set(t.arr)}Ri(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}Yi(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}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[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}Wi(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}Gi(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}Ai(t,i,s,h){this.Ni();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}Hi(t){this.Ni();const i=this.arr,s=1/Math.tan(t/2);i[0]=s,i[5]=s}Zi(){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],w=i*o-s*r,M=i*n-h*r,_=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,z=l*g-d*m,L=u*g-d*p;let P=w*L-M*z+_*S+v*T-y*x+b*k;P&&(P=1/P,t[0]=(o*L-n*z+a*S)*P,t[1]=(h*z-s*L-e*S)*P,t[2]=(m*b-p*y+g*v)*P,t[3]=(u*y-l*b-d*v)*P,t[4]=(n*T-r*L-a*x)*P,t[5]=(i*L-h*T+e*x)*P,t[6]=(p*_-f*b-g*M)*P,t[7]=(c*b-u*_+d*M)*P,t[8]=(r*z-o*T+a*k)*P,t[9]=(s*T-i*z-e*k)*P,t[10]=(f*y-m*_+g*w)*P,t[11]=(l*_-c*y-d*w)*P,t[12]=(o*x-r*S-n*k)*P,t[13]=(i*S-s*x+h*k)*P,t[14]=(m*M-f*v-p*w)*P,t[15]=(c*v-l*M+u*w)*P)}ji(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]}Di(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}Ui(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 w=Math.sqrt(m*m+p*p+g*g)||1;m/=w,p/=w,g/=w;const M=p*d-g*u,_=g*l-m*d,v=m*u-p*l;c[0]=m,c[1]=M,c[2]=-l,c[3]=0,c[4]=p,c[5]=_,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]=-(M*t+_*i+v*s),c[14]=l*t+u*i+d*s,c[15]=1}},Dt=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}ci(t){this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w}qi(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}Ki(){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}},Ot=class{canvas;#et=-1;#rt=-1;#ot=-1;constructor(t){this.canvas=t}Ji(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.#et-d;if(e.Qi.stop(),this.#rt>0){const t=this.#rt-l,i=this.#ot-u;this.ts(f,t,i,l,u,r,e)}else e.yt.stop();this.#rt=l,this.#ot=u,this.#et=d}ss(){}hs(){this.#nt()}#nt(){this.#et=-1,this.#rt=-1,this.#ot=-1}bt(t,i,s,h,e,r,o,n,a,c,l,u){const d=this.canvas,f=d.yt;d.Qi.stop();const m=this.es(t);return f.li=0,e=f.zi(m,i,s,h,e,u,{speed:r,perc:o,isJump:n,limitViewport:a,omniIdx:l,correct:c}),f.li=0,f.xi=1,e}es(t){return t}setCoo(t,i,s,h=0,e=0,r=0,o=it){if(this.rs(t,i,s))return 0;const n=this.canvas;0===s&&(s=n.cs()),s=this.ls(s),n.Qi.stop();const{w:a,h:c}=this.us(s);return this.ds(t,i,a,c,h),h=n.yt.zi(t,i,a,c,h,o,{speed:e}),n.yt.li=0===h||r,n.yt.xi=h>0,h}rs(t,i,s){return 0}ls(t){return t}ds(t,i,s,h,e){}},$t=class extends Ot{Di=1;G=1;Z=1;fs=1;#at=1;W=1;#ct=new Pt;#lt=new Pt;#ut=new Pt;#dt=0;#ft=0;#mt=0;#pt=new At;cpw=-1;cph=-1;#gt=1;constructor(t){super(t)}F(t,i,s,h){const e=this.canvas;(e.Ft||e.ps)&&(h=1);const r=e.el,o=e.gs?e.parent.el.ratio:r.ratio,n=e.view,a=this.#lt;s&&(t-=r.left,i-=r.top);const c=t/this.Di*o/e.width+n.x0,l=i/this.Di*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.Di,a.mi(),this.#lt}R(t,i,s){const h=this.canvas,e=h.el,r=h.gs?h.parent.el.ratio:e.ratio,o=this.#ct;return o.x=(t-h.view.x0)*h.width*this.Di/r+(s?e.left:0),o.y=(i-h.view.y0)*h.height*this.Di/r+(s?e.top:0),o.scale=this.Di/r,o.mi(),o}X(t,i,s,h,e){return this.Mt(t-.5,i-.5,s,h,e)}Mt(t,i,s,h=0,e=0){const r=this.canvas,o=r.el,n=this.#pt,a=r.V.ws,c=r.gs?r.parent.el.ratio:o.ratio;a.x=t,a.y=i,a.z=s,a.w=1,n.Ni(),!e&&r.Ms&&n.Ai(r.Ms,r.aspect,1e-4,100),r._s&&n.Gi(0,0,r._s),r.vs&&n.Gi(r.vs,0,0),!e&&r.ys&&n.Ri(r.ys);const l=r.images.length/r.Ci,u=r.layer*l,d=r.images.length>0?-(r.Ei+1-u)/l*2*Math.PI:0;n.Yi(h+d),a.qi(n);const f=this.#ct;return f.x=(.5+a.x-r.view.x0)*r.width*this.Di/c+(e?o.left:0),f.y=(.5+a.y-r.view.y0)*r.height*this.Di/c+(e?o.top:0),f.w=-a.w-r._s,f.mi(),f}bs(){const t=this.canvas,i=t.el,s=i.width/t.width,h=i.height/t.height;if(!t.view.ai&&this.cpw===s&&this.cph===h)return void(t.it!==this.#gt&&this.st());this.cpw=s,this.cph=h,this.#at=Math.min(s,h),this.W=Math.max(s,h);const e=t.view.ri/t.view.oi;if(t.view.ai=0,1>t.view.ri||1>t.view.oi){const i=s/h;this.W/=i>e?t.view.ri/i:t.view.oi*i}if(this.st(),i.width&&i.height&&!this.canvas.yt.Si()&&(t.view.ci(t.yt.ki,1),!t.is360)){const i=t.yt.li;t.yt.li=0,this.ks(),t.yt.li=i}}st(t=0){const i=this.canvas;if(this.G=i.it?this.W:this.#at,!t&&!i.main.xs&&(0===i.Ei&&!i.it||i.Ei>0&&!i.it)){const t=i.focus.width*i.width,s=i.focus.height*i.height,h=i.el.width,e=i.el.height;this.G=h/e>t/s?e/s:h/t}this.fs=this.G>1&&i.maxScale<this.G?this.G:Math.max(this.G,i.maxScale*i.Ts/i.el.scale),this.#gt=i.it}yi(){return 1>this.Z&&this.Di<this.G}U(t=0){return q(this.Di,this.G*(t?this.Z:1))||this.Di<=this.G*(t?this.Z:1)}j(){return q(this.Di,this.fs)||this.Di>=this.fs}ks(){if(-1===this.cpw)return 0;const t=this.canvas,i=this.canvas.view,s=!t.ps&&t.yt.li;!t.yt.Ti&&(s||!t.yt.xi&&t.it)&&i.li(0);const h=i.width,e=i.height,r=this.cpw,o=this.cph;this.Di=Math.min(r/h,o/e),s&&!this.#dt&&this.Di>=this.fs&&t.yt.xi&&(this.Di=this.fs),(!t.yt.Ti&&!this.#dt||t.it)&&(this.Di=Math.max(this.G*this.Z,this.Di)),!this.#ft&&t.Ss&&(this.Di=this.W);const n=r/this.Di-h,a=o/this.Di-e;return i.set(i.ii,i.si,i.width+n,i.height+a),!this.#ft&&t.Ss&&this.canvas.yt.ki.ci(i),!t.yt.Ti&&t.it&&i.li(0),this.#ft=this.cpw>0,this.#mt?(this.#mt=0,this.setCoo(this.#ut.x,this.#ut.y,this.#ut.scale),0):1}zs(){const t=this.canvas.view;return!this.canvas.ps&&((!q(t.x0,t.lX0)&&t.x0<t.lX0)!=(!q(t.x1,t.lX1)&&t.x1>t.lX1)||(!q(t.y0,t.lY0)&&t.y0<t.lY0)!=(!q(t.y1,t.lY1)&&t.y1>t.lY1)||!q(this.Di,this.fs)&&this.Di>this.fs)}xt(t,i,s=0,h=0,e=0,r=0){const o=this.canvas;if((this.yi()||this.#dt)&&!e)return;this.canvas.ps&&(h=1);const n=o.gs?o.parent.el.ratio:o.el.ratio,a=o.view,c=t/o.width/this.Di*n,l=i/o.height/this.Di*n,u=a.ii+c,d=a.si+l,f=a.width,m=a.height;this.#dt?(o.view.set(u,d,f,m),o.$(u,d,f,m,h,0,0,0)):e||!this.zs()||r?(o.yt.stop(),0===s?(r||o.Qi.addStep(4*t,4*i),o.view.set(u,d,f,m),h||o.view.li(0,0,o.ps),o.$(u,d,f,m,h,0,0,r),o.view.ni=1):o.yt.zi(u,d,f,m,s,it)):o.yt.Si()?o.yt.Li(u,d,a.width,a.height,1):o.yt.zi(u,d,f,m,150,it,{limitViewport:!h&&!this.#dt,correct:!h})}kt(t,i,s,h=0,e){const r=this.canvas;if(r.Qi.stop(),!this.#dt&&this.j()&&0>t)return 0;if(this.canvas.ps&&(e=1),t>0&&this.U()&&this.Z>=1&&(!this.#dt||r.it))return 0;const o=r.el,n=r.view,a=this.cpw/this.cph;let c=t*(o.width/512)/r.width/this.Di,l=c/a;0>t&&-1>c&&(c=-.9999),0>t&&-1>l&&(l=-.9999);const u=!e&&!r.ps&&r.yt.li&&0===h,d=r.gs?r.parent.el.ratio:o.ratio;i-=o.left,s-=o.top;const f=this.yi(),m=i>0&&!f?i/o.width*d:.5,p=s>0&&!f?s/o.height*d:.5,g=n.ii+c*(.5-m),w=n.si+l*(.5-p),M=n.width+c,_=n.height+l;return r.yt.li=u,h=r.yt.zi(g,w,M,_,h,it,{limitViewport:!e&&!this.#dt,correct:u}),r.yt.ki.ci(r.view),r.yt.li=!e,h}ts(t,i,s,h,e,r,o){!this.canvas.main.Ls&&this.Di>this.G&&this.xt(i,s,0,0,1),this.kt(2*t*r.scale,h,e,0,!this.canvas.Ps),o.yt.li=!!this.canvas.Ps}ss(){this.#dt=1}hs(){this.#wt(),this.#dt=0,super.hs()}#wt(){if(this.canvas.ps)return;const t=this.canvas.view,i=this.Di>this.fs,s=i?this.cpw/this.fs:t.width,h=i?this.cph/this.fs:t.height,e=s/2,r=h/2,o=t.ri/2,n=t.oi/2,a=o>e?Math.max(t.lX0+e,Math.min(t.ii,t.lX1-e)):t.hi,c=n>r?Math.max(t.lY0+r,Math.min(t.si,t.lY1-r)):t.ei;this.canvas.yt.zi(a,c,s,h,150,it,{correct:1})}rs(t,i,s){if(!this.#ft){this.#mt=1;const h=this.#ut;return h.x=t,h.y=i,h.scale=s,this.ks(),1}return 0}ls(t){return Math.max(this.G,t)}us(t){return{w:1/t*this.cpw,h:1/t*this.cph}}ds(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))}q=0;K=0;Is(){const t=this.canvas,i=t.view,s=t.V,h=s.Cs;h.Ai(s.Ai,t.el.Mi,1e-4,100),h.Gi(-(i.ii-.5)*t.aspect,i.si-.5,-i.height/2)}},Ft=class{Es;As;#d;Ds;Os;$s;#Mt;Fs;Vs;constructor(t,i,s,h,e,r,o){this.#d=t,this.Ds=i,this.Os=s,this.$s=h,this.#Mt=e,this.Fs=r,this.Vs=o,this.Es=e/t.width,this.As=e/t.height}Bs(t,i){const s=t-this.Os,h=s%this.Fs,e=Math.floor(s/this.Fs),r=this.#d;return i.x0=r.x0+h*this.#Mt/r.width*r.Ns,i.y0=r.y0+e*this.#Mt/r.height*r.Rs,i.x1=r.x0+Math.min((h+1)*this.#Mt/r.width,1)*r.Ns,i.y1=r.y0+Math.min((e+1)*this.#Mt/r.height,1)*r.Rs,i.image=r,i.layer=this.Ds,i.x=h,i.y=e,i}},Vt=class t{static#_t=[];static#vt=new Uint8Array(0);static#yt=0;#bt=new Dt;#kt=new At;#xt=0;Ys=[];#Tt=0;Xs=0;x0=0;y0=0;x1=1;y1=1;Ns=1;Rs=1;#St=.5;#zt=.5;#Lt=1;#Pt=1;#It=0;#Ct=0;#Et=-1;#At=0;#Dt=0;Ws=0;Gs;#Ot=0;#$t=0;Hs=0;#Ft=0;Zs=0;static#Vt=new Float64Array(200);static#Bt=new Float64Array(200);static#Nt=new Float64Array(200);static#Rt=0;static#Yt=0;#u;Ds;lt;width;height;#Mt;#Xt;Dt;#Wt;opacity;Us;dt;ft;gt;#Gt;#Ht;constructor(t,i,s,h,e,r,o,n,a,c,l,u,d,f,m,p,g){this.#u=t,this.Ds=i,this.lt=s,this.width=h,this.height=e,this.#Mt=r,this.#Xt=o,this.Dt=a,this.#Wt=c,this.opacity=l,this.Us=u,this.dt=d,this.ft=f,this.gt=m,this.#Gt=p,this.#Ht=g;const w=h>e?h:e;this.#Ft=this.#u.is360&&this.lt>0,this.#Tt=n&&!o?2:1;for(let _=r;_<w*t.main.qs;_*=2)this.#Tt++;(t.main.Ks||this.#Ht>0)&&(this.#Tt-=3-t.main.Js),this.#Ht>0&&this.#Tt--,this.#Tt=Math.max(1,this.#Tt);let M=c;for(let _=0;_<this.#Tt;_++){const t=j(_)*this.#Mt,i=Math.ceil(h/t),s=Math.ceil(e/t);this.Ys.push(new Ft(this,this.Ys.length,M,this.Gs=M+=i*s,t,i,s))}}ut(t,i,s,h){this.x0=t,this.y0=i,this.x1=s,this.y1=h,this.#Lt=s+(t>s?1:0)-t,this.#Pt=h-i,this.#St=t+this.#Lt/2,this.#zt=i+this.#Pt/2,this.#u.is360&&(this.#St=H(this.#St)),this.Ns=this.#Lt,this.Rs=this.#Pt,this.#Ot=this.width/this.height,this.#xt=this.#Ot>this.#u.aspect?this.#u.width/this.width*this.Ns:this.#u.height/this.height*this.Rs,this.#u.is360&&this.#Zt()}#Zt(){let t=2*(this.#St-.5)*Math.PI;const i=(this.#zt-.5)*Math.PI;t+=this.#u.V.Qs,this.#It=Math.cos(i)*Math.sin(t),this.#Ct=Math.sin(i),this.#Et=Math.cos(i)*Math.cos(t),this.#At=2*this.#Lt*Math.PI,this.#Dt=this.#Pt*Math.PI}#jt(){if(!this.#u.is360)return 0;const t=this.#u.V,i=this.#It*t.th+this.#Ct*t.ih+this.#Et*t.sh;return Math.acos(Math.max(-1,Math.min(1,i)))<t.hh+Math.max(this.#At,this.#Dt)/2}#Ut(){if(this.#Ft)return!this.#jt();{const t=this.#u.view;return!(this.x1>t.x0&&this.x0<t.x1&&this.y1>t.y0&&this.y0<t.y1)}}eh(){return this.#Ht>0&&this.#Ht>this.#u.camera.Di||(this.Dt||this.lt>0)&&0===this.opacity&&0===this.Us?0:this.Ds===this.#u.Ei||this.#u.is360&&0===this.lt?1:!this.#Ut()}rh(t){const i=this.Us;if(this.opacity===i)return 0;const s=1/(this.#u.main.oh*this.#u.main.nh);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}ah(i){if(0>=this.opacity)return 0;this.#$t=0;const s=t.#_t;let h=t.#vt;if(this.#Ft){if(i=this.#qt(i),!(this.Hs=i>0))return 0}else i=Math.max(i,this.#u.camera.G)*this.#xt;const e=this.Gs-this.#Wt;h.length<e?h=t.#vt=new Uint8Array(e):h.fill(0,0,e),t.#yt=this.#Wt;const r=this.Gs-1,o=r-this.#Wt;0===this.Ws?(s.push(r),h[o]=1,this.#u.main.uh(r,1,1)):this.#Ft&&(s.push(r),h[o]=1,this.#$t++);const n=this.#Kt(i),a=this.#u;if(0===this.lt&&a.is360)this.#Jt(this.Ys[n]);else if(this.#Ft)this.#Qt(n),this.#$t++;else if(a.visible.x0<a.visible.x1&&a.visible.y0<a.visible.y1){const t=a.view;this.#ti(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((t,i)=>i-t);for(const t of s)a.dh.push(t);return s.length=0,this.#$t}#Kt(t){let i=this.#Xt||this.#u.fh?this.#Tt:1+this.#u.main.mh;if(!this.#Xt&&!this.#u.fh)for(;i<this.#Tt&&1>j(i)*t;i++);return this.Xs=i-1}#ti(t,i,s,h,e){if(this.#Ut())return;const r=this.Ys[t],o=r.Es,n=r.As,a=this.Ns,c=this.Rs,l=Math.min(r.Fs-1,Math.floor(Math.max(0,h-this.x0)/a/o)),u=Math.min(r.Vs-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.#ii(r,t,f)}#Qt(t){if(this.#Ut())return;const i=this.Ys[t],s=this.#u,h=s.view.si,e=s.view.width+.1,r=s.view.height+.1,o=this.#St,n=this.#zt,a=this.#Lt,c=this.#Pt,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?H(s.view.ii+s.V.ph):s.view.ii;let f,m;if(s.is360){const t=H(d-e/2),i=H(d+e/2),s=H(o-a/2),h=H(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,w=i.Es,M=i.As,_=Math.floor(Math.max(0,Math.min(1,(f-p)/a))/w),v=Math.min(i.Fs-1,Math.floor(Math.max(0,Math.min(1,(m-p)/a))/w)),y=Math.floor(Math.max(0,Math.min(1,(l-g)/c))/M),b=Math.min(i.Vs-1,Math.floor(Math.max(0,Math.min(1,(u-g)/c))/M));for(let k=y;b>=k;k++)for(let t=_;v>=t;t++)this.#ii(i,t,k)}#ii(i,s,h){const e=t.#vt,r=t.#yt,o=Math.min(this.Gs-1,i.Os+h*i.Fs+s),n=o-r;if(n<e.length){if(e[n])return;e[n]=1}t.#_t.push(o),1>this.#u.main.uh(o,o===this.Gs-1,this.#u.Bt)?this.#Xt||this.#u.fh||i.Ds>=this.#Tt-1||this.#ii(this.Ys[i.Ds+1],s>>1,h>>1):this.#$t++}gh(t){const i=this.#u.main.wh,s=2*Math.PI*this.#u.V.Mh,h=this.#bt,e=this.#kt,r=this.x0+this.Ns/2,o=this.y0+this.Rs/2,n=this.#u.V._h(r-this.#u.V.ph,o,1,5);e.Ni(),e.Gi(n.x,n.y,n.z),e.Yi(Math.atan2(n.x,n.z)+Math.PI+this.ft),e.Ri(-Math.sin((o-.5)*Math.PI)-this.dt),e.Xi(-this.gt),e.Wi(.5*this.#Gt);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.Gi(t,i,0),h.qi(e),e.Gi(-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]}#qt(t){if(this.#Ft)return t*Math.max(2*this.#Lt,this.#Pt)*(this.#u.width/this.width);const i=this.#Lt,s=this.#Pt,h=this.#St,e=this.#zt,r=this.#u.el,o=this.#u.V,n=r.width,a=s/2.5;let c=0;const l=o.N(h-i/2,e-a);if(l.fi(r)&&c++,o.N(h+i/2,e-a).fi(r)&&c++,o.N(h-i/2,e+a).fi(r)&&c++,o.N(h+i/2,e+a).fi(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)}#Jt(i){const s=this.#u,h=s.el.width,e=s.el.height,r=s.V.hh>Math.PI/2?20:12,o=s.V.ph;t.#Rt=0;const n=(i,h)=>{const e=s.V.F(i,h),r=t.#Rt++;t.#Vt[r]=e.x,t.#Bt[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.#Rt;let c=1/0,l=-1/0;for(let b=0;a>b;b++){const i=t.#Bt[b];c>i&&(c=i),i>l&&(l=i)}c=Math.max(0,c-.001),l=Math.min(1,l+.05);const u=t.#Vt,d=t.#Nt;for(let t=0;a>t;t++)u[t]=H(u[t]-o);t.#Yt=0;for(let b=0;a>b;b++){const i=u[b];let s=0;for(let h=0;h<t.#Yt;h++)if(1e-8>Math.abs(d[h]-i)){s=1;break}s||(d[t.#Yt++]=i)}const f=t.#Yt;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 w=i.As,M=i.Es;let _=Math.max(0,Math.floor((c-.001)/w)),v=Math.min(i.Vs-1,Math.max(0,Math.floor((l+w-1e-10)/w)));1e-5>c&&(_=0),l>.99999&&(v=i.Vs-1);const y=p>1;for(let t=_;v>=t;t++)if(g)for(let s=0;s<i.Fs;s++)this.#ii(i,s,t);else{const s=Math.max(0,Math.floor((m-.001)/M)-1);if(y){for(let e=s;e<i.Fs;e++)this.#ii(i,e,t);const h=Math.min(i.Fs-1,Math.ceil(H(p+.001)/M));for(let s=0;h>=s;s++)this.#ii(i,s,t)}else{const h=Math.min(i.Fs-1,Math.ceil((p+.001)/M));for(let e=s;h>=e;e++)this.#ii(i,e,t)}}}},Bt=class extends Ot{Cs=new At;#si=new At;#hi=new At;#ei=1;#ri=new At;#oi=new Dt;Mh=10;Di=0;#ni=1;#ai=0;ph=0;#ci=0;#li=0;Qs=0;q=0;K=0;yh=Math.PI/2;Ai=Math.PI/2;Oi=Math.PI/2;$i=Math.PI/2;th=0;ih=0;sh=-1;hh=0;ws=new Dt;#lt=new Pt;constructor(t){super(t),this.Qs=-this.canvas.bh,this.ph=this.Qs/(2*Math.PI),this.#ni=this.canvas.height/(this.canvas.width/2),this.#ai=(1-this.#ni)/4,this.q=this.Qs,this.kh()}ht(t,i){this.#ci=t,this.#li=i,this.Oi=Math.PI/2,i>0&&(this.Oi=Math.min(this.Oi,this.Oi*i*1.5)),this.Bi(this.Ai,1)}kh(t=0){const i=this.canvas.el;t||this.Cs.Ai(this.Ai,i.Mi,1e-4,20),this.#ei=1;const s=this.Cs;this.K=Math.min(Math.PI/2,Math.max(-Math.PI/2,this.K)),s.Ri(this.K),s.Yi(this.q),s.Gi(this.#oi.x,this.#oi.y,this.#oi.z);const h=this.#ri;h.Hi(this.Ai),h.Gi(0,0,i.height/i.ratio/2),h.Ri(-this.K),h.Yi(this.q),this.#lt.direction=this.q/Math.PI*180%360}bi(t,i,s=0){const h=this.canvas,e=h.el;this.q+=t*e.ratio/e.width*this.Ai*e.Mi,this.K+=i*e.ratio/e.height*this.Ai*this.#ni,this.q=Z(this.q),(h.it||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),0===s&&h.Qi.addStep(2*t,2*i),this.kh(),this.xh(),this.#fi()}#ui(){const t=this.Ai/2,i=Math.PI*this.#ni/2*(this.#li>0?this.#li:1);this.K=this.K>0?Math.min(i,this.K+t)-t:Math.max(-i,this.K-t)+t}#di(){const t=this.Ai/2*this.canvas.el.Mi,i=Math.PI*(this.#ci>0?this.#ci:1);let s=this.q;for(;s>=Math.PI;)s-=2*Math.PI;for(;s<-Math.PI;)s+=2*Math.PI;this.q=Z(Math.min(Math.max(i,t)-t,Math.max(Math.min(-i,-t)+t,s)))}#mi(t,i,s,h=0,e=0,r=0){const o=this.canvas;if(t/=2,0!==i)i=o.yt.zoom(t,i,h,s);else{t/=this.Di*o.Pi/20;const i=e>0&&r>0;let h=0,n=0;if(i){const t=this.F(e,r);h=t.x,n=t.y}if(this.Bi(this.Ai+t,s),i){const t=this.F(e,r);let i=h-t.x;i>.5&&(i-=1),-.5>i&&(i+=1);const s=n-t.y;this.q+=i*Math.PI*2,this.K+=s*Math.PI*this.#ni,this.q=Z(this.q),(o.it||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),this.kh(),this.#pi(),this.xh(),this.#fi()}}return i}Bi(t,i){const s=this.canvas;this.Ai=t,i&&!s.is360||(this.Ai=Math.min(this.Oi,Math.max(this.$i,this.Ai))),(s.it||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),this.Cs.Ai(this.Ai,s.el.Mi,1e-4,20),this.#pi(),this.kh(1),this.xh(),this.#fi()}#pi(){const t=this.canvas.el,i=t.width/2,s=t.height/2,h=this.F(i,s).x,e=this.F(i+1,s+1).x;this.Di=1/(e+(h>e?1:0)-h)/this.canvas.width}J(t,i,s=0){this.q=Z(t-this.Qs),this.K=i,0!==s?this.Bi(s,0):this.kh(),this.xh(),this.#fi()}$(t,i,s,h,e){if(null==t||null==i||null==h)return 0;const r=e?.noLimit??0,o=e?.correctNorth?t+this.ph:t;return this.q=(o-.5)*Math.PI*2,this.K=(i-.5)*Math.PI*this.#ni,this.Bi(Math.min(this.Oi,h*Math.PI*this.#ni),r),this.xh(),this.#fi(),1}#fi(){const t=this.canvas,i=H(this.q/(2*Math.PI)+.5),s=this.K/this.#ni/Math.PI+.5,h=this.Ai/Math.PI/this.#ni,e=h*(0===t.el.width?1:.5*Math.sqrt(t.el.Mi))/(t.aspect/2);t.view.set(i,s,e,h),t.view.ni=1}xh(){const t=this.q,i=this.K;this.th=Math.cos(i)*Math.sin(t),this.ih=Math.sin(i),this.sh=Math.cos(i)*Math.cos(t);const s=2*Math.atan(1/this.Ai),h=this.canvas.el.width/this.canvas.el.height,e=s/2,r=Math.atan(Math.tan(e)*h);this.hh=2*r}Th(t,i,s,h=0){const e=this.#oi,r=s*Math.PI*2+h;e.x=-t*Math.sin(r),e.y=i,e.z=t*Math.cos(r),this.canvas.view.ni=1,this.kh()}Sh(){const t=this.canvas,i=t.el;this.$i=Math.min(.5,i.height/t.height)/t.maxScale*this.#ni*Math.PI/i.ratio*i.scale,this.Bi(this.Ai,1)}#gi(){this.#ei&&(this.#hi.ci(this.Cs),this.#hi.Zi(),this.#ei=0)}F(t,i){const s=this.canvas.el,h=this.ws,e=this.#lt;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.#gi(),h.qi(this.#hi),h.Ki(),e.x=Math.atan2(h.x,-h.z)/Math.PI/2+.5,e.y=.5-Math.asin(h.y)/Math.PI/this.#ni,e.scale=this.Di,e.w=this.#oi.x+this.#oi.z,e.direction=this.q+this.Qs,e.mi(),e}N(t,i){const s=this.canvas.el,h=this.ws,e=this.#lt;return this._h(t+this.ph,i),e.x=(h.x+1)/2*s.width/s.ratio,e.y=(1-h.y)/2*s.height/s.ratio,e.scale=this.Di,e.w=-h.w,e.mi(),e}_h(t,i,s=0,h=this.Mh){const e=this.ws;t*=2*-Math.PI,i-=.5,i*=-Math.PI,i*=this.#ni;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.qi(this.Cs),e}nt(t,i,s,h,e,r,o,n=0,a=1,c=1,l=0){isNaN(h)&&(h=this.Mh);const u=this.#si,d=this.ws,f=this.Mh,m=this.#oi;u.Ni(),h*=this.Mh*(100/(2*Math.PI)),t*=2*-Math.PI,i-=.5,i*=Math.PI*this.#ni;const p=Math.cos(i);return d.x=p*Math.sin(t),d.y=Math.sin(i),d.z=p*Math.cos(t),u.Gi(m.x*h/f,-m.y*h/f+n*f,m.z*h/f),u.Gi(d.x*h,d.y*h,d.z*h),u.Yi(Math.atan2(d.x,d.z)+Math.PI+r),u.Ri(d.y+e),u.Xi(o),u.Di(a,c),u.Wi(s/Math.PI/f),u.ji(this.#ri),u}zh(t,i,s,h){i*=this.#ni,i/=2,i-=.25,i+=this.#ai,h*=this.#ni,h/=2;const e=this.canvas.main.Lh,r=this.Mh,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=-H(t+o*s+this.ph)*a,u=-(i+n*c)*a,d=-H(t+o*(s+1)+this.ph)*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,w=Math.sin(d)*r||0,M=Math.cos(u),_=Math.cos(f),v=Math.sin(u)*r,y=Math.sin(f)*r;e[h+0]=M*p,e[h+1]=v,e[h+2]=M*m,e[h+3]=e[h+9]=_*p,e[h+4]=e[h+10]=y,e[h+5]=e[h+11]=_*m,e[h+6]=e[h+15]=M*w,e[h+7]=e[h+16]=v,e[h+8]=e[h+17]=M*g,e[h+12]=_*w,e[h+13]=y,e[h+14]=_*g}}G=0;fs=0;W=0;Z=1;st(){}zs(){return 0}yi(){return 0}U(t=0){return this.Ai>=this.Oi}j(){return this.Ai<=this.$i}xt(t,i,s=0,h=0,e=0,r=0){this.bi(t,i,s)}kt(t,i,s,h=0,e){return this.#mi(t,h,e,0,i,s)}ts(t,i,s){this.#mi(2*t,0,0),this.bi(i,s)}es(t){const i=this.canvas.view.ii;return i+K(i,t)}us(t){const i=this.canvas.main.el;return{w:1/t*i.width,h:1/t*i.height}}},Nt=class t{view;focus;yt;Qi;Y;V;camera;#wi=new zt;el=new It;images=[];Pi=0;#Mi=[];#_i;#vi;#yi;visible;#bi;#ki=1;#xi=0;#Ti=0;#Si=0;get zIndex(){return this.#Ti}set zIndex(t){this.#Ti!==t&&(this.#Ti=t,this.parent&&(this.parent.#Si=1))}dh=[];aspect;#zi=0;#Li=0;Bt=0;#Pi=0;#Ii=0;Ei=-1;Ms=0;ys=0;_s=0;vs=0;fh=0;layer=0;Ph;#Mt;is360;Ft;#Ci;ps;Ss;maxScale;Ts;Ii;bh;#Ei;#Ai;isOmni;Ps;Ci;main;width;height;Ih;it;gs;constructor(t,i,s,h,e,r,o,n,a,c,l,u,d,f,m,p,g,w,M,_,v,y,b=0){this.main=t,this.width=i,this.height=s,this.Ih=h,this.it=e,this.gs=b,this.#Mt=r,this.is360=o,this.Ft=n,this.#Ci=a,this.ps=c,this.Ss=e?1:l,this.maxScale=u,this.Ts=d,this.Ii=f,this.bh=m,this.#Ei=p,this.#Ai=g,this.isOmni=w,this.Ps=M,this.Ci=_,this.#zi=t.Ch.length,b||t.Ch.push(this),this.aspect=i/s,this.Pi=Math.sqrt(i*i+s*s),this.view=new Lt(this),this.focus=new Lt(this),this.yt=new Et(this),this.Qi=new Ct(this),this.Y=new $t(this),this.V=new Bt(this),this.camera=this.is360?this.V:this.Y,this.#_i=new Lt(this),this.#vi=new Lt(this),this.#yi=new Lt(this),this.visible=new Lt(this),this.#bi=new Lt(this),o&&this.view.set(.5,.5,1,.5),b||(this.el.ci(t.el),this.$(this.view.ii,this.view.si,this.view.width,this.view.height,0,0),this.Sh()),n?(this.main.Eh++,this.#Pi=1,this.Bt=1,this.#Ii=1,y>0&&this.jt(y)):this.Ah(0,0,1,1,i,s,r,v,a,0,h)}parent;#Di(t){this.parent=t,this.#zi+=t.#Mi.length}Ah(t,i,s,h,e,r,o,n,a,c,l,u=0,d=0,f=0,m=1,p=0){const g=new Vt(this,this.main.Eh++,this.images.length,e,r,o,n,a,c,this.main.Dh,l,l,u,d,f,m,p);return g.ut(t,i,s,h),this.images.push(g),this.main.Dh=g.Gs,1===this.images.length&&this.Vi(0),g}Oh(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.#Mt,0,0,this.main.Ks||this.#Ci,0,c,1,1,this.Ii,0,0,0,0,this.Ps,1,0,0,1);return l.#Di(this),l.ut(i,s,h,e,1,1),this.#Mi.push(l),l}#Oi(){const t=1/(0!==this.main.$h||0!==this.main.Fh?this.main.Vh:1!==this.main.Ch.length||this.gs?this.main.Bh:.25)/this.main.oh,i=this.Ih>0&&this.Ih>=this.Bt;if(this.Bt=i?Math.min(1,this.Bt+t):Math.max(0,this.Bt-t),this.#Pi=it.get(this.Bt),0!==this.main.$h||0!==this.main.Fh){const t=0===this.Bt?0:it.get(1-this.Bt)*(i?1:-1);this.V.Th(this.main.$h*t*8,this.main.Fh*t*8,this.main.Nh)}}#$i(t){this.Ph?.visible?.set(t),this.#Li=t}Rh(){this.Ih=0,this.zIndex=0}Yh(){if(this.#Ii=1,!this.gs&&1===this.#vi.width&&1===this.#vi.height)for(let t=0;t<this.main.Ch.length;t++)this.main.Ch[t]!==this&&this.main.Ch[t].Rh();this.Ih=1}Xh(){return!this.#xi&&1>this.#ki}#Fi(){return 0===this.Ih&&0===this.Bt||0===this.#vi.width||0===this.#vi.height}Wh(){if(!this.Xh()&&this.#Fi())return void(this.#Li&&this.#$i(0));let t=1>this.yt.Fi()||1>this.Qi.step()||!this.#Ii;if(this.dh.length=0,this.#Vi(0)&&(t=1),!(this.is360||this.Xh()||this.visible.width>0&&this.visible.height>0))return void(this.#Li&&this.#$i(0));this.#Li||1>this.Bt||this.#$i(1),this.V.xh(),this.#Ii&&this.Bt!==this.Ih&&(this.#Oi(),t=1);const i=(this.is360?this.V.Di:this.Y.Di)*this.el.scale,s=this.main;for(let h=0;h<this.images.length;h++){const e=this.images[h];e.eh()?(h>0&&!e.Hs&&s.Gh(e,e.Hs=1),e.Dt&&e.Zs&&(t=1),e.rh(this.#Ei||1>this.Bt)&&(t=1),e.opacity>0&&(s.Hh+=e.ah(i))):e.Hs&&s.Gh(e,e.Hs=0)}s.Zh+=this.dh.length,s.jh=0===s.Zh?1:s.Hh/s.Zh;for(let h=0;h<this.#Mi.length;h++)this.#Mi[h].Wh();t&&(s.Uh=1)}qh(){if(0===this.Ih&&0===this.Bt)return;const t=this.main,i=t.micrio.Zt,s=this.el,h=this.view,e=this.yt.Si();if(i.gl.viewport(this.el.left,t.el.height-s.height-s.top,s.width,s.height),i.gl.uniformMatrix4fv(i.Kh,0,this.V.Cs.arr),this.#Ai)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.#Bi(t.Gs-1),i.Jh(void 0,t.Us))}const r=this.#wi;for(let o=0;o<this.dh.length;o++){const i=this.dh[o];this.#Bi(i);const s=r.layer===r.image.Xs-1||!t.Qh&&r.layer===r.image.Xs,h=i===r.image.Gs-1,n=t.te(i);(s||1===n||h)&&t.Jh(r.image.Ds,i,r.layer,r.x,r.y,n*this.#Pi*r.image.opacity,e,r.layer===r.image.Xs-1)&&h&&(r.image.Ws=t.now,this.#Ii||this.Yh())}this.#Si&&(this.#Mi.sort((t,i)=>t.zIndex>i.zIndex?1:t.zIndex<i.zIndex?-1:0),this.#Si=0);for(let o=0;o<this.#Mi.length;o++)this.#Mi[o].qh();h.ni&&this.Ph?.camera?._t(),h.ni=0}#Vi(t){const i=this.main.el,s=this.gs,h=s?this.parent.cs():1/i.ratio,e=s?this.parent.width:i.width,r=s?this.parent.height:i.height,o=s?this.parent.view:this.#bi,n=this.view,a=this.#vi,c=this.#_i,l=this.#yi,u=this.Xh();if(u){const t=1/this.main.ie/this.main.oh;this.#ki=Math.min(1,this.#ki+t);const i=this.main.se.get(this.#ki),s=c.ii+(l.ii-c.ii)*i,h=c.si+(l.si-c.si)*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.#ki&&(1===this.zIndex&&(this.zIndex=0),c.ci(l)),this.view.ni=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,w=(m+p)/2,M=f-d,_=p-m;this.visible.set(g,w,M,_);const v=s?1:i.ratio;return this.Ih>=this.Bt&&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.wi)&&(t||this.he(),this.view.ni=1,this.Sh(),this.is360||(this.Y.bs(),this.Y.Is())),u}ut(t,i,s,h,e,r){this.#xi=0,e?(this.#_i.ut(t,i,s,h),this.#vi.ut(t,i,s,h)):(this.#_i.ci(this.#vi),this.#ki=0,0===this.zIndex&&(this.zIndex=1),this.yt.li=0),this.#yi.ut(t,i,s,h),this.#Vi(r),this.he()}#Bi(t){const i=this.#wi;if(this.#Ni(t),this.is360)0===i.image.lt?this.V.zh(i.x0,i.y0,i.x1-i.x0,i.y1-i.y0):i.image.gh(i);else{const t=this.main.wh,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}}he(){const t=this.main.el;this.Ph?.Nt?.set([this.el.left/t.ratio,this.el.top/t.ratio,this.el.width/t.ratio,this.el.height/t.ratio])}#Ni(t){let i=0;for(;t>=this.images[i].Gs;)i++;const s=this.images[i];let h=0;for(;t>=s.Ys[h].$s;)h++;const e=s.Ys[h];return e.Bs(t,this.#wi),[i,e.Ds]}ee(t){if(this.is360)return 0;const i=this.#wi,s=this.view,[h,e]=this.#Ni(t);return e>this.images[h].Xs?!!(i.x1>s.x0&&i.x0<s.x1&&i.y1>s.y0&&i.y0<s.y1):0}Sh(){if(this.#Mi.length){const t=this.main.el;this.width=t.width,this.height=t.height,this.Pi=Math.sqrt(t.width*t.width+t.height*t.height)}this.gs||(this.is360?this.V.Sh():(this.Y.bs(),this.Y.Is()))}re(){if(this.Qi.stop(),this.yt.stop(),this.images.length>0){const t=this.images[0];t.Ws=0,t.opacity=0}}oe(){this.#$i(0),this.main.oe(this)}jt(t){this.layer=t,this.Vi(this.Ei),this.view.ni=1}Vi(t,i=0){const s=this.layer*(this.images.length/this.Ci);for(let h=0;h<this.images.length;h++){const e=this.images[h],r=h-s-t;0!==r?e.Us=0>r||r>i?0:1:(e.Us=1,this.Ei=t,this.view.ni=1)}this.Y.st()}$(t,i,s,h,e,r,o=0,n=0){const a=this.main.el;a.gi>0&&(h+=h/(1-a.gi/a.height),this.yt.li=0,a.gi=0),a.pi>0&&(s+=s*(a.pi/a.width),this.yt.li=0,a.pi=0),e&&(this.yt.li=0),this.view.set(t,i,s,h),n&&!e&&this.view.li(0,0,this.ps),r||this.yt.ki.ci(this.view),this.width>0&&(this.is360?(this.V.$(t,i,s,h,{noLimit:e,correctNorth:o}),this.view.set(t,i,s,h)):this.Y.ks()&&this.Y.Is())}cs(){return this.is360?this.V.Di:this.Y.Di}j(){const t=this.V;return this.is360?t.Ai<=t.$i:this.Y.j()}U(t=0){const i=this.V;return this.is360?i.Ai>=i.Oi:this.Y.U(t)}st(t){this.Y.st(t)}H(t){const i=this.Y;i.G=t,i.st(),i.ks(),this.V.kh()}J(t,i,s=0){isNaN(i)&&(i=this.V.K),this.V.J(t,i,s?this.V.yh:0)}nt(t,i,s,h,e,r,o,n,a=1,c=1,l=0){const u=2e4/this.width;return this.V.nt(t,i,s*u,h,e,r,o,n,a,c,l).arr}rt(){this.#xi=1,this.yt.pause()}ot(){this.#xi=0,this.yt.resume()}et(){this.yt.stop();for(let t=0;t<this.#Mi.length;t++)this.#Mi[t].et()}T(){const t=this.Ph?.camera;if(t){for(t.T&&t.T();t.L.length;)t.L.shift()?.();t.S=t.T=void 0}}S(){const t=this.Ph?.camera;t&&(t.S&&t.S(),t.L.length=0,t.S=t.T=void 0)}},Rt=class t{ready=0;el=new It;wh=new Float32Array(18);Lh=new Float32Array(4608);Ch=[];Dh=0;Eh=0;now=0;Uh=0;jh=0;Zh=0;Hh=0;Bh=.25;ie=.5;se=it;Vh=.5;nh=.5;_i=1;ne=0;Ks=0;Js=0;qs=4;mh=0;Qh=0;xs=0;Ls=0;Nh=0;$h=0;Fh=0;oh=1/60;#Ri=[];#Yi=0;#Xi=[];#Wi=new Set;#Gi=new Set;#Hi=new Set;#Zi=new Map;#ji=new Map;#Ui;#qi=[];#Ki=new Map;#Ji=new Map;ae=0;static ce=t.#Qi(1,1);static le;#ts=0;#is=-1;#ss=0;#hs=null;#es=new Map;Xt(t){return this.#es.get(t)?.canvas}#rs(t){this.#es.set(t.micrioImage,t)}micrio;constructor(t){this.micrio=t,this.#Ui=pt.iOS?5:X(this.micrio.canvas.isMobile)?30:90,this.render=this.render.bind(this),this.#qi.push(t.current.subscribe(this.#os.bind(this)))}static#Qi(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}ue(){this.ready||(t.le=t.#Qi(16,16),this.ready=1,this.#qi.push(this.micrio.barebone.subscribe(t=>{this.Qh=t,this.#Yi=t})))}Jh=(t,i,s,h,e,r,o,n)=>{this.#Wi.add(i);const a=this.#ns(i);a.de=void 0;const c=Tt(),l=this.#Ri[t],u="camera"in l,d=u&&l.Dt,f=u&&l.D,m=u?l:l.image,p="fe"in l?l.fe:void 0,g=u&&l.$settings.noSmoothing;if(0===a.me&&wt>c){if(this.#Yi?c>2&&o:n&&o&&c>0)return 0;if(d&&!f)a.me=2,a.pe=this.micrio.Zt.ge();else{a.me=1;const t=m.Gt(s,h,e,p);if(!t)return a.me=0,0;this.ge(i,t,o,{noSmoothing:g})}}else if(a.me>=2){if(this.#ss||this.#as(),a.pe){if(d){if(!m.Ct||!m.Ct.dataset.playing)return 0;this.micrio.Zt.we(a.pe,m.Ct)}this.micrio.Zt.Jh(a.pe,r,f)}return 2===a.me&&(a.me=3,a.Me=this.now),1}return 0};te=t=>this.#Zi.get(t)?.Bt||0;uh=(t,i=0,s=1)=>{const h=this.#Zi.get(t);return h?(1>h.Bt&&(h.Bt=i?1:h.Me&&h.Me>0?Math.min(1,(this.now-h.Me)/250)*s:0),h.Bt):0};Gh=(t,i)=>{const s=this.#Ki.get(t);s&&"visible"in s&&s.visible.set(i)};_e(){for(this.#cs();this.#qi.length;)this.#qi.pop()?.();this.#ji.forEach(t=>St(t)),this.#ji.clear();for(const[t,i]of this.#Zi.entries())i.ve&&clearTimeout(i.ve),this.#ls(t);this.#Zi.clear(),this.#us()}#ds(t){if(this.ne)return;const i=t.$info;if(!i)return;if(t.error)return void this.micrio.ye.set(0);if(!(t.Ft||i.width&&i.height))throw new Error("Invalid Micrio image size");const s=t.$settings;this.#ts=!!this.micrio.gallery||t.Ot,s.gallery?.archive&&(this.Ks=1,this.Js=s.gallery.archiveLayerOffset??0),i.version&&3.1>=parseFloat(i.version)&&(this.qs=8),i.is360&&(s.limitToCoverScale=0);const h=!!s.limitToCoverScale,e=h||"cover"==s.initType;t.Ft&&this.micrio.ye.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.i?.video,c=i.is360&&a&&(a.src||"video"in a&&a.video),l=!!this.#ts&&"switch"==s.gallery?.type,u=s.omni?.layers?.length??1;s.omni&&(s.omni.layerStartIndex=Math.min(u-1,s.omni?.layerStartIndex??0));const d=new Nt(this,i.width,i.height,t.Bt,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.ct=1,d.Ph=t,this.#rs({canvas:d,micrioImage:t,camera:t.camera}),this.#Ri.push(t),this.#fs(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.Bh=s.crossfadeDuration),s?.embedFadeDuration&&(this.nh=s.embedFadeDuration),void 0!==s?.dragElasticity&&(this._i=s.dragElasticity),s?.skipBaseLevels&&(this.mh=s.skipBaseLevels),s?.omni&&(d._s=-(s.omni.distance??0),d.Ms=s.omni.fieldOfView??0,d.ys=s.omni.verticalAngle??0,d.vs=s.omni.offsetX??0,t.state.view.set([0,0,1,1])),this.micrio.hasAttribute("data-limited")&&t.canvas&&(t.canvas.fh=1),d.he(),this.Dh>0&&this.#ms(this.Dh-1);const f=X(t.state.view)||s.view;!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.$(f[0]+f[2]/2,f[1]+f[3]/2,f[2],f[3],0,0,0,0),t.video.subscribe(t=>t&&t.addEventListener("play",this.render)),t.Ft&&t.visible.set(1),this.#os(t)}#fs(t){const i=this.#es.get(t).canvas;t.camera.O(i)}#os(t){if(t&&(!t.ct||t!==this.#hs?.micrioImage)&&!this.ne)if(t.ct){if(t!==this.#hs?.micrioImage){const i=this.#es.get(t);if(!i)return;if(i.canvas.gs)return;const s=t.D&&this.#hs?this.#hs.canvas.V.K:0;if(this.#hs=i,t.D&&!this.ae){const h=(this.Nh+.5)%1*Math.PI*2;i.canvas.J(h-t.camera.rotationY,s,1)}0===i.canvas.Ih&&i.canvas.Yh(),t.$settings.omni?.layerStartIndex&&t.state.layer.set(t.$settings.omni.layerStartIndex),this.ae=0,this.ready=1,this.render()}}else{if(!X(this.micrio.current)||!t.$info.isIIIF&&t.$info.id!=X(this.micrio.current).id)return;this.#ds(t),t.Rt.length&&t.Rt.forEach(i=>this.Kt(i,t))}}be(t){t.ct||this.#ds(t)}ke(t){if(!t.ct)throw new Error("Canvas is not placed yet");const i=this.#es.get(t);i&&(i.canvas.oe(),this.#es.delete(t),this.render())}render(){this.ne||0>this.#is&&(this.#is=this.micrio.Zt.xe.requestAnimationFrame(this.#ps))}#ps=(t=performance.now())=>{if(this.micrio.isConnected&&this.micrio.$current&&!this.ne){this.#is=-1,this.#ss=0,(this.Wh(t)||this.micrio.Te||this.micrio.events.isNavigating||0==this.micrio.$current?.Ct?.paused)&&this.render(),this.#ts&&this.#as(),this.#Wi.clear();for(let t=0;t<this.Ch.length;t++)this.Ch[t].qh();this.micrio.events.zt("draw"),this.#gs(),this.micrio.Zt.Se()}};Wh(t){this.oh=1e3/Math.min(33,t-this.now),this.now=t,this.Hh=0,this.Zh=0,this.Uh=0;for(let i=0;i<this.Ch.length;i++)this.Ch[i].Wh();return this.Uh||1>this.jh}#cs(){0>this.#is||(this.micrio.Zt.xe.cancelAnimationFrame(this.#is),this.#is=-1)}#ns(t){let i=this.#Zi.get(t);return i||(i={me:0,Bt:0},this.#Zi.set(t,i)),i}#ms(t){this.#ns(t).Bt=1,this.#Xi.push(t)}#as(){this.#ss||(this.micrio.Zt.ze(),this.#ss=1)}ge(t,i,s,h={}){if(this.#Zi.get(t)?.pe||this.#ji.has(t)||!h.force&&Tt()>=wt)return;const e=ft.db.has(i);e||this.micrio.ye.set(1),this.#ji.set(t,i),(e?ft.Qt(i):(t=>new Promise((i,s)=>{yt.push([t,i,s]),kt()}))(i)).then(i=>this.#ws(t,i,s,h.noSmoothing)).catch(()=>this.#Ms(t))}#ws(t,i,s,h){const e=this.#ns(t);e.pe=this.micrio.Zt.ge(i,e.pe,h),void 0!==self.ImageBitmap&&i instanceof ImageBitmap&&i.close instanceof Function&&i.close(),e.me=2,e.ve=setTimeout(()=>{this.#Ms(t)},s?150:50)}#Ms(t){this.#ji.delete(t);const i=this.#Zi.get(t);i?.ve&&(clearTimeout(i.ve),i.ve=void 0),this.#ji.size||this.micrio.ye.set(0)}#ls(t){const i=this.#Zi.get(t);i&&(i.pe&&(this.micrio.Zt.gl.deleteTexture(i.pe),i.pe=void 0),i.ve&&clearTimeout(i.ve),this.#Zi.delete(t))}#_s(t){for(let i=0;i<this.Ch.length;i++)if(this.Ch[i].ee(t))return 1;return 0}#gs(){const t=performance.now();for(const s of this.#Gi){if(this.#Wi.has(s))continue;if(this.#Xi.includes(s))continue;const i=this.#Zi.get(s);if(i&&0!==i.me)switch(i.Bt=0,i.me){case 1:const h=this.#ji.get(s);h&&St(h),i.me=0;break;case 2:this.#ji.has(s)&&this.#Ms(s),this.#ls(s);break;case 3:i.de||(i.de=t)}}const i=this.#Gi;this.#Gi=this.#Hi,this.#Hi=i,this.#Hi.clear();for(const s of this.#Wi)this.#Gi.add(s);for(const[s,h]of this.#Zi.entries())h.de&&(t-h.de)/1e3>this.#Ui&&(this.#_s(s)?h.de=t:this.#ls(s))}Sh(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].Sh();this.ready&&(this.#cs(),this.#ps())}#vs=(t,i,s=0,h=1,e)=>{this.ne||(this.#Ri.push(t),this.#ys(t,i,s,h,e))};#ys=(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 dt?t.$settings.i??{}:{},a=this.#es.get(i);if(!a)return;let c;if(s){const i=a.canvas.Ah(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.#Ki.set(i,t),this.#Ji.set(t,i),t.ct=1,this.#rs({canvas:a.canvas,micrioImage:t}),t.At=this.Dh-1,void this.#ms(t.At)}{if(!(t instanceof dt))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.Oh(o[0],o[1],o[0]+o[2],o[1]+o[3],r.width,r.height,s),c.Ph=t}if(t.ct=1,this.#rs({canvas:c,micrioImage:t,camera:t.camera}),!s){this.#fs(t);const i=t.$settings.focus;i?c.camera.setCoo(i[0],i[1],0):c.gs&&c.$(c.view.ii,c.view.si,c.view.width,c.view.height,0,0),c.he()}t.At=this.Dh-1,this.#ms(t.At)};Kt(t,i,s={}){this.ne||t.ct||this.#vs(t,i,1,s.opacity??1,"camera"in t&&s.asImage?void 0:s.fromScale)}Oh=(t,i)=>this.#vs(t,i);Le(t,i,s=0){const h=this.#es.get(t),e=h?.canvas;if(e){if(h.camera)e.Ih=i;else{const t=e.images;for(let h=0;h<t.length;h++){const e=t[h];e.lt>0&&(e.Us=i,s&&(e.opacity=i))}}this.render()}}Pe(t,i){const s=this.#Ji.get(t);s&&(s.Zs=i)}#us(){for(let t=0;t<this.Ch.length;t++)this.Ch[t].re()}oe(t){for(let i=0;i<this.Ch.length;i++)if(this.Ch[i]===t)return void this.Ch.splice(i,1)}},Yt=new Float32Array([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]),Xt=class{Ie;#bs;#ks;#xs;#Ts;#Ss;#zs;#Ls;constructor(t,i,s){if(this.#Ls=t,this.#xs=t.createProgram(),i.Zt.Ce(this.#xs,t.VERTEX_SHADER,"attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;void main(){v_texCoord=a_texCoord;gl_Position=vec4(a_position,0.0,1.0);}"),i.Zt.Ce(this.#xs,t.FRAGMENT_SHADER,s),t.linkProgram(this.#xs),t.getProgramParameter(this.#xs,t.LINK_STATUS)||console.error("Postprocess shader link error:",t.getProgramInfoLog(this.#xs)),t.useProgram(this.#xs),this.#Ts=t.getAttribLocation(this.#xs,"a_position"),this.#Ss=t.getAttribLocation(this.#xs,"a_texCoord"),this.#zs=t.getUniformLocation(this.#xs,"u_time"),this.#bs=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.#bs),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.#Ls.drawingBufferWidth,this.#Ls.drawingBufferHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.Ie=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.Ie),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.#bs,0),t.checkFramebufferStatus(t.FRAMEBUFFER)!==t.FRAMEBUFFER_COMPLETE)throw new Error("Framebuffer not complete");t.bindFramebuffer(t.FRAMEBUFFER,null),this.#ks=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,this.#ks),t.bufferData(t.ARRAY_BUFFER,Yt,t.STATIC_DRAW)}Ee(){const t=this.#Ls;t.bindFramebuffer(t.FRAMEBUFFER,null),t.useProgram(this.#xs),t.bindBuffer(t.ARRAY_BUFFER,this.#ks),t.enableVertexAttribArray(this.#Ts),t.vertexAttribPointer(this.#Ts,2,t.FLOAT,0,4*Float32Array.BYTES_PER_ELEMENT,0),t.enableVertexAttribArray(this.#Ss),t.vertexAttribPointer(this.#Ss,2,t.FLOAT,0,4*Float32Array.BYTES_PER_ELEMENT,2*Float32Array.BYTES_PER_ELEMENT),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.#bs),t.uniform1f(this.#zs,performance.now()/1e3),t.drawArrays(t.TRIANGLE_STRIP,0,4)}Sh(){const t=this.#Ls;t.bindTexture(t.TEXTURE_2D,this.#bs),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.#Ls.drawingBufferWidth,this.#Ls.drawingBufferHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null)}Ae(){const t=this.#Ls;t.deleteFramebuffer(this.Ie),t.deleteTexture(this.#bs),t.deleteBuffer(this.#ks),t.deleteProgram(this.#xs)}},Wt=256,Gt=class{gl;xe=self;#xs;#Ps;#Is;Kh;#Cs=-1;#Es;#As;#Ds;#Os=null;#$s=null;#Fs=new Float32Array([-1,-1,0,1,-1,0,-1,1,0,-1,1,0,1,-1,0,1,1,0]);#Vs=new Float32Array([0,0,0,0,0,0,0,0,0,0,0,0]);#Bs=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);#Ns=.075;#Rs=-1;#Ys=0;#Xs=-1;#Ws=-1;De;#Gs;constructor(t){this.#Gs=t}Oe(){const t="WebGL2RenderingContext"in window,i=this.#Gs.canvas.element.getContext(t?"webgl2":"webgl",{alpha:1,preserveDrawingBuffer:this.#Gs.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,displayMessage:"Your browser does not support WebGL, which is required to view this content. Please try a different browser."});this.gl=i;const s=this.#Gs.$current?.$settings.postProcessingFragmentShader;s&&(this.De=new Xt(i,this.#Gs,s),this.#Gs.Te=1);const h=i.createProgram();if(!(h instanceof WebGLProgram))throw new y("Failed to create WebGL program",{code:c,displayMessage:"There was a problem initializing the graphics. Please try refreshing the page."});if(this.#xs=h,this.Ce(this.#xs,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.Ce(this.#xs,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.#xs),!i.getProgramParameter(this.#xs,i.LINK_STATUS))throw new y("Shader link error: "+i.getProgramInfoLog(this.#xs),{code:c,displayMessage:"There was a problem initializing the graphics. Please try refreshing the page."});i.useProgram(this.#xs),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.#xs,"opacity");if(!e)throw new y("Failed to bind WebGL opacity uniform",{code:c});this.#Ps=e;const r=i.getUniformLocation(this.#xs,"GLMatrix");if(!r)throw new y("Failed to bind WebGL matrix uniform",{code:c});this.Kh=r;const o=i.getUniformLocation(this.#xs,"noTexture");if(!o)throw new y("Failed to bind WebGL texture uniform",{code:c});this.#Is=o,this.#Cs=i.getAttribLocation(this.#xs,"aTextureCoord");const a=i.createBuffer();if(!a)throw new y("Failed to create WebGL texture buffer",{code:l,displayMessage:"Your device is low on memory. Try closing other browser tabs or applications."});this.#Es=a,i.bindBuffer(i.ARRAY_BUFFER,this.#Es),i.bufferData(i.ARRAY_BUFFER,Rt.ce,i.STATIC_DRAW);const u=i.createBuffer();if(!u)throw new y("Failed to create WebGL watermark buffer",{code:l,displayMessage:"Your device is low on memory. Try closing other browser tabs or applications."});this.#Ds=u;const d=i.createBuffer();if(!d)throw new y("Failed to create WebGL geometry buffer",{code:l,displayMessage:"Your device is low on memory. Try closing other browser tabs or applications."});this.#As=d,this.#Rs=i.getAttribLocation(this.#xs,"pos"),this.#Hs(),i.activeTexture(i.TEXTURE0),i.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}#Hs(){const t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.bufferData(t.ARRAY_BUFFER,this.#Gs.$e.Lh.byteLength,t.DYNAMIC_DRAW),t.enableVertexAttribArray(this.#Cs),t.bindBuffer(t.ARRAY_BUFFER,this.#Es),t.vertexAttribPointer(this.#Cs,2,t.FLOAT,0,0,0),t.enableVertexAttribArray(this.#Rs),t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.vertexAttribPointer(this.#Rs,3,t.FLOAT,0,0,0)}Ae(t=0){const i=this.gl;if(i){if(i.bindBuffer(i.ARRAY_BUFFER,null),i.bindTexture(i.TEXTURE_2D,null),i.deleteBuffer(this.#Es),i.deleteBuffer(this.#As),i.deleteBuffer(this.#Ds),i.deleteProgram(this.#xs),this.De?.Ae(),this.#Os&&i.deleteTexture(this.#Os),t){const t=i.getExtension("WEBGL_lose_context");t instanceof Object&&t.loseContext instanceof Function&&t.loseContext()}this.gl=null}}Ce(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,displayMessage:"There was a problem initializing the graphics. Please try refreshing the page."});this.gl.attachShader(t,h),this.gl.deleteShader(h)}ge(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}we(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)}ze(){const t=this.gl;this.De&&t.bindFramebuffer(t.FRAMEBUFFER,this.De.Ie),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}Se(){this.De&&(this.De.Ee(),this.gl.useProgram(this.#xs),this.#Hs()),this.#Os&&this.#Zs()}Jh(t,i=1,s=0){const h=this.gl,e=t?0:1;e!==this.#Xs&&(h.uniform1i(this.#Is,e),this.#Xs=e),i!==this.#Ws&&(h.uniform1f(this.#Ps,i),this.#Ws=i),t&&h.bindTexture(h.TEXTURE_2D,t);const r=s?1536:6;s!=this.#Ys&&(h.bindBuffer(h.ARRAY_BUFFER,this.#Es),h.bufferData(h.ARRAY_BUFFER,s?Rt.le:Rt.ce,h.STATIC_DRAW),h.bindBuffer(h.ARRAY_BUFFER,this.#As),this.#Ys=s),h.bufferSubData(h.ARRAY_BUFFER,0,s?this.#Gs.$e.Lh:this.#Gs.$e.wh),h.drawArrays(h.TRIANGLES,0,r)}Ht(t,i){if(!this.gl)return;if(t===this.#$s)return;this.#$s=t;const s=new Image;i&&(this.#Ns=i),s.crossOrigin="anonymous",s.src=t,s.onload=()=>{const t=at("canvas",{props:{width:Wt,height:Wt}}),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,(Wt-e)/2,(Wt-r)/2,e,r),this.#Os&&this.gl.deleteTexture(this.#Os),this.#Os=this.ge(t);const o=this.gl;o.bindTexture(o.TEXTURE_2D,this.#Os),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.#Gs.$e.render()}}#Zs(){const t=this.gl;if(!this.#Os)return;t.useProgram(this.#xs),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.uniformMatrix4fv(this.Kh,0,this.#Bs),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.#Os),t.uniform1i(this.#Is,0),t.uniform1f(this.#Ps,this.#Ns),this.#Xs=0,this.#Ws=this.#Ns;const i=t.drawingBufferWidth/Wt,s=t.drawingBufferHeight/Wt,h=this.#Vs;h[1]=s,h[2]=i,h[3]=s,h[8]=i,h[9]=s,h[10]=i,t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.bufferData(t.ARRAY_BUFFER,this.#Fs,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#Rs,3,t.FLOAT,0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this.#Ds),t.bufferData(t.ARRAY_BUFFER,this.#Vs,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#Cs,2,t.FLOAT,0,0,0),t.drawArrays(t.TRIANGLES,0,6),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.#Hs(),this.#Ys=0}},Ht=class{element=at("canvas");#js;viewport={width:0,height:0,left:0,top:0,ratio:0,scale:0,portrait:0};isMobile=Y(0);get $isMobile(){return X(this.isMobile)}#Gs;constructor(t){this.#Gs=t,this.element.className="micrio",this.onresize=this.onresize.bind(this),self.ResizeObserver&&(this.#js=new self.ResizeObserver(this.onresize))}place(){if(this.element.parentNode)return;const t=this.#Gs.querySelector("img.preview");this.#Gs.insertBefore(this.element,t?t.nextSibling:this.#Gs.firstChild)}hook(){this.onresize(),this.#js?this.#js.observe(this.element):window.addEventListener("resize",this.onresize)}unhook(){this.#js?this.#js.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.#Gs.hasAttribute("data-static")?1:Math.floor(i)/this.#Gs.offsetWidth;i/=r,s/=r;const o=1!=r?1:this.getRatio(),n=this.viewport;n.width==i&&n.height==s&&n.ratio==o&&n.scale==r||(n.width=i,n.height=s,n.ratio=o,n.scale=r,n.top=t.top,n.left=t.left,n.portrait=window.matchMedia("(orientation: portrait)")?.matches??s>i,this.#Gs.Zt.gl&&(this.element.width=i*o,this.element.height=s*o,this.#Gs.Zt.gl.viewport(0,0,n.width*n.ratio,n.height*n.ratio),this.#Gs.Zt.De?.Sh(),this.#Gs.$e.Sh(n)),this.#Gs.events.zt("resize",t),this.isMobile.set(/mobile/i.test(navigator.userAgent)))}getRatio=(t=this.#Gs.$current?.$settings??{})=>!pt.iOS&&!t?.noRetina&&self.devicePixelRatio&&Math.max(1,Math.min(2,self.devicePixelRatio))||1;setMargins(t,i){this.#Gs.$e.ready&&(this.#Gs.$e.el.pi=t,this.#Gs.$e.el.gi=i)}},Zt={passive:1},jt={passive:1,capture:1},Ut={passive:0};function qt(t){t.stopPropagation(),t.preventDefault()}var Kt=class{#Us=0;#qs;constructor(t){this.#qs=t}hook(){this.#Us||(this.#Us=1,this.#qs.Fe.addEventListener("dragstart",qt),this.#qs.Fe.addEventListener("pointerdown",this.start,Zt),self.addEventListener("pointercancel",this.#Ks,Zt),this.#qs.Fe.setAttribute("data-hooked",""))}unhook(){this.#Us&&(this.#Us=0,this.#qs.Fe.removeEventListener("pointerdown",this.start,Zt),this.#qs.Fe.removeEventListener("dragstart",qt),self.removeEventListener("pointercancel",this.#Ks,Zt),this.#qs.Fe.removeAttribute("data-hooked"))}start=(t,i=0,s=0)=>{if(0!=t.button||"touch"==t.pointerType&&this.#qs.Ve)return;if(!(i||t.target==this.#qs.Be||t.target instanceof Element&&t.target.closest("[data-scroll-through]")))return;if(this.#qs.Fe.$current?.Ot&&t.shiftKey)return;if(this.#qs.Ne)return;if(this.#qs.Re)return void(t instanceof TouchEvent&&t.touches.length>1&&this.stop());const h=this.#qs.Qt({x:t.clientX,y:t.clientY});h&&(this.#qs.Re=1,this.#qs.Xe.Ye.Os=[t.clientX,t.clientY,performance.now()],this.#qs.Xe.Ye.We=h,this.#qs.Fe.addEventListener("pointermove",this.#Js,Zt),this.#qs.Fe.addEventListener("pointerup",this.stop,Zt),this.#qs.Fe.setAttribute("data-panning",""),h.canvas?.Qi.stop(),s||h.camera.stop(),this.#qs.Fe.$e.render(),this.#qs.zt("panstart"))};#Js=t=>{const i=t.clientX,s=t.clientY,h=Math.hypot(this.#qs.Xe.Ye.Os[0]-t.clientX,this.#qs.Xe.Ye.Os[1]-t.clientY);!this.#qs.Ge&&h>10&&(this.#qs.Ge=t.pointerId,this.#qs.Fe.setPointerCapture(t.pointerId)),this.#qs.Xe.Ye.He&&this.#qs.Xe.Ye.We?.camera.pan(this.#qs.Xe.Ye.He[0]-i,this.#qs.Xe.Ye.He[1]-s),this.#qs.Xe.Ye.He=[i,s]};stop=(t,i=0,s=0)=>{if(this.#qs.Re){if(this.#qs.Re=0,this.#qs.Xe.Ye.He=void 0,this.#qs.Fe.removeEventListener("pointermove",this.#Js,Zt),this.#qs.Fe.removeEventListener("pointerup",this.stop,Zt),this.#qs.Ge&&this.#qs.Fe.releasePointerCapture(this.#qs.Ge),this.#qs.Ge=void 0,this.#qs.Fe.removeAttribute("data-panning"),t&&0==i){const i=this.#qs.Xe.Ye.We??this.#qs.Qt({x:t.clientX,y:t.clientY});i&&(i.canvas?.Qi.start(),this.#qs.Fe.$e.render())}this.#qs.Xe.Ye.We=void 0,s||this.#qs.zt("panend",t?{duration:performance.now()-this.#qs.Xe.Ye.Os[2],movedX:t.clientX-this.#qs.Xe.Ye.Os[0],movedY:t.clientY-this.#qs.Xe.Ye.Os[1]}:void 0)}};#Ks=t=>{this.#qs.Re&&(void 0!==this.#qs.Ge&&t.pointerId!==this.#qs.Ge||this.stop(void 0,1,1))}};function Jt(t,i){t.Xe.Ji.Ze=t.Re,i.stop(void 0,0,1),t.Ne=1,t.Fe.setAttribute("data-pinching",""),t.je=void 0,t.Xe.Ji.We&&t.Xe.Ji.We.canvas?.camera.ss(),t.Fe.$e.render(),t.zt("pinchstart"),t.Ve&&t.zt("panstart")}function Qt(t,i,s){const h=t.Xe.Ji,e=h.We;e&&(t.je=Math.hypot(i.x-s.x,i.y-s.y)/h.Ue,e.canvas?.camera.Ji(i.x,i.y,s.x,s.y))}function ti(t,i,s){if(!t.Ne)return;t.Ne=0,self.removeEventListener("touchmove",s,{passive:1,capture:1}),self.removeEventListener("pointermove",s,{passive:1,capture:1}),t.Fe.removeAttribute("data-pinching");const h=t.Xe.Ji.We;h&&(h.canvas?.camera.hs(),t.Fe.$e.render()),t.Xe.Ji.We=void 0,t.je=void 0,t.zt("pinchend"),t.Ve&&!t.Xe.Ji.Ze&&t.zt("panend")}function ii(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.Be,clientX:i.clientX,clientY:i.clientY}}else{const[i,{x:e,y:r}]=s.entries().next().value;h={button:0,pointerType:"touch",target:t.Be,clientX:e,clientY:r,pointerId:i}}i.start(h,1,1)}}var si=class{#qs;#Qs;constructor(t,i){this.#qs=t,this.#Qs=i}hook(){pt.iOS&&this.#qs.qe&&this.#qs.Fe.addEventListener("touchstart",this.start,Zt)}unhook(){pt.iOS&&this.#qs.qe&&this.#qs.Fe.removeEventListener("touchstart",this.start,Zt),self.removeEventListener("touchmove",this.#Js,jt),self.removeEventListener("touchend",this.stop,jt)}start=t=>{if(!(pt.hasTouch&&t instanceof TouchEvent))return;if(this.#qs.Ve&&2>t.touches.length)return;if(this.#qs.Ne||2!=t.touches.length)return void this.stop(t);t.stopPropagation();const i=t.touches;this.#qs.Xe.Ji.We=this.#qs.Qt({x:i[0].clientX,y:i[0].clientY}),this.#qs.Xe.Ji.Ue=Math.hypot(i[0].clientX-i[1].clientX,i[0].clientY-i[1].clientY),self.addEventListener("touchmove",this.#Js,jt),self.addEventListener("touchend",this.stop,jt),Jt(this.#qs,this.#Qs)};#Js=t=>{if(!(pt.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};Qt(this.#qs,s,h)};stop=t=>{ti(this.#qs,0,this.#Js),t instanceof TouchEvent&&ii(this.#qs,this.#Qs,t.touches)}},hi=class{#qs;#Qs;constructor(t,i){this.#qs=t,this.#Qs=i}hook(){this.#qs.Fe.addEventListener("pointerdown",this.start,Zt),self.addEventListener("pointerup",this.end,Zt),self.addEventListener("pointercancel",this.end,Zt)}unhook(){this.#qs.Fe.removeEventListener("pointerdown",this.start,Zt),self.removeEventListener("pointerup",this.end,Zt),self.removeEventListener("pointercancel",this.end,Zt),self.removeEventListener("pointermove",this.#Js,jt),this.#qs.Ke.clear()}start=t=>{if("touch"===t.pointerType&&t.target==this.#qs.Be&&(this.#qs.Ke.set(t.pointerId,{x:t.clientX,y:t.clientY}),2===this.#qs.Ke.size&&!this.#qs.Ne)){const t=Array.from(this.#qs.Ke.values()),i=t[0],s=t[1];this.#qs.Xe.Ji.We=this.#qs.Qt({x:i.x,y:i.y}),this.#qs.Xe.Ji.Ue=Math.hypot(i.x-s.x,i.y-s.y),self.addEventListener("pointermove",this.#Js,jt),Jt(this.#qs,this.#Qs)}};#Js=t=>{if("touch"!==t.pointerType)return;if(!this.#qs.Ke.has(t.pointerId))return;if(this.#qs.Ke.set(t.pointerId,{x:t.clientX,y:t.clientY}),!this.#qs.Ne||2!==this.#qs.Ke.size)return;const i=Array.from(this.#qs.Ke.values()),s={x:i[0].x,y:i[0].y},h={x:i[1].x,y:i[1].y};Qt(this.#qs,s,h)};end=t=>{"touch"===t.pointerType&&(this.#qs.Ke.delete(t.pointerId),this.#qs.Ne&&2>this.#qs.Ke.size&&(self.removeEventListener("pointermove",this.#Js,jt),ti(this.#qs,0,this.#Js),ii(this.#qs,this.#Qs,this.#qs.Ke)))}},ei=class{#qs;constructor(t){this.#qs=t}hook(){pt.OSX&&(this.#qs.Fe.addEventListener("gesturestart",this.#th,Ut),this.#qs.Fe.addEventListener("gesturechange",this.#th,Ut),this.#qs.Fe.addEventListener("gestureend",this.#th,Ut))}unhook(){pt.OSX&&(this.#qs.Fe.removeEventListener("gesturestart",this.#th,Ut),this.#qs.Fe.removeEventListener("gesturechange",this.#th,Ut),this.#qs.Fe.removeEventListener("gestureend",this.#th,Ut))}#ih(t){if("scale"in t&&"number"==typeof t.scale){const i=t;return{scale:i.scale,clientX:i.clientX,clientY:i.clientY}}return null}#th=t=>{const i=this.#ih(t);if(!i||1===i.scale)return;if(t.target instanceof Element&&t.target!=this.#qs.Be)return;const s=this.#qs.Je-i.scale;this.#qs.Je=i.scale,t.stopPropagation(),t.preventDefault(),"gesturechange"==t.type&&this.#qs.Qt({x:i.clientX,y:i.clientY})?.camera.zoom(s*this.#qs.Fe.canvas.viewport.height,0,i.clientX,i.clientY)}},ri=class{hooked=0;#sh=-1;#qs;constructor(t){this.#qs=t}hook(){this.hooked||(this.#qs.Fe.addEventListener("wheel",this.handle,Ut),this.hooked=1)}unhook(){this.#qs.Fe.removeEventListener("wheel",this.handle,Ut),this.hooked=0}handle=(t,i=0,s=0)=>{if(!(t instanceof WheelEvent))return;if(this.#qs.Qe&&!t.ctrlKey)return;if(!i&&t.target instanceof Element&&t.target!=this.#qs.Be&&!t.target.classList.contains("marker")&&!t.target.closest("[data-scroll-through]"))return;let h=t.deltaY;t.ctrlKey&&(this.#qs.tr=1);const e=this.#qs.Qe&&10*h%1==0,r=this.#qs.tr&&!e,o=pt.firefox||t.ctrlKey||!r;if(this.#qs.Ve&&this.#qs.Fe.$current?.camera.isZoomedOut())return;t.stopPropagation(),t.preventDefault(),(pt.OSX||r)&&t.ctrlKey&&(h*=10);const n={x:t.clientX,y:t.clientY},a=this.#qs.Qt(n);if(a){if(o){const t=this.#qs.Fe.canvas.viewport;let i=0;const e=this.#qs.Fe.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.#qs.ir=1,clearTimeout(this.#sh),this.#sh=setTimeout(this.#hh,50)}};#hh=()=>{this.#qs.ir=0}},oi=class{static sr=0;static tag="micrio-grid"},ni=class{#qs;constructor(t){this.#qs=t}hook(){document.addEventListener("keydown",this.#th)}unhook(){document.removeEventListener("keydown",this.#th)}#th=t=>{if(this.#qs.Re||this.#qs.Ne||!this.#qs.Fe.$current?.camera)return;if(oi.sr&&(t.key.startsWith("Arrow")||"Enter"==t.key||" "==t.key||"Escape"==t.key))return;const i=this.#qs.Fe.$current.camera,s=this.#qs.Fe.offsetWidth/2,h=this.#qs.Fe.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)}},ai=class{#qs;constructor(t){this.#qs=t}hookTap(){this.#qs.Be.addEventListener("touchstart",this.#eh)}unhookTap(){this.#qs.Be.removeEventListener("touchstart",this.#eh)}hookClick(){this.#qs.Be.addEventListener("dblclick",this.#rh)}unhookClick(){this.#qs.Be.removeEventListener("dblclick",this.#rh)}#eh=t=>{if(!(pt.hasTouch&&t instanceof TouchEvent))return;const i=performance.now();1==t.touches.length&&250>i-this.#qs.Xe.er.hr&&(t.stopPropagation(),t.preventDefault(),this.#rh(t)),this.#qs.Xe.er.hr=i};#rh=t=>{const i=t instanceof TouchEvent?t.touches[0]:t;this.#qs.Qt({x:i.clientX,y:i.clientY})?.camera.zoom(-300,500,i.clientX,i.clientY,1,!this.#qs.Fe.$current?.album).catch(()=>{})}},ci=class{Be;enabled=Y(0);get $enabled(){return X(this.enabled)}#Us=0;Re=0;Ne=0;ir=0;Qe=0;Ve=0;Je=1;qe=pt.hasTouch&&"ontouchstart"in self;tr=0;#oh;#nh;Xe={Ye:{He:void 0,Os:[0,0,0],We:void 0},er:{hr:0},Ji:{We:void 0,Ue:0,Ze:0}};je;Ke=new Map;Ge;Fe;#Qs;#ah;#ch;#lh;#uh;#dh;#fh;constructor(t){this.Fe=t,this.Be=t.canvas.element,this.#Qs=new Kt(this),this.#ah=new si(this,this.#Qs),this.#ch=new hi(this,this.#Qs),this.#lh=new ei(this),this.#uh=new ri(this),this.#dh=new ni(this),this.#fh=new ai(this),this.enabled.subscribe(t=>{t?this.hook():this.unhook()}),t.Ut.subscribe(t=>this.#nh=t),t.current.subscribe(t=>{t&&!this.#oh&&(this.#oh=t.$settings,!t.error&&this.#oh.hookEvents&&this.enabled.set(1))})}rr(){return this.$enabled}get isNavigating(){return this.Re||this.Ne||this.ir}zt(t,i){this.Fe.dispatchEvent(new CustomEvent(t,void 0!==i?{detail:i}:void 0))}Qt(t){if(!this.#nh)return;const i=this.Fe.offsetWidth,s=this.Fe.offsetHeight,h=Math.max(0,Math.min(1,t.x/i)),e=Math.max(0,Math.min(1,t.y/s)),r=this.#nh.filter(t=>!t.Ft&&!t.Vt),o=this.Fe.Ch.find(t=>t.grid);if(o)return o.grid?.nr(t.x,t.y)??this.Fe.$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.Fe.$current}ar(){return this.#nh}hook(){if(this.#Us)return;this.#Us=1;const t=this.#oh;t&&(this.Ve=!!t.twoFingerPan,this.Ve?this.Fe.setAttribute("data-can-pan",""):this.Fe.removeAttribute("data-can-pan"),t?.hookKeys&&this.hookKeys(),t.hookDrag&&this.hookDrag(),t.noZoom||this.hookZoom())}unhook(){this.#Us&&(this.#Us=0,this.Ke.clear(),this.unhookDrag(),this.unhookZoom(),this.unhookKeys())}hookKeys(){this.#dh.hook()}unhookKeys(){this.#dh.unhook()}hookZoom(){const t=this.#oh;this.Qe=!!t?.controlZoom,t&&!t.hookPinch||this.hookPinch(),(!t||t.hookScroll||this.Qe)&&this.hookScroll(),this.Fe.canvas.$isMobile?this.#fh.hookTap():this.#fh.hookClick()}unhookZoom(){this.unhookPinch(),this.unhookScroll(),this.Fe.canvas.$isMobile?this.#fh.unhookTap():this.#fh.unhookClick()}get scrollHooked(){return this.#uh.hooked}hookScroll(){this.#uh.hook()}unhookScroll(){this.#uh.unhook()}hookPinch(){pt.iOS&&this.qe?this.#ah.hook():this.#ch.hook(),this.#lh.hook()}unhookPinch(){pt.iOS&&this.qe?this.#ah.unhook():this.#ch.unhook(),this.#lh.unhook()}hookDrag(){this.#Qs.hook()}unhookDrag(){this.#Qs.unhook()}},li=class t{cr;lr;#mh=null;ur;#ph=0;#gh=0;constructor(t,i,s){this.ur=t;const h="book3d"==s.type;this.cr=h?{...s,isSpreads:1,coverPages:1}:s;const e="switch"==s.type,r=this.cr.isSpreads,o=r?this.cr.coverPages??0:0;e&&(this.#gh=Math.max(...t.map(t=>t.height)),this.#ph=Math.max(...t.map(t=>t.width*(r?2:1)))),this.lr=t.map((h,n)=>{const a={...s.settings};void 0!==s.archiveLayerOffset&&(a.gallery={...a.gallery||{},archive:1,archiveLayerOffset:s.archiveLayerOffset});const c={},l=R.m(h.id)?.data;if(e){let i;c.isEmbed=1,c.useParentCamera=1,i=r?0>n-o||n==t.length-1&&(n-o)%2==0?[.25,0,.5,1]:(n-o)%2==0?[0,0,.5,1]:[.5,0,.5,1]:[0,0,1,1];let s=((t,i,s,h,e)=>{const[r,o,n,a]=t,c=n*i,l=a*s,u=Math.min(c/h,l/e),d=h*u/i,f=e*u/s;return[r+n/2-d/2,o+a/2-f/2,d,f]})(i,this.#ph,this.#gh,h.width,h.height);r&&(.5===i[0]?s[0]=.5:0===i[0]&&(s[0]=.5-s[2])),c.area=s}else c.area=[n,0,1,1];return new dt(i,{id:h.id,info:h,settings:a,data:l},c)})}static dr(i,s){if("sc:Manifest"===i["@type"]||i.sequences)throw new y("IIIF_V2_UNSUPPORTED",{displayMessage:"Only IIIF Presentation API 3 manifests are supported"});if("Manifest"===i.type){const h=i.items?.flatMap(t=>t.items?.[0]?.items?.[0]?.body)?.filter(t=>t?.service?.[0]?.id)??[];if(!h.length)throw new y("NO_CANVASES",{displayMessage:"No valid IIIF canvases found in the manifest"});const e=h.map(t=>({id:t.service[0].id,path:t.service[0].id.replace(/\/[^/]*$/,""),version:"",width:t.width,height:t.height,isPng:"image/png"===t.format,isIIIF:1}));return 1===e.length?null:new t(e,s,{type:"swipe",settings:{}})}return null}static mr(i,s,h,e){const r=e?.basePath??h.$current?.Et??"https://b.micr.io/",o=i.map(t=>({id:t.micrioId??t.id,path:r,version:"",width:t.width,height:t.height,isDeepZoom:t.isDeepZoom,isPng:t.isPng,isWebP:t.isWebP}));return new t(o,s,{type:"swipe",startId:e?.startId,settings:{skipMeta:1,noLogo:1}})}static async pr(i,s,h){const e=R.v(i);if(!e)return null;const r=h?.path??R._()?.baseUrl??"https://r2.micr.io/";e.archive&&await ft.load(r,"g/"+e.archive,h?.onProgress);const o={...e,startId:h?.startId??e.startId};if(e.settings&&(o.settings={...e.settings}),"grid"===e.type&&e.archive){const t=o.grid?.clickable??o.settings?.grid?.clickable,i={zoomLimit:15,minimap:0,...o.settings??{}};t&&void 0===i.hookKeys&&(i.hookKeys=1),o.settings=i}const n=await t.#wh(e.archive.split(".")[0],r);n&&(o.archiveLayerOffset=n.delta);const a=o.sort;return a&&n?.images&&n.images.sort(t.#Mh(a)),new t((n?.images??[]).map(t=>({...t,path:r,version:""})),s,{...o,type:o.type??"swipe"})}static#wh=async(t,i)=>ft.get(`${i}${t}.json`).then(t=>(t.images.forEach(t=>b.set(`${i}${t.id}/info.json`,t)),t));static#Mh(t){return"random"==t?()=>Math.random()-.5:"name"==t?(t,i)=>t.title&&i.title?t.title<i.title?-1:t.title>i.title?1:0:0:"-name"==t?(t,i)=>t.title&&i.title?t.title<i.title?1:t.title>i.title?-1:0:0:"-created"==t?(t,i)=>t.created&&i.created?t.created<i.created?1:t.created>i.created?-1:0:0:(t,i)=>t.created&&i.created?t.created<i.created?-1:t.created>i.created?1:0:0}gr(){const t=!!this.cr.isSpreads,i=this.cr.coverPages??0,s=[];if(t){let t=0;for(;t<Math.min(i,this.lr.length);t++)s.push([t]);for(;t<this.lr.length;t+=2){const i=[t];t+1<this.lr.length&&i.push(t+1),s.push(i)}}else for(let h=0;h<this.lr.length;h++)s.push([h]);return{pages:s,numPages:s.length}}wr(t){if(this.#mh=t,"grid"==this.cr.type){const i=t.engine.micrio;t.grid=at(oi.tag,{setProps:{micrio:i,image:t,gallery:this}})}"book3d"==this.cr.type&&(t.engine.ne=1)}async Mr(t){const i="switch"==this.cr.type,s={view:[0,0,1,1],gallery:{...this.cr},pinchZoomOutLimit:i?1:void 0};this.cr.settings&&Object.assign(s,this.cr.settings);const h=R._()?.baseUrl??"https://r2.micr.io/";await t.open({id:"",info:{id:"",path:h,version:"",width:i?this.#ph:t.offsetWidth*t.canvas.getRatio(),height:i?this.#gh:t.offsetHeight*t.canvas.getRatio()},settings:s},{gallery:this})}gotoId=t=>this.goto(this.lr.findIndex(i=>i.id==t));goto=t=>this.#mh?.album?.goto(t)??Promise.resolve(this.lr[t]);next=()=>this.#mh?.album?.next();prev=()=>this.#mh?.album?.prev()},ui=navigator?.language??"en-EN",di="Intl"in self&&Intl.DisplayNames?new Intl.DisplayNames([ui],{type:"language"}):void 0,fi=["ar","dv","fa","he","iw","ku","ps","sd","syr","ug","ur","yi"],mi=["en","nl","de"],pi={_r:["Close","Sluit","Schließen"],vr:["Zoom in","Zoom in","Vergrößern"],yr:["Zoom out","Zoom uit","Verkleinern"],br:["Toggle fullscreen","Volledig scherm aan / uit","Vollbild umschalten"],kr:["Switch language","Kies taal","Sprache wechseln"],Tr:["Share","Deel","Teilen"],Sr:["Mute audio","Geluid uit","Ton stummschalten"],zr:["Unmute audio","Geluid aan","Ton einschalten"],Lr:["Close this marker","Sluit deze marker","Diesen Marker schließen"],Pr:["Next step","Volgende stap","Nächster Schritt"],Ir:["Previous step","Vorige stap","Vorheriger Schritt"],Cr:["Stop this tour","Stop deze tour","Tour beenden"],Er:["Minimize","Minimaliseer","Minimieren"],Ar:["Play","Start","Abspielen"],Dr:["Pause","Pauzeer","Pause"],Or:["Stop","Stop","Stopp"],$r:["Toggle subtitles","Ondertitels aan / uit","Untertitel umschalten"],Fr:["Previous image","Vorige afbeelding","Vorheriges Bild"],Vr:["Next image","Volgende afbeelding","Nächstes Bild"],Br:["Rotate view left","Draai beeld naar links","Ansicht nach links drehen"],Nr:["Rotate view right","Draai beeld naar rechts","Ansicht nach rechts drehen"],Rr:["Toggle menu","Menu openen / sluiten","Menü umschalten"],Yr:["Go this way","Ga deze richting","Diesen Weg gehen"],Xr:["Tours","Tours","Touren"],Wr:["Marker tours","Marker tours","Marker-Touren"],Gr:["Video tours","Video tours","Video-Touren"]},gi={},wi=Object.keys(pi);for(let Ri=0;mi.length>Ri;Ri++){const t={};for(const i of wi)t[i]=pi[i][Ri];gi[mi[Ri]]=t}var Mi=Y(gi.en),_i=Symbol("micrio-provides"),vi=class extends HTMLElement{static tag;static Hr=new Map;#_h=[];#vh=null;Zr={};connectedCallback(){this.jr?.(),this.Ee?.()}disconnectedCallback(){this.Ur?.(),this.#gs()}Tt(t){Object.assign(this.Zr,t),this.isConnected&&this.Ee()}Ee(){}qr(t){this.#_h.push(t)}Kr(t){return t===this.#vh?(this.Jr?.(),0):(this.#vh=t,1)}Qr(t,i,s){let h=i;s?.skipFirst&&(h=(t=>{let i=1;return s=>{i?i=0:t(s)}})(i)),s?.defer&&(h=(t=>{let i,s=0;return h=>{i=h,s||(s=1,Promise.resolve().then(()=>{s=0,t(i)}))}})(i)),this.qr(t.subscribe(h))}io(t,i){this.Qr(t,i,{skipFirst:1})}so(t,i){this.Qr(t,i,{skipFirst:1,defer:1})}ho(t,i){this.qr(t.subscribe(i))}eo(t,i){let s=this[_i];s||(this[_i]=s=new Map),s.set(t,i)}ro(t){let i=this;for(;i;){const s=i[_i];if(s?.has(t))return s.get(t);i=i.parentElement}}oo(){return this.ro("micrio")}#gs(){for(const t of this.#_h)t();this.#_h=[]}},yi=new Map;function bi(t,i,s){const h=yi.get(i);if(!h)return;yi.delete(i),h.unsub?.();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.$e.ke(h.secondary),400),t.events.zt("splitscreen-stop",h.secondary)}var ki=class{el;o;to;no=1;constructor(t,i={}){this.el=t,this.o={delay:4e3,onIdle(){},onActive(){},shouldIdle(){return 1},...i}}get idle(){return this.el.hasAttribute("data-idle")}get enabled(){return this.no}set enabled(t){this.no=t,t||this.pause()}activity(){this.idle&&(this.el.removeAttribute("data-idle"),this.o.onActive()),this.#yh()}show(){this.idle&&(this.el.removeAttribute("data-idle"),this.o.onActive())}hide(){this.idle||(this.el.setAttribute("data-idle",""),this.o.onIdle()),this.pause()}pause(){clearTimeout(this.to)}resume(){this.#yh()}destroy(){clearTimeout(this.to)}#yh(){clearTimeout(this.to),this.no&&(this.to=window.setTimeout(()=>{this.o.shouldIdle()?this.idle||(this.el.setAttribute("data-idle",""),this.o.onIdle()):this.#yh()},this.o.delay))}},xi=class extends vi{static get observedAttributes(){return["id","muted","data-limited","lang"]}static VERSION;static tag="micr-io";#bh=0;Ch=[];current=Y();Ut=Y([]);#kh;get $current(){return this.#kh}get camera(){return this.#kh?.camera}canvas=new Ht(this);events=new ci(this);state=new J.Main;Lt=[];St=[];barebone=Y(0);Zt=new Gt(this);$e=new Rt(this);ao;defaultSettings;ye=Y(1);qt=Y(0);co=Y("1"==localStorage.getItem(I));Wt=Y();spaceData;bundleTours;gallery;Te=0;#xh;#Th=0;attributeChangedCallback(t,i,s){switch(t){case"id":if(!this.isConnected||!s)return;this.#bh?this.open(s):this.#Sh();break;case"muted":X(this.co)!==this.hasAttribute("muted")&&this.co.set(this.hasAttribute("muted"));break;case"data-limited":this.$e?.wh&&this.$current?.canvas&&(this.$current.canvas.fh=!!s);break;case"lang":{let t=X(this.Wt);if(t!=s){this.Wt.set(s);const i=s.split("-")[0];Mi.set(gi[s]??gi[i]??gi.en),s&&(h=s,fi.some(t=>h===t||h.startsWith(t+"-"))?this.setAttribute("dir","rtl"):this.removeAttribute("dir")),t&&this.events.zt("lang-switch",s)}break}}var h}jr(){this.eo("micrio",this),this.canvas.place(),this.id&&!this.#bh&&this.#Sh(),"muted"in this||(Object.defineProperty(this,"muted",{get(){return X(this.co)},set(t){t?this.setAttribute("muted",""):this.removeAttribute("muted")}}),this.Qr(this.co,t=>{this.muted=t,t?(localStorage.setItem(I,"1"),this.events.zt("audio-mute")):(localStorage.removeItem(I),this.events.zt("audio-unmute"))}));const t=()=>{const t=X(this.Ut).filter(t=>t.id),i=this.$e.ne?this.#kh:1===t.length?t[0]:this.#kh;this.toggleAttribute("data-zoomed",!!i?.camera&&!!i.ct&&!i.camera.isZoomedOut())};this.Qr(this.current,i=>{this.#kh=i,t()}),this.Qr(this.Ut,()=>t());const i=()=>t();this.St.push(i),this.qr(()=>{const t=this.St.indexOf(i);0>t||this.St.splice(t,1)});let s=0;const h=this.ye.subscribe(t=>{if(t)return;h(),this.setAttribute("data-loaded",""),this.Qr(this.qt,t=>{t?this.setAttribute("data-switching",""):(s||W().then(()=>this.events.zt("show",this)),s=1,this.removeAttribute("data-switching"))});const i=this.querySelector("img.preview");i&&setTimeout(()=>i.remove(),500)});this.#xh=new ki(this,{shouldIdle:()=>{if(document.activeElement&&this.contains(document.activeElement))return 0;const t=this.querySelectorAll("button, micrio-button");for(const i of t)if(i.matches(":hover"))return 0;return this.querySelector("micrio-gallery[data-dragging]")?0:1}});const e=()=>this.#xh.activity();for(const r of["mousemove","pointerdown","wheel","focusin"])this.addEventListener(r,e,{passive:1});window.addEventListener("keydown",e),this.#xh.activity()}addEventListener(t,i,s){super.addEventListener(t,i,s)}removeEventListener(t,i,s){super.removeEventListener(t,i,s)}destroy(){this.current.set(void 0),this.events.enabled.set(0),this.canvas.unhook(),this.$e._e(),this.ao&&this.ao.remove(),delete this.ao,this.Zt.Ae(1),this.#xh?.destroy(),this.#bh=0}async#zh(t){const i=await T(t).catch(t=>{this.#Lh(t)});if(!i)return;let s;try{s=li.dr(i,this.$e)}catch(o){return void this.#Lh(o)}if(s)return void s.Mr(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)}return{id:h,info:{id:h,path:h.replace(/\/[^/]*$/,""),width:e,height:r,version:L,isIIIF:1,tiles:i.tiles,preferredFormats:i.preferredFormats}}}async#Sh(){if(this.#bh)return;this.#bh=1,await W();const i=this.#Ph();if(i.settings||(i.settings={}),this.defaultSettings&&t(this.defaultSettings,i.settings),i.settings.noLogo||this.#Ih(!!i.settings.noUI,0),i.id&&z(i.id)&&!this.hasAttribute("width")&&!this.hasAttribute("height")){const t=await R.u(i.id).catch(()=>{});if(t&&t.info?.albumId){const s=await li.pr(t.info.albumId,this.$e,{startId:i.id,onProgress:t=>this.ao?.Tt?.({loadingProgress:t})}).catch(()=>null);if(s)return void s.Mr(this)}}if(i.id&&i.id.startsWith("http")){const t=await this.#zh(i.id);if(!t)return;return t.settings=i.settings,void this.open(t)}this.Te=!!i.settings.keepRendering,this.events.zt("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&&requestAnimationFrame(s)}#Ih(t,i){this.ao?this.ao.Tt?.({noHTML:t,noLogo:i}):this.ao=at("micrio-main",{setProps:{noHTML:t,noLogo:i},parent:this})}#Lh(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.ao||this.#Ih(0,0),this.ao?.Tt?.({error:i}),this.ye.set(0)}async open(i,s={}){this.#bh||await this.#Sh();const h=this.#Ph();let e;if("string"==typeof i&&i.startsWith("http")){const t=await this.#zh(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 R.u(i),!e)return this.#Lh('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(C,e.settings,{noOverwrite:1}),this.$current&&e.id==this.$current?.id)return this.$current;this.$current&&!s.gridView&&(t=>{for(const i of[...yi.keys()])bi(t,i)})(this),!s.gridView&&this.$current&&this.qt.set(1),this.#Ih(!!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.lr.find(t=>t.id==e.id):void 0;o=!!t,r=e.id?t:this.Ch[0],o&&!n.lo()&&this.current.set(this.Ch[0])}if(!r){if(this.Ch.length){const t=this.Ch[0];e.info.path=t.Et,e.info.lang=this.lang}this.Ch.push(r=new dt(this.$e,e))}if(s.gallery&&(s.gallery.wr(r),this.gallery=s.gallery),s.startView&&(r.state.view.set(e.settings.view=s.startView),r.ct&&r.engine.ready&&r.camera.setView(e.settings.view,{noRender:1})),this.lang||(this.lang="en"),!this.$e.ne&&(this.$e.ue(),!this.Zt.gl))try{this.Zt.Oe()}catch(a){return this.#Lh(a),r}if(!this.#Th){switch(this.canvas.hook(),this.#kh?.$settings?.theme){case"light":this.setAttribute("data-light-mode","");break;case"os":this.setAttribute("data-auto-scheme","")}this.#Th=1}W().then(()=>this.dispatchEvent(new CustomEvent("load",{detail:r})));const a=this.$e;return a.Nh=s.vector?.direction??0,a.$h=s.vector?.distanceX??0,a.Fh=s.vector?.distanceY??0,a.ae=!s.vector,!o||s.gridView&&n?.uo.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.ye.set(0),!r.$settings.micrioSplitLink||r.Ft||r.grid||W().then(()=>{this.$current===r&&(async(t,i,s,h)=>{if(yi.has(i))return;if(i.Ft||i.grid||(t=>{for(const i of yi.values())if(i.secondary===t)return 1;return 0})(i))return;const e=await R.u(s.micrioId);if(!e)return;const r=new dt(t.$e,e);t.Ch.push(r),t.$e.be(r),r.Bt=0,0!=h?.isPassive&&(r.Vt=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;if(0!=h?.isPassive&&(n=i.state.view.subscribe(t=>{t&&!r.camera.T&&r.camera.setView(t,{noLimit:1})})),s.markerId){let t;t=r.data.subscribe(i=>{if(!i)return;const h=i.markers?.find(t=>t.id===s.markerId);h?.view&&r.camera.flyToView(h.view,{isJump:1}),t?.()})}yi.set(i,{secondary:r,unsub:n}),t.events.zt("splitscreen-start",r)})(this,r,{micrioId:r.$settings.micrioSplitLink},{isPassive:!r.$settings.noFollow})}),r}close(t){this.$e.ke(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(E,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(D,(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(O,t=>null!=t?t.split(",").map(Number):void 0),t.static&&(t.noUI=t.skipMeta=1,t.hookEvents=0),i}get lang(){return X(this.Wt)}set lang(t){this.setAttribute("lang",t)}},Ti={down:[384,512,"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"],prev:[512,512,"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"],next:[512,512,"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"],up:[384,512,"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"],rotateLeft:[512,512,"M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"],rotateRight:[512,512,"M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"],menu:[448,512,"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"],chevronDown:[448,512,"M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"],error:[512,512,"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z"],subtitles:[512,512,"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z"],subtitlesOff:[512,512,"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z"],fullscreenLeave:[448,512,"M160 64c0-17.7-14.3-32-32-32S96 46.3 96 64l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z"],ellipsisVertical:[128,512,"M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z"],fullscreenEnter:[448,512,"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z"],linkExt:[512,512,"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z"],a11y:[512,512,"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z"],image:[448,512,"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z"],layerGroup:[512,512,"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z"],link:[576,512,"M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z"],zoomOut:[448,512,"M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"],pause:[384,512,"M48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 32zm224 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0z"],play:[448,512,"M91.2 36.9c-12.4-6.8-27.4-6.5-39.6 .7S32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184z"],playFilled:[512,512,"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"],zoomIn:[448,512,"M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z"],share:[512,512,"M307.8 18.4c-12 5-19.8 16.6-19.8 29.6l0 80-112 0c-97.2 0-176 78.8-176 176 0 113.3 81.5 163.9 100.2 174.1 2.5 1.4 5.3 1.9 8.1 1.9 10.9 0 19.7-8.9 19.7-19.7 0-7.5-4.3-14.4-9.8-19.5-9.4-8.8-22.2-26.4-22.2-56.7 0-53 43-96 96-96l96 0 0 80c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-9.2-9.2-22.9-11.9-34.9-6.9z"],video:[576,512,"M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z"],audio:[640,512,"M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z"],unmuted:[640,512,"M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z"],muted:[576,512,"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM367 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z"],close:[384,512,"M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"]},Si=new Set(["chevronDown","linkExt"]),zi=class extends vi{static tag="micrio-icon";#Ch="close";#Eh;jr(){this.#Ah(),this.#Dh()}Tt(t){t.name&&(this.#Ch=t.name),this.isConnected&&(this.#Ah(),this.#Dh())}#Ah(){const t=this.oo();this.#Eh=t?.$current?.$settings?.ui?.icons?.[this.#Ch]}#Dh(){const t=this.#Eh;if(t)return void(this.innerHTML=t);const i=Ti[this.#Ch];if(!i)return void this.replaceChildren();const s=((t,i)=>ct("svg",{...i,attrs:{...i?.attrs,viewBox:`0 0 ${t[0]} ${t[1]}`,fill:"currentColor"},children:[ct("path",{attrs:{d:t[2]}})]}))(i);Si.has(this.#Ch)&&s.classList.add("small"),this.replaceChildren(s)}};customElements.define(zi.tag,zi);var Li=class extends vi{static tag="micrio-button";#Oh;#$h;Jr(){const t=this.Zr;t.type!==this.#$h&&(this.#$h&&this.classList.remove(this.#$h),t.type&&this.classList.add(t.type),this.#$h=t.type)}Ee(){const t=this.Zr,i=`${t.type}|${t.icon?.src??""}|${t.title??""}|${t.disabled??""}|${t.active??""}|${t.className??""}|${t.href??""}|${t.blankTarget??""}|${t.noClick??""}`;if(!this.Kr(i))return;const s=!!t.href,h=s?"a":"button",e=`${t.className?t.className+" ":""}${t.active?"active":""}${t.noClick?" no-click":""}`.trim();this.#$h&&this.classList.remove(this.#$h),t.type&&this.classList.add(t.type),this.#$h=t.type,this.#Oh&&this.#Oh.remove();const r={title:t.title??"","aria-label":t.title??""};s&&(r.href=t.href,t.blankTarget&&(r.target="_blank"));const o=at(h,{className:e,attrs:r,props:{disabled:s?void 0:!!t.disabled},events:{...t.onclick&&{click:t.onclick},...t.onfocus&&{focus:t.onfocus},...t.onpointerdown&&{pointerdown:t.onpointerdown}},parent:this});this.#Oh=o,t.type?at("micrio-icon",{setProps:{name:t.type},parent:o}):t.icon&&at("img",{props:{src:t.icon.src,alt:"Icon"},parent:o});const n=[];for(const c of this.childNodes)c===o||c.nodeType!==Node.TEXT_NODE&&c.nodeType!==Node.ELEMENT_NODE||(n.push(c.textContent??""),c.remove());const a=n.join("").trim();a&&at("span",{textContent:a,parent:o})}};customElements.define(Li.tag,Li);var Pi=class extends vi{static tag="micrio-button-group"};customElements.define(Pi.tag,Pi);var Ii=class extends vi{static tag="micrio-error";Ee(){this.replaceChildren(),at("div",{parent:this,children:[at("micrio-icon",{setProps:{name:"error"}}),at("span",{textContent:this.Zr.message??"An unknown error has occurred"})]})}};customElements.define(Ii.tag,Ii);var Ci=class extends vi{static tag="micrio-controls";#Fh={};#Vh=0;#Bh=0;#Nh=0;#Rh=0;#Yh="";#Xh=()=>{const t=this.oo();t&&t.co.set(!X(t.co))};#Wh=()=>{const t=this.oo();if(t&&navigator.share&&t.$current?.$info){const i=t.$current.$data?.i18n?.[X(t.Wt)];navigator.share({title:t.$current.$info?.title,text:i?.description||`${t.$current.$info.width} x ${t.$current.$info.height} | Micrio`,url:location.href})}};#Gh=t=>{this.oo().lang=t};#Hh;#Zh;#jh;#Uh;#qh;#Kh;#Jh;#Qh;jr(){const t=this.oo();if(!t)return;const{state:i,Wt:s}=t,{tour:h,popup:e}=i,r=t=>{this.#Bh=!!t.ui?.controls?.cultureSwitch,this.#Nh=!!t.social,void 0!==t.fullscreen&&(this.#Rh=!!t.fullscreen),this.#te()};let o;t.$current&&r(t.$current.$settings),this.qr(t.current.subscribe(t=>{if(t){if(X(h)&&"steps"in X(h))return;o?.(),o=t.Pt.subscribe(r)}})),this.io(h,()=>this.#te()),this.io(e,()=>this.#te()),this.io(s,()=>this.#te()),this.io(t.co,()=>this.#te());const n=new MutationObserver(()=>this.#te());n.observe(t,{attributes:1,attributeFilter:["class"]}),this.qr(()=>n.disconnect()),this.#ie(),this.#te()}Tt(t){Object.assign(this.#Fh,t)}#ie(){this.#Vh||(this.#Hh=at("aside",{parent:this}),this.#Vh=1)}#te(){if(!this.#Vh||!this.isConnected)return;const t=this.oo();if(!t)return;const i=X(Mi),s=X(t.co),h=X(t.Wt),e=t.$current,r=!(e?.$settings)?.noZoom,o=X(t.state.popup),n=e?.$info,a=n?.revision?Object.keys(n.revision):[],c=t.canvas.$isMobile,l=!(!("micrioAudioContext"in window)&&!this.#Fh.hasAudio),u=this.#Bh&&a.length>1,d=this.#Nh&&"share"in navigator,f=l||u||d||r||this.#Rh,m=this.#Rh&&!!o&&c,p=r&&!m&&!(e?.grid&&"cells"==e?.$settings?.grid?.panZoom),g=l||p||this.#Rh;if(o&&c||!f)this.#Hh.replaceChildren();else{if(u&&!m){this.#Uh?.isConnected||(this.#Uh?.remove(),this.#qh=void 0,this.#Yh="",this.#Uh=at("menu",{attrs:{tabindex:"0"},children:[at("micrio-button"),this.#qh=at("div")]}),this.#Hh.prepend(this.#Uh)),this.#Uh.querySelector("micrio-button")?.Tt({type:"a11y",title:i.kr});const t=this.#qh,s=a.join(",");if(s!==this.#Yh){this.#Yh=s,t.replaceChildren();for(const i of a)at("micrio-button",{setProps:{title:di?.of(i)??i,onclick:()=>{this.#Gh(i)}},children:[i.toUpperCase()],parent:t})}const e=t.querySelectorAll(":scope > micrio-button");for(let i=0;i<e.length;i++){const t=e[i].querySelector("button, a");t&&t.classList.toggle("active",a[i].toLowerCase()===h.toLowerCase())}}else this.#Uh?.isConnected&&this.#Uh.remove();d&&!m?(this.#jh?.isConnected||(this.#jh?.remove(),this.#jh=at("micrio-button"),this.#Hh.insertBefore(this.#jh,this.#Kh?.isConnected?this.#Kh:null)),this.#jh.Tt({type:"share",title:i.Tr,onclick:this.#Wh})):this.#jh?.isConnected&&this.#jh.remove(),g?(this.#Kh?.isConnected||(this.#Kh?.remove(),this.#Kh=at("micrio-button-group",{parent:this.#Hh})),l?(this.#Zh?.isConnected||(this.#Zh?.remove(),this.#Zh=at("micrio-button"),this.#Kh.prepend(this.#Zh)),this.#Zh.Tt({type:s?"muted":"unmuted",title:s?i.zr:i.Sr,onclick:this.#Xh})):this.#Zh?.isConnected&&this.#Zh.remove(),p?this.#Jh?.isConnected||(this.#Jh?.remove(),this.#Jh=at("micrio-zoom-buttons"),this.#Qh?.isConnected?this.#Kh.insertBefore(this.#Jh,this.#Qh):this.#Kh.appendChild(this.#Jh)):this.#Jh?.isConnected&&this.#Jh.remove(),this.#Rh?(this.#Qh?.isConnected||(this.#Qh?.remove(),this.#Qh=at("micrio-fullscreen",{parent:this.#Kh})),this.#Qh.Tt({el:t})):this.#Qh?.isConnected&&this.#Qh.remove()):this.#Kh?.isConnected&&this.#Kh.remove()}}};customElements.define(Ci.tag,Ci);var Ei=class extends vi{static tag="micrio-zoom-buttons";#se;#he;jr(){const t=this.oo();if(!t)return;const i=()=>{const i=X(t.Ut).filter(t=>t.id);return 1===i.length?i[0]:t.$current};this.#se=at("micrio-button",{parent:this}),this.#se.Tt({type:"zoomIn",onclick(){return i()?.camera.zoomIn()}}),this.#he=at("micrio-button",{parent:this}),this.#he.Tt({type:"zoomOut",onclick(){return i()?.camera.zoomOut()}});const s=()=>{const t=i(),s=X(Mi);this.#se.Tt({title:s.vr,disabled:t?.camera.isZoomedIn()??1}),this.#he.Tt({title:s.yr,disabled:t?.camera.isZoomedOut()})};this.qr(t.current.subscribe(()=>s())),this.qr(t.Ut.subscribe(()=>s()));const h=()=>s();t.St.push(h),this.qr(()=>{const i=t.St.indexOf(h);0>i||t.St.splice(i,1)}),s()}};customElements.define(Ei.tag,Ei);var Ai=class{constructor(...t){}destroy(){}},Di=class extends vi{static tag="micrio-minimap";#Fh={image:null};#ee=null;#re;#oe;#ne;#ae;jr(){this.#ce()}Tt(t){void 0!==t.image&&t.image!==this.#Fh.image&&(this.#Fh.image=t.image,this.isConnected&&(this.#ne?.(),this.replaceChildren(),this.#ee=null,this.#ce()))}#ce(){const{image:t}=this.#Fh;if(!this.oo()||!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.#ee)return;const h=this.#ee;h.clearRect(0,0,n,a),clearTimeout(this.#ae),this.classList.remove("hidden"),this.#ae=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=H(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.#oe)return;const i=Math.max(0,Math.min(1,(t.clientX-this.#oe.left)/this.#oe.width)),h=Math.max(0,Math.min(1,(t.clientY-this.#oe.top)/this.#oe.height));this.#re?s.setView([i-this.#re.width/2,h-this.#re.height/2,this.#re.width,this.#re.height]):s.setCoo(i,h)},m=()=>{window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",m),this.#re=void 0},p=at("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.#oe=p.getBoundingClientRect();const i=s.getView();i&&(this.#re={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*(pt.firefox?50:1))},{passive:1}),this.#ee=p.getContext("2d"),this.#ee&&(this.#ee.lineWidth=1,this.#ee.strokeStyle="white"),l&&t.thumbSrc&&fetch(t.thumbSrc).then(t=>t.blob()).then(i=>{u=URL.createObjectURL(i),p.style.backgroundImage=`url('${u}')`,d(X(t.state.view))}),this.#ne?.(),this.#ne=t.state.view.subscribe(d),this.qr(this.#ne)}};customElements.define(Di.tag,Di);var Oi=class{constructor(...t){}async setup(){}goto(t){}animateTo(t){}destroy(){}},$i=class{#Gs;#Ri;#le;#ue;#de;#fe;#me;#pe=-1;#ge;#we=0;#Me=0;#_e=0;#ve=0;#ye=0;#be=0;#ke=0;constructor(t,i,s,h,e,r,o){this.#Gs=t,this.#Ri=i,this.#le=s,this.#ue=h,this.#de=e,this.#fe=r,this.#me=o}async setup(t,i,s){this.#pe=t,s.se=ot("ease-out"),await Promise.allSettled(this.#Ri.map(t=>s.Oh(t,i)));const h=this.#ue[t]??0;for(let e=0;e<this.#Ri.length;e++){const t=this.#Ri[e];if(!t.camera)continue;t.camera.setCoverLimit(0);const i=[this.#ue[e]-h,0,this.#de[e],1];t.camera.setArea(i,{direct:1,noDispatch:1}),t.camera.setView([0,0,1,1])}this.#Ri[t]?.visible.set(1)}#xe(){return!!this.#Ri[this.#pe]?.camera?.isZoomedOut()}animateTo(t,i,s,h){return new Promise(e=>{this.#pe=h;const r=this.#Ri;if(!r[t])return void e();const o=0===s?0:i?.125:.2,n=r[h>-1&&h!==t?h:-1],a=o>0&&n?.camera&&!n.camera.isZoomedOut(),c=r[0]?.engine;if(!c)return void e();const l=this.#ue[t],u=()=>{c.ie=o,c.Bh=0;for(let t=0;t<r.length;t++){const i=r[t];if(!i?.camera)continue;const s=i.opts.area??[0,0,1,1],h=s[0],e=s[0]+s[2]>-1&&2>h,n=this.#ue[t]-l,a=this.#de[t],c=n+a>-1&&1>n,u=Math.abs(s[0]-n)>1e-4||Math.abs(s[2]-a)>1e-4,d=o>0&&u&&(e||c);i.camera.setArea([n,0,a,1],{direct:!d,noDispatch:1})}r[t]?.camera?.setView([0,0,1,1]),c.render(),this.#Te(e)};a?n.camera.flyToCoverView({duration:600*o,speed:2}).then(u).catch(u):u()})}#Te=t=>{const i=()=>{for(const t of this.#Ri)if(t?.canvas?.Xh())return void requestAnimationFrame(i);t()};requestAnimationFrame(i)};#Se=()=>{this.#ze(),this.#ge=void 0,this.#ye=0,this.#Gs.removeAttribute("data-panning"),this.#Gs.Te=0};handlePointerDown=t=>{0===t.button&&(void 0===this.#ge?this.#xe()&&(this.#ge=t.pointerId,this.#we=this.#Me=t.clientX,this.#ke=t.clientY,this.#_e=t.timeStamp,this.#ve=0,this.#ye=0,this.#be=0,window.addEventListener("pointermove",this.#Le),window.addEventListener("pointerup",this.#Pe),window.addEventListener("pointercancel",this.#Pe)):t.pointerId!==this.#ge&&(this.#ye&&this.#fe(this.#me()),this.#Se()))};#Le=t=>{if(t.pointerId!==this.#ge)return;const i=t.clientX-this.#we,s=t.clientY-this.#ke;if(!this.#ye){if(6>Math.abs(i)&&6>Math.abs(s))return;if(this.#be=Math.abs(i)>Math.abs(s),!this.#be)return void this.#Pe(t);this.#ye=1,this.#Gs.setAttribute("data-panning",""),this.#Gs.Te=1,this.#Gs.canvas.element.setPointerCapture(t.pointerId)}const h=Math.max(1,t.timeStamp-this.#_e);this.#ve=(t.clientX-this.#Me)/h,this.#Me=t.clientX,this.#_e=t.timeStamp;const e=i/(this.#Gs.offsetWidth||1);this.#Ie(e)};#Pe=t=>{if(t.pointerId!==this.#ge)return;const i=this.#ye;if(this.#Se(),!i)return;try{this.#Gs.canvas.element.releasePointerCapture(t.pointerId)}catch(r){}const s=this.#Gs.offsetWidth||1,h=(t.clientX-this.#we)/s;let e=this.#me();-.3>h||-.5>this.#ve?e=Math.min(this.#le.length-1,this.#me()+1):(h>.3||this.#ve>.5)&&(e=Math.max(0,this.#me()-1)),this.#fe(e)};#ze=()=>{window.removeEventListener("pointermove",this.#Le),window.removeEventListener("pointerup",this.#Pe),window.removeEventListener("pointercancel",this.#Pe)};#Ie(t){const i=this.#Ri,s=this.#me(),h=this.#le.length,e=0===s&&t>0||s===h-1&&0>t?Math.sign(t)*Math.sqrt(Math.abs(t))*.3:t,r=this.#le[s]?.[0]??0,o=this.#ue[r],n=i[0]?.engine;if(n&&void 0!==o){for(let t=0;t<i.length;t++){const s=i[t];if(!s?.camera)continue;const h=this.#ue[t]-o+e,r=this.#de[t];h+r>-1&&1>h&&s.camera.setArea([h,0,r,1],{direct:1,noDispatch:1})}n.render()}}destroy(){this.#Gs.removeAttribute("data-panning"),this.#Gs.Te=0,this.#ze()}},Fi=class{do=Promise.resolve();constructor(...t){}goto(t){return Promise.resolve()}zoom(t){}isZoomedIn(){return 0}rotateView(t){}fo(t){}},Vi=class extends vi{static tag="micrio-gallery";#Fh={};#Ce=-1;#pe=0;#Ri=[];#le=[];#ue=[];#de=[];#Ee;#Ae=null;#De=null;#Oe=null;#$e=0;#Fe=-1;#Ve=0;#Be=0;#Ne=-1;#Re=null;#Ye;#Xe;#We=new Map;#Ge=0;#He;#Ze=0;#je=1;async jr(){const t=this.oo();if(!t)return;const i=t.$current;if(!i)return;if(i.$settings?.omni)return this.#Ye=new Oi(t,i,this,(t,i,s,h,e,r)=>this.#Ue(t,i,s,h,e,r)),void(await this.#Ye.setup());const s=this.#Fh.controller;s&&this.#qe(t,i,s)}Tt(t){void 0!==t.controller&&(this.#Fh.controller=t.controller)}#Ke(t){if(!this.#Ae)return 0;const i=this.#Ae.clientWidth;return 16+t/Math.max(1,this.#le.length-1)*(i-32)}#Je(t){const i=this.#le[t];return i&&i.length>1?`${i[0]+1}-${i[i.length-1]+1}`:String(t+1)}#Qe(t){const i=this.#le.findIndex(i=>i.includes(t));return 0>i?0:i}async#tr(t,i=0,s=150,h=0){const e=this.#Ri;if(!e.length||0>t)return;const r=Math.round(Math.max(0,Math.min(this.#le.length-1,t))),o=this.#le[r]?.[0]??0,n=h||r!==this.#Ce;if(this.#Ce=r,this.#pe=o,n&&this.#ir(),this.#He)await this.#He.goto(r);else if(this.#Xe)await this.#Xe.animateTo(o,i,s,this.#pe);else if(n){const t=(this.#le[r]?.length??1)-1;this.#Ee.canvas?.Vi(o,t),this.#Ee.camera.setView([0,0,1,1])}return this.#Ee.album.hooked=1,e[o]}#ir(){this.#sr(this.#pe);const t=this.oo(),i=(this.#le[this.#Ce]??[]).map(t=>this.#Ri[t].id);t?.events.zt("gallery-show",i),this.#Xe&&this.#Ee.album?.currentImage?.set(this.#Ri[this.#pe]),this.#hr()}#er=t=>{if(t.preventDefault(),t.stopPropagation(),this.#Ve||(this.#Be="button"in t)&&0!==t.button||!this.#Ae)return;this.#Re=this.#Ae.getBoundingClientRect();const i=this.oo();if(i){if(i.Te=this.#Ve=1,this.setAttribute("data-dragging",""),this.#Fe=-1,this.#Be&&"button"in t){this.#Ne=t.pointerId;try{this.#Ae.setPointerCapture(t.pointerId)}catch(s){}window.addEventListener("pointercancel",this.#rr)}window.addEventListener(this.#Be?"pointermove":"touchmove",this.#or),window.addEventListener(this.#Be?"pointerup":"touchend",this.#rr),this.#or(t)}};#nr(t){const i=this.#Re??this.#Ae.getBoundingClientRect(),s=this.#le.length,h="button"in t?t.clientX:t.touches[0].clientX,e=Math.min(1,Math.max(0,(h-i.left-16)/(i.width-32)));return[e,Math.max(0,Math.min(s-1,Math.round(e*Math.max(1,s-1))))]}#or=t=>{const[i,s]=this.#nr(t);this.#$e=16+i*(this.#Re.width-32),s!==this.#Ce&&this.#tr(s,1)};#ar=t=>{this.#Ve||(this.#Fe=this.#nr(t)[1]),this.#hr()};#rr=()=>{if(window.removeEventListener(this.#Be?"pointermove":"touchmove",this.#or),window.removeEventListener(this.#Be?"pointerup":"touchend",this.#rr),this.#Be){window.removeEventListener("pointercancel",this.#rr);try{this.#Ae?.releasePointerCapture(this.#Ne)}catch(i){}this.#Ne=-1}this.#Ve=0,this.removeAttribute("data-dragging");const t=this.oo();t&&(t.Te=0,this.#tr(this.#Ce))};#Ue(t,i,s,h,e,r){if(!i||!e?.ready)return;const o=self.requestIdleCallback??self.requestAnimationFrame;for(let n=-s;s>=n;n++){if(!n)continue;let s=t+n;for(;0>s;)s+=i;for(;s>=i;)s-=i;const a=h(s);a?.thumbSrc&&!this.#We.has(a.thumbSrc)&&this.#We.set(a.thumbSrc,o(()=>e.ge(a.baseTileIdx,a.thumbSrc,0,{force:r})))}}#sr(t){const i=this.#Ri;if(!i.length||1>=i.length)return;const s=i[0].engine,h=!!i[0]?.$settings?.gallery?.archive;this.#Ue(t,i.length,this.#Ge,t=>i[t]?{baseTileIdx:i[t].At,thumbSrc:i[t].thumbSrc}:void 0,s,h)}#cr=t=>{switch(t.key){case"PageUp":case"ArrowLeft":this.#tr(this.#Ce-1,1);break;case"PageDown":case"ArrowRight":this.#tr(this.#Ce+1,1);break;case"Home":this.#tr(0);break;case"End":this.#tr(this.#le.length-1);break;default:return}};async#qe(t,i,s){const h=[...s.lr];if(!h.length)return;this.#Ri=h,this.#Ee=i;const e=s.gr();this.#le=e.pages,this.#ue=[],this.#de=[];for(const[f,m]of e.pages.entries()){const t=m.length;for(let i=0;t>i;i++)this.#ue[m[i]]=f+i/t,this.#de[m[i]]=1/t}const r=s.cr.startId?Math.max(0,h.findIndex(t=>t.id===s.cr.startId)):0,o=e.pages.findIndex(t=>t.includes(r)),n=0>o?0:o;this.#Ge="requestIdleCallback"in self?100:50;const a=t.$e,c=i,l="swipe"===s.cr.type,u=this.#Ze="book3d"===s.cr.type;this.#je=0!=s.cr.settings?.allowRotation,l&&(this.#Xe=new $i(t,h,this.#le,this.#ue,this.#de,t=>this.#tr(t),()=>this.#Ce)),this.#Ce=n,this.#lr(),this.#hr();const d=this;if(c.album={numPages:e.numPages,get currentIndex(){return d.#Ce},info:c.$settings.gallery,prev(){return d.#tr(d.#Ce-1)},next(){return d.#tr(d.#Ce+1)},goto(t){return d.#tr(d.#Qe(t)).then(()=>d.#Ri[t])},...d.#Xe?{currentImage:Y(h[r])}:{}},this.#Xe)await this.#Xe.setup(r,c,a),this.#pe=r,this.#Ce=n,this.#ir(),c.album.hooked=1;else if(u)this.#ur(c,s.ur,r,s.cr);else{await Promise.allSettled(h.map(t=>("state"in t&&!("image"in t)&&(t.camera=c.camera),a.Kt(t,c,{opacity:0,asImage:"camera"in t}))));const t=this.#le[n],i=(t?.length??1)-1;c.canvas?.Vi(t[0],i),c.camera.setView([0,0,1,1]),this.#Ce=n,this.#ir(),c.album.hooked=1}this.#Xe&&h.length>1&&(t.canvas.element.addEventListener("pointerdown",this.#Xe.handlePointerDown),this.qr(()=>t.canvas.element.removeEventListener("pointerdown",this.#Xe.handlePointerDown))),window.addEventListener("keydown",this.#cr),this.qr(()=>window.removeEventListener("keydown",this.#cr))}#ur(t,i,s,h){t.album.hooked=1;const e=t.engine.micrio,r=!!h.settings?.individualAspects,o=this.#He=new Fi({mo:e.canvas.element,lr:i,po:s,wo:h.settings?.lighting,Mo:r,_o:r,vo:this.#je,yo:t=>this.#tr(t),bo:t=>{for(const i of this.#Ri){const s=t.find(t=>t.id==i.id);i.visible.set(!!s),s&&(i.camera.C||o.fo(i),i.state.view.update(()=>s.bounds))}}});e.events.unhookScroll(),e.events.unhookPinch(),t.camera.P=t=>o.zoom(t),t.camera.I=()=>!!o.isZoomedIn(),this.#He.do.then(()=>{t.ct=1,this.#ir()})}#lr(){const t=this.#le.length;if(!this.#Ri.length||1>=t||this.querySelector("ul"))return;const i=X(Mi),s=t>24,h=s?Math.max(1,Math.ceil(t/24)):1,e=this.#Ce;this.#De=at("micrio-button",{parent:this,setProps:{type:"prev",title:i.Fr,disabled:0>=e,onclick:()=>this.#tr(this.#Ce-1)}}),this.#Ze&&this.#je&&at("micrio-button",{parent:this,setProps:{type:"rotateLeft",title:i.Br,onclick:()=>this.#He?.rotateView(-1)}});const r=at("ul",{className:s?"dense":"",parent:this,events:{pointerdown:this.#er,pointermove:this.#ar,pointerleave:()=>{this.#Fe=-1,this.#hr()}}});this.#Ae=r,r.addEventListener("touchstart",this.#er,{passive:0}),at("span",{parent:r,children:[at("span")]}),at("span",{parent:r,children:Array.from({length:t},(i,e)=>s&&e%h!==0&&e!==t-1?null:at("span",{attrs:s&&e%(5*h)==0?{"data-major":""}:{},style:{left:(t>1?e/(t-1)*100:50)+"%"}}))}),at("button",{parent:r,props:{role:"slider",tabIndex:0},attrs:{"aria-label":"Gallery position","aria-valuemin":"1","aria-valuemax":String(t)}}),at("span",{parent:r}),this.#Oe=at("micrio-button",{parent:this,setProps:{type:"next",title:i.Vr,disabled:e>=t-1,onclick:()=>this.#tr(this.#Ce+1)}}),this.#Ze&&this.#je&&at("micrio-button",{parent:this,setProps:{type:"rotateRight",title:i.Nr,onclick:()=>this.#He?.rotateView(1)}})}#hr(){const t=this.#le.length;if(!t)return;const i=this.#Ce,s=t>24,h=s?Math.max(1,Math.ceil(t/24)):1,e=t>1?i/(t-1)*100:0,r=this.#Ae&&!this.#Ve?this.#Ke(i):this.#$e,o=this.querySelector("ul > :first-child > span");o&&(o.style.width=`${e}%`);const n=this.querySelectorAll("ul > :nth-child(2) > span"),a=[];for(let d=0;t>d;d++)s&&d%h!==0&&d!==t-1&&d!==i||a.push(d);n.forEach((t,s)=>{const h=a[s];void 0!==h&&(t.toggleAttribute("data-active",h===i),t.toggleAttribute("data-hover",h===this.#Fe))});const c=this.querySelector("ul > button");c&&(c.style.left=`${r}px`,c.classList.toggle("dragging",this.#Ve),c.setAttribute("aria-valuenow",String(i+1)));const l=this.querySelector("ul > button + span");if(l){l.style.left=`${r}px`,l.classList.toggle("dragging",this.#Ve);const t=this.#le.reduce((t,i)=>t+i.length,0);l.textContent=this.#Je(i)+(s?` / ${t}`:"")}let u=this.querySelector('[data-part="hover-label"]');0>this.#Fe||this.#Fe===i||this.#Ve?u?.remove():(u||(u=at("span",{attrs:{"data-part":"hover-label"},parent:this.querySelector("ul")??void 0})),u.style.left=(t>1?this.#Fe/(t-1)*100:50)+"%",u.textContent=this.#Je(this.#Fe)),this.#De&&this.#De.querySelector("button")?.toggleAttribute("disabled",0>=i),this.#Oe&&this.#Oe.querySelector("button")?.toggleAttribute("disabled",i>=t-1)}Ur(){this.#Ye?.destroy(),this.#Xe?.destroy()}};function Bi(t,i){if(i)for(let s,h=0;h<i.length;h++)if(i[h].id==t||(s=Bi(t,i[h].children)))return s??i[h]}customElements.define(Vi.tag,Vi);var Ni=class extends vi{static tag="micrio-main";#Fh={};#M;#oh;#dr=0;#fr;#mr;#pr=new Map;#k=new Map;#gr;#wr(){this.#gr?.destroy(),this.#gr=void 0}#Mr=["audio","media","logo","orgLogo","details","toolbar","grid","gallery","controls","embeds","markers","popup","tour","popover","minimap","error","progress"];#_r=new Map;#vr(t){for(let i=this.#Mr.indexOf(t)+1;i<this.#Mr.length;i++){const t=this.#_r.get(this.#Mr[i]);if(t?.isConnected)return t}return null}#yr(t,i){if(i.isConnected)return;const s=this.#vr(t);s?this.insertBefore(i,s):this.appendChild(i)}#br(t,i,s,h){const e=this.#_r.get(t);if(i){if(e?.isConnected)return void h?.(e);e?.remove();const i=s();this.#_r.set(t,i),this.#yr(t,i)}else e?.isConnected&&(e.remove(),this.#_r.set(t,null))}jr(){const t=this.oo();if(!t)return;const i=Y(X(t.co)?0:1);this.eo("volume",i),this.qr(t.co.subscribe(t=>i.set(t?0:1))),this.eo("mediaPaused",Y(0)),"markers"==t.getAttribute("data-ui")&&(this.#Fh.noHTML=1);const s=[];this.qr(t.current.subscribe(i=>{if(!i)return;this.#M=i.$info,this.#oh=void 0,this.#dr=1,this.#oh=i.Pt,this.#oh&&this.qr(this.#oh.subscribe(()=>this.#kr())),!this.#fr&&R._()?.logo&&(this.#fr=R._()),this.#kr(),this.isConnected&&this.#te();const h=i.$data;if(h&&0>s.indexOf(i.id)){s.push(i.id);const e=i.$settings.start;e&&W().then(W).then(()=>{if(!(X(t.state.popover)||X(t.state.marker)||X(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=Bi(e.id,h.pages);i&&t.state.popover.set({contentPage:i,showLangSelect:1});break}}})}this.#kr()})),this.qr(t.state.tour.subscribe(()=>{const i=this.#_r.get("subtitles");i&&i.Tt?.({raised:!!X(t.state.tour)})}));for(const h of[t.Ut,t.state.popup,t.state.popover,t.state.tour,t.state.marker])this.qr(h.subscribe(()=>this.#kr()));this.qr(t.Wt.subscribe(()=>this.#kr())),this.#kr()}Tt(t){Object.assign(this.#Fh,t),this.isConnected&&this.#kr()}#xr=0;#kr(){this.#xr||(this.#xr=1,requestAnimationFrame(()=>{this.#xr=0,this.isConnected&&this.#te()}))}#te(){const t=this.oo();if(!t)return;const i=X(t.state.tour),s=X(t.state.marker),h=X(t.state.popup),e=X(t.state.popover),r=this.#M,o=this.#oh?X(this.#oh):void 0,n=t.$current?X(t.$current.data):void 0,a=this.#Fh.error,c=this.#Fh.loadingProgress??1,l=this.#Fh.noHTML??0,u=this.#Fh.noLogo??l,d=t.canvas.$isMobile,f=t.$current?.D,m=f?o.i.video:void 0,p=m?.src,g="book3d"==t.$current?.album?.info?.type;this.classList.toggle("is3d",f||g);const w=n?.markers?.filter(t=>!!t.positionalAudio),M=!!n?.music?.items.length||!!w?.length,_=i||s,v=!l||"markers"==t.getAttribute("data-ui"),y=!(u||r&&l||o?.noLogo||s||h),b=!l&&y&&!o?.noOrgLogo&&!!this.#fr&&!e,k=!l&&!!r&&!o?.noControls,x=!l&&!_&&!!o?.showInfo,T=!l&&this.#dr&&!o?.noToolbar,S=!(l||!r||0==o?.minimap||o?.noControls||!t.$current?.thumbSrc||h&&d);M&&n&&r&&t.$current?this.#gr||(this.#gr=new Ai(t,t.$current),this.qr(()=>this.#wr())):this.#wr(),this.#br("media",!!p&&!!r,()=>at("div")),this.#br("logo",y,()=>at("micrio-logo")),this.#br("details",x&&!!n,()=>at("micrio-details",{setProps:{info:this.#M,data:n}})),this.#br("toolbar",T,()=>at("micrio-toolbar"));const z=X(t.Ut);this.#Tr(this.#pr,"micrio-markers","markers",z,v,i=>!(i.opts?.isEmbed||!i.$data?.markers?.length&&!t.spaceData)),this.#Tr(this.#k,"micrio-image-embeds","embeds",z,"false"!=t.getAttribute("data-embeds"),t=>!!t.$data?.embeds?.length),this.#br("controls",k,()=>at("micrio-controls",{setProps:{hasAudio:M||!(!p||!m||m.muted)}})),this.#br("orgLogo",b&&!!this.#fr,()=>at("micrio-logo-org",{setProps:{organisation:this.#fr}}));const L=t.$current?.grid;L&&this.#yr("grid",L),this.#br("gallery",!!o?.omni||!("grid"===t.gallery?.cr?.type||!t.gallery),()=>at("micrio-gallery",{setProps:{controller:t.gallery}})),this.#br("minimap",S,()=>at("micrio-minimap",{setProps:{image:t.$current}}),i=>i.Tt?.({image:t.$current}));const P=X(t.state.popup),I=null!=P&&"popover"!==P.popupType,C=this.#_r.get("popup");if(I?(C?.isConnected&&(P.id!==this.#mr||C.classList.contains("destroying"))&&(C.remove(),this.#_r.set("popup",null)),this.#mr=P.id,this.#_r.get("popup")?.isConnected||this.#_r.set("popup",at("micrio-marker-popup",{setProps:{marker:P},parent:this}))):C?.isConnected||(this.#_r.set("popup",null),this.#mr=void 0),this.#br("tour",!!i,()=>at(i&&"steps"in i&&i.isSerialTour?"micrio-serial-tour":"micrio-tour",{setProps:{tour:i,noHTML:l}})),this.#br("popover",!!e,()=>at("micrio-popover",{setProps:{popover:e}})),this.#br("error",!!a,()=>at("micrio-error",{setProps:{message:a}})),this.#br("progress",1>c,()=>at("micrio-progress-circle",{setProps:{progress:c}})),1>c){const t=this.#_r.get("progress");t?.isConnected&&t.Tt?.({progress:c})}}#Tr(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)for(const a of o){if(t.has(a.id))continue;const h=at(i,{setProps:{image:a}});t.set(a.id,h);const e=this.#vr(s);e?this.insertBefore(h,e):this.appendChild(h)}else{for(const i of t.values())i.remove();t.clear()}this.#_r.set(s,t.values().next().value??null)}};customElements.define(Ni.tag,Ni),xi.VERSION=L,customElements.define("micr-io",xi),console.info("%c◈%c Micrio %cv"+L+" - https://micr.io/ %c| New in version 7: https://doc.micr.io/client/v7/changes.html","color: #00d4ee","color: #c5ff5b","color: inherit","color: #888")}();
package/micrio.min.d.ts CHANGED
@@ -2300,8 +2300,10 @@ declare module '@micrio/client' {
2300
2300
  * complement of "the whole spread fits the viewport": when every currently
2301
2301
  * visible image shows its full texture (`[0, 0, 1, 1]` bounds) the view is
2302
2302
  * zoomed out, and any image cut off by the viewport means it is zoomed in.
2303
- * Based on the last rendered frame's on-screen bounds, so it stays accurate
2304
- * after zooming back out.
2303
+ * A page that is part of the current view but entirely out of the viewport
2304
+ * (e.g. one page of a spread fills the screen while the other is off-screen)
2305
+ * also counts as zoomed in. Based on the last rendered frame's on-screen
2306
+ * bounds, so it stays accurate after zooming back out.
2305
2307
  */
2306
2308
  isZoomedIn(): boolean;
2307
2309
  setLightingPreset(name: string): void;