@uxland/primary-shell 7.45.10 → 7.45.11

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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { E as s, d as e, z as t, B as r, P as n, b as o, v as l, Q as c, n as g, w as m, o as p, p as v, m as P, c as h, u as E, f as R, q as u, e as y, y as S, g as d, j as M, x as w, s as A, l as C, A as f } from "./index-CnsLn8vW.js";
1
+ import { E as s, d as e, z as t, B as r, P as n, b as o, v as l, Q as c, n as g, w as m, o as p, p as v, m as P, c as h, u as E, f as R, q as u, e as y, y as S, g as d, j as M, x as w, s as A, l as C, A as f } from "./index-DeP4Bkz8.js";
2
2
  export {
3
3
  s as EcapEventManager,
4
4
  e as ExitShell,
@@ -514,7 +514,7 @@ ${J.searchString?.length>1?ke$1`
514
514
  `;function memo(J,W,X){let te=X.initialDeps??[],re,oe=!0;function ne(){var de,ce,ue;let he;X.key&&((de=X.debug)!=null&&de.call(X))&&(he=Date.now());const pe=J();if(!(pe.length!==te.length||pe.some((me,ge)=>te[ge]!==me)))return re;te=pe;let be;if(X.key&&((ce=X.debug)!=null&&ce.call(X))&&(be=Date.now()),re=W(...pe),X.key&&((ue=X.debug)!=null&&ue.call(X))){const me=Math.round((Date.now()-he)*100)/100,ge=Math.round((Date.now()-be)*100)/100,ve=ge/16,_e=(ye,Se)=>{for(ye=String(ye);ye.length<Se;)ye=" "+ye;return ye};console.info(`%c⏱ ${_e(ge,5)} /${_e(me,5)} ms`,`
515
515
  font-size: .6rem;
516
516
  font-weight: bold;
517
- color: hsl(${Math.max(0,Math.min(120-120*ve,120))}deg 100% 31%);`,X?.key)}return X?.onChange&&!(oe&&X.skipInitialOnChange)&&X.onChange(re),oe=!1,re}return ne.updateDeps=de=>{te=de},ne}function notUndefined(J,W){if(J===void 0)throw new Error("Unexpected undefined");return J}const approxEqual=(J,W)=>Math.abs(J-W)<1.01,debounce$1=(J,W,X)=>{let te;return function(...re){J.clearTimeout(te),te=J.setTimeout(()=>W.apply(this,re),X)}},getRect=J=>{const{offsetWidth:W,offsetHeight:X}=J;return{width:W,height:X}},defaultKeyExtractor=J=>J,defaultRangeExtractor=J=>{const W=Math.max(J.startIndex-J.overscan,0),X=Math.min(J.endIndex+J.overscan,J.count-1),te=[];for(let re=W;re<=X;re++)te.push(re);return te},observeElementRect=(J,W)=>{const X=J.scrollElement;if(!X)return;const te=J.targetWindow;if(!te)return;const re=ne=>{const{width:de,height:ce}=ne;W({width:Math.round(de),height:Math.round(ce)})};if(re(getRect(X)),!te.ResizeObserver)return()=>{};const oe=new te.ResizeObserver(ne=>{const de=()=>{const ce=ne[0];if(ce?.borderBoxSize){const ue=ce.borderBoxSize[0];if(ue){re({width:ue.inlineSize,height:ue.blockSize});return}}re(getRect(X))};J.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(de):de()});return oe.observe(X,{box:"border-box"}),()=>{oe.unobserve(X)}},addEventListenerOptions={passive:!0},supportsScrollend=typeof window>"u"?!0:"onscrollend"in window,observeElementOffset=(J,W)=>{const X=J.scrollElement;if(!X)return;const te=J.targetWindow;if(!te)return;let re=0;const oe=J.options.useScrollendEvent&&supportsScrollend?()=>{}:debounce$1(te,()=>{W(re,!1)},J.options.isScrollingResetDelay),ne=he=>()=>{const{horizontal:pe,isRtl:fe}=J.options;re=pe?X.scrollLeft*(fe&&-1||1):X.scrollTop,oe(),W(re,he)},de=ne(!0),ce=ne(!1);X.addEventListener("scroll",de,addEventListenerOptions);const ue=J.options.useScrollendEvent&&supportsScrollend;return ue&&X.addEventListener("scrollend",ce,addEventListenerOptions),()=>{X.removeEventListener("scroll",de),ue&&X.removeEventListener("scrollend",ce)}},measureElement=(J,W,X)=>{if(W?.borderBoxSize){const te=W.borderBoxSize[0];if(te)return Math.round(te[X.options.horizontal?"inlineSize":"blockSize"])}return J[X.options.horizontal?"offsetWidth":"offsetHeight"]},elementScroll=(J,{adjustments:W=0,behavior:X},te)=>{var re,oe;const ne=J+W;(oe=(re=te.scrollElement)==null?void 0:re.scrollTo)==null||oe.call(re,{[te.options.horizontal?"left":"top"]:ne,behavior:X})};class Virtualizer{constructor(W){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var X,te,re;return((re=(te=(X=this.targetWindow)==null?void 0:X.performance)==null?void 0:te.now)==null?void 0:re.call(te))??Date.now()},this.observer=(()=>{let X=null;const te=()=>X||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:X=new this.targetWindow.ResizeObserver(re=>{re.forEach(oe=>{const ne=()=>{const de=oe.target,ce=this.indexFromElement(de);if(!de.isConnected){this.observer.unobserve(de);return}this.shouldMeasureDuringScroll(ce)&&this.resizeItem(ce,this.options.measureElement(de,oe,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(ne):ne()})}));return{disconnect:()=>{var re;(re=te())==null||re.disconnect(),X=null},observe:re=>{var oe;return(oe=te())==null?void 0:oe.observe(re,{box:"border-box"})},unobserve:re=>{var oe;return(oe=te())==null?void 0:oe.unobserve(re)}}})(),this.range=null,this.setOptions=X=>{Object.entries(X).forEach(([te,re])=>{typeof re>"u"&&delete X[te]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...X}},this.notify=X=>{var te,re;(re=(te=this.options).onChange)==null||re.call(te,this,X)},this.maybeNotify=memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),X=>{this.notify(X)},{key:!1,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(X=>X()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var X;const te=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==te){if(this.cleanup(),!te){this.maybeNotify();return}this.scrollElement=te,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((X=this.scrollElement)==null?void 0:X.window)??null,this.elementsCache.forEach(re=>{this.observer.observe(re)}),this.unsubs.push(this.options.observeElementRect(this,re=>{this.scrollRect=re,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(re,oe)=>{this.scrollAdjustments=0,this.scrollDirection=oe?this.getScrollOffset()<re?"forward":"backward":null,this.scrollOffset=re,this.isScrolling=oe,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,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.getFurthestMeasurement=(X,te)=>{const re=new Map,oe=new Map;for(let ne=te-1;ne>=0;ne--){const de=X[ne];if(re.has(de.lane))continue;const ce=oe.get(de.lane);if(ce==null||de.end>ce.end?oe.set(de.lane,de):de.end<ce.end&&re.set(de.lane,!0),re.size===this.options.lanes)break}return oe.size===this.options.lanes?Array.from(oe.values()).sort((ne,de)=>ne.end===de.end?ne.index-de.index:ne.end-de.end)[0]:void 0},this.getMeasurementOptions=memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(X,te,re,oe,ne,de,ce)=>(this.prevLanes!==void 0&&this.prevLanes!==de&&(this.lanesChangedFlag=!0),this.prevLanes=de,this.pendingMeasuredCacheIndexes=[],{count:X,paddingStart:te,scrollMargin:re,getItemKey:oe,enabled:ne,lanes:de,laneAssignmentMode:ce}),{key:!1}),this.getMeasurements=memo(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:X,paddingStart:te,scrollMargin:re,getItemKey:oe,enabled:ne,lanes:de,laneAssignmentMode:ce},ue)=>{if(!ne)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>X)for(const be of this.laneAssignments.keys())be>=X&&this.laneAssignments.delete(be);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(be=>{this.itemSizeCache.set(be.key,be.size)}));const he=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===X&&(this.lanesSettling=!1);const pe=this.measurementsCache.slice(0,he),fe=new Array(de).fill(void 0);for(let be=0;be<he;be++){const me=pe[be];me&&(fe[me.lane]=be)}for(let be=he;be<X;be++){const me=oe(be),ge=this.laneAssignments.get(be);let ve,_e;const ye=ce==="estimate"||ue.has(me);if(ge!==void 0&&this.options.lanes>1){ve=ge;const Le=fe[ve],De=Le!==void 0?pe[Le]:void 0;_e=De?De.end+this.options.gap:te+re}else{const Le=this.options.lanes===1?pe[be-1]:this.getFurthestMeasurement(pe,be);_e=Le?Le.end+this.options.gap:te+re,ve=Le?Le.lane:be%this.options.lanes,this.options.lanes>1&&ye&&this.laneAssignments.set(be,ve)}const Se=ue.get(me),we=typeof Se=="number"?Se:this.options.estimateSize(be),Ce=_e+we;pe[be]={index:be,start:_e,size:we,end:Ce,key:me,lane:ve},fe[ve]=be}return this.measurementsCache=pe,pe},{key:!1,debug:()=>this.options.debug}),this.calculateRange=memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(X,te,re,oe)=>this.range=X.length>0&&te>0?calculateRange({measurements:X,outerSize:te,scrollOffset:re,lanes:oe}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=memo(()=>{let X=null,te=null;const re=this.calculateRange();return re&&(X=re.startIndex,te=re.endIndex),this.maybeNotify.updateDeps([this.isScrolling,X,te]),[this.options.rangeExtractor,this.options.overscan,this.options.count,X,te]},(X,te,re,oe,ne)=>oe===null||ne===null?[]:X({startIndex:oe,endIndex:ne,overscan:te,count:re}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=X=>{const te=this.options.indexAttribute,re=X.getAttribute(te);return re?parseInt(re,10):(console.warn(`Missing attribute name '${te}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=X=>{var te;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const re=this.scrollState.index??((te=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:te.index);if(re!==void 0&&this.range){const oe=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),ne=Math.max(0,re-oe),de=Math.min(this.options.count-1,re+oe);return X>=ne&&X<=de}return!0},this.measureElement=X=>{if(!X){this.elementsCache.forEach((ne,de)=>{ne.isConnected||(this.observer.unobserve(ne),this.elementsCache.delete(de))});return}const te=this.indexFromElement(X),re=this.options.getItemKey(te),oe=this.elementsCache.get(re);oe!==X&&(oe&&this.observer.unobserve(oe),this.observer.observe(X),this.elementsCache.set(re,X)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(te)&&this.resizeItem(te,this.options.measureElement(X,void 0,this))},this.resizeItem=(X,te)=>{var re;const oe=this.measurementsCache[X];if(!oe)return;const ne=this.itemSizeCache.get(oe.key)??oe.size,de=te-ne;de!==0&&(((re=this.scrollState)==null?void 0:re.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(oe,de,this):oe.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=de,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(oe.index),this.itemSizeCache=new Map(this.itemSizeCache.set(oe.key,te)),this.notify(!1))},this.getVirtualItems=memo(()=>[this.getVirtualIndexes(),this.getMeasurements()],(X,te)=>{const re=[];for(let oe=0,ne=X.length;oe<ne;oe++){const de=X[oe],ce=te[de];re.push(ce)}return re},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=X=>{const te=this.getMeasurements();if(te.length!==0)return notUndefined(te[findNearestBinarySearch(0,te.length-1,re=>notUndefined(te[re]).start,X)])},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;{const X=this.scrollElement.document.documentElement;return this.options.horizontal?X.scrollWidth-this.scrollElement.innerWidth:X.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(X,te,re=0)=>{if(!this.scrollElement)return 0;const oe=this.getSize(),ne=this.getScrollOffset();te==="auto"&&(te=X>=ne+oe?"end":"start"),te==="center"?X+=(re-oe)/2:te==="end"&&(X-=oe);const de=this.getMaxScrollOffset();return Math.max(Math.min(de,X),0)},this.getOffsetForIndex=(X,te="auto")=>{X=Math.max(0,Math.min(X,this.options.count-1));const re=this.getSize(),oe=this.getScrollOffset(),ne=this.measurementsCache[X];if(!ne)return;if(te==="auto")if(ne.end>=oe+re-this.options.scrollPaddingEnd)te="end";else if(ne.start<=oe+this.options.scrollPaddingStart)te="start";else return[oe,te];if(te==="end"&&X===this.options.count-1)return[this.getMaxScrollOffset(),te];const de=te==="end"?ne.end+this.options.scrollPaddingEnd:ne.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(de,te,ne.size),te]},this.scrollToOffset=(X,{align:te="start",behavior:re="auto"}={})=>{const oe=this.getOffsetForAlignment(X,te),ne=this.now();this.scrollState={index:null,align:te,behavior:re,startedAt:ne,lastTargetOffset:oe,stableFrames:0},this._scrollToOffset(oe,{adjustments:void 0,behavior:re}),this.scheduleScrollReconcile()},this.scrollToIndex=(X,{align:te="auto",behavior:re="auto"}={})=>{X=Math.max(0,Math.min(X,this.options.count-1));const oe=this.getOffsetForIndex(X,te);if(!oe)return;const[ne,de]=oe,ce=this.now();this.scrollState={index:X,align:de,behavior:re,startedAt:ce,lastTargetOffset:ne,stableFrames:0},this._scrollToOffset(ne,{adjustments:void 0,behavior:re}),this.scheduleScrollReconcile()},this.scrollBy=(X,{behavior:te="auto"}={})=>{const re=this.getScrollOffset()+X,oe=this.now();this.scrollState={index:null,align:"start",behavior:te,startedAt:oe,lastTargetOffset:re,stableFrames:0},this._scrollToOffset(re,{adjustments:void 0,behavior:te}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var X;const te=this.getMeasurements();let re;if(te.length===0)re=this.options.paddingStart;else if(this.options.lanes===1)re=((X=te[te.length-1])==null?void 0:X.end)??0;else{const oe=Array(this.options.lanes).fill(null);let ne=te.length-1;for(;ne>=0&&oe.some(de=>de===null);){const de=te[ne];oe[de.lane]===null&&(oe[de.lane]=de.end),ne--}re=Math.max(...oe.filter(de=>de!==null))}return Math.max(re-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(X,{adjustments:te,behavior:re})=>{this.options.scrollToFn(X,{behavior:re,adjustments:te},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(W)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(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}const te=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,re=te?te[0]:this.scrollState.lastTargetOffset,oe=1,ne=re!==this.scrollState.lastTargetOffset;if(!ne&&approxEqual(re,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=oe){this.scrollState=null;return}}else this.scrollState.stableFrames=0,ne&&(this.scrollState.lastTargetOffset=re,this.scrollState.behavior="auto",this._scrollToOffset(re,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const findNearestBinarySearch=(J,W,X,te)=>{for(;J<=W;){const re=(J+W)/2|0,oe=X(re);if(oe<te)J=re+1;else if(oe>te)W=re-1;else return re}return J>0?J-1:0};function calculateRange({measurements:J,outerSize:W,scrollOffset:X,lanes:te}){const re=J.length-1,oe=ce=>J[ce].start;if(J.length<=te)return{startIndex:0,endIndex:re};let ne=findNearestBinarySearch(0,re,oe,X),de=ne;if(te===1)for(;de<re&&J[de].end<X+W;)de++;else if(te>1){const ce=Array(te).fill(0);for(;de<re&&ce.some(he=>he<X+W);){const he=J[de];ce[he.lane]=he.end,de++}const ue=Array(te).fill(X+W);for(;ne>=0&&ue.some(he=>he>=X);){const he=J[ne];ue[he.lane]=he.start,ne--}ne=Math.max(0,ne-ne%te),de=Math.min(re,de+(te-1-de%te))}return{startIndex:ne,endIndex:de}}const measureElementWithMargins=J=>{const W=J.getBoundingClientRect().height,X=window.getComputedStyle(J),te=Number.parseFloat(X.marginTop)||0,re=Number.parseFloat(X.marginBottom)||0;return Math.round(W+te+re)};class VirtualScroller{constructor(W){this._options=W}setup(W,X){return this._viewport=W,this._virtualizer=new Virtualizer({count:this._options.items.length,getScrollElement:()=>this._viewport??null,estimateSize:te=>this._options.estimateItemHeight(te),overscan:this._options.overscan??5,measureElement:te=>(this._options.measureElement??measureElementWithMargins)(te),observeElementRect,observeElementOffset,scrollToFn:elementScroll,onChange:()=>{X(this.getState())}}),this._cleanup=this._virtualizer._didMount(),this._virtualizer._willUpdate(),X(this.getState()),()=>{this._cleanup?.()}}willUpdate(){this._virtualizer?._willUpdate()}updateItems(W,X){this._options.items=W,this._virtualizer&&(this._virtualizer.setOptions({...this._virtualizer.options,count:W.length}),this._virtualizer._willUpdate()),X&&X(this.getState())}measureElement(W){this._virtualizer?.measureElement(W)}scrollToIndex(W,X="smooth",te="auto"){this._virtualizer?.scrollToIndex(W,{behavior:X,align:te})}getOffsetForIndex(W){return this._virtualizer?.getOffsetForIndex(W,"start")?.[0]??0}getState(){return{virtualItems:this._virtualizer?.getVirtualItems()??[],totalHeight:this._virtualizer?.getTotalSize()??0}}}var __defProp$o=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$s=(J,W,X,te)=>{for(var re=te>1?void 0:te?__getOwnPropDesc$e(W,X):W,oe=J.length-1,ne;oe>=0;oe--)(ne=J[oe])&&(re=(te?ne(W,X,re):ne(re))||re);return te&&re&&__defProp$o(W,X,re),re};let ActivityHistoryTimeline=class extends h$p{constructor(){super(...arguments),this._virtualScrollerState={virtualItems:[],totalHeight:0},this._canShowNoDataMessage=!1,this._measureElement=J=>{J&&this._virtualScroller?.measureElement(J)},this._onScroll=()=>{}}render(){return ke$1`
517
+ color: hsl(${Math.max(0,Math.min(120-120*ve,120))}deg 100% 31%);`,X?.key)}return X?.onChange&&!(oe&&X.skipInitialOnChange)&&X.onChange(re),oe=!1,re}return ne.updateDeps=de=>{te=de},ne}function notUndefined(J,W){if(J===void 0)throw new Error("Unexpected undefined");return J}const approxEqual=(J,W)=>Math.abs(J-W)<1.01,debounce$1=(J,W,X)=>{let te;return function(...re){J.clearTimeout(te),te=J.setTimeout(()=>W.apply(this,re),X)}},getRect=J=>{const{offsetWidth:W,offsetHeight:X}=J;return{width:W,height:X}},defaultKeyExtractor=J=>J,defaultRangeExtractor=J=>{const W=Math.max(J.startIndex-J.overscan,0),X=Math.min(J.endIndex+J.overscan,J.count-1),te=[];for(let re=W;re<=X;re++)te.push(re);return te},observeElementRect=(J,W)=>{const X=J.scrollElement;if(!X)return;const te=J.targetWindow;if(!te)return;const re=ne=>{const{width:de,height:ce}=ne;W({width:Math.round(de),height:Math.round(ce)})};if(re(getRect(X)),!te.ResizeObserver)return()=>{};const oe=new te.ResizeObserver(ne=>{const de=()=>{const ce=ne[0];if(ce?.borderBoxSize){const ue=ce.borderBoxSize[0];if(ue){re({width:ue.inlineSize,height:ue.blockSize});return}}re(getRect(X))};J.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(de):de()});return oe.observe(X,{box:"border-box"}),()=>{oe.unobserve(X)}},addEventListenerOptions={passive:!0},supportsScrollend=typeof window>"u"?!0:"onscrollend"in window,observeElementOffset=(J,W)=>{const X=J.scrollElement;if(!X)return;const te=J.targetWindow;if(!te)return;let re=0;const oe=J.options.useScrollendEvent&&supportsScrollend?()=>{}:debounce$1(te,()=>{W(re,!1)},J.options.isScrollingResetDelay),ne=he=>()=>{const{horizontal:pe,isRtl:fe}=J.options;re=pe?X.scrollLeft*(fe&&-1||1):X.scrollTop,oe(),W(re,he)},de=ne(!0),ce=ne(!1);X.addEventListener("scroll",de,addEventListenerOptions);const ue=J.options.useScrollendEvent&&supportsScrollend;return ue&&X.addEventListener("scrollend",ce,addEventListenerOptions),()=>{X.removeEventListener("scroll",de),ue&&X.removeEventListener("scrollend",ce)}},measureElement=(J,W,X)=>{if(W?.borderBoxSize){const te=W.borderBoxSize[0];if(te)return Math.round(te[X.options.horizontal?"inlineSize":"blockSize"])}return J[X.options.horizontal?"offsetWidth":"offsetHeight"]},elementScroll=(J,{adjustments:W=0,behavior:X},te)=>{var re,oe;const ne=J+W;(oe=(re=te.scrollElement)==null?void 0:re.scrollTo)==null||oe.call(re,{[te.options.horizontal?"left":"top"]:ne,behavior:X})};class Virtualizer{constructor(W){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var X,te,re;return((re=(te=(X=this.targetWindow)==null?void 0:X.performance)==null?void 0:te.now)==null?void 0:re.call(te))??Date.now()},this.observer=(()=>{let X=null;const te=()=>X||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:X=new this.targetWindow.ResizeObserver(re=>{re.forEach(oe=>{const ne=()=>{const de=oe.target,ce=this.indexFromElement(de);if(!de.isConnected){this.observer.unobserve(de);return}this.shouldMeasureDuringScroll(ce)&&this.resizeItem(ce,this.options.measureElement(de,oe,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(ne):ne()})}));return{disconnect:()=>{var re;(re=te())==null||re.disconnect(),X=null},observe:re=>{var oe;return(oe=te())==null?void 0:oe.observe(re,{box:"border-box"})},unobserve:re=>{var oe;return(oe=te())==null?void 0:oe.unobserve(re)}}})(),this.range=null,this.setOptions=X=>{Object.entries(X).forEach(([te,re])=>{typeof re>"u"&&delete X[te]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...X}},this.notify=X=>{var te,re;(re=(te=this.options).onChange)==null||re.call(te,this,X)},this.maybeNotify=memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),X=>{this.notify(X)},{key:!1,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(X=>X()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var X;const te=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==te){if(this.cleanup(),!te){this.maybeNotify();return}this.scrollElement=te,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((X=this.scrollElement)==null?void 0:X.window)??null,this.elementsCache.forEach(re=>{this.observer.observe(re)}),this.unsubs.push(this.options.observeElementRect(this,re=>{this.scrollRect=re,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(re,oe)=>{this.scrollAdjustments=0,this.scrollDirection=oe?this.getScrollOffset()<re?"forward":"backward":null,this.scrollOffset=re,this.isScrolling=oe,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,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.getFurthestMeasurement=(X,te)=>{const re=new Map,oe=new Map;for(let ne=te-1;ne>=0;ne--){const de=X[ne];if(re.has(de.lane))continue;const ce=oe.get(de.lane);if(ce==null||de.end>ce.end?oe.set(de.lane,de):de.end<ce.end&&re.set(de.lane,!0),re.size===this.options.lanes)break}return oe.size===this.options.lanes?Array.from(oe.values()).sort((ne,de)=>ne.end===de.end?ne.index-de.index:ne.end-de.end)[0]:void 0},this.getMeasurementOptions=memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(X,te,re,oe,ne,de,ce)=>(this.prevLanes!==void 0&&this.prevLanes!==de&&(this.lanesChangedFlag=!0),this.prevLanes=de,this.pendingMeasuredCacheIndexes=[],{count:X,paddingStart:te,scrollMargin:re,getItemKey:oe,enabled:ne,lanes:de,laneAssignmentMode:ce}),{key:!1}),this.getMeasurements=memo(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:X,paddingStart:te,scrollMargin:re,getItemKey:oe,enabled:ne,lanes:de,laneAssignmentMode:ce},ue)=>{if(!ne)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>X)for(const be of this.laneAssignments.keys())be>=X&&this.laneAssignments.delete(be);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(be=>{this.itemSizeCache.set(be.key,be.size)}));const he=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===X&&(this.lanesSettling=!1);const pe=this.measurementsCache.slice(0,he),fe=new Array(de).fill(void 0);for(let be=0;be<he;be++){const me=pe[be];me&&(fe[me.lane]=be)}for(let be=he;be<X;be++){const me=oe(be),ge=this.laneAssignments.get(be);let ve,_e;const ye=ce==="estimate"||ue.has(me);if(ge!==void 0&&this.options.lanes>1){ve=ge;const Le=fe[ve],De=Le!==void 0?pe[Le]:void 0;_e=De?De.end+this.options.gap:te+re}else{const Le=this.options.lanes===1?pe[be-1]:this.getFurthestMeasurement(pe,be);_e=Le?Le.end+this.options.gap:te+re,ve=Le?Le.lane:be%this.options.lanes,this.options.lanes>1&&ye&&this.laneAssignments.set(be,ve)}const Se=ue.get(me),we=typeof Se=="number"?Se:this.options.estimateSize(be),Ce=_e+we;pe[be]={index:be,start:_e,size:we,end:Ce,key:me,lane:ve},fe[ve]=be}return this.measurementsCache=pe,pe},{key:!1,debug:()=>this.options.debug}),this.calculateRange=memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(X,te,re,oe)=>this.range=X.length>0&&te>0?calculateRange({measurements:X,outerSize:te,scrollOffset:re,lanes:oe}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=memo(()=>{let X=null,te=null;const re=this.calculateRange();return re&&(X=re.startIndex,te=re.endIndex),this.maybeNotify.updateDeps([this.isScrolling,X,te]),[this.options.rangeExtractor,this.options.overscan,this.options.count,X,te]},(X,te,re,oe,ne)=>oe===null||ne===null?[]:X({startIndex:oe,endIndex:ne,overscan:te,count:re}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=X=>{const te=this.options.indexAttribute,re=X.getAttribute(te);return re?parseInt(re,10):(console.warn(`Missing attribute name '${te}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=X=>{var te;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const re=this.scrollState.index??((te=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:te.index);if(re!==void 0&&this.range){const oe=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),ne=Math.max(0,re-oe),de=Math.min(this.options.count-1,re+oe);return X>=ne&&X<=de}return!0},this.measureElement=X=>{if(!X){this.elementsCache.forEach((ne,de)=>{ne.isConnected||(this.observer.unobserve(ne),this.elementsCache.delete(de))});return}const te=this.indexFromElement(X),re=this.options.getItemKey(te),oe=this.elementsCache.get(re);oe!==X&&(oe&&this.observer.unobserve(oe),this.observer.observe(X),this.elementsCache.set(re,X)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(te)&&this.resizeItem(te,this.options.measureElement(X,void 0,this))},this.resizeItem=(X,te)=>{var re;const oe=this.measurementsCache[X];if(!oe)return;const ne=this.itemSizeCache.get(oe.key)??oe.size,de=te-ne;de!==0&&(((re=this.scrollState)==null?void 0:re.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(oe,de,this):oe.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=de,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(oe.index),this.itemSizeCache=new Map(this.itemSizeCache.set(oe.key,te)),this.notify(!1))},this.getVirtualItems=memo(()=>[this.getVirtualIndexes(),this.getMeasurements()],(X,te)=>{const re=[];for(let oe=0,ne=X.length;oe<ne;oe++){const de=X[oe],ce=te[de];re.push(ce)}return re},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=X=>{const te=this.getMeasurements();if(te.length!==0)return notUndefined(te[findNearestBinarySearch(0,te.length-1,re=>notUndefined(te[re]).start,X)])},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;{const X=this.scrollElement.document.documentElement;return this.options.horizontal?X.scrollWidth-this.scrollElement.innerWidth:X.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(X,te,re=0)=>{if(!this.scrollElement)return 0;const oe=this.getSize(),ne=this.getScrollOffset();te==="auto"&&(te=X>=ne+oe?"end":"start"),te==="center"?X+=(re-oe)/2:te==="end"&&(X-=oe);const de=this.getMaxScrollOffset();return Math.max(Math.min(de,X),0)},this.getOffsetForIndex=(X,te="auto")=>{X=Math.max(0,Math.min(X,this.options.count-1));const re=this.getSize(),oe=this.getScrollOffset(),ne=this.measurementsCache[X];if(!ne)return;if(te==="auto")if(ne.end>=oe+re-this.options.scrollPaddingEnd)te="end";else if(ne.start<=oe+this.options.scrollPaddingStart)te="start";else return[oe,te];if(te==="end"&&X===this.options.count-1)return[this.getMaxScrollOffset(),te];const de=te==="end"?ne.end+this.options.scrollPaddingEnd:ne.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(de,te,ne.size),te]},this.scrollToOffset=(X,{align:te="start",behavior:re="auto"}={})=>{const oe=this.getOffsetForAlignment(X,te),ne=this.now();this.scrollState={index:null,align:te,behavior:re,startedAt:ne,lastTargetOffset:oe,stableFrames:0},this._scrollToOffset(oe,{adjustments:void 0,behavior:re}),this.scheduleScrollReconcile()},this.scrollToIndex=(X,{align:te="auto",behavior:re="auto"}={})=>{X=Math.max(0,Math.min(X,this.options.count-1));const oe=this.getOffsetForIndex(X,te);if(!oe)return;const[ne,de]=oe,ce=this.now();this.scrollState={index:X,align:de,behavior:re,startedAt:ce,lastTargetOffset:ne,stableFrames:0},this._scrollToOffset(ne,{adjustments:void 0,behavior:re}),this.scheduleScrollReconcile()},this.scrollBy=(X,{behavior:te="auto"}={})=>{const re=this.getScrollOffset()+X,oe=this.now();this.scrollState={index:null,align:"start",behavior:te,startedAt:oe,lastTargetOffset:re,stableFrames:0},this._scrollToOffset(re,{adjustments:void 0,behavior:te}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var X;const te=this.getMeasurements();let re;if(te.length===0)re=this.options.paddingStart;else if(this.options.lanes===1)re=((X=te[te.length-1])==null?void 0:X.end)??0;else{const oe=Array(this.options.lanes).fill(null);let ne=te.length-1;for(;ne>=0&&oe.some(de=>de===null);){const de=te[ne];oe[de.lane]===null&&(oe[de.lane]=de.end),ne--}re=Math.max(...oe.filter(de=>de!==null))}return Math.max(re-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(X,{adjustments:te,behavior:re})=>{this.options.scrollToFn(X,{behavior:re,adjustments:te},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(W)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(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}const te=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,re=te?te[0]:this.scrollState.lastTargetOffset,oe=1,ne=re!==this.scrollState.lastTargetOffset;if(!ne&&approxEqual(re,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=oe){this.scrollState=null;return}}else this.scrollState.stableFrames=0,ne&&(this.scrollState.lastTargetOffset=re,this.scrollState.behavior="auto",this._scrollToOffset(re,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const findNearestBinarySearch=(J,W,X,te)=>{for(;J<=W;){const re=(J+W)/2|0,oe=X(re);if(oe<te)J=re+1;else if(oe>te)W=re-1;else return re}return J>0?J-1:0};function calculateRange({measurements:J,outerSize:W,scrollOffset:X,lanes:te}){const re=J.length-1,oe=ce=>J[ce].start;if(J.length<=te)return{startIndex:0,endIndex:re};let ne=findNearestBinarySearch(0,re,oe,X),de=ne;if(te===1)for(;de<re&&J[de].end<X+W;)de++;else if(te>1){const ce=Array(te).fill(0);for(;de<re&&ce.some(he=>he<X+W);){const he=J[de];ce[he.lane]=he.end,de++}const ue=Array(te).fill(X+W);for(;ne>=0&&ue.some(he=>he>=X);){const he=J[ne];ue[he.lane]=he.start,ne--}ne=Math.max(0,ne-ne%te),de=Math.min(re,de+(te-1-de%te))}return{startIndex:ne,endIndex:de}}const measureElementWithMargins=J=>{const W=J.getBoundingClientRect().height,X=window.getComputedStyle(J),te=Number.parseFloat(X.marginTop)||0,re=Number.parseFloat(X.marginBottom)||0;return Math.round(W+te+re)};class VirtualScroller{constructor(W){this._lastVisibleState={virtualItems:[],totalHeight:0},this._savedScrollTop=0,this._viewportWasHidden=!1,this._options=W}setup(W,X){return this._viewport=W,this._virtualizer=new Virtualizer({count:this._options.items.length,getScrollElement:()=>this._viewport??null,estimateSize:te=>this._options.estimateItemHeight(te),overscan:this._options.overscan??5,measureElement:te=>this._measureItem(te),observeElementRect,observeElementOffset,scrollToFn:elementScroll,onChange:()=>{this._trackViewportVisibility(),X(this.getState())}}),this._cleanup=this._virtualizer._didMount(),this._virtualizer._willUpdate(),X(this.getState()),()=>{this._cleanup?.()}}willUpdate(){this._virtualizer?._willUpdate()}updateItems(W,X){this._options.items=W,this._virtualizer&&(this._virtualizer.setOptions({...this._virtualizer.options,count:W.length}),this._virtualizer._willUpdate()),X&&X(this.getState())}measureElement(W){this._virtualizer?.measureElement(W)}scrollToIndex(W,X="smooth",te="auto"){this._virtualizer?.scrollToIndex(W,{behavior:X,align:te})}getOffsetForIndex(W){return this._virtualizer?.getOffsetForIndex(W,"start")?.[0]??0}_measureItem(W){if(W.getBoundingClientRect().height===0){const X=Number(W.getAttribute("data-index"));return this._virtualizer?.measurementsCache[X]?.size??this._options.estimateItemHeight(X)}return(this._options.measureElement??measureElementWithMargins)(W)}_trackViewportVisibility(){if(this._viewport){if(this._viewport.clientHeight===0){this._viewportWasHidden=!0;return}this._viewportWasHidden&&(this._viewportWasHidden=!1,this._viewport.scrollTop=this._savedScrollTop),this._savedScrollTop=this._viewport.scrollTop}}getState(){const W=!!(this._viewport&&this._viewport.clientHeight>0);return this._virtualizer&&W&&(this._lastVisibleState={virtualItems:this._virtualizer.getVirtualItems(),totalHeight:this._virtualizer.getTotalSize()}),this._lastVisibleState}}var __defProp$o=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$s=(J,W,X,te)=>{for(var re=te>1?void 0:te?__getOwnPropDesc$e(W,X):W,oe=J.length-1,ne;oe>=0;oe--)(ne=J[oe])&&(re=(te?ne(W,X,re):ne(re))||re);return te&&re&&__defProp$o(W,X,re),re};let ActivityHistoryTimeline=class extends h$p{constructor(){super(...arguments),this._virtualScrollerState={virtualItems:[],totalHeight:0},this._canShowNoDataMessage=!1,this._measureElement=J=>{J&&this._virtualScroller?.measureElement(J)},this._onScroll=()=>{}}render(){return ke$1`
518
518
  ${template$m(this)}
519
519
  `}connectedCallback(){super.connectedCallback(),this._noDataMessageTimer=setTimeout(()=>{this._canShowNoDataMessage=!0},2e3)}disconnectedCallback(){super.disconnectedCallback(),this._cleanupVirtualScroller?.(),this._noDataMessageTimer&&clearTimeout(this._noDataMessageTimer)}async updated(J){this._virtualScroller?.willUpdate(),J.has("historyGroups")&&this.historyGroups?.length&&(await this.prepareComponents(this.historyGroups),this._updateVirtualScroller(),await this.updateComplete),this._viewport&&!this._virtualScroller&&setTimeout(()=>this._setupVirtualScroller(),0),this._viewport&&this._virtualScroller&&this._viewport!==this._lastViewportElement&&(this._cleanupVirtualScroller?.(),this._virtualScroller=void 0,setTimeout(()=>this._setupVirtualScroller(),0)),this._viewport&&(this._lastViewportElement=this._viewport)}async prepareComponents(J){for(const W of J){W.items=await Promise.all(W.items.map(async X=>({...X,component:await X.componentFactory({item:X})})));for(const X of W.subGroups)X.items=await Promise.all(X.items.map(async te=>({...te,component:await te.componentFactory({item:te})})))}}highlightMatch(J,W){if(!this.searchString||this.searchString.length<2)return J;const X=new RegExp(`(${W})`,"gi");return J.replace(X,'<span class="highlight">$1</span>')}highlighted(J){return J?ae(this.highlightMatch(J,this.searchString)):null}_scrollIntoDate(J){if(!this._virtualScroller||!this._viewport)return;const W=this.historyGroups??[];if(!W.length)return;const X=startOfDay(J).getTime(),te=oe=>startOfDay(getGroupMostRecentDate(oe)).getTime();let re=W.findIndex(oe=>te(oe)<=X);re===-1&&(re=W.length-1),this._viewport.scrollTop=this._virtualScroller.getOffsetForIndex(re),this._alignGroupTop(re,0)}_alignGroupTop(J,W){W>=4||!this._viewport||requestAnimationFrame(()=>{const X=this._viewport;if(!X)return;const te=this.renderRoot?.querySelector(`.visit[data-index="${J}"]`);if(!te){this._alignGroupTop(J,W+1);return}const re=Math.round(te.getBoundingClientRect().top-X.getBoundingClientRect().top);Math.abs(re)<=1||(X.scrollTop+=re,this._alignGroupTop(J,W+1))})}_setupVirtualScroller(){!this._viewport||this._virtualScroller||(this._virtualScroller=new VirtualScroller({items:this.historyGroups||[],overscan:8,estimateItemHeight:J=>estimateGroupHeight(this.historyGroups?.[J])}),this._cleanupVirtualScroller=this._virtualScroller.setup(this._viewport,J=>{this._virtualScrollerState=J,this.requestUpdate(),this.api?.broker&&this.searchString&&this.api.broker.publish(this.api.broker.events.activityHistory.searched,{searchQuery:this.searchString})}),this._virtualScrollerState=this._virtualScroller.getState())}_updateVirtualScroller(){!this._virtualScroller||!this.historyGroups?.length||(this._virtualScroller.updateItems(this.historyGroups,J=>{this._virtualScrollerState=J,this.requestUpdate(),this.api?.broker&&this.searchString&&this.api.broker.publish(this.api.broker.events.activityHistory.searched,{searchQuery:this.searchString})}),this._virtualScrollerState=this._virtualScroller.getState())}get _visibleRows(){return this._virtualScrollerState.virtualItems.map(J=>({index:J.index,group:this.historyGroups?.[J.index]})).filter(J=>!!J.group)}get _containerOffset(){return this._virtualScrollerState.virtualItems[0]?.start??0}get _totalHeight(){return this._virtualScrollerState.totalHeight}};ActivityHistoryTimeline.styles=i$T`
520
520
  ${r$L(styles$m)}