@devtable/dashboard 13.1.1 → 13.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
@@ -1731,7 +1731,7 @@ class Ei {
|
|
|
1731
1731
|
}), this.instanceRegistry.clear(), this.factoryRegistry.clear();
|
|
1732
1732
|
}
|
|
1733
1733
|
}
|
|
1734
|
-
const sc = "13.1.
|
|
1734
|
+
const sc = "13.1.2", Xx = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1735
1735
|
__proto__: null,
|
|
1736
1736
|
version: sc
|
|
1737
1737
|
}, Symbol.toStringTag, { value: "Module" }));
|
package/dist/dashboard.umd.js
CHANGED
|
@@ -53,7 +53,7 @@ Check the top-level render call using <`+P+">.")}return M}}function du(C,M){{if(
|
|
|
53
53
|
</table>
|
|
54
54
|
`;function vs(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 js(t,e){try{return vs(t,e)}catch(n){return console.error(n),n.message}}function ud({sql:t,pre_process:e}){if(!e.trim())return t;try{return new Function(`return ${e}`)()({sql:t},ot)}catch(n){return console.error(n),t}}function dd(t,e,n){if(!t.trim())return e;try{return new Function(`return ${t}`)()(e,ot,n)}catch(r){return console.error(r),e}}function pd(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 o=Object.keys(t[i]).sort();for(let l=0;l<o.length;l++){const c=o[l];c!="sign"&&t[i][c]&&n.push(o[l]+"="+(typeof t[i][c]=="object"?JSON.stringify(t[i][c]):t[i][c]))}}}return n.sort().join("&")}function hd(t,e){let n=pd(t);return n+="&key="+e,sd.MD5(n).toString().toUpperCase()}class la{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:hd({app_id:this.app_id,nonce_str:n,...e},this.app_secret)}}getRequest(e,n){return(r,i,o,l)=>{const c=this.buildHeader(o),u=this.buildAxiosConfig(e,r,i,o,c,n);return it(u).then(d=>l?d:d.data).catch(d=>{const p=y.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,o,l){const c={baseURL:this.baseURL,method:e,url:n,params:e==="GET"?r:i.params,headers:o,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 xd{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 ca extends la{constructor(){super(...arguments);$(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 ua{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 Lt=new ca;function _s(t){Lt.baseURL!==t.apiBaseURL&&(Lt.baseURL=t.apiBaseURL),t.app_id&&(Lt.app_id=t.app_id),t.app_secret&&(Lt.app_secret=t.app_secret),t.makeQueryENV&&(Lt.makeQueryENV=t.makeQueryENV)}const da=new ua(Lt),He=da,tn=g.forwardRef(function({value:e,onChange:n,...r},i){return s.jsx(a.TextInput,{ref:i,value:e,onChange:n,...r})});function A(t){const[e,n]=t.split(".");return{queryID:e,columnKey:n}}function gd(t){return t.includes(".")?A(t):{queryID:"",columnKey:t}}function et(t,e){var i;const{queryID:n,columnKey:r}=A(e);return n?r?((i=t[n])==null?void 0:i.map(o=>o[r]))??[]:t[n]:[]}function Cn(t,e){const{queryID:n}=A(e);return n?t[n]:[]}function md(t){return Object.values(t)[0]}function Sn(t,e){const{queryID:n,columnKey:r}=A(e);return t[r]}const pa=["function aggregation({ queryData }, utils) {",' return "Aggregation Result";',"}"].join(`
|
|
55
55
|
`),qt={type:"none",config:{},fallback:"0"};function fd(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 yd(t,e){switch(e.type){case"sum":return y.sum(t);case"mean":return y.mean(t);case"median":return fd(t);case"max":return y.max(t);case"min":return y.min(t);case"quantile":return Xt.quantile(t,e.config.p);case"CV":const n=$t.std(...t),r=$t.mean(...t);return r?n/r:Number.NaN;case"std":return $t.std(...t);default:return t}}function ws(t,e){const n=t.map(Number),r=yd(n,e);return typeof r=="number"?Number.isFinite(r)?r:e.fallback:r??e.fallback}function bd(t,e,n){try{const r=Cn(t,e);return new Function(`return ${n.config.func}`)()({queryData:r},ot)}catch(r){return console.error(r),r.message}}function kn(t,e,n){try{return n.type==="custom"?bd(t,e,n):ws(et(t,e),n)}catch(r){return console.error(r),null}}class vd{constructor({valueRange:e,colorRange:n}){$(this,"mapper");this.mapper=Ct.interpolate(e,n)}getColor(e){return this.mapper(e)}}const ye={mantissa:0,output:"number",trimMantissa:!1,average:!1,absolute:!1};function G(t,{absolute:e,...n}){if(t===null)return String(t);try{let r=jn(t).value();if(r===void 0||Number.isNaN(r))throw new Error(`[formatNumber]Not a number: ${t}`);return e&&(r=Math.abs(r)),jn(r).format(n)}catch(r){return console.debug(r),String(t)}}function jd(t){return t===null?"null":t===void 0?"undefined":Array.isArray(t)?`Array(${t.length})`:t.toString()}function lt({data_field:t,aggregation:e},n){return kn(n,t,e)}function Be({formatter:t,aggregation:e},n){if(typeof n!="string"&&typeof n!="number")return jd(n);if(e.type==="custom")return n;try{return G(n,t)}catch(r){return console.error(r),n}}function _d(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 vd(t).getColor(e)}catch(n){return console.error(n),"black"}return"black"}function wd(t,e){const{color:n,data_field:r,aggregation:i,size:o,weight:l}=t,c=kn(e,r,i),u=Be(t,c);return s.jsx(a.Text,{sx:{fontSize:o,display:"inline"},color:_d(n,c),weight:l,children:u})}function Cd(t,e){const n={};return t.forEach(r=>{const i=r.name;n[i]=wd(r,e)}),n}function Sd(t){return t.split(" ").map((e,n)=>s.jsxs(g.Fragment,{children:[e," "]},n))}function kd(t){const n=t.replaceAll("<br />","<br/>").replaceAll(`
|
|
56
|
-
`,"<br/>").split("<br/>");return n.map((i,o)=>{const l=[Sd(i)];return o!==n.length-1&&l.push(s.jsx("br",{},`br-${o}`)),l}).flat().filter(i=>i!==void 0)}function Cs(t){return kd(t)}function nn(t,e,n){const r=Cd(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map((o,l)=>{const c=i.exec(o);if(!c)return Cs(o);const u=r[c[1]];if(!u)return Cs(o);const d=c[2]??"";return s.jsxs(g.Fragment,{children:[u,Cs(d)]},`${o}-${l}`)})}function Td(t,e){const{data_field:n,aggregation:r}=t,i=kn(e,n,r);return Be(t,i)}function ha(t,e){const n={};return t.forEach(r=>{n[r.name]=Td(r,e)}),n}function Tn(t,e,n){const r=ha(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map(o=>{const l=i.exec(o);if(!l)return o;const c=r[l[1]];if(!c)return o;const u=l[2]??"";return`${c}${u}`}).join("")}const Ss={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 Dd(){ve.registerTheme("merico-light",{color:Object.values(Ss.graphics.multiple),visualMap:{color:Object.values(Ss.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function xa(){Dd()}function*zd(t){const e=Ss.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 ga(){return{filters:{},context:{}}}function ks(t){const e=ga();if(!t)return ga();const{filters:n=e.filters,context:r=e.context}=t;return{filters:n,context:r}}class je extends g.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(a.Box,{children:[s.jsx(a.Text,{size:"xs",children:(e=this.state.error)==null?void 0:e.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 Md(t,e={handleError:!0}){return n=>s.jsx(je,{...e,children:s.jsx(t,{...n})})}function Id(t,e){return new Function(`return ${t}`)()(e,ot)}function Ed(t,e,n){return Id(t,{context:e,filters:n})}function Ad(t,e){try{return new Function(`return ${t.config.processing.pre}`)()(e,ot)}catch(n){return console.error(n),e}}function Pd(t,e){return new Function(`return ${t.config.processing.post}`)()(e,ot)}function $d(t,e,n){return t?new Function(`return ${t}`)()(e,ot,n):e}function ma(){Bi.use([fu.CanvasRenderer,Ze.BarChart,Ze.BoxplotChart,Ze.CustomChart,Ze.FunnelChart,Ze.HeatmapChart,Ze.LineChart,Ze.PieChart,Ze.RadarChart,Ze.ScatterChart,Ze.SunburstChart,mt.CalendarComponent,mt.DataZoomComponent,mt.GridComponent,mt.LegendComponent,mt.TooltipComponent,mt.MarkLineComponent,mt.MarkAreaComponent,mt.VisualMapComponent])}const Bt=t=>y.cloneDeepWith(t,(e,n)=>{if(n!==void 0&&e)return U.toJS(e)}),Dn={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Ld(t,e){const n=Oi.decode(e);n!==t&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:t,after:e,v:n}),console.groupEnd())}async function qd({query:t,name:e,payload:n,additionals:r},i){if(!t.sql)return[];const{type:o,key:l,sql:c,pre_process:u,post_process:d}=t,p=vs(c,n),h=ud({sql:p,pre_process:u}),x=Oi.encode(h);Ld(h,x);let m=await He.query(i)({type:o,key:l,query:x,...r},{params:{name:e}});return m=dd(d,m,ks(n)),m}async function Bd({type:t,key:e,configString:n,name:r,additionals:i},o){try{return await He.httpDataSourceQuery(o)({type:t,key:e,query:n,...i},{params:{name:r}})}catch(l){if(it.isCancel(l))throw l;return console.error(l),l}}async function Ts(){try{return(await He.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(t){return console.error(t),[]}}async function fa(){try{return(await He.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(t){return console.error(t),[]}}class ya{constructor(e){$(this,"rootRef");this.rootRef=U.observable({current:e})}async deleteItem(e){U.runInAction(()=>{y.unset(this.rootRef.current,[e])})}getItem(e){const n=this.getValueFromRoot(e);return Promise.resolve(n)}getValueFromRoot(e){return e===null?U.toJS(this.rootRef.current):y.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(y.isObject(n))U.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else U.runInAction(()=>{y.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,r){return U.reaction(()=>this.getValueFromRoot(e),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:y.get(r,"fireImmediately",!1)})}}class Od{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new Vi)}getChannel(e){const n=this.channels.get(e);if(n)return n;const r=new Vi;return this.channels.set(e,r),r}}class Vd{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 Od,instanceData:new ya(e.viz.conf)};return this.instances.set(e.id,r),r}}function ba(t,e,n,r){return{vizManager:n,locale:"zh",msgChannels:t.messageChannels,instanceData:t.instanceData,pluginData:new ya({}),colorPalette:{getColor(){return()=>""}},data:e,variables:r}}const Nd=t=>{const{panel:e,measure:n,vizManager:r,data:i,variables:o}=t,l=r.resolveComponent(e.viz.type),c=r.getOrCreateInstance(e),u={...ba(c,i,r,o),viewport:{width:n.w,height:n.h}},d=l.viewRender;return s.jsx(d,{context:u,instance:c,...y.omit(t,["panel","vizManager","data"])})},Fd=t=>{const{vizManager:e,panel:n,data:r,variables:i}=t,o=e.resolveComponent(n.viz.type),l=e.getOrCreateInstance(n),c={...ba(l,r,e,i)},u=o.configRender;return s.jsx(u,{context:c,instance:l,...y.omit(t,["panel","vizManager","data"])})},va=(t,e)=>{const n=at.bezier(t),r=at.bezier(e);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},zn=t=>{const e=at.bezier(t);return function(n){return e(n/100).hex()}},Gd={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:va(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Wd={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:va(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Qd={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:zn(["#fff7f1","darkred"]),name:"red",category:"sequential"},Rd={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:zn(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Yd={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:zn(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Ud={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:zn(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Kd{constructor(e){$(this,"symbol");this.symbol=Symbol(e)}}function ct(t){return new Kd(t)}class Ds{constructor(){$(this,"parent");$(this,"factoryRegistry",new Map);$(this,"instanceRegistry",new Map)}createScoped(){const e=new Ds;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=y.get(e,"dispose");y.isFunction(n)&&n.bind(e)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const ja="13.1.1",Jd=Object.freeze(Object.defineProperty({__proto__:null,version:ja},Symbol.toStringTag,{value:"Module"}));class Xd{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 Zd{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 Hd{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),o=y.orderBy(i,"version","asc");if(((l=y.last(o))==null?void 0:l.version)!==e.to)throw new Error(`Migration to version ${e.to} not found`);return o.reduce((c,u)=>u.handler(c,r),n)}}class oe extends Hd{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=y.get(r,"version",0),o=this.run({from:i,to:this.VERSION},r,{panelModel:n});await e.setItem(null,o)}async needMigration({configData:e}){const n=await e.getItem(null);return y.get(n,"version",0)<this.VERSION}}const O=(t,e)=>{const[n,{setFalse:r}]=N.useBoolean(!0),[i,o]=g.useState();g.useEffect(()=>(t.getItem(e).then(c=>{o(c),r()}),t.watchItem(e,c=>{o(c)})));const l=g.useCallback(async c=>{await t.setItem(e,c),o(c)},[t,e]);return{loading:n,value:i,set:l}},De={top:16,right:16,bottom:16,left:16},Ye=t=>Math.max(0,t-De.left-De.right),Ue=t=>Math.max(0,t-De.top-De.bottom),sn=(t,e)=>({width:Ye(t),height:Ue(e)}),ze=({width:t,height:e,children:n})=>s.jsx(a.Box,{pt:De.top,pr:De.right,pb:De.bottom,pl:De.left,sx:{width:t,height:e,overflow:"hidden",position:"relative"},children:n}),zs={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 ep({context:t}){const{value:e}=O(t.instanceData,"config"),n=t.data,{width:r,height:i}=t.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=y.defaults({},e,zs),h=g.useMemo(()=>Cn(n,o),[n,o]),{x,y:m,z:v}=g.useMemo(()=>({x:A(o),y:A(l),z:A(c)}),[o,l,c]),{min:w,max:T}=g.useMemo(()=>{const E=y.minBy(h,J=>J[v.columnKey]),L=y.maxBy(h,J=>J[v.columnKey]);return{min:y.get(E,v.columnKey),max:y.get(L,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(E=>[E[x.columnKey],E[m.columnKey],E[v.columnKey]])}]};return e?s.jsx(ze,{width:r,height:i,children:s.jsx(Se,{echarts:ve,option:D,style:sn(r,i),notMerge:!0,theme:"merico-light"})}):null}const _a=g.createContext(null),Ms=_a.Provider;function Is(){const t=g.useContext(_a);if(!t)throw new Error("Please use DashboardModelContextProvider");return t}const X=()=>Is(),wa=()=>Is(),Ca=g.createContext({searchButtonProps:{}}),Es=Ca.Provider;function Sa(){return g.useContext(Ca)}const ka=g.createContext(null),As=ka.Provider;function Ta(){const t=g.useContext(ka);if(!t)throw new Error("Please use ContentModelContextProvider");return t}const W=()=>Ta(),ue=()=>Ta(),tp={inEditMode:!1},Mn=g.createContext(tp),Da=g.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),Ps=Da.Provider;function za(){const t=g.useContext(Da);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const ut=()=>za(),Pe=()=>za(),np={fullScreenPanelID:"",setFullScreenPanelID:y.noop},$s=g.createContext(np);function Ma(){const t=g.useContext($s);if(!t)throw new Error("Please use FullScreenPanelContext.Provider");return t}const sp={en:"en",zh:"zh-cn"};function Ls({children:t}){const{i18n:e}=j.useTranslation(),n=g.useMemo(()=>{const r=e.language;return sp[r]??"en"},[e.language]);return s.jsx(Ni.DatesProvider,{settings:{locale:n,firstDayOfWeek:1},children:t})}const B=S.observer(g.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,queryID:o,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Pe(),h=g.useMemo(()=>p.dataFieldOptions(r,l,o),[r,l,o]);if(h.length===0){const x=p.explainDataKey(r);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:t,required:e,defaultValue:x.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:x.queryName?"black":"red",sx:{fontFamily:"monospace"},children:x.queryName??x.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:x.columnKey})]})})]})}return s.jsx(a.Select,{ref:d,label:t,description:n,data:h,value:r,onChange:i,required:e,sx:c,maxDropdownHeight:500,...u})}));function rp({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=y.defaults({},e,zs),{control:i,handleSubmit:o,reset:l}=b.useForm({defaultValues:r});return g.useEffect(()=>{l(r)},[e]),e?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:c})=>s.jsx(B,{label:"Data Field",required:!0,...c})}),s.jsx(b.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),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:c})=>s.jsx(B,{label:"Data Field",required:!0,...c})}),s.jsx(b.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),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:c})=>s.jsx(B,{label:"Data Field",required:!0,...c})}),s.jsx(b.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),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(z.DeviceFloppy,{size:20}),s.jsx(a.Text,{ml:"md",children:"Save"})]})})]})}):null}const ip=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function ap(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:o,z_axis_data_key:l,...c}=t;return{...c,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 op extends oe{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:ap(i,r)}})}}const lp={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new op,name:"bar-3d",viewRender:ep,configRender:rp,createConfig(){return{version:2,config:y.cloneDeep(zs)}},translation:ip},cp=({disabled:t,value:e,onChange:n})=>{const r=i=>{i&&n(i)};return s.jsxs(a.Box,{sx:{position:"relative"},children:[t&&s.jsx(a.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),s.jsx(Ae,{height:"500px",defaultLanguage:"javascript",value:e,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:t}})]})};function Me({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 _e(){return{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=[Sd(i)];return o!==n.length-1&&l.push(s.jsx("br",{},`br-${o}`)),l}).flat().filter(i=>i!==void 0)}function Cs(t){return kd(t)}function nn(t,e,n){const r=Cd(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map((o,l)=>{const c=i.exec(o);if(!c)return Cs(o);const u=r[c[1]];if(!u)return Cs(o);const d=c[2]??"";return s.jsxs(g.Fragment,{children:[u,Cs(d)]},`${o}-${l}`)})}function Td(t,e){const{data_field:n,aggregation:r}=t,i=kn(e,n,r);return Be(t,i)}function ha(t,e){const n={};return t.forEach(r=>{n[r.name]=Td(r,e)}),n}function Tn(t,e,n){const r=ha(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map(o=>{const l=i.exec(o);if(!l)return o;const c=r[l[1]];if(!c)return o;const u=l[2]??"";return`${c}${u}`}).join("")}const Ss={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 Dd(){ve.registerTheme("merico-light",{color:Object.values(Ss.graphics.multiple),visualMap:{color:Object.values(Ss.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function xa(){Dd()}function*zd(t){const e=Ss.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 ga(){return{filters:{},context:{}}}function ks(t){const e=ga();if(!t)return ga();const{filters:n=e.filters,context:r=e.context}=t;return{filters:n,context:r}}class je extends g.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(a.Box,{children:[s.jsx(a.Text,{size:"xs",children:(e=this.state.error)==null?void 0:e.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 Md(t,e={handleError:!0}){return n=>s.jsx(je,{...e,children:s.jsx(t,{...n})})}function Id(t,e){return new Function(`return ${t}`)()(e,ot)}function Ed(t,e,n){return Id(t,{context:e,filters:n})}function Ad(t,e){try{return new Function(`return ${t.config.processing.pre}`)()(e,ot)}catch(n){return console.error(n),e}}function Pd(t,e){return new Function(`return ${t.config.processing.post}`)()(e,ot)}function $d(t,e,n){return t?new Function(`return ${t}`)()(e,ot,n):e}function ma(){Bi.use([fu.CanvasRenderer,Ze.BarChart,Ze.BoxplotChart,Ze.CustomChart,Ze.FunnelChart,Ze.HeatmapChart,Ze.LineChart,Ze.PieChart,Ze.RadarChart,Ze.ScatterChart,Ze.SunburstChart,mt.CalendarComponent,mt.DataZoomComponent,mt.GridComponent,mt.LegendComponent,mt.TooltipComponent,mt.MarkLineComponent,mt.MarkAreaComponent,mt.VisualMapComponent])}const Bt=t=>y.cloneDeepWith(t,(e,n)=>{if(n!==void 0&&e)return U.toJS(e)}),Dn={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Ld(t,e){const n=Oi.decode(e);n!==t&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:t,after:e,v:n}),console.groupEnd())}async function qd({query:t,name:e,payload:n,additionals:r},i){if(!t.sql)return[];const{type:o,key:l,sql:c,pre_process:u,post_process:d}=t,p=vs(c,n),h=ud({sql:p,pre_process:u}),x=Oi.encode(h);Ld(h,x);let m=await He.query(i)({type:o,key:l,query:x,...r},{params:{name:e}});return m=dd(d,m,ks(n)),m}async function Bd({type:t,key:e,configString:n,name:r,additionals:i},o){try{return await He.httpDataSourceQuery(o)({type:t,key:e,query:n,...i},{params:{name:r}})}catch(l){if(it.isCancel(l))throw l;return console.error(l),l}}async function Ts(){try{return(await He.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(t){return console.error(t),[]}}async function fa(){try{return(await He.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(t){return console.error(t),[]}}class ya{constructor(e){$(this,"rootRef");this.rootRef=U.observable({current:e})}async deleteItem(e){U.runInAction(()=>{y.unset(this.rootRef.current,[e])})}getItem(e){const n=this.getValueFromRoot(e);return Promise.resolve(n)}getValueFromRoot(e){return e===null?U.toJS(this.rootRef.current):y.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(y.isObject(n))U.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else U.runInAction(()=>{y.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,r){return U.reaction(()=>this.getValueFromRoot(e),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:y.get(r,"fireImmediately",!1)})}}class Od{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new Vi)}getChannel(e){const n=this.channels.get(e);if(n)return n;const r=new Vi;return this.channels.set(e,r),r}}class Vd{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 Od,instanceData:new ya(e.viz.conf)};return this.instances.set(e.id,r),r}}function ba(t,e,n,r){return{vizManager:n,locale:"zh",msgChannels:t.messageChannels,instanceData:t.instanceData,pluginData:new ya({}),colorPalette:{getColor(){return()=>""}},data:e,variables:r}}const Nd=t=>{const{panel:e,measure:n,vizManager:r,data:i,variables:o}=t,l=r.resolveComponent(e.viz.type),c=r.getOrCreateInstance(e),u={...ba(c,i,r,o),viewport:{width:n.w,height:n.h}},d=l.viewRender;return s.jsx(d,{context:u,instance:c,...y.omit(t,["panel","vizManager","data"])})},Fd=t=>{const{vizManager:e,panel:n,data:r,variables:i}=t,o=e.resolveComponent(n.viz.type),l=e.getOrCreateInstance(n),c={...ba(l,r,e,i)},u=o.configRender;return s.jsx(u,{context:c,instance:l,...y.omit(t,["panel","vizManager","data"])})},va=(t,e)=>{const n=at.bezier(t),r=at.bezier(e);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},zn=t=>{const e=at.bezier(t);return function(n){return e(n/100).hex()}},Gd={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:va(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Wd={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:va(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Qd={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:zn(["#fff7f1","darkred"]),name:"red",category:"sequential"},Rd={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:zn(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Yd={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:zn(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Ud={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:zn(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Kd{constructor(e){$(this,"symbol");this.symbol=Symbol(e)}}function ct(t){return new Kd(t)}class Ds{constructor(){$(this,"parent");$(this,"factoryRegistry",new Map);$(this,"instanceRegistry",new Map)}createScoped(){const e=new Ds;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=y.get(e,"dispose");y.isFunction(n)&&n.bind(e)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const ja="13.1.2",Jd=Object.freeze(Object.defineProperty({__proto__:null,version:ja},Symbol.toStringTag,{value:"Module"}));class Xd{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 Zd{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 Hd{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),o=y.orderBy(i,"version","asc");if(((l=y.last(o))==null?void 0:l.version)!==e.to)throw new Error(`Migration to version ${e.to} not found`);return o.reduce((c,u)=>u.handler(c,r),n)}}class oe extends Hd{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=y.get(r,"version",0),o=this.run({from:i,to:this.VERSION},r,{panelModel:n});await e.setItem(null,o)}async needMigration({configData:e}){const n=await e.getItem(null);return y.get(n,"version",0)<this.VERSION}}const O=(t,e)=>{const[n,{setFalse:r}]=N.useBoolean(!0),[i,o]=g.useState();g.useEffect(()=>(t.getItem(e).then(c=>{o(c),r()}),t.watchItem(e,c=>{o(c)})));const l=g.useCallback(async c=>{await t.setItem(e,c),o(c)},[t,e]);return{loading:n,value:i,set:l}},De={top:16,right:16,bottom:16,left:16},Ye=t=>Math.max(0,t-De.left-De.right),Ue=t=>Math.max(0,t-De.top-De.bottom),sn=(t,e)=>({width:Ye(t),height:Ue(e)}),ze=({width:t,height:e,children:n})=>s.jsx(a.Box,{pt:De.top,pr:De.right,pb:De.bottom,pl:De.left,sx:{width:t,height:e,overflow:"hidden",position:"relative"},children:n}),zs={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 ep({context:t}){const{value:e}=O(t.instanceData,"config"),n=t.data,{width:r,height:i}=t.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=y.defaults({},e,zs),h=g.useMemo(()=>Cn(n,o),[n,o]),{x,y:m,z:v}=g.useMemo(()=>({x:A(o),y:A(l),z:A(c)}),[o,l,c]),{min:w,max:T}=g.useMemo(()=>{const E=y.minBy(h,J=>J[v.columnKey]),L=y.maxBy(h,J=>J[v.columnKey]);return{min:y.get(E,v.columnKey),max:y.get(L,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(E=>[E[x.columnKey],E[m.columnKey],E[v.columnKey]])}]};return e?s.jsx(ze,{width:r,height:i,children:s.jsx(Se,{echarts:ve,option:D,style:sn(r,i),notMerge:!0,theme:"merico-light"})}):null}const _a=g.createContext(null),Ms=_a.Provider;function Is(){const t=g.useContext(_a);if(!t)throw new Error("Please use DashboardModelContextProvider");return t}const X=()=>Is(),wa=()=>Is(),Ca=g.createContext({searchButtonProps:{}}),Es=Ca.Provider;function Sa(){return g.useContext(Ca)}const ka=g.createContext(null),As=ka.Provider;function Ta(){const t=g.useContext(ka);if(!t)throw new Error("Please use ContentModelContextProvider");return t}const W=()=>Ta(),ue=()=>Ta(),tp={inEditMode:!1},Mn=g.createContext(tp),Da=g.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),Ps=Da.Provider;function za(){const t=g.useContext(Da);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const ut=()=>za(),Pe=()=>za(),np={fullScreenPanelID:"",setFullScreenPanelID:y.noop},$s=g.createContext(np);function Ma(){const t=g.useContext($s);if(!t)throw new Error("Please use FullScreenPanelContext.Provider");return t}const sp={en:"en",zh:"zh-cn"};function Ls({children:t}){const{i18n:e}=j.useTranslation(),n=g.useMemo(()=>{const r=e.language;return sp[r]??"en"},[e.language]);return s.jsx(Ni.DatesProvider,{settings:{locale:n,firstDayOfWeek:1},children:t})}const B=S.observer(g.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,queryID:o,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=Pe(),h=g.useMemo(()=>p.dataFieldOptions(r,l,o),[r,l,o]);if(h.length===0){const x=p.explainDataKey(r);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:t,required:e,defaultValue:x.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:x.queryName?"black":"red",sx:{fontFamily:"monospace"},children:x.queryName??x.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:x.columnKey})]})})]})}return s.jsx(a.Select,{ref:d,label:t,description:n,data:h,value:r,onChange:i,required:e,sx:c,maxDropdownHeight:500,...u})}));function rp({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=y.defaults({},e,zs),{control:i,handleSubmit:o,reset:l}=b.useForm({defaultValues:r});return g.useEffect(()=>{l(r)},[e]),e?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:c})=>s.jsx(B,{label:"Data Field",required:!0,...c})}),s.jsx(b.Controller,{name:"xAxis3D.name",control:i,render:({field:c})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),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:c})=>s.jsx(B,{label:"Data Field",required:!0,...c})}),s.jsx(b.Controller,{name:"yAxis3D.name",control:i,render:({field:c})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),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:c})=>s.jsx(B,{label:"Data Field",required:!0,...c})}),s.jsx(b.Controller,{name:"zAxis3D.name",control:i,render:({field:c})=>s.jsx(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),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(z.DeviceFloppy,{size:20}),s.jsx(a.Text,{ml:"md",children:"Save"})]})})]})}):null}const ip=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function ap(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:o,z_axis_data_key:l,...c}=t;return{...c,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 op extends oe{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:ap(i,r)}})}}const lp={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new op,name:"bar-3d",viewRender:ep,configRender:rp,createConfig(){return{version:2,config:y.cloneDeep(zs)}},translation:ip},cp=({disabled:t,value:e,onChange:n})=>{const r=i=>{i&&n(i)};return s.jsxs(a.Box,{sx:{position:"relative"},children:[t&&s.jsx(a.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),s.jsx(Ae,{height:"500px",defaultLanguage:"javascript",value:e,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:t}})]})};function Me({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 _e(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
57
57
|
`)}}const Ke=g.forwardRef(({value:t,onChange:e,triggerButtonText:n},r)=>{const{t:i}=j.useTranslation(),[o,{setTrue:l,setFalse:c}]=N.useBoolean(),[u,d]=g.useState(t);g.useEffect(()=>{d(t)},[t]);const p=T=>{d({...u,enabled:T})},h=()=>{c();const{enabled:T,func_content:D}=u,E={enabled:T,func_content:D};d(E),e(E)},x=()=>{c(),d(t)},m=T=>{d(D=>({...D,func_content:T}))},v=()=>{m(_e().func_content)},w=n??i("chart.axis.customize_label");return s.jsxs(s.Fragment,{children:[s.jsx(a.Button,{variant:"filled",color:"grape",leftIcon:s.jsx(k.IconMathFunction,{size:16}),mt:24,onClick:l,sx:{flexGrow:0},children:w}),s.jsx(a.Modal,{size:800,title:w,opened:o,onClose:c,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:o&&s.jsxs(a.Stack,{children:[s.jsx(a.Checkbox,{mt:10,label:i("common.enabled"),checked:u.enabled,onChange:T=>p(T.currentTarget.checked)}),s.jsx(cp,{value:u.func_content,onChange:m,disabled:!u.enabled}),s.jsxs(a.Group,{position:"apart",children:[s.jsx(a.Button,{onClick:v,color:"red",leftIcon:s.jsx(z.Recycle,{size:20}),children:i("common.actions.reset_to_default")}),s.jsxs(a.Group,{position:"right",children:[s.jsx(a.Button,{onClick:x,variant:"subtle",children:i("common.actions.cancel")}),s.jsx(a.Button,{color:"green",leftIcon:s.jsx(k.IconDeviceFloppy,{size:16}),onClick:h,children:i("common.actions.save")})]})]})]})})]})}),St={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1};function Ia(){return y.cloneDeep(St)}const up=[{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:"点击箱体、散点或异常点"}}}}],Ea={id:"builtin:echarts:click-echart:series",displayName:"viz.boxplot.click_series.label",nameRender:pp,configRender:dp,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 dp(t){return s.jsx(s.Fragment,{})}function pp(t){const{t:e}=j.useTranslation();return s.jsx(a.Text,{children:e("viz.boxplot.click_series.label")})}const In=g.forwardRef(({sectionTitle:t,value:e,onChange:n},r)=>{const{t:i,i18n:o}=j.useTranslation(),l=u=>d=>{const p=y.cloneDeep(e);y.set(p,u,d),n(p)},c=g.useMemo(()=>[{label:i("chart.axis.overflow.truncate"),value:"truncate"},{label:i("chart.axis.overflow.break_line"),value:"break"},{label:i("chart.axis.overflow.break_word"),value:"breakAll"}],[o.language]);return s.jsxs(a.Stack,{spacing:0,children:[t&&s.jsx(a.Divider,{mb:-5,mt:5,variant:"dotted",label:t,labelPosition:"right",labelProps:{color:"dimmed"}}),s.jsxs(a.Group,{grow:!0,noWrap:!0,children:[s.jsx(a.NumberInput,{label:i("chart.axis.overflow.max_width"),hideControls:!0,value:e.width,onChange:l("width")}),s.jsx(a.Select,{label:i("chart.axis.overflow.label"),data:c,value:e.overflow,onChange:l("overflow")}),s.jsx(a.TextInput,{label:i("chart.axis.overflow.ellipsis"),value:e.ellipsis,disabled:!0})]})]})}),Je=g.forwardRef(({value:t,onChange:e},n)=>{const{t:r}=j.useTranslation(),i=l=>{e({...t,on_axis:l})},o=l=>{e({...t,in_tooltip:l})};return s.jsxs(a.Stack,{ref:n,spacing:0,children:[s.jsx(In,{sectionTitle:r("chart.axis.overflow.section_title.on_axis"),value:t.on_axis,onChange:i}),s.jsx(In,{sectionTitle:r("chart.axis.overflow.section_title.in_tooltip"),value:t.in_tooltip,onChange:o})]})});function Ie(){return{on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}}}function Oe({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};
|