@skdx/web-components-charts 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/area.cjs +38 -35
- package/dist/area.d.cts +1 -1
- package/dist/area.d.ts +1 -1
- package/dist/area.js +28 -25
- package/dist/bar.cjs +38 -35
- package/dist/bar.d.cts +1 -1
- package/dist/bar.d.ts +1 -1
- package/dist/bar.js +28 -25
- package/dist/boxplot.cjs +33 -30
- package/dist/boxplot.d.cts +1 -1
- package/dist/boxplot.d.ts +1 -1
- package/dist/boxplot.js +40 -37
- package/dist/bubble.cjs +37 -34
- package/dist/bubble.d.cts +1 -1
- package/dist/bubble.d.ts +1 -1
- package/dist/bubble.js +25 -22
- package/dist/bullet.cjs +40 -37
- package/dist/bullet.d.cts +1 -1
- package/dist/bullet.d.ts +1 -1
- package/dist/bullet.js +40 -37
- package/dist/bump.cjs +38 -35
- package/dist/bump.d.cts +1 -1
- package/dist/bump.d.ts +1 -1
- package/dist/bump.js +38 -35
- package/dist/candlestick.cjs +38 -35
- package/dist/candlestick.d.cts +1 -1
- package/dist/candlestick.d.ts +1 -1
- package/dist/candlestick.js +40 -37
- package/dist/chord.cjs +40 -37
- package/dist/chord.d.cts +1 -1
- package/dist/chord.d.ts +1 -1
- package/dist/chord.js +38 -35
- package/dist/circle-packing.cjs +31 -28
- package/dist/circle-packing.d.cts +1 -1
- package/dist/circle-packing.d.ts +1 -1
- package/dist/circle-packing.js +30 -27
- package/dist/combo.cjs +38 -35
- package/dist/combo.d.cts +1 -1
- package/dist/combo.d.ts +1 -1
- package/dist/combo.js +28 -25
- package/dist/dumbbell.cjs +37 -34
- package/dist/dumbbell.d.cts +1 -1
- package/dist/dumbbell.d.ts +1 -1
- package/dist/dumbbell.js +40 -37
- package/dist/funnel.cjs +30 -27
- package/dist/funnel.d.cts +1 -1
- package/dist/funnel.d.ts +1 -1
- package/dist/funnel.js +40 -37
- package/dist/gantt.cjs +40 -37
- package/dist/gantt.d.cts +1 -1
- package/dist/gantt.d.ts +1 -1
- package/dist/gantt.js +30 -27
- package/dist/gauge.cjs +35 -32
- package/dist/gauge.d.cts +1 -1
- package/dist/gauge.d.ts +1 -1
- package/dist/gauge.js +39 -36
- package/dist/heatmap.cjs +38 -35
- package/dist/heatmap.d.cts +1 -1
- package/dist/heatmap.d.ts +1 -1
- package/dist/heatmap.js +30 -27
- package/dist/histogram.cjs +40 -37
- package/dist/histogram.d.cts +1 -1
- package/dist/histogram.d.ts +1 -1
- package/dist/histogram.js +30 -27
- package/dist/icicle.cjs +40 -37
- package/dist/icicle.d.cts +1 -1
- package/dist/icicle.d.ts +1 -1
- package/dist/icicle.js +40 -37
- package/dist/{index-oF5ss8v9.d.cts → index-D44-61v7.d.cts} +11 -5
- package/dist/{index-oF5ss8v9.d.ts → index-D44-61v7.d.ts} +11 -5
- package/dist/index.cjs +40 -37
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +40 -37
- package/dist/line.cjs +38 -35
- package/dist/line.d.cts +1 -1
- package/dist/line.d.ts +1 -1
- package/dist/line.js +28 -25
- package/dist/linear-gauge.cjs +40 -37
- package/dist/linear-gauge.d.cts +1 -1
- package/dist/linear-gauge.d.ts +1 -1
- package/dist/linear-gauge.js +40 -37
- package/dist/map.cjs +40 -37
- package/dist/map.d.cts +1 -1
- package/dist/map.d.ts +1 -1
- package/dist/map.js +40 -37
- package/dist/marimekko.cjs +32 -29
- package/dist/marimekko.d.cts +1 -1
- package/dist/marimekko.d.ts +1 -1
- package/dist/marimekko.js +33 -30
- package/dist/network.cjs +26 -23
- package/dist/network.d.cts +1 -1
- package/dist/network.d.ts +1 -1
- package/dist/network.js +40 -37
- package/dist/organization.cjs +29 -26
- package/dist/organization.d.cts +1 -1
- package/dist/organization.d.ts +1 -1
- package/dist/organization.js +40 -37
- package/dist/parallel.cjs +25 -22
- package/dist/parallel.d.cts +1 -1
- package/dist/parallel.d.ts +1 -1
- package/dist/parallel.js +37 -34
- package/dist/pareto.cjs +40 -37
- package/dist/pareto.d.cts +1 -1
- package/dist/pareto.d.ts +1 -1
- package/dist/pareto.js +26 -23
- package/dist/pie.cjs +40 -37
- package/dist/pie.d.cts +1 -1
- package/dist/pie.d.ts +1 -1
- package/dist/pie.js +39 -36
- package/dist/polar-area.cjs +40 -37
- package/dist/polar-area.d.cts +1 -1
- package/dist/polar-area.d.ts +1 -1
- package/dist/polar-area.js +40 -37
- package/dist/radar.cjs +27 -24
- package/dist/radar.d.cts +1 -1
- package/dist/radar.d.ts +1 -1
- package/dist/radar.js +40 -37
- package/dist/radial.cjs +39 -36
- package/dist/radial.d.cts +1 -1
- package/dist/radial.d.ts +1 -1
- package/dist/radial.js +39 -36
- package/dist/range.cjs +40 -37
- package/dist/range.d.cts +1 -1
- package/dist/range.d.ts +1 -1
- package/dist/range.js +30 -27
- package/dist/sankey.cjs +29 -26
- package/dist/sankey.d.cts +1 -1
- package/dist/sankey.d.ts +1 -1
- package/dist/sankey.js +40 -37
- package/dist/scatter.cjs +38 -35
- package/dist/scatter.d.cts +1 -1
- package/dist/scatter.d.ts +1 -1
- package/dist/scatter.js +31 -28
- package/dist/sparkline.cjs +23 -20
- package/dist/sparkline.d.cts +1 -1
- package/dist/sparkline.d.ts +1 -1
- package/dist/sparkline.js +38 -35
- package/dist/sunburst.cjs +40 -37
- package/dist/sunburst.d.cts +1 -1
- package/dist/sunburst.d.ts +1 -1
- package/dist/sunburst.js +40 -37
- package/dist/swarm.cjs +36 -33
- package/dist/swarm.d.cts +1 -1
- package/dist/swarm.d.ts +1 -1
- package/dist/swarm.js +37 -34
- package/dist/timeline.cjs +24 -21
- package/dist/timeline.d.cts +1 -1
- package/dist/timeline.d.ts +1 -1
- package/dist/timeline.js +40 -37
- package/dist/tree.cjs +24 -21
- package/dist/tree.d.cts +1 -1
- package/dist/tree.d.ts +1 -1
- package/dist/tree.js +38 -35
- package/dist/treemap.cjs +27 -24
- package/dist/treemap.d.cts +1 -1
- package/dist/treemap.d.ts +1 -1
- package/dist/treemap.js +40 -37
- package/dist/waffle.cjs +21 -18
- package/dist/waffle.d.cts +1 -1
- package/dist/waffle.d.ts +1 -1
- package/dist/waffle.js +37 -34
- package/dist/waterfall.cjs +33 -30
- package/dist/waterfall.d.cts +1 -1
- package/dist/waterfall.d.ts +1 -1
- package/dist/waterfall.js +34 -31
- package/package.json +3 -3
package/dist/icicle.js
CHANGED
|
@@ -1,61 +1,62 @@
|
|
|
1
|
-
var Yt=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var d=(e,n,t,r)=>{for(var i=r>1?void 0:r?Xt(n,t):n,o=e.length-1,s;o>=0;o--)(s=e[o])&&(i=(r?s(n,t,i):s(i))||i);return r&&i&&Yt(n,t,i),i};import{customElement as yn,property as E}from"lit/decorators.js";var $t=e=>Number(e.toPrecision(12)),Qt,Jt=e=>(Qt??(Qt=new Intl.NumberFormat)).format($t(e)),en=e=>{let n=Math.round(Math.abs(e)),t=e<0?"-":"",r=Math.floor(n/3600),i=Math.floor(n%3600/60),o=s=>String(s).padStart(2,"0");return r>0?`${t}${r}h ${o(i)}m`:i>0?`${t}${i}m ${o(n%60)}s`:`${t}${n}s`};function It(e){if(e===void 0)return Jt;if(typeof e=="function")return e;let{style:n,locale:t,digits:r,unit:i="",timeZone:o}=e,s=u=>i?h=>u(h)+i:u,a=u=>r===void 0?u===void 0?{}:{maximumFractionDigits:u}:{minimumFractionDigits:r,maximumFractionDigits:r},l=u=>{let h=new Intl.NumberFormat(t,u);return s(f=>h.format($t(f)))},c=u=>{let h=new Intl.DateTimeFormat(t,o?{...u,timeZone:o}:u);return f=>h.format(f)};switch(n){case"integer":return l({maximumFractionDigits:0});case"decimal":return l(a(2));case"percent":return l({style:"percent",...a(0)});case"currency":return l({style:"currency",currency:e.currency??"USD",...a()});case"compact":return l({notation:"compact",...a(1)});case"scientific":return l({notation:"scientific",...a(2)});case"date":return c({dateStyle:"medium"});case"time":return c({timeStyle:"short"});case"datetime":return c({dateStyle:"medium",timeStyle:"short"});case"duration":return s(en)}}var x=e=>Number(e.toFixed(2)),Te=e=>typeof e=="number"&&Number.isFinite(e);function Oe(e){let n=1/0,t=-1/0;for(let r of e)Te(r)&&(r<n&&(n=r),r>t&&(t=r));return n===1/0?[0,0]:[n,t]}var te=1e3,ne=60*te,re=60*ne,fe=24*re,Mn=[te,5*te,15*te,30*te,ne,5*ne,15*ne,30*ne,re,3*re,6*re,12*re,fe,2*fe,7*fe,14*fe];var tn=/-?\d*\.?\d+(?:e[-+]?\d+)?/gi,nn=/([MLTHVCSQAZmlthvcsqaz])([^MLTHVCSQAZmlthvcsqaz]*)/g,rn={M:2,L:2,T:2,C:6,S:4,Q:4,A:7,H:-1,V:-2};function on(e,n,t){return e.replace(nn,(r,i,o)=>{let s=rn[i];if(s===void 0)return i+o;let l=(o.match(tn)??[]).map((c,u)=>{let h=Number(c);if(s===-1)return String(h+n);if(s===-2)return String(h+t);let f=u%s;return s===7?f===5?String(h+n):f===6?String(h+t):c:String(f%2===0?h+n:h+t)});return i+l.join(" ")})}var Tt=(e,n,t)=>e.map(r=>{switch(r.kind){case"rect":return{...r,x:r.x+n,y:r.y+t};case"circle":return{...r,cx:r.cx+n,cy:r.cy+t};case"line":return{...r,x1:r.x1+n,x2:r.x2+n,y1:r.y1+t,y2:r.y2+t};case"text":return{...r,x:r.x+n,y:r.y+t};case"path":return{...r,d:on(r.d,n,t)}}});var ze=["primary","success","warning","danger","neutral"].flatMap(e=>[500,700].map(n=>`var(--skdx-color-${e}-${n})`)).sort((e,n)=>Number(e.endsWith("700)"))-Number(n.endsWith("700)"))),y={axis:"var(--skdx-color-border-strong)",grid:"var(--skdx-color-border-subtle)",label:"var(--skdx-color-text-muted)",focus:"var(--skdx-color-focus-ring)",positive:"var(--skdx-color-success-500)",negative:"var(--skdx-color-danger-500)",fontFamily:"var(--skdx-font-family)",fontSize:"var(--skdx-font-size-xs)"};var Ot=(e,n)=>n??ze[e%ze.length];var sn={top:16,right:16,bottom:32,left:48};function zt(e,n,t=sn){return{x:t.left,y:t.top,width:Math.max(0,e-t.left-t.right),height:Math.max(0,n-t.top-t.bottom)}}function ie(e){let n=e.legend;if(n)return n===!0?{}:n.enabled===!1?void 0:n}function Lt(e){let n=e.tooltip;return n===void 0||n===!0?{enabled:!0}:n===!1?{enabled:!1}:{...n,enabled:n.enabled??!0}}var me=20,an=120,At=e=>{let n=ie(e);return n&&(n.position==="left"||n.position==="right")?n.width??an:0},be=(e,n=600,t=300)=>({width:(e.width??n)-At(e),height:(e.height??t)-(ie(e)?.position==="bottom"?me:0)}),ge=e=>{let n=ie(e);return n&&(n.position===void 0||n.position==="top")?me:0},F=6.5,oe=(e,n,t)=>t??(e.palette&&e.palette.length>0?e.palette[n%e.palette.length]:Ot(n)),Ae=(e,n)=>e.hiddenSeries?.includes(n)??!1;function Le(e,n,t=[],r={},i=10,o=8,s=!1){let a=[],l=r.maxItems,c=l!==void 0&&l>=0&&e.length>l?e.slice(0,l):e,u=e.length-c.length,h=r.interactive??!0,f=o,M=i,S=(C,m,g,k)=>{let O=(m?18:4)+C.length*F;f>o&&(s||f+O>n-8)&&(f=o,M+=me),m&&a.push({kind:"rect",part:"legend-swatch",x:f,y:M-5,width:10,height:10,fill:m,opacity:k?.3:void 0,item:g}),a.push({kind:"text",part:"legend-label",x:f+(m?14:0),y:M,text:C,baseline:"middle",fill:k?y.grid:y.label,item:g}),f+=O+12};for(let C of c){let m=t.includes(C.name),g=h?{label:C.name,series:C.name,legend:!0}:void 0;S(r.formatter?.(C.name)??C.name,C.color,g,m)}return u>0&&S(`+${u} more`,void 0,void 0,!1),r.align==="end"?ln(a,n):a}function ln(e,n){let t=new Map;for(let i of e){let o=i.kind==="rect"?i.y+5:i.y;t.set(o,[...t.get(o)??[],i])}let r=[];for(let i of t.values()){let o=Math.max(...i.map(a=>a.kind==="rect"?a.x+a.width:a.x+a.text.length*F)),s=n-8-o;for(let a of i)r.push({...a,x:a.x+s})}return r}var cn=(e,n,t={})=>new Set(Le(e,n,[],t).flatMap(r=>r.kind==="text"?[r.y]:[])).size;function xe(e,n,t,r=[]){let i=ie(e),o=i&&e.direction==="rtl"&&i.align===void 0?{...i,align:"end"}:i,s=Lt(e),a=o?.position==="bottom",l=At(e),c=e.hiddenSeries??[],u=o?l?Le(r,1/0,c,o,10,(o.position==="right"?n:0)+8,!0):Le(r,n,c,o,a?t+10:10):[],h=a?cn(r,n,o):0;return{width:n+l,height:a?t+Math.max(1,h)*me:t,legendOffset:o?.position==="left"?l:void 0,tooltip:s.enabled,tooltipFormatter:s.formatter,axisTooltipFormatter:s.axisFormatter,tooltipPortal:s.portal,tooltipPlacement:s.placement,tooltipAnchored:s.followPointer===!1?!0:void 0,description:e.description,decorative:e.decorative,animate:e.animate===!0?300:e.animate||void 0,responsive:!!e.responsive,shapes:u}}function Ne(e){let n=e.legendOffset;if(!n)return e;let t=[...Tt(e.shapes.filter(l=>!l.part.startsWith("legend-")),n,0),...e.shapes.filter(l=>l.part.startsWith("legend-"))],r=l=>({...l,x:l.x+n}),i=e.hit?{...e.hit,plot:r(e.hit.plot),xs:e.hit.xs.map(l=>l+n),brush:e.hit.brush?{box:r(e.hit.brush.box),window:r(e.hit.brush.window)}:void 0}:void 0,o=e.edit,s=o?{...o,scale:l=>o.scale(l)+n,invert:l=>o.invert(l-n),bars:o.bars.map(l=>({...l,x0:l.x0+n,x1:l.x1+n}))}:void 0,a=e.map?{...e.map,plot:r(e.map.plot)}:void 0;return{...e,shapes:t,hit:i,edit:s,map:a,legendOffset:void 0}}function ye(e,n,t,r,i,o="auto"){let s=Array.isArray(t)?t:[t],a=Math.max(...s.map(f=>f.length))*F+12,l=6+s.length*16,c=o==="top"?{x:e-a/2,y:n-l-8}:o==="bottom"?{x:e-a/2,y:n+8}:o==="left"?{x:e-a-8,y:n-l/2}:o==="right"?{x:e+8,y:n-l/2}:{x:e+12,y:n-l-6},u=Math.max(0,Math.min(r-a,c.x)),h=Math.max(0,Math.min(i-l,c.y));return[{kind:"rect",part:"tooltip",x:x(u),y:x(h),width:x(a),height:l,fill:"var(--skdx-color-surface-raised)",stroke:y.axis,rx:3},...s.map((f,M)=>({kind:"text",part:"tooltip-label",x:x(u+6),y:x(h+11+M*16),text:f,baseline:"middle",fill:"var(--skdx-color-text-default)",weight:s.length>1&&M===0?"bold":void 0}))]}function Be(e,n,t,r){let i=e.error!==void 0?"error":e.loading?"loading":n?"empty":null;if(!i)return null;let{width:o,height:s}=be(e,t,r),a=i==="error"?e.error:i==="loading"?"Loading\u2026":e.emptyMessage??"No data available",l=[];return i==="loading"&&l.push({kind:"rect",part:"skeleton",x:0,y:0,width:o,height:s,fill:"var(--skdx-color-surface-sunken)",rx:4}),l.push({kind:"text",part:`state-${i}`,x:x(o/2),y:x(s/2),text:a,anchor:"middle",baseline:"middle",fill:i==="error"?"var(--skdx-color-text-danger)":y.label}),{...xe(e,o,s),shapes:l,tooltip:!1}}var se=(e,n,t,r={})=>({kind:"text",part:"label",x:e,y:n,text:t,fill:y.label,...r});var ae=e=>Math.max(0,Math.min(1,e));function Nt(e){let n=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(n){let r=n[1],i=r.length===3?r.split("").map(o=>o+o).join(""):r;return[0,2,4].map(o=>parseInt(i.slice(o,o+2),16))}let t=/^rgba?\(\s*(\d+)[\s,]+(\d+)[\s,]+(\d+)/i.exec(e.trim());return t?[Number(t[1]),Number(t[2]),Number(t[3])]:void 0}function Bt(e,n){if(e.length===0)return y.axis;if(e.length===1)return e[0];let t=ae(n)*(e.length-1),r=Math.min(e.length-2,Math.floor(t)),i=t-r,o=Nt(e[r]),s=Nt(e[r+1]);if(!o||!s)return e[Math.round(t)];let a=l=>Math.round(o[l]+(s[l]-o[l])*i);return`rgb(${a(0)}, ${a(1)}, ${a(2)})`}var Pt=(e,n)=>n!==void 0&&n>=2?Math.min(n-1,Math.floor(ae(e)*n))/(n-1):ae(e);function Rt(e,n,t,r=y.negative,i=String){let[o,s]=Oe(n),a=e??{type:"sequential"},l=m=>x(.15+.85*m);if(a.type==="threshold"){let{thresholds:m,colors:g,labels:k}=a,O=A=>{if(typeof A!="number"||!Number.isFinite(A))return;let I=0;for(;I<m.length&&A>=m[I];)I++;return{fill:g[Math.min(I,g.length-1)]??t,opacity:1}},G=g.map((A,I)=>({fill:A,opacity:1,label:k?.[I]??(I===0?`< ${i(m[0]??0)}`:I===m.length?`\u2265 ${i(m[I-1])}`:`${i(m[I-1])} \u2013 ${i(m[I])}`)}));return{color:O,domain:[o,s],swatches:G,kind:"threshold"}}if(a.type==="ordinal"){let m=a.colors?.length?a.colors:[t];return{color:k=>typeof k=="number"&&Number.isFinite(k)?{fill:m[Math.abs(Math.round(k))%m.length],opacity:1}:void 0,domain:[o,s],swatches:m.map((k,O)=>({fill:k,opacity:1,label:String(O)})),kind:"ordinal"}}if(a.type==="diverging"){let[m,g,k]=a.domain??[-Math.max(Math.abs(o),Math.abs(s)),0,Math.max(Math.abs(o),Math.abs(s))],O=a.colors,G=T=>T<g?.5*(T-m)/Math.max(1e-12,g-m):.5+.5*(T-g)/Math.max(1e-12,k-g),A=T=>{let j=Pt(a.reversed?1-ae(T):T,a.steps);if(O&&O.length>=2)return{fill:Bt(O,j),opacity:1};let D=j<.5?r:t,K=Math.abs(j-.5)*2;return{fill:D,opacity:l(K)}},I=T=>typeof T=="number"&&Number.isFinite(T)?A(G(T)):void 0,Z=a.steps??5,z=Array.from({length:Z},(T,j)=>{let D=Z===1?.5:j/(Z-1),K=D<.5?m+(g-m)*(D*2):g+(k-g)*((D-.5)*2);return{...A(D),label:i(K)}});return{color:I,domain:[m,k],swatches:z,kind:"diverging"}}let[c,u]=a.domain??[o,s],h=a.colors,f=m=>{let g=Pt(a.reversed?1-ae(m):m,a.steps);return h&&h.length>=2?{fill:Bt(h,g),opacity:1}:{fill:h?.[0]??t,opacity:l(g)}},M=m=>typeof m!="number"||!Number.isFinite(m)?void 0:f(u===c?1:(m-c)/(u-c)),S=a.steps??5,C=Array.from({length:S},(m,g)=>{let k=S===1?1:g/(S-1);return{...f(k),label:i(c+(u-c)*k)}});return{color:M,domain:[c,u],swatches:C,kind:"sequential"}}function ve(e){return e==null?[]:(Array.isArray(e)?e:[e]).map(t=>typeof t=="object"?t:{id:t})}var Pe=e=>e.id??e.name??e.series,Dt=e=>e.seriesId??e.series;function V(e,n){let t=!1;return n.id!==void 0&&(t=!0,Pe(e)!==n.id&&e.id!==n.id&&e.name!==n.id)||n.series!==void 0&&(t=!0,Dt(e)!==n.series&&e.series!==n.series)||n.index!==void 0&&(t=!0,e.index!==n.index)||n.category!==void 0&&(t=!0,e.category!==n.category)?!1:t}function W(e){let n={},t=Pe(e);t!==void 0&&(n.id=t);let r=Dt(e);return r!==void 0&&e.series!==void 0&&(n.series=r),e.index!==void 0&&(n.index=e.index),n}var Re=(e,n)=>e.id===n.id&&e.series===n.series&&e.index===n.index&&e.category===n.category;function De(e,n,t){let r=ve(e),i=W(n),o=r.some(s=>V(n,s));return t==="single"?o?[]:[i]:o?r.filter(s=>!V(n,s)):[...r,i]}var dn=.2;function un(e){let n=y.focus;switch(e.kind){case"rect":return{kind:"rect",part:"selected",x:e.x-1.5,y:e.y-1.5,width:e.width+3,height:e.height+3,fill:"none",stroke:n,rx:e.rx};case"circle":return{kind:"circle",part:"selected",cx:e.cx,cy:e.cy,r:e.r+2.5,fill:"none",stroke:n};case"path":return{kind:"path",part:"selected",d:e.d,fill:"none",stroke:n,strokeWidth:2.5};case"line":return{...e,part:"selected",stroke:n,strokeWidth:(e.strokeWidth??1)+3,title:void 0,item:void 0};case"text":return}}var hn=(e,n)=>e.kind==="text"?{...e,fill:y.grid}:{...e,opacity:(e.opacity??1)*n};function Fe(e,n){let t=ve(n.selected),r=n.highlighted===void 0||n.highlighted===null?[]:ve(n.highlighted),i=r[0];if(t.length===0&&!i)return e;let o={highlighted:n.highlightScope?.highlighted??"item",faded:n.highlightScope?.faded??"global"},s=[],a=u=>!i||r.some(h=>V(u,h))?!0:o.highlighted==="series"?r.some(h=>h.series!==void 0&&V(u,{series:h.series})):!1,l=u=>{if(!i||o.faded==="none"||a(u))return!1;if(o.faded==="series"){let h=i.series;return h!==void 0&&V(u,{series:h})}return!0},c=e.shapes.map(u=>{let h=u.item;if(!h||h.legend)return u;if(t.some(f=>V(h,f))){let f=un(u);f&&s.push(f)}return l(h)?hn(u,dn):u});return s.length?{...e,shapes:[...c,...s]}:{...e,shapes:c}}function J(e,n,t,r,i){let o=e.getBoundingClientRect();return{x:o.width?(n-o.left)*r/o.width:n,y:o.height?(t-o.top)*i/o.height:t}}var Ge=(e,n,t)=>n>=e.x&&n<=e.x+e.width&&t>=e.y&&t<=e.y+e.height;function Ft(e,n){let t=0,r=1/0;return e.xs.forEach((i,o)=>{let s=Math.abs(i-n);s<r&&(r=s,t=o)}),t}function le(e,n){let t=e.hit;if(!t||t.xs.length===0)return;let r=Ft(t,n),i=t.rows[r]??[];return{index:r,rows:e.axisTooltipFormatter?.(i,r)??i}}function je(e,n){let t=e.hit;if(!t||t.xs.length===0)return;let r=t.xs[Ft(t,n)];return{kind:"line",part:"crosshair",x1:r,x2:r,y1:t.plot.y,y2:t.plot.y+t.plot.height,stroke:y.axis,dash:"3 3"}}function He(e,n,t){let r=e.hit;if(!r||!r.crosshair||r.xs.length===0||!Ge(r.plot,n,t))return[];let i=je(e,n),{rows:o}=le(e,n),s=e.tooltipAnchored?r.plot.y+8:t;return[i,...ye(i.x1,s,o,e.width,e.height,e.tooltipPlacement)]}function Ve(e,n){let t=e.hit;if(!t||t.xs.length===0)return[];let r=t.rows.findIndex(o=>o[0]===n);if(r<0)return[];let i=t.xs[r];return He(e,i,t.plot.y+8)}function _e(e,n,t,r,i){if(!e.tooltip)return{lines:[],shapes:[]};if(e.hit?.crosshair){let{x:l,y:c}=J(t,r,i,e.width,e.height);if(Ge(e.hit.plot,l,c)){let u=le(e,l),h=je(e,l);if(u&&h)return{lines:u.rows,shapes:[h]}}}let o=n?.closest?.("[data-skdx-part]"),s=e.tooltipFormatter?U(e,n)?.item:void 0,a=s&&e.tooltipFormatter?.(s)||o&&Array.from(o.children).find(l=>l.tagName.toLowerCase()==="title")?.textContent;return a?{lines:Array.isArray(a)?a:[a],shapes:[]}:{lines:[],shapes:[]}}function Gt(e,n,t,r,i,o,s){let a=e?.closest?.("[data-skdx-part]"),l=s&&s.tooltipFormatter?U(s,e)?.item:void 0,c=l&&s?.tooltipFormatter?.(l)||a&&Array.from(a.children).find(S=>S.tagName.toLowerCase()==="title")?.textContent;if(!c)return[];let u=s?.tooltipAnchored?U(s,e):void 0,h=u?s?.shapes[u.index]:void 0,{x:f,y:M}=h?ce(h):J(n,t,r,i,o);return ye(f,M,c,i,o,s?.tooltipPlacement)}function Ee(e,n,t,r,i){if(!e.tooltip)return[];if(e.hit?.crosshair){let{x:o,y:s}=J(t,r,i,e.width,e.height),a=He(e,o,s);if(a.length>0)return a}return Gt(n,t,r,i,e.width,e.height,e)}function Ze(e,n){let t=U(e,n);return t&&!t.item.legend?W(t.item):null}var pn=(e,n)=>{let{x:t,y:r}=ce(e),i=e.kind==="circle"?e.cy:e.kind==="rect"?e.y+e.height/2:r;return t>=n.x&&t<=n.x+n.width&&i>=n.y&&i<=n.y+n.height};function We(e,n){let t=new Set,r=[];for(let i of e.shapes){if(!i.item||i.item.legend||i.part==="anchor"||!pn(i,n))continue;let o=W(i.item),s=JSON.stringify(o);t.has(s)||(t.add(s),r.push(o))}return r}var Ue=e=>({kind:"rect",part:"selection-box",x:x(e.x),y:x(e.y),width:x(e.width),height:x(e.height),fill:y.focus,opacity:.12,stroke:y.focus}),Me=(e,n,t,r)=>({x:Math.min(e,t),y:Math.min(n,r),width:Math.abs(t-e),height:Math.abs(r-n)});function jt(e,n,t){let r=!1;for(let i=0,o=e.length-1;i<e.length;o=i++){let s=e[i],a=e[o];s.y>t!=a.y>t&&n<(a.x-s.x)*(t-s.y)/(a.y-s.y)+s.x&&(r=!r)}return r}function qe(e,n){if(n.length<3)return[];let t=new Set,r=[];for(let i of e.shapes){if(!i.item||i.item.legend||i.part==="anchor")continue;let{x:o,y:s}=ce(i),a=i.kind==="circle"?i.cy:i.kind==="rect"?i.y+i.height/2:s;if(!jt(n,o,a))continue;let l=W(i.item),c=JSON.stringify(l);t.has(c)||(t.add(c),r.push(l))}return r}var Ke=e=>({kind:"path",part:"selection-lasso",d:e.length?`M${e.map(n=>`${x(n.x)} ${x(n.y)}`).join("L")}`:"",fill:y.focus,fillOpacity:.12,stroke:y.focus,dash:"4 3"}),we=6;function Ye(e,n,t){let r=e.edit;if(r){for(let i of r.bars)if(!(t<i.y||t>i.y+i.height||n<i.x0-we||n>i.x1+we))return Math.abs(n-i.x0)<=we?{bar:i,mode:"start"}:Math.abs(n-i.x1)<=we?{bar:i,mode:"end"}:{bar:i,mode:"move"}}}function Xe(e,n,t){let r=e.edit;return Ht(r,n,r.invert(n.bar.x0+t)-r.invert(n.bar.x0))}function Qe(e,n,t){let r=e.edit,i=t.key==="ArrowRight"?1:t.key==="ArrowLeft"?-1:0;if(!r||n===null||!i||!(t.shiftKey||t.altKey))return;let o=r.bars.find(l=>l.index===n);if(!o)return;let s=t.altKey?t.shiftKey?"start":"end":"move",a=r.snap??r.invert(o.x0+10)-r.invert(o.x0);return Ht(r,{bar:o,mode:s},i*a)}function Ht(e,{bar:n,mode:t},r){let i=a=>e.snap?Math.round(a/e.snap)*e.snap:a,o=n.start,s=n.end;return t==="move"?(o=i(n.start+r),s=o+(n.end-n.start)):t==="start"?o=Math.min(i(n.start+r),n.end):s=Math.max(i(n.end+r),n.start),{id:n.id,name:n.name,start:o,end:s}}function Je(e,n,t){let r=e.edit,i=r.scale(t.start),o=r.scale(t.end);return{kind:"rect",part:"edit-ghost",x:x(Math.min(i,o)),y:x(n.bar.y),width:x(Math.max(1,Math.abs(o-i))),height:x(n.bar.height),fill:y.focus,opacity:.25,stroke:y.focus,rx:2}}var fn=64,mn=e=>Math.max(1,Math.min(fn,e));function et(e,n,t,r){let i=n>0?.8:1.25,o=mn(e.view.zoom*i);if(o===e.view.zoom)return e.view;let{plot:s,scale:a}=e,[l,c]=e.view.center,u=(t-(s.x+s.width/2))/a,h=(r-(s.y+s.height/2))/a,f=e.view.zoom/o;return{center:[l+u*(1-f),e.fromY(e.toY(c)-h*(1-f))],zoom:o}}function tt(e,n,t,r){let{scale:i}=e;return{center:[n.center[0]-t/i,e.fromY(e.toY(n.center[1])+r/i)],zoom:n.zoom}}function U(e,n){let t=n?.closest?.("[data-skdx-i]"),r=Number(t?.getAttribute("data-skdx-i")),i=Number.isInteger(r)?e.shapes[r]?.item:void 0;return i?{index:r,item:i}:void 0}var ke=e=>e.shapes.flatMap((n,t)=>n.item&&!n.item.legend?[t]:[]);function ce(e){switch(e.kind){case"rect":return{x:e.x+e.width/2,y:e.y};case"circle":return{x:e.cx,y:e.cy-e.r};case"line":return{x:(e.x1+e.x2)/2,y:Math.min(e.y1,e.y2)};case"text":return{x:e.x,y:e.y};case"path":{let n=/M\s*(-?[\d.]+)[ ,](-?[\d.]+)/.exec(e.d);return n?{x:Number(n[1]),y:Number(n[2])}:{x:0,y:0}}}}function nt(e,n){let t=n===null?void 0:e.shapes[n];if(!t)return[];let r=y.focus,i;switch(t.kind){case"rect":i={kind:"rect",part:"focus",x:t.x-2,y:t.y-2,width:t.width+4,height:t.height+4,fill:"none",stroke:r,rx:2};break;case"circle":i={kind:"circle",part:"focus",cx:t.cx,cy:t.cy,r:t.r+3,fill:"none",stroke:r};break;case"line":i={kind:"line",part:"focus",x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,stroke:r,strokeWidth:4};break;case"text":i={kind:"rect",part:"focus",x:t.x-2,y:t.y-8,width:t.text.length*F+4,height:16,fill:"none",stroke:r,rx:2};break;case"path":i={kind:"path",part:"focus",d:t.d,stroke:r,strokeWidth:2,fill:"none"};break}let{x:o,y:s}=ce(t),a=t.item&&e.tooltipFormatter?.(t.item)||(t.item?.label??t.title??"");return[i,...a?ye(x(o),x(s),a,e.width,e.height):[]]}function rt(e,n,t){let r=ke(e);if(r.length===0)return;let i=n===null?-1:r.indexOf(n);switch(t){case"ArrowRight":case"ArrowDown":return r[Math.min(r.length-1,i+1)];case"ArrowLeft":case"ArrowUp":return r[Math.max(0,i<=0?0:i-1)];case"Home":return r[0];case"End":return r[r.length-1];case"Escape":return null;default:return}}var X=2,Q=(e,n,t)=>{let r=Math.max(X,Math.min(t,Math.round(n))),i=Math.max(0,Math.min(t-r,Math.round(e)));return{start:i,end:i+r}},Vt=(e,n)=>!e||e.start<=0&&e.end>=n;function it(e,n,t){if(e.count<=X||!e.plot.width)return;let{start:r,end:i}=e.zoom,o=i-r,s=n>0?1.25:.8,a=Math.max(X,Math.min(e.count,Math.round(o*s)));if(a===o)return n>0&&!Vt(e.zoom,e.count)?Q(r,a,e.count):void 0;let l=Math.max(0,Math.min(1,(t-e.plot.x)/e.plot.width)),c=r+l*o;return Q(c-l*a,a,e.count)}function ot(e,n,t,r){let i=n.end-n.start,o=Math.max(X,Math.min(e.count,Math.round(i/Math.max(.05,t)))),s=Math.max(0,Math.min(1,(r-e.plot.x)/Math.max(1,e.plot.width)));return Q(n.start+s*i-s*o,o,e.count)}function st(e,n,t){let r=n.end-n.start,i=e.plot.width/Math.max(1,r);return Q(n.start-t/i,r,e.count)}function at(e,n,t){let r=e.brush;if(!r||!Ge(r.box,n,t))return;let i=r.window;if(Math.abs(n-i.x)<=6)return{grab:"left",zoom:e.zoom};if(Math.abs(n-(i.x+i.width))<=6)return{grab:"right",zoom:e.zoom};if(n>i.x&&n<i.x+i.width)return{grab:"move",zoom:e.zoom};let o=e.zoom.end-e.zoom.start,s=(n-r.box.x)/Math.max(1,r.box.width)*e.count;return{grab:"move",zoom:Q(s-o/2,o,e.count)}}function lt(e,n,t,r){let i=e.brush;if(!i)return t;let o=r/Math.max(1,i.box.width)*e.count;if(n==="move")return Q(t.start+o,t.end-t.start,e.count);if(n==="left")return{start:Math.max(0,Math.min(t.end-X,Math.round(t.start+o))),end:t.end};let s=Math.min(e.count,Math.max(t.start+X,Math.round(t.end+o)));return{start:t.start,end:s}}function dt(e,n){switch(n.type){case"svg":return Promise.resolve(ct(e,n.label,n.resolve));case"csv":return Promise.resolve(Wt(n.rows));case"png":{if(typeof document>"u"||typeof Image>"u")return Promise.reject(new Error("PNG export needs a browser"));let t=ct(e,n.label,n.resolve);return Zt(t,e.width,e.height,n.scale,n.background)}}}var _=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/"/g,"""),de=e=>e.filter(([,n])=>n!==void 0&&n!=="").map(([n,t])=>` ${n}="${_(String(t))}"`).join("");function _t(e){let n=e.title?`<title>${_(e.title)}</title>`:"",t=["data-skdx-part",e.part];switch(e.kind){case"path":return`<path${de([t,["d",e.d],["fill",e.fill??"none"],["stroke",e.stroke],["stroke-width",e.strokeWidth],["stroke-linecap",e.strokeLinecap],["stroke-linejoin",e.strokeLinejoin],["stroke-dasharray",e.dash],["opacity",e.opacity],["fill-opacity",e.fillOpacity]])}>${n}</path>`;case"rect":return`<rect${de([t,["x",e.x],["y",e.y],["width",e.width],["height",e.height],["rx",e.rx],["fill",e.fill],["stroke",e.stroke],["fill-opacity",e.opacity]])}>${n}</rect>`;case"line":return`<line${de([t,["x1",e.x1],["y1",e.y1],["x2",e.x2],["y2",e.y2],["stroke",e.stroke],["stroke-width",e.strokeWidth],["stroke-dasharray",e.dash],["opacity",e.opacity]])}>${n}</line>`;case"circle":return`<circle${de([t,["cx",e.cx],["cy",e.cy],["r",e.r],["fill",e.fill],["stroke",e.stroke]])}>${n}</circle>`;case"text":return`<text${de([t,["x",e.x],["y",e.y],["text-anchor",e.anchor],["dominant-baseline",e.baseline],["fill",e.fill],["font-weight",e.weight],["transform",e.rotate?`rotate(${e.rotate} ${e.x} ${e.y})`:void 0]])}>${_(e.text)}</text>`}}function Et(e){let n=e.defs??[];return n.length===0?"":`<defs>${n.map(t=>`<linearGradient id="${_(t.id)}" x1="0" y1="0" x2="${t.vertical===!1?1:0}" y2="${t.vertical===!1?0:1}">${t.stops.map(r=>`<stop offset="${r.offset}" stop-color="${_(r.color)}"${r.opacity===void 0?"":` stop-opacity="${r.opacity}"`}/>`).join("")}</linearGradient>`).join("")}</defs>`}function ct(e,n,t){let r=Et(e)+e.shapes.map(_t).join("");return t&&(r=r.replace(/var\((--[\w-]+)\)/g,(i,o)=>t(o).trim()||i)),`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${e.width} ${e.height}" width="${e.width}" height="${e.height}" role="img" aria-label="${_(n)}" font-family="${_(y.fontFamily)}" font-size="${_(y.fontSize)}"><title>${_(n)}</title>${r}</svg>`}function Zt(e,n,t,r=2,i){return new Promise((o,s)=>{let a=URL.createObjectURL(new Blob([e],{type:"image/svg+xml;charset=utf-8"})),l=new Image;l.onload=()=>{URL.revokeObjectURL(a);let c=document.createElement("canvas");c.width=Math.round(n*r),c.height=Math.round(t*r);let u=c.getContext("2d");if(!u)return s(new Error("canvas 2d context unavailable"));i&&(u.fillStyle=i,u.fillRect(0,0,c.width,c.height)),u.drawImage(l,0,0,c.width,c.height),c.toBlob(h=>h?o(h):s(new Error("toBlob failed")),"image/png")},l.onerror=()=>{URL.revokeObjectURL(a),s(new Error("svg could not be decoded"))},l.src=a})}function Wt(e){let n=t=>{let r=t==null?"":String(t);return/[",\n\r]/.test(r)?`"${r.replace(/"/g,'""')}"`:r};return e.map(t=>t.map(n).join(",")).join(`\r
|
|
2
|
-
`)}var N=e=>Te(e.value)?e.value:(e.children??[]).reduce((n,t)=>n+N(t),0),ut=e=>e.length===0?0:1+Math.max(...e.map(n=>ut(n.children??[]))),ee=e=>e.id??e.name;function Ut(e,n){for(let t of e){if(ee(t)===n||t.name===n)return[t];let r=Ut(t.children??[],n);if(r)return[t,...r]}}var ht=(e,n)=>n==="asc"||n==="desc"?[...e].sort((t,r)=>n==="asc"?N(t)-N(r):N(r)-N(t)):[...e];function Se(e,n,t=1){return n===void 0?[...e]:e.map(r=>t>=n?{...r,value:N(r),children:void 0}:{...r,children:r.children?Se(r.children,n,t+1):void 0})}function pt(e,n){if(n===void 0)return{nodes:[...e],path:[]};let t=Ut(e,n);if(!t)return{nodes:[...e],path:[]};let r=t[t.length-1];return{nodes:r.children?.length?r.children:[r],path:t}}function ft(e,n){if(!n)return;let t=typeof n=="object"?n.maxRows??500:500,r=e.hit;if(r&&r.rows.length>0){let a=r.rows[0];if(r.rows.length>t)return;let l=["",...a.slice(1).map(u=>u.replace(/:\s[^:]*$/,""))],c=r.rows.map(u=>[u[0],...u.slice(1).map(h=>h.slice(h.lastIndexOf(": ")+2))]);return[l,...c]}let i=e.shapes.flatMap(a=>a.item&&!a.item.legend&&!(a.part==="anchor"&&!a.title)?[a.item]:[]);if(i.length===0||i.length>t)return;let o=["series","name","category","value"].filter(a=>i.some(l=>l[a]!==void 0)),s=(a,l)=>a[l]===void 0?"":String(a[l]);return[o.map(a=>a[0]?.toUpperCase()+a.slice(1)),...i.map(a=>o.map(l=>s(a,l)))]}var mt=new Map;function Ce(e){let n=mt.get(e);if(n)return n.group;let t=new Set,r={},i={current:r,subscribe(o){return t.add(o),()=>{t.delete(o),t.size===0&&mt.delete(e)}},publish(o,s){Object.assign(r,o);for(let a of t)a(o,s)}};return mt.set(e,{group:i,listeners:t}),i}var qt='[data-skdx-part]:not([data-skdx-part^="tooltip"]):not([data-skdx-part="focus"]):not([data-skdx-part="crosshair"])',bt=`@keyframes skdx-in{from{opacity:0}to{opacity:1}}${qt}{animation:skdx-in var(--skdx-chart-duration,0ms) ease-out;transition:${["x","y","width","height","cx","cy","r","opacity","fill-opacity","d"].map(e=>`${e} var(--skdx-chart-duration,0ms) ease-out`).join(",")}}@media (prefers-reduced-motion:reduce){${qt}{animation:none;transition:none}}`;function gt(e){let n=e.animate;return n&&e.shapes.length<=1500?`${n}ms`:void 0}function Kt(e,n,t){let r=[],i=n;return e.forEach((o,s)=>{s>0&&(r.push(se(x(i),t,"\u203A",{part:"breadcrumb-separator",baseline:"middle"})),i+=F+6),r.push(se(x(i),t,o.name,{part:"breadcrumb",baseline:"middle",fill:"var(--skdx-color-text-default)",title:o.name,item:{label:o.name,id:ee(o),name:o.name}})),i+=o.name.length*F+6}),r}function xt(e){let n=[],{nodes:t,path:r}=pt(e.data,e.rootId),i=Se(t,e.maxDepth).filter(z=>!Ae(e,z.name)),o=Be(e,!i.some(z=>N(z)>0));if(o)return{...o,issues:n};let s=It(e.format),{width:a,height:l}=be(e),c=e.orientation==="horizontal",u=e.breadcrumbs&&r.length>0,h=ge(e)+(u?20:0),f=zt(a,l,{top:h,right:0,bottom:0,left:0}),M=e.padding??1,S=e.labels??!0,C=Math.max(1,ut(i)),m=(c?f.width:f.height)/C,g=[],k=z=>{z.children?.length?z.children.forEach(k):g.push(N(z))};i.forEach(k);let O=Rt(e.colorScale,g,oe(e,0),void 0,s),G=[],A=[],I=(z,T,j,D,K)=>{let vt=ht(z,e.sort).filter(L=>{let Y=N(L)>0;return Y||n.push({code:"invalid-value",severity:"warning",message:`"${L.name}" has no positive value and was dropped.`,itemId:ee(L)}),Y}),wt=vt.reduce((L,Y)=>L+N(Y),0),ue=j;vt.forEach((L,Y)=>{let he=N(L),pe=wt>0?he/wt*D:0,Ie=(L.children?.length??0)>0,Mt=L.color??K??oe(e,Y),kt=!Ie&&e.colorScale?O.color(he):void 0,St=T*m,H=c?{x:f.x+St+M/2,y:ue+M/2,width:m-M,height:pe-M}:{x:ue+M/2,y:f.y+St+M/2,width:pe-M,height:m-M},Ct=`${L.name}: ${s(he)}`;G.push({kind:"rect",part:"cell",x:x(H.x),y:x(H.y),width:x(Math.max(0,H.width)),height:x(Math.max(0,H.height)),fill:kt?.fill??Mt,opacity:kt?.opacity??(Ie?.7:void 0),title:Ct,item:{label:Ct,id:ee(L),name:L.name,value:he}}),S&&H.width>L.name.length*F+6&&H.height>12&&A.push(se(x(H.x+4),x(H.y+H.height/2),L.name,{part:"cell-label",baseline:"middle",fill:"var(--skdx-color-text-on-accent)"})),Ie&&I(L.children,T+1,ue,pe,Mt),ue+=pe})};I(i,0,c?f.y:f.x,c?f.height:f.width,void 0),u&&G.push(...Kt(r,8,ge(e)+10));let Z=xe(e,a,l,i.map((z,T)=>({name:z.name,color:oe(e,T,z.color)})));return{...Z,shapes:[...G,...A,...Z.shapes],issues:n}}import{css as bn,html as q,LitElement as gn,nothing as $,svg as P}from"lit";import{property as p,state as R}from"lit/decorators.js";import{ifDefined as w}from"lit/directives/if-defined.js";var yt={fromAttribute:()=>!1},b=class extends gn{constructor(){super(...arguments);this.legend=!1;this.tooltip=!0;this.selectionMode="none";this.loading=!1;this.decorative=!1;this.accessibleTable=!1;this.zoomable=!1;this.editable=!1;this.crossFilter=!1;this.animated=!1;this.responsive=!1;this.tip=[];this.overlay=[];this.portal=null;this.highlightState=null;this.crossState=null;this.lastCross=null;this.pointers=new Map;this.hover=null;this.token={};this.focused=null;this.hiddenState=[];this.drag=null;this.onPointerMove=t=>{let r=this.layout;if(!r)return;this.pointers.has(t.pointerId)&&this.pointers.set(t.pointerId,this.viewBox(t,r).x);let i=this.drag;if(i?.grab==="select"){let{x:o,y:s}=this.viewBox(t,r);this.overlay=[Ue(Me(i.x,i.y,o,s))];return}if(i?.grab==="lasso"){let{x:o,y:s}=this.viewBox(t,r);i.points=[...i.points??[],{x:o,y:s}],this.overlay=[Ke(i.points)];return}if(i?.grab==="edit"){if(!i.gantt)return;let{x:o}=this.viewBox(t,r);i.change=Xe(r,i.gantt,o-i.x),this.overlay=[Je(r,i.gantt,i.change)];return}if(i?.grab==="map"){if(!r.map||!i.view)return;let{x:o,y:s}=this.viewBox(t,r);this.setView(tt(r.map,i.view,o-i.x,s-i.y));return}if(i&&r.hit){if(i.grab==="pinch"){let[s,a]=[...this.pointers.values()];if(s===void 0||a===void 0||!i.distance)return;this.setZoom(ot(r.hit,i.zoom,Math.abs(s-a)/i.distance,(s+a)/2));return}let{x:o}=this.viewBox(t,r);this.setZoom(i.grab==="pan"?st(r.hit,i.zoom,o-i.x):lt(r.hit,i.grab,i.zoom,o-i.x));return}if(r.tooltipPortal){let{lines:o,shapes:s}=_e(r,t.target,t.currentTarget,t.clientX,t.clientY);this.tip=s,this.portal=o.length?{x:t.clientX,y:t.clientY,lines:o}:null}else{let o=Ee(r,t.target,t.currentTarget,t.clientX,t.clientY);(o.length>0||this.tip.length>0)&&(this.tip=o)}if(this.highlight(Ze(r,t.target)),this.syncId&&r.hit?.crosshair){let o=le(r,this.viewBox(t,r).x);this.shareCrosshair(o?r.hit.rows[o.index]?.[0]??null:null)}};this.onPointerDown=t=>{let r=this.layout;if(!r||t.button!==0)return;let{x:i,y:o}=this.viewBox(t,r),s=U(r,t.target)?.item.legend,a=this.canEdit(r)?Ye(r,i,o):void 0;if(a){this.drag={x:i,y:o,zoom:{start:0,end:0},grab:"edit",gantt:a},t.currentTarget.setPointerCapture(t.pointerId),this.clearTip();return}if(this.brushing()&&!s){this.drag={x:i,y:o,zoom:{start:0,end:0},grab:this.selectionMode==="lasso"?"lasso":"select",points:[{x:i,y:o}]},t.currentTarget.setPointerCapture(t.pointerId),this.clearTip();return}if(this.canPan(r)&&r.map){let c=r.map.plot;if(i<c.x||i>c.x+c.width||o<c.y||o>c.y+c.height)return;this.drag={x:i,y:o,zoom:{start:0,end:0},grab:"map",view:r.map.view},t.currentTarget.setPointerCapture(t.pointerId),this.clearTip();return}let l=r.hit;if(!(!l||!this.canZoom(r))){if(this.pointers.set(t.pointerId,i),this.pointers.size===2){let[c,u]=[...this.pointers.values()];this.drag={x:(c+u)/2,y:o,zoom:l.zoom,grab:"pinch",distance:Math.abs(c-u)||1}}else{let c=at(l,i,o);if(c)this.drag={x:i,y:o,zoom:c.zoom,grab:c.grab},c.zoom!==l.zoom&&this.setZoom(c.zoom);else if(this.zoomable&&i>=l.plot.x&&i<=l.plot.x+l.plot.width&&o>=l.plot.y&&o<=l.plot.y+l.plot.height)this.drag={x:i,y:o,zoom:l.zoom,grab:"pan"};else{this.pointers.delete(t.pointerId);return}}t.currentTarget.setPointerCapture(t.pointerId),this.clearTip()}};this.onPointerUp=t=>{this.pointers.delete(t.pointerId);let r=t.currentTarget;r.hasPointerCapture(t.pointerId)&&r.releasePointerCapture(t.pointerId);let i=this.drag,o=this.layout;if(o&&(i?.grab==="select"||i?.grab==="lasso"||i?.grab==="edit"||i?.grab==="map")){this.overlay=[];let{x:s,y:a}=this.viewBox(t,o);if(Math.abs(s-i.x)>2||Math.abs(a-i.y)>2){i.grab==="select"?this.setSelected(We(o,Me(i.x,i.y,s,a))):i.grab==="lasso"?this.setSelected(qe(o,i.points??[])):i.grab==="edit"&&i.change&&this.emit("skdx-task-change",i.change),this.drag={...i,distance:-1};return}this.drag=null;return}(this.pointers.size===0||this.drag?.grab==="pinch")&&(this.drag=null)};this.onWheel=t=>{let r=this.layout;if(!r)return;let{x:i,y:o}=this.viewBox(t,r);if(r.map&&this.canPan(r)){let l=r.map.plot;if(i<l.x||i>l.x+l.width||o<l.y||o>l.y+l.height)return;t.preventDefault(),this.setView(et(r.map,t.deltaY,i,o));return}let s=r.hit;if(!s||!this.canZoom(r)||o<s.plot.y||o>s.plot.y+s.plot.height)return;let a=it(s,t.deltaY,i);a&&(t.preventDefault(),this.setZoom(a))};this.onClick=t=>{if(!this.layout)return;if(this.drag?.distance===-1){this.drag=null;return}let r=U(this.layout,t.target);r&&(r.item.range?this.setZoom(r.item.range):r.item.legend&&r.item.series!==void 0?this.toggle(r.item.series):(this.select(r.item),this.emit("skdx-item-click",r.item)))};this.onKeyDown=t=>{let r=this.layout;if(!r)return;if((t.key==="Enter"||t.key===" ")&&this.focused!==null){let a=r.shapes[this.focused]?.item;a&&(t.preventDefault(),this.select(a),this.emit("skdx-item-click",a));return}let i=this.canEdit(r)?Qe(r,this.focused,t):void 0;if(i){t.preventDefault(),this.emit("skdx-task-change",i);return}let o=rt(r,this.focused,t.key);if(o===void 0)return;t.preventDefault(),this.focused=o;let s=o===null?void 0:r.shapes[o]?.item;this.highlight(s?W(s):null)}}connectedCallback(){super.connectedCallback(),!(typeof ResizeObserver>"u")&&(this.observer=new ResizeObserver(([t])=>{let r=Math.floor(t?.contentRect.width??0);r>0&&(this.measured=r)}),this.observer.observe(this))}disconnectedCallback(){this.observer?.disconnect(),this.leave?.(),this.leave=void 0,this.joined=void 0,super.disconnectedCallback()}sized(){let{width:t,height:r,legend:i,tooltip:o,format:s,palette:a,loading:l,error:c,emptyMessage:u,description:h,decorative:f,animated:M,responsive:S,highlighted:C,highlightScope:m,accessibleTable:g}=this;return{...typeof S=="object"&&this.measured!==void 0&&this.measured<(S.breakpoint??480)?S.compact:void 0,width:S&&this.measured?this.measured:t,height:r,animate:M,responsive:S,legend:i,tooltip:o,format:s,palette:a,loading:l,error:c,emptyMessage:u,description:h,decorative:f,highlighted:C===void 0?this.highlightState:C,highlightScope:m,accessibleTable:g,hiddenSeries:this.hiddenSeries??this.hiddenState,zoom:this.zoom??this.zoomState,selected:this.selected??this.selectedState,view:this.view??this.viewState}}emit(t,r){this.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0}))}publish(t){this.syncId&&Ce(this.syncId).publish(t,this.token)}join(){if(this.joined===this.syncId||(this.leave?.(),this.leave=void 0,this.joined=this.syncId,!this.syncId))return;let t=Ce(this.syncId),r=i=>{"highlighted"in i&&(this.highlightState=i.highlighted??null),i.selected&&(this.selectedState=i.selected,this.crossFilter&&(this.highlightState=i.selected.length?i.selected:null)),"zoom"in i&&(this.zoomState=i.zoom),i.hiddenSeries&&(this.hiddenState=i.hiddenSeries),"crosshair"in i&&(this.crossState=i.crosshair??null)};r(t.current),this.leave=t.subscribe((i,o)=>{o!==this.token&&r(i)})}setZoom(t){this.zoomState=t,this.emit("skdx-zoom-change",t),this.publish({zoom:t})}setView(t){this.viewState=t,this.emit("skdx-view-change",t)}setSelected(t){this.selectedState=t,this.emit("skdx-selected-change",t),this.publish({selected:t})}toggle(t){let r=this.hiddenSeries??this.hiddenState,i=r.includes(t)?r.filter(o=>o!==t):[...r,t];this.hiddenState=i,this.emit("skdx-hidden-series-change",i),this.publish({hiddenSeries:i})}highlight(t){let r=this.hover;r===t||r&&t&&Re(r,t)||(this.hover=t,this.emit("skdx-highlighted-change",t),this.syncId&&(this.highlightState=t,this.publish({highlighted:t})))}select(t){let r=this.selectionMode;r!=="none"&&this.setSelected(De(this.selected??this.selectedState,t,r==="single"?"single":"multiple"))}shareCrosshair(t){!this.syncId||this.lastCross===t||(this.lastCross=t,this.publish({crosshair:t}))}clearTip(){this.tip=[],this.portal=null,this.shareCrosshair(null)}canZoom(t){return!!(t.hit&&(this.zoomable||t.hit.brush))}canPan(t){return!!(t.map&&this.zoomable)}canEdit(t){return!!(this.editable&&t.edit)}brushing(){return this.selectionMode==="brush"||this.selectionMode==="lasso"}viewBox(t,r){return J(t.currentTarget,t.clientX,t.clientY,r.width,r.height)}getSvgElement(){return this.renderRoot.querySelector("svg")}getLayout(){return this.layout}resetZoom(){this.setZoom(void 0)}zoomTo(t){this.setZoom(t)}focusItem(t){let r=this.layout;if(!r)return!1;let i=r.shapes.findIndex(o=>o.item&&!o.item.legend&&V(o.item,t));return i<0?!1:(this.getSvgElement()?.focus(),this.focused=i,!0)}export(t){let r=this.layout;return r?dt(r,{...t,label:t.label??this.label??this.localName}):Promise.reject(new Error("not rendered yet"))}root(t,r,i){this.join();let o=Fe(Ne(t),this.sized());if(this.layout=o,o.issues!==this.reported){this.reported=o.issues;for(let g of o.issues??[])this.emit("skdx-data-issue",g)}let s=this.canZoom(o),a=this.canPan(o),l=this.canEdit(o),c=this.brushing(),u=s||a||l||c,h=!o.decorative&&ke(o).length>0,f=o.description?`${r}-desc`:void 0,M=gt(o),S=ft(o,this.accessibleTable),C=typeof this.accessibleTable=="object"&&this.accessibleTable.caption||i,m=this.portal;return q`<svg
|
|
1
|
+
var nn=Object.defineProperty;var rn=Object.getOwnPropertyDescriptor;var u=(e,n,t,r)=>{for(var i=r>1?void 0:r?rn(n,t):n,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(r?a(n,t,i):a(i))||i);return r&&i&&nn(n,t,i),i};import{customElement as Sn,property as E}from"lit/decorators.js";var Tt=e=>Number(e.toPrecision(12)),on,an=e=>(on??(on=new Intl.NumberFormat)).format(Tt(e)),sn=e=>{let n=Math.round(Math.abs(e)),t=e<0?"-":"",r=Math.floor(n/3600),i=Math.floor(n%3600/60),o=a=>String(a).padStart(2,"0");return r>0?`${t}${r}h ${o(i)}m`:i>0?`${t}${i}m ${o(n%60)}s`:`${t}${n}s`};function Ot(e){if(e===void 0)return an;if(typeof e=="function")return e;let{style:n,locale:t,digits:r,unit:i="",timeZone:o}=e,a=d=>i?h=>d(h)+i:d,s=d=>r===void 0?d===void 0?{}:{maximumFractionDigits:d}:{minimumFractionDigits:r,maximumFractionDigits:r},l=d=>{let h=new Intl.NumberFormat(t,d);return a(m=>h.format(Tt(m)))},c=d=>{let h=new Intl.DateTimeFormat(t,o?{...d,timeZone:o}:d);return m=>h.format(m)};switch(n){case"integer":return l({maximumFractionDigits:0});case"decimal":return l(s(2));case"percent":return l({style:"percent",...s(0)});case"currency":return l({style:"currency",currency:e.currency??"USD",...s()});case"compact":return l({notation:"compact",...s(1)});case"scientific":return l({notation:"scientific",...s(2)});case"date":return c({dateStyle:"medium"});case"time":return c({timeStyle:"short"});case"datetime":return c({dateStyle:"medium",timeStyle:"short"});case"duration":return a(sn)}}var y=e=>Number(e.toFixed(2)),Oe=e=>typeof e=="number"&&Number.isFinite(e);function ze(e){let n=1/0,t=-1/0;for(let r of e)Oe(r)&&(r<n&&(n=r),r>t&&(t=r));return n===1/0?[0,0]:[n,t]}var te=1e3,ne=60*te,re=60*ne,me=24*re,In=[te,5*te,15*te,30*te,ne,5*ne,15*ne,30*ne,re,3*re,6*re,12*re,me,2*me,7*me,14*me];var ln=/-?\d*\.?\d+(?:e[-+]?\d+)?/gi,cn=/([MLTHVCSQAZmlthvcsqaz])([^MLTHVCSQAZmlthvcsqaz]*)/g,dn={M:2,L:2,T:2,C:6,S:4,Q:4,A:7,H:-1,V:-2};function un(e,n,t){return e.replace(cn,(r,i,o)=>{let a=dn[i];if(a===void 0)return i+o;let l=(o.match(ln)??[]).map((c,d)=>{let h=Number(c);if(a===-1)return String(h+n);if(a===-2)return String(h+t);let m=d%a;return a===7?m===5?String(h+n):m===6?String(h+t):c:String(m%2===0?h+n:h+t)});return i+l.join(" ")})}var zt=(e,n,t)=>e.map(r=>{switch(r.kind){case"rect":return{...r,x:r.x+n,y:r.y+t};case"circle":return{...r,cx:r.cx+n,cy:r.cy+t};case"line":return{...r,x1:r.x1+n,x2:r.x2+n,y1:r.y1+t,y2:r.y2+t};case"text":return{...r,x:r.x+n,y:r.y+t};case"path":return{...r,d:un(r.d,n,t)}}});var Ae=["primary","success","warning","danger","neutral"].flatMap(e=>[500,700].map(n=>`var(--skdx-color-${e}-${n})`)).sort((e,n)=>Number(e.endsWith("700)"))-Number(n.endsWith("700)"))),M={axis:"var(--skdx-color-border-strong)",grid:"var(--skdx-color-border-subtle)",label:"var(--skdx-color-text-muted)",focus:"var(--skdx-color-focus-ring)",positive:"var(--skdx-color-success-500)",negative:"var(--skdx-color-danger-500)",fontFamily:"var(--skdx-font-family)",fontSize:"var(--skdx-font-size-xs)"};var At=(e,n)=>n??Ae[e%Ae.length];var hn={top:16,right:16,bottom:32,left:48};function Lt(e,n,t=hn){return{x:t.left,y:t.top,width:Math.max(0,e-t.left-t.right),height:Math.max(0,n-t.top-t.bottom)}}function ie(e){let n=e.legend;if(n)return n===!0?{}:n.enabled===!1?void 0:n}function Nt(e){let n=e.tooltip;return n===void 0||n===!0?{enabled:!0}:n===!1?{enabled:!1}:{...n,enabled:n.enabled??!0}}var be=20,pn=120,Rt=e=>{let n=ie(e);return n&&(n.position==="left"||n.position==="right")?n.width??pn:0},oe=(e,n=600,t=300)=>({width:(e.width??n)-Rt(e),height:(e.height??t)-(ie(e)?.position==="bottom"?be:0)}),ge=(e,n,t)=>{let r=ie(e);return!r||!(r.position===void 0||r.position==="top")?0:(n?Math.max(1,Bt(n,t??oe(e).width,r)):1)*be},L=6.5;function Pt(e,n){let t=Array.from(e),r=Math.max(0,Math.floor(n/L));return t.length<=r?e:r===0?"":`${t.slice(0,r-1).join("")}\u2026`}var ae=(e,n,t)=>t??(e.palette&&e.palette.length>0?e.palette[n%e.palette.length]:At(n)),Ne=(e,n)=>e.hiddenSeries?.includes(n)??!1;function Le(e,n,t=[],r={},i=10,o=8,a=!1){let s=[],l=r.maxItems,c=l!==void 0&&l>=0&&e.length>l?e.slice(0,l):e,d=e.length-c.length,h=r.interactive??!0,m=o,S=i,w=(C,p,g,x)=>{let I=(p?18:4)+C.length*L;m>o&&(a||m+I>n-8)&&(m=o,S+=be),p&&s.push({kind:"rect",part:"legend-swatch",x:m,y:S-5,width:10,height:10,fill:p,opacity:x?.3:void 0,item:g}),s.push({kind:"text",part:"legend-label",x:m+(p?14:0),y:S,text:C,baseline:"middle",fill:x?M.grid:M.label,item:g}),m+=I+12};for(let C of c){let p=t.includes(C.name),g=h?{label:C.name,series:C.name,legend:!0}:void 0;w(r.formatter?.(C.name)??C.name,C.color,g,p)}return d>0&&w(`+${d} more`,void 0,void 0,!1),r.align==="end"?fn(s,n):s}function fn(e,n){let t=new Map;for(let i of e){let o=i.kind==="rect"?i.y+5:i.y;t.set(o,[...t.get(o)??[],i])}let r=[];for(let i of t.values()){let o=Math.max(...i.map(s=>s.kind==="rect"?s.x+s.width:s.x+s.text.length*L)),a=n-8-o;for(let s of i)r.push({...s,x:s.x+a})}return r}var Bt=(e,n,t={})=>new Set(Le(e,n,[],t).flatMap(r=>r.kind==="text"?[r.y]:[])).size;function xe(e,n,t,r=[]){let i=ie(e),o=i&&e.direction==="rtl"&&i.align===void 0?{...i,align:"end"}:i,a=Nt(e),s=o?.position==="bottom",l=Rt(e),c=e.hiddenSeries??[],d=o?l?Le(r,1/0,c,o,10,(o.position==="right"?n:0)+8,!0):Le(r,n,c,o,s?t+10:10):[],h=s?Bt(r,n,o):0;return{width:n+l,height:s?t+Math.max(1,h)*be:t,legendOffset:o?.position==="left"?l:void 0,tooltip:a.enabled,tooltipFormatter:a.formatter,axisTooltipFormatter:a.axisFormatter,tooltipPortal:a.portal,tooltipPlacement:a.placement,tooltipAnchored:a.followPointer===!1?!0:void 0,description:e.description,decorative:e.decorative,animate:e.animate===!0?300:e.animate||void 0,responsive:!!e.responsive,shapes:d}}function Re(e){let n=e.legendOffset;if(!n)return e;let t=[...zt(e.shapes.filter(l=>!l.part.startsWith("legend-")),n,0),...e.shapes.filter(l=>l.part.startsWith("legend-"))],r=l=>({...l,x:l.x+n}),i=e.hit?{...e.hit,plot:r(e.hit.plot),xs:e.hit.xs.map(l=>l+n),brush:e.hit.brush?{box:r(e.hit.brush.box),window:r(e.hit.brush.window)}:void 0}:void 0,o=e.edit,a=o?{...o,scale:l=>o.scale(l)+n,invert:l=>o.invert(l-n),bars:o.bars.map(l=>({...l,x0:l.x0+n,x1:l.x1+n}))}:void 0,s=e.map?{...e.map,plot:r(e.map.plot)}:void 0;return{...e,shapes:t,hit:i,edit:a,map:s,legendOffset:void 0}}function ye(e,n,t,r,i,o="auto"){let a=Array.isArray(t)?t:[t],s=Math.max(1,Math.floor((r-12)/L)),l=a.flatMap(p=>{let g=[],x=Array.from(p);for(;x.length>s;){let I=x.slice(0,s+1).lastIndexOf(" ");I<1&&(I=s),g.push(x.slice(0,I).join("")),x=x.slice(I),x[0]===" "&&x.shift()}return g.push(x.join("")),g}),c=Math.max(1,Math.floor((i-6)/16)),d=l.slice(0,c);l.length>c&&(d[c-1]=Pt(`${d[c-1]}\u2026`,r-12));let h=Math.min(r,Math.max(0,...d.map(p=>Array.from(p).length))*L+12),m=Math.min(i,6+d.length*16),S=o==="top"?{x:e-h/2,y:n-m-8}:o==="bottom"?{x:e-h/2,y:n+8}:o==="left"?{x:e-h-8,y:n-m/2}:o==="right"?{x:e+8,y:n-m/2}:{x:e+12,y:n-m-6},w=Math.max(0,Math.min(r-h,S.x)),C=Math.max(0,Math.min(i-m,S.y));return[{kind:"rect",part:"tooltip",title:a.join(`
|
|
2
|
+
`),x:y(w),y:y(C),width:y(h),height:m,fill:"var(--skdx-color-surface-raised)",stroke:M.axis,rx:8},...d.map((p,g)=>({kind:"text",part:"tooltip-label",x:y(w+6),y:y(C+11+g*16),text:p,baseline:"middle",fill:"var(--skdx-color-text-default)",weight:d.length>1&&g===0?"bold":void 0}))]}function Pe(e,n,t,r){let i=e.error!==void 0?"error":e.loading?"loading":n?"empty":null;if(!i)return null;let{width:o,height:a}=oe(e,t,r),s=i==="error"?e.error:i==="loading"?"Loading\u2026":e.emptyMessage??"No data available",l=[];return i==="loading"&&l.push({kind:"rect",part:"skeleton",x:0,y:0,width:o,height:a,fill:"var(--skdx-color-surface-sunken)",rx:8}),l.push({kind:"text",part:`state-${i}`,x:y(o/2),y:y(a/2),text:s,anchor:"middle",baseline:"middle",fill:i==="error"?"var(--skdx-color-text-danger)":M.label}),{...xe(e,o,a),shapes:l,tooltip:!1}}var se=(e,n,t,r={})=>({kind:"text",part:"label",x:e,y:n,text:t,fill:M.label,...r});function Be(e){return e.flatMap(n=>{if(n.kind!=="text"||n.fill!=="var(--skdx-color-text-on-accent)"&&n.part!=="reference-label")return[n];let t=n.text.length*L+8,r=n.x-(n.anchor==="middle"?t/2:n.anchor==="end"?t-4:4),i=n.y-(n.baseline==="hanging"?2:n.baseline==="middle"?9:14);return[{kind:"rect",part:"label-background",x:r,y:i,width:t,height:18,rx:8,fill:"var(--skdx-color-surface-raised)"},{...n,fill:n.part==="reference-label"?n.fill:"var(--skdx-color-text-default)"}]})}var le=e=>Math.max(0,Math.min(1,e));function Dt(e){let n=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(n){let r=n[1],i=r.length===3?r.split("").map(o=>o+o).join(""):r;return[0,2,4].map(o=>parseInt(i.slice(o,o+2),16))}let t=/^rgba?\(\s*(\d+)[\s,]+(\d+)[\s,]+(\d+)/i.exec(e.trim());return t?[Number(t[1]),Number(t[2]),Number(t[3])]:void 0}function Ft(e,n){if(e.length===0)return M.axis;if(e.length===1)return e[0];let t=le(n)*(e.length-1),r=Math.min(e.length-2,Math.floor(t)),i=t-r,o=Dt(e[r]),a=Dt(e[r+1]);if(!o||!a)return e[Math.round(t)];let s=l=>Math.round(o[l]+(a[l]-o[l])*i);return`rgb(${s(0)}, ${s(1)}, ${s(2)})`}var Gt=(e,n)=>n!==void 0&&n>=2?Math.min(n-1,Math.floor(le(e)*n))/(n-1):le(e);function jt(e,n,t,r=M.negative,i=String){let[o,a]=ze(n),s=e??{type:"sequential"},l=p=>y(.15+.85*p);if(s.type==="threshold"){let{thresholds:p,colors:g,labels:x}=s,I=A=>{if(typeof A!="number"||!Number.isFinite(A))return;let O=0;for(;O<p.length&&A>=p[O];)O++;return{fill:g[Math.min(O,g.length-1)]??t,opacity:1}},U=g.map((A,O)=>({fill:A,opacity:1,label:x?.[O]??(O===0?`< ${i(p[0]??0)}`:O===p.length?`\u2265 ${i(p[O-1])}`:`${i(p[O-1])} \u2013 ${i(p[O])}`)}));return{color:I,domain:[o,a],swatches:U,kind:"threshold"}}if(s.type==="ordinal"){let p=s.colors?.length?s.colors:[t];return{color:x=>typeof x=="number"&&Number.isFinite(x)?{fill:p[Math.abs(Math.round(x))%p.length],opacity:1}:void 0,domain:[o,a],swatches:p.map((x,I)=>({fill:x,opacity:1,label:String(I)})),kind:"ordinal"}}if(s.type==="diverging"){let[p,g,x]=s.domain??[-Math.max(Math.abs(o),Math.abs(a)),0,Math.max(Math.abs(o),Math.abs(a))],I=s.colors,U=$=>$<g?.5*($-p)/Math.max(1e-12,g-p):.5+.5*($-g)/Math.max(1e-12,x-g),A=$=>{let P=Gt(s.reversed?1-le($):$,s.steps);if(I&&I.length>=2)return{fill:Ft(I,P),opacity:1};let F=P<.5?r:t,q=Math.abs(P-.5)*2;return{fill:F,opacity:l(q)}},O=$=>typeof $=="number"&&Number.isFinite($)?A(U($)):void 0,V=s.steps??5,K=Array.from({length:V},($,P)=>{let F=V===1?.5:P/(V-1),q=F<.5?p+(g-p)*(F*2):g+(x-g)*((F-.5)*2);return{...A(F),label:i(q)}});return{color:O,domain:[p,x],swatches:K,kind:"diverging"}}let[c,d]=s.domain??[o,a],h=s.colors,m=p=>{let g=Gt(s.reversed?1-le(p):p,s.steps);return h&&h.length>=2?{fill:Ft(h,g),opacity:1}:{fill:h?.[0]??t,opacity:l(g)}},S=p=>typeof p!="number"||!Number.isFinite(p)?void 0:m(d===c?1:(p-c)/(d-c)),w=s.steps??5,C=Array.from({length:w},(p,g)=>{let x=w===1?1:g/(w-1);return{...m(x),label:i(c+(d-c)*x)}});return{color:S,domain:[c,d],swatches:C,kind:"sequential"}}function ve(e){return e==null?[]:(Array.isArray(e)?e:[e]).map(t=>typeof t=="object"?t:{id:t})}var De=e=>e.id??e.name??e.series,Ht=e=>e.seriesId??e.series;function j(e,n){let t=!1;return n.id!==void 0&&(t=!0,De(e)!==n.id&&e.id!==n.id&&e.name!==n.id)||n.series!==void 0&&(t=!0,Ht(e)!==n.series&&e.series!==n.series)||n.index!==void 0&&(t=!0,e.index!==n.index)||n.category!==void 0&&(t=!0,e.category!==n.category)?!1:t}function _(e){let n={},t=De(e);t!==void 0&&(n.id=t);let r=Ht(e);return r!==void 0&&e.series!==void 0&&(n.series=r),e.index!==void 0&&(n.index=e.index),n}var Fe=(e,n)=>e.id===n.id&&e.series===n.series&&e.index===n.index&&e.category===n.category;function Ge(e,n,t){let r=ve(e),i=_(n),o=r.some(a=>j(n,a));return t==="single"?o?[]:[i]:o?r.filter(a=>!j(n,a)):[...r,i]}var mn=.2;function bn(e){let n=M.focus;switch(e.kind){case"rect":return{kind:"rect",part:"selected",x:e.x-1.5,y:e.y-1.5,width:e.width+3,height:e.height+3,fill:"none",stroke:n,rx:e.rx};case"circle":return{kind:"circle",part:"selected",cx:e.cx,cy:e.cy,r:e.r+2.5,fill:"none",stroke:n};case"path":return{kind:"path",part:"selected",d:e.d,fill:"none",stroke:n,strokeWidth:2.5};case"line":return{...e,part:"selected",stroke:n,strokeWidth:(e.strokeWidth??1)+3,title:void 0,item:void 0};case"text":return}}var gn=(e,n)=>e.kind==="text"?{...e,fill:M.grid}:{...e,opacity:(e.opacity??1)*n};function je(e,n){let t=ve(n.selected),r=n.highlighted===void 0||n.highlighted===null?[]:ve(n.highlighted),i=r[0];if(t.length===0&&!i)return e;let o={highlighted:n.highlightScope?.highlighted??"item",faded:n.highlightScope?.faded??"global"},a=[],s=d=>!i||r.some(h=>j(d,h))?!0:o.highlighted==="series"?r.some(h=>h.series!==void 0&&j(d,{series:h.series})):!1,l=d=>{if(!i||o.faded==="none"||s(d))return!1;if(o.faded==="series"){let h=i.series;return h!==void 0&&j(d,{series:h})}return!0},c=e.shapes.map(d=>{let h=d.item;if(!h||h.legend)return d;if(t.some(m=>j(h,m))){let m=bn(d);m&&a.push(m)}return l(h)?gn(d,mn):d});return a.length?{...e,shapes:[...c,...a]}:{...e,shapes:c}}var Et="var(--skdx-radius-default, var(--skdx-radius-md, 0.5rem))";function we(e){return["tooltip","skeleton","label-background","stage-label-background","brush-handle"].includes(e)?Et:void 0}function J(e,n,t,r,i){let o=e.getBoundingClientRect();return{x:o.width?(n-o.left)*r/o.width:n,y:o.height?(t-o.top)*i/o.height:t}}var He=(e,n,t)=>n>=e.x&&n<=e.x+e.width&&t>=e.y&&t<=e.y+e.height;function Vt(e,n){let t=0,r=1/0;return e.xs.forEach((i,o)=>{let a=Math.abs(i-n);a<r&&(r=a,t=o)}),t}function ce(e,n){let t=e.hit;if(!t||t.xs.length===0)return;let r=Vt(t,n),i=t.rows[r]??[];return{index:r,rows:e.axisTooltipFormatter?.(i,r)??i}}function Ee(e,n){let t=e.hit;if(!t||t.xs.length===0)return;let r=t.xs[Vt(t,n)];return{kind:"line",part:"crosshair",x1:r,x2:r,y1:t.plot.y,y2:t.plot.y+t.plot.height,stroke:M.axis,dash:"3 3"}}function Ve(e,n,t){let r=e.hit;if(!r||!r.crosshair||r.xs.length===0||!He(r.plot,n,t))return[];let i=Ee(e,n),{rows:o}=ce(e,n),a=e.tooltipAnchored?r.plot.y+8:t;return[i,...ye(i.x1,a,o,e.width,e.height,e.tooltipPlacement)]}function _e(e,n){let t=e.hit;if(!t||t.xs.length===0)return[];let r=t.rows.findIndex(o=>o[0]===n);if(r<0)return[];let i=t.xs[r];return Ve(e,i,t.plot.y+8)}function Ze(e,n,t,r,i){if(!e.tooltip)return{lines:[],shapes:[]};if(e.hit?.crosshair){let{x:l,y:c}=J(t,r,i,e.width,e.height);if(He(e.hit.plot,l,c)){let d=ce(e,l),h=Ee(e,l);if(d&&h)return{lines:d.rows,shapes:[h]}}}let o=n?.closest?.("[data-skdx-part]"),a=e.tooltipFormatter?Z(e,n)?.item:void 0,s=a&&e.tooltipFormatter?.(a)||o&&Array.from(o.children).find(l=>l.tagName.toLowerCase()==="title")?.textContent;return s?{lines:Array.isArray(s)?s:[s],shapes:[]}:{lines:[],shapes:[]}}function _t(e,n,t,r,i,o,a){let s=e?.closest?.("[data-skdx-part]"),l=a&&a.tooltipFormatter?Z(a,e)?.item:void 0,c=l&&a?.tooltipFormatter?.(l)||s&&Array.from(s.children).find(w=>w.tagName.toLowerCase()==="title")?.textContent;if(!c)return[];let d=a?.tooltipAnchored?Z(a,e):void 0,h=d?a?.shapes[d.index]:void 0,{x:m,y:S}=h?de(h):J(n,t,r,i,o);return ye(m,S,c,i,o,a?.tooltipPlacement)}function We(e,n,t,r,i){if(!e.tooltip)return[];if(e.hit?.crosshair){let{x:o,y:a}=J(t,r,i,e.width,e.height),s=Ve(e,o,a);if(s.length>0)return s}return _t(n,t,r,i,e.width,e.height,e)}function Ue(e,n){let t=Z(e,n);return t&&!t.item.legend?_(t.item):null}var xn=(e,n)=>{let{x:t,y:r}=de(e),i=e.kind==="circle"?e.cy:e.kind==="rect"?e.y+e.height/2:r;return t>=n.x&&t<=n.x+n.width&&i>=n.y&&i<=n.y+n.height};function qe(e,n){let t=new Set,r=[];for(let i of e.shapes){if(!i.item||i.item.legend||i.part==="anchor"||!xn(i,n))continue;let o=_(i.item),a=JSON.stringify(o);t.has(a)||(t.add(a),r.push(o))}return r}var Ke=e=>({kind:"rect",part:"selection-box",x:y(e.x),y:y(e.y),width:y(e.width),height:y(e.height),fill:M.focus,opacity:.12,stroke:M.focus}),ke=(e,n,t,r)=>({x:Math.min(e,t),y:Math.min(n,r),width:Math.abs(t-e),height:Math.abs(r-n)});function Zt(e,n,t){let r=!1;for(let i=0,o=e.length-1;i<e.length;o=i++){let a=e[i],s=e[o];a.y>t!=s.y>t&&n<(s.x-a.x)*(t-a.y)/(s.y-a.y)+a.x&&(r=!r)}return r}function Ye(e,n){if(n.length<3)return[];let t=new Set,r=[];for(let i of e.shapes){if(!i.item||i.item.legend||i.part==="anchor")continue;let{x:o,y:a}=de(i),s=i.kind==="circle"?i.cy:i.kind==="rect"?i.y+i.height/2:a;if(!Zt(n,o,s))continue;let l=_(i.item),c=JSON.stringify(l);t.has(c)||(t.add(c),r.push(l))}return r}var Xe=e=>({kind:"path",part:"selection-lasso",d:e.length?`M${e.map(n=>`${y(n.x)} ${y(n.y)}`).join("L")}`:"",fill:M.focus,fillOpacity:.12,stroke:M.focus,dash:"4 3"}),Me=6;function Qe(e,n,t){let r=e.edit;if(r){for(let i of r.bars)if(!(t<i.y||t>i.y+i.height||n<i.x0-Me||n>i.x1+Me))return Math.abs(n-i.x0)<=Me?{bar:i,mode:"start"}:Math.abs(n-i.x1)<=Me?{bar:i,mode:"end"}:{bar:i,mode:"move"}}}function Je(e,n,t){let r=e.edit;return Wt(r,n,r.invert(n.bar.x0+t)-r.invert(n.bar.x0))}function et(e,n,t){let r=e.edit,i=t.key==="ArrowRight"?1:t.key==="ArrowLeft"?-1:0;if(!r||n===null||!i||!(t.shiftKey||t.altKey))return;let o=r.bars.find(l=>l.index===n);if(!o)return;let a=t.altKey?t.shiftKey?"start":"end":"move",s=r.snap??r.invert(o.x0+10)-r.invert(o.x0);return Wt(r,{bar:o,mode:a},i*s)}function Wt(e,{bar:n,mode:t},r){let i=s=>e.snap?Math.round(s/e.snap)*e.snap:s,o=n.start,a=n.end;return t==="move"?(o=i(n.start+r),a=o+(n.end-n.start)):t==="start"?o=Math.min(i(n.start+r),n.end):a=Math.max(i(n.end+r),n.start),{id:n.id,name:n.name,start:o,end:a}}function tt(e,n,t){let r=e.edit,i=r.scale(t.start),o=r.scale(t.end);return{kind:"rect",part:"edit-ghost",x:y(Math.min(i,o)),y:y(n.bar.y),width:y(Math.max(1,Math.abs(o-i))),height:y(n.bar.height),fill:M.focus,opacity:.25,stroke:M.focus,rx:2}}var yn=64,vn=e=>Math.max(1,Math.min(yn,e));function nt(e,n,t,r){let i=n>0?.8:1.25,o=vn(e.view.zoom*i);if(o===e.view.zoom)return e.view;let{plot:a,scale:s}=e,[l,c]=e.view.center,d=(t-(a.x+a.width/2))/s,h=(r-(a.y+a.height/2))/s,m=e.view.zoom/o;return{center:[l+d*(1-m),e.fromY(e.toY(c)-h*(1-m))],zoom:o}}function rt(e,n,t,r){let{scale:i}=e;return{center:[n.center[0]-t/i,e.fromY(e.toY(n.center[1])+r/i)],zoom:n.zoom}}function Z(e,n){let t=n?.closest?.("[data-skdx-i]"),r=Number(t?.getAttribute("data-skdx-i")),i=Number.isInteger(r)?e.shapes[r]?.item:void 0;return i?{index:r,item:i}:void 0}var Se=e=>e.shapes.flatMap((n,t)=>n.item&&!n.item.legend?[t]:[]);function de(e){switch(e.kind){case"rect":return{x:e.x+e.width/2,y:e.y};case"circle":return{x:e.cx,y:e.cy-e.r};case"line":return{x:(e.x1+e.x2)/2,y:Math.min(e.y1,e.y2)};case"text":return{x:e.x,y:e.y};case"path":{let n=/M\s*(-?[\d.]+)[ ,](-?[\d.]+)/.exec(e.d);return n?{x:Number(n[1]),y:Number(n[2])}:{x:0,y:0}}}}function it(e,n){let t=n===null?void 0:e.shapes[n];if(!t)return[];let r=M.focus,i;switch(t.kind){case"rect":i={kind:"rect",part:"focus",x:t.x-2,y:t.y-2,width:t.width+4,height:t.height+4,fill:"none",stroke:r,rx:2};break;case"circle":i={kind:"circle",part:"focus",cx:t.cx,cy:t.cy,r:t.r+3,fill:"none",stroke:r};break;case"line":i={kind:"line",part:"focus",x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,stroke:r,strokeWidth:4};break;case"text":i={kind:"rect",part:"focus",x:t.x-2,y:t.y-8,width:t.text.length*L+4,height:16,fill:"none",stroke:r,rx:2};break;case"path":i={kind:"path",part:"focus",d:t.d,stroke:r,strokeWidth:2,fill:"none"};break}let{x:o,y:a}=de(t),s=t.item&&e.tooltipFormatter?.(t.item)||(t.item?.label??t.title??"");return[i,...s?ye(y(o),y(a),s,e.width,e.height):[]]}function ot(e,n,t){let r=Se(e);if(r.length===0)return;let i=n===null?-1:r.indexOf(n);switch(t){case"ArrowRight":case"ArrowDown":return r[Math.min(r.length-1,i+1)];case"ArrowLeft":case"ArrowUp":return r[Math.max(0,i<=0?0:i-1)];case"Home":return r[0];case"End":return r[r.length-1];case"Escape":return null;default:return}}var X=2,Q=(e,n,t)=>{let r=Math.max(X,Math.min(t,Math.round(n))),i=Math.max(0,Math.min(t-r,Math.round(e)));return{start:i,end:i+r}},Ut=(e,n)=>!e||e.start<=0&&e.end>=n;function at(e,n,t){if(e.count<=X||!e.plot.width)return;let{start:r,end:i}=e.zoom,o=i-r,a=n>0?1.25:.8,s=Math.max(X,Math.min(e.count,Math.round(o*a)));if(s===o)return n>0&&!Ut(e.zoom,e.count)?Q(r,s,e.count):void 0;let l=Math.max(0,Math.min(1,(t-e.plot.x)/e.plot.width)),c=r+l*o;return Q(c-l*s,s,e.count)}function st(e,n,t,r){let i=n.end-n.start,o=Math.max(X,Math.min(e.count,Math.round(i/Math.max(.05,t)))),a=Math.max(0,Math.min(1,(r-e.plot.x)/Math.max(1,e.plot.width)));return Q(n.start+a*i-a*o,o,e.count)}function lt(e,n,t){let r=n.end-n.start,i=e.plot.width/Math.max(1,r);return Q(n.start-t/i,r,e.count)}function ct(e,n,t){let r=e.brush;if(!r||!He(r.box,n,t))return;let i=r.window;if(Math.abs(n-i.x)<=6)return{grab:"left",zoom:e.zoom};if(Math.abs(n-(i.x+i.width))<=6)return{grab:"right",zoom:e.zoom};if(n>i.x&&n<i.x+i.width)return{grab:"move",zoom:e.zoom};let o=e.zoom.end-e.zoom.start,a=(n-r.box.x)/Math.max(1,r.box.width)*e.count;return{grab:"move",zoom:Q(a-o/2,o,e.count)}}function dt(e,n,t,r){let i=e.brush;if(!i)return t;let o=r/Math.max(1,i.box.width)*e.count;if(n==="move")return Q(t.start+o,t.end-t.start,e.count);if(n==="left")return{start:Math.max(0,Math.min(t.end-X,Math.round(t.start+o))),end:t.end};let a=Math.min(e.count,Math.max(t.start+X,Math.round(t.end+o)));return{start:t.start,end:a}}function ht(e,n){switch(n.type){case"svg":return Promise.resolve(ut(e,n.label,n.resolve));case"csv":return Promise.resolve(Xt(n.rows));case"png":{if(typeof document>"u"||typeof Image>"u")return Promise.reject(new Error("PNG export needs a browser"));let t=ut(e,n.label,n.resolve);return Yt(t,e.width,e.height,n.scale,n.background)}}}var H=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/"/g,"""),ue=e=>e.filter(([,n])=>n!==void 0&&n!=="").map(([n,t])=>` ${n}="${H(String(t))}"`).join("");function qt(e){let n=e.title?`<title>${H(e.title)}</title>`:"",t=["data-skdx-part",e.part];switch(e.kind){case"path":return`<path${ue([t,["d",e.d],["fill",e.fill??"none"],["stroke",e.stroke],["stroke-width",e.strokeWidth],["stroke-linecap",e.strokeLinecap],["stroke-linejoin",e.strokeLinejoin],["stroke-dasharray",e.dash],["opacity",e.opacity],["fill-opacity",e.fillOpacity]])}>${n}</path>`;case"rect":return`<rect${ue([t,["x",e.x],["y",e.y],["width",e.width],["height",e.height],["rx",e.rx],["fill",e.fill],["stroke",e.stroke],["fill-opacity",e.opacity]])}>${n}</rect>`;case"line":return`<line${ue([t,["x1",e.x1],["y1",e.y1],["x2",e.x2],["y2",e.y2],["stroke",e.stroke],["stroke-width",e.strokeWidth],["stroke-dasharray",e.dash],["opacity",e.opacity]])}>${n}</line>`;case"circle":return`<circle${ue([t,["cx",e.cx],["cy",e.cy],["r",e.r],["fill",e.fill],["stroke",e.stroke]])}>${n}</circle>`;case"text":return`<text${ue([t,["aria-label",e.title],["x",e.x],["y",e.y],["text-anchor",e.anchor],["dominant-baseline",e.baseline],["fill",e.fill],["font-weight",e.weight],["transform",e.rotate?`rotate(${e.rotate} ${e.x} ${e.y})`:void 0]])}>${H(e.text)}</text>`}}function Kt(e){let n=e.defs??[];return n.length===0?"":`<defs>${n.map(t=>`<linearGradient id="${H(t.id)}" x1="0" y1="0" x2="${t.vertical===!1?1:0}" y2="${t.vertical===!1?0:1}">${t.stops.map(r=>`<stop offset="${r.offset}" stop-color="${H(r.color)}"${r.opacity===void 0?"":` stop-opacity="${r.opacity}"`}/>`).join("")}</linearGradient>`).join("")}</defs>`}function ut(e,n,t){let r=Kt(e)+e.shapes.map(qt).join("");return t&&(r=r.replace(/var\((--[\w-]+)\)/g,(i,o)=>t(o).trim()||i)),`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${e.width} ${e.height}" width="${e.width}" height="${e.height}" role="img" aria-label="${H(n)}" font-family="${H(M.fontFamily)}" font-size="${H(M.fontSize)}"><title>${H(n)}</title>${r}</svg>`}function Yt(e,n,t,r=2,i){return new Promise((o,a)=>{let s=URL.createObjectURL(new Blob([e],{type:"image/svg+xml;charset=utf-8"})),l=new Image;l.onload=()=>{URL.revokeObjectURL(s);let c=document.createElement("canvas");c.width=Math.round(n*r),c.height=Math.round(t*r);let d=c.getContext("2d");if(!d)return a(new Error("canvas 2d context unavailable"));i&&(d.fillStyle=i,d.fillRect(0,0,c.width,c.height)),d.drawImage(l,0,0,c.width,c.height),c.toBlob(h=>h?o(h):a(new Error("toBlob failed")),"image/png")},l.onerror=()=>{URL.revokeObjectURL(s),a(new Error("svg could not be decoded"))},l.src=s})}function Xt(e){let n=t=>{let r=t==null?"":String(t);return/[",\n\r]/.test(r)?`"${r.replace(/"/g,'""')}"`:r};return e.map(t=>t.map(n).join(",")).join(`\r
|
|
3
|
+
`)}var N=e=>Oe(e.value)?e.value:(e.children??[]).reduce((n,t)=>n+N(t),0);var pt=e=>e.length===0?0:1+Math.max(...e.map(n=>pt(n.children??[]))),ee=e=>e.id??e.name;function Qt(e,n){for(let t of e){if(ee(t)===n||t.name===n)return[t];let r=Qt(t.children??[],n);if(r)return[t,...r]}}var ft=(e,n)=>n==="asc"||n==="desc"?[...e].sort((t,r)=>n==="asc"?N(t)-N(r):N(r)-N(t)):[...e];function Ce(e,n,t=1){return n===void 0?[...e]:e.map(r=>t>=n?{...r,value:N(r),children:void 0}:{...r,children:r.children?Ce(r.children,n,t+1):void 0})}function mt(e,n){if(n===void 0)return{nodes:[...e],path:[]};let t=Qt(e,n);if(!t)return{nodes:[...e],path:[]};let r=t[t.length-1];return{nodes:r.children?.length?r.children:[r],path:t}}function bt(e,n){if(!n)return;let t=typeof n=="object"?n.maxRows??500:500,r=e.hit;if(r&&r.rows.length>0){let s=r.rows[0];if(r.rows.length>t)return;let l=["",...s.slice(1).map(d=>d.replace(/:\s[^:]*$/,""))],c=r.rows.map(d=>[d[0],...d.slice(1).map(h=>h.slice(h.lastIndexOf(": ")+2))]);return[l,...c]}let i=e.shapes.flatMap(s=>s.item&&!s.item.legend&&!(s.part==="anchor"&&!s.title)?[s.item]:[]);if(i.length===0||i.length>t)return;let o=["series","name","category","value"].filter(s=>i.some(l=>l[s]!==void 0)),a=(s,l)=>s[l]===void 0?"":String(s[l]);return[o.map(s=>s[0]?.toUpperCase()+s.slice(1)),...i.map(s=>o.map(l=>a(s,l)))]}var gt=new Map;function $e(e){let n=gt.get(e);if(n)return n.group;let t=new Set,r={},i={current:r,subscribe(o){return t.add(o),()=>{t.delete(o),t.size===0&>.delete(e)}},publish(o,a){Object.assign(r,o);for(let s of t)s(o,a)}};return gt.set(e,{group:i,listeners:t}),i}var Jt='[data-skdx-part]:not([data-skdx-part^="tooltip"]):not([data-skdx-part="focus"]):not([data-skdx-part="crosshair"])',xt=`@keyframes skdx-in{from{opacity:0}to{opacity:1}}${Jt}{animation:skdx-in var(--skdx-chart-duration,0ms) ease-out;transition:${["x","y","width","height","cx","cy","r","opacity","fill-opacity","d"].map(e=>`${e} var(--skdx-chart-duration,0ms) ease-out`).join(",")}}@media (prefers-reduced-motion:reduce){${Jt}{animation:none;transition:none}}`;function yt(e){let n=e.animate;return n&&e.shapes.length<=1500?`${n}ms`:void 0}function en(e,n,t){let r=[],i=n;return e.forEach((o,a)=>{a>0&&(r.push(se(y(i),t,"\u203A",{part:"breadcrumb-separator",baseline:"middle"})),i+=L+6),r.push(se(y(i),t,o.name,{part:"breadcrumb",baseline:"middle",fill:"var(--skdx-color-text-default)",title:o.name,item:{label:o.name,id:ee(o),name:o.name}})),i+=o.name.length*L+6}),r}function vt(e){let n=[],{nodes:t,path:r}=mt(e.data,e.rootId),i=Ce(t,e.maxDepth).filter($=>!Ne(e,$.name)),o=Pe(e,!i.some($=>N($)>0));if(o)return{...o,issues:n};let a=Ot(e.format),{width:s,height:l}=oe(e),c=e.orientation==="horizontal",d=e.breadcrumbs&&r.length>0,h=i.map(($,P)=>({name:$.name,color:ae(e,P,$.color)})),m=ge(e,h,s)+(d?20:0),S=Lt(s,l,{top:m,right:0,bottom:0,left:0}),w=e.padding??1,C=e.labels??!0,p=Math.max(1,pt(i)),g=(c?S.width:S.height)/p,x=[],I=$=>{$.children?.length?$.children.forEach(I):x.push(N($))};i.forEach(I);let U=jt(e.colorScale,x,ae(e,0),void 0,a),A=[],O=[],V=($,P,F,q,tn)=>{let Mt=ft($,e.sort).filter(z=>{let Y=N(z)>0;return Y||n.push({code:"invalid-value",severity:"warning",message:`"${z.name}" has no positive value and was dropped.`,itemId:ee(z)}),Y}),kt=Mt.reduce((z,Y)=>z+N(Y),0),he=F;Mt.forEach((z,Y)=>{let pe=N(z),fe=kt>0?pe/kt*q:0,Te=(z.children?.length??0)>0,St=z.color??tn??ae(e,Y),Ct=!Te&&e.colorScale?U.color(pe):void 0,$t=P*g,G=c?{x:S.x+$t+w/2,y:he+w/2,width:g-w,height:fe-w}:{x:he+w/2,y:S.y+$t+w/2,width:fe-w,height:g-w},It=`${z.name}: ${a(pe)}`;A.push({kind:"rect",part:"cell",x:y(G.x),y:y(G.y),width:y(Math.max(0,G.width)),height:y(Math.max(0,G.height)),fill:Ct?.fill??St,opacity:Ct?.opacity??(Te?.7:void 0),title:It,item:{label:It,id:ee(z),name:z.name,value:pe}}),C&&G.width>z.name.length*L+6&&G.height>12&&O.push(se(y(G.x+4),y(G.y+G.height/2),z.name,{part:"cell-label",baseline:"middle",fill:"var(--skdx-color-text-on-accent)"})),Te&&V(z.children,P+1,he,fe,St),he+=fe})};V(i,0,c?S.y:S.x,c?S.height:S.width,void 0),d&&A.push(...en(r,8,ge(e,h,s)+10));let K=xe(e,s,l,h);return{...K,shapes:Be([...A,...O,...K.shapes]),issues:n}}import{css as wn,html as W,LitElement as Mn,nothing as T,svg as B}from"lit";import{property as f,state as D}from"lit/decorators.js";import{ifDefined as v}from"lit/directives/if-defined.js";var wt={fromAttribute:()=>!1},b=class extends Mn{constructor(){super(...arguments);this.legend=!1;this.tooltip=!0;this.selectionMode="none";this.loading=!1;this.decorative=!1;this.accessibleTable=!1;this.zoomable=!1;this.editable=!1;this.crossFilter=!1;this.animated=!1;this.responsive=!1;this.tip=[];this.overlay=[];this.portal=null;this.highlightState=null;this.crossState=null;this.lastCross=null;this.pointers=new Map;this.hover=null;this.token={};this.focused=null;this.hiddenState=[];this.drag=null;this.onPointerMove=t=>{let r=this.layout;if(!r)return;this.pointers.has(t.pointerId)&&this.pointers.set(t.pointerId,this.viewBox(t,r).x);let i=this.drag;if(i?.grab==="select"){let{x:o,y:a}=this.viewBox(t,r);this.overlay=[Ke(ke(i.x,i.y,o,a))];return}if(i?.grab==="lasso"){let{x:o,y:a}=this.viewBox(t,r);i.points=[...i.points??[],{x:o,y:a}],this.overlay=[Xe(i.points)];return}if(i?.grab==="edit"){if(!i.gantt)return;let{x:o}=this.viewBox(t,r);i.change=Je(r,i.gantt,o-i.x),this.overlay=[tt(r,i.gantt,i.change)];return}if(i?.grab==="map"){if(!r.map||!i.view)return;let{x:o,y:a}=this.viewBox(t,r);this.setView(rt(r.map,i.view,o-i.x,a-i.y));return}if(i&&r.hit){if(i.grab==="pinch"){let[a,s]=[...this.pointers.values()];if(a===void 0||s===void 0||!i.distance)return;this.setZoom(st(r.hit,i.zoom,Math.abs(a-s)/i.distance,(a+s)/2));return}let{x:o}=this.viewBox(t,r);this.setZoom(i.grab==="pan"?lt(r.hit,i.zoom,o-i.x):dt(r.hit,i.grab,i.zoom,o-i.x));return}if(r.tooltipPortal){let{lines:o,shapes:a}=Ze(r,t.target,t.currentTarget,t.clientX,t.clientY);this.tip=a,this.portal=o.length?{x:t.clientX,y:t.clientY,lines:o}:null}else{let o=We(r,t.target,t.currentTarget,t.clientX,t.clientY);(o.length>0||this.tip.length>0)&&(this.tip=o)}if(this.highlight(Ue(r,t.target)),this.syncId&&r.hit?.crosshair){let o=ce(r,this.viewBox(t,r).x);this.shareCrosshair(o?r.hit.rows[o.index]?.[0]??null:null)}};this.onPointerDown=t=>{let r=this.layout;if(!r||t.button!==0)return;let{x:i,y:o}=this.viewBox(t,r),a=Z(r,t.target)?.item.legend,s=this.canEdit(r)?Qe(r,i,o):void 0;if(s){this.drag={x:i,y:o,zoom:{start:0,end:0},grab:"edit",gantt:s},t.currentTarget.setPointerCapture(t.pointerId),this.clearTip();return}if(this.brushing()&&!a){this.drag={x:i,y:o,zoom:{start:0,end:0},grab:this.selectionMode==="lasso"?"lasso":"select",points:[{x:i,y:o}]},t.currentTarget.setPointerCapture(t.pointerId),this.clearTip();return}if(this.canPan(r)&&r.map){let c=r.map.plot;if(i<c.x||i>c.x+c.width||o<c.y||o>c.y+c.height)return;this.drag={x:i,y:o,zoom:{start:0,end:0},grab:"map",view:r.map.view},t.currentTarget.setPointerCapture(t.pointerId),this.clearTip();return}let l=r.hit;if(!(!l||!this.canZoom(r))){if(this.pointers.set(t.pointerId,i),this.pointers.size===2){let[c,d]=[...this.pointers.values()];this.drag={x:(c+d)/2,y:o,zoom:l.zoom,grab:"pinch",distance:Math.abs(c-d)||1}}else{let c=ct(l,i,o);if(c)this.drag={x:i,y:o,zoom:c.zoom,grab:c.grab},c.zoom!==l.zoom&&this.setZoom(c.zoom);else if(this.zoomable&&i>=l.plot.x&&i<=l.plot.x+l.plot.width&&o>=l.plot.y&&o<=l.plot.y+l.plot.height)this.drag={x:i,y:o,zoom:l.zoom,grab:"pan"};else{this.pointers.delete(t.pointerId);return}}t.currentTarget.setPointerCapture(t.pointerId),this.clearTip()}};this.onPointerUp=t=>{this.pointers.delete(t.pointerId);let r=t.currentTarget;r.hasPointerCapture(t.pointerId)&&r.releasePointerCapture(t.pointerId);let i=this.drag,o=this.layout;if(o&&(i?.grab==="select"||i?.grab==="lasso"||i?.grab==="edit"||i?.grab==="map")){this.overlay=[];let{x:a,y:s}=this.viewBox(t,o);if(Math.abs(a-i.x)>2||Math.abs(s-i.y)>2){i.grab==="select"?this.setSelected(qe(o,ke(i.x,i.y,a,s))):i.grab==="lasso"?this.setSelected(Ye(o,i.points??[])):i.grab==="edit"&&i.change&&this.emit("skdx-task-change",i.change),this.drag={...i,distance:-1};return}this.drag=null;return}(this.pointers.size===0||this.drag?.grab==="pinch")&&(this.drag=null)};this.onWheel=t=>{let r=this.layout;if(!r)return;let{x:i,y:o}=this.viewBox(t,r);if(r.map&&this.canPan(r)){let l=r.map.plot;if(i<l.x||i>l.x+l.width||o<l.y||o>l.y+l.height)return;t.preventDefault(),this.setView(nt(r.map,t.deltaY,i,o));return}let a=r.hit;if(!a||!this.canZoom(r)||o<a.plot.y||o>a.plot.y+a.plot.height)return;let s=at(a,t.deltaY,i);s&&(t.preventDefault(),this.setZoom(s))};this.onClick=t=>{if(!this.layout)return;if(this.drag?.distance===-1){this.drag=null;return}let r=Z(this.layout,t.target);r&&(r.item.range?this.setZoom(r.item.range):r.item.legend&&r.item.series!==void 0?this.toggle(r.item.series):(this.select(r.item),this.emit("skdx-item-click",r.item)))};this.onKeyDown=t=>{if(t.key==="Escape"){t.preventDefault(),this.focused=null,this.clearTip(),this.crossState=null,this.highlight(null);return}let r=this.layout;if(!r)return;if((t.key==="Enter"||t.key===" ")&&this.focused!==null){let s=r.shapes[this.focused]?.item;s&&(t.preventDefault(),this.select(s),this.emit("skdx-item-click",s));return}let i=this.canEdit(r)?et(r,this.focused,t):void 0;if(i){t.preventDefault(),this.emit("skdx-task-change",i);return}let o=ot(r,this.focused,t.key);if(o===void 0)return;t.preventDefault(),this.focused=o;let a=o===null?void 0:r.shapes[o]?.item;this.highlight(a?_(a):null)}}connectedCallback(){super.connectedCallback(),!(typeof ResizeObserver>"u")&&(this.observer=new ResizeObserver(([t])=>{let r=Math.floor(t?.contentRect.width??0);r>0&&(this.measured=r)}),this.observer.observe(this))}disconnectedCallback(){this.observer?.disconnect(),this.leave?.(),this.leave=void 0,this.joined=void 0,super.disconnectedCallback()}sized(){let{width:t,height:r,legend:i,tooltip:o,format:a,palette:s,loading:l,error:c,emptyMessage:d,description:h,decorative:m,animated:S,responsive:w,highlighted:C,highlightScope:p,accessibleTable:g}=this;return{...typeof w=="object"&&this.measured!==void 0&&this.measured<(w.breakpoint??480)?w.compact:void 0,width:w&&this.measured?this.measured:t,height:r,animate:S,responsive:w,legend:i,tooltip:o,format:a,palette:s,loading:l,error:c,emptyMessage:d,description:h,decorative:m,highlighted:C===void 0?this.highlightState:C,highlightScope:p,accessibleTable:g,hiddenSeries:this.hiddenSeries??this.hiddenState,zoom:this.zoom??this.zoomState,selected:this.selected??this.selectedState,view:this.view??this.viewState}}emit(t,r){this.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0}))}publish(t){this.syncId&&$e(this.syncId).publish(t,this.token)}join(){if(this.joined===this.syncId||(this.leave?.(),this.leave=void 0,this.joined=this.syncId,!this.syncId))return;let t=$e(this.syncId),r=i=>{"highlighted"in i&&(this.highlightState=i.highlighted??null),i.selected&&(this.selectedState=i.selected,this.crossFilter&&(this.highlightState=i.selected.length?i.selected:null)),"zoom"in i&&(this.zoomState=i.zoom),i.hiddenSeries&&(this.hiddenState=i.hiddenSeries),"crosshair"in i&&(this.crossState=i.crosshair??null)};r(t.current),this.leave=t.subscribe((i,o)=>{o!==this.token&&r(i)})}setZoom(t){this.zoomState=t,this.emit("skdx-zoom-change",t),this.publish({zoom:t})}setView(t){this.viewState=t,this.emit("skdx-view-change",t)}setSelected(t){this.selectedState=t,this.emit("skdx-selected-change",t),this.publish({selected:t})}toggle(t){let r=this.hiddenSeries??this.hiddenState,i=r.includes(t)?r.filter(o=>o!==t):[...r,t];this.hiddenState=i,this.emit("skdx-hidden-series-change",i),this.publish({hiddenSeries:i})}highlight(t){let r=this.hover;r===t||r&&t&&Fe(r,t)||(this.hover=t,this.emit("skdx-highlighted-change",t),this.highlightState=t,this.syncId&&this.publish({highlighted:t}))}select(t){let r=this.selectionMode;r!=="none"&&this.setSelected(Ge(this.selected??this.selectedState,t,r==="single"?"single":"multiple"))}shareCrosshair(t){!this.syncId||this.lastCross===t||(this.lastCross=t,this.publish({crosshair:t}))}clearTip(){this.tip=[],this.portal=null,this.shareCrosshair(null)}canZoom(t){return!!(t.hit&&(this.zoomable||t.hit.brush))}canPan(t){return!!(t.map&&this.zoomable)}canEdit(t){return!!(this.editable&&t.edit)}brushing(){return this.selectionMode==="brush"||this.selectionMode==="lasso"}viewBox(t,r){return J(t.currentTarget,t.clientX,t.clientY,r.width,r.height)}getSvgElement(){return this.renderRoot.querySelector("svg")}getLayout(){return this.layout}resetZoom(){this.setZoom(void 0)}zoomTo(t){this.setZoom(t)}focusItem(t){let r=this.layout;if(!r)return!1;let i=r.shapes.findIndex(o=>o.item&&!o.item.legend&&j(o.item,t));return i<0?!1:(this.getSvgElement()?.focus(),this.focused=i,!0)}export(t){let r=this.layout;return r?ht(r,{...t,label:t.label??this.label??this.localName}):Promise.reject(new Error("not rendered yet"))}root(t,r,i){this.join();let o=je(Re(t),this.sized());if(this.layout=o,o.issues!==this.reported){this.reported=o.issues;for(let p of o.issues??[])this.emit("skdx-data-issue",p)}let a=this.canZoom(o),s=this.canPan(o),l=this.canEdit(o),c=this.brushing(),d=a||s||l||c,h=!o.decorative&&Se(o).length>0,m=yt(o),S=bt(o,this.accessibleTable),w=typeof this.accessibleTable=="object"&&this.accessibleTable.caption||i,C=this.portal;return W`<svg
|
|
3
4
|
xmlns="http://www.w3.org/2000/svg"
|
|
4
5
|
viewBox="0 0 ${o.width} ${o.height}"
|
|
5
6
|
width=${o.width}
|
|
6
7
|
height=${o.height}
|
|
7
8
|
role=${o.decorative?"presentation":"img"}
|
|
8
|
-
aria-hidden=${o.decorative?"true"
|
|
9
|
-
aria-label=${o.decorative
|
|
10
|
-
aria-
|
|
11
|
-
tabindex=${h?0
|
|
9
|
+
aria-hidden=${o.decorative?"true":T}
|
|
10
|
+
aria-label=${o.decorative?T:i}
|
|
11
|
+
aria-description=${v(o.description)}
|
|
12
|
+
tabindex=${h?0:T}
|
|
12
13
|
data-skdx-chart=${r}
|
|
13
|
-
data-zoomable=${s
|
|
14
|
-
data-brushing=${c&&!(s
|
|
15
|
-
data-editable=${l?""
|
|
16
|
-
style=${
|
|
17
|
-
font-family=${
|
|
18
|
-
font-size=${
|
|
19
|
-
@pointermove=${o.tooltip||
|
|
14
|
+
data-zoomable=${a||s?"":T}
|
|
15
|
+
data-brushing=${c&&!(a||s)?"":T}
|
|
16
|
+
data-editable=${l?"":T}
|
|
17
|
+
style=${m?`--skdx-chart-duration:${m}`:T}
|
|
18
|
+
font-family=${M.fontFamily}
|
|
19
|
+
font-size=${M.fontSize}
|
|
20
|
+
@pointermove=${o.tooltip||d?this.onPointerMove:T}
|
|
20
21
|
@pointerleave=${()=>{this.clearTip(),this.highlight(null)}}
|
|
21
|
-
@pointerdown=${
|
|
22
|
-
@pointerup=${
|
|
23
|
-
@pointercancel=${
|
|
24
|
-
@wheel=${s
|
|
25
|
-
@dblclick=${s
|
|
22
|
+
@pointerdown=${d?this.onPointerDown:T}
|
|
23
|
+
@pointerup=${d?this.onPointerUp:T}
|
|
24
|
+
@pointercancel=${d?this.onPointerUp:T}
|
|
25
|
+
@wheel=${a||s?this.onWheel:T}
|
|
26
|
+
@dblclick=${a||s?()=>s?this.setView(void 0):this.setZoom(void 0):T}
|
|
26
27
|
@click=${this.onClick}
|
|
27
|
-
@keydown=${h?this.onKeyDown
|
|
28
|
+
@keydown=${h?this.onKeyDown:T}
|
|
28
29
|
@blur=${()=>{this.focused=null,this.highlight(null)}}
|
|
29
30
|
>
|
|
30
31
|
<title>${i}</title>
|
|
31
|
-
${o.description?
|
|
32
|
-
${
|
|
33
|
-
${
|
|
34
|
-
${
|
|
35
|
-
${
|
|
32
|
+
${o.description?B`<desc>${o.description}</desc>`:T}
|
|
33
|
+
${m?B`<style>${xt}</style>`:T} ${kn(o)}
|
|
34
|
+
${Ie(o.shapes)}
|
|
35
|
+
${Ie(this.tip.length||!this.crossState?this.tip:_e(o,this.crossState))}
|
|
36
|
+
${Ie(it(o,this.focused))} ${Ie(this.overlay)}
|
|
36
37
|
</svg>
|
|
37
|
-
${
|
|
38
|
+
${C?W`<div
|
|
38
39
|
role="tooltip"
|
|
39
40
|
data-skdx-tooltip=${r}
|
|
40
|
-
style="left:${
|
|
41
|
+
style="left:${C.x+12}px;top:${C.y+12}px"
|
|
41
42
|
>
|
|
42
|
-
${
|
|
43
|
-
</div
|
|
44
|
-
${S?
|
|
43
|
+
${C.lines.map(p=>W`<div>${p}</div>`)}
|
|
44
|
+
</div>`:T}
|
|
45
|
+
${S?W`<table data-skdx-table=${r}>
|
|
45
46
|
<caption>
|
|
46
|
-
${
|
|
47
|
+
${w}
|
|
47
48
|
</caption>
|
|
48
49
|
<thead>
|
|
49
50
|
<tr>
|
|
50
|
-
${(S[0]??[]).map(
|
|
51
|
+
${(S[0]??[]).map(p=>W`<th scope="col">${p}</th>`)}
|
|
51
52
|
</tr>
|
|
52
53
|
</thead>
|
|
53
54
|
<tbody>
|
|
54
|
-
${S.slice(1).map(
|
|
55
|
-
${
|
|
55
|
+
${S.slice(1).map(p=>W`<tr>
|
|
56
|
+
${p.map((g,x)=>x===0?W`<th scope="row">${g}</th>`:W`<td>${g}</td>`)}
|
|
56
57
|
</tr>`)}
|
|
57
58
|
</tbody>
|
|
58
|
-
</table
|
|
59
|
+
</table>`:T}`}};b.styles=wn`
|
|
59
60
|
:host {
|
|
60
61
|
display: inline-block;
|
|
61
62
|
}
|
|
@@ -63,7 +64,6 @@ var Yt=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var d=(e,n,t
|
|
|
63
64
|
display: block;
|
|
64
65
|
max-width: 100%;
|
|
65
66
|
height: auto;
|
|
66
|
-
outline: none;
|
|
67
67
|
}
|
|
68
68
|
svg[data-zoomable] {
|
|
69
69
|
cursor: grab;
|
|
@@ -78,6 +78,9 @@ var Yt=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var d=(e,n,t
|
|
|
78
78
|
}
|
|
79
79
|
:host([responsive]) {
|
|
80
80
|
display: block;
|
|
81
|
+
/* Keep centered flex/grid hosts independent of the previous SVG's intrinsic width. */
|
|
82
|
+
width: 100%;
|
|
83
|
+
min-width: 0;
|
|
81
84
|
}
|
|
82
85
|
table {
|
|
83
86
|
position: absolute;
|
|
@@ -97,7 +100,7 @@ var Yt=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var d=(e,n,t
|
|
|
97
100
|
background: var(--skdx-color-surface-raised);
|
|
98
101
|
color: var(--skdx-color-text-default);
|
|
99
102
|
border: 1px solid var(--skdx-color-border-strong);
|
|
100
|
-
border-radius:
|
|
103
|
+
border-radius: var(--skdx-radius-default, var(--skdx-radius-md, 0.5rem));
|
|
101
104
|
padding: 4px 8px;
|
|
102
105
|
font-family: var(--skdx-font-family);
|
|
103
106
|
font-size: var(--skdx-font-size-xs);
|
|
@@ -106,4 +109,4 @@ var Yt=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var d=(e,n,t
|
|
|
106
109
|
[role='tooltip'] > :first-child:not(:only-child) {
|
|
107
110
|
font-weight: bold;
|
|
108
111
|
}
|
|
109
|
-
`,
|
|
112
|
+
`,u([f({type:Number})],b.prototype,"width",2),u([f({type:Number})],b.prototype,"height",2),u([f()],b.prototype,"label",2),u([f({type:Boolean,reflect:!0})],b.prototype,"legend",2),u([f({type:Boolean,attribute:"no-tooltip",converter:wt})],b.prototype,"tooltip",2),u([f({attribute:!1})],b.prototype,"format",2),u([f({attribute:!1})],b.prototype,"palette",2),u([f({attribute:!1})],b.prototype,"hiddenSeries",2),u([f({attribute:!1})],b.prototype,"selected",2),u([f({attribute:"selection-mode"})],b.prototype,"selectionMode",2),u([f({attribute:!1})],b.prototype,"highlighted",2),u([f({attribute:!1})],b.prototype,"highlightScope",2),u([f({type:Boolean,reflect:!0})],b.prototype,"loading",2),u([f()],b.prototype,"error",2),u([f({attribute:"empty-message"})],b.prototype,"emptyMessage",2),u([f()],b.prototype,"description",2),u([f({type:Boolean,reflect:!0})],b.prototype,"decorative",2),u([f({type:Boolean,attribute:"accessible-table"})],b.prototype,"accessibleTable",2),u([f({attribute:!1})],b.prototype,"zoom",2),u([f({attribute:!1})],b.prototype,"view",2),u([f({type:Boolean,reflect:!0})],b.prototype,"zoomable",2),u([f({type:Boolean,reflect:!0})],b.prototype,"editable",2),u([f({attribute:"sync-id"})],b.prototype,"syncId",2),u([f({type:Boolean,attribute:"cross-filter"})],b.prototype,"crossFilter",2),u([f({converter:{fromAttribute:t=>t===null?!1:t===""?!0:Number(t)}})],b.prototype,"animated",2),u([f({type:Boolean,reflect:!0})],b.prototype,"responsive",2),u([D()],b.prototype,"tip",2),u([D()],b.prototype,"overlay",2),u([D()],b.prototype,"portal",2),u([D()],b.prototype,"measured",2),u([D()],b.prototype,"viewState",2),u([D()],b.prototype,"highlightState",2),u([D()],b.prototype,"crossState",2),u([D()],b.prototype,"focused",2),u([D()],b.prototype,"hiddenState",2),u([D()],b.prototype,"zoomState",2),u([D()],b.prototype,"selectedState",2);var k=class extends b{constructor(){super(...arguments);this.series=[];this.labels=!1;this.connectNulls=!1;this.stacked=!1;this.brush=!1;this.crosshair=!1}input(){let{series:t,categories:r,xAxis:i,yAxis:o,rightAxis:a,references:s,annotations:l,labels:c,curve:d,connectNulls:h,nulls:m,stacked:S,stackOffset:w,orientation:C,radius:p,barGap:g,barWidth:x,sort:I,transform:U,transforms:A,bins:O,binWidth:V,binDomain:K,binMode:$,sampling:P,brush:F,crosshair:q}=this;return{...this.sized(),series:t,categories:r,xAxis:i,yAxis:o,rightAxis:a,references:s,annotations:l,labels:c,curve:d,connectNulls:h,nulls:m,stacked:S,stackOffset:w,orientation:C,radius:p,barGap:g,barWidth:x,sort:I,transform:U,transforms:A,bins:O,binWidth:V,binDomain:K,binMode:$,sampling:P,brush:F,crosshair:q}}};u([f({attribute:!1})],k.prototype,"series",2),u([f({attribute:!1})],k.prototype,"categories",2),u([f({attribute:!1})],k.prototype,"xAxis",2),u([f({attribute:!1})],k.prototype,"yAxis",2),u([f({attribute:!1})],k.prototype,"rightAxis",2),u([f({attribute:!1})],k.prototype,"references",2),u([f({attribute:!1})],k.prototype,"annotations",2),u([f({type:Boolean,reflect:!0})],k.prototype,"labels",2),u([f()],k.prototype,"curve",2),u([f({type:Boolean,attribute:"connect-nulls"})],k.prototype,"connectNulls",2),u([f()],k.prototype,"nulls",2),u([f({reflect:!0,converter:{fromAttribute:t=>t==="percent"?"percent":t!==null}})],k.prototype,"stacked",2),u([f({attribute:"stack-offset"})],k.prototype,"stackOffset",2),u([f()],k.prototype,"orientation",2),u([f({type:Number})],k.prototype,"radius",2),u([f({type:Number,attribute:"bar-gap"})],k.prototype,"barGap",2),u([f({type:Number,attribute:"bar-width"})],k.prototype,"barWidth",2),u([f()],k.prototype,"sort",2),u([f()],k.prototype,"transform",2),u([f({attribute:!1})],k.prototype,"transforms",2),u([f({type:Number})],k.prototype,"bins",2),u([f({type:Number,attribute:"bin-width"})],k.prototype,"binWidth",2),u([f({attribute:!1})],k.prototype,"binDomain",2),u([f({attribute:"bin-mode"})],k.prototype,"binMode",2),u([f({attribute:!1})],k.prototype,"sampling",2),u([f({type:Boolean,reflect:!0})],k.prototype,"brush",2),u([f({type:Boolean,reflect:!0})],k.prototype,"crosshair",2);var kn=e=>e.defs&&e.defs.length?B`<defs>${e.defs.map(n=>B`<linearGradient id=${n.id} x1="0" y1="0" x2=${n.vertical===!1?1:0} y2=${n.vertical===!1?0:1}>${n.stops.map(t=>B`<stop offset=${t.offset} stop-color=${t.color} stop-opacity=${v(t.opacity)}></stop>`)}</linearGradient>`)}</defs>`:T,Ie=e=>B`${e.map((n,t)=>{let r=n.title?B`<title>${n.title}</title>`:T,i=n.item?t:void 0;switch(n.kind){case"path":return B`<path data-skdx-part=${n.part} data-skdx-i=${v(i)} d=${n.d} fill=${n.fill??"none"} stroke=${v(n.stroke)} stroke-width=${v(n.strokeWidth)} stroke-linecap=${v(n.strokeLinecap)} stroke-linejoin=${v(n.strokeLinejoin)} stroke-dasharray=${v(n.dash)} opacity=${v(n.opacity)} fill-opacity=${v(n.fillOpacity)}>${r}</path>`;case"rect":return B`<rect data-skdx-part=${n.part} data-skdx-i=${v(i)} x=${n.x} y=${n.y} width=${n.width} height=${n.height} rx=${v(n.rx)} style=${v(we(n.part)?`rx:${we(n.part)}`:void 0)} fill=${n.fill} stroke=${v(n.stroke)} fill-opacity=${v(n.opacity)} pointer-events=${v(n.part==="stage-label-background"||n.part==="label-background"?"none":void 0)}>${r}</rect>`;case"line":return B`<line data-skdx-part=${n.part} data-skdx-i=${v(i)} x1=${n.x1} y1=${n.y1} x2=${n.x2} y2=${n.y2} stroke=${n.stroke} stroke-width=${v(n.strokeWidth)} stroke-dasharray=${v(n.dash)} opacity=${v(n.opacity)}>${r}</line>`;case"circle":return B`<circle data-skdx-part=${n.part} data-skdx-i=${v(i)} cx=${n.cx} cy=${n.cy} r=${n.r} fill=${n.fill} stroke=${v(n.stroke)} opacity=${v(n.opacity)}>${r}</circle>`;case"text":return B`<text aria-label=${v(n.title)} data-skdx-part=${n.part} data-skdx-i=${v(i)} x=${n.x} y=${n.y} text-anchor=${v(n.anchor)} dominant-baseline=${v(n.baseline)} fill=${v(n.fill)} font-weight=${v(n.weight)} pointer-events=${v(i===void 0?"none":void 0)} transform=${v(n.rotate?`rotate(${n.rotate} ${n.x} ${n.y})`:void 0)}>${n.text}</text>`}})}`;var R=class extends b{constructor(){super(...arguments);this.data=[];this.breadcrumbs=!1;this.labels=!0}render(){let{data:t,orientation:r,rootId:i,breadcrumbs:o,maxDepth:a,sort:s,labels:l,padding:c,colorScale:d}=this;return this.root(vt({...this.sized(),data:t,orientation:r,rootId:i,breadcrumbs:o,maxDepth:a,sort:s,labels:l,padding:c,colorScale:d}),"icicle",this.label??"Icicle chart")}};u([E({attribute:!1})],R.prototype,"data",2),u([E()],R.prototype,"orientation",2),u([E({attribute:!1})],R.prototype,"rootId",2),u([E({type:Boolean,reflect:!0})],R.prototype,"breadcrumbs",2),u([E({type:Number,attribute:"max-depth"})],R.prototype,"maxDepth",2),u([E()],R.prototype,"sort",2),u([E({type:Boolean,attribute:"no-labels",converter:wt})],R.prototype,"labels",2),u([E({type:Number})],R.prototype,"padding",2),u([E({attribute:!1})],R.prototype,"colorScale",2),R=u([Sn("skdx-icicle-chart")],R);export{R as SkdxIcicleChart};
|
|
@@ -1107,6 +1107,11 @@ type ChartExportOptions = {
|
|
|
1107
1107
|
type: 'csv';
|
|
1108
1108
|
rows: (string | number | null | undefined)[][];
|
|
1109
1109
|
});
|
|
1110
|
+
type OptionalExportLabel<Options> = Options extends unknown ? Omit<Options, 'label'> & {
|
|
1111
|
+
label?: string;
|
|
1112
|
+
} : never;
|
|
1113
|
+
/** Component export options; the chart supplies its accessible name when label is omitted. */
|
|
1114
|
+
type ChartInstanceExportOptions = OptionalExportLabel<ChartExportOptions>;
|
|
1110
1115
|
/**
|
|
1111
1116
|
* One entry point for the export formats: SVG markup, a PNG blob (browser only), or CSV of the
|
|
1112
1117
|
* rows given. Rejects when a PNG is asked for outside a browser.
|
|
@@ -1372,6 +1377,9 @@ declare class SkdxCandlestickChart extends SkdxRootElement {
|
|
|
1372
1377
|
scale: 'linear' | 'log' | undefined;
|
|
1373
1378
|
variant: 'candlestick' | 'ohlc' | undefined;
|
|
1374
1379
|
xAxis: Pick<AxisOptions, 'format'> | undefined;
|
|
1380
|
+
yAxis: Pick<AxisOptions, 'format'> | undefined;
|
|
1381
|
+
/** How volume is written in titles and tooltips; a plain integer count by default. */
|
|
1382
|
+
volumeFormat: Format | undefined;
|
|
1375
1383
|
references: Reference[] | undefined;
|
|
1376
1384
|
annotations: Annotation[] | undefined;
|
|
1377
1385
|
/** Moving-average lines over the candles. */
|
|
@@ -2209,9 +2217,7 @@ declare abstract class SkdxRootElement extends LitElement {
|
|
|
2209
2217
|
/** Moves keyboard focus to the first mark matching the ref; `false` when none matches. */
|
|
2210
2218
|
focusItem(ref: ChartItemRef): boolean;
|
|
2211
2219
|
/** SVG markup, a PNG blob, or CSV, through the core's `exportChart`. */
|
|
2212
|
-
export(options:
|
|
2213
|
-
label?: string;
|
|
2214
|
-
}): Promise<string | Blob>;
|
|
2220
|
+
export(options: ChartInstanceExportOptions): Promise<string | Blob>;
|
|
2215
2221
|
private onPointerMove;
|
|
2216
2222
|
private onPointerDown;
|
|
2217
2223
|
private onPointerUp;
|
|
@@ -2286,7 +2292,7 @@ declare abstract class SkdxChartElement extends SkdxRootElement {
|
|
|
2286
2292
|
barGap: number | undefined;
|
|
2287
2293
|
barWidth: number | undefined;
|
|
2288
2294
|
sort: "asc" | "desc" | undefined;
|
|
2289
|
-
transform: "
|
|
2295
|
+
transform: "cumulative" | "histogram" | undefined;
|
|
2290
2296
|
transforms: SeriesTransform[] | undefined;
|
|
2291
2297
|
bins: number | undefined;
|
|
2292
2298
|
binWidth: number | undefined;
|
|
@@ -2328,4 +2334,4 @@ declare global {
|
|
|
2328
2334
|
}
|
|
2329
2335
|
}
|
|
2330
2336
|
|
|
2331
|
-
export { type
|
|
2337
|
+
export { type RadialBand as $, type AccessibleTableOptions as A, type Band as B, type ChartItemRef as C, type Datum as D, type ErrorValue as E, type Format as F, type GanttTask as G, type GroupedBoxSeries as H, type HighlightScope as I, type IcicleInput as J, type MapLine as K, type LegendOptions as L, type MapFeature as M, type MapPoint as N, type MapView as O, type MarimekkoCategory as P, type MarimekkoChartInput as Q, type MarkerSymbol as R, type NetworkEdge as S, type NetworkNode as T, type OrganizationChartInput as U, type ParallelCoordinatesInput as V, type ParallelDimension as W, type ParallelRow as X, type PolarAreaChartInput as Y, type Zoom as Z, type RadarMetric as _, type Annotation as a, type XAxisOptions as a$, type RangeChartSeries as a0, type RangeSeries as a1, type Reference as a2, type Sampling as a3, type SankeyLink as a4, type SankeyNode as a5, type ScatterPoint as a6, type ScatterSeries as a7, type Selection as a8, type SelectionMode as a9, SkdxParetoChart as aA, SkdxPieChart as aB, SkdxPolarAreaChart as aC, SkdxRadarChart as aD, SkdxRadialBarChart as aE, SkdxRangeChart as aF, SkdxSankeyChart as aG, SkdxScatterChart as aH, SkdxSparkline as aI, SkdxSunburstChart as aJ, SkdxSwarmPlot as aK, SkdxTimelineChart as aL, SkdxTreeChart as aM, SkdxTreemap as aN, SkdxWaffleChart as aO, SkdxWaterfallChart as aP, type SwarmPlotInput as aQ, type TaskChange as aR, type TimelineChartInput as aS, type TimelineEvent as aT, type TooltipOptions as aU, type TreeChartInput as aV, type TreeNode as aW, type Value as aX, type Variant as aY, type WaffleChartInput as aZ, type WaterfallDatum as a_, type Series as aa, type SeriesTransform as ab, SkdxAreaChart as ac, SkdxBarChart as ad, SkdxBoxplot as ae, SkdxBubbleChart as af, SkdxBulletChart as ag, SkdxBumpChart as ah, SkdxCandlestickChart as ai, SkdxChordChart as aj, SkdxCirclePackingChart as ak, SkdxComboChart as al, SkdxDumbbellChart as am, SkdxFunnelChart as an, SkdxGanttChart as ao, SkdxGaugeChart as ap, SkdxHeatmap as aq, SkdxHistogram as ar, SkdxIcicleChart as as, SkdxLineChart as at, SkdxLinearGauge as au, SkdxMapChart as av, SkdxMarimekkoChart as aw, SkdxNetworkChart as ax, SkdxOrganizationChart as ay, SkdxParallelCoordinatesChart as az, type AxisOptions as b, csv as b0, exportChart as b1, seriesCsv as b2, svgMarkup as b3, type BoxSummary as c, type BoxplotSeries as d, type BubblePoint as e, type BubbleSeries as f, type BulletDatum as g, type BumpChartInput as h, type CalendarCell as i, type Candle as j, type CandlestickOverlay as k, type CartesianSeries as l, type Category as m, type ChartDataIssue as n, type ChartExportOptions as o, type ChartInstanceExportOptions as p, type ChartItem as q, type ChartItemId as r, type ChordLink as s, type CirclePackingInput as t, type ColorScale as u, type ComboSeries as v, type Curve as w, type DumbbellDatum as x, type GeoMultiPolygon as y, type GeoPolygon as z };
|
|
@@ -1107,6 +1107,11 @@ type ChartExportOptions = {
|
|
|
1107
1107
|
type: 'csv';
|
|
1108
1108
|
rows: (string | number | null | undefined)[][];
|
|
1109
1109
|
});
|
|
1110
|
+
type OptionalExportLabel<Options> = Options extends unknown ? Omit<Options, 'label'> & {
|
|
1111
|
+
label?: string;
|
|
1112
|
+
} : never;
|
|
1113
|
+
/** Component export options; the chart supplies its accessible name when label is omitted. */
|
|
1114
|
+
type ChartInstanceExportOptions = OptionalExportLabel<ChartExportOptions>;
|
|
1110
1115
|
/**
|
|
1111
1116
|
* One entry point for the export formats: SVG markup, a PNG blob (browser only), or CSV of the
|
|
1112
1117
|
* rows given. Rejects when a PNG is asked for outside a browser.
|
|
@@ -1372,6 +1377,9 @@ declare class SkdxCandlestickChart extends SkdxRootElement {
|
|
|
1372
1377
|
scale: 'linear' | 'log' | undefined;
|
|
1373
1378
|
variant: 'candlestick' | 'ohlc' | undefined;
|
|
1374
1379
|
xAxis: Pick<AxisOptions, 'format'> | undefined;
|
|
1380
|
+
yAxis: Pick<AxisOptions, 'format'> | undefined;
|
|
1381
|
+
/** How volume is written in titles and tooltips; a plain integer count by default. */
|
|
1382
|
+
volumeFormat: Format | undefined;
|
|
1375
1383
|
references: Reference[] | undefined;
|
|
1376
1384
|
annotations: Annotation[] | undefined;
|
|
1377
1385
|
/** Moving-average lines over the candles. */
|
|
@@ -2209,9 +2217,7 @@ declare abstract class SkdxRootElement extends LitElement {
|
|
|
2209
2217
|
/** Moves keyboard focus to the first mark matching the ref; `false` when none matches. */
|
|
2210
2218
|
focusItem(ref: ChartItemRef): boolean;
|
|
2211
2219
|
/** SVG markup, a PNG blob, or CSV, through the core's `exportChart`. */
|
|
2212
|
-
export(options:
|
|
2213
|
-
label?: string;
|
|
2214
|
-
}): Promise<string | Blob>;
|
|
2220
|
+
export(options: ChartInstanceExportOptions): Promise<string | Blob>;
|
|
2215
2221
|
private onPointerMove;
|
|
2216
2222
|
private onPointerDown;
|
|
2217
2223
|
private onPointerUp;
|
|
@@ -2286,7 +2292,7 @@ declare abstract class SkdxChartElement extends SkdxRootElement {
|
|
|
2286
2292
|
barGap: number | undefined;
|
|
2287
2293
|
barWidth: number | undefined;
|
|
2288
2294
|
sort: "asc" | "desc" | undefined;
|
|
2289
|
-
transform: "
|
|
2295
|
+
transform: "cumulative" | "histogram" | undefined;
|
|
2290
2296
|
transforms: SeriesTransform[] | undefined;
|
|
2291
2297
|
bins: number | undefined;
|
|
2292
2298
|
binWidth: number | undefined;
|
|
@@ -2328,4 +2334,4 @@ declare global {
|
|
|
2328
2334
|
}
|
|
2329
2335
|
}
|
|
2330
2336
|
|
|
2331
|
-
export { type
|
|
2337
|
+
export { type RadialBand as $, type AccessibleTableOptions as A, type Band as B, type ChartItemRef as C, type Datum as D, type ErrorValue as E, type Format as F, type GanttTask as G, type GroupedBoxSeries as H, type HighlightScope as I, type IcicleInput as J, type MapLine as K, type LegendOptions as L, type MapFeature as M, type MapPoint as N, type MapView as O, type MarimekkoCategory as P, type MarimekkoChartInput as Q, type MarkerSymbol as R, type NetworkEdge as S, type NetworkNode as T, type OrganizationChartInput as U, type ParallelCoordinatesInput as V, type ParallelDimension as W, type ParallelRow as X, type PolarAreaChartInput as Y, type Zoom as Z, type RadarMetric as _, type Annotation as a, type XAxisOptions as a$, type RangeChartSeries as a0, type RangeSeries as a1, type Reference as a2, type Sampling as a3, type SankeyLink as a4, type SankeyNode as a5, type ScatterPoint as a6, type ScatterSeries as a7, type Selection as a8, type SelectionMode as a9, SkdxParetoChart as aA, SkdxPieChart as aB, SkdxPolarAreaChart as aC, SkdxRadarChart as aD, SkdxRadialBarChart as aE, SkdxRangeChart as aF, SkdxSankeyChart as aG, SkdxScatterChart as aH, SkdxSparkline as aI, SkdxSunburstChart as aJ, SkdxSwarmPlot as aK, SkdxTimelineChart as aL, SkdxTreeChart as aM, SkdxTreemap as aN, SkdxWaffleChart as aO, SkdxWaterfallChart as aP, type SwarmPlotInput as aQ, type TaskChange as aR, type TimelineChartInput as aS, type TimelineEvent as aT, type TooltipOptions as aU, type TreeChartInput as aV, type TreeNode as aW, type Value as aX, type Variant as aY, type WaffleChartInput as aZ, type WaterfallDatum as a_, type Series as aa, type SeriesTransform as ab, SkdxAreaChart as ac, SkdxBarChart as ad, SkdxBoxplot as ae, SkdxBubbleChart as af, SkdxBulletChart as ag, SkdxBumpChart as ah, SkdxCandlestickChart as ai, SkdxChordChart as aj, SkdxCirclePackingChart as ak, SkdxComboChart as al, SkdxDumbbellChart as am, SkdxFunnelChart as an, SkdxGanttChart as ao, SkdxGaugeChart as ap, SkdxHeatmap as aq, SkdxHistogram as ar, SkdxIcicleChart as as, SkdxLineChart as at, SkdxLinearGauge as au, SkdxMapChart as av, SkdxMarimekkoChart as aw, SkdxNetworkChart as ax, SkdxOrganizationChart as ay, SkdxParallelCoordinatesChart as az, type AxisOptions as b, csv as b0, exportChart as b1, seriesCsv as b2, svgMarkup as b3, type BoxSummary as c, type BoxplotSeries as d, type BubblePoint as e, type BubbleSeries as f, type BulletDatum as g, type BumpChartInput as h, type CalendarCell as i, type Candle as j, type CandlestickOverlay as k, type CartesianSeries as l, type Category as m, type ChartDataIssue as n, type ChartExportOptions as o, type ChartInstanceExportOptions as p, type ChartItem as q, type ChartItemId as r, type ChordLink as s, type CirclePackingInput as t, type ColorScale as u, type ComboSeries as v, type Curve as w, type DumbbellDatum as x, type GeoMultiPolygon as y, type GeoPolygon as z };
|