@devtable/dashboard 13.43.8 → 13.43.9

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 hl {
6512
6512
  }), this.instanceRegistry.clear(), this.factoryRegistry.clear();
6513
6513
  }
6514
6514
  }
6515
- const Gp = "13.43.8", Qj = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6515
+ const Gp = "13.43.9", Qj = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6516
6516
  __proto__: null,
6517
6517
  version: Gp
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(([s,i])=>`const ${s} = '${i}';`).join(`
90
90
  `)}
91
91
  return ${e};
92
- `)(n)}catch(s){return console.error(s),console.log(e),e}}function hs(e,t,n,s){const i=$b(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=Gb(c);return Fb(d,i,n)})}function Rb(e,t){const n=ml.decode(t);n!==e&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:e,after:t,v:n}),console.groupEnd())}async function Wb({query:e,name:t,payload:n,additionals:s},i){if(!e.sql)return[];const{type:o,key:l,sql:c,pre_process:u,post_process:d}=e,p=Us(c,n),h=kf({sql:p,pre_process:u}),x=ml.encode(h);Rb(h,x);let y=await Bt.query(i)({type:o,key:l,query:x,...s},{params:{name:t}});return y=Df(d,y,ga(n)),y}async function Qb({type:e,key:t,configString:n,name:s,additionals:i},o){try{return await Bt.httpDataSourceQuery(o)({type:e,key:t,query:n,...i},{params:{name:s}})}catch(l){if(Ot.isCancel(l))throw l;return console.error(l),l}}async function fa(){try{return(await Bt.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(e){return console.error(e),[]}}async function dd(){try{return(await Bt.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(e){return console.error(e),[]}}class pd{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 n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?te.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(v.isObject(n))te.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else te.runInAction(()=>{v.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,s){return te.reaction(()=>this.getValueFromRoot(t),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:v.get(s,"fireImmediately",!1)})}}class Ub{constructor(){N(this,"channels",new Map);N(this,"globalChannel",new bl)}getChannel(t){const n=this.channels.get(t);if(n)return n;const s=new bl;return this.channels.set(t,s),s}}class Yb{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 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 Ub,instanceData:new pd(t.viz.conf)};return this.instances.set(t.id,s),s}}function hd(e,t,n,s){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new pd({}),colorPalette:{getColor(){return()=>""}},data:t,variables:s}}const Kb=e=>{const{panel:t,measure:n,vizManager:s,data:i,variables:o}=e,l=s.resolveComponent(t.viz.type),c=s.getOrCreateInstance(t),u={...hd(c,i,s,o),viewport:{width:n.w,height:n.h}},d=l.viewRender;return r.jsx(d,{context:u,instance:c,...v.omit(e,["panel","vizManager","data"])})},Xb=e=>{const{vizManager:t,panel:n,data:s,variables:i}=e,o=t.resolveComponent(n.viz.type),l=t.getOrCreateInstance(n),c={...hd(l,s,t,i)},u=o.configRender;return r.jsx(u,{context:c,instance:l,...v.omit(e,["panel","vizManager","data"])})},gd=(e,t)=>{const n=Ct.bezier(e),s=Ct.bezier(t);return function(i){return i<50?n(i*2/100).hex():s((i-50)*2/100).hex()}},gs=e=>{const t=Ct.bezier(e);return function(n){return t(n/100).hex()}},Jb={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:gd(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Zb={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:gd(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Hb={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:gs(["#fff7f1","darkred"]),name:"red",category:"sequential"},ey={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:gs(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},ty={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:gs(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},ny={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:gs(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class ry{constructor(t){N(this,"symbol");this.symbol=Symbol(t)}}function Zt(e){return new ry(e)}class xa{constructor(){N(this,"parent");N(this,"factoryRegistry",new Map);N(this,"instanceRegistry",new Map)}createScoped(){const t=new xa;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 fd="13.43.8",sy=Object.freeze(Object.defineProperty({__proto__:null,version:fd},Symbol.toStringTag,{value:"Module"}));class iy{constructor(t){N(this,"staticColors",new Map);N(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 ay{constructor(){N(this,"plugins",new Map);N(this,"vizComponents",new Map);N(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 oy{constructor(){N(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),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,s),n)}}class Te extends oy{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),o=this.run({from:i,to:this.VERSION},s,{panelModel:n});await t.setItem(null,o)}async needMigration({configData:t}){const n=await t.getItem(null);return v.get(n,"version",0)<this.VERSION}}const W=(e,t)=>{const[n,{setFalse:s}]=Y.useBoolean(!0),[i,o]=g.useState();g.useEffect(()=>(e.getItem(t).then(c=>{o(c),s()}),e.watchItem(t,c=>{o(c)})));const l=g.useCallback(async c=>{await e.setItem(t,c),o(c)},[e,t]);return{loading:n,value:i,set:l}},rt={top:16,right:16,bottom:16,left:16},zt=e=>Math.max(0,e-rt.left-rt.right),It=e=>Math.max(0,e-rt.top-rt.bottom),kr=(e,t)=>({width:zt(e),height:It(t)}),st=({width:e,height:t,children:n})=>r.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:n}),ma={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 ly({context:e}){const{value:t}=W(e.instanceData,"config"),n=e.data,{width:s,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,ma),h=g.useMemo(()=>Br(n,o),[n,o]),{x,y,z:m}=g.useMemo(()=>({x:O(o),y:O(l),z:O(c)}),[o,l,c]),{min:j,max:k}=g.useMemo(()=>{const D=v.minBy(h,M=>M[m.columnKey]),I=v.maxBy(h,M=>M[m.columnKey]);return{min:v.get(D,m.columnKey),max:v.get(I,m.columnKey)}},[h,m]),T={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:j,max:k,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(D=>[D[x.columnKey],D[y.columnKey],D[m.columnKey]])}]};return t?r.jsx(st,{width:s,height:i,children:r.jsx(Re,{echarts:Fe,option:T,style:kr(s,i),notMerge:!0,theme:"merico-light"})}):null}const Q=z.observer(g.forwardRef(({label:e,required:t,description:n,value:s,onChange:i,queryID:o,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Pe(),h=g.useMemo(()=>p.dataFieldOptionGroups(s,l,o),[s,l,o]);if(h.length===0){const x=p.explainDataKey(s);return r.jsxs(a.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[r.jsx(a.HoverCard.Target,{children:r.jsx(a.Box,{children:r.jsx(a.TextInput,{label:e,required:t,defaultValue:x.columnKey,readOnly:!0,disabled:!0})})}),r.jsx(a.HoverCard.Dropdown,{children:r.jsxs(a.Group,{justify:"flex-start",gap:0,children:[r.jsx(a.Text,{size:"xs",c:x.queryName?"black":"red",ff:"monospace",children:x.queryName??x.queryID}),r.jsx(a.Text,{size:"xs",c:"black",ff:"monospace",children:"."}),r.jsx(a.Text,{size:"xs",c:"red",ff:"monospace",children:x.columnKey})]})})]})}return r.jsx(a.Select,{ref:d,label:e,description:n,data:h,value:s,onChange:Ce(i),required:t,sx:c,maxDropdownHeight:500,...u})}));function cy({context:e}){const{value:t,set:n}=W(e.instanceData,"config"),s=v.defaults({},t,ma),{control:i,handleSubmit:o,reset:l}=b.useForm({defaultValues:s});return g.useEffect(()=>{l(s)},[t]),t?r.jsx(a.Stack,{gap:"xs",children:r.jsxs("form",{onSubmit:o(n),children:[r.jsx(a.Text,{size:"sm",children:"X Axis"}),r.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(b.Controller,{name:"x_axis_data_key",control:i,render:({field:c})=>r.jsx(Q,{label:"Data Field",required:!0,...c})}),r.jsx(b.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>r.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(a.Text,{mt:"lg",size:"sm",children:"Y Axis"}),r.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(b.Controller,{name:"y_axis_data_key",control:i,render:({field:c})=>r.jsx(Q,{label:"Data Field",required:!0,...c})}),r.jsx(b.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>r.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(a.Text,{mt:"lg",size:"sm",children:"Z Axis"}),r.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(b.Controller,{name:"z_axis_data_key",control:i,render:({field:c})=>r.jsx(Q,{label:"Data Field",required:!0,...c})}),r.jsx(b.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>r.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(a.Group,{justify:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:r.jsxs(a.Button,{color:"blue",type:"submit",children:[r.jsx(C.IconDeviceFloppy,{size:20}),r.jsx(a.Text,{ml:"md",size:"sm",children:"Save"})]})})]})}):null}const uy=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function dy(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:o,z_axis_data_key:l,...c}=e;return{...c,x_axis_data_key:s(i),y_axis_data_key:s(o),z_axis_data_key:s(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class py extends Te{constructor(){super(...arguments);N(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:dy(i,s)}})}}const hy={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new py,name:"bar-3d",viewRender:ly,configRender:cy,createConfig(){return{version:2,config:v.cloneDeep(ma)}},translation:uy},gy=({disabled:e,value:t,onChange:n})=>{const s=i=>{i&&n(i)};return r.jsxs(a.Box,{sx:{position:"relative"},children:[e&&r.jsx(a.Overlay,{backgroundOpacity:.6,color:"#fff",zIndex:5,blur:2}),r.jsx(ut,{height:"500px",defaultLanguage:"javascript",value:t,onChange:s,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:e}})]})};function at({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 Ke(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
92
+ `)(n)}catch(s){return console.error(s),console.log(e),e}}function hs(e,t,n,s){const i=$b(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=Gb(c);return Fb(d,i,n)})}function Rb(e,t){const n=ml.decode(t);n!==e&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:e,after:t,v:n}),console.groupEnd())}async function Wb({query:e,name:t,payload:n,additionals:s},i){if(!e.sql)return[];const{type:o,key:l,sql:c,pre_process:u,post_process:d}=e,p=Us(c,n),h=kf({sql:p,pre_process:u}),x=ml.encode(h);Rb(h,x);let y=await Bt.query(i)({type:o,key:l,query:x,...s},{params:{name:t}});return y=Df(d,y,ga(n)),y}async function Qb({type:e,key:t,configString:n,name:s,additionals:i},o){try{return await Bt.httpDataSourceQuery(o)({type:e,key:t,query:n,...i},{params:{name:s}})}catch(l){if(Ot.isCancel(l))throw l;return console.error(l),l}}async function fa(){try{return(await Bt.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(e){return console.error(e),[]}}async function dd(){try{return(await Bt.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(e){return console.error(e),[]}}class pd{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 n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?te.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(v.isObject(n))te.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else te.runInAction(()=>{v.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,s){return te.reaction(()=>this.getValueFromRoot(t),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:v.get(s,"fireImmediately",!1)})}}class Ub{constructor(){N(this,"channels",new Map);N(this,"globalChannel",new bl)}getChannel(t){const n=this.channels.get(t);if(n)return n;const s=new bl;return this.channels.set(t,s),s}}class Yb{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 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 Ub,instanceData:new pd(t.viz.conf)};return this.instances.set(t.id,s),s}}function hd(e,t,n,s){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new pd({}),colorPalette:{getColor(){return()=>""}},data:t,variables:s}}const Kb=e=>{const{panel:t,measure:n,vizManager:s,data:i,variables:o}=e,l=s.resolveComponent(t.viz.type),c=s.getOrCreateInstance(t),u={...hd(c,i,s,o),viewport:{width:n.w,height:n.h}},d=l.viewRender;return r.jsx(d,{context:u,instance:c,...v.omit(e,["panel","vizManager","data"])})},Xb=e=>{const{vizManager:t,panel:n,data:s,variables:i}=e,o=t.resolveComponent(n.viz.type),l=t.getOrCreateInstance(n),c={...hd(l,s,t,i)},u=o.configRender;return r.jsx(u,{context:c,instance:l,...v.omit(e,["panel","vizManager","data"])})},gd=(e,t)=>{const n=Ct.bezier(e),s=Ct.bezier(t);return function(i){return i<50?n(i*2/100).hex():s((i-50)*2/100).hex()}},gs=e=>{const t=Ct.bezier(e);return function(n){return t(n/100).hex()}},Jb={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:gd(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Zb={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:gd(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Hb={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:gs(["#fff7f1","darkred"]),name:"red",category:"sequential"},ey={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:gs(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},ty={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:gs(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},ny={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:gs(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class ry{constructor(t){N(this,"symbol");this.symbol=Symbol(t)}}function Zt(e){return new ry(e)}class xa{constructor(){N(this,"parent");N(this,"factoryRegistry",new Map);N(this,"instanceRegistry",new Map)}createScoped(){const t=new xa;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 fd="13.43.9",sy=Object.freeze(Object.defineProperty({__proto__:null,version:fd},Symbol.toStringTag,{value:"Module"}));class iy{constructor(t){N(this,"staticColors",new Map);N(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 ay{constructor(){N(this,"plugins",new Map);N(this,"vizComponents",new Map);N(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 oy{constructor(){N(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),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,s),n)}}class Te extends oy{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),o=this.run({from:i,to:this.VERSION},s,{panelModel:n});await t.setItem(null,o)}async needMigration({configData:t}){const n=await t.getItem(null);return v.get(n,"version",0)<this.VERSION}}const W=(e,t)=>{const[n,{setFalse:s}]=Y.useBoolean(!0),[i,o]=g.useState();g.useEffect(()=>(e.getItem(t).then(c=>{o(c),s()}),e.watchItem(t,c=>{o(c)})));const l=g.useCallback(async c=>{await e.setItem(t,c),o(c)},[e,t]);return{loading:n,value:i,set:l}},rt={top:16,right:16,bottom:16,left:16},zt=e=>Math.max(0,e-rt.left-rt.right),It=e=>Math.max(0,e-rt.top-rt.bottom),kr=(e,t)=>({width:zt(e),height:It(t)}),st=({width:e,height:t,children:n})=>r.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:n}),ma={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 ly({context:e}){const{value:t}=W(e.instanceData,"config"),n=e.data,{width:s,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,ma),h=g.useMemo(()=>Br(n,o),[n,o]),{x,y,z:m}=g.useMemo(()=>({x:O(o),y:O(l),z:O(c)}),[o,l,c]),{min:j,max:k}=g.useMemo(()=>{const D=v.minBy(h,M=>M[m.columnKey]),I=v.maxBy(h,M=>M[m.columnKey]);return{min:v.get(D,m.columnKey),max:v.get(I,m.columnKey)}},[h,m]),T={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:j,max:k,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(D=>[D[x.columnKey],D[y.columnKey],D[m.columnKey]])}]};return t?r.jsx(st,{width:s,height:i,children:r.jsx(Re,{echarts:Fe,option:T,style:kr(s,i),notMerge:!0,theme:"merico-light"})}):null}const Q=z.observer(g.forwardRef(({label:e,required:t,description:n,value:s,onChange:i,queryID:o,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Pe(),h=g.useMemo(()=>p.dataFieldOptionGroups(s,l,o),[s,l,o]);if(h.length===0){const x=p.explainDataKey(s);return r.jsxs(a.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[r.jsx(a.HoverCard.Target,{children:r.jsx(a.Box,{children:r.jsx(a.TextInput,{label:e,required:t,defaultValue:x.columnKey,readOnly:!0,disabled:!0})})}),r.jsx(a.HoverCard.Dropdown,{children:r.jsxs(a.Group,{justify:"flex-start",gap:0,children:[r.jsx(a.Text,{size:"xs",c:x.queryName?"black":"red",ff:"monospace",children:x.queryName??x.queryID}),r.jsx(a.Text,{size:"xs",c:"black",ff:"monospace",children:"."}),r.jsx(a.Text,{size:"xs",c:"red",ff:"monospace",children:x.columnKey})]})})]})}return r.jsx(a.Select,{ref:d,label:e,description:n,data:h,value:s,onChange:Ce(i),required:t,sx:c,maxDropdownHeight:500,...u})}));function cy({context:e}){const{value:t,set:n}=W(e.instanceData,"config"),s=v.defaults({},t,ma),{control:i,handleSubmit:o,reset:l}=b.useForm({defaultValues:s});return g.useEffect(()=>{l(s)},[t]),t?r.jsx(a.Stack,{gap:"xs",children:r.jsxs("form",{onSubmit:o(n),children:[r.jsx(a.Text,{size:"sm",children:"X Axis"}),r.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(b.Controller,{name:"x_axis_data_key",control:i,render:({field:c})=>r.jsx(Q,{label:"Data Field",required:!0,...c})}),r.jsx(b.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>r.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(a.Text,{mt:"lg",size:"sm",children:"Y Axis"}),r.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(b.Controller,{name:"y_axis_data_key",control:i,render:({field:c})=>r.jsx(Q,{label:"Data Field",required:!0,...c})}),r.jsx(b.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>r.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(a.Text,{mt:"lg",size:"sm",children:"Z Axis"}),r.jsxs(a.Group,{justify:"space-between",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r.jsx(b.Controller,{name:"z_axis_data_key",control:i,render:({field:c})=>r.jsx(Q,{label:"Data Field",required:!0,...c})}),r.jsx(b.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>r.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),r.jsx(a.Group,{justify:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:r.jsxs(a.Button,{color:"blue",type:"submit",children:[r.jsx(C.IconDeviceFloppy,{size:20}),r.jsx(a.Text,{ml:"md",size:"sm",children:"Save"})]})})]})}):null}const uy=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function dy(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:o,z_axis_data_key:l,...c}=e;return{...c,x_axis_data_key:s(i),y_axis_data_key:s(o),z_axis_data_key:s(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class py extends Te{constructor(){super(...arguments);N(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:dy(i,s)}})}}const hy={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new py,name:"bar-3d",viewRender:ly,configRender:cy,createConfig(){return{version:2,config:v.cloneDeep(ma)}},translation:uy},gy=({disabled:e,value:t,onChange:n})=>{const s=i=>{i&&n(i)};return r.jsxs(a.Box,{sx:{position:"relative"},children:[e&&r.jsx(a.Overlay,{backgroundOpacity:.6,color:"#fff",zIndex:5,blur:2}),r.jsx(ut,{height:"500px",defaultLanguage:"javascript",value:t,onChange:s,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:e}})]})};function at({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 Ke(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
93
93
  `)}}const Mt=g.forwardRef(({value:e,onChange:t,triggerButtonText:n},s)=>{const{t:i}=_.useTranslation(),[o,{setTrue:l,setFalse:c}]=Y.useBoolean(),[u,d]=g.useState(e);g.useEffect(()=>{d(e)},[e]);const p=k=>{d({...u,enabled:k})},h=()=>{c();const{enabled:k,func_content:T}=u,D={enabled:k,func_content:T};d(D),t(D)},x=()=>{c(),d(e)},y=k=>{d(T=>({...T,func_content:k}))},m=()=>{y(Ke().func_content)},j=n??i("chart.axis.customize_label");return r.jsxs(r.Fragment,{children:[r.jsx(a.Button,{variant:"filled",color:"grape",leftSection:r.jsx(C.IconMathFunction,{size:16}),mt:24,onClick:l,sx:{flexGrow:0},children:j}),r.jsx(a.Modal,{size:800,title:j,opened:o,onClose:c,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:o&&r.jsxs(a.Stack,{children:[r.jsx(a.Checkbox,{mt:10,label:i("common.enabled"),checked:u.enabled,onChange:k=>p(k.currentTarget.checked)}),r.jsx(gy,{value:u.func_content,onChange:y,disabled:!u.enabled}),r.jsxs(a.Group,{justify:"space-between",children:[r.jsx(a.Button,{onClick:m,color:"red",leftSection:r.jsx(C.IconRecycle,{size:20}),children:i("common.actions.reset_to_default")}),r.jsxs(a.Group,{justify:"flex-end",children:[r.jsx(a.Button,{onClick:x,variant:"subtle",children:i("common.actions.cancel")}),r.jsx(a.Button,{color:"green",leftSection:r.jsx(C.IconDeviceFloppy,{size:16}),onClick:h,children:i("common.actions.save")})]})]})]})})]})}),wn={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1};function xd(){return v.cloneDeep(wn)}const fy=[{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:"点击箱体、散点或异常点"}}}}],md={id:"builtin:echarts:click-echart:series",displayName:"viz.boxplot.click_series.label",nameRender:my,configRender:xy,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 xy(e){return r.jsx(r.Fragment,{})}function my(e){const{t}=_.useTranslation();return r.jsx(a.Text,{size:"sm",children:t("viz.boxplot.click_series.label")})}const fs=g.forwardRef(({sectionTitle:e,value:t,onChange:n},s)=>{const{t:i,i18n:o}=_.useTranslation(),l=u=>d=>{const p=v.cloneDeep(t);v.set(p,u,d),n(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 r.jsxs(a.Stack,{gap:0,children:[e&&r.jsx(a.Divider,{mb:-5,mt:5,variant:"dotted",label:e,labelPosition:"right",styles:{label:{color:"dimmed"}}}),r.jsxs(a.Group,{grow:!0,wrap:"nowrap",children:[r.jsx(a.NumberInput,{label:i("chart.axis.overflow.max_width"),hideControls:!0,value:t.width,onChange:l("width")}),r.jsx(a.Select,{label:i("chart.axis.overflow.label"),data:c,value:t.overflow,onChange:l("overflow")}),r.jsx(a.TextInput,{label:i("chart.axis.overflow.ellipsis"),value:t.ellipsis,disabled:!0})]})]})}),Et=g.forwardRef(({value:e,onChange:t},n)=>{const{t:s}=_.useTranslation(),i=l=>{t({...e,on_axis:l})},o=l=>{t({...e,in_tooltip:l})};return r.jsxs(a.Stack,{ref:n,gap:0,children:[r.jsx(fs,{sectionTitle:s("chart.axis.overflow.section_title.on_axis"),value:e.on_axis,onChange:i}),r.jsx(fs,{sectionTitle:s("chart.axis.overflow.section_title.in_tooltip"),value:e.in_tooltip,onChange:o})]})});function ot(){return{on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}}}function vt({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`
94
94
  max-width: ${t}px;
95
95
  word-break: ${n};
package/dist/version.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "semver": "13.43.8",
3
- "version": "0d64753ba65b00da6bbc13ceed3180d8f4e93dfa"
2
+ "semver": "13.43.9",
3
+ "version": "400bd0f73706104dd3afa574d90c85f2eae83b0d"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devtable/dashboard",
3
- "version": "13.43.8",
3
+ "version": "13.43.9",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": {
6
6
  "access": "public",