@devtable/dashboard 13.15.0 → 13.15.1
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/dist/version.json +2 -2
- package/package.json +1 -1
package/dist/dashboard.es.js
CHANGED
|
@@ -1743,7 +1743,7 @@ class Fi {
|
|
|
1743
1743
|
}), this.instanceRegistry.clear(), this.factoryRegistry.clear();
|
|
1744
1744
|
}
|
|
1745
1745
|
}
|
|
1746
|
-
const pc = "13.15.
|
|
1746
|
+
const pc = "13.15.1", ug = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1747
1747
|
__proto__: null,
|
|
1748
1748
|
version: pc
|
|
1749
1749
|
}, Symbol.toStringTag, { value: "Module" }));
|
package/dist/dashboard.umd.js
CHANGED
|
@@ -53,7 +53,7 @@ Check the top-level render call using <`+P+">.")}return z}}function _u(C,z){{if(
|
|
|
53
53
|
</table>
|
|
54
54
|
`;function ks(t,e){const n=Object.keys(e),r=Object.values(e);try{return new Function(...n,`return \`${t}\`;`)(...r)}catch(i){throw n.length===0&&t.includes("$")?new Error("[formatSQL] insufficient payload"):i}}function Ts(t,e){try{return ks(t,e)}catch(n){return console.error(n),n.message}}function vd({sql:t,pre_process:e}){if(!e.trim())return t;try{return new Function(`return ${e}`)()({sql:t},it)}catch(n){return console.error(n),t}}function _d(t,e,n){if(!t.trim())return e;try{return new Function(`return ${t}`)()(e,it,n)}catch(r){return console.error(r),e}}function jd(t){t=t||{};const e=Object.keys(t).sort(),n=[];for(let r=0;r<e.length;r++){const i=e[r];if(i!="authentication"&&t[i])n.push(e[r]+"="+(typeof t[i]=="object"?JSON.stringify(t[i]):t[i]));else{const a=Object.keys(t[i]).sort();for(let l=0;l<a.length;l++){const c=a[l];c!="sign"&&t[i][c]&&n.push(a[l]+"="+(typeof t[i][c]=="object"?JSON.stringify(t[i][c]):t[i][c]))}}}return n.sort().join("&")}function wd(t,e){let n=jd(t);return n+="&key="+e,hd.MD5(n).toString().toUpperCase()}class ma{constructor(){this.type="default_api_client",this.baseURL="http://localhost:31200",this.app_id="",this.app_secret=""}getAuthentication(e){if(!this.app_id||!this.app_secret)return;const n=new Date().getTime().toString();return{app_id:this.app_id,nonce_str:n,sign:wd({app_id:this.app_id,nonce_str:n,...e},this.app_secret)}}getRequest(e,n){return(r,i,a,l)=>{const c=this.buildHeader(a),u=this.buildAxiosConfig(e,r,i,a,c,n);return st(u).then(d=>l?d:d.data).catch(d=>{if(st.isCancel(d))return Promise.reject(d);const p=x.get(d,"response.data.detail.message",d.message);return Promise.reject(new Error(p))})}}get(e){return this.getRequest("GET",e)}post(e){return this.getRequest("POST",e)}put(e){return this.getRequest("PUT",e)}buildAxiosConfig(e,n,r,i,a,l){const c={baseURL:this.baseURL,method:e,url:n,params:e==="GET"?r:i.params,headers:a,signal:l};return["POST","PUT"].includes(e)&&(c.data=i.string?JSON.stringify(r):r,c.data.authentication=this.getAuthentication(c.data)),c}buildHeader(e){const n=window.localStorage.getItem("token");return{"X-Requested-With":"XMLHttpRequest","Content-Type":e.string?"application/x-www-form-urlencoded":"application/json",authorization:n?`bearer ${n}`:"",...e.headers}}}class Cd{constructor(e){this.implementation=e}getRequest(e,n){return this.implementation.getRequest(e,n)}get(e){return this.getRequest("GET",e)}post(e){return this.getRequest("POST",e)}put(e){return this.getRequest("PUT",e)}}class fa extends ma{constructor(){super(...arguments);$(this,"makeQueryENV",null)}query(n){return async(r,i={})=>{var a;return r.env||(r.env=((a=this.makeQueryENV)==null?void 0:a.call(this))??{error:"failed to run makeQueryENV"}),this.post(n)("/query",r,i)}}httpDataSourceQuery(n){return async(r,i={})=>{var a;return r.env||(r.env=((a=this.makeQueryENV)==null?void 0:a.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 ga{constructor(e){this.implementation=e}query(e){return this.implementation.query(e)}httpDataSourceQuery(e){return this.implementation.httpDataSourceQuery(e)}structure(e){return this.implementation.structure(e)}getRequest(e,n){return this.implementation.getRequest(e,n)}get(e){return this.getRequest("GET",e)}post(e){return this.getRequest("POST",e)}put(e){return this.getRequest("PUT",e)}}const Vt=new fa;function Ds(t){Vt.baseURL!==t.apiBaseURL&&(Vt.baseURL=t.apiBaseURL),t.app_id&&(Vt.app_id=t.app_id),t.app_secret&&(Vt.app_secret=t.app_secret),t.makeQueryENV&&(Vt.makeQueryENV=t.makeQueryENV)}const xa=new ga(Vt),at=xa,ln=m.forwardRef(function({value:e,onChange:n,...r},i){return s.jsx(o.TextInput,{ref:i,value:e,onChange:n,...r})});function E(t){const[e,n]=t.split(".");return{queryID:e,columnKey:n}}function Sd(t){return t.includes(".")?E(t):{queryID:"",columnKey:t}}function Xe(t,e){var i;const{queryID:n,columnKey:r}=E(e);return n?r?((i=t[n])==null?void 0:i.map(a=>a[r]))??[]:t[n]:[]}function Dn(t,e){const{queryID:n}=E(e);return n?t[n]:[]}function kd(t){return Object.values(t)[0]}function zn(t,e){const{queryID:n,columnKey:r}=E(e);return t[r]}const ya=["function aggregation({ queryData }, utils) {",' return "Aggregation Result";',"}"].join(`
|
|
55
55
|
`),Nt={type:"none",config:{},fallback:"0"};function Td(t){const e=Array.from(t).sort((r,i)=>r-i),n=Math.floor(e.length/2);return e.length%2===0?(e[n-1]+e[n])/2:e[n]}function Dd(t,e){switch(e.type){case"sum":return x.sum(t);case"mean":return x.mean(t);case"median":return Td(t);case"max":return x.max(t);case"min":return x.min(t);case"quantile":return sn.quantile(t,e.config.p);case"CV":const n=Ot.std(...t),r=Ot.mean(...t);return r?n/r:Number.NaN;case"std":return Ot.std(...t);default:return t}}function zs(t,e){const n=t.map(Number),r=Dd(n,e);return typeof r=="number"?Number.isFinite(r)?r:e.fallback:r??e.fallback}function zd(t,e,n){try{const r=Dn(t,e);return new Function(`return ${n.config.func}`)()({queryData:r},it)}catch(r){return console.error(r),r.message}}function Md(t,e,n){try{const r=Xe(t,e),{method:i}=n.config;return x[i](r)}catch(r){return console.error(r),n.fallback}}function Mn(t,e,n){try{return n.type==="custom"?zd(t,e,n):n.type==="pick_record"?Md(t,e,n):zs(Xe(t,e),n)}catch(r){return console.error(r),null}}class Id{constructor({valueRange:e,colorRange:n}){$(this,"mapper");this.mapper=kt.interpolate(e,n)}getColor(e){return this.mapper(e)}}const _e={mantissa:0,output:"number",trimMantissa:!1,average:!1,absolute:!1};function U(t,{absolute:e,...n}){if(t===null)return String(t);try{let r=Sn(t).value();if(r===void 0||Number.isNaN(r))throw new Error(`[formatNumber]Not a number: ${t}`);return e&&(r=Math.abs(r)),Sn(r).format(n)}catch(r){return console.debug(r),String(t)}}function Ed(t){return t===null?"null":t===void 0?"undefined":Array.isArray(t)?`Array(${t.length})`:t.toString()}function ot({data_field:t,aggregation:e},n){return Mn(n,t,e)}function Be({formatter:t,aggregation:e},n){if(typeof n!="string"&&typeof n!="number")return Ed(n);if(e.type==="custom")return n;try{return U(n,t)}catch(r){return console.error(r),n}}function Ad(t,e){if(t.type==="static")return t.staticColor;if(t.type==="continuous")try{if(typeof e!="number")throw new Error(`[getColorByColorConf] Invalid type of aggregated value: ${e}`);return new Id(t).getColor(e)}catch(n){return console.error(n),"black"}return"black"}function Pd(t,e){const{color:n,data_field:r,aggregation:i,size:a,weight:l}=t,c=Mn(e,r,i),u=Be(t,c);return s.jsx(o.Text,{sx:{fontSize:a,display:"inline"},color:Ad(n,c),weight:l,children:u})}function $d(t,e){const n={};return t.forEach(r=>{const i=r.name;n[i]=Pd(r,e)}),n}function Ld(t){return t.split(" ").map((e,n)=>s.jsxs(m.Fragment,{children:[e," "]},n))}function Bd(t){const n=t.replaceAll("<br />","<br/>").replaceAll(`
|
|
56
|
-
`,"<br/>").split("<br/>");return n.map((i,a)=>{const l=[Ld(i)];return a!==n.length-1&&l.push(s.jsx("br",{},`br-${a}`)),l}).flat().filter(i=>i!==void 0)}function Ms(t){return Bd(t)}function cn(t,e,n){const r=$d(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map((a,l)=>{const c=i.exec(a);if(!c)return Ms(a);const u=r[c[1]];if(!u)return Ms(a);const d=c[2]??"";return s.jsxs(m.Fragment,{children:[u,Ms(d)]},`${a}-${l}`)})}function qd(t,e){const{data_field:n,aggregation:r}=t,i=Mn(e,n,r);return Be(t,i)}function ba(t,e){const n={};return t.forEach(r=>{n[r.name]=qd(r,e)}),n}function un(t,e,n){const r=ba(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map(a=>{const l=i.exec(a);if(!l)return a;const c=r[l[1]];if(!c)return a;const u=l[2]??"";return`${c}${u}`}).join("")}const Tt={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 Od(){we.registerTheme("merico-light",{color:Object.values(Tt.graphics.multiple),visualMap:{color:Object.values(Tt.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function va(){Od()}function*Vd(t){const e=Tt.graphics[t];if(!e)throw new Error("Invalid palette key provided");const n=Object.values(e);let r=0;for(;;)yield n[r%n.length],r++}function _a(){return{filters:{},context:{}}}function Is(t){const e=_a();if(!t)return _a();const{filters:n=e.filters,context:r=e.context}=t;return{filters:n,context:r}}class Ce extends m.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){this.setState({error:e})}render(){var e;if(this.state.error){const n=()=>{this.setState({error:null})};return s.jsxs(o.Box,{children:[s.jsx(o.Text,{size:"xs",children:(e=this.state.error)==null?void 0:e.message}),s.jsx(o.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function Nd(t,e={handleError:!0}){return n=>s.jsx(Ce,{...e,children:s.jsx(t,{...n})})}function Gd(t,e){return new Function(`return ${t}`)()(e,it)}function Fd(t,e,n){return Gd(t,{context:e,filters:n})}function Wd(t,e){try{return new Function(`return ${t.config.processing.pre}`)()(e,it)}catch(n){return console.error(n),e}}function Rd(t,e){return new Function(`return ${t.config.processing.post}`)()(e,it)}function Qd(t,e,n){return t?new Function(`return ${t}`)()(e,it,n):e}function ja(){Wi.use([Tu.CanvasRenderer,rt.BarChart,rt.BoxplotChart,rt.CustomChart,rt.FunnelChart,rt.HeatmapChart,rt.LineChart,rt.PieChart,rt.RadarChart,rt.ScatterChart,rt.SunburstChart,bt.CalendarComponent,bt.DataZoomComponent,bt.GridComponent,bt.LegendComponent,bt.TooltipComponent,bt.MarkLineComponent,bt.MarkAreaComponent,bt.VisualMapComponent])}const Gt=t=>x.cloneDeepWith(t,(e,n)=>{if(n!==void 0&&e)return J.toJS(e)}),In={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Ud(t,e){const n=Ri.decode(e);n!==t&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:t,after:e,v:n}),console.groupEnd())}async function Yd({query:t,name:e,payload:n,additionals:r},i){if(!t.sql)return[];const{type:a,key:l,sql:c,pre_process:u,post_process:d}=t,p=ks(c,n),h=vd({sql:p,pre_process:u}),g=Ri.encode(h);Ud(h,g);let b=await at.query(i)({type:a,key:l,query:g,...r},{params:{name:e}});return b=_d(d,b,Is(n)),b}async function Kd({type:t,key:e,configString:n,name:r,additionals:i},a){try{return await at.httpDataSourceQuery(a)({type:t,key:e,query:n,...i},{params:{name:r}})}catch(l){if(st.isCancel(l))throw l;return console.error(l),l}}async function Es(){try{return(await at.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(t){return console.error(t),[]}}async function wa(){try{return(await at.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(t){return console.error(t),[]}}class Ca{constructor(e){$(this,"rootRef");this.rootRef=J.observable({current:e})}async deleteItem(e){J.runInAction(()=>{x.unset(this.rootRef.current,[e])})}getItem(e){const n=this.getValueFromRoot(e);return Promise.resolve(n)}getValueFromRoot(e){return e===null?J.toJS(this.rootRef.current):x.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(x.isObject(n))J.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else J.runInAction(()=>{x.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,r){return J.reaction(()=>this.getValueFromRoot(e),(i,a)=>{n(i,a)},{requiresObservable:!0,fireImmediately:x.get(r,"fireImmediately",!1)})}}class Jd{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new Qi)}getChannel(e){const n=this.channels.get(e);if(n)return n;const r=new Qi;return this.channels.set(e,r),r}}class Xd{constructor(e){$(this,"instances",new Map);this.pluginManager=e}get availableVizList(){return this.pluginManager.installedPlugins.flatMap(e=>e.manifest.viz)}resolveComponent(e){return this.pluginManager.factory.viz(e)}getOrCreateInstance(e){const n=this.instances.get(e.id);if(n)return n;const r={id:e.id,name:e.viz.type,type:e.viz.type,messageChannels:new Jd,instanceData:new Ca(e.viz.conf)};return this.instances.set(e.id,r),r}}function Sa(t,e,n,r){return{vizManager:n,locale:"zh",msgChannels:t.messageChannels,instanceData:t.instanceData,pluginData:new Ca({}),colorPalette:{getColor(){return()=>""}},data:e,variables:r}}const Zd=t=>{const{panel:e,measure:n,vizManager:r,data:i,variables:a}=t,l=r.resolveComponent(e.viz.type),c=r.getOrCreateInstance(e),u={...Sa(c,i,r,a),viewport:{width:n.w,height:n.h}},d=l.viewRender;return s.jsx(d,{context:u,instance:c,...x.omit(t,["panel","vizManager","data"])})},Hd=t=>{const{vizManager:e,panel:n,data:r,variables:i}=t,a=e.resolveComponent(n.viz.type),l=e.getOrCreateInstance(n),c={...Sa(l,r,e,i)},u=a.configRender;return s.jsx(u,{context:c,instance:l,...x.omit(t,["panel","vizManager","data"])})},ka=(t,e)=>{const n=dt.bezier(t),r=dt.bezier(e);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},En=t=>{const e=dt.bezier(t);return function(n){return e(n/100).hex()}},ep={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:ka(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},tp={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:ka(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},np={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:En(["#fff7f1","darkred"]),name:"red",category:"sequential"},sp={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:En(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},rp={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:En(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},ip={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:En(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class ap{constructor(e){$(this,"symbol");this.symbol=Symbol(e)}}function ht(t){return new ap(t)}class As{constructor(){$(this,"parent");$(this,"factoryRegistry",new Map);$(this,"instanceRegistry",new Map)}createScoped(){const e=new As;return e.parent=this,e}getRequired(e){return this.get(e)}get(e){if(this.instanceRegistry.has(e.symbol))return this.instanceRegistry.get(e.symbol);const n=this.factoryRegistry.get(e.symbol);if(n){const r=n(this);return this.instanceRegistry.set(e.symbol,r),r}if(this.parent)return this.parent.get(e)}provideFactory(e,n){return this.factoryRegistry.has(e.symbol)?console.warn(`Token ${e.symbol.toString()} is already registered`):this.factoryRegistry.set(e.symbol,n),this}provideValue(e,n){return this.factoryRegistry.has(e.symbol)?console.warn(`Token ${e.symbol.toString()} is already registered`):this.factoryRegistry.set(e.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(e=>{const n=x.get(e,"dispose");x.isFunction(n)&&n.bind(e)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const Ta="13.15.0",op=Object.freeze(Object.defineProperty({__proto__:null,version:Ta},Symbol.toStringTag,{value:"Module"}));class lp{constructor(e){$(this,"staticColors",new Map);$(this,"interpolations",new Map);e.installedPlugins.forEach(n=>{n.manifest.color.forEach(r=>{this.register(r)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(e){const n=this.encodeColor(e);e.type==="single"?(this.staticColors.has(n)&&console.warn(`the color '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`),this.staticColors.set(n,e)):e.type==="interpolation"&&(this.interpolations.has(n)&&console.warn(`the interpolation '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`,`the interpolation '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`),this.interpolations.set(n,e))}decodeStaticColor(e){return this.staticColors.get(e)}encodeColor(e){return`\${${e.category}}.{${e.name}}`}decodeInterpolation(e){return this.interpolations.get(e)}getColorInterpolations(){return Array.from(this.interpolations.values())}}class cp{constructor(){$(this,"plugins",new Map);$(this,"vizComponents",new Map);$(this,"factory",{viz:e=>{const n=this.vizComponents.get(e);if(n)return n;throw new Error(`Viz Component (${e}) not found`)}})}install(e){if(this.plugins.has(e.id))throw new Error(`Plugin (${e.id}) has been installed before`);this.plugins.set(e.id,e);for(const n of e.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 up{constructor(){$(this,"migrations",[])}version(e,n){return this.migrations.push({version:e,handler:n}),this}run(e,n,r){var l;if(e.from===e.to)return n;if(e.from>e.to)throw new Error(`Can not downgrade from version '${e.from}' to (${e.to})`);const i=this.migrations.filter(c=>c.version>e.from&&c.version<=e.to),a=x.orderBy(i,"version","asc");if(((l=x.last(a))==null?void 0:l.version)!==e.to)throw new Error(`Migration to version ${e.to} not found`);return a.reduce((c,u)=>u.handler(c,r),n)}}class ce extends up{constructor(){super(),this.configVersions()}version(e,n){return super.version(e,(r,i)=>({version:e,...n(r,i)}))}async migrate({configData:e,panelModel:n}){const r=await e.getItem(null),i=x.get(r,"version",0),a=this.run({from:i,to:this.VERSION},r,{panelModel:n});await e.setItem(null,a)}async needMigration({configData:e}){const n=await e.getItem(null);return x.get(n,"version",0)<this.VERSION}}const O=(t,e)=>{const[n,{setFalse:r}]=G.useBoolean(!0),[i,a]=m.useState();m.useEffect(()=>(t.getItem(e).then(c=>{a(c),r()}),t.watchItem(e,c=>{a(c)})));const l=m.useCallback(async c=>{await t.setItem(e,c),a(c)},[t,e]);return{loading:n,value:i,set:l}},Me={top:16,right:16,bottom:16,left:16},Ze=t=>Math.max(0,t-Me.left-Me.right),He=t=>Math.max(0,t-Me.top-Me.bottom),dn=(t,e)=>({width:Ze(t),height:He(e)}),Ie=({width:t,height:e,children:n})=>s.jsx(o.Box,{pt:Me.top,pr:Me.right,pb:Me.bottom,pl:Me.left,sx:{width:t,height:e,overflow:"hidden",position:"relative"},children:n}),Ps={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 dp({context:t}){const{value:e}=O(t.instanceData,"config"),n=t.data,{width:r,height:i}=t.viewport,{x_axis_data_key:a,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=x.defaults({},e,Ps),h=m.useMemo(()=>Dn(n,a),[n,a]),{x:g,y:b,z:v}=m.useMemo(()=>({x:E(a),y:E(l),z:E(c)}),[a,l,c]),{min:w,max:T}=m.useMemo(()=>{const I=x.minBy(h,N=>N[v.columnKey]),A=x.maxBy(h,N=>N[v.columnKey]);return{min:x.get(I,v.columnKey),max:x.get(A,v.columnKey)}},[h,v]),D={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:w,max:T,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:p,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map(I=>[I[g.columnKey],I[b.columnKey],I[v.columnKey]])}]};return e?s.jsx(Ie,{width:r,height:i,children:s.jsx(De,{echarts:we,option:D,style:dn(r,i),notMerge:!0,theme:"merico-light"})}):null}const Da=m.createContext(null),$s=Da.Provider;function Ls(){const t=m.useContext(Da);if(!t)throw new Error("Please use DashboardModelContextProvider");return t}const Z=()=>Ls(),za=()=>Ls(),Ma=m.createContext({searchButtonProps:{}}),Bs=Ma.Provider;function Ia(){return m.useContext(Ma)}const Ea=m.createContext(null),qs=Ea.Provider;function Aa(){const t=m.useContext(Ea);if(!t)throw new Error("Please use ContentModelContextProvider");return t}const Y=()=>Aa(),he=()=>Aa(),pp={inEditMode:!1},An=m.createContext(pp),Pa=m.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),Os=Pa.Provider;function $a(){const t=m.useContext(Pa);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const mt=()=>$a(),Ee=()=>$a(),hp={fullScreenPanelID:"",setFullScreenPanelID:x.noop},Vs=m.createContext(hp);function La(){const t=m.useContext(Vs);if(!t)throw new Error("Please use FullScreenPanelContext.Provider");return t}const mp={en:"en",zh:"zh-cn"};function Ns({children:t}){const{i18n:e}=_.useTranslation(),n=m.useMemo(()=>{const r=e.language;return mp[r]??"en"},[e.language]);return s.jsx(Ui.DatesProvider,{settings:{locale:n,firstDayOfWeek:1},children:t})}const q=S.observer(m.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,queryID:a,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Ee(),h=m.useMemo(()=>p.dataFieldOptions(r,l,a),[r,l,a]);if(h.length===0){const g=p.explainDataKey(r);return s.jsxs(o.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[s.jsx(o.HoverCard.Target,{children:s.jsx(o.Box,{children:s.jsx(o.TextInput,{label:t,required:e,defaultValue:g.columnKey,readOnly:!0,disabled:!0})})}),s.jsx(o.HoverCard.Dropdown,{children:s.jsxs(o.Group,{position:"left",spacing:0,children:[s.jsx(o.Text,{size:"xs",color:g.queryName?"black":"red",sx:{fontFamily:"monospace"},children:g.queryName??g.queryID}),s.jsx(o.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),s.jsx(o.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:g.columnKey})]})})]})}return s.jsx(o.Select,{ref:d,label:t,description:n,data:h,value:r,onChange:i,required:e,sx:c,maxDropdownHeight:500,...u})}));function fp({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=x.defaults({},e,Ps),{control:i,handleSubmit:a,reset:l}=y.useForm({defaultValues:r});return m.useEffect(()=>{l(r)},[e]),e?s.jsx(o.Stack,{spacing:"xs",children:s.jsxs("form",{onSubmit:a(n),children:[s.jsx(o.Text,{children:"X Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(y.Controller,{name:"x_axis_data_key",control:i,render:({field:c})=>s.jsx(q,{label:"Data Field",required:!0,...c})}),s.jsx(y.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>s.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Text,{mt:"lg",children:"Y Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(y.Controller,{name:"y_axis_data_key",control:i,render:({field:c})=>s.jsx(q,{label:"Data Field",required:!0,...c})}),s.jsx(y.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>s.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Text,{mt:"lg",children:"Z Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(y.Controller,{name:"z_axis_data_key",control:i,render:({field:c})=>s.jsx(q,{label:"Data Field",required:!0,...c})}),s.jsx(y.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>s.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:s.jsxs(o.Button,{color:"blue",type:"submit",children:[s.jsx(L.DeviceFloppy,{size:20}),s.jsx(o.Text,{ml:"md",children:"Save"})]})})]})}):null}const gp=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function xp(t,{panelModel:e}){try{const n=e.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const r=u=>u&&`${n}.${u}`,{x_axis_data_key:i,y_axis_data_key:a,z_axis_data_key:l,...c}=t;return{...c,x_axis_data_key:r(i),y_axis_data_key:r(a),z_axis_data_key:r(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class yp extends ce{constructor(){super(...arguments);$(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:xp(i,r)}})}}const bp={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new yp,name:"bar-3d",viewRender:dp,configRender:fp,createConfig(){return{version:2,config:x.cloneDeep(Ps)}},translation:gp},vp=({disabled:t,value:e,onChange:n})=>{const r=i=>{i&&n(i)};return s.jsxs(o.Box,{sx:{position:"relative"},children:[t&&s.jsx(o.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),s.jsx(Le,{height:"500px",defaultLanguage:"javascript",value:e,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:t}})]})};function Ae({enabled:t,func_content:e}){return(n,r)=>{if(!t)return n;try{return new Function(`return ${e}`)()(n,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}function Se(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
56
|
+
`,"<br/>").split("<br/>");return n.map((i,a)=>{const l=[Ld(i)];return a!==n.length-1&&l.push(s.jsx("br",{},`br-${a}`)),l}).flat().filter(i=>i!==void 0)}function Ms(t){return Bd(t)}function cn(t,e,n){const r=$d(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map((a,l)=>{const c=i.exec(a);if(!c)return Ms(a);const u=r[c[1]];if(!u)return Ms(a);const d=c[2]??"";return s.jsxs(m.Fragment,{children:[u,Ms(d)]},`${a}-${l}`)})}function qd(t,e){const{data_field:n,aggregation:r}=t,i=Mn(e,n,r);return Be(t,i)}function ba(t,e){const n={};return t.forEach(r=>{n[r.name]=qd(r,e)}),n}function un(t,e,n){const r=ba(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map(a=>{const l=i.exec(a);if(!l)return a;const c=r[l[1]];if(!c)return a;const u=l[2]??"";return`${c}${u}`}).join("")}const Tt={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 Od(){we.registerTheme("merico-light",{color:Object.values(Tt.graphics.multiple),visualMap:{color:Object.values(Tt.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function va(){Od()}function*Vd(t){const e=Tt.graphics[t];if(!e)throw new Error("Invalid palette key provided");const n=Object.values(e);let r=0;for(;;)yield n[r%n.length],r++}function _a(){return{filters:{},context:{}}}function Is(t){const e=_a();if(!t)return _a();const{filters:n=e.filters,context:r=e.context}=t;return{filters:n,context:r}}class Ce extends m.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){this.setState({error:e})}render(){var e;if(this.state.error){const n=()=>{this.setState({error:null})};return s.jsxs(o.Box,{children:[s.jsx(o.Text,{size:"xs",children:(e=this.state.error)==null?void 0:e.message}),s.jsx(o.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function Nd(t,e={handleError:!0}){return n=>s.jsx(Ce,{...e,children:s.jsx(t,{...n})})}function Gd(t,e){return new Function(`return ${t}`)()(e,it)}function Fd(t,e,n){return Gd(t,{context:e,filters:n})}function Wd(t,e){try{return new Function(`return ${t.config.processing.pre}`)()(e,it)}catch(n){return console.error(n),e}}function Rd(t,e){return new Function(`return ${t.config.processing.post}`)()(e,it)}function Qd(t,e,n){return t?new Function(`return ${t}`)()(e,it,n):e}function ja(){Wi.use([Tu.CanvasRenderer,rt.BarChart,rt.BoxplotChart,rt.CustomChart,rt.FunnelChart,rt.HeatmapChart,rt.LineChart,rt.PieChart,rt.RadarChart,rt.ScatterChart,rt.SunburstChart,bt.CalendarComponent,bt.DataZoomComponent,bt.GridComponent,bt.LegendComponent,bt.TooltipComponent,bt.MarkLineComponent,bt.MarkAreaComponent,bt.VisualMapComponent])}const Gt=t=>x.cloneDeepWith(t,(e,n)=>{if(n!==void 0&&e)return J.toJS(e)}),In={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Ud(t,e){const n=Ri.decode(e);n!==t&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:t,after:e,v:n}),console.groupEnd())}async function Yd({query:t,name:e,payload:n,additionals:r},i){if(!t.sql)return[];const{type:a,key:l,sql:c,pre_process:u,post_process:d}=t,p=ks(c,n),h=vd({sql:p,pre_process:u}),g=Ri.encode(h);Ud(h,g);let b=await at.query(i)({type:a,key:l,query:g,...r},{params:{name:e}});return b=_d(d,b,Is(n)),b}async function Kd({type:t,key:e,configString:n,name:r,additionals:i},a){try{return await at.httpDataSourceQuery(a)({type:t,key:e,query:n,...i},{params:{name:r}})}catch(l){if(st.isCancel(l))throw l;return console.error(l),l}}async function Es(){try{return(await at.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(t){return console.error(t),[]}}async function wa(){try{return(await at.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(t){return console.error(t),[]}}class Ca{constructor(e){$(this,"rootRef");this.rootRef=J.observable({current:e})}async deleteItem(e){J.runInAction(()=>{x.unset(this.rootRef.current,[e])})}getItem(e){const n=this.getValueFromRoot(e);return Promise.resolve(n)}getValueFromRoot(e){return e===null?J.toJS(this.rootRef.current):x.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(x.isObject(n))J.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else J.runInAction(()=>{x.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,r){return J.reaction(()=>this.getValueFromRoot(e),(i,a)=>{n(i,a)},{requiresObservable:!0,fireImmediately:x.get(r,"fireImmediately",!1)})}}class Jd{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new Qi)}getChannel(e){const n=this.channels.get(e);if(n)return n;const r=new Qi;return this.channels.set(e,r),r}}class Xd{constructor(e){$(this,"instances",new Map);this.pluginManager=e}get availableVizList(){return this.pluginManager.installedPlugins.flatMap(e=>e.manifest.viz)}resolveComponent(e){return this.pluginManager.factory.viz(e)}getOrCreateInstance(e){const n=this.instances.get(e.id);if(n)return n;const r={id:e.id,name:e.viz.type,type:e.viz.type,messageChannels:new Jd,instanceData:new Ca(e.viz.conf)};return this.instances.set(e.id,r),r}}function Sa(t,e,n,r){return{vizManager:n,locale:"zh",msgChannels:t.messageChannels,instanceData:t.instanceData,pluginData:new Ca({}),colorPalette:{getColor(){return()=>""}},data:e,variables:r}}const Zd=t=>{const{panel:e,measure:n,vizManager:r,data:i,variables:a}=t,l=r.resolveComponent(e.viz.type),c=r.getOrCreateInstance(e),u={...Sa(c,i,r,a),viewport:{width:n.w,height:n.h}},d=l.viewRender;return s.jsx(d,{context:u,instance:c,...x.omit(t,["panel","vizManager","data"])})},Hd=t=>{const{vizManager:e,panel:n,data:r,variables:i}=t,a=e.resolveComponent(n.viz.type),l=e.getOrCreateInstance(n),c={...Sa(l,r,e,i)},u=a.configRender;return s.jsx(u,{context:c,instance:l,...x.omit(t,["panel","vizManager","data"])})},ka=(t,e)=>{const n=dt.bezier(t),r=dt.bezier(e);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},En=t=>{const e=dt.bezier(t);return function(n){return e(n/100).hex()}},ep={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:ka(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},tp={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:ka(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},np={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:En(["#fff7f1","darkred"]),name:"red",category:"sequential"},sp={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:En(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},rp={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:En(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},ip={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:En(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class ap{constructor(e){$(this,"symbol");this.symbol=Symbol(e)}}function ht(t){return new ap(t)}class As{constructor(){$(this,"parent");$(this,"factoryRegistry",new Map);$(this,"instanceRegistry",new Map)}createScoped(){const e=new As;return e.parent=this,e}getRequired(e){return this.get(e)}get(e){if(this.instanceRegistry.has(e.symbol))return this.instanceRegistry.get(e.symbol);const n=this.factoryRegistry.get(e.symbol);if(n){const r=n(this);return this.instanceRegistry.set(e.symbol,r),r}if(this.parent)return this.parent.get(e)}provideFactory(e,n){return this.factoryRegistry.has(e.symbol)?console.warn(`Token ${e.symbol.toString()} is already registered`):this.factoryRegistry.set(e.symbol,n),this}provideValue(e,n){return this.factoryRegistry.has(e.symbol)?console.warn(`Token ${e.symbol.toString()} is already registered`):this.factoryRegistry.set(e.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(e=>{const n=x.get(e,"dispose");x.isFunction(n)&&n.bind(e)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const Ta="13.15.1",op=Object.freeze(Object.defineProperty({__proto__:null,version:Ta},Symbol.toStringTag,{value:"Module"}));class lp{constructor(e){$(this,"staticColors",new Map);$(this,"interpolations",new Map);e.installedPlugins.forEach(n=>{n.manifest.color.forEach(r=>{this.register(r)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(e){const n=this.encodeColor(e);e.type==="single"?(this.staticColors.has(n)&&console.warn(`the color '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`),this.staticColors.set(n,e)):e.type==="interpolation"&&(this.interpolations.has(n)&&console.warn(`the interpolation '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`,`the interpolation '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`),this.interpolations.set(n,e))}decodeStaticColor(e){return this.staticColors.get(e)}encodeColor(e){return`\${${e.category}}.{${e.name}}`}decodeInterpolation(e){return this.interpolations.get(e)}getColorInterpolations(){return Array.from(this.interpolations.values())}}class cp{constructor(){$(this,"plugins",new Map);$(this,"vizComponents",new Map);$(this,"factory",{viz:e=>{const n=this.vizComponents.get(e);if(n)return n;throw new Error(`Viz Component (${e}) not found`)}})}install(e){if(this.plugins.has(e.id))throw new Error(`Plugin (${e.id}) has been installed before`);this.plugins.set(e.id,e);for(const n of e.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 up{constructor(){$(this,"migrations",[])}version(e,n){return this.migrations.push({version:e,handler:n}),this}run(e,n,r){var l;if(e.from===e.to)return n;if(e.from>e.to)throw new Error(`Can not downgrade from version '${e.from}' to (${e.to})`);const i=this.migrations.filter(c=>c.version>e.from&&c.version<=e.to),a=x.orderBy(i,"version","asc");if(((l=x.last(a))==null?void 0:l.version)!==e.to)throw new Error(`Migration to version ${e.to} not found`);return a.reduce((c,u)=>u.handler(c,r),n)}}class ce extends up{constructor(){super(),this.configVersions()}version(e,n){return super.version(e,(r,i)=>({version:e,...n(r,i)}))}async migrate({configData:e,panelModel:n}){const r=await e.getItem(null),i=x.get(r,"version",0),a=this.run({from:i,to:this.VERSION},r,{panelModel:n});await e.setItem(null,a)}async needMigration({configData:e}){const n=await e.getItem(null);return x.get(n,"version",0)<this.VERSION}}const O=(t,e)=>{const[n,{setFalse:r}]=G.useBoolean(!0),[i,a]=m.useState();m.useEffect(()=>(t.getItem(e).then(c=>{a(c),r()}),t.watchItem(e,c=>{a(c)})));const l=m.useCallback(async c=>{await t.setItem(e,c),a(c)},[t,e]);return{loading:n,value:i,set:l}},Me={top:16,right:16,bottom:16,left:16},Ze=t=>Math.max(0,t-Me.left-Me.right),He=t=>Math.max(0,t-Me.top-Me.bottom),dn=(t,e)=>({width:Ze(t),height:He(e)}),Ie=({width:t,height:e,children:n})=>s.jsx(o.Box,{pt:Me.top,pr:Me.right,pb:Me.bottom,pl:Me.left,sx:{width:t,height:e,overflow:"hidden",position:"relative"},children:n}),Ps={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 dp({context:t}){const{value:e}=O(t.instanceData,"config"),n=t.data,{width:r,height:i}=t.viewport,{x_axis_data_key:a,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=x.defaults({},e,Ps),h=m.useMemo(()=>Dn(n,a),[n,a]),{x:g,y:b,z:v}=m.useMemo(()=>({x:E(a),y:E(l),z:E(c)}),[a,l,c]),{min:w,max:T}=m.useMemo(()=>{const I=x.minBy(h,N=>N[v.columnKey]),A=x.maxBy(h,N=>N[v.columnKey]);return{min:x.get(I,v.columnKey),max:x.get(A,v.columnKey)}},[h,v]),D={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:w,max:T,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:p,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map(I=>[I[g.columnKey],I[b.columnKey],I[v.columnKey]])}]};return e?s.jsx(Ie,{width:r,height:i,children:s.jsx(De,{echarts:we,option:D,style:dn(r,i),notMerge:!0,theme:"merico-light"})}):null}const Da=m.createContext(null),$s=Da.Provider;function Ls(){const t=m.useContext(Da);if(!t)throw new Error("Please use DashboardModelContextProvider");return t}const Z=()=>Ls(),za=()=>Ls(),Ma=m.createContext({searchButtonProps:{}}),Bs=Ma.Provider;function Ia(){return m.useContext(Ma)}const Ea=m.createContext(null),qs=Ea.Provider;function Aa(){const t=m.useContext(Ea);if(!t)throw new Error("Please use ContentModelContextProvider");return t}const Y=()=>Aa(),he=()=>Aa(),pp={inEditMode:!1},An=m.createContext(pp),Pa=m.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),Os=Pa.Provider;function $a(){const t=m.useContext(Pa);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const mt=()=>$a(),Ee=()=>$a(),hp={fullScreenPanelID:"",setFullScreenPanelID:x.noop},Vs=m.createContext(hp);function La(){const t=m.useContext(Vs);if(!t)throw new Error("Please use FullScreenPanelContext.Provider");return t}const mp={en:"en",zh:"zh-cn"};function Ns({children:t}){const{i18n:e}=_.useTranslation(),n=m.useMemo(()=>{const r=e.language;return mp[r]??"en"},[e.language]);return s.jsx(Ui.DatesProvider,{settings:{locale:n,firstDayOfWeek:1},children:t})}const q=S.observer(m.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,queryID:a,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Ee(),h=m.useMemo(()=>p.dataFieldOptions(r,l,a),[r,l,a]);if(h.length===0){const g=p.explainDataKey(r);return s.jsxs(o.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[s.jsx(o.HoverCard.Target,{children:s.jsx(o.Box,{children:s.jsx(o.TextInput,{label:t,required:e,defaultValue:g.columnKey,readOnly:!0,disabled:!0})})}),s.jsx(o.HoverCard.Dropdown,{children:s.jsxs(o.Group,{position:"left",spacing:0,children:[s.jsx(o.Text,{size:"xs",color:g.queryName?"black":"red",sx:{fontFamily:"monospace"},children:g.queryName??g.queryID}),s.jsx(o.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),s.jsx(o.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:g.columnKey})]})})]})}return s.jsx(o.Select,{ref:d,label:t,description:n,data:h,value:r,onChange:i,required:e,sx:c,maxDropdownHeight:500,...u})}));function fp({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=x.defaults({},e,Ps),{control:i,handleSubmit:a,reset:l}=y.useForm({defaultValues:r});return m.useEffect(()=>{l(r)},[e]),e?s.jsx(o.Stack,{spacing:"xs",children:s.jsxs("form",{onSubmit:a(n),children:[s.jsx(o.Text,{children:"X Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(y.Controller,{name:"x_axis_data_key",control:i,render:({field:c})=>s.jsx(q,{label:"Data Field",required:!0,...c})}),s.jsx(y.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>s.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Text,{mt:"lg",children:"Y Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(y.Controller,{name:"y_axis_data_key",control:i,render:({field:c})=>s.jsx(q,{label:"Data Field",required:!0,...c})}),s.jsx(y.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>s.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Text,{mt:"lg",children:"Z Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(y.Controller,{name:"z_axis_data_key",control:i,render:({field:c})=>s.jsx(q,{label:"Data Field",required:!0,...c})}),s.jsx(y.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>s.jsx(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:s.jsxs(o.Button,{color:"blue",type:"submit",children:[s.jsx(L.DeviceFloppy,{size:20}),s.jsx(o.Text,{ml:"md",children:"Save"})]})})]})}):null}const gp=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function xp(t,{panelModel:e}){try{const n=e.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const r=u=>u&&`${n}.${u}`,{x_axis_data_key:i,y_axis_data_key:a,z_axis_data_key:l,...c}=t;return{...c,x_axis_data_key:r(i),y_axis_data_key:r(a),z_axis_data_key:r(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class yp extends ce{constructor(){super(...arguments);$(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:xp(i,r)}})}}const bp={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new yp,name:"bar-3d",viewRender:dp,configRender:fp,createConfig(){return{version:2,config:x.cloneDeep(Ps)}},translation:gp},vp=({disabled:t,value:e,onChange:n})=>{const r=i=>{i&&n(i)};return s.jsxs(o.Box,{sx:{position:"relative"},children:[t&&s.jsx(o.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),s.jsx(Le,{height:"500px",defaultLanguage:"javascript",value:e,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:t}})]})};function Ae({enabled:t,func_content:e}){return(n,r)=>{if(!t)return n;try{return new Function(`return ${e}`)()(n,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}function Se(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
57
57
|
`)}}const et=m.forwardRef(({value:t,onChange:e,triggerButtonText:n},r)=>{const{t:i}=_.useTranslation(),[a,{setTrue:l,setFalse:c}]=G.useBoolean(),[u,d]=m.useState(t);m.useEffect(()=>{d(t)},[t]);const p=T=>{d({...u,enabled:T})},h=()=>{c();const{enabled:T,func_content:D}=u,I={enabled:T,func_content:D};d(I),e(I)},g=()=>{c(),d(t)},b=T=>{d(D=>({...D,func_content:T}))},v=()=>{b(Se().func_content)},w=n??i("chart.axis.customize_label");return s.jsxs(s.Fragment,{children:[s.jsx(o.Button,{variant:"filled",color:"grape",leftIcon:s.jsx(k.IconMathFunction,{size:16}),mt:24,onClick:l,sx:{flexGrow:0},children:w}),s.jsx(o.Modal,{size:800,title:w,opened:a,onClose:c,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:a&&s.jsxs(o.Stack,{children:[s.jsx(o.Checkbox,{mt:10,label:i("common.enabled"),checked:u.enabled,onChange:T=>p(T.currentTarget.checked)}),s.jsx(vp,{value:u.func_content,onChange:b,disabled:!u.enabled}),s.jsxs(o.Group,{position:"apart",children:[s.jsx(o.Button,{onClick:v,color:"red",leftIcon:s.jsx(L.Recycle,{size:20}),children:i("common.actions.reset_to_default")}),s.jsxs(o.Group,{position:"right",children:[s.jsx(o.Button,{onClick:g,variant:"subtle",children:i("common.actions.cancel")}),s.jsx(o.Button,{color:"green",leftIcon:s.jsx(k.IconDeviceFloppy,{size:16}),onClick:h,children:i("common.actions.save")})]})]})]})})]})}),Dt={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1};function Ba(){return x.cloneDeep(Dt)}const _p=[{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:"点击箱体、散点或异常点"}}}}],qa={id:"builtin:echarts:click-echart:series",displayName:"viz.boxplot.click_series.label",nameRender:wp,configRender:jp,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 jp(t){return s.jsx(s.Fragment,{})}function wp(t){const{t:e}=_.useTranslation();return s.jsx(o.Text,{children:e("viz.boxplot.click_series.label")})}const Pn=m.forwardRef(({sectionTitle:t,value:e,onChange:n},r)=>{const{t:i,i18n:a}=_.useTranslation(),l=u=>d=>{const p=x.cloneDeep(e);x.set(p,u,d),n(p)},c=m.useMemo(()=>[{label:i("chart.axis.overflow.truncate"),value:"truncate"},{label:i("chart.axis.overflow.break_line"),value:"break"},{label:i("chart.axis.overflow.break_word"),value:"breakAll"}],[a.language]);return s.jsxs(o.Stack,{spacing:0,children:[t&&s.jsx(o.Divider,{mb:-5,mt:5,variant:"dotted",label:t,labelPosition:"right",labelProps:{color:"dimmed"}}),s.jsxs(o.Group,{grow:!0,noWrap:!0,children:[s.jsx(o.NumberInput,{label:i("chart.axis.overflow.max_width"),hideControls:!0,value:e.width,onChange:l("width")}),s.jsx(o.Select,{label:i("chart.axis.overflow.label"),data:c,value:e.overflow,onChange:l("overflow")}),s.jsx(o.TextInput,{label:i("chart.axis.overflow.ellipsis"),value:e.ellipsis,disabled:!0})]})]})}),tt=m.forwardRef(({value:t,onChange:e},n)=>{const{t:r}=_.useTranslation(),i=l=>{e({...t,on_axis:l})},a=l=>{e({...t,in_tooltip:l})};return s.jsxs(o.Stack,{ref:n,spacing:0,children:[s.jsx(Pn,{sectionTitle:r("chart.axis.overflow.section_title.on_axis"),value:t.on_axis,onChange:i}),s.jsx(Pn,{sectionTitle:r("chart.axis.overflow.section_title.in_tooltip"),value:t.in_tooltip,onChange:a})]})});function Pe(){return{on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}}}function We({overflow:t,width:e}){const n={truncate:"initial",break:"break-all",breakAll:"break-word"}[t],r=t==="truncate"?"nowrap":"initial",i={truncate:"ellipsis",break:"clip",breakAll:"clip"}[t];return`
|
|
58
58
|
max-width: ${e}px;
|
|
59
59
|
word-break: ${n};
|