@micrio/client 7.0.4 → 7.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/micrio.min.js +2 -2
- package/package.json +1 -1
package/micrio.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Micrio Client 7.0.
|
|
1
|
+
/* Micrio Client 7.0.5
|
|
2
2
|
* Copyright (C) 2015 - present Q42 Internet B.V., Micrio <https://micr.io>
|
|
3
3
|
*
|
|
4
4
|
* GitHub: https://github.com/Q42/Micrio.Client
|
|
@@ -24,4 +24,4 @@
|
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
const _style=document.createElement('style');_style.className='micrio-interface';_style.textContent=`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-grid{grid-gap:0;will-change:transform;transform-origin:0 0;--translate:none;--scale:1;width:100%;height:100%;transform:var(--translate) scale3d(var(--scale),var(--scale),1);grid-auto-flow:dense;display:grid;position:fixed;top:0;left:0}micrio-grid>button{cursor:pointer;pointer-events:auto;background:0 0;border:none;grid-area:auto/auto/span 1/span 1;margin:0;padding:0}:is(micrio-grid>button.focussed,micrio-grid.grid-pan-zoom,micrio-grid.grid-pan-zoom>button,micrio-grid.grid-cells-hidden){pointer-events:none}micrio-grid.grid-cells-hidden>button{display:none}micrio-grid .close{top:var(--micrio-border-margin);right:var(--micrio-border-margin);z-index:2;pointer-events:auto;display:block;position:absolute}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[data-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-tour-active]) :is(micrio-controls aside,micrio-minimap canvas),micr-io:not([data-zoomed]) micrio-minimap canvas:not(.fixed),micr-io:is([data-zoomed],[data-idle]) 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)}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-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-progress-circle{pointer-events:none;z-index:10;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}micrio-progress-circle svg{display:block}micrio-progress-circle circle{transition:stroke-dashoffset .25s}micrio-logo a{top:calc(var(--micrio-border-margin) * 2);left:calc(var(--micrio-border-margin) * 2);z-index:2;cursor:pointer;--micrio-hide:translateX(-100%);width:22px;height:22px;transition:transform .25s,opacity .25s;display:block;position:absolute}micrio-logo a:hover{transform:rotate(-90deg)}micrio-logo a:before,micrio-logo a:after{content:"";will-change:transform;box-sizing:unset;display:block;position:absolute;transform:rotate(45deg)}micrio-logo a:before{border:3px solid #00d4ee;width:16px;height:16px}micrio-logo a.loading:before{animation:1s ease-out infinite micrio-logo-spin}micrio-logo a:after{background:#c5ff5b;outline:1px solid #c5ff5b;width:6px;height:6px;top:8px;left:8px}micrio-logo a.loading:after{animation:.5s ease-out infinite micrio-logo-spin}@keyframes micrio-logo-spin{0%{transform:rotate(45deg)}to{transform:rotate(135deg)}}micrio-article a{color:var(--micrio-color)}micrio-article img{max-width:100%}micrio-subtitles{bottom:calc(3 * var(--micrio-border-margin));text-align:center;color:var(--micrio-color);pointer-events:none;z-index:6;width:100vw;transition:bottom .25s;position:fixed;left:50vw;transform:translate(-50%)}micr-io[data-tour-active]:not([data-idle]) micrio-subtitles{bottom:calc(3 * var(--micrio-border-margin) + var(--micrio-button-size))}micrio-subtitles p{background-color:var(--micrio-background);-webkit-box-decoration-break:clone;box-decoration-break:clone;white-space:pre-wrap;text-shadow:2px 2px 1px #0005;font-size:2.5em;line-height:inherit;margin:.5em 0;padding:0 14px;display:inline}@media (width<=640px){micrio-subtitles p{white-space:normal;width:95vw;font-size:1.4em}}micrio-details details{bottom:var(--micrio-border-margin);left:var(--micrio-border-margin);padding:var(--micrio-popup-padding);-webkit-user-select:text;user-select:text;white-space:normal;box-sizing:border-box;--micrio-hide:translateY(100%);max-width:410px;font-size:.9em;transition:opacity .25s,transform .25s;position:absolute}micrio-details summary{cursor:pointer}micrio-details summary::-webkit-details-marker{display:none}micrio-details small{font-style:italic;font-weight:400;display:block}micrio-details details>*{text-overflow:ellipsis;margin:0;overflow:hidden}micrio-details a{color:var(--micrio-color-hover,inherit)}@media (width<=600px){micrio-details details{max-width:calc(100% - var(--micrio-button-size) - 3 * var(--micrio-border-margin));z-index:5}}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-logo-org a{top:calc(var(--micrio-border-margin) * 2);right:calc(var(--micrio-border-margin) * 2);z-index:1;--micrio-hide:translateX(100%);transition:transform .25s,opacity .25s;display:block;position:absolute}micrio-logo-org img{max-height:64px;display:block}micrio-waypoint{transform-style:preserve-3d;--micrio-bb:var(--micrio-button-background);--micrio-bbh:var(--micrio-button-background-hover);width:0;height:0;display:block;position:absolute;top:50%;left:50%}micrio-waypoint>micrio-button>:is(button,a){--micrio-button-background:var(--micrio-waypoint-background,var(--micrio-bb));--micrio-button-background-hover:var(--micrio-waypoint-background-hover,var(--micrio-bbh));--micrio-button-size:var(--micrio-waypoint-size);--micrio-border-radius:var(--micrio-waypoint-border-radius,100%);--micrio-icon-size:var(--micrio-waypoint-icon-size,calc(var(--micrio-button-size) - 50px));pointer-events:all;border:var(--micrio-waypoint-border-size,var(--micrio-marker-border-size)) solid var(--micrio-waypoint-border-color,var(--micrio-marker-border-color));margin:0;transition:background-color .25s,opacity .25s,border-color .25s,transform .25s;transform:translate(-50%,-50%)scale(.5)}micrio-waypoint>micrio-button>:is(button,a)>svg{pointer-events:none;margin:0 auto}micrio-waypoint:hover>micrio-button>:is(button,a){transition:background-color .25s,opacity .25s,transform .25s;transform:translate(-50%,-50%)scale(.6)}micrio-waypoint.clicked>micrio-button>:is(button,a){animation:.75s infinite alternate micrio-waypoint-pulse}@keyframes micrio-waypoint-pulse{0%{transform:translate(-50%,-50%)scale(.5)}to{transform:translate(-50%,-50%)scale(.75)}}micrio-marker-content{padding:var(--micrio-popup-padding);-webkit-user-select:text;user-select:text;box-sizing:border-box;text-align:var(--micrio-text-align);max-height:calc(100cqh - 2 * var(--micrio-border-margin));min-height:var(--micrio-button-size);padding-bottom:0;display:block;position:relative;overflow-y:auto}micrio-marker-content h1{margin:0 0 1.25em;font-size:1.5em;font-weight:600}micrio-marker-content h1:only-child{margin-bottom:var(--micrio-popup-padding)}micrio-marker-content p{white-space:pre-line}micrio-marker-content micrio-media{margin:calc(-1 * var(--micrio-popup-padding));--micrio-background:transparent;width:auto;margin-bottom:0}micrio-marker-content micrio-media+micrio-media{margin-top:0}micrio-marker-content button{margin:0 calc(-1 * var(--micrio-popup-padding)) var(--micrio-popup-padding) calc(-1 * var(--micrio-popup-padding));padding:0}micrio-marker-content button:disabled{cursor:default}micrio-marker-content figcaption{margin-bottom:var(--micrio-popup-padding);text-align:center;padding:10px;font-size:.9em;font-style:italic}micrio-marker-content section{margin-bottom:var(--micrio-popup-padding);grid-template-columns:repeat(auto-fit,minmax(100px,1fr));justify-items:center;gap:5px;display:grid}micrio-marker-content section button{color:inherit;cursor:pointer;border:none;width:100%;margin:0;display:block}micrio-marker-content section figure{margin:0;padding:0}micrio-marker-content section img{object-fit:cover;width:100%;display:block}micrio-marker-content section button:only-child img{object-fit:contain;max-height:min(50cqh,400px)}@media (width<=500px){micrio-marker-content section{float:right;width:100px;margin-left:var(--micrio-border-margin);display:block}micrio-marker-content section>button:not(:first-child),micrio-marker-content section figcaption{display:none}micrio-marker-content:not(:has(micrio-article)) section{float:none;width:100%;margin-left:0}micrio-marker-content:not(:has(micrio-article)) section button{margin:0}micrio-marker-content:not(:has(micrio-article)) section img{object-fit:contain;max-height:min(50cqh,400px)}}micrio-menu{margin:0;padding:0;transition:background .2s,box-shadow .2s}micrio-menu>:is(a,button){cursor:pointer;color:inherit;text-shadow:inherit;box-sizing:border-box;text-align:center;background:0 0;border:none;border-radius:0;padding:0 24px;font-family:inherit;font-size:.9em;text-decoration:none;display:block}@media (width<=500px){micrio-menu{font-size:1em}micrio-menu>:is(a,button){text-align:left;align-items:center;gap:8px;width:100%;margin:0;padding:14px 20px;font-size:1em;display:flex}micrio-menu>:is(a,button) strong{flex:1}micrio-menu>div{display:none}micrio-menu.opened>div{display:block}micrio-menu>div>micrio-menu>:is(a,button){padding-left:40px;font-weight:400}}@media (width>=501px){micrio-menu{float:left;position:relative}micrio-menu:not(:is(:focus-within,:hover))>div{display:none}micrio-menu>:is(a,button){height:var(--micrio-button-size);line-height:var(--micrio-button-size);width:100%;text-align:var(--micrio-text-align);white-space:pre;font-weight:600}micrio-menu>div micrio-menu{float:none}micrio-menu>div :is(a,button){width:100%}micrio-menu>:is(a,button):is(:hover,:focus){text-shadow:none!important;color:var(--micrio-color-hover)!important}micrio-menu>div{max-height:calc(100vh - 160px);overflow:hidden auto}micrio-menu strong micrio-icon{vertical-align:1px;margin-left:10px;line-height:0}}micrio-toolbar>menu{top:calc(var(--micrio-border-margin) - (var(--micrio-button-size) / 2 - 27px));left:var(--micrio-border-margin);color:var(--micrio-color);text-shadow:1px 1px 2px #000;z-index:1;margin:0;padding:0;transition:transform .25s;position:absolute}@media (width<=500px){micrio-toolbar>micrio-button>:is(button,a){top:var(--micrio-border-margin);width:34px;height:34px;box-shadow:none;z-index:2;position:absolute;left:0}micrio-toolbar>micrio-button>:is(button,a).indent{left:35px}micrio-toolbar>menu{background:var(--micrio-background);width:100%;max-height:60vh;-webkit-backdrop-filter:var(--micrio-background-filter);backdrop-filter:var(--micrio-background-filter);z-index:100;color:var(--micrio-color);text-shadow:none;border-radius:16px 16px 0 0;margin:0;padding:16px 0;transition:transform .3s;position:fixed;inset:auto 0 0;overflow:hidden auto;transform:translateY(100%)}micrio-toolbar>menu.shown{transform:translateY(0)}micrio-toolbar>menu:before{content:"";background:#8080804d;border-radius:2px;width:36px;height:4px;margin:-8px auto 12px;display:block}.backdrop{z-index:50;background:#0006;position:fixed;inset:0}}@media (width>=501px){micrio-toolbar>menu.indent{margin-left:calc(var(--micrio-border-margin) * 2 + 25px)}micrio-toolbar>menu>micrio-menu{color:var(--micrio-color);margin-right:var(--micrio-border-margin);border-radius:var(--micrio-border-radius)}micrio-toolbar>menu>micrio-menu:is(:hover,:focus-within){-webkit-backdrop-filter:var(--micrio-background-filter);backdrop-filter:var(--micrio-background-filter);background:var(--micrio-background);box-shadow:var(--micrio-button-shadow)}}micrio-media-controls{display:block}micrio-media-controls>aside{--micrio-background:var(--micrio-background,#000);align-items:center;width:100%;display:flex}micrio-media-controls micrio-button>button{border:none;border-radius:0;margin:0}micrio-media-controls .subtitles button:not(.active){color:var(--micrio-color)!important}micrio-media-controls .subtitles button:not(.active) svg{fill:var(--micrio-color)!important}micrio-media-controls micrio-button:last-child{margin-right:16px}micrio-media-controls aside>div{flex:1;align-items:center;gap:8px;padding:0 8px;display:flex}micrio-media-controls [data-part=bars]{background:var(--micrio-progress-bar-background,var(--micrio-color-hover));cursor:pointer;border-radius:2px;flex:1;height:4px;position:relative}micrio-media-controls [data-part=bar]{background:var(--micrio-color);height:100%;position:absolute;top:0;left:0}micrio-media-controls [data-part=bars]>[data-part=bar]:first-child{border-radius:2px 0 0 2px}micrio-media-controls [data-part=bars]>[data-part=bar]:last-child{border-radius:0 2px 2px 0}micrio-media-controls [data-part=bars]>[data-part=bar]:only-child{border-radius:2px}micrio-media-controls aside>div>span{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--micrio-color);text-align:center;min-width:50px;padding:0;font-size:90%;display:block}micrio-media{display:block}micrio-media figure{margin:0;padding:0;position:relative}micrio-media figure :is(video,audio){width:100%;display:block}micrio-media figure figcaption{opacity:.7;text-align:center;background:var(--micrio-background);padding:5px 10px;font-size:.85em}micrio-media figure iframe{border:none;width:100%;display:block}micrio-media figure:-webkit-any(:fullscreen,:-webkit-full-screen) iframe{height:100%}micrio-media figure:is(:fullscreen,:fullscreen) iframe{height:100%}micrio-media figure:-webkit-any(:fullscreen,:-webkit-full-screen) video{object-fit:contain;height:100%}micrio-media figure:is(:fullscreen,:fullscreen) video{object-fit:contain;height:100%}micrio-media figure:has(video){width:auto}:is(micrio-tour,micrio-serial-tour) micrio-media figure{bottom:var(--micrio-border-margin);width:500px;max-width:calc(100vw - 2 * var(--micrio-border-margin,0));max-width:calc(100cqw - 2 * var(--micrio-border-margin,0));background:var(--micrio-button-background,var(--micrio-background,none));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);z-index:5;--micrio-hide:translate(-50%,100%);flex-direction:column;margin:0;padding:0;transition:transform .25s,opacity .25s;display:flex;position:fixed;left:50%;transform:translate(-50%)}micrio-media figure.hidden{display:none!important}micrio-marker-popup{cursor:auto;top:var(--micrio-border-margin);left:var(--micrio-border-margin);display:block;position:absolute}micrio-marker-popup>aside{padding:0;position:absolute}@keyframes micrio-popup-in{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@media (width>=501px){micrio-marker-popup{width:440px;min-width:20%;animation:.2s ease-out micrio-popup-in}micrio-marker-popup>aside{left:calc(100% + var(--micrio-border-margin));flex-direction:column-reverse;top:0}micrio-marker-popup.destroying{opacity:0;pointer-events:none;transition:opacity .2s ease-out,transform .2s ease-out;animation:none;transform:translate(-50px)}}@media (width<=500px){micrio-marker-popup>aside{z-index:2;--micrio-button-shadow:none;--micrio-background:none;--micrio-background-filter:none;top:0;right:0}micrio-marker-popup :is(h1,micrio-media:only-child){margin-right:calc(var(--micrio-button-size) - 2 * var(--micrio-border-margin,0))}micrio-marker-popup{width:auto;right:var(--micrio-border-margin);top:auto;top:var(--micrio-border-margin);flex-direction:column;justify-content:space-between;transition:opacity .25s;display:flex}micrio-marker-popup.destroying{opacity:0;pointer-events:none}}micrio-marker{transform:translate3d(var(--x,0),var(--y,0),0) translate(-50%,-50%) scale3d(var(--scale,1),var(--scale,1),1);will-change:transform;display:block;position:absolute;top:0;left:0}micrio-marker:not(.cluster){animation:.25s forwards micrio-marker-fade}micrio-marker.overlapped{display:none}@keyframes micrio-marker-fade{0%{opacity:0}to{opacity:1}}micrio-marker.behind{pointer-events:none;opacity:0!important}micrio-marker.mat3d{transform:var(--mat);transform-style:preserve-3d;top:50%;left:50%}micrio-marker.mat3d button{position:absolute;transform:translate(-50%,-50%)}micrio-marker button{width:var(--micrio-marker-size);height:var(--micrio-marker-size);color:var(--micrio-marker-text-color);cursor:pointer;font:inherit;background:50% no-repeat;background-image:var(--micrio-marker-icon);background-size:contain;border:none;margin:0;padding:0;display:block;position:relative}micrio-marker label{text-align:var(--micrio-text-align);cursor:pointer;white-space:pre-wrap;width:max-content;max-width:170px;text-shadow:var(--micrio-marker-text-shadow);opacity:0;pointer-events:none;padding-left:10px;font-size:90%;font-weight:600;line-height:1em;transition:opacity .1s;position:absolute;top:50%;left:100%;transform:translateY(-50%)}micrio-marker:hover{z-index:2}:is(micrio-marker:hover,.show-titles micrio-marker) label{opacity:1}@media (width<=640px){micrio-marker label{font-size:12px}}.show-titles micrio-marker label{pointer-events:all}micrio-marker label.static{transform:translate(-50%,4px) scale3d(calc(1/var(--scale,1)),calc(1/var(--scale,1)),1)}micrio-marker.default button{box-sizing:content-box;border-radius:var(--micrio-marker-border-radius);border:var(--micrio-marker-border-size) solid var(--micrio-marker-border-color);transition:var(--micrio-marker-transition);background-clip:content-box;background-color:var(--micrio-marker-color)}micrio-marker.default:is(:hover,.opened){z-index:1}micrio-marker.default:is(:hover,.opened) button{background-color:var(--micrio-marker-highlight);width:calc(var(--micrio-marker-size,25px) + var(--micrio-marker-border-size,3px)*2);height:calc(var(--micrio-marker-size,25px) + var(--micrio-marker-border-size,3px)*2);border-width:0}micrio-marker.has-icon{--micrio-marker-icon:none}micrio-marker.has-custom-icon{--micrio-marker-size:32px}micrio-marker.default.has-icon button{color:#fff;width:calc(var(--micrio-marker-size) + 24px);height:calc(var(--micrio-marker-size) + 24px);background-color:var(--micrio-marker-border-color);border:none}micrio-marker.default.has-icon:is(.opened,:hover) button svg{color:var(--micrio-marker-highlight)}micrio-marker.default.has-custom-icon button{background-color:#0000}micrio-marker.default.has-custom-icon:is(.opened,:hover) button{background-color:var(--micrio-marker-highlight,var(--micrio-marker-color))}micrio-marker.cluster button{border:2px solid var(--micrio-marker-color);background:var(--micrio-cluster-marker-background,#fff);color:var(--micrio-cluster-marker-color,#000);width:calc(var(--micrio-marker-size) + 12px);height:calc(var(--micrio-marker-size) + 12px);box-sizing:content-box;border-radius:100%}micrio-marker.cluster:hover button{background:var(--micrio-marker-highlight,#fff);border-color:var(--micrio-marker-highlight,#fff)}micrio-marker.cluster label{pointer-events:none;display:none}micrio-marker img{max-width:100%;max-height:100%;margin:auto;display:block}micrio-markers>*{pointer-events:all}micrio-markers.inactive>*{pointer-events:none}micrio-main.is360 micrio-markers{transition:opacity .25s}micrio-main.is360 micrio-markers.inactive{opacity:0}micr-io[data-tour-active] micrio-markers{display:none}micrio-dial{bottom:var(--micrio-border-margin);width:320px;max-width:calc(100vw - calc(2 * (var(--micrio-button-size) + 4 * var(--micrio-border-margin))));max-width:calc(100cqw - calc(2 * (var(--micrio-button-size) + 4 * var(--micrio-border-margin))));height:calc(var(--micrio-button-size)*.6);touch-action:none;cursor:w-resize;background-color:#0000;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}micrio-dial:before,micrio-dial:after{content:"";background-position:var(--micrio-dial-offset,0px);width:100%;display:block;position:absolute}micrio-dial:before{background-image:repeating-linear-gradient(90deg,#8888 0% .5%,#0000 1% 2.5%);height:50%;top:25%}micrio-dial:after{background-image:repeating-linear-gradient(90deg,#fff8 0% .5%,#0000 1% 20%);height:100%}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-embed>:is(a,div){transform:translate3d(calc(var(--x,0) - 50%),calc(var(--y,0) - 50%),0) scale3d(var(--s),var(--s),1);opacity:var(--opacity,1);will-change:transform,opacity;direction:ltr;display:block;position:absolute;top:0;left:0}micrio-embed>:is(a,div).embed3d{top:50%;left:50%}micrio-embed>:is(a,div).no-events{pointer-events:none}micrio-embed>:is(a,div).hide-when-paused{transition:opacity .25s}micrio-embed>:is(a,div).hide-when-paused:has(figure.paused){opacity:0}micrio-embed>:is(a,div).inactive{opacity:0;pointer-events:none}micrio-embed>:is(a,div)>*{transform:translate3d(-50%,-50%,0) scale3d(var(--scale,1),var(--scale,1),1);cursor:pointer;margin:0;position:absolute}micrio-embed>:is(a,div)>:not(button){width:auto!important}micrio-embed>:is(a,div)>img{max-width:none}micrio-embed>:is(a,div)>button{--scale:1;--ratio:1;width:100px;aspect-ratio:var(--ratio);background:0 0;border:none;margin:0;padding:0}micrio-embed>:is(a,div)>:is(button,img){touch-action:none}micrio-image-embeds>*{pointer-events:all}micrio-tour>aside.marker-tour{bottom:var(--micrio-border-margin);max-width:calc(100% - var(--micrio-border-margin) * 2);left:50%;transform:translate(-50%)}aside.marker-tour{box-sizing:border-box;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-color:var(--micrio-button-background,var(--micrio-background,none));z-index:5;--micrio-hide:translate(-50%,100%);padding:0;transition:transform .25s,opacity .25s;display:flex;position:absolute}aside.marker-tour micrio-button{--micrio-button-background:transparent;--micrio-background-filter:none;--micrio-button-shadow:none;--micrio-border-radius:0}micr-io:not([data-tour-active]) aside.marker-tour micrio-fullscreen{display:none}aside.marker-tour>span{height:var(--micrio-button-size);line-height:var(--micrio-button-size);text-align:center;cursor:default;color:var(--micrio-color);background:0 0;border:none;align-items:center;padding:0 12px;font-family:inherit;font-size:90%;display:flex}micrio-swipe-gallery>figcaption{top:var(--micrio-border-margin);left:var(--micrio-border-margin);padding:var(--micrio-popup-padding);box-sizing:border-box;max-width:410px;position:absolute}@media (width<=500px){micrio-swipe-gallery>figcaption{max-width:calc(100% - 3*var(--micrio-border-margin) - var(--micrio-button-size))}}dialog::backdrop{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:.2s forwards micrio-popover-bg}@keyframes micrio-popover-bg{0%{background:0 0}to{background:var(--micrio-popover-background)}}dialog{pointer-events:all;background:0 0;border:none;max-width:90vw;max-height:90vh;padding:0;animation:.5s forwards micrio-popover-fade;position:relative;overflow:visible}@keyframes micrio-popover-fade{0%{opacity:0}to{opacity:1}}dialog>aside{--micrio-background-filter:none;z-index:1;position:absolute}dialog:not(.article){display:flex}@media (width>=640px){dialog:not(.article){width:calc(85cqw - 56px);height:47.8125cqw}dialog>aside{margin-left:var(--micrio-border-margin);display:block;top:0;left:100%}dialog>micrio-marker-content{width:25cqw;min-width:unset;max-width:320px}}@media (width<=639px){dialog:not(.article){flex-direction:column;width:100%;height:100%}dialog>aside{top:var(--micrio-border-margin);right:var(--micrio-border-margin);position:fixed}}@media (aspect-ratio>=16/9){dialog:not(.article){width:133.333cqh;height:75cqh}}dialog:not(.article)>micrio-media{flex:1}dialog:not(.article)>micrio-media>figure{height:100%}dialog:not(.article)>micrio-media>figure :is(iframe,video){height:calc(100% - var(--micrio-button-size))}dialog.article{width:540px}dialog.article article{text-shadow:none;color:var(--micrio-color);background:var(--micrio-background);box-sizing:border-box;border-radius:var(--micrio-border-radius);max-height:calc(90vh - 48px);padding:20px;overflow:hidden auto}dialog.article h2{text-align:center}dialog.gallery>aside{left:auto;right:var(--micrio-border-margin);top:var(--micrio-border-margin);margin-left:0}dialog.gallery{width:100%;height:100%;max-width:unset;max-height:unset}micrio-gallery>micrio-button>button{z-index:2;transition:transform .15s,opacity .15s;position:absolute;top:50%;transform:translateY(-50%)}micrio-gallery>micrio-button.prev>button{left:var(--micrio-border-margin);--micrio-hide:translate(-100%,-50%)}micrio-gallery>micrio-button.next>button{right:var(--micrio-border-margin);--micrio-hide:translate(100%,-50%)}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-serial-tour>micrio-media,micrio-serial-tour micrio-media-controls{display:contents}micrio-serial-tour [data-part=bars]{height:var(--micrio-progress-bar-height,6px);background:var(--micrio-progress-bar-background,#8080804d);border-radius:3px;display:flex;position:relative;overflow:hidden}micrio-serial-tour [data-part=bars]>[data-part=bar]{box-sizing:border-box;cursor:pointer;background:0 0;height:100%;display:block;position:relative;overflow:hidden}micrio-serial-tour [data-part=bars]>[data-part=bar]:before{content:" ";background:var(--micrio-color);pointer-events:none;height:100%;width:var(--progress,0%);will-change:width;display:block;position:absolute}micrio-serial-tour [data-part=bars]>[data-part=bar].active:before{background:var(--micrio-active-color,var(--micrio-color))}micrio-serial-tour ol{left:var(--micrio-border-margin);bottom:var(--micrio-border-margin);color:var(--micrio-color);text-shadow:var(--micrio-marker-text-shadow);--micrio-hide:translate3d(-100%,0,0);margin:0;list-style-type:decimal-leading-zero;transition:transform .25s,opacity .25s;position:absolute}micrio-serial-tour ol>li{white-space:pre;padding:.15em;transition:height .25s,opacity .25s .25s}micrio-serial-tour ol>li.active{font-weight:700}micrio-serial-tour ol button{font:inherit;color:inherit;text-shadow:inherit;cursor:pointer;background:0 0;border:none;display:inline}micrio-serial-tour ol button:hover{text-decoration:underline}@media (width<=500px){micrio-serial-tour ol{bottom:calc(var(--micrio-button-size) + 3 * var(--micrio-border-margin))}}micrio-main.is360{perspective:50cqh}`;document.head.insertBefore(_style,document.head.firstChild);
|
|
27
|
-
!function(){function t(i,s,e={}){if(!i||"object"!=typeof i)return s;const h=s;for(const o of Object.keys(i)){const s=i[o];s&&"object"==typeof s&&Object.getPrototypeOf(s)===Object.prototype?(h[o]&&"object"==typeof h[o]||(h[o]={}),t(s,h[o],e)):e.noOverwrite&&o in h||(h[o]=s)}return s}var i,s="E001",e="E002",h="E003",o="E004",n="E005",r="E100",a="E101",c="E102",l="E103",u="E200",d="E201",p="E202",m="E203",f="E300",g="E301",v="E302",w="E303",M="E999",y={[s]:"You appear to be offline. Please check your internet connection and try again.",[e]:"The connection timed out. Please try again.",[h]:"Unable to load content due to security restrictions.",[o]:"The requested image or content could not be found.",[n]:"The server encountered an error. Please try again later.",[r]:"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.",[p]:"There was a problem processing the image information.",[m]:"This image uses an unsupported format version.",[f]:"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.",[v]:"Failed to load the image. Please try again.",[w]:"Failed to load the tour. Some features may be unavailable.",[M]:"An unexpected error occurred. Please try refreshing the page."},_=class t extends Error{displayMessage;cause;code;statusCode;constructor(i,s){super(i),this.name="MicrioError",this.code=s?.code??M,this.displayMessage=s?.displayMessage??y[this.code],this.cause=s?.cause,this.statusCode=s?.statusCode,"captureStackTrace"in Error&&"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}static fromResponse(i,h){const r=i.status;let a=M;return 404===r?a=o:r>=500&&600>r?a=n:0===r?a=s:408!==r&&504!==r||(a=e),new t(`${h?h+": ":""}HTTP ${r}`,{code:a,statusCode:r})}static fromError(i,o){const n=i.message.toLowerCase();let a=M;return n.includes("network")||n.includes("internet")||n.includes("offline")?a=s:n.includes("timeout")?a=e:n.includes("cors")||n.includes("cross-origin")?a=h:n.includes("webgl")||n.includes("webglcontext")?a=r:n.includes("memory")||n.includes("out of memory")?a=l:(n.includes("wasm")||n.includes("webassembly"))&&(a=f),new t(`${o?o+": ":""}${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=_.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},P=t=>{let i=t.charCodeAt(0),s=91>i;return(i-=s?65:97)-(i>7?1:0)+(s?24:i>10?-1:0)},S=t=>6==t.length||7==t.length,E=()=>Math.random().toString(),I="7.0.4",C=`https://viewer.${(()=>{try{const t=location.hostname;if(t.endsWith("micrio.dev"))return"micrio.dev";if(t.endsWith("micrio.net"))return"micrio.net"}catch{}return"micr.io"})()}/`,z="micrio-muted",L={camspeed:1,view:[0,0,1,1],restrict:[0,0,1,1],focus:[.5,.5],zoomLimit:1,fullscreen:1,hookEvents:1,hookScroll:1,hookPinch:1,hookDrag:1,minimap:1,doTourJumps:1,audio:1,startVolume:1,mutedVolume:0,t:{showTitles:0,zoomOutAfterClose:1},ui:{controls:{cultureSwitch:1}},l:{}},A={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"}},$={"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":{}},F=new Map,V=new Map,N=new Map,B=new Map,G=new Map,Y={async u(t){return(await this.p(t))?.data},m(t){return F.get(t)},M(t){return(F.get(t.micrioId)?.data)?.markers?.find(i=>i.id===t.markerId)},_(t){return V.get(t)},k(){return i},T(t){return N.get(t)},P(t){return B.get(t)},async p(t){if(t)return await(async t=>{if(!t||t.startsWith("http")||F.has(t))return;if(G.has(t))return G.get(t);const s=(async t=>{const s=await T(`${C}${t}/bundle.json?v=${I}`);if(s?.images){for(const t of s.images)t?.id&&(F.set(t.id,t),s.tours&&B.set(t.id,s.tours));t.startsWith("external/")&&s.images[0]?.id&&(F.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&&V.set(i.id,i.data);s?.album&&(s.album.type="book3d",N.set(s.album.id,s.album))})(t);G.set(t,s);try{await s}catch{}finally{G.delete(t)}})(t),F.get(t)}};function H(t){const i=new Set;return{subscribe(s,e){return i.add(s),s(t),()=>i.delete(s)},set(s){t=s,i.forEach(t=>t(s))},update(i){this.set(i(t))}}}function R(t){let i;return t.subscribe(t=>{i=t})(),i}function X(){return Promise.resolve()}function j(t){let i,s=0;return e=>{i=e,s||(s=1,Promise.resolve().then(()=>{s=0,t(i)}))}}function W(t){let i=1;return s=>{i?i=0:t(s)}}var U=(t,i=1)=>(t%i+i)%i,Z=t=>U(t),q=t=>U(t,2*Math.PI),J=t=>1<<t,K=t=>({centerX:t[0]+t[2]/2,centerY:t[1]+t[3]/2,width:t[2],height:t[3]}),Q=(t,i,s)=>!(t<s[0]||t>s[0]+s[2]||i<s[1]||i>s[1]+s[3]),tt=(t,i)=>1e-6>Math.abs(t-i),it=(t,i,s)=>{let e=t*t+i*i+s*s;return e>0?(e=1/Math.sqrt(e),[t*e,i*e,s*e]):[0,0,0]};function st(t,i){const s=Z(t),e=Z(i)-s,h=e>0?e-1:e+1;return Math.abs(e)>Math.abs(h)?h:e}var et,ht,ot=class{#t;#i;#s;#e;#h;#o;#n;constructor(t,i,s,e){this.#n=t===i&&s===e&&0===t&&1===s;const h=3*t,o=3*(s-t)-h;this.#t=h,this.#i=o,this.#s=1-h-o;const n=3*i,r=3*(e-i)-n;this.#e=n,this.#h=r,this.#o=1-n-r}#r(t){return t*(this.#t+t*(this.#i+t*this.#s))}#a(t){return t*(this.#e+t*(this.#h+t*this.#o))}#c(t){return this.#t+t*(2*this.#i+3*this.#s*t)}#l(t){let i=t,s=0,e=0,h=0;for(;5>s&&(e=this.#r(i)-t,h=this.#c(i),0!==h);)i-=e/h,s++;return i}get(t){return this.#n?t:this.#a(this.#l(t))}},nt=new ot(.42,0,.58,1),rt=new ot(.42,0,1,1),at=new ot(0,0,.58,1),ct=new ot(0,0,1,1),lt={ease:nt,"ease-in":rt,"ease-out":at,linear:ct},ut=t=>lt[t??"ease"]??nt,dt=class{rotationY=0;#u;S;I;C=[];L;#d;get image(){return this.#d}constructor(t){if(this.#d=t,!t.A){const i=t.state.$view;i&&t.$info?.width&&X().then(()=>this.setView(i))}}$(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:e,width:h,height:o}=K(t);if(this.#d.opts.useParentCamera){const t=this.#d.opts.area;t&&(s=t[0]+s*t[2],e=t[1]+e*t[3],h*=t[2],o*=t[3])}this.#u.D(s,e,h,o,!!i.noLimit,0,i.correctNorth),i.noRender||this.#d.engine.render()}getCoo(t,i,s=0,e=0){return this.#p(t,i,s,e).slice(0).map(t=>Math.round(1e6*t)/1e6)}#p(t,i,s=0,e=0){const h=this.#u;if(!h)return new Float64Array(5);if(s){const s=this.#d.engine.micrio.getBoundingClientRect();t-=s.left,i-=s.top}return(h.is360?h.F.O(t,i):h.camera.O(t,i,!!s,!!e)).arr}getXY(t,i,s=0,e,h,o){return this.V(t,i,{abs:s,radius:e,rotation:h,noTrueNorth:o}).slice(0)}V(t,i,s={}){const e=this.#u;if(!e)return new Float64Array(5);const h=this.#d.A&&!s.noTrueNorth?-this.rotationY/(2*Math.PI):0;return e.is360?e.F.N(t-h,i).arr:void 0===s.rotation||isNaN(s.rotation)?e.G.B(t-h,i,!!s.abs).arr:e.G.Y(t-h,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.H??1;getMinScale=()=>this.#u?.camera.R??.1;setMinScale(t){this.#u?.X(t)}setMinScreenSize(t){!this.#d.album&&this.#u&&(this.#u.camera.j=Math.max(0,Math.min(1,t)))}isZoomedIn=()=>!!this.#u?.W();isZoomedOut=(t=0)=>!!this.#u?.U(t);getDirection=()=>this.#u?.F.Z??0;getPitch=()=>this.#u?.F.q??0;setDirection(t,i){this.#u&&(this.#u.J(t,i??this.#u.F.q),this.#d.engine.render())}setLimit(t){if(!this.#u)return;const i=K(t);this.#u.view.K(i.centerX,i.centerY,i.width,i.height),this.#d.engine.render()}setCoverLimit(t){this.#u&&(this.#u.tt=!!t,this.#u.it())}getCoverLimit=()=>!!this.#u?.tt;set360RangeLimit(t=0,i=0){this.#u&&(this.#u.F.st(t,i),this.#d.engine.render())}stop(){this.#u?.et()}pause(){this.#u?.ht()}resume(){this.#u?.ot(),this.#d.engine.render()}getMatrix(t,i,s,e,h,o,n,r,a,c,l){return this.#u?.nt(t,i,s??1,e??10,h||0,o||0,n||0,r??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.rt){for(const i of this.#u.images)if(i.ct>0)return void i.lt(t[0],t[1],t[0]+t[2],t[1]+t[3])}else this.#u.lt(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 e of this.#u.images)if(e.ct>0){e.ut=t,e.dt=i,e.ft=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}gt(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?.G.vt(t,i,s).arr??new Float64Array(5)}wt(){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.S=t,this.I=i}flyToView(t,i={}){return new Promise((s,e)=>{if(!this.#u)return e(new Error("engine not ready"));let{centerX:h,centerY:o,width:n,height:r}=K(t);if(2==i.margin?.length&&(h+=i.margin[0],o+=i.margin[1],n-=2*i.margin[0],r-=2*i.margin[1]),this.#d.opts.useParentCamera){const t=this.#d.opts.area;t&&(h=t[0]+h*t[2],o=t[1]+o*t[3],n*=t[2],r*=t[3])}if(i.prevView){const t=K(i.prevView);this.#u.yt.Mt(t.centerX,t.centerY,t.width,t.height)}const a=this.#d.$settings.omni;if(a?.frames){const s=a.layers?.length??1,e=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(U(s/(2*Math.PI))*e))}null!=i.omniIndex&&(i.omniIndex=U(i.omniIndex,e))}const c=this.#u.camera._t(h,o,n,r,i.duration??-1,i.speed??-1,i.progress??0,!!i.isJump,!!i.limit,!!i.limitZoom,i.omniIndex??0,ut(i.timingFunction));this.#d.engine.render(),0==c?s():this.#m(s,e)})}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,e)=>{if(!this.#u)return e(new Error("engine not ready"));const h=ut(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,h),this.#d.engine.render(),0==i.duration?s():this.#m(s,e)})}zoom(t,i=0,s,e,h=1,o=0){return new Promise((h,n)=>{if(this.L)this.L(t);else if(this.#u){const n=this.#u.view.arr,r=this.getXY(n[0],n[1]);if(null==s&&(s=r[0]),null==e&&(e=r[1]),this.#d.album&&!this.#d.album.hooked)return h();i=this.#u.camera.bt(t,s,e,i,o),this.#d.engine.render()}0==i?h():this.#m(h,n)})}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 e=this.#d.engine.micrio.canvas.viewport,h=e.width/e.height,o=this.#d.$info.width/this.#d.$info.height;return this.zoom(t*(400/Math.max(1,h/o/2)),i,void 0,void 0,s).catch(()=>{})}pan(t,i,s=0,e={}){this.#u&&(this.#u.camera.kt(t,i,s,!!e.noLimit),(s>0||e.render)&&this.#d.engine.render())}setScale(t){const i=this.#u?.view.arr;i&&this.setCoo(i[0],i[1],t)}};function pt(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[e,h]of Object.entries(i.dataset))s.dataset[e]=h;if(i.attrs)for(const[e,h]of Object.entries(i.attrs))null==h?s.removeAttribute(e):s.setAttribute(e,h);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[e,h]of Object.entries(i.events))s.addEventListener(e,h);if(i.children)for(const e of i.children)null!=e&&0!=e&&("string"==typeof e||"number"==typeof e?s.append(String(e)):s.append(e));return i.setProps&&s.xt?.(i.setProps),i.parent&&i.parent.appendChild(s),s}function mt(t,i={}){return pt(t,{...i,ns:"http://www.w3.org/2000/svg"})}(ht=et||(et={})).Main=class{tour=H();#f;get $tour(){return this.#f}marker=H();markerHoverId=H();#g;get $marker(){return this.#g}popup=H();popover=H();mediaState=new Map;constructor(){this.tour.subscribe(t=>{"string"!=typeof t&&(this.#f=t)}),this.marker.subscribe(t=>{"string"!=typeof t&&(this.#g=t)})}},ht.Image=class{view=H(void 0);#v;get $view(){return this.#v}marker=H(void 0);#g;get $marker(){return this.#g}layer=H(0);constructor(t){const i=t.engine.micrio;let s,e,h;this.view.subscribe(o=>{this.#v=o;const n=o?.toString();if(o&&n&&s!=n){const r={image:t,view:o};s=n;const a=o[2],c=o[3];if(!e||!h||Math.abs(a-e+(c-h))>1e-5){for(const t of i.Tt)t(r);i.events.Pt("zoom",{image:t,view:o}),e=a,h=c}for(const t of i.St)t(r)}}),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 ft=t=>new Promise(i=>t?setTimeout(i,t):i()),gt=()=>new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t()))),vt=new Set;async function wt(t,i,s){if(t in self||await Mt(i,s),!(t in self))throw new Error(`Failed to load ${t} API from ${i}`)}var Mt=(t,i,s)=>new Promise((e,h)=>{if(s||vt.has(t))return e();const o=document.createElement("script"),n=()=>{vt.add(t),e()};i?self[i]=n:o.onload=n,o.onerror=()=>h?.(),o.async=1,o.defer=1,self.crossOriginIsolated&&(o.crossOrigin="anonymous"),o.src=t,document.head.appendChild(o)}),yt=[],_t=class t{id;uuid=E();#w;get $info(){return this.#w}Et=H({});get $settings(){return R(this.Et)}data=H(void 0);get $data(){return R(this.data)}state;camera;video=H(void 0);visible=H(0);album;omni;grid;It;Ct;zt;error;rt=0;Lt=-1;A=0;At=0;$t=0;Dt=1;#M=0;thumbSrc;#y;Ot=0;Ft;Vt=1;Nt=H();Bt=[];Gt;get engine(){return this.#_}get canvas(){return this.#_.Yt(this)}#_;opts;constructor(t,i,s={}){if(this.#_=t,this.opts=s,this.state=new et.Image(this),s.useParentCamera||(this.camera=new dt(this)),this.id=i.id.replace(C,""),this.id.startsWith("external/")){const t=this.id.indexOf("/",this.id.indexOf("/")+1);-1!==t&&(this.id=this.id.substring(0,t+1)+encodeURIComponent(this.id.substring(t+1)))}const e=i.info;this.#w=e,this.zt=e.path||"https://r2.micr.io/",s.area||(s.area=[0,0,1,1]);const h=i.settings,o=this.#_.micrio;if(!e.isIIIF&&7==this.id.length){const t=P(this.id[1+P(this.id)%6]);e.is360=!!(t>>4&1)||!!e.is360,e.isWebP=!(3&t),e.isPng=2==(3&t),t>>3&1&&S(e.tilesId??this.id)&&(e.format="dz"),e.path||(e.path=`https://${t>>2&1?"eu":"r2"}.micr.io/`)}const n=6==this.id.length&&this.id.startsWith("i")&&!this.id.includes("/"),r=n&&!e.tileBasePath?.includes("micr.io");this.Gt=r?e.tileBasePath??"https://b.micr.io/":n?"https://b.micr.io/":e.tileBasePath??e.path??"https://r2.micr.io/";const a=Y.k();if(a?.baseUrl&&!e.path.includes(a.baseUrl)?(this.zt=e.path=a.baseUrl,n||(this.Gt=this.zt)):("https://eu.micr.io/"==e.path||e.path)&&(this.zt=e.path),h?.omni&&(this.$t=1),a?.branding&&!h?.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.#_.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(e.isIIIF&&e.id.includes("/")&&(e.id=("@id"in e?e["@id"]:e.id).replace(/^.*\//,"")),e.spacesId&&!o.spaceData&&(o.spaceData=Y._(e.spacesId),1==o.spaceData?.images.length&&delete o.spaceData),o.bundleTours||(o.bundleTours=Y.P(this.id)),e.is360&&this.camera){const t=o.spaceData?.images.find(t=>t.id==this.id)?.rotationY;null!=t?this.camera.rotationY=t:null!=h?.l?.trueNorth&&(this.camera.rotationY=(h.l.trueNorth-.5)*Math.PI*2)}this.Ot=this.Ot||this.$t||!e.id&&!e.tilesId,this.#y=e.tileExtension||e.isPng&&"png"||e.isWebP&&"webp"||"jpg","dz"==e.format&&(e.isDeepZoom=1),this.A=!!e.is360,this.At=!!e.isVideo;let c=R(o.Ht);if(e.revision){const t=Object.keys(e.revision);t.length&&!t.includes(c)&&(o.lang=t.includes("en")?"en":t[0])}if(h&&!h.noExternals&&(h.css&&this.#b(h.css.href),h.js)){const t=h.js.href.replace("$lang",c);Mt(t);const i=document.head.querySelector('script[src="'+t+'"]');i&&(i.micrioElement=this.#_.micrio)}for(let p=e.tileSize??1024;p<Math.max(e.width,e.height);p*=2,this.Dt++);let l=Math.max(e.width,e.height);do{this.#M++}while((l/=2)>1);h?.gallery?.archive&&(this.Dt-=1-(h.gallery.archiveLayerOffset??0)),this.Ot||(this.thumbSrc=this.Rt(this.Dt,0,0)),o.events.Pt("pre-info",e),this.Ot&&!this.$t||h?.skipMeta||!i.data||this.data.set(i.data),h&&this.Et.set(h),e.watermark&&this.#_.micrio.jt.Xt(e.watermark,h?.watermarkOpacity),this.$t&&this.state.layer.subscribe(t=>{this.rt&&this.#_.ready&&(this.canvas?.Wt(t),this.#_.render())});const u=this.#_.micrio;let d=R(this.visible);this.visible.subscribe(t=>{t!=d&&(d=t,u.Ut.update(i=>(t?i.push(this):i.splice(i.indexOf(this),1),i)),t&&u.$current==this&&u.Zt.set(0))}),this.video.subscribe(t=>this.Ct=t)}Rt(t,i,s,e){const h=this.#w;if(h.isDeepZoom&&(t=this.#M-t),h.isIIIF){const e=h.tileSize??1024,o=Math.pow(2,t)*e,n=Math.min(h.width,i*o),r=Math.min(h.height,s*o),a=Math.min(h.width-n,o),c=Math.min(h.height-r,o),l=Math.round(Math.min(e,a/o*e)),u=Math.round(Math.min(e,c/o*e));return`${h.path}/${h.id}/${[n,r,a,c].join(",")}/${[l,u].join(",")}/0/default.jpg`}if(this.$settings?.l?.video?.src)throw new Error("Video thumb");return`${this.Gt}${h.tilesId||h.id}/${void 0!==e?e+"/":""}${t}/${i}${h.isDeepZoom?"_":"-"}${s}.${this.#y}`}#b(t){return new Promise(i=>{yt.includes(t)||document.head.querySelector('link[href="'+t+'"]')?i():(yt.push(t),pt("link",{attrs:{type:"text/css",rel:"stylesheet",href:t},events:{load:i},parent:document.head}))})}addEmbed(i,s,e,h={}){const o=e.slice(0),n=new t(this.#_,{id:i.id??"",info:{...i,id:i.id??""},data:Y.m(i.id??"")?.data,settings:s},{area:o,isEmbed:1,useParentCamera:h.asImage});if(n.camera||(n.camera=this.camera),this.Bt.push(n),void 0===h.opacity&&(h.opacity=1),"cover"==h.fit||"contain"==h.fit){const t=n.$info,i=this.A?2:1,s="cover"==h.fit,e=o[2],r=o[3],a=o[0]+e/2,c=o[1]+r/2,l=e/r*i,u=t.width/t.height;if(s&&l>u||!s&&u>=l){const t=e/u*i;o[1]=c-t/2,o[3]=t}else{const t=r*u/i;o[0]=a-t/2,o[2]=t}}return this.#_.qt(n,this,h),this.#_.render(),n}#k=new Map;Jt(t,i){i?this.#k.set(t,i):this.#k.delete(t)}getEmbedMediaElement(t){return this.#k.get(t)}},bt=new class{#x=new Map;db=new Map;imageKeys=new Map;async load(t,i,s){if(this.#x.has(i))return;const e=i.replace(/^.*\//,"").split(".")[0],h=/\/base$/.test(i),o=h||S(e),n=new XMLHttpRequest,r=await new Promise((e,h)=>{let r=0;n.responseType="arraybuffer",n.onprogress=t=>{r||(r=Number(n.getResponseHeader("Content-Length"))),s?.(Math.min(1,t.loaded/r))},n.onload=()=>{4===n.readyState&&200===n.status?(s?.(1),e(n.response)):h()},n.onerror=h,n.open("GET",t+i+(o?".bin":".mdp")),n.send()});if(!r)return;this.#x.set(i,r);const a=h?i.split("/")[0]+"/":"";let c=0;for(;c<r.byteLength&&c+32<=r.byteLength;){const s=this.#T(new Uint8Array(r,c,32));if(s.name&&s.size>0){this.db.set(t+a+s.name.replace("./",""),[i,c+32,s.size]);const e=s.name.replace("./",""),h=t+a+e,o=e.indexOf("/");if(o>0){const t=e.substring(0,o);this.imageKeys.has(t)||this.imageKeys.set(t,h)}}else if(0===s.size&&!s.name)break;c+=32+s.size}}#T(t){const i=(new TextDecoder).decode(t),s=t=>i.slice(e,e+=t).replace(/\x00/g,"").trim();let e=0;return{name:s(20),size:parseInt(s(12),8)}}get=t=>new Promise((i,s)=>{const e=this.db.get(t);if(!e||!this.#x.has(e[0]))return s(new Error("Could not get blob: "+t));const h=new FileReader;h.onload=()=>i(JSON.parse(h.result)),h.readAsText(new Blob([new Uint8Array(this.#x.get(e[0]),e[1],e[2])]))});Kt=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)};Qt=async t=>{const i=this.imageKeys.get(t);if(!i)throw new Error(`No image found in archive for ID: ${t}`);return this.Kt(i)}},kt=navigator.userAgent,xt={iOS:/ipad|iphone|ipod/i.test(kt),firefox:/firefox/i.test(kt),OSX:/macintosh/i.test(kt)&&/os\ x/i.test(kt),hasTouch:"TouchEvent"in self,safari:0};xt.safari=(xt.OSX||xt.iOS)&&(/safari/i.test(kt)||/instagram/i.test(kt))&&!/chrome/i.test(kt),xt.OSX&&xt.safari&&"TouchEvent"in self&&(xt.iOS=1,xt.OSX=0);var Tt=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"})),Pt=Math.max(2,Math.min(6,(navigator.hardwareConcurrency||2)-1)),St=Array(Pt).fill(0),Et=0,It=[],Ct=[],zt=new Map;for(let me=0;Pt>me;me++){const t=new Worker(Tt);t.onmessage=t=>At(me,t.data.data,t.data.error,t.data.type),It.push(t)}function Lt(){if(!Ct.length)return;const t=St.indexOf(0);if(0>t)return;St[t]=1,Et++;const i=Ct.shift();zt.set(t,i),It[t].postMessage({src:i[0],type:"image/"+i[0].split(".").pop()})}function At(t,i,s,e){const h=zt.get(t);h&&(zt.delete(t),s?(h[2](s),"AbortError"!==e&&console.error(`[Micrio Texture] Error loading ${h[0]}: ${e} - ${s}`)):i?h[1](i):(h[2](`Worker ${t} sent invalid message.`),console.error(`[Micrio Texture] Worker ${t} sent invalid message for ${h[0]}`)),setTimeout(()=>{St[t]=0,Et--,Lt()},50))}function $t(){return Et}function Dt(t){let i=-1;for(const[s,e]of zt.entries())if(e[0]===t){i=s;break}0>i||It[i]?.postMessage("abort")}var Ot=class{x0;y0;x1;y1;layer;x;y;image;constructor(t=0,i=0,s=0,e=0,h=0,o=0,n=0){this.x0=t,this.y0=i,this.x1=s,this.y1=e,this.layer=h,this.x=o,this.y=n}},Ft=class{ti;ii;width;height;si;ei;hi;oi;#P=new Float64Array([.5,.5,1,1]);#S=0;ni=0;ri=0;#u;constructor(t,i=.5,s=.5,e=1,h=1,o=.5,n=.5,r=1,a=1){this.ti=i,this.ii=s,this.width=e,this.height=h,this.si=o,this.ei=n,this.hi=r,this.oi=a,this.#u=t}get arr(){return this.#S&&(this.#P[0]=this.ti,this.#P[1]=this.ii,this.#P[2]=this.width,this.#P[3]=this.height,this.#S=0),this.#P}get x0(){let t=this.ti;return this.#u.is360&&(t=Z(t)),this.#u.is360?Z(t-this.width/2):t-this.width/2}get y0(){return this.ii-this.height/2}get x1(){let t=this.ti;return this.#u.is360&&(t=Z(t)),this.#u.is360?Z(t+this.width/2):t+this.width/2}get y1(){return this.ii+this.height/2}get lX0(){return this.si-this.hi/2}get lY0(){return this.ei-this.oi/2}get lX1(){return this.si+this.hi/2}get lY1(){return this.ei+this.oi/2}get aspect(){return this.width/this.height}set(t,i,s,e,h=0){if(h){const t=Math.min(1,this.width)/Math.min(1,this.height);s/e>1.5*t&&s<this.width&&(e=s/t)}this.ti=t,this.ii=i,this.width=s,this.height=e,this.#S=1,this.ni=1}lt(t,i,s,e){this.ti=(t+s)/2,this.ii=(i+e)/2,this.width=s-t,this.height=e-i,this.#S=1}K(t,i,s,e){this.si=t,this.ei=i,this.hi=s,this.oi=e,this.ni=1,this.ri=1}ai(t,i=0){this.ti=t.ti,this.ii=t.ii,this.width=t.width,this.height=t.height,i||(this.si=t.si,this.ei=t.ei,this.hi=t.hi,this.oi=t.oi),this.ni=1,this.#S=1}#E(){const t=this.#u;return 1/Math.max(this.width*t.width/t.el.width,this.height*t.height/t.el.height)}ci(t,i=0,s=0){const e=this.#u,h=e.G.j,o=this.#E();if(1>h&&o<e.G.R&&!i){const t=1/h,i=Math.min(t,this.width),s=Math.min(t,this.height);return this.ti=.5,this.ii=.5,this.width=i,this.height=s,void(this.#S=1)}const n=t?Math.max(1,o/Math.max(e.G.R,e.maxScale/e.el.scale)):1,r=this.hi,a=this.oi,c=Math.min(r,this.width*n),l=Math.min(a,this.height*n);if(t&&(n>1||i&&o<e.G.R)&&(this.width=c,this.height=l),(1>r||1>a)&&(this.width=Math.min(this.width,r),this.height=Math.min(this.height,a)),i)return void(this.#S=1);const u=Math.min(1,this.width)/2,d=this.hi/2;this.#u.is360?this.ti=Z(this.ti):s||(this.ti=Math.max(this.si-d+u,Math.min(this.ti,this.si+d-u)));const p=Math.min(1,this.height)/2,m=this.oi/2;s||(this.ii=Math.max(this.ei-m+p,Math.min(this.ii,this.ei+m-p))),this.#S=1}li(){const t=this.#u;if(t.is360)return;const i=t.G.cpw/t.G.cph;this.width/this.height>i?this.height=this.width/i:this.width=this.height*i,this.#S=1}},Vt=class{x;y;scale;w;direction;arr=new Float64Array(5);constructor(t=.5,i=.5,s=1,e=0,h=0){this.x=t,this.y=i,this.scale=s,this.w=e,this.direction=h}di(t){return-1>this.w||3>this.w&&!(0>this.x||this.x>t.width||0>this.y||this.y>t.height)}pi(){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}},Nt=class{width;height;left;top;mi;fi;ratio;scale;gi;arr=new Int32Array(4);constructor(t=0,i=0,s=0,e=0,h=0,o=0,n=1,r=1,a=0){this.width=t,this.height=i,this.left=s,this.top=e,this.mi=h,this.fi=o,this.ratio=n,this.scale=r,this.gi=a}get wi(){return 0===this.width||0===this.height?1:this.width/this.height}set(t,i,s,e,h,o,n){return this.width===t*h&&this.height===i*h&&this.left===s&&this.top===e&&this.ratio===h&&this.scale===o&&this.gi===n?0:(this.width=t*h,this.height=i*h,this.left=s*h,this.top=e*h,this.ratio=h,this.scale=o,this.gi=n,1)}ai(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.gi=t.gi}},Bt=class{#I=0;#C=0;#z=0;#L=0;#A=0;#$=0;#D=0;#O=0;started=0;#u;constructor(t){this.#u=t}addStep(t,i){const s=this.#u.main.now;if(this.#A)return;0===this.#z&&(this.#z=s);const e=this.#L>0?16.67/(s-this.#L):1;Math.sqrt(t*t+i*i)*e>20&&(this.#$=s);const h=this.#u.main.Mi;this.#I+=t*h,this.#C+=i*h,this.#L=s}start(){this.#u.camera.yi()||(this.started=1)}stop(){this.started=0,this.#A=0,this.#z=0,this.#L=0,this.#$=0,this.#I=0,this.#C=0,this.#D=0,this.#O=0}step(){const t=this.#u.main.now,i=this.#u.F,s=this.#u.camera;if(!this.started||0===this.#z)return 1;if(0===this.#A){this.#A=t;const i=1-Math.min(1,(this.#A-this.#$)/250),s=this.#A-this.#z;this.#D=this.#I/(s/4)*i,this.#O=this.#C/(s/4)*i}else this.#D*=.94,this.#O*=.94;let e=Math.sqrt(this.#D*this.#D+this.#O*this.#O);return this.#u.is360?i._i(this.#D,this.#O):s.kt(this.#D,this.#O,0,0,0,1),e>.01||(e=0,this.stop()),1-e}},Gt=class{#F=0;#V;#N;bi;#B=0;#G=0;#Y=0;#H=0;#R=0;#X=nt;#j=0;#W=0;#U=0;ci=1;ki=0;xi=0;#Z=0;#q=0;#J=0;#K=0;#Q=0;#tt=0;#it=0;#st=-1;#et=0;#u;constructor(t){this.#u=t,this.#V=new Ft(t),this.#N=new Ft(t),this.bi=new Ft(t)}pause(){this.#Z>0||(this.#U=0,this.#Z=performance.now())}resume(){0!==this.#Z&&0!==this.#j&&(this.#j+=performance.now()-this.#Z,this.#Z=0,this.#U=1)}stop(){this.#U&&this.#u.I(),this.#j=0,this.ci=1,this.ki=0,this.#U=0,this.#F=0,this.#B=0,this.xi=0,this.#Z=0}Ti(){return this.#U&&this.#F}Pi(t,i,s,e,h,o,n={}){const{speed:r=0,perc:a=0,isJump:c=0,limitViewport:l=0,omniIdx:u=-1,correct:d=0}=n;if(d&&this.xi)return this.Si(t,i,s,e,1),h;this.bi.set(t,i,s,e),this.#N.set(t,i,s,e);const p=this.#u,m=p.view,f=this.#N,g=this.#V;this.#G=c,this.#X=o;const v=p.main.el;if(0!==v.fi){const t=e/(1-v.fi/v.height);t>0?e+=t:e-=t,v.fi=0}if(0!==v.mi){const t=s*(v.mi/v.width);t>0?s+=t:s-=t,v.mi=0}const w=m.ti,M=m.ii,y=m.width,_=m.height;g.set(w,M,y,_),p.is360&&(t=w+st(w,t),f.set(t,i,s,e)),l&&(f.li(),f.ci(0)),this.#q=0,this.#K=0,this.#J=0,this.#Q=0;let b=1;if(this.#G){if(!p.is360){const t=f.ti,i=f.ii;if(f.aspect>g.aspect){const s=f.width/g.aspect;f.set(t,i,f.width,s)}else{const s=f.height*g.aspect;f.set(t,i,s,f.height)}}const h=g.x0,o=g.x1,n=g.y0,r=g.y1,a=f.x0,c=f.x1,l=f.y0,u=f.y1,d=h>a,m=n>l,v=c>o,w=u>r;!(d||m||v||w)||d&&m&&v&&w?f.set(t,i,s,e):(this.#q=d?1:a>h?2:0,this.#K=v?1:o>c?2:0,this.#J=m?1:l>n?2:0,this.#Q=w?1:r>u?2:0,b=1.5)}d&&f.ci(1,!l);const k=Math.max(1e4,Math.min(15e3,p.Ei/2));let x=Math.abs(w-t);p.is360&&(x=Math.min(x,1-x));const T=y>s&&_>e?.125:.25,P=(x+Math.abs(M-i)+Math.abs(y-s)*T+Math.abs(_-e)*T)/3;this.#tt=Math.max(.5,.8-P*(p.is360?1:2)),this.#it=Math.max(.05,Math.min(.9,P-(p.is360?.2:.1))),this.#W=0>h?P*k/p.Ii*b/(r>0?r:1):h;const S=p.images.length/p.Ci;return this.#st=p.zi,this.#et=0,!isNaN(u)&&u>0&&u!==this.#st&&(this.#et=u-this.#st,this.#et<-S/2&&(this.#et+=S),this.#et>S/2&&(this.#et-=S),this.#W+=Math.abs(this.#et)/this.#u.images.length*6e3),this.stop(),0===this.#W?(p.D(f.ti,f.ii,f.width,f.height,0,1),this.#u.S(),this.#W):(this.#F=1,this.ci=0,this.ki=1,this.#B=0,d&&(this.xi=1),this.#j=performance.now()-a*this.#W,this.#U=1,this.#W*(1-a))}Si(t,i,s,e,h=0){this.#N.set(t,i,s,e),h&&this.#N.ci(1)}zoom(t,i,s,e){this.stop(),this.#F=0,this.ki=0,this.#B=1,this.#R=e;const h=this.#u,o=h.F;return this.#Y=o.Li,this.#H=this.#Y+t/(o.Ai*h.Ei/20),e||(this.#H=Math.min(o.$i,Math.max(o.Di,this.#H))),this.#j=performance.now(),this.#U=1,this.#W=0>i?1e3*Math.abs(this.#Y-this.#H)/s:i,i}Mt(t,i,s,e,h=0){this.#V.set(t,i,s,e,h),this.#N.set(t,i,s,e,h)}Oi(){const t=0===this.#j?1:Math.min(1,Math.max(0,(this.#u.main.now-this.#j)/this.#W)),i=this.#X.get(t);if(this.#U){if(this.#F){const s=this.#V,e=this.#N,h=this.#it,o=this.#X.get(Math.min(1,t/this.#tt)),n=this.#X.get(Math.max(0,(t-h)/(1-h)));let r=0,a=s.ti+(e.ti-s.ti)*((r=this.#q||this.#K)?1===r?o:n:i),c=s.ii+(e.ii-s.ii)*((r=this.#J||this.#Q)?1===r?o:n:i);const l=s.width+(e.width-s.width)*i,u=s.height+(e.height-s.height)*i;if(this.#u.is360){const t=st(s.ti,e.ti);a=s.ti+t*i}if(this.#u.D(a,c,l,u,0,1),this.#et){let i=this.#st+Math.trunc(this.#et*this.#X.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.Fi(i,0)}}this.#B&&this.#u.F.Vi(this.#Y*(1-i)+this.#H*i,this.#R),1>t||(this.bi.ai(this.#u.view),this.#u.S(),this.stop())}return t}},Yt=class{arr;constructor(t=1,i=0,s=0,e=0,h=0,o=1,n=0,r=0,a=0,c=0,l=1,u=0,d=0,p=0,m=0,f=1){this.arr=new Float32Array([t,i,s,e,h,o,n,r,a,c,l,u,d,p,m,f])}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}ai(t){this.arr.set(t.arr)}Bi(t){const i=this.arr,s=Math.sin(t),e=Math.cos(t),h=i[4],o=i[5],n=i[6],r=i[7],a=i[8],c=i[9],l=i[10],u=i[11];i[4]=h*e+a*s,i[5]=o*e+c*s,i[6]=n*e+l*s,i[7]=r*e+u*s,i[8]=a*e-h*s,i[9]=c*e-o*s,i[10]=l*e-n*s,i[11]=u*e-r*s}Gi(t){const i=this.arr,s=Math.sin(t),e=Math.cos(t),h=i[0],o=i[1],n=i[2],r=i[3],a=i[8],c=i[9],l=i[10],u=i[11];i[0]=h*e-a*s,i[1]=o*e-c*s,i[2]=n*e-l*s,i[3]=r*e-u*s,i[8]=h*s+a*e,i[9]=o*s+c*e,i[10]=n*s+l*e,i[11]=r*s+u*e}Yi(t){const i=this.arr,s=Math.sin(t),e=Math.cos(t),h=i[0],o=i[1],n=i[2],r=i[3],a=i[4],c=i[5],l=i[6],u=i[7];i[0]=h*e+a*s,i[1]=o*e+c*s,i[2]=n*e+l*s,i[3]=r*e+u*s,i[4]=a*e-h*s,i[5]=c*e-o*s,i[6]=l*e-n*s,i[7]=u*e-r*s}Hi(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}Ri(t,i,s){const e=this.arr;e[12]+=e[0]*t+e[4]*i+e[8]*s,e[13]+=e[1]*t+e[5]*i+e[9]*s,e[14]+=e[2]*t+e[6]*i+e[10]*s,e[15]+=e[3]*t+e[7]*i+e[11]*s}Li(t,i,s,e){this.Ni();const h=this.arr,o=1/Math.tan(t/2),n=1/(s-e);h[0]=o/i,h[5]=o,h[10]=(e+s)*n,h[11]=-1,h[14]=2*e*s*n,h[15]=0}Xi(t){this.Ni();const i=this.arr,s=1/Math.tan(t/2);i[0]=s,i[5]=s}ji(){const t=this.arr,i=t[0],s=t[1],e=t[2],h=t[3],o=t[4],n=t[5],r=t[6],a=t[7],c=t[8],l=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=i*n-s*o,w=i*r-e*o,M=i*a-h*o,y=s*r-e*n,_=s*a-h*n,b=e*a-h*r,k=c*m-l*p,x=c*f-u*p,T=c*g-d*p,P=l*f-u*m,S=l*g-d*m,E=u*g-d*f;let I=v*E-w*S+M*P+y*T-_*x+b*k;I&&(I=1/I,t[0]=(n*E-r*S+a*P)*I,t[1]=(e*S-s*E-h*P)*I,t[2]=(m*b-f*_+g*y)*I,t[3]=(u*_-l*b-d*y)*I,t[4]=(r*T-o*E-a*x)*I,t[5]=(i*E-e*T+h*x)*I,t[6]=(f*M-p*b-g*w)*I,t[7]=(c*b-u*M+d*w)*I,t[8]=(o*S-n*T+a*k)*I,t[9]=(s*T-i*S-h*k)*I,t[10]=(p*_-m*M+g*v)*I,t[11]=(l*M-c*_-d*v)*I,t[12]=(n*x-o*P-r*k)*I,t[13]=(i*P-s*x+e*k)*I,t[14]=(m*w-p*y-f*v)*I,t[15]=(c*y-l*w+u*v)*I)}Wi(t){const i=this.arr,s=t.arr;let e=i[0],h=i[1],o=i[2],n=i[3];i[0]=e*s[0]+h*s[4]+o*s[8]+n*s[12],i[1]=e*s[1]+h*s[5]+o*s[9]+n*s[13],i[2]=e*s[2]+h*s[6]+o*s[10]+n*s[14],i[3]=e*s[3]+h*s[7]+o*s[11]+n*s[15],e=i[4],h=i[5],o=i[6],n=i[7],i[4]=e*s[0]+h*s[4]+o*s[8]+n*s[12],i[5]=e*s[1]+h*s[5]+o*s[9]+n*s[13],i[6]=e*s[2]+h*s[6]+o*s[10]+n*s[14],i[7]=e*s[3]+h*s[7]+o*s[11]+n*s[15],e=i[8],h=i[9],o=i[10],n=i[11],i[8]=e*s[0]+h*s[4]+o*s[8]+n*s[12],i[9]=e*s[1]+h*s[5]+o*s[9]+n*s[13],i[10]=e*s[2]+h*s[6]+o*s[10]+n*s[14],i[11]=e*s[3]+h*s[7]+o*s[11]+n*s[15],e=i[12],h=i[13],o=i[14],n=i[15],i[12]=e*s[0]+h*s[4]+o*s[8]+n*s[12],i[13]=e*s[1]+h*s[5]+o*s[9]+n*s[13],i[14]=e*s[2]+h*s[6]+o*s[10]+n*s[14],i[15]=e*s[3]+h*s[7]+o*s[11]+n*s[15]}Ai(t,i,s=1){const e=this.arr;e[0]*=t,e[1]*=t,e[2]*=t,e[3]*=t,e[4]*=i,e[5]*=i,e[6]*=i,e[7]*=i,e[8]*=s,e[9]*=s,e[10]*=s,e[11]*=s}},Ht=class{x;y;z;w;constructor(t=0,i=0,s=0,e=1){this.x=t,this.y=i,this.z=s,this.w=e}ai(t){this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w}Ui(t){const i=t.arr,s=this.x,e=this.y,h=this.z,o=i[3]*s+i[7]*e+i[11]*h+i[15]||1;this.x=(i[0]*s+i[4]*e+i[8]*h+i[12])/o,this.y=(i[1]*s+i[5]*e+i[9]*h+i[13])/o,this.z=(i[2]*s+i[6]*e+i[10]*h+i[14])/o,this.w=o}Zi(){let t=this.x*this.x+this.y*this.y+this.z*this.z;t>0&&(t=1/Math.sqrt(t)),this.x*=t,this.y*=t,this.z*=t}},Rt=class{canvas;#ht=-1;#ot=-1;#nt=-1;constructor(t){this.canvas=t}qi(t,i,s,e){const h=this.canvas,o=h.main.el,n=(Math.min(t,s)-o.left)/o.scale,r=(Math.min(i,e)-o.top)/o.scale,a=(Math.max(t,s)-o.left)/o.scale,c=(Math.max(i,e)-o.top)/o.scale,l=n+(a-n)/2,u=r+(c-r)/2,d=Math.max(a-n,c-r),p=this.#ht-d;if(h.Ji.stop(),this.#ot>0){const t=this.#ot-l,i=this.#nt-u;this.Ki(p,t,i,l,u,o,h)}else h.yt.stop();this.#ot=l,this.#nt=u,this.#ht=d}Qi(){}ts(){this.#rt()}#rt(){this.#ht=-1,this.#ot=-1,this.#nt=-1}_t(t,i,s,e,h,o,n,r,a,c,l,u){const d=this.canvas,p=d.yt;d.Ji.stop();const m=this.ss(t);return p.ci=0,h=p.Pi(m,i,s,e,h,u,{speed:o,perc:n,isJump:r,limitViewport:a,omniIdx:l,correct:c}),p.ci=0,p.ki=1,h}ss(t){return t}setCoo(t,i,s,e=0,h=0,o=0,n=nt){if(this.es(t,i,s))return 0;const r=this.canvas;0===s&&(s=r.hs()),s=this.rs(s),r.Ji.stop();const{w:a,h:c}=this.cs(s);return this.ls(t,i,a,c,e),e=r.yt.Pi(t,i,a,c,e,n,{speed:h}),r.yt.ci=0===e||o,r.yt.ki=e>0,e}es(t,i,s){return 0}rs(t){return t}ls(t,i,s,e,h){}},Xt=class extends Rt{Ai=1;R=1;j=1;us=1;#at=1;H=1;#ct=new Vt;#lt=new Vt;#ut=new Vt;#dt=0;#pt=0;#mt=0;#ft=new Yt;cpw=-1;cph=-1;#gt=1;constructor(t){super(t)}O(t,i,s,e){const h=this.canvas;(h.Ot||h.ds)&&(e=1);const o=h.el,n=h.ps?h.parent.el.ratio:o.ratio,r=h.view,a=this.#lt;s&&(t-=o.left,i-=o.top);const c=t/this.Ai*n/h.width+r.x0,l=i/this.Ai*n/h.height+r.y0;return a.x=e?c:Math.max(r.lX0,Math.min(r.lX1,c)),a.y=e?l:Math.max(r.lY0,Math.min(r.lY1,l)),a.scale=this.Ai,a.pi(),this.#lt}B(t,i,s){const e=this.canvas,h=e.el,o=e.ps?e.parent.el.ratio:h.ratio,n=this.#ct;return n.x=(t-e.view.x0)*e.width*this.Ai/o+(s?h.left:0),n.y=(i-e.view.y0)*e.height*this.Ai/o+(s?h.top:0),n.scale=this.Ai/o,n.pi(),n}Y(t,i,s,e,h){return this.vt(t-.5,i-.5,s,e,h)}vt(t,i,s,e=0,h=0){const o=this.canvas,n=o.el,r=this.#ft,a=o.F.fs,c=o.ps?o.parent.el.ratio:n.ratio;a.x=t,a.y=i,a.z=s,a.w=1,r.Ni(),!h&&o.gs&&r.Li(o.gs,o.aspect,1e-4,100),o.vs&&r.Ri(0,0,o.vs),o.ws&&r.Ri(o.ws,0,0),!h&&o.Ms&&r.Bi(o.Ms);const l=o.images.length/o.Ci,u=o.layer*l,d=o.images.length>0?-(o.zi+1-u)/l*2*Math.PI:0;r.Gi(e+d),a.Ui(r);const p=this.#ct;return p.x=(.5+a.x-o.view.x0)*o.width*this.Ai/c+(h?n.left:0),p.y=(.5+a.y-o.view.y0)*o.height*this.Ai/c+(h?n.top:0),p.w=-a.w-o.vs,p.pi(),p}ys(){const t=this.canvas,i=t.el,s=i.width/t.width,e=i.height/t.height;if(!t.view.ri&&this.cpw===s&&this.cph===e)return void(t.tt!==this.#gt&&this.it());this.cpw=s,this.cph=e,this.#at=Math.min(s,e),this.H=Math.max(s,e);const h=t.view.hi/t.view.oi;if(t.view.ri=0,1>t.view.hi||1>t.view.oi){const i=s/e;this.H/=i>h?t.view.hi/i:t.view.oi*i}if(this.it(),i.width&&i.height&&!this.canvas.yt.Ti()&&(t.view.ai(t.yt.bi,1),!t.is360)){const i=t.yt.ci;t.yt.ci=0,this._s(),t.yt.ci=i}}it(t=0){const i=this.canvas;if(this.R=i.tt?this.H:this.#at,!t&&!i.main.bs&&(0===i.zi&&!i.tt||i.zi>0&&!i.tt)){const t=i.focus.width*i.width,s=i.focus.height*i.height,e=i.el.width,h=i.el.height;this.R=e/h>t/s?h/s:e/t}this.us=this.R>1&&i.maxScale<this.R?this.R:Math.max(this.R,i.maxScale*i.ks/i.el.scale),this.#gt=i.tt}yi(){return 1>this.j&&this.Ai<this.R}U(t=0){return tt(this.Ai,this.R*(t?this.j:1))||this.Ai<=this.R*(t?this.j:1)}W(){return tt(this.Ai,this.us)||this.Ai>=this.us}_s(){if(-1===this.cpw)return 0;const t=this.canvas,i=this.canvas.view,s=!t.ds&&t.yt.ci;!t.yt.xi&&(s||!t.yt.ki&&t.tt)&&i.ci(0);const e=i.width,h=i.height,o=this.cpw,n=this.cph;this.Ai=Math.min(o/e,n/h),s&&!this.#dt&&this.Ai>=this.us&&t.yt.ki&&(this.Ai=this.us),(!t.yt.xi&&!this.#dt||t.tt)&&(this.Ai=Math.max(this.R*this.j,this.Ai)),!this.#pt&&t.xs&&(this.Ai=this.H);const r=o/this.Ai-e,a=n/this.Ai-h;return i.set(i.ti,i.ii,i.width+r,i.height+a),!this.#pt&&t.xs&&this.canvas.yt.bi.ai(i),!t.yt.xi&&t.tt&&i.ci(0),this.#pt=this.cpw>0,this.#mt?(this.#mt=0,this.setCoo(this.#ut.x,this.#ut.y,this.#ut.scale),0):1}Ts(){const t=this.canvas.view;return!this.canvas.ds&&((!tt(t.x0,t.lX0)&&t.x0<t.lX0)!=(!tt(t.x1,t.lX1)&&t.x1>t.lX1)||(!tt(t.y0,t.lY0)&&t.y0<t.lY0)!=(!tt(t.y1,t.lY1)&&t.y1>t.lY1)||!tt(this.Ai,this.us)&&this.Ai>this.us)}kt(t,i,s=0,e=0,h=0,o=0){const n=this.canvas;if((this.yi()||this.#dt)&&!h)return;this.canvas.ds&&(e=1);const r=n.ps?n.parent.el.ratio:n.el.ratio,a=n.view,c=t/n.width/this.Ai*r,l=i/n.height/this.Ai*r,u=a.ti+c,d=a.ii+l,p=a.width,m=a.height;this.#dt?(n.view.set(u,d,p,m),n.D(u,d,p,m,e,0,0,0)):h||!this.Ts()||o?(n.yt.stop(),0===s?(o||n.Ji.addStep(4*t,4*i),n.view.set(u,d,p,m),e||n.view.ci(0,0,n.ds),n.D(u,d,p,m,e,0,0,o),n.view.ni=1):n.yt.Pi(u,d,p,m,s,nt)):n.yt.Ti()?n.yt.Si(u,d,a.width,a.height,1):n.yt.Pi(u,d,p,m,150,nt,{limitViewport:!e&&!this.#dt,correct:!e})}bt(t,i,s,e=0,h){const o=this.canvas;if(o.Ji.stop(),!this.#dt&&this.W()&&0>t)return 0;if(this.canvas.ds&&(h=1),t>0&&this.U()&&this.j>=1&&(!this.#dt||o.tt))return 0;const n=o.el,r=o.view,a=this.cpw/this.cph;let c=t*(n.width/512)/o.width/this.Ai,l=c/a;0>t&&-1>c&&(c=-.9999),0>t&&-1>l&&(l=-.9999);const u=!h&&!o.ds&&o.yt.ci&&0===e,d=o.ps?o.parent.el.ratio:n.ratio;i-=n.left,s-=n.top;const p=this.yi(),m=i>0&&!p?i/n.width*d:.5,f=s>0&&!p?s/n.height*d:.5,g=r.ti+c*(.5-m),v=r.ii+l*(.5-f),w=r.width+c,M=r.height+l;return o.yt.ci=u,e=o.yt.Pi(g,v,w,M,e,nt,{limitViewport:!h&&!this.#dt,correct:u}),o.yt.bi.ai(o.view),o.yt.ci=!h,e}Ki(t,i,s,e,h,o,n){!this.canvas.main.Ps&&this.Ai>this.R&&this.kt(i,s,0,0,1),this.bt(2*t*o.scale,e,h,0,!this.canvas.Ss),n.yt.ci=!!this.canvas.Ss}Qi(){this.#dt=1}ts(){this.#vt(),this.#dt=0,super.ts()}#vt(){if(this.canvas.ds)return;const t=this.canvas.view,i=this.Ai>this.us,s=i?this.cpw/this.us:t.width,e=i?this.cph/this.us:t.height,h=s/2,o=e/2,n=t.hi/2,r=t.oi/2,a=n>h?Math.max(t.lX0+h,Math.min(t.ti,t.lX1-h)):t.si,c=r>o?Math.max(t.lY0+o,Math.min(t.ii,t.lY1-o)):t.ei;this.canvas.yt.Pi(a,c,s,e,150,nt,{correct:1})}es(t,i,s){if(!this.#pt){this.#mt=1;const e=this.#ut;return e.x=t,e.y=i,e.scale=s,this._s(),1}return 0}rs(t){return Math.max(this.R,t)}cs(t){return{w:1/t*this.cpw,h:1/t*this.cph}}ls(t,i,s,e,h){0===h&&(t+s/2>1&&(t=1-s/2),0>t-s/2&&(t=s/2),i+e/2>1&&(i=1-e/2),0>i-e/2&&(i=e/2))}Z=0;q=0;Es(){const t=this.canvas,i=t.view,s=t.F,e=s.Is;e.Li(s.Li,t.el.wi,1e-4,100),e.Ri(-(i.ti-.5)*t.aspect,i.ii-.5,-i.height/2)}},jt=class{Cs;zs;#d;Ls;As;$s;#wt;Ds;Os;constructor(t,i,s,e,h,o,n){this.#d=t,this.Ls=i,this.As=s,this.$s=e,this.#wt=h,this.Ds=o,this.Os=n,this.Cs=h/t.width,this.zs=h/t.height}Fs(t,i){const s=t-this.As,e=s%this.Ds,h=Math.floor(s/this.Ds),o=this.#d;return i.x0=o.x0+e*this.#wt/o.width*o.Vs,i.y0=o.y0+h*this.#wt/o.height*o.Ns,i.x1=o.x0+Math.min((e+1)*this.#wt/o.width,1)*o.Vs,i.y1=o.y0+Math.min((h+1)*this.#wt/o.height,1)*o.Ns,i.image=o,i.layer=this.Ls,i.x=e,i.y=h,i}},Wt=class t{static#Mt=[];static#yt=new Uint8Array(0);static#_t=0;#bt=new Ht;#kt=new Yt;#xt=0;Bs=[];#Tt=0;Gs=0;x0=0;y0=0;x1=1;y1=1;Vs=1;Ns=1;#Pt=.5;#St=.5;#Et=1;#It=1;#Ct=0;#zt=0;#Lt=-1;#At=0;#$t=0;Ys=0;Hs;#Dt=0;#Ot=0;Rs=0;#Ft=0;Xs=0;static#Vt=new Float64Array(200);static#Nt=new Float64Array(200);static#Bt=new Float64Array(200);static#Gt=0;static#Yt=0;#u;Ls;ct;width;height;#wt;#Ht;At;#Rt;opacity;Ws;ut;dt;ft;#Xt;#jt;constructor(t,i,s,e,h,o,n,r,a,c,l,u,d,p,m,f,g){this.#u=t,this.Ls=i,this.ct=s,this.width=e,this.height=h,this.#wt=o,this.#Ht=n,this.At=a,this.#Rt=c,this.opacity=l,this.Ws=u,this.ut=d,this.dt=p,this.ft=m,this.#Xt=f,this.#jt=g;const v=e>h?e:h;this.#Ft=this.#u.is360&&this.ct>0,this.#Tt=r&&!n?2:1;for(let M=o;M<v*t.main.Us;M*=2)this.#Tt++;(t.main.Zs||this.#jt>0)&&(this.#Tt-=3-t.main.qs),this.#jt>0&&this.#Tt--,this.#Tt=Math.max(1,this.#Tt);let w=c;for(let M=0;M<this.#Tt;M++){const t=J(M)*this.#wt,i=Math.ceil(e/t),s=Math.ceil(h/t);this.Bs.push(new jt(this,this.Bs.length,w,this.Hs=w+=i*s,t,i,s))}}lt(t,i,s,e){this.x0=t,this.y0=i,this.x1=s,this.y1=e,this.#Et=s+(t>s?1:0)-t,this.#It=e-i,this.#Pt=t+this.#Et/2,this.#St=i+this.#It/2,this.#u.is360&&(this.#Pt=Z(this.#Pt)),this.Vs=this.#Et,this.Ns=this.#It,this.#Dt=this.width/this.height,this.#xt=this.#Dt>this.#u.aspect?this.#u.width/this.width*this.Vs:this.#u.height/this.height*this.Ns,this.#u.is360&&this.#Wt()}#Wt(){let t=2*(this.#Pt-.5)*Math.PI;const i=(this.#St-.5)*Math.PI;t+=this.#u.F.Js,this.#Ct=Math.cos(i)*Math.sin(t),this.#zt=Math.sin(i),this.#Lt=Math.cos(i)*Math.cos(t),this.#At=2*this.#Et*Math.PI,this.#$t=this.#It*Math.PI}#Ut(){if(!this.#u.is360)return 0;const t=this.#u.F,i=this.#Ct*t.Ks+this.#zt*t.Qs+this.#Lt*t.te;return Math.acos(Math.max(-1,Math.min(1,i)))<t.ie+Math.max(this.#At,this.#$t)/2}#Zt(){if(this.#Ft)return!this.#Ut();{const t=this.#u.view;return!(this.x1>t.x0&&this.x0<t.x1&&this.y1>t.y0&&this.y0<t.y1)}}se(){return this.#jt>0&&this.#jt>this.#u.camera.Ai||(this.At||this.ct>0)&&0===this.opacity&&0===this.Ws?0:this.Ls===this.#u.zi||this.#u.is360&&0===this.ct?1:!this.#Zt()}ee(t){const i=this.Ws;if(this.opacity===i)return 0;const s=1/(this.#u.main.he*this.#u.main.oe);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}ne(i){if(0>=this.opacity)return 0;this.#Ot=0;const s=t.#Mt;let e=t.#yt;if(this.#Ft){if(i=this.#qt(i),!(this.Rs=i>0))return 0}else i=Math.max(i,this.#u.camera.R)*this.#xt;const h=this.Hs-this.#Rt;e.length<h?e=t.#yt=new Uint8Array(h):e.fill(0,0,h),t.#_t=this.#Rt;const o=this.Hs-1,n=o-this.#Rt;0===this.Ys?(s.push(o),e[n]=1,this.#u.main.re(o,1,1)):this.#Ft&&(s.push(o),e[n]=1,this.#Ot++);const r=this.#Jt(i),a=this.#u;if(0===this.ct&&a.is360)this.#Kt(this.Bs[r]);else if(this.#Ft)this.#Qt(r),this.#Ot++;else if(a.visible.x0<a.visible.x1&&a.visible.y0<a.visible.y1){const t=a.view;this.#ti(r,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.ae.push(t);return s.length=0,this.#Ot}#Jt(t){let i=this.#Ht||this.#u.ce?this.#Tt:1+this.#u.main.le;if(!this.#Ht&&!this.#u.ce)for(;i<this.#Tt&&1>J(i)*t;i++);return this.Gs=i-1}#ti(t,i,s,e,h){if(this.#Zt())return;const o=this.Bs[t],n=o.Cs,r=o.zs,a=this.Vs,c=this.Ns,l=Math.min(o.Ds-1,Math.floor(Math.max(0,e-this.x0)/a/n)),u=Math.min(o.Os-1,Math.floor(Math.max(0,h-this.y0)/c/r)),d=Math.floor(Math.max(0,i-this.x0)/a/n);let p=Math.floor(Math.max(0,s-this.y0)/c/r);for(;u>=p;p++)for(let t=d;l>=t;t++)this.#ii(o,t,p)}#Qt(t){if(this.#Zt())return;const i=this.Bs[t],s=this.#u,e=s.view.ii,h=s.view.width+.1,o=s.view.height+.1,n=this.#Pt,r=this.#St,a=this.#Et,c=this.#It,l=Math.max(e-o/2,r-c/2),u=Math.min(e+o/2,r+c/2);if(l>=u)return;const d=s.is360?Z(s.view.ti+s.F.ue):s.view.ti;let p,m;if(s.is360){const t=Z(d-h/2),i=Z(d+h/2),s=Z(n-a/2),e=Z(n+a/2);if(i>t&&e>s){if(p=Math.max(t,s),m=Math.min(i,e),p>=m)return}else if(t>i&&e>s){if(s>i&&t>e)return;p=s,m=e}else if(i>t&&s>e){if(t>e&&s>i)return;p=t,m=i}else p=Math.max(t,s),m=Math.min(i,e);const o=n-a/2;n+a/2>1?(o>p&&(p+=1),o>m&&(m+=1)):p>n+.5?p-=1:m>n+.5&&(m-=1)}else if(p=Math.max(d-h/2,n-a/2),m=Math.min(d+h/2,n+a/2),p>=m)return;const f=n-a/2,g=r-c/2,v=i.Cs,w=i.zs,M=Math.floor(Math.max(0,Math.min(1,(p-f)/a))/v),y=Math.min(i.Ds-1,Math.floor(Math.max(0,Math.min(1,(m-f)/a))/v)),_=Math.floor(Math.max(0,Math.min(1,(l-g)/c))/w),b=Math.min(i.Os-1,Math.floor(Math.max(0,Math.min(1,(u-g)/c))/w));for(let k=_;b>=k;k++)for(let t=M;y>=t;t++)this.#ii(i,t,k)}#ii(i,s,e){const h=t.#yt,o=t.#_t,n=Math.min(this.Hs-1,i.As+e*i.Ds+s),r=n-o;if(r<h.length){if(h[r])return;h[r]=1}t.#Mt.push(n),1>this.#u.main.re(n,n===this.Hs-1,this.#u.Vt)?this.#Ht||this.#u.ce||i.Ls>=this.#Tt-1||this.#ii(this.Bs[i.Ls+1],s>>1,e>>1):this.#Ot++}de(t){const i=this.#u.main.pe,s=2*Math.PI*this.#u.F.me,e=this.#bt,h=this.#kt,o=this.x0+this.Vs/2,n=this.y0+this.Ns/2,r=this.#u.F.fe(o-this.#u.F.ue,n,1,5);h.Ni(),h.Ri(r.x,r.y,r.z),h.Gi(Math.atan2(r.x,r.z)+Math.PI+this.dt),h.Bi(-Math.sin((n-.5)*Math.PI)-this.ut),h.Yi(-this.ft),h.Hi(.5*this.#Xt);const a=(t.x0-o)*s,c=(t.x1-o)*s,l=.5*-(t.y0-n)*s,u=.5*-(t.y1-n)*s,d=(t,i)=>{e.x=0,e.y=0,e.z=0,h.Ri(t,i,0),e.Ui(h),h.Ri(-t,-i,0)};d(a,l),i[0]=e.x,i[1]=e.y,i[2]=e.z,d(a,u),i[3]=e.x,i[4]=e.y,i[5]=e.z,d(c,l),i[6]=e.x,i[7]=e.y,i[8]=e.z,d(c,u),i[12]=e.x,i[13]=e.y,i[14]=e.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.#Et,this.#It)*(this.#u.width/this.width);const i=this.#Et,s=this.#It,e=this.#Pt,h=this.#St,o=this.#u.el,n=this.#u.F,r=o.width,a=s/2.5;let c=0;const l=n.N(e-i/2,h-a);if(l.di(o)&&c++,n.N(e+i/2,h-a).di(o)&&c++,n.N(e-i/2,h+a).di(o)&&c++,n.N(e+i/2,h+a).di(o)&&c++,0===c)return 0;const u=l.w>0||0>l.x?0:Math.min(r,l.x),d=l.w>0||l.x>r?r:Math.max(0,l.x);return Math.min(1,(d-u)/this.width)}#Kt(i){const s=this.#u,e=s.el.width,h=s.el.height,o=s.F.ie>Math.PI/2?20:12,n=s.F.ue;t.#Gt=0;const r=(i,e)=>{const h=s.F.O(i,e),o=t.#Gt++;t.#Vt[o]=h.x,t.#Nt[o]=h.y};for(let t=0;o>=t;t++){const i=t/o;r(i*e,0),r((1-i)*e,h),r(e,i*h),r(0,(1-i)*h)}for(let t=1;3>=t;t++){const i=h*t/4;for(let t=1;3>=t;t++)r(e*t/4,i);r(e*t/4,h-1)}const a=t.#Gt;let c=1/0,l=-1/0;for(let b=0;a>b;b++){const i=t.#Nt[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.#Bt;for(let t=0;a>t;t++)u[t]=Z(u[t]-n);t.#Yt=0;for(let b=0;a>b;b++){const i=u[b];let s=0;for(let e=0;e<t.#Yt;e++)if(1e-8>Math.abs(d[e]-i)){s=1;break}s||(d[t.#Yt++]=i)}const p=t.#Yt;for(let t=1;p>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,f=1,g=0;if(2>p)g=1,c=0,l=1;else{let t=0,i=-1;for(let h=0;p-1>h;h++){const s=d[h+1]-d[h];s>t&&(t=s,i=h)}const s=d[0]+1-d[p-1],e=s>t;e&&(t=s,i=p-1),.999999>1-t?e?(m=d[0],f=d[p-1]):(m=d[(i+1)%p],f=d[i]+1):g=1}(.05>c||l>.95)&&(g=1);const v=i.zs,w=i.Cs;let M=Math.max(0,Math.floor((c-.001)/v)),y=Math.min(i.Os-1,Math.max(0,Math.floor((l+v-1e-10)/v)));1e-5>c&&(M=0),l>.99999&&(y=i.Os-1);const _=f>1;for(let t=M;y>=t;t++)if(g)for(let s=0;s<i.Ds;s++)this.#ii(i,s,t);else{const s=Math.max(0,Math.floor((m-.001)/w)-1);if(_){for(let h=s;h<i.Ds;h++)this.#ii(i,h,t);const e=Math.min(i.Ds-1,Math.ceil(Z(f+.001)/w));for(let s=0;e>=s;s++)this.#ii(i,s,t)}else{const e=Math.min(i.Ds-1,Math.ceil((f+.001)/w));for(let h=s;e>=h;h++)this.#ii(i,h,t)}}}},Ut=class extends Rt{Is=new Yt;#si=new Yt;#ei=new Yt;#hi=1;#oi=new Yt;#ni=new Ht;me=10;Ai=0;#ri=1;#ai=0;ue=0;#ci=0;#li=0;Js=0;Z=0;q=0;ge=Math.PI/2;Li=Math.PI/2;$i=Math.PI/2;Di=Math.PI/2;Ks=0;Qs=0;te=-1;ie=0;fs=new Ht;#lt=new Vt;constructor(t){super(t),this.Js=-this.canvas.ve,this.ue=this.Js/(2*Math.PI),this.#ri=this.canvas.height/(this.canvas.width/2),this.#ai=(1-this.#ri)/4,this.Z=this.Js,this.we()}st(t,i){this.#ci=t,this.#li=i,this.$i=Math.PI/2,i>0&&(this.$i=Math.min(this.$i,this.$i*i*1.5)),this.Vi(this.Li,1)}we(t=0){const i=this.canvas.el;t||this.Is.Li(this.Li,i.wi,1e-4,20),this.#hi=1;const s=this.Is;this.q=Math.min(Math.PI/2,Math.max(-Math.PI/2,this.q)),s.Bi(this.q),s.Gi(this.Z),s.Ri(this.#ni.x,this.#ni.y,this.#ni.z);const e=this.#oi;e.Xi(this.Li),e.Ri(0,0,i.height/i.ratio/2),e.Bi(-this.q),e.Gi(this.Z),this.#lt.direction=this.Z/Math.PI*180%360}_i(t,i,s=0){const e=this.canvas,h=e.el;this.Z+=t*h.ratio/h.width*this.Li*h.wi,this.q+=i*h.ratio/h.height*this.Li*this.#ri,this.Z=q(this.Z),(e.tt||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),0===s&&e.Ji.addStep(2*t,2*i),this.we(),this.Me(),this.#pi()}#ui(){const t=this.Li/2,i=Math.PI*this.#ri/2*(this.#li>0?this.#li:1);this.q=this.q>0?Math.min(i,this.q+t)-t:Math.max(-i,this.q-t)+t}#di(){const t=this.Li/2*this.canvas.el.wi,i=Math.PI*(this.#ci>0?this.#ci:1);let s=this.Z;for(;s>=Math.PI;)s-=2*Math.PI;for(;s<-Math.PI;)s+=2*Math.PI;this.Z=q(Math.min(Math.max(i,t)-t,Math.max(Math.min(-i,-t)+t,s)))}#mi(t,i,s,e=0,h=0,o=0){const n=this.canvas;if(t/=2,0!==i)i=n.yt.zoom(t,i,e,s);else{t/=this.Ai*n.Ei/20;const i=h>0&&o>0;let e=0,r=0;if(i){const t=this.O(h,o);e=t.x,r=t.y}if(this.Vi(this.Li+t,s),i){const t=this.O(h,o);let i=e-t.x;i>.5&&(i-=1),-.5>i&&(i+=1);const s=r-t.y;this.Z+=i*Math.PI*2,this.q+=s*Math.PI*this.#ri,this.Z=q(this.Z),(n.tt||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),this.we(),this.#fi(),this.Me(),this.#pi()}}return i}Vi(t,i){const s=this.canvas;this.Li=t,i&&!s.is360||(this.Li=Math.min(this.$i,Math.max(this.Di,this.Li))),(s.tt||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),this.Is.Li(this.Li,s.el.wi,1e-4,20),this.#fi(),this.we(1),this.Me(),this.#pi()}#fi(){const t=this.canvas.el,i=t.width/2,s=t.height/2,e=this.O(i,s).x,h=this.O(i+1,s+1).x;this.Ai=1/(h+(e>h?1:0)-e)/this.canvas.width}J(t,i,s=0){this.Z=q(t-this.Js),this.q=i,0!==s?this.Vi(s,0):this.we(),this.Me(),this.#pi()}D(t,i,s,e,h){if(null==t||null==i||null==e)return 0;const o=h?.noLimit??0,n=h?.correctNorth?t+this.ue:t;return this.Z=(n-.5)*Math.PI*2,this.q=(i-.5)*Math.PI*this.#ri,this.Vi(Math.min(this.$i,e*Math.PI*this.#ri),o),this.Me(),this.#pi(),1}#pi(){const t=this.canvas,i=Z(this.Z/(2*Math.PI)+.5),s=this.q/this.#ri/Math.PI+.5,e=this.Li/Math.PI/this.#ri,h=e*(0===t.el.width?1:.5*Math.sqrt(t.el.wi))/(t.aspect/2);t.view.set(i,s,h,e),t.view.ni=1}Me(){const t=this.Z,i=this.q;this.Ks=Math.cos(i)*Math.sin(t),this.Qs=Math.sin(i),this.te=Math.cos(i)*Math.cos(t);const s=2*Math.atan(1/this.Li),e=this.canvas.el.width/this.canvas.el.height,h=s/2,o=Math.atan(Math.tan(h)*e);this.ie=2*o}ye(t,i,s,e=0){const h=this.#ni,o=s*Math.PI*2+e;h.x=-t*Math.sin(o),h.y=i,h.z=t*Math.cos(o),this.canvas.view.ni=1,this.we()}_e(){const t=this.canvas,i=t.el;this.Di=Math.min(.5,i.height/t.height)/t.maxScale*this.#ri*Math.PI/i.ratio*i.scale,this.Vi(this.Li,1)}#gi(){this.#hi&&(this.#ei.ai(this.Is),this.#ei.ji(),this.#hi=0)}O(t,i){const s=this.canvas.el,e=this.fs,h=this.#lt;return e.x=t*s.ratio/s.width*2-1,e.y=-(i*s.ratio/s.height*2-1),e.z=1,e.w=1,this.#gi(),e.Ui(this.#ei),e.Zi(),h.x=Math.atan2(e.x,-e.z)/Math.PI/2+.5,h.y=.5-Math.asin(e.y)/Math.PI/this.#ri,h.scale=this.Ai,h.w=this.#ni.x+this.#ni.z,h.direction=this.Z+this.Js,h.pi(),h}N(t,i){const s=this.canvas.el,e=this.fs,h=this.#lt;return this.fe(t+this.ue,i),h.x=(e.x+1)/2*s.width/s.ratio,h.y=(1-e.y)/2*s.height/s.ratio,h.scale=this.Ai,h.w=-e.w,h.pi(),h}fe(t,i,s=0,e=this.me){const h=this.fs;t*=2*-Math.PI,i-=.5,i*=-Math.PI,i*=this.#ri;const o=Math.cos(i);return h.x=o*Math.sin(t)*e,h.y=Math.sin(i)*e,h.z=o*Math.cos(t)*e,h.w=1,s||h.Ui(this.Is),h}nt(t,i,s,e,h,o,n,r=0,a=1,c=1,l=0){isNaN(e)&&(e=this.me);const u=this.#si,d=this.fs,p=this.me,m=this.#ni;u.Ni(),e*=this.me*(100/(2*Math.PI)),t*=2*-Math.PI,i-=.5,i*=Math.PI*this.#ri;const f=Math.cos(i);return d.x=f*Math.sin(t),d.y=Math.sin(i),d.z=f*Math.cos(t),u.Ri(m.x*e/p,-m.y*e/p+r*p,m.z*e/p),u.Ri(d.x*e,d.y*e,d.z*e),u.Gi(Math.atan2(d.x,d.z)+Math.PI+o),u.Bi(d.y+h),u.Yi(n),u.Ai(a,c),u.Hi(s/Math.PI/p),u.Wi(this.#oi),u}be(t,i,s,e){i*=this.#ri,i/=2,i-=.25,i+=this.#ai,e*=this.#ri,e/=2;const h=this.canvas.main.ke,o=this.me,n=s/16,r=e/16,a=2*Math.PI;for(let c=0;16>c;c++)for(let s=0;16>s;s++){const e=18*(16*c+s),l=-Z(t+n*s+this.ue)*a,u=-(i+r*c)*a,d=-Z(t+n*(s+1)+this.ue)*a,p=-(i+r*(c+1))*a,m=Math.cos(l)*o||0,f=Math.sin(l)*o||0,g=Math.cos(d)*o||0,v=Math.sin(d)*o||0,w=Math.cos(u),M=Math.cos(p),y=Math.sin(u)*o,_=Math.sin(p)*o;h[e+0]=w*f,h[e+1]=y,h[e+2]=w*m,h[e+3]=h[e+9]=M*f,h[e+4]=h[e+10]=_,h[e+5]=h[e+11]=M*m,h[e+6]=h[e+15]=w*v,h[e+7]=h[e+16]=y,h[e+8]=h[e+17]=w*g,h[e+12]=M*v,h[e+13]=_,h[e+14]=M*g}}R=0;us=0;H=0;j=1;it(){}Ts(){return 0}yi(){return 0}U(t=0){return this.Li>=this.$i}W(){return this.Li<=this.Di}kt(t,i,s=0,e=0,h=0,o=0){this._i(t,i,s)}bt(t,i,s,e=0,h){return this.#mi(t,e,h,0,i,s)}Ki(t,i,s){this.#mi(2*t,0,0),this._i(i,s)}ss(t){const i=this.canvas.view.ti;return i+st(i,t)}cs(t){const i=this.canvas.main.el;return{w:1/t*i.width,h:1/t*i.height}}},Zt=class t{view;focus;yt;Ji;G;F;camera;#vi=new Ot;el=new Nt;images=[];Ei=0;#wi=[];#Mi;#yi;#_i;visible;#bi;#ki=1;#xi=0;#Ti=0;#Pi=0;get zIndex(){return this.#Ti}set zIndex(t){this.#Ti!==t&&(this.#Ti=t,this.parent&&(this.parent.#Pi=1))}ae=[];aspect;#Si=0;#Ei=0;Vt=0;#Ii=0;#Ci=0;zi=-1;gs=0;Ms=0;vs=0;ws=0;ce=0;layer=0;xe;#wt;is360;Ot;#zi;ds;xs;maxScale;ks;Ii;ve;#Li;#Ai;isOmni;Ss;Ci;main;width;height;Te;tt;ps;constructor(t,i,s,e,h,o,n,r,a,c,l,u,d,p,m,f,g,v,w,M,y,_,b=0){this.main=t,this.width=i,this.height=s,this.Te=e,this.tt=h,this.ps=b,this.#wt=o,this.is360=n,this.Ot=r,this.#zi=a,this.ds=c,this.xs=h?1:l,this.maxScale=u,this.ks=d,this.Ii=p,this.ve=m,this.#Li=f,this.#Ai=g,this.isOmni=v,this.Ss=w,this.Ci=M,this.#Si=t.Pe.length,b||t.Pe.push(this),this.aspect=i/s,this.Ei=Math.sqrt(i*i+s*s),this.view=new Ft(this),this.focus=new Ft(this),this.yt=new Gt(this),this.Ji=new Bt(this),this.G=new Xt(this),this.F=new Ut(this),this.camera=this.is360?this.F:this.G,this.#Mi=new Ft(this),this.#yi=new Ft(this),this.#_i=new Ft(this),this.visible=new Ft(this),this.#bi=new Ft(this),n&&this.view.set(.5,.5,1,.5),b||(this.el.ai(t.el),this.D(this.view.ti,this.view.ii,this.view.width,this.view.height,0,0),this._e()),r?(this.main.Se++,this.#Ii=1,this.Vt=1,this.#Ci=1,_>0&&this.Wt(_)):this.Ee(0,0,1,1,i,s,o,y,a,0,e)}parent;#$i(t){this.parent=t,this.#Si+=t.#wi.length}Ee(t,i,s,e,h,o,n,r,a,c,l,u=0,d=0,p=0,m=1,f=0){const g=new Wt(this,this.main.Se++,this.images.length,h,o,n,r,a,c,this.main.Ie,l,l,u,d,p,m,f);return g.lt(t,i,s,e),this.images.push(g),this.main.Ie=g.Hs,1===this.images.length&&this.Fi(0),g}Ce(i,s,e,h,o,n,r={}){const a=r.coverLimit??1,c=r.coverStart??1,l=new t(this.main,o,n,1,a,this.#wt,0,0,this.main.Zs||this.#zi,0,c,1,1,this.Ii,0,0,0,0,this.Ss,1,0,0,1);return l.#$i(this),l.lt(i,s,e,h,1,1),this.#wi.push(l),l}#Di(){const t=1/(0!==this.main.ze||0!==this.main.Le?this.main.Ae:1!==this.main.Pe.length||this.ps?this.main.$e:.25)/this.main.he,i=this.Te>0&&this.Te>=this.Vt;if(this.Vt=i?Math.min(1,this.Vt+t):Math.max(0,this.Vt-t),this.#Ii=nt.get(this.Vt),0!==this.main.ze||0!==this.main.Le){const t=0===this.Vt?0:nt.get(1-this.Vt)*(i?1:-1);this.F.ye(this.main.ze*t*8,this.main.Le*t*8,this.main.De)}}#Oi(t){this.xe?.visible?.set(t),this.#Ei=t}Oe(){this.Te=0,this.zIndex=0}Fe(){if(this.#Ci=1,!this.ps&&1===this.#yi.width&&1===this.#yi.height)for(let t=0;t<this.main.Pe.length;t++)this.main.Pe[t]!==this&&this.main.Pe[t].Oe();this.Te=1}Ve(){return!this.#xi&&1>this.#ki}#Fi(){return 0===this.Te&&0===this.Vt||0===this.#yi.width||0===this.#yi.height}Ne(){if(!this.Ve()&&this.#Fi())return void(this.#Ei&&this.#Oi(0));let t=1>this.yt.Oi()||1>this.Ji.step()||!this.#Ci;if(this.ae.length=0,this.#Vi(0)&&(t=1),!(this.is360||this.Ve()||this.visible.width>0&&this.visible.height>0))return void(this.#Ei&&this.#Oi(0));this.#Ei||1>this.Vt||this.#Oi(1),this.F.Me(),this.#Ci&&this.Vt!==this.Te&&(this.#Di(),t=1);const i=(this.is360?this.F.Ai:this.G.Ai)*this.el.scale,s=this.main;for(let e=0;e<this.images.length;e++){const h=this.images[e];h.se()?(e>0&&!h.Rs&&s.Be(h,h.Rs=1),h.At&&h.Xs&&(t=1),h.ee(this.#Li||1>this.Vt)&&(t=1),h.opacity>0&&(s.Ge+=h.ne(i))):h.Rs&&s.Be(h,h.Rs=0)}s.Ye+=this.ae.length,s.He=0===s.Ye?1:s.Ge/s.Ye;for(let e=0;e<this.#wi.length;e++)this.#wi[e].Ne();t&&(s.Re=1)}Xe(){if(0===this.Te&&0===this.Vt)return;const t=this.main,i=t.micrio.jt,s=this.el,e=this.view,h=this.yt.Ti();if(i.gl.viewport(this.el.left,t.el.height-s.height-s.top,s.width,s.height),i.gl.uniformMatrix4fv(i.je,0,this.F.Is.arr),this.#Ai)for(let n=0;n<this.images.length;n++){const t=this.images[n];t.x1>e.x0&&t.x0<e.x1&&t.y1>e.y0&&t.y0<e.y1&&(this.#Ni(t.Hs-1),i.We(void 0,t.Ws))}const o=this.#vi;for(let n=0;n<this.ae.length;n++){const i=this.ae[n];this.#Ni(i);const s=o.layer===o.image.Gs-1||!t.Ue&&o.layer===o.image.Gs,e=i===o.image.Hs-1,r=t.Ze(i);(s||1===r||e)&&t.We(o.image.Ls,i,o.layer,o.x,o.y,r*this.#Ii*o.image.opacity,h,o.layer===o.image.Gs-1)&&e&&(o.image.Ys=t.now,this.#Ci||this.Fe())}this.#Pi&&(this.#wi.sort((t,i)=>t.zIndex>i.zIndex?1:t.zIndex<i.zIndex?-1:0),this.#Pi=0);for(let n=0;n<this.#wi.length;n++)this.#wi[n].Xe();e.ni&&this.xe?.camera?.wt(),e.ni=0}#Vi(t){const i=this.main.el,s=this.ps,e=s?this.parent.hs():1/i.ratio,h=s?this.parent.width:i.width,o=s?this.parent.height:i.height,n=s?this.parent.view:this.#bi,r=this.view,a=this.#yi,c=this.#Mi,l=this.#_i,u=this.Ve();if(u){const t=1/this.main.qe/this.main.he;this.#ki=Math.min(1,this.#ki+t);const i=this.main.Je.get(this.#ki),s=c.ti+(l.ti-c.ti)*i,e=c.ii+(l.ii-c.ii)*i,h=c.width+(l.width-c.width)*i,o=c.height+(l.height-c.height)*i;a.set(s,e,h,o),1===this.#ki&&(1===this.zIndex&&(this.zIndex=0),c.ai(l)),this.view.ni=1}let d=Math.max(r.x0,r.x0+(n.x0-a.x0)/a.width*r.width),p=Math.min(r.x1,r.x0+(1-(a.x1-Math.min(a.x1,n.x1))/a.width)*r.width);this.is360||(d=Math.max(0,d),p=Math.min(1,p));let m=Math.max(Math.max(0,r.y0),r.y0+(n.y0-a.y0)/a.height*r.height),f=Math.min(Math.min(1,r.y1),r.y0+(1-(a.y1-Math.min(a.y1,n.y1))/a.height)*r.height);m=Math.max(m,0),f=Math.min(f,1);const g=(d+p)/2,v=(m+f)/2,w=p-d,M=f-m;this.visible.set(g,v,w,M);const y=s?1:i.ratio;return this.Te>=this.Vt&&this.el.set(a.width*e*h,a.height*e*o,(a.x0-n.x0)*h*e,(a.y0-n.y0)*o*e,y,s?1:i.scale,s?0:i.gi)&&(t||this.Ke(),this.view.ni=1,this._e(),this.is360||(this.G.ys(),this.G.Es())),u}lt(t,i,s,e,h,o){this.#xi=0,h?(this.#Mi.lt(t,i,s,e),this.#yi.lt(t,i,s,e)):(this.#Mi.ai(this.#yi),this.#ki=0,0===this.zIndex&&(this.zIndex=1),this.yt.ci=0),this.#_i.lt(t,i,s,e),this.#Vi(o),this.Ke()}#Ni(t){const i=this.#vi;if(this.#Bi(t),this.is360)0===i.image.ct?this.F.be(i.x0,i.y0,i.x1-i.x0,i.y1-i.y0):i.image.de(i);else{const t=this.main.pe,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}}Ke(){const t=this.main.el;this.xe?.Nt?.set([this.el.left/t.ratio,this.el.top/t.ratio,this.el.width/t.ratio,this.el.height/t.ratio])}#Bi(t){let i=0;for(;t>=this.images[i].Hs;)i++;const s=this.images[i];let e=0;for(;t>=s.Bs[e].$s;)e++;const h=s.Bs[e];return h.Fs(t,this.#vi),[i,h.Ls]}Qe(t){if(this.is360)return 0;const i=this.#vi,s=this.view,[e,h]=this.#Bi(t);return h>this.images[e].Gs?!!(i.x1>s.x0&&i.x0<s.x1&&i.y1>s.y0&&i.y0<s.y1):0}_e(){if(this.#wi.length){const t=this.main.el;this.width=t.width,this.height=t.height,this.Ei=Math.sqrt(t.width*t.width+t.height*t.height)}this.ps||(this.is360?this.F._e():(this.G.ys(),this.G.Es()))}th(){if(this.Ji.stop(),this.yt.stop(),this.images.length>0){const t=this.images[0];t.Ys=0,t.opacity=0}}ih(){this.#Oi(0),this.main.ih(this)}Wt(t){this.layer=t,this.Fi(this.zi),this.view.ni=1}Fi(t,i=0){const s=this.layer*(this.images.length/this.Ci);for(let e=0;e<this.images.length;e++){const h=this.images[e],o=e-s-t;0!==o?h.Ws=0>o||o>i?0:1:(h.Ws=1,this.zi=t,this.view.ni=1)}this.G.it()}D(t,i,s,e,h,o,n=0,r=0){const a=this.main.el;a.fi>0&&(e+=e/(1-a.fi/a.height),this.yt.ci=0,a.fi=0),a.mi>0&&(s+=s*(a.mi/a.width),this.yt.ci=0,a.mi=0),h&&(this.yt.ci=0),this.view.set(t,i,s,e),r&&!h&&this.view.ci(0,0,this.ds),o||this.yt.bi.ai(this.view),this.width>0&&(this.is360?(this.F.D(t,i,s,e,{noLimit:h,correctNorth:n}),this.view.set(t,i,s,e)):this.G._s()&&this.G.Es())}hs(){return this.is360?this.F.Ai:this.G.Ai}W(){const t=this.F;return this.is360?t.Li<=t.Di:this.G.W()}U(t=0){const i=this.F;return this.is360?i.Li>=i.$i:this.G.U(t)}it(t){this.G.it(t)}X(t){const i=this.G;i.R=t,i.it(),i._s(),this.F.we()}J(t,i,s=0){isNaN(i)&&(i=this.F.q),this.F.J(t,i,s?this.F.ge:0)}nt(t,i,s,e,h,o,n,r,a=1,c=1,l=0){const u=2e4/this.width;return this.F.nt(t,i,s*u,e,h,o,n,r,a,c,l).arr}ht(){this.#xi=1,this.yt.pause()}ot(){this.#xi=0,this.yt.resume()}et(){this.yt.stop();for(let t=0;t<this.#wi.length;t++)this.#wi[t].et()}S(){const t=this.xe?.camera;if(t){for(t.S&&t.S();t.C.length;)t.C.shift()?.();t.I=t.S=void 0}}I(){const t=this.xe?.camera;t&&(t.I&&t.I(),t.C.length=0,t.I=t.S=void 0)}},qt=class t{ready=0;el=new Nt;pe=new Float32Array(18);ke=new Float32Array(4608);Pe=[];Ie=0;Se=0;now=0;Re=0;He=0;Ye=0;Ge=0;$e=.25;qe=.5;Je=nt;Ae=.5;oe=.5;Mi=1;sh=0;Zs=0;qs=0;Us=4;le=0;Ue=0;bs=0;Ps=0;De=0;ze=0;Le=0;he=1/60;#Gi=[];#Yi=0;#Hi=[];#Ri=new Set;#Xi=new Set;#ji=new Set;#Wi=new Map;#Ui=new Map;#Zi;#qi=[];#Ji=new Map;#Ki=new Map;eh=0;static hh=t.#Qi(1,1);static oh;#ts=0;#is=-1;#ss=0;#es=null;#hs=new Map;Yt(t){return this.#hs.get(t)?.canvas}#os(t){this.#hs.set(t.micrioImage,t)}micrio;constructor(t){this.micrio=t,this.#Zi=xt.iOS?5:R(this.micrio.canvas.isMobile)?30:90,this.render=this.render.bind(this),this.#qi.push(t.current.subscribe(this.#ns.bind(this)))}static#Qi(t,i){const s=new Float32Array(12*t*i),e=1/t,h=1/i;for(let o=0,n=0;i>n;n++)for(let i=0;t>i;i++,o+=12)s[o+3]=s[o+7]=s[o+9]=(s[o+1]=s[o+5]=s[o+11]=n*h)+h,s[o+4]=s[o+8]=s[o+10]=(s[o+0]=s[o+2]=s[o+6]=i*e)+e;return s}nh(){this.ready||(t.oh=t.#Qi(16,16),this.ready=1,this.#qi.push(this.micrio.barebone.subscribe(t=>{this.Ue=t,this.#Yi=t})))}We=(t,i,s,e,h,o,n,r)=>{this.#Ri.add(i);const a=this.#rs(i);a.rh=void 0;const c=$t(),l=this.#Gi[t],u="camera"in l,d=u&&l.At,p=u&&l.A,m=u?l:l.image,f="ah"in l?l.ah:void 0,g=u&&l.$settings.noSmoothing;if(0===a.uh&&Pt>c){if(this.#Yi?c>2&&n:r&&n&&c>0)return 0;if(d&&!p)a.uh=2,a.dh=this.micrio.jt.ph();else{a.uh=1;const t=m.Rt(s,e,h,f);if(!t)return a.uh=0,0;this.ph(i,t,n,{noSmoothing:g})}}else if(a.uh>=2){if(this.#ss||this.#as(),a.dh){if(d){if(!m.Ct||!m.Ct.dataset.playing)return 0;this.micrio.jt.mh(a.dh,m.Ct)}this.micrio.jt.We(a.dh,o,p)}return 2===a.uh&&(a.uh=3,a.fh=this.now),1}return 0};Ze=t=>this.#Wi.get(t)?.Vt||0;re=(t,i=0,s=1)=>{const e=this.#Wi.get(t);return e?(1>e.Vt&&(e.Vt=i?1:e.fh&&e.fh>0?Math.min(1,(this.now-e.fh)/250)*s:0),e.Vt):0};Be=(t,i)=>{const s=this.#Ji.get(t);s&&"visible"in s&&s.visible.set(i)};gh(){for(this.#cs();this.#qi.length;)this.#qi.pop()?.();this.#Ui.forEach(t=>Dt(t)),this.#Ui.clear();for(const[t,i]of this.#Wi.entries())i.wh&&clearTimeout(i.wh),this.#ls(t);this.#Wi.clear(),this.#us()}#ds(t){if(this.sh)return;const i=t.$info;if(!i)return;if(t.error)return void this.micrio.Mh.set(0);if(!(t.Ot||i.width&&i.height))throw new Error("Invalid Micrio image size");const s=t.$settings;this.#ts=!!R(this.micrio.gallery)||t.$t,s.gallery?.archive&&(this.Zs=1,this.qs=s.gallery.archiveLayerOffset??0),i.version&&3.1>=parseFloat(i.version)&&(this.Us=8),i.is360&&(s.limitToCoverScale=0);const e=!!s.limitToCoverScale,h=e||"cover"==s.initType;t.Ot&&this.micrio.Mh.set(0);const o=[.5,.5],n=s.focus,r=!!i.spacesId;n&&(isNaN(n[0])||null===n[0]||(o[0]=n[0]),isNaN(n[1])||null===n[1]||(o[1]=n[1]));const a=s.l?.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 Zt(this,i.width,i.height,t.Vt,e,i.tileSize??1024,i.is360??0,t.Ot,!!i.isDeepZoom,s.freeMove??0,h,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.$t,s.pinchZoomOutLimit??0,u,!(!i.isSingle&&!c),s.omni?.layerStartIndex??0,0);t.rt=1,d.xe=t,this.#os({canvas:d,micrioImage:t,camera:t.camera}),this.#Gi.push(t),this.#ps(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.$e=s.crossfadeDuration),s?.embedFadeDuration&&(this.oe=s.embedFadeDuration),void 0!==s?.dragElasticity&&(this.Mi=s.dragElasticity),s?.skipBaseLevels&&(this.le=s.skipBaseLevels),s?.omni&&(d.vs=-(s.omni.distance??0),d.gs=s.omni.fieldOfView??0,d.Ms=s.omni.verticalAngle??0,d.ws=s.omni.offsetX??0,t.state.view.set([0,0,1,1])),this.micrio.hasAttribute("data-limited")&&t.canvas&&(t.canvas.ce=1),d.Ke(),this.Ie>0&&this.#ms(this.Ie-1);const p=R(t.state.view)||s.view;!p||0==p[0]&&0==p[1]&&1==p[2]&&1==p[3]?!r&&i.is360||!o||"0.5,0.5"==o.toString()||(d.camera.setCoo(o[0],o[1],0),s.focus=void 0):d.D(p[0]+p[2]/2,p[1]+p[3]/2,p[2],p[3],0,0,0,0),t.video.subscribe(t=>t&&t.addEventListener("play",this.render)),t.Ot&&t.visible.set(1),this.#ns(t)}#ps(t){const i=this.#hs.get(t).canvas;t.camera.$(i)}#ns(t){if(t&&(!t.rt||t!==this.#es?.micrioImage)&&!this.sh)if(t.rt){if(t!==this.#es?.micrioImage){const i=this.#hs.get(t);if(!i)return;if(i.canvas.ps)return;const s=t.A&&this.#es?this.#es.canvas.F.q:0;if(this.#es=i,t.A&&!this.eh){const e=(this.De+.5)%1*Math.PI*2;i.canvas.J(e-t.camera.rotationY,s,1)}0===i.canvas.Te&&i.canvas.Fe(),t.$settings.omni?.layerStartIndex&&t.state.layer.set(t.$settings.omni.layerStartIndex),this.eh=0,this.ready=1,this.render()}}else{if(!R(this.micrio.current)||!t.$info.isIIIF&&t.$info.id!=R(this.micrio.current).id)return;this.#ds(t),t.Bt.length&&t.Bt.forEach(i=>this.qt(i,t))}}yh(t){t.rt||this.#ds(t)}_h(t){if(!t.rt)throw new Error("Canvas is not placed yet");const i=this.#hs.get(t);i&&(i.canvas.ih(),this.#hs.delete(t),this.render())}render(){this.sh||0>this.#is&&(this.#is=this.micrio.jt.bh.requestAnimationFrame(this.#fs))}#fs=(t=performance.now())=>{if(this.micrio.isConnected&&this.micrio.$current&&!this.sh){this.#is=-1,this.#ss=0,(this.Ne(t)||this.micrio.kh||this.micrio.events.isNavigating||0==this.micrio.$current?.Ct?.paused)&&this.render(),this.#ts&&this.#as(),this.#Ri.clear();for(let t=0;t<this.Pe.length;t++)this.Pe[t].Xe();this.micrio.events.Pt("draw"),this.#gs(),this.micrio.jt.xh()}};Ne(t){this.he=1e3/Math.min(33,t-this.now),this.now=t,this.Ge=0,this.Ye=0,this.Re=0;for(let i=0;i<this.Pe.length;i++)this.Pe[i].Ne();return this.Re||1>this.He}#cs(){0>this.#is||(this.micrio.jt.bh.cancelAnimationFrame(this.#is),this.#is=-1)}#rs(t){let i=this.#Wi.get(t);return i||(i={uh:0,Vt:0},this.#Wi.set(t,i)),i}#ms(t){this.#rs(t).Vt=1,this.#Hi.push(t)}#as(){this.#ss||(this.micrio.jt.Th(),this.#ss=1)}ph(t,i,s,e={}){if(this.#Wi.get(t)?.dh||this.#Ui.has(t)||!e.force&&$t()>=Pt)return;const h=bt.db.has(i);h||this.micrio.Mh.set(1),this.#Ui.set(t,i),(h?bt.Kt(i):(t=>new Promise((i,s)=>{Ct.push([t,i,s]),Lt()}))(i)).then(i=>this.#vs(t,i,s,e.noSmoothing)).catch(()=>this.#ws(t))}#vs(t,i,s,e){const h=this.#rs(t);h.dh=this.micrio.jt.ph(i,h.dh,e),void 0!==self.ImageBitmap&&i instanceof ImageBitmap&&i.close instanceof Function&&i.close(),h.uh=2,h.wh=setTimeout(()=>{this.#ws(t)},s?150:50)}#ws(t){this.#Ui.delete(t);const i=this.#Wi.get(t);i?.wh&&(clearTimeout(i.wh),i.wh=void 0),this.#Ui.size||this.micrio.Mh.set(0)}#ls(t){const i=this.#Wi.get(t);i&&(i.dh&&(this.micrio.jt.gl.deleteTexture(i.dh),i.dh=void 0),i.wh&&clearTimeout(i.wh),this.#Wi.delete(t))}#Ms(t){for(let i=0;i<this.Pe.length;i++)if(this.Pe[i].Qe(t))return 1;return 0}#gs(){const t=performance.now();for(const s of this.#Xi){if(this.#Ri.has(s))continue;if(this.#Hi.includes(s))continue;const i=this.#Wi.get(s);if(i&&0!==i.uh)switch(i.Vt=0,i.uh){case 1:const e=this.#Ui.get(s);e&&Dt(e),i.uh=0;break;case 2:this.#Ui.has(s)&&this.#ws(s),this.#ls(s);break;case 3:i.rh||(i.rh=t)}}const i=this.#Xi;this.#Xi=this.#ji,this.#ji=i,this.#ji.clear();for(const s of this.#Ri)this.#Xi.add(s);for(const[s,e]of this.#Wi.entries())e.rh&&(t-e.rh)/1e3>this.#Zi&&(this.#Ms(s)?e.rh=t:this.#ls(s))}_e(t){this.el.set(t.width,t.height,t.left,t.top,t.ratio,t.scale,t.portrait);for(let i=0;i<this.Pe.length;i++)this.Pe[i]._e();this.ready&&(this.#cs(),this.#fs())}#ys=(t,i,s=0,e=1,h)=>{this.sh||(this.#Gi.push(t),this.#_s(t,i,s,e,h))};#_s=(t,i,s,e,h)=>{const o="$info"in t?t.$info:i.$info;if(!o)return;const n=t.opts.area??[0,0,1,1],r=t instanceof _t?t.$settings.l??{}:{},a=this.#hs.get(i);if(!a)return;let c;if(s){const i=a.canvas.Ee(n[0],n[1],n[0]+n[2],n[1]+n[3],o.width,o.height,o.tileSize??1024,o.isSingle??0,o.isDeepZoom??0,o.isVideo??0,e,r.rotX??0,r.rotY??0,r.rotZ??0,r.scale??1,h??0);return this.#Ji.set(i,t),this.#Ki.set(t,i),t.rt=1,this.#os({canvas:a.canvas,micrioImage:t}),t.Lt=this.Ie-1,void this.#ms(t.Lt)}{if(!(t instanceof _t))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.Ce(n[0],n[1],n[0]+n[2],n[1]+n[3],o.width,o.height,s),c.xe=t}if(t.rt=1,this.#os({canvas:c,micrioImage:t,camera:t.camera}),!s){this.#ps(t);const i=t.$settings.focus;i?c.camera.setCoo(i[0],i[1],0):c.ps&&c.D(c.view.ti,c.view.ii,c.view.width,c.view.height,0,0),c.Ke()}t.Lt=this.Ie-1,this.#ms(t.Lt)};qt(t,i,s={}){this.sh||t.rt||this.#ys(t,i,1,s.opacity??1,"camera"in t&&s.asImage?void 0:s.fromScale)}Ce=(t,i)=>this.#ys(t,i);Ph(t,i,s=0){const e=this.#hs.get(t),h=e?.canvas;if(h){if(e.camera)h.Te=i;else{const t=h.images;for(let e=0;e<t.length;e++){const h=t[e];h.ct>0&&(h.Ws=i,s&&(h.opacity=i))}}this.render()}}Sh(t,i){const s=this.#Ki.get(t);s&&(s.Xs=i)}#us(){for(let t=0;t<this.Pe.length;t++)this.Pe[t].th()}ih(t){for(let i=0;i<this.Pe.length;i++)if(this.Pe[i]===t)return void this.Pe.splice(i,1)}},Jt=new Float32Array([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]),Kt=["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);","}"].join(""),Qt=class{Eh;#bs;#ks;#xs;#Ts;#Ps;#Ss;#Es;constructor(t,i,s){if(this.#Es=t,this.#xs=t.createProgram(),i.jt.Ih(this.#xs,t.VERTEX_SHADER,Kt),i.jt.Ih(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.#Ps=t.getAttribLocation(this.#xs,"a_texCoord"),this.#Ss=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.#Es.drawingBufferWidth,this.#Es.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.Eh=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.Eh),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,Jt,t.STATIC_DRAW)}Ch(){const t=this.#Es;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.#Ps),t.vertexAttribPointer(this.#Ps,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.#Ss,performance.now()/1e3),t.drawArrays(t.TRIANGLE_STRIP,0,4)}_e(){const t=this.#Es;t.bindTexture(t.TEXTURE_2D,this.#bs),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.#Es.drawingBufferWidth,this.#Es.drawingBufferHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null)}zh(){const t=this.#Es;t.deleteFramebuffer(this.Eh),t.deleteTexture(this.#bs),t.deleteBuffer(this.#ks),t.deleteProgram(this.#xs)}},ti=xt.firefox,ii=["uniform mat4 GLMatrix;","attribute vec3 pos;","attribute vec2 aTextureCoord;","varying highp vec2 vTextureCoord;","void main()","{","gl_Position = GLMatrix * vec4(pos, 1.0);","vTextureCoord = aTextureCoord;","}"].join(""),si=["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 {",...ti?["vec4 textureColor = texture2D(uSampler, vTextureCoord);","float newAlpha = min(1., textureColor.a * opacity);","gl_FragColor = vec4(textureColor.rgb * newAlpha, newAlpha);"]:["gl_FragColor = texture2D(uSampler, vTextureCoord) * opacity;"],"}","}"].join(""),ei=256,hi=class{gl;bh=self;#xs;#Is;#Cs;je;#zs=-1;#Ls;#As;#$s;#Ds=null;#Os=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]);#Ns=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);#Bs=.075;#Gs=-1;#Ys=0;#Hs=-1;#Rs=-1;Lh;#Xs;constructor(t){this.#Xs=t}Ah(){const t="WebGL2RenderingContext"in window,i=this.#Xs.canvas.element.getContext(t?"webgl2":"webgl",{alpha:1,preserveDrawingBuffer:this.#Xs.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 _("WebGL context creation failed",{code:r,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.#Xs.$current?.$settings.postProcessingFragmentShader;s&&(this.Lh=new Qt(i,this.#Xs,s),this.#Xs.kh=1);const e=i.createProgram();if(!(e instanceof WebGLProgram))throw new _("Failed to create WebGL program",{code:c,displayMessage:"There was a problem initializing the graphics. Please try refreshing the page."});if(this.#xs=e,this.Ih(this.#xs,i.VERTEX_SHADER,ii),this.Ih(this.#xs,i.FRAGMENT_SHADER,si),i.linkProgram(this.#xs),!i.getProgramParameter(this.#xs,i.LINK_STATUS))throw new _("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 h=i.getUniformLocation(this.#xs,"opacity");if(!h)throw new _("Failed to bind WebGL opacity uniform",{code:c});this.#Is=h;const o=i.getUniformLocation(this.#xs,"GLMatrix");if(!o)throw new _("Failed to bind WebGL matrix uniform",{code:c});this.je=o;const n=i.getUniformLocation(this.#xs,"noTexture");if(!n)throw new _("Failed to bind WebGL texture uniform",{code:c});this.#Cs=n,this.#zs=i.getAttribLocation(this.#xs,"aTextureCoord");const a=i.createBuffer();if(!a)throw new _("Failed to create WebGL texture buffer",{code:l,displayMessage:"Your device is low on memory. Try closing other browser tabs or applications."});this.#Ls=a,i.bindBuffer(i.ARRAY_BUFFER,this.#Ls),i.bufferData(i.ARRAY_BUFFER,qt.hh,i.STATIC_DRAW);const u=i.createBuffer();if(!u)throw new _("Failed to create WebGL watermark buffer",{code:l,displayMessage:"Your device is low on memory. Try closing other browser tabs or applications."});this.#$s=u;const d=i.createBuffer();if(!d)throw new _("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.#Gs=i.getAttribLocation(this.#xs,"pos"),this.#js(),i.activeTexture(i.TEXTURE0),i.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}#js(){const t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.bufferData(t.ARRAY_BUFFER,this.#Xs.$h.ke.byteLength,t.DYNAMIC_DRAW),t.enableVertexAttribArray(this.#zs),t.bindBuffer(t.ARRAY_BUFFER,this.#Ls),t.vertexAttribPointer(this.#zs,2,t.FLOAT,0,0,0),t.enableVertexAttribArray(this.#Gs),t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.vertexAttribPointer(this.#Gs,3,t.FLOAT,0,0,0)}zh(t=0){const i=this.gl;if(i){if(i.bindBuffer(i.ARRAY_BUFFER,null),i.bindTexture(i.TEXTURE_2D,null),i.deleteBuffer(this.#Ls),i.deleteBuffer(this.#As),i.deleteBuffer(this.#$s),i.deleteProgram(this.#xs),this.Lh?.zh(),this.#Ds&&i.deleteTexture(this.#Ds),t){const t=i.getExtension("WEBGL_lose_context");t instanceof Object&&t.loseContext instanceof Function&&t.loseContext()}this.gl=null}}Ih(t,i,s){const e=this.gl.createShader(i);if(!e)throw new Error(`Could not create WebGL shader (type: ${i})`);if(this.gl.shaderSource(e,s),this.gl.compileShader(e),!this.gl.getShaderParameter(e,this.gl.COMPILE_STATUS))throw this.gl.deleteProgram(t),new _("Shader compilation failed: "+this.gl.getShaderInfoLog(e),{code:c,displayMessage:"There was a problem initializing the graphics. Please try refreshing the page."});this.gl.attachShader(t,e),this.gl.deleteShader(e)}ph(t,i,s){const e=this.gl,h=i??e.createTexture();if(!h)throw new Error("Could not create WebGL texture");return e.bindTexture(e.TEXTURE_2D,h),t&&e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,s?e.NEAREST:e.LINEAR),h}mh(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)}Th(){const t=this.gl;this.Lh&&t.bindFramebuffer(t.FRAMEBUFFER,this.Lh.Eh),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}xh(){this.Lh&&(this.Lh.Ch(),this.gl.useProgram(this.#xs),this.#js()),this.#Ds&&this.#Ws()}We(t,i=1,s=0){const e=this.gl,h=t?0:1;h!==this.#Hs&&(e.uniform1i(this.#Cs,h),this.#Hs=h),i!==this.#Rs&&(e.uniform1f(this.#Is,i),this.#Rs=i),t&&e.bindTexture(e.TEXTURE_2D,t);const o=s?1536:6;s!=this.#Ys&&(e.bindBuffer(e.ARRAY_BUFFER,this.#Ls),e.bufferData(e.ARRAY_BUFFER,s?qt.oh:qt.hh,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,this.#As),this.#Ys=s),e.bufferSubData(e.ARRAY_BUFFER,0,s?this.#Xs.$h.ke:this.#Xs.$h.pe),e.drawArrays(e.TRIANGLES,0,o)}Xt(t,i){if(!this.gl)return;if(t===this.#Os)return;this.#Os=t;const s=new Image;i&&(this.#Bs=i),s.crossOrigin="anonymous",s.src=t,s.onload=()=>{const t=pt("canvas",{props:{width:ei,height:ei}}),i=t.getContext("2d");if(!i)return;const e=Math.min(96/s.width,64/s.height),h=s.width*e,o=s.height*e;i.drawImage(s,(ei-h)/2,(ei-o)/2,h,o),this.#Ds&&this.gl.deleteTexture(this.#Ds),this.#Ds=this.ph(t);const n=this.gl;n.bindTexture(n.TEXTURE_2D,this.#Ds),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.REPEAT),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.REPEAT),n.bindTexture(n.TEXTURE_2D,null),this.#Xs.$h.render()}}#Ws(){const t=this.gl;if(!this.#Ds)return;t.useProgram(this.#xs),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.uniformMatrix4fv(this.je,0,this.#Ns),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.#Ds),t.uniform1i(this.#Cs,0),t.uniform1f(this.#Is,this.#Bs),this.#Hs=0,this.#Rs=this.#Bs;const i=t.drawingBufferWidth/ei,s=t.drawingBufferHeight/ei,e=this.#Vs;e[1]=s,e[2]=i,e[3]=s,e[8]=i,e[9]=s,e[10]=i,t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.bufferData(t.ARRAY_BUFFER,this.#Fs,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#Gs,3,t.FLOAT,0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this.#$s),t.bufferData(t.ARRAY_BUFFER,this.#Vs,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#zs,2,t.FLOAT,0,0,0),t.drawArrays(t.TRIANGLES,0,6),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.#js(),this.#Ys=0}},oi=class{element=pt("canvas");#Us;viewport={width:0,height:0,left:0,top:0,ratio:0,scale:0,portrait:0};isMobile=H(0);get $isMobile(){return R(this.isMobile)}#Xs;constructor(t){this.#Xs=t,this.element.className="micrio",this.onresize=this.onresize.bind(this),self.ResizeObserver&&(this.#Us=new self.ResizeObserver(this.onresize))}place(){if(this.element.parentNode)return;const t=this.#Xs.querySelector("img.preview");this.#Xs.insertBefore(this.element,t?t.nextSibling:this.#Xs.firstChild)}hook(){this.onresize(),this.#Us?this.#Us.observe(this.element):window.addEventListener("resize",this.onresize)}unhook(){this.#Us?this.#Us.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 e=self.getComputedStyle(this.element),h=parseFloat(e.width);isNaN(h)||(s=parseFloat(e.height)*i/Math.max(1,h));const o=this.#Xs.hasAttribute("data-static")?1:Math.floor(i)/this.#Xs.offsetWidth;i/=o,s/=o;const n=1!=o?1:this.getRatio(),r=this.viewport;r.width==i&&r.height==s&&r.ratio==n&&r.scale==o||(r.width=i,r.height=s,r.ratio=n,r.scale=o,r.top=t.top,r.left=t.left,r.portrait=window.matchMedia("(orientation: portrait)")?.matches??s>i,this.#Xs.jt.gl&&(this.element.width=i*n,this.element.height=s*n,this.#Xs.jt.gl.viewport(0,0,r.width*r.ratio,r.height*r.ratio),this.#Xs.jt.Lh?._e(),this.#Xs.$h._e(r)),this.#Xs.events.Pt("resize",t),this.isMobile.set(/mobile/i.test(navigator.userAgent)))}getRatio=(t=this.#Xs.$current?.$settings??{})=>!xt.iOS&&!t?.noRetina&&self.devicePixelRatio&&Math.max(1,Math.min(2,self.devicePixelRatio))||1;setMargins(t,i){this.#Xs.$h.ready&&(this.#Xs.$h.el.mi=t,this.#Xs.$h.el.fi=i)}},ni={passive:1},ri={passive:1,capture:1},ai={passive:0};function ci(t){t.stopPropagation(),t.preventDefault()}var li=class{#Zs=0;#qs;constructor(t){this.#qs=t}hook(){this.#Zs||(this.#Zs=1,this.#qs.Dh.addEventListener("dragstart",ci),this.#qs.Dh.addEventListener("pointerdown",this.start,ni),self.addEventListener("pointercancel",this.#Js,ni),this.#qs.Dh.setAttribute("data-hooked",""))}unhook(){this.#Zs&&(this.#Zs=0,this.#qs.Dh.removeEventListener("pointerdown",this.start,ni),this.#qs.Dh.removeEventListener("dragstart",ci),self.removeEventListener("pointercancel",this.#Js,ni),this.#qs.Dh.removeAttribute("data-hooked"))}start=(t,i=0,s=0)=>{if(0!=t.button||"touch"==t.pointerType&&this.#qs.Oh)return;if(!(i||t.target==this.#qs.Fh||t.target instanceof Element&&t.target.closest("[data-scroll-through]")))return;if(this.#qs.Dh.$current?.$t&&t.shiftKey)return;if(this.#qs.Vh)return;if(this.#qs.Nh)return void(t instanceof TouchEvent&&t.touches.length>1&&this.stop());const e=this.#qs.Kt({x:t.clientX,y:t.clientY});e&&(this.#qs.Nh=1,this.#qs.Gh.Bh.As=[t.clientX,t.clientY,performance.now()],this.#qs.Gh.Bh.Yh=e,this.#qs.Dh.addEventListener("pointermove",this.#Ks,ni),this.#qs.Dh.addEventListener("pointerup",this.stop,ni),this.#qs.Dh.setAttribute("data-panning",""),e.canvas?.Ji.stop(),s||e.camera.stop(),this.#qs.Dh.$h.render(),this.#qs.Pt("panstart"))};#Ks=t=>{const i=t.clientX,s=t.clientY,e=Math.hypot(this.#qs.Gh.Bh.As[0]-t.clientX,this.#qs.Gh.Bh.As[1]-t.clientY);!this.#qs.Hh&&e>10&&(this.#qs.Hh=t.pointerId,this.#qs.Dh.setPointerCapture(t.pointerId)),this.#qs.Gh.Bh.Rh&&this.#qs.Gh.Bh.Yh?.camera.pan(this.#qs.Gh.Bh.Rh[0]-i,this.#qs.Gh.Bh.Rh[1]-s),this.#qs.Gh.Bh.Rh=[i,s]};stop=(t,i=0,s=0)=>{if(this.#qs.Nh){if(this.#qs.Nh=0,this.#qs.Gh.Bh.Rh=void 0,this.#qs.Dh.removeEventListener("pointermove",this.#Ks,ni),this.#qs.Dh.removeEventListener("pointerup",this.stop,ni),this.#qs.Hh&&this.#qs.Dh.releasePointerCapture(this.#qs.Hh),this.#qs.Hh=void 0,this.#qs.Dh.removeAttribute("data-panning"),t&&0==i){const i=this.#qs.Gh.Bh.Yh??this.#qs.Kt({x:t.clientX,y:t.clientY});i&&(i.canvas?.Ji.start(),this.#qs.Dh.$h.render())}this.#qs.Gh.Bh.Yh=void 0,s||this.#qs.Pt("panend",t?{duration:performance.now()-this.#qs.Gh.Bh.As[2],movedX:t.clientX-this.#qs.Gh.Bh.As[0],movedY:t.clientY-this.#qs.Gh.Bh.As[1]}:void 0)}};#Js=t=>{this.#qs.Nh&&(void 0!==this.#qs.Hh&&t.pointerId!==this.#qs.Hh||this.stop(void 0,1,1))}};function ui(t,i){t.Gh.qi.Xh=t.Nh,i.stop(void 0,0,1),t.Vh=1,t.Dh.setAttribute("data-pinching",""),t.jh=void 0,t.Gh.qi.Yh&&t.Gh.qi.Yh.canvas?.camera.Qi(),t.Dh.$h.render(),t.Pt("pinchstart"),t.Oh&&t.Pt("panstart")}function di(t,i,s){const e=t.Gh.qi,h=e.Yh;h&&(t.jh=Math.hypot(i.x-s.x,i.y-s.y)/e.Wh,h.canvas?.camera.qi(i.x,i.y,s.x,s.y))}function pi(t,i,s){if(!t.Vh)return;t.Vh=0,self.removeEventListener("touchmove",s,{passive:1,capture:1}),self.removeEventListener("pointermove",s,{passive:1,capture:1}),t.Dh.removeAttribute("data-pinching");const e=t.Gh.qi.Yh;e&&(e.canvas?.camera.ts(),t.Dh.$h.render()),t.Gh.qi.Yh=void 0,t.jh=void 0,t.Pt("pinchend"),t.Oh&&!t.Gh.qi.Xh&&t.Pt("panend")}function mi(t,i,s){if(s instanceof TouchList?1===s.length:1===s.size){let e;if(s instanceof TouchList){const i=s[0];e={button:0,target:t.Fh,clientX:i.clientX,clientY:i.clientY}}else{const[i,{x:h,y:o}]=s.entries().next().value;e={button:0,pointerType:"touch",target:t.Fh,clientX:h,clientY:o,pointerId:i}}i.start(e,1,1)}}var fi=class{#qs;#Qs;constructor(t,i){this.#qs=t,this.#Qs=i}hook(){xt.iOS&&this.#qs.Uh&&this.#qs.Dh.addEventListener("touchstart",this.start,ni)}unhook(){xt.iOS&&this.#qs.Uh&&this.#qs.Dh.removeEventListener("touchstart",this.start,ni),self.removeEventListener("touchmove",this.#Ks,ri),self.removeEventListener("touchend",this.stop,ri)}start=t=>{if(!(xt.hasTouch&&t instanceof TouchEvent))return;if(this.#qs.Oh&&2>t.touches.length)return;if(this.#qs.Vh||2!=t.touches.length)return void this.stop(t);t.stopPropagation();const i=t.touches;this.#qs.Gh.qi.Yh=this.#qs.Kt({x:i[0].clientX,y:i[0].clientY}),this.#qs.Gh.qi.Wh=Math.hypot(i[0].clientX-i[1].clientX,i[0].clientY-i[1].clientY),self.addEventListener("touchmove",this.#Ks,ri),self.addEventListener("touchend",this.stop,ri),ui(this.#qs,this.#Qs)};#Ks=t=>{if(!(xt.hasTouch&&t instanceof TouchEvent))return;const i=t.touches;if(2>i?.length)return;const s={x:i[0].clientX,y:i[0].clientY},e={x:i[1].clientX,y:i[1].clientY};di(this.#qs,s,e)};stop=t=>{pi(this.#qs,0,this.#Ks),t instanceof TouchEvent&&mi(this.#qs,this.#Qs,t.touches)}},gi=class{#qs;#Qs;constructor(t,i){this.#qs=t,this.#Qs=i}hook(){this.#qs.Dh.addEventListener("pointerdown",this.start,ni),self.addEventListener("pointerup",this.end,ni),self.addEventListener("pointercancel",this.end,ni)}unhook(){this.#qs.Dh.removeEventListener("pointerdown",this.start,ni),self.removeEventListener("pointerup",this.end,ni),self.removeEventListener("pointercancel",this.end,ni),self.removeEventListener("pointermove",this.#Ks,ri),this.#qs.Zh.clear()}start=t=>{if("touch"===t.pointerType&&t.target==this.#qs.Fh&&(this.#qs.Zh.set(t.pointerId,{x:t.clientX,y:t.clientY}),2===this.#qs.Zh.size&&!this.#qs.Vh)){const t=Array.from(this.#qs.Zh.values()),i=t[0],s=t[1];this.#qs.Gh.qi.Yh=this.#qs.Kt({x:i.x,y:i.y}),this.#qs.Gh.qi.Wh=Math.hypot(i.x-s.x,i.y-s.y),self.addEventListener("pointermove",this.#Ks,ri),ui(this.#qs,this.#Qs)}};#Ks=t=>{if("touch"!==t.pointerType)return;if(!this.#qs.Zh.has(t.pointerId))return;if(this.#qs.Zh.set(t.pointerId,{x:t.clientX,y:t.clientY}),!this.#qs.Vh||2!==this.#qs.Zh.size)return;const i=Array.from(this.#qs.Zh.values()),s={x:i[0].x,y:i[0].y},e={x:i[1].x,y:i[1].y};di(this.#qs,s,e)};end=t=>{"touch"===t.pointerType&&(this.#qs.Zh.delete(t.pointerId),this.#qs.Vh&&2>this.#qs.Zh.size&&(self.removeEventListener("pointermove",this.#Ks,ri),pi(this.#qs,0,this.#Ks),mi(this.#qs,this.#Qs,this.#qs.Zh)))}},vi=class{#qs;constructor(t){this.#qs=t}hook(){xt.OSX&&(this.#qs.Dh.addEventListener("gesturestart",this.#te,ai),this.#qs.Dh.addEventListener("gesturechange",this.#te,ai),this.#qs.Dh.addEventListener("gestureend",this.#te,ai))}unhook(){xt.OSX&&(this.#qs.Dh.removeEventListener("gesturestart",this.#te,ai),this.#qs.Dh.removeEventListener("gesturechange",this.#te,ai),this.#qs.Dh.removeEventListener("gestureend",this.#te,ai))}#ie(t){if("scale"in t&&"number"==typeof t.scale){const i=t;return{scale:i.scale,clientX:i.clientX,clientY:i.clientY}}return null}#te=t=>{const i=this.#ie(t);if(!i||1===i.scale)return;if(t.target instanceof Element&&t.target!=this.#qs.Fh)return;const s=this.#qs.qh-i.scale;this.#qs.qh=i.scale,t.stopPropagation(),t.preventDefault(),"gesturechange"==t.type&&this.#qs.Kt({x:i.clientX,y:i.clientY})?.camera.zoom(s*this.#qs.Dh.canvas.viewport.height,0,i.clientX,i.clientY)}},wi=class{hooked=0;#se=-1;#qs;constructor(t){this.#qs=t}hook(){this.hooked||(this.#qs.Dh.addEventListener("wheel",this.handle,ai),this.hooked=1)}unhook(){this.#qs.Dh.removeEventListener("wheel",this.handle,ai),this.hooked=0}handle=(t,i=0,s=0)=>{if(!(t instanceof WheelEvent))return;if(this.#qs.Jh&&!t.ctrlKey)return;if(!i&&t.target instanceof Element&&t.target!=this.#qs.Fh&&!t.target.classList.contains("marker")&&!t.target.closest("[data-scroll-through]"))return;let e=t.deltaY;t.ctrlKey&&(this.#qs.Kh=1);const h=this.#qs.Jh&&10*e%1==0,o=this.#qs.Kh&&!h,n=xt.firefox||t.ctrlKey||!o;if(this.#qs.Oh&&this.#qs.Dh.$current?.camera.isZoomedOut())return;t.stopPropagation(),t.preventDefault(),(xt.OSX||o)&&t.ctrlKey&&(e*=10);const r={x:t.clientX,y:t.clientY},a=this.#qs.Kt(r);if(a){if(n){const t=this.#qs.Dh.canvas.viewport;let i=0;const h=this.#qs.Dh.getBoundingClientRect();a.camera.zoom(1*e/Math.sqrt(t.scale),0,r.x-s-h.left,r.y-h.top-i)}else a.camera.pan(t.deltaX,t.deltaY);this.#qs.Qh=1,clearTimeout(this.#se),this.#se=setTimeout(this.#ee,50)}};#ee=()=>{this.#qs.Qh=0}},Mi=Symbol("micrio-provides"),yi=class extends HTMLElement{static tag;static io=new Map;#he=[];#oe=null;so={};connectedCallback(){this.eo?.(),this.Ch?.()}disconnectedCallback(){this.ho?.(),this.#gs()}xt(t){Object.assign(this.so,t),this.isConnected&&this.Ch()}Ch(){}oo(t){this.#he.push(t)}no(t){return t===this.#oe?(this.ro?.(),0):(this.#oe=t,1)}ao(t,i,s){let e=i;s?.skipFirst&&(e=W(i)),s?.defer&&(e=j(i)),this.oo(t.subscribe(e))}co(t,i){this.ao(t,i,{skipFirst:1})}lo(t,i){this.ao(t,i,{skipFirst:1,defer:1})}uo(t,i){this.oo(t.subscribe(i))}do(t,i){let s=this[Mi];s||(this[Mi]=s=new Map),s.set(t,i)}po(t){let i=this;for(;i;){const s=i[Mi];if(s?.has(t))return s.get(t);i=i.parentElement}}mo(){return this.po("micrio")}#gs(){for(const t of this.#he)t();this.#he=[]}},_i={0:[0,-.5,1,.5],90:[1,0,.5,1],180:[0,1,1,.5],270:[-.5,0,.5,1]},bi={0:[0,-1,1,1],90:[1,0,1,1],180:[0,1,1,1],270:[-1,0,1,1]},ki={0:[0,1,1,1],90:[-1,0,1,1],180:[0,-1,1,1],270:[1,0,1,1]},xi={ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",ArrowDown:"down"},Ti=class extends yi{static tag="micrio-button";#ne;#re;ro(){const t=this.so;t.type!==this.#re&&(this.#re&&this.classList.remove(this.#re),t.type&&this.classList.add(t.type),this.#re=t.type)}Ch(){const t=this.so,i=`${t.type}|${t.icon?.src??""}|${t.title??""}|${t.disabled??""}|${t.active??""}|${t.className??""}|${t.href??""}|${t.blankTarget??""}|${t.noClick??""}`;if(!this.no(i))return;const s=!!t.href,e=s?"a":"button",h=`${t.className?t.className+" ":""}${t.active?"active":""}${t.noClick?" no-click":""}`.trim();this.#re&&this.classList.remove(this.#re),t.type&&this.classList.add(t.type),this.#re=t.type,this.#ne&&this.#ne.remove();const o={title:t.title??"","aria-label":t.title??""};s&&(o.href=t.href,t.blankTarget&&(o.target="_blank"));const n=pt(e,{className:h,attrs:o,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.#ne=n,t.type?pt("micrio-icon",{setProps:{name:t.type},parent:n}):t.icon&&pt("img",{props:{src:t.icon.src,alt:"Icon"},parent:n});const r=[];for(const c of this.childNodes)c===n||c.nodeType!==Node.TEXT_NODE&&c.nodeType!==Node.ELEMENT_NODE||(r.push(c.textContent??""),c.remove());const a=r.join("").trim();a&&pt("span",{textContent:a,parent:n})}};customElements.define(Ti.tag,Ti);var Pi=(t=>(t[t.focus=0]="focus",t[t.flyTo=1]="flyTo",t[t.focusWithTagged=2]="focusWithTagged",t[t.focusTagged=3]="focusTagged",t[t.reset=4]="reset",t[t.back=5]="back",t[t.switchToGrid=6]="switchToGrid",t[t.filterTourImages=7]="filterTourImages",t[t.nextFadeDuration=8]="nextFadeDuration",t))({}),Si=new WeakMap;function Ei(t,i,s,e){"string"==typeof i&&(i=Pi[i]);const h=i+(s??"");if(t.fo==h)return;const o=(t=>{let i=Si.get(t);return i||(i={[Pi.focus](i,s){const e=i?.split("|").map(t=>t.trim()),h=(e?.[0]??"").split(",").map(i=>t.vo.get(i.trim())).filter(t=>void 0!==t);1==h.length?t.gridFocus(h[0],{duration:s}):h.length>0&&t.set(h.map(t=>({id:t.id,size:[1]})),{duration:s,horizontal:"h"==e?.[1]})},[Pi.flyTo](i,s){const e=i?.split(",").map(i=>t.wo.find(t=>t.id==i?.trim()));if(e?.length){const i=e.map(t=>t?.opts.area?.[0]??0),h=e.map(t=>t?.opts.area?.[1]??0),o=Math.max(...e.map(t=>(t?.opts.area?.[0]??0)+(t?.opts.area?.[2]??1))),n=Math.max(...e.map(t=>(t?.opts.area?.[1]??0)+(t?.opts.area?.[3]??1))),r=Math.min(...i),a=Math.min(...h);t.image.camera.flyToView([r,a,o-r,n-a],{duration:s?1e3*s:void 0}).catch(()=>{})}else console.warn("Given image IDs gave no current displayed images")},[Pi.focusTagged](i,s){t.Mo(i,s)},[Pi.focusWithTagged](i,s){t.Mo(i,s,1)},[Pi.reset](i,s){t.reset(s)},[Pi.back](i,s){t.back(s)},[Pi.switchToGrid](){(t=>{const i=t.$focussed;if(!i)return;const s=i.camera.getView();s&&t.reset(0,1).then(()=>{i.opts.area&&t.image.camera.setView(i.opts.area,{noLimit:1}),i.camera.setView(s,{noLimit:1}),t.micrio.current.set(t.image)})})(t)},[Pi.nextFadeDuration](i){t.yo=Number(i)},[Pi.filterTourImages](i,s){const e=R(t.micrio.state.tour);if(!e||!("steps"in e)||!e.stepInfo)return;const h=e.stepInfo.map(t=>t.micrioId),o=h.filter((t,i)=>h.indexOf(t)==i).map(i=>t.vo.get(i)).filter(t=>!!t);o.length&&t.set(o.map(t=>({id:t.id,size:[1]})),{duration:s,horizontal:"h"==i})}},Si.set(t,i)),i})(t)[i];o?o(s,e):console.warn("Warning: unknown grid tour event",i),t.fo=h}var Ii=class extends yi{static tag="micrio-grid";_o=[];vo=new Map;wo=[];bo=new Map;ko=0;xo="grid";To=H();get $focussed(){return R(this.To)}Po=H([]);#ae=[];#ce=H(0);So=1;#le=.5;#ue=.5;yo;#de=0;#pe=new Map;#me=new Map;fo;#fe;#ge;#ve;#we=0;#Me="ease";#ye;static Eo=0;micrio;image;#_e;#pt=0;eo(){if(this.#pt)return;this.#pt=1;const t=this.so;this.micrio=t.micrio,this.image=t.image,this.#_e=t.gallery,this.#_e._o.forEach(t=>this.#be(t));const i=this.image.$settings?.grid;this.ko=i?.clickable&&["focus","zoom"].includes(i.clickable)?i.clickable:0,this.xo="cells"==i?.panZoom?"cells":"grid",this.ko&&this.image.$settings.hookKeys&&(t=>{if(Ii.Eo=1,document.addEventListener("keydown",(t=>i=>{if(!t.wo.length||!t.ko)return;if("Escape"==i.key)return t.bo.forEach(t=>t.classList.remove("focussed")),void(t.$focussed?(t.back(),i.preventDefault(),i.stopPropagation()):t.image.camera.isZoomedOut()||(t.reset(),i.preventDefault(),i.stopPropagation()));const s=xi[i.key];if(!s||t.$focussed)return;i.preventDefault(),i.stopPropagation();const e=((t,i)=>{const s=t.wo.map((t,i)=>({img:t,i:i,cx:t.opts.area[0]+t.opts.area[2]/2,cy:t.opts.area[1]+t.opts.area[3]/2}));if(!s.length)return;let e=s.findIndex(i=>i.img.id==t.querySelector(":focus")?.getAttribute("data-id"));0>e&&(e=0);const h=s[e],o=.05;let n;for(const r of s){if(r.i===e)continue;const t=r.cx-h.cx,s=r.cy-h.cy;let a=0;switch(i){case"left":a=0>t&&Math.abs(s)<o;break;case"right":a=t>0&&Math.abs(s)<o;break;case"up":a=0>s&&Math.abs(t)<o;break;case"down":a=s>0&&Math.abs(t)<o}if(!a)continue;const c=Math.abs(t)+Math.abs(s);n&&c>=n.dist||(n={img:r.img,dist:c})}return n?n.img:s["right"==i||"down"==i?0:s.length-1].img})(t,s);if(!e)return;const h=e.id;t.bo.forEach((t,i)=>{i===h?(t.focus(),t.classList.add("focussed")):(t.blur(),t.classList.remove("focussed"))}),"zoom"!=t.ko||t.image.camera.isZoomedOut()||t.image.camera.flyToView(e.opts.area??[0,0,1,1],{duration:1e3*t.So,limit:0})})(t)),"grid"==t.xo&&t.ko){let i={x:0,y:0};t.micrio.addEventListener("pointerdown",t=>{i={x:t.clientX,y:t.clientY}}),t.micrio.addEventListener("pointerup",s=>{if(!i)return;const e=Math.hypot(s.clientX-i.x,s.clientY-i.y);if(i=void 0,e>10)return;const[h,o]=t.image.camera.getCoo(s.clientX,s.clientY,1),n=t.wo.find(t=>t.opts.area&&Q(h,o,t.opts.area));n&&t.Io(n)})}})(this),void 0!==i?.transitionDuration&&(this.So=this.#le=i.transitionDuration),void 0!==i?.transitionDurationOut&&(this.#le=i.transitionDurationOut),this.set(this.#ke,{cover:"cover"==this.image.$settings?.initType,duration:0}).then(()=>{this.#xe(),this.micrio.events.Pt("grid-load")}),this.#ye=pt("micrio-button",{setProps:{type:"close",onclick:()=>this.back(),title:"Close"}}),this.oo(()=>this.#ye.remove()),this.oo(this.To.subscribe(t=>{t?this.appendChild(this.#ye):this.#ye.remove()})),this.micrio.events.Pt("grid-init",this)}#xe(){if(this.micrio.state.marker.subscribe(t=>{if(t&&"string"!=typeof t){const i=t.data?.Co;if(i?.gridSize){const s="number"==typeof i.gridSize?[i.gridSize,i.gridSize]:i.gridSize.split(",").map(Number),e=this._o.find(i=>i.$data?.markers?.find(i=>i==t))?.id;e&&this.#me.set(e,s)}X().then(()=>{const t=i?.gridAction?.split("|");t?.length&&"string"==typeof t[0]&&this.action(t.shift(),t.join("|"))})}}),this.ko){this.addEventListener("click",t=>{this.Io(t.target?.dataset.id)});const t=t=>{t?this.#Te():this.#Pe()};this.micrio.state.tour.subscribe(t),this.micrio.state.marker.subscribe(t),this.To.subscribe(t)}var t;this.#Se=(t=this,i=>{const s=i.detail;s&&s.action?.startsWith("grid:")&&s.active&&Ei(t,s.action.slice(5),s.data,s.end-s.start)}),this.micrio.addEventListener("tour-event",this.#Se),this.micrio.addEventListener("serialtour-pause",()=>this._o.forEach(t=>t.camera.pause())),this.micrio.addEventListener("serialtour-play",()=>this._o.forEach(t=>t.camera.resume()))}#Se;#Ee(){clearTimeout(this.#ge),clearTimeout(this.#ve)}#be(t){this._o.push(t),this.vo.set(t.id,t)}get#ke(){return this.#_e._o.map(t=>({id:t.id,size:[1]}))}#Ie(){this.#ce.set(this.#ae.push({layout:this.wo.map(t=>({id:t.id,view:t.state.$view,size:this.#pe.get(t.id)})),horizontal:this.#de,view:this.image.camera.getView()}))}set(t=[],i={}){const s=++this.#we;return this._o.length&&this._o.forEach(t=>t.camera.stop()),this.image.camera.stop(),new Promise((e,h)=>{delete this.image.$settings?.focus,this.fo=void 0,0==i.cover&&i.coverLimit&&(i.coverLimit=0),i.coverLimit&&null==i.cover&&(i.cover=1);const o=this.$focussed,n=i.transition?.endsWith("-delayed"),r="behind-delayed"==i.transition,{$h:a}=this.micrio;"crossfade"==i.transition?i.duration=0:"behind"!=i.transition&&"behind-delayed"!=i.transition||((t,i,s,e)=>{const h="behind-delayed"==s.transition,o=1==s.coverLimit;s.forceAni=1,s.coverLimit=o,s.forceAreaAni=1;const n=h?1/i.length:1;let r=0;t._o.forEach(t=>{t.camera.setCoverLimit(o),i.find(i=>i.id==t.id)&&(t.camera.setArea([0,0,e?.id==t.id?1:n,1],{noDispatch:1,direct:1}),t!=e&&t.camera.setView([0,0,1,1]),h&&t.canvas&&(t.canvas.zIndex=i.length-r++))}),i.forEach(t=>t.view=[0,0,1,1])})(this,t,i,o);const c=this.image.rt,l=i.duration??(i.noHistory?this.#le:this.So),u=this.yo??this.image.$settings.crossfadeDuration??1,d=(l||this.So)/(r?2:1);this.yo=void 0,c&&(a.qe=l,a.$e=d);const p=!i.noBlur&&o;p&&this.blur(),!i.noHistory&&this.wo.length&&this.#Ie(),this.#de=!!i.horizontal,this.#Ce(this._o.filter(i=>!t.find(t=>t.id==i.id))),this.#ze(t,{horizontal:i.horizontal,keepGrid:i.keepGrid,scale:i.scale,columns:i.columns}),this.#Ee();let m=0;c&&!i.noCamAni&&(i.view?this.image.camera.flyToView(i.view,{duration:1e3*l}):this.image.camera.flyToFullView({duration:1e3*l})).catch(()=>{s===this.#we&&(this.#Ee(),m||h())}),this.#me.clear(),null==i.coverLimit&&(i.coverLimit=!!this.image.$settings.limitToCoverScale);const f=i.cover&&!i.coverLimit;f&&(i.coverLimit=1,t.forEach(t=>this.vo.get(t.id)?.camera.setCoverLimit(1)));const g="appear-delayed"==i.transition,v=t=>t*this.#ue+(t>0&&g?l:0);this.wo=t.map((t,s)=>this.#Le(t,{duration:!i.forceAni&&p&&t.id!=o?.id?0:l,delay:n?v(s):0,noCamAni:g&&s>0?1:!!i.noCamAni,forceAreaAni:g&&s>0?0:i.forceAreaAni,cover:i.cover})),g&&this.wo.slice(1).forEach(t=>{const i=t.canvas;i&&(i.Te=i.Vt=.9999)});const w=()=>this.wo.forEach((t,i)=>ft(n?1e3*(v(i)+(r?l/2:0)):0).then(()=>t.canvas?.Fe())),M=()=>{s===this.#we&&(this.#Ee(),requestAnimationFrame(()=>a.$e=u),n&&this._o.forEach(t=>{t.canvas&&(t.canvas.zIndex=0)}),f?t.forEach(t=>this.vo.get(t.id)?.camera.setCoverLimit(0)):i.coverLimit&&t.forEach(t=>this.vo.get(t.id)?.camera.setCoverLimit(1)),this.ko&&this.#Pe(),this.fo=void 0,m=1,e(this.wo))};l||d?(i.noFade||(this.#ve=setTimeout(w,Math.max(0,l/2*1e3))),this.#ge=setTimeout(M,1e3*(Math.max(d,l)+(n?(t.length-1)*this.#ue:0)))):(i.noFade||w(),M())})}#Ae(){return this.wo.length!==this._o.length?1:this.wo.some((t,i)=>t.id!==this._o[i].id)}#ze(t,i){const s=t.reduce((t,i)=>t+i.size[0]*(i.size[1]??1),0),e=i.columns??(i.horizontal?t.length:((t,i)=>{let s=Math.ceil(i/Math.ceil(Math.sqrt(i)));if(t==i){const i=Math.floor(Math.sqrt(t)),e=[];for(let h=i;s+i>h;h++)t%h||e.push(h);e.length&&(s=e[Math.floor(e.length/2)])}return s})(t.length,s));this.style.gridTemplateColumns=`repeat(${e}, auto)`;for(const a of this.bo.values())a.remove();this.bo.clear(),this.style.removeProperty("--translate"),this.style.removeProperty("--scale"),t.forEach(t=>{this.bo.has(t.id)||this.bo.set(t.id,pt("button"));const i=this.bo.get(t.id);1!==t.size[0]||void 0!==t.size[1]?(i.style.gridArea=`auto / auto / span ${t.size[1]} / span ${t.size[0]||t.size[1]}`,this.#pe.set(t.id,t.size)):(i.style.removeProperty("grid-area"),this.#pe.delete(t.id)),i.dataset.id=t.id,i.setAttribute("data-scroll-through",""),this.appendChild(i)}),this.classList.toggle("grid-pan-zoom","grid"==this.xo);const h=this.classList.contains("grid-cells-hidden");h&&this.classList.remove("grid-cells-hidden"),this.micrio.events.Pt("grid-layout-set",this);const o=this.micrio.offsetWidth,n=this.micrio.offsetHeight,r=Math.max(0,Math.min(1,1-(i.scale??1)));this.style.transform="",this.childNodes.forEach(i=>{const s=i,e=s.dataset.id,h=s.getBoundingClientRect(),a=t.find(t=>t.id==e),c=[r/2*h.width,r/2*h.height];a&&!a.area&&(a.area=[(h.x+c[0])/o,(h.y+c[1])/n,(h.width-2*c[0])/o,(h.height-2*c[1])/n])}),this.ko||(this.style.display="none"),h&&this.classList.add("grid-cells-hidden")}#Pe(){!this.ko||this.micrio.state.$tour||this.micrio.state.$marker||(this.classList.remove("grid-cells-hidden"),this.#fe=this.image.state.view.subscribe(this.#$e))}#Te(){this.#fe&&this.#fe(),this.classList.add("grid-cells-hidden")}#$e=()=>{const t=this.image.camera.getXY(0,0,1);this.style.setProperty("--translate",`translate3d(${t[0]}px, ${t[1]}px, 0)`),this.style.setProperty("--scale",this.image.camera.getScale().toString()),this.dispatchEvent(new CustomEvent("update"))};#Le(t,i){const{$h:s}=this.micrio,e=this.vo.get(t.id);if(e.rt||s.Ce(e,this.image),t.area){const h=()=>e.camera.setArea(t.area,{direct:0==i.duration||!i.forceAreaAni&&!R(e.visible)});i.delay?ft(1e3*i.delay).then(h).then(()=>s.render()):h()}const h={duration:1e3*i.duration,timingFunction:this.#Me,limit:0};return i.noCamAni||e.camera.S||!e.rt||(t.view?e.camera.flyToView(t.view,h):i.cover?e.camera.flyToCoverView({...h,duration:0}):e.camera.flyToView([0,0,1,1],h)).catch(()=>{}),e}#Ce(t){const{$h:i}=this.micrio;t.forEach(t=>{t.rt&&t.canvas?.Oe(),this.bo.get(t.id)?.remove(),this.bo.delete(t.id)}),i.render()}zo(){const t=this.micrio.$current;return t==this.image||!!t&&this.vo.has(t.id)}async reset(t,i,s){const e=this.#ae[0];return this._o.forEach(t=>t.camera.stop()),this.image.camera.stop(),this.Po.set([]),await X(),s||i||!this.micrio.camera?.isZoomedOut()||this.micrio.state.$tour||this.$focussed||this.#Ae()||(t=0),this.set(this.#De(e)??this.#ke,{noHistory:1,duration:t,noCamAni:i,forceAni:s,horizontal:e?e.horizontal:0}).then(t=>(this.#ce.set(this.#ae.length=0),this.micrio.current.set(this.image),t))}async Mo(t,i,s){const e=t?.split("|").map(t=>t.trim()),h=e?.[0]??"",o=h?this._o.filter(t=>!!t.$data?.markers?.find(t=>t.tags?.includes(h))):this._o;return this.set(o.map(t=>{const i=t.$data?.markers?.find(t=>t.tags?.includes(h));return{id:t.id,size:[1],view:s?void 0:i?.view}}),{duration:i,horizontal:"h"==e?.[1]})}async back(t){const i=this.#ae.pop();if(!i)return;this.#ce.set(this.#ae.length),this.micrio.current.set(this.image),this.$focussed&&this.blur();const s=this.#De(i)??[];await this.set(s,{duration:t,noHistory:1,horizontal:i.horizontal,view:i.view})}#De(t){if(t?.layout?.length)return t.layout.map(t=>this.vo.has(t.id)?{id:t.id,size:t.size??[1],view:t.view}:null).filter(Boolean)}#Oe(t){this.micrio.$h.Je=ut(this.#Me=t)}Io(t){const i="string"==typeof t?this._o.find(i=>i.id==t):t;if(this.ko&&i)if(this.bo.forEach(t=>t.classList.remove("focussed")),this.bo.get(i.id)?.classList.add("focussed"),"zoom"==this.ko){const t=i.opts.area??[0,0,1,1];this.image.camera.flyToView(t,{duration:1e3*this.So,limit:0})}else this.gridFocus(i)}async gridFocus(t,i={}){if(!t)return this.back();i.coverLimit&&(i.cover=1);const s=this.micrio;R(s.Ut).find(t=>t==this.image)||s.current.set(this.image);const e=this.$focussed;if(e==t)return;i.transition?.startsWith("slide-")||0!=i.duration&&(!e||e.canvas?.Ve()||this.wo.includes(t))||t.camera.setArea([0,0,1,1],{noDispatch:1,direct:1}),e&&this.blur(),t.camera.setCoverLimit(!!i.cover),this.#Oe("ease");const h=await(async(t,i,s,{duration:e,view:h,transition:o,noViewAni:n,exitView:r,blur:a,cover:c})=>{if(!o)return[{id:i.id,size:[1],view:h}];if("crossfade"==o&&(i.camera.setArea([0,0,1,1]),n=1),h&&n&&i.camera.setView(h,{noRender:1,noLimit:1}),!s||"crossfade"==o)return[{id:i.id,size:[1],view:h}];const l=o.startsWith("slide")||o.startsWith("swipe"),u=o.startsWith("behind"),d=l?o.endsWith("-up")?0:o.endsWith("-down")?180:o.endsWith("-left")?270:90:void 0;if(l||u){const t=i.canvas;t&&(t.Te=.9999,t.Vt=.9999)}if(o.startsWith("slide"))i.camera.setArea(_i[d],{noDispatch:1,direct:1});else if(o.startsWith("swipe"))i.camera.setArea(bi[d],{noDispatch:1,direct:1});else if(u){i.camera.setArea([0,0,1,1]),i.camera.setView([0,0,1,1]);const e=[{id:s.id,size:[1],view:[0,0,1,1]},{id:i.id,size:[1],view:[0,0,1,1]}];"behind-left"==o&&e.reverse(),await t.set(e,{noBlur:1,horizontal:1,coverLimit:c}).then(()=>ft(200))}if(a&&!isNaN(a)&&a>0){const i=(e=e??t.yo??t.So)/2,s=t.micrio.canvas.element.style;s.transition=`filter ${i}s ease`,s.filter=`blur(${a}px)`,setTimeout(()=>{s.filter="",setTimeout(()=>s.transform="",1e3*i)},1e3*i)}return o.startsWith("swipe")?[{id:s.id,size:[1],view:r??s.camera.getView(),area:ki[d]},{id:i.id,size:[1],view:h,area:[0,0,1,1]}]:[{id:i.id,size:[1],view:h}]})(this,t,e,i);return t.canvas&&(t.canvas.zIndex=3),this.To.set(t),this.set(h,{noBlur:1,duration:i.duration,forceAreaAni:"crossfade"!=i.transition,cover:!!i.cover,coverLimit:!!i.coverLimit}).then(()=>{s.events.Pt("grid-focus",t),this.#Te(),s.$current!=t&&s.current.set(t),this.image.camera.setLimit([0,0,1,1])}).catch(()=>{})}blur(){const t=this.$focussed;t&&(this.bo.forEach(t=>t.classList.remove("focussed")),t.canvas&&(t.canvas.zIndex=2),this.micrio.events.Pt("grid-blur"),this.To.set(void 0),this.image.camera.setLimit([0,0,1,1]),this.micrio.current.set(this.image))}action(t,i,s){Ei(this,t,i,s)}async enlarge(t,i,s=i){const e=this.#ae[this.#ae.length-1]?.layout,h="cover"===this.image.$settings?.initType;if(!e?.length){const e=this.#_e._o;return e.length?this.set(e.map((e,h)=>({id:e.id,size:h==t?[i,s]:[1]})),{noHistory:1,keepGrid:1,duration:.5,cover:h}):this.wo}const o=e.map((e,h)=>({id:e.id,size:h==t?[i,s]:e.size??[1]}));return this.set(o,{noHistory:1,keepGrid:1,duration:.5,cover:h})}Lo(t,i){const s=this.micrio.$current;if(s&&this._o.some(t=>t===s))return s;if("grid"==this.xo)return this.image;const[e,h]=this.image.camera.getCoo(t,i,1);return this.wo.find(t=>t.opts.area&&Q(e,h,t.opts.area))}};customElements.define(Ii.tag,Ii);var Ci=class{#qs;constructor(t){this.#qs=t}hook(){document.addEventListener("keydown",this.#te)}unhook(){document.removeEventListener("keydown",this.#te)}#te=t=>{if(this.#qs.Nh||this.#qs.Vh||!this.#qs.Dh.$current?.camera)return;if(Ii.Eo&&(t.key.startsWith("Arrow")||"Enter"==t.key||" "==t.key||"Escape"==t.key))return;const i=this.#qs.Dh.$current.camera,s=this.#qs.Dh.offsetWidth/2,e=this.#qs.Dh.offsetHeight/2;let h=0,o=0;switch(t.key){case"ArrowUp":o-=e;break;case"ArrowDown":o+=e;break;case"ArrowLeft":h-=s;break;case"ArrowRight":h+=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==h&&0==o||i.pan(h,o,150)}},zi=class{#qs;constructor(t){this.#qs=t}hookTap(){this.#qs.Fh.addEventListener("touchstart",this.#Fe)}unhookTap(){this.#qs.Fh.removeEventListener("touchstart",this.#Fe)}hookClick(){this.#qs.Fh.addEventListener("dblclick",this.#Ve)}unhookClick(){this.#qs.Fh.removeEventListener("dblclick",this.#Ve)}#Fe=t=>{if(!(xt.hasTouch&&t instanceof TouchEvent))return;const i=performance.now();1==t.touches.length&&250>i-this.#qs.Gh.$o.Ao&&(t.stopPropagation(),t.preventDefault(),this.#Ve(t)),this.#qs.Gh.$o.Ao=i};#Ve=t=>{const i=t instanceof TouchEvent?t.touches[0]:t;this.#qs.Kt({x:i.clientX,y:i.clientY})?.camera.zoom(-300,500,i.clientX,i.clientY,1,!this.#qs.Dh.$current?.album).catch(()=>{})}},Li=class{Fh;enabled=H(0);get $enabled(){return R(this.enabled)}#Zs=0;Nh=0;Vh=0;Qh=0;Jh=0;Oh=0;qh=1;Uh=xt.hasTouch&&"ontouchstart"in self;Kh=0;#Ne;#Be;Gh={Bh:{Rh:void 0,As:[0,0,0],Yh:void 0},$o:{Ao:0},qi:{Yh:void 0,Wh:0,Xh:0}};jh;Zh=new Map;Hh;Dh;#Qs;#Ge;#Ye;#He;#Re;#Xe;#je;constructor(t){this.Dh=t,this.Fh=t.canvas.element,this.#Qs=new li(this),this.#Ge=new fi(this,this.#Qs),this.#Ye=new gi(this,this.#Qs),this.#He=new vi(this),this.#Re=new wi(this),this.#Xe=new Ci(this),this.#je=new zi(this),this.enabled.subscribe(t=>{t?this.hook():this.unhook()}),t.Ut.subscribe(t=>this.#Be=t),t.current.subscribe(t=>{t&&!this.#Ne&&(this.#Ne=t.$settings,!t.error&&this.#Ne.hookEvents&&this.enabled.set(1))})}Do(){return this.$enabled}get isNavigating(){return this.Nh||this.Vh||this.Qh}Pt(t,i){this.Dh.dispatchEvent(new CustomEvent(t,void 0!==i?{detail:i}:void 0))}Kt(t){if(!this.#Be)return;const i=this.Dh.offsetWidth,s=this.Dh.offsetHeight,e=Math.max(0,Math.min(1,t.x/i)),h=Math.max(0,Math.min(1,t.y/s)),o=this.#Be.filter(t=>!t.Ot&&!t.Ft),n=this.Dh.Pe.find(t=>t.grid);if(n)return n.grid?.Lo(t.x,t.y)??this.Dh.$current;const r=1==o.length?o[0]:o.find(({grid:t,opts:{area:i}})=>t?0:i?!(e<i[0]||e>i[0]+i[2]||h<i[1]||h>i[1]+i[3]):0);return r&&!r.grid?r:this.Dh.$current}Oo(){return this.#Be}hook(){if(this.#Zs)return;this.#Zs=1;const t=this.#Ne;t&&(this.Oh=!!t.twoFingerPan,this.Oh?this.Dh.setAttribute("data-can-pan",""):this.Dh.removeAttribute("data-can-pan"),t?.hookKeys&&this.hookKeys(),t.hookDrag&&this.hookDrag(),t.noZoom||this.hookZoom())}unhook(){this.#Zs&&(this.#Zs=0,this.Zh.clear(),this.unhookDrag(),this.unhookZoom(),this.unhookKeys())}hookKeys(){this.#Xe.hook()}unhookKeys(){this.#Xe.unhook()}hookZoom(){const t=this.#Ne;this.Jh=!!t?.controlZoom,t&&!t.hookPinch||this.hookPinch(),(!t||t.hookScroll||this.Jh)&&this.hookScroll(),this.Dh.canvas.$isMobile?this.#je.hookTap():this.#je.hookClick()}unhookZoom(){this.unhookPinch(),this.unhookScroll(),this.Dh.canvas.$isMobile?this.#je.unhookTap():this.#je.unhookClick()}get scrollHooked(){return this.#Re.hooked}hookScroll(){this.#Re.hook()}unhookScroll(){this.#Re.unhook()}hookPinch(){xt.iOS&&this.Uh?this.#Ge.hook():this.#Ye.hook(),this.#He.hook()}unhookPinch(){xt.iOS&&this.Uh?this.#Ge.unhook():this.#Ye.unhook(),this.#He.unhook()}hookDrag(){this.#Qs.hook()}unhookDrag(){this.#Qs.unhook()}},Ai=class t{Fo;_o;#_;#We=null;Vo;#Ue=H(0);#Ze=0;#qe=0;constructor(t,i,s){this.#_=i,this.Vo=t,this.Fo=s;const e="switch"==s.type,h=s.isSpreads,o=h?s.coverPages??0:0;e&&(this.#qe=Math.max(...t.map(t=>t.height)),this.#Ze=Math.max(...t.map(t=>t.width*(h?2:1)))),this._o=t.map((n,r)=>{const a={...s.settings};void 0!==s.archiveLayerOffset&&(a.gallery={...a.gallery||{},archive:1,archiveLayerOffset:s.archiveLayerOffset});const c={},l=Y.m(n.id)?.data;if(e){let i;c.isEmbed=1,c.useParentCamera=1,i=h?0>r-o||r==t.length-1&&(r-o)%2==0?[.25,0,.5,1]:(r-o)%2==0?[0,0,.5,1]:[.5,0,.5,1]:[0,0,1,1];let s=((t,i,s,e,h)=>{const[o,n,r,a]=t,c=r*i,l=a*s,u=Math.min(c/e,l/h),d=e*u/i,p=h*u/s;return[o+r/2-d/2,n+a/2-p/2,d,p]})(i,this.#Ze,this.#qe,n.width,n.height);h&&(.5===i[0]?s[0]=.5:0===i[0]&&(s[0]=.5-s[2])),c.area=s}else c.area=[r,0,1,1];return new _t(i,{id:n.id,info:n,settings:a,data:l},c)})}static No(i,s){if("sc:Manifest"===i["@type"]||i.sequences)throw new _("IIIF_V2_UNSUPPORTED",{displayMessage:"Only IIIF Presentation API 3 manifests are supported"});if("Manifest"===i.type){const e=i.items?.flatMap(t=>t.items?.[0]?.items?.[0]?.body)?.filter(t=>t?.service?.[0]?.id)??[];if(!e.length)throw new _("NO_CANVASES",{displayMessage:"No valid IIIF canvases found in the manifest"});const h=e.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===h.length?null:new t(h,s,{type:"swipe",settings:{}})}return null}static Bo(i,s,e,h){const o=h?.basePath??e.$current?.zt??"https://b.micr.io/",n=i.map(t=>({id:t.micrioId??t.id,path:o,version:"",width:t.width,height:t.height,isDeepZoom:t.isDeepZoom,isPng:t.isPng,isWebP:t.isWebP}));return new t(n,s,{type:"swipe",startId:h?.startId,settings:{skipMeta:1,noLogo:1}})}static async Go(i,s,e){const h=Y.T(i);if(!h)return null;const o=e?.path??Y.k()?.baseUrl??"https://r2.micr.io/";h.archive&&await bt.load(o,"g/"+h.archive,e?.onProgress);const n={...h,startId:e?.startId??h.startId};if(h.settings&&(n.settings={...h.settings}),"grid"===h.type&&h.archive){const t=n.grid?.clickable??n.settings?.grid?.clickable,i={zoomLimit:15,minimap:0,...n.settings??{}};t&&void 0===i.hookKeys&&(i.hookKeys=1),n.settings=i}const r=await t.#Je(h.archive.split(".")[0],o);r&&(n.archiveLayerOffset=r.delta);const a=n.sort;return a&&r?.images&&r.images.sort(t.#Ke(a)),new t((r?.images??[]).map(t=>({...t,path:o,version:""})),s,{...n,type:n.type??"swipe"})}static#Je=async(t,i)=>bt.get(`${i}${t}.json`).then(t=>(t.images.forEach(t=>b.set(`${i}${t.id}/info.json`,t)),t));static#Ke(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}Yo(){const t=!!this.Fo.isSpreads,i=this.Fo.coverPages??0,s=[];if(t){let t=0;for(;t<Math.min(i,this._o.length);t++)s.push([t]);for(;t<this._o.length;t+=2){const i=[t];t+1<this._o.length&&i.push(t+1),s.push(i)}}else for(let e=0;e<this._o.length;e++)s.push([e]);return{pages:s,numPages:s.length}}Ho(t){if(this.#We=t,"grid"==this.Fo.type){const i=t.engine.micrio;t.grid=pt(Ii.tag,{setProps:{micrio:i,image:t,gallery:this}})}"book3d"==this.Fo.type&&("SharedArrayBuffer"in self?t.engine.sh=1:(console.warn("[Micrio]: No `SharedArrayBuffer` available, 3D Book Viewer is disabled. Using 2D fallback."),this.Fo.type="swipe"))}async Ro(t){const i="switch"==this.Fo.type,s={view:[0,0,1,1],gallery:{...this.Fo},pinchZoomOutLimit:i?1:void 0};this.Fo.settings&&Object.assign(s,this.Fo.settings);const e=Y.k()?.baseUrl??"https://r2.micr.io/";await t.open({id:"",info:{id:"",path:e,version:"",width:i?this.#Ze:t.offsetWidth*t.canvas.getRatio(),height:i?this.#qe:t.offsetHeight*t.canvas.getRatio()},settings:s},{gallery:this})}goto(t){this.#Ue.set(t),this.#We&&this.#_.micrio.events.Pt("gallery-show",t)}next(){const t=R(this.#Ue);this.goto(Math.min(this._o.length-1,t+1))}prev(){const t=R(this.#Ue);this.goto(Math.max(0,t-1))}},$i=navigator?.language??"en-EN",Di="Intl"in self&&Intl.DisplayNames?new Intl.DisplayNames([$i],{type:"language"}):void 0,Oi=["ar","dv","fa","he","iw","ku","ps","sd","syr","ug","ur","yi"],Fi=["en","nl","de"],Vi={Xo:["Close","Sluit","Schließen"],jo:["Zoom in","Zoom in","Vergrößern"],Wo:["Zoom out","Zoom uit","Verkleinern"],Uo:["Toggle fullscreen","Volledig scherm aan / uit","Vollbild umschalten"],Zo:["Switch language","Kies taal","Sprache wechseln"],qo:["Share","Deel","Teilen"],Jo:["Mute audio","Geluid uit","Ton stummschalten"],Ko:["Unmute audio","Geluid aan","Ton einschalten"],Qo:["Close this marker","Sluit deze marker","Diesen Marker schließen"],tn:["Next step","Volgende stap","Nächster Schritt"],sn:["Previous step","Vorige stap","Vorheriger Schritt"],hn:["Stop this tour","Stop deze tour","Tour beenden"],nn:["Minimize","Minimaliseer","Minimieren"],rn:["Play","Start","Abspielen"],an:["Pause","Pauzeer","Pause"],cn:["Stop","Stop","Stopp"],ln:["Toggle subtitles","Ondertitels aan / uit","Untertitel umschalten"],un:["Previous image","Vorige afbeelding","Vorheriges Bild"],dn:["Next image","Volgende afbeelding","Nächstes Bild"],pn:["Toggle menu","Menu openen / sluiten","Menü umschalten"],mn:["Go this way","Ga deze richting","Diesen Weg gehen"],fn:["Tours","Tours","Touren"],gn:["Marker tours","Marker tours","Marker-Touren"],vn:["Video tours","Video tours","Video-Touren"]},Ni={},Bi=Object.keys(Vi);for(let me=0;Fi.length>me;me++){const t={};for(const i of Bi)t[i]=Vi[i][me];Ni[Fi[me]]=t}var Gi=H(Ni.en);function Yi(t){if(!t)return;const i=t.split(",").map(t=>t.trim());return i[0]?{micrioId:i[0],markerId:i[1]||void 0,follows:!!i[2]&&"false"!==i[2]}:void 0}var Hi=new Map;function Ri(t){return Hi.get(t)?.secondary}function Xi(t){for(const i of Hi.values())if(i.secondary===t)return 1;return 0}async function ji(t,i,s,e){if(Hi.has(i))return;if(i.Ot||i.grid||Xi(i))return;const h=await Y.p(s.micrioId);if(!h)return;const o=new _t(t.$h,h);t.Pe.push(o),t.$h.yh(o),o.Vt=0,0!=e?.isPassive&&(o.Ft=1);const n=t.canvas.viewport.portrait;i.camera.setArea(n?[0,0,1,.5]:[0,0,.5,1]),o.camera.setArea(n?[0,1,1,0]:[1,0,0,1],{direct:1}),o.camera.setArea(n?[0,.5,1,.5]:[.5,0,.5,1]);let r=null;if(0!=e?.isPassive&&(r=i.state.view.subscribe(t=>{t&&!o.camera.S&&o.camera.setView(t,{noLimit:1})})),s.markerId){let t;t=o.data.subscribe(i=>{if(!i)return;const e=i.markers?.find(t=>t.id===s.markerId);e?.view&&o.camera.flyToView(e.view,{isJump:1}),t?.()})}Hi.set(i,{secondary:o,unsub:r}),t.events.Pt("splitscreen-start",o)}function Wi(t,i,s){const e=Hi.get(i);if(!e)return;Hi.delete(i),e.unsub?.();const h=t.canvas.viewport.portrait;e.secondary.camera.setArea(h?[0,1,1,0]:[1,0,0,1],{direct:1}),i.camera.setArea([0,0,1,1]),s?.keepSecondaryCanvas||setTimeout(()=>t.$h._h(e.secondary),400),t.events.Pt("splitscreen-stop",e.secondary)}var Ui=class{el;o;to;wn=1;constructor(t,i={}){this.el=t,this.o={delay:4e3,onIdle(){},onActive(){},shouldIdle:()=>1,...i}}get idle(){return this.el.hasAttribute("data-idle")}get enabled(){return this.wn}set enabled(t){this.wn=t,t||this.pause()}activity(){this.idle&&(this.el.removeAttribute("data-idle"),this.o.onActive()),this.#Qe()}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.#Qe()}destroy(){clearTimeout(this.to)}#Qe(){clearTimeout(this.to),this.wn&&(this.to=window.setTimeout(()=>{this.o.shouldIdle()?this.idle||(this.el.setAttribute("data-idle",""),this.o.onIdle()):this.#Qe()},this.o.delay))}},Zi=class extends yi{static get observedAttributes(){return["id","muted","data-limited","lang"]}static VERSION;static tag="micr-io";#th=0;Pe=[];current=H();Ut=H([]);#ih;get $current(){return this.#ih}get camera(){return this.#ih?.camera}canvas=new oi(this);events=new Li(this);state=new et.Main;St=[];Tt=[];barebone=H(0);jt=new hi(this);$h=new qt(this);Mn;defaultSettings;Mh=H(1);Zt=H(0);yn=H("1"==localStorage.getItem(z));Ht=H();spaceData;bundleTours;gallery=H();kh=0;#sh;#eh=0;attributeChangedCallback(t,i,s){switch(t){case"id":if(!this.isConnected||!s)return;this.#th?this.open(s):this.#hh();break;case"muted":R(this.yn)!==this.hasAttribute("muted")&&this.yn.set(this.hasAttribute("muted"));break;case"data-limited":this.$h?.pe&&this.$current?.canvas&&(this.$current.canvas.ce=!!s);break;case"lang":{let t=R(this.Ht);if(t!=s){this.Ht.set(s);const i=s.split("-")[0];Gi.set(Ni[s]??Ni[i]??Ni.en),s&&(e=s,Oi.some(t=>e===t||e.startsWith(t+"-"))?this.setAttribute("dir","rtl"):this.removeAttribute("dir")),t&&this.events.Pt("lang-switch",s)}break}}var e}eo(){this.do("micrio",this),this.canvas.place(),this.id&&!this.#th&&this.#hh(),"muted"in this||(Object.defineProperty(this,"muted",{get(){return R(this.yn)},set(t){t?this.setAttribute("muted",""):this.removeAttribute("muted")}}),this.ao(this.yn,t=>{this.muted=t,t?(localStorage.setItem(z,"1"),this.events.Pt("audio-mute")):(localStorage.removeItem(z),this.events.Pt("audio-unmute"))}));const t=()=>{const t=R(this.Ut).filter(t=>t.id),i=1===t.length?t[0]:this.#ih;this.toggleAttribute("data-zoomed",!!i?.camera&&!!i.rt&&!i.camera.isZoomedOut())};this.ao(this.current,i=>{this.#ih=i,t()}),this.ao(this.Ut,()=>t());const i=()=>t();this.Tt.push(i),this.oo(()=>{const t=this.Tt.indexOf(i);0>t||this.Tt.splice(t,1)});let s=0;const e=this.Mh.subscribe(t=>{if(t)return;e(),this.setAttribute("data-loaded",""),this.ao(this.Zt,t=>{t?this.setAttribute("data-switching",""):(s||X().then(()=>this.events.Pt("show",this)),s=1,this.removeAttribute("data-switching"))});const i=this.querySelector("img.preview");i&&setTimeout(()=>i.remove(),500)});this.#sh=new Ui(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 1}});const h=()=>this.#sh.activity();for(const o of["mousemove","pointerdown","wheel","focusin"])this.addEventListener(o,h,{passive:1});window.addEventListener("keydown",h),this.#sh.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.$h.gh(),this.Mn&&this.Mn.remove(),delete this.Mn,this.jt.zh(1),this.#sh?.destroy(),this.#th=0}async#oh(t){const i=await T(t).catch(t=>{this.#nh(t)});if(!i)return;let s;try{s=Ai.No(i,this.$h)}catch(n){return void this.#nh(n)}if(s)return void s.Ro(this);let e=i["@id"]||i.id||t.replace(/info.json$/,""),h=i.width,o=i.height;if("Manifest"===i.type){const t=i.items?.[0]?.items?.[0]?.items?.[0]?.body,s=t?.service?.[0];s?.id&&(e=s.id,h=t.width,o=t.height)}return{id:e,info:{id:e,path:e.replace(/\/[^/]*$/,""),width:h,height:o,version:I,isIIIF:1}}}async#hh(){if(this.#th)return;this.#th=1,await X();const i=this.#rh();if(i.settings||(i.settings={}),this.defaultSettings&&t(this.defaultSettings,i.settings),i.settings.noLogo||this.#ah(!!i.settings.noUI,0),i.id&&S(i.id)&&!this.hasAttribute("width")&&!this.hasAttribute("height")){const t=await Y.p(i.id).catch(()=>{});if(t&&t.info?.albumId){const s=await Ai.Go(t.info.albumId,this.$h,{startId:i.id,onProgress:t=>this.Mn?.xt?.({loadingProgress:t})}).catch(()=>null);if(s)return void s.Ro(this)}}if(i.id&&i.id.startsWith("http")){const t=await this.#oh(i.id);if(!t)return;return t.settings=i.settings,void this.open(t)}this.kh=!!i.settings.keepRendering,this.events.Pt("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)}#ah(t,i){this.Mn?this.Mn.xt?.({noHTML:t,noLogo:i}):this.Mn=pt("micrio-main",{setProps:{noHTML:t,noLogo:i},parent:this})}#nh(t){const i=(s=t??"An unknown error has occurred")instanceof _?s.displayMessage:(s instanceof Error?s.message:s)??"An unknown error has occurred";var s;console.error("Error:",i+(t instanceof _?` (${t.code}: ${t.message})`:"")),this.Mn||this.#ah(0,0),this.Mn?.xt?.({error:i}),this.Mh.set(0)}async open(i,s={}){this.#th||await this.#hh();const e=this.#rh();let h;if("string"==typeof i&&i.startsWith("http")){const t=await this.#oh(i);if(!t)return this.$current;h=t}else if("string"==typeof i){if(h=await Y.p(i),!h)return this.#nh('Image with id "'+i+'" not found, published, or embeddable.'),this.$current}else h=i;if(h.settings||(h.settings={}),e.settings?.gallery?.archive&&!/\.\d+$/.test(e.settings.gallery.archive)&&delete e.settings.gallery.archive,"string"==typeof i&&t(e.settings,h.settings),this.defaultSettings&&t(this.defaultSettings,h.settings),h.settings?.gallery?.settings&&t(h.settings.gallery.settings,h.settings),t(L,h.settings,{noOverwrite:1}),this.$current&&h.id==this.$current?.id)return this.$current;this.$current&&!s.gridView&&(t=>{for(const i of[...Hi.keys()])Wi(t,i)})(this),!s.gridView&&this.$current&&this.Zt.set(1),this.#ah(!!h.settings.noUI,!!h.settings.noLogo);let o=this.Pe.find(t=>h.id&&t.id==h.id),n=0;const r=this.Pe[0]?.grid;if(!o&&r){const t=h.id?r._o.find(t=>t.id==h.id):void 0;n=!!t,o=h.id?t:this.Pe[0],n&&!r.zo()&&this.current.set(this.Pe[0])}if(!o){if(this.Pe.length){const t=this.Pe[0];h.info.path=t.zt,h.info.lang=this.lang}this.Pe.push(o=new _t(this.$h,h))}if(s.gallery&&(s.gallery.Ho(o),this.gallery.set(s.gallery)),s.startView&&(o.state.view.set(h.settings.view=s.startView),o.rt&&o.engine.ready&&o.camera.setView(h.settings.view,{noRender:1})),this.lang||(this.lang="en"),!this.$h.sh&&(this.$h.nh(),!this.jt.gl))try{this.jt.Ah()}catch(a){return this.#nh(a),o}if(!this.#eh){switch(this.canvas.hook(),this.#ih?.$settings?.theme){case"light":this.setAttribute("data-light-mode","");break;case"os":this.setAttribute("data-auto-scheme","")}this.#eh=1}X().then(()=>this.dispatchEvent(new CustomEvent("load",{detail:o})));const a=this.$h;return a.De=s.vector?.direction??0,a.ze=s.vector?.distanceX??0,a.Le=s.vector?.distanceY??0,a.eh=!s.vector,!n||s.gridView&&r?.wo.find(t=>t.id==h.id)?this.current.set(o):r?.gridFocus(o,{view:h.settings?.view}).then(()=>this.current.set(o)),o.Ot&&this.Mh.set(0),!o.$settings.micrioSplitLink||o.Ot||o.grid||X().then(()=>{this.$current===o&&ji(this,o,{micrioId:o.$settings.micrioSplitLink},{isPassive:!o.$settings.noFollow})}),o}close(t){this.$h._h(t)}#rh(){const t={gallery:{}},i={settings:t,id:this.id},s=(t,i,s)=>{const e=i.split(".");for(let h=0;h<e.length-1;h++)t=t[e[h]];t[e[e.length-1]]=s},e=(e,h)=>{for(const o of Object.keys(e)){const n=e[o],r=this.getAttribute(o),a=n.f||o.replace("data-",""),c=h(r,n);void 0!==c&&s(n.r?i:t,a,c)}};return e(A,t=>t||void 0),e($,(t,i)=>{const s=null!=t&&(""===t||"true"===t);if(s||"false"===t)return i.n?!s:!!s}),e(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}),e(O,t=>null!=t?t.split(",").map(Number):void 0),t.static&&(t.noUI=t.skipMeta=1,t.hookEvents=0),i}get lang(){return R(this.Ht)}set lang(t){this.setAttribute("lang",t)}};function qi(t,i){return mt("svg",{...i,attrs:{...i?.attrs,viewBox:`0 0 ${t[0]} ${t[1]}`,fill:"currentColor"},children:[mt("path",{attrs:{d:t[2]}}),...i?.children??[]]})}var Ji={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"],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"]},Ki=new Set(["chevronDown","linkExt"]),Qi=class extends yi{static tag="micrio-icon";#ch="close";#lh;eo(){this.#uh(),this.#dh()}xt(t){t.name&&(this.#ch=t.name),this.isConnected&&(this.#uh(),this.#dh())}#uh(){const t=this.mo();this.#lh=t?.$current?.$settings?.ui?.icons?.[this.#ch]}#dh(){const t=this.#lh;if(t)return void(this.innerHTML=t);const i=Ji[this.#ch];if(!i)return void this.replaceChildren();const s=qi(i);Ki.has(this.#ch)&&s.classList.add("small"),this.replaceChildren(s)}};customElements.define(Qi.tag,Qi);var ts=class extends yi{static tag="micrio-button-group"};customElements.define(ts.tag,ts);var is="100",ss=80*Math.PI,es={r:"40",cx:"50",cy:"50",fill:"transparent","stroke-width":"8px"},hs=class extends yi{static tag="micrio-progress-circle";#ph={};#mh;eo(){const t=mt("svg",{attrs:{width:is,height:is,viewBox:`0 0 ${is} ${is}`}});mt("circle",{attrs:{...es,stroke:"#e0e0e0"},parent:t});const i=mt("circle",{attrs:{...es,stroke:"#00d4ee","stroke-dasharray":`${ss}px`},parent:t});this.appendChild(t),this.#mh=i,this.#fh()}xt(t){Object.assign(this.#ph,t),this.isConnected&&this.#fh()}#fh(){if(!this.#mh)return;const t=this.#ph.progress??0,i=ss*(1-t);this.#mh.setAttribute("stroke-dashoffset",`${i}px`)}};customElements.define(hs.tag,hs);var os=class extends yi{static tag="micrio-logo";#gh;#vh;#wh=0;eo(){const t=this.mo();if(!t)return;const i=/micr\.io/.test(location.origin)&&self.parent==self?void 0:"_blank";this.#gh=pt("a",{props:{rel:"noopener",href:"https://micr.io/",title:"Powered by Micrio"},attrs:{"aria-label":"Micrio homepage"},parent:this}),i&&(this.#gh.target=i),this.oo(t.Mh.subscribe(t=>{clearTimeout(this.#vh),t?this.#wh||(this.#vh=setTimeout(()=>{this.#wh=1,this.#Mh()},750)):(this.#wh=0,this.#Mh())})),this.oo(()=>clearTimeout(this.#vh))}ho(){clearTimeout(this.#vh)}#Mh(){this.#gh&&this.#gh.classList.toggle("loading",this.#wh)}};customElements.define(os.tag,os);var ns=class extends yi{static tag="micrio-article";Ch(){this.so.html&&(this.innerHTML=this.so.html)}};customElements.define(ns.tag,ns);var rs="micrio-captions-disable",as=H("1"!=localStorage.getItem(rs));as.subscribe(t=>{t?localStorage.removeItem(rs):localStorage.setItem(rs,"1")});var cs=class extends yi{static tag="micrio-subtitles";#ph={};#yh=[];#_h=0;#bh;#gs;eo(){this.#gs=as.subscribe(()=>this.#kh());const t=this.#ph.mediaEl?.querySelector("video,audio")||(this.#ph.mediaEl instanceof HTMLMediaElement?this.#ph.mediaEl:void 0);if(t){const i=()=>{this.#_h=t.currentTime,this.#kh()};t.addEventListener("timeupdate",i);const s=this.#gs;this.#gs=()=>{s?.(),t.removeEventListener("timeupdate",i)}}this.#ph.src&&this.#fh()}xt(t){const i=void 0!==t.src&&t.src!==this.#ph.src;Object.assign(this.#ph,t),i&&this.isConnected&&this.#fh()}#fh(){this.#ph.src?(this.#yh=[],fetch(this.#ph.src).then(t=>t.text()).then(t=>{const i=t.split("\n"),s=[];for(let e=0;e<i.length;e++)if(/-->/.test(i[e])){let t=e+1;const h=[];for(;!i[t]&&t<i.length;)t++;for(;i[t]&&i[t].trim();)h.push(i[t++]);const[o,n]=i[e].split(" --\x3e ").map(t=>t.trim().replace(",",".").split(":").map(Number)).map(t=>3===t.length?3600*t[0]+60*t[1]+t[2]:2===t.length?60*t[0]+t[1]:0);s.push({start:o,end:n,data:h.join("\n")}),e+=h.length+1}this.#yh=s,this.#kh()}).catch(t=>console.error("micrio-subtitles: fetch error:",t))):this.replaceChildren()}#kh(){if(!R(as)||!this.#yh.length)return this.replaceChildren(),void(this.#bh=void 0);const t=this.#yh.find(t=>t.start<=this.#_h&&t.end>=this.#_h);t!==this.#bh&&(this.#bh=t,this.innerHTML=t?`<p>${t.data}</p>`:"")}ho(){this.#gs?.()}};customElements.define(cs.tag,cs);var ls=class extends yi{static tag="micrio-details";#ph={};#xh;eo(){this.mo()&&(this.#xh=pt("details",{parent:this}),this.#dh())}xt(t){void 0!==t.info&&(this.#ph.info=t.info),void 0!==t.data&&(this.#ph.data=t.data),this.isConnected&&this.#dh()}#dh(){const t=this.#ph.info,i=this.#ph.data,s=this.mo(),e=s?R(s.Ht):void 0,h=s?R(s.current):void 0;if(!t||!e||!h)return;const o=i?.i18n?i.i18n[e]:i,n=o?.title??t.title??"",r=o?.description,a=o?.sourceUrl,c=o?.copyright;(n||r||a)&&(this.#xh.replaceChildren(),n&&pt("summary",{children:[pt("span",{textContent:n})],parent:this.#xh}),r&&pt("div",{innerHTML:r,parent:this.#xh}),a&&pt("p",{parent:this.#xh,children:[pt("a",{props:{href:a,target:"_blank",rel:"noopener noreferrer"},textContent:c||a})]}))}};customElements.define(ls.tag,ls);var us=class extends yi{static tag="micrio-error";Ch(){this.replaceChildren(),pt("div",{parent:this,children:[pt("micrio-icon",{setProps:{name:"error"}}),pt("span",{textContent:this.so.message??"An unknown error has occurred"})]})}};customElements.define(us.tag,us);var ds=class extends yi{static tag="micrio-controls";#ph={};#Th=0;#Ph=0;#Sh=0;#Eh=0;#Ih="";#Ch=()=>{const t=this.mo();t&&t.yn.set(!R(t.yn))};#zh=()=>{const t=this.mo();if(t&&navigator.share&&t.$current?.$info){const i=t.$current.$data?.i18n?.[R(t.Ht)];navigator.share({title:t.$current.$info?.title,text:i?.description||`${t.$current.$info.width} x ${t.$current.$info.height} | Micrio`,url:location.href})}};#Lh=t=>{this.mo().lang=t};#Ah;#$h;#Dh;#Oh;#Fh;#Vh;#Nh;#Bh;eo(){const t=this.mo();if(!t)return;const{state:i,Ht:s}=t,{tour:e,popup:h}=i,o=t=>{this.#Ph=!!t.ui?.controls?.cultureSwitch,this.#Sh=!!t.social,void 0!==t.fullscreen&&(this.#Eh=!!t.fullscreen),this.#Gh()};let n;t.$current&&o(t.$current.$settings),this.oo(t.current.subscribe(t=>{if(t){if(R(e)&&"steps"in R(e))return;n?.(),n=t.Et.subscribe(o)}})),this.co(e,()=>this.#Gh()),this.co(h,()=>this.#Gh()),this.co(s,()=>this.#Gh()),this.co(t.yn,()=>this.#Gh());const r=new MutationObserver(()=>this.#Gh());r.observe(t,{attributes:1,attributeFilter:["class"]}),this.oo(()=>r.disconnect()),this.#Yh(),this.#Gh()}xt(t){Object.assign(this.#ph,t)}#Yh(){this.#Th||(this.#Ah=pt("aside",{parent:this}),this.#Th=1)}#Gh(){if(!this.#Th||!this.isConnected)return;const t=this.mo();if(!t)return;const i=R(Gi),s=R(t.yn),e=R(t.Ht),h=t.$current,o=!(h?.$settings)?.noZoom,n=R(t.state.popup),r=R(t.state.tour),a=r&&"steps"in r,c=h?.$info,l=c?.revision?Object.keys(c.revision):[],u=t.canvas.$isMobile,d=!(!("micrioAudioContext"in window)&&!this.#ph.hasAudio),p=this.#Ph&&l.length>1,m=this.#Sh&&"share"in navigator,f=d||p||m||o||this.#Eh,g=this.#Eh&&(!!n&&u||a),v=o&&!g&&!(h?.grid&&"cells"==h?.$settings?.grid?.panZoom),w=d||v||this.#Eh;if(n&&u||!f)this.#Ah.replaceChildren();else{if(p&&!g){this.#Oh?.isConnected||(this.#Oh?.remove(),this.#Fh=void 0,this.#Ih="",this.#Oh=pt("menu",{attrs:{tabindex:"0"},children:[pt("micrio-button"),this.#Fh=pt("div")]}),this.#Ah.prepend(this.#Oh)),this.#Oh.querySelector("micrio-button")?.xt({type:"a11y",title:i.Zo});const t=this.#Fh,s=l.join(",");if(s!==this.#Ih){this.#Ih=s,t.replaceChildren();for(const i of l)pt("micrio-button",{setProps:{title:Di?.of(i)??i,onclick:()=>{this.#Lh(i)}},children:[i.toUpperCase()],parent:t})}const h=t.querySelectorAll(":scope > micrio-button");for(let i=0;i<h.length;i++){const t=h[i].querySelector("button, a");t&&t.classList.toggle("active",l[i].toLowerCase()===e.toLowerCase())}}else this.#Oh?.isConnected&&this.#Oh.remove();m&&!g?(this.#Dh?.isConnected||(this.#Dh?.remove(),this.#Dh=pt("micrio-button"),this.#Ah.insertBefore(this.#Dh,this.#Vh?.isConnected?this.#Vh:null)),this.#Dh.xt({type:"share",title:i.qo,onclick:this.#zh})):this.#Dh?.isConnected&&this.#Dh.remove(),w?(this.#Vh?.isConnected||(this.#Vh?.remove(),this.#Vh=pt("micrio-button-group",{parent:this.#Ah})),d?(this.#$h?.isConnected||(this.#$h?.remove(),this.#$h=pt("micrio-button"),this.#Vh.prepend(this.#$h)),this.#$h.xt({type:s?"muted":"unmuted",title:s?i.Ko:i.Jo,onclick:this.#Ch})):this.#$h?.isConnected&&this.#$h.remove(),v?this.#Nh?.isConnected||(this.#Nh?.remove(),this.#Nh=pt("micrio-zoom-buttons"),this.#Bh?.isConnected?this.#Vh.insertBefore(this.#Nh,this.#Bh):this.#Vh.appendChild(this.#Nh)):this.#Nh?.isConnected&&this.#Nh.remove(),this.#Eh?(this.#Bh?.isConnected||(this.#Bh?.remove(),this.#Bh=pt("micrio-fullscreen",{parent:this.#Vh})),this.#Bh.xt({el:t})):this.#Bh?.isConnected&&this.#Bh.remove()):this.#Vh?.isConnected&&this.#Vh.remove()}}};customElements.define(ds.tag,ds);var ps=class extends yi{static tag="micrio-fullscreen";#ph={};#Hh=0;#pt=0;#Rh=()=>{const t=this.#ph.el;t&&(this.#Hh?document.exitFullscreen():t.requestFullscreen())};eo(){this.#ph?.el&&this.#Xh()}xt(t){void 0!==t.el&&(this.#ph.el=t.el,this.isConnected&&!this.#pt&&this.#Xh())}#Xh(){if(this.#pt)return;this.#pt=1;const t=this.#ph.el;if(!("requestFullscreen"in t))return;this.#Hh=document.fullscreenElement===t;const i=this.mo(),s=i&&t==i&&!i.events.scrollHooked,e=()=>{this.#Hh=document.fullscreenElement===t,s&&(this.#Hh?i.events.hookScroll():i.events.unhookScroll()),this.#jh()};document.addEventListener("fullscreenchange",e),this.oo(()=>document.removeEventListener("fullscreenchange",e)),this.#jh()}#jh(){this.replaceChildren();const t=R(Gi);pt("micrio-button",{setProps:{type:this.#Hh?"fullscreenLeave":"fullscreenEnter",title:t.Uo,onclick:this.#Rh},parent:this})}};customElements.define(ps.tag,ps);var ms=class extends yi{static tag="micrio-zoom-buttons";#Wh;#Uh;eo(){const t=this.mo();if(!t)return;const i=()=>{const i=R(t.Ut).filter(t=>t.id);return 1===i.length?i[0]:t.$current};this.#Wh=pt("micrio-button",{parent:this}),this.#Wh.xt({type:"zoomIn",onclick:()=>i()?.camera.zoomIn()}),this.#Uh=pt("micrio-button",{parent:this}),this.#Uh.xt({type:"zoomOut",onclick:()=>i()?.camera.zoomOut()});const s=()=>{const t=i(),s=R(Gi);this.#Wh.xt({title:s.jo,disabled:t?.camera.isZoomedIn()??1}),this.#Uh.xt({title:s.Wo,disabled:t?.camera.isZoomedOut()})};this.oo(t.current.subscribe(()=>s())),this.oo(t.Ut.subscribe(()=>s()));const e=()=>s();t.Tt.push(e),this.oo(()=>{const i=t.Tt.indexOf(e);0>i||t.Tt.splice(i,1)}),s()}};function fs(t){if("string"==typeof t)return t;let i=0,s=Math.max(t.width,t.height);for(;s>1024;)i++,s/=2;return t.micrioId&&t.width>1024?"https://r2.micr.io/"+t.micrioId+"/"+i+"/0-0."+(t.isPng?"png":t.isWebP?"webp":"jpg"):t.src}customElements.define(ms.tag,ms);var gs=class extends yi{static tag="micrio-logo-org";#ph={organisation:null};eo(){this.mo()&&this.#dh()}xt(t){void 0!==t.organisation&&(this.#ph.organisation=t.organisation),this.isConnected&&this.#dh()}#dh(){const t=this.#ph.organisation;t?.logo?(this.replaceChildren(),pt("a",{props:{rel:"noopener",href:t.href??"#",title:t.name??"",target:"_blank"},attrs:{"aria-label":`${t.name} homepage`},children:[pt("img",{props:{src:fs(t.logo),alt:"Logo",crossOrigin:"anonymous"}})],parent:this})):this.replaceChildren()}};function vs(t,i){const s=t.$current;if(!s)return;const e=t.spaceData?.images.find(t=>t.id==s.id),h=t.spaceData?.images.find(t=>t.id==i);if(!e||!h)return;const o=[(h.x??.5)-(e.x??.5),(e.y??.5)-(h.y??.5),(h.z??.5)-(e.z??.5)];let n=o[0]*o[0]+o[1]*o[1]+o[2]*o[2];n>0&&(n=1/Math.sqrt(n));const r=[o[0]*n,o[1]*n,o[2]*n],a=U(Math.atan2(-r[0],r[2])/Math.PI/2);return{v:o,vN:r,directionX:a,vector:{direction:a%1,distanceX:Math.max(0,Math.min(.4,Math.sqrt(r[0]*r[0]+r[2]*r[2]))),distanceY:-o[1]}}}customElements.define(gs.tag,gs);var ws=class extends yi{static tag="micrio-waypoint";#ph={targetId:"",image:null};#Zh=0;#qh=0;#Jh;#Kh;#Qh;#to;#io;#Ve;#so;eo(){this.#eo(),this.#dh()}xt(t){void 0!==t.targetId&&(this.#ph.targetId=t.targetId),void 0!==t.image&&(this.#ph.image=t.image),void 0!==t.settings&&(this.#ph.settings=t.settings),this.isConnected&&(this.#eo(),this.#dh())}#eo(){const{targetId:t,image:i,settings:s}=this.#ph;if(!i||!t)return;const e=this.mo();if(!e)return;const h=i.$info,o=vs(e,t);if(!o)return void console.error(`[Micrio] Could not calculate vector for target ${t}`);const{directionX:n,v:r,vN:a,vector:c}=o;this.#io=c;const l=.3>Math.abs(a[1]),u=l?.65:.5+a[1]/10,d={x:n,y:u,baseScale:h.width/1024,scale:1,rotX:(1+(l?-(1-u):a[1]))*Math.PI/2,rotY:0,rotZ:0},p=s?.coords??structuredClone(d),m=p.custom;this.#Kh=m?p:d,this.classList.toggle("direction-up",0>r[1]),this.classList.toggle("direction-down",r[1]>0);const f=()=>{this.#qh||(this.style.transform=`matrix3d(${i.camera.getMatrix(this.#Kh.x,this.#Kh.y,this.#Kh.baseScale*this.#Kh.scale,1,this.#Kh.rotX,this.#Kh.rotY,this.#Kh.rotZ,0,1,1,1).join(",")})`)},g=this;this.#Qh={coords:p,settings:s??{},click(){},get deleted(){return 0},set deleted(t){t&&(g.#qh=1)}},f(),this.oo(i.state.view.subscribe(f)),Y.u(t).then(t=>{t&&(this.#Jh=t),this.#dh()}),e.dispatchEvent(new CustomEvent("wp-print",{detail:this.#Qh})),this.#Ve=()=>{i.$settings.t?.noMarkerActions||(this.#Zh=1,i.It=void 0,i.state.marker.set(void 0),e.open(t,{vector:this.#io}))},this.#so=()=>{i.$settings.t?.noMarkerActions||(this.parentNode?.scrollTo(0,0),clearTimeout(this.#to),this.#to=setTimeout(()=>{const t=i.camera.getXY(this.#Kh.x,this.#Kh.y);!this.#Zh&&(0>t[0]||t[0]>=e.offsetWidth||0>t[1]||t[1]>=e.offsetHeight||i.A&&t[3]>4)&&i.camera.flyToCoo([this.#Kh.x,this.#Kh.y],{speed:2,limit:1}).catch(()=>{})},150))}}#dh(){if(this.#qh)return void(this.style.display="none");const{settings:t}=this.#ph,i=this.mo(),s=i?R(i.Ht):"en",e=R(Gi),h=i?.spaceData,o=t?.i18n?.[s]?.title||this.#Jh?.i18n?.[s]?.title,n=h?.icons?.[t?.customIconIdx??-1];this.classList.toggle("clicked",this.#Zh),this.replaceChildren(),pt("micrio-button",{setProps:{type:n?void 0:"up",icon:n||void 0,title:o??e.mn,onclick:this.#Ve,onfocus:this.#so},parent:this})}ho(){clearTimeout(this.#to)}};customElements.define(ws.tag,ws);var Ms=class extends yi{static tag="micrio-marker-content";_n;Ch(){const{marker:t,noEmbed:i=0,noImages:s=0,noGallery:e=0,onclose:h}=this.so;if(!t)return;const o=this.mo(),n=yi.io,r=t.id?n.get(t.id):void 0;if(!o||!r)return;const a=R(o.Ht),c=`${t.id}::${a}::${i}::${s}::${e}`;if(!this.no(c))return;const l=R(o.state.tour),u=l&&"steps"in l&&l.isSerialTour,d=r.$settings.t??{},p=!d.preventAutoPlay,m=t.i18n?.[a],f=1==t.images?.length,g=!t.data?.preventImageOpen&&!e,v=r.Gt?.includes("micrio.dev"),w=f&&t.images?.[0]?.i18n?.[a]?.description,M=t=>t.i18n?.[a]?.title,y=()=>{l&&"steps"in l&&(l.isSerialTour||d.tourAutoProgress)&&h?.()};if(m){if(this.replaceChildren(),m.title){const t=pt("h1",{textContent:m.title,parent:this});this._n=t}if(m.body&&d.primaryBodyFirst&&pt("micrio-article",{setProps:{html:m.body},parent:this}),!u&&(!m.embedUrl&&t.videoTour||m.audio)){const i=(t.videoTour?.i18n?.[a]?.audio??m?.audio)?.src,s=!p||!t?.audioAutoPlay;pt("micrio-media",{setProps:{src:i,noPlayOverlay:1,image:r,uuid:t.id,tour:t.videoTour,autoplay:t.audioAutoPlay||!m.audio&&!!t.videoTour,controls:!t.videoTour||!m.embedUrl,onended:y,paused:s},parent:this})}if(!s&&t.images?.length){const i=pt("section");for(const s of t.images){const e=pt("button",{props:{title:M(s)??"",disabled:!g},events:g?{click(){return i=s.micrioId,void(g&&o.state.popover.set({gallery:t.images,galleryStart:i,image:r}));var i}}:void 0}),h=pt("figure");pt("img",{props:{alt:M(s)??"",src:s.micrioId?`https://iiif.${v?"micrio.dev":"micr.io"}/${s.micrioId}/full/${f?"^"+Math.min(s.width,640)+",":"^,320"}/0/default.webp`:s.src},parent:h}),w&&pt("figcaption",{textContent:w,parent:h}),e.appendChild(h),i.appendChild(e)}this.appendChild(i)}if(m.embedUrl&&!i){!m.audio&&t.videoTour&&pt("micrio-media",{setProps:{image:r,className:"hidden",uuid:t.id,tour:t.videoTour,autoplay:p,secondary:1},parent:this});const i=0==t?.embedAutoPlay||!p||!(!m?.audio||!t?.audioAutoPlay);pt("micrio-media",{setProps:{image:r,src:m.embedUrl,uuid:t.id,width:400,height:240,controls:1,title:m.embedTitle,figcaption:m.embedDescription,autoplay:!i,onended:y,paused:i},parent:this})}m.body&&!d.primaryBodyFirst&&pt("micrio-article",{setProps:{html:m.body},parent:this}),m.bodySecondary&&pt("micrio-article",{setProps:{html:m.bodySecondary},parent:this})}else this.replaceChildren()}};customElements.define(Ms.tag,Ms);var ys=H(void 0),_s=0;function bs(){ys.set(void 0)}ys.subscribe(t=>{t?_s||window.addEventListener("click",bs):_s&&window.removeEventListener("click",bs),_s=!!t});var ks=class extends yi{static tag="micrio-menu";#ph={menu:null,originalId:null};#ho;eo(){const{menu:t}=this.#ph,i=this.mo();if(!i)return;const{Ht:s}=i;1!==t.children?.length||this.#oo(t,R(s))?.title||(this.#ph.menu=t.children[0]),this.#no(),this.#dh(),this.ao(ys,()=>this.classList.toggle("opened",this.#ro(this.#ph.menu))),this.uo(s,j(W(()=>{this.#no(),this.#dh()})))}#no(){const{menu:t,originalId:i}=this.#ph,s=this.mo();if(!s)return;const{events:e,state:h,Ht:o}=s,n=this.#oo(t,R(o)),r=t;this.#ho=void 0,t.action?this.#ho=t.action:t.markerId?this.#ho=()=>{i&&s.$current?.id!=i&&s.open(i),s.$current?.state.marker.set(t.markerId)}:(n?.content||n?.embed||t.image||r.content||r.embedUrl||n?.title&&!t.children?.length&&!t.link&&!t.markerId)&&(this.#ho=()=>{e.Pt("page-open",t),h.popover.set({contentPage:t})})}xt(t){Object.assign(this.#ph,t)}#oo(t,i){return t.i18n?.[i]??t}#ro(t){const i=R(ys);if(!i)return 0;const s=t=>t===i||!!t.children?.some(s);return s(t)}#dh(){const{menu:t,originalId:i,onclose:s}=this.#ph,e=this.mo();if(!e)return;const h=R(e.Ht),o=this.#oo(t,h);this.replaceChildren(),this.classList.toggle("opened",this.#ro(t)),this.setAttribute("data-title",o?.title?.toLowerCase()??"");const n=i=>{t.link||i.preventDefault(),t.children?.length&&i.stopPropagation(),this.#ho?.();const e=!!(this.#ro(t)||this.#ho||t.link);ys.set(e?void 0:t),(this.#ho||t.link)&&s?.()};if(t.link){const i=pt("a",{props:{href:t.link},events:{click:n},children:[pt("strong",{textContent:o?.title??"(Unknown)",children:[pt("micrio-icon",{setProps:{name:t.linkTargetBlank?"linkExt":"link"},style:{opacity:".75"}})]})],parent:this});t.linkTargetBlank&&(i.target="_blank")}else{const i=[o?.title??"(Unknown)"];t.children?.length&&i.push(pt("micrio-icon",{setProps:{name:"chevronDown"}}));const s=[pt("strong",{children:i})];t.icon&&s.unshift(qi(t.icon,{style:"height:1em;vertical-align:-.125em;margin-right:10px"})),pt("button",{props:{type:"button"},events:{click:n},children:s,parent:this})}t.children?.length&&pt("div",{parent:this,children:t.children.map(t=>pt("micrio-menu",{setProps:{menu:t,originalId:i,onclose:bs}}))})}};customElements.define(ks.tag,ks);var xs=class extends yi{static tag="micrio-toolbar";#x;#ao=0;#co=0;#Rh=()=>{this.#ao=!this.#ao,this.#dh()};eo(){const t=this.mo();if(!t)return;const{Ht:i}=t;this.#co=500>=window.innerWidth;const s=()=>{this.#co=500>=window.innerWidth,this.#co||(this.#ao=0),this.#dh()};this.#dh(),this.oo(t.current.subscribe(t=>{t&&(this.oo(t.data.subscribe(t=>{this.#x=t,this.#dh()})),this.oo(t.Et.subscribe(()=>this.ro?.())))})),this.oo(t.state.tour.subscribe(()=>this.#dh())),this.oo(t.state.marker.subscribe(()=>this.#dh())),this.oo(t.state.popover.subscribe(()=>this.#dh())),this.oo(i.subscribe(()=>this.#dh())),window.addEventListener("resize",s),this.oo(()=>window.removeEventListener("resize",s))}#dh(){if(!this.#x)return;const t=this.mo();if(!t)return;const{Ht:i,state:s}=t,e=R(i),h=R(s.tour),o=R(s.marker),n=R(s.popover),r=R(Gi),a=t.$current?.id,c=t=>!!t.i18n?.[e],l=!!h||!!o||!!n,u=(t.bundleTours??[]).concat(this.#x?.markerTours??[]).filter(c),d=u.length>0,p=this.#x?.tours?.filter(c)??[],m=p.length>0,f=d&&m,g=this.#x?.pages?this.#x.pages.filter(t=>!t.id?.startsWith("_")&&(t=>!!t.i18n?.[e])(t)).concat(this.#x.pages.filter(t=>t.id?.startsWith("_"))):void 0,v=!(g?.length||d||m),w=[(g||[]).map(t=>t.id).join(","),u.map(t=>t.id).join(",")+"|"+p.map(t=>t.id).join(","),l,e,this.#co,this.#ao].join("::");if(!this.no(w))return;if(v||l)return void this.replaceChildren();this.replaceChildren(),this.#co&&this.#ao&&pt("div",{className:"backdrop",events:{click:this.#Rh},parent:this});const M=pt("menu",{className:(this.#co&&this.#ao?"shown":"")||void 0}),y=()=>{this.#co&&(this.#ao=0,this.#dh())};if(g)for(const _ of g)pt("micrio-menu",{setProps:{menu:_,originalId:a,onclose:y},parent:M});d&&pt("micrio-menu",{setProps:{onclose:y,menu:{id:"marker-tours",i18n:{[e]:{title:f?r.gn:r.fn}},children:u.map(t=>({id:t.id??E(),i18n:{[e]:{title:t.i18n?.[e]?.title??"(Untitled)"}},action(){t.initialStep=0,s.tour.set(t)}}))}},parent:M}),m&&pt("micrio-menu",{setProps:{onclose:y,menu:{id:"video-tours",i18n:{[e]:{title:f?r.vn:r.fn}},children:p.map(i=>({id:i.id??E(),i18n:{[e]:{title:i.i18n?.[e]?.title??"(Untitled)"}},action(){t.$current&&t.$current.id!=a&&t.open(a),s.tour.set(i)}}))}},parent:M}),this.appendChild(M),this.ro?.(),this.#co&&pt("micrio-button",{setProps:{title:r.pn,type:this.#ao?"close":"ellipsisVertical",className:"transparent"+(this.querySelector("menu.indent")?" indent":"")||void 0,onclick:this.#Rh},parent:this})}ro(){const t=this.querySelector("menu");if(t){const i=!this.mo()?.$current?.$settings?.noLogo;t.classList.toggle("indent",i)}}};customElements.define(xs.tag,xs);var Ts,Ps,Ss=class{#Xs;#lo;#uo;#do;#po;#gs;constructor(t,i,s,e){this.#Xs=t,this.#Xh(i,s,e)}#Xh(t,i,s){const e=this.#Xs.$current.$info;if(!e)return;const h=e.width,o=e.height,n=t.positionalAudio;if(!n)return;this.#lo=i.createGain(),this.#uo=i.createPanner(),this.#uo.panningModel="equalpower",this.#uo.rolloffFactor=1,this.#uo.coneOuterGain=0;const r=()=>{if(this.#lo.gain.value=n.volume??1,s){this.#uo.refDistance=2.75*n.radius,this.#uo.maxDistance=n.radius*(11/3);const i=t.x*-Math.PI*2,s=(t.y-.5)*-Math.PI,e=Math.cos(s)*Math.sin(i)*11,h=11*Math.sin(s),o=Math.cos(s)*Math.cos(i)*11;this.#uo.positionX.value=e,this.#uo.positionY.value=h,this.#uo.positionZ.value=o;const[r,a,c]=it(e,h,o);this.#uo.orientationX.value=r,this.#uo.orientationY.value=a,this.#uo.orientationZ.value=c}else this.#uo.distanceModel="linear",this.#uo.positionX.value=2*(t.x-.5),this.#uo.positionY.value=2*(.5-t.y)*(o/h),this.#uo.positionZ.value=-.2,this.#uo.rolloffFactor=2,this.#uo.refDistance=n.radius*n.radius*10,this.#uo.maxDistance=5*n.radius},a=()=>{this.#do&&this.#do.disconnect(),this.#do=i.createBufferSource(),n.loop&&(n.repeatAfter>0?this.#do.onended=()=>{this.#po=setTimeout(a,1e3*n.repeatAfter)}:this.#do.loop=1),this.#lo.gain.value=n.volume??1,this.#do.buffer=window.__micrioAudioBuffers?.[n.src]??null,this.#do.buffer&&(this.#do.connect(this.#uo),this.#do.start())};r(),this.#uo.connect(this.#lo),this.#lo.connect(Ts??i.destination),(async()=>{if(!n.src)return;const t=window.__micrioAudioBuffers||{};t[n.src]||(t[n.src]=await fetch(n.src).then(t=>t.arrayBuffer()).then(t=>i.decodeAudioData(t)),window.__micrioAudioBuffers=t),n.alwaysPlay&&n.repeatAfter>0?this.#po=setTimeout(a,1e3*n.repeatAfter):a()})(),this.#Xs.addEventListener("audio-update",r),this.#gs=()=>this.#Xs.removeEventListener("audio-update",r)}#ee(){this.#do&&this.#do.disconnect(),clearTimeout(this.#po),this.#uo.disconnect(),this.#lo.disconnect()}destroy(){this.#gs?.(),this.#ee()}},Es=null,Is=H(0);function Cs(t,i,s){Ps&&(Ps.setPosition?Ps.setPosition(t,i,s):"positionX"in Ps&&(Ps.positionX.value=t,Ps.positionY.value=i,Ps.positionZ.value=s))}function zs(t,i,s){Ps&&(Ps.setOrientation?Ps.setOrientation(t,i,s,0,1,0):"forwardX"in Ps&&(Ps.forwardX.value=t,Ps.forwardY.value=i,Ps.forwardZ.value=s))}var Ls=class{#mo=new Audio;#fo;#go;#vo=-1;constructor(t,i,s){this.#fo=t,this.#go=i,this.#mo.preload="none",this.#mo.loop=0,this.#mo.volume=s,this.#mo.onended=()=>this.#wo(),this.#wo()}#wo(){if(!this.#go&&this.#vo+1===this.#fo.length)return;const t=this.#fo[++this.#vo%this.#fo.length];this.#mo.src=t.src??"",this.#mo.play()}destroy(){this.#mo.pause()}},As=class{#Xs;#d;#Mo;#yo=[];#_o=[];constructor(t,i){this.#Xs=t,this.#d=i,this.#Xh()}#bo(t){for(const h of this.#_o)h.destroy();if(this.#_o=[],!Es||!t)return;const i=t.$info;if(!i)return;const s=!!i.is360,e=t.$data?.markers?.filter(t=>!!t.positionalAudio);if(e?.length)for(const h of e)this.#_o.push(new Ss(this.#Xs,h,Es,s))}#Xh(){const t=this.#Xs,i=this.#d,{events:s}=t,e=i.$info;if(!e)return;const h=!!e.is360,o=e.height/e.width;if(!("AudioContext"in window))return;const n=()=>Is.set(1),r=()=>{"suspended"===Es?.state?Es.resume().then(()=>{}).catch(()=>{}):Es||n()},a=new Audio("data:audio/mpeg;base64,...");a.volume=xt.iOS?0:1e-4,document.body.appendChild(a),this.#yo.push(Is.subscribe(s=>{if(!s)return;const e=R(t.yn)?0:1;Es||(t=>{if(!Ts){if(Es||(Es="micrioAudioContext"in window?window.micrioAudioContext:new AudioContext),!Es)return console.warn("[Micrio] Your browser does not support the Web Audio API");"suspended"===Es.state&&Es.resume().then(()=>{}).catch(()=>{}),(Ts=Es.createGain()).connect(Es.destination),Ts.gain.value=t,"upX"in(Ps=Es.listener)&&(Ps.upX.value=0,Ps.upY.value=1,Ps.upZ.value=0)}})("number"==typeof e?e:1),Es&&(i.$data?.markers?.filter(t=>!!t.positionalAudio).length&&this.#yo.push(i.state.view.subscribe(t=>{if(!t)return;const s=Math.max(0,1.05-i.camera.getScale());((t,i,s)=>{if(h){t*=2*-Math.PI,i-=.5,i*=-Math.PI;const e=10*(1-s),h=Math.cos(i)*Math.sin(t)*e,o=Math.sin(i)*e,n=Math.cos(i)*Math.cos(t)*e;Cs(h,o,n);const[r,a,c]=it(h,o,n);zs(r,a,c)}else Cs(2*(t-.5),2*(.5-i)*o,s),zs(0,0,-1)})(t[0]+t[2]/2,t[1]+t[3]/2,s*(h?1:1.5))})),this.#bo(t.$current))})),this.#yo.push(t.current.subscribe(t=>{t&&Es&&this.#bo(t)})),Es||(a.play().then(n).catch(()=>s.Pt("autoplay-blocked")),addEventListener("pointerup",r,{once:1}));const c=i.$data;if(c?.music?.items.length){const i=R(t.yn)?0:1;this.#Mo=new Ls(c.music.items,c.music.loop??1,i*(c.music.volume??1))}this.#yo.push(t.yn.subscribe(t=>{Ts&&(Ts.gain.value=t?0:1)})),this.#yo.push(()=>{Es&&(a.remove(),removeEventListener("pointerup",r))})}destroy(){for(const t of this.#_o)t.destroy();this.#_o=[];for(const t of this.#yo)t();this.#yo=[],this.#Mo?.destroy()}},$s=class{#ko=[];#Ue;#xo;#ge;#To=1;#Po=0;#Z;#So=0;#Eo;#Io=0;#Co;#Xs;#d;#x;constructor(t,i){this.#d=t,this.#x=i,this.#Xs=t.engine.micrio;const s=i.i18n?.[R(this.#Xs.Ht)];if(!s)throw new Error("No valid content for video tour!");this.#Co=s,this.#Io=!i.keepInteraction&&this.#Xs.events.$enabled,i.instance=this,this.read(),this.#zo(),this.#Xs.events.Pt("videotour-start",this.#x)}destroy(){this.#Io&&this.#Xs.events.enabled.set(1),this.#Lo(),this.#Xs.removeAttribute("data-tour-active"),clearTimeout(this.#ge),this.#Po&&(this.#d.camera.stop(),this.#Po=0),this.#Xs.events.Pt("videotour-stop",this.#x),this.#Eo=void 0,this.#x.instance=void 0,this.#xo=void 0}read(){const t=this.#Co.timeline;this.#ko=[];for(let i=0;i<t.length;i++){const s=t[i],e=t[i-1],h=e?e.end:0;this.#ko.push({view:s.rect,start:1e3*h,duration:1e3*(s.start-h),pauseDuration:1e3*(s.end-s.start)})}this.#Eo&&!this.#Po&&(this.progress=this.currentTime)}#zo(){const t=this.#Co.events;if(!t?.length)return;const i=this.duration;for(const s of t)s.start=Number(s.start||0),s.end=Math.min(Number(s.end||0),i)}#Lo(){const t=this.#Co.events;if(t?.length)for(const i of t)i.active&&(i.active=0,this.#Xs.events.Pt("tour-event",{...i}))}updateEvents(t){const i=this.#Co.events;if(i?.length)for(const s of i){const i=s.start<=t&&s.end>=t;i!=!!s.active&&(s.active=i,this.#Xs.events.Pt("tour-event",{...s}))}}get duration(){return Number(this.#Co.duration)}set duration(t){this.#Co.duration=t}get paused(){return this.#To}get ended(){return this.currentTime>=this.duration}get currentTime(){return(this.#Z??(this.#Eo?Date.now()-this.#Eo:0))/1e3}set currentTime(t){this.#Ao(t/this.#Co.duration)}get progress(){return this.currentTime/this.#Co.duration}set progress(t){this.#Ao(t)}play(){this.#$o(),this.#So=0,this.#Z?(this.#Eo=Date.now()-this.#Z,this.#To=0,this.#Do(this.#Z),this.#Z=void 0):this.#Po||(this.#Eo=Date.now(),void 0===this.#xo?this.#Oo(0,0):this.#Do(this.duration*this.#xo*1e3),this.#xo=void 0),this.#To=0,this.#Po=1}pause(){this.#To||null==this.#Ue||null==this.#Eo||(this.#To=1,this.#Fo(),clearTimeout(this.#ge),0>this.#Ue||this.#d.camera.stop(),this.ended?this.#us():this.#Z=Date.now()-this.#Eo)}#us(){this.#Fo(),this.#Z=void 0,this.#Po=0,this.read()}#Oo(t,i){if(null==this.#Eo)return;if(clearTimeout(this.#ge),!this.#ko[t]){if(!this.paused||!this.#So){const t=Math.max(0,Math.round(1e3*this.duration-(Date.now()-this.#Eo)));t>0&&(this.#ge=setTimeout(()=>this.pause(),t))}return}const s=this.#ko[t],e=Math.round(s.start-(Date.now()-this.#Eo));this.#Ue=t,this.#d.camera.stop(),e>0?this.#To||(this.#ge=setTimeout(()=>this.#Vo(i),e)):this.#Vo(i)}#No(){null!=this.#Ue&&this.#Oo(this.#Ue+1)}#Vo(t=0){if(null==this.#Ue||isNaN(t))return;const i=this.#ko[this.#Ue];if(!i)return;const s=this.#ko[this.#Ue-1]?.view;if(this.#So&&s){const e=nt.get(t),h=K(s),o=K(i.view);this.#d.camera.setView([h.centerX*(1-e)+o.centerX*e-(h.width*(1-e)+o.width*e)/2,h.centerY*(1-e)+o.centerY*e-(h.height*(1-e)+o.height*e)/2,h.width*(1-e)+o.width*e,h.height*(1-e)+o.height*e],{noLimit:1}),this.#No()}else this.#d.camera.flyToView(i.view,{duration:i.duration,progress:t,prevView:s}).then(()=>{null!=this.#Ue&&i===this.#ko[this.#Ue]&&this.#No()}).catch(()=>{})}#$o(){this.#Xs.setAttribute("data-tour-active",""),this.#Xs.events.Pt("videotour-play"),this.#Io&&this.#Xs.events.enabled.set(0)}#Fo(){this.#Xs.events.Pt("videotour-pause"),this.#Io&&this.#Xs.events.enabled.set(1)}#Ao(t){t=Math.max(0,Math.min(1,t)),this.#So=!!this.paused||!this.#Po,this.pause(),this.#So||(this.#To=0,this.#$o());const i=this.duration*t*1e3;this.#Z=i,this.#Do(i),this.#So?this.pause():(this.#Z=void 0,this.#To=0)}#Do(t){let i,s=0;for(;s<this.#ko.length&&this.#ko[s].start<=t;s++)i=this.#ko[s];if(!i)return this.#ko.length&&this.#d.camera.stop(),this.paused||this.#Oo(0),void this.updateEvents(t/1e3);this.#d.camera.stop();const e=i.duration>0?(t-i.start)/i.duration:0;this.#Eo=Date.now()-i.start-i.duration*e,e>1?(this.#Oo(s),i.view&&this.#d.camera.setView(i.view,{noLimit:1})):(s>1&&this.#d.camera.setView(this.#ko[s-2].view,{noLimit:1}),this.#Oo(s-1,e)),this.updateEvents(t/1e3)}},Ds={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},Os=class{#Bo;#Go=0;#Yo;#Ho;#Ro;constructor(t,i,s={}){this.#Yo=t,this.#Ho=i,this.#Ro=s}async initialize(){return await wt("YT","https://r2.micr.io/youtube.js","onYouTubeIframeAPIReady"),new Promise((t,i)=>{this.#Bo=new window.YT.Player(this.#Yo,{host:"https://www.youtube-nocookie.com",width:this.#Ho.width.toString(),height:this.#Ho.height.toString(),playerVars:{controls:0},events:{onError:()=>{this.#Ro.onError?.(new Error("YouTube player error")),i(new Error("YouTube player error"))},onReady:()=>{this.#Go?i(new Error("Player destroyed during initialization")):(this.#Ro.onReady?.(),this.#Ro.onDurationChange?.(this.#Bo.getDuration()),t())},onStateChange:t=>this.#Xo(t.data)}})})}#Xo(t){switch(t){case Ds.UNSTARTED:this.#Ro.onBlocked?.(),this.#Ro.onPause?.();break;case Ds.ENDED:this.#Ro.onEnded?.();break;case Ds.PLAYING:this.#Ro.onPlay?.(),this.#Ro.onSeeked?.();break;case Ds.PAUSED:this.#Ro.onPause?.();break;case Ds.BUFFERING:this.#Ro.onBuffering?.(),this.#Ro.onSeeking?.()}}async play(){this.#Bo?.playVideo()}pause(){this.#Go||this.#Bo?.pauseVideo?.()}async getCurrentTime(){return this.#Bo?.getCurrentTime?.()??0}setCurrentTime(t){this.#Ro.onSeeking?.(),this.#Bo?.seekTo?.(t)}async getDuration(){return this.#Bo?.getDuration?.()??0}async isPaused(){if(!this.#Bo)return 1;const t=this.#Bo.getPlayerState?.();return void 0===t||[Ds.UNSTARTED,Ds.ENDED,Ds.PAUSED,Ds.CUED].includes(t)}setMuted(t){t?this.#Bo?.mute?.():this.#Bo?.unMute?.()}setVolume(t){}destroy(){this.#Go=1,this.#Bo?.destroy?.(),this.#Bo=void 0}},Fs=class{#Bo;#Go=0;#Yo;#Ho;#Ro;constructor(t,i,s={}){this.#Yo=t,this.#Ho=i,this.#Ro=s}async initialize(){return await wt("Vimeo","https://r2.micr.io/vimeo.min.js"),new Promise((t,i)=>{this.#Bo=new window.Vimeo.Player(this.#Yo,{width:this.#Ho.width.toString(),height:this.#Ho.height.toString(),title:0,autoplay:0});const s=this.#Bo;s.on("error",()=>{this.#Ro.onError?.(new Error("Vimeo player error")),i(new Error("Vimeo player error"))}),s.on("loaded",()=>{this.#Go?i(new Error("Player destroyed during initialization")):s.getVolume().then(()=>{this.#Ro.onReady?.(),t()})}),s.on("play",()=>{this.#Ro.onPlay?.(),this.#Ro.onSeeked?.()}),s.on("bufferstart",()=>{this.#Ro.onBuffering?.(),this.#Ro.onSeeking?.()}),s.on("seeked",()=>{this.#Ro.onSeeked?.()}),s.on("pause",()=>{this.#Ro.onPause?.()}),s.on("timeupdate",t=>{t&&(this.#Ro.onDurationChange?.(t.duration),this.#Ro.onTimeUpdate?.(t.seconds))}),s.on("ended",()=>{this.#Ro.onEnded?.()})})}async play(){this.#Bo?.play()}pause(){this.#Bo?.pause()}async getCurrentTime(){return await(this.#Bo?.getCurrentTime?.())??0}setCurrentTime(t){this.#Bo?.setCurrentTime?.(t)}async getDuration(){return await(this.#Bo?.getDuration?.())??0}async isPaused(){return await(this.#Bo?.getPaused?.())??1}setMuted(t){this.#Bo?.setVolume?.(t?0:1)}setVolume(t){this.#Bo?.setVolume?.(Math.max(0,Math.min(1,t)))}destroy(){if(this.#Go=1,this.#Bo){for(const t of["error","loaded","play","bufferstart","seeked","pause","volumechange","timeupdate","ended"])this.#Bo.off(t);this.#Bo.destroy(),this.#Bo=void 0}}},Vs=class{element;callbacks;constructor(t,i={}){this.element=t,this.callbacks=i,this.#jo()}#jo(){const t=this.element,i=this.callbacks;i.onPlay&&t.addEventListener("play",i.onPlay),i.onPause&&t.addEventListener("pause",i.onPause),i.onEnded&&t.addEventListener("ended",i.onEnded),i.onSeeking&&t.addEventListener("seeking",i.onSeeking),i.onSeeked&&t.addEventListener("seeked",i.onSeeked),i.onTimeUpdate&&t.addEventListener("timeupdate",()=>i.onTimeUpdate?.(t.currentTime)),i.onDurationChange&&t.addEventListener("durationchange",()=>i.onDurationChange?.(t.duration)),i.onError&&t.addEventListener("error",()=>i.onError?.(new Error("Media playback error"))),i.onReady&&t.addEventListener("canplay",i.onReady)}async play(){try{await this.element.play()}catch(t){throw t instanceof Error&&!/pause\(\)/.test(t.message)&&this.callbacks.onBlocked?.(),t}}pause(){this.element.pause()}async getCurrentTime(){return this.element.currentTime}setCurrentTime(t){this.element.currentTime=t}async getDuration(){return this.element.duration}async isPaused(){return this.element.paused}setMuted(t){this.element.muted=t}setVolume(t){this.element.volume=Math.max(0,Math.min(1,t))}destroy(){const t=this.element,i=this.callbacks;i.onPlay&&t.removeEventListener("play",i.onPlay),i.onPause&&t.removeEventListener("pause",i.onPause),i.onEnded&&t.removeEventListener("ended",i.onEnded),i.onSeeking&&t.removeEventListener("seeking",i.onSeeking),i.onSeeked&&t.removeEventListener("seeked",i.onSeeked)}},Ns="https://r2.micr.io/hls-1.6.15.min.js",Bs={abrEwmaDefaultEstimate:1e7,abrEwmaDefaultEstimateMax:5e7},Gs=()=>"MediaSource"in globalThis||"ManagedMediaSource"in globalThis,Ys=t=>`https://videodelivery.net/${t}/manifest/video.m3u8`,Hs=class extends Vs{#Wo;#Go=0;#Uo;constructor(t,i,s={}){super(t,s),this.#Uo=i}async initialize(){if(await wt("Hls",Ns),this.#Go)throw new Error("Adapter destroyed during initialization");const t=new window.Hls(Bs);this.#Wo=t,t.loadSource(this.#Uo),t.attachMedia(this.element),this.callbacks.onReady?.()}destroy(){this.#Go=1,super.destroy(),this.#Wo?.destroy(),this.#Wo=void 0}};function Rs(t){if(isNaN(t))return"0:00";const i=new Date(1e3*Math.abs(t)).toISOString().slice(11,19);return(0>t?"-":"")+(i.startsWith("00:")?i.slice(3):i)}var Xs=class extends yi{static tag="micrio-media-controls";#ph={paused:1,ended:0};#Zo;#qo;#Jo;#Ko;#Qo;#tn;#in;#Th=0;#sn;#en=0;#hn=0;#on=-1;#L="";eo(){this.#Yh(),this.oo(as.subscribe(()=>this.#Gh()))}xt(t){Object.assign(this.#ph,t),this.isConnected&&(this.#Yh(),this.#Th&&this.#Gh())}#Yh(){const t=this.#ph;if(!this.#Th){this.#Th=1,this.#Zo=pt("aside",{events:{click:t=>t.stopPropagation(),keydown:t=>t.stopPropagation()},parent:this}),this.#qo=pt("micrio-button",{parent:this.#Zo}),t.hasAudio&&(this.#Jo=pt("micrio-button",{parent:this.#Zo})),t.subtitles&&(this.#Ko=pt("micrio-button",{parent:this.#Zo}));const i=pt("div"),s=pt("div",{attrs:{"data-part":"bars"},children:[this.#tn=pt("div",{attrs:{"data-part":"bar"}})]}),e=t=>{0==t.button&&(window.addEventListener("mousemove",h),window.addEventListener("mouseup",o),h(t))},h=t=>{const i=s.getClientRects()[0];if(!i)return;const e=Math.min(1,Math.max(0,(t.clientX-i.left)/i.width));this.#ph.onseek?.(e*this.#ph.duration)},o=()=>{window.removeEventListener("mousemove",h),window.removeEventListener("mouseup",o)};s.addEventListener("mousedown",e),i.appendChild(s),this.#in=pt("span",{parent:i}),this.#Zo.appendChild(i),t.fullscreenEl&&(this.#Qo=pt("micrio-fullscreen",{parent:this.#Zo})),t.onclose&&pt("micrio-button",{setProps:{type:"close",title:R(Gi).Xo,onclick:t.onclose},parent:this.#Zo})}this.#Gh()}#Gh(){const t=this.#ph,i=R(Gi),s=R(as);if(t.paused===this.#sn&&t.seeking===this.#en&&void 0!==this.#sn||(this.#sn=t.paused,this.#en=!!t.seeking,this.#qo.xt({type:t.paused?"play":"pause",title:t.paused?i.rn:i.an,disabled:!!t.seeking,onclick:t.onplaypause})),this.#Jo&&t.muted!==this.#hn&&(this.#hn=!!t.muted,this.#Jo.xt({type:t.muted?"muted":"unmuted",title:t.muted?i.Ko:i.Jo,disabled:t.seeking,onclick:t.onmute})),this.#Ko&&this.#Ko.xt({type:s?"subtitles":"subtitlesOff",active:s,title:i.ln,onclick:()=>as.set(!R(as))}),this.#Qo&&this.#Qo.xt({el:t.fullscreenEl}),t.duration&&!isNaN(t.duration)){const i=(t.currentTime??0)/t.duration*100;(Math.abs(i-this.#on)>.5||0===i)&&(this.#on=i,this.#tn.style.width=`${i}%`);const s=t.getTimeDisplay?t.getTimeDisplay(t.currentTime??0,t.duration):(0>t.duration-(t.currentTime??0)?"":"-")+(t=>new Date(1e3*Math.abs(t)).toISOString().slice(14,19))(Math.abs(t.duration-(t.currentTime??0)));s!==this.#L&&(this.#L=s,this.#in.textContent=s)}else"0:00"===this.#L&&0===this.#on||(this.#L="0:00",this.#on=0,this.#in.textContent="0:00",this.#tn.style.width="0%")}};customElements.define(Xs.tag,Xs);var js,Ws=/((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu.be|youtube-nocookie\.com))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?/,Us=/vimeo\.com/,Zs=0,qs=class extends yi{static tag="micrio-media";#nn;#rn;#Yo;#Uo;#an;#cn;#ln=1;#un=0;#W=0;#_h=0;#dn=0;#pn=0;#mn;#fn(t,i,s){const e=t.match(Ws)?.[5];if(!e)return;const h=pt("iframe",{props:{src:`https://www.youtube-nocookie.com/embed/${e}?autoplay=${i.autoplay?1:0}&playsinline=1&enablejsapi=1`,width:String(i.width??400),height:String(i.height??240)},attrs:{allow:"autoplay; encrypted-media",allowfullscreen:""},parent:s});this.#Yo=h}#gn(t,i,s){const e=t.match(/\/(\d+)/);if(!e?.[1])return;const h=e[1],o=t.slice(t.indexOf(h)+h.length+1).replace(/\?.*$/,"")||void 0,n=pt("iframe",{props:{src:`https://player.vimeo.com/video/${h}?${o?`h=${o}&`:""}title=0&portrait=0&sidedock=0&byline=0&controls=0`,width:String(i.width??400),height:String(i.height??240)},attrs:{allow:"autoplay; fullscreen",allowfullscreen:""},parent:s});this.#Yo=n}#vn(t,i,s){const e=Ys(t.slice(8)),h=pt("video",{props:{src:e,width:i.width??400,height:i.height??240,controls:0,preload:"metadata",playsInline:1,crossOrigin:"anonymous",...i.autoplay?{autoplay:1}:{},...i.muted?{muted:1}:{}},parent:s});this.#nn=h,this.#wn(h),this.#Uo=e}#Mn(t,i,s){if(!(this.#nn instanceof HTMLAudioElement)){const t=(js||((js=document.createElement("audio")).style.display="none",js.controls=0,js.preload="metadata",document.body.appendChild(js)),Zs++,js);this.#nn=t,this.#wn(t),this.oo(()=>{--Zs>0||(Zs=0,js?.remove(),js=void 0),this.#nn=void 0})}const e=this.#nn;e.src=t,i.autoplay?e.setAttribute("autoplay",""):e.removeAttribute("autoplay"),e.muted=!!i.muted}#yn(t,i,s){const e=pt("video",{props:{src:t,width:i.width??400,height:i.height??240,controls:0,preload:"metadata",playsInline:1,crossOrigin:"anonymous",...i.autoplay?{autoplay:1}:{},...i.muted?{muted:1}:{}},parent:s});this.#nn=e,this.#wn(e)}Ch(){const t=this.so,i=t.src;if(!i&&!t.tour)return void this.replaceChildren();const s=i?Ws.test(i):0,e=i?Us.test(i):0,h=i?i.startsWith("cfvid://"):0,o=i?i.includes(".mp3")||i.includes(".ogg")||i.includes(".wav")||i.includes("audio/"):0,n=!!t.tour&&!!t.image&&!i;this.replaceChildren();const r=pt("figure",{className:t.className});if(t.is360&&r.style.setProperty("--micrio-background","transparent"),s?this.#fn(i,t,r):e?this.#gn(i,t,r):h?this.#vn(i,t,r):o&&i?this.#Mn(i,t,r):i&&this.#yn(i,t,r),t.figcaption&&pt("figcaption",{textContent:t.figcaption,parent:r}),this.appendChild(r),this.#Yo){const i=t.width??400,h=t.height??240;s?(this.#an=new Os(this.#Yo,{width:i,height:h},{onPlay:()=>{this.#ln=0,this.#_n(),this.#bn()},onPause:()=>{this.#ln=1,this.#kn(),this.#bn()},onEnded:()=>{this.#un=1,this.#ln=1,this.#kn(),this.#bn(),t.onended?.()},onSeeking:()=>{this.#dn=1},onSeeked:()=>{this.#dn=0,this.#bn()}}),this.#an.initialize().then(()=>{t.autoplay&&this.#an.play()}).catch(()=>{})):e&&(this.#an=new Fs(this.#Yo,{width:i,height:h},{onPlay:()=>{this.#ln=0,this.#bn()},onPause:()=>{this.#ln=1,this.#bn()},onEnded:()=>{this.#un=1,this.#ln=1,this.#bn(),t.onended?.()},onTimeUpdate:t=>{this.#_h=t,this.#bn()},onDurationChange:t=>{this.#W=t}}),this.#an.initialize().then(()=>{t.autoplay&&this.#an.play()}).catch(()=>{}))}if(h&&this.#Uo&&this.#nn&&Gs()&&(this.#an=new Hs(this.#nn,this.#Uo,{onReady:()=>{this.#bn()},onEnded:()=>{this.#un=1,this.#ln=1,this.#bn(),t.onended?.()}}),this.#an.initialize().catch(()=>{})),t.tour&&t.image&&(this.#nn||n)){if(this.#rn=new $s(t.image,t.tour),this.#nn){const t=()=>this.#rn?.play();this.#nn.addEventListener("play",t),this.oo(()=>this.#nn?.removeEventListener("play",t))}if(n){this.#W=this.#rn.duration;const i=setInterval(()=>{this.#_h=this.#rn.currentTime,this.#W=this.#rn.duration,this.#ln=this.#rn.paused,this.#un=this.#rn.ended,this.#rn.updateEvents(this.#_h),this.#bn(),t.secondary||this.mo()?.dispatchEvent(new CustomEvent("timeupdate",{detail:this.#_h})),!this.#un||this.#nn&&!this.#nn.ended||t.onended?.()},250);this.oo(()=>clearInterval(i)),t.autoplay&&this.#rn.play()}else{const t=()=>this.#rn?.pause();this.#nn?.addEventListener("ended",t),this.oo(()=>this.#nn?.removeEventListener("ended",t)),this.#nn?.paused||this.#rn?.play()}}if(!t.secondary&&t.tour&&!("steps"in t.tour)){const i=this.mo()?.lang||"en",s=t.tour.i18n?.[i]?.subtitle;s?.src&&(this.#mn=pt("micrio-subtitles",{setProps:{src:s.src,mediaEl:this.#nn??this},parent:this.closest("micrio-main")||this.parentNode}))}if(0!=t.controls){const i=!(t.secondary||!t.tour||"steps"in t.tour||!t.tour.i18n?.[this.mo()?.lang||"en"]?.subtitle),s=()=>{const t=this.#nn;t?t.paused?(t.play().catch(()=>{}),this.#rn?.play()):(t.pause(),this.#rn?.pause()):this.#rn?this.#rn.paused?this.#rn.play():this.#rn.pause():this.#an&&this.#an.isPaused().then(t=>{t?this.#an.play():this.#an.pause()})},e=()=>{const t=this.#nn;t?(this.#pn=!this.#pn,t.muted=this.#pn,this.#bn()):this.#an&&(this.#pn=!this.#pn,this.#an.setMuted(this.#pn),this.#bn())},h=t=>{const i=this.#nn;i?i.currentTime=t:this.#rn?this.#rn.currentTime=t:this.#an&&this.#an.setCurrentTime(t)},a=()=>{const n=this.#nn;if(!n)return this.#rn?void 0:void this.#an;this.#_h=n.currentTime,this.#W=n.duration||0,this.#ln=n.paused,this.#un=n.ended||0,this.#dn=n.seeking,this.#pn=n.muted,c.xt({currentTime:this.#_h,duration:this.#W,paused:this.#ln,ended:this.#un,seeking:this.#dn,muted:this.#pn,hasAudio:t.hasAudio??(!!t.src&&!o),subtitles:i,getTimeDisplay:t.getTimeDisplay,fullscreenEl:t.fullscreenEl??(o?void 0:r),onplaypause:s,onmute:e,onseek:h,onclose:t.onclose})},c=pt("micrio-media-controls",{setProps:{paused:1,ended:0,hasAudio:t.hasAudio??(!!t.src&&!o),subtitles:i,getTimeDisplay:t.getTimeDisplay,fullscreenEl:t.fullscreenEl??(o?void 0:r),onplaypause:s,onmute:e,onseek:h,onclose:t.onclose},parent:r});if(this.#nn&&(this.#nn instanceof HTMLVideoElement||this.#nn instanceof HTMLAudioElement)&&!n){const i=()=>{a(),this.#rn?.updateEvents(this.#_h),t.secondary||this.mo()?.dispatchEvent(new CustomEvent("timeupdate",{detail:this.#_h}))},s=()=>{a(),n||t.onended?.()},e=()=>{this.#dn=1,a()},h=()=>{this.#dn=0,a()};this.#nn.addEventListener("timeupdate",i),this.#nn.addEventListener("loadedmetadata",a),this.#nn.addEventListener("play",a),this.#nn.addEventListener("pause",a),this.#nn.addEventListener("ended",s),this.#nn.addEventListener("seeking",e),this.#nn.addEventListener("seeked",h),this.oo(()=>{const t=this.#nn;t&&(t.removeEventListener("timeupdate",i),t.removeEventListener("loadedmetadata",a),t.removeEventListener("play",a),t.removeEventListener("pause",a),t.removeEventListener("ended",s),t.removeEventListener("seeking",e),t.removeEventListener("seeked",h))}),a()}}}#wn(t){const i=this.po("volume");i&&this.oo(i.subscribe(i=>{t.volume=i}))}#_n(){null==this.#cn&&(this.#cn=setInterval(async()=>{this.#an&&(this.#_h=await this.#an.getCurrentTime(),this.#W=await this.#an.getDuration(),this.#rn?.updateEvents(this.#_h),this.#bn())},250))}#kn(){null!=this.#cn&&(clearInterval(this.#cn),this.#cn=void 0)}#bn(){const t=this.querySelector("micrio-media-controls");t&&t.xt({currentTime:this.#_h,duration:this.#W,paused:this.#ln,ended:this.#un,seeking:this.#dn,muted:this.#pn})}ho(){this.#rn?.destroy(),this.#an?.destroy(),this.#kn(),this.#mn?.remove()}};customElements.define(qs.tag,qs);var Js=class extends yi{static tag="micrio-marker-popup";#ph={marker:null};#Co;#xn;#Tn=0;#Pn=0;#Sn=0;#En=new WeakMap;eo(){const{marker:t}=this.#ph,i=this.mo();i&&t&&(t.tags?.forEach(t=>this.classList.add(t)),gt().then(()=>this.querySelector("micrio-button:last-child > button")?.focus()),this.oo(i.state.popup.subscribe(i=>{this.#Pn=!i||i!=t,this.classList.toggle("destroying",this.#Pn)})),this.addEventListener("transitionend",t=>{t.target===this&&this.#Pn&&this.remove()}),this.#dh())}xt(t){void 0!==t.marker&&t.marker.id!==this.#ph.marker?.id&&(this.#ph.marker=t.marker,this.isConnected&&this.#dh())}#dh(){const{marker:t}=this.#ph,i=this.mo();if(!i||!t)return;const s=yi.io,e=t.id?s.get(t.id):void 0;if(!e)return;const h=R(i.state.tour),o=R(i.current),n=R(Gi),r=e.$settings.t??{},a=t.data||{},c=r.canMinimizePopup,l=h&&"steps"in h?h:void 0,u=(l?i.Pe.find(t=>t.$data?.markerTours?.find(t=>t.id===l.id)):void 0)?.$settings.t,d=l&&l.steps?.findIndex(i=>i.startsWith(t.id))>=0,p=!i.canvas.$isMobile&&d&&!l?.isSerialTour&&(u?.tourControlsInPopup??r.tourControlsInPopup),m=p||(l?l.currentStep==l.steps.length-1:void 0),f=t=>{h&&d&&"steps"in h?t instanceof Event&&m?i.state.tour.set(void 0):h.next?.():o&&o.id!=e.id&&a.micrioLink?.id==o.id?(i.open(e.id),e.state.marker.set(void 0),i.state.popup.set(void 0)):e.state.marker.set(void 0)},g=()=>{if(this.#Tn=!this.#Tn,this.classList.toggle("minimized",this.#Tn),this.#Co)for(let t=0;t<this.#Co.children.length;t++){const i=this.#Co.children[t];i&&i!==this.#xn&&(this.#En.has(i)||(this.#En.set(i,i.offsetHeight),i.style.height=i.offsetHeight+"px"),setTimeout(()=>{i.style.height=this.#Tn?"0px":this.#En.get(i)+"px"},100))}};if(this.replaceChildren(),!p){const t=pt("aside");a.alwaysOpen||pt("micrio-button",{setProps:{type:!d||m?"close":"next",title:!d||m?n.Qo:n.tn,disabled:this.#Sn,onclick:f},parent:t}),c&&pt("micrio-button",{setProps:{type:this.#Tn?"up":"down",title:n.nn,onclick:g},parent:t}),this.appendChild(t)}this.#Co=pt("micrio-marker-content",{setProps:{marker:t,onclose:f},parent:this}),p&&requestAnimationFrame(()=>{const t=document.querySelector("micrio-tour")?.aside;t&&!this.contains(t)&&this.appendChild(t)})}};customElements.define(Js.tag,Js);var Ks=class extends yi{static tag="micrio-marker";#ph={marker:null};#In=0;#Cn=0;#zn=0;#Ln=0;#An=1;#$n=0;#Dn="";#to;#On=0;#Fn;eo(){const{marker:t,image:i,forceHidden:s=0}=this.#ph,e=this.mo();if(!e||!i||!t)return;const h=yi.io;!h.has(t.id)&&i&&h.set(t.id,i);const o=e.events,n=R(e.Ht),r=i.$settings.t??{},a=t.i18n?.[n],c=t.data??{},l=0==t.data?.showTitle||!!r.noTitles||!!i.$settings.omni?.sideLabels,u=/[?&]micrioNoTooltips/.test(location.search)||!!i.$settings.omni?.sideLabels;if(t.videoTour){const i=t.videoTour.i18n?.[n]?.timeline;i?.length&&(t.view=i[0].rect)}const d=a&&!l&&(a.label||a.title),p="cluster"==t.type,m=p||"link"!=t.type?"media"==t.type?"play":void 0:"link",f=null!=t.data?.customIconIdx?i.$settings.t?.customIcons?.[t.data.customIconIdx]:t.data?.icon||r.markerIcon,g=!!m||!!f,v=g||"default"==t.type,w=i.$settings.omni;if(i.$t&&w){const s=(t.rotation??0)+(t.backside?Math.PI:0);if(this.#On=i.camera.gt(s)??0,t.visibleArc){const s=i.camera.gt(t.visibleArc[0]),e=i.camera.gt(t.visibleArc[1]);null!=s&&null!=e&&(this.#Fn=[s,e])}}const M=!!t.data?.scales||!!i.$settings.markersScale,y=()=>{if(i.A&&M)this.#Dn=i.camera.getMatrix(t.x,t.y,1,1,0,0,0).join(","),this.style.setProperty("--mat",`matrix3d(${this.#Dn})`),this.classList.add("mat3d");else{const s=i.camera.V(t.x,t.y,{radius:t.radius,rotation:t.rotation});if([this.#zn,this.#Ln,this.#An,this.#$n]=s,i.A)this.#Cn=this.#$n>0;else if(i.$t&&w)if(this.#Fn&&null!=t.rotation){const t=w.frames/(w.layers?.length??1);let s=(i.omni?.currentIndex??0)-this.#On;s>t/2&&(s-=t),-t/2>s&&(s+=t),this.#Cn=s<=this.#Fn[0]||s>=this.#Fn[1]}else w.distance&&(this.#Cn=0>this.#$n);this.style.setProperty("--x",`${this.#zn}px`),this.style.setProperty("--y",`${this.#Ln}px`),M&&this.style.setProperty("--scale",`${this.#An}`),this.classList.remove("mat3d"),this.classList.toggle("behind",this.#Cn)}},_=()=>{if(t.onclick)return t.onclick(t);r.noMarkerActions||("cluster"==t.type?t.view&&e.$current?.$info&&i.camera.flyToView(t.view,{limitZoom:1}):i.state.marker.set(t))},b=()=>{r.noMarkerActions||(this.parentNode?.scrollTo(0,0),clearTimeout(this.#to),this.#to=setTimeout(()=>{const s=i.camera.getXY(t.x,t.y);!this.#In&&(0>s[0]||s[0]>=e.offsetWidth||0>s[1]||s[1]>=e.offsetHeight||i.A&&s[3]>4)&&i.camera.flyToCoo([t.x,t.y],{speed:2,limit:1}).catch(()=>{})},150))},k=async()=>{if(this.#In)return void(R(e.state.popup)||i.state.marker.set(void 0));if(this.#In=1,this.classList.add("opened"),clearTimeout(this.#to),r.noMarkerActions)return;o.Pt("marker-open",t);const s=R(e.state.tour);!s||"steps"in s&&s.steps?.some(i=>i.startsWith(t.id))||e.state.tour.set(void 0),await X(),!t.view||c.noAnimate||t.videoTour?x():i.camera.flyToView(t.view,{omniIndex:i.$t?this.#On:void 0,isJump:1}).then(x).catch(()=>{i.state.$marker===t&&(i.It=void 0,i.state.marker.set(void 0))})},x=async()=>{if(p)return;if(i.state.$marker!=t){if(!i.state.$marker)return;return i.state.marker.set(t)}if(r.noMarkerActions)return;const s=R(e.state.tour);if(o.Pt("marker-opened",t),"popup"==t.popupType&&(a?.title||a?.body||a?.bodySecondary||a?.embedUrl||t.images?.length||t.videoTour))X().then(()=>e.state.popup.set(t));else if("popover"==t.popupType)e.state.popover.set({marker:t,image:i,markerTour:s&&"steps"in s?s:void 0});else if(t.videoTour&&!s){e.state.tour.set(t.videoTour);const s=e.state.tour.subscribe(t=>{t||(s(),i.state.marker.set(void 0))})}const h=c.micrioLink?.id;h&&X().then(()=>{e.open(h,{vector:vs(e,h)?.vector})});const n=c.micrioSplitLink;if(n&&!Xi(i)){const t=Yi(n);if(t){const s=Ri(i);if(s)if(s.id===t.micrioId){if(t.markerId){const i=s.$data?.markers?.find(i=>i.id===t.markerId);i?.view&&s.camera.flyToView(i.view,{isJump:1})}}else Wi(e,i),X().then(()=>ji(e,i,t,{isPassive:t.follows}));else ji(e,i,t,{isPassive:t.follows})}}},T=()=>{this.classList.remove("opened"),o.Pt("marker-closed",t),e.state.popover.set(void 0),e.state.popup.set(void 0)};if(this.oo(i.state.marker.subscribe(s=>{if("string"==typeof s&&s==t.id)i.state.marker.set(t);else if(s==t)k();else if(!(c.alwaysOpen||s&&s==t)){if(this.#In){if(c.micrioSplitLink){const t=s&&"string"!=typeof s?s:null;if(t&&t.data?.micrioSplitLink){const s=Yi(t.data.micrioSplitLink),h=Ri(i);s&&h&&s.micrioId===h.id||Wi(e,i)}else Wi(e,i)}T()}else s||this.classList.remove("opened");this.#In=0,R(e.state.tour)||i.camera.stop()}})),t.noMarker||this.oo(i.state.view.subscribe(()=>{y()})),s||X().then(()=>{const s=R(e.state.popup),h=R(e.state.tour);this.#In&&!t.noMarker&&s&&s!=t&&!h?i.state.marker.set(void 0):c.alwaysOpen&&x()}),this.classList.toggle("cluster",p),this.classList.toggle("default",!!v),this.classList.toggle("has-icon",g),this.classList.toggle("has-custom-icon",!!f),!t.htmlElement&&!t.noMarker){const i=pt("button",{props:{...u||p?{}:{title:a?.label||a?.title||""},id:t.id},attrs:{"data-scroll-through":""},events:{click:_,focus:b,blur:()=>clearTimeout(this.#to),mouseenter:()=>e.state.markerHoverId.set(t.id),mouseleave:()=>e.state.markerHoverId.set(void 0)},parent:this});f?pt("img",{props:{src:"string"==typeof f?f:f.src,alt:""},parent:i}):m&&pt("micrio-icon",{setProps:{name:m},parent:i}),d&&pt("label",{textContent:a?.label||a?.title||"",attrs:{for:t.id,"data-scroll-through":""},parent:i})}t.noMarker||y(),t.tags&&t.tags.forEach(t=>this.classList.add(t))}xt(t){Object.assign(this.#ph,t)}ho(){clearTimeout(this.#to)}};customElements.define(Ks.tag,Ks);var Qs=class extends yi{static tag="micrio-markers";#ph={image:null};eo(){const{image:t}=this.#ph,i=this.mo();if(!i||!t)return;const{Zt:s,state:e}=i,h=i.Pe[0]?.grid,o=h?.To,n=h?.Po;this.oo(t.Nt.subscribe(t=>{if(!t||4>t.length)return;t=t.map(t=>Math.round(100*t)/100);const s=i.canvas.viewport;this.style.left=t[0]?`${t[0]}px`:"",this.style.top=t[1]?`${t[1]}px`:"",this.style.width=t[2]==s.width?"":`${t[2]}px`,this.style.height=t[3]==s.height?"":`${t[3]}px`}));const r=()=>{if(!t.$settings.clusterMarkers)return;const s=t.$data?.markers?.filter(t=>!t.i18n||t.i18n[R(i.Ht)]);if(!s)return;const e=t.$settings.clusterMarkerRadius??16,h=s.map(i=>{const s=t.camera.V(i.x,i.y,{radius:i.radius,rotation:i.rotation});return[s[0],s[1]]}),o=[];for(let t=0;t<s.length;t++)for(let i=t+1;i<s.length;i++){if(s[i].tags?.includes("no-cluster"))continue;if(Math.abs(h[i][0]-h[t][0])>=e||Math.abs(h[i][1]-h[t][1])>=e)continue;const n=o.find(s=>s.includes(t)||s.includes(i));n?n.push(t,i):o.push([t,i])}const n=o.map(t=>[...new Set(t)].sort((t,i)=>t-i)),r=new Set;for(const t of n)for(const i of t)r.add(i);for(let t=0;t<s.length;t++)this.querySelector(`[data-marker-id="${s[t].id}"]`)?.classList.toggle("overlapped",r.has(t));const a=new Set(n.map(t=>t.join(",")));for(const t of this.querySelectorAll(":scope > micrio-marker.cluster")){const i=t.getAttribute("data-marker-id");i&&!a.has(i)&&t.remove()}for(const i of n){const e=i.join(",");if(this.querySelector(`:scope > micrio-marker.cluster[data-marker-id="${e}"]`))continue;const h=i.reduce((t,i)=>t+s[i].x,0)/i.length,o=i.reduce((t,i)=>t+s[i].y,0)/i.length,n=Math.min(...i.map(t=>s[t].view?s[t].view[0]:s[t].x)),r=Math.max(...i.map(t=>s[t].view?s[t].view[0]+s[t].view[2]:s[t].x)),a=Math.min(...i.map(t=>s[t].view?s[t].view[1]:s[t].y)),c=Math.max(...i.map(t=>s[t].view?s[t].view[1]+s[t].view[3]:s[t].y));pt("micrio-marker",{attrs:{"data-marker-id":e},setProps:{marker:{id:e,x:h,y:o,type:"cluster",title:i.length+"",view:[n,a,Math.max(.1,r-n),Math.max(.1,c-a)],data:{},popupType:"none",tags:[]},image:t},parent:this})}},a=()=>{const e=t.$data?.markers,a=o?R(o):void 0,c=n?R(n):void 0,l=h&&a!=t&&c&&0>c.indexOf(t),u=!!t.$settings.t?.showTitles;if(this.classList.toggle("inactive",!!l),this.classList.toggle("show-titles",u),!R(s)&&i.spaceData){const s=i.spaceData.links.filter(i=>i[0]==t.id||i[1]==t.id),e=new Set(s.map(i=>i[0]==t.id?i[1]:i[0]));for(const t of this.querySelectorAll(":scope > micrio-waypoint"))e.has(t.getAttribute("data-target-id"))||t.remove();for(const i of s){const s=i[0]==t.id?i[1]:i[0];let e=this.querySelector(`:scope > micrio-waypoint[data-target-id="${s}"]`);e||(e=pt("micrio-waypoint",{attrs:{"data-target-id":s},setProps:{targetId:s,settings:i[2]?.[t.id],image:t},parent:this}))}}else for(const t of this.querySelectorAll(":scope > micrio-waypoint"))t.remove();if(e){const s=R(i.Ht),h=e.filter(t=>!t.i18n||t.i18n[s]),o=new Set(h.map(t=>t.id));for(const t of this.querySelectorAll(":scope > micrio-marker")){const i=t.getAttribute("data-marker-id");i&&!t.classList.contains("cluster")&&(o.has(i)||t.remove())}for(const i of h){let s=this.querySelector(`:scope > micrio-marker[data-marker-id="${i.id}"]`);s||(s=pt("micrio-marker",{attrs:{"data-marker-id":i.id},setProps:{marker:i,image:t,...i.noMarker?{forceHidden:1}:{}},parent:this}))}}else for(const t of this.querySelectorAll(":scope > micrio-marker"))t.remove();if(l)for(const t of this.querySelectorAll(":scope > micrio-marker, :scope > micrio-waypoint"))t.remove();t.$settings.clusterMarkers&&r()};if(this.co(t.data,a),this.co(s,a),e.tour&&this.co(e.tour,a),o&&this.co(o,a),n&&this.co(n,a),this.lo(i.Ht,a),t.$settings.clusterMarkers&&this.oo(t.state.view.subscribe(r)),!t.grid&&t.$settings.t?.zoomOutAfterClose){let s=0;this.oo(t.state.marker.subscribe(e=>{e&&"string"!=typeof e&&!t.It&&!e.noMarker&&e.view?(t.It=R(i.state.tour)&&!("steps"in R(i.state.tour))?void 0:structuredClone(t.state.$view??t.camera?.getView()),s=!!e.videoTour):e||!t.It||R(i.state.tour)||setTimeout(()=>{if(t.It){const i=t.It,s=Math.min(1,i[2]),e=Math.min(1,i[3]),h=s/2,o=e/2,n=Math.max(h,Math.min(1-h,i[0]+h)),r=Math.max(o,Math.min(1-o,i[1]+o));t.camera.flyToView([n-h,r-o,s,e],{speed:t.$settings.t?.zoomOutAfterCloseSpeed}).catch(()=>{})}t.It=void 0,s=0},s?250:10)}))}a()}xt(t){void 0!==t.image&&(this.#ph.image=t.image)}};customElements.define(Qs.tag,Qs);var te=class extends yi{static tag="micrio-dial";#ph={currentRotation:0,frames:1};eo(){const t=this.mo();if(!t)return;const i=t.$current?.camera;if(!i)return;let s,e=0,h=0;const o=s=>{const o=Math.max(1,(i.getXY(1,.5)[0]-i.getXY(0,.5)[0])/t.offsetWidth),n=(h/360+(e-s.clientX)/(this.offsetWidth*o))*this.#ph.frames;this.#ph.onturn?.(n)},n=()=>{s&&t.releasePointerCapture(s),t.removeAttribute("data-panning"),t.removeEventListener("pointermove",o),t.removeEventListener("pointerup",n)};this.addEventListener("pointerdown",i=>{i.stopPropagation(),i.preventDefault(),0==i.button&&(t.addEventListener("pointermove",o),t.addEventListener("pointerup",n),t.setAttribute("data-panning",""),t.setPointerCapture(s=i.pointerId),h=this.#ph.currentRotation,e=i.clientX)})}xt(t){if(Object.assign(this.#ph,t),this.isConnected){const t=-this.#ph.currentRotation/360*(this.offsetWidth??0);this.style.setProperty("--micrio-dial-offset",`${t}px`)}}};customElements.define(te.tag,te);var ie=class extends yi{static tag="micrio-minimap";#ph={image:null};#Vn=null;#Nn;#Bn;#Gn;#po;eo(){this.#eo()}xt(t){void 0!==t.image&&t.image!==this.#ph.image&&(this.#ph.image=t.image,this.isConnected&&(this.#Gn?.(),this.replaceChildren(),this.#Vn=null,this.#eo()))}#eo(){const{image:t}=this.#ph;if(!this.mo()||!t)return;const i=t.$info;if(!i)return;const s=t.camera,e=t.$settings,h=e.minimapWidth??200,o=e.minimapHeight??160,n=i.width/i.height,r=h/n>o?Math.round(o*n):h,a=h/n>o?o:Math.round(h/n),c=-s.rotationY/(2*Math.PI),l=self.crossOriginIsolated;let u=l?void 0:t.thumbSrc;const d=s=>{if(!s||!this.#Vn)return;const e=this.#Vn;e.clearRect(0,0,r,a),clearTimeout(this.#po),this.classList.remove("hidden"),this.#po=setTimeout(()=>this.classList.add("hidden"),2500);const h=!(!t.thumbSrc&&!u);if(i.is360){h&&(e.globalCompositeOperation="source-over",e.fillStyle="rgba(0,0,0,.45)",e.fillRect(0,0,r,a),e.globalCompositeOperation="destination-out");const t=Z(s[0]+s[2]/2),i=Math.max(0,Math.min(1,s[1]+s[3]/2)),o=Math.round(t*r),n=Math.round(i*a),c=Math.max(1,Math.round(s[2]*r/2));e.fillStyle=h?"white":"rgba(255,255,255,.8)",e.fillRect(Math.round(o-c),0,2*c,a);const l=Math.max(1,Math.round(s[3]*a/2));e.fillRect(0,Math.round(n-l),r,2*l),e.beginPath(),e.arc(o,n,3,0,2*Math.PI),e.fill(),h&&(e.globalCompositeOperation="source-over")}else h?(e.globalCompositeOperation="source-over",e.fillStyle="rgba(0,0,0,.5)",e.fillRect(0,0,r,a),e.globalCompositeOperation="destination-out"):(e.fillStyle="rgba(0,0,0,.5)",e.fillRect(0,0,r,a)),e.beginPath(),e.fillStyle="white",e.rect(Math.floor(s[0]*r),Math.floor(s[1]*a),Math.ceil(s[2]*r),Math.ceil(s[3]*a)),h&&(e.fill(),e.globalCompositeOperation="source-over"),e.stroke()},p=t=>{if(!this.#Bn)return;const i=Math.max(0,Math.min(1,(t.clientX-this.#Bn.left)/this.#Bn.width)),e=Math.max(0,Math.min(1,(t.clientY-this.#Bn.top)/this.#Bn.height));this.#Nn?s.setView([i-this.#Nn.width/2,e-this.#Nn.height/2,this.#Nn.width,this.#Nn.height]):s.setCoo(i,e)},m=()=>{window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",m),this.#Nn=void 0},f=pt("canvas",{props:{width:r,height:a},className:e.alwaysShowMinimap?"fixed":void 0,events:{mousedown:t=>{if(0!=t.button)return;window.addEventListener("mousemove",p),window.addEventListener("mouseup",m),this.#Bn=f.getBoundingClientRect();const i=s.getView();i&&(this.#Nn={width:i[2],height:i[3]}),p(t)}},parent:this});u&&(f.style.backgroundImage=`url('${u}')`,0!=c&&(f.style.backgroundPositionX=r*c+"px")),f.addEventListener("wheel",t=>{s.zoom(t.deltaY*(xt.firefox?50:1))},{passive:1}),this.#Vn=f.getContext("2d"),this.#Vn&&(this.#Vn.lineWidth=1,this.#Vn.strokeStyle="white"),l&&t.thumbSrc&&fetch(t.thumbSrc).then(t=>t.blob()).then(i=>{u=URL.createObjectURL(i),f.style.backgroundImage=`url('${u}')`,d(R(t.state.view))}),this.#Gn?.(),this.#Gn=t.state.view.subscribe(d),this.oo(this.#Gn)}};customElements.define(ie.tag,ie);var se=class{#Yn=0;#Hn=void 0;#Rn=void 0;#Xn=void 0;#jn=void 0;#Wn=0;#Un=1;bn=void 0;#Zn=1;#_;#d;#qn;#ln;#Jn;constructor(t,i,s,e,h){this.#_=t,this.#d=i,this.#qn=s,this.#ln=e,this.#Jn=h,this.#Yn=!!s.video?.streamId&&!s.video?.transparent,this.bn=i.Ct,this.#Un=s.video?.autoplay??1;let o=1;this.#Rn=this.#d.visible.subscribe(t=>{clearTimeout(this.#jn),this.#jn=t?setTimeout(()=>{this.#Zn&&(this.bn?(this.#xe(),this.#Un&&!this.#ln&&this.bn.play().catch(t=>console.warn("WebGL Embed video play() failed",t))):this.#Kn())},o?0:100):setTimeout(()=>this.bn?.pause(),0),o=0})}kn(){clearTimeout(this.#jn)}xn(){this.#Zn=0,clearTimeout(this.#jn),clearTimeout(this.#Xn),this.bn?.pause(),this.#Qn(),this.#Rn?.(),this.#Hn?.destroy(),this.#Hn=void 0,this.#tr()}#ir(t){this.bn&&(this.#ln=!t,t?this.bn.dataset.playing="1":delete this.bn.dataset.playing,this.#_.Sh(this.#d,t),this.#qn.hideWhenPaused&&this.#_.Ph(this.#d,t?1:0),t&&this.#_.render())}#Kn(){if(!this.#qn.video||this.bn)return;const t=this.#Yn?Ys(this.#qn.video.streamId):this.#qn.video.src;t?(this.bn=pt("video",{props:{crossOrigin:"anonymous",playsInline:1,width:this.#qn.width,height:this.#qn.height,muted:this.#qn.video.muted}}),this.#xe(),this.#Yn&&Gs()?wt("Hls",Ns).then(()=>{this.#Hn=new window.Hls(Bs),this.#Hn.loadSource(t),this.bn&&this.#Hn.attachMedia(this.bn)}).catch(t=>console.error("[Micrio GL Embed] Failed to load HLS.js:",t)):this.bn.src=t):console.error("[Micrio GL Embed] No video source found for embed:",this.#qn.id)}#sr={play:()=>this.#ir(1),pause:()=>this.#ir(0),playing:()=>{!this.#d.Ct&&this.bn&&("requestVideoFrameCallback"in this.bn?this.bn.requestVideoFrameCallback(()=>{this.bn&&this.#Zn&&(this.#d.video.set(this.bn),this.#_.render())}):this.#d.video.set(this.bn))},canplayEvt:xt.iOS?"loadedmetadata":"canplay",canplay:()=>{this.bn&&this.#Zn&&(this.#Un&&!this.#ln?(this.bn.play().catch(t=>console.warn("WebGL Embed video play() failed on canplay:",t)),this.#Jn()):this.#qn.hideWhenPaused||(this.#ir(1),X().then(()=>{this.#ir(0),this.#tr()})))}};#tr(){this.#Wn&&this.bn?.parentNode&&(this.bn.remove(),this.#Wn=0)}#xe(){if(!this.#qn.video||!this.bn)return;const t=this.#qn.video.loopAfter,i=this.bn;this.#qn.video.loop&&t?(i.loop=0,i.onended=()=>{this.#ir(0),this.#Xn=setTimeout(()=>i?.play().catch(t=>console.warn("WebGL Embed video loop play() failed:",t)),1e3*t)},i.onplay=()=>this.#ir(1)):(i.loop=this.#qn.video.loop,i.onended=null,i.onplay=null),i.parentNode||this.#Un||this.#Yn||(i.setAttribute("style","opacity:0;position:absolute;top:0;left:0;transform-origin:left top;transform:scale(0.1);pointer-events:none;"),document.body.appendChild(i),this.#Wn=1),i.addEventListener("play",this.#sr.play),i.addEventListener("pause",this.#sr.pause),i.addEventListener("playing",this.#sr.playing,{once:1}),i.addEventListener(this.#sr.canplayEvt,this.#sr.canplay,{once:1})}#Qn(){const t=this.bn;t&&(t.removeEventListener("play",this.#sr.play),t.removeEventListener("pause",this.#sr.pause),t.removeEventListener("playing",this.#sr.playing),t.removeEventListener(this.#sr.canplayEvt,this.#sr.canplay),t.onended=null,t.onplay=null)}},ee=class extends yi{static tag="micrio-embed";#ph={embed:null,image:null};#Xs;#w;#er;#hr;#or;#nr;#rr;#ar;#cr;#lr=0;#Un=1;#ur=0;#dr=0;#pr=0;#mr=0;#fr=0;#gr=0;#vr;#wr=0;#Mr=0;#yr=0;#ln=0;#_r=0;#br=0;#$n=0;#kr=0;#xr=0;#Tr=0;#Pr=1;#Sr=0;#Er=0;#Ir=0;#Cr=1;#ri=1;#zn=0;#Ln=0;#An=0;#Dn="";#zr="";eo(){const{embed:t,image:i,marker:s}=this.#ph;if(this.#Xs=this.mo(),!this.#Xs||!t||!i)return;if(this.#w=i.$info,!this.#w)return;t.uuid||(t.uuid=E()),this.#lr=i.A,this.#Un=t.video?.autoplay??1;const e=i.grid;if(e){const t=e.To,s=e.Po,h=()=>{const h=R(t),o=s?R(s):void 0,n=!!(e&&h&&h!=i&&o&&0>o.indexOf(i));this.#or?.classList.toggle("inactive",n)};this.ao(t,h),s&&this.ao(s,h)}this.#er=i.Bt.find(i=>i.uuid==t.uuid||i.$info?.title==t.uuid),this.#pr=matchMedia("(dynamic-range: high)").matches||xt.OSX,this.#ur=t.src?.toLowerCase().endsWith(".svg")??0,this.#dr=t.width&&t.height?1048576>t.width*t.height:0;const h=/iPhone OS 14_/i.test(navigator.userAgent),o=this.#Xs.getAttribute("data-embeds-inside-gl");this.#mr=this.#ur||h||!this.#pr&&!this.#Xs.hasAttribute("data-embeds-inside-gl")&&!!t.video||"false"==o,this.#fr=!(this.#mr||(!t.micrioId||this.#dr&&t.src)&&(!t.video||t.video.controls||t.video.transparent)),this.#gr=!t.clickAction&&!t.frameSrc&&!s,this.#vr="href"==t.clickAction?t.clickTarget:void 0,this.#wr=!(!this.#vr||!t.clickTargetBlank),this.#Mr=this.#fr&&!!t.video,this.#yr=!this.#fr||!!t.clickAction,this.#br=!!t.hideWhenPaused,t.video&&!t.video.controls&&(t.video.muted=1),this.#Lr(),this.#yr&&this.#Ar(t,s),this.#fr&&this.#$r();const n=i.camera?.image,r=n&&n!==i?n:i;(this.#yr||t.video?.pauseWhenSmallerThan||t.video?.pauseWhenLargerThan)&&(this.ao(r.state.view,()=>this.#Jn()),this.ao(r.Nt,()=>this.#Jn())),this.#Dr(),this.addEventListener("change",this.#Or)}#Lr(){const{embed:t}=this.#ph,i=t.area;this.#$n=i[2],this.#kr=i[3],this.#xr=i[0]+this.#$n/2,this.#Tr=i[1]+this.#kr/2,this.#Pr=t.scale||1,this.#Sr=t.rotX??0,this.#Er=t.rotY??0,this.#Ir=t.rotZ??0,this.#Cr=t.scaleX??1,this.#ri=t.scaleY??1;const s=this.#fr&&t.micrioId&&t.width,e=s?10:1;let h=this.#$n*this.#w.width/(t.width??100)/(this.#fr?t.width?this.#$n:1:this.#Pr)*(this.#lr?Math.PI/2:1);const o=[];s&&t.width&&(h=this.#$n/(t.width/this.#w.width)*e*(this.#lr?Math.PI/2:1),o.push(`width:${t.width/e}px`)),o.push(`--ratio:${this.#$n/this.#kr*this.#w.width/this.#w.height};--scale:${h}`),this.#ur&&t.height&&o.push(`height:${t.height}px`),this.#zr=o.join(";"),t.video&&(t.video.width>t.video.height?this.#_r=Math.min(t.video.width,this.#$n*this.#w.width,2048):this.#_r=Math.min(t.video.height,this.#kr*this.#w.height,2048)/(t.video.height/t.video.width))}#Ar(t,i){if(this.#or=pt(this.#vr?"a":"div",{className:(this.#gr?"no-events":"")+(this.#br&&!this.#fr&&t.video?" hide-when-paused":"")||void 0,id:t.id?"e-"+t.id:void 0,props:this.#vr?{href:this.#vr}:{role:"figure"},attrs:this.#vr&&this.#wr?{target:"_blank"}:void 0,events:{click:()=>this.#Ve(),keydown:()=>this.#Ve()},parent:this}),t.video&&!this.#fr)this.#Fr(t);else if(t.frameSrc)this.#Vr(t);else if(!this.#fr&&t.src)pt("img",{props:{src:t.src,alt:"Embed",...this.#ur&&t.width?{width:t.width}:{},...this.#ur&&t.height?{height:t.height}:{}},style:this.#zr,attrs:{"data-scroll-through":""},parent:this.#or});else{const s=R(this.#Xs.Ht),e=t.title||i?.i18n?.[s]?.title;pt("button",{props:e?{title:e}:void 0,style:this.#zr,attrs:{"data-scroll-through":"","aria-label":"embed-button"},parent:this.#or})}}#Fr(t){const i=t.video,s=this.#_r,e=s/(i.width/i.height),h=this.#$n*this.#w.width/s,o=pt("video",{props:{src:i.src,width:Math.round(s),height:Math.round(e),controls:!!i.controls,loop:!(!i.loop||i.loopAfter&&i.loopAfter>0),muted:!!i.muted,playsInline:1,crossOrigin:"anonymous",preload:"metadata"},style:1!==h?`transform:scale(${h})`:void 0,children:i.transparent&&i.hasH265&&i.src?.endsWith(".webm")?[pt("source",{props:{src:i.src.replace(".webm",".mp4"),type:"video/mp4;codecs=hvc1"}})]:void 0});if(this.#rr=pt("figure",{children:[o],parent:this.#or}),this.#nr=o,t.id&&this.#ph.image&&this.#ph.image.Jt(t.id,o),i.loop&&null!=i.loopAfter&&i.loopAfter>0){o.loop=0;const t=()=>{this.#cr=setTimeout(()=>{this.#ln||o.play().catch(()=>{})},1e3*i.loopAfter)};o.addEventListener("ended",t)}!this.#ln&&this.#Un&&o.play().catch(()=>{})}#Vr(t){pt("iframe",{parent:this.#or,props:{src:t.frameSrc,width:String(Math.round(this.#$n*this.#w.width)),height:String(Math.round(this.#kr*this.#w.height))},attrs:{frameborder:"0",allow:"autoplay; encrypted-media",allowfullscreen:""}})}#$r(){const{embed:t,image:i}=this.#ph;if(!i)return;const s=t.hideWhenPaused?.01:t.opacity??1;this.#er&&(this.#er.rt||i.Bt.includes(this.#er))?(this.#er.camera.setArea(t.area),this.#er.camera.setRotation(this.#Sr,this.#Er,this.#Ir),this.#er.rt&&i.engine.Ph(this.#er,s)):this.#er=i.addEmbed({...t,id:t.video?t.id:t.micrioId,title:t.uuid,path:this.#w.tileBasePath??this.#w.path,isSingle:!!t.video,isVideo:!!t.video},{l:{rotX:this.#Sr,rotY:this.#Er,rotZ:this.#Ir}},t.area,{opacity:s,asImage:0}),this.#Mr&&(this.#hr=new se(i.engine,this.#er,t,this.#ln,()=>this.#Jn())),i.engine.render()}#Jn(){void 0===this.#ar&&(this.#ar=requestAnimationFrame(()=>{this.#ar=void 0,this.#Dr()}))}#Dr(){const{embed:t,image:i}=this.#ph;if(!i?.engine.ready)return;const s=R(i.Nt),e=R(i.state.view);if(e&&s?.[2]>0&&s?.[3]>0&&e[2]>0&&e[3]>0)this.#zn=s[0]+(this.#xr-e[0])/e[2]*s[2],this.#Ln=s[1]+(this.#Tr-e[1])/e[3]*s[3],this.#An=s[2]/(e[2]*this.#w.width);else{const t=i.camera.V(this.#xr,this.#Tr);[this.#zn,this.#Ln,this.#An]=Array.from(t)}if(this.#lr){const t=i.camera.getMatrix(this.#xr,this.#Tr,this.#Pr,1,this.#Sr,this.#Er,this.#Ir,void 0,this.#Cr,this.#ri);this.#Dn=Array.from(t).join(",")}if(this.#or){const i=this.#lr?`transform:matrix3d(${this.#Dn});`:`--x:${this.#zn}px;--y:${this.#Ln}px;--s:${this.#An};`,s=void 0!==t.opacity&&1!==t.opacity?`--opacity:${t.opacity};`:"";this.#or.style.cssText=i+s,this.#or.classList.toggle("embed3d",this.#lr)}if((t.video?.pauseWhenSmallerThan||t.video?.pauseWhenLargerThan)&&this.#$n){this.#ln=this.#Nr();const t=this.#hr?.bn;t&&(this.#ln?t.paused||t.pause():t.paused&&(this.#hr.kn(),i?.$settings?.embedRestartWhenShown&&(t.currentTime=0),t.play())),this.#Br(i)}}#Br(t){const i=this.#nr;i&&(this.#rr&&this.#rr.classList.toggle("paused",this.#ln),this.#ln?i.paused||i.pause():i.paused&&(t?.$settings?.embedRestartWhenShown&&(i.currentTime=0),i.play().catch(()=>{})))}#Nr(){const{embed:t}=this.#ph,i=t.video;if(!i?.pauseWhenSmallerThan&&!i?.pauseWhenLargerThan)return!this.#Un;const s=this.#Xs.canvas.viewport,e=this.#An?Math.max(this.#$n*this.#w.width*this.#An/s.width,this.#kr*this.#w.height*this.#An/s.height):0;return!!(i.pauseWhenSmallerThan&&e<i.pauseWhenSmallerThan||i.pauseWhenLargerThan&&e>i.pauseWhenLargerThan)}#Ve(){const{embed:t,image:i,marker:s}=this.#ph,e="markerId"==t.clickAction?t.clickTarget:s?.id;e&&i&&!this.#vr&&i.state.marker.set(e)}#Or(t){if(t&&"detail"in t){const i=t.detail,s=this.#ph.embed;for(const t of Object.keys(i))s[t]=i[t]}this.#Lr(),this.#Jn()}xt(t){Object.assign(this.#ph,t)}ho(){clearTimeout(this.#cr),this.#hr?.xn();const{embed:t,image:i}=this.#ph;this.#er&&this.#er.rt&&i&&(i.engine.Ph(this.#er,0),i.engine.render()),t.video&&t.id&&i&&i.Jt(t.id),this.removeEventListener("change",this.#Or),this.#or&&(this.#or.removeEventListener("click",this.#Ve),this.#or.removeEventListener("keydown",this.#Ve))}};customElements.define(ee.tag,ee);var he=class extends yi{static tag="micrio-image-embeds";#ph={image:null};eo(){const{image:t}=this.#ph;this.ao(t.data,i=>{if(this.replaceChildren(),i?.embeds)for(const s of i.embeds)pt("micrio-embed",{parent:this,setProps:{embed:s,image:t}})})}xt(t){void 0!==t.image&&(this.#ph.image=t.image)}};customElements.define(he.tag,he);var oe=class extends yi{static tag="micrio-tour";#ph={tour:null};#Gr=0;aside;eo(){const{tour:t}=this.#ph,i=this.mo();if(!i||!t)return;const s="steps"in t;if(!("steps"in t)){const s=t,e=i.$current;if(e){const t=s.i18n?.[R(i.Ht)]?.audio;pt("micrio-media",{parent:this,setProps:{src:t?.src,image:e,tour:s,controls:1,autoplay:1,fullscreenEl:i,onended:()=>i.state.tour.set(void 0),onclose:()=>i.state.tour.set(void 0)}})}}if(s){const s=t;s.currentStep??=s.initialStep??0,this.#Gr=s.currentStep;const e=s.stepInfo,h=!!i.$current.$settings?.t?.tourControlsInPopup,o=async(t,s)=>{const h=e?.[s];if(!h)return;const o=e?.[t];if(o?.micrioId){const t=i.Pe?.find(t=>t.id===o.micrioId);t&&R(t.state.marker)&&t.state.marker.set(void 0)}let n;const r=Y.M(h);if(r?.videoTour){const t=i.lang,s=r.videoTour.i18n?.[t]?.timeline;s?.length&&1>=s[0].start&&(n=s[0].rect)}const a=h.micrioId&&i.$current?.id!==h.micrioId?await i.open(h.micrioId,{startView:n}):i.$current;a&&a.state.marker.set(h.markerId)};s.next=()=>{if(this.#Gr<s.steps.length-1){const t=this.#Gr;this.#Gr++,s.currentStep=this.#Gr,o(t,this.#Gr),n()}},s.prev=()=>{if(this.#Gr>0){const t=this.#Gr;this.#Gr--,s.currentStep=this.#Gr,o(t,this.#Gr),n()}},this.aside||(this.aside=pt("aside",{className:"marker-tour",parent:h?void 0:this}));const n=()=>{if(this.aside&&(this.aside.replaceChildren(),pt("micrio-button",{parent:this.aside,setProps:{type:"prev",title:R(Gi).sn,disabled:0===this.#Gr,onclick:()=>s.prev?.()}}),pt("span",{textContent:`${this.#Gr+1}/${s.steps.length}`,parent:this.aside}),pt("micrio-button",{parent:this.aside,setProps:{type:"next",title:R(Gi).tn,disabled:this.#Gr>=s.steps.length-1,onclick:()=>s.next?.()}}),pt("micrio-fullscreen",{parent:this.aside,setProps:{el:i}}),!s.cannotClose)){const t=pt("micrio-button",{parent:this.aside,setProps:{type:"close",title:R(Gi).Xo,onclick:()=>i.state.tour.set(void 0)}});h&&this.aside.insertBefore(t,this.aside.firstChild)}};this.oo(i.state.marker.subscribe(t=>{if(!t)return;const i="string"==typeof t?t:t.id,e=s.steps.findIndex(t=>t.startsWith(i));0>e||e===this.#Gr||(this.#Gr=e,s.currentStep=e,n())})),o(-1,this.#Gr),n()}this.oo(i.state.tour.subscribe(e=>{if(!e&&s){const s=t.stepInfo?.[this.#Gr];if(s){const t=i.Pe?.find(t=>t.id===s.micrioId);t&&t.state.marker.set(void 0)}}}))}xt(t){Object.assign(this.#ph,t)}};customElements.define(oe.tag,oe);var ne=class extends yi{static tag="micrio-swipe-gallery";#ph={gallery:null,lang:""};xt(t){void 0!==t.gallery&&(this.#ph.gallery=t.gallery),void 0!==t.galleryStart&&(this.#ph.galleryStart=t.galleryStart),void 0!==t.lang&&(this.#ph.lang=t.lang)}eo(){const t=pt("micr-io",{parent:this}),i=pt("figcaption",{parent:this}),s=this.mo()?.$current?.$info?.path;requestAnimationFrame(()=>{Ai.Bo(this.#ph.gallery,t.$h,t,{startId:this.#ph.galleryStart,basePath:s}).Ro(t)});let e=0;const h=()=>{const t=this.#ph.gallery[e]?.i18n?.[this.#ph.lang]?.description;i.innerHTML=t??"",i.style.display=t?"":"none"};t.addEventListener("gallery-show",t=>{e=t.detail,h()}),h()}ho(){this.querySelector(":scope > micr-io")?.destroy()}};customElements.define(ne.tag,ne);var re=class extends yi{static tag="micrio-popover";#ph={popover:null};#Yr;eo(){const t=this.mo();t&&(this.#Yr=pt("dialog",{events:{close:()=>{const i=this.#ph.popover;i&&"marker"in i&&i.marker&&i.image?.state?.marker&&i.image.state.marker.set(void 0),t.state.popover.set(void 0)},click:i=>{i.target===this.#Yr&&t.state.popover.set(void 0)}},parent:this}),this.#dh())}xt(t){void 0!==t.popover&&(this.#ph.popover=t.popover),this.isConnected&&this.#dh()}#dh(){const t=this.#ph.popover,i=this.mo();if(!i||!t)return;const s=R(i.Ht),e=R(Gi),h="contentPage"in t?t.contentPage?.id:"",o="marker"in t?t.marker?.id:"",n=`${t?.constructor?.name??typeof t}::${h}::${o}::${s}`;if(!this.no(n))return;this.#Yr.replaceChildren(),this.#Yr.classList.remove("article","page","has-media","gallery");const r="marker"in t?t.marker:void 0,a="markerTour"in t?t.markerTour:void 0,c=!(!(r&&a&&"steps"in a)||0>a.steps?.findIndex(t=>t.startsWith(r.id))),l=c?a.currentStep==a.steps.length-1:1,u=t=>{if(c&&a&&"steps"in a){const s=a;t instanceof Event&&l?i.state.tour.set(void 0):s.next?.()}this.#Yr?.open&&this.#Yr.close()};if(pt("aside",{parent:this.#Yr,children:[pt("micrio-button",{setProps:{type:!c||l?"close":"next",title:!c||l?e.Qo:e.tn,onclick:u}})]}),"contentPage"in t&&t.contentPage){const i=t.contentPage,e=i.i18n?.[s];this.#Yr.classList.add("page");const h=e?.embed&&(!e.content||250>e.content.length)&&!i.image&&!i.buttons?.length;if((e?.embed||i.image)&&this.#Yr.classList.add("has-media"),h)e.embed&&pt("micrio-media",{setProps:{src:e.embed,figcaption:e.content,controls:1,autoplay:1},parent:this.#Yr});else{this.#Yr.classList.add("article");const t=[];e?.title&&t.push(pt("h2",{textContent:e.title})),e?.embed&&t.push(pt("micrio-media",{setProps:{src:e.embed,controls:1}})),e?.content&&t.push(pt("div",{innerHTML:e.content})),pt("article",{children:t,parent:this.#Yr})}}if("gallery"in t&&t.gallery?.length&&(this.#Yr.classList.add("gallery"),pt("micrio-swipe-gallery",{setProps:{gallery:t.gallery,galleryStart:t.galleryStart,lang:s},parent:this.#Yr})),"marker"in t&&t.marker){const i=t.marker,e=i.i18n?.[s],h=!!i.images?.length,o=!(!e||!e.body)||h&&!!t.contentPage?.i18n?.[s]?.embed;e?.embedUrl?pt("micrio-media",{setProps:{src:e.embedUrl,uuid:i.id,figcaption:e.embedDescription,controls:1,autoplay:i.embedAutoPlay},parent:this.#Yr}):h&&pt("micrio-swipe-gallery",{setProps:{gallery:i.images,lang:s},parent:this.#Yr}),o&&pt("micrio-marker-content",{setProps:{marker:i,noEmbed:1,noGallery:1,noImages:!e||!e.embedUrl,onclose:u},parent:this.#Yr})}this.#Yr.open||this.#Yr.showModal()}ho(){this.#Yr?.open&&this.#Yr.close()}};customElements.define(re.tag,re);var ae=class{#Xs;#d;#We;#Hr=0;#Rr={};#Xr;#jr;#Wr=0;#Ur=[];#is;#Zr=new Map;#qr=0;#Jr=0;#Kr;#Qr=()=>{};#ta;#yo=[];goto(t){this.#Qr(t)}get currentIndex(){return this.#d.canvas?.zi??-1}constructor(t,i,s,e){this.#Xs=t,this.#d=i,this.#We=s,this.#ta=e}async setup(){const t=this.#Xs,i=this.#d,s=this.#We,e=Y.m(i.id);if(!e)return;const h=i.$settings.omni;if(!h)return;const o=t.$h,n=i.$info;if(!n)return;const r=h.frames,a=r/(h.layers?.length??1);if(!i.rt)return;const c=[];for(let g=0;r>g;g++){const t={id:n.id+"/"+g,image:i,visible:H(0),ah:g,opts:{area:[0,0,1,1]},rt:0,Lt:-1,thumbSrc:i.Rt(i.Dt,0,0,g)};o.qt(t,i,{opacity:0,asImage:0}),c.push(t)}e.settings?.omni&&parseFloat(e.info.version)>=5&&await bt.load(e.info.tileBasePath||e.info.path,(e.info.tilesId??e.info.id)+"/base",i=>t.Mn?.xt?.({loadingProgress:i})).catch(()=>{}),i.canvas?.Fi(0,0),o.render();const l=!!i.$settings.gallery?.archive,u="requestIdleCallback"in self?Math.max(36,2*Math.floor(r/8)):50,d=t=>{this.#ta(t,r,u,t=>c[t]?{baseTileIdx:c[t].Lt,thumbSrc:c[t].thumbSrc}:void 0,o,l)},p=pt("micrio-dial",{parent:s,setProps:{currentRotation:0,frames:a,degrees:1,onturn:t=>{this.goto(Math.round(t)%a)}}});this.#Hr=a,this.#Rr={continuous:1},this.#Qr=t=>{for(;0>t;)t+=a;t%=a,i.canvas?.Fi(t,0),p.xt?.({currentRotation:t/a*360}),d(t),o.render()},this.#ia(),i.omni=this,d(0),this.#yo.push(i.state.layer.subscribe(t=>{p.xt?.({currentRotation:t/a*360})}));const m=i.$settings.omni,f=m?.layers?.length??1;if(f>1){const s=m.layers.map((t,i)=>({i18n:Object.fromEntries(Object.entries(t.i18n||{}).map(([t,s])=>[t,{title:s??"Layer "+(i+1)}]))})),e=Object.keys(n.revision??{});if(!e.length){const i=R(t.Ht);i&&e.push(i)}if(e.length)for(const t of e)for(let i=0;i<s.length;i++)s[i].i18n[t]||(s[i].i18n[t]={title:"Layer "+(i+1)});const h=()=>{const t=R(i.state.layer);i.data.update(e=>(e||(e={}),e.pages||(e.pages=[]),e.pages=e.pages.filter(t=>!t.id?.startsWith("_omni-layers")),e.pages.push({id:"_omni-layers-"+t,i18n:s[t].i18n,icon:Ji.layerGroup,children:s.map((t,s)=>({id:"omni-layer-"+s,i18n:t.i18n,action(){i.state.layer.set(s),d(R(i.state.layer)*Math.floor(r/f))}})).filter(i=>i.id!="omni-layer-"+t)}),e))};h(),this.#yo.push(i.state.layer.subscribe(h))}}destroy(){this.#sa();for(const t of this.#yo)t();this.#yo=[]}#ia(){const t=this.#Xs;this.#Rr.sensitivity||(this.#Rr.sensitivity=Number(t.getAttribute("data-swipe-sensitivity")??1));const i=t.getAttribute("data-swipe-snap");i&&(this.#Ur=i.split(",").map(Number)),this.#Xs.setAttribute("data-hooked",""),this.#d.state.view.subscribe(t=>this.#qr=this.#Rr.coverLimit?this.#d.camera.isZoomedOut():t?Math.round(1e3*t[3])/1e3>=1:1),t.$h.Ps=1,t.$h.bs=1,this.#Xs.canvas.element.addEventListener("pointerdown",this.#ea)}#sa(){this.#Xs.canvas.element.removeEventListener("pointerdown",this.#ea),this.#Zr.clear(),this.#ha()}#ha(){this.#Xs.removeEventListener("pointermove",this.#oa),this.#Xs.removeEventListener("pointerup",this.#na)}#ra=()=>2==this.#Zr.size||(this.#qr||this.#Jr)&&1==this.#Zr.size;#ea=t=>{if(0!==t.button)return;this.#Jr=t.shiftKey;const i=!this.#ra();if(this.#Zr.set(t.pointerId,1),this.#Zr.size>2)return this.#Zr.clear(),void this.#ha();i&&(this.#Wr=0,this.#Xs.setAttribute("data-panning",""),this.#Xr=this.currentIndex,this.#jr=t.clientX,this.#Kr=t.pointerId,this.#Xs.addEventListener("pointermove",this.#oa),this.#Xs.addEventListener("pointerup",this.#na),this.#Xs.setPointerCapture(t.pointerId))};#oa=t=>{if(!this.#ra()||t.pointerId!=this.#Kr||void 0===this.#jr||void 0===this.#Xr)return;if(!this.#Wr&&void 0!==this.#jr&&(this.#Wr=2!=this.#Zr.size?1:Math.abs(t.clientX-this.#jr)>(this.#Xs.events.jh&&this.#Xs.events.jh>1.25?.3:.15)*this.#Xs.offsetWidth)&&(this.#jr=t.clientX),!this.#Wr)return;const i=this.#Xs.$current.camera,s=this.#Rr.continuous?Math.max(.1,(i.getXY(1,.5)[0]-i.getXY(0,.5)[0])/this.#Xs.offsetWidth):1,e=Math.round((t.clientX-this.#jr)/(this.#Xs.offsetWidth*s)*this.#Hr*(this.#Rr.sensitivity??1));let h=this.#Xr-e;if(this.#Rr.continuous){for(;0>h;)h+=this.#Hr;for(;h>this.#Hr-1;)h-=this.#Hr}h=Math.max(0,Math.min(this.#Hr-1,h)),h!=this.currentIndex&&this.#Qr(h)};#na=t=>{this.#Zr.delete(t.pointerId),t.pointerId==this.#Kr&&(this.#Xs.releasePointerCapture(this.#Kr),this.#Kr=void 0),this.#Zr.size||this.#aa()};#aa(){if(this.#Xs.removeAttribute("data-panning"),this.#ha(),this.#Wr=0,this.#Ur.length){const t=this.#Ur[this.#Ur.map((t,i)=>[i,Math.abs(t-this.currentIndex)]).sort((t,i)=>t[1]>i[1]?1:t[1]<i[1]?-1:0)[0][0]];t!=this.currentIndex&&this.animateTo(t)}}animateTo(t){this.#is&&cancelAnimationFrame(this.#is);const i=performance.now(),s=this.currentIndex,e=s-t,h=t=>{const o=Math.min(1,(t-i)/250);1>o&&(this.#is=requestAnimationFrame(h));const n=s-Math.round(nt.get(o)*e);n!=this.currentIndex&&this.#Qr(n)};this.#is=requestAnimationFrame(h)}},ce=class{#Xs;#Gi;#ca;#la;#ua;#da;#pa;#ma=-1;#fa;#ga=0;#va=0;#wa=0;#Ma=0;#ya=0;#_a=0;#ba=0;constructor(t,i,s,e,h,o,n){this.#Xs=t,this.#Gi=i,this.#ca=s,this.#la=e,this.#ua=h,this.#da=o,this.#pa=n}async setup(t,i,s){this.#ma=t,s.Je=ut("ease-out"),await Promise.allSettled(this.#Gi.map(t=>s.Ce(t,i)));const e=this.#la[t]??0;for(let h=0;h<this.#Gi.length;h++){const t=this.#Gi[h];if(!t.camera)continue;t.camera.setCoverLimit(0);const i=[this.#la[h]-e,0,this.#ua[h],1];t.camera.setArea(i,{direct:1,noDispatch:1}),t.camera.setView([0,0,1,1])}this.#Gi[t]?.visible.set(1)}#ka(){return!!this.#Gi[this.#ma]?.camera?.isZoomedOut()}animateTo(t,i,s,e){this.#ma=e;const h=this.#Gi;if(!h[t])return;const o=0===s?0:i?.125:.2,n=h[e>-1&&e!==t?e:-1],r=o>0&&n?.camera&&!n.camera.isZoomedOut(),a=h[0]?.engine;if(!a)return;const c=this.#la[t],l=()=>{a.qe=o,a.$e=0;for(let t=0;t<h.length;t++){const i=h[t];if(!i?.camera)continue;const s=i.opts.area??[0,0,1,1],e=s[0],n=s[0]+s[2]>-1&&2>e,r=this.#la[t]-c,a=this.#ua[t],l=r+a>-1&&1>r,u=Math.abs(s[0]-r)>1e-4||Math.abs(s[2]-a)>1e-4,d=o>0&&u&&(n||l);i.camera.setArea([r,0,a,1],{direct:!d,noDispatch:1})}h[t]?.camera?.setView([0,0,1,1]),a.render()};r?n.camera.flyToCoverView({duration:600*o,speed:2}).then(l).catch(l):l()}#xa=()=>{this.#Ta(),this.#fa=void 0,this.#ya=0,this.#Xs.removeAttribute("data-panning"),this.#Xs.kh=0};handlePointerDown=t=>{0===t.button&&(void 0===this.#fa?this.#ka()&&(this.#fa=t.pointerId,this.#ga=this.#va=t.clientX,this.#ba=t.clientY,this.#wa=t.timeStamp,this.#Ma=0,this.#ya=0,this.#_a=0,window.addEventListener("pointermove",this.#Pa),window.addEventListener("pointerup",this.#Sa),window.addEventListener("pointercancel",this.#Sa)):t.pointerId!==this.#fa&&(this.#ya&&this.#da(this.#pa()),this.#xa()))};#Pa=t=>{if(t.pointerId!==this.#fa)return;const i=t.clientX-this.#ga,s=t.clientY-this.#ba;if(!this.#ya){if(6>Math.abs(i)&&6>Math.abs(s))return;if(this.#_a=Math.abs(i)>Math.abs(s),!this.#_a)return void this.#Sa(t);this.#ya=1,this.#Xs.setAttribute("data-panning",""),this.#Xs.kh=1,this.#Xs.canvas.element.setPointerCapture(t.pointerId)}const e=Math.max(1,t.timeStamp-this.#wa);this.#Ma=(t.clientX-this.#va)/e,this.#va=t.clientX,this.#wa=t.timeStamp;const h=i/(this.#Xs.offsetWidth||1);this.#Ea(h)};#Sa=t=>{if(t.pointerId!==this.#fa)return;const i=this.#ya;if(this.#xa(),!i)return;try{this.#Xs.canvas.element.releasePointerCapture(t.pointerId)}catch(o){}const s=this.#Xs.offsetWidth||1,e=(t.clientX-this.#ga)/s;let h=this.#pa();-.3>e||-.5>this.#Ma?h=Math.min(this.#ca.length-1,this.#pa()+1):(e>.3||this.#Ma>.5)&&(h=Math.max(0,this.#pa()-1)),this.#da(h)};#Ta=()=>{window.removeEventListener("pointermove",this.#Pa),window.removeEventListener("pointerup",this.#Sa),window.removeEventListener("pointercancel",this.#Sa)};#Ea(t){const i=this.#Gi,s=this.#pa(),e=this.#ca.length,h=0===s&&t>0||s===e-1&&0>t?Math.sign(t)*Math.sqrt(Math.abs(t))*.3:t,o=this.#ca[s]?.[0]??0,n=this.#la[o],r=i[0]?.engine;if(r&&void 0!==n){for(let t=0;t<i.length;t++){const s=i[t];if(!s?.camera)continue;const e=this.#la[t]-n+h,o=this.#ua[t];e+o>-1&&1>e&&s.camera.setArea([e,0,o,1],{direct:1,noDispatch:1})}r.render()}}destroy(){this.#Xs.removeAttribute("data-panning"),this.#Xs.kh=0,this.#Ta()}},le=class extends yi{static tag="micrio-gallery";#ph={};#Ia=-1;#ma=0;#Gi=[];#ca=[];#la=[];#ua=[];#Ca;#za=null;#La=null;#Aa=null;#$a=0;#Da=-1;#Oa=0;#Fa=0;#Va=null;#Na;#Ba;#Ga=new Map;#Ya=0;#Ha;async eo(){const t=this.mo();if(!t)return;const i=t.$current;if(!i)return;if(i.$settings?.omni)return this.#Na=new ae(t,i,this,(t,i,s,e,h,o)=>this.#Ra(t,i,s,e,h,o)),void(await this.#Na.setup());const s=this.#ph.controller;s&&this.#Xa(t,i,s)}xt(t){void 0!==t.controller&&(this.#ph.controller=t.controller)}#ja(t){if(!this.#za)return 0;const i=this.#za.clientWidth;return 16+t/Math.max(1,this.#ca.length-1)*(i-32)}#Wa(t){const i=this.#ca[t];return i&&i.length>1?`${i[0]+1}-${i[i.length-1]+1}`:String(t+1)}#Qr(t,i=0,s=150,e=0){if(!this.#Gi.length)return;const h=Math.round(Math.max(0,Math.min(this.#ca.length-1,t))),o=this.#ca[h]?.[0]??0,n=e||h!==this.#Ia;if(this.#Ia=h,this.#ma=o,n&&this.#Ua(),this.#Ha)this.#Ha.goto(h);else if(this.#Ba)this.#Ba.animateTo(o,i,s,this.#ma);else if(n){const t=(this.#ca[h]?.length??1)-1;this.#Ca.canvas?.Fi(o,t),this.#Ca.camera.setView([0,0,1,1])}this.#Ca.album.hooked=1}#Ua(){this.#Za(this.#ma),this.mo()?.events.Pt("gallery-show",this.#Ia),this.#Ba&&this.#Ca.album?.currentImage?.set(this.#Gi[this.#ma]),this.#qa()}#Ja=t=>{if(t.preventDefault(),t.stopPropagation(),this.#Oa||(this.#Fa="button"in t)&&0!==t.button||!this.#za)return;this.#Va=this.#za.getBoundingClientRect();const i=this.mo();i&&(i.kh=this.#Oa=1,this.#Da=-1,window.addEventListener(this.#Fa?"pointermove":"touchmove",this.#Ka),window.addEventListener(this.#Fa?"pointerup":"touchend",this.#Qa),this.#Ka(t))};#tc(t){const i=this.#Va??this.#za.getBoundingClientRect(),s=this.#ca.length,e="button"in t?t.clientX:t.touches[0].clientX,h=Math.min(1,Math.max(0,(e-i.left-16)/(i.width-32)));return[h,Math.max(0,Math.min(s-1,Math.round(h*Math.max(1,s-1))))]}#Ka=t=>{const[i,s]=this.#tc(t);this.#$a=16+i*(this.#Va.width-32),s!==this.#Ia&&this.#Qr(s,1)};#ic=t=>{this.#Oa||(this.#Da=this.#tc(t)[1]),this.#qa()};#Qa=()=>{window.removeEventListener(this.#Fa?"pointermove":"touchmove",this.#Ka),window.removeEventListener(this.#Fa?"pointerup":"touchend",this.#Qa);const t=this.mo();t&&(this.#Oa=t.kh=0,this.#Qr(this.#Ia))};#Ra(t,i,s,e,h,o){if(!i||!h?.ready)return;const n=self.requestIdleCallback??self.requestAnimationFrame;for(let r=-s;s>=r;r++){if(!r)continue;let s=t+r;for(;0>s;)s+=i;for(;s>=i;)s-=i;const a=e(s);a?.thumbSrc&&!this.#Ga.has(a.thumbSrc)&&this.#Ga.set(a.thumbSrc,n(()=>h.ph(a.baseTileIdx,a.thumbSrc,0,{force:o})))}}#Za(t){const i=this.#Gi;if(!i.length||1>=i.length)return;const s=i[0].engine,e=!!i[0]?.$settings?.gallery?.archive;this.#Ra(t,i.length,this.#Ya,t=>i[t]?{baseTileIdx:i[t].Lt,thumbSrc:i[t].thumbSrc}:void 0,s,e)}#sc=t=>{switch(t.key){case"PageUp":case"ArrowLeft":this.#Qr(this.#Ia-1,1);break;case"PageDown":case"ArrowRight":this.#Qr(this.#Ia+1,1);break;case"Home":this.#Qr(0);break;case"End":this.#Qr(this.#ca.length-1);break;default:return}};async#Xa(t,i,s){const e=[...s._o];if(!e.length)return;this.#Gi=e,this.#Ca=i;const h=s.Yo();this.#ca=h.pages,this.#la=[],this.#ua=[];for(const[p,m]of h.pages.entries()){const t=m.length;for(let i=0;t>i;i++)this.#la[m[i]]=p+i/t,this.#ua[m[i]]=1/t}const o=s.Fo.startId?Math.max(0,e.findIndex(t=>t.id===s.Fo.startId)):0,n=h.pages.findIndex(t=>t.includes(o)),r=0>n?0:n;this.#Ya="requestIdleCallback"in self?100:50;const a=t.$h,c=i,l="swipe"===s.Fo.type,u="book3d"===s.Fo.type;l&&(this.#Ba=new ce(t,e,this.#ca,this.#la,this.#ua,t=>this.#Qr(t),()=>this.#Ia)),this.#Ia=r,this.#ec(),this.#qa();const d=this;if(c.album={numPages:h.numPages,get currentIndex(){return d.#Ia},info:c.$settings.gallery,prev:()=>d.#Qr(d.#Ia-1),next:()=>d.#Qr(d.#Ia+1),goto:t=>d.#Qr(t),...d.#Ba?{currentImage:H(e[o])}:{}},this.#Ba)await this.#Ba.setup(o,c,a),this.#ma=o,this.#Ia=r,this.#Ua(),c.album.hooked=1;else if(u)this.#hc(c,s.Vo,r);else{await Promise.allSettled(e.map(t=>("state"in t&&!("image"in t)&&(t.camera=c.camera),a.qt(t,c,{opacity:0,asImage:"camera"in t}))));const t=this.#ca[r],i=(t?.length??1)-1;c.canvas?.Fi(t[0],i),c.camera.setView([0,0,1,1]),this.#Ia=r,this.#Ua(),c.album.hooked=1}this.#Ba&&e.length>1&&(t.canvas.element.addEventListener("pointerdown",this.#Ba.handlePointerDown),this.oo(()=>t.canvas.element.removeEventListener("pointerdown",this.#Ba.handlePointerDown))),window.addEventListener("keydown",this.#sc),this.oo(()=>window.removeEventListener("keydown",this.#sc))}#hc(t,i,s){if("MicrioBook3D"in window){for(const t of this.#Gi)t.visible.set(1);this.#Ia=s,this.#Ua(),t.album.hooked=1,this.#Ha=new window.MicrioBook3D({canvas:t.engine.micrio.canvas.element,bookIndex:{images:i,delta:s},getImageById:bt.Qt,onPageChange:t=>this.#Qr(t)}),t.engine.micrio.events.unhookScroll(),t.camera.L=t=>this.#Ha.zoom(t)}}#ec(){const t=this.#ca.length;if(!this.#Gi.length||1>=t||this.querySelector("ul"))return;const i=R(Gi),s=t>24,e=s?Math.max(1,Math.ceil(t/24)):1,h=this.#Ia;this.#La=pt("micrio-button",{parent:this,setProps:{type:"prev",title:i.un,disabled:0>=h,onclick:()=>this.#Qr(this.#Ia-1)}});const o=pt("ul",{className:s?"dense":"",parent:this,events:{pointerdown:this.#Ja,pointermove:this.#ic,pointerleave:()=>{this.#Da=-1,this.#qa()}}});this.#za=o,o.addEventListener("touchstart",this.#Ja,{passive:0}),pt("span",{parent:o,children:[pt("span")]}),pt("span",{parent:o,children:Array.from({length:t},(i,h)=>s&&h%e!==0&&h!==t-1?null:pt("span",{attrs:s&&h%(5*e)==0?{"data-major":""}:{},style:{left:(t>1?h/(t-1)*100:50)+"%"}}))}),pt("button",{parent:o,props:{role:"slider",tabIndex:0},attrs:{"aria-label":"Gallery position","aria-valuemin":"1","aria-valuemax":String(t)}}),pt("span",{parent:o}),this.#Aa=pt("micrio-button",{parent:this,setProps:{type:"next",title:i.dn,disabled:h>=t-1,onclick:()=>this.#Qr(this.#Ia+1)}})}#qa(){const t=this.#ca.length;if(!t)return;const i=this.#Ia,s=t>24,e=s?Math.max(1,Math.ceil(t/24)):1,h=t>1?i/(t-1)*100:0,o=this.#za&&!this.#Oa?this.#ja(i):this.#$a,n=this.querySelector("ul > :first-child > span");n&&(n.style.width=`${h}%`);const r=this.querySelectorAll("ul > :nth-child(2) > span"),a=[];for(let d=0;t>d;d++)s&&d%e!==0&&d!==t-1&&d!==i||a.push(d);r.forEach((t,s)=>{const e=a[s];void 0!==e&&(t.toggleAttribute("data-active",e===i),t.toggleAttribute("data-hover",e===this.#Da))});const c=this.querySelector("ul > button");c&&(c.style.left=`${o}px`,c.classList.toggle("dragging",this.#Oa),c.setAttribute("aria-valuenow",String(i+1)));const l=this.querySelector("ul > button + span");l&&(l.style.left=`${o}px`,l.classList.toggle("dragging",this.#Oa),l.textContent=this.#Wa(i)+(s?` / ${t}`:""));let u=this.querySelector('[data-part="hover-label"]');0>this.#Da||this.#Da===i||this.#Oa?u?.remove():(u||(u=pt("span",{attrs:{"data-part":"hover-label"},parent:this.querySelector("ul")??void 0})),u.style.left=(t>1?this.#Da/(t-1)*100:50)+"%",u.textContent=this.#Wa(this.#Da)),this.#La&&this.#La.querySelector("button")?.toggleAttribute("disabled",0>=i),this.#Aa&&this.#Aa.querySelector("button")?.toggleAttribute("disabled",i>=t-1)}ho(){this.#Na?.destroy(),this.#Ba?.destroy()}};customElements.define(le.tag,le);var ue=class extends yi{static tag="micrio-serial-tour";#ph={tour:null};#oc=[];#Gr=0;#Th=0;#nn=void 0;#W=0;#nc=0;eo(){const{tour:t}=this.#ph,i=this.mo();if(!i||!t)return;this.#oc=t.stepInfo||[],this.#W=this.#oc.reduce((t,i)=>t+(i.duration||0),0),this.#nc=!!i.$current?.$settings?.ui?.controls?.serialTourNoTimeScrub,i.setAttribute("data-tour-active",""),this.oo(()=>i.removeAttribute("data-tour-active"));const s=t;s.next=()=>this.#No(),s.prev=()=>{this.#Gr>0&&this.#rc(this.#Gr-1)},this.oo(i.state.marker.subscribe(t=>{if(!t||!this.#oc.length)return;const i="string"==typeof t?t:t.id,s=this.#oc.findIndex(t=>t.markerId===i);0>s||s===this.#Gr||(this.#oc.forEach(t=>t.ended=0),this.#rc(s))})),this.#Yh(),this.#rc(0)}#Yh(){if(!this.#Th&&(this.#Th=1,this.#ph.tour.printChapters)){const t=pt("ol");this.#oc.forEach((i,s)=>{const e=Y.M(i),h=this.#ac(e);h&&pt("li",{dataset:{idx:String(s)},parent:t,children:[pt("button",{textContent:h,events:{click:()=>this.#Qr(s)}})]})}),t.children.length&&this.appendChild(t)}}async#rc(t){const i=this.mo();if(!i)return;const s=()=>{i.state.tour.set(void 0),this.#ph.onended?.(),this.remove()},e=this.#oc[t];if(!e)return;e.ended=0,e.currentTime=0;const h=Y.M(e);let o;if(h?.videoTour){const t=h.videoTour.i18n?.[i.lang]?.timeline;t?.length&&1>=t[0].start&&(o=t[0].rect)}if(e.micrioId&&i.$current?.id!==e.micrioId&&await i.open(e.micrioId,{startView:o}),this.#nn&&(this.#nn.remove(),this.#nn=void 0),h?.videoTour){const t=i.lang,e=h.videoTour.i18n?.[t]?.audio??h.i18n?.[t]?.audio,o=pt("micrio-media",{parent:this,setProps:{tour:h.videoTour,src:e?.src,image:i.$current,controls:1,autoplay:1,onended:()=>this.#No(),onclose:s,hasAudio:this.#oc.some(t=>t.duration>0),fullscreenEl:i,getTimeDisplay:()=>`${Rs(this.#cc())} / ${Rs(this.#W)}`}});this.#nn=o,await gt(),this.#lc();const n=this.#nn.querySelector("video,audio");n&&n.addEventListener("timeupdate",()=>{const t=this.#oc[this.#Gr];t&&(t.currentTime=n.currentTime),this.#uc()})}this.#Gr=t,this.#uc(),h?.videoTour||t!==this.#oc.length-1||this.#No()}#No(){const t=this.#oc[this.#Gr];t&&(t.ended=1),this.#Gr<this.#oc.length-1?this.#rc(this.#Gr+1):(this.#ph.onended?.(),this.mo()?.state.tour.set(void 0),this.remove())}#ac(t){return t?.i18n?.[this.mo()?.lang||"en"]?.title}#lc(){const t=this.#nn?.querySelector("micrio-media-controls > aside");if(!t)return;const i=t.querySelector("div");if(!i)return;i.querySelector('[data-part="bars"]')?.remove();const s=pt("div",{attrs:{"data-part":"bars"}});this.#oc.forEach((t,i)=>{const e=Y.M(t);pt("div",{attrs:{"data-part":"bar",role:"progressbar",tabindex:"0"},dataset:{idx:String(i)},props:{title:this.#ac(e)??""},style:{width:t.duration/(this.#W||1)*100+"%"},events:{click:()=>this.#Qr(i)},parent:s})}),i.prepend(s)}#Qr(t){this.#nc&&t===this.#Gr||t!==this.#Gr&&(this.#oc.forEach(t=>t.ended=0),this.#rc(t))}#cc(){let t=0;for(let i=0;i<this.#oc.length;i++){const s=this.#oc[i];if(i>=this.#Gr&&!s.ended){if(i===this.#Gr){t+=s.currentTime??0;break}break}t+=s.duration}return t}#uc(){this.#Th&&((this.#nn?.querySelectorAll('aside [data-part="bars"] > [data-part="bar"]')??[]).forEach((t,i)=>{const s=this.#oc[i],e=i===this.#Gr?s.currentTime??0:0,h=i<this.#Gr||s.ended?100:i===this.#Gr?Math.round(e/(s.duration||1)*1e4)/100:0;t.style.setProperty("--progress",`${h}%`),t.classList.toggle("active",i===this.#Gr)}),this.querySelectorAll("ol.chapters li").forEach(t=>t.classList.toggle("active",Number(t.dataset.idx)===this.#Gr)))}xt(t){void 0!==t.tour&&(this.#ph.tour=t.tour),void 0!==t.onended&&(this.#ph.onended=t.onended)}};function de(t,i){if(i)for(let s,e=0;e<i.length;e++)if(i[e].id==t||(s=de(t,i[e].children)))return s??i[e]}customElements.define(ue.tag,ue);var pe=class extends yi{static tag="micrio-main";#ph={};#w;#Ne;#dc=0;#pc;#mc;#fc=new Map;#k=new Map;#gc;#vc(){this.#gc?.destroy(),this.#gc=void 0}#wc=["audio","media","logo","orgLogo","details","toolbar","grid","gallery","controls","embeds","markers","popup","tour","popover","minimap","error","progress"];#Mc=new Map;#yc(t){for(let i=this.#wc.indexOf(t)+1;i<this.#wc.length;i++){const t=this.#Mc.get(this.#wc[i]);if(t?.isConnected)return t}return null}#_c(t,i){if(i.isConnected)return;const s=this.#yc(t);s?this.insertBefore(i,s):this.appendChild(i)}#bc(t,i,s,e){const h=this.#Mc.get(t);if(i){if(h?.isConnected)return void e?.(h);h?.remove();const i=s();this.#Mc.set(t,i),this.#_c(t,i)}else h?.isConnected&&(h.remove(),this.#Mc.set(t,null))}eo(){const t=this.mo();if(!t)return;const i=H(R(t.yn)?0:1);this.do("volume",i),this.oo(t.yn.subscribe(t=>i.set(t?0:1))),this.do("mediaPaused",H(0)),"markers"==t.getAttribute("data-ui")&&(this.#ph.noHTML=1);const s=[];this.oo(t.current.subscribe(i=>{if(!i)return;this.#w=i.$info,this.#Ne=void 0,this.#dc=1,this.#Ne=i.Et,this.#Ne&&this.oo(this.#Ne.subscribe(()=>this.#kc())),!this.#pc&&Y.k()?.logo&&(this.#pc=Y.k()),this.#kc(),this.isConnected&&this.#Gh();const e=i.$data;if(e&&0>s.indexOf(i.id)){s.push(i.id);const h=i.$settings.start;h&&X().then(X).then(()=>{if(!(R(t.state.popover)||R(t.state.marker)||R(t.state.tour)))switch(h.type){case"marker":i.state.marker.set(h.id);break;case"markerTour":{const i=e.markerTours?.find(t=>t.id==h.id);i&&t.state.tour.set(i);break}case"tour":{const i=e.tours?.find(t=>t.id==h.id);i&&t.state.tour.set(i);break}case"page":{const i=de(h.id,e.pages);i&&t.state.popover.set({contentPage:i,showLangSelect:1});break}}})}this.#kc()})),this.oo(t.state.tour.subscribe(()=>{const i=this.#Mc.get("subtitles");i&&i.xt?.({raised:!!R(t.state.tour)})}));for(const e of[t.Ut,t.gallery,t.state.popup,t.state.popover,t.state.tour,t.state.marker])this.oo(e.subscribe(()=>this.#kc()));this.oo(t.Ht.subscribe(()=>this.#kc())),this.#kc()}xt(t){Object.assign(this.#ph,t),this.isConnected&&this.#kc()}#xc=0;#kc(){this.#xc||(this.#xc=1,requestAnimationFrame(()=>{this.#xc=0,this.isConnected&&this.#Gh()}))}#Gh(){const t=this.mo();if(!t)return;const i=R(t.state.tour),s=R(t.state.marker),e=R(t.state.popup),h=R(t.state.popover),o=this.#w,n=this.#Ne?R(this.#Ne):void 0,r=t.$current?R(t.$current.data):void 0,a=this.#ph.error,c=this.#ph.loadingProgress??1,l=this.#ph.noHTML??0,u=this.#ph.noLogo??l,d=t.canvas.$isMobile,p=t.$current?.A,m=p?n.l.video:void 0,f=m?.src;this.classList.toggle("is360",p);const g=r?.markers?.filter(t=>!!t.positionalAudio),v=!!r?.music?.items.length||!!g?.length,w=i||s,M=!l||"markers"==t.getAttribute("data-ui"),y=!(u||o&&l||n?.noLogo||s||e),_=!l&&y&&!n?.noOrgLogo&&!!this.#pc&&!h,b=!l&&!!o&&!n?.noControls,k=!l&&!w&&!!n?.showInfo,x=!l&&this.#dc&&!n?.noToolbar,T=!(l||!o||0==n?.minimap||n?.noControls||!t.$current?.thumbSrc||e&&d);v&&r&&o&&t.$current?this.#gc||(this.#gc=new As(t,t.$current),this.oo(()=>this.#vc())):this.#vc(),this.#bc("media",!!f&&!!o,()=>pt("div")),this.#bc("logo",y,()=>pt("micrio-logo")),this.#bc("details",k&&!!r,()=>pt("micrio-details",{setProps:{info:this.#w,data:r}})),this.#bc("toolbar",x,()=>pt("micrio-toolbar"));const P=R(t.Ut);this.#Tc(this.#fc,"micrio-markers","markers",P,M,i=>!(i.opts?.isEmbed||!i.$data?.markers?.length&&!t.spaceData)),this.#Tc(this.#k,"micrio-image-embeds","embeds",P,"false"!=t.getAttribute("data-embeds"),t=>!!t.$data?.embeds?.length),this.#bc("controls",b,()=>pt("micrio-controls",{setProps:{hasAudio:v||!(!f||!m||m.muted)}})),this.#bc("orgLogo",_&&!!this.#pc,()=>pt("micrio-logo-org",{setProps:{organisation:this.#pc}}));const S=R(t.gallery),E=t.$current?.grid;E&&this.#_c("grid",E),this.#bc("gallery",!!n?.omni||!("grid"===S?.Fo?.type||!S),()=>pt("micrio-gallery",{setProps:{controller:S??void 0}})),this.#bc("minimap",T,()=>pt("micrio-minimap",{setProps:{image:t.$current}}),i=>i.xt?.({image:t.$current}));const I=R(t.state.popup),C=null!=I&&"popover"!==I.popupType,z=this.#Mc.get("popup");if(C?(z?.isConnected&&(I.id!==this.#mc||z.classList.contains("destroying"))&&(z.remove(),this.#Mc.set("popup",null)),this.#mc=I.id,this.#Mc.get("popup")?.isConnected||this.#Mc.set("popup",pt("micrio-marker-popup",{setProps:{marker:I},parent:this}))):z?.isConnected||(this.#Mc.set("popup",null),this.#mc=void 0),this.#bc("tour",!!i,()=>pt(i&&"steps"in i&&i.isSerialTour?"micrio-serial-tour":"micrio-tour",{setProps:{tour:i,noHTML:l}})),this.#bc("popover",!!h,()=>pt("micrio-popover",{setProps:{popover:h}})),this.#bc("error",!!a,()=>pt("micrio-error",{setProps:{message:a}})),this.#bc("progress",1>c,()=>pt("micrio-progress-circle",{setProps:{progress:c}})),1>c){const t=this.#Mc.get("progress");t?.isConnected&&t.xt?.({progress:c})}}#Tc(t,i,s,e,h,o){const n=e.filter(t=>o(t)),r=new Set(n.map(t=>t.id));for(const[a,c]of t)r.has(a)||(c.remove(),t.delete(a));if(h)for(const a of n){if(t.has(a.id))continue;const e=pt(i,{setProps:{image:a}});t.set(a.id,e);const h=this.#yc(s);h?this.insertBefore(e,h):this.appendChild(e)}else{for(const i of t.values())i.remove();t.clear()}this.#Mc.set(s,t.values().next().value??null)}};customElements.define(pe.tag,pe),Zi.VERSION=I,customElements.define("micr-io",Zi),console.info("%c◈%c Micrio %cv7.0.4 - https://micr.io/ %c| New in version 7: https://doc.micr.io/client/v7/changes.html","color: #00d4ee","color: #c5ff5b","color: inherit","color: #888")}();
|
|
27
|
+
!function(){function t(i,s,e={}){if(!i||"object"!=typeof i)return s;const h=s;for(const o of Object.keys(i)){const s=i[o];s&&"object"==typeof s&&Object.getPrototypeOf(s)===Object.prototype?(h[o]&&"object"==typeof h[o]||(h[o]={}),t(s,h[o],e)):e.noOverwrite&&o in h||(h[o]=s)}return s}var i,s="E001",e="E002",h="E003",o="E004",n="E005",r="E100",a="E101",c="E102",l="E103",u="E200",d="E201",p="E202",m="E203",f="E300",g="E301",v="E302",w="E303",M="E999",y={[s]:"You appear to be offline. Please check your internet connection and try again.",[e]:"The connection timed out. Please try again.",[h]:"Unable to load content due to security restrictions.",[o]:"The requested image or content could not be found.",[n]:"The server encountered an error. Please try again later.",[r]:"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.",[p]:"There was a problem processing the image information.",[m]:"This image uses an unsupported format version.",[f]:"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.",[v]:"Failed to load the image. Please try again.",[w]:"Failed to load the tour. Some features may be unavailable.",[M]:"An unexpected error occurred. Please try refreshing the page."},_=class t extends Error{displayMessage;cause;code;statusCode;constructor(i,s){super(i),this.name="MicrioError",this.code=s?.code??M,this.displayMessage=s?.displayMessage??y[this.code],this.cause=s?.cause,this.statusCode=s?.statusCode,"captureStackTrace"in Error&&"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}static fromResponse(i,h){const r=i.status;let a=M;return 404===r?a=o:r>=500&&600>r?a=n:0===r?a=s:408!==r&&504!==r||(a=e),new t(`${h?h+": ":""}HTTP ${r}`,{code:a,statusCode:r})}static fromError(i,o){const n=i.message.toLowerCase();let a=M;return n.includes("network")||n.includes("internet")||n.includes("offline")?a=s:n.includes("timeout")?a=e:n.includes("cors")||n.includes("cross-origin")?a=h:n.includes("webgl")||n.includes("webglcontext")?a=r:n.includes("memory")||n.includes("out of memory")?a=l:(n.includes("wasm")||n.includes("webassembly"))&&(a=f),new t(`${o?o+": ":""}${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=_.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},P=t=>{let i=t.charCodeAt(0),s=91>i;return(i-=s?65:97)-(i>7?1:0)+(s?24:i>10?-1:0)},S=t=>6==t.length||7==t.length,E=()=>Math.random().toString(),I="7.0.5",C=`https://viewer.${(()=>{try{const t=location.hostname;if(t.endsWith("micrio.dev"))return"micrio.dev";if(t.endsWith("micrio.net"))return"micrio.net"}catch{}return"micr.io"})()}/`,z="micrio-muted",L={camspeed:1,view:[0,0,1,1],restrict:[0,0,1,1],focus:[.5,.5],zoomLimit:1,fullscreen:1,hookEvents:1,hookScroll:1,hookPinch:1,hookDrag:1,minimap:1,doTourJumps:1,audio:1,startVolume:1,mutedVolume:0,t:{showTitles:0,zoomOutAfterClose:1},ui:{controls:{cultureSwitch:1}},l:{}},A={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"}},$={"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":{}},F=new Map,V=new Map,N=new Map,B=new Map,G=new Map,Y={async u(t){return(await this.p(t))?.data},m(t){return F.get(t)},M(t){return(F.get(t.micrioId)?.data)?.markers?.find(i=>i.id===t.markerId)},_(t){return V.get(t)},k(){return i},T(t){return N.get(t)},P(t){return B.get(t)},async p(t){if(t)return await(async t=>{if(!t||t.startsWith("http")||F.has(t))return;if(G.has(t))return G.get(t);const s=(async t=>{const s=await T(`${C}${t}/bundle.json?v=${I}`);if(s?.images){for(const t of s.images)t?.id&&(F.set(t.id,t),s.tours&&B.set(t.id,s.tours));t.startsWith("external/")&&s.images[0]?.id&&(F.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&&V.set(i.id,i.data);s?.album&&N.set(s.album.id,s.album)})(t);G.set(t,s);try{await s}catch{}finally{G.delete(t)}})(t),F.get(t)}};function H(t){const i=new Set;return{subscribe(s,e){return i.add(s),s(t),()=>i.delete(s)},set(s){t=s,i.forEach(t=>t(s))},update(i){this.set(i(t))}}}function R(t){let i;return t.subscribe(t=>{i=t})(),i}function X(){return Promise.resolve()}function j(t){let i,s=0;return e=>{i=e,s||(s=1,Promise.resolve().then(()=>{s=0,t(i)}))}}function W(t){let i=1;return s=>{i?i=0:t(s)}}var U=(t,i=1)=>(t%i+i)%i,Z=t=>U(t),q=t=>U(t,2*Math.PI),J=t=>1<<t,K=t=>({centerX:t[0]+t[2]/2,centerY:t[1]+t[3]/2,width:t[2],height:t[3]}),Q=(t,i,s)=>!(t<s[0]||t>s[0]+s[2]||i<s[1]||i>s[1]+s[3]),tt=(t,i)=>1e-6>Math.abs(t-i),it=(t,i,s)=>{let e=t*t+i*i+s*s;return e>0?(e=1/Math.sqrt(e),[t*e,i*e,s*e]):[0,0,0]};function st(t,i){const s=Z(t),e=Z(i)-s,h=e>0?e-1:e+1;return Math.abs(e)>Math.abs(h)?h:e}var et,ht,ot=class{#t;#i;#s;#e;#h;#o;#n;constructor(t,i,s,e){this.#n=t===i&&s===e&&0===t&&1===s;const h=3*t,o=3*(s-t)-h;this.#t=h,this.#i=o,this.#s=1-h-o;const n=3*i,r=3*(e-i)-n;this.#e=n,this.#h=r,this.#o=1-n-r}#r(t){return t*(this.#t+t*(this.#i+t*this.#s))}#a(t){return t*(this.#e+t*(this.#h+t*this.#o))}#c(t){return this.#t+t*(2*this.#i+3*this.#s*t)}#l(t){let i=t,s=0,e=0,h=0;for(;5>s&&(e=this.#r(i)-t,h=this.#c(i),0!==h);)i-=e/h,s++;return i}get(t){return this.#n?t:this.#a(this.#l(t))}},nt=new ot(.42,0,.58,1),rt=new ot(.42,0,1,1),at=new ot(0,0,.58,1),ct=new ot(0,0,1,1),lt={ease:nt,"ease-in":rt,"ease-out":at,linear:ct},ut=t=>lt[t??"ease"]??nt,dt=class{rotationY=0;#u;S;I;C=[];L;#d;get image(){return this.#d}constructor(t){if(this.#d=t,!t.A){const i=t.state.$view;i&&t.$info?.width&&X().then(()=>this.setView(i))}}$(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:e,width:h,height:o}=K(t);if(this.#d.opts.useParentCamera){const t=this.#d.opts.area;t&&(s=t[0]+s*t[2],e=t[1]+e*t[3],h*=t[2],o*=t[3])}this.#u.D(s,e,h,o,!!i.noLimit,0,i.correctNorth),i.noRender||this.#d.engine.render()}getCoo(t,i,s=0,e=0){return this.#p(t,i,s,e).slice(0).map(t=>Math.round(1e6*t)/1e6)}#p(t,i,s=0,e=0){const h=this.#u;if(!h)return new Float64Array(5);if(s){const s=this.#d.engine.micrio.getBoundingClientRect();t-=s.left,i-=s.top}return(h.is360?h.F.O(t,i):h.camera.O(t,i,!!s,!!e)).arr}getXY(t,i,s=0,e,h,o){return this.V(t,i,{abs:s,radius:e,rotation:h,noTrueNorth:o}).slice(0)}V(t,i,s={}){const e=this.#u;if(!e)return new Float64Array(5);const h=this.#d.A&&!s.noTrueNorth?-this.rotationY/(2*Math.PI):0;return e.is360?e.F.N(t-h,i).arr:void 0===s.rotation||isNaN(s.rotation)?e.G.B(t-h,i,!!s.abs).arr:e.G.Y(t-h,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.H??1;getMinScale=()=>this.#u?.camera.R??.1;setMinScale(t){this.#u?.X(t)}setMinScreenSize(t){!this.#d.album&&this.#u&&(this.#u.camera.j=Math.max(0,Math.min(1,t)))}isZoomedIn=()=>!!this.#u?.W();isZoomedOut=(t=0)=>!!this.#u?.U(t);getDirection=()=>this.#u?.F.Z??0;getPitch=()=>this.#u?.F.q??0;setDirection(t,i){this.#u&&(this.#u.J(t,i??this.#u.F.q),this.#d.engine.render())}setLimit(t){if(!this.#u)return;const i=K(t);this.#u.view.K(i.centerX,i.centerY,i.width,i.height),this.#d.engine.render()}setCoverLimit(t){this.#u&&(this.#u.tt=!!t,this.#u.it())}getCoverLimit=()=>!!this.#u?.tt;set360RangeLimit(t=0,i=0){this.#u&&(this.#u.F.st(t,i),this.#d.engine.render())}stop(){this.#u?.et()}pause(){this.#u?.ht()}resume(){this.#u?.ot(),this.#d.engine.render()}getMatrix(t,i,s,e,h,o,n,r,a,c,l){return this.#u?.nt(t,i,s??1,e??10,h||0,o||0,n||0,r??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.rt){for(const i of this.#u.images)if(i.ct>0)return void i.lt(t[0],t[1],t[0]+t[2],t[1]+t[3])}else this.#u.lt(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 e of this.#u.images)if(e.ct>0){e.ut=t,e.dt=i,e.ft=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}gt(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?.G.vt(t,i,s).arr??new Float64Array(5)}wt(){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.S=t,this.I=i}flyToView(t,i={}){return new Promise((s,e)=>{if(!this.#u)return e(new Error("engine not ready"));let{centerX:h,centerY:o,width:n,height:r}=K(t);if(2==i.margin?.length&&(h+=i.margin[0],o+=i.margin[1],n-=2*i.margin[0],r-=2*i.margin[1]),this.#d.opts.useParentCamera){const t=this.#d.opts.area;t&&(h=t[0]+h*t[2],o=t[1]+o*t[3],n*=t[2],r*=t[3])}if(i.prevView){const t=K(i.prevView);this.#u.yt.Mt(t.centerX,t.centerY,t.width,t.height)}const a=this.#d.$settings.omni;if(a?.frames){const s=a.layers?.length??1,e=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(U(s/(2*Math.PI))*e))}null!=i.omniIndex&&(i.omniIndex=U(i.omniIndex,e))}const c=this.#u.camera._t(h,o,n,r,i.duration??-1,i.speed??-1,i.progress??0,!!i.isJump,!!i.limit,!!i.limitZoom,i.omniIndex??0,ut(i.timingFunction));this.#d.engine.render(),0==c?s():this.#m(s,e)})}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,e)=>{if(!this.#u)return e(new Error("engine not ready"));const h=ut(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,h),this.#d.engine.render(),0==i.duration?s():this.#m(s,e)})}zoom(t,i=0,s,e,h=1,o=0){return new Promise((h,n)=>{if(this.L)this.L(t);else if(this.#u){const n=this.#u.view.arr,r=this.getXY(n[0],n[1]);if(null==s&&(s=r[0]),null==e&&(e=r[1]),this.#d.album&&!this.#d.album.hooked)return h();i=this.#u.camera.bt(t,s,e,i,o),this.#d.engine.render()}0==i?h():this.#m(h,n)})}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 e=this.#d.engine.micrio.canvas.viewport,h=e.width/e.height,o=this.#d.$info.width/this.#d.$info.height;return this.zoom(t*(400/Math.max(1,h/o/2)),i,void 0,void 0,s).catch(()=>{})}pan(t,i,s=0,e={}){this.#u&&(this.#u.camera.kt(t,i,s,!!e.noLimit),(s>0||e.render)&&this.#d.engine.render())}setScale(t){const i=this.#u?.view.arr;i&&this.setCoo(i[0],i[1],t)}};function pt(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[e,h]of Object.entries(i.dataset))s.dataset[e]=h;if(i.attrs)for(const[e,h]of Object.entries(i.attrs))null==h?s.removeAttribute(e):s.setAttribute(e,h);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[e,h]of Object.entries(i.events))s.addEventListener(e,h);if(i.children)for(const e of i.children)null!=e&&0!=e&&("string"==typeof e||"number"==typeof e?s.append(String(e)):s.append(e));return i.setProps&&s.xt?.(i.setProps),i.parent&&i.parent.appendChild(s),s}function mt(t,i={}){return pt(t,{...i,ns:"http://www.w3.org/2000/svg"})}(ht=et||(et={})).Main=class{tour=H();#f;get $tour(){return this.#f}marker=H();markerHoverId=H();#g;get $marker(){return this.#g}popup=H();popover=H();mediaState=new Map;constructor(){this.tour.subscribe(t=>{"string"!=typeof t&&(this.#f=t)}),this.marker.subscribe(t=>{"string"!=typeof t&&(this.#g=t)})}},ht.Image=class{view=H(void 0);#v;get $view(){return this.#v}marker=H(void 0);#g;get $marker(){return this.#g}layer=H(0);constructor(t){const i=t.engine.micrio;let s,e,h;this.view.subscribe(o=>{this.#v=o;const n=o?.toString();if(o&&n&&s!=n){const r={image:t,view:o};s=n;const a=o[2],c=o[3];if(!e||!h||Math.abs(a-e+(c-h))>1e-5){for(const t of i.Tt)t(r);i.events.Pt("zoom",{image:t,view:o}),e=a,h=c}for(const t of i.St)t(r)}}),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 ft=t=>new Promise(i=>t?setTimeout(i,t):i()),gt=()=>new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t()))),vt=new Set;async function wt(t,i,s){if(t in self||await Mt(i,s),!(t in self))throw new Error(`Failed to load ${t} API from ${i}`)}var Mt=(t,i,s)=>new Promise((e,h)=>{if(s||vt.has(t))return e();const o=document.createElement("script"),n=()=>{vt.add(t),e()};i?self[i]=n:o.onload=n,o.onerror=()=>h?.(),o.async=1,o.defer=1,self.crossOriginIsolated&&(o.crossOrigin="anonymous"),o.src=t,document.head.appendChild(o)}),yt=[],_t=class t{id;uuid=E();#w;get $info(){return this.#w}Et=H({});get $settings(){return R(this.Et)}data=H(void 0);get $data(){return R(this.data)}state;camera;video=H(void 0);visible=H(0);album;omni;grid;It;Ct;zt;error;rt=0;Lt=-1;A=0;At=0;$t=0;Dt=1;#M=0;thumbSrc;#y;Ot=0;Ft;Vt=1;Nt=H();Bt=[];Gt;get engine(){return this.#_}get canvas(){return this.#_.Yt(this)}#_;opts;constructor(t,i,s={}){if(this.#_=t,this.opts=s,this.state=new et.Image(this),s.useParentCamera||(this.camera=new dt(this)),this.id=i.id.replace(C,""),this.id.startsWith("external/")){const t=this.id.indexOf("/",this.id.indexOf("/")+1);-1!==t&&(this.id=this.id.substring(0,t+1)+encodeURIComponent(this.id.substring(t+1)))}const e=i.info;this.#w=e,this.zt=e.path||"https://r2.micr.io/",s.area||(s.area=[0,0,1,1]);const h=i.settings,o=this.#_.micrio;if(!e.isIIIF&&7==this.id.length){const t=P(this.id[1+P(this.id)%6]);e.is360=!!(t>>4&1)||!!e.is360,e.isWebP=!(3&t),e.isPng=2==(3&t),t>>3&1&&S(e.tilesId??this.id)&&(e.format="dz"),e.path||(e.path=`https://${t>>2&1?"eu":"r2"}.micr.io/`)}const n=6==this.id.length&&this.id.startsWith("i")&&!this.id.includes("/"),r=n&&!e.tileBasePath?.includes("micr.io");this.Gt=r?e.tileBasePath??"https://b.micr.io/":n?"https://b.micr.io/":e.tileBasePath??e.path??"https://r2.micr.io/";const a=Y.k();if(a?.baseUrl&&!e.path.includes(a.baseUrl)?(this.zt=e.path=a.baseUrl,n||(this.Gt=this.zt)):("https://eu.micr.io/"==e.path||e.path)&&(this.zt=e.path),h?.omni&&(this.$t=1),a?.branding&&!h?.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.#_.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(e.isIIIF&&e.id.includes("/")&&(e.id=("@id"in e?e["@id"]:e.id).replace(/^.*\//,"")),e.spacesId&&!o.spaceData&&(o.spaceData=Y._(e.spacesId),1==o.spaceData?.images.length&&delete o.spaceData),o.bundleTours||(o.bundleTours=Y.P(this.id)),e.is360&&this.camera){const t=o.spaceData?.images.find(t=>t.id==this.id)?.rotationY;null!=t?this.camera.rotationY=t:null!=h?.l?.trueNorth&&(this.camera.rotationY=(h.l.trueNorth-.5)*Math.PI*2)}this.Ot=this.Ot||this.$t||!e.id&&!e.tilesId,this.#y=e.tileExtension||e.isPng&&"png"||e.isWebP&&"webp"||"jpg","dz"==e.format&&(e.isDeepZoom=1),this.A=!!e.is360,this.At=!!e.isVideo;let c=R(o.Ht);if(e.revision){const t=Object.keys(e.revision);t.length&&!t.includes(c)&&(o.lang=t.includes("en")?"en":t[0])}if(h&&!h.noExternals&&(h.css&&this.#b(h.css.href),h.js)){const t=h.js.href.replace("$lang",c);Mt(t);const i=document.head.querySelector('script[src="'+t+'"]');i&&(i.micrioElement=this.#_.micrio)}for(let p=e.tileSize??1024;p<Math.max(e.width,e.height);p*=2,this.Dt++);let l=Math.max(e.width,e.height);do{this.#M++}while((l/=2)>1);h?.gallery?.archive&&(this.Dt-=1-(h.gallery.archiveLayerOffset??0)),this.Ot||(this.thumbSrc=this.Rt(this.Dt,0,0)),o.events.Pt("pre-info",e),this.Ot&&!this.$t||h?.skipMeta||!i.data||this.data.set(i.data),h&&this.Et.set(h),e.watermark&&this.#_.micrio.jt.Xt(e.watermark,h?.watermarkOpacity),this.$t&&this.state.layer.subscribe(t=>{this.rt&&this.#_.ready&&(this.canvas?.Wt(t),this.#_.render())});const u=this.#_.micrio;let d=R(this.visible);this.visible.subscribe(t=>{t!=d&&(d=t,u.Ut.update(i=>(t?i.push(this):i.splice(i.indexOf(this),1),i)),t&&u.$current==this&&u.Zt.set(0))}),this.video.subscribe(t=>this.Ct=t)}Rt(t,i,s,e){const h=this.#w;if(h.isDeepZoom&&(t=this.#M-t),h.isIIIF){const e=h.tileSize??1024,o=Math.pow(2,t)*e,n=Math.min(h.width,i*o),r=Math.min(h.height,s*o),a=Math.min(h.width-n,o),c=Math.min(h.height-r,o),l=Math.round(Math.min(e,a/o*e)),u=Math.round(Math.min(e,c/o*e));return`${h.path}/${h.id}/${[n,r,a,c].join(",")}/${[l,u].join(",")}/0/default.jpg`}if(this.$settings?.l?.video?.src)throw new Error("Video thumb");return`${this.Gt}${h.tilesId||h.id}/${void 0!==e?e+"/":""}${t}/${i}${h.isDeepZoom?"_":"-"}${s}.${this.#y}`}#b(t){return new Promise(i=>{yt.includes(t)||document.head.querySelector('link[href="'+t+'"]')?i():(yt.push(t),pt("link",{attrs:{type:"text/css",rel:"stylesheet",href:t},events:{load:i},parent:document.head}))})}addEmbed(i,s,e,h={}){const o=e.slice(0),n=new t(this.#_,{id:i.id??"",info:{...i,id:i.id??""},data:Y.m(i.id??"")?.data,settings:s},{area:o,isEmbed:1,useParentCamera:h.asImage});if(n.camera||(n.camera=this.camera),this.Bt.push(n),void 0===h.opacity&&(h.opacity=1),"cover"==h.fit||"contain"==h.fit){const t=n.$info,i=this.A?2:1,s="cover"==h.fit,e=o[2],r=o[3],a=o[0]+e/2,c=o[1]+r/2,l=e/r*i,u=t.width/t.height;if(s&&l>u||!s&&u>=l){const t=e/u*i;o[1]=c-t/2,o[3]=t}else{const t=r*u/i;o[0]=a-t/2,o[2]=t}}return this.#_.qt(n,this,h),this.#_.render(),n}#k=new Map;Jt(t,i){i?this.#k.set(t,i):this.#k.delete(t)}getEmbedMediaElement(t){return this.#k.get(t)}},bt=new class{#x=new Map;db=new Map;imageKeys=new Map;async load(t,i,s){if(this.#x.has(i))return;const e=i.replace(/^.*\//,"").split(".")[0],h=/\/base$/.test(i),o=h||S(e),n=new XMLHttpRequest,r=await new Promise((e,h)=>{let r=0;n.responseType="arraybuffer",n.onprogress=t=>{r||(r=Number(n.getResponseHeader("Content-Length"))),s?.(Math.min(1,t.loaded/r))},n.onload=()=>{4===n.readyState&&200===n.status?(s?.(1),e(n.response)):h()},n.onerror=h,n.open("GET",t+i+(o?".bin":".mdp")),n.send()});if(!r)return;this.#x.set(i,r);const a=h?i.split("/")[0]+"/":"";let c=0;for(;c<r.byteLength&&c+32<=r.byteLength;){const s=this.#T(new Uint8Array(r,c,32));if(s.name&&s.size>0){this.db.set(t+a+s.name.replace("./",""),[i,c+32,s.size]);const e=s.name.replace("./",""),h=t+a+e,o=e.indexOf("/");if(o>0){const t=e.substring(0,o);this.imageKeys.has(t)||this.imageKeys.set(t,h)}}else if(0===s.size&&!s.name)break;c+=32+s.size}}#T(t){const i=(new TextDecoder).decode(t),s=t=>i.slice(e,e+=t).replace(/\x00/g,"").trim();let e=0;return{name:s(20),size:parseInt(s(12),8)}}get=t=>new Promise((i,s)=>{const e=this.db.get(t);if(!e||!this.#x.has(e[0]))return s(new Error("Could not get blob: "+t));const h=new FileReader;h.onload=()=>i(JSON.parse(h.result)),h.readAsText(new Blob([new Uint8Array(this.#x.get(e[0]),e[1],e[2])]))});Kt=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)};Qt=async t=>{const i=this.imageKeys.get(t);if(!i)throw new Error(`No image found in archive for ID: ${t}`);return this.Kt(i)}},kt=navigator.userAgent,xt={iOS:/ipad|iphone|ipod/i.test(kt),firefox:/firefox/i.test(kt),OSX:/macintosh/i.test(kt)&&/os\ x/i.test(kt),hasTouch:"TouchEvent"in self,safari:0};xt.safari=(xt.OSX||xt.iOS)&&(/safari/i.test(kt)||/instagram/i.test(kt))&&!/chrome/i.test(kt),xt.OSX&&xt.safari&&"TouchEvent"in self&&(xt.iOS=1,xt.OSX=0);var Tt=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"})),Pt=Math.max(2,Math.min(6,(navigator.hardwareConcurrency||2)-1)),St=Array(Pt).fill(0),Et=0,It=[],Ct=[],zt=new Map;for(let me=0;Pt>me;me++){const t=new Worker(Tt);t.onmessage=t=>At(me,t.data.data,t.data.error,t.data.type),It.push(t)}function Lt(){if(!Ct.length)return;const t=St.indexOf(0);if(0>t)return;St[t]=1,Et++;const i=Ct.shift();zt.set(t,i),It[t].postMessage({src:i[0],type:"image/"+i[0].split(".").pop()})}function At(t,i,s,e){const h=zt.get(t);h&&(zt.delete(t),s?(h[2](s),"AbortError"!==e&&console.error(`[Micrio Texture] Error loading ${h[0]}: ${e} - ${s}`)):i?h[1](i):(h[2](`Worker ${t} sent invalid message.`),console.error(`[Micrio Texture] Worker ${t} sent invalid message for ${h[0]}`)),setTimeout(()=>{St[t]=0,Et--,Lt()},50))}function $t(){return Et}function Dt(t){let i=-1;for(const[s,e]of zt.entries())if(e[0]===t){i=s;break}0>i||It[i]?.postMessage("abort")}var Ot=class{x0;y0;x1;y1;layer;x;y;image;constructor(t=0,i=0,s=0,e=0,h=0,o=0,n=0){this.x0=t,this.y0=i,this.x1=s,this.y1=e,this.layer=h,this.x=o,this.y=n}},Ft=class{ti;ii;width;height;si;ei;hi;oi;#P=new Float64Array([.5,.5,1,1]);#S=0;ni=0;ri=0;#u;constructor(t,i=.5,s=.5,e=1,h=1,o=.5,n=.5,r=1,a=1){this.ti=i,this.ii=s,this.width=e,this.height=h,this.si=o,this.ei=n,this.hi=r,this.oi=a,this.#u=t}get arr(){return this.#S&&(this.#P[0]=this.ti,this.#P[1]=this.ii,this.#P[2]=this.width,this.#P[3]=this.height,this.#S=0),this.#P}get x0(){let t=this.ti;return this.#u.is360&&(t=Z(t)),this.#u.is360?Z(t-this.width/2):t-this.width/2}get y0(){return this.ii-this.height/2}get x1(){let t=this.ti;return this.#u.is360&&(t=Z(t)),this.#u.is360?Z(t+this.width/2):t+this.width/2}get y1(){return this.ii+this.height/2}get lX0(){return this.si-this.hi/2}get lY0(){return this.ei-this.oi/2}get lX1(){return this.si+this.hi/2}get lY1(){return this.ei+this.oi/2}get aspect(){return this.width/this.height}set(t,i,s,e,h=0){if(h){const t=Math.min(1,this.width)/Math.min(1,this.height);s/e>1.5*t&&s<this.width&&(e=s/t)}this.ti=t,this.ii=i,this.width=s,this.height=e,this.#S=1,this.ni=1}lt(t,i,s,e){this.ti=(t+s)/2,this.ii=(i+e)/2,this.width=s-t,this.height=e-i,this.#S=1}K(t,i,s,e){this.si=t,this.ei=i,this.hi=s,this.oi=e,this.ni=1,this.ri=1}ai(t,i=0){this.ti=t.ti,this.ii=t.ii,this.width=t.width,this.height=t.height,i||(this.si=t.si,this.ei=t.ei,this.hi=t.hi,this.oi=t.oi),this.ni=1,this.#S=1}#E(){const t=this.#u;return 1/Math.max(this.width*t.width/t.el.width,this.height*t.height/t.el.height)}ci(t,i=0,s=0){const e=this.#u,h=e.G.j,o=this.#E();if(1>h&&o<e.G.R&&!i){const t=1/h,i=Math.min(t,this.width),s=Math.min(t,this.height);return this.ti=.5,this.ii=.5,this.width=i,this.height=s,void(this.#S=1)}const n=t?Math.max(1,o/Math.max(e.G.R,e.maxScale/e.el.scale)):1,r=this.hi,a=this.oi,c=Math.min(r,this.width*n),l=Math.min(a,this.height*n);if(t&&(n>1||i&&o<e.G.R)&&(this.width=c,this.height=l),(1>r||1>a)&&(this.width=Math.min(this.width,r),this.height=Math.min(this.height,a)),i)return void(this.#S=1);const u=Math.min(1,this.width)/2,d=this.hi/2;this.#u.is360?this.ti=Z(this.ti):s||(this.ti=Math.max(this.si-d+u,Math.min(this.ti,this.si+d-u)));const p=Math.min(1,this.height)/2,m=this.oi/2;s||(this.ii=Math.max(this.ei-m+p,Math.min(this.ii,this.ei+m-p))),this.#S=1}li(){const t=this.#u;if(t.is360)return;const i=t.G.cpw/t.G.cph;this.width/this.height>i?this.height=this.width/i:this.width=this.height*i,this.#S=1}},Vt=class{x;y;scale;w;direction;arr=new Float64Array(5);constructor(t=.5,i=.5,s=1,e=0,h=0){this.x=t,this.y=i,this.scale=s,this.w=e,this.direction=h}di(t){return-1>this.w||3>this.w&&!(0>this.x||this.x>t.width||0>this.y||this.y>t.height)}pi(){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}},Nt=class{width;height;left;top;mi;fi;ratio;scale;gi;arr=new Int32Array(4);constructor(t=0,i=0,s=0,e=0,h=0,o=0,n=1,r=1,a=0){this.width=t,this.height=i,this.left=s,this.top=e,this.mi=h,this.fi=o,this.ratio=n,this.scale=r,this.gi=a}get wi(){return 0===this.width||0===this.height?1:this.width/this.height}set(t,i,s,e,h,o,n){return this.width===t*h&&this.height===i*h&&this.left===s&&this.top===e&&this.ratio===h&&this.scale===o&&this.gi===n?0:(this.width=t*h,this.height=i*h,this.left=s*h,this.top=e*h,this.ratio=h,this.scale=o,this.gi=n,1)}ai(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.gi=t.gi}},Bt=class{#I=0;#C=0;#z=0;#L=0;#A=0;#$=0;#D=0;#O=0;started=0;#u;constructor(t){this.#u=t}addStep(t,i){const s=this.#u.main.now;if(this.#A)return;0===this.#z&&(this.#z=s);const e=this.#L>0?16.67/(s-this.#L):1;Math.sqrt(t*t+i*i)*e>20&&(this.#$=s);const h=this.#u.main.Mi;this.#I+=t*h,this.#C+=i*h,this.#L=s}start(){this.#u.camera.yi()||(this.started=1)}stop(){this.started=0,this.#A=0,this.#z=0,this.#L=0,this.#$=0,this.#I=0,this.#C=0,this.#D=0,this.#O=0}step(){const t=this.#u.main.now,i=this.#u.F,s=this.#u.camera;if(!this.started||0===this.#z)return 1;if(0===this.#A){this.#A=t;const i=1-Math.min(1,(this.#A-this.#$)/250),s=this.#A-this.#z;this.#D=this.#I/(s/4)*i,this.#O=this.#C/(s/4)*i}else this.#D*=.94,this.#O*=.94;let e=Math.sqrt(this.#D*this.#D+this.#O*this.#O);return this.#u.is360?i._i(this.#D,this.#O):s.kt(this.#D,this.#O,0,0,0,1),e>.01||(e=0,this.stop()),1-e}},Gt=class{#F=0;#V;#N;bi;#B=0;#G=0;#Y=0;#H=0;#R=0;#X=nt;#j=0;#W=0;#U=0;ci=1;ki=0;xi=0;#Z=0;#q=0;#J=0;#K=0;#Q=0;#tt=0;#it=0;#st=-1;#et=0;#u;constructor(t){this.#u=t,this.#V=new Ft(t),this.#N=new Ft(t),this.bi=new Ft(t)}pause(){this.#Z>0||(this.#U=0,this.#Z=performance.now())}resume(){0!==this.#Z&&0!==this.#j&&(this.#j+=performance.now()-this.#Z,this.#Z=0,this.#U=1)}stop(){this.#U&&this.#u.I(),this.#j=0,this.ci=1,this.ki=0,this.#U=0,this.#F=0,this.#B=0,this.xi=0,this.#Z=0}Ti(){return this.#U&&this.#F}Pi(t,i,s,e,h,o,n={}){const{speed:r=0,perc:a=0,isJump:c=0,limitViewport:l=0,omniIdx:u=-1,correct:d=0}=n;if(d&&this.xi)return this.Si(t,i,s,e,1),h;this.bi.set(t,i,s,e),this.#N.set(t,i,s,e);const p=this.#u,m=p.view,f=this.#N,g=this.#V;this.#G=c,this.#X=o;const v=p.main.el;if(0!==v.fi){const t=e/(1-v.fi/v.height);t>0?e+=t:e-=t,v.fi=0}if(0!==v.mi){const t=s*(v.mi/v.width);t>0?s+=t:s-=t,v.mi=0}const w=m.ti,M=m.ii,y=m.width,_=m.height;g.set(w,M,y,_),p.is360&&(t=w+st(w,t),f.set(t,i,s,e)),l&&(f.li(),f.ci(0)),this.#q=0,this.#K=0,this.#J=0,this.#Q=0;let b=1;if(this.#G){if(!p.is360){const t=f.ti,i=f.ii;if(f.aspect>g.aspect){const s=f.width/g.aspect;f.set(t,i,f.width,s)}else{const s=f.height*g.aspect;f.set(t,i,s,f.height)}}const h=g.x0,o=g.x1,n=g.y0,r=g.y1,a=f.x0,c=f.x1,l=f.y0,u=f.y1,d=h>a,m=n>l,v=c>o,w=u>r;!(d||m||v||w)||d&&m&&v&&w?f.set(t,i,s,e):(this.#q=d?1:a>h?2:0,this.#K=v?1:o>c?2:0,this.#J=m?1:l>n?2:0,this.#Q=w?1:r>u?2:0,b=1.5)}d&&f.ci(1,!l);const k=Math.max(1e4,Math.min(15e3,p.Ei/2));let x=Math.abs(w-t);p.is360&&(x=Math.min(x,1-x));const T=y>s&&_>e?.125:.25,P=(x+Math.abs(M-i)+Math.abs(y-s)*T+Math.abs(_-e)*T)/3;this.#tt=Math.max(.5,.8-P*(p.is360?1:2)),this.#it=Math.max(.05,Math.min(.9,P-(p.is360?.2:.1))),this.#W=0>h?P*k/p.Ii*b/(r>0?r:1):h;const S=p.images.length/p.Ci;return this.#st=p.zi,this.#et=0,!isNaN(u)&&u>0&&u!==this.#st&&(this.#et=u-this.#st,this.#et<-S/2&&(this.#et+=S),this.#et>S/2&&(this.#et-=S),this.#W+=Math.abs(this.#et)/this.#u.images.length*6e3),this.stop(),0===this.#W?(p.D(f.ti,f.ii,f.width,f.height,0,1),this.#u.S(),this.#W):(this.#F=1,this.ci=0,this.ki=1,this.#B=0,d&&(this.xi=1),this.#j=performance.now()-a*this.#W,this.#U=1,this.#W*(1-a))}Si(t,i,s,e,h=0){this.#N.set(t,i,s,e),h&&this.#N.ci(1)}zoom(t,i,s,e){this.stop(),this.#F=0,this.ki=0,this.#B=1,this.#R=e;const h=this.#u,o=h.F;return this.#Y=o.Li,this.#H=this.#Y+t/(o.Ai*h.Ei/20),e||(this.#H=Math.min(o.$i,Math.max(o.Di,this.#H))),this.#j=performance.now(),this.#U=1,this.#W=0>i?1e3*Math.abs(this.#Y-this.#H)/s:i,i}Mt(t,i,s,e,h=0){this.#V.set(t,i,s,e,h),this.#N.set(t,i,s,e,h)}Oi(){const t=0===this.#j?1:Math.min(1,Math.max(0,(this.#u.main.now-this.#j)/this.#W)),i=this.#X.get(t);if(this.#U){if(this.#F){const s=this.#V,e=this.#N,h=this.#it,o=this.#X.get(Math.min(1,t/this.#tt)),n=this.#X.get(Math.max(0,(t-h)/(1-h)));let r=0,a=s.ti+(e.ti-s.ti)*((r=this.#q||this.#K)?1===r?o:n:i),c=s.ii+(e.ii-s.ii)*((r=this.#J||this.#Q)?1===r?o:n:i);const l=s.width+(e.width-s.width)*i,u=s.height+(e.height-s.height)*i;if(this.#u.is360){const t=st(s.ti,e.ti);a=s.ti+t*i}if(this.#u.D(a,c,l,u,0,1),this.#et){let i=this.#st+Math.trunc(this.#et*this.#X.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.Fi(i,0)}}this.#B&&this.#u.F.Vi(this.#Y*(1-i)+this.#H*i,this.#R),1>t||(this.bi.ai(this.#u.view),this.#u.S(),this.stop())}return t}},Yt=class{arr;constructor(t=1,i=0,s=0,e=0,h=0,o=1,n=0,r=0,a=0,c=0,l=1,u=0,d=0,p=0,m=0,f=1){this.arr=new Float32Array([t,i,s,e,h,o,n,r,a,c,l,u,d,p,m,f])}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}ai(t){this.arr.set(t.arr)}Bi(t){const i=this.arr,s=Math.sin(t),e=Math.cos(t),h=i[4],o=i[5],n=i[6],r=i[7],a=i[8],c=i[9],l=i[10],u=i[11];i[4]=h*e+a*s,i[5]=o*e+c*s,i[6]=n*e+l*s,i[7]=r*e+u*s,i[8]=a*e-h*s,i[9]=c*e-o*s,i[10]=l*e-n*s,i[11]=u*e-r*s}Gi(t){const i=this.arr,s=Math.sin(t),e=Math.cos(t),h=i[0],o=i[1],n=i[2],r=i[3],a=i[8],c=i[9],l=i[10],u=i[11];i[0]=h*e-a*s,i[1]=o*e-c*s,i[2]=n*e-l*s,i[3]=r*e-u*s,i[8]=h*s+a*e,i[9]=o*s+c*e,i[10]=n*s+l*e,i[11]=r*s+u*e}Yi(t){const i=this.arr,s=Math.sin(t),e=Math.cos(t),h=i[0],o=i[1],n=i[2],r=i[3],a=i[4],c=i[5],l=i[6],u=i[7];i[0]=h*e+a*s,i[1]=o*e+c*s,i[2]=n*e+l*s,i[3]=r*e+u*s,i[4]=a*e-h*s,i[5]=c*e-o*s,i[6]=l*e-n*s,i[7]=u*e-r*s}Hi(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}Ri(t,i,s){const e=this.arr;e[12]+=e[0]*t+e[4]*i+e[8]*s,e[13]+=e[1]*t+e[5]*i+e[9]*s,e[14]+=e[2]*t+e[6]*i+e[10]*s,e[15]+=e[3]*t+e[7]*i+e[11]*s}Li(t,i,s,e){this.Ni();const h=this.arr,o=1/Math.tan(t/2),n=1/(s-e);h[0]=o/i,h[5]=o,h[10]=(e+s)*n,h[11]=-1,h[14]=2*e*s*n,h[15]=0}Xi(t){this.Ni();const i=this.arr,s=1/Math.tan(t/2);i[0]=s,i[5]=s}ji(){const t=this.arr,i=t[0],s=t[1],e=t[2],h=t[3],o=t[4],n=t[5],r=t[6],a=t[7],c=t[8],l=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=i*n-s*o,w=i*r-e*o,M=i*a-h*o,y=s*r-e*n,_=s*a-h*n,b=e*a-h*r,k=c*m-l*p,x=c*f-u*p,T=c*g-d*p,P=l*f-u*m,S=l*g-d*m,E=u*g-d*f;let I=v*E-w*S+M*P+y*T-_*x+b*k;I&&(I=1/I,t[0]=(n*E-r*S+a*P)*I,t[1]=(e*S-s*E-h*P)*I,t[2]=(m*b-f*_+g*y)*I,t[3]=(u*_-l*b-d*y)*I,t[4]=(r*T-o*E-a*x)*I,t[5]=(i*E-e*T+h*x)*I,t[6]=(f*M-p*b-g*w)*I,t[7]=(c*b-u*M+d*w)*I,t[8]=(o*S-n*T+a*k)*I,t[9]=(s*T-i*S-h*k)*I,t[10]=(p*_-m*M+g*v)*I,t[11]=(l*M-c*_-d*v)*I,t[12]=(n*x-o*P-r*k)*I,t[13]=(i*P-s*x+e*k)*I,t[14]=(m*w-p*y-f*v)*I,t[15]=(c*y-l*w+u*v)*I)}Wi(t){const i=this.arr,s=t.arr;let e=i[0],h=i[1],o=i[2],n=i[3];i[0]=e*s[0]+h*s[4]+o*s[8]+n*s[12],i[1]=e*s[1]+h*s[5]+o*s[9]+n*s[13],i[2]=e*s[2]+h*s[6]+o*s[10]+n*s[14],i[3]=e*s[3]+h*s[7]+o*s[11]+n*s[15],e=i[4],h=i[5],o=i[6],n=i[7],i[4]=e*s[0]+h*s[4]+o*s[8]+n*s[12],i[5]=e*s[1]+h*s[5]+o*s[9]+n*s[13],i[6]=e*s[2]+h*s[6]+o*s[10]+n*s[14],i[7]=e*s[3]+h*s[7]+o*s[11]+n*s[15],e=i[8],h=i[9],o=i[10],n=i[11],i[8]=e*s[0]+h*s[4]+o*s[8]+n*s[12],i[9]=e*s[1]+h*s[5]+o*s[9]+n*s[13],i[10]=e*s[2]+h*s[6]+o*s[10]+n*s[14],i[11]=e*s[3]+h*s[7]+o*s[11]+n*s[15],e=i[12],h=i[13],o=i[14],n=i[15],i[12]=e*s[0]+h*s[4]+o*s[8]+n*s[12],i[13]=e*s[1]+h*s[5]+o*s[9]+n*s[13],i[14]=e*s[2]+h*s[6]+o*s[10]+n*s[14],i[15]=e*s[3]+h*s[7]+o*s[11]+n*s[15]}Ai(t,i,s=1){const e=this.arr;e[0]*=t,e[1]*=t,e[2]*=t,e[3]*=t,e[4]*=i,e[5]*=i,e[6]*=i,e[7]*=i,e[8]*=s,e[9]*=s,e[10]*=s,e[11]*=s}},Ht=class{x;y;z;w;constructor(t=0,i=0,s=0,e=1){this.x=t,this.y=i,this.z=s,this.w=e}ai(t){this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w}Ui(t){const i=t.arr,s=this.x,e=this.y,h=this.z,o=i[3]*s+i[7]*e+i[11]*h+i[15]||1;this.x=(i[0]*s+i[4]*e+i[8]*h+i[12])/o,this.y=(i[1]*s+i[5]*e+i[9]*h+i[13])/o,this.z=(i[2]*s+i[6]*e+i[10]*h+i[14])/o,this.w=o}Zi(){let t=this.x*this.x+this.y*this.y+this.z*this.z;t>0&&(t=1/Math.sqrt(t)),this.x*=t,this.y*=t,this.z*=t}},Rt=class{canvas;#ht=-1;#ot=-1;#nt=-1;constructor(t){this.canvas=t}qi(t,i,s,e){const h=this.canvas,o=h.main.el,n=(Math.min(t,s)-o.left)/o.scale,r=(Math.min(i,e)-o.top)/o.scale,a=(Math.max(t,s)-o.left)/o.scale,c=(Math.max(i,e)-o.top)/o.scale,l=n+(a-n)/2,u=r+(c-r)/2,d=Math.max(a-n,c-r),p=this.#ht-d;if(h.Ji.stop(),this.#ot>0){const t=this.#ot-l,i=this.#nt-u;this.Ki(p,t,i,l,u,o,h)}else h.yt.stop();this.#ot=l,this.#nt=u,this.#ht=d}Qi(){}ts(){this.#rt()}#rt(){this.#ht=-1,this.#ot=-1,this.#nt=-1}_t(t,i,s,e,h,o,n,r,a,c,l,u){const d=this.canvas,p=d.yt;d.Ji.stop();const m=this.ss(t);return p.ci=0,h=p.Pi(m,i,s,e,h,u,{speed:o,perc:n,isJump:r,limitViewport:a,omniIdx:l,correct:c}),p.ci=0,p.ki=1,h}ss(t){return t}setCoo(t,i,s,e=0,h=0,o=0,n=nt){if(this.es(t,i,s))return 0;const r=this.canvas;0===s&&(s=r.hs()),s=this.rs(s),r.Ji.stop();const{w:a,h:c}=this.cs(s);return this.ls(t,i,a,c,e),e=r.yt.Pi(t,i,a,c,e,n,{speed:h}),r.yt.ci=0===e||o,r.yt.ki=e>0,e}es(t,i,s){return 0}rs(t){return t}ls(t,i,s,e,h){}},Xt=class extends Rt{Ai=1;R=1;j=1;us=1;#at=1;H=1;#ct=new Vt;#lt=new Vt;#ut=new Vt;#dt=0;#pt=0;#mt=0;#ft=new Yt;cpw=-1;cph=-1;#gt=1;constructor(t){super(t)}O(t,i,s,e){const h=this.canvas;(h.Ot||h.ds)&&(e=1);const o=h.el,n=h.ps?h.parent.el.ratio:o.ratio,r=h.view,a=this.#lt;s&&(t-=o.left,i-=o.top);const c=t/this.Ai*n/h.width+r.x0,l=i/this.Ai*n/h.height+r.y0;return a.x=e?c:Math.max(r.lX0,Math.min(r.lX1,c)),a.y=e?l:Math.max(r.lY0,Math.min(r.lY1,l)),a.scale=this.Ai,a.pi(),this.#lt}B(t,i,s){const e=this.canvas,h=e.el,o=e.ps?e.parent.el.ratio:h.ratio,n=this.#ct;return n.x=(t-e.view.x0)*e.width*this.Ai/o+(s?h.left:0),n.y=(i-e.view.y0)*e.height*this.Ai/o+(s?h.top:0),n.scale=this.Ai/o,n.pi(),n}Y(t,i,s,e,h){return this.vt(t-.5,i-.5,s,e,h)}vt(t,i,s,e=0,h=0){const o=this.canvas,n=o.el,r=this.#ft,a=o.F.fs,c=o.ps?o.parent.el.ratio:n.ratio;a.x=t,a.y=i,a.z=s,a.w=1,r.Ni(),!h&&o.gs&&r.Li(o.gs,o.aspect,1e-4,100),o.vs&&r.Ri(0,0,o.vs),o.ws&&r.Ri(o.ws,0,0),!h&&o.Ms&&r.Bi(o.Ms);const l=o.images.length/o.Ci,u=o.layer*l,d=o.images.length>0?-(o.zi+1-u)/l*2*Math.PI:0;r.Gi(e+d),a.Ui(r);const p=this.#ct;return p.x=(.5+a.x-o.view.x0)*o.width*this.Ai/c+(h?n.left:0),p.y=(.5+a.y-o.view.y0)*o.height*this.Ai/c+(h?n.top:0),p.w=-a.w-o.vs,p.pi(),p}ys(){const t=this.canvas,i=t.el,s=i.width/t.width,e=i.height/t.height;if(!t.view.ri&&this.cpw===s&&this.cph===e)return void(t.tt!==this.#gt&&this.it());this.cpw=s,this.cph=e,this.#at=Math.min(s,e),this.H=Math.max(s,e);const h=t.view.hi/t.view.oi;if(t.view.ri=0,1>t.view.hi||1>t.view.oi){const i=s/e;this.H/=i>h?t.view.hi/i:t.view.oi*i}if(this.it(),i.width&&i.height&&!this.canvas.yt.Ti()&&(t.view.ai(t.yt.bi,1),!t.is360)){const i=t.yt.ci;t.yt.ci=0,this._s(),t.yt.ci=i}}it(t=0){const i=this.canvas;if(this.R=i.tt?this.H:this.#at,!t&&!i.main.bs&&(0===i.zi&&!i.tt||i.zi>0&&!i.tt)){const t=i.focus.width*i.width,s=i.focus.height*i.height,e=i.el.width,h=i.el.height;this.R=e/h>t/s?h/s:e/t}this.us=this.R>1&&i.maxScale<this.R?this.R:Math.max(this.R,i.maxScale*i.ks/i.el.scale),this.#gt=i.tt}yi(){return 1>this.j&&this.Ai<this.R}U(t=0){return tt(this.Ai,this.R*(t?this.j:1))||this.Ai<=this.R*(t?this.j:1)}W(){return tt(this.Ai,this.us)||this.Ai>=this.us}_s(){if(-1===this.cpw)return 0;const t=this.canvas,i=this.canvas.view,s=!t.ds&&t.yt.ci;!t.yt.xi&&(s||!t.yt.ki&&t.tt)&&i.ci(0);const e=i.width,h=i.height,o=this.cpw,n=this.cph;this.Ai=Math.min(o/e,n/h),s&&!this.#dt&&this.Ai>=this.us&&t.yt.ki&&(this.Ai=this.us),(!t.yt.xi&&!this.#dt||t.tt)&&(this.Ai=Math.max(this.R*this.j,this.Ai)),!this.#pt&&t.xs&&(this.Ai=this.H);const r=o/this.Ai-e,a=n/this.Ai-h;return i.set(i.ti,i.ii,i.width+r,i.height+a),!this.#pt&&t.xs&&this.canvas.yt.bi.ai(i),!t.yt.xi&&t.tt&&i.ci(0),this.#pt=this.cpw>0,this.#mt?(this.#mt=0,this.setCoo(this.#ut.x,this.#ut.y,this.#ut.scale),0):1}Ts(){const t=this.canvas.view;return!this.canvas.ds&&((!tt(t.x0,t.lX0)&&t.x0<t.lX0)!=(!tt(t.x1,t.lX1)&&t.x1>t.lX1)||(!tt(t.y0,t.lY0)&&t.y0<t.lY0)!=(!tt(t.y1,t.lY1)&&t.y1>t.lY1)||!tt(this.Ai,this.us)&&this.Ai>this.us)}kt(t,i,s=0,e=0,h=0,o=0){const n=this.canvas;if((this.yi()||this.#dt)&&!h)return;this.canvas.ds&&(e=1);const r=n.ps?n.parent.el.ratio:n.el.ratio,a=n.view,c=t/n.width/this.Ai*r,l=i/n.height/this.Ai*r,u=a.ti+c,d=a.ii+l,p=a.width,m=a.height;this.#dt?(n.view.set(u,d,p,m),n.D(u,d,p,m,e,0,0,0)):h||!this.Ts()||o?(n.yt.stop(),0===s?(o||n.Ji.addStep(4*t,4*i),n.view.set(u,d,p,m),e||n.view.ci(0,0,n.ds),n.D(u,d,p,m,e,0,0,o),n.view.ni=1):n.yt.Pi(u,d,p,m,s,nt)):n.yt.Ti()?n.yt.Si(u,d,a.width,a.height,1):n.yt.Pi(u,d,p,m,150,nt,{limitViewport:!e&&!this.#dt,correct:!e})}bt(t,i,s,e=0,h){const o=this.canvas;if(o.Ji.stop(),!this.#dt&&this.W()&&0>t)return 0;if(this.canvas.ds&&(h=1),t>0&&this.U()&&this.j>=1&&(!this.#dt||o.tt))return 0;const n=o.el,r=o.view,a=this.cpw/this.cph;let c=t*(n.width/512)/o.width/this.Ai,l=c/a;0>t&&-1>c&&(c=-.9999),0>t&&-1>l&&(l=-.9999);const u=!h&&!o.ds&&o.yt.ci&&0===e,d=o.ps?o.parent.el.ratio:n.ratio;i-=n.left,s-=n.top;const p=this.yi(),m=i>0&&!p?i/n.width*d:.5,f=s>0&&!p?s/n.height*d:.5,g=r.ti+c*(.5-m),v=r.ii+l*(.5-f),w=r.width+c,M=r.height+l;return o.yt.ci=u,e=o.yt.Pi(g,v,w,M,e,nt,{limitViewport:!h&&!this.#dt,correct:u}),o.yt.bi.ai(o.view),o.yt.ci=!h,e}Ki(t,i,s,e,h,o,n){!this.canvas.main.Ps&&this.Ai>this.R&&this.kt(i,s,0,0,1),this.bt(2*t*o.scale,e,h,0,!this.canvas.Ss),n.yt.ci=!!this.canvas.Ss}Qi(){this.#dt=1}ts(){this.#vt(),this.#dt=0,super.ts()}#vt(){if(this.canvas.ds)return;const t=this.canvas.view,i=this.Ai>this.us,s=i?this.cpw/this.us:t.width,e=i?this.cph/this.us:t.height,h=s/2,o=e/2,n=t.hi/2,r=t.oi/2,a=n>h?Math.max(t.lX0+h,Math.min(t.ti,t.lX1-h)):t.si,c=r>o?Math.max(t.lY0+o,Math.min(t.ii,t.lY1-o)):t.ei;this.canvas.yt.Pi(a,c,s,e,150,nt,{correct:1})}es(t,i,s){if(!this.#pt){this.#mt=1;const e=this.#ut;return e.x=t,e.y=i,e.scale=s,this._s(),1}return 0}rs(t){return Math.max(this.R,t)}cs(t){return{w:1/t*this.cpw,h:1/t*this.cph}}ls(t,i,s,e,h){0===h&&(t+s/2>1&&(t=1-s/2),0>t-s/2&&(t=s/2),i+e/2>1&&(i=1-e/2),0>i-e/2&&(i=e/2))}Z=0;q=0;Es(){const t=this.canvas,i=t.view,s=t.F,e=s.Is;e.Li(s.Li,t.el.wi,1e-4,100),e.Ri(-(i.ti-.5)*t.aspect,i.ii-.5,-i.height/2)}},jt=class{Cs;zs;#d;Ls;As;$s;#wt;Ds;Os;constructor(t,i,s,e,h,o,n){this.#d=t,this.Ls=i,this.As=s,this.$s=e,this.#wt=h,this.Ds=o,this.Os=n,this.Cs=h/t.width,this.zs=h/t.height}Fs(t,i){const s=t-this.As,e=s%this.Ds,h=Math.floor(s/this.Ds),o=this.#d;return i.x0=o.x0+e*this.#wt/o.width*o.Vs,i.y0=o.y0+h*this.#wt/o.height*o.Ns,i.x1=o.x0+Math.min((e+1)*this.#wt/o.width,1)*o.Vs,i.y1=o.y0+Math.min((h+1)*this.#wt/o.height,1)*o.Ns,i.image=o,i.layer=this.Ls,i.x=e,i.y=h,i}},Wt=class t{static#Mt=[];static#yt=new Uint8Array(0);static#_t=0;#bt=new Ht;#kt=new Yt;#xt=0;Bs=[];#Tt=0;Gs=0;x0=0;y0=0;x1=1;y1=1;Vs=1;Ns=1;#Pt=.5;#St=.5;#Et=1;#It=1;#Ct=0;#zt=0;#Lt=-1;#At=0;#$t=0;Ys=0;Hs;#Dt=0;#Ot=0;Rs=0;#Ft=0;Xs=0;static#Vt=new Float64Array(200);static#Nt=new Float64Array(200);static#Bt=new Float64Array(200);static#Gt=0;static#Yt=0;#u;Ls;ct;width;height;#wt;#Ht;At;#Rt;opacity;Ws;ut;dt;ft;#Xt;#jt;constructor(t,i,s,e,h,o,n,r,a,c,l,u,d,p,m,f,g){this.#u=t,this.Ls=i,this.ct=s,this.width=e,this.height=h,this.#wt=o,this.#Ht=n,this.At=a,this.#Rt=c,this.opacity=l,this.Ws=u,this.ut=d,this.dt=p,this.ft=m,this.#Xt=f,this.#jt=g;const v=e>h?e:h;this.#Ft=this.#u.is360&&this.ct>0,this.#Tt=r&&!n?2:1;for(let M=o;M<v*t.main.Us;M*=2)this.#Tt++;(t.main.Zs||this.#jt>0)&&(this.#Tt-=3-t.main.qs),this.#jt>0&&this.#Tt--,this.#Tt=Math.max(1,this.#Tt);let w=c;for(let M=0;M<this.#Tt;M++){const t=J(M)*this.#wt,i=Math.ceil(e/t),s=Math.ceil(h/t);this.Bs.push(new jt(this,this.Bs.length,w,this.Hs=w+=i*s,t,i,s))}}lt(t,i,s,e){this.x0=t,this.y0=i,this.x1=s,this.y1=e,this.#Et=s+(t>s?1:0)-t,this.#It=e-i,this.#Pt=t+this.#Et/2,this.#St=i+this.#It/2,this.#u.is360&&(this.#Pt=Z(this.#Pt)),this.Vs=this.#Et,this.Ns=this.#It,this.#Dt=this.width/this.height,this.#xt=this.#Dt>this.#u.aspect?this.#u.width/this.width*this.Vs:this.#u.height/this.height*this.Ns,this.#u.is360&&this.#Wt()}#Wt(){let t=2*(this.#Pt-.5)*Math.PI;const i=(this.#St-.5)*Math.PI;t+=this.#u.F.Js,this.#Ct=Math.cos(i)*Math.sin(t),this.#zt=Math.sin(i),this.#Lt=Math.cos(i)*Math.cos(t),this.#At=2*this.#Et*Math.PI,this.#$t=this.#It*Math.PI}#Ut(){if(!this.#u.is360)return 0;const t=this.#u.F,i=this.#Ct*t.Ks+this.#zt*t.Qs+this.#Lt*t.te;return Math.acos(Math.max(-1,Math.min(1,i)))<t.ie+Math.max(this.#At,this.#$t)/2}#Zt(){if(this.#Ft)return!this.#Ut();{const t=this.#u.view;return!(this.x1>t.x0&&this.x0<t.x1&&this.y1>t.y0&&this.y0<t.y1)}}se(){return this.#jt>0&&this.#jt>this.#u.camera.Ai||(this.At||this.ct>0)&&0===this.opacity&&0===this.Ws?0:this.Ls===this.#u.zi||this.#u.is360&&0===this.ct?1:!this.#Zt()}ee(t){const i=this.Ws;if(this.opacity===i)return 0;const s=1/(this.#u.main.he*this.#u.main.oe);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}ne(i){if(0>=this.opacity)return 0;this.#Ot=0;const s=t.#Mt;let e=t.#yt;if(this.#Ft){if(i=this.#qt(i),!(this.Rs=i>0))return 0}else i=Math.max(i,this.#u.camera.R)*this.#xt;const h=this.Hs-this.#Rt;e.length<h?e=t.#yt=new Uint8Array(h):e.fill(0,0,h),t.#_t=this.#Rt;const o=this.Hs-1,n=o-this.#Rt;0===this.Ys?(s.push(o),e[n]=1,this.#u.main.re(o,1,1)):this.#Ft&&(s.push(o),e[n]=1,this.#Ot++);const r=this.#Jt(i),a=this.#u;if(0===this.ct&&a.is360)this.#Kt(this.Bs[r]);else if(this.#Ft)this.#Qt(r),this.#Ot++;else if(a.visible.x0<a.visible.x1&&a.visible.y0<a.visible.y1){const t=a.view;this.#ti(r,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.ae.push(t);return s.length=0,this.#Ot}#Jt(t){let i=this.#Ht||this.#u.ce?this.#Tt:1+this.#u.main.le;if(!this.#Ht&&!this.#u.ce)for(;i<this.#Tt&&1>J(i)*t;i++);return this.Gs=i-1}#ti(t,i,s,e,h){if(this.#Zt())return;const o=this.Bs[t],n=o.Cs,r=o.zs,a=this.Vs,c=this.Ns,l=Math.min(o.Ds-1,Math.floor(Math.max(0,e-this.x0)/a/n)),u=Math.min(o.Os-1,Math.floor(Math.max(0,h-this.y0)/c/r)),d=Math.floor(Math.max(0,i-this.x0)/a/n);let p=Math.floor(Math.max(0,s-this.y0)/c/r);for(;u>=p;p++)for(let t=d;l>=t;t++)this.#ii(o,t,p)}#Qt(t){if(this.#Zt())return;const i=this.Bs[t],s=this.#u,e=s.view.ii,h=s.view.width+.1,o=s.view.height+.1,n=this.#Pt,r=this.#St,a=this.#Et,c=this.#It,l=Math.max(e-o/2,r-c/2),u=Math.min(e+o/2,r+c/2);if(l>=u)return;const d=s.is360?Z(s.view.ti+s.F.ue):s.view.ti;let p,m;if(s.is360){const t=Z(d-h/2),i=Z(d+h/2),s=Z(n-a/2),e=Z(n+a/2);if(i>t&&e>s){if(p=Math.max(t,s),m=Math.min(i,e),p>=m)return}else if(t>i&&e>s){if(s>i&&t>e)return;p=s,m=e}else if(i>t&&s>e){if(t>e&&s>i)return;p=t,m=i}else p=Math.max(t,s),m=Math.min(i,e);const o=n-a/2;n+a/2>1?(o>p&&(p+=1),o>m&&(m+=1)):p>n+.5?p-=1:m>n+.5&&(m-=1)}else if(p=Math.max(d-h/2,n-a/2),m=Math.min(d+h/2,n+a/2),p>=m)return;const f=n-a/2,g=r-c/2,v=i.Cs,w=i.zs,M=Math.floor(Math.max(0,Math.min(1,(p-f)/a))/v),y=Math.min(i.Ds-1,Math.floor(Math.max(0,Math.min(1,(m-f)/a))/v)),_=Math.floor(Math.max(0,Math.min(1,(l-g)/c))/w),b=Math.min(i.Os-1,Math.floor(Math.max(0,Math.min(1,(u-g)/c))/w));for(let k=_;b>=k;k++)for(let t=M;y>=t;t++)this.#ii(i,t,k)}#ii(i,s,e){const h=t.#yt,o=t.#_t,n=Math.min(this.Hs-1,i.As+e*i.Ds+s),r=n-o;if(r<h.length){if(h[r])return;h[r]=1}t.#Mt.push(n),1>this.#u.main.re(n,n===this.Hs-1,this.#u.Vt)?this.#Ht||this.#u.ce||i.Ls>=this.#Tt-1||this.#ii(this.Bs[i.Ls+1],s>>1,e>>1):this.#Ot++}de(t){const i=this.#u.main.pe,s=2*Math.PI*this.#u.F.me,e=this.#bt,h=this.#kt,o=this.x0+this.Vs/2,n=this.y0+this.Ns/2,r=this.#u.F.fe(o-this.#u.F.ue,n,1,5);h.Ni(),h.Ri(r.x,r.y,r.z),h.Gi(Math.atan2(r.x,r.z)+Math.PI+this.dt),h.Bi(-Math.sin((n-.5)*Math.PI)-this.ut),h.Yi(-this.ft),h.Hi(.5*this.#Xt);const a=(t.x0-o)*s,c=(t.x1-o)*s,l=.5*-(t.y0-n)*s,u=.5*-(t.y1-n)*s,d=(t,i)=>{e.x=0,e.y=0,e.z=0,h.Ri(t,i,0),e.Ui(h),h.Ri(-t,-i,0)};d(a,l),i[0]=e.x,i[1]=e.y,i[2]=e.z,d(a,u),i[3]=e.x,i[4]=e.y,i[5]=e.z,d(c,l),i[6]=e.x,i[7]=e.y,i[8]=e.z,d(c,u),i[12]=e.x,i[13]=e.y,i[14]=e.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.#Et,this.#It)*(this.#u.width/this.width);const i=this.#Et,s=this.#It,e=this.#Pt,h=this.#St,o=this.#u.el,n=this.#u.F,r=o.width,a=s/2.5;let c=0;const l=n.N(e-i/2,h-a);if(l.di(o)&&c++,n.N(e+i/2,h-a).di(o)&&c++,n.N(e-i/2,h+a).di(o)&&c++,n.N(e+i/2,h+a).di(o)&&c++,0===c)return 0;const u=l.w>0||0>l.x?0:Math.min(r,l.x),d=l.w>0||l.x>r?r:Math.max(0,l.x);return Math.min(1,(d-u)/this.width)}#Kt(i){const s=this.#u,e=s.el.width,h=s.el.height,o=s.F.ie>Math.PI/2?20:12,n=s.F.ue;t.#Gt=0;const r=(i,e)=>{const h=s.F.O(i,e),o=t.#Gt++;t.#Vt[o]=h.x,t.#Nt[o]=h.y};for(let t=0;o>=t;t++){const i=t/o;r(i*e,0),r((1-i)*e,h),r(e,i*h),r(0,(1-i)*h)}for(let t=1;3>=t;t++){const i=h*t/4;for(let t=1;3>=t;t++)r(e*t/4,i);r(e*t/4,h-1)}const a=t.#Gt;let c=1/0,l=-1/0;for(let b=0;a>b;b++){const i=t.#Nt[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.#Bt;for(let t=0;a>t;t++)u[t]=Z(u[t]-n);t.#Yt=0;for(let b=0;a>b;b++){const i=u[b];let s=0;for(let e=0;e<t.#Yt;e++)if(1e-8>Math.abs(d[e]-i)){s=1;break}s||(d[t.#Yt++]=i)}const p=t.#Yt;for(let t=1;p>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,f=1,g=0;if(2>p)g=1,c=0,l=1;else{let t=0,i=-1;for(let h=0;p-1>h;h++){const s=d[h+1]-d[h];s>t&&(t=s,i=h)}const s=d[0]+1-d[p-1],e=s>t;e&&(t=s,i=p-1),.999999>1-t?e?(m=d[0],f=d[p-1]):(m=d[(i+1)%p],f=d[i]+1):g=1}(.05>c||l>.95)&&(g=1);const v=i.zs,w=i.Cs;let M=Math.max(0,Math.floor((c-.001)/v)),y=Math.min(i.Os-1,Math.max(0,Math.floor((l+v-1e-10)/v)));1e-5>c&&(M=0),l>.99999&&(y=i.Os-1);const _=f>1;for(let t=M;y>=t;t++)if(g)for(let s=0;s<i.Ds;s++)this.#ii(i,s,t);else{const s=Math.max(0,Math.floor((m-.001)/w)-1);if(_){for(let h=s;h<i.Ds;h++)this.#ii(i,h,t);const e=Math.min(i.Ds-1,Math.ceil(Z(f+.001)/w));for(let s=0;e>=s;s++)this.#ii(i,s,t)}else{const e=Math.min(i.Ds-1,Math.ceil((f+.001)/w));for(let h=s;e>=h;h++)this.#ii(i,h,t)}}}},Ut=class extends Rt{Is=new Yt;#si=new Yt;#ei=new Yt;#hi=1;#oi=new Yt;#ni=new Ht;me=10;Ai=0;#ri=1;#ai=0;ue=0;#ci=0;#li=0;Js=0;Z=0;q=0;ge=Math.PI/2;Li=Math.PI/2;$i=Math.PI/2;Di=Math.PI/2;Ks=0;Qs=0;te=-1;ie=0;fs=new Ht;#lt=new Vt;constructor(t){super(t),this.Js=-this.canvas.ve,this.ue=this.Js/(2*Math.PI),this.#ri=this.canvas.height/(this.canvas.width/2),this.#ai=(1-this.#ri)/4,this.Z=this.Js,this.we()}st(t,i){this.#ci=t,this.#li=i,this.$i=Math.PI/2,i>0&&(this.$i=Math.min(this.$i,this.$i*i*1.5)),this.Vi(this.Li,1)}we(t=0){const i=this.canvas.el;t||this.Is.Li(this.Li,i.wi,1e-4,20),this.#hi=1;const s=this.Is;this.q=Math.min(Math.PI/2,Math.max(-Math.PI/2,this.q)),s.Bi(this.q),s.Gi(this.Z),s.Ri(this.#ni.x,this.#ni.y,this.#ni.z);const e=this.#oi;e.Xi(this.Li),e.Ri(0,0,i.height/i.ratio/2),e.Bi(-this.q),e.Gi(this.Z),this.#lt.direction=this.Z/Math.PI*180%360}_i(t,i,s=0){const e=this.canvas,h=e.el;this.Z+=t*h.ratio/h.width*this.Li*h.wi,this.q+=i*h.ratio/h.height*this.Li*this.#ri,this.Z=q(this.Z),(e.tt||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),0===s&&e.Ji.addStep(2*t,2*i),this.we(),this.Me(),this.#pi()}#ui(){const t=this.Li/2,i=Math.PI*this.#ri/2*(this.#li>0?this.#li:1);this.q=this.q>0?Math.min(i,this.q+t)-t:Math.max(-i,this.q-t)+t}#di(){const t=this.Li/2*this.canvas.el.wi,i=Math.PI*(this.#ci>0?this.#ci:1);let s=this.Z;for(;s>=Math.PI;)s-=2*Math.PI;for(;s<-Math.PI;)s+=2*Math.PI;this.Z=q(Math.min(Math.max(i,t)-t,Math.max(Math.min(-i,-t)+t,s)))}#mi(t,i,s,e=0,h=0,o=0){const n=this.canvas;if(t/=2,0!==i)i=n.yt.zoom(t,i,e,s);else{t/=this.Ai*n.Ei/20;const i=h>0&&o>0;let e=0,r=0;if(i){const t=this.O(h,o);e=t.x,r=t.y}if(this.Vi(this.Li+t,s),i){const t=this.O(h,o);let i=e-t.x;i>.5&&(i-=1),-.5>i&&(i+=1);const s=r-t.y;this.Z+=i*Math.PI*2,this.q+=s*Math.PI*this.#ri,this.Z=q(this.Z),(n.tt||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),this.we(),this.#fi(),this.Me(),this.#pi()}}return i}Vi(t,i){const s=this.canvas;this.Li=t,i&&!s.is360||(this.Li=Math.min(this.$i,Math.max(this.Di,this.Li))),(s.tt||this.#li>0)&&this.#ui(),this.#ci>0&&this.#di(),this.Is.Li(this.Li,s.el.wi,1e-4,20),this.#fi(),this.we(1),this.Me(),this.#pi()}#fi(){const t=this.canvas.el,i=t.width/2,s=t.height/2,e=this.O(i,s).x,h=this.O(i+1,s+1).x;this.Ai=1/(h+(e>h?1:0)-e)/this.canvas.width}J(t,i,s=0){this.Z=q(t-this.Js),this.q=i,0!==s?this.Vi(s,0):this.we(),this.Me(),this.#pi()}D(t,i,s,e,h){if(null==t||null==i||null==e)return 0;const o=h?.noLimit??0,n=h?.correctNorth?t+this.ue:t;return this.Z=(n-.5)*Math.PI*2,this.q=(i-.5)*Math.PI*this.#ri,this.Vi(Math.min(this.$i,e*Math.PI*this.#ri),o),this.Me(),this.#pi(),1}#pi(){const t=this.canvas,i=Z(this.Z/(2*Math.PI)+.5),s=this.q/this.#ri/Math.PI+.5,e=this.Li/Math.PI/this.#ri,h=e*(0===t.el.width?1:.5*Math.sqrt(t.el.wi))/(t.aspect/2);t.view.set(i,s,h,e),t.view.ni=1}Me(){const t=this.Z,i=this.q;this.Ks=Math.cos(i)*Math.sin(t),this.Qs=Math.sin(i),this.te=Math.cos(i)*Math.cos(t);const s=2*Math.atan(1/this.Li),e=this.canvas.el.width/this.canvas.el.height,h=s/2,o=Math.atan(Math.tan(h)*e);this.ie=2*o}ye(t,i,s,e=0){const h=this.#ni,o=s*Math.PI*2+e;h.x=-t*Math.sin(o),h.y=i,h.z=t*Math.cos(o),this.canvas.view.ni=1,this.we()}_e(){const t=this.canvas,i=t.el;this.Di=Math.min(.5,i.height/t.height)/t.maxScale*this.#ri*Math.PI/i.ratio*i.scale,this.Vi(this.Li,1)}#gi(){this.#hi&&(this.#ei.ai(this.Is),this.#ei.ji(),this.#hi=0)}O(t,i){const s=this.canvas.el,e=this.fs,h=this.#lt;return e.x=t*s.ratio/s.width*2-1,e.y=-(i*s.ratio/s.height*2-1),e.z=1,e.w=1,this.#gi(),e.Ui(this.#ei),e.Zi(),h.x=Math.atan2(e.x,-e.z)/Math.PI/2+.5,h.y=.5-Math.asin(e.y)/Math.PI/this.#ri,h.scale=this.Ai,h.w=this.#ni.x+this.#ni.z,h.direction=this.Z+this.Js,h.pi(),h}N(t,i){const s=this.canvas.el,e=this.fs,h=this.#lt;return this.fe(t+this.ue,i),h.x=(e.x+1)/2*s.width/s.ratio,h.y=(1-e.y)/2*s.height/s.ratio,h.scale=this.Ai,h.w=-e.w,h.pi(),h}fe(t,i,s=0,e=this.me){const h=this.fs;t*=2*-Math.PI,i-=.5,i*=-Math.PI,i*=this.#ri;const o=Math.cos(i);return h.x=o*Math.sin(t)*e,h.y=Math.sin(i)*e,h.z=o*Math.cos(t)*e,h.w=1,s||h.Ui(this.Is),h}nt(t,i,s,e,h,o,n,r=0,a=1,c=1,l=0){isNaN(e)&&(e=this.me);const u=this.#si,d=this.fs,p=this.me,m=this.#ni;u.Ni(),e*=this.me*(100/(2*Math.PI)),t*=2*-Math.PI,i-=.5,i*=Math.PI*this.#ri;const f=Math.cos(i);return d.x=f*Math.sin(t),d.y=Math.sin(i),d.z=f*Math.cos(t),u.Ri(m.x*e/p,-m.y*e/p+r*p,m.z*e/p),u.Ri(d.x*e,d.y*e,d.z*e),u.Gi(Math.atan2(d.x,d.z)+Math.PI+o),u.Bi(d.y+h),u.Yi(n),u.Ai(a,c),u.Hi(s/Math.PI/p),u.Wi(this.#oi),u}be(t,i,s,e){i*=this.#ri,i/=2,i-=.25,i+=this.#ai,e*=this.#ri,e/=2;const h=this.canvas.main.ke,o=this.me,n=s/16,r=e/16,a=2*Math.PI;for(let c=0;16>c;c++)for(let s=0;16>s;s++){const e=18*(16*c+s),l=-Z(t+n*s+this.ue)*a,u=-(i+r*c)*a,d=-Z(t+n*(s+1)+this.ue)*a,p=-(i+r*(c+1))*a,m=Math.cos(l)*o||0,f=Math.sin(l)*o||0,g=Math.cos(d)*o||0,v=Math.sin(d)*o||0,w=Math.cos(u),M=Math.cos(p),y=Math.sin(u)*o,_=Math.sin(p)*o;h[e+0]=w*f,h[e+1]=y,h[e+2]=w*m,h[e+3]=h[e+9]=M*f,h[e+4]=h[e+10]=_,h[e+5]=h[e+11]=M*m,h[e+6]=h[e+15]=w*v,h[e+7]=h[e+16]=y,h[e+8]=h[e+17]=w*g,h[e+12]=M*v,h[e+13]=_,h[e+14]=M*g}}R=0;us=0;H=0;j=1;it(){}Ts(){return 0}yi(){return 0}U(t=0){return this.Li>=this.$i}W(){return this.Li<=this.Di}kt(t,i,s=0,e=0,h=0,o=0){this._i(t,i,s)}bt(t,i,s,e=0,h){return this.#mi(t,e,h,0,i,s)}Ki(t,i,s){this.#mi(2*t,0,0),this._i(i,s)}ss(t){const i=this.canvas.view.ti;return i+st(i,t)}cs(t){const i=this.canvas.main.el;return{w:1/t*i.width,h:1/t*i.height}}},Zt=class t{view;focus;yt;Ji;G;F;camera;#vi=new Ot;el=new Nt;images=[];Ei=0;#wi=[];#Mi;#yi;#_i;visible;#bi;#ki=1;#xi=0;#Ti=0;#Pi=0;get zIndex(){return this.#Ti}set zIndex(t){this.#Ti!==t&&(this.#Ti=t,this.parent&&(this.parent.#Pi=1))}ae=[];aspect;#Si=0;#Ei=0;Vt=0;#Ii=0;#Ci=0;zi=-1;gs=0;Ms=0;vs=0;ws=0;ce=0;layer=0;xe;#wt;is360;Ot;#zi;ds;xs;maxScale;ks;Ii;ve;#Li;#Ai;isOmni;Ss;Ci;main;width;height;Te;tt;ps;constructor(t,i,s,e,h,o,n,r,a,c,l,u,d,p,m,f,g,v,w,M,y,_,b=0){this.main=t,this.width=i,this.height=s,this.Te=e,this.tt=h,this.ps=b,this.#wt=o,this.is360=n,this.Ot=r,this.#zi=a,this.ds=c,this.xs=h?1:l,this.maxScale=u,this.ks=d,this.Ii=p,this.ve=m,this.#Li=f,this.#Ai=g,this.isOmni=v,this.Ss=w,this.Ci=M,this.#Si=t.Pe.length,b||t.Pe.push(this),this.aspect=i/s,this.Ei=Math.sqrt(i*i+s*s),this.view=new Ft(this),this.focus=new Ft(this),this.yt=new Gt(this),this.Ji=new Bt(this),this.G=new Xt(this),this.F=new Ut(this),this.camera=this.is360?this.F:this.G,this.#Mi=new Ft(this),this.#yi=new Ft(this),this.#_i=new Ft(this),this.visible=new Ft(this),this.#bi=new Ft(this),n&&this.view.set(.5,.5,1,.5),b||(this.el.ai(t.el),this.D(this.view.ti,this.view.ii,this.view.width,this.view.height,0,0),this._e()),r?(this.main.Se++,this.#Ii=1,this.Vt=1,this.#Ci=1,_>0&&this.Wt(_)):this.Ee(0,0,1,1,i,s,o,y,a,0,e)}parent;#$i(t){this.parent=t,this.#Si+=t.#wi.length}Ee(t,i,s,e,h,o,n,r,a,c,l,u=0,d=0,p=0,m=1,f=0){const g=new Wt(this,this.main.Se++,this.images.length,h,o,n,r,a,c,this.main.Ie,l,l,u,d,p,m,f);return g.lt(t,i,s,e),this.images.push(g),this.main.Ie=g.Hs,1===this.images.length&&this.Fi(0),g}Ce(i,s,e,h,o,n,r={}){const a=r.coverLimit??1,c=r.coverStart??1,l=new t(this.main,o,n,1,a,this.#wt,0,0,this.main.Zs||this.#zi,0,c,1,1,this.Ii,0,0,0,0,this.Ss,1,0,0,1);return l.#$i(this),l.lt(i,s,e,h,1,1),this.#wi.push(l),l}#Di(){const t=1/(0!==this.main.ze||0!==this.main.Le?this.main.Ae:1!==this.main.Pe.length||this.ps?this.main.$e:.25)/this.main.he,i=this.Te>0&&this.Te>=this.Vt;if(this.Vt=i?Math.min(1,this.Vt+t):Math.max(0,this.Vt-t),this.#Ii=nt.get(this.Vt),0!==this.main.ze||0!==this.main.Le){const t=0===this.Vt?0:nt.get(1-this.Vt)*(i?1:-1);this.F.ye(this.main.ze*t*8,this.main.Le*t*8,this.main.De)}}#Oi(t){this.xe?.visible?.set(t),this.#Ei=t}Oe(){this.Te=0,this.zIndex=0}Fe(){if(this.#Ci=1,!this.ps&&1===this.#yi.width&&1===this.#yi.height)for(let t=0;t<this.main.Pe.length;t++)this.main.Pe[t]!==this&&this.main.Pe[t].Oe();this.Te=1}Ve(){return!this.#xi&&1>this.#ki}#Fi(){return 0===this.Te&&0===this.Vt||0===this.#yi.width||0===this.#yi.height}Ne(){if(!this.Ve()&&this.#Fi())return void(this.#Ei&&this.#Oi(0));let t=1>this.yt.Oi()||1>this.Ji.step()||!this.#Ci;if(this.ae.length=0,this.#Vi(0)&&(t=1),!(this.is360||this.Ve()||this.visible.width>0&&this.visible.height>0))return void(this.#Ei&&this.#Oi(0));this.#Ei||1>this.Vt||this.#Oi(1),this.F.Me(),this.#Ci&&this.Vt!==this.Te&&(this.#Di(),t=1);const i=(this.is360?this.F.Ai:this.G.Ai)*this.el.scale,s=this.main;for(let e=0;e<this.images.length;e++){const h=this.images[e];h.se()?(e>0&&!h.Rs&&s.Be(h,h.Rs=1),h.At&&h.Xs&&(t=1),h.ee(this.#Li||1>this.Vt)&&(t=1),h.opacity>0&&(s.Ge+=h.ne(i))):h.Rs&&s.Be(h,h.Rs=0)}s.Ye+=this.ae.length,s.He=0===s.Ye?1:s.Ge/s.Ye;for(let e=0;e<this.#wi.length;e++)this.#wi[e].Ne();t&&(s.Re=1)}Xe(){if(0===this.Te&&0===this.Vt)return;const t=this.main,i=t.micrio.jt,s=this.el,e=this.view,h=this.yt.Ti();if(i.gl.viewport(this.el.left,t.el.height-s.height-s.top,s.width,s.height),i.gl.uniformMatrix4fv(i.je,0,this.F.Is.arr),this.#Ai)for(let n=0;n<this.images.length;n++){const t=this.images[n];t.x1>e.x0&&t.x0<e.x1&&t.y1>e.y0&&t.y0<e.y1&&(this.#Ni(t.Hs-1),i.We(void 0,t.Ws))}const o=this.#vi;for(let n=0;n<this.ae.length;n++){const i=this.ae[n];this.#Ni(i);const s=o.layer===o.image.Gs-1||!t.Ue&&o.layer===o.image.Gs,e=i===o.image.Hs-1,r=t.Ze(i);(s||1===r||e)&&t.We(o.image.Ls,i,o.layer,o.x,o.y,r*this.#Ii*o.image.opacity,h,o.layer===o.image.Gs-1)&&e&&(o.image.Ys=t.now,this.#Ci||this.Fe())}this.#Pi&&(this.#wi.sort((t,i)=>t.zIndex>i.zIndex?1:t.zIndex<i.zIndex?-1:0),this.#Pi=0);for(let n=0;n<this.#wi.length;n++)this.#wi[n].Xe();e.ni&&this.xe?.camera?.wt(),e.ni=0}#Vi(t){const i=this.main.el,s=this.ps,e=s?this.parent.hs():1/i.ratio,h=s?this.parent.width:i.width,o=s?this.parent.height:i.height,n=s?this.parent.view:this.#bi,r=this.view,a=this.#yi,c=this.#Mi,l=this.#_i,u=this.Ve();if(u){const t=1/this.main.qe/this.main.he;this.#ki=Math.min(1,this.#ki+t);const i=this.main.Je.get(this.#ki),s=c.ti+(l.ti-c.ti)*i,e=c.ii+(l.ii-c.ii)*i,h=c.width+(l.width-c.width)*i,o=c.height+(l.height-c.height)*i;a.set(s,e,h,o),1===this.#ki&&(1===this.zIndex&&(this.zIndex=0),c.ai(l)),this.view.ni=1}let d=Math.max(r.x0,r.x0+(n.x0-a.x0)/a.width*r.width),p=Math.min(r.x1,r.x0+(1-(a.x1-Math.min(a.x1,n.x1))/a.width)*r.width);this.is360||(d=Math.max(0,d),p=Math.min(1,p));let m=Math.max(Math.max(0,r.y0),r.y0+(n.y0-a.y0)/a.height*r.height),f=Math.min(Math.min(1,r.y1),r.y0+(1-(a.y1-Math.min(a.y1,n.y1))/a.height)*r.height);m=Math.max(m,0),f=Math.min(f,1);const g=(d+p)/2,v=(m+f)/2,w=p-d,M=f-m;this.visible.set(g,v,w,M);const y=s?1:i.ratio;return this.Te>=this.Vt&&this.el.set(a.width*e*h,a.height*e*o,(a.x0-n.x0)*h*e,(a.y0-n.y0)*o*e,y,s?1:i.scale,s?0:i.gi)&&(t||this.Ke(),this.view.ni=1,this._e(),this.is360||(this.G.ys(),this.G.Es())),u}lt(t,i,s,e,h,o){this.#xi=0,h?(this.#Mi.lt(t,i,s,e),this.#yi.lt(t,i,s,e)):(this.#Mi.ai(this.#yi),this.#ki=0,0===this.zIndex&&(this.zIndex=1),this.yt.ci=0),this.#_i.lt(t,i,s,e),this.#Vi(o),this.Ke()}#Ni(t){const i=this.#vi;if(this.#Bi(t),this.is360)0===i.image.ct?this.F.be(i.x0,i.y0,i.x1-i.x0,i.y1-i.y0):i.image.de(i);else{const t=this.main.pe,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}}Ke(){const t=this.main.el;this.xe?.Nt?.set([this.el.left/t.ratio,this.el.top/t.ratio,this.el.width/t.ratio,this.el.height/t.ratio])}#Bi(t){let i=0;for(;t>=this.images[i].Hs;)i++;const s=this.images[i];let e=0;for(;t>=s.Bs[e].$s;)e++;const h=s.Bs[e];return h.Fs(t,this.#vi),[i,h.Ls]}Qe(t){if(this.is360)return 0;const i=this.#vi,s=this.view,[e,h]=this.#Bi(t);return h>this.images[e].Gs?!!(i.x1>s.x0&&i.x0<s.x1&&i.y1>s.y0&&i.y0<s.y1):0}_e(){if(this.#wi.length){const t=this.main.el;this.width=t.width,this.height=t.height,this.Ei=Math.sqrt(t.width*t.width+t.height*t.height)}this.ps||(this.is360?this.F._e():(this.G.ys(),this.G.Es()))}th(){if(this.Ji.stop(),this.yt.stop(),this.images.length>0){const t=this.images[0];t.Ys=0,t.opacity=0}}ih(){this.#Oi(0),this.main.ih(this)}Wt(t){this.layer=t,this.Fi(this.zi),this.view.ni=1}Fi(t,i=0){const s=this.layer*(this.images.length/this.Ci);for(let e=0;e<this.images.length;e++){const h=this.images[e],o=e-s-t;0!==o?h.Ws=0>o||o>i?0:1:(h.Ws=1,this.zi=t,this.view.ni=1)}this.G.it()}D(t,i,s,e,h,o,n=0,r=0){const a=this.main.el;a.fi>0&&(e+=e/(1-a.fi/a.height),this.yt.ci=0,a.fi=0),a.mi>0&&(s+=s*(a.mi/a.width),this.yt.ci=0,a.mi=0),h&&(this.yt.ci=0),this.view.set(t,i,s,e),r&&!h&&this.view.ci(0,0,this.ds),o||this.yt.bi.ai(this.view),this.width>0&&(this.is360?(this.F.D(t,i,s,e,{noLimit:h,correctNorth:n}),this.view.set(t,i,s,e)):this.G._s()&&this.G.Es())}hs(){return this.is360?this.F.Ai:this.G.Ai}W(){const t=this.F;return this.is360?t.Li<=t.Di:this.G.W()}U(t=0){const i=this.F;return this.is360?i.Li>=i.$i:this.G.U(t)}it(t){this.G.it(t)}X(t){const i=this.G;i.R=t,i.it(),i._s(),this.F.we()}J(t,i,s=0){isNaN(i)&&(i=this.F.q),this.F.J(t,i,s?this.F.ge:0)}nt(t,i,s,e,h,o,n,r,a=1,c=1,l=0){const u=2e4/this.width;return this.F.nt(t,i,s*u,e,h,o,n,r,a,c,l).arr}ht(){this.#xi=1,this.yt.pause()}ot(){this.#xi=0,this.yt.resume()}et(){this.yt.stop();for(let t=0;t<this.#wi.length;t++)this.#wi[t].et()}S(){const t=this.xe?.camera;if(t){for(t.S&&t.S();t.C.length;)t.C.shift()?.();t.I=t.S=void 0}}I(){const t=this.xe?.camera;t&&(t.I&&t.I(),t.C.length=0,t.I=t.S=void 0)}},qt=class t{ready=0;el=new Nt;pe=new Float32Array(18);ke=new Float32Array(4608);Pe=[];Ie=0;Se=0;now=0;Re=0;He=0;Ye=0;Ge=0;$e=.25;qe=.5;Je=nt;Ae=.5;oe=.5;Mi=1;sh=0;Zs=0;qs=0;Us=4;le=0;Ue=0;bs=0;Ps=0;De=0;ze=0;Le=0;he=1/60;#Gi=[];#Yi=0;#Hi=[];#Ri=new Set;#Xi=new Set;#ji=new Set;#Wi=new Map;#Ui=new Map;#Zi;#qi=[];#Ji=new Map;#Ki=new Map;eh=0;static hh=t.#Qi(1,1);static oh;#ts=0;#is=-1;#ss=0;#es=null;#hs=new Map;Yt(t){return this.#hs.get(t)?.canvas}#os(t){this.#hs.set(t.micrioImage,t)}micrio;constructor(t){this.micrio=t,this.#Zi=xt.iOS?5:R(this.micrio.canvas.isMobile)?30:90,this.render=this.render.bind(this),this.#qi.push(t.current.subscribe(this.#ns.bind(this)))}static#Qi(t,i){const s=new Float32Array(12*t*i),e=1/t,h=1/i;for(let o=0,n=0;i>n;n++)for(let i=0;t>i;i++,o+=12)s[o+3]=s[o+7]=s[o+9]=(s[o+1]=s[o+5]=s[o+11]=n*h)+h,s[o+4]=s[o+8]=s[o+10]=(s[o+0]=s[o+2]=s[o+6]=i*e)+e;return s}nh(){this.ready||(t.oh=t.#Qi(16,16),this.ready=1,this.#qi.push(this.micrio.barebone.subscribe(t=>{this.Ue=t,this.#Yi=t})))}We=(t,i,s,e,h,o,n,r)=>{this.#Ri.add(i);const a=this.#rs(i);a.rh=void 0;const c=$t(),l=this.#Gi[t],u="camera"in l,d=u&&l.At,p=u&&l.A,m=u?l:l.image,f="ah"in l?l.ah:void 0,g=u&&l.$settings.noSmoothing;if(0===a.uh&&Pt>c){if(this.#Yi?c>2&&n:r&&n&&c>0)return 0;if(d&&!p)a.uh=2,a.dh=this.micrio.jt.ph();else{a.uh=1;const t=m.Rt(s,e,h,f);if(!t)return a.uh=0,0;this.ph(i,t,n,{noSmoothing:g})}}else if(a.uh>=2){if(this.#ss||this.#as(),a.dh){if(d){if(!m.Ct||!m.Ct.dataset.playing)return 0;this.micrio.jt.mh(a.dh,m.Ct)}this.micrio.jt.We(a.dh,o,p)}return 2===a.uh&&(a.uh=3,a.fh=this.now),1}return 0};Ze=t=>this.#Wi.get(t)?.Vt||0;re=(t,i=0,s=1)=>{const e=this.#Wi.get(t);return e?(1>e.Vt&&(e.Vt=i?1:e.fh&&e.fh>0?Math.min(1,(this.now-e.fh)/250)*s:0),e.Vt):0};Be=(t,i)=>{const s=this.#Ji.get(t);s&&"visible"in s&&s.visible.set(i)};gh(){for(this.#cs();this.#qi.length;)this.#qi.pop()?.();this.#Ui.forEach(t=>Dt(t)),this.#Ui.clear();for(const[t,i]of this.#Wi.entries())i.wh&&clearTimeout(i.wh),this.#ls(t);this.#Wi.clear(),this.#us()}#ds(t){if(this.sh)return;const i=t.$info;if(!i)return;if(t.error)return void this.micrio.Mh.set(0);if(!(t.Ot||i.width&&i.height))throw new Error("Invalid Micrio image size");const s=t.$settings;this.#ts=!!R(this.micrio.gallery)||t.$t,s.gallery?.archive&&(this.Zs=1,this.qs=s.gallery.archiveLayerOffset??0),i.version&&3.1>=parseFloat(i.version)&&(this.Us=8),i.is360&&(s.limitToCoverScale=0);const e=!!s.limitToCoverScale,h=e||"cover"==s.initType;t.Ot&&this.micrio.Mh.set(0);const o=[.5,.5],n=s.focus,r=!!i.spacesId;n&&(isNaN(n[0])||null===n[0]||(o[0]=n[0]),isNaN(n[1])||null===n[1]||(o[1]=n[1]));const a=s.l?.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 Zt(this,i.width,i.height,t.Vt,e,i.tileSize??1024,i.is360??0,t.Ot,!!i.isDeepZoom,s.freeMove??0,h,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.$t,s.pinchZoomOutLimit??0,u,!(!i.isSingle&&!c),s.omni?.layerStartIndex??0,0);t.rt=1,d.xe=t,this.#os({canvas:d,micrioImage:t,camera:t.camera}),this.#Gi.push(t),this.#ps(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.$e=s.crossfadeDuration),s?.embedFadeDuration&&(this.oe=s.embedFadeDuration),void 0!==s?.dragElasticity&&(this.Mi=s.dragElasticity),s?.skipBaseLevels&&(this.le=s.skipBaseLevels),s?.omni&&(d.vs=-(s.omni.distance??0),d.gs=s.omni.fieldOfView??0,d.Ms=s.omni.verticalAngle??0,d.ws=s.omni.offsetX??0,t.state.view.set([0,0,1,1])),this.micrio.hasAttribute("data-limited")&&t.canvas&&(t.canvas.ce=1),d.Ke(),this.Ie>0&&this.#ms(this.Ie-1);const p=R(t.state.view)||s.view;!p||0==p[0]&&0==p[1]&&1==p[2]&&1==p[3]?!r&&i.is360||!o||"0.5,0.5"==o.toString()||(d.camera.setCoo(o[0],o[1],0),s.focus=void 0):d.D(p[0]+p[2]/2,p[1]+p[3]/2,p[2],p[3],0,0,0,0),t.video.subscribe(t=>t&&t.addEventListener("play",this.render)),t.Ot&&t.visible.set(1),this.#ns(t)}#ps(t){const i=this.#hs.get(t).canvas;t.camera.$(i)}#ns(t){if(t&&(!t.rt||t!==this.#es?.micrioImage)&&!this.sh)if(t.rt){if(t!==this.#es?.micrioImage){const i=this.#hs.get(t);if(!i)return;if(i.canvas.ps)return;const s=t.A&&this.#es?this.#es.canvas.F.q:0;if(this.#es=i,t.A&&!this.eh){const e=(this.De+.5)%1*Math.PI*2;i.canvas.J(e-t.camera.rotationY,s,1)}0===i.canvas.Te&&i.canvas.Fe(),t.$settings.omni?.layerStartIndex&&t.state.layer.set(t.$settings.omni.layerStartIndex),this.eh=0,this.ready=1,this.render()}}else{if(!R(this.micrio.current)||!t.$info.isIIIF&&t.$info.id!=R(this.micrio.current).id)return;this.#ds(t),t.Bt.length&&t.Bt.forEach(i=>this.qt(i,t))}}yh(t){t.rt||this.#ds(t)}_h(t){if(!t.rt)throw new Error("Canvas is not placed yet");const i=this.#hs.get(t);i&&(i.canvas.ih(),this.#hs.delete(t),this.render())}render(){this.sh||0>this.#is&&(this.#is=this.micrio.jt.bh.requestAnimationFrame(this.#fs))}#fs=(t=performance.now())=>{if(this.micrio.isConnected&&this.micrio.$current&&!this.sh){this.#is=-1,this.#ss=0,(this.Ne(t)||this.micrio.kh||this.micrio.events.isNavigating||0==this.micrio.$current?.Ct?.paused)&&this.render(),this.#ts&&this.#as(),this.#Ri.clear();for(let t=0;t<this.Pe.length;t++)this.Pe[t].Xe();this.micrio.events.Pt("draw"),this.#gs(),this.micrio.jt.xh()}};Ne(t){this.he=1e3/Math.min(33,t-this.now),this.now=t,this.Ge=0,this.Ye=0,this.Re=0;for(let i=0;i<this.Pe.length;i++)this.Pe[i].Ne();return this.Re||1>this.He}#cs(){0>this.#is||(this.micrio.jt.bh.cancelAnimationFrame(this.#is),this.#is=-1)}#rs(t){let i=this.#Wi.get(t);return i||(i={uh:0,Vt:0},this.#Wi.set(t,i)),i}#ms(t){this.#rs(t).Vt=1,this.#Hi.push(t)}#as(){this.#ss||(this.micrio.jt.Th(),this.#ss=1)}ph(t,i,s,e={}){if(this.#Wi.get(t)?.dh||this.#Ui.has(t)||!e.force&&$t()>=Pt)return;const h=bt.db.has(i);h||this.micrio.Mh.set(1),this.#Ui.set(t,i),(h?bt.Kt(i):(t=>new Promise((i,s)=>{Ct.push([t,i,s]),Lt()}))(i)).then(i=>this.#vs(t,i,s,e.noSmoothing)).catch(()=>this.#ws(t))}#vs(t,i,s,e){const h=this.#rs(t);h.dh=this.micrio.jt.ph(i,h.dh,e),void 0!==self.ImageBitmap&&i instanceof ImageBitmap&&i.close instanceof Function&&i.close(),h.uh=2,h.wh=setTimeout(()=>{this.#ws(t)},s?150:50)}#ws(t){this.#Ui.delete(t);const i=this.#Wi.get(t);i?.wh&&(clearTimeout(i.wh),i.wh=void 0),this.#Ui.size||this.micrio.Mh.set(0)}#ls(t){const i=this.#Wi.get(t);i&&(i.dh&&(this.micrio.jt.gl.deleteTexture(i.dh),i.dh=void 0),i.wh&&clearTimeout(i.wh),this.#Wi.delete(t))}#Ms(t){for(let i=0;i<this.Pe.length;i++)if(this.Pe[i].Qe(t))return 1;return 0}#gs(){const t=performance.now();for(const s of this.#Xi){if(this.#Ri.has(s))continue;if(this.#Hi.includes(s))continue;const i=this.#Wi.get(s);if(i&&0!==i.uh)switch(i.Vt=0,i.uh){case 1:const e=this.#Ui.get(s);e&&Dt(e),i.uh=0;break;case 2:this.#Ui.has(s)&&this.#ws(s),this.#ls(s);break;case 3:i.rh||(i.rh=t)}}const i=this.#Xi;this.#Xi=this.#ji,this.#ji=i,this.#ji.clear();for(const s of this.#Ri)this.#Xi.add(s);for(const[s,e]of this.#Wi.entries())e.rh&&(t-e.rh)/1e3>this.#Zi&&(this.#Ms(s)?e.rh=t:this.#ls(s))}_e(t){this.el.set(t.width,t.height,t.left,t.top,t.ratio,t.scale,t.portrait);for(let i=0;i<this.Pe.length;i++)this.Pe[i]._e();this.ready&&(this.#cs(),this.#fs())}#ys=(t,i,s=0,e=1,h)=>{this.sh||(this.#Gi.push(t),this.#_s(t,i,s,e,h))};#_s=(t,i,s,e,h)=>{const o="$info"in t?t.$info:i.$info;if(!o)return;const n=t.opts.area??[0,0,1,1],r=t instanceof _t?t.$settings.l??{}:{},a=this.#hs.get(i);if(!a)return;let c;if(s){const i=a.canvas.Ee(n[0],n[1],n[0]+n[2],n[1]+n[3],o.width,o.height,o.tileSize??1024,o.isSingle??0,o.isDeepZoom??0,o.isVideo??0,e,r.rotX??0,r.rotY??0,r.rotZ??0,r.scale??1,h??0);return this.#Ji.set(i,t),this.#Ki.set(t,i),t.rt=1,this.#os({canvas:a.canvas,micrioImage:t}),t.Lt=this.Ie-1,void this.#ms(t.Lt)}{if(!(t instanceof _t))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.Ce(n[0],n[1],n[0]+n[2],n[1]+n[3],o.width,o.height,s),c.xe=t}if(t.rt=1,this.#os({canvas:c,micrioImage:t,camera:t.camera}),!s){this.#ps(t);const i=t.$settings.focus;i?c.camera.setCoo(i[0],i[1],0):c.ps&&c.D(c.view.ti,c.view.ii,c.view.width,c.view.height,0,0),c.Ke()}t.Lt=this.Ie-1,this.#ms(t.Lt)};qt(t,i,s={}){this.sh||t.rt||this.#ys(t,i,1,s.opacity??1,"camera"in t&&s.asImage?void 0:s.fromScale)}Ce=(t,i)=>this.#ys(t,i);Ph(t,i,s=0){const e=this.#hs.get(t),h=e?.canvas;if(h){if(e.camera)h.Te=i;else{const t=h.images;for(let e=0;e<t.length;e++){const h=t[e];h.ct>0&&(h.Ws=i,s&&(h.opacity=i))}}this.render()}}Sh(t,i){const s=this.#Ki.get(t);s&&(s.Xs=i)}#us(){for(let t=0;t<this.Pe.length;t++)this.Pe[t].th()}ih(t){for(let i=0;i<this.Pe.length;i++)if(this.Pe[i]===t)return void this.Pe.splice(i,1)}},Jt=new Float32Array([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]),Kt=["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);","}"].join(""),Qt=class{Eh;#bs;#ks;#xs;#Ts;#Ps;#Ss;#Es;constructor(t,i,s){if(this.#Es=t,this.#xs=t.createProgram(),i.jt.Ih(this.#xs,t.VERTEX_SHADER,Kt),i.jt.Ih(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.#Ps=t.getAttribLocation(this.#xs,"a_texCoord"),this.#Ss=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.#Es.drawingBufferWidth,this.#Es.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.Eh=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.Eh),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,Jt,t.STATIC_DRAW)}Ch(){const t=this.#Es;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.#Ps),t.vertexAttribPointer(this.#Ps,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.#Ss,performance.now()/1e3),t.drawArrays(t.TRIANGLE_STRIP,0,4)}_e(){const t=this.#Es;t.bindTexture(t.TEXTURE_2D,this.#bs),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.#Es.drawingBufferWidth,this.#Es.drawingBufferHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null)}zh(){const t=this.#Es;t.deleteFramebuffer(this.Eh),t.deleteTexture(this.#bs),t.deleteBuffer(this.#ks),t.deleteProgram(this.#xs)}},ti=xt.firefox,ii=["uniform mat4 GLMatrix;","attribute vec3 pos;","attribute vec2 aTextureCoord;","varying highp vec2 vTextureCoord;","void main()","{","gl_Position = GLMatrix * vec4(pos, 1.0);","vTextureCoord = aTextureCoord;","}"].join(""),si=["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 {",...ti?["vec4 textureColor = texture2D(uSampler, vTextureCoord);","float newAlpha = min(1., textureColor.a * opacity);","gl_FragColor = vec4(textureColor.rgb * newAlpha, newAlpha);"]:["gl_FragColor = texture2D(uSampler, vTextureCoord) * opacity;"],"}","}"].join(""),ei=256,hi=class{gl;bh=self;#xs;#Is;#Cs;je;#zs=-1;#Ls;#As;#$s;#Ds=null;#Os=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]);#Ns=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);#Bs=.075;#Gs=-1;#Ys=0;#Hs=-1;#Rs=-1;Lh;#Xs;constructor(t){this.#Xs=t}Ah(){const t="WebGL2RenderingContext"in window,i=this.#Xs.canvas.element.getContext(t?"webgl2":"webgl",{alpha:1,preserveDrawingBuffer:this.#Xs.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 _("WebGL context creation failed",{code:r,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.#Xs.$current?.$settings.postProcessingFragmentShader;s&&(this.Lh=new Qt(i,this.#Xs,s),this.#Xs.kh=1);const e=i.createProgram();if(!(e instanceof WebGLProgram))throw new _("Failed to create WebGL program",{code:c,displayMessage:"There was a problem initializing the graphics. Please try refreshing the page."});if(this.#xs=e,this.Ih(this.#xs,i.VERTEX_SHADER,ii),this.Ih(this.#xs,i.FRAGMENT_SHADER,si),i.linkProgram(this.#xs),!i.getProgramParameter(this.#xs,i.LINK_STATUS))throw new _("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 h=i.getUniformLocation(this.#xs,"opacity");if(!h)throw new _("Failed to bind WebGL opacity uniform",{code:c});this.#Is=h;const o=i.getUniformLocation(this.#xs,"GLMatrix");if(!o)throw new _("Failed to bind WebGL matrix uniform",{code:c});this.je=o;const n=i.getUniformLocation(this.#xs,"noTexture");if(!n)throw new _("Failed to bind WebGL texture uniform",{code:c});this.#Cs=n,this.#zs=i.getAttribLocation(this.#xs,"aTextureCoord");const a=i.createBuffer();if(!a)throw new _("Failed to create WebGL texture buffer",{code:l,displayMessage:"Your device is low on memory. Try closing other browser tabs or applications."});this.#Ls=a,i.bindBuffer(i.ARRAY_BUFFER,this.#Ls),i.bufferData(i.ARRAY_BUFFER,qt.hh,i.STATIC_DRAW);const u=i.createBuffer();if(!u)throw new _("Failed to create WebGL watermark buffer",{code:l,displayMessage:"Your device is low on memory. Try closing other browser tabs or applications."});this.#$s=u;const d=i.createBuffer();if(!d)throw new _("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.#Gs=i.getAttribLocation(this.#xs,"pos"),this.#js(),i.activeTexture(i.TEXTURE0),i.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}#js(){const t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.bufferData(t.ARRAY_BUFFER,this.#Xs.$h.ke.byteLength,t.DYNAMIC_DRAW),t.enableVertexAttribArray(this.#zs),t.bindBuffer(t.ARRAY_BUFFER,this.#Ls),t.vertexAttribPointer(this.#zs,2,t.FLOAT,0,0,0),t.enableVertexAttribArray(this.#Gs),t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.vertexAttribPointer(this.#Gs,3,t.FLOAT,0,0,0)}zh(t=0){const i=this.gl;if(i){if(i.bindBuffer(i.ARRAY_BUFFER,null),i.bindTexture(i.TEXTURE_2D,null),i.deleteBuffer(this.#Ls),i.deleteBuffer(this.#As),i.deleteBuffer(this.#$s),i.deleteProgram(this.#xs),this.Lh?.zh(),this.#Ds&&i.deleteTexture(this.#Ds),t){const t=i.getExtension("WEBGL_lose_context");t instanceof Object&&t.loseContext instanceof Function&&t.loseContext()}this.gl=null}}Ih(t,i,s){const e=this.gl.createShader(i);if(!e)throw new Error(`Could not create WebGL shader (type: ${i})`);if(this.gl.shaderSource(e,s),this.gl.compileShader(e),!this.gl.getShaderParameter(e,this.gl.COMPILE_STATUS))throw this.gl.deleteProgram(t),new _("Shader compilation failed: "+this.gl.getShaderInfoLog(e),{code:c,displayMessage:"There was a problem initializing the graphics. Please try refreshing the page."});this.gl.attachShader(t,e),this.gl.deleteShader(e)}ph(t,i,s){const e=this.gl,h=i??e.createTexture();if(!h)throw new Error("Could not create WebGL texture");return e.bindTexture(e.TEXTURE_2D,h),t&&e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,s?e.NEAREST:e.LINEAR),h}mh(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)}Th(){const t=this.gl;this.Lh&&t.bindFramebuffer(t.FRAMEBUFFER,this.Lh.Eh),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}xh(){this.Lh&&(this.Lh.Ch(),this.gl.useProgram(this.#xs),this.#js()),this.#Ds&&this.#Ws()}We(t,i=1,s=0){const e=this.gl,h=t?0:1;h!==this.#Hs&&(e.uniform1i(this.#Cs,h),this.#Hs=h),i!==this.#Rs&&(e.uniform1f(this.#Is,i),this.#Rs=i),t&&e.bindTexture(e.TEXTURE_2D,t);const o=s?1536:6;s!=this.#Ys&&(e.bindBuffer(e.ARRAY_BUFFER,this.#Ls),e.bufferData(e.ARRAY_BUFFER,s?qt.oh:qt.hh,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,this.#As),this.#Ys=s),e.bufferSubData(e.ARRAY_BUFFER,0,s?this.#Xs.$h.ke:this.#Xs.$h.pe),e.drawArrays(e.TRIANGLES,0,o)}Xt(t,i){if(!this.gl)return;if(t===this.#Os)return;this.#Os=t;const s=new Image;i&&(this.#Bs=i),s.crossOrigin="anonymous",s.src=t,s.onload=()=>{const t=pt("canvas",{props:{width:ei,height:ei}}),i=t.getContext("2d");if(!i)return;const e=Math.min(96/s.width,64/s.height),h=s.width*e,o=s.height*e;i.drawImage(s,(ei-h)/2,(ei-o)/2,h,o),this.#Ds&&this.gl.deleteTexture(this.#Ds),this.#Ds=this.ph(t);const n=this.gl;n.bindTexture(n.TEXTURE_2D,this.#Ds),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.REPEAT),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.REPEAT),n.bindTexture(n.TEXTURE_2D,null),this.#Xs.$h.render()}}#Ws(){const t=this.gl;if(!this.#Ds)return;t.useProgram(this.#xs),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.uniformMatrix4fv(this.je,0,this.#Ns),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.#Ds),t.uniform1i(this.#Cs,0),t.uniform1f(this.#Is,this.#Bs),this.#Hs=0,this.#Rs=this.#Bs;const i=t.drawingBufferWidth/ei,s=t.drawingBufferHeight/ei,e=this.#Vs;e[1]=s,e[2]=i,e[3]=s,e[8]=i,e[9]=s,e[10]=i,t.bindBuffer(t.ARRAY_BUFFER,this.#As),t.bufferData(t.ARRAY_BUFFER,this.#Fs,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#Gs,3,t.FLOAT,0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this.#$s),t.bufferData(t.ARRAY_BUFFER,this.#Vs,t.DYNAMIC_DRAW),t.vertexAttribPointer(this.#zs,2,t.FLOAT,0,0,0),t.drawArrays(t.TRIANGLES,0,6),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.#js(),this.#Ys=0}},oi=class{element=pt("canvas");#Us;viewport={width:0,height:0,left:0,top:0,ratio:0,scale:0,portrait:0};isMobile=H(0);get $isMobile(){return R(this.isMobile)}#Xs;constructor(t){this.#Xs=t,this.element.className="micrio",this.onresize=this.onresize.bind(this),self.ResizeObserver&&(this.#Us=new self.ResizeObserver(this.onresize))}place(){if(this.element.parentNode)return;const t=this.#Xs.querySelector("img.preview");this.#Xs.insertBefore(this.element,t?t.nextSibling:this.#Xs.firstChild)}hook(){this.onresize(),this.#Us?this.#Us.observe(this.element):window.addEventListener("resize",this.onresize)}unhook(){this.#Us?this.#Us.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 e=self.getComputedStyle(this.element),h=parseFloat(e.width);isNaN(h)||(s=parseFloat(e.height)*i/Math.max(1,h));const o=this.#Xs.hasAttribute("data-static")?1:Math.floor(i)/this.#Xs.offsetWidth;i/=o,s/=o;const n=1!=o?1:this.getRatio(),r=this.viewport;r.width==i&&r.height==s&&r.ratio==n&&r.scale==o||(r.width=i,r.height=s,r.ratio=n,r.scale=o,r.top=t.top,r.left=t.left,r.portrait=window.matchMedia("(orientation: portrait)")?.matches??s>i,this.#Xs.jt.gl&&(this.element.width=i*n,this.element.height=s*n,this.#Xs.jt.gl.viewport(0,0,r.width*r.ratio,r.height*r.ratio),this.#Xs.jt.Lh?._e(),this.#Xs.$h._e(r)),this.#Xs.events.Pt("resize",t),this.isMobile.set(/mobile/i.test(navigator.userAgent)))}getRatio=(t=this.#Xs.$current?.$settings??{})=>!xt.iOS&&!t?.noRetina&&self.devicePixelRatio&&Math.max(1,Math.min(2,self.devicePixelRatio))||1;setMargins(t,i){this.#Xs.$h.ready&&(this.#Xs.$h.el.mi=t,this.#Xs.$h.el.fi=i)}},ni={passive:1},ri={passive:1,capture:1},ai={passive:0};function ci(t){t.stopPropagation(),t.preventDefault()}var li=class{#Zs=0;#qs;constructor(t){this.#qs=t}hook(){this.#Zs||(this.#Zs=1,this.#qs.Dh.addEventListener("dragstart",ci),this.#qs.Dh.addEventListener("pointerdown",this.start,ni),self.addEventListener("pointercancel",this.#Js,ni),this.#qs.Dh.setAttribute("data-hooked",""))}unhook(){this.#Zs&&(this.#Zs=0,this.#qs.Dh.removeEventListener("pointerdown",this.start,ni),this.#qs.Dh.removeEventListener("dragstart",ci),self.removeEventListener("pointercancel",this.#Js,ni),this.#qs.Dh.removeAttribute("data-hooked"))}start=(t,i=0,s=0)=>{if(0!=t.button||"touch"==t.pointerType&&this.#qs.Oh)return;if(!(i||t.target==this.#qs.Fh||t.target instanceof Element&&t.target.closest("[data-scroll-through]")))return;if(this.#qs.Dh.$current?.$t&&t.shiftKey)return;if(this.#qs.Vh)return;if(this.#qs.Nh)return void(t instanceof TouchEvent&&t.touches.length>1&&this.stop());const e=this.#qs.Kt({x:t.clientX,y:t.clientY});e&&(this.#qs.Nh=1,this.#qs.Gh.Bh.As=[t.clientX,t.clientY,performance.now()],this.#qs.Gh.Bh.Yh=e,this.#qs.Dh.addEventListener("pointermove",this.#Ks,ni),this.#qs.Dh.addEventListener("pointerup",this.stop,ni),this.#qs.Dh.setAttribute("data-panning",""),e.canvas?.Ji.stop(),s||e.camera.stop(),this.#qs.Dh.$h.render(),this.#qs.Pt("panstart"))};#Ks=t=>{const i=t.clientX,s=t.clientY,e=Math.hypot(this.#qs.Gh.Bh.As[0]-t.clientX,this.#qs.Gh.Bh.As[1]-t.clientY);!this.#qs.Hh&&e>10&&(this.#qs.Hh=t.pointerId,this.#qs.Dh.setPointerCapture(t.pointerId)),this.#qs.Gh.Bh.Rh&&this.#qs.Gh.Bh.Yh?.camera.pan(this.#qs.Gh.Bh.Rh[0]-i,this.#qs.Gh.Bh.Rh[1]-s),this.#qs.Gh.Bh.Rh=[i,s]};stop=(t,i=0,s=0)=>{if(this.#qs.Nh){if(this.#qs.Nh=0,this.#qs.Gh.Bh.Rh=void 0,this.#qs.Dh.removeEventListener("pointermove",this.#Ks,ni),this.#qs.Dh.removeEventListener("pointerup",this.stop,ni),this.#qs.Hh&&this.#qs.Dh.releasePointerCapture(this.#qs.Hh),this.#qs.Hh=void 0,this.#qs.Dh.removeAttribute("data-panning"),t&&0==i){const i=this.#qs.Gh.Bh.Yh??this.#qs.Kt({x:t.clientX,y:t.clientY});i&&(i.canvas?.Ji.start(),this.#qs.Dh.$h.render())}this.#qs.Gh.Bh.Yh=void 0,s||this.#qs.Pt("panend",t?{duration:performance.now()-this.#qs.Gh.Bh.As[2],movedX:t.clientX-this.#qs.Gh.Bh.As[0],movedY:t.clientY-this.#qs.Gh.Bh.As[1]}:void 0)}};#Js=t=>{this.#qs.Nh&&(void 0!==this.#qs.Hh&&t.pointerId!==this.#qs.Hh||this.stop(void 0,1,1))}};function ui(t,i){t.Gh.qi.Xh=t.Nh,i.stop(void 0,0,1),t.Vh=1,t.Dh.setAttribute("data-pinching",""),t.jh=void 0,t.Gh.qi.Yh&&t.Gh.qi.Yh.canvas?.camera.Qi(),t.Dh.$h.render(),t.Pt("pinchstart"),t.Oh&&t.Pt("panstart")}function di(t,i,s){const e=t.Gh.qi,h=e.Yh;h&&(t.jh=Math.hypot(i.x-s.x,i.y-s.y)/e.Wh,h.canvas?.camera.qi(i.x,i.y,s.x,s.y))}function pi(t,i,s){if(!t.Vh)return;t.Vh=0,self.removeEventListener("touchmove",s,{passive:1,capture:1}),self.removeEventListener("pointermove",s,{passive:1,capture:1}),t.Dh.removeAttribute("data-pinching");const e=t.Gh.qi.Yh;e&&(e.canvas?.camera.ts(),t.Dh.$h.render()),t.Gh.qi.Yh=void 0,t.jh=void 0,t.Pt("pinchend"),t.Oh&&!t.Gh.qi.Xh&&t.Pt("panend")}function mi(t,i,s){if(s instanceof TouchList?1===s.length:1===s.size){let e;if(s instanceof TouchList){const i=s[0];e={button:0,target:t.Fh,clientX:i.clientX,clientY:i.clientY}}else{const[i,{x:h,y:o}]=s.entries().next().value;e={button:0,pointerType:"touch",target:t.Fh,clientX:h,clientY:o,pointerId:i}}i.start(e,1,1)}}var fi=class{#qs;#Qs;constructor(t,i){this.#qs=t,this.#Qs=i}hook(){xt.iOS&&this.#qs.Uh&&this.#qs.Dh.addEventListener("touchstart",this.start,ni)}unhook(){xt.iOS&&this.#qs.Uh&&this.#qs.Dh.removeEventListener("touchstart",this.start,ni),self.removeEventListener("touchmove",this.#Ks,ri),self.removeEventListener("touchend",this.stop,ri)}start=t=>{if(!(xt.hasTouch&&t instanceof TouchEvent))return;if(this.#qs.Oh&&2>t.touches.length)return;if(this.#qs.Vh||2!=t.touches.length)return void this.stop(t);t.stopPropagation();const i=t.touches;this.#qs.Gh.qi.Yh=this.#qs.Kt({x:i[0].clientX,y:i[0].clientY}),this.#qs.Gh.qi.Wh=Math.hypot(i[0].clientX-i[1].clientX,i[0].clientY-i[1].clientY),self.addEventListener("touchmove",this.#Ks,ri),self.addEventListener("touchend",this.stop,ri),ui(this.#qs,this.#Qs)};#Ks=t=>{if(!(xt.hasTouch&&t instanceof TouchEvent))return;const i=t.touches;if(2>i?.length)return;const s={x:i[0].clientX,y:i[0].clientY},e={x:i[1].clientX,y:i[1].clientY};di(this.#qs,s,e)};stop=t=>{pi(this.#qs,0,this.#Ks),t instanceof TouchEvent&&mi(this.#qs,this.#Qs,t.touches)}},gi=class{#qs;#Qs;constructor(t,i){this.#qs=t,this.#Qs=i}hook(){this.#qs.Dh.addEventListener("pointerdown",this.start,ni),self.addEventListener("pointerup",this.end,ni),self.addEventListener("pointercancel",this.end,ni)}unhook(){this.#qs.Dh.removeEventListener("pointerdown",this.start,ni),self.removeEventListener("pointerup",this.end,ni),self.removeEventListener("pointercancel",this.end,ni),self.removeEventListener("pointermove",this.#Ks,ri),this.#qs.Zh.clear()}start=t=>{if("touch"===t.pointerType&&t.target==this.#qs.Fh&&(this.#qs.Zh.set(t.pointerId,{x:t.clientX,y:t.clientY}),2===this.#qs.Zh.size&&!this.#qs.Vh)){const t=Array.from(this.#qs.Zh.values()),i=t[0],s=t[1];this.#qs.Gh.qi.Yh=this.#qs.Kt({x:i.x,y:i.y}),this.#qs.Gh.qi.Wh=Math.hypot(i.x-s.x,i.y-s.y),self.addEventListener("pointermove",this.#Ks,ri),ui(this.#qs,this.#Qs)}};#Ks=t=>{if("touch"!==t.pointerType)return;if(!this.#qs.Zh.has(t.pointerId))return;if(this.#qs.Zh.set(t.pointerId,{x:t.clientX,y:t.clientY}),!this.#qs.Vh||2!==this.#qs.Zh.size)return;const i=Array.from(this.#qs.Zh.values()),s={x:i[0].x,y:i[0].y},e={x:i[1].x,y:i[1].y};di(this.#qs,s,e)};end=t=>{"touch"===t.pointerType&&(this.#qs.Zh.delete(t.pointerId),this.#qs.Vh&&2>this.#qs.Zh.size&&(self.removeEventListener("pointermove",this.#Ks,ri),pi(this.#qs,0,this.#Ks),mi(this.#qs,this.#Qs,this.#qs.Zh)))}},vi=class{#qs;constructor(t){this.#qs=t}hook(){xt.OSX&&(this.#qs.Dh.addEventListener("gesturestart",this.#te,ai),this.#qs.Dh.addEventListener("gesturechange",this.#te,ai),this.#qs.Dh.addEventListener("gestureend",this.#te,ai))}unhook(){xt.OSX&&(this.#qs.Dh.removeEventListener("gesturestart",this.#te,ai),this.#qs.Dh.removeEventListener("gesturechange",this.#te,ai),this.#qs.Dh.removeEventListener("gestureend",this.#te,ai))}#ie(t){if("scale"in t&&"number"==typeof t.scale){const i=t;return{scale:i.scale,clientX:i.clientX,clientY:i.clientY}}return null}#te=t=>{const i=this.#ie(t);if(!i||1===i.scale)return;if(t.target instanceof Element&&t.target!=this.#qs.Fh)return;const s=this.#qs.qh-i.scale;this.#qs.qh=i.scale,t.stopPropagation(),t.preventDefault(),"gesturechange"==t.type&&this.#qs.Kt({x:i.clientX,y:i.clientY})?.camera.zoom(s*this.#qs.Dh.canvas.viewport.height,0,i.clientX,i.clientY)}},wi=class{hooked=0;#se=-1;#qs;constructor(t){this.#qs=t}hook(){this.hooked||(this.#qs.Dh.addEventListener("wheel",this.handle,ai),this.hooked=1)}unhook(){this.#qs.Dh.removeEventListener("wheel",this.handle,ai),this.hooked=0}handle=(t,i=0,s=0)=>{if(!(t instanceof WheelEvent))return;if(this.#qs.Jh&&!t.ctrlKey)return;if(!i&&t.target instanceof Element&&t.target!=this.#qs.Fh&&!t.target.classList.contains("marker")&&!t.target.closest("[data-scroll-through]"))return;let e=t.deltaY;t.ctrlKey&&(this.#qs.Kh=1);const h=this.#qs.Jh&&10*e%1==0,o=this.#qs.Kh&&!h,n=xt.firefox||t.ctrlKey||!o;if(this.#qs.Oh&&this.#qs.Dh.$current?.camera.isZoomedOut())return;t.stopPropagation(),t.preventDefault(),(xt.OSX||o)&&t.ctrlKey&&(e*=10);const r={x:t.clientX,y:t.clientY},a=this.#qs.Kt(r);if(a){if(n){const t=this.#qs.Dh.canvas.viewport;let i=0;const h=this.#qs.Dh.getBoundingClientRect();a.camera.zoom(1*e/Math.sqrt(t.scale),0,r.x-s-h.left,r.y-h.top-i)}else a.camera.pan(t.deltaX,t.deltaY);this.#qs.Qh=1,clearTimeout(this.#se),this.#se=setTimeout(this.#ee,50)}};#ee=()=>{this.#qs.Qh=0}},Mi=Symbol("micrio-provides"),yi=class extends HTMLElement{static tag;static io=new Map;#he=[];#oe=null;so={};connectedCallback(){this.eo?.(),this.Ch?.()}disconnectedCallback(){this.ho?.(),this.#gs()}xt(t){Object.assign(this.so,t),this.isConnected&&this.Ch()}Ch(){}oo(t){this.#he.push(t)}no(t){return t===this.#oe?(this.ro?.(),0):(this.#oe=t,1)}ao(t,i,s){let e=i;s?.skipFirst&&(e=W(i)),s?.defer&&(e=j(i)),this.oo(t.subscribe(e))}co(t,i){this.ao(t,i,{skipFirst:1})}lo(t,i){this.ao(t,i,{skipFirst:1,defer:1})}uo(t,i){this.oo(t.subscribe(i))}do(t,i){let s=this[Mi];s||(this[Mi]=s=new Map),s.set(t,i)}po(t){let i=this;for(;i;){const s=i[Mi];if(s?.has(t))return s.get(t);i=i.parentElement}}mo(){return this.po("micrio")}#gs(){for(const t of this.#he)t();this.#he=[]}},_i={0:[0,-.5,1,.5],90:[1,0,.5,1],180:[0,1,1,.5],270:[-.5,0,.5,1]},bi={0:[0,-1,1,1],90:[1,0,1,1],180:[0,1,1,1],270:[-1,0,1,1]},ki={0:[0,1,1,1],90:[-1,0,1,1],180:[0,-1,1,1],270:[1,0,1,1]},xi={ArrowLeft:"left",ArrowRight:"right",ArrowUp:"up",ArrowDown:"down"},Ti=class extends yi{static tag="micrio-button";#ne;#re;ro(){const t=this.so;t.type!==this.#re&&(this.#re&&this.classList.remove(this.#re),t.type&&this.classList.add(t.type),this.#re=t.type)}Ch(){const t=this.so,i=`${t.type}|${t.icon?.src??""}|${t.title??""}|${t.disabled??""}|${t.active??""}|${t.className??""}|${t.href??""}|${t.blankTarget??""}|${t.noClick??""}`;if(!this.no(i))return;const s=!!t.href,e=s?"a":"button",h=`${t.className?t.className+" ":""}${t.active?"active":""}${t.noClick?" no-click":""}`.trim();this.#re&&this.classList.remove(this.#re),t.type&&this.classList.add(t.type),this.#re=t.type,this.#ne&&this.#ne.remove();const o={title:t.title??"","aria-label":t.title??""};s&&(o.href=t.href,t.blankTarget&&(o.target="_blank"));const n=pt(e,{className:h,attrs:o,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.#ne=n,t.type?pt("micrio-icon",{setProps:{name:t.type},parent:n}):t.icon&&pt("img",{props:{src:t.icon.src,alt:"Icon"},parent:n});const r=[];for(const c of this.childNodes)c===n||c.nodeType!==Node.TEXT_NODE&&c.nodeType!==Node.ELEMENT_NODE||(r.push(c.textContent??""),c.remove());const a=r.join("").trim();a&&pt("span",{textContent:a,parent:n})}};customElements.define(Ti.tag,Ti);var Pi=(t=>(t[t.focus=0]="focus",t[t.flyTo=1]="flyTo",t[t.focusWithTagged=2]="focusWithTagged",t[t.focusTagged=3]="focusTagged",t[t.reset=4]="reset",t[t.back=5]="back",t[t.switchToGrid=6]="switchToGrid",t[t.filterTourImages=7]="filterTourImages",t[t.nextFadeDuration=8]="nextFadeDuration",t))({}),Si=new WeakMap;function Ei(t,i,s,e){"string"==typeof i&&(i=Pi[i]);const h=i+(s??"");if(t.fo==h)return;const o=(t=>{let i=Si.get(t);return i||(i={[Pi.focus](i,s){const e=i?.split("|").map(t=>t.trim()),h=(e?.[0]??"").split(",").map(i=>t.vo.get(i.trim())).filter(t=>void 0!==t);1==h.length?t.gridFocus(h[0],{duration:s}):h.length>0&&t.set(h.map(t=>({id:t.id,size:[1]})),{duration:s,horizontal:"h"==e?.[1]})},[Pi.flyTo](i,s){const e=i?.split(",").map(i=>t.wo.find(t=>t.id==i?.trim()));if(e?.length){const i=e.map(t=>t?.opts.area?.[0]??0),h=e.map(t=>t?.opts.area?.[1]??0),o=Math.max(...e.map(t=>(t?.opts.area?.[0]??0)+(t?.opts.area?.[2]??1))),n=Math.max(...e.map(t=>(t?.opts.area?.[1]??0)+(t?.opts.area?.[3]??1))),r=Math.min(...i),a=Math.min(...h);t.image.camera.flyToView([r,a,o-r,n-a],{duration:s?1e3*s:void 0}).catch(()=>{})}else console.warn("Given image IDs gave no current displayed images")},[Pi.focusTagged](i,s){t.Mo(i,s)},[Pi.focusWithTagged](i,s){t.Mo(i,s,1)},[Pi.reset](i,s){t.reset(s)},[Pi.back](i,s){t.back(s)},[Pi.switchToGrid](){(t=>{const i=t.$focussed;if(!i)return;const s=i.camera.getView();s&&t.reset(0,1).then(()=>{i.opts.area&&t.image.camera.setView(i.opts.area,{noLimit:1}),i.camera.setView(s,{noLimit:1}),t.micrio.current.set(t.image)})})(t)},[Pi.nextFadeDuration](i){t.yo=Number(i)},[Pi.filterTourImages](i,s){const e=R(t.micrio.state.tour);if(!e||!("steps"in e)||!e.stepInfo)return;const h=e.stepInfo.map(t=>t.micrioId),o=h.filter((t,i)=>h.indexOf(t)==i).map(i=>t.vo.get(i)).filter(t=>!!t);o.length&&t.set(o.map(t=>({id:t.id,size:[1]})),{duration:s,horizontal:"h"==i})}},Si.set(t,i)),i})(t)[i];o?o(s,e):console.warn("Warning: unknown grid tour event",i),t.fo=h}var Ii=class extends yi{static tag="micrio-grid";_o=[];vo=new Map;wo=[];bo=new Map;ko=0;xo="grid";To=H();get $focussed(){return R(this.To)}Po=H([]);#ae=[];#ce=H(0);So=1;#le=.5;#ue=.5;yo;#de=0;#pe=new Map;#me=new Map;fo;#fe;#ge;#ve;#we=0;#Me="ease";#ye;static Eo=0;micrio;image;#_e;#pt=0;eo(){if(this.#pt)return;this.#pt=1;const t=this.so;this.micrio=t.micrio,this.image=t.image,this.#_e=t.gallery,this.#_e._o.forEach(t=>this.#be(t));const i=this.image.$settings?.grid;this.ko=i?.clickable&&["focus","zoom"].includes(i.clickable)?i.clickable:0,this.xo="cells"==i?.panZoom?"cells":"grid",this.ko&&this.image.$settings.hookKeys&&(t=>{if(Ii.Eo=1,document.addEventListener("keydown",(t=>i=>{if(!t.wo.length||!t.ko)return;if("Escape"==i.key)return t.bo.forEach(t=>t.classList.remove("focussed")),void(t.$focussed?(t.back(),i.preventDefault(),i.stopPropagation()):t.image.camera.isZoomedOut()||(t.reset(),i.preventDefault(),i.stopPropagation()));const s=xi[i.key];if(!s||t.$focussed)return;i.preventDefault(),i.stopPropagation();const e=((t,i)=>{const s=t.wo.map((t,i)=>({img:t,i:i,cx:t.opts.area[0]+t.opts.area[2]/2,cy:t.opts.area[1]+t.opts.area[3]/2}));if(!s.length)return;let e=s.findIndex(i=>i.img.id==t.querySelector(":focus")?.getAttribute("data-id"));0>e&&(e=0);const h=s[e],o=.05;let n;for(const r of s){if(r.i===e)continue;const t=r.cx-h.cx,s=r.cy-h.cy;let a=0;switch(i){case"left":a=0>t&&Math.abs(s)<o;break;case"right":a=t>0&&Math.abs(s)<o;break;case"up":a=0>s&&Math.abs(t)<o;break;case"down":a=s>0&&Math.abs(t)<o}if(!a)continue;const c=Math.abs(t)+Math.abs(s);n&&c>=n.dist||(n={img:r.img,dist:c})}return n?n.img:s["right"==i||"down"==i?0:s.length-1].img})(t,s);if(!e)return;const h=e.id;t.bo.forEach((t,i)=>{i===h?(t.focus(),t.classList.add("focussed")):(t.blur(),t.classList.remove("focussed"))}),"zoom"!=t.ko||t.image.camera.isZoomedOut()||t.image.camera.flyToView(e.opts.area??[0,0,1,1],{duration:1e3*t.So,limit:0})})(t)),"grid"==t.xo&&t.ko){let i={x:0,y:0};t.micrio.addEventListener("pointerdown",t=>{i={x:t.clientX,y:t.clientY}}),t.micrio.addEventListener("pointerup",s=>{if(!i)return;const e=Math.hypot(s.clientX-i.x,s.clientY-i.y);if(i=void 0,e>10)return;const[h,o]=t.image.camera.getCoo(s.clientX,s.clientY,1),n=t.wo.find(t=>t.opts.area&&Q(h,o,t.opts.area));n&&t.Io(n)})}})(this),void 0!==i?.transitionDuration&&(this.So=this.#le=i.transitionDuration),void 0!==i?.transitionDurationOut&&(this.#le=i.transitionDurationOut),this.set(this.#ke,{cover:"cover"==this.image.$settings?.initType,duration:0}).then(()=>{this.#xe(),this.micrio.events.Pt("grid-load")}),this.#ye=pt("micrio-button",{setProps:{type:"close",onclick:()=>this.back(),title:"Close"}}),this.oo(()=>this.#ye.remove()),this.oo(this.To.subscribe(t=>{t?this.appendChild(this.#ye):this.#ye.remove()})),this.micrio.events.Pt("grid-init",this)}#xe(){if(this.micrio.state.marker.subscribe(t=>{if(t&&"string"!=typeof t){const i=t.data?.Co;if(i?.gridSize){const s="number"==typeof i.gridSize?[i.gridSize,i.gridSize]:i.gridSize.split(",").map(Number),e=this._o.find(i=>i.$data?.markers?.find(i=>i==t))?.id;e&&this.#me.set(e,s)}X().then(()=>{const t=i?.gridAction?.split("|");t?.length&&"string"==typeof t[0]&&this.action(t.shift(),t.join("|"))})}}),this.ko){this.addEventListener("click",t=>{this.Io(t.target?.dataset.id)});const t=t=>{t?this.#Te():this.#Pe()};this.micrio.state.tour.subscribe(t),this.micrio.state.marker.subscribe(t),this.To.subscribe(t)}var t;this.#Se=(t=this,i=>{const s=i.detail;s&&s.action?.startsWith("grid:")&&s.active&&Ei(t,s.action.slice(5),s.data,s.end-s.start)}),this.micrio.addEventListener("tour-event",this.#Se),this.micrio.addEventListener("serialtour-pause",()=>this._o.forEach(t=>t.camera.pause())),this.micrio.addEventListener("serialtour-play",()=>this._o.forEach(t=>t.camera.resume()))}#Se;#Ee(){clearTimeout(this.#ge),clearTimeout(this.#ve)}#be(t){this._o.push(t),this.vo.set(t.id,t)}get#ke(){return this.#_e._o.map(t=>({id:t.id,size:[1]}))}#Ie(){this.#ce.set(this.#ae.push({layout:this.wo.map(t=>({id:t.id,view:t.state.$view,size:this.#pe.get(t.id)})),horizontal:this.#de,view:this.image.camera.getView()}))}set(t=[],i={}){const s=++this.#we;return this._o.length&&this._o.forEach(t=>t.camera.stop()),this.image.camera.stop(),new Promise((e,h)=>{delete this.image.$settings?.focus,this.fo=void 0,0==i.cover&&i.coverLimit&&(i.coverLimit=0),i.coverLimit&&null==i.cover&&(i.cover=1);const o=this.$focussed,n=i.transition?.endsWith("-delayed"),r="behind-delayed"==i.transition,{$h:a}=this.micrio;"crossfade"==i.transition?i.duration=0:"behind"!=i.transition&&"behind-delayed"!=i.transition||((t,i,s,e)=>{const h="behind-delayed"==s.transition,o=1==s.coverLimit;s.forceAni=1,s.coverLimit=o,s.forceAreaAni=1;const n=h?1/i.length:1;let r=0;t._o.forEach(t=>{t.camera.setCoverLimit(o),i.find(i=>i.id==t.id)&&(t.camera.setArea([0,0,e?.id==t.id?1:n,1],{noDispatch:1,direct:1}),t!=e&&t.camera.setView([0,0,1,1]),h&&t.canvas&&(t.canvas.zIndex=i.length-r++))}),i.forEach(t=>t.view=[0,0,1,1])})(this,t,i,o);const c=this.image.rt,l=i.duration??(i.noHistory?this.#le:this.So),u=this.yo??this.image.$settings.crossfadeDuration??1,d=(l||this.So)/(r?2:1);this.yo=void 0,c&&(a.qe=l,a.$e=d);const p=!i.noBlur&&o;p&&this.blur(),!i.noHistory&&this.wo.length&&this.#Ie(),this.#de=!!i.horizontal,this.#Ce(this._o.filter(i=>!t.find(t=>t.id==i.id))),this.#ze(t,{horizontal:i.horizontal,keepGrid:i.keepGrid,scale:i.scale,columns:i.columns}),this.#Ee();let m=0;c&&!i.noCamAni&&(i.view?this.image.camera.flyToView(i.view,{duration:1e3*l}):this.image.camera.flyToFullView({duration:1e3*l})).catch(()=>{s===this.#we&&(this.#Ee(),m||h())}),this.#me.clear(),null==i.coverLimit&&(i.coverLimit=!!this.image.$settings.limitToCoverScale);const f=i.cover&&!i.coverLimit;f&&(i.coverLimit=1,t.forEach(t=>this.vo.get(t.id)?.camera.setCoverLimit(1)));const g="appear-delayed"==i.transition,v=t=>t*this.#ue+(t>0&&g?l:0);this.wo=t.map((t,s)=>this.#Le(t,{duration:!i.forceAni&&p&&t.id!=o?.id?0:l,delay:n?v(s):0,noCamAni:g&&s>0?1:!!i.noCamAni,forceAreaAni:g&&s>0?0:i.forceAreaAni,cover:i.cover})),g&&this.wo.slice(1).forEach(t=>{const i=t.canvas;i&&(i.Te=i.Vt=.9999)});const w=()=>this.wo.forEach((t,i)=>ft(n?1e3*(v(i)+(r?l/2:0)):0).then(()=>t.canvas?.Fe())),M=()=>{s===this.#we&&(this.#Ee(),requestAnimationFrame(()=>a.$e=u),n&&this._o.forEach(t=>{t.canvas&&(t.canvas.zIndex=0)}),f?t.forEach(t=>this.vo.get(t.id)?.camera.setCoverLimit(0)):i.coverLimit&&t.forEach(t=>this.vo.get(t.id)?.camera.setCoverLimit(1)),this.ko&&this.#Pe(),this.fo=void 0,m=1,e(this.wo))};l||d?(i.noFade||(this.#ve=setTimeout(w,Math.max(0,l/2*1e3))),this.#ge=setTimeout(M,1e3*(Math.max(d,l)+(n?(t.length-1)*this.#ue:0)))):(i.noFade||w(),M())})}#Ae(){return this.wo.length!==this._o.length?1:this.wo.some((t,i)=>t.id!==this._o[i].id)}#ze(t,i){const s=t.reduce((t,i)=>t+i.size[0]*(i.size[1]??1),0),e=i.columns??(i.horizontal?t.length:((t,i)=>{let s=Math.ceil(i/Math.ceil(Math.sqrt(i)));if(t==i){const i=Math.floor(Math.sqrt(t)),e=[];for(let h=i;s+i>h;h++)t%h||e.push(h);e.length&&(s=e[Math.floor(e.length/2)])}return s})(t.length,s));this.style.gridTemplateColumns=`repeat(${e}, auto)`;for(const a of this.bo.values())a.remove();this.bo.clear(),this.style.removeProperty("--translate"),this.style.removeProperty("--scale"),t.forEach(t=>{this.bo.has(t.id)||this.bo.set(t.id,pt("button"));const i=this.bo.get(t.id);1!==t.size[0]||void 0!==t.size[1]?(i.style.gridArea=`auto / auto / span ${t.size[1]} / span ${t.size[0]||t.size[1]}`,this.#pe.set(t.id,t.size)):(i.style.removeProperty("grid-area"),this.#pe.delete(t.id)),i.dataset.id=t.id,i.setAttribute("data-scroll-through",""),this.appendChild(i)}),this.classList.toggle("grid-pan-zoom","grid"==this.xo);const h=this.classList.contains("grid-cells-hidden");h&&this.classList.remove("grid-cells-hidden"),this.micrio.events.Pt("grid-layout-set",this);const o=this.micrio.offsetWidth,n=this.micrio.offsetHeight,r=Math.max(0,Math.min(1,1-(i.scale??1)));this.style.transform="",this.childNodes.forEach(i=>{const s=i,e=s.dataset.id,h=s.getBoundingClientRect(),a=t.find(t=>t.id==e),c=[r/2*h.width,r/2*h.height];a&&!a.area&&(a.area=[(h.x+c[0])/o,(h.y+c[1])/n,(h.width-2*c[0])/o,(h.height-2*c[1])/n])}),this.ko||(this.style.display="none"),h&&this.classList.add("grid-cells-hidden")}#Pe(){!this.ko||this.micrio.state.$tour||this.micrio.state.$marker||(this.classList.remove("grid-cells-hidden"),this.#fe=this.image.state.view.subscribe(this.#$e))}#Te(){this.#fe&&this.#fe(),this.classList.add("grid-cells-hidden")}#$e=()=>{const t=this.image.camera.getXY(0,0,1);this.style.setProperty("--translate",`translate3d(${t[0]}px, ${t[1]}px, 0)`),this.style.setProperty("--scale",this.image.camera.getScale().toString()),this.dispatchEvent(new CustomEvent("update"))};#Le(t,i){const{$h:s}=this.micrio,e=this.vo.get(t.id);if(e.rt||s.Ce(e,this.image),t.area){const h=()=>e.camera.setArea(t.area,{direct:0==i.duration||!i.forceAreaAni&&!R(e.visible)});i.delay?ft(1e3*i.delay).then(h).then(()=>s.render()):h()}const h={duration:1e3*i.duration,timingFunction:this.#Me,limit:0};return i.noCamAni||e.camera.S||!e.rt||(t.view?e.camera.flyToView(t.view,h):i.cover?e.camera.flyToCoverView({...h,duration:0}):e.camera.flyToView([0,0,1,1],h)).catch(()=>{}),e}#Ce(t){const{$h:i}=this.micrio;t.forEach(t=>{t.rt&&t.canvas?.Oe(),this.bo.get(t.id)?.remove(),this.bo.delete(t.id)}),i.render()}zo(){const t=this.micrio.$current;return t==this.image||!!t&&this.vo.has(t.id)}async reset(t,i,s){const e=this.#ae[0];return this._o.forEach(t=>t.camera.stop()),this.image.camera.stop(),this.Po.set([]),await X(),s||i||!this.micrio.camera?.isZoomedOut()||this.micrio.state.$tour||this.$focussed||this.#Ae()||(t=0),this.set(this.#De(e)??this.#ke,{noHistory:1,duration:t,noCamAni:i,forceAni:s,horizontal:e?e.horizontal:0}).then(t=>(this.#ce.set(this.#ae.length=0),this.micrio.current.set(this.image),t))}async Mo(t,i,s){const e=t?.split("|").map(t=>t.trim()),h=e?.[0]??"",o=h?this._o.filter(t=>!!t.$data?.markers?.find(t=>t.tags?.includes(h))):this._o;return this.set(o.map(t=>{const i=t.$data?.markers?.find(t=>t.tags?.includes(h));return{id:t.id,size:[1],view:s?void 0:i?.view}}),{duration:i,horizontal:"h"==e?.[1]})}async back(t){const i=this.#ae.pop();if(!i)return;this.#ce.set(this.#ae.length),this.micrio.current.set(this.image),this.$focussed&&this.blur();const s=this.#De(i)??[];await this.set(s,{duration:t,noHistory:1,horizontal:i.horizontal,view:i.view})}#De(t){if(t?.layout?.length)return t.layout.map(t=>this.vo.has(t.id)?{id:t.id,size:t.size??[1],view:t.view}:null).filter(Boolean)}#Oe(t){this.micrio.$h.Je=ut(this.#Me=t)}Io(t){const i="string"==typeof t?this._o.find(i=>i.id==t):t;if(this.ko&&i)if(this.bo.forEach(t=>t.classList.remove("focussed")),this.bo.get(i.id)?.classList.add("focussed"),"zoom"==this.ko){const t=i.opts.area??[0,0,1,1];this.image.camera.flyToView(t,{duration:1e3*this.So,limit:0})}else this.gridFocus(i)}async gridFocus(t,i={}){if(!t)return this.back();i.coverLimit&&(i.cover=1);const s=this.micrio;R(s.Ut).find(t=>t==this.image)||s.current.set(this.image);const e=this.$focussed;if(e==t)return;i.transition?.startsWith("slide-")||0!=i.duration&&(!e||e.canvas?.Ve()||this.wo.includes(t))||t.camera.setArea([0,0,1,1],{noDispatch:1,direct:1}),e&&this.blur(),t.camera.setCoverLimit(!!i.cover),this.#Oe("ease");const h=await(async(t,i,s,{duration:e,view:h,transition:o,noViewAni:n,exitView:r,blur:a,cover:c})=>{if(!o)return[{id:i.id,size:[1],view:h}];if("crossfade"==o&&(i.camera.setArea([0,0,1,1]),n=1),h&&n&&i.camera.setView(h,{noRender:1,noLimit:1}),!s||"crossfade"==o)return[{id:i.id,size:[1],view:h}];const l=o.startsWith("slide")||o.startsWith("swipe"),u=o.startsWith("behind"),d=l?o.endsWith("-up")?0:o.endsWith("-down")?180:o.endsWith("-left")?270:90:void 0;if(l||u){const t=i.canvas;t&&(t.Te=.9999,t.Vt=.9999)}if(o.startsWith("slide"))i.camera.setArea(_i[d],{noDispatch:1,direct:1});else if(o.startsWith("swipe"))i.camera.setArea(bi[d],{noDispatch:1,direct:1});else if(u){i.camera.setArea([0,0,1,1]),i.camera.setView([0,0,1,1]);const e=[{id:s.id,size:[1],view:[0,0,1,1]},{id:i.id,size:[1],view:[0,0,1,1]}];"behind-left"==o&&e.reverse(),await t.set(e,{noBlur:1,horizontal:1,coverLimit:c}).then(()=>ft(200))}if(a&&!isNaN(a)&&a>0){const i=(e=e??t.yo??t.So)/2,s=t.micrio.canvas.element.style;s.transition=`filter ${i}s ease`,s.filter=`blur(${a}px)`,setTimeout(()=>{s.filter="",setTimeout(()=>s.transform="",1e3*i)},1e3*i)}return o.startsWith("swipe")?[{id:s.id,size:[1],view:r??s.camera.getView(),area:ki[d]},{id:i.id,size:[1],view:h,area:[0,0,1,1]}]:[{id:i.id,size:[1],view:h}]})(this,t,e,i);return t.canvas&&(t.canvas.zIndex=3),this.To.set(t),this.set(h,{noBlur:1,duration:i.duration,forceAreaAni:"crossfade"!=i.transition,cover:!!i.cover,coverLimit:!!i.coverLimit}).then(()=>{s.events.Pt("grid-focus",t),this.#Te(),s.$current!=t&&s.current.set(t),this.image.camera.setLimit([0,0,1,1])}).catch(()=>{})}blur(){const t=this.$focussed;t&&(this.bo.forEach(t=>t.classList.remove("focussed")),t.canvas&&(t.canvas.zIndex=2),this.micrio.events.Pt("grid-blur"),this.To.set(void 0),this.image.camera.setLimit([0,0,1,1]),this.micrio.current.set(this.image))}action(t,i,s){Ei(this,t,i,s)}async enlarge(t,i,s=i){const e=this.#ae[this.#ae.length-1]?.layout,h="cover"===this.image.$settings?.initType;if(!e?.length){const e=this.#_e._o;return e.length?this.set(e.map((e,h)=>({id:e.id,size:h==t?[i,s]:[1]})),{noHistory:1,keepGrid:1,duration:.5,cover:h}):this.wo}const o=e.map((e,h)=>({id:e.id,size:h==t?[i,s]:e.size??[1]}));return this.set(o,{noHistory:1,keepGrid:1,duration:.5,cover:h})}Lo(t,i){const s=this.micrio.$current;if(s&&this._o.some(t=>t===s))return s;if("grid"==this.xo)return this.image;const[e,h]=this.image.camera.getCoo(t,i,1);return this.wo.find(t=>t.opts.area&&Q(e,h,t.opts.area))}};customElements.define(Ii.tag,Ii);var Ci=class{#qs;constructor(t){this.#qs=t}hook(){document.addEventListener("keydown",this.#te)}unhook(){document.removeEventListener("keydown",this.#te)}#te=t=>{if(this.#qs.Nh||this.#qs.Vh||!this.#qs.Dh.$current?.camera)return;if(Ii.Eo&&(t.key.startsWith("Arrow")||"Enter"==t.key||" "==t.key||"Escape"==t.key))return;const i=this.#qs.Dh.$current.camera,s=this.#qs.Dh.offsetWidth/2,e=this.#qs.Dh.offsetHeight/2;let h=0,o=0;switch(t.key){case"ArrowUp":o-=e;break;case"ArrowDown":o+=e;break;case"ArrowLeft":h-=s;break;case"ArrowRight":h+=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==h&&0==o||i.pan(h,o,150)}},zi=class{#qs;constructor(t){this.#qs=t}hookTap(){this.#qs.Fh.addEventListener("touchstart",this.#Fe)}unhookTap(){this.#qs.Fh.removeEventListener("touchstart",this.#Fe)}hookClick(){this.#qs.Fh.addEventListener("dblclick",this.#Ve)}unhookClick(){this.#qs.Fh.removeEventListener("dblclick",this.#Ve)}#Fe=t=>{if(!(xt.hasTouch&&t instanceof TouchEvent))return;const i=performance.now();1==t.touches.length&&250>i-this.#qs.Gh.$o.Ao&&(t.stopPropagation(),t.preventDefault(),this.#Ve(t)),this.#qs.Gh.$o.Ao=i};#Ve=t=>{const i=t instanceof TouchEvent?t.touches[0]:t;this.#qs.Kt({x:i.clientX,y:i.clientY})?.camera.zoom(-300,500,i.clientX,i.clientY,1,!this.#qs.Dh.$current?.album).catch(()=>{})}},Li=class{Fh;enabled=H(0);get $enabled(){return R(this.enabled)}#Zs=0;Nh=0;Vh=0;Qh=0;Jh=0;Oh=0;qh=1;Uh=xt.hasTouch&&"ontouchstart"in self;Kh=0;#Ne;#Be;Gh={Bh:{Rh:void 0,As:[0,0,0],Yh:void 0},$o:{Ao:0},qi:{Yh:void 0,Wh:0,Xh:0}};jh;Zh=new Map;Hh;Dh;#Qs;#Ge;#Ye;#He;#Re;#Xe;#je;constructor(t){this.Dh=t,this.Fh=t.canvas.element,this.#Qs=new li(this),this.#Ge=new fi(this,this.#Qs),this.#Ye=new gi(this,this.#Qs),this.#He=new vi(this),this.#Re=new wi(this),this.#Xe=new Ci(this),this.#je=new zi(this),this.enabled.subscribe(t=>{t?this.hook():this.unhook()}),t.Ut.subscribe(t=>this.#Be=t),t.current.subscribe(t=>{t&&!this.#Ne&&(this.#Ne=t.$settings,!t.error&&this.#Ne.hookEvents&&this.enabled.set(1))})}Do(){return this.$enabled}get isNavigating(){return this.Nh||this.Vh||this.Qh}Pt(t,i){this.Dh.dispatchEvent(new CustomEvent(t,void 0!==i?{detail:i}:void 0))}Kt(t){if(!this.#Be)return;const i=this.Dh.offsetWidth,s=this.Dh.offsetHeight,e=Math.max(0,Math.min(1,t.x/i)),h=Math.max(0,Math.min(1,t.y/s)),o=this.#Be.filter(t=>!t.Ot&&!t.Ft),n=this.Dh.Pe.find(t=>t.grid);if(n)return n.grid?.Lo(t.x,t.y)??this.Dh.$current;const r=1==o.length?o[0]:o.find(({grid:t,opts:{area:i}})=>t?0:i?!(e<i[0]||e>i[0]+i[2]||h<i[1]||h>i[1]+i[3]):0);return r&&!r.grid?r:this.Dh.$current}Oo(){return this.#Be}hook(){if(this.#Zs)return;this.#Zs=1;const t=this.#Ne;t&&(this.Oh=!!t.twoFingerPan,this.Oh?this.Dh.setAttribute("data-can-pan",""):this.Dh.removeAttribute("data-can-pan"),t?.hookKeys&&this.hookKeys(),t.hookDrag&&this.hookDrag(),t.noZoom||this.hookZoom())}unhook(){this.#Zs&&(this.#Zs=0,this.Zh.clear(),this.unhookDrag(),this.unhookZoom(),this.unhookKeys())}hookKeys(){this.#Xe.hook()}unhookKeys(){this.#Xe.unhook()}hookZoom(){const t=this.#Ne;this.Jh=!!t?.controlZoom,t&&!t.hookPinch||this.hookPinch(),(!t||t.hookScroll||this.Jh)&&this.hookScroll(),this.Dh.canvas.$isMobile?this.#je.hookTap():this.#je.hookClick()}unhookZoom(){this.unhookPinch(),this.unhookScroll(),this.Dh.canvas.$isMobile?this.#je.unhookTap():this.#je.unhookClick()}get scrollHooked(){return this.#Re.hooked}hookScroll(){this.#Re.hook()}unhookScroll(){this.#Re.unhook()}hookPinch(){xt.iOS&&this.Uh?this.#Ge.hook():this.#Ye.hook(),this.#He.hook()}unhookPinch(){xt.iOS&&this.Uh?this.#Ge.unhook():this.#Ye.unhook(),this.#He.unhook()}hookDrag(){this.#Qs.hook()}unhookDrag(){this.#Qs.unhook()}},Ai=class t{Fo;_o;#_;#We=null;Vo;#Ue=H(0);#Ze=0;#qe=0;constructor(t,i,s){this.#_=i,this.Vo=t,this.Fo=s;const e="switch"==s.type,h=s.isSpreads,o=h?s.coverPages??0:0;e&&(this.#qe=Math.max(...t.map(t=>t.height)),this.#Ze=Math.max(...t.map(t=>t.width*(h?2:1)))),this._o=t.map((n,r)=>{const a={...s.settings};void 0!==s.archiveLayerOffset&&(a.gallery={...a.gallery||{},archive:1,archiveLayerOffset:s.archiveLayerOffset});const c={},l=Y.m(n.id)?.data;if(e){let i;c.isEmbed=1,c.useParentCamera=1,i=h?0>r-o||r==t.length-1&&(r-o)%2==0?[.25,0,.5,1]:(r-o)%2==0?[0,0,.5,1]:[.5,0,.5,1]:[0,0,1,1];let s=((t,i,s,e,h)=>{const[o,n,r,a]=t,c=r*i,l=a*s,u=Math.min(c/e,l/h),d=e*u/i,p=h*u/s;return[o+r/2-d/2,n+a/2-p/2,d,p]})(i,this.#Ze,this.#qe,n.width,n.height);h&&(.5===i[0]?s[0]=.5:0===i[0]&&(s[0]=.5-s[2])),c.area=s}else c.area=[r,0,1,1];return new _t(i,{id:n.id,info:n,settings:a,data:l},c)})}static No(i,s){if("sc:Manifest"===i["@type"]||i.sequences)throw new _("IIIF_V2_UNSUPPORTED",{displayMessage:"Only IIIF Presentation API 3 manifests are supported"});if("Manifest"===i.type){const e=i.items?.flatMap(t=>t.items?.[0]?.items?.[0]?.body)?.filter(t=>t?.service?.[0]?.id)??[];if(!e.length)throw new _("NO_CANVASES",{displayMessage:"No valid IIIF canvases found in the manifest"});const h=e.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===h.length?null:new t(h,s,{type:"swipe",settings:{}})}return null}static Bo(i,s,e,h){const o=h?.basePath??e.$current?.zt??"https://b.micr.io/",n=i.map(t=>({id:t.micrioId??t.id,path:o,version:"",width:t.width,height:t.height,isDeepZoom:t.isDeepZoom,isPng:t.isPng,isWebP:t.isWebP}));return new t(n,s,{type:"swipe",startId:h?.startId,settings:{skipMeta:1,noLogo:1}})}static async Go(i,s,e){const h=Y.T(i);if(!h)return null;const o=e?.path??Y.k()?.baseUrl??"https://r2.micr.io/";h.archive&&await bt.load(o,"g/"+h.archive,e?.onProgress);const n={...h,startId:e?.startId??h.startId};if(h.settings&&(n.settings={...h.settings}),"grid"===h.type&&h.archive){const t=n.grid?.clickable??n.settings?.grid?.clickable,i={zoomLimit:15,minimap:0,...n.settings??{}};t&&void 0===i.hookKeys&&(i.hookKeys=1),n.settings=i}const r=await t.#Je(h.archive.split(".")[0],o);r&&(n.archiveLayerOffset=r.delta);const a=n.sort;return a&&r?.images&&r.images.sort(t.#Ke(a)),new t((r?.images??[]).map(t=>({...t,path:o,version:""})),s,{...n,type:n.type??"swipe"})}static#Je=async(t,i)=>bt.get(`${i}${t}.json`).then(t=>(t.images.forEach(t=>b.set(`${i}${t.id}/info.json`,t)),t));static#Ke(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}Yo(){const t=!!this.Fo.isSpreads,i=this.Fo.coverPages??0,s=[];if(t){let t=0;for(;t<Math.min(i,this._o.length);t++)s.push([t]);for(;t<this._o.length;t+=2){const i=[t];t+1<this._o.length&&i.push(t+1),s.push(i)}}else for(let e=0;e<this._o.length;e++)s.push([e]);return{pages:s,numPages:s.length}}Ho(t){if(this.#We=t,"grid"==this.Fo.type){const i=t.engine.micrio;t.grid=pt(Ii.tag,{setProps:{micrio:i,image:t,gallery:this}})}"book3d"==this.Fo.type&&("SharedArrayBuffer"in self?t.engine.sh=1:(console.warn("[Micrio]: No `SharedArrayBuffer` available, 3D Book Viewer is disabled. Using 2D fallback."),this.Fo.type="swipe"))}async Ro(t){const i="switch"==this.Fo.type,s={view:[0,0,1,1],gallery:{...this.Fo},pinchZoomOutLimit:i?1:void 0};this.Fo.settings&&Object.assign(s,this.Fo.settings);const e=Y.k()?.baseUrl??"https://r2.micr.io/";await t.open({id:"",info:{id:"",path:e,version:"",width:i?this.#Ze:t.offsetWidth*t.canvas.getRatio(),height:i?this.#qe:t.offsetHeight*t.canvas.getRatio()},settings:s},{gallery:this})}goto(t){this.#Ue.set(t),this.#We&&this.#_.micrio.events.Pt("gallery-show",t)}next(){const t=R(this.#Ue);this.goto(Math.min(this._o.length-1,t+1))}prev(){const t=R(this.#Ue);this.goto(Math.max(0,t-1))}},$i=navigator?.language??"en-EN",Di="Intl"in self&&Intl.DisplayNames?new Intl.DisplayNames([$i],{type:"language"}):void 0,Oi=["ar","dv","fa","he","iw","ku","ps","sd","syr","ug","ur","yi"],Fi=["en","nl","de"],Vi={Xo:["Close","Sluit","Schließen"],jo:["Zoom in","Zoom in","Vergrößern"],Wo:["Zoom out","Zoom uit","Verkleinern"],Uo:["Toggle fullscreen","Volledig scherm aan / uit","Vollbild umschalten"],Zo:["Switch language","Kies taal","Sprache wechseln"],qo:["Share","Deel","Teilen"],Jo:["Mute audio","Geluid uit","Ton stummschalten"],Ko:["Unmute audio","Geluid aan","Ton einschalten"],Qo:["Close this marker","Sluit deze marker","Diesen Marker schließen"],tn:["Next step","Volgende stap","Nächster Schritt"],sn:["Previous step","Vorige stap","Vorheriger Schritt"],hn:["Stop this tour","Stop deze tour","Tour beenden"],nn:["Minimize","Minimaliseer","Minimieren"],rn:["Play","Start","Abspielen"],an:["Pause","Pauzeer","Pause"],cn:["Stop","Stop","Stopp"],ln:["Toggle subtitles","Ondertitels aan / uit","Untertitel umschalten"],un:["Previous image","Vorige afbeelding","Vorheriges Bild"],dn:["Next image","Volgende afbeelding","Nächstes Bild"],pn:["Toggle menu","Menu openen / sluiten","Menü umschalten"],mn:["Go this way","Ga deze richting","Diesen Weg gehen"],fn:["Tours","Tours","Touren"],gn:["Marker tours","Marker tours","Marker-Touren"],vn:["Video tours","Video tours","Video-Touren"]},Ni={},Bi=Object.keys(Vi);for(let me=0;Fi.length>me;me++){const t={};for(const i of Bi)t[i]=Vi[i][me];Ni[Fi[me]]=t}var Gi=H(Ni.en);function Yi(t){if(!t)return;const i=t.split(",").map(t=>t.trim());return i[0]?{micrioId:i[0],markerId:i[1]||void 0,follows:!!i[2]&&"false"!==i[2]}:void 0}var Hi=new Map;function Ri(t){return Hi.get(t)?.secondary}function Xi(t){for(const i of Hi.values())if(i.secondary===t)return 1;return 0}async function ji(t,i,s,e){if(Hi.has(i))return;if(i.Ot||i.grid||Xi(i))return;const h=await Y.p(s.micrioId);if(!h)return;const o=new _t(t.$h,h);t.Pe.push(o),t.$h.yh(o),o.Vt=0,0!=e?.isPassive&&(o.Ft=1);const n=t.canvas.viewport.portrait;i.camera.setArea(n?[0,0,1,.5]:[0,0,.5,1]),o.camera.setArea(n?[0,1,1,0]:[1,0,0,1],{direct:1}),o.camera.setArea(n?[0,.5,1,.5]:[.5,0,.5,1]);let r=null;if(0!=e?.isPassive&&(r=i.state.view.subscribe(t=>{t&&!o.camera.S&&o.camera.setView(t,{noLimit:1})})),s.markerId){let t;t=o.data.subscribe(i=>{if(!i)return;const e=i.markers?.find(t=>t.id===s.markerId);e?.view&&o.camera.flyToView(e.view,{isJump:1}),t?.()})}Hi.set(i,{secondary:o,unsub:r}),t.events.Pt("splitscreen-start",o)}function Wi(t,i,s){const e=Hi.get(i);if(!e)return;Hi.delete(i),e.unsub?.();const h=t.canvas.viewport.portrait;e.secondary.camera.setArea(h?[0,1,1,0]:[1,0,0,1],{direct:1}),i.camera.setArea([0,0,1,1]),s?.keepSecondaryCanvas||setTimeout(()=>t.$h._h(e.secondary),400),t.events.Pt("splitscreen-stop",e.secondary)}var Ui=class{el;o;to;wn=1;constructor(t,i={}){this.el=t,this.o={delay:4e3,onIdle(){},onActive(){},shouldIdle:()=>1,...i}}get idle(){return this.el.hasAttribute("data-idle")}get enabled(){return this.wn}set enabled(t){this.wn=t,t||this.pause()}activity(){this.idle&&(this.el.removeAttribute("data-idle"),this.o.onActive()),this.#Qe()}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.#Qe()}destroy(){clearTimeout(this.to)}#Qe(){clearTimeout(this.to),this.wn&&(this.to=window.setTimeout(()=>{this.o.shouldIdle()?this.idle||(this.el.setAttribute("data-idle",""),this.o.onIdle()):this.#Qe()},this.o.delay))}},Zi=class extends yi{static get observedAttributes(){return["id","muted","data-limited","lang"]}static VERSION;static tag="micr-io";#th=0;Pe=[];current=H();Ut=H([]);#ih;get $current(){return this.#ih}get camera(){return this.#ih?.camera}canvas=new oi(this);events=new Li(this);state=new et.Main;St=[];Tt=[];barebone=H(0);jt=new hi(this);$h=new qt(this);Mn;defaultSettings;Mh=H(1);Zt=H(0);yn=H("1"==localStorage.getItem(z));Ht=H();spaceData;bundleTours;gallery=H();kh=0;#sh;#eh=0;attributeChangedCallback(t,i,s){switch(t){case"id":if(!this.isConnected||!s)return;this.#th?this.open(s):this.#hh();break;case"muted":R(this.yn)!==this.hasAttribute("muted")&&this.yn.set(this.hasAttribute("muted"));break;case"data-limited":this.$h?.pe&&this.$current?.canvas&&(this.$current.canvas.ce=!!s);break;case"lang":{let t=R(this.Ht);if(t!=s){this.Ht.set(s);const i=s.split("-")[0];Gi.set(Ni[s]??Ni[i]??Ni.en),s&&(e=s,Oi.some(t=>e===t||e.startsWith(t+"-"))?this.setAttribute("dir","rtl"):this.removeAttribute("dir")),t&&this.events.Pt("lang-switch",s)}break}}var e}eo(){this.do("micrio",this),this.canvas.place(),this.id&&!this.#th&&this.#hh(),"muted"in this||(Object.defineProperty(this,"muted",{get(){return R(this.yn)},set(t){t?this.setAttribute("muted",""):this.removeAttribute("muted")}}),this.ao(this.yn,t=>{this.muted=t,t?(localStorage.setItem(z,"1"),this.events.Pt("audio-mute")):(localStorage.removeItem(z),this.events.Pt("audio-unmute"))}));const t=()=>{const t=R(this.Ut).filter(t=>t.id),i=1===t.length?t[0]:this.#ih;this.toggleAttribute("data-zoomed",!!i?.camera&&!!i.rt&&!i.camera.isZoomedOut())};this.ao(this.current,i=>{this.#ih=i,t()}),this.ao(this.Ut,()=>t());const i=()=>t();this.Tt.push(i),this.oo(()=>{const t=this.Tt.indexOf(i);0>t||this.Tt.splice(t,1)});let s=0;const e=this.Mh.subscribe(t=>{if(t)return;e(),this.setAttribute("data-loaded",""),this.ao(this.Zt,t=>{t?this.setAttribute("data-switching",""):(s||X().then(()=>this.events.Pt("show",this)),s=1,this.removeAttribute("data-switching"))});const i=this.querySelector("img.preview");i&&setTimeout(()=>i.remove(),500)});this.#sh=new Ui(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 1}});const h=()=>this.#sh.activity();for(const o of["mousemove","pointerdown","wheel","focusin"])this.addEventListener(o,h,{passive:1});window.addEventListener("keydown",h),this.#sh.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.$h.gh(),this.Mn&&this.Mn.remove(),delete this.Mn,this.jt.zh(1),this.#sh?.destroy(),this.#th=0}async#oh(t){const i=await T(t).catch(t=>{this.#nh(t)});if(!i)return;let s;try{s=Ai.No(i,this.$h)}catch(n){return void this.#nh(n)}if(s)return void s.Ro(this);let e=i["@id"]||i.id||t.replace(/info.json$/,""),h=i.width,o=i.height;if("Manifest"===i.type){const t=i.items?.[0]?.items?.[0]?.items?.[0]?.body,s=t?.service?.[0];s?.id&&(e=s.id,h=t.width,o=t.height)}return{id:e,info:{id:e,path:e.replace(/\/[^/]*$/,""),width:h,height:o,version:I,isIIIF:1}}}async#hh(){if(this.#th)return;this.#th=1,await X();const i=this.#rh();if(i.settings||(i.settings={}),this.defaultSettings&&t(this.defaultSettings,i.settings),i.settings.noLogo||this.#ah(!!i.settings.noUI,0),i.id&&S(i.id)&&!this.hasAttribute("width")&&!this.hasAttribute("height")){const t=await Y.p(i.id).catch(()=>{});if(t&&t.info?.albumId){const s=await Ai.Go(t.info.albumId,this.$h,{startId:i.id,onProgress:t=>this.Mn?.xt?.({loadingProgress:t})}).catch(()=>null);if(s)return void s.Ro(this)}}if(i.id&&i.id.startsWith("http")){const t=await this.#oh(i.id);if(!t)return;return t.settings=i.settings,void this.open(t)}this.kh=!!i.settings.keepRendering,this.events.Pt("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)}#ah(t,i){this.Mn?this.Mn.xt?.({noHTML:t,noLogo:i}):this.Mn=pt("micrio-main",{setProps:{noHTML:t,noLogo:i},parent:this})}#nh(t){const i=(s=t??"An unknown error has occurred")instanceof _?s.displayMessage:(s instanceof Error?s.message:s)??"An unknown error has occurred";var s;console.error("Error:",i+(t instanceof _?` (${t.code}: ${t.message})`:"")),this.Mn||this.#ah(0,0),this.Mn?.xt?.({error:i}),this.Mh.set(0)}async open(i,s={}){this.#th||await this.#hh();const e=this.#rh();let h;if("string"==typeof i&&i.startsWith("http")){const t=await this.#oh(i);if(!t)return this.$current;h=t}else if("string"==typeof i){if(h=await Y.p(i),!h)return this.#nh('Image with id "'+i+'" not found, published, or embeddable.'),this.$current}else h=i;if(h.settings||(h.settings={}),e.settings?.gallery?.archive&&!/\.\d+$/.test(e.settings.gallery.archive)&&delete e.settings.gallery.archive,"string"==typeof i&&t(e.settings,h.settings),this.defaultSettings&&t(this.defaultSettings,h.settings),h.settings?.gallery?.settings&&t(h.settings.gallery.settings,h.settings),t(L,h.settings,{noOverwrite:1}),this.$current&&h.id==this.$current?.id)return this.$current;this.$current&&!s.gridView&&(t=>{for(const i of[...Hi.keys()])Wi(t,i)})(this),!s.gridView&&this.$current&&this.Zt.set(1),this.#ah(!!h.settings.noUI,!!h.settings.noLogo);let o=this.Pe.find(t=>h.id&&t.id==h.id),n=0;const r=this.Pe[0]?.grid;if(!o&&r){const t=h.id?r._o.find(t=>t.id==h.id):void 0;n=!!t,o=h.id?t:this.Pe[0],n&&!r.zo()&&this.current.set(this.Pe[0])}if(!o){if(this.Pe.length){const t=this.Pe[0];h.info.path=t.zt,h.info.lang=this.lang}this.Pe.push(o=new _t(this.$h,h))}if(s.gallery&&(s.gallery.Ho(o),this.gallery.set(s.gallery)),s.startView&&(o.state.view.set(h.settings.view=s.startView),o.rt&&o.engine.ready&&o.camera.setView(h.settings.view,{noRender:1})),this.lang||(this.lang="en"),!this.$h.sh&&(this.$h.nh(),!this.jt.gl))try{this.jt.Ah()}catch(a){return this.#nh(a),o}if(!this.#eh){switch(this.canvas.hook(),this.#ih?.$settings?.theme){case"light":this.setAttribute("data-light-mode","");break;case"os":this.setAttribute("data-auto-scheme","")}this.#eh=1}X().then(()=>this.dispatchEvent(new CustomEvent("load",{detail:o})));const a=this.$h;return a.De=s.vector?.direction??0,a.ze=s.vector?.distanceX??0,a.Le=s.vector?.distanceY??0,a.eh=!s.vector,!n||s.gridView&&r?.wo.find(t=>t.id==h.id)?this.current.set(o):r?.gridFocus(o,{view:h.settings?.view}).then(()=>this.current.set(o)),o.Ot&&this.Mh.set(0),!o.$settings.micrioSplitLink||o.Ot||o.grid||X().then(()=>{this.$current===o&&ji(this,o,{micrioId:o.$settings.micrioSplitLink},{isPassive:!o.$settings.noFollow})}),o}close(t){this.$h._h(t)}#rh(){const t={gallery:{}},i={settings:t,id:this.id},s=(t,i,s)=>{const e=i.split(".");for(let h=0;h<e.length-1;h++)t=t[e[h]];t[e[e.length-1]]=s},e=(e,h)=>{for(const o of Object.keys(e)){const n=e[o],r=this.getAttribute(o),a=n.f||o.replace("data-",""),c=h(r,n);void 0!==c&&s(n.r?i:t,a,c)}};return e(A,t=>t||void 0),e($,(t,i)=>{const s=null!=t&&(""===t||"true"===t);if(s||"false"===t)return i.n?!s:!!s}),e(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}),e(O,t=>null!=t?t.split(",").map(Number):void 0),t.static&&(t.noUI=t.skipMeta=1,t.hookEvents=0),i}get lang(){return R(this.Ht)}set lang(t){this.setAttribute("lang",t)}};function qi(t,i){return mt("svg",{...i,attrs:{...i?.attrs,viewBox:`0 0 ${t[0]} ${t[1]}`,fill:"currentColor"},children:[mt("path",{attrs:{d:t[2]}}),...i?.children??[]]})}var Ji={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"],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"]},Ki=new Set(["chevronDown","linkExt"]),Qi=class extends yi{static tag="micrio-icon";#ch="close";#lh;eo(){this.#uh(),this.#dh()}xt(t){t.name&&(this.#ch=t.name),this.isConnected&&(this.#uh(),this.#dh())}#uh(){const t=this.mo();this.#lh=t?.$current?.$settings?.ui?.icons?.[this.#ch]}#dh(){const t=this.#lh;if(t)return void(this.innerHTML=t);const i=Ji[this.#ch];if(!i)return void this.replaceChildren();const s=qi(i);Ki.has(this.#ch)&&s.classList.add("small"),this.replaceChildren(s)}};customElements.define(Qi.tag,Qi);var ts=class extends yi{static tag="micrio-button-group"};customElements.define(ts.tag,ts);var is="100",ss=80*Math.PI,es={r:"40",cx:"50",cy:"50",fill:"transparent","stroke-width":"8px"},hs=class extends yi{static tag="micrio-progress-circle";#ph={};#mh;eo(){const t=mt("svg",{attrs:{width:is,height:is,viewBox:`0 0 ${is} ${is}`}});mt("circle",{attrs:{...es,stroke:"#e0e0e0"},parent:t});const i=mt("circle",{attrs:{...es,stroke:"#00d4ee","stroke-dasharray":`${ss}px`},parent:t});this.appendChild(t),this.#mh=i,this.#fh()}xt(t){Object.assign(this.#ph,t),this.isConnected&&this.#fh()}#fh(){if(!this.#mh)return;const t=this.#ph.progress??0,i=ss*(1-t);this.#mh.setAttribute("stroke-dashoffset",`${i}px`)}};customElements.define(hs.tag,hs);var os=class extends yi{static tag="micrio-logo";#gh;#vh;#wh=0;eo(){const t=this.mo();if(!t)return;const i=/micr\.io/.test(location.origin)&&self.parent==self?void 0:"_blank";this.#gh=pt("a",{props:{rel:"noopener",href:"https://micr.io/",title:"Powered by Micrio"},attrs:{"aria-label":"Micrio homepage"},parent:this}),i&&(this.#gh.target=i),this.oo(t.Mh.subscribe(t=>{clearTimeout(this.#vh),t?this.#wh||(this.#vh=setTimeout(()=>{this.#wh=1,this.#Mh()},750)):(this.#wh=0,this.#Mh())})),this.oo(()=>clearTimeout(this.#vh))}ho(){clearTimeout(this.#vh)}#Mh(){this.#gh&&this.#gh.classList.toggle("loading",this.#wh)}};customElements.define(os.tag,os);var ns=class extends yi{static tag="micrio-article";Ch(){this.so.html&&(this.innerHTML=this.so.html)}};customElements.define(ns.tag,ns);var rs="micrio-captions-disable",as=H("1"!=localStorage.getItem(rs));as.subscribe(t=>{t?localStorage.removeItem(rs):localStorage.setItem(rs,"1")});var cs=class extends yi{static tag="micrio-subtitles";#ph={};#yh=[];#_h=0;#bh;#gs;eo(){this.#gs=as.subscribe(()=>this.#kh());const t=this.#ph.mediaEl?.querySelector("video,audio")||(this.#ph.mediaEl instanceof HTMLMediaElement?this.#ph.mediaEl:void 0);if(t){const i=()=>{this.#_h=t.currentTime,this.#kh()};t.addEventListener("timeupdate",i);const s=this.#gs;this.#gs=()=>{s?.(),t.removeEventListener("timeupdate",i)}}this.#ph.src&&this.#fh()}xt(t){const i=void 0!==t.src&&t.src!==this.#ph.src;Object.assign(this.#ph,t),i&&this.isConnected&&this.#fh()}#fh(){this.#ph.src?(this.#yh=[],fetch(this.#ph.src).then(t=>t.text()).then(t=>{const i=t.split("\n"),s=[];for(let e=0;e<i.length;e++)if(/-->/.test(i[e])){let t=e+1;const h=[];for(;!i[t]&&t<i.length;)t++;for(;i[t]&&i[t].trim();)h.push(i[t++]);const[o,n]=i[e].split(" --\x3e ").map(t=>t.trim().replace(",",".").split(":").map(Number)).map(t=>3===t.length?3600*t[0]+60*t[1]+t[2]:2===t.length?60*t[0]+t[1]:0);s.push({start:o,end:n,data:h.join("\n")}),e+=h.length+1}this.#yh=s,this.#kh()}).catch(t=>console.error("micrio-subtitles: fetch error:",t))):this.replaceChildren()}#kh(){if(!R(as)||!this.#yh.length)return this.replaceChildren(),void(this.#bh=void 0);const t=this.#yh.find(t=>t.start<=this.#_h&&t.end>=this.#_h);t!==this.#bh&&(this.#bh=t,this.innerHTML=t?`<p>${t.data}</p>`:"")}ho(){this.#gs?.()}};customElements.define(cs.tag,cs);var ls=class extends yi{static tag="micrio-details";#ph={};#xh;eo(){this.mo()&&(this.#xh=pt("details",{parent:this}),this.#dh())}xt(t){void 0!==t.info&&(this.#ph.info=t.info),void 0!==t.data&&(this.#ph.data=t.data),this.isConnected&&this.#dh()}#dh(){const t=this.#ph.info,i=this.#ph.data,s=this.mo(),e=s?R(s.Ht):void 0,h=s?R(s.current):void 0;if(!t||!e||!h)return;const o=i?.i18n?i.i18n[e]:i,n=o?.title??t.title??"",r=o?.description,a=o?.sourceUrl,c=o?.copyright;(n||r||a)&&(this.#xh.replaceChildren(),n&&pt("summary",{children:[pt("span",{textContent:n})],parent:this.#xh}),r&&pt("div",{innerHTML:r,parent:this.#xh}),a&&pt("p",{parent:this.#xh,children:[pt("a",{props:{href:a,target:"_blank",rel:"noopener noreferrer"},textContent:c||a})]}))}};customElements.define(ls.tag,ls);var us=class extends yi{static tag="micrio-error";Ch(){this.replaceChildren(),pt("div",{parent:this,children:[pt("micrio-icon",{setProps:{name:"error"}}),pt("span",{textContent:this.so.message??"An unknown error has occurred"})]})}};customElements.define(us.tag,us);var ds=class extends yi{static tag="micrio-controls";#ph={};#Th=0;#Ph=0;#Sh=0;#Eh=0;#Ih="";#Ch=()=>{const t=this.mo();t&&t.yn.set(!R(t.yn))};#zh=()=>{const t=this.mo();if(t&&navigator.share&&t.$current?.$info){const i=t.$current.$data?.i18n?.[R(t.Ht)];navigator.share({title:t.$current.$info?.title,text:i?.description||`${t.$current.$info.width} x ${t.$current.$info.height} | Micrio`,url:location.href})}};#Lh=t=>{this.mo().lang=t};#Ah;#$h;#Dh;#Oh;#Fh;#Vh;#Nh;#Bh;eo(){const t=this.mo();if(!t)return;const{state:i,Ht:s}=t,{tour:e,popup:h}=i,o=t=>{this.#Ph=!!t.ui?.controls?.cultureSwitch,this.#Sh=!!t.social,void 0!==t.fullscreen&&(this.#Eh=!!t.fullscreen),this.#Gh()};let n;t.$current&&o(t.$current.$settings),this.oo(t.current.subscribe(t=>{if(t){if(R(e)&&"steps"in R(e))return;n?.(),n=t.Et.subscribe(o)}})),this.co(e,()=>this.#Gh()),this.co(h,()=>this.#Gh()),this.co(s,()=>this.#Gh()),this.co(t.yn,()=>this.#Gh());const r=new MutationObserver(()=>this.#Gh());r.observe(t,{attributes:1,attributeFilter:["class"]}),this.oo(()=>r.disconnect()),this.#Yh(),this.#Gh()}xt(t){Object.assign(this.#ph,t)}#Yh(){this.#Th||(this.#Ah=pt("aside",{parent:this}),this.#Th=1)}#Gh(){if(!this.#Th||!this.isConnected)return;const t=this.mo();if(!t)return;const i=R(Gi),s=R(t.yn),e=R(t.Ht),h=t.$current,o=!(h?.$settings)?.noZoom,n=R(t.state.popup),r=R(t.state.tour),a=r&&"steps"in r,c=h?.$info,l=c?.revision?Object.keys(c.revision):[],u=t.canvas.$isMobile,d=!(!("micrioAudioContext"in window)&&!this.#ph.hasAudio),p=this.#Ph&&l.length>1,m=this.#Sh&&"share"in navigator,f=d||p||m||o||this.#Eh,g=this.#Eh&&(!!n&&u||a),v=o&&!g&&!(h?.grid&&"cells"==h?.$settings?.grid?.panZoom),w=d||v||this.#Eh;if(n&&u||!f)this.#Ah.replaceChildren();else{if(p&&!g){this.#Oh?.isConnected||(this.#Oh?.remove(),this.#Fh=void 0,this.#Ih="",this.#Oh=pt("menu",{attrs:{tabindex:"0"},children:[pt("micrio-button"),this.#Fh=pt("div")]}),this.#Ah.prepend(this.#Oh)),this.#Oh.querySelector("micrio-button")?.xt({type:"a11y",title:i.Zo});const t=this.#Fh,s=l.join(",");if(s!==this.#Ih){this.#Ih=s,t.replaceChildren();for(const i of l)pt("micrio-button",{setProps:{title:Di?.of(i)??i,onclick:()=>{this.#Lh(i)}},children:[i.toUpperCase()],parent:t})}const h=t.querySelectorAll(":scope > micrio-button");for(let i=0;i<h.length;i++){const t=h[i].querySelector("button, a");t&&t.classList.toggle("active",l[i].toLowerCase()===e.toLowerCase())}}else this.#Oh?.isConnected&&this.#Oh.remove();m&&!g?(this.#Dh?.isConnected||(this.#Dh?.remove(),this.#Dh=pt("micrio-button"),this.#Ah.insertBefore(this.#Dh,this.#Vh?.isConnected?this.#Vh:null)),this.#Dh.xt({type:"share",title:i.qo,onclick:this.#zh})):this.#Dh?.isConnected&&this.#Dh.remove(),w?(this.#Vh?.isConnected||(this.#Vh?.remove(),this.#Vh=pt("micrio-button-group",{parent:this.#Ah})),d?(this.#$h?.isConnected||(this.#$h?.remove(),this.#$h=pt("micrio-button"),this.#Vh.prepend(this.#$h)),this.#$h.xt({type:s?"muted":"unmuted",title:s?i.Ko:i.Jo,onclick:this.#Ch})):this.#$h?.isConnected&&this.#$h.remove(),v?this.#Nh?.isConnected||(this.#Nh?.remove(),this.#Nh=pt("micrio-zoom-buttons"),this.#Bh?.isConnected?this.#Vh.insertBefore(this.#Nh,this.#Bh):this.#Vh.appendChild(this.#Nh)):this.#Nh?.isConnected&&this.#Nh.remove(),this.#Eh?(this.#Bh?.isConnected||(this.#Bh?.remove(),this.#Bh=pt("micrio-fullscreen",{parent:this.#Vh})),this.#Bh.xt({el:t})):this.#Bh?.isConnected&&this.#Bh.remove()):this.#Vh?.isConnected&&this.#Vh.remove()}}};customElements.define(ds.tag,ds);var ps=class extends yi{static tag="micrio-fullscreen";#ph={};#Hh=0;#pt=0;#Rh=()=>{const t=this.#ph.el;t&&(this.#Hh?document.exitFullscreen():t.requestFullscreen())};eo(){this.#ph?.el&&this.#Xh()}xt(t){void 0!==t.el&&(this.#ph.el=t.el,this.isConnected&&!this.#pt&&this.#Xh())}#Xh(){if(this.#pt)return;this.#pt=1;const t=this.#ph.el;if(!("requestFullscreen"in t))return;this.#Hh=document.fullscreenElement===t;const i=this.mo(),s=i&&t==i&&!i.events.scrollHooked,e=()=>{this.#Hh=document.fullscreenElement===t,s&&(this.#Hh?i.events.hookScroll():i.events.unhookScroll()),this.#jh()};document.addEventListener("fullscreenchange",e),this.oo(()=>document.removeEventListener("fullscreenchange",e)),this.#jh()}#jh(){this.replaceChildren();const t=R(Gi);pt("micrio-button",{setProps:{type:this.#Hh?"fullscreenLeave":"fullscreenEnter",title:t.Uo,onclick:this.#Rh},parent:this})}};customElements.define(ps.tag,ps);var ms=class extends yi{static tag="micrio-zoom-buttons";#Wh;#Uh;eo(){const t=this.mo();if(!t)return;const i=()=>{const i=R(t.Ut).filter(t=>t.id);return 1===i.length?i[0]:t.$current};this.#Wh=pt("micrio-button",{parent:this}),this.#Wh.xt({type:"zoomIn",onclick:()=>i()?.camera.zoomIn()}),this.#Uh=pt("micrio-button",{parent:this}),this.#Uh.xt({type:"zoomOut",onclick:()=>i()?.camera.zoomOut()});const s=()=>{const t=i(),s=R(Gi);this.#Wh.xt({title:s.jo,disabled:t?.camera.isZoomedIn()??1}),this.#Uh.xt({title:s.Wo,disabled:t?.camera.isZoomedOut()})};this.oo(t.current.subscribe(()=>s())),this.oo(t.Ut.subscribe(()=>s()));const e=()=>s();t.Tt.push(e),this.oo(()=>{const i=t.Tt.indexOf(e);0>i||t.Tt.splice(i,1)}),s()}};function fs(t){if("string"==typeof t)return t;let i=0,s=Math.max(t.width,t.height);for(;s>1024;)i++,s/=2;return t.micrioId&&t.width>1024?"https://r2.micr.io/"+t.micrioId+"/"+i+"/0-0."+(t.isPng?"png":t.isWebP?"webp":"jpg"):t.src}customElements.define(ms.tag,ms);var gs=class extends yi{static tag="micrio-logo-org";#ph={organisation:null};eo(){this.mo()&&this.#dh()}xt(t){void 0!==t.organisation&&(this.#ph.organisation=t.organisation),this.isConnected&&this.#dh()}#dh(){const t=this.#ph.organisation;t?.logo?(this.replaceChildren(),pt("a",{props:{rel:"noopener",href:t.href??"#",title:t.name??"",target:"_blank"},attrs:{"aria-label":`${t.name} homepage`},children:[pt("img",{props:{src:fs(t.logo),alt:"Logo",crossOrigin:"anonymous"}})],parent:this})):this.replaceChildren()}};function vs(t,i){const s=t.$current;if(!s)return;const e=t.spaceData?.images.find(t=>t.id==s.id),h=t.spaceData?.images.find(t=>t.id==i);if(!e||!h)return;const o=[(h.x??.5)-(e.x??.5),(e.y??.5)-(h.y??.5),(h.z??.5)-(e.z??.5)];let n=o[0]*o[0]+o[1]*o[1]+o[2]*o[2];n>0&&(n=1/Math.sqrt(n));const r=[o[0]*n,o[1]*n,o[2]*n],a=U(Math.atan2(-r[0],r[2])/Math.PI/2);return{v:o,vN:r,directionX:a,vector:{direction:a%1,distanceX:Math.max(0,Math.min(.4,Math.sqrt(r[0]*r[0]+r[2]*r[2]))),distanceY:-o[1]}}}customElements.define(gs.tag,gs);var ws=class extends yi{static tag="micrio-waypoint";#ph={targetId:"",image:null};#Zh=0;#qh=0;#Jh;#Kh;#Qh;#to;#io;#Ve;#so;eo(){this.#eo(),this.#dh()}xt(t){void 0!==t.targetId&&(this.#ph.targetId=t.targetId),void 0!==t.image&&(this.#ph.image=t.image),void 0!==t.settings&&(this.#ph.settings=t.settings),this.isConnected&&(this.#eo(),this.#dh())}#eo(){const{targetId:t,image:i,settings:s}=this.#ph;if(!i||!t)return;const e=this.mo();if(!e)return;const h=i.$info,o=vs(e,t);if(!o)return void console.error(`[Micrio] Could not calculate vector for target ${t}`);const{directionX:n,v:r,vN:a,vector:c}=o;this.#io=c;const l=.3>Math.abs(a[1]),u=l?.65:.5+a[1]/10,d={x:n,y:u,baseScale:h.width/1024,scale:1,rotX:(1+(l?-(1-u):a[1]))*Math.PI/2,rotY:0,rotZ:0},p=s?.coords??structuredClone(d),m=p.custom;this.#Kh=m?p:d,this.classList.toggle("direction-up",0>r[1]),this.classList.toggle("direction-down",r[1]>0);const f=()=>{this.#qh||(this.style.transform=`matrix3d(${i.camera.getMatrix(this.#Kh.x,this.#Kh.y,this.#Kh.baseScale*this.#Kh.scale,1,this.#Kh.rotX,this.#Kh.rotY,this.#Kh.rotZ,0,1,1,1).join(",")})`)},g=this;this.#Qh={coords:p,settings:s??{},click(){},get deleted(){return 0},set deleted(t){t&&(g.#qh=1)}},f(),this.oo(i.state.view.subscribe(f)),Y.u(t).then(t=>{t&&(this.#Jh=t),this.#dh()}),e.dispatchEvent(new CustomEvent("wp-print",{detail:this.#Qh})),this.#Ve=()=>{i.$settings.t?.noMarkerActions||(this.#Zh=1,i.It=void 0,i.state.marker.set(void 0),e.open(t,{vector:this.#io}))},this.#so=()=>{i.$settings.t?.noMarkerActions||(this.parentNode?.scrollTo(0,0),clearTimeout(this.#to),this.#to=setTimeout(()=>{const t=i.camera.getXY(this.#Kh.x,this.#Kh.y);!this.#Zh&&(0>t[0]||t[0]>=e.offsetWidth||0>t[1]||t[1]>=e.offsetHeight||i.A&&t[3]>4)&&i.camera.flyToCoo([this.#Kh.x,this.#Kh.y],{speed:2,limit:1}).catch(()=>{})},150))}}#dh(){if(this.#qh)return void(this.style.display="none");const{settings:t}=this.#ph,i=this.mo(),s=i?R(i.Ht):"en",e=R(Gi),h=i?.spaceData,o=t?.i18n?.[s]?.title||this.#Jh?.i18n?.[s]?.title,n=h?.icons?.[t?.customIconIdx??-1];this.classList.toggle("clicked",this.#Zh),this.replaceChildren(),pt("micrio-button",{setProps:{type:n?void 0:"up",icon:n||void 0,title:o??e.mn,onclick:this.#Ve,onfocus:this.#so},parent:this})}ho(){clearTimeout(this.#to)}};customElements.define(ws.tag,ws);var Ms=class extends yi{static tag="micrio-marker-content";_n;Ch(){const{marker:t,noEmbed:i=0,noImages:s=0,noGallery:e=0,onclose:h}=this.so;if(!t)return;const o=this.mo(),n=yi.io,r=t.id?n.get(t.id):void 0;if(!o||!r)return;const a=R(o.Ht),c=`${t.id}::${a}::${i}::${s}::${e}`;if(!this.no(c))return;const l=R(o.state.tour),u=l&&"steps"in l&&l.isSerialTour,d=r.$settings.t??{},p=!d.preventAutoPlay,m=t.i18n?.[a],f=1==t.images?.length,g=!t.data?.preventImageOpen&&!e,v=r.Gt?.includes("micrio.dev"),w=f&&t.images?.[0]?.i18n?.[a]?.description,M=t=>t.i18n?.[a]?.title,y=()=>{l&&"steps"in l&&(l.isSerialTour||d.tourAutoProgress)&&h?.()};if(m){if(this.replaceChildren(),m.title){const t=pt("h1",{textContent:m.title,parent:this});this._n=t}if(m.body&&d.primaryBodyFirst&&pt("micrio-article",{setProps:{html:m.body},parent:this}),!u&&(!m.embedUrl&&t.videoTour||m.audio)){const i=(t.videoTour?.i18n?.[a]?.audio??m?.audio)?.src,s=!p||!t?.audioAutoPlay;pt("micrio-media",{setProps:{src:i,noPlayOverlay:1,image:r,uuid:t.id,tour:t.videoTour,autoplay:t.audioAutoPlay||!m.audio&&!!t.videoTour,controls:!t.videoTour||!m.embedUrl,onended:y,paused:s},parent:this})}if(!s&&t.images?.length){const i=pt("section");for(const s of t.images){const e=pt("button",{props:{title:M(s)??"",disabled:!g},events:g?{click(){return i=s.micrioId,void(g&&o.state.popover.set({gallery:t.images,galleryStart:i,image:r}));var i}}:void 0}),h=pt("figure");pt("img",{props:{alt:M(s)??"",src:s.micrioId?`https://iiif.${v?"micrio.dev":"micr.io"}/${s.micrioId}/full/${f?"^"+Math.min(s.width,640)+",":"^,320"}/0/default.webp`:s.src},parent:h}),w&&pt("figcaption",{textContent:w,parent:h}),e.appendChild(h),i.appendChild(e)}this.appendChild(i)}if(m.embedUrl&&!i){!m.audio&&t.videoTour&&pt("micrio-media",{setProps:{image:r,className:"hidden",uuid:t.id,tour:t.videoTour,autoplay:p,secondary:1},parent:this});const i=0==t?.embedAutoPlay||!p||!(!m?.audio||!t?.audioAutoPlay);pt("micrio-media",{setProps:{image:r,src:m.embedUrl,uuid:t.id,width:400,height:240,controls:1,title:m.embedTitle,figcaption:m.embedDescription,autoplay:!i,onended:y,paused:i},parent:this})}m.body&&!d.primaryBodyFirst&&pt("micrio-article",{setProps:{html:m.body},parent:this}),m.bodySecondary&&pt("micrio-article",{setProps:{html:m.bodySecondary},parent:this})}else this.replaceChildren()}};customElements.define(Ms.tag,Ms);var ys=H(void 0),_s=0;function bs(){ys.set(void 0)}ys.subscribe(t=>{t?_s||window.addEventListener("click",bs):_s&&window.removeEventListener("click",bs),_s=!!t});var ks=class extends yi{static tag="micrio-menu";#ph={menu:null,originalId:null};#ho;eo(){const{menu:t}=this.#ph,i=this.mo();if(!i)return;const{Ht:s}=i;1!==t.children?.length||this.#oo(t,R(s))?.title||(this.#ph.menu=t.children[0]),this.#no(),this.#dh(),this.ao(ys,()=>this.classList.toggle("opened",this.#ro(this.#ph.menu))),this.uo(s,j(W(()=>{this.#no(),this.#dh()})))}#no(){const{menu:t,originalId:i}=this.#ph,s=this.mo();if(!s)return;const{events:e,state:h,Ht:o}=s,n=this.#oo(t,R(o)),r=t;this.#ho=void 0,t.action?this.#ho=t.action:t.markerId?this.#ho=()=>{i&&s.$current?.id!=i&&s.open(i),s.$current?.state.marker.set(t.markerId)}:(n?.content||n?.embed||t.image||r.content||r.embedUrl||n?.title&&!t.children?.length&&!t.link&&!t.markerId)&&(this.#ho=()=>{e.Pt("page-open",t),h.popover.set({contentPage:t})})}xt(t){Object.assign(this.#ph,t)}#oo(t,i){return t.i18n?.[i]??t}#ro(t){const i=R(ys);if(!i)return 0;const s=t=>t===i||!!t.children?.some(s);return s(t)}#dh(){const{menu:t,originalId:i,onclose:s}=this.#ph,e=this.mo();if(!e)return;const h=R(e.Ht),o=this.#oo(t,h);this.replaceChildren(),this.classList.toggle("opened",this.#ro(t)),this.setAttribute("data-title",o?.title?.toLowerCase()??"");const n=i=>{t.link||i.preventDefault(),t.children?.length&&i.stopPropagation(),this.#ho?.();const e=!!(this.#ro(t)||this.#ho||t.link);ys.set(e?void 0:t),(this.#ho||t.link)&&s?.()};if(t.link){const i=pt("a",{props:{href:t.link},events:{click:n},children:[pt("strong",{textContent:o?.title??"(Unknown)",children:[pt("micrio-icon",{setProps:{name:t.linkTargetBlank?"linkExt":"link"},style:{opacity:".75"}})]})],parent:this});t.linkTargetBlank&&(i.target="_blank")}else{const i=[o?.title??"(Unknown)"];t.children?.length&&i.push(pt("micrio-icon",{setProps:{name:"chevronDown"}}));const s=[pt("strong",{children:i})];t.icon&&s.unshift(qi(t.icon,{style:"height:1em;vertical-align:-.125em;margin-right:10px"})),pt("button",{props:{type:"button"},events:{click:n},children:s,parent:this})}t.children?.length&&pt("div",{parent:this,children:t.children.map(t=>pt("micrio-menu",{setProps:{menu:t,originalId:i,onclose:bs}}))})}};customElements.define(ks.tag,ks);var xs=class extends yi{static tag="micrio-toolbar";#x;#ao=0;#co=0;#Rh=()=>{this.#ao=!this.#ao,this.#dh()};eo(){const t=this.mo();if(!t)return;const{Ht:i}=t;this.#co=500>=window.innerWidth;const s=()=>{this.#co=500>=window.innerWidth,this.#co||(this.#ao=0),this.#dh()};this.#dh(),this.oo(t.current.subscribe(t=>{t&&(this.oo(t.data.subscribe(t=>{this.#x=t,this.#dh()})),this.oo(t.Et.subscribe(()=>this.ro?.())))})),this.oo(t.state.tour.subscribe(()=>this.#dh())),this.oo(t.state.marker.subscribe(()=>this.#dh())),this.oo(t.state.popover.subscribe(()=>this.#dh())),this.oo(i.subscribe(()=>this.#dh())),window.addEventListener("resize",s),this.oo(()=>window.removeEventListener("resize",s))}#dh(){if(!this.#x)return;const t=this.mo();if(!t)return;const{Ht:i,state:s}=t,e=R(i),h=R(s.tour),o=R(s.marker),n=R(s.popover),r=R(Gi),a=t.$current?.id,c=t=>!!t.i18n?.[e],l=!!h||!!o||!!n,u=(t.bundleTours??[]).concat(this.#x?.markerTours??[]).filter(c),d=u.length>0,p=this.#x?.tours?.filter(c)??[],m=p.length>0,f=d&&m,g=this.#x?.pages?this.#x.pages.filter(t=>!t.id?.startsWith("_")&&(t=>!!t.i18n?.[e])(t)).concat(this.#x.pages.filter(t=>t.id?.startsWith("_"))):void 0,v=!(g?.length||d||m),w=[(g||[]).map(t=>t.id).join(","),u.map(t=>t.id).join(",")+"|"+p.map(t=>t.id).join(","),l,e,this.#co,this.#ao].join("::");if(!this.no(w))return;if(v||l)return void this.replaceChildren();this.replaceChildren(),this.#co&&this.#ao&&pt("div",{className:"backdrop",events:{click:this.#Rh},parent:this});const M=pt("menu",{className:(this.#co&&this.#ao?"shown":"")||void 0}),y=()=>{this.#co&&(this.#ao=0,this.#dh())};if(g)for(const _ of g)pt("micrio-menu",{setProps:{menu:_,originalId:a,onclose:y},parent:M});d&&pt("micrio-menu",{setProps:{onclose:y,menu:{id:"marker-tours",i18n:{[e]:{title:f?r.gn:r.fn}},children:u.map(t=>({id:t.id??E(),i18n:{[e]:{title:t.i18n?.[e]?.title??"(Untitled)"}},action(){t.initialStep=0,s.tour.set(t)}}))}},parent:M}),m&&pt("micrio-menu",{setProps:{onclose:y,menu:{id:"video-tours",i18n:{[e]:{title:f?r.vn:r.fn}},children:p.map(i=>({id:i.id??E(),i18n:{[e]:{title:i.i18n?.[e]?.title??"(Untitled)"}},action(){t.$current&&t.$current.id!=a&&t.open(a),s.tour.set(i)}}))}},parent:M}),this.appendChild(M),this.ro?.(),this.#co&&pt("micrio-button",{setProps:{title:r.pn,type:this.#ao?"close":"ellipsisVertical",className:"transparent"+(this.querySelector("menu.indent")?" indent":"")||void 0,onclick:this.#Rh},parent:this})}ro(){const t=this.querySelector("menu");if(t){const i=!this.mo()?.$current?.$settings?.noLogo;t.classList.toggle("indent",i)}}};customElements.define(xs.tag,xs);var Ts,Ps,Ss=class{#Xs;#lo;#uo;#do;#po;#gs;constructor(t,i,s,e){this.#Xs=t,this.#Xh(i,s,e)}#Xh(t,i,s){const e=this.#Xs.$current.$info;if(!e)return;const h=e.width,o=e.height,n=t.positionalAudio;if(!n)return;this.#lo=i.createGain(),this.#uo=i.createPanner(),this.#uo.panningModel="equalpower",this.#uo.rolloffFactor=1,this.#uo.coneOuterGain=0;const r=()=>{if(this.#lo.gain.value=n.volume??1,s){this.#uo.refDistance=2.75*n.radius,this.#uo.maxDistance=n.radius*(11/3);const i=t.x*-Math.PI*2,s=(t.y-.5)*-Math.PI,e=Math.cos(s)*Math.sin(i)*11,h=11*Math.sin(s),o=Math.cos(s)*Math.cos(i)*11;this.#uo.positionX.value=e,this.#uo.positionY.value=h,this.#uo.positionZ.value=o;const[r,a,c]=it(e,h,o);this.#uo.orientationX.value=r,this.#uo.orientationY.value=a,this.#uo.orientationZ.value=c}else this.#uo.distanceModel="linear",this.#uo.positionX.value=2*(t.x-.5),this.#uo.positionY.value=2*(.5-t.y)*(o/h),this.#uo.positionZ.value=-.2,this.#uo.rolloffFactor=2,this.#uo.refDistance=n.radius*n.radius*10,this.#uo.maxDistance=5*n.radius},a=()=>{this.#do&&this.#do.disconnect(),this.#do=i.createBufferSource(),n.loop&&(n.repeatAfter>0?this.#do.onended=()=>{this.#po=setTimeout(a,1e3*n.repeatAfter)}:this.#do.loop=1),this.#lo.gain.value=n.volume??1,this.#do.buffer=window.__micrioAudioBuffers?.[n.src]??null,this.#do.buffer&&(this.#do.connect(this.#uo),this.#do.start())};r(),this.#uo.connect(this.#lo),this.#lo.connect(Ts??i.destination),(async()=>{if(!n.src)return;const t=window.__micrioAudioBuffers||{};t[n.src]||(t[n.src]=await fetch(n.src).then(t=>t.arrayBuffer()).then(t=>i.decodeAudioData(t)),window.__micrioAudioBuffers=t),n.alwaysPlay&&n.repeatAfter>0?this.#po=setTimeout(a,1e3*n.repeatAfter):a()})(),this.#Xs.addEventListener("audio-update",r),this.#gs=()=>this.#Xs.removeEventListener("audio-update",r)}#ee(){this.#do&&this.#do.disconnect(),clearTimeout(this.#po),this.#uo.disconnect(),this.#lo.disconnect()}destroy(){this.#gs?.(),this.#ee()}},Es=null,Is=H(0);function Cs(t,i,s){Ps&&(Ps.setPosition?Ps.setPosition(t,i,s):"positionX"in Ps&&(Ps.positionX.value=t,Ps.positionY.value=i,Ps.positionZ.value=s))}function zs(t,i,s){Ps&&(Ps.setOrientation?Ps.setOrientation(t,i,s,0,1,0):"forwardX"in Ps&&(Ps.forwardX.value=t,Ps.forwardY.value=i,Ps.forwardZ.value=s))}var Ls=class{#mo=new Audio;#fo;#go;#vo=-1;constructor(t,i,s){this.#fo=t,this.#go=i,this.#mo.preload="none",this.#mo.loop=0,this.#mo.volume=s,this.#mo.onended=()=>this.#wo(),this.#wo()}#wo(){if(!this.#go&&this.#vo+1===this.#fo.length)return;const t=this.#fo[++this.#vo%this.#fo.length];this.#mo.src=t.src??"",this.#mo.play()}destroy(){this.#mo.pause()}},As=class{#Xs;#d;#Mo;#yo=[];#_o=[];constructor(t,i){this.#Xs=t,this.#d=i,this.#Xh()}#bo(t){for(const h of this.#_o)h.destroy();if(this.#_o=[],!Es||!t)return;const i=t.$info;if(!i)return;const s=!!i.is360,e=t.$data?.markers?.filter(t=>!!t.positionalAudio);if(e?.length)for(const h of e)this.#_o.push(new Ss(this.#Xs,h,Es,s))}#Xh(){const t=this.#Xs,i=this.#d,{events:s}=t,e=i.$info;if(!e)return;const h=!!e.is360,o=e.height/e.width;if(!("AudioContext"in window))return;const n=()=>Is.set(1),r=()=>{"suspended"===Es?.state?Es.resume().then(()=>{}).catch(()=>{}):Es||n()},a=new Audio("data:audio/mpeg;base64,...");a.volume=xt.iOS?0:1e-4,document.body.appendChild(a),this.#yo.push(Is.subscribe(s=>{if(!s)return;const e=R(t.yn)?0:1;Es||(t=>{if(!Ts){if(Es||(Es="micrioAudioContext"in window?window.micrioAudioContext:new AudioContext),!Es)return console.warn("[Micrio] Your browser does not support the Web Audio API");"suspended"===Es.state&&Es.resume().then(()=>{}).catch(()=>{}),(Ts=Es.createGain()).connect(Es.destination),Ts.gain.value=t,"upX"in(Ps=Es.listener)&&(Ps.upX.value=0,Ps.upY.value=1,Ps.upZ.value=0)}})("number"==typeof e?e:1),Es&&(i.$data?.markers?.filter(t=>!!t.positionalAudio).length&&this.#yo.push(i.state.view.subscribe(t=>{if(!t)return;const s=Math.max(0,1.05-i.camera.getScale());((t,i,s)=>{if(h){t*=2*-Math.PI,i-=.5,i*=-Math.PI;const e=10*(1-s),h=Math.cos(i)*Math.sin(t)*e,o=Math.sin(i)*e,n=Math.cos(i)*Math.cos(t)*e;Cs(h,o,n);const[r,a,c]=it(h,o,n);zs(r,a,c)}else Cs(2*(t-.5),2*(.5-i)*o,s),zs(0,0,-1)})(t[0]+t[2]/2,t[1]+t[3]/2,s*(h?1:1.5))})),this.#bo(t.$current))})),this.#yo.push(t.current.subscribe(t=>{t&&Es&&this.#bo(t)})),Es||(a.play().then(n).catch(()=>s.Pt("autoplay-blocked")),addEventListener("pointerup",r,{once:1}));const c=i.$data;if(c?.music?.items.length){const i=R(t.yn)?0:1;this.#Mo=new Ls(c.music.items,c.music.loop??1,i*(c.music.volume??1))}this.#yo.push(t.yn.subscribe(t=>{Ts&&(Ts.gain.value=t?0:1)})),this.#yo.push(()=>{Es&&(a.remove(),removeEventListener("pointerup",r))})}destroy(){for(const t of this.#_o)t.destroy();this.#_o=[];for(const t of this.#yo)t();this.#yo=[],this.#Mo?.destroy()}},$s=class{#ko=[];#Ue;#xo;#ge;#To=1;#Po=0;#Z;#So=0;#Eo;#Io=0;#Co;#Xs;#d;#x;constructor(t,i){this.#d=t,this.#x=i,this.#Xs=t.engine.micrio;const s=i.i18n?.[R(this.#Xs.Ht)];if(!s)throw new Error("No valid content for video tour!");this.#Co=s,this.#Io=!i.keepInteraction&&this.#Xs.events.$enabled,i.instance=this,this.read(),this.#zo(),this.#Xs.events.Pt("videotour-start",this.#x)}destroy(){this.#Io&&this.#Xs.events.enabled.set(1),this.#Lo(),this.#Xs.removeAttribute("data-tour-active"),clearTimeout(this.#ge),this.#Po&&(this.#d.camera.stop(),this.#Po=0),this.#Xs.events.Pt("videotour-stop",this.#x),this.#Eo=void 0,this.#x.instance=void 0,this.#xo=void 0}read(){const t=this.#Co.timeline;this.#ko=[];for(let i=0;i<t.length;i++){const s=t[i],e=t[i-1],h=e?e.end:0;this.#ko.push({view:s.rect,start:1e3*h,duration:1e3*(s.start-h),pauseDuration:1e3*(s.end-s.start)})}this.#Eo&&!this.#Po&&(this.progress=this.currentTime)}#zo(){const t=this.#Co.events;if(!t?.length)return;const i=this.duration;for(const s of t)s.start=Number(s.start||0),s.end=Math.min(Number(s.end||0),i)}#Lo(){const t=this.#Co.events;if(t?.length)for(const i of t)i.active&&(i.active=0,this.#Xs.events.Pt("tour-event",{...i}))}updateEvents(t){const i=this.#Co.events;if(i?.length)for(const s of i){const i=s.start<=t&&s.end>=t;i!=!!s.active&&(s.active=i,this.#Xs.events.Pt("tour-event",{...s}))}}get duration(){return Number(this.#Co.duration)}set duration(t){this.#Co.duration=t}get paused(){return this.#To}get ended(){return this.currentTime>=this.duration}get currentTime(){return(this.#Z??(this.#Eo?Date.now()-this.#Eo:0))/1e3}set currentTime(t){this.#Ao(t/this.#Co.duration)}get progress(){return this.currentTime/this.#Co.duration}set progress(t){this.#Ao(t)}play(){this.#$o(),this.#So=0,this.#Z?(this.#Eo=Date.now()-this.#Z,this.#To=0,this.#Do(this.#Z),this.#Z=void 0):this.#Po||(this.#Eo=Date.now(),void 0===this.#xo?this.#Oo(0,0):this.#Do(this.duration*this.#xo*1e3),this.#xo=void 0),this.#To=0,this.#Po=1}pause(){this.#To||null==this.#Ue||null==this.#Eo||(this.#To=1,this.#Fo(),clearTimeout(this.#ge),0>this.#Ue||this.#d.camera.stop(),this.ended?this.#us():this.#Z=Date.now()-this.#Eo)}#us(){this.#Fo(),this.#Z=void 0,this.#Po=0,this.read()}#Oo(t,i){if(null==this.#Eo)return;if(clearTimeout(this.#ge),!this.#ko[t]){if(!this.paused||!this.#So){const t=Math.max(0,Math.round(1e3*this.duration-(Date.now()-this.#Eo)));t>0&&(this.#ge=setTimeout(()=>this.pause(),t))}return}const s=this.#ko[t],e=Math.round(s.start-(Date.now()-this.#Eo));this.#Ue=t,this.#d.camera.stop(),e>0?this.#To||(this.#ge=setTimeout(()=>this.#Vo(i),e)):this.#Vo(i)}#No(){null!=this.#Ue&&this.#Oo(this.#Ue+1)}#Vo(t=0){if(null==this.#Ue||isNaN(t))return;const i=this.#ko[this.#Ue];if(!i)return;const s=this.#ko[this.#Ue-1]?.view;if(this.#So&&s){const e=nt.get(t),h=K(s),o=K(i.view);this.#d.camera.setView([h.centerX*(1-e)+o.centerX*e-(h.width*(1-e)+o.width*e)/2,h.centerY*(1-e)+o.centerY*e-(h.height*(1-e)+o.height*e)/2,h.width*(1-e)+o.width*e,h.height*(1-e)+o.height*e],{noLimit:1}),this.#No()}else this.#d.camera.flyToView(i.view,{duration:i.duration,progress:t,prevView:s}).then(()=>{null!=this.#Ue&&i===this.#ko[this.#Ue]&&this.#No()}).catch(()=>{})}#$o(){this.#Xs.setAttribute("data-tour-active",""),this.#Xs.events.Pt("videotour-play"),this.#Io&&this.#Xs.events.enabled.set(0)}#Fo(){this.#Xs.events.Pt("videotour-pause"),this.#Io&&this.#Xs.events.enabled.set(1)}#Ao(t){t=Math.max(0,Math.min(1,t)),this.#So=!!this.paused||!this.#Po,this.pause(),this.#So||(this.#To=0,this.#$o());const i=this.duration*t*1e3;this.#Z=i,this.#Do(i),this.#So?this.pause():(this.#Z=void 0,this.#To=0)}#Do(t){let i,s=0;for(;s<this.#ko.length&&this.#ko[s].start<=t;s++)i=this.#ko[s];if(!i)return this.#ko.length&&this.#d.camera.stop(),this.paused||this.#Oo(0),void this.updateEvents(t/1e3);this.#d.camera.stop();const e=i.duration>0?(t-i.start)/i.duration:0;this.#Eo=Date.now()-i.start-i.duration*e,e>1?(this.#Oo(s),i.view&&this.#d.camera.setView(i.view,{noLimit:1})):(s>1&&this.#d.camera.setView(this.#ko[s-2].view,{noLimit:1}),this.#Oo(s-1,e)),this.updateEvents(t/1e3)}},Ds={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},Os=class{#Bo;#Go=0;#Yo;#Ho;#Ro;constructor(t,i,s={}){this.#Yo=t,this.#Ho=i,this.#Ro=s}async initialize(){return await wt("YT","https://r2.micr.io/youtube.js","onYouTubeIframeAPIReady"),new Promise((t,i)=>{this.#Bo=new window.YT.Player(this.#Yo,{host:"https://www.youtube-nocookie.com",width:this.#Ho.width.toString(),height:this.#Ho.height.toString(),playerVars:{controls:0},events:{onError:()=>{this.#Ro.onError?.(new Error("YouTube player error")),i(new Error("YouTube player error"))},onReady:()=>{this.#Go?i(new Error("Player destroyed during initialization")):(this.#Ro.onReady?.(),this.#Ro.onDurationChange?.(this.#Bo.getDuration()),t())},onStateChange:t=>this.#Xo(t.data)}})})}#Xo(t){switch(t){case Ds.UNSTARTED:this.#Ro.onBlocked?.(),this.#Ro.onPause?.();break;case Ds.ENDED:this.#Ro.onEnded?.();break;case Ds.PLAYING:this.#Ro.onPlay?.(),this.#Ro.onSeeked?.();break;case Ds.PAUSED:this.#Ro.onPause?.();break;case Ds.BUFFERING:this.#Ro.onBuffering?.(),this.#Ro.onSeeking?.()}}async play(){this.#Bo?.playVideo()}pause(){this.#Go||this.#Bo?.pauseVideo?.()}async getCurrentTime(){return this.#Bo?.getCurrentTime?.()??0}setCurrentTime(t){this.#Ro.onSeeking?.(),this.#Bo?.seekTo?.(t)}async getDuration(){return this.#Bo?.getDuration?.()??0}async isPaused(){if(!this.#Bo)return 1;const t=this.#Bo.getPlayerState?.();return void 0===t||[Ds.UNSTARTED,Ds.ENDED,Ds.PAUSED,Ds.CUED].includes(t)}setMuted(t){t?this.#Bo?.mute?.():this.#Bo?.unMute?.()}setVolume(t){}destroy(){this.#Go=1,this.#Bo?.destroy?.(),this.#Bo=void 0}},Fs=class{#Bo;#Go=0;#Yo;#Ho;#Ro;constructor(t,i,s={}){this.#Yo=t,this.#Ho=i,this.#Ro=s}async initialize(){return await wt("Vimeo","https://r2.micr.io/vimeo.min.js"),new Promise((t,i)=>{this.#Bo=new window.Vimeo.Player(this.#Yo,{width:this.#Ho.width.toString(),height:this.#Ho.height.toString(),title:0,autoplay:0});const s=this.#Bo;s.on("error",()=>{this.#Ro.onError?.(new Error("Vimeo player error")),i(new Error("Vimeo player error"))}),s.on("loaded",()=>{this.#Go?i(new Error("Player destroyed during initialization")):s.getVolume().then(()=>{this.#Ro.onReady?.(),t()})}),s.on("play",()=>{this.#Ro.onPlay?.(),this.#Ro.onSeeked?.()}),s.on("bufferstart",()=>{this.#Ro.onBuffering?.(),this.#Ro.onSeeking?.()}),s.on("seeked",()=>{this.#Ro.onSeeked?.()}),s.on("pause",()=>{this.#Ro.onPause?.()}),s.on("timeupdate",t=>{t&&(this.#Ro.onDurationChange?.(t.duration),this.#Ro.onTimeUpdate?.(t.seconds))}),s.on("ended",()=>{this.#Ro.onEnded?.()})})}async play(){this.#Bo?.play()}pause(){this.#Bo?.pause()}async getCurrentTime(){return await(this.#Bo?.getCurrentTime?.())??0}setCurrentTime(t){this.#Bo?.setCurrentTime?.(t)}async getDuration(){return await(this.#Bo?.getDuration?.())??0}async isPaused(){return await(this.#Bo?.getPaused?.())??1}setMuted(t){this.#Bo?.setVolume?.(t?0:1)}setVolume(t){this.#Bo?.setVolume?.(Math.max(0,Math.min(1,t)))}destroy(){if(this.#Go=1,this.#Bo){for(const t of["error","loaded","play","bufferstart","seeked","pause","volumechange","timeupdate","ended"])this.#Bo.off(t);this.#Bo.destroy(),this.#Bo=void 0}}},Vs=class{element;callbacks;constructor(t,i={}){this.element=t,this.callbacks=i,this.#jo()}#jo(){const t=this.element,i=this.callbacks;i.onPlay&&t.addEventListener("play",i.onPlay),i.onPause&&t.addEventListener("pause",i.onPause),i.onEnded&&t.addEventListener("ended",i.onEnded),i.onSeeking&&t.addEventListener("seeking",i.onSeeking),i.onSeeked&&t.addEventListener("seeked",i.onSeeked),i.onTimeUpdate&&t.addEventListener("timeupdate",()=>i.onTimeUpdate?.(t.currentTime)),i.onDurationChange&&t.addEventListener("durationchange",()=>i.onDurationChange?.(t.duration)),i.onError&&t.addEventListener("error",()=>i.onError?.(new Error("Media playback error"))),i.onReady&&t.addEventListener("canplay",i.onReady)}async play(){try{await this.element.play()}catch(t){throw t instanceof Error&&!/pause\(\)/.test(t.message)&&this.callbacks.onBlocked?.(),t}}pause(){this.element.pause()}async getCurrentTime(){return this.element.currentTime}setCurrentTime(t){this.element.currentTime=t}async getDuration(){return this.element.duration}async isPaused(){return this.element.paused}setMuted(t){this.element.muted=t}setVolume(t){this.element.volume=Math.max(0,Math.min(1,t))}destroy(){const t=this.element,i=this.callbacks;i.onPlay&&t.removeEventListener("play",i.onPlay),i.onPause&&t.removeEventListener("pause",i.onPause),i.onEnded&&t.removeEventListener("ended",i.onEnded),i.onSeeking&&t.removeEventListener("seeking",i.onSeeking),i.onSeeked&&t.removeEventListener("seeked",i.onSeeked)}},Ns="https://r2.micr.io/hls-1.6.15.min.js",Bs={abrEwmaDefaultEstimate:1e7,abrEwmaDefaultEstimateMax:5e7},Gs=()=>"MediaSource"in globalThis||"ManagedMediaSource"in globalThis,Ys=t=>`https://videodelivery.net/${t}/manifest/video.m3u8`,Hs=class extends Vs{#Wo;#Go=0;#Uo;constructor(t,i,s={}){super(t,s),this.#Uo=i}async initialize(){if(await wt("Hls",Ns),this.#Go)throw new Error("Adapter destroyed during initialization");const t=new window.Hls(Bs);this.#Wo=t,t.loadSource(this.#Uo),t.attachMedia(this.element),this.callbacks.onReady?.()}destroy(){this.#Go=1,super.destroy(),this.#Wo?.destroy(),this.#Wo=void 0}};function Rs(t){if(isNaN(t))return"0:00";const i=new Date(1e3*Math.abs(t)).toISOString().slice(11,19);return(0>t?"-":"")+(i.startsWith("00:")?i.slice(3):i)}var Xs=class extends yi{static tag="micrio-media-controls";#ph={paused:1,ended:0};#Zo;#qo;#Jo;#Ko;#Qo;#tn;#in;#Th=0;#sn;#en=0;#hn=0;#on=-1;#L="";eo(){this.#Yh(),this.oo(as.subscribe(()=>this.#Gh()))}xt(t){Object.assign(this.#ph,t),this.isConnected&&(this.#Yh(),this.#Th&&this.#Gh())}#Yh(){const t=this.#ph;if(!this.#Th){this.#Th=1,this.#Zo=pt("aside",{events:{click:t=>t.stopPropagation(),keydown:t=>t.stopPropagation()},parent:this}),this.#qo=pt("micrio-button",{parent:this.#Zo}),t.hasAudio&&(this.#Jo=pt("micrio-button",{parent:this.#Zo})),t.subtitles&&(this.#Ko=pt("micrio-button",{parent:this.#Zo}));const i=pt("div"),s=pt("div",{attrs:{"data-part":"bars"},children:[this.#tn=pt("div",{attrs:{"data-part":"bar"}})]}),e=t=>{0==t.button&&(window.addEventListener("mousemove",h),window.addEventListener("mouseup",o),h(t))},h=t=>{const i=s.getClientRects()[0];if(!i)return;const e=Math.min(1,Math.max(0,(t.clientX-i.left)/i.width));this.#ph.onseek?.(e*this.#ph.duration)},o=()=>{window.removeEventListener("mousemove",h),window.removeEventListener("mouseup",o)};s.addEventListener("mousedown",e),i.appendChild(s),this.#in=pt("span",{parent:i}),this.#Zo.appendChild(i),t.fullscreenEl&&(this.#Qo=pt("micrio-fullscreen",{parent:this.#Zo})),t.onclose&&pt("micrio-button",{setProps:{type:"close",title:R(Gi).Xo,onclick:t.onclose},parent:this.#Zo})}this.#Gh()}#Gh(){const t=this.#ph,i=R(Gi),s=R(as);if(t.paused===this.#sn&&t.seeking===this.#en&&void 0!==this.#sn||(this.#sn=t.paused,this.#en=!!t.seeking,this.#qo.xt({type:t.paused?"play":"pause",title:t.paused?i.rn:i.an,disabled:!!t.seeking,onclick:t.onplaypause})),this.#Jo&&t.muted!==this.#hn&&(this.#hn=!!t.muted,this.#Jo.xt({type:t.muted?"muted":"unmuted",title:t.muted?i.Ko:i.Jo,disabled:t.seeking,onclick:t.onmute})),this.#Ko&&this.#Ko.xt({type:s?"subtitles":"subtitlesOff",active:s,title:i.ln,onclick:()=>as.set(!R(as))}),this.#Qo&&this.#Qo.xt({el:t.fullscreenEl}),t.duration&&!isNaN(t.duration)){const i=(t.currentTime??0)/t.duration*100;(Math.abs(i-this.#on)>.5||0===i)&&(this.#on=i,this.#tn.style.width=`${i}%`);const s=t.getTimeDisplay?t.getTimeDisplay(t.currentTime??0,t.duration):(0>t.duration-(t.currentTime??0)?"":"-")+(t=>new Date(1e3*Math.abs(t)).toISOString().slice(14,19))(Math.abs(t.duration-(t.currentTime??0)));s!==this.#L&&(this.#L=s,this.#in.textContent=s)}else"0:00"===this.#L&&0===this.#on||(this.#L="0:00",this.#on=0,this.#in.textContent="0:00",this.#tn.style.width="0%")}};customElements.define(Xs.tag,Xs);var js,Ws=/((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu.be|youtube-nocookie\.com))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?/,Us=/vimeo\.com/,Zs=0,qs=class extends yi{static tag="micrio-media";#nn;#rn;#Yo;#Uo;#an;#cn;#ln=1;#un=0;#W=0;#_h=0;#dn=0;#pn=0;#mn;#fn(t,i,s){const e=t.match(Ws)?.[5];if(!e)return;const h=pt("iframe",{props:{src:`https://www.youtube-nocookie.com/embed/${e}?autoplay=${i.autoplay?1:0}&playsinline=1&enablejsapi=1`,width:String(i.width??400),height:String(i.height??240)},attrs:{allow:"autoplay; encrypted-media",allowfullscreen:""},parent:s});this.#Yo=h}#gn(t,i,s){const e=t.match(/\/(\d+)/);if(!e?.[1])return;const h=e[1],o=t.slice(t.indexOf(h)+h.length+1).replace(/\?.*$/,"")||void 0,n=pt("iframe",{props:{src:`https://player.vimeo.com/video/${h}?${o?`h=${o}&`:""}title=0&portrait=0&sidedock=0&byline=0&controls=0`,width:String(i.width??400),height:String(i.height??240)},attrs:{allow:"autoplay; fullscreen",allowfullscreen:""},parent:s});this.#Yo=n}#vn(t,i,s){const e=Ys(t.slice(8)),h=pt("video",{props:{src:e,width:i.width??400,height:i.height??240,controls:0,preload:"metadata",playsInline:1,crossOrigin:"anonymous",...i.autoplay?{autoplay:1}:{},...i.muted?{muted:1}:{}},parent:s});this.#nn=h,this.#wn(h),this.#Uo=e}#Mn(t,i,s){if(!(this.#nn instanceof HTMLAudioElement)){const t=(js||((js=document.createElement("audio")).style.display="none",js.controls=0,js.preload="metadata",document.body.appendChild(js)),Zs++,js);this.#nn=t,this.#wn(t),this.oo(()=>{--Zs>0||(Zs=0,js?.remove(),js=void 0),this.#nn=void 0})}const e=this.#nn;e.src=t,i.autoplay?e.setAttribute("autoplay",""):e.removeAttribute("autoplay"),e.muted=!!i.muted}#yn(t,i,s){const e=pt("video",{props:{src:t,width:i.width??400,height:i.height??240,controls:0,preload:"metadata",playsInline:1,crossOrigin:"anonymous",...i.autoplay?{autoplay:1}:{},...i.muted?{muted:1}:{}},parent:s});this.#nn=e,this.#wn(e)}Ch(){const t=this.so,i=t.src;if(!i&&!t.tour)return void this.replaceChildren();const s=i?Ws.test(i):0,e=i?Us.test(i):0,h=i?i.startsWith("cfvid://"):0,o=i?i.includes(".mp3")||i.includes(".ogg")||i.includes(".wav")||i.includes("audio/"):0,n=!!t.tour&&!!t.image&&!i;this.replaceChildren();const r=pt("figure",{className:t.className});if(t.is360&&r.style.setProperty("--micrio-background","transparent"),s?this.#fn(i,t,r):e?this.#gn(i,t,r):h?this.#vn(i,t,r):o&&i?this.#Mn(i,t,r):i&&this.#yn(i,t,r),t.figcaption&&pt("figcaption",{textContent:t.figcaption,parent:r}),this.appendChild(r),this.#Yo){const i=t.width??400,h=t.height??240;s?(this.#an=new Os(this.#Yo,{width:i,height:h},{onPlay:()=>{this.#ln=0,this.#_n(),this.#bn()},onPause:()=>{this.#ln=1,this.#kn(),this.#bn()},onEnded:()=>{this.#un=1,this.#ln=1,this.#kn(),this.#bn(),t.onended?.()},onSeeking:()=>{this.#dn=1},onSeeked:()=>{this.#dn=0,this.#bn()}}),this.#an.initialize().then(()=>{t.autoplay&&this.#an.play()}).catch(()=>{})):e&&(this.#an=new Fs(this.#Yo,{width:i,height:h},{onPlay:()=>{this.#ln=0,this.#bn()},onPause:()=>{this.#ln=1,this.#bn()},onEnded:()=>{this.#un=1,this.#ln=1,this.#bn(),t.onended?.()},onTimeUpdate:t=>{this.#_h=t,this.#bn()},onDurationChange:t=>{this.#W=t}}),this.#an.initialize().then(()=>{t.autoplay&&this.#an.play()}).catch(()=>{}))}if(h&&this.#Uo&&this.#nn&&Gs()&&(this.#an=new Hs(this.#nn,this.#Uo,{onReady:()=>{this.#bn()},onEnded:()=>{this.#un=1,this.#ln=1,this.#bn(),t.onended?.()}}),this.#an.initialize().catch(()=>{})),t.tour&&t.image&&(this.#nn||n)){if(this.#rn=new $s(t.image,t.tour),this.#nn){const t=()=>this.#rn?.play();this.#nn.addEventListener("play",t),this.oo(()=>this.#nn?.removeEventListener("play",t))}if(n){this.#W=this.#rn.duration;const i=setInterval(()=>{this.#_h=this.#rn.currentTime,this.#W=this.#rn.duration,this.#ln=this.#rn.paused,this.#un=this.#rn.ended,this.#rn.updateEvents(this.#_h),this.#bn(),t.secondary||this.mo()?.dispatchEvent(new CustomEvent("timeupdate",{detail:this.#_h})),!this.#un||this.#nn&&!this.#nn.ended||t.onended?.()},250);this.oo(()=>clearInterval(i)),t.autoplay&&this.#rn.play()}else{const t=()=>this.#rn?.pause();this.#nn?.addEventListener("ended",t),this.oo(()=>this.#nn?.removeEventListener("ended",t)),this.#nn?.paused||this.#rn?.play()}}if(!t.secondary&&t.tour&&!("steps"in t.tour)){const i=this.mo()?.lang||"en",s=t.tour.i18n?.[i]?.subtitle;s?.src&&(this.#mn=pt("micrio-subtitles",{setProps:{src:s.src,mediaEl:this.#nn??this},parent:this.closest("micrio-main")||this.parentNode}))}if(0!=t.controls){const i=!(t.secondary||!t.tour||"steps"in t.tour||!t.tour.i18n?.[this.mo()?.lang||"en"]?.subtitle),s=()=>{const t=this.#nn;t?t.paused?(t.play().catch(()=>{}),this.#rn?.play()):(t.pause(),this.#rn?.pause()):this.#rn?this.#rn.paused?this.#rn.play():this.#rn.pause():this.#an&&this.#an.isPaused().then(t=>{t?this.#an.play():this.#an.pause()})},e=()=>{const t=this.#nn;t?(this.#pn=!this.#pn,t.muted=this.#pn,this.#bn()):this.#an&&(this.#pn=!this.#pn,this.#an.setMuted(this.#pn),this.#bn())},h=t=>{const i=this.#nn;i?i.currentTime=t:this.#rn?this.#rn.currentTime=t:this.#an&&this.#an.setCurrentTime(t)},a=()=>{const n=this.#nn;if(!n)return this.#rn?void 0:void this.#an;this.#_h=n.currentTime,this.#W=n.duration||0,this.#ln=n.paused,this.#un=n.ended||0,this.#dn=n.seeking,this.#pn=n.muted,c.xt({currentTime:this.#_h,duration:this.#W,paused:this.#ln,ended:this.#un,seeking:this.#dn,muted:this.#pn,hasAudio:t.hasAudio??(!!t.src&&!o),subtitles:i,getTimeDisplay:t.getTimeDisplay,fullscreenEl:t.fullscreenEl??(o?void 0:r),onplaypause:s,onmute:e,onseek:h,onclose:t.onclose})},c=pt("micrio-media-controls",{setProps:{paused:1,ended:0,hasAudio:t.hasAudio??(!!t.src&&!o),subtitles:i,getTimeDisplay:t.getTimeDisplay,fullscreenEl:t.fullscreenEl??(o?void 0:r),onplaypause:s,onmute:e,onseek:h,onclose:t.onclose},parent:r});if(this.#nn&&(this.#nn instanceof HTMLVideoElement||this.#nn instanceof HTMLAudioElement)&&!n){const i=()=>{a(),this.#rn?.updateEvents(this.#_h),t.secondary||this.mo()?.dispatchEvent(new CustomEvent("timeupdate",{detail:this.#_h}))},s=()=>{a(),n||t.onended?.()},e=()=>{this.#dn=1,a()},h=()=>{this.#dn=0,a()};this.#nn.addEventListener("timeupdate",i),this.#nn.addEventListener("loadedmetadata",a),this.#nn.addEventListener("play",a),this.#nn.addEventListener("pause",a),this.#nn.addEventListener("ended",s),this.#nn.addEventListener("seeking",e),this.#nn.addEventListener("seeked",h),this.oo(()=>{const t=this.#nn;t&&(t.removeEventListener("timeupdate",i),t.removeEventListener("loadedmetadata",a),t.removeEventListener("play",a),t.removeEventListener("pause",a),t.removeEventListener("ended",s),t.removeEventListener("seeking",e),t.removeEventListener("seeked",h))}),a()}}}#wn(t){const i=this.po("volume");i&&this.oo(i.subscribe(i=>{t.volume=i}))}#_n(){null==this.#cn&&(this.#cn=setInterval(async()=>{this.#an&&(this.#_h=await this.#an.getCurrentTime(),this.#W=await this.#an.getDuration(),this.#rn?.updateEvents(this.#_h),this.#bn())},250))}#kn(){null!=this.#cn&&(clearInterval(this.#cn),this.#cn=void 0)}#bn(){const t=this.querySelector("micrio-media-controls");t&&t.xt({currentTime:this.#_h,duration:this.#W,paused:this.#ln,ended:this.#un,seeking:this.#dn,muted:this.#pn})}ho(){this.#rn?.destroy(),this.#an?.destroy(),this.#kn(),this.#mn?.remove()}};customElements.define(qs.tag,qs);var Js=class extends yi{static tag="micrio-marker-popup";#ph={marker:null};#Co;#xn;#Tn=0;#Pn=0;#Sn=0;#En=new WeakMap;eo(){const{marker:t}=this.#ph,i=this.mo();i&&t&&(t.tags?.forEach(t=>this.classList.add(t)),gt().then(()=>this.querySelector("micrio-button:last-child > button")?.focus()),this.oo(i.state.popup.subscribe(i=>{this.#Pn=!i||i!=t,this.classList.toggle("destroying",this.#Pn)})),this.addEventListener("transitionend",t=>{t.target===this&&this.#Pn&&this.remove()}),this.#dh())}xt(t){void 0!==t.marker&&t.marker.id!==this.#ph.marker?.id&&(this.#ph.marker=t.marker,this.isConnected&&this.#dh())}#dh(){const{marker:t}=this.#ph,i=this.mo();if(!i||!t)return;const s=yi.io,e=t.id?s.get(t.id):void 0;if(!e)return;const h=R(i.state.tour),o=R(i.current),n=R(Gi),r=e.$settings.t??{},a=t.data||{},c=r.canMinimizePopup,l=h&&"steps"in h?h:void 0,u=(l?i.Pe.find(t=>t.$data?.markerTours?.find(t=>t.id===l.id)):void 0)?.$settings.t,d=l&&l.steps?.findIndex(i=>i.startsWith(t.id))>=0,p=!i.canvas.$isMobile&&d&&!l?.isSerialTour&&(u?.tourControlsInPopup??r.tourControlsInPopup),m=p||(l?l.currentStep==l.steps.length-1:void 0),f=t=>{h&&d&&"steps"in h?t instanceof Event&&m?i.state.tour.set(void 0):h.next?.():o&&o.id!=e.id&&a.micrioLink?.id==o.id?(i.open(e.id),e.state.marker.set(void 0),i.state.popup.set(void 0)):e.state.marker.set(void 0)},g=()=>{if(this.#Tn=!this.#Tn,this.classList.toggle("minimized",this.#Tn),this.#Co)for(let t=0;t<this.#Co.children.length;t++){const i=this.#Co.children[t];i&&i!==this.#xn&&(this.#En.has(i)||(this.#En.set(i,i.offsetHeight),i.style.height=i.offsetHeight+"px"),setTimeout(()=>{i.style.height=this.#Tn?"0px":this.#En.get(i)+"px"},100))}};if(this.replaceChildren(),!p){const t=pt("aside");a.alwaysOpen||pt("micrio-button",{setProps:{type:!d||m?"close":"next",title:!d||m?n.Qo:n.tn,disabled:this.#Sn,onclick:f},parent:t}),c&&pt("micrio-button",{setProps:{type:this.#Tn?"up":"down",title:n.nn,onclick:g},parent:t}),this.appendChild(t)}this.#Co=pt("micrio-marker-content",{setProps:{marker:t,onclose:f},parent:this}),p&&requestAnimationFrame(()=>{const t=document.querySelector("micrio-tour")?.aside;t&&!this.contains(t)&&this.appendChild(t)})}};customElements.define(Js.tag,Js);var Ks=class extends yi{static tag="micrio-marker";#ph={marker:null};#In=0;#Cn=0;#zn=0;#Ln=0;#An=1;#$n=0;#Dn="";#to;#On=0;#Fn;eo(){const{marker:t,image:i,forceHidden:s=0}=this.#ph,e=this.mo();if(!e||!i||!t)return;const h=yi.io;!h.has(t.id)&&i&&h.set(t.id,i);const o=e.events,n=R(e.Ht),r=i.$settings.t??{},a=t.i18n?.[n],c=t.data??{},l=0==t.data?.showTitle||!!r.noTitles||!!i.$settings.omni?.sideLabels,u=/[?&]micrioNoTooltips/.test(location.search)||!!i.$settings.omni?.sideLabels;if(t.videoTour){const i=t.videoTour.i18n?.[n]?.timeline;i?.length&&(t.view=i[0].rect)}const d=a&&!l&&(a.label||a.title),p="cluster"==t.type,m=p||"link"!=t.type?"media"==t.type?"play":void 0:"link",f=null!=t.data?.customIconIdx?i.$settings.t?.customIcons?.[t.data.customIconIdx]:t.data?.icon||r.markerIcon,g=!!m||!!f,v=g||"default"==t.type,w=i.$settings.omni;if(i.$t&&w){const s=(t.rotation??0)+(t.backside?Math.PI:0);if(this.#On=i.camera.gt(s)??0,t.visibleArc){const s=i.camera.gt(t.visibleArc[0]),e=i.camera.gt(t.visibleArc[1]);null!=s&&null!=e&&(this.#Fn=[s,e])}}const M=!!t.data?.scales||!!i.$settings.markersScale,y=()=>{if(i.A&&M)this.#Dn=i.camera.getMatrix(t.x,t.y,1,1,0,0,0).join(","),this.style.setProperty("--mat",`matrix3d(${this.#Dn})`),this.classList.add("mat3d");else{const s=i.camera.V(t.x,t.y,{radius:t.radius,rotation:t.rotation});if([this.#zn,this.#Ln,this.#An,this.#$n]=s,i.A)this.#Cn=this.#$n>0;else if(i.$t&&w)if(this.#Fn&&null!=t.rotation){const t=w.frames/(w.layers?.length??1);let s=(i.omni?.currentIndex??0)-this.#On;s>t/2&&(s-=t),-t/2>s&&(s+=t),this.#Cn=s<=this.#Fn[0]||s>=this.#Fn[1]}else w.distance&&(this.#Cn=0>this.#$n);this.style.setProperty("--x",`${this.#zn}px`),this.style.setProperty("--y",`${this.#Ln}px`),M&&this.style.setProperty("--scale",`${this.#An}`),this.classList.remove("mat3d"),this.classList.toggle("behind",this.#Cn)}},_=()=>{if(t.onclick)return t.onclick(t);r.noMarkerActions||("cluster"==t.type?t.view&&e.$current?.$info&&i.camera.flyToView(t.view,{limitZoom:1}):i.state.marker.set(t))},b=()=>{r.noMarkerActions||(this.parentNode?.scrollTo(0,0),clearTimeout(this.#to),this.#to=setTimeout(()=>{const s=i.camera.getXY(t.x,t.y);!this.#In&&(0>s[0]||s[0]>=e.offsetWidth||0>s[1]||s[1]>=e.offsetHeight||i.A&&s[3]>4)&&i.camera.flyToCoo([t.x,t.y],{speed:2,limit:1}).catch(()=>{})},150))},k=async()=>{if(this.#In)return void(R(e.state.popup)||i.state.marker.set(void 0));if(this.#In=1,this.classList.add("opened"),clearTimeout(this.#to),r.noMarkerActions)return;o.Pt("marker-open",t);const s=R(e.state.tour);!s||"steps"in s&&s.steps?.some(i=>i.startsWith(t.id))||e.state.tour.set(void 0),await X(),!t.view||c.noAnimate||t.videoTour?x():i.camera.flyToView(t.view,{omniIndex:i.$t?this.#On:void 0,isJump:1}).then(x).catch(()=>{i.state.$marker===t&&(i.It=void 0,i.state.marker.set(void 0))})},x=async()=>{if(p)return;if(i.state.$marker!=t){if(!i.state.$marker)return;return i.state.marker.set(t)}if(r.noMarkerActions)return;const s=R(e.state.tour);if(o.Pt("marker-opened",t),"popup"==t.popupType&&(a?.title||a?.body||a?.bodySecondary||a?.embedUrl||t.images?.length||t.videoTour))X().then(()=>e.state.popup.set(t));else if("popover"==t.popupType)e.state.popover.set({marker:t,image:i,markerTour:s&&"steps"in s?s:void 0});else if(t.videoTour&&!s){e.state.tour.set(t.videoTour);const s=e.state.tour.subscribe(t=>{t||(s(),i.state.marker.set(void 0))})}const h=c.micrioLink?.id;h&&X().then(()=>{e.open(h,{vector:vs(e,h)?.vector})});const n=c.micrioSplitLink;if(n&&!Xi(i)){const t=Yi(n);if(t){const s=Ri(i);if(s)if(s.id===t.micrioId){if(t.markerId){const i=s.$data?.markers?.find(i=>i.id===t.markerId);i?.view&&s.camera.flyToView(i.view,{isJump:1})}}else Wi(e,i),X().then(()=>ji(e,i,t,{isPassive:t.follows}));else ji(e,i,t,{isPassive:t.follows})}}},T=()=>{this.classList.remove("opened"),o.Pt("marker-closed",t),e.state.popover.set(void 0),e.state.popup.set(void 0)};if(this.oo(i.state.marker.subscribe(s=>{if("string"==typeof s&&s==t.id)i.state.marker.set(t);else if(s==t)k();else if(!(c.alwaysOpen||s&&s==t)){if(this.#In){if(c.micrioSplitLink){const t=s&&"string"!=typeof s?s:null;if(t&&t.data?.micrioSplitLink){const s=Yi(t.data.micrioSplitLink),h=Ri(i);s&&h&&s.micrioId===h.id||Wi(e,i)}else Wi(e,i)}T()}else s||this.classList.remove("opened");this.#In=0,R(e.state.tour)||i.camera.stop()}})),t.noMarker||this.oo(i.state.view.subscribe(()=>{y()})),s||X().then(()=>{const s=R(e.state.popup),h=R(e.state.tour);this.#In&&!t.noMarker&&s&&s!=t&&!h?i.state.marker.set(void 0):c.alwaysOpen&&x()}),this.classList.toggle("cluster",p),this.classList.toggle("default",!!v),this.classList.toggle("has-icon",g),this.classList.toggle("has-custom-icon",!!f),!t.htmlElement&&!t.noMarker){const i=pt("button",{props:{...u||p?{}:{title:a?.label||a?.title||""},id:t.id},attrs:{"data-scroll-through":""},events:{click:_,focus:b,blur:()=>clearTimeout(this.#to),mouseenter:()=>e.state.markerHoverId.set(t.id),mouseleave:()=>e.state.markerHoverId.set(void 0)},parent:this});f?pt("img",{props:{src:"string"==typeof f?f:f.src,alt:""},parent:i}):m&&pt("micrio-icon",{setProps:{name:m},parent:i}),d&&pt("label",{textContent:a?.label||a?.title||"",attrs:{for:t.id,"data-scroll-through":""},parent:i})}t.noMarker||y(),t.tags&&t.tags.forEach(t=>this.classList.add(t))}xt(t){Object.assign(this.#ph,t)}ho(){clearTimeout(this.#to)}};customElements.define(Ks.tag,Ks);var Qs=class extends yi{static tag="micrio-markers";#ph={image:null};eo(){const{image:t}=this.#ph,i=this.mo();if(!i||!t)return;const{Zt:s,state:e}=i,h=i.Pe[0]?.grid,o=h?.To,n=h?.Po;this.oo(t.Nt.subscribe(t=>{if(!t||4>t.length)return;t=t.map(t=>Math.round(100*t)/100);const s=i.canvas.viewport;this.style.left=t[0]?`${t[0]}px`:"",this.style.top=t[1]?`${t[1]}px`:"",this.style.width=t[2]==s.width?"":`${t[2]}px`,this.style.height=t[3]==s.height?"":`${t[3]}px`}));const r=()=>{if(!t.$settings.clusterMarkers)return;const s=t.$data?.markers?.filter(t=>!t.i18n||t.i18n[R(i.Ht)]);if(!s)return;const e=t.$settings.clusterMarkerRadius??16,h=s.map(i=>{const s=t.camera.V(i.x,i.y,{radius:i.radius,rotation:i.rotation});return[s[0],s[1]]}),o=[];for(let t=0;t<s.length;t++)for(let i=t+1;i<s.length;i++){if(s[i].tags?.includes("no-cluster"))continue;if(Math.abs(h[i][0]-h[t][0])>=e||Math.abs(h[i][1]-h[t][1])>=e)continue;const n=o.find(s=>s.includes(t)||s.includes(i));n?n.push(t,i):o.push([t,i])}const n=o.map(t=>[...new Set(t)].sort((t,i)=>t-i)),r=new Set;for(const t of n)for(const i of t)r.add(i);for(let t=0;t<s.length;t++)this.querySelector(`[data-marker-id="${s[t].id}"]`)?.classList.toggle("overlapped",r.has(t));const a=new Set(n.map(t=>t.join(",")));for(const t of this.querySelectorAll(":scope > micrio-marker.cluster")){const i=t.getAttribute("data-marker-id");i&&!a.has(i)&&t.remove()}for(const i of n){const e=i.join(",");if(this.querySelector(`:scope > micrio-marker.cluster[data-marker-id="${e}"]`))continue;const h=i.reduce((t,i)=>t+s[i].x,0)/i.length,o=i.reduce((t,i)=>t+s[i].y,0)/i.length,n=Math.min(...i.map(t=>s[t].view?s[t].view[0]:s[t].x)),r=Math.max(...i.map(t=>s[t].view?s[t].view[0]+s[t].view[2]:s[t].x)),a=Math.min(...i.map(t=>s[t].view?s[t].view[1]:s[t].y)),c=Math.max(...i.map(t=>s[t].view?s[t].view[1]+s[t].view[3]:s[t].y));pt("micrio-marker",{attrs:{"data-marker-id":e},setProps:{marker:{id:e,x:h,y:o,type:"cluster",title:i.length+"",view:[n,a,Math.max(.1,r-n),Math.max(.1,c-a)],data:{},popupType:"none",tags:[]},image:t},parent:this})}},a=()=>{const e=t.$data?.markers,a=o?R(o):void 0,c=n?R(n):void 0,l=h&&a!=t&&c&&0>c.indexOf(t),u=!!t.$settings.t?.showTitles;if(this.classList.toggle("inactive",!!l),this.classList.toggle("show-titles",u),!R(s)&&i.spaceData){const s=i.spaceData.links.filter(i=>i[0]==t.id||i[1]==t.id),e=new Set(s.map(i=>i[0]==t.id?i[1]:i[0]));for(const t of this.querySelectorAll(":scope > micrio-waypoint"))e.has(t.getAttribute("data-target-id"))||t.remove();for(const i of s){const s=i[0]==t.id?i[1]:i[0];let e=this.querySelector(`:scope > micrio-waypoint[data-target-id="${s}"]`);e||(e=pt("micrio-waypoint",{attrs:{"data-target-id":s},setProps:{targetId:s,settings:i[2]?.[t.id],image:t},parent:this}))}}else for(const t of this.querySelectorAll(":scope > micrio-waypoint"))t.remove();if(e){const s=R(i.Ht),h=e.filter(t=>!t.i18n||t.i18n[s]),o=new Set(h.map(t=>t.id));for(const t of this.querySelectorAll(":scope > micrio-marker")){const i=t.getAttribute("data-marker-id");i&&!t.classList.contains("cluster")&&(o.has(i)||t.remove())}for(const i of h){let s=this.querySelector(`:scope > micrio-marker[data-marker-id="${i.id}"]`);s||(s=pt("micrio-marker",{attrs:{"data-marker-id":i.id},setProps:{marker:i,image:t,...i.noMarker?{forceHidden:1}:{}},parent:this}))}}else for(const t of this.querySelectorAll(":scope > micrio-marker"))t.remove();if(l)for(const t of this.querySelectorAll(":scope > micrio-marker, :scope > micrio-waypoint"))t.remove();t.$settings.clusterMarkers&&r()};if(this.co(t.data,a),this.co(s,a),e.tour&&this.co(e.tour,a),o&&this.co(o,a),n&&this.co(n,a),this.lo(i.Ht,a),t.$settings.clusterMarkers&&this.oo(t.state.view.subscribe(r)),!t.grid&&t.$settings.t?.zoomOutAfterClose){let s=0;this.oo(t.state.marker.subscribe(e=>{e&&"string"!=typeof e&&!t.It&&!e.noMarker&&e.view?(t.It=R(i.state.tour)&&!("steps"in R(i.state.tour))?void 0:structuredClone(t.state.$view??t.camera?.getView()),s=!!e.videoTour):e||!t.It||R(i.state.tour)||setTimeout(()=>{if(t.It){const i=t.It,s=Math.min(1,i[2]),e=Math.min(1,i[3]),h=s/2,o=e/2,n=Math.max(h,Math.min(1-h,i[0]+h)),r=Math.max(o,Math.min(1-o,i[1]+o));t.camera.flyToView([n-h,r-o,s,e],{speed:t.$settings.t?.zoomOutAfterCloseSpeed}).catch(()=>{})}t.It=void 0,s=0},s?250:10)}))}a()}xt(t){void 0!==t.image&&(this.#ph.image=t.image)}};customElements.define(Qs.tag,Qs);var te=class extends yi{static tag="micrio-dial";#ph={currentRotation:0,frames:1};eo(){const t=this.mo();if(!t)return;const i=t.$current?.camera;if(!i)return;let s,e=0,h=0;const o=s=>{const o=Math.max(1,(i.getXY(1,.5)[0]-i.getXY(0,.5)[0])/t.offsetWidth),n=(h/360+(e-s.clientX)/(this.offsetWidth*o))*this.#ph.frames;this.#ph.onturn?.(n)},n=()=>{s&&t.releasePointerCapture(s),t.removeAttribute("data-panning"),t.removeEventListener("pointermove",o),t.removeEventListener("pointerup",n)};this.addEventListener("pointerdown",i=>{i.stopPropagation(),i.preventDefault(),0==i.button&&(t.addEventListener("pointermove",o),t.addEventListener("pointerup",n),t.setAttribute("data-panning",""),t.setPointerCapture(s=i.pointerId),h=this.#ph.currentRotation,e=i.clientX)})}xt(t){if(Object.assign(this.#ph,t),this.isConnected){const t=-this.#ph.currentRotation/360*(this.offsetWidth??0);this.style.setProperty("--micrio-dial-offset",`${t}px`)}}};customElements.define(te.tag,te);var ie=class extends yi{static tag="micrio-minimap";#ph={image:null};#Vn=null;#Nn;#Bn;#Gn;#po;eo(){this.#eo()}xt(t){void 0!==t.image&&t.image!==this.#ph.image&&(this.#ph.image=t.image,this.isConnected&&(this.#Gn?.(),this.replaceChildren(),this.#Vn=null,this.#eo()))}#eo(){const{image:t}=this.#ph;if(!this.mo()||!t)return;const i=t.$info;if(!i)return;const s=t.camera,e=t.$settings,h=e.minimapWidth??200,o=e.minimapHeight??160,n=i.width/i.height,r=h/n>o?Math.round(o*n):h,a=h/n>o?o:Math.round(h/n),c=-s.rotationY/(2*Math.PI),l=self.crossOriginIsolated;let u=l?void 0:t.thumbSrc;const d=s=>{if(!s||!this.#Vn)return;const e=this.#Vn;e.clearRect(0,0,r,a),clearTimeout(this.#po),this.classList.remove("hidden"),this.#po=setTimeout(()=>this.classList.add("hidden"),2500);const h=!(!t.thumbSrc&&!u);if(i.is360){h&&(e.globalCompositeOperation="source-over",e.fillStyle="rgba(0,0,0,.45)",e.fillRect(0,0,r,a),e.globalCompositeOperation="destination-out");const t=Z(s[0]+s[2]/2),i=Math.max(0,Math.min(1,s[1]+s[3]/2)),o=Math.round(t*r),n=Math.round(i*a),c=Math.max(1,Math.round(s[2]*r/2));e.fillStyle=h?"white":"rgba(255,255,255,.8)",e.fillRect(Math.round(o-c),0,2*c,a);const l=Math.max(1,Math.round(s[3]*a/2));e.fillRect(0,Math.round(n-l),r,2*l),e.beginPath(),e.arc(o,n,3,0,2*Math.PI),e.fill(),h&&(e.globalCompositeOperation="source-over")}else h?(e.globalCompositeOperation="source-over",e.fillStyle="rgba(0,0,0,.5)",e.fillRect(0,0,r,a),e.globalCompositeOperation="destination-out"):(e.fillStyle="rgba(0,0,0,.5)",e.fillRect(0,0,r,a)),e.beginPath(),e.fillStyle="white",e.rect(Math.floor(s[0]*r),Math.floor(s[1]*a),Math.ceil(s[2]*r),Math.ceil(s[3]*a)),h&&(e.fill(),e.globalCompositeOperation="source-over"),e.stroke()},p=t=>{if(!this.#Bn)return;const i=Math.max(0,Math.min(1,(t.clientX-this.#Bn.left)/this.#Bn.width)),e=Math.max(0,Math.min(1,(t.clientY-this.#Bn.top)/this.#Bn.height));this.#Nn?s.setView([i-this.#Nn.width/2,e-this.#Nn.height/2,this.#Nn.width,this.#Nn.height]):s.setCoo(i,e)},m=()=>{window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",m),this.#Nn=void 0},f=pt("canvas",{props:{width:r,height:a},className:e.alwaysShowMinimap?"fixed":void 0,events:{mousedown:t=>{if(0!=t.button)return;window.addEventListener("mousemove",p),window.addEventListener("mouseup",m),this.#Bn=f.getBoundingClientRect();const i=s.getView();i&&(this.#Nn={width:i[2],height:i[3]}),p(t)}},parent:this});u&&(f.style.backgroundImage=`url('${u}')`,0!=c&&(f.style.backgroundPositionX=r*c+"px")),f.addEventListener("wheel",t=>{s.zoom(t.deltaY*(xt.firefox?50:1))},{passive:1}),this.#Vn=f.getContext("2d"),this.#Vn&&(this.#Vn.lineWidth=1,this.#Vn.strokeStyle="white"),l&&t.thumbSrc&&fetch(t.thumbSrc).then(t=>t.blob()).then(i=>{u=URL.createObjectURL(i),f.style.backgroundImage=`url('${u}')`,d(R(t.state.view))}),this.#Gn?.(),this.#Gn=t.state.view.subscribe(d),this.oo(this.#Gn)}};customElements.define(ie.tag,ie);var se=class{#Yn=0;#Hn=void 0;#Rn=void 0;#Xn=void 0;#jn=void 0;#Wn=0;#Un=1;bn=void 0;#Zn=1;#_;#d;#qn;#ln;#Jn;constructor(t,i,s,e,h){this.#_=t,this.#d=i,this.#qn=s,this.#ln=e,this.#Jn=h,this.#Yn=!!s.video?.streamId&&!s.video?.transparent,this.bn=i.Ct,this.#Un=s.video?.autoplay??1;let o=1;this.#Rn=this.#d.visible.subscribe(t=>{clearTimeout(this.#jn),this.#jn=t?setTimeout(()=>{this.#Zn&&(this.bn?(this.#xe(),this.#Un&&!this.#ln&&this.bn.play().catch(t=>console.warn("WebGL Embed video play() failed",t))):this.#Kn())},o?0:100):setTimeout(()=>this.bn?.pause(),0),o=0})}kn(){clearTimeout(this.#jn)}xn(){this.#Zn=0,clearTimeout(this.#jn),clearTimeout(this.#Xn),this.bn?.pause(),this.#Qn(),this.#Rn?.(),this.#Hn?.destroy(),this.#Hn=void 0,this.#tr()}#ir(t){this.bn&&(this.#ln=!t,t?this.bn.dataset.playing="1":delete this.bn.dataset.playing,this.#_.Sh(this.#d,t),this.#qn.hideWhenPaused&&this.#_.Ph(this.#d,t?1:0),t&&this.#_.render())}#Kn(){if(!this.#qn.video||this.bn)return;const t=this.#Yn?Ys(this.#qn.video.streamId):this.#qn.video.src;t?(this.bn=pt("video",{props:{crossOrigin:"anonymous",playsInline:1,width:this.#qn.width,height:this.#qn.height,muted:this.#qn.video.muted}}),this.#xe(),this.#Yn&&Gs()?wt("Hls",Ns).then(()=>{this.#Hn=new window.Hls(Bs),this.#Hn.loadSource(t),this.bn&&this.#Hn.attachMedia(this.bn)}).catch(t=>console.error("[Micrio GL Embed] Failed to load HLS.js:",t)):this.bn.src=t):console.error("[Micrio GL Embed] No video source found for embed:",this.#qn.id)}#sr={play:()=>this.#ir(1),pause:()=>this.#ir(0),playing:()=>{!this.#d.Ct&&this.bn&&("requestVideoFrameCallback"in this.bn?this.bn.requestVideoFrameCallback(()=>{this.bn&&this.#Zn&&(this.#d.video.set(this.bn),this.#_.render())}):this.#d.video.set(this.bn))},canplayEvt:xt.iOS?"loadedmetadata":"canplay",canplay:()=>{this.bn&&this.#Zn&&(this.#Un&&!this.#ln?(this.bn.play().catch(t=>console.warn("WebGL Embed video play() failed on canplay:",t)),this.#Jn()):this.#qn.hideWhenPaused||(this.#ir(1),X().then(()=>{this.#ir(0),this.#tr()})))}};#tr(){this.#Wn&&this.bn?.parentNode&&(this.bn.remove(),this.#Wn=0)}#xe(){if(!this.#qn.video||!this.bn)return;const t=this.#qn.video.loopAfter,i=this.bn;this.#qn.video.loop&&t?(i.loop=0,i.onended=()=>{this.#ir(0),this.#Xn=setTimeout(()=>i?.play().catch(t=>console.warn("WebGL Embed video loop play() failed:",t)),1e3*t)},i.onplay=()=>this.#ir(1)):(i.loop=this.#qn.video.loop,i.onended=null,i.onplay=null),i.parentNode||this.#Un||this.#Yn||(i.setAttribute("style","opacity:0;position:absolute;top:0;left:0;transform-origin:left top;transform:scale(0.1);pointer-events:none;"),document.body.appendChild(i),this.#Wn=1),i.addEventListener("play",this.#sr.play),i.addEventListener("pause",this.#sr.pause),i.addEventListener("playing",this.#sr.playing,{once:1}),i.addEventListener(this.#sr.canplayEvt,this.#sr.canplay,{once:1})}#Qn(){const t=this.bn;t&&(t.removeEventListener("play",this.#sr.play),t.removeEventListener("pause",this.#sr.pause),t.removeEventListener("playing",this.#sr.playing),t.removeEventListener(this.#sr.canplayEvt,this.#sr.canplay),t.onended=null,t.onplay=null)}},ee=class extends yi{static tag="micrio-embed";#ph={embed:null,image:null};#Xs;#w;#er;#hr;#or;#nr;#rr;#ar;#cr;#lr=0;#Un=1;#ur=0;#dr=0;#pr=0;#mr=0;#fr=0;#gr=0;#vr;#wr=0;#Mr=0;#yr=0;#ln=0;#_r=0;#br=0;#$n=0;#kr=0;#xr=0;#Tr=0;#Pr=1;#Sr=0;#Er=0;#Ir=0;#Cr=1;#ri=1;#zn=0;#Ln=0;#An=0;#Dn="";#zr="";eo(){const{embed:t,image:i,marker:s}=this.#ph;if(this.#Xs=this.mo(),!this.#Xs||!t||!i)return;if(this.#w=i.$info,!this.#w)return;t.uuid||(t.uuid=E()),this.#lr=i.A,this.#Un=t.video?.autoplay??1;const e=i.grid;if(e){const t=e.To,s=e.Po,h=()=>{const h=R(t),o=s?R(s):void 0,n=!!(e&&h&&h!=i&&o&&0>o.indexOf(i));this.#or?.classList.toggle("inactive",n)};this.ao(t,h),s&&this.ao(s,h)}this.#er=i.Bt.find(i=>i.uuid==t.uuid||i.$info?.title==t.uuid),this.#pr=matchMedia("(dynamic-range: high)").matches||xt.OSX,this.#ur=t.src?.toLowerCase().endsWith(".svg")??0,this.#dr=t.width&&t.height?1048576>t.width*t.height:0;const h=/iPhone OS 14_/i.test(navigator.userAgent),o=this.#Xs.getAttribute("data-embeds-inside-gl");this.#mr=this.#ur||h||!this.#pr&&!this.#Xs.hasAttribute("data-embeds-inside-gl")&&!!t.video||"false"==o,this.#fr=!(this.#mr||(!t.micrioId||this.#dr&&t.src)&&(!t.video||t.video.controls||t.video.transparent)),this.#gr=!t.clickAction&&!t.frameSrc&&!s,this.#vr="href"==t.clickAction?t.clickTarget:void 0,this.#wr=!(!this.#vr||!t.clickTargetBlank),this.#Mr=this.#fr&&!!t.video,this.#yr=!this.#fr||!!t.clickAction,this.#br=!!t.hideWhenPaused,t.video&&!t.video.controls&&(t.video.muted=1),this.#Lr(),this.#yr&&this.#Ar(t,s),this.#fr&&this.#$r();const n=i.camera?.image,r=n&&n!==i?n:i;(this.#yr||t.video?.pauseWhenSmallerThan||t.video?.pauseWhenLargerThan)&&(this.ao(r.state.view,()=>this.#Jn()),this.ao(r.Nt,()=>this.#Jn())),this.#Dr(),this.addEventListener("change",this.#Or)}#Lr(){const{embed:t}=this.#ph,i=t.area;this.#$n=i[2],this.#kr=i[3],this.#xr=i[0]+this.#$n/2,this.#Tr=i[1]+this.#kr/2,this.#Pr=t.scale||1,this.#Sr=t.rotX??0,this.#Er=t.rotY??0,this.#Ir=t.rotZ??0,this.#Cr=t.scaleX??1,this.#ri=t.scaleY??1;const s=this.#fr&&t.micrioId&&t.width,e=s?10:1;let h=this.#$n*this.#w.width/(t.width??100)/(this.#fr?t.width?this.#$n:1:this.#Pr)*(this.#lr?Math.PI/2:1);const o=[];s&&t.width&&(h=this.#$n/(t.width/this.#w.width)*e*(this.#lr?Math.PI/2:1),o.push(`width:${t.width/e}px`)),o.push(`--ratio:${this.#$n/this.#kr*this.#w.width/this.#w.height};--scale:${h}`),this.#ur&&t.height&&o.push(`height:${t.height}px`),this.#zr=o.join(";"),t.video&&(t.video.width>t.video.height?this.#_r=Math.min(t.video.width,this.#$n*this.#w.width,2048):this.#_r=Math.min(t.video.height,this.#kr*this.#w.height,2048)/(t.video.height/t.video.width))}#Ar(t,i){if(this.#or=pt(this.#vr?"a":"div",{className:(this.#gr?"no-events":"")+(this.#br&&!this.#fr&&t.video?" hide-when-paused":"")||void 0,id:t.id?"e-"+t.id:void 0,props:this.#vr?{href:this.#vr}:{role:"figure"},attrs:this.#vr&&this.#wr?{target:"_blank"}:void 0,events:{click:()=>this.#Ve(),keydown:()=>this.#Ve()},parent:this}),t.video&&!this.#fr)this.#Fr(t);else if(t.frameSrc)this.#Vr(t);else if(!this.#fr&&t.src)pt("img",{props:{src:t.src,alt:"Embed",...this.#ur&&t.width?{width:t.width}:{},...this.#ur&&t.height?{height:t.height}:{}},style:this.#zr,attrs:{"data-scroll-through":""},parent:this.#or});else{const s=R(this.#Xs.Ht),e=t.title||i?.i18n?.[s]?.title;pt("button",{props:e?{title:e}:void 0,style:this.#zr,attrs:{"data-scroll-through":"","aria-label":"embed-button"},parent:this.#or})}}#Fr(t){const i=t.video,s=this.#_r,e=s/(i.width/i.height),h=this.#$n*this.#w.width/s,o=pt("video",{props:{src:i.src,width:Math.round(s),height:Math.round(e),controls:!!i.controls,loop:!(!i.loop||i.loopAfter&&i.loopAfter>0),muted:!!i.muted,playsInline:1,crossOrigin:"anonymous",preload:"metadata"},style:1!==h?`transform:scale(${h})`:void 0,children:i.transparent&&i.hasH265&&i.src?.endsWith(".webm")?[pt("source",{props:{src:i.src.replace(".webm",".mp4"),type:"video/mp4;codecs=hvc1"}})]:void 0});if(this.#rr=pt("figure",{children:[o],parent:this.#or}),this.#nr=o,t.id&&this.#ph.image&&this.#ph.image.Jt(t.id,o),i.loop&&null!=i.loopAfter&&i.loopAfter>0){o.loop=0;const t=()=>{this.#cr=setTimeout(()=>{this.#ln||o.play().catch(()=>{})},1e3*i.loopAfter)};o.addEventListener("ended",t)}!this.#ln&&this.#Un&&o.play().catch(()=>{})}#Vr(t){pt("iframe",{parent:this.#or,props:{src:t.frameSrc,width:String(Math.round(this.#$n*this.#w.width)),height:String(Math.round(this.#kr*this.#w.height))},attrs:{frameborder:"0",allow:"autoplay; encrypted-media",allowfullscreen:""}})}#$r(){const{embed:t,image:i}=this.#ph;if(!i)return;const s=t.hideWhenPaused?.01:t.opacity??1;this.#er&&(this.#er.rt||i.Bt.includes(this.#er))?(this.#er.camera.setArea(t.area),this.#er.camera.setRotation(this.#Sr,this.#Er,this.#Ir),this.#er.rt&&i.engine.Ph(this.#er,s)):this.#er=i.addEmbed({...t,id:t.video?t.id:t.micrioId,title:t.uuid,path:this.#w.tileBasePath??this.#w.path,isSingle:!!t.video,isVideo:!!t.video},{l:{rotX:this.#Sr,rotY:this.#Er,rotZ:this.#Ir}},t.area,{opacity:s,asImage:0}),this.#Mr&&(this.#hr=new se(i.engine,this.#er,t,this.#ln,()=>this.#Jn())),i.engine.render()}#Jn(){void 0===this.#ar&&(this.#ar=requestAnimationFrame(()=>{this.#ar=void 0,this.#Dr()}))}#Dr(){const{embed:t,image:i}=this.#ph;if(!i?.engine.ready)return;const s=R(i.Nt),e=R(i.state.view);if(e&&s?.[2]>0&&s?.[3]>0&&e[2]>0&&e[3]>0)this.#zn=s[0]+(this.#xr-e[0])/e[2]*s[2],this.#Ln=s[1]+(this.#Tr-e[1])/e[3]*s[3],this.#An=s[2]/(e[2]*this.#w.width);else{const t=i.camera.V(this.#xr,this.#Tr);[this.#zn,this.#Ln,this.#An]=Array.from(t)}if(this.#lr){const t=i.camera.getMatrix(this.#xr,this.#Tr,this.#Pr,1,this.#Sr,this.#Er,this.#Ir,void 0,this.#Cr,this.#ri);this.#Dn=Array.from(t).join(",")}if(this.#or){const i=this.#lr?`transform:matrix3d(${this.#Dn});`:`--x:${this.#zn}px;--y:${this.#Ln}px;--s:${this.#An};`,s=void 0!==t.opacity&&1!==t.opacity?`--opacity:${t.opacity};`:"";this.#or.style.cssText=i+s,this.#or.classList.toggle("embed3d",this.#lr)}if((t.video?.pauseWhenSmallerThan||t.video?.pauseWhenLargerThan)&&this.#$n){this.#ln=this.#Nr();const t=this.#hr?.bn;t&&(this.#ln?t.paused||t.pause():t.paused&&(this.#hr.kn(),i?.$settings?.embedRestartWhenShown&&(t.currentTime=0),t.play())),this.#Br(i)}}#Br(t){const i=this.#nr;i&&(this.#rr&&this.#rr.classList.toggle("paused",this.#ln),this.#ln?i.paused||i.pause():i.paused&&(t?.$settings?.embedRestartWhenShown&&(i.currentTime=0),i.play().catch(()=>{})))}#Nr(){const{embed:t}=this.#ph,i=t.video;if(!i?.pauseWhenSmallerThan&&!i?.pauseWhenLargerThan)return!this.#Un;const s=this.#Xs.canvas.viewport,e=this.#An?Math.max(this.#$n*this.#w.width*this.#An/s.width,this.#kr*this.#w.height*this.#An/s.height):0;return!!(i.pauseWhenSmallerThan&&e<i.pauseWhenSmallerThan||i.pauseWhenLargerThan&&e>i.pauseWhenLargerThan)}#Ve(){const{embed:t,image:i,marker:s}=this.#ph,e="markerId"==t.clickAction?t.clickTarget:s?.id;e&&i&&!this.#vr&&i.state.marker.set(e)}#Or(t){if(t&&"detail"in t){const i=t.detail,s=this.#ph.embed;for(const t of Object.keys(i))s[t]=i[t]}this.#Lr(),this.#Jn()}xt(t){Object.assign(this.#ph,t)}ho(){clearTimeout(this.#cr),this.#hr?.xn();const{embed:t,image:i}=this.#ph;this.#er&&this.#er.rt&&i&&(i.engine.Ph(this.#er,0),i.engine.render()),t.video&&t.id&&i&&i.Jt(t.id),this.removeEventListener("change",this.#Or),this.#or&&(this.#or.removeEventListener("click",this.#Ve),this.#or.removeEventListener("keydown",this.#Ve))}};customElements.define(ee.tag,ee);var he=class extends yi{static tag="micrio-image-embeds";#ph={image:null};eo(){const{image:t}=this.#ph;this.ao(t.data,i=>{if(this.replaceChildren(),i?.embeds)for(const s of i.embeds)pt("micrio-embed",{parent:this,setProps:{embed:s,image:t}})})}xt(t){void 0!==t.image&&(this.#ph.image=t.image)}};customElements.define(he.tag,he);var oe=class extends yi{static tag="micrio-tour";#ph={tour:null};#Gr=0;aside;eo(){const{tour:t}=this.#ph,i=this.mo();if(!i||!t)return;const s="steps"in t;if(!("steps"in t)){const s=t,e=i.$current;if(e){const t=s.i18n?.[R(i.Ht)]?.audio;pt("micrio-media",{parent:this,setProps:{src:t?.src,image:e,tour:s,controls:1,autoplay:1,fullscreenEl:i,onended:()=>i.state.tour.set(void 0),onclose:()=>i.state.tour.set(void 0)}})}}if(s){const s=t;s.currentStep??=s.initialStep??0,this.#Gr=s.currentStep;const e=s.stepInfo,h=!!i.$current.$settings?.t?.tourControlsInPopup,o=async(t,s)=>{const h=e?.[s];if(!h)return;const o=e?.[t];if(o?.micrioId){const t=i.Pe?.find(t=>t.id===o.micrioId);t&&R(t.state.marker)&&t.state.marker.set(void 0)}let n;const r=Y.M(h);if(r?.videoTour){const t=i.lang,s=r.videoTour.i18n?.[t]?.timeline;s?.length&&1>=s[0].start&&(n=s[0].rect)}const a=h.micrioId&&i.$current?.id!==h.micrioId?await i.open(h.micrioId,{startView:n}):i.$current;a&&a.state.marker.set(h.markerId)};s.next=()=>{if(this.#Gr<s.steps.length-1){const t=this.#Gr;this.#Gr++,s.currentStep=this.#Gr,o(t,this.#Gr),n()}},s.prev=()=>{if(this.#Gr>0){const t=this.#Gr;this.#Gr--,s.currentStep=this.#Gr,o(t,this.#Gr),n()}},this.aside||(this.aside=pt("aside",{className:"marker-tour",parent:h?void 0:this}));const n=()=>{if(this.aside&&(this.aside.replaceChildren(),pt("micrio-button",{parent:this.aside,setProps:{type:"prev",title:R(Gi).sn,disabled:0===this.#Gr,onclick:()=>s.prev?.()}}),pt("span",{textContent:`${this.#Gr+1}/${s.steps.length}`,parent:this.aside}),pt("micrio-button",{parent:this.aside,setProps:{type:"next",title:R(Gi).tn,disabled:this.#Gr>=s.steps.length-1,onclick:()=>s.next?.()}}),pt("micrio-fullscreen",{parent:this.aside,setProps:{el:i}}),!s.cannotClose)){const t=pt("micrio-button",{parent:this.aside,setProps:{type:"close",title:R(Gi).Xo,onclick:()=>i.state.tour.set(void 0)}});h&&this.aside.insertBefore(t,this.aside.firstChild)}};this.oo(i.state.marker.subscribe(t=>{if(!t)return;const i="string"==typeof t?t:t.id,e=s.steps.findIndex(t=>t.startsWith(i));0>e||e===this.#Gr||(this.#Gr=e,s.currentStep=e,n())})),o(-1,this.#Gr),n()}this.oo(i.state.tour.subscribe(e=>{if(!e&&s){const s=t.stepInfo?.[this.#Gr];if(s){const t=i.Pe?.find(t=>t.id===s.micrioId);t&&t.state.marker.set(void 0)}}}))}xt(t){Object.assign(this.#ph,t)}};customElements.define(oe.tag,oe);var ne=class extends yi{static tag="micrio-swipe-gallery";#ph={gallery:null,lang:""};xt(t){void 0!==t.gallery&&(this.#ph.gallery=t.gallery),void 0!==t.galleryStart&&(this.#ph.galleryStart=t.galleryStart),void 0!==t.lang&&(this.#ph.lang=t.lang)}eo(){const t=pt("micr-io",{parent:this}),i=pt("figcaption",{parent:this}),s=this.mo()?.$current?.$info?.path;requestAnimationFrame(()=>{Ai.Bo(this.#ph.gallery,t.$h,t,{startId:this.#ph.galleryStart,basePath:s}).Ro(t)});let e=0;const h=()=>{const t=this.#ph.gallery[e]?.i18n?.[this.#ph.lang]?.description;i.innerHTML=t??"",i.style.display=t?"":"none"};t.addEventListener("gallery-show",t=>{e=t.detail,h()}),h()}ho(){this.querySelector(":scope > micr-io")?.destroy()}};customElements.define(ne.tag,ne);var re=class extends yi{static tag="micrio-popover";#ph={popover:null};#Yr;eo(){const t=this.mo();t&&(this.#Yr=pt("dialog",{events:{close:()=>{const i=this.#ph.popover;i&&"marker"in i&&i.marker&&i.image?.state?.marker&&i.image.state.marker.set(void 0),t.state.popover.set(void 0)},click:i=>{i.target===this.#Yr&&t.state.popover.set(void 0)}},parent:this}),this.#dh())}xt(t){void 0!==t.popover&&(this.#ph.popover=t.popover),this.isConnected&&this.#dh()}#dh(){const t=this.#ph.popover,i=this.mo();if(!i||!t)return;const s=R(i.Ht),e=R(Gi),h="contentPage"in t?t.contentPage?.id:"",o="marker"in t?t.marker?.id:"",n=`${t?.constructor?.name??typeof t}::${h}::${o}::${s}`;if(!this.no(n))return;this.#Yr.replaceChildren(),this.#Yr.classList.remove("article","page","has-media","gallery");const r="marker"in t?t.marker:void 0,a="markerTour"in t?t.markerTour:void 0,c=!(!(r&&a&&"steps"in a)||0>a.steps?.findIndex(t=>t.startsWith(r.id))),l=c?a.currentStep==a.steps.length-1:1,u=t=>{if(c&&a&&"steps"in a){const s=a;t instanceof Event&&l?i.state.tour.set(void 0):s.next?.()}this.#Yr?.open&&this.#Yr.close()};if(pt("aside",{parent:this.#Yr,children:[pt("micrio-button",{setProps:{type:!c||l?"close":"next",title:!c||l?e.Qo:e.tn,onclick:u}})]}),"contentPage"in t&&t.contentPage){const i=t.contentPage,e=i.i18n?.[s];this.#Yr.classList.add("page");const h=e?.embed&&(!e.content||250>e.content.length)&&!i.image&&!i.buttons?.length;if((e?.embed||i.image)&&this.#Yr.classList.add("has-media"),h)e.embed&&pt("micrio-media",{setProps:{src:e.embed,figcaption:e.content,controls:1,autoplay:1},parent:this.#Yr});else{this.#Yr.classList.add("article");const t=[];e?.title&&t.push(pt("h2",{textContent:e.title})),e?.embed&&t.push(pt("micrio-media",{setProps:{src:e.embed,controls:1}})),e?.content&&t.push(pt("div",{innerHTML:e.content})),pt("article",{children:t,parent:this.#Yr})}}if("gallery"in t&&t.gallery?.length&&(this.#Yr.classList.add("gallery"),pt("micrio-swipe-gallery",{setProps:{gallery:t.gallery,galleryStart:t.galleryStart,lang:s},parent:this.#Yr})),"marker"in t&&t.marker){const i=t.marker,e=i.i18n?.[s],h=!!i.images?.length,o=!(!e||!e.body)||h&&!!t.contentPage?.i18n?.[s]?.embed;e?.embedUrl?pt("micrio-media",{setProps:{src:e.embedUrl,uuid:i.id,figcaption:e.embedDescription,controls:1,autoplay:i.embedAutoPlay},parent:this.#Yr}):h&&pt("micrio-swipe-gallery",{setProps:{gallery:i.images,lang:s},parent:this.#Yr}),o&&pt("micrio-marker-content",{setProps:{marker:i,noEmbed:1,noGallery:1,noImages:!e||!e.embedUrl,onclose:u},parent:this.#Yr})}this.#Yr.open||this.#Yr.showModal()}ho(){this.#Yr?.open&&this.#Yr.close()}};customElements.define(re.tag,re);var ae=class{#Xs;#d;#We;#Hr=0;#Rr={};#Xr;#jr;#Wr=0;#Ur=[];#is;#Zr=new Map;#qr=0;#Jr=0;#Kr;#Qr=()=>{};#ta;#yo=[];goto(t){this.#Qr(t)}get currentIndex(){return this.#d.canvas?.zi??-1}constructor(t,i,s,e){this.#Xs=t,this.#d=i,this.#We=s,this.#ta=e}async setup(){const t=this.#Xs,i=this.#d,s=this.#We,e=Y.m(i.id);if(!e)return;const h=i.$settings.omni;if(!h)return;const o=t.$h,n=i.$info;if(!n)return;const r=h.frames,a=r/(h.layers?.length??1);if(!i.rt)return;const c=[];for(let g=0;r>g;g++){const t={id:n.id+"/"+g,image:i,visible:H(0),ah:g,opts:{area:[0,0,1,1]},rt:0,Lt:-1,thumbSrc:i.Rt(i.Dt,0,0,g)};o.qt(t,i,{opacity:0,asImage:0}),c.push(t)}e.settings?.omni&&parseFloat(e.info.version)>=5&&await bt.load(e.info.tileBasePath||e.info.path,(e.info.tilesId??e.info.id)+"/base",i=>t.Mn?.xt?.({loadingProgress:i})).catch(()=>{}),i.canvas?.Fi(0,0),o.render();const l=!!i.$settings.gallery?.archive,u="requestIdleCallback"in self?Math.max(36,2*Math.floor(r/8)):50,d=t=>{this.#ta(t,r,u,t=>c[t]?{baseTileIdx:c[t].Lt,thumbSrc:c[t].thumbSrc}:void 0,o,l)},p=pt("micrio-dial",{parent:s,setProps:{currentRotation:0,frames:a,degrees:1,onturn:t=>{this.goto(Math.round(t)%a)}}});this.#Hr=a,this.#Rr={continuous:1},this.#Qr=t=>{for(;0>t;)t+=a;t%=a,i.canvas?.Fi(t,0),p.xt?.({currentRotation:t/a*360}),d(t),o.render()},this.#ia(),i.omni=this,d(0),this.#yo.push(i.state.layer.subscribe(t=>{p.xt?.({currentRotation:t/a*360})}));const m=i.$settings.omni,f=m?.layers?.length??1;if(f>1){const s=m.layers.map((t,i)=>({i18n:Object.fromEntries(Object.entries(t.i18n||{}).map(([t,s])=>[t,{title:s??"Layer "+(i+1)}]))})),e=Object.keys(n.revision??{});if(!e.length){const i=R(t.Ht);i&&e.push(i)}if(e.length)for(const t of e)for(let i=0;i<s.length;i++)s[i].i18n[t]||(s[i].i18n[t]={title:"Layer "+(i+1)});const h=()=>{const t=R(i.state.layer);i.data.update(e=>(e||(e={}),e.pages||(e.pages=[]),e.pages=e.pages.filter(t=>!t.id?.startsWith("_omni-layers")),e.pages.push({id:"_omni-layers-"+t,i18n:s[t].i18n,icon:Ji.layerGroup,children:s.map((t,s)=>({id:"omni-layer-"+s,i18n:t.i18n,action(){i.state.layer.set(s),d(R(i.state.layer)*Math.floor(r/f))}})).filter(i=>i.id!="omni-layer-"+t)}),e))};h(),this.#yo.push(i.state.layer.subscribe(h))}}destroy(){this.#sa();for(const t of this.#yo)t();this.#yo=[]}#ia(){const t=this.#Xs;this.#Rr.sensitivity||(this.#Rr.sensitivity=Number(t.getAttribute("data-swipe-sensitivity")??1));const i=t.getAttribute("data-swipe-snap");i&&(this.#Ur=i.split(",").map(Number)),this.#Xs.setAttribute("data-hooked",""),this.#d.state.view.subscribe(t=>this.#qr=this.#Rr.coverLimit?this.#d.camera.isZoomedOut():t?Math.round(1e3*t[3])/1e3>=1:1),t.$h.Ps=1,t.$h.bs=1,this.#Xs.canvas.element.addEventListener("pointerdown",this.#ea)}#sa(){this.#Xs.canvas.element.removeEventListener("pointerdown",this.#ea),this.#Zr.clear(),this.#ha()}#ha(){this.#Xs.removeEventListener("pointermove",this.#oa),this.#Xs.removeEventListener("pointerup",this.#na)}#ra=()=>2==this.#Zr.size||(this.#qr||this.#Jr)&&1==this.#Zr.size;#ea=t=>{if(0!==t.button)return;this.#Jr=t.shiftKey;const i=!this.#ra();if(this.#Zr.set(t.pointerId,1),this.#Zr.size>2)return this.#Zr.clear(),void this.#ha();i&&(this.#Wr=0,this.#Xs.setAttribute("data-panning",""),this.#Xr=this.currentIndex,this.#jr=t.clientX,this.#Kr=t.pointerId,this.#Xs.addEventListener("pointermove",this.#oa),this.#Xs.addEventListener("pointerup",this.#na),this.#Xs.setPointerCapture(t.pointerId))};#oa=t=>{if(!this.#ra()||t.pointerId!=this.#Kr||void 0===this.#jr||void 0===this.#Xr)return;if(!this.#Wr&&void 0!==this.#jr&&(this.#Wr=2!=this.#Zr.size?1:Math.abs(t.clientX-this.#jr)>(this.#Xs.events.jh&&this.#Xs.events.jh>1.25?.3:.15)*this.#Xs.offsetWidth)&&(this.#jr=t.clientX),!this.#Wr)return;const i=this.#Xs.$current.camera,s=this.#Rr.continuous?Math.max(.1,(i.getXY(1,.5)[0]-i.getXY(0,.5)[0])/this.#Xs.offsetWidth):1,e=Math.round((t.clientX-this.#jr)/(this.#Xs.offsetWidth*s)*this.#Hr*(this.#Rr.sensitivity??1));let h=this.#Xr-e;if(this.#Rr.continuous){for(;0>h;)h+=this.#Hr;for(;h>this.#Hr-1;)h-=this.#Hr}h=Math.max(0,Math.min(this.#Hr-1,h)),h!=this.currentIndex&&this.#Qr(h)};#na=t=>{this.#Zr.delete(t.pointerId),t.pointerId==this.#Kr&&(this.#Xs.releasePointerCapture(this.#Kr),this.#Kr=void 0),this.#Zr.size||this.#aa()};#aa(){if(this.#Xs.removeAttribute("data-panning"),this.#ha(),this.#Wr=0,this.#Ur.length){const t=this.#Ur[this.#Ur.map((t,i)=>[i,Math.abs(t-this.currentIndex)]).sort((t,i)=>t[1]>i[1]?1:t[1]<i[1]?-1:0)[0][0]];t!=this.currentIndex&&this.animateTo(t)}}animateTo(t){this.#is&&cancelAnimationFrame(this.#is);const i=performance.now(),s=this.currentIndex,e=s-t,h=t=>{const o=Math.min(1,(t-i)/250);1>o&&(this.#is=requestAnimationFrame(h));const n=s-Math.round(nt.get(o)*e);n!=this.currentIndex&&this.#Qr(n)};this.#is=requestAnimationFrame(h)}},ce=class{#Xs;#Gi;#ca;#la;#ua;#da;#pa;#ma=-1;#fa;#ga=0;#va=0;#wa=0;#Ma=0;#ya=0;#_a=0;#ba=0;constructor(t,i,s,e,h,o,n){this.#Xs=t,this.#Gi=i,this.#ca=s,this.#la=e,this.#ua=h,this.#da=o,this.#pa=n}async setup(t,i,s){this.#ma=t,s.Je=ut("ease-out"),await Promise.allSettled(this.#Gi.map(t=>s.Ce(t,i)));const e=this.#la[t]??0;for(let h=0;h<this.#Gi.length;h++){const t=this.#Gi[h];if(!t.camera)continue;t.camera.setCoverLimit(0);const i=[this.#la[h]-e,0,this.#ua[h],1];t.camera.setArea(i,{direct:1,noDispatch:1}),t.camera.setView([0,0,1,1])}this.#Gi[t]?.visible.set(1)}#ka(){return!!this.#Gi[this.#ma]?.camera?.isZoomedOut()}animateTo(t,i,s,e){this.#ma=e;const h=this.#Gi;if(!h[t])return;const o=0===s?0:i?.125:.2,n=h[e>-1&&e!==t?e:-1],r=o>0&&n?.camera&&!n.camera.isZoomedOut(),a=h[0]?.engine;if(!a)return;const c=this.#la[t],l=()=>{a.qe=o,a.$e=0;for(let t=0;t<h.length;t++){const i=h[t];if(!i?.camera)continue;const s=i.opts.area??[0,0,1,1],e=s[0],n=s[0]+s[2]>-1&&2>e,r=this.#la[t]-c,a=this.#ua[t],l=r+a>-1&&1>r,u=Math.abs(s[0]-r)>1e-4||Math.abs(s[2]-a)>1e-4,d=o>0&&u&&(n||l);i.camera.setArea([r,0,a,1],{direct:!d,noDispatch:1})}h[t]?.camera?.setView([0,0,1,1]),a.render()};r?n.camera.flyToCoverView({duration:600*o,speed:2}).then(l).catch(l):l()}#xa=()=>{this.#Ta(),this.#fa=void 0,this.#ya=0,this.#Xs.removeAttribute("data-panning"),this.#Xs.kh=0};handlePointerDown=t=>{0===t.button&&(void 0===this.#fa?this.#ka()&&(this.#fa=t.pointerId,this.#ga=this.#va=t.clientX,this.#ba=t.clientY,this.#wa=t.timeStamp,this.#Ma=0,this.#ya=0,this.#_a=0,window.addEventListener("pointermove",this.#Pa),window.addEventListener("pointerup",this.#Sa),window.addEventListener("pointercancel",this.#Sa)):t.pointerId!==this.#fa&&(this.#ya&&this.#da(this.#pa()),this.#xa()))};#Pa=t=>{if(t.pointerId!==this.#fa)return;const i=t.clientX-this.#ga,s=t.clientY-this.#ba;if(!this.#ya){if(6>Math.abs(i)&&6>Math.abs(s))return;if(this.#_a=Math.abs(i)>Math.abs(s),!this.#_a)return void this.#Sa(t);this.#ya=1,this.#Xs.setAttribute("data-panning",""),this.#Xs.kh=1,this.#Xs.canvas.element.setPointerCapture(t.pointerId)}const e=Math.max(1,t.timeStamp-this.#wa);this.#Ma=(t.clientX-this.#va)/e,this.#va=t.clientX,this.#wa=t.timeStamp;const h=i/(this.#Xs.offsetWidth||1);this.#Ea(h)};#Sa=t=>{if(t.pointerId!==this.#fa)return;const i=this.#ya;if(this.#xa(),!i)return;try{this.#Xs.canvas.element.releasePointerCapture(t.pointerId)}catch(o){}const s=this.#Xs.offsetWidth||1,e=(t.clientX-this.#ga)/s;let h=this.#pa();-.3>e||-.5>this.#Ma?h=Math.min(this.#ca.length-1,this.#pa()+1):(e>.3||this.#Ma>.5)&&(h=Math.max(0,this.#pa()-1)),this.#da(h)};#Ta=()=>{window.removeEventListener("pointermove",this.#Pa),window.removeEventListener("pointerup",this.#Sa),window.removeEventListener("pointercancel",this.#Sa)};#Ea(t){const i=this.#Gi,s=this.#pa(),e=this.#ca.length,h=0===s&&t>0||s===e-1&&0>t?Math.sign(t)*Math.sqrt(Math.abs(t))*.3:t,o=this.#ca[s]?.[0]??0,n=this.#la[o],r=i[0]?.engine;if(r&&void 0!==n){for(let t=0;t<i.length;t++){const s=i[t];if(!s?.camera)continue;const e=this.#la[t]-n+h,o=this.#ua[t];e+o>-1&&1>e&&s.camera.setArea([e,0,o,1],{direct:1,noDispatch:1})}r.render()}}destroy(){this.#Xs.removeAttribute("data-panning"),this.#Xs.kh=0,this.#Ta()}},le=class extends yi{static tag="micrio-gallery";#ph={};#Ia=-1;#ma=0;#Gi=[];#ca=[];#la=[];#ua=[];#Ca;#za=null;#La=null;#Aa=null;#$a=0;#Da=-1;#Oa=0;#Fa=0;#Va=null;#Na;#Ba;#Ga=new Map;#Ya=0;#Ha;async eo(){const t=this.mo();if(!t)return;const i=t.$current;if(!i)return;if(i.$settings?.omni)return this.#Na=new ae(t,i,this,(t,i,s,e,h,o)=>this.#Ra(t,i,s,e,h,o)),void(await this.#Na.setup());const s=this.#ph.controller;s&&this.#Xa(t,i,s)}xt(t){void 0!==t.controller&&(this.#ph.controller=t.controller)}#ja(t){if(!this.#za)return 0;const i=this.#za.clientWidth;return 16+t/Math.max(1,this.#ca.length-1)*(i-32)}#Wa(t){const i=this.#ca[t];return i&&i.length>1?`${i[0]+1}-${i[i.length-1]+1}`:String(t+1)}#Qr(t,i=0,s=150,e=0){if(!this.#Gi.length)return;const h=Math.round(Math.max(0,Math.min(this.#ca.length-1,t))),o=this.#ca[h]?.[0]??0,n=e||h!==this.#Ia;if(this.#Ia=h,this.#ma=o,n&&this.#Ua(),this.#Ha)this.#Ha.goto(h);else if(this.#Ba)this.#Ba.animateTo(o,i,s,this.#ma);else if(n){const t=(this.#ca[h]?.length??1)-1;this.#Ca.canvas?.Fi(o,t),this.#Ca.camera.setView([0,0,1,1])}this.#Ca.album.hooked=1}#Ua(){this.#Za(this.#ma),this.mo()?.events.Pt("gallery-show",this.#Ia),this.#Ba&&this.#Ca.album?.currentImage?.set(this.#Gi[this.#ma]),this.#qa()}#Ja=t=>{if(t.preventDefault(),t.stopPropagation(),this.#Oa||(this.#Fa="button"in t)&&0!==t.button||!this.#za)return;this.#Va=this.#za.getBoundingClientRect();const i=this.mo();i&&(i.kh=this.#Oa=1,this.#Da=-1,window.addEventListener(this.#Fa?"pointermove":"touchmove",this.#Ka),window.addEventListener(this.#Fa?"pointerup":"touchend",this.#Qa),this.#Ka(t))};#tc(t){const i=this.#Va??this.#za.getBoundingClientRect(),s=this.#ca.length,e="button"in t?t.clientX:t.touches[0].clientX,h=Math.min(1,Math.max(0,(e-i.left-16)/(i.width-32)));return[h,Math.max(0,Math.min(s-1,Math.round(h*Math.max(1,s-1))))]}#Ka=t=>{const[i,s]=this.#tc(t);this.#$a=16+i*(this.#Va.width-32),s!==this.#Ia&&this.#Qr(s,1)};#ic=t=>{this.#Oa||(this.#Da=this.#tc(t)[1]),this.#qa()};#Qa=()=>{window.removeEventListener(this.#Fa?"pointermove":"touchmove",this.#Ka),window.removeEventListener(this.#Fa?"pointerup":"touchend",this.#Qa);const t=this.mo();t&&(this.#Oa=t.kh=0,this.#Qr(this.#Ia))};#Ra(t,i,s,e,h,o){if(!i||!h?.ready)return;const n=self.requestIdleCallback??self.requestAnimationFrame;for(let r=-s;s>=r;r++){if(!r)continue;let s=t+r;for(;0>s;)s+=i;for(;s>=i;)s-=i;const a=e(s);a?.thumbSrc&&!this.#Ga.has(a.thumbSrc)&&this.#Ga.set(a.thumbSrc,n(()=>h.ph(a.baseTileIdx,a.thumbSrc,0,{force:o})))}}#Za(t){const i=this.#Gi;if(!i.length||1>=i.length)return;const s=i[0].engine,e=!!i[0]?.$settings?.gallery?.archive;this.#Ra(t,i.length,this.#Ya,t=>i[t]?{baseTileIdx:i[t].Lt,thumbSrc:i[t].thumbSrc}:void 0,s,e)}#sc=t=>{switch(t.key){case"PageUp":case"ArrowLeft":this.#Qr(this.#Ia-1,1);break;case"PageDown":case"ArrowRight":this.#Qr(this.#Ia+1,1);break;case"Home":this.#Qr(0);break;case"End":this.#Qr(this.#ca.length-1);break;default:return}};async#Xa(t,i,s){const e=[...s._o];if(!e.length)return;this.#Gi=e,this.#Ca=i;const h=s.Yo();this.#ca=h.pages,this.#la=[],this.#ua=[];for(const[p,m]of h.pages.entries()){const t=m.length;for(let i=0;t>i;i++)this.#la[m[i]]=p+i/t,this.#ua[m[i]]=1/t}const o=s.Fo.startId?Math.max(0,e.findIndex(t=>t.id===s.Fo.startId)):0,n=h.pages.findIndex(t=>t.includes(o)),r=0>n?0:n;this.#Ya="requestIdleCallback"in self?100:50;const a=t.$h,c=i,l="swipe"===s.Fo.type,u="book3d"===s.Fo.type;l&&(this.#Ba=new ce(t,e,this.#ca,this.#la,this.#ua,t=>this.#Qr(t),()=>this.#Ia)),this.#Ia=r,this.#ec(),this.#qa();const d=this;if(c.album={numPages:h.numPages,get currentIndex(){return d.#Ia},info:c.$settings.gallery,prev:()=>d.#Qr(d.#Ia-1),next:()=>d.#Qr(d.#Ia+1),goto:t=>d.#Qr(t),...d.#Ba?{currentImage:H(e[o])}:{}},this.#Ba)await this.#Ba.setup(o,c,a),this.#ma=o,this.#Ia=r,this.#Ua(),c.album.hooked=1;else if(u)this.#hc(c,s.Vo,r);else{await Promise.allSettled(e.map(t=>("state"in t&&!("image"in t)&&(t.camera=c.camera),a.qt(t,c,{opacity:0,asImage:"camera"in t}))));const t=this.#ca[r],i=(t?.length??1)-1;c.canvas?.Fi(t[0],i),c.camera.setView([0,0,1,1]),this.#Ia=r,this.#Ua(),c.album.hooked=1}this.#Ba&&e.length>1&&(t.canvas.element.addEventListener("pointerdown",this.#Ba.handlePointerDown),this.oo(()=>t.canvas.element.removeEventListener("pointerdown",this.#Ba.handlePointerDown))),window.addEventListener("keydown",this.#sc),this.oo(()=>window.removeEventListener("keydown",this.#sc))}async#hc(t,i,s){if("MicrioBook3D"in window||await Mt(`https://r2.micr.io/micrio-book3d.${I}.min.js`),!("MicrioBook3D"in window))throw new Error("Could not load Micrio Book3D viewer");for(const e of this.#Gi)e.visible.set(1);this.#Ia=s,this.#Ua(),t.album.hooked=1,this.#Ha=new window.MicrioBook3D({canvas:t.engine.micrio.canvas.element,bookIndex:{images:i,delta:s},getImageById:bt.Qt,onPageChange:t=>this.#Qr(t)}),t.engine.micrio.events.unhookScroll(),t.camera.L=t=>this.#Ha.zoom(t)}#ec(){const t=this.#ca.length;if(!this.#Gi.length||1>=t||this.querySelector("ul"))return;const i=R(Gi),s=t>24,e=s?Math.max(1,Math.ceil(t/24)):1,h=this.#Ia;this.#La=pt("micrio-button",{parent:this,setProps:{type:"prev",title:i.un,disabled:0>=h,onclick:()=>this.#Qr(this.#Ia-1)}});const o=pt("ul",{className:s?"dense":"",parent:this,events:{pointerdown:this.#Ja,pointermove:this.#ic,pointerleave:()=>{this.#Da=-1,this.#qa()}}});this.#za=o,o.addEventListener("touchstart",this.#Ja,{passive:0}),pt("span",{parent:o,children:[pt("span")]}),pt("span",{parent:o,children:Array.from({length:t},(i,h)=>s&&h%e!==0&&h!==t-1?null:pt("span",{attrs:s&&h%(5*e)==0?{"data-major":""}:{},style:{left:(t>1?h/(t-1)*100:50)+"%"}}))}),pt("button",{parent:o,props:{role:"slider",tabIndex:0},attrs:{"aria-label":"Gallery position","aria-valuemin":"1","aria-valuemax":String(t)}}),pt("span",{parent:o}),this.#Aa=pt("micrio-button",{parent:this,setProps:{type:"next",title:i.dn,disabled:h>=t-1,onclick:()=>this.#Qr(this.#Ia+1)}})}#qa(){const t=this.#ca.length;if(!t)return;const i=this.#Ia,s=t>24,e=s?Math.max(1,Math.ceil(t/24)):1,h=t>1?i/(t-1)*100:0,o=this.#za&&!this.#Oa?this.#ja(i):this.#$a,n=this.querySelector("ul > :first-child > span");n&&(n.style.width=`${h}%`);const r=this.querySelectorAll("ul > :nth-child(2) > span"),a=[];for(let d=0;t>d;d++)s&&d%e!==0&&d!==t-1&&d!==i||a.push(d);r.forEach((t,s)=>{const e=a[s];void 0!==e&&(t.toggleAttribute("data-active",e===i),t.toggleAttribute("data-hover",e===this.#Da))});const c=this.querySelector("ul > button");c&&(c.style.left=`${o}px`,c.classList.toggle("dragging",this.#Oa),c.setAttribute("aria-valuenow",String(i+1)));const l=this.querySelector("ul > button + span");l&&(l.style.left=`${o}px`,l.classList.toggle("dragging",this.#Oa),l.textContent=this.#Wa(i)+(s?` / ${t}`:""));let u=this.querySelector('[data-part="hover-label"]');0>this.#Da||this.#Da===i||this.#Oa?u?.remove():(u||(u=pt("span",{attrs:{"data-part":"hover-label"},parent:this.querySelector("ul")??void 0})),u.style.left=(t>1?this.#Da/(t-1)*100:50)+"%",u.textContent=this.#Wa(this.#Da)),this.#La&&this.#La.querySelector("button")?.toggleAttribute("disabled",0>=i),this.#Aa&&this.#Aa.querySelector("button")?.toggleAttribute("disabled",i>=t-1)}ho(){this.#Na?.destroy(),this.#Ba?.destroy()}};customElements.define(le.tag,le);var ue=class extends yi{static tag="micrio-serial-tour";#ph={tour:null};#oc=[];#Gr=0;#Th=0;#nn=void 0;#W=0;#nc=0;eo(){const{tour:t}=this.#ph,i=this.mo();if(!i||!t)return;this.#oc=t.stepInfo||[],this.#W=this.#oc.reduce((t,i)=>t+(i.duration||0),0),this.#nc=!!i.$current?.$settings?.ui?.controls?.serialTourNoTimeScrub,i.setAttribute("data-tour-active",""),this.oo(()=>i.removeAttribute("data-tour-active"));const s=t;s.next=()=>this.#No(),s.prev=()=>{this.#Gr>0&&this.#rc(this.#Gr-1)},this.oo(i.state.marker.subscribe(t=>{if(!t||!this.#oc.length)return;const i="string"==typeof t?t:t.id,s=this.#oc.findIndex(t=>t.markerId===i);0>s||s===this.#Gr||(this.#oc.forEach(t=>t.ended=0),this.#rc(s))})),this.#Yh(),this.#rc(0)}#Yh(){if(!this.#Th&&(this.#Th=1,this.#ph.tour.printChapters)){const t=pt("ol");this.#oc.forEach((i,s)=>{const e=Y.M(i),h=this.#ac(e);h&&pt("li",{dataset:{idx:String(s)},parent:t,children:[pt("button",{textContent:h,events:{click:()=>this.#Qr(s)}})]})}),t.children.length&&this.appendChild(t)}}async#rc(t){const i=this.mo();if(!i)return;const s=()=>{i.state.tour.set(void 0),this.#ph.onended?.(),this.remove()},e=this.#oc[t];if(!e)return;e.ended=0,e.currentTime=0;const h=Y.M(e);let o;if(h?.videoTour){const t=h.videoTour.i18n?.[i.lang]?.timeline;t?.length&&1>=t[0].start&&(o=t[0].rect)}if(e.micrioId&&i.$current?.id!==e.micrioId&&await i.open(e.micrioId,{startView:o}),this.#nn&&(this.#nn.remove(),this.#nn=void 0),h?.videoTour){const t=i.lang,e=h.videoTour.i18n?.[t]?.audio??h.i18n?.[t]?.audio,o=pt("micrio-media",{parent:this,setProps:{tour:h.videoTour,src:e?.src,image:i.$current,controls:1,autoplay:1,onended:()=>this.#No(),onclose:s,hasAudio:this.#oc.some(t=>t.duration>0),fullscreenEl:i,getTimeDisplay:()=>`${Rs(this.#cc())} / ${Rs(this.#W)}`}});this.#nn=o,await gt(),this.#lc();const n=this.#nn.querySelector("video,audio");n&&n.addEventListener("timeupdate",()=>{const t=this.#oc[this.#Gr];t&&(t.currentTime=n.currentTime),this.#uc()})}this.#Gr=t,this.#uc(),h?.videoTour||t!==this.#oc.length-1||this.#No()}#No(){const t=this.#oc[this.#Gr];t&&(t.ended=1),this.#Gr<this.#oc.length-1?this.#rc(this.#Gr+1):(this.#ph.onended?.(),this.mo()?.state.tour.set(void 0),this.remove())}#ac(t){return t?.i18n?.[this.mo()?.lang||"en"]?.title}#lc(){const t=this.#nn?.querySelector("micrio-media-controls > aside");if(!t)return;const i=t.querySelector("div");if(!i)return;i.querySelector('[data-part="bars"]')?.remove();const s=pt("div",{attrs:{"data-part":"bars"}});this.#oc.forEach((t,i)=>{const e=Y.M(t);pt("div",{attrs:{"data-part":"bar",role:"progressbar",tabindex:"0"},dataset:{idx:String(i)},props:{title:this.#ac(e)??""},style:{width:t.duration/(this.#W||1)*100+"%"},events:{click:()=>this.#Qr(i)},parent:s})}),i.prepend(s)}#Qr(t){this.#nc&&t===this.#Gr||t!==this.#Gr&&(this.#oc.forEach(t=>t.ended=0),this.#rc(t))}#cc(){let t=0;for(let i=0;i<this.#oc.length;i++){const s=this.#oc[i];if(i>=this.#Gr&&!s.ended){if(i===this.#Gr){t+=s.currentTime??0;break}break}t+=s.duration}return t}#uc(){this.#Th&&((this.#nn?.querySelectorAll('aside [data-part="bars"] > [data-part="bar"]')??[]).forEach((t,i)=>{const s=this.#oc[i],e=i===this.#Gr?s.currentTime??0:0,h=i<this.#Gr||s.ended?100:i===this.#Gr?Math.round(e/(s.duration||1)*1e4)/100:0;t.style.setProperty("--progress",`${h}%`),t.classList.toggle("active",i===this.#Gr)}),this.querySelectorAll("ol.chapters li").forEach(t=>t.classList.toggle("active",Number(t.dataset.idx)===this.#Gr)))}xt(t){void 0!==t.tour&&(this.#ph.tour=t.tour),void 0!==t.onended&&(this.#ph.onended=t.onended)}};function de(t,i){if(i)for(let s,e=0;e<i.length;e++)if(i[e].id==t||(s=de(t,i[e].children)))return s??i[e]}customElements.define(ue.tag,ue);var pe=class extends yi{static tag="micrio-main";#ph={};#w;#Ne;#dc=0;#pc;#mc;#fc=new Map;#k=new Map;#gc;#vc(){this.#gc?.destroy(),this.#gc=void 0}#wc=["audio","media","logo","orgLogo","details","toolbar","grid","gallery","controls","embeds","markers","popup","tour","popover","minimap","error","progress"];#Mc=new Map;#yc(t){for(let i=this.#wc.indexOf(t)+1;i<this.#wc.length;i++){const t=this.#Mc.get(this.#wc[i]);if(t?.isConnected)return t}return null}#_c(t,i){if(i.isConnected)return;const s=this.#yc(t);s?this.insertBefore(i,s):this.appendChild(i)}#bc(t,i,s,e){const h=this.#Mc.get(t);if(i){if(h?.isConnected)return void e?.(h);h?.remove();const i=s();this.#Mc.set(t,i),this.#_c(t,i)}else h?.isConnected&&(h.remove(),this.#Mc.set(t,null))}eo(){const t=this.mo();if(!t)return;const i=H(R(t.yn)?0:1);this.do("volume",i),this.oo(t.yn.subscribe(t=>i.set(t?0:1))),this.do("mediaPaused",H(0)),"markers"==t.getAttribute("data-ui")&&(this.#ph.noHTML=1);const s=[];this.oo(t.current.subscribe(i=>{if(!i)return;this.#w=i.$info,this.#Ne=void 0,this.#dc=1,this.#Ne=i.Et,this.#Ne&&this.oo(this.#Ne.subscribe(()=>this.#kc())),!this.#pc&&Y.k()?.logo&&(this.#pc=Y.k()),this.#kc(),this.isConnected&&this.#Gh();const e=i.$data;if(e&&0>s.indexOf(i.id)){s.push(i.id);const h=i.$settings.start;h&&X().then(X).then(()=>{if(!(R(t.state.popover)||R(t.state.marker)||R(t.state.tour)))switch(h.type){case"marker":i.state.marker.set(h.id);break;case"markerTour":{const i=e.markerTours?.find(t=>t.id==h.id);i&&t.state.tour.set(i);break}case"tour":{const i=e.tours?.find(t=>t.id==h.id);i&&t.state.tour.set(i);break}case"page":{const i=de(h.id,e.pages);i&&t.state.popover.set({contentPage:i,showLangSelect:1});break}}})}this.#kc()})),this.oo(t.state.tour.subscribe(()=>{const i=this.#Mc.get("subtitles");i&&i.xt?.({raised:!!R(t.state.tour)})}));for(const e of[t.Ut,t.gallery,t.state.popup,t.state.popover,t.state.tour,t.state.marker])this.oo(e.subscribe(()=>this.#kc()));this.oo(t.Ht.subscribe(()=>this.#kc())),this.#kc()}xt(t){Object.assign(this.#ph,t),this.isConnected&&this.#kc()}#xc=0;#kc(){this.#xc||(this.#xc=1,requestAnimationFrame(()=>{this.#xc=0,this.isConnected&&this.#Gh()}))}#Gh(){const t=this.mo();if(!t)return;const i=R(t.state.tour),s=R(t.state.marker),e=R(t.state.popup),h=R(t.state.popover),o=this.#w,n=this.#Ne?R(this.#Ne):void 0,r=t.$current?R(t.$current.data):void 0,a=this.#ph.error,c=this.#ph.loadingProgress??1,l=this.#ph.noHTML??0,u=this.#ph.noLogo??l,d=t.canvas.$isMobile,p=t.$current?.A,m=p?n.l.video:void 0,f=m?.src;this.classList.toggle("is360",p);const g=r?.markers?.filter(t=>!!t.positionalAudio),v=!!r?.music?.items.length||!!g?.length,w=i||s,M=!l||"markers"==t.getAttribute("data-ui"),y=!(u||o&&l||n?.noLogo||s||e),_=!l&&y&&!n?.noOrgLogo&&!!this.#pc&&!h,b=!l&&!!o&&!n?.noControls,k=!l&&!w&&!!n?.showInfo,x=!l&&this.#dc&&!n?.noToolbar,T=!(l||!o||0==n?.minimap||n?.noControls||!t.$current?.thumbSrc||e&&d);v&&r&&o&&t.$current?this.#gc||(this.#gc=new As(t,t.$current),this.oo(()=>this.#vc())):this.#vc(),this.#bc("media",!!f&&!!o,()=>pt("div")),this.#bc("logo",y,()=>pt("micrio-logo")),this.#bc("details",k&&!!r,()=>pt("micrio-details",{setProps:{info:this.#w,data:r}})),this.#bc("toolbar",x,()=>pt("micrio-toolbar"));const P=R(t.Ut);this.#Tc(this.#fc,"micrio-markers","markers",P,M,i=>!(i.opts?.isEmbed||!i.$data?.markers?.length&&!t.spaceData)),this.#Tc(this.#k,"micrio-image-embeds","embeds",P,"false"!=t.getAttribute("data-embeds"),t=>!!t.$data?.embeds?.length),this.#bc("controls",b,()=>pt("micrio-controls",{setProps:{hasAudio:v||!(!f||!m||m.muted)}})),this.#bc("orgLogo",_&&!!this.#pc,()=>pt("micrio-logo-org",{setProps:{organisation:this.#pc}}));const S=R(t.gallery),E=t.$current?.grid;E&&this.#_c("grid",E),this.#bc("gallery",!!n?.omni||!("grid"===S?.Fo?.type||!S),()=>pt("micrio-gallery",{setProps:{controller:S??void 0}})),this.#bc("minimap",T,()=>pt("micrio-minimap",{setProps:{image:t.$current}}),i=>i.xt?.({image:t.$current}));const I=R(t.state.popup),C=null!=I&&"popover"!==I.popupType,z=this.#Mc.get("popup");if(C?(z?.isConnected&&(I.id!==this.#mc||z.classList.contains("destroying"))&&(z.remove(),this.#Mc.set("popup",null)),this.#mc=I.id,this.#Mc.get("popup")?.isConnected||this.#Mc.set("popup",pt("micrio-marker-popup",{setProps:{marker:I},parent:this}))):z?.isConnected||(this.#Mc.set("popup",null),this.#mc=void 0),this.#bc("tour",!!i,()=>pt(i&&"steps"in i&&i.isSerialTour?"micrio-serial-tour":"micrio-tour",{setProps:{tour:i,noHTML:l}})),this.#bc("popover",!!h,()=>pt("micrio-popover",{setProps:{popover:h}})),this.#bc("error",!!a,()=>pt("micrio-error",{setProps:{message:a}})),this.#bc("progress",1>c,()=>pt("micrio-progress-circle",{setProps:{progress:c}})),1>c){const t=this.#Mc.get("progress");t?.isConnected&&t.xt?.({progress:c})}}#Tc(t,i,s,e,h,o){const n=e.filter(t=>o(t)),r=new Set(n.map(t=>t.id));for(const[a,c]of t)r.has(a)||(c.remove(),t.delete(a));if(h)for(const a of n){if(t.has(a.id))continue;const e=pt(i,{setProps:{image:a}});t.set(a.id,e);const h=this.#yc(s);h?this.insertBefore(e,h):this.appendChild(e)}else{for(const i of t.values())i.remove();t.clear()}this.#Mc.set(s,t.values().next().value??null)}};customElements.define(pe.tag,pe),Zi.VERSION=I,customElements.define("micr-io",Zi),console.info("%c◈%c Micrio %cv7.0.5 - https://micr.io/ %c| New in version 7: https://doc.micr.io/client/v7/changes.html","color: #00d4ee","color: #c5ff5b","color: inherit","color: #888")}();
|