gensplore 0.0.16 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gensplore.cjs +1 -1
- package/dist/gensplore.js +1 -1
- package/package.json +1 -1
package/dist/gensplore.cjs
CHANGED
|
@@ -6,7 +6,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
6
6
|
font-size: .6rem;
|
|
7
7
|
font-weight: bold;
|
|
8
8
|
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return o.updateDeps=e=>{r=e},o}function Ze(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var Qe=(e,t)=>Math.abs(e-t)<1.01,$e=(e,t,n)=>{let r;return Object.assign(function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)},{cancel:()=>{e.clearTimeout(r)}})},et,tt=()=>{if(et!==void 0)return et;if(typeof navigator>`u`)return et=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return et=!0;let e=navigator.maxTouchPoints;return et=navigator.platform===`MacIntel`&&e!==void 0&&e>0},nt=e=>e,rt=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},it={passive:!0},at=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=()=>{t({width:n.innerWidth,height:n.innerHeight})};return r(),n.addEventListener(`resize`,r,it),()=>{n.removeEventListener(`resize`,r)}},ot=typeof window>`u`||`onscrollend`in window,st=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&ot,o=0,s=a?null:$e(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,it),a&&r.addEventListener(`scrollend`,u,it),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u),s?.cancel()}},ct=(e,t)=>st(e,t,t=>e.options.horizontal?t.scrollX:t.scrollY),lt=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},ut=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},dt=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this._clampedAdjustment=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.isIndexInRange(n)&&this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:nt,rangeExtractor:rt,onChange:()=>{},measureElement:lt,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=Math.max(0,e.start+t);n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=Xe(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:process.env.NODE_ENV!==`production`&&`maybeNotify`,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.isScrolling=!1,this.scrollDirection=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._clampedAdjustment=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.targetWindow=this.scrollElement&&`ownerDocument`in this.scrollElement?this.scrollElement.ownerDocument.defaultView:this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this._clampedAdjustment!==null&&Math.abs(e-this._clampedAdjustment.maxAtWrite)>=1.5&&(this._clampedAdjustment=null),this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,tt()&&this.targetWindow!=null&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,it),e.addEventListener(`touchend`,n,it),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(tt()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}this._retryClampedAdjustment()},this._retryClampedAdjustment=()=>{if(this._clampedAdjustment===null||!this.scrollElement||!this.options.enabled)return;let{target:e,maxAtWrite:t}=this._clampedAdjustment,n=this.getMaxScrollOffset();n>t+.5&&(this._clampedAdjustment=e>n+.5?{target:e,maxAtWrite:n}:null,this._scrollToOffset(e,{adjustments:void 0,behavior:void 0}))},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;if(this._iosDeferredAdjustment<0&&e>=t-1){this._iosDeferredAdjustment=0;return}let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=Xe(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.isIndexInRange=e=>e>=0&&e<this.options.count,this.getMeasurements=Xe(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let l=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._flatMeasurements;if(!a||a.length<i){let e=new Float64Array(i);a&&u>0&&e.set(a.subarray(0,u*2)),a=e,this._flatMeasurements=a}let o;if(u===0)o=t+n;else{let e=u-1;o=a[e*2]+a[e*2+1]+s}for(let t=u;t<e;t++){let e=r(t),n=l.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=o,a[t*2+1]=i,o+=i+s}let c=Ye(e,a,r);return this.measurementsCache=c,c}let d=this.measurementsCache.slice(0,u),f=Array(a).fill(void 0),p=new Float64Array(a),m=0;for(let e=0;e<u;e++){let t=d[e];t&&(f[t.lane]===void 0&&m++,f[t.lane]=e,p[t.lane]=t.end)}for(let i=u;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),u,h,g=o===`estimate`||l.has(e);if(c!==void 0&&this.options.lanes>1){u=c;let e=f[u],r=e===void 0?void 0:d[e];h=r?r.end+s:t+n}else if(m===a){let e=0,t=p[0],n=f[0];for(let r=1;r<a;r++){let i=p[r];(i<t||i===t&&f[r]<n)&&(e=r,t=i,n=f[r])}u=e,h=t+s,g&&this.laneAssignments.set(i,u)}else u=i%this.options.lanes,h=t+n,g&&this.laneAssignments.set(i,u);let _=l.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=h+v;d[i]={index:i,start:h,size:v,end:y,key:e,lane:u},f[u]===void 0&&m++,f[u]=i,p[u]=y}return this.measurementsCache=d,d},{key:process.env.NODE_ENV!==`production`&&`getMeasurements`,debug:()=>this.options.debug}),this.calculateRange=Xe(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=mt(e,t,n,r,r===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:process.env.NODE_ENV!==`production`&&`calculateRange`,debug:()=>this.options.debug}),this.getVirtualIndexes=Xe(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:process.env.NODE_ENV!==`production`&&`getVirtualIndexes`,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e);if(!this.isIndexInRange(t))return;let n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(!this.isIndexInRange(e))return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=this.itemSizeCache.get(i)??n,s=t-o;if(s!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,c=a?this.getTotalSize():0,l=this.getScrollOffset()+this.scrollAdjustments,u=this.itemSizeCache.has(i)?r+o<=l&&this.scrollDirection!==`backward`:r<l,d=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?u:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},s,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++;let f=!1;a?f=this.applyScrollAdjustment(this.getTotalSize()-c):d&&(f=this.applyScrollAdjustment(s)),this.notify(f),this._retryClampedAdjustment()}},this.getVirtualItems=Xe(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:process.env.NODE_ENV!==`production`&&`getVirtualItems`,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return Ze(t[ft(0,t.length-1,r?e=>n[e*2]:e=>Ze(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`){if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t]}if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0;let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0,e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){if(e===0)return!1;if(process.env.NODE_ENV!==`production`&&this.options.debug&&console.info(`correction`,e),tt()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded))return this._iosDeferredAdjustment+=e,!1;{let n=this.getScrollOffset()+this.scrollAdjustments+e,r=this.scrollElement,i=r!==null&&(`scrollHeight`in r||`document`in r)?this.getMaxScrollOffset():null;return this._clampedAdjustment=i!==null&&n>i+.5?{target:n,maxAtWrite:i}:null,this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0}}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&Qe(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},ft=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function pt(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function mt(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=pt(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=ft(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var ht=typeof document<`u`?u.useLayoutEffect:u.useEffect;function gt({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=u.useReducer(e=>e+1,0)[1],a=u.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}},s=e=>{let t=a.current;if(!t.enabled||!t.container)return;o(e);let n=!!e.options.horizontal,r=t.mode===`transform`,i=n?`left`:`top`,s=e.options.scrollMargin,c=e.getVirtualItems();for(let a of c){let o=a.start-s,c=e.elementsCache.get(a.key);c&&t.lastPositions.get(c)!==o&&(t.lastPositions.set(c,o),r?c.style.transform=n?`translate3d(${o}px, 0, 0)`:`translate3d(0, ${o}px, 0)`:c.style[i]=`${o}px`)}},c={...r,onChange:(t,n)=>{var o;let c=a.current,l=!0;if(c.enabled){s(t);let e=t.range,n=c.prevRange;l=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,l&&(c.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}l&&(e&&n?(0,f.flushSync)(i):i()),(o=r.onChange)==null||o.call(r,t,n)}},[l]=u.useState(()=>{let e=new dt(c);return Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return l.setOptions(c),ht(()=>l._didMount(),[]),ht(()=>(o(l),l._willUpdate())),ht(()=>{s(l)}),l}function _t(e){return gt({getScrollElement:()=>typeof document<`u`?window:null,observeElementRect:at,observeElementOffset:ct,scrollToFn:ut,initialOffset:()=>typeof document<`u`?window.scrollY:0,...e})}var vt=class extends Map{constructor(e){super(),this.factory=e}get(e){let t=super.get(e);return t===void 0&&(t=this.factory(e),this.set(e,t)),t}},yt=Object.defineProperty,bt=(e,t,n)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,xt=(e,t,n)=>(bt(e,typeof t==`symbol`?t:t+``,n),n),St=(e,t,n)=>{if(!t.has(e))throw TypeError(`Cannot `+n)},Ct=(e,t,n)=>(St(e,t,`read from private field`),n?n.call(e):t.get(e)),wt=(e,t,n)=>{if(t.has(e))throw TypeError(`Cannot add the same private member more than once`);t instanceof WeakSet?t.add(e):t.set(e,n)},Tt=(e,t,n,r)=>(St(e,t,`write to private field`),r?r.call(e,n):t.set(e,n),n),Et,Dt,Ot,kt=class{constructor(e){wt(this,Et,{}),wt(this,Dt,new vt(()=>new Set)),wt(this,Ot,new Set),xt(this,`disposables`,ie()),Tt(this,Et,e),R.isServer&&this.disposables.microTask(()=>{this.dispose()})}dispose(){this.disposables.dispose()}get state(){return Ct(this,Et)}subscribe(e,t){if(R.isServer)return()=>{};let n={selector:e,callback:t,current:e(Ct(this,Et))};return Ct(this,Ot).add(n),this.disposables.add(()=>{Ct(this,Ot).delete(n)})}on(e,t){return R.isServer?()=>{}:(Ct(this,Dt).get(e).add(t),this.disposables.add(()=>{Ct(this,Dt).get(e).delete(t)}))}send(e){let t=this.reduce(Ct(this,Et),e);if(t!==Ct(this,Et)){Tt(this,Et,t);for(let e of Ct(this,Ot)){let t=e.selector(Ct(this,Et));At(e.current,t)||(e.current=t,e.callback(t))}for(let t of Ct(this,Dt).get(e.type))t(Ct(this,Et),e)}}};Et=new WeakMap,Dt=new WeakMap,Ot=new WeakMap;function At(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t?!1:Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&jt(e[Symbol.iterator](),t[Symbol.iterator]()):e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set?e.size===t.size&&jt(e.entries(),t.entries()):Mt(e)&&Mt(t)?jt(Object.entries(e)[Symbol.iterator](),Object.entries(t)[Symbol.iterator]()):!1}function jt(e,t){do{let n=e.next(),r=t.next();if(n.done&&r.done)return!0;if(n.done||r.done||!Object.is(n.value,r.value))return!1}while(1)}function Mt(e){if(Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||Object.getPrototypeOf(t)===null}var Nt=Object.defineProperty,Pt=(e,t,n)=>t in e?Nt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ft=(e,t,n)=>(Pt(e,typeof t==`symbol`?t:t+``,n),n),It=(e=>(e[e.Push=0]=`Push`,e[e.Pop=1]=`Pop`,e))(It||{}),Lt={0(e,t){let n=t.id,r=e.stack,i=e.stack.indexOf(n);if(i!==-1){let t=e.stack.slice();return t.splice(i,1),t.push(n),r=t,{...e,stack:r}}return{...e,stack:[...e.stack,n]}},1(e,t){let n=t.id,r=e.stack.indexOf(n);if(r===-1)return e;let i=e.stack.slice();return i.splice(r,1),{...e,stack:i}}},Rt=class e extends kt{constructor(){super(...arguments),Ft(this,`actions`,{push:e=>this.send({type:0,id:e}),pop:e=>this.send({type:1,id:e})}),Ft(this,`selectors`,{isTop:(e,t)=>e.stack[e.stack.length-1]===t,inStack:(e,t)=>e.stack.includes(t)})}static new(){return new e({stack:[]})}reduce(e,t){return V(t.type,Lt,e,t)}},zt=new vt(()=>Rt.new()),Bt=o((e=>{var t=require("react");function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useSyncExternalStore,a=t.useRef,o=t.useEffect,s=t.useMemo,c=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,l,u){var d=a(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=s(function(){function e(e){if(!i){if(i=!0,a=e,e=l(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return o=t}return o=e}if(t=o,r(a,e))return t;var n=l(e);return u!==void 0&&u(t,n)?(a=e,t):(a=e,o=n)}var i=!1,a,o,s=n===void 0?null:n;return[function(){return e(t())},s===null?void 0:function(){return e(s())}]},[t,n,l,u]);var p=i(e,d[0],d[1]);return o(function(){f.hasValue=!0,f.value=p},[p]),c(p),p}})),Vt=o((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=require("react"),r=typeof Object.is==`function`?Object.is:t,i=n.useSyncExternalStore,a=n.useRef,o=n.useEffect,s=n.useMemo,c=n.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,l,u){var d=a(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=s(function(){function e(e){if(!i){if(i=!0,a=e,e=l(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return o=t}return o=e}if(t=o,r(a,e))return t;var n=l(e);return u!==void 0&&u(t,n)?(a=e,t):(a=e,o=n)}var i=!1,a,o,s=n===void 0?null:n;return[function(){return e(t())},s===null?void 0:function(){return e(s())}]},[t,n,l,u]);var p=i(e,d[0],d[1]);return o(function(){f.hasValue=!0,f.value=p},[p]),c(p),p},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),Ht=o(((e,t)=>{t.exports=process.env.NODE_ENV===`production`?Bt():Vt()}))();function Ut(e,t,n=At){return(0,Ht.useSyncExternalStoreWithSelector)(B(t=>e.subscribe(Wt,t)),B(()=>e.state),B(()=>e.state),B(t),n)}function Wt(e){return e}function Gt(e,t){let n=(0,u.useId)(),r=zt.get(t),[i,a]=Ut(r,(0,u.useCallback)(e=>[r.selectors.isTop(e,n),r.selectors.inStack(e,n)],[r,n]));return oe(()=>{if(e)return r.actions.push(n),()=>r.actions.pop(n)},[r,e,n]),e?!a||i:!1}var Kt=new Map,qt=new Map;function Jt(e){let t=qt.get(e)??0;return qt.set(e,t+1),t===0?(Kt.set(e,{"aria-hidden":e.getAttribute(`aria-hidden`),inert:e.inert}),e.setAttribute(`aria-hidden`,`true`),e.inert=!0,()=>Yt(e)):()=>Yt(e)}function Yt(e){let t=qt.get(e)??1;if(t===1?qt.delete(e):qt.set(e,t-1),t!==1)return;let n=Kt.get(e);n&&(n[`aria-hidden`]===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n[`aria-hidden`]),e.inert=n.inert,Kt.delete(e))}function Xt(e,{allowed:t,disallowed:n}={}){let r=Gt(e,`inert-others`);oe(()=>{if(!r)return;let e=ie();for(let t of n?.()??[])t&&e.add(Jt(t));let i=t?.()??[];for(let t of i){if(!t)continue;let n=z(t);if(!n)continue;let r=t.parentElement;for(;r&&r!==n.body;){for(let t of r.children)i.some(e=>t.contains(e))||e.add(Jt(t));r=r.parentElement}}return e.dispose},[r,t,n])}function Zt(e,t,n){let r=se(e=>{let t=e.getBoundingClientRect();t.x===0&&t.y===0&&t.width===0&&t.height===0&&n()});(0,u.useEffect)(()=>{if(!e)return;let n=t===null?null:Me(t)?t:t.current;if(!n)return;let i=ie();if(typeof ResizeObserver<`u`){let e=new ResizeObserver(()=>r.current(n));e.observe(n),i.add(()=>e.disconnect())}if(typeof IntersectionObserver<`u`){let e=new IntersectionObserver(()=>r.current(n));e.observe(n),i.add(()=>e.disconnect())}return()=>i.dispose()},[t,r,e])}var Qt=[`[contentEditable=true]`,`[tabindex]`,`a[href]`,`area[href]`,`button:not([disabled])`,`iframe`,`input:not([disabled])`,`select:not([disabled])`,`details>summary`,`textarea:not([disabled])`].map(e=>`${e}:not([tabindex='-1'])`).join(`,`),$t=[`[data-autofocus]`].map(e=>`${e}:not([tabindex='-1'])`).join(`,`),en=(e=>(e[e.First=1]=`First`,e[e.Previous=2]=`Previous`,e[e.Next=4]=`Next`,e[e.Last=8]=`Last`,e[e.WrapAround=16]=`WrapAround`,e[e.NoScroll=32]=`NoScroll`,e[e.AutoFocus=64]=`AutoFocus`,e))(en||{}),tn=(e=>(e[e.Error=0]=`Error`,e[e.Overflow=1]=`Overflow`,e[e.Success=2]=`Success`,e[e.Underflow=3]=`Underflow`,e))(tn||{}),nn=(e=>(e[e.Previous=-1]=`Previous`,e[e.Next=1]=`Next`,e))(nn||{});function rn(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Qt)).sort((e,t)=>Math.sign((e.tabIndex||2**53-1)-(t.tabIndex||2**53-1)))}function an(e=document.body){return e==null?[]:Array.from(e.querySelectorAll($t)).sort((e,t)=>Math.sign((e.tabIndex||2**53-1)-(t.tabIndex||2**53-1)))}var on=(e=>(e[e.Strict=0]=`Strict`,e[e.Loose=1]=`Loose`,e))(on||{});function sn(e,t=0){return e!==z(e)?.body&&V(t,{0(){return e.matches(Qt)},1(){let t=e;for(;t!==null;){if(t.matches(Qt))return!0;t=t.parentElement}return!1}})}var cn=(e=>(e[e.Keyboard=0]=`Keyboard`,e[e.Mouse=1]=`Mouse`,e))(cn||{});typeof window<`u`&&typeof document<`u`&&(document.addEventListener(`keydown`,e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=``)},!0),document.addEventListener(`click`,e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=``)},!0));function ln(e){e?.focus({preventScroll:!0})}var un=[`textarea`,`input`].join(`,`);function dn(e){return(e?.matches)?.call(e,un)??!1}function fn(e,t=e=>e){return e.slice().sort((e,n)=>{let r=t(e),i=t(n);if(r===null||i===null)return 0;let a=r.compareDocumentPosition(i);return a&Node.DOCUMENT_POSITION_FOLLOWING?-1:a&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function pn(e,t,{sorted:n=!0,relativeTo:r=null,skipElements:i=[]}={}){let a=Array.isArray(e)?e.length>0?ee(e[0]):document:ee(e),o=Array.isArray(e)?n?fn(e):e:t&64?an(e):rn(e);i.length>0&&o.length>1&&(o=o.filter(e=>!i.some(t=>t!=null&&`current`in t?t?.current===e:t===e))),r??=a?.activeElement;let s=(()=>{if(t&5)return 1;if(t&10)return-1;throw Error(`Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last`)})(),c=(()=>{if(t&1)return 0;if(t&2)return Math.max(0,o.indexOf(r))-1;if(t&4)return Math.max(0,o.indexOf(r))+1;if(t&8)return o.length-1;throw Error(`Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last`)})(),l=t&32?{preventScroll:!0}:{},u=0,d=o.length,f;do{if(u>=d||u+d<=0)return 0;let e=c+u;if(t&16)e=(e+d)%d;else{if(e<0)return 3;if(e>=d)return 1}f=o[e],f?.focus(l),u+=s}while(f!==te(f));return t&6&&dn(f)&&f.select(),2}function mn(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function hn(){return/Android/gi.test(window.navigator.userAgent)}function gn(){return mn()||hn()}function _n(e,t,n,r){let i=se(n);(0,u.useEffect)(()=>{if(!e)return;function n(e){i.current(e)}return document.addEventListener(t,n,r),()=>document.removeEventListener(t,n,r)},[e,t,r])}function vn(e,t,n,r){let i=se(n);(0,u.useEffect)(()=>{if(!e)return;function n(e){i.current(e)}return window.addEventListener(t,n,r),()=>window.removeEventListener(t,n,r)},[e,t,r])}var yn=30;function bn(e,t,n){let r=se(n),i=(0,u.useCallback)(function(e,n){if(e.defaultPrevented)return;let i=n(e);if(i===null||!i.getRootNode().contains(i)||!i.isConnected)return;let a=function e(t){return typeof t==`function`?e(t()):Array.isArray(t)||t instanceof Set?t:[t]}(t);for(let t of a)if(t!==null&&(t.contains(i)||e.composed&&e.composedPath().includes(t)))return;return!sn(i,on.Loose)&&i.tabIndex!==-1&&e.preventDefault(),r.current(e,i)},[r,t]),a=(0,u.useRef)(null);_n(e,`pointerdown`,e=>{gn()||(a.current=e.composedPath?.call(e)?.[0]||e.target)},!0),_n(e,`pointerup`,e=>{if(gn()||!a.current)return;let t=a.current;return a.current=null,i(e,()=>t)},!0);let o=(0,u.useRef)({x:0,y:0});_n(e,`touchstart`,e=>{o.current.x=e.touches[0].clientX,o.current.y=e.touches[0].clientY},!0),_n(e,`touchend`,e=>{let t={x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY};if(!(Math.abs(t.x-o.current.x)>=yn||Math.abs(t.y-o.current.y)>=yn))return i(e,()=>U(e.target)?e.target:null)},!0),vn(e,`blur`,e=>i(e,()=>Pe(window.document.activeElement)?window.document.activeElement:null),!0)}function xn(...e){return(0,u.useMemo)(()=>z(...e),[...e])}function Sn(e,t,n,r){let i=se(n);(0,u.useEffect)(()=>{e??=window;function n(e){i.current(e)}return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)},[e,t,r])}function Cn(e){return(0,u.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getSnapshot)}function wn(e,t){let n=e(),r=new Set;return{getSnapshot(){return n},subscribe(e){return r.add(e),()=>r.delete(e)},dispatch(e,...i){let a=t[e].call(n,...i);a&&(n=a,r.forEach(e=>e()))}}}function Tn(){let e;return{before({doc:t}){let n=t.documentElement,r=t.defaultView??window;e=Math.max(0,r.innerWidth-n.clientWidth)},after({doc:t,d:n}){let r=t.documentElement,i=Math.max(0,r.clientWidth-r.offsetWidth),a=Math.max(0,e-i);n.style(r,`paddingRight`,`${a}px`)}}}function En(){return mn()?{before({doc:e,d:t,meta:n}){function r(e){for(let t of n().containers)for(let n of t())if(n.contains(e))return!0;return!1}t.microTask(()=>{if(window.getComputedStyle(e.documentElement).scrollBehavior!==`auto`){let n=ie();n.style(e.documentElement,`scrollBehavior`,`auto`),t.add(()=>t.microTask(()=>n.dispose()))}let n=window.scrollY??window.pageYOffset,i=null;t.addEventListener(e,`click`,t=>{if(U(t.target))try{let n=t.target.closest(`a`);if(!n)return;let{hash:a}=new URL(n.href),o=e.querySelector(a);U(o)&&!r(o)&&(i=o)}catch{}},!0),t.group(n=>{t.addEventListener(e,`touchstart`,e=>{if(n.dispose(),U(e.target)&&Ne(e.target)){if(r(e.target)){let t=e.target;for(;t.parentElement&&r(t.parentElement);)t=t.parentElement;n.style(t,`overscrollBehavior`,`contain`)}else n.style(e.target,`touchAction`,`none`)}})}),t.addEventListener(e,`touchmove`,e=>{if(U(e.target)){if(Fe(e.target))return;if(r(e.target)){let t=e.target;for(;t.parentElement&&t.dataset.headlessuiPortal!==``&&!(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth);)t=t.parentElement;t.dataset.headlessuiPortal===``&&e.preventDefault()}else e.preventDefault()}},{passive:!1}),t.add(()=>{let e=window.scrollY??window.pageYOffset;n!==e&&window.scrollTo(0,n),i&&i.isConnected&&(i.scrollIntoView({block:`nearest`}),i=null)})})}}:{}}function Dn(){return{before({doc:e,d:t}){t.style(e.documentElement,`overflow`,`hidden`)}}}function On(e){let t={};for(let n of e)Object.assign(t,n(t));return t}var kn=wn(()=>new Map,{PUSH(e,t){let n=this.get(e)??{doc:e,count:0,d:ie(),meta:new Set,computedMeta:{}};return n.count++,n.meta.add(t),n.computedMeta=On(n.meta),this.set(e,n),this},POP(e,t){let n=this.get(e);return n&&(n.count--,n.meta.delete(t),n.computedMeta=On(n.meta)),this},SCROLL_PREVENT(e){let t={doc:e.doc,d:e.d,meta(){return e.computedMeta}},n=[En(),Tn(),Dn()];n.forEach(({before:e})=>e?.(t)),n.forEach(({after:e})=>e?.(t))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});kn.subscribe(()=>{let e=kn.getSnapshot(),t=new Map;for(let[n]of e)t.set(n,n.documentElement.style.overflow);for(let n of e.values()){let e=t.get(n.doc)===`hidden`,r=n.count!==0;(r&&!e||!r&&e)&&kn.dispatch(n.count>0?`SCROLL_PREVENT`:`SCROLL_ALLOW`,n),n.count===0&&kn.dispatch(`TEARDOWN`,n)}});function An(e,t,n=()=>({containers:[]})){let r=Cn(kn),i=t?r.get(t):void 0,a=i?i.count>0:!1;return oe(()=>{if(t&&e)return kn.dispatch(`PUSH`,t,n),()=>kn.dispatch(`POP`,t,n)},[e,t]),a}function jn(e,t,n=()=>[document.body]){An(Gt(e,`scroll-lock`),t,e=>({containers:[...e.containers??[],n]}))}function Mn(e=0){let[t,n]=(0,u.useState)(e);return{flags:t,setFlag:(0,u.useCallback)(e=>n(e),[]),addFlag:(0,u.useCallback)(e=>n(t=>t|e),[]),hasFlag:(0,u.useCallback)(e=>(t&e)===e,[t]),removeFlag:(0,u.useCallback)(e=>n(t=>t&~e),[]),toggleFlag:(0,u.useCallback)(e=>n(t=>t^e),[])}}typeof process<`u`&&typeof globalThis<`u`&&typeof Element<`u`&&(process==null?void 0:process.env)?.NODE_ENV===`test`&&(Element==null?void 0:Element.prototype)?.getAnimations===void 0&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.",``,`Example usage:`,"```js",`import { mockAnimationsApi } from 'jsdom-testing-mocks'`,`mockAnimationsApi()`,"```"].join(`
|
|
9
|
-
`)),[]});var Nn=(e=>(e[e.None=0]=`None`,e[e.Closed=1]=`Closed`,e[e.Enter=2]=`Enter`,e[e.Leave=4]=`Leave`,e))(Nn||{});function Pn(e){let t={};for(let n in e)e[n]===!0&&(t[`data-${n}`]=``);return t}function Fn(e,t,n,r){let[i,a]=(0,u.useState)(n),{hasFlag:o,addFlag:s,removeFlag:c}=Mn(e&&i?3:0),l=(0,u.useRef)(!1),d=(0,u.useRef)(!1);return oe(()=>{var i;if(e){if(n&&a(!0),!t){n&&s(3);return}return(i=r?.start)==null||i.call(r,n),In(t,{inFlight:l,prepare(){d.current?d.current=!1:d.current=l.current,l.current=!0,!d.current&&(n?(s(3),c(4)):(s(4),c(2)))},run(){d.current?n?(c(3),s(4)):(c(4),s(3)):n?c(1):s(1)},done(){var e;d.current&&zn(t)||(l.current=!1,c(7),n||a(!1),(e=r?.end)==null||e.call(r,n))}})}},[e,n,t,ae()]),e?[i,{closed:o(1),enter:o(2),leave:o(4),transition:o(2)||o(4)}]:[n,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function In(e,{prepare:t,run:n,done:r,inFlight:i}){let a=ie();return Rn(e,{prepare:t,inFlight:i}),a.nextFrame(()=>{n(),a.requestAnimationFrame(()=>{a.add(Ln(e,r))})}),a.dispose}function Ln(e,t){let n=ie();if(!e)return n.dispose;let r=!1;n.add(()=>{r=!0});let i=e.getAnimations?.call(e).filter(e=>e instanceof CSSTransition)??[];return i.length===0?(t(),n.dispose):(Promise.allSettled(i.map(e=>e.finished)).then(()=>{r||t()}),n.dispose)}function Rn(e,{inFlight:t,prepare:n}){if(t!=null&&t.current){n();return}let r=e.style.transition;e.style.transition=`none`,n(),e.offsetHeight,e.style.transition=r}function zn(e){return(e.getAnimations?.call(e)??[]).some(e=>e instanceof CSSTransition&&e.playState!==`finished`)}function Bn(e,t){let n=(0,u.useRef)([]),r=B(e);(0,u.useEffect)(()=>{let e=[...n.current];for(let[i,a]of t.entries())if(n.current[i]!==a){let i=r(t,e);return n.current=t,i}},[r,...t])}var Vn=(0,u.createContext)(null);Vn.displayName=`OpenClosedContext`;var Hn=(e=>(e[e.Open=1]=`Open`,e[e.Closed=2]=`Closed`,e[e.Closing=4]=`Closing`,e[e.Opening=8]=`Opening`,e))(Hn||{});function Un(){return(0,u.useContext)(Vn)}function Wn({value:e,children:t}){return u.default.createElement(Vn.Provider,{value:e},t)}function Gn({children:e}){return u.default.createElement(Vn.Provider,{value:null},e)}function Kn(e){function t(){document.readyState!==`loading`&&(e(),document.removeEventListener(`DOMContentLoaded`,t))}typeof window<`u`&&typeof document<`u`&&(document.addEventListener(`DOMContentLoaded`,t),t())}var qn=[];Kn(()=>{function e(e){if(!U(e.target)||e.target===document.body||qn[0]===e.target)return;let t=e.target;t=t.closest(Qt),qn.unshift(t??e.target),qn=qn.filter(e=>e!=null&&e.isConnected),qn.splice(10)}window.addEventListener(`click`,e,{capture:!0}),window.addEventListener(`mousedown`,e,{capture:!0}),window.addEventListener(`focus`,e,{capture:!0}),document.body.addEventListener(`click`,e,{capture:!0}),document.body.addEventListener(`mousedown`,e,{capture:!0}),document.body.addEventListener(`focus`,e,{capture:!0})});function Jn(e){let t=B(e),n=(0,u.useRef)(!1);(0,u.useEffect)(()=>(n.current=!1,()=>{n.current=!0,re(()=>{n.current&&t()})}),[t])}function Yn(){let e=typeof document>`u`;return`useSyncExternalStore`in u&&(e=>e.useSyncExternalStore)(u)(()=>()=>{},()=>!1,()=>!e)}function Xn(){let e=Yn(),[t,n]=u.useState(R.isHandoffComplete);return t&&R.isHandoffComplete===!1&&n(!1),u.useEffect(()=>{t!==!0&&n(!0)},[t]),u.useEffect(()=>R.handoff(),[]),!e&&t}var Zn=(0,u.createContext)(!1);function Qn(){return(0,u.useContext)(Zn)}function $n(e){return u.default.createElement(Zn.Provider,{value:e.force},e.children)}function er(e){let t=Qn(),n=(0,u.useContext)(ar),[r,i]=(0,u.useState)(()=>{if(!t&&n!==null)return n.current??null;if(R.isServer)return null;let r=e?.getElementById(`headlessui-portal-root`);if(r)return r;if(e===null)return null;let i=e.createElement(`div`);return i.setAttribute(`id`,`headlessui-portal-root`),e.body.appendChild(i)});return(0,u.useEffect)(()=>{r!==null&&(e!=null&&e.body.contains(r)||e==null||e.body.appendChild(r))},[r,e]),(0,u.useEffect)(()=>{t||n!==null&&i(n.current)},[n,i,t]),r}var tr=u.Fragment,nr=ye(function(e,t){let{ownerDocument:n=null,...r}=e,i=(0,u.useRef)(null),a=Re(Le(e=>{i.current=e}),t),o=xn(i.current),s=er(n??o),c=(0,u.useContext)(sr),l=ae(),d=Xn(),p=H();return Jn(()=>{var e;s&&s.childNodes.length<=0&&((e=s.parentElement)==null||e.removeChild(s))}),!s||!d?null:(0,f.createPortal)(u.default.createElement(`div`,{"data-headlessui-portal":``,ref:e=>{l.dispose(),c&&e&&l.add(c.register(e))}},p({ourProps:{ref:a},theirProps:r,slot:{},defaultTag:tr,name:`Portal`})),s)});function rr(e,t){let n=Re(t),{enabled:r=!0,ownerDocument:i,...a}=e,o=H();return r?u.default.createElement(nr,{...a,ownerDocument:i,ref:n}):o({ourProps:{ref:n},theirProps:a,slot:{},defaultTag:tr,name:`Portal`})}var ir=u.Fragment,ar=(0,u.createContext)(null);function or(e,t){let{target:n,...r}=e,i={ref:Re(t)},a=H();return u.default.createElement(ar.Provider,{value:n},a({ourProps:i,theirProps:r,defaultTag:ir,name:`Popover.Group`}))}var sr=(0,u.createContext)(null);function cr(){let e=(0,u.useContext)(sr),t=(0,u.useRef)([]),n=B(n=>(t.current.push(n),e&&e.register(n),()=>r(n))),r=B(n=>{let r=t.current.indexOf(n);r!==-1&&t.current.splice(r,1),e&&e.unregister(n)}),i=(0,u.useMemo)(()=>({register:n,unregister:r,portals:t}),[n,r,t]);return[t,(0,u.useMemo)(()=>function({children:e}){return u.default.createElement(sr.Provider,{value:i},e)},[i])]}var lr=ye(rr),ur=ye(or),dr=Object.assign(lr,{Group:ur});function fr(e,t=typeof document<`u`?document.defaultView:null,n){let r=Gt(e,`escape`);Sn(t,`keydown`,e=>{r&&(e.defaultPrevented||e.key===Ke.Escape&&n(e))})}function pr(){let[e]=(0,u.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`?window.matchMedia(`(pointer: coarse)`):null),[t,n]=(0,u.useState)(e?.matches??!1);return oe(()=>{if(!e)return;function t(e){n(e.matches)}return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[e]),t}function mr({defaultContainers:e=[],portals:t,mainTreeNode:n}={}){let r=B(()=>{let r=z(n),i=[];for(let t of e)t!==null&&(je(t)?i.push(t):`current`in t&&je(t.current)&&i.push(t.current));if(t!=null&&t.current)for(let e of t.current)i.push(e);for(let e of r?.querySelectorAll(`html > *, body > *`)??[])e!==document.body&&e!==document.head&&je(e)&&e.id!==`headlessui-portal-root`&&(n&&(e.contains(n)||e.contains(n?.getRootNode()?.host))||i.some(t=>e.contains(t))||i.push(e));return i});return{resolveContainers:r,contains:B(e=>r().some(t=>t.contains(e)))}}var hr=(0,u.createContext)(null);function gr({children:e,node:t}){let[n,r]=(0,u.useState)(null),i=_r(t??n);return u.default.createElement(hr.Provider,{value:i},e,i===null&&u.default.createElement(ke,{features:De.Hidden,ref:e=>{if(e){for(let t of z(e)?.querySelectorAll(`html > *, body > *`)??[])if(t!==document.body&&t!==document.head&&je(t)&&t!=null&&t.contains(e)){r(t);break}}}}))}function _r(e=null){return(0,u.useContext)(hr)??e}function vr(){let e=(0,u.useRef)(!1);return oe(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var yr=(e=>(e[e.Forwards=0]=`Forwards`,e[e.Backwards=1]=`Backwards`,e))(yr||{});function br(){let e=(0,u.useRef)(0);return vn(!0,`keydown`,t=>{t.key===`Tab`&&(e.current=+!!t.shiftKey)},!0),e}function xr(e){if(!e)return new Set;if(typeof e==`function`)return new Set(e());let t=new Set;for(let n of e.current)je(n.current)&&t.add(n.current);return t}var Sr=`div`,Cr=(e=>(e[e.None=0]=`None`,e[e.InitialFocus=1]=`InitialFocus`,e[e.TabLock=2]=`TabLock`,e[e.FocusLock=4]=`FocusLock`,e[e.RestoreFocus=8]=`RestoreFocus`,e[e.AutoFocus=16]=`AutoFocus`,e))(Cr||{});function wr(e,t){let n=(0,u.useRef)(null),r=Re(n,t),{initialFocus:i,initialFocusFallback:a,containers:o,features:s=15,...c}=e;Xn()||(s=0);let l=xn(n.current);Or(s,{ownerDocument:l});let d=kr(s,{ownerDocument:l,container:n,initialFocus:i,initialFocusFallback:a});Ar(s,{ownerDocument:l,container:n,containers:o,previousActiveElement:d});let f=br(),p=B(e=>{if(!Me(n.current))return;let t=n.current;(e=>e())(()=>{V(f.current,{[yr.Forwards]:()=>{pn(t,en.First,{skipElements:[e.relatedTarget,a]})},[yr.Backwards]:()=>{pn(t,en.Last,{skipElements:[e.relatedTarget,a]})}})})}),m=Gt(!!(s&2),`focus-trap#tab-lock`),h=ae(),g=(0,u.useRef)(!1),_={ref:r,onKeyDown(e){e.key==`Tab`&&(g.current=!0,h.requestAnimationFrame(()=>{g.current=!1}))},onBlur(e){if(!(s&4))return;let t=xr(o);Me(n.current)&&t.add(n.current);let r=e.relatedTarget;U(r)&&r.dataset.headlessuiFocusGuard!==`true`&&(jr(t,r)||(g.current?pn(n.current,V(f.current,{[yr.Forwards]:()=>en.Next,[yr.Backwards]:()=>en.Previous})|en.WrapAround,{relativeTo:e.target}):U(e.target)&&ln(e.target)))}},v=H();return u.default.createElement(u.default.Fragment,null,m&&u.default.createElement(ke,{as:`button`,type:`button`,"data-headlessui-focus-guard":!0,onFocus:p,features:De.Focusable}),v({ourProps:_,theirProps:c,defaultTag:Sr,name:`FocusTrap`}),m&&u.default.createElement(ke,{as:`button`,type:`button`,"data-headlessui-focus-guard":!0,onFocus:p,features:De.Focusable}))}var Tr=ye(wr),Er=Object.assign(Tr,{features:Cr});function Dr(e=!0){let t=(0,u.useRef)(qn.slice());return Bn(([e],[n])=>{n===!0&&e===!1&&re(()=>{t.current.splice(0)}),n===!1&&e===!0&&(t.current=qn.slice())},[e,qn,t]),B(()=>t.current.find(e=>e!=null&&e.isConnected)??null)}function Or(e,{ownerDocument:t}){let n=!!(e&8),r=Dr(n);Bn(()=>{n||ne(t?.body)&&ln(r())},[n]),Jn(()=>{n&&ln(r())})}function kr(e,{ownerDocument:t,container:n,initialFocus:r,initialFocusFallback:i}){let a=(0,u.useRef)(null),o=Gt(!!(e&1),`focus-trap#initial-focus`),s=vr();return Bn(()=>{if(e===0)return;if(!o){i!=null&&i.current&&ln(i.current);return}let c=n.current;c&&re(()=>{if(!s.current)return;let n=t?.activeElement;if(r!=null&&r.current){if(r?.current===n){a.current=n;return}}else if(c.contains(n)){a.current=n;return}if(r!=null&&r.current)ln(r.current);else{if(e&16){if(pn(c,en.First|en.AutoFocus)!==tn.Error)return}else if(pn(c,en.First)!==tn.Error)return;if(i!=null&&i.current&&(ln(i.current),t?.activeElement===i.current))return;console.warn(`There are no focusable elements inside the <FocusTrap />`)}a.current=t?.activeElement})},[i,o,e]),a}function Ar(e,{ownerDocument:t,container:n,containers:r,previousActiveElement:i}){let a=vr(),o=!!(e&4);Sn(t?.defaultView,`focus`,e=>{if(!o||!a.current)return;let t=xr(r);Me(n.current)&&t.add(n.current);let s=i.current;if(!s)return;let c=e.target;Me(c)?jr(t,c)?(i.current=c,ln(c)):(e.preventDefault(),e.stopPropagation(),ln(s)):ln(i.current)},!0)}function jr(e,t){for(let n of e)if(n.contains(t))return!0;return!1}function Mr(e){return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||!we(e.as??Br)||u.default.Children.count(e.children)===1}var Nr=(0,u.createContext)(null);Nr.displayName=`TransitionContext`;var Pr=(e=>(e.Visible=`visible`,e.Hidden=`hidden`,e))(Pr||{});function Fr(){let e=(0,u.useContext)(Nr);if(e===null)throw Error(`A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.`);return e}function Ir(){let e=(0,u.useContext)(Lr);if(e===null)throw Error(`A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.`);return e}var Lr=(0,u.createContext)(null);Lr.displayName=`NestingContext`;function Rr(e){return`children`in e?Rr(e.children):e.current.filter(({el:e})=>e.current!==null).filter(({state:e})=>e===`visible`).length>0}function zr(e,t){let n=se(e),r=(0,u.useRef)([]),i=vr(),a=ae(),o=B((e,t=pe.Hidden)=>{let o=r.current.findIndex(({el:t})=>t===e);o!==-1&&(V(t,{[pe.Unmount](){r.current.splice(o,1)},[pe.Hidden](){r.current[o].state=`hidden`}}),a.microTask(()=>{var e;!Rr(r)&&i.current&&((e=n.current)==null||e.call(n))}))}),s=B(e=>{let t=r.current.find(({el:t})=>t===e);return t?t.state!==`visible`&&(t.state=`visible`):r.current.push({el:e,state:`visible`}),()=>o(e,pe.Unmount)}),c=(0,u.useRef)([]),l=(0,u.useRef)(Promise.resolve()),d=(0,u.useRef)({enter:[],leave:[]}),f=B((e,n,r)=>{c.current.splice(0),t&&(t.chains.current[n]=t.chains.current[n].filter(([t])=>t!==e)),t?.chains.current[n].push([e,new Promise(e=>{c.current.push(e)})]),t?.chains.current[n].push([e,new Promise(e=>{Promise.all(d.current[n].map(([e,t])=>t)).then(()=>e())})]),n===`enter`?l.current=l.current.then(()=>t?.wait.current).then(()=>r(n)):r(n)}),p=B((e,t,n)=>{Promise.all(d.current[t].splice(0).map(([e,t])=>t)).then(()=>{var e;(e=c.current.shift())==null||e()}).then(()=>n(t))});return(0,u.useMemo)(()=>({children:r,register:s,unregister:o,onStart:f,onStop:p,wait:l,chains:d}),[s,o,r,f,p,d,l])}var Br=u.Fragment,Vr=fe.RenderStrategy;function Hr(e,t){var n;let{transition:r=!0,beforeEnter:i,afterEnter:a,beforeLeave:o,afterLeave:s,enter:c,enterFrom:l,enterTo:d,entered:f,leave:p,leaveFrom:m,leaveTo:h,...g}=e,[_,v]=(0,u.useState)(null),y=(0,u.useRef)(null),b=Mr(e),x=Re(...b?[y,t,v]:t===null?[]:[t]),S=(n=g.unmount)==null||n?pe.Unmount:pe.Hidden,{show:C,appear:w,initial:T}=Fr(),[E,D]=(0,u.useState)(C?`visible`:`hidden`),O=Ir(),{register:k,unregister:A}=O;oe(()=>k(y),[k,y]),oe(()=>{if(S===pe.Hidden&&y.current){if(C&&E!==`visible`){D(`visible`);return}return V(E,{hidden:()=>A(y),visible:()=>k(y)})}},[E,y,k,A,C,S]);let j=Xn();oe(()=>{if(b&&j&&E===`visible`&&y.current===null)throw Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[y,E,j,b]);let M=T&&!w,N=w&&C&&T,P=(0,u.useRef)(!1),F=zr(()=>{P.current||(D(`hidden`),A(y))},O),I=B(e=>{P.current=!0;let t=e?`enter`:`leave`;F.onStart(y,t,e=>{e===`enter`?i?.():e===`leave`&&o?.()})}),L=B(e=>{let t=e?`enter`:`leave`;P.current=!1,F.onStop(y,t,e=>{e===`enter`?a?.():e===`leave`&&s?.()}),t===`leave`&&!Rr(F)&&(D(`hidden`),A(y))});(0,u.useEffect)(()=>{b&&r||(I(C),L(C))},[C,b,r]);let[,R]=Fn(!(!r||!b||!j||M),_,C,{start:I,end:L}),z=be({ref:x,className:de(g.className,N&&c,N&&l,R.enter&&c,R.enter&&R.closed&&l,R.enter&&!R.closed&&d,R.leave&&p,R.leave&&!R.closed&&m,R.leave&&R.closed&&h,!R.transition&&C&&f)?.trim()||void 0,...Pn(R)}),ee=0;E===`visible`&&(ee|=Hn.Open),E===`hidden`&&(ee|=Hn.Closed),C&&E===`hidden`&&(ee|=Hn.Opening),!C&&E===`visible`&&(ee|=Hn.Closing);let te=H();return u.default.createElement(Lr.Provider,{value:F},u.default.createElement(Wn,{value:ee},te({ourProps:z,theirProps:g,defaultTag:Br,features:Vr,visible:E===`visible`,name:`Transition.Child`})))}function Ur(e,t){let{show:n,appear:r=!1,unmount:i=!0,...a}=e,o=(0,u.useRef)(null),s=Re(...Mr(e)?[o,t]:t===null?[]:[t]);Xn();let c=Un();if(n===void 0&&c!==null&&(n=(c&Hn.Open)===Hn.Open),n===void 0)throw Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[l,d]=(0,u.useState)(n?`visible`:`hidden`),f=zr(()=>{n||d(`hidden`)}),[p,m]=(0,u.useState)(!0),h=(0,u.useRef)([n]);oe(()=>{p!==!1&&h.current[h.current.length-1]!==n&&(h.current.push(n),m(!1))},[h,n]);let g=(0,u.useMemo)(()=>({show:n,appear:r,initial:p}),[n,r,p]);oe(()=>{n?d(`visible`):!Rr(f)&&o.current!==null&&d(`hidden`)},[n,f]);let _={unmount:i},v=B(()=>{var t;p&&m(!1),(t=e.beforeEnter)==null||t.call(e)}),y=B(()=>{var t;p&&m(!1),(t=e.beforeLeave)==null||t.call(e)}),b=H();return u.default.createElement(Lr.Provider,{value:f},u.default.createElement(Nr.Provider,{value:g},b({ourProps:{..._,as:u.Fragment,children:u.default.createElement(Kr,{ref:s,..._,...a,beforeEnter:v,beforeLeave:y})},theirProps:{},defaultTag:u.Fragment,features:Vr,visible:l===`visible`,name:`Transition`})))}function Wr(e,t){let n=(0,u.useContext)(Nr)!==null,r=Un()!==null;return u.default.createElement(u.default.Fragment,null,!n&&r?u.default.createElement(Gr,{ref:t,...e}):u.default.createElement(Kr,{ref:t,...e}))}var Gr=ye(Ur),Kr=ye(Hr),qr=ye(Wr),Jr=Object.assign(Gr,{Child:qr,Root:Gr}),Yr=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(Yr||{}),Xr=(e=>(e[e.SetTitleId=0]=`SetTitleId`,e))(Xr||{}),Zr={0(e,t){return e.titleId===t.id?e:{...e,titleId:t.id}}},Qr=(0,u.createContext)(null);Qr.displayName=`DialogContext`;function $r(e){let t=(0,u.useContext)(Qr);if(t===null){let t=Error(`<${e} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,$r),t}return t}function ei(e,t){return V(t.type,Zr,e,t)}var ti=ye(function(e,t){let n=(0,u.useId)(),{id:r=`headlessui-dialog-${n}`,open:i,onClose:a,initialFocus:o,role:s=`dialog`,autoFocus:c=!0,__demoMode:l=!1,unmount:d=!1,...f}=e,p=(0,u.useRef)(!1);s=function(){return s===`dialog`||s===`alertdialog`?s:(p.current||(p.current=!0,console.warn(`Invalid role [${s}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),`dialog`)}();let m=Un();i===void 0&&m!==null&&(i=(m&Hn.Open)===Hn.Open);let h=(0,u.useRef)(null),g=Re(h,t),_=xn(h.current),v=+!i,[y,b]=(0,u.useReducer)(ei,{titleId:null,descriptionId:null,panelRef:(0,u.createRef)()}),x=B(()=>a(!1)),S=B(e=>b({type:0,id:e})),C=Xn()?v===0:!1,[w,T]=cr(),E={get current(){return y.panelRef.current??h.current}},D=_r(),{resolveContainers:O}=mr({mainTreeNode:D,portals:w,defaultContainers:[E]}),k=m!==null&&(m&Hn.Closing)===Hn.Closing;Xt(l||k?!1:C,{allowed:B(()=>[h.current?.closest(`[data-headlessui-portal]`)??null]),disallowed:B(()=>[D?.closest(`body > *:not(#headlessui-portal-root)`)??null])});let A=zt.get(null);oe(()=>{if(C)return A.actions.push(r),()=>A.actions.pop(r)},[A,r,C]);let j=Ut(A,(0,u.useCallback)(e=>A.selectors.isTop(e,r),[A,r]));bn(j,O,e=>{e.preventDefault(),x()}),fr(j,_?.defaultView,e=>{e.preventDefault(),e.stopPropagation(),document.activeElement&&`blur`in document.activeElement&&typeof document.activeElement.blur==`function`&&document.activeElement.blur(),x()}),jn(l||k?!1:C,_,O),Zt(C,h,x);let[M,N]=Ve(),P=(0,u.useMemo)(()=>[{dialogState:v,close:x,setTitleId:S,unmount:d},y],[v,x,S,d,y]),F=ce({open:v===0}),I={ref:g,id:r,role:s,tabIndex:-1,"aria-modal":l?void 0:v===0||void 0,"aria-labelledby":y.titleId,"aria-describedby":M,unmount:d},L=!pr(),R=Cr.None;C&&!l&&(R|=Cr.RestoreFocus,R|=Cr.TabLock,c&&(R|=Cr.AutoFocus),L&&(R|=Cr.InitialFocus));let z=H();return u.default.createElement(Gn,null,u.default.createElement($n,{force:!0},u.default.createElement(dr,null,u.default.createElement(Qr.Provider,{value:P},u.default.createElement(ur,{target:h},u.default.createElement($n,{force:!1},u.default.createElement(N,{slot:F},u.default.createElement(T,null,u.default.createElement(Er,{initialFocus:o,initialFocusFallback:h,containers:O,features:R},u.default.createElement(Je,{value:x},z({ourProps:I,theirProps:f,slot:F,defaultTag:ni,features:ri,visible:v===0,name:`Dialog`})))))))))))}),ni=`div`,ri=fe.RenderStrategy|fe.Static;function ii(e,t){let{transition:n=!1,open:r,...i}=e,a=Un(),o=e.hasOwnProperty(`open`)||a!==null,s=e.hasOwnProperty(`onClose`);if(!o&&!s)throw Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!o)throw Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!s)throw Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if(!a&&typeof e.open!=`boolean`)throw Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${e.open}`);if(typeof e.onClose!=`function`)throw Error(`You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${e.onClose}`);return(r!==void 0||n)&&!i.static?u.default.createElement(gr,null,u.default.createElement(Jr,{show:r,transition:n,unmount:i.unmount},u.default.createElement(ti,{ref:t,...i}))):u.default.createElement(gr,null,u.default.createElement(ti,{ref:t,open:r,...i}))}var ai=`div`;function oi(e,t){let n=(0,u.useId)(),{id:r=`headlessui-dialog-panel-${n}`,transition:i=!1,...a}=e,[{dialogState:o,unmount:s},c]=$r(`Dialog.Panel`),l=Re(t,c.panelRef),d=ce({open:o===0}),f={ref:l,id:r,onClick:B(e=>{e.stopPropagation()})},p=i?qr:u.Fragment,m=i?{unmount:s}:{},h=H();return u.default.createElement(p,{...m},h({ourProps:f,theirProps:a,slot:d,defaultTag:ai,name:`Dialog.Panel`}))}var si=`div`;function ci(e,t){let{transition:n=!1,...r}=e,[{dialogState:i,unmount:a}]=$r(`Dialog.Backdrop`),o=ce({open:i===0}),s={ref:t,"aria-hidden":!0},c=n?qr:u.Fragment,l=n?{unmount:a}:{},d=H();return u.default.createElement(c,{...l},d({ourProps:s,theirProps:r,slot:o,defaultTag:si,name:`Dialog.Backdrop`}))}var li=`h2`;function ui(e,t){let n=(0,u.useId)(),{id:r=`headlessui-dialog-title-${n}`,...i}=e,[{dialogState:a,setTitleId:o}]=$r(`Dialog.Title`),s=Re(t);(0,u.useEffect)(()=>(o(r),()=>o(null)),[r,o]);let c=ce({open:a===0}),l={ref:s,id:r};return H()({ourProps:l,theirProps:i,slot:c,defaultTag:li,name:`Dialog.Title`})}var di=ye(ii),fi=ye(oi);ye(ci);var pi=ye(ui),mi=Object.assign(di,{Panel:fi,Title:pi,Description:Ge}),hi="function e(e,t){if(!t||typeof t.sequence!=`string`)throw Error(`Expected an aligned DNA sequence.`);let n=t.sequence.toUpperCase();if(!e.length||n.length!==e.length)throw Error(`Aligned sequence length must match the reference.`);if(/[^ACGTRYSWKMBDHVN-]/.test(n))throw Error(`Aligned sequences must contain IUPAC DNA bases or deletion gaps (-).`);let r=0,i=n.length;for(;r<i&&n[r]===`N`;)r++;for(;i>r&&n[i-1]===`N`;)i--;let a=r===i?{start:0,end:0}:{start:r,end:i},o=[],s=0;for(let t=a.start;t<a.end;){if(n[t]===e[t]){t++;continue}let r=n[t]===`-`?`Deletion`:/[^ACGT]/.test(n[t]+e[t])?`Ambiguous`:`Substitution`,i=t+1;if(r===`Deletion`||r===`Ambiguous`)for(;i<a.end&&n[i]!==e[i]&&(r===`Deletion`?n[i]===`-`:n[i]!==`-`&&/[^ACGT]/.test(n[i]+e[i]));)i++;o.push({type:r,start:t,end:i,reference:e.slice(t,i),alternative:r===`Deletion`?``:n.slice(t,i)}),s+=i-t,t=i}let c=new Set;for(let n of t.insertions||[]){let t=n.position,r=typeof n.sequence==`string`?n.sequence.toUpperCase():``;if(!Number.isInteger(t)||t<0||t>e.length||c.has(t))throw Error(`Insertions need unique integer positions from 0 to the reference length.`);if(!r||/[^ACGTRYSWKMBDHVN]/.test(r))throw Error(`Insertions must contain ungapped IUPAC DNA bases.`);c.add(t),o.push({type:`Insertion`,start:t,end:t,reference:``,alternative:r}),s+=r.length}return o.sort((e,t)=>e.start-t.start||e.end-t.end),{name:t.name||`Alternative`,distance:s,differences:o,coverage:a}}const t=e=>{switch(e){case`TTT`:case`TTC`:return`F`;case`TTA`:case`TTG`:case`CTT`:case`CTC`:case`CTA`:case`CTG`:return`L`;case`ATT`:case`ATC`:case`ATA`:return`I`;case`ATG`:return`M`;case`GTT`:case`GTC`:case`GTA`:case`GTG`:return`V`;case`TCT`:case`TCC`:case`TCA`:case`TCG`:case`AGT`:case`AGC`:return`S`;case`CCT`:case`CCC`:case`CCA`:case`CCG`:return`P`;case`ACT`:case`ACC`:case`ACA`:case`ACG`:return`T`;case`GCT`:case`GCC`:case`GCA`:case`GCG`:return`A`;case`TAT`:case`TAC`:return`Y`;case`TAA`:case`TAG`:case`TGA`:return`*`;case`CAT`:case`CAC`:return`H`;case`CAA`:case`CAG`:return`Q`;case`AAT`:case`AAC`:return`N`;case`AAA`:case`AAG`:return`K`;case`GAT`:case`GAC`:return`D`;case`GAA`:case`GAG`:return`E`;case`TGT`:case`TGC`:return`C`;case`TGG`:return`W`;case`CGT`:case`CGC`:case`CGA`:case`CGG`:case`AGA`:case`AGG`:return`R`;case`GGT`:case`GGC`:case`GGA`:case`GGG`:return`G`;default:return`X`}};function n(e){let t=e.trim().split(/\\r?\\n/);if(!t[0]?.startsWith(`>`))throw Error(`Expected a FASTA header starting with >.`);if(t.slice(1).some(e=>e.startsWith(`>`)))throw Error(`Please supply exactly one FASTA record.`);let n=t.slice(1).join(``).replace(/\\s/g,``).toUpperCase();if(!n||/[^ACGTRYSWKMBDHVN]/.test(n))throw Error(`Expected an ungapped DNA sequence (IUPAC bases).`);return{name:t[0].slice(1).trim()||`Alternative`,sequence:n}}function r(e,t,n=`N`,r=256,{leading:a=1/0,trailing:o=1/0}={}){if(!e.length||!t.length)throw Error(`Both sequences must contain bases.`);if(Math.max(e.length,t.length)>1e5)throw Error(`Comparison supports sequences up to 100,000 bases.`);let s=0,c=0;for(;s<t.length&&s<a&&t[s]===n;)s++;if(s===t.length)return{distance:0,differences:[],coverage:{start:0,end:0}};for(;c<t.length-s&&c<o&&t[t.length-c-1]===n;)c++;let l=e.length-c;if(s>=l)throw Error(`Terminal padding leaves no comparable reference span.`);let u=i(e.slice(s,l),t.slice(s,t.length-c),r);return{...u,coverage:{start:s,end:l},differences:u.differences.map(e=>({...e,start:e.start+s,end:e.end+s}))}}function i(e,t,n=256){let r=e.length,i=t.length;if(!r||!i)throw Error(`Both sequences must contain bases.`);if(Math.max(r,i)>1e5)throw Error(`Comparison supports sequences up to 100,000 bases.`);let a=()=>Error(`Sequences exceed the ${n}-edit comparison limit. Use complete sequences in the same orientation and with the same starting point.`);if(Math.abs(r-i)>n)throw a();let o=2*n+1,s=n+1,c=s*s,l=new Uint8Array((r+1)*o),u=(e,t,n)=>e<=t&&e<=n?0:t<=n?1:2,d=new Uint32Array(o*3).fill(c);d[n*3]=0;for(let e=1;e<=Math.min(i,n);e++)d[(e+n)*3+2]=e*s+1,l[e+n]=(e===1?0:2)<<4;for(let a=1;a<=r;a++){let r=new Uint32Array(o*3).fill(c);for(let f=Math.max(0,a-n);f<=Math.min(i,a+n);f++){let i=f-a+n,p=i*3;if(f===0){r[p+1]=a*s+1,l[a*o+i]=(a===1?0:1)<<2;continue}let m=u(d[p],d[p+1],d[p+2]);r[p]=Math.min(c,d[p+m]+(e[a-1]===t[f-1]?0:s));let h=0,g=0;if(i+1<o){let e=p+3,t=d[e]+s+1,n=d[e+1]+s,i=d[e+2]+s+1;h=u(t,n,i),r[p+1]=Math.min(c,t,n,i)}if(i>0){let e=p-3,t=r[e]+s+1,n=r[e+1]+s+1,i=r[e+2]+s;g=u(t,n,i),r[p+2]=Math.min(c,t,n,i)}l[a*o+i]=m|h<<2|g<<4}d=r}let f=(i-r+n)*3,p=u(d[f],d[f+1],d[f+2]),m=Math.floor(d[f+p]/s);if(m>n)throw a();let h=r,g=i,_=[];for(;h||g;){let r=l[h*o+g-h+n]>>p*2&3;p===0?_.push([e[--h],t[--g]]):p===1?_.push([e[--h],`-`]):_.push([`-`,t[--g]]),p=r}_.reverse();let v=[],y=0;for(let[e,t]of _){if(e!==t){let n=e===`-`?`Insertion`:t===`-`?`Deletion`:/[^ACGT]/.test(e+t)?`Ambiguous`:`Substitution`,r=v.at(-1);r&&r.type===n&&n!==`Substitution`&&n!==`Ambiguous`&&r.end===y?(r.reference+=e===`-`?``:e,r.alternative+=t===`-`?``:t,r.end+=e===`-`?0:1):v.push({type:n,start:y,end:y+(e===`-`?0:1),reference:e===`-`?``:e,alternative:t===`-`?``:t})}e!==`-`&&y++}return{distance:m,differences:v}}function a(e,t){return e.locations?.length?e.locations:e.start>e.end?[{start:e.start,end:t-1},{start:0,end:e.end}]:[{start:e.start,end:e.end}]}const o={A:`T`,T:`A`,C:`G`,G:`C`,R:`Y`,Y:`R`,S:`S`,W:`W`,K:`M`,M:`K`,B:`V`,V:`B`,D:`H`,H:`D`,N:`N`},s=e=>[...e].reverse().map(e=>o[e]||`N`).join(``),c=e=>{let n=``;for(let r=0;r+2<e.length;r+=3)n+=t(e.slice(r,r+3));return n},l=(e,t,n)=>{let r=e.notes?.[t];return(Array.isArray(r)?r[0]:r)??n};function u(e,t,n,o){if(![`CDS`,`mat_peptide`].includes(t.type))return null;let u=a(t,e.length),d=[];for(let t of u){if(!Number.isInteger(t.start)||!Number.isInteger(t.end)||t.start<0||t.end>=e.length||t.end<t.start)return{warning:`Unsupported coding location`,codons:[],changes:[]};for(let e=t.start;e<=t.end;e++)d.push(e)}t.strand<0&&d.reverse();let f=Number(l(t,`codon_start`,1))-1;if(![0,1,2].includes(f))return{warning:`Unsupported codon_start`,codons:[],changes:[]};d.splice(0,f);let p=Number(l(t,`transl_table`,1));if(![1,11].includes(p)||[`transl_except`,`ribosomal_slippage`,`exception`].some(e=>t.notes?.[e]))return{warning:`AA comparison unavailable for this translation table or exception`,codons:[],changes:[]};let m=new Map(d.map((e,t)=>[e,t])),h=e=>t.strand<0?s(e):e,g=d.map(t=>h(e[t])).join(``),_=c(g),v=[..._].map((e,t)=>({positions:d.slice(t*3,t*3+3),aminoAcid:e,codonIndex:t})),y=new Set,b=new Map,x=new Map;o&&d.forEach((e,t)=>{(e<o.start||e>=o.end)&&b.set(t,`N`)});let S=1/0,C=!1;for(let e of n)if(e.type===`Insertion`){let n=t.strand<0?e.start-1:e.start,r=m.get(n),i=t.strand<0?e.start:e.start-1;r>0&&d[r-1]===i?(x.set(r,h(e.alternative)),e.alternative.length%3&&(S=Math.min(S,r))):(m.has(n)||m.has(i))&&(C=!0)}else if(e.type===`Deletion`){let t=[];for(let n=e.start;n<e.end;n++){let e=m.get(n);e!==void 0&&(y.add(e),t.push(e))}t.length%3&&(S=Math.min(S,...t))}else for(let t=e.start;t<e.end;t++){let n=m.get(t);n!==void 0&&b.set(n,h(e.alternative[t-e.start]))}let w=``,T=[];for(let e=0;e<d.length;e++)T[e]=w.length,w+=x.get(e)||``,y.has(e)||(w+=b.get(e)??g[e]);let E=Math.floor(S/3),D=Number.isFinite(S)?_.slice(0,E):_,O=c(Number.isFinite(S)?w.slice(0,T[E*3]):w),k=[],A=e=>{let n=Math.min(e.start,Math.max(0,v.length-1)),r=v[n],i=e.start<v.length?(r?.positions[0]??d[0])+(t.strand<0?.5:-.5):(r?.positions[2]??d[0])+(t.strand<0?-.5:.5);return{...e,anchor:r?.positions[1]??d[0],...e.type===`Insertion`?{pointerPosition:i}:{},aaPosition:e.type===`Insertion`?e.start:e.start+1}};try{if(D&&O){let e=e=>v[e].positions.some(e=>e<o.start||e>=o.end),t=0,n=0;if(o){for(;t<D.length&&e(t);)t++;for(;n<D.length-t&&e(D.length-n-1);)n++}let a=o?r(D,O,`X`,256,{leading:t,trailing:n}):i(D,O),s=[];for(let e of a.differences){let t={...e,type:e.type===`Ambiguous`?/X/.test(e.reference+e.alternative)?`Ambiguous`:`Substitution`:e.type},n=s.at(-1);t.type===`Ambiguous`&&n?.type===`Ambiguous`&&n.end===t.start?(n.end=t.end,n.reference+=t.reference,n.alternative+=t.alternative):s.push(t)}k=s.map(A)}else(D||O)&&(k=[A({type:D?`Deletion`:`Insertion`,start:0,end:D.length,reference:D,alternative:O})])}catch{return{codons:v,changes:[],warning:`AA comparison exceeds the alignment limit`}}return Number.isFinite(S)&&k.push(A({type:`Frameshift`,start:E,end:E+1,reference:``,alternative:``})),{codons:v,changes:k,warning:C?`Insertion at a coding boundary: AA assignment is uncertain`:void 0}}function d(e,t,n,r){return t.map(t=>u(e,t,n,r))}self.onmessage=({data:t})=>{try{let i=t.alignedSequence||n(t.fasta),a=t.alignedSequence?e(t.reference,i):r(t.reference,i.sequence);self.postMessage({...a,name:i.name,proteins:d(t.reference,t.features||[],a.differences,a.coverage)})}catch(e){self.postMessage({error:e.message})}};",gi=typeof self<`u`&&self.Blob&&new Blob([`URL.revokeObjectURL(import.meta.url);`,hi],{type:`text/javascript;charset=utf-8`});function _i(e){let t;try{if(t=gi&&(self.URL||self.webkitURL).createObjectURL(gi),!t)throw``;let n=new Worker(t,{type:`module`,name:e?.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch{return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(hi),{type:`module`,name:e?.name})}}function vi({reference:e,features:t,fastaUrl:n,alignedSequence:r,onResult:i,onGoTo:a,open:o,setOpen:s,onStatus:c}){let[l,f]=(0,u.useState)(null),[p,m]=(0,u.useState)(n||``),[h,g]=(0,u.useState)(0),[_,v]=(0,u.useState)(n||``),[y,b]=(0,u.useState)(``),[x,S]=(0,u.useState)(!1),[C,w]=(0,u.useState)(null),T=(0,u.useRef)(0),E=(0,u.useRef)();(0,u.useEffect)(()=>{(r||E.current)&&(T.current++,f(null),v(``)),E.current=r},[r]),(0,u.useEffect)(()=>{c({busy:x,error:y})},[x,y,c]),(0,u.useEffect)(()=>{y&&s(!0)},[y,s]);let D=()=>{w(null),i(null),b(``)};(0,u.useEffect)(()=>{m(n||``),v(n||``),n||(T.current++,f(null),w(null),i(null),b(``),S(!1))},[n,i]),(0,u.useEffect)(()=>{if(!_||r)return;let e=new AbortController,t=++T.current;return D(),f(null),S(!0),(async()=>{try{let n=new URL(_,window.location.href);if(![`http:`,`https:`].includes(n.protocol))throw Error(`Use an HTTP or HTTPS URL.`);let r=await fetch(n,{signal:e.signal});if(!r.ok)throw Error(`FASTA request failed (${r.status}).`);let i=await r.text();if(i.length>1e6)throw Error(`FASTA file is too large.`);t===T.current&&f(i)}catch(n){!e.signal.aborted&&t===T.current&&(b(n.message),S(!1))}})(),()=>e.abort()},[_,h,r]),(0,u.useEffect)(()=>{if(l===null&&!r){w(null),i(null);return}D(),S(!0);let n=new _i,a=T.current,o=!1;return n.onmessage=({data:e})=>{o||a!==T.current||(S(!1),e.error?b(e.error):(w(e),i(e)))},n.onerror=()=>{o||a!==T.current||(b(`Alignment failed. Please try another FASTA.`),S(!1))},n.postMessage({reference:e,features:t,fasta:l,alignedSequence:r}),()=>{o=!0,n.terminate()}},[e,t,l,r,i]);let O=async e=>{if(!e)return;let t=++T.current;v(``),f(null),D(),S(!0);try{if(e.size>1e6)throw Error(`FASTA file is too large.`);let n=await e.text();t===T.current&&f(n)}catch(e){t===T.current&&(b(e.message),S(!1))}};return(0,d.jsxs)(mi,{open:o,onClose:()=>s(!1),className:`gensplore comparison-drawer`,children:[(0,d.jsx)(`div`,{className:`comparison-drawer-overlay`,"aria-hidden":`true`}),(0,d.jsxs)(fi,{id:`comparison-drawer-panel`,className:`comparison-drawer-content`,children:[(0,d.jsxs)(`div`,{className:`comparison-drawer-header`,children:[(0,d.jsx)(pi,{children:`Compare FASTA`}),(0,d.jsx)(`button`,{type:`button`,onClick:()=>s(!1),"aria-label":`Close comparison`,children:`×`})]}),(0,d.jsxs)(`section`,{className:`comparison-panel`,"aria-label":`Compare FASTA`,children:[!r&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`label`,{className:`comparison-field`,children:[`FASTA file `,(0,d.jsx)(`input`,{type:`file`,accept:`.fa,.fasta,.fna,.txt`,onChange:e=>{O(e.target.files[0]),e.target.value=``}})]}),(0,d.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),v(p.trim()),g(e=>e+1)},children:[(0,d.jsxs)(`label`,{className:`comparison-field`,children:[`FASTA URL `,(0,d.jsx)(`input`,{type:`text`,inputMode:`url`,className:`comparison-url`,value:p,onChange:e=>m(e.target.value),placeholder:`https://example.org/alternative.fasta`,required:!0})]}),(0,d.jsx)(`button`,{type:`submit`,children:`Load URL`})]}),(l!==null||_||C||y||x)&&(0,d.jsx)(`button`,{onClick:()=>{T.current++,v(``),f(null),S(!1),D()},children:`Clear`})]}),x&&(0,d.jsx)(`p`,{role:`status`,children:`Loading / aligning FASTA…`}),y&&(0,d.jsx)(`p`,{role:`alert`,children:y}),C&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`p`,{role:`status`,className:`comparison-summary`,children:[(0,d.jsxs)(`strong`,{children:[C.differences.length,` `,C.differences.length===1?`change`:`changes`]}),(0,d.jsx)(`span`,{title:C.name,children:C.name})]}),C.coverage&&(C.coverage.start>0||C.coverage.end<e.length)&&(0,d.jsx)(`p`,{children:C.coverage.end>C.coverage.start?`Terminal Ns excluded from alignment and shown as coverage gaps; comparing reference positions ${C.coverage.start+1}–${C.coverage.end}.`:`No covered bases to compare (the alternative contains only Ns).`}),C.proteins?.some(e=>e?.warning)&&(0,d.jsx)(`ul`,{"aria-label":`Amino-acid comparison notes`,children:C.proteins.map((e,n)=>e?.warning&&(0,d.jsxs)(`li`,{children:[t[n].name,`: `,e.warning]},n))}),C.differences.length>0&&(0,d.jsx)(`div`,{className:`comparison-table`,children:(0,d.jsxs)(`table`,{children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{title:`1-based reference coordinates; insertions follow the indicated base`,children:`Ref. position`}),(0,d.jsx)(`th`,{children:`Type`}),(0,d.jsx)(`th`,{children:`Reference`}),(0,d.jsx)(`th`,{children:`Alternative`}),(0,d.jsx)(`th`,{"aria-label":`Navigate`})]})}),(0,d.jsx)(`tbody`,{children:C.differences.map((t,n)=>(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`td`,{children:t.type===`Insertion`?`After ${t.start}`:t.end>t.start+1?`${t.start+1}–${t.end}`:t.start+1}),(0,d.jsx)(`td`,{children:t.type}),(0,d.jsx)(`td`,{children:t.reference||`—`}),(0,d.jsx)(`td`,{children:t.alternative||`—`}),(0,d.jsx)(`td`,{children:(0,d.jsx)(`button`,{onClick:()=>{s(!1),requestAnimationFrame(()=>a(Math.min(t.start,e.length-1)))},children:`Go to`})})]},n))})]})})]})]})]})]})}var yi=({hoveredInfo:e})=>{let[t,n]=(0,u.useState)({x:0,y:0}),r=t.x>window.innerWidth-320?{right:`${window.innerWidth-t.x+10}px`}:{left:`${t.x+10}px`},i={position:`fixed`,...t.y>window.innerHeight-130?{bottom:`${window.innerHeight-t.y+10}px`}:{top:`${t.y+10}px`},...r,maxWidth:`min(300px, calc(100vw - 20px))`,pointerEvents:`none`,overflowWrap:`anywhere`,visibility:e?`visible`:`hidden`,zIndex:1e3};return(0,u.useEffect)(()=>{let e=e=>{n({x:e.clientX,y:e.clientY})};return document.addEventListener(`mousemove`,e),()=>{document.removeEventListener(`mousemove`,e)}},[]),(0,d.jsxs)(`div`,{role:`tooltip`,style:i,className:`text-sm bg-gray-100 p-2 rounded`,children:[e&&(0,d.jsx)(`span`,{children:e.label}),e&&e.product&&(0,d.jsx)(`div`,{className:`text-xs`,children:e.product})]})},bi={A:`T`,T:`A`,G:`C`,C:`G`,N:`N`,"-":`-`},xi=e=>e.split(``).map(e=>bi[e]).reverse().join(``),Si=(e,t)=>e.filter(e=>!!(e.name.toLowerCase().includes(t.toLowerCase())||(e.notes&&e.notes.product?e.notes.product[0]:``).toLowerCase().includes(t.toLowerCase())||(e.notes&&e.notes.locus_tag?e.notes.locus_tag[0]:``).toLowerCase().includes(t.toLowerCase()))),Ci=(e,t)=>t>e+1?`${e+1}–${t}`:`${e+1}`,wi=e=>e.length>24?`${e.slice(0,24)}… (${e.length} letters)`:e;function Ti(e,t){let n=t!==void 0,r=n?`${t} · reference ${e.end>e.start+1?`residues`:`residue`} ${Ci(e.start,e.end)}`:`reference ${e.end>e.start+1?`positions`:`position`} ${Ci(e.start,e.end)}`;return e.type===`Ambiguous`?n?`Amino acid unresolved because of ambiguous nucleotide calls · ${r}`:`No confident call · ${r}`:e.type===`Deletion`?`Deleted in this sequence · ${r}`:e.type===`Insertion`?`Inserted after reference ${n?`residue`:`position`} ${e.start}${n?` · ${t}`:``} · ${wi(e.alternative)}`:e.type===`Frameshift`?`Frame shift · ${r}; downstream amino-acid correspondence is uncertain`:`Reference ${wi(e.reference)} → sample ${wi(e.alternative)} · ${r}`}function Ei({letter:e,position:t,changes:n,gene:r,reverseComplement:i=!1,complement:a=e=>e}){let o=r===void 0?`Reference ${e} · position ${t+1}${i?` · reverse complement`:``}`:`${r} · Reference ${e} · residue ${t+1}`,s=n.find(e=>e.type!==`Insertion`&&t>=e.start&&t<e.end);if(s){if(s.type===`Substitution`){let n=s.alternative[t-s.start];return`Reference ${e} → sample ${i?a(n):n} · ${r===void 0?`position`:`${r} · residue`} ${t+1}${i?` · reverse complement`:``}`}return`${o} · ${Ti(s,r)}`}return r!==void 0&&n.some(e=>e.type===`Frameshift`&&t>=e.start)?`${o} · downstream of a frame shift; sample amino acid is uncertain`:o}var W=function(e,t,n){if(!t.has(e))throw TypeError(`attempted to set private field on non-instance`);return t.set(e,n),n},G=function(e,t){if(!t.has(e))throw TypeError(`attempted to get private field on non-instance`);return t.get(e)},Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi=function(e){var t=131,n=137,r=0;e+=`x`;var i=Math.floor(9007199254740991/n);for(let a=0;a<e.length;a++)r>i&&(r=Math.floor(r/n)),r=r*t+e.charCodeAt(a);return r},K=`0123456789abcdef`.split(``),Ki=[-2147483648,8388608,32768,128],qi=[24,16,8,0],Ji=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Yi=[],Xi=class{constructor(e=!1,t=!1){Di.set(this,void 0),Oi.set(this,void 0),ki.set(this,void 0),Ai.set(this,void 0),ji.set(this,void 0),Mi.set(this,void 0),Ni.set(this,void 0),Pi.set(this,void 0),Fi.set(this,void 0),Ii.set(this,void 0),Li.set(this,void 0),Ri.set(this,void 0),zi.set(this,void 0),Bi.set(this,void 0),Vi.set(this,void 0),Hi.set(this,void 0),Ui.set(this,0),Wi.set(this,void 0),this.init(e,t)}init(e,t){t?(Yi[0]=Yi[16]=Yi[1]=Yi[2]=Yi[3]=Yi[4]=Yi[5]=Yi[6]=Yi[7]=Yi[8]=Yi[9]=Yi[10]=Yi[11]=Yi[12]=Yi[13]=Yi[14]=Yi[15]=0,W(this,Oi,Yi)):W(this,Oi,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),e?(W(this,Mi,3238371032),W(this,Ni,914150663),W(this,Pi,812702999),W(this,Fi,4144912697),W(this,Ii,4290775857),W(this,Li,1750603025),W(this,Ri,1694076839),W(this,zi,3204075428)):(W(this,Mi,1779033703),W(this,Ni,3144134277),W(this,Pi,1013904242),W(this,Fi,2773480762),W(this,Ii,1359893119),W(this,Li,2600822924),W(this,Ri,528734635),W(this,zi,1541459225)),W(this,Di,W(this,Wi,W(this,ki,W(this,Vi,0)))),W(this,Ai,W(this,Bi,!1)),W(this,ji,!0),W(this,Hi,e)}update(e){if(G(this,Ai))return this;let t;t=e instanceof ArrayBuffer?new Uint8Array(e):e;let n=0,r=t.length,i=G(this,Oi);for(;n<r;){let e;if(G(this,Bi)&&(W(this,Bi,!1),i[0]=G(this,Di),i[16]=i[1]=i[2]=i[3]=i[4]=i[5]=i[6]=i[7]=i[8]=i[9]=i[10]=i[11]=i[12]=i[13]=i[14]=i[15]=0),typeof t!=`string`)for(e=G(this,Wi);n<r&&e<64;++n)i[e>>2]|=t[n]<<qi[e++&3];else for(e=G(this,Wi);n<r&&e<64;++n){let r=t.charCodeAt(n);r<128?i[e>>2]|=r<<qi[e++&3]:r<2048?(i[e>>2]|=(192|r>>6)<<qi[e++&3],i[e>>2]|=(128|r&63)<<qi[e++&3]):r<55296||r>=57344?(i[e>>2]|=(224|r>>12)<<qi[e++&3],i[e>>2]|=(128|r>>6&63)<<qi[e++&3],i[e>>2]|=(128|r&63)<<qi[e++&3]):(r=65536+((r&1023)<<10|t.charCodeAt(++n)&1023),i[e>>2]|=(240|r>>18)<<qi[e++&3],i[e>>2]|=(128|r>>12&63)<<qi[e++&3],i[e>>2]|=(128|r>>6&63)<<qi[e++&3],i[e>>2]|=(128|r&63)<<qi[e++&3])}W(this,Ui,e),W(this,ki,G(this,ki)+(e-G(this,Wi))),e>=64?(W(this,Di,i[16]),W(this,Wi,e-64),this.hash(),W(this,Bi,!0)):W(this,Wi,e)}return G(this,ki)>4294967295&&(W(this,Vi,G(this,Vi)+(G(this,ki)/4294967296<<0)),W(this,ki,G(this,ki)%4294967296)),this}finalize(){if(G(this,Ai))return;W(this,Ai,!0);let e=G(this,Oi),t=G(this,Ui);e[16]=G(this,Di),e[t>>2]|=Ki[t&3],W(this,Di,e[16]),t>=56&&(G(this,Bi)||this.hash(),e[0]=G(this,Di),e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=G(this,Vi)<<3|G(this,ki)>>>29,e[15]=G(this,ki)<<3,this.hash()}hash(){let e=G(this,Mi),t=G(this,Ni),n=G(this,Pi),r=G(this,Fi),i=G(this,Ii),a=G(this,Li),o=G(this,Ri),s=G(this,zi),c=G(this,Oi),l,u,d,f,p,m,h,g,_,v;for(let e=16;e<64;++e)f=c[e-15],l=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3,f=c[e-2],u=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10,c[e]=c[e-16]+l+c[e-7]+u<<0;v=t&n;for(let y=0;y<64;y+=4)G(this,ji)?(G(this,Hi)?(h=300032,f=c[0]-1413257819,s=f-150054599<<0,r=f+24177077<<0):(h=704751109,f=c[0]-210244248,s=f-1521486534<<0,r=f+143694565<<0),W(this,ji,!1)):(l=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),u=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),h=e&t,d=h^e&n^v,m=i&a^~i&o,f=s+u+m+Ji[y]+c[y],p=l+d,s=r+f<<0,r=f+p<<0),l=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),u=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),g=r&e,d=g^r&t^h,m=s&i^~s&a,f=o+u+m+Ji[y+1]+c[y+1],p=l+d,o=n+f<<0,n=f+p<<0,l=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),u=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),_=n&r,d=_^n&e^g,m=o&s^~o&i,f=a+u+m+Ji[y+2]+c[y+2],p=l+d,a=t+f<<0,t=f+p<<0,l=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),u=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),v=t&n,d=v^t&r^_,m=a&o^~a&s,f=i+u+m+Ji[y+3]+c[y+3],p=l+d,i=e+f<<0,e=f+p<<0;W(this,Mi,G(this,Mi)+e<<0),W(this,Ni,G(this,Ni)+t<<0),W(this,Pi,G(this,Pi)+n<<0),W(this,Fi,G(this,Fi)+r<<0),W(this,Ii,G(this,Ii)+i<<0),W(this,Li,G(this,Li)+a<<0),W(this,Ri,G(this,Ri)+o<<0),W(this,zi,G(this,zi)+s<<0)}hex(){this.finalize();let e=G(this,Mi),t=G(this,Ni),n=G(this,Pi),r=G(this,Fi),i=G(this,Ii),a=G(this,Li),o=G(this,Ri),s=G(this,zi),c=K[e>>28&15]+K[e>>24&15]+K[e>>20&15]+K[e>>16&15]+K[e>>12&15]+K[e>>8&15]+K[e>>4&15]+K[e&15]+K[t>>28&15]+K[t>>24&15]+K[t>>20&15]+K[t>>16&15]+K[t>>12&15]+K[t>>8&15]+K[t>>4&15]+K[t&15]+K[n>>28&15]+K[n>>24&15]+K[n>>20&15]+K[n>>16&15]+K[n>>12&15]+K[n>>8&15]+K[n>>4&15]+K[n&15]+K[r>>28&15]+K[r>>24&15]+K[r>>20&15]+K[r>>16&15]+K[r>>12&15]+K[r>>8&15]+K[r>>4&15]+K[r&15]+K[i>>28&15]+K[i>>24&15]+K[i>>20&15]+K[i>>16&15]+K[i>>12&15]+K[i>>8&15]+K[i>>4&15]+K[i&15]+K[a>>28&15]+K[a>>24&15]+K[a>>20&15]+K[a>>16&15]+K[a>>12&15]+K[a>>8&15]+K[a>>4&15]+K[a&15]+K[o>>28&15]+K[o>>24&15]+K[o>>20&15]+K[o>>16&15]+K[o>>12&15]+K[o>>8&15]+K[o>>4&15]+K[o&15];return G(this,Hi)||(c+=K[s>>28&15]+K[s>>24&15]+K[s>>20&15]+K[s>>16&15]+K[s>>12&15]+K[s>>8&15]+K[s>>4&15]+K[s&15]),c}toString(){return this.hex()}digest(){this.finalize();let e=G(this,Mi),t=G(this,Ni),n=G(this,Pi),r=G(this,Fi),i=G(this,Ii),a=G(this,Li),o=G(this,Ri),s=G(this,zi),c=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,n>>24&255,n>>16&255,n>>8&255,n&255,r>>24&255,r>>16&255,r>>8&255,r&255,i>>24&255,i>>16&255,i>>8&255,i&255,a>>24&255,a>>16&255,a>>8&255,a&255,o>>24&255,o>>16&255,o>>8&255,o&255];return G(this,Hi)||c.push(s>>24&255,s>>16&255,s>>8&255,s&255),c}array(){return this.digest()}arrayBuffer(){this.finalize();let e=new ArrayBuffer(G(this,Hi)?28:32),t=new DataView(e);return t.setUint32(0,G(this,Mi)),t.setUint32(4,G(this,Ni)),t.setUint32(8,G(this,Pi)),t.setUint32(12,G(this,Fi)),t.setUint32(16,G(this,Ii)),t.setUint32(20,G(this,Li)),t.setUint32(24,G(this,Ri)),G(this,Hi)||t.setUint32(28,G(this,zi)),e}};Di=new WeakMap,Oi=new WeakMap,ki=new WeakMap,Ai=new WeakMap,ji=new WeakMap,Mi=new WeakMap,Ni=new WeakMap,Pi=new WeakMap,Fi=new WeakMap,Ii=new WeakMap,Li=new WeakMap,Ri=new WeakMap,zi=new WeakMap,Bi=new WeakMap,Vi=new WeakMap,Hi=new WeakMap,Ui=new WeakMap,Wi=new WeakMap;function Zi(e){let t=new Xi;return t.update(e),parseInt(t.hex().substring(0,8),16)}var Qi=function(e){var t=`#`;return e.forEach(function(e){e<16&&(t+=0),t+=e.toString(16)}),t},$i=function(e,t,n){e/=360;var r=n<.5?n*(1+t):n+t-n*t,i=2*n-r;return[e+1/3,e,e-1/3].map(function(e){return e<0&&e++,e>1&&e--,e=e<1/6?i+(r-i)*6*e:e<.5?r:e<2/3?i+(r-i)*6*(2/3-e):i,Math.round(e*255)})},ea=class{constructor(e={}){let[t,n]=[e.lightness,e.saturation].map(function(e){return e=e===void 0?[.35,.5,.65]:e,Array.isArray(e)?e.concat():[e]});this.L=t,this.S=n,typeof e.hue==`number`&&(e.hue={min:e.hue,max:e.hue}),typeof e.hue==`object`&&!Array.isArray(e.hue)&&(e.hue=[e.hue]),e.hue===void 0&&(e.hue=[]),this.hueRanges=e.hue.map(function(e){return{min:e.min===void 0?0:e.min,max:e.max===void 0?360:e.max}}),this.hash=Zi,typeof e.hash==`function`&&(this.hash=e.hash),e.hash===`bkdr`&&(this.hash=Gi)}hsl(e){var t,n,r,i=this.hash(e),a=727;if(this.hueRanges.length){let e=this.hueRanges[i%this.hueRanges.length];t=i/this.hueRanges.length%a*(e.max-e.min)/a+e.min}else t=i%359;return i=Math.ceil(i/360),n=this.S[i%this.S.length],i=Math.ceil(i/this.S.length),r=this.L[i%this.L.length],[t,n,r]}rgb(e){var t=this.hsl(e);return $i.apply(this,t)}hex(e){return Qi(this.rgb(e))}};function ta(e,t){return e.locations?.length?e.locations:e.start>e.end?[{start:e.start,end:t-1},{start:0,end:e.end}]:[{start:e.start,end:e.end}]}function na(e,t,n){return e.filter(e=>e.start<n&&e.end>=t).map(e=>({start:Math.max(e.start,t)-t,end:Math.min(e.end,n-1)-t,startIsActual:e.start>=t,endIsActual:e.end<n}))}function ra(e,t,n){if(e.type!==`Insertion`||e.pointerPosition===void 0)return e.anchor;let r=Math.min(n-1,Math.max(0,Math.floor(e.pointerPosition+.5))),i=e=>t.some(t=>e>=t.start&&e<=t.end);return!i(r)&&i(r-1)&&r--,r}var ia=new ea({lightness:[.75,.9,.7,.8]}),aa=(e,t)=>{switch(e.type){case`CDS`:switch(e.name){case`S`:return`#ff7373`;case`nsp3`:return`#d3ffce`;case`leader`:return`#ff7f50`;case`nsp2`:return`#ddffdd`;case`nsp4`:return`#ff7373`;case`N`:return`#7fffd4`;case`E`:return`#ff7f50`;case`M`:return`#eeee88`;case`nsp12; RdRp`:return`#ff7f50`;case`nsp6`:return`#ee99ee`;case`nsp7`:return`#99ee99`;case`nsp8`:return`#ff7373`;case`nsp10`:return`#d3ffce`;case`nsp14`:return`#ff7f50`;case`nsp15`:return`#ddffdd`;case`nsp16`:return`#ffeeee`;case`nsp13`:return`#ff7f50`;default:return ia.hex(e.name+t+e.type)}case`gene`:return`blue`;case`misc_feature`:return`green`;case`5'UTR`:return`orange`;case`3'UTR`:return`orange`;default:return ia.hex(e.name+t+e.type)}},oa=e=>{switch(e){case`TTT`:case`TTC`:return`F`;case`TTA`:case`TTG`:case`CTT`:case`CTC`:case`CTA`:case`CTG`:return`L`;case`ATT`:case`ATC`:case`ATA`:return`I`;case`ATG`:return`M`;case`GTT`:case`GTC`:case`GTA`:case`GTG`:return`V`;case`TCT`:case`TCC`:case`TCA`:case`TCG`:case`AGT`:case`AGC`:return`S`;case`CCT`:case`CCC`:case`CCA`:case`CCG`:return`P`;case`ACT`:case`ACC`:case`ACA`:case`ACG`:return`T`;case`GCT`:case`GCC`:case`GCA`:case`GCG`:return`A`;case`TAT`:case`TAC`:return`Y`;case`TAA`:case`TAG`:case`TGA`:return`*`;case`CAT`:case`CAC`:return`H`;case`CAA`:case`CAG`:return`Q`;case`AAT`:case`AAC`:return`N`;case`AAA`:case`AAG`:return`K`;case`GAT`:case`GAC`:return`D`;case`GAA`:case`GAG`:return`E`;case`TGT`:case`TGC`:return`C`;case`TGG`:return`W`;case`CGT`:case`CGC`:case`CGA`:case`CGG`:case`AGA`:case`AGG`:return`R`;case`GGT`:case`GGC`:case`GGA`:case`GGG`:return`G`;default:return`X`}},sa=e=>typeof e==`number`&&!isNaN(e),ca=e=>typeof e==`string`,la=e=>typeof e==`function`,ua=e=>ca(e)||sa(e),da=e=>ca(e)||la(e)?e:null,fa=(e,t)=>e===!1||sa(e)&&e>0?e:t,pa=e=>(0,u.isValidElement)(e)||ca(e)||la(e)||sa(e);function ma(e,t,n=300){let{scrollHeight:r,style:i}=e;requestAnimationFrame(()=>{i.minHeight=`initial`,i.height=r+`px`,i.transition=`all ${n}ms`,requestAnimationFrame(()=>{i.height=`0`,i.padding=`0`,i.margin=`0`,setTimeout(t,n)})})}function ha({enter:e,exit:t,appendPosition:n=!1,collapse:r=!0,collapseDuration:i=300}){return function({children:a,position:o,preventExitTransition:s,done:c,nodeRef:l,isIn:d,playToast:f}){let p=n?`${e}--${o}`:e,m=n?`${t}--${o}`:t,h=(0,u.useRef)(0);return(0,u.useLayoutEffect)(()=>{let e=l.current,t=p.split(` `),n=r=>{r.target===l.current&&(f(),e.removeEventListener(`animationend`,n),e.removeEventListener(`animationcancel`,n),h.current===0&&r.type!==`animationcancel`&&e.classList.remove(...t))};e.classList.add(...t),e.addEventListener(`animationend`,n),e.addEventListener(`animationcancel`,n)},[]),(0,u.useEffect)(()=>{let e=l.current,t=()=>{e.removeEventListener(`animationend`,t),r?ma(e,c,i):c()};d||(s?t():(h.current=1,e.className+=` ${m}`,e.addEventListener(`animationend`,t)))},[d]),u.default.createElement(u.default.Fragment,null,a)}}function ga(e,t){return{content:_a(e.content,e.props),containerId:e.props.containerId,id:e.props.toastId,theme:e.props.theme,type:e.props.type,data:e.props.data||{},isLoading:e.props.isLoading,icon:e.props.icon,reason:e.removalReason,status:t}}function _a(e,t,n=!1){return(0,u.isValidElement)(e)&&!ca(e.type)?(0,u.cloneElement)(e,{closeToast:t.closeToast,toastProps:t,data:t.data,isPaused:n}):la(e)?e({closeToast:t.closeToast,toastProps:t,data:t.data,isPaused:n}):e}function va({closeToast:e,theme:t,ariaLabel:n=`close`}){return u.default.createElement(`button`,{className:`Toastify__close-button Toastify__close-button--${t}`,type:`button`,onClick:t=>{t.stopPropagation(),e(!0)},"aria-label":n},u.default.createElement(`svg`,{"aria-hidden":`true`,viewBox:`0 0 14 16`},u.default.createElement(`path`,{fillRule:`evenodd`,d:`M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z`})))}function ya({delay:e,isRunning:t,closeToast:n,type:r=`default`,hide:i,className:a,controlledProgress:o,progress:s,rtl:c,isIn:l,theme:d}){let f=i||o&&s===0,p={animationDuration:`${e}ms`,animationPlayState:t?`running`:`paused`};o&&(p.transform=`scaleX(${s})`);let m=P(`Toastify__progress-bar`,o?`Toastify__progress-bar--controlled`:`Toastify__progress-bar--animated`,`Toastify__progress-bar-theme--${d}`,`Toastify__progress-bar--${r}`,{"Toastify__progress-bar--rtl":c}),h=la(a)?a({rtl:c,type:r,defaultClassName:m}):P(m,a),g={[o&&s>=1?`onTransitionEnd`:`onAnimationEnd`]:o&&s<1?null:()=>{l&&n()}};return u.default.createElement(`div`,{className:`Toastify__progress-bar--wrp`,"data-hidden":f},u.default.createElement(`div`,{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${d} Toastify__progress-bar--${r}`}),u.default.createElement(`div`,{role:`progressbar`,"aria-hidden":f?`true`:`false`,"aria-label":`notification timer`,"aria-valuenow":o?Math.round(s*100):void 0,"aria-valuemin":0,"aria-valuemax":100,className:h,style:p,...g}))}var ba=1,xa=()=>`${ba++}`;function Sa(e,t,n){let r=1,i=0,a=[],o=[],s=t,c=new Map,l=new Set,u=e=>(l.add(e),()=>l.delete(e)),d=()=>{o=Array.from(c.values()),l.forEach(e=>e())},f=({containerId:t,toastId:n,updateId:r})=>{let i=t?t!==e:e!==1,a=c.has(n)&&r==null;return i||a},p=(e,t)=>{c.forEach(n=>{var r;(t==null||t===n.props.toastId)&&((r=n.toggle)==null||r.call(n,e))})},m=e=>{var t,r;e.isActive&&((r=(t=e.props)?.onClose)==null||r.call(t,e.removalReason),e.isActive=!1,n(ga(e,`removed`)))},h=e=>{if(e==null)c.forEach(m);else{let t=c.get(e);t&&m(t)}d()},g=()=>{i-=a.length,a=[]},_=e=>{var t,r;let{toastId:i,updateId:a}=e.props,o=a==null;e.staleId&&c.delete(e.staleId),e.isActive=!0,c.set(i,e),d(),n(ga(e,o?`added`:`updated`)),o&&((r=(t=e.props).onOpen)==null||r.call(t))};return{id:e,props:s,observe:u,toggle:p,removeToast:h,toasts:c,clearQueue:g,buildToast:(e,t)=>{if(f(t))return;let{toastId:n,updateId:o,data:l,staleId:u,delay:p}=t,m=o==null;m&&i++;let g={...s,style:s.toastStyle,key:r++,...Object.fromEntries(Object.entries(t).filter(([e,t])=>t!=null)),toastId:n,updateId:o,data:l,isIn:!1,className:da(t.className||s.toastClassName),progressClassName:da(t.progressClassName||s.progressClassName),autoClose:!t.isLoading&&fa(t.autoClose,s.autoClose),closeToast(e){let t=c.get(n);t&&(t.removalReason=e,h(n))},deleteToast(){if(c.get(n)!=null){if(c.delete(n),i--,i<0&&(i=0),a.length>0){_(a.shift());return}d()}}};g.closeButton=s.closeButton,t.closeButton===!1||pa(t.closeButton)?g.closeButton=t.closeButton:t.closeButton===!0&&(g.closeButton=!pa(s.closeButton)||s.closeButton);let v={content:e,props:g,staleId:u};s.limit&&s.limit>0&&i>s.limit&&m?a.push(v):sa(p)?setTimeout(()=>{_(v)},p):_(v)},setProps(e){s=e},setToggle:(e,t)=>{let n=c.get(e);n&&(n.toggle=t)},isToastActive:e=>c.get(e)?.isActive,getSnapshot:()=>o}}var Ca=new Map,wa=[],Ta=new Set,Ea=e=>Ta.forEach(t=>t(e)),Da=()=>Ca.size>0;function Oa(){wa.forEach(e=>Na(e.content,e.options)),wa=[]}var ka=(e,{containerId:t})=>Ca.get(t||1)?.toasts.get(e);function Aa(e,t){var n;if(t)return!!((n=Ca.get(t))!=null&&n.isToastActive(e));let r=!1;return Ca.forEach(t=>{t.isToastActive(e)&&(r=!0)}),r}function ja(e){if(!Da()){wa=wa.filter(t=>e!=null&&t.options.toastId!==e);return}if(e==null||ua(e))Ca.forEach(t=>{t.removeToast(e)});else if(e&&(`containerId`in e||`id`in e)){let t=Ca.get(e.containerId);t?t.removeToast(e.id):Ca.forEach(t=>{t.removeToast(e.id)})}}var Ma=(e={})=>{Ca.forEach(t=>{t.props.limit&&(!e.containerId||t.id===e.containerId)&&t.clearQueue()})};function Na(e,t){pa(e)&&(Da()||wa.push({content:e,options:t}),Ca.forEach(n=>{n.buildToast(e,t)}))}function Pa(e){var t;(t=Ca.get(e.containerId||1))==null||t.setToggle(e.id,e.fn)}function Fa(e,t){Ca.forEach(n=>{(t==null||!(t!=null&&t.containerId)||t?.containerId===n.id)&&n.toggle(e,t?.id)})}function Ia(e){let t=e.containerId||1;return{subscribe(n){let r=Sa(t,e,Ea);Ca.set(t,r);let i=r.observe(n);return Oa(),()=>{i(),Ca.delete(t)}},setProps(e){var n;(n=Ca.get(t))==null||n.setProps(e)},getSnapshot(){return Ca.get(t)?.getSnapshot()}}}function La(e){return Ta.add(e),()=>{Ta.delete(e)}}function Ra(e){return e&&(ca(e.toastId)||sa(e.toastId))?e.toastId:xa()}function za(e,t){return Na(e,t),t.toastId}function Ba(e,t){return{...t,type:t&&t.type||e,toastId:Ra(t)}}function Va(e){return(t,n)=>za(t,Ba(e,n))}function q(e,t){return za(e,Ba(`default`,t))}q.loading=(e,t)=>za(e,Ba(`default`,{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t}));function Ha(e,{pending:t,error:n,success:r},i){let a;t&&(a=ca(t)?q.loading(t,i):q.loading(t.render,{...i,...t}));let o={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},s=(e,t,n)=>{if(t==null){q.dismiss(a);return}let r={type:e,...o,...i,data:n},s=ca(t)?{render:t}:t;return a?q.update(a,{...r,...s}):q(s.render,{...r,...s}),n},c=la(e)?e():e;return c.then(e=>s(`success`,r,e)).catch(e=>s(`error`,n,e)),c}q.promise=Ha,q.success=Va(`success`),q.info=Va(`info`),q.error=Va(`error`),q.warning=Va(`warning`),q.warn=q.warning,q.dark=(e,t)=>za(e,Ba(`default`,{theme:`dark`,...t}));function Ua(e){ja(e)}q.dismiss=Ua,q.clearWaitingQueue=Ma,q.isActive=Aa,q.update=(e,t={})=>{let n=ka(e,t);if(n){let{props:r,content:i}=n,a={delay:100,...r,...t,toastId:t.toastId||e,updateId:xa()};a.toastId!==e&&(a.staleId=e);let o=a.render||i;delete a.render,za(o,a)}},q.done=e=>{q.update(e,{progress:1})},q.onChange=La,q.play=e=>Fa(!0,e),q.pause=e=>Fa(!1,e);function Wa(e){let{subscribe:t,getSnapshot:n,setProps:r}=(0,u.useRef)(Ia(e)).current;r(e);let i=(0,u.useSyncExternalStore)(t,n,n)?.slice();function a(t){if(!i)return[];let n=new Map;return e.newestOnTop&&i.reverse(),i.forEach(e=>{let{position:t}=e.props;n.has(t)||n.set(t,[]),n.get(t).push(e)}),Array.from(n,e=>t(e[0],e[1]))}return{getToastToRender:a,isToastActive:Aa,count:i?.length}}function Ga(e){let[t,n]=(0,u.useState)(!1),[r,i]=(0,u.useState)(!1),a=(0,u.useRef)(null),o=(0,u.useRef)({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:s,pauseOnHover:c,closeToast:l,onClick:d,closeOnClick:f}=e;Pa({id:e.toastId,containerId:e.containerId,fn:n}),(0,u.useEffect)(()=>{if(e.pauseOnFocusLoss)return p(),()=>{m()}},[e.pauseOnFocusLoss]);function p(){document.hasFocus()||v(),window.addEventListener(`focus`,_),window.addEventListener(`blur`,v)}function m(){window.removeEventListener(`focus`,_),window.removeEventListener(`blur`,v)}function h(t){if(e.draggable===!0||e.draggable===t.pointerType){y();let n=a.current;o.canCloseOnClick=!0,o.canDrag=!0,n.style.transition=`none`,e.draggableDirection===`x`?(o.start=t.clientX,o.removalDistance=n.offsetWidth*(e.draggablePercent/100)):(o.start=t.clientY,o.removalDistance=n.offsetHeight*(e.draggablePercent===80?e.draggablePercent*1.5:e.draggablePercent)/100)}}function g(t){let{top:n,bottom:r,left:i,right:o}=a.current.getBoundingClientRect();t.pointerType===`mouse`&&e.pauseOnHover&&t.clientX>=i&&t.clientX<=o&&t.clientY>=n&&t.clientY<=r?v():_()}function _(){n(!0)}function v(){n(!1)}function y(){o.didMove=!1,document.addEventListener(`pointermove`,x),document.addEventListener(`pointerup`,S)}function b(){document.removeEventListener(`pointermove`,x),document.removeEventListener(`pointerup`,S)}function x(n){let r=a.current;if(o.canDrag&&r){o.didMove=!0,t&&v(),e.draggableDirection===`x`?o.delta=n.clientX-o.start:o.delta=n.clientY-o.start,o.start!==n.clientX&&(o.canCloseOnClick=!1);let i=e.draggableDirection===`x`?`${o.delta}px, var(--y)`:`0, calc(${o.delta}px + var(--y))`;r.style.transform=`translate3d(${i},0)`,r.style.opacity=`${1-Math.abs(o.delta/o.removalDistance)}`}}function S(){b();let t=a.current;if(o.canDrag&&o.didMove&&t){if(o.canDrag=!1,Math.abs(o.delta)>o.removalDistance){i(!0),e.closeToast(!0),e.collapseAll();return}t.style.transition=`transform 0.2s, opacity 0.2s`,t.style.removeProperty(`transform`),t.style.removeProperty(`opacity`)}}let C={onPointerDown:h,onPointerUp:g};return s&&c&&(C.onMouseEnter=v,e.stacked||(C.onMouseLeave=_)),f&&(C.onClick=e=>{d&&d(e),o.canCloseOnClick&&l(!0)}),{playToast:_,pauseToast:v,isRunning:t,preventExitTransition:r,toastRef:a,eventHandlers:C}}var Ka=typeof window<`u`?u.useLayoutEffect:u.useEffect,qa=({theme:e,type:t,isLoading:n,...r})=>u.default.createElement(`svg`,{viewBox:`0 0 24 24`,width:`100%`,height:`100%`,fill:e===`colored`?`currentColor`:`var(--toastify-icon-color-${t})`,...r});function Ja(e){return u.default.createElement(qa,{...e},u.default.createElement(`path`,{d:`M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z`}))}function Ya(e){return u.default.createElement(qa,{...e},u.default.createElement(`path`,{d:`M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z`}))}function Xa(e){return u.default.createElement(qa,{...e},u.default.createElement(`path`,{d:`M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z`}))}function Za(e){return u.default.createElement(qa,{...e},u.default.createElement(`path`,{d:`M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z`}))}function Qa(){return u.default.createElement(`div`,{className:`Toastify__spinner`})}var $a={info:Ya,warning:Ja,success:Xa,error:Za,spinner:Qa},eo=e=>e in $a;function to({theme:e,type:t,isLoading:n,icon:r}){let i=null,a={theme:e,type:t};return r===!1||(la(r)?i=r({...a,isLoading:n}):(0,u.isValidElement)(r)?i=(0,u.cloneElement)(r,a):n?i=$a.spinner():eo(t)&&(i=$a[t](a))),i}var no=e=>{let{isRunning:t,preventExitTransition:n,toastRef:r,eventHandlers:i,playToast:a}=Ga(e),{closeButton:o,children:s,autoClose:c,onClick:l,type:d,hideProgressBar:f,closeToast:p,transition:m,position:h,className:g,style:_,progressClassName:v,updateId:y,role:b,progress:x,rtl:S,toastId:C,deleteToast:w,isIn:T,isLoading:E,closeOnClick:D,theme:O,ariaLabel:k}=e,A=P(`Toastify__toast`,`Toastify__toast-theme--${O}`,`Toastify__toast--${d}`,{"Toastify__toast--rtl":S},{"Toastify__toast--close-on-click":D}),j=la(g)?g({rtl:S,position:h,type:d,defaultClassName:A}):P(A,g),M=to(e),N=!!x||!c,F={closeToast:p,type:d,theme:O},I=null;return o===!1||(I=la(o)?o(F):(0,u.isValidElement)(o)?(0,u.cloneElement)(o,F):va(F)),u.default.createElement(m,{isIn:T,done:w,position:h,preventExitTransition:n,nodeRef:r,playToast:a},u.default.createElement(`div`,{id:C,tabIndex:0,onClick:l,"data-in":T,className:j,...i,style:_,ref:r,...T&&{role:b,"aria-label":k}},M!=null&&u.default.createElement(`div`,{className:P(`Toastify__toast-icon`,{"Toastify--animate-icon Toastify__zoom-enter":!E})},M),_a(s,e,!t),I,!e.customProgressBar&&u.default.createElement(ya,{...y&&!N?{key:`p-${y}`}:{},rtl:S,theme:O,delay:c,isRunning:t,isIn:T,closeToast:p,hide:f,type:d,className:v,controlledProgress:N,progress:x||0})))},ro=(e,t=!1)=>({enter:`Toastify--animate Toastify__${e}-enter`,exit:`Toastify--animate Toastify__${e}-exit`,appendPosition:t}),io=ha(ro(`bounce`,!0));ha(ro(`slide`,!0)),ha(ro(`zoom`)),ha(ro(`flip`));var ao={position:`top-right`,transition:io,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:`touch`,draggablePercent:80,draggableDirection:`x`,role:`alert`,theme:`light`,"aria-label":`Notifications Alt+T`,hotKeys:e=>e.altKey&&e.code===`KeyT`};function oo(e){let t={...ao,...e},n=e.stacked,[r,i]=(0,u.useState)(!0),a=(0,u.useRef)(null),{getToastToRender:o,isToastActive:s,count:c}=Wa(t),{className:l,style:d,rtl:f,containerId:p,hotKeys:m}=t;function h(e){let t=P(`Toastify__toast-container`,`Toastify__toast-container--${e}`,{"Toastify__toast-container--rtl":f});return la(l)?l({position:e,rtl:f,defaultClassName:t}):P(t,da(l))}function g(){n&&(i(!0),q.play())}return Ka(()=>{if(n){let e=a.current.querySelectorAll(`[data-in="true"]`),n=t.position?.includes(`top`),i=0,o=0;Array.from(e).reverse().forEach((e,t)=>{let a=e;a.classList.add(`Toastify__toast--stacked`),t>0&&(a.dataset.collapsed=`${r}`),a.dataset.pos||(a.dataset.pos=n?`top`:`bot`);let s=i*(r?.2:1)+(r?0:12*t),c=Math.max(.5,1-(r?o:0));a.style.setProperty(`--y`,`${n?s:s*-1}px`),a.style.setProperty(`--g`,`12`),a.style.setProperty(`--s`,`${c}`),i+=a.offsetHeight,o+=.025})}},[r,c,n]),(0,u.useEffect)(()=>{function e(e){var t;let n=a.current;m(e)&&((t=n?.querySelector(`[tabIndex="0"]`))==null||t.focus(),i(!1),q.pause()),e.key===`Escape`&&(document.activeElement===n||n!=null&&n.contains(document.activeElement))&&(i(!0),q.play())}return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[m]),u.default.createElement(`section`,{ref:a,className:`Toastify`,id:p,onMouseEnter:()=>{n&&(i(!1),q.pause())},onMouseLeave:g,"aria-live":`polite`,"aria-atomic":`false`,"aria-relevant":`additions text`,"aria-label":t[`aria-label`]},o((e,t)=>{let r=t.length?{...d}:{...d,pointerEvents:`none`};return u.default.createElement(`div`,{tabIndex:-1,className:h(e),"data-stacked":n,style:r,key:`c-${e}`},t.map(({content:e,props:t})=>u.default.createElement(no,{...t,stacked:n,collapseAll:g,isIn:s(t.toastId,t.containerId),key:`t-${t.key}`},e)))}))}var so=6,co=1;new ea({lightness:[.75,.9,.7,.8]});function lo(e){let t=e.slice().sort((e,t)=>e.start-t.start),n=[];return t.forEach(e=>{let t=!1;for(let r=0;r<n.length;r++){let i=!1;for(let t of n[r])if(e.start<=t.end&&e.end>=t.start){i=!0;break}if(!i){n[r].push(e),e.lane=r,t=!0;break}}t||(n.push([e]),e.lane=n.length-1)}),n.length}function uo(e,t){return!(e.left>t.right||e.right<t.left||e.top>t.bottom||e.bottom<t.top)}function fo(e,t,n,r,i,a,o){let s=n.length*6+10,c=a,l=a+o;if(l<c)return null;let u=e==0?e-5:e;for(let e=0;e<i;e++){let e={left:u,top:t,right:u+s,bottom:t+10};if(!r.some(t=>uo(e,t)))return r.push(e),{x:u};if(u+=10,u>l)break}return null}var po=({parsedSequence:e,rowStart:t,rowEnd:n,setHoveredInfo:r,rowId:i,intSearchInput:a,annotSearchInput:o,zoomLevel:s,whereMouseWentDown:c,setWhereMouseWentDown:l,whereMouseWentUp:u,setWhereMouseWentUp:f,whereMouseCurrentlyIs:p,setWhereMouseCurrentlyIs:m,sequenceHits:h,curSeqHitIndex:g,enableRC:_,visibleFeatures:v,differences:y=[],proteins:b})=>{let x=2**s,S=10*x,C=e.sequence,w=C.slice(t,n),T=v.filter(e=>ta(e,C.length).some(e=>e.start<n&&e.end>=t)),E=o?Si(T,o):[],D=a>=t&&a<=n||E.length>0,O=T.map((r,i)=>{let a=b?.[e.features.indexOf(r)],o=ta(r,C.length),c=na(o,t,n),l=o.reduce((e,t)=>e+t.end-t.start+1,0),u=[];if(s>-2&&(r.type===`CDS`||r.type===`mat_peptide`))for(let e=t;e<n;e++){let n=0;for(let i=0;i<o.length;i++){if(e>=o[i].start&&e<=o[i].end){let a=e,s=Math.floor((e-(o[i].start-n))/3),c=r.strand>0?s:l/3-s-1;if((e-(o[i].start-n))%3!=1)continue;let d=a,f=C.slice(d,d+1),p=a-o[i].start>0?a-1:o[i-1]?.end,m=C.slice(p,p+1),h=a<o[i].end?a+1:o[i+1]?.start,g=C.slice(h,h+1),_=m+f+g,v=oa(r.strand>0?_:xi(_));u.push({first:p-t,middle:a-t,last:h-t,aminoAcid:v,codonIndex:c,gene:r.name})}n+=o[i].end-o[i].start+1}}return a?.codons.length&&(u=a.codons.filter(e=>e.positions[1]>=t&&e.positions[1]<n).map(e=>({first:e.positions[0]-t,middle:e.positions[1]-t,last:e.positions[2]-t,aminoAcid:e.aminoAcid,codonIndex:e.codonIndex,gene:r.name}))),{start:Math.min(...c.map(e=>e.start)),end:Math.max(...c.map(e=>e.end)),proteinChanges:a?.changes||[],blocks:c,name:r.name,type:r.type,notes:r.notes,strand:r.strand,locations:o,codonMap:u,lane:0,key:i}}),k=lo(O),A=w.length*S,j=y.filter(e=>e.type===`Insertion`?e.start>=t&&(e.start<n||e.start===n&&n===C.length):e.start<n&&e.end>t),M=[],N=Math.max(A,120),P=j.map(e=>{let r=Math.max(t,e.start),i=Math.min(n,e.end),a=e.type===`Insertion`,o=a?(e.start-t-.5)*S:((r+i-1)/2-t)*S,s=a?`INS +${e.alternative}`:e.type===`Deletion`?`DEL ${e.reference}`:e.type===`Ambiguous`?`Coverage gap`:`${e.reference} → ${e.alternative}`,c=Math.max(8,Math.floor((N-20)/7)),l=s.length>c?`${s.slice(0,c-1)}…`:s,u=Math.min(N,l.length*7+16),d=Math.max(-S/2,Math.min(o-u/2,N-u)),f=M.findIndex(e=>e+8<=d);f===-1&&(f=M.length),M[f]=d+u;let p=a?`#1d4ed8`:e.type===`Deletion`?`#b91c1c`:e.type===`Ambiguous`?`#6d28d9`:`#92400e`,m=a?`#eff6ff`:e.type===`Deletion`?`#fef2f2`:e.type===`Ambiguous`?`#f5f3ff`:`#fffbeb`,h=Ti(e);return{...e,start:r,end:i,anchor:o,displayLabel:l,labelWidth:u,left:d,lane:f,color:p,background:m,description:h}}),F=P.length?18+M.length*28:0,I=70+k*20+F,L=Array.from({length:k},()=>[]);O.forEach(e=>{e.proteinLabels=e.proteinChanges.filter(r=>{let i=ra(r,e.locations,C.length);return i>=t&&i<n}).sort((e,t)=>e.anchor-t.anchor).map(n=>{let r=n.end>n.start+1?`${n.start+1}–${n.end}`:n.start+1,i=n.type===`Insertion`?`AA INS +${n.alternative} · after ${n.aaPosition}`:n.type===`Deletion`?`AA DEL ${n.reference} · ${r}`:n.type===`Frameshift`?`Frame shift · AA ${n.aaPosition}`:n.type===`Ambiguous`?`Coverage gap · AA ${r}`:`AA ${n.reference}${n.aaPosition} → ${n.alternative}`,a=Math.max(8,Math.floor((N-20)/7)),o=n.type===`Ambiguous`?`Coverage gap`:i,s=o.length>a?`${o.slice(0,a-1)}…`:o,c=Math.min(N,s.length*7+16),l=((n.pointerPosition??n.anchor)-t)*S,u=Math.max(-S/2,Math.min(l-c/2,N-c)),d=L[e.lane],f=d.findIndex(e=>e+8<=u);f===-1&&(f=d.length),d[f]=u+c;let p=n.type===`Insertion`?`#1d4ed8`:n.type===`Deletion`?`#b91c1c`:[`Frameshift`,`Ambiguous`].includes(n.type)?`#6d28d9`:`#92400e`;return{...n,text:i,description:Ti(n,e.name),label:s,labelWidth:c,anchor:l,left:u,lane:f,color:p}})});let R=[],z=0;L.forEach((e,t)=>{R[t]=t*20+z,z+=e.length?12+e.length*26:0}),I+=z;let ee=Math.ceil(A/(t>1e4?60:40)),te=Math.ceil(w.length/ee);te=[5,10,20,50,100,200,500,1e3,2e3,5e3,1e4,2e4,5e4,1e5,2e5,5e5,1e6,2e6,5e6,1e7].find(e=>e>=te)||te;let ne=t%te,re=Math.floor((n-t)/te)+1,ie=Array.from({length:re},(e,n)=>(n+1)*te+t-ne-1).map((e,r)=>{let i=(e-t)/(n-t)*A;return(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`line`,{x1:i,y1:0,x2:i,y2:10,stroke:`black`}),(0,d.jsx)(`text`,{x:i,y:20,textAnchor:`middle`,fontSize:`10`,children:e+1})]},r)}),ae=new Set;j.filter(e=>e.type===`Ambiguous`).forEach(e=>{for(let r=Math.max(t,e.start);r<Math.min(n,e.end);r++)ae.add(r)});let oe=null,se=null;s>-1&&(oe=w.split(``).map((e,n)=>{let i=n*S;return(0,d.jsx)(`text`,{x:i,y:10,textAnchor:`middle`,fontSize:s<-1?`11`:`12`,fontFamily:s<-.25?`Open Sans Condensed`:`sans-serif`,fontWeight:s<-.25?`600`:`400`,fillOpacity:ae.has(t+n)?.35:.9,onMouseEnter:()=>r({label:Ei({letter:e,position:n+t,changes:j})}),onMouseLeave:()=>r(null),children:e},n)}));let B={A:`T`,T:`A`,C:`G`,G:`C`,N:`N`};s>-1&&(se=w.split(``).map((e,n)=>{let i=n*S;return(0,d.jsx)(`text`,{x:i,y:10,textAnchor:`middle`,fontSize:s<-1?`11`:`12`,fontFamily:s<-.25?`Open Sans Condensed`:`sans-serif`,fontWeight:s<-.25?`600`:`400`,fillOpacity:ae.has(t+n)?.35:.9,onMouseEnter:()=>r({label:Ei({letter:B[e],position:n+t,changes:j,reverseComplement:!0,complement:e=>B[e]??e})}),onMouseLeave:()=>r(null),children:B[e]},n)}));let ce=e=>{let t=e.locations.map(e=>Math.min(e.start,e.end)).reduce((e,t)=>Math.min(e,t)),n=e.locations.map(e=>Math.max(e.start,e.end)).reduce((e,t)=>Math.max(e,t));l(t),f(n+1),e.locations.length>1&&q.info(`This feature has multiple locations. The selection will be from the start of the first location to the end of the last location.`)},le=[],ue=O.map(e=>{let t=e.start*S,n=(e.end-e.start)*S,i=L[e.lane].length,a=7+R[e.lane]+(i?12+i*26:0),o=e.notes?.product||``,c=e.type===`mat_peptide`?o:e.name,l=e.type===`mat_peptide`?e.name:o;return c===`Untitled Feature`&&(c=e.type),(0,d.jsxs)(`g`,{children:[e.proteinLabels.map((e,t)=>(0,d.jsx)(`path`,{d:`M ${e.left+e.labelWidth/2} ${a-14-e.lane*26} L ${e.anchor} ${a-7} L ${e.anchor} ${a+3}`,fill:`none`,stroke:e.color,strokeWidth:1.25},`aa-pointer-${t}`)),e.proteinLabels.map((e,t)=>(0,d.jsxs)(`g`,{role:`img`,"aria-label":e.description,onMouseEnter:()=>r({label:e.description}),onMouseLeave:()=>r(null),children:[(0,d.jsx)(`rect`,{x:e.left,y:a-34-e.lane*26,width:e.labelWidth,height:20,rx:4,fill:e.type===`Ambiguous`?`#f5f3ff`:`white`,stroke:e.color}),(0,d.jsx)(`text`,{x:e.left+e.labelWidth/2,y:a-20-e.lane*26,textAnchor:`middle`,fontSize:12,fontFamily:`monospace`,fontWeight:600,fill:e.color,children:e.label})]},`aa-label-${t}`)),(0,d.jsx)(`line`,{x1:t+2,y1:a+5,x2:t+n-2,y2:a+5,stroke:aa(e,o),strokeWidth:1.5}),e.blocks.map((t,n)=>{let i=t.start*S-5*x,s=t.end*S+5*x;return(0,d.jsx)(`path`,{d:`${e.strand<0?`M ${s} ${a}
|
|
9
|
+
`)),[]});var Nn=(e=>(e[e.None=0]=`None`,e[e.Closed=1]=`Closed`,e[e.Enter=2]=`Enter`,e[e.Leave=4]=`Leave`,e))(Nn||{});function Pn(e){let t={};for(let n in e)e[n]===!0&&(t[`data-${n}`]=``);return t}function Fn(e,t,n,r){let[i,a]=(0,u.useState)(n),{hasFlag:o,addFlag:s,removeFlag:c}=Mn(e&&i?3:0),l=(0,u.useRef)(!1),d=(0,u.useRef)(!1);return oe(()=>{var i;if(e){if(n&&a(!0),!t){n&&s(3);return}return(i=r?.start)==null||i.call(r,n),In(t,{inFlight:l,prepare(){d.current?d.current=!1:d.current=l.current,l.current=!0,!d.current&&(n?(s(3),c(4)):(s(4),c(2)))},run(){d.current?n?(c(3),s(4)):(c(4),s(3)):n?c(1):s(1)},done(){var e;d.current&&zn(t)||(l.current=!1,c(7),n||a(!1),(e=r?.end)==null||e.call(r,n))}})}},[e,n,t,ae()]),e?[i,{closed:o(1),enter:o(2),leave:o(4),transition:o(2)||o(4)}]:[n,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function In(e,{prepare:t,run:n,done:r,inFlight:i}){let a=ie();return Rn(e,{prepare:t,inFlight:i}),a.nextFrame(()=>{n(),a.requestAnimationFrame(()=>{a.add(Ln(e,r))})}),a.dispose}function Ln(e,t){let n=ie();if(!e)return n.dispose;let r=!1;n.add(()=>{r=!0});let i=e.getAnimations?.call(e).filter(e=>e instanceof CSSTransition)??[];return i.length===0?(t(),n.dispose):(Promise.allSettled(i.map(e=>e.finished)).then(()=>{r||t()}),n.dispose)}function Rn(e,{inFlight:t,prepare:n}){if(t!=null&&t.current){n();return}let r=e.style.transition;e.style.transition=`none`,n(),e.offsetHeight,e.style.transition=r}function zn(e){return(e.getAnimations?.call(e)??[]).some(e=>e instanceof CSSTransition&&e.playState!==`finished`)}function Bn(e,t){let n=(0,u.useRef)([]),r=B(e);(0,u.useEffect)(()=>{let e=[...n.current];for(let[i,a]of t.entries())if(n.current[i]!==a){let i=r(t,e);return n.current=t,i}},[r,...t])}var Vn=(0,u.createContext)(null);Vn.displayName=`OpenClosedContext`;var Hn=(e=>(e[e.Open=1]=`Open`,e[e.Closed=2]=`Closed`,e[e.Closing=4]=`Closing`,e[e.Opening=8]=`Opening`,e))(Hn||{});function Un(){return(0,u.useContext)(Vn)}function Wn({value:e,children:t}){return u.default.createElement(Vn.Provider,{value:e},t)}function Gn({children:e}){return u.default.createElement(Vn.Provider,{value:null},e)}function Kn(e){function t(){document.readyState!==`loading`&&(e(),document.removeEventListener(`DOMContentLoaded`,t))}typeof window<`u`&&typeof document<`u`&&(document.addEventListener(`DOMContentLoaded`,t),t())}var qn=[];Kn(()=>{function e(e){if(!U(e.target)||e.target===document.body||qn[0]===e.target)return;let t=e.target;t=t.closest(Qt),qn.unshift(t??e.target),qn=qn.filter(e=>e!=null&&e.isConnected),qn.splice(10)}window.addEventListener(`click`,e,{capture:!0}),window.addEventListener(`mousedown`,e,{capture:!0}),window.addEventListener(`focus`,e,{capture:!0}),document.body.addEventListener(`click`,e,{capture:!0}),document.body.addEventListener(`mousedown`,e,{capture:!0}),document.body.addEventListener(`focus`,e,{capture:!0})});function Jn(e){let t=B(e),n=(0,u.useRef)(!1);(0,u.useEffect)(()=>(n.current=!1,()=>{n.current=!0,re(()=>{n.current&&t()})}),[t])}function Yn(){let e=typeof document>`u`;return`useSyncExternalStore`in u&&(e=>e.useSyncExternalStore)(u)(()=>()=>{},()=>!1,()=>!e)}function Xn(){let e=Yn(),[t,n]=u.useState(R.isHandoffComplete);return t&&R.isHandoffComplete===!1&&n(!1),u.useEffect(()=>{t!==!0&&n(!0)},[t]),u.useEffect(()=>R.handoff(),[]),!e&&t}var Zn=(0,u.createContext)(!1);function Qn(){return(0,u.useContext)(Zn)}function $n(e){return u.default.createElement(Zn.Provider,{value:e.force},e.children)}function er(e){let t=Qn(),n=(0,u.useContext)(ar),[r,i]=(0,u.useState)(()=>{if(!t&&n!==null)return n.current??null;if(R.isServer)return null;let r=e?.getElementById(`headlessui-portal-root`);if(r)return r;if(e===null)return null;let i=e.createElement(`div`);return i.setAttribute(`id`,`headlessui-portal-root`),e.body.appendChild(i)});return(0,u.useEffect)(()=>{r!==null&&(e!=null&&e.body.contains(r)||e==null||e.body.appendChild(r))},[r,e]),(0,u.useEffect)(()=>{t||n!==null&&i(n.current)},[n,i,t]),r}var tr=u.Fragment,nr=ye(function(e,t){let{ownerDocument:n=null,...r}=e,i=(0,u.useRef)(null),a=Re(Le(e=>{i.current=e}),t),o=xn(i.current),s=er(n??o),c=(0,u.useContext)(sr),l=ae(),d=Xn(),p=H();return Jn(()=>{var e;s&&s.childNodes.length<=0&&((e=s.parentElement)==null||e.removeChild(s))}),!s||!d?null:(0,f.createPortal)(u.default.createElement(`div`,{"data-headlessui-portal":``,ref:e=>{l.dispose(),c&&e&&l.add(c.register(e))}},p({ourProps:{ref:a},theirProps:r,slot:{},defaultTag:tr,name:`Portal`})),s)});function rr(e,t){let n=Re(t),{enabled:r=!0,ownerDocument:i,...a}=e,o=H();return r?u.default.createElement(nr,{...a,ownerDocument:i,ref:n}):o({ourProps:{ref:n},theirProps:a,slot:{},defaultTag:tr,name:`Portal`})}var ir=u.Fragment,ar=(0,u.createContext)(null);function or(e,t){let{target:n,...r}=e,i={ref:Re(t)},a=H();return u.default.createElement(ar.Provider,{value:n},a({ourProps:i,theirProps:r,defaultTag:ir,name:`Popover.Group`}))}var sr=(0,u.createContext)(null);function cr(){let e=(0,u.useContext)(sr),t=(0,u.useRef)([]),n=B(n=>(t.current.push(n),e&&e.register(n),()=>r(n))),r=B(n=>{let r=t.current.indexOf(n);r!==-1&&t.current.splice(r,1),e&&e.unregister(n)}),i=(0,u.useMemo)(()=>({register:n,unregister:r,portals:t}),[n,r,t]);return[t,(0,u.useMemo)(()=>function({children:e}){return u.default.createElement(sr.Provider,{value:i},e)},[i])]}var lr=ye(rr),ur=ye(or),dr=Object.assign(lr,{Group:ur});function fr(e,t=typeof document<`u`?document.defaultView:null,n){let r=Gt(e,`escape`);Sn(t,`keydown`,e=>{r&&(e.defaultPrevented||e.key===Ke.Escape&&n(e))})}function pr(){let[e]=(0,u.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`?window.matchMedia(`(pointer: coarse)`):null),[t,n]=(0,u.useState)(e?.matches??!1);return oe(()=>{if(!e)return;function t(e){n(e.matches)}return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[e]),t}function mr({defaultContainers:e=[],portals:t,mainTreeNode:n}={}){let r=B(()=>{let r=z(n),i=[];for(let t of e)t!==null&&(je(t)?i.push(t):`current`in t&&je(t.current)&&i.push(t.current));if(t!=null&&t.current)for(let e of t.current)i.push(e);for(let e of r?.querySelectorAll(`html > *, body > *`)??[])e!==document.body&&e!==document.head&&je(e)&&e.id!==`headlessui-portal-root`&&(n&&(e.contains(n)||e.contains(n?.getRootNode()?.host))||i.some(t=>e.contains(t))||i.push(e));return i});return{resolveContainers:r,contains:B(e=>r().some(t=>t.contains(e)))}}var hr=(0,u.createContext)(null);function gr({children:e,node:t}){let[n,r]=(0,u.useState)(null),i=_r(t??n);return u.default.createElement(hr.Provider,{value:i},e,i===null&&u.default.createElement(ke,{features:De.Hidden,ref:e=>{if(e){for(let t of z(e)?.querySelectorAll(`html > *, body > *`)??[])if(t!==document.body&&t!==document.head&&je(t)&&t!=null&&t.contains(e)){r(t);break}}}}))}function _r(e=null){return(0,u.useContext)(hr)??e}function vr(){let e=(0,u.useRef)(!1);return oe(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var yr=(e=>(e[e.Forwards=0]=`Forwards`,e[e.Backwards=1]=`Backwards`,e))(yr||{});function br(){let e=(0,u.useRef)(0);return vn(!0,`keydown`,t=>{t.key===`Tab`&&(e.current=+!!t.shiftKey)},!0),e}function xr(e){if(!e)return new Set;if(typeof e==`function`)return new Set(e());let t=new Set;for(let n of e.current)je(n.current)&&t.add(n.current);return t}var Sr=`div`,Cr=(e=>(e[e.None=0]=`None`,e[e.InitialFocus=1]=`InitialFocus`,e[e.TabLock=2]=`TabLock`,e[e.FocusLock=4]=`FocusLock`,e[e.RestoreFocus=8]=`RestoreFocus`,e[e.AutoFocus=16]=`AutoFocus`,e))(Cr||{});function wr(e,t){let n=(0,u.useRef)(null),r=Re(n,t),{initialFocus:i,initialFocusFallback:a,containers:o,features:s=15,...c}=e;Xn()||(s=0);let l=xn(n.current);Or(s,{ownerDocument:l});let d=kr(s,{ownerDocument:l,container:n,initialFocus:i,initialFocusFallback:a});Ar(s,{ownerDocument:l,container:n,containers:o,previousActiveElement:d});let f=br(),p=B(e=>{if(!Me(n.current))return;let t=n.current;(e=>e())(()=>{V(f.current,{[yr.Forwards]:()=>{pn(t,en.First,{skipElements:[e.relatedTarget,a]})},[yr.Backwards]:()=>{pn(t,en.Last,{skipElements:[e.relatedTarget,a]})}})})}),m=Gt(!!(s&2),`focus-trap#tab-lock`),h=ae(),g=(0,u.useRef)(!1),_={ref:r,onKeyDown(e){e.key==`Tab`&&(g.current=!0,h.requestAnimationFrame(()=>{g.current=!1}))},onBlur(e){if(!(s&4))return;let t=xr(o);Me(n.current)&&t.add(n.current);let r=e.relatedTarget;U(r)&&r.dataset.headlessuiFocusGuard!==`true`&&(jr(t,r)||(g.current?pn(n.current,V(f.current,{[yr.Forwards]:()=>en.Next,[yr.Backwards]:()=>en.Previous})|en.WrapAround,{relativeTo:e.target}):U(e.target)&&ln(e.target)))}},v=H();return u.default.createElement(u.default.Fragment,null,m&&u.default.createElement(ke,{as:`button`,type:`button`,"data-headlessui-focus-guard":!0,onFocus:p,features:De.Focusable}),v({ourProps:_,theirProps:c,defaultTag:Sr,name:`FocusTrap`}),m&&u.default.createElement(ke,{as:`button`,type:`button`,"data-headlessui-focus-guard":!0,onFocus:p,features:De.Focusable}))}var Tr=ye(wr),Er=Object.assign(Tr,{features:Cr});function Dr(e=!0){let t=(0,u.useRef)(qn.slice());return Bn(([e],[n])=>{n===!0&&e===!1&&re(()=>{t.current.splice(0)}),n===!1&&e===!0&&(t.current=qn.slice())},[e,qn,t]),B(()=>t.current.find(e=>e!=null&&e.isConnected)??null)}function Or(e,{ownerDocument:t}){let n=!!(e&8),r=Dr(n);Bn(()=>{n||ne(t?.body)&&ln(r())},[n]),Jn(()=>{n&&ln(r())})}function kr(e,{ownerDocument:t,container:n,initialFocus:r,initialFocusFallback:i}){let a=(0,u.useRef)(null),o=Gt(!!(e&1),`focus-trap#initial-focus`),s=vr();return Bn(()=>{if(e===0)return;if(!o){i!=null&&i.current&&ln(i.current);return}let c=n.current;c&&re(()=>{if(!s.current)return;let n=t?.activeElement;if(r!=null&&r.current){if(r?.current===n){a.current=n;return}}else if(c.contains(n)){a.current=n;return}if(r!=null&&r.current)ln(r.current);else{if(e&16){if(pn(c,en.First|en.AutoFocus)!==tn.Error)return}else if(pn(c,en.First)!==tn.Error)return;if(i!=null&&i.current&&(ln(i.current),t?.activeElement===i.current))return;console.warn(`There are no focusable elements inside the <FocusTrap />`)}a.current=t?.activeElement})},[i,o,e]),a}function Ar(e,{ownerDocument:t,container:n,containers:r,previousActiveElement:i}){let a=vr(),o=!!(e&4);Sn(t?.defaultView,`focus`,e=>{if(!o||!a.current)return;let t=xr(r);Me(n.current)&&t.add(n.current);let s=i.current;if(!s)return;let c=e.target;Me(c)?jr(t,c)?(i.current=c,ln(c)):(e.preventDefault(),e.stopPropagation(),ln(s)):ln(i.current)},!0)}function jr(e,t){for(let n of e)if(n.contains(t))return!0;return!1}function Mr(e){return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||!we(e.as??Br)||u.default.Children.count(e.children)===1}var Nr=(0,u.createContext)(null);Nr.displayName=`TransitionContext`;var Pr=(e=>(e.Visible=`visible`,e.Hidden=`hidden`,e))(Pr||{});function Fr(){let e=(0,u.useContext)(Nr);if(e===null)throw Error(`A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.`);return e}function Ir(){let e=(0,u.useContext)(Lr);if(e===null)throw Error(`A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.`);return e}var Lr=(0,u.createContext)(null);Lr.displayName=`NestingContext`;function Rr(e){return`children`in e?Rr(e.children):e.current.filter(({el:e})=>e.current!==null).filter(({state:e})=>e===`visible`).length>0}function zr(e,t){let n=se(e),r=(0,u.useRef)([]),i=vr(),a=ae(),o=B((e,t=pe.Hidden)=>{let o=r.current.findIndex(({el:t})=>t===e);o!==-1&&(V(t,{[pe.Unmount](){r.current.splice(o,1)},[pe.Hidden](){r.current[o].state=`hidden`}}),a.microTask(()=>{var e;!Rr(r)&&i.current&&((e=n.current)==null||e.call(n))}))}),s=B(e=>{let t=r.current.find(({el:t})=>t===e);return t?t.state!==`visible`&&(t.state=`visible`):r.current.push({el:e,state:`visible`}),()=>o(e,pe.Unmount)}),c=(0,u.useRef)([]),l=(0,u.useRef)(Promise.resolve()),d=(0,u.useRef)({enter:[],leave:[]}),f=B((e,n,r)=>{c.current.splice(0),t&&(t.chains.current[n]=t.chains.current[n].filter(([t])=>t!==e)),t?.chains.current[n].push([e,new Promise(e=>{c.current.push(e)})]),t?.chains.current[n].push([e,new Promise(e=>{Promise.all(d.current[n].map(([e,t])=>t)).then(()=>e())})]),n===`enter`?l.current=l.current.then(()=>t?.wait.current).then(()=>r(n)):r(n)}),p=B((e,t,n)=>{Promise.all(d.current[t].splice(0).map(([e,t])=>t)).then(()=>{var e;(e=c.current.shift())==null||e()}).then(()=>n(t))});return(0,u.useMemo)(()=>({children:r,register:s,unregister:o,onStart:f,onStop:p,wait:l,chains:d}),[s,o,r,f,p,d,l])}var Br=u.Fragment,Vr=fe.RenderStrategy;function Hr(e,t){var n;let{transition:r=!0,beforeEnter:i,afterEnter:a,beforeLeave:o,afterLeave:s,enter:c,enterFrom:l,enterTo:d,entered:f,leave:p,leaveFrom:m,leaveTo:h,...g}=e,[_,v]=(0,u.useState)(null),y=(0,u.useRef)(null),b=Mr(e),x=Re(...b?[y,t,v]:t===null?[]:[t]),S=(n=g.unmount)==null||n?pe.Unmount:pe.Hidden,{show:C,appear:w,initial:T}=Fr(),[E,D]=(0,u.useState)(C?`visible`:`hidden`),O=Ir(),{register:k,unregister:A}=O;oe(()=>k(y),[k,y]),oe(()=>{if(S===pe.Hidden&&y.current){if(C&&E!==`visible`){D(`visible`);return}return V(E,{hidden:()=>A(y),visible:()=>k(y)})}},[E,y,k,A,C,S]);let j=Xn();oe(()=>{if(b&&j&&E===`visible`&&y.current===null)throw Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[y,E,j,b]);let M=T&&!w,N=w&&C&&T,P=(0,u.useRef)(!1),F=zr(()=>{P.current||(D(`hidden`),A(y))},O),I=B(e=>{P.current=!0;let t=e?`enter`:`leave`;F.onStart(y,t,e=>{e===`enter`?i?.():e===`leave`&&o?.()})}),L=B(e=>{let t=e?`enter`:`leave`;P.current=!1,F.onStop(y,t,e=>{e===`enter`?a?.():e===`leave`&&s?.()}),t===`leave`&&!Rr(F)&&(D(`hidden`),A(y))});(0,u.useEffect)(()=>{b&&r||(I(C),L(C))},[C,b,r]);let[,R]=Fn(!(!r||!b||!j||M),_,C,{start:I,end:L}),z=be({ref:x,className:de(g.className,N&&c,N&&l,R.enter&&c,R.enter&&R.closed&&l,R.enter&&!R.closed&&d,R.leave&&p,R.leave&&!R.closed&&m,R.leave&&R.closed&&h,!R.transition&&C&&f)?.trim()||void 0,...Pn(R)}),ee=0;E===`visible`&&(ee|=Hn.Open),E===`hidden`&&(ee|=Hn.Closed),C&&E===`hidden`&&(ee|=Hn.Opening),!C&&E===`visible`&&(ee|=Hn.Closing);let te=H();return u.default.createElement(Lr.Provider,{value:F},u.default.createElement(Wn,{value:ee},te({ourProps:z,theirProps:g,defaultTag:Br,features:Vr,visible:E===`visible`,name:`Transition.Child`})))}function Ur(e,t){let{show:n,appear:r=!1,unmount:i=!0,...a}=e,o=(0,u.useRef)(null),s=Re(...Mr(e)?[o,t]:t===null?[]:[t]);Xn();let c=Un();if(n===void 0&&c!==null&&(n=(c&Hn.Open)===Hn.Open),n===void 0)throw Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[l,d]=(0,u.useState)(n?`visible`:`hidden`),f=zr(()=>{n||d(`hidden`)}),[p,m]=(0,u.useState)(!0),h=(0,u.useRef)([n]);oe(()=>{p!==!1&&h.current[h.current.length-1]!==n&&(h.current.push(n),m(!1))},[h,n]);let g=(0,u.useMemo)(()=>({show:n,appear:r,initial:p}),[n,r,p]);oe(()=>{n?d(`visible`):!Rr(f)&&o.current!==null&&d(`hidden`)},[n,f]);let _={unmount:i},v=B(()=>{var t;p&&m(!1),(t=e.beforeEnter)==null||t.call(e)}),y=B(()=>{var t;p&&m(!1),(t=e.beforeLeave)==null||t.call(e)}),b=H();return u.default.createElement(Lr.Provider,{value:f},u.default.createElement(Nr.Provider,{value:g},b({ourProps:{..._,as:u.Fragment,children:u.default.createElement(Kr,{ref:s,..._,...a,beforeEnter:v,beforeLeave:y})},theirProps:{},defaultTag:u.Fragment,features:Vr,visible:l===`visible`,name:`Transition`})))}function Wr(e,t){let n=(0,u.useContext)(Nr)!==null,r=Un()!==null;return u.default.createElement(u.default.Fragment,null,!n&&r?u.default.createElement(Gr,{ref:t,...e}):u.default.createElement(Kr,{ref:t,...e}))}var Gr=ye(Ur),Kr=ye(Hr),qr=ye(Wr),Jr=Object.assign(Gr,{Child:qr,Root:Gr}),Yr=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(Yr||{}),Xr=(e=>(e[e.SetTitleId=0]=`SetTitleId`,e))(Xr||{}),Zr={0(e,t){return e.titleId===t.id?e:{...e,titleId:t.id}}},Qr=(0,u.createContext)(null);Qr.displayName=`DialogContext`;function $r(e){let t=(0,u.useContext)(Qr);if(t===null){let t=Error(`<${e} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,$r),t}return t}function ei(e,t){return V(t.type,Zr,e,t)}var ti=ye(function(e,t){let n=(0,u.useId)(),{id:r=`headlessui-dialog-${n}`,open:i,onClose:a,initialFocus:o,role:s=`dialog`,autoFocus:c=!0,__demoMode:l=!1,unmount:d=!1,...f}=e,p=(0,u.useRef)(!1);s=function(){return s===`dialog`||s===`alertdialog`?s:(p.current||(p.current=!0,console.warn(`Invalid role [${s}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),`dialog`)}();let m=Un();i===void 0&&m!==null&&(i=(m&Hn.Open)===Hn.Open);let h=(0,u.useRef)(null),g=Re(h,t),_=xn(h.current),v=+!i,[y,b]=(0,u.useReducer)(ei,{titleId:null,descriptionId:null,panelRef:(0,u.createRef)()}),x=B(()=>a(!1)),S=B(e=>b({type:0,id:e})),C=Xn()?v===0:!1,[w,T]=cr(),E={get current(){return y.panelRef.current??h.current}},D=_r(),{resolveContainers:O}=mr({mainTreeNode:D,portals:w,defaultContainers:[E]}),k=m!==null&&(m&Hn.Closing)===Hn.Closing;Xt(l||k?!1:C,{allowed:B(()=>[h.current?.closest(`[data-headlessui-portal]`)??null]),disallowed:B(()=>[D?.closest(`body > *:not(#headlessui-portal-root)`)??null])});let A=zt.get(null);oe(()=>{if(C)return A.actions.push(r),()=>A.actions.pop(r)},[A,r,C]);let j=Ut(A,(0,u.useCallback)(e=>A.selectors.isTop(e,r),[A,r]));bn(j,O,e=>{e.preventDefault(),x()}),fr(j,_?.defaultView,e=>{e.preventDefault(),e.stopPropagation(),document.activeElement&&`blur`in document.activeElement&&typeof document.activeElement.blur==`function`&&document.activeElement.blur(),x()}),jn(l||k?!1:C,_,O),Zt(C,h,x);let[M,N]=Ve(),P=(0,u.useMemo)(()=>[{dialogState:v,close:x,setTitleId:S,unmount:d},y],[v,x,S,d,y]),F=ce({open:v===0}),I={ref:g,id:r,role:s,tabIndex:-1,"aria-modal":l?void 0:v===0||void 0,"aria-labelledby":y.titleId,"aria-describedby":M,unmount:d},L=!pr(),R=Cr.None;C&&!l&&(R|=Cr.RestoreFocus,R|=Cr.TabLock,c&&(R|=Cr.AutoFocus),L&&(R|=Cr.InitialFocus));let z=H();return u.default.createElement(Gn,null,u.default.createElement($n,{force:!0},u.default.createElement(dr,null,u.default.createElement(Qr.Provider,{value:P},u.default.createElement(ur,{target:h},u.default.createElement($n,{force:!1},u.default.createElement(N,{slot:F},u.default.createElement(T,null,u.default.createElement(Er,{initialFocus:o,initialFocusFallback:h,containers:O,features:R},u.default.createElement(Je,{value:x},z({ourProps:I,theirProps:f,slot:F,defaultTag:ni,features:ri,visible:v===0,name:`Dialog`})))))))))))}),ni=`div`,ri=fe.RenderStrategy|fe.Static;function ii(e,t){let{transition:n=!1,open:r,...i}=e,a=Un(),o=e.hasOwnProperty(`open`)||a!==null,s=e.hasOwnProperty(`onClose`);if(!o&&!s)throw Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!o)throw Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!s)throw Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if(!a&&typeof e.open!=`boolean`)throw Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${e.open}`);if(typeof e.onClose!=`function`)throw Error(`You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${e.onClose}`);return(r!==void 0||n)&&!i.static?u.default.createElement(gr,null,u.default.createElement(Jr,{show:r,transition:n,unmount:i.unmount},u.default.createElement(ti,{ref:t,...i}))):u.default.createElement(gr,null,u.default.createElement(ti,{ref:t,open:r,...i}))}var ai=`div`;function oi(e,t){let n=(0,u.useId)(),{id:r=`headlessui-dialog-panel-${n}`,transition:i=!1,...a}=e,[{dialogState:o,unmount:s},c]=$r(`Dialog.Panel`),l=Re(t,c.panelRef),d=ce({open:o===0}),f={ref:l,id:r,onClick:B(e=>{e.stopPropagation()})},p=i?qr:u.Fragment,m=i?{unmount:s}:{},h=H();return u.default.createElement(p,{...m},h({ourProps:f,theirProps:a,slot:d,defaultTag:ai,name:`Dialog.Panel`}))}var si=`div`;function ci(e,t){let{transition:n=!1,...r}=e,[{dialogState:i,unmount:a}]=$r(`Dialog.Backdrop`),o=ce({open:i===0}),s={ref:t,"aria-hidden":!0},c=n?qr:u.Fragment,l=n?{unmount:a}:{},d=H();return u.default.createElement(c,{...l},d({ourProps:s,theirProps:r,slot:o,defaultTag:si,name:`Dialog.Backdrop`}))}var li=`h2`;function ui(e,t){let n=(0,u.useId)(),{id:r=`headlessui-dialog-title-${n}`,...i}=e,[{dialogState:a,setTitleId:o}]=$r(`Dialog.Title`),s=Re(t);(0,u.useEffect)(()=>(o(r),()=>o(null)),[r,o]);let c=ce({open:a===0}),l={ref:s,id:r};return H()({ourProps:l,theirProps:i,slot:c,defaultTag:li,name:`Dialog.Title`})}var di=ye(ii),fi=ye(oi);ye(ci);var pi=ye(ui),mi=Object.assign(di,{Panel:fi,Title:pi,Description:Ge}),hi="function e(e,t){if(!t||typeof t.sequence!=`string`)throw Error(`Expected an aligned DNA sequence.`);let n=t.sequence.toUpperCase();if(!e.length||n.length!==e.length)throw Error(`Aligned sequence length must match the reference.`);if(/[^ACGTRYSWKMBDHVN-]/.test(n))throw Error(`Aligned sequences must contain IUPAC DNA bases or deletion gaps (-).`);let r=0,i=n.length;for(;r<i&&n[r]===`N`;)r++;for(;i>r&&n[i-1]===`N`;)i--;let a=r===i?{start:0,end:0}:{start:r,end:i},o=[],s=0;for(let t=a.start;t<a.end;){if(n[t]===e[t]){t++;continue}let r=n[t]===`-`?`Deletion`:/[^ACGT]/.test(n[t]+e[t])?`Ambiguous`:`Substitution`,i=t+1;if(r===`Deletion`||r===`Ambiguous`)for(;i<a.end&&n[i]!==e[i]&&(r===`Deletion`?n[i]===`-`:n[i]!==`-`&&/[^ACGT]/.test(n[i]+e[i]));)i++;o.push({type:r,start:t,end:i,reference:e.slice(t,i),alternative:r===`Deletion`?``:n.slice(t,i)}),s+=i-t,t=i}let c=new Set;for(let n of t.insertions||[]){let t=n.position,r=typeof n.sequence==`string`?n.sequence.toUpperCase():``;if(!Number.isInteger(t)||t<0||t>e.length||c.has(t))throw Error(`Insertions need unique integer positions from 0 to the reference length.`);if(!r||/[^ACGTRYSWKMBDHVN]/.test(r))throw Error(`Insertions must contain ungapped IUPAC DNA bases.`);c.add(t),o.push({type:`Insertion`,start:t,end:t,reference:``,alternative:r}),s+=r.length}return o.sort((e,t)=>e.start-t.start||e.end-t.end),{name:t.name||`Alternative`,distance:s,differences:o,coverage:a}}const t=e=>{switch(e){case`TTT`:case`TTC`:return`F`;case`TTA`:case`TTG`:case`CTT`:case`CTC`:case`CTA`:case`CTG`:return`L`;case`ATT`:case`ATC`:case`ATA`:return`I`;case`ATG`:return`M`;case`GTT`:case`GTC`:case`GTA`:case`GTG`:return`V`;case`TCT`:case`TCC`:case`TCA`:case`TCG`:case`AGT`:case`AGC`:return`S`;case`CCT`:case`CCC`:case`CCA`:case`CCG`:return`P`;case`ACT`:case`ACC`:case`ACA`:case`ACG`:return`T`;case`GCT`:case`GCC`:case`GCA`:case`GCG`:return`A`;case`TAT`:case`TAC`:return`Y`;case`TAA`:case`TAG`:case`TGA`:return`*`;case`CAT`:case`CAC`:return`H`;case`CAA`:case`CAG`:return`Q`;case`AAT`:case`AAC`:return`N`;case`AAA`:case`AAG`:return`K`;case`GAT`:case`GAC`:return`D`;case`GAA`:case`GAG`:return`E`;case`TGT`:case`TGC`:return`C`;case`TGG`:return`W`;case`CGT`:case`CGC`:case`CGA`:case`CGG`:case`AGA`:case`AGG`:return`R`;case`GGT`:case`GGC`:case`GGA`:case`GGG`:return`G`;default:return`X`}};function n(e){let t=e.trim().split(/\\r?\\n/);if(!t[0]?.startsWith(`>`))throw Error(`Expected a FASTA header starting with >.`);if(t.slice(1).some(e=>e.startsWith(`>`)))throw Error(`Please supply exactly one FASTA record.`);let n=t.slice(1).join(``).replace(/\\s/g,``).toUpperCase();if(!n||/[^ACGTRYSWKMBDHVN]/.test(n))throw Error(`Expected an ungapped DNA sequence (IUPAC bases).`);return{name:t[0].slice(1).trim()||`Alternative`,sequence:n}}function r(e,t,n=`N`,r=256,{leading:a=1/0,trailing:o=1/0}={}){if(!e.length||!t.length)throw Error(`Both sequences must contain bases.`);if(Math.max(e.length,t.length)>1e5)throw Error(`Comparison supports sequences up to 100,000 bases.`);let s=0,c=0;for(;s<t.length&&s<a&&t[s]===n;)s++;if(s===t.length)return{distance:0,differences:[],coverage:{start:0,end:0}};for(;c<t.length-s&&c<o&&t[t.length-c-1]===n;)c++;let l=e.length-c;if(s>=l)throw Error(`Terminal padding leaves no comparable reference span.`);let u=i(e.slice(s,l),t.slice(s,t.length-c),r);return{...u,coverage:{start:s,end:l},differences:u.differences.map(e=>({...e,start:e.start+s,end:e.end+s}))}}function i(e,t,n=256){let r=e.length,i=t.length;if(!r||!i)throw Error(`Both sequences must contain bases.`);if(Math.max(r,i)>1e5)throw Error(`Comparison supports sequences up to 100,000 bases.`);let a=()=>Error(`Sequences exceed the ${n}-edit comparison limit. Use complete sequences in the same orientation and with the same starting point.`);if(Math.abs(r-i)>n)throw a();let o=2*n+1,s=n+1,c=s*s,l=new Uint8Array((r+1)*o),u=(e,t,n)=>e<=t&&e<=n?0:t<=n?1:2,d=new Uint32Array(o*3).fill(c);d[n*3]=0;for(let e=1;e<=Math.min(i,n);e++)d[(e+n)*3+2]=e*s+1,l[e+n]=(e===1?0:2)<<4;for(let a=1;a<=r;a++){let r=new Uint32Array(o*3).fill(c);for(let f=Math.max(0,a-n);f<=Math.min(i,a+n);f++){let i=f-a+n,p=i*3;if(f===0){r[p+1]=a*s+1,l[a*o+i]=(a===1?0:1)<<2;continue}let m=u(d[p],d[p+1],d[p+2]);r[p]=Math.min(c,d[p+m]+(e[a-1]===t[f-1]?0:s));let h=0,g=0;if(i+1<o){let e=p+3,t=d[e]+s+1,n=d[e+1]+s,i=d[e+2]+s+1;h=u(t,n,i),r[p+1]=Math.min(c,t,n,i)}if(i>0){let e=p-3,t=r[e]+s+1,n=r[e+1]+s+1,i=r[e+2]+s;g=u(t,n,i),r[p+2]=Math.min(c,t,n,i)}l[a*o+i]=m|h<<2|g<<4}d=r}let f=(i-r+n)*3,p=u(d[f],d[f+1],d[f+2]),m=Math.floor(d[f+p]/s);if(m>n)throw a();let h=r,g=i,_=[];for(;h||g;){let r=l[h*o+g-h+n]>>p*2&3;p===0?_.push([e[--h],t[--g]]):p===1?_.push([e[--h],`-`]):_.push([`-`,t[--g]]),p=r}_.reverse();let v=[],y=0;for(let[e,t]of _){if(e!==t){let n=e===`-`?`Insertion`:t===`-`?`Deletion`:/[^ACGT]/.test(e+t)?`Ambiguous`:`Substitution`,r=v.at(-1);r&&r.type===n&&n!==`Substitution`&&n!==`Ambiguous`&&r.end===y?(r.reference+=e===`-`?``:e,r.alternative+=t===`-`?``:t,r.end+=e===`-`?0:1):v.push({type:n,start:y,end:y+(e===`-`?0:1),reference:e===`-`?``:e,alternative:t===`-`?``:t})}e!==`-`&&y++}return{distance:m,differences:v}}function a(e,t){return e.locations?.length?e.locations:e.start>e.end?[{start:e.start,end:t-1},{start:0,end:e.end}]:[{start:e.start,end:e.end}]}const o={A:`T`,T:`A`,C:`G`,G:`C`,R:`Y`,Y:`R`,S:`S`,W:`W`,K:`M`,M:`K`,B:`V`,V:`B`,D:`H`,H:`D`,N:`N`},s=e=>[...e].reverse().map(e=>o[e]||`N`).join(``),c=e=>{let n=``;for(let r=0;r+2<e.length;r+=3)n+=t(e.slice(r,r+3));return n},l=(e,t,n)=>{let r=e.notes?.[t];return(Array.isArray(r)?r[0]:r)??n};function u(e,t,n,o){if(![`CDS`,`mat_peptide`].includes(t.type))return null;let u=a(t,e.length),d=[];for(let t of u){if(!Number.isInteger(t.start)||!Number.isInteger(t.end)||t.start<0||t.end>=e.length||t.end<t.start)return{warning:`Unsupported coding location`,codons:[],changes:[]};for(let e=t.start;e<=t.end;e++)d.push(e)}t.strand<0&&d.reverse();let f=Number(l(t,`codon_start`,1))-1;if(![0,1,2].includes(f))return{warning:`Unsupported codon_start`,codons:[],changes:[]};d.splice(0,f);let p=Number(l(t,`transl_table`,1));if(![1,11].includes(p)||[`transl_except`,`ribosomal_slippage`,`exception`].some(e=>t.notes?.[e]))return{warning:`AA comparison unavailable for this translation table or exception`,codons:[],changes:[]};let m=new Map(d.map((e,t)=>[e,t])),h=e=>t.strand<0?s(e):e,g=d.map(t=>h(e[t])).join(``),_=c(g),v=[..._].map((e,t)=>({positions:d.slice(t*3,t*3+3),aminoAcid:e,codonIndex:t})),y=new Set,b=new Map,x=new Map;o&&d.forEach((e,t)=>{(e<o.start||e>=o.end)&&b.set(t,`N`)});let S=1/0,C=!1;for(let e of n)if(e.type===`Insertion`){let n=t.strand<0?e.start-1:e.start,r=m.get(n),i=t.strand<0?e.start:e.start-1;r>0&&d[r-1]===i?(x.set(r,h(e.alternative)),e.alternative.length%3&&(S=Math.min(S,r))):(m.has(n)||m.has(i))&&(C=!0)}else if(e.type===`Deletion`){let t=[];for(let n=e.start;n<e.end;n++){let e=m.get(n);e!==void 0&&(y.add(e),t.push(e))}t.length%3&&(S=Math.min(S,...t))}else for(let t=e.start;t<e.end;t++){let n=m.get(t);n!==void 0&&b.set(n,h(e.alternative[t-e.start]))}let w=``,T=[];for(let e=0;e<d.length;e++)T[e]=w.length,w+=x.get(e)||``,y.has(e)||(w+=b.get(e)??g[e]);let E=Math.floor(S/3),D=Number.isFinite(S)?_.slice(0,E):_,O=c(Number.isFinite(S)?w.slice(0,T[E*3]):w),k=[],A=e=>{let n=Math.min(e.start,Math.max(0,v.length-1)),r=v[n],i=e.start<v.length?(r?.positions[0]??d[0])+(t.strand<0?.5:-.5):(r?.positions[2]??d[0])+(t.strand<0?-.5:.5);return{...e,anchor:r?.positions[1]??d[0],...e.type===`Insertion`?{pointerPosition:i}:{},aaPosition:e.type===`Insertion`?e.start:e.start+1}};try{if(D&&O){let e=e=>v[e].positions.some(e=>e<o.start||e>=o.end),t=0,n=0;if(o){for(;t<D.length&&e(t);)t++;for(;n<D.length-t&&e(D.length-n-1);)n++}let a=o?r(D,O,`X`,256,{leading:t,trailing:n}):i(D,O),s=[];for(let e of a.differences){let t={...e,type:e.type===`Ambiguous`?/X/.test(e.reference+e.alternative)?`Ambiguous`:`Substitution`:e.type},n=s.at(-1);t.type===`Ambiguous`&&n?.type===`Ambiguous`&&n.end===t.start?(n.end=t.end,n.reference+=t.reference,n.alternative+=t.alternative):s.push(t)}k=s.map(A)}else(D||O)&&(k=[A({type:D?`Deletion`:`Insertion`,start:0,end:D.length,reference:D,alternative:O})])}catch{return{codons:v,changes:[],warning:`AA comparison exceeds the alignment limit`}}return Number.isFinite(S)&&k.push(A({type:`Frameshift`,start:E,end:E+1,reference:``,alternative:``})),{codons:v,changes:k,warning:C?`Insertion at a coding boundary: AA assignment is uncertain`:void 0}}function d(e,t,n,r){return t.map(t=>u(e,t,n,r))}self.onmessage=({data:t})=>{try{let i=t.alignedSequence||n(t.fasta),a=t.alignedSequence?e(t.reference,i):r(t.reference,i.sequence);self.postMessage({...a,name:i.name,proteins:d(t.reference,t.features||[],a.differences,a.coverage)})}catch(e){self.postMessage({error:e.message})}};",gi=typeof self<`u`&&self.Blob&&new Blob([`URL.revokeObjectURL(import.meta.url);`,hi],{type:`text/javascript;charset=utf-8`});function _i(e){let t;try{if(t=gi&&(self.URL||self.webkitURL).createObjectURL(gi),!t)throw``;let n=new Worker(t,{type:`module`,name:e?.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch{return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(hi),{type:`module`,name:e?.name})}}function vi({reference:e,features:t,fastaUrl:n,alignedSequence:r,onResult:i,onGoTo:a,open:o,setOpen:s,onStatus:c}){let[l,f]=(0,u.useState)(null),[p,m]=(0,u.useState)(n||``),[h,g]=(0,u.useState)(0),[_,v]=(0,u.useState)(n||``),[y,b]=(0,u.useState)(``),[x,S]=(0,u.useState)(!1),[C,w]=(0,u.useState)(null),T=(0,u.useRef)(0),E=(0,u.useRef)();(0,u.useEffect)(()=>{(r||E.current)&&(T.current++,f(null),v(``)),E.current=r},[r]),(0,u.useEffect)(()=>{c({busy:x,error:y})},[x,y,c]),(0,u.useEffect)(()=>{y&&s(!0)},[y,s]);let D=()=>{w(null),i(null),b(``)};(0,u.useEffect)(()=>{m(n||``),v(n||``),n||(T.current++,f(null),w(null),i(null),b(``),S(!1))},[n,i]),(0,u.useEffect)(()=>{if(!_||r)return;let e=new AbortController,t=++T.current;return D(),f(null),S(!0),(async()=>{try{let n=new URL(_,window.location.href);if(![`http:`,`https:`].includes(n.protocol))throw Error(`Use an HTTP or HTTPS URL.`);let r=await fetch(n,{signal:e.signal});if(!r.ok)throw Error(`FASTA request failed (${r.status}).`);let i=await r.text();if(i.length>1e6)throw Error(`FASTA file is too large.`);t===T.current&&f(i)}catch(n){!e.signal.aborted&&t===T.current&&(b(n.message),S(!1))}})(),()=>e.abort()},[_,h,r]),(0,u.useEffect)(()=>{if(l===null&&!r){w(null),i(null);return}D(),S(!0);let n=new _i,a=T.current,o=!1;return n.onmessage=({data:e})=>{o||a!==T.current||(S(!1),e.error?b(e.error):(w(e),i(e)))},n.onerror=()=>{o||a!==T.current||(b(`Alignment failed. Please try another FASTA.`),S(!1))},n.postMessage({reference:e,features:t,fasta:l,alignedSequence:r}),()=>{o=!0,n.terminate()}},[e,t,l,r,i]);let O=async e=>{if(!e)return;let t=++T.current;v(``),f(null),D(),S(!0);try{if(e.size>1e6)throw Error(`FASTA file is too large.`);let n=await e.text();t===T.current&&f(n)}catch(e){t===T.current&&(b(e.message),S(!1))}};return(0,d.jsxs)(mi,{open:o,onClose:()=>s(!1),className:`gensplore comparison-drawer`,children:[(0,d.jsx)(`div`,{className:`comparison-drawer-overlay`,"aria-hidden":`true`}),(0,d.jsxs)(fi,{id:`comparison-drawer-panel`,className:`comparison-drawer-content`,children:[(0,d.jsxs)(`div`,{className:`comparison-drawer-header`,children:[(0,d.jsx)(pi,{children:`Compare FASTA`}),(0,d.jsx)(`button`,{type:`button`,onClick:()=>s(!1),"aria-label":`Close comparison`,children:`×`})]}),(0,d.jsxs)(`section`,{className:`comparison-panel`,"aria-label":`Compare FASTA`,children:[!r&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`label`,{className:`comparison-field`,children:[`FASTA file `,(0,d.jsx)(`input`,{type:`file`,accept:`.fa,.fasta,.fna,.txt`,onChange:e=>{O(e.target.files[0]),e.target.value=``}})]}),(0,d.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),v(p.trim()),g(e=>e+1)},children:[(0,d.jsxs)(`label`,{className:`comparison-field`,children:[`FASTA URL `,(0,d.jsx)(`input`,{type:`text`,inputMode:`url`,className:`comparison-url`,value:p,onChange:e=>m(e.target.value),placeholder:`https://example.org/alternative.fasta`,required:!0})]}),(0,d.jsx)(`button`,{type:`submit`,children:`Load URL`})]}),(l!==null||_||C||y||x)&&(0,d.jsx)(`button`,{onClick:()=>{T.current++,v(``),f(null),S(!1),D()},children:`Clear`})]}),x&&(0,d.jsx)(`p`,{role:`status`,children:`Loading / aligning FASTA…`}),y&&(0,d.jsx)(`p`,{role:`alert`,children:y}),C&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`p`,{role:`status`,className:`comparison-summary`,children:[(0,d.jsxs)(`strong`,{children:[C.differences.length,` `,C.differences.length===1?`change`:`changes`]}),(0,d.jsx)(`span`,{title:C.name,children:C.name})]}),C.coverage&&(C.coverage.start>0||C.coverage.end<e.length)&&(0,d.jsx)(`p`,{children:C.coverage.end>C.coverage.start?`Terminal Ns excluded from alignment and shown as coverage gaps; comparing reference positions ${C.coverage.start+1}–${C.coverage.end}.`:`No covered bases to compare (the alternative contains only Ns).`}),C.proteins?.some(e=>e?.warning)&&(0,d.jsx)(`ul`,{"aria-label":`Amino-acid comparison notes`,children:C.proteins.map((e,n)=>e?.warning&&(0,d.jsxs)(`li`,{children:[t[n].name,`: `,e.warning]},n))}),C.differences.length>0&&(0,d.jsx)(`div`,{className:`comparison-table`,children:(0,d.jsxs)(`table`,{children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{title:`1-based reference coordinates; insertions follow the indicated base`,children:`Ref. position`}),(0,d.jsx)(`th`,{children:`Type`}),(0,d.jsx)(`th`,{children:`Reference`}),(0,d.jsx)(`th`,{children:`Alternative`}),(0,d.jsx)(`th`,{"aria-label":`Navigate`})]})}),(0,d.jsx)(`tbody`,{children:C.differences.map((t,n)=>(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`td`,{children:t.type===`Insertion`?`After ${t.start}`:t.end>t.start+1?`${t.start+1}–${t.end}`:t.start+1}),(0,d.jsx)(`td`,{children:t.type}),(0,d.jsx)(`td`,{children:t.reference||`—`}),(0,d.jsx)(`td`,{children:t.alternative||`—`}),(0,d.jsx)(`td`,{children:(0,d.jsx)(`button`,{onClick:()=>{s(!1),requestAnimationFrame(()=>a(Math.min(t.start,e.length-1)))},children:`Go to`})})]},n))})]})})]})]})]})]})}var yi=({hoveredInfo:e})=>{let[t,n]=(0,u.useState)({x:0,y:0}),r=t.x>window.innerWidth-320?{right:`${window.innerWidth-t.x+10}px`}:{left:`${t.x+10}px`},i={position:`fixed`,...t.y>window.innerHeight-130?{bottom:`${window.innerHeight-t.y+10}px`}:{top:`${t.y+10}px`},...r,maxWidth:`min(300px, calc(100vw - 20px))`,pointerEvents:`none`,overflowWrap:`anywhere`,visibility:e?`visible`:`hidden`,zIndex:1e3};return(0,u.useEffect)(()=>{let e=e=>{n({x:e.clientX,y:e.clientY})};return document.addEventListener(`mousemove`,e),()=>{document.removeEventListener(`mousemove`,e)}},[]),(0,d.jsxs)(`div`,{role:`tooltip`,style:i,className:`text-sm bg-gray-100 p-2 rounded`,children:[e&&(0,d.jsx)(`span`,{children:e.label}),e&&e.product&&(0,d.jsx)(`div`,{className:`text-xs`,children:e.product})]})},bi={A:`T`,T:`A`,G:`C`,C:`G`,N:`N`,"-":`-`},xi=e=>e.split(``).map(e=>bi[e]).reverse().join(``),Si=(e,t)=>e.filter(e=>!!(e.name.toLowerCase().includes(t.toLowerCase())||(e.notes&&e.notes.product?e.notes.product[0]:``).toLowerCase().includes(t.toLowerCase())||(e.notes&&e.notes.locus_tag?e.notes.locus_tag[0]:``).toLowerCase().includes(t.toLowerCase()))),Ci=(e,t)=>t>e+1?`${e+1}–${t}`:`${e+1}`,wi=e=>e.length>24?`${e.slice(0,24)}… (${e.length} letters)`:e;function Ti(e,t){let n=t!==void 0,r=n?`${t} · reference ${e.end>e.start+1?`residues`:`residue`} ${Ci(e.start,e.end)}`:`reference ${e.end>e.start+1?`positions`:`position`} ${Ci(e.start,e.end)}`;return e.type===`Ambiguous`?n?`Amino acid unresolved because of ambiguous nucleotide calls · ${r}`:`No confident call · ${r}`:e.type===`Deletion`?`Deleted in this sequence · ${r}`:e.type===`Insertion`?`Inserted after reference ${n?`residue`:`position`} ${e.start}${n?` · ${t}`:``} · ${wi(e.alternative)}`:e.type===`Frameshift`?`Frame shift · ${r}; downstream amino-acid correspondence is uncertain`:`Reference ${wi(e.reference)} → sample ${wi(e.alternative)} · ${r}`}function Ei({letter:e,position:t,changes:n,gene:r,reverseComplement:i=!1,complement:a=e=>e}){let o=r===void 0?`Reference ${e} · position ${t+1}${i?` · reverse complement`:``}`:`${r} · Reference ${e} · residue ${t+1}`,s=n.find(e=>e.type!==`Insertion`&&t>=e.start&&t<e.end);if(s){if(s.type===`Substitution`){let n=s.alternative[t-s.start];return`Reference ${e} → sample ${i?a(n):n} · ${r===void 0?`position`:`${r} · residue`} ${t+1}${i?` · reverse complement`:``}`}return`${o} · ${Ti(s,r)}`}return r!==void 0&&n.some(e=>e.type===`Frameshift`&&t>=e.start)?`${o} · downstream of a frame shift; sample amino acid is uncertain`:o}var W=function(e,t,n){if(!t.has(e))throw TypeError(`attempted to set private field on non-instance`);return t.set(e,n),n},G=function(e,t){if(!t.has(e))throw TypeError(`attempted to get private field on non-instance`);return t.get(e)},Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi=function(e){var t=131,n=137,r=0;e+=`x`;var i=Math.floor(9007199254740991/n);for(let a=0;a<e.length;a++)r>i&&(r=Math.floor(r/n)),r=r*t+e.charCodeAt(a);return r},K=`0123456789abcdef`.split(``),Ki=[-2147483648,8388608,32768,128],qi=[24,16,8,0],Ji=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Yi=[],Xi=class{constructor(e=!1,t=!1){Di.set(this,void 0),Oi.set(this,void 0),ki.set(this,void 0),Ai.set(this,void 0),ji.set(this,void 0),Mi.set(this,void 0),Ni.set(this,void 0),Pi.set(this,void 0),Fi.set(this,void 0),Ii.set(this,void 0),Li.set(this,void 0),Ri.set(this,void 0),zi.set(this,void 0),Bi.set(this,void 0),Vi.set(this,void 0),Hi.set(this,void 0),Ui.set(this,0),Wi.set(this,void 0),this.init(e,t)}init(e,t){t?(Yi[0]=Yi[16]=Yi[1]=Yi[2]=Yi[3]=Yi[4]=Yi[5]=Yi[6]=Yi[7]=Yi[8]=Yi[9]=Yi[10]=Yi[11]=Yi[12]=Yi[13]=Yi[14]=Yi[15]=0,W(this,Oi,Yi)):W(this,Oi,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),e?(W(this,Mi,3238371032),W(this,Ni,914150663),W(this,Pi,812702999),W(this,Fi,4144912697),W(this,Ii,4290775857),W(this,Li,1750603025),W(this,Ri,1694076839),W(this,zi,3204075428)):(W(this,Mi,1779033703),W(this,Ni,3144134277),W(this,Pi,1013904242),W(this,Fi,2773480762),W(this,Ii,1359893119),W(this,Li,2600822924),W(this,Ri,528734635),W(this,zi,1541459225)),W(this,Di,W(this,Wi,W(this,ki,W(this,Vi,0)))),W(this,Ai,W(this,Bi,!1)),W(this,ji,!0),W(this,Hi,e)}update(e){if(G(this,Ai))return this;let t;t=e instanceof ArrayBuffer?new Uint8Array(e):e;let n=0,r=t.length,i=G(this,Oi);for(;n<r;){let e;if(G(this,Bi)&&(W(this,Bi,!1),i[0]=G(this,Di),i[16]=i[1]=i[2]=i[3]=i[4]=i[5]=i[6]=i[7]=i[8]=i[9]=i[10]=i[11]=i[12]=i[13]=i[14]=i[15]=0),typeof t!=`string`)for(e=G(this,Wi);n<r&&e<64;++n)i[e>>2]|=t[n]<<qi[e++&3];else for(e=G(this,Wi);n<r&&e<64;++n){let r=t.charCodeAt(n);r<128?i[e>>2]|=r<<qi[e++&3]:r<2048?(i[e>>2]|=(192|r>>6)<<qi[e++&3],i[e>>2]|=(128|r&63)<<qi[e++&3]):r<55296||r>=57344?(i[e>>2]|=(224|r>>12)<<qi[e++&3],i[e>>2]|=(128|r>>6&63)<<qi[e++&3],i[e>>2]|=(128|r&63)<<qi[e++&3]):(r=65536+((r&1023)<<10|t.charCodeAt(++n)&1023),i[e>>2]|=(240|r>>18)<<qi[e++&3],i[e>>2]|=(128|r>>12&63)<<qi[e++&3],i[e>>2]|=(128|r>>6&63)<<qi[e++&3],i[e>>2]|=(128|r&63)<<qi[e++&3])}W(this,Ui,e),W(this,ki,G(this,ki)+(e-G(this,Wi))),e>=64?(W(this,Di,i[16]),W(this,Wi,e-64),this.hash(),W(this,Bi,!0)):W(this,Wi,e)}return G(this,ki)>4294967295&&(W(this,Vi,G(this,Vi)+(G(this,ki)/4294967296<<0)),W(this,ki,G(this,ki)%4294967296)),this}finalize(){if(G(this,Ai))return;W(this,Ai,!0);let e=G(this,Oi),t=G(this,Ui);e[16]=G(this,Di),e[t>>2]|=Ki[t&3],W(this,Di,e[16]),t>=56&&(G(this,Bi)||this.hash(),e[0]=G(this,Di),e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=G(this,Vi)<<3|G(this,ki)>>>29,e[15]=G(this,ki)<<3,this.hash()}hash(){let e=G(this,Mi),t=G(this,Ni),n=G(this,Pi),r=G(this,Fi),i=G(this,Ii),a=G(this,Li),o=G(this,Ri),s=G(this,zi),c=G(this,Oi),l,u,d,f,p,m,h,g,_,v;for(let e=16;e<64;++e)f=c[e-15],l=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3,f=c[e-2],u=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10,c[e]=c[e-16]+l+c[e-7]+u<<0;v=t&n;for(let y=0;y<64;y+=4)G(this,ji)?(G(this,Hi)?(h=300032,f=c[0]-1413257819,s=f-150054599<<0,r=f+24177077<<0):(h=704751109,f=c[0]-210244248,s=f-1521486534<<0,r=f+143694565<<0),W(this,ji,!1)):(l=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),u=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),h=e&t,d=h^e&n^v,m=i&a^~i&o,f=s+u+m+Ji[y]+c[y],p=l+d,s=r+f<<0,r=f+p<<0),l=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),u=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),g=r&e,d=g^r&t^h,m=s&i^~s&a,f=o+u+m+Ji[y+1]+c[y+1],p=l+d,o=n+f<<0,n=f+p<<0,l=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),u=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),_=n&r,d=_^n&e^g,m=o&s^~o&i,f=a+u+m+Ji[y+2]+c[y+2],p=l+d,a=t+f<<0,t=f+p<<0,l=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),u=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),v=t&n,d=v^t&r^_,m=a&o^~a&s,f=i+u+m+Ji[y+3]+c[y+3],p=l+d,i=e+f<<0,e=f+p<<0;W(this,Mi,G(this,Mi)+e<<0),W(this,Ni,G(this,Ni)+t<<0),W(this,Pi,G(this,Pi)+n<<0),W(this,Fi,G(this,Fi)+r<<0),W(this,Ii,G(this,Ii)+i<<0),W(this,Li,G(this,Li)+a<<0),W(this,Ri,G(this,Ri)+o<<0),W(this,zi,G(this,zi)+s<<0)}hex(){this.finalize();let e=G(this,Mi),t=G(this,Ni),n=G(this,Pi),r=G(this,Fi),i=G(this,Ii),a=G(this,Li),o=G(this,Ri),s=G(this,zi),c=K[e>>28&15]+K[e>>24&15]+K[e>>20&15]+K[e>>16&15]+K[e>>12&15]+K[e>>8&15]+K[e>>4&15]+K[e&15]+K[t>>28&15]+K[t>>24&15]+K[t>>20&15]+K[t>>16&15]+K[t>>12&15]+K[t>>8&15]+K[t>>4&15]+K[t&15]+K[n>>28&15]+K[n>>24&15]+K[n>>20&15]+K[n>>16&15]+K[n>>12&15]+K[n>>8&15]+K[n>>4&15]+K[n&15]+K[r>>28&15]+K[r>>24&15]+K[r>>20&15]+K[r>>16&15]+K[r>>12&15]+K[r>>8&15]+K[r>>4&15]+K[r&15]+K[i>>28&15]+K[i>>24&15]+K[i>>20&15]+K[i>>16&15]+K[i>>12&15]+K[i>>8&15]+K[i>>4&15]+K[i&15]+K[a>>28&15]+K[a>>24&15]+K[a>>20&15]+K[a>>16&15]+K[a>>12&15]+K[a>>8&15]+K[a>>4&15]+K[a&15]+K[o>>28&15]+K[o>>24&15]+K[o>>20&15]+K[o>>16&15]+K[o>>12&15]+K[o>>8&15]+K[o>>4&15]+K[o&15];return G(this,Hi)||(c+=K[s>>28&15]+K[s>>24&15]+K[s>>20&15]+K[s>>16&15]+K[s>>12&15]+K[s>>8&15]+K[s>>4&15]+K[s&15]),c}toString(){return this.hex()}digest(){this.finalize();let e=G(this,Mi),t=G(this,Ni),n=G(this,Pi),r=G(this,Fi),i=G(this,Ii),a=G(this,Li),o=G(this,Ri),s=G(this,zi),c=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,n>>24&255,n>>16&255,n>>8&255,n&255,r>>24&255,r>>16&255,r>>8&255,r&255,i>>24&255,i>>16&255,i>>8&255,i&255,a>>24&255,a>>16&255,a>>8&255,a&255,o>>24&255,o>>16&255,o>>8&255,o&255];return G(this,Hi)||c.push(s>>24&255,s>>16&255,s>>8&255,s&255),c}array(){return this.digest()}arrayBuffer(){this.finalize();let e=new ArrayBuffer(G(this,Hi)?28:32),t=new DataView(e);return t.setUint32(0,G(this,Mi)),t.setUint32(4,G(this,Ni)),t.setUint32(8,G(this,Pi)),t.setUint32(12,G(this,Fi)),t.setUint32(16,G(this,Ii)),t.setUint32(20,G(this,Li)),t.setUint32(24,G(this,Ri)),G(this,Hi)||t.setUint32(28,G(this,zi)),e}};Di=new WeakMap,Oi=new WeakMap,ki=new WeakMap,Ai=new WeakMap,ji=new WeakMap,Mi=new WeakMap,Ni=new WeakMap,Pi=new WeakMap,Fi=new WeakMap,Ii=new WeakMap,Li=new WeakMap,Ri=new WeakMap,zi=new WeakMap,Bi=new WeakMap,Vi=new WeakMap,Hi=new WeakMap,Ui=new WeakMap,Wi=new WeakMap;function Zi(e){let t=new Xi;return t.update(e),parseInt(t.hex().substring(0,8),16)}var Qi=function(e){var t=`#`;return e.forEach(function(e){e<16&&(t+=0),t+=e.toString(16)}),t},$i=function(e,t,n){e/=360;var r=n<.5?n*(1+t):n+t-n*t,i=2*n-r;return[e+1/3,e,e-1/3].map(function(e){return e<0&&e++,e>1&&e--,e=e<1/6?i+(r-i)*6*e:e<.5?r:e<2/3?i+(r-i)*6*(2/3-e):i,Math.round(e*255)})},ea=class{constructor(e={}){let[t,n]=[e.lightness,e.saturation].map(function(e){return e=e===void 0?[.35,.5,.65]:e,Array.isArray(e)?e.concat():[e]});this.L=t,this.S=n,typeof e.hue==`number`&&(e.hue={min:e.hue,max:e.hue}),typeof e.hue==`object`&&!Array.isArray(e.hue)&&(e.hue=[e.hue]),e.hue===void 0&&(e.hue=[]),this.hueRanges=e.hue.map(function(e){return{min:e.min===void 0?0:e.min,max:e.max===void 0?360:e.max}}),this.hash=Zi,typeof e.hash==`function`&&(this.hash=e.hash),e.hash===`bkdr`&&(this.hash=Gi)}hsl(e){var t,n,r,i=this.hash(e),a=727;if(this.hueRanges.length){let e=this.hueRanges[i%this.hueRanges.length];t=i/this.hueRanges.length%a*(e.max-e.min)/a+e.min}else t=i%359;return i=Math.ceil(i/360),n=this.S[i%this.S.length],i=Math.ceil(i/this.S.length),r=this.L[i%this.L.length],[t,n,r]}rgb(e){var t=this.hsl(e);return $i.apply(this,t)}hex(e){return Qi(this.rgb(e))}};function ta(e,t){return e.locations?.length?e.locations:e.start>e.end?[{start:e.start,end:t-1},{start:0,end:e.end}]:[{start:e.start,end:e.end}]}function na(e,t,n){return e.filter(e=>e.start<n&&e.end>=t).map(e=>({start:Math.max(e.start,t)-t,end:Math.min(e.end,n-1)-t,startIsActual:e.start>=t,endIsActual:e.end<n}))}function ra(e,t,n){if(e.type!==`Insertion`||e.pointerPosition===void 0)return e.anchor;let r=Math.min(n-1,Math.max(0,Math.floor(e.pointerPosition+.5))),i=e=>t.some(t=>e>=t.start&&e<=t.end);return!i(r)&&i(r-1)&&r--,r}var ia=new ea({lightness:[.75,.9,.7,.8]}),aa=(e,t)=>{switch(e.type){case`CDS`:switch(e.name){case`S`:return`#ff7373`;case`nsp3`:return`#d3ffce`;case`leader`:return`#ff7f50`;case`nsp2`:return`#ddffdd`;case`nsp4`:return`#ff7373`;case`N`:return`#7fffd4`;case`E`:return`#ff7f50`;case`M`:return`#eeee88`;case`nsp12; RdRp`:return`#ff7f50`;case`nsp6`:return`#ee99ee`;case`nsp7`:return`#99ee99`;case`nsp8`:return`#ff7373`;case`nsp10`:return`#d3ffce`;case`nsp14`:return`#ff7f50`;case`nsp15`:return`#ddffdd`;case`nsp16`:return`#ffeeee`;case`nsp13`:return`#ff7f50`;default:return ia.hex(e.name+t+e.type)}case`gene`:return`blue`;case`misc_feature`:return`green`;case`5'UTR`:return`orange`;case`3'UTR`:return`orange`;default:return ia.hex(e.name+t+e.type)}},oa=e=>{switch(e){case`TTT`:case`TTC`:return`F`;case`TTA`:case`TTG`:case`CTT`:case`CTC`:case`CTA`:case`CTG`:return`L`;case`ATT`:case`ATC`:case`ATA`:return`I`;case`ATG`:return`M`;case`GTT`:case`GTC`:case`GTA`:case`GTG`:return`V`;case`TCT`:case`TCC`:case`TCA`:case`TCG`:case`AGT`:case`AGC`:return`S`;case`CCT`:case`CCC`:case`CCA`:case`CCG`:return`P`;case`ACT`:case`ACC`:case`ACA`:case`ACG`:return`T`;case`GCT`:case`GCC`:case`GCA`:case`GCG`:return`A`;case`TAT`:case`TAC`:return`Y`;case`TAA`:case`TAG`:case`TGA`:return`*`;case`CAT`:case`CAC`:return`H`;case`CAA`:case`CAG`:return`Q`;case`AAT`:case`AAC`:return`N`;case`AAA`:case`AAG`:return`K`;case`GAT`:case`GAC`:return`D`;case`GAA`:case`GAG`:return`E`;case`TGT`:case`TGC`:return`C`;case`TGG`:return`W`;case`CGT`:case`CGC`:case`CGA`:case`CGG`:case`AGA`:case`AGG`:return`R`;case`GGT`:case`GGC`:case`GGA`:case`GGG`:return`G`;default:return`X`}},sa=e=>typeof e==`number`&&!isNaN(e),ca=e=>typeof e==`string`,la=e=>typeof e==`function`,ua=e=>ca(e)||sa(e),da=e=>ca(e)||la(e)?e:null,fa=(e,t)=>e===!1||sa(e)&&e>0?e:t,pa=e=>(0,u.isValidElement)(e)||ca(e)||la(e)||sa(e);function ma(e,t,n=300){let{scrollHeight:r,style:i}=e;requestAnimationFrame(()=>{i.minHeight=`initial`,i.height=r+`px`,i.transition=`all ${n}ms`,requestAnimationFrame(()=>{i.height=`0`,i.padding=`0`,i.margin=`0`,setTimeout(t,n)})})}function ha({enter:e,exit:t,appendPosition:n=!1,collapse:r=!0,collapseDuration:i=300}){return function({children:a,position:o,preventExitTransition:s,done:c,nodeRef:l,isIn:d,playToast:f}){let p=n?`${e}--${o}`:e,m=n?`${t}--${o}`:t,h=(0,u.useRef)(0);return(0,u.useLayoutEffect)(()=>{let e=l.current,t=p.split(` `),n=r=>{r.target===l.current&&(f(),e.removeEventListener(`animationend`,n),e.removeEventListener(`animationcancel`,n),h.current===0&&r.type!==`animationcancel`&&e.classList.remove(...t))};e.classList.add(...t),e.addEventListener(`animationend`,n),e.addEventListener(`animationcancel`,n)},[]),(0,u.useEffect)(()=>{let e=l.current,t=()=>{e.removeEventListener(`animationend`,t),r?ma(e,c,i):c()};d||(s?t():(h.current=1,e.className+=` ${m}`,e.addEventListener(`animationend`,t)))},[d]),u.default.createElement(u.default.Fragment,null,a)}}function ga(e,t){return{content:_a(e.content,e.props),containerId:e.props.containerId,id:e.props.toastId,theme:e.props.theme,type:e.props.type,data:e.props.data||{},isLoading:e.props.isLoading,icon:e.props.icon,reason:e.removalReason,status:t}}function _a(e,t,n=!1){return(0,u.isValidElement)(e)&&!ca(e.type)?(0,u.cloneElement)(e,{closeToast:t.closeToast,toastProps:t,data:t.data,isPaused:n}):la(e)?e({closeToast:t.closeToast,toastProps:t,data:t.data,isPaused:n}):e}function va({closeToast:e,theme:t,ariaLabel:n=`close`}){return u.default.createElement(`button`,{className:`Toastify__close-button Toastify__close-button--${t}`,type:`button`,onClick:t=>{t.stopPropagation(),e(!0)},"aria-label":n},u.default.createElement(`svg`,{"aria-hidden":`true`,viewBox:`0 0 14 16`},u.default.createElement(`path`,{fillRule:`evenodd`,d:`M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z`})))}function ya({delay:e,isRunning:t,closeToast:n,type:r=`default`,hide:i,className:a,controlledProgress:o,progress:s,rtl:c,isIn:l,theme:d}){let f=i||o&&s===0,p={animationDuration:`${e}ms`,animationPlayState:t?`running`:`paused`};o&&(p.transform=`scaleX(${s})`);let m=P(`Toastify__progress-bar`,o?`Toastify__progress-bar--controlled`:`Toastify__progress-bar--animated`,`Toastify__progress-bar-theme--${d}`,`Toastify__progress-bar--${r}`,{"Toastify__progress-bar--rtl":c}),h=la(a)?a({rtl:c,type:r,defaultClassName:m}):P(m,a),g={[o&&s>=1?`onTransitionEnd`:`onAnimationEnd`]:o&&s<1?null:()=>{l&&n()}};return u.default.createElement(`div`,{className:`Toastify__progress-bar--wrp`,"data-hidden":f},u.default.createElement(`div`,{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${d} Toastify__progress-bar--${r}`}),u.default.createElement(`div`,{role:`progressbar`,"aria-hidden":f?`true`:`false`,"aria-label":`notification timer`,"aria-valuenow":o?Math.round(s*100):void 0,"aria-valuemin":0,"aria-valuemax":100,className:h,style:p,...g}))}var ba=1,xa=()=>`${ba++}`;function Sa(e,t,n){let r=1,i=0,a=[],o=[],s=t,c=new Map,l=new Set,u=e=>(l.add(e),()=>l.delete(e)),d=()=>{o=Array.from(c.values()),l.forEach(e=>e())},f=({containerId:t,toastId:n,updateId:r})=>{let i=t?t!==e:e!==1,a=c.has(n)&&r==null;return i||a},p=(e,t)=>{c.forEach(n=>{var r;(t==null||t===n.props.toastId)&&((r=n.toggle)==null||r.call(n,e))})},m=e=>{var t,r;e.isActive&&((r=(t=e.props)?.onClose)==null||r.call(t,e.removalReason),e.isActive=!1,n(ga(e,`removed`)))},h=e=>{if(e==null)c.forEach(m);else{let t=c.get(e);t&&m(t)}d()},g=()=>{i-=a.length,a=[]},_=e=>{var t,r;let{toastId:i,updateId:a}=e.props,o=a==null;e.staleId&&c.delete(e.staleId),e.isActive=!0,c.set(i,e),d(),n(ga(e,o?`added`:`updated`)),o&&((r=(t=e.props).onOpen)==null||r.call(t))};return{id:e,props:s,observe:u,toggle:p,removeToast:h,toasts:c,clearQueue:g,buildToast:(e,t)=>{if(f(t))return;let{toastId:n,updateId:o,data:l,staleId:u,delay:p}=t,m=o==null;m&&i++;let g={...s,style:s.toastStyle,key:r++,...Object.fromEntries(Object.entries(t).filter(([e,t])=>t!=null)),toastId:n,updateId:o,data:l,isIn:!1,className:da(t.className||s.toastClassName),progressClassName:da(t.progressClassName||s.progressClassName),autoClose:!t.isLoading&&fa(t.autoClose,s.autoClose),closeToast(e){let t=c.get(n);t&&(t.removalReason=e,h(n))},deleteToast(){if(c.get(n)!=null){if(c.delete(n),i--,i<0&&(i=0),a.length>0){_(a.shift());return}d()}}};g.closeButton=s.closeButton,t.closeButton===!1||pa(t.closeButton)?g.closeButton=t.closeButton:t.closeButton===!0&&(g.closeButton=!pa(s.closeButton)||s.closeButton);let v={content:e,props:g,staleId:u};s.limit&&s.limit>0&&i>s.limit&&m?a.push(v):sa(p)?setTimeout(()=>{_(v)},p):_(v)},setProps(e){s=e},setToggle:(e,t)=>{let n=c.get(e);n&&(n.toggle=t)},isToastActive:e=>c.get(e)?.isActive,getSnapshot:()=>o}}var Ca=new Map,wa=[],Ta=new Set,Ea=e=>Ta.forEach(t=>t(e)),Da=()=>Ca.size>0;function Oa(){wa.forEach(e=>Na(e.content,e.options)),wa=[]}var ka=(e,{containerId:t})=>Ca.get(t||1)?.toasts.get(e);function Aa(e,t){var n;if(t)return!!((n=Ca.get(t))!=null&&n.isToastActive(e));let r=!1;return Ca.forEach(t=>{t.isToastActive(e)&&(r=!0)}),r}function ja(e){if(!Da()){wa=wa.filter(t=>e!=null&&t.options.toastId!==e);return}if(e==null||ua(e))Ca.forEach(t=>{t.removeToast(e)});else if(e&&(`containerId`in e||`id`in e)){let t=Ca.get(e.containerId);t?t.removeToast(e.id):Ca.forEach(t=>{t.removeToast(e.id)})}}var Ma=(e={})=>{Ca.forEach(t=>{t.props.limit&&(!e.containerId||t.id===e.containerId)&&t.clearQueue()})};function Na(e,t){pa(e)&&(Da()||wa.push({content:e,options:t}),Ca.forEach(n=>{n.buildToast(e,t)}))}function Pa(e){var t;(t=Ca.get(e.containerId||1))==null||t.setToggle(e.id,e.fn)}function Fa(e,t){Ca.forEach(n=>{(t==null||!(t!=null&&t.containerId)||t?.containerId===n.id)&&n.toggle(e,t?.id)})}function Ia(e){let t=e.containerId||1;return{subscribe(n){let r=Sa(t,e,Ea);Ca.set(t,r);let i=r.observe(n);return Oa(),()=>{i(),Ca.delete(t)}},setProps(e){var n;(n=Ca.get(t))==null||n.setProps(e)},getSnapshot(){return Ca.get(t)?.getSnapshot()}}}function La(e){return Ta.add(e),()=>{Ta.delete(e)}}function Ra(e){return e&&(ca(e.toastId)||sa(e.toastId))?e.toastId:xa()}function za(e,t){return Na(e,t),t.toastId}function Ba(e,t){return{...t,type:t&&t.type||e,toastId:Ra(t)}}function Va(e){return(t,n)=>za(t,Ba(e,n))}function q(e,t){return za(e,Ba(`default`,t))}q.loading=(e,t)=>za(e,Ba(`default`,{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t}));function Ha(e,{pending:t,error:n,success:r},i){let a;t&&(a=ca(t)?q.loading(t,i):q.loading(t.render,{...i,...t}));let o={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},s=(e,t,n)=>{if(t==null){q.dismiss(a);return}let r={type:e,...o,...i,data:n},s=ca(t)?{render:t}:t;return a?q.update(a,{...r,...s}):q(s.render,{...r,...s}),n},c=la(e)?e():e;return c.then(e=>s(`success`,r,e)).catch(e=>s(`error`,n,e)),c}q.promise=Ha,q.success=Va(`success`),q.info=Va(`info`),q.error=Va(`error`),q.warning=Va(`warning`),q.warn=q.warning,q.dark=(e,t)=>za(e,Ba(`default`,{theme:`dark`,...t}));function Ua(e){ja(e)}q.dismiss=Ua,q.clearWaitingQueue=Ma,q.isActive=Aa,q.update=(e,t={})=>{let n=ka(e,t);if(n){let{props:r,content:i}=n,a={delay:100,...r,...t,toastId:t.toastId||e,updateId:xa()};a.toastId!==e&&(a.staleId=e);let o=a.render||i;delete a.render,za(o,a)}},q.done=e=>{q.update(e,{progress:1})},q.onChange=La,q.play=e=>Fa(!0,e),q.pause=e=>Fa(!1,e);function Wa(e){let{subscribe:t,getSnapshot:n,setProps:r}=(0,u.useRef)(Ia(e)).current;r(e);let i=(0,u.useSyncExternalStore)(t,n,n)?.slice();function a(t){if(!i)return[];let n=new Map;return e.newestOnTop&&i.reverse(),i.forEach(e=>{let{position:t}=e.props;n.has(t)||n.set(t,[]),n.get(t).push(e)}),Array.from(n,e=>t(e[0],e[1]))}return{getToastToRender:a,isToastActive:Aa,count:i?.length}}function Ga(e){let[t,n]=(0,u.useState)(!1),[r,i]=(0,u.useState)(!1),a=(0,u.useRef)(null),o=(0,u.useRef)({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:s,pauseOnHover:c,closeToast:l,onClick:d,closeOnClick:f}=e;Pa({id:e.toastId,containerId:e.containerId,fn:n}),(0,u.useEffect)(()=>{if(e.pauseOnFocusLoss)return p(),()=>{m()}},[e.pauseOnFocusLoss]);function p(){document.hasFocus()||v(),window.addEventListener(`focus`,_),window.addEventListener(`blur`,v)}function m(){window.removeEventListener(`focus`,_),window.removeEventListener(`blur`,v)}function h(t){if(e.draggable===!0||e.draggable===t.pointerType){y();let n=a.current;o.canCloseOnClick=!0,o.canDrag=!0,n.style.transition=`none`,e.draggableDirection===`x`?(o.start=t.clientX,o.removalDistance=n.offsetWidth*(e.draggablePercent/100)):(o.start=t.clientY,o.removalDistance=n.offsetHeight*(e.draggablePercent===80?e.draggablePercent*1.5:e.draggablePercent)/100)}}function g(t){let{top:n,bottom:r,left:i,right:o}=a.current.getBoundingClientRect();t.pointerType===`mouse`&&e.pauseOnHover&&t.clientX>=i&&t.clientX<=o&&t.clientY>=n&&t.clientY<=r?v():_()}function _(){n(!0)}function v(){n(!1)}function y(){o.didMove=!1,document.addEventListener(`pointermove`,x),document.addEventListener(`pointerup`,S)}function b(){document.removeEventListener(`pointermove`,x),document.removeEventListener(`pointerup`,S)}function x(n){let r=a.current;if(o.canDrag&&r){o.didMove=!0,t&&v(),e.draggableDirection===`x`?o.delta=n.clientX-o.start:o.delta=n.clientY-o.start,o.start!==n.clientX&&(o.canCloseOnClick=!1);let i=e.draggableDirection===`x`?`${o.delta}px, var(--y)`:`0, calc(${o.delta}px + var(--y))`;r.style.transform=`translate3d(${i},0)`,r.style.opacity=`${1-Math.abs(o.delta/o.removalDistance)}`}}function S(){b();let t=a.current;if(o.canDrag&&o.didMove&&t){if(o.canDrag=!1,Math.abs(o.delta)>o.removalDistance){i(!0),e.closeToast(!0),e.collapseAll();return}t.style.transition=`transform 0.2s, opacity 0.2s`,t.style.removeProperty(`transform`),t.style.removeProperty(`opacity`)}}let C={onPointerDown:h,onPointerUp:g};return s&&c&&(C.onMouseEnter=v,e.stacked||(C.onMouseLeave=_)),f&&(C.onClick=e=>{d&&d(e),o.canCloseOnClick&&l(!0)}),{playToast:_,pauseToast:v,isRunning:t,preventExitTransition:r,toastRef:a,eventHandlers:C}}var Ka=typeof window<`u`?u.useLayoutEffect:u.useEffect,qa=({theme:e,type:t,isLoading:n,...r})=>u.default.createElement(`svg`,{viewBox:`0 0 24 24`,width:`100%`,height:`100%`,fill:e===`colored`?`currentColor`:`var(--toastify-icon-color-${t})`,...r});function Ja(e){return u.default.createElement(qa,{...e},u.default.createElement(`path`,{d:`M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z`}))}function Ya(e){return u.default.createElement(qa,{...e},u.default.createElement(`path`,{d:`M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z`}))}function Xa(e){return u.default.createElement(qa,{...e},u.default.createElement(`path`,{d:`M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z`}))}function Za(e){return u.default.createElement(qa,{...e},u.default.createElement(`path`,{d:`M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z`}))}function Qa(){return u.default.createElement(`div`,{className:`Toastify__spinner`})}var $a={info:Ya,warning:Ja,success:Xa,error:Za,spinner:Qa},eo=e=>e in $a;function to({theme:e,type:t,isLoading:n,icon:r}){let i=null,a={theme:e,type:t};return r===!1||(la(r)?i=r({...a,isLoading:n}):(0,u.isValidElement)(r)?i=(0,u.cloneElement)(r,a):n?i=$a.spinner():eo(t)&&(i=$a[t](a))),i}var no=e=>{let{isRunning:t,preventExitTransition:n,toastRef:r,eventHandlers:i,playToast:a}=Ga(e),{closeButton:o,children:s,autoClose:c,onClick:l,type:d,hideProgressBar:f,closeToast:p,transition:m,position:h,className:g,style:_,progressClassName:v,updateId:y,role:b,progress:x,rtl:S,toastId:C,deleteToast:w,isIn:T,isLoading:E,closeOnClick:D,theme:O,ariaLabel:k}=e,A=P(`Toastify__toast`,`Toastify__toast-theme--${O}`,`Toastify__toast--${d}`,{"Toastify__toast--rtl":S},{"Toastify__toast--close-on-click":D}),j=la(g)?g({rtl:S,position:h,type:d,defaultClassName:A}):P(A,g),M=to(e),N=!!x||!c,F={closeToast:p,type:d,theme:O},I=null;return o===!1||(I=la(o)?o(F):(0,u.isValidElement)(o)?(0,u.cloneElement)(o,F):va(F)),u.default.createElement(m,{isIn:T,done:w,position:h,preventExitTransition:n,nodeRef:r,playToast:a},u.default.createElement(`div`,{id:C,tabIndex:0,onClick:l,"data-in":T,className:j,...i,style:_,ref:r,...T&&{role:b,"aria-label":k}},M!=null&&u.default.createElement(`div`,{className:P(`Toastify__toast-icon`,{"Toastify--animate-icon Toastify__zoom-enter":!E})},M),_a(s,e,!t),I,!e.customProgressBar&&u.default.createElement(ya,{...y&&!N?{key:`p-${y}`}:{},rtl:S,theme:O,delay:c,isRunning:t,isIn:T,closeToast:p,hide:f,type:d,className:v,controlledProgress:N,progress:x||0})))},ro=(e,t=!1)=>({enter:`Toastify--animate Toastify__${e}-enter`,exit:`Toastify--animate Toastify__${e}-exit`,appendPosition:t}),io=ha(ro(`bounce`,!0));ha(ro(`slide`,!0)),ha(ro(`zoom`)),ha(ro(`flip`));var ao={position:`top-right`,transition:io,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:`touch`,draggablePercent:80,draggableDirection:`x`,role:`alert`,theme:`light`,"aria-label":`Notifications Alt+T`,hotKeys:e=>e.altKey&&e.code===`KeyT`};function oo(e){let t={...ao,...e},n=e.stacked,[r,i]=(0,u.useState)(!0),a=(0,u.useRef)(null),{getToastToRender:o,isToastActive:s,count:c}=Wa(t),{className:l,style:d,rtl:f,containerId:p,hotKeys:m}=t;function h(e){let t=P(`Toastify__toast-container`,`Toastify__toast-container--${e}`,{"Toastify__toast-container--rtl":f});return la(l)?l({position:e,rtl:f,defaultClassName:t}):P(t,da(l))}function g(){n&&(i(!0),q.play())}return Ka(()=>{if(n){let e=a.current.querySelectorAll(`[data-in="true"]`),n=t.position?.includes(`top`),i=0,o=0;Array.from(e).reverse().forEach((e,t)=>{let a=e;a.classList.add(`Toastify__toast--stacked`),t>0&&(a.dataset.collapsed=`${r}`),a.dataset.pos||(a.dataset.pos=n?`top`:`bot`);let s=i*(r?.2:1)+(r?0:12*t),c=Math.max(.5,1-(r?o:0));a.style.setProperty(`--y`,`${n?s:s*-1}px`),a.style.setProperty(`--g`,`12`),a.style.setProperty(`--s`,`${c}`),i+=a.offsetHeight,o+=.025})}},[r,c,n]),(0,u.useEffect)(()=>{function e(e){var t;let n=a.current;m(e)&&((t=n?.querySelector(`[tabIndex="0"]`))==null||t.focus(),i(!1),q.pause()),e.key===`Escape`&&(document.activeElement===n||n!=null&&n.contains(document.activeElement))&&(i(!0),q.play())}return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[m]),u.default.createElement(`section`,{ref:a,className:`Toastify`,id:p,onMouseEnter:()=>{n&&(i(!1),q.pause())},onMouseLeave:g,"aria-live":`polite`,"aria-atomic":`false`,"aria-relevant":`additions text`,"aria-label":t[`aria-label`]},o((e,t)=>{let r=t.length?{...d}:{...d,pointerEvents:`none`};return u.default.createElement(`div`,{tabIndex:-1,className:h(e),"data-stacked":n,style:r,key:`c-${e}`},t.map(({content:e,props:t})=>u.default.createElement(no,{...t,stacked:n,collapseAll:g,isIn:s(t.toastId,t.containerId),key:`t-${t.key}`},e)))}))}var so=6,co=1;new ea({lightness:[.75,.9,.7,.8]});function lo(e){let t=e.slice().sort((e,t)=>e.start-t.start),n=[];return t.forEach(e=>{let t=!1;for(let r=0;r<n.length;r++){let i=!1;for(let t of n[r])if(e.start<=t.end&&e.end>=t.start){i=!0;break}if(!i){n[r].push(e),e.lane=r,t=!0;break}}t||(n.push([e]),e.lane=n.length-1)}),n.length}function uo(e,t){return!(e.left>t.right||e.right<t.left||e.top>t.bottom||e.bottom<t.top)}function fo(e,t,n,r,i,a,o){let s=n.length*6+10,c=a,l=a+o;if(l<c)return null;let u=e==0?e-5:e;for(let e=0;e<i;e++){let e={left:u,top:t,right:u+s,bottom:t+10};if(!r.some(t=>uo(e,t)))return r.push(e),{x:u};if(u+=10,u>l)break}return null}var po=({parsedSequence:e,rowStart:t,rowEnd:n,setHoveredInfo:r,rowId:i,intSearchInput:a,annotSearchInput:o,zoomLevel:s,whereMouseWentDown:c,setWhereMouseWentDown:l,whereMouseWentUp:u,setWhereMouseWentUp:f,whereMouseCurrentlyIs:p,setWhereMouseCurrentlyIs:m,sequenceHits:h,curSeqHitIndex:g,enableRC:_,visibleFeatures:v,differences:y=[],proteins:b})=>{let x=2**s,S=10*x,C=e.sequence,w=C.slice(t,n),T=v.filter(e=>ta(e,C.length).some(e=>e.start<n&&e.end>=t)),E=o?Si(T,o):[],D=a>=t&&a<=n||E.length>0,O=T.map((r,i)=>{let a=b?.[e.features.indexOf(r)],o=ta(r,C.length),c=na(o,t,n),l=o.reduce((e,t)=>e+t.end-t.start+1,0),u=[];if(s>-2&&(r.type===`CDS`||r.type===`mat_peptide`))for(let e=t;e<n;e++){let n=0;for(let i=0;i<o.length;i++){if(e>=o[i].start&&e<=o[i].end){let a=e,s=Math.floor((e-(o[i].start-n))/3),c=r.strand>0?s:l/3-s-1;if((e-(o[i].start-n))%3!=1)continue;let d=a,f=C.slice(d,d+1),p=a-o[i].start>0?a-1:o[i-1]?.end,m=C.slice(p,p+1),h=a<o[i].end?a+1:o[i+1]?.start,g=C.slice(h,h+1),_=m+f+g,v=oa(r.strand>0?_:xi(_));u.push({first:p-t,middle:a-t,last:h-t,aminoAcid:v,codonIndex:c,gene:r.name})}n+=o[i].end-o[i].start+1}}return a?.codons.length&&(u=a.codons.filter(e=>e.positions[1]>=t&&e.positions[1]<n).map(e=>({first:e.positions[0]-t,middle:e.positions[1]-t,last:e.positions[2]-t,aminoAcid:e.aminoAcid,codonIndex:e.codonIndex,gene:r.name}))),{start:Math.min(...c.map(e=>e.start)),end:Math.max(...c.map(e=>e.end)),proteinChanges:a?.changes||[],blocks:c,name:r.name,type:r.type,notes:r.notes,strand:r.strand,locations:o,codonMap:u,lane:0,key:i}}),k=lo(O),A=w.length*S,j=y.filter(e=>e.type===`Insertion`?e.start>=t&&(e.start<n||e.start===n&&n===C.length):e.start<n&&e.end>t),M=[],N=Math.max(A,120),P=j.map(e=>{let r=Math.max(t,e.start),i=Math.min(n,e.end),a=e.type===`Insertion`,o=a?(e.start-t-.5)*S:((r+i-1)/2-t)*S,s=a?`INS +${e.alternative}`:e.type===`Deletion`?`DEL ${e.reference}`:e.type===`Ambiguous`?`Coverage gap`:`${e.reference} → ${e.alternative}`,c=Math.max(8,Math.floor((N-20)/7)),l=s.length>c?`${s.slice(0,c-1)}…`:s,u=Math.min(N,l.length*7+16),d=Math.max(-S/2,Math.min(o-u/2,N-u)),f=M.findIndex(e=>e+8<=d);f===-1&&(f=M.length),M[f]=d+u;let p=a?`#1d4ed8`:e.type===`Deletion`?`#b91c1c`:e.type===`Ambiguous`?`#6d28d9`:`#92400e`,m=a?`#eff6ff`:e.type===`Deletion`?`#fef2f2`:e.type===`Ambiguous`?`#f5f3ff`:`#fffbeb`,h=Ti(e);return{...e,start:r,end:i,anchor:o,displayLabel:l,labelWidth:u,left:d,lane:f,color:p,background:m,description:h}}),F=P.length?6+M.length*28:0,I=70+k*20+F,L=Array.from({length:k},()=>[]);O.forEach(e=>{e.proteinLabels=e.proteinChanges.filter(r=>{let i=ra(r,e.locations,C.length);return i>=t&&i<n}).sort((e,t)=>e.anchor-t.anchor).map(n=>{let r=n.end>n.start+1?`${n.start+1}–${n.end}`:n.start+1,i=n.type===`Insertion`?`AA INS +${n.alternative} · after ${n.aaPosition}`:n.type===`Deletion`?`AA DEL ${n.reference} · ${r}`:n.type===`Frameshift`?`Frame shift · AA ${n.aaPosition}`:n.type===`Ambiguous`?`Coverage gap · AA ${r}`:`AA ${n.reference}${n.aaPosition} → ${n.alternative}`,a=Math.max(8,Math.floor((N-20)/7)),o=n.type===`Ambiguous`?`Coverage gap`:i,s=o.length>a?`${o.slice(0,a-1)}…`:o,c=Math.min(N,s.length*7+16),l=((n.pointerPosition??n.anchor)-t)*S,u=Math.max(-S/2,Math.min(l-c/2,N-c)),d=L[e.lane],f=d.findIndex(e=>e+8<=u);f===-1&&(f=d.length),d[f]=u+c;let p=n.type===`Insertion`?`#1d4ed8`:n.type===`Deletion`?`#b91c1c`:[`Frameshift`,`Ambiguous`].includes(n.type)?`#6d28d9`:`#92400e`;return{...n,text:i,description:Ti(n,e.name),label:s,labelWidth:c,anchor:l,left:u,lane:f,color:p}})});let R=[],z=0;L.forEach((e,t)=>{R[t]=t*20+z,z+=e.length?12+e.length*26:0}),I+=z;let ee=Math.ceil(A/(t>1e4?60:40)),te=Math.ceil(w.length/ee);te=[5,10,20,50,100,200,500,1e3,2e3,5e3,1e4,2e4,5e4,1e5,2e5,5e5,1e6,2e6,5e6,1e7].find(e=>e>=te)||te;let ne=t%te,re=Math.floor((n-t)/te)+1,ie=Array.from({length:re},(e,n)=>(n+1)*te+t-ne-1).map((e,r)=>{let i=(e-t)/(n-t)*A;return(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`line`,{x1:i,y1:0,x2:i,y2:10,stroke:`black`}),(0,d.jsx)(`text`,{x:i,y:20,textAnchor:`middle`,fontSize:`10`,children:e+1})]},r)}),ae=new Set;j.filter(e=>e.type===`Ambiguous`).forEach(e=>{for(let r=Math.max(t,e.start);r<Math.min(n,e.end);r++)ae.add(r)});let oe=null,se=null;s>-1&&(oe=w.split(``).map((e,n)=>{let i=n*S;return(0,d.jsx)(`text`,{x:i,y:10,textAnchor:`middle`,fontSize:s<-1?`11`:`12`,fontFamily:s<-.25?`Open Sans Condensed`:`sans-serif`,fontWeight:s<-.25?`600`:`400`,fillOpacity:ae.has(t+n)?.35:.9,onMouseEnter:()=>r({label:Ei({letter:e,position:n+t,changes:j})}),onMouseLeave:()=>r(null),children:e},n)}));let B={A:`T`,T:`A`,C:`G`,G:`C`,N:`N`};s>-1&&(se=w.split(``).map((e,n)=>{let i=n*S;return(0,d.jsx)(`text`,{x:i,y:10,textAnchor:`middle`,fontSize:s<-1?`11`:`12`,fontFamily:s<-.25?`Open Sans Condensed`:`sans-serif`,fontWeight:s<-.25?`600`:`400`,fillOpacity:ae.has(t+n)?.35:.9,onMouseEnter:()=>r({label:Ei({letter:B[e],position:n+t,changes:j,reverseComplement:!0,complement:e=>B[e]??e})}),onMouseLeave:()=>r(null),children:B[e]},n)}));let ce=e=>{let t=e.locations.map(e=>Math.min(e.start,e.end)).reduce((e,t)=>Math.min(e,t)),n=e.locations.map(e=>Math.max(e.start,e.end)).reduce((e,t)=>Math.max(e,t));l(t),f(n+1),e.locations.length>1&&q.info(`This feature has multiple locations. The selection will be from the start of the first location to the end of the last location.`)},le=[],ue=O.map(e=>{let t=e.start*S,n=(e.end-e.start)*S,i=L[e.lane].length,a=7+R[e.lane]+(i?12+i*26:0),o=e.notes?.product||``,c=e.type===`mat_peptide`?o:e.name,l=e.type===`mat_peptide`?e.name:o;return c===`Untitled Feature`&&(c=e.type),(0,d.jsxs)(`g`,{children:[e.proteinLabels.map((e,t)=>(0,d.jsx)(`path`,{d:`M ${e.left+e.labelWidth/2} ${a-14-e.lane*26} L ${e.anchor} ${a-7} L ${e.anchor} ${a+3}`,fill:`none`,stroke:e.color,strokeWidth:1.25},`aa-pointer-${t}`)),e.proteinLabels.map((e,t)=>(0,d.jsxs)(`g`,{role:`img`,"aria-label":e.description,onMouseEnter:()=>r({label:e.description}),onMouseLeave:()=>r(null),children:[(0,d.jsx)(`rect`,{x:e.left,y:a-34-e.lane*26,width:e.labelWidth,height:20,rx:4,fill:e.type===`Ambiguous`?`#f5f3ff`:`white`,stroke:e.color}),(0,d.jsx)(`text`,{x:e.left+e.labelWidth/2,y:a-20-e.lane*26,textAnchor:`middle`,fontSize:12,fontFamily:`monospace`,fontWeight:600,fill:e.color,children:e.label})]},`aa-label-${t}`)),(0,d.jsx)(`line`,{x1:t+2,y1:a+5,x2:t+n-2,y2:a+5,stroke:aa(e,o),strokeWidth:1.5}),e.blocks.map((t,n)=>{let i=t.start*S-5*x,s=t.end*S+5*x;return(0,d.jsx)(`path`,{d:`${e.strand<0?`M ${s} ${a}
|
|
10
10
|
${t.startIsActual?`L ${i+so} ${a}
|
|
11
11
|
L ${i} ${a+5}
|
|
12
12
|
L ${i+so} ${a+10}`:`L ${i+co} ${a}
|
package/dist/gensplore.js
CHANGED
|
@@ -4292,7 +4292,7 @@ var Fo = ({ parsedSequence: e, rowStart: t, rowEnd: n, setHoveredInfo: r, rowId:
|
|
|
4292
4292
|
background: m,
|
|
4293
4293
|
description: h
|
|
4294
4294
|
};
|
|
4295
|
-
}), I = F.length ?
|
|
4295
|
+
}), I = F.length ? 6 + N.length * 28 : 0, L = 70 + A * 20 + I, R = Array.from({ length: A }, () => []);
|
|
4296
4296
|
k.forEach((e) => {
|
|
4297
4297
|
e.proteinLabels = e.proteinChanges.filter((r) => {
|
|
4298
4298
|
let i = Ta(r, e.locations, w.length);
|