codexmeter 1.0.20 → 1.0.21

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.
@@ -25,7 +25,7 @@ yyyy`);var r=cc(t),i=n?`getUTC`:`get`,a=r[i+`FullYear`](),o=r[i+`Month`]()+1,s=r
25
25
  `:`<br/>`,m=l.join(p);this._showOrMove(a,function(){this._updateContentNotChangedOnAxis(e,s)?this._updatePosition(a,d,i[0],i[1],this._tooltipContent,s):this._showTooltipContent(a,m,s,Math.random()+``,i[0],i[1],d,null,u)})},t.prototype._showSeriesItemTooltip=function(e,t,n){var r=this._ecModel,i=Bd(t),a=i.seriesIndex,o=r.getSeriesByIndex(a),s=i.dataModel||o,c=i.dataIndex,l=i.dataType,u=s.getData(l),d=this._renderMode,f=e.positionDefault,p=EF([u.getItemModel(c),s,o&&(o.coordinateSystem||{}).model],this._tooltipModel,f?{position:f}:null),m=p.get(`trigger`);if(!(m!=null&&m!==`item`)){var h=s.getDataParams(c,l),g=new Fb;h.marker=g.makeTooltipMarker(`item`,r_(h.color),d);var _=Iy(s.formatTooltip(c,!1,l)),v=p.get(`order`),y=p.get(`valueFormatter`),b=_.frag,x=b?Eb(y?z({valueFormatter:y},b):b,g,d,v,r.get(`useUTC`),p.get(`textStyle`)):_.text,S=`item_`+s.name+`_`+c;this._showOrMove(p,function(){this._showTooltipContent(p,x,h,S,e.offsetX,e.offsetY,e.position,e.target,g)}),n({type:`showTip`,dataIndexInside:c,dataIndex:u.getRawIndex(c),seriesIndex:a,from:this.uid})}},t.prototype._showComponentItemTooltip=function(e,t,n){var r=this._renderMode===`html`,i=Bd(t),a=i.tooltipConfig.option||{},o=a.encodeHTMLContent;if(G(a)){var s=a;a={content:s,formatter:s},o=!0}o&&r&&a.content&&(a=Lt(a),a.content=gr(a.content));var c=[a],l=this._ecModel.getComponent(i.componentMainType,i.componentIndex);l&&c.push(l),c.push({formatter:a.content});var u=e.positionDefault,d=EF(c,this._tooltipModel,u?{position:u}:null),f=d.get(`content`),p=Math.random()+``,m=new Fb;this._showOrMove(d,function(){var n=Lt(d.get(`formatterParams`)||{});this._showTooltipContent(d,f,n,p,e.offsetX,e.offsetY,e.position,t,m)}),n({type:`showTip`,from:this.uid})},t.prototype._showTooltipContent=function(e,t,n,r,i,a,o,s,c){if(this._ticket=``,!(!e.get(`showContent`)||!e.get(`show`))){var l=this._tooltipContent;l.setEnterable(e.get(`enterable`));var u=e.get(`formatter`);o||=e.get(`position`);var d=t,f=this._getNearestPoint([i,a],n,e.get(`trigger`),e.get(`borderColor`),e.get(`defaultBorderColor`,!0)).color;if(u)if(G(u)){var p=e.ecModel.get(`useUTC`),m=U(n)?n[0]:n,h=m&&m.axisType&&m.axisType.indexOf(`time`)>=0;d=u,h&&(d=Og(m.axisValue,d,p)),d=$g(d,n,!0)}else if(W(u)){var g=H(function(t,r){t===this._ticket&&(l.setContent(r,c,e,f,o),this._updatePosition(e,o,i,a,l,n,s))},this);this._ticket=r,d=u(n,r,g)}else d=u;l.setContent(d,c,e,f,o),l.show(e,f),this._updatePosition(e,o,i,a,l,n,s)}},t.prototype._getNearestPoint=function(e,t,n,r,i){if(n===`axis`||U(t))return{color:r||i};if(!U(t))return{color:r||t.color||t.borderColor}},t.prototype._updatePosition=function(e,t,n,r,i,a,o){var s=this._api.getWidth(),c=this._api.getHeight();t||=e.get(`position`);var l=i.getSize(),u=e.get(`align`),d=e.get(`verticalAlign`),f=o&&o.getBoundingRect().clone();if(o&&f.applyTransform(o.transform),W(t)&&(t=t([n,r],a,i.el,f,{viewSize:[s,c],contentSize:l.slice()})),U(t))n=qs(t[0],s),r=qs(t[1],c);else if(K(t)){var p=t;p.width=l[0],p.height=l[1];var m=w_(p,{width:s,height:c});n=m.x,r=m.y,u=null,d=null}else if(G(t)&&o){var h=AF(t,f,l,e.get(`borderWidth`));n=h[0],r=h[1]}else{var h=OF(n,r,i,s,c,u?null:20,d?null:20);n=h[0],r=h[1]}if(u&&(n-=jF(u)?l[0]/2:u===`right`?l[0]:0),d&&(r-=jF(d)?l[1]/2:d===`bottom`?l[1]:0),rF(e)){var h=kF(n,r,i,s,c);n=h[0],r=h[1]}i.moveTo(n,r)},t.prototype._updateContentNotChangedOnAxis=function(e,t){var n=this._lastDataByCoordSys,r=this._cbParamsList,i=!!n&&n.length===e.length;return i&&B(n,function(n,a){var o=n.dataByAxis||[],s=(e[a]||{}).dataByAxis||[];i&&=o.length===s.length,i&&B(o,function(e,n){var a=s[n]||{},o=e.seriesDataIndices||[],c=a.seriesDataIndices||[];i=i&&e.value===a.value&&e.axisType===a.axisType&&e.axisId===a.axisId&&o.length===c.length,i&&B(o,function(e,t){var n=c[t];i=i&&e.seriesIndex===n.seriesIndex&&e.dataIndex===n.dataIndex}),r&&B(e.seriesDataIndices,function(e){var n=e.seriesIndex,a=t[n],o=r[n];a&&o&&o.data!==a.data&&(i=!1)})})}),this._lastDataByCoordSys=e,this._cbParamsList=t,!!i},t.prototype._hide=function(e){this._lastDataByCoordSys=null,e({type:`hideTip`,from:this.uid})},t.prototype.dispose=function(e,t){ft.node||!t.getDom()||(ux(this,`_updatePosition`),this._tooltipContent.dispose(),nP(`itemTooltip`,t))},t.type=`tooltip`,t}(Yb);function EF(e,t,n){var r=t.ecModel,i;n?(i=new Wh(n,r,r),i=new Wh(t.option,i,r)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof Wh&&(o=o.get(`tooltip`,!0)),G(o)&&(o={formatter:o}),o&&(i=new Wh(o,i,r)))}return i}function DF(e,t){return e.dispatchAction||H(t.dispatchAction,t)}function OF(e,t,n,r,i,a,o){var s=n.getSize(),c=s[0],l=s[1];return a!=null&&(e+c+a+2>r?e-=c+a:e+=a),o!=null&&(t+l+o>i?t-=l+o:t+=o),[e,t]}function kF(e,t,n,r,i){var a=n.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,r)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function AF(e,t,n,r){var i=n[0],a=n[1],o=Math.ceil(Math.SQRT2*r)+8,s=0,c=0,l=t.width,u=t.height;switch(e){case`inside`:s=t.x+l/2-i/2,c=t.y+u/2-a/2;break;case`top`:s=t.x+l/2-i/2,c=t.y-a-o;break;case`bottom`:s=t.x+l/2-i/2,c=t.y+u+o;break;case`left`:s=t.x-i-o,c=t.y+u/2-a/2;break;case`right`:s=t.x+l+o,c=t.y+u/2-a/2}return[s,c]}function jF(e){return e===`center`||e===`middle`}function MF(e,t,n){var r=Zc(e).queryOptionMap,i=r.keys()[0];if(!(!i||i===`series`)){var a=el(t,i,r.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}).models[0];if(a){var o=n.getViewOfComponentModel(a),s;if(o.group.traverse(function(t){var n=Bd(t).tooltipConfig;if(n&&n.name===e.name)return s=t,!0}),s)return{componentMainType:i,componentIndex:a.componentIndex,el:s}}}}function NF(e){xD(_P),e.registerComponentModel(nF),e.registerComponentView(TF),e.registerAction({type:`showTip`,event:`showTip`,update:`tooltip:manuallyShowTip`},Tn),e.registerAction({type:`hideTip`,event:`hideTip`,update:`tooltip:manuallyHideTip`},Tn)}L();var PF=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.layoutMode={type:`box`,ignoreSize:!0},n}return t.type=`title`,t.defaultOption={z:6,show:!0,text:``,target:`blank`,subtext:``,subtarget:`blank`,left:`center`,top:Z.size.m,backgroundColor:Z.color.transparent,borderColor:Z.color.primary,borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:`bold`,color:Z.color.primary},subtextStyle:{fontSize:12,color:Z.color.quaternary}},t}(N_),FF=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.render=function(e,t,n){if(this.group.removeAll(),e.get(`show`)){var r=this.group,i=e.getModel(`textStyle`),a=e.getModel(`subtextStyle`),o=e.get(`textAlign`),s=q(e.get(`textBaseline`),e.get(`textVerticalAlign`)),c=new Ed({style:Sh(i,{text:e.get(`text`),fill:i.getTextColor()},{disableBox:!0}),z2:10}),l=c.getBoundingRect(),u=e.get(`subtext`),d=new Ed({style:Sh(a,{text:u,fill:a.getTextColor(),y:l.height+e.get(`itemGap`),verticalAlign:`top`},{disableBox:!0}),z2:10}),f=e.get(`link`),p=e.get(`sublink`),m=e.get(`triggerEvent`,!0);c.silent=!f&&!m,d.silent=!p&&!m,f&&c.on(`click`,function(){i_(f,`_`+e.get(`target`))}),p&&d.on(`click`,function(){i_(p,`_`+e.get(`subtarget`))}),Bd(c).eventData=Bd(d).eventData=m?{componentType:`title`,componentIndex:e.componentIndex}:null,r.add(c),u&&r.add(d);var h=r.getBoundingRect(),g=e.getBoxLayoutParams();g.width=h.width,g.height=h.height;var _=w_(g,E_(e,n).refContainer,e.get(`padding`));o||(o=e.get(`left`)||e.get(`right`),o===`middle`&&(o=`center`),o===`right`?_.x+=_.width:o===`center`&&(_.x+=_.width/2)),s||(s=e.get(`top`)||e.get(`bottom`),s===`center`&&(s=`middle`),s===`bottom`?_.y+=_.height:s===`middle`&&(_.y+=_.height/2),s||=`top`),r.x=_.x,r.y=_.y,r.markRedraw();var v={align:o,verticalAlign:s};c.setStyle(v),d.setStyle(v),h=r.getBoundingRect();var y=_.margin,b=e.getItemStyle([`color`,`opacity`]);b.fill=e.get(`backgroundColor`);var x=new X({shape:{x:h.x-y[3],y:h.y-y[0],width:h.width+y[1]+y[3],height:h.height+y[0]+y[2],r:e.get(`borderRadius`)},style:b,subPixelOptimize:!0,silent:!0});r.add(x)}},t.type=`title`,t}(Yb);function IF(e){e.registerComponentModel(PF),e.registerComponentView(FF)}L();var LF=function(e,t){if(t===`all`)return{type:`all`,title:e.getLocaleModel().get([`legend`,`selector`,`all`])};if(t===`inverse`)return{type:`inverse`,title:e.getLocaleModel().get([`legend`,`selector`,`inverse`])}},RF=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.layoutMode={type:`box`,ignoreSize:!0},n}return t.prototype.init=function(e,t,n){this.mergeDefaultAndTheme(e,n),e.selected=e.selected||{},this._updateSelector(e)},t.prototype.mergeOption=function(t,n){e.prototype.mergeOption.call(this,t,n),this._updateSelector(t)},t.prototype._updateSelector=function(e){var t=e.selector,n=this.ecModel;t===!0&&(t=e.selector=[`all`,`inverse`]),U(t)&&B(t,function(e,r){G(e)&&(e={type:e}),t[r]=Rt(e,LF(n,e.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var e=this._data;if(e[0]&&this.get(`selectedMode`)===`single`){for(var t=!1,n=0;n<e.length;n++){var r=e[n].get(`name`);if(this.isSelected(r)){this.select(r),t=!0;break}}!t&&this.select(e[0].get(`name`))}},t.prototype._updateData=function(e){var t=[],n=[];e.eachRawSeries(function(r){var i=r.name;n.push(i);var a;if(r.legendVisualProvider){var o=r.legendVisualProvider.getAllNames();e.isSeriesFiltered(r)||(n=n.concat(o)),o.length?t=t.concat(o):a=!0}else a=!0;a&&Uc(r)&&t.push(r.name)}),this._availableNames=n;var r=this.get(`data`)||t,i=J();this._data=qt(V(r,function(e){return(G(e)||$t(e))&&(e={name:e}),i.get(e.name)?null:(i.set(e.name,!0),new Wh(e,this,this.ecModel))},this),function(e){return!!e})},t.prototype.getData=function(){return this._data},t.prototype.select=function(e){var t=this.option.selected;if(this.get(`selectedMode`)===`single`){var n=this._data;B(n,function(e){t[e.get(`name`)]=!1})}t[e]=!0},t.prototype.unSelect=function(e){this.get(`selectedMode`)!==`single`&&(this.option.selected[e]=!1)},t.prototype.toggleSelected=function(e){var t=this.option.selected;t.hasOwnProperty(e)||(t[e]=!0),this[t[e]?`unSelect`:`select`](e)},t.prototype.allSelect=function(){var e=this._data,t=this.option.selected;B(e,function(e){t[e.get(`name`,!0)]=!0})},t.prototype.inverseSelect=function(){var e=this._data,t=this.option.selected;B(e,function(e){var n=e.get(`name`,!0);t.hasOwnProperty(n)||(t[n]=!0),t[n]=!t[n]})},t.prototype.isSelected=function(e){var t=this.option.selected;return!(t.hasOwnProperty(e)&&!t[e])&&Ht(this._availableNames,e)>=0},t.prototype.getOrient=function(){return this.get(`orient`)===`vertical`?{index:1,name:`vertical`}:{index:0,name:`horizontal`}},t.type=`legend.plain`,t.dependencies=[`series`],t.defaultOption={z:4,show:!0,orient:`horizontal`,left:`center`,bottom:Z.size.m,align:`auto`,backgroundColor:Z.color.transparent,borderColor:Z.color.border,borderRadius:0,borderWidth:0,padding:5,itemGap:8,itemWidth:25,itemHeight:14,symbolRotate:`inherit`,symbolKeepAspect:!0,inactiveColor:Z.color.disabled,inactiveBorderColor:Z.color.disabled,inactiveBorderWidth:`auto`,itemStyle:{color:`inherit`,opacity:`inherit`,borderColor:`inherit`,borderWidth:`auto`,borderCap:`inherit`,borderJoin:`inherit`,borderDashOffset:`inherit`,borderMiterLimit:`inherit`},lineStyle:{width:`auto`,color:`inherit`,inactiveColor:Z.color.disabled,inactiveWidth:2,opacity:`inherit`,type:`inherit`,cap:`inherit`,join:`inherit`,dashOffset:`inherit`,miterLimit:`inherit`},textStyle:{color:Z.color.secondary},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:`sans-serif`,color:Z.color.tertiary,borderWidth:1,borderColor:Z.color.border},emphasis:{selectorLabel:{show:!0,color:Z.color.quaternary}},selectorPosition:`auto`,selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1},triggerEvent:!1},t}(N_);L();var zF=Zt,BF=B,VF=ws,HF=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.newlineDisabled=!1,n}return t.prototype.init=function(){this.group.add(this._contentGroup=new VF),this.group.add(this._selectorGroup=new VF),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(e,t,n){var r=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),e.get(`show`,!0)){var i=e.get(`align`),a=e.get(`orient`);(!i||i===`auto`)&&(i=e.get(`left`)===`right`&&a===`vertical`?`right`:`left`);var o=e.get(`selector`,!0),s=e.get(`selectorPosition`,!0);o&&(!s||s===`auto`)&&(s=a===`horizontal`?`end`:`start`),this.renderInner(i,e,t,n,o,a,s);var c=E_(e,n).refContainer,l=e.getBoxLayoutParams(),u=e.get(`padding`),d=w_(l,c,u),f=this.layoutInner(e,i,d,r,o,s),p=w_(Bt({width:f.width,height:f.height},l),c,u);this.group.x=p.x-f.x,this.group.y=p.y-f.y,this.group.markRedraw(),this.group.add(this._backgroundEl=tF(f,e))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(e,t,n,r,i,a,o){var s=this.getContentGroup(),c=J(),l=t.get(`selectedMode`),u=t.get(`triggerEvent`),d=[];n.eachRawSeries(function(e){!e.get(`legendHoverLink`)&&d.push(e.id)}),BF(t.getData(),function(i,a){var o=this,f=i.get(`name`);if(!this.newlineDisabled&&(f===``||f===`
26
26
  `)){var p=new VF;p.newline=!0,s.add(p);return}var m=n.getSeriesByName(f)[0];if(!c.get(f))if(m){var h=m.getData(),g=h.getVisual(`legendLineStyle`)||{},_=h.getVisual(`legendIcon`),v=h.getVisual(`style`),y=this._createItem(m,f,a,i,t,e,g,v,_,l,r);y.on(`click`,zF(GF,f,null,r,d)).on(`mouseover`,zF(qF,m.name,null,r,d)).on(`mouseout`,zF(JF,m.name,null,r,d)),n.ssr&&y.eachChild(function(e){var t=Bd(e);t.seriesIndex=m.seriesIndex,t.dataIndex=a,t.ssrType=`legend`}),u&&y.eachChild(function(e){o.packEventData(e,t,m,a,f)}),c.set(f,!0)}else n.eachRawSeries(function(o){var s=this;if(!c.get(f)&&o.legendVisualProvider){var p=o.legendVisualProvider;if(!p.containName(f))return;var m=p.indexOfName(f),h=p.getItemVisual(m,`style`),g=p.getItemVisual(m,`legendIcon`),_=Ta(h.fill);_&&_[3]===0&&(_[3]=.2,h=z(z({},h),{fill:Ia(_,`rgba`)}));var v=this._createItem(o,f,a,i,t,e,{},h,g,l,r);v.on(`click`,zF(GF,null,f,r,d)).on(`mouseover`,zF(qF,null,f,r,d)).on(`mouseout`,zF(JF,null,f,r,d)),n.ssr&&v.eachChild(function(e){var t=Bd(e);t.seriesIndex=o.seriesIndex,t.dataIndex=a,t.ssrType=`legend`}),u&&v.eachChild(function(e){s.packEventData(e,t,o,a,f)}),c.set(f,!0)}},this)},this),i&&this._createSelector(i,t,r,a,o)},t.prototype.packEventData=function(e,t,n,r,i){var a={componentType:`legend`,componentIndex:t.componentIndex,dataIndex:r,value:i,seriesIndex:n.seriesIndex};Bd(e).eventData=a},t.prototype._createSelector=function(e,t,n,r,i){var a=this.getSelectorGroup();BF(e,function(e){var r=e.type,i=new Ed({style:{x:0,y:0,align:`center`,verticalAlign:`middle`},onclick:function(){n.dispatchAction({type:r===`all`?`legendAllSelect`:`legendInverseSelect`,legendId:t.id})}});a.add(i),bh(i,{normal:t.getModel(`selectorLabel`),emphasis:t.getModel([`emphasis`,`selectorLabel`])},{defaultText:e.title}),Lf(i)})},t.prototype._createItem=function(e,t,n,r,i,a,o,s,c,l,u){var d=e.visualDrawType,f=i.get(`itemWidth`),p=i.get(`itemHeight`),m=i.isSelected(t),h=r.get(`symbolRotate`),g=r.get(`symbolKeepAspect`),_=r.get(`icon`);c=_||c||`roundRect`;var v=UF(c,r,o,s,d,m,u),y=new VF,b=r.getModel(`textStyle`);if(W(e.getLegendIcon)&&(!_||_===`inherit`))y.add(e.getLegendIcon({itemWidth:f,itemHeight:p,icon:c,iconRotate:h,itemStyle:v.itemStyle,lineStyle:v.lineStyle,symbolKeepAspect:g}));else{var x=_===`inherit`&&e.getData().getVisual(`symbol`)?h===`inherit`?e.getData().getVisual(`symbolRotate`):h:0;y.add(WF({itemWidth:f,itemHeight:p,icon:c,iconRotate:x,itemStyle:v.itemStyle,lineStyle:v.lineStyle,symbolKeepAspect:g}))}var S=a===`left`?f+5:-5,C=a,w=i.get(`formatter`),T=t;G(w)&&w?T=w.replace(`{name}`,t??``):W(w)&&(T=w(t));var E=m?b.getTextColor():r.get(`inactiveColor`);y.add(new Ed({style:Sh(b,{text:T,x:S,y:p/2,fill:E,align:C,verticalAlign:`middle`},{inheritColor:E})}));var D=new X({shape:y.getBoundingRect(),style:{fill:`transparent`}}),O=r.getModel(`tooltip`);return O.get(`show`)&&oh({el:D,componentModel:i,itemName:t,itemTooltipOption:O.option}),y.add(D),y.eachChild(function(e){e.silent=!0}),D.silent=!l,this.getContentGroup().add(y),Lf(y),y.__legendDataIndex=n,y},t.prototype.layoutInner=function(e,t,n,r,i,a){var o=this.getContentGroup(),s=this.getSelectorGroup();b_(e.get(`orient`),o,e.get(`itemGap`),n.width,n.height);var c=o.getBoundingRect(),l=[-c.x,-c.y];if(s.markRedraw(),o.markRedraw(),i){b_(`horizontal`,s,e.get(`selectorItemGap`,!0));var u=s.getBoundingRect(),d=[-u.x,-u.y],f=e.get(`selectorButtonGap`,!0),p=e.getOrient().index,m=p===0?`width`:`height`,h=p===0?`height`:`width`,g=p===0?`y`:`x`;a===`end`?d[p]+=c[m]+f:l[p]+=u[m]+f,d[1-p]+=c[h]/2-u[h]/2,s.x=d[0],s.y=d[1],o.x=l[0],o.y=l[1];var _={x:0,y:0};return _[m]=c[m]+f+u[m],_[h]=Math.max(c[h],u[h]),_[g]=Math.min(0,u[g]+d[1-p]),_}else return o.x=l[0],o.y=l[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type=`legend.plain`,t}(Yb);function UF(e,t,n,r,i,a,o){function s(e,t){e.lineWidth===`auto`&&(e.lineWidth=t.lineWidth>0?2:0),BF(e,function(n,r){e[r]===`inherit`&&(e[r]=t[r])})}var c=t.getModel(`itemStyle`),l=c.getItemStyle(),u=e.lastIndexOf(`empty`,0)===0?`fill`:`stroke`,d=c.getShallow(`decal`);l.decal=!d||d===`inherit`?r.decal:ZS(d,o),l.fill===`inherit`&&(l.fill=r[i]),l.stroke===`inherit`&&(l.stroke=r[u]),l.opacity===`inherit`&&(l.opacity=(i===`fill`?r:n).opacity),s(l,r);var f=t.getModel(`lineStyle`),p=f.getLineStyle();if(s(p,n),l.fill===`auto`&&(l.fill=r.fill),l.stroke===`auto`&&(l.stroke=r.fill),p.stroke===`auto`&&(p.stroke=r.fill),!a){var m=t.get(`inactiveBorderWidth`),h=l[u];l.lineWidth=m===`auto`?r.lineWidth>0&&h?2:0:l.lineWidth,l.fill=t.get(`inactiveColor`),l.stroke=t.get(`inactiveBorderColor`),p.stroke=f.get(`inactiveColor`),p.lineWidth=f.get(`inactiveWidth`)}return{itemStyle:l,lineStyle:p}}function WF(e){var t=e.icon||`roundRect`,n=cS(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return n.setStyle(e.itemStyle),n.rotation=(e.iconRotate||0)*Math.PI/180,n.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf(`empty`)>-1&&(n.style.stroke=n.style.fill,n.style.fill=Z.color.neutral00,n.style.lineWidth=2),n}function GF(e,t,n,r){JF(e,t,n,r),n.dispatchAction({type:`legendToggleSelect`,name:e??t}),qF(e,t,n,r)}function KF(e){for(var t=e.getZr().storage.getDisplayList(),n,r=0,i=t.length;r<i&&!(n=t[r].states.emphasis);)r++;return n&&n.hoverLayer}function qF(e,t,n,r){KF(n)||n.dispatchAction({type:`highlight`,seriesName:e,name:t,excludeSeriesId:r})}function JF(e,t,n,r){KF(n)||n.dispatchAction({type:`downplay`,seriesName:e,name:t,excludeSeriesId:r})}function YF(e){var t=e.findComponents({mainType:`legend`});t&&t.length&&e.filterSeries(function(e){for(var n=0;n<t.length;n++)if(!t[n].isSelected(e.name))return!1;return!0})}function XF(e,t,n){var r=e===`allSelect`||e===`inverseSelect`,i={},a=[];n.eachComponent({mainType:`legend`,query:t},function(n){r?n[e]():n[e](t.name),ZF(n,i),a.push(n.componentIndex)});var o={};return n.eachComponent(`legend`,function(e){B(i,function(t,n){e[t?`select`:`unSelect`](n)}),ZF(e,o)}),r?{selected:o,legendIndex:a}:{name:t.name,selected:o}}function ZF(e,t){var n=t||{};return B(e.getData(),function(t){var r=t.get(`name`);if(!(r===`
27
27
  `||r===``)){var i=e.isSelected(r);wn(n,r)?n[r]=n[r]&&i:n[r]=i}}),n}function QF(e){e.registerAction(`legendToggleSelect`,`legendselectchanged`,Zt(XF,`toggleSelected`)),e.registerAction(`legendAllSelect`,`legendselectall`,Zt(XF,`allSelect`)),e.registerAction(`legendInverseSelect`,`legendinverseselect`,Zt(XF,`inverseSelect`)),e.registerAction(`legendSelect`,`legendselected`,Zt(XF,`select`)),e.registerAction(`legendUnSelect`,`legendunselected`,Zt(XF,`unSelect`))}function $F(e){e.registerComponentModel(RF),e.registerComponentView(HF),e.registerProcessor(e.PRIORITY.PROCESSOR.SERIES_FILTER,YF),e.registerSubTypeDefaulter(`legend`,function(){return`plain`}),QF(e)}L();var eI=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.setScrollDataIndex=function(e){this.option.scrollDataIndex=e},t.prototype.init=function(t,n,r){var i=A_(t);e.prototype.init.call(this,t,n,r),tI(this,t,i)},t.prototype.mergeOption=function(t,n){e.prototype.mergeOption.call(this,t,n),tI(this,this.option,t)},t.type=`legend.scroll`,t.defaultOption=Yh(RF.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:`end`,pageFormatter:`{current}/{total}`,pageIcons:{horizontal:[`M0,0L12,-10L12,10z`,`M0,0L-12,-10L-12,10z`],vertical:[`M0,0L20,0L10,-20z`,`M0,0L20,0L10,20z`]},pageIconColor:Z.color.accent50,pageIconInactiveColor:Z.color.accent10,pageIconSize:15,pageTextStyle:{color:Z.color.tertiary},animationDurationUpdate:800}),t}(RF);function tI(e,t,n){var r=e.getOrient(),i=[1,1];i[r.index]=0,k_(t,n,{type:`box`,ignoreSize:!!i})}L();var nI=ws,rI=[`width`,`height`],iI=[`x`,`y`],aI=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.newlineDisabled=!0,n._currentIndex=0,n}return t.prototype.init=function(){e.prototype.init.call(this),this.group.add(this._containerGroup=new nI),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new nI)},t.prototype.resetInner=function(){e.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},t.prototype.renderInner=function(t,n,r,i,a,o,s){var c=this;e.prototype.renderInner.call(this,t,n,r,i,a,o,s);var l=this._controllerGroup,u=n.get(`pageIconSize`,!0),d=U(u)?u:[u,u];p(`pagePrev`,0);var f=n.getModel(`pageTextStyle`);l.add(new Ed({name:`pageText`,style:{text:`xx/xx`,fill:f.getTextColor(),font:f.getFont(),verticalAlign:`middle`,align:`center`},silent:!0})),p(`pageNext`,1);function p(e,t){var r=e+`DataIndex`,a=Qm(n.get(`pageIcons`,!0)[n.getOrient().name][t],{onclick:H(c._pageGo,c,r,n,i)},{x:-d[0]/2,y:-d[1]/2,width:d[0],height:d[1]});a.name=e,l.add(a)}},t.prototype.layoutInner=function(e,t,n,r,i,a){var o=this.getSelectorGroup(),s=e.getOrient().index,c=rI[s],l=iI[s],u=rI[1-s],d=iI[1-s];i&&b_(`horizontal`,o,e.get(`selectorItemGap`,!0));var f=e.get(`selectorButtonGap`,!0),p=o.getBoundingRect(),m=[-p.x,-p.y],h=Lt(n);i&&(h[c]=n[c]-p[c]-f);var g=this._layoutContentAndController(e,r,h,s,c,u,d,l);if(i){if(a===`end`)m[s]+=g[c]+f;else{var _=p[c]+f;m[s]-=_,g[l]-=_}g[c]+=p[c]+f,m[1-s]+=g[d]+g[u]/2-p[u]/2,g[u]=Math.max(g[u],p[u]),g[d]=Math.min(g[d],p[d]+m[1-s]),o.x=m[0],o.y=m[1],o.markRedraw()}return g},t.prototype._layoutContentAndController=function(e,t,n,r,i,a,o,s){var c=this.getContentGroup(),l=this._containerGroup,u=this._controllerGroup;b_(e.get(`orient`),c,e.get(`itemGap`),r?n.width:null,r?null:n.height),b_(`horizontal`,u,e.get(`pageButtonItemGap`,!0));var d=c.getBoundingRect(),f=u.getBoundingRect(),p=this._showController=d[i]>n[i],m=[-d.x,-d.y];t||(m[r]=c[s]);var h=[0,0],g=[-f.x,-f.y],_=q(e.get(`pageButtonGap`,!0),e.get(`itemGap`,!0));p&&(e.get(`pageButtonPosition`,!0)===`end`?g[r]+=n[i]-f[i]:h[r]+=f[i]+_),g[1-r]+=d[a]/2-f[a]/2,c.setPosition(m),l.setPosition(h),u.setPosition(g);var v={x:0,y:0};if(v[i]=p?n[i]:d[i],v[a]=Math.max(d[a],f[a]),v[o]=Math.min(0,f[o]+g[1-r]),l.__rectSize=n[i],p){var y={x:0,y:0};y[i]=Math.max(n[i]-f[i]-_,0),y[a]=v[a],l.setClipPath(new X({shape:y})),l.__rectSize=y[i]}else u.eachChild(function(e){e.attr({invisible:!0,silent:!0})});var b=this._getPageInfo(e);return b.pageIndex!=null&&bm(c,{x:b.contentPosition[0],y:b.contentPosition[1]},p?e:null),this._updatePageInfoView(e,b),v},t.prototype._pageGo=function(e,t,n){var r=this._getPageInfo(t)[e];r!=null&&n.dispatchAction({type:`legendScroll`,scrollDataIndex:r,legendId:t.id})},t.prototype._updatePageInfoView=function(e,t){var n=this._controllerGroup;B([`pagePrev`,`pageNext`],function(r){var i=t[r+`DataIndex`]!=null,a=n.childOfName(r);a&&(a.setStyle(`fill`,i?e.get(`pageIconColor`,!0):e.get(`pageIconInactiveColor`,!0)),a.cursor=i?`pointer`:`default`)});var r=n.childOfName(`pageText`),i=e.get(`pageFormatter`),a=t.pageIndex,o=a==null?0:a+1,s=t.pageCount;r&&i&&r.setStyle(`text`,G(i)?i.replace(`{current}`,o==null?``:o+``).replace(`{total}`,s==null?``:s+``):i({current:o,total:s}))},t.prototype._getPageInfo=function(e){var t=e.get(`scrollDataIndex`,!0),n=this.getContentGroup(),r=this._containerGroup.__rectSize,i=e.getOrient().index,a=rI[i],o=iI[i],s=this._findTargetItemIndex(t),c=n.children(),l=c[s],u=c.length,d=u?1:0,f={contentPosition:[n.x,n.y],pageCount:d,pageIndex:d-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!l)return f;var p=v(l);f.contentPosition[i]=-p.s;for(var m=s+1,h=p,g=p,_=null;m<=u;++m)_=v(c[m]),(!_&&g.e>h.s+r||_&&!y(_,h.s))&&(h=g.i>h.i?g:_,h&&(f.pageNextDataIndex??=h.i,++f.pageCount)),g=_;for(var m=s-1,h=p,g=p,_=null;m>=-1;--m)_=v(c[m]),(!_||!y(g,_.s))&&h.i<g.i&&(g=h,f.pagePrevDataIndex??=h.i,++f.pageCount,++f.pageIndex),h=_;return f;function v(e){if(e){var t=e.getBoundingRect(),n=t[o]+e[o];return{s:n,e:n+t[a],i:e.__legendDataIndex}}}function y(e,t){return e.e>=t&&e.s<=t+r}},t.prototype._findTargetItemIndex=function(e){if(!this._showController)return 0;var t,n=this.getContentGroup(),r;return n.eachChild(function(n,i){var a=n.__legendDataIndex;r==null&&a!=null&&(r=i),a===e&&(t=i)}),t??r},t.type=`legend.scroll`,t}(HF);function oI(e){e.registerAction(`legendScroll`,`legendscroll`,function(e,t){var n=e.scrollDataIndex;n!=null&&t.eachComponent({mainType:`legend`,subType:`scroll`,query:e},function(e){e.setScrollDataIndex(n)})})}function sI(e){xD($F),e.registerComponentModel(eI),e.registerComponentView(aI),oI(e)}function cI(e){xD($F),xD(sI)}L();var lI=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`dataZoom.inside`,t.defaultOption=Yh(WP.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),t}(WP),uI=Jc();function dI(e,t,n){uI(e).coordSysRecordMap.each(function(e){var r=e.dataZoomInfoMap.get(t.uid);r&&(r.getRange=n)})}function fI(e,t){for(var n=uI(e).coordSysRecordMap,r=n.keys(),i=0;i<r.length;i++){var a=r[i],o=n.get(a),s=o.dataZoomInfoMap;if(s){var c=t.uid;s.get(c)&&(s.removeKey(c),s.keys().length||pI(n,o))}}}function pI(e,t){if(t){e.removeKey(t.model.uid);var n=t.controller;n&&n.dispose()}}function mI(e,t){var n={model:t,containsPoint:Zt(gI,t),dispatchAction:Zt(hI,e),dataZoomInfoMap:null,controller:null},r=n.controller=new zM(e.getZr());return B([`pan`,`zoom`,`scrollMove`],function(e){r.on(e,function(t){var r=[];n.dataZoomInfoMap.each(function(i){if(t.isAvailableBehavior(i.model.option)){var a=(i.getRange||{})[e],o=a&&a(i.dzReferCoordSysInfo,n.model.mainType,n.controller,t);!i.model.get(`disabled`,!0)&&o&&r.push({dataZoomId:i.model.id,start:o[0],end:o[1]})}}),r.length&&n.dispatchAction(r)})}),n}function hI(e,t){e.isDisposed()||e.dispatchAction({type:`dataZoom`,animation:{easing:`cubicOut`,duration:100},batch:t})}function gI(e,t,n,r){return e.coordinateSystem.containPoint([n,r])}function _I(e,t,n){var r,i=`type_`,a={type_true:2,type_move:1,type_false:0,type_undefined:-1},o=!0;return e.each(function(e){var t=e.model,n=t.get(`disabled`,!0)?!1:t.get(`zoomLock`,!0)?`move`:!0;a[i+n]>a[i+r]&&(r=n),o&&=t.get(`preventDefaultMouseMove`,!0)}),{controlType:r,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!o,api:n,zInfo:{component:t.model},triggerInfo:{roamTrigger:null,isInSelf:t.containsPoint}}}}function vI(e){e.registerProcessor(e.PRIORITY.PROCESSOR.FILTER,function(e,t){var n=uI(t),r=n.coordSysRecordMap||=J();r.each(function(e){e.dataZoomInfoMap=null}),e.eachComponent({mainType:`dataZoom`,subType:`inside`},function(e){B(HP(e).infoList,function(n){var i=n.model.uid,a=r.get(i)||r.set(i,mI(t,n.model));(a.dataZoomInfoMap||=J()).set(e.uid,{dzReferCoordSysInfo:n,model:e,getRange:null})})}),r.each(function(e){var n=e.controller,i,a=e.dataZoomInfoMap;if(a){var o=a.keys()[0];o!=null&&(i=a.get(o))}if(!i){pI(r,e);return}var s=_I(a,e,t);n.enable(s.controlType,s.opt),lx(e,`dispatchAction`,i.model.get(`throttle`,!0),`fixRate`)})})}L();var yI=function(e){D(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=`dataZoom.inside`,t}return t.prototype.render=function(t,n,r){if(e.prototype.render.apply(this,arguments),t.noTarget()){this._clear();return}this.range=t.getPercentRange(),dI(r,t,{pan:H(bI.pan,this),zoom:H(bI.zoom,this),scrollMove:H(bI.scrollMove,this)})},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){fI(this.api,this.dataZoomModel),this.range=null},t.type=`dataZoom.inside`,t}(KP),bI={zoom:function(e,t,n,r){var i=this.range,a=i.slice(),o=e.axisModels[0];if(o){var s=SI[t](null,[r.originX,r.originY],o,n,e),c=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(a[1]-a[0])+a[0],l=Math.max(1/r.scale,0);a[0]=(a[0]-c)*l+c,a[1]=(a[1]-c)*l+c;var u=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if(YM(0,a,[0,100],0,u.minSpan,u.maxSpan),this.range=a,i[0]!==a[0]||i[1]!==a[1])return a}},pan:xI(function(e,t,n,r,i,a){var o=SI[r]([a.oldX,a.oldY],[a.newX,a.newY],t,i,n);return o.signal*(e[1]-e[0])*o.pixel/o.pixelLength}),scrollMove:xI(function(e,t,n,r,i,a){return SI[r]([0,0],[a.scrollDelta,a.scrollDelta],t,i,n).signal*(e[1]-e[0])*a.scrollDelta})};function xI(e){return function(t,n,r,i){var a=this.range,o=a.slice(),s=t.axisModels[0];if(s&&(YM(e(o,s,t,n,r,i),o,[0,100],`all`),this.range=o,a[0]!==o[0]||a[1]!==o[1]))return o}}var SI={grid:function(e,t,n,r,i){var a=n.axis,o={},s=i.model.coordinateSystem.getRect();return e||=[0,0],a.dim===`x`?(o.pixel=t[0]-e[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=a.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=a.inverse?-1:1),o},polar:function(e,t,n,r,i){var a=n.axis,o={},s=i.model.coordinateSystem,c=s.getRadiusAxis().getExtent(),l=s.getAngleAxis().getExtent();return e=e?s.pointToCoord(e):[0,0],t=s.pointToCoord(t),n.mainType===`radiusAxis`?(o.pixel=t[0]-e[0],o.pixelLength=c[1]-c[0],o.pixelStart=c[0],o.signal=a.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=a.inverse?-1:1),o},singleAxis:function(e,t,n,r,i){var a=n.axis,o=i.model.coordinateSystem.getRect(),s={};return e||=[0,0],a.orient===`horizontal`?(s.pixel=t[0]-e[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=a.inverse?1:-1):(s.pixel=t[1]-e[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=a.inverse?-1:1),s}};function CI(e){eF(e),e.registerComponentModel(lI),e.registerComponentView(yI),vI(e)}L();var wI=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`dataZoom.slider`,t.layoutMode=`box`,t.defaultOption=Yh(WP.defaultOption,{show:!0,right:`ph`,top:`ph`,width:`ph`,height:`ph`,left:null,bottom:null,borderColor:Z.color.accent10,borderRadius:0,backgroundColor:Z.color.transparent,dataBackground:{lineStyle:{color:Z.color.accent30,width:.5},areaStyle:{color:Z.color.accent20,opacity:.2}},selectedDataBackground:{lineStyle:{color:Z.color.accent40,width:.5},areaStyle:{color:Z.color.accent20,opacity:.3}},fillerColor:`rgba(135,175,274,0.2)`,handleIcon:`path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z`,handleSize:`100%`,handleStyle:{color:Z.color.neutral00,borderColor:Z.color.accent20},moveHandleSize:7,moveHandleIcon:`path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z`,moveHandleStyle:{color:Z.color.accent40,opacity:.5},showDetail:!0,showDataShadow:`auto`,realtime:!0,zoomLock:!1,textStyle:{color:Z.color.tertiary},brushSelect:!0,brushStyle:{color:Z.color.accent30,opacity:.3},emphasis:{handleLabel:{show:!0},handleStyle:{borderColor:Z.color.accent40},moveHandleStyle:{opacity:.8}},defaultLocationEdgeGap:15}),t}(WP);L();var TI=X,EI=1,DI=30,OI=7,kI=`horizontal`,AI=`vertical`,jI=5,MI=[`line`,`bar`,`candlestick`,`scatter`],NI={easing:`cubicOut`,duration:100,delay:0},PI=function(e){D(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n._displayables={},n}return t.prototype.init=function(e,t){this.api=t,this._onBrush=H(this._onBrush,this),this._onBrushEnd=H(this._onBrushEnd,this)},t.prototype.render=function(t,n,r,i){if(e.prototype.render.apply(this,arguments),lx(this,`_dispatchZoomAction`,t.get(`throttle`),`fixRate`),this._orient=t.getOrient(),t.get(`show`)===!1){this.group.removeAll();return}if(t.noTarget()){this._clear(),this.group.removeAll();return}(!i||i.type!==`dataZoom`||i.from!==this.uid)&&this._buildView(),this._updateView()},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){ux(this,`_dispatchZoomAction`);var e=this.api.getZr();e.off(`mousemove`,this._onBrush),e.off(`mouseup`,this._onBrushEnd)},t.prototype._buildView=function(){var e=this.group;e.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var t=this._displayables.sliderGroup=new ws;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),e.add(t),this._positionGroup()},t.prototype._resetLocation=function(){var e=this.dataZoomModel,t=this.api,n=e.get(`brushSelect`)?OI:0,r=E_(e,t).refContainer,i=this._findCoordRect(),a=e.get(`defaultLocationEdgeGap`,!0)||0,o=this._orient===kI?{right:r.width-i.x-i.width,top:r.height-DI-a-n,width:i.width,height:DI}:{right:a,top:i.y,width:DI,height:i.height},s=A_(e.option);B([`right`,`top`,`width`,`height`],function(e){s[e]===`ph`&&(s[e]=o[e])});var c=w_(s,r);this._location={x:c.x,y:c.y},this._size=[c.width,c.height],this._orient===AI&&this._size.reverse()},t.prototype._positionGroup=function(){var e=this.group,t=this._location,n=this._orient,r=this.dataZoomModel.getFirstTargetAxisModel(),i=r&&r.get(`inverse`),a=this._displayables.sliderGroup,o=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(n===kI&&!i?{scaleY:o?1:-1,scaleX:1}:n===kI&&i?{scaleY:o?1:-1,scaleX:-1}:n===AI&&!i?{scaleY:o?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:o?-1:1,scaleX:-1,rotation:Math.PI/2});var s=e.getBoundingRect([a]);e.x=t.x-s.x,e.y=t.y-s.y,e.markRedraw()},t.prototype._getViewExtent=function(){return[0,this._size[0]]},t.prototype._renderBackground=function(){var e=this.dataZoomModel,t=this._size,n=this._displayables.sliderGroup,r=e.get(`brushSelect`);n.add(new TI({silent:!0,shape:{x:0,y:0,width:t[0],height:t[1]},style:{fill:e.get(`backgroundColor`)},z2:-40}));var i=new TI({shape:{x:0,y:0,width:t[0],height:t[1]},style:{fill:`transparent`},z2:0,onclick:H(this._onClickPanel,this)}),a=this.api.getZr();r?(i.on(`mousedown`,this._onBrushStart,this),i.cursor=`crosshair`,a.on(`mousemove`,this._onBrush),a.on(`mouseup`,this._onBrushEnd)):(a.off(`mousemove`,this._onBrush),a.off(`mouseup`,this._onBrushEnd)),n.add(i)},t.prototype._renderDataShadow=function(){var e=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!e)return;var t=this._size,n=this._shadowSize||[],r=e.series,i=r.getRawData(),a=r.getShadowDim&&r.getShadowDim(),o=a&&i.getDimensionInfo(a)?r.getShadowDim():e.otherDim;if(o==null)return;var s=this._shadowPolygonPts,c=this._shadowPolylinePts;if(i!==this._shadowData||o!==this._shadowDim||t[0]!==n[0]||t[1]!==n[1]){var l=i.getDataExtent(e.thisDim),u=i.getDataExtent(o),d=(u[1]-u[0])*.3;u=[u[0]-d,u[1]+d];var f=[0,t[1]],p=[0,t[0]],m=[[t[0],0],[0,0]],h=[],g=p[1]/Math.max(1,i.count()-1),_=t[0]/(l[1]-l[0]),v=e.thisAxis.type===`time`,y=-g,b=Math.round(i.count()/t[0]),x;i.each([e.thisDim,o],function(e,t,n){if(b>0&&n%b){v||(y+=g);return}y=v?(+e-l[0])*_:y+g;var r=t==null||isNaN(t)||t===``,i=r?0:Ks(t,u,f,!0);r&&!x&&n?(m.push([m[m.length-1][0],0]),h.push([h[h.length-1][0],0])):!r&&x&&(m.push([y,0]),h.push([y,0])),r||(m.push([y,i]),h.push([y,i])),x=r}),s=this._shadowPolygonPts=m,c=this._shadowPolylinePts=h}this._shadowData=i,this._shadowDim=o,this._shadowSize=[t[0],t[1]];var S=this.dataZoomModel;function C(e){var t=S.getModel(e?`selectedDataBackground`:`dataBackground`),n=new ws,r=new Wp({shape:{points:s},segmentIgnoreThreshold:1,style:t.getModel(`areaStyle`).getAreaStyle(),silent:!0,z2:-20}),i=new Kp({shape:{points:c},segmentIgnoreThreshold:1,style:t.getModel(`lineStyle`).getLineStyle(),silent:!0,z2:-19});return n.add(r),n.add(i),n}for(var w=0;w<3;w++){var T=C(w===1);this._displayables.sliderGroup.add(T),this._displayables.dataShadowSegs.push(T)}},t.prototype._prepareDataShadowInfo=function(){var e=this.dataZoomModel,t=e.get(`showDataShadow`);if(t!==!1){var n,r=this.ecModel;return e.eachTargetAxis(function(i,a){B(e.getAxisProxy(i,a).getTargetSeriesModels(),function(e){if(!n&&!(t!==!0&&Ht(MI,e.get(`type`))<0)){var o=r.getComponent(BP(i),a).axis,s=FI(i),c,l=e.coordinateSystem;s!=null&&l.getOtherAxis&&(c=l.getOtherAxis(o).inverse),s=e.getData().mapDimension(s),n={thisAxis:o,series:e,thisDim:e.getData().mapDimension(i),otherDim:s,otherAxisInverse:c}}},this)},this),n}},t.prototype._renderHandle=function(){var e=this.group,t=this._displayables,n=t.handles=[null,null],r=t.handleLabels=[null,null],i=this._displayables.sliderGroup,a=this._size,o=this.dataZoomModel,s=this.api,c=o.get(`borderRadius`)||0,l=o.get(`brushSelect`),u=t.filler=new TI({silent:l,style:{fill:o.get(`fillerColor`)},textConfig:{position:`inside`}});i.add(u),i.add(new TI({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:a[0],height:a[1],r:c},style:{stroke:o.get(`dataBackgroundColor`)||o.get(`borderColor`),lineWidth:EI,fill:Z.color.transparent}})),B([0,1],function(t){var a=o.get(`handleIcon`);!aS[a]&&a.indexOf(`path://`)<0&&a.indexOf(`image://`)<0&&(a=`path://`+a);var s=cS(a,-1,0,2,2,null,!0);s.attr({cursor:II(this._orient),draggable:!0,drift:H(this._onDragMove,this,t),ondragend:H(this._onDragEnd,this),onmouseover:H(this._showDataInfo,this,!0),onmouseout:H(this._showDataInfo,this,!1),z2:5});var c=s.getBoundingRect();this._handleHeight=qs(o.get(`handleSize`),this._size[1]),this._handleWidth=c.width/c.height*this._handleHeight,s.setStyle(o.getModel(`handleStyle`).getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState(`emphasis`).style=o.getModel([`emphasis`,`handleStyle`]).getItemStyle(),Lf(s);var l=o.get(`handleColor`);l!=null&&(s.style.fill=l),i.add(n[t]=s);var u=o.getModel(`textStyle`),d=(o.get(`handleLabel`)||{}).show||!1;e.add(r[t]=new Ed({silent:!0,invisible:!d,style:Sh(u,{x:0,y:0,text:``,verticalAlign:`middle`,align:`center`,fill:u.getTextColor(),font:u.getFont()}),z2:10}))},this);var d=u;if(l){var f=qs(o.get(`moveHandleSize`),a[1]),p=t.moveHandle=new X({style:o.getModel(`moveHandleStyle`).getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:a[1]-.5,height:f}}),m=f*.8,h=t.moveHandleIcon=cS(o.get(`moveHandleIcon`),-m/2,-m/2,m,m,Z.color.neutral00,!0);h.silent=!0,h.y=a[1]+f/2-.5,p.ensureState(`emphasis`).style=o.getModel([`emphasis`,`moveHandleStyle`]).getItemStyle();var g=Math.min(a[1]/2,Math.max(f,10));d=t.moveZone=new X({invisible:!0,shape:{y:a[1]-g,height:f+g}}),d.on(`mouseover`,function(){s.enterEmphasis(p)}).on(`mouseout`,function(){s.leaveEmphasis(p)}),i.add(p),i.add(h),i.add(d)}d.attr({draggable:!0,cursor:`default`,drift:H(this._onDragMove,this,`all`),ondragstart:H(this._showDataInfo,this,!0),ondragend:H(this._onDragEnd,this),onmouseover:H(this._showDataInfo,this,!0),onmouseout:H(this._showDataInfo,this,!1)})},t.prototype._resetInterval=function(){var e=this._range=this.dataZoomModel.getPercentRange(),t=this._getViewExtent();this._handleEnds=[Ks(e[0],[0,100],t,!0),Ks(e[1],[0,100],t,!0)]},t.prototype._updateInterval=function(e,t){var n=this.dataZoomModel,r=this._handleEnds,i=this._getViewExtent(),a=n.findRepresentativeAxisProxy().getMinMaxSpan(),o=[0,100];YM(t,r,i,n.get(`zoomLock`)?`all`:e,a.minSpan==null?null:Ks(a.minSpan,o,i,!0),a.maxSpan==null?null:Ks(a.maxSpan,o,i,!0));var s=this._range,c=this._range=Zs([Ks(r[0],i,o,!0),Ks(r[1],i,o,!0)]);return!s||s[0]!==c[0]||s[1]!==c[1]},t.prototype._updateView=function(e){var t=this._displayables,n=this._handleEnds,r=Zs(n.slice()),i=this._size;B([0,1],function(e){var r=t.handles[e],a=this._handleHeight;r.attr({scaleX:a/2,scaleY:a/2,x:n[e]+(e?-1:1),y:i[1]/2-a/2})},this),t.filler.setShape({x:r[0],y:0,width:r[1]-r[0],height:i[1]});var a={x:r[0],width:r[1]-r[0]};t.moveHandle&&(t.moveHandle.setShape(a),t.moveZone.setShape(a),t.moveZone.getBoundingRect(),t.moveHandleIcon&&t.moveHandleIcon.attr(`x`,a.x+a.width/2));for(var o=t.dataShadowSegs,s=[0,r[0],r[1],i[0]],c=0;c<o.length;c++){var l=o[c],u=l.getClipPath();u||(u=new X,l.setClipPath(u)),u.setShape({x:s[c],y:0,width:s[c+1]-s[c],height:i[1]})}this._updateDataInfo(e)},t.prototype._updateDataInfo=function(e){var t=this.dataZoomModel,n=this._displayables,r=n.handleLabels,i=this._orient,a=[``,``];if(t.get(`showDetail`)){var o=t.findRepresentativeAxisProxy();if(o){var s=o.getAxisModel().axis,c=this._range,l=e?o.calculateDataWindow({start:c[0],end:c[1]}).valueWindow:o.getDataValueWindow();a=[this._formatLabel(l[0],s),this._formatLabel(l[1],s)]}}var u=Zs(this._handleEnds.slice());d.call(this,0),d.call(this,1);function d(e){var t=Wm(n.handles[e].parent,this.group),o=Km(e===0?`right`:`left`,t),s=this._handleWidth/2+jI,c=Gm([u[e]+(e===0?-s:s),this._size[1]/2],t);r[e].setStyle({x:c[0],y:c[1],verticalAlign:i===kI?`middle`:o,align:i===kI?o:`center`,text:a[e]})}},t.prototype._formatLabel=function(e,t){var n=this.dataZoomModel,r=n.get(`labelFormatter`),i=n.get(`labelPrecision`);(i==null||i===`auto`)&&(i=t.getPixelPrecision());var a=e==null||isNaN(e)?``:t.type===`category`||t.type===`time`?t.scale.getLabel({value:Math.round(e)}):e.toFixed(Math.min(i,20));return W(r)?r(e,a):G(r)?r.replace(`{value}`,a):a},t.prototype._showDataInfo=function(e){var t=(this.dataZoomModel.get(`handleLabel`)||{}).show||!1,n=this.dataZoomModel.getModel([`emphasis`,`handleLabel`]).get(`show`)||!1,r=e||this._dragging?n:t,i=this._displayables,a=i.handleLabels;a[0].attr(`invisible`,!r),a[1].attr(`invisible`,!r),i.moveHandle&&this.api[r?`enterEmphasis`:`leaveEmphasis`](i.moveHandle,1)},t.prototype._onDragMove=function(e,t,n,r){this._dragging=!0,Dr(r.event);var i=this._displayables.sliderGroup.getLocalTransform(),a=Gm([t,n],i,!0),o=this._updateInterval(e,a[0]),s=this.dataZoomModel.get(`realtime`);this._updateView(!s),o&&s&&this._dispatchZoomAction(!0)},t.prototype._onDragEnd=function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get(`realtime`)&&this._dispatchZoomAction(!1)},t.prototype._onClickPanel=function(e){var t=this._size,n=this._displayables.sliderGroup.transformCoordToLocal(e.offsetX,e.offsetY);if(!(n[0]<0||n[0]>t[0]||n[1]<0||n[1]>t[1])){var r=this._handleEnds,i=(r[0]+r[1])/2,a=this._updateInterval(`all`,n[0]-i);this._updateView(),a&&this._dispatchZoomAction(!1)}},t.prototype._onBrushStart=function(e){var t=e.offsetX,n=e.offsetY;this._brushStart=new Ur(t,n),this._brushing=!0,this._brushStartTime=+new Date},t.prototype._onBrushEnd=function(e){if(this._brushing){var t=this._displayables.brushRect;if(this._brushing=!1,t){t.attr(`ignore`,!0);var n=t.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var r=this._getViewExtent(),i=[0,100],a=this._handleEnds=[n.x,n.x+n.width],o=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();YM(0,a,r,0,o.minSpan==null?null:Ks(o.minSpan,i,r,!0),o.maxSpan==null?null:Ks(o.maxSpan,i,r,!0)),this._range=Zs([Ks(a[0],r,i,!0),Ks(a[1],r,i,!0)]),this._updateView(),this._dispatchZoomAction(!1)}}}},t.prototype._onBrush=function(e){this._brushing&&(Dr(e.event),this._updateBrushRect(e.offsetX,e.offsetY))},t.prototype._updateBrushRect=function(e,t){var n=this._displayables,r=this.dataZoomModel,i=n.brushRect;i||(i=n.brushRect=new TI({silent:!0,style:r.getModel(`brushStyle`).getItemStyle()}),n.sliderGroup.add(i)),i.attr(`ignore`,!1);var a=this._brushStart,o=this._displayables.sliderGroup,s=o.transformCoordToLocal(e,t),c=o.transformCoordToLocal(a.x,a.y),l=this._size;s[0]=Math.max(Math.min(l[0],s[0]),0),i.setShape({x:c[0],y:0,width:s[0]-c[0],height:l[1]})},t.prototype._dispatchZoomAction=function(e){var t=this._range;this.api.dispatchAction({type:`dataZoom`,from:this.uid,dataZoomId:this.dataZoomModel.id,animation:e?NI:null,start:t[0],end:t[1]})},t.prototype._findCoordRect=function(){var e,t=HP(this.dataZoomModel).infoList;if(!e&&t.length){var n=t[0].model.coordinateSystem;e=n.getRect&&n.getRect()}if(!e){var r=this.api.getWidth(),i=this.api.getHeight();e={x:r*.2,y:i*.2,width:r*.6,height:i*.6}}return e},t.type=`dataZoom.slider`,t}(KP);function FI(e){return{x:`y`,y:`x`,radius:`angle`,angle:`radius`}[e]}function II(e){return e===`vertical`?`ns-resize`:`ew-resize`}function LI(e){e.registerComponentModel(wI),e.registerComponentView(PI),eF(e)}function RI(e){xD(CI),xD(LI)}L();function zI(e,t,n){var r=bt.createCanvas(),i=t.getWidth(),a=t.getHeight(),o=r.style;return o&&(o.position=`absolute`,o.left=`0`,o.top=`0`,o.width=i+`px`,o.height=a+`px`,r.setAttribute(`data-zr-dom-id`,e)),r.width=i*n,r.height=a*n,r}var BI=function(e){D(t,e);function t(t,n,r){var i=e.call(this)||this;i.motionBlur=!1,i.lastFrameAlpha=.7,i.dpr=1,i.virtual=!1,i.config={},i.incremental=!1,i.zlevel=0,i.maxRepaintRectCount=5,i.__dirty=!0,i.__firstTimePaint=!0,i.__used=!1,i.__drawIndex=0,i.__startIndex=0,i.__endIndex=0,i.__prevStartIndex=null,i.__prevEndIndex=null;var a;r||=Fo,typeof t==`string`?a=zI(t,n,r):K(t)&&(a=t,t=a.id),i.id=t,i.dom=a;var o=a.style;return o&&(Cn(a),a.onselectstart=function(){return!1},o.padding=`0`,o.margin=`0`,o.borderWidth=`0`),i.painter=n,i.dpr=r,i}return t.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},t.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},t.prototype.initContext=function(){this.ctx=this.dom.getContext(`2d`),this.ctx.dpr=this.dpr},t.prototype.setUnpainted=function(){this.__firstTimePaint=!0},t.prototype.createBackBuffer=function(){var e=this.dpr;this.domBack=zI(`back-`+this.id,this.painter,e),this.ctxBack=this.domBack.getContext(`2d`),e!==1&&this.ctxBack.scale(e,e)},t.prototype.createRepaintRects=function(e,t,n,r){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var i=[],a=this.maxRepaintRectCount,o=!1,s=new Y(0,0,0,0);function c(e){if(!(!e.isFinite()||e.isZero()))if(i.length===0){var t=new Y(0,0,0,0);t.copy(e),i.push(t)}else{for(var n=!1,r=1/0,c=0,l=0;l<i.length;++l){var u=i[l];if(u.intersect(e)){var d=new Y(0,0,0,0);d.copy(u),d.union(e),i[l]=d,n=!0;break}else if(o){s.copy(e),s.union(u);var f=e.width*e.height,p=u.width*u.height,m=s.width*s.height-f-p;m<r&&(r=m,c=l)}}if(o&&(i[c].union(e),n=!0),!n){var t=new Y(0,0,0,0);t.copy(e),i.push(t)}o||=i.length>=a}}for(var l=this.__startIndex;l<this.__endIndex;++l){var u=e[l];if(u){var d=u.shouldBePainted(n,r,!0,!0),f=u.__isRendered&&(u.__dirty&1||!d)?u.getPrevPaintRect():null;f&&c(f);var p=d&&(u.__dirty&1||!u.__isRendered)?u.getPaintRect():null;p&&c(p)}}for(var l=this.__prevStartIndex;l<this.__prevEndIndex;++l){var u=t[l],d=u&&u.shouldBePainted(n,r,!0,!0);if(u&&(!d||!u.__zr)&&u.__isRendered){var f=u.getPrevPaintRect();f&&c(f)}}var m;do{m=!1;for(var l=0;l<i.length;){if(i[l].isZero()){i.splice(l,1);continue}for(var h=l+1;h<i.length;)i[l].intersect(i[h])?(m=!0,i[l].union(i[h]),i.splice(h,1)):h++;l++}}while(m);return this._paintRects=i,i},t.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},t.prototype.resize=function(e,t){var n=this.dpr,r=this.dom,i=r.style,a=this.domBack;i&&(i.width=e+`px`,i.height=t+`px`),r.width=e*n,r.height=t*n,a&&(a.width=e*n,a.height=t*n,n!==1&&this.ctxBack.scale(n,n))},t.prototype.clear=function(e,t,n){var r=this.dom,i=this.ctx,a=r.width,o=r.height;t||=this.clearColor;var s=this.motionBlur&&!e,c=this.lastFrameAlpha,l=this.dpr,u=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation=`copy`,this.ctxBack.drawImage(r,0,0,a/l,o/l));var d=this.domBack;function f(e,n,r,a){if(i.clearRect(e,n,r,a),t&&t!==`transparent`){var o=void 0;rn(t)?(o=(t.global||t.__width===r&&t.__height===a)&&t.__canvasGradient||mS(i,t,{x:0,y:0,width:r,height:a}),t.__canvasGradient=o,t.__width=r,t.__height=a):an(t)&&(t.scaleX=t.scaleX||l,t.scaleY=t.scaleY||l,o=ES(i,t,{dirty:function(){u.setUnpainted(),u.painter.refresh()}})),i.save(),i.fillStyle=o||t,i.fillRect(e,n,r,a),i.restore()}s&&(i.save(),i.globalAlpha=c,i.drawImage(d,e,n,r,a),i.restore())}!n||s?f(0,0,a,o):n.length&&B(n,function(e){f(e.x*l,e.y*l,e.width*l,e.height*l)})},t}(nr),VI=1e5,HI=314159,UI=.01,WI=.001;function GI(e){return e?e.__builtin__?!0:!(typeof e.resize!=`function`||typeof e.refresh!=`function`):!1}function KI(e,t){var n=document.createElement(`div`);return n.style.cssText=[`position:relative`,`width:`+e+`px`,`height:`+t+`px`,`padding:0`,`margin:0`,`border-width:0`].join(`;`)+`;`,n}var qI=function(){function e(e,t,n,r){this.type=`canvas`,this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type=`canvas`;var i=!e.nodeName||e.nodeName.toUpperCase()===`CANVAS`;this._opts=n=z({},n||{}),this.dpr=n.devicePixelRatio||Fo,this._singleCanvas=i,this.root=e,e.style&&(Cn(e),e.innerHTML=``),this.storage=t;var a=this._zlevelList;this._prevDisplayList=[];var o=this._layers;if(i){var s=e,c=s.width,l=s.height;n.width!=null&&(c=n.width),n.height!=null&&(l=n.height),this.dpr=n.devicePixelRatio||1,s.width=c*this.dpr,s.height=l*this.dpr,this._width=c,this._height=l;var u=new BI(s,this,this.dpr);u.__builtin__=!0,u.initContext(),o[HI]=u,u.zlevel=HI,a.push(HI),this._domRoot=e}else{this._width=_S(e,0,n),this._height=_S(e,1,n);var d=this._domRoot=KI(this._width,this._height);e.appendChild(d)}}return e.prototype.getType=function(){return`canvas`},e.prototype.isSingleCanvas=function(){return this._singleCanvas},e.prototype.getViewportRoot=function(){return this._domRoot},e.prototype.getViewportRootOffset=function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},e.prototype.refresh=function(e){var t=this.storage.getDisplayList(!0),n=this._prevDisplayList,r=this._zlevelList;this._redrawId=Math.random(),this._paintList(t,n,e,this._redrawId);for(var i=0;i<r.length;i++){var a=r[i],o=this._layers[a];if(!o.__builtin__&&o.refresh){var s=i===0?this._backgroundColor:null;o.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=t.slice()),this},e.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},e.prototype._paintHoverList=function(e){var t=e.length,n=this._hoverlayer;if(n&&n.clear(),t){for(var r={inHover:!0,viewWidth:this._width,viewHeight:this._height},i,a=0;a<t;a++){var o=e[a];o.__inHover&&(n||=this._hoverlayer=this.getLayer(VI),i||(i=n.ctx,i.save()),KS(i,o,r,a===t-1))}i&&i.restore()}},e.prototype.getHoverLayer=function(){return this.getLayer(VI)},e.prototype.paintOne=function(e,t){GS(e,t)},e.prototype._paintList=function(e,t,n,r){if(this._redrawId===r){n||=!1,this._updateLayerStatus(e);var i=this._doPaintList(e,t,n),a=i.finished,o=i.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),o&&this._paintHoverList(e),a)this.eachLayer(function(e){e.afterBrush&&e.afterBrush()});else{var s=this;Mi(function(){s._paintList(e,t,n,r)})}}},e.prototype._compositeManually=function(){var e=this.getLayer(HI).ctx,t=this._domRoot.width,n=this._domRoot.height;e.clearRect(0,0,t,n),this.eachBuiltinLayer(function(r){r.virtual&&e.drawImage(r.dom,0,0,t,n)})},e.prototype._doPaintList=function(e,t,n){for(var r=this,i=[],a=this._opts.useDirtyRect,o=0;o<this._zlevelList.length;o++){var s=this._zlevelList[o],c=this._layers[s];c.__builtin__&&c!==this._hoverlayer&&(c.__dirty||n)&&i.push(c)}for(var l=!0,u=!1,d=function(o){var s=i[o],c=s.ctx,d=a&&s.createRepaintRects(e,t,f._width,f._height),p=n?s.__startIndex:s.__drawIndex,m=!n&&s.incremental&&Date.now,h=m&&Date.now(),g=s.zlevel===f._zlevelList[0]?f._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,g,d);else if(p===s.__startIndex){var _=e[p];(!_.incremental||!_.notClear||n)&&s.clear(!1,g,d)}p===-1&&(console.error(`For some unknown reason. drawIndex is -1`),p=s.__startIndex);var v,y=function(t){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:r._width,viewHeight:r._height};for(v=p;v<s.__endIndex;v++){var i=e[v];if(i.__inHover&&(u=!0),r._doPaintEl(i,s,a,t,n,v===s.__endIndex-1),m&&Date.now()-h>15)break}n.prevElClipPaths&&c.restore()};if(d)if(d.length===0)v=s.__endIndex;else for(var b=f.dpr,x=0;x<d.length;++x){var S=d[x];c.save(),c.beginPath(),c.rect(S.x*b,S.y*b,S.width*b,S.height*b),c.clip(),y(S),c.restore()}else c.save(),y(),c.restore();s.__drawIndex=v,s.__drawIndex<s.__endIndex&&(l=!1)},f=this,p=0;p<i.length;p++)d(p);return ft.wxa&&B(this._layers,function(e){e&&e.ctx&&e.ctx.draw&&e.ctx.draw()}),{finished:l,needsRefreshHover:u}},e.prototype._doPaintEl=function(e,t,n,r,i,a){var o=t.ctx;if(n){var s=e.getPaintRect();(!r||s&&s.intersect(r))&&(KS(o,e,i,a),e.setPrevPaintRect(s))}else KS(o,e,i,a)},e.prototype.getLayer=function(e,t){this._singleCanvas&&!this._needsManuallyCompositing&&(e=HI);var n=this._layers[e];return n||(n=new BI(`zr_`+e,this,this.dpr),n.zlevel=e,n.__builtin__=!0,this._layerConfig[e]?Rt(n,this._layerConfig[e],!0):this._layerConfig[e-UI]&&Rt(n,this._layerConfig[e-UI],!0),t&&(n.virtual=t),this.insertLayer(e,n),n.initContext()),n},e.prototype.insertLayer=function(e,t){var n=this._layers,r=this._zlevelList,i=r.length,a=this._domRoot,o=null,s=-1;if(!n[e]&&GI(t)){if(i>0&&e>r[0]){for(s=0;s<i-1&&!(r[s]<e&&r[s+1]>e);s++);o=n[r[s]]}if(r.splice(s+1,0,e),n[e]=t,!t.virtual)if(o){var c=o.dom;c.nextSibling?a.insertBefore(t.dom,c.nextSibling):a.appendChild(t.dom)}else a.firstChild?a.insertBefore(t.dom,a.firstChild):a.appendChild(t.dom);t.painter||=this}},e.prototype.eachLayer=function(e,t){for(var n=this._zlevelList,r=0;r<n.length;r++){var i=n[r];e.call(t,this._layers[i],i)}},e.prototype.eachBuiltinLayer=function(e,t){for(var n=this._zlevelList,r=0;r<n.length;r++){var i=n[r],a=this._layers[i];a.__builtin__&&e.call(t,a,i)}},e.prototype.eachOtherLayer=function(e,t){for(var n=this._zlevelList,r=0;r<n.length;r++){var i=n[r],a=this._layers[i];a.__builtin__||e.call(t,a,i)}},e.prototype.getLayers=function(){return this._layers},e.prototype._updateLayerStatus=function(e){this.eachBuiltinLayer(function(e,t){e.__dirty=e.__used=!1});function t(e){i&&(i.__endIndex!==e&&(i.__dirty=!0),i.__endIndex=e)}if(this._singleCanvas)for(var n=1;n<e.length;n++){var r=e[n];if(r.zlevel!==e[n-1].zlevel||r.incremental){this._needsManuallyCompositing=!0;break}}var i=null,a=0,o,s;for(s=0;s<e.length;s++){var r=e[s],c=r.zlevel,l=void 0;o!==c&&(o=c,a=0),r.incremental?(l=this.getLayer(c+WI,this._needsManuallyCompositing),l.incremental=!0,a=1):l=this.getLayer(c+(a>0?UI:0),this._needsManuallyCompositing),l.__builtin__||It(`ZLevel `+c+` has been used by unkown layer `+l.id),l!==i&&(l.__used=!0,l.__startIndex!==s&&(l.__dirty=!0),l.__startIndex=s,l.incremental?l.__drawIndex=-1:l.__drawIndex=s,t(s),i=l),r.__dirty&1&&!r.__inHover&&(l.__dirty=!0,l.incremental&&l.__drawIndex<0&&(l.__drawIndex=s))}t(s),this.eachBuiltinLayer(function(e,t){!e.__used&&e.getElementCount()>0&&(e.__dirty=!0,e.__startIndex=e.__endIndex=e.__drawIndex=0),e.__dirty&&e.__drawIndex<0&&(e.__drawIndex=e.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(e){e.clear()},e.prototype.setBackgroundColor=function(e){this._backgroundColor=e,B(this._layers,function(e){e.setUnpainted()})},e.prototype.configLayer=function(e,t){if(t){var n=this._layerConfig;n[e]?Rt(n[e],t,!0):n[e]=t;for(var r=0;r<this._zlevelList.length;r++){var i=this._zlevelList[r];if(i===e||i===e+UI){var a=this._layers[i];Rt(a,n[e],!0)}}}},e.prototype.delLayer=function(e){var t=this._layers,n=this._zlevelList,r=t[e];r&&(r.dom.parentNode.removeChild(r.dom),delete t[e],n.splice(Ht(n,e),1))},e.prototype.resize=function(e,t){if(this._domRoot.style){var n=this._domRoot;n.style.display=`none`;var r=this._opts,i=this.root;if(e!=null&&(r.width=e),t!=null&&(r.height=t),e=_S(i,0,r),t=_S(i,1,r),n.style.display=``,this._width!==e||t!==this._height){for(var a in n.style.width=e+`px`,n.style.height=t+`px`,this._layers)this._layers.hasOwnProperty(a)&&this._layers[a].resize(e,t);this.refresh(!0)}this._width=e,this._height=t}else{if(e==null||t==null)return;this._width=e,this._height=t,this.getLayer(HI).resize(e,t)}return this},e.prototype.clearLayer=function(e){var t=this._layers[e];t&&t.clear()},e.prototype.dispose=function(){this.root.innerHTML=``,this.root=this.storage=this._domRoot=this._layers=null},e.prototype.getRenderedCanvas=function(e){if(e||={},this._singleCanvas&&!this._compositeManually)return this._layers[HI].dom;var t=new BI(`image`,this,e.pixelRatio||this.dpr);t.initContext(),t.clear(!1,e.backgroundColor||this._backgroundColor);var n=t.ctx;if(e.pixelRatio<=this.dpr){this.refresh();var r=t.dom.width,i=t.dom.height;this.eachLayer(function(e){e.__builtin__?n.drawImage(e.dom,0,0,r,i):e.renderToCanvas&&(n.save(),e.renderToCanvas(n),n.restore())})}else for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height},o=this.storage.getDisplayList(!0),s=0,c=o.length;s<c;s++){var l=o[s];KS(n,l,a,s===c-1)}return t.dom},e.prototype.getWidth=function(){return this._width},e.prototype.getHeight=function(){return this._height},e}();function JI(e){e.registerPainter(`canvas`,qI)}function YI(e){if(e==null||!Number.isFinite(e))return`—`;let t=Math.abs(e);return t>=1e9?XI(e,1e9,`B`):t>=1e6?XI(e,1e6,`M`):t>=1e3?XI(e,1e3,`K`):Math.round(e).toLocaleString()}function XI(e,t,n){let r=e/t,i=Math.abs(r)>=100?0:1;return`${r.toFixed(i)}${n}`}var ZI=`auto`,QI={speed:1,live:{frameIntervalMs:33,snapshotHz:12},main:{presentationDurationMs:220,chartAppearDurationMs:0,chartUpdateDurationMs:200,easing:`linear`,easingUpdate:`linear`},tail:{enabled:!0,startPercent:.95,durationMs:ZI,durationScale:10,easing:`cubicOut`},daily:{chartAppearDurationMs:ZI,chartUpdateDurationMs:60,easing:ZI,easingUpdate:ZI},bars:{chartAppearDurationMs:ZI,chartUpdateDurationMs:20,easing:ZI,easingUpdate:ZI},donuts:{chartAppearDurationMs:ZI,chartUpdateDurationMs:ZI,easing:ZI,easingUpdate:`linear`,seriesAnimation:!1},heatmap:{popDurationMs:380,settleThreshold:.998,intensityRiseThreshold:.08,whiteThreshold:.88,nearMaxRatio:.985},videoExport:{width:1080,height:864,fps:60,frontloadSettledFrameCount:1,introFadeEnabled:!0,introFadeStartOpacity:.95,introContentStartOpacity:.05,introFadeDurationMs:400,introFadeDelayMs:0,introFadeEasing:`cubicOut`,startHoldDurationMs:100,replayDurationMs:1e4,tailDurationMs:5e3,replayEasing:`cubicInOut`,tailSourceFraction:.55,tailEasing:`cubicOut`,finalHoldDurationMs:5e3,finalFlashDurationMs:1e3,finalFlashDelayMs:200,finalFlashMaxOpacity:.35,displayTweenStartMs:200,displayTweenBaseMs:240,displayTweenLateMs:420,displayTweenLateWindowMs:2200,chartIntroWindowMs:2200,barsChartIntroUpdateDurationMs:320,barsChartUpdateDurationMs:50,barsChartTailUpdateDurationMs:240,donutsChartIntroUpdateDurationMs:360,donutsChartUpdateDurationMs:50,donutsChartTailUpdateDurationMs:240,supersampleScale:2,captureFormat:`png`,jpegQuality:92,crf:5,encoderPreset:`veryfast`}},$I={animationDuration:750,animationDurationUpdate:220,animationEasing:`cubicOut`,animationEasingUpdate:`cubicOut`},eL={show:!0,animationDuration:250,animationDurationUpdate:220,animationDelay:250,animationDelayUpdate:180,animationEasing:`cubicOut`,animationEasingUpdate:`cubicOut`},tL={...$I,animationDurationUpdate:200,animationDelayUpdate:0,animationEasingUpdate:`cubicOut`},nL={animationDuration:700,animationDurationUpdate:220,animationDelay:250,animationDelayUpdate:140,animationEasing:`cubicOut`,animationEasingUpdate:`cubicOut`},rL={...eL,animationDelay:950,animationDelayUpdate:360};function iL(e){return Number.isFinite(e)&&e>0?e:1}function aL(e){return Math.max(0,Math.round(e/iL(QI.speed)))}function oL(e,t){return e===`auto`?aL(t):e}function sL(e,t){return e===`auto`?t:e}function cL(e){return{animation:!0,animationDuration:oL(e.chartAppearDurationMs,QI.main.chartAppearDurationMs),animationDurationUpdate:oL(e.chartUpdateDurationMs,QI.main.chartUpdateDurationMs),animationEasing:sL(e.easing,QI.main.easing),animationEasingUpdate:sL(e.easingUpdate,QI.main.easingUpdate)}}var lL=aL(QI.main.presentationDurationMs);function uL(e=0,t=!1){let n=lL,r=QI.tail;if(!t||!r?.enabled)return n;let i=Math.min(Math.max(r.startPercent??.9,0),.999),a=Math.min(Math.max(e||0,0),1);if(a<=i)return n;let o=(a-i)/Math.max(1-i,.001),s=r.durationMs===`auto`?Math.round(n*Math.max(r.durationScale||1,1)):r.durationMs;return Math.round(n+(s-n)*_L(o))}function dL(e=0,t=!1){let n=QI.tail;if(!t||!n?.enabled)return`linear`;let r=Math.min(Math.max(n.startPercent??.9,0),.999);return Math.min(Math.max(e||0,0),1)<=r?`linear`:n.easing||`cubicOut`}function fL(e=0,t=!1){let n=QI.tail;if(!t||!n?.enabled)return!1;let r=Math.min(Math.max(n.startPercent??.9,0),.999);return Math.min(Math.max(e||0,0),1)>r}cL({chartAppearDurationMs:ZI,chartUpdateDurationMs:ZI,easing:ZI,easingUpdate:ZI});var pL=cL(QI.daily),mL=cL(QI.bars),hL=cL(QI.donuts),gL=QI.donuts.seriesAnimation;function _L(e){return 1-(1-Math.min(Math.max(e,0),1))**3}function vL(e){return(Array.isArray(e?.data)?e.data:Array.isArray(e)?e:[]).slice().sort((e,t)=>String(e?.date||``).localeCompare(String(t?.date||``)))}function yL(e,t=`model`){return t===`family`?e?.by_family||{}:t===`repo`?e?.by_repo||{}:e?.by_model||{}}function bL(e,t=`tokens`){return e?t===`elapsed_seconds`?e.elapsed_seconds||0:t===`cost`?e.cost||0:e.tokens||0:0}function xL(e,{split:t=`model`,metric:n=`tokens`,dates:r=null}={}){let i=vL(e);if(!i.length)return{dates:[],groups:[],series:[],dayTotals:[]};let a=r||i.map(e=>e.date),o=new Map(i.map(e=>[e.date,e])),s=[],c=new Set;for(let e of a){let r=yL(o.get(e),t);for(let[e,t]of Object.entries(r))c.has(e)||bL(t,n)<=0||(c.add(e),s.push(e))}let l=s.map(e=>({key:e,label:e,data:a.map(r=>bL(yL(o.get(r),t)[e],n))}));return{dates:a,groups:s,series:l,dayTotals:a.map((e,t)=>l.reduce((e,n)=>e+(n.data[t]||0),0))}}function SL(e,t,n){return e+(t-e)*n}function $(e){return Number.isFinite(e)?e:0}function CL(e,t){return Array.isArray(e?.data)?e.data:Array.isArray(e)?e:e?.data?.[t]||e?.data?.total||[]}function wL(e,t){return t?.length?e===`d7`?t.slice(-7):e===`d30`?t.slice(-30):t:[]}function TL(e,t,n){return e.map(e=>({key:e?.[t]||``,label:e?.[n]||``,tokens:$(e?.tokens)})).filter(e=>e.key)}function EL(e,t){let n=vL(e);if(!n.length)return{dates:[],series:[]};let r=wL(t,n.map(e=>e.date)),{series:i}=xL(e,{split:`model`,metric:`tokens`,dates:r});return{dates:r,series:i}}function DL(e,t){let n=vL(e);if(!n.length)return[];let r=new Set(wL(t,n.map(e=>e.date)));return n.filter(e=>r.has(e.date))}function OL(e,t){let n=DL(e,t);return{tokens:n.reduce((e,t)=>e+$(t?.tokens),0),elapsed:n.reduce((e,t)=>e+$(t?.elapsed_seconds),0),cost:n.reduce((e,t)=>e+$(t?.cost),0),days:n.length||1}}function kL(e,t,n){let r={};for(let[i,a]of Object.entries(e||{})){r[i]={};for(let e of n)r[i][e]=$(a?.[e])*t}return r}function AL(e,t){return t>=.999?e:{...e,tokens:$(e?.tokens)*t,elapsed_seconds:$(e?.elapsed_seconds)*t,cost:$(e?.cost)*t,sessions:$(e?.sessions)*t,by_model:kL(e?.by_model,t,[`tokens`,`cost`,`elapsed_seconds`]),by_family:kL(e?.by_family,t,[`tokens`,`cost`,`elapsed_seconds`,`sessions`]),by_repo:kL(e?.by_repo,t,[`tokens`,`cost`,`elapsed_seconds`,`sessions`])}}function jL(e,t){let n=vL(e);if(!n.length)return[];let r=n.length-1,i=Math.max(0,Math.min(r,Number.isFinite(t)?t:r)),a=Math.floor(i),o=Math.min(r,Math.ceil(i)),s=i-a;return n.slice(0,o+1).map((e,t)=>t<=a?e:AL(e,s))}function ML(e,t,n){let r=new Map;for(let i of e)for(let[e,a]of Object.entries(i?.[t]||{}))r.has(e)||r.set(e,{key:e,label:e,[n]:e,tokens:0}),r.get(e).tokens+=$(a?.tokens);return[...r.values()].sort((e,t)=>t.tokens-e.tokens)}function NL({daily:e,range:t,cursor:n,fallback:r}){let i=jL(e,n),a=t===`d7`?i.slice(-7):t===`d30`?i.slice(-30):i;if(!a.length)return r;let o={...r?.stats||{},tokens:a.reduce((e,t)=>e+$(t?.tokens),0),elapsed:a.reduce((e,t)=>e+$(t?.elapsed_seconds),0),cost:a.reduce((e,t)=>e+$(t?.cost),0),sessions:a.reduce((e,t)=>e+$(t?.sessions),0),days:a.length||1};return{...r||{},ready:!0,stats:o,topRepos:ML(a,`by_repo`,`repo_label`).slice(0,6),topFamilies:ML(a,`by_family`,`family`),topModels:ML(a,`by_model`,`model_name`).slice(0,6)}}function PL(e){let t=e?.data&&typeof e.data==`object`?e.data:{},n={};for(let[e,r]of Object.entries(t))n[e]={tokens:$(r?.tokens),elapsed:$(r?.elapsed),cost:$(r?.cost)};return n}function FL({overview:e,heatmap:t,daily:n,families:r,repos:i,models:a,range:o}){let s=e?.data;if(!s)return{ready:!0,stats:{tokens:0,elapsed:0,cost:0,sessions:0,enriched:0,priced:0,exactPriced:0,fallbackPriced:0,unpriced:0,days:1},topRepos:[],topFamilies:[],topModels:[],daily:{dates:[],series:[]},heatmap:{}};let c=s?.[o]||s?.total||{},l=c.coverage||{},u=$(l.thread_rows??l.total),d=$(l.root_sessions??c.total_sessions),f=$(l.priced),p=$(l.priced_exact),m=$(l.priced_fallback),h=$(l.unpriced??Math.max(u-f,0)),g=c.date_range,_=g?.from!=null&&g?.to!=null?Math.max(1,Math.ceil((g.to-g.from)/86400)):1,v=OL(n,o),y=o===`d7`||o===`d30`;return{ready:!0,stats:{tokens:y?v.tokens:$(c.total_tokens),elapsed:y?v.elapsed:$(c.total_elapsed_seconds),cost:y?v.cost:$(c.total_cost),sessions:d,enriched:$(l.enriched),priced:f,exactPriced:p,fallbackPriced:m,unpriced:h,days:y?v.days:_},topRepos:TL(CL(i,o).slice(0,6),`repo_label`,`repo_label`),topFamilies:TL(CL(r,o),`family`,`family`),topModels:TL(CL(a,o).slice(0,6),`model_name`,`model_name`),daily:EL(n,o),heatmap:PL(t)}}function IL(e,t,n){let r=new Map((e||[]).map(e=>[e.key,e])),i=new Map((t||[]).map(e=>[e.key,e])),a=[],o=new Set;for(let e of t||[])o.has(e.key)||(o.add(e.key),a.push(e.key));for(let t of e||[])o.has(t.key)||(o.add(t.key),a.push(t.key));let s=[];for(let e of a){let t=r.get(e),a=i.get(e),o=a?.label||t?.label||e,c=SL($(t?.tokens),$(a?.tokens),n);c<=.001&&!a||s.push({key:e,label:o,tokens:c})}return s}function LL(e,t,n){let r=(t?.dates?.length?t.dates:e?.dates||[]).slice(),i=new Map((e?.series||[]).map(e=>[e.key,e])),a=new Map((t?.series||[]).map(e=>[e.key,e])),o=new Set([...i.keys(),...a.keys()]),s=[];for(let c of o){let o=i.get(c),l=a.get(c),u=new Map((o?.data||[]).map((t,n)=>[e?.dates?.[n],t])),d=new Map((l?.data||[]).map((e,n)=>[t?.dates?.[n],e])),f=r.map(e=>SL($(u.get(e)),$(d.get(e)),n));f.every(e=>e<=.001)&&!l||s.push({key:c,label:l?.label||o?.label||c,data:f})}return{dates:r,series:s}}function RL(e){return{dates:e.dates,series:(e.series||[]).map(e=>({key:e.key,label:e.label,data:e.data.map(()=>0)}))}}function zL(e,t,n){let r=new Set([...Object.keys(e||{}),...Object.keys(t||{})]),i={};for(let a of r){let r=e?.[a],o=t?.[a];i[a]={tokens:SL($(r?.tokens),$(o?.tokens),n),elapsed:SL($(r?.elapsed),$(o?.elapsed),n),cost:SL($(r?.cost),$(o?.cost),n)}}return i}function BL(e,t,n){return{ready:t.ready,stats:{tokens:SL($(e?.stats?.tokens),$(t?.stats?.tokens),n),elapsed:SL($(e?.stats?.elapsed),$(t?.stats?.elapsed),n),cost:SL($(e?.stats?.cost),$(t?.stats?.cost),n),sessions:SL($(e?.stats?.sessions),$(t?.stats?.sessions),n),enriched:SL($(e?.stats?.enriched),$(t?.stats?.enriched),n),priced:SL($(e?.stats?.priced),$(t?.stats?.priced),n),exactPriced:SL($(e?.stats?.exactPriced),$(t?.stats?.exactPriced),n),fallbackPriced:SL($(e?.stats?.fallbackPriced),$(t?.stats?.fallbackPriced),n),unpriced:SL($(e?.stats?.unpriced),$(t?.stats?.unpriced),n),days:$(t?.stats?.days)||1},topRepos:IL(e?.topRepos,t?.topRepos,n),topFamilies:IL(e?.topFamilies,t?.topFamilies,n),topModels:IL(e?.topModels,t?.topModels,n),daily:LL(e?.daily,t?.daily,n),heatmap:zL(e?.heatmap,t?.heatmap,n)}}function VL(e,{duration:t=lL,onSettledChange:n,ingestProgress:r=0,isIngestActive:i=!1,clockNowMs:a=null}={}){let o=(0,b.useMemo)(()=>FL(e),[e.overview,e.heatmap,e.daily,e.families,e.repos,e.models,e.range]),[s,c]=(0,b.useState)(o),l=(0,b.useRef)(o),u=(0,b.useRef)(o),d=(0,b.useRef)(0),f=(0,b.useRef)(0),p=(0,b.useRef)(s),m=(0,b.useRef)(!0),h=(0,b.useRef)(n),g=(0,b.useRef)(0),_=(0,b.useRef)(o),v=(0,b.useRef)(o),y=(0,b.useRef)(`smooth`);(0,b.useEffect)(()=>{h.current=n},[n]);let x=e=>{m.current!==e&&(m.current=e,h.current?.(e))};(0,b.useEffect)(()=>{p.current=s},[s]);let S=e=>{l.current=e,u.current=e,p.current=e,c(e),x(!0),f.current=0,g.current=0,_.current=e,v.current=e},C=e=>{u.current=e,x(!1);let t=fL(r,i)?`tail`:`smooth`;y.current!==t&&(y.current=t,g.current=0),t===`tail`&&(_.current=l.current,v.current=e,g.current=0)},w=(e,n)=>{e<f.current&&(f.current=0,g.current=0,_.current=l.current,v.current=n),f.current||=e;let a=Math.max(1,e-f.current);f.current=e;let o=uL(r,i)||t,s=l.current,u=fL(r,i)?`tail`:`smooth`;y.current!==u&&(y.current=u,g.current=0);let d,m;if(u===`tail`){v.current!==n&&(_.current=s,v.current=n,g.current=e),g.current||=e;let t=Math.max(0,e-g.current),a=Math.min(1,t/Math.max(o,1)),c=HL(a,dL(r,i));d=BL(_.current,v.current,c),m=a>=1||UL(d,n)<=.002}else{let e=HL(1-Math.exp(-a/Math.max(o,1)),dL(r,i));d=BL(s,n,e),m=e>=.999||UL(d,n)<=.002}return l.current=d,m?(l.current=n,p.current=n,c(n),x(!0),g.current=0,_.current=n,v.current=n,n):(p.current=d,c(d),d)};return(0,b.useLayoutEffect)(()=>{if(a!=null){if(t<=0){S(o);return}C(o),w(a,o)}},[o,t,r,i,a]),(0,b.useEffect)(()=>{if(a!=null)return;if(u.current=o,t<=0){S(o);return}if(C(o),d.current)return;let e=t=>{if(w(t,u.current)===u.current&&m.current){d.current=0,f.current=0;return}d.current=requestAnimationFrame(e)};d.current=requestAnimationFrame(e)},[o,t,r,i,a]),(0,b.useEffect)(()=>()=>{d.current&&cancelAnimationFrame(d.current),d.current=0,f.current=0},[]),s}function HL(e,t){let n=Math.min(Math.max(e,0),1);return t===`cubicOut`?1-(1-n)**3:n}function UL(e,t){if(!e||!t)return 0;let n=Math.max(Math.abs((e.stats?.tokens||0)-(t.stats?.tokens||0)),Math.abs((e.stats?.elapsed||0)-(t.stats?.elapsed||0)),Math.abs((e.stats?.cost||0)-(t.stats?.cost||0)),Math.abs((e.stats?.sessions||0)-(t.stats?.sessions||0))),r=WL(e.topRepos,t.topRepos),i=WL(e.topFamilies,t.topFamilies),a=WL(e.topModels,t.topModels),o=GL(e.daily,t.daily);return Math.max(n,r,i,a,o)/Math.max(1,t.stats?.tokens||1)}function WL(e=[],t=[]){let n=new Map(e.map(e=>[e.key,e.tokens||0])),r=0;for(let e of t)r=Math.max(r,Math.abs((n.get(e.key)||0)-(e.tokens||0)));return r}function GL(e,t){let n=new Map((e?.series||[]).map(e=>[e.key,e])),r=0;for(let e of t?.series||[]){let t=n.get(e.key);for(let n=0;n<e.data.length;n+=1)r=Math.max(r,Math.abs((t?.data?.[n]||0)-(e.data[n]||0)))}return r}function KL(e,t){let n=new Map((e?.series||[]).map(e=>[e.key,e])),r=0;for(let e of t?.series||[]){let t=n.get(e.key);for(let n=0;n<(e.data?.length||0);n+=1)r=Math.max(r,Math.abs((t?.data?.[n]||0)-(e.data[n]||0)))}return r}function qL(e){let t=0;for(let n of e?.series||[])for(let e of n.data||[])t=Math.max(t,Math.abs(e||0));return t}function JL(e,t,n=``){let[r,i]=(0,b.useState)(e),a=(0,b.useRef)(e),o=(0,b.useRef)(e),s=(0,b.useRef)(0),c=(0,b.useRef)(0),l=(0,b.useRef)(n),u=(0,b.useRef)(t),d=t&&l.current!==n;return(0,b.useLayoutEffect)(()=>{o.current=e;let r=!u.current&&t;if(u.current=t,!t){s.current&&cancelAnimationFrame(s.current),s.current=0,c.current=0,a.current=e,l.current=n;return}if(l.current!==n){s.current&&cancelAnimationFrame(s.current),s.current=0,c.current=0;let t=RL(e);a.current=t,i(t),l.current=n;return}r&&(a.current=e,i(e))},[e,t,n]),(0,b.useEffect)(()=>{if(o.current=e,!t)return;let n=lL,r=e=>{let t=o.current;c.current||=e;let l=Math.max(1,e-c.current);c.current=e;let u=1-Math.exp(-l/Math.max(n,1)),d=LL(a.current,t,u);a.current=d,i(d);let f=Math.max(1,qL(t));if(KL(d,t)<=f*.002||u>=.999){a.current=t,i(t),s.current=0,c.current=0;return}s.current=requestAnimationFrame(r)};s.current||=(c.current=0,requestAnimationFrame(r))},[e,t,n]),(0,b.useEffect)(()=>()=>{s.current&&cancelAnimationFrame(s.current),s.current=0,c.current=0},[]),t?d?RL(e):r:e}function YL(e,t){if(!e||!t)return null;let n=Date.parse(`${e}T00:00:00Z`),r=Date.parse(`${t}T00:00:00Z`);return!Number.isFinite(n)||!Number.isFinite(r)?null:Math.round((r-n)/864e5)}function XL(){if(typeof window>`u`)return!1;try{return new URLSearchParams(window.location.search).has(`debugLive`)||window.localStorage?.getItem(`codexmeter.debugLive`)===`1`||window.__CODEXMETER_DEBUG_LIVE__===!0}catch{return!1}}function ZL(e,t=null){let n=(Array.isArray(e?.dates)&&Array.isArray(e?.series)?e.dates.map((t,n)=>({date:t,tokens:e.series.reduce((e,t)=>e+(t?.data?.[n]||0),0)})):Array.isArray(e?.data)?e.data:Array.isArray(e)?e:Object.entries(e||{}).map(([e,t])=>({date:e,...t}))).filter(e=>e?.date).sort((e,t)=>String(e.date).localeCompare(String(t.date))),r=n.filter(e=>(e.tokens||0)>0||(e.sessions||0)>0),i=n[0]?.date||null,a=n[n.length-1]?.date||null,o=r[r.length-1]?.date||null;return{days:n.length,nonzeroDays:r.length,first:i,last:a,lastNonzero:o,currentDateBucket:t,overreachDays:t&&o?Math.max(0,YL(t,o)||0):0,totalTokens:Math.round(n.reduce((e,t)=>e+(t.tokens||0),0))}}function QL(e,t=null){let n=Object.entries(e||{}).map(([e,t])=>({date:e,tokens:t?.tokens||0,sessions:t?.sessions||0,elapsed:t?.elapsed||0,cost:t?.cost||0})).filter(e=>e.date).sort((e,t)=>String(e.date).localeCompare(String(t.date))),r=n.filter(e=>e.tokens>0||e.sessions>0||e.elapsed>0||e.cost>0),i=n[0]?.date||null,a=n[n.length-1]?.date||null,o=r[r.length-1]?.date||null;return{days:n.length,nonzeroDays:r.length,first:i,last:a,lastNonzero:o,currentDateBucket:t,overreachDays:t&&o?Math.max(0,YL(t,o)||0):0,totalTokens:Math.round(n.reduce((e,t)=>e+t.tokens,0))}}function $L(e){return{seq:e?.seq,phase:e?.progress?.phase,percent:Number(((e?.progress?.percent||0)*100).toFixed(1)),enriched:e?.progress?.enriched,needs:e?.progress?.needs_enrichment,complete:!!e?.progress?.complete,daily:ZL(e?.data?.daily||{},e?.progress?.current_date_bucket||null)}}function eR(e,t=null){return{seq:e?.seq,ingestId:e?.ingest_id,daily:ZL(e?.daily||{},t?.current_date_bucket||null)}}function tR(e,t){XL()&&console.debug(`[codexmeter:live] ${e}`,t)}xD([wA,KA,vP,NF,IF,cI,JI]);function nR(e){return YI(e)}function rR(e){return e==null?`—`:e>=1e3?`$`+(e/1e3).toFixed(1)+`K`:`$`+e.toFixed(2)}function iR(e){return e?(e/3600).toFixed(1)+`h`:`0h`}function aR(e,t=16){if(!e)return``;let n=String(e).split(/([-/])/).filter(Boolean),r=[``];for(let e of n){let n=r[r.length-1];if(!n.length||(n+e).length<=t){r[r.length-1]=n+e;continue}if(r.length===2){r[1]+=e;break}r.push(e)}return r.join(`
28
- `)}function oR(e){let t=Math.max(1,e||1),n=300/t,r=t>80?.68:t>45?.78:.88,i=Math.max(1.25,Math.min(24,n*r));return{barWidth:i,barMaxWidth:Math.max(4,Math.min(28,i*1.2))}}function sR(e){let{dates:t,series:n}=xL(e,{split:`model`,metric:`tokens`});return{dates:t,series:n}}function cR(e){return Math.max(0,Math.min(1,e))}function lR(e,t,n=0){if(!e?.length)return 0;if(!t)return e.length-1;let r=uR(e,t),i=e.length-1,a=cR(((n||0)-.08)/.92)**.82,o=r+(i-r)*a;return Math.max(r,Math.min(i,Math.floor(o+32)))}function uR(e,t){return e?.length?t?Math.min(e.length-1,6):e.length-1:0}function dR(e,t,n,r){if(!r)return e;let i=Math.max(0,(n||1)-1),a=Math.max(0,Math.min(i,Number.isFinite(t)?t:0));return a>=i-.01?i:Math.max(e,Math.min(i,a+1.25))}function fR(e,t){if(!e?.dates?.length)return{dates:[],series:[]};let n=e.dates.length-1,r=Math.max(0,Math.min(n,t||0)),i=Math.floor(r),a=Math.min(n,Math.ceil(r)),o=r-i,s=Math.max(1,a+1),c=e.dates.slice(0,s);return{dates:c,series:(e.series||[]).map(e=>({...e,data:c.map((t,n)=>{let r=e.data?.[n]||0;return n<=i?r:r*o})}))}}function pR(e,t,n){if(!e?.length||!t?.length)return Math.max(0,Math.min(Math.max((t?.length||1)-1,0),n||0));let r=e.length-1,i=Math.max(0,Math.min(r,Number.isFinite(n)?n:r)),a=Math.floor(i),o=Math.min(r,Math.ceil(i)),s=i-a,c=new Map(t.map((e,t)=>[e,t])),l=c.get(e[a]);if(l==null)return Math.max(0,Math.min(t.length-1,i));if(o===a)return l;let u=c.get(e[o]);return u==null?Math.max(0,Math.min(t.length-1,l+s)):l+(u-l)*s}function mR(e,t){return!e||!t?e||{}:Object.fromEntries(Object.entries(e).filter(([e])=>String(e)<=String(t)))}function hR(e,t){if(!t?.dates?.length)return e||{dates:[],series:[]};if(!e?.dates?.length)return t;let n=[...new Set([...e.dates,...t.dates])].sort(),r=new Map(e.dates.map((e,t)=>[e,t])),i=new Map(t.dates.map((e,t)=>[e,t])),a=[],o=new Map,s=new Map;for(let t of e.series||[])o.set(t.key,t);for(let e of t.series||[])s.set(e.key,e),a.push(e.key);for(let t of e.series||[])s.has(t.key)||a.push(t.key);return{dates:n,series:a.map(e=>{let t=s.get(e),a=o.get(e);return{key:e,label:t?.label||a?.label||e,data:n.map(e=>{let n=i.get(e);if(t&&n!==void 0)return t.data?.[n]||0;let o=r.get(e);return a&&o!==void 0&&a.data?.[o]||0})}})}}function gR(e,{ingestProgress:t=0,isIngestActive:n=!1}={}){let r=(0,b.useRef)({dates:[],series:[]}),i=(0,b.useMemo)(()=>n?(r.current=hR(r.current,e),r.current):(r.current=e||{dates:[],series:[]},r.current),[e,n]),a=(0,b.useMemo)(()=>lR(i?.dates||[],n,t),[i?.dates,t,n]),[o,s]=(0,b.useState)(()=>uR(i?.dates||[],n)),c=dR(a,o,i?.dates?.length||0,n),l=!!(n&&(i?.dates?.length||0)>0&&o>=i.dates.length-1-.01),[u,d]=(0,b.useState)(0),f=(0,b.useRef)(o),p=(0,b.useRef)(0),m=(0,b.useRef)(i?.dates||[]),h=(0,b.useRef)(0),g=(0,b.useRef)(0);f.current=o;let _=e=>{let t=Math.round(Math.max(0,e||0)*10)/10;Math.abs(p.current-t)<.05||(p.current=t,d(t))};return(0,b.useLayoutEffect)(()=>{let e=i?.dates||[],t=m.current||[];if(t===e||(m.current=e,!n))return;let r=pR(t,e,f.current);Math.abs(r-f.current)<.001||(f.current=r,s(r))},[i?.dates,n]),(0,b.useEffect)(()=>{let e=i?.dates?.length||0;if(!e){_(0);return}if(!n){f.current=c,s(c),_(0);return}cancelAnimationFrame(h.current),h.current=0,g.current=0;let t=r=>{g.current||=r;let i=Math.max(1,r-g.current);g.current=r;let o=f.current,c=dR(a,o,e,n),l=c-o;if(Math.abs(l)<=.01){f.current=c,s(c),_(0),h.current=0;return}let u=Math.abs(l),d=Math.min(4.2,Math.max(.65,1.15+Math.max(0,u-8)*.11));_(d);let p=o+Math.sign(l)*Math.min(Math.abs(l),d*i/1e3);f.current=p,s(p),h.current=requestAnimationFrame(t)};return h.current=requestAnimationFrame(t),()=>{cancelAnimationFrame(h.current),h.current=0}},[i?.dates?.length,a,n]),(0,b.useEffect)(()=>()=>{cancelAnimationFrame(h.current),h.current=0},[]),{daily:(0,b.useMemo)(()=>fR(i,o),[i,o]),cursor:o,rawTargetIndex:a,sourceDaily:i,speedDaysPerSecond:u,targetIndex:c,waitingForDailyData:l}}function _R(e,t,n=null,r=!1){if(!t)return{startValue:0,endValue:0};if(r&&Number.isFinite(n)){let r=t;e===`d7`&&(r=7),e===`d30`&&(r=30);let i=e===`d30`?29:6,a=Math.max(t-1,i),o=Math.max(i,Math.min(a,n)),s=e===`total`?Math.max(7,o+1):Math.max(1,Math.min(r,o+1));return{startValue:e===`total`?0:Math.max(0,o-s+1),endValue:o}}let i=t;return e===`d7`&&(i=7),e===`d30`&&(i=30),{startValue:t-Math.max(1,Math.min(i,t)),endValue:t-1}}function vR(e,t,n,r,i){if(cancelAnimationFrame(r.current),r.current=0,Math.abs(e.startValue-t.startValue)<.01&&Math.abs(e.endValue-t.endValue)<.01)return;let a=0,o=s=>{a||=s;let c=Math.min(1,(s-a)/i),l=1-(1-c)**3;n({startValue:e.startValue+(t.startValue-e.startValue)*l,endValue:e.endValue+(t.endValue-e.endValue)*l}),r.current=c<1?requestAnimationFrame(o):0};return r.current=requestAnimationFrame(o),()=>{cancelAnimationFrame(r.current),r.current=0}}function yR(e,t,{hideLabels:n=!1}={}){return e.map(e=>{let r=t(e.key);return{name:e.label,value:e.tokens,itemStyle:{color:r},label:{show:!n,color:r},labelLine:{show:!n}}})}function bR(e,t){return e.map(e=>({...e,tokens:Math.max(0,(e.tokens||0)*t)}))}function xR(e,t){let n=new Map((t||[]).map(e=>[e.key,e])),r=[],i=new Set;for(let t of e||[]){if(!t?.key||i.has(t.key))continue;i.add(t.key);let e=n.get(t.key);r.push({key:t.key,label:e?.label||t.label,tokens:Math.max(0,e?.tokens??t.tokens??0)})}for(let e of t||[])!e?.key||i.has(e.key)||(i.add(e.key),r.push({key:e.key,label:e.label,tokens:Math.max(0,e.tokens||0)}));return r}function SR(e){return e.length===1?e=>{let t=e.rect||{x:0,y:0,width:0,height:0},n=e.labelRect||{width:0,height:0};return{x:t.x+t.width+14,y:t.y+t.height/2-n.height/2,align:`left`,verticalAlign:`middle`,moveOverlap:`shiftY`,hideOverlap:!1}}:null}function CR({daily:e,fullDaily:t=null,elasticDaily:n=null,range:r=`total`,isIngestActive:i=!1,currentDateBucket:a=null,exportMode:o=!1,exportPlayback:s=!1,onDayClick:c}){let l=t||e;if(!l?.dates?.length)return(0,R.jsxs)(`div`,{className:`overview-daily-spark overview-daily-spark-empty`,children:[(0,R.jsx)(`span`,{className:`overview-daily-spark-title`,children:`Daily Usage`}),(0,R.jsx)(`span`,{className:`overview-daily-spark-empty-text`,children:`No daily data`})]});let u=n||{daily:l,cursor:l.dates.length-1,rawTargetIndex:l.dates.length-1,sourceDaily:l,targetIndex:l.dates.length-1},d=u.daily,f=!o&&!s&&i,p=(0,b.useMemo)(()=>_R(r,d.dates.length,u.cursor,f),[r,d.dates.length,u.cursor,f]),[m,h]=(0,b.useState)(()=>_R(r,d.dates.length)),g=(0,b.useRef)(p),_=(0,b.useRef)(f),v=(0,b.useRef)(m),y=(0,b.useRef)(0),x=JL(d,f,`overview-daily-spark`),S=f?p:_.current?g.current:m;v.current=S,(0,b.useEffect)(()=>{if(f){g.current=p,_.current=!0;return}let e=_R(r,d.dates.length);return _.current&&=(v.current=g.current,h(g.current),!1),vR(v.current,e,h,y,220)},[f,p,r,d.dates.length]),(0,b.useEffect)(()=>()=>{cancelAnimationFrame(y.current),y.current=0},[]);let{startValue:C,endValue:w}=S,T=Math.max(1,w-C+1||d.dates.length),{barWidth:E,barMaxWidth:D}=oR(T),O=f,k=Math.max(-.5,C-.5),A=Math.max(k+1,w+.5),j=e=>d.dates[Math.max(0,Math.min(d.dates.length-1,Math.round(e)))],ee=(0,b.useRef)(``);(0,b.useEffect)(()=>{let e=ZL(l,a),t=ZL(d,a),n=Math.round(C),r=Math.round(w),i=[a,u.targetIndex,e.days,e.lastNonzero,e.overreachDays,t.days,t.lastNonzero,t.overreachDays,n,r].join(`|`);i!==ee.current&&(ee.current=i,tR(`dailySpark.present`,{currentDateBucket:a,cursor:Number(u.cursor.toFixed(2)),targetIndex:u.targetIndex,rawTargetIndex:u.rawTargetIndex,lagDays:Number((u.targetIndex-u.cursor).toFixed(2)),source:e,presentationSource:ZL(u.sourceDaily,a),display:t,zoom:{startValue:Number(C.toFixed(2)),endValue:Number(w.toFixed(2)),visibleDateCount:Number(T.toFixed(2))}}))},[a,u.cursor,u.targetIndex,l,d,C,w,T]);let te={backgroundColor:`transparent`,...pL,tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{if(!e?.length)return``;let t=`<b>${j(Array.isArray(e[0].data)?e[0].data[0]:e[0].dataIndex)}</b><br/>`,n=0,r=[...e].filter(e=>(Array.isArray(e.value)?e.value[1]:e.value)>0).sort((e,t)=>((Array.isArray(t.value)?t.value[1]:t.value)||0)-((Array.isArray(e.value)?e.value[1]:e.value)||0));for(let e of r){let r=Array.isArray(e.value)?e.value[1]:e.value;t+=`${e.marker} ${e.seriesName}: ${nR(r)}<br/>`,n+=r}return t+=`<b>Total: ${nR(n)}</b>`,t}},grid:{left:4,right:4,top:4,bottom:4},xAxis:O?{type:`value`,min:k,max:A,show:!1}:{type:`category`,data:x.dates||d.dates,min:Math.max(0,Math.floor(C)),max:Math.max(0,Math.floor(w)),show:!1},yAxis:{type:`value`,show:!1,scale:!1,min:0},series:x.series.map(e=>({id:`overview-daily-${e.key}`,name:e.label,type:`bar`,stack:`total`,data:O?e.data.map((e,t)=>[t,e]):e.data,itemStyle:{color:Ue(e.key)},...E?{barWidth:E}:{},barMaxWidth:D}))},M=c&&!o&&!s?{click:e=>{let t=Array.isArray(e?.data)?e.data[0]:e?.dataIndex,n=Number.isFinite(t)?j(t):e?.axisValue||e?.name;n&&c(n)}}:void 0;return(0,R.jsxs)(`div`,{className:`overview-daily-spark`,children:[(0,R.jsx)(`span`,{className:`overview-daily-spark-title`,children:`Daily Usage`}),(0,R.jsx)(`div`,{className:`overview-daily-spark-chart`,style:M?{cursor:`pointer`}:void 0,children:(0,R.jsx)(Ae,{echarts:YO,option:te,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!1,notMerge:o,replaceMerge:[`series`],onEvents:M})})]})}var wR=[{key:`tokens`,label:`Tokens`,fmt:nR},{key:`elapsed`,label:`Time`,fmt:e=>iR(e)},{key:`cost`,label:`Cost`,fmt:rR}],TR=QI.heatmap?.popDurationMs??380,ER=QI.heatmap?.settleThreshold??.998;function DR({heatmapData:e,isIngestActive:t=!1,ingestProgress:n=0,currentDateBucket:r=null,onDayClick:i,interactive:a=!0}){let[o,s]=(0,b.useState)(`tokens`),[c,l]=(0,b.useState)(new Set),[u,d]=(0,b.useState)(new Set),f=(0,b.useRef)({}),p=(0,b.useRef)(1),m=(0,b.useRef)(``),h=e||{};(0,b.useEffect)(()=>{let e=QL(h,r),t=[e.currentDateBucket,e.nonzeroDays,e.lastNonzero,e.overreachDays,e.totalTokens].join(`|`);t!==m.current&&(m.current=t,tR(`heatmap.present`,e))},[h,r]);let g=new Date,_=[],v=[];for(let e=364;e>=0;e--){let t=new Date(g);t.setDate(t.getDate()-e);let n=t.toLocaleDateString(`en-CA`),r=h[n]&&h[n][o]||0;_.push({key:n,val:r,date:t}),t.getDate()===1&&v.push({idx:364-e,label:t.toLocaleDateString(`en-US`,{month:`short`})})}let y=Math.max(..._.map(e=>e.val),1);(0,b.useEffect)(()=>{if(!t||n>=ER){f.current={},p.current=1;return}let e=new Date,r=f.current,i=p.current,a=new Set,s=new Set,c=Math.max(.05,Math.min(i,y)*.002),u=QI.heatmap?.intensityRiseThreshold??.08,m=QI.heatmap?.whiteThreshold??.88,g=QI.heatmap?.nearMaxRatio??.985;for(let t=364;t>=0;t--){let n=new Date(e);n.setDate(n.getDate()-t);let l=n.toLocaleDateString(`en-CA`),d=h[l]&&h[l][o]||0,f=r[l]??0,p=i>0?f/i:0,_=y>0?d/y:0,v=y>i+c&&d>=y*g&&(f<y*g||f===void 0),b=_>=m&&p<m,x=d>f+c,S=_>p+u;v||b||x||S?a.add(l):(d<f-c||d>0&&i>0&&y>i+c&&p>=.85&&_<p-.02)&&s.add(l),r[l]=d}if(p.current=y,a.size>0||s.size>0){l(a),d(s);let e=setTimeout(()=>{l(new Set),d(new Set)},TR);return()=>clearTimeout(e)}},[h,o,t,n,y]);function x(e){if(e===0)return`var(--bg-elevated)`;let t=e/y,n=1/4;return t<n?`rgba(99, 102, 241, 0.14)`:t<2*n?`rgba(99, 102, 241, 0.38)`:t<3*n?`rgba(99, 102, 241, 0.62)`:t<1?`rgba(99, 102, 241, 0.88)`:`#fff`}let S=_[0]?.date.getDay()||0,C=Array(S).fill(null).concat(_);return(0,R.jsxs)(`div`,{className:`heatmap-wrap`,children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:`0.75rem`},children:[(0,R.jsx)(`span`,{className:`chart-title`,children:`Activity`}),(0,R.jsx)(`div`,{className:`btn-group`,children:wR.map(e=>(0,R.jsx)(`button`,{className:`btn ${o===e.key?`active`:``}`,onClick:()=>s(e.key),children:e.label},e.key))})]}),(0,R.jsx)(`div`,{className:`heatmap-grid`,style:{gridTemplateRows:`repeat(7, 1fr)`},children:C.map((e,t)=>e?(0,R.jsx)(`div`,{role:i&&a?`button`:void 0,tabIndex:i&&a?0:void 0,onClick:i&&a?()=>i(e.key):void 0,onKeyDown:i&&a?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),i(e.key))}:void 0,className:`heatmap-cell ${e.val>0?`active`:``} ${c.has(e.key)?`heatmap-cell-pop`:``} ${u.has(e.key)?`heatmap-cell-pop-dim`:``}`,style:{background:x(e.val),cursor:i&&a?`pointer`:void 0},title:`${e.key}: ${wR.find(e=>e.key===o).fmt(e.val)}`},e.key):(0,R.jsx)(`div`,{className:`heatmap-cell`,style:{visibility:`hidden`}},`pad-${t}`))}),(0,R.jsx)(`div`,{className:`heatmap-labels`,children:v.slice(-12).map((e,t)=>(0,R.jsx)(`span`,{children:e.label},t))})]})}function OR({presentation:e,rawPresentation:t=null,fullDaily:n=null,sourceDailyRows:r=null,range:i=`total`,ingestProgress:a=0,isIngestActive:o=!1,currentDateBucket:s=null,exportMode:c=!1,exportPlayback:l=!1,exportPhase:u=null,exportSeekMs:d=0,exportDaily:f=null,exportDailyTiming:p=null,onDailyDebugStatsChange:m=null,onPresentationDateRangeChange:h=null,onNavigateToDailyDay:g,onNavigateToRepo:_,onNavigateToModel:v}){if(!e?.ready)return null;let y=l?MR(d):1,x=l&&u===`replay`&&t?.ready?t:e,S=l&&t?.daily||e.daily,C=l&&S?.dates?.length?S:n,w=!c&&!l&&o,T=gR(C,{ingestProgress:a,isIngestActive:w});(0,b.useEffect)(()=>{m?.(w?{speedDaysPerSecond:T.speedDaysPerSecond,waitingForDailyData:T.waitingForDailyData}:null)},[w,T.speedDaysPerSecond,T.waitingForDailyData,m]),(0,b.useEffect)(()=>()=>m?.(null),[m]);let E=T.daily?.dates||[],D=E[E.length-1]||s,O=wL(i,E),k={from:O[0]||D,to:O[O.length-1]||D};(0,b.useEffect)(()=>{h?.(w?k:null)},[w,h,k.from,k.to]),(0,b.useEffect)(()=>()=>h?.(null),[h]);let A=o&&t?.heatmap?t.heatmap:e.heatmap,j=o&&!l?D:s,ee=o&&j&&!l?mR(A,j):A||{},te=(0,b.useMemo)(()=>w?NL({daily:r,range:i,cursor:T.cursor,fallback:x}):x,[x,w,T.cursor,i,r]),{stats:M,topRepos:N,topFamilies:P,topModels:F}=te,ne=l&&u===`replay`?bR(xR(t?.topRepos||x.topRepos||[],e.topRepos||x.topRepos||[]),y):te.topRepos||[],re=l&&u===`replay`?bR(xR(t?.topFamilies||x.topFamilies||[],e.topFamilies||x.topFamilies||[]),y):te.topFamilies||[],ie=l&&u===`replay`?bR(xR(t?.topModels||x.topModels||[],e.topModels||x.topModels||[]),y):te.topModels||[],ae=[...ne.slice(0,6)].reverse(),oe=Math.max(...ne.slice(0,6).map(e=>e.tokens||0),1),se=[...re].sort((e,t)=>String(e.label).localeCompare(String(t.label))),ce=[...ie.slice(0,6)].sort((e,t)=>String(e.label).localeCompare(String(t.label))),le=!c&&!l&&!o,I=PR(d,l),ue=!c&&!l&&gL,de=l?NR(d,QI.videoExport?.barsChartIntroUpdateDurationMs,QI.videoExport?.barsChartUpdateDurationMs,u===`tail`||u===`final_hold`?QI.videoExport?.barsChartTailUpdateDurationMs:null):0,fe={backgroundColor:`transparent`,...mL,...c?{animation:!1}:{},...l?{animation:!0,animationDuration:0,animationDurationUpdate:de,animationEasingUpdate:`cubicOut`}:{},tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>e?.length?`${e[0].axisValue}: ${nR(e[0].value)} tokens`:``},grid:{left:100,right:5,top:5,bottom:5},xAxis:{type:`value`,show:!1,max:oe||1},yAxis:{type:`category`,data:ae.map(e=>e.label),axisLabel:{color:`#8b949e`,fontSize:11,formatter:e=>aR(e)},axisTick:{show:!1},axisLine:{show:!1}},series:[{id:`overview-top-repos`,type:`bar`,data:ae.map(e=>{let t=e.tokens||0,n=t/oe>=.7,r=ze(e.label);return{value:t,itemStyle:{color:r,borderRadius:[0,3,3,0]},label:{show:!0,position:n?`insideRight`:`right`,distance:5,offset:[0,1.5],formatter:()=>nR(t),color:n?Be(r):`#8b949e`,fontSize:10}}}),barWidth:`80%`}]},pe=le&&_?{click:e=>{if(e?.componentType!==`series`||e?.dataIndex==null)return;let t=ae[e.dataIndex];t?.label&&_(t.label)}}:void 0,me=se.reduce((e,t)=>e+(t.tokens||0),0),he=se.filter(e=>me>0?(e.tokens||0)/me>=.01:!1),L=l&&he.length===1,ge=SR(he),_e={backgroundColor:`transparent`,...hL,...c||l?{animation:!1}:{},tooltip:{trigger:`item`,appendToBody:!0,confine:!0,formatter:e=>`${e.name}: ${nR(e.value)} tokens (${e.percent}%)`},series:[{id:`overview-work-type`,type:`pie`,animation:ue,avoidLabelOverlap:!ge,radius:I,center:[`50%`,`50%`],label:{show:!L,color:`#8b949e`,fontSize:11,formatter:`{b}`,alignTo:`edge`,edgeDistance:5,bleedMargin:5,distanceToLabelLine:5},labelLine:{show:!L,lineStyle:{color:`#30363d`},length:8,length2:6},itemStyle:{borderColor:`#161b22`,borderWidth:2},...!L&&ge?{labelLayout:ge}:{},data:yR(he,We,{hideLabels:L})}]},ve=ce.reduce((e,t)=>e+(t.tokens||0),0),ye=ce.filter(e=>ve>0?(e.tokens||0)/ve>=.01:!1),be=l&&ye.length===1,xe=SR(ye),Se={backgroundColor:`transparent`,...hL,...c||l?{animation:!1}:{},tooltip:{trigger:`item`,appendToBody:!0,confine:!0,formatter:e=>`${e.name}: ${nR(e.value)} tokens (${e.percent}%)`},series:[{id:`overview-models`,type:`pie`,animation:ue,avoidLabelOverlap:!xe,radius:I,center:[`50%`,`50%`],label:{show:!be,color:`#8b949e`,fontSize:11,formatter:`{b}`,alignTo:`edge`,edgeDistance:5,bleedMargin:5,distanceToLabelLine:5},labelLine:{show:!be,lineStyle:{color:`#30363d`},length:8,length2:6},itemStyle:{borderColor:`#161b22`,borderWidth:2},...!be&&xe?{labelLayout:xe}:{},data:yR(ye,Ue,{hideLabels:be})}]},Ce=le&&v?{click:e=>{if(e?.componentType!==`series`||e?.dataIndex==null)return;let t=ye[e.dataIndex]?.label||e?.name;t&&v(t)}}:void 0;return(0,R.jsxs)(`div`,{className:`animate-in`,children:[(0,R.jsxs)(`div`,{className:`stat-row`,children:[(0,R.jsxs)(`div`,{className:`stat-cards`,children:[(0,R.jsxs)(`div`,{className:`stat-card`,children:[(0,R.jsx)(`div`,{className:`stat-label`,children:`Tokens`}),(0,R.jsx)(`div`,{className:`stat-value`,children:nR(M.tokens)}),(0,R.jsxs)(`div`,{className:`stat-per-day`,children:[(0,R.jsx)(`span`,{className:`stat-per-day-value`,children:nR(M.tokens/M.days)}),` per day`]})]}),(0,R.jsxs)(`div`,{className:`stat-card`,children:[(0,R.jsx)(`div`,{className:`stat-label`,children:`Agent Time`}),(0,R.jsx)(`div`,{className:`stat-value`,children:iR(M.elapsed)}),(0,R.jsxs)(`div`,{className:`stat-per-day`,children:[(0,R.jsx)(`span`,{className:`stat-per-day-value`,children:iR(M.elapsed/M.days)}),` per day`]})]}),(0,R.jsxs)(`div`,{className:`stat-card`,children:[(0,R.jsx)(`div`,{className:`stat-label`,children:`Est. API Cost`}),(0,R.jsx)(`div`,{className:`stat-value`,children:rR(M.cost)}),(0,R.jsxs)(`div`,{className:`stat-per-day`,children:[(0,R.jsx)(`span`,{className:`stat-per-day-value`,children:rR(M.cost/M.days)}),` per day`]})]}),(0,R.jsxs)(`div`,{className:`stat-card`,children:[(0,R.jsx)(`div`,{className:`stat-label`,children:`Sessions`}),(0,R.jsx)(`div`,{className:`stat-value`,children:Math.round(M.sessions).toLocaleString()}),(0,R.jsxs)(`div`,{className:`stat-per-day`,children:[(0,R.jsx)(`span`,{className:`stat-per-day-value`,children:(M.sessions/M.days).toFixed(1)}),` per day`]})]})]}),l?(0,R.jsx)(ot,{daily:f||n||S,seekMs:d,timing:p}):(0,R.jsx)(CR,{daily:S,fullDaily:n,elasticDaily:T,range:i,isIngestActive:o,currentDateBucket:s,exportMode:c,exportPlayback:l,onDayClick:le?g:void 0})]}),(0,R.jsx)(DR,{heatmapData:ee,isIngestActive:o,ingestProgress:a,currentDateBucket:j,onDayClick:le?g:void 0,interactive:le}),(0,R.jsxs)(`div`,{className:`grid-3`,children:[(0,R.jsxs)(`div`,{className:`chart-card overview-donut-card`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Top Repos`}),N.length>0?(0,R.jsx)(Ae,{echarts:YO,option:fe,style:{height:180,cursor:pe?`pointer`:void 0},theme:`dark`,lazyUpdate:!1,notMerge:c,onEvents:pe}):(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem 0`,textAlign:`center`},children:`No data`})]}),(0,R.jsxs)(`div`,{className:`chart-card overview-donut-card`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Work Type`}),P.length>0?(0,R.jsx)(Ae,{echarts:YO,option:_e,style:{height:180},theme:`dark`,lazyUpdate:!1,notMerge:c}):(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem 0`,textAlign:`center`},children:`No data`})]}),(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Models`}),F.length>0?(0,R.jsx)(Ae,{echarts:YO,option:Se,style:{height:180,cursor:Ce?`pointer`:void 0},theme:`dark`,lazyUpdate:!1,notMerge:c,onEvents:Ce}):(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem 0`,textAlign:`center`},children:`No data`})]})]}),(0,R.jsxs)(`div`,{className:`coverage-subtle`,children:[(0,R.jsx)(`span`,{style:{fontWeight:500},children:`Session coverage:`}),(0,R.jsxs)(`span`,{className:`coverage-item`,children:[(0,R.jsx)(`span`,{className:`coverage-dot`,style:{background:`#22c55e`}}),(0,R.jsx)(`span`,{className:`coverage-nums`,children:Math.round(M.exactPriced)}),` `,`exact-priced`]}),(0,R.jsxs)(`span`,{className:`coverage-item`,children:[(0,R.jsx)(`span`,{className:`coverage-dot`,style:{background:`#c084fc`}}),(0,R.jsx)(`span`,{className:`coverage-nums`,children:Math.round(M.fallbackPriced)}),` `,`fallback-priced`]}),(0,R.jsxs)(`span`,{className:`coverage-item`,children:[(0,R.jsx)(`span`,{className:`coverage-dot`,style:{background:`#64748b`}}),(0,R.jsx)(`span`,{className:`coverage-nums`,children:Math.round(M.unpriced)}),` `,`unpriced`]})]})]})}function kR({data:e,heatmap:t,daily:n,families:r,repos:i,models:a,range:o=`total`,onPresentationSettledChange:s=null,ingestProgress:c=0,isIngestActive:l=!1,currentDateBucket:u=null,clockNowMs:d=null,onDailyDebugStatsChange:f=null,onPresentationDateRangeChange:p=null,onNavigateToDailyDay:m,onNavigateToRepo:h,onNavigateToModel:g}){return(0,R.jsx)(OR,{presentation:VL({overview:e,heatmap:t,daily:n,families:r,repos:i,models:a,range:o},{duration:lL,onSettledChange:s,ingestProgress:c,isIngestActive:l,clockNowMs:d}),rawPresentation:b.useMemo(()=>FL({overview:e,heatmap:t,daily:n,families:r,repos:i,models:a,range:o}),[e,t,n,r,i,a,o]),fullDaily:b.useMemo(()=>sR(n),[n]),sourceDailyRows:n,range:o,ingestProgress:c,isIngestActive:l,currentDateBucket:u,onDailyDebugStatsChange:f,onPresentationDateRangeChange:p,onNavigateToDailyDay:m,onNavigateToRepo:h,onNavigateToModel:g})}function AR(e,t){return e.data===t.data&&e.heatmap===t.heatmap&&e.daily===t.daily&&e.families===t.families&&e.repos===t.repos&&e.models===t.models&&e.range===t.range&&e.onPresentationSettledChange===t.onPresentationSettledChange&&e.ingestProgress===t.ingestProgress&&e.isIngestActive===t.isIngestActive&&e.currentDateBucket===t.currentDateBucket&&e.clockNowMs===t.clockNowMs&&e.onDailyDebugStatsChange===t.onDailyDebugStatsChange&&e.onPresentationDateRangeChange===t.onPresentationDateRangeChange&&e.onNavigateToDailyDay===t.onNavigateToDailyDay&&e.onNavigateToRepo===t.onNavigateToRepo&&e.onNavigateToModel===t.onNavigateToModel}var jR=(0,b.memo)(kR,AR);function MR(e){return IR(e)}function NR(e,t,n,r=null){if(r!=null)return Math.max(0,Math.round(r));let i=Math.max(0,Math.round(n??0)),a=Math.max(i,Math.round(t??i)),o=IR(e);return Math.round(a+(i-a)*o)}function PR(e,t=!1){if(!t)return[`48%`,`72%`];let n=.9+IR(e)*.1;return[`${FR(48*n)}%`,`${FR(72*n)}%`]}function FR(e){return Math.round(e*100)/100}function IR(e){let t=Math.max(QI.videoExport?.chartIntroWindowMs??2200,1),n=Math.max(e||0,0),r=t/3;return Math.min(1,1-Math.exp(-n/Math.max(r,1)))}function LR(e,t){return e===`default`?t:e}function RR(e,t=`tokens`){return Object.entries(e||{}).map(([e,t])=>({key:e,...t})).sort((e,n)=>(n[t]||0)-(e[t]||0))}function zR({title:e,rows:t,valueKey:n=`tokens`,colorForKey:r,valueFormatter:i,chartMode:a=`default`,defaultMode:o=`bar`,emptyLabel:s=`No data`,renderTitleInChart:c=!0,barLabelProgress:l=1}){let u=LR(a,o),d=(t||[]).map((e,t)=>{let n=e?.key??e?.repo_label??e?.model_name??e?.family??null;return n?{...e,key:String(n),_idx:t}:null}).filter(Boolean),f={xAxis:{show:!1},yAxis:{show:!1},series:[],graphic:{type:`text`,left:`center`,top:`60%`,style:{text:s,fill:`#484f58`,fontSize:11}}};if(c&&(f.title={text:e,left:`center`,top:`middle`,textStyle:{fontSize:12,color:`#484f58`,fontWeight:`normal`}}),!d.length)return f;if(u===`donut`){let t=d.reduce((e,t)=>e+(t[n]||0),0),a={backgroundColor:`transparent`,...tL,tooltip:{trigger:`item`,appendToBody:!0,confine:!0,formatter:e=>`${e.name}: ${i(e.value)} (${e.percent}%)`},series:[{type:`pie`,...tL,radius:[`40%`,`62%`],center:[`50%`,`52%`],label:{show:!0,color:`#8b949e`,fontSize:10,formatter:`{b}`,overflow:`truncate`,width:90,...eL},labelLine:{lineStyle:{color:`#30363d`}},itemStyle:{borderColor:`#161b22`,borderWidth:2},data:d.map(e=>{let i=e[n]||0,a=(t>0?i/t:0)>=.01;return{name:e.key,value:i,itemStyle:{color:r(e.key)},label:{show:a,color:r(e.key)},labelLine:{show:a}}})}]};return c&&(a.title={text:e,left:`center`,top:8,textStyle:{fontSize:11,color:`#8b949e`,fontWeight:`normal`}}),a}let p=[...d].reverse(),m=Math.max(...d.map(e=>e[n]||0),0),h={backgroundColor:`transparent`,...nL,tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{let t=p[e?.[0]?.dataIndex];return t?`${t.key}: ${i(t[n]||0)}`:``}},grid:{left:65,right:50,top:c?35:20,bottom:20},xAxis:{type:`value`,splitNumber:4,max:m||1,axisLabel:{formatter:e=>i(e),color:`#484f58`,fontSize:10,showMinLabel:!0,showMaxLabel:!0},splitLine:{lineStyle:{color:[`transparent`,`#21262d`,`#21262d`,`#21262d`,`transparent`]}}},yAxis:{type:`category`,data:p.map(e=>e.key),axisLabel:{color:`#8b949e`,fontSize:10,overflow:`truncate`,width:55},axisTick:{show:!1},axisLine:{show:!1}},series:[{type:`bar`,data:p.map(e=>({value:e[n]||0,itemStyle:{color:r(e.key),borderRadius:[0,3,3,0]}})),barMaxWidth:14,label:{show:!0,position:`right`,formatter:e=>i((e.value??0)*l),color:`#8b949e`,fontSize:9,...rL}}]};return c&&(h.title={text:e,left:`center`,top:8,textStyle:{fontSize:11,color:`#8b949e`,fontWeight:`normal`}}),h}xD([wA,KA,vP,NF,IF,JI]);function BR(e){return YI(e)}function VR(e){return e==null||e===0?`—`:e>=1e3?`$`+(e/1e3).toFixed(1)+`K`:`$`+e.toFixed(2)}var HR=[`all`,`review`,`exploration`,`planning`,`memory`,`generic`],UR=[`review`,`exploration`,`planning`,`memory`,`generic`];function WR(e){if(!e.current)return;let t=e.current.getEchartsInstance().getDataURL({type:`png`,pixelRatio:2,backgroundColor:`#06080f`});Object.assign(document.createElement(`a`),{href:t,download:`codexmeter-repos.png`}).click()}function GR(e,t=`total`){let n=e?.data;return Array.isArray(n)?n:n?.[t]||n?.total||[]}function KR({repo:e,chartMode:t}){let[n,r]=(0,b.useState)(!1),i=(0,b.useMemo)(()=>RR(e.by_model),[e.by_model]),a=(0,b.useMemo)(()=>RR(e.by_family),[e.by_family]),o=zR({title:`Models in repo`,rows:i,valueKey:`tokens`,colorForKey:Ue,valueFormatter:BR,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1}),s=zR({title:`Work type in repo`,rows:a,valueKey:`tokens`,colorForKey:We,valueFormatter:BR,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1}),c=[...i.slice(0,4).map(e=>({...e,scope:`model`})),...a.slice(0,4).map(e=>({...e,scope:`family`}))];return(0,R.jsxs)(`div`,{className:`model-detail-wrap`,children:[(0,R.jsxs)(`div`,{className:`model-detail-charts`,children:[(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Models in repo`}),(0,R.jsx)(Ae,{echarts:YO,option:o,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Work type in repo`}),(0,R.jsx)(Ae,{echarts:YO,option:s,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]})]}),(0,R.jsx)(`div`,{className:`model-detail-footer`,children:(0,R.jsxs)(`button`,{type:`button`,className:`model-detail-toggle`,onClick:()=>r(e=>!e),"aria-expanded":n,children:[(0,R.jsx)(`span`,{className:`model-detail-toggle-text`,children:n?`Hide details`:`Show details`}),(0,R.jsx)(`span`,{className:`model-detail-toggle-arrow ${n?`expanded`:``}`,"aria-hidden":!0,children:`▼`})]})}),(0,R.jsx)(`div`,{className:`model-detail-summary-wrap ${n?`expanded`:``}`,children:(0,R.jsx)(`div`,{className:`model-detail-summary`,children:c.map(e=>(0,R.jsxs)(`div`,{className:`model-detail-summary-card`,children:[(0,R.jsxs)(`div`,{className:`model-detail-summary-head`,children:[(0,R.jsx)(`span`,{className:`model-detail-swatch`,style:{background:e.scope===`model`?Ue(e.key):We(e.key)}}),(0,R.jsx)(`span`,{className:`model-detail-summary-name`,title:e.key,children:e.key})]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[BR(e.tokens),` tokens`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[e.sessions||0,` sessions`]}),(0,R.jsx)(`div`,{className:`model-detail-summary-line`,children:VR(e.cost)})]},`${e.scope}-${e.key}`))})})]})}function qR({data:e,range:t=`total`,chartMode:n=`default`,focusRequest:r=null,onFocusRequestConsumed:i}){let[a,o]=(0,b.useState)(`all`),[s,c]=(0,b.useState)(null),l=(0,b.useRef)(null),u=(0,b.useRef)(null),d=(0,b.useMemo)(()=>GR(e,t),[e,t]),f=(0,b.useMemo)(()=>d?.length?a===`all`?d:d.map(e=>{let t=e.by_family?.[a];return t?{...e,tokens:t.tokens,cost:t.cost,sessions:t.sessions}:null}).filter(Boolean).sort((e,t)=>t.tokens-e.tokens):[],[d,a]);if((0,b.useEffect)(()=>{s&&(f.some(e=>e.repo_key===s)||c(null))},[s,f]),(0,b.useEffect)(()=>{if(!r){u.current=null;return}let{id:e,repoLabel:t}=r;if(!t||u.current===e)return;let n=d.find(e=>e.repo_label===t||e.repo_key===t);u.current=e,n&&c(n.repo_key),i?.()},[r,d,i]),!d?.length)return(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem`},children:`No data`});let p=f.slice(0,15),m=[...p].reverse(),h=Math.max(...p.map(e=>e.tokens||0),0),g=Math.max(250,p.length*28),_=(0,b.useMemo)(()=>({backgroundColor:`transparent`,...$I,tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{let t=p[p.length-1-e[0].dataIndex];return t?`<b>${t.repo_label}</b><br/>Tokens: ${BR(t.tokens)}<br/>Cost: ${VR(t.cost)}<br/>Sessions: ${t.sessions}`:``}},grid:{left:150,right:50,top:8,bottom:8},xAxis:{type:`value`,splitNumber:4,max:h||1,axisLabel:{formatter:e=>BR(e),color:`#484f58`,showMinLabel:!0,showMaxLabel:!0},splitLine:{lineStyle:{color:[`transparent`,`#21262d`,`#21262d`,`#21262d`,`transparent`]}}},yAxis:{type:`category`,data:m.map(e=>e.repo_label),axisLabel:{color:`#8b949e`,fontSize:11},axisTick:{show:!1},axisLine:{show:!1}},series:[{id:`repos-range-bars`,type:`bar`,universalTransition:!0,data:m.map(e=>({id:e.repo_key,name:e.repo_label,value:e.tokens,itemStyle:{color:ze(e.repo_label),borderRadius:[0,3,3,0]}})),barMaxWidth:16,label:{show:!0,position:`right`,formatter:e=>BR(e.value??0),color:`#8b949e`,fontSize:10,...eL}}]}),[h,m,p]),v=(0,b.useMemo)(()=>({click:e=>{if(e?.componentType===`series`&&e?.dataIndex!=null){let t=p[p.length-1-e.dataIndex];t&&c(e=>e===t.repo_key?null:t.repo_key)}}}),[p]);return(0,R.jsxs)(`div`,{className:`animate-in`,children:[(0,R.jsxs)(`div`,{className:`section-header`,children:[(0,R.jsx)(`span`,{className:`section-title`,children:`Repos`}),(0,R.jsx)(`div`,{className:`btn-group`,children:HR.map(e=>(0,R.jsx)(`button`,{className:`btn ${a===e?`active`:``}`,onClick:()=>o(e),children:e},e))})]}),(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`button`,{className:`export-btn`,onClick:()=>WR(l),children:`PNG`}),(0,R.jsx)(`div`,{style:{height:g,transition:`height 220ms cubic-bezier(0.22, 1, 0.36, 1)`},children:(0,R.jsx)(Ae,{ref:l,echarts:YO,option:_,style:{height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1,onEvents:v})})]}),(0,R.jsx)(`div`,{className:`table-wrap`,children:(0,R.jsxs)(`table`,{children:[(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{children:[(0,R.jsx)(`th`,{children:`Repo`}),(0,R.jsx)(`th`,{children:`Tokens`}),(0,R.jsx)(`th`,{children:`Cost`}),(0,R.jsx)(`th`,{children:`Sessions`}),(0,R.jsx)(`th`,{style:{width:200},children:`Families`})]})}),(0,R.jsx)(`tbody`,{children:f.map(e=>(0,R.jsxs)(b.Fragment,{children:[(0,R.jsxs)(`tr`,{onClick:()=>c(s===e.repo_key?null:e.repo_key),style:{cursor:`pointer`},children:[(0,R.jsxs)(`td`,{style:{fontWeight:500,color:`var(--text-primary)`},children:[(0,R.jsx)(`span`,{style:{display:`inline-block`,width:8,height:8,borderRadius:2,background:ze(e.repo_label),marginRight:8}}),e.repo_label]}),(0,R.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`},children:BR(e.tokens)}),(0,R.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`},children:VR(e.cost)}),(0,R.jsx)(`td`,{children:e.sessions}),(0,R.jsx)(`td`,{children:Object.entries(e.by_family||{}).sort(([e],[t])=>{let n=UR.indexOf(e),r=UR.indexOf(t);return(n===-1?999:n)-(r===-1?999:r)}).slice(0,3).map(([e])=>(0,R.jsx)(`span`,{className:`tag tag-${e}`,style:{marginRight:3},children:e},e))})]}),s===e.repo_key&&(0,R.jsx)(`tr`,{children:(0,R.jsx)(`td`,{colSpan:5,style:{background:`var(--bg-surface)`,padding:`0.75rem 1rem`},children:(0,R.jsx)(KR,{repo:e,chartMode:n})})})]},e.repo_key))})]})})]})}xD([wA,KA,vP,NF,IF,JI]);function JR(e){return YI(e)}function YR(e){return e==null||e===0?`—`:e>=1e3?`$`+(e/1e3).toFixed(1)+`K`:`$`+e.toFixed(2)}var XR=[`low`,`medium`,`high`,`xhigh`,`unknown`];function ZR(e){return[...e].sort(([e],[t])=>{let n=XR.indexOf((e||``).toLowerCase()),r=XR.indexOf((t||``).toLowerCase());return(n===-1?999:n)-(r===-1?999:r)})}function QR({model:e,fmt:t,chartMode:n}){let[r,i]=(0,b.useState)(!1),a=(0,b.useMemo)(()=>ZR(Object.entries(e.by_effort||{})),[e.by_effort]);if(!a.length)return null;let o=a.map(([e,t])=>({effort:e,sessions:t.sessions,tokens:t.tokens,avgTokens:t.sessions?Math.round(t.tokens/t.sessions):0,cost:t.cost,exactPriced:t.exact_priced||0,fallbackPriced:t.heuristic_priced||0})),s=o.map(e=>({key:e.effort,sessions:e.sessions,tokens:e.tokens,avgTokens:e.avgTokens})),c=zR({title:`Sessions by effort`,rows:s,valueKey:`sessions`,colorForKey:Ge,valueFormatter:e=>Math.round(e).toLocaleString(),chartMode:n,defaultMode:`donut`,renderTitleInChart:!1}),l=zR({title:`Tokens by effort`,rows:s,valueKey:`tokens`,colorForKey:Ge,valueFormatter:t,chartMode:n,defaultMode:`donut`,renderTitleInChart:!1}),u=zR({title:`Avg tokens per session`,rows:s,valueKey:`avgTokens`,colorForKey:Ge,valueFormatter:t,chartMode:n,defaultMode:`bar`,renderTitleInChart:!1});return(0,R.jsxs)(`div`,{className:`model-detail-wrap`,children:[(0,R.jsxs)(`div`,{className:`model-detail-charts`,children:[(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Sessions by effort`}),(0,R.jsx)(Ae,{echarts:YO,option:c,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Tokens by effort`}),(0,R.jsx)(Ae,{echarts:YO,option:l,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-bar`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Avg tokens per session`}),(0,R.jsx)(Ae,{echarts:YO,option:u,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]})]}),(0,R.jsx)(`div`,{className:`model-detail-footer`,children:(0,R.jsxs)(`button`,{type:`button`,className:`model-detail-toggle`,onClick:()=>i(e=>!e),"aria-expanded":r,children:[(0,R.jsx)(`span`,{className:`model-detail-toggle-text`,children:r?`Hide details`:`Show details`}),(0,R.jsx)(`span`,{className:`model-detail-toggle-arrow ${r?`expanded`:``}`,"aria-hidden":!0,children:`▼`})]})}),(0,R.jsx)(`div`,{className:`model-detail-summary-wrap ${r?`expanded`:``}`,children:(0,R.jsx)(`div`,{className:`model-detail-summary`,children:o.map(e=>(0,R.jsxs)(`div`,{className:`model-detail-summary-card`,children:[(0,R.jsxs)(`div`,{className:`model-detail-summary-head`,children:[(0,R.jsx)(`span`,{className:`model-detail-swatch`,style:{background:Ge(e.effort)}}),(0,R.jsx)(`span`,{className:`model-detail-summary-name`,title:e.effort,children:e.effort})]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[e.sessions,` sessions`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[t(e.tokens),` tokens`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[t(e.avgTokens),` avg/session`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[YR(e.cost),` cost`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[e.exactPriced,` exact · `,e.fallbackPriced,` fallback`]})]},e.effort))})})]})}function $R(e){if(!e.current)return;let t=e.current.getEchartsInstance().getDataURL({type:`png`,pixelRatio:2,backgroundColor:`#06080f`});Object.assign(document.createElement(`a`),{href:t,download:`codexmeter-models.png`}).click()}function ez(e,t=`total`){let n=e?.data;return Array.isArray(n)?n:n?.[t]||n?.total||[]}function tz({data:e,range:t=`total`,chartMode:n=`default`,focusRequest:r=null,onFocusRequestConsumed:i}){let[a,o]=(0,b.useState)(null),s=(0,b.useRef)(null),c=(0,b.useRef)(null),l=(0,b.useMemo)(()=>ez(e,t),[e,t]);if((0,b.useEffect)(()=>{a&&(l.some(e=>e.model_name===a)||o(null))},[a,l]),(0,b.useEffect)(()=>{if(!r){c.current=null;return}let{id:e,modelName:t}=r;if(!t||c.current===e)return;let n=l.find(e=>e.model_name===t);c.current=e,n&&o(n.model_name),i?.()},[r,l,i]),!l?.length)return(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem`},children:`No data`});let u=[...l].reverse(),d=Math.max(...l.map(e=>e.tokens||0),0),f=Math.max(180,l.length*34),p=(0,b.useMemo)(()=>({backgroundColor:`transparent`,...$I,tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{let t=l[l.length-1-e[0].dataIndex];return`<b>${t.model_name}</b><br/>Tokens: ${JR(t.tokens)}<br/>Cost: ${YR(t.cost)}<br/>Sessions: ${t.sessions}`}},grid:{left:160,right:50,top:8,bottom:8},xAxis:{type:`value`,splitNumber:4,max:d||1,axisLabel:{formatter:e=>JR(e),color:`#484f58`,fontSize:10,showMinLabel:!0,showMaxLabel:!0},splitLine:{lineStyle:{color:[`transparent`,`#21262d`,`#21262d`,`#21262d`,`transparent`]}}},yAxis:{type:`category`,data:u.map(e=>e.model_name),axisLabel:{color:`#8b949e`,fontSize:11},axisTick:{show:!1},axisLine:{show:!1}},series:[{id:`models-range-bars`,type:`bar`,universalTransition:!0,data:u.map(e=>({id:e.model_name,name:e.model_name,value:e.tokens,itemStyle:{color:Ue(e.model_name),borderRadius:[0,3,3,0]}})),barMaxWidth:18,label:{show:!0,position:`right`,formatter:e=>JR(e.value??0),color:`#8b949e`,fontSize:10,...eL}}]}),[d,l,u]),m=(0,b.useMemo)(()=>({click:e=>{if(e?.componentType===`series`&&e?.dataIndex!=null){let t=l[l.length-1-e.dataIndex];t&&o(e=>e===t.model_name?null:t.model_name)}}}),[l]);return(0,R.jsxs)(`div`,{className:`animate-in`,children:[(0,R.jsx)(`div`,{className:`section-header`,children:(0,R.jsx)(`span`,{className:`section-title`,children:`Models`})}),(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`button`,{className:`export-btn`,onClick:()=>$R(s),children:`PNG`}),(0,R.jsx)(`div`,{style:{height:f,transition:`height 220ms cubic-bezier(0.22, 1, 0.36, 1)`},children:(0,R.jsx)(Ae,{ref:s,echarts:YO,option:p,style:{height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1,onEvents:m})})]}),(0,R.jsx)(`div`,{className:`table-wrap`,children:(0,R.jsxs)(`table`,{children:[(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{children:[(0,R.jsx)(`th`,{children:`Model`}),(0,R.jsx)(`th`,{children:`Tokens`}),(0,R.jsx)(`th`,{children:`Cost`}),(0,R.jsx)(`th`,{children:`Sessions`}),(0,R.jsx)(`th`,{children:`Effort Levels`})]})}),(0,R.jsx)(`tbody`,{children:l.map(e=>(0,R.jsxs)(b.Fragment,{children:[(0,R.jsxs)(`tr`,{onClick:()=>o(a===e.model_name?null:e.model_name),style:{cursor:`pointer`},children:[(0,R.jsxs)(`td`,{style:{fontWeight:500,color:`var(--text-primary)`,fontFamily:`var(--font-mono)`},children:[(0,R.jsx)(`span`,{style:{display:`inline-block`,width:8,height:8,borderRadius:2,background:Ue(e.model_name),marginRight:8}}),e.model_name]}),(0,R.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`},children:JR(e.tokens)}),(0,R.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`},children:YR(e.cost)}),(0,R.jsx)(`td`,{children:e.sessions}),(0,R.jsx)(`td`,{children:Object.keys(e.by_effort).length})]}),a===e.model_name&&(0,R.jsx)(`tr`,{children:(0,R.jsx)(`td`,{colSpan:5,style:{background:`var(--bg-surface)`,padding:`0.75rem 1rem`},children:(0,R.jsx)(QR,{model:e,fmt:JR,chartMode:n})})})]},e.model_name))})]})})]})}xD([wA,Wk,KA,vP,NF,IF,cI,RI,IP,JI]);function nz(e){return YI(e)}function rz(e){return e==null||e===0?`$0`:`$`+e.toFixed(2)}function iz(e){return e?(e/3600).toFixed(1)+`h`:`0h`}var az=[{key:`tokens`,label:`Tokens`,fn:nz},{key:`elapsed_seconds`,label:`Time`,fn:iz},{key:`cost`,label:`Cost`,fn:rz}],oz=[{key:`model`,label:`By Model`},{key:`family`,label:`By Work`}],sz=[{key:`absolute`,label:`Absolute`},{key:`relative`,label:`Relative`}];function cz(e){if(!e.current)return;let t=e.current.getEchartsInstance().getDataURL({type:`png`,pixelRatio:2,backgroundColor:`#06080f`});Object.assign(document.createElement(`a`),{href:t,download:`codexmeter-daily.png`}).click()}function lz(e,t){if(!t)return{startValue:0,endValue:0};let n=t;return e===`d7`&&(n=7),e===`d30`&&(n=30),{startValue:t-Math.max(1,Math.min(n,t)),endValue:t-1}}var uz=280,dz={left:70,right:20,bottom:12,height:24};function fz(e,t,n){let r=e?.batch?.[0]??e,i=Math.max(0,t.length-1),a,o;return r&&typeof r.startValue==`number`&&typeof r.endValue==`number`?(a=r.startValue,o=r.endValue):r&&typeof r.start==`number`&&typeof r.end==`number`&&t.length?(a=Math.round(r.start/100*i),o=Math.round(r.end/100*i)):r&&typeof r.startValue==`string`&&typeof r.endValue==`string`&&t.length?(a=t.indexOf(r.startValue),o=t.indexOf(r.endValue),a<0&&(a=n.startValue),o<0&&(o=n.endValue)):(a=n.startValue,o=n.endValue),a=Math.max(0,Math.min(i,Math.floor(a))),o=Math.max(0,Math.min(i,Math.floor(o))),a>o?{startValue:o,endValue:a}:{startValue:a,endValue:o}}function pz(e,t,n,r,i){if(cancelAnimationFrame(r.current),r.current=0,Math.round(e.startValue)===Math.round(t.startValue)&&Math.round(e.endValue)===Math.round(t.endValue))return;let a=0,o=s=>{a||=s;let c=Math.min(1,(s-a)/i),l=1-(1-c)**3;n({startValue:Math.round(e.startValue+(t.startValue-e.startValue)*l),endValue:Math.round(e.endValue+(t.endValue-e.endValue)*l)}),r.current=c<1?requestAnimationFrame(o):0};return r.current=requestAnimationFrame(o),()=>{cancelAnimationFrame(r.current),r.current=0}}function mz(e,t){return{left:dz.left,right:e-dz.right,top:t-dz.bottom-dz.height,bottom:t-dz.bottom}}function hz(e,t,n,r){let i=mz(e,t),a=Math.max(n-1,1),o=Math.max(0,Math.min(1,(r?.startValue??0)/a)),s=Math.max(0,Math.min(1,(r?.endValue??a)/a)),c=Math.max(0,i.right-i.left);return{...i,selectionLeft:i.left+c*Math.min(o,s),selectionRight:i.left+c*Math.max(o,s)}}function gz(e,t){return e===`d7`?44:e===`d30`?22:t<=14?36:t<=31?18:14}function _z(e,t){return e===`d7`?8:e===`d30`?3:t<=31?2:t<=90?1:0}function vz(e,t){return e===`d7`?`72%`:e===`d30`?`54%`:t<=14?`64%`:t<=31?`48%`:`36%`}function yz(e,t){return e?t===`elapsed_seconds`?e.elapsed_seconds||0:t===`cost`?e.cost||0:e.tokens||0:0}function bz(e,t){if(!e)return`Day detail`;let n=az.find(e=>e.key===t)||az[0],r=new Date(`${e.date}T00:00:00`).toLocaleDateString(`en-US`,{weekday:`long`}),i=n.fn(yz(e,t));return`Day detail: ${r} - ${e.date} - ${n.label}: ${i}`}function xz(e,t){let n=e.length;if(n===0)return null;let r=Array(n),i=Array(n),a=[];for(let t=0;t<n;t++){for(;a.length&&e[a[a.length-1]]>=e[t];)a.pop();r[t]=a.length?a[a.length-1]:-1,a.push(t)}a.length=0;for(let t=n-1;t>=0;t--){for(;a.length&&e[a[a.length-1]]>=e[t];)a.pop();i[t]=a.length?a[a.length-1]:n,a.push(t)}let o=0,s=0;for(let t=0;t<n;t++){let n=(i[t]-r[t]-1)*e[t];n>o&&(o=n,s=t)}return[(r[s]+i[s])/2,t[s]+e[s]/2]}function Sz({day:e,chartMode:t}){let n=(0,b.useMemo)(()=>RR(e.by_model),[e.by_model]),r=(0,b.useMemo)(()=>RR(e.by_repo),[e.by_repo]),i=(0,b.useMemo)(()=>RR(e.by_family),[e.by_family]),a=zR({title:`Models`,rows:n,valueKey:`tokens`,colorForKey:Ue,valueFormatter:nz,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1}),o=zR({title:`Repos`,rows:r,valueKey:`tokens`,colorForKey:ze,valueFormatter:nz,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1}),s=zR({title:`Work Type`,rows:i,valueKey:`tokens`,colorForKey:We,valueFormatter:nz,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1});return(0,R.jsx)(`div`,{className:`model-detail-wrap`,children:(0,R.jsxs)(`div`,{className:`model-detail-charts`,children:[(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Repos`}),(0,R.jsx)(Ae,{echarts:YO,option:o,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Models`}),(0,R.jsx)(Ae,{echarts:YO,option:a,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Work Type`}),(0,R.jsx)(Ae,{echarts:YO,option:s,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]})]})})}var Cz=b.memo(function({daily:e,range:t,metric:n,split:r,displayMode:i,onSelectDate:a,navigateToDayRequest:o,onNavigateToDayConsumed:s}){let[c,l]=(0,b.useState)({startValue:0,endValue:0}),u=(0,b.useRef)(null),d=(0,b.useRef)(c);d.current=c;let f=(0,b.useRef)(0),p=(0,b.useRef)(null),m=(0,b.useRef)(0),h=(0,b.useRef)(!1),g=(0,b.useRef)(null),_=(0,b.useRef)(null),v=(0,b.useRef)(0),y=(0,b.useMemo)(()=>e.map(e=>e.date),[e]),x=az.find(e=>e.key===n),S=(0,b.useMemo)(()=>lz(t,y.length),[t,y.length]);(0,b.useEffect)(()=>{if(!y.length)return;let e=lz(t,y.length),n=_.current===null,r=!n&&_.current!==t,i=!n&&v.current!==y.length;if(_.current=t,v.current=y.length,cancelAnimationFrame(m.current),m.current=0,n){l(e);return}if(r)return pz(d.current,e,l,m,uz);i&&l(e)},[t,y.length]),(0,b.useEffect)(()=>()=>{cancelAnimationFrame(f.current),f.current=0,g.current?.(),g.current=null},[]);let C=(0,b.useCallback)(()=>{let e=u.current?.getEchartsInstance?.();if(!e)return;g.current?.();let t=e.getZr(),n=n=>{let r=n?.offsetX??n?.zrX,i=n?.offsetY??n?.zrY;if(!Number.isFinite(r)||!Number.isFinite(i)){t.setCursorStyle(`default`);return}let a=hz(e.getWidth(),e.getHeight(),y.length,d.current);if(!(r>=a.left&&r<=a.right&&i>=a.top&&i<=a.bottom)){t.setCursorStyle(`default`);return}if(r>=a.selectionLeft&&r<=a.selectionRight){t.setCursorStyle(h.current?`grabbing`:`grab`);return}t.setCursorStyle(`ew-resize`)},r=e=>n(e),i=t=>{let r=t?.offsetX??t?.zrX,i=t?.offsetY??t?.zrY;if(!Number.isFinite(r)||!Number.isFinite(i))return;let a=hz(e.getWidth(),e.getHeight(),y.length,d.current);h.current=r>=a.selectionLeft&&r<=a.selectionRight&&i>=a.top&&i<=a.bottom,n(t)},a=e=>{h.current=!1,n(e)},o=()=>{h.current=!1,t.setCursorStyle(`default`)};t.on(`mousemove`,r),t.on(`mousedown`,i),t.on(`mouseup`,a),t.on(`globalout`,o),g.current=()=>{t.off(`mousemove`,r),t.off(`mousedown`,i),t.off(`mouseup`,a),t.off(`globalout`,o),t.setCursorStyle(`default`)}},[y.length]),w=(0,b.useRef)(null);(0,b.useEffect)(()=>{if(!o){w.current=null;return}let{id:t,centerDate:n}=o;if(!n||!e.length||w.current===t)return;let r=e.map(e=>e.date),i=r.indexOf(n);if(i<0){s?.();return}w.current=t;let c=Math.max(0,i-3),u=Math.min(r.length-1,i+3);cancelAnimationFrame(m.current),m.current=0,l({startValue:c,endValue:u}),a(n),s?.()},[o,e,a,s]);let T=(0,b.useMemo)(()=>{if(!y.length)return 0;let e=Math.max(0,Math.min(y.length-1,Math.floor(c.startValue??S.startValue??0))),t=Math.max(e,Math.min(y.length-1,Math.floor(c.endValue??S.endValue??y.length-1)));return Math.max(1,t-e+1)},[y.length,c,S]),E=(0,b.useMemo)(()=>{if(!y.length)return{startIdx:0,endIdx:-1};let e=Math.max(0,Math.min(y.length-1,Math.floor(c.startValue??S.startValue??0)));return{startIdx:e,endIdx:Math.max(e,Math.min(y.length-1,Math.floor(c.endValue??S.endValue??y.length-1)))}},[y.length,c,S]),D=(0,b.useMemo)(()=>gz(t,T),[t,T]),O=(0,b.useMemo)(()=>_z(t,T),[t,T]),k=(0,b.useMemo)(()=>vz(t,T),[t,T]),A=(0,b.useMemo)(()=>xL(e,{split:r,metric:n}),[e,r,n]),j=A.groups,ee=(0,b.useMemo)(()=>A.series.map(e=>({name:e.key,values:e.data})),[A.series]),te=A.dayTotals,M=(0,b.useMemo)(()=>{if(!te.length||E.endIdx<E.startIdx)return 0;let e=0;for(let t=E.startIdx;t<=E.endIdx;t++)e=Math.max(e,te[t]||0);return e},[te,E]),N=i===`relative`,P=(0,b.useMemo)(()=>({dates:y,series:ee.map(e=>({key:e.name,label:e.name,data:e.values}))}),[y,ee]),F=`${n}\0${r}`,ne=JL(P,!N,F),re=(0,b.useMemo)(()=>new Map((ne?.series||[]).map(e=>[e.key,e])),[ne]),ie=(0,b.useMemo)(()=>{if(N)return te;let e=y.length,t=Array(e).fill(0);for(let n of ne?.series||[])for(let r=0;r<e;r++)t[r]+=n.data[r]||0;return t},[N,te,ne,y.length]),ae=(0,b.useMemo)(()=>{if(i===`relative`)return 100;if(M)return Math.ceil(M*1.1)},[i,M]),oe=(0,b.useMemo)(()=>{if(!N)return null;if(!ee.length)return[];let e=ee.map(e=>{let t=e.values.map((e,t)=>te[t]>0?e/te[t]*100:0);for(let e=1;e<t.length;e++)te[e]===0&&(t[e]=t[e-1]);return t}),t=e[0].map(()=>0);return e.map((e,n)=>{let r=[...t];return t=t.map((t,n)=>t+e[n]),{values:e,prevStack:r}})},[N,ee,te]),se=(0,b.useMemo)(()=>N?j.map((e,t)=>{let n=r===`model`?Ue(e):We(e);if(!ee[t])return null;let i=oe[t];return i?{id:`daily-${r}-${e}`,name:e,type:`line`,stack:`total`,smooth:.2,areaStyle:{opacity:1},lineStyle:{width:0},symbol:`none`,data:i.values,itemStyle:{color:n}}:null}).filter(Boolean):j.map(e=>{let t=r===`model`?Ue(e):We(e),n=re.get(e)?.data??y.map(()=>0);return{id:`daily-${r}-${e}`,name:e,type:`bar`,stack:`total`,data:n,itemStyle:{color:t},barWidth:k,barMaxWidth:D,barMinWidth:O}}),[N,j,r,oe,ee,re,y,k,D,O]),ce=(0,b.useMemo)(()=>!N||!oe?[]:oe.map((e,t)=>{let n=ee[t],i=Be(r===`model`?Ue(n.name):We(n.name)),a=xz(e.values,e.prevStack);return!a||Math.max(...e.values)<8?null:{name:n.name,labelColor:i,coord:a}}).filter(Boolean),[N,oe,ee,r]),le=(0,b.useCallback)(()=>{if(!u.current)return;let e=u.current.getEchartsInstance();if(!N||ce.length===0){e.setOption({graphic:{elements:[]}},{notMerge:!1});return}let t=ce.map(t=>{let[n,r]=e.convertToPixel({xAxisIndex:0,yAxisIndex:0},t.coord);return{type:`text`,left:n,top:r,style:{text:t.name,fill:t.labelColor,fontSize:10,fontWeight:500,textAlign:`center`,textVerticalAlign:`middle`},z:10,silent:!0}});e.setOption({graphic:{elements:t}},{notMerge:!1})},[N,ce]);(0,b.useEffect)(()=>{let e=setTimeout(le,150);return()=>clearTimeout(e)},[N,ce,le]),(0,b.useEffect)(()=>{let e=()=>le();return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[le]),(0,b.useEffect)(()=>{C()},[C,c]);let I={backgroundColor:`transparent`,tooltip:{trigger:`axis`,axisPointer:{type:N?`line`:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{if(!e?.length)return``;let t=e[0]?.dataIndex,n=ie,r=t==null?0:n[t],a=t;if(i===`relative`&&r===0&&t!=null){for(let e=t-1;e>=0;e--)if(n[e]>0){a=e;break}}let o=i===`relative`&&r===0?n[a]??0:r,s=`<b>${e[0]?.axisValue??``}</b><br/>`,c=[...e].filter(e=>e.value>0).sort((e,t)=>(t.value||0)-(e.value||0));for(let e of c){let t=i===`relative`?ee.find(t=>t.name===e.seriesName)?.values[a]??0:e.value;i===`relative`?s+=`${e.marker} ${e.seriesName}: ${e.value.toFixed(1)}% (${x.fn(t)})<br/>`:s+=`${e.marker} ${e.seriesName}: ${x.fn(e.value)}<br/>`}return s+=i===`relative`?`<b>Total: 100% (${x.fn(o)})</b>`:`<b>Total: ${x.fn(r)}</b>`,s}},legend:{data:j,textStyle:{color:`#8b949e`,fontSize:10},top:0,itemWidth:10,itemHeight:10},grid:{left:dz.left,right:dz.right,top:35,bottom:55},dataZoom:[{type:`slider`,startValue:c.startValue,endValue:c.endValue,left:dz.left,right:dz.right,bottom:dz.bottom,height:dz.height,borderColor:`#30363d`,fillerColor:`rgba(99, 102, 241, 0.08)`,handleStyle:{color:`#6366f1`},textStyle:{color:`#484f58`}}],xAxis:{type:`category`,data:y,boundaryGap:i!==`relative`,axisLabel:{color:`#484f58`,fontSize:10,rotate:45},axisTick:{show:!1},axisLine:{lineStyle:{color:`#30363d`}}},yAxis:{type:`value`,min:0,max:i===`relative`?100:ae,scale:!1,axisLabel:{formatter:i===`relative`?e=>e+`%`:e=>x.fn(e),color:`#484f58`},splitLine:{lineStyle:{color:`#21262d`}}},series:se,...N?$I:pL};return(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`button`,{className:`export-btn`,onClick:()=>cz(u),children:`PNG`}),(0,R.jsx)(Ae,{ref:u,echarts:YO,option:I,style:{height:400},theme:`dark`,notMerge:!1,replaceMerge:[`series`,`legend`,`graphic`],lazyUpdate:!1,onChartReady:()=>{le(),C()},onEvents:{click:e=>{let t=e?.axisValue||e?.name;t&&a(t)},datazoom:e=>{p.current=fz(e,y,d.current),f.current||=requestAnimationFrame(()=>{f.current=0,p.current&&=(l(p.current),null),N&&le()})}}})]})});function wz({data:e,range:t=`total`,chartMode:n=`default`,navigateToDayRequest:r=null,onNavigateToDayConsumed:i}){let[a,o]=(0,b.useState)(`tokens`),[s,c]=(0,b.useState)(`model`),[l,u]=(0,b.useState)(`absolute`),[d,f]=(0,b.useState)(null);if(!e?.data?.length)return(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem`},children:`No data`});let p=(0,b.useMemo)(()=>vL(e),[e]);(0,b.useEffect)(()=>{!d&&p[0]&&f(p[p.length-1]?.date||p[0]?.date)},[p,d]);let m=(0,b.useCallback)(e=>{e&&f(e)},[]),h=p.find(e=>e.date===d)||null;return(0,R.jsxs)(`div`,{className:`animate-in`,children:[(0,R.jsxs)(`div`,{className:`section-header`,children:[(0,R.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`0.75rem`},children:(0,R.jsx)(`span`,{className:`section-title`,children:`Daily Usage`})}),(0,R.jsxs)(`div`,{style:{display:`flex`,gap:`0.5rem`},children:[(0,R.jsx)(`div`,{className:`btn-group`,children:az.map(e=>(0,R.jsx)(`button`,{className:`btn ${a===e.key?`active`:``}`,onClick:()=>o(e.key),children:e.label},e.key))}),(0,R.jsx)(`div`,{className:`btn-group`,children:oz.map(e=>(0,R.jsx)(`button`,{className:`btn ${s===e.key?`active`:``}`,onClick:()=>c(e.key),children:e.label},e.key))}),(0,R.jsx)(`div`,{className:`btn-group`,children:sz.map(e=>(0,R.jsx)(`button`,{className:`btn ${l===e.key?`active`:``}`,onClick:()=>u(e.key),children:e.label},e.key))})]})]}),(0,R.jsx)(Cz,{daily:p,range:t,metric:a,split:s,displayMode:l,onSelectDate:m,navigateToDayRequest:r,onNavigateToDayConsumed:i}),h&&(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.75rem`},children:bz(h,a)}),(0,R.jsx)(Sz,{day:h,chartMode:n})]})]})}function Tz(){return{accessor:(e,t)=>typeof e==`function`?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function Ez(e,t){return typeof e==`function`?e(t):e}function Dz(e,t){return n=>{t.setState(t=>({...t,[e]:Ez(n,t[e])}))}}function Oz(e){return e instanceof Function}function kz(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function Az(e,t){let n=[],r=e=>{e.forEach(e=>{n.push(e);let i=t(e);i!=null&&i.length&&r(i)})};return r(e),n}function jz(e,t,n){let r=[],i;return a=>{let o;n.key&&n.debug&&(o=Date.now());let s=e(a);if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),i=t(...s),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
28
+ `)}function oR(e){let t=Math.max(1,e||1),n=300/t,r=t>80?.68:t>45?.78:.88,i=Math.max(1.25,Math.min(24,n*r));return{barWidth:i,barMaxWidth:Math.max(4,Math.min(28,i*1.2))}}function sR(e){let{dates:t,series:n}=xL(e,{split:`model`,metric:`tokens`});return{dates:t,series:n}}function cR(e){return Math.max(0,Math.min(1,e))}function lR(e,t,n=0){if(!e?.length)return 0;if(!t)return e.length-1;let r=uR(e,t),i=e.length-1,a=cR(((n||0)-.08)/.92)**.82,o=r+(i-r)*a;return Math.max(r,Math.min(i,Math.floor(o+32)))}function uR(e,t){return e?.length?t?Math.min(e.length-1,6):e.length-1:0}function dR(e,t,n,r){if(!r)return e;let i=Math.max(0,(n||1)-1),a=Math.max(0,Math.min(i,Number.isFinite(t)?t:0));return a>=i-.01?i:Math.max(e,Math.min(i,a+1.25))}function fR(e,t){if(!e?.dates?.length)return{dates:[],series:[]};let n=e.dates.length-1,r=Math.max(0,Math.min(n,t||0)),i=Math.floor(r),a=Math.min(n,Math.ceil(r)),o=r-i,s=Math.max(1,a+1),c=e.dates.slice(0,s);return{dates:c,series:(e.series||[]).map(e=>({...e,data:c.map((t,n)=>{let r=e.data?.[n]||0;return n<=i?r:r*o})}))}}function pR(e,t,n){if(!e?.length||!t?.length)return Math.max(0,Math.min(Math.max((t?.length||1)-1,0),n||0));let r=e.length-1,i=Math.max(0,Math.min(r,Number.isFinite(n)?n:r)),a=Math.floor(i),o=Math.min(r,Math.ceil(i)),s=i-a,c=new Map(t.map((e,t)=>[e,t])),l=c.get(e[a]);if(l==null)return Math.max(0,Math.min(t.length-1,i));if(o===a)return l;let u=c.get(e[o]);return u==null?Math.max(0,Math.min(t.length-1,l+s)):l+(u-l)*s}function mR(e,t){return!e||!t?e||{}:Object.fromEntries(Object.entries(e).filter(([e])=>String(e)<=String(t)))}function hR(e,t){if(!t?.dates?.length)return e||{dates:[],series:[]};if(!e?.dates?.length)return t;let n=[...new Set([...e.dates,...t.dates])].sort(),r=new Map(e.dates.map((e,t)=>[e,t])),i=new Map(t.dates.map((e,t)=>[e,t])),a=[],o=new Map,s=new Map;for(let t of e.series||[])o.set(t.key,t);for(let e of t.series||[])s.set(e.key,e),a.push(e.key);for(let t of e.series||[])s.has(t.key)||a.push(t.key);return{dates:n,series:a.map(e=>{let t=s.get(e),a=o.get(e);return{key:e,label:t?.label||a?.label||e,data:n.map(e=>{let n=i.get(e);if(t&&n!==void 0)return t.data?.[n]||0;let o=r.get(e);return a&&o!==void 0&&a.data?.[o]||0})}})}}function gR(e,{ingestProgress:t=0,isIngestActive:n=!1}={}){let r=(0,b.useRef)({dates:[],series:[]}),i=(0,b.useMemo)(()=>n?(r.current=hR(r.current,e),r.current):(r.current=e||{dates:[],series:[]},r.current),[e,n]),a=(0,b.useMemo)(()=>lR(i?.dates||[],n,t),[i?.dates,t,n]),[o,s]=(0,b.useState)(()=>uR(i?.dates||[],n)),c=dR(a,o,i?.dates?.length||0,n),l=!!(n&&(i?.dates?.length||0)>0&&o>=i.dates.length-1-.01),[u,d]=(0,b.useState)(0),f=(0,b.useRef)(o),p=(0,b.useRef)(0),m=(0,b.useRef)(i?.dates||[]),h=(0,b.useRef)(0),g=(0,b.useRef)(0);f.current=o;let _=e=>{let t=Math.round(Math.max(0,e||0)*10)/10;Math.abs(p.current-t)<.05||(p.current=t,d(t))};return(0,b.useLayoutEffect)(()=>{let e=i?.dates||[],t=m.current||[];if(t===e||(m.current=e,!n))return;let r=pR(t,e,f.current);Math.abs(r-f.current)<.001||(f.current=r,s(r))},[i?.dates,n]),(0,b.useEffect)(()=>{let e=i?.dates?.length||0;if(!e){_(0);return}if(!n){f.current=c,s(c),_(0);return}cancelAnimationFrame(h.current),h.current=0,g.current=0;let t=r=>{g.current||=r;let i=Math.max(1,r-g.current);g.current=r;let o=f.current,c=dR(a,o,e,n),l=c-o;if(Math.abs(l)<=.01){f.current=c,s(c),_(0),h.current=0;return}let u=Math.abs(l),d=Math.min(4.2,Math.max(.65,1.15+Math.max(0,u-8)*.11));_(d);let p=o+Math.sign(l)*Math.min(Math.abs(l),d*i/1e3);f.current=p,s(p),h.current=requestAnimationFrame(t)};return h.current=requestAnimationFrame(t),()=>{cancelAnimationFrame(h.current),h.current=0}},[i?.dates?.length,a,n]),(0,b.useEffect)(()=>()=>{cancelAnimationFrame(h.current),h.current=0},[]),{daily:(0,b.useMemo)(()=>fR(i,o),[i,o]),cursor:o,rawTargetIndex:a,sourceDaily:i,speedDaysPerSecond:u,targetIndex:c,waitingForDailyData:l}}function _R(e,t,n=null,r=!1){if(!t)return{startValue:0,endValue:0};if(r&&Number.isFinite(n)){let r=t;e===`d7`&&(r=7),e===`d30`&&(r=30);let i=e===`d30`?29:6,a=Math.max(t-1,i),o=Math.max(i,Math.min(a,n)),s=e===`total`?Math.max(7,o+1):Math.max(1,Math.min(r,o+1));return{startValue:e===`total`?0:Math.max(0,o-s+1),endValue:o}}let i=t;return e===`d7`&&(i=7),e===`d30`&&(i=30),{startValue:t-Math.max(1,Math.min(i,t)),endValue:t-1}}function vR(e,t,n,r,i){if(cancelAnimationFrame(r.current),r.current=0,Math.abs(e.startValue-t.startValue)<.01&&Math.abs(e.endValue-t.endValue)<.01)return;let a=0,o=s=>{a||=s;let c=Math.min(1,(s-a)/i),l=1-(1-c)**3;n({startValue:e.startValue+(t.startValue-e.startValue)*l,endValue:e.endValue+(t.endValue-e.endValue)*l}),r.current=c<1?requestAnimationFrame(o):0};return r.current=requestAnimationFrame(o),()=>{cancelAnimationFrame(r.current),r.current=0}}function yR(e,t,{hideLabels:n=!1}={}){return e.map(e=>{let r=t(e.key);return{name:e.label,value:e.tokens,itemStyle:{color:r},label:{show:!n,color:r},labelLine:{show:!n}}})}function bR(e,t){return e.map(e=>({...e,tokens:Math.max(0,(e.tokens||0)*t)}))}function xR(e,t){let n=new Map((t||[]).map(e=>[e.key,e])),r=[],i=new Set;for(let t of e||[]){if(!t?.key||i.has(t.key))continue;i.add(t.key);let e=n.get(t.key);r.push({key:t.key,label:e?.label||t.label,tokens:Math.max(0,e?.tokens??t.tokens??0)})}for(let e of t||[])!e?.key||i.has(e.key)||(i.add(e.key),r.push({key:e.key,label:e.label,tokens:Math.max(0,e.tokens||0)}));return r}function SR(e){return e.length===1?e=>{let t=e.rect||{x:0,y:0,width:0,height:0},n=e.labelRect||{width:0,height:0};return{x:t.x+t.width+14,y:t.y+t.height/2-n.height/2,align:`left`,verticalAlign:`middle`,moveOverlap:`shiftY`,hideOverlap:!1}}:null}function CR({daily:e,fullDaily:t=null,elasticDaily:n=null,range:r=`total`,isIngestActive:i=!1,currentDateBucket:a=null,exportMode:o=!1,exportPlayback:s=!1,onDayClick:c}){let l=t||e;if(!l?.dates?.length)return(0,R.jsxs)(`div`,{className:`overview-daily-spark overview-daily-spark-empty`,children:[(0,R.jsx)(`span`,{className:`overview-daily-spark-title`,children:`Daily Usage`}),(0,R.jsx)(`span`,{className:`overview-daily-spark-empty-text`,children:`No daily data`})]});let u=n||{daily:l,cursor:l.dates.length-1,rawTargetIndex:l.dates.length-1,sourceDaily:l,targetIndex:l.dates.length-1},d=u.daily,f=!o&&!s&&i,p=(0,b.useMemo)(()=>_R(r,d.dates.length,u.cursor,f),[r,d.dates.length,u.cursor,f]),[m,h]=(0,b.useState)(()=>_R(r,d.dates.length)),g=(0,b.useRef)(p),_=(0,b.useRef)(f),v=(0,b.useRef)(m),y=(0,b.useRef)(0),x=JL(d,f,`overview-daily-spark`),S=f?p:_.current?g.current:m;v.current=S,(0,b.useEffect)(()=>{if(f){g.current=p,_.current=!0;return}let e=_R(r,d.dates.length);return _.current&&=(v.current=g.current,h(g.current),!1),vR(v.current,e,h,y,220)},[f,p,r,d.dates.length]),(0,b.useEffect)(()=>()=>{cancelAnimationFrame(y.current),y.current=0},[]);let{startValue:C,endValue:w}=S,T=Math.max(1,w-C+1||d.dates.length),{barWidth:E,barMaxWidth:D}=oR(T),O=f,k=Math.max(-.5,C-.5),A=Math.max(k+1,w+.5),j=e=>d.dates[Math.max(0,Math.min(d.dates.length-1,Math.round(e)))],ee=(0,b.useRef)(``);(0,b.useEffect)(()=>{let e=ZL(l,a),t=ZL(d,a),n=Math.round(C),r=Math.round(w),i=[a,u.targetIndex,e.days,e.lastNonzero,e.overreachDays,t.days,t.lastNonzero,t.overreachDays,n,r].join(`|`);i!==ee.current&&(ee.current=i,tR(`dailySpark.present`,{currentDateBucket:a,cursor:Number(u.cursor.toFixed(2)),targetIndex:u.targetIndex,rawTargetIndex:u.rawTargetIndex,lagDays:Number((u.targetIndex-u.cursor).toFixed(2)),source:e,presentationSource:ZL(u.sourceDaily,a),display:t,zoom:{startValue:Number(C.toFixed(2)),endValue:Number(w.toFixed(2)),visibleDateCount:Number(T.toFixed(2))}}))},[a,u.cursor,u.targetIndex,l,d,C,w,T]);let te={backgroundColor:`transparent`,...pL,tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{if(!e?.length)return``;let t=`<b>${j(Array.isArray(e[0].data)?e[0].data[0]:e[0].dataIndex)}</b><br/>`,n=0,r=[...e].filter(e=>(Array.isArray(e.value)?e.value[1]:e.value)>0).sort((e,t)=>((Array.isArray(t.value)?t.value[1]:t.value)||0)-((Array.isArray(e.value)?e.value[1]:e.value)||0));for(let e of r){let r=Array.isArray(e.value)?e.value[1]:e.value;t+=`${e.marker} ${e.seriesName}: ${nR(r)}<br/>`,n+=r}return t+=`<b>Total: ${nR(n)}</b>`,t}},grid:{left:4,right:4,top:4,bottom:4},xAxis:O?{type:`value`,min:k,max:A,show:!1}:{type:`category`,data:x.dates||d.dates,min:Math.max(0,Math.floor(C)),max:Math.max(0,Math.floor(w)),show:!1},yAxis:{type:`value`,show:!1,scale:!1,min:0},series:x.series.map(e=>({id:`overview-daily-${e.key}`,name:e.label,type:`bar`,stack:`total`,data:O?e.data.map((e,t)=>[t,e]):e.data,itemStyle:{color:Ue(e.key)},...E?{barWidth:E}:{},barMaxWidth:D}))},M=c&&!o&&!s?{click:e=>{let t=Array.isArray(e?.data)?e.data[0]:e?.dataIndex,n=Number.isFinite(t)?j(t):e?.axisValue||e?.name;n&&c(n)}}:void 0;return(0,R.jsxs)(`div`,{className:`overview-daily-spark`,children:[(0,R.jsx)(`span`,{className:`overview-daily-spark-title`,children:`Daily Usage`}),(0,R.jsx)(`div`,{className:`overview-daily-spark-chart`,style:M?{cursor:`pointer`}:void 0,children:(0,R.jsx)(Ae,{echarts:YO,option:te,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!1,notMerge:o,replaceMerge:[`series`],onEvents:M})})]})}var wR=[{key:`tokens`,label:`Tokens`,fmt:nR},{key:`elapsed`,label:`Time`,fmt:e=>iR(e)},{key:`cost`,label:`Cost`,fmt:rR}],TR=QI.heatmap?.popDurationMs??380,ER=QI.heatmap?.settleThreshold??.998;function DR({heatmapData:e,isIngestActive:t=!1,ingestProgress:n=0,currentDateBucket:r=null,onDayClick:i,interactive:a=!0}){let[o,s]=(0,b.useState)(`tokens`),[c,l]=(0,b.useState)(new Set),[u,d]=(0,b.useState)(new Set),f=(0,b.useRef)({}),p=(0,b.useRef)(1),m=(0,b.useRef)(``),h=e||{};(0,b.useEffect)(()=>{let e=QL(h,r),t=[e.currentDateBucket,e.nonzeroDays,e.lastNonzero,e.overreachDays,e.totalTokens].join(`|`);t!==m.current&&(m.current=t,tR(`heatmap.present`,e))},[h,r]);let g=new Date,_=[],v=[];for(let e=364;e>=0;e--){let t=new Date(g);t.setDate(t.getDate()-e);let n=t.toLocaleDateString(`en-CA`),r=h[n]&&h[n][o]||0;_.push({key:n,val:r,date:t}),t.getDate()===1&&v.push({idx:364-e,label:t.toLocaleDateString(`en-US`,{month:`short`})})}let y=Math.max(..._.map(e=>e.val),1);(0,b.useEffect)(()=>{if(!t||n>=ER){f.current={},p.current=1;return}let e=new Date,r=f.current,i=p.current,a=new Set,s=new Set,c=Math.max(.05,Math.min(i,y)*.002),u=QI.heatmap?.intensityRiseThreshold??.08,m=QI.heatmap?.whiteThreshold??.88,g=QI.heatmap?.nearMaxRatio??.985;for(let t=364;t>=0;t--){let n=new Date(e);n.setDate(n.getDate()-t);let l=n.toLocaleDateString(`en-CA`),d=h[l]&&h[l][o]||0,f=r[l]??0,p=i>0?f/i:0,_=y>0?d/y:0,v=y>i+c&&d>=y*g&&(f<y*g||f===void 0),b=_>=m&&p<m,x=d>f+c,S=_>p+u;v||b||x||S?a.add(l):(d<f-c||d>0&&i>0&&y>i+c&&p>=.85&&_<p-.02)&&s.add(l),r[l]=d}if(p.current=y,a.size>0||s.size>0){l(a),d(s);let e=setTimeout(()=>{l(new Set),d(new Set)},TR);return()=>clearTimeout(e)}},[h,o,t,n,y]);function x(e){if(e===0)return`var(--bg-elevated)`;let t=e/y,n=1/4;return t<n?`rgba(99, 102, 241, 0.14)`:t<2*n?`rgba(99, 102, 241, 0.38)`:t<3*n?`rgba(99, 102, 241, 0.62)`:t<1?`rgba(99, 102, 241, 0.88)`:`#fff`}let S=_[0]?.date.getDay()||0,C=Array(S).fill(null).concat(_);return(0,R.jsxs)(`div`,{className:`heatmap-wrap`,children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:`0.75rem`},children:[(0,R.jsx)(`span`,{className:`chart-title`,children:`Activity`}),(0,R.jsx)(`div`,{className:`btn-group`,children:wR.map(e=>(0,R.jsx)(`button`,{className:`btn ${o===e.key?`active`:``}`,onClick:()=>s(e.key),children:e.label},e.key))})]}),(0,R.jsx)(`div`,{className:`heatmap-grid`,style:{gridTemplateRows:`repeat(7, 1fr)`},children:C.map((e,t)=>e?(0,R.jsx)(`div`,{role:i&&a?`button`:void 0,tabIndex:i&&a?0:void 0,onClick:i&&a?()=>i(e.key):void 0,onKeyDown:i&&a?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),i(e.key))}:void 0,className:`heatmap-cell ${e.val>0?`active`:``} ${c.has(e.key)?`heatmap-cell-pop`:``} ${u.has(e.key)?`heatmap-cell-pop-dim`:``}`,style:{background:x(e.val),cursor:i&&a?`pointer`:void 0},title:`${e.key}: ${wR.find(e=>e.key===o).fmt(e.val)}`},e.key):(0,R.jsx)(`div`,{className:`heatmap-cell`,style:{visibility:`hidden`}},`pad-${t}`))}),(0,R.jsx)(`div`,{className:`heatmap-labels`,children:v.slice(-12).map((e,t)=>(0,R.jsx)(`span`,{children:e.label},t))})]})}function OR({presentation:e,rawPresentation:t=null,fullDaily:n=null,sourceDailyRows:r=null,range:i=`total`,ingestProgress:a=0,isIngestActive:o=!1,currentDateBucket:s=null,exportMode:c=!1,exportPlayback:l=!1,exportPhase:u=null,exportSeekMs:d=0,exportDaily:f=null,exportDailyTiming:p=null,onDailyDebugStatsChange:m=null,onPresentationDateRangeChange:h=null,onNavigateToDailyDay:g,onNavigateToRepo:_,onNavigateToModel:v}){if(!e?.ready)return null;let y=l?MR(d):1,x=l&&u===`replay`&&t?.ready?t:e,S=l&&t?.daily||e.daily,C=l&&S?.dates?.length?S:n,w=!c&&!l&&o,T=gR(C,{ingestProgress:a,isIngestActive:w});(0,b.useEffect)(()=>{m?.(w?{speedDaysPerSecond:T.speedDaysPerSecond,waitingForDailyData:T.waitingForDailyData}:null)},[w,T.speedDaysPerSecond,T.waitingForDailyData,m]),(0,b.useEffect)(()=>()=>m?.(null),[m]);let E=T.daily?.dates||[],D=E[E.length-1]||s,O=wL(i,E),k={from:O[0]||D,to:O[O.length-1]||D};(0,b.useEffect)(()=>{h?.(w?k:null)},[w,h,k.from,k.to]),(0,b.useEffect)(()=>()=>h?.(null),[h]);let A=o&&t?.heatmap?t.heatmap:e.heatmap,j=o&&!l?D:s,ee=o&&j&&!l?mR(A,j):A||{},te=(0,b.useMemo)(()=>w?NL({daily:r,range:i,cursor:T.cursor,fallback:x}):x,[x,w,T.cursor,i,r]),{stats:M,topRepos:N,topFamilies:P,topModels:F}=te,ne=l&&u===`replay`?bR(xR(t?.topRepos||x.topRepos||[],e.topRepos||x.topRepos||[]),y):te.topRepos||[],re=l&&u===`replay`?bR(xR(t?.topFamilies||x.topFamilies||[],e.topFamilies||x.topFamilies||[]),y):te.topFamilies||[],ie=l&&u===`replay`?bR(xR(t?.topModels||x.topModels||[],e.topModels||x.topModels||[]),y):te.topModels||[],ae=[...ne.slice(0,6)].reverse(),oe=Math.max(...ne.slice(0,6).map(e=>e.tokens||0),1),se=[...re].sort((e,t)=>String(e.label).localeCompare(String(t.label))),ce=[...ie.slice(0,6)].sort((e,t)=>String(e.label).localeCompare(String(t.label))),le=!c&&!l&&!o,I=PR(d,l),ue=!c&&!l&&gL,de=l?NR(d,QI.videoExport?.barsChartIntroUpdateDurationMs,QI.videoExport?.barsChartUpdateDurationMs,u===`tail`||u===`final_hold`?QI.videoExport?.barsChartTailUpdateDurationMs:null):0,fe={backgroundColor:`transparent`,...mL,...c?{animation:!1}:{},...l?{animation:!0,animationDuration:0,animationDurationUpdate:de,animationEasingUpdate:`cubicOut`}:{},tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>e?.length?`${e[0].axisValue}: ${nR(e[0].value)} tokens`:``},grid:{left:100,right:5,top:5,bottom:5},xAxis:{type:`value`,show:!1,max:oe||1},yAxis:{type:`category`,data:ae.map(e=>e.label),axisLabel:{color:`#8b949e`,fontSize:11,formatter:e=>aR(e)},axisTick:{show:!1},axisLine:{show:!1}},series:[{id:`overview-top-repos`,type:`bar`,data:ae.map(e=>{let t=e.tokens||0,n=t/oe>=.7,r=ze(e.label);return{value:t,itemStyle:{color:r,borderRadius:[0,3,3,0]},label:{show:!0,position:n?`insideRight`:`right`,distance:5,offset:[0,1.5],formatter:()=>nR(t),color:n?Be(r):`#8b949e`,fontSize:10}}}),barWidth:`80%`}]},pe=le&&_?{click:e=>{if(e?.componentType!==`series`||e?.dataIndex==null)return;let t=ae[e.dataIndex];t?.label&&_(t.label)}}:void 0,me=se.reduce((e,t)=>e+(t.tokens||0),0),he=se.filter(e=>me>0?(e.tokens||0)/me>=.01:!1),L=l&&he.length===1,ge=SR(he),_e={backgroundColor:`transparent`,...hL,...c||l?{animation:!1}:{},tooltip:{trigger:`item`,appendToBody:!0,confine:!0,formatter:e=>`${e.name}: ${nR(e.value)} tokens (${e.percent}%)`},series:[{id:`overview-work-type`,type:`pie`,animation:ue,avoidLabelOverlap:!ge,radius:I,center:[`50%`,`50%`],label:{show:!L,color:`#8b949e`,fontSize:11,formatter:`{b}`,alignTo:`edge`,edgeDistance:5,bleedMargin:5,distanceToLabelLine:5},labelLine:{show:!L,lineStyle:{color:`#30363d`},length:8,length2:6},itemStyle:{borderColor:`#161b22`,borderWidth:2},...!L&&ge?{labelLayout:ge}:{},data:yR(he,We,{hideLabels:L})}]},ve=ce.reduce((e,t)=>e+(t.tokens||0),0),ye=ce.filter(e=>ve>0?(e.tokens||0)/ve>=.01:!1),be=l&&ye.length===1,xe=SR(ye),Se={backgroundColor:`transparent`,...hL,...c||l?{animation:!1}:{},tooltip:{trigger:`item`,appendToBody:!0,confine:!0,formatter:e=>`${e.name}: ${nR(e.value)} tokens (${e.percent}%)`},series:[{id:`overview-models`,type:`pie`,animation:ue,avoidLabelOverlap:!xe,radius:I,center:[`50%`,`50%`],label:{show:!be,color:`#8b949e`,fontSize:11,formatter:`{b}`,alignTo:`edge`,edgeDistance:5,bleedMargin:5,distanceToLabelLine:5},labelLine:{show:!be,lineStyle:{color:`#30363d`},length:8,length2:6},itemStyle:{borderColor:`#161b22`,borderWidth:2},...!be&&xe?{labelLayout:xe}:{},data:yR(ye,Ue,{hideLabels:be})}]},Ce=le&&v?{click:e=>{if(e?.componentType!==`series`||e?.dataIndex==null)return;let t=ye[e.dataIndex]?.label||e?.name;t&&v(t)}}:void 0;return(0,R.jsxs)(`div`,{className:`animate-in${l?` export-overview-frame`:``}`,children:[(0,R.jsxs)(`div`,{className:`stat-row`,children:[(0,R.jsxs)(`div`,{className:`stat-cards`,children:[(0,R.jsxs)(`div`,{className:`stat-card`,children:[(0,R.jsx)(`div`,{className:`stat-label`,children:`Tokens`}),(0,R.jsx)(`div`,{className:`stat-value`,children:nR(M.tokens)}),(0,R.jsxs)(`div`,{className:`stat-per-day`,children:[(0,R.jsx)(`span`,{className:`stat-per-day-value`,children:nR(M.tokens/M.days)}),` per day`]})]}),(0,R.jsxs)(`div`,{className:`stat-card`,children:[(0,R.jsx)(`div`,{className:`stat-label`,children:`Agent Time`}),(0,R.jsx)(`div`,{className:`stat-value`,children:iR(M.elapsed)}),(0,R.jsxs)(`div`,{className:`stat-per-day`,children:[(0,R.jsx)(`span`,{className:`stat-per-day-value`,children:iR(M.elapsed/M.days)}),` per day`]})]}),(0,R.jsxs)(`div`,{className:`stat-card`,children:[(0,R.jsx)(`div`,{className:`stat-label`,children:`Est. API Cost`}),(0,R.jsx)(`div`,{className:`stat-value`,children:rR(M.cost)}),(0,R.jsxs)(`div`,{className:`stat-per-day`,children:[(0,R.jsx)(`span`,{className:`stat-per-day-value`,children:rR(M.cost/M.days)}),` per day`]})]}),(0,R.jsxs)(`div`,{className:`stat-card`,children:[(0,R.jsx)(`div`,{className:`stat-label`,children:`Sessions`}),(0,R.jsx)(`div`,{className:`stat-value`,children:Math.round(M.sessions).toLocaleString()}),(0,R.jsxs)(`div`,{className:`stat-per-day`,children:[(0,R.jsx)(`span`,{className:`stat-per-day-value`,children:(M.sessions/M.days).toFixed(1)}),` per day`]})]})]}),l?(0,R.jsx)(ot,{daily:f||n||S,seekMs:d,timing:p}):(0,R.jsx)(CR,{daily:S,fullDaily:n,elasticDaily:T,range:i,isIngestActive:o,currentDateBucket:s,exportMode:c,exportPlayback:l,onDayClick:le?g:void 0})]}),(0,R.jsx)(DR,{heatmapData:ee,isIngestActive:o,ingestProgress:a,currentDateBucket:j,onDayClick:le?g:void 0,interactive:le}),(0,R.jsxs)(`div`,{className:`grid-3`,children:[(0,R.jsxs)(`div`,{className:`chart-card overview-donut-card`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Top Repos`}),N.length>0?(0,R.jsx)(Ae,{echarts:YO,option:fe,style:{height:180,cursor:pe?`pointer`:void 0},theme:`dark`,lazyUpdate:!1,notMerge:c,onEvents:pe}):(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem 0`,textAlign:`center`},children:`No data`})]}),(0,R.jsxs)(`div`,{className:`chart-card overview-donut-card`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Work Type`}),P.length>0?(0,R.jsx)(Ae,{echarts:YO,option:_e,style:{height:180},theme:`dark`,lazyUpdate:!1,notMerge:c}):(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem 0`,textAlign:`center`},children:`No data`})]}),(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Models`}),F.length>0?(0,R.jsx)(Ae,{echarts:YO,option:Se,style:{height:180,cursor:Ce?`pointer`:void 0},theme:`dark`,lazyUpdate:!1,notMerge:c,onEvents:Ce}):(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem 0`,textAlign:`center`},children:`No data`})]})]}),(0,R.jsxs)(`div`,{className:`coverage-subtle`,children:[(0,R.jsx)(`span`,{style:{fontWeight:500},children:`Session coverage:`}),(0,R.jsxs)(`span`,{className:`coverage-item`,children:[(0,R.jsx)(`span`,{className:`coverage-dot`,style:{background:`#22c55e`}}),(0,R.jsx)(`span`,{className:`coverage-nums`,children:Math.round(M.exactPriced)}),` `,`exact-priced`]}),(0,R.jsxs)(`span`,{className:`coverage-item`,children:[(0,R.jsx)(`span`,{className:`coverage-dot`,style:{background:`#c084fc`}}),(0,R.jsx)(`span`,{className:`coverage-nums`,children:Math.round(M.fallbackPriced)}),` `,`fallback-priced`]}),(0,R.jsxs)(`span`,{className:`coverage-item`,children:[(0,R.jsx)(`span`,{className:`coverage-dot`,style:{background:`#64748b`}}),(0,R.jsx)(`span`,{className:`coverage-nums`,children:Math.round(M.unpriced)}),` `,`unpriced`]})]})]})}function kR({data:e,heatmap:t,daily:n,families:r,repos:i,models:a,range:o=`total`,onPresentationSettledChange:s=null,ingestProgress:c=0,isIngestActive:l=!1,currentDateBucket:u=null,clockNowMs:d=null,onDailyDebugStatsChange:f=null,onPresentationDateRangeChange:p=null,onNavigateToDailyDay:m,onNavigateToRepo:h,onNavigateToModel:g}){return(0,R.jsx)(OR,{presentation:VL({overview:e,heatmap:t,daily:n,families:r,repos:i,models:a,range:o},{duration:lL,onSettledChange:s,ingestProgress:c,isIngestActive:l,clockNowMs:d}),rawPresentation:b.useMemo(()=>FL({overview:e,heatmap:t,daily:n,families:r,repos:i,models:a,range:o}),[e,t,n,r,i,a,o]),fullDaily:b.useMemo(()=>sR(n),[n]),sourceDailyRows:n,range:o,ingestProgress:c,isIngestActive:l,currentDateBucket:u,onDailyDebugStatsChange:f,onPresentationDateRangeChange:p,onNavigateToDailyDay:m,onNavigateToRepo:h,onNavigateToModel:g})}function AR(e,t){return e.data===t.data&&e.heatmap===t.heatmap&&e.daily===t.daily&&e.families===t.families&&e.repos===t.repos&&e.models===t.models&&e.range===t.range&&e.onPresentationSettledChange===t.onPresentationSettledChange&&e.ingestProgress===t.ingestProgress&&e.isIngestActive===t.isIngestActive&&e.currentDateBucket===t.currentDateBucket&&e.clockNowMs===t.clockNowMs&&e.onDailyDebugStatsChange===t.onDailyDebugStatsChange&&e.onPresentationDateRangeChange===t.onPresentationDateRangeChange&&e.onNavigateToDailyDay===t.onNavigateToDailyDay&&e.onNavigateToRepo===t.onNavigateToRepo&&e.onNavigateToModel===t.onNavigateToModel}var jR=(0,b.memo)(kR,AR);function MR(e){return IR(e)}function NR(e,t,n,r=null){if(r!=null)return Math.max(0,Math.round(r));let i=Math.max(0,Math.round(n??0)),a=Math.max(i,Math.round(t??i)),o=IR(e);return Math.round(a+(i-a)*o)}function PR(e,t=!1){if(!t)return[`48%`,`72%`];let n=.9+IR(e)*.1;return[`${FR(48*n)}%`,`${FR(72*n)}%`]}function FR(e){return Math.round(e*100)/100}function IR(e){let t=Math.max(QI.videoExport?.chartIntroWindowMs??2200,1),n=Math.max(e||0,0),r=t/3;return Math.min(1,1-Math.exp(-n/Math.max(r,1)))}function LR(e,t){return e===`default`?t:e}function RR(e,t=`tokens`){return Object.entries(e||{}).map(([e,t])=>({key:e,...t})).sort((e,n)=>(n[t]||0)-(e[t]||0))}function zR({title:e,rows:t,valueKey:n=`tokens`,colorForKey:r,valueFormatter:i,chartMode:a=`default`,defaultMode:o=`bar`,emptyLabel:s=`No data`,renderTitleInChart:c=!0,barLabelProgress:l=1}){let u=LR(a,o),d=(t||[]).map((e,t)=>{let n=e?.key??e?.repo_label??e?.model_name??e?.family??null;return n?{...e,key:String(n),_idx:t}:null}).filter(Boolean),f={xAxis:{show:!1},yAxis:{show:!1},series:[],graphic:{type:`text`,left:`center`,top:`60%`,style:{text:s,fill:`#484f58`,fontSize:11}}};if(c&&(f.title={text:e,left:`center`,top:`middle`,textStyle:{fontSize:12,color:`#484f58`,fontWeight:`normal`}}),!d.length)return f;if(u===`donut`){let t=d.reduce((e,t)=>e+(t[n]||0),0),a={backgroundColor:`transparent`,...tL,tooltip:{trigger:`item`,appendToBody:!0,confine:!0,formatter:e=>`${e.name}: ${i(e.value)} (${e.percent}%)`},series:[{type:`pie`,...tL,radius:[`40%`,`62%`],center:[`50%`,`52%`],label:{show:!0,color:`#8b949e`,fontSize:10,formatter:`{b}`,overflow:`truncate`,width:90,...eL},labelLine:{lineStyle:{color:`#30363d`}},itemStyle:{borderColor:`#161b22`,borderWidth:2},data:d.map(e=>{let i=e[n]||0,a=(t>0?i/t:0)>=.01;return{name:e.key,value:i,itemStyle:{color:r(e.key)},label:{show:a,color:r(e.key)},labelLine:{show:a}}})}]};return c&&(a.title={text:e,left:`center`,top:8,textStyle:{fontSize:11,color:`#8b949e`,fontWeight:`normal`}}),a}let p=[...d].reverse(),m=Math.max(...d.map(e=>e[n]||0),0),h={backgroundColor:`transparent`,...nL,tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{let t=p[e?.[0]?.dataIndex];return t?`${t.key}: ${i(t[n]||0)}`:``}},grid:{left:65,right:50,top:c?35:20,bottom:20},xAxis:{type:`value`,splitNumber:4,max:m||1,axisLabel:{formatter:e=>i(e),color:`#484f58`,fontSize:10,showMinLabel:!0,showMaxLabel:!0},splitLine:{lineStyle:{color:[`transparent`,`#21262d`,`#21262d`,`#21262d`,`transparent`]}}},yAxis:{type:`category`,data:p.map(e=>e.key),axisLabel:{color:`#8b949e`,fontSize:10,overflow:`truncate`,width:55},axisTick:{show:!1},axisLine:{show:!1}},series:[{type:`bar`,data:p.map(e=>({value:e[n]||0,itemStyle:{color:r(e.key),borderRadius:[0,3,3,0]}})),barMaxWidth:14,label:{show:!0,position:`right`,formatter:e=>i((e.value??0)*l),color:`#8b949e`,fontSize:9,...rL}}]};return c&&(h.title={text:e,left:`center`,top:8,textStyle:{fontSize:11,color:`#8b949e`,fontWeight:`normal`}}),h}xD([wA,KA,vP,NF,IF,JI]);function BR(e){return YI(e)}function VR(e){return e==null||e===0?`—`:e>=1e3?`$`+(e/1e3).toFixed(1)+`K`:`$`+e.toFixed(2)}var HR=[`all`,`review`,`exploration`,`planning`,`memory`,`generic`],UR=[`review`,`exploration`,`planning`,`memory`,`generic`];function WR(e){if(!e.current)return;let t=e.current.getEchartsInstance().getDataURL({type:`png`,pixelRatio:2,backgroundColor:`#06080f`});Object.assign(document.createElement(`a`),{href:t,download:`codexmeter-repos.png`}).click()}function GR(e,t=`total`){let n=e?.data;return Array.isArray(n)?n:n?.[t]||n?.total||[]}function KR({repo:e,chartMode:t}){let[n,r]=(0,b.useState)(!1),i=(0,b.useMemo)(()=>RR(e.by_model),[e.by_model]),a=(0,b.useMemo)(()=>RR(e.by_family),[e.by_family]),o=zR({title:`Models in repo`,rows:i,valueKey:`tokens`,colorForKey:Ue,valueFormatter:BR,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1}),s=zR({title:`Work type in repo`,rows:a,valueKey:`tokens`,colorForKey:We,valueFormatter:BR,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1}),c=[...i.slice(0,4).map(e=>({...e,scope:`model`})),...a.slice(0,4).map(e=>({...e,scope:`family`}))];return(0,R.jsxs)(`div`,{className:`model-detail-wrap`,children:[(0,R.jsxs)(`div`,{className:`model-detail-charts`,children:[(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Models in repo`}),(0,R.jsx)(Ae,{echarts:YO,option:o,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Work type in repo`}),(0,R.jsx)(Ae,{echarts:YO,option:s,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]})]}),(0,R.jsx)(`div`,{className:`model-detail-footer`,children:(0,R.jsxs)(`button`,{type:`button`,className:`model-detail-toggle`,onClick:()=>r(e=>!e),"aria-expanded":n,children:[(0,R.jsx)(`span`,{className:`model-detail-toggle-text`,children:n?`Hide details`:`Show details`}),(0,R.jsx)(`span`,{className:`model-detail-toggle-arrow ${n?`expanded`:``}`,"aria-hidden":!0,children:`▼`})]})}),(0,R.jsx)(`div`,{className:`model-detail-summary-wrap ${n?`expanded`:``}`,children:(0,R.jsx)(`div`,{className:`model-detail-summary`,children:c.map(e=>(0,R.jsxs)(`div`,{className:`model-detail-summary-card`,children:[(0,R.jsxs)(`div`,{className:`model-detail-summary-head`,children:[(0,R.jsx)(`span`,{className:`model-detail-swatch`,style:{background:e.scope===`model`?Ue(e.key):We(e.key)}}),(0,R.jsx)(`span`,{className:`model-detail-summary-name`,title:e.key,children:e.key})]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[BR(e.tokens),` tokens`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[e.sessions||0,` sessions`]}),(0,R.jsx)(`div`,{className:`model-detail-summary-line`,children:VR(e.cost)})]},`${e.scope}-${e.key}`))})})]})}function qR({data:e,range:t=`total`,chartMode:n=`default`,focusRequest:r=null,onFocusRequestConsumed:i}){let[a,o]=(0,b.useState)(`all`),[s,c]=(0,b.useState)(null),l=(0,b.useRef)(null),u=(0,b.useRef)(null),d=(0,b.useMemo)(()=>GR(e,t),[e,t]),f=(0,b.useMemo)(()=>d?.length?a===`all`?d:d.map(e=>{let t=e.by_family?.[a];return t?{...e,tokens:t.tokens,cost:t.cost,sessions:t.sessions}:null}).filter(Boolean).sort((e,t)=>t.tokens-e.tokens):[],[d,a]);if((0,b.useEffect)(()=>{s&&(f.some(e=>e.repo_key===s)||c(null))},[s,f]),(0,b.useEffect)(()=>{if(!r){u.current=null;return}let{id:e,repoLabel:t}=r;if(!t||u.current===e)return;let n=d.find(e=>e.repo_label===t||e.repo_key===t);u.current=e,n&&c(n.repo_key),i?.()},[r,d,i]),!d?.length)return(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem`},children:`No data`});let p=f.slice(0,15),m=[...p].reverse(),h=Math.max(...p.map(e=>e.tokens||0),0),g=Math.max(250,p.length*28),_=(0,b.useMemo)(()=>({backgroundColor:`transparent`,...$I,tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{let t=p[p.length-1-e[0].dataIndex];return t?`<b>${t.repo_label}</b><br/>Tokens: ${BR(t.tokens)}<br/>Cost: ${VR(t.cost)}<br/>Sessions: ${t.sessions}`:``}},grid:{left:150,right:50,top:8,bottom:8},xAxis:{type:`value`,splitNumber:4,max:h||1,axisLabel:{formatter:e=>BR(e),color:`#484f58`,showMinLabel:!0,showMaxLabel:!0},splitLine:{lineStyle:{color:[`transparent`,`#21262d`,`#21262d`,`#21262d`,`transparent`]}}},yAxis:{type:`category`,data:m.map(e=>e.repo_label),axisLabel:{color:`#8b949e`,fontSize:11},axisTick:{show:!1},axisLine:{show:!1}},series:[{id:`repos-range-bars`,type:`bar`,universalTransition:!0,data:m.map(e=>({id:e.repo_key,name:e.repo_label,value:e.tokens,itemStyle:{color:ze(e.repo_label),borderRadius:[0,3,3,0]}})),barMaxWidth:16,label:{show:!0,position:`right`,formatter:e=>BR(e.value??0),color:`#8b949e`,fontSize:10,...eL}}]}),[h,m,p]),v=(0,b.useMemo)(()=>({click:e=>{if(e?.componentType===`series`&&e?.dataIndex!=null){let t=p[p.length-1-e.dataIndex];t&&c(e=>e===t.repo_key?null:t.repo_key)}}}),[p]);return(0,R.jsxs)(`div`,{className:`animate-in`,children:[(0,R.jsxs)(`div`,{className:`section-header`,children:[(0,R.jsx)(`span`,{className:`section-title`,children:`Repos`}),(0,R.jsx)(`div`,{className:`btn-group`,children:HR.map(e=>(0,R.jsx)(`button`,{className:`btn ${a===e?`active`:``}`,onClick:()=>o(e),children:e},e))})]}),(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`button`,{className:`export-btn`,onClick:()=>WR(l),children:`PNG`}),(0,R.jsx)(`div`,{style:{height:g,transition:`height 220ms cubic-bezier(0.22, 1, 0.36, 1)`},children:(0,R.jsx)(Ae,{ref:l,echarts:YO,option:_,style:{height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1,onEvents:v})})]}),(0,R.jsx)(`div`,{className:`table-wrap`,children:(0,R.jsxs)(`table`,{children:[(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{children:[(0,R.jsx)(`th`,{children:`Repo`}),(0,R.jsx)(`th`,{children:`Tokens`}),(0,R.jsx)(`th`,{children:`Cost`}),(0,R.jsx)(`th`,{children:`Sessions`}),(0,R.jsx)(`th`,{style:{width:200},children:`Families`})]})}),(0,R.jsx)(`tbody`,{children:f.map(e=>(0,R.jsxs)(b.Fragment,{children:[(0,R.jsxs)(`tr`,{onClick:()=>c(s===e.repo_key?null:e.repo_key),style:{cursor:`pointer`},children:[(0,R.jsxs)(`td`,{style:{fontWeight:500,color:`var(--text-primary)`},children:[(0,R.jsx)(`span`,{style:{display:`inline-block`,width:8,height:8,borderRadius:2,background:ze(e.repo_label),marginRight:8}}),e.repo_label]}),(0,R.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`},children:BR(e.tokens)}),(0,R.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`},children:VR(e.cost)}),(0,R.jsx)(`td`,{children:e.sessions}),(0,R.jsx)(`td`,{children:Object.entries(e.by_family||{}).sort(([e],[t])=>{let n=UR.indexOf(e),r=UR.indexOf(t);return(n===-1?999:n)-(r===-1?999:r)}).slice(0,3).map(([e])=>(0,R.jsx)(`span`,{className:`tag tag-${e}`,style:{marginRight:3},children:e},e))})]}),s===e.repo_key&&(0,R.jsx)(`tr`,{children:(0,R.jsx)(`td`,{colSpan:5,style:{background:`var(--bg-surface)`,padding:`0.75rem 1rem`},children:(0,R.jsx)(KR,{repo:e,chartMode:n})})})]},e.repo_key))})]})})]})}xD([wA,KA,vP,NF,IF,JI]);function JR(e){return YI(e)}function YR(e){return e==null||e===0?`—`:e>=1e3?`$`+(e/1e3).toFixed(1)+`K`:`$`+e.toFixed(2)}var XR=[`low`,`medium`,`high`,`xhigh`,`unknown`];function ZR(e){return[...e].sort(([e],[t])=>{let n=XR.indexOf((e||``).toLowerCase()),r=XR.indexOf((t||``).toLowerCase());return(n===-1?999:n)-(r===-1?999:r)})}function QR({model:e,fmt:t,chartMode:n}){let[r,i]=(0,b.useState)(!1),a=(0,b.useMemo)(()=>ZR(Object.entries(e.by_effort||{})),[e.by_effort]);if(!a.length)return null;let o=a.map(([e,t])=>({effort:e,sessions:t.sessions,tokens:t.tokens,avgTokens:t.sessions?Math.round(t.tokens/t.sessions):0,cost:t.cost,exactPriced:t.exact_priced||0,fallbackPriced:t.heuristic_priced||0})),s=o.map(e=>({key:e.effort,sessions:e.sessions,tokens:e.tokens,avgTokens:e.avgTokens})),c=zR({title:`Sessions by effort`,rows:s,valueKey:`sessions`,colorForKey:Ge,valueFormatter:e=>Math.round(e).toLocaleString(),chartMode:n,defaultMode:`donut`,renderTitleInChart:!1}),l=zR({title:`Tokens by effort`,rows:s,valueKey:`tokens`,colorForKey:Ge,valueFormatter:t,chartMode:n,defaultMode:`donut`,renderTitleInChart:!1}),u=zR({title:`Avg tokens per session`,rows:s,valueKey:`avgTokens`,colorForKey:Ge,valueFormatter:t,chartMode:n,defaultMode:`bar`,renderTitleInChart:!1});return(0,R.jsxs)(`div`,{className:`model-detail-wrap`,children:[(0,R.jsxs)(`div`,{className:`model-detail-charts`,children:[(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Sessions by effort`}),(0,R.jsx)(Ae,{echarts:YO,option:c,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Tokens by effort`}),(0,R.jsx)(Ae,{echarts:YO,option:l,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-bar`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Avg tokens per session`}),(0,R.jsx)(Ae,{echarts:YO,option:u,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]})]}),(0,R.jsx)(`div`,{className:`model-detail-footer`,children:(0,R.jsxs)(`button`,{type:`button`,className:`model-detail-toggle`,onClick:()=>i(e=>!e),"aria-expanded":r,children:[(0,R.jsx)(`span`,{className:`model-detail-toggle-text`,children:r?`Hide details`:`Show details`}),(0,R.jsx)(`span`,{className:`model-detail-toggle-arrow ${r?`expanded`:``}`,"aria-hidden":!0,children:`▼`})]})}),(0,R.jsx)(`div`,{className:`model-detail-summary-wrap ${r?`expanded`:``}`,children:(0,R.jsx)(`div`,{className:`model-detail-summary`,children:o.map(e=>(0,R.jsxs)(`div`,{className:`model-detail-summary-card`,children:[(0,R.jsxs)(`div`,{className:`model-detail-summary-head`,children:[(0,R.jsx)(`span`,{className:`model-detail-swatch`,style:{background:Ge(e.effort)}}),(0,R.jsx)(`span`,{className:`model-detail-summary-name`,title:e.effort,children:e.effort})]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[e.sessions,` sessions`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[t(e.tokens),` tokens`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[t(e.avgTokens),` avg/session`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[YR(e.cost),` cost`]}),(0,R.jsxs)(`div`,{className:`model-detail-summary-line`,children:[e.exactPriced,` exact · `,e.fallbackPriced,` fallback`]})]},e.effort))})})]})}function $R(e){if(!e.current)return;let t=e.current.getEchartsInstance().getDataURL({type:`png`,pixelRatio:2,backgroundColor:`#06080f`});Object.assign(document.createElement(`a`),{href:t,download:`codexmeter-models.png`}).click()}function ez(e,t=`total`){let n=e?.data;return Array.isArray(n)?n:n?.[t]||n?.total||[]}function tz({data:e,range:t=`total`,chartMode:n=`default`,focusRequest:r=null,onFocusRequestConsumed:i}){let[a,o]=(0,b.useState)(null),s=(0,b.useRef)(null),c=(0,b.useRef)(null),l=(0,b.useMemo)(()=>ez(e,t),[e,t]);if((0,b.useEffect)(()=>{a&&(l.some(e=>e.model_name===a)||o(null))},[a,l]),(0,b.useEffect)(()=>{if(!r){c.current=null;return}let{id:e,modelName:t}=r;if(!t||c.current===e)return;let n=l.find(e=>e.model_name===t);c.current=e,n&&o(n.model_name),i?.()},[r,l,i]),!l?.length)return(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem`},children:`No data`});let u=[...l].reverse(),d=Math.max(...l.map(e=>e.tokens||0),0),f=Math.max(180,l.length*34),p=(0,b.useMemo)(()=>({backgroundColor:`transparent`,...$I,tooltip:{trigger:`axis`,axisPointer:{type:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{let t=l[l.length-1-e[0].dataIndex];return`<b>${t.model_name}</b><br/>Tokens: ${JR(t.tokens)}<br/>Cost: ${YR(t.cost)}<br/>Sessions: ${t.sessions}`}},grid:{left:160,right:50,top:8,bottom:8},xAxis:{type:`value`,splitNumber:4,max:d||1,axisLabel:{formatter:e=>JR(e),color:`#484f58`,fontSize:10,showMinLabel:!0,showMaxLabel:!0},splitLine:{lineStyle:{color:[`transparent`,`#21262d`,`#21262d`,`#21262d`,`transparent`]}}},yAxis:{type:`category`,data:u.map(e=>e.model_name),axisLabel:{color:`#8b949e`,fontSize:11},axisTick:{show:!1},axisLine:{show:!1}},series:[{id:`models-range-bars`,type:`bar`,universalTransition:!0,data:u.map(e=>({id:e.model_name,name:e.model_name,value:e.tokens,itemStyle:{color:Ue(e.model_name),borderRadius:[0,3,3,0]}})),barMaxWidth:18,label:{show:!0,position:`right`,formatter:e=>JR(e.value??0),color:`#8b949e`,fontSize:10,...eL}}]}),[d,l,u]),m=(0,b.useMemo)(()=>({click:e=>{if(e?.componentType===`series`&&e?.dataIndex!=null){let t=l[l.length-1-e.dataIndex];t&&o(e=>e===t.model_name?null:t.model_name)}}}),[l]);return(0,R.jsxs)(`div`,{className:`animate-in`,children:[(0,R.jsx)(`div`,{className:`section-header`,children:(0,R.jsx)(`span`,{className:`section-title`,children:`Models`})}),(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`button`,{className:`export-btn`,onClick:()=>$R(s),children:`PNG`}),(0,R.jsx)(`div`,{style:{height:f,transition:`height 220ms cubic-bezier(0.22, 1, 0.36, 1)`},children:(0,R.jsx)(Ae,{ref:s,echarts:YO,option:p,style:{height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1,onEvents:m})})]}),(0,R.jsx)(`div`,{className:`table-wrap`,children:(0,R.jsxs)(`table`,{children:[(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{children:[(0,R.jsx)(`th`,{children:`Model`}),(0,R.jsx)(`th`,{children:`Tokens`}),(0,R.jsx)(`th`,{children:`Cost`}),(0,R.jsx)(`th`,{children:`Sessions`}),(0,R.jsx)(`th`,{children:`Effort Levels`})]})}),(0,R.jsx)(`tbody`,{children:l.map(e=>(0,R.jsxs)(b.Fragment,{children:[(0,R.jsxs)(`tr`,{onClick:()=>o(a===e.model_name?null:e.model_name),style:{cursor:`pointer`},children:[(0,R.jsxs)(`td`,{style:{fontWeight:500,color:`var(--text-primary)`,fontFamily:`var(--font-mono)`},children:[(0,R.jsx)(`span`,{style:{display:`inline-block`,width:8,height:8,borderRadius:2,background:Ue(e.model_name),marginRight:8}}),e.model_name]}),(0,R.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`},children:JR(e.tokens)}),(0,R.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`},children:YR(e.cost)}),(0,R.jsx)(`td`,{children:e.sessions}),(0,R.jsx)(`td`,{children:Object.keys(e.by_effort).length})]}),a===e.model_name&&(0,R.jsx)(`tr`,{children:(0,R.jsx)(`td`,{colSpan:5,style:{background:`var(--bg-surface)`,padding:`0.75rem 1rem`},children:(0,R.jsx)(QR,{model:e,fmt:JR,chartMode:n})})})]},e.model_name))})]})})]})}xD([wA,Wk,KA,vP,NF,IF,cI,RI,IP,JI]);function nz(e){return YI(e)}function rz(e){return e==null||e===0?`$0`:`$`+e.toFixed(2)}function iz(e){return e?(e/3600).toFixed(1)+`h`:`0h`}var az=[{key:`tokens`,label:`Tokens`,fn:nz},{key:`elapsed_seconds`,label:`Time`,fn:iz},{key:`cost`,label:`Cost`,fn:rz}],oz=[{key:`model`,label:`By Model`},{key:`family`,label:`By Work`}],sz=[{key:`absolute`,label:`Absolute`},{key:`relative`,label:`Relative`}];function cz(e){if(!e.current)return;let t=e.current.getEchartsInstance().getDataURL({type:`png`,pixelRatio:2,backgroundColor:`#06080f`});Object.assign(document.createElement(`a`),{href:t,download:`codexmeter-daily.png`}).click()}function lz(e,t){if(!t)return{startValue:0,endValue:0};let n=t;return e===`d7`&&(n=7),e===`d30`&&(n=30),{startValue:t-Math.max(1,Math.min(n,t)),endValue:t-1}}var uz=280,dz={left:70,right:20,bottom:12,height:24};function fz(e,t,n){let r=e?.batch?.[0]??e,i=Math.max(0,t.length-1),a,o;return r&&typeof r.startValue==`number`&&typeof r.endValue==`number`?(a=r.startValue,o=r.endValue):r&&typeof r.start==`number`&&typeof r.end==`number`&&t.length?(a=Math.round(r.start/100*i),o=Math.round(r.end/100*i)):r&&typeof r.startValue==`string`&&typeof r.endValue==`string`&&t.length?(a=t.indexOf(r.startValue),o=t.indexOf(r.endValue),a<0&&(a=n.startValue),o<0&&(o=n.endValue)):(a=n.startValue,o=n.endValue),a=Math.max(0,Math.min(i,Math.floor(a))),o=Math.max(0,Math.min(i,Math.floor(o))),a>o?{startValue:o,endValue:a}:{startValue:a,endValue:o}}function pz(e,t,n,r,i){if(cancelAnimationFrame(r.current),r.current=0,Math.round(e.startValue)===Math.round(t.startValue)&&Math.round(e.endValue)===Math.round(t.endValue))return;let a=0,o=s=>{a||=s;let c=Math.min(1,(s-a)/i),l=1-(1-c)**3;n({startValue:Math.round(e.startValue+(t.startValue-e.startValue)*l),endValue:Math.round(e.endValue+(t.endValue-e.endValue)*l)}),r.current=c<1?requestAnimationFrame(o):0};return r.current=requestAnimationFrame(o),()=>{cancelAnimationFrame(r.current),r.current=0}}function mz(e,t){return{left:dz.left,right:e-dz.right,top:t-dz.bottom-dz.height,bottom:t-dz.bottom}}function hz(e,t,n,r){let i=mz(e,t),a=Math.max(n-1,1),o=Math.max(0,Math.min(1,(r?.startValue??0)/a)),s=Math.max(0,Math.min(1,(r?.endValue??a)/a)),c=Math.max(0,i.right-i.left);return{...i,selectionLeft:i.left+c*Math.min(o,s),selectionRight:i.left+c*Math.max(o,s)}}function gz(e,t){return e===`d7`?44:e===`d30`?22:t<=14?36:t<=31?18:14}function _z(e,t){return e===`d7`?8:e===`d30`?3:t<=31?2:t<=90?1:0}function vz(e,t){return e===`d7`?`72%`:e===`d30`?`54%`:t<=14?`64%`:t<=31?`48%`:`36%`}function yz(e,t){return e?t===`elapsed_seconds`?e.elapsed_seconds||0:t===`cost`?e.cost||0:e.tokens||0:0}function bz(e,t){if(!e)return`Day detail`;let n=az.find(e=>e.key===t)||az[0],r=new Date(`${e.date}T00:00:00`).toLocaleDateString(`en-US`,{weekday:`long`}),i=n.fn(yz(e,t));return`Day detail: ${r} - ${e.date} - ${n.label}: ${i}`}function xz(e,t){let n=e.length;if(n===0)return null;let r=Array(n),i=Array(n),a=[];for(let t=0;t<n;t++){for(;a.length&&e[a[a.length-1]]>=e[t];)a.pop();r[t]=a.length?a[a.length-1]:-1,a.push(t)}a.length=0;for(let t=n-1;t>=0;t--){for(;a.length&&e[a[a.length-1]]>=e[t];)a.pop();i[t]=a.length?a[a.length-1]:n,a.push(t)}let o=0,s=0;for(let t=0;t<n;t++){let n=(i[t]-r[t]-1)*e[t];n>o&&(o=n,s=t)}return[(r[s]+i[s])/2,t[s]+e[s]/2]}function Sz({day:e,chartMode:t}){let n=(0,b.useMemo)(()=>RR(e.by_model),[e.by_model]),r=(0,b.useMemo)(()=>RR(e.by_repo),[e.by_repo]),i=(0,b.useMemo)(()=>RR(e.by_family),[e.by_family]),a=zR({title:`Models`,rows:n,valueKey:`tokens`,colorForKey:Ue,valueFormatter:nz,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1}),o=zR({title:`Repos`,rows:r,valueKey:`tokens`,colorForKey:ze,valueFormatter:nz,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1}),s=zR({title:`Work Type`,rows:i,valueKey:`tokens`,colorForKey:We,valueFormatter:nz,chartMode:t,defaultMode:`donut`,renderTitleInChart:!1});return(0,R.jsx)(`div`,{className:`model-detail-wrap`,children:(0,R.jsxs)(`div`,{className:`model-detail-charts`,children:[(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Repos`}),(0,R.jsx)(Ae,{echarts:YO,option:o,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Models`}),(0,R.jsx)(Ae,{echarts:YO,option:a,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]}),(0,R.jsxs)(`div`,{className:`model-detail-donut`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.5rem`},children:`Work Type`}),(0,R.jsx)(Ae,{echarts:YO,option:s,style:{width:`100%`,height:`100%`},theme:`dark`,lazyUpdate:!0,notMerge:!1})]})]})})}var Cz=b.memo(function({daily:e,range:t,metric:n,split:r,displayMode:i,onSelectDate:a,navigateToDayRequest:o,onNavigateToDayConsumed:s}){let[c,l]=(0,b.useState)({startValue:0,endValue:0}),u=(0,b.useRef)(null),d=(0,b.useRef)(c);d.current=c;let f=(0,b.useRef)(0),p=(0,b.useRef)(null),m=(0,b.useRef)(0),h=(0,b.useRef)(!1),g=(0,b.useRef)(null),_=(0,b.useRef)(null),v=(0,b.useRef)(0),y=(0,b.useMemo)(()=>e.map(e=>e.date),[e]),x=az.find(e=>e.key===n),S=(0,b.useMemo)(()=>lz(t,y.length),[t,y.length]);(0,b.useEffect)(()=>{if(!y.length)return;let e=lz(t,y.length),n=_.current===null,r=!n&&_.current!==t,i=!n&&v.current!==y.length;if(_.current=t,v.current=y.length,cancelAnimationFrame(m.current),m.current=0,n){l(e);return}if(r)return pz(d.current,e,l,m,uz);i&&l(e)},[t,y.length]),(0,b.useEffect)(()=>()=>{cancelAnimationFrame(f.current),f.current=0,g.current?.(),g.current=null},[]);let C=(0,b.useCallback)(()=>{let e=u.current?.getEchartsInstance?.();if(!e)return;g.current?.();let t=e.getZr(),n=n=>{let r=n?.offsetX??n?.zrX,i=n?.offsetY??n?.zrY;if(!Number.isFinite(r)||!Number.isFinite(i)){t.setCursorStyle(`default`);return}let a=hz(e.getWidth(),e.getHeight(),y.length,d.current);if(!(r>=a.left&&r<=a.right&&i>=a.top&&i<=a.bottom)){t.setCursorStyle(`default`);return}if(r>=a.selectionLeft&&r<=a.selectionRight){t.setCursorStyle(h.current?`grabbing`:`grab`);return}t.setCursorStyle(`ew-resize`)},r=e=>n(e),i=t=>{let r=t?.offsetX??t?.zrX,i=t?.offsetY??t?.zrY;if(!Number.isFinite(r)||!Number.isFinite(i))return;let a=hz(e.getWidth(),e.getHeight(),y.length,d.current);h.current=r>=a.selectionLeft&&r<=a.selectionRight&&i>=a.top&&i<=a.bottom,n(t)},a=e=>{h.current=!1,n(e)},o=()=>{h.current=!1,t.setCursorStyle(`default`)};t.on(`mousemove`,r),t.on(`mousedown`,i),t.on(`mouseup`,a),t.on(`globalout`,o),g.current=()=>{t.off(`mousemove`,r),t.off(`mousedown`,i),t.off(`mouseup`,a),t.off(`globalout`,o),t.setCursorStyle(`default`)}},[y.length]),w=(0,b.useRef)(null);(0,b.useEffect)(()=>{if(!o){w.current=null;return}let{id:t,centerDate:n}=o;if(!n||!e.length||w.current===t)return;let r=e.map(e=>e.date),i=r.indexOf(n);if(i<0){s?.();return}w.current=t;let c=Math.max(0,i-3),u=Math.min(r.length-1,i+3);cancelAnimationFrame(m.current),m.current=0,l({startValue:c,endValue:u}),a(n),s?.()},[o,e,a,s]);let T=(0,b.useMemo)(()=>{if(!y.length)return 0;let e=Math.max(0,Math.min(y.length-1,Math.floor(c.startValue??S.startValue??0))),t=Math.max(e,Math.min(y.length-1,Math.floor(c.endValue??S.endValue??y.length-1)));return Math.max(1,t-e+1)},[y.length,c,S]),E=(0,b.useMemo)(()=>{if(!y.length)return{startIdx:0,endIdx:-1};let e=Math.max(0,Math.min(y.length-1,Math.floor(c.startValue??S.startValue??0)));return{startIdx:e,endIdx:Math.max(e,Math.min(y.length-1,Math.floor(c.endValue??S.endValue??y.length-1)))}},[y.length,c,S]),D=(0,b.useMemo)(()=>gz(t,T),[t,T]),O=(0,b.useMemo)(()=>_z(t,T),[t,T]),k=(0,b.useMemo)(()=>vz(t,T),[t,T]),A=(0,b.useMemo)(()=>xL(e,{split:r,metric:n}),[e,r,n]),j=A.groups,ee=(0,b.useMemo)(()=>A.series.map(e=>({name:e.key,values:e.data})),[A.series]),te=A.dayTotals,M=(0,b.useMemo)(()=>{if(!te.length||E.endIdx<E.startIdx)return 0;let e=0;for(let t=E.startIdx;t<=E.endIdx;t++)e=Math.max(e,te[t]||0);return e},[te,E]),N=i===`relative`,P=(0,b.useMemo)(()=>({dates:y,series:ee.map(e=>({key:e.name,label:e.name,data:e.values}))}),[y,ee]),F=`${n}\0${r}`,ne=JL(P,!N,F),re=(0,b.useMemo)(()=>new Map((ne?.series||[]).map(e=>[e.key,e])),[ne]),ie=(0,b.useMemo)(()=>{if(N)return te;let e=y.length,t=Array(e).fill(0);for(let n of ne?.series||[])for(let r=0;r<e;r++)t[r]+=n.data[r]||0;return t},[N,te,ne,y.length]),ae=(0,b.useMemo)(()=>{if(i===`relative`)return 100;if(M)return Math.ceil(M*1.1)},[i,M]),oe=(0,b.useMemo)(()=>{if(!N)return null;if(!ee.length)return[];let e=ee.map(e=>{let t=e.values.map((e,t)=>te[t]>0?e/te[t]*100:0);for(let e=1;e<t.length;e++)te[e]===0&&(t[e]=t[e-1]);return t}),t=e[0].map(()=>0);return e.map((e,n)=>{let r=[...t];return t=t.map((t,n)=>t+e[n]),{values:e,prevStack:r}})},[N,ee,te]),se=(0,b.useMemo)(()=>N?j.map((e,t)=>{let n=r===`model`?Ue(e):We(e);if(!ee[t])return null;let i=oe[t];return i?{id:`daily-${r}-${e}`,name:e,type:`line`,stack:`total`,smooth:.2,areaStyle:{opacity:1},lineStyle:{width:0},symbol:`none`,data:i.values,itemStyle:{color:n}}:null}).filter(Boolean):j.map(e=>{let t=r===`model`?Ue(e):We(e),n=re.get(e)?.data??y.map(()=>0);return{id:`daily-${r}-${e}`,name:e,type:`bar`,stack:`total`,data:n,itemStyle:{color:t},barWidth:k,barMaxWidth:D,barMinWidth:O}}),[N,j,r,oe,ee,re,y,k,D,O]),ce=(0,b.useMemo)(()=>!N||!oe?[]:oe.map((e,t)=>{let n=ee[t],i=Be(r===`model`?Ue(n.name):We(n.name)),a=xz(e.values,e.prevStack);return!a||Math.max(...e.values)<8?null:{name:n.name,labelColor:i,coord:a}}).filter(Boolean),[N,oe,ee,r]),le=(0,b.useCallback)(()=>{if(!u.current)return;let e=u.current.getEchartsInstance();if(!N||ce.length===0){e.setOption({graphic:{elements:[]}},{notMerge:!1});return}let t=ce.map(t=>{let[n,r]=e.convertToPixel({xAxisIndex:0,yAxisIndex:0},t.coord);return{type:`text`,left:n,top:r,style:{text:t.name,fill:t.labelColor,fontSize:10,fontWeight:500,textAlign:`center`,textVerticalAlign:`middle`},z:10,silent:!0}});e.setOption({graphic:{elements:t}},{notMerge:!1})},[N,ce]);(0,b.useEffect)(()=>{let e=setTimeout(le,150);return()=>clearTimeout(e)},[N,ce,le]),(0,b.useEffect)(()=>{let e=()=>le();return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[le]),(0,b.useEffect)(()=>{C()},[C,c]);let I={backgroundColor:`transparent`,tooltip:{trigger:`axis`,axisPointer:{type:N?`line`:`shadow`},appendToBody:!0,confine:!0,formatter:e=>{if(!e?.length)return``;let t=e[0]?.dataIndex,n=ie,r=t==null?0:n[t],a=t;if(i===`relative`&&r===0&&t!=null){for(let e=t-1;e>=0;e--)if(n[e]>0){a=e;break}}let o=i===`relative`&&r===0?n[a]??0:r,s=`<b>${e[0]?.axisValue??``}</b><br/>`,c=[...e].filter(e=>e.value>0).sort((e,t)=>(t.value||0)-(e.value||0));for(let e of c){let t=i===`relative`?ee.find(t=>t.name===e.seriesName)?.values[a]??0:e.value;i===`relative`?s+=`${e.marker} ${e.seriesName}: ${e.value.toFixed(1)}% (${x.fn(t)})<br/>`:s+=`${e.marker} ${e.seriesName}: ${x.fn(e.value)}<br/>`}return s+=i===`relative`?`<b>Total: 100% (${x.fn(o)})</b>`:`<b>Total: ${x.fn(r)}</b>`,s}},legend:{data:j,textStyle:{color:`#8b949e`,fontSize:10},top:0,itemWidth:10,itemHeight:10},grid:{left:dz.left,right:dz.right,top:35,bottom:55},dataZoom:[{type:`slider`,startValue:c.startValue,endValue:c.endValue,left:dz.left,right:dz.right,bottom:dz.bottom,height:dz.height,borderColor:`#30363d`,fillerColor:`rgba(99, 102, 241, 0.08)`,handleStyle:{color:`#6366f1`},textStyle:{color:`#484f58`}}],xAxis:{type:`category`,data:y,boundaryGap:i!==`relative`,axisLabel:{color:`#484f58`,fontSize:10,rotate:45},axisTick:{show:!1},axisLine:{lineStyle:{color:`#30363d`}}},yAxis:{type:`value`,min:0,max:i===`relative`?100:ae,scale:!1,axisLabel:{formatter:i===`relative`?e=>e+`%`:e=>x.fn(e),color:`#484f58`},splitLine:{lineStyle:{color:`#21262d`}}},series:se,...N?$I:pL};return(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`button`,{className:`export-btn`,onClick:()=>cz(u),children:`PNG`}),(0,R.jsx)(Ae,{ref:u,echarts:YO,option:I,style:{height:400},theme:`dark`,notMerge:!1,replaceMerge:[`series`,`legend`,`graphic`],lazyUpdate:!1,onChartReady:()=>{le(),C()},onEvents:{click:e=>{let t=e?.axisValue||e?.name;t&&a(t)},datazoom:e=>{p.current=fz(e,y,d.current),f.current||=requestAnimationFrame(()=>{f.current=0,p.current&&=(l(p.current),null),N&&le()})}}})]})});function wz({data:e,range:t=`total`,chartMode:n=`default`,navigateToDayRequest:r=null,onNavigateToDayConsumed:i}){let[a,o]=(0,b.useState)(`tokens`),[s,c]=(0,b.useState)(`model`),[l,u]=(0,b.useState)(`absolute`),[d,f]=(0,b.useState)(null);if(!e?.data?.length)return(0,R.jsx)(`div`,{style:{color:`var(--text-muted)`,padding:`2rem`},children:`No data`});let p=(0,b.useMemo)(()=>vL(e),[e]);(0,b.useEffect)(()=>{!d&&p[0]&&f(p[p.length-1]?.date||p[0]?.date)},[p,d]);let m=(0,b.useCallback)(e=>{e&&f(e)},[]),h=p.find(e=>e.date===d)||null;return(0,R.jsxs)(`div`,{className:`animate-in`,children:[(0,R.jsxs)(`div`,{className:`section-header`,children:[(0,R.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`0.75rem`},children:(0,R.jsx)(`span`,{className:`section-title`,children:`Daily Usage`})}),(0,R.jsxs)(`div`,{style:{display:`flex`,gap:`0.5rem`},children:[(0,R.jsx)(`div`,{className:`btn-group`,children:az.map(e=>(0,R.jsx)(`button`,{className:`btn ${a===e.key?`active`:``}`,onClick:()=>o(e.key),children:e.label},e.key))}),(0,R.jsx)(`div`,{className:`btn-group`,children:oz.map(e=>(0,R.jsx)(`button`,{className:`btn ${s===e.key?`active`:``}`,onClick:()=>c(e.key),children:e.label},e.key))}),(0,R.jsx)(`div`,{className:`btn-group`,children:sz.map(e=>(0,R.jsx)(`button`,{className:`btn ${l===e.key?`active`:``}`,onClick:()=>u(e.key),children:e.label},e.key))})]})]}),(0,R.jsx)(Cz,{daily:p,range:t,metric:a,split:s,displayMode:l,onSelectDate:m,navigateToDayRequest:r,onNavigateToDayConsumed:i}),h&&(0,R.jsxs)(`div`,{className:`chart-card`,children:[(0,R.jsx)(`div`,{className:`chart-title`,style:{marginBottom:`0.75rem`},children:bz(h,a)}),(0,R.jsx)(Sz,{day:h,chartMode:n})]})]})}function Tz(){return{accessor:(e,t)=>typeof e==`function`?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function Ez(e,t){return typeof e==`function`?e(t):e}function Dz(e,t){return n=>{t.setState(t=>({...t,[e]:Ez(n,t[e])}))}}function Oz(e){return e instanceof Function}function kz(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function Az(e,t){let n=[],r=e=>{e.forEach(e=>{n.push(e);let i=t(e);i!=null&&i.length&&r(i)})};return r(e),n}function jz(e,t,n){let r=[],i;return a=>{let o;n.key&&n.debug&&(o=Date.now());let s=e(a);if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),i=t(...s),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
29
29
  font-size: .6rem;
30
30
  font-weight: bold;
31
31
  color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return i}}function Mz(e,t,n,r){return{debug:()=>e?.debugAll??e[t],key:!1,onChange:r}}function Nz(e,t,n,r){let i={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:()=>i.getValue()??e.options.renderFallbackValue,getContext:jz(()=>[e,n,t,i],(e,t,n,r)=>({table:e,column:t,row:n,cell:r,getValue:r.getValue,renderValue:r.renderValue}),Mz(e.options,`debugCells`,`cell.getContext`))};return e._features.forEach(r=>{r.createCell==null||r.createCell(i,n,t,e)},{}),i}function Pz(e,t,n,r){let i={...e._getDefaultColumnDef(),...t},a=i.accessorKey,o=i.id??(a?typeof String.prototype.replaceAll==`function`?a.replaceAll(`.`,`_`):a.replace(/\./g,`_`):void 0)??(typeof i.header==`string`?i.header:void 0),s;if(i.accessorFn?s=i.accessorFn:a&&(s=a.includes(`.`)?e=>{let t=e;for(let e of a.split(`.`))t=t?.[e];return t}:e=>e[i.accessorKey]),!o)throw Error();let c={id:`${String(o)}`,accessorFn:s,parent:r,depth:n,columnDef:i,columns:[],getFlatColumns:jz(()=>[!0],()=>[c,...c.columns?.flatMap(e=>e.getFlatColumns())],Mz(e.options,`debugColumns`,`column.getFlatColumns`)),getLeafColumns:jz(()=>[e._getOrderColumnsFn()],e=>{var t;return(t=c.columns)!=null&&t.length?e(c.columns.flatMap(e=>e.getLeafColumns())):[c]},Mz(e.options,`debugColumns`,`column.getLeafColumns`))};for(let t of e._features)t.createColumn==null||t.createColumn(c,e);return c}var Fz=`debugHeaders`;function Iz(e,t,n){let r={id:n.id??t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{let e=[],t=n=>{n.subHeaders&&n.subHeaders.length&&n.subHeaders.map(t),e.push(n)};return t(r),e},getContext:()=>({table:e,header:r,column:t})};return e._features.forEach(t=>{t.createHeader==null||t.createHeader(r,e)}),r}var Lz={createTable:e=>{e.getHeaderGroups=jz(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{let a=r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],o=i?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],s=n.filter(e=>!(r!=null&&r.includes(e.id))&&!(i!=null&&i.includes(e.id)));return Rz(t,[...a,...s,...o],e)},Mz(e.options,Fz,`getHeaderGroups`)),e.getCenterHeaderGroups=jz(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(e=>!(r!=null&&r.includes(e.id))&&!(i!=null&&i.includes(e.id))),Rz(t,n,e,`center`)),Mz(e.options,Fz,`getCenterHeaderGroups`)),e.getLeftHeaderGroups=jz(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>Rz(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`left`),Mz(e.options,Fz,`getLeftHeaderGroups`)),e.getRightHeaderGroups=jz(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>Rz(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`right`),Mz(e.options,Fz,`getRightHeaderGroups`)),e.getFooterGroups=jz(()=>[e.getHeaderGroups()],e=>[...e].reverse(),Mz(e.options,Fz,`getFooterGroups`)),e.getLeftFooterGroups=jz(()=>[e.getLeftHeaderGroups()],e=>[...e].reverse(),Mz(e.options,Fz,`getLeftFooterGroups`)),e.getCenterFooterGroups=jz(()=>[e.getCenterHeaderGroups()],e=>[...e].reverse(),Mz(e.options,Fz,`getCenterFooterGroups`)),e.getRightFooterGroups=jz(()=>[e.getRightHeaderGroups()],e=>[...e].reverse(),Mz(e.options,Fz,`getRightFooterGroups`)),e.getFlatHeaders=jz(()=>[e.getHeaderGroups()],e=>e.map(e=>e.headers).flat(),Mz(e.options,Fz,`getFlatHeaders`)),e.getLeftFlatHeaders=jz(()=>[e.getLeftHeaderGroups()],e=>e.map(e=>e.headers).flat(),Mz(e.options,Fz,`getLeftFlatHeaders`)),e.getCenterFlatHeaders=jz(()=>[e.getCenterHeaderGroups()],e=>e.map(e=>e.headers).flat(),Mz(e.options,Fz,`getCenterFlatHeaders`)),e.getRightFlatHeaders=jz(()=>[e.getRightHeaderGroups()],e=>e.map(e=>e.headers).flat(),Mz(e.options,Fz,`getRightFlatHeaders`)),e.getCenterLeafHeaders=jz(()=>[e.getCenterFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),Mz(e.options,Fz,`getCenterLeafHeaders`)),e.getLeftLeafHeaders=jz(()=>[e.getLeftFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),Mz(e.options,Fz,`getLeftLeafHeaders`)),e.getRightLeafHeaders=jz(()=>[e.getRightFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),Mz(e.options,Fz,`getRightLeafHeaders`)),e.getLeafHeaders=jz(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(e,t,n)=>[...e[0]?.headers??[],...t[0]?.headers??[],...n[0]?.headers??[]].map(e=>e.getLeafHeaders()).flat(),Mz(e.options,Fz,`getLeafHeaders`))}};function Rz(e,t,n,r){let i=0,a=function(e,t){t===void 0&&(t=1),i=Math.max(i,t),e.filter(e=>e.getIsVisible()).forEach(e=>{var n;(n=e.columns)!=null&&n.length&&a(e.columns,t+1)},0)};a(e);let o=[],s=(e,t)=>{let i={depth:t,id:[r,`${t}`].filter(Boolean).join(`_`),headers:[]},a=[];e.forEach(e=>{let o=[...a].reverse()[0],s=e.column.depth===i.depth,c,l=!1;if(s&&e.column.parent?c=e.column.parent:(c=e.column,l=!0),o&&o?.column===c)o.subHeaders.push(e);else{let i=Iz(n,c,{id:[r,t,c.id,e?.id].filter(Boolean).join(`_`),isPlaceholder:l,placeholderId:l?`${a.filter(e=>e.column===c).length}`:void 0,depth:t,index:a.length});i.subHeaders.push(e),a.push(i)}i.headers.push(e),e.headerGroup=i}),o.push(i),t>0&&s(a,t-1)};s(t.map((e,t)=>Iz(n,e,{depth:i,index:t})),i-1),o.reverse();let c=e=>e.filter(e=>e.column.getIsVisible()).map(e=>{let t=0,n=0,r=[0];e.subHeaders&&e.subHeaders.length?(r=[],c(e.subHeaders).forEach(e=>{let{colSpan:n,rowSpan:i}=e;t+=n,r.push(i)})):t=1;let i=Math.min(...r);return n+=i,e.colSpan=t,e.rowSpan=n,{colSpan:t,rowSpan:n}});return c(o[0]?.headers??[]),o}var zz=(e,t,n,r,i,a,o)=>{let s={id:t,index:r,original:n,depth:i,parentId:o,_valuesCache:{},_uniqueValuesCache:{},getValue:t=>{if(s._valuesCache.hasOwnProperty(t))return s._valuesCache[t];let n=e.getColumn(t);if(n!=null&&n.accessorFn)return s._valuesCache[t]=n.accessorFn(s.original,r),s._valuesCache[t]},getUniqueValues:t=>{if(s._uniqueValuesCache.hasOwnProperty(t))return s._uniqueValuesCache[t];let n=e.getColumn(t);if(n!=null&&n.accessorFn)return n.columnDef.getUniqueValues?(s._uniqueValuesCache[t]=n.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[t]):(s._uniqueValuesCache[t]=[s.getValue(t)],s._uniqueValuesCache[t])},renderValue:t=>s.getValue(t)??e.options.renderFallbackValue,subRows:a??[],getLeafRows:()=>Az(s.subRows,e=>e.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let e=[],t=s;for(;;){let n=t.getParentRow();if(!n)break;e.push(n),t=n}return e.reverse()},getAllCells:jz(()=>[e.getAllLeafColumns()],t=>t.map(t=>Nz(e,s,t,t.id)),Mz(e.options,`debugRows`,`getAllCells`)),_getAllCellsByColumnId:jz(()=>[s.getAllCells()],e=>e.reduce((e,t)=>(e[t.column.id]=t,e),{}),Mz(e.options,`debugRows`,`getAllCellsByColumnId`))};for(let t=0;t<e._features.length;t++){let n=e._features[t];n==null||n.createRow==null||n.createRow(s,e)}return s},Bz={createColumn:(e,t)=>{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},Vz=(e,t,n)=>{var r,i;let a=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((i=e.getValue(t))==null||(i=i.toString())==null||(i=i.toLowerCase())==null)&&i.includes(a))};Vz.autoRemove=e=>Zz(e);var Hz=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};Hz.autoRemove=e=>Zz(e);var Uz=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};Uz.autoRemove=e=>Zz(e);var Wz=(e,t,n)=>e.getValue(t)?.includes(n);Wz.autoRemove=e=>Zz(e);var Gz=(e,t,n)=>!n.some(n=>{var r;return!((r=e.getValue(t))!=null&&r.includes(n))});Gz.autoRemove=e=>Zz(e)||!(e!=null&&e.length);var Kz=(e,t,n)=>n.some(n=>e.getValue(t)?.includes(n));Kz.autoRemove=e=>Zz(e)||!(e!=null&&e.length);var qz=(e,t,n)=>e.getValue(t)===n;qz.autoRemove=e=>Zz(e);var Jz=(e,t,n)=>e.getValue(t)==n;Jz.autoRemove=e=>Zz(e);var Yz=(e,t,n)=>{let[r,i]=n,a=e.getValue(t);return a>=r&&a<=i};Yz.resolveFilterValue=e=>{let[t,n]=e,r=typeof t==`number`?t:parseFloat(t),i=typeof n==`number`?n:parseFloat(n),a=t===null||Number.isNaN(r)?-1/0:r,o=n===null||Number.isNaN(i)?1/0:i;if(a>o){let e=a;a=o,o=e}return[a,o]},Yz.autoRemove=e=>Zz(e)||Zz(e[0])&&Zz(e[1]);var Xz={includesString:Vz,includesStringSensitive:Hz,equalsString:Uz,arrIncludes:Wz,arrIncludesAll:Gz,arrIncludesSome:Kz,equals:qz,weakEquals:Jz,inNumberRange:Yz};function Zz(e){return e==null||e===``}var Qz={getDefaultColumnDef:()=>({filterFn:`auto`}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:Dz(`columnFilters`,e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{let n=t.getCoreRowModel().flatRows[0]?.getValue(e.id);return typeof n==`string`?Xz.includesString:typeof n==`number`?Xz.inNumberRange:typeof n==`boolean`||typeof n==`object`&&n?Xz.equals:Array.isArray(n)?Xz.arrIncludes:Xz.weakEquals},e.getFilterFn=()=>Oz(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn===`auto`?e.getAutoFilterFn():t.options.filterFns?.[e.columnDef.filterFn]??Xz[e.columnDef.filterFn],e.getCanFilter=()=>(e.columnDef.enableColumnFilter??!0)&&(t.options.enableColumnFilters??!0)&&(t.options.enableFilters??!0)&&!!e.accessorFn,e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(t=>t.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>t.getState().columnFilters?.findIndex(t=>t.id===e.id)??-1,e.setFilterValue=n=>{t.setColumnFilters(t=>{let r=e.getFilterFn(),i=t?.find(t=>t.id===e.id),a=Ez(n,i?i.value:void 0);if($z(r,a,e))return t?.filter(t=>t.id!==e.id)??[];let o={id:e.id,value:a};return i?t?.map(t=>t.id===e.id?o:t)??[]:t!=null&&t.length?[...t,o]:[o]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{let n=e.getAllLeafColumns();e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(e=>Ez(t,e)?.filter(e=>{let t=n.find(t=>t.id===e.id);return!(t&&$z(t.getFilterFn(),e.value,t))}))},e.resetColumnFilters=t=>{e.setColumnFilters(t?[]:e.initialState?.columnFilters??[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function $z(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||t===void 0||typeof t==`string`&&!t}var eB={sum:(e,t,n)=>n.reduce((t,n)=>{let r=n.getValue(e);return t+(typeof r==`number`?r:0)},0),min:(e,t,n)=>{let r;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r>n||r===void 0&&n>=n)&&(r=n)}),r},max:(e,t,n)=>{let r;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r<n||r===void 0&&n>=n)&&(r=n)}),r},extent:(e,t,n)=>{let r,i;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r===void 0?n>=n&&(r=i=n):(r>n&&(r=n),i<n&&(i=n)))}),[r,i]},mean:(e,t)=>{let n=0,r=0;if(t.forEach(t=>{let i=t.getValue(e);i!=null&&(i=+i)>=i&&(++n,r+=i)}),n)return r/n},median:(e,t)=>{if(!t.length)return;let n=t.map(t=>t.getValue(e));if(!kz(n))return;if(n.length===1)return n[0];let r=Math.floor(n.length/2),i=n.sort((e,t)=>e-t);return n.length%2==0?(i[r-1]+i[r])/2:i[r]},unique:(e,t)=>Array.from(new Set(t.map(t=>t.getValue(e))).values()),uniqueCount:(e,t)=>new Set(t.map(t=>t.getValue(e))).size,count:(e,t)=>t.length},tB={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t;return((t=e.getValue())==null||t.toString==null?void 0:t.toString())??null},aggregationFn:`auto`}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:Dz(`grouping`,e),groupedColumnMode:`reorder`}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(t=>t!=null&&t.includes(e.id)?t.filter(t=>t!==e.id):[...t??[],e.id])},e.getCanGroup=()=>(e.columnDef.enableGrouping??!0)&&(t.options.enableGrouping??!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue),e.getIsGrouped=()=>t.getState().grouping?.includes(e.id),e.getGroupedIndex=()=>t.getState().grouping?.indexOf(e.id),e.getToggleGroupingHandler=()=>{let t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{let n=t.getCoreRowModel().flatRows[0]?.getValue(e.id);if(typeof n==`number`)return eB.sum;if(Object.prototype.toString.call(n)===`[object Date]`)return eB.extent},e.getAggregationFn=()=>{if(!e)throw Error();return Oz(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn===`auto`?e.getAutoAggregationFn():t.options.aggregationFns?.[e.columnDef.aggregationFn]??eB[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{e.setGrouping(t?[]:e.initialState?.grouping??[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];let r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((t=n.subRows)!=null&&t.length)}}};function nB(e,t,n){if(!(t!=null&&t.length)||!n)return e;let r=e.filter(e=>!t.includes(e.id));return n===`remove`?r:[...t.map(t=>e.find(e=>e.id===t)).filter(Boolean),...r]}var rB={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:Dz(`columnOrder`,e)}),createColumn:(e,t)=>{e.getIndex=jz(e=>[mB(t,e)],t=>t.findIndex(t=>t.id===e.id),Mz(t.options,`debugColumns`,`getIndex`)),e.getIsFirstColumn=n=>mB(t,n)[0]?.id===e.id,e.getIsLastColumn=n=>{let r=mB(t,n);return r[r.length-1]?.id===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{e.setColumnOrder(t?[]:e.initialState.columnOrder??[])},e._getOrderColumnsFn=jz(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(e,t,n)=>r=>{let i=[];if(!(e!=null&&e.length))i=r;else{let t=[...e],n=[...r];for(;n.length&&t.length;){let e=t.shift(),r=n.findIndex(t=>t.id===e);r>-1&&i.push(n.splice(r,1)[0])}i=[...i,...n]}return nB(i,t,n)},Mz(e.options,`debugTable`,`_getOrderColumnsFn`))}},iB=()=>({left:[],right:[]}),aB={getInitialState:e=>({columnPinning:iB(),...e}),getDefaultOptions:e=>({onColumnPinningChange:Dz(`columnPinning`,e)}),createColumn:(e,t)=>{e.pin=n=>{let r=e.getLeafColumns().map(e=>e.id).filter(Boolean);t.setColumnPinning(e=>n===`right`?{left:(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),right:[...(e?.right??[]).filter(e=>!(r!=null&&r.includes(e))),...r]}:n===`left`?{left:[...(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),...r],right:(e?.right??[]).filter(e=>!(r!=null&&r.includes(e)))}:{left:(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),right:(e?.right??[]).filter(e=>!(r!=null&&r.includes(e)))})},e.getCanPin=()=>e.getLeafColumns().some(e=>(e.columnDef.enablePinning??!0)&&(t.options.enableColumnPinning??t.options.enablePinning??!0)),e.getIsPinned=()=>{let n=e.getLeafColumns().map(e=>e.id),{left:r,right:i}=t.getState().columnPinning,a=n.some(e=>r?.includes(e)),o=n.some(e=>i?.includes(e));return a?`left`:o?`right`:!1},e.getPinnedIndex=()=>{var n;let r=e.getIsPinned();return r?((n=t.getState().columnPinning)==null||(n=n[r])==null?void 0:n.indexOf(e.id))??-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=jz(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(e,t,n)=>{let r=[...t??[],...n??[]];return e.filter(e=>!r.includes(e.column.id))},Mz(t.options,`debugRows`,`getCenterVisibleCells`)),e.getLeftVisibleCells=jz(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(e,t)=>(t??[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:`left`})),Mz(t.options,`debugRows`,`getLeftVisibleCells`)),e.getRightVisibleCells=jz(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(e,t)=>(t??[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:`right`})),Mz(t.options,`debugRows`,`getRightVisibleCells`))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>e.setColumnPinning(t?iB():e.initialState?.columnPinning??iB()),e.getIsSomeColumnsPinned=t=>{let n=e.getState().columnPinning;return t?!!n[t]?.length:!!(n.left?.length||n.right?.length)},e.getLeftLeafColumns=jz(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),Mz(e.options,`debugColumns`,`getLeftLeafColumns`)),e.getRightLeafColumns=jz(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),Mz(e.options,`debugColumns`,`getRightLeafColumns`)),e.getCenterLeafColumns=jz(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(e,t,n)=>{let r=[...t??[],...n??[]];return e.filter(e=>!r.includes(e.id))},Mz(e.options,`debugColumns`,`getCenterLeafColumns`))}};function oB(e){return e||(typeof document<`u`?document:null)}var sB={size:150,minSize:20,maxSize:2**53-1},cB=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),lB={getDefaultColumnDef:()=>sB,getInitialState:e=>({columnSizing:{},columnSizingInfo:cB(),...e}),getDefaultOptions:e=>({columnResizeMode:`onEnd`,columnResizeDirection:`ltr`,onColumnSizingChange:Dz(`columnSizing`,e),onColumnSizingInfoChange:Dz(`columnSizingInfo`,e)}),createColumn:(e,t)=>{e.getSize=()=>{let n=t.getState().columnSizing[e.id];return Math.min(Math.max(e.columnDef.minSize??sB.minSize,n??e.columnDef.size??sB.size),e.columnDef.maxSize??sB.maxSize)},e.getStart=jz(e=>[e,mB(t,e),t.getState().columnSizing],(t,n)=>n.slice(0,e.getIndex(t)).reduce((e,t)=>e+t.getSize(),0),Mz(t.options,`debugColumns`,`getStart`)),e.getAfter=jz(e=>[e,mB(t,e),t.getState().columnSizing],(t,n)=>n.slice(e.getIndex(t)+1).reduce((e,t)=>e+t.getSize(),0),Mz(t.options,`debugColumns`,`getAfter`)),e.resetSize=()=>{t.setColumnSizing(t=>{let{[e.id]:n,...r}=t;return r})},e.getCanResize=()=>(e.columnDef.enableResizing??!0)&&(t.options.enableColumnResizing??!0),e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let t=0,n=e=>{e.subHeaders.length?e.subHeaders.forEach(n):t+=e.column.getSize()??0};return n(e),t},e.getStart=()=>{if(e.index>0){let t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},e.getResizeHandler=n=>{let r=t.getColumn(e.column.id),i=r?.getCanResize();return a=>{if(!r||!i||(a.persist==null||a.persist(),fB(a)&&a.touches&&a.touches.length>1))return;let o=e.getSize(),s=e?e.getLeafHeaders().map(e=>[e.column.id,e.column.getSize()]):[[r.id,r.getSize()]],c=fB(a)?Math.round(a.touches[0].clientX):a.clientX,l={},u=(e,n)=>{typeof n==`number`&&(t.setColumnSizingInfo(e=>{let r=t.options.columnResizeDirection===`rtl`?-1:1,i=(n-(e?.startOffset??0))*r,a=Math.max(i/(e?.startSize??0),-.999999);return e.columnSizingStart.forEach(e=>{let[t,n]=e;l[t]=Math.round(Math.max(n+n*a,0)*100)/100}),{...e,deltaOffset:i,deltaPercentage:a}}),(t.options.columnResizeMode===`onChange`||e===`end`)&&t.setColumnSizing(e=>({...e,...l})))},d=e=>u(`move`,e),f=e=>{u(`end`,e),t.setColumnSizingInfo(e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=oB(n),m={moveHandler:e=>d(e.clientX),upHandler:e=>{p?.removeEventListener(`mousemove`,m.moveHandler),p?.removeEventListener(`mouseup`,m.upHandler),f(e.clientX)}},h={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),d(e.touches[0].clientX),!1),upHandler:e=>{p?.removeEventListener(`touchmove`,h.moveHandler),p?.removeEventListener(`touchend`,h.upHandler),e.cancelable&&(e.preventDefault(),e.stopPropagation()),f(e.touches[0]?.clientX)}},g=dB()?{passive:!1}:!1;fB(a)?(p?.addEventListener(`touchmove`,h.moveHandler,g),p?.addEventListener(`touchend`,h.upHandler,g)):(p?.addEventListener(`mousemove`,m.moveHandler,g),p?.addEventListener(`mouseup`,m.upHandler,g)),t.setColumnSizingInfo(e=>({...e,startOffset:c,startSize:o,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{e.setColumnSizing(t?{}:e.initialState.columnSizing??{})},e.resetHeaderSizeInfo=t=>{e.setColumnSizingInfo(t?cB():e.initialState.columnSizingInfo??cB())},e.getTotalSize=()=>e.getHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getLeftTotalSize=()=>e.getLeftHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getCenterTotalSize=()=>e.getCenterHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getRightTotalSize=()=>e.getRightHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0}},uB=null;function dB(){if(typeof uB==`boolean`)return uB;let e=!1;try{let t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener(`test`,n,t),window.removeEventListener(`test`,n)}catch{e=!1}return uB=e,uB}function fB(e){return e.type===`touchstart`}var pB={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:Dz(`columnVisibility`,e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(t=>({...t,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{let n=e.columns;return(n.length?n.some(e=>e.getIsVisible()):t.getState().columnVisibility?.[e.id])??!0},e.getCanHide=()=>(e.columnDef.enableHiding??!0)&&(t.options.enableHiding??!0),e.getToggleVisibilityHandler=()=>t=>{e.toggleVisibility==null||e.toggleVisibility(t.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=jz(()=>[e.getAllCells(),t.getState().columnVisibility],e=>e.filter(e=>e.column.getIsVisible()),Mz(t.options,`debugRows`,`_getAllVisibleCells`)),e.getVisibleCells=jz(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(e,t,n)=>[...e,...t,...n],Mz(t.options,`debugRows`,`getVisibleCells`))},createTable:e=>{let t=(t,n)=>jz(()=>[n(),n().filter(e=>e.getIsVisible()).map(e=>e.id).join(`_`)],e=>e.filter(e=>e.getIsVisible==null?void 0:e.getIsVisible()),Mz(e.options,`debugColumns`,t));e.getVisibleFlatColumns=t(`getVisibleFlatColumns`,()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t(`getVisibleLeafColumns`,()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t(`getLeftVisibleLeafColumns`,()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t(`getRightVisibleLeafColumns`,()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t(`getCenterVisibleLeafColumns`,()=>e.getCenterLeafColumns()),e.setColumnVisibility=t=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(t),e.resetColumnVisibility=t=>{e.setColumnVisibility(t?{}:e.initialState.columnVisibility??{})},e.toggleAllColumnsVisible=t=>{t??=!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((e,n)=>({...e,[n.id]:t||!(n.getCanHide!=null&&n.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(e=>!(e.getIsVisible!=null&&e.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(e=>e.getIsVisible==null?void 0:e.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>t=>{e.toggleAllColumnsVisible(t.target?.checked)}}};function mB(e,t){return t?t===`center`?e.getCenterVisibleLeafColumns():t===`left`?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}var hB={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,`__global__`),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,`__global__`),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,`__global__`),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},gB={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:Dz(`globalFilter`,e),globalFilterFn:`auto`,getColumnCanGlobalFilter:t=>{var n;let r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r==`string`||typeof r==`number`}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>(e.columnDef.enableGlobalFilter??!0)&&(t.options.enableGlobalFilter??!0)&&(t.options.enableFilters??!0)&&((t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))??!0)&&!!e.accessorFn},createTable:e=>{e.getGlobalAutoFilterFn=()=>Xz.includesString,e.getGlobalFilterFn=()=>{let{globalFilterFn:t}=e.options;return Oz(t)?t:t===`auto`?e.getGlobalAutoFilterFn():e.options.filterFns?.[t]??Xz[t]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},_B={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:Dz(`expanded`,e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{if(!t){e._queue(()=>{t=!0});return}if(e.options.autoResetAll??e.options.autoResetExpanded??!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=t=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(t),e.toggleAllRowsExpanded=t=>{t??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=t=>{e.setExpanded(t?{}:e.initialState?.expanded??{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(e=>e.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>t=>{t.persist==null||t.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{let t=e.getState().expanded;return t===!0||Object.values(t).some(Boolean)},e.getIsAllRowsExpanded=()=>{let t=e.getState().expanded;return typeof t==`boolean`?t===!0:!(!Object.keys(t).length||e.getRowModel().flatRows.some(e=>!e.getIsExpanded()))},e.getExpandedDepth=()=>{let t=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(e=>{let n=e.split(`.`);t=Math.max(t,n.length)}),t},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{let i=r===!0?!0:!!(r!=null&&r[e.id]),a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(e=>{a[e]=!0}):a=r,n??=!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){let{[e.id]:t,...n}=a;return n}return r})},e.getIsExpanded=()=>{let n=t.getState().expanded;return!!((t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))??(n===!0||n?.[e.id]))},e.getCanExpand=()=>{var n;return(t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))??((t.options.enableExpanding??!0)&&!!((n=e.subRows)!=null&&n.length))},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{let t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}}},vB=0,yB=10,bB=()=>({pageIndex:vB,pageSize:yB}),xB={getInitialState:e=>({...e,pagination:{...bB(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:Dz(`pagination`,e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{if(!t){e._queue(()=>{t=!0});return}if(e.options.autoResetAll??e.options.autoResetPageIndex??!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=t=>e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(e=>Ez(t,e)),e.resetPagination=t=>{e.setPagination(t?bB():e.initialState.pagination??bB())},e.setPageIndex=t=>{e.setPagination(n=>{let r=Ez(t,n.pageIndex),i=e.options.pageCount===void 0||e.options.pageCount===-1?2**53-1:e.options.pageCount-1;return r=Math.max(0,Math.min(r,i)),{...n,pageIndex:r}})},e.resetPageIndex=t=>{var n;e.setPageIndex(t?vB:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageIndex)??vB)},e.resetPageSize=t=>{var n;e.setPageSize(t?yB:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageSize)??yB)},e.setPageSize=t=>{e.setPagination(e=>{let n=Math.max(1,Ez(t,e.pageSize)),r=e.pageSize*e.pageIndex,i=Math.floor(r/n);return{...e,pageIndex:i,pageSize:n}})},e.setPageCount=t=>e.setPagination(n=>{let r=Ez(t,e.options.pageCount??-1);return typeof r==`number`&&(r=Math.max(-1,r)),{...n,pageCount:r}}),e.getPageOptions=jz(()=>[e.getPageCount()],e=>{let t=[];return e&&e>0&&(t=[...Array(e)].fill(null).map((e,t)=>t)),t},Mz(e.options,`debugTable`,`getPageOptions`)),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{let{pageIndex:t}=e.getState().pagination,n=e.getPageCount();return n===-1?!0:n===0?!1:t<n-1},e.previousPage=()=>e.setPageIndex(e=>e-1),e.nextPage=()=>e.setPageIndex(e=>e+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>e.options.pageCount??Math.ceil(e.getRowCount()/e.getState().pagination.pageSize),e.getRowCount=()=>e.options.rowCount??e.getPrePaginationRowModel().rows.length}},SB=()=>({top:[],bottom:[]}),CB={getInitialState:e=>({rowPinning:SB(),...e}),getDefaultOptions:e=>({onRowPinningChange:Dz(`rowPinning`,e)}),createRow:(e,t)=>{e.pin=(n,r,i)=>{let a=r?e.getLeafRows().map(e=>{let{id:t}=e;return t}):[],o=i?e.getParentRows().map(e=>{let{id:t}=e;return t}):[],s=new Set([...o,e.id,...a]);t.setRowPinning(e=>n===`bottom`?{top:(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),bottom:[...(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e))),...Array.from(s)]}:n===`top`?{top:[...(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),...Array.from(s)],bottom:(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e)))}:{top:(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),bottom:(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e)))})},e.getCanPin=()=>{let{enableRowPinning:n,enablePinning:r}=t.options;return typeof n==`function`?n(e):n??r??!0},e.getIsPinned=()=>{let n=[e.id],{top:r,bottom:i}=t.getState().rowPinning,a=n.some(e=>r?.includes(e)),o=n.some(e=>i?.includes(e));return a?`top`:o?`bottom`:!1},e.getPinnedIndex=()=>{let n=e.getIsPinned();return n?((n===`top`?t.getTopRows():t.getBottomRows())?.map(e=>{let{id:t}=e;return t}))?.indexOf(e.id)??-1:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>e.setRowPinning(t?SB():e.initialState?.rowPinning??SB()),e.getIsSomeRowsPinned=t=>{let n=e.getState().rowPinning;return t?!!n[t]?.length:!!(n.top?.length||n.bottom?.length)},e._getPinnedRows=(t,n,r)=>(e.options.keepPinnedRows??!0?(n??[]).map(t=>{let n=e.getRow(t,!0);return n.getIsAllParentsExpanded()?n:null}):(n??[]).map(e=>t.find(t=>t.id===e))).filter(Boolean).map(e=>({...e,position:r})),e.getTopRows=jz(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,`top`),Mz(e.options,`debugRows`,`getTopRows`)),e.getBottomRows=jz(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,`bottom`),Mz(e.options,`debugRows`,`getBottomRows`)),e.getCenterRows=jz(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(e,t,n)=>{let r=new Set([...t??[],...n??[]]);return e.filter(e=>!r.has(e.id))},Mz(e.options,`debugRows`,`getCenterRows`))}},wB={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:Dz(`rowSelection`,e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>e.setRowSelection(t?{}:e.initialState.rowSelection??{}),e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=t===void 0?!e.getIsAllRowsSelected():t;let r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(e=>{e.getCanSelect()&&(r[e.id]=!0)}):i.forEach(e=>{delete r[e.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{let r=t===void 0?!e.getIsAllPageRowsSelected():t,i={...n};return e.getRowModel().rows.forEach(t=>{TB(i,t.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=jz(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?EB(e,n):{rows:[],flatRows:[],rowsById:{}},Mz(e.options,`debugTable`,`getSelectedRowModel`)),e.getFilteredSelectedRowModel=jz(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?EB(e,n):{rows:[],flatRows:[],rowsById:{}},Mz(e.options,`debugTable`,`getFilteredSelectedRowModel`)),e.getGroupedSelectedRowModel=jz(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?EB(e,n):{rows:[],flatRows:[],rowsById:{}},Mz(e.options,`debugTable`,`getGroupedSelectedRowModel`)),e.getIsAllRowsSelected=()=>{let t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState(),r=!!(t.length&&Object.keys(n).length);return r&&t.some(e=>e.getCanSelect()&&!n[e.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{let t=e.getPaginationRowModel().flatRows.filter(e=>e.getCanSelect()),{rowSelection:n}=e.getState(),r=!!t.length;return r&&t.some(e=>!n[e.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{let t=Object.keys(e.getState().rowSelection??{}).length;return t>0&&t<e.getFilteredRowModel().flatRows.length},e.getIsSomePageRowsSelected=()=>{let t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(e=>e.getCanSelect()).some(e=>e.getIsSelected()||e.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{let i=e.getIsSelected();t.setRowSelection(a=>{if(n=n===void 0?!i:n,e.getCanSelect()&&i===n)return a;let o={...a};return TB(o,e.id,n,r?.selectChildren??!0,t),o})},e.getIsSelected=()=>{let{rowSelection:n}=t.getState();return DB(e,n)},e.getIsSomeSelected=()=>{let{rowSelection:n}=t.getState();return OB(e,n)===`some`},e.getIsAllSubRowsSelected=()=>{let{rowSelection:n}=t.getState();return OB(e,n)===`all`},e.getCanSelect=()=>typeof t.options.enableRowSelection==`function`?t.options.enableRowSelection(e):t.options.enableRowSelection??!0,e.getCanSelectSubRows=()=>typeof t.options.enableSubRowSelection==`function`?t.options.enableSubRowSelection(e):t.options.enableSubRowSelection??!0,e.getCanMultiSelect=()=>typeof t.options.enableMultiRowSelection==`function`?t.options.enableMultiRowSelection(e):t.options.enableMultiRowSelection??!0,e.getToggleSelectedHandler=()=>{let t=e.getCanSelect();return n=>{t&&e.toggleSelected(n.target?.checked)}}}},TB=(e,t,n,r,i)=>{var a;let o=i.getRow(t,!0);n?(o.getCanMultiSelect()||Object.keys(e).forEach(t=>delete e[t]),o.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(a=o.subRows)!=null&&a.length&&o.getCanSelectSubRows()&&o.subRows.forEach(t=>TB(e,t.id,n,r,i))};function EB(e,t){let n=e.getState().rowSelection,r=[],i={},a=function(e,t){return e.map(e=>{var t;let o=DB(e,n);if(o&&(r.push(e),i[e.id]=e),(t=e.subRows)!=null&&t.length&&(e={...e,subRows:a(e.subRows)}),o)return e}).filter(Boolean)};return{rows:a(t.rows),flatRows:r,rowsById:i}}function DB(e,t){return t[e.id]??!1}function OB(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let i=!0,a=!1;return e.subRows.forEach(e=>{if(!(a&&!i)&&(e.getCanSelect()&&(DB(e,t)?a=!0:i=!1),e.subRows&&e.subRows.length)){let n=OB(e,t);n===`all`?a=!0:(n===`some`&&(a=!0),i=!1)}}),i?`all`:a?`some`:!1}var kB=/([0-9]+)/gm,AB=(e,t,n)=>RB(LB(e.getValue(n)).toLowerCase(),LB(t.getValue(n)).toLowerCase()),jB=(e,t,n)=>RB(LB(e.getValue(n)),LB(t.getValue(n))),MB=(e,t,n)=>IB(LB(e.getValue(n)).toLowerCase(),LB(t.getValue(n)).toLowerCase()),NB=(e,t,n)=>IB(LB(e.getValue(n)),LB(t.getValue(n))),PB=(e,t,n)=>{let r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},FB=(e,t,n)=>IB(e.getValue(n),t.getValue(n));function IB(e,t){return e===t?0:e>t?1:-1}function LB(e){return typeof e==`number`?isNaN(e)||e===1/0||e===-1/0?``:String(e):typeof e==`string`?e:``}function RB(e,t){let n=e.split(kB).filter(Boolean),r=t.split(kB).filter(Boolean);for(;n.length&&r.length;){let e=n.shift(),t=r.shift(),i=parseInt(e,10),a=parseInt(t,10),o=[i,a].sort();if(isNaN(o[0])){if(e>t)return 1;if(t>e)return-1;continue}if(isNaN(o[1]))return isNaN(i)?-1:1;if(i>a)return 1;if(a>i)return-1}return n.length-r.length}var zB={alphanumeric:AB,alphanumericCaseSensitive:jB,text:MB,textCaseSensitive:NB,datetime:PB,basic:FB},BB=[Lz,pB,rB,aB,Bz,Qz,hB,gB,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:`auto`,sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:Dz(`sorting`,e),isMultiSortEvent:e=>e.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{let n=t.getFilteredRowModel().flatRows.slice(10),r=!1;for(let t of n){let n=t?.getValue(e.id);if(Object.prototype.toString.call(n)===`[object Date]`)return zB.datetime;if(typeof n==`string`&&(r=!0,n.split(kB).length>1))return zB.alphanumeric}return r?zB.text:zB.basic},e.getAutoSortDir=()=>typeof t.getFilteredRowModel().flatRows[0]?.getValue(e.id)==`string`?`asc`:`desc`,e.getSortingFn=()=>{if(!e)throw Error();return Oz(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn===`auto`?e.getAutoSortingFn():t.options.sortingFns?.[e.columnDef.sortingFn]??zB[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{let i=e.getNextSortingOrder(),a=n!=null;t.setSorting(o=>{let s=o?.find(t=>t.id===e.id),c=o?.findIndex(t=>t.id===e.id),l=[],u,d=a?n:i===`desc`;return u=o!=null&&o.length&&e.getCanMultiSort()&&r?s?`toggle`:`add`:o!=null&&o.length&&c!==o.length-1?`replace`:s?`toggle`:`replace`,u===`toggle`&&(a||i||(u=`remove`)),u===`add`?(l=[...o,{id:e.id,desc:d}],l.splice(0,l.length-(t.options.maxMultiSortColCount??2**53-1))):l=u===`toggle`?o.map(t=>t.id===e.id?{...t,desc:d}:t):u===`remove`?o.filter(t=>t.id!==e.id):[{id:e.id,desc:d}],l})},e.getFirstSortDir=()=>e.columnDef.sortDescFirst??t.options.sortDescFirst??e.getAutoSortDir()===`desc`?`desc`:`asc`,e.getNextSortingOrder=n=>{let r=e.getFirstSortDir(),i=e.getIsSorted();return i?i!==r&&(t.options.enableSortingRemoval??!0)&&(!n||(t.options.enableMultiRemove??!0))?!1:i===`desc`?`asc`:`desc`:r},e.getCanSort=()=>(e.columnDef.enableSorting??!0)&&(t.options.enableSorting??!0)&&!!e.accessorFn,e.getCanMultiSort=()=>e.columnDef.enableMultiSort??t.options.enableMultiSort??!!e.accessorFn,e.getIsSorted=()=>{let n=t.getState().sorting?.find(t=>t.id===e.id);return n?n.desc?`desc`:`asc`:!1},e.getSortIndex=()=>t.getState().sorting?.findIndex(t=>t.id===e.id)??-1,e.clearSorting=()=>{t.setSorting(t=>t!=null&&t.length?t.filter(t=>t.id!==e.id):[])},e.getToggleSortingHandler=()=>{let n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{e.setSorting(t?[]:e.initialState?.sorting??[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},tB,_B,xB,CB,wB,lB];function VB(e){let t=[...BB,...e._features??[]],n={_features:t},r=n._features.reduce((e,t)=>Object.assign(e,t.getDefaultOptions==null?void 0:t.getDefaultOptions(n)),{}),i=e=>n.options.mergeOptions?n.options.mergeOptions(r,e):{...r,...e},a={...e.initialState??{}};n._features.forEach(e=>{a=(e.getInitialState==null?void 0:e.getInitialState(a))??a});let o=[],s=!1,c={_features:t,options:{...r,...e},initialState:a,_queue:e=>{o.push(e),s||(s=!0,Promise.resolve().then(()=>{for(;o.length;)o.shift()();s=!1}).catch(e=>setTimeout(()=>{throw e})))},reset:()=>{n.setState(n.initialState)},setOptions:e=>{n.options=i(Ez(e,n.options))},getState:()=>n.options.state,setState:e=>{n.options.onStateChange==null||n.options.onStateChange(e)},_getRowId:(e,t,r)=>(n.options.getRowId==null?void 0:n.options.getRowId(e,t,r))??`${r?[r.id,t].join(`.`):t}`,getCoreRowModel:()=>(n._getCoreRowModel||=n.options.getCoreRowModel(n),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:(e,t)=>{let r=(t?n.getPrePaginationRowModel():n.getRowModel()).rowsById[e];if(!r&&(r=n.getCoreRowModel().rowsById[e],!r))throw Error();return r},_getDefaultColumnDef:jz(()=>[n.options.defaultColumn],e=>(e??={},{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>{var t;return((t=e.renderValue())==null||t.toString==null?void 0:t.toString())??null},...n._features.reduce((e,t)=>Object.assign(e,t.getDefaultColumnDef==null?void 0:t.getDefaultColumnDef()),{}),...e}),Mz(e,`debugColumns`,`_getDefaultColumnDef`)),_getColumnDefs:()=>n.options.columns,getAllColumns:jz(()=>[n._getColumnDefs()],e=>{let t=function(e,r,i){return i===void 0&&(i=0),e.map(e=>{let a=Pz(n,e,i,r),o=e;return a.columns=o.columns?t(o.columns,a,i+1):[],a})};return t(e)},Mz(e,`debugColumns`,`getAllColumns`)),getAllFlatColumns:jz(()=>[n.getAllColumns()],e=>e.flatMap(e=>e.getFlatColumns()),Mz(e,`debugColumns`,`getAllFlatColumns`)),_getAllFlatColumnsById:jz(()=>[n.getAllFlatColumns()],e=>e.reduce((e,t)=>(e[t.id]=t,e),{}),Mz(e,`debugColumns`,`getAllFlatColumnsById`)),getAllLeafColumns:jz(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(e,t)=>t(e.flatMap(e=>e.getLeafColumns())),Mz(e,`debugColumns`,`getAllLeafColumns`)),getColumn:e=>n._getAllFlatColumnsById()[e]};Object.assign(n,c);for(let e=0;e<n._features.length;e++){let t=n._features[e];t==null||t.createTable==null||t.createTable(n)}return n}function HB(){return e=>jz(()=>[e.options.data],t=>{let n={rows:[],flatRows:[],rowsById:{}},r=function(t,i,a){i===void 0&&(i=0);let o=[];for(let c=0;c<t.length;c++){let l=zz(e,e._getRowId(t[c],c,a),t[c],c,i,void 0,a?.id);if(n.flatRows.push(l),n.rowsById[l.id]=l,o.push(l),e.options.getSubRows){var s;l.originalSubRows=e.options.getSubRows(t[c],c),(s=l.originalSubRows)!=null&&s.length&&(l.subRows=r(l.originalSubRows,i+1,l))}}return o};return n.rows=r(t),n},Mz(e.options,`debugTable`,`getRowModel`,()=>e._autoResetPageIndex()))}function UB(){return e=>jz(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;let r=e.getState().sorting,i=[],a=r.filter(t=>e.getColumn(t.id)?.getCanSort()),o={};a.forEach(t=>{let n=e.getColumn(t.id);n&&(o[t.id]={sortUndefined:n.columnDef.sortUndefined,invertSorting:n.columnDef.invertSorting,sortingFn:n.getSortingFn()})});let s=e=>{let t=e.map(e=>({...e}));return t.sort((e,t)=>{for(let n=0;n<a.length;n+=1){let r=a[n],i=o[r.id],s=i.sortUndefined,c=r?.desc??!1,l=0;if(s){let n=e.getValue(r.id),i=t.getValue(r.id),a=n===void 0,o=i===void 0;if(a||o){if(s===`first`)return a?-1:1;if(s===`last`)return a?1:-1;l=a&&o?0:a?s:-s}}if(l===0&&(l=i.sortingFn(e,t,r.id)),l!==0)return c&&(l*=-1),i.invertSorting&&(l*=-1),l}return e.index-t.index}),t.forEach(e=>{var t;i.push(e),(t=e.subRows)!=null&&t.length&&(e.subRows=s(e.subRows))}),t};return{rows:s(n.rows),flatRows:i,rowsById:n.rowsById}},Mz(e.options,`debugTable`,`getSortedRowModel`,()=>e._autoResetPageIndex()))}function WB(e,t){return e?GB(e)?b.createElement(e,t):e:null}function GB(e){return KB(e)||typeof e==`function`||qB(e)}function KB(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function qB(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function JB(e){let t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=b.useState(()=>({current:VB(t)})),[r,i]=b.useState(()=>n.current.initialState);return n.current.setOptions(t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{i(t),e.onStateChange==null||e.onStateChange(t)}})),n.current}var YB=_();function XB(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o;n.key&&n.debug?.call(n)&&(o=Date.now());let s=e();if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug?.call(n)&&(c=Date.now()),i=t(...s),n.key&&n.debug?.call(n)){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
@@ -0,0 +1 @@
1
+ :root{--bg-base:#06080f;--bg-surface:#0d1117;--bg-card:#161b22;--bg-card-hover:#1c2333;--bg-elevated:#21262d;--border:#30363d;--border-accent:#6366f140;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#484f58;--accent:#6366f1;--accent-dim:#6366f11f;--green:#3fb950;--yellow:#d29922;--red:#f85149;--orange:#f97316;--cyan:#39d2f5;--pink:#f472b6;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius:8px;--radius-lg:12px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.6}.app{flex-direction:column;min-height:100vh;display:flex}.app-content{opacity:0;flex-direction:column;min-height:100vh;display:flex}.app-content-revealed{opacity:1;animation:.5s forwards contentReveal}@keyframes contentReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.navbar{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0}.navbar-inner{box-sizing:border-box;align-items:center;gap:1.5rem;width:100%;max-width:1400px;height:48px;margin:0 auto;padding:0 2rem;display:flex}.navbar-brand{letter-spacing:-.03em;background:linear-gradient(135deg,#818cf8,#6366f1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:.95rem;font-weight:700}.navbar-tabs{gap:2px;display:flex}.navbar-tab{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;padding:.35rem .85rem;font-size:.8rem;font-weight:500;transition:all .15s,opacity .35s}.navbar-tab:hover{color:var(--text-primary);background:var(--bg-card)}.navbar-tab.active{color:#fff;background:var(--accent)}.navbar-tab.navbar-tab-dimmed,.navbar-tab.navbar-tab-dimmed:hover{opacity:.4;color:var(--text-muted)}.navbar-meta{flex:1;align-items:center;gap:.75rem;min-width:0;margin-left:auto;display:flex}.navbar-ingest-wrap{flex:1;align-items:center;gap:.75rem;min-width:0;transition:opacity .3s;display:flex}.navbar-ingest-wrap.navbar-ingest-fade-out{opacity:0;pointer-events:none}.navbar-date-wrap{flex-shrink:0;align-items:center;gap:.75rem;margin-left:auto;transition:opacity .3s;display:flex}.navbar-date-wrap-dimmed{opacity:.5;pointer-events:none}.navbar-date{font-variant-numeric:tabular-nums;text-align:right;text-overflow:ellipsis;width:22ch;min-width:22ch;display:inline-block;overflow:hidden}.navbar-progress-wrap{background:var(--bg-elevated);border-radius:2px;flex:1;height:4px;overflow:hidden}.navbar-progress-bar{background:linear-gradient(90deg, var(--accent), #818cf8);border-radius:2px;height:100%;transition:width .4s}.navbar-status{color:var(--text-muted);font-size:.7rem;font-family:var(--font-mono)}.main-content{flex:1;width:100%;min-width:0;max-width:1400px;margin:0 auto;padding:1.5rem 2rem 1.25rem;container:main/inline-size}.app-footer-debug{box-sizing:border-box;width:100%;max-width:1400px;color:var(--text-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:center;margin:0 auto;padding:0 2rem .15rem;font-size:.68rem}.app-footer{color:var(--text-muted);text-align:center;box-sizing:border-box;width:100%;max-width:1400px;margin:auto auto 0;padding:.5rem 2rem .75rem;font-size:.7rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.section-title{letter-spacing:-.01em;font-size:1rem;font-weight:600}.stat-row{flex-wrap:wrap;align-items:stretch;gap:1rem;margin-bottom:1.5rem;display:flex}.stat-cards{flex:none;grid-template-columns:repeat(4,minmax(160px,1fr));gap:.75rem;min-width:0;display:grid}@media (width<=920px){.stat-cards{flex:auto;grid-template-columns:repeat(2,minmax(160px,1fr))}}@media (width<=500px){.stat-cards{grid-template-columns:1fr}}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;transition:border-color .2s}.stat-card:hover{border-color:var(--border-accent)}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.35rem;font-size:.65rem;font-weight:600}.stat-value{font-size:1.6rem;font-weight:700;font-family:var(--font-mono);letter-spacing:-.03em;line-height:1.1}.stat-sub{color:var(--text-muted);margin-top:.2rem;font-size:.72rem}.stat-per-day{color:var(--text-muted);font-size:.72rem;font-family:var(--font-mono);margin-top:.25rem}.stat-per-day .stat-per-day-value{color:var(--text-secondary);font-weight:600}.export-overview-frame .stat-row{flex-flow:column;gap:.75rem;margin-bottom:1.25rem}.export-overview-frame .overview-daily-spark{flex:0 0 126px;order:-1;width:100%;min-width:100%;min-height:126px}.export-overview-frame .stat-cards{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.export-overview-frame .stat-card{padding:.95rem 1.1rem}.export-overview-frame .heatmap-wrap{margin-bottom:1.25rem}.export-overview-frame .grid-3{margin-bottom:1rem}.export-overview-frame .chart-card{margin-bottom:0}.range-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.range-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.3rem .7rem;font-size:.72rem;font-weight:600;transition:all .15s}.range-btn:hover{color:var(--text-secondary)}.range-btn.active{color:#fff;background:var(--accent)}.range-btn:disabled{cursor:not-allowed}.export-video-btn{min-width:110px}.export-video-btn:disabled{cursor:not-allowed}.range-btn-unsupported{color:#ffffffeb;background:var(--accent);border-left:1px solid #f0b90b38;position:relative}.range-btn-unsupported:before{content:"";pointer-events:none;background:repeating-linear-gradient(-45deg,#f0b90b0d 0 6px,#ffffff03 6px 12px);position:absolute;inset:0}.range-btn-unsupported:disabled{opacity:.78}.heatmap-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1.5rem;padding:1.25rem;overflow-x:auto}.heatmap-grid{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;display:grid}.heatmap-cell{background:var(--bg-elevated);opacity:.4;border-radius:2px;width:13px;height:13px;transition:background .18s,opacity .22s,transform .22s;transform:scale(.82)}.heatmap-cell.active{opacity:1;transform:scale(1)}.heatmap-cell:hover{outline:1px solid var(--text-muted)}.heatmap-cell.heatmap-cell-pop{animation:.38s cubic-bezier(.34,1.56,.64,1) heatmap-cell-pop}@keyframes heatmap-cell-pop{0%{box-shadow:none;transform:scale(1)}40%{transform:scale(1.4);box-shadow:0 0 10px #6366f1b3,0 0 0 1.5px #0003}70%{transform:scale(1.1);box-shadow:0 0 4px #6366f159,0 0 0 .5px #0000001a}to{box-shadow:none;transform:scale(1)}}.heatmap-cell.heatmap-cell-pop-dim{animation:.32s cubic-bezier(.34,1.56,.64,1) heatmap-cell-pop-dim}@keyframes heatmap-cell-pop-dim{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}.heatmap-labels{color:var(--text-muted);justify-content:space-between;margin-top:.5rem;font-size:.65rem;display:flex}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1.5rem;padding:1.25rem;position:relative}.chart-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.chart-title{font-size:.85rem;font-weight:600}.chart-badge{color:var(--yellow);background:#d299221a;border-radius:4px;padding:.15rem .5rem;font-size:.62rem}.export-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);cursor:pointer;opacity:0;z-index:2;border-radius:4px;padding:.25rem .5rem;font-size:.65rem;transition:all .15s;position:absolute;top:.75rem;right:.75rem}.chart-card:hover .export-btn{opacity:.7}.export-btn:hover{color:var(--text-primary);border-color:var(--accent);opacity:1!important}.grid-2{grid-template-columns:1fr 1fr;gap:1.25rem;min-width:0;margin-bottom:1.5rem;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;min-width:0;margin-bottom:1.5rem;display:grid}.grid-3>.chart-card{min-width:0;overflow:hidden}.grid-3>.overview-donut-card{overflow:visible}.overview-donut-card .echarts-for-react,.overview-donut-card .echarts-for-react>div{overflow:visible!important}@media (width<=900px){.grid-2,.grid-3{grid-template-columns:1fr}}.btn-group{gap:2px;display:flex}.btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);cursor:pointer;border-radius:5px;padding:.3rem .65rem;font-size:.72rem;font-weight:500;transition:all .12s}.btn:hover{color:var(--text-secondary);border-color:var(--text-muted)}.btn.active{color:#fff;background:var(--accent);border-color:var(--accent)}.icon-btn{border:1px solid var(--border);background:var(--bg-card);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:.9rem;line-height:1;transition:color .12s,border-color .12s,background .12s,transform .12s;display:inline-flex}.icon-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--accent);background:var(--bg-elevated);transform:rotate(20deg)}.icon-btn:disabled{opacity:.55;cursor:wait}.overview-daily-spark{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex:140px;min-width:140px;min-height:0;position:relative;overflow:visible}.overview-daily-spark-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);z-index:1;pointer-events:none;font-size:.65rem;font-weight:600;position:absolute;top:1rem;left:1.1rem}.overview-daily-spark-chart{position:absolute;inset:0;overflow:hidden}.overview-daily-spark-bars{position:absolute;inset:4px}.overview-daily-spark-bar{height:100%;position:absolute;bottom:0;transform:translate(-50%)}.overview-daily-spark-segment{width:100%;position:absolute;left:0}.overview-daily-spark-empty{justify-content:center;align-items:center;display:flex}.overview-daily-spark-empty-text{color:var(--text-muted);font-size:.7rem}@media (width<=920px){.overview-daily-spark{flex:100%;min-width:100%;min-height:140px}}.table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.model-detail-wrap{flex-direction:column;gap:.85rem;display:flex}.model-detail-note{color:var(--text-muted);font-size:.74rem;line-height:1.4}.model-detail-footer{justify-content:flex-start;margin-top:.25rem;display:flex}.model-detail-toggle{width:fit-content;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:#ffffff0a;border-radius:6px;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.72rem;font-weight:500;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.model-detail-toggle:hover{color:var(--text-secondary);background:#ffffff0f;border-color:#6366f14d}.model-detail-toggle-text{font-family:var(--font-sans)}.model-detail-toggle-arrow{opacity:.8;font-size:.6rem;transition:transform .25s}.model-detail-toggle-arrow.expanded{transform:rotate(180deg)}.model-detail-charts{z-index:10;flex-wrap:wrap;align-items:flex-start;gap:.25rem;width:100%;display:flex;position:relative;overflow:visible}.model-detail-donut{z-index:10;flex-direction:column;flex:0 0 200px;width:200px;min-width:200px;height:200px;display:flex;overflow:visible}.model-detail-donut .chart-title{flex-shrink:0}.model-detail-donut .echarts-for-react{flex:1;min-height:0}.model-detail-wrap .model-detail-donut{flex:0 0 340px;width:340px;min-width:340px;height:220px}.model-detail-donut .echarts-for-react,.model-detail-donut .echarts-for-react>div,.model-detail-bar .echarts-for-react,.model-detail-bar .echarts-for-react>div{overflow:visible!important}.model-detail-bar{flex-direction:column;flex:300px;min-width:300px;height:200px;display:flex;overflow:visible}.model-detail-bar .chart-title{flex-shrink:0}.model-detail-bar .echarts-for-react{flex:1;min-height:0}.model-detail-summary-wrap{max-height:0;transition:max-height .2s ease-out;overflow:hidden}.model-detail-summary-wrap.expanded{max-height:400px}.model-detail-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;padding-top:.5rem;display:grid}.model-detail-summary-card{border:1px solid var(--border);background:#ffffff05;border-radius:10px;padding:.65rem .75rem}.model-detail-summary-head{color:var(--text-primary);text-transform:capitalize;align-items:center;gap:.45rem;min-width:0;margin-bottom:.45rem;font-size:.76rem;font-weight:600;display:flex}.model-detail-summary-head .model-detail-summary-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.model-detail-swatch{border-radius:999px;flex:none;width:9px;height:9px}.model-detail-summary-line{color:var(--text-muted);font-size:.72rem;line-height:1.45}.detail-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.detail-summary-stat{border:1px solid var(--border);background:#ffffff08;border-radius:10px;padding:.8rem .9rem}.detail-summary-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;font-size:.68rem}.detail-summary-value{font-size:1.1rem;font-family:var(--font-mono);color:var(--text-primary)}.table-search{border-bottom:1px solid var(--border);padding:.75rem 1rem}.table-search input{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-primary);font-size:.82rem;font-family:var(--font-sans);border-radius:6px;outline:none;padding:.5rem .85rem}.table-search input:focus{border-color:var(--accent)}.table-search input::placeholder{color:var(--text-muted)}table{border-collapse:collapse;width:100%;font-size:.78rem}th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;padding:.55rem .85rem;font-size:.68rem;font-weight:600}td{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #30363d80;max-width:240px;padding:.5rem .85rem;overflow:hidden}tr:hover td{color:var(--text-primary);background:#6366f108}.tag{font-size:.66rem;font-family:var(--font-mono);border-radius:4px;padding:.1rem .4rem;font-weight:500;display:inline-block}.tag-review{color:var(--cyan);background:#06b6d41f}.tag-exploration{color:var(--orange);background:#f973161f}.tag-planning{color:var(--yellow);background:#eab3081f}.tag-memory{color:var(--pink);background:#ec48991f}.tag-generic{color:var(--text-secondary);background:#64748b1f}.loading-overlay{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:999;background:#06080feb;flex-direction:column;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0}.loading-overlay.fading{opacity:0;pointer-events:none}.loading-logo{background:linear-gradient(135deg,#818cf8,#6366f1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.loading-bar-wrap{background:var(--bg-elevated);border-radius:2px;width:260px;height:4px;margin-bottom:1rem;overflow:hidden}.loading-bar{background:linear-gradient(90deg, var(--accent), #818cf8);border-radius:2px;height:100%;transition:width .4s}.loading-phase{color:var(--text-secondary);margin-bottom:.2rem;font-size:.82rem;font-weight:500}.loading-detail{font-family:var(--font-mono);color:var(--text-muted);font-size:.72rem}.loading-footer{color:var(--text-muted);font-size:.7rem;position:absolute;bottom:1.5rem}.loading-heart{color:#f43f5e}.coverage-subtle{color:var(--text-muted);align-items:center;gap:1.5rem;margin-top:-.5rem;margin-bottom:.5rem;padding:.25rem 0;font-size:.68rem;display:flex}.coverage-item{font-variant-numeric:tabular-nums;align-items:center;gap:.35rem;display:flex}.coverage-nums{text-align:right;min-width:9ch;display:inline-block}.coverage-nums-single{min-width:4ch}.coverage-dot{border-radius:50%;width:6px;height:6px}html{scrollbar-width:none}::-webkit-scrollbar{width:0;height:0;display:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.35s forwards fadeUp}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.incomplete-badge{color:var(--yellow);background:#d299221a;border-radius:3px;padding:.12rem .45rem;font-size:.65rem;animation:2s infinite pulse}.ingesting-badge .ingesting-pct{text-align:right;font-variant-numeric:tabular-nums;min-width:4ch;display:inline-block}.echarts-tooltip,[class*=ec-component-tooltip]{max-width:90vw!important;max-height:80vh!important;overflow:auto!important}
package/dist/index.html CHANGED
@@ -7,8 +7,8 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com" />
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
9
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
10
- <script type="module" crossorigin src="/assets/index-HV8wVWe1.js"></script>
11
- <link rel="stylesheet" crossorigin href="/assets/index-BBdnQ5aF.css">
10
+ <script type="module" crossorigin src="/assets/index-BfQCWE9K.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-DdbEQTfc.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "codexmeter",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "description": "Local telemetry dashboard for Codex CLI usage",
5
5
  "type": "module",
6
6
  "bin": {
7
- "codexmeter": "./bin/codexmeter.js"
7
+ "codexmeter": "bin/codexmeter.js"
8
8
  },
9
9
  "engines": {
10
10
  "node": "^20.19.0 || >=22.12.0"
@@ -1 +0,0 @@
1
- :root{--bg-base:#06080f;--bg-surface:#0d1117;--bg-card:#161b22;--bg-card-hover:#1c2333;--bg-elevated:#21262d;--border:#30363d;--border-accent:#6366f140;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#484f58;--accent:#6366f1;--accent-dim:#6366f11f;--green:#3fb950;--yellow:#d29922;--red:#f85149;--orange:#f97316;--cyan:#39d2f5;--pink:#f472b6;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius:8px;--radius-lg:12px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.6}.app{flex-direction:column;min-height:100vh;display:flex}.app-content{opacity:0;flex-direction:column;min-height:100vh;display:flex}.app-content-revealed{opacity:1;animation:.5s forwards contentReveal}@keyframes contentReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.navbar{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0}.navbar-inner{box-sizing:border-box;align-items:center;gap:1.5rem;width:100%;max-width:1400px;height:48px;margin:0 auto;padding:0 2rem;display:flex}.navbar-brand{letter-spacing:-.03em;background:linear-gradient(135deg,#818cf8,#6366f1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:.95rem;font-weight:700}.navbar-tabs{gap:2px;display:flex}.navbar-tab{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;padding:.35rem .85rem;font-size:.8rem;font-weight:500;transition:all .15s,opacity .35s}.navbar-tab:hover{color:var(--text-primary);background:var(--bg-card)}.navbar-tab.active{color:#fff;background:var(--accent)}.navbar-tab.navbar-tab-dimmed,.navbar-tab.navbar-tab-dimmed:hover{opacity:.4;color:var(--text-muted)}.navbar-meta{flex:1;align-items:center;gap:.75rem;min-width:0;margin-left:auto;display:flex}.navbar-ingest-wrap{flex:1;align-items:center;gap:.75rem;min-width:0;transition:opacity .3s;display:flex}.navbar-ingest-wrap.navbar-ingest-fade-out{opacity:0;pointer-events:none}.navbar-date-wrap{flex-shrink:0;align-items:center;gap:.75rem;margin-left:auto;transition:opacity .3s;display:flex}.navbar-date-wrap-dimmed{opacity:.5;pointer-events:none}.navbar-date{font-variant-numeric:tabular-nums;text-align:right;text-overflow:ellipsis;width:22ch;min-width:22ch;display:inline-block;overflow:hidden}.navbar-progress-wrap{background:var(--bg-elevated);border-radius:2px;flex:1;height:4px;overflow:hidden}.navbar-progress-bar{background:linear-gradient(90deg, var(--accent), #818cf8);border-radius:2px;height:100%;transition:width .4s}.navbar-status{color:var(--text-muted);font-size:.7rem;font-family:var(--font-mono)}.main-content{flex:1;width:100%;min-width:0;max-width:1400px;margin:0 auto;padding:1.5rem 2rem 1.25rem;container:main/inline-size}.app-footer-debug{box-sizing:border-box;width:100%;max-width:1400px;color:var(--text-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:center;margin:0 auto;padding:0 2rem .15rem;font-size:.68rem}.app-footer{color:var(--text-muted);text-align:center;box-sizing:border-box;width:100%;max-width:1400px;margin:auto auto 0;padding:.5rem 2rem .75rem;font-size:.7rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.section-title{letter-spacing:-.01em;font-size:1rem;font-weight:600}.stat-row{flex-wrap:wrap;align-items:stretch;gap:1rem;margin-bottom:1.5rem;display:flex}.stat-cards{flex:none;grid-template-columns:repeat(4,minmax(160px,1fr));gap:.75rem;min-width:0;display:grid}@media (width<=920px){.stat-cards{flex:auto;grid-template-columns:repeat(2,minmax(160px,1fr))}}@media (width<=500px){.stat-cards{grid-template-columns:1fr}}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;transition:border-color .2s}.stat-card:hover{border-color:var(--border-accent)}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.35rem;font-size:.65rem;font-weight:600}.stat-value{font-size:1.6rem;font-weight:700;font-family:var(--font-mono);letter-spacing:-.03em;line-height:1.1}.stat-sub{color:var(--text-muted);margin-top:.2rem;font-size:.72rem}.stat-per-day{color:var(--text-muted);font-size:.72rem;font-family:var(--font-mono);margin-top:.25rem}.stat-per-day .stat-per-day-value{color:var(--text-secondary);font-weight:600}.range-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.range-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.3rem .7rem;font-size:.72rem;font-weight:600;transition:all .15s}.range-btn:hover{color:var(--text-secondary)}.range-btn.active{color:#fff;background:var(--accent)}.range-btn:disabled{cursor:not-allowed}.export-video-btn{min-width:110px}.export-video-btn:disabled{cursor:not-allowed}.range-btn-unsupported{color:#ffffffeb;background:var(--accent);border-left:1px solid #f0b90b38;position:relative}.range-btn-unsupported:before{content:"";pointer-events:none;background:repeating-linear-gradient(-45deg,#f0b90b0d 0 6px,#ffffff03 6px 12px);position:absolute;inset:0}.range-btn-unsupported:disabled{opacity:.78}.heatmap-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1.5rem;padding:1.25rem;overflow-x:auto}.heatmap-grid{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;display:grid}.heatmap-cell{background:var(--bg-elevated);opacity:.4;border-radius:2px;width:13px;height:13px;transition:background .18s,opacity .22s,transform .22s;transform:scale(.82)}.heatmap-cell.active{opacity:1;transform:scale(1)}.heatmap-cell:hover{outline:1px solid var(--text-muted)}.heatmap-cell.heatmap-cell-pop{animation:.38s cubic-bezier(.34,1.56,.64,1) heatmap-cell-pop}@keyframes heatmap-cell-pop{0%{box-shadow:none;transform:scale(1)}40%{transform:scale(1.4);box-shadow:0 0 10px #6366f1b3,0 0 0 1.5px #0003}70%{transform:scale(1.1);box-shadow:0 0 4px #6366f159,0 0 0 .5px #0000001a}to{box-shadow:none;transform:scale(1)}}.heatmap-cell.heatmap-cell-pop-dim{animation:.32s cubic-bezier(.34,1.56,.64,1) heatmap-cell-pop-dim}@keyframes heatmap-cell-pop-dim{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}.heatmap-labels{color:var(--text-muted);justify-content:space-between;margin-top:.5rem;font-size:.65rem;display:flex}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1.5rem;padding:1.25rem;position:relative}.chart-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.chart-title{font-size:.85rem;font-weight:600}.chart-badge{color:var(--yellow);background:#d299221a;border-radius:4px;padding:.15rem .5rem;font-size:.62rem}.export-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);cursor:pointer;opacity:0;z-index:2;border-radius:4px;padding:.25rem .5rem;font-size:.65rem;transition:all .15s;position:absolute;top:.75rem;right:.75rem}.chart-card:hover .export-btn{opacity:.7}.export-btn:hover{color:var(--text-primary);border-color:var(--accent);opacity:1!important}.grid-2{grid-template-columns:1fr 1fr;gap:1.25rem;min-width:0;margin-bottom:1.5rem;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;min-width:0;margin-bottom:1.5rem;display:grid}.grid-3>.chart-card{min-width:0;overflow:hidden}.grid-3>.overview-donut-card{overflow:visible}.overview-donut-card .echarts-for-react,.overview-donut-card .echarts-for-react>div{overflow:visible!important}@media (width<=900px){.grid-2,.grid-3{grid-template-columns:1fr}}.btn-group{gap:2px;display:flex}.btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);cursor:pointer;border-radius:5px;padding:.3rem .65rem;font-size:.72rem;font-weight:500;transition:all .12s}.btn:hover{color:var(--text-secondary);border-color:var(--text-muted)}.btn.active{color:#fff;background:var(--accent);border-color:var(--accent)}.icon-btn{border:1px solid var(--border);background:var(--bg-card);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:.9rem;line-height:1;transition:color .12s,border-color .12s,background .12s,transform .12s;display:inline-flex}.icon-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--accent);background:var(--bg-elevated);transform:rotate(20deg)}.icon-btn:disabled{opacity:.55;cursor:wait}.overview-daily-spark{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex:140px;min-width:140px;min-height:0;position:relative;overflow:visible}.overview-daily-spark-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);z-index:1;pointer-events:none;font-size:.65rem;font-weight:600;position:absolute;top:1rem;left:1.1rem}.overview-daily-spark-chart{position:absolute;inset:0;overflow:hidden}.overview-daily-spark-bars{position:absolute;inset:4px}.overview-daily-spark-bar{height:100%;position:absolute;bottom:0;transform:translate(-50%)}.overview-daily-spark-segment{width:100%;position:absolute;left:0}.overview-daily-spark-empty{justify-content:center;align-items:center;display:flex}.overview-daily-spark-empty-text{color:var(--text-muted);font-size:.7rem}@media (width<=920px){.overview-daily-spark{flex:100%;min-width:100%;min-height:140px}}.table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.model-detail-wrap{flex-direction:column;gap:.85rem;display:flex}.model-detail-note{color:var(--text-muted);font-size:.74rem;line-height:1.4}.model-detail-footer{justify-content:flex-start;margin-top:.25rem;display:flex}.model-detail-toggle{width:fit-content;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:#ffffff0a;border-radius:6px;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.72rem;font-weight:500;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.model-detail-toggle:hover{color:var(--text-secondary);background:#ffffff0f;border-color:#6366f14d}.model-detail-toggle-text{font-family:var(--font-sans)}.model-detail-toggle-arrow{opacity:.8;font-size:.6rem;transition:transform .25s}.model-detail-toggle-arrow.expanded{transform:rotate(180deg)}.model-detail-charts{z-index:10;flex-wrap:wrap;align-items:flex-start;gap:.25rem;width:100%;display:flex;position:relative;overflow:visible}.model-detail-donut{z-index:10;flex-direction:column;flex:0 0 200px;width:200px;min-width:200px;height:200px;display:flex;overflow:visible}.model-detail-donut .chart-title{flex-shrink:0}.model-detail-donut .echarts-for-react{flex:1;min-height:0}.model-detail-wrap .model-detail-donut{flex:0 0 340px;width:340px;min-width:340px;height:220px}.model-detail-donut .echarts-for-react,.model-detail-donut .echarts-for-react>div,.model-detail-bar .echarts-for-react,.model-detail-bar .echarts-for-react>div{overflow:visible!important}.model-detail-bar{flex-direction:column;flex:300px;min-width:300px;height:200px;display:flex;overflow:visible}.model-detail-bar .chart-title{flex-shrink:0}.model-detail-bar .echarts-for-react{flex:1;min-height:0}.model-detail-summary-wrap{max-height:0;transition:max-height .2s ease-out;overflow:hidden}.model-detail-summary-wrap.expanded{max-height:400px}.model-detail-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;padding-top:.5rem;display:grid}.model-detail-summary-card{border:1px solid var(--border);background:#ffffff05;border-radius:10px;padding:.65rem .75rem}.model-detail-summary-head{color:var(--text-primary);text-transform:capitalize;align-items:center;gap:.45rem;min-width:0;margin-bottom:.45rem;font-size:.76rem;font-weight:600;display:flex}.model-detail-summary-head .model-detail-summary-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.model-detail-swatch{border-radius:999px;flex:none;width:9px;height:9px}.model-detail-summary-line{color:var(--text-muted);font-size:.72rem;line-height:1.45}.detail-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.detail-summary-stat{border:1px solid var(--border);background:#ffffff08;border-radius:10px;padding:.8rem .9rem}.detail-summary-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;font-size:.68rem}.detail-summary-value{font-size:1.1rem;font-family:var(--font-mono);color:var(--text-primary)}.table-search{border-bottom:1px solid var(--border);padding:.75rem 1rem}.table-search input{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-primary);font-size:.82rem;font-family:var(--font-sans);border-radius:6px;outline:none;padding:.5rem .85rem}.table-search input:focus{border-color:var(--accent)}.table-search input::placeholder{color:var(--text-muted)}table{border-collapse:collapse;width:100%;font-size:.78rem}th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;padding:.55rem .85rem;font-size:.68rem;font-weight:600}td{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #30363d80;max-width:240px;padding:.5rem .85rem;overflow:hidden}tr:hover td{color:var(--text-primary);background:#6366f108}.tag{font-size:.66rem;font-family:var(--font-mono);border-radius:4px;padding:.1rem .4rem;font-weight:500;display:inline-block}.tag-review{color:var(--cyan);background:#06b6d41f}.tag-exploration{color:var(--orange);background:#f973161f}.tag-planning{color:var(--yellow);background:#eab3081f}.tag-memory{color:var(--pink);background:#ec48991f}.tag-generic{color:var(--text-secondary);background:#64748b1f}.loading-overlay{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:999;background:#06080feb;flex-direction:column;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0}.loading-overlay.fading{opacity:0;pointer-events:none}.loading-logo{background:linear-gradient(135deg,#818cf8,#6366f1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.loading-bar-wrap{background:var(--bg-elevated);border-radius:2px;width:260px;height:4px;margin-bottom:1rem;overflow:hidden}.loading-bar{background:linear-gradient(90deg, var(--accent), #818cf8);border-radius:2px;height:100%;transition:width .4s}.loading-phase{color:var(--text-secondary);margin-bottom:.2rem;font-size:.82rem;font-weight:500}.loading-detail{font-family:var(--font-mono);color:var(--text-muted);font-size:.72rem}.loading-footer{color:var(--text-muted);font-size:.7rem;position:absolute;bottom:1.5rem}.loading-heart{color:#f43f5e}.coverage-subtle{color:var(--text-muted);align-items:center;gap:1.5rem;margin-top:-.5rem;margin-bottom:.5rem;padding:.25rem 0;font-size:.68rem;display:flex}.coverage-item{font-variant-numeric:tabular-nums;align-items:center;gap:.35rem;display:flex}.coverage-nums{text-align:right;min-width:9ch;display:inline-block}.coverage-nums-single{min-width:4ch}.coverage-dot{border-radius:50%;width:6px;height:6px}html{scrollbar-width:none}::-webkit-scrollbar{width:0;height:0;display:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.35s forwards fadeUp}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.incomplete-badge{color:var(--yellow);background:#d299221a;border-radius:3px;padding:.12rem .45rem;font-size:.65rem;animation:2s infinite pulse}.ingesting-badge .ingesting-pct{text-align:right;font-variant-numeric:tabular-nums;min-width:4ch;display:inline-block}.echarts-tooltip,[class*=ec-component-tooltip]{max-width:90vw!important;max-height:80vh!important;overflow:auto!important}