@kylincloud/flamegraph 0.36.1 → 0.36.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.36.2](/compare/v0.36.1...v0.36.2) (2026-01-29)
4
+
5
+
6
+ ### Bug Fixes | Bug 修复
7
+
8
+ * 修复表格搜索闪烁和回弹 6d887403
9
+ * 修复部分map警告 ea050a1f
10
+
3
11
  ## [0.36.1](/compare/v0.36.0...v0.36.1) (2026-01-29)
4
12
 
5
13
 
@@ -1,2 +1,2 @@
1
- import e from"color";import{Maybe as t}from"true-myth";import{z as n}from"zod";import{scaleLinear as r}from"d3-scale";const s=["dotnetspy","ebpfspy","gospy","phpspy","pyspy","rbspy","nodespy","javaspy","pyroscope-rs","scrape","tracing","unknown"],i=n.preprocess(e=>e&&s.includes(e)?e:"unknown",n.enum(s).default("unknown")),a=["samples","objects","goroutines","bytes","lock_samples","lock_nanoseconds","trace_samples","exceptions"],o=n.preprocess(e=>"string"==typeof e&&a.includes(e)?e:"unknown",n.enum(["samples","objects","goroutines","bytes","lock_samples","lock_nanoseconds","trace_samples","exceptions","unknown"])),l=n.object({names:n.array(n.preprocess(e=>e||"unknown",n.string().min(1))),levels:n.array(n.array(n.number())),numTicks:n.number(),maxSelf:n.number()}),c=n.object({appName:n.string().optional(),name:n.string().optional(),startTime:n.number().optional(),endTime:n.number().optional(),query:n.string().optional(),maxNodes:n.number().optional(),format:n.enum(["single","double"]),sampleRate:n.number(),spyName:i,units:o});n.object({version:n.number().min(1).max(1).default(1),flamebearer:l,metadata:c,leftTicks:n.number().optional(),rightTicks:n.number().optional()});const u={format:"single",jStep:4,jName:3,getBarOffset:(e,t)=>e[t],getBarTotal:(e,t)=>e[t+1],getBarTotalDiff:(e,t)=>0,getBarSelf:(e,t)=>e[t+2],getBarSelfDiff:(e,t)=>0,getBarName:(e,t)=>e[t+3]},h={format:"double",jStep:7,jName:6,getBarOffset:(e,t)=>e[t]+e[t+3],getBarTotal:(e,t)=>e[t+4]+e[t+1],getBarTotalLeft:(e,t)=>e[t+1],getBarTotalRght:(e,t)=>e[t+4],getBarTotalDiff:(e,t)=>e[t+4]-e[t+1],getBarSelf:(e,t)=>e[t+5]+e[t+2],getBarSelfLeft:(e,t)=>e[t+2],getBarSelfRght:(e,t)=>e[t+5],getBarSelfDiff:(e,t)=>e[t+5]-e[t+2],getBarName:(e,t)=>e[t+6]};function f(e){switch(e){case"single":return u;case"double":return h;default:throw new Error(`Unsupported type: '${e}'`)}}const d=n.object({refType:n.string(),traceID:n.string(),spanID:n.string()}),g=n.object({key:n.string(),type:n.string(),value:n.union([n.boolean(),n.number(),n.string()])}),m=n.object({traceID:n.string(),spanID:n.string(),flags:n.string(),operationName:n.string(),references:n.array(d),startTime:n.number(),duration:n.number(),tags:n.array(g),logs:n.object({timestamp:n.number(),fields:n.array(g)}),processID:n.string(),warnings:n.any()}),p=n.object({serviceName:n.string(),tags:n.array(g)});n.object({traceID:n.string(),spans:n.array(m),processes:n.record(p),warnings:n.any()});const x=n.object({watermark:n.object({}).optional(),startTime:n.number(),samples:n.array(n.number()),durationDelta:n.number()});n.record(n.string(),x);const v=22,b=21.5;function y(e,t=!1){if(!e||!t)return e;const n=function(e){if(null==e)return null;if("number"==typeof e)return{value:e,unit:"",hasLessThan:!1,sign:""};let t=String(e).trim().replace(/\u2212/g,"-");if(!t)return null;let n=!1;t.startsWith("<")&&(n=!0,t=t.slice(1).trim());const r=t.match(/^([+\-]?)(\d*\.?\d+)\s*(.*)$/);if(!r)return null;const s=r[1]||"",i=r[2],a=(r[3]||"").trim(),o=parseFloat(i);return Number.isFinite(o)?{value:o,unit:a,hasLessThan:n,sign:s}:null}(e);if(!n)return e;const{unit:r}=n;let s=r;const i=r.toLowerCase();"ms"===i?s="毫秒":"μs"===i||"µs"===i||"us"===i?s="微秒":"second"===i||"seconds"===i?s="秒":"minute"===i||"minutes"===i||"min"===i||"mins"===i?s="分钟":"hour"===i||"hours"===i?s="小时":"day"===i||"days"===i?s="天":"month"===i||"months"===i?s="月":"year"!==i&&"years"!==i||(s="年");const a=String(e).match(/^([<\s]*)([+\-]?\d*\.?\d+)(.*)$/);if(!a)return e;return`${a[1]||""}${a[2]||""} ${s}`.trim()}function k(e){return Math.round(1e4*e)/100}class T{constructor(e,t,n){this.divider=1,this.enableSubsecondPrecision=!1,this.suffix="second",this.durations=[[60,"minute"],[60,"hour"],[24,"day"],[30,"month"],[12,"year"]],this.units="",n&&(this.enableSubsecondPrecision=n,this.durations=[[1e3,"ms"],[1e3,"second"],...this.durations],this.suffix="μs",e*=1e6),this.units=t||"";for(let t=0;t<this.durations.length;t++){const n=this.durations[t];if(!n){console.warn("Could not calculate level");break}if(!(e>=n[0]))break;this.divider*=n[0],e/=n[0],this.suffix=n[1]}}format(e,t,n=!0){this.enableSubsecondPrecision&&(t/=1e6);const r=e/t/this.divider;let s=r.toFixed(2);return 0===r?s="0.00":(r>=0&&r<.01||r<=0&&r>-.01)&&(s="< 0.01"),n?`${s} ${this.units||`${this.suffix}${1===r||2===this.suffix.length?"":"s"}`}`:s}formatPrecise(e,t){this.enableSubsecondPrecision&&(t/=1e6);const n=e/t/this.divider;return`${parseFloat(n.toFixed(5))} ${this.units||`${this.suffix}${1===n||2===this.suffix.length?"":"s"}`}`}}class w{constructor(e){this.divider=1,this.multiplier=1,this.suffix="second",this.durations=[[60,"minute"],[60,"hour"],[24,"day"],[30,"month"],[12,"year"]],e/=1e9;for(let t=0;t<this.durations.length;t++){const n=this.durations[t];if(!n){console.warn("Could not calculate level");break}if(!(e>=n[0]))break;this.divider*=n[0],e/=n[0],this.suffix=n[1]}}format(e){const t=e/1e9/this.divider;let n=t.toFixed(2);return(t>=0&&t<.01||t<=0&&t>-.01)&&(n="< 0.01"),`${n} ${this.suffix}${1===t?"":"s"}`}formatPrecise(e){const t=e/1e9/this.divider;return`${parseFloat(t.toFixed(5))} ${this.suffix}${1===t?"":"s"}`}}class C{constructor(e){this.divider=1,this.suffix="",this.objects=[[1e3,"K"],[1e3,"M"],[1e3,"G"],[1e3,"T"],[1e3,"P"]];for(let t=0;t<this.objects.length;t++){const n=this.objects[t];if(!n){console.warn("Could not calculate level");break}if(!(e>=n[0]))break;this.divider*=n[0],e/=n[0],this.suffix=n[1]}}format(e){const t=e/this.divider;let n=t.toFixed(2);return(t>=0&&t<.01||t<=0&&t>-.01)&&(n="< 0.01"),`${n} ${this.suffix}`}formatPrecise(e){const t=e/this.divider;return`${parseFloat(t.toFixed(5))} ${this.suffix}`}}class B{constructor(e){this.divider=1,this.suffix="bytes",this.bytes=[[1024,"KB"],[1024,"MB"],[1024,"GB"],[1024,"TB"],[1024,"PB"]];for(let t=0;t<this.bytes.length;t++){const n=this.bytes[t];if(!n){console.warn("Could not calculate level");break}if(!(e>=n[0]))break;{this.divider*=n[0],e/=n[0];const t=n[1];t?this.suffix=t:(console.warn("Could not calculate suffix"),this.suffix="")}}}format(e){const t=e/this.divider;let n=t.toFixed(2);return(t>=0&&t<.01||t<=0&&t>-.01)&&(n="< 0.01"),`${n} ${this.suffix}`}formatPrecise(e){const t=e/this.divider;return`${parseFloat(t.toFixed(5))} ${this.suffix}`}}function M({mode:e,charSize:t,rectWidth:n,fullText:r,shortText:s}){if("TAIL"===e){if(t*r.length<=n)return{mode:e,text:r,marginLeft:3};const i=t*s.length;return i<=n?{mode:e,text:s,marginLeft:3}:{mode:e,text:s,marginLeft:-(i-n+3)}}return{mode:e,text:r,marginLeft:3}}function j(e,t){if(e===t)return 0;if(0===e)return 100;const n=(t-e)/e*100;return n>100?100:n<-100?-100:n}function S(t,n){return e.rgb(t,t,t).alpha(n)}function N(e,t){if(0===t.length)return t;const n=function(e){switch(e){case"dotnetspy":return/^(?<packageName>.+)\.(.+)\.(.+)\(.*\)$/;case"ebpfspy":case"unknown":return/^(?<packageName>.+)$/;case"gospy":case"scrape":return/^(?<packageName>.*?\/.*?\.|.*?\.|.+)(?<functionName>.*)$/;case"phpspy":return/^(?<packageName>(.*\/)*)(?<filename>.*\.php+)(?<line_info>.*)$/;case"pyspy":return/^(?<packageName>(.*\/)*)(?<filename>.*\.py+)(?<line_info>.*)$/;case"rbspy":return/^(?<packageName>(.*\/)*)(?<filename>.*\.rb+)(?<line_info>.*)$/;case"nodespy":return/^(\.\/node_modules\/)?(?<packageName>[^/]*)(?<filename>.*\.?(jsx?|tsx?)?):(?<functionName>.*):(?<line_info>.*)$/;case"tracing":return/^(?<packageName>.+?):.*$/;case"javaspy":return/^(?<packageName>.+\/)(?<filename>.+\.)(?<functionName>.+)$/;case"pyroscope-rs":return/^(?<packageName>[^::]+)/}return/^(?<packageName>.+)$/}(e),r=t.match(n);return r&&r.groups?r.groups.packageName||"":t}function $(e,t){const n=function(e,t=0){let n,r,s,i,a,o,l,c;for(n=3&e.length,r=e.length-n,s=t,a=3432918353,o=461845907,c=0;c<r;)l=255&e.charCodeAt(c)|(255&e.charCodeAt(++c))<<8|(255&e.charCodeAt(++c))<<16|(255&e.charCodeAt(++c))<<24,++c,l=(65535&l)*a+(((l>>>16)*a&65535)<<16)&4294967295,l=l<<15|l>>>17,l=(65535&l)*o+(((l>>>16)*o&65535)<<16)&4294967295,s^=l,s=s<<13|s>>>19,i=5*(65535&s)+((5*(s>>>16)&65535)<<16)&4294967295,s=27492+(65535&i)+(((i>>>16)+58964&65535)<<16);switch(l=0,n){case 3:l^=(255&e.charCodeAt(c+2))<<16;case 2:l^=(255&e.charCodeAt(c+1))<<8;case 1:l^=255&e.charCodeAt(c);default:l=(65535&l)*a+(((l>>>16)*a&65535)<<16)&4294967295,l=l<<15|l>>>17,l=(65535&l)*o+(((l>>>16)*o&65535)<<16)&4294967295,s^=l}return s^=e.length,s^=s>>>16,s=2246822507*(65535&s)+((2246822507*(s>>>16)&65535)<<16)&4294967295,s^=s>>>13,s=3266489909*(65535&s)+((3266489909*(s>>>16)&65535)<<16)&4294967295,s^=s>>>16,s>>>0}(t,0)%e.colors.length,r=e.colors[n];return r||(console.warn("Could not calculate color. Defaulting to the first one"),e.colors[0])}function P(t){const{goodColor:n,neutralColor:s,badColor:i}=t,a=r().domain([-100,0,100]).range([n.rgb().toString(),s.rgb().toString(),i.rgb().toString()]);return t=>e(a(t).toString())}e.rgb(148,142,142),e.rgb(200,0,0),e.rgb(0,170,0),e("#48CE73");const R=new WeakMap,I=new WeakMap,J=new WeakMap,L=new WeakMap;const O={collapsedLevelsSingular:"total (1 level collapsed)",collapsedLevelsPlural:"total ({n} levels collapsed)",isZh:!1};function E(e){var t,n,r,s,i,a,o,l;const c=performance.now(),u=!1!==e.renderRects,d=!1!==e.renderText,g=null!==(t=e.renderMode)&&void 0!==t?t:"normal",m=e.timeBudgetMs,{canvas:p,fitMode:x,units:y,tickToX:E,levels:z,palette:_}=e,{numTicks:A,sampleRate:Q,pxPerTick:X}=e,{rangeMin:U,rangeMax:G}=e,{focusedNode:Z,zoom:q}=e,H=e.messages||O,K=e.skipCanvasResize?p.width:function(e){if("clientWidth"in e&&"number"==typeof e.clientWidth)return e.clientWidth;return e.width}(p);if(e.skipCanvasResize||(p.width=K),U>=G)throw new Error("'rangeMin' should be strictly smaller than 'rangeMax'");const{format:Y}=e,V=f(Y),ee=p.getContext("2d");if(!ee)throw new Error("Could not get ctx");const te=q.mapOrElse(()=>0,e=>e.i),ne=function(e,t,n){switch(n){case"samples":return new T(e/t);case"objects":case"goroutines":case"lock_samples":case"exceptions":return new C(e);case"bytes":return new B(e);case"lock_nanoseconds":return new w(e);case"trace_samples":return new T(e/t,"",!0);default:return console.warn(`Unsupported unit: '${n}'. Defaulting to ''`),new T(e/t," ")}}(A,Q,y),re=Z.isJust,se=Z.mapOrElse(()=>0,e=>e.i),ie=re?b:0,ae=!!e.highlightQuery&&e.highlightQuery.length>0,oe=v*(z.length-se)+(re?b:0);e.skipCanvasResize||(p.height=oe);const le="number"==typeof e.devicePixelRatio?e.devicePixelRatio:"undefined"!=typeof devicePixelRatio?devicePixelRatio:1;!e.skipDprScale&&le>1&&(p.width*=le,p.height*=le,ee.scale(le,le)),ee.textBaseline="middle",ee.font="400 11.5px SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace";const ce=ee.measureText("a").width,{names:ue}=e,he=function(e){const t=R.get(e);if(t)return t;const n=new Map;return R.set(e,n),n}(p),fe=ae?function(e,t){const n=I.get(e);if(n){const e=n.get(t);if(e)return e}const r=t.toLowerCase(),s=new Uint8Array(e.length);for(let t=1;t<e.length;t+=1){const n=e[t];n&&n.toLowerCase().includes(r)&&(s[t]=1)}const i=null!=n?n:new Map;return i.set(t,s),I.set(e,i),s}(ue,e.highlightQuery):null,de="single"===e.format?function(e,t,n){const r=`${t}|${n.name}`,s=J.get(e);if(s){const e=s.get(r);if(e)return e}const i=new Array(e.length);for(let r=0;r<e.length;r+=1){const s=N(t,e[r]||"")||"";i[r]=$(n,s)}const a=null!=s?s:new Map;return a.set(r,i),J.set(e,a),i}(ue,e.spyName,_):null,ge="double"===e.format?P({name:_.name,goodColor:_.goodColor,neutralColor:_.neutralColor,badColor:_.badColor}):null,me=(e,t)=>{const n=e[t+V.jName];return!(!n||n<0||!fe)&&1===fe[n]},pe=null!==(n=e.startI)&&void 0!==n?n:0,xe=null!==(r=e.startJ)&&void 0!==r?r:0;if(re&&"highlightOnly"!==g&&0===(null!==(s=e.levelStart)&&void 0!==s?s:0)&&0===pe&&0===xe){const e=A*X;u&&(ee.beginPath(),ee.rect(0,0,A*X,b),ee.fillStyle=S(200,1).rgb().string(),ee.fill());const t=Z.mapOrElse(()=>"total",e=>function(e,t){return 1===e?t.collapsedLevelsSingular:t.collapsedLevelsPlural.replace("{n}",String(e))}(e.i-1,H)),n=M({mode:x,charSize:ce,rectWidth:e,fullText:t,shortText:t}),r=0,s=0,i=b;if(d){ee.beginPath(),ee.rect(0,0,e,b),ee.save(),ee.clip(),ee.fillStyle="black";const t=Math.round(Math.max(r,0));ee.fillText(n.text,t+n.marginLeft,s+i/2+1),ee.restore()}}const ve=Math.max(0,null!==(i=e.levelStart)&&void 0!==i?i:0),be=z.length-se,ye=Math.min(be,null!==(a=e.levelEnd)&&void 0!==a?a:be),ke=Math.max(ve,null!==(o=e.startI)&&void 0!==o?o:ve),Te=Math.max(0,null!==(l=e.startJ)&&void 0!==l?l:0),{spyName:we}=e,Ce=(t,n,r,s,i)=>{const a={level:t,j:n,i:r+Z.mapOrElse(()=>0,e=>e.i),names:ue,collapsed:s,selectedLevel:te,highlightModeOn:ae,isHighlighted:i,spyName:we,palette:_,colorByNameIndex:de,diffColorFn:ge};switch(Y){case"single":return function(e){const t=W(e);if(t)return t;const n=f("single"),r=e.selectedLevel>e.i?.33:1;let s=e.level[e.j+n.jName];void 0===s&&(console.warn("Could nto find level",{l:e.j,jName:n.jName,level:e.level}),s=-1);if(e.colorByNameIndex&&s>=0&&e.colorByNameIndex[s])return e.colorByNameIndex[s].alpha(r);const i=e.names[s]||"",a=N(e.spyName,i)||"";return $(e.palette,a).alpha(r)}({...a});case"double":return function(e){const t=W(e);if(t)return t;const n=e.selectedLevel>e.i?.33:1,{leftRatio:r,rightRatio:s}=function(e,t,n,r){const s=h;return n&&r?{leftRatio:s.getBarTotalLeft(e,t)/n,rightRatio:s.getBarTotalRght(e,t)/r}:(console.error("Properties 'rightTicks' and 'leftTicks' are required. Can't calculate ratio."),{leftRatio:0,rightRatio:0})}(e.level,e.j,e.leftTicks,e.rightTicks),i=k(r),a=k(s);if(e.diffColorFn)return e.diffColorFn(j(i,a)).alpha(n);return function(e,t,n){const r=j(t,n);return P(e)(r)}(e.palette,i,a).alpha(n)}({...a,leftTicks:e.leftTicks,rightTicks:e.rightTicks});default:throw new Error(`Unsupported format: ${Y}`)}};if("highlightOnly"===g&&ae&&u){const e=function(e,t){const n=L.get(e);if(n)return n;const r=f(t),s=new Map;for(let t=0;t<e.length;t+=1){const n=e[t];for(let e=0;e<n.length;e+=r.jStep){const i=r.getBarName(n,e);if(void 0===i||i<0)continue;const a=s.get(i);a?a.push({i:t,j:e}):s.set(i,[{i:t,j:e}])}}return L.set(e,s),s}(z,Y),t=[];for(let e=1;e<ue.length;e+=1)fe&&1===fe[e]&&t.push(e);for(let n=0;n<t.length;n+=1){const r=t[n],s=e.get(r);if(s)for(let e=0;e<s.length;e+=1){const t=s[e],n=t.i-se;if(t.i<se||n<ve||n>=ye)continue;const r=z[t.i],i=E(V.getBarOffset(r,t.j)),a=n*v+ie,o=b,l=V.getBarTotal(r,t.j),c=l*X<=5,u=l*X-(c?0:.5);if(u<=0)continue;ee.beginPath(),ee.rect(i,a,u,o);const h=Ce(r,t.j,n,c,!0);ee.fillStyle=h.string(),ee.fill()}}return{done:!0,nextI:ye,nextJ:0}}for(let e=ke;e<ye;e+=1){const t=z[se+e];if(!t)throw new Error(`Could not find level: ${se+e}`);let n=e===ke?Te:0;for(;n<t.length;n+=V.jStep){const r=V.getBarOffset(t,n),s=E(r),i=e*v+ie,a=b,o=ae&&me(t,n);let l=V.getBarTotal(t,n);const h=l*X<=5;if(h)for(;n<t.length-V.jStep&&r+l===V.getBarOffset(t,n+V.jStep)&&V.getBarTotal(t,n+V.jStep)*X<=5&&o===(ae&&me(t,n+V.jStep));)n+=V.jStep,l+=V.getBarTotal(t,n);const f=l*X-(h?0:.5);if(ee.beginPath(),ee.rect(s,i,f,a),u){if("forceGrey"===g)ee.fillStyle=S(200,.66).rgb().string();else{const r=Ce(t,n,e,h,o);ee.fillStyle=r.string()}ee.fill()}if(!d||h||"forceGrey"===g){if(m&&performance.now()-c>m)return{done:!1,nextI:e,nextJ:n+V.jStep};continue}if(f<20)continue;const p=F(ue,n,Y,t),y=M({mode:x,charSize:ce,rectWidth:f,fullText:D(p,l,Q,ne,H,he),shortText:p});ee.save(),ee.clip(),ee.fillStyle="black";const k=Math.round(Math.max(s,0));if(ee.fillText(y.text,k+y.marginLeft,i+a/2+1),ee.restore(),m&&performance.now()-c>m)return{done:!1,nextI:e,nextJ:n+V.jStep}}if(m&&performance.now()-c>m)return{done:!1,nextI:e+1,nextJ:0}}return{done:!0,nextI:ye,nextJ:0}}function F(e,t,n,r){let s=r[t+f(n).jName];void 0===s&&(s=-1);const i=e[s];return i||(console.warn("Could not find function name for",{j:t,format:n,level:r,names:e}),"")}function D(e,t,n,r,s,i){let a=null==i?void 0:i.get(t);if(!a){const e=r.format(t,n);a=y(e,!!s.isZh)||e,null==i||i.set(t,a)}return`${e} (${a})`}function W({collapsed:e,highlightModeOn:t,isHighlighted:n}){return e||t&&!n?S(200,.66):null}class z{constructor(e,t,n,r,s,i,a,o){if(this.flamebearer=e,this.canvas=t,this.focusedNode=n,this.fitMode=r,this.highlightQuery=s,this.zoom=i,this.palette=a,this.messages=o,this.cachedRange=null,this.cachedPxPerTick=null,this.tickToX=e=>{var t;const n=this.cachedRange?this.cachedRange.rangeMin:this.getRange().rangeMin,r=null!==(t=this.cachedPxPerTick)&&void 0!==t?t:this.pxPerTick();return(e-this.flamebearer.numTicks*n)*r},this.xyToBarPosition=e=>{const{ff:t}=this,{i:n,j:r}=this.xyToBarIndex(e.x,e.y),s=this.focusedNode.mapOrElse(()=>0,e=>e.i<0?0:e.i-1),i=this.flamebearer.levels[n];if(!i)throw new Error(`Could not find level: '${n}'`);const a=Math.max(this.tickToX(t.getBarOffset(i,r)),0);return{x:a,y:Math.max((n-s)*v,0),width:Math.min(this.tickToX(t.getBarOffset(i,r)+t.getBarTotal(i,r))-a,this.getCanvasWidth())}},this.xyToBarData=e=>{const{i:t,j:n}=this.xyToBarIndex(e.x,e.y),r=this.flamebearer.levels[t];if(!r)throw new Error(`Could not find level: '${t}'`);switch(this.flamebearer.format){case"single":{const e=u;return{format:"single",name:this.flamebearer.names[e.getBarName(r,n)],self:e.getBarSelf(r,n),offset:e.getBarOffset(r,n),total:e.getBarTotal(r,n)}}case"double":{const e=h;return{format:"double",barTotal:e.getBarTotal(r,n),totalLeft:e.getBarTotalLeft(r,n),totalRight:e.getBarTotalRght(r,n),totalDiff:e.getBarTotalDiff(r,n),name:this.flamebearer.names[e.getBarName(r,n)]}}default:throw new Error("Unsupported type")}},this.isWithinBounds=(e,t)=>{if(e<0||e>this.getCanvasWidth())return!1;try{const{i:n,j:r}=this.xyToBarIndex(e,t);if(-1===r||-1===n)return!1}catch(e){return!1}return!0},this.zoom=i,this.focusedNode=n,this.flamebearer=e,this.canvas=t,this.highlightQuery=s,this.ff=f(e.format),this.palette=a,this.messages=o,n.isJust&&i.isJust&&i.value.i<n.value.i)throw new Error("Zoom i level should be bigger than Focus")}render(e){var t;const{rangeMin:n,rangeMax:r,pxPerTick:s}=this.updateCachedMetrics(),i=null!==(t=null==e?void 0:e.highlightQueryOverride)&&void 0!==t?t:this.highlightQuery,a={canvas:this.canvas,format:this.flamebearer.format,numTicks:this.flamebearer.numTicks,sampleRate:this.flamebearer.sampleRate,names:this.flamebearer.names,levels:this.flamebearer.levels,spyName:this.flamebearer.spyName,units:this.flamebearer.units,maxSelf:this.flamebearer.maxSelf,rangeMin:n,rangeMax:r,fitMode:this.fitMode,highlightQuery:i,zoom:this.zoom,focusedNode:this.focusedNode,pxPerTick:s,tickToX:e=>(e-this.flamebearer.numTicks*n)*s,palette:this.palette,messages:this.messages,renderRects:null==e?void 0:e.renderRects,renderText:null==e?void 0:e.renderText,renderMode:null==e?void 0:e.renderMode,levelStart:null==e?void 0:e.levelStart,levelEnd:null==e?void 0:e.levelEnd,startI:null==e?void 0:e.startI,startJ:null==e?void 0:e.startJ,timeBudgetMs:null==e?void 0:e.timeBudgetMs,skipCanvasResize:null==e?void 0:e.skipCanvasResize,skipDprScale:null==e?void 0:e.skipDprScale,devicePixelRatio:null==e?void 0:e.devicePixelRatio},{format:o}=this.flamebearer;switch(o){case"single":return E({...a,format:"single"});case"double":return E({...a,leftTicks:this.flamebearer.leftTicks,rightTicks:this.flamebearer.rightTicks});default:throw new Error(`Invalid format: '${o}'`)}}pxPerTick(){if(null!==this.cachedPxPerTick)return this.cachedPxPerTick;const{rangeMin:e,rangeMax:t}=this.getRange(),n=this.getCanvasWidth()/this.flamebearer.numTicks/(t-e);return this.cachedRange={rangeMin:e,rangeMax:t},this.cachedPxPerTick=n,n}updateCachedMetrics(){const{rangeMin:e,rangeMax:t}=this.getRange(),n=this.getCanvasWidth()/this.flamebearer.numTicks/(t-e);return this.cachedRange={rangeMin:e,rangeMax:t},this.cachedPxPerTick=n,{rangeMin:e,rangeMax:t,pxPerTick:n}}getRange(){const{ff:e}=this,t=t=>{const n=this.flamebearer.levels[t.i];if(!n)throw new Error(`Could not find level: '${t.i}'`);return{rangeMin:e.getBarOffset(n,t.j)/this.flamebearer.numTicks,rangeMax:(e.getBarOffset(n,t.j)+e.getBarTotal(n,t.j))/this.flamebearer.numTicks}},n=t=>{const n=this.flamebearer.levels[t.i];if(!n)throw new Error(`Could not find level: '${t.i}'`);return{rangeMin:e.getBarOffset(n,t.j)/this.flamebearer.numTicks,rangeMax:(e.getBarOffset(n,t.j)+e.getBarTotal(n,t.j))/this.flamebearer.numTicks}},{zoom:r,focusedNode:s}=this;return r.match({Just:e=>s.match({Just:r=>{const s=n(r),i=t(e);return s.rangeMax-s.rangeMin<i.rangeMax-i.rangeMin?(console.warn("Focus is smaller than range, this shouldnt happen. Verify that the zoom is always bigger than the focus."),n(r)):t(e)},Nothing:()=>t(e)}),Nothing:()=>s.match({Just:e=>n(e),Nothing:()=>({rangeMin:0,rangeMax:1})})})}getCanvasWidth(){return"clientWidth"in this.canvas&&"number"==typeof this.canvas.clientWidth?this.canvas.clientWidth:this.canvas.width}isFocused(){return this.focusedNode.isJust}binarySearchLevel(e,t){const{ff:n}=this;let r=0,s=t.length-n.jStep;for(;r<=s;){const i=n.jStep*(r/n.jStep+s/n.jStep>>1),a=this.tickToX(n.getBarOffset(t,i)),o=this.tickToX(n.getBarOffset(t,i)+n.getBarTotal(t,i));if(a<=e&&o>=e)return o-a>5?i:-1;a>e?s=i-n.jStep:r=i+n.jStep}return-1}xyToBarIndex(e,t){if(e<0||t<0)throw new Error(`x and y must be bigger than 0. x = ${e}, y = ${t}`);if(this.isFocused()&&t<=b)return{i:0,j:0};const n=this.isFocused()?t-b:t,r=this.focusedNode.mapOrElse(()=>0,e=>e.i<=0?0:e.i),s=this.zoom.match({Just:()=>this.focusedNode.match({Just:()=>r,Nothing:()=>0}),Nothing:()=>this.focusedNode.match({Just:()=>r,Nothing:()=>0})}),i=Math.floor(n/v)+s;if(i>=0&&i<this.flamebearer.levels.length){const t=this.flamebearer.levels[i];if(!t)throw new Error(`Could not find level: '${i}'`);return{i:i,j:this.binarySearchLevel(e,t)}}return{i:0,j:0}}parseXY(e,n){const r={x:e,y:n};return this.isWithinBounds(e,n)?t.of(r):t.nothing()}xyToBar(e,t){return this.parseXY(e,t).map(n=>{const{i:r,j:s}=this.xyToBarIndex(e,t);return{i:r,j:s,...this.xyToBarPosition(n),...this.xyToBarData(n)}})}}const _={rectCanvas:null,textCanvas:null,renderState:{rect:{token:0,running:!1,nextI:0,nextJ:0,firstChunk:!0,payload:null,flamegraph:null},text:{token:0,running:!1,nextI:0,nextJ:0,firstChunk:!0,payload:null,flamegraph:null}}},A=e=>e?t.just(e):t.nothing(),Q=(t,n)=>{const r=_.renderState[t],s=r.payload;if(!s||r.token!==n)return;const i="rect"===t?_.rectCanvas:_.textCanvas;if(!i)return void(r.running=!1);r.flamegraph||(r.flamegraph=new z(s.flamebearer,i,A(s.focusedNode),s.fitMode,s.highlightQuery,A(s.zoom),(t=>({name:t.name,goodColor:e.rgb(...t.goodColor),neutralColor:e.rgb(...t.neutralColor),badColor:e.rgb(...t.badColor),colors:t.colors.map(t=>e.rgb(...t))}))(s.palette),s.messages));const a=r.flamegraph.render({renderRects:s.renderRects,renderText:s.renderText,timeBudgetMs:"rect"===t?12:8,startI:r.nextI,startJ:r.nextJ,skipCanvasResize:!r.firstChunk,skipDprScale:!r.firstChunk,devicePixelRatio:s.devicePixelRatio});if(r.firstChunk=!1,!a.done)return r.nextI=a.nextI,r.nextJ=a.nextJ,void setTimeout(()=>Q(t,n),0);r.running=!1,r.nextI=0,r.nextJ=0,r.firstChunk=!0,r.flamegraph=null};self.onmessage=e=>{const t=e.data;t&&t.type&&("init"!==t.type?"render"===t.type&&(e=>{const t="rect"===e.kind?_.rectCanvas:_.textCanvas;if(!t)return;e.width>0&&(t.width=e.width);const n=_.renderState[e.kind];n.token+=1,n.running=!0,n.nextI=0,n.nextJ=0,n.firstChunk=!0,n.payload=e,n.flamegraph=null;const r=n.token;setTimeout(()=>Q(e.kind,r),0)})(t.payload):"rect"===t.payload.kind?_.rectCanvas=t.payload.canvas:_.textCanvas=t.payload.canvas)};
1
+ import{z as t}from"zod";const e={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(const t in e)Object.freeze(e[t]);var r=Object.freeze(e);const n=Object.create(null);for(const t in r)Object.hasOwn(r,t)&&(n[r[t]]=t);const i={to:{},get:{}};function a(t,e,r){return Math.min(Math.max(e,t),r)}function o(t){const e=Math.round(t).toString(16).toUpperCase();return e.length<2?"0"+e:e}i.get=function(t){let e,r;switch(t.slice(0,3).toLowerCase()){case"hsl":e=i.get.hsl(t),r="hsl";break;case"hwb":e=i.get.hwb(t),r="hwb";break;default:e=i.get.rgb(t),r="rgb"}return e?{model:r,value:e}:null},i.get.rgb=function(t){if(!t)return null;let e,n,i,o=[0,0,0,1];if(e=t.match(/^#([a-f\d]{6})([a-f\d]{2})?$/i)){for(i=e[2],e=e[1],n=0;n<3;n++){const t=2*n;o[n]=Number.parseInt(e.slice(t,t+2),16)}i&&(o[3]=Number.parseInt(i,16)/255)}else if(e=t.match(/^#([a-f\d]{3,4})$/i)){for(e=e[1],i=e[3],n=0;n<3;n++)o[n]=Number.parseInt(e[n]+e[n],16);i&&(o[3]=Number.parseInt(i+i,16)/255)}else if(e=t.match(/^rgba?\(\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)\s*(?:[\s,|/]\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(%?)\s*)?\)$/i)){for(n=0;n<3;n++)o[n]=Number.parseFloat(e[n+1]);e[4]&&(o[3]=e[5]?.01*Number.parseFloat(e[4]):Number.parseFloat(e[4]))}else{if(!(e=t.match(/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/i)))return(e=t.toLowerCase().match(/^(\w+)$/))?"transparent"===e[1]?[0,0,0,0]:Object.hasOwn(r,e[1])?(o=r[e[1]].slice(),o[3]=1,o):null:null;for(n=0;n<3;n++)o[n]=Math.round(2.55*Number.parseFloat(e[n+1]));e[4]&&(o[3]=e[5]?.01*Number.parseFloat(e[4]):Number.parseFloat(e[4]))}for(n=0;n<3;n++)o[n]=a(o[n],0,255);return o[3]=a(o[3],0,1),o},i.get.hsl=function(t){if(!t)return null;const e=t.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i);if(e){const t=Number.parseFloat(e[4]);return[(Number.parseFloat(e[1])%360+360)%360,a(Number.parseFloat(e[2]),0,100),a(Number.parseFloat(e[3]),0,100),a(Number.isNaN(t)?1:t,0,1)]}return null},i.get.hwb=function(t){if(!t)return null;const e=t.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i);if(e){const t=Number.parseFloat(e[4]);return[(Number.parseFloat(e[1])%360+360)%360,a(Number.parseFloat(e[2]),0,100),a(Number.parseFloat(e[3]),0,100),a(Number.isNaN(t)?1:t,0,1)]}return null},i.to.hex=function(...t){return"#"+o(t[0])+o(t[1])+o(t[2])+(t[3]<1?o(Math.round(255*t[3])):"")},i.to.rgb=function(...t){return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},i.to.rgb.percent=function(...t){const e=Math.round(t[0]/255*100),r=Math.round(t[1]/255*100),n=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+e+"%, "+r+"%, "+n+"%)":"rgba("+e+"%, "+r+"%, "+n+"%, "+t[3]+")"},i.to.hsl=function(...t){return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},i.to.hwb=function(...t){let e="";return t.length>=4&&1!==t[3]&&(e=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+e+")"},i.to.keyword=function(...t){return n[t.slice(0,3)]};const s={};for(const t of Object.keys(r))s[r[t]]=t;const l={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},u=(6/29)**3;function c(t){const e=t>.0031308?1.055*t**(1/2.4)-.055:12.92*t;return Math.min(Math.max(0,e),1)}function h(t){return t>.04045?((t+.055)/1.055)**2.4:t/12.92}for(const t of Object.keys(l)){if(!("channels"in l[t]))throw new Error("missing channels property: "+t);if(!("labels"in l[t]))throw new Error("missing channel labels property: "+t);if(l[t].labels.length!==l[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:r}=l[t];delete l[t].channels,delete l[t].labels,Object.defineProperty(l[t],"channels",{value:e}),Object.defineProperty(l[t],"labels",{value:r})}function f(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}function g(t){const e=function(){const t={},e=Object.keys(l);for(let{length:r}=e,n=0;n<r;n++)t[e[n]]={distance:-1,parent:null};return t}(),r=[t];for(e[t].distance=0;r.length>0;){const t=r.pop(),n=Object.keys(l[t]);for(let{length:i}=n,a=0;a<i;a++){const i=n[a],o=e[i];-1===o.distance&&(o.distance=e[t].distance+1,o.parent=t,r.unshift(i))}}return e}function d(t,e){return function(r){return e(t(r))}}function m(t,e){const r=[e[t].parent,t];let n=l[e[t].parent][t],i=e[t].parent;for(;e[i].parent;)r.unshift(e[i].parent),n=d(l[e[i].parent][i],n),i=e[i].parent;return n.conversion=r,n}function p(t){const e=g(t),r={},n=Object.keys(e);for(let{length:t}=n,i=0;i<t;i++){const t=n[i];null!==e[t].parent&&(r[t]=m(t,e))}return r}l.rgb.hsl=function(t){const e=t[0]/255,r=t[1]/255,n=t[2]/255,i=Math.min(e,r,n),a=Math.max(e,r,n),o=a-i;let s,l;switch(a){case i:s=0;break;case e:s=(r-n)/o;break;case r:s=2+(n-e)/o;break;case n:s=4+(e-r)/o}s=Math.min(60*s,360),s<0&&(s+=360);const u=(i+a)/2;return l=a===i?0:u<=.5?o/(a+i):o/(2-a-i),[s,100*l,100*u]},l.rgb.hsv=function(t){let e,r,n,i,a;const o=t[0]/255,s=t[1]/255,l=t[2]/255,u=Math.max(o,s,l),c=u-Math.min(o,s,l),h=function(t){return(u-t)/6/c+.5};if(0===c)i=0,a=0;else{switch(a=c/u,e=h(o),r=h(s),n=h(l),u){case o:i=n-r;break;case s:i=1/3+e-n;break;case l:i=2/3+r-e}i<0?i+=1:i>1&&(i-=1)}return[360*i,100*a,100*u]},l.rgb.hwb=function(t){const e=t[0],r=t[1];let n=t[2];const i=l.rgb.hsl(t)[0],a=1/255*Math.min(e,Math.min(r,n));return n=1-1/255*Math.max(e,Math.max(r,n)),[i,100*a,100*n]},l.rgb.oklab=function(t){const e=h(t[0]/255),r=h(t[1]/255),n=h(t[2]/255),i=Math.cbrt(.4122214708*e+.5363325363*r+.0514459929*n),a=Math.cbrt(.2119034982*e+.6806995451*r+.1073969566*n),o=Math.cbrt(.0883024619*e+.2817188376*r+.6299787005*n);return[100*(.2104542553*i+.793617785*a-.0040720468*o),100*(1.9779984951*i-2.428592205*a+.4505937099*o),100*(.0259040371*i+.7827717662*a-.808675766*o)]},l.rgb.cmyk=function(t){const e=t[0]/255,r=t[1]/255,n=t[2]/255,i=Math.min(1-e,1-r,1-n);return[100*((1-e-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*i]},l.rgb.keyword=function(t){const e=s[t];if(e)return e;let n,i=Number.POSITIVE_INFINITY;for(const e of Object.keys(r)){const a=f(t,r[e]);a<i&&(i=a,n=e)}return n},l.keyword.rgb=function(t){return[...r[t]]},l.rgb.xyz=function(t){const e=h(t[0]/255),r=h(t[1]/255),n=h(t[2]/255);return[100*(.4124564*e+.3575761*r+.1804375*n),100*(.2126729*e+.7151522*r+.072175*n),100*(.0193339*e+.119192*r+.9503041*n)]},l.rgb.lab=function(t){const e=l.rgb.xyz(t);let r=e[0],n=e[1],i=e[2];r/=95.047,n/=100,i/=108.883,r=r>u?r**(1/3):7.787*r+16/116,n=n>u?n**(1/3):7.787*n+16/116,i=i>u?i**(1/3):7.787*i+16/116;return[116*n-16,500*(r-n),200*(n-i)]},l.hsl.rgb=function(t){const e=t[0]/360,r=t[1]/100,n=t[2]/100;let i,a;if(0===r)return a=255*n,[a,a,a];const o=n<.5?n*(1+r):n+r-n*r,s=2*n-o,l=[0,0,0];for(let t=0;t<3;t++)i=e+1/3*-(t-1),i<0&&i++,i>1&&i--,a=6*i<1?s+6*(o-s)*i:2*i<1?o:3*i<2?s+(o-s)*(2/3-i)*6:s,l[t]=255*a;return l},l.hsl.hsv=function(t){const e=t[0];let r=t[1]/100,n=t[2]/100,i=r;const a=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,i*=a<=1?a:2-a;return[e,100*(0===n?2*i/(a+i):2*r/(n+r)),100*((n+r)/2)]},l.hsv.rgb=function(t){const e=t[0]/60,r=t[1]/100;let n=t[2]/100;const i=Math.floor(e)%6,a=e-Math.floor(e),o=255*n*(1-r),s=255*n*(1-r*a),l=255*n*(1-r*(1-a));switch(n*=255,i){case 0:return[n,l,o];case 1:return[s,n,o];case 2:return[o,n,l];case 3:return[o,s,n];case 4:return[l,o,n];case 5:return[n,o,s]}},l.hsv.hsl=function(t){const e=t[0],r=t[1]/100,n=t[2]/100,i=Math.max(n,.01);let a,o;o=(2-r)*n;const s=(2-r)*i;return a=r*i,a/=s<=1?s:2-s,a=a||0,o/=2,[e,100*a,100*o]},l.hwb.rgb=function(t){const e=t[0]/360;let r=t[1]/100,n=t[2]/100;const i=r+n;let a;i>1&&(r/=i,n/=i);const o=Math.floor(6*e),s=1-n;a=6*e-o,1&o&&(a=1-a);const l=r+a*(s-r);let u,c,h;switch(o){default:case 6:case 0:u=s,c=l,h=r;break;case 1:u=l,c=s,h=r;break;case 2:u=r,c=s,h=l;break;case 3:u=r,c=l,h=s;break;case 4:u=l,c=r,h=s;break;case 5:u=s,c=r,h=l}return[255*u,255*c,255*h]},l.cmyk.rgb=function(t){const e=t[0]/100,r=t[1]/100,n=t[2]/100,i=t[3]/100;return[255*(1-Math.min(1,e*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},l.xyz.rgb=function(t){const e=t[0]/100,r=t[1]/100,n=t[2]/100;let i,a,o;return i=3.2404542*e+-1.5371385*r+-.4985314*n,a=-.969266*e+1.8760108*r+.041556*n,o=.0556434*e+-.2040259*r+1.0572252*n,i=c(i),a=c(a),o=c(o),[255*i,255*a,255*o]},l.xyz.lab=function(t){let e=t[0],r=t[1],n=t[2];e/=95.047,r/=100,n/=108.883,e=e>u?e**(1/3):7.787*e+16/116,r=r>u?r**(1/3):7.787*r+16/116,n=n>u?n**(1/3):7.787*n+16/116;return[116*r-16,500*(e-r),200*(r-n)]},l.xyz.oklab=function(t){const e=t[0]/100,r=t[1]/100,n=t[2]/100,i=Math.cbrt(.8189330101*e+.3618667424*r-.1288597137*n),a=Math.cbrt(.0329845436*e+.9293118715*r+.0361456387*n),o=Math.cbrt(.0482003018*e+.2643662691*r+.633851707*n);return[100*(.2104542553*i+.793617785*a-.0040720468*o),100*(1.9779984951*i-2.428592205*a+.4505937099*o),100*(.0259040371*i+.7827717662*a-.808675766*o)]},l.oklab.oklch=function(t){return l.lab.lch(t)},l.oklab.xyz=function(t){const e=t[0]/100,r=t[1]/100,n=t[2]/100,i=(.999999998*e+.396337792*r+.215803758*n)**3,a=(1.000000008*e-.105561342*r-.063854175*n)**3,o=(1.000000055*e-.089484182*r-1.291485538*n)**3;return[100*(1.227013851*i-.55779998*a+.281256149*o),100*(-.040580178*i+1.11225687*a-.071676679*o),100*(-.076381285*i-.421481978*a+1.58616322*o)]},l.oklab.rgb=function(t){const e=t[0]/100,r=t[1]/100,n=t[2]/100,i=(e+.3963377774*r+.2158037573*n)**3,a=(e-.1055613458*r-.0638541728*n)**3,o=(e-.0894841775*r-1.291485548*n)**3;return[255*c(4.0767416621*i-3.3077115913*a+.2309699292*o),255*c(-1.2684380046*i+2.6097574011*a-.3413193965*o),255*c(-.0041960863*i-.7034186147*a+1.707614701*o)]},l.oklch.oklab=function(t){return l.lch.lab(t)},l.lab.xyz=function(t){let e,r,n;r=(t[0]+16)/116,e=t[1]/500+r,n=r-t[2]/200;const i=r**3,a=e**3,o=n**3;return r=i>u?i:(r-16/116)/7.787,e=a>u?a:(e-16/116)/7.787,n=o>u?o:(n-16/116)/7.787,e*=95.047,r*=100,n*=108.883,[e,r,n]},l.lab.lch=function(t){const e=t[0],r=t[1],n=t[2];let i;i=360*Math.atan2(n,r)/2/Math.PI,i<0&&(i+=360);return[e,Math.sqrt(r*r+n*n),i]},l.lch.lab=function(t){const e=t[0],r=t[1],n=t[2]/360*2*Math.PI;return[e,r*Math.cos(n),r*Math.sin(n)]},l.rgb.ansi16=function(t,e=null){const[r,n,i]=t;let a=null===e?l.rgb.hsv(t)[2]:e;if(a=Math.round(a/50),0===a)return 30;let o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===a&&(o+=60),o},l.hsv.ansi16=function(t){return l.rgb.ansi16(l.hsv.rgb(t),t[2])},l.rgb.ansi256=function(t){const e=t[0],r=t[1],n=t[2];if(e>>4==r>>4&&r>>4==n>>4)return e<8?16:e>248?231:Math.round((e-8)/247*24)+232;return 16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},l.ansi16.rgb=function(t){let e=(t=t[0])%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const r=.5*(Math.trunc(t>50)+1);return[(1&e)*r*255,(e>>1&1)*r*255,(e>>2&1)*r*255]},l.ansi256.rgb=function(t){if((t=t[0])>=232){const e=10*(t-232)+8;return[e,e,e]}let e;t-=16;return[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},l.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".slice(e.length)+e},l.hex.rgb=function(t){const e=t.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!e)return[0,0,0];let r=e[0];3===e[0].length&&(r=[...r].map(t=>t+t).join(""));const n=Number.parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},l.rgb.hcg=function(t){const e=t[0]/255,r=t[1]/255,n=t[2]/255,i=Math.max(Math.max(e,r),n),a=Math.min(Math.min(e,r),n),o=i-a;let s;return s=o<=0?0:i===e?(r-n)/o%6:i===r?2+(n-e)/o:4+(e-r)/o,s/=6,s%=1,[360*s,100*o,100*(o<1?a/(1-o):0)]},l.hsl.hcg=function(t){const e=t[1]/100,r=t[2]/100,n=r<.5?2*e*r:2*e*(1-r);let i=0;return n<1&&(i=(r-.5*n)/(1-n)),[t[0],100*n,100*i]},l.hsv.hcg=function(t){const e=t[1]/100,r=t[2]/100,n=e*r;let i=0;return n<1&&(i=(r-n)/(1-n)),[t[0],100*n,100*i]},l.hcg.rgb=function(t){const e=t[0]/360,r=t[1]/100,n=t[2]/100;if(0===r)return[255*n,255*n,255*n];const i=[0,0,0],a=e%1*6,o=a%1,s=1-o;let l=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return l=(1-r)*n,[255*(r*i[0]+l),255*(r*i[1]+l),255*(r*i[2]+l)]},l.hcg.hsv=function(t){const e=t[1]/100,r=e+t[2]/100*(1-e);let n=0;return r>0&&(n=e/r),[t[0],100*n,100*r]},l.hcg.hsl=function(t){const e=t[1]/100,r=t[2]/100*(1-e)+.5*e;let n=0;return r>0&&r<.5?n=e/(2*r):r>=.5&&r<1&&(n=e/(2*(1-r))),[t[0],100*n,100*r]},l.hcg.hwb=function(t){const e=t[1]/100,r=e+t[2]/100*(1-e);return[t[0],100*(r-e),100*(1-r)]},l.hwb.hcg=function(t){const e=t[1]/100,r=1-t[2]/100,n=r-e;let i=0;return n<1&&(i=(r-n)/(1-n)),[t[0],100*n,100*i]},l.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},l.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},l.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},l.gray.hsl=function(t){return[0,0,t[0]]},l.gray.hsv=l.gray.hsl,l.gray.hwb=function(t){return[0,100,t[0]]},l.gray.cmyk=function(t){return[0,0,0,t[0]]},l.gray.lab=function(t){return[t[0],0,0]},l.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),r=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".slice(r.length)+r},l.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};const b={},v=Object.keys(l);function y(t){const e=function(...e){const r=e[0];return null==r?r:(r.length>1&&(e=r),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}function w(t){const e=function(...e){const r=e[0];if(null==r)return r;r.length>1&&(e=r);const n=t(e);if("object"==typeof n)for(let{length:t}=n,e=0;e<t;e++)n[e]=Math.round(n[e]);return n};return"conversion"in t&&(e.conversion=t.conversion),e}for(const t of v){b[t]={},Object.defineProperty(b[t],"channels",{value:l[t].channels}),Object.defineProperty(b[t],"labels",{value:l[t].labels});const e=p(t),r=Object.keys(e);for(const n of r){const r=e[n];b[t][n]=w(r),b[t][n].raw=y(r)}}const k=["keyword","gray","hex"],x={};for(const t of Object.keys(b))x[[...b[t].labels].sort().join("")]=t;const M={};function N(t,e){if(!(this instanceof N))return new N(t,e);if(e&&e in k&&(e=null),e&&!(e in b))throw new Error("Unknown model: "+e);let r,n;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof N)this.model=t.model,this.color=[...t.color],this.valpha=t.valpha;else if("string"==typeof t){const e=i.get(t);if(null===e)throw new Error("Unable to parse color from string: "+t);this.model=e.model,n=b[this.model].channels,this.color=e.value.slice(0,n),this.valpha="number"==typeof e.value[n]?e.value[n]:1}else if(t.length>0){this.model=e||"rgb",n=b[this.model].channels;const r=Array.prototype.slice.call(t,0,n);this.color=O(r,n),this.valpha="number"==typeof t[n]?t[n]:1}else if("number"==typeof t)this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;const e=Object.keys(t);"alpha"in t&&(e.splice(e.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);const n=e.sort().join("");if(!(n in x))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=x[n];const{labels:i}=b[this.model],a=[];for(r=0;r<i.length;r++)a.push(t[i[r]]);this.color=O(a)}if(M[this.model])for(n=b[this.model].channels,r=0;r<n;r++){const t=M[this.model][r];t&&(this.color[r]=t(this.color[r]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}N.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(t){let e=this.model in i.to?this:this.rgb();e=e.round("number"==typeof t?t:1);const r=1===e.valpha?e.color:[...e.color,this.valpha];return i.to[e.model](...r)},percentString(t){const e=this.rgb().round("number"==typeof t?t:1),r=1===e.valpha?e.color:[...e.color,this.valpha];return i.to.rgb.percent(...r)},array(){return 1===this.valpha?[...this.color]:[...this.color,this.valpha]},object(){const t={},{channels:e}=b[this.model],{labels:r}=b[this.model];for(let n=0;n<e;n++)t[r[n]]=this.color[n];return 1!==this.valpha&&(t.alpha=this.valpha),t},unitArray(){const t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,1!==this.valpha&&t.push(this.valpha),t},unitObject(){const t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,1!==this.valpha&&(t.alpha=this.valpha),t},round(t){return t=Math.max(t||0,0),new N([...this.color.map($(t)),this.valpha],this.model)},alpha(t){return void 0!==t?new N([...this.color,Math.max(0,Math.min(1,t))],this.model):this.valpha},red:j("rgb",0,T(255)),green:j("rgb",1,T(255)),blue:j("rgb",2,T(255)),hue:j(["hsl","hsv","hsl","hwb","hcg"],0,t=>(t%360+360)%360),saturationl:j("hsl",1,T(100)),lightness:j("hsl",2,T(100)),saturationv:j("hsv",1,T(100)),value:j("hsv",2,T(100)),chroma:j("hcg",1,T(100)),gray:j("hcg",2,T(100)),white:j("hwb",1,T(100)),wblack:j("hwb",2,T(100)),cyan:j("cmyk",0,T(100)),magenta:j("cmyk",1,T(100)),yellow:j("cmyk",2,T(100)),black:j("cmyk",3,T(100)),x:j("xyz",0,T(95.047)),y:j("xyz",1,T(100)),z:j("xyz",2,T(108.833)),l:j("lab",0,T(100)),a:j("lab",1),b:j("lab",2),keyword(t){return void 0!==t?new N(t):b[this.model].keyword(this.color)},hex(t){return void 0!==t?new N(t):i.to.hex(...this.rgb().round().color)},hexa(t){if(void 0!==t)return new N(t);const e=this.rgb().round().color;let r=Math.round(255*this.valpha).toString(16).toUpperCase();return 1===r.length&&(r="0"+r),i.to.hex(...e)+r},rgbNumber(){const t=this.rgb().color;return(255&t[0])<<16|(255&t[1])<<8|255&t[2]},luminosity(){const t=this.rgb().color,e=[];for(const[r,n]of t.entries()){const t=n/255;e[r]=t<=.04045?t/12.92:((t+.055)/1.055)**2.4}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast(t){const e=this.luminosity(),r=t.luminosity();return e>r?(e+.05)/(r+.05):(r+.05)/(e+.05)},level(t){const e=this.contrast(t);return e>=7?"AAA":e>=4.5?"AA":""},isDark(){const t=this.rgb().color;return(2126*t[0]+7152*t[1]+722*t[2])/1e4<128},isLight(){return!this.isDark()},negate(){const t=this.rgb();for(let e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten(t){const e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken(t){const e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate(t){const e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate(t){const e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten(t){const e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken(t){const e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale(){const t=this.rgb().color,e=.3*t[0]+.59*t[1]+.11*t[2];return N.rgb(e,e,e)},fade(t){return this.alpha(this.valpha-this.valpha*t)},opaquer(t){return this.alpha(this.valpha+this.valpha*t)},rotate(t){const e=this.hsl();let r=e.color[0];return r=(r+t)%360,r=r<0?360+r:r,e.color[0]=r,e},mix(t,e){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);const r=t.rgb(),n=this.rgb(),i=void 0===e?.5:e,a=2*i-1,o=r.alpha()-n.alpha(),s=((a*o===-1?a:(a+o)/(1+a*o))+1)/2,l=1-s;return N.rgb(s*r.red()+l*n.red(),s*r.green()+l*n.green(),s*r.blue()+l*n.blue(),r.alpha()*i+n.alpha()*(1-i))}};for(const t of Object.keys(b)){if(k.includes(t))continue;const{channels:e}=b[t];N.prototype[t]=function(...e){return this.model===t?new N(this):e.length>0?new N(e,t):new N([...(r=b[this.model][t].raw(this.color),Array.isArray(r)?r:[r]),this.valpha],t);var r},N[t]=function(...r){let n=r[0];return"number"==typeof n&&(n=O(r,e)),new N(n,t)}}function $(t){return function(e){return function(t,e){return Number(t.toFixed(e))}(e,t)}}function j(t,e,r){t=Array.isArray(t)?t:[t];for(const n of t)(M[n]||=[])[e]=r;return t=t[0],function(n){let i;return void 0!==n?(r&&(n=r(n)),i=this[t](),i.color[e]=n,i):(i=this[t]().color[e],r&&(i=r(i)),i)}}function T(t){return function(e){return Math.max(0,Math.min(t,e))}}function O(t,e){for(let r=0;r<e;r++)"number"!=typeof t[r]&&(t[r]=0);return t}const S=Symbol("BrandTag");const C=new class{constructor(t){this[S]=t}}("unit"),B=t=>null==t;function E(t,e){return void 0!==e?t(e):t}function P(t){if(function(t,e){return"object"==typeof t&&null!==t&&e in t}(t,"toString")&&"function"==typeof t.toString){const e=t.toString();return"string"==typeof e?e:JSON.stringify(t)}return JSON.stringify(t)}const R="Ok",J="Err";class I{constructor(t){this.repr=t}static ok(t){return B(t)?new I(["Ok",C]):new I(["Ok",t])}static err(t){return B(t)?new I(["Err",C]):new I(["Err",t])}get variant(){return this.repr[0]}get value(){if(this.repr[0]===J)throw new Error("Cannot get the value of Err");return this.repr[1]}get error(){if(this.repr[0]===R)throw new Error("Cannot get the error of Ok");return this.repr[1]}get isOk(){return this.repr[0]===R}get isErr(){return this.repr[0]===J}map(t){return function(t,e){const r=e=>e.isOk?z(t(e.value)):e;return E(r,e)}(t,this)}mapOr(t,e){return function(t,e,r){function n(e,r){return r.isOk?e(r.value):t}function i(t,e){return void 0!==e?n(t,e):e=>n(t,e)}return void 0===e?i:void 0===r?i(e):i(e,r)}(t,e,this)}mapOrElse(t,e){return A(t,e,this)}match(t){return function(t,e){const r=e=>A(t.Err,t.Ok,e);return E(r,e)}(t,this)}mapErr(t){return function(t,e){const r=e=>e.isOk?e:F(t(e.error));return E(r,e)}(t,this)}or(t){return e=t,E(t=>t.isOk?z(t.value):e,this);var e}orElse(t){return e=t,E(t=>t.isOk?z(t.value):e(t.error),this);var e}and(t){return e=t,E(t=>t.isOk?e:F(t.error),this);var e}andThen(t){return e=t,E(t=>t.isOk?e(t.value):F(t.error),this);var e}unwrapOr(t){return function(t,e){const r=e=>e.isOk?e.value:t;return E(r,e)}(t,this)}unwrapOrElse(t){return e=t,E(t=>t.isOk?t.value:e(t.error),this);var e}toMaybe(){return(t=this).isOk?Z.just(t.value):Z.nothing();var t}toString(){return L(this)}toJSON(){return q(this)}equals(t){return e=t,void 0!==(r=this)?r.match({Err:()=>e.isErr,Ok:t=>e.isOk&&e.value===t}):t=>t.match({Err:()=>e.isErr,Ok:t=>e.isOk&&e.value===t});var e,r}ap(t){return function(t,e){const r=e=>e.andThen(e=>t.map(t=>t(e)));return E(r,e)}(this,t)}}const z=I.ok,F=I.err;function A(t,e,r){function n(e,r){return r.isOk?e(r.value):t(r.error)}function i(t,e){return void 0!==e?n(t,e):e=>n(t,e)}return void 0===e?i:void 0===r?i(e):i(e,r)}const L=t=>{const e=t.match({Ok:P,Err:P});return`${t.variant.toString()}(${e})`},q=t=>t.isOk?{variant:t.variant,value:t.value}:{variant:t.variant,error:t.error};const D=I,W="Just",_="Nothing";let U;class H{constructor(t){if(B(t))return this.repr=[_],U||(U=this),U;this.repr=[W,t]}static of(t){return new H(t)}static just(t){if(B(t))throw new Error(`attempted to call "just" with ${t}`);return new H(t)}static nothing(t){return new H}get variant(){return this.repr[0]}get value(){if(this.repr[0]===_)throw new Error("Cannot get the value of `Nothing`");return this.repr[1]}get isJust(){return this.repr[0]===W}get isNothing(){return this.repr[0]===_}map(t){return function(t,e){const r=e=>e.isJust?X(t(e.value)):Q();return E(r,e)}(t,this)}mapOr(t,e){return function(t,e,r){function n(e,r){return r.isJust?e(r.value):t}function i(t,e){return void 0!==e?n(t,e):e=>n(t,e)}return void 0===e?i:void 0===r?i(e):i(e,r)}(t,e,this)}mapOrElse(t,e){return G(t,e,this)}match(t){return function(t,e){const r=e=>G(t.Nothing,t.Just,e);return E(r,e)}(t,this)}or(t){return function(t,e){const r=e=>e.isJust?e:t;return void 0!==e?r(e):r}(t,this)}orElse(t){return e=t,E(t=>t.isJust?t:e(),this);var e}and(t){return e=t,E(t=>t.isJust?e:Q(),this);var e}andThen(t){return V(t,this)}unwrapOr(t){return function(t,e){const r=e=>e.isJust?e.value:t;return E(r,e)}(t,this)}unwrapOrElse(t){return e=t,E(t=>t.isJust?t.value:e(),this);var e}toOkOrErr(t){return function(t,e){const r=e=>e.isJust?D.ok(e.value):D.err(t);return void 0!==e?r(e):r}(t,this)}toOkOrElseErr(t){return function(t,e){return E(e=>e.isJust?D.ok(e.value):D.err(t()),e)}(t,this)}toString(){return function(t){const e=t.map(t=>`(${P(t)})`).unwrapOr("");return`${t.variant}${e}`}(this)}toJSON(){return(t=this).isJust?{variant:t.variant,value:Y(t.value)?t.value.toJSON():t.value}:{variant:t.variant};var t}equals(t){return e=t,E(t=>t.match({Just:t=>e.isJust&&e.value===t,Nothing:()=>e.isNothing}),this);var e}ap(t){return function(t,e){const r=e=>e.andThen(e=>t.map(t=>t(e)));return E(r,e)}(this,t)}get(t){return function(t,e){return E(V(function(t,e){const r=e=>Z.of(e[t]);return E(r,e)}(t)),e)}(t,this)}}const X=H.just,Q=H.nothing;function G(t,e,r){function n(e,r){return r.isJust?e(r.value):t()}function i(t,e){return void 0!==e?n(t,e):e=>n(t,e)}return void 0===e?i:void 0===r?i(e):i(e,r)}function V(t,e){const r=e=>e.isJust?t(e.value):Q();return void 0!==e?r(e):r}function Y(t){return t instanceof Z}const Z=H,K=["dotnetspy","ebpfspy","gospy","phpspy","pyspy","rbspy","nodespy","javaspy","pyroscope-rs","scrape","tracing","unknown"],tt=t.preprocess(t=>t&&K.includes(t)?t:"unknown",t.enum(K).default("unknown")),et=["samples","objects","goroutines","bytes","lock_samples","lock_nanoseconds","trace_samples","exceptions"],rt=t.preprocess(t=>"string"==typeof t&&et.includes(t)?t:"unknown",t.enum(["samples","objects","goroutines","bytes","lock_samples","lock_nanoseconds","trace_samples","exceptions","unknown"])),nt=t.object({names:t.array(t.preprocess(t=>t||"unknown",t.string().min(1))),levels:t.array(t.array(t.number())),numTicks:t.number(),maxSelf:t.number()}),it=t.object({appName:t.string().optional(),name:t.string().optional(),startTime:t.number().optional(),endTime:t.number().optional(),query:t.string().optional(),maxNodes:t.number().optional(),format:t.enum(["single","double"]),sampleRate:t.number(),spyName:tt,units:rt});t.object({version:t.number().min(1).max(1).default(1),flamebearer:nt,metadata:it,leftTicks:t.number().optional(),rightTicks:t.number().optional()});const at={format:"single",jStep:4,jName:3,getBarOffset:(t,e)=>t[e],getBarTotal:(t,e)=>t[e+1],getBarTotalDiff:(t,e)=>0,getBarSelf:(t,e)=>t[e+2],getBarSelfDiff:(t,e)=>0,getBarName:(t,e)=>t[e+3]},ot={format:"double",jStep:7,jName:6,getBarOffset:(t,e)=>t[e]+t[e+3],getBarTotal:(t,e)=>t[e+4]+t[e+1],getBarTotalLeft:(t,e)=>t[e+1],getBarTotalRght:(t,e)=>t[e+4],getBarTotalDiff:(t,e)=>t[e+4]-t[e+1],getBarSelf:(t,e)=>t[e+5]+t[e+2],getBarSelfLeft:(t,e)=>t[e+2],getBarSelfRght:(t,e)=>t[e+5],getBarSelfDiff:(t,e)=>t[e+5]-t[e+2],getBarName:(t,e)=>t[e+6]};function st(t){switch(t){case"single":return at;case"double":return ot;default:throw new Error(`Unsupported type: '${t}'`)}}const lt=t.object({refType:t.string(),traceID:t.string(),spanID:t.string()}),ut=t.object({key:t.string(),type:t.string(),value:t.union([t.boolean(),t.number(),t.string()])}),ct=t.object({traceID:t.string(),spanID:t.string(),flags:t.string(),operationName:t.string(),references:t.array(lt),startTime:t.number(),duration:t.number(),tags:t.array(ut),logs:t.object({timestamp:t.number(),fields:t.array(ut)}),processID:t.string(),warnings:t.any()}),ht=t.object({serviceName:t.string(),tags:t.array(ut)});t.object({traceID:t.string(),spans:t.array(ct),processes:t.record(ht),warnings:t.any()});const ft=t.object({watermark:t.object({}).optional(),startTime:t.number(),samples:t.array(t.number()),durationDelta:t.number()});t.record(t.string(),ft);const gt=22,dt=21.5;function mt(t,e=!1){if(!t||!e)return t;const r=function(t){if(null==t)return null;if("number"==typeof t)return{value:t,unit:"",hasLessThan:!1,sign:""};let e=String(t).trim().replace(/\u2212/g,"-");if(!e)return null;let r=!1;e.startsWith("<")&&(r=!0,e=e.slice(1).trim());const n=e.match(/^([+\-]?)(\d*\.?\d+)\s*(.*)$/);if(!n)return null;const i=n[1]||"",a=n[2],o=(n[3]||"").trim(),s=parseFloat(a);return Number.isFinite(s)?{value:s,unit:o,hasLessThan:r,sign:i}:null}(t);if(!r)return t;const{unit:n}=r;let i=n;const a=n.toLowerCase();"ms"===a?i="毫秒":"μs"===a||"µs"===a||"us"===a?i="微秒":"second"===a||"seconds"===a?i="秒":"minute"===a||"minutes"===a||"min"===a||"mins"===a?i="分钟":"hour"===a||"hours"===a?i="小时":"day"===a||"days"===a?i="天":"month"===a||"months"===a?i="月":"year"!==a&&"years"!==a||(i="年");const o=String(t).match(/^([<\s]*)([+\-]?\d*\.?\d+)(.*)$/);if(!o)return t;return`${o[1]||""}${o[2]||""} ${i}`.trim()}function pt(t){return Math.round(1e4*t)/100}class bt{constructor(t,e,r){this.divider=1,this.enableSubsecondPrecision=!1,this.suffix="second",this.durations=[[60,"minute"],[60,"hour"],[24,"day"],[30,"month"],[12,"year"]],this.units="",r&&(this.enableSubsecondPrecision=r,this.durations=[[1e3,"ms"],[1e3,"second"],...this.durations],this.suffix="μs",t*=1e6),this.units=e||"";for(let e=0;e<this.durations.length;e++){const r=this.durations[e];if(!r){console.warn("Could not calculate level");break}if(!(t>=r[0]))break;this.divider*=r[0],t/=r[0],this.suffix=r[1]}}format(t,e,r=!0){this.enableSubsecondPrecision&&(e/=1e6);const n=t/e/this.divider;let i=n.toFixed(2);return 0===n?i="0.00":(n>=0&&n<.01||n<=0&&n>-.01)&&(i="< 0.01"),r?`${i} ${this.units||`${this.suffix}${1===n||2===this.suffix.length?"":"s"}`}`:i}formatPrecise(t,e){this.enableSubsecondPrecision&&(e/=1e6);const r=t/e/this.divider;return`${parseFloat(r.toFixed(5))} ${this.units||`${this.suffix}${1===r||2===this.suffix.length?"":"s"}`}`}}class vt{constructor(t){this.divider=1,this.multiplier=1,this.suffix="second",this.durations=[[60,"minute"],[60,"hour"],[24,"day"],[30,"month"],[12,"year"]],t/=1e9;for(let e=0;e<this.durations.length;e++){const r=this.durations[e];if(!r){console.warn("Could not calculate level");break}if(!(t>=r[0]))break;this.divider*=r[0],t/=r[0],this.suffix=r[1]}}format(t){const e=t/1e9/this.divider;let r=e.toFixed(2);return(e>=0&&e<.01||e<=0&&e>-.01)&&(r="< 0.01"),`${r} ${this.suffix}${1===e?"":"s"}`}formatPrecise(t){const e=t/1e9/this.divider;return`${parseFloat(e.toFixed(5))} ${this.suffix}${1===e?"":"s"}`}}class yt{constructor(t){this.divider=1,this.suffix="",this.objects=[[1e3,"K"],[1e3,"M"],[1e3,"G"],[1e3,"T"],[1e3,"P"]];for(let e=0;e<this.objects.length;e++){const r=this.objects[e];if(!r){console.warn("Could not calculate level");break}if(!(t>=r[0]))break;this.divider*=r[0],t/=r[0],this.suffix=r[1]}}format(t){const e=t/this.divider;let r=e.toFixed(2);return(e>=0&&e<.01||e<=0&&e>-.01)&&(r="< 0.01"),`${r} ${this.suffix}`}formatPrecise(t){const e=t/this.divider;return`${parseFloat(e.toFixed(5))} ${this.suffix}`}}class wt{constructor(t){this.divider=1,this.suffix="bytes",this.bytes=[[1024,"KB"],[1024,"MB"],[1024,"GB"],[1024,"TB"],[1024,"PB"]];for(let e=0;e<this.bytes.length;e++){const r=this.bytes[e];if(!r){console.warn("Could not calculate level");break}if(!(t>=r[0]))break;{this.divider*=r[0],t/=r[0];const e=r[1];e?this.suffix=e:(console.warn("Could not calculate suffix"),this.suffix="")}}}format(t){const e=t/this.divider;let r=e.toFixed(2);return(e>=0&&e<.01||e<=0&&e>-.01)&&(r="< 0.01"),`${r} ${this.suffix}`}formatPrecise(t){const e=t/this.divider;return`${parseFloat(e.toFixed(5))} ${this.suffix}`}}function kt({mode:t,charSize:e,rectWidth:r,fullText:n,shortText:i}){if("TAIL"===t){if(e*n.length<=r)return{mode:t,text:n,marginLeft:3};const a=e*i.length;return a<=r?{mode:t,text:i,marginLeft:3}:{mode:t,text:i,marginLeft:-(a-r+3)}}return{mode:t,text:n,marginLeft:3}}function xt(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Mt(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Nt(t){let e,r,n;function i(t,n,i=0,a=t.length){if(i<a){if(0!==e(n,n))return a;do{const e=i+a>>>1;r(t[e],n)<0?i=e+1:a=e}while(i<a)}return i}return 2!==t.length?(e=xt,r=(e,r)=>xt(t(e),r),n=(e,r)=>t(e)-r):(e=t===xt||t===Mt?t:$t,r=t,n=t),{left:i,center:function(t,e,r=0,a=t.length){const o=i(t,e,r,a-1);return o>r&&n(t[o-1],e)>-n(t[o],e)?o-1:o},right:function(t,n,i=0,a=t.length){if(i<a){if(0!==e(n,n))return a;do{const e=i+a>>>1;r(t[e],n)<=0?i=e+1:a=e}while(i<a)}return i}}}function $t(){return 0}const jt=Nt(xt).right;Nt(function(t){return null===t?NaN:+t}).center;const Tt=Math.sqrt(50),Ot=Math.sqrt(10),St=Math.sqrt(2);function Ct(t,e,r){const n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=Tt?10:a>=Ot?5:a>=St?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(t*u),l=Math.round(e*u),s/u<t&&++s,l/u>e&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(t/u),l=Math.round(e/u),s*u<t&&++s,l*u>e&&--l),l<s&&.5<=r&&r<2?Ct(t,e,2*r):[s,l,u]}function Bt(t,e,r){return Ct(t=+t,e=+e,r=+r)[2]}function Et(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Pt(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function Rt(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function Jt(){}var It=.7,zt=1/It,Ft="\\s*([+-]?\\d+)\\s*",At="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Lt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",qt=/^#([0-9a-f]{3,8})$/,Dt=new RegExp(`^rgb\\(${Ft},${Ft},${Ft}\\)$`),Wt=new RegExp(`^rgb\\(${Lt},${Lt},${Lt}\\)$`),_t=new RegExp(`^rgba\\(${Ft},${Ft},${Ft},${At}\\)$`),Ut=new RegExp(`^rgba\\(${Lt},${Lt},${Lt},${At}\\)$`),Ht=new RegExp(`^hsl\\(${At},${Lt},${Lt}\\)$`),Xt=new RegExp(`^hsla\\(${At},${Lt},${Lt},${At}\\)$`),Qt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Gt(){return this.rgb().formatHex()}function Vt(){return this.rgb().formatRgb()}function Yt(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=qt.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?Zt(e):3===r?new ee(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?Kt(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?Kt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Dt.exec(t))?new ee(e[1],e[2],e[3],1):(e=Wt.exec(t))?new ee(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=_t.exec(t))?Kt(e[1],e[2],e[3],e[4]):(e=Ut.exec(t))?Kt(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Ht.exec(t))?se(e[1],e[2]/100,e[3]/100,1):(e=Xt.exec(t))?se(e[1],e[2]/100,e[3]/100,e[4]):Qt.hasOwnProperty(t)?Zt(Qt[t]):"transparent"===t?new ee(NaN,NaN,NaN,0):null}function Zt(t){return new ee(t>>16&255,t>>8&255,255&t,1)}function Kt(t,e,r,n){return n<=0&&(t=e=r=NaN),new ee(t,e,r,n)}function te(t,e,r,n){return 1===arguments.length?((i=t)instanceof Jt||(i=Yt(i)),i?new ee((i=i.rgb()).r,i.g,i.b,i.opacity):new ee):new ee(t,e,r,null==n?1:n);var i}function ee(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function re(){return`#${oe(this.r)}${oe(this.g)}${oe(this.b)}`}function ne(){const t=ie(this.opacity);return`${1===t?"rgb(":"rgba("}${ae(this.r)}, ${ae(this.g)}, ${ae(this.b)}${1===t?")":`, ${t})`}`}function ie(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ae(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function oe(t){return((t=ae(t))<16?"0":"")+t.toString(16)}function se(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new ue(t,e,r,n)}function le(t){if(t instanceof ue)return new ue(t.h,t.s,t.l,t.opacity);if(t instanceof Jt||(t=Yt(t)),!t)return new ue;if(t instanceof ue)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),o=NaN,s=a-i,l=(a+i)/2;return s?(o=e===a?(r-n)/s+6*(r<n):r===a?(n-e)/s+2:(e-r)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new ue(o,s,l,t.opacity)}function ue(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function ce(t){return(t=(t||0)%360)<0?t+360:t}function he(t){return Math.max(0,Math.min(1,t||0))}function fe(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}Pt(Jt,Yt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Gt,formatHex:Gt,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return le(this).formatHsl()},formatRgb:Vt,toString:Vt}),Pt(ee,te,Rt(Jt,{brighter(t){return t=null==t?zt:Math.pow(zt,t),new ee(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?It:Math.pow(It,t),new ee(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ee(ae(this.r),ae(this.g),ae(this.b),ie(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:re,formatHex:re,formatHex8:function(){return`#${oe(this.r)}${oe(this.g)}${oe(this.b)}${oe(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:ne,toString:ne})),Pt(ue,function(t,e,r,n){return 1===arguments.length?le(t):new ue(t,e,r,null==n?1:n)},Rt(Jt,{brighter(t){return t=null==t?zt:Math.pow(zt,t),new ue(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?It:Math.pow(It,t),new ue(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new ee(fe(t>=240?t-240:t+120,i,n),fe(t,i,n),fe(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new ue(ce(this.h),he(this.s),he(this.l),ie(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=ie(this.opacity);return`${1===t?"hsl(":"hsla("}${ce(this.h)}, ${100*he(this.s)}%, ${100*he(this.l)}%${1===t?")":`, ${t})`}`}}));var ge=t=>()=>t;function de(t){return 1===(t=+t)?me:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):ge(isNaN(e)?r:e)}}function me(t,e){var r=e-t;return r?function(t,e){return function(r){return t+r*e}}(t,r):ge(isNaN(t)?e:t)}var pe=function t(e){var r=de(e);function n(t,e){var n=r((t=te(t)).r,(e=te(e)).r),i=r(t.g,e.g),a=r(t.b,e.b),o=me(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=a(e),t.opacity=o(e),t+""}}return n.gamma=t,n}(1);function be(t,e){e||(e=[]);var r,n=t?Math.min(e.length,t.length):0,i=e.slice();return function(a){for(r=0;r<n;++r)i[r]=t[r]*(1-a)+e[r]*a;return i}}function ve(t,e){var r,n=e?e.length:0,i=t?Math.min(n,t.length):0,a=new Array(i),o=new Array(n);for(r=0;r<i;++r)a[r]=$e(t[r],e[r]);for(;r<n;++r)o[r]=e[r];return function(t){for(r=0;r<i;++r)o[r]=a[r](t);return o}}function ye(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}function we(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function ke(t,e){var r,n={},i={};for(r in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)r in t?n[r]=$e(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}var xe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Me=new RegExp(xe.source,"g");function Ne(t,e){var r,n,i,a=xe.lastIndex=Me.lastIndex=0,o=-1,s=[],l=[];for(t+="",e+="";(r=xe.exec(t))&&(n=Me.exec(e));)(i=n.index)>a&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:we(r,n)})),a=Me.lastIndex;return a<e.length&&(i=e.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join("")})}function $e(t,e){var r,n,i=typeof e;return null==e||"boolean"===i?ge(e):("number"===i?we:"string"===i?(r=Yt(e))?(e=r,pe):Ne:e instanceof Yt?pe:e instanceof Date?ye:(n=e,!ArrayBuffer.isView(n)||n instanceof DataView?Array.isArray(e)?ve:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?ke:we:be))(t,e)}function je(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}function Te(t){return+t}var Oe=[0,1];function Se(t){return t}function Ce(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:(r=isNaN(e)?NaN:.5,function(){return r});var r}function Be(t,e,r){var n=t[0],i=t[1],a=e[0],o=e[1];return i<n?(n=Ce(i,n),a=r(o,a)):(n=Ce(n,i),a=r(a,o)),function(t){return a(n(t))}}function Ee(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),a=new Array(n),o=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<n;)i[o]=Ce(t[o],t[o+1]),a[o]=r(e[o],e[o+1]);return function(e){var r=jt(t,e,1,n)-1;return a[r](i[r](e))}}function Pe(){var t,e,r,n,i,a,o=Oe,s=Oe,l=$e,u=Se;function c(){var t,e,r,l=Math.min(o.length,s.length);return u!==Se&&(t=o[0],e=o[l-1],t>e&&(r=t,t=e,e=r),u=function(r){return Math.max(t,Math.min(e,r))}),n=l>2?Ee:Be,i=a=null,h}function h(e){return null==e||isNaN(e=+e)?r:(i||(i=n(o.map(t),s,l)))(t(u(e)))}return h.invert=function(r){return u(e((a||(a=n(s,o.map(t),we)))(r)))},h.domain=function(t){return arguments.length?(o=Array.from(t,Te),c()):o.slice()},h.range=function(t){return arguments.length?(s=Array.from(t),c()):s.slice()},h.rangeRound=function(t){return s=Array.from(t),l=je,c()},h.clamp=function(t){return arguments.length?(u=!!t||Se,c()):u!==Se},h.interpolate=function(t){return arguments.length?(l=t,c()):l},h.unknown=function(t){return arguments.length?(r=t,h):r},function(r,n){return t=r,e=n,c()}}function Re(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Je(t){return(t=Re(Math.abs(t)))?t[1]:NaN}var Ie,ze=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Fe(t){if(!(e=ze.exec(t)))throw new Error("invalid format: "+t);var e;return new Ae({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Ae(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Le(t,e){var r=Re(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}Fe.prototype=Ae.prototype,Ae.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var qe={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Le(100*t,e),r:Le,s:function(t,e){var r=Re(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(Ie=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Re(t,Math.max(0,e+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function De(t){return t}var We,_e,Ue,He=Array.prototype.map,Xe=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Qe(t){var e,r,n=void 0===t.grouping||void 0===t.thousands?De:(e=He.call(t.grouping,Number),r=t.thousands+"",function(t,n){for(var i=t.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(t.substring(i-=s,i+s)),!((l+=s+1)>n));)s=e[o=(o+1)%e.length];return a.reverse().join(r)}),i=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?De:function(t){return function(e){return e.replace(/[0-9]/g,function(e){return t[+e]})}}(He.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",u=void 0===t.minus?"−":t.minus+"",c=void 0===t.nan?"NaN":t.nan+"";function h(t){var e=(t=Fe(t)).fill,r=t.align,h=t.sign,f=t.symbol,g=t.zero,d=t.width,m=t.comma,p=t.precision,b=t.trim,v=t.type;"n"===v?(m=!0,v="g"):qe[v]||(void 0===p&&(p=12),b=!0,v="g"),(g||"0"===e&&"="===r)&&(g=!0,e="0",r="=");var y="$"===f?i:"#"===f&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",w="$"===f?a:/[%p]/.test(v)?l:"",k=qe[v],x=/[defgprs%]/.test(v);function M(t){var i,a,l,f=y,M=w;if("c"===v)M=k(t)+M,t="";else{var N=(t=+t)<0||1/t<0;if(t=isNaN(t)?c:k(Math.abs(t),p),b&&(t=function(t){t:for(var e,r=t.length,n=1,i=-1;n<r;++n)switch(t[n]){case".":i=e=n;break;case"0":0===i&&(i=n),e=n;break;default:if(!+t[n])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),N&&0===+t&&"+"!==h&&(N=!1),f=(N?"("===h?h:u:"-"===h||"("===h?"":h)+f,M=("s"===v?Xe[8+Ie/3]:"")+M+(N&&"("===h?")":""),x)for(i=-1,a=t.length;++i<a;)if(48>(l=t.charCodeAt(i))||l>57){M=(46===l?o+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}m&&!g&&(t=n(t,1/0));var $=f.length+t.length+M.length,j=$<d?new Array(d-$+1).join(e):"";switch(m&&g&&(t=n(j+t,j.length?d-M.length:1/0),j=""),r){case"<":t=f+t+M+j;break;case"=":t=f+j+t+M;break;case"^":t=j.slice(0,$=j.length>>1)+f+t+M+j.slice($);break;default:t=j+f+t+M}return s(t)}return p=void 0===p?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,p)):Math.max(0,Math.min(20,p)),M.toString=function(){return t+""},M}return{format:h,formatPrefix:function(t,e){var r=h(((t=Fe(t)).type="f",t)),n=3*Math.max(-8,Math.min(8,Math.floor(Je(e)/3))),i=Math.pow(10,-n),a=Xe[8+n/3];return function(t){return r(i*t)+a}}}}function Ge(t,e,r,n){var i,a=function(t,e,r){r=+r;const n=(e=+e)<(t=+t),i=n?Bt(e,t,r):Bt(t,e,r);return(n?-1:1)*(i<0?1/-i:i)}(t,e,r);switch((n=Fe(null==n?",f":n)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(e));return null!=n.precision||isNaN(i=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Je(e)/3)))-Je(Math.abs(t)))}(a,o))||(n.precision=i),Ue(n,o);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(i=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Je(e)-Je(t))+1}(a,Math.max(Math.abs(t),Math.abs(e))))||(n.precision=i-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(i=function(t){return Math.max(0,-Je(Math.abs(t)))}(a))||(n.precision=i-2*("%"===n.type))}return _e(n)}function Ve(t){var e=t.domain;return t.ticks=function(t){var r=e();return function(t,e,r){if(!((r=+r)>0))return[];if((t=+t)===(e=+e))return[t];const n=e<t,[i,a,o]=n?Ct(e,t,r):Ct(t,e,r);if(!(a>=i))return[];const s=a-i+1,l=new Array(s);if(n)if(o<0)for(let t=0;t<s;++t)l[t]=(a-t)/-o;else for(let t=0;t<s;++t)l[t]=(a-t)*o;else if(o<0)for(let t=0;t<s;++t)l[t]=(i+t)/-o;else for(let t=0;t<s;++t)l[t]=(i+t)*o;return l}(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){var n=e();return Ge(n[0],n[n.length-1],null==t?10:t,r)},t.nice=function(r){null==r&&(r=10);var n,i,a=e(),o=0,s=a.length-1,l=a[o],u=a[s],c=10;for(u<l&&(i=l,l=u,u=i,i=o,o=s,s=i);c-- >0;){if((i=Bt(l,u,r))===n)return a[o]=l,a[s]=u,e(a);if(i>0)l=Math.floor(l/i)*i,u=Math.ceil(u/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,u=Math.floor(u*i)/i}n=i}return t},t}function Ye(){var t=Pe()(Se,Se);return t.copy=function(){return e=t,Ye().domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown());var e},Et.apply(t,arguments),Ve(t)}function Ze(t,e){if(t===e)return 0;if(0===t)return 100;const r=(e-t)/t*100;return r>100?100:r<-100?-100:r}function Ke(t,e){return N.rgb(t,t,t).alpha(e)}function tr(t,e){if(0===e.length)return e;const r=function(t){switch(t){case"dotnetspy":return/^(?<packageName>.+)\.(.+)\.(.+)\(.*\)$/;case"ebpfspy":case"unknown":return/^(?<packageName>.+)$/;case"gospy":case"scrape":return/^(?<packageName>.*?\/.*?\.|.*?\.|.+)(?<functionName>.*)$/;case"phpspy":return/^(?<packageName>(.*\/)*)(?<filename>.*\.php+)(?<line_info>.*)$/;case"pyspy":return/^(?<packageName>(.*\/)*)(?<filename>.*\.py+)(?<line_info>.*)$/;case"rbspy":return/^(?<packageName>(.*\/)*)(?<filename>.*\.rb+)(?<line_info>.*)$/;case"nodespy":return/^(\.\/node_modules\/)?(?<packageName>[^/]*)(?<filename>.*\.?(jsx?|tsx?)?):(?<functionName>.*):(?<line_info>.*)$/;case"tracing":return/^(?<packageName>.+?):.*$/;case"javaspy":return/^(?<packageName>.+\/)(?<filename>.+\.)(?<functionName>.+)$/;case"pyroscope-rs":return/^(?<packageName>[^::]+)/}return/^(?<packageName>.+)$/}(t),n=e.match(r);return n&&n.groups?n.groups.packageName||"":e}function er(t,e){const r=function(t,e=0){let r,n,i,a,o,s,l,u;for(r=3&t.length,n=t.length-r,i=e,o=3432918353,s=461845907,u=0;u<n;)l=255&t.charCodeAt(u)|(255&t.charCodeAt(++u))<<8|(255&t.charCodeAt(++u))<<16|(255&t.charCodeAt(++u))<<24,++u,l=(65535&l)*o+(((l>>>16)*o&65535)<<16)&4294967295,l=l<<15|l>>>17,l=(65535&l)*s+(((l>>>16)*s&65535)<<16)&4294967295,i^=l,i=i<<13|i>>>19,a=5*(65535&i)+((5*(i>>>16)&65535)<<16)&4294967295,i=27492+(65535&a)+(((a>>>16)+58964&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:l^=255&t.charCodeAt(u);default:l=(65535&l)*o+(((l>>>16)*o&65535)<<16)&4294967295,l=l<<15|l>>>17,l=(65535&l)*s+(((l>>>16)*s&65535)<<16)&4294967295,i^=l}return i^=t.length,i^=i>>>16,i=2246822507*(65535&i)+((2246822507*(i>>>16)&65535)<<16)&4294967295,i^=i>>>13,i=3266489909*(65535&i)+((3266489909*(i>>>16)&65535)<<16)&4294967295,i^=i>>>16,i>>>0}(e,0)%t.colors.length,n=t.colors[r];return n||(console.warn("Could not calculate color. Defaulting to the first one"),t.colors[0])}function rr(t){const{goodColor:e,neutralColor:r,badColor:n}=t,i=Ye().domain([-100,0,100]).range([e.rgb().toString(),r.rgb().toString(),n.rgb().toString()]);return t=>N(i(t).toString())}We=Qe({thousands:",",grouping:[3],currency:["$",""]}),_e=We.format,Ue=We.formatPrefix,N.rgb(148,142,142),N.rgb(200,0,0),N.rgb(0,170,0),N("#48CE73");const nr=new WeakMap,ir=new WeakMap,ar=new WeakMap,or=new WeakMap;const sr={collapsedLevelsSingular:"total (1 level collapsed)",collapsedLevelsPlural:"total ({n} levels collapsed)",isZh:!1};function lr(t){var e,r,n,i,a,o,s,l;const u=performance.now(),c=!1!==t.renderRects,h=!1!==t.renderText,f=null!==(e=t.renderMode)&&void 0!==e?e:"normal",g=t.timeBudgetMs,{canvas:d,fitMode:m,units:p,tickToX:b,levels:v,palette:y}=t,{numTicks:w,sampleRate:k,pxPerTick:x}=t,{rangeMin:M,rangeMax:N}=t,{focusedNode:$,zoom:j}=t,T=t.messages||sr,O=t.skipCanvasResize?d.width:function(t){if("clientWidth"in t&&"number"==typeof t.clientWidth)return t.clientWidth;return t.width}(d);if(t.skipCanvasResize||(d.width=O),M>=N)throw new Error("'rangeMin' should be strictly smaller than 'rangeMax'");const{format:S}=t,C=st(S),B=d.getContext("2d");if(!B)throw new Error("Could not get ctx");const E=j.mapOrElse(()=>0,t=>t.i),P=function(t,e,r){switch(r){case"samples":return new bt(t/e);case"objects":case"goroutines":case"lock_samples":case"exceptions":return new yt(t);case"bytes":return new wt(t);case"lock_nanoseconds":return new vt(t);case"trace_samples":return new bt(t/e,"",!0);default:return console.warn(`Unsupported unit: '${r}'. Defaulting to ''`),new bt(t/e," ")}}(w,k,p),R=$.isJust,J=$.mapOrElse(()=>0,t=>t.i),I=R?dt:0,z=!!t.highlightQuery&&t.highlightQuery.length>0,F=gt*(v.length-J)+(R?dt:0);t.skipCanvasResize||(d.height=F);const A="number"==typeof t.devicePixelRatio?t.devicePixelRatio:"undefined"!=typeof devicePixelRatio?devicePixelRatio:1;!t.skipDprScale&&A>1&&(d.width*=A,d.height*=A,B.scale(A,A)),B.textBaseline="middle",B.font="400 11.5px SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace";const L=B.measureText("a").width,{names:q}=t,D=function(t){const e=nr.get(t);if(e)return e;const r=new Map;return nr.set(t,r),r}(d),W=z?function(t,e){const r=ir.get(t);if(r){const t=r.get(e);if(t)return t}const n=e.toLowerCase(),i=new Uint8Array(t.length);for(let e=1;e<t.length;e+=1){const r=t[e];r&&r.toLowerCase().includes(n)&&(i[e]=1)}const a=null!=r?r:new Map;return a.set(e,i),ir.set(t,a),i}(q,t.highlightQuery):null,_="single"===t.format?function(t,e,r){const n=`${e}|${r.name}`,i=ar.get(t);if(i){const t=i.get(n);if(t)return t}const a=new Array(t.length);for(let n=0;n<t.length;n+=1){const i=tr(e,t[n]||"")||"";a[n]=er(r,i)}const o=null!=i?i:new Map;return o.set(n,a),ar.set(t,o),a}(q,t.spyName,y):null,U="double"===t.format?rr({name:y.name,goodColor:y.goodColor,neutralColor:y.neutralColor,badColor:y.badColor}):null,H=(t,e)=>{const r=t[e+C.jName];return!(!r||r<0||!W)&&1===W[r]},X=null!==(r=t.startI)&&void 0!==r?r:0,Q=null!==(n=t.startJ)&&void 0!==n?n:0;if(R&&"highlightOnly"!==f&&0===(null!==(i=t.levelStart)&&void 0!==i?i:0)&&0===X&&0===Q){const t=w*x;c&&(B.beginPath(),B.rect(0,0,w*x,dt),B.fillStyle=Ke(200,1).rgb().string(),B.fill());const e=$.mapOrElse(()=>"total",t=>function(t,e){return 1===t?e.collapsedLevelsSingular:e.collapsedLevelsPlural.replace("{n}",String(t))}(t.i-1,T)),r=kt({mode:m,charSize:L,rectWidth:t,fullText:e,shortText:e}),n=0,i=0,a=dt;if(h){B.beginPath(),B.rect(0,0,t,dt),B.save(),B.clip(),B.fillStyle="black";const e=Math.round(Math.max(n,0));B.fillText(r.text,e+r.marginLeft,i+a/2+1),B.restore()}}const G=Math.max(0,null!==(a=t.levelStart)&&void 0!==a?a:0),V=v.length-J,Y=Math.min(V,null!==(o=t.levelEnd)&&void 0!==o?o:V),Z=Math.max(G,null!==(s=t.startI)&&void 0!==s?s:G),K=Math.max(0,null!==(l=t.startJ)&&void 0!==l?l:0),{spyName:tt}=t,et=(e,r,n,i,a)=>{const o={level:e,j:r,i:n+$.mapOrElse(()=>0,t=>t.i),names:q,collapsed:i,selectedLevel:E,highlightModeOn:z,isHighlighted:a,spyName:tt,palette:y,colorByNameIndex:_,diffColorFn:U};switch(S){case"single":return function(t){const e=hr(t);if(e)return e;const r=st("single"),n=t.selectedLevel>t.i?.33:1;let i=t.level[t.j+r.jName];void 0===i&&(console.warn("Could nto find level",{l:t.j,jName:r.jName,level:t.level}),i=-1);if(t.colorByNameIndex&&i>=0&&t.colorByNameIndex[i])return t.colorByNameIndex[i].alpha(n);const a=t.names[i]||"",o=tr(t.spyName,a)||"";return er(t.palette,o).alpha(n)}({...o});case"double":return function(t){const e=hr(t);if(e)return e;const r=t.selectedLevel>t.i?.33:1,{leftRatio:n,rightRatio:i}=function(t,e,r,n){const i=ot;return r&&n?{leftRatio:i.getBarTotalLeft(t,e)/r,rightRatio:i.getBarTotalRght(t,e)/n}:(console.error("Properties 'rightTicks' and 'leftTicks' are required. Can't calculate ratio."),{leftRatio:0,rightRatio:0})}(t.level,t.j,t.leftTicks,t.rightTicks),a=pt(n),o=pt(i);if(t.diffColorFn)return t.diffColorFn(Ze(a,o)).alpha(r);return function(t,e,r){const n=Ze(e,r);return rr(t)(n)}(t.palette,a,o).alpha(r)}({...o,leftTicks:t.leftTicks,rightTicks:t.rightTicks});default:throw new Error(`Unsupported format: ${S}`)}};if("highlightOnly"===f&&z&&c){const t=function(t,e){const r=or.get(t);if(r)return r;const n=st(e),i=new Map;for(let e=0;e<t.length;e+=1){const r=t[e];for(let t=0;t<r.length;t+=n.jStep){const a=n.getBarName(r,t);if(void 0===a||a<0)continue;const o=i.get(a);o?o.push({i:e,j:t}):i.set(a,[{i:e,j:t}])}}return or.set(t,i),i}(v,S),e=[];for(let t=1;t<q.length;t+=1)W&&1===W[t]&&e.push(t);for(let r=0;r<e.length;r+=1){const n=e[r],i=t.get(n);if(i)for(let t=0;t<i.length;t+=1){const e=i[t],r=e.i-J;if(e.i<J||r<G||r>=Y)continue;const n=v[e.i],a=b(C.getBarOffset(n,e.j)),o=r*gt+I,s=dt,l=C.getBarTotal(n,e.j),u=l*x<=5,c=l*x-(u?0:.5);if(c<=0)continue;B.beginPath(),B.rect(a,o,c,s);const h=et(n,e.j,r,u,!0);B.fillStyle=h.string(),B.fill()}}return{done:!0,nextI:Y,nextJ:0}}for(let t=Z;t<Y;t+=1){const e=v[J+t];if(!e)throw new Error(`Could not find level: ${J+t}`);let r=t===Z?K:0;for(;r<e.length;r+=C.jStep){const n=C.getBarOffset(e,r),i=b(n),a=t*gt+I,o=dt,s=z&&H(e,r);let l=C.getBarTotal(e,r);const d=l*x<=5;if(d)for(;r<e.length-C.jStep&&n+l===C.getBarOffset(e,r+C.jStep)&&C.getBarTotal(e,r+C.jStep)*x<=5&&s===(z&&H(e,r+C.jStep));)r+=C.jStep,l+=C.getBarTotal(e,r);const p=l*x-(d?0:.5);if(B.beginPath(),B.rect(i,a,p,o),c){if("forceGrey"===f)B.fillStyle=Ke(200,.66).rgb().string();else{const n=et(e,r,t,d,s);B.fillStyle=n.string()}B.fill()}if(!h||d||"forceGrey"===f){if(g&&performance.now()-u>g)return{done:!1,nextI:t,nextJ:r+C.jStep};continue}if(p<20)continue;const v=ur(q,r,S,e),y=kt({mode:m,charSize:L,rectWidth:p,fullText:cr(v,l,k,P,T,D),shortText:v});B.save(),B.clip(),B.fillStyle="black";const w=Math.round(Math.max(i,0));if(B.fillText(y.text,w+y.marginLeft,a+o/2+1),B.restore(),g&&performance.now()-u>g)return{done:!1,nextI:t,nextJ:r+C.jStep}}if(g&&performance.now()-u>g)return{done:!1,nextI:t+1,nextJ:0}}return{done:!0,nextI:Y,nextJ:0}}function ur(t,e,r,n){let i=n[e+st(r).jName];void 0===i&&(i=-1);const a=t[i];return a||(console.warn("Could not find function name for",{j:e,format:r,level:n,names:t}),"")}function cr(t,e,r,n,i,a){let o=null==a?void 0:a.get(e);if(!o){const t=n.format(e,r);o=mt(t,!!i.isZh)||t,null==a||a.set(e,o)}return`${t} (${o})`}function hr({collapsed:t,highlightModeOn:e,isHighlighted:r}){return t||e&&!r?Ke(200,.66):null}class fr{constructor(t,e,r,n,i,a,o,s){if(this.flamebearer=t,this.canvas=e,this.focusedNode=r,this.fitMode=n,this.highlightQuery=i,this.zoom=a,this.palette=o,this.messages=s,this.cachedRange=null,this.cachedPxPerTick=null,this.tickToX=t=>{var e;const r=this.cachedRange?this.cachedRange.rangeMin:this.getRange().rangeMin,n=null!==(e=this.cachedPxPerTick)&&void 0!==e?e:this.pxPerTick();return(t-this.flamebearer.numTicks*r)*n},this.xyToBarPosition=t=>{const{ff:e}=this,{i:r,j:n}=this.xyToBarIndex(t.x,t.y),i=this.focusedNode.mapOrElse(()=>0,t=>t.i<0?0:t.i-1),a=this.flamebearer.levels[r];if(!a)throw new Error(`Could not find level: '${r}'`);const o=Math.max(this.tickToX(e.getBarOffset(a,n)),0);return{x:o,y:Math.max((r-i)*gt,0),width:Math.min(this.tickToX(e.getBarOffset(a,n)+e.getBarTotal(a,n))-o,this.getCanvasWidth())}},this.xyToBarData=t=>{const{i:e,j:r}=this.xyToBarIndex(t.x,t.y),n=this.flamebearer.levels[e];if(!n)throw new Error(`Could not find level: '${e}'`);switch(this.flamebearer.format){case"single":{const t=at;return{format:"single",name:this.flamebearer.names[t.getBarName(n,r)],self:t.getBarSelf(n,r),offset:t.getBarOffset(n,r),total:t.getBarTotal(n,r)}}case"double":{const t=ot;return{format:"double",barTotal:t.getBarTotal(n,r),totalLeft:t.getBarTotalLeft(n,r),totalRight:t.getBarTotalRght(n,r),totalDiff:t.getBarTotalDiff(n,r),name:this.flamebearer.names[t.getBarName(n,r)]}}default:throw new Error("Unsupported type")}},this.isWithinBounds=(t,e)=>{if(t<0||t>this.getCanvasWidth())return!1;try{const{i:r,j:n}=this.xyToBarIndex(t,e);if(-1===n||-1===r)return!1}catch(t){return!1}return!0},this.zoom=a,this.focusedNode=r,this.flamebearer=t,this.canvas=e,this.highlightQuery=i,this.ff=st(t.format),this.palette=o,this.messages=s,r.isJust&&a.isJust&&a.value.i<r.value.i)throw new Error("Zoom i level should be bigger than Focus")}render(t){var e;const{rangeMin:r,rangeMax:n,pxPerTick:i}=this.updateCachedMetrics(),a=null!==(e=null==t?void 0:t.highlightQueryOverride)&&void 0!==e?e:this.highlightQuery,o={canvas:this.canvas,format:this.flamebearer.format,numTicks:this.flamebearer.numTicks,sampleRate:this.flamebearer.sampleRate,names:this.flamebearer.names,levels:this.flamebearer.levels,spyName:this.flamebearer.spyName,units:this.flamebearer.units,maxSelf:this.flamebearer.maxSelf,rangeMin:r,rangeMax:n,fitMode:this.fitMode,highlightQuery:a,zoom:this.zoom,focusedNode:this.focusedNode,pxPerTick:i,tickToX:t=>(t-this.flamebearer.numTicks*r)*i,palette:this.palette,messages:this.messages,renderRects:null==t?void 0:t.renderRects,renderText:null==t?void 0:t.renderText,renderMode:null==t?void 0:t.renderMode,levelStart:null==t?void 0:t.levelStart,levelEnd:null==t?void 0:t.levelEnd,startI:null==t?void 0:t.startI,startJ:null==t?void 0:t.startJ,timeBudgetMs:null==t?void 0:t.timeBudgetMs,skipCanvasResize:null==t?void 0:t.skipCanvasResize,skipDprScale:null==t?void 0:t.skipDprScale,devicePixelRatio:null==t?void 0:t.devicePixelRatio},{format:s}=this.flamebearer;switch(s){case"single":return lr({...o,format:"single"});case"double":return lr({...o,leftTicks:this.flamebearer.leftTicks,rightTicks:this.flamebearer.rightTicks});default:throw new Error(`Invalid format: '${s}'`)}}pxPerTick(){if(null!==this.cachedPxPerTick)return this.cachedPxPerTick;const{rangeMin:t,rangeMax:e}=this.getRange(),r=this.getCanvasWidth()/this.flamebearer.numTicks/(e-t);return this.cachedRange={rangeMin:t,rangeMax:e},this.cachedPxPerTick=r,r}updateCachedMetrics(){const{rangeMin:t,rangeMax:e}=this.getRange(),r=this.getCanvasWidth()/this.flamebearer.numTicks/(e-t);return this.cachedRange={rangeMin:t,rangeMax:e},this.cachedPxPerTick=r,{rangeMin:t,rangeMax:e,pxPerTick:r}}getRange(){const{ff:t}=this,e=e=>{const r=this.flamebearer.levels[e.i];if(!r)throw new Error(`Could not find level: '${e.i}'`);return{rangeMin:t.getBarOffset(r,e.j)/this.flamebearer.numTicks,rangeMax:(t.getBarOffset(r,e.j)+t.getBarTotal(r,e.j))/this.flamebearer.numTicks}},r=e=>{const r=this.flamebearer.levels[e.i];if(!r)throw new Error(`Could not find level: '${e.i}'`);return{rangeMin:t.getBarOffset(r,e.j)/this.flamebearer.numTicks,rangeMax:(t.getBarOffset(r,e.j)+t.getBarTotal(r,e.j))/this.flamebearer.numTicks}},{zoom:n,focusedNode:i}=this;return n.match({Just:t=>i.match({Just:n=>{const i=r(n),a=e(t);return i.rangeMax-i.rangeMin<a.rangeMax-a.rangeMin?(console.warn("Focus is smaller than range, this shouldnt happen. Verify that the zoom is always bigger than the focus."),r(n)):e(t)},Nothing:()=>e(t)}),Nothing:()=>i.match({Just:t=>r(t),Nothing:()=>({rangeMin:0,rangeMax:1})})})}getCanvasWidth(){return"clientWidth"in this.canvas&&"number"==typeof this.canvas.clientWidth?this.canvas.clientWidth:this.canvas.width}isFocused(){return this.focusedNode.isJust}binarySearchLevel(t,e){const{ff:r}=this;let n=0,i=e.length-r.jStep;for(;n<=i;){const a=r.jStep*(n/r.jStep+i/r.jStep>>1),o=this.tickToX(r.getBarOffset(e,a)),s=this.tickToX(r.getBarOffset(e,a)+r.getBarTotal(e,a));if(o<=t&&s>=t)return s-o>5?a:-1;o>t?i=a-r.jStep:n=a+r.jStep}return-1}xyToBarIndex(t,e){if(t<0||e<0)throw new Error(`x and y must be bigger than 0. x = ${t}, y = ${e}`);if(this.isFocused()&&e<=dt)return{i:0,j:0};const r=this.isFocused()?e-dt:e,n=this.focusedNode.mapOrElse(()=>0,t=>t.i<=0?0:t.i),i=this.zoom.match({Just:()=>this.focusedNode.match({Just:()=>n,Nothing:()=>0}),Nothing:()=>this.focusedNode.match({Just:()=>n,Nothing:()=>0})}),a=Math.floor(r/gt)+i;if(a>=0&&a<this.flamebearer.levels.length){const e=this.flamebearer.levels[a];if(!e)throw new Error(`Could not find level: '${a}'`);return{i:a,j:this.binarySearchLevel(t,e)}}return{i:0,j:0}}parseXY(t,e){const r={x:t,y:e};return this.isWithinBounds(t,e)?Z.of(r):Z.nothing()}xyToBar(t,e){return this.parseXY(t,e).map(r=>{const{i:n,j:i}=this.xyToBarIndex(t,e);return{i:n,j:i,...this.xyToBarPosition(r),...this.xyToBarData(r)}})}}const gr={rectCanvas:null,textCanvas:null,renderState:{rect:{token:0,running:!1,nextI:0,nextJ:0,firstChunk:!0,payload:null,flamegraph:null},text:{token:0,running:!1,nextI:0,nextJ:0,firstChunk:!0,payload:null,flamegraph:null}}},dr=t=>t?Z.just(t):Z.nothing(),mr=(t,e)=>{const r=gr.renderState[t],n=r.payload;if(!n||r.token!==e)return;const i="rect"===t?gr.rectCanvas:gr.textCanvas;if(!i)return void(r.running=!1);r.flamegraph||(r.flamegraph=new fr(n.flamebearer,i,dr(n.focusedNode),n.fitMode,n.highlightQuery,dr(n.zoom),(t=>({name:t.name,goodColor:N.rgb(...t.goodColor),neutralColor:N.rgb(...t.neutralColor),badColor:N.rgb(...t.badColor),colors:t.colors.map(t=>N.rgb(...t))}))(n.palette),n.messages));const a=r.flamegraph.render({renderRects:n.renderRects,renderText:n.renderText,timeBudgetMs:"rect"===t?12:8,startI:r.nextI,startJ:r.nextJ,skipCanvasResize:!r.firstChunk,skipDprScale:!r.firstChunk,devicePixelRatio:n.devicePixelRatio});if(r.firstChunk=!1,!a.done)return r.nextI=a.nextI,r.nextJ=a.nextJ,void setTimeout(()=>mr(t,e),0);r.running=!1,r.nextI=0,r.nextJ=0,r.firstChunk=!0,r.flamegraph=null};self.onmessage=t=>{const e=t.data;e&&e.type&&("init"!==e.type?"render"===e.type&&(t=>{const e="rect"===t.kind?gr.rectCanvas:gr.textCanvas;if(!e)return;t.width>0&&(e.width=t.width);const r=gr.renderState[t.kind];r.token+=1,r.running=!0,r.nextI=0,r.nextJ=0,r.firstChunk=!0,r.payload=t,r.flamegraph=null;const n=r.token;setTimeout(()=>mr(t.kind,n),0)})(e.payload):"rect"===e.payload.kind?gr.rectCanvas=e.payload.canvas:gr.textCanvas=e.payload.canvas)};
2
2
  //# sourceMappingURL=flamegraphRenderWorker.js.map