@devtable/dashboard 13.42.1 → 13.42.3

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.
@@ -9665,7 +9665,7 @@ class uc {
9665
9665
  }), this.instanceRegistry.clear(), this.factoryRegistry.clear();
9666
9666
  }
9667
9667
  }
9668
- const wf = "13.42.1", b1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9668
+ const wf = "13.42.3", 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": {
@@ -21825,7 +21826,7 @@ const lL = D(({
21825
21826
  return G(() => {
21826
21827
  if (!n.current)
21827
21828
  return;
21828
- const m = n.current.querySelector(".ProseMirror > p");
21829
+ const m = n.current.querySelector(".ProseMirror");
21829
21830
  if (!m)
21830
21831
  return;
21831
21832
  const {
@@ -21846,14 +21847,18 @@ const lL = D(({
21846
21847
  }
21847
21848
  },
21848
21849
  content: {
21850
+ height: h,
21849
21851
  "&.mantine-RichTextEditor-content .ProseMirror": {
21852
+ margin: "0 auto",
21850
21853
  padding: 0,
21851
- height: h
21854
+ display: "table",
21855
+ width: "auto",
21856
+ height: "auto",
21857
+ maxWidth: "100%",
21858
+ maxHeight: "100%",
21859
+ transformOrigin: "top center"
21852
21860
  },
21853
21861
  "&.mantine-RichTextEditor-content .ProseMirror > p": {
21854
- display: "table",
21855
- margin: "0 auto !important",
21856
- transformOrigin: "top center",
21857
21862
  fontSize: "initial",
21858
21863
  lineHeight: "initial"
21859
21864
  }
@@ -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.3",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>
@@ -304,7 +304,7 @@ Check the top-level render call using <`+N+">.")}return A}}function em(k,A){{if(
304
304
  <thead><tr>${d.join("")}</tr></thead>
305
305
  <tbody>${h.join("")}</tbody>
306
306
  </table>
307
- `}})}function A1(e,t){const n=t.every(c=>!Number.isNaN(Number(c))),{overflow:s,...i}=e.x_axis.axisLabel,a=Dt(s.on_axis),l=t.length===0;return[xe.getXAxis({data:t,name:e.x_axis.name??"",nameGap:l?5:void 0,id:"main-x-axis",type:n?"value":"category",axisLabel:{...i,...a,formatter:pt(i.formatter)}})]}function P1(e,t){return e.y_axes.map(({nameAlignment:n,min:s,max:i,...a},l)=>{let c=a.position;return c||(c=l>0?"right":"left"),xe.getYAxis({...a,minInterval:1,min:s||void 0,max:i||void 0,position:c,axisLine:{show:!0},axisLabel:{show:!0,formatter:t[l]??t.default},nameTextStyle:{align:n},nameLocation:"end",nameGap:15,splitLine:{show:!1}})})}const O1={xAxis:[{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],grid:{top:10,left:20,right:15,bottom:25,containLabel:!0}};function L1(e,t,n){const s=n.reduce((u,d)=>{const p=tn(d,t);return u[d.name]=Tt(d,p),u},{}),i=e.y_axes.reduce((u,{label_formatter:d},p)=>(u[p]=function(g){let b=g;if(typeof g=="object"&&(Array.isArray(g.value)&&g.value.length===2?b=g.value[1]:b=g.value),!d)return b;try{return ie(b,d)}catch(x){return console.error(x),b}},u),{default:({value:u})=>u}),a=v.uniq(Ot(t,e.x_axis.data_key)),l=D1(e,t,n,s),c={xAxis:A1(e,a),yAxis:P1(e,i),series:l,dataset:_1(e,t),tooltip:E1(e,i),grid:j1(e),legend:w1(),dataZoom:Zs(e.dataZoom)};return v.defaultsDeep({},c,O1)}function B1({conf:e,data:t,width:n,height:s,interactionManager:i,variables:a}){const l=Gn(t,e.x_axis.data_key),c=vt(i.triggerManager,Mh.id),u=f.useCallback(h=>{const g=h.data;c.forEach(b=>{i.runInteraction(b.id,{...h,rowData:g})})},[l,c,i]),d=f.useMemo(()=>({click:u}),[u]),p=f.useMemo(()=>L1(e,t,a),[e,t]);return r.jsx(Ke,{echarts:Ye,option:p,style:{width:n,height:s},onEvents:d,notMerge:!0,theme:"merico-light"})}function V1({context:e,instance:t}){const n=_t({vizManager:e.vizManager,instance:t}),{value:s}=Q(e.instanceData,"config"),{variables:i}=e,a=f.useMemo(()=>v.defaults({},s,Dh),[s]),l=e.data,{width:c,height:u}=e.viewport,[d,p]=f.useState(0),[h,g]=f.useState(0),b=Math.max(0,Nt(u)-d-h),x=Vt(c);return!c||!u?null:r.jsxs(dt,{width:c,height:u,children:[r.jsx(ei,{onHeightChange:p,value:a.stats.top,context:e}),r.jsx(B1,{variables:i,width:x,height:b,data:l,conf:a,interactionManager:n}),r.jsx(ei,{onHeightChange:g,value:a.stats.bottom,context:e})]})}const N1=f.forwardRef(({value:e,onChange:t,xAxisOptions:n,yAxisOptions:s,variableOptions:i},a)=>{const{t:l,i18n:c}=j.useTranslation(),u=(d,p)=>{const h=v.cloneDeep(e);v.set(h,d,p),t(h)};return r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{mb:-15,variant:"dashed",label:l("chart.reference_area.content.label"),labelPosition:"right"}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(o.TextInput,{label:l("chart.reference_area.content.content_text"),value:e.content.text,onChange:d=>u("content.text",d.currentTarget.value)}),r.jsx(gr,{label:l("chart.reference_area.content.text_position"),value:e.label.position,onChange:d=>u("label.position",d)})]}),r.jsx(o.Divider,{mb:-15,variant:"dashed",label:l("chart.reference_area.endpoint.labels"),labelPosition:"right"}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[n&&r.jsx(o.Select,{label:l("chart.x_axis.label"),data:n,value:e.xAxisIndex,onChange:d=>u("xAxisIndex",d)}),s&&r.jsx(o.Select,{label:l("chart.y_axis.label"),data:s,value:e.yAxisIndex,onChange:d=>u("xAxisIndex",d)})]}),r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{size:14,color:"#212529",fw:500,children:l("chart.reference_area.endpoint.left_bottom_point")}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(o.Select,{icon:r.jsx(o.Text,{children:"x"}),data:i,value:e.leftBottomPoint.x_data_key,onChange:d=>u("leftBottomPoint.x_data_key",d??""),clearable:!0}),r.jsx(o.Select,{icon:r.jsx(o.Text,{children:"y"}),data:i,value:e.leftBottomPoint.y_data_key,onChange:d=>u("leftBottomPoint.y_data_key",d??""),clearable:!0})]})]}),r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{size:14,color:"#212529",fw:500,children:l("chart.reference_area.endpoint.right_top_point")}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(o.Select,{icon:r.jsx(o.Text,{children:"x"}),data:i,value:e.rightTopPoint.x_data_key,onChange:d=>u("rightTopPoint.x_data_key",d??""),clearable:!0}),r.jsx(o.Select,{icon:r.jsx(o.Text,{children:"y"}),data:i,value:e.rightTopPoint.y_data_key,onChange:d=>u("rightTopPoint.y_data_key",d??""),clearable:!0})]})]}),r.jsx(o.Divider,{mb:-15,variant:"dashed",label:l("chart.style.label"),labelPosition:"right"}),r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(rt,{label:l("chart.color.background_color"),value:e.itemStyle.color,onChange:d=>u("itemStyle.color",d)}),r.jsx(rt,{label:l("chart.color.text_color"),value:e.label.color,onChange:d=>u("label.color",d)})]})]})});function q1(){const e=new Date().getTime().toString();return{id:e,content:{text:e},itemStyle:{color:"rgba(0,0,0,0.05)"},label:{position:"inside",color:"rgba(0,0,0,0.5)"},leftBottomPoint:{x_data_key:"",y_data_key:""},rightTopPoint:{x_data_key:"",y_data_key:""},xAxisIndex:"0",yAxisIndex:"0"}}function $1({control:e,watch:t,variables:n}){const{t:s}=j.useTranslation(),i=()=>q1(),a=f.useMemo(()=>n.map(d=>({label:d.name,value:d.name})),[n]),l=t("y_axes"),c=f.useMemo(()=>l.map(({name:d},p)=>({label:d,value:p.toString()})),[l]),u=(d,p)=>p+1;return r.jsx(Se,{control:e,watch:t,name:"reference_areas",getItem:i,addButtonText:s("chart.reference_area.add"),deleteButtonText:s("chart.reference_area.delete"),renderTabName:u,children:({field:d,index:p})=>r.jsx(y.Controller,{name:`reference_areas.${p}`,control:e,render:({field:h})=>r.jsx(o.Stack,{children:r.jsx(N1,{variableOptions:a,yAxisOptions:c,...h})})})})}function F1({control:e,index:t,watch:n,variableOptions:s,yAxisOptions:i}){const{t:a}=j.useTranslation(),l=n(`reference_lines.${t}.orientation`);return r.jsxs(o.Stack,{my:0,p:0,sx:{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:c})=>r.jsx(o.TextInput,{label:a("common.name"),placeholder:a("chart.reference_line.name_placeholder"),required:!0,sx:{flex:1},...c})}),r.jsx(y.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:c})=>r.jsx(o.Select,{label:a("common.data_field"),required:!0,data:s,sx:{flex:1},...c})})]}),r.jsx(y.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:c})=>r.jsx(o.TextInput,{label:a("chart.content_template.label"),placeholder:a("chart.content_template.hint"),sx:{flex:1},...c})}),r.jsxs(o.Group,{grow:!0,children:[r.jsxs(o.Stack,{children:[r.jsx(y.Controller,{name:`reference_lines.${t}.orientation`,control:e,render:({field:c})=>r.jsx(zn,{sx:{flex:1},...c})}),l==="vertical"&&r.jsx(o.Text,{mt:-10,color:"dimmed",size:12,children:a("chart.reference_line.orientation.vertical_hint")})]}),l==="horizontal"&&r.jsx(y.Controller,{name:`reference_lines.${t}.yAxisIndex`,control:e,render:({field:{value:c,onChange:u,...d}})=>r.jsx(o.Select,{label:"Y Axis",data:i,disabled:i.length===0,...d,value:(c==null?void 0:c.toString())??"",onChange:p=>{if(!p){u(0);return}u(Number(p))},sx:{flex:1}})})]}),r.jsx(o.Divider,{mb:-10,mt:10,variant:"dashed",label:a("chart.style.label"),labelPosition:"center"}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(y.Controller,{name:`reference_lines.${t}.lineStyle.type`,control:e,render:({field:c})=>r.jsx(fr,{sx:{flexGrow:1},...c})}),r.jsx(y.Controller,{name:`reference_lines.${t}.lineStyle.width`,control:e,render:({field:c})=>r.jsx(o.NumberInput,{label:a("chart.series.line.line_width"),min:1,max:10,sx:{flexGrow:1},...c})})]}),r.jsx(o.SimpleGrid,{cols:2,children:r.jsx(y.Controller,{name:`reference_lines.${t}.lineStyle.color`,control:e,render:({field:c})=>r.jsx(rt,{label:a("chart.color.label"),...c})})})]})}function G1({control:e,watch:t,variables:n}){const{t:s}=j.useTranslation(),i=()=>({name:"",template:"",variable_key:"",orientation:"horizontal",lineStyle:{type:"dashed",width:1,color:Et.random().css()},show_in_legend:!1,yAxisIndex:0}),a=f.useMemo(()=>n.map(d=>({label:d.name,value:d.name})),[n]),l=t("y_axes"),c=f.useMemo(()=>l.map(({name:d},p)=>({label:d,value:p.toString()})),[l]),u=(d,p)=>{const h=d.name.trim();return h||p+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:u,children:({field:d,index:p})=>r.jsx(F1,{control:e,index:p,watch:t,variableOptions:a,yAxisOptions:c})})}const W1=({value:e,onChange:t})=>{const n=s=>{s&&t(s)};return r.jsx(o.Box,{children:r.jsx(gt,{height:"500px",defaultLanguage:"javascript",value:e,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},R1=({value:e,onChange:t})=>{const{t:n}=j.useTranslation(),[s,{setTrue:i,setFalse:a}]=Y.useBoolean(),[l,c]=f.useState(e),u=()=>{a();const{type:g,func_content:b}=l,x={type:g,func_content:b};c(x),t(x)},d=()=>{a(),c(e)},p=g=>{c(b=>({...b,func_content:g}))},h=()=>{p(Hr.dynamic.func_content)};return r.jsxs(r.Fragment,{children:[r.jsx(o.Box,{sx:{width:"50%"},children:r.jsx(o.Button,{color:"grape",variant:"filled",leftIcon:r.jsx(S.IconMathFunction,{size:16}),mt:24,onClick:i,sx:{flexGrow:0},children:n("viz.scatter_chart.color.dynamic.setup")})}),r.jsx(o.Modal,{size:800,title:n("viz.scatter_chart.color.dynamic.setup_title"),opened:s,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:s&&r.jsxs(o.Stack,{children:[r.jsx(W1,{value:l.func_content,onChange:p}),r.jsxs(o.Group,{position:"apart",children:[r.jsx(o.Button,{onClick:h,color:"red",leftIcon:r.jsx(S.IconRecycle,{size:20}),children:n("common.actions.reset_to_default")}),r.jsxs(o.Group,{position:"right",children:[r.jsx(o.Button,{onClick:d,variant:"subtle",children:n("common.actions.cancel")}),r.jsx(o.Button,{color:"green",leftIcon:r.jsx(S.IconDeviceFloppy,{size:16}),onClick:u,children:n("common.actions.save")})]})]})]})})]})},Q1=({value:e,onChange:t})=>e.type!=="dynamic"?null:r.jsx(R1,{value:e,onChange:t}),U1=({value:e,onChange:t})=>{if(e.type!=="static")return null;const n=s=>{t({...e,color:s})};return r.jsx(o.ColorInput,{label:" ",format:"rgb",value:e.color,onChange:n})},Y1=f.forwardRef(({label:e="Color",value:t,onChange:n},s)=>{const{t:i,i18n:a}=j.useTranslation(),l=f.useMemo(()=>[{label:i("viz.scatter_chart.color.type.static"),value:"static"},{label:i("viz.scatter_chart.color.type.dynamic"),value:"dynamic"}],[a.language]),c=u=>{n({...Hr[u]})};return r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(o.Select,{ref:s,label:e,data:l,value:t.type,onChange:c,sx:{flexGrow:1}}),r.jsx(U1,{value:t,onChange:n}),r.jsx(Q1,{value:t,onChange:n})]})}),K1=f.forwardRef(({value:e,onChange:t},n)=>{const{t:s}=j.useTranslation(),i=l=>{t({...e,label:l})},a=l=>{t({...e,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.label,onChange:i}),r.jsx(Xs,{sectionTitle:s("chart.axis.overflow.section_title.in_tooltip"),value:e.tooltip,onChange:a})]})});function X1({control:e,watch:t}){const{t:n}=j.useTranslation();return t(["scatter"]),r.jsxs(o.Stack,{children:[r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:"scatter.name_data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("common.name_data_field"),required:!0,sx:{flex:1},...s})}),r.jsx(y.Controller,{name:"scatter.y_data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("common.value_data_field"),required:!0,sx:{flex:1},...s})})]}),r.jsx(o.Divider,{mb:-15,label:n("chart.style.label"),labelPosition:"center"}),r.jsx(y.Controller,{name:"scatter.symbolSize",control:e,render:({field:s})=>r.jsx(Eo,{...s})}),r.jsx(y.Controller,{name:"scatter.color",control:e,render:({field:s})=>r.jsx(Y1,{...s})}),r.jsx(o.Divider,{mb:-15,label:n("chart.label.label"),labelPosition:"center"}),r.jsx(o.Group,{grow:!0,noWrap:!0,children:r.jsx(y.Controller,{name:"scatter.label_position",control:e,render:({field:s})=>r.jsx(gr,{label:n("chart.label_position.label"),withOffOption:!0,...s,onChange:i=>{i&&s.onChange(i)}})})}),r.jsx(y.Controller,{name:"scatter.label_overflow",control:e,render:({field:s})=>r.jsx(K1,{...s})})]})}const J1=D.observer(({control:e,watch:t})=>{const{panel:n}=Pe(),{t:s}=j.useTranslation();return r.jsxs(o.Stack,{children:[r.jsx(y.Controller,{name:"stats.top",control:e,render:({field:i})=>r.jsx(Mn,{label:s("chart.stats.template.above_chart"),styles:{root:{flexGrow:1,minHeight:"240px"}},autoSubmit:!0,...i},`${n.id}.stats.top`)}),r.jsx(y.Controller,{name:"stats.bottom",control:e,render:({field:i})=>r.jsx(Mn,{label:s("chart.stats.template.under_chart"),styles:{root:{flexGrow:1,minHeight:"240px"}},autoSubmit:!0,...i},`${n.id}.stats.bottom`)})]})}),Z1=({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("common.data_field"),required:!0,sx:{flex:1},...s})})]})})},H1=({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(Z1,{control:e,index:l})})]})};function eI({control:e,watch:t}){const{t:n,i18n:s}=j.useTranslation();t("tooltip.trigger");const i=f.useMemo(()=>[{label:n("chart.tooltip.trigger.scatter_point"),value:"item"},{label:n("chart.tooltip.trigger.x_axis"),value:"axis"}],[s.language]);return r.jsxs(o.Stack,{children:[r.jsx(y.Controller,{name:"tooltip.trigger",control:e,render:({field:a})=>r.jsx(o.Select,{label:n("chart.tooltip.trigger.label"),data:i,sx:{flexGrow:1},...a})}),r.jsx(o.Divider,{variant:"dashed"}),r.jsx(H1,{control:e,watch:t})]})}function tI({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.data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("common.data_field"),required:!0,sx:{flex:1},...s})}),r.jsx(y.Controller,{name:"x_axis.name",control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("common.name"),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})})]})}function nI({control:e,index:t}){const{t:n}=j.useTranslation();return r.jsxs(o.Stack,{my:0,p:"0",sx:{position:"relative"},children:[r.jsx(o.Divider,{mb:-15,mt:15,variant:"dashed",label:n("chart.y_axis.y_axis_name"),labelPosition:"center"}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:`y_axes.${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:`y_axes.${t}.nameAlignment`,control:e,render:({field:s})=>r.jsx(En,{sx:{flex:1},...s})})]}),r.jsx(o.Divider,{mb:-15,variant:"dashed",label:n("chart.y_axis.layout"),labelPosition:"center"}),r.jsx(o.Group,{grow:!0,noWrap:!0,children:r.jsx(y.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:s})=>r.jsx(uh,{sx:{flex:1},...s})})}),r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{mb:-15,variant:"dashed",label:n("chart.y_axis.label_format"),labelPosition:"center"}),r.jsx(y.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:s})=>r.jsx(Mt,{...s})})]}),r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{mb:-15,variant:"dashed",label:n("chart.y_axis.value_range"),labelPosition:"center"}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(y.Controller,{name:`y_axes.${t}.min`,control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("chart.y_axis.value_min"),...s})}),r.jsx(y.Controller,{name:`y_axes.${t}.max`,control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("chart.y_axis.value_max"),...s})})]})]})]})}function rI({control:e,watch:t}){const{t:n}=j.useTranslation(),s=()=>({name:"",label_formatter:We,min:"",max:"",show:!0,position:"right",nameAlignment:"right"}),i=(l,c)=>{const u=l.name.trim();return u||c+1},a=({field:l,index:c,fields:u})=>u.length<=1;return r.jsx(Se,{control:e,watch:t,name:"y_axes",getItem:s,addButtonText:n("chart.y_axis.add"),deleteButtonText:n("chart.y_axis.delete"),renderTabName:i,deleteDisalbed:a,children:({field:l,index:c})=>r.jsx(nI,{control:e,index:c})})}function sI({conf:e,setConf:t,context:n}){const{t:s}=j.useTranslation(),{variables:i}=n,a=f.useMemo(()=>v.defaults({},e),[e]),{control:l,handleSubmit:c,watch:u,reset:d,formState:p}=y.useForm({defaultValues:a});return f.useEffect(()=>{d(a)},[a]),u(["dataZoom"]),r.jsx(o.Stack,{spacing:"xs",children:r.jsxs("form",{onSubmit:c(t),children:[r.jsx($e,{canSubmit:p.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:s("chart.x_axis.label")}),r.jsx(o.Tabs.Tab,{value:"Y Axes",children:s("chart.y_axis.labels")}),r.jsx(o.Tabs.Tab,{value:"Scatter",children:s("chart.series.scatter.label")}),r.jsx(o.Tabs.Tab,{value:"Tooltip",children:s("chart.tooltip.label")}),r.jsx(o.Tabs.Tab,{value:"Stats",children:s("chart.stats.label")}),r.jsx(o.Tabs.Tab,{value:"Reference Lines",children:s("chart.reference_line.labels")}),r.jsx(o.Tabs.Tab,{value:"Reference Areas",children:s("chart.reference_area.labels")}),r.jsx(o.Tabs.Tab,{value:"Zooming",children:s("chart.zooming.label")})]}),r.jsx(o.Tabs.Panel,{value:"X Axis",children:r.jsx(tI,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Y Axes",children:r.jsx(rI,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Scatter",children:r.jsx(X1,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Tooltip",children:r.jsx(eI,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Stats",children:r.jsx(J1,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Reference Lines",children:r.jsx(G1,{variables:i,control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Reference Areas",children:r.jsx($1,{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 iI(e){const{value:t,set:n}=Q(e.context.instanceData,"config");return t?r.jsx(sI,{conf:t,setConf:n,...e}):null}const aI={displayName:"viz.scatter_chart.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new x1,name:"scatterChart",viewRender:V1,configRender:iI,createConfig(){return{version:11,config:v.cloneDeep(Dh)}},triggers:[Mh],translation:b1},oI={content:"Use double curly brackets to wrap js code: {{ new Date().getTime() }}",vertical_align:"center"};function lI(e){if("variables"in e)return e;const{align:t,size:n,weight:s,color:i,content:{prefix:a="",data_field:l="value",formatter:c={output:"number",mantissa:0},postfix:u=""}={}}=e;return{align:t,template:`${a} \${value} ${u}`,variables:[{name:"value",data_field:l,aggregation:{type:"none",config:{}},formatter:c,color:i,weight:s,size:n}]}}function cI(e){return v.omit(e,["variables"])}function uI(e){const{align:t,...n}=e;return{horizontal_align:t,vertical_align:"center",...n}}function dI(e){const t=v.cloneDeep(e),n=v.get(t,"color.valueRange");return n!==void 0&&v.set(t,"color.valueRange",n.map(s=>Number(s))),t}function pI(e,t){return!t||t==="left"?e:`<p style="text-align: ${t}">${e}</p>`}function hI(e,t){const{horizontal_align:n,template:s,...i}=e;let a=dr(s,t);return a=pI(a,n),{content:a,...i}}function fI(e,t){const{content:n,...s}=e;return{content:dr(n,t),...s}}class gI extends Ie{constructor(){super(...arguments);q(this,"VERSION",5)}configVersions(){this.version(1,n=>({version:1,config:lI(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(dI(l))}),{...n,version:2,config:cI(i)}}),this.version(3,n=>{const{config:s}=n;return{...n,version:3,config:uI(s)}}),this.version(4,(n,{panelModel:s})=>{const{config:i}=n;return{...n,version:4,config:hI(i,s)}}),this.version(5,(n,{panelModel:s})=>{const{config:i}=n;return{...n,version:5,config:fI(i,s)}})}}const Eh={id:"builtin:stats:click-stats",displayName:"viz.stats.click_stats.trigger",nameRender:xI,configRender:mI,payload:[{name:"variables",description:"Panel variables",valueType:"object"}]};function mI(e){return r.jsx(r.Fragment,{})}function xI(e){const{t}=j.useTranslation();return r.jsx(o.Text,{children:t("viz.stats.click_stats.trigger")})}const bI={top:"flex-start",center:"center",bottom:"flex-end"};function yI(e){const t={flexGrow:1};return e>0&&(t.cursor="pointer",t["&:hover"]={textDecoration:"underline"}),t}const vI=D.observer(({context:e,instance:t})=>{const n=f.useRef(null),s=_t({vizManager:e.vizManager,instance:t}),i=vt(s.triggerManager,Eh.id),a=Te(),{panel:l}=nt(),c=l.viz.conf.config,{data:u,variables:d}=e,{width:p,height:h}=e.viewport,g=f.useMemo(()=>{const x=l.viz.conf.config;return x.content?Ys(x.content,d,a.payloadForViz,u):""},[u,l,d,a.payloadForViz]),b=f.useCallback(()=>{i.forEach(x=>{s.runInteraction(x.id,{variables:l.variableValueMap})})},[l.variableValueMap,i,s]);return f.useEffect(()=>{if(!n.current)return;const x=n.current.querySelector(".ProseMirror > p");if(!x)return;const{offsetWidth:_,offsetHeight:T}=x,C=p/_,I=h/T,M=Math.min(C,I);x.style.transform=`scale(${M})`},[n.current,p,h,g]),r.jsx(o.Flex,{className:"viz-stats",sx:{width:p,height:h},align:bI[c.vertical_align],direction:"row",children:r.jsx(o.Box,{className:"viz-stats--clickable-wrapper",sx:yI(i.length),onClick:b,children:r.jsx(ur,{ref:n,value:g,styles:{root:{border:"none",maxWidth:p,maxHeight:h,"&.mantine-RichTextEditor-root":{overflow:"hidden !important"}},content:{"&.mantine-RichTextEditor-content .ProseMirror":{padding:0,height:h},"&.mantine-RichTextEditor-content .ProseMirror > p":{display:"table",margin:"0 auto !important",transformOrigin:"top center",fontSize:"initial",lineHeight:"initial"}}},dashboardState:a.dashboardState,variableAggValueMap:l.variableAggValueMap})})})}),_I=e=>{const{context:t}=e,{value:n}=Q(t.instanceData,"config");return n?r.jsx(vI,{...e}):null},jI=D.observer(({conf:e,setConf:t})=>{const{panel:n}=Pe(),{t:s}=j.useTranslation(),i=f.useMemo(()=>v.defaults({},e),[e]),{control:a,handleSubmit:l,watch:c,formState:u,reset:d}=y.useForm({defaultValues:i});return f.useEffect(()=>{d(i)},[i]),c(["content","vertical_align"]),r.jsx("form",{onSubmit:l(t),children:r.jsxs(o.Stack,{spacing:"xs",children:[r.jsx($e,{canSubmit:u.isDirty}),r.jsx(y.Controller,{control:a,name:"vertical_align",render:({field:p})=>r.jsx(nh,{...p})}),r.jsx(y.Controller,{name:"content",control:a,render:({field:p})=>f.createElement(Mn,{...p,key:n.id,styles:{root:{flexGrow:1,minHeight:"240px"}},label:s("rich_text.content.label"),autoSubmit:!0})})]})})});function wI(e){const{value:t,set:n}=Q(e.context.instanceData,"config");return t?r.jsx(jI,{conf:t,setConf:n}):null}const CI=[{lang:"en",resources:{stats:{viz_name:"Stats",click_stats:{trigger:"Click stats text"}}}},{lang:"zh",resources:{stats:{viz_name:"数据指标",click_stats:{trigger:"点击文字"}}}}],SI={createConfig(){return{version:5,config:oI}},displayName:"viz.stats.viz_name",displayGroup:"chart.groups.others",migrator:new gI,name:"stats",viewRender:_I,configRender:wI,triggers:[Eh],translation:CI},No={label_key:"",value_key:"",group_key:"",levels:[]};function kI(e){const t=new Set(e.map(s=>s.parent_id)),n=new Set(e.map(s=>s.id));return t.forEach(s=>{s===null||n.has(s)||e.push({id:s,name:s,parent_id:null})}),e}function TI(e){const t=kI(e).map(i=>({...i,children:[]})),n=v.keyBy(t,i=>i.id),s=[];return t.forEach(i=>{if(!i.parent_id||!n[i.parent_id]){s.push(i);return}n[i.parent_id].children.push(i)}),s}function II(e,t){const{label_key:n,value_key:s,group_key:i}=e;if(!n||!s)return[];const a=L(n),l=L(s),c=L(i),u=t[a.queryID].map(d=>({...d,id:d[a.columnKey],parent_id:d[c.columnKey],name:d[a.columnKey],value:d[l.columnKey]?Number(d[l.columnKey]):d[l.columnKey]}));return i?TI(u):u}const DI=e=>({treePathInfo:t,name:n,value:s})=>{if(t.length===1||!e)return n;try{const i=t[t.length-2].value;if(s/i<e)return" "}catch{return n}};function MI(e){const{levels:t}=e;return t.map(n=>{const{show_label_tolerance:s,...i}=n.label;return{...n,label:{...i,formatter:DI(s)}}})}function zI(){return({treePathInfo:e,name:t,value:n,color:s,marker:i,...a})=>{const l=e.slice(0,e.length-1),c=[`<tr>
307
+ `}})}function A1(e,t){const n=t.every(c=>!Number.isNaN(Number(c))),{overflow:s,...i}=e.x_axis.axisLabel,a=Dt(s.on_axis),l=t.length===0;return[xe.getXAxis({data:t,name:e.x_axis.name??"",nameGap:l?5:void 0,id:"main-x-axis",type:n?"value":"category",axisLabel:{...i,...a,formatter:pt(i.formatter)}})]}function P1(e,t){return e.y_axes.map(({nameAlignment:n,min:s,max:i,...a},l)=>{let c=a.position;return c||(c=l>0?"right":"left"),xe.getYAxis({...a,minInterval:1,min:s||void 0,max:i||void 0,position:c,axisLine:{show:!0},axisLabel:{show:!0,formatter:t[l]??t.default},nameTextStyle:{align:n},nameLocation:"end",nameGap:15,splitLine:{show:!1}})})}const O1={xAxis:[{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],grid:{top:10,left:20,right:15,bottom:25,containLabel:!0}};function L1(e,t,n){const s=n.reduce((u,d)=>{const p=tn(d,t);return u[d.name]=Tt(d,p),u},{}),i=e.y_axes.reduce((u,{label_formatter:d},p)=>(u[p]=function(g){let b=g;if(typeof g=="object"&&(Array.isArray(g.value)&&g.value.length===2?b=g.value[1]:b=g.value),!d)return b;try{return ie(b,d)}catch(x){return console.error(x),b}},u),{default:({value:u})=>u}),a=v.uniq(Ot(t,e.x_axis.data_key)),l=D1(e,t,n,s),c={xAxis:A1(e,a),yAxis:P1(e,i),series:l,dataset:_1(e,t),tooltip:E1(e,i),grid:j1(e),legend:w1(),dataZoom:Zs(e.dataZoom)};return v.defaultsDeep({},c,O1)}function B1({conf:e,data:t,width:n,height:s,interactionManager:i,variables:a}){const l=Gn(t,e.x_axis.data_key),c=vt(i.triggerManager,Mh.id),u=f.useCallback(h=>{const g=h.data;c.forEach(b=>{i.runInteraction(b.id,{...h,rowData:g})})},[l,c,i]),d=f.useMemo(()=>({click:u}),[u]),p=f.useMemo(()=>L1(e,t,a),[e,t]);return r.jsx(Ke,{echarts:Ye,option:p,style:{width:n,height:s},onEvents:d,notMerge:!0,theme:"merico-light"})}function V1({context:e,instance:t}){const n=_t({vizManager:e.vizManager,instance:t}),{value:s}=Q(e.instanceData,"config"),{variables:i}=e,a=f.useMemo(()=>v.defaults({},s,Dh),[s]),l=e.data,{width:c,height:u}=e.viewport,[d,p]=f.useState(0),[h,g]=f.useState(0),b=Math.max(0,Nt(u)-d-h),x=Vt(c);return!c||!u?null:r.jsxs(dt,{width:c,height:u,children:[r.jsx(ei,{onHeightChange:p,value:a.stats.top,context:e}),r.jsx(B1,{variables:i,width:x,height:b,data:l,conf:a,interactionManager:n}),r.jsx(ei,{onHeightChange:g,value:a.stats.bottom,context:e})]})}const N1=f.forwardRef(({value:e,onChange:t,xAxisOptions:n,yAxisOptions:s,variableOptions:i},a)=>{const{t:l,i18n:c}=j.useTranslation(),u=(d,p)=>{const h=v.cloneDeep(e);v.set(h,d,p),t(h)};return r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{mb:-15,variant:"dashed",label:l("chart.reference_area.content.label"),labelPosition:"right"}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(o.TextInput,{label:l("chart.reference_area.content.content_text"),value:e.content.text,onChange:d=>u("content.text",d.currentTarget.value)}),r.jsx(gr,{label:l("chart.reference_area.content.text_position"),value:e.label.position,onChange:d=>u("label.position",d)})]}),r.jsx(o.Divider,{mb:-15,variant:"dashed",label:l("chart.reference_area.endpoint.labels"),labelPosition:"right"}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[n&&r.jsx(o.Select,{label:l("chart.x_axis.label"),data:n,value:e.xAxisIndex,onChange:d=>u("xAxisIndex",d)}),s&&r.jsx(o.Select,{label:l("chart.y_axis.label"),data:s,value:e.yAxisIndex,onChange:d=>u("xAxisIndex",d)})]}),r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{size:14,color:"#212529",fw:500,children:l("chart.reference_area.endpoint.left_bottom_point")}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(o.Select,{icon:r.jsx(o.Text,{children:"x"}),data:i,value:e.leftBottomPoint.x_data_key,onChange:d=>u("leftBottomPoint.x_data_key",d??""),clearable:!0}),r.jsx(o.Select,{icon:r.jsx(o.Text,{children:"y"}),data:i,value:e.leftBottomPoint.y_data_key,onChange:d=>u("leftBottomPoint.y_data_key",d??""),clearable:!0})]})]}),r.jsxs(o.Stack,{spacing:0,children:[r.jsx(o.Text,{size:14,color:"#212529",fw:500,children:l("chart.reference_area.endpoint.right_top_point")}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(o.Select,{icon:r.jsx(o.Text,{children:"x"}),data:i,value:e.rightTopPoint.x_data_key,onChange:d=>u("rightTopPoint.x_data_key",d??""),clearable:!0}),r.jsx(o.Select,{icon:r.jsx(o.Text,{children:"y"}),data:i,value:e.rightTopPoint.y_data_key,onChange:d=>u("rightTopPoint.y_data_key",d??""),clearable:!0})]})]}),r.jsx(o.Divider,{mb:-15,variant:"dashed",label:l("chart.style.label"),labelPosition:"right"}),r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(rt,{label:l("chart.color.background_color"),value:e.itemStyle.color,onChange:d=>u("itemStyle.color",d)}),r.jsx(rt,{label:l("chart.color.text_color"),value:e.label.color,onChange:d=>u("label.color",d)})]})]})});function q1(){const e=new Date().getTime().toString();return{id:e,content:{text:e},itemStyle:{color:"rgba(0,0,0,0.05)"},label:{position:"inside",color:"rgba(0,0,0,0.5)"},leftBottomPoint:{x_data_key:"",y_data_key:""},rightTopPoint:{x_data_key:"",y_data_key:""},xAxisIndex:"0",yAxisIndex:"0"}}function $1({control:e,watch:t,variables:n}){const{t:s}=j.useTranslation(),i=()=>q1(),a=f.useMemo(()=>n.map(d=>({label:d.name,value:d.name})),[n]),l=t("y_axes"),c=f.useMemo(()=>l.map(({name:d},p)=>({label:d,value:p.toString()})),[l]),u=(d,p)=>p+1;return r.jsx(Se,{control:e,watch:t,name:"reference_areas",getItem:i,addButtonText:s("chart.reference_area.add"),deleteButtonText:s("chart.reference_area.delete"),renderTabName:u,children:({field:d,index:p})=>r.jsx(y.Controller,{name:`reference_areas.${p}`,control:e,render:({field:h})=>r.jsx(o.Stack,{children:r.jsx(N1,{variableOptions:a,yAxisOptions:c,...h})})})})}function F1({control:e,index:t,watch:n,variableOptions:s,yAxisOptions:i}){const{t:a}=j.useTranslation(),l=n(`reference_lines.${t}.orientation`);return r.jsxs(o.Stack,{my:0,p:0,sx:{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:c})=>r.jsx(o.TextInput,{label:a("common.name"),placeholder:a("chart.reference_line.name_placeholder"),required:!0,sx:{flex:1},...c})}),r.jsx(y.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:c})=>r.jsx(o.Select,{label:a("common.data_field"),required:!0,data:s,sx:{flex:1},...c})})]}),r.jsx(y.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:c})=>r.jsx(o.TextInput,{label:a("chart.content_template.label"),placeholder:a("chart.content_template.hint"),sx:{flex:1},...c})}),r.jsxs(o.Group,{grow:!0,children:[r.jsxs(o.Stack,{children:[r.jsx(y.Controller,{name:`reference_lines.${t}.orientation`,control:e,render:({field:c})=>r.jsx(zn,{sx:{flex:1},...c})}),l==="vertical"&&r.jsx(o.Text,{mt:-10,color:"dimmed",size:12,children:a("chart.reference_line.orientation.vertical_hint")})]}),l==="horizontal"&&r.jsx(y.Controller,{name:`reference_lines.${t}.yAxisIndex`,control:e,render:({field:{value:c,onChange:u,...d}})=>r.jsx(o.Select,{label:"Y Axis",data:i,disabled:i.length===0,...d,value:(c==null?void 0:c.toString())??"",onChange:p=>{if(!p){u(0);return}u(Number(p))},sx:{flex:1}})})]}),r.jsx(o.Divider,{mb:-10,mt:10,variant:"dashed",label:a("chart.style.label"),labelPosition:"center"}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(y.Controller,{name:`reference_lines.${t}.lineStyle.type`,control:e,render:({field:c})=>r.jsx(fr,{sx:{flexGrow:1},...c})}),r.jsx(y.Controller,{name:`reference_lines.${t}.lineStyle.width`,control:e,render:({field:c})=>r.jsx(o.NumberInput,{label:a("chart.series.line.line_width"),min:1,max:10,sx:{flexGrow:1},...c})})]}),r.jsx(o.SimpleGrid,{cols:2,children:r.jsx(y.Controller,{name:`reference_lines.${t}.lineStyle.color`,control:e,render:({field:c})=>r.jsx(rt,{label:a("chart.color.label"),...c})})})]})}function G1({control:e,watch:t,variables:n}){const{t:s}=j.useTranslation(),i=()=>({name:"",template:"",variable_key:"",orientation:"horizontal",lineStyle:{type:"dashed",width:1,color:Et.random().css()},show_in_legend:!1,yAxisIndex:0}),a=f.useMemo(()=>n.map(d=>({label:d.name,value:d.name})),[n]),l=t("y_axes"),c=f.useMemo(()=>l.map(({name:d},p)=>({label:d,value:p.toString()})),[l]),u=(d,p)=>{const h=d.name.trim();return h||p+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:u,children:({field:d,index:p})=>r.jsx(F1,{control:e,index:p,watch:t,variableOptions:a,yAxisOptions:c})})}const W1=({value:e,onChange:t})=>{const n=s=>{s&&t(s)};return r.jsx(o.Box,{children:r.jsx(gt,{height:"500px",defaultLanguage:"javascript",value:e,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},R1=({value:e,onChange:t})=>{const{t:n}=j.useTranslation(),[s,{setTrue:i,setFalse:a}]=Y.useBoolean(),[l,c]=f.useState(e),u=()=>{a();const{type:g,func_content:b}=l,x={type:g,func_content:b};c(x),t(x)},d=()=>{a(),c(e)},p=g=>{c(b=>({...b,func_content:g}))},h=()=>{p(Hr.dynamic.func_content)};return r.jsxs(r.Fragment,{children:[r.jsx(o.Box,{sx:{width:"50%"},children:r.jsx(o.Button,{color:"grape",variant:"filled",leftIcon:r.jsx(S.IconMathFunction,{size:16}),mt:24,onClick:i,sx:{flexGrow:0},children:n("viz.scatter_chart.color.dynamic.setup")})}),r.jsx(o.Modal,{size:800,title:n("viz.scatter_chart.color.dynamic.setup_title"),opened:s,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:s&&r.jsxs(o.Stack,{children:[r.jsx(W1,{value:l.func_content,onChange:p}),r.jsxs(o.Group,{position:"apart",children:[r.jsx(o.Button,{onClick:h,color:"red",leftIcon:r.jsx(S.IconRecycle,{size:20}),children:n("common.actions.reset_to_default")}),r.jsxs(o.Group,{position:"right",children:[r.jsx(o.Button,{onClick:d,variant:"subtle",children:n("common.actions.cancel")}),r.jsx(o.Button,{color:"green",leftIcon:r.jsx(S.IconDeviceFloppy,{size:16}),onClick:u,children:n("common.actions.save")})]})]})]})})]})},Q1=({value:e,onChange:t})=>e.type!=="dynamic"?null:r.jsx(R1,{value:e,onChange:t}),U1=({value:e,onChange:t})=>{if(e.type!=="static")return null;const n=s=>{t({...e,color:s})};return r.jsx(o.ColorInput,{label:" ",format:"rgb",value:e.color,onChange:n})},Y1=f.forwardRef(({label:e="Color",value:t,onChange:n},s)=>{const{t:i,i18n:a}=j.useTranslation(),l=f.useMemo(()=>[{label:i("viz.scatter_chart.color.type.static"),value:"static"},{label:i("viz.scatter_chart.color.type.dynamic"),value:"dynamic"}],[a.language]),c=u=>{n({...Hr[u]})};return r.jsxs(o.SimpleGrid,{cols:2,children:[r.jsx(o.Select,{ref:s,label:e,data:l,value:t.type,onChange:c,sx:{flexGrow:1}}),r.jsx(U1,{value:t,onChange:n}),r.jsx(Q1,{value:t,onChange:n})]})}),K1=f.forwardRef(({value:e,onChange:t},n)=>{const{t:s}=j.useTranslation(),i=l=>{t({...e,label:l})},a=l=>{t({...e,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.label,onChange:i}),r.jsx(Xs,{sectionTitle:s("chart.axis.overflow.section_title.in_tooltip"),value:e.tooltip,onChange:a})]})});function X1({control:e,watch:t}){const{t:n}=j.useTranslation();return t(["scatter"]),r.jsxs(o.Stack,{children:[r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:"scatter.name_data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("common.name_data_field"),required:!0,sx:{flex:1},...s})}),r.jsx(y.Controller,{name:"scatter.y_data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("common.value_data_field"),required:!0,sx:{flex:1},...s})})]}),r.jsx(o.Divider,{mb:-15,label:n("chart.style.label"),labelPosition:"center"}),r.jsx(y.Controller,{name:"scatter.symbolSize",control:e,render:({field:s})=>r.jsx(Eo,{...s})}),r.jsx(y.Controller,{name:"scatter.color",control:e,render:({field:s})=>r.jsx(Y1,{...s})}),r.jsx(o.Divider,{mb:-15,label:n("chart.label.label"),labelPosition:"center"}),r.jsx(o.Group,{grow:!0,noWrap:!0,children:r.jsx(y.Controller,{name:"scatter.label_position",control:e,render:({field:s})=>r.jsx(gr,{label:n("chart.label_position.label"),withOffOption:!0,...s,onChange:i=>{i&&s.onChange(i)}})})}),r.jsx(y.Controller,{name:"scatter.label_overflow",control:e,render:({field:s})=>r.jsx(K1,{...s})})]})}const J1=D.observer(({control:e,watch:t})=>{const{panel:n}=Pe(),{t:s}=j.useTranslation();return r.jsxs(o.Stack,{children:[r.jsx(y.Controller,{name:"stats.top",control:e,render:({field:i})=>r.jsx(Mn,{label:s("chart.stats.template.above_chart"),styles:{root:{flexGrow:1,minHeight:"240px"}},autoSubmit:!0,...i},`${n.id}.stats.top`)}),r.jsx(y.Controller,{name:"stats.bottom",control:e,render:({field:i})=>r.jsx(Mn,{label:s("chart.stats.template.under_chart"),styles:{root:{flexGrow:1,minHeight:"240px"}},autoSubmit:!0,...i},`${n.id}.stats.bottom`)})]})}),Z1=({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("common.data_field"),required:!0,sx:{flex:1},...s})})]})})},H1=({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(Z1,{control:e,index:l})})]})};function eI({control:e,watch:t}){const{t:n,i18n:s}=j.useTranslation();t("tooltip.trigger");const i=f.useMemo(()=>[{label:n("chart.tooltip.trigger.scatter_point"),value:"item"},{label:n("chart.tooltip.trigger.x_axis"),value:"axis"}],[s.language]);return r.jsxs(o.Stack,{children:[r.jsx(y.Controller,{name:"tooltip.trigger",control:e,render:({field:a})=>r.jsx(o.Select,{label:n("chart.tooltip.trigger.label"),data:i,sx:{flexGrow:1},...a})}),r.jsx(o.Divider,{variant:"dashed"}),r.jsx(H1,{control:e,watch:t})]})}function tI({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.data_key",control:e,render:({field:s})=>r.jsx(U,{label:n("common.data_field"),required:!0,sx:{flex:1},...s})}),r.jsx(y.Controller,{name:"x_axis.name",control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("common.name"),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})})]})}function nI({control:e,index:t}){const{t:n}=j.useTranslation();return r.jsxs(o.Stack,{my:0,p:"0",sx:{position:"relative"},children:[r.jsx(o.Divider,{mb:-15,mt:15,variant:"dashed",label:n("chart.y_axis.y_axis_name"),labelPosition:"center"}),r.jsxs(o.Group,{grow:!0,noWrap:!0,children:[r.jsx(y.Controller,{name:`y_axes.${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:`y_axes.${t}.nameAlignment`,control:e,render:({field:s})=>r.jsx(En,{sx:{flex:1},...s})})]}),r.jsx(o.Divider,{mb:-15,variant:"dashed",label:n("chart.y_axis.layout"),labelPosition:"center"}),r.jsx(o.Group,{grow:!0,noWrap:!0,children:r.jsx(y.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:s})=>r.jsx(uh,{sx:{flex:1},...s})})}),r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{mb:-15,variant:"dashed",label:n("chart.y_axis.label_format"),labelPosition:"center"}),r.jsx(y.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:s})=>r.jsx(Mt,{...s})})]}),r.jsxs(o.Stack,{children:[r.jsx(o.Divider,{mb:-15,variant:"dashed",label:n("chart.y_axis.value_range"),labelPosition:"center"}),r.jsxs(o.Group,{grow:!0,children:[r.jsx(y.Controller,{name:`y_axes.${t}.min`,control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("chart.y_axis.value_min"),...s})}),r.jsx(y.Controller,{name:`y_axes.${t}.max`,control:e,render:({field:s})=>r.jsx(o.TextInput,{label:n("chart.y_axis.value_max"),...s})})]})]})]})}function rI({control:e,watch:t}){const{t:n}=j.useTranslation(),s=()=>({name:"",label_formatter:We,min:"",max:"",show:!0,position:"right",nameAlignment:"right"}),i=(l,c)=>{const u=l.name.trim();return u||c+1},a=({field:l,index:c,fields:u})=>u.length<=1;return r.jsx(Se,{control:e,watch:t,name:"y_axes",getItem:s,addButtonText:n("chart.y_axis.add"),deleteButtonText:n("chart.y_axis.delete"),renderTabName:i,deleteDisalbed:a,children:({field:l,index:c})=>r.jsx(nI,{control:e,index:c})})}function sI({conf:e,setConf:t,context:n}){const{t:s}=j.useTranslation(),{variables:i}=n,a=f.useMemo(()=>v.defaults({},e),[e]),{control:l,handleSubmit:c,watch:u,reset:d,formState:p}=y.useForm({defaultValues:a});return f.useEffect(()=>{d(a)},[a]),u(["dataZoom"]),r.jsx(o.Stack,{spacing:"xs",children:r.jsxs("form",{onSubmit:c(t),children:[r.jsx($e,{canSubmit:p.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:s("chart.x_axis.label")}),r.jsx(o.Tabs.Tab,{value:"Y Axes",children:s("chart.y_axis.labels")}),r.jsx(o.Tabs.Tab,{value:"Scatter",children:s("chart.series.scatter.label")}),r.jsx(o.Tabs.Tab,{value:"Tooltip",children:s("chart.tooltip.label")}),r.jsx(o.Tabs.Tab,{value:"Stats",children:s("chart.stats.label")}),r.jsx(o.Tabs.Tab,{value:"Reference Lines",children:s("chart.reference_line.labels")}),r.jsx(o.Tabs.Tab,{value:"Reference Areas",children:s("chart.reference_area.labels")}),r.jsx(o.Tabs.Tab,{value:"Zooming",children:s("chart.zooming.label")})]}),r.jsx(o.Tabs.Panel,{value:"X Axis",children:r.jsx(tI,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Y Axes",children:r.jsx(rI,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Scatter",children:r.jsx(X1,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Tooltip",children:r.jsx(eI,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Stats",children:r.jsx(J1,{control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Reference Lines",children:r.jsx(G1,{variables:i,control:l,watch:u})}),r.jsx(o.Tabs.Panel,{value:"Reference Areas",children:r.jsx($1,{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 iI(e){const{value:t,set:n}=Q(e.context.instanceData,"config");return t?r.jsx(sI,{conf:t,setConf:n,...e}):null}const aI={displayName:"viz.scatter_chart.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new x1,name:"scatterChart",viewRender:V1,configRender:iI,createConfig(){return{version:11,config:v.cloneDeep(Dh)}},triggers:[Mh],translation:b1},oI={content:"Use double curly brackets to wrap js code: {{ new Date().getTime() }}",vertical_align:"center"};function lI(e){if("variables"in e)return e;const{align:t,size:n,weight:s,color:i,content:{prefix:a="",data_field:l="value",formatter:c={output:"number",mantissa:0},postfix:u=""}={}}=e;return{align:t,template:`${a} \${value} ${u}`,variables:[{name:"value",data_field:l,aggregation:{type:"none",config:{}},formatter:c,color:i,weight:s,size:n}]}}function cI(e){return v.omit(e,["variables"])}function uI(e){const{align:t,...n}=e;return{horizontal_align:t,vertical_align:"center",...n}}function dI(e){const t=v.cloneDeep(e),n=v.get(t,"color.valueRange");return n!==void 0&&v.set(t,"color.valueRange",n.map(s=>Number(s))),t}function pI(e,t){return!t||t==="left"?e:`<p style="text-align: ${t}">${e}</p>`}function hI(e,t){const{horizontal_align:n,template:s,...i}=e;let a=dr(s,t);return a=pI(a,n),{content:a,...i}}function fI(e,t){const{content:n,...s}=e;return{content:dr(n,t),...s}}class gI extends Ie{constructor(){super(...arguments);q(this,"VERSION",5)}configVersions(){this.version(1,n=>({version:1,config:lI(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(dI(l))}),{...n,version:2,config:cI(i)}}),this.version(3,n=>{const{config:s}=n;return{...n,version:3,config:uI(s)}}),this.version(4,(n,{panelModel:s})=>{const{config:i}=n;return{...n,version:4,config:hI(i,s)}}),this.version(5,(n,{panelModel:s})=>{const{config:i}=n;return{...n,version:5,config:fI(i,s)}})}}const Eh={id:"builtin:stats:click-stats",displayName:"viz.stats.click_stats.trigger",nameRender:xI,configRender:mI,payload:[{name:"variables",description:"Panel variables",valueType:"object"}]};function mI(e){return r.jsx(r.Fragment,{})}function xI(e){const{t}=j.useTranslation();return r.jsx(o.Text,{children:t("viz.stats.click_stats.trigger")})}const bI={top:"flex-start",center:"center",bottom:"flex-end"};function yI(e){const t={flexGrow:1};return e>0&&(t.cursor="pointer",t["&:hover"]={textDecoration:"underline"}),t}const vI=D.observer(({context:e,instance:t})=>{const n=f.useRef(null),s=_t({vizManager:e.vizManager,instance:t}),i=vt(s.triggerManager,Eh.id),a=Te(),{panel:l}=nt(),c=l.viz.conf.config,{data:u,variables:d}=e,{width:p,height:h}=e.viewport,g=f.useMemo(()=>{const x=l.viz.conf.config;return x.content?Ys(x.content,d,a.payloadForViz,u):""},[u,l,d,a.payloadForViz]),b=f.useCallback(()=>{i.forEach(x=>{s.runInteraction(x.id,{variables:l.variableValueMap})})},[l.variableValueMap,i,s]);return f.useEffect(()=>{if(!n.current)return;const x=n.current.querySelector(".ProseMirror");if(!x)return;const{offsetWidth:_,offsetHeight:T}=x,C=p/_,I=h/T,M=Math.min(C,I);x.style.transform=`scale(${M})`},[n.current,p,h,g]),r.jsx(o.Flex,{className:"viz-stats",sx:{width:p,height:h},align:bI[c.vertical_align],direction:"row",children:r.jsx(o.Box,{className:"viz-stats--clickable-wrapper",sx:yI(i.length),onClick:b,children:r.jsx(ur,{ref:n,value:g,styles:{root:{border:"none",maxWidth:p,maxHeight:h,"&.mantine-RichTextEditor-root":{overflow:"hidden !important"}},content:{height:h,"&.mantine-RichTextEditor-content .ProseMirror":{margin:"0 auto",padding:0,display:"table",width:"auto",height:"auto",maxWidth:"100%",maxHeight:"100%",transformOrigin:"top center"},"&.mantine-RichTextEditor-content .ProseMirror > p":{fontSize:"initial",lineHeight:"initial"}}},dashboardState:a.dashboardState,variableAggValueMap:l.variableAggValueMap})})})}),_I=e=>{const{context:t}=e,{value:n}=Q(t.instanceData,"config");return n?r.jsx(vI,{...e}):null},jI=D.observer(({conf:e,setConf:t})=>{const{panel:n}=Pe(),{t:s}=j.useTranslation(),i=f.useMemo(()=>v.defaults({},e),[e]),{control:a,handleSubmit:l,watch:c,formState:u,reset:d}=y.useForm({defaultValues:i});return f.useEffect(()=>{d(i)},[i]),c(["content","vertical_align"]),r.jsx("form",{onSubmit:l(t),children:r.jsxs(o.Stack,{spacing:"xs",children:[r.jsx($e,{canSubmit:u.isDirty}),r.jsx(y.Controller,{control:a,name:"vertical_align",render:({field:p})=>r.jsx(nh,{...p})}),r.jsx(y.Controller,{name:"content",control:a,render:({field:p})=>f.createElement(Mn,{...p,key:n.id,styles:{root:{flexGrow:1,minHeight:"240px"}},label:s("rich_text.content.label"),autoSubmit:!0})})]})})});function wI(e){const{value:t,set:n}=Q(e.context.instanceData,"config");return t?r.jsx(jI,{conf:t,setConf:n}):null}const CI=[{lang:"en",resources:{stats:{viz_name:"Stats",click_stats:{trigger:"Click stats text"}}}},{lang:"zh",resources:{stats:{viz_name:"数据指标",click_stats:{trigger:"点击文字"}}}}],SI={createConfig(){return{version:5,config:oI}},displayName:"viz.stats.viz_name",displayGroup:"chart.groups.others",migrator:new gI,name:"stats",viewRender:_I,configRender:wI,triggers:[Eh],translation:CI},No={label_key:"",value_key:"",group_key:"",levels:[]};function kI(e){const t=new Set(e.map(s=>s.parent_id)),n=new Set(e.map(s=>s.id));return t.forEach(s=>{s===null||n.has(s)||e.push({id:s,name:s,parent_id:null})}),e}function TI(e){const t=kI(e).map(i=>({...i,children:[]})),n=v.keyBy(t,i=>i.id),s=[];return t.forEach(i=>{if(!i.parent_id||!n[i.parent_id]){s.push(i);return}n[i.parent_id].children.push(i)}),s}function II(e,t){const{label_key:n,value_key:s,group_key:i}=e;if(!n||!s)return[];const a=L(n),l=L(s),c=L(i),u=t[a.queryID].map(d=>({...d,id:d[a.columnKey],parent_id:d[c.columnKey],name:d[a.columnKey],value:d[l.columnKey]?Number(d[l.columnKey]):d[l.columnKey]}));return i?TI(u):u}const DI=e=>({treePathInfo:t,name:n,value:s})=>{if(t.length===1||!e)return n;try{const i=t[t.length-2].value;if(s/i<e)return" "}catch{return n}};function MI(e){const{levels:t}=e;return t.map(n=>{const{show_label_tolerance:s,...i}=n.label;return{...n,label:{...i,formatter:DI(s)}}})}function zI(){return({treePathInfo:e,name:t,value:n,color:s,marker:i,...a})=>{const l=e.slice(0,e.length-1),c=[`<tr>
308
308
  <th style="text-align: right; padding: 0 1em;">Value</th>
309
309
  <td style="text-align: left; padding: 0 1em;">${n}</td>
310
310
  </tr>