From 2182f95265a9b222b0bdeb52ad8eb566923039c0 Mon Sep 17 00:00:00 2001 From: will-moore Date: Tue, 22 Oct 2024 14:52:26 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20ome/ome2?= =?UTF-8?q?024-ngff-challenge@bc41e93ecabea286a141f3ee9d5e54522c31f1a5=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- about/index.html | 12 +++++++++++ assets/index-BXbUBE0n.css | 1 + assets/index-C0ZbZslo.js | 44 ++++++++++++++++++++++++++++++++++++++ assets/index-C6YtS3Ix.js | 22 ------------------- assets/index-Dvv3olol.css | 1 - favicon-16x16.png | Bin 0 -> 753 bytes github-mark-white.svg | 1 + index.html | 5 +++-- nfdi4bioimage.png | Bin 0 -> 23796 bytes ome-logomark.svg | 21 ++++++++++++++++++ selectCaret.svg | 1 + vizarr_logo.png | Bin 0 -> 5822 bytes 12 files changed, 83 insertions(+), 25 deletions(-) create mode 100644 about/index.html create mode 100644 assets/index-BXbUBE0n.css create mode 100644 assets/index-C0ZbZslo.js delete mode 100644 assets/index-C6YtS3Ix.js delete mode 100644 assets/index-Dvv3olol.css create mode 100644 favicon-16x16.png create mode 100644 github-mark-white.svg create mode 100644 nfdi4bioimage.png create mode 100644 ome-logomark.svg create mode 100644 selectCaret.svg create mode 100644 vizarr_logo.png diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..8a72ac9 --- /dev/null +++ b/about/index.html @@ -0,0 +1,12 @@ + + + + + + + ome2024-ngff-challenge + + + + + diff --git a/assets/index-BXbUBE0n.css b/assets/index-BXbUBE0n.css new file mode 100644 index 0000000..4c10a7f --- /dev/null +++ b/assets/index-BXbUBE0n.css @@ -0,0 +1 @@ +:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{box-sizing:border-box}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#545cf2}body{--bg-opacity: .5}body{margin:0;width:100%;height:100%;background:#fff;color:#333;position:absolute;top:0;right:0;bottom:0;left:0;--background-color: white;--border-color: lightgrey;--light-background: #eee;--selected-background: #eee}@media (prefers-color-scheme: dark){body{--bg-opacity: 0;background:#000;color:#bbb;--light-background: #222;--border-color: #333;--selected-background: #444}}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;font-weight:300}h1{font-size:3.2em;line-height:1.1}.card{padding:2em}main{position:relative;z-index:10}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.sortButtons button:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.sortButtons button:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}button.svelte-17vd65t{background-color:var(--light-background);border:solid var(--border-color) 1px;border-radius:5px;text-wrap:none;white-space:nowrap;position:relative;padding:9px 10px 11px;outline:none;margin:0;height:35px}button.svelte-17vd65t:focus-visible{outline:4px solid gold}span.svelte-17vd65t{color:#d3d3d3;display:inline-block;position:absolute;right:5px;top:50%;margin-top:-10px}.strong.svelte-17vd65t{font-weight:700;color:#000}.acc.svelte-17vd65t{transform:rotate(180deg);margin-top:-5px}.virtual-list-wrapper.svelte-dwpad5{overflow:auto;will-change:transform;-webkit-overflow-scrolling:touch}.virtual-list-inner.svelte-dwpad5{position:relative;display:flex;width:100%}.canvasWrapper.svelte-lwhhyg{position:relative}canvas.svelte-lwhhyg{box-shadow:5px 4px 10px -5px #737373}@keyframes svelte-lwhhyg-spinner{to{transform:rotate(360deg)}}.spinner.svelte-lwhhyg:after{content:"";box-sizing:border-box;position:absolute;top:50%;left:50%;width:40px;height:40px;margin-top:-20px;margin-left:-20px;border-radius:50%;border:5px solid rgba(180,180,180,.6);border-top-color:#0009;animation:svelte-lwhhyg-spinner .6s linear infinite}.thumbWrapper.svelte-afrxqy{width:120px;height:120px;cursor:pointer}.zarr-list-item.svelte-afrxqy{padding:10px;display:flex;flex-direction:row;align-items:start;gap:10px;background-color:var(--background-color)}@media (max-width: 800px){.hideOnSmall.svelte-afrxqy{display:none}}.imageListContainer.svelte-1xvcjxw{border-top:solid var(--border-color) 1px;width:100%;margin:auto;flex:auto 1 1;overflow:hidden}.row.svelte-1xvcjxw{padding:10px}.close.svelte-1g3sjso{position:absolute;right:5px;top:5px;z-index:100;font-size:2rem;padding:2px 9px}.scrollable.svelte-1g3sjso{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;height:100%;background:#fff;z-index:0;padding:5px}#mypopover.svelte-1g3sjso{position:fixed;margin-right:5px;margin-bottom:5px;width:50%;height:75%;overflow:auto;box-shadow:5px 4px 10px -5px #737373}@media (max-width: 800px){#mypopover.svelte-1g3sjso{width:100%}}nav.svelte-1q2q39w.svelte-1q2q39w{top:0;left:0;width:100%;display:flex;flex-direction:row;margin:0;padding:5px 15px;background-color:#202428;z-index:20;align-items:center;box-sizing:border-box;flex:auto 0 0;gap:5px}h2.svelte-1q2q39w.svelte-1q2q39w{color:#fff;font-weight:300;margin:5px 15px}a.svelte-1q2q39w.svelte-1q2q39w{color:#fff;text-decoration:none;display:block}.logolink.svelte-1q2q39w.svelte-1q2q39w,img.svelte-1q2q39w.svelte-1q2q39w{height:30px}.github.svelte-1q2q39w img.svelte-1q2q39w,.github.svelte-1q2q39w.svelte-1q2q39w{height:20px}.github.svelte-1q2q39w.svelte-1q2q39w{margin:0 10px}.source.svelte-1iuq3t7.svelte-1iuq3t7:has(input.source:checked){border:solid #ccc 1px;background-color:var(--selected-background)}.source.svelte-1iuq3t7.svelte-1iuq3t7{border:solid var(--border-color) 1px;float:left;position:relative;padding:3px;border-radius:5px;cursor:pointer}.source.svelte-1iuq3t7 label.svelte-1iuq3t7{display:flex;flex-direction:row;position:relative;padding:5px;cursor:pointer;gap:5px;line-height:normal}.sourceLogo.svelte-1iuq3t7.svelte-1iuq3t7{height:32px;margin:2px;background-color:#fff;padding:2px;border-radius:4px}input[type=radio].svelte-1iuq3t7.svelte-1iuq3t7{visibility:hidden;width:0;margin:0}.source.svelte-1iuq3t7 .clear.svelte-1iuq3t7{display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;opacity:.5}.source.svelte-1iuq3t7:has(input.source:checked) .clear.svelte-1iuq3t7{display:block;text-align:right}.tooltip.svelte-1iuq3t7.svelte-1iuq3t7{display:none;top:100%;position:absolute;background-color:#f9f9f9;border:1px solid #ccc;border-radius:5px;padding:5px;z-index:1}.source.svelte-1iuq3t7:hover .tooltip.svelte-1iuq3t7{display:block}.sidebarContainer.svelte-13v19q.svelte-13v19q{display:flex;flex-direction:row}.sidebar.svelte-13v19q.svelte-13v19q{flex:250px 0 0;padding:10px}.results.svelte-13v19q.svelte-13v19q{flex:auto 1 1;position:relative}input[name=textFilter].svelte-13v19q.svelte-13v19q{width:100%;flex:auto 1 1;border:solid var(--border-color) 1px;border-radius:16px;padding:8px 8px 6px 12px;font-size:1rem;background-color:var(--light-background);position:relative;display:block}input[name=textFilter].svelte-13v19q.svelte-13v19q:before{content:"Where is this going?";width:200px;height:200px;position:absolute;right:0;top:0;bottom:0;display:block}@media (max-width: 800px){.sidebarContainer.svelte-13v19q.svelte-13v19q{flex-direction:column}}select.svelte-13v19q.svelte-13v19q{display:block;width:100%;padding:.3rem 2.25rem .3rem .75rem;font-size:1rem;line-height:1.5;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--light-background);border:1px solid var(--border-color);border-radius:.375rem;margin:3px 0;float:left;background-image:var(--form-select-bg-img);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px}.selectWrapper.svelte-13v19q.svelte-13v19q{display:flex;flex-direction:row;align-items:center;gap:5px}.selectWrapper.svelte-13v19q>select.svelte-13v19q{flex:auto 1 1}.selectWrapper.svelte-13v19q>div.svelte-13v19q{flex:0 0 20px;cursor:pointer}.selectWrapper.svelte-13v19q button.svelte-13v19q,.textInputWrapper.svelte-13v19q button.svelte-13v19q{background:transparent;border:none;padding:2px;font-size:24px}.textInputWrapper.svelte-13v19q.svelte-13v19q{position:relative;max-width:600px;margin:0 auto 10px}.textInputWrapper.svelte-13v19q button.svelte-13v19q{position:absolute;right:7px;top:-1px}.sources.svelte-13v19q.svelte-13v19q{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:5px;max-width:1200px;margin:0 auto}.filters.svelte-13v19q.svelte-13v19q{gap:10px;margin:5px 0}main.svelte-13v19q.svelte-13v19q{flex:auto 1 1;overflow:scroll;width:100%;display:flex;flex-direction:column;margin:auto}.summary.svelte-13v19q.svelte-13v19q{z-index:20;padding:0 10px 10px;flex:auto 0 0;position:relative}.results.svelte-13v19q h3.svelte-13v19q{margin:10px}div.svelte-1ivuwa5{margin:15px}.app.svelte-1mc4mod{margin:0;padding:0;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column} diff --git a/assets/index-C0ZbZslo.js b/assets/index-C0ZbZslo.js new file mode 100644 index 0000000..14f5507 --- /dev/null +++ b/assets/index-C0ZbZslo.js @@ -0,0 +1,44 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blosc-E49GQuAK.js","assets/chunk-INHXZS53-D3tQiqtZ.js","assets/gzip-CF-9a_hd.js","assets/browser-B-ZyVB-j.js","assets/lz4-BIGKWw27.js","assets/zlib-CBiqHlio.js","assets/zstd-IvP746pw.js"])))=>i.map(i=>d[i]); +var Dr=Object.defineProperty;var gi=t=>{throw TypeError(t)};var Nr=(t,e,n)=>e in t?Dr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var le=(t,e,n)=>Nr(t,typeof e!="symbol"?e+"":e,n),Tn=(t,e,n)=>e.has(t)||gi("Cannot "+n);var $=(t,e,n)=>(Tn(t,e,"read from private field"),n?n.call(t):e.get(t)),Ie=(t,e,n)=>e.has(t)?gi("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),ke=(t,e,n,i)=>(Tn(t,e,"write to private field"),i?i.call(t,n):e.set(t,n),n),On=(t,e,n)=>(Tn(t,e,"access private method"),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&i(l)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();function we(){}function Pr(t,e){for(const n in e)t[n]=e[n];return t}function mr(t){return t()}function mi(){return Object.create(null)}function nt(t){t.forEach(mr)}function yn(t){return typeof t=="function"}function xe(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let _n;function Ln(t,e){return t===e?!0:(_n||(_n=document.createElement("a")),_n.href=e,t===_n.href)}function Ur(t){return Object.keys(t).length===0}function qr(t,...e){if(t==null){for(const i of e)i(void 0);return we}const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function xt(t){let e;return qr(t,n=>e=n)(),e}function Mn(t,e,n,i){if(t){const r=pr(t,e,n,i);return t[0](r)}}function pr(t,e,n,i){return t[1]&&i?Pr(n.ctx.slice(),t[1](i(e))):n.ctx}function Fn(t,e,n,i){if(t[2]&&i){const r=t[2](i(n));if(e.dirty===void 0)return r;if(typeof r=="object"){const s=[],l=Math.max(e.dirty.length,r.length);for(let a=0;a32){const e=[],n=t.ctx.length/32;for(let i=0;it.removeEventListener(e,n,i)}function v(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function Br(t){return Array.from(t.childNodes)}function me(t,e){e=""+e,t.data!==e&&(t.data=e)}function Ee(t,e){t.value=e??""}function ae(t,e,n,i){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,"")}function ot(t,e,n){for(let i=0;i{const r=t.$$.callbacks[e];if(r){const s=jr(e,n,{cancelable:i});return r.slice().forEach(l=>{l.call(t,s)}),!s.defaultPrevented}return!0}}const It=[],Mt=[];let Rt=[];const vi=[],Vr=Promise.resolve();let Pn=!1;function Hr(){Pn||(Pn=!0,Vr.then(Ne))}function lt(t){Rt.push(t)}const Rn=new Set;let St=0;function Ne(){if(St!==0)return;const t=Gt;do{try{for(;Stt.indexOf(i)===-1?e.push(i):n.push(i)),n.forEach(i=>i()),Rt=e}const pn=new Set;let gt;function Ft(){gt={r:0,c:[],p:gt}}function Dt(){gt.r||nt(gt.c),gt=gt.p}function se(t,e){t&&t.i&&(pn.delete(t),t.i(e))}function he(t,e,n,i){if(t&&t.o){if(pn.has(t))return;pn.add(t),gt.c.push(()=>{pn.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}function Pe(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function Kr(t,e){t.d(1),e.delete(t.key)}function Jr(t,e){he(t,1,1,()=>{e.delete(t.key)})}function vr(t,e,n,i,r,s,l,a,o,h,f,g){let m=t.length,p=s.length,_=m;const w={};for(;_--;)w[t[_].key]=_;const U=[],F=new Map,L=new Map,Y=[];for(_=p;_--;){const z=g(r,s,_),u=n(z);let c=l.get(u);c?Y.push(()=>c.p(z,e)):(c=h(u,z),c.c()),F.set(u,U[_]=c),u in w&&L.set(u,Math.abs(_-w[u]))}const W=new Set,X=new Set;function Z(z){se(z,1),z.m(a,f),l.set(z.key,z),f=z.first,p--}for(;m&&p;){const z=U[p-1],u=t[m-1],c=z.key,E=u.key;z===u?(f=z.first,m--,p--):F.has(E)?!l.has(c)||W.has(c)?Z(z):X.has(E)?m--:L.get(c)>L.get(E)?(X.add(c),Z(z)):(W.add(E),m--):(o(u,l),m--)}for(;m--;){const z=t[m];F.has(z.key)||o(z,l)}for(;p;)Z(U[p-1]);return nt(Y),U}function Je(t){t&&t.c()}function He(t,e,n){const{fragment:i,after_update:r}=t.$$;i&&i.m(e,n),lt(()=>{const s=t.$$.on_mount.map(mr).filter(yn);t.$$.on_destroy?t.$$.on_destroy.push(...s):nt(s),t.$$.on_mount=[]}),r.forEach(lt)}function We(t,e){const n=t.$$;n.fragment!==null&&(Gr(n.after_update),nt(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Zr(t,e){t.$$.dirty[0]===-1&&(It.push(t),Hr(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const _=p.length?p[0]:m;return h.ctx&&r(h.ctx[g],h.ctx[g]=_)&&(!h.skip_bound&&h.bound[g]&&h.bound[g](_),f&&Zr(t,g)),m}):[],h.update(),f=!0,nt(h.before_update),h.fragment=i?i(h.ctx):!1,e.target){if(e.hydrate){const g=Br(e.target);h.fragment&&h.fragment.l(g),g.forEach(x)}else h.fragment&&h.fragment.c();e.intro&&se(t.$$.fragment),He(t,e.target,e.anchor),Ne()}Wt(o)}class Ye{constructor(){le(this,"$$");le(this,"$$set")}$destroy(){We(this,1),this.$destroy=we}$on(e,n){if(!yn(n))return we;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{const r=i.indexOf(n);r!==-1&&i.splice(r,1)}}$set(e){this.$$set&&!Ur(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Yr="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Yr);const At=[];function Un(t,e=we){let n;const i=new Set;function r(a){if(xe(t,a)&&(t=a,n)){const o=!At.length;for(const h of i)h[1](),At.push(h,t);if(o){for(let h=0;h{i.delete(h),i.size===0&&n&&(n(),n=null)}}return{set:r,update:s,subscribe:l}}var Qr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Xr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var br={exports:{}};/* @license +Papa Parse +v5.4.1 +https://github.com/mholt/PapaParse +License: MIT +*/(function(t,e){(function(n,i){t.exports=i()})(Qr,function n(){var i=typeof self<"u"?self:typeof window<"u"?window:i!==void 0?i:{},r=!i.document&&!!i.postMessage,s=i.IS_PAPA_WORKER||!1,l={},a=0,o={parse:function(u,c){var E=(c=c||{}).dynamicTyping||!1;if(z(E)&&(c.dynamicTypingFunction=E,E={}),c.dynamicTyping=E,c.transform=!!z(c.transform)&&c.transform,c.worker&&o.WORKERS_SUPPORTED){var A=function(){if(!o.WORKERS_SUPPORTED)return!1;var R=(Q=i.URL||i.webkitURL||null,B=n.toString(),o.BLOB_URL||(o.BLOB_URL=Q.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",B,")();"],{type:"text/javascript"})))),P=new i.Worker(R),Q,B;return P.onmessage=L,P.id=a++,l[P.id]=P}();return A.userStep=c.step,A.userChunk=c.chunk,A.userComplete=c.complete,A.userError=c.error,c.step=z(c.step),c.chunk=z(c.chunk),c.complete=z(c.complete),c.error=z(c.error),delete c.worker,void A.postMessage({input:u,config:c,workerId:A.id})}var T=null;return o.NODE_STREAM_INPUT,typeof u=="string"?(u=function(R){return R.charCodeAt(0)===65279?R.slice(1):R}(u),T=c.download?new g(c):new p(c)):u.readable===!0&&z(u.read)&&z(u.on)?T=new _(c):(i.File&&u instanceof File||u instanceof Object)&&(T=new m(c)),T.stream(u)},unparse:function(u,c){var E=!1,A=!0,T=",",R=`\r +`,P='"',Q=P+P,B=!1,y=null,S=!1;(function(){if(typeof c=="object"){if(typeof c.delimiter!="string"||o.BAD_DELIMITERS.filter(function(O){return c.delimiter.indexOf(O)!==-1}).length||(T=c.delimiter),(typeof c.quotes=="boolean"||typeof c.quotes=="function"||Array.isArray(c.quotes))&&(E=c.quotes),typeof c.skipEmptyLines!="boolean"&&typeof c.skipEmptyLines!="string"||(B=c.skipEmptyLines),typeof c.newline=="string"&&(R=c.newline),typeof c.quoteChar=="string"&&(P=c.quoteChar),typeof c.header=="boolean"&&(A=c.header),Array.isArray(c.columns)){if(c.columns.length===0)throw new Error("Option columns is empty");y=c.columns}c.escapeChar!==void 0&&(Q=c.escapeChar+P),(typeof c.escapeFormulae=="boolean"||c.escapeFormulae instanceof RegExp)&&(S=c.escapeFormulae instanceof RegExp?c.escapeFormulae:/^[=+\-@\t\r].*$/)}})();var I=new RegExp(U(P),"g");if(typeof u=="string"&&(u=JSON.parse(u)),Array.isArray(u)){if(!u.length||Array.isArray(u[0]))return M(null,u,B);if(typeof u[0]=="object")return M(y||Object.keys(u[0]),u,B)}else if(typeof u=="object")return typeof u.data=="string"&&(u.data=JSON.parse(u.data)),Array.isArray(u.data)&&(u.fields||(u.fields=u.meta&&u.meta.fields||y),u.fields||(u.fields=Array.isArray(u.data[0])?u.fields:typeof u.data[0]=="object"?Object.keys(u.data[0]):[]),Array.isArray(u.data[0])||typeof u.data[0]=="object"||(u.data=[u.data])),M(u.fields||[],u.data||[],B);throw new Error("Unable to serialize unrecognized input");function M(O,J,b){var D="";typeof O=="string"&&(O=JSON.parse(O)),typeof J=="string"&&(J=JSON.parse(J));var H=Array.isArray(O)&&0=this._config.preview;if(s)i.postMessage({results:R,workerId:o.WORKER_ID,finished:Q});else if(z(this._config.chunk)&&!E){if(this._config.chunk(R,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);R=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(R.data),this._completeResults.errors=this._completeResults.errors.concat(R.errors),this._completeResults.meta=R.meta),this._completed||!Q||!z(this._config.complete)||R&&R.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),Q||R&&R.meta.paused||this._nextChunk(),R}this._halted=!0},this._sendError=function(c){z(this._config.error)?this._config.error(c):s&&this._config.error&&i.postMessage({workerId:o.WORKER_ID,error:c,finished:!1})}}function g(u){var c;(u=u||{}).chunkSize||(u.chunkSize=o.RemoteChunkSize),f.call(this,u),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(E){this._input=E,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(c=new XMLHttpRequest,this._config.withCredentials&&(c.withCredentials=this._config.withCredentials),r||(c.onload=Z(this._chunkLoaded,this),c.onerror=Z(this._chunkError,this)),c.open(this._config.downloadRequestBody?"POST":"GET",this._input,!r),this._config.downloadRequestHeaders){var E=this._config.downloadRequestHeaders;for(var A in E)c.setRequestHeader(A,E[A])}if(this._config.chunkSize){var T=this._start+this._config.chunkSize-1;c.setRequestHeader("Range","bytes="+this._start+"-"+T)}try{c.send(this._config.downloadRequestBody)}catch(R){this._chunkError(R.message)}r&&c.status===0&&this._chunkError()}},this._chunkLoaded=function(){c.readyState===4&&(c.status<200||400<=c.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:c.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(E){var A=E.getResponseHeader("Content-Range");return A===null?-1:parseInt(A.substring(A.lastIndexOf("/")+1))}(c),this.parseChunk(c.responseText)))},this._chunkError=function(E){var A=c.statusText||E;this._sendError(new Error(A))}}function m(u){var c,E;(u=u||{}).chunkSize||(u.chunkSize=o.LocalChunkSize),f.call(this,u);var A=typeof FileReader<"u";this.stream=function(T){this._input=T,E=T.slice||T.webkitSlice||T.mozSlice,A?((c=new FileReader).onload=Z(this._chunkLoaded,this),c.onerror=Z(this._chunkError,this)):c=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(T.target.result)},this._chunkError=function(){this._sendError(c.error)}}function p(u){var c;f.call(this,u=u||{}),this.stream=function(E){return c=E,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var E,A=this._config.chunkSize;return A?(E=c.substring(0,A),c=c.substring(A)):(E=c,c=""),this._finished=!c,this.parseChunk(E)}}}function _(u){f.call(this,u=u||{});var c=[],E=!0,A=!1;this.pause=function(){f.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){f.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(T){this._input=T,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){A&&c.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),c.length?this.parseChunk(c.shift()):E=!0},this._streamData=Z(function(T){try{c.push(typeof T=="string"?T:T.toString(this._config.encoding)),E&&(E=!1,this._checkIsFinished(),this.parseChunk(c.shift()))}catch(R){this._streamError(R)}},this),this._streamError=Z(function(T){this._streamCleanUp(),this._sendError(T)},this),this._streamEnd=Z(function(){this._streamCleanUp(),A=!0,this._streamData("")},this),this._streamCleanUp=Z(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function w(u){var c,E,A,T=Math.pow(2,53),R=-T,P=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,Q=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,B=this,y=0,S=0,I=!1,M=!1,ee=[],O={data:[],errors:[],meta:{}};if(z(u.step)){var J=u.step;u.step=function(N){if(O=N,H())D();else{if(D(),O.data.length===0)return;y+=N.data.length,u.preview&&y>u.preview?E.abort():(O.data=O.data[0],J(O,B))}}}function b(N){return u.skipEmptyLines==="greedy"?N.join("").trim()==="":N.length===1&&N[0].length===0}function D(){return O&&A&&(ne("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+o.DefaultDelimiter+"'"),A=!1),u.skipEmptyLines&&(O.data=O.data.filter(function(N){return!b(N)})),H()&&function(){if(!O)return;function N(oe,pe){z(u.transformHeader)&&(oe=u.transformHeader(oe,pe)),ee.push(oe)}if(Array.isArray(O.data[0])){for(var G=0;H()&&G=ee.length?"__parsed_extra":ee[ue]),u.transform&&(re=u.transform(re,de)),re=ie(de,re),de==="__parsed_extra"?(Se[de]=Se[de]||[],Se[de].push(re)):Se[de]=re}return u.header&&(ue>ee.length?ne("FieldMismatch","TooManyFields","Too many fields: expected "+ee.length+" fields but parsed "+ue,S+pe):ue=Me.length/2?`\r +`:"\r"}(N,pe)),A=!1,u.delimiter)z(u.delimiter)&&(u.delimiter=u.delimiter(N),O.meta.delimiter=u.delimiter);else{var ue=function(de,re,Ue,Me,Te){var be,Ae,fe,ge;Te=Te||[","," ","|",";",o.RECORD_SEP,o.UNIT_SEP];for(var et=0;et=P)return Re(!0)}else for(te=y,y++;;){if((te=I.indexOf(c,te+1))===-1)return ee||ne.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:ie.length,index:y}),Qe();if(te===O-1)return Qe(I.substring(y,te).replace(et,c));if(c!==B||I[te+1]!==B){if(c===B||te===0||I[te-1]!==B){fe!==-1&&fe=P)return Re(!0);break}ne.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:ie.length,index:y}),te++}}else te++}return Qe();function Ke(ze){ie.push(ze),G=y}function Oe(ze){var Pt=0;if(ze!==-1){var tt=I.substring(te+1,ze);tt&&tt.trim()===""&&(Pt=tt.length)}return Pt}function Qe(ze){return ee||(ze===void 0&&(ze=I.substring(y)),N.push(ze),y=O,Ke(N),H&&ct()),Re()}function Xe(ze){y=ze,Ke(N),N=[],ge=I.indexOf(A,y)}function Re(ze){return{data:ie,errors:ne,meta:{delimiter:E,linebreak:A,aborted:S,truncated:!!ze,cursor:G+(M||0)}}}function ct(){R(Re()),ie=[],ne=[]}},this.abort=function(){S=!0},this.getCharIndex=function(){return y}}function L(u){var c=u.data,E=l[c.workerId],A=!1;if(c.error)E.userError(c.error,c.file);else if(c.results&&c.results.data){var T={abort:function(){A=!0,Y(c.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:W,resume:W};if(z(E.userStep)){for(var R=0;R1&&(r=s,i.data.shift());let l=i.data.map(p=>{let _={...n};for(let w=0;w{var _;return!((_=p.url)!=null&&_.endsWith(".csv"))}),o={};a.forEach(p=>{if(o[p.url]){console.warn("Removing duplicate URL:",p.url);return}o[p.url]=p}),a=Object.values(o);let h=l.filter(p=>{var _;return(_=p.url)==null?void 0:_.includes(".csv")}),f=a.reduce((p,_)=>_.wells?p+1:p,0),g=a.reduce((p,_)=>p+parseInt(_.written||0),0),m=a.length;f>0&&(m=a.reduce((p,_)=>p+parseInt(_.images||1),0)),e.addCsv(t,h,m,f,g),e.addRows(a),h.forEach(p=>{let _=p.url;p.csv=_,yr(_,e,p)})}})}async function wr(t){return await fetch(t).then(e=>e.json())}function ft(t){if(!t)return"";const e=2;return t<1024?t+" B":t<1024*1024?(t/1024).toFixed(e)+" KB":t<1024*1024*1024?(t/(1024*1024)).toFixed(e)+" MB":t<1024*1024*1024*1024?(t/(1024*1024*1024)).toFixed(e)+" GB":t<1024*1024*1024*1024*1024?(t/(1024*1024*1024*1024)).toFixed(e)+" TB":(t/(1024*1024*1024*1024*1024)).toFixed(e)+" PB"}function rs(t,e){return Array.from({length:e-t},(n,i)=>i+t)}function ss(t,e,n){const i=t[0].shape,r=i[0],s=i[1],l=r*s;e||(e=t.map(kr));let a=performance.now(),o=new Uint8ClampedArray(4*r*s).fill(0),h=0;for(let f=0;f100*s/r),n}function kr(t){const e=t.data;let n=0,i=1/0,r=t.data.length;for(let s=0;sr?s:[]);for(const[r,s]of i.entries())n[s]=yi[r]}return n.map(Er)}function Er(t){t.startsWith("#")&&(t=t.slice(1));const e=parseInt(t.slice(0,2),16),n=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16);return[e,n,i]}class Cr{constructor(){this.store=Un({})}async lookupOntologyTerm(e){let n=e.replace("NCBI:txid","");return(await wr(`https://rest.ensembl.org/taxonomy/id/${n}?content-type=application/json`)).name||e}addTerms(e){let n=xt(this.store);[...new Set(e)].forEach(r=>{r&&(n[r]||(n[r]="Loading...",setTimeout(()=>{this.lookupOntologyTerm(r).then(s=>{this.addEntry(r,s)})},Math.random()*5e3)))})}addEntry(e,n){this.store.update(i=>(i[e]=n,i))}subscribe(e){return this.store.subscribe(e)}}class hs extends Cr{constructor(){super()}async lookupOntologyTerm(e){const n=e.replace("obo:","");return(await wr(`https://www.ebi.ac.uk/ols4/api/ontologies/fbbi/terms/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252F${n}`)).label||e}}const Sr=new Cr,Ar=new hs,wi=5;async function Kt(t,e){var r;let n=await fetch(`${t}/zarr.json`,{signal:e}).then(s=>{if(s.status===404)throw new Error(`${t}/zarr.json not found`);return s.json()}).catch(s=>[void 0,t]);const i=(r=n==null?void 0:n.attributes)==null?void 0:r.ome;if(!i)return[void 0,t];if(i.multiscales)return[i,t];if(i.plate){let s=i.plate.wells[0],l=`${t}/${s.path}/0`,[a,o]=await Kt(l);return[a,o,i.plate]}else if(i["bioformats2raw.layout"]){let s=`${t}/0`;return await Kt(s)}}class ds{constructor(e="index",n=!0){this.store=Un([]),this.selectedRow=Un(null),this.sortColumn=e,this.sortAscending=n,this.csvFiles=[]}getCsvSourceList(e){let n;if(!e)n=this.csvFiles[0];else for(let r of this.csvFiles){if(r.source===e){n=r;break}for(let s of r.child_csv){if(s.source===e){n=s;break}for(let l of s.child_csv)if(l.source===e){n=l;break}}}return n?n.child_csv.map(r=>{let s=r.image_count||0,l=r.plate_count||0,a=r.bytes||0;for(let o of r.child_csv)s+=o.image_count||0,l+=o.plate_count||0,a+=o.bytes||0;return{...r,image_count:s,plate_count:l,bytes:a}}):[]}addCsv(e,n,i,r,s){n=n.map(a=>({...a,child_csv:[]}));let l;for(let a of this.csvFiles){if(a.url===e){l=a;break}for(let o of a.child_csv){if(o.url===e){l=o;break}for(let h of o.child_csv)if(h.url===e){l=h;break}}}l?(l.image_count=i,l.plate_count=r,l.bytes=s,l.child_csv=n):(l={url:e,image_count:i,plate_count:r,bytes:s,child_csv:n},this.csvFiles.push(l))}addRows(e){e=e.map((r,s)=>{if(r.written&&(r.written=parseFloat(r.written)),r.shape){let l=r.shape.split(",").map(o=>parseInt(o)),a;r.dimension_names?a=r.dimension_names.split(","):l.length==5&&(a=["t","c","z","y","x"]),a&&a.length==l.length&&a.forEach((o,h)=>r["size_"+o]=l[h]),r.dim_count=l.reduce((o,h)=>o+(h>1?1:0),0)}if(r.chunks){let l=r.chunks.split(",").map(a=>parseInt(a));r.chunk_pixels=l.reduce((a,o)=>a*o,1)}if(r.shards){let l=r.shards.split(",").map(a=>parseInt(a));r.shard_pixels=l.reduce((a,o)=>a*o,1)}return r.index=Math.random()*(1+s),r}),console.log("Adding rows",e),this.store.update(r=>(r.push(...e),r.sort((s,l)=>this.compareRows(s,l,!0)),r));let n=e.map(r=>r.organismId);Sr.addTerms(n);let i=e.map(r=>r.fbbiId);Ar.addTerms(i)}populateRow(e,n){this.store.update(i=>(i=i.map(r=>(r.url===e&&(r={...r,...n}),r)),i))}async loadNgffMetadata(e){var m;const[n,i,r]=await Kt(e);let s=[],l=0,a=0,o=!1,h=!0,f={multiscales:n},g=i;if(r&&(l=r.wells.length,a=r.field_count||1),n){const p=(m=n[0])==null?void 0:m.datasets[0],_=p==null?void 0:p.path;if(_){const w=await fetch(`${i}/${_}/zarr.json`).then(U=>U.json()).catch(U=>{console.log(`----> Failed to parse ${i}/${_}/zarr.json`,U)});s=w==null?void 0:w.shape}}else console.log("No multiscales found"),o=!0,s=[0];this.populateRow(e,{image_attrs:f,image_url:g,shape:s,well_count:l,field_count:a,load_failed:o,loaded:h})}async loadRocrateJsonAllRows(){let e=xt(this.store);for(let n=0;nthis.loadRocrateJson(e[r].url));await Promise.all(i)}}compareRows(e,n,i=!1){let r=e[this.sortColumn],s=n[this.sortColumn];if(i)return r===void 0&&(r=0),s===void 0&&(s=0),rs?this.sortAscending?1:-1:0;r===void 0&&(r=""),s===void 0&&(s="");let l=0;return i?l=r-s:l=r.localeCompare(s),this.sortAscending?l:-l}sortTable(e,n=!0){console.log("sortTable",e,n),this.sortColumn=e,this.sortAscending=n;let i=this.isColumnNumeric(e);this.store.update(r=>(r.sort((s,l)=>this.compareRows(s,l,i)),r))}isColumnNumeric(e){let n=xt(this.store);for(let i of n){let r=i[e];if(r!==void 0&&r!=="")return!isNaN(r)}}emptyTable(){this.store.set([])}subscribe(e){return this.store.subscribe(e)}getRows(){return xt(this.store)}getRow(e){return xt(this.store)[e]}subscribeSelectedRow(e){return this.selectedRow.subscribe(e)}setSelectedRow(e){this.selectedRow.set(e)}}const Ce=new ds;function _s(t){let e,n,i,r,s,l;return{c(){e=k("button"),n=k("span"),n.textContent="^",i=j(),r=k("span"),r.textContent="^",v(n,"class","acc svelte-17vd65t"),Tt(n,"strong",t[1]),v(r,"class","dec svelte-17vd65t"),Tt(r,"strong",!t[1]),v(e,"class","svelte-17vd65t")},m(a,o){V(a,e,o),d(e,n),d(e,i),d(e,r),s||(l=ve(e,"click",t[2]),s=!0)},p(a,[o]){o&2&&Tt(n,"strong",a[1]),o&2&&Tt(r,"strong",!a[1])},i:we,o:we,d(a){a&&x(e),s=!1,l()}}}function gs(t,e,n){let{toggleAscending:i}=e,{sortAscending:r}=e;const s=()=>i();return t.$$set=l=>{"toggleAscending"in l&&n(0,i=l.toggleAscending),"sortAscending"in l&&n(1,r=l.sortAscending)},[i,r,s]}class ms extends Ye{constructor(e){super(),Ze(this,e,gs,_s,xe,{toggleAscending:0,sortAscending:1})}}const mn={AUTO:"auto",START:"start",CENTER:"center",END:"end"},st={HORIZONTAL:"horizontal",VERTICAL:"vertical"},Bt={OBSERVED:0,REQUESTED:1},ps={[st.VERTICAL]:"top",[st.HORIZONTAL]:"left"},ki={[st.VERTICAL]:"scrollTop",[st.HORIZONTAL]:"scrollLeft"};class vs{constructor({itemSize:e,itemCount:n,estimatedItemSize:i}){this.itemSize=e,this.itemCount=n,this.estimatedItemSize=i,this.itemSizeAndPositionData={},this.lastMeasuredIndex=-1,this.checkForMismatchItemSizeAndItemCount(),this.justInTime||this.computeTotalSizeAndPositionData()}get justInTime(){return typeof this.itemSize=="function"}updateConfig({itemSize:e,itemCount:n,estimatedItemSize:i}){n!=null&&(this.itemCount=n),i!=null&&(this.estimatedItemSize=i),e!=null&&(this.itemSize=e),this.checkForMismatchItemSizeAndItemCount(),this.justInTime&&this.totalSize!=null?this.totalSize=void 0:this.computeTotalSizeAndPositionData()}checkForMismatchItemSizeAndItemCount(){if(Array.isArray(this.itemSize)&&this.itemSize.length=this.itemCount)throw Error(`Requested index ${e} is outside of range 0..${this.itemCount}`);return this.justInTime?this.getJustInTimeSizeAndPositionForIndex(e):this.itemSizeAndPositionData[e]}getJustInTimeSizeAndPositionForIndex(e){if(e>this.lastMeasuredIndex){const n=this.getSizeAndPositionOfLastMeasuredItem();let i=n.offset+n.size;for(let r=this.lastMeasuredIndex+1;r<=e;r++){const s=this.getSize(r);if(s==null||isNaN(s))throw Error(`Invalid size returned for index ${r} of value ${s}`);this.itemSizeAndPositionData[r]={offset:i,size:s},i+=s}this.lastMeasuredIndex=e}return this.itemSizeAndPositionData[e]}getSizeAndPositionOfLastMeasuredItem(){return this.lastMeasuredIndex>=0?this.itemSizeAndPositionData[this.lastMeasuredIndex]:{offset:0,size:0}}getTotalSize(){if(this.totalSize)return this.totalSize;const e=this.getSizeAndPositionOfLastMeasuredItem();return e.offset+e.size+(this.itemCount-this.lastMeasuredIndex-1)*this.estimatedItemSize}getUpdatedOffsetForIndex({align:e=mn.START,containerSize:n,currentOffset:i,targetIndex:r}){if(n<=0)return 0;const s=this.getSizeAndPositionForIndex(r),l=s.offset,a=l-n+s.size;let o;switch(e){case mn.END:o=a;break;case mn.CENTER:o=l-(n-s.size)/2;break;case mn.START:o=l;break;default:o=Math.max(a,Math.min(l,i))}const h=this.getTotalSize();return Math.max(0,Math.min(h-n,o))}getVisibleRange({containerSize:e=0,offset:n,overscanCount:i}){if(this.getTotalSize()===0)return{};const s=n+e;let l=this.findNearestItem(n);if(l===void 0)throw Error(`Invalid offset ${n} specified`);const a=this.getSizeAndPositionForIndex(l);n=a.offset+a.size;let o=l;for(;n=e?this.binarySearch({high:i,low:0,offset:e}):this.exponentialSearch({index:i,offset:e})}binarySearch({low:e,high:n,offset:i}){let r=0,s=0;for(;e<=n;){if(r=e+Math.floor((n-e)/2),s=this.getSizeAndPositionForIndex(r).offset,s===i)return r;si&&(n=r-1)}return e>0?e-1:0}exponentialSearch({index:e,offset:n}){let i=1;for(;e({}),Ei=t=>({});function Ci(t,e,n){const i=t.slice();return i[37]=e[n],i}const ys=t=>({style:t[0]&4,index:t[0]&4}),Si=t=>({style:t[37].style,index:t[37].index}),ws=t=>({}),Ai=t=>({});function Ii(t,e){let n,i;const r=e[21].item,s=Mn(r,e,e[20],Si);return{key:t,first:null,c(){n=En(),s&&s.c(),this.first=n},m(l,a){V(l,n,a),s&&s.m(l,a),i=!0},p(l,a){e=l,s&&s.p&&(!i||a[0]&1048580)&&Dn(s,r,e,e[20],i?Fn(r,e[20],a,ys):Nn(e[20]),Si)},i(l){i||(se(s,l),i=!0)},o(l){he(s,l),i=!1},d(l){l&&x(n),s&&s.d(l)}}}function ks(t){let e,n,i,r=[],s=new Map,l,a;const o=t[21].header,h=Mn(o,t,t[20],Ai);let f=Pe(t[2]);const g=_=>_[0]?_[0](_[37].index):_[37].index;for(let _=0;_{let t=!1;try{const e=Object.defineProperty({},"passive",{get(){return t={passive:!0},!0}});window.addEventListener("testpassive",e,e),window.remove("testpassive",e,e)}catch{}return t})();function Cs(t,e,n){let{$$slots:i={},$$scope:r}=e,{height:s}=e,{width:l="100%"}=e,{itemCount:a}=e,{itemSize:o}=e,{estimatedItemSize:h=null}=e,{stickyIndices:f=null}=e,{getKey:g=null}=e,{scrollDirection:m=st.VERTICAL}=e,{scrollOffset:p=null}=e,{scrollToIndex:_=null}=e,{scrollToAlignment:w=null}=e,{scrollToBehaviour:U="instant"}=e,{overscanCount:F=3}=e;const L=xr(),Y=new vs({itemCount:a,itemSize:o,estimatedItemSize:ee()});let W=!1,X,Z=[],z={offset:p||_!=null&&Z.length&&S(_)||0,scrollChangeReason:Bt.REQUESTED},u=z,c={scrollToIndex:_,scrollToAlignment:w,scrollOffset:p,itemCount:a,itemSize:o,estimatedItemSize:h},E={},A="",T="";Q(),on(()=>{n(18,W=!0),X.addEventListener("scroll",I,Es),p!=null?B(p):_!=null&&B(S(_))}),Kn(()=>{W&&X.removeEventListener("scroll",I)});function R(){if(!W)return;const b=c.scrollToIndex!==_||c.scrollToAlignment!==w,D=c.itemCount!==a||c.itemSize!==o||c.estimatedItemSize!==h;D&&(Y.updateConfig({itemSize:o,itemCount:a,estimatedItemSize:ee()}),y()),c.scrollOffset!==p?n(19,z={offset:p||0,scrollChangeReason:Bt.REQUESTED}):typeof _=="number"&&(b||D)&&n(19,z={offset:S(_,w,a),scrollChangeReason:Bt.REQUESTED}),c={scrollToIndex:_,scrollToAlignment:w,scrollOffset:p,itemCount:a,itemSize:o,estimatedItemSize:h}}function P(){if(!W)return;const{offset:b,scrollChangeReason:D}=z;(u.offset!==b||u.scrollChangeReason!==D)&&Q(),u.offset!==b&&D===Bt.REQUESTED&&B(b),u=z}function Q(){const{offset:b}=z,{start:D,stop:H}=Y.getVisibleRange({containerSize:m===st.VERTICAL?s:l,offset:b,overscanCount:F});let ie=[];const ne=Y.getTotalSize();m===st.VERTICAL?(n(3,A=`height:${s}${typeof s=="number"?"px":""};width:${l};`),n(4,T=`flex-direction:column;height:${ne}px;`)):(n(3,A=`height:${s};width:${l}${typeof l=="number"?"px":""}`),n(4,T=`min-height:100%;width:${ne}px;`));const N=f!=null&&f.length!==0;if(N)for(let G=0;G=H)&&(b=0),Y.getUpdatedOffsetForIndex({align:D,containerSize:m===st.VERTICAL?s:l,currentOffset:z.offset||0,targetIndex:b})}function I(b){const D=M();D<0||z.offset===D||b.target!==X||(n(19,z={offset:D,scrollChangeReason:Bt.OBSERVED}),L("afterScroll",{offset:D,event:b}))}function M(){return X[ki[m]]}function ee(){return h||typeof o=="number"&&o||50}function O(b,D){if(E[b])return E[b];const{size:H,offset:ie}=Y.getSizeAndPositionForIndex(b);let ne;return m===st.VERTICAL?(ne=`left:0;width:100%;height:${H}px;`,D?ne+=`position:sticky;flex-grow:0;z-index:1;top:0;margin-top:${ie}px;margin-bottom:${-(ie+H)}px;`:ne+=`position:absolute;top:${ie}px;`):(ne=`top:0;width:${H}px;`,D?ne+=`position:sticky;z-index:1;left:0;margin-left:${ie}px;margin-right:${-(ie+H)}px;`:ne+=`position:absolute;height:100%;left:${ie}px;`),E[b]=ne}function J(b){Mt[b?"unshift":"push"](()=>{X=b,n(1,X)})}return t.$$set=b=>{"height"in b&&n(5,s=b.height),"width"in b&&n(6,l=b.width),"itemCount"in b&&n(7,a=b.itemCount),"itemSize"in b&&n(8,o=b.itemSize),"estimatedItemSize"in b&&n(9,h=b.estimatedItemSize),"stickyIndices"in b&&n(10,f=b.stickyIndices),"getKey"in b&&n(0,g=b.getKey),"scrollDirection"in b&&n(11,m=b.scrollDirection),"scrollOffset"in b&&n(12,p=b.scrollOffset),"scrollToIndex"in b&&n(13,_=b.scrollToIndex),"scrollToAlignment"in b&&n(14,w=b.scrollToAlignment),"scrollToBehaviour"in b&&n(15,U=b.scrollToBehaviour),"overscanCount"in b&&n(16,F=b.overscanCount),"$$scope"in b&&n(20,r=b.$$scope)},t.$$.update=()=>{t.$$.dirty[0]&29568&&R(),t.$$.dirty[0]&524288&&P(),t.$$.dirty[0]&263264&&W&&y(0)},[g,X,Z,A,T,s,l,a,o,h,f,m,p,_,w,U,F,y,W,z,r,i,J]}class Ss extends Ye{constructor(e){super(),Ze(this,e,Cs,ks,xe,{height:5,width:6,itemCount:7,itemSize:8,estimatedItemSize:9,stickyIndices:10,getKey:0,scrollDirection:11,scrollOffset:12,scrollToIndex:13,scrollToAlignment:14,scrollToBehaviour:15,overscanCount:16,recomputeSizes:17},null,[-1,-1])}get height(){return this.$$.ctx[5]}set height(e){this.$$set({height:e}),Ne()}get width(){return this.$$.ctx[6]}set width(e){this.$$set({width:e}),Ne()}get itemCount(){return this.$$.ctx[7]}set itemCount(e){this.$$set({itemCount:e}),Ne()}get itemSize(){return this.$$.ctx[8]}set itemSize(e){this.$$set({itemSize:e}),Ne()}get estimatedItemSize(){return this.$$.ctx[9]}set estimatedItemSize(e){this.$$set({estimatedItemSize:e}),Ne()}get stickyIndices(){return this.$$.ctx[10]}set stickyIndices(e){this.$$set({stickyIndices:e}),Ne()}get getKey(){return this.$$.ctx[0]}set getKey(e){this.$$set({getKey:e}),Ne()}get scrollDirection(){return this.$$.ctx[11]}set scrollDirection(e){this.$$set({scrollDirection:e}),Ne()}get scrollOffset(){return this.$$.ctx[12]}set scrollOffset(e){this.$$set({scrollOffset:e}),Ne()}get scrollToIndex(){return this.$$.ctx[13]}set scrollToIndex(e){this.$$set({scrollToIndex:e}),Ne()}get scrollToAlignment(){return this.$$.ctx[14]}set scrollToAlignment(e){this.$$set({scrollToAlignment:e}),Ne()}get scrollToBehaviour(){return this.$$.ctx[15]}set scrollToBehaviour(e){this.$$set({scrollToBehaviour:e}),Ne()}get overscanCount(){return this.$$.ctx[16]}set overscanCount(e){this.$$set({overscanCount:e}),Ne()}get recomputeSizes(){return this.$$.ctx[17]}}class an extends Error{constructor(e,n={}){super(`Node not found: ${e}`,n),this.name="NodeNotFoundError"}}class Jn extends Error{constructor(e){super(`Missing key: ${e}`),this.name="KeyError"}}const As="modulepreload",Is=function(t){return"https://ome.github.io/ome2024-ngff-challenge/"+t},Ti={},jt=function(e,n,i){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),l=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));r=Promise.all(n.map(a=>{if(a=Is(a),a in Ti)return;Ti[a]=!0;const o=a.endsWith(".css"),h=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${h}`))return;const f=document.createElement("link");if(f.rel=o?"stylesheet":As,o||(f.as="script"),f.crossOrigin="",f.href=a,l&&f.setAttribute("nonce",l),document.head.appendChild(f),o)return new Promise((g,m)=>{f.addEventListener("load",g),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${a}`)))})}))}return r.then(()=>e()).catch(s=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=s,window.dispatchEvent(l),!l.defaultPrevented)throw s})};var Ve;class Ir{constructor(e,n,i){Ie(this,Ve);typeof e=="number"?ke(this,Ve,new Uint8Array(e)):e instanceof ArrayBuffer?ke(this,Ve,new Uint8Array(e,n,i)):ke(this,Ve,new Uint8Array(Array.from(e,r=>r?1:0)))}get BYTES_PER_ELEMENT(){return 1}get byteOffset(){return $(this,Ve).byteOffset}get byteLength(){return $(this,Ve).byteLength}get buffer(){return $(this,Ve).buffer}get length(){return $(this,Ve).length}get(e){let n=$(this,Ve)[e];return typeof n=="number"?n!==0:n}set(e,n){$(this,Ve)[e]=n?1:0}fill(e){$(this,Ve).fill(e?1:0)}*[Symbol.iterator](){for(let e=0;e=0;i--)n[i]=r,r*=t[i];return n}function zs(t){const e=t.length,n=globalThis.Array(e);for(let i=0,r=1;i["c",...i].join(n)}if(t==="v2"){const n=(e==null?void 0:e.separator)??".";return i=>i.join(n)||"0"}throw new Error(`Unknown chunk key encoding: ${t}`)}function qn(t){var n;const e=t.find(i=>i.name==="transpose");return((n=e==null?void 0:e.configuration)==null?void 0:n.order)==="F"?"F":"C"}const Ms=/^([<|>])(.*)$/;function Fs(t){if(t==="|O")return{data_type:"v2:object"};let e=t.match(Ms);if(!e)throw new Error(`Invalid dtype: ${t}`);let[,n,i]=e,r={b1:"bool",i1:"int8",u1:"uint8",i2:"int16",u2:"uint16",i4:"int32",u4:"uint32",i8:"int64",u8:"uint64",f4:"float32",f8:"float64"}[i]??(i.startsWith("S")||i.startsWith("U")?`v2:${i}`:void 0);if(!r)throw new Error(`Unsupported or unknown dtype: ${t}`);return n==="|"?{data_type:r}:{data_type:r,endian:n==="<"?"little":"big"}}function Ds(t,e={}){let n=[],i=Fs(t.dtype);t.order==="F"&&n.push({name:"transpose",configuration:{order:"F"}}),"endian"in i&&i.endian==="big"&&n.push({name:"bytes",configuration:{endian:"big"}});for(let{id:r,...s}of t.filters??[])n.push({name:r,configuration:s});if(t.compressor){let{id:r,...s}=t.compressor;n.push({name:r,configuration:s})}return{zarr_format:3,node_type:"array",shape:t.shape,data_type:i.data_type,chunk_grid:{name:"regular",configuration:{chunk_shape:t.chunks}},chunk_key_encoding:{name:"v2",configuration:{separator:t.dimension_separator??"."}},codecs:n,fill_value:t.fill_value,attributes:e}}function Ns(t,e={}){return{zarr_format:3,node_type:"group",attributes:e}}function Ps(t,e){if(e!=="number"&&e!=="bigint"&&e!=="boolean"&&e!=="object"&&e!=="string")return t===e;let n=t==="bool";if(e==="boolean")return n;let i=t.startsWith("v2:U")||t.startsWith("v2:S");if(e==="string")return i;let r=t==="int64"||t==="uint64";if(e==="bigint")return r;let s=t==="v2:object";return e==="object"?s:!i&&!r&&!n&&!s}function Us(t){return(t==null?void 0:t.name)==="sharding_indexed"}function Or(t){return(t.data_type==="uint64"||t.data_type==="int64")&&t.fill_value!=null?BigInt(t.fill_value):t.fill_value}const Ri=qs();function qs(){const t=new Uint32Array([305419896]);return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)[0]!==18}function zi(t){return"BYTES_PER_ELEMENT"in t?t.BYTES_PER_ELEMENT:4}var Zt,at,Yt,Qt,Lt;const ni=class ni{constructor(e,n){le(this,"kind","array_to_bytes");Ie(this,Zt);Ie(this,at);Ie(this,Yt);Ie(this,Qt);Ie(this,Lt);ke(this,Lt,e==null?void 0:e.endian),ke(this,at,Tr(n.data_type)),ke(this,Qt,n.shape),ke(this,Zt,vt(n.shape,qn(n.codecs)));const i=new($(this,at))(0);ke(this,Yt,i.BYTES_PER_ELEMENT)}static fromConfig(e,n){return new ni(e,n)}encode(e){let n=new Uint8Array(e.data.buffer);return Ri&&$(this,Lt)==="big"&&Oi(n,zi($(this,at))),n}decode(e){return Ri&&$(this,Lt)==="big"&&Oi(e,zi($(this,at))),{data:new($(this,at))(e.buffer,e.byteOffset,e.byteLength/$(this,Yt)),shape:$(this,Qt),stride:$(this,Zt)}}};Zt=new WeakMap,at=new WeakMap,Yt=new WeakMap,Qt=new WeakMap,Lt=new WeakMap;let wn=ni;class Yn{constructor(){le(this,"kind","bytes_to_bytes")}static fromConfig(){return new Yn}encode(e){throw new Error("Not implemented")}decode(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength-4)}}function Bs(t,e){if(Number.isNaN(e))throw new Error("JsonCodec allow_nan is false but NaN was encountered during encoding.");if(e===Number.POSITIVE_INFINITY)throw new Error("JsonCodec allow_nan is false but Infinity was encountered during encoding.");if(e===Number.NEGATIVE_INFINITY)throw new Error("JsonCodec allow_nan is false but -Infinity was encountered during encoding.");return e}function js(t,e){return e instanceof Object&&!Array.isArray(e)?Object.keys(e).sort().reduce((n,i)=>(n[i]=e[i],n),{}):e}var Xt,$t;const ii=class ii{constructor(e={}){le(this,"configuration");le(this,"kind","array_to_bytes");Ie(this,Xt);Ie(this,$t);this.configuration=e;const{encoding:n="utf-8",skipkeys:i=!1,ensure_ascii:r=!0,check_circular:s=!0,allow_nan:l=!0,sort_keys:a=!0,indent:o,strict:h=!0}=e;let f=e.separators;f||(o?f=[", ",": "]:f=[",",":"]),ke(this,Xt,{encoding:n,skipkeys:i,ensure_ascii:r,check_circular:s,allow_nan:l,indent:o,separators:f,sort_keys:a}),ke(this,$t,{strict:h})}static fromConfig(e){return new ii(e)}encode(e){const{indent:n,encoding:i,ensure_ascii:r,check_circular:s,allow_nan:l,sort_keys:a}=$(this,Xt);if(i!=="utf-8")throw new Error("JsonCodec does not yet support non-utf-8 encoding.");const o=[];if(!s)throw new Error("JsonCodec does not yet support skipping the check for circular references during encoding.");l||o.push(Bs),a&&o.push(js);const h=Array.from(e.data);h.push("|O"),h.push(e.shape);let f;o.length&&(f=(m,p)=>{let _=p;for(let w of o)_=w(m,_);return _});let g=JSON.stringify(h,f,n);return r&&(g=g.replace(/[\u007F-\uFFFF]/g,m=>{const p=`0000${m.charCodeAt(0).toString(16)}`;return`\\u${p.substring(p.length-4)}`})),new TextEncoder().encode(g)}decode(e){const{strict:n}=$(this,$t);if(!n)throw new Error("JsonCodec does not yet support non-strict decoding.");const i=un(e),r=i.pop();if(i.pop(),!r)throw new Error("0D not implemented for JsonCodec.");const s=vt(r,"C");return{data:i,shape:r,stride:s}}};Xt=new WeakMap,$t=new WeakMap;let Bn=ii;function Li(t){return t instanceof Ir||t instanceof Zn||t instanceof Jt?new Proxy(t,{get(n,i){return n.get(Number(i))},set(n,i,r){return n.set(Number(i),r),!0}}):t}function xs(t,e){let n;return t.data instanceof Zn||t.data instanceof Jt?n=new t.constructor(t.data.length,t.data.chars):n=new t.constructor(t.data.length),{data:n,shape:t.shape,stride:vt(t.shape,e)}}function Vs(t,e){let n=xs(t,e),i=t.shape.length,r=t.data.length,s=Array(i).fill(0),l=Li(t.data),a=Li(n.data);for(let o=0;on===e[i])?"C":"F"}class Qn{constructor(e){le(this,"configuration");le(this,"kind","array_to_array");this.configuration=e}static fromConfig(e){return new Qn(e)}encode(e){var n,i;return Hs(e)===((n=this.configuration)==null?void 0:n.order)?e:Vs(e,((i=this.configuration)==null?void 0:i.order)??"C")}decode(e){return e}}var en,tn;const ri=class ri{constructor(e){le(this,"kind","array_to_bytes");Ie(this,en);Ie(this,tn);ke(this,en,e),ke(this,tn,vt(e,"C"))}static fromConfig(e,n){return new ri(n.shape)}encode(e){throw new Error("Method not implemented.")}decode(e){let n=new TextDecoder,i=new DataView(e.buffer),r=Array(i.getUint32(0,!0)),s=4;for(let l=0;ljt(()=>import("./blosc-E49GQuAK.js"),__vite__mapDeps([0,1])).then(t=>t.default)).set("gzip",()=>jt(()=>import("./gzip-CF-9a_hd.js"),__vite__mapDeps([2,3])).then(t=>t.default)).set("lz4",()=>jt(()=>import("./lz4-BIGKWw27.js"),__vite__mapDeps([4,1])).then(t=>t.default)).set("zlib",()=>jt(()=>import("./zlib-CBiqHlio.js"),__vite__mapDeps([5,3])).then(t=>t.default)).set("zstd",()=>jt(()=>import("./zstd-IvP746pw.js"),__vite__mapDeps([6,1])).then(t=>t.default)).set("transpose",()=>Qn).set("bytes",()=>wn).set("crc32c",()=>Yn).set("vlen-utf8",()=>jn).set("json2",()=>Bn)}const Gs=Ws();function xn(t){let e;return{async encode(n){e||(e=await Mi(t));for(const r of e.array_to_array)n=await r.encode(n);let i=await e.array_to_bytes.encode(n);for(const r of e.bytes_to_bytes)i=await r.encode(i);return i},async decode(n){e||(e=await Mi(t));for(let r=e.bytes_to_bytes.length-1;r>=0;r--)n=await e.bytes_to_bytes[r].decode(n);let i=await e.array_to_bytes.decode(n);for(let r=e.array_to_array.length-1;r>=0;r--)i=await e.array_to_array[r].decode(i);return i}}}async function Mi(t){let e=t.codecs.map(async s=>{var a;let l=await((a=Gs.get(s.name))==null?void 0:a());if(!l)throw new Error(`Unknown codec: ${s.name}`);return{Codec:l,meta:s}}),n=[],i,r=[];for await(let{Codec:s,meta:l}of e){let a=s.fromConfig(l.configuration,t);switch(a.kind){case"array_to_array":n.push(a);break;case"array_to_bytes":i=a;break;default:r.push(a)}}if(!i){if(!Ks(t))throw new Error(`Cannot encode ${t.data_type} to bytes without a codec`);i=wn.fromConfig({endian:"little"},t)}return{array_to_array:n,array_to_bytes:i,bytes_to_bytes:r}}function Ks(t){return t.data_type!=="v2:object"}const Fi=18446744073709551615n;function Js(t,e,n,i){if(t.store.getRange===void 0)throw new Error("Store does not support range requests");let r=t.store.getRange.bind(t.store),s=e.map((o,h)=>o/i.chunk_shape[h]),l=xn({data_type:"uint64",shape:[...s,2],codecs:i.index_codecs}),a={};return async o=>{let h=o.map((L,Y)=>Math.floor(L/s[Y])),f=t.resolve(n(h)).path,g;if(f in a)g=a[f];else{let L=4,Y=16*s.reduce((X,Z)=>X*Z,1),W=await r(f,{suffixLength:Y+L});g=a[f]=W?await l.decode(W):null}if(g===null)return;let{data:m,shape:p,stride:_}=g,w=o.map((L,Y)=>L%p[Y]).reduce((L,Y,W)=>L+Y*_[W],0),U=m[w],F=m[w+1];if(!(U===Fi&&F===Fi))return r(f,{offset:Number(U),length:Number(F)})}}class Nt{constructor(e,n="/"){le(this,"store");le(this,"path");this.store=e,this.path=n}resolve(e){let n=new URL(`file://${this.path.endsWith("/")?this.path:`${this.path}/`}`);return new Nt(this.store,new URL(e,n).pathname)}}var nn;class Xn extends Nt{constructor(n,i,r){super(n,i);le(this,"kind","group");Ie(this,nn);ke(this,nn,r)}get attrs(){return $(this,nn).attributes}}nn=new WeakMap;const Ht=Symbol("zarrita.context");function Zs(t){return t[Ht]}function Ys(t,e){let{configuration:n}=e.codecs.find(Us)??{},i={encode_chunk_key:Ls(e.chunk_key_encoding),TypedArray:Tr(e.data_type),fill_value:e.fill_value};if(n){let s=qn(n.codecs);return{...i,kind:"sharded",chunk_shape:n.chunk_shape,codec:xn({data_type:e.data_type,shape:n.chunk_shape,codecs:n.codecs}),get_strides(l,a){return vt(l,a??s)},get_chunk_bytes:Js(t,e.chunk_grid.configuration.chunk_shape,i.encode_chunk_key,n)}}let r=qn(e.codecs);return{...i,kind:"regular",chunk_shape:e.chunk_grid.configuration.chunk_shape,codec:xn({data_type:e.data_type,shape:e.chunk_grid.configuration.chunk_shape,codecs:e.codecs}),get_strides(s,l){return vt(s,l??r)},async get_chunk_bytes(s,l){let a=i.encode_chunk_key(s),o=t.resolve(a).path;return t.store.get(o,l)}}}var dr,_r,pt,gr;let kn=(gr=class extends(_r=Nt,dr=Ht,_r){constructor(n,i,r){super(n,i);le(this,"kind","array");Ie(this,pt);le(this,dr);ke(this,pt,{...r,fill_value:Or(r)}),this[Ht]=Ys(this,r)}get attrs(){return $(this,pt).attributes}get shape(){return $(this,pt).shape}get chunks(){return this[Ht].chunk_shape}get dtype(){return $(this,pt).data_type}async getChunk(n,i){let r=this[Ht],s=await r.get_chunk_bytes(n,i);if(!s){let l=r.chunk_shape.reduce((o,h)=>o*h,1),a=new r.TypedArray(l);return a.fill(r.fill_value),{data:a,shape:r.chunk_shape,stride:r.get_strides(r.chunk_shape)}}return r.codec.decode(s)}is(n){return Ps(this.dtype,n)}},pt=new WeakMap,gr),Cn=Qs();function Qs(){let t=new WeakMap;function e(n){let i=t.get(n)??{v2:0,v3:0};return t.set(n,i),i}return{increment(n,i){e(n)[i]+=1},version_max(n){let i=e(n);return i.v3>i.v2?"v3":"v2"}}}async function Xs(t){let e=await t.store.get(t.resolve(".zattrs").path);return e?un(e):{}}async function $s(t,e={}){let n="store"in t?t:new Nt(t),i={};return(e.attrs??!0)&&(i=await Xs(n)),e.kind==="array"?Di(n,i):e.kind==="group"?Ni(n,i):Di(n,i).catch(r=>{if(r instanceof an)return Ni(n,i);throw r})}async function Di(t,e){let{path:n}=t.resolve(".zarray"),i=await t.store.get(n);if(!i)throw new an("v2 array",{cause:new Jn(n)});return Cn.increment(t.store,"v2"),new kn(t.store,t.path,Ds(un(i),e))}async function Ni(t,e){let{path:n}=t.resolve(".zgroup"),i=await t.store.get(n);if(!i)throw new an("v2 group",{cause:new Jn(n)});return Cn.increment(t.store,"v2"),new Xn(t.store,t.path,Ns(un(i),e))}async function el(t){let{store:e,path:n}=t.resolve("zarr.json"),i=await t.store.get(n);if(!i)throw new an("v3 array or group",{cause:new Jn(n)});let r=un(i);return r.node_type==="array"&&(r.fill_value=Or(r)),r.node_type==="array"?new kn(e,t.path,r):new Xn(e,t.path,r)}async function tl(t,e={}){let n="store"in t?t:new Nt(t),i=await el(n);if(Cn.increment(n.store,"v3"),e.kind===void 0||e.kind==="array"&&i instanceof kn||e.kind==="group"&&i instanceof Xn)return i;let r=i instanceof kn?"array":"group";throw new Error(`Expected node of kind ${e.kind}, found ${r}.`)}async function mt(t,e={}){let n="store"in t?t.store:t,i=Cn.version_max(n),r=i==="v2"?mt.v2:mt.v3,s=i==="v2"?mt.v3:mt.v2;return r(t,e).catch(l=>{if(l instanceof an)return s(t,e);throw l})}mt.v2=$s;mt.v3=tl;function*nl(t,e,n=1){e===void 0&&(e=t,t=0);for(let i=t;ii[Symbol.iterator]()),n=e.map(i=>i.next());if(n.some(i=>i.done))throw new Error("Input contains an empty iterator.");for(let i=0;;){if(n[i].done){if(e[i]=t[i][Symbol.iterator](),n[i]=e[i].next(),++i>=e.length)return}else yield n.map(({value:r})=>r),i=0;n[i]=e[i].next()}}function rl({start:t,stop:e,step:n},i){if(n===0)throw new Error("slice step cannot be zero");n=n??1;const r=n<0,[s,l]=r?[-1,i-1]:[0,i];return t===null?t=r?l:s:t<0?(t+=i,tl&&(t=l),e===null?e=r?s:l:e<0?(e+=i,el&&(e=l),[t,e,n]}function Vn(t,e,n=null){return e===void 0&&(e=t,t=null),{start:t,stop:e,step:n}}function sl(){const t=[];return{add:e=>t.push(e()),onIdle:()=>Promise.all(t)}}class $n extends Error{constructor(e){super(e),this.name="IndexError"}}function ll(t,e){throw new $n(`too many indicies for array; expected ${e.length}, got ${t.length}`)}function ol(t){throw new $n(`index out of bounds for dimension with length ${t}`)}function al(){throw new $n("only slices with step >= 1 are supported")}function ul(t,e){t.length>e.length&&ll(t,e)}function fl(t,e){return t=Math.trunc(t),t<0&&(t=e+t),(t>=e||t<0)&&ol(e),t}class cl{constructor({dim_sel:e,dim_len:n,dim_chunk_len:i}){le(this,"dim_sel");le(this,"dim_len");le(this,"dim_chunk_len");le(this,"nitems");e=fl(e,n),this.dim_sel=e,this.dim_len=n,this.dim_chunk_len=i,this.nitems=1}*[Symbol.iterator](){const e=Math.floor(this.dim_sel/this.dim_chunk_len),n=e*this.dim_chunk_len,i=this.dim_sel-n;yield{dim_chunk_ix:e,dim_chunk_sel:i}}}class Pi{constructor({dim_sel:e,dim_len:n,dim_chunk_len:i}){le(this,"start");le(this,"stop");le(this,"step");le(this,"dim_len");le(this,"dim_chunk_len");le(this,"nitems");le(this,"nchunks");const[r,s,l]=rl(e,n);this.start=r,this.stop=s,this.step=l,this.step<1&&al(),this.dim_len=n,this.dim_chunk_len=i,this.nitems=Math.max(0,Math.ceil((this.stop-this.start)/this.step)),this.nchunks=Math.ceil(this.dim_len/this.dim_chunk_len)}*[Symbol.iterator](){const e=Math.floor(this.start/this.dim_chunk_len),n=Math.ceil(this.stop/this.dim_chunk_len);for(const i of nl(e,n)){const r=i*this.dim_chunk_len,s=Math.min(this.dim_len,(i+1)*this.dim_chunk_len),l=s-r;let a=0,o=0;if(this.starts?l:this.stop-r,f=[o,h,this.step],g=Math.ceil((h-o)/this.step),m=[a,a+g,1];yield{dim_chunk_ix:i,dim_chunk_sel:f,dim_out_sel:m}}}}function hl(t,e){let n=[];return t===null?n=e.map(i=>Vn(null)):Array.isArray(t)&&(n=t.map(i=>i??Vn(null))),ul(n,e),n}class dl{constructor({selection:e,shape:n,chunk_shape:i}){le(this,"dim_indexers");le(this,"shape");this.dim_indexers=hl(e,n).map((r,s)=>new(typeof r=="number"?cl:Pi)({dim_sel:r,dim_len:n[s],dim_chunk_len:i[s]})),this.shape=this.dim_indexers.filter(r=>r instanceof Pi).map(r=>r.nitems)}*[Symbol.iterator](){for(const e of il(...this.dim_indexers)){const n=e.map(r=>r.dim_chunk_ix),i=e.map(r=>"dim_out_sel"in r?{from:r.dim_chunk_sel,to:r.dim_out_sel}:{from:r.dim_chunk_sel,to:null});yield{chunk_coords:n,mapping:i}}}}function _l(t,e){return"get"in t?t.get(e):t[e]}async function gl(t,e,n,i){var o;let r=Zs(t),s=new dl({selection:e,shape:t.shape,chunk_shape:t.chunks}),l=i.prepare(new r.TypedArray(s.shape.reduce((h,f)=>h*f,1)),s.shape,r.get_strides(s.shape,n.order)),a=((o=n.create_queue)==null?void 0:o.call(n))??sl();for(const{chunk_coords:h,mapping:f}of s)a.add(async()=>{let{data:g,shape:m,stride:p}=await t.getChunk(h,n.opts),_=i.prepare(g,m,p);i.set_from_chunk(l,_,f)});return await a.onIdle(),s.shape.length===0?_l(l.data,0):l}function ei(t,e=0,n){let i=n??t.length-e;return{length:i,subarray(r,s=i){return ei(t,e+r,s-r)},set(r,s=0){for(let l=0;l1?g=f/l:l<1&&(f=g*l);let m=f,p=g,_=!0;const w=new AbortController;async function U(){var I;let L=r.multiscales[0].datasets.map(M=>M.path),Y=r.multiscales[0].axes.map(M=>M.name),W=L.at(-1);s!=null&&so*o){console.log("Lowest resolution too large for Thumbnail: ",u,i);return}let c=u.length,E=u[z]||1,A,T;(I=r==null?void 0:r.omero)!=null&&I.channels?(A=r.omero.channels.map(M=>M.active),T=r.omero.channels.map(M=>Er(M.color))):(A=fs(E),T=cs(E,A)),T=T.filter((M,ee)=>A[ee]);let P=A.reduce((M,ee,O)=>(ee&&M.push(O),M),[]).map(M=>{let ee=u.map((O,J)=>J==z?M:J>=c-2?Vn(0,O):Y[J]=="z"||Y[J]=="t"?parseInt(O/2+""):0);return bl(Z,ee,{opts:{signal:w.signal}})}),Q=await Promise.all(P),B=Q.map(M=>kr(M)),y=ss(Q,B,T);n(1,f=u.at(-1)),n(2,g=u.at(-2));let S=f/a;g>f&&(S=g/a),n(3,m=f/S),n(4,p=g/S),setTimeout(()=>{const M=h.getContext("2d");n(5,_=!1),M.putImageData(new ImageData(y,f,g),0,0)},100)}on(()=>{U()}),Kn(()=>{w.abort()});function F(L){Mt[L?"unshift":"push"](()=>{h=L,n(0,h)})}return t.$$set=L=>{"source"in L&&n(6,i=L.source),"attrs"in L&&n(7,r=L.attrs),"thumbDatasetIndex"in L&&n(8,s=L.thumbDatasetIndex),"thumbAspectRatio"in L&&n(9,l=L.thumbAspectRatio),"cssSize"in L&&n(10,a=L.cssSize),"max_size"in L&&n(11,o=L.max_size)},[h,f,g,m,p,_,i,r,s,l,a,o,F]}class Lr extends Ye{constructor(e){super(),Ze(this,e,Cl,El,xe,{source:6,attrs:7,thumbDatasetIndex:8,thumbAspectRatio:9,cssSize:10,max_size:11})}}function Bi(t,e,n){const i=t.slice();return i[12]=e[n],i}function ji(t){let e,n;return e=new Lr({props:{source:t[4],attrs:t[3],max_size:2e3,thumbDatasetIndex:t[5],thumbAspectRatio:t[6]}}),{c(){Je(e.$$.fragment)},m(i,r){He(e,i,r),n=!0},p(i,r){const s={};r&16&&(s.source=i[4]),r&8&&(s.attrs=i[3]),r&32&&(s.thumbDatasetIndex=i[5]),r&64&&(s.thumbAspectRatio=i[6]),e.$set(s)},i(i){n||(se(e.$$.fragment,i),n=!0)},o(i){he(e.$$.fragment,i),n=!1},d(i){We(e,i)}}}function xi(t){let e,n,i,r,s,l,a,o=t[0].source+"",h,f,g=t[0].csv&&Vi(t);return{c(){e=k("div"),n=k("span"),n.textContent="Data",i=j(),g&&g.c(),r=j(),s=k("span"),s.textContent="provided by",l=j(),a=k("strong"),h=q(o),f=q("."),v(n,"class","hideOnSmall svelte-afrxqy"),v(s,"class","hideOnSmall svelte-afrxqy"),ae(a,"color","grey")},m(m,p){V(m,e,p),d(e,n),d(e,i),g&&g.m(e,null),d(e,r),d(e,s),d(e,l),d(e,a),d(a,h),d(e,f)},p(m,p){m[0].csv?g?g.p(m,p):(g=Vi(m),g.c(),g.m(e,r)):g&&(g.d(1),g=null),p&1&&o!==(o=m[0].source+"")&&me(h,o)},d(m){m&&x(e),g&&g.d()}}}function Vi(t){var a;let e,n,i,r=((a=t[0].csv)==null?void 0:a.split("/").pop().replace(".csv",""))+"",s,l;return{c(){e=k("span"),e.textContent="from collection",n=j(),i=k("a"),s=q(r),v(e,"class","hideOnSmall svelte-afrxqy"),v(i,"title","Show collection in a new tab"),v(i,"href",l=Ki(t[0])),v(i,"target","_blank")},m(o,h){V(o,e,h),V(o,n,h),V(o,i,h),d(i,s)},p(o,h){var f;h&1&&r!==(r=((f=o[0].csv)==null?void 0:f.split("/").pop().replace(".csv",""))+"")&&me(s,r),h&1&&l!==(l=Ki(o[0]))&&v(i,"href",l)},d(o){o&&(x(e),x(n),x(i))}}}function Hi(t){let e,n,i,r,s,l;return{c(){e=q("Browse "),n=k("a"),i=q("Original data"),l=q("."),v(n,"title",r="Link to original data: "+t[0].origin),v(n,"href",s=t[0].origin),v(n,"target","_blank")},m(a,o){V(a,e,o),V(a,n,o),d(n,i),V(a,l,o)},p(a,o){o&1&&r!==(r="Link to original data: "+a[0].origin)&&v(n,"title",r),o&1&&s!==(s=a[0].origin)&&v(n,"href",s)},d(a){a&&(x(e),x(n),x(l))}}}function Wi(t){let e=t[12].toUpperCase()+"",n,i,r=t[0][`size_${t[12]}`]+"",s,l;return{c(){n=q(e),i=q(":"),s=q(r),l=q("  ")},m(a,o){V(a,n,o),V(a,i,o),V(a,s,o),V(a,l,o)},p(a,o){o&1&&r!==(r=a[0][`size_${a[12]}`]+"")&&me(s,r)},d(a){a&&(x(n),x(i),x(s),x(l))}}}function Gi(t){let e,n=t[0][`size_${t[12]}`]!==void 0&&Wi(t);return{c(){n&&n.c(),e=En()},m(i,r){n&&n.m(i,r),V(i,e,r)},p(i,r){i[0][`size_${i[12]}`]!==void 0?n?n.p(i,r):(n=Wi(i),n.c(),n.m(e.parentNode,e)):n&&(n.d(1),n=null)},d(i){i&&x(e),n&&n.d(i)}}}function Sl(t){let e,n,i=ft(t[0].written)+"",r;return{c(){e=k("div"),n=q("Data size: "),r=q(i)},m(s,l){V(s,e,l),d(e,n),d(e,r)},p(s,l){l&1&&i!==(i=ft(s[0].written)+"")&&me(r,i)},d(s){s&&x(e)}}}function Al(t){let e,n,i=t[0].shards+"",r;return{c(){e=k("div"),n=q("Shard shape: "),r=q(i)},m(s,l){V(s,e,l),d(e,n),d(e,r)},p(s,l){l&1&&i!==(i=s[0].shards+"")&&me(r,i)},d(s){s&&x(e)}}}function Il(t){let e,n,i=t[0].chunks+"",r;return{c(){e=k("div"),n=q("Chunk shape: "),r=q(i)},m(s,l){V(s,e,l),d(e,n),d(e,r)},p(s,l){l&1&&i!==(i=s[0].chunks+"")&&me(r,i)},d(s){s&&x(e)}}}function Tl(t){let e,n,i,r,s,l,a=t[9](t[0].url)+"",o,h,f,g=(t[0].name?t[0].name.replaceAll(t[1],`${t[1]}`):"")+"",m,p,_,w=t[7].replaceAll(t[1],`${t[1]}`)+"",U,F,L,Y,W,X,Z,z,u,c,E,A,T,R,P,Q,B=t[3]&&ji(t),y=t[0].source&&xi(t),S=t[0].origin&&Hi(t),I=Pe(["t","c","z","y","x"]),M=[];for(let b=0;b<5;b+=1)M[b]=Gi(Bi(t,I,b));function ee(b,D){return b[2]=="chunk_pixels"?Il:b[2]=="shard_pixels"?Al:Sl}let O=ee(t),J=O(t);return{c(){e=k("div"),n=k("div"),B&&B.c(),i=j(),r=k("div"),s=k("div"),l=k("strong"),h=j(),f=k("div"),p=j(),_=k("div"),U=j(),y&&y.c(),F=j(),L=k("div"),Y=q("Open in "),W=k("a"),X=q("OME-Validator."),u=j(),S&&S.c(),c=j(),E=k("div"),A=q(`Image size: + `);for(let b=0;b<5;b+=1)M[b].c();T=j(),J.c(),v(n,"class","thumbWrapper svelte-afrxqy"),v(s,"title",o=t[0].url),v(f,"class",m=pi(t[1]==""?"hideOnSmall":"")+" svelte-afrxqy"),v(W,"title",Z="Open in Validator: "+t[0].url),v(W,"href",z="https://deploy-preview-36--ome-ngff-validator.netlify.app/?source="+t[0].url),v(W,"target","_blank"),v(e,"class","zarr-list-item svelte-afrxqy")},m(b,D){V(b,e,D),d(e,n),B&&B.m(n,null),d(e,i),d(e,r),d(r,s),d(s,l),l.innerHTML=a,d(r,h),d(r,f),f.innerHTML=g,d(r,p),d(r,_),_.innerHTML=w,d(r,U),y&&y.m(r,null),d(r,F),d(r,L),d(L,Y),d(L,W),d(W,X),d(L,u),S&&S.m(L,null),d(r,c),d(r,E),d(E,A);for(let H=0;H<5;H+=1)M[H]&&M[H].m(E,null);d(r,T),J.m(r,null),R=!0,P||(Q=ve(n,"click",t[8]),P=!0)},p(b,[D]){if(b[3]?B?(B.p(b,D),D&8&&se(B,1)):(B=ji(b),B.c(),se(B,1),B.m(n,null)):B&&(Ft(),he(B,1,1,()=>{B=null}),Dt()),(!R||D&1)&&a!==(a=b[9](b[0].url)+"")&&(l.innerHTML=a),(!R||D&1&&o!==(o=b[0].url))&&v(s,"title",o),(!R||D&3)&&g!==(g=(b[0].name?b[0].name.replaceAll(b[1],`${b[1]}`):"")+"")&&(f.innerHTML=g),(!R||D&2&&m!==(m=pi(b[1]==""?"hideOnSmall":"")+" svelte-afrxqy"))&&v(f,"class",m),(!R||D&130)&&w!==(w=b[7].replaceAll(b[1],`${b[1]}`)+"")&&(_.innerHTML=w),b[0].source?y?y.p(b,D):(y=xi(b),y.c(),y.m(r,F)):y&&(y.d(1),y=null),(!R||D&1&&Z!==(Z="Open in Validator: "+b[0].url))&&v(W,"title",Z),(!R||D&1&&z!==(z="https://deploy-preview-36--ome-ngff-validator.netlify.app/?source="+b[0].url))&&v(W,"href",z),b[0].origin?S?S.p(b,D):(S=Hi(b),S.c(),S.m(L,null)):S&&(S.d(1),S=null),D&1){I=Pe(["t","c","z","y","x"]);let H;for(H=0;H<5;H+=1){const ie=Bi(b,I,H);M[H]?M[H].p(ie,D):(M[H]=Gi(ie),M[H].c(),M[H].m(E,null))}for(;H<5;H+=1)M[H].d(1)}O===(O=ee(b))&&J?J.p(b,D):(J.d(1),J=O(b),J&&(J.c(),J.m(r,null)))},i(b){R||(se(B),R=!0)},o(b){he(B),R=!1},d(b){b&&x(e),B&&B.d(),y&&y.d(),S&&S.d(),Ot(M,b),J.d(),P=!1,Q()}}}function Ki(t){return window.location.origin+window.location.pathname+"?csv="+t.csv}function Ol(t,e,n){let i,{rowData:r}=e,{textFilter:s}=e,{sortedBy:l=void 0}=e,a,o,h,f=1;const g=new AbortController;if(r.size_x&&r.size_y){let _=Math.max(r.size_x,r.size_y);for(h=0;_>256;)h+=1,_=_/2;f=r.size_x/r.size_y}function m(){console.log("Clicked on thumbnail"),Ce.setSelectedRow(r)}function p(_){if(s&&_.toLowerCase().includes(s.toLowerCase())){let U=_.toLowerCase(),F=s.toLowerCase(),L=U.indexOf(F),Y=Math.max(0,Math.min(L,_.length-50)),W=_.substring(Y,L);return W+="",W+=_.substring(L,L+F.length),W+="",W+=_.substring(L+F.length),W}return _.split("/").pop()}return on(async()=>{let _=r.url;r.series0!==void 0&&(_+="/"+r.series0);let w=await Kt(_,g.signal);n(3,a=w[0]),n(4,o=w[1]),w[2]}),Kn(()=>{g.abort()}),t.$$set=_=>{"rowData"in _&&n(0,r=_.rowData),"textFilter"in _&&n(1,s=_.textFilter),"sortedBy"in _&&n(2,l=_.sortedBy)},t.$$.update=()=>{var _;t.$$.dirty&3&&n(7,i=s!=""&&((_=r.description)!=null&&_.toLowerCase().includes(s.toLowerCase()))?r.description:"")},[r,s,l,a,o,h,f,i,m,p]}class Rl extends Ye{constructor(e){super(),Ze(this,e,Ol,Tl,xe,{rowData:0,textFilter:1,sortedBy:2})}}function zl(t){let e,n,i,r;return n=new Rl({props:{rowData:t[0][t[13]],textFilter:t[1],sortedBy:t[2]}}),{c(){e=k("div"),Je(n.$$.fragment),v(e,"slot","item"),v(e,"style",i=t[12]),v(e,"class","row svelte-1xvcjxw")},m(s,l){V(s,e,l),He(n,e,null),r=!0},p(s,l){const a={};l&8193&&(a.rowData=s[0][s[13]]),l&2&&(a.textFilter=s[1]),l&4&&(a.sortedBy=s[2]),n.$set(a),(!r||l&4096&&i!==(i=s[12]))&&v(e,"style",i)},i(s){r||(se(n.$$.fragment,s),r=!0)},o(s){he(n.$$.fragment,s),r=!1},d(s){s&&x(e),We(n)}}}function Ll(t){let e=!1,n=()=>{e=!1},i,r,s,l=`${t[5]}px`,a,o,h;return lt(t[8]),lt(t[9]),s=new Ss({props:{width:"100%",height:t[5],itemCount:t[0].length,itemSize:160,getKey:t[6],$$slots:{item:[zl,({style:f,index:g})=>({12:f,13:g}),({style:f,index:g})=>(f?4096:0)|(g?8192:0)]},$$scope:{ctx:t}}}),s.$on("afterScroll",t[7]),{c(){r=k("div"),Je(s.$$.fragment),v(r,"class","imageListContainer svelte-1xvcjxw"),ae(r,"height",l)},m(f,g){V(f,r,g),He(s,r,null),t[10](r),a=!0,o||(h=[ve(window,"resize",t[8]),ve(window,"scroll",()=>{e=!0,clearTimeout(i),i=setTimeout(n,100),t[9]()})],o=!0)},p(f,[g]){g&16&&!e&&(e=!0,clearTimeout(i),scrollTo(window.pageXOffset,f[4]),i=setTimeout(n,100));const m={};g&32&&(m.height=f[5]),g&1&&(m.itemCount=f[0].length),g&28679&&(m.$$scope={dirty:g,ctx:f}),s.$set(m),g&32&&l!==(l=`${f[5]}px`)&&ae(r,"height",l)},i(f){a||(se(s.$$.fragment,f),a=!0)},o(f){he(s.$$.fragment,f),a=!1},d(f){f&&x(r),We(s),t[10](null),o=!1,nt(h)}}}function Ml(t,e,n){let i,{tableRows:r}=e,{textFilter:s}=e,{sortedBy:l=void 0}=e;function a(w){return r[w].url}let o,h=0,f=0;function g(w){let F=o.offsetTop-20;w.detail.offset-f<0&&h>F&&n(4,h-=1),f=w.detail.offset}function m(){n(5,i=window.innerHeight)}function p(){n(4,h=window.pageYOffset)}function _(w){Mt[w?"unshift":"push"](()=>{o=w,n(3,o)})}return t.$$set=w=>{"tableRows"in w&&n(0,r=w.tableRows),"textFilter"in w&&n(1,s=w.textFilter),"sortedBy"in w&&n(2,l=w.sortedBy)},n(5,i=0),[r,s,l,o,h,i,a,g,m,p,_]}class Fl extends Ye{constructor(e){super(),Ze(this,e,Ml,Ll,xe,{tableRows:0,textFilter:1,sortedBy:2})}}function Ji(t){let e,n;return e=new Lr({props:{source:t[1],attrs:t[0],cssSize:512,max_size:2e3,thumbDatasetIndex:t[2],thumbAspectRatio:t[3]}}),{c(){Je(e.$$.fragment)},m(i,r){He(e,i,r),n=!0},p(i,r){const s={};r&2&&(s.source=i[1]),r&1&&(s.attrs=i[0]),r&4&&(s.thumbDatasetIndex=i[2]),r&8&&(s.thumbAspectRatio=i[3]),e.$set(s)},i(i){n||(se(e.$$.fragment,i),n=!0)},o(i){he(e.$$.fragment,i),n=!1},d(i){We(e,i)}}}function Dl(t){let e,n,i=t[0]&&Ji(t);return{c(){i&&i.c(),e=En()},m(r,s){i&&i.m(r,s),V(r,e,s),n=!0},p(r,[s]){r[0]?i?(i.p(r,s),s&1&&se(i,1)):(i=Ji(r),i.c(),se(i,1),i.m(e.parentNode,e)):i&&(Ft(),he(i,1,1,()=>{i=null}),Dt())},i(r){n||(se(i),n=!0)},o(r){he(i),n=!1},d(r){r&&x(e),i&&i.d(r)}}}function Nl(t,e,n){let{rowData:i}=e;console.log("ThumbLoader",i);let r,s,l,a=1;if(i.size_x&&i.size_y){let o=Math.max(i.size_x,i.size_y);for(l=0;o>1024;)l+=1,o=o/2;a=i.size_x/i.size_y}else l=void 0,a=1;return on(async()=>{let o=await Kt(i.url);n(0,r=o[0]),n(1,s=o[1]),o[2]}),t.$$set=o=>{"rowData"in o&&n(4,i=o.rowData)},[r,s,l,a,i]}class Pl extends Ye{constructor(e){super(),Ze(this,e,Nl,Dl,xe,{rowData:4})}}function Zi(t,e,n){const i=t.slice();return i[5]=e[n][0],i[6]=e[n][1],i}function Yi(t){let e,n;return e=new Pl({props:{rowData:t[1]}}),{c(){Je(e.$$.fragment)},m(i,r){He(e,i,r),n=!0},p(i,r){const s={};r&2&&(s.rowData=i[1]),e.$set(s)},i(i){n||(se(e.$$.fragment,i),n=!0)},o(i){he(e.$$.fragment,i),n=!1},d(i){We(e,i)}}}function Qi(t){let e,n,i=t[2]&&Yi(t);return{c(){i&&i.c(),e=En()},m(r,s){i&&i.m(r,s),V(r,e,s),n=!0},p(r,s){r[2]?i?(i.p(r,s),s&4&&se(i,1)):(i=Yi(r),i.c(),se(i,1),i.m(e.parentNode,e)):i&&(Ft(),he(i,1,1,()=>{i=null}),Dt())},i(r){n||(se(i),n=!0)},o(r){he(i),n=!1},d(r){r&&x(e),i&&i.d(r)}}}function Xi(t){let e,n=Pe(Object.entries(t[1])),i=[];for(let r=0;r{console.log("Showing preview for",o),o&&(n(1,r=o),console.log("Showing Thumb preview for",o,r),n(2,s=r.url),i.showPopover())});function l(){i.hidePopover()}on(()=>{console.log("Mounted popover",i),i&&i.addEventListener("toggle",o=>{o.newState==="open"||(console.log("Popover has been hidden"),Ce.setSelectedRow(null))})});function a(o){Mt[o?"unshift":"push"](()=>{i=o,n(0,i)})}return[i,r,s,l,a]}class Bl extends Ye{constructor(e){super(),Ze(this,e,ql,Ul,xe,{})}}const jl="https://ome.github.io/ome2024-ngff-challenge/selectCaret.svg",xl="https://ome.github.io/ome2024-ngff-challenge/ome-main-nav.svg",Vl="https://ome.github.io/ome2024-ngff-challenge/github-mark-white.svg";function Hl(t){let e,n,i,r,s,l,a,o,h,f,g,m,p,_,w;return{c(){e=k("base"),n=j(),i=k("nav"),r=k("a"),s=k("img"),a=j(),o=k("a"),h=k("h2"),h.textContent="2024 NGFF Challenge",f=j(),g=k("div"),m=j(),p=k("a"),p.textContent="About",_=j(),w=k("a"),w.innerHTML=`GitHub Logo`,v(e,"href",t[0]),v(s,"alt","OME Logo"),Ln(s.src,l=xl)||v(s,"src",l),v(s,"class","svelte-1q2q39w"),v(r,"class","logolink svelte-1q2q39w"),v(r,"href",t[0]),v(h,"class","svelte-1q2q39w"),v(o,"href",t[0]),v(o,"class","svelte-1q2q39w"),ae(g,"flex","1"),v(p,"href","about/"),v(p,"class","svelte-1q2q39w"),v(w,"class","github svelte-1q2q39w"),v(w,"title","Open in GitHub"),v(w,"target","_blank"),v(w,"href","https://github.com/ome/ome2024-ngff-challenge/"),v(i,"class","svelte-1q2q39w")},m(U,F){V(U,e,F),V(U,n,F),V(U,i,F),d(i,r),d(r,s),d(i,a),d(i,o),d(o,h),d(i,f),d(i,g),d(i,m),d(i,p),d(i,_),d(i,w)},p:we,i:we,o:we,d(U){U&&(x(e),x(n),x(i))}}}function Wl(t){let e="https://ome.github.io/ome2024-ngff-challenge/";return console.log("Nav base",e),[e]}class Gl extends Ye{constructor(e){super(),Ze(this,e,Wl,Hl,xe,{})}}function er(t){let e=t[0].plate_count+"",n,i;return{c(){n=q(e),i=q(" plates")},m(r,s){V(r,n,s),V(r,i,s)},p(r,s){s&1&&e!==(e=r[0].plate_count+"")&&me(n,e)},d(r){r&&(x(n),x(i))}}}function Kl(t){let e,n,i,r,s,l,a,o=t[0].source+"",h,f,g,m,p,_,w=ft(t[0].bytes)+"",U,F,L,Y,W,X,Z,z,u=t[0].image_count+"",c,E,A,T,R,P,Q,B,y,S=t[0].plate_count&&er(t);return{c(){e=k("div"),n=k("label"),i=k("img"),l=j(),a=k("div"),h=q(o),f=j(),g=k("br"),m=j(),p=k("span"),_=q("("),U=q(w),F=q(")"),Y=k("input"),X=j(),Z=k("div"),S&&S.c(),z=j(),c=q(u),E=q(" images"),A=j(),T=k("label"),R=k("input"),P=j(),Q=k("span"),Q.textContent="×",v(i,"title",r=t[0].url),v(i,"class","sourceLogo svelte-1iuq3t7"),v(i,"alt","Source logo"),Ln(i.src,s=bi(t[0].source))||v(i,"src",s),v(p,"title",L=t[0].child_csv.length+" collections"),v(Y,"class","source svelte-1iuq3t7"),v(Y,"type","radio"),v(Y,"name","source"),Y.value=W=t[0].source,v(Z,"class","tooltip svelte-1iuq3t7"),v(n,"class","svelte-1iuq3t7"),v(R,"type","radio"),v(R,"name","source"),R.value="",v(R,"class","svelte-1iuq3t7"),v(Q,"title","Clear filter"),v(T,"class","clear svelte-1iuq3t7"),v(e,"class","source svelte-1iuq3t7")},m(I,M){V(I,e,M),d(e,n),d(n,i),d(n,l),d(n,a),d(a,h),d(a,f),d(a,g),d(a,m),d(a,p),d(p,_),d(p,U),d(p,F),d(a,Y),d(a,X),d(a,Z),S&&S.m(Z,null),d(Z,z),d(Z,c),d(Z,E),d(e,A),d(e,T),d(T,R),d(T,P),d(T,Q),B||(y=[ve(Y,"change",function(){yn(t[1])&&t[1].apply(this,arguments)}),ve(R,"change",function(){yn(t[1])&&t[1].apply(this,arguments)})],B=!0)},p(I,[M]){t=I,M&1&&r!==(r=t[0].url)&&v(i,"title",r),M&1&&!Ln(i.src,s=bi(t[0].source))&&v(i,"src",s),M&1&&o!==(o=t[0].source+"")&&me(h,o),M&1&&w!==(w=ft(t[0].bytes)+"")&&me(U,w),M&1&&L!==(L=t[0].child_csv.length+" collections")&&v(p,"title",L),M&1&&W!==(W=t[0].source)&&(Y.value=W),t[0].plate_count?S?S.p(t,M):(S=er(t),S.c(),S.m(Z,z)):S&&(S.d(1),S=null),M&1&&u!==(u=t[0].image_count+"")&&me(c,u)},i:we,o:we,d(I){I&&x(e),S&&S.d(),B=!1,nt(y)}}}function Jl(t,e,n){let{source:i}=e,{handleFilter:r}=e;return t.$$set=s=>{"source"in s&&n(0,i=s.source),"handleFilter"in s&&n(1,r=s.handleFilter)},[i,r]}class Zl extends Ye{constructor(e){super(),Ze(this,e,Jl,Kl,xe,{source:0,handleFilter:1})}}function Yl(t,e,n){const i=t.slice();return i[31]=e[n],i}function tr(t,e,n){const i=t.slice();return i[34]=e[n],i}function nr(t,e,n){const i=t.slice();return i[34]=e[n],i}function ir(t,e,n){const i=t.slice();return i[39]=e[n],i}function rr(t,e,n){const i=t.slice();return i[42]=e[n],i}function sr(t){let e,n,i=ft(t[4])+"",r,s;return{c(){e=q(`In the summer of 2024, the OME-NGFF project generated + `),n=k("strong"),r=q(i),s=q(" of data in Zarr v3 format"),ae(n,"font-weight","600")},m(l,a){V(l,e,a),V(l,n,a),d(n,r),V(l,s,a)},p(l,a){a[0]&16&&i!==(i=ft(l[4])+"")&&me(r,i)},d(l){l&&(x(e),x(n),x(s))}}}function lr(t){let e,n=ft(t[4])+"",i,r,s,l,a,o;return{c(){e=q("("),i=q(n),r=q(`) + `),s=k("span"),s.textContent="  |  ",l=j(),a=k("a"),o=q("Show all collections"),ae(s,"color","grey"),v(a,"href",window.location.origin+window.location.pathname)},m(h,f){V(h,e,f),V(h,i,f),V(h,r,f),V(h,s,f),V(h,l,f),V(h,a,f),d(a,o)},p(h,f){f[0]&16&&n!==(n=ft(h[4])+"")&&me(i,n)},d(h){h&&(x(e),x(i),x(r),x(s),x(l),x(a))}}}function or(t){let e,n;return e=new Zl({props:{source:t[42],handleFilter:t[17]}}),{c(){Je(e.$$.fragment)},m(i,r){He(e,i,r),n=!0},p(i,r){const s={};r[0]&4&&(s.source=i[42]),e.$set(s)},i(i){n||(se(e.$$.fragment,i),n=!0)},o(i){he(e.$$.fragment,i),n=!1},d(i){We(e,i)}}}function ar(t){let e,n,i,r,s,l,a,o,h,f=Pe(Ce.getCsvSourceList(t[14])),g=[];for(let m=0;mt[24].call(n)),v(l,"title","Clear Filter"),ae(l,"visibility",t[12]!==""?"visible":"hidden"),v(l,"class","svelte-13v19q"),v(s,"class","svelte-13v19q"),v(e,"class","selectWrapper svelte-13v19q")},m(m,p){V(m,e,p),d(e,n),d(n,i);for(let _=0;_0,T,R,P,Q,B=t[13]!==""?"All Dimensions":"Dimension Count",y,S,I,M,ee,O,J,b,D,H,ie,ne,N,G,oe=t[11]==""?"Organism":"All Organisms",pe,ue,Se,de,re,Ue,Me,Te,be,Ae,fe=t[10]==""?"Imaging Modality":"All Modalities",ge,et,te=[],it=new Map,Ge,Ke,Oe,Qe,Xe,Re,ct,ze,Pt,tt,$e,bt,si,li,yt,wt,kt,oi,fn,ht,ai,Et,rt,ui,cn=t[0].length+"",Sn,fi,An,ci,hi,dt,Fe,In,di;e=new Bl({});let qe=t[1]==Vt&&sr(t),Be=t[1]!=Vt&&lr(t),_t=Pe(t[2]),ye=[];for(let C=0;C<_t.length;C+=1)ye[C]=or(rr(t,_t,C));const Mr=C=>he(ye[C],1,1,()=>{ye[C]=null});let je=A&&ar(t),Ct=Pe(Object.keys(t[5]).sort()),De=[];for(let C=0;CC[34];for(let C=0;Ct[25].call(P)),v(D,"title","Clear Filter"),ae(D,"visibility",t[13]!==""?"visible":"hidden"),v(D,"class","svelte-13v19q"),v(b,"class","svelte-13v19q"),v(R,"class","selectWrapper svelte-13v19q"),G.__value="",Ee(G,G.__value),v(N,"class","svelte-13v19q"),t[11]===void 0&<(()=>t[26].call(N)),v(re,"title","Clear Filter"),ae(re,"visibility",t[11]!==""?"visible":"hidden"),v(re,"class","svelte-13v19q"),v(de,"class","svelte-13v19q"),v(ne,"class","selectWrapper svelte-13v19q"),Ae.__value="",Ee(Ae,Ae.__value),v(be,"class","svelte-13v19q"),t[10]===void 0&<(()=>t[27].call(be)),v(Oe,"title","Clear Filter"),ae(Oe,"visibility",t[10]!==""?"visible":"hidden"),v(Oe,"class","svelte-13v19q"),v(Ke,"class","svelte-13v19q"),v(Te,"class","selectWrapper svelte-13v19q"),v(Re,"class","clear"),bt.__value="",Ee(bt,bt.__value),yt.__value="written",Ee(yt,yt.__value),wt.__value="chunk_pixels",Ee(wt,wt.__value),kt.__value="shard_pixels",Ee(kt,kt.__value),v($e,"class","svelte-13v19q"),v(fn,"class","svelte-13v19q"),v(tt,"class","selectWrapper svelte-13v19q"),v(u,"class","filters svelte-13v19q"),v(z,"class","sidebar svelte-13v19q"),ae(rt,"margin-left","15px"),v(rt,"class","svelte-13v19q"),v(Et,"class","results svelte-13v19q"),v(Z,"class","sidebarContainer svelte-13v19q"),ae(i,"--form-select-bg-img","url('"+jl+"')"),v(i,"class","svelte-13v19q")},m(C,K){He(e,C,K),V(C,n,K),V(C,i,K),d(i,r),d(r,s),qe&&qe.m(s,null),d(s,l),d(s,a),d(a,o),d(a,h),d(h,g),d(a,m),Be&&Be.m(a,null),d(r,p),d(r,_),d(_,w),Ee(w,t[9]),d(_,U),d(_,F),d(F,L),d(r,Y),d(r,W);for(let _e=0;_e0),A?je?je.p(C,K):(je=ar(C),je.c(),je.m(u,T)):je&&(je.d(1),je=null),(!Fe||K[0]&8192)&&B!==(B=C[13]!==""?"All Dimensions":"Dimension Count")&&me(y,B),K[0]&8192&&ot(P,C[13]),(!Fe||K[0]&8192)&&ae(D,"visibility",C[13]!==""?"visible":"hidden"),(!Fe||K[0]&2048)&&oe!==(oe=C[11]==""?"Organism":"All Organisms")&&me(pe,oe),K[0]&32){Ct=Pe(Object.keys(C[5]).sort());let ce;for(ce=0;ce{n(0,g=X(y)),n(2,m=Ce.getCsvSourceList()),n(3,p=y.length),n(4,_=y.reduce((S,I)=>S+parseInt(I.written)||0,0))}),Sr.subscribe(y=>{let S={};for(const[I,M]of Object.entries(y))S[M]=I;n(5,w=S)}),Ar.subscribe(y=>{let S={};for(const[I,M]of Object.entries(y))S[M]=I;n(6,U=S)}),f&&yr(f,Ce);let F="",L=!1;function Y(){n(8,L=!L),Ce.sortTable(F,L)}function W(y){n(7,F=y.target.value),F===""?Ce.sortTable("index",!0):Ce.sortTable(F,L)}function X(y){if(i!==""&&(y=y.filter(S=>S.dim_count==i)),s!=="")y=y.filter(S=>S.csv==s);else if(r!==""){let S=Ce.getCsvSourceList(r),I=[r,...S.map(M=>M.source)];y=y.filter(M=>I.includes(M.source))}if(l!==""&&(y=y.filter(S=>S.organismId==l)),a!=""&&(y=y.filter(S=>S.fbbiId==a)),o&&o!=""){let S=o.toLowerCase();y=y.filter(I=>{var M,ee;return I.url.toLowerCase().includes(S)||((M=I.description)==null?void 0:M.toLowerCase().includes(S))||((ee=I.name)==null?void 0:ee.toLowerCase().includes(S))})}return y}function Z(y){n(14,r=y.target.value||""),n(12,s=""),console.log("filterSource",r,s),n(0,g=X(Ce.getRows()))}function z(y){n(13,i=y.target.value||""),n(0,g=X(Ce.getRows()))}function u(y){n(12,s=y.target.value||""),n(0,g=X(Ce.getRows()))}function c(y){n(11,l=y.target.value||""),n(0,g=X(Ce.getRows()))}function E(y){n(10,a=y.target.value||""),n(0,g=X(Ce.getRows()))}function A(y){n(9,o=y.target.value),n(0,g=X(Ce.getRows()))}function T(){o=this.value,n(9,o)}function R(){s=gn(this),n(12,s),n(14,r)}function P(){i=gn(this),n(13,i)}function Q(){l=gn(this),n(11,l),n(5,w)}function B(){a=gn(this),n(10,a),n(6,U)}return t.$$.update=()=>{t.$$.dirty[0]&1&&g.some(y=>y.source)},n(13,i=""),n(14,r=""),n(12,s=""),n(11,l=""),n(10,a=""),n(9,o=""),[g,f,m,p,_,w,U,F,L,o,a,l,s,i,r,Y,W,Z,z,u,c,E,A,T,R,P,Q,B]}class eo extends Ye{constructor(e){super(),Ze(this,e,$l,Xl,xe,{},null,[-1,-1])}}function to(t){let e;return{c(){e=k("div"),e.innerHTML=`

