@devtable/dashboard 12.11.0 → 12.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard.es.js +1 -1
- package/dist/dashboard.umd.js +1 -1
- package/dist/stats.html +1 -1
- package/package.json +1 -1
package/dist/dashboard.es.js
CHANGED
|
@@ -1731,7 +1731,7 @@ class Ai {
|
|
|
1731
1731
|
}), this.instanceRegistry.clear(), this.factoryRegistry.clear();
|
|
1732
1732
|
}
|
|
1733
1733
|
}
|
|
1734
|
-
const rc = "12.
|
|
1734
|
+
const rc = "12.12.0", Hx = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1735
1735
|
__proto__: null,
|
|
1736
1736
|
version: rc
|
|
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 lu(w,M){{if(
|
|
|
53
53
|
</table>
|
|
54
54
|
`;function bs(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 vs(t,e){try{return bs(t,e)}catch(n){return console.error(n),n.message}}function ad({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 od(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 ld(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 cd(t,e){let n=ld(t);return n+="&key="+e,Hu.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:cd({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 ud{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 js(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 dd(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 nn(t,e){const{queryID:n}=A(e);return n?t[n]:[]}function pd(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
|
`),Bt={type:"none",config:{},fallback:"0"};function hd(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 xd(t,e){switch(e.type){case"sum":return y.sum(t);case"mean":return y.mean(t);case"median":return hd(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 _s(t,e){const n=t.map(Number),r=xd(n,e);return typeof r=="number"?Number.isFinite(r)?r:e.fallback:r??e.fallback}function gd(t,e,n){try{const r=nn(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"?gd(t,e,n):_s(et(t,e),n)}catch(r){return console.error(r),null}}class md{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 W(t,{absolute:e,...n}){if(t===null)return String(t);try{let r=_n(t).value();if(r===void 0||Number.isNaN(r))throw new Error(`[formatNumber]Not a number: ${t}`);return e&&(r=Math.abs(r)),_n(r).format(n)}catch(r){return console.debug(r),String(t)}}function fd(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 fd(n);if(e.type==="custom")return n;try{return W(n,t)}catch(r){return console.error(r),n}}function yd(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 md(t).getColor(e)}catch(n){return console.error(n),"black"}return"black"}function bd(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:yd(n,c),weight:l,children:u})}function vd(t,e){const n={};return t.forEach(r=>{const i=r.name;n[i]=bd(r,e)}),n}function jd(t){return t.split(" ").map((e,n)=>s.jsxs(g.Fragment,{children:[e," "]},n))}function _d(t){const n=t.replaceAll("<br />","<br/>").replaceAll(`
|
|
56
|
-
`,"<br/>").split("<br/>");return n.map((i,o)=>{const l=[jd(i)];return o!==n.length-1&&l.push(s.jsx("br",{},`br-${o}`)),l}).flat().filter(i=>i!==void 0)}function ws(t){return _d(t)}function sn(t,e,n){const r=vd(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map((o,l)=>{const c=i.exec(o);if(!c)return ws(o);const u=r[c[1]];if(!u)return ws(o);const d=c[2]??"";return s.jsxs(g.Fragment,{children:[u,ws(d)]},`${o}-${l}`)})}function wd(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]=wd(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 Cs={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 Cd(){ve.registerTheme("merico-light",{color:Object.values(Cs.graphics.multiple),visualMap:{color:Object.values(Cs.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function xa(){Cd()}function*Sd(t){const e=Cs.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 Ss(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 kd(t,e={handleError:!0}){return n=>s.jsx(je,{...e,children:s.jsx(t,{...n})})}function Td(t,e){return new Function(`return ${t}`)()(e,ot)}function Dd(t,e,n){return Td(t,{context:e,filters:n})}function zd(t,e){try{return new Function(`return ${t.config.processing.pre}`)()(e,ot)}catch(n){return console.error(n),e}}function Md(t,e){return new Function(`return ${t.config.processing.post}`)()(e,ot)}function Id(t,e,n){return t?new Function(`return ${t}`)()(e,ot,n):e}function ma(){Bi.use([xu.CanvasRenderer,Ze.BarChart,Ze.BoxplotChart,Ze.CustomChart,Ze.FunnelChart,Ze.HeatmapChart,Ze.LineChart,Ze.PieChart,Ze.RadarChart,Ze.ScatterChart,Ze.SunburstChart,gt.CalendarComponent,gt.DataZoomComponent,gt.GridComponent,gt.LegendComponent,gt.TooltipComponent,gt.MarkLineComponent,gt.MarkAreaComponent,gt.VisualMapComponent])}const qt=t=>y.cloneDeepWith(t,(e,n)=>{if(n!==void 0&&e)return K.toJS(e)}),Dn={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Ed(t,e){const n=qi.decode(e);n!==t&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:t,after:e,v:n}),console.groupEnd())}async function Ad({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=bs(c,n),h=ad({sql:p,pre_process:u}),x=qi.encode(h);Ed(h,x);let m=await He.query(i)({type:o,key:l,query:x,...r},{params:{name:e}});return m=od(d,m,Ss(n)),m}async function Pd({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 ks(){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=K.observable({current:e})}async deleteItem(e){K.runInAction(()=>{y.unset(this.rootRef.current,[e])})}getItem(e){const n=this.getValueFromRoot(e);return Promise.resolve(n)}getValueFromRoot(e){return e===null?K.toJS(this.rootRef.current):y.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(y.isObject(n))K.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else K.runInAction(()=>{y.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,r){return K.reaction(()=>this.getValueFromRoot(e),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:y.get(r,"fireImmediately",!1)})}}class $d{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new Oi)}getChannel(e){const n=this.channels.get(e);if(n)return n;const r=new Oi;return this.channels.set(e,r),r}}class Ld{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 $d,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 Bd=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"])})},qd=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()}},Od={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:va(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Vd={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:va(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Nd={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:zn(["#fff7f1","darkred"]),name:"red",category:"sequential"},Fd={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:zn(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Gd={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:zn(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Wd={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:zn(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Qd{constructor(e){$(this,"symbol");this.symbol=Symbol(e)}}function ct(t){return new Qd(t)}class Ts{constructor(){$(this,"parent");$(this,"factoryRegistry",new Map);$(this,"instanceRegistry",new Map)}createScoped(){const e=new Ts;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="12.11.0",Rd=Object.freeze(Object.defineProperty({__proto__:null,version:ja},Symbol.toStringTag,{value:"Module"}));class Yd{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 Ud{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 Kd{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 Kd{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),rn=(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}),Ds={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 Jd({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,Ds),h=g.useMemo(()=>nn(n,o),[n,o]),{x,y:m,z:v}=g.useMemo(()=>({x:A(o),y:A(l),z:A(c)}),[o,l,c]),{min:C,max:k}=g.useMemo(()=>{const E=y.minBy(h,G=>G[v.columnKey]),B=y.maxBy(h,G=>G[v.columnKey]);return{min:y.get(E,v.columnKey),max:y.get(B,v.columnKey)}},[h,v]),D={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:C,max:k,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:p,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map(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:rn(r,i),notMerge:!0,theme:"merico-light"})}):null}const _a=g.createContext(null),zs=_a.Provider;function Ms(){const t=g.useContext(_a);if(!t)throw new Error("Please use DashboardModelContextProvider");return t}const X=()=>Ms(),wa=()=>Ms(),Ca=g.createContext({searchButtonProps:{}}),Is=Ca.Provider;function Sa(){return g.useContext(Ca)}const ka=g.createContext(null),Es=ka.Provider;function Ta(){const t=g.useContext(ka);if(!t)throw new Error("Please use ContentModelContextProvider");return t}const Q=()=>Ta(),ue=()=>Ta(),Xd={inEditMode:!1},Mn=g.createContext(Xd),Da=g.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),As=Da.Provider;function za(){const t=g.useContext(Da);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const vt=()=>za(),qe=()=>za(),Zd={fullScreenPanelID:"",setFullScreenPanelID:y.noop},Ps=g.createContext(Zd);function Ma(){const t=g.useContext(Ps);if(!t)throw new Error("Please use FullScreenPanelContext.Provider");return t}const Hd={en:"en",zh:"zh-cn"};function $s({children:t}){const{i18n:e}=j.useTranslation(),n=g.useMemo(()=>{const r=e.language;return Hd[r]??"en"},[e.language]);return s.jsx(Vi.DatesProvider,{settings:{locale:n,firstDayOfWeek:1},children:t})}const q=S.observer(g.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,clearable:o=!1,sx:l,...c},u)=>{const{panel:d}=qe(),p=g.useMemo(()=>d.dataFieldOptions(r,o),[r,o]);if(p.length===0){const h=d.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:h.columnKey,readOnly:!0,disabled:!0})})}),s.jsx(a.HoverCard.Dropdown,{children:s.jsxs(a.Group,{position:"left",spacing:0,children:[s.jsx(a.Text,{size:"xs",color:h.queryName?"black":"red",sx:{fontFamily:"monospace"},children:h.queryName??h.queryID}),s.jsx(a.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),s.jsx(a.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:h.columnKey})]})})]})}return s.jsx(a.Select,{ref:u,label:t,description:n,data:p,value:r,onChange:i,required:e,sx:l,maxDropdownHeight:500,...c})}));function ep({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=y.defaults({},e,Ds),{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(q,{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(q,{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(q,{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 tp=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function np(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 sp 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:np(i,r)}})}}const rp={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new sp,name:"bar-3d",viewRender:Jd,configRender:ep,createConfig(){return{version:2,config:y.cloneDeep(Ds)}},translation:tp},ip=({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=[jd(i)];return o!==n.length-1&&l.push(s.jsx("br",{},`br-${o}`)),l}).flat().filter(i=>i!==void 0)}function ws(t){return _d(t)}function sn(t,e,n){const r=vd(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map((o,l)=>{const c=i.exec(o);if(!c)return ws(o);const u=r[c[1]];if(!u)return ws(o);const d=c[2]??"";return s.jsxs(g.Fragment,{children:[u,ws(d)]},`${o}-${l}`)})}function wd(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]=wd(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 Cs={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 Cd(){ve.registerTheme("merico-light",{color:Object.values(Cs.graphics.multiple),visualMap:{color:Object.values(Cs.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function xa(){Cd()}function*Sd(t){const e=Cs.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 Ss(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 kd(t,e={handleError:!0}){return n=>s.jsx(je,{...e,children:s.jsx(t,{...n})})}function Td(t,e){return new Function(`return ${t}`)()(e,ot)}function Dd(t,e,n){return Td(t,{context:e,filters:n})}function zd(t,e){try{return new Function(`return ${t.config.processing.pre}`)()(e,ot)}catch(n){return console.error(n),e}}function Md(t,e){return new Function(`return ${t.config.processing.post}`)()(e,ot)}function Id(t,e,n){return t?new Function(`return ${t}`)()(e,ot,n):e}function ma(){Bi.use([xu.CanvasRenderer,Ze.BarChart,Ze.BoxplotChart,Ze.CustomChart,Ze.FunnelChart,Ze.HeatmapChart,Ze.LineChart,Ze.PieChart,Ze.RadarChart,Ze.ScatterChart,Ze.SunburstChart,gt.CalendarComponent,gt.DataZoomComponent,gt.GridComponent,gt.LegendComponent,gt.TooltipComponent,gt.MarkLineComponent,gt.MarkAreaComponent,gt.VisualMapComponent])}const qt=t=>y.cloneDeepWith(t,(e,n)=>{if(n!==void 0&&e)return K.toJS(e)}),Dn={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Ed(t,e){const n=qi.decode(e);n!==t&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:t,after:e,v:n}),console.groupEnd())}async function Ad({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=bs(c,n),h=ad({sql:p,pre_process:u}),x=qi.encode(h);Ed(h,x);let m=await He.query(i)({type:o,key:l,query:x,...r},{params:{name:e}});return m=od(d,m,Ss(n)),m}async function Pd({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 ks(){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=K.observable({current:e})}async deleteItem(e){K.runInAction(()=>{y.unset(this.rootRef.current,[e])})}getItem(e){const n=this.getValueFromRoot(e);return Promise.resolve(n)}getValueFromRoot(e){return e===null?K.toJS(this.rootRef.current):y.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(y.isObject(n))K.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else K.runInAction(()=>{y.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,r){return K.reaction(()=>this.getValueFromRoot(e),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:y.get(r,"fireImmediately",!1)})}}class $d{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new Oi)}getChannel(e){const n=this.channels.get(e);if(n)return n;const r=new Oi;return this.channels.set(e,r),r}}class Ld{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 $d,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 Bd=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"])})},qd=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()}},Od={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:va(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Vd={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:va(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Nd={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:zn(["#fff7f1","darkred"]),name:"red",category:"sequential"},Fd={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:zn(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Gd={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:zn(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Wd={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:zn(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Qd{constructor(e){$(this,"symbol");this.symbol=Symbol(e)}}function ct(t){return new Qd(t)}class Ts{constructor(){$(this,"parent");$(this,"factoryRegistry",new Map);$(this,"instanceRegistry",new Map)}createScoped(){const e=new Ts;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="12.12.0",Rd=Object.freeze(Object.defineProperty({__proto__:null,version:ja},Symbol.toStringTag,{value:"Module"}));class Yd{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 Ud{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 Kd{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 Kd{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),rn=(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}),Ds={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 Jd({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,Ds),h=g.useMemo(()=>nn(n,o),[n,o]),{x,y:m,z:v}=g.useMemo(()=>({x:A(o),y:A(l),z:A(c)}),[o,l,c]),{min:C,max:k}=g.useMemo(()=>{const E=y.minBy(h,G=>G[v.columnKey]),B=y.maxBy(h,G=>G[v.columnKey]);return{min:y.get(E,v.columnKey),max:y.get(B,v.columnKey)}},[h,v]),D={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:C,max:k,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:p,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map(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:rn(r,i),notMerge:!0,theme:"merico-light"})}):null}const _a=g.createContext(null),zs=_a.Provider;function Ms(){const t=g.useContext(_a);if(!t)throw new Error("Please use DashboardModelContextProvider");return t}const X=()=>Ms(),wa=()=>Ms(),Ca=g.createContext({searchButtonProps:{}}),Is=Ca.Provider;function Sa(){return g.useContext(Ca)}const ka=g.createContext(null),Es=ka.Provider;function Ta(){const t=g.useContext(ka);if(!t)throw new Error("Please use ContentModelContextProvider");return t}const Q=()=>Ta(),ue=()=>Ta(),Xd={inEditMode:!1},Mn=g.createContext(Xd),Da=g.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),As=Da.Provider;function za(){const t=g.useContext(Da);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const vt=()=>za(),qe=()=>za(),Zd={fullScreenPanelID:"",setFullScreenPanelID:y.noop},Ps=g.createContext(Zd);function Ma(){const t=g.useContext(Ps);if(!t)throw new Error("Please use FullScreenPanelContext.Provider");return t}const Hd={en:"en",zh:"zh-cn"};function $s({children:t}){const{i18n:e}=j.useTranslation(),n=g.useMemo(()=>{const r=e.language;return Hd[r]??"en"},[e.language]);return s.jsx(Vi.DatesProvider,{settings:{locale:n,firstDayOfWeek:1},children:t})}const q=S.observer(g.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,clearable:o=!1,sx:l,...c},u)=>{const{panel:d}=qe(),p=g.useMemo(()=>d.dataFieldOptions(r,o),[r,o]);if(p.length===0){const h=d.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:h.columnKey,readOnly:!0,disabled:!0})})}),s.jsx(a.HoverCard.Dropdown,{children:s.jsxs(a.Group,{position:"left",spacing:0,children:[s.jsx(a.Text,{size:"xs",color:h.queryName?"black":"red",sx:{fontFamily:"monospace"},children:h.queryName??h.queryID}),s.jsx(a.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),s.jsx(a.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:h.columnKey})]})})]})}return s.jsx(a.Select,{ref:u,label:t,description:n,data:p,value:r,onChange:i,required:e,sx:l,maxDropdownHeight:500,...c})}));function ep({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=y.defaults({},e,Ds),{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(q,{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(q,{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(q,{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 tp=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function np(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 sp 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:np(i,r)}})}}const rp={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new sp,name:"bar-3d",viewRender:Jd,configRender:ep,createConfig(){return{version:2,config:y.cloneDeep(Ds)}},translation:tp},ip=({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=k=>{d({...u,enabled:k})},h=()=>{c();const{enabled:k,func_content:D}=u,E={enabled:k,func_content:D};d(E),e(E)},x=()=>{c(),d(t)},m=k=>{d(D=>({...D,func_content:k}))},v=()=>{m(_e().func_content)},C=n??i("chart.axis.customize_label");return s.jsxs(s.Fragment,{children:[s.jsx(a.Button,{variant:"filled",color:"grape",leftIcon:s.jsx(T.IconMathFunction,{size:16}),mt:24,onClick:l,sx:{flexGrow:0},children:C}),s.jsx(a.Modal,{size:800,title:C,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:k=>p(k.currentTarget.checked)}),s.jsx(ip,{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(T.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 ap=[{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:lp,configRender:op,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 op(t){return s.jsx(s.Fragment,{})}function lp(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};
|