@devtable/dashboard 13.44.1 → 13.44.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6512,7 +6512,7 @@ class _l {
6512
6512
  }), this.instanceRegistry.clear(), this.factoryRegistry.clear();
6513
6513
  }
6514
6514
  }
6515
- const Zp = "13.44.1", s0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6515
+ const Zp = "13.44.2", s0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6516
6516
  __proto__: null,
6517
6517
  version: Zp
6518
6518
  }, Symbol.toStringTag, { value: "Module" }));
@@ -89,7 +89,7 @@ React keys must be passed directly to JSX without using spread:
89
89
  ${Object.entries(t).map(([r,i])=>`const ${r} = '${i}';`).join(`
90
90
  `)}
91
91
  return ${e};
92
- `)(s)}catch(r){return console.error(r),console.log(e),e}}function gr(e,t,s,r){const i=Zb(t,r);return e.replaceAll(/(\{\{([^{\}]+(?=}))\}\})/g,(...l)=>{const c=l[2];if(!c)return c;const u=i[c];if(u)return u;const d=Hb(c);return Jb(d,i,s)})}function ey(e,t){const s=vl.decode(t);s!==e&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:e,after:t,v:s}),console.groupEnd())}async function ty({query:e,name:t,payload:s,additionals:r},i){if(!e.sql)return[];const{type:o,key:l,sql:c,pre_process:u,post_process:d}=e,p=Kr(c,s),h=Vx({sql:p,pre_process:u}),f=vl.encode(h);ey(h,f);let y=await Nt.query(i)({type:o,key:l,query:f,...r},{params:{name:t}});return y=Bx(d,y,fa(s)),y}async function ny({type:e,key:t,configString:s,name:r,additionals:i},o){try{return await Nt.httpDataSourceQuery(o)({type:e,key:t,query:s,...i},{params:{name:r}})}catch(l){if(St.isCancel(l))throw l;return console.error(l),l}}async function ma(){try{return(await Nt.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(e){return console.error(e),[]}}async function xd(){try{return(await Nt.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(e){return console.error(e),[]}}class fd{constructor(t){N(this,"rootRef");this.rootRef=te.observable({current:t})}async deleteItem(t){te.runInAction(()=>{v.unset(this.rootRef.current,[t])})}getItem(t){const s=this.getValueFromRoot(t);return Promise.resolve(s)}getValueFromRoot(t){return t===null?te.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,s){if(t===null)if(v.isObject(s))te.runInAction(()=>{this.rootRef.current=s});else throw new Error("Cannot set root value to non-object");else te.runInAction(()=>{v.set(this.rootRef.current,[t],s)});return Promise.resolve(this.getItem(t))}watchItem(t,s,r){return te.reaction(()=>this.getValueFromRoot(t),(i,o)=>{s(i,o)},{requiresObservable:!0,fireImmediately:v.get(r,"fireImmediately",!1)})}}class sy{constructor(){N(this,"channels",new Map);N(this,"globalChannel",new _l)}getChannel(t){const s=this.channels.get(t);if(s)return s;const r=new _l;return this.channels.set(t,r),r}}class ry{constructor(t){N(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 s=this.instances.get(t.id);if(s)return s;const r={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new sy,instanceData:new fd(t.viz.conf)};return this.instances.set(t.id,r),r}}function md(e,t,s,r){return{vizManager:s,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new fd({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const iy=e=>{const{panel:t,measure:s,vizManager:r,data:i,variables:o}=e,l=r.resolveComponent(t.viz.type),c=r.getOrCreateInstance(t),u={...md(c,i,r,o),viewport:{width:s.w,height:s.h}},d=l.viewRender;return n.jsx(d,{context:u,instance:c,...v.omit(e,["panel","vizManager","data"])})},ay=e=>{const{vizManager:t,panel:s,data:r,variables:i}=e,o=t.resolveComponent(s.viz.type),l=t.getOrCreateInstance(s),c={...md(l,r,t,i)},u=o.configRender;return n.jsx(u,{context:c,instance:l,...v.omit(e,["panel","vizManager","data"])})},bd=(e,t)=>{const s=Tt.bezier(e),r=Tt.bezier(t);return function(i){return i<50?s(i*2/100).hex():r((i-50)*2/100).hex()}},xr=e=>{const t=Tt.bezier(e);return function(s){return t(s/100).hex()}},oy={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:bd(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},ly={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:bd(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},cy={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:xr(["#fff7f1","darkred"]),name:"red",category:"sequential"},uy={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:xr(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},dy={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:xr(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},py={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:xr(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class hy{constructor(t){N(this,"symbol");this.symbol=Symbol(t)}}function Ht(e){return new hy(e)}class ba{constructor(){N(this,"parent");N(this,"factoryRegistry",new Map);N(this,"instanceRegistry",new Map)}createScoped(){const t=new ba;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 s=this.factoryRegistry.get(t.symbol);if(s){const r=s(this);return this.instanceRegistry.set(t.symbol,r),r}if(this.parent)return this.parent.get(t)}provideFactory(t,s){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,s),this}provideValue(t,s){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>s),this}dispose(){this.instanceRegistry.forEach(t=>{const s=v.get(t,"dispose");v.isFunction(s)&&s.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const yd="13.44.1",gy=Object.freeze(Object.defineProperty({__proto__:null,version:yd},Symbol.toStringTag,{value:"Module"}));class xy{constructor(t){N(this,"staticColors",new Map);N(this,"interpolations",new Map);t.installedPlugins.forEach(s=>{s.manifest.color.forEach(r=>{this.register(r)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const s=this.encodeColor(t);t.type==="single"?(this.staticColors.has(s)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(s,t)):t.type==="interpolation"&&(this.interpolations.has(s)&&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(s,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 fy{constructor(){N(this,"plugins",new Map);N(this,"vizComponents",new Map);N(this,"factory",{viz:t=>{const s=this.vizComponents.get(t);if(s)return s;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 s of t.manifest.viz){if(this.vizComponents.has(s.name))throw new Error(`Viz Component (${s.name}) has been installed before`);this.vizComponents.set(s.name,s)}}get installedPlugins(){return Array.from(this.plugins.values())}}class my{constructor(){N(this,"migrations",[])}version(t,s){return this.migrations.push({version:t,handler:s}),this}run(t,s,r){var l;if(t.from===t.to)return s;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),o=v.orderBy(i,"version","asc");if(((l=v.last(o))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((c,u)=>u.handler(c,r),s)}}class ke extends my{constructor(){super(),this.configVersions()}version(t,s){return super.version(t,(r,i)=>({version:t,...s(r,i)}))}async migrate({configData:t,panelModel:s}){const r=await t.getItem(null),i=v.get(r,"version",0),o=this.run({from:i,to:this.VERSION},r,{panelModel:s});await t.setItem(null,o)}async needMigration({configData:t}){const s=await t.getItem(null);return v.get(s,"version",0)<this.VERSION}}const R=(e,t)=>{const[s,{setFalse:r}]=Y.useBoolean(!0),[i,o]=g.useState();g.useEffect(()=>(e.getItem(t).then(c=>{o(c),r()}),e.watchItem(t,c=>{o(c)})));const l=g.useCallback(async c=>{await e.setItem(t,c),o(c)},[e,t]);return{loading:s,value:i,set:l}},rt={top:16,right:16,bottom:16,left:16},Mt=e=>Math.max(0,e-rt.left-rt.right),Et=e=>Math.max(0,e-rt.top-rt.bottom),Ds=(e,t)=>({width:Mt(e),height:Et(t)}),at=({width:e,height:t,children:s})=>n.jsx(a.Box,{pt:rt.top,pr:rt.right,pb:rt.bottom,pl:rt.left,sx:{width:e,height:t,overflow:"hidden",position:"relative"},children:s}),ya={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 by({context:e}){const{value:t}=R(e.instanceData,"config"),s=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=v.defaults({},t,ya),h=g.useMemo(()=>Ns(s,o),[s,o]),{x:f,y,z:m}=g.useMemo(()=>({x:O(o),y:O(l),z:O(c)}),[o,l,c]),{min:j,max:D}=g.useMemo(()=>{const z=v.minBy(h,M=>M[m.columnKey]),I=v.maxBy(h,M=>M[m.columnKey]);return{min:v.get(z,m.columnKey),max:v.get(I,m.columnKey)}},[h,m]),T={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:j,max:D,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(z=>[z[f.columnKey],z[y.columnKey],z[m.columnKey]])}]};return t?n.jsx(at,{width:r,height:i,children:n.jsx(We,{echarts:Fe,option:T,style:Ds(r,i),notMerge:!0,theme:"merico-light"})}):null}const Q=k.observer(g.forwardRef(({label:e,required:t,description:s,value:r,onChange:i,queryID:o,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Le(),h=g.useMemo(()=>p.dataFieldOptionGroups(r,l,o),[r,l,o]);if(h.length===0){const f=p.explainDataKey(r);return n.jsxs(a.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[n.jsx(a.HoverCard.Target,{children:n.jsx(a.Box,{children:n.jsx(a.TextInput,{label:e,required:t,defaultValue:f.columnKey,readOnly:!0,disabled:!0})})}),n.jsx(a.HoverCard.Dropdown,{children:n.jsxs(a.Group,{justify:"flex-start",gap:0,children:[n.jsx(a.Text,{size:"xs",c:f.queryName?"black":"red",ff:"monospace",children:f.queryName??f.queryID}),n.jsx(a.Text,{size:"xs",c:"black",ff:"monospace",children:"."}),n.jsx(a.Text,{size:"xs",c:"red",ff:"monospace",children:f.columnKey})]})})]})}return n.jsx(a.Select,{ref:d,label:e,description:s,data:h,value:r,onChange:Se(i),required:t,sx:c,maxDropdownHeight:500,...u})}));function yy({context:e}){const{value:t,set:s}=R(e.instanceData,"config"),r=v.defaults({},t,ya),{control:i,handleSubmit:o,reset:l}=b.useForm({defaultValues:r});return g.useEffect(()=>{l(r)},[t]),t?n.jsx(a.Stack,{gap:"xs",children:n.jsxs("form",{onSubmit:o(s),children:[n.jsx(a.Text,{size:"sm",children:"X Axis"}),n.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n.jsx(b.Controller,{name:"x_axis_data_key",control:i,render:({field:c})=>n.jsx(Q,{label:"Data Field",required:!0,...c})}),n.jsx(b.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>n.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),n.jsx(a.Text,{mt:"lg",size:"sm",children:"Y Axis"}),n.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n.jsx(b.Controller,{name:"y_axis_data_key",control:i,render:({field:c})=>n.jsx(Q,{label:"Data Field",required:!0,...c})}),n.jsx(b.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>n.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),n.jsx(a.Text,{mt:"lg",size:"sm",children:"Z Axis"}),n.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n.jsx(b.Controller,{name:"z_axis_data_key",control:i,render:({field:c})=>n.jsx(Q,{label:"Data Field",required:!0,...c})}),n.jsx(b.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>n.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),n.jsx(a.Group,{justify:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:n.jsxs(a.Button,{color:"blue",type:"submit",children:[n.jsx(C.IconDeviceFloppy,{size:20}),n.jsx(a.Text,{ml:"md",size:"sm",children:"Save"})]})})]})}):null}const vy=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function _y(e,{panelModel:t}){try{const s=t.queryIDs[0];if(!s)throw new Error("cannot migrate when queryID is empty");const r=u=>u&&`${s}.${u}`,{x_axis_data_key:i,y_axis_data_key:o,z_axis_data_key:l,...c}=e;return{...c,x_axis_data_key:r(i),y_axis_data_key:r(o),z_axis_data_key:r(l)}}catch(s){throw console.error("[Migration failed]",s),s}}class jy extends ke{constructor(){super(...arguments);N(this,"VERSION",2)}configVersions(){this.version(1,s=>({version:1,config:s})),this.version(2,(s,r)=>{const{config:i}=s;return{...s,version:2,config:_y(i,r)}})}}const wy={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new jy,name:"bar-3d",viewRender:by,configRender:yy,createConfig(){return{version:2,config:v.cloneDeep(ya)}},translation:vy},Cy=({disabled:e,value:t,onChange:s})=>{const r=i=>{i&&s(i)};return n.jsxs(a.Box,{sx:{position:"relative"},children:[e&&n.jsx(a.Overlay,{backgroundOpacity:.6,color:"#fff",zIndex:5,blur:2}),n.jsx(pt,{height:"500px",defaultLanguage:"javascript",value:t,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:e}})]})};function ot({enabled:e,func_content:t}){return(s,r)=>{if(!e)return s;try{return new Function(`return ${t}`)()(s,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),s}}}function Xe(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
92
+ `)(s)}catch(r){return console.error(r),console.log(e),e}}function gr(e,t,s,r){const i=Zb(t,r);return e.replaceAll(/(\{\{([^{\}]+(?=}))\}\})/g,(...l)=>{const c=l[2];if(!c)return c;const u=i[c];if(u)return u;const d=Hb(c);return Jb(d,i,s)})}function ey(e,t){const s=vl.decode(t);s!==e&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:e,after:t,v:s}),console.groupEnd())}async function ty({query:e,name:t,payload:s,additionals:r},i){if(!e.sql)return[];const{type:o,key:l,sql:c,pre_process:u,post_process:d}=e,p=Kr(c,s),h=Vx({sql:p,pre_process:u}),f=vl.encode(h);ey(h,f);let y=await Nt.query(i)({type:o,key:l,query:f,...r},{params:{name:t}});return y=Bx(d,y,fa(s)),y}async function ny({type:e,key:t,configString:s,name:r,additionals:i},o){try{return await Nt.httpDataSourceQuery(o)({type:e,key:t,query:s,...i},{params:{name:r}})}catch(l){if(St.isCancel(l))throw l;return console.error(l),l}}async function ma(){try{return(await Nt.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(e){return console.error(e),[]}}async function xd(){try{return(await Nt.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(e){return console.error(e),[]}}class fd{constructor(t){N(this,"rootRef");this.rootRef=te.observable({current:t})}async deleteItem(t){te.runInAction(()=>{v.unset(this.rootRef.current,[t])})}getItem(t){const s=this.getValueFromRoot(t);return Promise.resolve(s)}getValueFromRoot(t){return t===null?te.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,s){if(t===null)if(v.isObject(s))te.runInAction(()=>{this.rootRef.current=s});else throw new Error("Cannot set root value to non-object");else te.runInAction(()=>{v.set(this.rootRef.current,[t],s)});return Promise.resolve(this.getItem(t))}watchItem(t,s,r){return te.reaction(()=>this.getValueFromRoot(t),(i,o)=>{s(i,o)},{requiresObservable:!0,fireImmediately:v.get(r,"fireImmediately",!1)})}}class sy{constructor(){N(this,"channels",new Map);N(this,"globalChannel",new _l)}getChannel(t){const s=this.channels.get(t);if(s)return s;const r=new _l;return this.channels.set(t,r),r}}class ry{constructor(t){N(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 s=this.instances.get(t.id);if(s)return s;const r={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new sy,instanceData:new fd(t.viz.conf)};return this.instances.set(t.id,r),r}}function md(e,t,s,r){return{vizManager:s,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new fd({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const iy=e=>{const{panel:t,measure:s,vizManager:r,data:i,variables:o}=e,l=r.resolveComponent(t.viz.type),c=r.getOrCreateInstance(t),u={...md(c,i,r,o),viewport:{width:s.w,height:s.h}},d=l.viewRender;return n.jsx(d,{context:u,instance:c,...v.omit(e,["panel","vizManager","data"])})},ay=e=>{const{vizManager:t,panel:s,data:r,variables:i}=e,o=t.resolveComponent(s.viz.type),l=t.getOrCreateInstance(s),c={...md(l,r,t,i)},u=o.configRender;return n.jsx(u,{context:c,instance:l,...v.omit(e,["panel","vizManager","data"])})},bd=(e,t)=>{const s=Tt.bezier(e),r=Tt.bezier(t);return function(i){return i<50?s(i*2/100).hex():r((i-50)*2/100).hex()}},xr=e=>{const t=Tt.bezier(e);return function(s){return t(s/100).hex()}},oy={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:bd(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},ly={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:bd(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},cy={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:xr(["#fff7f1","darkred"]),name:"red",category:"sequential"},uy={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:xr(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},dy={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:xr(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},py={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:xr(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class hy{constructor(t){N(this,"symbol");this.symbol=Symbol(t)}}function Ht(e){return new hy(e)}class ba{constructor(){N(this,"parent");N(this,"factoryRegistry",new Map);N(this,"instanceRegistry",new Map)}createScoped(){const t=new ba;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 s=this.factoryRegistry.get(t.symbol);if(s){const r=s(this);return this.instanceRegistry.set(t.symbol,r),r}if(this.parent)return this.parent.get(t)}provideFactory(t,s){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,s),this}provideValue(t,s){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>s),this}dispose(){this.instanceRegistry.forEach(t=>{const s=v.get(t,"dispose");v.isFunction(s)&&s.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const yd="13.44.2",gy=Object.freeze(Object.defineProperty({__proto__:null,version:yd},Symbol.toStringTag,{value:"Module"}));class xy{constructor(t){N(this,"staticColors",new Map);N(this,"interpolations",new Map);t.installedPlugins.forEach(s=>{s.manifest.color.forEach(r=>{this.register(r)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const s=this.encodeColor(t);t.type==="single"?(this.staticColors.has(s)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(s,t)):t.type==="interpolation"&&(this.interpolations.has(s)&&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(s,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 fy{constructor(){N(this,"plugins",new Map);N(this,"vizComponents",new Map);N(this,"factory",{viz:t=>{const s=this.vizComponents.get(t);if(s)return s;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 s of t.manifest.viz){if(this.vizComponents.has(s.name))throw new Error(`Viz Component (${s.name}) has been installed before`);this.vizComponents.set(s.name,s)}}get installedPlugins(){return Array.from(this.plugins.values())}}class my{constructor(){N(this,"migrations",[])}version(t,s){return this.migrations.push({version:t,handler:s}),this}run(t,s,r){var l;if(t.from===t.to)return s;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),o=v.orderBy(i,"version","asc");if(((l=v.last(o))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((c,u)=>u.handler(c,r),s)}}class ke extends my{constructor(){super(),this.configVersions()}version(t,s){return super.version(t,(r,i)=>({version:t,...s(r,i)}))}async migrate({configData:t,panelModel:s}){const r=await t.getItem(null),i=v.get(r,"version",0),o=this.run({from:i,to:this.VERSION},r,{panelModel:s});await t.setItem(null,o)}async needMigration({configData:t}){const s=await t.getItem(null);return v.get(s,"version",0)<this.VERSION}}const R=(e,t)=>{const[s,{setFalse:r}]=Y.useBoolean(!0),[i,o]=g.useState();g.useEffect(()=>(e.getItem(t).then(c=>{o(c),r()}),e.watchItem(t,c=>{o(c)})));const l=g.useCallback(async c=>{await e.setItem(t,c),o(c)},[e,t]);return{loading:s,value:i,set:l}},rt={top:16,right:16,bottom:16,left:16},Mt=e=>Math.max(0,e-rt.left-rt.right),Et=e=>Math.max(0,e-rt.top-rt.bottom),Ds=(e,t)=>({width:Mt(e),height:Et(t)}),at=({width:e,height:t,children:s})=>n.jsx(a.Box,{pt:rt.top,pr:rt.right,pb:rt.bottom,pl:rt.left,sx:{width:e,height:t,overflow:"hidden",position:"relative"},children:s}),ya={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 by({context:e}){const{value:t}=R(e.instanceData,"config"),s=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=v.defaults({},t,ya),h=g.useMemo(()=>Ns(s,o),[s,o]),{x:f,y,z:m}=g.useMemo(()=>({x:O(o),y:O(l),z:O(c)}),[o,l,c]),{min:j,max:D}=g.useMemo(()=>{const z=v.minBy(h,M=>M[m.columnKey]),I=v.maxBy(h,M=>M[m.columnKey]);return{min:v.get(z,m.columnKey),max:v.get(I,m.columnKey)}},[h,m]),T={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:j,max:D,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(z=>[z[f.columnKey],z[y.columnKey],z[m.columnKey]])}]};return t?n.jsx(at,{width:r,height:i,children:n.jsx(We,{echarts:Fe,option:T,style:Ds(r,i),notMerge:!0,theme:"merico-light"})}):null}const Q=k.observer(g.forwardRef(({label:e,required:t,description:s,value:r,onChange:i,queryID:o,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Le(),h=g.useMemo(()=>p.dataFieldOptionGroups(r,l,o),[r,l,o]);if(h.length===0){const f=p.explainDataKey(r);return n.jsxs(a.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[n.jsx(a.HoverCard.Target,{children:n.jsx(a.Box,{children:n.jsx(a.TextInput,{label:e,required:t,defaultValue:f.columnKey,readOnly:!0,disabled:!0})})}),n.jsx(a.HoverCard.Dropdown,{children:n.jsxs(a.Group,{justify:"flex-start",gap:0,children:[n.jsx(a.Text,{size:"xs",c:f.queryName?"black":"red",ff:"monospace",children:f.queryName??f.queryID}),n.jsx(a.Text,{size:"xs",c:"black",ff:"monospace",children:"."}),n.jsx(a.Text,{size:"xs",c:"red",ff:"monospace",children:f.columnKey})]})})]})}return n.jsx(a.Select,{ref:d,label:e,description:s,data:h,value:r,onChange:Se(i),required:t,sx:c,maxDropdownHeight:500,...u})}));function yy({context:e}){const{value:t,set:s}=R(e.instanceData,"config"),r=v.defaults({},t,ya),{control:i,handleSubmit:o,reset:l}=b.useForm({defaultValues:r});return g.useEffect(()=>{l(r)},[t]),t?n.jsx(a.Stack,{gap:"xs",children:n.jsxs("form",{onSubmit:o(s),children:[n.jsx(a.Text,{size:"sm",children:"X Axis"}),n.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n.jsx(b.Controller,{name:"x_axis_data_key",control:i,render:({field:c})=>n.jsx(Q,{label:"Data Field",required:!0,...c})}),n.jsx(b.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>n.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),n.jsx(a.Text,{mt:"lg",size:"sm",children:"Y Axis"}),n.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n.jsx(b.Controller,{name:"y_axis_data_key",control:i,render:({field:c})=>n.jsx(Q,{label:"Data Field",required:!0,...c})}),n.jsx(b.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>n.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),n.jsx(a.Text,{mt:"lg",size:"sm",children:"Z Axis"}),n.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n.jsx(b.Controller,{name:"z_axis_data_key",control:i,render:({field:c})=>n.jsx(Q,{label:"Data Field",required:!0,...c})}),n.jsx(b.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>n.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),n.jsx(a.Group,{justify:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:n.jsxs(a.Button,{color:"blue",type:"submit",children:[n.jsx(C.IconDeviceFloppy,{size:20}),n.jsx(a.Text,{ml:"md",size:"sm",children:"Save"})]})})]})}):null}const vy=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function _y(e,{panelModel:t}){try{const s=t.queryIDs[0];if(!s)throw new Error("cannot migrate when queryID is empty");const r=u=>u&&`${s}.${u}`,{x_axis_data_key:i,y_axis_data_key:o,z_axis_data_key:l,...c}=e;return{...c,x_axis_data_key:r(i),y_axis_data_key:r(o),z_axis_data_key:r(l)}}catch(s){throw console.error("[Migration failed]",s),s}}class jy extends ke{constructor(){super(...arguments);N(this,"VERSION",2)}configVersions(){this.version(1,s=>({version:1,config:s})),this.version(2,(s,r)=>{const{config:i}=s;return{...s,version:2,config:_y(i,r)}})}}const wy={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new jy,name:"bar-3d",viewRender:by,configRender:yy,createConfig(){return{version:2,config:v.cloneDeep(ya)}},translation:vy},Cy=({disabled:e,value:t,onChange:s})=>{const r=i=>{i&&s(i)};return n.jsxs(a.Box,{sx:{position:"relative"},children:[e&&n.jsx(a.Overlay,{backgroundOpacity:.6,color:"#fff",zIndex:5,blur:2}),n.jsx(pt,{height:"500px",defaultLanguage:"javascript",value:t,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:e}})]})};function ot({enabled:e,func_content:t}){return(s,r)=>{if(!e)return s;try{return new Function(`return ${t}`)()(s,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),s}}}function Xe(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
93
93
  `)}}const Pt=g.forwardRef(({value:e,onChange:t,triggerButtonText:s},r)=>{const{t:i}=_.useTranslation(),[o,{setTrue:l,setFalse:c}]=Y.useBoolean(),[u,d]=g.useState(e);g.useEffect(()=>{d(e)},[e]);const p=D=>{d({...u,enabled:D})},h=()=>{c();const{enabled:D,func_content:T}=u,z={enabled:D,func_content:T};d(z),t(z)},f=()=>{c(),d(e)},y=D=>{d(T=>({...T,func_content:D}))},m=()=>{y(Xe().func_content)},j=s??i("chart.axis.customize_label");return n.jsxs(n.Fragment,{children:[n.jsx(a.Button,{variant:"filled",color:"grape",leftSection:n.jsx(C.IconMathFunction,{size:16}),mt:24,onClick:l,sx:{flexGrow:0},children:j}),n.jsx(a.Modal,{size:800,title:j,opened:o,onClose:c,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:o&&n.jsxs(a.Stack,{children:[n.jsx(a.Checkbox,{mt:10,label:i("common.enabled"),checked:u.enabled,onChange:D=>p(D.currentTarget.checked)}),n.jsx(Cy,{value:u.func_content,onChange:y,disabled:!u.enabled}),n.jsxs(a.Group,{justify:"space-between",children:[n.jsx(a.Button,{onClick:m,color:"red",leftSection:n.jsx(C.IconRecycle,{size:20}),children:i("common.actions.reset_to_default")}),n.jsxs(a.Group,{justify:"flex-end",children:[n.jsx(a.Button,{onClick:f,variant:"subtle",children:i("common.actions.cancel")}),n.jsx(a.Button,{color:"green",leftSection:n.jsx(C.IconDeviceFloppy,{size:16}),onClick:h,children:i("common.actions.save")})]})]})]})})]})}),Sn={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1};function vd(){return v.cloneDeep(Sn)}const Sy=[{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:"点击箱体、散点或异常点"}}}}],_d={id:"builtin:echarts:click-echart:series",displayName:"viz.boxplot.click_series.label",nameRender:ky,configRender:Ty,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 Ty(e){return n.jsx(n.Fragment,{})}function ky(e){const{t}=_.useTranslation();return n.jsx(a.Text,{size:"sm",children:t("viz.boxplot.click_series.label")})}const fr=g.forwardRef(({sectionTitle:e,value:t,onChange:s},r)=>{const{t:i,i18n:o}=_.useTranslation(),l=u=>d=>{const p=v.cloneDeep(t);v.set(p,u,d),s(p)},c=g.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"}],[o.language]);return n.jsxs(a.Stack,{gap:0,children:[e&&n.jsx(a.Divider,{mb:-5,mt:5,variant:"dotted",label:e,labelPosition:"right",styles:{label:{color:"dimmed"}}}),n.jsxs(a.Group,{grow:!0,wrap:"nowrap",children:[n.jsx(a.NumberInput,{label:i("chart.axis.overflow.max_width"),hideControls:!0,value:t.width,onChange:l("width")}),n.jsx(a.Select,{label:i("chart.axis.overflow.label"),data:c,value:t.overflow,onChange:l("overflow")}),n.jsx(a.TextInput,{label:i("chart.axis.overflow.ellipsis"),value:t.ellipsis,disabled:!0})]})]})}),At=g.forwardRef(({value:e,onChange:t},s)=>{const{t:r}=_.useTranslation(),i=l=>{t({...e,on_axis:l})},o=l=>{t({...e,in_tooltip:l})};return n.jsxs(a.Stack,{ref:s,gap:0,children:[n.jsx(fr,{sectionTitle:r("chart.axis.overflow.section_title.on_axis"),value:e.on_axis,onChange:i}),n.jsx(fr,{sectionTitle:r("chart.axis.overflow.section_title.in_tooltip"),value:e.in_tooltip,onChange:o})]})});function lt(){return{on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}}}function _t({overflow:e,width:t}){const s={truncate:"initial",break:"break-all",breakAll:"break-word"}[e],r=e==="truncate"?"nowrap":"initial",i={truncate:"ellipsis",break:"clip",breakAll:"clip"}[e];return`
94
94
  max-width: ${t}px;
95
95
  word-break: ${s};
package/dist/version.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "semver": "13.44.1",
3
- "version": "c3613ea64da7e0fb91541687bd6bc757bc599b15"
2
+ "semver": "13.44.2",
3
+ "version": "eebe30e1f6e27c0ec59e3847362505cf6171e753"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devtable/dashboard",
3
- "version": "13.44.1",
3
+ "version": "13.44.2",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": {
6
6
  "access": "public",