Introduction

The 2024 OME-NGFF Challenge + was conceived at the + OME Annual Community Meeting + in Dundee in May 2024. The stated goals of Challenge were:

  • Collect examples of OME-Zarr from multiple modalities, use cases, and + institutions, available from a single location.
  • Test the utility (and lack thereof) of existing OME-Zarr metadata and + image viewers.
  • Advance the adoption of the Zarr V3 specification, and also existing + OME-Zarr RFCs.

The inspiration for the Challenge came from presentations at the OME Meeting + that demonstrated the level of adoption of OME-Zarr, but highlighted the + poor findability of the data.

Work on the challenge started in earnest in July 2024. All progress is + tracked in the ome2024-ngff-challenge + repo. It was agreed that the results + of the OME-NGFF Challenge would be presented at the + 2024 Global BioImaging Meeting.

Process

The Challenge was run via a series of virtual meetings coordinated on the + Image.sc Forums, with all + notes and lists of participants + available.

Results

At the outset, we weren’t sure how much OME-Zarr data was available, if it + could be converted to Zarr V3, or how many organisations would participate. + In the end, we have far exceeded our expectations, with more than 0.5 PByte + of OME-Zarr made available, across a wide range of modalities.

To make the assembly as accessible as possible, we built the the OME-NGFF + Challenge Viewer [URL?}, which incorporates a CSV with locations of + datasets, and connects datasets to the OME NGFF Validator, for metadata + validation and viewing.

