@devtable/dashboard 11.10.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard.es.js +1 -1
- package/dist/dashboard.umd.js +1 -1
- package/dist/stats.html +1 -1
- package/package.json +1 -1
package/dist/dashboard.es.js
CHANGED
|
@@ -1720,7 +1720,7 @@ class Fi {
|
|
|
1720
1720
|
}), this.instanceRegistry.clear(), this.factoryRegistry.clear();
|
|
1721
1721
|
}
|
|
1722
1722
|
}
|
|
1723
|
-
const oc = "
|
|
1723
|
+
const oc = "12.0.0", $m = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1724
1724
|
__proto__: null,
|
|
1725
1725
|
version: oc
|
|
1726
1726
|
}, Symbol.toStringTag, { value: "Module" }));
|
package/dist/dashboard.umd.js
CHANGED
|
@@ -53,7 +53,7 @@ Check the top-level render call using <`+E+">.")}return I}}function rc(w,I){{if(
|
|
|
53
53
|
</table>
|
|
54
54
|
`;function xs(e,t){const n=Object.keys(t),r=Object.values(t);try{return new Function(...n,`return \`${e}\`;`)(...r)}catch(i){throw n.length===0&&e.includes("$")?new Error("[formatSQL] insufficient payload"):i}}function fs(e,t){try{return xs(e,t)}catch(n){return console.error(n),n.message}}function nd({sql:e,pre_process:t}){if(!t.trim())return e;try{return new Function(`return ${t}`)()({sql:e},rt)}catch(n){return console.error(n),e}}function sd(e,t,n){if(!e.trim())return t;try{return new Function(`return ${e}`)()(t,rt,n)}catch(r){return console.error(r),t}}function rd(e){e=e||{};const t=Object.keys(e).sort(),n=[];for(let r=0;r<t.length;r++){const i=t[r];if(i!="authentication"&&e[i])n.push(t[r]+"="+(typeof e[i]=="object"?JSON.stringify(e[i]):e[i]));else{const o=Object.keys(e[i]).sort();for(let l=0;l<o.length;l++){const u=o[l];u!="sign"&&e[i][u]&&n.push(o[l]+"="+(typeof e[i][u]=="object"?JSON.stringify(e[i][u]):e[i][u]))}}}return n.sort().join("&")}function id(e,t){let n=rd(e);return n+="&key="+t,Yc.MD5(n).toString().toUpperCase()}class Ji{constructor(){this.type="default_api_client",this.baseURL="http://localhost:31200",this.app_id="",this.app_secret=""}getAuthentication(t){if(!this.app_id||!this.app_secret)return;const n=new Date().getTime().toString();return{app_id:this.app_id,nonce_str:n,sign:id({app_id:this.app_id,nonce_str:n,...t},this.app_secret)}}getRequest(t,n){return(r,i,o,l)=>{const u=this.buildHeader(o),c=this.buildAxiosConfig(t,r,i,o,u,n);return nt(c).then(d=>l?d:d.data).catch(d=>Promise.reject(d))}}get(t){return this.getRequest("GET",t)}post(t){return this.getRequest("POST",t)}put(t){return this.getRequest("PUT",t)}buildAxiosConfig(t,n,r,i,o,l){const u={baseURL:this.baseURL,method:t,url:n,params:t==="GET"?r:i.params,headers:o,signal:l};return["POST","PUT"].includes(t)&&(u.data=i.string?JSON.stringify(r):r,u.data.authentication=this.getAuthentication(u.data)),u}buildHeader(t){const n=window.localStorage.getItem("token");return{"X-Requested-With":"XMLHttpRequest","Content-Type":t.string?"application/x-www-form-urlencoded":"application/json",authorization:n?`bearer ${n}`:"",...t.headers}}}class ad{constructor(t){this.implementation=t}getRequest(t,n){return this.implementation.getRequest(t,n)}get(t){return this.getRequest("GET",t)}post(t){return this.getRequest("POST",t)}put(t){return this.getRequest("PUT",t)}}class Zi extends Ji{constructor(){super(...arguments);L(this,"makeQueryENV",null)}query(n){return async(r,i={})=>{var o;return r.env||(r.env=((o=this.makeQueryENV)==null?void 0:o.call(this))??{error:"failed to run makeQueryENV"}),this.post(n)("/query",r,i)}}httpDataSourceQuery(n){return async(r,i={})=>{var o;return r.env||(r.env=((o=this.makeQueryENV)==null?void 0:o.call(this))??{error:"failed to run makeQueryENV"}),this.getRequest("POST",n)("/query",r,i,!0)}}structure(n){return async(r,i={})=>this.post(n)("/query/structure",r,i)}}class Hi{constructor(t){this.implementation=t}query(t){return this.implementation.query(t)}httpDataSourceQuery(t){return this.implementation.httpDataSourceQuery(t)}structure(t){return this.implementation.structure(t)}getRequest(t,n){return this.implementation.getRequest(t,n)}get(t){return this.getRequest("GET",t)}post(t){return this.getRequest("POST",t)}put(t){return this.getRequest("PUT",t)}}const Mt=new Zi;function gs(e){Mt.baseURL!==e.apiBaseURL&&(Mt.baseURL=e.apiBaseURL),e.app_id&&(Mt.app_id=e.app_id),e.app_secret&&(Mt.app_secret=e.app_secret),e.makeQueryENV&&(Mt.makeQueryENV=e.makeQueryENV)}const ea=new Hi(Mt),Je=ea,Yt=g.forwardRef(function({value:t,onChange:n,...r},i){return s.jsx(a.TextInput,{ref:i,value:t,onChange:n,...r})});function z(e){const[t,n]=e.split(".");return{queryID:t,columnKey:n}}function od(e){return e.includes(".")?z(e):{queryID:"",columnKey:e}}function Ze(e,t){var i;const{queryID:n,columnKey:r}=z(t);return n?r?((i=e[n])==null?void 0:i.map(o=>o[r]))??[]:e[n]:[]}function Xt(e,t){const{queryID:n}=z(t);return n?e[n]:[]}function ld(e){return Object.values(e)[0]}function yn(e,t){const{queryID:n,columnKey:r}=z(t);return e[r]}const ta=["function aggregation({ queryData }, utils) {",' return "Aggregation Result";',"}"].join(`
|
|
55
55
|
`),zt={type:"none",config:{},fallback:"0"};function ud(e){const t=Array.from(e).sort((r,i)=>r-i),n=Math.floor(t.length/2);return t.length%2===0?(t[n-1]+t[n])/2:t[n]}function cd(e,t){switch(t.type){case"sum":return y.sum(e);case"mean":return y.mean(e);case"median":return ud(e);case"max":return y.max(e);case"min":return y.min(e);case"quantile":return Rt.quantile(e,t.config.p);case"CV":const n=mn.std(...e),r=mn.mean(...e);return r?n/r:Number.NaN;case"std":return mn.std(...e);default:return e}}function ms(e,t){const n=e.map(Number),r=cd(n,t);return typeof r=="number"?Number.isFinite(r)?r:t.fallback:r??t.fallback}function dd(e,t,n){try{const r=Xt(e,t);return new Function(`return ${n.config.func}`)()({queryData:r},rt)}catch(r){return console.error(r),r.message}}function bn(e,t,n){try{return n.type==="custom"?dd(e,t,n):ms(Ze(e,t),n)}catch(r){return console.error(r),null}}class pd{constructor({valueRange:t,colorRange:n}){L(this,"mapper");this.mapper=bt.interpolate(t,n)}getColor(t){return this.mapper(t)}}const je={mantissa:0,output:"number",trimMantissa:!1,average:!1,absolute:!1};function W(e,{absolute:t,...n}){if(e===null)return String(e);try{let r=xn(e).value();if(r===void 0||Number.isNaN(r))throw new Error(`[formatNumber]Not a number: ${e}`);return t&&(r=Math.abs(r)),xn(r).format(n)}catch(r){return console.debug(r),String(e)}}function hd(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function it({data_field:e,aggregation:t},n){return bn(n,e,t)}function Pe({formatter:e,aggregation:t},n){if(typeof n!="string"&&typeof n!="number")return hd(n);if(t.type==="custom")return n;try{return W(n,e)}catch(r){return console.error(r),n}}function xd(e,t){if(e.type==="static")return e.staticColor;if(e.type==="continuous")try{if(typeof t!="number")throw new Error(`[getColorByColorConf] Invalid type of aggregated value: ${t}`);return new pd(e).getColor(t)}catch(n){return console.error(n),"black"}return"black"}function fd(e,t){const{color:n,data_field:r,aggregation:i,size:o,weight:l}=e,u=bn(t,r,i),c=Pe(e,u);return s.jsx(a.Text,{sx:{fontSize:o,display:"inline"},color:xd(n,u),weight:l,children:c})}function gd(e,t){const n={};return e.forEach(r=>{const i=r.name;n[i]=fd(r,t)}),n}function md(e){return e.split(" ").map((t,n)=>s.jsxs(g.Fragment,{children:[t," "]},n))}function yd(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
56
|
-
`,"<br/>").split("<br/>");return n.map((i,o)=>{const l=[md(i)];return o!==n.length-1&&l.push(s.jsx("br",{},`br-${o}`)),l}).flat().filter(i=>i!==void 0)}function ys(e){return yd(e)}function Jt(e,t,n){const r=gd(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map((o,l)=>{const u=i.exec(o);if(!u)return ys(o);const c=r[u[1]];if(!c)return ys(o);const d=u[2]??"";return s.jsxs(g.Fragment,{children:[c,ys(d)]},`${o}-${l}`)})}function bd(e,t){const{data_field:n,aggregation:r}=e,i=bn(t,n,r);return Pe(e,i)}function na(e,t){const n={};return e.forEach(r=>{n[r.name]=bd(r,t)}),n}function jn(e,t,n){const r=na(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{const l=i.exec(o);if(!l)return o;const u=r[l[1]];if(!u)return o;const c=l[2]??"";return`${u}${c}`}).join("")}const bs={grid:{axis:"#97999D",scope:"rgba(47,140,192,0.1)",boundary:"#789AB4",reference:"#CFCFD8"},graphics:{compared:{blueDark:"#3E7CAB",blue:"#6398C7",blueLight:"#7CB0DF",blue10:"#6398C71a",redDark:"#AF5F6B",red:"#CD7C88",redLight:"#E794A0",red10:"#CD7C881a"},gradient:{distributed:"linear-gradient(90deg, #1babe6 0%, #2fc8c8 28.63%, #98d44b 48.86%, #ffd057 67.53%, #f5ae53 80.6%, #e76441 91.18%, #b90000 100%)",protrude:"linear-gradient(180deg, #ec73734d 0%, #ec737300 100%)"},level:{lv0:"#6398C7",lv1:"#61B5BF",lv2:"#54D4BB",lv3:"#F5D277",lv4:"#E8BB7F",lv5:"#DB9E84",lv6:"#CB8089"},depth:{dp0:"#FFF7F8",dp1:"#FFE1E1",dp2:"#FDBCBC",dp3:"#F39494",dp4:"#FA4242",dp5:"#E21212"},multiple:{c1:"#66B4DB",c2:"#E46464",c3:"#EEBA00",c4:"#33A678",c5:"#9D88CB",c6:"#939943",c7:"#E49792",c8:"#09A2B8",c9:"#AF5F6B",c10:"#6CA157",c11:"#3E7CAB",c12:"#6398C7",c13:"#E692BA",c14:"#97B566",c15:"#8CACE2",c16:"#CA79AC",c17:"#6DBC80",c18:"#B08F4B",c19:"#39BFA2",c20:"#826BAF"}}};function jd(){J.registerTheme("merico-light",{color:Object.values(bs.graphics.multiple),visualMap:{color:Object.values(bs.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function sa(){jd()}function*vd(e){const t=bs.graphics[e];if(!t)throw new Error("Invalid palette key provided");const n=Object.values(t);let r=0;for(;;)yield n[r%n.length],r++}function ra(){return{filters:{},context:{}}}function js(e){const t=ra();if(!e)return ra();const{filters:n=t.filters,context:r=t.context}=e;return{filters:n,context:r}}class we extends g.Component{constructor(t){super(t),this.state={error:null}}componentDidCatch(t){this.setState({error:t})}render(){var t;if(this.state.error){const n=()=>{this.setState({error:null})};return s.jsxs(a.Box,{children:[s.jsx(a.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),s.jsx(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function wd(e,t={handleError:!0}){return n=>s.jsx(we,{...t,children:s.jsx(e,{...n})})}function Cd(e,t){return new Function(`return ${e}`)()(t,rt)}function Sd(e,t,n){return Cd(e,{context:t,filters:n})}function _d(e,t){try{return new Function(`return ${e.config.processing.pre}`)()(t,rt)}catch(n){return console.error(n),t}}function kd(e,t){return new Function(`return ${e.config.processing.post}`)()(t,rt)}function Td(e,t,n){return e?new Function(`return ${e}`)()(t,rt,n):t}const At=e=>y.cloneDeepWith(e,(t,n)=>{if(n!==void 0&&t)return K.toJS(t)}),vn={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Dd(e,t){const n=Ii.decode(t);n!==e&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:e,after:t,v:n}),console.groupEnd())}async function Id({query:e,name:t,payload:n,additionals:r},i){if(!e.sql)return[];const{type:o,key:l,sql:u,pre_process:c,post_process:d}=e,h=xs(u,n),p=nd({sql:h,pre_process:c}),x=Ii.encode(p);Dd(p,x);let m=await Je.query(i)({type:o,key:l,query:x,...r},{params:{name:t}});return m=sd(d,m,js(n)),m}async function Md({type:e,key:t,configString:n,name:r,additionals:i},o){try{return await Je.httpDataSourceQuery(o)({type:e,key:t,query:n,...i},{params:{name:r}})}catch(l){if(nt.isCancel(l))throw l;return console.error(l),l}}async function vs(){try{return(await Je.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(e){return console.error(e),[]}}async function ia(){try{return(await Je.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(e){return console.error(e),[]}}class aa{constructor(t){L(this,"rootRef");this.rootRef=K.observable({current:t})}async deleteItem(t){K.runInAction(()=>{y.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?K.toJS(this.rootRef.current):y.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(y.isObject(n))K.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else K.runInAction(()=>{y.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return K.reaction(()=>this.getValueFromRoot(t),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:y.get(r,"fireImmediately",!1)})}}class zd{constructor(){L(this,"channels",new Map);L(this,"globalChannel",new Mi)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new Mi;return this.channels.set(t,r),r}}class Ad{constructor(t){L(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 r={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new zd,instanceData:new aa(t.viz.conf)};return this.instances.set(t.id,r),r}}function oa(e,t,n,r){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new aa({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const Ed=e=>{const{panel:t,measure:n,vizManager:r,data:i,variables:o}=e,l=r.resolveComponent(t.viz.type),u=r.getOrCreateInstance(t),c={...oa(u,i,r,o),viewport:{width:n.w,height:n.h}},d=l.viewRender;return s.jsx(d,{context:c,instance:u,...y.omit(e,["panel","vizManager","data"])})},Ld=e=>{const{vizManager:t,panel:n,data:r,variables:i}=e,o=t.resolveComponent(n.viz.type),l=t.getOrCreateInstance(n),u={...oa(l,r,t,i)},c=o.configRender;return s.jsx(c,{context:u,instance:l,...y.omit(e,["panel","vizManager","data"])})},la=(e,t)=>{const n=st.bezier(e),r=st.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},wn=e=>{const t=st.bezier(e);return function(n){return t(n/100).hex()}},Pd={type:"interpolation",displayName:"Red / Green",getColor:la(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Bd={type:"interpolation",displayName:"Yellow / Blue",getColor:la(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Od={type:"interpolation",displayName:"Red",getColor:wn(["#fff7f1","darkred"]),name:"red",category:"sequential"},$d={type:"interpolation",displayName:"Green",getColor:wn(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Vd={type:"interpolation",displayName:"Blue",getColor:wn(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},qd={type:"interpolation",displayName:"Orange",getColor:wn(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Nd{constructor(t){L(this,"symbol");this.symbol=Symbol(t)}}function at(e){return new Nd(e)}class ws{constructor(){L(this,"parent");L(this,"factoryRegistry",new Map);L(this,"instanceRegistry",new Map)}createScoped(){const t=new ws;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 r=n(this);return this.instanceRegistry.set(t.symbol,r),r}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=y.get(t,"dispose");y.isFunction(n)&&n.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const ua="11.10.0",Fd=Object.freeze(Object.defineProperty({__proto__:null,version:ua},Symbol.toStringTag,{value:"Module"}));class Gd{constructor(t){L(this,"staticColors",new Map);L(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(r=>{this.register(r)})})}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 Wd{constructor(){L(this,"plugins",new Map);L(this,"vizComponents",new Map);L(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 Rd{constructor(){L(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,r){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(u=>u.version>t.from&&u.version<=t.to),o=y.orderBy(i,"version","asc");if(((l=y.last(o))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((u,c)=>c.handler(u,r),n)}}class ue extends Rd{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(r,i)=>({version:t,...n(r,i)}))}async migrate({configData:t,panelModel:n}){const r=await t.getItem(null),i=y.get(r,"version",0),o=this.run({from:i,to:this.VERSION},r,{panelModel:n});await t.setItem(null,o)}async needMigration({configData:t}){const n=await t.getItem(null);return y.get(n,"version",0)<this.VERSION}}const $=(e,t)=>{const[n,{setFalse:r}]=V.useBoolean(!0),[i,o]=g.useState();g.useEffect(()=>(e.getItem(t).then(u=>{o(u),r()}),e.watchItem(t,u=>{o(u)})));const l=g.useCallback(async u=>{await e.setItem(t,u),o(u)},[e,t]);return{loading:n,value:i,set:l}},De={top:16,right:16,bottom:16,left:16},Qe=e=>Math.max(0,e-De.left-De.right),Ue=e=>Math.max(0,e-De.top-De.bottom),Zt=(e,t)=>({width:Qe(e),height:Ue(t)}),Ie=({width:e,height:t,children:n})=>s.jsx(a.Box,{pt:De.top,pr:De.right,pb:De.bottom,pl:De.left,sx:{width:e,height:t,overflow:"hidden",position:"relative"},children:n}),Cs={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"}};J.use([B.GridComponent,B.VisualMapComponent,B.LegendComponent,B.TooltipComponent,_e.CanvasRenderer]);function Qd({context:e}){const{value:t}=$(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:u,xAxis3D:c,yAxis3D:d,zAxis3D:h}=y.defaults({},t,Cs),p=g.useMemo(()=>Xt(n,o),[n,o]),{x,y:m,z:j}=g.useMemo(()=>({x:z(o),y:z(l),z:z(u)}),[o,l,u]),{min:C,max:T}=g.useMemo(()=>{const A=y.minBy(p,X=>X[j.columnKey]),F=y.maxBy(p,X=>X[j.columnKey]);return{min:y.get(A,j.columnKey),max:y.get(F,j.columnKey)}},[p,j]),D={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:C,max:T,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:c,yAxis3D:d,zAxis3D:h,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:p.map(A=>[A[x.columnKey],A[m.columnKey],A[j.columnKey]])}]};return t?s.jsx(Ie,{width:r,height:i,children:s.jsx(Se,{echarts:J,option:D,style:Zt(r,i),notMerge:!0,theme:"merico-light"})}):null}const ca=g.createContext(null),Ss=ca.Provider;function _s(){const e=g.useContext(ca);if(!e)throw new Error("Please use DashboardModelContextProvider");return e}const Z=()=>_s(),da=()=>_s(),pa=g.createContext({searchButtonProps:{}}),ks=pa.Provider;function ha(){return g.useContext(pa)}const xa=g.createContext(null),Ts=xa.Provider;function fa(){const e=g.useContext(xa);if(!e)throw new Error("Please use ContentModelContextProvider");return e}const R=()=>fa(),pe=()=>fa(),Ud={inEditMode:!1},Cn=g.createContext(Ud),ga=g.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),Ds=ga.Provider;function ma(){const e=g.useContext(ga);if(!e.panel)throw new Error("Please use PanelContextProvider");return e}const ft=()=>ma(),Be=()=>ma(),Kd={fullScreenPanelID:"",setFullScreenPanelID:y.noop},Is=g.createContext(Kd);function ya(){const e=g.useContext(Is);if(!e)throw new Error("Please use FullScreenPanelContext.Provider");return e}const O=S.observer(g.forwardRef(({label:e,required:t,value:n,onChange:r,clearable:i=!1,sx:o,...l},u)=>{const{panel:c}=Be(),d=g.useMemo(()=>c.dataFieldOptions(n,i),[n,i]);if(d.length===0){const h=c.explainDataKey(n);return s.jsxs(a.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[s.jsx(a.HoverCard.Target,{children:s.jsx(a.Box,{children:s.jsx(a.TextInput,{label:e,required:t,defaultValue:h.columnKey,readOnly:!0,disabled:!0})})}),s.jsx(a.HoverCard.Dropdown,{children:s.jsxs(a.Group,{position:"left",spacing:0,children:[s.jsx(a.Text,{size:"xs",color:h.queryName?"black":"red",sx:{fontFamily:"monospace"},children:h.queryName??h.queryID}),s.jsx(a.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),s.jsx(a.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:h.columnKey})]})})]})}return s.jsx(a.Select,{ref:u,label:e,data:d,value:n,onChange:r,required:t,sx:o,maxDropdownHeight:500,...l})}));function Yd({context:e}){const{value:t,set:n}=$(e.instanceData,"config"),r=y.defaults({},t,Cs),{control:i,handleSubmit:o,reset:l}=b.useForm({defaultValues:r});return g.useEffect(()=>{l(r)},[t]),t?s.jsx(a.Stack,{spacing:"xs",children:s.jsxs("form",{onSubmit:o(n),children:[s.jsx(a.Text,{children:"X Axis"}),s.jsxs(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(b.Controller,{name:"x_axis_data_key",control:i,render:({field:u})=>s.jsx(O,{label:"Data Field",required:!0,...u})}),s.jsx(b.Controller,{name:"xAxis3D.name",control:i,render:({field:u})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),s.jsx(a.Text,{mt:"lg",children:"Y Axis"}),s.jsxs(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(b.Controller,{name:"y_axis_data_key",control:i,render:({field:u})=>s.jsx(O,{label:"Data Field",required:!0,...u})}),s.jsx(b.Controller,{name:"yAxis3D.name",control:i,render:({field:u})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),s.jsx(a.Text,{mt:"lg",children:"Z Axis"}),s.jsxs(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(b.Controller,{name:"z_axis_data_key",control:i,render:({field:u})=>s.jsx(O,{label:"Data Field",required:!0,...u})}),s.jsx(b.Controller,{name:"zAxis3D.name",control:i,render:({field:u})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),s.jsx(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:s.jsxs(a.Button,{color:"blue",type:"submit",children:[s.jsx(k.DeviceFloppy,{size:20}),s.jsx(a.Text,{ml:"md",children:"Save"})]})})]})}):null}function Xd(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const r=c=>c&&`${n}.${c}`,{x_axis_data_key:i,y_axis_data_key:o,z_axis_data_key:l,...u}=e;return{...u,x_axis_data_key:r(i),y_axis_data_key:r(o),z_axis_data_key:r(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class Jd extends ue{constructor(){super(...arguments);L(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,r)=>{const{config:i}=n;return{...n,version:2,config:Xd(i,r)}})}}const Zd={displayName:"Bar Chart (3D)",displayGroup:"ECharts-based charts",migrator:new Jd,name:"bar-3d",viewRender:Qd,configRender:Yd,createConfig(){return{version:2,config:y.cloneDeep(Cs)}}},Oe={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
56
|
+
`,"<br/>").split("<br/>");return n.map((i,o)=>{const l=[md(i)];return o!==n.length-1&&l.push(s.jsx("br",{},`br-${o}`)),l}).flat().filter(i=>i!==void 0)}function ys(e){return yd(e)}function Jt(e,t,n){const r=gd(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map((o,l)=>{const u=i.exec(o);if(!u)return ys(o);const c=r[u[1]];if(!c)return ys(o);const d=u[2]??"";return s.jsxs(g.Fragment,{children:[c,ys(d)]},`${o}-${l}`)})}function bd(e,t){const{data_field:n,aggregation:r}=e,i=bn(t,n,r);return Pe(e,i)}function na(e,t){const n={};return e.forEach(r=>{n[r.name]=bd(r,t)}),n}function jn(e,t,n){const r=na(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{const l=i.exec(o);if(!l)return o;const u=r[l[1]];if(!u)return o;const c=l[2]??"";return`${u}${c}`}).join("")}const bs={grid:{axis:"#97999D",scope:"rgba(47,140,192,0.1)",boundary:"#789AB4",reference:"#CFCFD8"},graphics:{compared:{blueDark:"#3E7CAB",blue:"#6398C7",blueLight:"#7CB0DF",blue10:"#6398C71a",redDark:"#AF5F6B",red:"#CD7C88",redLight:"#E794A0",red10:"#CD7C881a"},gradient:{distributed:"linear-gradient(90deg, #1babe6 0%, #2fc8c8 28.63%, #98d44b 48.86%, #ffd057 67.53%, #f5ae53 80.6%, #e76441 91.18%, #b90000 100%)",protrude:"linear-gradient(180deg, #ec73734d 0%, #ec737300 100%)"},level:{lv0:"#6398C7",lv1:"#61B5BF",lv2:"#54D4BB",lv3:"#F5D277",lv4:"#E8BB7F",lv5:"#DB9E84",lv6:"#CB8089"},depth:{dp0:"#FFF7F8",dp1:"#FFE1E1",dp2:"#FDBCBC",dp3:"#F39494",dp4:"#FA4242",dp5:"#E21212"},multiple:{c1:"#66B4DB",c2:"#E46464",c3:"#EEBA00",c4:"#33A678",c5:"#9D88CB",c6:"#939943",c7:"#E49792",c8:"#09A2B8",c9:"#AF5F6B",c10:"#6CA157",c11:"#3E7CAB",c12:"#6398C7",c13:"#E692BA",c14:"#97B566",c15:"#8CACE2",c16:"#CA79AC",c17:"#6DBC80",c18:"#B08F4B",c19:"#39BFA2",c20:"#826BAF"}}};function jd(){J.registerTheme("merico-light",{color:Object.values(bs.graphics.multiple),visualMap:{color:Object.values(bs.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function sa(){jd()}function*vd(e){const t=bs.graphics[e];if(!t)throw new Error("Invalid palette key provided");const n=Object.values(t);let r=0;for(;;)yield n[r%n.length],r++}function ra(){return{filters:{},context:{}}}function js(e){const t=ra();if(!e)return ra();const{filters:n=t.filters,context:r=t.context}=e;return{filters:n,context:r}}class we extends g.Component{constructor(t){super(t),this.state={error:null}}componentDidCatch(t){this.setState({error:t})}render(){var t;if(this.state.error){const n=()=>{this.setState({error:null})};return s.jsxs(a.Box,{children:[s.jsx(a.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),s.jsx(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function wd(e,t={handleError:!0}){return n=>s.jsx(we,{...t,children:s.jsx(e,{...n})})}function Cd(e,t){return new Function(`return ${e}`)()(t,rt)}function Sd(e,t,n){return Cd(e,{context:t,filters:n})}function _d(e,t){try{return new Function(`return ${e.config.processing.pre}`)()(t,rt)}catch(n){return console.error(n),t}}function kd(e,t){return new Function(`return ${e.config.processing.post}`)()(t,rt)}function Td(e,t,n){return e?new Function(`return ${e}`)()(t,rt,n):t}const At=e=>y.cloneDeepWith(e,(t,n)=>{if(n!==void 0&&t)return K.toJS(t)}),vn={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Dd(e,t){const n=Ii.decode(t);n!==e&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:e,after:t,v:n}),console.groupEnd())}async function Id({query:e,name:t,payload:n,additionals:r},i){if(!e.sql)return[];const{type:o,key:l,sql:u,pre_process:c,post_process:d}=e,h=xs(u,n),p=nd({sql:h,pre_process:c}),x=Ii.encode(p);Dd(p,x);let m=await Je.query(i)({type:o,key:l,query:x,...r},{params:{name:t}});return m=sd(d,m,js(n)),m}async function Md({type:e,key:t,configString:n,name:r,additionals:i},o){try{return await Je.httpDataSourceQuery(o)({type:e,key:t,query:n,...i},{params:{name:r}})}catch(l){if(nt.isCancel(l))throw l;return console.error(l),l}}async function vs(){try{return(await Je.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(e){return console.error(e),[]}}async function ia(){try{return(await Je.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(e){return console.error(e),[]}}class aa{constructor(t){L(this,"rootRef");this.rootRef=K.observable({current:t})}async deleteItem(t){K.runInAction(()=>{y.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?K.toJS(this.rootRef.current):y.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(y.isObject(n))K.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else K.runInAction(()=>{y.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return K.reaction(()=>this.getValueFromRoot(t),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:y.get(r,"fireImmediately",!1)})}}class zd{constructor(){L(this,"channels",new Map);L(this,"globalChannel",new Mi)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new Mi;return this.channels.set(t,r),r}}class Ad{constructor(t){L(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 r={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new zd,instanceData:new aa(t.viz.conf)};return this.instances.set(t.id,r),r}}function oa(e,t,n,r){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new aa({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const Ed=e=>{const{panel:t,measure:n,vizManager:r,data:i,variables:o}=e,l=r.resolveComponent(t.viz.type),u=r.getOrCreateInstance(t),c={...oa(u,i,r,o),viewport:{width:n.w,height:n.h}},d=l.viewRender;return s.jsx(d,{context:c,instance:u,...y.omit(e,["panel","vizManager","data"])})},Ld=e=>{const{vizManager:t,panel:n,data:r,variables:i}=e,o=t.resolveComponent(n.viz.type),l=t.getOrCreateInstance(n),u={...oa(l,r,t,i)},c=o.configRender;return s.jsx(c,{context:u,instance:l,...y.omit(e,["panel","vizManager","data"])})},la=(e,t)=>{const n=st.bezier(e),r=st.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},wn=e=>{const t=st.bezier(e);return function(n){return t(n/100).hex()}},Pd={type:"interpolation",displayName:"Red / Green",getColor:la(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Bd={type:"interpolation",displayName:"Yellow / Blue",getColor:la(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Od={type:"interpolation",displayName:"Red",getColor:wn(["#fff7f1","darkred"]),name:"red",category:"sequential"},$d={type:"interpolation",displayName:"Green",getColor:wn(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Vd={type:"interpolation",displayName:"Blue",getColor:wn(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},qd={type:"interpolation",displayName:"Orange",getColor:wn(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Nd{constructor(t){L(this,"symbol");this.symbol=Symbol(t)}}function at(e){return new Nd(e)}class ws{constructor(){L(this,"parent");L(this,"factoryRegistry",new Map);L(this,"instanceRegistry",new Map)}createScoped(){const t=new ws;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 r=n(this);return this.instanceRegistry.set(t.symbol,r),r}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=y.get(t,"dispose");y.isFunction(n)&&n.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const ua="12.0.0",Fd=Object.freeze(Object.defineProperty({__proto__:null,version:ua},Symbol.toStringTag,{value:"Module"}));class Gd{constructor(t){L(this,"staticColors",new Map);L(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(r=>{this.register(r)})})}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 Wd{constructor(){L(this,"plugins",new Map);L(this,"vizComponents",new Map);L(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 Rd{constructor(){L(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,r){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(u=>u.version>t.from&&u.version<=t.to),o=y.orderBy(i,"version","asc");if(((l=y.last(o))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((u,c)=>c.handler(u,r),n)}}class ue extends Rd{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(r,i)=>({version:t,...n(r,i)}))}async migrate({configData:t,panelModel:n}){const r=await t.getItem(null),i=y.get(r,"version",0),o=this.run({from:i,to:this.VERSION},r,{panelModel:n});await t.setItem(null,o)}async needMigration({configData:t}){const n=await t.getItem(null);return y.get(n,"version",0)<this.VERSION}}const $=(e,t)=>{const[n,{setFalse:r}]=V.useBoolean(!0),[i,o]=g.useState();g.useEffect(()=>(e.getItem(t).then(u=>{o(u),r()}),e.watchItem(t,u=>{o(u)})));const l=g.useCallback(async u=>{await e.setItem(t,u),o(u)},[e,t]);return{loading:n,value:i,set:l}},De={top:16,right:16,bottom:16,left:16},Qe=e=>Math.max(0,e-De.left-De.right),Ue=e=>Math.max(0,e-De.top-De.bottom),Zt=(e,t)=>({width:Qe(e),height:Ue(t)}),Ie=({width:e,height:t,children:n})=>s.jsx(a.Box,{pt:De.top,pr:De.right,pb:De.bottom,pl:De.left,sx:{width:e,height:t,overflow:"hidden",position:"relative"},children:n}),Cs={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"}};J.use([B.GridComponent,B.VisualMapComponent,B.LegendComponent,B.TooltipComponent,_e.CanvasRenderer]);function Qd({context:e}){const{value:t}=$(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:u,xAxis3D:c,yAxis3D:d,zAxis3D:h}=y.defaults({},t,Cs),p=g.useMemo(()=>Xt(n,o),[n,o]),{x,y:m,z:j}=g.useMemo(()=>({x:z(o),y:z(l),z:z(u)}),[o,l,u]),{min:C,max:T}=g.useMemo(()=>{const A=y.minBy(p,X=>X[j.columnKey]),F=y.maxBy(p,X=>X[j.columnKey]);return{min:y.get(A,j.columnKey),max:y.get(F,j.columnKey)}},[p,j]),D={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:C,max:T,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:c,yAxis3D:d,zAxis3D:h,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:p.map(A=>[A[x.columnKey],A[m.columnKey],A[j.columnKey]])}]};return t?s.jsx(Ie,{width:r,height:i,children:s.jsx(Se,{echarts:J,option:D,style:Zt(r,i),notMerge:!0,theme:"merico-light"})}):null}const ca=g.createContext(null),Ss=ca.Provider;function _s(){const e=g.useContext(ca);if(!e)throw new Error("Please use DashboardModelContextProvider");return e}const Z=()=>_s(),da=()=>_s(),pa=g.createContext({searchButtonProps:{}}),ks=pa.Provider;function ha(){return g.useContext(pa)}const xa=g.createContext(null),Ts=xa.Provider;function fa(){const e=g.useContext(xa);if(!e)throw new Error("Please use ContentModelContextProvider");return e}const R=()=>fa(),pe=()=>fa(),Ud={inEditMode:!1},Cn=g.createContext(Ud),ga=g.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),Ds=ga.Provider;function ma(){const e=g.useContext(ga);if(!e.panel)throw new Error("Please use PanelContextProvider");return e}const ft=()=>ma(),Be=()=>ma(),Kd={fullScreenPanelID:"",setFullScreenPanelID:y.noop},Is=g.createContext(Kd);function ya(){const e=g.useContext(Is);if(!e)throw new Error("Please use FullScreenPanelContext.Provider");return e}const O=S.observer(g.forwardRef(({label:e,required:t,value:n,onChange:r,clearable:i=!1,sx:o,...l},u)=>{const{panel:c}=Be(),d=g.useMemo(()=>c.dataFieldOptions(n,i),[n,i]);if(d.length===0){const h=c.explainDataKey(n);return s.jsxs(a.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[s.jsx(a.HoverCard.Target,{children:s.jsx(a.Box,{children:s.jsx(a.TextInput,{label:e,required:t,defaultValue:h.columnKey,readOnly:!0,disabled:!0})})}),s.jsx(a.HoverCard.Dropdown,{children:s.jsxs(a.Group,{position:"left",spacing:0,children:[s.jsx(a.Text,{size:"xs",color:h.queryName?"black":"red",sx:{fontFamily:"monospace"},children:h.queryName??h.queryID}),s.jsx(a.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),s.jsx(a.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:h.columnKey})]})})]})}return s.jsx(a.Select,{ref:u,label:e,data:d,value:n,onChange:r,required:t,sx:o,maxDropdownHeight:500,...l})}));function Yd({context:e}){const{value:t,set:n}=$(e.instanceData,"config"),r=y.defaults({},t,Cs),{control:i,handleSubmit:o,reset:l}=b.useForm({defaultValues:r});return g.useEffect(()=>{l(r)},[t]),t?s.jsx(a.Stack,{spacing:"xs",children:s.jsxs("form",{onSubmit:o(n),children:[s.jsx(a.Text,{children:"X Axis"}),s.jsxs(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(b.Controller,{name:"x_axis_data_key",control:i,render:({field:u})=>s.jsx(O,{label:"Data Field",required:!0,...u})}),s.jsx(b.Controller,{name:"xAxis3D.name",control:i,render:({field:u})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),s.jsx(a.Text,{mt:"lg",children:"Y Axis"}),s.jsxs(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(b.Controller,{name:"y_axis_data_key",control:i,render:({field:u})=>s.jsx(O,{label:"Data Field",required:!0,...u})}),s.jsx(b.Controller,{name:"yAxis3D.name",control:i,render:({field:u})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),s.jsx(a.Text,{mt:"lg",children:"Z Axis"}),s.jsxs(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(b.Controller,{name:"z_axis_data_key",control:i,render:({field:u})=>s.jsx(O,{label:"Data Field",required:!0,...u})}),s.jsx(b.Controller,{name:"zAxis3D.name",control:i,render:({field:u})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),s.jsx(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:s.jsxs(a.Button,{color:"blue",type:"submit",children:[s.jsx(k.DeviceFloppy,{size:20}),s.jsx(a.Text,{ml:"md",children:"Save"})]})})]})}):null}function Xd(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const r=c=>c&&`${n}.${c}`,{x_axis_data_key:i,y_axis_data_key:o,z_axis_data_key:l,...u}=e;return{...u,x_axis_data_key:r(i),y_axis_data_key:r(o),z_axis_data_key:r(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class Jd extends ue{constructor(){super(...arguments);L(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,r)=>{const{config:i}=n;return{...n,version:2,config:Xd(i,r)}})}}const Zd={displayName:"Bar Chart (3D)",displayGroup:"ECharts-based charts",migrator:new Jd,name:"bar-3d",viewRender:Qd,configRender:Yd,createConfig(){return{version:2,config:y.cloneDeep(Cs)}}},Oe={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
57
57
|
`)},ba={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:ep,configRender:Hd,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 Hd(e){return s.jsx(s.Fragment,{})}function ep(e){return s.jsx(a.Text,{children:"Click chart's series"})}const tp=[{label:"Truncate",value:"truncate"},{label:"Break Line",value:"break"},{label:"Break Word",value:"breakAll"}],Sn=g.forwardRef(({sectionTitle:e,value:t,onChange:n},r)=>{const i=o=>l=>{const u=y.cloneDeep(t);y.set(u,o,l),n(u)};return s.jsxs(a.Stack,{spacing:0,children:[e&&s.jsx(a.Divider,{mb:-5,mt:5,variant:"dotted",label:e,labelPosition:"right",labelProps:{color:"dimmed"}}),s.jsxs(a.Group,{grow:!0,noWrap:!0,children:[s.jsx(a.NumberInput,{label:"Max Width",hideControls:!0,value:t.width,onChange:i("width")}),s.jsx(a.Select,{label:"Overflow",data:tp,value:t.overflow,onChange:i("overflow")}),s.jsx(a.TextInput,{label:"Ellipsis",value:t.ellipsis,disabled:!0})]})]})}),Ke=g.forwardRef(({value:e,onChange:t},n)=>{const r=o=>{t({...e,on_axis:o})},i=o=>{t({...e,in_tooltip:o})};return s.jsxs(a.Stack,{ref:n,spacing:0,children:[s.jsx(Sn,{sectionTitle:"Overflow on Axis",value:e.on_axis,onChange:r}),s.jsx(Sn,{sectionTitle:"Overflow in Tooltip",value:e.in_tooltip,onChange:i})]})});function Me(){return{on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}}}function $e({overflow:e,width:t}){const n={truncate:"initial",break:"break-all",breakAll:"break-word"}[e],r=e==="truncate"?"nowrap":"initial",i={truncate:"ellipsis",break:"clip",breakAll:"clip"}[e];return`
|
|
58
58
|
max-width: ${t}px;
|
|
59
59
|
word-break: ${n};
|