@devtable/dashboard 13.42.1 → 13.42.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard.es.js +2 -1
- package/dist/dashboard.umd.js +2 -2
- package/dist/stats.html +1 -1
- package/dist/version.json +2 -2
- package/package.json +1 -1
package/dist/dashboard.es.js
CHANGED
|
@@ -9665,7 +9665,7 @@ class uc {
|
|
|
9665
9665
|
}), this.instanceRegistry.clear(), this.factoryRegistry.clear();
|
|
9666
9666
|
}
|
|
9667
9667
|
}
|
|
9668
|
-
const wf = "13.42.
|
|
9668
|
+
const wf = "13.42.2", b1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
9669
9669
|
__proto__: null,
|
|
9670
9670
|
version: wf
|
|
9671
9671
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -13806,6 +13806,7 @@ const Pf = {
|
|
|
13806
13806
|
display: u
|
|
13807
13807
|
}, children: /* @__PURE__ */ r.jsx(ji, { ref: i, value: c, styles: {
|
|
13808
13808
|
root: {
|
|
13809
|
+
margin: "0 8px",
|
|
13809
13810
|
border: "none",
|
|
13810
13811
|
maxWidth: "100%",
|
|
13811
13812
|
"&.mantine-RichTextEditor-root": {
|
package/dist/dashboard.umd.js
CHANGED
|
@@ -88,7 +88,7 @@ Check the top-level render call using <`+N+">.")}return A}}function em(k,A){{if(
|
|
|
88
88
|
${Object.entries(t).map(([s,i])=>`const ${s} = '${i}';`).join(`
|
|
89
89
|
`)}
|
|
90
90
|
return ${e};
|
|
91
|
-
`)(n)}catch(s){return console.error(s),console.log(e),e}}function Ys(e,t,n,s){const i=N_(t,s);return e.replaceAll(/(\{\{([^{\}]+(?=}))\}\})/g,(...l)=>{const c=l[2];if(!c)return c;const u=i[c];if(u)return u;const d=q_(c);return $_(d,i,n)})}function F_(e,t){const n=xc.decode(t);n!==e&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:e,after:t,v:n}),console.groupEnd())}async function G_({query:e,name:t,payload:n,additionals:s},i){if(!e.sql)return[];const{type:a,key:l,sql:c,pre_process:u,post_process:d}=e,p=Mi(c,n),h=rx({sql:p,pre_process:u}),g=xc.encode(h);F_(h,g);let b=await Yt.query(i)({type:a,key:l,query:g,...s},{params:{name:t}});return b=sx(d,b,fo(n)),b}async function W_({type:e,key:t,configString:n,name:s,additionals:i},a){try{return await Yt.httpDataSourceQuery(a)({type:e,key:t,query:n,...i},{params:{name:s}})}catch(l){if(Rt.isCancel(l))throw l;return console.error(l),l}}async function go(){try{return(await Yt.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(e){return console.error(e),[]}}async function Gp(){try{return(await Yt.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(e){return console.error(e),[]}}class Wp{constructor(t){q(this,"rootRef");this.rootRef=re.observable({current:t})}async deleteItem(t){re.runInAction(()=>{v.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?re.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(v.isObject(n))re.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else re.runInAction(()=>{v.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,s){return re.reaction(()=>this.getValueFromRoot(t),(i,a)=>{n(i,a)},{requiresObservable:!0,fireImmediately:v.get(s,"fireImmediately",!1)})}}class R_{constructor(){q(this,"channels",new Map);q(this,"globalChannel",new bc)}getChannel(t){const n=this.channels.get(t);if(n)return n;const s=new bc;return this.channels.set(t,s),s}}class Q_{constructor(t){q(this,"instances",new Map);this.pluginManager=t}get availableVizList(){return this.pluginManager.installedPlugins.flatMap(t=>t.manifest.viz)}resolveComponent(t){return this.pluginManager.factory.viz(t)}getOrCreateInstance(t){const n=this.instances.get(t.id);if(n)return n;const s={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new R_,instanceData:new Wp(t.viz.conf)};return this.instances.set(t.id,s),s}}function Rp(e,t,n,s){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new Wp({}),colorPalette:{getColor(){return()=>""}},data:t,variables:s}}const U_=e=>{const{panel:t,measure:n,vizManager:s,data:i,variables:a}=e,l=s.resolveComponent(t.viz.type),c=s.getOrCreateInstance(t),u={...Rp(c,i,s,a),viewport:{width:n.w,height:n.h}},d=l.viewRender;return r.jsx(d,{context:u,instance:c,...v.omit(e,["panel","vizManager","data"])})},Y_=e=>{const{vizManager:t,panel:n,data:s,variables:i}=e,a=t.resolveComponent(n.viz.type),l=t.getOrCreateInstance(n),c={...Rp(l,s,t,i)},u=a.configRender;return r.jsx(u,{context:c,instance:l,...v.omit(e,["panel","vizManager","data"])})},Qp=(e,t)=>{const n=Et.bezier(e),s=Et.bezier(t);return function(i){return i<50?n(i*2/100).hex():s((i-50)*2/100).hex()}},Ks=e=>{const t=Et.bezier(e);return function(n){return t(n/100).hex()}},K_={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:Qp(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},X_={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:Qp(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},J_={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:Ks(["#fff7f1","darkred"]),name:"red",category:"sequential"},Z_={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:Ks(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},H_={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:Ks(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},ej={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:Ks(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class tj{constructor(t){q(this,"symbol");this.symbol=Symbol(t)}}function pn(e){return new tj(e)}class mo{constructor(){q(this,"parent");q(this,"factoryRegistry",new Map);q(this,"instanceRegistry",new Map)}createScoped(){const t=new mo;return t.parent=this,t}getRequired(t){return this.get(t)}get(t){if(this.instanceRegistry.has(t.symbol))return this.instanceRegistry.get(t.symbol);const n=this.factoryRegistry.get(t.symbol);if(n){const s=n(this);return this.instanceRegistry.set(t.symbol,s),s}if(this.parent)return this.parent.get(t)}provideFactory(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,n),this}provideValue(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(t=>{const n=v.get(t,"dispose");v.isFunction(n)&&n.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const Up="13.42.1",nj=Object.freeze(Object.defineProperty({__proto__:null,version:Up},Symbol.toStringTag,{value:"Module"}));class rj{constructor(t){q(this,"staticColors",new Map);q(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(s=>{this.register(s)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const n=this.encodeColor(t);t.type==="single"?(this.staticColors.has(n)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(n,t)):t.type==="interpolation"&&(this.interpolations.has(n)&&console.warn(`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`,`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.interpolations.set(n,t))}decodeStaticColor(t){return this.staticColors.get(t)}encodeColor(t){return`\${${t.category}}.{${t.name}}`}decodeInterpolation(t){return this.interpolations.get(t)}getColorInterpolations(){return Array.from(this.interpolations.values())}}class sj{constructor(){q(this,"plugins",new Map);q(this,"vizComponents",new Map);q(this,"factory",{viz:t=>{const n=this.vizComponents.get(t);if(n)return n;throw new Error(`Viz Component (${t}) not found`)}})}install(t){if(this.plugins.has(t.id))throw new Error(`Plugin (${t.id}) has been installed before`);this.plugins.set(t.id,t);for(const n of t.manifest.viz){if(this.vizComponents.has(n.name))throw new Error(`Viz Component (${n.name}) has been installed before`);this.vizComponents.set(n.name,n)}}get installedPlugins(){return Array.from(this.plugins.values())}}class ij{constructor(){q(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,s){var l;if(t.from===t.to)return n;if(t.from>t.to)throw new Error(`Can not downgrade from version '${t.from}' to (${t.to})`);const i=this.migrations.filter(c=>c.version>t.from&&c.version<=t.to),a=v.orderBy(i,"version","asc");if(((l=v.last(a))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return a.reduce((c,u)=>u.handler(c,s),n)}}class Ie extends ij{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(s,i)=>({version:t,...n(s,i)}))}async migrate({configData:t,panelModel:n}){const s=await t.getItem(null),i=v.get(s,"version",0),a=this.run({from:i,to:this.VERSION},s,{panelModel:n});await t.setItem(null,a)}async needMigration({configData:t}){const n=await t.getItem(null);return v.get(n,"version",0)<this.VERSION}}const Q=(e,t)=>{const[n,{setFalse:s}]=Y.useBoolean(!0),[i,a]=f.useState();f.useEffect(()=>(e.getItem(t).then(c=>{a(c),s()}),e.watchItem(t,c=>{a(c)})));const l=f.useCallback(async c=>{await e.setItem(t,c),a(c)},[e,t]);return{loading:n,value:i,set:l}},ut={top:16,right:16,bottom:16,left:16},Vt=e=>Math.max(0,e-ut.left-ut.right),Nt=e=>Math.max(0,e-ut.top-ut.bottom),Zr=(e,t)=>({width:Vt(e),height:Nt(t)}),dt=({width:e,height:t,children:n})=>r.jsx(o.Box,{pt:ut.top,pr:ut.right,pb:ut.bottom,pl:ut.left,sx:{width:e,height:t,overflow:"hidden",position:"relative"},children:n}),xo={x_axis_data_key:"",y_axis_data_key:"",z_axis_data_key:"",xAxis3D:{type:"value",name:"X Axis Name"},yAxis3D:{type:"value",name:"Y Axis Name"},zAxis3D:{type:"value",name:"Z Axis Name"}};function aj({context:e}){const{value:t}=Q(e.instanceData,"config"),n=e.data,{width:s,height:i}=e.viewport,{x_axis_data_key:a,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=v.defaults({},t,xo),h=f.useMemo(()=>cs(n,a),[n,a]),{x:g,y:b,z:x}=f.useMemo(()=>({x:L(a),y:L(l),z:L(c)}),[a,l,c]),{min:_,max:T}=f.useMemo(()=>{const I=v.minBy(h,z=>z[x.columnKey]),M=v.maxBy(h,z=>z[x.columnKey]);return{min:v.get(I,x.columnKey),max:v.get(M,x.columnKey)}},[h,x]),C={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:_,max:T,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:p,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map(I=>[I[g.columnKey],I[b.columnKey],I[x.columnKey]])}]};return t?r.jsx(dt,{width:s,height:i,children:r.jsx(Ke,{echarts:Ye,option:C,style:Zr(s,i),notMerge:!0,theme:"merico-light"})}):null}const U=D.observer(f.forwardRef(({label:e,required:t,description:n,value:s,onChange:i,queryID:a,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Pe(),h=f.useMemo(()=>p.dataFieldOptions(s,l,a),[s,l,a]);if(h.length===0){const g=p.explainDataKey(s);return r.jsxs(o.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[r.jsx(o.HoverCard.Target,{children:r.jsx(o.Box,{children:r.jsx(o.TextInput,{label:e,required:t,defaultValue:g.columnKey,readOnly:!0,disabled:!0})})}),r.jsx(o.HoverCard.Dropdown,{children:r.jsxs(o.Group,{position:"left",spacing:0,children:[r.jsx(o.Text,{size:"xs",color:g.queryName?"black":"red",sx:{fontFamily:"monospace"},children:g.queryName??g.queryID}),r.jsx(o.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),r.jsx(o.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:g.columnKey})]})})]})}return r.jsx(o.Select,{ref:d,label:e,description:n,data:h,value:s,onChange:i,required:t,sx:c,maxDropdownHeight:500,...u})}));function oj({context:e}){const{value:t,set:n}=Q(e.instanceData,"config"),s=v.defaults({},t,xo),{control:i,handleSubmit:a,reset:l}=y.useForm({defaultValues:s});return f.useEffect(()=>{l(s)},[t]),t?r.jsx(o.Stack,{spacing:"xs",children:r.jsxs("form",{onSubmit:a(n),children:[r.jsx(o.Text,{children:"X Axis"}),r.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(y.Controller,{name:"x_axis_data_key",control:i,render:({field:c})=>r.jsx(U,{label:"Data Field",required:!0,...c})}),r.jsx(y.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>r.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(o.Text,{mt:"lg",children:"Y Axis"}),r.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(y.Controller,{name:"y_axis_data_key",control:i,render:({field:c})=>r.jsx(U,{label:"Data Field",required:!0,...c})}),r.jsx(y.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>r.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(o.Text,{mt:"lg",children:"Z Axis"}),r.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(y.Controller,{name:"z_axis_data_key",control:i,render:({field:c})=>r.jsx(U,{label:"Data Field",required:!0,...c})}),r.jsx(y.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>r.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(o.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:r.jsxs(o.Button,{color:"blue",type:"submit",children:[r.jsx(S.IconDeviceFloppy,{size:20}),r.jsx(o.Text,{ml:"md",children:"Save"})]})})]})}):null}const lj=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function cj(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const s=u=>u&&`${n}.${u}`,{x_axis_data_key:i,y_axis_data_key:a,z_axis_data_key:l,...c}=e;return{...c,x_axis_data_key:s(i),y_axis_data_key:s(a),z_axis_data_key:s(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class uj extends Ie{constructor(){super(...arguments);q(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,s)=>{const{config:i}=n;return{...n,version:2,config:cj(i,s)}})}}const dj={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new uj,name:"bar-3d",viewRender:aj,configRender:oj,createConfig(){return{version:2,config:v.cloneDeep(xo)}},translation:lj},pj=({disabled:e,value:t,onChange:n})=>{const s=i=>{i&&n(i)};return r.jsxs(o.Box,{sx:{position:"relative"},children:[e&&r.jsx(o.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),r.jsx(gt,{height:"500px",defaultLanguage:"javascript",value:t,onChange:s,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:e}})]})};function pt({enabled:e,func_content:t}){return(n,s)=>{if(!e)return n;try{return new Function(`return ${t}`)()(n,s)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}function tt(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
91
|
+
`)(n)}catch(s){return console.error(s),console.log(e),e}}function Ys(e,t,n,s){const i=N_(t,s);return e.replaceAll(/(\{\{([^{\}]+(?=}))\}\})/g,(...l)=>{const c=l[2];if(!c)return c;const u=i[c];if(u)return u;const d=q_(c);return $_(d,i,n)})}function F_(e,t){const n=xc.decode(t);n!==e&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:e,after:t,v:n}),console.groupEnd())}async function G_({query:e,name:t,payload:n,additionals:s},i){if(!e.sql)return[];const{type:a,key:l,sql:c,pre_process:u,post_process:d}=e,p=Mi(c,n),h=rx({sql:p,pre_process:u}),g=xc.encode(h);F_(h,g);let b=await Yt.query(i)({type:a,key:l,query:g,...s},{params:{name:t}});return b=sx(d,b,fo(n)),b}async function W_({type:e,key:t,configString:n,name:s,additionals:i},a){try{return await Yt.httpDataSourceQuery(a)({type:e,key:t,query:n,...i},{params:{name:s}})}catch(l){if(Rt.isCancel(l))throw l;return console.error(l),l}}async function go(){try{return(await Yt.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(e){return console.error(e),[]}}async function Gp(){try{return(await Yt.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(e){return console.error(e),[]}}class Wp{constructor(t){q(this,"rootRef");this.rootRef=re.observable({current:t})}async deleteItem(t){re.runInAction(()=>{v.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?re.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(v.isObject(n))re.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else re.runInAction(()=>{v.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,s){return re.reaction(()=>this.getValueFromRoot(t),(i,a)=>{n(i,a)},{requiresObservable:!0,fireImmediately:v.get(s,"fireImmediately",!1)})}}class R_{constructor(){q(this,"channels",new Map);q(this,"globalChannel",new bc)}getChannel(t){const n=this.channels.get(t);if(n)return n;const s=new bc;return this.channels.set(t,s),s}}class Q_{constructor(t){q(this,"instances",new Map);this.pluginManager=t}get availableVizList(){return this.pluginManager.installedPlugins.flatMap(t=>t.manifest.viz)}resolveComponent(t){return this.pluginManager.factory.viz(t)}getOrCreateInstance(t){const n=this.instances.get(t.id);if(n)return n;const s={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new R_,instanceData:new Wp(t.viz.conf)};return this.instances.set(t.id,s),s}}function Rp(e,t,n,s){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new Wp({}),colorPalette:{getColor(){return()=>""}},data:t,variables:s}}const U_=e=>{const{panel:t,measure:n,vizManager:s,data:i,variables:a}=e,l=s.resolveComponent(t.viz.type),c=s.getOrCreateInstance(t),u={...Rp(c,i,s,a),viewport:{width:n.w,height:n.h}},d=l.viewRender;return r.jsx(d,{context:u,instance:c,...v.omit(e,["panel","vizManager","data"])})},Y_=e=>{const{vizManager:t,panel:n,data:s,variables:i}=e,a=t.resolveComponent(n.viz.type),l=t.getOrCreateInstance(n),c={...Rp(l,s,t,i)},u=a.configRender;return r.jsx(u,{context:c,instance:l,...v.omit(e,["panel","vizManager","data"])})},Qp=(e,t)=>{const n=Et.bezier(e),s=Et.bezier(t);return function(i){return i<50?n(i*2/100).hex():s((i-50)*2/100).hex()}},Ks=e=>{const t=Et.bezier(e);return function(n){return t(n/100).hex()}},K_={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:Qp(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},X_={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:Qp(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},J_={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:Ks(["#fff7f1","darkred"]),name:"red",category:"sequential"},Z_={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:Ks(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},H_={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:Ks(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},ej={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:Ks(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class tj{constructor(t){q(this,"symbol");this.symbol=Symbol(t)}}function pn(e){return new tj(e)}class mo{constructor(){q(this,"parent");q(this,"factoryRegistry",new Map);q(this,"instanceRegistry",new Map)}createScoped(){const t=new mo;return t.parent=this,t}getRequired(t){return this.get(t)}get(t){if(this.instanceRegistry.has(t.symbol))return this.instanceRegistry.get(t.symbol);const n=this.factoryRegistry.get(t.symbol);if(n){const s=n(this);return this.instanceRegistry.set(t.symbol,s),s}if(this.parent)return this.parent.get(t)}provideFactory(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,n),this}provideValue(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(t=>{const n=v.get(t,"dispose");v.isFunction(n)&&n.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const Up="13.42.2",nj=Object.freeze(Object.defineProperty({__proto__:null,version:Up},Symbol.toStringTag,{value:"Module"}));class rj{constructor(t){q(this,"staticColors",new Map);q(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(s=>{this.register(s)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const n=this.encodeColor(t);t.type==="single"?(this.staticColors.has(n)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(n,t)):t.type==="interpolation"&&(this.interpolations.has(n)&&console.warn(`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`,`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.interpolations.set(n,t))}decodeStaticColor(t){return this.staticColors.get(t)}encodeColor(t){return`\${${t.category}}.{${t.name}}`}decodeInterpolation(t){return this.interpolations.get(t)}getColorInterpolations(){return Array.from(this.interpolations.values())}}class sj{constructor(){q(this,"plugins",new Map);q(this,"vizComponents",new Map);q(this,"factory",{viz:t=>{const n=this.vizComponents.get(t);if(n)return n;throw new Error(`Viz Component (${t}) not found`)}})}install(t){if(this.plugins.has(t.id))throw new Error(`Plugin (${t.id}) has been installed before`);this.plugins.set(t.id,t);for(const n of t.manifest.viz){if(this.vizComponents.has(n.name))throw new Error(`Viz Component (${n.name}) has been installed before`);this.vizComponents.set(n.name,n)}}get installedPlugins(){return Array.from(this.plugins.values())}}class ij{constructor(){q(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,s){var l;if(t.from===t.to)return n;if(t.from>t.to)throw new Error(`Can not downgrade from version '${t.from}' to (${t.to})`);const i=this.migrations.filter(c=>c.version>t.from&&c.version<=t.to),a=v.orderBy(i,"version","asc");if(((l=v.last(a))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return a.reduce((c,u)=>u.handler(c,s),n)}}class Ie extends ij{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(s,i)=>({version:t,...n(s,i)}))}async migrate({configData:t,panelModel:n}){const s=await t.getItem(null),i=v.get(s,"version",0),a=this.run({from:i,to:this.VERSION},s,{panelModel:n});await t.setItem(null,a)}async needMigration({configData:t}){const n=await t.getItem(null);return v.get(n,"version",0)<this.VERSION}}const Q=(e,t)=>{const[n,{setFalse:s}]=Y.useBoolean(!0),[i,a]=f.useState();f.useEffect(()=>(e.getItem(t).then(c=>{a(c),s()}),e.watchItem(t,c=>{a(c)})));const l=f.useCallback(async c=>{await e.setItem(t,c),a(c)},[e,t]);return{loading:n,value:i,set:l}},ut={top:16,right:16,bottom:16,left:16},Vt=e=>Math.max(0,e-ut.left-ut.right),Nt=e=>Math.max(0,e-ut.top-ut.bottom),Zr=(e,t)=>({width:Vt(e),height:Nt(t)}),dt=({width:e,height:t,children:n})=>r.jsx(o.Box,{pt:ut.top,pr:ut.right,pb:ut.bottom,pl:ut.left,sx:{width:e,height:t,overflow:"hidden",position:"relative"},children:n}),xo={x_axis_data_key:"",y_axis_data_key:"",z_axis_data_key:"",xAxis3D:{type:"value",name:"X Axis Name"},yAxis3D:{type:"value",name:"Y Axis Name"},zAxis3D:{type:"value",name:"Z Axis Name"}};function aj({context:e}){const{value:t}=Q(e.instanceData,"config"),n=e.data,{width:s,height:i}=e.viewport,{x_axis_data_key:a,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=v.defaults({},t,xo),h=f.useMemo(()=>cs(n,a),[n,a]),{x:g,y:b,z:x}=f.useMemo(()=>({x:L(a),y:L(l),z:L(c)}),[a,l,c]),{min:_,max:T}=f.useMemo(()=>{const I=v.minBy(h,z=>z[x.columnKey]),M=v.maxBy(h,z=>z[x.columnKey]);return{min:v.get(I,x.columnKey),max:v.get(M,x.columnKey)}},[h,x]),C={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:_,max:T,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:p,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map(I=>[I[g.columnKey],I[b.columnKey],I[x.columnKey]])}]};return t?r.jsx(dt,{width:s,height:i,children:r.jsx(Ke,{echarts:Ye,option:C,style:Zr(s,i),notMerge:!0,theme:"merico-light"})}):null}const U=D.observer(f.forwardRef(({label:e,required:t,description:n,value:s,onChange:i,queryID:a,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Pe(),h=f.useMemo(()=>p.dataFieldOptions(s,l,a),[s,l,a]);if(h.length===0){const g=p.explainDataKey(s);return r.jsxs(o.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[r.jsx(o.HoverCard.Target,{children:r.jsx(o.Box,{children:r.jsx(o.TextInput,{label:e,required:t,defaultValue:g.columnKey,readOnly:!0,disabled:!0})})}),r.jsx(o.HoverCard.Dropdown,{children:r.jsxs(o.Group,{position:"left",spacing:0,children:[r.jsx(o.Text,{size:"xs",color:g.queryName?"black":"red",sx:{fontFamily:"monospace"},children:g.queryName??g.queryID}),r.jsx(o.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),r.jsx(o.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:g.columnKey})]})})]})}return r.jsx(o.Select,{ref:d,label:e,description:n,data:h,value:s,onChange:i,required:t,sx:c,maxDropdownHeight:500,...u})}));function oj({context:e}){const{value:t,set:n}=Q(e.instanceData,"config"),s=v.defaults({},t,xo),{control:i,handleSubmit:a,reset:l}=y.useForm({defaultValues:s});return f.useEffect(()=>{l(s)},[t]),t?r.jsx(o.Stack,{spacing:"xs",children:r.jsxs("form",{onSubmit:a(n),children:[r.jsx(o.Text,{children:"X Axis"}),r.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(y.Controller,{name:"x_axis_data_key",control:i,render:({field:c})=>r.jsx(U,{label:"Data Field",required:!0,...c})}),r.jsx(y.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>r.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(o.Text,{mt:"lg",children:"Y Axis"}),r.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(y.Controller,{name:"y_axis_data_key",control:i,render:({field:c})=>r.jsx(U,{label:"Data Field",required:!0,...c})}),r.jsx(y.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>r.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(o.Text,{mt:"lg",children:"Z Axis"}),r.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(y.Controller,{name:"z_axis_data_key",control:i,render:({field:c})=>r.jsx(U,{label:"Data Field",required:!0,...c})}),r.jsx(y.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>r.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(o.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:r.jsxs(o.Button,{color:"blue",type:"submit",children:[r.jsx(S.IconDeviceFloppy,{size:20}),r.jsx(o.Text,{ml:"md",children:"Save"})]})})]})}):null}const lj=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function cj(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const s=u=>u&&`${n}.${u}`,{x_axis_data_key:i,y_axis_data_key:a,z_axis_data_key:l,...c}=e;return{...c,x_axis_data_key:s(i),y_axis_data_key:s(a),z_axis_data_key:s(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class uj extends Ie{constructor(){super(...arguments);q(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,s)=>{const{config:i}=n;return{...n,version:2,config:cj(i,s)}})}}const dj={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new uj,name:"bar-3d",viewRender:aj,configRender:oj,createConfig(){return{version:2,config:v.cloneDeep(xo)}},translation:lj},pj=({disabled:e,value:t,onChange:n})=>{const s=i=>{i&&n(i)};return r.jsxs(o.Box,{sx:{position:"relative"},children:[e&&r.jsx(o.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),r.jsx(gt,{height:"500px",defaultLanguage:"javascript",value:t,onChange:s,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:e}})]})};function pt({enabled:e,func_content:t}){return(n,s)=>{if(!e)return n;try{return new Function(`return ${t}`)()(n,s)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}function tt(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
92
92
|
`)}}const qt=f.forwardRef(({value:e,onChange:t,triggerButtonText:n},s)=>{const{t:i}=j.useTranslation(),[a,{setTrue:l,setFalse:c}]=Y.useBoolean(),[u,d]=f.useState(e);f.useEffect(()=>{d(e)},[e]);const p=T=>{d({...u,enabled:T})},h=()=>{c();const{enabled:T,func_content:C}=u,I={enabled:T,func_content:C};d(I),t(I)},g=()=>{c(),d(e)},b=T=>{d(C=>({...C,func_content:T}))},x=()=>{b(tt().func_content)},_=n??i("chart.axis.customize_label");return r.jsxs(r.Fragment,{children:[r.jsx(o.Button,{variant:"filled",color:"grape",leftIcon:r.jsx(S.IconMathFunction,{size:16}),mt:24,onClick:l,sx:{flexGrow:0},children:_}),r.jsx(o.Modal,{size:800,title:_,opened:a,onClose:c,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:a&&r.jsxs(o.Stack,{children:[r.jsx(o.Checkbox,{mt:10,label:i("common.enabled"),checked:u.enabled,onChange:T=>p(T.currentTarget.checked)}),r.jsx(pj,{value:u.func_content,onChange:b,disabled:!u.enabled}),r.jsxs(o.Group,{position:"apart",children:[r.jsx(o.Button,{onClick:x,color:"red",leftIcon:r.jsx(S.IconRecycle,{size:20}),children:i("common.actions.reset_to_default")}),r.jsxs(o.Group,{position:"right",children:[r.jsx(o.Button,{onClick:g,variant:"subtle",children:i("common.actions.cancel")}),r.jsx(o.Button,{color:"green",leftIcon:r.jsx(S.IconDeviceFloppy,{size:16}),onClick:h,children:i("common.actions.save")})]})]})]})})]})}),Fn={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1};function Yp(){return v.cloneDeep(Fn)}const hj=[{lang:"en",resources:{boxplot:{viz_name:"Boxplot Chart",box:"Box",outlier:"Outlier",scatter:"Scatter",click_series:{label:"Click box, scatter or outlier"}}}},{lang:"zh",resources:{boxplot:{viz_name:"箱线图",box:"箱体",outlier:"异常点",scatter:"散点",click_series:{label:"点击箱体、散点或异常点"}}}}],Kp={id:"builtin:echarts:click-echart:series",displayName:"viz.boxplot.click_series.label",nameRender:gj,configRender:fj,payload:[{name:"type",description:"Always 'click'",valueType:"string"},{name:"seriesType",description:"'boxplot'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"Record of 'name', 'min', 'q1', 'median', 'q3', 'max'",valueType:"object"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function fj(e){return r.jsx(r.Fragment,{})}function gj(e){const{t}=j.useTranslation();return r.jsx(o.Text,{children:t("viz.boxplot.click_series.label")})}const Xs=f.forwardRef(({sectionTitle:e,value:t,onChange:n},s)=>{const{t:i,i18n:a}=j.useTranslation(),l=u=>d=>{const p=v.cloneDeep(t);v.set(p,u,d),n(p)},c=f.useMemo(()=>[{label:i("chart.axis.overflow.truncate"),value:"truncate"},{label:i("chart.axis.overflow.break_line"),value:"break"},{label:i("chart.axis.overflow.break_word"),value:"breakAll"}],[a.language]);return r.jsxs(o.Stack,{spacing:0,children:[e&&r.jsx(o.Divider,{mb:-5,mt:5,variant:"dotted",label:e,labelPosition:"right",labelProps:{color:"dimmed"}}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(o.NumberInput,{label:i("chart.axis.overflow.max_width"),hideControls:!0,value:t.width,onChange:l("width")}),r.jsx(o.Select,{label:i("chart.axis.overflow.label"),data:c,value:t.overflow,onChange:l("overflow")}),r.jsx(o.TextInput,{label:i("chart.axis.overflow.ellipsis"),value:t.ellipsis,disabled:!0})]})]})}),$t=f.forwardRef(({value:e,onChange:t},n)=>{const{t:s}=j.useTranslation(),i=l=>{t({...e,on_axis:l})},a=l=>{t({...e,in_tooltip:l})};return r.jsxs(o.Stack,{ref:n,spacing:0,children:[r.jsx(Xs,{sectionTitle:s("chart.axis.overflow.section_title.on_axis"),value:e.on_axis,onChange:i}),r.jsx(Xs,{sectionTitle:s("chart.axis.overflow.section_title.in_tooltip"),value:e.in_tooltip,onChange:a})]})});function ht(){return{on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}}}function It({overflow:e,width:t}){const n={truncate:"initial",break:"break-all",breakAll:"break-word"}[e],s=e==="truncate"?"nowrap":"initial",i={truncate:"ellipsis",break:"clip",breakAll:"clip"}[e];return`
|
|
93
93
|
max-width: ${t}px;
|
|
94
94
|
word-break: ${n};
|
|
@@ -140,7 +140,7 @@ Check the top-level render call using <`+N+">.")}return A}}function em(k,A){{if(
|
|
|
140
140
|
${s.join("")}
|
|
141
141
|
</tbody>
|
|
142
142
|
</table>
|
|
143
|
-
`}const Sw=(e,t)=>n=>{const{seriesName:s,value:i}=n;switch(s){case t.Box:return _w(e,i);case t.Outlier:return ww(e,i);case t.Scatter:return Cw(e,i)}};function kw({config:e,seriesNames:t}){return xe.getTooltip({trigger:"item",formatter:Sw(e,t)})}function Zs(e,t){t||(t="none");const n=[];return e.x_axis_scroll&&n.push({type:"inside",xAxisIndex:[0],filterMode:t,minSpan:1}),e.y_axis_scroll&&n.push({type:"inside",yAxisIndex:[0],filterMode:t,minSpan:1}),e.x_axis_slider&&n.push({type:"slider",xAxisIndex:[0],filterMode:t,bottom:"auto",top:0,height:15,moveHandleSize:0,showDataShadow:!1,minSpan:1}),n}function Tw({min:e,max:t}){if(e<=110)return Math.min(0,e);if(e<=200)return 100;const n=Qn.floor(Qn.log10(e)),s=Math.pow(10,n),i=Math.pow(10,n-1);return e/s<=2?v.round(e,-1*(n-1))-i:v.round(e,-1*n)-s}function Iw(e){return{Box:e("viz.boxplot.box"),Scatter:e("viz.boxplot.scatter"),Outlier:e("viz.boxplot.outlier")}}function Dw({config:e,data:t,variables:n,t:s}){const{x_axis:i,y_axis:a,reference_lines:l}=e,c=uw(e,t),u=Dt(i.axisLabel.overflow.on_axis),d=Iw(s),p=vw(e,c).map(h=>({...h,name:v.get(d,h.name,h.name)}));return{dataZoom:Zs(e.dataZoom,"filter"),grid:dw(e),dataset:c,legend:pw({config:e,seriesNames:d}),tooltip:kw({config:e,seriesNames:d}),xAxis:[xe.getXAxis({type:"category",name:i.name,nameGap:25,nameLocation:"center",nameTextStyle:{align:"center"},axisLabel:{...i.axisLabel,...u,formatter:pt(i.axisLabel.formatter)}})],yAxis:[xe.getYAxis({name:a.name,minInterval:1,axisLabel:{formatter:function(h){return ie(h,a.label_formatter)}},min:Tw})],series:[...p,...hw(l,n,t)]}}function Mw({context:e,instance:t}){const{t:n}=j.useTranslation(),{value:s}=Q(e.instanceData,"config"),{variables:i}=e,a=e.data,{width:l,height:c}=e.viewport,u=v.defaults({},s,bo),d=_t({vizManager:e.vizManager,instance:t}),p=vt(d.triggerManager,Kp.id),h=Gn(a,u.x_axis.data_key),g=f.useCallback(_=>{const T=v.get(h,_.name,{error:"rowData is not found"});p.forEach(C=>{d.runInteraction(C.id,{..._,rowData:T})})},[h,p,d]),b=f.useMemo(()=>({click:g}),[g]),x=f.useMemo(()=>Dw({config:u,data:a,variables:i,t:n}),[u,a,i,n]);return!s||!l||!c?null:r.jsx(dt,{width:l,height:c,children:r.jsx(Ke,{echarts:Ye,option:x,style:Zr(l,c),onEvents:b,notMerge:!0,theme:"merico-light"})})}function $e({canSubmit:e,buttonRef:t}){const{t:n}=j.useTranslation();return r.jsxs(o.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r.jsx(o.Text,{children:n("viz.viz_config_banner")}),r.jsx(o.ActionIcon,{ref:t,type:"submit",mr:5,variant:"filled",color:"blue",disabled:!e,children:r.jsx(S.IconDeviceFloppy,{size:20})})]})}const Co=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("common.align.horizontal.left"),value:"left"},{label:a("common.align.horizontal.center"),value:"center"},{label:a("common.align.horizontal.right"),value:"right"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("common.align.horizontal.label"),data:c,value:t,onChange:n,sx:s})}),nh=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("common.align.vertical.top"),value:"top"},{label:a("common.align.vertical.center"),value:"center"},{label:a("common.align.vertical.bottom"),value:"bottom"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("common.align.vertical.label"),data:c,value:t,onChange:n,sx:s})}),rh=o.createStyles(()=>({palette:{display:"flex",flexFlow:"row nowrap"},paletteItem:{".palette-value":{height:24,overflow:"visible",width:36},".palette-item":{width:"36px",height:36*.618,cursor:"pointer",transition:"transform 100ms ease-in-out","&:hover":{boxShadow:"0 0 0 2px var(--shadow-color)",borderRadius:2,transform:"scale(1.2)"}}}})),zw=[{from:0,to:0},{from:100,to:100}];class Ew{constructor(){q(this,"steps",new Map);q(this,"interpolation");q(this,"onChange");re.makeAutoObservable(this,{steps:re.observable},{deep:!1}),re.reaction(()=>re.toJS(this.steps),()=>{this.notifyStepChange()})}setSteps(t){for(const n of t)this.steps.set(n.to,n.from)}notifyStepChange(){var t;(t=this.onChange)==null||t.call(this,Array.from(this.steps.entries()).map(([n,s])=>({to:n,from:s})).sort((n,s)=>n.to-s.to||n.from-s.from))}fromProps(t){t.steps.length<2?this.setSteps(zw):this.setSteps(t.steps),this.interpolation=t.interpolation,this.onChange=t.onChange}changeStep(t,n){t==null?this.steps.delete(n):this.steps.set(n,t)}getStepFromValue(t){return this.steps.get(t)}}function sh(e){if(typeof e=="number")return String(e)}function Aw(e){const{t}=j.useTranslation(),{onChange:n,color:s,index:i,value:a}=e,{classes:l}=rh(),[c,u]=f.useState(sh(a)),[d,{setTrue:p,setFalse:h}]=Y.useBoolean(!1),g=i%2===1,b=g&&a!=null,x=!g&&a!=null,_=`map ${a} to color ${i}`,T=()=>{u(sh(a)),h()},C=()=>{h(),n==null||n(Number(c))},I=()=>{h(),n==null||n(null)},M=ie(a??null,{output:"number",mantissa:10,trimMantissa:!0,average:!0,absolute:!1}),z=!c||Number.isNaN(Number(c));return r.jsxs("div",{"data-testid":`palette-item-${i}`,className:l.paletteItem,children:[r.jsx(o.Text,{title:_,style:{opacity:b?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:M}),r.jsxs(o.Popover,{width:240,trapFocus:!0,opened:d,onClose:h,zIndex:340,withinPortal:!0,children:[r.jsx(o.Popover.Target,{children:r.jsx("div",{"data-testid":"palette-item-target",className:"palette-item",onClick:p,style:{"--shadow-color":Et(s).alpha(.5).hex(),backgroundColor:s}})}),r.jsxs(o.Popover.Dropdown,{children:[r.jsx(o.Tooltip,{withinPortal:!0,zIndex:340,label:t("common.actions.close"),children:r.jsx(o.CloseButton,{"data-testid":"palette-item-cancel",size:"sm",color:"gray",onClick:T,style:{position:"absolute",top:"0.5em",right:"0.8em"}})}),r.jsxs(o.Stack,{children:[r.jsx(o.TextInput,{size:"xs",label:t("style.color.interpolation.palette.mapping.value_input_label"),value:c,onChange:E=>{const R=E.currentTarget.value;u(R)},error:c&&z}),r.jsxs(o.Group,{position:"apart",children:[r.jsx(o.Button,{variant:"light",color:"red",size:"xs",onClick:I,leftIcon:r.jsx(S.IconTrash,{size:16}),children:t("common.actions.delete")}),r.jsx(o.Button,{color:"green",leftIcon:r.jsx(S.IconDeviceFloppy,{size:16}),"data-testid":"palette-item-ok",size:"xs",onClick:C,disabled:z,children:t("common.actions.save")})]})]})]})]}),r.jsx(o.Text,{title:_,style:{opacity:x?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:M})]})}const Pw=D.observer(({model:e})=>{const{classes:t}=rh(),n=v.range(0,13,1).map(s=>100/12*s).map(s=>[e.interpolation.getColor(s),s]);return r.jsx("div",{className:t.palette,children:n.map(([s,i],a)=>r.jsx(Aw,{index:a,color:s,value:e.getStepFromValue(i),onChange:l=>e.changeStep(l,i)},s))})}),Ow=D.observer(function(t){const n=Y.useCreation(()=>new Ew,[]);return f.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:r.jsx(Pw,{model:n})}),Lw=e=>{const{t,i18n:n}=j.useTranslation(),{value:s,onChange:i,colorManager:a}=e,l=a.getColorInterpolations(),[c,u]=f.useState(s),d=a.decodeInterpolation(c.interpolation)||l[0],[p,{setTrue:h,setFalse:g}]=Y.useBoolean(),b=f.useMemo(()=>l.map(I=>({label:t(I.displayName),value:a.encodeColor(I),group:t(`style.color.interpolation.palette.category.${I.category}`)})),[n.language]);function x(I){I&&u(M=>({...M,interpolation:I}))}const _=()=>{g(),i==null||i(re.toJS(c))};function T(I){u(M=>({...M,steps:I}))}const C=()=>{g(),u(s)};return r.jsxs(r.Fragment,{children:[r.jsx(o.Button,{variant:"outline",onClick:h,children:t(d==null?void 0:d.displayName)}),r.jsx(o.Modal,{size:508,title:t("style.color.interpolation.setup"),opened:p,onClose:g,zIndex:320,children:p&&r.jsxs(o.Stack,{"data-testid":"color-interpolation-modal",children:[r.jsx(o.Select,{label:t("style.color.interpolation.palette.label"),value:c.interpolation,data:b,onChange:x,withinPortal:!0,zIndex:340,maxDropdownHeight:500}),r.jsx(Ow,{steps:c.steps,interpolation:d,onChange:T}),r.jsxs(o.Group,{position:"apart",children:[r.jsx(o.Button,{onClick:C,variant:"subtle",children:t("common.actions.cancel")}),r.jsx(o.Button,{color:"green",leftIcon:r.jsx(S.IconDeviceFloppy,{size:16}),onClick:_,children:t("common.actions.save")})]})]})})]})},Bw=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("style.color.type.static"),value:"static"},{label:a("style.color.type.interpolation"),value:"interpolation"},{label:a("style.color.type.none"),value:"none"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("style.color.type.label"),data:c,value:t,onChange:n,sx:s})}),Vw=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("style.flex.justify_content.left"),value:"left"},{label:a("style.flex.justify_content.center"),value:"center"},{label:a("style.flex.justify_content.right"),value:"right"},{label:a("style.flex.justify_content.space_between"),value:"space-between"},{label:a("style.flex.justify_content.space_around"),value:"space-around"},{label:a("style.flex.justify_content.space_evenly"),value:"space-evenly"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("style.flex.justify_content.label"),data:c,value:t,onChange:n,sx:s})}),Nw=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("style.flex.align_items.start"),value:"start"},{label:a("style.flex.align_items.center"),value:"center"},{label:a("style.flex.align_items.end"),value:"end"},{label:a("style.flex.align_items.stretch"),value:"stretch"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("style.flex.align_items.label"),data:c,value:t,onChange:n,sx:s})}),qw=({value:e,index:t,children:n})=>{const[s,{setTrue:i,setFalse:a}]=Y.useBoolean(!1),{ref:l,handleRef:c}=Tp({id:e,index:t});return r.jsx(o.Tabs.Tab,{ref:l,value:e,icon:r.jsx(S.IconGripHorizontal,{size:14,color:s||t===0?"rgb(34, 139, 230)":"transparent"}),onMouseEnter:i,onMouseLeave:a,children:n})},$w=({fieldArray:e,add:t,addButtonText:n,renderTabName:s,controlledFields:i})=>{const a=l=>{const{source:c,target:u}=l.operation,d=i.findIndex(h=>h.id===c.id),p=u.index;e.move(d,p)};return r.jsxs(o.Tabs.List,{children:[r.jsx(as.DragDropProvider,{onDragEnd:a,children:i.map((l,c)=>r.jsx(qw,{value:l.id,index:c,children:s(l,c)},l.id))}),r.jsx(o.Tabs.Tab,{onClick:t,value:"add",children:r.jsx(o.Tooltip,{label:n,children:r.jsx(o.Center,{children:r.jsx(S.IconPlus,{size:18,color:"#228be6"})})})})]})},Fw={tab:{paddingTop:"4px",paddingBottom:"4px"},panel:{padding:"0px"}},Se=({control:e,watch:t,name:n,getItem:s,children:i,addButtonText:a,deleteButtonText:l,renderTabName:c,deleteDisalbed:u})=>{var z;const d=y.useFieldArray({control:e,name:n}),{fields:p,append:h,remove:g}=d,b=t(n),x=p.map((E,R)=>({...E,...b[R]})),_=((z=v.last(x))==null?void 0:z.id)??null,[T,C]=f.useState(_),I=E=>{E!=="add"&&C(E)};f.useEffect(()=>{C(E=>_===E?E:_)},[_]);const M=()=>{const E=s();d.append(E),C(E.id)};return r.jsxs(o.Tabs,{value:T,onTabChange:I,styles:Fw,children:[r.jsx($w,{fieldArray:d,add:M,addButtonText:a,renderTabName:c,controlledFields:x}),x.map((E,R)=>r.jsx(o.Tabs.Panel,{value:E.id,children:r.jsxs(o.Stack,{children:[i({field:E,index:R}),r.jsx(o.Divider,{mb:-10,mt:10,variant:"dashed"}),r.jsx(o.Button,{leftIcon:r.jsx(S.IconTrash,{size:16}),color:"red",variant:"light",onClick:()=>g(R),sx:{top:15,right:5},disabled:u==null?void 0:u({field:E,index:R,fields:x}),children:l})]})},E.id))]})},Hs=f.forwardRef(({value:e,onChange:t},n)=>{const{t:s}=j.useTranslation(),i=a=>l=>{t({...e,[a]:l})};return r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{variant:"dashed",label:s("chart.zooming.scroll.label"),labelPosition:"center"}),r.jsxs(o.Group,{children:[r.jsx(o.Box,{sx:{flexGrow:1},children:r.jsx(o.Switch,{label:s("chart.zooming.scroll.x_axis"),checked:e.x_axis_scroll,onChange:a=>i("x_axis_scroll")(a.currentTarget.checked)})}),r.jsx(o.Box,{sx:{flexGrow:1},children:r.jsx(o.Switch,{label:s("chart.zooming.scroll.y_axis"),checked:e.y_axis_scroll,onChange:a=>i("y_axis_scroll")(a.currentTarget.checked)})})]}),r.jsx(o.Divider,{variant:"dashed",label:s("chart.zooming.slider.label"),labelPosition:"center"}),r.jsxs(o.Group,{children:[r.jsx(o.Box,{sx:{flexGrow:1},children:r.jsx(o.Switch,{label:s("chart.zooming.slider.x_axis"),checked:e.x_axis_slider,onChange:a=>i("x_axis_slider")(a.currentTarget.checked)})}),r.jsx(o.Tooltip,{label:s("chart.zooming.slider.y_axis_disabled"),children:r.jsx(o.Box,{sx:{flexGrow:1},children:r.jsx(o.Switch,{label:s("chart.zooming.slider.y_axis"),disabled:!e.y_axis_slider,checked:e.y_axis_slider,onChange:a=>i("y_axis_slider")(a.currentTarget.checked)})})})]})]})}),zn=f.forwardRef(({label:e,value:t,onChange:n,sx:s={},disabled:i},a)=>{const{t:l,i18n:c}=j.useTranslation(),u=f.useMemo(()=>[{label:l("chart.orientation.horizontal"),value:"horizontal"},{label:l("chart.orientation.vertical"),value:"vertical"}],[c.language]);return r.jsx(o.Select,{ref:a,label:e??l("chart.orientation.label"),data:u,value:t,onChange:n,sx:s,disabled:i})}),Gw=({control:e,watch:t})=>{const{t:n}=j.useTranslation(),s=t("legend"),i=(a,l)=>{const c={...s,orient:a};a==="horizontal"?(c.top="0",c.left="auto",c.right="10",c.bottom="auto"):(c.top="10",c.left="auto",c.right="0",c.bottom="auto"),l(c)};return r.jsxs(o.Stack,{children:[r.jsx(o.Group,{grow:!0,noWrap:!0,mt:20,children:r.jsx(y.Controller,{name:"legend.show",control:e,render:({field:a})=>r.jsx(o.Switch,{label:n("chart.legend.show_legend"),sx:{flex:1},checked:a.value,onChange:l=>a.onChange(l.currentTarget.checked)})})}),r.jsx(o.Group,{children:r.jsx(y.Controller,{name:"legend",control:e,render:({field:a})=>r.jsx(zn,{sx:{flex:1},value:a.value.orient,onChange:l=>{i(l,a.onChange)},disabled:!s.show})})})]})};function Ww({control:e,index:t,variableOptions:n}){const{t:s}=j.useTranslation();return r.jsxs(o.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:i})=>r.jsx(o.TextInput,{label:s("common.name"),placeholder:s("chart.reference_line.name_placeholder"),required:!0,sx:{flex:1},...i})}),r.jsx(y.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:i})=>r.jsx(o.Select,{label:s("common.value"),required:!0,data:n,sx:{flex:1},...i})})]}),r.jsx(y.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:i})=>r.jsx(o.TextInput,{label:s("chart.content_template.label"),placeholder:s("chart.content_template.placeholder"),required:!0,sx:{flex:1},...i})})]})}function Rw({control:e,watch:t,variables:n}){const{t:s}=j.useTranslation(),i=()=>({name:"",template:"",variable_key:""}),a=f.useMemo(()=>n.map(c=>({label:c.name,value:c.name})),[n]),l=(c,u)=>{const d=c.name.trim();return d||u+1};return r.jsx(Se,{control:e,watch:t,name:"reference_lines",getItem:i,addButtonText:s("chart.reference_line.add"),deleteButtonText:s("chart.reference_line.delete"),renderTabName:l,children:({field:c,index:u})=>r.jsx(Ww,{control:e,index:u,variableOptions:a})})}const Qw=({control:e,index:t})=>{const{t:n}=j.useTranslation();return r.jsx(o.Stack,{children:r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:`tooltip.metrics.${t}.name`,control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("common.name"),required:!0,sx:{flex:1},...s})}),r.jsx(y.Controller,{name:`tooltip.metrics.${t}.data_key`,control:e,render:({field:s})=>r.jsx(U,{label:n("chart.data_field"),required:!0,sx:{flex:1},...s})})]})})},Uw=({control:e,watch:t})=>{const{t:n}=j.useTranslation(),s=()=>({id:Date.now().toString(),data_key:"",name:""}),i=(a,l)=>{const c=a.name.trim();return c||l+1};return r.jsxs(r.Fragment,{children:[r.jsxs(o.Group,{spacing:2,sx:{cursor:"default",userSelect:"none"},children:[r.jsx(S.IconInfoCircle,{size:14,color:"#888"}),r.jsx(o.Text,{size:14,color:"#888",children:n("chart.tooltip.additional_metrics.description")})]}),r.jsx(Se,{control:e,watch:t,name:"tooltip.metrics",getItem:s,addButtonText:n("chart.tooltip.additional_metrics.add"),deleteButtonText:n("chart.tooltip.additional_metrics.delete"),renderTabName:i,children:({field:a,index:l})=>r.jsx(Qw,{control:e,index:l})})]})};function Yw({control:e,watch:t}){return r.jsx(o.Stack,{children:r.jsx(Uw,{control:e,watch:t})})}const hn=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a}=j.useTranslation();return r.jsx(o.NumberInput,{ref:i,label:e??a("chart.rotate"),hideControls:!0,min:-90,max:90,rightSection:r.jsx(o.Text,{size:"xs",color:"dimmed",children:a("chart.degree")}),sx:s,styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},value:t,onChange:n})}),Kw=({control:e,watch:t})=>{const{t:n}=j.useTranslation();return t(["x_axis"]),r.jsxs(o.Stack,{children:[r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:"x_axis.name",control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("chart.x_axis.x_axis_name"),sx:{flex:1},...s})}),r.jsx(y.Controller,{name:"x_axis.data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("chart.x_axis.x_axis_data_field"),required:!0,sx:{flex:1},...s})})]}),r.jsx(o.Divider,{mb:-15,label:n("chart.axis.tick_label"),labelPosition:"center"}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:"x_axis.axisLabel.rotate",control:e,render:({field:s})=>r.jsx(hn,{sx:{width:"48%"},...s})}),r.jsx(y.Controller,{name:"x_axis.axisLabel.formatter",control:e,render:({field:s})=>r.jsx(qt,{...s})})]}),r.jsx(y.Controller,{name:"x_axis.axisLabel.overflow",control:e,render:({field:s})=>r.jsx($t,{...s})})]})},So={root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}},Xw=["123456789","1234","1234.56789","1.234","0.123456789","-0.123456789"];function Jw({format:e}){const{t}=j.useTranslation(),[n,{toggle:s}]=Me.useDisclosure(!1);return r.jsxs(o.Box,{children:[r.jsx(o.Button,{variant:"subtle",w:"100%",compact:!0,onClick:s,leftIcon:n?r.jsx(S.IconChevronUp,{size:14}):r.jsx(S.IconChevronDown,{size:14}),children:t(n?"numbro.format.preview.close":"numbro.format.preview.open")}),r.jsx(o.Collapse,{in:n,children:n&&r.jsxs(o.Table,{highlightOnHover:!0,sx:{tableLayout:"fixed"},children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:t("numbro.format.preview.input")}),r.jsx("th",{children:t("numbro.format.preview.output")})]})}),r.jsx("tbody",{children:Xw.map(i=>r.jsxs("tr",{children:[r.jsx("td",{children:i}),r.jsx("td",{children:r.jsx(Re,{children:ie(i,e)})})]},i))})]})})]})}function Zw({value:e,onChange:t},n){const{t:s}=j.useTranslation(),i=d=>{t({...e,output:d})},a=d=>{const p=d===0?!1:e.trimMantissa;t({...e,mantissa:d,trimMantissa:p})},l=d=>{t({...e,trimMantissa:d.currentTarget.checked})},c=d=>{t({...e,average:d.currentTarget.checked})},u=d=>{const p={...e,absolute:d.currentTarget.checked};t(p)};return r.jsxs(o.Stack,{ref:n,children:[r.jsxs(o.Group,{grow:!0,children:[r.jsx(o.Select,{label:s("numbro.format.label"),data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:i,sx:{flexGrow:1}}),r.jsx(o.Switch,{label:r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{children:s("numbro.format.absolute")}),r.jsx(o.Text,{size:12,color:"gray",children:s("numbro.format.absolute_description")})]}),checked:e.absolute,onChange:u,sx:{flexGrow:1},styles:So}),r.jsx(o.Switch,{label:r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{children:s("numbro.format.abbreviation")}),r.jsx(o.Text,{size:12,color:"gray",children:s("numbro.format.abbreviation_description")})]}),checked:e.average,onChange:c,disabled:e.output!=="number",sx:{flexGrow:1},styles:So})]}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(o.NumberInput,{label:s("numbro.format.mantissa"),defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:a}),r.jsx(o.Switch,{label:r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{children:s("numbro.format.trim_mantissa")}),r.jsx(o.Text,{size:12,color:"gray",children:s("numbro.format.trim_mantissa_description")})]}),checked:e.trimMantissa,onChange:l,disabled:e.mantissa===0,styles:So}),r.jsx(o.Box,{})]}),r.jsx(Jw,{format:e})]})}const Mt=f.forwardRef(Zw),Hw=({control:e,watch:t})=>{const{t:n}=j.useTranslation();return t(["y_axis"]),r.jsxs(r.Fragment,{children:[r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:"y_axis.name",control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("chart.y_axis.y_axis_name"),sx:{flex:1},...s})}),r.jsx(y.Controller,{name:"y_axis.data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("chart.y_axis.y_axis_data_field"),required:!0,sx:{flex:1},...s})})]}),r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{mt:10,mb:-15,variant:"dashed",label:n("chart.axis.section_title.label_format"),labelPosition:"center"}),r.jsx(y.Controller,{name:"y_axis.label_formatter",control:e,render:({field:s})=>r.jsx(Mt,{...s})})]})]})};function e0({context:e}){const{t}=j.useTranslation(),{value:n,set:s}=Q(e.instanceData,"config"),{variables:i}=e,a=f.useMemo(()=>v.defaults({},n,bo),[n]),{control:l,handleSubmit:c,watch:u,formState:d,reset:p}=y.useForm({defaultValues:a});return f.useEffect(()=>{p(a)},[a]),u(["x_axis","y_axis","reference_lines","color","dataZoom"]),r.jsx(o.Stack,{spacing:"xs",children:r.jsxs("form",{onSubmit:c(s),children:[r.jsx($e,{canSubmit:d.isDirty}),r.jsxs(o.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[r.jsxs(o.Tabs.List,{children:[r.jsx(o.Tabs.Tab,{value:"X Axis",children:t("chart.x_axis.label")}),r.jsx(o.Tabs.Tab,{value:"Y Axis",children:t("chart.y_axis.label")}),r.jsx(o.Tabs.Tab,{value:"Legend",children:t("chart.legend.label")}),r.jsx(o.Tabs.Tab,{value:"Tooltip",children:t("chart.tooltip.label")}),r.jsx(o.Tabs.Tab,{value:"Style",children:t("chart.style.label")}),r.jsx(o.Tabs.Tab,{value:"Reference Lines",children:t("chart.reference_line.labels")}),r.jsx(o.Tabs.Tab,{value:"Zooming",children:t("chart.zooming.label")})]}),r.jsx(o.Tabs.Panel,{value:"X Axis",children:r.jsx(Kw,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Y Axis",children:r.jsx(Hw,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Legend",children:r.jsx(Gw,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Tooltip",children:r.jsx(Yw,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Style",children:r.jsx(o.SimpleGrid,{cols:2,children:r.jsx(y.Controller,{name:"color",control:l,render:({field:h})=>r.jsx(rt,{label:t("chart.color.label"),...h})})})}),r.jsx(o.Tabs.Panel,{value:"Reference Lines",children:r.jsx(Rw,{variables:i,control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Zooming",children:r.jsx(y.Controller,{name:"dataZoom",control:l,render:({field:h})=>r.jsx(Hs,{...h})})})]})]})})}function t0(e){return v.omit(e,"variables")}function n0(e){const{label_formatter:t=We,...n}=e.y_axis;return{...e,y_axis:{...n,label_formatter:t}}}function r0(e){const t={rotate:0,formatter:tt()},{axisLabel:n=t,...s}=e.x_axis;return{...e,x_axis:{...s,axisLabel:n}}}function s0(e){const t={x_axis:{axisLabel:{overflow:{x_axis:{width:80,overflow:"truncate",ellipsis:"..."},tooltip:{width:200,overflow:"break",ellipsis:"..."}}}}};return v.defaultsDeep(t,e)}function i0(e){delete e.config;const{x_axis:t,tooltip:n}=e.x_axis.axisLabel.overflow,s={x_axis:{axisLabel:{overflow:{on_axis:t,in_tooltip:n}}}};return v.defaultsDeep(s,e)}function a0(e){const t={tooltip:{metrics:[]}};return v.defaultsDeep(t,e)}function o0(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const s=u=>u&&`${n}.${u}`,{x_axis:i,y_axis:a,tooltip:l,...c}=e;return{...c,x_axis:{...i,data_key:s(i.data_key)},y_axis:{...a,data_key:s(a.data_key)},tooltip:{...l,metrics:l.metrics.map(u=>({...u,data_key:s(u.data_key)}))}}}catch(n){throw console.error("[Migration failed]",n),n}}function l0(e){const t={legend:{show:!0,top:"0",right:"10",left:"auto",bottom:"auto",orient:"horizontal",type:"scroll"}};return v.defaultsDeep(t,e)}function c0(e){const{dataZoom:t,...n}=e;return{...n,dataZoom:t??Yp()}}class u0 extends Ie{constructor(){super(...arguments);q(this,"VERSION",9)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:s})=>{const{config:i}=n;return(i.variables||[]).forEach(l=>{s.variables.find(c=>c.name===l.name)||s.addVariable(l)}),{...n,version:2,config:t0(i)}}),this.version(3,n=>{const{config:s}=n;return{...n,version:3,config:n0(s)}}),this.version(4,n=>{const{config:s}=n;return{...n,version:4,config:r0(s)}}),this.version(5,n=>{const{config:s}=n;return{...n,version:5,config:s0(s)}}),this.version(6,n=>{const{config:s}=n;return{...n,version:6,config:i0(s)}}),this.version(7,n=>{const{config:s}=n;return{...n,version:7,config:a0(s)}}),this.version(8,(n,s)=>{const{config:i}=n;return{...n,version:8,config:o0(i,s)}}),this.version(9,n=>{const{config:s}=n;return{...n,version:9,config:l0(s)}}),this.version(10,n=>{const{config:s}=n;return{...n,version:10,config:c0(s)}})}}const d0={displayName:"viz.boxplot.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new u0,name:"boxplot",viewRender:Mw,configRender:e0,createConfig(){return{version:10,config:v.cloneDeep(bo)}},triggers:[Kp],translation:hj},ih={id:"builtin:button:click-button",displayName:"viz.button.click.label",nameRender:h0,configRender:p0,payload:[]};function p0(e){return r.jsx(r.Fragment,{})}function h0(e){const{t}=j.useTranslation();return r.jsx(o.Text,{children:t("viz.button.click.label")})}const ko={content:"Button",variant:"filled",color:"blue",size:"xs",compact:!1,horizontal_align:"left",vertical_align:"center"},f0={left:"flex-start",center:"center",right:"flex-end"},g0={top:"flex-start",center:"center",bottom:"flex-end"},m0=D.observer(({context:e,instance:t})=>{const n=_t({vizManager:e.vizManager,instance:t}),s=vt(n.triggerManager,ih.id),i=Te(),{value:a}=Q(e.instanceData,"config"),l=f.useMemo(()=>v.defaultsDeep({},a,ko),[a]),{content:c,horizontal_align:u,vertical_align:d,...p}=l,{width:h,height:g}=e.viewport,b=i.payloadForSQL,x=()=>{s.forEach(_=>{n.runInteraction(_.id,{})})};return r.jsx(o.Center,{sx:{width:h,height:g,justifyContent:f0[u],alignItems:g0[d]},children:r.jsx(o.Button,{...p,onClick:x,children:v.template(c)(b)})})}),x0=({value:e,onChange:t,label:n})=>{const s=o.useMantineTheme(),i=f.useCallback(l=>()=>t(l),[t]),a=l=>e===l;return r.jsxs(o.Stack,{spacing:2,children:[r.jsx(o.Text,{size:14,sx:{fontWeight:500},children:n}),r.jsx(o.Group,{position:"left",spacing:"xs",children:Object.keys(s.colors).map(l=>{const c=s.colors[l][6];return r.jsx(o.ColorSwatch,{color:c,onClick:i(l),radius:4,size:26,sx:{cursor:"pointer"},children:a(l)&&r.jsx(o.CheckIcon,{width:10,color:"white"})},l)})})]})},To=f.forwardRef(({label:e,value:t,onChange:n,sx:s,disabled:i},a)=>{const{t:l}=j.useTranslation(),c=f.useMemo(()=>o.MANTINE_SIZES.map(u=>({label:l(`style.size.${u}`),value:u})),[]);return r.jsx(o.Select,{ref:a,data:c,label:e,value:t,onChange:n,sx:s,disabled:!0})}),b0=[{label:"Filled",value:"filled"},{label:"Outline",value:"outline"},{label:"Light",value:"light"},{label:"White",value:"white"},{label:"Default",value:"default"},{label:"Subtle",value:"subtle"},{label:"Gradient",value:"gradient",disabled:!0}];function y0({context:e}){const{value:t,set:n}=Q(e.instanceData,"config"),s=f.useMemo(()=>v.defaultsDeep({},t,ko),[t]),i=s;f.useEffect(()=>{!v.isEqual(s,i)&&(console.log("config malformed, resetting to defaults",s,i),n(i))},[s,i]);const{control:a,handleSubmit:l,watch:c,formState:u,reset:d}=y.useForm({defaultValues:i});return f.useEffect(()=>{d(i)},[i]),c(["content","variant","color","size","compact","horizontal_align","vertical_align"]),r.jsxs("form",{onSubmit:l(n),children:[r.jsx($e,{canSubmit:u.isDirty}),r.jsxs(o.Stack,{children:[r.jsx(y.Controller,{control:a,name:"content",render:({field:p})=>r.jsx(o.TextInput,{label:"Content Template",description:"Filter values & context entries are supported",...p,required:!0})}),r.jsx(o.Divider,{mt:"xs",mb:0,label:"Styles",labelPosition:"center",variant:"dashed"}),r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(y.Controller,{control:a,name:"variant",render:({field:p})=>r.jsx(o.Select,{label:"Variant",data:b0,...p})}),r.jsx(y.Controller,{control:a,name:"color",render:({field:p})=>r.jsx(x0,{label:"Theme",...p})})]}),r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(y.Controller,{control:a,name:"size",render:({field:p})=>r.jsx(To,{label:"Size",...p})}),r.jsx(y.Controller,{control:a,name:"compact",render:({field:p})=>r.jsx(o.Checkbox,{label:"Compact",checked:p.value,onChange:h=>p.onChange(h.currentTarget.checked),mt:26})})]}),r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(y.Controller,{control:a,name:"horizontal_align",render:({field:p})=>r.jsx(Co,{...p})}),r.jsx(y.Controller,{control:a,name:"vertical_align",render:({field:p})=>r.jsx(nh,{...p})})]})]})]})}const v0=[{lang:"en",resources:{button:{viz_name:"Button",click:{label:"Click this button"}}}},{lang:"zh",resources:{button:{viz_name:"按钮",click:{label:"点击此按钮"}}}}];class _0 extends Ie{constructor(){super(...arguments);q(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>{const{horizontal_align:s="left",vertical_align:i="center",...a}=n.config;return{...n,version:2,config:{...a,horizontal_align:s,vertical_align:i}}})}}const j0={displayName:"viz.button.viz_name",displayGroup:"chart.groups.others",migrator:new _0,name:"button",viewRender:m0,configRender:y0,createConfig(){return{version:2,config:v.cloneDeep(ko)}},triggers:[ih],translation:v0},w0=f.forwardRef(({label:e,description:t,...n},s)=>r.jsx(o.Box,{...n,children:r.jsxs(o.Stack,{spacing:"0",ref:s,children:[r.jsx(o.Text,{size:"sm",children:e}),r.jsx(o.Text,{size:"xs",opacity:.65,children:t})]})})),C0=f.forwardRef(({value:e,onChange:t})=>{const{t:n,i18n:s}=j.useTranslation(),i=f.useMemo(()=>[{label:n("chart.series.line.area_style.origin.auto.label"),description:n("chart.series.line.area_style.origin.auto.description"),value:"auto"},{label:n("chart.series.line.area_style.origin.start.label"),description:n("chart.series.line.area_style.origin.start.description"),value:"start"},{label:n("chart.series.line.area_style.origin.end.label"),description:n("chart.series.line.area_style.origin.end.description"),value:"end"}],[s.language]);return r.jsx(o.Select,{label:n("chart.series.line.area_style.origin.label"),data:i,value:e,onChange:t,itemComponent:w0,size:"xs"})}),ah=f.forwardRef(({value:e,onChange:t,label:n,placeholder:s})=>r.jsx(o.ColorInput,{label:n,placeholder:s,value:e,onChange:t,size:"xs",withinPortal:!0,dropdownZIndex:340,rightSection:e?r.jsx(o.CloseButton,{onClick:()=>{t("")}}):null})),S0=f.forwardRef(({value:e,onChange:t},n)=>{const{t:s}=j.useTranslation(),i=a=>l=>{const c=v.cloneDeep(e);v.set(c,a,l),t(c)};return r.jsxs(o.Stack,{ref:n,children:[r.jsx(o.Divider,{mt:10,mb:-10,variant:"dashed",label:r.jsxs(o.Group,{spacing:6,children:[r.jsx(S.IconChartAreaLineFilled,{size:14,style:{color:"#999"}}),s("chart.series.line.area_style.label")]}),labelPosition:"center"}),r.jsx(o.Switch,{label:s("chart.series.line.area_style.enabled"),checked:e.enabled,onChange:a=>i("enabled")(a.currentTarget.checked)}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(ah,{label:s("chart.series.line.area_style.color"),placeholder:s("chart.series.line.area_style.use_series_color"),value:e.color,onChange:i("color")}),r.jsx(o.NumberInput,{size:"xs",label:s("chart.series.line.area_style.opacity"),value:e.opacity,onChange:i("opacity"),step:.1,precision:1,min:0,max:1})]}),r.jsx(C0,{value:e.origin,onChange:i("origin")}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(ah,{label:s("chart.series.line.area_style.shadow_color"),value:e.shadowColor,onChange:i("shadowColor")}),r.jsx(o.NumberInput,{size:"xs",label:s("chart.series.line.area_style.shadow_blur"),value:e.shadowBlur,onChange:i("shadowBlur")})]}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(o.NumberInput,{size:"xs",label:s("chart.series.line.area_style.shadow_offset_x"),value:e.shadowOffsetX,onChange:i("shadowOffsetX")}),r.jsx(o.NumberInput,{size:"xs",label:s("chart.series.line.area_style.shadow_offset_y"),value:e.shadowOffsetY,onChange:i("shadowOffsetY")})]})]})});function oh(){return{enabled:!1,color:"",origin:"auto",shadowBlur:0,shadowColor:"",shadowOffsetX:0,shadowOffsetY:0,opacity:.7}}function k0(e){const t=v.cloneDeep(v.omit(e,"variables"));return t.stats=v.omit(t.stats,"variables"),t}function T0(e){const{rotate:t,formatter:n=tt()}=e.x_axis.axisLabel;return{...e,x_axis:{...e.x_axis,axisLabel:{rotate:t,formatter:n}}}}function I0(e){const{dataZoom:t=Fn,...n}=e;return{...n,dataZoom:t}}function D0(e){const t={x_axis:{axisLabel:{overflow:{x_axis:{width:80,overflow:"truncate",ellipsis:"..."},tooltip:{width:200,overflow:"break",ellipsis:"..."}}}}};return v.defaultsDeep(t,e)}function M0(e){const t=e.reference_lines.map(n=>{const{lineStyle:s={type:"dashed",width:1,color:Et.random().css()},show_in_legend:i=!1}=n;return{...n,lineStyle:s,show_in_legend:i}});return{...e,reference_lines:t}}function z0(e){const t=e.reference_lines.map(n=>{const{yAxisIndex:s=0}=n;return{...n,yAxisIndex:s}});return{...e,reference_lines:t}}function E0(e){const t=e.series.map(n=>{const{aggregation_on_group:s=Yn}=n;return{...n,aggregation_on_group:s}});return{...e,series:t}}function A0(e){const t=e.series.map(n=>{const{aggregation_on_value:s=Yn}=n;return{...n,aggregation_on_value:s}});return{...e,series:t}}function P0(e){delete e.config;const{x_axis:t,tooltip:n}=e.x_axis.axisLabel.overflow,s={x_axis:{axisLabel:{overflow:{on_axis:t,in_tooltip:n}}}};return v.defaultsDeep(s,e)}function O0(e){const{series:t,...n}=e;return{...n,series:t.map(s=>{const{barMinWidth:i,barWidth:a,barMaxWidth:l}=s;return i?{...s,barMinWidth:i,barWidth:"",barMaxWidth:l??a}:{...s,barMinWidth:"",barWidth:a,barMaxWidth:""}})}}function L0(e){const{y_axes:t,...n}=e;return{...n,y_axes:t.map(s=>{const{min:i="",max:a=""}=s;return{...s,min:i,max:a}})}}function B0(e){const{y_axes:t,...n}=e;return{...n,y_axes:t.map(s=>{const{nameAlignment:i="left"}=s;return{...s,nameAlignment:i}})}}function V0(e){const{y_axes:t,...n}=e;return{...n,y_axes:t.map(s=>{const{show:i=!0}=s;return{...s,show:i}})}}function N0(e){const{regressions:t,...n}=e;return{...n,regressions:t.map(s=>{const{group_by_key:i=""}=s;return{...s,group_by_key:i}})}}function q0(e){const{series:t,y_axes:n,...s}=e;return{...s,series:t.map(i=>{const{hide_in_legend:a=!1,aggregation_on_value:l=Yn}=i;return{...i,hide_in_legend:a,aggregation_on_value:l}}),y_axes:n.map(i=>{const{min:a="",max:l="",show:c=!0}=i;return{...i,min:a,max:l,show:c}})}}function $0(e){const{type:t="category",...n}=e.x_axis;return{...e,x_axis:{...n,type:t}}}function F0(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const s=u=>u&&`${n}.${u}`,{x_axis_data_key:i,series:a,regressions:l,...c}=e;return{...c,x_axis_data_key:s(i),series:a.map(u=>({...u,y_axis_data_key:s(u.y_axis_data_key),group_by_key:s(u.group_by_key)})),regressions:l.map(u=>({...u,y_axis_data_key:s(u.y_axis_data_key),group_by_key:s(u.group_by_key)}))}}catch(n){throw console.error("[Migration failed]",n),n}}function G0(e){const{tooltip:t={metrics:[]},...n}=e;return{...e,tooltip:t}}function W0(e,t){const{stats:n,...s}=e,i=dr(n.templates.top,t),a=dr(n.templates.bottom,t);return{stats:{top:i??"",bottom:a??""},...s}}function R0(e){const{series:t,...n}=e,s=t.map(i=>{const{areaStyle:a=oh(),...l}=i;return{...l,areaStyle:a}});return{...n,series:s}}class Q0 extends Ie{constructor(){super(...arguments);q(this,"VERSION",21)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:s})=>{const{config:i}=n;return(i.variables||[]).forEach(c=>{s.variables.find(u=>u.name===c.name)||s.addVariable(c)}),(v.get(i,"stats.variables")||[]).forEach(c=>{s.variables.find(u=>u.name===c.name)||s.addVariable(c)}),{...n,version:2,config:k0(i)}}),this.version(3,n=>({...n,version:3,config:T0(n.config)})),this.version(4,n=>({...n,version:4,config:I0(n.config)})),this.version(5,n=>({...n,version:5,config:D0(n.config)})),this.version(6,n=>({...n,version:6,config:M0(n.config)})),this.version(7,n=>({...n,version:7,config:z0(n.config)})),this.version(8,n=>({...n,version:8,config:E0(n.config)})),this.version(9,n=>({...n,version:9,config:A0(n.config)})),this.version(10,n=>({...n,version:10,config:P0(n.config)})),this.version(11,n=>({...n,version:11,config:O0(n.config)})),this.version(12,n=>({...n,version:12,config:L0(n.config)})),this.version(13,n=>({...n,version:13,config:B0(n.config)})),this.version(14,n=>({...n,version:14,config:V0(n.config)})),this.version(15,n=>({...n,version:15,config:N0(n.config)})),this.version(16,n=>({...n,version:16,config:q0(n.config)})),this.version(17,n=>({...n,version:17,config:$0(n.config)})),this.version(18,(n,s)=>({...n,version:18,config:F0(n.config,s)})),this.version(19,n=>({...n,version:19,config:G0(n.config)})),this.version(20,(n,s)=>({...n,version:20,config:W0(n.config,s.panelModel)})),this.version(21,(n,s)=>({...n,version:21,config:R0(n.config)}))}}const U0=[{lang:"en",resources:{cartesian_chart:{viz_name:"Cartesian Chart",series:{aggregation:{label:"Aggregation on Value"}},click_series:{label:"Click bar, line or scatter"}}}},{lang:"zh",resources:{cartesian_chart:{viz_name:"复合图",series:{aggregation:{label:"聚合数据"}},click_series:{label:"点击柱、线或散点"}}}}],Io={id:"builtin:echarts:click-echart:series",displayName:"viz.cartesian_chart.click_series.label",nameRender:K0,configRender:Y0,payload:[{name:"seriesType",description:"'line' | 'scatter' | 'bar'",valueType:"string"},{name:"componentType",description:"'series'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"String-typed number, or series' actual value",valueType:"string"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function Y0(e){return r.jsx(r.Fragment,{})}function K0(e){const{t}=j.useTranslation();return r.jsx(o.Text,{children:t("viz.cartesian_chart.click_series.label")})}const lh={regressions:[],series:[],stats:{bottom:"",top:""},x_axis:{type:"category",axisLabel:{rotate:0,formatter:tt(),overflow:ht()}},tooltip:{metrics:[]},x_axis_data_key:"",x_axis_name:"",y_axes:[{min:"",max:"",name:"Y Axis",show:!0,position:"left",nameAlignment:"center",label_formatter:We}],reference_lines:[],reference_areas:[],dataZoom:Fn},ei=D.observer(({value:e,context:t,onHeightChange:n})=>{var h;const{ref:s}=Me.useElementSize(),i=Te(),{panel:a}=nt(),{variables:l,data:c}=t,u=f.useMemo(()=>Ys(e,l,i.payloadForViz,c),[e,l,c]),d=((h=s.current)==null?void 0:h.textContent)==="";f.useEffect(()=>{if(!n||!s.current)return;const g=d?0:s.current.offsetHeight;n(g)},[d,s.current]);const p=f.useMemo(()=>d?"none":"block",[d]);return r.jsx(o.Box,{sx:{display:p},children:r.jsx(ur,{ref:s,value:u,styles:{root:{border:"none",maxWidth:"100%","&.mantine-RichTextEditor-root":{overflow:"auto !important"}},content:{"&.mantine-RichTextEditor-content .ProseMirror":{padding:0},"&.mantine-RichTextEditor-content .ProseMirror > p":{fontSize:"12px",lineHeight:"20px"}}},dashboardState:i.dashboardState,variableAggValueMap:a.variableAggValueMap})})});function X0(e){const t=e.y_axes.some(i=>!!i.name);let n=15;t&&(n+=20),e.dataZoom.x_axis_slider&&(n+=20);let s=5;return e.x_axis_name&&(s+=15),e.series.some(i=>!i.hide_in_legend)&&(s+=20),{top:n,right:15,bottom:s,left:20,containLabel:!0}}function J0(e){return e!=="line"?{}:{itemStyle:{opacity:0}}}function Z0(e){switch(e){case"line":return;case"bar":return"roundRect";case"scatter":return"circle"}}function H0(e){const t={show:!0,bottom:0,left:"center",type:"scroll"};return t.data=e.filter(n=>!n.hide_in_legend).map(({name:n,type:s})=>({name:n,icon:Z0(s),...J0(s)})),t}function ti(e,t){switch(e.config.method){case"linear":return[...yn.regressionLinear()(t)];case"exponential":return[...yn.regressionExp()(t)];case"logistic":return[...yn.regressionLog()(t)];case"polynomial":return[...yn.regressionPoly().order(e.config.order)(t)];default:return[]}}function eC(e,t,n,s){const{transform:i,plot:a}=e,l={...a,name:t,data:ti(i,s),showSymbol:!1,tooltip:{show:!1},smooth:!1,custom:{}};return n&&(l.custom={type:"regression-line",targetSeries:n}),l}function tC({regressions:e=[],x_axis_data_key:t},n){const s=[];if(Object.keys(n).length===0)return s;function i(a,l,c,u){const d=eC(a,l,c,u);s.push(d)}return e.forEach(a=>{const{name:l,group_by_key:c}=a;if(!c||c===t){const h=Ot(n,a.y_axis_data_key).map((g,b)=>[b,Number(g)]);i(a,l,"",h);return}const{columnKey:u}=L(a.y_axis_data_key),d=v.groupBy(cs(n,a.y_axis_data_key),c);Object.entries(d).forEach(([p,h])=>{const g=h.map((x,_)=>[_,Number(x[u])]);i(a,p,p,g)})}),s}function nC(e,t){return e.map(n=>({name:"",type:"line",hide_in_legend:!0,data:[],markArea:{itemStyle:{color:n.color},data:[[{yAxis:t[n.y_keys.upper]},{yAxis:t[n.y_keys.lower]}]],silent:!0}}))}function rC(e,t,n,s){return t?s==="value"?[[n[0],e]]:[e]:[]}function sC(e,t,n,s,i,a){return e.map(l=>{const c=n[l.variable_key],u=l.orientation==="horizontal",d=u?"yAxis":"xAxis",p=u?"insideEndTop":"end",h=rC(c,u,i,a);return{name:l.name,type:"scatter",hide_in_legend:!l.show_in_legend,xAxisId:"main-x-axis",yAxisIndex:l.yAxisIndex,data:h,symbol:"none",silent:!0,tooltip:{show:!1},markLine:{data:[{name:l.name,[d]:c}],silent:!0,symbol:["none","none"],lineStyle:l.lineStyle,label:{formatter:function(){return l.template?Jr(l.template,t,s):""},position:p}}}})}function Do(e,t,n){const s=Ot(e,t),i=Ot(e,n);return v.zip(s,i)}function iC(e,t,n,s){const i=Do(t,n,s);return v.unionBy(i,e,0)}function aC({dataTemplate:e,data:t,x_axis_data_key:n,y_axis_data_key:s,valueTypedXAxis:i}){return i?iC(e,t,n,s):Ot(t,s)}function oC({dataTemplate:e,data:t,aggregation_on_value:n,x_axis_data_key:s,y_axis_data_key:i,valueTypedXAxis:a}){if(!n||n.type==="none")return aC({dataTemplate:e,data:t,x_axis_data_key:s,y_axis_data_key:i,valueTypedXAxis:a});const l=Do(t,s,i),c=v.groupBy(l,"0");return e.map(([d])=>{const h=c[d].map(b=>b[1]),g=Ai(h,n);return[d,g]})}function lC({group_by_key:e,data:t,x_axis_data_key:n,y_axis_data_key:s}){const{queryID:i,columnKey:a}=L(e),l=v.groupBy(t[i],a);return Object.entries(l).forEach(([c,u])=>{l[c]=Do({[i]:u},n,s)}),l}function cC({type:e,...t},n,s,i){if(!e)return 10;if(e==="static"){const{size:d}=t;return d}const{func_content:a}=t,{queryID:l,columnKey:c}=L(s),u=v.keyBy(cs(n,l),c);return(d,p)=>{let h;p.name?h=u[p.name]:h=n[p.dataIndex];try{return new Function(`return ${a}`)()({rowData:h,params:p,variables:i},{lodash:v,interpolate:xn.interpolate})}catch(g){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${g.message}`),10}}}function uC({x_axis_data_key:e,x_axis:t},{y_axis_data_key:n,yAxisIndex:s,label_position:i,name:a,group_by_key:l,aggregation_on_value:c,stack:u,color:d,display_name_on_line:p,symbolSize:h,hide_in_legend:g,areaStyle:b,...x},_,T,C,I){const M=t.type!=="category",z={label:{show:!!i,position:i,formatter:I[s??"default"]},name:a,xAxisId:"main-x-axis",yAxisIndex:s,stack:u,color:d,symbolSize:cC(h,T,e,C),hide_in_legend:g,labelLayout:{hideOverlap:!0},...x};if(x.type==="line"&&(z.lineStyle={width:x.lineStyle.width,shadowColor:"rgba(255,255,255,1)",shadowBlur:0,shadowOffsetX:0,shadowOffsetY:v.clamp(x.lineStyle.width,1,3)},b.enabled)){z.lineStyle.shadowColor="transparent";const{enabled:R,...Z}=b;z.areaStyle={...Z,color:Z.color||d}}if(p&&(z.endLabel={show:!0,formatter:a,offset:[-12,12],align:"right"}),!l||l===e)return z.data=oC({dataTemplate:_,data:T,aggregation_on_value:c,x_axis_data_key:e,y_axis_data_key:n,valueTypedXAxis:M}),z;const E=lC({group_by_key:l,data:T,x_axis_data_key:e,y_axis_data_key:n});return Object.entries(E).map(([R,Z])=>{const oe=v.cloneDeep(z);return oe.name=R,oe.color=void 0,"areaStyle"in oe&&(oe.areaStyle.color=void 0),oe.data=Z,oe})}function dC(e,t,n,s,i,a){const l=t.map(u=>[u,0]);return e.series.map(u=>uC(e,u,l,n,a,s)).flat().concat(sC(e.reference_lines,i,a,n,t,e.x_axis.type)).concat(nC(e.reference_areas,a))}function pC(e,t){const n=e.find(a=>a.axisDim==="x"&&a.axisId==="main-x-axis");if(!n)return"";const{axisValue:s,axisIndex:i}=n;return pt(t.x_axis.axisLabel.formatter)(s,i)}const hC=e=>ie(e,{output:"number",trimMantissa:!0,mantissa:2,absolute:!1});function fC(e,t,n,s){const i=n.reduce((a,{yAxisIndex:l,name:c})=>(a[c]=l,a),{});return xe.getTooltip({trigger:"axis",formatter:function(a){const l=Array.isArray(a)?a:[a];if(l.length===0)return"";const c=l.map(({seriesName:h,marker:g,value:b})=>{if(Array.isArray(b)&&b.length===2&&(b=b[1]),!h)return b;const x=i[h],_=s[x]??s.default;return`
|
|
143
|
+
`}const Sw=(e,t)=>n=>{const{seriesName:s,value:i}=n;switch(s){case t.Box:return _w(e,i);case t.Outlier:return ww(e,i);case t.Scatter:return Cw(e,i)}};function kw({config:e,seriesNames:t}){return xe.getTooltip({trigger:"item",formatter:Sw(e,t)})}function Zs(e,t){t||(t="none");const n=[];return e.x_axis_scroll&&n.push({type:"inside",xAxisIndex:[0],filterMode:t,minSpan:1}),e.y_axis_scroll&&n.push({type:"inside",yAxisIndex:[0],filterMode:t,minSpan:1}),e.x_axis_slider&&n.push({type:"slider",xAxisIndex:[0],filterMode:t,bottom:"auto",top:0,height:15,moveHandleSize:0,showDataShadow:!1,minSpan:1}),n}function Tw({min:e,max:t}){if(e<=110)return Math.min(0,e);if(e<=200)return 100;const n=Qn.floor(Qn.log10(e)),s=Math.pow(10,n),i=Math.pow(10,n-1);return e/s<=2?v.round(e,-1*(n-1))-i:v.round(e,-1*n)-s}function Iw(e){return{Box:e("viz.boxplot.box"),Scatter:e("viz.boxplot.scatter"),Outlier:e("viz.boxplot.outlier")}}function Dw({config:e,data:t,variables:n,t:s}){const{x_axis:i,y_axis:a,reference_lines:l}=e,c=uw(e,t),u=Dt(i.axisLabel.overflow.on_axis),d=Iw(s),p=vw(e,c).map(h=>({...h,name:v.get(d,h.name,h.name)}));return{dataZoom:Zs(e.dataZoom,"filter"),grid:dw(e),dataset:c,legend:pw({config:e,seriesNames:d}),tooltip:kw({config:e,seriesNames:d}),xAxis:[xe.getXAxis({type:"category",name:i.name,nameGap:25,nameLocation:"center",nameTextStyle:{align:"center"},axisLabel:{...i.axisLabel,...u,formatter:pt(i.axisLabel.formatter)}})],yAxis:[xe.getYAxis({name:a.name,minInterval:1,axisLabel:{formatter:function(h){return ie(h,a.label_formatter)}},min:Tw})],series:[...p,...hw(l,n,t)]}}function Mw({context:e,instance:t}){const{t:n}=j.useTranslation(),{value:s}=Q(e.instanceData,"config"),{variables:i}=e,a=e.data,{width:l,height:c}=e.viewport,u=v.defaults({},s,bo),d=_t({vizManager:e.vizManager,instance:t}),p=vt(d.triggerManager,Kp.id),h=Gn(a,u.x_axis.data_key),g=f.useCallback(_=>{const T=v.get(h,_.name,{error:"rowData is not found"});p.forEach(C=>{d.runInteraction(C.id,{..._,rowData:T})})},[h,p,d]),b=f.useMemo(()=>({click:g}),[g]),x=f.useMemo(()=>Dw({config:u,data:a,variables:i,t:n}),[u,a,i,n]);return!s||!l||!c?null:r.jsx(dt,{width:l,height:c,children:r.jsx(Ke,{echarts:Ye,option:x,style:Zr(l,c),onEvents:b,notMerge:!0,theme:"merico-light"})})}function $e({canSubmit:e,buttonRef:t}){const{t:n}=j.useTranslation();return r.jsxs(o.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r.jsx(o.Text,{children:n("viz.viz_config_banner")}),r.jsx(o.ActionIcon,{ref:t,type:"submit",mr:5,variant:"filled",color:"blue",disabled:!e,children:r.jsx(S.IconDeviceFloppy,{size:20})})]})}const Co=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("common.align.horizontal.left"),value:"left"},{label:a("common.align.horizontal.center"),value:"center"},{label:a("common.align.horizontal.right"),value:"right"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("common.align.horizontal.label"),data:c,value:t,onChange:n,sx:s})}),nh=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("common.align.vertical.top"),value:"top"},{label:a("common.align.vertical.center"),value:"center"},{label:a("common.align.vertical.bottom"),value:"bottom"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("common.align.vertical.label"),data:c,value:t,onChange:n,sx:s})}),rh=o.createStyles(()=>({palette:{display:"flex",flexFlow:"row nowrap"},paletteItem:{".palette-value":{height:24,overflow:"visible",width:36},".palette-item":{width:"36px",height:36*.618,cursor:"pointer",transition:"transform 100ms ease-in-out","&:hover":{boxShadow:"0 0 0 2px var(--shadow-color)",borderRadius:2,transform:"scale(1.2)"}}}})),zw=[{from:0,to:0},{from:100,to:100}];class Ew{constructor(){q(this,"steps",new Map);q(this,"interpolation");q(this,"onChange");re.makeAutoObservable(this,{steps:re.observable},{deep:!1}),re.reaction(()=>re.toJS(this.steps),()=>{this.notifyStepChange()})}setSteps(t){for(const n of t)this.steps.set(n.to,n.from)}notifyStepChange(){var t;(t=this.onChange)==null||t.call(this,Array.from(this.steps.entries()).map(([n,s])=>({to:n,from:s})).sort((n,s)=>n.to-s.to||n.from-s.from))}fromProps(t){t.steps.length<2?this.setSteps(zw):this.setSteps(t.steps),this.interpolation=t.interpolation,this.onChange=t.onChange}changeStep(t,n){t==null?this.steps.delete(n):this.steps.set(n,t)}getStepFromValue(t){return this.steps.get(t)}}function sh(e){if(typeof e=="number")return String(e)}function Aw(e){const{t}=j.useTranslation(),{onChange:n,color:s,index:i,value:a}=e,{classes:l}=rh(),[c,u]=f.useState(sh(a)),[d,{setTrue:p,setFalse:h}]=Y.useBoolean(!1),g=i%2===1,b=g&&a!=null,x=!g&&a!=null,_=`map ${a} to color ${i}`,T=()=>{u(sh(a)),h()},C=()=>{h(),n==null||n(Number(c))},I=()=>{h(),n==null||n(null)},M=ie(a??null,{output:"number",mantissa:10,trimMantissa:!0,average:!0,absolute:!1}),z=!c||Number.isNaN(Number(c));return r.jsxs("div",{"data-testid":`palette-item-${i}`,className:l.paletteItem,children:[r.jsx(o.Text,{title:_,style:{opacity:b?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:M}),r.jsxs(o.Popover,{width:240,trapFocus:!0,opened:d,onClose:h,zIndex:340,withinPortal:!0,children:[r.jsx(o.Popover.Target,{children:r.jsx("div",{"data-testid":"palette-item-target",className:"palette-item",onClick:p,style:{"--shadow-color":Et(s).alpha(.5).hex(),backgroundColor:s}})}),r.jsxs(o.Popover.Dropdown,{children:[r.jsx(o.Tooltip,{withinPortal:!0,zIndex:340,label:t("common.actions.close"),children:r.jsx(o.CloseButton,{"data-testid":"palette-item-cancel",size:"sm",color:"gray",onClick:T,style:{position:"absolute",top:"0.5em",right:"0.8em"}})}),r.jsxs(o.Stack,{children:[r.jsx(o.TextInput,{size:"xs",label:t("style.color.interpolation.palette.mapping.value_input_label"),value:c,onChange:E=>{const R=E.currentTarget.value;u(R)},error:c&&z}),r.jsxs(o.Group,{position:"apart",children:[r.jsx(o.Button,{variant:"light",color:"red",size:"xs",onClick:I,leftIcon:r.jsx(S.IconTrash,{size:16}),children:t("common.actions.delete")}),r.jsx(o.Button,{color:"green",leftIcon:r.jsx(S.IconDeviceFloppy,{size:16}),"data-testid":"palette-item-ok",size:"xs",onClick:C,disabled:z,children:t("common.actions.save")})]})]})]})]}),r.jsx(o.Text,{title:_,style:{opacity:x?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:M})]})}const Pw=D.observer(({model:e})=>{const{classes:t}=rh(),n=v.range(0,13,1).map(s=>100/12*s).map(s=>[e.interpolation.getColor(s),s]);return r.jsx("div",{className:t.palette,children:n.map(([s,i],a)=>r.jsx(Aw,{index:a,color:s,value:e.getStepFromValue(i),onChange:l=>e.changeStep(l,i)},s))})}),Ow=D.observer(function(t){const n=Y.useCreation(()=>new Ew,[]);return f.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:r.jsx(Pw,{model:n})}),Lw=e=>{const{t,i18n:n}=j.useTranslation(),{value:s,onChange:i,colorManager:a}=e,l=a.getColorInterpolations(),[c,u]=f.useState(s),d=a.decodeInterpolation(c.interpolation)||l[0],[p,{setTrue:h,setFalse:g}]=Y.useBoolean(),b=f.useMemo(()=>l.map(I=>({label:t(I.displayName),value:a.encodeColor(I),group:t(`style.color.interpolation.palette.category.${I.category}`)})),[n.language]);function x(I){I&&u(M=>({...M,interpolation:I}))}const _=()=>{g(),i==null||i(re.toJS(c))};function T(I){u(M=>({...M,steps:I}))}const C=()=>{g(),u(s)};return r.jsxs(r.Fragment,{children:[r.jsx(o.Button,{variant:"outline",onClick:h,children:t(d==null?void 0:d.displayName)}),r.jsx(o.Modal,{size:508,title:t("style.color.interpolation.setup"),opened:p,onClose:g,zIndex:320,children:p&&r.jsxs(o.Stack,{"data-testid":"color-interpolation-modal",children:[r.jsx(o.Select,{label:t("style.color.interpolation.palette.label"),value:c.interpolation,data:b,onChange:x,withinPortal:!0,zIndex:340,maxDropdownHeight:500}),r.jsx(Ow,{steps:c.steps,interpolation:d,onChange:T}),r.jsxs(o.Group,{position:"apart",children:[r.jsx(o.Button,{onClick:C,variant:"subtle",children:t("common.actions.cancel")}),r.jsx(o.Button,{color:"green",leftIcon:r.jsx(S.IconDeviceFloppy,{size:16}),onClick:_,children:t("common.actions.save")})]})]})})]})},Bw=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("style.color.type.static"),value:"static"},{label:a("style.color.type.interpolation"),value:"interpolation"},{label:a("style.color.type.none"),value:"none"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("style.color.type.label"),data:c,value:t,onChange:n,sx:s})}),Vw=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("style.flex.justify_content.left"),value:"left"},{label:a("style.flex.justify_content.center"),value:"center"},{label:a("style.flex.justify_content.right"),value:"right"},{label:a("style.flex.justify_content.space_between"),value:"space-between"},{label:a("style.flex.justify_content.space_around"),value:"space-around"},{label:a("style.flex.justify_content.space_evenly"),value:"space-evenly"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("style.flex.justify_content.label"),data:c,value:t,onChange:n,sx:s})}),Nw=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a,i18n:l}=j.useTranslation(),c=f.useMemo(()=>[{label:a("style.flex.align_items.start"),value:"start"},{label:a("style.flex.align_items.center"),value:"center"},{label:a("style.flex.align_items.end"),value:"end"},{label:a("style.flex.align_items.stretch"),value:"stretch"}],[l.language]);return r.jsx(o.Select,{ref:i,label:e??a("style.flex.align_items.label"),data:c,value:t,onChange:n,sx:s})}),qw=({value:e,index:t,children:n})=>{const[s,{setTrue:i,setFalse:a}]=Y.useBoolean(!1),{ref:l,handleRef:c}=Tp({id:e,index:t});return r.jsx(o.Tabs.Tab,{ref:l,value:e,icon:r.jsx(S.IconGripHorizontal,{size:14,color:s||t===0?"rgb(34, 139, 230)":"transparent"}),onMouseEnter:i,onMouseLeave:a,children:n})},$w=({fieldArray:e,add:t,addButtonText:n,renderTabName:s,controlledFields:i})=>{const a=l=>{const{source:c,target:u}=l.operation,d=i.findIndex(h=>h.id===c.id),p=u.index;e.move(d,p)};return r.jsxs(o.Tabs.List,{children:[r.jsx(as.DragDropProvider,{onDragEnd:a,children:i.map((l,c)=>r.jsx(qw,{value:l.id,index:c,children:s(l,c)},l.id))}),r.jsx(o.Tabs.Tab,{onClick:t,value:"add",children:r.jsx(o.Tooltip,{label:n,children:r.jsx(o.Center,{children:r.jsx(S.IconPlus,{size:18,color:"#228be6"})})})})]})},Fw={tab:{paddingTop:"4px",paddingBottom:"4px"},panel:{padding:"0px"}},Se=({control:e,watch:t,name:n,getItem:s,children:i,addButtonText:a,deleteButtonText:l,renderTabName:c,deleteDisalbed:u})=>{var z;const d=y.useFieldArray({control:e,name:n}),{fields:p,append:h,remove:g}=d,b=t(n),x=p.map((E,R)=>({...E,...b[R]})),_=((z=v.last(x))==null?void 0:z.id)??null,[T,C]=f.useState(_),I=E=>{E!=="add"&&C(E)};f.useEffect(()=>{C(E=>_===E?E:_)},[_]);const M=()=>{const E=s();d.append(E),C(E.id)};return r.jsxs(o.Tabs,{value:T,onTabChange:I,styles:Fw,children:[r.jsx($w,{fieldArray:d,add:M,addButtonText:a,renderTabName:c,controlledFields:x}),x.map((E,R)=>r.jsx(o.Tabs.Panel,{value:E.id,children:r.jsxs(o.Stack,{children:[i({field:E,index:R}),r.jsx(o.Divider,{mb:-10,mt:10,variant:"dashed"}),r.jsx(o.Button,{leftIcon:r.jsx(S.IconTrash,{size:16}),color:"red",variant:"light",onClick:()=>g(R),sx:{top:15,right:5},disabled:u==null?void 0:u({field:E,index:R,fields:x}),children:l})]})},E.id))]})},Hs=f.forwardRef(({value:e,onChange:t},n)=>{const{t:s}=j.useTranslation(),i=a=>l=>{t({...e,[a]:l})};return r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{variant:"dashed",label:s("chart.zooming.scroll.label"),labelPosition:"center"}),r.jsxs(o.Group,{children:[r.jsx(o.Box,{sx:{flexGrow:1},children:r.jsx(o.Switch,{label:s("chart.zooming.scroll.x_axis"),checked:e.x_axis_scroll,onChange:a=>i("x_axis_scroll")(a.currentTarget.checked)})}),r.jsx(o.Box,{sx:{flexGrow:1},children:r.jsx(o.Switch,{label:s("chart.zooming.scroll.y_axis"),checked:e.y_axis_scroll,onChange:a=>i("y_axis_scroll")(a.currentTarget.checked)})})]}),r.jsx(o.Divider,{variant:"dashed",label:s("chart.zooming.slider.label"),labelPosition:"center"}),r.jsxs(o.Group,{children:[r.jsx(o.Box,{sx:{flexGrow:1},children:r.jsx(o.Switch,{label:s("chart.zooming.slider.x_axis"),checked:e.x_axis_slider,onChange:a=>i("x_axis_slider")(a.currentTarget.checked)})}),r.jsx(o.Tooltip,{label:s("chart.zooming.slider.y_axis_disabled"),children:r.jsx(o.Box,{sx:{flexGrow:1},children:r.jsx(o.Switch,{label:s("chart.zooming.slider.y_axis"),disabled:!e.y_axis_slider,checked:e.y_axis_slider,onChange:a=>i("y_axis_slider")(a.currentTarget.checked)})})})]})]})}),zn=f.forwardRef(({label:e,value:t,onChange:n,sx:s={},disabled:i},a)=>{const{t:l,i18n:c}=j.useTranslation(),u=f.useMemo(()=>[{label:l("chart.orientation.horizontal"),value:"horizontal"},{label:l("chart.orientation.vertical"),value:"vertical"}],[c.language]);return r.jsx(o.Select,{ref:a,label:e??l("chart.orientation.label"),data:u,value:t,onChange:n,sx:s,disabled:i})}),Gw=({control:e,watch:t})=>{const{t:n}=j.useTranslation(),s=t("legend"),i=(a,l)=>{const c={...s,orient:a};a==="horizontal"?(c.top="0",c.left="auto",c.right="10",c.bottom="auto"):(c.top="10",c.left="auto",c.right="0",c.bottom="auto"),l(c)};return r.jsxs(o.Stack,{children:[r.jsx(o.Group,{grow:!0,noWrap:!0,mt:20,children:r.jsx(y.Controller,{name:"legend.show",control:e,render:({field:a})=>r.jsx(o.Switch,{label:n("chart.legend.show_legend"),sx:{flex:1},checked:a.value,onChange:l=>a.onChange(l.currentTarget.checked)})})}),r.jsx(o.Group,{children:r.jsx(y.Controller,{name:"legend",control:e,render:({field:a})=>r.jsx(zn,{sx:{flex:1},value:a.value.orient,onChange:l=>{i(l,a.onChange)},disabled:!s.show})})})]})};function Ww({control:e,index:t,variableOptions:n}){const{t:s}=j.useTranslation();return r.jsxs(o.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:i})=>r.jsx(o.TextInput,{label:s("common.name"),placeholder:s("chart.reference_line.name_placeholder"),required:!0,sx:{flex:1},...i})}),r.jsx(y.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:i})=>r.jsx(o.Select,{label:s("common.value"),required:!0,data:n,sx:{flex:1},...i})})]}),r.jsx(y.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:i})=>r.jsx(o.TextInput,{label:s("chart.content_template.label"),placeholder:s("chart.content_template.placeholder"),required:!0,sx:{flex:1},...i})})]})}function Rw({control:e,watch:t,variables:n}){const{t:s}=j.useTranslation(),i=()=>({name:"",template:"",variable_key:""}),a=f.useMemo(()=>n.map(c=>({label:c.name,value:c.name})),[n]),l=(c,u)=>{const d=c.name.trim();return d||u+1};return r.jsx(Se,{control:e,watch:t,name:"reference_lines",getItem:i,addButtonText:s("chart.reference_line.add"),deleteButtonText:s("chart.reference_line.delete"),renderTabName:l,children:({field:c,index:u})=>r.jsx(Ww,{control:e,index:u,variableOptions:a})})}const Qw=({control:e,index:t})=>{const{t:n}=j.useTranslation();return r.jsx(o.Stack,{children:r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:`tooltip.metrics.${t}.name`,control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("common.name"),required:!0,sx:{flex:1},...s})}),r.jsx(y.Controller,{name:`tooltip.metrics.${t}.data_key`,control:e,render:({field:s})=>r.jsx(U,{label:n("chart.data_field"),required:!0,sx:{flex:1},...s})})]})})},Uw=({control:e,watch:t})=>{const{t:n}=j.useTranslation(),s=()=>({id:Date.now().toString(),data_key:"",name:""}),i=(a,l)=>{const c=a.name.trim();return c||l+1};return r.jsxs(r.Fragment,{children:[r.jsxs(o.Group,{spacing:2,sx:{cursor:"default",userSelect:"none"},children:[r.jsx(S.IconInfoCircle,{size:14,color:"#888"}),r.jsx(o.Text,{size:14,color:"#888",children:n("chart.tooltip.additional_metrics.description")})]}),r.jsx(Se,{control:e,watch:t,name:"tooltip.metrics",getItem:s,addButtonText:n("chart.tooltip.additional_metrics.add"),deleteButtonText:n("chart.tooltip.additional_metrics.delete"),renderTabName:i,children:({field:a,index:l})=>r.jsx(Qw,{control:e,index:l})})]})};function Yw({control:e,watch:t}){return r.jsx(o.Stack,{children:r.jsx(Uw,{control:e,watch:t})})}const hn=f.forwardRef(({label:e,value:t,onChange:n,sx:s={}},i)=>{const{t:a}=j.useTranslation();return r.jsx(o.NumberInput,{ref:i,label:e??a("chart.rotate"),hideControls:!0,min:-90,max:90,rightSection:r.jsx(o.Text,{size:"xs",color:"dimmed",children:a("chart.degree")}),sx:s,styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},value:t,onChange:n})}),Kw=({control:e,watch:t})=>{const{t:n}=j.useTranslation();return t(["x_axis"]),r.jsxs(o.Stack,{children:[r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:"x_axis.name",control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("chart.x_axis.x_axis_name"),sx:{flex:1},...s})}),r.jsx(y.Controller,{name:"x_axis.data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("chart.x_axis.x_axis_data_field"),required:!0,sx:{flex:1},...s})})]}),r.jsx(o.Divider,{mb:-15,label:n("chart.axis.tick_label"),labelPosition:"center"}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:"x_axis.axisLabel.rotate",control:e,render:({field:s})=>r.jsx(hn,{sx:{width:"48%"},...s})}),r.jsx(y.Controller,{name:"x_axis.axisLabel.formatter",control:e,render:({field:s})=>r.jsx(qt,{...s})})]}),r.jsx(y.Controller,{name:"x_axis.axisLabel.overflow",control:e,render:({field:s})=>r.jsx($t,{...s})})]})},So={root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}},Xw=["123456789","1234","1234.56789","1.234","0.123456789","-0.123456789"];function Jw({format:e}){const{t}=j.useTranslation(),[n,{toggle:s}]=Me.useDisclosure(!1);return r.jsxs(o.Box,{children:[r.jsx(o.Button,{variant:"subtle",w:"100%",compact:!0,onClick:s,leftIcon:n?r.jsx(S.IconChevronUp,{size:14}):r.jsx(S.IconChevronDown,{size:14}),children:t(n?"numbro.format.preview.close":"numbro.format.preview.open")}),r.jsx(o.Collapse,{in:n,children:n&&r.jsxs(o.Table,{highlightOnHover:!0,sx:{tableLayout:"fixed"},children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:t("numbro.format.preview.input")}),r.jsx("th",{children:t("numbro.format.preview.output")})]})}),r.jsx("tbody",{children:Xw.map(i=>r.jsxs("tr",{children:[r.jsx("td",{children:i}),r.jsx("td",{children:r.jsx(Re,{children:ie(i,e)})})]},i))})]})})]})}function Zw({value:e,onChange:t},n){const{t:s}=j.useTranslation(),i=d=>{t({...e,output:d})},a=d=>{const p=d===0?!1:e.trimMantissa;t({...e,mantissa:d,trimMantissa:p})},l=d=>{t({...e,trimMantissa:d.currentTarget.checked})},c=d=>{t({...e,average:d.currentTarget.checked})},u=d=>{const p={...e,absolute:d.currentTarget.checked};t(p)};return r.jsxs(o.Stack,{ref:n,children:[r.jsxs(o.Group,{grow:!0,children:[r.jsx(o.Select,{label:s("numbro.format.label"),data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:i,sx:{flexGrow:1}}),r.jsx(o.Switch,{label:r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{children:s("numbro.format.absolute")}),r.jsx(o.Text,{size:12,color:"gray",children:s("numbro.format.absolute_description")})]}),checked:e.absolute,onChange:u,sx:{flexGrow:1},styles:So}),r.jsx(o.Switch,{label:r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{children:s("numbro.format.abbreviation")}),r.jsx(o.Text,{size:12,color:"gray",children:s("numbro.format.abbreviation_description")})]}),checked:e.average,onChange:c,disabled:e.output!=="number",sx:{flexGrow:1},styles:So})]}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(o.NumberInput,{label:s("numbro.format.mantissa"),defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:a}),r.jsx(o.Switch,{label:r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{children:s("numbro.format.trim_mantissa")}),r.jsx(o.Text,{size:12,color:"gray",children:s("numbro.format.trim_mantissa_description")})]}),checked:e.trimMantissa,onChange:l,disabled:e.mantissa===0,styles:So}),r.jsx(o.Box,{})]}),r.jsx(Jw,{format:e})]})}const Mt=f.forwardRef(Zw),Hw=({control:e,watch:t})=>{const{t:n}=j.useTranslation();return t(["y_axis"]),r.jsxs(r.Fragment,{children:[r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:"y_axis.name",control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("chart.y_axis.y_axis_name"),sx:{flex:1},...s})}),r.jsx(y.Controller,{name:"y_axis.data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("chart.y_axis.y_axis_data_field"),required:!0,sx:{flex:1},...s})})]}),r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{mt:10,mb:-15,variant:"dashed",label:n("chart.axis.section_title.label_format"),labelPosition:"center"}),r.jsx(y.Controller,{name:"y_axis.label_formatter",control:e,render:({field:s})=>r.jsx(Mt,{...s})})]})]})};function e0({context:e}){const{t}=j.useTranslation(),{value:n,set:s}=Q(e.instanceData,"config"),{variables:i}=e,a=f.useMemo(()=>v.defaults({},n,bo),[n]),{control:l,handleSubmit:c,watch:u,formState:d,reset:p}=y.useForm({defaultValues:a});return f.useEffect(()=>{p(a)},[a]),u(["x_axis","y_axis","reference_lines","color","dataZoom"]),r.jsx(o.Stack,{spacing:"xs",children:r.jsxs("form",{onSubmit:c(s),children:[r.jsx($e,{canSubmit:d.isDirty}),r.jsxs(o.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[r.jsxs(o.Tabs.List,{children:[r.jsx(o.Tabs.Tab,{value:"X Axis",children:t("chart.x_axis.label")}),r.jsx(o.Tabs.Tab,{value:"Y Axis",children:t("chart.y_axis.label")}),r.jsx(o.Tabs.Tab,{value:"Legend",children:t("chart.legend.label")}),r.jsx(o.Tabs.Tab,{value:"Tooltip",children:t("chart.tooltip.label")}),r.jsx(o.Tabs.Tab,{value:"Style",children:t("chart.style.label")}),r.jsx(o.Tabs.Tab,{value:"Reference Lines",children:t("chart.reference_line.labels")}),r.jsx(o.Tabs.Tab,{value:"Zooming",children:t("chart.zooming.label")})]}),r.jsx(o.Tabs.Panel,{value:"X Axis",children:r.jsx(Kw,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Y Axis",children:r.jsx(Hw,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Legend",children:r.jsx(Gw,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Tooltip",children:r.jsx(Yw,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Style",children:r.jsx(o.SimpleGrid,{cols:2,children:r.jsx(y.Controller,{name:"color",control:l,render:({field:h})=>r.jsx(rt,{label:t("chart.color.label"),...h})})})}),r.jsx(o.Tabs.Panel,{value:"Reference Lines",children:r.jsx(Rw,{variables:i,control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Zooming",children:r.jsx(y.Controller,{name:"dataZoom",control:l,render:({field:h})=>r.jsx(Hs,{...h})})})]})]})})}function t0(e){return v.omit(e,"variables")}function n0(e){const{label_formatter:t=We,...n}=e.y_axis;return{...e,y_axis:{...n,label_formatter:t}}}function r0(e){const t={rotate:0,formatter:tt()},{axisLabel:n=t,...s}=e.x_axis;return{...e,x_axis:{...s,axisLabel:n}}}function s0(e){const t={x_axis:{axisLabel:{overflow:{x_axis:{width:80,overflow:"truncate",ellipsis:"..."},tooltip:{width:200,overflow:"break",ellipsis:"..."}}}}};return v.defaultsDeep(t,e)}function i0(e){delete e.config;const{x_axis:t,tooltip:n}=e.x_axis.axisLabel.overflow,s={x_axis:{axisLabel:{overflow:{on_axis:t,in_tooltip:n}}}};return v.defaultsDeep(s,e)}function a0(e){const t={tooltip:{metrics:[]}};return v.defaultsDeep(t,e)}function o0(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const s=u=>u&&`${n}.${u}`,{x_axis:i,y_axis:a,tooltip:l,...c}=e;return{...c,x_axis:{...i,data_key:s(i.data_key)},y_axis:{...a,data_key:s(a.data_key)},tooltip:{...l,metrics:l.metrics.map(u=>({...u,data_key:s(u.data_key)}))}}}catch(n){throw console.error("[Migration failed]",n),n}}function l0(e){const t={legend:{show:!0,top:"0",right:"10",left:"auto",bottom:"auto",orient:"horizontal",type:"scroll"}};return v.defaultsDeep(t,e)}function c0(e){const{dataZoom:t,...n}=e;return{...n,dataZoom:t??Yp()}}class u0 extends Ie{constructor(){super(...arguments);q(this,"VERSION",9)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:s})=>{const{config:i}=n;return(i.variables||[]).forEach(l=>{s.variables.find(c=>c.name===l.name)||s.addVariable(l)}),{...n,version:2,config:t0(i)}}),this.version(3,n=>{const{config:s}=n;return{...n,version:3,config:n0(s)}}),this.version(4,n=>{const{config:s}=n;return{...n,version:4,config:r0(s)}}),this.version(5,n=>{const{config:s}=n;return{...n,version:5,config:s0(s)}}),this.version(6,n=>{const{config:s}=n;return{...n,version:6,config:i0(s)}}),this.version(7,n=>{const{config:s}=n;return{...n,version:7,config:a0(s)}}),this.version(8,(n,s)=>{const{config:i}=n;return{...n,version:8,config:o0(i,s)}}),this.version(9,n=>{const{config:s}=n;return{...n,version:9,config:l0(s)}}),this.version(10,n=>{const{config:s}=n;return{...n,version:10,config:c0(s)}})}}const d0={displayName:"viz.boxplot.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new u0,name:"boxplot",viewRender:Mw,configRender:e0,createConfig(){return{version:10,config:v.cloneDeep(bo)}},triggers:[Kp],translation:hj},ih={id:"builtin:button:click-button",displayName:"viz.button.click.label",nameRender:h0,configRender:p0,payload:[]};function p0(e){return r.jsx(r.Fragment,{})}function h0(e){const{t}=j.useTranslation();return r.jsx(o.Text,{children:t("viz.button.click.label")})}const ko={content:"Button",variant:"filled",color:"blue",size:"xs",compact:!1,horizontal_align:"left",vertical_align:"center"},f0={left:"flex-start",center:"center",right:"flex-end"},g0={top:"flex-start",center:"center",bottom:"flex-end"},m0=D.observer(({context:e,instance:t})=>{const n=_t({vizManager:e.vizManager,instance:t}),s=vt(n.triggerManager,ih.id),i=Te(),{value:a}=Q(e.instanceData,"config"),l=f.useMemo(()=>v.defaultsDeep({},a,ko),[a]),{content:c,horizontal_align:u,vertical_align:d,...p}=l,{width:h,height:g}=e.viewport,b=i.payloadForSQL,x=()=>{s.forEach(_=>{n.runInteraction(_.id,{})})};return r.jsx(o.Center,{sx:{width:h,height:g,justifyContent:f0[u],alignItems:g0[d]},children:r.jsx(o.Button,{...p,onClick:x,children:v.template(c)(b)})})}),x0=({value:e,onChange:t,label:n})=>{const s=o.useMantineTheme(),i=f.useCallback(l=>()=>t(l),[t]),a=l=>e===l;return r.jsxs(o.Stack,{spacing:2,children:[r.jsx(o.Text,{size:14,sx:{fontWeight:500},children:n}),r.jsx(o.Group,{position:"left",spacing:"xs",children:Object.keys(s.colors).map(l=>{const c=s.colors[l][6];return r.jsx(o.ColorSwatch,{color:c,onClick:i(l),radius:4,size:26,sx:{cursor:"pointer"},children:a(l)&&r.jsx(o.CheckIcon,{width:10,color:"white"})},l)})})]})},To=f.forwardRef(({label:e,value:t,onChange:n,sx:s,disabled:i},a)=>{const{t:l}=j.useTranslation(),c=f.useMemo(()=>o.MANTINE_SIZES.map(u=>({label:l(`style.size.${u}`),value:u})),[]);return r.jsx(o.Select,{ref:a,data:c,label:e,value:t,onChange:n,sx:s,disabled:!0})}),b0=[{label:"Filled",value:"filled"},{label:"Outline",value:"outline"},{label:"Light",value:"light"},{label:"White",value:"white"},{label:"Default",value:"default"},{label:"Subtle",value:"subtle"},{label:"Gradient",value:"gradient",disabled:!0}];function y0({context:e}){const{value:t,set:n}=Q(e.instanceData,"config"),s=f.useMemo(()=>v.defaultsDeep({},t,ko),[t]),i=s;f.useEffect(()=>{!v.isEqual(s,i)&&(console.log("config malformed, resetting to defaults",s,i),n(i))},[s,i]);const{control:a,handleSubmit:l,watch:c,formState:u,reset:d}=y.useForm({defaultValues:i});return f.useEffect(()=>{d(i)},[i]),c(["content","variant","color","size","compact","horizontal_align","vertical_align"]),r.jsxs("form",{onSubmit:l(n),children:[r.jsx($e,{canSubmit:u.isDirty}),r.jsxs(o.Stack,{children:[r.jsx(y.Controller,{control:a,name:"content",render:({field:p})=>r.jsx(o.TextInput,{label:"Content Template",description:"Filter values & context entries are supported",...p,required:!0})}),r.jsx(o.Divider,{mt:"xs",mb:0,label:"Styles",labelPosition:"center",variant:"dashed"}),r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(y.Controller,{control:a,name:"variant",render:({field:p})=>r.jsx(o.Select,{label:"Variant",data:b0,...p})}),r.jsx(y.Controller,{control:a,name:"color",render:({field:p})=>r.jsx(x0,{label:"Theme",...p})})]}),r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(y.Controller,{control:a,name:"size",render:({field:p})=>r.jsx(To,{label:"Size",...p})}),r.jsx(y.Controller,{control:a,name:"compact",render:({field:p})=>r.jsx(o.Checkbox,{label:"Compact",checked:p.value,onChange:h=>p.onChange(h.currentTarget.checked),mt:26})})]}),r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(y.Controller,{control:a,name:"horizontal_align",render:({field:p})=>r.jsx(Co,{...p})}),r.jsx(y.Controller,{control:a,name:"vertical_align",render:({field:p})=>r.jsx(nh,{...p})})]})]})]})}const v0=[{lang:"en",resources:{button:{viz_name:"Button",click:{label:"Click this button"}}}},{lang:"zh",resources:{button:{viz_name:"按钮",click:{label:"点击此按钮"}}}}];class _0 extends Ie{constructor(){super(...arguments);q(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>{const{horizontal_align:s="left",vertical_align:i="center",...a}=n.config;return{...n,version:2,config:{...a,horizontal_align:s,vertical_align:i}}})}}const j0={displayName:"viz.button.viz_name",displayGroup:"chart.groups.others",migrator:new _0,name:"button",viewRender:m0,configRender:y0,createConfig(){return{version:2,config:v.cloneDeep(ko)}},triggers:[ih],translation:v0},w0=f.forwardRef(({label:e,description:t,...n},s)=>r.jsx(o.Box,{...n,children:r.jsxs(o.Stack,{spacing:"0",ref:s,children:[r.jsx(o.Text,{size:"sm",children:e}),r.jsx(o.Text,{size:"xs",opacity:.65,children:t})]})})),C0=f.forwardRef(({value:e,onChange:t})=>{const{t:n,i18n:s}=j.useTranslation(),i=f.useMemo(()=>[{label:n("chart.series.line.area_style.origin.auto.label"),description:n("chart.series.line.area_style.origin.auto.description"),value:"auto"},{label:n("chart.series.line.area_style.origin.start.label"),description:n("chart.series.line.area_style.origin.start.description"),value:"start"},{label:n("chart.series.line.area_style.origin.end.label"),description:n("chart.series.line.area_style.origin.end.description"),value:"end"}],[s.language]);return r.jsx(o.Select,{label:n("chart.series.line.area_style.origin.label"),data:i,value:e,onChange:t,itemComponent:w0,size:"xs"})}),ah=f.forwardRef(({value:e,onChange:t,label:n,placeholder:s})=>r.jsx(o.ColorInput,{label:n,placeholder:s,value:e,onChange:t,size:"xs",withinPortal:!0,dropdownZIndex:340,rightSection:e?r.jsx(o.CloseButton,{onClick:()=>{t("")}}):null})),S0=f.forwardRef(({value:e,onChange:t},n)=>{const{t:s}=j.useTranslation(),i=a=>l=>{const c=v.cloneDeep(e);v.set(c,a,l),t(c)};return r.jsxs(o.Stack,{ref:n,children:[r.jsx(o.Divider,{mt:10,mb:-10,variant:"dashed",label:r.jsxs(o.Group,{spacing:6,children:[r.jsx(S.IconChartAreaLineFilled,{size:14,style:{color:"#999"}}),s("chart.series.line.area_style.label")]}),labelPosition:"center"}),r.jsx(o.Switch,{label:s("chart.series.line.area_style.enabled"),checked:e.enabled,onChange:a=>i("enabled")(a.currentTarget.checked)}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(ah,{label:s("chart.series.line.area_style.color"),placeholder:s("chart.series.line.area_style.use_series_color"),value:e.color,onChange:i("color")}),r.jsx(o.NumberInput,{size:"xs",label:s("chart.series.line.area_style.opacity"),value:e.opacity,onChange:i("opacity"),step:.1,precision:1,min:0,max:1})]}),r.jsx(C0,{value:e.origin,onChange:i("origin")}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(ah,{label:s("chart.series.line.area_style.shadow_color"),value:e.shadowColor,onChange:i("shadowColor")}),r.jsx(o.NumberInput,{size:"xs",label:s("chart.series.line.area_style.shadow_blur"),value:e.shadowBlur,onChange:i("shadowBlur")})]}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(o.NumberInput,{size:"xs",label:s("chart.series.line.area_style.shadow_offset_x"),value:e.shadowOffsetX,onChange:i("shadowOffsetX")}),r.jsx(o.NumberInput,{size:"xs",label:s("chart.series.line.area_style.shadow_offset_y"),value:e.shadowOffsetY,onChange:i("shadowOffsetY")})]})]})});function oh(){return{enabled:!1,color:"",origin:"auto",shadowBlur:0,shadowColor:"",shadowOffsetX:0,shadowOffsetY:0,opacity:.7}}function k0(e){const t=v.cloneDeep(v.omit(e,"variables"));return t.stats=v.omit(t.stats,"variables"),t}function T0(e){const{rotate:t,formatter:n=tt()}=e.x_axis.axisLabel;return{...e,x_axis:{...e.x_axis,axisLabel:{rotate:t,formatter:n}}}}function I0(e){const{dataZoom:t=Fn,...n}=e;return{...n,dataZoom:t}}function D0(e){const t={x_axis:{axisLabel:{overflow:{x_axis:{width:80,overflow:"truncate",ellipsis:"..."},tooltip:{width:200,overflow:"break",ellipsis:"..."}}}}};return v.defaultsDeep(t,e)}function M0(e){const t=e.reference_lines.map(n=>{const{lineStyle:s={type:"dashed",width:1,color:Et.random().css()},show_in_legend:i=!1}=n;return{...n,lineStyle:s,show_in_legend:i}});return{...e,reference_lines:t}}function z0(e){const t=e.reference_lines.map(n=>{const{yAxisIndex:s=0}=n;return{...n,yAxisIndex:s}});return{...e,reference_lines:t}}function E0(e){const t=e.series.map(n=>{const{aggregation_on_group:s=Yn}=n;return{...n,aggregation_on_group:s}});return{...e,series:t}}function A0(e){const t=e.series.map(n=>{const{aggregation_on_value:s=Yn}=n;return{...n,aggregation_on_value:s}});return{...e,series:t}}function P0(e){delete e.config;const{x_axis:t,tooltip:n}=e.x_axis.axisLabel.overflow,s={x_axis:{axisLabel:{overflow:{on_axis:t,in_tooltip:n}}}};return v.defaultsDeep(s,e)}function O0(e){const{series:t,...n}=e;return{...n,series:t.map(s=>{const{barMinWidth:i,barWidth:a,barMaxWidth:l}=s;return i?{...s,barMinWidth:i,barWidth:"",barMaxWidth:l??a}:{...s,barMinWidth:"",barWidth:a,barMaxWidth:""}})}}function L0(e){const{y_axes:t,...n}=e;return{...n,y_axes:t.map(s=>{const{min:i="",max:a=""}=s;return{...s,min:i,max:a}})}}function B0(e){const{y_axes:t,...n}=e;return{...n,y_axes:t.map(s=>{const{nameAlignment:i="left"}=s;return{...s,nameAlignment:i}})}}function V0(e){const{y_axes:t,...n}=e;return{...n,y_axes:t.map(s=>{const{show:i=!0}=s;return{...s,show:i}})}}function N0(e){const{regressions:t,...n}=e;return{...n,regressions:t.map(s=>{const{group_by_key:i=""}=s;return{...s,group_by_key:i}})}}function q0(e){const{series:t,y_axes:n,...s}=e;return{...s,series:t.map(i=>{const{hide_in_legend:a=!1,aggregation_on_value:l=Yn}=i;return{...i,hide_in_legend:a,aggregation_on_value:l}}),y_axes:n.map(i=>{const{min:a="",max:l="",show:c=!0}=i;return{...i,min:a,max:l,show:c}})}}function $0(e){const{type:t="category",...n}=e.x_axis;return{...e,x_axis:{...n,type:t}}}function F0(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const s=u=>u&&`${n}.${u}`,{x_axis_data_key:i,series:a,regressions:l,...c}=e;return{...c,x_axis_data_key:s(i),series:a.map(u=>({...u,y_axis_data_key:s(u.y_axis_data_key),group_by_key:s(u.group_by_key)})),regressions:l.map(u=>({...u,y_axis_data_key:s(u.y_axis_data_key),group_by_key:s(u.group_by_key)}))}}catch(n){throw console.error("[Migration failed]",n),n}}function G0(e){const{tooltip:t={metrics:[]},...n}=e;return{...e,tooltip:t}}function W0(e,t){const{stats:n,...s}=e,i=dr(n.templates.top,t),a=dr(n.templates.bottom,t);return{stats:{top:i??"",bottom:a??""},...s}}function R0(e){const{series:t,...n}=e,s=t.map(i=>{const{areaStyle:a=oh(),...l}=i;return{...l,areaStyle:a}});return{...n,series:s}}class Q0 extends Ie{constructor(){super(...arguments);q(this,"VERSION",21)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:s})=>{const{config:i}=n;return(i.variables||[]).forEach(c=>{s.variables.find(u=>u.name===c.name)||s.addVariable(c)}),(v.get(i,"stats.variables")||[]).forEach(c=>{s.variables.find(u=>u.name===c.name)||s.addVariable(c)}),{...n,version:2,config:k0(i)}}),this.version(3,n=>({...n,version:3,config:T0(n.config)})),this.version(4,n=>({...n,version:4,config:I0(n.config)})),this.version(5,n=>({...n,version:5,config:D0(n.config)})),this.version(6,n=>({...n,version:6,config:M0(n.config)})),this.version(7,n=>({...n,version:7,config:z0(n.config)})),this.version(8,n=>({...n,version:8,config:E0(n.config)})),this.version(9,n=>({...n,version:9,config:A0(n.config)})),this.version(10,n=>({...n,version:10,config:P0(n.config)})),this.version(11,n=>({...n,version:11,config:O0(n.config)})),this.version(12,n=>({...n,version:12,config:L0(n.config)})),this.version(13,n=>({...n,version:13,config:B0(n.config)})),this.version(14,n=>({...n,version:14,config:V0(n.config)})),this.version(15,n=>({...n,version:15,config:N0(n.config)})),this.version(16,n=>({...n,version:16,config:q0(n.config)})),this.version(17,n=>({...n,version:17,config:$0(n.config)})),this.version(18,(n,s)=>({...n,version:18,config:F0(n.config,s)})),this.version(19,n=>({...n,version:19,config:G0(n.config)})),this.version(20,(n,s)=>({...n,version:20,config:W0(n.config,s.panelModel)})),this.version(21,(n,s)=>({...n,version:21,config:R0(n.config)}))}}const U0=[{lang:"en",resources:{cartesian_chart:{viz_name:"Cartesian Chart",series:{aggregation:{label:"Aggregation on Value"}},click_series:{label:"Click bar, line or scatter"}}}},{lang:"zh",resources:{cartesian_chart:{viz_name:"复合图",series:{aggregation:{label:"聚合数据"}},click_series:{label:"点击柱、线或散点"}}}}],Io={id:"builtin:echarts:click-echart:series",displayName:"viz.cartesian_chart.click_series.label",nameRender:K0,configRender:Y0,payload:[{name:"seriesType",description:"'line' | 'scatter' | 'bar'",valueType:"string"},{name:"componentType",description:"'series'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"String-typed number, or series' actual value",valueType:"string"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function Y0(e){return r.jsx(r.Fragment,{})}function K0(e){const{t}=j.useTranslation();return r.jsx(o.Text,{children:t("viz.cartesian_chart.click_series.label")})}const lh={regressions:[],series:[],stats:{bottom:"",top:""},x_axis:{type:"category",axisLabel:{rotate:0,formatter:tt(),overflow:ht()}},tooltip:{metrics:[]},x_axis_data_key:"",x_axis_name:"",y_axes:[{min:"",max:"",name:"Y Axis",show:!0,position:"left",nameAlignment:"center",label_formatter:We}],reference_lines:[],reference_areas:[],dataZoom:Fn},ei=D.observer(({value:e,context:t,onHeightChange:n})=>{var h;const{ref:s}=Me.useElementSize(),i=Te(),{panel:a}=nt(),{variables:l,data:c}=t,u=f.useMemo(()=>Ys(e,l,i.payloadForViz,c),[e,l,c]),d=((h=s.current)==null?void 0:h.textContent)==="";f.useEffect(()=>{if(!n||!s.current)return;const g=d?0:s.current.offsetHeight;n(g)},[d,s.current]);const p=f.useMemo(()=>d?"none":"block",[d]);return r.jsx(o.Box,{sx:{display:p},children:r.jsx(ur,{ref:s,value:u,styles:{root:{margin:"0 8px",border:"none",maxWidth:"100%","&.mantine-RichTextEditor-root":{overflow:"auto !important"}},content:{"&.mantine-RichTextEditor-content .ProseMirror":{padding:0},"&.mantine-RichTextEditor-content .ProseMirror > p":{fontSize:"12px",lineHeight:"20px"}}},dashboardState:i.dashboardState,variableAggValueMap:a.variableAggValueMap})})});function X0(e){const t=e.y_axes.some(i=>!!i.name);let n=15;t&&(n+=20),e.dataZoom.x_axis_slider&&(n+=20);let s=5;return e.x_axis_name&&(s+=15),e.series.some(i=>!i.hide_in_legend)&&(s+=20),{top:n,right:15,bottom:s,left:20,containLabel:!0}}function J0(e){return e!=="line"?{}:{itemStyle:{opacity:0}}}function Z0(e){switch(e){case"line":return;case"bar":return"roundRect";case"scatter":return"circle"}}function H0(e){const t={show:!0,bottom:0,left:"center",type:"scroll"};return t.data=e.filter(n=>!n.hide_in_legend).map(({name:n,type:s})=>({name:n,icon:Z0(s),...J0(s)})),t}function ti(e,t){switch(e.config.method){case"linear":return[...yn.regressionLinear()(t)];case"exponential":return[...yn.regressionExp()(t)];case"logistic":return[...yn.regressionLog()(t)];case"polynomial":return[...yn.regressionPoly().order(e.config.order)(t)];default:return[]}}function eC(e,t,n,s){const{transform:i,plot:a}=e,l={...a,name:t,data:ti(i,s),showSymbol:!1,tooltip:{show:!1},smooth:!1,custom:{}};return n&&(l.custom={type:"regression-line",targetSeries:n}),l}function tC({regressions:e=[],x_axis_data_key:t},n){const s=[];if(Object.keys(n).length===0)return s;function i(a,l,c,u){const d=eC(a,l,c,u);s.push(d)}return e.forEach(a=>{const{name:l,group_by_key:c}=a;if(!c||c===t){const h=Ot(n,a.y_axis_data_key).map((g,b)=>[b,Number(g)]);i(a,l,"",h);return}const{columnKey:u}=L(a.y_axis_data_key),d=v.groupBy(cs(n,a.y_axis_data_key),c);Object.entries(d).forEach(([p,h])=>{const g=h.map((x,_)=>[_,Number(x[u])]);i(a,p,p,g)})}),s}function nC(e,t){return e.map(n=>({name:"",type:"line",hide_in_legend:!0,data:[],markArea:{itemStyle:{color:n.color},data:[[{yAxis:t[n.y_keys.upper]},{yAxis:t[n.y_keys.lower]}]],silent:!0}}))}function rC(e,t,n,s){return t?s==="value"?[[n[0],e]]:[e]:[]}function sC(e,t,n,s,i,a){return e.map(l=>{const c=n[l.variable_key],u=l.orientation==="horizontal",d=u?"yAxis":"xAxis",p=u?"insideEndTop":"end",h=rC(c,u,i,a);return{name:l.name,type:"scatter",hide_in_legend:!l.show_in_legend,xAxisId:"main-x-axis",yAxisIndex:l.yAxisIndex,data:h,symbol:"none",silent:!0,tooltip:{show:!1},markLine:{data:[{name:l.name,[d]:c}],silent:!0,symbol:["none","none"],lineStyle:l.lineStyle,label:{formatter:function(){return l.template?Jr(l.template,t,s):""},position:p}}}})}function Do(e,t,n){const s=Ot(e,t),i=Ot(e,n);return v.zip(s,i)}function iC(e,t,n,s){const i=Do(t,n,s);return v.unionBy(i,e,0)}function aC({dataTemplate:e,data:t,x_axis_data_key:n,y_axis_data_key:s,valueTypedXAxis:i}){return i?iC(e,t,n,s):Ot(t,s)}function oC({dataTemplate:e,data:t,aggregation_on_value:n,x_axis_data_key:s,y_axis_data_key:i,valueTypedXAxis:a}){if(!n||n.type==="none")return aC({dataTemplate:e,data:t,x_axis_data_key:s,y_axis_data_key:i,valueTypedXAxis:a});const l=Do(t,s,i),c=v.groupBy(l,"0");return e.map(([d])=>{const h=c[d].map(b=>b[1]),g=Ai(h,n);return[d,g]})}function lC({group_by_key:e,data:t,x_axis_data_key:n,y_axis_data_key:s}){const{queryID:i,columnKey:a}=L(e),l=v.groupBy(t[i],a);return Object.entries(l).forEach(([c,u])=>{l[c]=Do({[i]:u},n,s)}),l}function cC({type:e,...t},n,s,i){if(!e)return 10;if(e==="static"){const{size:d}=t;return d}const{func_content:a}=t,{queryID:l,columnKey:c}=L(s),u=v.keyBy(cs(n,l),c);return(d,p)=>{let h;p.name?h=u[p.name]:h=n[p.dataIndex];try{return new Function(`return ${a}`)()({rowData:h,params:p,variables:i},{lodash:v,interpolate:xn.interpolate})}catch(g){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${g.message}`),10}}}function uC({x_axis_data_key:e,x_axis:t},{y_axis_data_key:n,yAxisIndex:s,label_position:i,name:a,group_by_key:l,aggregation_on_value:c,stack:u,color:d,display_name_on_line:p,symbolSize:h,hide_in_legend:g,areaStyle:b,...x},_,T,C,I){const M=t.type!=="category",z={label:{show:!!i,position:i,formatter:I[s??"default"]},name:a,xAxisId:"main-x-axis",yAxisIndex:s,stack:u,color:d,symbolSize:cC(h,T,e,C),hide_in_legend:g,labelLayout:{hideOverlap:!0},...x};if(x.type==="line"&&(z.lineStyle={width:x.lineStyle.width,shadowColor:"rgba(255,255,255,1)",shadowBlur:0,shadowOffsetX:0,shadowOffsetY:v.clamp(x.lineStyle.width,1,3)},b.enabled)){z.lineStyle.shadowColor="transparent";const{enabled:R,...Z}=b;z.areaStyle={...Z,color:Z.color||d}}if(p&&(z.endLabel={show:!0,formatter:a,offset:[-12,12],align:"right"}),!l||l===e)return z.data=oC({dataTemplate:_,data:T,aggregation_on_value:c,x_axis_data_key:e,y_axis_data_key:n,valueTypedXAxis:M}),z;const E=lC({group_by_key:l,data:T,x_axis_data_key:e,y_axis_data_key:n});return Object.entries(E).map(([R,Z])=>{const oe=v.cloneDeep(z);return oe.name=R,oe.color=void 0,"areaStyle"in oe&&(oe.areaStyle.color=void 0),oe.data=Z,oe})}function dC(e,t,n,s,i,a){const l=t.map(u=>[u,0]);return e.series.map(u=>uC(e,u,l,n,a,s)).flat().concat(sC(e.reference_lines,i,a,n,t,e.x_axis.type)).concat(nC(e.reference_areas,a))}function pC(e,t){const n=e.find(a=>a.axisDim==="x"&&a.axisId==="main-x-axis");if(!n)return"";const{axisValue:s,axisIndex:i}=n;return pt(t.x_axis.axisLabel.formatter)(s,i)}const hC=e=>ie(e,{output:"number",trimMantissa:!0,mantissa:2,absolute:!1});function fC(e,t,n,s){const i=n.reduce((a,{yAxisIndex:l,name:c})=>(a[c]=l,a),{});return xe.getTooltip({trigger:"axis",formatter:function(a){const l=Array.isArray(a)?a:[a];if(l.length===0)return"";const c=l.map(({seriesName:h,marker:g,value:b})=>{if(Array.isArray(b)&&b.length===2&&(b=b[1]),!h)return b;const x=i[h],_=s[x]??s.default;return`
|
|
144
144
|
<tr>
|
|
145
145
|
<td>${g}</td>
|
|
146
146
|
<th style="text-align: right; padding: 0 1em;">${h}</th>
|