Perhaps the most important outcome of the Challenge is the establishment of + a federated bioimage data system based on OME-Zarr. To our knowledge, this + is the largest federated bioimage data collection ever assembled.

`,v(e,"class","svelte-1ivuwa5")},m(n,i){V(n,e,i)},p:we,i:we,o:we,d(n){n&&x(e)}}}class no extends Ye{constructor(e){super(),Ze(this,e,null,to,xe,{})}}function io(t){let e,n;return e=new eo({}),{c(){Je(e.$$.fragment)},m(i,r){He(e,i,r),n=!0},i(i){n||(se(e.$$.fragment,i),n=!0)},o(i){he(e.$$.fragment,i),n=!1},d(i){We(e,i)}}}function ro(t){let e,n;return e=new no({}),{c(){Je(e.$$.fragment)},m(i,r){He(e,i,r),n=!0},i(i){n||(se(e.$$.fragment,i),n=!0)},o(i){he(e.$$.fragment,i),n=!1},d(i){We(e,i)}}}function so(t){let e,n,i,r,s,l;n=new Gl({});const a=[ro,io],o=[];function h(f,g){return f[0].endsWith("/about/")?0:1}return r=h(t),s=o[r]=a[r](t),{c(){e=k("div"),Je(n.$$.fragment),i=j(),s.c(),v(e,"class","app svelte-1mc4mod")},m(f,g){V(f,e,g),He(n,e,null),d(e,i),o[r].m(e,null),l=!0},p:we,i(f){l||(se(n.$$.fragment,f),se(s),l=!0)},o(f){he(n.$$.fragment,f),he(s),l=!1},d(f){f&&x(e),We(n),o[r].d()}}}function lo(t){return[window.location.pathname]}class oo extends Ye{constructor(e){super(),Ze(this,e,lo,so,xe,{})}}new oo({target:document.getElementById("app")}); diff --git a/assets/index-C6YtS3Ix.js b/assets/index-C6YtS3Ix.js deleted file mode 100644 index 89070da..0000000 --- a/assets/index-C6YtS3Ix.js +++ /dev/null @@ -1,22 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blosc-E49GQuAK.js","assets/chunk-INHXZS53-D3tQiqtZ.js","assets/gzip-CF-9a_hd.js","assets/browser-B-ZyVB-j.js","assets/lz4-BIGKWw27.js","assets/zlib-CBiqHlio.js","assets/zstd-IvP746pw.js"])))=>i.map(i=>d[i]); -var Hr=Object.defineProperty;var Sn=t=>{throw TypeError(t)};var Gr=(t,e,n)=>e in t?Hr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var ee=(t,e,n)=>Gr(t,typeof e!="symbol"?e+"":e,n),xt=(t,e,n)=>e.has(t)||Sn("Cannot "+n);var H=(t,e,n)=>(xt(t,e,"read from private field"),n?n.call(t):e.get(t)),$e=(t,e,n)=>e.has(t)?Sn("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),me=(t,e,n,r)=>(xt(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n),en=(t,e,n)=>(xt(t,e,"access private method"),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function be(){}const Cr=t=>t;function Rr(t){return t()}function Ln(){return Object.create(null)}function Ve(t){t.forEach(Rr)}function pn(t){return typeof t=="function"}function Ye(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let Ut;function In(t,e){return t===e?!0:(Ut||(Ut=document.createElement("a")),Ut.href=e,t===Ut.href)}function Kr(t){return Object.keys(t).length===0}function Vr(t,...e){if(t==null){for(const r of e)r(void 0);return be}const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function Yr(t){let e;return Vr(t,n=>e=n)(),e}const Tr=typeof window<"u";let Qr=Tr?()=>window.performance.now():()=>Date.now(),mn=Tr?t=>requestAnimationFrame(t):be;const ut=new Set;function Or(t){ut.forEach(e=>{e.c(t)||(ut.delete(e),e.f())}),ut.size!==0&&mn(Or)}function Xr(t){let e;return ut.size===0&&mn(Or),{promise:new Promise(n=>{ut.add(e={c:t,f:n})}),abort(){ut.delete(e)}}}function g(t,e){t.appendChild(e)}function Sr(t){if(!t)return document;const e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function Zr(t){const e=N("style");return e.textContent="/* empty */",xr(Sr(t),e),e.sheet}function xr(t,e){return g(t.head||t,e),e.sheet}function q(t,e,n){t.insertBefore(e,n||null)}function j(t){t.parentNode&&t.parentNode.removeChild(t)}function N(t){return document.createElement(t)}function X(t){return document.createTextNode(t)}function J(){return X(" ")}function bt(){return X("")}function tt(t,e,n,r){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n,r)}function Lr(t){return function(e){return e.preventDefault(),t.call(this,e)}}function C(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function ei(t){return Array.from(t.childNodes)}function fe(t,e){e=""+e,t.data!==e&&(t.data=e)}function Qe(t,e,n,r){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,"")}function Dt(t,e,n){t.classList.toggle(e,!!n)}function ti(t,e,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(t,{detail:e,bubbles:n,cancelable:r})}const Wt=new Map;let Jt=0;function ni(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}function ri(t,e){const n={stylesheet:Zr(e),rules:{}};return Wt.set(t,n),n}function Fn(t,e,n,r,i,s,o,u=0){const l=16.666/r;let c=`{ -`;for(let k=0;k<=1;k+=l){const b=e+(n-e)*s(k);c+=k*100+`%{${o(b,1-b)}} -`}const h=c+`100% {${o(n,1-n)}} -}`,p=`__svelte_${ni(h)}_${u}`,d=Sr(t),{stylesheet:y,rules:$}=Wt.get(d)||ri(d,t);$[p]||($[p]=!0,y.insertRule(`@keyframes ${p} ${h}`,y.cssRules.length));const M=t.style.animation||"";return t.style.animation=`${M?`${M}, `:""}${p} ${r}ms linear ${i}ms 1 both`,Jt+=1,p}function ii(t,e){const n=(t.style.animation||"").split(", "),r=n.filter(e?s=>s.indexOf(e)<0:s=>s.indexOf("__svelte")===-1),i=n.length-r.length;i&&(t.style.animation=r.join(", "),Jt-=i,Jt||si())}function si(){mn(()=>{Jt||(Wt.forEach(t=>{const{ownerNode:e}=t.stylesheet;e&&j(e)}),Wt.clear())})}let vt;function wt(t){vt=t}function oi(){if(!vt)throw new Error("Function called outside component initialization");return vt}function li(t){oi().$$.on_mount.push(t)}const at=[],sn=[];let ft=[];const Mn=[],ai=Promise.resolve();let on=!1;function ui(){on||(on=!0,ai.then(Ir))}function nt(t){ft.push(t)}const tn=new Set;let ot=0;function Ir(){if(ot!==0)return;const t=vt;do{try{for(;ott.indexOf(r)===-1?e.push(r):n.push(r)),n.forEach(r=>r()),ft=e}let pt;function hi(){return pt||(pt=Promise.resolve(),pt.then(()=>{pt=null})),pt}function nn(t,e,n){t.dispatchEvent(ti(`${e?"intro":"outro"}${n}`))}const zt=new Set;let Je;function qe(){Je={r:0,c:[],p:Je}}function He(){Je.r||Ve(Je.c),Je=Je.p}function P(t,e){t&&t.i&&(zt.delete(t),t.i(e))}function V(t,e,n,r){if(t&&t.o){if(zt.has(t))return;zt.add(t),Je.c.push(()=>{zt.delete(t),r&&(n&&t.d(1),r())}),t.o(e)}else r&&r()}const di={duration:0};function qt(t,e,n,r){let s=e(t,n,{direction:"both"}),o=r?0:1,u=null,l=null,c=null,h;function p(){c&&ii(t,c)}function d($,M){const k=$.b-o;return M*=Math.abs(k),{a:o,b:$.b,d:k,duration:M,start:$.start,end:$.start+M,group:$.group}}function y($){const{delay:M=0,duration:k=300,easing:b=Cr,tick:w=be,css:E}=s||di,K={start:Qr()+M,b:$};$||(K.group=Je,Je.r+=1),"inert"in t&&($?h!==void 0&&(t.inert=h):(h=t.inert,t.inert=!0)),u||l?l=K:(E&&(p(),c=Fn(t,o,$,k,M,b,E)),$&&w(0,1),u=d(K,k),nt(()=>nn(t,$,"start")),Xr(U=>{if(l&&U>l.start&&(u=d(l,k),l=null,nn(t,u.b,"start"),E&&(p(),c=Fn(t,o,u.b,u.duration,0,b,s.css))),u){if(U>=u.end)w(o=u.b,1-o),nn(t,u.b,"end"),l||(u.b?p():--u.group.r||Ve(u.group.c)),u=null;else if(U>=u.start){const B=U-u.start;o=u.a+u.d*b(B/u.duration),w(o,1-o)}}return!!(u||l)}))}return{run($){pn(s)?hi().then(()=>{s=s({direction:$?"in":"out"}),y($)}):y($)},end(){p(),u=l=null}}}function Ht(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function Fr(t,e){V(t,1,1,()=>{e.delete(t.key)})}function Mr(t,e,n,r,i,s,o,u,l,c,h,p){let d=t.length,y=s.length,$=d;const M={};for(;$--;)M[t[$].key]=$;const k=[],b=new Map,w=new Map,E=[];for($=y;$--;){const S=p(i,s,$),f=n(S);let a=o.get(f);a?E.push(()=>a.p(S,e)):(a=c(f,S),a.c()),b.set(f,k[$]=a),f in M&&w.set(f,Math.abs($-M[f]))}const K=new Set,U=new Set;function B(S){P(S,1),S.m(u,h),o.set(S.key,S),h=S.first,y--}for(;d&&y;){const S=k[y-1],f=t[d-1],a=S.key,_=f.key;S===f?(h=S.first,d--,y--):b.has(_)?!o.has(a)||K.has(a)?B(S):U.has(_)?d--:w.get(a)>w.get(_)?(U.add(a),B(S)):(K.add(_),d--):(l(f,o),d--)}for(;d--;){const S=t[d];b.has(S.key)||l(S,o)}for(;y;)B(k[y-1]);return Ve(E),k}function ke(t){t&&t.c()}function ye(t,e,n){const{fragment:r,after_update:i}=t.$$;r&&r.m(e,n),nt(()=>{const s=t.$$.on_mount.map(Rr).filter(pn);t.$$.on_destroy?t.$$.on_destroy.push(...s):Ve(s),t.$$.on_mount=[]}),i.forEach(nt)}function we(t,e){const n=t.$$;n.fragment!==null&&(ci(n.after_update),Ve(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function _i(t,e){t.$$.dirty[0]===-1&&(at.push(t),ui(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const $=y.length?y[0]:d;return c.ctx&&i(c.ctx[p],c.ctx[p]=$)&&(!c.skip_bound&&c.bound[p]&&c.bound[p]($),h&&_i(t,p)),d}):[],c.update(),h=!0,Ve(c.before_update),c.fragment=r?r(c.ctx):!1,e.target){if(e.hydrate){const p=ei(e.target);c.fragment&&c.fragment.l(p),p.forEach(j)}else c.fragment&&c.fragment.c();e.intro&&P(t.$$.fragment),ye(t,e.target,e.anchor),Ir()}wt(l)}class st{constructor(){ee(this,"$$");ee(this,"$$set")}$destroy(){we(this,1),this.$destroy=be}$on(e,n){if(!pn(n))return be;const r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(n),()=>{const i=r.indexOf(n);i!==-1&&r.splice(i,1)}}$set(e){this.$$set&&!Kr(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const pi="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(pi);const lt=[];function mi(t,e=be){let n;const r=new Set;function i(u){if(Ye(t,u)&&(t=u,n)){const l=!lt.length;for(const c of r)c[1](),lt.push(c,t);if(l){for(let c=0;c{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:s,subscribe:o}}var gi=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function yi(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Nr={exports:{}};/* @license -Papa Parse -v5.4.1 -https://github.com/mholt/PapaParse -License: MIT -*/(function(t,e){(function(n,r){t.exports=r()})(gi,function n(){var r=typeof self<"u"?self:typeof window<"u"?window:r!==void 0?r:{},i=!r.document&&!!r.postMessage,s=r.IS_PAPA_WORKER||!1,o={},u=0,l={parse:function(f,a){var _=(a=a||{}).dynamicTyping||!1;if(S(_)&&(a.dynamicTypingFunction=_,_={}),a.dynamicTyping=_,a.transform=!!S(a.transform)&&a.transform,a.worker&&l.WORKERS_SUPPORTED){var R=function(){if(!l.WORKERS_SUPPORTED)return!1;var L=(W=r.URL||r.webkitURL||null,z=n.toString(),l.BLOB_URL||(l.BLOB_URL=W.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",z,")();"],{type:"text/javascript"})))),O=new r.Worker(L),W,z;return O.onmessage=w,O.id=u++,o[O.id]=O}();return R.userStep=a.step,R.userChunk=a.chunk,R.userComplete=a.complete,R.userError=a.error,a.step=S(a.step),a.chunk=S(a.chunk),a.complete=S(a.complete),a.error=S(a.error),delete a.worker,void R.postMessage({input:f,config:a,workerId:R.id})}var T=null;return l.NODE_STREAM_INPUT,typeof f=="string"?(f=function(L){return L.charCodeAt(0)===65279?L.slice(1):L}(f),T=a.download?new p(a):new y(a)):f.readable===!0&&S(f.read)&&S(f.on)?T=new $(a):(r.File&&f instanceof File||f instanceof Object)&&(T=new d(a)),T.stream(f)},unparse:function(f,a){var _=!1,R=!0,T=",",L=`\r -`,O='"',W=O+O,z=!1,v=null,G=!1;(function(){if(typeof a=="object"){if(typeof a.delimiter!="string"||l.BAD_DELIMITERS.filter(function(F){return a.delimiter.indexOf(F)!==-1}).length||(T=a.delimiter),(typeof a.quotes=="boolean"||typeof a.quotes=="function"||Array.isArray(a.quotes))&&(_=a.quotes),typeof a.skipEmptyLines!="boolean"&&typeof a.skipEmptyLines!="string"||(z=a.skipEmptyLines),typeof a.newline=="string"&&(L=a.newline),typeof a.quoteChar=="string"&&(O=a.quoteChar),typeof a.header=="boolean"&&(R=a.header),Array.isArray(a.columns)){if(a.columns.length===0)throw new Error("Option columns is empty");v=a.columns}a.escapeChar!==void 0&&(W=a.escapeChar+O),(typeof a.escapeFormulae=="boolean"||a.escapeFormulae instanceof RegExp)&&(G=a.escapeFormulae instanceof RegExp?a.escapeFormulae:/^[=+\-@\t\r].*$/)}})();var I=new RegExp(k(O),"g");if(typeof f=="string"&&(f=JSON.parse(f)),Array.isArray(f)){if(!f.length||Array.isArray(f[0]))return Me(null,f,z);if(typeof f[0]=="object")return Me(v||Object.keys(f[0]),f,z)}else if(typeof f=="object")return typeof f.data=="string"&&(f.data=JSON.parse(f.data)),Array.isArray(f.data)&&(f.fields||(f.fields=f.meta&&f.meta.fields||v),f.fields||(f.fields=Array.isArray(f.data[0])?f.fields:typeof f.data[0]=="object"?Object.keys(f.data[0]):[]),Array.isArray(f.data[0])||typeof f.data[0]=="object"||(f.data=[f.data])),Me(f.fields||[],f.data||[],z);throw new Error("Unable to serialize unrecognized input");function Me(F,Z,_e){var re="";typeof F=="string"&&(F=JSON.parse(F)),typeof Z=="string"&&(Z=JSON.parse(Z));var ge=Array.isArray(F)&&0=this._config.preview;if(s)r.postMessage({results:L,workerId:l.WORKER_ID,finished:W});else if(S(this._config.chunk)&&!_){if(this._config.chunk(L,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);L=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(L.data),this._completeResults.errors=this._completeResults.errors.concat(L.errors),this._completeResults.meta=L.meta),this._completed||!W||!S(this._config.complete)||L&&L.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),W||L&&L.meta.paused||this._nextChunk(),L}this._halted=!0},this._sendError=function(a){S(this._config.error)?this._config.error(a):s&&this._config.error&&r.postMessage({workerId:l.WORKER_ID,error:a,finished:!1})}}function p(f){var a;(f=f||{}).chunkSize||(f.chunkSize=l.RemoteChunkSize),h.call(this,f),this._nextChunk=i?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(_){this._input=_,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(a=new XMLHttpRequest,this._config.withCredentials&&(a.withCredentials=this._config.withCredentials),i||(a.onload=B(this._chunkLoaded,this),a.onerror=B(this._chunkError,this)),a.open(this._config.downloadRequestBody?"POST":"GET",this._input,!i),this._config.downloadRequestHeaders){var _=this._config.downloadRequestHeaders;for(var R in _)a.setRequestHeader(R,_[R])}if(this._config.chunkSize){var T=this._start+this._config.chunkSize-1;a.setRequestHeader("Range","bytes="+this._start+"-"+T)}try{a.send(this._config.downloadRequestBody)}catch(L){this._chunkError(L.message)}i&&a.status===0&&this._chunkError()}},this._chunkLoaded=function(){a.readyState===4&&(a.status<200||400<=a.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:a.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(_){var R=_.getResponseHeader("Content-Range");return R===null?-1:parseInt(R.substring(R.lastIndexOf("/")+1))}(a),this.parseChunk(a.responseText)))},this._chunkError=function(_){var R=a.statusText||_;this._sendError(new Error(R))}}function d(f){var a,_;(f=f||{}).chunkSize||(f.chunkSize=l.LocalChunkSize),h.call(this,f);var R=typeof FileReader<"u";this.stream=function(T){this._input=T,_=T.slice||T.webkitSlice||T.mozSlice,R?((a=new FileReader).onload=B(this._chunkLoaded,this),a.onerror=B(this._chunkError,this)):a=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(T.target.result)},this._chunkError=function(){this._sendError(a.error)}}function y(f){var a;h.call(this,f=f||{}),this.stream=function(_){return a=_,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var _,R=this._config.chunkSize;return R?(_=a.substring(0,R),a=a.substring(R)):(_=a,a=""),this._finished=!a,this.parseChunk(_)}}}function $(f){h.call(this,f=f||{});var a=[],_=!0,R=!1;this.pause=function(){h.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){h.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(T){this._input=T,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){R&&a.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),a.length?this.parseChunk(a.shift()):_=!0},this._streamData=B(function(T){try{a.push(typeof T=="string"?T:T.toString(this._config.encoding)),_&&(_=!1,this._checkIsFinished(),this.parseChunk(a.shift()))}catch(L){this._streamError(L)}},this),this._streamError=B(function(T){this._streamCleanUp(),this._sendError(T)},this),this._streamEnd=B(function(){this._streamCleanUp(),R=!0,this._streamData("")},this),this._streamCleanUp=B(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function M(f){var a,_,R,T=Math.pow(2,53),L=-T,O=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,W=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,z=this,v=0,G=0,I=!1,Me=!1,ce=[],F={data:[],errors:[],meta:{}};if(S(f.step)){var Z=f.step;f.step=function(A){if(F=A,ge())re();else{if(re(),F.data.length===0)return;v+=A.data.length,f.preview&&v>f.preview?_.abort():(F.data=F.data[0],Z(F,z))}}}function _e(A){return f.skipEmptyLines==="greedy"?A.join("").trim()==="":A.length===1&&A[0].length===0}function re(){return F&&R&&(he("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+l.DefaultDelimiter+"'"),R=!1),f.skipEmptyLines&&(F.data=F.data.filter(function(A){return!_e(A)})),ge()&&function(){if(!F)return;function A(se,ue){S(f.transformHeader)&&(se=f.transformHeader(se,ue)),ce.push(se)}if(Array.isArray(F.data[0])){for(var Y=0;ge()&&Y=ce.length?"__parsed_extra":ce[Q]),f.transform&&(ne=f.transform(ne,le)),ne=oe(le,ne),le==="__parsed_extra"?(ve[le]=ve[le]||[],ve[le].push(ne)):ve[le]=ne}return f.header&&(Q>ce.length?he("FieldMismatch","TooManyFields","Too many fields: expected "+ce.length+" fields but parsed "+Q,G+ue):Q=Se.length/2?`\r -`:"\r"}(A,ue)),R=!1,f.delimiter)S(f.delimiter)&&(f.delimiter=f.delimiter(A),F.meta.delimiter=f.delimiter);else{var Q=function(le,ne,Re,Se,Le){var Ae,Ie,ie,ae;Le=Le||[","," ","|",";",l.RECORD_SEP,l.UNIT_SEP];for(var ze=0;ze=O)return Ce(!0)}else for(x=v,v++;;){if((x=I.indexOf(a,x+1))===-1)return ce||he.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:oe.length,index:v}),Ee();if(x===F-1)return Ee(I.substring(v,x).replace(ze,a));if(a!==z||I[x+1]!==z){if(a===z||x===0||I[x-1]!==z){ie!==-1&&ie=O)return Ce(!0);break}he.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:oe.length,index:v}),x++}}else x++}return Ee();function pe(te){oe.push(te),Y=v}function De(te){var Te=0;if(te!==-1){var de=I.substring(x+1,te);de&&de.trim()===""&&(Te=de.length)}return Te}function Ee(te){return ce||(te===void 0&&(te=I.substring(v)),A.push(te),v=F,pe(A),ge&&Fe()),Ce()}function Be(te){v=te,pe(A),A=[],ae=I.indexOf(R,v)}function Ce(te){return{data:oe,errors:he,meta:{delimiter:_,linebreak:R,aborted:G,truncated:!!te,cursor:Y+(Me||0)}}}function Fe(){L(Ce()),oe=[],he=[]}},this.abort=function(){G=!0},this.getCharIndex=function(){return v}}function w(f){var a=f.data,_=o[a.workerId],R=!1;if(a.error)_.userError(a.error,a.file);else if(a.results&&a.results.data){var T={abort:function(){R=!0,E(a.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:K,resume:K};if(S(_.userStep)){for(var L=0;L1&&(s=o,i.data.shift());let u=i.data.map(p=>{let d={...n};for(let y=0;y{var d;return!((d=p.url)!=null&&d.endsWith(".csv"))}),c={};if(l.forEach(p=>{if(c[p.url]){console.warn("Removing duplicate URL:",p.url);return}c[p.url]=p}),l=Object.values(c),r){let p=l.length,d=l.reduce((y,$)=>y+parseInt($.written)||0,0);l=l.slice(0,r).map(y=>({...y,csv_row_count:p,written:d}))}e.addRows(l),u.filter(p=>{var d;return(d=p.url)==null?void 0:d.includes(".csv")}).forEach(p=>{let d=p.url;p.url=void 0,p.csv=d,gn(d,e,p,1)})}})}async function Ur(t){return await fetch(t).then(e=>e.json())}async function vi(t){let e=t.replace("NCBI:txid","");return(await Ur(`https://rest.ensembl.org/taxonomy/id/${e}?content-type=application/json`)).name||t}async function ki(t){const e=t.replace("obo:","");return(await Ur(`https://www.ebi.ac.uk/ols4/api/ontologies/fbbi/terms/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252F${e}`)).label}function Gt(t){if(!t)return"";const e=2;return t<1024?t+" B":t<1024*1024?(t/1024).toFixed(e)+" KB":t<1024*1024*1024?(t/(1024*1024)).toFixed(e)+" MB":t<1024*1024*1024*1024?(t/(1024*1024*1024)).toFixed(e)+" GB":t<1024*1024*1024*1024*1024?(t/(1024*1024*1024*1024)).toFixed(e)+" TB":(t/(1024*1024*1024*1024*1024)).toFixed(e)+" PB"}function Nn(t,e){return Array.from({length:e-t},(n,r)=>r+t)}function Ei(t,e,n){const r=t[0].shape,i=r[0],s=r[1],o=i*s;e||(e=t.map(Dr));const u=new Uint8ClampedArray(4*i*s).fill(0);let l=0;for(let c=0;ci?s:[]);for(const[i,s]of r.entries())n[s]=Un[i]}return n.map(Br)}function Br(t){t.startsWith("#")&&(t=t.slice(1));const e=parseInt(t.slice(0,2),16),n=parseInt(t.slice(2,4),16),r=parseInt(t.slice(4,6),16);return[e,n,r]}const Bt=5;async function ln(t){var r;let e=await fetch(`${t}/zarr.json`).then(i=>{if(console.log("loadMultiscales response",i.status),i.status===404)throw new Error(`${t}/zarr.json not found`);return i.json()}).catch(i=>(console.log(`----> Failed to load ${t}/zarr.json`,i),[void 0,t]));const n=(r=e==null?void 0:e.attributes)==null?void 0:r.ome;if(!n)return[void 0,t];if(n.multiscales)return[n.multiscales,t];if(n.plate){let i=n.plate.wells[0],s=`${t}/${i.path}/0`,[o,u]=await ln(s);return[o,u,n.plate]}else if(n["bioformats2raw.layout"]){let i=`${t}/0`;return await ln(i)}}class Ti{constructor(){this.store=mi([])}addRows(e){this.store.update(n=>{n.push(...e);async function r(i){for(let s=0;sthis.loadNgffMetadata(i[u].url));await Promise.all(o)}}return r.bind(this)(e),n})}populateRow(e,n){this.store.update(r=>(r=r.map(i=>(i.url===e&&(i={...i,...n},console.log("populateRow",n,i)),i)),r))}async loadNgffMetadata(e){var d;const[n,r,i]=await ln(e);let s=[],o=0,u=0,l=!1,c=!0,h={multiscales:n},p=r;if(i&&(o=i.wells.length,u=i.field_count||1),n){const y=(d=n[0])==null?void 0:d.datasets[0],$=y==null?void 0:y.path;if($){const M=await fetch(`${r}/${$}/zarr.json`).then(k=>k.json()).catch(k=>{console.log(`----> Failed to parse ${r}/${$}/zarr.json`,k)});s=M==null?void 0:M.shape}}else console.log("No multiscales found"),l=!0,s=[0];this.populateRow(e,{image_attrs:h,image_url:p,shape:s,well_count:o,field_count:u,load_failed:l,loaded:c})}async loadRocrateJson(e){await fetch(`${e}/ro-crate-metadata.json`).then(n=>{if(console.log("loadMultiscales response",n.status),n.status===404)throw new Error(`${e}/ro-crate-metadata.json not found`);return n.json()}).then(n=>{var u,l;let r=n["@graph"].find(c=>c["@type"]==="biosample"),i=(u=r==null?void 0:r.organism_classification)==null?void 0:u["@id"],s=n["@graph"].find(c=>c["@type"]==="image_acquisition"),o=(l=s==null?void 0:s.fbbi_id)==null?void 0:l["@id"];this.populateRow(e,{organism_id:i,fbbi_id:o,rocrate_loaded:!0})}).catch(n=>{console.log("Failed to load ro-crate-metadata.json",n)})}async loadRocrateJsonAllRows(){let e=Yr(this.store);for(let n=0;nthis.loadRocrateJson(e[i].url));await Promise.all(r)}}compareRows(e,n){let r=e[this.sortColumn],i=n[this.sortColumn];r===void 0&&(r=""),i===void 0&&(i="");let s=0;return typeof r=="number"?s=r-i:s=r.localeCompare(i),this.sortAscending?s:-s}sortTable(e,n=!0){this.sortColumn=e,this.sortAscending=n,this.store.update(r=>(r.sort((i,s)=>this.compareRows(i,s)),r))}emptyTable(){this.store.set([])}subscribe(e){return this.store.subscribe(e)}}const Xe=new Ti;function Oi(t){const e=t-1;return e*e*e+1}function Dn(t,{delay:e=0,duration:n=400,easing:r=Cr}={}){const i=+getComputedStyle(t).opacity;return{delay:e,duration:n,easing:r,css:s=>`opacity: ${s*i}`}}function Bn(t,{delay:e=0,duration:n=400,easing:r=Oi,start:i=0,opacity:s=0}={}){const o=getComputedStyle(t),u=+o.opacity,l=o.transform==="none"?"":o.transform,c=1-i,h=u*(1-s);return{delay:e,duration:n,easing:r,css:(p,d)=>` - transform: ${l} scale(${1-c*d}); - opacity: ${u-h*d} - `}}function zn(t){let e,n,r,i,s;return{c(){e=N("h2"),n=X(t[1]),r=X(" zarrs in "),i=X(t[0]),s=X(" collections")},m(o,u){q(o,e,u),g(e,n),g(e,r),g(e,i),g(e,s)},p(o,u){u&2&&fe(n,o[1]),u&1&&fe(i,o[0])},d(o){o&&j(e)}}}function Si(t){let e,n=t[1]>0&&zn(t);return{c(){n&&n.c(),e=bt()},m(r,i){n&&n.m(r,i),q(r,e,i)},p(r,[i]){r[1]>0?n?n.p(r,i):(n=zn(r),n.c(),n.m(e.parentNode,e)):n&&(n.d(1),n=null)},i:be,o:be,d(r){r&&j(e),n&&n.d(r)}}}function Li(t,e,n){let r,i,{tableRows:s=[]}=e;return t.$$set=o=>{"tableRows"in o&&n(2,s=o.tableRows)},t.$$.update=()=>{t.$$.dirty&4&&n(1,r=s.reduce((o,u)=>o+(u.csv_row_count||0),0)),t.$$.dirty&4&&n(0,i=s.reduce((o,u)=>o+(u.csv_row_count?1:0),0))},[i,r,s]}class Ii extends st{constructor(e){super(),it(this,e,Li,Si,Ye,{tableRows:2})}}class Mt extends Error{constructor(e,n={}){super(`Node not found: ${e}`,n),this.name="NodeNotFoundError"}}class yn extends Error{constructor(e){super(`Missing key: ${e}`),this.name="KeyError"}}const Fi="modulepreload",Mi=function(t){return"https://ome.github.io/ome2024-ngff-challenge/"+t},Pn={},mt=function(e,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),o=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));i=Promise.all(n.map(u=>{if(u=Mi(u),u in Pn)return;Pn[u]=!0;const l=u.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${c}`))return;const h=document.createElement("link");if(h.rel=l?"stylesheet":Fi,l||(h.as="script"),h.crossOrigin="",h.href=u,o&&h.setAttribute("nonce",o),document.head.appendChild(h),l)return new Promise((p,d)=>{h.addEventListener("load",p),h.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${u}`)))})}))}return i.then(()=>e()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};var Ue;class zr{constructor(e,n,r){$e(this,Ue);typeof e=="number"?me(this,Ue,new Uint8Array(e)):e instanceof ArrayBuffer?me(this,Ue,new Uint8Array(e,n,r)):me(this,Ue,new Uint8Array(Array.from(e,i=>i?1:0)))}get BYTES_PER_ELEMENT(){return 1}get byteOffset(){return H(this,Ue).byteOffset}get byteLength(){return H(this,Ue).byteLength}get buffer(){return H(this,Ue).buffer}get length(){return H(this,Ue).length}get(e){let n=H(this,Ue)[e];return typeof n=="number"?n!==0:n}set(e,n){H(this,Ue)[e]=n?1:0}fill(e){H(this,Ue).fill(e?1:0)}*[Symbol.iterator](){for(let e=0;e=0;r--)n[r]=i,i*=t[r];return n}function Bi(t){const e=t.length,n=globalThis.Array(e);for(let r=0,i=1;r["c",...r].join(n)}if(t==="v2"){const n=(e==null?void 0:e.separator)??".";return r=>r.join(n)||"0"}throw new Error(`Unknown chunk key encoding: ${t}`)}function an(t){var n;const e=t.find(r=>r.name==="transpose");return((n=e==null?void 0:e.configuration)==null?void 0:n.order)==="F"?"F":"C"}const Pi=/^([<|>])(.*)$/;function ji(t){if(t==="|O")return{data_type:"v2:object"};let e=t.match(Pi);if(!e)throw new Error(`Invalid dtype: ${t}`);let[,n,r]=e,i={b1:"bool",i1:"int8",u1:"uint8",i2:"int16",u2:"uint16",i4:"int32",u4:"uint32",i8:"int64",u8:"uint64",f4:"float32",f8:"float64"}[r]??(r.startsWith("S")||r.startsWith("U")?`v2:${r}`:void 0);if(!i)throw new Error(`Unsupported or unknown dtype: ${t}`);return n==="|"?{data_type:i}:{data_type:i,endian:n==="<"?"little":"big"}}function Wi(t,e={}){let n=[],r=ji(t.dtype);t.order==="F"&&n.push({name:"transpose",configuration:{order:"F"}}),"endian"in r&&r.endian==="big"&&n.push({name:"bytes",configuration:{endian:"big"}});for(let{id:i,...s}of t.filters??[])n.push({name:i,configuration:s});if(t.compressor){let{id:i,...s}=t.compressor;n.push({name:i,configuration:s})}return{zarr_format:3,node_type:"array",shape:t.shape,data_type:r.data_type,chunk_grid:{name:"regular",configuration:{chunk_shape:t.chunks}},chunk_key_encoding:{name:"v2",configuration:{separator:t.dimension_separator??"."}},codecs:n,fill_value:t.fill_value,attributes:e}}function Ji(t,e={}){return{zarr_format:3,node_type:"group",attributes:e}}function qi(t,e){if(e!=="number"&&e!=="bigint"&&e!=="boolean"&&e!=="object"&&e!=="string")return t===e;let n=t==="bool";if(e==="boolean")return n;let r=t.startsWith("v2:U")||t.startsWith("v2:S");if(e==="string")return r;let i=t==="int64"||t==="uint64";if(e==="bigint")return i;let s=t==="v2:object";return e==="object"?s:!r&&!i&&!n&&!s}function Hi(t){return(t==null?void 0:t.name)==="sharding_indexed"}function jr(t){return(t.data_type==="uint64"||t.data_type==="int64")&&t.fill_value!=null?BigInt(t.fill_value):t.fill_value}const Wn=Gi();function Gi(){const t=new Uint32Array([305419896]);return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)[0]!==18}function Jn(t){return"BYTES_PER_ELEMENT"in t?t.BYTES_PER_ELEMENT:4}var Et,Ge,$t,At,ht;const Cn=class Cn{constructor(e,n){ee(this,"kind","array_to_bytes");$e(this,Et);$e(this,Ge);$e(this,$t);$e(this,At);$e(this,ht);me(this,ht,e==null?void 0:e.endian),me(this,Ge,Pr(n.data_type)),me(this,At,n.shape),me(this,Et,rt(n.shape,an(n.codecs)));const r=new(H(this,Ge))(0);me(this,$t,r.BYTES_PER_ELEMENT)}static fromConfig(e,n){return new Cn(e,n)}encode(e){let n=new Uint8Array(e.data.buffer);return Wn&&H(this,ht)==="big"&&jn(n,Jn(H(this,Ge))),n}decode(e){return Wn&&H(this,ht)==="big"&&jn(e,Jn(H(this,Ge))),{data:new(H(this,Ge))(e.buffer,e.byteOffset,e.byteLength/H(this,$t)),shape:H(this,At),stride:H(this,Et)}}};Et=new WeakMap,Ge=new WeakMap,$t=new WeakMap,At=new WeakMap,ht=new WeakMap;let Kt=Cn;class bn{constructor(){ee(this,"kind","bytes_to_bytes")}static fromConfig(){return new bn}encode(e){throw new Error("Not implemented")}decode(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength-4)}}function Ki(t,e){if(Number.isNaN(e))throw new Error("JsonCodec allow_nan is false but NaN was encountered during encoding.");if(e===Number.POSITIVE_INFINITY)throw new Error("JsonCodec allow_nan is false but Infinity was encountered during encoding.");if(e===Number.NEGATIVE_INFINITY)throw new Error("JsonCodec allow_nan is false but -Infinity was encountered during encoding.");return e}function Vi(t,e){return e instanceof Object&&!Array.isArray(e)?Object.keys(e).sort().reduce((n,r)=>(n[r]=e[r],n),{}):e}var Ct,Rt;const Rn=class Rn{constructor(e={}){ee(this,"configuration");ee(this,"kind","array_to_bytes");$e(this,Ct);$e(this,Rt);this.configuration=e;const{encoding:n="utf-8",skipkeys:r=!1,ensure_ascii:i=!0,check_circular:s=!0,allow_nan:o=!0,sort_keys:u=!0,indent:l,strict:c=!0}=e;let h=e.separators;h||(l?h=[", ",": "]:h=[",",":"]),me(this,Ct,{encoding:n,skipkeys:r,ensure_ascii:i,check_circular:s,allow_nan:o,indent:l,separators:h,sort_keys:u}),me(this,Rt,{strict:c})}static fromConfig(e){return new Rn(e)}encode(e){const{indent:n,encoding:r,ensure_ascii:i,check_circular:s,allow_nan:o,sort_keys:u}=H(this,Ct);if(r!=="utf-8")throw new Error("JsonCodec does not yet support non-utf-8 encoding.");const l=[];if(!s)throw new Error("JsonCodec does not yet support skipping the check for circular references during encoding.");o||l.push(Ki),u&&l.push(Vi);const c=Array.from(e.data);c.push("|O"),c.push(e.shape);let h;l.length&&(h=(d,y)=>{let $=y;for(let M of l)$=M(d,$);return $});let p=JSON.stringify(c,h,n);return i&&(p=p.replace(/[\u007F-\uFFFF]/g,d=>{const y=`0000${d.charCodeAt(0).toString(16)}`;return`\\u${y.substring(y.length-4)}`})),new TextEncoder().encode(p)}decode(e){const{strict:n}=H(this,Rt);if(!n)throw new Error("JsonCodec does not yet support non-strict decoding.");const r=Nt(e),i=r.pop();if(r.pop(),!i)throw new Error("0D not implemented for JsonCodec.");const s=rt(i,"C");return{data:r,shape:i,stride:s}}};Ct=new WeakMap,Rt=new WeakMap;let un=Rn;function qn(t){return t instanceof zr||t instanceof wn||t instanceof kt?new Proxy(t,{get(n,r){return n.get(Number(r))},set(n,r,i){return n.set(Number(r),i),!0}}):t}function Yi(t,e){let n;return t.data instanceof wn||t.data instanceof kt?n=new t.constructor(t.data.length,t.data.chars):n=new t.constructor(t.data.length),{data:n,shape:t.shape,stride:rt(t.shape,e)}}function Qi(t,e){let n=Yi(t,e),r=t.shape.length,i=t.data.length,s=Array(r).fill(0),o=qn(t.data),u=qn(n.data);for(let l=0;ln===e[r])?"C":"F"}class vn{constructor(e){ee(this,"configuration");ee(this,"kind","array_to_array");this.configuration=e}static fromConfig(e){return new vn(e)}encode(e){var n,r;return Xi(e)===((n=this.configuration)==null?void 0:n.order)?e:Qi(e,((r=this.configuration)==null?void 0:r.order)??"C")}decode(e){return e}}var Tt,Ot;const Tn=class Tn{constructor(e){ee(this,"kind","array_to_bytes");$e(this,Tt);$e(this,Ot);me(this,Tt,e),me(this,Ot,rt(e,"C"))}static fromConfig(e,n){return new Tn(n.shape)}encode(e){throw new Error("Method not implemented.")}decode(e){let n=new TextDecoder,r=new DataView(e.buffer),i=Array(r.getUint32(0,!0)),s=4;for(let o=0;omt(()=>import("./blosc-E49GQuAK.js"),__vite__mapDeps([0,1])).then(t=>t.default)).set("gzip",()=>mt(()=>import("./gzip-CF-9a_hd.js"),__vite__mapDeps([2,3])).then(t=>t.default)).set("lz4",()=>mt(()=>import("./lz4-BIGKWw27.js"),__vite__mapDeps([4,1])).then(t=>t.default)).set("zlib",()=>mt(()=>import("./zlib-CBiqHlio.js"),__vite__mapDeps([5,3])).then(t=>t.default)).set("zstd",()=>mt(()=>import("./zstd-IvP746pw.js"),__vite__mapDeps([6,1])).then(t=>t.default)).set("transpose",()=>vn).set("bytes",()=>Kt).set("crc32c",()=>bn).set("vlen-utf8",()=>fn).set("json2",()=>un)}const xi=Zi();function cn(t){let e;return{async encode(n){e||(e=await Hn(t));for(const i of e.array_to_array)n=await i.encode(n);let r=await e.array_to_bytes.encode(n);for(const i of e.bytes_to_bytes)r=await i.encode(r);return r},async decode(n){e||(e=await Hn(t));for(let i=e.bytes_to_bytes.length-1;i>=0;i--)n=await e.bytes_to_bytes[i].decode(n);let r=await e.array_to_bytes.decode(n);for(let i=e.array_to_array.length-1;i>=0;i--)r=await e.array_to_array[i].decode(r);return r}}}async function Hn(t){let e=t.codecs.map(async s=>{var u;let o=await((u=xi.get(s.name))==null?void 0:u());if(!o)throw new Error(`Unknown codec: ${s.name}`);return{Codec:o,meta:s}}),n=[],r,i=[];for await(let{Codec:s,meta:o}of e){let u=s.fromConfig(o.configuration,t);switch(u.kind){case"array_to_array":n.push(u);break;case"array_to_bytes":r=u;break;default:i.push(u)}}if(!r){if(!es(t))throw new Error(`Cannot encode ${t.data_type} to bytes without a codec`);r=Kt.fromConfig({endian:"little"},t)}return{array_to_array:n,array_to_bytes:r,bytes_to_bytes:i}}function es(t){return t.data_type!=="v2:object"}const Gn=18446744073709551615n;function ts(t,e,n,r){if(t.store.getRange===void 0)throw new Error("Store does not support range requests");let i=t.store.getRange.bind(t.store),s=e.map((l,c)=>l/r.chunk_shape[c]),o=cn({data_type:"uint64",shape:[...s,2],codecs:r.index_codecs}),u={};return async l=>{let c=l.map((w,E)=>Math.floor(w/s[E])),h=t.resolve(n(c)).path,p;if(h in u)p=u[h];else{let w=4,E=16*s.reduce((U,B)=>U*B,1),K=await i(h,{suffixLength:E+w});p=u[h]=K?await o.decode(K):null}if(p===null)return;let{data:d,shape:y,stride:$}=p,M=l.map((w,E)=>w%y[E]).reduce((w,E,K)=>w+E*$[K],0),k=d[M],b=d[M+1];if(!(k===Gn&&b===Gn))return i(h,{offset:Number(k),length:Number(b)})}}class dt{constructor(e,n="/"){ee(this,"store");ee(this,"path");this.store=e,this.path=n}resolve(e){let n=new URL(`file://${this.path.endsWith("/")?this.path:`${this.path}/`}`);return new dt(this.store,new URL(e,n).pathname)}}var St;class kn extends dt{constructor(n,r,i){super(n,r);ee(this,"kind","group");$e(this,St);me(this,St,i)}get attrs(){return H(this,St).attributes}}St=new WeakMap;const yt=Symbol("zarrita.context");function ns(t){return t[yt]}function rs(t,e){let{configuration:n}=e.codecs.find(Hi)??{},r={encode_chunk_key:zi(e.chunk_key_encoding),TypedArray:Pr(e.data_type),fill_value:e.fill_value};if(n){let s=an(n.codecs);return{...r,kind:"sharded",chunk_shape:n.chunk_shape,codec:cn({data_type:e.data_type,shape:n.chunk_shape,codecs:n.codecs}),get_strides(o,u){return rt(o,u??s)},get_chunk_bytes:ts(t,e.chunk_grid.configuration.chunk_shape,r.encode_chunk_key,n)}}let i=an(e.codecs);return{...r,kind:"regular",chunk_shape:e.chunk_grid.configuration.chunk_shape,codec:cn({data_type:e.data_type,shape:e.chunk_grid.configuration.chunk_shape,codecs:e.codecs}),get_strides(s,o){return rt(s,o??i)},async get_chunk_bytes(s,o){let u=r.encode_chunk_key(s),l=t.resolve(u).path;return t.store.get(l,o)}}}var Er,$r,xe,Ar;let Vt=(Ar=class extends($r=dt,Er=yt,$r){constructor(n,r,i){super(n,r);ee(this,"kind","array");$e(this,xe);ee(this,Er);me(this,xe,{...i,fill_value:jr(i)}),this[yt]=rs(this,i)}get attrs(){return H(this,xe).attributes}get shape(){return H(this,xe).shape}get chunks(){return this[yt].chunk_shape}get dtype(){return H(this,xe).data_type}async getChunk(n,r){let i=this[yt],s=await i.get_chunk_bytes(n,r);if(!s){let o=i.chunk_shape.reduce((l,c)=>l*c,1),u=new i.TypedArray(o);return u.fill(i.fill_value),{data:u,shape:i.chunk_shape,stride:i.get_strides(i.chunk_shape)}}return i.codec.decode(s)}is(n){return qi(this.dtype,n)}},xe=new WeakMap,Ar),Qt=is();function is(){let t=new WeakMap;function e(n){let r=t.get(n)??{v2:0,v3:0};return t.set(n,r),r}return{increment(n,r){e(n)[r]+=1},version_max(n){let r=e(n);return r.v3>r.v2?"v3":"v2"}}}async function ss(t){let e=await t.store.get(t.resolve(".zattrs").path);return e?Nt(e):{}}async function os(t,e={}){let n="store"in t?t:new dt(t),r={};return(e.attrs??!0)&&(r=await ss(n)),e.kind==="array"?Kn(n,r):e.kind==="group"?Vn(n,r):Kn(n,r).catch(i=>{if(i instanceof Mt)return Vn(n,r);throw i})}async function Kn(t,e){let{path:n}=t.resolve(".zarray"),r=await t.store.get(n);if(!r)throw new Mt("v2 array",{cause:new yn(n)});return Qt.increment(t.store,"v2"),new Vt(t.store,t.path,Wi(Nt(r),e))}async function Vn(t,e){let{path:n}=t.resolve(".zgroup"),r=await t.store.get(n);if(!r)throw new Mt("v2 group",{cause:new yn(n)});return Qt.increment(t.store,"v2"),new kn(t.store,t.path,Ji(Nt(r),e))}async function ls(t){let{store:e,path:n}=t.resolve("zarr.json"),r=await t.store.get(n);if(!r)throw new Mt("v3 array or group",{cause:new yn(n)});let i=Nt(r);return i.node_type==="array"&&(i.fill_value=jr(i)),i.node_type==="array"?new Vt(e,t.path,i):new kn(e,t.path,i)}async function as(t,e={}){let n="store"in t?t:new dt(t),r=await ls(n);if(Qt.increment(n.store,"v3"),e.kind===void 0||e.kind==="array"&&r instanceof Vt||e.kind==="group"&&r instanceof kn)return r;let i=r instanceof Vt?"array":"group";throw new Error(`Expected node of kind ${e.kind}, found ${i}.`)}async function Ze(t,e={}){let n="store"in t?t.store:t,r=Qt.version_max(n),i=r==="v2"?Ze.v2:Ze.v3,s=r==="v2"?Ze.v3:Ze.v2;return i(t,e).catch(o=>{if(o instanceof Mt)return s(t,e);throw o})}Ze.v2=os;Ze.v3=as;function*us(t,e,n=1){e===void 0&&(e=t,t=0);for(let r=t;rr[Symbol.iterator]()),n=e.map(r=>r.next());if(n.some(r=>r.done))throw new Error("Input contains an empty iterator.");for(let r=0;;){if(n[r].done){if(e[r]=t[r][Symbol.iterator](),n[r]=e[r].next(),++r>=e.length)return}else yield n.map(({value:i})=>i),r=0;n[r]=e[r].next()}}function cs({start:t,stop:e,step:n},r){if(n===0)throw new Error("slice step cannot be zero");n=n??1;const i=n<0,[s,o]=i?[-1,r-1]:[0,r];return t===null?t=i?o:s:t<0?(t+=r,to&&(t=o),e===null?e=i?s:o:e<0?(e+=r,eo&&(e=o),[t,e,n]}function hn(t,e,n=null){return e===void 0&&(e=t,t=null),{start:t,stop:e,step:n}}function hs(){const t=[];return{add:e=>t.push(e()),onIdle:()=>Promise.all(t)}}class En extends Error{constructor(e){super(e),this.name="IndexError"}}function ds(t,e){throw new En(`too many indicies for array; expected ${e.length}, got ${t.length}`)}function _s(t){throw new En(`index out of bounds for dimension with length ${t}`)}function ps(){throw new En("only slices with step >= 1 are supported")}function ms(t,e){t.length>e.length&&ds(t,e)}function gs(t,e){return t=Math.trunc(t),t<0&&(t=e+t),(t>=e||t<0)&&_s(e),t}class ys{constructor({dim_sel:e,dim_len:n,dim_chunk_len:r}){ee(this,"dim_sel");ee(this,"dim_len");ee(this,"dim_chunk_len");ee(this,"nitems");e=gs(e,n),this.dim_sel=e,this.dim_len=n,this.dim_chunk_len=r,this.nitems=1}*[Symbol.iterator](){const e=Math.floor(this.dim_sel/this.dim_chunk_len),n=e*this.dim_chunk_len,r=this.dim_sel-n;yield{dim_chunk_ix:e,dim_chunk_sel:r}}}class Yn{constructor({dim_sel:e,dim_len:n,dim_chunk_len:r}){ee(this,"start");ee(this,"stop");ee(this,"step");ee(this,"dim_len");ee(this,"dim_chunk_len");ee(this,"nitems");ee(this,"nchunks");const[i,s,o]=cs(e,n);this.start=i,this.stop=s,this.step=o,this.step<1&&ps(),this.dim_len=n,this.dim_chunk_len=r,this.nitems=Math.max(0,Math.ceil((this.stop-this.start)/this.step)),this.nchunks=Math.ceil(this.dim_len/this.dim_chunk_len)}*[Symbol.iterator](){const e=Math.floor(this.start/this.dim_chunk_len),n=Math.ceil(this.stop/this.dim_chunk_len);for(const r of us(e,n)){const i=r*this.dim_chunk_len,s=Math.min(this.dim_len,(r+1)*this.dim_chunk_len),o=s-i;let u=0,l=0;if(this.starts?o:this.stop-i,h=[l,c,this.step],p=Math.ceil((c-l)/this.step),d=[u,u+p,1];yield{dim_chunk_ix:r,dim_chunk_sel:h,dim_out_sel:d}}}}function ws(t,e){let n=[];return t===null?n=e.map(r=>hn(null)):Array.isArray(t)&&(n=t.map(r=>r??hn(null))),ms(n,e),n}class bs{constructor({selection:e,shape:n,chunk_shape:r}){ee(this,"dim_indexers");ee(this,"shape");this.dim_indexers=ws(e,n).map((i,s)=>new(typeof i=="number"?ys:Yn)({dim_sel:i,dim_len:n[s],dim_chunk_len:r[s]})),this.shape=this.dim_indexers.filter(i=>i instanceof Yn).map(i=>i.nitems)}*[Symbol.iterator](){for(const e of fs(...this.dim_indexers)){const n=e.map(i=>i.dim_chunk_ix),r=e.map(i=>"dim_out_sel"in i?{from:i.dim_chunk_sel,to:i.dim_out_sel}:{from:i.dim_chunk_sel,to:null});yield{chunk_coords:n,mapping:r}}}}function vs(t,e){return"get"in t?t.get(e):t[e]}async function ks(t,e,n,r){var l;let i=ns(t),s=new bs({selection:e,shape:t.shape,chunk_shape:t.chunks}),o=r.prepare(new i.TypedArray(s.shape.reduce((c,h)=>c*h,1)),s.shape,i.get_strides(s.shape,n.order)),u=((l=n.create_queue)==null?void 0:l.call(n))??hs();for(const{chunk_coords:c,mapping:h}of s)u.add(async()=>{let{data:p,shape:d,stride:y}=await t.getChunk(c,n.opts),$=r.prepare(p,d,y);r.set_from_chunk(o,$,h)});return await u.onIdle(),s.shape.length===0?vs(o.data,0):o}function $n(t,e=0,n){let r=n??t.length-e;return{length:r,subarray(i,s=r){return $n(t,e+i,s-i)},set(i,s=0){for(let o=0;oO.path),y=i.multiscales[0].axes.map(O=>O.name),$=d.at(-1);const M=new Os(r+"/"+$),k=await Ze(M,{kind:"array"});let b=y.indexOf("c"),w=k.shape;if(w.at(-1)*w.at(-2)>s*s){console.log("Lowest resolution too large for Thumbnail: ",w,r);return}let E=w.length;k.chunks;let K=w[b],U,B;(L=i==null?void 0:i.omero)!=null&&L.channels?(U=i.omero.channels.map(O=>O.active),B=i.omero.channels.map(O=>Br(O.color))):(U=Ci(K),B=Ri(K,U)),B=B.filter((O,W)=>U[W]);let f=U.reduce((O,W,z)=>(W&&O.push(z),O),[]).map(O=>{let W=w.map((z,v)=>v==b?O:v>=E-2?hn(0,z):y[v]=="z"||y[v]=="t"?parseInt(z/2+""):0);return Cs(k,W)}),a=await Promise.all(f),_=a.map(O=>Dr(O)),R=Ei(a,_,B);n(2,l=w.at(-1)),n(3,c=w.at(-2));let T=l/Zn;c>l&&(T=c/Zn),n(1,u=l/T),setTimeout(()=>{o.getContext("2d").putImageData(new ImageData(R,l,c),0,0)},100)}li(()=>{h()});function p(d){sn[d?"unshift":"push"](()=>{o=d,n(0,o)})}return t.$$set=d=>{"source"in d&&n(4,r=d.source),"attrs"in d&&n(5,i=d.attrs),"max_size"in d&&n(6,s=d.max_size)},[o,u,l,c,r,i,s,p]}class qr extends st{constructor(e){super(),it(this,e,Ls,Ss,Ye,{source:4,attrs:5,max_size:6})}}const Is="https://ome.github.io/ome2024-ngff-challenge/idr-mark.svg";function xn(t,e,n){const r=t.slice();return r[9]=e[n],r}function er(t){let e,n,r,i=t[4](t[9].source),s,o,u=t[9].csv_row_count+"",l,c,h=t[9].well_count?"plates":"images",p,d,y,$=or(t[9])+"",M,k,b,w,E,K,U=t[9].image_attrs&&tr(t),B=i&&nr(t),S=t[9].source&&rr(t);function f(){return t[5](t[9])}return{c(){e=N("a"),n=N("div"),U&&U.c(),r=J(),B&&B.c(),s=J(),S&&S.c(),o=J(),l=X(u),c=J(),p=X(h),d=J(),y=N("div"),M=X($),k=J(),C(y,"class","hoverInfo svelte-c69c1m"),C(n,"class","item svelte-c69c1m"),C(e,"href",b=window.location.origin+"?csv="+t[9].csv)},m(a,_){q(a,e,_),g(e,n),U&&U.m(n,null),g(n,r),B&&B.m(n,null),g(n,s),S&&S.m(n,null),g(n,o),g(n,l),g(n,c),g(n,p),g(n,d),g(n,y),g(y,M),g(e,k),w=!0,E||(K=tt(e,"click",Lr(f)),E=!0)},p(a,_){t=a,t[9].image_attrs?U?(U.p(t,_),_&2&&P(U,1)):(U=tr(t),U.c(),P(U,1),U.m(n,r)):U&&(qe(),V(U,1,1,()=>{U=null}),He()),_&2&&(i=t[4](t[9].source)),i?B?B.p(t,_):(B=nr(t),B.c(),B.m(n,s)):B&&(B.d(1),B=null),t[9].source?S?S.p(t,_):(S=rr(t),S.c(),S.m(n,o)):S&&(S.d(1),S=null),(!w||_&2)&&u!==(u=t[9].csv_row_count+"")&&fe(l,u),(!w||_&2)&&h!==(h=t[9].well_count?"plates":"images")&&fe(p,h),(!w||_&2)&&$!==($=or(t[9])+"")&&fe(M,$),(!w||_&2&&b!==(b=window.location.origin+"?csv="+t[9].csv))&&C(e,"href",b)},i(a){w||(P(U),w=!0)},o(a){V(U),w=!1},d(a){a&&j(e),U&&U.d(),B&&B.d(),S&&S.d(),E=!1,K()}}}function tr(t){let e,n;return e=new qr({props:{attrs:t[9].image_attrs,source:t[9].image_url,max_size:t[2]}}),{c(){ke(e.$$.fragment)},m(r,i){ye(e,r,i),n=!0},p(r,i){const s={};i&2&&(s.attrs=r[9].image_attrs),i&2&&(s.source=r[9].image_url),i&4&&(s.max_size=r[2]),e.$set(s)},i(r){n||(P(e.$$.fragment,r),n=!0)},o(r){V(e.$$.fragment,r),n=!1},d(r){we(e,r)}}}function nr(t){let e,n,r;return{c(){e=N("img"),C(e,"alt",n="Icon from "+t[9].source),C(e,"class","source_icon svelte-c69c1m"),In(e.src,r=t[4](t[9].source))||C(e,"src",r)},m(i,s){q(i,e,s)},p(i,s){s&2&&n!==(n="Icon from "+i[9].source)&&C(e,"alt",n),s&2&&!In(e.src,r=i[4](i[9].source))&&C(e,"src",r)},d(i){i&&j(e)}}}function rr(t){let e,n=t[9].source+"",r,i;return{c(){e=N("span"),r=X(n),i=X(":"),C(e,"class","source svelte-c69c1m")},m(s,o){q(s,e,o),g(e,r),g(e,i)},p(s,o){o&2&&n!==(n=s[9].source+"")&&fe(r,n)},d(s){s&&j(e)}}}function ir(t,e){let n,r,i,s=e[9].csv_row_count&&e[9].csv&&er(e);return{key:t,first:null,c(){n=bt(),s&&s.c(),r=bt(),this.first=n},m(o,u){q(o,n,u),s&&s.m(o,u),q(o,r,u),i=!0},p(o,u){e=o,e[9].csv_row_count&&e[9].csv?s?(s.p(e,u),u&2&&P(s,1)):(s=er(e),s.c(),P(s,1),s.m(r.parentNode,r)):s&&(qe(),V(s,1,1,()=>{s=null}),He())},i(o){i||(P(s),i=!0)},o(o){V(s),i=!1},d(o){o&&(j(n),j(r)),s&&s.d(o)}}}function sr(t){let e,n,r,i,s,o,u;return{c(){e=N("p"),n=N("a"),r=X("< Show all samples"),C(n,"class","home svelte-c69c1m"),C(n,"title","Show ALL samples"),C(n,"href",window.location.origin+"?csv="+et),C(e,"class","svelte-c69c1m")},m(l,c){q(l,e,c),g(e,n),g(n,r),s=!0,o||(u=tt(n,"click",Lr(t[6])),o=!0)},p:be,i(l){s||(l&&nt(()=>{s&&(i||(i=qt(e,Bn,{duration:500,delay:0,opacity:.5,start:.5},!0)),i.run(1))}),s=!0)},o(l){l&&(i||(i=qt(e,Bn,{duration:500,delay:0,opacity:.5,start:.5},!1)),i.run(0)),s=!1},d(l){l&&j(e),l&&i&&i.end(),o=!1,u()}}}function Fs(t){let e,n,r,i=[],s=new Map,o,u,l,c,h,p,d,y;e=new Ii({props:{tableRows:t[1]}});let $=Ht(t[1]);const M=b=>b[9].url;for(let b=0;b<$.length;b+=1){let w=xn(t,$,b),E=M(w);s.set(E,i[b]=ir(E,w))}let k=t[0]!==et&&sr(t);return{c(){ke(e.$$.fragment),n=J(),r=N("div");for(let b=0;b{k=null}),He())},i(b){if(!y){P(e.$$.fragment,b);for(let w=0;w<$.length;w+=1)P(i[w]);P(k),y=!0}},o(b){V(e.$$.fragment,b);for(let w=0;w{n(1,i=d),d.length<100?n(2,s=2048):n(2,s=512)});function l(d){console.log("handleThumbClick",d,et),d!==et&&u(),Xe.emptyTable(),n(0,r=d),gn(r,Xe)}function c(d){if(d==="IDR")return Is;let y=o[d];return y?`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=${y}&size=24`:null}const h=d=>l(d.csv),p=()=>l(et);return t.$$set=d=>{"csvUrl"in d&&n(0,r=d.csvUrl)},[r,i,s,l,c,h,p]}class Ns extends st{constructor(e){super(),it(this,e,Ms,Fs,Ye,{csvUrl:0})}}function lr(t){let e,n,r=`${t[2]}px`,i=`${t[3]}px`,s,o,u;return{c(){e=N("div"),C(e,"class","pixel svelte-4hpgyt"),Qe(e,"left",r),Qe(e,"top",i)},m(l,c){q(l,e,c),s=!0,o||(u=[tt(e,"introend",t[6]),tt(e,"outroend",t[5])],o=!0)},p(l,c){c&4&&r!==(r=`${l[2]}px`)&&Qe(e,"left",r),c&8&&i!==(i=`${l[3]}px`)&&Qe(e,"top",i)},i(l){s||(l&&nt(()=>{s&&(n||(n=qt(e,Dn,{duration:5e3},!0)),n.run(1))}),s=!0)},o(l){l&&(n||(n=qt(e,Dn,{duration:5e3},!1)),n.run(0)),s=!1},d(l){l&&j(e),l&&n&&n.end(),o=!1,Ve(u)}}}function Us(t){let e,n,r;nt(t[7]);let i=t[4]&&lr(t);return{c(){i&&i.c(),e=bt()},m(s,o){i&&i.m(s,o),q(s,e,o),n||(r=tt(window,"resize",t[7]),n=!0)},p(s,[o]){s[4]?i?(i.p(s,o),o&16&&P(i,1)):(i=lr(s),i.c(),P(i,1),i.m(e.parentNode,e)):i&&(qe(),V(i,1,1,()=>{i=null}),He())},i(s){P(i)},o(s){V(i)},d(s){s&&j(e),i&&i.d(s),n=!1,r()}}}function gt(t){return Math.floor(Math.random()*t)}function Ds(t,e,n){let r=0,i=0,s=0,o=0,u=!1,l=gt(5e3);function c(){n(2,s=gt(r/20)*20),n(3,o=gt(i/20)*20),n(4,u=!0)}function h(){l=2e3+gt(5e3),setTimeout(()=>{n(4,u=!1)},l)}setTimeout(c,gt(1e4));function p(){n(0,r=window.innerWidth),n(1,i=window.innerHeight)}return[r,i,s,o,u,c,h,p]}class je extends st{constructor(e){super(),it(this,e,Ds,Us,Ye,{})}}function Bs(t){let e,n,r,i,s,o,u,l;return{c(){e=N("button"),n=X(t[1]),r=J(),i=N("span"),i.textContent="^",s=J(),o=N("span"),o.textContent="^",C(i,"class","acc svelte-g3ba97"),Dt(i,"strong",t[3]==t[0]&&t[4]),C(o,"class","dec svelte-g3ba97"),Dt(o,"strong",t[3]==t[0]&&!t[4]),C(e,"class","svelte-g3ba97")},m(c,h){q(c,e,h),g(e,n),g(e,r),g(e,i),g(e,s),g(e,o),u||(l=tt(e,"click",t[5]),u=!0)},p(c,[h]){h&2&&fe(n,c[1]),h&25&&Dt(i,"strong",c[3]==c[0]&&c[4]),h&25&&Dt(o,"strong",c[3]==c[0]&&!c[4])},i:be,o:be,d(c){c&&j(e),u=!1,l()}}}function zs(t,e,n){let{col_name:r}=e,{col_label:i}=e,{handleSort:s}=e,{sortedBy:o}=e,{sortAscending:u}=e;const l=()=>s(r);return t.$$set=c=>{"col_name"in c&&n(0,r=c.col_name),"col_label"in c&&n(1,i=c.col_label),"handleSort"in c&&n(2,s=c.handleSort),"sortedBy"in c&&n(3,o=c.sortedBy),"sortAscending"in c&&n(4,u=c.sortAscending)},[r,i,s,o,u,l]}class Yt extends st{constructor(e){super(),it(this,e,zs,Bs,Ye,{col_name:0,col_label:1,handleSort:2,sortedBy:3,sortAscending:4})}}const Ps="https://ome.github.io/ome2024-ngff-challenge/ome-main-nav.svg";function js(t){let e;return{c(){e=N("nav"),e.innerHTML=`OME Logo

2024 NGFF Challenge

`,C(e,"class","svelte-1v9ay5y")},m(n,r){q(n,e,r)},p:be,i:be,o:be,d(n){n&&j(e)}}}class Ws extends st{constructor(e){super(),it(this,e,null,js,Ye,{})}}function ar(t,e,n){const r=t.slice();return r[16]=e[n],r}function Js(t){let e=Object.keys(t[3]).length+"",n;return{c(){n=X(e)},m(r,i){q(r,n,i)},p(r,i){i&8&&e!==(e=Object.keys(r[3]).length+"")&&fe(n,e)},d(r){r&&j(n)}}}function qs(t){let e,n,r;return{c(){e=N("button"),e.textContent="Load Ro-Crate metadata",C(e,"class","loadrocrate svelte-53dfht")},m(i,s){q(i,e,s),n||(r=tt(e,"click",t[9]),n=!0)},p:be,d(i){i&&j(e),n=!1,r()}}}function ur(t){let e,n,r;return n=new Yt({props:{col_label:"Source",col_name:"source",handleSort:t[12],sortedBy:t[4],sortAscending:t[5]}}),{c(){e=N("th"),ke(n.$$.fragment),C(e,"class","svelte-53dfht")},m(i,s){q(i,e,s),ye(n,e,null),r=!0},p(i,s){const o={};s&16&&(o.sortedBy=i[4]),s&32&&(o.sortAscending=i[5]),n.$set(o)},i(i){r||(P(n.$$.fragment,i),r=!0)},o(i){V(n.$$.fragment,i),r=!1},d(i){i&&j(e),we(n)}}}function fr(t){let e;return{c(){e=N("th"),e.textContent="Data Origin",C(e,"class","svelte-53dfht")},m(n,r){q(n,e,r)},d(n){n&&j(e)}}}function cr(t){let e,n,r,i,s;return n=new Yt({props:{col_label:"Wells",col_name:"well_count",handleSort:t[12],sortedBy:t[4],sortAscending:t[5]}}),{c(){e=N("th"),ke(n.$$.fragment),r=J(),i=N("th"),i.textContent="Images",C(e,"class","svelte-53dfht"),C(i,"class","svelte-53dfht")},m(o,u){q(o,e,u),ye(n,e,null),q(o,r,u),q(o,i,u),s=!0},p(o,u){const l={};u&16&&(l.sortedBy=o[4]),u&32&&(l.sortAscending=o[5]),n.$set(l)},i(o){s||(P(n.$$.fragment,o),s=!0)},o(o){V(n.$$.fragment,o),s=!1},d(o){o&&(j(e),j(r),j(i)),we(n)}}}function hr(t){let e,n;return e=new qr({props:{attrs:t[16].image_attrs,source:t[16].image_url}}),{c(){ke(e.$$.fragment)},m(r,i){ye(e,r,i),n=!0},p(r,i){const s={};i&1&&(s.attrs=r[16].image_attrs),i&1&&(s.source=r[16].image_url),e.$set(s)},i(r){n||(P(e.$$.fragment,r),n=!0)},o(r){V(e.$$.fragment,r),n=!1},d(r){we(e,r)}}}function Hs(t){let e,n=br(t[16].url)+"",r,i;return{c(){e=N("a"),r=X(n),C(e,"href",i="https://deploy-preview-36--ome-ngff-validator.netlify.app/?source="+t[16].url),C(e,"target","_blank")},m(s,o){q(s,e,o),g(e,r)},p(s,o){o&1&&n!==(n=br(s[16].url)+"")&&fe(r,n),o&1&&i!==(i="https://deploy-preview-36--ome-ngff-validator.netlify.app/?source="+s[16].url)&&C(e,"href",i)},d(s){s&&j(e)}}}function Gs(t){let e,n=t[16].csv.split("/").pop()+"",r,i,s=t[16].csv_row_count+"",o,u,l;return{c(){e=N("a"),r=X(n),i=X(" ("),o=X(s),u=X(")"),C(e,"href",l=window.location.origin+"?csv="+t[16].csv),C(e,"target","_blank")},m(c,h){q(c,e,h),g(e,r),g(e,i),g(e,o),g(e,u)},p(c,h){h&1&&n!==(n=c[16].csv.split("/").pop()+"")&&fe(r,n),h&1&&s!==(s=c[16].csv_row_count+"")&&fe(o,s),h&1&&l!==(l=window.location.origin+"?csv="+c[16].csv)&&C(e,"href",l)},d(c){c&&j(e)}}}function dr(t){let e,n=(t[16].source||"")+"",r;return{c(){e=N("td"),r=X(n),C(e,"class","svelte-53dfht")},m(i,s){q(i,e,s),g(e,r)},p(i,s){s&1&&n!==(n=(i[16].source||"")+"")&&fe(r,n)},d(i){i&&j(e)}}}function _r(t){let e,n=t[16].origin&&pr(t);return{c(){e=N("td"),n&&n.c(),C(e,"class","svelte-53dfht")},m(r,i){q(r,e,i),n&&n.m(e,null)},p(r,i){r[16].origin?n?n.p(r,i):(n=pr(r),n.c(),n.m(e,null)):n&&(n.d(1),n=null)},d(r){r&&j(e),n&&n.d()}}}function pr(t){let e,n,r=t[16].origin.slice(-10)+"",i,s;return{c(){e=N("a"),n=X("..."),i=X(r),C(e,"href",s=t[16].origin),C(e,"target","_blank")},m(o,u){q(o,e,u),g(e,n),g(e,i)},p(o,u){u&1&&r!==(r=o[16].origin.slice(-10)+"")&&fe(i,r),u&1&&s!==(s=o[16].origin)&&C(e,"href",s)},d(o){o&&j(e)}}}function mr(t){let e,n=(t[16].well_count||"")+"",r,i,s,o=(t[16].well_count?t[16].well_count*t[16].field_count:"")+"",u;return{c(){e=N("td"),r=X(n),i=J(),s=N("td"),u=X(o),C(e,"class","svelte-53dfht"),C(s,"class","svelte-53dfht")},m(l,c){q(l,e,c),g(e,r),q(l,i,c),q(l,s,c),g(s,u)},p(l,c){c&1&&n!==(n=(l[16].well_count||"")+"")&&fe(r,n),c&1&&o!==(o=(l[16].well_count?l[16].well_count*l[16].field_count:"")+"")&&fe(u,o)},d(l){l&&(j(e),j(i),j(s))}}}function gr(t){let e=(t[3][t[16].organism_id]||t[10](t[16].organism_id))+"",n;return{c(){n=X(e)},m(r,i){q(r,n,i)},p(r,i){i&9&&e!==(e=(r[3][r[16].organism_id]||r[10](r[16].organism_id))+"")&&fe(n,e)},d(r){r&&j(n)}}}function yr(t){let e=(t[3][t[16].fbbi_id]||t[11](t[16].fbbi_id))+"",n;return{c(){n=X(e)},m(r,i){q(r,n,i)},p(r,i){i&9&&e!==(e=(r[3][r[16].fbbi_id]||r[11](r[16].fbbi_id))+"")&&fe(n,e)},d(r){r&&j(n)}}}function wr(t,e){let n,r,i,s,o,u,l,c,h=(e[16].load_failed?"x":e[16].shape||"")+"",p,d,y,$=Gt(e[16].written)+"",M,k,b,w,E,K,U,B,S,f,a=e[16].image_attrs&&hr(e);function _(G,I){return G[16].csv_row_count&&G[16].csv?Gs:Hs}let R=_(e),T=R(e),L=e[2]&&dr(e),O=e[8]&&_r(e),W=e[7]&&mr(e),z=e[16].organism_id&&gr(e),v=e[16].fbbi_id&&yr(e);return{key:t,first:null,c(){n=N("tr"),r=N("td"),a&&a.c(),i=J(),s=N("td"),T.c(),o=J(),L&&L.c(),u=J(),O&&O.c(),l=J(),c=N("td"),p=X(h),d=J(),y=N("td"),M=X($),k=J(),W&&W.c(),b=J(),w=N("td"),z&&z.c(),K=J(),U=N("td"),v&&v.c(),S=J(),C(r,"class","svelte-53dfht"),C(s,"class","svelte-53dfht"),C(c,"class","svelte-53dfht"),C(y,"class","svelte-53dfht"),C(w,"title",E=e[16].organism_id||""),C(w,"class","svelte-53dfht"),C(U,"title",B=e[16].fbbi_id||""),C(U,"class","svelte-53dfht"),this.first=n},m(G,I){q(G,n,I),g(n,r),a&&a.m(r,null),g(n,i),g(n,s),T.m(s,null),g(n,o),L&&L.m(n,null),g(n,u),O&&O.m(n,null),g(n,l),g(n,c),g(c,p),g(n,d),g(n,y),g(y,M),g(n,k),W&&W.m(n,null),g(n,b),g(n,w),z&&z.m(w,null),g(n,K),g(n,U),v&&v.m(U,null),g(n,S),f=!0},p(G,I){e=G,e[16].image_attrs?a?(a.p(e,I),I&1&&P(a,1)):(a=hr(e),a.c(),P(a,1),a.m(r,null)):a&&(qe(),V(a,1,1,()=>{a=null}),He()),R===(R=_(e))&&T?T.p(e,I):(T.d(1),T=R(e),T&&(T.c(),T.m(s,null))),e[2]?L?L.p(e,I):(L=dr(e),L.c(),L.m(n,u)):L&&(L.d(1),L=null),e[8]?O?O.p(e,I):(O=_r(e),O.c(),O.m(n,l)):O&&(O.d(1),O=null),(!f||I&1)&&h!==(h=(e[16].load_failed?"x":e[16].shape||"")+"")&&fe(p,h),(!f||I&1)&&$!==($=Gt(e[16].written)+"")&&fe(M,$),e[7]?W?W.p(e,I):(W=mr(e),W.c(),W.m(n,b)):W&&(W.d(1),W=null),e[16].organism_id?z?z.p(e,I):(z=gr(e),z.c(),z.m(w,null)):z&&(z.d(1),z=null),(!f||I&1&&E!==(E=e[16].organism_id||""))&&C(w,"title",E),e[16].fbbi_id?v?v.p(e,I):(v=yr(e),v.c(),v.m(U,null)):v&&(v.d(1),v=null),(!f||I&1&&B!==(B=e[16].fbbi_id||""))&&C(U,"title",B)},i(G){f||(P(a),f=!0)},o(G){V(a),f=!1},d(G){G&&j(n),a&&a.d(),T.d(),L&&L.d(),O&&O.d(),W&&W.d(),z&&z.d(),v&&v.d()}}}function Ks(t){let e,n,r,i,s,o,u,l,c,h,p,d,y,$,M,k,b,w,E,K,U,B,S,f,a,_=t[0].length+"",R,T,L,O=t[0].reduce(vr,0)+"",W,z,v,G=Gt(t[0].reduce(t[13],0))+"",I,Me,ce,F,Z,_e,re,ge,oe,he,A,Y,se,ue,Q,ve,le,ne,Re,Se,Le,Ae,Ie,ie,ae,ze,x,We,Ne,pe=[],De=new Map,Ee;e=new je({}),n=new je({}),r=new je({}),i=new je({}),s=new je({}),u=new je({}),l=new je({}),c=new je({}),h=new je({}),p=new je({}),y=new Ws({}),w=new Ns({props:{csvUrl:t[1]}});function Be(m,D){return m[6]?qs:Js}let Ce=Be(t),Fe=Ce(t);Q=new Yt({props:{col_label:"Url",col_name:"url",handleSort:t[12],sortedBy:t[4],sortAscending:t[5]}});let te=t[2]&&ur(t),Te=t[8]&&fr();Ae=new Yt({props:{col_label:"Data size",col_name:"written",handleSort:t[12],sortedBy:t[4],sortAscending:t[5]}});let de=t[7]&&cr(t),_t=Ht(t[0]);const On=m=>m[16].url;for(let m=0;m<_t.length;m+=1){let D=ar(t,_t,m),Pe=On(D);De.set(Pe,pe[m]=wr(Pe,D))}return{c(){ke(e.$$.fragment),ke(n.$$.fragment),ke(r.$$.fragment),ke(i.$$.fragment),ke(s.$$.fragment),o=J(),ke(u.$$.fragment),ke(l.$$.fragment),ke(c.$$.fragment),ke(h.$$.fragment),ke(p.$$.fragment),d=J(),ke(y.$$.fragment),$=J(),M=N("main"),k=N("h1"),k.textContent="OME 2024 NGFF Challenge",b=J(),ke(w.$$.fragment),E=J(),K=N("div"),U=N("table"),B=N("tr"),B.innerHTML='Zarr Samples (URLs) Images Bytes written Organisms',S=J(),f=N("tr"),a=N("td"),R=X(_),T=J(),L=N("td"),W=X(O),z=J(),v=N("td"),I=X(G),Me=J(),ce=N("td"),Fe.c(),F=J(),Z=N("progress"),ge=J(),oe=N("table"),he=N("thead"),A=N("tr"),Y=N("th"),Y.textContent="Thumb",se=J(),ue=N("th"),ke(Q.$$.fragment),ve=J(),te&&te.c(),le=J(),Te&&Te.c(),ne=J(),Re=N("th"),Re.textContent="Shape",Se=J(),Le=N("th"),ke(Ae.$$.fragment),Ie=J(),de&&de.c(),ie=J(),ae=N("th"),ae.textContent="Organism",ze=J(),x=N("th"),x.textContent="Imaging",We=J(),Ne=N("tbody");for(let m=0;m{te=null}),He()),m[8]?Te||(Te=fr(),Te.c(),Te.m(A,ne)):Te&&(Te.d(1),Te=null);const Zt={};D&16&&(Zt.sortedBy=m[4]),D&32&&(Zt.sortAscending=m[5]),Ae.$set(Zt),m[7]?de?(de.p(m,D),D&128&&P(de,1)):(de=cr(m),de.c(),P(de,1),de.m(A,ie)):de&&(qe(),V(de,1,1,()=>{de=null}),He()),D&3469&&(_t=Ht(m[0]),qe(),pe=Mr(pe,D,On,1,m,_t,De,Ne,Fr,wr,null,ar),He())},i(m){if(!Ee){P(e.$$.fragment,m),P(n.$$.fragment,m),P(r.$$.fragment,m),P(i.$$.fragment,m),P(s.$$.fragment,m),P(u.$$.fragment,m),P(l.$$.fragment,m),P(c.$$.fragment,m),P(h.$$.fragment,m),P(p.$$.fragment,m),P(y.$$.fragment,m),P(w.$$.fragment,m),P(Q.$$.fragment,m),P(te),P(Ae.$$.fragment,m),P(de);for(let D=0;D<_t.length;D+=1)P(pe[D]);Ee=!0}},o(m){V(e.$$.fragment,m),V(n.$$.fragment,m),V(r.$$.fragment,m),V(i.$$.fragment,m),V(s.$$.fragment,m),V(u.$$.fragment,m),V(l.$$.fragment,m),V(c.$$.fragment,m),V(h.$$.fragment,m),V(p.$$.fragment,m),V(y.$$.fragment,m),V(w.$$.fragment,m),V(Q.$$.fragment,m),V(te),V(Ae.$$.fragment,m),V(de);for(let D=0;D50&&(e=e.slice(0,20)+"..."+e.slice(-20)),e}const vr=(t,e)=>t+(e.well_count?e.well_count*e.field_count:1),kr=t=>t.loaded;function Vs(t,e,n){let r,i,s,u=new URLSearchParams(window.location.search).get("csv");try{new URL(u)}catch{console.error("Invalid csv URL",u),u=et}let l=[],c=!1,h={},p={};Xe.subscribe(E=>{n(0,l=E)}),u&&gn(u,Xe);function d(){Xe.loadRocrateJsonAllRows()}function y(E){return console.log("loadOrganism",E),E?h[E]?h[E]:(n(3,h[E]=E,h),vi(E).then(K=>{n(3,h={...h,[E]:K})}),E):""}function $(E){return E?p[E]?p[E]:(p[E]=E,ki(E).then(K=>{p={...p,[E]:K}}),E):""}let M="",k=!0;function b(E){console.log("handleSort",E,"sortedBy",M),M===E?n(5,k=!k):n(5,k=!0),n(4,M=E),Xe.sortTable(E,k)}const w=(E,K)=>E+parseInt(K.written)||0;return t.$$.update=()=>{t.$$.dirty&1&&n(2,c=l.some(E=>E.source)),t.$$.dirty&1&&n(8,r=l.some(E=>E.origin)),t.$$.dirty&1&&n(7,i=l.some(E=>E.well_count)),t.$$.dirty&1&&n(6,s=!l.some(E=>E.rocrate_loaded))},[l,u,c,h,M,k,s,i,r,d,y,$,b,w]}class Ys extends st{constructor(e){super(),it(this,e,Vs,Ks,Ye,{})}}new Ys({target:document.getElementById("app")}); diff --git a/assets/index-Dvv3olol.css b/assets/index-Dvv3olol.css deleted file mode 100644 index a64418c..0000000 --- a/assets/index-Dvv3olol.css +++ /dev/null @@ -1 +0,0 @@ -:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#545cf2}body{--bg-opacity: .5}@media (prefers-color-scheme: dark){body{--bg-opacity: 0}}body{margin:0;min-width:320px;min-height:100vh;width:100%;height:100%;background-image:linear-gradient(180deg,rgba(255,255,255,var(--bg-opacity)),#fff0),repeating-linear-gradient(180deg,rgb(255,149,0,.3) 0px,rgb(255,149,0,.3) 1px,transparent 1px,transparent 100px),repeating-linear-gradient(90deg,rgb(255,149,0,.3) 0px,rgb(255,149,0,.3) 1px,transparent 1px,transparent 100px),repeating-linear-gradient(180deg,rgba(70,70,70,.1) 0px,rgba(70,70,70,.1) 1px,transparent 1px,transparent 20px),repeating-linear-gradient(90deg,rgba(70,70,70,.1) 0px,rgba(70,70,70,.1) 1px,transparent 1px,transparent 20px)}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;font-weight:300}h1{font-size:3.2em;line-height:1.1}.card{padding:2em}main{max-width:1280px;margin:0 auto;position:relative;z-index:10}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.home.svelte-c69c1m.svelte-c69c1m{display:inline-block;background-color:#f1bc0d;border-radius:10px;padding:5px 10px;color:#000}.gallery.svelte-c69c1m.svelte-c69c1m{position:relative;z-index:10;display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:5px}.item.svelte-c69c1m.svelte-c69c1m{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100px;border:1px solid #ccc;padding:5px;border-radius:5px;background-color:#fff;color:#000;-webkit-box-shadow:7px 6px 20px -8px rgba(115,115,115,1);-moz-box-shadow:7px 6px 20px -8px rgba(115,115,115,1);box-shadow:7px 6px 20px -8px #737373}.source_icon.svelte-c69c1m.svelte-c69c1m{width:24px;height:24px;margin:2px;position:absolute;background-color:#fff;padding:2px;border-radius:3px;top:6px;left:6px}.source.svelte-c69c1m.svelte-c69c1m{color:#666}.hoverInfo.svelte-c69c1m.svelte-c69c1m{display:none;position:absolute;bottom:0;left:0;right:0;background-color:#000c;color:#fff;font-size:.8em;justify-content:center;align-items:center;padding:5px;width:fit-content;z-index:999;border-radius:5px}.item.svelte-c69c1m:hover .hoverInfo.svelte-c69c1m{display:block}p.svelte-c69c1m.svelte-c69c1m{padding:10px;background-color:#fff;border:lightgrey 1px solid;border-radius:10px}@media (prefers-color-scheme: dark){p.svelte-c69c1m.svelte-c69c1m{background-color:#333;border:solid #666 1px}}.pixel.svelte-4hpgyt{height:20px;width:20px;background-color:#e3e3e3;position:absolute;z-index:0}@media (prefers-color-scheme: dark){.pixel.svelte-4hpgyt{background-color:#554545}}button.svelte-g3ba97{background-color:transparent;border:none;text-wrap:none;white-space:nowrap;position:relative;padding-right:20px;padding-left:5px;outline:none}button.svelte-g3ba97:focus-visible{outline:4px solid gold}span.svelte-g3ba97{color:#d3d3d3;display:inline-block;position:absolute;right:5px;top:50%;margin-top:-10px}.strong.svelte-g3ba97{font-weight:700;color:#000}.acc.svelte-g3ba97{transform:rotate(180deg);margin-top:-5px}nav.svelte-1v9ay5y{position:relative;display:flex;flex-direction:row;margin:0;padding:5px 15px;background-color:#202428;z-index:10;align-items:center}h2.svelte-1v9ay5y{color:#fff;font-weight:300;margin:5px 15px}ul.svelte-1v9ay5y{list-style:none;color:#fff;position:absolute;right:0;top:0;margin:10px 15px}li.svelte-1v9ay5y{float:right;list-style-type:none;margin:0 10px}a.svelte-1v9ay5y{color:#fff;text-decoration:none;line-height:2.3}.title.svelte-53dfht{z-index:10;position:relative;margin-bottom:10px}.summary.svelte-53dfht{margin-bottom:2em}table.svelte-53dfht{border-collapse:collapse;width:100%;background-color:#fff;position:relative;z-index:10;-webkit-box-shadow:7px 6px 20px -8px rgba(115,115,115,1);-moz-box-shadow:7px 6px 20px -8px rgba(115,115,115,1);box-shadow:7px 6px 20px -8px #737373}@media (prefers-color-scheme: dark){table.svelte-53dfht{background-color:#333}}td.svelte-53dfht,th.svelte-53dfht{border:lightgrey 1px solid;padding:.5em;text-align:center}progress.svelte-53dfht{width:100%}.stats.svelte-53dfht{font-size:48px}.loadrocrate.svelte-53dfht{font-size:12px;background-color:#f0f8ff;border-radius:5px;border-color:coral;vertical-align:middle;margin-bottom:7px;color:#222} diff --git a/favicon-16x16.png b/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..d894595a9a13bf5649835ca6ce2a80070e421393 GIT binary patch literal 753 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>32_C|GG6UMZJAQx zjUtu#vR>`?G#u`0*x%Ezm+d_(>(wR`F-^99A5aZM8Biq}Th^^puqz!+9B2X%J1!ru=CT=||85(}dB~vQgjrX4HDAzm+k$nAlZ&j*i!Z+W`6X-YZL>}{hE2Ea8%}&O z|1@!u$?10rt`)55p}P8Ab0)k`?qB}GYNBuR!a1v^I!$qY5<7oM=+tk&x!Ep>T)QT) zX+O}dswJ)wB`Jv|saDBFsX&Us$iT=@*U(7U&^*M@z{=Rr%Gg-jz`)ADK&9X>Fg+k? z$jwj5OsmALAyn7Z0;nOpDkP#LD6w3jpeR2rGbdG{q_QAYA+w+)nSr5V&f`x!9ED*T z8mIhEpYePe#K5e~t(VL#tSsz3S%g_w!KK0Ea0;{X<`9L`H?EvGa^{H45%$v!9t*tm Z7+#4BmV9zDoeH#q!PC{xWt~$(69Djs0g(Uz literal 0 HcmV?d00001 diff --git a/github-mark-white.svg b/github-mark-white.svg new file mode 100644 index 0000000..c679c23 --- /dev/null +++ b/github-mark-white.svg @@ -0,0 +1 @@ + diff --git a/index.html b/index.html index 2deb66f..8a72ac9 100644 --- a/index.html +++ b/index.html @@ -1,11 +1,12 @@ + ome2024-ngff-challenge - - + + diff --git a/nfdi4bioimage.png b/nfdi4bioimage.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe7bd82116352610150263480aa800f7809b7e5 GIT binary patch literal 23796 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 Jg_2e1{{Tp3gq#2X literal 0 HcmV?d00001 diff --git a/ome-logomark.svg b/ome-logomark.svg new file mode 100644 index 0000000..d5e15a9 --- /dev/null +++ b/ome-logomark.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + diff --git a/selectCaret.svg b/selectCaret.svg new file mode 100644 index 0000000..99c59f5 --- /dev/null +++ b/selectCaret.svg @@ -0,0 +1 @@ + diff --git a/vizarr_logo.png b/vizarr_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2d07b8cfce868d0ebc0a8dc4c293c3e01d38c85f GIT binary patch literal 5822 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 w@uI5|VC{Jsn0c1We(